diff --git a/go.mod b/go.mod index b28dbbbe3..def01fd5a 100644 --- a/go.mod +++ b/go.mod @@ -19,7 +19,8 @@ require ( github.com/openshift/client-go v0.0.0-20260715172546-dac61734e0ec github.com/openshift/library-go v0.0.0-20260716164659-7926d144f96a github.com/pkg/errors v0.9.1 - google.golang.org/api v0.179.0 + golang.org/x/oauth2 v0.36.0 + google.golang.org/api v0.288.0 gopkg.in/yaml.v2 v2.4.0 k8s.io/api v0.36.2 k8s.io/apimachinery v0.36.2 @@ -33,8 +34,8 @@ require ( require go.opentelemetry.io/auto/sdk v1.2.1 // indirect require ( - cloud.google.com/go/auth v0.4.1 // indirect - cloud.google.com/go/auth/oauth2adapt v0.2.2 // indirect + cloud.google.com/go/auth v0.20.0 // indirect + cloud.google.com/go/auth/oauth2adapt v0.2.8 // indirect cloud.google.com/go/compute/metadata v0.9.0 // indirect github.com/Azure/azure-sdk-for-go/sdk/internal v1.10.0 // indirect github.com/Azure/azure-sdk-for-go/sdk/security/keyvault/azsecrets v1.3.1 // indirect @@ -74,13 +75,11 @@ require ( github.com/gofrs/uuid/v5 v5.3.0 // indirect github.com/golang-jwt/jwt/v4 v4.5.2 // indirect github.com/golang-jwt/jwt/v5 v5.3.1 // indirect - github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da // indirect - github.com/golang/protobuf v1.5.4 // indirect github.com/google/gnostic-models v0.7.1 // indirect github.com/google/go-cmp v0.7.0 // indirect - github.com/google/s2a-go v0.1.7 // indirect - github.com/googleapis/enterprise-certificate-proxy v0.3.2 // indirect - github.com/googleapis/gax-go/v2 v2.12.4 // indirect + github.com/google/s2a-go v0.1.9 // indirect + github.com/googleapis/enterprise-certificate-proxy v0.3.17 // indirect + github.com/googleapis/gax-go/v2 v2.22.0 // indirect github.com/imdario/mergo v0.3.16 // indirect github.com/jmespath/go-jmespath v0.4.0 // indirect github.com/json-iterator/go v1.1.12 // indirect @@ -99,24 +98,21 @@ require ( github.com/robfig/cron v1.2.0 // indirect github.com/spf13/pflag v1.0.10 // indirect github.com/x448/float16 v0.8.4 // indirect - go.opencensus.io v0.24.0 // indirect - go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.65.0 // indirect - go.opentelemetry.io/otel v1.41.0 // indirect - go.opentelemetry.io/otel/metric v1.41.0 // indirect - go.opentelemetry.io/otel/trace v1.41.0 // indirect + go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.67.0 // indirect + go.opentelemetry.io/otel v1.43.0 // indirect + go.opentelemetry.io/otel/metric v1.43.0 // indirect + go.opentelemetry.io/otel/trace v1.43.0 // indirect go.yaml.in/yaml/v2 v2.4.4 // indirect go.yaml.in/yaml/v3 v3.0.4 // indirect golang.org/x/crypto v0.54.0 // indirect golang.org/x/exp v0.0.0-20251219203646-944ab1f22d93 // indirect golang.org/x/net v0.57.0 // indirect - golang.org/x/oauth2 v0.36.0 // indirect golang.org/x/sys v0.47.0 // indirect golang.org/x/term v0.45.0 // indirect golang.org/x/text v0.40.0 // indirect golang.org/x/time v0.15.0 // indirect - google.golang.org/genproto/googleapis/api v0.0.0-20260128011058-8636f8732409 // indirect - google.golang.org/genproto/googleapis/rpc v0.0.0-20260128011058-8636f8732409 // indirect - google.golang.org/grpc v1.79.3 // indirect + google.golang.org/genproto/googleapis/rpc v0.0.0-20260630182238-925bb5da69e7 // indirect + google.golang.org/grpc v1.82.1 // indirect google.golang.org/protobuf v1.36.12-0.20260120151049-f2248ac996af // indirect gopkg.in/evanphx/json-patch.v4 v4.13.0 // indirect gopkg.in/inf.v0 v0.9.1 // indirect diff --git a/go.sum b/go.sum index e06a8e4bc..29b7e4c10 100644 --- a/go.sum +++ b/go.sum @@ -1,8 +1,7 @@ -cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= -cloud.google.com/go/auth v0.4.1 h1:Z7YNIhlWRtrnKlZke7z3GMqzvuYzdc2z98F9D1NV5Hg= -cloud.google.com/go/auth v0.4.1/go.mod h1:QVBuVEKpCn4Zp58hzRGvL0tjRGU0YqdRTdCHM1IHnro= -cloud.google.com/go/auth/oauth2adapt v0.2.2 h1:+TTV8aXpjeChS9M+aTtN/TjdQnzJvmzKFt//oWu7HX4= -cloud.google.com/go/auth/oauth2adapt v0.2.2/go.mod h1:wcYjgpZI9+Yu7LyYBg4pqSiaRkfEK3GQcpb7C/uyF1Q= +cloud.google.com/go/auth v0.20.0 h1:kXTssoVb4azsVDoUiF8KvxAqrsQcQtB53DcSgta74CA= +cloud.google.com/go/auth v0.20.0/go.mod h1:942/yi/itH1SsmpyrbnTMDgGfdy2BUqIKyd0cyYLc5Q= +cloud.google.com/go/auth/oauth2adapt v0.2.8 h1:keo8NaayQZ6wimpNSmW5OPc283g65QNIiLpZnkHRbnc= +cloud.google.com/go/auth/oauth2adapt v0.2.8/go.mod h1:XQ9y31RkqZCcwJWNSx2Xvric3RrU88hAYYbjDWYDL+c= cloud.google.com/go/compute/metadata v0.9.0 h1:pDUj4QMoPejqq20dK0Pg2N4yG9zIkYGdBtwLoEkH9Zs= cloud.google.com/go/compute/metadata v0.9.0/go.mod h1:E0bWwX5wTnLPedCKqk3pJmVgCBSM6qQI1yTBdEb3C10= github.com/Azure/azure-sdk-for-go/sdk/azcore v1.17.0 h1:g0EZJwz7xkXQiZAI5xi9f3WWFYBlX1CPTrR+NDToRkQ= @@ -51,7 +50,6 @@ github.com/AzureAD/microsoft-authentication-extensions-for-go/cache v0.1.1 h1:WJ github.com/AzureAD/microsoft-authentication-extensions-for-go/cache v0.1.1/go.mod h1:tCcJZ0uHAmvjsVYzEFivsRTN00oz5BEsRgQHu5JZ9WE= github.com/AzureAD/microsoft-authentication-library-for-go v1.3.3 h1:H5xDQaE3XowWfhZRUpnfC+rGZMEVoSiji+b+/HFAPU4= github.com/AzureAD/microsoft-authentication-library-for-go v1.3.3/go.mod h1:wP83P5OoQ5p6ip3ScPr0BAq0BvuPAvacpEuSzyouqAI= -github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= github.com/Masterminds/semver/v3 v3.4.0 h1:Zog+i5UMtVoCU8oKka5P7i9q9HgrJeGzI9SA1Xbatp0= github.com/Masterminds/semver/v3 v3.4.0/go.mod h1:4V+yj/TJE1HU9XfppCwVMZq3I84lprf4nC11bSS5beM= github.com/antlr4-go/antlr/v4 v4.13.1 h1:SqQKkuVZ+zWkMMNkjy5FZe5mr5WURWnlpmOuzYWrPrQ= @@ -62,11 +60,8 @@ github.com/beorn7/perks v1.0.1 h1:VlbKKnNfV8bJzeqoa4cOKqO6bYr3WgKZxO8Z16+hsOM= github.com/beorn7/perks v1.0.1/go.mod h1:G2ZrVWU2WbWT9wwq4/hrbKbnv/1ERSJQ0ibhJ6rlkpw= github.com/blang/semver/v4 v4.0.0 h1:1PFHFE6yCCTv8C1TeyNNarDzntLi7wMI5i/pzqYIsAM= github.com/blang/semver/v4 v4.0.0/go.mod h1:IbckMUScFkM3pff0VJDNKRiT6TG/YpiHIM2yvyW5YoQ= -github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU= github.com/cespare/xxhash/v2 v2.3.0 h1:UL815xU9SqsFlibzuggzjXhog7bL6oX9BbNZnL2UFvs= github.com/cespare/xxhash/v2 v2.3.0/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= -github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw= -github.com/cncf/udpa/go v0.0.0-20191209042840-269d4d468f6f/go.mod h1:M8M6+tZqaGXZJjfX53e64911xZQV5JYwmTeXPW+k8Sc= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc h1:U9qPSI2PIWSS1VwoXQT9A3Wy9MM3WgvqSxFWenqJduM= @@ -75,10 +70,6 @@ github.com/dgryski/go-rendezvous v0.0.0-20200823014737-9f7001d12a5f h1:lO4WD4F/r github.com/dgryski/go-rendezvous v0.0.0-20200823014737-9f7001d12a5f/go.mod h1:cuUVRXasLTGF7a8hSLbxyZXjz+1KgoB3wDUb6vlszIc= github.com/emicklei/go-restful/v3 v3.13.0 h1:C4Bl2xDndpU6nJ4bc1jXd+uTmYPVUwkD6bFY/oTyCes= github.com/emicklei/go-restful/v3 v3.13.0/go.mod h1:6n3XBCmQQb25CM2LCACGz8ukIrRry+4bhvbpWn3mrbc= -github.com/envoyproxy/go-control-plane v0.9.0/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= -github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= -github.com/envoyproxy/go-control-plane v0.9.4/go.mod h1:6rpuAdCZL397s3pYoYcLgu1mIlRU8Am5FuJP05cCM98= -github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c= github.com/evanphx/json-patch/v5 v5.9.11 h1:/8HVnzMq13/3x9TPvjG08wUGqBTmZBsCWzjTM0wiaDU= github.com/evanphx/json-patch/v5 v5.9.11/go.mod h1:3j+LviiESTElxA4p3EMKAB9HXj3/XEtnUf6OZxqIQTM= github.com/felixge/httpsnoop v1.0.4 h1:NFTV2Zj1bL4mc9sqWACXbQFVBBg2W3GPvqp8/ESS2Wg= @@ -142,45 +133,33 @@ github.com/golang-jwt/jwt/v4 v4.5.2 h1:YtQM7lnr8iZ+j5q71MGKkNw9Mn7AjHM68uc9g5fXe github.com/golang-jwt/jwt/v4 v4.5.2/go.mod h1:m21LjoU+eqJr34lmDMbreY2eSTRJ1cv77w39/MY0Ch0= github.com/golang-jwt/jwt/v5 v5.3.1 h1:kYf81DTWFe7t+1VvL7eS+jKFVWaUnK9cB1qbwn63YCY= github.com/golang-jwt/jwt/v5 v5.3.1/go.mod h1:fxCRLWMO43lRc8nhHWY6LGqRcf+1gQWArsqaEUEa5bE= -github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q= -github.com/golang/groupcache v0.0.0-20200121045136-8c9f03a8e57e/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= -github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da h1:oI5xCqsCo564l8iNU+DwB5epxmsaqB+rhGL0m5jtYqE= -github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= -github.com/golang/mock v1.1.1/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A= github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= -github.com/golang/protobuf v1.3.2/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= github.com/golang/protobuf v1.4.0-rc.1/go.mod h1:ceaxUfeHdC40wWswd/P6IGgMaK3YpKi5j83Wpe3EHw8= github.com/golang/protobuf v1.4.0-rc.1.0.20200221234624-67d41d38c208/go.mod h1:xKAWHe0F5eneWXFV3EuXVDTCmh+JuBKY0li0aMyXATA= github.com/golang/protobuf v1.4.0-rc.2/go.mod h1:LlEzMj4AhA7rCAGe4KMBDvJI+AwstrUpVNzEA03Pprs= github.com/golang/protobuf v1.4.0-rc.4.0.20200313231945-b860323f09d0/go.mod h1:WU3c8KckQ9AFe+yFwt9sWVRKCVIyN9cPHBJSNnbL67w= github.com/golang/protobuf v1.4.0/go.mod h1:jodUvKwWbYaEsadDk5Fwe5c77LiNKVO9IDvqG2KuDX0= -github.com/golang/protobuf v1.4.1/go.mod h1:U8fpvMrcmy5pZrNK1lt4xCsGvpyWQ/VVv6QDs8UjoX8= github.com/golang/protobuf v1.4.2/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw735rRwI= -github.com/golang/protobuf v1.4.3/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw735rRwI= github.com/golang/protobuf v1.5.4 h1:i7eJL8qZTpSEXOPTxNKhASYpMn+8e5Q6AdndVa1dWek= github.com/golang/protobuf v1.5.4/go.mod h1:lnTiLA8Wa4RWRcIUkrtSVa5nRhsEGBg48fD6rSs7xps= github.com/google/gnostic-models v0.7.1 h1:SisTfuFKJSKM5CPZkffwi6coztzzeYUhc3v4yxLWH8c= github.com/google/gnostic-models v0.7.1/go.mod h1:whL5G0m6dmc5cPxKc5bdKdEN3UjI7OUGxBlw57miDrQ= -github.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5aqRK0M= github.com/google/go-cmp v0.3.0/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= github.com/google/go-cmp v0.3.1/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= github.com/google/go-cmp v0.4.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= -github.com/google/go-cmp v0.5.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= -github.com/google/go-cmp v0.5.3/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-cmp v0.7.0 h1:wk8382ETsv4JYUZwIsn6YpYiWiBsYLSJiTsyBybVuN8= github.com/google/go-cmp v0.7.0/go.mod h1:pXiqmnSA92OHEEa9HXL2W4E7lf9JzCmGVUdgjX3N/iU= github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= github.com/google/pprof v0.0.0-20250403155104-27863c87afa6 h1:BHT72Gu3keYf3ZEu2J0b1vyeLSOYI8bm5wbJM/8yDe8= github.com/google/pprof v0.0.0-20250403155104-27863c87afa6/go.mod h1:boTsfXsheKC2y+lKOCMpSfarhxDeIzfZG1jqGcPl3cA= -github.com/google/s2a-go v0.1.7 h1:60BLSyTrOV4/haCDW4zb1guZItoSq8foHCXrAnjBo/o= -github.com/google/s2a-go v0.1.7/go.mod h1:50CgR4k1jNlWBu4UfS4AcfhVe1r6pdZPygJ3R8F0Qdw= -github.com/google/uuid v1.1.2/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= +github.com/google/s2a-go v0.1.9 h1:LGD7gtMgezd8a/Xak7mEWL0PjoTQFvpRudN895yqKW0= +github.com/google/s2a-go v0.1.9/go.mod h1:YA0Ei2ZQL3acow2O62kdp9UlnvMmU7kA6Eutn0dXayM= github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0= github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= -github.com/googleapis/enterprise-certificate-proxy v0.3.2 h1:Vie5ybvEvT75RniqhfFxPRy3Bf7vr3h0cechB90XaQs= -github.com/googleapis/enterprise-certificate-proxy v0.3.2/go.mod h1:VLSiSSBs/ksPL8kq3OBOQ6WRI2QnaFynd1DCjZ62+V0= -github.com/googleapis/gax-go/v2 v2.12.4 h1:9gWcmF85Wvq4ryPFvGFaOgPIs1AQX0d0bcbGw4Z96qg= -github.com/googleapis/gax-go/v2 v2.12.4/go.mod h1:KYEYLorsnIGDi/rPC8b5TdlB9kbKoFubselGIoBMCwI= +github.com/googleapis/enterprise-certificate-proxy v0.3.17 h1:73NfMHdiqo9JFU9+7a5ExpVa10/R29pXfZIaW559nrg= +github.com/googleapis/enterprise-certificate-proxy v0.3.17/go.mod h1:rSEsBUemEBZEexP2y6jPp16LUmUbjmSbcPMQizR0o4k= +github.com/googleapis/gax-go/v2 v2.22.0 h1:PjIWBpgGIVKGoCXuiCoP64altEJCj3/Ei+kSU5vlZD4= +github.com/googleapis/gax-go/v2 v2.22.0/go.mod h1:irWBbALSr0Sk3qlqb9SyJ1h68WjgeFuiOzI4Rqw5+aY= github.com/gophercloud/gophercloud/v2 v2.1.1 h1:KUeVTUoq6um/CijR+hl1JRZ35SXRY62LiYUbgp4qqKw= github.com/gophercloud/gophercloud/v2 v2.1.1/go.mod h1:f2hMRC7Kakbv5vM7wSGHrIPZh6JZR60GVHryJlF/K44= github.com/gophercloud/utils/v2 v2.0.0-20241008104625-7cbb8fd76bb7 h1:RDFC3+cVfeCQ8zi/PgaKrPzJyUbwzg3Mi2xCWnAW+g4= @@ -244,7 +223,6 @@ github.com/prometheus-operator/prometheus-operator/pkg/apis/monitoring v0.74.0 h github.com/prometheus-operator/prometheus-operator/pkg/apis/monitoring v0.74.0/go.mod h1:wAR5JopumPtAZnu0Cjv2PSqV4p4QB09LMhc6fZZTXuA= github.com/prometheus/client_golang v1.23.2 h1:Je96obch5RDVy3FDMndoUsjAhG5Edi49h0RJWRi/o0o= github.com/prometheus/client_golang v1.23.2/go.mod h1:Tb1a6LWHB3/SPIzCoaDXI4I8UHKeFTEQ1YCr+0Gyqmg= -github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= github.com/prometheus/client_model v0.6.2 h1:oBsgwpGs7iVziMvrGhE53c/GrLUsZdHnqNwqPLxwZyk= github.com/prometheus/client_model v0.6.2/go.mod h1:y3m2F6Gdpfy6Ut/GBsUqTWZqCUvMVzSfMLjcu6wAwpE= github.com/prometheus/common v0.70.0 h1:bcpru3tWPVnxGnETLgOV5jbp/JRXgYEyv65CuBLAMMI= @@ -260,36 +238,29 @@ github.com/rogpeppe/go-internal v1.14.1/go.mod h1:MaRKkUm5W0goXpeCfT7UZI6fk/L7L7 github.com/spf13/pflag v1.0.10 h1:4EBh2KAYBwaONj6b2Ye1GiHfwjqyROoF4RwYO+vPwFk= github.com/spf13/pflag v1.0.10/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg= github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= -github.com/stretchr/objx v0.4.0/go.mod h1:YvHI0jy2hoMjB+UWwv71VJQ9isScKT/TqJzVSSt89Yw= -github.com/stretchr/objx v0.5.0/go.mod h1:Yh+to48EsGEfYuaHDzXPcE3xhTkx73EhmCGUpEOglKo= github.com/stretchr/objx v0.5.2 h1:xuMeJ0Sdp5ZMRXx/aWO6RZxdr3beISkG5/G/aIRr3pY= github.com/stretchr/objx v0.5.2/go.mod h1:FRsXN1f5AsAjCGJKqEizvkpNtU+EGNCLh3NxZ/8L+MA= github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= github.com/stretchr/testify v1.5.1/go.mod h1:5W2xD1RspED5o8YsWQXVCued0rvSQ+mT+I5cxcmMvtA= -github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= -github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU= -github.com/stretchr/testify v1.8.1/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4= github.com/stretchr/testify v1.11.1 h1:7s2iGBzp5EwR7/aIZr8ao5+dra3wiQyKjjFuvgVKu7U= github.com/stretchr/testify v1.11.1/go.mod h1:wZwfW3scLgRK+23gO65QZefKpKQRnfz6sD981Nm4B6U= github.com/x448/float16 v0.8.4 h1:qLwI1I70+NjRFUR3zs1JPUCgaCXSh3SW62uAKT1mSBM= github.com/x448/float16 v0.8.4/go.mod h1:14CWIYCyZA/cWjXOioeEpHeN/83MdbZDRQHoFcYsOfg= github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= -go.opencensus.io v0.24.0 h1:y73uSU6J157QMP2kn2r30vwW1A2W2WFwSCGnAVxeaD0= -go.opencensus.io v0.24.0/go.mod h1:vNK8G9p7aAivkbmorf4v+7Hgx+Zs0yY+0fOtgBfjQKo= go.opentelemetry.io/auto/sdk v1.2.1 h1:jXsnJ4Lmnqd11kwkBV2LgLoFMZKizbCi5fNZ/ipaZ64= go.opentelemetry.io/auto/sdk v1.2.1/go.mod h1:KRTj+aOaElaLi+wW1kO/DZRXwkF4C5xPbEe3ZiIhN7Y= -go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.65.0 h1:7iP2uCb7sGddAr30RRS6xjKy7AZ2JtTOPA3oolgVSw8= -go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.65.0/go.mod h1:c7hN3ddxs/z6q9xwvfLPk+UHlWRQyaeR1LdgfL/66l0= -go.opentelemetry.io/otel v1.41.0 h1:YlEwVsGAlCvczDILpUXpIpPSL/VPugt7zHThEMLce1c= -go.opentelemetry.io/otel v1.41.0/go.mod h1:Yt4UwgEKeT05QbLwbyHXEwhnjxNO6D8L5PQP51/46dE= -go.opentelemetry.io/otel/metric v1.41.0 h1:rFnDcs4gRzBcsO9tS8LCpgR0dxg4aaxWlJxCno7JlTQ= -go.opentelemetry.io/otel/metric v1.41.0/go.mod h1:xPvCwd9pU0VN8tPZYzDZV/BMj9CM9vs00GuBjeKhJps= -go.opentelemetry.io/otel/sdk v1.40.0 h1:KHW/jUzgo6wsPh9At46+h4upjtccTmuZCFAc9OJ71f8= -go.opentelemetry.io/otel/sdk v1.40.0/go.mod h1:Ph7EFdYvxq72Y8Li9q8KebuYUr2KoeyHx0DRMKrYBUE= -go.opentelemetry.io/otel/sdk/metric v1.40.0 h1:mtmdVqgQkeRxHgRv4qhyJduP3fYJRMX4AtAlbuWdCYw= -go.opentelemetry.io/otel/sdk/metric v1.40.0/go.mod h1:4Z2bGMf0KSK3uRjlczMOeMhKU2rhUqdWNoKcYrtcBPg= -go.opentelemetry.io/otel/trace v1.41.0 h1:Vbk2co6bhj8L59ZJ6/xFTskY+tGAbOnCtQGVVa9TIN0= -go.opentelemetry.io/otel/trace v1.41.0/go.mod h1:U1NU4ULCoxeDKc09yCWdWe+3QoyweJcISEVa1RBzOis= +go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.67.0 h1:OyrsyzuttWTSur2qN/Lm0m2a8yqyIjUVBZcxFPuXq2o= +go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.67.0/go.mod h1:C2NGBr+kAB4bk3xtMXfZ94gqFDtg/GkI7e9zqGh5Beg= +go.opentelemetry.io/otel v1.43.0 h1:mYIM03dnh5zfN7HautFE4ieIig9amkNANT+xcVxAj9I= +go.opentelemetry.io/otel v1.43.0/go.mod h1:JuG+u74mvjvcm8vj8pI5XiHy1zDeoCS2LB1spIq7Ay0= +go.opentelemetry.io/otel/metric v1.43.0 h1:d7638QeInOnuwOONPp4JAOGfbCEpYb+K6DVWvdxGzgM= +go.opentelemetry.io/otel/metric v1.43.0/go.mod h1:RDnPtIxvqlgO8GRW18W6Z/4P462ldprJtfxHxyKd2PY= +go.opentelemetry.io/otel/sdk v1.43.0 h1:pi5mE86i5rTeLXqoF/hhiBtUNcrAGHLKQdhg4h4V9Dg= +go.opentelemetry.io/otel/sdk v1.43.0/go.mod h1:P+IkVU3iWukmiit/Yf9AWvpyRDlUeBaRg6Y+C58QHzg= +go.opentelemetry.io/otel/sdk/metric v1.43.0 h1:S88dyqXjJkuBNLeMcVPRFXpRw2fuwdvfCGLEo89fDkw= +go.opentelemetry.io/otel/sdk/metric v1.43.0/go.mod h1:C/RJtwSEJ5hzTiUz5pXF1kILHStzb9zFlIEe85bhj6A= +go.opentelemetry.io/otel/trace v1.43.0 h1:BkNrHpup+4k4w+ZZ86CZoHHEkohws8AY+WTX09nk+3A= +go.opentelemetry.io/otel/trace v1.43.0/go.mod h1:/QJhyVBUUswCphDVxq+8mld+AvhXZLhe+8WVFxiFff0= go.uber.org/goleak v1.3.0 h1:2K3zAYmnTNqV73imy9J1T3WC+gmCePx2hEGkimedGto= go.uber.org/goleak v1.3.0/go.mod h1:CoHD4mav9JJNrW/WLlf7HGZPjdw8EucARQHekz1X6bE= go.uber.org/multierr v1.11.0 h1:blXXJkSxSSfBVBlC76pxqeO+LN3aDfLQo+309xJstO0= @@ -307,20 +278,12 @@ golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5y golang.org/x/crypto v0.0.0-20211215153901-e495a2d5b3d3/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= golang.org/x/crypto v0.54.0 h1:YLIA59K4fiNzHzjnZt2tUJQjQtUWfWbeHBqKtk3eScw= golang.org/x/crypto v0.54.0/go.mod h1:KWL8ny2AZdGR2cWmzeHrp2azQPGogOv+HeQaVEXC2dk= -golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20251219203646-944ab1f22d93 h1:fQsdNF2N+/YewlRZiricy4P1iimyPKZ/xwniHj8Q2a0= golang.org/x/exp v0.0.0-20251219203646-944ab1f22d93/go.mod h1:EPRbTFwzwjXj9NpYyyrvenVh9Y+GFeEvMNh7Xuz7xgU= -golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= -golang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod h1:wehouNa3lNwaWXcvxsM5YxQ5yQlVC4a0KAMCusXpPoU= -golang.org/x/lint v0.0.0-20190313153728-d0100b6bd8b3/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.37.0 h1:vF1DjpVEshcIqoEaauuHebaLk1O1forxjxBaVn884JQ= golang.org/x/mod v0.37.0/go.mod h1:m8S8VeM9r4dzDwjrKO0a1sZP3YjeMamRRlD+fmR2Q/0= -golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= -golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180906233101-161cd47e91fd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= -golang.org/x/net v0.0.0-20190213061140-3a22650c66bd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= -golang.org/x/net v0.0.0-20190311183353-d8887717615a/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20200520004742-59133d7f0dd7/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= @@ -330,16 +293,13 @@ golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v golang.org/x/net v0.0.0-20211112202133-69e39bad7dc2/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= golang.org/x/net v0.57.0 h1:K5+3DljvIuDG9/Jv9rvyMywYNFCQ9RSUY6OOTTkT+tE= golang.org/x/net v0.57.0/go.mod h1:KpXc8iv+r3XplLAG/f7Jsf9RPszJzdR0f58q9vGOuEU= -golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= golang.org/x/oauth2 v0.36.0 h1:peZ/1z27fi9hUOFCAZaHyrpWG5lwe0RJEEEeH0ThlIs= golang.org/x/oauth2 v0.36.0/go.mod h1:YDBUJMTkDnJS+A4BP4eZBjCqtokkg1hODuPjwiGPO7Q= golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.22.0 h1:SZjpbeLmrCk4xhRSZFNZW5gFUeCeFgjekvI/+gfScek= golang.org/x/sync v0.22.0/go.mod h1:9xrNwdLfx4jkKbNva9FpL6vEN7evnE43NNNJQ2LF3+0= -golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20180909124046-d0be0721c37e/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= @@ -366,10 +326,6 @@ golang.org/x/text v0.40.0/go.mod h1:hpnzDAfGV753zIKo+wk3u1bVKCGPbrnF7+7LBF/UHVY= golang.org/x/time v0.15.0 h1:bbrp8t3bGUeFOx08pvsMYRTCVSMk89u4tKbNOZbp88U= golang.org/x/time v0.15.0/go.mod h1:Y4YMaQmXwGQZoFaVFk4YpCt4FLQMYKZe9oeV/f4MSno= golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= -golang.org/x/tools v0.0.0-20190114222345-bf090417da8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= -golang.org/x/tools v0.0.0-20190226205152-f727befe758c/go.mod h1:9Yl7xja0Znq3iFh3HoIrodX9oNMXvdceNzlUR8zjMvY= -golang.org/x/tools v0.0.0-20190311212946-11955173bddd/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= -golang.org/x/tools v0.0.0-20190524140312-2c0ae7006135/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20201224043029-2b0845dc783e/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= golang.org/x/tools v0.47.0 h1:7Kn5x/d1svx/PzryTsqeoZN4TZwqeH5pGWjefhLi/1Q= @@ -378,35 +334,24 @@ golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8T golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= -gonum.org/v1/gonum v0.16.0 h1:5+ul4Swaf3ESvrOnidPp4GZbzf0mxVQpDCYUQE7OJfk= -gonum.org/v1/gonum v0.16.0/go.mod h1:fef3am4MQ93R2HHpKnLk4/Tbh/s0+wqD5nfa6Pnwy4E= -google.golang.org/api v0.179.0 h1:QyHDLm/HqM7ysaHgGO0wu7P4NbwbimnOoKxu5Cfdx8s= -google.golang.org/api v0.179.0/go.mod h1:51AiyoEg1MJPSZ9zvklA8VnRILPXxn1iVen9v25XHAE= -google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM= -google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= -google.golang.org/genproto v0.0.0-20180817151627-c66870c02cf8/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc= -google.golang.org/genproto v0.0.0-20190819201941-24fa4b261c55/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc= -google.golang.org/genproto v0.0.0-20200526211855-cb27e3aa2013/go.mod h1:NbSheEEYHJ7i3ixzK3sjbqSGDJWnxyFXZblF3eUsNvo= -google.golang.org/genproto/googleapis/api v0.0.0-20260128011058-8636f8732409 h1:merA0rdPeUV3YIIfHHcH4qBkiQAc1nfCKSI7lB4cV2M= -google.golang.org/genproto/googleapis/api v0.0.0-20260128011058-8636f8732409/go.mod h1:fl8J1IvUjCilwZzQowmw2b7HQB2eAuYBabMXzWurF+I= -google.golang.org/genproto/googleapis/rpc v0.0.0-20260128011058-8636f8732409 h1:H86B94AW+VfJWDqFeEbBPhEtHzJwJfTbgE2lZa54ZAQ= -google.golang.org/genproto/googleapis/rpc v0.0.0-20260128011058-8636f8732409/go.mod h1:j9x/tPzZkyxcgEFkiKEEGxfvyumM01BEtsW8xzOahRQ= -google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c= -google.golang.org/grpc v1.23.0/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg= -google.golang.org/grpc v1.25.1/go.mod h1:c3i+UQWmh7LiEpx4sFZnkU36qjEYZ0imhYfXVyQciAY= -google.golang.org/grpc v1.27.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk= -google.golang.org/grpc v1.33.2/go.mod h1:JMHMWHQWaTccqQQlmk3MJZS+GWXOdAesneDmEnv2fbc= -google.golang.org/grpc v1.79.3 h1:sybAEdRIEtvcD68Gx7dmnwjZKlyfuc61Dyo9pGXXkKE= -google.golang.org/grpc v1.79.3/go.mod h1:KmT0Kjez+0dde/v2j9vzwoAScgEPx/Bw1CYChhHLrHQ= +gonum.org/v1/gonum v0.17.0 h1:VbpOemQlsSMrYmn7T2OUvQ4dqxQXU+ouZFQsZOx50z4= +gonum.org/v1/gonum v0.17.0/go.mod h1:El3tOrEuMpv2UdMrbNlKEh9vd86bmQ6vqIcDwxEOc1E= +google.golang.org/api v0.288.0 h1:glhO/J88obKP5I269W3hB73dvBKrjU56ZfmNlNXpgTU= +google.golang.org/api v0.288.0/go.mod h1:lM2kYRzYUCBY91P9h6VF1PYmvhxii3O5hji37qRvIcY= +google.golang.org/genproto v0.0.0-20260319201613-d00831a3d3e7 h1:XzmzkmB14QhVhgnawEVsOn6OFsnpyxNPRY9QV01dNB0= +google.golang.org/genproto v0.0.0-20260319201613-d00831a3d3e7/go.mod h1:L43LFes82YgSonw6iTXTxXUX1OlULt4AQtkik4ULL/I= +google.golang.org/genproto/googleapis/api v0.0.0-20260414002931-afd174a4e478 h1:yQugLulqltosq0B/f8l4w9VryjV+N/5gcW0jQ3N8Qec= +google.golang.org/genproto/googleapis/api v0.0.0-20260414002931-afd174a4e478/go.mod h1:C6ADNqOxbgdUUeRTU+LCHDPB9ttAMCTff6auwCVa4uc= +google.golang.org/genproto/googleapis/rpc v0.0.0-20260630182238-925bb5da69e7 h1:eM/YSd5bBFagF51o1E745Ta7RwzpW0h+z+QDNZOgmQ8= +google.golang.org/genproto/googleapis/rpc v0.0.0-20260630182238-925bb5da69e7/go.mod h1:4Hqkh8ycfw05ld/3BWL7rJOSfebL2Q+DVDeRgYgxUU8= +google.golang.org/grpc v1.82.1 h1:NnAxzGRA0677vCa4BUkOAnO5+FfQqVl9iUXeD0IqcGE= +google.golang.org/grpc v1.82.1/go.mod h1:yzTZ1TB1Z3SG+LIYaI+WiE8D5+PZ3ArnrSp8zF3+/ZA= google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8= google.golang.org/protobuf v0.0.0-20200221191635-4d8936d0db64/go.mod h1:kwYJMbMJ01Woi6D6+Kah6886xMZcty6N08ah7+eCXa0= google.golang.org/protobuf v0.0.0-20200228230310-ab0ca4ff8a60/go.mod h1:cfTl7dwQJ+fmap5saPgwCLgHXTUD7jkjRqWcaiX5VyM= google.golang.org/protobuf v1.20.1-0.20200309200217-e05f789c0967/go.mod h1:A+miEFZTKqfCUM6K7xSMQL9OKL/b6hQv+e19PK+JZNE= google.golang.org/protobuf v1.21.0/go.mod h1:47Nbq4nVaFHyn7ilMalzfO3qCViNmqZ2kzikPIcrTAo= -google.golang.org/protobuf v1.22.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= google.golang.org/protobuf v1.23.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= -google.golang.org/protobuf v1.23.1-0.20200526195155-81db48ad09cc/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= -google.golang.org/protobuf v1.25.0/go.mod h1:9JNX74DMeImyA3h4bdi1ymwjUzf21/xIlbajtzgsN7c= google.golang.org/protobuf v1.36.12-0.20260120151049-f2248ac996af h1:+5/Sw3GsDNlEmu7TfklWKPdQ0Ykja5VEmq2i817+jbI= google.golang.org/protobuf v1.36.12-0.20260120151049-f2248ac996af/go.mod h1:HTf+CrKn2C3g5S8VImy6tdcUvCska2kB7j23XfzDpco= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= @@ -425,11 +370,8 @@ gopkg.in/yaml.v2 v2.2.8/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.3.0/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.4.0 h1:D8xgwECY7CYvx+Y2n4sBz93Jn9JRvxdiyyo8CTfuKaY= gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ= -gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= -honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= -honnef.co/go/tools v0.0.0-20190523083050-ea95bdfd59fc/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= k8s.io/api v0.36.2 h1:TF6YDLIzKfccK7cq9YpTcGX8TJmEkHVRv78DM51fRYY= k8s.io/api v0.36.2/go.mod h1:F4LbMO4brjZYh7yFkXWhynSvtB7YauxV4c+HHkNRGNg= k8s.io/apiextensions-apiserver v0.36.2 h1:3O5gqOj/dt2XWWbpMe+TXWpE9yU6pjM/tXxtHHJT/K4= diff --git a/pkg/cloudprovider/gcp.go b/pkg/cloudprovider/gcp.go index c44969732..6a181ac7d 100644 --- a/pkg/cloudprovider/gcp.go +++ b/pkg/cloudprovider/gcp.go @@ -9,6 +9,7 @@ import ( "strings" "sync" + goauth "golang.org/x/oauth2/google" google "google.golang.org/api/compute/v1" "google.golang.org/api/option" corev1 "k8s.io/api/core/v1" @@ -52,8 +53,27 @@ func (g *GCP) initCredentials() (err error) { return err } + // Parse the credential type to allow restricting which credential types are + // accepted from external sources. In this case, there are no restrictions + // so we simply pass the type through. + var f struct { + Type string `json:"type"` + } + if err := json.Unmarshal(credentialsJSON, &f); err != nil { + return fmt.Errorf("error: cannot parse credentials JSON type: %w", err) + } + + creds, err := goauth.CredentialsFromJSONWithType(g.ctx, credentialsJSON, goauth.CredentialsType(f.Type), google.CloudPlatformScope) + if err != nil { + return fmt.Errorf("error: cannot parse credentials JSON: %w", err) + } + ud, err := creds.GetUniverseDomain() + if err != nil { + return fmt.Errorf("error: cannot get universe domain from credentials: %w", err) + } opts := []option.ClientOption{ - option.WithCredentialsJSON(credentialsJSON), + option.WithAuthCredentialsJSON(option.CredentialsType(f.Type), credentialsJSON), + option.WithUniverseDomain(ud), option.WithUserAgent(UserAgent), } if g.cfg.APIOverride != "" { diff --git a/vendor/cloud.google.com/go/auth/CHANGES.md b/vendor/cloud.google.com/go/auth/CHANGES.md index f1b1a033e..2c1f6ff8f 100644 --- a/vendor/cloud.google.com/go/auth/CHANGES.md +++ b/vendor/cloud.google.com/go/auth/CHANGES.md @@ -1,4 +1,362 @@ -# Changelog +# Changes + +## [0.20.0](https://github.com/googleapis/google-cloud-go/releases/tag/auth%2Fv0.20.0) (2026-04-06) + +## [0.19.0](https://github.com/googleapis/google-cloud-go/releases/tag/auth%2Fv0.19.0) (2026-03-23) + +### Features + +* add OpenTelemetry gRPC and HTTP wrappers for T4 tracing (#14133) ([d38abf9](https://github.com/googleapis/google-cloud-go/commit/d38abf988d4017b4832434abae9a90874bec5ce9)) + +## [0.18.2](https://github.com/googleapis/google-cloud-go/releases/tag/auth%2Fv0.18.2) (2026-02-13) + +### Bug Fixes + +* fixes gdch credentials logic (#13741) ([f82cda5](https://github.com/googleapis/google-cloud-go/commit/f82cda58bd9885b7b8a9d8b15126f5a1e0add0dc)) + +## [0.18.1](https://github.com/googleapis/google-cloud-go/releases/tag/auth%2Fv0.18.1) (2026-01-21) + +### Bug Fixes + +* add InternalOptions.TelemetryAttributes for internal client use (#13641) ([3876978](https://github.com/googleapis/google-cloud-go/commit/38769789755ed47d85e85dcd56596109de65f780)) +* remove singleton and restore normal usage of otelgrpc.clientHandler (#13522) ([673d4b0](https://github.com/googleapis/google-cloud-go/commit/673d4b05617f833aa433f7f6a350b5cb888ea20d)) + +## [0.18.0](https://github.com/googleapis/google-cloud-go/releases/tag/auth%2Fv0.18.0) (2025-12-15) + +### Features + +* Support scopes field from impersonated credential json (#13308) ([e3f62e1](https://github.com/googleapis/google-cloud-go/commit/e3f62e102840127a0058f5cced4c9738f2bf45f2)) +* add support for parsing EC private key (#13317) ([ea6bc62](https://github.com/googleapis/google-cloud-go/commit/ea6bc62ffe2cc0a6d607d698a181b37fa46c340d)) +* deprecate unsafe credentials JSON loading options (#13397) ([0dd2a3b](https://github.com/googleapis/google-cloud-go/commit/0dd2a3bdece9a85ee7216a737559fa9f5a869545)) + +## [0.17.0](https://github.com/googleapis/google-cloud-go/releases/tag/auth%2Fv0.17.0) (2025-10-02) + +### Features + +* Add trust boundary support for service accounts and impersonation (HTTP/gRPC) (#11870) ([5c2b665](https://github.com/googleapis/google-cloud-go/commit/5c2b665f392e6dd90192f107188720aa1357e7da)) +* add trust boundary support for external accounts (#12864) ([a67a146](https://github.com/googleapis/google-cloud-go/commit/a67a146a6a88a6f1ba10c409dfce8015ecd60a64)) + +## [0.16.5](https://github.com/googleapis/google-cloud-go/compare/auth/v0.16.4...auth/v0.16.5) (2025-08-14) + + +### Bug Fixes + +* **auth:** Improve error message for unknown credentials type ([#12673](https://github.com/googleapis/google-cloud-go/issues/12673)) ([558b164](https://github.com/googleapis/google-cloud-go/commit/558b16429f621276694405fa5f2091199f2d4c4d)) +* **auth:** Set Content-Type in userTokenProvider.exchangeToken ([#12634](https://github.com/googleapis/google-cloud-go/issues/12634)) ([1197ebc](https://github.com/googleapis/google-cloud-go/commit/1197ebcbca491f8c610da732c7361c90bc6f46d0)) + +## [0.16.4](https://github.com/googleapis/google-cloud-go/compare/auth/v0.16.3...auth/v0.16.4) (2025-08-06) + + +### Bug Fixes + +* **auth:** Add UseDefaultClient: true to metadata.Options ([#12666](https://github.com/googleapis/google-cloud-go/issues/12666)) ([1482191](https://github.com/googleapis/google-cloud-go/commit/1482191e88236693efef68769752638281566766)), refs [#11078](https://github.com/googleapis/google-cloud-go/issues/11078) [#12657](https://github.com/googleapis/google-cloud-go/issues/12657) + +## [0.16.3](https://github.com/googleapis/google-cloud-go/compare/auth/v0.16.2...auth/v0.16.3) (2025-07-17) + + +### Bug Fixes + +* **auth:** Fix race condition in cachedTokenProvider.tokenAsync ([#12586](https://github.com/googleapis/google-cloud-go/issues/12586)) ([73867cc](https://github.com/googleapis/google-cloud-go/commit/73867ccc1e9808d65361bcfc0776bd95fe34dbb3)) + +## [0.16.2](https://github.com/googleapis/google-cloud-go/compare/auth/v0.16.1...auth/v0.16.2) (2025-06-04) + + +### Bug Fixes + +* **auth:** Add back DirectPath misconfiguration logging ([#11162](https://github.com/googleapis/google-cloud-go/issues/11162)) ([8d52da5](https://github.com/googleapis/google-cloud-go/commit/8d52da58da5a0ed77a0f6307d1b561bc045406a1)) +* **auth:** Remove s2a fallback option ([#12354](https://github.com/googleapis/google-cloud-go/issues/12354)) ([d5acc59](https://github.com/googleapis/google-cloud-go/commit/d5acc599cd775ddc404349e75906fa02e8ff133e)) + +## [0.16.1](https://github.com/googleapis/google-cloud-go/compare/auth/v0.16.0...auth/v0.16.1) (2025-04-23) + + +### Bug Fixes + +* **auth:** Clone detectopts before assigning TokenBindingType ([#11881](https://github.com/googleapis/google-cloud-go/issues/11881)) ([2167b02](https://github.com/googleapis/google-cloud-go/commit/2167b020fdc43b517c2b6ecca264a10e357ea035)) + +## [0.16.0](https://github.com/googleapis/google-cloud-go/compare/auth/v0.15.0...auth/v0.16.0) (2025-04-14) + + +### Features + +* **auth/credentials:** Return X.509 certificate chain as subject token ([#11948](https://github.com/googleapis/google-cloud-go/issues/11948)) ([d445a3f](https://github.com/googleapis/google-cloud-go/commit/d445a3f66272ffd5c39c4939af9bebad4582631c)), refs [#11757](https://github.com/googleapis/google-cloud-go/issues/11757) +* **auth:** Configure DirectPath bound credentials from AllowedHardBoundTokens ([#11665](https://github.com/googleapis/google-cloud-go/issues/11665)) ([0fc40bc](https://github.com/googleapis/google-cloud-go/commit/0fc40bcf4e4673704df0973e9fa65957395d7bb4)) + + +### Bug Fixes + +* **auth:** Allow non-default SA credentials for DP ([#11828](https://github.com/googleapis/google-cloud-go/issues/11828)) ([3a996b4](https://github.com/googleapis/google-cloud-go/commit/3a996b4129e6d0a34dfda6671f535d5aefb26a82)) +* **auth:** Restore calling DialContext ([#11930](https://github.com/googleapis/google-cloud-go/issues/11930)) ([9ec9a29](https://github.com/googleapis/google-cloud-go/commit/9ec9a29494e93197edbaf45aba28984801e9770a)), refs [#11118](https://github.com/googleapis/google-cloud-go/issues/11118) + +## [0.15.0](https://github.com/googleapis/google-cloud-go/compare/auth/v0.14.1...auth/v0.15.0) (2025-02-19) + + +### Features + +* **auth:** Add hard-bound token request to compute token provider. ([#11588](https://github.com/googleapis/google-cloud-go/issues/11588)) ([0e608bb](https://github.com/googleapis/google-cloud-go/commit/0e608bb5ac3d694c8ad36ca4340071d3a2c78699)) + +## [0.14.1](https://github.com/googleapis/google-cloud-go/compare/auth/v0.14.0...auth/v0.14.1) (2025-01-24) + + +### Documentation + +* **auth:** Add warning about externally-provided credentials ([#11462](https://github.com/googleapis/google-cloud-go/issues/11462)) ([49fb6ff](https://github.com/googleapis/google-cloud-go/commit/49fb6ff4d754895f82c9c4d502fc7547d3b5a941)) + +## [0.14.0](https://github.com/googleapis/google-cloud-go/compare/auth/v0.13.0...auth/v0.14.0) (2025-01-08) + + +### Features + +* **auth:** Add universe domain support to idtoken ([#11059](https://github.com/googleapis/google-cloud-go/issues/11059)) ([72add7e](https://github.com/googleapis/google-cloud-go/commit/72add7e9f8f455af695e8ef79212a4bd3122fb3a)) + + +### Bug Fixes + +* **auth/oauth2adapt:** Update golang.org/x/net to v0.33.0 ([e9b0b69](https://github.com/googleapis/google-cloud-go/commit/e9b0b69644ea5b276cacff0a707e8a5e87efafc9)) +* **auth:** Fix copy of delegates in impersonate.NewIDTokenCredentials ([#11386](https://github.com/googleapis/google-cloud-go/issues/11386)) ([ff7ef8e](https://github.com/googleapis/google-cloud-go/commit/ff7ef8e7ade7171bce3e4f30ff10a2e9f6c27ca0)), refs [#11379](https://github.com/googleapis/google-cloud-go/issues/11379) +* **auth:** Update golang.org/x/net to v0.33.0 ([e9b0b69](https://github.com/googleapis/google-cloud-go/commit/e9b0b69644ea5b276cacff0a707e8a5e87efafc9)) + +## [0.13.0](https://github.com/googleapis/google-cloud-go/compare/auth/v0.12.1...auth/v0.13.0) (2024-12-13) + + +### Features + +* **auth:** Add logging support ([#11079](https://github.com/googleapis/google-cloud-go/issues/11079)) ([c80e31d](https://github.com/googleapis/google-cloud-go/commit/c80e31df5ecb33a810be3dfb9d9e27ac531aa91d)) +* **auth:** Pass logger from auth layer to metadata package ([#11288](https://github.com/googleapis/google-cloud-go/issues/11288)) ([b552efd](https://github.com/googleapis/google-cloud-go/commit/b552efd6ab34e5dfded18438e0fbfd925805614f)) + + +### Bug Fixes + +* **auth:** Check compute cred type before non-default flag for DP ([#11255](https://github.com/googleapis/google-cloud-go/issues/11255)) ([4347ca1](https://github.com/googleapis/google-cloud-go/commit/4347ca141892be8ae813399b4b437662a103bc90)) + +## [0.12.1](https://github.com/googleapis/google-cloud-go/compare/auth/v0.12.0...auth/v0.12.1) (2024-12-10) + + +### Bug Fixes + +* **auth:** Correct typo in link ([#11160](https://github.com/googleapis/google-cloud-go/issues/11160)) ([af6fb46](https://github.com/googleapis/google-cloud-go/commit/af6fb46d7cd694ddbe8c9d63bc4cdcd62b9fb2c1)) + +## [0.12.0](https://github.com/googleapis/google-cloud-go/compare/auth/v0.11.0...auth/v0.12.0) (2024-12-04) + + +### Features + +* **auth:** Add support for providing custom certificate URL ([#11006](https://github.com/googleapis/google-cloud-go/issues/11006)) ([ebf3657](https://github.com/googleapis/google-cloud-go/commit/ebf36579724afb375d3974cf1da38f703e3b7dbc)), refs [#11005](https://github.com/googleapis/google-cloud-go/issues/11005) + + +### Bug Fixes + +* **auth:** Ensure endpoints are present in Validator ([#11209](https://github.com/googleapis/google-cloud-go/issues/11209)) ([106cd53](https://github.com/googleapis/google-cloud-go/commit/106cd53309facaef1b8ea78376179f523f6912b9)), refs [#11006](https://github.com/googleapis/google-cloud-go/issues/11006) [#11190](https://github.com/googleapis/google-cloud-go/issues/11190) [#11189](https://github.com/googleapis/google-cloud-go/issues/11189) [#11188](https://github.com/googleapis/google-cloud-go/issues/11188) + +## [0.11.0](https://github.com/googleapis/google-cloud-go/compare/auth/v0.10.2...auth/v0.11.0) (2024-11-21) + + +### Features + +* **auth:** Add universe domain support to mTLS ([#11159](https://github.com/googleapis/google-cloud-go/issues/11159)) ([117748b](https://github.com/googleapis/google-cloud-go/commit/117748ba1cfd4ae62a6a4feb7e30951cb2bc9344)) + +## [0.10.2](https://github.com/googleapis/google-cloud-go/compare/auth/v0.10.1...auth/v0.10.2) (2024-11-12) + + +### Bug Fixes + +* **auth:** Restore use of grpc.Dial ([#11118](https://github.com/googleapis/google-cloud-go/issues/11118)) ([2456b94](https://github.com/googleapis/google-cloud-go/commit/2456b943b7b8aaabd4d8bfb7572c0f477ae0db45)), refs [#7556](https://github.com/googleapis/google-cloud-go/issues/7556) + +## [0.10.1](https://github.com/googleapis/google-cloud-go/compare/auth/v0.10.0...auth/v0.10.1) (2024-11-06) + + +### Bug Fixes + +* **auth:** Restore Application Default Credentials support to idtoken ([#11083](https://github.com/googleapis/google-cloud-go/issues/11083)) ([8771f2e](https://github.com/googleapis/google-cloud-go/commit/8771f2ea9807ab822083808e0678392edff3b4f2)) +* **auth:** Skip impersonate universe domain check if empty ([#11086](https://github.com/googleapis/google-cloud-go/issues/11086)) ([87159c1](https://github.com/googleapis/google-cloud-go/commit/87159c1059d4a18d1367ce62746a838a94964ab6)) + +## [0.10.0](https://github.com/googleapis/google-cloud-go/compare/auth/v0.9.9...auth/v0.10.0) (2024-10-30) + + +### Features + +* **auth:** Add universe domain support to credentials/impersonate ([#10953](https://github.com/googleapis/google-cloud-go/issues/10953)) ([e06cb64](https://github.com/googleapis/google-cloud-go/commit/e06cb6499f7eda3aef08ab18ff197016f667684b)) + +## [0.9.9](https://github.com/googleapis/google-cloud-go/compare/auth/v0.9.8...auth/v0.9.9) (2024-10-22) + + +### Bug Fixes + +* **auth:** Fallback cert lookups for missing files ([#11013](https://github.com/googleapis/google-cloud-go/issues/11013)) ([bd76695](https://github.com/googleapis/google-cloud-go/commit/bd766957ec238b7c40ddbabb369e612dc9b07313)), refs [#10844](https://github.com/googleapis/google-cloud-go/issues/10844) +* **auth:** Replace MDS endpoint universe_domain with universe-domain ([#11000](https://github.com/googleapis/google-cloud-go/issues/11000)) ([6a1586f](https://github.com/googleapis/google-cloud-go/commit/6a1586f2ce9974684affaea84e7b629313b4d114)) + +## [0.9.8](https://github.com/googleapis/google-cloud-go/compare/auth/v0.9.7...auth/v0.9.8) (2024-10-09) + + +### Bug Fixes + +* **auth:** Restore OpenTelemetry handling in transports ([#10968](https://github.com/googleapis/google-cloud-go/issues/10968)) ([08c6d04](https://github.com/googleapis/google-cloud-go/commit/08c6d04901c1a20e219b2d86df41dbaa6d7d7b55)), refs [#10962](https://github.com/googleapis/google-cloud-go/issues/10962) +* **auth:** Try talk to plaintext S2A if credentials can not be found for mTLS-S2A ([#10941](https://github.com/googleapis/google-cloud-go/issues/10941)) ([0f0bf2d](https://github.com/googleapis/google-cloud-go/commit/0f0bf2d18c97dd8b65bcf0099f0802b5631c6287)) + +## [0.9.7](https://github.com/googleapis/google-cloud-go/compare/auth/v0.9.6...auth/v0.9.7) (2024-10-01) + + +### Bug Fixes + +* **auth:** Restore support for non-default service accounts for DirectPath ([#10937](https://github.com/googleapis/google-cloud-go/issues/10937)) ([a38650e](https://github.com/googleapis/google-cloud-go/commit/a38650edbf420223077498cafa537aec74b37aad)), refs [#10907](https://github.com/googleapis/google-cloud-go/issues/10907) + +## [0.9.6](https://github.com/googleapis/google-cloud-go/compare/auth/v0.9.5...auth/v0.9.6) (2024-09-30) + + +### Bug Fixes + +* **auth:** Make aws credentials provider retrieve fresh credentials ([#10920](https://github.com/googleapis/google-cloud-go/issues/10920)) ([250fbf8](https://github.com/googleapis/google-cloud-go/commit/250fbf87d858d865e399a241b7e537c4ff0c3dd8)) + +## [0.9.5](https://github.com/googleapis/google-cloud-go/compare/auth/v0.9.4...auth/v0.9.5) (2024-09-25) + + +### Bug Fixes + +* **auth:** Restore support for GOOGLE_CLOUD_UNIVERSE_DOMAIN env ([#10915](https://github.com/googleapis/google-cloud-go/issues/10915)) ([94caaaa](https://github.com/googleapis/google-cloud-go/commit/94caaaa061362d0e00ef6214afcc8a0a3e7ebfb2)) +* **auth:** Skip directpath credentials overwrite when it's not on GCE ([#10833](https://github.com/googleapis/google-cloud-go/issues/10833)) ([7e5e8d1](https://github.com/googleapis/google-cloud-go/commit/7e5e8d10b761b0a6e43e19a028528db361bc07b1)) +* **auth:** Use new context for non-blocking token refresh ([#10919](https://github.com/googleapis/google-cloud-go/issues/10919)) ([cf7102d](https://github.com/googleapis/google-cloud-go/commit/cf7102d33a21be1e5a9d47a49456b3a57c43b350)) + +## [0.9.4](https://github.com/googleapis/google-cloud-go/compare/auth/v0.9.3...auth/v0.9.4) (2024-09-11) + + +### Bug Fixes + +* **auth:** Enable self-signed JWT for non-GDU universe domain ([#10831](https://github.com/googleapis/google-cloud-go/issues/10831)) ([f9869f7](https://github.com/googleapis/google-cloud-go/commit/f9869f7903cfd34d1b97c25d0dc5669d2c5138e6)) + +## [0.9.3](https://github.com/googleapis/google-cloud-go/compare/auth/v0.9.2...auth/v0.9.3) (2024-09-03) + + +### Bug Fixes + +* **auth:** Choose quota project envvar over file when both present ([#10807](https://github.com/googleapis/google-cloud-go/issues/10807)) ([2d8dd77](https://github.com/googleapis/google-cloud-go/commit/2d8dd7700eff92d4b95027be55e26e1e7aa79181)), refs [#10804](https://github.com/googleapis/google-cloud-go/issues/10804) + +## [0.9.2](https://github.com/googleapis/google-cloud-go/compare/auth/v0.9.1...auth/v0.9.2) (2024-08-30) + + +### Bug Fixes + +* **auth:** Handle non-Transport DefaultTransport ([#10733](https://github.com/googleapis/google-cloud-go/issues/10733)) ([98d91dc](https://github.com/googleapis/google-cloud-go/commit/98d91dc8316b247498fab41ab35e57a0446fe556)), refs [#10742](https://github.com/googleapis/google-cloud-go/issues/10742) +* **auth:** Make sure quota option takes precedence over env/file ([#10797](https://github.com/googleapis/google-cloud-go/issues/10797)) ([f1b050d](https://github.com/googleapis/google-cloud-go/commit/f1b050d56d804b245cab048c2980d32b0eaceb4e)), refs [#10795](https://github.com/googleapis/google-cloud-go/issues/10795) + + +### Documentation + +* **auth:** Fix Go doc comment link ([#10751](https://github.com/googleapis/google-cloud-go/issues/10751)) ([015acfa](https://github.com/googleapis/google-cloud-go/commit/015acfab4d172650928bb1119bc2cd6307b9a437)) + +## [0.9.1](https://github.com/googleapis/google-cloud-go/compare/auth/v0.9.0...auth/v0.9.1) (2024-08-22) + + +### Bug Fixes + +* **auth:** Setting expireEarly to default when the value is 0 ([#10732](https://github.com/googleapis/google-cloud-go/issues/10732)) ([5e67869](https://github.com/googleapis/google-cloud-go/commit/5e67869a31e9e8ecb4eeebd2cfa11a761c3b1948)) + +## [0.9.0](https://github.com/googleapis/google-cloud-go/compare/auth/v0.8.1...auth/v0.9.0) (2024-08-16) + + +### Features + +* **auth:** Auth library can talk to S2A over mTLS ([#10634](https://github.com/googleapis/google-cloud-go/issues/10634)) ([5250a13](https://github.com/googleapis/google-cloud-go/commit/5250a13ec95b8d4eefbe0158f82857ff2189cb45)) + +## [0.8.1](https://github.com/googleapis/google-cloud-go/compare/auth/v0.8.0...auth/v0.8.1) (2024-08-13) + + +### Bug Fixes + +* **auth:** Make default client creation more lenient ([#10669](https://github.com/googleapis/google-cloud-go/issues/10669)) ([1afb9ee](https://github.com/googleapis/google-cloud-go/commit/1afb9ee1ee9de9810722800018133304a0ca34d1)), refs [#10638](https://github.com/googleapis/google-cloud-go/issues/10638) + +## [0.8.0](https://github.com/googleapis/google-cloud-go/compare/auth/v0.7.3...auth/v0.8.0) (2024-08-07) + + +### Features + +* **auth:** Adds support for X509 workload identity federation ([#10373](https://github.com/googleapis/google-cloud-go/issues/10373)) ([5d07505](https://github.com/googleapis/google-cloud-go/commit/5d075056cbe27bb1da4072a26070c41f8999eb9b)) + +## [0.7.3](https://github.com/googleapis/google-cloud-go/compare/auth/v0.7.2...auth/v0.7.3) (2024-08-01) + + +### Bug Fixes + +* **auth/oauth2adapt:** Update dependencies ([257c40b](https://github.com/googleapis/google-cloud-go/commit/257c40bd6d7e59730017cf32bda8823d7a232758)) +* **auth:** Disable automatic universe domain check for MDS ([#10620](https://github.com/googleapis/google-cloud-go/issues/10620)) ([7cea5ed](https://github.com/googleapis/google-cloud-go/commit/7cea5edd5a0c1e6bca558696f5607879141910e8)) +* **auth:** Update dependencies ([257c40b](https://github.com/googleapis/google-cloud-go/commit/257c40bd6d7e59730017cf32bda8823d7a232758)) + +## [0.7.2](https://github.com/googleapis/google-cloud-go/compare/auth/v0.7.1...auth/v0.7.2) (2024-07-22) + + +### Bug Fixes + +* **auth:** Use default client for universe metadata lookup ([#10551](https://github.com/googleapis/google-cloud-go/issues/10551)) ([d9046fd](https://github.com/googleapis/google-cloud-go/commit/d9046fdd1435d1ce48f374806c1def4cb5ac6cd3)), refs [#10544](https://github.com/googleapis/google-cloud-go/issues/10544) + +## [0.7.1](https://github.com/googleapis/google-cloud-go/compare/auth/v0.7.0...auth/v0.7.1) (2024-07-10) + + +### Bug Fixes + +* **auth:** Bump google.golang.org/grpc@v1.64.1 ([8ecc4e9](https://github.com/googleapis/google-cloud-go/commit/8ecc4e9622e5bbe9b90384d5848ab816027226c5)) + +## [0.7.0](https://github.com/googleapis/google-cloud-go/compare/auth/v0.6.1...auth/v0.7.0) (2024-07-09) + + +### Features + +* **auth:** Add workload X509 cert provider as a default cert provider ([#10479](https://github.com/googleapis/google-cloud-go/issues/10479)) ([c51ee6c](https://github.com/googleapis/google-cloud-go/commit/c51ee6cf65ce05b4d501083e49d468c75ac1ea63)) + + +### Bug Fixes + +* **auth/oauth2adapt:** Bump google.golang.org/api@v0.187.0 ([8fa9e39](https://github.com/googleapis/google-cloud-go/commit/8fa9e398e512fd8533fd49060371e61b5725a85b)) +* **auth:** Bump google.golang.org/api@v0.187.0 ([8fa9e39](https://github.com/googleapis/google-cloud-go/commit/8fa9e398e512fd8533fd49060371e61b5725a85b)) +* **auth:** Check len of slices, not non-nil ([#10483](https://github.com/googleapis/google-cloud-go/issues/10483)) ([0a966a1](https://github.com/googleapis/google-cloud-go/commit/0a966a183e5f0e811977216d736d875b7233e942)) + +## [0.6.1](https://github.com/googleapis/google-cloud-go/compare/auth/v0.6.0...auth/v0.6.1) (2024-07-01) + + +### Bug Fixes + +* **auth:** Support gRPC API keys ([#10460](https://github.com/googleapis/google-cloud-go/issues/10460)) ([daa6646](https://github.com/googleapis/google-cloud-go/commit/daa6646d2af5d7fb5b30489f4934c7db89868c7c)) +* **auth:** Update http and grpc transports to support token exchange over mTLS ([#10397](https://github.com/googleapis/google-cloud-go/issues/10397)) ([c6dfdcf](https://github.com/googleapis/google-cloud-go/commit/c6dfdcf893c3f971eba15026c12db0a960ae81f2)) + +## [0.6.0](https://github.com/googleapis/google-cloud-go/compare/auth/v0.5.2...auth/v0.6.0) (2024-06-25) + + +### Features + +* **auth:** Add non-blocking token refresh for compute MDS ([#10263](https://github.com/googleapis/google-cloud-go/issues/10263)) ([9ac350d](https://github.com/googleapis/google-cloud-go/commit/9ac350da11a49b8e2174d3fc5b1a5070fec78b4e)) + + +### Bug Fixes + +* **auth:** Return error if envvar detected file returns an error ([#10431](https://github.com/googleapis/google-cloud-go/issues/10431)) ([e52b9a7](https://github.com/googleapis/google-cloud-go/commit/e52b9a7c45468827f5d220ab00965191faeb9d05)) + +## [0.5.2](https://github.com/googleapis/google-cloud-go/compare/auth/v0.5.1...auth/v0.5.2) (2024-06-24) + + +### Bug Fixes + +* **auth:** Fetch initial token when CachedTokenProviderOptions.DisableAutoRefresh is true ([#10415](https://github.com/googleapis/google-cloud-go/issues/10415)) ([3266763](https://github.com/googleapis/google-cloud-go/commit/32667635ca2efad05cd8c087c004ca07d7406913)), refs [#10414](https://github.com/googleapis/google-cloud-go/issues/10414) + +## [0.5.1](https://github.com/googleapis/google-cloud-go/compare/auth/v0.5.0...auth/v0.5.1) (2024-05-31) + + +### Bug Fixes + +* **auth:** Pass through client to 2LO and 3LO flows ([#10290](https://github.com/googleapis/google-cloud-go/issues/10290)) ([685784e](https://github.com/googleapis/google-cloud-go/commit/685784ea84358c15e9214bdecb307d37aa3b6d2f)) + +## [0.5.0](https://github.com/googleapis/google-cloud-go/compare/auth/v0.4.2...auth/v0.5.0) (2024-05-28) + + +### Features + +* **auth:** Adds X509 workload certificate provider ([#10233](https://github.com/googleapis/google-cloud-go/issues/10233)) ([17a9db7](https://github.com/googleapis/google-cloud-go/commit/17a9db73af35e3d1a7a25ac4fd1377a103de6150)) + +## [0.4.2](https://github.com/googleapis/google-cloud-go/compare/auth/v0.4.1...auth/v0.4.2) (2024-05-16) + + +### Bug Fixes + +* **auth:** Enable client certificates by default only for GDU ([#10151](https://github.com/googleapis/google-cloud-go/issues/10151)) ([7c52978](https://github.com/googleapis/google-cloud-go/commit/7c529786275a39b7e00525f7d5e7be0d963e9e15)) +* **auth:** Handle non-Transport DefaultTransport ([#10162](https://github.com/googleapis/google-cloud-go/issues/10162)) ([fa3bfdb](https://github.com/googleapis/google-cloud-go/commit/fa3bfdb23aaa45b34394a8b61e753b3587506782)), refs [#10159](https://github.com/googleapis/google-cloud-go/issues/10159) +* **auth:** Have refresh time match docs ([#10147](https://github.com/googleapis/google-cloud-go/issues/10147)) ([bcb5568](https://github.com/googleapis/google-cloud-go/commit/bcb5568c07a54dd3d2e869d15f502b0741a609e8)) +* **auth:** Update compute token fetching error with named prefix ([#10180](https://github.com/googleapis/google-cloud-go/issues/10180)) ([4573504](https://github.com/googleapis/google-cloud-go/commit/4573504828d2928bebedc875d87650ba227829ea)) ## [0.4.1](https://github.com/googleapis/google-cloud-go/compare/auth/v0.4.0...auth/v0.4.1) (2024-05-09) diff --git a/vendor/cloud.google.com/go/auth/README.md b/vendor/cloud.google.com/go/auth/README.md index 36de276a0..6fe4f0763 100644 --- a/vendor/cloud.google.com/go/auth/README.md +++ b/vendor/cloud.google.com/go/auth/README.md @@ -1,4 +1,40 @@ -# auth +# Google Auth Library for Go -This module is currently EXPERIMENTAL and under active development. It is not -yet intended to be used. +[![Go Reference](https://pkg.go.dev/badge/cloud.google.com/go/auth.svg)](https://pkg.go.dev/cloud.google.com/go/auth) + +## Install + +``` bash +go get cloud.google.com/go/auth@latest +``` + +## Usage + +The most common way this library is used is transitively, by default, from any +of our Go client libraries. + +### Notable use-cases + +- To create a credential directly please see examples in the + [credentials](https://pkg.go.dev/cloud.google.com/go/auth/credentials) + package. +- To create a authenticated HTTP client please see examples in the + [httptransport](https://pkg.go.dev/cloud.google.com/go/auth/httptransport) + package. +- To create a authenticated gRPC connection please see examples in the + [grpctransport](https://pkg.go.dev/cloud.google.com/go/auth/grpctransport) + package. +- To create an ID token please see examples in the + [idtoken](https://pkg.go.dev/cloud.google.com/go/auth/credentials/idtoken) + package. + +## Contributing + +Contributions are welcome. Please, see the +[CONTRIBUTING](https://github.com/GoogleCloudPlatform/google-cloud-go/blob/main/CONTRIBUTING.md) +document for details. + +Please note that this project is released with a Contributor Code of Conduct. +By participating in this project you agree to abide by its terms. +See [Contributor Code of Conduct](https://github.com/GoogleCloudPlatform/google-cloud-go/blob/main/CONTRIBUTING.md#contributor-code-of-conduct) +for more information. diff --git a/vendor/cloud.google.com/go/auth/auth.go b/vendor/cloud.google.com/go/auth/auth.go index ea7c1b0ad..c6d801583 100644 --- a/vendor/cloud.google.com/go/auth/auth.go +++ b/vendor/cloud.google.com/go/auth/auth.go @@ -12,6 +12,11 @@ // See the License for the specific language governing permissions and // limitations under the License. +// Package auth provides utilities for managing Google Cloud credentials, +// including functionality for creating, caching, and refreshing OAuth2 tokens. +// It offers customizable options for different OAuth2 flows, such as 2-legged +// (2LO) and 3-legged (3LO) OAuth, along with support for PKCE and automatic +// token management. package auth import ( @@ -19,6 +24,7 @@ import ( "encoding/json" "errors" "fmt" + "log/slog" "net/http" "net/url" "strings" @@ -27,6 +33,7 @@ import ( "cloud.google.com/go/auth/internal" "cloud.google.com/go/auth/internal/jwt" + "github.com/googleapis/gax-go/v2/internallog" ) const ( @@ -39,11 +46,26 @@ const ( // 3 minutes and 45 seconds before expiration. The shortest MDS cache is 4 minutes, // so we give it 15 seconds to refresh it's cache before attempting to refresh a token. - defaultExpiryDelta = 215 * time.Second + defaultExpiryDelta = 225 * time.Second universeDomainDefault = "googleapis.com" ) +// tokenState represents different states for a [Token]. +type tokenState int + +const ( + // fresh indicates that the [Token] is valid. It is not expired or close to + // expired, or the token has no expiry. + fresh tokenState = iota + // stale indicates that the [Token] is close to expired, and should be + // refreshed. The token can be used normally. + stale + // invalid indicates that the [Token] is expired or invalid. The token + // cannot be used for a normal operation. + invalid +) + var ( defaultGrantType = "urn:ietf:params:oauth:grant-type:jwt-bearer" defaultHeader = &jwt.Header{Algorithm: jwt.HeaderAlgRSA256, Type: jwt.HeaderType} @@ -81,13 +103,27 @@ type Token struct { // IsValid reports that a [Token] is non-nil, has a [Token.Value], and has not // expired. A token is considered expired if [Token.Expiry] has passed or will -// pass in the next 10 seconds. +// pass in the next 225 seconds. func (t *Token) IsValid() bool { return t.isValidWithEarlyExpiry(defaultExpiryDelta) } +// MetadataString is a convenience method for accessing string values in the +// token's metadata. Returns an empty string if the metadata is nil or the value +// for the given key cannot be cast to a string. +func (t *Token) MetadataString(k string) string { + if t.Metadata == nil { + return "" + } + s, ok := t.Metadata[k].(string) + if !ok { + return "" + } + return s +} + func (t *Token) isValidWithEarlyExpiry(earlyExpiry time.Duration) bool { - if t == nil || t.Value == "" { + if t.isEmpty() { return false } if t.Expiry.IsZero() { @@ -96,8 +132,14 @@ func (t *Token) isValidWithEarlyExpiry(earlyExpiry time.Duration) bool { return !t.Expiry.Round(0).Add(-earlyExpiry).Before(timeNow()) } +func (t *Token) isEmpty() bool { + return t == nil || t.Value == "" +} + // Credentials holds Google credentials, including -// [Application Default Credentials](https://developers.google.com/accounts/docs/application-default-credentials). +// [Application Default Credentials]. +// +// [Application Default Credentials]: https://developers.google.com/accounts/docs/application-default-credentials type Credentials struct { json []byte projectID CredentialsPropertyProvider @@ -187,9 +229,7 @@ type CredentialsOptions struct { UniverseDomainProvider CredentialsPropertyProvider } -// NewCredentials returns new [Credentials] from the provided options. Most users -// will want to build this object a function from the -// [cloud.google.com/go/auth/credentials] package. +// NewCredentials returns new [Credentials] from the provided options. func NewCredentials(opts *CredentialsOptions) *Credentials { creds := &Credentials{ TokenProvider: opts.TokenProvider, @@ -202,15 +242,19 @@ func NewCredentials(opts *CredentialsOptions) *Credentials { return creds } -// CachedTokenProviderOptions provided options for configuring a -// CachedTokenProvider. +// CachedTokenProviderOptions provides options for configuring a cached +// [TokenProvider]. type CachedTokenProviderOptions struct { // DisableAutoRefresh makes the TokenProvider always return the same token, - // even if it is expired. + // even if it is expired. The default is false. Optional. DisableAutoRefresh bool // ExpireEarly configures the amount of time before a token expires, that it - // should be refreshed. If unset, the default value is 10 seconds. + // should be refreshed. If unset, the default value is 3 minutes and 45 + // seconds. Optional. ExpireEarly time.Duration + // DisableAsyncRefresh configures a synchronous workflow that refreshes + // tokens in a blocking manner. The default is false. Optional. + DisableAsyncRefresh bool } func (ctpo *CachedTokenProviderOptions) autoRefresh() bool { @@ -221,40 +265,128 @@ func (ctpo *CachedTokenProviderOptions) autoRefresh() bool { } func (ctpo *CachedTokenProviderOptions) expireEarly() time.Duration { - if ctpo == nil { + if ctpo == nil || ctpo.ExpireEarly == 0 { return defaultExpiryDelta } return ctpo.ExpireEarly } +func (ctpo *CachedTokenProviderOptions) blockingRefresh() bool { + if ctpo == nil { + return false + } + return ctpo.DisableAsyncRefresh +} + // NewCachedTokenProvider wraps a [TokenProvider] to cache the tokens returned -// by the underlying provider. By default it will refresh tokens ten seconds -// before they expire, but this time can be configured with the optional -// options. +// by the underlying provider. By default it will refresh tokens asynchronously +// a few minutes before they expire. func NewCachedTokenProvider(tp TokenProvider, opts *CachedTokenProviderOptions) TokenProvider { if ctp, ok := tp.(*cachedTokenProvider); ok { return ctp } return &cachedTokenProvider{ - tp: tp, - autoRefresh: opts.autoRefresh(), - expireEarly: opts.expireEarly(), + tp: tp, + autoRefresh: opts.autoRefresh(), + expireEarly: opts.expireEarly(), + blockingRefresh: opts.blockingRefresh(), } } type cachedTokenProvider struct { - tp TokenProvider - autoRefresh bool - expireEarly time.Duration + tp TokenProvider + autoRefresh bool + expireEarly time.Duration + blockingRefresh bool mu sync.Mutex cachedToken *Token + // isRefreshRunning ensures that the non-blocking refresh will only be + // attempted once, even if multiple callers enter the Token method. + isRefreshRunning bool + // isRefreshErr ensures that the non-blocking refresh will only be attempted + // once per refresh window if an error is encountered. + isRefreshErr bool } func (c *cachedTokenProvider) Token(ctx context.Context) (*Token, error) { + if c.blockingRefresh { + return c.tokenBlocking(ctx) + } + return c.tokenNonBlocking(ctx) +} + +func (c *cachedTokenProvider) tokenNonBlocking(ctx context.Context) (*Token, error) { + switch c.tokenState() { + case fresh: + c.mu.Lock() + defer c.mu.Unlock() + return c.cachedToken, nil + case stale: + // Call tokenAsync with a new Context because the user-provided context + // may have a short timeout incompatible with async token refresh. + c.tokenAsync(context.Background()) + // Return the stale token immediately to not block customer requests to Cloud services. + c.mu.Lock() + defer c.mu.Unlock() + return c.cachedToken, nil + default: // invalid + return c.tokenBlocking(ctx) + } +} + +// tokenState reports the token's validity. +func (c *cachedTokenProvider) tokenState() tokenState { + c.mu.Lock() + defer c.mu.Unlock() + t := c.cachedToken + now := timeNow() + if t == nil || t.Value == "" { + return invalid + } else if t.Expiry.IsZero() { + return fresh + } else if now.After(t.Expiry.Round(0)) { + return invalid + } else if now.After(t.Expiry.Round(0).Add(-c.expireEarly)) { + return stale + } + return fresh +} + +// tokenAsync uses a bool to ensure that only one non-blocking token refresh +// happens at a time, even if multiple callers have entered this function +// concurrently. This avoids creating an arbitrary number of concurrent +// goroutines. Retries should be attempted and managed within the Token method. +// If the refresh attempt fails, no further attempts are made until the refresh +// window expires and the token enters the invalid state, at which point the +// blocking call to Token should likely return the same error on the main goroutine. +func (c *cachedTokenProvider) tokenAsync(ctx context.Context) { + fn := func() { + t, err := c.tp.Token(ctx) + c.mu.Lock() + defer c.mu.Unlock() + c.isRefreshRunning = false + if err != nil { + // Discard errors from the non-blocking refresh, but prevent further + // attempts. + c.isRefreshErr = true + return + } + c.cachedToken = t + } + c.mu.Lock() + defer c.mu.Unlock() + if !c.isRefreshRunning && !c.isRefreshErr { + c.isRefreshRunning = true + go fn() + } +} + +func (c *cachedTokenProvider) tokenBlocking(ctx context.Context) (*Token, error) { c.mu.Lock() defer c.mu.Unlock() - if c.cachedToken.IsValid() || !c.autoRefresh { + c.isRefreshErr = false + if c.cachedToken.IsValid() || (!c.autoRefresh && !c.cachedToken.isEmpty()) { return c.cachedToken, nil } t, err := c.tp.Token(ctx) @@ -351,6 +483,8 @@ type Options2LO struct { Audience string // PrivateClaims allows specifying any custom claims for the JWT. Optional. PrivateClaims map[string]interface{} + // UniverseDomain is the default service domain for a given Cloud universe. + UniverseDomain string // Client is the client to be used to make the underlying token requests. // Optional. @@ -358,13 +492,18 @@ type Options2LO struct { // UseIDToken requests that the token returned be an ID token if one is // returned from the server. Optional. UseIDToken bool + // Logger is used for debug logging. If provided, logging will be enabled + // at the loggers configured level. By default logging is disabled unless + // enabled by setting GOOGLE_SDK_GO_LOGGING_LEVEL in which case a default + // logger will be used. Optional. + Logger *slog.Logger } func (o *Options2LO) client() *http.Client { if o.Client != nil { return o.Client } - return internal.CloneDefaultClient() + return internal.DefaultClient() } func (o *Options2LO) validate() error { @@ -388,12 +527,13 @@ func New2LOTokenProvider(opts *Options2LO) (TokenProvider, error) { if err := opts.validate(); err != nil { return nil, err } - return tokenProvider2LO{opts: opts, Client: opts.client()}, nil + return tokenProvider2LO{opts: opts, Client: opts.client(), logger: internallog.New(opts.Logger)}, nil } type tokenProvider2LO struct { opts *Options2LO Client *http.Client + logger *slog.Logger } func (tp tokenProvider2LO) Token(ctx context.Context) (*Token, error) { @@ -423,15 +563,17 @@ func (tp tokenProvider2LO) Token(ctx context.Context) (*Token, error) { v := url.Values{} v.Set("grant_type", defaultGrantType) v.Set("assertion", payload) - resp, err := tp.Client.PostForm(tp.opts.TokenURL, v) + req, err := http.NewRequestWithContext(ctx, "POST", tp.opts.TokenURL, strings.NewReader(v.Encode())) if err != nil { - return nil, fmt.Errorf("auth: cannot fetch token: %w", err) + return nil, err } - defer resp.Body.Close() - body, err := internal.ReadAll(resp.Body) + req.Header.Set("Content-Type", "application/x-www-form-urlencoded") + tp.logger.DebugContext(ctx, "2LO token request", "request", internallog.HTTPRequest(req, []byte(v.Encode()))) + resp, body, err := internal.DoRequest(tp.Client, req) if err != nil { return nil, fmt.Errorf("auth: cannot fetch token: %w", err) } + tp.logger.DebugContext(ctx, "2LO token response", "response", internallog.HTTPResponse(resp, body)) if c := resp.StatusCode; c < http.StatusOK || c >= http.StatusMultipleChoices { return nil, &Error{ Response: resp, diff --git a/vendor/cloud.google.com/go/auth/credentials/compute.go b/vendor/cloud.google.com/go/auth/credentials/compute.go index 6db643837..a2d5c310a 100644 --- a/vendor/cloud.google.com/go/auth/credentials/compute.go +++ b/vendor/cloud.google.com/go/auth/credentials/compute.go @@ -37,15 +37,22 @@ var ( // computeTokenProvider creates a [cloud.google.com/go/auth.TokenProvider] that // uses the metadata service to retrieve tokens. -func computeTokenProvider(earlyExpiry time.Duration, scope ...string) auth.TokenProvider { - return auth.NewCachedTokenProvider(computeProvider{scopes: scope}, &auth.CachedTokenProviderOptions{ - ExpireEarly: earlyExpiry, +func computeTokenProvider(opts *DetectOptions, client *metadata.Client) auth.TokenProvider { + return auth.NewCachedTokenProvider(&computeProvider{ + scopes: opts.Scopes, + client: client, + tokenBindingType: opts.TokenBindingType, + }, &auth.CachedTokenProviderOptions{ + ExpireEarly: opts.EarlyTokenRefresh, + DisableAsyncRefresh: opts.DisableAsyncRefresh, }) } // computeProvider fetches tokens from the google cloud metadata service. type computeProvider struct { - scopes []string + scopes []string + client *metadata.Client + tokenBindingType TokenBindingType } type metadataTokenResp struct { @@ -54,19 +61,29 @@ type metadataTokenResp struct { TokenType string `json:"token_type"` } -func (cs computeProvider) Token(ctx context.Context) (*auth.Token, error) { +func (cs *computeProvider) Token(ctx context.Context) (*auth.Token, error) { tokenURI, err := url.Parse(computeTokenURI) if err != nil { return nil, err } - if len(cs.scopes) > 0 { + hasScopes := len(cs.scopes) > 0 + if hasScopes || cs.tokenBindingType != NoBinding { v := url.Values{} - v.Set("scopes", strings.Join(cs.scopes, ",")) + if hasScopes { + v.Set("scopes", strings.Join(cs.scopes, ",")) + } + switch cs.tokenBindingType { + case MTLSHardBinding: + v.Set("transport", "mtls") + v.Set("binding-enforcement", "on") + case ALTSHardBinding: + v.Set("transport", "alts") + } tokenURI.RawQuery = v.Encode() } - tokenJSON, err := metadata.Get(tokenURI.String()) + tokenJSON, err := cs.client.GetWithContext(ctx, tokenURI.String()) if err != nil { - return nil, err + return nil, fmt.Errorf("credentials: cannot fetch token: %w", err) } var res metadataTokenResp if err := json.NewDecoder(strings.NewReader(tokenJSON)).Decode(&res); err != nil { @@ -75,11 +92,11 @@ func (cs computeProvider) Token(ctx context.Context) (*auth.Token, error) { if res.ExpiresInSec == 0 || res.AccessToken == "" { return nil, errors.New("credentials: incomplete token received from metadata") } - return &auth.Token{ + token := &auth.Token{ Value: res.AccessToken, Type: res.TokenType, Expiry: time.Now().Add(time.Duration(res.ExpiresInSec) * time.Second), Metadata: computeTokenMetadata, - }, nil - + } + return token, nil } diff --git a/vendor/cloud.google.com/go/auth/credentials/detect.go b/vendor/cloud.google.com/go/auth/credentials/detect.go index cb3f44f58..c9d7600e0 100644 --- a/vendor/cloud.google.com/go/auth/credentials/detect.go +++ b/vendor/cloud.google.com/go/auth/credentials/detect.go @@ -19,6 +19,7 @@ import ( "encoding/json" "errors" "fmt" + "log/slog" "net/http" "os" "time" @@ -26,7 +27,9 @@ import ( "cloud.google.com/go/auth" "cloud.google.com/go/auth/internal" "cloud.google.com/go/auth/internal/credsfile" + "cloud.google.com/go/auth/internal/trustboundary" "cloud.google.com/go/compute/metadata" + "github.com/googleapis/gax-go/v2/internallog" ) const ( @@ -37,6 +40,9 @@ const ( googleAuthURL = "https://accounts.google.com/o/oauth2/auth" googleTokenURL = "https://oauth2.googleapis.com/token" + // GoogleMTLSTokenURL is Google's default OAuth2.0 mTLS endpoint. + GoogleMTLSTokenURL = "https://oauth2.mtls.googleapis.com/token" + // Help on default credentials adcSetupURL = "https://cloud.google.com/docs/authentication/external/set-up-adc" ) @@ -46,6 +52,61 @@ var ( allowOnGCECheck = true ) +// CredType specifies the type of JSON credentials being provided +// to a loading function such as [NewCredentialsFromFile] or +// [NewCredentialsFromJSON]. +type CredType string + +const ( + // ServiceAccount represents a service account file type. + ServiceAccount CredType = "service_account" + // AuthorizedUser represents a user credentials file type. + AuthorizedUser CredType = "authorized_user" + // ExternalAccount represents an external account file type. + // + // IMPORTANT: + // This credential type does not validate the credential configuration. A security + // risk occurs when a credential configuration configured with malicious urls + // is used. + // You should validate credential configurations provided by untrusted sources. + // See [Security requirements when using credential configurations from an external + // source] https://cloud.google.com/docs/authentication/external/externally-sourced-credentials + // for more details. + ExternalAccount CredType = "external_account" + // ImpersonatedServiceAccount represents an impersonated service account file type. + // + // IMPORTANT: + // This credential type does not validate the credential configuration. A security + // risk occurs when a credential configuration configured with malicious urls + // is used. + // You should validate credential configurations provided by untrusted sources. + // See [Security requirements when using credential configurations from an external + // source] https://cloud.google.com/docs/authentication/external/externally-sourced-credentials + // for more details. + ImpersonatedServiceAccount CredType = "impersonated_service_account" + // GDCHServiceAccount represents a GDCH service account credentials. + GDCHServiceAccount CredType = "gdch_service_account" + // ExternalAccountAuthorizedUser represents an external account authorized user credentials. + ExternalAccountAuthorizedUser CredType = "external_account_authorized_user" +) + +// TokenBindingType specifies the type of binding used when requesting a token +// whether to request a hard-bound token using mTLS or an instance identity +// bound token using ALTS. +type TokenBindingType int + +const ( + // NoBinding specifies that requested tokens are not required to have a + // binding. This is the default option. + NoBinding TokenBindingType = iota + // MTLSHardBinding specifies that a hard-bound token should be requested + // using an mTLS with S2A channel. + MTLSHardBinding + // ALTSHardBinding specifies that an instance identity bound token should + // be requested using an ALTS channel. + ALTSHardBinding +) + // OnGCE reports whether this process is running in Google Cloud. func OnGCE() bool { // TODO(codyoss): once all libs use this auth lib move metadata check here @@ -69,20 +130,34 @@ func OnGCE() bool { // - On Google Compute Engine, Google App Engine standard second generation // runtimes, and Google App Engine flexible environment, it fetches // credentials from the metadata server. +// +// Important: If you accept a credential configuration (credential +// JSON/File/Stream) from an external source for authentication to Google +// Cloud Platform, you must validate it before providing it to any Google +// API or library. Providing an unvalidated credential configuration to +// Google APIs can compromise the security of your systems and data. For +// more information, refer to [Validate credential configurations from +// external sources](https://cloud.google.com/docs/authentication/external/externally-sourced-credentials). func DetectDefault(opts *DetectOptions) (*auth.Credentials, error) { if err := opts.validate(); err != nil { return nil, err } - if opts.CredentialsJSON != nil { + trustBoundaryEnabled, err := trustboundary.IsEnabled() + if err != nil { + return nil, err + } + if len(opts.CredentialsJSON) > 0 { return readCredentialsFileJSON(opts.CredentialsJSON, opts) } if opts.CredentialsFile != "" { return readCredentialsFile(opts.CredentialsFile, opts) } if filename := os.Getenv(credsfile.GoogleAppCredsEnvVar); filename != "" { - if creds, err := readCredentialsFile(filename, opts); err == nil { - return creds, err + creds, err := readCredentialsFile(filename, opts) + if err != nil { + return nil, err } + return creds, nil } fileName := credsfile.GetWellKnownFileName() @@ -91,12 +166,30 @@ func DetectDefault(opts *DetectOptions) (*auth.Credentials, error) { } if OnGCE() { + metadataClient := metadata.NewWithOptions(&metadata.Options{ + Logger: opts.logger(), + UseDefaultClient: true, + }) + gceUniverseDomainProvider := &internal.ComputeUniverseDomainProvider{ + MetadataClient: metadataClient, + } + + tp := computeTokenProvider(opts, metadataClient) + if trustBoundaryEnabled { + gceConfigProvider := trustboundary.NewGCEConfigProvider(gceUniverseDomainProvider) + var err error + tp, err = trustboundary.NewProvider(opts.client(), gceConfigProvider, opts.logger(), tp) + if err != nil { + return nil, fmt.Errorf("credentials: failed to initialize GCE trust boundary provider: %w", err) + } + + } return auth.NewCredentials(&auth.CredentialsOptions{ - TokenProvider: computeTokenProvider(opts.EarlyTokenRefresh, opts.Scopes...), - ProjectIDProvider: auth.CredentialsPropertyFunc(func(context.Context) (string, error) { - return metadata.ProjectID() + TokenProvider: tp, + ProjectIDProvider: auth.CredentialsPropertyFunc(func(ctx context.Context) (string, error) { + return metadataClient.ProjectIDWithContext(ctx) }), - UniverseDomainProvider: &internal.ComputeUniverseDomainProvider{}, + UniverseDomainProvider: gceUniverseDomainProvider, }), nil } @@ -109,6 +202,10 @@ type DetectOptions struct { // https://www.googleapis.com/auth/cloud-platform. Required if Audience is // not provided. Scopes []string + // TokenBindingType specifies the type of binding used when requesting a + // token whether to request a hard-bound token using mTLS or an instance + // identity bound token using ALTS. Optional. + TokenBindingType TokenBindingType // Audience that credentials tokens should have. Only applicable for 2LO // flows with service accounts. If specified, scopes should not be provided. Audience string @@ -116,8 +213,13 @@ type DetectOptions struct { // Optional. Subject string // EarlyTokenRefresh configures how early before a token expires that it - // should be refreshed. + // should be refreshed. Once the token’s time until expiration has entered + // this refresh window the token is considered valid but stale. If unset, + // the default value is 3 minutes and 45 seconds. Optional. EarlyTokenRefresh time.Duration + // DisableAsyncRefresh configures a synchronous workflow that refreshes + // stale tokens while blocking. The default is false. Optional. + DisableAsyncRefresh bool // AuthHandlerOptions configures an authorization handler and other options // for 3LO flows. It is required, and only used, for client credential // flows. @@ -132,10 +234,62 @@ type DetectOptions struct { // CredentialsFile overrides detection logic and sources a credential file // from the provided filepath. If provided, CredentialsJSON must not be. // Optional. + // + // Deprecated: This field is deprecated because of a potential security risk. + // It does not validate the credential configuration. The security risk occurs + // when a credential configuration is accepted from a source that is not + // under your control and used without validation on your side. + // + // If you know that you will be loading credential configurations of a + // specific type, it is recommended to use a credential-type-specific + // NewCredentialsFromFile method. This will ensure that an unexpected + // credential type with potential for malicious intent is not loaded + // unintentionally. You might still have to do validation for certain + // credential types. Please follow the recommendation for that method. For + // example, if you want to load only service accounts, you can use + // + // creds, err := credentials.NewCredentialsFromFile(ctx, credentials.ServiceAccount, filename, opts) + // + // If you are loading your credential configuration from an untrusted source + // and have not mitigated the risks (e.g. by validating the configuration + // yourself), make these changes as soon as possible to prevent security + // risks to your environment. + // + // Regardless of the method used, it is always your responsibility to + // validate configurations received from external sources. + // + // For more details see: + // https://cloud.google.com/docs/authentication/external/externally-sourced-credentials CredentialsFile string // CredentialsJSON overrides detection logic and uses the JSON bytes as the // source for the credential. If provided, CredentialsFile must not be. // Optional. + // + // Deprecated: This field is deprecated because of a potential security risk. + // It does not validate the credential configuration. The security risk occurs + // when a credential configuration is accepted from a source that is not + // under your control and used without validation on your side. + // + // If you know that you will be loading credential configurations of a + // specific type, it is recommended to use a credential-type-specific + // NewCredentialsFromJSON method. This will ensure that an unexpected + // credential type with potential for malicious intent is not loaded + // unintentionally. You might still have to do validation for certain + // credential types. Please follow the recommendation for that method. For + // example, if you want to load only service accounts, you can use + // + // creds, err := credentials.NewCredentialsFromJSON(ctx, credentials.ServiceAccount, json, opts) + // + // If you are loading your credential configuration from an untrusted source + // and have not mitigated the risks (e.g. by validating the configuration + // yourself), make these changes as soon as possible to prevent security + // risks to your environment. + // + // Regardless of the method used, it is always your responsibility to + // validate configurations received from external sources. + // + // For more details see: + // https://cloud.google.com/docs/authentication/external/externally-sourced-credentials CredentialsJSON []byte // UseSelfSignedJWT directs service account based credentials to create a // self-signed JWT with the private key found in the file, skipping any @@ -148,6 +302,66 @@ type DetectOptions struct { // The default value is "googleapis.com". This option is ignored for // authentication flows that do not support universe domain. Optional. UniverseDomain string + // Logger is used for debug logging. If provided, logging will be enabled + // at the loggers configured level. By default logging is disabled unless + // enabled by setting GOOGLE_SDK_GO_LOGGING_LEVEL in which case a default + // logger will be used. Optional. + Logger *slog.Logger +} + +// NewCredentialsFromFile creates a [cloud.google.com/go/auth.Credentials] from +// the provided file. The credType argument specifies the expected credential +// type. If the file content does not match the expected type, an error is +// returned. +// +// Important: If you accept a credential configuration (credential +// JSON/File/Stream) from an external source for authentication to Google +// Cloud Platform, you must validate it before providing it to any Google +// API or library. Providing an unvalidated credential configuration to +// Google APIs can compromise the security of your systems and data. For +// more information, refer to [Validate credential configurations from +// external sources](https://cloud.google.com/docs/authentication/external/externally-sourced-credentials). +func NewCredentialsFromFile(credType CredType, filename string, opts *DetectOptions) (*auth.Credentials, error) { + b, err := os.ReadFile(filename) + if err != nil { + return nil, err + } + return NewCredentialsFromJSON(credType, b, opts) +} + +// NewCredentialsFromJSON creates a [cloud.google.com/go/auth.Credentials] from +// the provided JSON bytes. The credType argument specifies the expected +// credential type. If the JSON does not match the expected type, an error is +// returned. +// +// Important: If you accept a credential configuration (credential +// JSON/File/Stream) from an external source for authentication to Google +// Cloud Platform, you must validate it before providing it to any Google +// API or library. Providing an unvalidated credential configuration to +// Google APIs can compromise the security of your systems and data. For +// more information, refer to [Validate credential configurations from +// external sources](https://cloud.google.com/docs/authentication/external/externally-sourced-credentials). +func NewCredentialsFromJSON(credType CredType, b []byte, opts *DetectOptions) (*auth.Credentials, error) { + if err := checkCredentialType(b, credType); err != nil { + return nil, err + } + // We can't use readCredentialsFileJSON because it does auto-detection + // for client_credentials.json which we don't support here (no type field). + // Instead, we call fileCredentials just as readCredentialsFileJSON does + // when it doesn't detect client_credentials.json. + return fileCredentials(b, opts) +} + +func checkCredentialType(b []byte, expected CredType) error { + + fileType, err := credsfile.ParseFileType(b) + if err != nil { + return err + } + if CredType(fileType) != expected { + return fmt.Errorf("credentials: expected type %q, found %q", expected, fileType) + } + return nil } func (o *DetectOptions) validate() error { @@ -180,7 +394,11 @@ func (o *DetectOptions) client() *http.Client { if o.Client != nil { return o.Client } - return internal.CloneDefaultClient() + return internal.DefaultClient() +} + +func (o *DetectOptions) logger() *slog.Logger { + return internallog.New(o.Logger) } func readCredentialsFile(filename string, opts *DetectOptions) (*auth.Credentials, error) { @@ -243,6 +461,7 @@ func clientCredConfigFromJSON(b []byte, opts *DetectOptions) *auth.Options3LO { AuthURL: c.AuthURI, TokenURL: c.TokenURI, Client: opts.client(), + Logger: opts.logger(), EarlyTokenExpiry: opts.EarlyTokenRefresh, AuthHandlerOpts: handleOpts, // TODO(codyoss): refactor this out. We need to add in auto-detection diff --git a/vendor/cloud.google.com/go/auth/credentials/filetypes.go b/vendor/cloud.google.com/go/auth/credentials/filetypes.go index a66e56d70..f3737a5e8 100644 --- a/vendor/cloud.google.com/go/auth/credentials/filetypes.go +++ b/vendor/cloud.google.com/go/auth/credentials/filetypes.go @@ -25,18 +25,24 @@ import ( "cloud.google.com/go/auth/credentials/internal/impersonate" internalauth "cloud.google.com/go/auth/internal" "cloud.google.com/go/auth/internal/credsfile" + "cloud.google.com/go/auth/internal/trustboundary" ) +const cloudPlatformScope = "https://www.googleapis.com/auth/cloud-platform" + func fileCredentials(b []byte, opts *DetectOptions) (*auth.Credentials, error) { fileType, err := credsfile.ParseFileType(b) if err != nil { return nil, err } + if fileType == "" { + return nil, errors.New("credentials: unsupported unidentified file type") + } - var projectID, quotaProjectID, universeDomain string + var projectID, universeDomain string var tp auth.TokenProvider - switch fileType { - case credsfile.ServiceAccountKey: + switch CredType(fileType) { + case ServiceAccount: f, err := credsfile.ParseServiceAccount(b) if err != nil { return nil, err @@ -47,7 +53,7 @@ func fileCredentials(b []byte, opts *DetectOptions) (*auth.Credentials, error) { } projectID = f.ProjectID universeDomain = resolveUniverseDomain(opts.UniverseDomain, f.UniverseDomain) - case credsfile.UserCredentialsKey: + case AuthorizedUser: f, err := credsfile.ParseUserCredentials(b) if err != nil { return nil, err @@ -56,9 +62,8 @@ func fileCredentials(b []byte, opts *DetectOptions) (*auth.Credentials, error) { if err != nil { return nil, err } - quotaProjectID = f.QuotaProjectID universeDomain = f.UniverseDomain - case credsfile.ExternalAccountKey: + case ExternalAccount: f, err := credsfile.ParseExternalAccount(b) if err != nil { return nil, err @@ -67,9 +72,8 @@ func fileCredentials(b []byte, opts *DetectOptions) (*auth.Credentials, error) { if err != nil { return nil, err } - quotaProjectID = f.QuotaProjectID universeDomain = resolveUniverseDomain(opts.UniverseDomain, f.UniverseDomain) - case credsfile.ExternalAccountAuthorizedUserKey: + case ExternalAccountAuthorizedUser: f, err := credsfile.ParseExternalAccountAuthorizedUser(b) if err != nil { return nil, err @@ -78,9 +82,8 @@ func fileCredentials(b []byte, opts *DetectOptions) (*auth.Credentials, error) { if err != nil { return nil, err } - quotaProjectID = f.QuotaProjectID universeDomain = f.UniverseDomain - case credsfile.ImpersonatedServiceAccountKey: + case ImpersonatedServiceAccount: f, err := credsfile.ParseImpersonatedServiceAccount(b) if err != nil { return nil, err @@ -90,7 +93,7 @@ func fileCredentials(b []byte, opts *DetectOptions) (*auth.Credentials, error) { return nil, err } universeDomain = resolveUniverseDomain(opts.UniverseDomain, f.UniverseDomain) - case credsfile.GDCHServiceAccountKey: + case GDCHServiceAccount: f, err := credsfile.ParseGDCHServiceAccount(b) if err != nil { return nil, err @@ -108,9 +111,9 @@ func fileCredentials(b []byte, opts *DetectOptions) (*auth.Credentials, error) { TokenProvider: auth.NewCachedTokenProvider(tp, &auth.CachedTokenProviderOptions{ ExpireEarly: opts.EarlyTokenRefresh, }), - JSON: b, - ProjectIDProvider: internalauth.StaticCredentialsProperty(projectID), - QuotaProjectIDProvider: internalauth.StaticCredentialsProperty(quotaProjectID), + JSON: b, + ProjectIDProvider: internalauth.StaticCredentialsProperty(projectID), + // TODO(codyoss): only set quota project here if there was a user override UniverseDomainProvider: internalauth.StaticCredentialsProperty(universeDomain), }), nil } @@ -127,21 +130,44 @@ func resolveUniverseDomain(optsUniverseDomain, fileUniverseDomain string) string } func handleServiceAccount(f *credsfile.ServiceAccountFile, opts *DetectOptions) (auth.TokenProvider, error) { + ud := resolveUniverseDomain(opts.UniverseDomain, f.UniverseDomain) if opts.UseSelfSignedJWT { return configureSelfSignedJWT(f, opts) + } else if ud != "" && ud != internalauth.DefaultUniverseDomain { + // For non-GDU universe domains, token exchange is impossible and services + // must support self-signed JWTs. + opts.UseSelfSignedJWT = true + return configureSelfSignedJWT(f, opts) } opts2LO := &auth.Options2LO{ - Email: f.ClientEmail, - PrivateKey: []byte(f.PrivateKey), - PrivateKeyID: f.PrivateKeyID, - Scopes: opts.scopes(), - TokenURL: f.TokenURL, - Subject: opts.Subject, + Email: f.ClientEmail, + PrivateKey: []byte(f.PrivateKey), + PrivateKeyID: f.PrivateKeyID, + Scopes: opts.scopes(), + TokenURL: f.TokenURL, + Subject: opts.Subject, + Client: opts.client(), + Logger: opts.logger(), + UniverseDomain: ud, } if opts2LO.TokenURL == "" { opts2LO.TokenURL = jwtTokenURL } - return auth.New2LOTokenProvider(opts2LO) + + tp, err := auth.New2LOTokenProvider(opts2LO) + if err != nil { + return nil, err + } + + trustBoundaryEnabled, err := trustboundary.IsEnabled() + if err != nil { + return nil, err + } + if !trustBoundaryEnabled { + return tp, nil + } + saConfig := trustboundary.NewServiceAccountConfigProvider(opts2LO.Email, opts2LO.UniverseDomain) + return trustboundary.NewProvider(opts.client(), saConfig, opts.logger(), tp) } func handleUserCredential(f *credsfile.UserCredentialsFile, opts *DetectOptions) (auth.TokenProvider, error) { @@ -154,6 +180,8 @@ func handleUserCredential(f *credsfile.UserCredentialsFile, opts *DetectOptions) AuthStyle: auth.StyleInParams, EarlyTokenExpiry: opts.EarlyTokenRefresh, RefreshToken: f.RefreshToken, + Client: opts.client(), + Logger: opts.logger(), } return auth.New3LOTokenProvider(opts3LO) } @@ -172,11 +200,45 @@ func handleExternalAccount(f *credsfile.ExternalAccountFile, opts *DetectOptions Scopes: opts.scopes(), WorkforcePoolUserProject: f.WorkforcePoolUserProject, Client: opts.client(), + Logger: opts.logger(), + IsDefaultClient: opts.Client == nil, } if f.ServiceAccountImpersonation != nil { externalOpts.ServiceAccountImpersonationLifetimeSeconds = f.ServiceAccountImpersonation.TokenLifetimeSeconds } - return externalaccount.NewTokenProvider(externalOpts) + tp, err := externalaccount.NewTokenProvider(externalOpts) + if err != nil { + return nil, err + } + trustBoundaryEnabled, err := trustboundary.IsEnabled() + if err != nil { + return nil, err + } + if !trustBoundaryEnabled { + return tp, nil + } + + ud := resolveUniverseDomain(opts.UniverseDomain, f.UniverseDomain) + var configProvider trustboundary.ConfigProvider + + if f.ServiceAccountImpersonationURL == "" { + // No impersonation, this is a direct external account credential. + // The trust boundary is based on the workload/workforce pool. + var err error + configProvider, err = trustboundary.NewExternalAccountConfigProvider(f.Audience, ud) + if err != nil { + return nil, err + } + } else { + // Impersonation is used. The trust boundary is based on the target service account. + targetSAEmail, err := impersonate.ExtractServiceAccountEmail(f.ServiceAccountImpersonationURL) + if err != nil { + return nil, fmt.Errorf("credentials: could not extract target service account email for trust boundary: %w", err) + } + configProvider = trustboundary.NewServiceAccountConfigProvider(targetSAEmail, ud) + } + + return trustboundary.NewProvider(opts.client(), configProvider, opts.logger(), tp) } func handleExternalAccountAuthorizedUser(f *credsfile.ExternalAccountAuthorizedUserFile, opts *DetectOptions) (auth.TokenProvider, error) { @@ -189,8 +251,26 @@ func handleExternalAccountAuthorizedUser(f *credsfile.ExternalAccountAuthorizedU ClientSecret: f.ClientSecret, Scopes: opts.scopes(), Client: opts.client(), + Logger: opts.logger(), + } + tp, err := externalaccountuser.NewTokenProvider(externalOpts) + if err != nil { + return nil, err + } + trustBoundaryEnabled, err := trustboundary.IsEnabled() + if err != nil { + return nil, err + } + if !trustBoundaryEnabled { + return tp, nil } - return externalaccountuser.NewTokenProvider(externalOpts) + + ud := resolveUniverseDomain(opts.UniverseDomain, f.UniverseDomain) + configProvider, err := trustboundary.NewExternalAccountConfigProvider(f.Audience, ud) + if err != nil { + return nil, err + } + return trustboundary.NewProvider(opts.client(), configProvider, opts.logger(), tp) } func handleImpersonatedServiceAccount(f *credsfile.ImpersonatedServiceAccountFile, opts *DetectOptions) (auth.TokenProvider, error) { @@ -198,22 +278,52 @@ func handleImpersonatedServiceAccount(f *credsfile.ImpersonatedServiceAccountFil return nil, errors.New("missing 'source_credentials' field or 'service_account_impersonation_url' in credentials") } - tp, err := fileCredentials(f.CredSource, opts) + sourceOpts := *opts + + // Source credential needs IAM or Cloud Platform scope to call the + // iamcredentials endpoint. The scopes provided by the user are for the + // impersonated credentials. + sourceOpts.Scopes = []string{cloudPlatformScope} + sourceTP, err := fileCredentials(f.CredSource, &sourceOpts) if err != nil { return nil, err } - return impersonate.NewTokenProvider(&impersonate.Options{ - URL: f.ServiceAccountImpersonationURL, - Scopes: opts.scopes(), - Tp: tp, - Delegates: f.Delegates, - Client: opts.client(), - }) + ud := resolveUniverseDomain(opts.UniverseDomain, f.UniverseDomain) + scopes := opts.scopes() + if len(scopes) == 0 { + scopes = f.Scopes + } + impOpts := &impersonate.Options{ + URL: f.ServiceAccountImpersonationURL, + Scopes: scopes, + Tp: sourceTP, + Delegates: f.Delegates, + Client: opts.client(), + Logger: opts.logger(), + UniverseDomain: ud, + } + tp, err := impersonate.NewTokenProvider(impOpts) + if err != nil { + return nil, err + } + trustBoundaryEnabled, err := trustboundary.IsEnabled() + if err != nil { + return nil, err + } + if !trustBoundaryEnabled { + return tp, nil + } + targetSAEmail, err := impersonate.ExtractServiceAccountEmail(f.ServiceAccountImpersonationURL) + if err != nil { + return nil, fmt.Errorf("credentials: could not extract target service account email for trust boundary: %w", err) + } + targetSAConfig := trustboundary.NewServiceAccountConfigProvider(targetSAEmail, ud) + return trustboundary.NewProvider(opts.client(), targetSAConfig, opts.logger(), tp) } - func handleGDCHServiceAccount(f *credsfile.GDCHServiceAccountFile, opts *DetectOptions) (auth.TokenProvider, error) { return gdch.NewTokenProvider(f, &gdch.Options{ STSAudience: opts.STSAudience, Client: opts.client(), + Logger: opts.logger(), }) } diff --git a/vendor/cloud.google.com/go/auth/credentials/internal/externalaccount/aws_provider.go b/vendor/cloud.google.com/go/auth/credentials/internal/externalaccount/aws_provider.go index d9e1dcddf..9ecd1f64b 100644 --- a/vendor/cloud.google.com/go/auth/credentials/internal/externalaccount/aws_provider.go +++ b/vendor/cloud.google.com/go/auth/credentials/internal/externalaccount/aws_provider.go @@ -23,6 +23,7 @@ import ( "encoding/json" "errors" "fmt" + "log/slog" "net/http" "net/url" "os" @@ -32,6 +33,7 @@ import ( "time" "cloud.google.com/go/auth/internal" + "github.com/googleapis/gax-go/v2/internallog" ) var ( @@ -87,6 +89,7 @@ type awsSubjectProvider struct { reqOpts *RequestOptions Client *http.Client + logger *slog.Logger } func (sp *awsSubjectProvider) subjectToken(ctx context.Context) (string, error) { @@ -94,35 +97,33 @@ func (sp *awsSubjectProvider) subjectToken(ctx context.Context) (string, error) if sp.RegionalCredVerificationURL == "" { sp.RegionalCredVerificationURL = defaultRegionalCredentialVerificationURL } - if sp.requestSigner == nil { - headers := make(map[string]string) - if sp.shouldUseMetadataServer() { - awsSessionToken, err := sp.getAWSSessionToken(ctx) - if err != nil { - return "", err - } - - if awsSessionToken != "" { - headers[awsIMDSv2SessionTokenHeader] = awsSessionToken - } - } - - awsSecurityCredentials, err := sp.getSecurityCredentials(ctx, headers) + headers := make(map[string]string) + if sp.shouldUseMetadataServer() { + awsSessionToken, err := sp.getAWSSessionToken(ctx) if err != nil { return "", err } - if sp.region, err = sp.getRegion(ctx, headers); err != nil { - return "", err - } - sp.requestSigner = &awsRequestSigner{ - RegionName: sp.region, - AwsSecurityCredentials: awsSecurityCredentials, + + if awsSessionToken != "" { + headers[awsIMDSv2SessionTokenHeader] = awsSessionToken } } + awsSecurityCredentials, err := sp.getSecurityCredentials(ctx, headers) + if err != nil { + return "", err + } + if sp.region, err = sp.getRegion(ctx, headers); err != nil { + return "", err + } + sp.requestSigner = &awsRequestSigner{ + RegionName: sp.region, + AwsSecurityCredentials: awsSecurityCredentials, + } + // Generate the signed request to AWS STS GetCallerIdentity API. // Use the required regional endpoint. Otherwise, the request will fail. - req, err := http.NewRequest("POST", strings.Replace(sp.RegionalCredVerificationURL, "{region}", sp.region, 1), nil) + req, err := http.NewRequestWithContext(ctx, "POST", strings.Replace(sp.RegionalCredVerificationURL, "{region}", sp.region, 1), nil) if err != nil { return "", err } @@ -194,20 +195,16 @@ func (sp *awsSubjectProvider) getAWSSessionToken(ctx context.Context) (string, e } req.Header.Set(awsIMDSv2SessionTTLHeader, awsIMDSv2SessionTTL) - resp, err := sp.Client.Do(req) - if err != nil { - return "", err - } - defer resp.Body.Close() - - respBody, err := internal.ReadAll(resp.Body) + sp.logger.DebugContext(ctx, "aws session token request", "request", internallog.HTTPRequest(req, nil)) + resp, body, err := internal.DoRequest(sp.Client, req) if err != nil { return "", err } + sp.logger.DebugContext(ctx, "aws session token response", "response", internallog.HTTPResponse(resp, body)) if resp.StatusCode != http.StatusOK { - return "", fmt.Errorf("credentials: unable to retrieve AWS session token: %s", respBody) + return "", fmt.Errorf("credentials: unable to retrieve AWS session token: %s", body) } - return string(respBody), nil + return string(body), nil } func (sp *awsSubjectProvider) getRegion(ctx context.Context, headers map[string]string) (string, error) { @@ -233,29 +230,23 @@ func (sp *awsSubjectProvider) getRegion(ctx context.Context, headers map[string] for name, value := range headers { req.Header.Add(name, value) } - - resp, err := sp.Client.Do(req) + sp.logger.DebugContext(ctx, "aws region request", "request", internallog.HTTPRequest(req, nil)) + resp, body, err := internal.DoRequest(sp.Client, req) if err != nil { return "", err } - defer resp.Body.Close() - - respBody, err := internal.ReadAll(resp.Body) - if err != nil { - return "", err - } - + sp.logger.DebugContext(ctx, "aws region response", "response", internallog.HTTPResponse(resp, body)) if resp.StatusCode != http.StatusOK { - return "", fmt.Errorf("credentials: unable to retrieve AWS region - %s", respBody) + return "", fmt.Errorf("credentials: unable to retrieve AWS region - %s", body) } // This endpoint will return the region in format: us-east-2b. // Only the us-east-2 part should be used. - bodyLen := len(respBody) + bodyLen := len(body) if bodyLen == 0 { return "", nil } - return string(respBody[:bodyLen-1]), nil + return string(body[:bodyLen-1]), nil } func (sp *awsSubjectProvider) getSecurityCredentials(ctx context.Context, headers map[string]string) (result *AwsSecurityCredentials, err error) { @@ -299,22 +290,19 @@ func (sp *awsSubjectProvider) getMetadataSecurityCredentials(ctx context.Context for name, value := range headers { req.Header.Add(name, value) } - - resp, err := sp.Client.Do(req) - if err != nil { - return result, err - } - defer resp.Body.Close() - - respBody, err := internal.ReadAll(resp.Body) + sp.logger.DebugContext(ctx, "aws security credential request", "request", internallog.HTTPRequest(req, nil)) + resp, body, err := internal.DoRequest(sp.Client, req) if err != nil { return result, err } + sp.logger.DebugContext(ctx, "aws security credential response", "response", internallog.HTTPResponse(resp, body)) if resp.StatusCode != http.StatusOK { - return result, fmt.Errorf("credentials: unable to retrieve AWS security credentials - %s", respBody) + return result, fmt.Errorf("credentials: unable to retrieve AWS security credentials - %s", body) + } + if err := json.Unmarshal(body, &result); err != nil { + return nil, err } - err = json.Unmarshal(respBody, &result) - return result, err + return result, nil } func (sp *awsSubjectProvider) getMetadataRoleName(ctx context.Context, headers map[string]string) (string, error) { @@ -329,20 +317,16 @@ func (sp *awsSubjectProvider) getMetadataRoleName(ctx context.Context, headers m req.Header.Add(name, value) } - resp, err := sp.Client.Do(req) - if err != nil { - return "", err - } - defer resp.Body.Close() - - respBody, err := internal.ReadAll(resp.Body) + sp.logger.DebugContext(ctx, "aws metadata role request", "request", internallog.HTTPRequest(req, nil)) + resp, body, err := internal.DoRequest(sp.Client, req) if err != nil { return "", err } + sp.logger.DebugContext(ctx, "aws metadata role response", "response", internallog.HTTPResponse(resp, body)) if resp.StatusCode != http.StatusOK { - return "", fmt.Errorf("credentials: unable to retrieve AWS role name - %s", respBody) + return "", fmt.Errorf("credentials: unable to retrieve AWS role name - %s", body) } - return string(respBody), nil + return string(body), nil } // awsRequestSigner is a utility class to sign http requests using a AWS V4 signature. diff --git a/vendor/cloud.google.com/go/auth/credentials/internal/externalaccount/externalaccount.go b/vendor/cloud.google.com/go/auth/credentials/internal/externalaccount/externalaccount.go index b19c6edea..f4f49f175 100644 --- a/vendor/cloud.google.com/go/auth/credentials/internal/externalaccount/externalaccount.go +++ b/vendor/cloud.google.com/go/auth/credentials/internal/externalaccount/externalaccount.go @@ -18,6 +18,7 @@ import ( "context" "errors" "fmt" + "log/slog" "net/http" "regexp" "strconv" @@ -28,6 +29,7 @@ import ( "cloud.google.com/go/auth/credentials/internal/impersonate" "cloud.google.com/go/auth/credentials/internal/stsexchange" "cloud.google.com/go/auth/internal/credsfile" + "github.com/googleapis/gax-go/v2/internallog" ) const ( @@ -100,6 +102,15 @@ type Options struct { AwsSecurityCredentialsProvider AwsSecurityCredentialsProvider // Client for token request. Client *http.Client + // IsDefaultClient marks whether the client passed in is a default client that can be overriden. + // This is important for X509 credentials which should create a new client if the default was used + // but should respect a client explicitly passed in by the user. + IsDefaultClient bool + // Logger is used for debug logging. If provided, logging will be enabled + // at the loggers configured level. By default logging is disabled unless + // enabled by setting GOOGLE_SDK_GO_LOGGING_LEVEL in which case a default + // logger will be used. Optional. + Logger *slog.Logger } // SubjectTokenProvider can be used to supply a subject token to exchange for a @@ -181,6 +192,26 @@ func (o *Options) validate() error { return nil } +// client returns the http client that should be used for the token exchange. If a non-default client +// is provided, then the client configured in the options will always be returned. If a default client +// is provided and the options are configured for X509 credentials, a new client will be created. +func (o *Options) client() (*http.Client, error) { + // If a client was provided and no override certificate config location was provided, use the provided client. + if o.CredentialSource == nil || o.CredentialSource.Certificate == nil || (!o.IsDefaultClient && o.CredentialSource.Certificate.CertificateConfigLocation == "") { + return o.Client, nil + } + + // If a new client should be created, validate and use the certificate source to create a new mTLS client. + cert := o.CredentialSource.Certificate + if !cert.UseDefaultCertificateConfig && cert.CertificateConfigLocation == "" { + return nil, errors.New("credentials: \"certificate\" object must either specify a certificate_config_location or use_default_certificate_config should be true") + } + if cert.UseDefaultCertificateConfig && cert.CertificateConfigLocation != "" { + return nil, errors.New("credentials: \"certificate\" object cannot specify both a certificate_config_location and use_default_certificate_config=true") + } + return createX509Client(cert.CertificateConfigLocation) +} + // resolveTokenURL sets the default STS token endpoint with the configured // universe domain. func (o *Options) resolveTokenURL() { @@ -200,15 +231,24 @@ func NewTokenProvider(opts *Options) (auth.TokenProvider, error) { return nil, err } opts.resolveTokenURL() + logger := internallog.New(opts.Logger) stp, err := newSubjectTokenProvider(opts) if err != nil { return nil, err } + + client, err := opts.client() + if err != nil { + return nil, err + } + tp := &tokenProvider{ - client: opts.Client, + client: client, opts: opts, stp: stp, + logger: logger, } + if opts.ServiceAccountImpersonationURL == "" { return auth.NewCachedTokenProvider(tp, nil), nil } @@ -218,11 +258,12 @@ func NewTokenProvider(opts *Options) (auth.TokenProvider, error) { // needed for impersonation tp.opts.Scopes = []string{"https://www.googleapis.com/auth/cloud-platform"} imp, err := impersonate.NewTokenProvider(&impersonate.Options{ - Client: opts.Client, + Client: client, URL: opts.ServiceAccountImpersonationURL, Scopes: scopes, Tp: auth.NewCachedTokenProvider(tp, nil), TokenLifetimeSeconds: opts.ServiceAccountImpersonationLifetimeSeconds, + Logger: logger, }) if err != nil { return nil, err @@ -238,6 +279,7 @@ type subjectTokenProvider interface { // tokenProvider is the provider that handles external credentials. It is used to retrieve Tokens. type tokenProvider struct { client *http.Client + logger *slog.Logger opts *Options stp subjectTokenProvider } @@ -279,6 +321,7 @@ func (tp *tokenProvider) Token(ctx context.Context) (*auth.Token, error) { Authentication: clientAuth, Headers: header, ExtraOpts: options, + Logger: tp.logger, }) if err != nil { return nil, err @@ -299,12 +342,14 @@ func (tp *tokenProvider) Token(ctx context.Context) (*auth.Token, error) { // newSubjectTokenProvider determines the type of credsfile.CredentialSource needed to create a // subjectTokenProvider func newSubjectTokenProvider(o *Options) (subjectTokenProvider, error) { + logger := internallog.New(o.Logger) reqOpts := &RequestOptions{Audience: o.Audience, SubjectTokenType: o.SubjectTokenType} if o.AwsSecurityCredentialsProvider != nil { return &awsSubjectProvider{ securityCredentialsProvider: o.AwsSecurityCredentialsProvider, TargetResource: o.Audience, reqOpts: reqOpts, + logger: logger, }, nil } else if o.SubjectTokenProvider != nil { return &programmaticProvider{stp: o.SubjectTokenProvider, opts: reqOpts}, nil @@ -321,6 +366,7 @@ func newSubjectTokenProvider(o *Options) (subjectTokenProvider, error) { CredVerificationURL: o.CredentialSource.URL, TargetResource: o.Audience, Client: o.Client, + logger: logger, } if o.CredentialSource.IMDSv2SessionTokenURL != "" { awsProvider.IMDSv2SessionTokenURL = o.CredentialSource.IMDSv2SessionTokenURL @@ -331,7 +377,13 @@ func newSubjectTokenProvider(o *Options) (subjectTokenProvider, error) { } else if o.CredentialSource.File != "" { return &fileSubjectProvider{File: o.CredentialSource.File, Format: o.CredentialSource.Format}, nil } else if o.CredentialSource.URL != "" { - return &urlSubjectProvider{URL: o.CredentialSource.URL, Headers: o.CredentialSource.Headers, Format: o.CredentialSource.Format, Client: o.Client}, nil + return &urlSubjectProvider{ + URL: o.CredentialSource.URL, + Headers: o.CredentialSource.Headers, + Format: o.CredentialSource.Format, + Client: o.Client, + Logger: logger, + }, nil } else if o.CredentialSource.Executable != nil { ec := o.CredentialSource.Executable if ec.Command == "" { @@ -353,6 +405,18 @@ func newSubjectTokenProvider(o *Options) (subjectTokenProvider, error) { execProvider.opts = o execProvider.env = runtimeEnvironment{} return execProvider, nil + } else if o.CredentialSource.Certificate != nil { + cert := o.CredentialSource.Certificate + if !cert.UseDefaultCertificateConfig && cert.CertificateConfigLocation == "" { + return nil, errors.New("credentials: \"certificate\" object must either specify a certificate_config_location or use_default_certificate_config should be true") + } + if cert.UseDefaultCertificateConfig && cert.CertificateConfigLocation != "" { + return nil, errors.New("credentials: \"certificate\" object cannot specify both a certificate_config_location and use_default_certificate_config=true") + } + return &x509Provider{ + TrustChainPath: o.CredentialSource.Certificate.TrustChainPath, + ConfigFilePath: o.CredentialSource.Certificate.CertificateConfigLocation, + }, nil } return nil, errors.New("credentials: unable to parse credential source") } diff --git a/vendor/cloud.google.com/go/auth/credentials/internal/externalaccount/url_provider.go b/vendor/cloud.google.com/go/auth/credentials/internal/externalaccount/url_provider.go index 22b8af1c1..754ecf4fe 100644 --- a/vendor/cloud.google.com/go/auth/credentials/internal/externalaccount/url_provider.go +++ b/vendor/cloud.google.com/go/auth/credentials/internal/externalaccount/url_provider.go @@ -19,10 +19,12 @@ import ( "encoding/json" "errors" "fmt" + "log/slog" "net/http" "cloud.google.com/go/auth/internal" "cloud.google.com/go/auth/internal/credsfile" + "github.com/googleapis/gax-go/v2/internallog" ) const ( @@ -30,6 +32,7 @@ const ( fileTypeJSON = "json" urlProviderType = "url" programmaticProviderType = "programmatic" + x509ProviderType = "x509" ) type urlSubjectProvider struct { @@ -37,6 +40,7 @@ type urlSubjectProvider struct { Headers map[string]string Format *credsfile.Format Client *http.Client + Logger *slog.Logger } func (sp *urlSubjectProvider) subjectToken(ctx context.Context) (string, error) { @@ -48,27 +52,23 @@ func (sp *urlSubjectProvider) subjectToken(ctx context.Context) (string, error) for key, val := range sp.Headers { req.Header.Add(key, val) } - resp, err := sp.Client.Do(req) + sp.Logger.DebugContext(ctx, "url subject token request", "request", internallog.HTTPRequest(req, nil)) + resp, body, err := internal.DoRequest(sp.Client, req) if err != nil { return "", fmt.Errorf("credentials: invalid response when retrieving subject token: %w", err) } - defer resp.Body.Close() - - respBody, err := internal.ReadAll(resp.Body) - if err != nil { - return "", fmt.Errorf("credentials: invalid body in subject token URL query: %w", err) - } + sp.Logger.DebugContext(ctx, "url subject token response", "response", internallog.HTTPResponse(resp, body)) if c := resp.StatusCode; c < http.StatusOK || c >= http.StatusMultipleChoices { - return "", fmt.Errorf("credentials: status code %d: %s", c, respBody) + return "", fmt.Errorf("credentials: status code %d: %s", c, body) } if sp.Format == nil { - return string(respBody), nil + return string(body), nil } switch sp.Format.Type { case "json": jsonData := make(map[string]interface{}) - err = json.Unmarshal(respBody, &jsonData) + err = json.Unmarshal(body, &jsonData) if err != nil { return "", fmt.Errorf("credentials: failed to unmarshal subject token file: %w", err) } @@ -82,7 +82,7 @@ func (sp *urlSubjectProvider) subjectToken(ctx context.Context) (string, error) } return token, nil case fileTypeText: - return string(respBody), nil + return string(body), nil default: return "", errors.New("credentials: invalid credential_source file format type: " + sp.Format.Type) } diff --git a/vendor/cloud.google.com/go/auth/credentials/internal/externalaccount/x509_provider.go b/vendor/cloud.google.com/go/auth/credentials/internal/externalaccount/x509_provider.go new file mode 100644 index 000000000..d86ca593c --- /dev/null +++ b/vendor/cloud.google.com/go/auth/credentials/internal/externalaccount/x509_provider.go @@ -0,0 +1,220 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package externalaccount + +import ( + "context" + "crypto/tls" + "crypto/x509" + "encoding/base64" + "encoding/json" + "encoding/pem" + "errors" + "fmt" + "io/fs" + "net/http" + "os" + "strings" + "time" + + "cloud.google.com/go/auth/internal/transport/cert" +) + +// x509Provider implements the subjectTokenProvider type for x509 workload +// identity credentials. This provider retrieves and formats a JSON array +// containing the leaf certificate and trust chain (if provided) as +// base64-encoded strings. This JSON array serves as the subject token for +// mTLS authentication. +type x509Provider struct { + // TrustChainPath is the path to the file containing the trust chain certificates. + // The file should contain one or more PEM-encoded certificates. + TrustChainPath string + // ConfigFilePath is the path to the configuration file containing the path + // to the leaf certificate file. + ConfigFilePath string +} + +const pemCertificateHeader = "-----BEGIN CERTIFICATE-----" + +func (xp *x509Provider) providerType() string { + return x509ProviderType +} + +// loadLeafCertificate loads and parses the leaf certificate from the specified +// configuration file. It retrieves the certificate path from the config file, +// reads the certificate file, and parses the certificate data. +func loadLeafCertificate(configFilePath string) (*x509.Certificate, error) { + // Get the path to the certificate file from the configuration file. + path, err := cert.GetCertificatePath(configFilePath) + if err != nil { + return nil, fmt.Errorf("failed to get certificate path from config file: %w", err) + } + leafCertBytes, err := os.ReadFile(path) + if err != nil { + return nil, fmt.Errorf("failed to read leaf certificate file: %w", err) + } + // Parse the certificate bytes. + return parseCertificate(leafCertBytes) +} + +// encodeCert encodes a x509.Certificate to a base64 string. +func encodeCert(cert *x509.Certificate) string { + // cert.Raw contains the raw DER-encoded certificate. Encode the raw certificate bytes to base64. + return base64.StdEncoding.EncodeToString(cert.Raw) +} + +// parseCertificate parses a PEM-encoded certificate from the given byte slice. +func parseCertificate(certData []byte) (*x509.Certificate, error) { + if len(certData) == 0 { + return nil, errors.New("invalid certificate data: empty input") + } + // Decode the PEM-encoded data. + block, _ := pem.Decode(certData) + if block == nil { + return nil, errors.New("invalid PEM-encoded certificate data: no PEM block found") + } + if block.Type != "CERTIFICATE" { + return nil, fmt.Errorf("invalid PEM-encoded certificate data: expected CERTIFICATE block type, got %s", block.Type) + } + // Parse the DER-encoded certificate. + certificate, err := x509.ParseCertificate(block.Bytes) + if err != nil { + return nil, fmt.Errorf("failed to parse certificate: %w", err) + } + return certificate, nil +} + +// readTrustChain reads a file of PEM-encoded X.509 certificates and returns a slice of parsed certificates. +// It splits the file content into PEM certificate blocks and parses each one. +func readTrustChain(trustChainPath string) ([]*x509.Certificate, error) { + certificateTrustChain := []*x509.Certificate{} + + // If no trust chain path is provided, return an empty slice. + if trustChainPath == "" { + return certificateTrustChain, nil + } + + // Read the trust chain file. + trustChainData, err := os.ReadFile(trustChainPath) + if err != nil { + if errors.Is(err, fs.ErrNotExist) { + return nil, fmt.Errorf("trust chain file not found: %w", err) + } + return nil, fmt.Errorf("failed to read trust chain file: %w", err) + } + + // Split the file content into PEM certificate blocks. + certBlocks := strings.Split(string(trustChainData), pemCertificateHeader) + + // Iterate over each certificate block. + for _, certBlock := range certBlocks { + // Trim whitespace from the block. + certBlock = strings.TrimSpace(certBlock) + + if certBlock != "" { + // Add the PEM header to the block. + certData := pemCertificateHeader + "\n" + certBlock + + // Parse the certificate data. + cert, err := parseCertificate([]byte(certData)) + if err != nil { + return nil, fmt.Errorf("error parsing certificate from trust chain file: %w", err) + } + + // Append the certificate to the trust chain. + certificateTrustChain = append(certificateTrustChain, cert) + } + } + + return certificateTrustChain, nil +} + +// subjectToken retrieves the X.509 subject token. It loads the leaf +// certificate and, if a trust chain path is configured, the trust chain +// certificates. It then constructs a JSON array containing the base64-encoded +// leaf certificate and each base64-encoded certificate in the trust chain. +// The leaf certificate must be at the top of the trust chain file. This JSON +// array is used as the subject token for mTLS authentication. +func (xp *x509Provider) subjectToken(context.Context) (string, error) { + // Load the leaf certificate. + leafCert, err := loadLeafCertificate(xp.ConfigFilePath) + if err != nil { + return "", fmt.Errorf("failed to load leaf certificate: %w", err) + } + + // Read the trust chain. + trustChain, err := readTrustChain(xp.TrustChainPath) + if err != nil { + return "", fmt.Errorf("failed to read trust chain: %w", err) + } + + // Initialize the certificate chain with the leaf certificate. + certChain := []string{encodeCert(leafCert)} + + // If there is a trust chain, add certificates to the certificate chain. + if len(trustChain) > 0 { + firstCert := encodeCert(trustChain[0]) + + // If the first certificate in the trust chain is not the same as the leaf certificate, add it to the chain. + if firstCert != certChain[0] { + certChain = append(certChain, firstCert) + } + + // Iterate over the remaining certificates in the trust chain. + for i := 1; i < len(trustChain); i++ { + encoded := encodeCert(trustChain[i]) + + // Return an error if the current certificate is the same as the leaf certificate. + if encoded == certChain[0] { + return "", errors.New("the leaf certificate must be at the top of the trust chain file") + } + + // Add the current certificate to the chain. + certChain = append(certChain, encoded) + } + } + + // Convert the certificate chain to a JSON array of base64-encoded strings. + jsonChain, err := json.Marshal(certChain) + if err != nil { + return "", fmt.Errorf("failed to format certificate data: %w", err) + } + + // Return the JSON-formatted certificate chain. + return string(jsonChain), nil + +} + +// createX509Client creates a new client that is configured with mTLS, using the +// certificate configuration specified in the credential source. +func createX509Client(certificateConfigLocation string) (*http.Client, error) { + certProvider, err := cert.NewWorkloadX509CertProvider(certificateConfigLocation) + if err != nil { + return nil, err + } + trans := http.DefaultTransport.(*http.Transport).Clone() + + trans.TLSClientConfig = &tls.Config{ + GetClientCertificate: certProvider, + } + + // Create a client with default settings plus the X509 workload cert and key. + client := &http.Client{ + Transport: trans, + Timeout: 30 * time.Second, + } + + return client, nil +} diff --git a/vendor/cloud.google.com/go/auth/credentials/internal/externalaccountuser/externalaccountuser.go b/vendor/cloud.google.com/go/auth/credentials/internal/externalaccountuser/externalaccountuser.go index 0d7885479..ae39206e5 100644 --- a/vendor/cloud.google.com/go/auth/credentials/internal/externalaccountuser/externalaccountuser.go +++ b/vendor/cloud.google.com/go/auth/credentials/internal/externalaccountuser/externalaccountuser.go @@ -17,12 +17,14 @@ package externalaccountuser import ( "context" "errors" + "log/slog" "net/http" "time" "cloud.google.com/go/auth" "cloud.google.com/go/auth/credentials/internal/stsexchange" "cloud.google.com/go/auth/internal" + "github.com/googleapis/gax-go/v2/internallog" ) // Options stores the configuration for fetching tokens with external authorized @@ -51,6 +53,8 @@ type Options struct { // Client for token request. Client *http.Client + // Logger for logging. + Logger *slog.Logger } func (c *Options) validate() bool { @@ -90,6 +94,7 @@ func (tp *tokenProvider) Token(ctx context.Context) (*auth.Token, error) { RefreshToken: opts.RefreshToken, Authentication: clientAuth, Headers: headers, + Logger: internallog.New(tp.o.Logger), }) if err != nil { return nil, err diff --git a/vendor/cloud.google.com/go/auth/credentials/internal/gdch/gdch.go b/vendor/cloud.google.com/go/auth/credentials/internal/gdch/gdch.go index 467edb908..19a205141 100644 --- a/vendor/cloud.google.com/go/auth/credentials/internal/gdch/gdch.go +++ b/vendor/cloud.google.com/go/auth/credentials/internal/gdch/gdch.go @@ -15,15 +15,16 @@ package gdch import ( + "bytes" "context" - "crypto/rsa" + "crypto" "crypto/tls" "crypto/x509" "encoding/json" "errors" "fmt" + "log/slog" "net/http" - "net/url" "os" "time" @@ -31,6 +32,7 @@ import ( "cloud.google.com/go/auth/internal" "cloud.google.com/go/auth/internal/credsfile" "cloud.google.com/go/auth/internal/jwt" + "github.com/googleapis/gax-go/v2/internallog" ) const ( @@ -50,6 +52,7 @@ var ( type Options struct { STSAudience string Client *http.Client + Logger *slog.Logger } // NewTokenProvider returns a [cloud.google.com/go/auth.TokenProvider] from a @@ -61,7 +64,7 @@ func NewTokenProvider(f *credsfile.GDCHServiceAccountFile, o *Options) (auth.Tok if o.STSAudience == "" { return nil, errors.New("credentials: STSAudience must be set for the GDCH auth flows") } - pk, err := internal.ParseKey([]byte(f.PrivateKey)) + signer, err := internal.ParseKey([]byte(f.PrivateKey)) if err != nil { return nil, err } @@ -74,10 +77,11 @@ func NewTokenProvider(f *credsfile.GDCHServiceAccountFile, o *Options) (auth.Tok serviceIdentity: fmt.Sprintf("system:serviceaccount:%s:%s", f.Project, f.Name), tokenURL: f.TokenURL, aud: o.STSAudience, - pk: pk, + signer: signer, pkID: f.PrivateKeyID, certPool: certPool, client: o.Client, + logger: internallog.New(o.Logger), } return tp, nil } @@ -96,11 +100,12 @@ type gdchProvider struct { serviceIdentity string tokenURL string aud string - pk *rsa.PrivateKey + signer crypto.Signer pkID string certPool *x509.CertPool client *http.Client + logger *slog.Logger } func (g gdchProvider) Token(ctx context.Context) (*auth.Token, error) { @@ -115,29 +120,39 @@ func (g gdchProvider) Token(ctx context.Context) (*auth.Token, error) { Exp: exp.Unix(), } h := jwt.Header{ - Algorithm: jwt.HeaderAlgRSA256, + Algorithm: jwt.HeaderAlgES256, Type: jwt.HeaderType, - KeyID: string(g.pkID), + KeyID: g.pkID, } - payload, err := jwt.EncodeJWS(&h, &claims, g.pk) + payload, err := jwt.EncodeJWS(&h, &claims, g.signer) if err != nil { return nil, err } - v := url.Values{} - v.Set("grant_type", GrantType) - v.Set("audience", g.aud) - v.Set("requested_token_type", requestTokenType) - v.Set("subject_token", payload) - v.Set("subject_token_type", subjectTokenType) - resp, err := g.client.PostForm(g.tokenURL, v) + + v := map[string]string{ + "grant_type": GrantType, + "audience": g.aud, + "requested_token_type": requestTokenType, + "subject_token": payload, + "subject_token_type": subjectTokenType, + } + + r, err := json.Marshal(v) if err != nil { - return nil, fmt.Errorf("credentials: cannot fetch token: %w", err) + return nil, fmt.Errorf("credentials: cannot marshal token request: %w", err) + } + + req, err := http.NewRequestWithContext(ctx, "POST", g.tokenURL, bytes.NewReader(r)) + if err != nil { + return nil, err } - defer resp.Body.Close() - body, err := internal.ReadAll(resp.Body) + req.Header.Set("Content-Type", "application/json") + g.logger.DebugContext(ctx, "gdch token request", "request", internallog.HTTPRequest(req, r)) + resp, body, err := internal.DoRequest(g.client, req) if err != nil { return nil, fmt.Errorf("credentials: cannot fetch token: %w", err) } + g.logger.DebugContext(ctx, "gdch token response", "response", internallog.HTTPResponse(resp, body)) if c := resp.StatusCode; c < http.StatusOK || c > http.StatusMultipleChoices { return nil, &auth.Error{ Response: resp, @@ -179,4 +194,5 @@ func addCertToTransport(hc *http.Client, certPool *x509.CertPool) { trans.TLSClientConfig = &tls.Config{ RootCAs: certPool, } + hc.Transport = trans } diff --git a/vendor/cloud.google.com/go/auth/credentials/internal/impersonate/idtoken.go b/vendor/cloud.google.com/go/auth/credentials/internal/impersonate/idtoken.go new file mode 100644 index 000000000..705462c16 --- /dev/null +++ b/vendor/cloud.google.com/go/auth/credentials/internal/impersonate/idtoken.go @@ -0,0 +1,105 @@ +// Copyright 2025 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package impersonate + +import ( + "bytes" + "context" + "encoding/json" + "fmt" + "log/slog" + "net/http" + "strings" + "time" + + "cloud.google.com/go/auth" + "cloud.google.com/go/auth/internal" + "github.com/googleapis/gax-go/v2/internallog" +) + +var ( + universeDomainPlaceholder = "UNIVERSE_DOMAIN" + iamCredentialsUniverseDomainEndpoint = "https://iamcredentials.UNIVERSE_DOMAIN" +) + +// IDTokenIAMOptions provides configuration for [IDTokenIAMOptions.Token]. +type IDTokenIAMOptions struct { + // Client is required. + Client *http.Client + // Logger is required. + Logger *slog.Logger + UniverseDomain auth.CredentialsPropertyProvider + ServiceAccountEmail string + GenerateIDTokenRequest +} + +// GenerateIDTokenRequest holds the request to the IAM generateIdToken RPC. +type GenerateIDTokenRequest struct { + Audience string `json:"audience"` + IncludeEmail bool `json:"includeEmail"` + // Delegates are the ordered, fully-qualified resource name for service + // accounts in a delegation chain. Each service account must be granted + // roles/iam.serviceAccountTokenCreator on the next service account in the + // chain. The delegates must have the following format: + // projects/-/serviceAccounts/{ACCOUNT_EMAIL_OR_UNIQUEID}. The - wildcard + // character is required; replacing it with a project ID is invalid. + // Optional. + Delegates []string `json:"delegates,omitempty"` +} + +// GenerateIDTokenResponse holds the response from the IAM generateIdToken RPC. +type GenerateIDTokenResponse struct { + Token string `json:"token"` +} + +// Token call IAM generateIdToken with the configuration provided in [IDTokenIAMOptions]. +func (o IDTokenIAMOptions) Token(ctx context.Context) (*auth.Token, error) { + universeDomain, err := o.UniverseDomain.GetProperty(ctx) + if err != nil { + return nil, err + } + endpoint := strings.Replace(iamCredentialsUniverseDomainEndpoint, universeDomainPlaceholder, universeDomain, 1) + url := fmt.Sprintf("%s/v1/%s:generateIdToken", endpoint, internal.FormatIAMServiceAccountResource(o.ServiceAccountEmail)) + + bodyBytes, err := json.Marshal(o.GenerateIDTokenRequest) + if err != nil { + return nil, fmt.Errorf("impersonate: unable to marshal request: %w", err) + } + + req, err := http.NewRequestWithContext(ctx, "POST", url, bytes.NewReader(bodyBytes)) + if err != nil { + return nil, fmt.Errorf("impersonate: unable to create request: %w", err) + } + req.Header.Set("Content-Type", "application/json") + o.Logger.DebugContext(ctx, "impersonated idtoken request", "request", internallog.HTTPRequest(req, bodyBytes)) + resp, body, err := internal.DoRequest(o.Client, req) + if err != nil { + return nil, fmt.Errorf("impersonate: unable to generate ID token: %w", err) + } + o.Logger.DebugContext(ctx, "impersonated idtoken response", "response", internallog.HTTPResponse(resp, body)) + if c := resp.StatusCode; c < 200 || c > 299 { + return nil, fmt.Errorf("impersonate: status code %d: %s", c, body) + } + + var tokenResp GenerateIDTokenResponse + if err := json.Unmarshal(body, &tokenResp); err != nil { + return nil, fmt.Errorf("impersonate: unable to parse response: %w", err) + } + return &auth.Token{ + Value: tokenResp.Token, + // Generated ID tokens are good for one hour. + Expiry: time.Now().Add(1 * time.Hour), + }, nil +} diff --git a/vendor/cloud.google.com/go/auth/credentials/internal/impersonate/impersonate.go b/vendor/cloud.google.com/go/auth/credentials/internal/impersonate/impersonate.go index 3ceab873b..8253376ef 100644 --- a/vendor/cloud.google.com/go/auth/credentials/internal/impersonate/impersonate.go +++ b/vendor/cloud.google.com/go/auth/credentials/internal/impersonate/impersonate.go @@ -20,11 +20,15 @@ import ( "encoding/json" "errors" "fmt" + "log/slog" "net/http" + "regexp" "time" "cloud.google.com/go/auth" "cloud.google.com/go/auth/internal" + "cloud.google.com/go/auth/internal/transport/headers" + "github.com/googleapis/gax-go/v2/internallog" ) const ( @@ -32,6 +36,8 @@ const ( authHeaderKey = "Authorization" ) +var serviceAccountEmailRegex = regexp.MustCompile(`serviceAccounts/(.+?):generateAccessToken`) + // generateAccesstokenReq is used for service account impersonation type generateAccessTokenReq struct { Delegates []string `json:"delegates,omitempty"` @@ -74,6 +80,13 @@ type Options struct { // Client configures the underlying client used to make network requests // when fetching tokens. Required. Client *http.Client + // Logger is used for debug logging. If provided, logging will be enabled + // at the loggers configured level. By default logging is disabled unless + // enabled by setting GOOGLE_SDK_GO_LOGGING_LEVEL in which case a default + // logger will be used. Optional. + Logger *slog.Logger + // UniverseDomain is the default service domain for a given Cloud universe. + UniverseDomain string } func (o *Options) validate() error { @@ -88,6 +101,7 @@ func (o *Options) validate() error { // Token performs the exchange to get a temporary service account token to allow access to GCP. func (o *Options) Token(ctx context.Context) (*auth.Token, error) { + logger := internallog.New(o.Logger) lifetime := defaultTokenLifetime if o.TokenLifetimeSeconds != 0 { lifetime = fmt.Sprintf("%ds", o.TokenLifetimeSeconds) @@ -106,18 +120,17 @@ func (o *Options) Token(ctx context.Context) (*auth.Token, error) { return nil, fmt.Errorf("credentials: unable to create impersonation request: %w", err) } req.Header.Set("Content-Type", "application/json") - if err := setAuthHeader(ctx, o.Tp, req); err != nil { + sourceToken, err := o.Tp.Token(ctx) + if err != nil { return nil, err } - resp, err := o.Client.Do(req) + headers.SetAuthHeader(sourceToken, req) + logger.DebugContext(ctx, "impersonated token request", "request", internallog.HTTPRequest(req, b)) + resp, body, err := internal.DoRequest(o.Client, req) if err != nil { return nil, fmt.Errorf("credentials: unable to generate access token: %w", err) } - defer resp.Body.Close() - body, err := internal.ReadAll(resp.Body) - if err != nil { - return nil, fmt.Errorf("credentials: unable to read body: %w", err) - } + logger.DebugContext(ctx, "impersonated token response", "response", internallog.HTTPResponse(resp, body)) if c := resp.StatusCode; c < http.StatusOK || c >= http.StatusMultipleChoices { return nil, fmt.Errorf("credentials: status code %d: %s", c, body) } @@ -130,22 +143,26 @@ func (o *Options) Token(ctx context.Context) (*auth.Token, error) { if err != nil { return nil, fmt.Errorf("credentials: unable to parse expiry: %w", err) } - return &auth.Token{ + token := &auth.Token{ Value: accessTokenResp.AccessToken, Expiry: expiry, Type: internal.TokenTypeBearer, - }, nil + } + return token, nil } -func setAuthHeader(ctx context.Context, tp auth.TokenProvider, r *http.Request) error { - t, err := tp.Token(ctx) - if err != nil { - return err - } - typ := t.Type - if typ == "" { - typ = internal.TokenTypeBearer +// ExtractServiceAccountEmail extracts the service account email from the impersonation URL. +// The impersonation URL is expected to be in the format: +// https://iamcredentials.googleapis.com/v1/projects/-/serviceAccounts/{SERVICE_ACCOUNT_EMAIL}:generateAccessToken +// or +// https://iamcredentials.googleapis.com/v1/projects/{PROJECT_ID}/serviceAccounts/{SERVICE_ACCOUNT_EMAIL}:generateAccessToken +// Returns an error if the email cannot be extracted. +func ExtractServiceAccountEmail(impersonationURL string) (string, error) { + matches := serviceAccountEmailRegex.FindStringSubmatch(impersonationURL) + + if len(matches) < 2 { + return "", fmt.Errorf("credentials: invalid impersonation URL format: %s", impersonationURL) } - r.Header.Set(authHeaderKey, typ+" "+t.Value) - return nil + + return matches[1], nil } diff --git a/vendor/cloud.google.com/go/auth/credentials/internal/stsexchange/sts_exchange.go b/vendor/cloud.google.com/go/auth/credentials/internal/stsexchange/sts_exchange.go index f70e0aef4..e1d2b1503 100644 --- a/vendor/cloud.google.com/go/auth/credentials/internal/stsexchange/sts_exchange.go +++ b/vendor/cloud.google.com/go/auth/credentials/internal/stsexchange/sts_exchange.go @@ -19,6 +19,7 @@ import ( "encoding/base64" "encoding/json" "fmt" + "log/slog" "net/http" "net/url" "strconv" @@ -26,6 +27,7 @@ import ( "cloud.google.com/go/auth" "cloud.google.com/go/auth/internal" + "github.com/googleapis/gax-go/v2/internallog" ) const ( @@ -40,6 +42,7 @@ const ( // Options stores the configuration for making an sts exchange request. type Options struct { Client *http.Client + Logger *slog.Logger Endpoint string Request *TokenRequest Authentication ClientAuthentication @@ -80,6 +83,7 @@ func ExchangeToken(ctx context.Context, opts *Options) (*TokenResponse, error) { func doRequest(ctx context.Context, opts *Options, data url.Values) (*TokenResponse, error) { opts.Authentication.InjectAuthentication(data, opts.Headers) encodedData := data.Encode() + logger := internallog.New(opts.Logger) req, err := http.NewRequestWithContext(ctx, "POST", opts.Endpoint, strings.NewReader(encodedData)) if err != nil { @@ -93,16 +97,12 @@ func doRequest(ctx context.Context, opts *Options, data url.Values) (*TokenRespo } req.Header.Set("Content-Length", strconv.Itoa(len(encodedData))) - resp, err := opts.Client.Do(req) + logger.DebugContext(ctx, "sts token request", "request", internallog.HTTPRequest(req, []byte(encodedData))) + resp, body, err := internal.DoRequest(opts.Client, req) if err != nil { return nil, fmt.Errorf("credentials: invalid response from Secure Token Server: %w", err) } - defer resp.Body.Close() - - body, err := internal.ReadAll(resp.Body) - if err != nil { - return nil, err - } + logger.DebugContext(ctx, "sts token response", "response", internallog.HTTPResponse(resp, body)) if c := resp.StatusCode; c < http.StatusOK || c > http.StatusMultipleChoices { return nil, fmt.Errorf("credentials: status code %d: %s", c, body) } diff --git a/vendor/cloud.google.com/go/auth/credentials/selfsignedjwt.go b/vendor/cloud.google.com/go/auth/credentials/selfsignedjwt.go index b62a8ae4d..8d335ccec 100644 --- a/vendor/cloud.google.com/go/auth/credentials/selfsignedjwt.go +++ b/vendor/cloud.google.com/go/auth/credentials/selfsignedjwt.go @@ -16,8 +16,10 @@ package credentials import ( "context" - "crypto/rsa" + "crypto" + "errors" "fmt" + "log/slog" "strings" "time" @@ -35,7 +37,10 @@ var ( // configureSelfSignedJWT uses the private key in the service account to create // a JWT without making a network call. func configureSelfSignedJWT(f *credsfile.ServiceAccountFile, opts *DetectOptions) (auth.TokenProvider, error) { - pk, err := internal.ParseKey([]byte(f.PrivateKey)) + if len(opts.scopes()) == 0 && opts.Audience == "" { + return nil, errors.New("credentials: both scopes and audience are empty") + } + signer, err := internal.ParseKey([]byte(f.PrivateKey)) if err != nil { return nil, fmt.Errorf("credentials: could not parse key: %w", err) } @@ -43,8 +48,9 @@ func configureSelfSignedJWT(f *credsfile.ServiceAccountFile, opts *DetectOptions email: f.ClientEmail, audience: opts.Audience, scopes: opts.scopes(), - pk: pk, + signer: signer, pkID: f.PrivateKeyID, + logger: opts.logger(), }, nil } @@ -52,8 +58,9 @@ type selfSignedTokenProvider struct { email string audience string scopes []string - pk *rsa.PrivateKey + signer crypto.Signer pkID string + logger *slog.Logger } func (tp *selfSignedTokenProvider) Token(context.Context) (*auth.Token, error) { @@ -73,9 +80,10 @@ func (tp *selfSignedTokenProvider) Token(context.Context) (*auth.Token, error) { Type: jwt.HeaderType, KeyID: string(tp.pkID), } - msg, err := jwt.EncodeJWS(h, c, tp.pk) + tok, err := jwt.EncodeJWS(h, c, tp.signer) if err != nil { return nil, fmt.Errorf("credentials: could not encode JWT: %w", err) } - return &auth.Token{Value: msg, Type: internal.TokenTypeBearer, Expiry: exp}, nil + tp.logger.Debug("created self-signed JWT", "token", tok) + return &auth.Token{Value: tok, Type: internal.TokenTypeBearer, Expiry: exp}, nil } diff --git a/vendor/cloud.google.com/go/auth/httptransport/httptransport.go b/vendor/cloud.google.com/go/auth/httptransport/httptransport.go index 06acc0415..bd693907f 100644 --- a/vendor/cloud.google.com/go/auth/httptransport/httptransport.go +++ b/vendor/cloud.google.com/go/auth/httptransport/httptransport.go @@ -12,18 +12,22 @@ // See the License for the specific language governing permissions and // limitations under the License. +// Package httptransport provides functionality for managing HTTP client +// connections to Google Cloud services. package httptransport import ( "crypto/tls" "errors" "fmt" + "log/slog" "net/http" "cloud.google.com/go/auth" detect "cloud.google.com/go/auth/credentials" - "cloud.google.com/go/auth/internal" "cloud.google.com/go/auth/internal/transport" + "cloud.google.com/go/auth/internal/transport/headers" + "github.com/googleapis/gax-go/v2/internallog" ) // ClientCertProvider is a function that returns a TLS client certificate to be @@ -33,7 +37,7 @@ type ClientCertProvider = func(*tls.CertificateRequestInfo) (*tls.Certificate, e // Options used to configure a [net/http.Client] from [NewClient]. type Options struct { - // DisableTelemetry disables default telemetry (OpenCensus). An example + // DisableTelemetry disables default telemetry (OpenTelemetry). An example // reason to do so would be to bind custom telemetry that overrides the // defaults. DisableTelemetry bool @@ -67,6 +71,11 @@ type Options struct { // configured for the client, which will be compared to the universe domain // that is separately configured for the credentials. UniverseDomain string + // Logger is used for debug logging. If provided, logging will be enabled + // at the loggers configured level. By default logging is disabled unless + // enabled by setting GOOGLE_SDK_GO_LOGGING_LEVEL in which case a default + // logger will be used. Optional. + Logger *slog.Logger // InternalOptions are NOT meant to be set directly by consumers of this // package, they should only be set by generated client code. @@ -99,6 +108,10 @@ func (o *Options) client() *http.Client { return nil } +func (o *Options) logger() *slog.Logger { + return internallog.New(o.Logger) +} + func (o *Options) resolveDetectOptions() *detect.DetectOptions { io := o.InternalOptions // soft-clone these so we are not updating a ref the user holds and may reuse @@ -116,6 +129,16 @@ func (o *Options) resolveDetectOptions() *detect.DetectOptions { if len(do.Scopes) == 0 && do.Audience == "" && io != nil { do.Audience = o.InternalOptions.DefaultAudience } + if o.ClientCertProvider != nil { + tlsConfig := &tls.Config{ + GetClientCertificate: o.ClientCertProvider, + } + do.Client = transport.DefaultHTTPClientWithTLS(tlsConfig) + do.TokenURL = detect.GoogleMTLSTokenURL + } + if do.Logger == nil { + do.Logger = o.logger() + } return do } @@ -138,26 +161,48 @@ type InternalOptions struct { // service. DefaultScopes []string // SkipValidation bypasses validation on Options. It should only be used - // internally for clients that needs more control over their transport. + // internally for clients that need more control over their transport. SkipValidation bool + // SkipUniverseDomainValidation skips the verification that the universe + // domain configured for the client matches the universe domain configured + // for the credentials. It should only be used internally for clients that + // need more control over their transport. The default is false. + SkipUniverseDomainValidation bool + // TelemetryAttributes specifies a map of telemetry attributes to be added + // to all OpenTelemetry signals, such as tracing and metrics, for purposes + // including representing the static identity of the client (e.g., service + // name, version). These attributes are expected to be consistent across all + // signals to enable cross-signal correlation. + // + // It should only be used internally by generated clients. Callers should not + // modify the map after it is passed in. + TelemetryAttributes map[string]string } // AddAuthorizationMiddleware adds a middleware to the provided client's // transport that sets the Authorization header with the value produced by the // provided [cloud.google.com/go/auth.Credentials]. An error is returned only // if client or creds is nil. +// +// This function does not support setting a universe domain value on the client. func AddAuthorizationMiddleware(client *http.Client, creds *auth.Credentials) error { if client == nil || creds == nil { return fmt.Errorf("httptransport: client and tp must not be nil") } base := client.Transport if base == nil { - base = http.DefaultTransport.(*http.Transport).Clone() + if dt, ok := http.DefaultTransport.(*http.Transport); ok { + base = dt.Clone() + } else { + // Directly reuse the DefaultTransport if the application has + // replaced it with an implementation of RoundTripper other than + // http.Transport. + base = http.DefaultTransport + } } client.Transport = &authTransport{ creds: creds, base: base, - // TODO(quartzmo): Somehow set clientUniverseDomain from impersonate calls. } return nil } @@ -175,6 +220,7 @@ func NewClient(opts *Options) (*http.Client, error) { ClientCertProvider: opts.ClientCertProvider, Client: opts.client(), UniverseDomain: opts.UniverseDomain, + Logger: opts.logger(), } if io := opts.InternalOptions; io != nil { tOpts.DefaultEndpointTemplate = io.DefaultEndpointTemplate @@ -188,6 +234,8 @@ func NewClient(opts *Options) (*http.Client, error) { if baseRoundTripper == nil { baseRoundTripper = defaultBaseTransport(clientCertProvider, dialTLSContext) } + // Ensure the token exchange transport uses the same ClientCertProvider as the API transport. + opts.ClientCertProvider = clientCertProvider trans, err := newTransport(baseRoundTripper, opts) if err != nil { return nil, err @@ -197,12 +245,10 @@ func NewClient(opts *Options) (*http.Client, error) { }, nil } -// SetAuthHeader uses the provided token to set the Authorization header on a -// request. If the token.Type is empty, the type is assumed to be Bearer. +// SetAuthHeader uses the provided token to set the Authorization and trust +// boundary headers on an http.Request. If the token.Type is empty, the type is +// assumed to be Bearer. This is the recommended way to set authorization +// headers on a custom http.Request. func SetAuthHeader(token *auth.Token, req *http.Request) { - typ := token.Type - if typ == "" { - typ = internal.TokenTypeBearer - } - req.Header.Set("Authorization", typ+" "+token.Value) + headers.SetAuthHeader(token, req) } diff --git a/vendor/cloud.google.com/go/auth/httptransport/trace.go b/vendor/cloud.google.com/go/auth/httptransport/trace.go deleted file mode 100644 index 467c477c0..000000000 --- a/vendor/cloud.google.com/go/auth/httptransport/trace.go +++ /dev/null @@ -1,93 +0,0 @@ -// Copyright 2023 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -package httptransport - -import ( - "encoding/binary" - "encoding/hex" - "fmt" - "net/http" - "strconv" - "strings" - - "go.opencensus.io/trace" - "go.opencensus.io/trace/propagation" -) - -const ( - httpHeaderMaxSize = 200 - cloudTraceHeader = `X-Cloud-Trace-Context` -) - -// asserts the httpFormat fulfills this foreign interface -var _ propagation.HTTPFormat = (*httpFormat)(nil) - -// httpFormat implements propagation.httpFormat to propagate -// traces in HTTP headers for Google Cloud Platform and Cloud Trace. -type httpFormat struct{} - -// SpanContextFromRequest extracts a Cloud Trace span context from incoming requests. -func (f *httpFormat) SpanContextFromRequest(req *http.Request) (sc trace.SpanContext, ok bool) { - h := req.Header.Get(cloudTraceHeader) - // See https://cloud.google.com/trace/docs/faq for the header HTTPFormat. - // Return if the header is empty or missing, or if the header is unreasonably - // large, to avoid making unnecessary copies of a large string. - if h == "" || len(h) > httpHeaderMaxSize { - return trace.SpanContext{}, false - } - - // Parse the trace id field. - slash := strings.Index(h, `/`) - if slash == -1 { - return trace.SpanContext{}, false - } - tid, h := h[:slash], h[slash+1:] - - buf, err := hex.DecodeString(tid) - if err != nil { - return trace.SpanContext{}, false - } - copy(sc.TraceID[:], buf) - - // Parse the span id field. - spanstr := h - semicolon := strings.Index(h, `;`) - if semicolon != -1 { - spanstr, h = h[:semicolon], h[semicolon+1:] - } - sid, err := strconv.ParseUint(spanstr, 10, 64) - if err != nil { - return trace.SpanContext{}, false - } - binary.BigEndian.PutUint64(sc.SpanID[:], sid) - - // Parse the options field, options field is optional. - if !strings.HasPrefix(h, "o=") { - return sc, true - } - o, err := strconv.ParseUint(h[2:], 10, 32) - if err != nil { - return trace.SpanContext{}, false - } - sc.TraceOptions = trace.TraceOptions(o) - return sc, true -} - -// SpanContextToRequest modifies the given request to include a Cloud Trace header. -func (f *httpFormat) SpanContextToRequest(sc trace.SpanContext, req *http.Request) { - sid := binary.BigEndian.Uint64(sc.SpanID[:]) - header := fmt.Sprintf("%s/%d;o=%d", hex.EncodeToString(sc.TraceID[:]), sid, int64(sc.TraceOptions)) - req.Header.Set(cloudTraceHeader, header) -} diff --git a/vendor/cloud.google.com/go/auth/httptransport/transport.go b/vendor/cloud.google.com/go/auth/httptransport/transport.go index 94caeb00f..87b3fef21 100644 --- a/vendor/cloud.google.com/go/auth/httptransport/transport.go +++ b/vendor/cloud.google.com/go/auth/httptransport/transport.go @@ -15,10 +15,17 @@ package httptransport import ( + "bytes" "context" "crypto/tls" + "fmt" + "io" + "log/slog" "net" "net/http" + "os" + "strconv" + "sync" "time" "cloud.google.com/go/auth" @@ -26,12 +33,19 @@ import ( "cloud.google.com/go/auth/internal" "cloud.google.com/go/auth/internal/transport" "cloud.google.com/go/auth/internal/transport/cert" - "go.opencensus.io/plugin/ochttp" + "cloud.google.com/go/auth/internal/transport/headers" + "github.com/googleapis/gax-go/v2" + "github.com/googleapis/gax-go/v2/callctx" + "go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp" + "go.opentelemetry.io/otel/attribute" + "go.opentelemetry.io/otel/trace" "golang.org/x/net/http2" + "google.golang.org/api/googleapi" ) const ( - quotaProjectHeaderKey = "X-Goog-User-Project" + quotaProjectHeaderKey = "X-goog-user-project" + maxErrorReadBytes = int64(8192) // 8KB ) func newTransport(base http.RoundTripper, opts *Options) (http.RoundTripper, error) { @@ -41,7 +55,7 @@ func newTransport(base http.RoundTripper, opts *Options) (http.RoundTripper, err headers: headers, } var trans http.RoundTripper = ht - trans = addOCTransport(trans, opts) + trans = addOpenTelemetryTransport(trans, opts) switch { case opts.DisableAuthentication: // Do nothing. @@ -76,13 +90,21 @@ func newTransport(base http.RoundTripper, opts *Options) (http.RoundTripper, err if headers == nil { headers = make(map[string][]string, 1) } - headers.Set(quotaProjectHeaderKey, qp) + // Don't overwrite user specified quota + if v := headers.Get(quotaProjectHeaderKey); v == "" { + headers.Set(quotaProjectHeaderKey, qp) + } + } + var skipUD bool + if iOpts := opts.InternalOptions; iOpts != nil { + skipUD = iOpts.SkipUniverseDomainValidation } creds.TokenProvider = auth.NewCachedTokenProvider(creds.TokenProvider, nil) trans = &authTransport{ - base: trans, - creds: creds, - clientUniverseDomain: opts.UniverseDomain, + base: trans, + creds: creds, + clientUniverseDomain: opts.UniverseDomain, + skipUniverseDomainValidation: skipUD, } } return trans, nil @@ -94,7 +116,11 @@ func newTransport(base http.RoundTripper, opts *Options) (http.RoundTripper, err // http.DefaultTransport. // If TLSCertificate is available, set TLSClientConfig as well. func defaultBaseTransport(clientCertSource cert.Provider, dialTLSContext func(context.Context, string, string) (net.Conn, error)) http.RoundTripper { - trans := http.DefaultTransport.(*http.Transport).Clone() + defaultTransport, ok := http.DefaultTransport.(*http.Transport) + if !ok { + defaultTransport = transport.BaseTransport() + } + trans := defaultTransport.Clone() trans.MaxIdleConnsPerHost = 100 if clientCertSource != nil { @@ -155,29 +181,338 @@ func (t *headerTransport) RoundTrip(req *http.Request) (*http.Response, error) { return rt.RoundTrip(&newReq) } -func addOCTransport(trans http.RoundTripper, opts *Options) http.RoundTripper { +func addOpenTelemetryTransport(trans http.RoundTripper, opts *Options) http.RoundTripper { if opts.DisableTelemetry { return trans } - return &ochttp.Transport{ - Base: trans, - Propagation: &httpFormat{}, + + var traceAttrs []attribute.KeyValue + var scopedLogger *slog.Logger + + if gax.IsFeatureEnabled("LOGGING") && opts.Logger != nil { + scopedLogger = opts.Logger + } + + if opts.InternalOptions != nil { + attrs := transport.StaticTelemetryAttributes(opts.InternalOptions.TelemetryAttributes) + if gax.IsFeatureEnabled("TRACING") { + traceAttrs = attrs + } + if scopedLogger != nil { + var logAttrs []any + for _, attr := range attrs { + logAttrs = append(logAttrs, slog.String(string(attr.Key), attr.Value.AsString())) + } + scopedLogger = scopedLogger.With(logAttrs...) + } + } + + if gax.IsFeatureEnabled("METRICS") || gax.IsFeatureEnabled("TRACING") || gax.IsFeatureEnabled("LOGGING") { + trans = &otelAttributeTransport{ + base: trans, + logger: scopedLogger, + } + } + + if !gax.IsFeatureEnabled("TRACING") && !gax.IsFeatureEnabled("LOGGING") { + return otelhttp.NewTransport(trans) + } + + var otelOpts []otelhttp.Option + if len(traceAttrs) > 0 { + otelOpts = append(otelOpts, otelhttp.WithSpanOptions(trace.WithAttributes(traceAttrs...))) + } + return otelhttp.NewTransport(trans, otelOpts...) +} + +// otelAttributeTransport is a wrapper around an http.RoundTripper that adds +// custom Google Cloud-specific attributes to OpenTelemetry spans. +type otelAttributeTransport struct { + base http.RoundTripper + logger *slog.Logger +} + +// RoundTrip intercepts the HTTP request and response to enrich the active +// OpenTelemetry span with static and dynamic attributes, as well as detailed +// error information. +func (t *otelAttributeTransport) RoundTrip(req *http.Request) (*http.Response, error) { + var span trace.Span + if gax.IsFeatureEnabled("TRACING") { + if s := trace.SpanFromContext(req.Context()); s != nil && s.IsRecording() { + span = s + } + } + + if span != nil { + var attrs []attribute.KeyValue + attrs = append(attrs, attribute.String("rpc.system.name", "http")) + if resName, ok := callctx.TelemetryFromContext(req.Context(), "resource_name"); ok { + attrs = append(attrs, attribute.String("gcp.resource.destination.id", resName)) + } + if resendCountStr, ok := callctx.TelemetryFromContext(req.Context(), "resend_count"); ok { + if count, err := strconv.Atoi(resendCountStr); err == nil { + attrs = append(attrs, attribute.Int("http.request.resend_count", count)) + } + } + if urlTemplate, ok := callctx.TelemetryFromContext(req.Context(), "url_template"); ok { + attrs = append(attrs, attribute.String("url.template", urlTemplate)) + span.SetName(fmt.Sprintf("%s %s", req.Method, urlTemplate)) + } + span.SetAttributes(attrs...) + } + + var data *gax.TransportTelemetryData + if gax.IsFeatureEnabled("METRICS") { + data = gax.ExtractTransportTelemetry(req.Context()) + if data != nil && req.URL != nil { + host := req.URL.Hostname() + if host != "" { + data.SetServerAddress(host) + } + portStr := req.URL.Port() + if portStr == "" { + if req.URL.Scheme == "https" { + portStr = "443" + } else if req.URL.Scheme == "http" { + portStr = "80" + } + } + if port, pErr := strconv.Atoi(portStr); pErr == nil { + data.SetServerPort(port) + } + } + } + + resp, err := t.base.RoundTrip(req) + + var logger *slog.Logger + if gax.IsFeatureEnabled("LOGGING") { + if l := t.logger; l != nil && l.Enabled(req.Context(), slog.LevelDebug) { + logger = l + } + } + + if span == nil && logger == nil { + return resp, err } + + if err != nil { + t.logAndSpanError(req, resp, err, err, span, logger) + } else if resp.StatusCode >= 400 { + if resp.Body != nil && resp.Body != http.NoBody && (resp.ContentLength < 0 || resp.ContentLength <= maxErrorReadBytes) { + resp.Body = &errorTrackingBody{ + ReadCloser: resp.Body, + req: req, + resp: resp, + span: span, + logger: logger, + t: t, + } + } else { + t.logAndSpanError(req, resp, &googleapi.Error{ + Code: resp.StatusCode, + Message: resp.Status, + }, nil, span, logger) + } + } else { + if span != nil { + span.SetAttributes(attribute.Int("http.response.status_code", resp.StatusCode)) + } + } + + return resp, err +} + +func (t *otelAttributeTransport) logAndSpanError(req *http.Request, resp *http.Response, errToParse error, netErr error, span trace.Span, logger *slog.Logger) { + var httpStatusCode int + if resp != nil { + httpStatusCode = resp.StatusCode + } + + info := gax.ExtractTelemetryErrorInfo(req.Context(), errToParse) + + if netErr == nil && resp != nil && resp.StatusCode >= 400 { + if info.ErrorType == "*googleapi.Error" { + info.ErrorType = strconv.Itoa(resp.StatusCode) + } + } + + if logger != nil { + logAttrs := []slog.Attr{ + slog.String("rpc.system.name", "http"), + } + if httpStatusCode > 0 { + logAttrs = append(logAttrs, slog.Int64("http.response.status_code", int64(httpStatusCode))) + } + + ctx := req.Context() + if resendCountStr, ok := callctx.TelemetryFromContext(ctx, "resend_count"); ok { + if count, e := strconv.Atoi(resendCountStr); e == nil { + logAttrs = append(logAttrs, slog.Int64("http.request.resend_count", int64(count))) + } + } + if urlTemplate, ok := callctx.TelemetryFromContext(ctx, "url_template"); ok { + logAttrs = append(logAttrs, slog.String("url.template", urlTemplate)) + } + logAttrs = append(logAttrs, slog.String("http.request.method", req.Method)) + + msg := info.StatusMessage + if msg == "" { + msg = "API call failed" + } + + if rpcMethod, ok := callctx.TelemetryFromContext(ctx, "rpc_method"); ok { + logAttrs = append(logAttrs, slog.String("rpc.method", rpcMethod)) + } + + if resName, ok := callctx.TelemetryFromContext(ctx, "resource_name"); ok { + logAttrs = append(logAttrs, slog.String("gcp.resource.destination.id", resName)) + } + + if info.Domain != "" { + logAttrs = append(logAttrs, slog.String("gcp.errors.domain", info.Domain)) + } + for k, v := range info.Metadata { + logAttrs = append(logAttrs, slog.String("gcp.errors.metadata."+k, v)) + } + + logAttrs = append(logAttrs, slog.String("error.type", info.ErrorType)) + if info.StatusCode != "" { + logAttrs = append(logAttrs, slog.String("rpc.response.status_code", info.StatusCode)) + } + + logger.LogAttrs(ctx, slog.LevelDebug, msg, logAttrs...) + } + + if span != nil { + if netErr != nil { + span.SetAttributes( + attribute.String("error.type", info.ErrorType), + attribute.String("status.message", info.StatusMessage), + attribute.String("exception.type", fmt.Sprintf("%T", netErr)), + ) + } else { + span.SetAttributes( + attribute.Int("http.response.status_code", httpStatusCode), + attribute.String("error.type", info.ErrorType), + attribute.String("status.message", info.StatusMessage), + ) + } + } +} + +type errorTrackingBody struct { + io.ReadCloser + req *http.Request + resp *http.Response + span trace.Span + logger *slog.Logger + t *otelAttributeTransport + + mu sync.Mutex + buf bytes.Buffer + recorded bool +} + +func (b *errorTrackingBody) Read(p []byte) (n int, err error) { + n, err = b.ReadCloser.Read(p) + + b.mu.Lock() + shouldRecord := false + if !b.recorded { + if n > 0 { + remaining := maxErrorReadBytes - int64(b.buf.Len()) + if remaining > 0 { + if int64(n) > remaining { + b.buf.Write(p[:remaining]) + } else { + b.buf.Write(p[:n]) + } + } + } + + if err == io.EOF || int64(b.buf.Len()) >= maxErrorReadBytes { + shouldRecord = true + b.recorded = true + } + } + b.mu.Unlock() + + if shouldRecord { + b.recordError() + } + + return n, err +} + +func (b *errorTrackingBody) Close() error { + b.mu.Lock() + shouldRecord := !b.recorded + b.recorded = true + b.mu.Unlock() + + // We can close the network stream immediately. + err := b.ReadCloser.Close() + + // Do heavy in-memory telemetry parsing without holding the lock + if shouldRecord { + b.recordError() // If this panics here, the socket is already released + } + + return err +} + +func (b *errorTrackingBody) recordError() { + errToParse := &googleapi.Error{ + Code: b.resp.StatusCode, + Message: b.resp.Status, + } + + if b.buf.Len() > 0 { + clone := *b.resp + clone.Body = io.NopCloser(bytes.NewReader(b.buf.Bytes())) + if errResp := googleapi.CheckResponse(&clone); errResp != nil { + if gErr, ok := errResp.(*googleapi.Error); ok { + if gErr.Message == "" { + gErr.Message = b.resp.Status + } + errToParse = gErr + } else { + errToParse = &googleapi.Error{ + Code: b.resp.StatusCode, + Message: errResp.Error(), + } + } + } + } + + b.t.logAndSpanError(b.req, b.resp, errToParse, nil, b.span, b.logger) } type authTransport struct { - creds *auth.Credentials - base http.RoundTripper - clientUniverseDomain string + creds *auth.Credentials + base http.RoundTripper + clientUniverseDomain string + skipUniverseDomainValidation bool } -// getClientUniverseDomain returns the universe domain configured for the client. -// The default value is "googleapis.com". +// getClientUniverseDomain returns the default service domain for a given Cloud +// universe, with the following precedence: +// +// 1. A non-empty option.WithUniverseDomain or similar client option. +// 2. A non-empty environment variable GOOGLE_CLOUD_UNIVERSE_DOMAIN. +// 3. The default value "googleapis.com". +// +// This is the universe domain configured for the client, which will be compared +// to the universe domain that is separately configured for the credentials. func (t *authTransport) getClientUniverseDomain() string { - if t.clientUniverseDomain == "" { - return internal.DefaultUniverseDomain + if t.clientUniverseDomain != "" { + return t.clientUniverseDomain + } + if envUD := os.Getenv(internal.UniverseDomainEnvVar); envUD != "" { + return envUD } - return t.clientUniverseDomain + return internal.DefaultUniverseDomain } // RoundTrip authorizes and authenticates the request with an @@ -193,19 +528,21 @@ func (t *authTransport) RoundTrip(req *http.Request) (*http.Response, error) { } }() } - credentialsUniverseDomain, err := t.creds.UniverseDomain(req.Context()) - if err != nil { - return nil, err - } - if err := transport.ValidateUniverseDomain(t.getClientUniverseDomain(), credentialsUniverseDomain); err != nil { - return nil, err - } token, err := t.creds.Token(req.Context()) if err != nil { return nil, err } + if !t.skipUniverseDomainValidation && token.MetadataString("auth.google.tokenSource") != "compute-metadata" { + credentialsUniverseDomain, err := t.creds.UniverseDomain(req.Context()) + if err != nil { + return nil, err + } + if err := transport.ValidateUniverseDomain(t.getClientUniverseDomain(), credentialsUniverseDomain); err != nil { + return nil, err + } + } req2 := req.Clone(req.Context()) - SetAuthHeader(token, req2) + headers.SetAuthHeader(token, req2) reqBodyClosed = true return t.base.RoundTrip(req2) } diff --git a/vendor/cloud.google.com/go/auth/internal/credsfile/credsfile.go b/vendor/cloud.google.com/go/auth/internal/credsfile/credsfile.go index 9cd4bed61..84aab8472 100644 --- a/vendor/cloud.google.com/go/auth/internal/credsfile/credsfile.go +++ b/vendor/cloud.google.com/go/auth/internal/credsfile/credsfile.go @@ -32,50 +32,6 @@ const ( userCredsFilename = "application_default_credentials.json" ) -// CredentialType represents different credential filetypes Google credentials -// can be. -type CredentialType int - -const ( - // UnknownCredType is an unidentified file type. - UnknownCredType CredentialType = iota - // UserCredentialsKey represents a user creds file type. - UserCredentialsKey - // ServiceAccountKey represents a service account file type. - ServiceAccountKey - // ImpersonatedServiceAccountKey represents a impersonated service account - // file type. - ImpersonatedServiceAccountKey - // ExternalAccountKey represents a external account file type. - ExternalAccountKey - // GDCHServiceAccountKey represents a GDCH file type. - GDCHServiceAccountKey - // ExternalAccountAuthorizedUserKey represents a external account authorized - // user file type. - ExternalAccountAuthorizedUserKey -) - -// parseCredentialType returns the associated filetype based on the parsed -// typeString provided. -func parseCredentialType(typeString string) CredentialType { - switch typeString { - case "service_account": - return ServiceAccountKey - case "authorized_user": - return UserCredentialsKey - case "impersonated_service_account": - return ImpersonatedServiceAccountKey - case "external_account": - return ExternalAccountKey - case "external_account_authorized_user": - return ExternalAccountAuthorizedUserKey - case "gdch_service_account": - return GDCHServiceAccountKey - default: - return UnknownCredType - } -} - // GetFileNameFromEnv returns the override if provided or detects a filename // from the environment. func GetFileNameFromEnv(override string) string { diff --git a/vendor/cloud.google.com/go/auth/internal/credsfile/filetype.go b/vendor/cloud.google.com/go/auth/internal/credsfile/filetype.go index 69e30779f..cbba2eb97 100644 --- a/vendor/cloud.google.com/go/auth/internal/credsfile/filetype.go +++ b/vendor/cloud.google.com/go/auth/internal/credsfile/filetype.go @@ -90,19 +90,20 @@ type ExternalAccountAuthorizedUserFile struct { // CredentialSource stores the information necessary to retrieve the credentials for the STS exchange. // -// One field amongst File, URL, and Executable should be filled, depending on the kind of credential in question. +// One field amongst File, URL, Certificate, and Executable should be filled, depending on the kind of credential in question. // The EnvironmentID should start with AWS if being used for an AWS credential. type CredentialSource struct { - File string `json:"file"` - URL string `json:"url"` - Headers map[string]string `json:"headers"` - Executable *ExecutableConfig `json:"executable,omitempty"` - EnvironmentID string `json:"environment_id"` - RegionURL string `json:"region_url"` - RegionalCredVerificationURL string `json:"regional_cred_verification_url"` - CredVerificationURL string `json:"cred_verification_url"` - IMDSv2SessionTokenURL string `json:"imdsv2_session_token_url"` - Format *Format `json:"format,omitempty"` + File string `json:"file"` + URL string `json:"url"` + Headers map[string]string `json:"headers"` + Executable *ExecutableConfig `json:"executable,omitempty"` + Certificate *CertificateConfig `json:"certificate"` + EnvironmentID string `json:"environment_id"` // TODO: Make type for this + RegionURL string `json:"region_url"` + RegionalCredVerificationURL string `json:"regional_cred_verification_url"` + CredVerificationURL string `json:"cred_verification_url"` + IMDSv2SessionTokenURL string `json:"imdsv2_session_token_url"` + Format *Format `json:"format,omitempty"` } // Format describes the format of a [CredentialSource]. @@ -121,6 +122,14 @@ type ExecutableConfig struct { OutputFile string `json:"output_file"` } +// CertificateConfig represents the options used to set up X509 based workload +// [CredentialSource] +type CertificateConfig struct { + UseDefaultCertificateConfig bool `json:"use_default_certificate_config"` + CertificateConfigLocation string `json:"certificate_config_location"` + TrustChainPath string `json:"trust_chain_path"` +} + // ServiceAccountImpersonationInfo has impersonation configuration. type ServiceAccountImpersonationInfo struct { TokenLifetimeSeconds int `json:"token_lifetime_seconds"` @@ -131,6 +140,7 @@ type ImpersonatedServiceAccountFile struct { Type string `json:"type"` ServiceAccountImpersonationURL string `json:"service_account_impersonation_url"` Delegates []string `json:"delegates"` + Scopes []string `json:"scopes"` CredSource json.RawMessage `json:"source_credentials"` UniverseDomain string `json:"universe_domain"` } diff --git a/vendor/cloud.google.com/go/auth/internal/credsfile/parse.go b/vendor/cloud.google.com/go/auth/internal/credsfile/parse.go index a02b9f5df..f2cedb731 100644 --- a/vendor/cloud.google.com/go/auth/internal/credsfile/parse.go +++ b/vendor/cloud.google.com/go/auth/internal/credsfile/parse.go @@ -89,10 +89,11 @@ type fileTypeChecker struct { } // ParseFileType determines the [CredentialType] based on bytes provided. -func ParseFileType(b []byte) (CredentialType, error) { +// Only returns error for json.Unmarshal. +func ParseFileType(b []byte) (string, error) { var f fileTypeChecker if err := json.Unmarshal(b, &f); err != nil { - return 0, err + return "", err } - return parseCredentialType(f.Type), nil + return f.Type, nil } diff --git a/vendor/cloud.google.com/go/auth/internal/internal.go b/vendor/cloud.google.com/go/auth/internal/internal.go index 70534e809..48e9bd9ec 100644 --- a/vendor/cloud.google.com/go/auth/internal/internal.go +++ b/vendor/cloud.google.com/go/auth/internal/internal.go @@ -16,7 +16,7 @@ package internal import ( "context" - "crypto/rsa" + "crypto" "crypto/x509" "encoding/json" "encoding/pem" @@ -38,42 +38,68 @@ const ( // QuotaProjectEnvVar is the environment variable for setting the quota // project. QuotaProjectEnvVar = "GOOGLE_CLOUD_QUOTA_PROJECT" - projectEnvVar = "GOOGLE_CLOUD_PROJECT" - maxBodySize = 1 << 20 + // UniverseDomainEnvVar is the environment variable for setting the default + // service domain for a given Cloud universe. + UniverseDomainEnvVar = "GOOGLE_CLOUD_UNIVERSE_DOMAIN" + projectEnvVar = "GOOGLE_CLOUD_PROJECT" + maxBodySize = 1 << 20 // DefaultUniverseDomain is the default value for universe domain. // Universe domain is the default service domain for a given Cloud universe. DefaultUniverseDomain = "googleapis.com" + + // TrustBoundaryNoOp is a constant indicating no trust boundary is enforced. + TrustBoundaryNoOp = "0x0" + + // TrustBoundaryDataKey is the key used to store trust boundary data in a token's metadata. + TrustBoundaryDataKey = "google.auth.trust_boundary_data" ) -// CloneDefaultClient returns a [http.Client] with some good defaults. -func CloneDefaultClient() *http.Client { +type clonableTransport interface { + Clone() *http.Transport +} + +// DefaultClient returns an [http.Client] with some defaults set. If +// the current [http.DefaultTransport] is a [clonableTransport], as +// is the case for an [*http.Transport], the clone will be used. +// Otherwise the [http.DefaultTransport] is used directly. +func DefaultClient() *http.Client { + if transport, ok := http.DefaultTransport.(clonableTransport); ok { + return &http.Client{ + Transport: transport.Clone(), + Timeout: 30 * time.Second, + } + } + return &http.Client{ - Transport: http.DefaultTransport.(*http.Transport).Clone(), + Transport: http.DefaultTransport, Timeout: 30 * time.Second, } } // ParseKey converts the binary contents of a private key file -// to an *rsa.PrivateKey. It detects whether the private key is in a +// to an crypto.Signer. It detects whether the private key is in a // PEM container or not. If so, it extracts the the private key // from PEM container before conversion. It only supports PEM // containers with no passphrase. -func ParseKey(key []byte) (*rsa.PrivateKey, error) { +func ParseKey(key []byte) (crypto.Signer, error) { block, _ := pem.Decode(key) if block != nil { key = block.Bytes } - parsedKey, err := x509.ParsePKCS8PrivateKey(key) - if err != nil { - parsedKey, err = x509.ParsePKCS1PrivateKey(key) - if err != nil { - return nil, fmt.Errorf("private key should be a PEM or plain PKCS1 or PKCS8: %w", err) + var parsedKey crypto.PrivateKey + + var errPKCS8, errPKCS1, errEC error + if parsedKey, errPKCS8 = x509.ParsePKCS8PrivateKey(key); errPKCS8 != nil { + if parsedKey, errPKCS1 = x509.ParsePKCS1PrivateKey(key); errPKCS1 != nil { + if parsedKey, errEC = x509.ParseECPrivateKey(key); errEC != nil { + return nil, fmt.Errorf("failed to parse private key. Tried PKCS8, PKCS1, and EC formats. Errors: [PKCS8: %v], [PKCS1: %v], [EC: %v]", errPKCS8, errPKCS1, errEC) + } } } - parsed, ok := parsedKey.(*rsa.PrivateKey) + parsed, ok := parsedKey.(crypto.Signer) if !ok { - return nil, errors.New("private key is invalid") + return nil, errors.New("private key is not a signer") } return parsed, nil } @@ -124,6 +150,21 @@ func GetProjectID(b []byte, override string) string { return v.Project } +// DoRequest executes the provided req with the client. It reads the response +// body, closes it, and returns it. +func DoRequest(client *http.Client, req *http.Request) (*http.Response, []byte, error) { + resp, err := client.Do(req) + if err != nil { + return nil, nil, err + } + defer resp.Body.Close() + body, err := ReadAll(io.LimitReader(resp.Body, maxBodySize)) + if err != nil { + return nil, nil, err + } + return resp, body, nil +} + // ReadAll consumes the whole reader and safely reads the content of its body // with some overflow protection. func ReadAll(r io.Reader) ([]byte, error) { @@ -147,6 +188,7 @@ func (p StaticProperty) GetProperty(context.Context) (string, error) { // ComputeUniverseDomainProvider fetches the credentials universe domain from // the google cloud metadata service. type ComputeUniverseDomainProvider struct { + MetadataClient *metadata.Client universeDomainOnce sync.Once universeDomain string universeDomainErr error @@ -156,7 +198,7 @@ type ComputeUniverseDomainProvider struct { // metadata service. func (c *ComputeUniverseDomainProvider) GetProperty(ctx context.Context) (string, error) { c.universeDomainOnce.Do(func() { - c.universeDomain, c.universeDomainErr = getMetadataUniverseDomain(ctx) + c.universeDomain, c.universeDomainErr = getMetadataUniverseDomain(ctx, c.MetadataClient) }) if c.universeDomainErr != nil { return "", c.universeDomainErr @@ -165,14 +207,14 @@ func (c *ComputeUniverseDomainProvider) GetProperty(ctx context.Context) (string } // httpGetMetadataUniverseDomain is a package var for unit test substitution. -var httpGetMetadataUniverseDomain = func(ctx context.Context) (string, error) { - client := metadata.NewClient(&http.Client{Timeout: time.Second}) - // TODO(quartzmo): set ctx on request - return client.Get("universe/universe_domain") +var httpGetMetadataUniverseDomain = func(ctx context.Context, client *metadata.Client) (string, error) { + ctx, cancel := context.WithTimeout(ctx, 1*time.Second) + defer cancel() + return client.GetWithContext(ctx, "universe/universe-domain") } -func getMetadataUniverseDomain(ctx context.Context) (string, error) { - universeDomain, err := httpGetMetadataUniverseDomain(ctx) +func getMetadataUniverseDomain(ctx context.Context, client *metadata.Client) (string, error) { + universeDomain, err := httpGetMetadataUniverseDomain(ctx, client) if err == nil { return universeDomain, nil } @@ -182,3 +224,62 @@ func getMetadataUniverseDomain(ctx context.Context) (string, error) { } return "", err } + +// FormatIAMServiceAccountResource sets a service account name in an IAM resource +// name. +func FormatIAMServiceAccountResource(name string) string { + return fmt.Sprintf("projects/-/serviceAccounts/%s", name) +} + +// TrustBoundaryData represents the trust boundary data associated with a token. +// It contains information about the regions or environments where the token is valid. +type TrustBoundaryData struct { + // Locations is the list of locations that the token is allowed to be used in. + Locations []string + // EncodedLocations represents the locations in an encoded format. + EncodedLocations string +} + +// NewTrustBoundaryData returns a new TrustBoundaryData with the specified locations and encoded locations. +func NewTrustBoundaryData(locations []string, encodedLocations string) *TrustBoundaryData { + // Ensure consistency by treating a nil slice as an empty slice. + if locations == nil { + locations = []string{} + } + locationsCopy := make([]string, len(locations)) + copy(locationsCopy, locations) + return &TrustBoundaryData{ + Locations: locationsCopy, + EncodedLocations: encodedLocations, + } +} + +// NewNoOpTrustBoundaryData returns a new TrustBoundaryData with no restrictions. +func NewNoOpTrustBoundaryData() *TrustBoundaryData { + return &TrustBoundaryData{ + Locations: []string{}, + EncodedLocations: TrustBoundaryNoOp, + } +} + +// TrustBoundaryHeader returns the value for the x-allowed-locations header and a bool +// indicating if the header should be set. The return values are structured to +// handle three distinct states required by the backend: +// 1. Header not set: (value="", present=false) -> data is empty. +// 2. Header set to an empty string: (value="", present=true) -> data is a no-op. +// 3. Header set to a value: (value="...", present=true) -> data has locations. +func (t TrustBoundaryData) TrustBoundaryHeader() (value string, present bool) { + if t.EncodedLocations == "" { + // If the data is empty, the header should not be present. + return "", false + } + + // If data is not empty, the header should always be present. + present = true + value = "" + if t.EncodedLocations != TrustBoundaryNoOp { + value = t.EncodedLocations + } + // For a no-op, the backend requires an empty string. + return value, present +} diff --git a/vendor/cloud.google.com/go/auth/internal/jwt/jwt.go b/vendor/cloud.google.com/go/auth/internal/jwt/jwt.go index dc28b3c3b..027c0dae0 100644 --- a/vendor/cloud.google.com/go/auth/internal/jwt/jwt.go +++ b/vendor/cloud.google.com/go/auth/internal/jwt/jwt.go @@ -17,13 +17,16 @@ package jwt import ( "bytes" "crypto" + "crypto/ecdsa" "crypto/rand" "crypto/rsa" "crypto/sha256" + "encoding/asn1" "encoding/base64" "encoding/json" "errors" "fmt" + "math/big" "strings" "time" ) @@ -35,6 +38,8 @@ const ( HeaderAlgES256 = "ES256" // HeaderType is the standard [Header.Type]. HeaderType = "JWT" + // ES256 key size + es256KeySize = 32 ) // Header represents a JWT header. @@ -111,7 +116,7 @@ func (c *Claims) encode() (string, error) { } // EncodeJWS encodes the data using the provided key as a JSON web signature. -func EncodeJWS(header *Header, c *Claims, key *rsa.PrivateKey) (string, error) { +func EncodeJWS(header *Header, c *Claims, signer crypto.Signer) (string, error) { head, err := header.encode() if err != nil { return "", err @@ -123,10 +128,26 @@ func EncodeJWS(header *Header, c *Claims, key *rsa.PrivateKey) (string, error) { ss := fmt.Sprintf("%s.%s", head, claims) h := sha256.New() h.Write([]byte(ss)) - sig, err := rsa.SignPKCS1v15(rand.Reader, key, crypto.SHA256, h.Sum(nil)) + sig, err := signer.Sign(rand.Reader, h.Sum(nil), crypto.SHA256) if err != nil { return "", err } + + if header.Algorithm == HeaderAlgES256 { + var ecSig struct { + R, S *big.Int + } + if _, err := asn1.Unmarshal(sig, &ecSig); err != nil { + return "", err + } + + rawSig := make([]byte, es256KeySize*2) + + ecSig.R.FillBytes(rawSig[:es256KeySize]) + ecSig.S.FillBytes(rawSig[es256KeySize:]) + + sig = rawSig + } return fmt.Sprintf("%s.%s", ss, base64.RawURLEncoding.EncodeToString(sig)), nil } @@ -153,7 +174,7 @@ func DecodeJWS(payload string) (*Claims, error) { // VerifyJWS tests whether the provided JWT token's signature was produced by // the private key associated with the provided public key. -func VerifyJWS(token string, key *rsa.PublicKey) error { +func VerifyJWS(token string, key crypto.PublicKey) error { parts := strings.Split(token, ".") if len(parts) != 3 { return errors.New("jwt: invalid token received, token must have 3 parts") @@ -167,5 +188,21 @@ func VerifyJWS(token string, key *rsa.PublicKey) error { h := sha256.New() h.Write([]byte(signedContent)) - return rsa.VerifyPKCS1v15(key, crypto.SHA256, h.Sum(nil), signatureString) + hashed := h.Sum(nil) + + switch pub := key.(type) { + case *rsa.PublicKey: + return rsa.VerifyPKCS1v15(pub, crypto.SHA256, hashed, signatureString) + case *ecdsa.PublicKey: + if len(signatureString) != 2*32 { + return fmt.Errorf("jwt: ecdsa signature size should be 64 bytes, got %d", len(signatureString)) + } + r := new(big.Int).SetBytes(signatureString[:32]) + s := new(big.Int).SetBytes(signatureString[32:]) + if !ecdsa.Verify(pub, hashed, r, s) { + return errors.New("jwt: ecdsa signature verification failed") + } + return nil + } + return fmt.Errorf("jwt: unsupported public key type: %T", key) } diff --git a/vendor/cloud.google.com/go/auth/internal/retry/retry.go b/vendor/cloud.google.com/go/auth/internal/retry/retry.go new file mode 100644 index 000000000..276cc4a3e --- /dev/null +++ b/vendor/cloud.google.com/go/auth/internal/retry/retry.go @@ -0,0 +1,117 @@ +// Copyright 2025 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package retry + +import ( + "context" + "io" + "math/rand" + "net/http" + "time" +) + +const ( + maxRetryAttempts = 5 +) + +var ( + syscallRetryable = func(error) bool { return false } +) + +// defaultBackoff is basically equivalent to gax.Backoff without the need for +// the dependency. +type defaultBackoff struct { + max time.Duration + mul float64 + cur time.Duration +} + +func (b *defaultBackoff) Pause() time.Duration { + d := time.Duration(1 + rand.Int63n(int64(b.cur))) + b.cur = time.Duration(float64(b.cur) * b.mul) + if b.cur > b.max { + b.cur = b.max + } + return d +} + +// Sleep is the equivalent of gax.Sleep without the need for the dependency. +func Sleep(ctx context.Context, d time.Duration) error { + t := time.NewTimer(d) + select { + case <-ctx.Done(): + t.Stop() + return ctx.Err() + case <-t.C: + return nil + } +} + +// New returns a new Retryer with the default backoff strategy. +func New() *Retryer { + return &Retryer{bo: &defaultBackoff{ + cur: 100 * time.Millisecond, + max: 30 * time.Second, + mul: 2, + }} +} + +type backoff interface { + Pause() time.Duration +} + +// Retryer is a retryer for HTTP requests. +type Retryer struct { + bo backoff + attempts int +} + +// Retry determines if a request should be retried. +func (r *Retryer) Retry(status int, err error) (time.Duration, bool) { + if status == http.StatusOK { + return 0, false + } + retryOk := shouldRetry(status, err) + if !retryOk { + return 0, false + } + if r.attempts == maxRetryAttempts { + return 0, false + } + r.attempts++ + return r.bo.Pause(), true +} + +func shouldRetry(status int, err error) bool { + if 500 <= status && status <= 599 { + return true + } + if err == io.ErrUnexpectedEOF { + return true + } + // Transient network errors should be retried. + if syscallRetryable(err) { + return true + } + if err, ok := err.(interface{ Temporary() bool }); ok { + if err.Temporary() { + return true + } + } + if err, ok := err.(interface{ Unwrap() error }); ok { + return shouldRetry(status, err.Unwrap()) + } + return false +} diff --git a/vendor/cloud.google.com/go/auth/internal/transport/cba.go b/vendor/cloud.google.com/go/auth/internal/transport/cba.go index 757349062..14bca966e 100644 --- a/vendor/cloud.google.com/go/auth/internal/transport/cba.go +++ b/vendor/cloud.google.com/go/auth/internal/transport/cba.go @@ -17,7 +17,10 @@ package transport import ( "context" "crypto/tls" + "crypto/x509" "errors" + "log" + "log/slog" "net" "net/http" "net/url" @@ -28,7 +31,6 @@ import ( "cloud.google.com/go/auth/internal" "cloud.google.com/go/auth/internal/transport/cert" "github.com/google/s2a-go" - "github.com/google/s2a-go/fallback" "google.golang.org/grpc/credentials" ) @@ -44,11 +46,19 @@ const ( googleAPIUseMTLSOld = "GOOGLE_API_USE_MTLS" universeDomainPlaceholder = "UNIVERSE_DOMAIN" + + mtlsMDSRoot = "/run/google-mds-mtls/root.crt" + mtlsMDSKey = "/run/google-mds-mtls/client.key" ) -var ( - mdsMTLSAutoConfigSource mtlsConfigSource - errUniverseNotSupportedMTLS = errors.New("mTLS is not supported in any universe other than googleapis.com") +// Type represents the type of transport used. +type Type int + +const ( + // TransportTypeUnknown represents an unknown transport type and is the default option. + TransportTypeUnknown Type = iota + // TransportTypeMTLSS2A represents the mTLS transport type using S2A. + TransportTypeMTLSS2A ) // Options is a struct that is duplicated information from the individual @@ -56,13 +66,14 @@ var ( // fields on httptransport.Options and grpctransport.Options. type Options struct { Endpoint string - DefaultMTLSEndpoint string DefaultEndpointTemplate string + DefaultMTLSEndpoint string ClientCertProvider cert.Provider Client *http.Client UniverseDomain string EnableDirectPath bool EnableDirectPathXds bool + Logger *slog.Logger } // getUniverseDomain returns the default service domain for a given Cloud @@ -90,6 +101,16 @@ func (o *Options) defaultEndpoint() string { return strings.Replace(o.DefaultEndpointTemplate, universeDomainPlaceholder, o.getUniverseDomain(), 1) } +// defaultMTLSEndpoint returns the DefaultMTLSEndpointTemplate merged with the +// universe domain if the DefaultMTLSEndpointTemplate is set, otherwise returns an +// empty string. +func (o *Options) defaultMTLSEndpoint() string { + if o.DefaultMTLSEndpoint == "" { + return "" + } + return strings.Replace(o.DefaultMTLSEndpoint, universeDomainPlaceholder, o.getUniverseDomain(), 1) +} + // mergedEndpoint merges a user-provided Endpoint of format host[:port] with the // default endpoint. func (o *Options) mergedEndpoint() (string, error) { @@ -108,39 +129,55 @@ func fixScheme(baseURL string) string { return baseURL } +// GRPCTransportCredentials embeds interface TransportCredentials with additional data. +type GRPCTransportCredentials struct { + credentials.TransportCredentials + Endpoint string + TransportType Type +} + // GetGRPCTransportCredsAndEndpoint returns an instance of // [google.golang.org/grpc/credentials.TransportCredentials], and the -// corresponding endpoint to use for GRPC client. -func GetGRPCTransportCredsAndEndpoint(opts *Options) (credentials.TransportCredentials, string, error) { +// corresponding endpoint and transport type to use for GRPC client. +func GetGRPCTransportCredsAndEndpoint(opts *Options) (*GRPCTransportCredentials, error) { config, err := getTransportConfig(opts) if err != nil { - return nil, "", err + return nil, err } defaultTransportCreds := credentials.NewTLS(&tls.Config{ GetClientCertificate: config.clientCertSource, }) - if config.s2aAddress == "" { - return defaultTransportCreds, config.endpoint, nil - } - var fallbackOpts *s2a.FallbackOptions - // In case of S2A failure, fall back to the endpoint that would've been used without S2A. - if fallbackHandshake, err := fallback.DefaultFallbackClientHandshakeFunc(config.endpoint); err == nil { - fallbackOpts = &s2a.FallbackOptions{ - FallbackClientHandshakeFunc: fallbackHandshake, + var s2aAddr string + var transportCredsForS2A credentials.TransportCredentials + + if config.mtlsS2AAddress != "" { + s2aAddr = config.mtlsS2AAddress + transportCredsForS2A, err = loadMTLSMDSTransportCreds(mtlsMDSRoot, mtlsMDSKey) + if err != nil { + log.Printf("Loading MTLS MDS credentials failed: %v", err) + if config.s2aAddress != "" { + s2aAddr = config.s2aAddress + } else { + return &GRPCTransportCredentials{defaultTransportCreds, config.endpoint, TransportTypeUnknown}, nil + } } + } else if config.s2aAddress != "" { + s2aAddr = config.s2aAddress + } else { + return &GRPCTransportCredentials{defaultTransportCreds, config.endpoint, TransportTypeUnknown}, nil } s2aTransportCreds, err := s2a.NewClientCreds(&s2a.ClientOptions{ - S2AAddress: config.s2aAddress, - FallbackOpts: fallbackOpts, + S2AAddress: s2aAddr, + TransportCreds: transportCredsForS2A, }) if err != nil { // Use default if we cannot initialize S2A client transport credentials. - return defaultTransportCreds, config.endpoint, nil + return &GRPCTransportCredentials{defaultTransportCreds, config.endpoint, TransportTypeUnknown}, nil } - return s2aTransportCreds, config.s2aMTLSEndpoint, nil + return &GRPCTransportCredentials{s2aTransportCreds, config.s2aMTLSEndpoint, TransportTypeMTLSS2A}, nil } // GetHTTPTransportConfig returns a client certificate source and a function for @@ -151,32 +188,60 @@ func GetHTTPTransportConfig(opts *Options) (cert.Provider, func(context.Context, return nil, nil, err } - if config.s2aAddress == "" { - return config.clientCertSource, nil, nil - } - - var fallbackOpts *s2a.FallbackOptions - // In case of S2A failure, fall back to the endpoint that would've been used without S2A. - if fallbackURL, err := url.Parse(config.endpoint); err == nil { - if fallbackDialer, fallbackServerAddr, err := fallback.DefaultFallbackDialerAndAddress(fallbackURL.Hostname()); err == nil { - fallbackOpts = &s2a.FallbackOptions{ - FallbackDialer: &s2a.FallbackDialer{ - Dialer: fallbackDialer, - ServerAddr: fallbackServerAddr, - }, + var s2aAddr string + var transportCredsForS2A credentials.TransportCredentials + + if config.mtlsS2AAddress != "" { + s2aAddr = config.mtlsS2AAddress + transportCredsForS2A, err = loadMTLSMDSTransportCreds(mtlsMDSRoot, mtlsMDSKey) + if err != nil { + log.Printf("Loading MTLS MDS credentials failed: %v", err) + if config.s2aAddress != "" { + s2aAddr = config.s2aAddress + } else { + return config.clientCertSource, nil, nil } } + } else if config.s2aAddress != "" { + s2aAddr = config.s2aAddress + } else { + return config.clientCertSource, nil, nil } dialTLSContextFunc := s2a.NewS2ADialTLSContextFunc(&s2a.ClientOptions{ - S2AAddress: config.s2aAddress, - FallbackOpts: fallbackOpts, + S2AAddress: s2aAddr, + TransportCreds: transportCredsForS2A, }) return nil, dialTLSContextFunc, nil } +func loadMTLSMDSTransportCreds(mtlsMDSRootFile, mtlsMDSKeyFile string) (credentials.TransportCredentials, error) { + rootPEM, err := os.ReadFile(mtlsMDSRootFile) + if err != nil { + return nil, err + } + caCertPool := x509.NewCertPool() + ok := caCertPool.AppendCertsFromPEM(rootPEM) + if !ok { + return nil, errors.New("failed to load MTLS MDS root certificate") + } + // The mTLS MDS credentials are formatted as the concatenation of a PEM-encoded certificate chain + // followed by a PEM-encoded private key. For this reason, the concatenation is passed in to the + // tls.X509KeyPair function as both the certificate chain and private key arguments. + cert, err := tls.LoadX509KeyPair(mtlsMDSKeyFile, mtlsMDSKeyFile) + if err != nil { + return nil, err + } + tlsConfig := tls.Config{ + RootCAs: caCertPool, + Certificates: []tls.Certificate{cert}, + MinVersion: tls.VersionTLS13, + } + return credentials.NewTLS(&tlsConfig), nil +} + func getTransportConfig(opts *Options) (*transportConfig, error) { - clientCertSource, err := getClientCertificateSource(opts) + clientCertSource, err := GetClientCertificateProvider(opts) if err != nil { return nil, err } @@ -192,32 +257,29 @@ func getTransportConfig(opts *Options) (*transportConfig, error) { if !shouldUseS2A(clientCertSource, opts) { return &defaultTransportConfig, nil } - if !opts.isUniverseDomainGDU() { - return nil, errUniverseNotSupportedMTLS - } - s2aMTLSEndpoint := opts.DefaultMTLSEndpoint - - s2aAddress := GetS2AAddress() - if s2aAddress == "" { + s2aAddress := GetS2AAddress(opts.Logger) + mtlsS2AAddress := GetMTLSS2AAddress(opts.Logger) + if s2aAddress == "" && mtlsS2AAddress == "" { return &defaultTransportConfig, nil } return &transportConfig{ clientCertSource: clientCertSource, endpoint: endpoint, s2aAddress: s2aAddress, - s2aMTLSEndpoint: s2aMTLSEndpoint, + mtlsS2AAddress: mtlsS2AAddress, + s2aMTLSEndpoint: opts.defaultMTLSEndpoint(), }, nil } -// getClientCertificateSource returns a default client certificate source, if +// GetClientCertificateProvider returns a default client certificate source, if // not provided by the user. // // A nil default source can be returned if the source does not exist. Any exceptions // encountered while initializing the default source will be reported as client // error (ex. corrupt metadata file). -func getClientCertificateSource(opts *Options) (cert.Provider, error) { - if !isClientCertificateEnabled() { +func GetClientCertificateProvider(opts *Options) (cert.Provider, error) { + if !isClientCertificateEnabled(opts) { return nil, nil } else if opts.ClientCertProvider != nil { return opts.ClientCertProvider, nil @@ -226,14 +288,14 @@ func getClientCertificateSource(opts *Options) (cert.Provider, error) { } -// isClientCertificateEnabled returns true by default, unless explicitly set to false via env var. -func isClientCertificateEnabled() bool { +// isClientCertificateEnabled returns true by default for all GDU universe domain, unless explicitly overridden by env var +func isClientCertificateEnabled(opts *Options) bool { if value, ok := os.LookupEnv(googleAPIUseCertSource); ok { // error as false is OK b, _ := strconv.ParseBool(value) return b } - return true + return opts.isUniverseDomainGDU() } type transportConfig struct { @@ -241,8 +303,10 @@ type transportConfig struct { clientCertSource cert.Provider // The corresponding endpoint to use based on client certificate source. endpoint string - // The S2A address if it can be used, otherwise an empty string. + // The plaintext S2A address if it can be used, otherwise an empty string. s2aAddress string + // The MTLS S2A address if it can be used, otherwise an empty string. + mtlsS2AAddress string // The MTLS endpoint to use with S2A. s2aMTLSEndpoint string } @@ -250,24 +314,23 @@ type transportConfig struct { // getEndpoint returns the endpoint for the service, taking into account the // user-provided endpoint override "settings.Endpoint". // -// If no endpoint override is specified, we will either return the default endpoint or -// the default mTLS endpoint if a client certificate is available. +// If no endpoint override is specified, we will either return the default +// endpoint or the default mTLS endpoint if a client certificate is available. // -// You can override the default endpoint choice (mtls vs. regular) by setting the -// GOOGLE_API_USE_MTLS_ENDPOINT environment variable. +// You can override the default endpoint choice (mTLS vs. regular) by setting +// the GOOGLE_API_USE_MTLS_ENDPOINT environment variable. // // If the endpoint override is an address (host:port) rather than full base // URL (ex. https://...), then the user-provided address will be merged into // the default endpoint. For example, WithEndpoint("myhost:8000") and -// DefaultEndpointTemplate("https://UNIVERSE_DOMAIN/bar/baz") will return "https://myhost:8080/bar/baz" +// DefaultEndpointTemplate("https://UNIVERSE_DOMAIN/bar/baz") will return +// "https://myhost:8080/bar/baz". Note that this does not apply to the mTLS +// endpoint. func getEndpoint(opts *Options, clientCertSource cert.Provider) (string, error) { if opts.Endpoint == "" { mtlsMode := getMTLSMode() if mtlsMode == mTLSModeAlways || (clientCertSource != nil && mtlsMode == mTLSModeAuto) { - if !opts.isUniverseDomainGDU() { - return "", errUniverseNotSupportedMTLS - } - return opts.DefaultMTLSEndpoint, nil + return opts.defaultMTLSEndpoint(), nil } return opts.defaultEndpoint(), nil } diff --git a/vendor/cloud.google.com/go/auth/internal/transport/cert/default_cert.go b/vendor/cloud.google.com/go/auth/internal/transport/cert/default_cert.go index 96582ce7b..5cedc50f1 100644 --- a/vendor/cloud.google.com/go/auth/internal/transport/cert/default_cert.go +++ b/vendor/cloud.google.com/go/auth/internal/transport/cert/default_cert.go @@ -50,11 +50,14 @@ var errSourceUnavailable = errors.New("certificate source is unavailable") // returned to indicate that a default certificate source is unavailable. func DefaultProvider() (Provider, error) { defaultCert.once.Do(func() { - defaultCert.provider, defaultCert.err = NewEnterpriseCertificateProxyProvider("") + defaultCert.provider, defaultCert.err = NewWorkloadX509CertProvider("") if errors.Is(defaultCert.err, errSourceUnavailable) { - defaultCert.provider, defaultCert.err = NewSecureConnectProvider("") + defaultCert.provider, defaultCert.err = NewEnterpriseCertificateProxyProvider("") if errors.Is(defaultCert.err, errSourceUnavailable) { - defaultCert.provider, defaultCert.err = nil, nil + defaultCert.provider, defaultCert.err = NewSecureConnectProvider("") + if errors.Is(defaultCert.err, errSourceUnavailable) { + defaultCert.provider, defaultCert.err = nil, nil + } } } }) diff --git a/vendor/cloud.google.com/go/auth/internal/transport/cert/enterprise_cert.go b/vendor/cloud.google.com/go/auth/internal/transport/cert/enterprise_cert.go index 366515916..6c954ae19 100644 --- a/vendor/cloud.google.com/go/auth/internal/transport/cert/enterprise_cert.go +++ b/vendor/cloud.google.com/go/auth/internal/transport/cert/enterprise_cert.go @@ -16,7 +16,6 @@ package cert import ( "crypto/tls" - "errors" "github.com/googleapis/enterprise-certificate-proxy/client" ) @@ -37,10 +36,9 @@ type ecpSource struct { func NewEnterpriseCertificateProxyProvider(configFilePath string) (Provider, error) { key, err := client.Cred(configFilePath) if err != nil { - if errors.Is(err, client.ErrCredUnavailable) { - return nil, errSourceUnavailable - } - return nil, err + // TODO(codyoss): once this is fixed upstream can handle this error a + // little better here. But be safe for now and assume unavailable. + return nil, errSourceUnavailable } return (&ecpSource{ diff --git a/vendor/cloud.google.com/go/auth/internal/transport/cert/secureconnect_cert.go b/vendor/cloud.google.com/go/auth/internal/transport/cert/secureconnect_cert.go index 3227aba28..738cb2161 100644 --- a/vendor/cloud.google.com/go/auth/internal/transport/cert/secureconnect_cert.go +++ b/vendor/cloud.google.com/go/auth/internal/transport/cert/secureconnect_cert.go @@ -62,11 +62,11 @@ func NewSecureConnectProvider(configFilePath string) (Provider, error) { file, err := os.ReadFile(configFilePath) if err != nil { - if errors.Is(err, os.ErrNotExist) { - // Config file missing means Secure Connect is not supported. - return nil, errSourceUnavailable - } - return nil, err + // Config file missing means Secure Connect is not supported. + // There are non-os.ErrNotExist errors that may be returned. + // (e.g. if the home directory is /dev/null, *nix systems will + // return ENOTDIR instead of ENOENT) + return nil, errSourceUnavailable } var metadata secureConnectMetadata diff --git a/vendor/cloud.google.com/go/auth/internal/transport/cert/workload_cert.go b/vendor/cloud.google.com/go/auth/internal/transport/cert/workload_cert.go new file mode 100644 index 000000000..b2a3be23c --- /dev/null +++ b/vendor/cloud.google.com/go/auth/internal/transport/cert/workload_cert.go @@ -0,0 +1,138 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package cert + +import ( + "crypto/tls" + "encoding/json" + "errors" + "io" + "os" + + "github.com/googleapis/enterprise-certificate-proxy/client/util" +) + +type certConfigs struct { + Workload *workloadSource `json:"workload"` +} + +type workloadSource struct { + CertPath string `json:"cert_path"` + KeyPath string `json:"key_path"` +} + +type certificateConfig struct { + CertConfigs certConfigs `json:"cert_configs"` +} + +// getconfigFilePath determines the path to the certificate configuration file. +// It first checks for the presence of an environment variable that specifies +// the file path. If the environment variable is not set, it falls back to +// a default configuration file path. +func getconfigFilePath() string { + envFilePath := util.GetConfigFilePathFromEnv() + if envFilePath != "" { + return envFilePath + } + return util.GetDefaultConfigFilePath() + +} + +// GetCertificatePath retrieves the certificate file path from the provided +// configuration file. If the configFilePath is empty, it attempts to load +// the configuration from a well-known gcloud location. +// This function is exposed to allow other packages, such as the +// externalaccount package, to retrieve the certificate path without needing +// to load the entire certificate configuration. +func GetCertificatePath(configFilePath string) (string, error) { + if configFilePath == "" { + configFilePath = getconfigFilePath() + } + certFile, _, err := getCertAndKeyFiles(configFilePath) + if err != nil { + return "", err + } + return certFile, nil +} + +// NewWorkloadX509CertProvider creates a certificate source +// that reads a certificate and private key file from the local file system. +// This is intended to be used for workload identity federation. +// +// The configFilePath points to a config file containing relevant parameters +// such as the certificate and key file paths. +// If configFilePath is empty, the client will attempt to load the config from +// a well-known gcloud location. +func NewWorkloadX509CertProvider(configFilePath string) (Provider, error) { + if configFilePath == "" { + configFilePath = getconfigFilePath() + } + certFile, keyFile, err := getCertAndKeyFiles(configFilePath) + if err != nil { + return nil, err + } + + source := &workloadSource{ + CertPath: certFile, + KeyPath: keyFile, + } + return source.getClientCertificate, nil +} + +// getClientCertificate attempts to load the certificate and key from the files specified in the +// certificate config. +func (s *workloadSource) getClientCertificate(info *tls.CertificateRequestInfo) (*tls.Certificate, error) { + cert, err := tls.LoadX509KeyPair(s.CertPath, s.KeyPath) + if err != nil { + return nil, err + } + return &cert, nil +} + +// getCertAndKeyFiles attempts to read the provided config file and return the certificate and private +// key file paths. +func getCertAndKeyFiles(configFilePath string) (string, string, error) { + jsonFile, err := os.Open(configFilePath) + if err != nil { + return "", "", errSourceUnavailable + } + + byteValue, err := io.ReadAll(jsonFile) + if err != nil { + return "", "", err + } + + var config certificateConfig + if err := json.Unmarshal(byteValue, &config); err != nil { + return "", "", err + } + + if config.CertConfigs.Workload == nil { + return "", "", errSourceUnavailable + } + + certFile := config.CertConfigs.Workload.CertPath + keyFile := config.CertConfigs.Workload.KeyPath + + if certFile == "" { + return "", "", errors.New("certificate configuration is missing the certificate file location") + } + + if keyFile == "" { + return "", "", errors.New("certificate configuration is missing the key file location") + } + + return certFile, keyFile, nil +} diff --git a/vendor/cloud.google.com/go/auth/internal/transport/headers/headers.go b/vendor/cloud.google.com/go/auth/internal/transport/headers/headers.go new file mode 100644 index 000000000..5483a763c --- /dev/null +++ b/vendor/cloud.google.com/go/auth/internal/transport/headers/headers.go @@ -0,0 +1,61 @@ +// Copyright 2025 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package headers + +import ( + "net/http" + + "cloud.google.com/go/auth" + "cloud.google.com/go/auth/internal" +) + +// SetAuthHeader uses the provided token to set the Authorization and trust +// boundary headers on a request. If the token.Type is empty, the type is +// assumed to be Bearer. +func SetAuthHeader(token *auth.Token, req *http.Request) { + typ := token.Type + if typ == "" { + typ = internal.TokenTypeBearer + } + req.Header.Set("Authorization", typ+" "+token.Value) + + if headerVal, setHeader := getTrustBoundaryHeader(token); setHeader { + req.Header.Set("x-allowed-locations", headerVal) + } +} + +// SetAuthMetadata uses the provided token to set the Authorization and trust +// boundary metadata. If the token.Type is empty, the type is assumed to be +// Bearer. +func SetAuthMetadata(token *auth.Token, m map[string]string) { + typ := token.Type + if typ == "" { + typ = internal.TokenTypeBearer + } + m["authorization"] = typ + " " + token.Value + + if headerVal, setHeader := getTrustBoundaryHeader(token); setHeader { + m["x-allowed-locations"] = headerVal + } +} + +func getTrustBoundaryHeader(token *auth.Token) (val string, present bool) { + if data, ok := token.Metadata[internal.TrustBoundaryDataKey]; ok { + if tbd, ok := data.(internal.TrustBoundaryData); ok { + return tbd.TrustBoundaryHeader() + } + } + return "", false +} diff --git a/vendor/cloud.google.com/go/auth/internal/transport/s2a.go b/vendor/cloud.google.com/go/auth/internal/transport/s2a.go index 2ed532deb..a63309956 100644 --- a/vendor/cloud.google.com/go/auth/internal/transport/s2a.go +++ b/vendor/cloud.google.com/go/auth/internal/transport/s2a.go @@ -15,12 +15,14 @@ package transport import ( + "context" "encoding/json" + "fmt" "log" + "log/slog" "os" "strconv" "sync" - "time" "cloud.google.com/go/auth/internal/transport/cert" "cloud.google.com/go/compute/metadata" @@ -31,41 +33,38 @@ const ( ) var ( - // The period an MTLS config can be reused before needing refresh. - configExpiry = time.Hour + mtlsConfiguration *mtlsConfig - // mdsMTLSAutoConfigSource is an instance of reuseMTLSConfigSource, with metadataMTLSAutoConfig as its config source. mtlsOnce sync.Once ) // GetS2AAddress returns the S2A address to be reached via plaintext connection. // Returns empty string if not set or invalid. -func GetS2AAddress() string { - c, err := getMetadataMTLSAutoConfig().Config() - if err != nil { - return "" - } - if !c.Valid() { +func GetS2AAddress(logger *slog.Logger) string { + getMetadataMTLSAutoConfig(logger) + if !mtlsConfiguration.valid() { return "" } - return c.S2A.PlaintextAddress + return mtlsConfiguration.S2A.PlaintextAddress } -type mtlsConfigSource interface { - Config() (*mtlsConfig, error) +// GetMTLSS2AAddress returns the S2A address to be reached via MTLS connection. +// Returns empty string if not set or invalid. +func GetMTLSS2AAddress(logger *slog.Logger) string { + getMetadataMTLSAutoConfig(logger) + if !mtlsConfiguration.valid() { + return "" + } + return mtlsConfiguration.S2A.MTLSAddress } // mtlsConfig contains the configuration for establishing MTLS connections with Google APIs. type mtlsConfig struct { - S2A *s2aAddresses `json:"s2a"` - Expiry time.Time + S2A *s2aAddresses `json:"s2a"` } -func (c *mtlsConfig) Valid() bool { - return c != nil && c.S2A != nil && !c.expired() -} -func (c *mtlsConfig) expired() bool { - return c.Expiry.Before(time.Now()) +func (c *mtlsConfig) valid() bool { + return c != nil && c.S2A != nil } // s2aAddresses contains the plaintext and/or MTLS S2A addresses. @@ -76,80 +75,39 @@ type s2aAddresses struct { MTLSAddress string `json:"mtls_address"` } -// getMetadataMTLSAutoConfig returns mdsMTLSAutoConfigSource, which is backed by config from MDS with auto-refresh. -func getMetadataMTLSAutoConfig() mtlsConfigSource { +func getMetadataMTLSAutoConfig(logger *slog.Logger) { + var err error mtlsOnce.Do(func() { - mdsMTLSAutoConfigSource = &reuseMTLSConfigSource{ - src: &metadataMTLSAutoConfig{}, + mtlsConfiguration, err = queryConfig(logger) + if err != nil { + log.Printf("Getting MTLS config failed: %v", err) } }) - return mdsMTLSAutoConfigSource -} - -// reuseMTLSConfigSource caches a valid version of mtlsConfig, and uses `src` to refresh upon config expiry. -// It implements the mtlsConfigSource interface, so calling Config() on it returns an mtlsConfig. -type reuseMTLSConfigSource struct { - src mtlsConfigSource // src.Config() is called when config is expired - mu sync.Mutex // mutex guards config - config *mtlsConfig // cached config -} - -func (cs *reuseMTLSConfigSource) Config() (*mtlsConfig, error) { - cs.mu.Lock() - defer cs.mu.Unlock() - - if cs.config.Valid() { - return cs.config, nil - } - c, err := cs.src.Config() - if err != nil { - return nil, err - } - cs.config = c - return c, nil } -// metadataMTLSAutoConfig is an implementation of the interface mtlsConfigSource -// It has the logic to query MDS and return an mtlsConfig -type metadataMTLSAutoConfig struct{} - -var httpGetMetadataMTLSConfig = func() (string, error) { - return metadata.Get(configEndpointSuffix) +var httpGetMetadataMTLSConfig = func(logger *slog.Logger) (string, error) { + metadataClient := metadata.NewWithOptions(&metadata.Options{ + Logger: logger, + }) + return metadataClient.GetWithContext(context.Background(), configEndpointSuffix) } -func (cs *metadataMTLSAutoConfig) Config() (*mtlsConfig, error) { - resp, err := httpGetMetadataMTLSConfig() +func queryConfig(logger *slog.Logger) (*mtlsConfig, error) { + resp, err := httpGetMetadataMTLSConfig(logger) if err != nil { - log.Printf("querying MTLS config from MDS endpoint failed: %v", err) - return defaultMTLSConfig(), nil + return nil, fmt.Errorf("querying MTLS config from MDS endpoint failed: %w", err) } var config mtlsConfig err = json.Unmarshal([]byte(resp), &config) if err != nil { - log.Printf("unmarshalling MTLS config from MDS endpoint failed: %v", err) - return defaultMTLSConfig(), nil + return nil, fmt.Errorf("unmarshalling MTLS config from MDS endpoint failed: %w", err) } - if config.S2A == nil { - log.Printf("returned MTLS config from MDS endpoint is invalid: %v", config) - return defaultMTLSConfig(), nil + return nil, fmt.Errorf("returned MTLS config from MDS endpoint is invalid: %v", config) } - - // set new expiry - config.Expiry = time.Now().Add(configExpiry) return &config, nil } -func defaultMTLSConfig() *mtlsConfig { - return &mtlsConfig{ - S2A: &s2aAddresses{ - PlaintextAddress: "", - MTLSAddress: "", - }, - Expiry: time.Now().Add(configExpiry), - } -} - func shouldUseS2A(clientCertSource cert.Provider, opts *Options) bool { // If client cert is found, use that over S2A. if clientCertSource != nil { diff --git a/vendor/cloud.google.com/go/auth/internal/transport/transport.go b/vendor/cloud.google.com/go/auth/internal/transport/transport.go index b76386d3c..fb0a8a1e0 100644 --- a/vendor/cloud.google.com/go/auth/internal/transport/transport.go +++ b/vendor/cloud.google.com/go/auth/internal/transport/transport.go @@ -17,11 +17,45 @@ package transport import ( + "crypto/tls" "fmt" + "net" + "net/http" + "time" "cloud.google.com/go/auth/credentials" + "go.opentelemetry.io/otel/attribute" ) +// knownKeys provides keys for reading telemetry attributes from Context. +// It provides an implicit contract with generated client library code +// using the same keys. The keys in this collection should not be removed +// or modified. New keys may be added, but they will need to be explicitly +// used in code referencing this collection in order to appear in telemetry. +var knownKeys = []string{ + "gcp.client.service", + "gcp.client.version", + "gcp.client.repo", + "gcp.client.artifact", + "gcp.client.language", + "url.domain", +} + +// StaticTelemetryAttributes selectively converts known keys from a map of +// strings to Open Telemetry attributes. +func StaticTelemetryAttributes(m map[string]string) []attribute.KeyValue { + var staticAttrs []attribute.KeyValue + if m == nil { + return staticAttrs + } + for _, k := range knownKeys { + if v, ok := m[k]; ok { + staticAttrs = append(staticAttrs, attribute.String(k, v)) + } + } + return staticAttrs +} + // CloneDetectOptions clones a user set detect option into some new memory that // we can internally manipulate before sending onto the detect package. func CloneDetectOptions(oldDo *credentials.DetectOptions) *credentials.DetectOptions { @@ -33,6 +67,7 @@ func CloneDetectOptions(oldDo *credentials.DetectOptions) *credentials.DetectOpt } newDo := &credentials.DetectOptions{ // Simple types + TokenBindingType: oldDo.TokenBindingType, Audience: oldDo.Audience, Subject: oldDo.Subject, EarlyTokenRefresh: oldDo.EarlyTokenRefresh, @@ -42,18 +77,19 @@ func CloneDetectOptions(oldDo *credentials.DetectOptions) *credentials.DetectOpt UseSelfSignedJWT: oldDo.UseSelfSignedJWT, UniverseDomain: oldDo.UniverseDomain, - // These fields are are pointer types that we just want to use exactly - // as the user set, copy the ref + // These fields are pointer types that we just want to use exactly as + // the user set, copy the ref Client: oldDo.Client, + Logger: oldDo.Logger, AuthHandlerOptions: oldDo.AuthHandlerOptions, } // Smartly size this memory and copy below. - if oldDo.CredentialsJSON != nil { + if len(oldDo.CredentialsJSON) > 0 { newDo.CredentialsJSON = make([]byte, len(oldDo.CredentialsJSON)) copy(newDo.CredentialsJSON, oldDo.CredentialsJSON) } - if oldDo.Scopes != nil { + if len(oldDo.Scopes) > 0 { newDo.Scopes = make([]string, len(oldDo.Scopes)) copy(newDo.Scopes, oldDo.Scopes) } @@ -74,3 +110,28 @@ func ValidateUniverseDomain(clientUniverseDomain, credentialsUniverseDomain stri } return nil } + +// DefaultHTTPClientWithTLS constructs an HTTPClient using the provided tlsConfig, to support mTLS. +func DefaultHTTPClientWithTLS(tlsConfig *tls.Config) *http.Client { + trans := BaseTransport() + trans.TLSClientConfig = tlsConfig + return &http.Client{Transport: trans} +} + +// BaseTransport returns a default [http.Transport] which can be used if +// [http.DefaultTransport] has been overwritten. +func BaseTransport() *http.Transport { + return &http.Transport{ + Proxy: http.ProxyFromEnvironment, + DialContext: (&net.Dialer{ + Timeout: 30 * time.Second, + KeepAlive: 30 * time.Second, + DualStack: true, + }).DialContext, + MaxIdleConns: 100, + MaxIdleConnsPerHost: 100, + IdleConnTimeout: 90 * time.Second, + TLSHandshakeTimeout: 10 * time.Second, + ExpectContinueTimeout: 1 * time.Second, + } +} diff --git a/vendor/cloud.google.com/go/auth/internal/trustboundary/external_accounts_config_providers.go b/vendor/cloud.google.com/go/auth/internal/trustboundary/external_accounts_config_providers.go new file mode 100644 index 000000000..8fa5600bd --- /dev/null +++ b/vendor/cloud.google.com/go/auth/internal/trustboundary/external_accounts_config_providers.go @@ -0,0 +1,100 @@ +// Copyright 2025 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package trustboundary + +import ( + "context" + "fmt" + "regexp" +) + +const ( + workloadAllowedLocationsEndpoint = "https://iamcredentials.%s/v1/projects/%s/locations/global/workloadIdentityPools/%s/allowedLocations" + workforceAllowedLocationsEndpoint = "https://iamcredentials.%s/v1/locations/global/workforcePools/%s/allowedLocations" +) + +var ( + workforceAudiencePattern = regexp.MustCompile(`//iam\.([^/]+)/locations/global/workforcePools/([^/]+)`) + workloadAudiencePattern = regexp.MustCompile(`//iam\.([^/]+)/projects/([^/]+)/locations/global/workloadIdentityPools/([^/]+)`) +) + +// NewExternalAccountConfigProvider creates a new ConfigProvider for external accounts. +func NewExternalAccountConfigProvider(audience, inputUniverseDomain string) (ConfigProvider, error) { + var audienceDomain, projectNumber, poolID string + var isWorkload bool + + matches := workloadAudiencePattern.FindStringSubmatch(audience) + if len(matches) == 4 { // Expecting full match, domain, projectNumber, poolID + audienceDomain = matches[1] + projectNumber = matches[2] + poolID = matches[3] + isWorkload = true + } else { + matches = workforceAudiencePattern.FindStringSubmatch(audience) + if len(matches) == 3 { // Expecting full match, domain, poolID + audienceDomain = matches[1] + poolID = matches[2] + isWorkload = false + } else { + return nil, fmt.Errorf("trustboundary: unknown audience format: %q", audience) + } + } + + effectiveUniverseDomain := inputUniverseDomain + if effectiveUniverseDomain == "" { + effectiveUniverseDomain = audienceDomain + } else if audienceDomain != "" && effectiveUniverseDomain != audienceDomain { + return nil, fmt.Errorf("trustboundary: provided universe domain (%q) does not match domain in audience (%q)", inputUniverseDomain, audienceDomain) + } + + if isWorkload { + return &workloadIdentityPoolConfigProvider{ + projectNumber: projectNumber, + poolID: poolID, + universeDomain: effectiveUniverseDomain, + }, nil + } + return &workforcePoolConfigProvider{ + poolID: poolID, + universeDomain: effectiveUniverseDomain, + }, nil +} + +type workforcePoolConfigProvider struct { + poolID string + universeDomain string +} + +func (p *workforcePoolConfigProvider) GetTrustBoundaryEndpoint(ctx context.Context) (string, error) { + return fmt.Sprintf(workforceAllowedLocationsEndpoint, p.universeDomain, p.poolID), nil +} + +func (p *workforcePoolConfigProvider) GetUniverseDomain(ctx context.Context) (string, error) { + return p.universeDomain, nil +} + +type workloadIdentityPoolConfigProvider struct { + projectNumber string + poolID string + universeDomain string +} + +func (p *workloadIdentityPoolConfigProvider) GetTrustBoundaryEndpoint(ctx context.Context) (string, error) { + return fmt.Sprintf(workloadAllowedLocationsEndpoint, p.universeDomain, p.projectNumber, p.poolID), nil +} + +func (p *workloadIdentityPoolConfigProvider) GetUniverseDomain(ctx context.Context) (string, error) { + return p.universeDomain, nil +} diff --git a/vendor/cloud.google.com/go/auth/internal/trustboundary/trust_boundary.go b/vendor/cloud.google.com/go/auth/internal/trustboundary/trust_boundary.go new file mode 100644 index 000000000..bf898fffd --- /dev/null +++ b/vendor/cloud.google.com/go/auth/internal/trustboundary/trust_boundary.go @@ -0,0 +1,392 @@ +// Copyright 2025 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package trustboundary + +import ( + "context" + "encoding/json" + "errors" + "fmt" + "io" + "log/slog" + "net/http" + "os" + "strings" + "sync" + + "cloud.google.com/go/auth" + "cloud.google.com/go/auth/internal" + "cloud.google.com/go/auth/internal/retry" + "cloud.google.com/go/auth/internal/transport/headers" + "github.com/googleapis/gax-go/v2/internallog" +) + +const ( + // serviceAccountAllowedLocationsEndpoint is the URL for fetching allowed locations for a given service account email. + serviceAccountAllowedLocationsEndpoint = "https://iamcredentials.%s/v1/projects/-/serviceAccounts/%s/allowedLocations" +) + +// isEnabled wraps isTrustBoundaryEnabled with sync.OnceValues to ensure it's +// called only once. +var isEnabled = sync.OnceValues(isTrustBoundaryEnabled) + +// IsEnabled returns if the trust boundary feature is enabled and an error if +// the configuration is invalid. The underlying check is performed only once. +func IsEnabled() (bool, error) { + return isEnabled() +} + +// isTrustBoundaryEnabled checks if the trust boundary feature is enabled via +// GOOGLE_AUTH_TRUST_BOUNDARY_ENABLED environment variable. +// +// If the environment variable is not set, it is considered false. +// +// The environment variable is interpreted as a boolean with the following +// (case-insensitive) rules: +// - "true", "1" are considered true. +// - "false", "0" are considered false. +// +// Any other values will return an error. +func isTrustBoundaryEnabled() (bool, error) { + const envVar = "GOOGLE_AUTH_TRUST_BOUNDARY_ENABLED" + val, ok := os.LookupEnv(envVar) + if !ok { + return false, nil + } + val = strings.ToLower(val) + switch val { + case "true", "1": + return true, nil + case "false", "0": + return false, nil + default: + return false, fmt.Errorf(`invalid value for %s: %q. Must be one of "true", "false", "1", or "0"`, envVar, val) + } +} + +// ConfigProvider provides specific configuration for trust boundary lookups. +type ConfigProvider interface { + // GetTrustBoundaryEndpoint returns the endpoint URL for the trust boundary lookup. + GetTrustBoundaryEndpoint(ctx context.Context) (url string, err error) + // GetUniverseDomain returns the universe domain associated with the credential. + // It may return an error if the universe domain cannot be determined. + GetUniverseDomain(ctx context.Context) (string, error) +} + +// AllowedLocationsResponse is the structure of the response from the Trust Boundary API. +type AllowedLocationsResponse struct { + // Locations is the list of allowed locations. + Locations []string `json:"locations"` + // EncodedLocations is the encoded representation of the allowed locations. + EncodedLocations string `json:"encodedLocations"` +} + +// fetchTrustBoundaryData fetches the trust boundary data from the API. +func fetchTrustBoundaryData(ctx context.Context, client *http.Client, url string, token *auth.Token, logger *slog.Logger) (*internal.TrustBoundaryData, error) { + if logger == nil { + logger = slog.New(slog.NewTextHandler(io.Discard, nil)) + } + if client == nil { + return nil, errors.New("trustboundary: HTTP client is required") + } + + if url == "" { + return nil, errors.New("trustboundary: URL cannot be empty") + } + + req, err := http.NewRequestWithContext(ctx, http.MethodGet, url, nil) + if err != nil { + return nil, fmt.Errorf("trustboundary: failed to create trust boundary request: %w", err) + } + + if token == nil || token.Value == "" { + return nil, errors.New("trustboundary: access token required for lookup API authentication") + } + headers.SetAuthHeader(token, req) + logger.DebugContext(ctx, "trust boundary request", "request", internallog.HTTPRequest(req, nil)) + + retryer := retry.New() + var response *http.Response + for { + response, err = client.Do(req) + + var statusCode int + if response != nil { + statusCode = response.StatusCode + } + pause, shouldRetry := retryer.Retry(statusCode, err) + + if !shouldRetry { + break + } + + if response != nil { + // Drain and close the body to reuse the connection + io.Copy(io.Discard, response.Body) + response.Body.Close() + } + + if err := retry.Sleep(ctx, pause); err != nil { + return nil, err + } + } + + if err != nil { + return nil, fmt.Errorf("trustboundary: failed to fetch trust boundary: %w", err) + } + defer response.Body.Close() + + body, err := io.ReadAll(response.Body) + if err != nil { + return nil, fmt.Errorf("trustboundary: failed to read trust boundary response: %w", err) + } + + logger.DebugContext(ctx, "trust boundary response", "response", internallog.HTTPResponse(response, body)) + + if response.StatusCode != http.StatusOK { + return nil, fmt.Errorf("trustboundary: trust boundary request failed with status: %s, body: %s", response.Status, string(body)) + } + + apiResponse := AllowedLocationsResponse{} + if err := json.Unmarshal(body, &apiResponse); err != nil { + return nil, fmt.Errorf("trustboundary: failed to unmarshal trust boundary response: %w", err) + } + + if apiResponse.EncodedLocations == "" { + return nil, errors.New("trustboundary: invalid API response: encodedLocations is empty") + } + + return internal.NewTrustBoundaryData(apiResponse.Locations, apiResponse.EncodedLocations), nil +} + +// serviceAccountConfig holds configuration for SA trust boundary lookups. +// It implements the ConfigProvider interface. +type serviceAccountConfig struct { + ServiceAccountEmail string + UniverseDomain string +} + +// NewServiceAccountConfigProvider creates a new config for service accounts. +func NewServiceAccountConfigProvider(saEmail, universeDomain string) ConfigProvider { + return &serviceAccountConfig{ + ServiceAccountEmail: saEmail, + UniverseDomain: universeDomain, + } +} + +// GetTrustBoundaryEndpoint returns the formatted URL for fetching allowed locations +// for the configured service account and universe domain. +func (sac *serviceAccountConfig) GetTrustBoundaryEndpoint(ctx context.Context) (url string, err error) { + if sac.ServiceAccountEmail == "" { + return "", errors.New("trustboundary: service account email cannot be empty for config") + } + ud := sac.UniverseDomain + if ud == "" { + ud = internal.DefaultUniverseDomain + } + return fmt.Sprintf(serviceAccountAllowedLocationsEndpoint, ud, sac.ServiceAccountEmail), nil +} + +// GetUniverseDomain returns the configured universe domain, defaulting to +// [internal.DefaultUniverseDomain] if not explicitly set. +func (sac *serviceAccountConfig) GetUniverseDomain(ctx context.Context) (string, error) { + if sac.UniverseDomain == "" { + return internal.DefaultUniverseDomain, nil + } + return sac.UniverseDomain, nil +} + +// DataProvider fetches and caches trust boundary Data. +// It implements the DataProvider interface and uses a ConfigProvider +// to get type-specific details for the lookup. +type DataProvider struct { + client *http.Client + configProvider ConfigProvider + data *internal.TrustBoundaryData + logger *slog.Logger + base auth.TokenProvider +} + +// NewProvider wraps the provided base [auth.TokenProvider] to create a new +// provider that injects tokens with trust boundary data. It uses the provided +// HTTP client and configProvider to fetch the data and attach it to the token's +// metadata. +func NewProvider(client *http.Client, configProvider ConfigProvider, logger *slog.Logger, base auth.TokenProvider) (*DataProvider, error) { + if client == nil { + return nil, errors.New("trustboundary: HTTP client cannot be nil for DataProvider") + } + if configProvider == nil { + return nil, errors.New("trustboundary: ConfigProvider cannot be nil for DataProvider") + } + p := &DataProvider{ + client: client, + configProvider: configProvider, + logger: internallog.New(logger), + base: base, + } + return p, nil +} + +// Token retrieves a token from the base provider and injects it with trust +// boundary data. +func (p *DataProvider) Token(ctx context.Context) (*auth.Token, error) { + // Get the original token. + token, err := p.base.Token(ctx) + if err != nil { + return nil, err + } + + tbData, err := p.GetTrustBoundaryData(ctx, token) + if err != nil { + return nil, fmt.Errorf("trustboundary: error fetching the trust boundary data: %w", err) + } + if tbData != nil { + if token.Metadata == nil { + token.Metadata = make(map[string]interface{}) + } + token.Metadata[internal.TrustBoundaryDataKey] = *tbData + } + return token, nil +} + +// GetTrustBoundaryData retrieves the trust boundary data. +// It first checks the universe domain: if it's non-default, a NoOp is returned. +// Otherwise, it checks a local cache. If the data is not cached as NoOp, +// it fetches new data from the endpoint provided by its ConfigProvider, +// using the given accessToken for authentication. Results are cached. +// If fetching fails, it returns previously cached data if available, otherwise the fetch error. +func (p *DataProvider) GetTrustBoundaryData(ctx context.Context, token *auth.Token) (*internal.TrustBoundaryData, error) { + // Check the universe domain. + uniDomain, err := p.configProvider.GetUniverseDomain(ctx) + if err != nil { + return nil, fmt.Errorf("trustboundary: error getting universe domain: %w", err) + } + if uniDomain != "" && uniDomain != internal.DefaultUniverseDomain { + if p.data == nil || p.data.EncodedLocations != internal.TrustBoundaryNoOp { + p.data = internal.NewNoOpTrustBoundaryData() + } + return p.data, nil + } + + // Check cache for a no-op result from a previous API call. + cachedData := p.data + if cachedData != nil && cachedData.EncodedLocations == internal.TrustBoundaryNoOp { + return cachedData, nil + } + + // Get the endpoint + url, err := p.configProvider.GetTrustBoundaryEndpoint(ctx) + if err != nil { + return nil, fmt.Errorf("trustboundary: error getting the lookup endpoint: %w", err) + } + + // Proceed to fetch new data. + newData, fetchErr := fetchTrustBoundaryData(ctx, p.client, url, token, p.logger) + + if fetchErr != nil { + // Fetch failed. Fallback to cachedData if available. + if cachedData != nil { + return cachedData, nil // Successful fallback + } + // No cache to fallback to. + return nil, fmt.Errorf("trustboundary: failed to fetch trust boundary data for endpoint %s and no cache available: %w", url, fetchErr) + } + + // Fetch successful. Update cache. + p.data = newData + return newData, nil +} + +// GCEConfigProvider implements ConfigProvider for GCE environments. +// It lazily fetches and caches the necessary metadata (service account email, universe domain) +// from the GCE metadata server. +type GCEConfigProvider struct { + // universeDomainProvider provides the universe domain and underlying metadata client. + universeDomainProvider *internal.ComputeUniverseDomainProvider + + // Caching for service account email + saOnce sync.Once + saEmail string + saEmailErr error + + // Caching for universe domain + udOnce sync.Once + ud string + udErr error +} + +// NewGCEConfigProvider creates a new GCEConfigProvider +// which uses the provided gceUDP to interact with the GCE metadata server. +func NewGCEConfigProvider(gceUDP *internal.ComputeUniverseDomainProvider) *GCEConfigProvider { + // The validity of gceUDP and its internal MetadataClient will be checked + // within the GetTrustBoundaryEndpoint and GetUniverseDomain methods. + return &GCEConfigProvider{ + universeDomainProvider: gceUDP, + } +} + +func (g *GCEConfigProvider) fetchSA(ctx context.Context) { + if g.universeDomainProvider == nil || g.universeDomainProvider.MetadataClient == nil { + g.saEmailErr = errors.New("trustboundary: GCEConfigProvider not properly initialized (missing ComputeUniverseDomainProvider or MetadataClient)") + return + } + mdClient := g.universeDomainProvider.MetadataClient + saEmail, err := mdClient.EmailWithContext(ctx, "default") + if err != nil { + g.saEmailErr = fmt.Errorf("trustboundary: GCE config: failed to get service account email: %w", err) + return + } + g.saEmail = saEmail +} + +func (g *GCEConfigProvider) fetchUD(ctx context.Context) { + if g.universeDomainProvider == nil || g.universeDomainProvider.MetadataClient == nil { + g.udErr = errors.New("trustboundary: GCEConfigProvider not properly initialized (missing ComputeUniverseDomainProvider or MetadataClient)") + return + } + ud, err := g.universeDomainProvider.GetProperty(ctx) + if err != nil { + g.udErr = fmt.Errorf("trustboundary: GCE config: failed to get universe domain: %w", err) + return + } + if ud == "" { + ud = internal.DefaultUniverseDomain + } + g.ud = ud +} + +// GetTrustBoundaryEndpoint constructs the trust boundary lookup URL for a GCE environment. +// It uses cached metadata (service account email, universe domain) after the first call. +func (g *GCEConfigProvider) GetTrustBoundaryEndpoint(ctx context.Context) (string, error) { + g.saOnce.Do(func() { g.fetchSA(ctx) }) + if g.saEmailErr != nil { + return "", g.saEmailErr + } + g.udOnce.Do(func() { g.fetchUD(ctx) }) + if g.udErr != nil { + return "", g.udErr + } + return fmt.Sprintf(serviceAccountAllowedLocationsEndpoint, g.ud, g.saEmail), nil +} + +// GetUniverseDomain retrieves the universe domain from the GCE metadata server. +// It uses a cached value after the first call. +func (g *GCEConfigProvider) GetUniverseDomain(ctx context.Context) (string, error) { + g.udOnce.Do(func() { g.fetchUD(ctx) }) + if g.udErr != nil { + return "", g.udErr + } + return g.ud, nil +} diff --git a/vendor/go.opencensus.io/tag/profile_not19.go b/vendor/cloud.google.com/go/auth/internal/version.go similarity index 69% rename from vendor/go.opencensus.io/tag/profile_not19.go rename to vendor/cloud.google.com/go/auth/internal/version.go index e28cf13cd..d627069b5 100644 --- a/vendor/go.opencensus.io/tag/profile_not19.go +++ b/vendor/cloud.google.com/go/auth/internal/version.go @@ -1,10 +1,10 @@ -// Copyright 2018, OpenCensus Authors +// Copyright 2026 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. // You may obtain a copy of the License at // -// http://www.apache.org/licenses/LICENSE-2.0 +// https://www.apache.org/licenses/LICENSE-2.0 // // Unless required by applicable law or agreed to in writing, software // distributed under the License is distributed on an "AS IS" BASIS, @@ -12,13 +12,9 @@ // See the License for the specific language governing permissions and // limitations under the License. -//go:build !go1.9 -// +build !go1.9 +// Code generated by gapicgen. DO NOT EDIT. -package tag +package internal -import "context" - -func do(ctx context.Context, f func(ctx context.Context)) { - f(ctx) -} +// Version is the current tagged release of the library. +const Version = "0.20.0" diff --git a/vendor/cloud.google.com/go/auth/oauth2adapt/CHANGES.md b/vendor/cloud.google.com/go/auth/oauth2adapt/CHANGES.md index ff9747bed..42716752e 100644 --- a/vendor/cloud.google.com/go/auth/oauth2adapt/CHANGES.md +++ b/vendor/cloud.google.com/go/auth/oauth2adapt/CHANGES.md @@ -1,5 +1,47 @@ # Changelog +## [0.2.8](https://github.com/googleapis/google-cloud-go/compare/auth/oauth2adapt/v0.2.7...auth/oauth2adapt/v0.2.8) (2025-03-17) + + +### Bug Fixes + +* **auth/oauth2adapt:** Update golang.org/x/net to 0.37.0 ([1144978](https://github.com/googleapis/google-cloud-go/commit/11449782c7fb4896bf8b8b9cde8e7441c84fb2fd)) + +## [0.2.7](https://github.com/googleapis/google-cloud-go/compare/auth/oauth2adapt/v0.2.6...auth/oauth2adapt/v0.2.7) (2025-01-09) + + +### Bug Fixes + +* **auth/oauth2adapt:** Update golang.org/x/net to v0.33.0 ([e9b0b69](https://github.com/googleapis/google-cloud-go/commit/e9b0b69644ea5b276cacff0a707e8a5e87efafc9)) + +## [0.2.6](https://github.com/googleapis/google-cloud-go/compare/auth/oauth2adapt/v0.2.5...auth/oauth2adapt/v0.2.6) (2024-11-21) + + +### Bug Fixes + +* **auth/oauth2adapt:** Copy map in tokenSourceAdapter.Token ([#11164](https://github.com/googleapis/google-cloud-go/issues/11164)) ([8cb0cbc](https://github.com/googleapis/google-cloud-go/commit/8cb0cbccdc32886dfb3af49fee04012937d114d2)), refs [#11161](https://github.com/googleapis/google-cloud-go/issues/11161) + +## [0.2.5](https://github.com/googleapis/google-cloud-go/compare/auth/oauth2adapt/v0.2.4...auth/oauth2adapt/v0.2.5) (2024-10-30) + + +### Bug Fixes + +* **auth/oauth2adapt:** Convert token metadata where possible ([#11062](https://github.com/googleapis/google-cloud-go/issues/11062)) ([34bf1c1](https://github.com/googleapis/google-cloud-go/commit/34bf1c164465d66745c0cfdf7cd10a8e2da92e52)) + +## [0.2.4](https://github.com/googleapis/google-cloud-go/compare/auth/oauth2adapt/v0.2.3...auth/oauth2adapt/v0.2.4) (2024-08-08) + + +### Bug Fixes + +* **auth/oauth2adapt:** Update dependencies ([257c40b](https://github.com/googleapis/google-cloud-go/commit/257c40bd6d7e59730017cf32bda8823d7a232758)) + +## [0.2.3](https://github.com/googleapis/google-cloud-go/compare/auth/oauth2adapt/v0.2.2...auth/oauth2adapt/v0.2.3) (2024-07-10) + + +### Bug Fixes + +* **auth/oauth2adapt:** Bump google.golang.org/api@v0.187.0 ([8fa9e39](https://github.com/googleapis/google-cloud-go/commit/8fa9e398e512fd8533fd49060371e61b5725a85b)) + ## [0.2.2](https://github.com/googleapis/google-cloud-go/compare/auth/oauth2adapt/v0.2.1...auth/oauth2adapt/v0.2.2) (2024-04-23) diff --git a/vendor/cloud.google.com/go/auth/oauth2adapt/oauth2adapt.go b/vendor/cloud.google.com/go/auth/oauth2adapt/oauth2adapt.go index 9835ac571..9cc33e5ee 100644 --- a/vendor/cloud.google.com/go/auth/oauth2adapt/oauth2adapt.go +++ b/vendor/cloud.google.com/go/auth/oauth2adapt/oauth2adapt.go @@ -26,6 +26,13 @@ import ( "golang.org/x/oauth2/google" ) +const ( + oauth2TokenSourceKey = "oauth2.google.tokenSource" + oauth2ServiceAccountKey = "oauth2.google.serviceAccount" + authTokenSourceKey = "auth.google.tokenSource" + authServiceAccountKey = "auth.google.serviceAccount" +) + // TokenProviderFromTokenSource converts any [golang.org/x/oauth2.TokenSource] // into a [cloud.google.com/go/auth.TokenProvider]. func TokenProviderFromTokenSource(ts oauth2.TokenSource) auth.TokenProvider { @@ -47,10 +54,21 @@ func (tp *tokenProviderAdapter) Token(context.Context) (*auth.Token, error) { } return nil, err } + // Preserve compute token metadata, for both types of tokens. + metadata := map[string]interface{}{} + if val, ok := tok.Extra(oauth2TokenSourceKey).(string); ok { + metadata[authTokenSourceKey] = val + metadata[oauth2TokenSourceKey] = val + } + if val, ok := tok.Extra(oauth2ServiceAccountKey).(string); ok { + metadata[authServiceAccountKey] = val + metadata[oauth2ServiceAccountKey] = val + } return &auth.Token{ - Value: tok.AccessToken, - Type: tok.Type(), - Expiry: tok.Expiry, + Value: tok.AccessToken, + Type: tok.Type(), + Expiry: tok.Expiry, + Metadata: metadata, }, nil } @@ -76,11 +94,29 @@ func (ts *tokenSourceAdapter) Token() (*oauth2.Token, error) { } return nil, err } - return &oauth2.Token{ + tok2 := &oauth2.Token{ AccessToken: tok.Value, TokenType: tok.Type, Expiry: tok.Expiry, - }, nil + } + // Preserve token metadata. + m := tok.Metadata + if m != nil { + // Copy map to avoid concurrent map writes error (#11161). + metadata := make(map[string]interface{}, len(m)+2) + for k, v := range m { + metadata[k] = v + } + // Append compute token metadata in converted form. + if val, ok := metadata[authTokenSourceKey].(string); ok && val != "" { + metadata[oauth2TokenSourceKey] = val + } + if val, ok := metadata[authServiceAccountKey].(string); ok && val != "" { + metadata[oauth2ServiceAccountKey] = val + } + tok2 = tok2.WithExtra(metadata) + } + return tok2, nil } // AuthCredentialsFromOauth2Credentials converts a [golang.org/x/oauth2/google.Credentials] diff --git a/vendor/cloud.google.com/go/auth/threelegged.go b/vendor/cloud.google.com/go/auth/threelegged.go index 1b8d83c4b..07804dc16 100644 --- a/vendor/cloud.google.com/go/auth/threelegged.go +++ b/vendor/cloud.google.com/go/auth/threelegged.go @@ -20,6 +20,7 @@ import ( "encoding/json" "errors" "fmt" + "log/slog" "mime" "net/http" "net/url" @@ -28,6 +29,7 @@ import ( "time" "cloud.google.com/go/auth/internal" + "github.com/googleapis/gax-go/v2/internallog" ) // AuthorizationHandler is a 3-legged-OAuth helper that prompts the user for @@ -62,12 +64,18 @@ type Options3LO struct { // Optional. Client *http.Client // EarlyTokenExpiry is the time before the token expires that it should be - // refreshed. If not set the default value is 10 seconds. Optional. + // refreshed. If not set the default value is 3 minutes and 45 seconds. + // Optional. EarlyTokenExpiry time.Duration // AuthHandlerOpts provides a set of options for doing a // 3-legged OAuth2 flow with a custom [AuthorizationHandler]. Optional. AuthHandlerOpts *AuthorizationHandlerOptions + // Logger is used for debug logging. If provided, logging will be enabled + // at the loggers configured level. By default logging is disabled unless + // enabled by setting GOOGLE_SDK_GO_LOGGING_LEVEL in which case a default + // logger will be used. Optional. + Logger *slog.Logger } func (o *Options3LO) validate() error { @@ -95,6 +103,10 @@ func (o *Options3LO) validate() error { return nil } +func (o *Options3LO) logger() *slog.Logger { + return internallog.New(o.Logger) +} + // PKCEOptions holds parameters to support PKCE. type PKCEOptions struct { // Challenge is the un-padded, base64-url-encoded string of the encrypted code verifier. @@ -127,7 +139,7 @@ func (o *Options3LO) client() *http.Client { if o.Client != nil { return o.Client } - return internal.CloneDefaultClient() + return internal.DefaultClient() } // authCodeURL returns a URL that points to a OAuth2 consent page. @@ -284,7 +296,7 @@ func fetchToken(ctx context.Context, o *Options3LO, v url.Values) (*Token, strin v.Set("client_secret", o.ClientSecret) } } - req, err := http.NewRequest("POST", o.TokenURL, strings.NewReader(v.Encode())) + req, err := http.NewRequestWithContext(ctx, "POST", o.TokenURL, strings.NewReader(v.Encode())) if err != nil { return nil, refreshToken, err } @@ -292,27 +304,24 @@ func fetchToken(ctx context.Context, o *Options3LO, v url.Values) (*Token, strin if o.AuthStyle == StyleInHeader { req.SetBasicAuth(url.QueryEscape(o.ClientID), url.QueryEscape(o.ClientSecret)) } + logger := o.logger() + logger.DebugContext(ctx, "3LO token request", "request", internallog.HTTPRequest(req, []byte(v.Encode()))) // Make request - r, err := o.client().Do(req.WithContext(ctx)) + resp, body, err := internal.DoRequest(o.client(), req) if err != nil { return nil, refreshToken, err } - body, err := internal.ReadAll(r.Body) - r.Body.Close() - if err != nil { - return nil, refreshToken, fmt.Errorf("auth: cannot fetch token: %w", err) - } - - failureStatus := r.StatusCode < 200 || r.StatusCode > 299 + logger.DebugContext(ctx, "3LO token response", "response", internallog.HTTPResponse(resp, body)) + failureStatus := resp.StatusCode < 200 || resp.StatusCode > 299 tokError := &Error{ - Response: r, + Response: resp, Body: body, } var token *Token // errors ignored because of default switch on content - content, _, _ := mime.ParseMediaType(r.Header.Get("Content-Type")) + content, _, _ := mime.ParseMediaType(resp.Header.Get("Content-Type")) switch content { case "application/x-www-form-urlencoded", "text/plain": // some endpoints return a query string diff --git a/vendor/github.com/golang/groupcache/LICENSE b/vendor/github.com/golang/groupcache/LICENSE deleted file mode 100644 index 37ec93a14..000000000 --- a/vendor/github.com/golang/groupcache/LICENSE +++ /dev/null @@ -1,191 +0,0 @@ -Apache License -Version 2.0, January 2004 -http://www.apache.org/licenses/ - -TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - -1. Definitions. - -"License" shall mean the terms and conditions for use, reproduction, and -distribution as defined by Sections 1 through 9 of this document. - -"Licensor" shall mean the copyright owner or entity authorized by the copyright -owner that is granting the License. - -"Legal Entity" shall mean the union of the acting entity and all other entities -that control, are controlled by, or are under common control with that entity. -For the purposes of this definition, "control" means (i) the power, direct or -indirect, to cause the direction or management of such entity, whether by -contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the -outstanding shares, or (iii) beneficial ownership of such entity. - -"You" (or "Your") shall mean an individual or Legal Entity exercising -permissions granted by this License. - -"Source" form shall mean the preferred form for making modifications, including -but not limited to software source code, documentation source, and configuration -files. - -"Object" form shall mean any form resulting from mechanical transformation or -translation of a Source form, including but not limited to compiled object code, -generated documentation, and conversions to other media types. - -"Work" shall mean the work of authorship, whether in Source or Object form, made -available under the License, as indicated by a copyright notice that is included -in or attached to the work (an example is provided in the Appendix below). - -"Derivative Works" shall mean any work, whether in Source or Object form, that -is based on (or derived from) the Work and for which the editorial revisions, -annotations, elaborations, or other modifications represent, as a whole, an -original work of authorship. For the purposes of this License, Derivative Works -shall not include works that remain separable from, or merely link (or bind by -name) to the interfaces of, the Work and Derivative Works thereof. - -"Contribution" shall mean any work of authorship, including the original version -of the Work and any modifications or additions to that Work or Derivative Works -thereof, that is intentionally submitted to Licensor for inclusion in the Work -by the copyright owner or by an individual or Legal Entity authorized to submit -on behalf of the copyright owner. For the purposes of this definition, -"submitted" means any form of electronic, verbal, or written communication sent -to the Licensor or its representatives, including but not limited to -communication on electronic mailing lists, source code control systems, and -issue tracking systems that are managed by, or on behalf of, the Licensor for -the purpose of discussing and improving the Work, but excluding communication -that is conspicuously marked or otherwise designated in writing by the copyright -owner as "Not a Contribution." - -"Contributor" shall mean Licensor and any individual or Legal Entity on behalf -of whom a Contribution has been received by Licensor and subsequently -incorporated within the Work. - -2. Grant of Copyright License. - -Subject to the terms and conditions of this License, each Contributor hereby -grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, -irrevocable copyright license to reproduce, prepare Derivative Works of, -publicly display, publicly perform, sublicense, and distribute the Work and such -Derivative Works in Source or Object form. - -3. Grant of Patent License. - -Subject to the terms and conditions of this License, each Contributor hereby -grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, -irrevocable (except as stated in this section) patent license to make, have -made, use, offer to sell, sell, import, and otherwise transfer the Work, where -such license applies only to those patent claims licensable by such Contributor -that are necessarily infringed by their Contribution(s) alone or by combination -of their Contribution(s) with the Work to which such Contribution(s) was -submitted. If You institute patent litigation against any entity (including a -cross-claim or counterclaim in a lawsuit) alleging that the Work or a -Contribution incorporated within the Work constitutes direct or contributory -patent infringement, then any patent licenses granted to You under this License -for that Work shall terminate as of the date such litigation is filed. - -4. Redistribution. - -You may reproduce and distribute copies of the Work or Derivative Works thereof -in any medium, with or without modifications, and in Source or Object form, -provided that You meet the following conditions: - -You must give any other recipients of the Work or Derivative Works a copy of -this License; and -You must cause any modified files to carry prominent notices stating that You -changed the files; and -You must retain, in the Source form of any Derivative Works that You distribute, -all copyright, patent, trademark, and attribution notices from the Source form -of the Work, excluding those notices that do not pertain to any part of the -Derivative Works; and -If the Work includes a "NOTICE" text file as part of its distribution, then any -Derivative Works that You distribute must include a readable copy of the -attribution notices contained within such NOTICE file, excluding those notices -that do not pertain to any part of the Derivative Works, in at least one of the -following places: within a NOTICE text file distributed as part of the -Derivative Works; within the Source form or documentation, if provided along -with the Derivative Works; or, within a display generated by the Derivative -Works, if and wherever such third-party notices normally appear. The contents of -the NOTICE file are for informational purposes only and do not modify the -License. You may add Your own attribution notices within Derivative Works that -You distribute, alongside or as an addendum to the NOTICE text from the Work, -provided that such additional attribution notices cannot be construed as -modifying the License. -You may add Your own copyright statement to Your modifications and may provide -additional or different license terms and conditions for use, reproduction, or -distribution of Your modifications, or for any such Derivative Works as a whole, -provided Your use, reproduction, and distribution of the Work otherwise complies -with the conditions stated in this License. - -5. Submission of Contributions. - -Unless You explicitly state otherwise, any Contribution intentionally submitted -for inclusion in the Work by You to the Licensor shall be under the terms and -conditions of this License, without any additional terms or conditions. -Notwithstanding the above, nothing herein shall supersede or modify the terms of -any separate license agreement you may have executed with Licensor regarding -such Contributions. - -6. Trademarks. - -This License does not grant permission to use the trade names, trademarks, -service marks, or product names of the Licensor, except as required for -reasonable and customary use in describing the origin of the Work and -reproducing the content of the NOTICE file. - -7. Disclaimer of Warranty. - -Unless required by applicable law or agreed to in writing, Licensor provides the -Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied, -including, without limitation, any warranties or conditions of TITLE, -NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A PARTICULAR PURPOSE. You are -solely responsible for determining the appropriateness of using or -redistributing the Work and assume any risks associated with Your exercise of -permissions under this License. - -8. Limitation of Liability. - -In no event and under no legal theory, whether in tort (including negligence), -contract, or otherwise, unless required by applicable law (such as deliberate -and grossly negligent acts) or agreed to in writing, shall any Contributor be -liable to You for damages, including any direct, indirect, special, incidental, -or consequential damages of any character arising as a result of this License or -out of the use or inability to use the Work (including but not limited to -damages for loss of goodwill, work stoppage, computer failure or malfunction, or -any and all other commercial damages or losses), even if such Contributor has -been advised of the possibility of such damages. - -9. Accepting Warranty or Additional Liability. - -While redistributing the Work or Derivative Works thereof, You may choose to -offer, and charge a fee for, acceptance of support, warranty, indemnity, or -other liability obligations and/or rights consistent with this License. However, -in accepting such obligations, You may act only on Your own behalf and on Your -sole responsibility, not on behalf of any other Contributor, and only if You -agree to indemnify, defend, and hold each Contributor harmless for any liability -incurred by, or claims asserted against, such Contributor by reason of your -accepting any such warranty or additional liability. - -END OF TERMS AND CONDITIONS - -APPENDIX: How to apply the Apache License to your work - -To apply the Apache License to your work, attach the following boilerplate -notice, with the fields enclosed by brackets "[]" replaced with your own -identifying information. (Don't include the brackets!) The text should be -enclosed in the appropriate comment syntax for the file format. We also -recommend that a file or class name and description of purpose be included on -the same "printed page" as the copyright notice for easier identification within -third-party archives. - - Copyright [yyyy] [name of copyright owner] - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. diff --git a/vendor/github.com/golang/groupcache/lru/lru.go b/vendor/github.com/golang/groupcache/lru/lru.go deleted file mode 100644 index eac1c7664..000000000 --- a/vendor/github.com/golang/groupcache/lru/lru.go +++ /dev/null @@ -1,133 +0,0 @@ -/* -Copyright 2013 Google Inc. - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -*/ - -// Package lru implements an LRU cache. -package lru - -import "container/list" - -// Cache is an LRU cache. It is not safe for concurrent access. -type Cache struct { - // MaxEntries is the maximum number of cache entries before - // an item is evicted. Zero means no limit. - MaxEntries int - - // OnEvicted optionally specifies a callback function to be - // executed when an entry is purged from the cache. - OnEvicted func(key Key, value interface{}) - - ll *list.List - cache map[interface{}]*list.Element -} - -// A Key may be any value that is comparable. See http://golang.org/ref/spec#Comparison_operators -type Key interface{} - -type entry struct { - key Key - value interface{} -} - -// New creates a new Cache. -// If maxEntries is zero, the cache has no limit and it's assumed -// that eviction is done by the caller. -func New(maxEntries int) *Cache { - return &Cache{ - MaxEntries: maxEntries, - ll: list.New(), - cache: make(map[interface{}]*list.Element), - } -} - -// Add adds a value to the cache. -func (c *Cache) Add(key Key, value interface{}) { - if c.cache == nil { - c.cache = make(map[interface{}]*list.Element) - c.ll = list.New() - } - if ee, ok := c.cache[key]; ok { - c.ll.MoveToFront(ee) - ee.Value.(*entry).value = value - return - } - ele := c.ll.PushFront(&entry{key, value}) - c.cache[key] = ele - if c.MaxEntries != 0 && c.ll.Len() > c.MaxEntries { - c.RemoveOldest() - } -} - -// Get looks up a key's value from the cache. -func (c *Cache) Get(key Key) (value interface{}, ok bool) { - if c.cache == nil { - return - } - if ele, hit := c.cache[key]; hit { - c.ll.MoveToFront(ele) - return ele.Value.(*entry).value, true - } - return -} - -// Remove removes the provided key from the cache. -func (c *Cache) Remove(key Key) { - if c.cache == nil { - return - } - if ele, hit := c.cache[key]; hit { - c.removeElement(ele) - } -} - -// RemoveOldest removes the oldest item from the cache. -func (c *Cache) RemoveOldest() { - if c.cache == nil { - return - } - ele := c.ll.Back() - if ele != nil { - c.removeElement(ele) - } -} - -func (c *Cache) removeElement(e *list.Element) { - c.ll.Remove(e) - kv := e.Value.(*entry) - delete(c.cache, kv.key) - if c.OnEvicted != nil { - c.OnEvicted(kv.key, kv.value) - } -} - -// Len returns the number of items in the cache. -func (c *Cache) Len() int { - if c.cache == nil { - return 0 - } - return c.ll.Len() -} - -// Clear purges all stored items from the cache. -func (c *Cache) Clear() { - if c.OnEvicted != nil { - for _, e := range c.cache { - kv := e.Value.(*entry) - c.OnEvicted(kv.key, kv.value) - } - } - c.ll = nil - c.cache = nil -} diff --git a/vendor/github.com/golang/protobuf/AUTHORS b/vendor/github.com/golang/protobuf/AUTHORS deleted file mode 100644 index 15167cd74..000000000 --- a/vendor/github.com/golang/protobuf/AUTHORS +++ /dev/null @@ -1,3 +0,0 @@ -# This source code refers to The Go Authors for copyright purposes. -# The master list of authors is in the main Go distribution, -# visible at http://tip.golang.org/AUTHORS. diff --git a/vendor/github.com/golang/protobuf/CONTRIBUTORS b/vendor/github.com/golang/protobuf/CONTRIBUTORS deleted file mode 100644 index 1c4577e96..000000000 --- a/vendor/github.com/golang/protobuf/CONTRIBUTORS +++ /dev/null @@ -1,3 +0,0 @@ -# This source code was written by the Go contributors. -# The master list of contributors is in the main Go distribution, -# visible at http://tip.golang.org/CONTRIBUTORS. diff --git a/vendor/github.com/golang/protobuf/LICENSE b/vendor/github.com/golang/protobuf/LICENSE deleted file mode 100644 index 0f646931a..000000000 --- a/vendor/github.com/golang/protobuf/LICENSE +++ /dev/null @@ -1,28 +0,0 @@ -Copyright 2010 The Go Authors. All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are -met: - - * Redistributions of source code must retain the above copyright -notice, this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above -copyright notice, this list of conditions and the following disclaimer -in the documentation and/or other materials provided with the -distribution. - * Neither the name of Google Inc. nor the names of its -contributors may be used to endorse or promote products derived from -this software without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - diff --git a/vendor/github.com/golang/protobuf/proto/buffer.go b/vendor/github.com/golang/protobuf/proto/buffer.go deleted file mode 100644 index e810e6fea..000000000 --- a/vendor/github.com/golang/protobuf/proto/buffer.go +++ /dev/null @@ -1,324 +0,0 @@ -// Copyright 2019 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package proto - -import ( - "errors" - "fmt" - - "google.golang.org/protobuf/encoding/prototext" - "google.golang.org/protobuf/encoding/protowire" - "google.golang.org/protobuf/runtime/protoimpl" -) - -const ( - WireVarint = 0 - WireFixed32 = 5 - WireFixed64 = 1 - WireBytes = 2 - WireStartGroup = 3 - WireEndGroup = 4 -) - -// EncodeVarint returns the varint encoded bytes of v. -func EncodeVarint(v uint64) []byte { - return protowire.AppendVarint(nil, v) -} - -// SizeVarint returns the length of the varint encoded bytes of v. -// This is equal to len(EncodeVarint(v)). -func SizeVarint(v uint64) int { - return protowire.SizeVarint(v) -} - -// DecodeVarint parses a varint encoded integer from b, -// returning the integer value and the length of the varint. -// It returns (0, 0) if there is a parse error. -func DecodeVarint(b []byte) (uint64, int) { - v, n := protowire.ConsumeVarint(b) - if n < 0 { - return 0, 0 - } - return v, n -} - -// Buffer is a buffer for encoding and decoding the protobuf wire format. -// It may be reused between invocations to reduce memory usage. -type Buffer struct { - buf []byte - idx int - deterministic bool -} - -// NewBuffer allocates a new Buffer initialized with buf, -// where the contents of buf are considered the unread portion of the buffer. -func NewBuffer(buf []byte) *Buffer { - return &Buffer{buf: buf} -} - -// SetDeterministic specifies whether to use deterministic serialization. -// -// Deterministic serialization guarantees that for a given binary, equal -// messages will always be serialized to the same bytes. This implies: -// -// - Repeated serialization of a message will return the same bytes. -// - Different processes of the same binary (which may be executing on -// different machines) will serialize equal messages to the same bytes. -// -// Note that the deterministic serialization is NOT canonical across -// languages. It is not guaranteed to remain stable over time. It is unstable -// across different builds with schema changes due to unknown fields. -// Users who need canonical serialization (e.g., persistent storage in a -// canonical form, fingerprinting, etc.) should define their own -// canonicalization specification and implement their own serializer rather -// than relying on this API. -// -// If deterministic serialization is requested, map entries will be sorted -// by keys in lexographical order. This is an implementation detail and -// subject to change. -func (b *Buffer) SetDeterministic(deterministic bool) { - b.deterministic = deterministic -} - -// SetBuf sets buf as the internal buffer, -// where the contents of buf are considered the unread portion of the buffer. -func (b *Buffer) SetBuf(buf []byte) { - b.buf = buf - b.idx = 0 -} - -// Reset clears the internal buffer of all written and unread data. -func (b *Buffer) Reset() { - b.buf = b.buf[:0] - b.idx = 0 -} - -// Bytes returns the internal buffer. -func (b *Buffer) Bytes() []byte { - return b.buf -} - -// Unread returns the unread portion of the buffer. -func (b *Buffer) Unread() []byte { - return b.buf[b.idx:] -} - -// Marshal appends the wire-format encoding of m to the buffer. -func (b *Buffer) Marshal(m Message) error { - var err error - b.buf, err = marshalAppend(b.buf, m, b.deterministic) - return err -} - -// Unmarshal parses the wire-format message in the buffer and -// places the decoded results in m. -// It does not reset m before unmarshaling. -func (b *Buffer) Unmarshal(m Message) error { - err := UnmarshalMerge(b.Unread(), m) - b.idx = len(b.buf) - return err -} - -type unknownFields struct{ XXX_unrecognized protoimpl.UnknownFields } - -func (m *unknownFields) String() string { panic("not implemented") } -func (m *unknownFields) Reset() { panic("not implemented") } -func (m *unknownFields) ProtoMessage() { panic("not implemented") } - -// DebugPrint dumps the encoded bytes of b with a header and footer including s -// to stdout. This is only intended for debugging. -func (*Buffer) DebugPrint(s string, b []byte) { - m := MessageReflect(new(unknownFields)) - m.SetUnknown(b) - b, _ = prototext.MarshalOptions{AllowPartial: true, Indent: "\t"}.Marshal(m.Interface()) - fmt.Printf("==== %s ====\n%s==== %s ====\n", s, b, s) -} - -// EncodeVarint appends an unsigned varint encoding to the buffer. -func (b *Buffer) EncodeVarint(v uint64) error { - b.buf = protowire.AppendVarint(b.buf, v) - return nil -} - -// EncodeZigzag32 appends a 32-bit zig-zag varint encoding to the buffer. -func (b *Buffer) EncodeZigzag32(v uint64) error { - return b.EncodeVarint(uint64((uint32(v) << 1) ^ uint32((int32(v) >> 31)))) -} - -// EncodeZigzag64 appends a 64-bit zig-zag varint encoding to the buffer. -func (b *Buffer) EncodeZigzag64(v uint64) error { - return b.EncodeVarint(uint64((uint64(v) << 1) ^ uint64((int64(v) >> 63)))) -} - -// EncodeFixed32 appends a 32-bit little-endian integer to the buffer. -func (b *Buffer) EncodeFixed32(v uint64) error { - b.buf = protowire.AppendFixed32(b.buf, uint32(v)) - return nil -} - -// EncodeFixed64 appends a 64-bit little-endian integer to the buffer. -func (b *Buffer) EncodeFixed64(v uint64) error { - b.buf = protowire.AppendFixed64(b.buf, uint64(v)) - return nil -} - -// EncodeRawBytes appends a length-prefixed raw bytes to the buffer. -func (b *Buffer) EncodeRawBytes(v []byte) error { - b.buf = protowire.AppendBytes(b.buf, v) - return nil -} - -// EncodeStringBytes appends a length-prefixed raw bytes to the buffer. -// It does not validate whether v contains valid UTF-8. -func (b *Buffer) EncodeStringBytes(v string) error { - b.buf = protowire.AppendString(b.buf, v) - return nil -} - -// EncodeMessage appends a length-prefixed encoded message to the buffer. -func (b *Buffer) EncodeMessage(m Message) error { - var err error - b.buf = protowire.AppendVarint(b.buf, uint64(Size(m))) - b.buf, err = marshalAppend(b.buf, m, b.deterministic) - return err -} - -// DecodeVarint consumes an encoded unsigned varint from the buffer. -func (b *Buffer) DecodeVarint() (uint64, error) { - v, n := protowire.ConsumeVarint(b.buf[b.idx:]) - if n < 0 { - return 0, protowire.ParseError(n) - } - b.idx += n - return uint64(v), nil -} - -// DecodeZigzag32 consumes an encoded 32-bit zig-zag varint from the buffer. -func (b *Buffer) DecodeZigzag32() (uint64, error) { - v, err := b.DecodeVarint() - if err != nil { - return 0, err - } - return uint64((uint32(v) >> 1) ^ uint32((int32(v&1)<<31)>>31)), nil -} - -// DecodeZigzag64 consumes an encoded 64-bit zig-zag varint from the buffer. -func (b *Buffer) DecodeZigzag64() (uint64, error) { - v, err := b.DecodeVarint() - if err != nil { - return 0, err - } - return uint64((uint64(v) >> 1) ^ uint64((int64(v&1)<<63)>>63)), nil -} - -// DecodeFixed32 consumes a 32-bit little-endian integer from the buffer. -func (b *Buffer) DecodeFixed32() (uint64, error) { - v, n := protowire.ConsumeFixed32(b.buf[b.idx:]) - if n < 0 { - return 0, protowire.ParseError(n) - } - b.idx += n - return uint64(v), nil -} - -// DecodeFixed64 consumes a 64-bit little-endian integer from the buffer. -func (b *Buffer) DecodeFixed64() (uint64, error) { - v, n := protowire.ConsumeFixed64(b.buf[b.idx:]) - if n < 0 { - return 0, protowire.ParseError(n) - } - b.idx += n - return uint64(v), nil -} - -// DecodeRawBytes consumes a length-prefixed raw bytes from the buffer. -// If alloc is specified, it returns a copy the raw bytes -// rather than a sub-slice of the buffer. -func (b *Buffer) DecodeRawBytes(alloc bool) ([]byte, error) { - v, n := protowire.ConsumeBytes(b.buf[b.idx:]) - if n < 0 { - return nil, protowire.ParseError(n) - } - b.idx += n - if alloc { - v = append([]byte(nil), v...) - } - return v, nil -} - -// DecodeStringBytes consumes a length-prefixed raw bytes from the buffer. -// It does not validate whether the raw bytes contain valid UTF-8. -func (b *Buffer) DecodeStringBytes() (string, error) { - v, n := protowire.ConsumeString(b.buf[b.idx:]) - if n < 0 { - return "", protowire.ParseError(n) - } - b.idx += n - return v, nil -} - -// DecodeMessage consumes a length-prefixed message from the buffer. -// It does not reset m before unmarshaling. -func (b *Buffer) DecodeMessage(m Message) error { - v, err := b.DecodeRawBytes(false) - if err != nil { - return err - } - return UnmarshalMerge(v, m) -} - -// DecodeGroup consumes a message group from the buffer. -// It assumes that the start group marker has already been consumed and -// consumes all bytes until (and including the end group marker). -// It does not reset m before unmarshaling. -func (b *Buffer) DecodeGroup(m Message) error { - v, n, err := consumeGroup(b.buf[b.idx:]) - if err != nil { - return err - } - b.idx += n - return UnmarshalMerge(v, m) -} - -// consumeGroup parses b until it finds an end group marker, returning -// the raw bytes of the message (excluding the end group marker) and the -// the total length of the message (including the end group marker). -func consumeGroup(b []byte) ([]byte, int, error) { - b0 := b - depth := 1 // assume this follows a start group marker - for { - _, wtyp, tagLen := protowire.ConsumeTag(b) - if tagLen < 0 { - return nil, 0, protowire.ParseError(tagLen) - } - b = b[tagLen:] - - var valLen int - switch wtyp { - case protowire.VarintType: - _, valLen = protowire.ConsumeVarint(b) - case protowire.Fixed32Type: - _, valLen = protowire.ConsumeFixed32(b) - case protowire.Fixed64Type: - _, valLen = protowire.ConsumeFixed64(b) - case protowire.BytesType: - _, valLen = protowire.ConsumeBytes(b) - case protowire.StartGroupType: - depth++ - case protowire.EndGroupType: - depth-- - default: - return nil, 0, errors.New("proto: cannot parse reserved wire type") - } - if valLen < 0 { - return nil, 0, protowire.ParseError(valLen) - } - b = b[valLen:] - - if depth == 0 { - return b0[:len(b0)-len(b)-tagLen], len(b0) - len(b), nil - } - } -} diff --git a/vendor/github.com/golang/protobuf/proto/defaults.go b/vendor/github.com/golang/protobuf/proto/defaults.go deleted file mode 100644 index d399bf069..000000000 --- a/vendor/github.com/golang/protobuf/proto/defaults.go +++ /dev/null @@ -1,63 +0,0 @@ -// Copyright 2019 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package proto - -import ( - "google.golang.org/protobuf/reflect/protoreflect" -) - -// SetDefaults sets unpopulated scalar fields to their default values. -// Fields within a oneof are not set even if they have a default value. -// SetDefaults is recursively called upon any populated message fields. -func SetDefaults(m Message) { - if m != nil { - setDefaults(MessageReflect(m)) - } -} - -func setDefaults(m protoreflect.Message) { - fds := m.Descriptor().Fields() - for i := 0; i < fds.Len(); i++ { - fd := fds.Get(i) - if !m.Has(fd) { - if fd.HasDefault() && fd.ContainingOneof() == nil { - v := fd.Default() - if fd.Kind() == protoreflect.BytesKind { - v = protoreflect.ValueOf(append([]byte(nil), v.Bytes()...)) // copy the default bytes - } - m.Set(fd, v) - } - continue - } - } - - m.Range(func(fd protoreflect.FieldDescriptor, v protoreflect.Value) bool { - switch { - // Handle singular message. - case fd.Cardinality() != protoreflect.Repeated: - if fd.Message() != nil { - setDefaults(m.Get(fd).Message()) - } - // Handle list of messages. - case fd.IsList(): - if fd.Message() != nil { - ls := m.Get(fd).List() - for i := 0; i < ls.Len(); i++ { - setDefaults(ls.Get(i).Message()) - } - } - // Handle map of messages. - case fd.IsMap(): - if fd.MapValue().Message() != nil { - ms := m.Get(fd).Map() - ms.Range(func(_ protoreflect.MapKey, v protoreflect.Value) bool { - setDefaults(v.Message()) - return true - }) - } - } - return true - }) -} diff --git a/vendor/github.com/golang/protobuf/proto/deprecated.go b/vendor/github.com/golang/protobuf/proto/deprecated.go deleted file mode 100644 index e8db57e09..000000000 --- a/vendor/github.com/golang/protobuf/proto/deprecated.go +++ /dev/null @@ -1,113 +0,0 @@ -// Copyright 2018 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package proto - -import ( - "encoding/json" - "errors" - "fmt" - "strconv" - - protoV2 "google.golang.org/protobuf/proto" -) - -var ( - // Deprecated: No longer returned. - ErrNil = errors.New("proto: Marshal called with nil") - - // Deprecated: No longer returned. - ErrTooLarge = errors.New("proto: message encodes to over 2 GB") - - // Deprecated: No longer returned. - ErrInternalBadWireType = errors.New("proto: internal error: bad wiretype for oneof") -) - -// Deprecated: Do not use. -type Stats struct{ Emalloc, Dmalloc, Encode, Decode, Chit, Cmiss, Size uint64 } - -// Deprecated: Do not use. -func GetStats() Stats { return Stats{} } - -// Deprecated: Do not use. -func MarshalMessageSet(interface{}) ([]byte, error) { - return nil, errors.New("proto: not implemented") -} - -// Deprecated: Do not use. -func UnmarshalMessageSet([]byte, interface{}) error { - return errors.New("proto: not implemented") -} - -// Deprecated: Do not use. -func MarshalMessageSetJSON(interface{}) ([]byte, error) { - return nil, errors.New("proto: not implemented") -} - -// Deprecated: Do not use. -func UnmarshalMessageSetJSON([]byte, interface{}) error { - return errors.New("proto: not implemented") -} - -// Deprecated: Do not use. -func RegisterMessageSetType(Message, int32, string) {} - -// Deprecated: Do not use. -func EnumName(m map[int32]string, v int32) string { - s, ok := m[v] - if ok { - return s - } - return strconv.Itoa(int(v)) -} - -// Deprecated: Do not use. -func UnmarshalJSONEnum(m map[string]int32, data []byte, enumName string) (int32, error) { - if data[0] == '"' { - // New style: enums are strings. - var repr string - if err := json.Unmarshal(data, &repr); err != nil { - return -1, err - } - val, ok := m[repr] - if !ok { - return 0, fmt.Errorf("unrecognized enum %s value %q", enumName, repr) - } - return val, nil - } - // Old style: enums are ints. - var val int32 - if err := json.Unmarshal(data, &val); err != nil { - return 0, fmt.Errorf("cannot unmarshal %#q into enum %s", data, enumName) - } - return val, nil -} - -// Deprecated: Do not use; this type existed for intenal-use only. -type InternalMessageInfo struct{} - -// Deprecated: Do not use; this method existed for intenal-use only. -func (*InternalMessageInfo) DiscardUnknown(m Message) { - DiscardUnknown(m) -} - -// Deprecated: Do not use; this method existed for intenal-use only. -func (*InternalMessageInfo) Marshal(b []byte, m Message, deterministic bool) ([]byte, error) { - return protoV2.MarshalOptions{Deterministic: deterministic}.MarshalAppend(b, MessageV2(m)) -} - -// Deprecated: Do not use; this method existed for intenal-use only. -func (*InternalMessageInfo) Merge(dst, src Message) { - protoV2.Merge(MessageV2(dst), MessageV2(src)) -} - -// Deprecated: Do not use; this method existed for intenal-use only. -func (*InternalMessageInfo) Size(m Message) int { - return protoV2.Size(MessageV2(m)) -} - -// Deprecated: Do not use; this method existed for intenal-use only. -func (*InternalMessageInfo) Unmarshal(m Message, b []byte) error { - return protoV2.UnmarshalOptions{Merge: true}.Unmarshal(b, MessageV2(m)) -} diff --git a/vendor/github.com/golang/protobuf/proto/discard.go b/vendor/github.com/golang/protobuf/proto/discard.go deleted file mode 100644 index 2187e877f..000000000 --- a/vendor/github.com/golang/protobuf/proto/discard.go +++ /dev/null @@ -1,58 +0,0 @@ -// Copyright 2019 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package proto - -import ( - "google.golang.org/protobuf/reflect/protoreflect" -) - -// DiscardUnknown recursively discards all unknown fields from this message -// and all embedded messages. -// -// When unmarshaling a message with unrecognized fields, the tags and values -// of such fields are preserved in the Message. This allows a later call to -// marshal to be able to produce a message that continues to have those -// unrecognized fields. To avoid this, DiscardUnknown is used to -// explicitly clear the unknown fields after unmarshaling. -func DiscardUnknown(m Message) { - if m != nil { - discardUnknown(MessageReflect(m)) - } -} - -func discardUnknown(m protoreflect.Message) { - m.Range(func(fd protoreflect.FieldDescriptor, val protoreflect.Value) bool { - switch { - // Handle singular message. - case fd.Cardinality() != protoreflect.Repeated: - if fd.Message() != nil { - discardUnknown(m.Get(fd).Message()) - } - // Handle list of messages. - case fd.IsList(): - if fd.Message() != nil { - ls := m.Get(fd).List() - for i := 0; i < ls.Len(); i++ { - discardUnknown(ls.Get(i).Message()) - } - } - // Handle map of messages. - case fd.IsMap(): - if fd.MapValue().Message() != nil { - ms := m.Get(fd).Map() - ms.Range(func(_ protoreflect.MapKey, v protoreflect.Value) bool { - discardUnknown(v.Message()) - return true - }) - } - } - return true - }) - - // Discard unknown fields. - if len(m.GetUnknown()) > 0 { - m.SetUnknown(nil) - } -} diff --git a/vendor/github.com/golang/protobuf/proto/extensions.go b/vendor/github.com/golang/protobuf/proto/extensions.go deleted file mode 100644 index 42fc120c9..000000000 --- a/vendor/github.com/golang/protobuf/proto/extensions.go +++ /dev/null @@ -1,356 +0,0 @@ -// Copyright 2010 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package proto - -import ( - "errors" - "fmt" - "reflect" - - "google.golang.org/protobuf/encoding/protowire" - "google.golang.org/protobuf/proto" - "google.golang.org/protobuf/reflect/protoreflect" - "google.golang.org/protobuf/reflect/protoregistry" - "google.golang.org/protobuf/runtime/protoiface" - "google.golang.org/protobuf/runtime/protoimpl" -) - -type ( - // ExtensionDesc represents an extension descriptor and - // is used to interact with an extension field in a message. - // - // Variables of this type are generated in code by protoc-gen-go. - ExtensionDesc = protoimpl.ExtensionInfo - - // ExtensionRange represents a range of message extensions. - // Used in code generated by protoc-gen-go. - ExtensionRange = protoiface.ExtensionRangeV1 - - // Deprecated: Do not use; this is an internal type. - Extension = protoimpl.ExtensionFieldV1 - - // Deprecated: Do not use; this is an internal type. - XXX_InternalExtensions = protoimpl.ExtensionFields -) - -// ErrMissingExtension reports whether the extension was not present. -var ErrMissingExtension = errors.New("proto: missing extension") - -var errNotExtendable = errors.New("proto: not an extendable proto.Message") - -// HasExtension reports whether the extension field is present in m -// either as an explicitly populated field or as an unknown field. -func HasExtension(m Message, xt *ExtensionDesc) (has bool) { - mr := MessageReflect(m) - if mr == nil || !mr.IsValid() { - return false - } - - // Check whether any populated known field matches the field number. - xtd := xt.TypeDescriptor() - if isValidExtension(mr.Descriptor(), xtd) { - has = mr.Has(xtd) - } else { - mr.Range(func(fd protoreflect.FieldDescriptor, _ protoreflect.Value) bool { - has = int32(fd.Number()) == xt.Field - return !has - }) - } - - // Check whether any unknown field matches the field number. - for b := mr.GetUnknown(); !has && len(b) > 0; { - num, _, n := protowire.ConsumeField(b) - has = int32(num) == xt.Field - b = b[n:] - } - return has -} - -// ClearExtension removes the extension field from m -// either as an explicitly populated field or as an unknown field. -func ClearExtension(m Message, xt *ExtensionDesc) { - mr := MessageReflect(m) - if mr == nil || !mr.IsValid() { - return - } - - xtd := xt.TypeDescriptor() - if isValidExtension(mr.Descriptor(), xtd) { - mr.Clear(xtd) - } else { - mr.Range(func(fd protoreflect.FieldDescriptor, _ protoreflect.Value) bool { - if int32(fd.Number()) == xt.Field { - mr.Clear(fd) - return false - } - return true - }) - } - clearUnknown(mr, fieldNum(xt.Field)) -} - -// ClearAllExtensions clears all extensions from m. -// This includes populated fields and unknown fields in the extension range. -func ClearAllExtensions(m Message) { - mr := MessageReflect(m) - if mr == nil || !mr.IsValid() { - return - } - - mr.Range(func(fd protoreflect.FieldDescriptor, _ protoreflect.Value) bool { - if fd.IsExtension() { - mr.Clear(fd) - } - return true - }) - clearUnknown(mr, mr.Descriptor().ExtensionRanges()) -} - -// GetExtension retrieves a proto2 extended field from m. -// -// If the descriptor is type complete (i.e., ExtensionDesc.ExtensionType is non-nil), -// then GetExtension parses the encoded field and returns a Go value of the specified type. -// If the field is not present, then the default value is returned (if one is specified), -// otherwise ErrMissingExtension is reported. -// -// If the descriptor is type incomplete (i.e., ExtensionDesc.ExtensionType is nil), -// then GetExtension returns the raw encoded bytes for the extension field. -func GetExtension(m Message, xt *ExtensionDesc) (interface{}, error) { - mr := MessageReflect(m) - if mr == nil || !mr.IsValid() || mr.Descriptor().ExtensionRanges().Len() == 0 { - return nil, errNotExtendable - } - - // Retrieve the unknown fields for this extension field. - var bo protoreflect.RawFields - for bi := mr.GetUnknown(); len(bi) > 0; { - num, _, n := protowire.ConsumeField(bi) - if int32(num) == xt.Field { - bo = append(bo, bi[:n]...) - } - bi = bi[n:] - } - - // For type incomplete descriptors, only retrieve the unknown fields. - if xt.ExtensionType == nil { - return []byte(bo), nil - } - - // If the extension field only exists as unknown fields, unmarshal it. - // This is rarely done since proto.Unmarshal eagerly unmarshals extensions. - xtd := xt.TypeDescriptor() - if !isValidExtension(mr.Descriptor(), xtd) { - return nil, fmt.Errorf("proto: bad extended type; %T does not extend %T", xt.ExtendedType, m) - } - if !mr.Has(xtd) && len(bo) > 0 { - m2 := mr.New() - if err := (proto.UnmarshalOptions{ - Resolver: extensionResolver{xt}, - }.Unmarshal(bo, m2.Interface())); err != nil { - return nil, err - } - if m2.Has(xtd) { - mr.Set(xtd, m2.Get(xtd)) - clearUnknown(mr, fieldNum(xt.Field)) - } - } - - // Check whether the message has the extension field set or a default. - var pv protoreflect.Value - switch { - case mr.Has(xtd): - pv = mr.Get(xtd) - case xtd.HasDefault(): - pv = xtd.Default() - default: - return nil, ErrMissingExtension - } - - v := xt.InterfaceOf(pv) - rv := reflect.ValueOf(v) - if isScalarKind(rv.Kind()) { - rv2 := reflect.New(rv.Type()) - rv2.Elem().Set(rv) - v = rv2.Interface() - } - return v, nil -} - -// extensionResolver is a custom extension resolver that stores a single -// extension type that takes precedence over the global registry. -type extensionResolver struct{ xt protoreflect.ExtensionType } - -func (r extensionResolver) FindExtensionByName(field protoreflect.FullName) (protoreflect.ExtensionType, error) { - if xtd := r.xt.TypeDescriptor(); xtd.FullName() == field { - return r.xt, nil - } - return protoregistry.GlobalTypes.FindExtensionByName(field) -} - -func (r extensionResolver) FindExtensionByNumber(message protoreflect.FullName, field protoreflect.FieldNumber) (protoreflect.ExtensionType, error) { - if xtd := r.xt.TypeDescriptor(); xtd.ContainingMessage().FullName() == message && xtd.Number() == field { - return r.xt, nil - } - return protoregistry.GlobalTypes.FindExtensionByNumber(message, field) -} - -// GetExtensions returns a list of the extensions values present in m, -// corresponding with the provided list of extension descriptors, xts. -// If an extension is missing in m, the corresponding value is nil. -func GetExtensions(m Message, xts []*ExtensionDesc) ([]interface{}, error) { - mr := MessageReflect(m) - if mr == nil || !mr.IsValid() { - return nil, errNotExtendable - } - - vs := make([]interface{}, len(xts)) - for i, xt := range xts { - v, err := GetExtension(m, xt) - if err != nil { - if err == ErrMissingExtension { - continue - } - return vs, err - } - vs[i] = v - } - return vs, nil -} - -// SetExtension sets an extension field in m to the provided value. -func SetExtension(m Message, xt *ExtensionDesc, v interface{}) error { - mr := MessageReflect(m) - if mr == nil || !mr.IsValid() || mr.Descriptor().ExtensionRanges().Len() == 0 { - return errNotExtendable - } - - rv := reflect.ValueOf(v) - if reflect.TypeOf(v) != reflect.TypeOf(xt.ExtensionType) { - return fmt.Errorf("proto: bad extension value type. got: %T, want: %T", v, xt.ExtensionType) - } - if rv.Kind() == reflect.Ptr { - if rv.IsNil() { - return fmt.Errorf("proto: SetExtension called with nil value of type %T", v) - } - if isScalarKind(rv.Elem().Kind()) { - v = rv.Elem().Interface() - } - } - - xtd := xt.TypeDescriptor() - if !isValidExtension(mr.Descriptor(), xtd) { - return fmt.Errorf("proto: bad extended type; %T does not extend %T", xt.ExtendedType, m) - } - mr.Set(xtd, xt.ValueOf(v)) - clearUnknown(mr, fieldNum(xt.Field)) - return nil -} - -// SetRawExtension inserts b into the unknown fields of m. -// -// Deprecated: Use Message.ProtoReflect.SetUnknown instead. -func SetRawExtension(m Message, fnum int32, b []byte) { - mr := MessageReflect(m) - if mr == nil || !mr.IsValid() { - return - } - - // Verify that the raw field is valid. - for b0 := b; len(b0) > 0; { - num, _, n := protowire.ConsumeField(b0) - if int32(num) != fnum { - panic(fmt.Sprintf("mismatching field number: got %d, want %d", num, fnum)) - } - b0 = b0[n:] - } - - ClearExtension(m, &ExtensionDesc{Field: fnum}) - mr.SetUnknown(append(mr.GetUnknown(), b...)) -} - -// ExtensionDescs returns a list of extension descriptors found in m, -// containing descriptors for both populated extension fields in m and -// also unknown fields of m that are in the extension range. -// For the later case, an type incomplete descriptor is provided where only -// the ExtensionDesc.Field field is populated. -// The order of the extension descriptors is undefined. -func ExtensionDescs(m Message) ([]*ExtensionDesc, error) { - mr := MessageReflect(m) - if mr == nil || !mr.IsValid() || mr.Descriptor().ExtensionRanges().Len() == 0 { - return nil, errNotExtendable - } - - // Collect a set of known extension descriptors. - extDescs := make(map[protoreflect.FieldNumber]*ExtensionDesc) - mr.Range(func(fd protoreflect.FieldDescriptor, v protoreflect.Value) bool { - if fd.IsExtension() { - xt := fd.(protoreflect.ExtensionTypeDescriptor) - if xd, ok := xt.Type().(*ExtensionDesc); ok { - extDescs[fd.Number()] = xd - } - } - return true - }) - - // Collect a set of unknown extension descriptors. - extRanges := mr.Descriptor().ExtensionRanges() - for b := mr.GetUnknown(); len(b) > 0; { - num, _, n := protowire.ConsumeField(b) - if extRanges.Has(num) && extDescs[num] == nil { - extDescs[num] = nil - } - b = b[n:] - } - - // Transpose the set of descriptors into a list. - var xts []*ExtensionDesc - for num, xt := range extDescs { - if xt == nil { - xt = &ExtensionDesc{Field: int32(num)} - } - xts = append(xts, xt) - } - return xts, nil -} - -// isValidExtension reports whether xtd is a valid extension descriptor for md. -func isValidExtension(md protoreflect.MessageDescriptor, xtd protoreflect.ExtensionTypeDescriptor) bool { - return xtd.ContainingMessage() == md && md.ExtensionRanges().Has(xtd.Number()) -} - -// isScalarKind reports whether k is a protobuf scalar kind (except bytes). -// This function exists for historical reasons since the representation of -// scalars differs between v1 and v2, where v1 uses *T and v2 uses T. -func isScalarKind(k reflect.Kind) bool { - switch k { - case reflect.Bool, reflect.Int32, reflect.Int64, reflect.Uint32, reflect.Uint64, reflect.Float32, reflect.Float64, reflect.String: - return true - default: - return false - } -} - -// clearUnknown removes unknown fields from m where remover.Has reports true. -func clearUnknown(m protoreflect.Message, remover interface { - Has(protoreflect.FieldNumber) bool -}) { - var bo protoreflect.RawFields - for bi := m.GetUnknown(); len(bi) > 0; { - num, _, n := protowire.ConsumeField(bi) - if !remover.Has(num) { - bo = append(bo, bi[:n]...) - } - bi = bi[n:] - } - if bi := m.GetUnknown(); len(bi) != len(bo) { - m.SetUnknown(bo) - } -} - -type fieldNum protoreflect.FieldNumber - -func (n1 fieldNum) Has(n2 protoreflect.FieldNumber) bool { - return protoreflect.FieldNumber(n1) == n2 -} diff --git a/vendor/github.com/golang/protobuf/proto/properties.go b/vendor/github.com/golang/protobuf/proto/properties.go deleted file mode 100644 index dcdc2202f..000000000 --- a/vendor/github.com/golang/protobuf/proto/properties.go +++ /dev/null @@ -1,306 +0,0 @@ -// Copyright 2010 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package proto - -import ( - "fmt" - "reflect" - "strconv" - "strings" - "sync" - - "google.golang.org/protobuf/reflect/protoreflect" - "google.golang.org/protobuf/runtime/protoimpl" -) - -// StructProperties represents protocol buffer type information for a -// generated protobuf message in the open-struct API. -// -// Deprecated: Do not use. -type StructProperties struct { - // Prop are the properties for each field. - // - // Fields belonging to a oneof are stored in OneofTypes instead, with a - // single Properties representing the parent oneof held here. - // - // The order of Prop matches the order of fields in the Go struct. - // Struct fields that are not related to protobufs have a "XXX_" prefix - // in the Properties.Name and must be ignored by the user. - Prop []*Properties - - // OneofTypes contains information about the oneof fields in this message. - // It is keyed by the protobuf field name. - OneofTypes map[string]*OneofProperties -} - -// Properties represents the type information for a protobuf message field. -// -// Deprecated: Do not use. -type Properties struct { - // Name is a placeholder name with little meaningful semantic value. - // If the name has an "XXX_" prefix, the entire Properties must be ignored. - Name string - // OrigName is the protobuf field name or oneof name. - OrigName string - // JSONName is the JSON name for the protobuf field. - JSONName string - // Enum is a placeholder name for enums. - // For historical reasons, this is neither the Go name for the enum, - // nor the protobuf name for the enum. - Enum string // Deprecated: Do not use. - // Weak contains the full name of the weakly referenced message. - Weak string - // Wire is a string representation of the wire type. - Wire string - // WireType is the protobuf wire type for the field. - WireType int - // Tag is the protobuf field number. - Tag int - // Required reports whether this is a required field. - Required bool - // Optional reports whether this is a optional field. - Optional bool - // Repeated reports whether this is a repeated field. - Repeated bool - // Packed reports whether this is a packed repeated field of scalars. - Packed bool - // Proto3 reports whether this field operates under the proto3 syntax. - Proto3 bool - // Oneof reports whether this field belongs within a oneof. - Oneof bool - - // Default is the default value in string form. - Default string - // HasDefault reports whether the field has a default value. - HasDefault bool - - // MapKeyProp is the properties for the key field for a map field. - MapKeyProp *Properties - // MapValProp is the properties for the value field for a map field. - MapValProp *Properties -} - -// OneofProperties represents the type information for a protobuf oneof. -// -// Deprecated: Do not use. -type OneofProperties struct { - // Type is a pointer to the generated wrapper type for the field value. - // This is nil for messages that are not in the open-struct API. - Type reflect.Type - // Field is the index into StructProperties.Prop for the containing oneof. - Field int - // Prop is the properties for the field. - Prop *Properties -} - -// String formats the properties in the protobuf struct field tag style. -func (p *Properties) String() string { - s := p.Wire - s += "," + strconv.Itoa(p.Tag) - if p.Required { - s += ",req" - } - if p.Optional { - s += ",opt" - } - if p.Repeated { - s += ",rep" - } - if p.Packed { - s += ",packed" - } - s += ",name=" + p.OrigName - if p.JSONName != "" { - s += ",json=" + p.JSONName - } - if len(p.Enum) > 0 { - s += ",enum=" + p.Enum - } - if len(p.Weak) > 0 { - s += ",weak=" + p.Weak - } - if p.Proto3 { - s += ",proto3" - } - if p.Oneof { - s += ",oneof" - } - if p.HasDefault { - s += ",def=" + p.Default - } - return s -} - -// Parse populates p by parsing a string in the protobuf struct field tag style. -func (p *Properties) Parse(tag string) { - // For example: "bytes,49,opt,name=foo,def=hello!" - for len(tag) > 0 { - i := strings.IndexByte(tag, ',') - if i < 0 { - i = len(tag) - } - switch s := tag[:i]; { - case strings.HasPrefix(s, "name="): - p.OrigName = s[len("name="):] - case strings.HasPrefix(s, "json="): - p.JSONName = s[len("json="):] - case strings.HasPrefix(s, "enum="): - p.Enum = s[len("enum="):] - case strings.HasPrefix(s, "weak="): - p.Weak = s[len("weak="):] - case strings.Trim(s, "0123456789") == "": - n, _ := strconv.ParseUint(s, 10, 32) - p.Tag = int(n) - case s == "opt": - p.Optional = true - case s == "req": - p.Required = true - case s == "rep": - p.Repeated = true - case s == "varint" || s == "zigzag32" || s == "zigzag64": - p.Wire = s - p.WireType = WireVarint - case s == "fixed32": - p.Wire = s - p.WireType = WireFixed32 - case s == "fixed64": - p.Wire = s - p.WireType = WireFixed64 - case s == "bytes": - p.Wire = s - p.WireType = WireBytes - case s == "group": - p.Wire = s - p.WireType = WireStartGroup - case s == "packed": - p.Packed = true - case s == "proto3": - p.Proto3 = true - case s == "oneof": - p.Oneof = true - case strings.HasPrefix(s, "def="): - // The default tag is special in that everything afterwards is the - // default regardless of the presence of commas. - p.HasDefault = true - p.Default, i = tag[len("def="):], len(tag) - } - tag = strings.TrimPrefix(tag[i:], ",") - } -} - -// Init populates the properties from a protocol buffer struct tag. -// -// Deprecated: Do not use. -func (p *Properties) Init(typ reflect.Type, name, tag string, f *reflect.StructField) { - p.Name = name - p.OrigName = name - if tag == "" { - return - } - p.Parse(tag) - - if typ != nil && typ.Kind() == reflect.Map { - p.MapKeyProp = new(Properties) - p.MapKeyProp.Init(nil, "Key", f.Tag.Get("protobuf_key"), nil) - p.MapValProp = new(Properties) - p.MapValProp.Init(nil, "Value", f.Tag.Get("protobuf_val"), nil) - } -} - -var propertiesCache sync.Map // map[reflect.Type]*StructProperties - -// GetProperties returns the list of properties for the type represented by t, -// which must be a generated protocol buffer message in the open-struct API, -// where protobuf message fields are represented by exported Go struct fields. -// -// Deprecated: Use protobuf reflection instead. -func GetProperties(t reflect.Type) *StructProperties { - if p, ok := propertiesCache.Load(t); ok { - return p.(*StructProperties) - } - p, _ := propertiesCache.LoadOrStore(t, newProperties(t)) - return p.(*StructProperties) -} - -func newProperties(t reflect.Type) *StructProperties { - if t.Kind() != reflect.Struct { - panic(fmt.Sprintf("%v is not a generated message in the open-struct API", t)) - } - - var hasOneof bool - prop := new(StructProperties) - - // Construct a list of properties for each field in the struct. - for i := 0; i < t.NumField(); i++ { - p := new(Properties) - f := t.Field(i) - tagField := f.Tag.Get("protobuf") - p.Init(f.Type, f.Name, tagField, &f) - - tagOneof := f.Tag.Get("protobuf_oneof") - if tagOneof != "" { - hasOneof = true - p.OrigName = tagOneof - } - - // Rename unrelated struct fields with the "XXX_" prefix since so much - // user code simply checks for this to exclude special fields. - if tagField == "" && tagOneof == "" && !strings.HasPrefix(p.Name, "XXX_") { - p.Name = "XXX_" + p.Name - p.OrigName = "XXX_" + p.OrigName - } else if p.Weak != "" { - p.Name = p.OrigName // avoid possible "XXX_" prefix on weak field - } - - prop.Prop = append(prop.Prop, p) - } - - // Construct a mapping of oneof field names to properties. - if hasOneof { - var oneofWrappers []interface{} - if fn, ok := reflect.PtrTo(t).MethodByName("XXX_OneofFuncs"); ok { - oneofWrappers = fn.Func.Call([]reflect.Value{reflect.Zero(fn.Type.In(0))})[3].Interface().([]interface{}) - } - if fn, ok := reflect.PtrTo(t).MethodByName("XXX_OneofWrappers"); ok { - oneofWrappers = fn.Func.Call([]reflect.Value{reflect.Zero(fn.Type.In(0))})[0].Interface().([]interface{}) - } - if m, ok := reflect.Zero(reflect.PtrTo(t)).Interface().(protoreflect.ProtoMessage); ok { - if m, ok := m.ProtoReflect().(interface{ ProtoMessageInfo() *protoimpl.MessageInfo }); ok { - oneofWrappers = m.ProtoMessageInfo().OneofWrappers - } - } - - prop.OneofTypes = make(map[string]*OneofProperties) - for _, wrapper := range oneofWrappers { - p := &OneofProperties{ - Type: reflect.ValueOf(wrapper).Type(), // *T - Prop: new(Properties), - } - f := p.Type.Elem().Field(0) - p.Prop.Name = f.Name - p.Prop.Parse(f.Tag.Get("protobuf")) - - // Determine the struct field that contains this oneof. - // Each wrapper is assignable to exactly one parent field. - var foundOneof bool - for i := 0; i < t.NumField() && !foundOneof; i++ { - if p.Type.AssignableTo(t.Field(i).Type) { - p.Field = i - foundOneof = true - } - } - if !foundOneof { - panic(fmt.Sprintf("%v is not a generated message in the open-struct API", t)) - } - prop.OneofTypes[p.Prop.OrigName] = p - } - } - - return prop -} - -func (sp *StructProperties) Len() int { return len(sp.Prop) } -func (sp *StructProperties) Less(i, j int) bool { return false } -func (sp *StructProperties) Swap(i, j int) { return } diff --git a/vendor/github.com/golang/protobuf/proto/proto.go b/vendor/github.com/golang/protobuf/proto/proto.go deleted file mode 100644 index 5aee89c32..000000000 --- a/vendor/github.com/golang/protobuf/proto/proto.go +++ /dev/null @@ -1,167 +0,0 @@ -// Copyright 2019 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// Package proto provides functionality for handling protocol buffer messages. -// In particular, it provides marshaling and unmarshaling between a protobuf -// message and the binary wire format. -// -// See https://developers.google.com/protocol-buffers/docs/gotutorial for -// more information. -// -// Deprecated: Use the "google.golang.org/protobuf/proto" package instead. -package proto - -import ( - protoV2 "google.golang.org/protobuf/proto" - "google.golang.org/protobuf/reflect/protoreflect" - "google.golang.org/protobuf/runtime/protoiface" - "google.golang.org/protobuf/runtime/protoimpl" -) - -const ( - ProtoPackageIsVersion1 = true - ProtoPackageIsVersion2 = true - ProtoPackageIsVersion3 = true - ProtoPackageIsVersion4 = true -) - -// GeneratedEnum is any enum type generated by protoc-gen-go -// which is a named int32 kind. -// This type exists for documentation purposes. -type GeneratedEnum interface{} - -// GeneratedMessage is any message type generated by protoc-gen-go -// which is a pointer to a named struct kind. -// This type exists for documentation purposes. -type GeneratedMessage interface{} - -// Message is a protocol buffer message. -// -// This is the v1 version of the message interface and is marginally better -// than an empty interface as it lacks any method to programatically interact -// with the contents of the message. -// -// A v2 message is declared in "google.golang.org/protobuf/proto".Message and -// exposes protobuf reflection as a first-class feature of the interface. -// -// To convert a v1 message to a v2 message, use the MessageV2 function. -// To convert a v2 message to a v1 message, use the MessageV1 function. -type Message = protoiface.MessageV1 - -// MessageV1 converts either a v1 or v2 message to a v1 message. -// It returns nil if m is nil. -func MessageV1(m GeneratedMessage) protoiface.MessageV1 { - return protoimpl.X.ProtoMessageV1Of(m) -} - -// MessageV2 converts either a v1 or v2 message to a v2 message. -// It returns nil if m is nil. -func MessageV2(m GeneratedMessage) protoV2.Message { - return protoimpl.X.ProtoMessageV2Of(m) -} - -// MessageReflect returns a reflective view for a message. -// It returns nil if m is nil. -func MessageReflect(m Message) protoreflect.Message { - return protoimpl.X.MessageOf(m) -} - -// Marshaler is implemented by messages that can marshal themselves. -// This interface is used by the following functions: Size, Marshal, -// Buffer.Marshal, and Buffer.EncodeMessage. -// -// Deprecated: Do not implement. -type Marshaler interface { - // Marshal formats the encoded bytes of the message. - // It should be deterministic and emit valid protobuf wire data. - // The caller takes ownership of the returned buffer. - Marshal() ([]byte, error) -} - -// Unmarshaler is implemented by messages that can unmarshal themselves. -// This interface is used by the following functions: Unmarshal, UnmarshalMerge, -// Buffer.Unmarshal, Buffer.DecodeMessage, and Buffer.DecodeGroup. -// -// Deprecated: Do not implement. -type Unmarshaler interface { - // Unmarshal parses the encoded bytes of the protobuf wire input. - // The provided buffer is only valid for during method call. - // It should not reset the receiver message. - Unmarshal([]byte) error -} - -// Merger is implemented by messages that can merge themselves. -// This interface is used by the following functions: Clone and Merge. -// -// Deprecated: Do not implement. -type Merger interface { - // Merge merges the contents of src into the receiver message. - // It clones all data structures in src such that it aliases no mutable - // memory referenced by src. - Merge(src Message) -} - -// RequiredNotSetError is an error type returned when -// marshaling or unmarshaling a message with missing required fields. -type RequiredNotSetError struct { - err error -} - -func (e *RequiredNotSetError) Error() string { - if e.err != nil { - return e.err.Error() - } - return "proto: required field not set" -} -func (e *RequiredNotSetError) RequiredNotSet() bool { - return true -} - -func checkRequiredNotSet(m protoV2.Message) error { - if err := protoV2.CheckInitialized(m); err != nil { - return &RequiredNotSetError{err: err} - } - return nil -} - -// Clone returns a deep copy of src. -func Clone(src Message) Message { - return MessageV1(protoV2.Clone(MessageV2(src))) -} - -// Merge merges src into dst, which must be messages of the same type. -// -// Populated scalar fields in src are copied to dst, while populated -// singular messages in src are merged into dst by recursively calling Merge. -// The elements of every list field in src is appended to the corresponded -// list fields in dst. The entries of every map field in src is copied into -// the corresponding map field in dst, possibly replacing existing entries. -// The unknown fields of src are appended to the unknown fields of dst. -func Merge(dst, src Message) { - protoV2.Merge(MessageV2(dst), MessageV2(src)) -} - -// Equal reports whether two messages are equal. -// If two messages marshal to the same bytes under deterministic serialization, -// then Equal is guaranteed to report true. -// -// Two messages are equal if they are the same protobuf message type, -// have the same set of populated known and extension field values, -// and the same set of unknown fields values. -// -// Scalar values are compared with the equivalent of the == operator in Go, -// except bytes values which are compared using bytes.Equal and -// floating point values which specially treat NaNs as equal. -// Message values are compared by recursively calling Equal. -// Lists are equal if each element value is also equal. -// Maps are equal if they have the same set of keys, where the pair of values -// for each key is also equal. -func Equal(x, y Message) bool { - return protoV2.Equal(MessageV2(x), MessageV2(y)) -} - -func isMessageSet(md protoreflect.MessageDescriptor) bool { - ms, ok := md.(interface{ IsMessageSet() bool }) - return ok && ms.IsMessageSet() -} diff --git a/vendor/github.com/golang/protobuf/proto/registry.go b/vendor/github.com/golang/protobuf/proto/registry.go deleted file mode 100644 index 066b4323b..000000000 --- a/vendor/github.com/golang/protobuf/proto/registry.go +++ /dev/null @@ -1,317 +0,0 @@ -// Copyright 2019 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package proto - -import ( - "bytes" - "compress/gzip" - "fmt" - "io/ioutil" - "reflect" - "strings" - "sync" - - "google.golang.org/protobuf/reflect/protodesc" - "google.golang.org/protobuf/reflect/protoreflect" - "google.golang.org/protobuf/reflect/protoregistry" - "google.golang.org/protobuf/runtime/protoimpl" -) - -// filePath is the path to the proto source file. -type filePath = string // e.g., "google/protobuf/descriptor.proto" - -// fileDescGZIP is the compressed contents of the encoded FileDescriptorProto. -type fileDescGZIP = []byte - -var fileCache sync.Map // map[filePath]fileDescGZIP - -// RegisterFile is called from generated code to register the compressed -// FileDescriptorProto with the file path for a proto source file. -// -// Deprecated: Use protoregistry.GlobalFiles.RegisterFile instead. -func RegisterFile(s filePath, d fileDescGZIP) { - // Decompress the descriptor. - zr, err := gzip.NewReader(bytes.NewReader(d)) - if err != nil { - panic(fmt.Sprintf("proto: invalid compressed file descriptor: %v", err)) - } - b, err := ioutil.ReadAll(zr) - if err != nil { - panic(fmt.Sprintf("proto: invalid compressed file descriptor: %v", err)) - } - - // Construct a protoreflect.FileDescriptor from the raw descriptor. - // Note that DescBuilder.Build automatically registers the constructed - // file descriptor with the v2 registry. - protoimpl.DescBuilder{RawDescriptor: b}.Build() - - // Locally cache the raw descriptor form for the file. - fileCache.Store(s, d) -} - -// FileDescriptor returns the compressed FileDescriptorProto given the file path -// for a proto source file. It returns nil if not found. -// -// Deprecated: Use protoregistry.GlobalFiles.FindFileByPath instead. -func FileDescriptor(s filePath) fileDescGZIP { - if v, ok := fileCache.Load(s); ok { - return v.(fileDescGZIP) - } - - // Find the descriptor in the v2 registry. - var b []byte - if fd, _ := protoregistry.GlobalFiles.FindFileByPath(s); fd != nil { - b, _ = Marshal(protodesc.ToFileDescriptorProto(fd)) - } - - // Locally cache the raw descriptor form for the file. - if len(b) > 0 { - v, _ := fileCache.LoadOrStore(s, protoimpl.X.CompressGZIP(b)) - return v.(fileDescGZIP) - } - return nil -} - -// enumName is the name of an enum. For historical reasons, the enum name is -// neither the full Go name nor the full protobuf name of the enum. -// The name is the dot-separated combination of just the proto package that the -// enum is declared within followed by the Go type name of the generated enum. -type enumName = string // e.g., "my.proto.package.GoMessage_GoEnum" - -// enumsByName maps enum values by name to their numeric counterpart. -type enumsByName = map[string]int32 - -// enumsByNumber maps enum values by number to their name counterpart. -type enumsByNumber = map[int32]string - -var enumCache sync.Map // map[enumName]enumsByName -var numFilesCache sync.Map // map[protoreflect.FullName]int - -// RegisterEnum is called from the generated code to register the mapping of -// enum value names to enum numbers for the enum identified by s. -// -// Deprecated: Use protoregistry.GlobalTypes.RegisterEnum instead. -func RegisterEnum(s enumName, _ enumsByNumber, m enumsByName) { - if _, ok := enumCache.Load(s); ok { - panic("proto: duplicate enum registered: " + s) - } - enumCache.Store(s, m) - - // This does not forward registration to the v2 registry since this API - // lacks sufficient information to construct a complete v2 enum descriptor. -} - -// EnumValueMap returns the mapping from enum value names to enum numbers for -// the enum of the given name. It returns nil if not found. -// -// Deprecated: Use protoregistry.GlobalTypes.FindEnumByName instead. -func EnumValueMap(s enumName) enumsByName { - if v, ok := enumCache.Load(s); ok { - return v.(enumsByName) - } - - // Check whether the cache is stale. If the number of files in the current - // package differs, then it means that some enums may have been recently - // registered upstream that we do not know about. - var protoPkg protoreflect.FullName - if i := strings.LastIndexByte(s, '.'); i >= 0 { - protoPkg = protoreflect.FullName(s[:i]) - } - v, _ := numFilesCache.Load(protoPkg) - numFiles, _ := v.(int) - if protoregistry.GlobalFiles.NumFilesByPackage(protoPkg) == numFiles { - return nil // cache is up-to-date; was not found earlier - } - - // Update the enum cache for all enums declared in the given proto package. - numFiles = 0 - protoregistry.GlobalFiles.RangeFilesByPackage(protoPkg, func(fd protoreflect.FileDescriptor) bool { - walkEnums(fd, func(ed protoreflect.EnumDescriptor) { - name := protoimpl.X.LegacyEnumName(ed) - if _, ok := enumCache.Load(name); !ok { - m := make(enumsByName) - evs := ed.Values() - for i := evs.Len() - 1; i >= 0; i-- { - ev := evs.Get(i) - m[string(ev.Name())] = int32(ev.Number()) - } - enumCache.LoadOrStore(name, m) - } - }) - numFiles++ - return true - }) - numFilesCache.Store(protoPkg, numFiles) - - // Check cache again for enum map. - if v, ok := enumCache.Load(s); ok { - return v.(enumsByName) - } - return nil -} - -// walkEnums recursively walks all enums declared in d. -func walkEnums(d interface { - Enums() protoreflect.EnumDescriptors - Messages() protoreflect.MessageDescriptors -}, f func(protoreflect.EnumDescriptor)) { - eds := d.Enums() - for i := eds.Len() - 1; i >= 0; i-- { - f(eds.Get(i)) - } - mds := d.Messages() - for i := mds.Len() - 1; i >= 0; i-- { - walkEnums(mds.Get(i), f) - } -} - -// messageName is the full name of protobuf message. -type messageName = string - -var messageTypeCache sync.Map // map[messageName]reflect.Type - -// RegisterType is called from generated code to register the message Go type -// for a message of the given name. -// -// Deprecated: Use protoregistry.GlobalTypes.RegisterMessage instead. -func RegisterType(m Message, s messageName) { - mt := protoimpl.X.LegacyMessageTypeOf(m, protoreflect.FullName(s)) - if err := protoregistry.GlobalTypes.RegisterMessage(mt); err != nil { - panic(err) - } - messageTypeCache.Store(s, reflect.TypeOf(m)) -} - -// RegisterMapType is called from generated code to register the Go map type -// for a protobuf message representing a map entry. -// -// Deprecated: Do not use. -func RegisterMapType(m interface{}, s messageName) { - t := reflect.TypeOf(m) - if t.Kind() != reflect.Map { - panic(fmt.Sprintf("invalid map kind: %v", t)) - } - if _, ok := messageTypeCache.Load(s); ok { - panic(fmt.Errorf("proto: duplicate proto message registered: %s", s)) - } - messageTypeCache.Store(s, t) -} - -// MessageType returns the message type for a named message. -// It returns nil if not found. -// -// Deprecated: Use protoregistry.GlobalTypes.FindMessageByName instead. -func MessageType(s messageName) reflect.Type { - if v, ok := messageTypeCache.Load(s); ok { - return v.(reflect.Type) - } - - // Derive the message type from the v2 registry. - var t reflect.Type - if mt, _ := protoregistry.GlobalTypes.FindMessageByName(protoreflect.FullName(s)); mt != nil { - t = messageGoType(mt) - } - - // If we could not get a concrete type, it is possible that it is a - // pseudo-message for a map entry. - if t == nil { - d, _ := protoregistry.GlobalFiles.FindDescriptorByName(protoreflect.FullName(s)) - if md, _ := d.(protoreflect.MessageDescriptor); md != nil && md.IsMapEntry() { - kt := goTypeForField(md.Fields().ByNumber(1)) - vt := goTypeForField(md.Fields().ByNumber(2)) - t = reflect.MapOf(kt, vt) - } - } - - // Locally cache the message type for the given name. - if t != nil { - v, _ := messageTypeCache.LoadOrStore(s, t) - return v.(reflect.Type) - } - return nil -} - -func goTypeForField(fd protoreflect.FieldDescriptor) reflect.Type { - switch k := fd.Kind(); k { - case protoreflect.EnumKind: - if et, _ := protoregistry.GlobalTypes.FindEnumByName(fd.Enum().FullName()); et != nil { - return enumGoType(et) - } - return reflect.TypeOf(protoreflect.EnumNumber(0)) - case protoreflect.MessageKind, protoreflect.GroupKind: - if mt, _ := protoregistry.GlobalTypes.FindMessageByName(fd.Message().FullName()); mt != nil { - return messageGoType(mt) - } - return reflect.TypeOf((*protoreflect.Message)(nil)).Elem() - default: - return reflect.TypeOf(fd.Default().Interface()) - } -} - -func enumGoType(et protoreflect.EnumType) reflect.Type { - return reflect.TypeOf(et.New(0)) -} - -func messageGoType(mt protoreflect.MessageType) reflect.Type { - return reflect.TypeOf(MessageV1(mt.Zero().Interface())) -} - -// MessageName returns the full protobuf name for the given message type. -// -// Deprecated: Use protoreflect.MessageDescriptor.FullName instead. -func MessageName(m Message) messageName { - if m == nil { - return "" - } - if m, ok := m.(interface{ XXX_MessageName() messageName }); ok { - return m.XXX_MessageName() - } - return messageName(protoimpl.X.MessageDescriptorOf(m).FullName()) -} - -// RegisterExtension is called from the generated code to register -// the extension descriptor. -// -// Deprecated: Use protoregistry.GlobalTypes.RegisterExtension instead. -func RegisterExtension(d *ExtensionDesc) { - if err := protoregistry.GlobalTypes.RegisterExtension(d); err != nil { - panic(err) - } -} - -type extensionsByNumber = map[int32]*ExtensionDesc - -var extensionCache sync.Map // map[messageName]extensionsByNumber - -// RegisteredExtensions returns a map of the registered extensions for the -// provided protobuf message, indexed by the extension field number. -// -// Deprecated: Use protoregistry.GlobalTypes.RangeExtensionsByMessage instead. -func RegisteredExtensions(m Message) extensionsByNumber { - // Check whether the cache is stale. If the number of extensions for - // the given message differs, then it means that some extensions were - // recently registered upstream that we do not know about. - s := MessageName(m) - v, _ := extensionCache.Load(s) - xs, _ := v.(extensionsByNumber) - if protoregistry.GlobalTypes.NumExtensionsByMessage(protoreflect.FullName(s)) == len(xs) { - return xs // cache is up-to-date - } - - // Cache is stale, re-compute the extensions map. - xs = make(extensionsByNumber) - protoregistry.GlobalTypes.RangeExtensionsByMessage(protoreflect.FullName(s), func(xt protoreflect.ExtensionType) bool { - if xd, ok := xt.(*ExtensionDesc); ok { - xs[int32(xt.TypeDescriptor().Number())] = xd - } else { - // TODO: This implies that the protoreflect.ExtensionType is a - // custom type not generated by protoc-gen-go. We could try and - // convert the type to an ExtensionDesc. - } - return true - }) - extensionCache.Store(s, xs) - return xs -} diff --git a/vendor/github.com/golang/protobuf/proto/text_decode.go b/vendor/github.com/golang/protobuf/proto/text_decode.go deleted file mode 100644 index 47eb3e445..000000000 --- a/vendor/github.com/golang/protobuf/proto/text_decode.go +++ /dev/null @@ -1,801 +0,0 @@ -// Copyright 2010 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package proto - -import ( - "encoding" - "errors" - "fmt" - "reflect" - "strconv" - "strings" - "unicode/utf8" - - "google.golang.org/protobuf/encoding/prototext" - protoV2 "google.golang.org/protobuf/proto" - "google.golang.org/protobuf/reflect/protoreflect" - "google.golang.org/protobuf/reflect/protoregistry" -) - -const wrapTextUnmarshalV2 = false - -// ParseError is returned by UnmarshalText. -type ParseError struct { - Message string - - // Deprecated: Do not use. - Line, Offset int -} - -func (e *ParseError) Error() string { - if wrapTextUnmarshalV2 { - return e.Message - } - if e.Line == 1 { - return fmt.Sprintf("line 1.%d: %v", e.Offset, e.Message) - } - return fmt.Sprintf("line %d: %v", e.Line, e.Message) -} - -// UnmarshalText parses a proto text formatted string into m. -func UnmarshalText(s string, m Message) error { - if u, ok := m.(encoding.TextUnmarshaler); ok { - return u.UnmarshalText([]byte(s)) - } - - m.Reset() - mi := MessageV2(m) - - if wrapTextUnmarshalV2 { - err := prototext.UnmarshalOptions{ - AllowPartial: true, - }.Unmarshal([]byte(s), mi) - if err != nil { - return &ParseError{Message: err.Error()} - } - return checkRequiredNotSet(mi) - } else { - if err := newTextParser(s).unmarshalMessage(mi.ProtoReflect(), ""); err != nil { - return err - } - return checkRequiredNotSet(mi) - } -} - -type textParser struct { - s string // remaining input - done bool // whether the parsing is finished (success or error) - backed bool // whether back() was called - offset, line int - cur token -} - -type token struct { - value string - err *ParseError - line int // line number - offset int // byte number from start of input, not start of line - unquoted string // the unquoted version of value, if it was a quoted string -} - -func newTextParser(s string) *textParser { - p := new(textParser) - p.s = s - p.line = 1 - p.cur.line = 1 - return p -} - -func (p *textParser) unmarshalMessage(m protoreflect.Message, terminator string) (err error) { - md := m.Descriptor() - fds := md.Fields() - - // A struct is a sequence of "name: value", terminated by one of - // '>' or '}', or the end of the input. A name may also be - // "[extension]" or "[type/url]". - // - // The whole struct can also be an expanded Any message, like: - // [type/url] < ... struct contents ... > - seen := make(map[protoreflect.FieldNumber]bool) - for { - tok := p.next() - if tok.err != nil { - return tok.err - } - if tok.value == terminator { - break - } - if tok.value == "[" { - if err := p.unmarshalExtensionOrAny(m, seen); err != nil { - return err - } - continue - } - - // This is a normal, non-extension field. - name := protoreflect.Name(tok.value) - fd := fds.ByName(name) - switch { - case fd == nil: - gd := fds.ByName(protoreflect.Name(strings.ToLower(string(name)))) - if gd != nil && gd.Kind() == protoreflect.GroupKind && gd.Message().Name() == name { - fd = gd - } - case fd.Kind() == protoreflect.GroupKind && fd.Message().Name() != name: - fd = nil - case fd.IsWeak() && fd.Message().IsPlaceholder(): - fd = nil - } - if fd == nil { - typeName := string(md.FullName()) - if m, ok := m.Interface().(Message); ok { - t := reflect.TypeOf(m) - if t.Kind() == reflect.Ptr { - typeName = t.Elem().String() - } - } - return p.errorf("unknown field name %q in %v", name, typeName) - } - if od := fd.ContainingOneof(); od != nil && m.WhichOneof(od) != nil { - return p.errorf("field '%s' would overwrite already parsed oneof '%s'", name, od.Name()) - } - if fd.Cardinality() != protoreflect.Repeated && seen[fd.Number()] { - return p.errorf("non-repeated field %q was repeated", fd.Name()) - } - seen[fd.Number()] = true - - // Consume any colon. - if err := p.checkForColon(fd); err != nil { - return err - } - - // Parse into the field. - v := m.Get(fd) - if !m.Has(fd) && (fd.IsList() || fd.IsMap() || fd.Message() != nil) { - v = m.Mutable(fd) - } - if v, err = p.unmarshalValue(v, fd); err != nil { - return err - } - m.Set(fd, v) - - if err := p.consumeOptionalSeparator(); err != nil { - return err - } - } - return nil -} - -func (p *textParser) unmarshalExtensionOrAny(m protoreflect.Message, seen map[protoreflect.FieldNumber]bool) error { - name, err := p.consumeExtensionOrAnyName() - if err != nil { - return err - } - - // If it contains a slash, it's an Any type URL. - if slashIdx := strings.LastIndex(name, "/"); slashIdx >= 0 { - tok := p.next() - if tok.err != nil { - return tok.err - } - // consume an optional colon - if tok.value == ":" { - tok = p.next() - if tok.err != nil { - return tok.err - } - } - - var terminator string - switch tok.value { - case "<": - terminator = ">" - case "{": - terminator = "}" - default: - return p.errorf("expected '{' or '<', found %q", tok.value) - } - - mt, err := protoregistry.GlobalTypes.FindMessageByURL(name) - if err != nil { - return p.errorf("unrecognized message %q in google.protobuf.Any", name[slashIdx+len("/"):]) - } - m2 := mt.New() - if err := p.unmarshalMessage(m2, terminator); err != nil { - return err - } - b, err := protoV2.Marshal(m2.Interface()) - if err != nil { - return p.errorf("failed to marshal message of type %q: %v", name[slashIdx+len("/"):], err) - } - - urlFD := m.Descriptor().Fields().ByName("type_url") - valFD := m.Descriptor().Fields().ByName("value") - if seen[urlFD.Number()] { - return p.errorf("Any message unpacked multiple times, or %q already set", urlFD.Name()) - } - if seen[valFD.Number()] { - return p.errorf("Any message unpacked multiple times, or %q already set", valFD.Name()) - } - m.Set(urlFD, protoreflect.ValueOfString(name)) - m.Set(valFD, protoreflect.ValueOfBytes(b)) - seen[urlFD.Number()] = true - seen[valFD.Number()] = true - return nil - } - - xname := protoreflect.FullName(name) - xt, _ := protoregistry.GlobalTypes.FindExtensionByName(xname) - if xt == nil && isMessageSet(m.Descriptor()) { - xt, _ = protoregistry.GlobalTypes.FindExtensionByName(xname.Append("message_set_extension")) - } - if xt == nil { - return p.errorf("unrecognized extension %q", name) - } - fd := xt.TypeDescriptor() - if fd.ContainingMessage().FullName() != m.Descriptor().FullName() { - return p.errorf("extension field %q does not extend message %q", name, m.Descriptor().FullName()) - } - - if err := p.checkForColon(fd); err != nil { - return err - } - - v := m.Get(fd) - if !m.Has(fd) && (fd.IsList() || fd.IsMap() || fd.Message() != nil) { - v = m.Mutable(fd) - } - v, err = p.unmarshalValue(v, fd) - if err != nil { - return err - } - m.Set(fd, v) - return p.consumeOptionalSeparator() -} - -func (p *textParser) unmarshalValue(v protoreflect.Value, fd protoreflect.FieldDescriptor) (protoreflect.Value, error) { - tok := p.next() - if tok.err != nil { - return v, tok.err - } - if tok.value == "" { - return v, p.errorf("unexpected EOF") - } - - switch { - case fd.IsList(): - lv := v.List() - var err error - if tok.value == "[" { - // Repeated field with list notation, like [1,2,3]. - for { - vv := lv.NewElement() - vv, err = p.unmarshalSingularValue(vv, fd) - if err != nil { - return v, err - } - lv.Append(vv) - - tok := p.next() - if tok.err != nil { - return v, tok.err - } - if tok.value == "]" { - break - } - if tok.value != "," { - return v, p.errorf("Expected ']' or ',' found %q", tok.value) - } - } - return v, nil - } - - // One value of the repeated field. - p.back() - vv := lv.NewElement() - vv, err = p.unmarshalSingularValue(vv, fd) - if err != nil { - return v, err - } - lv.Append(vv) - return v, nil - case fd.IsMap(): - // The map entry should be this sequence of tokens: - // < key : KEY value : VALUE > - // However, implementations may omit key or value, and technically - // we should support them in any order. - var terminator string - switch tok.value { - case "<": - terminator = ">" - case "{": - terminator = "}" - default: - return v, p.errorf("expected '{' or '<', found %q", tok.value) - } - - keyFD := fd.MapKey() - valFD := fd.MapValue() - - mv := v.Map() - kv := keyFD.Default() - vv := mv.NewValue() - for { - tok := p.next() - if tok.err != nil { - return v, tok.err - } - if tok.value == terminator { - break - } - var err error - switch tok.value { - case "key": - if err := p.consumeToken(":"); err != nil { - return v, err - } - if kv, err = p.unmarshalSingularValue(kv, keyFD); err != nil { - return v, err - } - if err := p.consumeOptionalSeparator(); err != nil { - return v, err - } - case "value": - if err := p.checkForColon(valFD); err != nil { - return v, err - } - if vv, err = p.unmarshalSingularValue(vv, valFD); err != nil { - return v, err - } - if err := p.consumeOptionalSeparator(); err != nil { - return v, err - } - default: - p.back() - return v, p.errorf(`expected "key", "value", or %q, found %q`, terminator, tok.value) - } - } - mv.Set(kv.MapKey(), vv) - return v, nil - default: - p.back() - return p.unmarshalSingularValue(v, fd) - } -} - -func (p *textParser) unmarshalSingularValue(v protoreflect.Value, fd protoreflect.FieldDescriptor) (protoreflect.Value, error) { - tok := p.next() - if tok.err != nil { - return v, tok.err - } - if tok.value == "" { - return v, p.errorf("unexpected EOF") - } - - switch fd.Kind() { - case protoreflect.BoolKind: - switch tok.value { - case "true", "1", "t", "True": - return protoreflect.ValueOfBool(true), nil - case "false", "0", "f", "False": - return protoreflect.ValueOfBool(false), nil - } - case protoreflect.Int32Kind, protoreflect.Sint32Kind, protoreflect.Sfixed32Kind: - if x, err := strconv.ParseInt(tok.value, 0, 32); err == nil { - return protoreflect.ValueOfInt32(int32(x)), nil - } - - // The C++ parser accepts large positive hex numbers that uses - // two's complement arithmetic to represent negative numbers. - // This feature is here for backwards compatibility with C++. - if strings.HasPrefix(tok.value, "0x") { - if x, err := strconv.ParseUint(tok.value, 0, 32); err == nil { - return protoreflect.ValueOfInt32(int32(-(int64(^x) + 1))), nil - } - } - case protoreflect.Int64Kind, protoreflect.Sint64Kind, protoreflect.Sfixed64Kind: - if x, err := strconv.ParseInt(tok.value, 0, 64); err == nil { - return protoreflect.ValueOfInt64(int64(x)), nil - } - - // The C++ parser accepts large positive hex numbers that uses - // two's complement arithmetic to represent negative numbers. - // This feature is here for backwards compatibility with C++. - if strings.HasPrefix(tok.value, "0x") { - if x, err := strconv.ParseUint(tok.value, 0, 64); err == nil { - return protoreflect.ValueOfInt64(int64(-(int64(^x) + 1))), nil - } - } - case protoreflect.Uint32Kind, protoreflect.Fixed32Kind: - if x, err := strconv.ParseUint(tok.value, 0, 32); err == nil { - return protoreflect.ValueOfUint32(uint32(x)), nil - } - case protoreflect.Uint64Kind, protoreflect.Fixed64Kind: - if x, err := strconv.ParseUint(tok.value, 0, 64); err == nil { - return protoreflect.ValueOfUint64(uint64(x)), nil - } - case protoreflect.FloatKind: - // Ignore 'f' for compatibility with output generated by C++, - // but don't remove 'f' when the value is "-inf" or "inf". - v := tok.value - if strings.HasSuffix(v, "f") && v != "-inf" && v != "inf" { - v = v[:len(v)-len("f")] - } - if x, err := strconv.ParseFloat(v, 32); err == nil { - return protoreflect.ValueOfFloat32(float32(x)), nil - } - case protoreflect.DoubleKind: - // Ignore 'f' for compatibility with output generated by C++, - // but don't remove 'f' when the value is "-inf" or "inf". - v := tok.value - if strings.HasSuffix(v, "f") && v != "-inf" && v != "inf" { - v = v[:len(v)-len("f")] - } - if x, err := strconv.ParseFloat(v, 64); err == nil { - return protoreflect.ValueOfFloat64(float64(x)), nil - } - case protoreflect.StringKind: - if isQuote(tok.value[0]) { - return protoreflect.ValueOfString(tok.unquoted), nil - } - case protoreflect.BytesKind: - if isQuote(tok.value[0]) { - return protoreflect.ValueOfBytes([]byte(tok.unquoted)), nil - } - case protoreflect.EnumKind: - if x, err := strconv.ParseInt(tok.value, 0, 32); err == nil { - return protoreflect.ValueOfEnum(protoreflect.EnumNumber(x)), nil - } - vd := fd.Enum().Values().ByName(protoreflect.Name(tok.value)) - if vd != nil { - return protoreflect.ValueOfEnum(vd.Number()), nil - } - case protoreflect.MessageKind, protoreflect.GroupKind: - var terminator string - switch tok.value { - case "{": - terminator = "}" - case "<": - terminator = ">" - default: - return v, p.errorf("expected '{' or '<', found %q", tok.value) - } - err := p.unmarshalMessage(v.Message(), terminator) - return v, err - default: - panic(fmt.Sprintf("invalid kind %v", fd.Kind())) - } - return v, p.errorf("invalid %v: %v", fd.Kind(), tok.value) -} - -// Consume a ':' from the input stream (if the next token is a colon), -// returning an error if a colon is needed but not present. -func (p *textParser) checkForColon(fd protoreflect.FieldDescriptor) *ParseError { - tok := p.next() - if tok.err != nil { - return tok.err - } - if tok.value != ":" { - if fd.Message() == nil { - return p.errorf("expected ':', found %q", tok.value) - } - p.back() - } - return nil -} - -// consumeExtensionOrAnyName consumes an extension name or an Any type URL and -// the following ']'. It returns the name or URL consumed. -func (p *textParser) consumeExtensionOrAnyName() (string, error) { - tok := p.next() - if tok.err != nil { - return "", tok.err - } - - // If extension name or type url is quoted, it's a single token. - if len(tok.value) > 2 && isQuote(tok.value[0]) && tok.value[len(tok.value)-1] == tok.value[0] { - name, err := unquoteC(tok.value[1:len(tok.value)-1], rune(tok.value[0])) - if err != nil { - return "", err - } - return name, p.consumeToken("]") - } - - // Consume everything up to "]" - var parts []string - for tok.value != "]" { - parts = append(parts, tok.value) - tok = p.next() - if tok.err != nil { - return "", p.errorf("unrecognized type_url or extension name: %s", tok.err) - } - if p.done && tok.value != "]" { - return "", p.errorf("unclosed type_url or extension name") - } - } - return strings.Join(parts, ""), nil -} - -// consumeOptionalSeparator consumes an optional semicolon or comma. -// It is used in unmarshalMessage to provide backward compatibility. -func (p *textParser) consumeOptionalSeparator() error { - tok := p.next() - if tok.err != nil { - return tok.err - } - if tok.value != ";" && tok.value != "," { - p.back() - } - return nil -} - -func (p *textParser) errorf(format string, a ...interface{}) *ParseError { - pe := &ParseError{fmt.Sprintf(format, a...), p.cur.line, p.cur.offset} - p.cur.err = pe - p.done = true - return pe -} - -func (p *textParser) skipWhitespace() { - i := 0 - for i < len(p.s) && (isWhitespace(p.s[i]) || p.s[i] == '#') { - if p.s[i] == '#' { - // comment; skip to end of line or input - for i < len(p.s) && p.s[i] != '\n' { - i++ - } - if i == len(p.s) { - break - } - } - if p.s[i] == '\n' { - p.line++ - } - i++ - } - p.offset += i - p.s = p.s[i:len(p.s)] - if len(p.s) == 0 { - p.done = true - } -} - -func (p *textParser) advance() { - // Skip whitespace - p.skipWhitespace() - if p.done { - return - } - - // Start of non-whitespace - p.cur.err = nil - p.cur.offset, p.cur.line = p.offset, p.line - p.cur.unquoted = "" - switch p.s[0] { - case '<', '>', '{', '}', ':', '[', ']', ';', ',', '/': - // Single symbol - p.cur.value, p.s = p.s[0:1], p.s[1:len(p.s)] - case '"', '\'': - // Quoted string - i := 1 - for i < len(p.s) && p.s[i] != p.s[0] && p.s[i] != '\n' { - if p.s[i] == '\\' && i+1 < len(p.s) { - // skip escaped char - i++ - } - i++ - } - if i >= len(p.s) || p.s[i] != p.s[0] { - p.errorf("unmatched quote") - return - } - unq, err := unquoteC(p.s[1:i], rune(p.s[0])) - if err != nil { - p.errorf("invalid quoted string %s: %v", p.s[0:i+1], err) - return - } - p.cur.value, p.s = p.s[0:i+1], p.s[i+1:len(p.s)] - p.cur.unquoted = unq - default: - i := 0 - for i < len(p.s) && isIdentOrNumberChar(p.s[i]) { - i++ - } - if i == 0 { - p.errorf("unexpected byte %#x", p.s[0]) - return - } - p.cur.value, p.s = p.s[0:i], p.s[i:len(p.s)] - } - p.offset += len(p.cur.value) -} - -// Back off the parser by one token. Can only be done between calls to next(). -// It makes the next advance() a no-op. -func (p *textParser) back() { p.backed = true } - -// Advances the parser and returns the new current token. -func (p *textParser) next() *token { - if p.backed || p.done { - p.backed = false - return &p.cur - } - p.advance() - if p.done { - p.cur.value = "" - } else if len(p.cur.value) > 0 && isQuote(p.cur.value[0]) { - // Look for multiple quoted strings separated by whitespace, - // and concatenate them. - cat := p.cur - for { - p.skipWhitespace() - if p.done || !isQuote(p.s[0]) { - break - } - p.advance() - if p.cur.err != nil { - return &p.cur - } - cat.value += " " + p.cur.value - cat.unquoted += p.cur.unquoted - } - p.done = false // parser may have seen EOF, but we want to return cat - p.cur = cat - } - return &p.cur -} - -func (p *textParser) consumeToken(s string) error { - tok := p.next() - if tok.err != nil { - return tok.err - } - if tok.value != s { - p.back() - return p.errorf("expected %q, found %q", s, tok.value) - } - return nil -} - -var errBadUTF8 = errors.New("proto: bad UTF-8") - -func unquoteC(s string, quote rune) (string, error) { - // This is based on C++'s tokenizer.cc. - // Despite its name, this is *not* parsing C syntax. - // For instance, "\0" is an invalid quoted string. - - // Avoid allocation in trivial cases. - simple := true - for _, r := range s { - if r == '\\' || r == quote { - simple = false - break - } - } - if simple { - return s, nil - } - - buf := make([]byte, 0, 3*len(s)/2) - for len(s) > 0 { - r, n := utf8.DecodeRuneInString(s) - if r == utf8.RuneError && n == 1 { - return "", errBadUTF8 - } - s = s[n:] - if r != '\\' { - if r < utf8.RuneSelf { - buf = append(buf, byte(r)) - } else { - buf = append(buf, string(r)...) - } - continue - } - - ch, tail, err := unescape(s) - if err != nil { - return "", err - } - buf = append(buf, ch...) - s = tail - } - return string(buf), nil -} - -func unescape(s string) (ch string, tail string, err error) { - r, n := utf8.DecodeRuneInString(s) - if r == utf8.RuneError && n == 1 { - return "", "", errBadUTF8 - } - s = s[n:] - switch r { - case 'a': - return "\a", s, nil - case 'b': - return "\b", s, nil - case 'f': - return "\f", s, nil - case 'n': - return "\n", s, nil - case 'r': - return "\r", s, nil - case 't': - return "\t", s, nil - case 'v': - return "\v", s, nil - case '?': - return "?", s, nil // trigraph workaround - case '\'', '"', '\\': - return string(r), s, nil - case '0', '1', '2', '3', '4', '5', '6', '7': - if len(s) < 2 { - return "", "", fmt.Errorf(`\%c requires 2 following digits`, r) - } - ss := string(r) + s[:2] - s = s[2:] - i, err := strconv.ParseUint(ss, 8, 8) - if err != nil { - return "", "", fmt.Errorf(`\%s contains non-octal digits`, ss) - } - return string([]byte{byte(i)}), s, nil - case 'x', 'X', 'u', 'U': - var n int - switch r { - case 'x', 'X': - n = 2 - case 'u': - n = 4 - case 'U': - n = 8 - } - if len(s) < n { - return "", "", fmt.Errorf(`\%c requires %d following digits`, r, n) - } - ss := s[:n] - s = s[n:] - i, err := strconv.ParseUint(ss, 16, 64) - if err != nil { - return "", "", fmt.Errorf(`\%c%s contains non-hexadecimal digits`, r, ss) - } - if r == 'x' || r == 'X' { - return string([]byte{byte(i)}), s, nil - } - if i > utf8.MaxRune { - return "", "", fmt.Errorf(`\%c%s is not a valid Unicode code point`, r, ss) - } - return string(rune(i)), s, nil - } - return "", "", fmt.Errorf(`unknown escape \%c`, r) -} - -func isIdentOrNumberChar(c byte) bool { - switch { - case 'A' <= c && c <= 'Z', 'a' <= c && c <= 'z': - return true - case '0' <= c && c <= '9': - return true - } - switch c { - case '-', '+', '.', '_': - return true - } - return false -} - -func isWhitespace(c byte) bool { - switch c { - case ' ', '\t', '\n', '\r': - return true - } - return false -} - -func isQuote(c byte) bool { - switch c { - case '"', '\'': - return true - } - return false -} diff --git a/vendor/github.com/golang/protobuf/proto/text_encode.go b/vendor/github.com/golang/protobuf/proto/text_encode.go deleted file mode 100644 index a31134eeb..000000000 --- a/vendor/github.com/golang/protobuf/proto/text_encode.go +++ /dev/null @@ -1,560 +0,0 @@ -// Copyright 2010 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package proto - -import ( - "bytes" - "encoding" - "fmt" - "io" - "math" - "sort" - "strings" - - "google.golang.org/protobuf/encoding/prototext" - "google.golang.org/protobuf/encoding/protowire" - "google.golang.org/protobuf/proto" - "google.golang.org/protobuf/reflect/protoreflect" - "google.golang.org/protobuf/reflect/protoregistry" -) - -const wrapTextMarshalV2 = false - -// TextMarshaler is a configurable text format marshaler. -type TextMarshaler struct { - Compact bool // use compact text format (one line) - ExpandAny bool // expand google.protobuf.Any messages of known types -} - -// Marshal writes the proto text format of m to w. -func (tm *TextMarshaler) Marshal(w io.Writer, m Message) error { - b, err := tm.marshal(m) - if len(b) > 0 { - if _, err := w.Write(b); err != nil { - return err - } - } - return err -} - -// Text returns a proto text formatted string of m. -func (tm *TextMarshaler) Text(m Message) string { - b, _ := tm.marshal(m) - return string(b) -} - -func (tm *TextMarshaler) marshal(m Message) ([]byte, error) { - mr := MessageReflect(m) - if mr == nil || !mr.IsValid() { - return []byte(""), nil - } - - if wrapTextMarshalV2 { - if m, ok := m.(encoding.TextMarshaler); ok { - return m.MarshalText() - } - - opts := prototext.MarshalOptions{ - AllowPartial: true, - EmitUnknown: true, - } - if !tm.Compact { - opts.Indent = " " - } - if !tm.ExpandAny { - opts.Resolver = (*protoregistry.Types)(nil) - } - return opts.Marshal(mr.Interface()) - } else { - w := &textWriter{ - compact: tm.Compact, - expandAny: tm.ExpandAny, - complete: true, - } - - if m, ok := m.(encoding.TextMarshaler); ok { - b, err := m.MarshalText() - if err != nil { - return nil, err - } - w.Write(b) - return w.buf, nil - } - - err := w.writeMessage(mr) - return w.buf, err - } -} - -var ( - defaultTextMarshaler = TextMarshaler{} - compactTextMarshaler = TextMarshaler{Compact: true} -) - -// MarshalText writes the proto text format of m to w. -func MarshalText(w io.Writer, m Message) error { return defaultTextMarshaler.Marshal(w, m) } - -// MarshalTextString returns a proto text formatted string of m. -func MarshalTextString(m Message) string { return defaultTextMarshaler.Text(m) } - -// CompactText writes the compact proto text format of m to w. -func CompactText(w io.Writer, m Message) error { return compactTextMarshaler.Marshal(w, m) } - -// CompactTextString returns a compact proto text formatted string of m. -func CompactTextString(m Message) string { return compactTextMarshaler.Text(m) } - -var ( - newline = []byte("\n") - endBraceNewline = []byte("}\n") - posInf = []byte("inf") - negInf = []byte("-inf") - nan = []byte("nan") -) - -// textWriter is an io.Writer that tracks its indentation level. -type textWriter struct { - compact bool // same as TextMarshaler.Compact - expandAny bool // same as TextMarshaler.ExpandAny - complete bool // whether the current position is a complete line - indent int // indentation level; never negative - buf []byte -} - -func (w *textWriter) Write(p []byte) (n int, _ error) { - newlines := bytes.Count(p, newline) - if newlines == 0 { - if !w.compact && w.complete { - w.writeIndent() - } - w.buf = append(w.buf, p...) - w.complete = false - return len(p), nil - } - - frags := bytes.SplitN(p, newline, newlines+1) - if w.compact { - for i, frag := range frags { - if i > 0 { - w.buf = append(w.buf, ' ') - n++ - } - w.buf = append(w.buf, frag...) - n += len(frag) - } - return n, nil - } - - for i, frag := range frags { - if w.complete { - w.writeIndent() - } - w.buf = append(w.buf, frag...) - n += len(frag) - if i+1 < len(frags) { - w.buf = append(w.buf, '\n') - n++ - } - } - w.complete = len(frags[len(frags)-1]) == 0 - return n, nil -} - -func (w *textWriter) WriteByte(c byte) error { - if w.compact && c == '\n' { - c = ' ' - } - if !w.compact && w.complete { - w.writeIndent() - } - w.buf = append(w.buf, c) - w.complete = c == '\n' - return nil -} - -func (w *textWriter) writeName(fd protoreflect.FieldDescriptor) { - if !w.compact && w.complete { - w.writeIndent() - } - w.complete = false - - if fd.Kind() != protoreflect.GroupKind { - w.buf = append(w.buf, fd.Name()...) - w.WriteByte(':') - } else { - // Use message type name for group field name. - w.buf = append(w.buf, fd.Message().Name()...) - } - - if !w.compact { - w.WriteByte(' ') - } -} - -func requiresQuotes(u string) bool { - // When type URL contains any characters except [0-9A-Za-z./\-]*, it must be quoted. - for _, ch := range u { - switch { - case ch == '.' || ch == '/' || ch == '_': - continue - case '0' <= ch && ch <= '9': - continue - case 'A' <= ch && ch <= 'Z': - continue - case 'a' <= ch && ch <= 'z': - continue - default: - return true - } - } - return false -} - -// writeProto3Any writes an expanded google.protobuf.Any message. -// -// It returns (false, nil) if sv value can't be unmarshaled (e.g. because -// required messages are not linked in). -// -// It returns (true, error) when sv was written in expanded format or an error -// was encountered. -func (w *textWriter) writeProto3Any(m protoreflect.Message) (bool, error) { - md := m.Descriptor() - fdURL := md.Fields().ByName("type_url") - fdVal := md.Fields().ByName("value") - - url := m.Get(fdURL).String() - mt, err := protoregistry.GlobalTypes.FindMessageByURL(url) - if err != nil { - return false, nil - } - - b := m.Get(fdVal).Bytes() - m2 := mt.New() - if err := proto.Unmarshal(b, m2.Interface()); err != nil { - return false, nil - } - w.Write([]byte("[")) - if requiresQuotes(url) { - w.writeQuotedString(url) - } else { - w.Write([]byte(url)) - } - if w.compact { - w.Write([]byte("]:<")) - } else { - w.Write([]byte("]: <\n")) - w.indent++ - } - if err := w.writeMessage(m2); err != nil { - return true, err - } - if w.compact { - w.Write([]byte("> ")) - } else { - w.indent-- - w.Write([]byte(">\n")) - } - return true, nil -} - -func (w *textWriter) writeMessage(m protoreflect.Message) error { - md := m.Descriptor() - if w.expandAny && md.FullName() == "google.protobuf.Any" { - if canExpand, err := w.writeProto3Any(m); canExpand { - return err - } - } - - fds := md.Fields() - for i := 0; i < fds.Len(); { - fd := fds.Get(i) - if od := fd.ContainingOneof(); od != nil { - fd = m.WhichOneof(od) - i += od.Fields().Len() - } else { - i++ - } - if fd == nil || !m.Has(fd) { - continue - } - - switch { - case fd.IsList(): - lv := m.Get(fd).List() - for j := 0; j < lv.Len(); j++ { - w.writeName(fd) - v := lv.Get(j) - if err := w.writeSingularValue(v, fd); err != nil { - return err - } - w.WriteByte('\n') - } - case fd.IsMap(): - kfd := fd.MapKey() - vfd := fd.MapValue() - mv := m.Get(fd).Map() - - type entry struct{ key, val protoreflect.Value } - var entries []entry - mv.Range(func(k protoreflect.MapKey, v protoreflect.Value) bool { - entries = append(entries, entry{k.Value(), v}) - return true - }) - sort.Slice(entries, func(i, j int) bool { - switch kfd.Kind() { - case protoreflect.BoolKind: - return !entries[i].key.Bool() && entries[j].key.Bool() - case protoreflect.Int32Kind, protoreflect.Sint32Kind, protoreflect.Sfixed32Kind, protoreflect.Int64Kind, protoreflect.Sint64Kind, protoreflect.Sfixed64Kind: - return entries[i].key.Int() < entries[j].key.Int() - case protoreflect.Uint32Kind, protoreflect.Fixed32Kind, protoreflect.Uint64Kind, protoreflect.Fixed64Kind: - return entries[i].key.Uint() < entries[j].key.Uint() - case protoreflect.StringKind: - return entries[i].key.String() < entries[j].key.String() - default: - panic("invalid kind") - } - }) - for _, entry := range entries { - w.writeName(fd) - w.WriteByte('<') - if !w.compact { - w.WriteByte('\n') - } - w.indent++ - w.writeName(kfd) - if err := w.writeSingularValue(entry.key, kfd); err != nil { - return err - } - w.WriteByte('\n') - w.writeName(vfd) - if err := w.writeSingularValue(entry.val, vfd); err != nil { - return err - } - w.WriteByte('\n') - w.indent-- - w.WriteByte('>') - w.WriteByte('\n') - } - default: - w.writeName(fd) - if err := w.writeSingularValue(m.Get(fd), fd); err != nil { - return err - } - w.WriteByte('\n') - } - } - - if b := m.GetUnknown(); len(b) > 0 { - w.writeUnknownFields(b) - } - return w.writeExtensions(m) -} - -func (w *textWriter) writeSingularValue(v protoreflect.Value, fd protoreflect.FieldDescriptor) error { - switch fd.Kind() { - case protoreflect.FloatKind, protoreflect.DoubleKind: - switch vf := v.Float(); { - case math.IsInf(vf, +1): - w.Write(posInf) - case math.IsInf(vf, -1): - w.Write(negInf) - case math.IsNaN(vf): - w.Write(nan) - default: - fmt.Fprint(w, v.Interface()) - } - case protoreflect.StringKind: - // NOTE: This does not validate UTF-8 for historical reasons. - w.writeQuotedString(string(v.String())) - case protoreflect.BytesKind: - w.writeQuotedString(string(v.Bytes())) - case protoreflect.MessageKind, protoreflect.GroupKind: - var bra, ket byte = '<', '>' - if fd.Kind() == protoreflect.GroupKind { - bra, ket = '{', '}' - } - w.WriteByte(bra) - if !w.compact { - w.WriteByte('\n') - } - w.indent++ - m := v.Message() - if m2, ok := m.Interface().(encoding.TextMarshaler); ok { - b, err := m2.MarshalText() - if err != nil { - return err - } - w.Write(b) - } else { - w.writeMessage(m) - } - w.indent-- - w.WriteByte(ket) - case protoreflect.EnumKind: - if ev := fd.Enum().Values().ByNumber(v.Enum()); ev != nil { - fmt.Fprint(w, ev.Name()) - } else { - fmt.Fprint(w, v.Enum()) - } - default: - fmt.Fprint(w, v.Interface()) - } - return nil -} - -// writeQuotedString writes a quoted string in the protocol buffer text format. -func (w *textWriter) writeQuotedString(s string) { - w.WriteByte('"') - for i := 0; i < len(s); i++ { - switch c := s[i]; c { - case '\n': - w.buf = append(w.buf, `\n`...) - case '\r': - w.buf = append(w.buf, `\r`...) - case '\t': - w.buf = append(w.buf, `\t`...) - case '"': - w.buf = append(w.buf, `\"`...) - case '\\': - w.buf = append(w.buf, `\\`...) - default: - if isPrint := c >= 0x20 && c < 0x7f; isPrint { - w.buf = append(w.buf, c) - } else { - w.buf = append(w.buf, fmt.Sprintf(`\%03o`, c)...) - } - } - } - w.WriteByte('"') -} - -func (w *textWriter) writeUnknownFields(b []byte) { - if !w.compact { - fmt.Fprintf(w, "/* %d unknown bytes */\n", len(b)) - } - - for len(b) > 0 { - num, wtyp, n := protowire.ConsumeTag(b) - if n < 0 { - return - } - b = b[n:] - - if wtyp == protowire.EndGroupType { - w.indent-- - w.Write(endBraceNewline) - continue - } - fmt.Fprint(w, num) - if wtyp != protowire.StartGroupType { - w.WriteByte(':') - } - if !w.compact || wtyp == protowire.StartGroupType { - w.WriteByte(' ') - } - switch wtyp { - case protowire.VarintType: - v, n := protowire.ConsumeVarint(b) - if n < 0 { - return - } - b = b[n:] - fmt.Fprint(w, v) - case protowire.Fixed32Type: - v, n := protowire.ConsumeFixed32(b) - if n < 0 { - return - } - b = b[n:] - fmt.Fprint(w, v) - case protowire.Fixed64Type: - v, n := protowire.ConsumeFixed64(b) - if n < 0 { - return - } - b = b[n:] - fmt.Fprint(w, v) - case protowire.BytesType: - v, n := protowire.ConsumeBytes(b) - if n < 0 { - return - } - b = b[n:] - fmt.Fprintf(w, "%q", v) - case protowire.StartGroupType: - w.WriteByte('{') - w.indent++ - default: - fmt.Fprintf(w, "/* unknown wire type %d */", wtyp) - } - w.WriteByte('\n') - } -} - -// writeExtensions writes all the extensions in m. -func (w *textWriter) writeExtensions(m protoreflect.Message) error { - md := m.Descriptor() - if md.ExtensionRanges().Len() == 0 { - return nil - } - - type ext struct { - desc protoreflect.FieldDescriptor - val protoreflect.Value - } - var exts []ext - m.Range(func(fd protoreflect.FieldDescriptor, v protoreflect.Value) bool { - if fd.IsExtension() { - exts = append(exts, ext{fd, v}) - } - return true - }) - sort.Slice(exts, func(i, j int) bool { - return exts[i].desc.Number() < exts[j].desc.Number() - }) - - for _, ext := range exts { - // For message set, use the name of the message as the extension name. - name := string(ext.desc.FullName()) - if isMessageSet(ext.desc.ContainingMessage()) { - name = strings.TrimSuffix(name, ".message_set_extension") - } - - if !ext.desc.IsList() { - if err := w.writeSingularExtension(name, ext.val, ext.desc); err != nil { - return err - } - } else { - lv := ext.val.List() - for i := 0; i < lv.Len(); i++ { - if err := w.writeSingularExtension(name, lv.Get(i), ext.desc); err != nil { - return err - } - } - } - } - return nil -} - -func (w *textWriter) writeSingularExtension(name string, v protoreflect.Value, fd protoreflect.FieldDescriptor) error { - fmt.Fprintf(w, "[%s]:", name) - if !w.compact { - w.WriteByte(' ') - } - if err := w.writeSingularValue(v, fd); err != nil { - return err - } - w.WriteByte('\n') - return nil -} - -func (w *textWriter) writeIndent() { - if !w.complete { - return - } - for i := 0; i < w.indent*2; i++ { - w.buf = append(w.buf, ' ') - } - w.complete = false -} diff --git a/vendor/github.com/golang/protobuf/proto/wire.go b/vendor/github.com/golang/protobuf/proto/wire.go deleted file mode 100644 index d7c28da5a..000000000 --- a/vendor/github.com/golang/protobuf/proto/wire.go +++ /dev/null @@ -1,78 +0,0 @@ -// Copyright 2019 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package proto - -import ( - protoV2 "google.golang.org/protobuf/proto" - "google.golang.org/protobuf/runtime/protoiface" -) - -// Size returns the size in bytes of the wire-format encoding of m. -func Size(m Message) int { - if m == nil { - return 0 - } - mi := MessageV2(m) - return protoV2.Size(mi) -} - -// Marshal returns the wire-format encoding of m. -func Marshal(m Message) ([]byte, error) { - b, err := marshalAppend(nil, m, false) - if b == nil { - b = zeroBytes - } - return b, err -} - -var zeroBytes = make([]byte, 0, 0) - -func marshalAppend(buf []byte, m Message, deterministic bool) ([]byte, error) { - if m == nil { - return nil, ErrNil - } - mi := MessageV2(m) - nbuf, err := protoV2.MarshalOptions{ - Deterministic: deterministic, - AllowPartial: true, - }.MarshalAppend(buf, mi) - if err != nil { - return buf, err - } - if len(buf) == len(nbuf) { - if !mi.ProtoReflect().IsValid() { - return buf, ErrNil - } - } - return nbuf, checkRequiredNotSet(mi) -} - -// Unmarshal parses a wire-format message in b and places the decoded results in m. -// -// Unmarshal resets m before starting to unmarshal, so any existing data in m is always -// removed. Use UnmarshalMerge to preserve and append to existing data. -func Unmarshal(b []byte, m Message) error { - m.Reset() - return UnmarshalMerge(b, m) -} - -// UnmarshalMerge parses a wire-format message in b and places the decoded results in m. -func UnmarshalMerge(b []byte, m Message) error { - mi := MessageV2(m) - out, err := protoV2.UnmarshalOptions{ - AllowPartial: true, - Merge: true, - }.UnmarshalState(protoiface.UnmarshalInput{ - Buf: b, - Message: mi.ProtoReflect(), - }) - if err != nil { - return err - } - if out.Flags&protoiface.UnmarshalInitialized > 0 { - return nil - } - return checkRequiredNotSet(mi) -} diff --git a/vendor/github.com/golang/protobuf/proto/wrappers.go b/vendor/github.com/golang/protobuf/proto/wrappers.go deleted file mode 100644 index 398e34859..000000000 --- a/vendor/github.com/golang/protobuf/proto/wrappers.go +++ /dev/null @@ -1,34 +0,0 @@ -// Copyright 2019 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package proto - -// Bool stores v in a new bool value and returns a pointer to it. -func Bool(v bool) *bool { return &v } - -// Int stores v in a new int32 value and returns a pointer to it. -// -// Deprecated: Use Int32 instead. -func Int(v int) *int32 { return Int32(int32(v)) } - -// Int32 stores v in a new int32 value and returns a pointer to it. -func Int32(v int32) *int32 { return &v } - -// Int64 stores v in a new int64 value and returns a pointer to it. -func Int64(v int64) *int64 { return &v } - -// Uint32 stores v in a new uint32 value and returns a pointer to it. -func Uint32(v uint32) *uint32 { return &v } - -// Uint64 stores v in a new uint64 value and returns a pointer to it. -func Uint64(v uint64) *uint64 { return &v } - -// Float32 stores v in a new float32 value and returns a pointer to it. -func Float32(v float32) *float32 { return &v } - -// Float64 stores v in a new float64 value and returns a pointer to it. -func Float64(v float64) *float64 { return &v } - -// String stores v in a new string value and returns a pointer to it. -func String(v string) *string { return &v } diff --git a/vendor/github.com/google/s2a-go/internal/proto/common_go_proto/common.pb.go b/vendor/github.com/google/s2a-go/internal/proto/common_go_proto/common.pb.go index 16278a1d9..fcd049de9 100644 --- a/vendor/github.com/google/s2a-go/internal/proto/common_go_proto/common.pb.go +++ b/vendor/github.com/google/s2a-go/internal/proto/common_go_proto/common.pb.go @@ -14,7 +14,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.30.0 +// protoc-gen-go v1.34.2 // protoc v3.21.12 // source: internal/proto/common/common.proto @@ -145,8 +145,8 @@ type Identity struct { // *Identity_SpiffeId // *Identity_Hostname // *Identity_Uid - // *Identity_MdbUsername - // *Identity_GaiaId + // *Identity_Username + // *Identity_GcpId IdentityOneof isIdentity_IdentityOneof `protobuf_oneof:"identity_oneof"` // Additional identity-specific attributes. Attributes map[string]string `protobuf:"bytes,3,rep,name=attributes,proto3" json:"attributes,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` @@ -212,16 +212,16 @@ func (x *Identity) GetUid() string { return "" } -func (x *Identity) GetMdbUsername() string { - if x, ok := x.GetIdentityOneof().(*Identity_MdbUsername); ok { - return x.MdbUsername +func (x *Identity) GetUsername() string { + if x, ok := x.GetIdentityOneof().(*Identity_Username); ok { + return x.Username } return "" } -func (x *Identity) GetGaiaId() string { - if x, ok := x.GetIdentityOneof().(*Identity_GaiaId); ok { - return x.GaiaId +func (x *Identity) GetGcpId() string { + if x, ok := x.GetIdentityOneof().(*Identity_GcpId); ok { + return x.GcpId } return "" } @@ -252,14 +252,14 @@ type Identity_Uid struct { Uid string `protobuf:"bytes,4,opt,name=uid,proto3,oneof"` } -type Identity_MdbUsername struct { - // The MDB username of a connection endpoint. - MdbUsername string `protobuf:"bytes,5,opt,name=mdb_username,json=mdbUsername,proto3,oneof"` +type Identity_Username struct { + // The username of a connection endpoint. + Username string `protobuf:"bytes,5,opt,name=username,proto3,oneof"` } -type Identity_GaiaId struct { - // The Gaia ID of a connection endpoint. - GaiaId string `protobuf:"bytes,6,opt,name=gaia_id,json=gaiaId,proto3,oneof"` +type Identity_GcpId struct { + // The GCP ID of a connection endpoint. + GcpId string `protobuf:"bytes,6,opt,name=gcp_id,json=gcpId,proto3,oneof"` } func (*Identity_SpiffeId) isIdentity_IdentityOneof() {} @@ -268,9 +268,9 @@ func (*Identity_Hostname) isIdentity_IdentityOneof() {} func (*Identity_Uid) isIdentity_IdentityOneof() {} -func (*Identity_MdbUsername) isIdentity_IdentityOneof() {} +func (*Identity_Username) isIdentity_IdentityOneof() {} -func (*Identity_GaiaId) isIdentity_IdentityOneof() {} +func (*Identity_GcpId) isIdentity_IdentityOneof() {} var File_internal_proto_common_common_proto protoreflect.FileDescriptor @@ -278,38 +278,37 @@ var file_internal_proto_common_common_proto_rawDesc = []byte{ 0x0a, 0x22, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2f, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x09, 0x73, 0x32, 0x61, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, - 0xb1, 0x02, 0x0a, 0x08, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x12, 0x1d, 0x0a, 0x09, + 0xa8, 0x02, 0x0a, 0x08, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x12, 0x1d, 0x0a, 0x09, 0x73, 0x70, 0x69, 0x66, 0x66, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x08, 0x73, 0x70, 0x69, 0x66, 0x66, 0x65, 0x49, 0x64, 0x12, 0x1c, 0x0a, 0x08, 0x68, 0x6f, 0x73, 0x74, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x08, 0x68, 0x6f, 0x73, 0x74, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x12, 0x0a, 0x03, 0x75, 0x69, 0x64, - 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x03, 0x75, 0x69, 0x64, 0x12, 0x23, 0x0a, - 0x0c, 0x6d, 0x64, 0x62, 0x5f, 0x75, 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, - 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x0b, 0x6d, 0x64, 0x62, 0x55, 0x73, 0x65, 0x72, 0x6e, 0x61, - 0x6d, 0x65, 0x12, 0x19, 0x0a, 0x07, 0x67, 0x61, 0x69, 0x61, 0x5f, 0x69, 0x64, 0x18, 0x06, 0x20, - 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x06, 0x67, 0x61, 0x69, 0x61, 0x49, 0x64, 0x12, 0x43, 0x0a, - 0x0a, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, - 0x0b, 0x32, 0x23, 0x2e, 0x73, 0x32, 0x61, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x49, 0x64, - 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x2e, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, - 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0a, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, - 0x65, 0x73, 0x1a, 0x3d, 0x0a, 0x0f, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, - 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, - 0x01, 0x42, 0x10, 0x0a, 0x0e, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x5f, 0x6f, 0x6e, - 0x65, 0x6f, 0x66, 0x2a, 0x5b, 0x0a, 0x0b, 0x43, 0x69, 0x70, 0x68, 0x65, 0x72, 0x73, 0x75, 0x69, - 0x74, 0x65, 0x12, 0x16, 0x0a, 0x12, 0x41, 0x45, 0x53, 0x5f, 0x31, 0x32, 0x38, 0x5f, 0x47, 0x43, - 0x4d, 0x5f, 0x53, 0x48, 0x41, 0x32, 0x35, 0x36, 0x10, 0x00, 0x12, 0x16, 0x0a, 0x12, 0x41, 0x45, - 0x53, 0x5f, 0x32, 0x35, 0x36, 0x5f, 0x47, 0x43, 0x4d, 0x5f, 0x53, 0x48, 0x41, 0x33, 0x38, 0x34, - 0x10, 0x01, 0x12, 0x1c, 0x0a, 0x18, 0x43, 0x48, 0x41, 0x43, 0x48, 0x41, 0x32, 0x30, 0x5f, 0x50, - 0x4f, 0x4c, 0x59, 0x31, 0x33, 0x30, 0x35, 0x5f, 0x53, 0x48, 0x41, 0x32, 0x35, 0x36, 0x10, 0x02, - 0x2a, 0x24, 0x0a, 0x0a, 0x54, 0x4c, 0x53, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x0a, - 0x0a, 0x06, 0x54, 0x4c, 0x53, 0x31, 0x5f, 0x32, 0x10, 0x00, 0x12, 0x0a, 0x0a, 0x06, 0x54, 0x4c, - 0x53, 0x31, 0x5f, 0x33, 0x10, 0x01, 0x42, 0x36, 0x5a, 0x34, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, - 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x73, 0x32, 0x61, 0x2f, - 0x69, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x63, - 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x5f, 0x67, 0x6f, 0x5f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x06, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x03, 0x75, 0x69, 0x64, 0x12, 0x1c, 0x0a, + 0x08, 0x75, 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x48, + 0x00, 0x52, 0x08, 0x75, 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x17, 0x0a, 0x06, 0x67, + 0x63, 0x70, 0x5f, 0x69, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x05, 0x67, + 0x63, 0x70, 0x49, 0x64, 0x12, 0x43, 0x0a, 0x0a, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, + 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x73, 0x32, 0x61, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x2e, 0x41, 0x74, + 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0a, 0x61, + 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x1a, 0x3d, 0x0a, 0x0f, 0x41, 0x74, 0x74, + 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, + 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, + 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x42, 0x10, 0x0a, 0x0e, 0x69, 0x64, 0x65, 0x6e, + 0x74, 0x69, 0x74, 0x79, 0x5f, 0x6f, 0x6e, 0x65, 0x6f, 0x66, 0x2a, 0x5b, 0x0a, 0x0b, 0x43, 0x69, + 0x70, 0x68, 0x65, 0x72, 0x73, 0x75, 0x69, 0x74, 0x65, 0x12, 0x16, 0x0a, 0x12, 0x41, 0x45, 0x53, + 0x5f, 0x31, 0x32, 0x38, 0x5f, 0x47, 0x43, 0x4d, 0x5f, 0x53, 0x48, 0x41, 0x32, 0x35, 0x36, 0x10, + 0x00, 0x12, 0x16, 0x0a, 0x12, 0x41, 0x45, 0x53, 0x5f, 0x32, 0x35, 0x36, 0x5f, 0x47, 0x43, 0x4d, + 0x5f, 0x53, 0x48, 0x41, 0x33, 0x38, 0x34, 0x10, 0x01, 0x12, 0x1c, 0x0a, 0x18, 0x43, 0x48, 0x41, + 0x43, 0x48, 0x41, 0x32, 0x30, 0x5f, 0x50, 0x4f, 0x4c, 0x59, 0x31, 0x33, 0x30, 0x35, 0x5f, 0x53, + 0x48, 0x41, 0x32, 0x35, 0x36, 0x10, 0x02, 0x2a, 0x24, 0x0a, 0x0a, 0x54, 0x4c, 0x53, 0x56, 0x65, + 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x0a, 0x0a, 0x06, 0x54, 0x4c, 0x53, 0x31, 0x5f, 0x32, 0x10, + 0x00, 0x12, 0x0a, 0x0a, 0x06, 0x54, 0x4c, 0x53, 0x31, 0x5f, 0x33, 0x10, 0x01, 0x42, 0x36, 0x5a, + 0x34, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x67, 0x6f, 0x6f, 0x67, + 0x6c, 0x65, 0x2f, 0x73, 0x32, 0x61, 0x2f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x2f, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x5f, 0x67, 0x6f, 0x5f, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -326,7 +325,7 @@ func file_internal_proto_common_common_proto_rawDescGZIP() []byte { var file_internal_proto_common_common_proto_enumTypes = make([]protoimpl.EnumInfo, 2) var file_internal_proto_common_common_proto_msgTypes = make([]protoimpl.MessageInfo, 2) -var file_internal_proto_common_common_proto_goTypes = []interface{}{ +var file_internal_proto_common_common_proto_goTypes = []any{ (Ciphersuite)(0), // 0: s2a.proto.Ciphersuite (TLSVersion)(0), // 1: s2a.proto.TLSVersion (*Identity)(nil), // 2: s2a.proto.Identity @@ -347,7 +346,7 @@ func file_internal_proto_common_common_proto_init() { return } if !protoimpl.UnsafeEnabled { - file_internal_proto_common_common_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + file_internal_proto_common_common_proto_msgTypes[0].Exporter = func(v any, i int) any { switch v := v.(*Identity); i { case 0: return &v.state @@ -360,12 +359,12 @@ func file_internal_proto_common_common_proto_init() { } } } - file_internal_proto_common_common_proto_msgTypes[0].OneofWrappers = []interface{}{ + file_internal_proto_common_common_proto_msgTypes[0].OneofWrappers = []any{ (*Identity_SpiffeId)(nil), (*Identity_Hostname)(nil), (*Identity_Uid)(nil), - (*Identity_MdbUsername)(nil), - (*Identity_GaiaId)(nil), + (*Identity_Username)(nil), + (*Identity_GcpId)(nil), } type x struct{} out := protoimpl.TypeBuilder{ diff --git a/vendor/github.com/google/s2a-go/internal/proto/s2a_context_go_proto/s2a_context.pb.go b/vendor/github.com/google/s2a-go/internal/proto/s2a_context_go_proto/s2a_context.pb.go index f4f763ae1..2af3ee3dc 100644 --- a/vendor/github.com/google/s2a-go/internal/proto/s2a_context_go_proto/s2a_context.pb.go +++ b/vendor/github.com/google/s2a-go/internal/proto/s2a_context_go_proto/s2a_context.pb.go @@ -14,7 +14,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.30.0 +// protoc-gen-go v1.34.2 // protoc v3.21.12 // source: internal/proto/s2a_context/s2a_context.proto @@ -209,7 +209,7 @@ func file_internal_proto_s2a_context_s2a_context_proto_rawDescGZIP() []byte { } var file_internal_proto_s2a_context_s2a_context_proto_msgTypes = make([]protoimpl.MessageInfo, 1) -var file_internal_proto_s2a_context_s2a_context_proto_goTypes = []interface{}{ +var file_internal_proto_s2a_context_s2a_context_proto_goTypes = []any{ (*S2AContext)(nil), // 0: s2a.proto.S2AContext (common_go_proto.TLSVersion)(0), // 1: s2a.proto.TLSVersion (common_go_proto.Ciphersuite)(0), // 2: s2a.proto.Ciphersuite @@ -233,7 +233,7 @@ func file_internal_proto_s2a_context_s2a_context_proto_init() { return } if !protoimpl.UnsafeEnabled { - file_internal_proto_s2a_context_s2a_context_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + file_internal_proto_s2a_context_s2a_context_proto_msgTypes[0].Exporter = func(v any, i int) any { switch v := v.(*S2AContext); i { case 0: return &v.state diff --git a/vendor/github.com/google/s2a-go/internal/proto/s2a_go_proto/s2a.pb.go b/vendor/github.com/google/s2a-go/internal/proto/s2a_go_proto/s2a.pb.go index 0a86ebee5..8919232fd 100644 --- a/vendor/github.com/google/s2a-go/internal/proto/s2a_go_proto/s2a.pb.go +++ b/vendor/github.com/google/s2a-go/internal/proto/s2a_go_proto/s2a.pb.go @@ -14,7 +14,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.30.0 +// protoc-gen-go v1.34.2 // protoc v3.21.12 // source: internal/proto/s2a/s2a.proto @@ -1171,7 +1171,7 @@ func file_internal_proto_s2a_s2a_proto_rawDescGZIP() []byte { } var file_internal_proto_s2a_s2a_proto_msgTypes = make([]protoimpl.MessageInfo, 10) -var file_internal_proto_s2a_s2a_proto_goTypes = []interface{}{ +var file_internal_proto_s2a_s2a_proto_goTypes = []any{ (*AuthenticationMechanism)(nil), // 0: s2a.proto.AuthenticationMechanism (*ClientSessionStartReq)(nil), // 1: s2a.proto.ClientSessionStartReq (*ServerSessionStartReq)(nil), // 2: s2a.proto.ServerSessionStartReq @@ -1226,7 +1226,7 @@ func file_internal_proto_s2a_s2a_proto_init() { return } if !protoimpl.UnsafeEnabled { - file_internal_proto_s2a_s2a_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + file_internal_proto_s2a_s2a_proto_msgTypes[0].Exporter = func(v any, i int) any { switch v := v.(*AuthenticationMechanism); i { case 0: return &v.state @@ -1238,7 +1238,7 @@ func file_internal_proto_s2a_s2a_proto_init() { return nil } } - file_internal_proto_s2a_s2a_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { + file_internal_proto_s2a_s2a_proto_msgTypes[1].Exporter = func(v any, i int) any { switch v := v.(*ClientSessionStartReq); i { case 0: return &v.state @@ -1250,7 +1250,7 @@ func file_internal_proto_s2a_s2a_proto_init() { return nil } } - file_internal_proto_s2a_s2a_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { + file_internal_proto_s2a_s2a_proto_msgTypes[2].Exporter = func(v any, i int) any { switch v := v.(*ServerSessionStartReq); i { case 0: return &v.state @@ -1262,7 +1262,7 @@ func file_internal_proto_s2a_s2a_proto_init() { return nil } } - file_internal_proto_s2a_s2a_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { + file_internal_proto_s2a_s2a_proto_msgTypes[3].Exporter = func(v any, i int) any { switch v := v.(*SessionNextReq); i { case 0: return &v.state @@ -1274,7 +1274,7 @@ func file_internal_proto_s2a_s2a_proto_init() { return nil } } - file_internal_proto_s2a_s2a_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { + file_internal_proto_s2a_s2a_proto_msgTypes[4].Exporter = func(v any, i int) any { switch v := v.(*ResumptionTicketReq); i { case 0: return &v.state @@ -1286,7 +1286,7 @@ func file_internal_proto_s2a_s2a_proto_init() { return nil } } - file_internal_proto_s2a_s2a_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { + file_internal_proto_s2a_s2a_proto_msgTypes[5].Exporter = func(v any, i int) any { switch v := v.(*SessionReq); i { case 0: return &v.state @@ -1298,7 +1298,7 @@ func file_internal_proto_s2a_s2a_proto_init() { return nil } } - file_internal_proto_s2a_s2a_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { + file_internal_proto_s2a_s2a_proto_msgTypes[6].Exporter = func(v any, i int) any { switch v := v.(*SessionState); i { case 0: return &v.state @@ -1310,7 +1310,7 @@ func file_internal_proto_s2a_s2a_proto_init() { return nil } } - file_internal_proto_s2a_s2a_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { + file_internal_proto_s2a_s2a_proto_msgTypes[7].Exporter = func(v any, i int) any { switch v := v.(*SessionResult); i { case 0: return &v.state @@ -1322,7 +1322,7 @@ func file_internal_proto_s2a_s2a_proto_init() { return nil } } - file_internal_proto_s2a_s2a_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { + file_internal_proto_s2a_s2a_proto_msgTypes[8].Exporter = func(v any, i int) any { switch v := v.(*SessionStatus); i { case 0: return &v.state @@ -1334,7 +1334,7 @@ func file_internal_proto_s2a_s2a_proto_init() { return nil } } - file_internal_proto_s2a_s2a_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { + file_internal_proto_s2a_s2a_proto_msgTypes[9].Exporter = func(v any, i int) any { switch v := v.(*SessionResp); i { case 0: return &v.state @@ -1347,10 +1347,10 @@ func file_internal_proto_s2a_s2a_proto_init() { } } } - file_internal_proto_s2a_s2a_proto_msgTypes[0].OneofWrappers = []interface{}{ + file_internal_proto_s2a_s2a_proto_msgTypes[0].OneofWrappers = []any{ (*AuthenticationMechanism_Token)(nil), } - file_internal_proto_s2a_s2a_proto_msgTypes[5].OneofWrappers = []interface{}{ + file_internal_proto_s2a_s2a_proto_msgTypes[5].OneofWrappers = []any{ (*SessionReq_ClientStart)(nil), (*SessionReq_ServerStart)(nil), (*SessionReq_Next)(nil), diff --git a/vendor/github.com/google/s2a-go/internal/proto/s2a_go_proto/s2a_grpc.pb.go b/vendor/github.com/google/s2a-go/internal/proto/s2a_go_proto/s2a_grpc.pb.go index 0fa582fc8..8fac3841b 100644 --- a/vendor/github.com/google/s2a-go/internal/proto/s2a_go_proto/s2a_grpc.pb.go +++ b/vendor/github.com/google/s2a-go/internal/proto/s2a_go_proto/s2a_grpc.pb.go @@ -14,7 +14,7 @@ // Code generated by protoc-gen-go-grpc. DO NOT EDIT. // versions: -// - protoc-gen-go-grpc v1.3.0 +// - protoc-gen-go-grpc v1.4.0 // - protoc v3.21.12 // source: internal/proto/s2a/s2a.proto @@ -29,8 +29,8 @@ import ( // This is a compile-time assertion to ensure that this generated file // is compatible with the grpc package it is being compiled against. -// Requires gRPC-Go v1.32.0 or later. -const _ = grpc.SupportPackageIsVersion7 +// Requires gRPC-Go v1.62.0 or later. +const _ = grpc.SupportPackageIsVersion8 const ( S2AService_SetUpSession_FullMethodName = "/s2a.proto.S2AService/SetUpSession" @@ -61,11 +61,12 @@ func NewS2AServiceClient(cc grpc.ClientConnInterface) S2AServiceClient { } func (c *s2AServiceClient) SetUpSession(ctx context.Context, opts ...grpc.CallOption) (S2AService_SetUpSessionClient, error) { - stream, err := c.cc.NewStream(ctx, &S2AService_ServiceDesc.Streams[0], S2AService_SetUpSession_FullMethodName, opts...) + cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) + stream, err := c.cc.NewStream(ctx, &S2AService_ServiceDesc.Streams[0], S2AService_SetUpSession_FullMethodName, cOpts...) if err != nil { return nil, err } - x := &s2AServiceSetUpSessionClient{stream} + x := &s2AServiceSetUpSessionClient{ClientStream: stream} return x, nil } @@ -129,7 +130,7 @@ func RegisterS2AServiceServer(s grpc.ServiceRegistrar, srv S2AServiceServer) { } func _S2AService_SetUpSession_Handler(srv interface{}, stream grpc.ServerStream) error { - return srv.(S2AServiceServer).SetUpSession(&s2AServiceSetUpSessionServer{stream}) + return srv.(S2AServiceServer).SetUpSession(&s2AServiceSetUpSessionServer{ServerStream: stream}) } type S2AService_SetUpSessionServer interface { diff --git a/vendor/github.com/google/s2a-go/internal/proto/v2/common_go_proto/common.pb.go b/vendor/github.com/google/s2a-go/internal/proto/v2/common_go_proto/common.pb.go index c84bed977..e9aa5d14c 100644 --- a/vendor/github.com/google/s2a-go/internal/proto/v2/common_go_proto/common.pb.go +++ b/vendor/github.com/google/s2a-go/internal/proto/v2/common_go_proto/common.pb.go @@ -14,7 +14,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.30.0 +// protoc-gen-go v1.34.2 // protoc v3.21.12 // source: internal/proto/v2/common/common.proto @@ -256,62 +256,218 @@ func (AlpnProtocol) EnumDescriptor() ([]byte, []int) { return file_internal_proto_v2_common_common_proto_rawDescGZIP(), []int{3} } +type Identity struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Types that are assignable to IdentityOneof: + // + // *Identity_SpiffeId + // *Identity_Hostname + // *Identity_Uid + // *Identity_Username + // *Identity_GcpId + IdentityOneof isIdentity_IdentityOneof `protobuf_oneof:"identity_oneof"` + // Additional identity-specific attributes. + Attributes map[string]string `protobuf:"bytes,3,rep,name=attributes,proto3" json:"attributes,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` +} + +func (x *Identity) Reset() { + *x = Identity{} + if protoimpl.UnsafeEnabled { + mi := &file_internal_proto_v2_common_common_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Identity) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Identity) ProtoMessage() {} + +func (x *Identity) ProtoReflect() protoreflect.Message { + mi := &file_internal_proto_v2_common_common_proto_msgTypes[0] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use Identity.ProtoReflect.Descriptor instead. +func (*Identity) Descriptor() ([]byte, []int) { + return file_internal_proto_v2_common_common_proto_rawDescGZIP(), []int{0} +} + +func (m *Identity) GetIdentityOneof() isIdentity_IdentityOneof { + if m != nil { + return m.IdentityOneof + } + return nil +} + +func (x *Identity) GetSpiffeId() string { + if x, ok := x.GetIdentityOneof().(*Identity_SpiffeId); ok { + return x.SpiffeId + } + return "" +} + +func (x *Identity) GetHostname() string { + if x, ok := x.GetIdentityOneof().(*Identity_Hostname); ok { + return x.Hostname + } + return "" +} + +func (x *Identity) GetUid() string { + if x, ok := x.GetIdentityOneof().(*Identity_Uid); ok { + return x.Uid + } + return "" +} + +func (x *Identity) GetUsername() string { + if x, ok := x.GetIdentityOneof().(*Identity_Username); ok { + return x.Username + } + return "" +} + +func (x *Identity) GetGcpId() string { + if x, ok := x.GetIdentityOneof().(*Identity_GcpId); ok { + return x.GcpId + } + return "" +} + +func (x *Identity) GetAttributes() map[string]string { + if x != nil { + return x.Attributes + } + return nil +} + +type isIdentity_IdentityOneof interface { + isIdentity_IdentityOneof() +} + +type Identity_SpiffeId struct { + // The SPIFFE ID of a connection endpoint. + SpiffeId string `protobuf:"bytes,1,opt,name=spiffe_id,json=spiffeId,proto3,oneof"` +} + +type Identity_Hostname struct { + // The hostname of a connection endpoint. + Hostname string `protobuf:"bytes,2,opt,name=hostname,proto3,oneof"` +} + +type Identity_Uid struct { + // The UID of a connection endpoint. + Uid string `protobuf:"bytes,4,opt,name=uid,proto3,oneof"` +} + +type Identity_Username struct { + // The username of a connection endpoint. + Username string `protobuf:"bytes,5,opt,name=username,proto3,oneof"` +} + +type Identity_GcpId struct { + // The GCP ID of a connection endpoint. + GcpId string `protobuf:"bytes,6,opt,name=gcp_id,json=gcpId,proto3,oneof"` +} + +func (*Identity_SpiffeId) isIdentity_IdentityOneof() {} + +func (*Identity_Hostname) isIdentity_IdentityOneof() {} + +func (*Identity_Uid) isIdentity_IdentityOneof() {} + +func (*Identity_Username) isIdentity_IdentityOneof() {} + +func (*Identity_GcpId) isIdentity_IdentityOneof() {} + var File_internal_proto_v2_common_common_proto protoreflect.FileDescriptor var file_internal_proto_v2_common_common_proto_rawDesc = []byte{ 0x0a, 0x25, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x76, 0x32, 0x2f, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2f, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x0c, 0x73, 0x32, 0x61, 0x2e, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x2e, 0x76, 0x32, 0x2a, 0xee, 0x02, 0x0a, 0x0b, 0x43, 0x69, 0x70, 0x68, 0x65, 0x72, - 0x73, 0x75, 0x69, 0x74, 0x65, 0x12, 0x1b, 0x0a, 0x17, 0x43, 0x49, 0x50, 0x48, 0x45, 0x52, 0x53, - 0x55, 0x49, 0x54, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, - 0x10, 0x00, 0x12, 0x33, 0x0a, 0x2f, 0x43, 0x49, 0x50, 0x48, 0x45, 0x52, 0x53, 0x55, 0x49, 0x54, - 0x45, 0x5f, 0x45, 0x43, 0x44, 0x48, 0x45, 0x5f, 0x45, 0x43, 0x44, 0x53, 0x41, 0x5f, 0x57, 0x49, - 0x54, 0x48, 0x5f, 0x41, 0x45, 0x53, 0x5f, 0x31, 0x32, 0x38, 0x5f, 0x47, 0x43, 0x4d, 0x5f, 0x53, - 0x48, 0x41, 0x32, 0x35, 0x36, 0x10, 0x01, 0x12, 0x33, 0x0a, 0x2f, 0x43, 0x49, 0x50, 0x48, 0x45, - 0x52, 0x53, 0x55, 0x49, 0x54, 0x45, 0x5f, 0x45, 0x43, 0x44, 0x48, 0x45, 0x5f, 0x45, 0x43, 0x44, - 0x53, 0x41, 0x5f, 0x57, 0x49, 0x54, 0x48, 0x5f, 0x41, 0x45, 0x53, 0x5f, 0x32, 0x35, 0x36, 0x5f, - 0x47, 0x43, 0x4d, 0x5f, 0x53, 0x48, 0x41, 0x33, 0x38, 0x34, 0x10, 0x02, 0x12, 0x39, 0x0a, 0x35, - 0x43, 0x49, 0x50, 0x48, 0x45, 0x52, 0x53, 0x55, 0x49, 0x54, 0x45, 0x5f, 0x45, 0x43, 0x44, 0x48, - 0x45, 0x5f, 0x45, 0x43, 0x44, 0x53, 0x41, 0x5f, 0x57, 0x49, 0x54, 0x48, 0x5f, 0x43, 0x48, 0x41, - 0x43, 0x48, 0x41, 0x32, 0x30, 0x5f, 0x50, 0x4f, 0x4c, 0x59, 0x31, 0x33, 0x30, 0x35, 0x5f, 0x53, - 0x48, 0x41, 0x32, 0x35, 0x36, 0x10, 0x03, 0x12, 0x31, 0x0a, 0x2d, 0x43, 0x49, 0x50, 0x48, 0x45, - 0x52, 0x53, 0x55, 0x49, 0x54, 0x45, 0x5f, 0x45, 0x43, 0x44, 0x48, 0x45, 0x5f, 0x52, 0x53, 0x41, - 0x5f, 0x57, 0x49, 0x54, 0x48, 0x5f, 0x41, 0x45, 0x53, 0x5f, 0x31, 0x32, 0x38, 0x5f, 0x47, 0x43, - 0x4d, 0x5f, 0x53, 0x48, 0x41, 0x32, 0x35, 0x36, 0x10, 0x04, 0x12, 0x31, 0x0a, 0x2d, 0x43, 0x49, + 0x74, 0x6f, 0x2e, 0x76, 0x32, 0x22, 0xab, 0x02, 0x0a, 0x08, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, + 0x74, 0x79, 0x12, 0x1d, 0x0a, 0x09, 0x73, 0x70, 0x69, 0x66, 0x66, 0x65, 0x5f, 0x69, 0x64, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x08, 0x73, 0x70, 0x69, 0x66, 0x66, 0x65, 0x49, + 0x64, 0x12, 0x1c, 0x0a, 0x08, 0x68, 0x6f, 0x73, 0x74, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x08, 0x68, 0x6f, 0x73, 0x74, 0x6e, 0x61, 0x6d, 0x65, 0x12, + 0x12, 0x0a, 0x03, 0x75, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x03, + 0x75, 0x69, 0x64, 0x12, 0x1c, 0x0a, 0x08, 0x75, 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x18, + 0x05, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x08, 0x75, 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, + 0x65, 0x12, 0x17, 0x0a, 0x06, 0x67, 0x63, 0x70, 0x5f, 0x69, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, + 0x09, 0x48, 0x00, 0x52, 0x05, 0x67, 0x63, 0x70, 0x49, 0x64, 0x12, 0x46, 0x0a, 0x0a, 0x61, 0x74, + 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x26, + 0x2e, 0x73, 0x32, 0x61, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x76, 0x32, 0x2e, 0x49, 0x64, + 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x2e, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, + 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0a, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, + 0x65, 0x73, 0x1a, 0x3d, 0x0a, 0x0f, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, + 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, + 0x01, 0x42, 0x10, 0x0a, 0x0e, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x5f, 0x6f, 0x6e, + 0x65, 0x6f, 0x66, 0x2a, 0xee, 0x02, 0x0a, 0x0b, 0x43, 0x69, 0x70, 0x68, 0x65, 0x72, 0x73, 0x75, + 0x69, 0x74, 0x65, 0x12, 0x1b, 0x0a, 0x17, 0x43, 0x49, 0x50, 0x48, 0x45, 0x52, 0x53, 0x55, 0x49, + 0x54, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, + 0x12, 0x33, 0x0a, 0x2f, 0x43, 0x49, 0x50, 0x48, 0x45, 0x52, 0x53, 0x55, 0x49, 0x54, 0x45, 0x5f, + 0x45, 0x43, 0x44, 0x48, 0x45, 0x5f, 0x45, 0x43, 0x44, 0x53, 0x41, 0x5f, 0x57, 0x49, 0x54, 0x48, + 0x5f, 0x41, 0x45, 0x53, 0x5f, 0x31, 0x32, 0x38, 0x5f, 0x47, 0x43, 0x4d, 0x5f, 0x53, 0x48, 0x41, + 0x32, 0x35, 0x36, 0x10, 0x01, 0x12, 0x33, 0x0a, 0x2f, 0x43, 0x49, 0x50, 0x48, 0x45, 0x52, 0x53, + 0x55, 0x49, 0x54, 0x45, 0x5f, 0x45, 0x43, 0x44, 0x48, 0x45, 0x5f, 0x45, 0x43, 0x44, 0x53, 0x41, + 0x5f, 0x57, 0x49, 0x54, 0x48, 0x5f, 0x41, 0x45, 0x53, 0x5f, 0x32, 0x35, 0x36, 0x5f, 0x47, 0x43, + 0x4d, 0x5f, 0x53, 0x48, 0x41, 0x33, 0x38, 0x34, 0x10, 0x02, 0x12, 0x39, 0x0a, 0x35, 0x43, 0x49, 0x50, 0x48, 0x45, 0x52, 0x53, 0x55, 0x49, 0x54, 0x45, 0x5f, 0x45, 0x43, 0x44, 0x48, 0x45, 0x5f, - 0x52, 0x53, 0x41, 0x5f, 0x57, 0x49, 0x54, 0x48, 0x5f, 0x41, 0x45, 0x53, 0x5f, 0x32, 0x35, 0x36, - 0x5f, 0x47, 0x43, 0x4d, 0x5f, 0x53, 0x48, 0x41, 0x33, 0x38, 0x34, 0x10, 0x05, 0x12, 0x37, 0x0a, - 0x33, 0x43, 0x49, 0x50, 0x48, 0x45, 0x52, 0x53, 0x55, 0x49, 0x54, 0x45, 0x5f, 0x45, 0x43, 0x44, - 0x48, 0x45, 0x5f, 0x52, 0x53, 0x41, 0x5f, 0x57, 0x49, 0x54, 0x48, 0x5f, 0x43, 0x48, 0x41, 0x43, - 0x48, 0x41, 0x32, 0x30, 0x5f, 0x50, 0x4f, 0x4c, 0x59, 0x31, 0x33, 0x30, 0x35, 0x5f, 0x53, 0x48, - 0x41, 0x32, 0x35, 0x36, 0x10, 0x06, 0x2a, 0x7d, 0x0a, 0x0a, 0x54, 0x4c, 0x53, 0x56, 0x65, 0x72, - 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x1b, 0x0a, 0x17, 0x54, 0x4c, 0x53, 0x5f, 0x56, 0x45, 0x52, 0x53, - 0x49, 0x4f, 0x4e, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, - 0x00, 0x12, 0x13, 0x0a, 0x0f, 0x54, 0x4c, 0x53, 0x5f, 0x56, 0x45, 0x52, 0x53, 0x49, 0x4f, 0x4e, - 0x5f, 0x31, 0x5f, 0x30, 0x10, 0x01, 0x12, 0x13, 0x0a, 0x0f, 0x54, 0x4c, 0x53, 0x5f, 0x56, 0x45, - 0x52, 0x53, 0x49, 0x4f, 0x4e, 0x5f, 0x31, 0x5f, 0x31, 0x10, 0x02, 0x12, 0x13, 0x0a, 0x0f, 0x54, - 0x4c, 0x53, 0x5f, 0x56, 0x45, 0x52, 0x53, 0x49, 0x4f, 0x4e, 0x5f, 0x31, 0x5f, 0x32, 0x10, 0x03, - 0x12, 0x13, 0x0a, 0x0f, 0x54, 0x4c, 0x53, 0x5f, 0x56, 0x45, 0x52, 0x53, 0x49, 0x4f, 0x4e, 0x5f, - 0x31, 0x5f, 0x33, 0x10, 0x04, 0x2a, 0x69, 0x0a, 0x0e, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, - 0x69, 0x6f, 0x6e, 0x53, 0x69, 0x64, 0x65, 0x12, 0x1f, 0x0a, 0x1b, 0x43, 0x4f, 0x4e, 0x4e, 0x45, - 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x53, 0x49, 0x44, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, - 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x1a, 0x0a, 0x16, 0x43, 0x4f, 0x4e, 0x4e, - 0x45, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x53, 0x49, 0x44, 0x45, 0x5f, 0x43, 0x4c, 0x49, 0x45, - 0x4e, 0x54, 0x10, 0x01, 0x12, 0x1a, 0x0a, 0x16, 0x43, 0x4f, 0x4e, 0x4e, 0x45, 0x43, 0x54, 0x49, - 0x4f, 0x4e, 0x5f, 0x53, 0x49, 0x44, 0x45, 0x5f, 0x53, 0x45, 0x52, 0x56, 0x45, 0x52, 0x10, 0x02, - 0x2a, 0x79, 0x0a, 0x0c, 0x41, 0x6c, 0x70, 0x6e, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, - 0x12, 0x1d, 0x0a, 0x19, 0x41, 0x4c, 0x50, 0x4e, 0x5f, 0x50, 0x52, 0x4f, 0x54, 0x4f, 0x43, 0x4f, - 0x4c, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, - 0x16, 0x0a, 0x12, 0x41, 0x4c, 0x50, 0x4e, 0x5f, 0x50, 0x52, 0x4f, 0x54, 0x4f, 0x43, 0x4f, 0x4c, - 0x5f, 0x47, 0x52, 0x50, 0x43, 0x10, 0x01, 0x12, 0x17, 0x0a, 0x13, 0x41, 0x4c, 0x50, 0x4e, 0x5f, - 0x50, 0x52, 0x4f, 0x54, 0x4f, 0x43, 0x4f, 0x4c, 0x5f, 0x48, 0x54, 0x54, 0x50, 0x32, 0x10, 0x02, - 0x12, 0x19, 0x0a, 0x15, 0x41, 0x4c, 0x50, 0x4e, 0x5f, 0x50, 0x52, 0x4f, 0x54, 0x4f, 0x43, 0x4f, - 0x4c, 0x5f, 0x48, 0x54, 0x54, 0x50, 0x31, 0x5f, 0x31, 0x10, 0x03, 0x42, 0x39, 0x5a, 0x37, 0x67, - 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, - 0x2f, 0x73, 0x32, 0x61, 0x2f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x2f, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x2f, 0x76, 0x32, 0x2f, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x5f, 0x67, 0x6f, - 0x5f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x45, 0x43, 0x44, 0x53, 0x41, 0x5f, 0x57, 0x49, 0x54, 0x48, 0x5f, 0x43, 0x48, 0x41, 0x43, 0x48, + 0x41, 0x32, 0x30, 0x5f, 0x50, 0x4f, 0x4c, 0x59, 0x31, 0x33, 0x30, 0x35, 0x5f, 0x53, 0x48, 0x41, + 0x32, 0x35, 0x36, 0x10, 0x03, 0x12, 0x31, 0x0a, 0x2d, 0x43, 0x49, 0x50, 0x48, 0x45, 0x52, 0x53, + 0x55, 0x49, 0x54, 0x45, 0x5f, 0x45, 0x43, 0x44, 0x48, 0x45, 0x5f, 0x52, 0x53, 0x41, 0x5f, 0x57, + 0x49, 0x54, 0x48, 0x5f, 0x41, 0x45, 0x53, 0x5f, 0x31, 0x32, 0x38, 0x5f, 0x47, 0x43, 0x4d, 0x5f, + 0x53, 0x48, 0x41, 0x32, 0x35, 0x36, 0x10, 0x04, 0x12, 0x31, 0x0a, 0x2d, 0x43, 0x49, 0x50, 0x48, + 0x45, 0x52, 0x53, 0x55, 0x49, 0x54, 0x45, 0x5f, 0x45, 0x43, 0x44, 0x48, 0x45, 0x5f, 0x52, 0x53, + 0x41, 0x5f, 0x57, 0x49, 0x54, 0x48, 0x5f, 0x41, 0x45, 0x53, 0x5f, 0x32, 0x35, 0x36, 0x5f, 0x47, + 0x43, 0x4d, 0x5f, 0x53, 0x48, 0x41, 0x33, 0x38, 0x34, 0x10, 0x05, 0x12, 0x37, 0x0a, 0x33, 0x43, + 0x49, 0x50, 0x48, 0x45, 0x52, 0x53, 0x55, 0x49, 0x54, 0x45, 0x5f, 0x45, 0x43, 0x44, 0x48, 0x45, + 0x5f, 0x52, 0x53, 0x41, 0x5f, 0x57, 0x49, 0x54, 0x48, 0x5f, 0x43, 0x48, 0x41, 0x43, 0x48, 0x41, + 0x32, 0x30, 0x5f, 0x50, 0x4f, 0x4c, 0x59, 0x31, 0x33, 0x30, 0x35, 0x5f, 0x53, 0x48, 0x41, 0x32, + 0x35, 0x36, 0x10, 0x06, 0x2a, 0x7d, 0x0a, 0x0a, 0x54, 0x4c, 0x53, 0x56, 0x65, 0x72, 0x73, 0x69, + 0x6f, 0x6e, 0x12, 0x1b, 0x0a, 0x17, 0x54, 0x4c, 0x53, 0x5f, 0x56, 0x45, 0x52, 0x53, 0x49, 0x4f, + 0x4e, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, + 0x13, 0x0a, 0x0f, 0x54, 0x4c, 0x53, 0x5f, 0x56, 0x45, 0x52, 0x53, 0x49, 0x4f, 0x4e, 0x5f, 0x31, + 0x5f, 0x30, 0x10, 0x01, 0x12, 0x13, 0x0a, 0x0f, 0x54, 0x4c, 0x53, 0x5f, 0x56, 0x45, 0x52, 0x53, + 0x49, 0x4f, 0x4e, 0x5f, 0x31, 0x5f, 0x31, 0x10, 0x02, 0x12, 0x13, 0x0a, 0x0f, 0x54, 0x4c, 0x53, + 0x5f, 0x56, 0x45, 0x52, 0x53, 0x49, 0x4f, 0x4e, 0x5f, 0x31, 0x5f, 0x32, 0x10, 0x03, 0x12, 0x13, + 0x0a, 0x0f, 0x54, 0x4c, 0x53, 0x5f, 0x56, 0x45, 0x52, 0x53, 0x49, 0x4f, 0x4e, 0x5f, 0x31, 0x5f, + 0x33, 0x10, 0x04, 0x2a, 0x69, 0x0a, 0x0e, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x53, 0x69, 0x64, 0x65, 0x12, 0x1f, 0x0a, 0x1b, 0x43, 0x4f, 0x4e, 0x4e, 0x45, 0x43, 0x54, + 0x49, 0x4f, 0x4e, 0x5f, 0x53, 0x49, 0x44, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, + 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x1a, 0x0a, 0x16, 0x43, 0x4f, 0x4e, 0x4e, 0x45, 0x43, + 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x53, 0x49, 0x44, 0x45, 0x5f, 0x43, 0x4c, 0x49, 0x45, 0x4e, 0x54, + 0x10, 0x01, 0x12, 0x1a, 0x0a, 0x16, 0x43, 0x4f, 0x4e, 0x4e, 0x45, 0x43, 0x54, 0x49, 0x4f, 0x4e, + 0x5f, 0x53, 0x49, 0x44, 0x45, 0x5f, 0x53, 0x45, 0x52, 0x56, 0x45, 0x52, 0x10, 0x02, 0x2a, 0x79, + 0x0a, 0x0c, 0x41, 0x6c, 0x70, 0x6e, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x12, 0x1d, + 0x0a, 0x19, 0x41, 0x4c, 0x50, 0x4e, 0x5f, 0x50, 0x52, 0x4f, 0x54, 0x4f, 0x43, 0x4f, 0x4c, 0x5f, + 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x16, 0x0a, + 0x12, 0x41, 0x4c, 0x50, 0x4e, 0x5f, 0x50, 0x52, 0x4f, 0x54, 0x4f, 0x43, 0x4f, 0x4c, 0x5f, 0x47, + 0x52, 0x50, 0x43, 0x10, 0x01, 0x12, 0x17, 0x0a, 0x13, 0x41, 0x4c, 0x50, 0x4e, 0x5f, 0x50, 0x52, + 0x4f, 0x54, 0x4f, 0x43, 0x4f, 0x4c, 0x5f, 0x48, 0x54, 0x54, 0x50, 0x32, 0x10, 0x02, 0x12, 0x19, + 0x0a, 0x15, 0x41, 0x4c, 0x50, 0x4e, 0x5f, 0x50, 0x52, 0x4f, 0x54, 0x4f, 0x43, 0x4f, 0x4c, 0x5f, + 0x48, 0x54, 0x54, 0x50, 0x31, 0x5f, 0x31, 0x10, 0x03, 0x42, 0x39, 0x5a, 0x37, 0x67, 0x69, 0x74, + 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x73, + 0x32, 0x61, 0x2f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x2f, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x2f, 0x76, 0x32, 0x2f, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x5f, 0x67, 0x6f, 0x5f, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -327,18 +483,22 @@ func file_internal_proto_v2_common_common_proto_rawDescGZIP() []byte { } var file_internal_proto_v2_common_common_proto_enumTypes = make([]protoimpl.EnumInfo, 4) -var file_internal_proto_v2_common_common_proto_goTypes = []interface{}{ +var file_internal_proto_v2_common_common_proto_msgTypes = make([]protoimpl.MessageInfo, 2) +var file_internal_proto_v2_common_common_proto_goTypes = []any{ (Ciphersuite)(0), // 0: s2a.proto.v2.Ciphersuite (TLSVersion)(0), // 1: s2a.proto.v2.TLSVersion (ConnectionSide)(0), // 2: s2a.proto.v2.ConnectionSide (AlpnProtocol)(0), // 3: s2a.proto.v2.AlpnProtocol + (*Identity)(nil), // 4: s2a.proto.v2.Identity + nil, // 5: s2a.proto.v2.Identity.AttributesEntry } var file_internal_proto_v2_common_common_proto_depIdxs = []int32{ - 0, // [0:0] is the sub-list for method output_type - 0, // [0:0] is the sub-list for method input_type - 0, // [0:0] is the sub-list for extension type_name - 0, // [0:0] is the sub-list for extension extendee - 0, // [0:0] is the sub-list for field type_name + 5, // 0: s2a.proto.v2.Identity.attributes:type_name -> s2a.proto.v2.Identity.AttributesEntry + 1, // [1:1] is the sub-list for method output_type + 1, // [1:1] is the sub-list for method input_type + 1, // [1:1] is the sub-list for extension type_name + 1, // [1:1] is the sub-list for extension extendee + 0, // [0:1] is the sub-list for field type_name } func init() { file_internal_proto_v2_common_common_proto_init() } @@ -346,19 +506,41 @@ func file_internal_proto_v2_common_common_proto_init() { if File_internal_proto_v2_common_common_proto != nil { return } + if !protoimpl.UnsafeEnabled { + file_internal_proto_v2_common_common_proto_msgTypes[0].Exporter = func(v any, i int) any { + switch v := v.(*Identity); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + } + file_internal_proto_v2_common_common_proto_msgTypes[0].OneofWrappers = []any{ + (*Identity_SpiffeId)(nil), + (*Identity_Hostname)(nil), + (*Identity_Uid)(nil), + (*Identity_Username)(nil), + (*Identity_GcpId)(nil), + } type x struct{} out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_internal_proto_v2_common_common_proto_rawDesc, NumEnums: 4, - NumMessages: 0, + NumMessages: 2, NumExtensions: 0, NumServices: 0, }, GoTypes: file_internal_proto_v2_common_common_proto_goTypes, DependencyIndexes: file_internal_proto_v2_common_common_proto_depIdxs, EnumInfos: file_internal_proto_v2_common_common_proto_enumTypes, + MessageInfos: file_internal_proto_v2_common_common_proto_msgTypes, }.Build() File_internal_proto_v2_common_common_proto = out.File file_internal_proto_v2_common_common_proto_rawDesc = nil diff --git a/vendor/github.com/google/s2a-go/internal/proto/v2/s2a_context_go_proto/s2a_context.pb.go b/vendor/github.com/google/s2a-go/internal/proto/v2/s2a_context_go_proto/s2a_context.pb.go index b7fd871c7..418331a4b 100644 --- a/vendor/github.com/google/s2a-go/internal/proto/v2/s2a_context_go_proto/s2a_context.pb.go +++ b/vendor/github.com/google/s2a-go/internal/proto/v2/s2a_context_go_proto/s2a_context.pb.go @@ -14,14 +14,14 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.30.0 +// protoc-gen-go v1.34.2 // protoc v3.21.12 // source: internal/proto/v2/s2a_context/s2a_context.proto package s2a_context_go_proto import ( - common_go_proto "github.com/google/s2a-go/internal/proto/common_go_proto" + common_go_proto "github.com/google/s2a-go/internal/proto/v2/common_go_proto" protoreflect "google.golang.org/protobuf/reflect/protoreflect" protoimpl "google.golang.org/protobuf/runtime/protoimpl" reflect "reflect" @@ -64,7 +64,7 @@ type S2AContext struct { // certificate chain was NOT validated successfully. PeerCertificateChainFingerprints []string `protobuf:"bytes,4,rep,name=peer_certificate_chain_fingerprints,json=peerCertificateChainFingerprints,proto3" json:"peer_certificate_chain_fingerprints,omitempty"` // The local identity used during session setup. - LocalIdentity *common_go_proto.Identity `protobuf:"bytes,5,opt,name=local_identity,json=localIdentity,proto3" json:"local_identity,omitempty"` + LocalIdentity *common_go_proto.Identity `protobuf:"bytes,9,opt,name=local_identity,json=localIdentity,proto3" json:"local_identity,omitempty"` // The SHA256 hash of the DER-encoding of the local leaf certificate used in // the handshake. LocalLeafCertFingerprint []byte `protobuf:"bytes,6,opt,name=local_leaf_cert_fingerprint,json=localLeafCertFingerprint,proto3" json:"local_leaf_cert_fingerprint,omitempty"` @@ -151,35 +151,36 @@ var file_internal_proto_v2_s2a_context_s2a_context_proto_rawDesc = []byte{ 0x2f, 0x76, 0x32, 0x2f, 0x73, 0x32, 0x61, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x2f, 0x73, 0x32, 0x61, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x0c, 0x73, 0x32, 0x61, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x76, 0x32, 0x1a, - 0x22, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, - 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2f, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x22, 0xd9, 0x02, 0x0a, 0x0a, 0x53, 0x32, 0x41, 0x43, 0x6f, 0x6e, 0x74, 0x65, - 0x78, 0x74, 0x12, 0x2d, 0x0a, 0x13, 0x6c, 0x65, 0x61, 0x66, 0x5f, 0x63, 0x65, 0x72, 0x74, 0x5f, - 0x73, 0x70, 0x69, 0x66, 0x66, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x10, 0x6c, 0x65, 0x61, 0x66, 0x43, 0x65, 0x72, 0x74, 0x53, 0x70, 0x69, 0x66, 0x66, 0x65, 0x49, - 0x64, 0x12, 0x24, 0x0a, 0x0e, 0x6c, 0x65, 0x61, 0x66, 0x5f, 0x63, 0x65, 0x72, 0x74, 0x5f, 0x75, - 0x72, 0x69, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0c, 0x6c, 0x65, 0x61, 0x66, 0x43, - 0x65, 0x72, 0x74, 0x55, 0x72, 0x69, 0x73, 0x12, 0x2c, 0x0a, 0x12, 0x6c, 0x65, 0x61, 0x66, 0x5f, - 0x63, 0x65, 0x72, 0x74, 0x5f, 0x64, 0x6e, 0x73, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x03, 0x20, - 0x03, 0x28, 0x09, 0x52, 0x10, 0x6c, 0x65, 0x61, 0x66, 0x43, 0x65, 0x72, 0x74, 0x44, 0x6e, 0x73, - 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x12, 0x4d, 0x0a, 0x23, 0x70, 0x65, 0x65, 0x72, 0x5f, 0x63, 0x65, - 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x5f, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x5f, - 0x66, 0x69, 0x6e, 0x67, 0x65, 0x72, 0x70, 0x72, 0x69, 0x6e, 0x74, 0x73, 0x18, 0x04, 0x20, 0x03, - 0x28, 0x09, 0x52, 0x20, 0x70, 0x65, 0x65, 0x72, 0x43, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, - 0x61, 0x74, 0x65, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x46, 0x69, 0x6e, 0x67, 0x65, 0x72, 0x70, 0x72, - 0x69, 0x6e, 0x74, 0x73, 0x12, 0x3a, 0x0a, 0x0e, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x5f, 0x69, 0x64, - 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x73, - 0x32, 0x61, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, - 0x79, 0x52, 0x0d, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, - 0x12, 0x3d, 0x0a, 0x1b, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x5f, 0x6c, 0x65, 0x61, 0x66, 0x5f, 0x63, - 0x65, 0x72, 0x74, 0x5f, 0x66, 0x69, 0x6e, 0x67, 0x65, 0x72, 0x70, 0x72, 0x69, 0x6e, 0x74, 0x18, - 0x06, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x18, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x4c, 0x65, 0x61, 0x66, - 0x43, 0x65, 0x72, 0x74, 0x46, 0x69, 0x6e, 0x67, 0x65, 0x72, 0x70, 0x72, 0x69, 0x6e, 0x74, 0x42, - 0x3e, 0x5a, 0x3c, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x67, 0x6f, - 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x73, 0x32, 0x61, 0x2f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, - 0x6c, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x76, 0x32, 0x2f, 0x73, 0x32, 0x61, 0x5f, 0x63, - 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x5f, 0x67, 0x6f, 0x5f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, - 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x25, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, + 0x76, 0x32, 0x2f, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2f, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xee, 0x02, 0x0a, 0x0a, 0x53, 0x32, 0x41, 0x43, 0x6f, + 0x6e, 0x74, 0x65, 0x78, 0x74, 0x12, 0x2d, 0x0a, 0x13, 0x6c, 0x65, 0x61, 0x66, 0x5f, 0x63, 0x65, + 0x72, 0x74, 0x5f, 0x73, 0x70, 0x69, 0x66, 0x66, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x10, 0x6c, 0x65, 0x61, 0x66, 0x43, 0x65, 0x72, 0x74, 0x53, 0x70, 0x69, 0x66, + 0x66, 0x65, 0x49, 0x64, 0x12, 0x24, 0x0a, 0x0e, 0x6c, 0x65, 0x61, 0x66, 0x5f, 0x63, 0x65, 0x72, + 0x74, 0x5f, 0x75, 0x72, 0x69, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0c, 0x6c, 0x65, + 0x61, 0x66, 0x43, 0x65, 0x72, 0x74, 0x55, 0x72, 0x69, 0x73, 0x12, 0x2c, 0x0a, 0x12, 0x6c, 0x65, + 0x61, 0x66, 0x5f, 0x63, 0x65, 0x72, 0x74, 0x5f, 0x64, 0x6e, 0x73, 0x6e, 0x61, 0x6d, 0x65, 0x73, + 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x10, 0x6c, 0x65, 0x61, 0x66, 0x43, 0x65, 0x72, 0x74, + 0x44, 0x6e, 0x73, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x12, 0x4d, 0x0a, 0x23, 0x70, 0x65, 0x65, 0x72, + 0x5f, 0x63, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x5f, 0x63, 0x68, 0x61, + 0x69, 0x6e, 0x5f, 0x66, 0x69, 0x6e, 0x67, 0x65, 0x72, 0x70, 0x72, 0x69, 0x6e, 0x74, 0x73, 0x18, + 0x04, 0x20, 0x03, 0x28, 0x09, 0x52, 0x20, 0x70, 0x65, 0x65, 0x72, 0x43, 0x65, 0x72, 0x74, 0x69, + 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x46, 0x69, 0x6e, 0x67, 0x65, + 0x72, 0x70, 0x72, 0x69, 0x6e, 0x74, 0x73, 0x12, 0x3d, 0x0a, 0x0e, 0x6c, 0x6f, 0x63, 0x61, 0x6c, + 0x5f, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x16, 0x2e, 0x73, 0x32, 0x61, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x76, 0x32, 0x2e, 0x49, + 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x52, 0x0d, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x49, 0x64, + 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x12, 0x3d, 0x0a, 0x1b, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x5f, + 0x6c, 0x65, 0x61, 0x66, 0x5f, 0x63, 0x65, 0x72, 0x74, 0x5f, 0x66, 0x69, 0x6e, 0x67, 0x65, 0x72, + 0x70, 0x72, 0x69, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x18, 0x6c, 0x6f, 0x63, + 0x61, 0x6c, 0x4c, 0x65, 0x61, 0x66, 0x43, 0x65, 0x72, 0x74, 0x46, 0x69, 0x6e, 0x67, 0x65, 0x72, + 0x70, 0x72, 0x69, 0x6e, 0x74, 0x4a, 0x04, 0x08, 0x05, 0x10, 0x06, 0x4a, 0x04, 0x08, 0x07, 0x10, + 0x08, 0x4a, 0x04, 0x08, 0x08, 0x10, 0x09, 0x42, 0x3e, 0x5a, 0x3c, 0x67, 0x69, 0x74, 0x68, 0x75, + 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x73, 0x32, 0x61, + 0x2f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, + 0x76, 0x32, 0x2f, 0x73, 0x32, 0x61, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x5f, 0x67, + 0x6f, 0x5f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -195,12 +196,12 @@ func file_internal_proto_v2_s2a_context_s2a_context_proto_rawDescGZIP() []byte { } var file_internal_proto_v2_s2a_context_s2a_context_proto_msgTypes = make([]protoimpl.MessageInfo, 1) -var file_internal_proto_v2_s2a_context_s2a_context_proto_goTypes = []interface{}{ +var file_internal_proto_v2_s2a_context_s2a_context_proto_goTypes = []any{ (*S2AContext)(nil), // 0: s2a.proto.v2.S2AContext - (*common_go_proto.Identity)(nil), // 1: s2a.proto.Identity + (*common_go_proto.Identity)(nil), // 1: s2a.proto.v2.Identity } var file_internal_proto_v2_s2a_context_s2a_context_proto_depIdxs = []int32{ - 1, // 0: s2a.proto.v2.S2AContext.local_identity:type_name -> s2a.proto.Identity + 1, // 0: s2a.proto.v2.S2AContext.local_identity:type_name -> s2a.proto.v2.Identity 1, // [1:1] is the sub-list for method output_type 1, // [1:1] is the sub-list for method input_type 1, // [1:1] is the sub-list for extension type_name @@ -214,7 +215,7 @@ func file_internal_proto_v2_s2a_context_s2a_context_proto_init() { return } if !protoimpl.UnsafeEnabled { - file_internal_proto_v2_s2a_context_s2a_context_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + file_internal_proto_v2_s2a_context_s2a_context_proto_msgTypes[0].Exporter = func(v any, i int) any { switch v := v.(*S2AContext); i { case 0: return &v.state diff --git a/vendor/github.com/google/s2a-go/internal/proto/v2/s2a_go_proto/s2a.pb.go b/vendor/github.com/google/s2a-go/internal/proto/v2/s2a_go_proto/s2a.pb.go index e843450c7..f47c77a2b 100644 --- a/vendor/github.com/google/s2a-go/internal/proto/v2/s2a_go_proto/s2a.pb.go +++ b/vendor/github.com/google/s2a-go/internal/proto/v2/s2a_go_proto/s2a.pb.go @@ -14,14 +14,13 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.30.0 +// protoc-gen-go v1.34.2 // protoc v3.21.12 // source: internal/proto/v2/s2a/s2a.proto package s2a_go_proto import ( - common_go_proto1 "github.com/google/s2a-go/internal/proto/common_go_proto" common_go_proto "github.com/google/s2a-go/internal/proto/v2/common_go_proto" s2a_context_go_proto "github.com/google/s2a-go/internal/proto/v2/s2a_context_go_proto" protoreflect "google.golang.org/protobuf/reflect/protoreflect" @@ -292,6 +291,14 @@ const ( // The connect-to-Google verification mode uses the trust bundle for // connecting to Google, e.g. *.mtls.googleapis.com endpoints. ValidatePeerCertificateChainReq_CONNECT_TO_GOOGLE ValidatePeerCertificateChainReq_VerificationMode = 2 + // Internal use only. + ValidatePeerCertificateChainReq_RESERVED_CUSTOM_VERIFICATION_MODE_3 ValidatePeerCertificateChainReq_VerificationMode = 3 + // Internal use only. + ValidatePeerCertificateChainReq_RESERVED_CUSTOM_VERIFICATION_MODE_4 ValidatePeerCertificateChainReq_VerificationMode = 4 + // Internal use only. + ValidatePeerCertificateChainReq_RESERVED_CUSTOM_VERIFICATION_MODE_5 ValidatePeerCertificateChainReq_VerificationMode = 5 + // Internal use only. + ValidatePeerCertificateChainReq_RESERVED_CUSTOM_VERIFICATION_MODE_6 ValidatePeerCertificateChainReq_VerificationMode = 6 ) // Enum value maps for ValidatePeerCertificateChainReq_VerificationMode. @@ -300,11 +307,19 @@ var ( 0: "UNSPECIFIED", 1: "SPIFFE", 2: "CONNECT_TO_GOOGLE", + 3: "RESERVED_CUSTOM_VERIFICATION_MODE_3", + 4: "RESERVED_CUSTOM_VERIFICATION_MODE_4", + 5: "RESERVED_CUSTOM_VERIFICATION_MODE_5", + 6: "RESERVED_CUSTOM_VERIFICATION_MODE_6", } ValidatePeerCertificateChainReq_VerificationMode_value = map[string]int32{ - "UNSPECIFIED": 0, - "SPIFFE": 1, - "CONNECT_TO_GOOGLE": 2, + "UNSPECIFIED": 0, + "SPIFFE": 1, + "CONNECT_TO_GOOGLE": 2, + "RESERVED_CUSTOM_VERIFICATION_MODE_3": 3, + "RESERVED_CUSTOM_VERIFICATION_MODE_4": 4, + "RESERVED_CUSTOM_VERIFICATION_MODE_5": 5, + "RESERVED_CUSTOM_VERIFICATION_MODE_6": 6, } ) @@ -454,7 +469,7 @@ type AuthenticationMechanism struct { // mechanism. Otherwise, S2A assumes that the authentication mechanism is // associated with the default identity. If the default identity cannot be // determined, the request is rejected. - Identity *common_go_proto1.Identity `protobuf:"bytes,1,opt,name=identity,proto3" json:"identity,omitempty"` + Identity *common_go_proto.Identity `protobuf:"bytes,3,opt,name=identity,proto3" json:"identity,omitempty"` // Types that are assignable to MechanismOneof: // // *AuthenticationMechanism_Token @@ -493,7 +508,7 @@ func (*AuthenticationMechanism) Descriptor() ([]byte, []int) { return file_internal_proto_v2_s2a_s2a_proto_rawDescGZIP(), []int{1} } -func (x *AuthenticationMechanism) GetIdentity() *common_go_proto1.Identity { +func (x *AuthenticationMechanism) GetIdentity() *common_go_proto.Identity { if x != nil { return x.Identity } @@ -1185,7 +1200,7 @@ type SessionReq struct { // identity is not populated, S2A will try to deduce the managed identity to // use from the SNI extension. If that also fails, S2A uses the default // identity (if one exists). - LocalIdentity *common_go_proto1.Identity `protobuf:"bytes,1,opt,name=local_identity,json=localIdentity,proto3" json:"local_identity,omitempty"` + LocalIdentity *common_go_proto.Identity `protobuf:"bytes,7,opt,name=local_identity,json=localIdentity,proto3" json:"local_identity,omitempty"` // The authentication mechanisms that the application wishes to use to // authenticate to S2A, ordered by preference. S2A will always use the first // authentication mechanism that matches the managed identity. @@ -1231,7 +1246,7 @@ func (*SessionReq) Descriptor() ([]byte, []int) { return file_internal_proto_v2_s2a_s2a_proto_rawDescGZIP(), []int{11} } -func (x *SessionReq) GetLocalIdentity() *common_go_proto1.Identity { +func (x *SessionReq) GetLocalIdentity() *common_go_proto.Identity { if x != nil { return x.LocalIdentity } @@ -1790,358 +1805,367 @@ var file_internal_proto_v2_s2a_s2a_proto_rawDesc = []byte{ 0x0a, 0x1f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x76, 0x32, 0x2f, 0x73, 0x32, 0x61, 0x2f, 0x73, 0x32, 0x61, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x0c, 0x73, 0x32, 0x61, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x76, 0x32, 0x1a, - 0x22, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, - 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2f, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x1a, 0x25, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x2f, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x2f, 0x76, 0x32, 0x2f, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2f, 0x63, 0x6f, - 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x2f, 0x69, 0x6e, 0x74, 0x65, - 0x72, 0x6e, 0x61, 0x6c, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x76, 0x32, 0x2f, 0x73, 0x32, - 0x61, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x2f, 0x73, 0x32, 0x61, 0x5f, 0x63, 0x6f, - 0x6e, 0x74, 0x65, 0x78, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x87, 0x01, 0x0a, 0x0a, - 0x41, 0x6c, 0x70, 0x6e, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x12, 0x36, 0x0a, 0x17, 0x65, 0x6e, - 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x61, 0x6c, 0x70, 0x6e, 0x5f, 0x6e, 0x65, 0x67, 0x6f, 0x74, 0x69, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x15, 0x65, 0x6e, 0x61, - 0x62, 0x6c, 0x65, 0x41, 0x6c, 0x70, 0x6e, 0x4e, 0x65, 0x67, 0x6f, 0x74, 0x69, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x12, 0x41, 0x0a, 0x0e, 0x61, 0x6c, 0x70, 0x6e, 0x5f, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x63, 0x6f, 0x6c, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x1a, 0x2e, 0x73, 0x32, 0x61, - 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x76, 0x32, 0x2e, 0x41, 0x6c, 0x70, 0x6e, 0x50, 0x72, - 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x52, 0x0d, 0x61, 0x6c, 0x70, 0x6e, 0x50, 0x72, 0x6f, 0x74, - 0x6f, 0x63, 0x6f, 0x6c, 0x73, 0x22, 0x75, 0x0a, 0x17, 0x41, 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, - 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x63, 0x68, 0x61, 0x6e, 0x69, 0x73, 0x6d, - 0x12, 0x2f, 0x0a, 0x08, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x73, 0x32, 0x61, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x49, - 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x52, 0x08, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, - 0x79, 0x12, 0x16, 0x0a, 0x05, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, - 0x48, 0x00, 0x52, 0x05, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x42, 0x11, 0x0a, 0x0f, 0x6d, 0x65, 0x63, - 0x68, 0x61, 0x6e, 0x69, 0x73, 0x6d, 0x5f, 0x6f, 0x6e, 0x65, 0x6f, 0x66, 0x22, 0x36, 0x0a, 0x06, - 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x0d, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x64, 0x65, - 0x74, 0x61, 0x69, 0x6c, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x64, 0x65, 0x74, - 0x61, 0x69, 0x6c, 0x73, 0x22, 0x71, 0x0a, 0x16, 0x47, 0x65, 0x74, 0x54, 0x6c, 0x73, 0x43, 0x6f, - 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x12, 0x45, - 0x0a, 0x0f, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x69, 0x64, - 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1c, 0x2e, 0x73, 0x32, 0x61, 0x2e, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x2e, 0x76, 0x32, 0x2e, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, - 0x6e, 0x53, 0x69, 0x64, 0x65, 0x52, 0x0e, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, - 0x6e, 0x53, 0x69, 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x73, 0x6e, 0x69, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x03, 0x73, 0x6e, 0x69, 0x22, 0xf1, 0x0b, 0x0a, 0x17, 0x47, 0x65, 0x74, 0x54, - 0x6c, 0x73, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, - 0x65, 0x73, 0x70, 0x12, 0x78, 0x0a, 0x18, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x74, 0x6c, - 0x73, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3c, 0x2e, 0x73, 0x32, 0x61, 0x2e, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x2e, 0x76, 0x32, 0x2e, 0x47, 0x65, 0x74, 0x54, 0x6c, 0x73, 0x43, 0x6f, 0x6e, 0x66, 0x69, - 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x2e, 0x43, 0x6c, 0x69, - 0x65, 0x6e, 0x74, 0x54, 0x6c, 0x73, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x16, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x54, 0x6c, 0x73, - 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x78, 0x0a, - 0x18, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x74, 0x6c, 0x73, 0x5f, 0x63, 0x6f, 0x6e, 0x66, - 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x3c, 0x2e, 0x73, 0x32, 0x61, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x76, 0x32, 0x2e, 0x47, - 0x65, 0x74, 0x54, 0x6c, 0x73, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x54, 0x6c, 0x73, - 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, - 0x16, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x54, 0x6c, 0x73, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, - 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x1a, 0xcf, 0x02, 0x0a, 0x16, 0x43, 0x6c, 0x69, 0x65, + 0x25, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, + 0x76, 0x32, 0x2f, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2f, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x2f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, + 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x76, 0x32, 0x2f, 0x73, 0x32, 0x61, 0x5f, 0x63, 0x6f, + 0x6e, 0x74, 0x65, 0x78, 0x74, 0x2f, 0x73, 0x32, 0x61, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, + 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x87, 0x01, 0x0a, 0x0a, 0x41, 0x6c, 0x70, 0x6e, + 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x12, 0x36, 0x0a, 0x17, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, + 0x5f, 0x61, 0x6c, 0x70, 0x6e, 0x5f, 0x6e, 0x65, 0x67, 0x6f, 0x74, 0x69, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x15, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x41, + 0x6c, 0x70, 0x6e, 0x4e, 0x65, 0x67, 0x6f, 0x74, 0x69, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x41, + 0x0a, 0x0e, 0x61, 0x6c, 0x70, 0x6e, 0x5f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x73, + 0x18, 0x02, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x1a, 0x2e, 0x73, 0x32, 0x61, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x2e, 0x76, 0x32, 0x2e, 0x41, 0x6c, 0x70, 0x6e, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, + 0x6f, 0x6c, 0x52, 0x0d, 0x61, 0x6c, 0x70, 0x6e, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, + 0x73, 0x22, 0x7e, 0x0a, 0x17, 0x41, 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x63, 0x68, 0x61, 0x6e, 0x69, 0x73, 0x6d, 0x12, 0x32, 0x0a, 0x08, + 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, + 0x2e, 0x73, 0x32, 0x61, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x76, 0x32, 0x2e, 0x49, 0x64, + 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x52, 0x08, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, + 0x12, 0x16, 0x0a, 0x05, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, + 0x00, 0x52, 0x05, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x42, 0x11, 0x0a, 0x0f, 0x6d, 0x65, 0x63, 0x68, + 0x61, 0x6e, 0x69, 0x73, 0x6d, 0x5f, 0x6f, 0x6e, 0x65, 0x6f, 0x66, 0x4a, 0x04, 0x08, 0x01, 0x10, + 0x02, 0x22, 0x36, 0x0a, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x63, + 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x12, + 0x18, 0x0a, 0x07, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x07, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x22, 0x71, 0x0a, 0x16, 0x47, 0x65, 0x74, + 0x54, 0x6c, 0x73, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x52, 0x65, 0x71, 0x12, 0x45, 0x0a, 0x0f, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x5f, 0x73, 0x69, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1c, 0x2e, 0x73, + 0x32, 0x61, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x76, 0x32, 0x2e, 0x43, 0x6f, 0x6e, 0x6e, + 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x69, 0x64, 0x65, 0x52, 0x0e, 0x63, 0x6f, 0x6e, 0x6e, + 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x69, 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x73, 0x6e, + 0x69, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x73, 0x6e, 0x69, 0x22, 0xf1, 0x0b, 0x0a, + 0x17, 0x47, 0x65, 0x74, 0x54, 0x6c, 0x73, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x12, 0x78, 0x0a, 0x18, 0x63, 0x6c, 0x69, 0x65, + 0x6e, 0x74, 0x5f, 0x74, 0x6c, 0x73, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3c, 0x2e, 0x73, 0x32, 0x61, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x76, 0x32, 0x2e, 0x47, 0x65, 0x74, 0x54, 0x6c, 0x73, + 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, + 0x70, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x54, 0x6c, 0x73, 0x43, 0x6f, 0x6e, 0x66, 0x69, + 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x16, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x54, 0x6c, 0x73, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x12, 0x2b, 0x0a, 0x11, 0x63, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, - 0x65, 0x5f, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x10, 0x63, - 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x12, - 0x40, 0x0a, 0x0f, 0x6d, 0x69, 0x6e, 0x5f, 0x74, 0x6c, 0x73, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, - 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x18, 0x2e, 0x73, 0x32, 0x61, 0x2e, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x76, 0x32, 0x2e, 0x54, 0x4c, 0x53, 0x56, 0x65, 0x72, 0x73, 0x69, - 0x6f, 0x6e, 0x52, 0x0d, 0x6d, 0x69, 0x6e, 0x54, 0x6c, 0x73, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, - 0x6e, 0x12, 0x40, 0x0a, 0x0f, 0x6d, 0x61, 0x78, 0x5f, 0x74, 0x6c, 0x73, 0x5f, 0x76, 0x65, 0x72, - 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x18, 0x2e, 0x73, 0x32, 0x61, - 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x76, 0x32, 0x2e, 0x54, 0x4c, 0x53, 0x56, 0x65, 0x72, - 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x0d, 0x6d, 0x61, 0x78, 0x54, 0x6c, 0x73, 0x56, 0x65, 0x72, 0x73, - 0x69, 0x6f, 0x6e, 0x12, 0x3d, 0x0a, 0x0c, 0x63, 0x69, 0x70, 0x68, 0x65, 0x72, 0x73, 0x75, 0x69, - 0x74, 0x65, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x19, 0x2e, 0x73, 0x32, 0x61, 0x2e, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x76, 0x32, 0x2e, 0x43, 0x69, 0x70, 0x68, 0x65, 0x72, 0x73, - 0x75, 0x69, 0x74, 0x65, 0x52, 0x0c, 0x63, 0x69, 0x70, 0x68, 0x65, 0x72, 0x73, 0x75, 0x69, 0x74, - 0x65, 0x73, 0x12, 0x39, 0x0a, 0x0b, 0x61, 0x6c, 0x70, 0x6e, 0x5f, 0x70, 0x6f, 0x6c, 0x69, 0x63, - 0x79, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x73, 0x32, 0x61, 0x2e, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x2e, 0x76, 0x32, 0x2e, 0x41, 0x6c, 0x70, 0x6e, 0x50, 0x6f, 0x6c, 0x69, 0x63, - 0x79, 0x52, 0x0a, 0x61, 0x6c, 0x70, 0x6e, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x4a, 0x04, 0x08, - 0x04, 0x10, 0x05, 0x4a, 0x04, 0x08, 0x05, 0x10, 0x06, 0x1a, 0xfa, 0x06, 0x0a, 0x16, 0x53, 0x65, - 0x72, 0x76, 0x65, 0x72, 0x54, 0x6c, 0x73, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x2b, 0x0a, 0x11, 0x63, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, - 0x61, 0x74, 0x65, 0x5f, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, - 0x10, 0x63, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x43, 0x68, 0x61, 0x69, - 0x6e, 0x12, 0x40, 0x0a, 0x0f, 0x6d, 0x69, 0x6e, 0x5f, 0x74, 0x6c, 0x73, 0x5f, 0x76, 0x65, 0x72, - 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x18, 0x2e, 0x73, 0x32, 0x61, - 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x76, 0x32, 0x2e, 0x54, 0x4c, 0x53, 0x56, 0x65, 0x72, - 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x0d, 0x6d, 0x69, 0x6e, 0x54, 0x6c, 0x73, 0x56, 0x65, 0x72, 0x73, - 0x69, 0x6f, 0x6e, 0x12, 0x40, 0x0a, 0x0f, 0x6d, 0x61, 0x78, 0x5f, 0x74, 0x6c, 0x73, 0x5f, 0x76, - 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x18, 0x2e, 0x73, - 0x32, 0x61, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x76, 0x32, 0x2e, 0x54, 0x4c, 0x53, 0x56, - 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x0d, 0x6d, 0x61, 0x78, 0x54, 0x6c, 0x73, 0x56, 0x65, - 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x3d, 0x0a, 0x0c, 0x63, 0x69, 0x70, 0x68, 0x65, 0x72, 0x73, - 0x75, 0x69, 0x74, 0x65, 0x73, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x19, 0x2e, 0x73, 0x32, - 0x61, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x76, 0x32, 0x2e, 0x43, 0x69, 0x70, 0x68, 0x65, - 0x72, 0x73, 0x75, 0x69, 0x74, 0x65, 0x52, 0x0c, 0x63, 0x69, 0x70, 0x68, 0x65, 0x72, 0x73, 0x75, - 0x69, 0x74, 0x65, 0x73, 0x12, 0x34, 0x0a, 0x16, 0x74, 0x6c, 0x73, 0x5f, 0x72, 0x65, 0x73, 0x75, - 0x6d, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x06, - 0x20, 0x01, 0x28, 0x08, 0x52, 0x14, 0x74, 0x6c, 0x73, 0x52, 0x65, 0x73, 0x75, 0x6d, 0x70, 0x74, - 0x69, 0x6f, 0x6e, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x12, 0x93, 0x01, 0x0a, 0x1a, 0x72, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x63, 0x65, - 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0e, 0x32, - 0x55, 0x2e, 0x73, 0x32, 0x61, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x76, 0x32, 0x2e, 0x47, - 0x65, 0x74, 0x54, 0x6c, 0x73, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x54, 0x6c, 0x73, - 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x43, 0x65, 0x72, 0x74, 0x69, - 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x52, 0x18, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x43, - 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x43, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, - 0x12, 0x3c, 0x0a, 0x1b, 0x6d, 0x61, 0x78, 0x5f, 0x6f, 0x76, 0x65, 0x72, 0x68, 0x65, 0x61, 0x64, - 0x5f, 0x6f, 0x66, 0x5f, 0x74, 0x69, 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x61, 0x65, 0x61, 0x64, 0x18, - 0x09, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x17, 0x6d, 0x61, 0x78, 0x4f, 0x76, 0x65, 0x72, 0x68, 0x65, - 0x61, 0x64, 0x4f, 0x66, 0x54, 0x69, 0x63, 0x6b, 0x65, 0x74, 0x41, 0x65, 0x61, 0x64, 0x12, 0x39, - 0x0a, 0x0b, 0x61, 0x6c, 0x70, 0x6e, 0x5f, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x18, 0x0b, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x73, 0x32, 0x61, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, - 0x76, 0x32, 0x2e, 0x41, 0x6c, 0x70, 0x6e, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x52, 0x0a, 0x61, - 0x6c, 0x70, 0x6e, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x22, 0x9e, 0x02, 0x0a, 0x18, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x43, 0x65, 0x72, 0x74, 0x69, - 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x12, 0x0f, 0x0a, 0x0b, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, - 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x23, 0x0a, 0x1f, 0x44, 0x4f, 0x4e, 0x54, 0x5f, - 0x52, 0x45, 0x51, 0x55, 0x45, 0x53, 0x54, 0x5f, 0x43, 0x4c, 0x49, 0x45, 0x4e, 0x54, 0x5f, 0x43, - 0x45, 0x52, 0x54, 0x49, 0x46, 0x49, 0x43, 0x41, 0x54, 0x45, 0x10, 0x01, 0x12, 0x2e, 0x0a, 0x2a, - 0x52, 0x45, 0x51, 0x55, 0x45, 0x53, 0x54, 0x5f, 0x43, 0x4c, 0x49, 0x45, 0x4e, 0x54, 0x5f, 0x43, - 0x45, 0x52, 0x54, 0x49, 0x46, 0x49, 0x43, 0x41, 0x54, 0x45, 0x5f, 0x42, 0x55, 0x54, 0x5f, 0x44, - 0x4f, 0x4e, 0x54, 0x5f, 0x56, 0x45, 0x52, 0x49, 0x46, 0x59, 0x10, 0x02, 0x12, 0x29, 0x0a, 0x25, - 0x52, 0x45, 0x51, 0x55, 0x45, 0x53, 0x54, 0x5f, 0x43, 0x4c, 0x49, 0x45, 0x4e, 0x54, 0x5f, 0x43, - 0x45, 0x52, 0x54, 0x49, 0x46, 0x49, 0x43, 0x41, 0x54, 0x45, 0x5f, 0x41, 0x4e, 0x44, 0x5f, 0x56, - 0x45, 0x52, 0x49, 0x46, 0x59, 0x10, 0x03, 0x12, 0x3a, 0x0a, 0x36, 0x52, 0x45, 0x51, 0x55, 0x45, - 0x53, 0x54, 0x5f, 0x41, 0x4e, 0x44, 0x5f, 0x52, 0x45, 0x51, 0x55, 0x49, 0x52, 0x45, 0x5f, 0x43, - 0x4c, 0x49, 0x45, 0x4e, 0x54, 0x5f, 0x43, 0x45, 0x52, 0x54, 0x49, 0x46, 0x49, 0x43, 0x41, 0x54, - 0x45, 0x5f, 0x42, 0x55, 0x54, 0x5f, 0x44, 0x4f, 0x4e, 0x54, 0x5f, 0x56, 0x45, 0x52, 0x49, 0x46, - 0x59, 0x10, 0x04, 0x12, 0x35, 0x0a, 0x31, 0x52, 0x45, 0x51, 0x55, 0x45, 0x53, 0x54, 0x5f, 0x41, - 0x4e, 0x44, 0x5f, 0x52, 0x45, 0x51, 0x55, 0x49, 0x52, 0x45, 0x5f, 0x43, 0x4c, 0x49, 0x45, 0x4e, - 0x54, 0x5f, 0x43, 0x45, 0x52, 0x54, 0x49, 0x46, 0x49, 0x43, 0x41, 0x54, 0x45, 0x5f, 0x41, 0x4e, - 0x44, 0x5f, 0x56, 0x45, 0x52, 0x49, 0x46, 0x59, 0x10, 0x05, 0x4a, 0x04, 0x08, 0x04, 0x10, 0x05, - 0x4a, 0x04, 0x08, 0x05, 0x10, 0x06, 0x42, 0x13, 0x0a, 0x11, 0x74, 0x6c, 0x73, 0x5f, 0x63, 0x6f, - 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0xb0, 0x03, 0x0a, 0x1d, - 0x4f, 0x66, 0x66, 0x6c, 0x6f, 0x61, 0x64, 0x50, 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, 0x4b, 0x65, - 0x79, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x12, 0x5d, 0x0a, - 0x09, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, - 0x32, 0x3f, 0x2e, 0x73, 0x32, 0x61, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x76, 0x32, 0x2e, - 0x4f, 0x66, 0x66, 0x6c, 0x6f, 0x61, 0x64, 0x50, 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, 0x4b, 0x65, - 0x79, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x2e, 0x50, 0x72, + 0x6f, 0x6e, 0x12, 0x78, 0x0a, 0x18, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x74, 0x6c, 0x73, + 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3c, 0x2e, 0x73, 0x32, 0x61, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x2e, 0x76, 0x32, 0x2e, 0x47, 0x65, 0x74, 0x54, 0x6c, 0x73, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, + 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x2e, 0x53, 0x65, 0x72, 0x76, + 0x65, 0x72, 0x54, 0x6c, 0x73, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x16, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x54, 0x6c, 0x73, 0x43, + 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x1a, 0xcf, 0x02, 0x0a, + 0x16, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x54, 0x6c, 0x73, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, + 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x2b, 0x0a, 0x11, 0x63, 0x65, 0x72, 0x74, 0x69, + 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x5f, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x18, 0x01, 0x20, 0x03, + 0x28, 0x09, 0x52, 0x10, 0x63, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x43, + 0x68, 0x61, 0x69, 0x6e, 0x12, 0x40, 0x0a, 0x0f, 0x6d, 0x69, 0x6e, 0x5f, 0x74, 0x6c, 0x73, 0x5f, + 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x18, 0x2e, + 0x73, 0x32, 0x61, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x76, 0x32, 0x2e, 0x54, 0x4c, 0x53, + 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x0d, 0x6d, 0x69, 0x6e, 0x54, 0x6c, 0x73, 0x56, + 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x40, 0x0a, 0x0f, 0x6d, 0x61, 0x78, 0x5f, 0x74, 0x6c, + 0x73, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, + 0x18, 0x2e, 0x73, 0x32, 0x61, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x76, 0x32, 0x2e, 0x54, + 0x4c, 0x53, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x0d, 0x6d, 0x61, 0x78, 0x54, 0x6c, + 0x73, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x3d, 0x0a, 0x0c, 0x63, 0x69, 0x70, 0x68, + 0x65, 0x72, 0x73, 0x75, 0x69, 0x74, 0x65, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x19, + 0x2e, 0x73, 0x32, 0x61, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x76, 0x32, 0x2e, 0x43, 0x69, + 0x70, 0x68, 0x65, 0x72, 0x73, 0x75, 0x69, 0x74, 0x65, 0x52, 0x0c, 0x63, 0x69, 0x70, 0x68, 0x65, + 0x72, 0x73, 0x75, 0x69, 0x74, 0x65, 0x73, 0x12, 0x39, 0x0a, 0x0b, 0x61, 0x6c, 0x70, 0x6e, 0x5f, + 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x73, + 0x32, 0x61, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x76, 0x32, 0x2e, 0x41, 0x6c, 0x70, 0x6e, + 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x52, 0x0a, 0x61, 0x6c, 0x70, 0x6e, 0x50, 0x6f, 0x6c, 0x69, + 0x63, 0x79, 0x4a, 0x04, 0x08, 0x04, 0x10, 0x05, 0x4a, 0x04, 0x08, 0x05, 0x10, 0x06, 0x1a, 0xfa, + 0x06, 0x0a, 0x16, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x54, 0x6c, 0x73, 0x43, 0x6f, 0x6e, 0x66, + 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x2b, 0x0a, 0x11, 0x63, 0x65, 0x72, + 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x5f, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x18, 0x01, + 0x20, 0x03, 0x28, 0x09, 0x52, 0x10, 0x63, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, + 0x65, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x12, 0x40, 0x0a, 0x0f, 0x6d, 0x69, 0x6e, 0x5f, 0x74, 0x6c, + 0x73, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, + 0x18, 0x2e, 0x73, 0x32, 0x61, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x76, 0x32, 0x2e, 0x54, + 0x4c, 0x53, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x0d, 0x6d, 0x69, 0x6e, 0x54, 0x6c, + 0x73, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x40, 0x0a, 0x0f, 0x6d, 0x61, 0x78, 0x5f, + 0x74, 0x6c, 0x73, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x0e, 0x32, 0x18, 0x2e, 0x73, 0x32, 0x61, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x76, 0x32, + 0x2e, 0x54, 0x4c, 0x53, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x0d, 0x6d, 0x61, 0x78, + 0x54, 0x6c, 0x73, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x3d, 0x0a, 0x0c, 0x63, 0x69, + 0x70, 0x68, 0x65, 0x72, 0x73, 0x75, 0x69, 0x74, 0x65, 0x73, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x0e, + 0x32, 0x19, 0x2e, 0x73, 0x32, 0x61, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x76, 0x32, 0x2e, + 0x43, 0x69, 0x70, 0x68, 0x65, 0x72, 0x73, 0x75, 0x69, 0x74, 0x65, 0x52, 0x0c, 0x63, 0x69, 0x70, + 0x68, 0x65, 0x72, 0x73, 0x75, 0x69, 0x74, 0x65, 0x73, 0x12, 0x34, 0x0a, 0x16, 0x74, 0x6c, 0x73, + 0x5f, 0x72, 0x65, 0x73, 0x75, 0x6d, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x65, 0x6e, 0x61, 0x62, + 0x6c, 0x65, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x14, 0x74, 0x6c, 0x73, 0x52, 0x65, + 0x73, 0x75, 0x6d, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x12, + 0x93, 0x01, 0x0a, 0x1a, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x63, 0x6c, 0x69, 0x65, + 0x6e, 0x74, 0x5f, 0x63, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x18, 0x07, + 0x20, 0x01, 0x28, 0x0e, 0x32, 0x55, 0x2e, 0x73, 0x32, 0x61, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x2e, 0x76, 0x32, 0x2e, 0x47, 0x65, 0x74, 0x54, 0x6c, 0x73, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, + 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x2e, 0x53, 0x65, 0x72, 0x76, + 0x65, 0x72, 0x54, 0x6c, 0x73, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x2e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, + 0x43, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x52, 0x18, 0x72, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x43, 0x65, 0x72, 0x74, 0x69, 0x66, + 0x69, 0x63, 0x61, 0x74, 0x65, 0x12, 0x3c, 0x0a, 0x1b, 0x6d, 0x61, 0x78, 0x5f, 0x6f, 0x76, 0x65, + 0x72, 0x68, 0x65, 0x61, 0x64, 0x5f, 0x6f, 0x66, 0x5f, 0x74, 0x69, 0x63, 0x6b, 0x65, 0x74, 0x5f, + 0x61, 0x65, 0x61, 0x64, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x17, 0x6d, 0x61, 0x78, 0x4f, + 0x76, 0x65, 0x72, 0x68, 0x65, 0x61, 0x64, 0x4f, 0x66, 0x54, 0x69, 0x63, 0x6b, 0x65, 0x74, 0x41, + 0x65, 0x61, 0x64, 0x12, 0x39, 0x0a, 0x0b, 0x61, 0x6c, 0x70, 0x6e, 0x5f, 0x70, 0x6f, 0x6c, 0x69, + 0x63, 0x79, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x73, 0x32, 0x61, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x76, 0x32, 0x2e, 0x41, 0x6c, 0x70, 0x6e, 0x50, 0x6f, 0x6c, 0x69, + 0x63, 0x79, 0x52, 0x0a, 0x61, 0x6c, 0x70, 0x6e, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x22, 0x9e, + 0x02, 0x0a, 0x18, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, + 0x43, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x12, 0x0f, 0x0a, 0x0b, 0x55, + 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x23, 0x0a, 0x1f, + 0x44, 0x4f, 0x4e, 0x54, 0x5f, 0x52, 0x45, 0x51, 0x55, 0x45, 0x53, 0x54, 0x5f, 0x43, 0x4c, 0x49, + 0x45, 0x4e, 0x54, 0x5f, 0x43, 0x45, 0x52, 0x54, 0x49, 0x46, 0x49, 0x43, 0x41, 0x54, 0x45, 0x10, + 0x01, 0x12, 0x2e, 0x0a, 0x2a, 0x52, 0x45, 0x51, 0x55, 0x45, 0x53, 0x54, 0x5f, 0x43, 0x4c, 0x49, + 0x45, 0x4e, 0x54, 0x5f, 0x43, 0x45, 0x52, 0x54, 0x49, 0x46, 0x49, 0x43, 0x41, 0x54, 0x45, 0x5f, + 0x42, 0x55, 0x54, 0x5f, 0x44, 0x4f, 0x4e, 0x54, 0x5f, 0x56, 0x45, 0x52, 0x49, 0x46, 0x59, 0x10, + 0x02, 0x12, 0x29, 0x0a, 0x25, 0x52, 0x45, 0x51, 0x55, 0x45, 0x53, 0x54, 0x5f, 0x43, 0x4c, 0x49, + 0x45, 0x4e, 0x54, 0x5f, 0x43, 0x45, 0x52, 0x54, 0x49, 0x46, 0x49, 0x43, 0x41, 0x54, 0x45, 0x5f, + 0x41, 0x4e, 0x44, 0x5f, 0x56, 0x45, 0x52, 0x49, 0x46, 0x59, 0x10, 0x03, 0x12, 0x3a, 0x0a, 0x36, + 0x52, 0x45, 0x51, 0x55, 0x45, 0x53, 0x54, 0x5f, 0x41, 0x4e, 0x44, 0x5f, 0x52, 0x45, 0x51, 0x55, + 0x49, 0x52, 0x45, 0x5f, 0x43, 0x4c, 0x49, 0x45, 0x4e, 0x54, 0x5f, 0x43, 0x45, 0x52, 0x54, 0x49, + 0x46, 0x49, 0x43, 0x41, 0x54, 0x45, 0x5f, 0x42, 0x55, 0x54, 0x5f, 0x44, 0x4f, 0x4e, 0x54, 0x5f, + 0x56, 0x45, 0x52, 0x49, 0x46, 0x59, 0x10, 0x04, 0x12, 0x35, 0x0a, 0x31, 0x52, 0x45, 0x51, 0x55, + 0x45, 0x53, 0x54, 0x5f, 0x41, 0x4e, 0x44, 0x5f, 0x52, 0x45, 0x51, 0x55, 0x49, 0x52, 0x45, 0x5f, + 0x43, 0x4c, 0x49, 0x45, 0x4e, 0x54, 0x5f, 0x43, 0x45, 0x52, 0x54, 0x49, 0x46, 0x49, 0x43, 0x41, + 0x54, 0x45, 0x5f, 0x41, 0x4e, 0x44, 0x5f, 0x56, 0x45, 0x52, 0x49, 0x46, 0x59, 0x10, 0x05, 0x4a, + 0x04, 0x08, 0x04, 0x10, 0x05, 0x4a, 0x04, 0x08, 0x05, 0x10, 0x06, 0x42, 0x13, 0x0a, 0x11, 0x74, + 0x6c, 0x73, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x22, 0xb0, 0x03, 0x0a, 0x1d, 0x4f, 0x66, 0x66, 0x6c, 0x6f, 0x61, 0x64, 0x50, 0x72, 0x69, 0x76, + 0x61, 0x74, 0x65, 0x4b, 0x65, 0x79, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, + 0x65, 0x71, 0x12, 0x5d, 0x0a, 0x09, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x3f, 0x2e, 0x73, 0x32, 0x61, 0x2e, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x2e, 0x76, 0x32, 0x2e, 0x4f, 0x66, 0x66, 0x6c, 0x6f, 0x61, 0x64, 0x50, 0x72, 0x69, 0x76, + 0x61, 0x74, 0x65, 0x4b, 0x65, 0x79, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, + 0x65, 0x71, 0x2e, 0x50, 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, 0x4b, 0x65, 0x79, 0x4f, 0x70, 0x65, + 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x09, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x12, 0x51, 0x0a, 0x13, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x5f, 0x61, + 0x6c, 0x67, 0x6f, 0x72, 0x69, 0x74, 0x68, 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x20, + 0x2e, 0x73, 0x32, 0x61, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x76, 0x32, 0x2e, 0x53, 0x69, + 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x41, 0x6c, 0x67, 0x6f, 0x72, 0x69, 0x74, 0x68, 0x6d, + 0x52, 0x12, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x41, 0x6c, 0x67, 0x6f, 0x72, + 0x69, 0x74, 0x68, 0x6d, 0x12, 0x1d, 0x0a, 0x09, 0x72, 0x61, 0x77, 0x5f, 0x62, 0x79, 0x74, 0x65, + 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0c, 0x48, 0x00, 0x52, 0x08, 0x72, 0x61, 0x77, 0x42, 0x79, + 0x74, 0x65, 0x73, 0x12, 0x25, 0x0a, 0x0d, 0x73, 0x68, 0x61, 0x32, 0x35, 0x36, 0x5f, 0x64, 0x69, + 0x67, 0x65, 0x73, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0c, 0x48, 0x00, 0x52, 0x0c, 0x73, 0x68, + 0x61, 0x32, 0x35, 0x36, 0x44, 0x69, 0x67, 0x65, 0x73, 0x74, 0x12, 0x25, 0x0a, 0x0d, 0x73, 0x68, + 0x61, 0x33, 0x38, 0x34, 0x5f, 0x64, 0x69, 0x67, 0x65, 0x73, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, + 0x0c, 0x48, 0x00, 0x52, 0x0c, 0x73, 0x68, 0x61, 0x33, 0x38, 0x34, 0x44, 0x69, 0x67, 0x65, 0x73, + 0x74, 0x12, 0x25, 0x0a, 0x0d, 0x73, 0x68, 0x61, 0x35, 0x31, 0x32, 0x5f, 0x64, 0x69, 0x67, 0x65, + 0x73, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0c, 0x48, 0x00, 0x52, 0x0c, 0x73, 0x68, 0x61, 0x35, + 0x31, 0x32, 0x44, 0x69, 0x67, 0x65, 0x73, 0x74, 0x22, 0x3d, 0x0a, 0x13, 0x50, 0x72, 0x69, 0x76, + 0x61, 0x74, 0x65, 0x4b, 0x65, 0x79, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, + 0x0f, 0x0a, 0x0b, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, + 0x12, 0x08, 0x0a, 0x04, 0x53, 0x49, 0x47, 0x4e, 0x10, 0x01, 0x12, 0x0b, 0x0a, 0x07, 0x44, 0x45, + 0x43, 0x52, 0x59, 0x50, 0x54, 0x10, 0x02, 0x42, 0x0a, 0x0a, 0x08, 0x69, 0x6e, 0x5f, 0x62, 0x79, + 0x74, 0x65, 0x73, 0x22, 0x3d, 0x0a, 0x1e, 0x4f, 0x66, 0x66, 0x6c, 0x6f, 0x61, 0x64, 0x50, 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, 0x4b, 0x65, 0x79, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x52, 0x09, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x51, 0x0a, 0x13, - 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x5f, 0x61, 0x6c, 0x67, 0x6f, 0x72, 0x69, - 0x74, 0x68, 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x20, 0x2e, 0x73, 0x32, 0x61, 0x2e, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x76, 0x32, 0x2e, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, - 0x72, 0x65, 0x41, 0x6c, 0x67, 0x6f, 0x72, 0x69, 0x74, 0x68, 0x6d, 0x52, 0x12, 0x73, 0x69, 0x67, - 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x41, 0x6c, 0x67, 0x6f, 0x72, 0x69, 0x74, 0x68, 0x6d, 0x12, - 0x1d, 0x0a, 0x09, 0x72, 0x61, 0x77, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x18, 0x04, 0x20, 0x01, - 0x28, 0x0c, 0x48, 0x00, 0x52, 0x08, 0x72, 0x61, 0x77, 0x42, 0x79, 0x74, 0x65, 0x73, 0x12, 0x25, - 0x0a, 0x0d, 0x73, 0x68, 0x61, 0x32, 0x35, 0x36, 0x5f, 0x64, 0x69, 0x67, 0x65, 0x73, 0x74, 0x18, - 0x05, 0x20, 0x01, 0x28, 0x0c, 0x48, 0x00, 0x52, 0x0c, 0x73, 0x68, 0x61, 0x32, 0x35, 0x36, 0x44, - 0x69, 0x67, 0x65, 0x73, 0x74, 0x12, 0x25, 0x0a, 0x0d, 0x73, 0x68, 0x61, 0x33, 0x38, 0x34, 0x5f, - 0x64, 0x69, 0x67, 0x65, 0x73, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0c, 0x48, 0x00, 0x52, 0x0c, - 0x73, 0x68, 0x61, 0x33, 0x38, 0x34, 0x44, 0x69, 0x67, 0x65, 0x73, 0x74, 0x12, 0x25, 0x0a, 0x0d, - 0x73, 0x68, 0x61, 0x35, 0x31, 0x32, 0x5f, 0x64, 0x69, 0x67, 0x65, 0x73, 0x74, 0x18, 0x07, 0x20, - 0x01, 0x28, 0x0c, 0x48, 0x00, 0x52, 0x0c, 0x73, 0x68, 0x61, 0x35, 0x31, 0x32, 0x44, 0x69, 0x67, - 0x65, 0x73, 0x74, 0x22, 0x3d, 0x0a, 0x13, 0x50, 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, 0x4b, 0x65, - 0x79, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x0f, 0x0a, 0x0b, 0x55, 0x4e, - 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, 0x53, - 0x49, 0x47, 0x4e, 0x10, 0x01, 0x12, 0x0b, 0x0a, 0x07, 0x44, 0x45, 0x43, 0x52, 0x59, 0x50, 0x54, - 0x10, 0x02, 0x42, 0x0a, 0x0a, 0x08, 0x69, 0x6e, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x22, 0x3d, - 0x0a, 0x1e, 0x4f, 0x66, 0x66, 0x6c, 0x6f, 0x61, 0x64, 0x50, 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, - 0x4b, 0x65, 0x79, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, - 0x12, 0x1b, 0x0a, 0x09, 0x6f, 0x75, 0x74, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x0c, 0x52, 0x08, 0x6f, 0x75, 0x74, 0x42, 0x79, 0x74, 0x65, 0x73, 0x22, 0xe7, 0x01, - 0x0a, 0x20, 0x4f, 0x66, 0x66, 0x6c, 0x6f, 0x61, 0x64, 0x52, 0x65, 0x73, 0x75, 0x6d, 0x70, 0x74, - 0x69, 0x6f, 0x6e, 0x4b, 0x65, 0x79, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, - 0x65, 0x71, 0x12, 0x63, 0x0a, 0x09, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x45, 0x2e, 0x73, 0x32, 0x61, 0x2e, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x2e, 0x76, 0x32, 0x2e, 0x4f, 0x66, 0x66, 0x6c, 0x6f, 0x61, 0x64, 0x52, 0x65, 0x73, 0x75, - 0x6d, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x4b, 0x65, 0x79, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x2e, 0x52, 0x65, 0x73, 0x75, 0x6d, 0x70, 0x74, 0x69, 0x6f, 0x6e, - 0x4b, 0x65, 0x79, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x09, 0x6f, 0x70, - 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x19, 0x0a, 0x08, 0x69, 0x6e, 0x5f, 0x62, 0x79, - 0x74, 0x65, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x07, 0x69, 0x6e, 0x42, 0x79, 0x74, - 0x65, 0x73, 0x22, 0x43, 0x0a, 0x16, 0x52, 0x65, 0x73, 0x75, 0x6d, 0x70, 0x74, 0x69, 0x6f, 0x6e, - 0x4b, 0x65, 0x79, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x0f, 0x0a, 0x0b, - 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x0b, 0x0a, - 0x07, 0x45, 0x4e, 0x43, 0x52, 0x59, 0x50, 0x54, 0x10, 0x01, 0x12, 0x0b, 0x0a, 0x07, 0x44, 0x45, - 0x43, 0x52, 0x59, 0x50, 0x54, 0x10, 0x02, 0x22, 0x40, 0x0a, 0x21, 0x4f, 0x66, 0x66, 0x6c, 0x6f, - 0x61, 0x64, 0x52, 0x65, 0x73, 0x75, 0x6d, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x4b, 0x65, 0x79, 0x4f, - 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x12, 0x1b, 0x0a, 0x09, - 0x6f, 0x75, 0x74, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, - 0x08, 0x6f, 0x75, 0x74, 0x42, 0x79, 0x74, 0x65, 0x73, 0x22, 0xf8, 0x04, 0x0a, 0x1f, 0x56, 0x61, - 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x50, 0x65, 0x65, 0x72, 0x43, 0x65, 0x72, 0x74, 0x69, 0x66, - 0x69, 0x63, 0x61, 0x74, 0x65, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x52, 0x65, 0x71, 0x12, 0x52, 0x0a, - 0x04, 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x3e, 0x2e, 0x73, 0x32, + 0x6e, 0x52, 0x65, 0x73, 0x70, 0x12, 0x1b, 0x0a, 0x09, 0x6f, 0x75, 0x74, 0x5f, 0x62, 0x79, 0x74, + 0x65, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x08, 0x6f, 0x75, 0x74, 0x42, 0x79, 0x74, + 0x65, 0x73, 0x22, 0xe7, 0x01, 0x0a, 0x20, 0x4f, 0x66, 0x66, 0x6c, 0x6f, 0x61, 0x64, 0x52, 0x65, + 0x73, 0x75, 0x6d, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x4b, 0x65, 0x79, 0x4f, 0x70, 0x65, 0x72, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x12, 0x63, 0x0a, 0x09, 0x6f, 0x70, 0x65, 0x72, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x45, 0x2e, 0x73, 0x32, 0x61, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x76, 0x32, 0x2e, 0x4f, 0x66, 0x66, 0x6c, 0x6f, 0x61, + 0x64, 0x52, 0x65, 0x73, 0x75, 0x6d, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x4b, 0x65, 0x79, 0x4f, 0x70, + 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x2e, 0x52, 0x65, 0x73, 0x75, 0x6d, + 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x4b, 0x65, 0x79, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x52, 0x09, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x19, 0x0a, 0x08, + 0x69, 0x6e, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x07, + 0x69, 0x6e, 0x42, 0x79, 0x74, 0x65, 0x73, 0x22, 0x43, 0x0a, 0x16, 0x52, 0x65, 0x73, 0x75, 0x6d, + 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x4b, 0x65, 0x79, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x12, 0x0f, 0x0a, 0x0b, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, + 0x10, 0x00, 0x12, 0x0b, 0x0a, 0x07, 0x45, 0x4e, 0x43, 0x52, 0x59, 0x50, 0x54, 0x10, 0x01, 0x12, + 0x0b, 0x0a, 0x07, 0x44, 0x45, 0x43, 0x52, 0x59, 0x50, 0x54, 0x10, 0x02, 0x22, 0x40, 0x0a, 0x21, + 0x4f, 0x66, 0x66, 0x6c, 0x6f, 0x61, 0x64, 0x52, 0x65, 0x73, 0x75, 0x6d, 0x70, 0x74, 0x69, 0x6f, + 0x6e, 0x4b, 0x65, 0x79, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, + 0x70, 0x12, 0x1b, 0x0a, 0x09, 0x6f, 0x75, 0x74, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0c, 0x52, 0x08, 0x6f, 0x75, 0x74, 0x42, 0x79, 0x74, 0x65, 0x73, 0x22, 0x9d, + 0x06, 0x0a, 0x1f, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x50, 0x65, 0x65, 0x72, 0x43, + 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x52, + 0x65, 0x71, 0x12, 0x52, 0x0a, 0x04, 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, + 0x32, 0x3e, 0x2e, 0x73, 0x32, 0x61, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x76, 0x32, 0x2e, + 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x50, 0x65, 0x65, 0x72, 0x43, 0x65, 0x72, 0x74, + 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x52, 0x65, 0x71, 0x2e, + 0x56, 0x65, 0x72, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x6f, 0x64, 0x65, + 0x52, 0x04, 0x6d, 0x6f, 0x64, 0x65, 0x12, 0x5b, 0x0a, 0x0b, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, + 0x5f, 0x70, 0x65, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x38, 0x2e, 0x73, 0x32, 0x61, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x76, 0x32, 0x2e, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x50, 0x65, 0x65, 0x72, 0x43, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, - 0x74, 0x65, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x52, 0x65, 0x71, 0x2e, 0x56, 0x65, 0x72, 0x69, 0x66, - 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x6f, 0x64, 0x65, 0x52, 0x04, 0x6d, 0x6f, 0x64, - 0x65, 0x12, 0x5b, 0x0a, 0x0b, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x70, 0x65, 0x65, 0x72, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x38, 0x2e, 0x73, 0x32, 0x61, 0x2e, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x2e, 0x76, 0x32, 0x2e, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x50, 0x65, - 0x65, 0x72, 0x43, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x43, 0x68, 0x61, - 0x69, 0x6e, 0x52, 0x65, 0x71, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x50, 0x65, 0x65, 0x72, - 0x48, 0x00, 0x52, 0x0a, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x50, 0x65, 0x65, 0x72, 0x12, 0x5b, - 0x0a, 0x0b, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x70, 0x65, 0x65, 0x72, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x38, 0x2e, 0x73, 0x32, 0x61, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, - 0x76, 0x32, 0x2e, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x50, 0x65, 0x65, 0x72, 0x43, + 0x74, 0x65, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x52, 0x65, 0x71, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, + 0x74, 0x50, 0x65, 0x65, 0x72, 0x48, 0x00, 0x52, 0x0a, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x50, + 0x65, 0x65, 0x72, 0x12, 0x5b, 0x0a, 0x0b, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x70, 0x65, + 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x38, 0x2e, 0x73, 0x32, 0x61, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x76, 0x32, 0x2e, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, + 0x50, 0x65, 0x65, 0x72, 0x43, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x43, + 0x68, 0x61, 0x69, 0x6e, 0x52, 0x65, 0x71, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x50, 0x65, + 0x65, 0x72, 0x48, 0x00, 0x52, 0x0a, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x50, 0x65, 0x65, 0x72, + 0x1a, 0x39, 0x0a, 0x0a, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x50, 0x65, 0x65, 0x72, 0x12, 0x2b, + 0x0a, 0x11, 0x63, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x5f, 0x63, 0x68, + 0x61, 0x69, 0x6e, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0c, 0x52, 0x10, 0x63, 0x65, 0x72, 0x74, 0x69, + 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x1a, 0xb5, 0x01, 0x0a, 0x0a, + 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x50, 0x65, 0x65, 0x72, 0x12, 0x2b, 0x0a, 0x11, 0x63, 0x65, + 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x5f, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x18, + 0x01, 0x20, 0x03, 0x28, 0x0c, 0x52, 0x10, 0x63, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, + 0x74, 0x65, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x12, 0x27, 0x0a, 0x0f, 0x73, 0x65, 0x72, 0x76, 0x65, + 0x72, 0x5f, 0x68, 0x6f, 0x73, 0x74, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x0e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x48, 0x6f, 0x73, 0x74, 0x6e, 0x61, 0x6d, 0x65, + 0x12, 0x51, 0x0a, 0x25, 0x73, 0x65, 0x72, 0x69, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x5f, 0x75, + 0x6e, 0x72, 0x65, 0x73, 0x74, 0x72, 0x69, 0x63, 0x74, 0x65, 0x64, 0x5f, 0x63, 0x6c, 0x69, 0x65, + 0x6e, 0x74, 0x5f, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, + 0x22, 0x73, 0x65, 0x72, 0x69, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x55, 0x6e, 0x72, 0x65, 0x73, + 0x74, 0x72, 0x69, 0x63, 0x74, 0x65, 0x64, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x50, 0x6f, 0x6c, + 0x69, 0x63, 0x79, 0x22, 0xea, 0x01, 0x0a, 0x10, 0x56, 0x65, 0x72, 0x69, 0x66, 0x69, 0x63, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x6f, 0x64, 0x65, 0x12, 0x0f, 0x0a, 0x0b, 0x55, 0x4e, 0x53, 0x50, + 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x0a, 0x0a, 0x06, 0x53, 0x50, 0x49, + 0x46, 0x46, 0x45, 0x10, 0x01, 0x12, 0x15, 0x0a, 0x11, 0x43, 0x4f, 0x4e, 0x4e, 0x45, 0x43, 0x54, + 0x5f, 0x54, 0x4f, 0x5f, 0x47, 0x4f, 0x4f, 0x47, 0x4c, 0x45, 0x10, 0x02, 0x12, 0x27, 0x0a, 0x23, + 0x52, 0x45, 0x53, 0x45, 0x52, 0x56, 0x45, 0x44, 0x5f, 0x43, 0x55, 0x53, 0x54, 0x4f, 0x4d, 0x5f, + 0x56, 0x45, 0x52, 0x49, 0x46, 0x49, 0x43, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x4d, 0x4f, 0x44, + 0x45, 0x5f, 0x33, 0x10, 0x03, 0x12, 0x27, 0x0a, 0x23, 0x52, 0x45, 0x53, 0x45, 0x52, 0x56, 0x45, + 0x44, 0x5f, 0x43, 0x55, 0x53, 0x54, 0x4f, 0x4d, 0x5f, 0x56, 0x45, 0x52, 0x49, 0x46, 0x49, 0x43, + 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x4d, 0x4f, 0x44, 0x45, 0x5f, 0x34, 0x10, 0x04, 0x12, 0x27, + 0x0a, 0x23, 0x52, 0x45, 0x53, 0x45, 0x52, 0x56, 0x45, 0x44, 0x5f, 0x43, 0x55, 0x53, 0x54, 0x4f, + 0x4d, 0x5f, 0x56, 0x45, 0x52, 0x49, 0x46, 0x49, 0x43, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x4d, + 0x4f, 0x44, 0x45, 0x5f, 0x35, 0x10, 0x05, 0x12, 0x27, 0x0a, 0x23, 0x52, 0x45, 0x53, 0x45, 0x52, + 0x56, 0x45, 0x44, 0x5f, 0x43, 0x55, 0x53, 0x54, 0x4f, 0x4d, 0x5f, 0x56, 0x45, 0x52, 0x49, 0x46, + 0x49, 0x43, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x4d, 0x4f, 0x44, 0x45, 0x5f, 0x36, 0x10, 0x06, + 0x42, 0x0c, 0x0a, 0x0a, 0x70, 0x65, 0x65, 0x72, 0x5f, 0x6f, 0x6e, 0x65, 0x6f, 0x66, 0x22, 0xb2, + 0x02, 0x0a, 0x20, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x50, 0x65, 0x65, 0x72, 0x43, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x52, - 0x65, 0x71, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x50, 0x65, 0x65, 0x72, 0x48, 0x00, 0x52, - 0x0a, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x50, 0x65, 0x65, 0x72, 0x1a, 0x39, 0x0a, 0x0a, 0x43, - 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x50, 0x65, 0x65, 0x72, 0x12, 0x2b, 0x0a, 0x11, 0x63, 0x65, 0x72, - 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x5f, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x18, 0x01, - 0x20, 0x03, 0x28, 0x0c, 0x52, 0x10, 0x63, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, - 0x65, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x1a, 0xb5, 0x01, 0x0a, 0x0a, 0x53, 0x65, 0x72, 0x76, 0x65, - 0x72, 0x50, 0x65, 0x65, 0x72, 0x12, 0x2b, 0x0a, 0x11, 0x63, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, - 0x63, 0x61, 0x74, 0x65, 0x5f, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0c, - 0x52, 0x10, 0x63, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x43, 0x68, 0x61, - 0x69, 0x6e, 0x12, 0x27, 0x0a, 0x0f, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x68, 0x6f, 0x73, - 0x74, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x73, 0x65, 0x72, - 0x76, 0x65, 0x72, 0x48, 0x6f, 0x73, 0x74, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x51, 0x0a, 0x25, 0x73, - 0x65, 0x72, 0x69, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x5f, 0x75, 0x6e, 0x72, 0x65, 0x73, 0x74, - 0x72, 0x69, 0x63, 0x74, 0x65, 0x64, 0x5f, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x70, 0x6f, - 0x6c, 0x69, 0x63, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x22, 0x73, 0x65, 0x72, 0x69, - 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x55, 0x6e, 0x72, 0x65, 0x73, 0x74, 0x72, 0x69, 0x63, 0x74, - 0x65, 0x64, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x22, 0x46, - 0x0a, 0x10, 0x56, 0x65, 0x72, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x6f, - 0x64, 0x65, 0x12, 0x0f, 0x0a, 0x0b, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, - 0x44, 0x10, 0x00, 0x12, 0x0a, 0x0a, 0x06, 0x53, 0x50, 0x49, 0x46, 0x46, 0x45, 0x10, 0x01, 0x12, - 0x15, 0x0a, 0x11, 0x43, 0x4f, 0x4e, 0x4e, 0x45, 0x43, 0x54, 0x5f, 0x54, 0x4f, 0x5f, 0x47, 0x4f, - 0x4f, 0x47, 0x4c, 0x45, 0x10, 0x02, 0x42, 0x0c, 0x0a, 0x0a, 0x70, 0x65, 0x65, 0x72, 0x5f, 0x6f, - 0x6e, 0x65, 0x6f, 0x66, 0x22, 0xb2, 0x02, 0x0a, 0x20, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, - 0x65, 0x50, 0x65, 0x65, 0x72, 0x43, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, - 0x43, 0x68, 0x61, 0x69, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x12, 0x6c, 0x0a, 0x11, 0x76, 0x61, 0x6c, - 0x69, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x0e, 0x32, 0x3f, 0x2e, 0x73, 0x32, 0x61, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x2e, 0x76, 0x32, 0x2e, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x50, 0x65, 0x65, 0x72, + 0x65, 0x73, 0x70, 0x12, 0x6c, 0x0a, 0x11, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x5f, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x3f, + 0x2e, 0x73, 0x32, 0x61, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x76, 0x32, 0x2e, 0x56, 0x61, + 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x50, 0x65, 0x65, 0x72, 0x43, 0x65, 0x72, 0x74, 0x69, 0x66, + 0x69, 0x63, 0x61, 0x74, 0x65, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x2e, 0x56, + 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x52, + 0x10, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x75, 0x6c, + 0x74, 0x12, 0x2d, 0x0a, 0x12, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, + 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x11, 0x76, + 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, + 0x12, 0x32, 0x0a, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x18, 0x2e, 0x73, 0x32, 0x61, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x76, 0x32, + 0x2e, 0x53, 0x32, 0x41, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x52, 0x07, 0x63, 0x6f, 0x6e, + 0x74, 0x65, 0x78, 0x74, 0x22, 0x3d, 0x0a, 0x10, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x0f, 0x0a, 0x0b, 0x55, 0x4e, 0x53, 0x50, + 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x0b, 0x0a, 0x07, 0x53, 0x55, 0x43, + 0x43, 0x45, 0x53, 0x53, 0x10, 0x01, 0x12, 0x0b, 0x0a, 0x07, 0x46, 0x41, 0x49, 0x4c, 0x55, 0x52, + 0x45, 0x10, 0x02, 0x22, 0xa0, 0x05, 0x0a, 0x0a, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x52, + 0x65, 0x71, 0x12, 0x3d, 0x0a, 0x0e, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x5f, 0x69, 0x64, 0x65, 0x6e, + 0x74, 0x69, 0x74, 0x79, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x73, 0x32, 0x61, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x76, 0x32, 0x2e, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, + 0x74, 0x79, 0x52, 0x0d, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, + 0x79, 0x12, 0x62, 0x0a, 0x19, 0x61, 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x5f, 0x6d, 0x65, 0x63, 0x68, 0x61, 0x6e, 0x69, 0x73, 0x6d, 0x73, 0x18, 0x02, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x73, 0x32, 0x61, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x2e, 0x76, 0x32, 0x2e, 0x41, 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x4d, 0x65, 0x63, 0x68, 0x61, 0x6e, 0x69, 0x73, 0x6d, 0x52, 0x18, 0x61, 0x75, 0x74, + 0x68, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x63, 0x68, 0x61, + 0x6e, 0x69, 0x73, 0x6d, 0x73, 0x12, 0x61, 0x0a, 0x19, 0x67, 0x65, 0x74, 0x5f, 0x74, 0x6c, 0x73, + 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x72, + 0x65, 0x71, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x73, 0x32, 0x61, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x76, 0x32, 0x2e, 0x47, 0x65, 0x74, 0x54, 0x6c, 0x73, 0x43, 0x6f, + 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x48, 0x00, + 0x52, 0x16, 0x67, 0x65, 0x74, 0x54, 0x6c, 0x73, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x12, 0x77, 0x0a, 0x21, 0x6f, 0x66, 0x66, 0x6c, + 0x6f, 0x61, 0x64, 0x5f, 0x70, 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, 0x5f, 0x6b, 0x65, 0x79, 0x5f, + 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x72, 0x65, 0x71, 0x18, 0x04, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x73, 0x32, 0x61, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, + 0x76, 0x32, 0x2e, 0x4f, 0x66, 0x66, 0x6c, 0x6f, 0x61, 0x64, 0x50, 0x72, 0x69, 0x76, 0x61, 0x74, + 0x65, 0x4b, 0x65, 0x79, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, + 0x48, 0x00, 0x52, 0x1d, 0x6f, 0x66, 0x66, 0x6c, 0x6f, 0x61, 0x64, 0x50, 0x72, 0x69, 0x76, 0x61, + 0x74, 0x65, 0x4b, 0x65, 0x79, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, + 0x71, 0x12, 0x80, 0x01, 0x0a, 0x24, 0x6f, 0x66, 0x66, 0x6c, 0x6f, 0x61, 0x64, 0x5f, 0x72, 0x65, + 0x73, 0x75, 0x6d, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6b, 0x65, 0x79, 0x5f, 0x6f, 0x70, 0x65, + 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x72, 0x65, 0x71, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x2e, 0x2e, 0x73, 0x32, 0x61, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x76, 0x32, 0x2e, + 0x4f, 0x66, 0x66, 0x6c, 0x6f, 0x61, 0x64, 0x52, 0x65, 0x73, 0x75, 0x6d, 0x70, 0x74, 0x69, 0x6f, + 0x6e, 0x4b, 0x65, 0x79, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, + 0x48, 0x00, 0x52, 0x20, 0x6f, 0x66, 0x66, 0x6c, 0x6f, 0x61, 0x64, 0x52, 0x65, 0x73, 0x75, 0x6d, + 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x4b, 0x65, 0x79, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x52, 0x65, 0x71, 0x12, 0x7d, 0x0a, 0x23, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, + 0x5f, 0x70, 0x65, 0x65, 0x72, 0x5f, 0x63, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, + 0x65, 0x5f, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x5f, 0x72, 0x65, 0x71, 0x18, 0x06, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x2d, 0x2e, 0x73, 0x32, 0x61, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x76, 0x32, + 0x2e, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x50, 0x65, 0x65, 0x72, 0x43, 0x65, 0x72, + 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x52, 0x65, 0x71, + 0x48, 0x00, 0x52, 0x1f, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x50, 0x65, 0x65, 0x72, 0x43, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x43, 0x68, 0x61, 0x69, 0x6e, - 0x52, 0x65, 0x73, 0x70, 0x2e, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, - 0x65, 0x73, 0x75, 0x6c, 0x74, 0x52, 0x10, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x2d, 0x0a, 0x12, 0x76, 0x61, 0x6c, 0x69, 0x64, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x11, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x44, - 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x12, 0x32, 0x0a, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, - 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x73, 0x32, 0x61, 0x2e, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x2e, 0x76, 0x32, 0x2e, 0x53, 0x32, 0x41, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x78, - 0x74, 0x52, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x22, 0x3d, 0x0a, 0x10, 0x56, 0x61, - 0x6c, 0x69, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x0f, - 0x0a, 0x0b, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, - 0x0b, 0x0a, 0x07, 0x53, 0x55, 0x43, 0x43, 0x45, 0x53, 0x53, 0x10, 0x01, 0x12, 0x0b, 0x0a, 0x07, - 0x46, 0x41, 0x49, 0x4c, 0x55, 0x52, 0x45, 0x10, 0x02, 0x22, 0x97, 0x05, 0x0a, 0x0a, 0x53, 0x65, - 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x12, 0x3a, 0x0a, 0x0e, 0x6c, 0x6f, 0x63, 0x61, - 0x6c, 0x5f, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x13, 0x2e, 0x73, 0x32, 0x61, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x49, 0x64, 0x65, - 0x6e, 0x74, 0x69, 0x74, 0x79, 0x52, 0x0d, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x49, 0x64, 0x65, 0x6e, - 0x74, 0x69, 0x74, 0x79, 0x12, 0x62, 0x0a, 0x19, 0x61, 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, 0x69, - 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6d, 0x65, 0x63, 0x68, 0x61, 0x6e, 0x69, 0x73, 0x6d, - 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x73, 0x32, 0x61, 0x2e, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x2e, 0x76, 0x32, 0x2e, 0x41, 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, 0x69, 0x63, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x63, 0x68, 0x61, 0x6e, 0x69, 0x73, 0x6d, 0x52, 0x18, - 0x61, 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, - 0x63, 0x68, 0x61, 0x6e, 0x69, 0x73, 0x6d, 0x73, 0x12, 0x61, 0x0a, 0x19, 0x67, 0x65, 0x74, 0x5f, - 0x74, 0x6c, 0x73, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x5f, 0x72, 0x65, 0x71, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x73, 0x32, - 0x61, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x76, 0x32, 0x2e, 0x47, 0x65, 0x74, 0x54, 0x6c, - 0x73, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, - 0x71, 0x48, 0x00, 0x52, 0x16, 0x67, 0x65, 0x74, 0x54, 0x6c, 0x73, 0x43, 0x6f, 0x6e, 0x66, 0x69, - 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x12, 0x77, 0x0a, 0x21, 0x6f, - 0x66, 0x66, 0x6c, 0x6f, 0x61, 0x64, 0x5f, 0x70, 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, 0x5f, 0x6b, - 0x65, 0x79, 0x5f, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x72, 0x65, 0x71, - 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x73, 0x32, 0x61, 0x2e, 0x70, 0x72, 0x6f, + 0x52, 0x65, 0x71, 0x42, 0x0b, 0x0a, 0x09, 0x72, 0x65, 0x71, 0x5f, 0x6f, 0x6e, 0x65, 0x6f, 0x66, + 0x4a, 0x04, 0x08, 0x01, 0x10, 0x02, 0x22, 0xb4, 0x04, 0x0a, 0x0b, 0x53, 0x65, 0x73, 0x73, 0x69, + 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x12, 0x2c, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x73, 0x32, 0x61, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x2e, 0x76, 0x32, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, + 0x61, 0x74, 0x75, 0x73, 0x12, 0x64, 0x0a, 0x1a, 0x67, 0x65, 0x74, 0x5f, 0x74, 0x6c, 0x73, 0x5f, + 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x72, 0x65, + 0x73, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x73, 0x32, 0x61, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x76, 0x32, 0x2e, 0x47, 0x65, 0x74, 0x54, 0x6c, 0x73, 0x43, 0x6f, + 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x48, + 0x00, 0x52, 0x17, 0x67, 0x65, 0x74, 0x54, 0x6c, 0x73, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, + 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x12, 0x7a, 0x0a, 0x22, 0x6f, 0x66, + 0x66, 0x6c, 0x6f, 0x61, 0x64, 0x5f, 0x70, 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, 0x5f, 0x6b, 0x65, + 0x79, 0x5f, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x72, 0x65, 0x73, 0x70, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x73, 0x32, 0x61, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x76, 0x32, 0x2e, 0x4f, 0x66, 0x66, 0x6c, 0x6f, 0x61, 0x64, 0x50, 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, 0x4b, 0x65, 0x79, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x52, 0x65, 0x71, 0x48, 0x00, 0x52, 0x1d, 0x6f, 0x66, 0x66, 0x6c, 0x6f, 0x61, 0x64, 0x50, 0x72, - 0x69, 0x76, 0x61, 0x74, 0x65, 0x4b, 0x65, 0x79, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x52, 0x65, 0x71, 0x12, 0x80, 0x01, 0x0a, 0x24, 0x6f, 0x66, 0x66, 0x6c, 0x6f, 0x61, 0x64, - 0x5f, 0x72, 0x65, 0x73, 0x75, 0x6d, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6b, 0x65, 0x79, 0x5f, - 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x72, 0x65, 0x71, 0x18, 0x05, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x73, 0x32, 0x61, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, - 0x76, 0x32, 0x2e, 0x4f, 0x66, 0x66, 0x6c, 0x6f, 0x61, 0x64, 0x52, 0x65, 0x73, 0x75, 0x6d, 0x70, - 0x74, 0x69, 0x6f, 0x6e, 0x4b, 0x65, 0x79, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x52, 0x65, 0x71, 0x48, 0x00, 0x52, 0x20, 0x6f, 0x66, 0x66, 0x6c, 0x6f, 0x61, 0x64, 0x52, 0x65, - 0x73, 0x75, 0x6d, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x4b, 0x65, 0x79, 0x4f, 0x70, 0x65, 0x72, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x12, 0x7d, 0x0a, 0x23, 0x76, 0x61, 0x6c, 0x69, 0x64, - 0x61, 0x74, 0x65, 0x5f, 0x70, 0x65, 0x65, 0x72, 0x5f, 0x63, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, - 0x63, 0x61, 0x74, 0x65, 0x5f, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x5f, 0x72, 0x65, 0x71, 0x18, 0x06, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x73, 0x32, 0x61, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x2e, 0x76, 0x32, 0x2e, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x50, 0x65, 0x65, 0x72, - 0x43, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x43, 0x68, 0x61, 0x69, 0x6e, - 0x52, 0x65, 0x71, 0x48, 0x00, 0x52, 0x1f, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x50, - 0x65, 0x65, 0x72, 0x43, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x43, 0x68, - 0x61, 0x69, 0x6e, 0x52, 0x65, 0x71, 0x42, 0x0b, 0x0a, 0x09, 0x72, 0x65, 0x71, 0x5f, 0x6f, 0x6e, - 0x65, 0x6f, 0x66, 0x22, 0xb4, 0x04, 0x0a, 0x0b, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x52, - 0x65, 0x73, 0x70, 0x12, 0x2c, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x73, 0x32, 0x61, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, - 0x76, 0x32, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, - 0x73, 0x12, 0x64, 0x0a, 0x1a, 0x67, 0x65, 0x74, 0x5f, 0x74, 0x6c, 0x73, 0x5f, 0x63, 0x6f, 0x6e, - 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x72, 0x65, 0x73, 0x70, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x73, 0x32, 0x61, 0x2e, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x2e, 0x76, 0x32, 0x2e, 0x47, 0x65, 0x74, 0x54, 0x6c, 0x73, 0x43, 0x6f, 0x6e, 0x66, 0x69, - 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x48, 0x00, 0x52, 0x17, - 0x67, 0x65, 0x74, 0x54, 0x6c, 0x73, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x12, 0x7a, 0x0a, 0x22, 0x6f, 0x66, 0x66, 0x6c, 0x6f, - 0x61, 0x64, 0x5f, 0x70, 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, 0x5f, 0x6b, 0x65, 0x79, 0x5f, 0x6f, - 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x72, 0x65, 0x73, 0x70, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x73, 0x32, 0x61, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, - 0x76, 0x32, 0x2e, 0x4f, 0x66, 0x66, 0x6c, 0x6f, 0x61, 0x64, 0x50, 0x72, 0x69, 0x76, 0x61, 0x74, - 0x65, 0x4b, 0x65, 0x79, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, - 0x70, 0x48, 0x00, 0x52, 0x1e, 0x6f, 0x66, 0x66, 0x6c, 0x6f, 0x61, 0x64, 0x50, 0x72, 0x69, 0x76, - 0x61, 0x74, 0x65, 0x4b, 0x65, 0x79, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, - 0x65, 0x73, 0x70, 0x12, 0x83, 0x01, 0x0a, 0x25, 0x6f, 0x66, 0x66, 0x6c, 0x6f, 0x61, 0x64, 0x5f, - 0x72, 0x65, 0x73, 0x75, 0x6d, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6b, 0x65, 0x79, 0x5f, 0x6f, - 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x72, 0x65, 0x73, 0x70, 0x18, 0x04, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x73, 0x32, 0x61, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, - 0x76, 0x32, 0x2e, 0x4f, 0x66, 0x66, 0x6c, 0x6f, 0x61, 0x64, 0x52, 0x65, 0x73, 0x75, 0x6d, 0x70, - 0x74, 0x69, 0x6f, 0x6e, 0x4b, 0x65, 0x79, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x52, 0x65, 0x73, 0x70, 0x48, 0x00, 0x52, 0x21, 0x6f, 0x66, 0x66, 0x6c, 0x6f, 0x61, 0x64, 0x52, - 0x65, 0x73, 0x75, 0x6d, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x4b, 0x65, 0x79, 0x4f, 0x70, 0x65, 0x72, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x12, 0x80, 0x01, 0x0a, 0x24, 0x76, 0x61, - 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x70, 0x65, 0x65, 0x72, 0x5f, 0x63, 0x65, 0x72, 0x74, - 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x5f, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x5f, 0x72, 0x65, - 0x73, 0x70, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x73, 0x32, 0x61, 0x2e, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x76, 0x32, 0x2e, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, - 0x50, 0x65, 0x65, 0x72, 0x43, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x43, - 0x68, 0x61, 0x69, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x48, 0x00, 0x52, 0x20, 0x76, 0x61, 0x6c, 0x69, - 0x64, 0x61, 0x74, 0x65, 0x50, 0x65, 0x65, 0x72, 0x43, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, - 0x61, 0x74, 0x65, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x42, 0x0c, 0x0a, 0x0a, - 0x72, 0x65, 0x73, 0x70, 0x5f, 0x6f, 0x6e, 0x65, 0x6f, 0x66, 0x2a, 0xa2, 0x03, 0x0a, 0x12, 0x53, - 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x41, 0x6c, 0x67, 0x6f, 0x72, 0x69, 0x74, 0x68, - 0x6d, 0x12, 0x1c, 0x0a, 0x18, 0x53, 0x32, 0x41, 0x5f, 0x53, 0x53, 0x4c, 0x5f, 0x53, 0x49, 0x47, - 0x4e, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, - 0x21, 0x0a, 0x1d, 0x53, 0x32, 0x41, 0x5f, 0x53, 0x53, 0x4c, 0x5f, 0x53, 0x49, 0x47, 0x4e, 0x5f, - 0x52, 0x53, 0x41, 0x5f, 0x50, 0x4b, 0x43, 0x53, 0x31, 0x5f, 0x53, 0x48, 0x41, 0x32, 0x35, 0x36, - 0x10, 0x01, 0x12, 0x21, 0x0a, 0x1d, 0x53, 0x32, 0x41, 0x5f, 0x53, 0x53, 0x4c, 0x5f, 0x53, 0x49, + 0x52, 0x65, 0x73, 0x70, 0x48, 0x00, 0x52, 0x1e, 0x6f, 0x66, 0x66, 0x6c, 0x6f, 0x61, 0x64, 0x50, + 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, 0x4b, 0x65, 0x79, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x12, 0x83, 0x01, 0x0a, 0x25, 0x6f, 0x66, 0x66, 0x6c, 0x6f, + 0x61, 0x64, 0x5f, 0x72, 0x65, 0x73, 0x75, 0x6d, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6b, 0x65, + 0x79, 0x5f, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x72, 0x65, 0x73, 0x70, + 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x73, 0x32, 0x61, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x2e, 0x76, 0x32, 0x2e, 0x4f, 0x66, 0x66, 0x6c, 0x6f, 0x61, 0x64, 0x52, 0x65, 0x73, + 0x75, 0x6d, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x4b, 0x65, 0x79, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x48, 0x00, 0x52, 0x21, 0x6f, 0x66, 0x66, 0x6c, 0x6f, + 0x61, 0x64, 0x52, 0x65, 0x73, 0x75, 0x6d, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x4b, 0x65, 0x79, 0x4f, + 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x12, 0x80, 0x01, 0x0a, + 0x24, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x70, 0x65, 0x65, 0x72, 0x5f, 0x63, + 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x5f, 0x63, 0x68, 0x61, 0x69, 0x6e, + 0x5f, 0x72, 0x65, 0x73, 0x70, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x73, 0x32, + 0x61, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x76, 0x32, 0x2e, 0x56, 0x61, 0x6c, 0x69, 0x64, + 0x61, 0x74, 0x65, 0x50, 0x65, 0x65, 0x72, 0x43, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, + 0x74, 0x65, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x48, 0x00, 0x52, 0x20, 0x76, + 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x50, 0x65, 0x65, 0x72, 0x43, 0x65, 0x72, 0x74, 0x69, + 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x42, + 0x0c, 0x0a, 0x0a, 0x72, 0x65, 0x73, 0x70, 0x5f, 0x6f, 0x6e, 0x65, 0x6f, 0x66, 0x2a, 0xa2, 0x03, + 0x0a, 0x12, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x41, 0x6c, 0x67, 0x6f, 0x72, + 0x69, 0x74, 0x68, 0x6d, 0x12, 0x1c, 0x0a, 0x18, 0x53, 0x32, 0x41, 0x5f, 0x53, 0x53, 0x4c, 0x5f, + 0x53, 0x49, 0x47, 0x4e, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, + 0x10, 0x00, 0x12, 0x21, 0x0a, 0x1d, 0x53, 0x32, 0x41, 0x5f, 0x53, 0x53, 0x4c, 0x5f, 0x53, 0x49, 0x47, 0x4e, 0x5f, 0x52, 0x53, 0x41, 0x5f, 0x50, 0x4b, 0x43, 0x53, 0x31, 0x5f, 0x53, 0x48, 0x41, - 0x33, 0x38, 0x34, 0x10, 0x02, 0x12, 0x21, 0x0a, 0x1d, 0x53, 0x32, 0x41, 0x5f, 0x53, 0x53, 0x4c, + 0x32, 0x35, 0x36, 0x10, 0x01, 0x12, 0x21, 0x0a, 0x1d, 0x53, 0x32, 0x41, 0x5f, 0x53, 0x53, 0x4c, 0x5f, 0x53, 0x49, 0x47, 0x4e, 0x5f, 0x52, 0x53, 0x41, 0x5f, 0x50, 0x4b, 0x43, 0x53, 0x31, 0x5f, - 0x53, 0x48, 0x41, 0x35, 0x31, 0x32, 0x10, 0x03, 0x12, 0x27, 0x0a, 0x23, 0x53, 0x32, 0x41, 0x5f, - 0x53, 0x53, 0x4c, 0x5f, 0x53, 0x49, 0x47, 0x4e, 0x5f, 0x45, 0x43, 0x44, 0x53, 0x41, 0x5f, 0x53, - 0x45, 0x43, 0x50, 0x32, 0x35, 0x36, 0x52, 0x31, 0x5f, 0x53, 0x48, 0x41, 0x32, 0x35, 0x36, 0x10, - 0x04, 0x12, 0x27, 0x0a, 0x23, 0x53, 0x32, 0x41, 0x5f, 0x53, 0x53, 0x4c, 0x5f, 0x53, 0x49, 0x47, - 0x4e, 0x5f, 0x45, 0x43, 0x44, 0x53, 0x41, 0x5f, 0x53, 0x45, 0x43, 0x50, 0x33, 0x38, 0x34, 0x52, - 0x31, 0x5f, 0x53, 0x48, 0x41, 0x33, 0x38, 0x34, 0x10, 0x05, 0x12, 0x27, 0x0a, 0x23, 0x53, 0x32, - 0x41, 0x5f, 0x53, 0x53, 0x4c, 0x5f, 0x53, 0x49, 0x47, 0x4e, 0x5f, 0x45, 0x43, 0x44, 0x53, 0x41, - 0x5f, 0x53, 0x45, 0x43, 0x50, 0x35, 0x32, 0x31, 0x52, 0x31, 0x5f, 0x53, 0x48, 0x41, 0x35, 0x31, - 0x32, 0x10, 0x06, 0x12, 0x24, 0x0a, 0x20, 0x53, 0x32, 0x41, 0x5f, 0x53, 0x53, 0x4c, 0x5f, 0x53, - 0x49, 0x47, 0x4e, 0x5f, 0x52, 0x53, 0x41, 0x5f, 0x50, 0x53, 0x53, 0x5f, 0x52, 0x53, 0x41, 0x45, - 0x5f, 0x53, 0x48, 0x41, 0x32, 0x35, 0x36, 0x10, 0x07, 0x12, 0x24, 0x0a, 0x20, 0x53, 0x32, 0x41, - 0x5f, 0x53, 0x53, 0x4c, 0x5f, 0x53, 0x49, 0x47, 0x4e, 0x5f, 0x52, 0x53, 0x41, 0x5f, 0x50, 0x53, - 0x53, 0x5f, 0x52, 0x53, 0x41, 0x45, 0x5f, 0x53, 0x48, 0x41, 0x33, 0x38, 0x34, 0x10, 0x08, 0x12, - 0x24, 0x0a, 0x20, 0x53, 0x32, 0x41, 0x5f, 0x53, 0x53, 0x4c, 0x5f, 0x53, 0x49, 0x47, 0x4e, 0x5f, - 0x52, 0x53, 0x41, 0x5f, 0x50, 0x53, 0x53, 0x5f, 0x52, 0x53, 0x41, 0x45, 0x5f, 0x53, 0x48, 0x41, - 0x35, 0x31, 0x32, 0x10, 0x09, 0x12, 0x18, 0x0a, 0x14, 0x53, 0x32, 0x41, 0x5f, 0x53, 0x53, 0x4c, - 0x5f, 0x53, 0x49, 0x47, 0x4e, 0x5f, 0x45, 0x44, 0x32, 0x35, 0x35, 0x31, 0x39, 0x10, 0x0a, 0x32, - 0x57, 0x0a, 0x0a, 0x53, 0x32, 0x41, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x49, 0x0a, - 0x0c, 0x53, 0x65, 0x74, 0x55, 0x70, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x18, 0x2e, - 0x73, 0x32, 0x61, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x76, 0x32, 0x2e, 0x53, 0x65, 0x73, - 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x1a, 0x19, 0x2e, 0x73, 0x32, 0x61, 0x2e, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x2e, 0x76, 0x32, 0x2e, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, - 0x73, 0x70, 0x22, 0x00, 0x28, 0x01, 0x30, 0x01, 0x42, 0x36, 0x5a, 0x34, 0x67, 0x69, 0x74, 0x68, - 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x73, 0x32, - 0x61, 0x2f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x2f, 0x76, 0x32, 0x2f, 0x73, 0x32, 0x61, 0x5f, 0x67, 0x6f, 0x5f, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x53, 0x48, 0x41, 0x33, 0x38, 0x34, 0x10, 0x02, 0x12, 0x21, 0x0a, 0x1d, 0x53, 0x32, 0x41, 0x5f, + 0x53, 0x53, 0x4c, 0x5f, 0x53, 0x49, 0x47, 0x4e, 0x5f, 0x52, 0x53, 0x41, 0x5f, 0x50, 0x4b, 0x43, + 0x53, 0x31, 0x5f, 0x53, 0x48, 0x41, 0x35, 0x31, 0x32, 0x10, 0x03, 0x12, 0x27, 0x0a, 0x23, 0x53, + 0x32, 0x41, 0x5f, 0x53, 0x53, 0x4c, 0x5f, 0x53, 0x49, 0x47, 0x4e, 0x5f, 0x45, 0x43, 0x44, 0x53, + 0x41, 0x5f, 0x53, 0x45, 0x43, 0x50, 0x32, 0x35, 0x36, 0x52, 0x31, 0x5f, 0x53, 0x48, 0x41, 0x32, + 0x35, 0x36, 0x10, 0x04, 0x12, 0x27, 0x0a, 0x23, 0x53, 0x32, 0x41, 0x5f, 0x53, 0x53, 0x4c, 0x5f, + 0x53, 0x49, 0x47, 0x4e, 0x5f, 0x45, 0x43, 0x44, 0x53, 0x41, 0x5f, 0x53, 0x45, 0x43, 0x50, 0x33, + 0x38, 0x34, 0x52, 0x31, 0x5f, 0x53, 0x48, 0x41, 0x33, 0x38, 0x34, 0x10, 0x05, 0x12, 0x27, 0x0a, + 0x23, 0x53, 0x32, 0x41, 0x5f, 0x53, 0x53, 0x4c, 0x5f, 0x53, 0x49, 0x47, 0x4e, 0x5f, 0x45, 0x43, + 0x44, 0x53, 0x41, 0x5f, 0x53, 0x45, 0x43, 0x50, 0x35, 0x32, 0x31, 0x52, 0x31, 0x5f, 0x53, 0x48, + 0x41, 0x35, 0x31, 0x32, 0x10, 0x06, 0x12, 0x24, 0x0a, 0x20, 0x53, 0x32, 0x41, 0x5f, 0x53, 0x53, + 0x4c, 0x5f, 0x53, 0x49, 0x47, 0x4e, 0x5f, 0x52, 0x53, 0x41, 0x5f, 0x50, 0x53, 0x53, 0x5f, 0x52, + 0x53, 0x41, 0x45, 0x5f, 0x53, 0x48, 0x41, 0x32, 0x35, 0x36, 0x10, 0x07, 0x12, 0x24, 0x0a, 0x20, + 0x53, 0x32, 0x41, 0x5f, 0x53, 0x53, 0x4c, 0x5f, 0x53, 0x49, 0x47, 0x4e, 0x5f, 0x52, 0x53, 0x41, + 0x5f, 0x50, 0x53, 0x53, 0x5f, 0x52, 0x53, 0x41, 0x45, 0x5f, 0x53, 0x48, 0x41, 0x33, 0x38, 0x34, + 0x10, 0x08, 0x12, 0x24, 0x0a, 0x20, 0x53, 0x32, 0x41, 0x5f, 0x53, 0x53, 0x4c, 0x5f, 0x53, 0x49, + 0x47, 0x4e, 0x5f, 0x52, 0x53, 0x41, 0x5f, 0x50, 0x53, 0x53, 0x5f, 0x52, 0x53, 0x41, 0x45, 0x5f, + 0x53, 0x48, 0x41, 0x35, 0x31, 0x32, 0x10, 0x09, 0x12, 0x18, 0x0a, 0x14, 0x53, 0x32, 0x41, 0x5f, + 0x53, 0x53, 0x4c, 0x5f, 0x53, 0x49, 0x47, 0x4e, 0x5f, 0x45, 0x44, 0x32, 0x35, 0x35, 0x31, 0x39, + 0x10, 0x0a, 0x32, 0x57, 0x0a, 0x0a, 0x53, 0x32, 0x41, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, + 0x12, 0x49, 0x0a, 0x0c, 0x53, 0x65, 0x74, 0x55, 0x70, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, + 0x12, 0x18, 0x2e, 0x73, 0x32, 0x61, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x76, 0x32, 0x2e, + 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x1a, 0x19, 0x2e, 0x73, 0x32, 0x61, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x76, 0x32, 0x2e, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, + 0x6e, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x28, 0x01, 0x30, 0x01, 0x42, 0x36, 0x5a, 0x34, 0x67, + 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x2f, 0x73, 0x32, 0x61, 0x2f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x2f, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x2f, 0x76, 0x32, 0x2f, 0x73, 0x32, 0x61, 0x5f, 0x67, 0x6f, 0x5f, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -2158,7 +2182,7 @@ func file_internal_proto_v2_s2a_s2a_proto_rawDescGZIP() []byte { var file_internal_proto_v2_s2a_s2a_proto_enumTypes = make([]protoimpl.EnumInfo, 6) var file_internal_proto_v2_s2a_s2a_proto_msgTypes = make([]protoimpl.MessageInfo, 17) -var file_internal_proto_v2_s2a_s2a_proto_goTypes = []interface{}{ +var file_internal_proto_v2_s2a_s2a_proto_goTypes = []any{ (SignatureAlgorithm)(0), // 0: s2a.proto.v2.SignatureAlgorithm (GetTlsConfigurationResp_ServerTlsConfiguration_RequestClientCertificate)(0), // 1: s2a.proto.v2.GetTlsConfigurationResp.ServerTlsConfiguration.RequestClientCertificate (OffloadPrivateKeyOperationReq_PrivateKeyOperation)(0), // 2: s2a.proto.v2.OffloadPrivateKeyOperationReq.PrivateKeyOperation @@ -2183,7 +2207,7 @@ var file_internal_proto_v2_s2a_s2a_proto_goTypes = []interface{}{ (*ValidatePeerCertificateChainReq_ClientPeer)(nil), // 21: s2a.proto.v2.ValidatePeerCertificateChainReq.ClientPeer (*ValidatePeerCertificateChainReq_ServerPeer)(nil), // 22: s2a.proto.v2.ValidatePeerCertificateChainReq.ServerPeer (common_go_proto.AlpnProtocol)(0), // 23: s2a.proto.v2.AlpnProtocol - (*common_go_proto1.Identity)(nil), // 24: s2a.proto.Identity + (*common_go_proto.Identity)(nil), // 24: s2a.proto.v2.Identity (common_go_proto.ConnectionSide)(0), // 25: s2a.proto.v2.ConnectionSide (*s2a_context_go_proto.S2AContext)(nil), // 26: s2a.proto.v2.S2AContext (common_go_proto.TLSVersion)(0), // 27: s2a.proto.v2.TLSVersion @@ -2191,7 +2215,7 @@ var file_internal_proto_v2_s2a_s2a_proto_goTypes = []interface{}{ } var file_internal_proto_v2_s2a_s2a_proto_depIdxs = []int32{ 23, // 0: s2a.proto.v2.AlpnPolicy.alpn_protocols:type_name -> s2a.proto.v2.AlpnProtocol - 24, // 1: s2a.proto.v2.AuthenticationMechanism.identity:type_name -> s2a.proto.Identity + 24, // 1: s2a.proto.v2.AuthenticationMechanism.identity:type_name -> s2a.proto.v2.Identity 25, // 2: s2a.proto.v2.GetTlsConfigurationReq.connection_side:type_name -> s2a.proto.v2.ConnectionSide 19, // 3: s2a.proto.v2.GetTlsConfigurationResp.client_tls_configuration:type_name -> s2a.proto.v2.GetTlsConfigurationResp.ClientTlsConfiguration 20, // 4: s2a.proto.v2.GetTlsConfigurationResp.server_tls_configuration:type_name -> s2a.proto.v2.GetTlsConfigurationResp.ServerTlsConfiguration @@ -2203,7 +2227,7 @@ var file_internal_proto_v2_s2a_s2a_proto_depIdxs = []int32{ 22, // 10: s2a.proto.v2.ValidatePeerCertificateChainReq.server_peer:type_name -> s2a.proto.v2.ValidatePeerCertificateChainReq.ServerPeer 5, // 11: s2a.proto.v2.ValidatePeerCertificateChainResp.validation_result:type_name -> s2a.proto.v2.ValidatePeerCertificateChainResp.ValidationResult 26, // 12: s2a.proto.v2.ValidatePeerCertificateChainResp.context:type_name -> s2a.proto.v2.S2AContext - 24, // 13: s2a.proto.v2.SessionReq.local_identity:type_name -> s2a.proto.Identity + 24, // 13: s2a.proto.v2.SessionReq.local_identity:type_name -> s2a.proto.v2.Identity 7, // 14: s2a.proto.v2.SessionReq.authentication_mechanisms:type_name -> s2a.proto.v2.AuthenticationMechanism 9, // 15: s2a.proto.v2.SessionReq.get_tls_configuration_req:type_name -> s2a.proto.v2.GetTlsConfigurationReq 11, // 16: s2a.proto.v2.SessionReq.offload_private_key_operation_req:type_name -> s2a.proto.v2.OffloadPrivateKeyOperationReq @@ -2238,7 +2262,7 @@ func file_internal_proto_v2_s2a_s2a_proto_init() { return } if !protoimpl.UnsafeEnabled { - file_internal_proto_v2_s2a_s2a_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + file_internal_proto_v2_s2a_s2a_proto_msgTypes[0].Exporter = func(v any, i int) any { switch v := v.(*AlpnPolicy); i { case 0: return &v.state @@ -2250,7 +2274,7 @@ func file_internal_proto_v2_s2a_s2a_proto_init() { return nil } } - file_internal_proto_v2_s2a_s2a_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { + file_internal_proto_v2_s2a_s2a_proto_msgTypes[1].Exporter = func(v any, i int) any { switch v := v.(*AuthenticationMechanism); i { case 0: return &v.state @@ -2262,7 +2286,7 @@ func file_internal_proto_v2_s2a_s2a_proto_init() { return nil } } - file_internal_proto_v2_s2a_s2a_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { + file_internal_proto_v2_s2a_s2a_proto_msgTypes[2].Exporter = func(v any, i int) any { switch v := v.(*Status); i { case 0: return &v.state @@ -2274,7 +2298,7 @@ func file_internal_proto_v2_s2a_s2a_proto_init() { return nil } } - file_internal_proto_v2_s2a_s2a_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { + file_internal_proto_v2_s2a_s2a_proto_msgTypes[3].Exporter = func(v any, i int) any { switch v := v.(*GetTlsConfigurationReq); i { case 0: return &v.state @@ -2286,7 +2310,7 @@ func file_internal_proto_v2_s2a_s2a_proto_init() { return nil } } - file_internal_proto_v2_s2a_s2a_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { + file_internal_proto_v2_s2a_s2a_proto_msgTypes[4].Exporter = func(v any, i int) any { switch v := v.(*GetTlsConfigurationResp); i { case 0: return &v.state @@ -2298,7 +2322,7 @@ func file_internal_proto_v2_s2a_s2a_proto_init() { return nil } } - file_internal_proto_v2_s2a_s2a_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { + file_internal_proto_v2_s2a_s2a_proto_msgTypes[5].Exporter = func(v any, i int) any { switch v := v.(*OffloadPrivateKeyOperationReq); i { case 0: return &v.state @@ -2310,7 +2334,7 @@ func file_internal_proto_v2_s2a_s2a_proto_init() { return nil } } - file_internal_proto_v2_s2a_s2a_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { + file_internal_proto_v2_s2a_s2a_proto_msgTypes[6].Exporter = func(v any, i int) any { switch v := v.(*OffloadPrivateKeyOperationResp); i { case 0: return &v.state @@ -2322,7 +2346,7 @@ func file_internal_proto_v2_s2a_s2a_proto_init() { return nil } } - file_internal_proto_v2_s2a_s2a_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { + file_internal_proto_v2_s2a_s2a_proto_msgTypes[7].Exporter = func(v any, i int) any { switch v := v.(*OffloadResumptionKeyOperationReq); i { case 0: return &v.state @@ -2334,7 +2358,7 @@ func file_internal_proto_v2_s2a_s2a_proto_init() { return nil } } - file_internal_proto_v2_s2a_s2a_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { + file_internal_proto_v2_s2a_s2a_proto_msgTypes[8].Exporter = func(v any, i int) any { switch v := v.(*OffloadResumptionKeyOperationResp); i { case 0: return &v.state @@ -2346,7 +2370,7 @@ func file_internal_proto_v2_s2a_s2a_proto_init() { return nil } } - file_internal_proto_v2_s2a_s2a_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { + file_internal_proto_v2_s2a_s2a_proto_msgTypes[9].Exporter = func(v any, i int) any { switch v := v.(*ValidatePeerCertificateChainReq); i { case 0: return &v.state @@ -2358,7 +2382,7 @@ func file_internal_proto_v2_s2a_s2a_proto_init() { return nil } } - file_internal_proto_v2_s2a_s2a_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { + file_internal_proto_v2_s2a_s2a_proto_msgTypes[10].Exporter = func(v any, i int) any { switch v := v.(*ValidatePeerCertificateChainResp); i { case 0: return &v.state @@ -2370,7 +2394,7 @@ func file_internal_proto_v2_s2a_s2a_proto_init() { return nil } } - file_internal_proto_v2_s2a_s2a_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { + file_internal_proto_v2_s2a_s2a_proto_msgTypes[11].Exporter = func(v any, i int) any { switch v := v.(*SessionReq); i { case 0: return &v.state @@ -2382,7 +2406,7 @@ func file_internal_proto_v2_s2a_s2a_proto_init() { return nil } } - file_internal_proto_v2_s2a_s2a_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { + file_internal_proto_v2_s2a_s2a_proto_msgTypes[12].Exporter = func(v any, i int) any { switch v := v.(*SessionResp); i { case 0: return &v.state @@ -2394,7 +2418,7 @@ func file_internal_proto_v2_s2a_s2a_proto_init() { return nil } } - file_internal_proto_v2_s2a_s2a_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { + file_internal_proto_v2_s2a_s2a_proto_msgTypes[13].Exporter = func(v any, i int) any { switch v := v.(*GetTlsConfigurationResp_ClientTlsConfiguration); i { case 0: return &v.state @@ -2406,7 +2430,7 @@ func file_internal_proto_v2_s2a_s2a_proto_init() { return nil } } - file_internal_proto_v2_s2a_s2a_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { + file_internal_proto_v2_s2a_s2a_proto_msgTypes[14].Exporter = func(v any, i int) any { switch v := v.(*GetTlsConfigurationResp_ServerTlsConfiguration); i { case 0: return &v.state @@ -2418,7 +2442,7 @@ func file_internal_proto_v2_s2a_s2a_proto_init() { return nil } } - file_internal_proto_v2_s2a_s2a_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { + file_internal_proto_v2_s2a_s2a_proto_msgTypes[15].Exporter = func(v any, i int) any { switch v := v.(*ValidatePeerCertificateChainReq_ClientPeer); i { case 0: return &v.state @@ -2430,7 +2454,7 @@ func file_internal_proto_v2_s2a_s2a_proto_init() { return nil } } - file_internal_proto_v2_s2a_s2a_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} { + file_internal_proto_v2_s2a_s2a_proto_msgTypes[16].Exporter = func(v any, i int) any { switch v := v.(*ValidatePeerCertificateChainReq_ServerPeer); i { case 0: return &v.state @@ -2443,30 +2467,30 @@ func file_internal_proto_v2_s2a_s2a_proto_init() { } } } - file_internal_proto_v2_s2a_s2a_proto_msgTypes[1].OneofWrappers = []interface{}{ + file_internal_proto_v2_s2a_s2a_proto_msgTypes[1].OneofWrappers = []any{ (*AuthenticationMechanism_Token)(nil), } - file_internal_proto_v2_s2a_s2a_proto_msgTypes[4].OneofWrappers = []interface{}{ + file_internal_proto_v2_s2a_s2a_proto_msgTypes[4].OneofWrappers = []any{ (*GetTlsConfigurationResp_ClientTlsConfiguration_)(nil), (*GetTlsConfigurationResp_ServerTlsConfiguration_)(nil), } - file_internal_proto_v2_s2a_s2a_proto_msgTypes[5].OneofWrappers = []interface{}{ + file_internal_proto_v2_s2a_s2a_proto_msgTypes[5].OneofWrappers = []any{ (*OffloadPrivateKeyOperationReq_RawBytes)(nil), (*OffloadPrivateKeyOperationReq_Sha256Digest)(nil), (*OffloadPrivateKeyOperationReq_Sha384Digest)(nil), (*OffloadPrivateKeyOperationReq_Sha512Digest)(nil), } - file_internal_proto_v2_s2a_s2a_proto_msgTypes[9].OneofWrappers = []interface{}{ + file_internal_proto_v2_s2a_s2a_proto_msgTypes[9].OneofWrappers = []any{ (*ValidatePeerCertificateChainReq_ClientPeer_)(nil), (*ValidatePeerCertificateChainReq_ServerPeer_)(nil), } - file_internal_proto_v2_s2a_s2a_proto_msgTypes[11].OneofWrappers = []interface{}{ + file_internal_proto_v2_s2a_s2a_proto_msgTypes[11].OneofWrappers = []any{ (*SessionReq_GetTlsConfigurationReq)(nil), (*SessionReq_OffloadPrivateKeyOperationReq)(nil), (*SessionReq_OffloadResumptionKeyOperationReq)(nil), (*SessionReq_ValidatePeerCertificateChainReq)(nil), } - file_internal_proto_v2_s2a_s2a_proto_msgTypes[12].OneofWrappers = []interface{}{ + file_internal_proto_v2_s2a_s2a_proto_msgTypes[12].OneofWrappers = []any{ (*SessionResp_GetTlsConfigurationResp)(nil), (*SessionResp_OffloadPrivateKeyOperationResp)(nil), (*SessionResp_OffloadResumptionKeyOperationResp)(nil), diff --git a/vendor/github.com/google/s2a-go/internal/proto/v2/s2a_go_proto/s2a_grpc.pb.go b/vendor/github.com/google/s2a-go/internal/proto/v2/s2a_go_proto/s2a_grpc.pb.go index 2566df6c3..c93f75a78 100644 --- a/vendor/github.com/google/s2a-go/internal/proto/v2/s2a_go_proto/s2a_grpc.pb.go +++ b/vendor/github.com/google/s2a-go/internal/proto/v2/s2a_go_proto/s2a_grpc.pb.go @@ -14,7 +14,7 @@ // Code generated by protoc-gen-go-grpc. DO NOT EDIT. // versions: -// - protoc-gen-go-grpc v1.3.0 +// - protoc-gen-go-grpc v1.4.0 // - protoc v3.21.12 // source: internal/proto/v2/s2a/s2a.proto @@ -29,8 +29,8 @@ import ( // This is a compile-time assertion to ensure that this generated file // is compatible with the grpc package it is being compiled against. -// Requires gRPC-Go v1.32.0 or later. -const _ = grpc.SupportPackageIsVersion7 +// Requires gRPC-Go v1.62.0 or later. +const _ = grpc.SupportPackageIsVersion8 const ( S2AService_SetUpSession_FullMethodName = "/s2a.proto.v2.S2AService/SetUpSession" @@ -54,11 +54,12 @@ func NewS2AServiceClient(cc grpc.ClientConnInterface) S2AServiceClient { } func (c *s2AServiceClient) SetUpSession(ctx context.Context, opts ...grpc.CallOption) (S2AService_SetUpSessionClient, error) { - stream, err := c.cc.NewStream(ctx, &S2AService_ServiceDesc.Streams[0], S2AService_SetUpSession_FullMethodName, opts...) + cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) + stream, err := c.cc.NewStream(ctx, &S2AService_ServiceDesc.Streams[0], S2AService_SetUpSession_FullMethodName, cOpts...) if err != nil { return nil, err } - x := &s2AServiceSetUpSessionClient{stream} + x := &s2AServiceSetUpSessionClient{ClientStream: stream} return x, nil } @@ -115,7 +116,7 @@ func RegisterS2AServiceServer(s grpc.ServiceRegistrar, srv S2AServiceServer) { } func _S2AService_SetUpSession_Handler(srv interface{}, stream grpc.ServerStream) error { - return srv.(S2AServiceServer).SetUpSession(&s2AServiceSetUpSessionServer{stream}) + return srv.(S2AServiceServer).SetUpSession(&s2AServiceSetUpSessionServer{ServerStream: stream}) } type S2AService_SetUpSessionServer interface { diff --git a/vendor/github.com/google/s2a-go/internal/record/record.go b/vendor/github.com/google/s2a-go/internal/record/record.go index c60515510..e76509ef0 100644 --- a/vendor/github.com/google/s2a-go/internal/record/record.go +++ b/vendor/github.com/google/s2a-go/internal/record/record.go @@ -378,11 +378,6 @@ func (p *conn) Read(b []byte) (n int, err error) { if len(p.handshakeBuf) > 0 { return 0, errors.New("application data received while processing fragmented handshake messages") } - if p.ticketState == receivingTickets { - p.ticketState = notReceivingTickets - grpclog.Infof("Sending session tickets to S2A.") - p.ticketSender.sendTicketsToS2A(p.sessionTickets, p.callComplete) - } case alert: return 0, p.handleAlertMessage() case handshake: @@ -500,17 +495,7 @@ func (p *conn) buildRecord(plaintext []byte, recordType byte, recordStartIndex i } func (p *conn) Close() error { - p.readMutex.Lock() - defer p.readMutex.Unlock() - p.writeMutex.Lock() - defer p.writeMutex.Unlock() - // If p.ticketState is equal to notReceivingTickets, then S2A has - // been sent a flight of session tickets, and we must wait for the - // call to S2A to complete before closing the record protocol. - if p.ticketState == notReceivingTickets { - <-p.callComplete - grpclog.Infof("Safe to close the connection because sending tickets to S2A is (already) complete.") - } + // Close the connection immediately. return p.Conn.Close() } @@ -663,7 +648,7 @@ func (p *conn) handleHandshakeMessage() error { // Several handshake messages may be coalesced into a single record. // Continue reading them until the handshake buffer is empty. for len(p.handshakeBuf) > 0 { - handshakeMsgType, msgLen, msg, rawMsg, ok := p.parseHandshakeMsg() + handshakeMsgType, msgLen, msg, _, ok := p.parseHandshakeMsg() if !ok { // The handshake could not be fully parsed, so read in another // record and try again later. @@ -681,20 +666,7 @@ func (p *conn) handleHandshakeMessage() error { return err } case tlsHandshakeNewSessionTicketType: - // Ignore tickets that are received after a batch of tickets has - // been sent to S2A. - if p.ticketState == notReceivingTickets { - continue - } - if p.ticketState == ticketsNotYetReceived { - p.ticketState = receivingTickets - } - p.sessionTickets = append(p.sessionTickets, rawMsg) - if len(p.sessionTickets) == maxAllowedTickets { - p.ticketState = notReceivingTickets - grpclog.Infof("Sending session tickets to S2A.") - p.ticketSender.sendTicketsToS2A(p.sessionTickets, p.callComplete) - } + // Do nothing for session ticket. default: return errors.New("unknown handshake message type") } diff --git a/vendor/github.com/google/s2a-go/internal/tokenmanager/tokenmanager.go b/vendor/github.com/google/s2a-go/internal/tokenmanager/tokenmanager.go index ec96ba3b6..4057e70c8 100644 --- a/vendor/github.com/google/s2a-go/internal/tokenmanager/tokenmanager.go +++ b/vendor/github.com/google/s2a-go/internal/tokenmanager/tokenmanager.go @@ -23,7 +23,8 @@ import ( "fmt" "os" - commonpb "github.com/google/s2a-go/internal/proto/common_go_proto" + commonpbv1 "github.com/google/s2a-go/internal/proto/common_go_proto" + commonpb "github.com/google/s2a-go/internal/proto/v2/common_go_proto" ) const ( @@ -37,7 +38,7 @@ type AccessTokenManager interface { DefaultToken() (token string, err error) // Token returns a token that an application with local identity equal to // identity must use to authenticate to S2A. - Token(identity *commonpb.Identity) (token string, err error) + Token(identity interface{}) (token string, err error) } type singleTokenAccessTokenManager struct { @@ -65,6 +66,14 @@ func (m *singleTokenAccessTokenManager) DefaultToken() (string, error) { } // Token always returns the token managed by the singleTokenAccessTokenManager. -func (m *singleTokenAccessTokenManager) Token(*commonpb.Identity) (string, error) { +func (m *singleTokenAccessTokenManager) Token(identity interface{}) (string, error) { + switch v := identity.(type) { + case *commonpbv1.Identity: + // valid type. + case *commonpb.Identity: + // valid type. + default: + return "", fmt.Errorf("Incorrect identity type: %v", v) + } return m.token, nil } diff --git a/vendor/github.com/google/s2a-go/internal/v2/s2av2.go b/vendor/github.com/google/s2a-go/internal/v2/s2av2.go index 85a8379d8..0cc78547e 100644 --- a/vendor/github.com/google/s2a-go/internal/v2/s2av2.go +++ b/vendor/github.com/google/s2a-go/internal/v2/s2av2.go @@ -28,7 +28,6 @@ import ( "os" "time" - "github.com/golang/protobuf/proto" "github.com/google/s2a-go/fallback" "github.com/google/s2a-go/internal/handshaker/service" "github.com/google/s2a-go/internal/tokenmanager" @@ -38,8 +37,9 @@ import ( "google.golang.org/grpc" "google.golang.org/grpc/credentials" "google.golang.org/grpc/grpclog" + "google.golang.org/protobuf/proto" - commonpbv1 "github.com/google/s2a-go/internal/proto/common_go_proto" + commonpb "github.com/google/s2a-go/internal/proto/v2/common_go_proto" s2av2pb "github.com/google/s2a-go/internal/proto/v2/s2a_go_proto" ) @@ -59,18 +59,18 @@ type s2av2TransportCreds struct { transportCreds credentials.TransportCredentials tokenManager *tokenmanager.AccessTokenManager // localIdentity should only be used by the client. - localIdentity *commonpbv1.Identity + localIdentity *commonpb.Identity // localIdentities should only be used by the server. - localIdentities []*commonpbv1.Identity + localIdentities []*commonpb.Identity verificationMode s2av2pb.ValidatePeerCertificateChainReq_VerificationMode fallbackClientHandshake fallback.ClientHandshake - getS2AStream func(ctx context.Context, s2av2Address string) (stream.S2AStream, error) + getS2AStream stream.GetS2AStream serverAuthorizationPolicy []byte } // NewClientCreds returns a client-side transport credentials object that uses // the S2Av2 to establish a secure connection with a server. -func NewClientCreds(s2av2Address string, transportCreds credentials.TransportCredentials, localIdentity *commonpbv1.Identity, verificationMode s2av2pb.ValidatePeerCertificateChainReq_VerificationMode, fallbackClientHandshakeFunc fallback.ClientHandshake, getS2AStream func(ctx context.Context, s2av2Address string) (stream.S2AStream, error), serverAuthorizationPolicy []byte) (credentials.TransportCredentials, error) { +func NewClientCreds(s2av2Address string, transportCreds credentials.TransportCredentials, localIdentity *commonpb.Identity, verificationMode s2av2pb.ValidatePeerCertificateChainReq_VerificationMode, fallbackClientHandshakeFunc fallback.ClientHandshake, getS2AStream stream.GetS2AStream, serverAuthorizationPolicy []byte) (credentials.TransportCredentials, error) { // Create an AccessTokenManager instance to use to authenticate to S2Av2. accessTokenManager, err := tokenmanager.NewSingleTokenAccessTokenManager() @@ -101,7 +101,7 @@ func NewClientCreds(s2av2Address string, transportCreds credentials.TransportCre // NewServerCreds returns a server-side transport credentials object that uses // the S2Av2 to establish a secure connection with a client. -func NewServerCreds(s2av2Address string, transportCreds credentials.TransportCredentials, localIdentities []*commonpbv1.Identity, verificationMode s2av2pb.ValidatePeerCertificateChainReq_VerificationMode, getS2AStream func(ctx context.Context, s2av2Address string) (stream.S2AStream, error)) (credentials.TransportCredentials, error) { +func NewServerCreds(s2av2Address string, transportCreds credentials.TransportCredentials, localIdentities []*commonpb.Identity, verificationMode s2av2pb.ValidatePeerCertificateChainReq_VerificationMode, getS2AStream stream.GetS2AStream) (credentials.TransportCredentials, error) { // Create an AccessTokenManager instance to use to authenticate to S2Av2. accessTokenManager, err := tokenmanager.NewSingleTokenAccessTokenManager() creds := &s2av2TransportCreds{ @@ -183,13 +183,7 @@ func (c *s2av2TransportCreds) ClientHandshake(ctx context.Context, serverAuthori } creds := credentials.NewTLS(config) - var conn net.Conn - var authInfo credentials.AuthInfo - retry.Run(timeoutCtx, - func() error { - conn, authInfo, err = creds.ClientHandshake(timeoutCtx, serverName, rawConn) - return err - }) + conn, authInfo, err := creds.ClientHandshake(timeoutCtx, serverName, rawConn) if err != nil { grpclog.Infof("Failed to do client handshake using S2Av2: %v", err) if c.fallbackClientHandshake != nil { @@ -197,7 +191,7 @@ func (c *s2av2TransportCreds) ClientHandshake(ctx context.Context, serverAuthori } return nil, nil, err } - grpclog.Infof("Successfully done client handshake using S2Av2 to: %s", serverName) + grpclog.Infof("client-side handshake is done using S2Av2 to: %s", serverName) return conn, authInfo, err } @@ -247,13 +241,7 @@ func (c *s2av2TransportCreds) ServerHandshake(rawConn net.Conn) (net.Conn, crede } creds := credentials.NewTLS(config) - var conn net.Conn - var authInfo credentials.AuthInfo - retry.Run(ctx, - func() error { - conn, authInfo, err = creds.ServerHandshake(rawConn) - return err - }) + conn, authInfo, err := creds.ServerHandshake(rawConn) if err != nil { grpclog.Infof("Failed to do server handshake using S2Av2: %v", err) return nil, nil, err @@ -280,15 +268,15 @@ func (c *s2av2TransportCreds) Clone() credentials.TransportCredentials { tokenManager = *c.tokenManager } verificationMode := c.verificationMode - var localIdentity *commonpbv1.Identity + var localIdentity *commonpb.Identity if c.localIdentity != nil { - localIdentity = proto.Clone(c.localIdentity).(*commonpbv1.Identity) + localIdentity = proto.Clone(c.localIdentity).(*commonpb.Identity) } - var localIdentities []*commonpbv1.Identity + var localIdentities []*commonpb.Identity if c.localIdentities != nil { - localIdentities = make([]*commonpbv1.Identity, len(c.localIdentities)) + localIdentities = make([]*commonpb.Identity, len(c.localIdentities)) for i, localIdentity := range c.localIdentities { - localIdentities[i] = proto.Clone(localIdentity).(*commonpbv1.Identity) + localIdentities[i] = proto.Clone(localIdentity).(*commonpb.Identity) } } creds := &s2av2TransportCreds{ @@ -318,8 +306,9 @@ func NewClientTLSConfig( tokenManager tokenmanager.AccessTokenManager, verificationMode s2av2pb.ValidatePeerCertificateChainReq_VerificationMode, serverName string, - serverAuthorizationPolicy []byte) (*tls.Config, error) { - s2AStream, err := createStream(ctx, s2av2Address, transportCreds, nil) + serverAuthorizationPolicy []byte, + getStream stream.GetS2AStream) (*tls.Config, error) { + s2AStream, err := createStream(ctx, s2av2Address, transportCreds, getStream) if err != nil { grpclog.Infof("Failed to connect to S2Av2: %v", err) return nil, err @@ -362,7 +351,7 @@ func (x s2AGrpcStream) CloseSend() error { return x.stream.CloseSend() } -func createStream(ctx context.Context, s2av2Address string, transportCreds credentials.TransportCredentials, getS2AStream func(ctx context.Context, s2av2Address string) (stream.S2AStream, error)) (stream.S2AStream, error) { +func createStream(ctx context.Context, s2av2Address string, transportCreds credentials.TransportCredentials, getS2AStream stream.GetS2AStream) (stream.S2AStream, error) { if getS2AStream != nil { return getS2AStream(ctx, s2av2Address) } diff --git a/vendor/github.com/google/s2a-go/internal/v2/tlsconfigstore/tlsconfigstore.go b/vendor/github.com/google/s2a-go/internal/v2/tlsconfigstore/tlsconfigstore.go index 4d9191322..6ca75f560 100644 --- a/vendor/github.com/google/s2a-go/internal/v2/tlsconfigstore/tlsconfigstore.go +++ b/vendor/github.com/google/s2a-go/internal/v2/tlsconfigstore/tlsconfigstore.go @@ -33,7 +33,6 @@ import ( "google.golang.org/grpc/codes" "google.golang.org/grpc/grpclog" - commonpbv1 "github.com/google/s2a-go/internal/proto/common_go_proto" commonpb "github.com/google/s2a-go/internal/proto/v2/common_go_proto" s2av2pb "github.com/google/s2a-go/internal/proto/v2/s2a_go_proto" ) @@ -44,8 +43,8 @@ const ( ) // GetTLSConfigurationForClient returns a tls.Config instance for use by a client application. -func GetTLSConfigurationForClient(serverHostname string, s2AStream stream.S2AStream, tokenManager tokenmanager.AccessTokenManager, localIdentity *commonpbv1.Identity, verificationMode s2av2pb.ValidatePeerCertificateChainReq_VerificationMode, serverAuthorizationPolicy []byte) (*tls.Config, error) { - authMechanisms := getAuthMechanisms(tokenManager, []*commonpbv1.Identity{localIdentity}) +func GetTLSConfigurationForClient(serverHostname string, s2AStream stream.S2AStream, tokenManager tokenmanager.AccessTokenManager, localIdentity *commonpb.Identity, verificationMode s2av2pb.ValidatePeerCertificateChainReq_VerificationMode, serverAuthorizationPolicy []byte) (*tls.Config, error) { + authMechanisms := getAuthMechanisms(tokenManager, []*commonpb.Identity{localIdentity}) if grpclog.V(1) { grpclog.Infof("Sending request to S2Av2 for client TLS config.") @@ -76,7 +75,7 @@ func GetTLSConfigurationForClient(serverHostname string, s2AStream stream.S2AStr return nil, fmt.Errorf("failed to get TLS configuration from S2A: %d, %v", resp.GetStatus().Code, resp.GetStatus().Details) } - // Extract TLS configiguration from SessionResp. + // Extract TLS configuration from SessionResp. tlsConfig := resp.GetGetTlsConfigurationResp().GetClientTlsConfiguration() var cert tls.Certificate @@ -126,7 +125,7 @@ func GetTLSConfigurationForClient(serverHostname string, s2AStream stream.S2AStr } // GetTLSConfigurationForServer returns a tls.Config instance for use by a server application. -func GetTLSConfigurationForServer(s2AStream stream.S2AStream, tokenManager tokenmanager.AccessTokenManager, localIdentities []*commonpbv1.Identity, verificationMode s2av2pb.ValidatePeerCertificateChainReq_VerificationMode) (*tls.Config, error) { +func GetTLSConfigurationForServer(s2AStream stream.S2AStream, tokenManager tokenmanager.AccessTokenManager, localIdentities []*commonpb.Identity, verificationMode s2av2pb.ValidatePeerCertificateChainReq_VerificationMode) (*tls.Config, error) { return &tls.Config{ GetConfigForClient: ClientConfig(tokenManager, localIdentities, verificationMode, s2AStream), }, nil @@ -136,7 +135,7 @@ func GetTLSConfigurationForServer(s2AStream stream.S2AStream, tokenManager token // connection with a client, based on SNI communicated during ClientHello. // Ensures that server presents the correct certificate to establish a TLS // connection. -func ClientConfig(tokenManager tokenmanager.AccessTokenManager, localIdentities []*commonpbv1.Identity, verificationMode s2av2pb.ValidatePeerCertificateChainReq_VerificationMode, s2AStream stream.S2AStream) func(chi *tls.ClientHelloInfo) (*tls.Config, error) { +func ClientConfig(tokenManager tokenmanager.AccessTokenManager, localIdentities []*commonpb.Identity, verificationMode s2av2pb.ValidatePeerCertificateChainReq_VerificationMode, s2AStream stream.S2AStream) func(chi *tls.ClientHelloInfo) (*tls.Config, error) { return func(chi *tls.ClientHelloInfo) (*tls.Config, error) { tlsConfig, err := getServerConfigFromS2Av2(tokenManager, localIdentities, chi.ServerName, s2AStream) if err != nil { @@ -219,9 +218,9 @@ func getTLSCipherSuite(tlsCipherSuite commonpb.Ciphersuite) uint16 { } } -func getServerConfigFromS2Av2(tokenManager tokenmanager.AccessTokenManager, localIdentities []*commonpbv1.Identity, sni string, s2AStream stream.S2AStream) (*s2av2pb.GetTlsConfigurationResp_ServerTlsConfiguration, error) { +func getServerConfigFromS2Av2(tokenManager tokenmanager.AccessTokenManager, localIdentities []*commonpb.Identity, sni string, s2AStream stream.S2AStream) (*s2av2pb.GetTlsConfigurationResp_ServerTlsConfiguration, error) { authMechanisms := getAuthMechanisms(tokenManager, localIdentities) - var locID *commonpbv1.Identity + var locID *commonpb.Identity if localIdentities != nil { locID = localIdentities[0] } @@ -283,7 +282,7 @@ func getTLSClientAuthType(tlsConfig *s2av2pb.GetTlsConfigurationResp_ServerTlsCo return clientAuth } -func getAuthMechanisms(tokenManager tokenmanager.AccessTokenManager, localIdentities []*commonpbv1.Identity) []*s2av2pb.AuthenticationMechanism { +func getAuthMechanisms(tokenManager tokenmanager.AccessTokenManager, localIdentities []*commonpb.Identity) []*s2av2pb.AuthenticationMechanism { if tokenManager == nil { return nil } diff --git a/vendor/github.com/google/s2a-go/s2a.go b/vendor/github.com/google/s2a-go/s2a.go index 5ecb06f93..c52fccddf 100644 --- a/vendor/github.com/google/s2a-go/s2a.go +++ b/vendor/github.com/google/s2a-go/s2a.go @@ -29,17 +29,19 @@ import ( "sync" "time" - "github.com/golang/protobuf/proto" "github.com/google/s2a-go/fallback" "github.com/google/s2a-go/internal/handshaker" "github.com/google/s2a-go/internal/handshaker/service" "github.com/google/s2a-go/internal/tokenmanager" "github.com/google/s2a-go/internal/v2" "github.com/google/s2a-go/retry" + "github.com/google/s2a-go/stream" "google.golang.org/grpc/credentials" "google.golang.org/grpc/grpclog" + "google.golang.org/protobuf/proto" - commonpb "github.com/google/s2a-go/internal/proto/common_go_proto" + commonpbv1 "github.com/google/s2a-go/internal/proto/common_go_proto" + commonpb "github.com/google/s2a-go/internal/proto/v2/common_go_proto" s2av2pb "github.com/google/s2a-go/internal/proto/v2/s2a_go_proto" ) @@ -54,17 +56,17 @@ const ( // credentials.TransportCredentials interface. type s2aTransportCreds struct { info *credentials.ProtocolInfo - minTLSVersion commonpb.TLSVersion - maxTLSVersion commonpb.TLSVersion + minTLSVersion commonpbv1.TLSVersion + maxTLSVersion commonpbv1.TLSVersion // tlsCiphersuites contains the ciphersuites used in the S2A connection. // Note that these are currently unconfigurable. - tlsCiphersuites []commonpb.Ciphersuite + tlsCiphersuites []commonpbv1.Ciphersuite // localIdentity should only be used by the client. - localIdentity *commonpb.Identity + localIdentity *commonpbv1.Identity // localIdentities should only be used by the server. - localIdentities []*commonpb.Identity + localIdentities []*commonpbv1.Identity // targetIdentities should only be used by the client. - targetIdentities []*commonpb.Identity + targetIdentities []*commonpbv1.Identity isClient bool s2aAddr string ensureProcessSessionTickets *sync.WaitGroup @@ -76,7 +78,7 @@ func NewClientCreds(opts *ClientOptions) (credentials.TransportCredentials, erro if opts == nil { return nil, errors.New("nil client options") } - var targetIdentities []*commonpb.Identity + var targetIdentities []*commonpbv1.Identity for _, targetIdentity := range opts.TargetIdentities { protoTargetIdentity, err := toProtoIdentity(targetIdentity) if err != nil { @@ -93,12 +95,12 @@ func NewClientCreds(opts *ClientOptions) (credentials.TransportCredentials, erro info: &credentials.ProtocolInfo{ SecurityProtocol: s2aSecurityProtocol, }, - minTLSVersion: commonpb.TLSVersion_TLS1_3, - maxTLSVersion: commonpb.TLSVersion_TLS1_3, - tlsCiphersuites: []commonpb.Ciphersuite{ - commonpb.Ciphersuite_AES_128_GCM_SHA256, - commonpb.Ciphersuite_AES_256_GCM_SHA384, - commonpb.Ciphersuite_CHACHA20_POLY1305_SHA256, + minTLSVersion: commonpbv1.TLSVersion_TLS1_3, + maxTLSVersion: commonpbv1.TLSVersion_TLS1_3, + tlsCiphersuites: []commonpbv1.Ciphersuite{ + commonpbv1.Ciphersuite_AES_128_GCM_SHA256, + commonpbv1.Ciphersuite_AES_256_GCM_SHA384, + commonpbv1.Ciphersuite_CHACHA20_POLY1305_SHA256, }, localIdentity: localIdentity, targetIdentities: targetIdentities, @@ -112,7 +114,11 @@ func NewClientCreds(opts *ClientOptions) (credentials.TransportCredentials, erro if opts.FallbackOpts != nil && opts.FallbackOpts.FallbackClientHandshakeFunc != nil { fallbackFunc = opts.FallbackOpts.FallbackClientHandshakeFunc } - return v2.NewClientCreds(opts.S2AAddress, opts.TransportCreds, localIdentity, verificationMode, fallbackFunc, opts.getS2AStream, opts.serverAuthorizationPolicy) + v2LocalIdentity, err := toV2ProtoIdentity(opts.LocalIdentity) + if err != nil { + return nil, err + } + return v2.NewClientCreds(opts.S2AAddress, opts.TransportCreds, v2LocalIdentity, verificationMode, fallbackFunc, opts.getS2AStream, opts.serverAuthorizationPolicy) } // NewServerCreds returns a server-side transport credentials object that uses @@ -121,7 +127,7 @@ func NewServerCreds(opts *ServerOptions) (credentials.TransportCredentials, erro if opts == nil { return nil, errors.New("nil server options") } - var localIdentities []*commonpb.Identity + var localIdentities []*commonpbv1.Identity for _, localIdentity := range opts.LocalIdentities { protoLocalIdentity, err := toProtoIdentity(localIdentity) if err != nil { @@ -134,12 +140,12 @@ func NewServerCreds(opts *ServerOptions) (credentials.TransportCredentials, erro info: &credentials.ProtocolInfo{ SecurityProtocol: s2aSecurityProtocol, }, - minTLSVersion: commonpb.TLSVersion_TLS1_3, - maxTLSVersion: commonpb.TLSVersion_TLS1_3, - tlsCiphersuites: []commonpb.Ciphersuite{ - commonpb.Ciphersuite_AES_128_GCM_SHA256, - commonpb.Ciphersuite_AES_256_GCM_SHA384, - commonpb.Ciphersuite_CHACHA20_POLY1305_SHA256, + minTLSVersion: commonpbv1.TLSVersion_TLS1_3, + maxTLSVersion: commonpbv1.TLSVersion_TLS1_3, + tlsCiphersuites: []commonpbv1.Ciphersuite{ + commonpbv1.Ciphersuite_AES_128_GCM_SHA256, + commonpbv1.Ciphersuite_AES_256_GCM_SHA384, + commonpbv1.Ciphersuite_CHACHA20_POLY1305_SHA256, }, localIdentities: localIdentities, isClient: false, @@ -147,7 +153,15 @@ func NewServerCreds(opts *ServerOptions) (credentials.TransportCredentials, erro }, nil } verificationMode := getVerificationMode(opts.VerificationMode) - return v2.NewServerCreds(opts.S2AAddress, opts.TransportCreds, localIdentities, verificationMode, opts.getS2AStream) + var v2LocalIdentities []*commonpb.Identity + for _, localIdentity := range opts.LocalIdentities { + protoLocalIdentity, err := toV2ProtoIdentity(localIdentity) + if err != nil { + return nil, err + } + v2LocalIdentities = append(v2LocalIdentities, protoLocalIdentity) + } + return v2.NewServerCreds(opts.S2AAddress, opts.TransportCreds, v2LocalIdentities, verificationMode, opts.getS2AStream) } // ClientHandshake initiates a client-side TLS handshake using the S2A. @@ -248,22 +262,22 @@ func (c *s2aTransportCreds) Info() credentials.ProtocolInfo { func (c *s2aTransportCreds) Clone() credentials.TransportCredentials { info := *c.info - var localIdentity *commonpb.Identity + var localIdentity *commonpbv1.Identity if c.localIdentity != nil { - localIdentity = proto.Clone(c.localIdentity).(*commonpb.Identity) + localIdentity = proto.Clone(c.localIdentity).(*commonpbv1.Identity) } - var localIdentities []*commonpb.Identity + var localIdentities []*commonpbv1.Identity if c.localIdentities != nil { - localIdentities = make([]*commonpb.Identity, len(c.localIdentities)) + localIdentities = make([]*commonpbv1.Identity, len(c.localIdentities)) for i, localIdentity := range c.localIdentities { - localIdentities[i] = proto.Clone(localIdentity).(*commonpb.Identity) + localIdentities[i] = proto.Clone(localIdentity).(*commonpbv1.Identity) } } - var targetIdentities []*commonpb.Identity + var targetIdentities []*commonpbv1.Identity if c.targetIdentities != nil { - targetIdentities = make([]*commonpb.Identity, len(c.targetIdentities)) + targetIdentities = make([]*commonpbv1.Identity, len(c.targetIdentities)) for i, targetIdentity := range c.targetIdentities { - targetIdentities[i] = proto.Clone(targetIdentity).(*commonpb.Identity) + targetIdentities[i] = proto.Clone(targetIdentity).(*commonpbv1.Identity) } } return &s2aTransportCreds{ @@ -317,6 +331,7 @@ func NewTLSClientConfigFactory(opts *ClientOptions) (TLSClientConfigFactory, err tokenManager: nil, verificationMode: getVerificationMode(opts.VerificationMode), serverAuthorizationPolicy: opts.serverAuthorizationPolicy, + getStream: opts.getS2AStream, }, nil } return &s2aTLSClientConfigFactory{ @@ -325,6 +340,7 @@ func NewTLSClientConfigFactory(opts *ClientOptions) (TLSClientConfigFactory, err tokenManager: tokenManager, verificationMode: getVerificationMode(opts.VerificationMode), serverAuthorizationPolicy: opts.serverAuthorizationPolicy, + getStream: opts.getS2AStream, }, nil } @@ -334,6 +350,7 @@ type s2aTLSClientConfigFactory struct { tokenManager tokenmanager.AccessTokenManager verificationMode s2av2pb.ValidatePeerCertificateChainReq_VerificationMode serverAuthorizationPolicy []byte + getStream stream.GetS2AStream } func (f *s2aTLSClientConfigFactory) Build( @@ -342,7 +359,7 @@ func (f *s2aTLSClientConfigFactory) Build( if opts != nil && opts.ServerName != "" { serverName = opts.ServerName } - return v2.NewClientTLSConfig(ctx, f.s2av2Address, f.transportCreds, f.tokenManager, f.verificationMode, serverName, f.serverAuthorizationPolicy) + return v2.NewClientTLSConfig(ctx, f.s2av2Address, f.transportCreds, f.tokenManager, f.verificationMode, serverName, f.serverAuthorizationPolicy, f.getStream) } func getVerificationMode(verificationMode VerificationModeType) s2av2pb.ValidatePeerCertificateChainReq_VerificationMode { @@ -351,6 +368,14 @@ func getVerificationMode(verificationMode VerificationModeType) s2av2pb.Validate return s2av2pb.ValidatePeerCertificateChainReq_CONNECT_TO_GOOGLE case Spiffe: return s2av2pb.ValidatePeerCertificateChainReq_SPIFFE + case ReservedCustomVerificationMode3: + return s2av2pb.ValidatePeerCertificateChainReq_RESERVED_CUSTOM_VERIFICATION_MODE_3 + case ReservedCustomVerificationMode4: + return s2av2pb.ValidatePeerCertificateChainReq_RESERVED_CUSTOM_VERIFICATION_MODE_4 + case ReservedCustomVerificationMode5: + return s2av2pb.ValidatePeerCertificateChainReq_RESERVED_CUSTOM_VERIFICATION_MODE_5 + case ReservedCustomVerificationMode6: + return s2av2pb.ValidatePeerCertificateChainReq_RESERVED_CUSTOM_VERIFICATION_MODE_6 default: return s2av2pb.ValidatePeerCertificateChainReq_UNSPECIFIED } @@ -396,24 +421,20 @@ func NewS2ADialTLSContextFunc(opts *ClientOptions) func(ctx context.Context, net defer cancel() var s2aTLSConfig *tls.Config + var c net.Conn retry.Run(timeoutCtx, func() error { s2aTLSConfig, err = factory.Build(timeoutCtx, &TLSClientConfigOptions{ ServerName: serverName, }) - return err - }) - if err != nil { - grpclog.Infof("error building S2A TLS config: %v", err) - return fallback(err) - } + if err != nil { + grpclog.Infof("error building S2A TLS config: %v", err) + return err + } - s2aDialer := &tls.Dialer{ - Config: s2aTLSConfig, - } - var c net.Conn - retry.Run(timeoutCtx, - func() error { + s2aDialer := &tls.Dialer{ + Config: s2aTLSConfig, + } c, err = s2aDialer.DialContext(timeoutCtx, network, addr) return err }) diff --git a/vendor/github.com/google/s2a-go/s2a_options.go b/vendor/github.com/google/s2a-go/s2a_options.go index fcdbc1621..b7a277f9e 100644 --- a/vendor/github.com/google/s2a-go/s2a_options.go +++ b/vendor/github.com/google/s2a-go/s2a_options.go @@ -19,7 +19,6 @@ package s2a import ( - "context" "crypto/tls" "errors" "sync" @@ -28,13 +27,25 @@ import ( "github.com/google/s2a-go/stream" "google.golang.org/grpc/credentials" - s2apb "github.com/google/s2a-go/internal/proto/common_go_proto" + s2av1pb "github.com/google/s2a-go/internal/proto/common_go_proto" + s2apb "github.com/google/s2a-go/internal/proto/v2/common_go_proto" ) // Identity is the interface for S2A identities. type Identity interface { // Name returns the name of the identity. Name() string + Attributes() map[string]string +} + +type UnspecifiedID struct { + Attr map[string]string +} + +func (u *UnspecifiedID) Name() string { return "" } + +func (u *UnspecifiedID) Attributes() map[string]string { + return u.Attr } type spiffeID struct { @@ -43,10 +54,10 @@ type spiffeID struct { func (s *spiffeID) Name() string { return s.spiffeID } +func (spiffeID) Attributes() map[string]string { return nil } + // NewSpiffeID creates a SPIFFE ID from id. -func NewSpiffeID(id string) Identity { - return &spiffeID{spiffeID: id} -} +func NewSpiffeID(id string) Identity { return &spiffeID{spiffeID: id} } type hostname struct { hostname string @@ -54,10 +65,10 @@ type hostname struct { func (h *hostname) Name() string { return h.hostname } +func (hostname) Attributes() map[string]string { return nil } + // NewHostname creates a hostname from name. -func NewHostname(name string) Identity { - return &hostname{hostname: name} -} +func NewHostname(name string) Identity { return &hostname{hostname: name} } type uid struct { uid string @@ -65,10 +76,10 @@ type uid struct { func (h *uid) Name() string { return h.uid } +func (uid) Attributes() map[string]string { return nil } + // NewUID creates a UID from name. -func NewUID(name string) Identity { - return &uid{uid: name} -} +func NewUID(name string) Identity { return &uid{uid: name} } // VerificationModeType specifies the mode that S2A must use to verify the peer // certificate chain. @@ -76,9 +87,13 @@ type VerificationModeType int // Three types of verification modes. const ( - Unspecified = iota - ConnectToGoogle + Unspecified VerificationModeType = iota Spiffe + ConnectToGoogle + ReservedCustomVerificationMode3 + ReservedCustomVerificationMode4 + ReservedCustomVerificationMode5 + ReservedCustomVerificationMode6 ) // ClientOptions contains the client-side options used to establish a secure @@ -133,7 +148,7 @@ type ClientOptions struct { FallbackOpts *FallbackOptions // Generates an S2AStream interface for talking to the S2A server. - getS2AStream func(ctx context.Context, s2av2Address string) (stream.S2AStream, error) + getS2AStream stream.GetS2AStream // Serialized user specified policy for server authorization. serverAuthorizationPolicy []byte @@ -187,7 +202,7 @@ type ServerOptions struct { VerificationMode VerificationModeType // Generates an S2AStream interface for talking to the S2A server. - getS2AStream func(ctx context.Context, s2av2Address string) (stream.S2AStream, error) + getS2AStream stream.GetS2AStream } // DefaultServerOptions returns the default server options. @@ -198,17 +213,59 @@ func DefaultServerOptions(s2aAddress string) *ServerOptions { } } -func toProtoIdentity(identity Identity) (*s2apb.Identity, error) { +func toProtoIdentity(identity Identity) (*s2av1pb.Identity, error) { + if identity == nil { + return nil, nil + } + switch id := identity.(type) { + case *spiffeID: + return &s2av1pb.Identity{ + IdentityOneof: &s2av1pb.Identity_SpiffeId{SpiffeId: id.Name()}, + Attributes: id.Attributes(), + }, nil + case *hostname: + return &s2av1pb.Identity{ + IdentityOneof: &s2av1pb.Identity_Hostname{Hostname: id.Name()}, + Attributes: id.Attributes(), + }, nil + case *uid: + return &s2av1pb.Identity{ + IdentityOneof: &s2av1pb.Identity_Uid{Uid: id.Name()}, + Attributes: id.Attributes(), + }, nil + case *UnspecifiedID: + return &s2av1pb.Identity{ + Attributes: id.Attributes(), + }, nil + default: + return nil, errors.New("unrecognized identity type") + } +} + +func toV2ProtoIdentity(identity Identity) (*s2apb.Identity, error) { if identity == nil { return nil, nil } switch id := identity.(type) { case *spiffeID: - return &s2apb.Identity{IdentityOneof: &s2apb.Identity_SpiffeId{SpiffeId: id.Name()}}, nil + return &s2apb.Identity{ + IdentityOneof: &s2apb.Identity_SpiffeId{SpiffeId: id.Name()}, + Attributes: id.Attributes(), + }, nil case *hostname: - return &s2apb.Identity{IdentityOneof: &s2apb.Identity_Hostname{Hostname: id.Name()}}, nil + return &s2apb.Identity{ + IdentityOneof: &s2apb.Identity_Hostname{Hostname: id.Name()}, + Attributes: id.Attributes(), + }, nil case *uid: - return &s2apb.Identity{IdentityOneof: &s2apb.Identity_Uid{Uid: id.Name()}}, nil + return &s2apb.Identity{ + IdentityOneof: &s2apb.Identity_Uid{Uid: id.Name()}, + Attributes: id.Attributes(), + }, nil + case *UnspecifiedID: + return &s2apb.Identity{ + Attributes: id.Attributes(), + }, nil default: return nil, errors.New("unrecognized identity type") } diff --git a/vendor/github.com/google/s2a-go/stream/s2a_stream.go b/vendor/github.com/google/s2a-go/stream/s2a_stream.go index 584bf32b1..ae2d5eb4c 100644 --- a/vendor/github.com/google/s2a-go/stream/s2a_stream.go +++ b/vendor/github.com/google/s2a-go/stream/s2a_stream.go @@ -20,6 +20,8 @@ package stream import ( + "context" + s2av2pb "github.com/google/s2a-go/internal/proto/v2/s2a_go_proto" ) @@ -32,3 +34,6 @@ type S2AStream interface { // Closes the channel to the S2A server. CloseSend() error } + +// GetS2AStream type is for generating an S2AStream interface for talking to the S2A server. +type GetS2AStream func(ctx context.Context, s2av2Address string, opts ...string) (S2AStream, error) diff --git a/vendor/github.com/googleapis/enterprise-certificate-proxy/client/client.go b/vendor/github.com/googleapis/enterprise-certificate-proxy/client/client.go index ea5beb5aa..c0600808a 100644 --- a/vendor/github.com/googleapis/enterprise-certificate-proxy/client/client.go +++ b/vendor/github.com/googleapis/enterprise-certificate-proxy/client/client.go @@ -118,7 +118,7 @@ func (k *Key) Public() crypto.PublicKey { // Sign signs a message digest, using the specified signer opts. Implements crypto.Signer interface. func (k *Key) Sign(_ io.Reader, digest []byte, opts crypto.SignerOpts) (signed []byte, err error) { if opts != nil && opts.HashFunc() != 0 && len(digest) != opts.HashFunc().Size() { - return nil, fmt.Errorf("Digest length of %v bytes does not match Hash function size of %v bytes", len(digest), opts.HashFunc().Size()) + return nil, fmt.Errorf("digest length of %v bytes does not match Hash function size of %v bytes", len(digest), opts.HashFunc().Size()) } err = k.client.Call(signAPI, SignArgs{Digest: digest, Opts: opts}, &signed) return @@ -138,7 +138,7 @@ func (k *Key) Decrypt(_ io.Reader, msg []byte, opts crypto.DecrypterOpts) (plain // ErrCredUnavailable is a sentinel error that indicates ECP Cred is unavailable, // possibly due to missing config or missing binary path. -var ErrCredUnavailable = errors.New("Cred is unavailable") +var ErrCredUnavailable = errors.New("cred is unavailable") // Cred spawns a signer subprocess that listens on stdin/stdout to perform certificate // related operations, including signing messages with the private key. diff --git a/vendor/github.com/googleapis/enterprise-certificate-proxy/client/util/util.go b/vendor/github.com/googleapis/enterprise-certificate-proxy/client/util/util.go index f374a7f55..ef76e1f04 100644 --- a/vendor/github.com/googleapis/enterprise-certificate-proxy/client/util/util.go +++ b/vendor/github.com/googleapis/enterprise-certificate-proxy/client/util/util.go @@ -39,7 +39,7 @@ type Libs struct { // ErrConfigUnavailable is a sentinel error that indicates ECP config is unavailable, // possibly due to entire config missing or missing binary path. -var ErrConfigUnavailable = errors.New("Config is unavailable") +var ErrConfigUnavailable = errors.New("config is unavailable") // LoadSignerBinaryPath retrieves the path of the signer binary from the config file. func LoadSignerBinaryPath(configFilePath string) (path string, err error) { diff --git a/vendor/github.com/googleapis/gax-go/v2/.release-please-manifest.json b/vendor/github.com/googleapis/gax-go/v2/.release-please-manifest.json index d51736e7e..2fcff6e27 100644 --- a/vendor/github.com/googleapis/gax-go/v2/.release-please-manifest.json +++ b/vendor/github.com/googleapis/gax-go/v2/.release-please-manifest.json @@ -1,3 +1,3 @@ { - "v2": "2.12.4" + "v2": "2.15.0" } diff --git a/vendor/github.com/googleapis/gax-go/v2/CHANGES.md b/vendor/github.com/googleapis/gax-go/v2/CHANGES.md index 7e36eb48f..ed27c5ee7 100644 --- a/vendor/github.com/googleapis/gax-go/v2/CHANGES.md +++ b/vendor/github.com/googleapis/gax-go/v2/CHANGES.md @@ -1,4 +1,100 @@ -# Changelog +# Changes + +## [2.22.0](https://github.com/googleapis/google-cloud-go/releases/tag/v2.22.0) (2026-04-14) + +## [2.21.0](https://github.com/googleapis/google-cloud-go/releases/tag/v2.21.0) (2026-04-01) + +### Features + +* hook transport telemetry into gax.Invoke and record (#496) ([d531001](https://github.com/googleapis/google-cloud-go/commit/d5310019d6c635956b61558627b13c2c2419044e)) +* update IsFeatureEnabled to not require EXPERIMENTAL (#497) ([a2a329e](https://github.com/googleapis/google-cloud-go/commit/a2a329e31d8ef8348a1ef7bea1c7072f8abcc145)) + +## [2.20.0](https://github.com/googleapis/google-cloud-go/releases/tag/v2.20.0) (2026-03-25) + +### Features + +* add TelemetryErrorInfo and ExtractTelemetryErrorInfo (#487) ([defdded](https://github.com/googleapis/google-cloud-go/commit/defdded3eac5d97e32243ef79216f1865f3250fb)) +* hook metric recording into gax.Invoke (#494) ([1f3e9ae](https://github.com/googleapis/google-cloud-go/commit/1f3e9aefd21a1a18a6e4da1e03ea84a0b46f2d49)) + +## [2.19.0](https://github.com/googleapis/google-cloud-go/releases/tag/v2.19.0) (2026-03-17) + +### Features + +* add ClientMetrics initialization core (#473) ([f53618c](https://github.com/googleapis/google-cloud-go/commit/f53618c2a9f19d5e5945395001fdc9b317e71faf)) +* add TransportTelemetryData for dynamic transport attributes (#481) ([8a7caf0](https://github.com/googleapis/google-cloud-go/commit/8a7caf0014c9ee9bcf448f16a2e1ae77407a78b8)) +* add WithClientMetrics CallOption (#479) ([76f0284](https://github.com/googleapis/google-cloud-go/commit/76f0284ef42fb92484531483975b7ccff9c54016)) +* pass logger to downstream via context (#474) ([434fa67](https://github.com/googleapis/google-cloud-go/commit/434fa6768b9ee50ed1050a2b5aa11dbe7dbd33a6)) +* update WithLogger to WithLoggerContext. (#478) ([1cb70ba](https://github.com/googleapis/google-cloud-go/commit/1cb70baf5fda8cbff587206f94b1b08e078bd175)) + +### Bug Fixes + +* lazy initialization and getters for ClientMetrics (#485) ([fb6c5f4](https://github.com/googleapis/google-cloud-go/commit/fb6c5f4d56fc3177a2d0d2b8f9e8df6e4be95505)) + +## [2.18.0](https://github.com/googleapis/google-cloud-go/releases/tag/v2.18.0) (2026-03-09) + +### Features + +* add callctx telemetry helpers (#472) ([fa319ff](https://github.com/googleapis/google-cloud-go/commit/fa319ffc309366ab21e41f5d7480f450eedd2be9)) +* move gax-go to use 1.25 as the lower bound of support (#469) ([01594ca](https://github.com/googleapis/google-cloud-go/commit/01594ca54717eebe7229a5168ef41be61191a720)) + +## [2.17.0](https://github.com/googleapis/google-cloud-go/releases/tag/v2.17.0) (2026-02-03) + +### Features + +* update Invoke to add retry count to context (#462) ([ea7096d](https://github.com/googleapis/google-cloud-go/commit/ea7096d50d665064dbfeffd7d93fa13d810ad4e4)) + +## [2.16.0](https://github.com/googleapis/google-cloud-go/releases/tag/v2.16.0) (2025-12-17) + +### Features + +* add IsFeatureEnabled (#454) ([2700b8a](https://github.com/googleapis/google-cloud-go/commit/2700b8ab3062c6c6c5a26d0fc6ba1fc064a8fc04)) + +## [2.15.0](https://github.com/googleapis/gax-go/compare/v2.14.2...v2.15.0) (2025-07-09) + + +### Features + +* **apierror:** improve gRPC status code mapping for HTTP errors ([#431](https://github.com/googleapis/gax-go/issues/431)) ([c207f2a](https://github.com/googleapis/gax-go/commit/c207f2a19ab91d3baee458b57d4aa992519025c7)) + +## [2.14.2](https://github.com/googleapis/gax-go/compare/v2.14.1...v2.14.2) (2025-05-12) + + +### Documentation + +* **v2:** Fix Backoff doc to accurately explain Multiplier ([#423](https://github.com/googleapis/gax-go/issues/423)) ([16d1791](https://github.com/googleapis/gax-go/commit/16d17917121ea9f5d84ba52b5c7c7f2ec0f9e784)), refs [#422](https://github.com/googleapis/gax-go/issues/422) + +## [2.14.1](https://github.com/googleapis/gax-go/compare/v2.14.0...v2.14.1) (2024-12-19) + + +### Bug Fixes + +* update golang.org/x/net to v0.33.0 ([#391](https://github.com/googleapis/gax-go/issues/391)) ([547a5b4](https://github.com/googleapis/gax-go/commit/547a5b43aa6f376f71242da9f18e65fbdfb342f6)) + + +### Documentation + +* fix godoc to refer to the proper envvar ([#387](https://github.com/googleapis/gax-go/issues/387)) ([dc6baf7](https://github.com/googleapis/gax-go/commit/dc6baf75c1a737233739630b5af6c9759f08abcd)) + +## [2.14.0](https://github.com/googleapis/gax-go/compare/v2.13.0...v2.14.0) (2024-11-13) + + +### Features + +* **internallog:** add a logging support package ([#380](https://github.com/googleapis/gax-go/issues/380)) ([c877470](https://github.com/googleapis/gax-go/commit/c87747098135631a3de5865ed03aaf2c79fd9319)) + +## [2.13.0](https://github.com/googleapis/gax-go/compare/v2.12.5...v2.13.0) (2024-07-22) + + +### Features + +* **iterator:** add package to help work with new iter.Seq types ([#358](https://github.com/googleapis/gax-go/issues/358)) ([6bccdaa](https://github.com/googleapis/gax-go/commit/6bccdaac011fe6fd147e4eb533a8e6520b7d4acc)) + +## [2.12.5](https://github.com/googleapis/gax-go/compare/v2.12.4...v2.12.5) (2024-06-18) + + +### Bug Fixes + +* **v2/apierror:** fix (*APIError).Error() for unwrapped Status ([#351](https://github.com/googleapis/gax-go/issues/351)) ([22c16e7](https://github.com/googleapis/gax-go/commit/22c16e7bff5402bdc4c25063771cdd01c650b500)), refs [#350](https://github.com/googleapis/gax-go/issues/350) ## [2.12.4](https://github.com/googleapis/gax-go/compare/v2.12.3...v2.12.4) (2024-05-03) diff --git a/vendor/github.com/googleapis/gax-go/v2/apierror/apierror.go b/vendor/github.com/googleapis/gax-go/v2/apierror/apierror.go index d785a065c..cba591919 100644 --- a/vendor/github.com/googleapis/gax-go/v2/apierror/apierror.go +++ b/vendor/github.com/googleapis/gax-go/v2/apierror/apierror.go @@ -38,6 +38,7 @@ package apierror import ( "errors" "fmt" + "net/http" "strings" jsonerror "github.com/googleapis/gax-go/v2/apierror/internal/proto" @@ -49,6 +50,39 @@ import ( "google.golang.org/protobuf/proto" ) +// canonicalMap maps HTTP codes to gRPC status code equivalents. +var canonicalMap = map[int]codes.Code{ + http.StatusOK: codes.OK, + http.StatusBadRequest: codes.InvalidArgument, + http.StatusForbidden: codes.PermissionDenied, + http.StatusNotFound: codes.NotFound, + http.StatusConflict: codes.Aborted, + http.StatusRequestedRangeNotSatisfiable: codes.OutOfRange, + http.StatusTooManyRequests: codes.ResourceExhausted, + http.StatusGatewayTimeout: codes.DeadlineExceeded, + http.StatusNotImplemented: codes.Unimplemented, + http.StatusServiceUnavailable: codes.Unavailable, + http.StatusUnauthorized: codes.Unauthenticated, +} + +// toCode maps an http code to the most correct equivalent. +func toCode(httpCode int) codes.Code { + if sCode, ok := canonicalMap[httpCode]; ok { + return sCode + } + switch { + case httpCode >= 200 && httpCode < 300: + return codes.OK + + case httpCode >= 400 && httpCode < 500: + return codes.FailedPrecondition + + case httpCode >= 500 && httpCode < 600: + return codes.Internal + } + return codes.Unknown +} + // ErrDetails holds the google/rpc/error_details.proto messages. type ErrDetails struct { ErrorInfo *errdetails.ErrorInfo @@ -206,15 +240,33 @@ func (a *APIError) Error() string { // Truncate the googleapi.Error message because it dumps the Details in // an ugly way. msg = fmt.Sprintf("googleapi: Error %d: %s", a.httpErr.Code, a.httpErr.Message) - } else if a.status != nil { + } else if a.status != nil && a.err != nil { msg = a.err.Error() + } else if a.status != nil { + msg = a.status.Message() } return strings.TrimSpace(fmt.Sprintf("%s\n%s", msg, a.details)) } +// Message returns the original, unformatted error message from the underlying +// googleapi.Error or gRPC Status, without additional details or context. +func (a *APIError) Message() string { + if a.httpErr != nil { + return a.httpErr.Message + } else if a.status != nil { + return a.status.Message() + } + return "" +} + // GRPCStatus extracts the underlying gRPC Status error. // This method is necessary to fulfill the interface // described in https://pkg.go.dev/google.golang.org/grpc/status#FromError. +// +// For errors that originated as an HTTP-based googleapi.Error, GRPCStatus() +// returns a status that attempts to map from the original HTTP code to an +// equivalent gRPC status code. For use cases where you want to avoid this +// behavior, error unwrapping can be used. func (a *APIError) GRPCStatus() *status.Status { return a.status } @@ -241,9 +293,9 @@ func (a *APIError) Metadata() map[string]string { // setDetailsFromError parses a Status error or a googleapi.Error // and sets status and details or httpErr and details, respectively. // It returns false if neither Status nor googleapi.Error can be parsed. -// When err is a googleapi.Error, the status of the returned error will -// be set to an Unknown error, rather than nil, since a nil code is -// interpreted as OK in the gRPC status package. +// +// When err is a googleapi.Error, the status of the returned error will be +// mapped to the closest equivalent gGRPC status code. func (a *APIError) setDetailsFromError(err error) bool { st, isStatus := status.FromError(err) var herr *googleapi.Error @@ -256,7 +308,7 @@ func (a *APIError) setDetailsFromError(err error) bool { case isHTTPErr: a.httpErr = herr a.details = parseHTTPDetails(herr) - a.status = status.New(codes.Unknown, herr.Message) + a.status = status.New(toCode(a.httpErr.Code), herr.Message) default: return false } diff --git a/vendor/github.com/googleapis/gax-go/v2/apierror/internal/proto/custom_error.pb.go b/vendor/github.com/googleapis/gax-go/v2/apierror/internal/proto/custom_error.pb.go index e4b03f161..90639e66a 100644 --- a/vendor/github.com/googleapis/gax-go/v2/apierror/internal/proto/custom_error.pb.go +++ b/vendor/github.com/googleapis/gax-go/v2/apierror/internal/proto/custom_error.pb.go @@ -14,8 +14,8 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.28.0 -// protoc v3.17.3 +// protoc-gen-go v1.36.11 +// protoc v6.30.2 // source: custom_error.proto package jsonerror @@ -23,6 +23,7 @@ package jsonerror import ( reflect "reflect" sync "sync" + unsafe "unsafe" protoreflect "google.golang.org/protobuf/reflect/protoreflect" protoimpl "google.golang.org/protobuf/runtime/protoimpl" @@ -95,25 +96,22 @@ func (CustomError_CustomErrorCode) EnumDescriptor() ([]byte, []int) { // CustomError is an example of a custom error message which may be included // in an rpc status. It is not meant to reflect a standard error. type CustomError struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - + state protoimpl.MessageState `protogen:"open.v1"` // Error code specific to the custom API being invoked. Code CustomError_CustomErrorCode `protobuf:"varint,1,opt,name=code,proto3,enum=error.CustomError_CustomErrorCode" json:"code,omitempty"` // Name of the failed entity. Entity string `protobuf:"bytes,2,opt,name=entity,proto3" json:"entity,omitempty"` // Message that describes the error. - ErrorMessage string `protobuf:"bytes,3,opt,name=error_message,json=errorMessage,proto3" json:"error_message,omitempty"` + ErrorMessage string `protobuf:"bytes,3,opt,name=error_message,json=errorMessage,proto3" json:"error_message,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *CustomError) Reset() { *x = CustomError{} - if protoimpl.UnsafeEnabled { - mi := &file_custom_error_proto_msgTypes[0] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_custom_error_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *CustomError) String() string { @@ -124,7 +122,7 @@ func (*CustomError) ProtoMessage() {} func (x *CustomError) ProtoReflect() protoreflect.Message { mi := &file_custom_error_proto_msgTypes[0] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -162,47 +160,34 @@ func (x *CustomError) GetErrorMessage() string { var File_custom_error_proto protoreflect.FileDescriptor -var file_custom_error_proto_rawDesc = []byte{ - 0x0a, 0x12, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x2e, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x22, 0xfa, 0x01, 0x0a, 0x0b, - 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x36, 0x0a, 0x04, 0x63, - 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x22, 0x2e, 0x65, 0x72, 0x72, 0x6f, - 0x72, 0x2e, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x2e, 0x43, 0x75, - 0x73, 0x74, 0x6f, 0x6d, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x43, 0x6f, 0x64, 0x65, 0x52, 0x04, 0x63, - 0x6f, 0x64, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x06, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x12, 0x23, 0x0a, 0x0d, 0x65, - 0x72, 0x72, 0x6f, 0x72, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x0c, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, - 0x22, 0x76, 0x0a, 0x0f, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x43, - 0x6f, 0x64, 0x65, 0x12, 0x21, 0x0a, 0x1d, 0x43, 0x55, 0x53, 0x54, 0x4f, 0x4d, 0x5f, 0x45, 0x52, - 0x52, 0x4f, 0x52, 0x5f, 0x43, 0x4f, 0x44, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, - 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x10, 0x0a, 0x0c, 0x54, 0x4f, 0x4f, 0x5f, 0x4d, 0x41, - 0x4e, 0x59, 0x5f, 0x46, 0x4f, 0x4f, 0x10, 0x01, 0x12, 0x12, 0x0a, 0x0e, 0x4e, 0x4f, 0x54, 0x5f, - 0x45, 0x4e, 0x4f, 0x55, 0x47, 0x48, 0x5f, 0x46, 0x4f, 0x4f, 0x10, 0x02, 0x12, 0x1a, 0x0a, 0x16, - 0x55, 0x4e, 0x49, 0x56, 0x45, 0x52, 0x53, 0x45, 0x5f, 0x57, 0x41, 0x53, 0x5f, 0x44, 0x45, 0x53, - 0x54, 0x52, 0x4f, 0x59, 0x45, 0x44, 0x10, 0x03, 0x42, 0x43, 0x5a, 0x41, 0x67, 0x69, 0x74, 0x68, - 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, - 0x73, 0x2f, 0x67, 0x61, 0x78, 0x2d, 0x67, 0x6f, 0x2f, 0x76, 0x32, 0x2f, 0x61, 0x70, 0x69, 0x65, - 0x72, 0x72, 0x6f, 0x72, 0x2f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x2f, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x3b, 0x6a, 0x73, 0x6f, 0x6e, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x62, 0x06, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x33, -} +const file_custom_error_proto_rawDesc = "" + + "\n" + + "\x12custom_error.proto\x12\x05error\"\xfa\x01\n" + + "\vCustomError\x126\n" + + "\x04code\x18\x01 \x01(\x0e2\".error.CustomError.CustomErrorCodeR\x04code\x12\x16\n" + + "\x06entity\x18\x02 \x01(\tR\x06entity\x12#\n" + + "\rerror_message\x18\x03 \x01(\tR\ferrorMessage\"v\n" + + "\x0fCustomErrorCode\x12!\n" + + "\x1dCUSTOM_ERROR_CODE_UNSPECIFIED\x10\x00\x12\x10\n" + + "\fTOO_MANY_FOO\x10\x01\x12\x12\n" + + "\x0eNOT_ENOUGH_FOO\x10\x02\x12\x1a\n" + + "\x16UNIVERSE_WAS_DESTROYED\x10\x03BCZAgithub.com/googleapis/gax-go/v2/apierror/internal/proto;jsonerrorb\x06proto3" var ( file_custom_error_proto_rawDescOnce sync.Once - file_custom_error_proto_rawDescData = file_custom_error_proto_rawDesc + file_custom_error_proto_rawDescData []byte ) func file_custom_error_proto_rawDescGZIP() []byte { file_custom_error_proto_rawDescOnce.Do(func() { - file_custom_error_proto_rawDescData = protoimpl.X.CompressGZIP(file_custom_error_proto_rawDescData) + file_custom_error_proto_rawDescData = protoimpl.X.CompressGZIP(unsafe.Slice(unsafe.StringData(file_custom_error_proto_rawDesc), len(file_custom_error_proto_rawDesc))) }) return file_custom_error_proto_rawDescData } var file_custom_error_proto_enumTypes = make([]protoimpl.EnumInfo, 1) var file_custom_error_proto_msgTypes = make([]protoimpl.MessageInfo, 1) -var file_custom_error_proto_goTypes = []interface{}{ +var file_custom_error_proto_goTypes = []any{ (CustomError_CustomErrorCode)(0), // 0: error.CustomError.CustomErrorCode (*CustomError)(nil), // 1: error.CustomError } @@ -220,25 +205,11 @@ func file_custom_error_proto_init() { if File_custom_error_proto != nil { return } - if !protoimpl.UnsafeEnabled { - file_custom_error_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CustomError); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - } type x struct{} out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), - RawDescriptor: file_custom_error_proto_rawDesc, + RawDescriptor: unsafe.Slice(unsafe.StringData(file_custom_error_proto_rawDesc), len(file_custom_error_proto_rawDesc)), NumEnums: 1, NumMessages: 1, NumExtensions: 0, @@ -250,7 +221,6 @@ func file_custom_error_proto_init() { MessageInfos: file_custom_error_proto_msgTypes, }.Build() File_custom_error_proto = out.File - file_custom_error_proto_rawDesc = nil file_custom_error_proto_goTypes = nil file_custom_error_proto_depIdxs = nil } diff --git a/vendor/github.com/googleapis/gax-go/v2/apierror/internal/proto/error.pb.go b/vendor/github.com/googleapis/gax-go/v2/apierror/internal/proto/error.pb.go index 7dd9b8373..1a29ff5c8 100644 --- a/vendor/github.com/googleapis/gax-go/v2/apierror/internal/proto/error.pb.go +++ b/vendor/github.com/googleapis/gax-go/v2/apierror/internal/proto/error.pb.go @@ -14,15 +14,16 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.28.0 -// protoc v3.15.8 -// source: apierror/internal/proto/error.proto +// protoc-gen-go v1.36.11 +// protoc v6.30.2 +// source: error.proto package jsonerror import ( reflect "reflect" sync "sync" + unsafe "unsafe" code "google.golang.org/genproto/googleapis/rpc/code" protoreflect "google.golang.org/protobuf/reflect/protoreflect" @@ -42,23 +43,20 @@ const ( // // NOTE: This schema is not used for other wire protocols. type Error struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - + state protoimpl.MessageState `protogen:"open.v1"` // The actual error payload. The nested message structure is for backward // compatibility with Google API client libraries. It also makes the error // more readable to developers. - Error *Error_Status `protobuf:"bytes,1,opt,name=error,proto3" json:"error,omitempty"` + Error *Error_Status `protobuf:"bytes,1,opt,name=error,proto3" json:"error,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *Error) Reset() { *x = Error{} - if protoimpl.UnsafeEnabled { - mi := &file_apierror_internal_proto_error_proto_msgTypes[0] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_error_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *Error) String() string { @@ -68,8 +66,8 @@ func (x *Error) String() string { func (*Error) ProtoMessage() {} func (x *Error) ProtoReflect() protoreflect.Message { - mi := &file_apierror_internal_proto_error_proto_msgTypes[0] - if protoimpl.UnsafeEnabled && x != nil { + mi := &file_error_proto_msgTypes[0] + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -81,7 +79,7 @@ func (x *Error) ProtoReflect() protoreflect.Message { // Deprecated: Use Error.ProtoReflect.Descriptor instead. func (*Error) Descriptor() ([]byte, []int) { - return file_apierror_internal_proto_error_proto_rawDescGZIP(), []int{0} + return file_error_proto_rawDescGZIP(), []int{0} } func (x *Error) GetError() *Error_Status { @@ -95,10 +93,7 @@ func (x *Error) GetError() *Error_Status { // status code instead of gRPC status code. It has an extra field `status` // for backward compatibility with Google API Client Libraries. type Error_Status struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - + state protoimpl.MessageState `protogen:"open.v1"` // The HTTP status code that corresponds to `google.rpc.Status.code`. Code int32 `protobuf:"varint,1,opt,name=code,proto3" json:"code,omitempty"` // This corresponds to `google.rpc.Status.message`. @@ -106,16 +101,16 @@ type Error_Status struct { // This is the enum version for `google.rpc.Status.code`. Status code.Code `protobuf:"varint,4,opt,name=status,proto3,enum=google.rpc.Code" json:"status,omitempty"` // This corresponds to `google.rpc.Status.details`. - Details []*anypb.Any `protobuf:"bytes,5,rep,name=details,proto3" json:"details,omitempty"` + Details []*anypb.Any `protobuf:"bytes,5,rep,name=details,proto3" json:"details,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *Error_Status) Reset() { *x = Error_Status{} - if protoimpl.UnsafeEnabled { - mi := &file_apierror_internal_proto_error_proto_msgTypes[1] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_error_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *Error_Status) String() string { @@ -125,8 +120,8 @@ func (x *Error_Status) String() string { func (*Error_Status) ProtoMessage() {} func (x *Error_Status) ProtoReflect() protoreflect.Message { - mi := &file_apierror_internal_proto_error_proto_msgTypes[1] - if protoimpl.UnsafeEnabled && x != nil { + mi := &file_error_proto_msgTypes[1] + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -138,7 +133,7 @@ func (x *Error_Status) ProtoReflect() protoreflect.Message { // Deprecated: Use Error_Status.ProtoReflect.Descriptor instead. func (*Error_Status) Descriptor() ([]byte, []int) { - return file_apierror_internal_proto_error_proto_rawDescGZIP(), []int{0, 0} + return file_error_proto_rawDescGZIP(), []int{0, 0} } func (x *Error_Status) GetCode() int32 { @@ -169,55 +164,39 @@ func (x *Error_Status) GetDetails() []*anypb.Any { return nil } -var File_apierror_internal_proto_error_proto protoreflect.FileDescriptor +var File_error_proto protoreflect.FileDescriptor -var file_apierror_internal_proto_error_proto_rawDesc = []byte{ - 0x0a, 0x23, 0x61, 0x70, 0x69, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x2f, 0x69, 0x6e, 0x74, 0x65, 0x72, - 0x6e, 0x61, 0x6c, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x2e, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x1a, 0x19, 0x67, 0x6f, - 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x61, 0x6e, - 0x79, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x15, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, - 0x72, 0x70, 0x63, 0x2f, 0x63, 0x6f, 0x64, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xc5, - 0x01, 0x0a, 0x05, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x29, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, - 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x2e, - 0x45, 0x72, 0x72, 0x6f, 0x72, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x05, 0x65, 0x72, - 0x72, 0x6f, 0x72, 0x1a, 0x90, 0x01, 0x0a, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x12, - 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x63, 0x6f, - 0x64, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x28, 0x0a, 0x06, - 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x10, 0x2e, 0x67, - 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x72, 0x70, 0x63, 0x2e, 0x43, 0x6f, 0x64, 0x65, 0x52, 0x06, - 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x2e, 0x0a, 0x07, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, - 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, - 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x41, 0x6e, 0x79, 0x52, 0x07, 0x64, - 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x42, 0x43, 0x5a, 0x41, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, - 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2f, - 0x67, 0x61, 0x78, 0x2d, 0x67, 0x6f, 0x2f, 0x76, 0x32, 0x2f, 0x61, 0x70, 0x69, 0x65, 0x72, 0x72, - 0x6f, 0x72, 0x2f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x2f, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x3b, 0x6a, 0x73, 0x6f, 0x6e, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x62, 0x06, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x33, -} +const file_error_proto_rawDesc = "" + + "\n" + + "\verror.proto\x12\x05error\x1a\x19google/protobuf/any.proto\x1a\x15google/rpc/code.proto\"\xc5\x01\n" + + "\x05Error\x12)\n" + + "\x05error\x18\x01 \x01(\v2\x13.error.Error.StatusR\x05error\x1a\x90\x01\n" + + "\x06Status\x12\x12\n" + + "\x04code\x18\x01 \x01(\x05R\x04code\x12\x18\n" + + "\amessage\x18\x02 \x01(\tR\amessage\x12(\n" + + "\x06status\x18\x04 \x01(\x0e2\x10.google.rpc.CodeR\x06status\x12.\n" + + "\adetails\x18\x05 \x03(\v2\x14.google.protobuf.AnyR\adetailsBCZAgithub.com/googleapis/gax-go/v2/apierror/internal/proto;jsonerrorb\x06proto3" var ( - file_apierror_internal_proto_error_proto_rawDescOnce sync.Once - file_apierror_internal_proto_error_proto_rawDescData = file_apierror_internal_proto_error_proto_rawDesc + file_error_proto_rawDescOnce sync.Once + file_error_proto_rawDescData []byte ) -func file_apierror_internal_proto_error_proto_rawDescGZIP() []byte { - file_apierror_internal_proto_error_proto_rawDescOnce.Do(func() { - file_apierror_internal_proto_error_proto_rawDescData = protoimpl.X.CompressGZIP(file_apierror_internal_proto_error_proto_rawDescData) +func file_error_proto_rawDescGZIP() []byte { + file_error_proto_rawDescOnce.Do(func() { + file_error_proto_rawDescData = protoimpl.X.CompressGZIP(unsafe.Slice(unsafe.StringData(file_error_proto_rawDesc), len(file_error_proto_rawDesc))) }) - return file_apierror_internal_proto_error_proto_rawDescData + return file_error_proto_rawDescData } -var file_apierror_internal_proto_error_proto_msgTypes = make([]protoimpl.MessageInfo, 2) -var file_apierror_internal_proto_error_proto_goTypes = []interface{}{ +var file_error_proto_msgTypes = make([]protoimpl.MessageInfo, 2) +var file_error_proto_goTypes = []any{ (*Error)(nil), // 0: error.Error (*Error_Status)(nil), // 1: error.Error.Status (code.Code)(0), // 2: google.rpc.Code (*anypb.Any)(nil), // 3: google.protobuf.Any } -var file_apierror_internal_proto_error_proto_depIdxs = []int32{ +var file_error_proto_depIdxs = []int32{ 1, // 0: error.Error.error:type_name -> error.Error.Status 2, // 1: error.Error.Status.status:type_name -> google.rpc.Code 3, // 2: error.Error.Status.details:type_name -> google.protobuf.Any @@ -228,53 +207,26 @@ var file_apierror_internal_proto_error_proto_depIdxs = []int32{ 0, // [0:3] is the sub-list for field type_name } -func init() { file_apierror_internal_proto_error_proto_init() } -func file_apierror_internal_proto_error_proto_init() { - if File_apierror_internal_proto_error_proto != nil { +func init() { file_error_proto_init() } +func file_error_proto_init() { + if File_error_proto != nil { return } - if !protoimpl.UnsafeEnabled { - file_apierror_internal_proto_error_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*Error); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_apierror_internal_proto_error_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*Error_Status); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - } type x struct{} out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), - RawDescriptor: file_apierror_internal_proto_error_proto_rawDesc, + RawDescriptor: unsafe.Slice(unsafe.StringData(file_error_proto_rawDesc), len(file_error_proto_rawDesc)), NumEnums: 0, NumMessages: 2, NumExtensions: 0, NumServices: 0, }, - GoTypes: file_apierror_internal_proto_error_proto_goTypes, - DependencyIndexes: file_apierror_internal_proto_error_proto_depIdxs, - MessageInfos: file_apierror_internal_proto_error_proto_msgTypes, + GoTypes: file_error_proto_goTypes, + DependencyIndexes: file_error_proto_depIdxs, + MessageInfos: file_error_proto_msgTypes, }.Build() - File_apierror_internal_proto_error_proto = out.File - file_apierror_internal_proto_error_proto_rawDesc = nil - file_apierror_internal_proto_error_proto_goTypes = nil - file_apierror_internal_proto_error_proto_depIdxs = nil + File_error_proto = out.File + file_error_proto_goTypes = nil + file_error_proto_depIdxs = nil } diff --git a/vendor/github.com/googleapis/gax-go/v2/call_option.go b/vendor/github.com/googleapis/gax-go/v2/call_option.go index c52e03f64..8f5948eb3 100644 --- a/vendor/github.com/googleapis/gax-go/v2/call_option.go +++ b/vendor/github.com/googleapis/gax-go/v2/call_option.go @@ -156,10 +156,13 @@ func (r *httpRetryer) Retry(err error) (time.Duration, bool) { return 0, false } -// Backoff implements exponential backoff. The wait time between retries is a -// random value between 0 and the "retry period" - the time between retries. The -// retry period starts at Initial and increases by the factor of Multiplier -// every retry, but is capped at Max. +// Backoff implements backoff logic for retries. The configuration for retries +// is described in https://google.aip.dev/client-libraries/4221. The current +// retry limit starts at Initial and increases by a factor of Multiplier every +// retry, but is capped at Max. The actual wait time between retries is a +// random value between 1ns and the current retry limit. The purpose of this +// random jitter is explained in +// https://www.awsarchitectureblog.com/2015/03/backoff.html. // // Note: MaxNumRetries / RPCDeadline is specifically not provided. These should // be built on top of Backoff. @@ -247,6 +250,22 @@ func WithTimeout(t time.Duration) CallOption { return &timeoutOpt{t: t} } +type clientMetricsOpt struct { + cm *ClientMetrics +} + +// Resolve applies the ClientMetrics to the CallSettings. +func (o clientMetricsOpt) Resolve(s *CallSettings) { + s.clientMetrics = o.cm +} + +// WithClientMetrics applies metrics instrumentation to the CallSettings. +// +// This is for internal use only. +func WithClientMetrics(cm *ClientMetrics) CallOption { + return clientMetricsOpt{cm: cm} +} + // CallSettings allow fine-grained control over how calls are made. type CallSettings struct { // Retry returns a Retryer to be used to control retry logic of a method call. @@ -262,4 +281,8 @@ type CallSettings struct { // Timeout defines the amount of time that Invoke has to complete. // Unexported so it cannot be changed by the code in an APICall. timeout time.Duration + + // clientMetrics holds the pre-allocated OpenTelemetry metrics instruments + // to use for this call. + clientMetrics *ClientMetrics } diff --git a/vendor/github.com/googleapis/gax-go/v2/callctx/callctx.go b/vendor/github.com/googleapis/gax-go/v2/callctx/callctx.go index f5af5c990..3d7be5f2a 100644 --- a/vendor/github.com/googleapis/gax-go/v2/callctx/callctx.go +++ b/vendor/github.com/googleapis/gax-go/v2/callctx/callctx.go @@ -35,6 +35,7 @@ package callctx import ( "context" "fmt" + "log/slog" ) const ( @@ -98,3 +99,48 @@ func cloneHeaders(h map[string][]string) map[string][]string { } return c } + +// telemetryKey is a private type used to store/retrieve telemetry context values. +type telemetryKey string + +// WithTelemetryContext injects telemetry attribute values (like resource name +// or client version) into the context. In accordance with standard Go context +// guidelines, this should only be used for data that transits processes and APIs, +// and not for passing optional parameters to functions. keyvals should have a +// corresponding value for every key provided. If there is an odd number of keyvals +// this method will panic. +func WithTelemetryContext(ctx context.Context, keyvals ...string) context.Context { + if len(keyvals)%2 != 0 { + panic(fmt.Sprintf("callctx: an even number of key value pairs must be provided, got %d", len(keyvals))) + } + + for i := 0; i < len(keyvals); i = i + 2 { + ctx = context.WithValue(ctx, telemetryKey(keyvals[i]), keyvals[i+1]) + } + return ctx +} + +// TelemetryFromContext extracts a telemetry attribute value from the context. +// The returned bool indicates a successful typecast of the value to a string. +func TelemetryFromContext(ctx context.Context, key string) (string, bool) { + val, ok := ctx.Value(telemetryKey(key)).(string) + return val, ok +} + +// loggerKey is a private type used to store/retrieve the logger context value. +type loggerContextKey string + +const loggerCKey = loggerContextKey("logger") + +// WithLoggerContext injects a slog.Logger into the context. This logger will +// be extracted by the client library or transport wrappers to emit logs. +func WithLoggerContext(ctx context.Context, logger *slog.Logger) context.Context { + return context.WithValue(ctx, loggerCKey, logger) +} + +// LoggerFromContext extracts a slog.Logger from the context. +// The returned bool indicates whether a logger was found. +func LoggerFromContext(ctx context.Context) (*slog.Logger, bool) { + logger, ok := ctx.Value(loggerCKey).(*slog.Logger) + return logger, ok +} diff --git a/vendor/github.com/googleapis/gax-go/v2/content_type.go b/vendor/github.com/googleapis/gax-go/v2/content_type.go index 1b53d0a3a..818a3b015 100644 --- a/vendor/github.com/googleapis/gax-go/v2/content_type.go +++ b/vendor/github.com/googleapis/gax-go/v2/content_type.go @@ -31,7 +31,7 @@ package gax import ( "io" - "io/ioutil" + "net/http" ) @@ -78,7 +78,7 @@ func (cs *contentSniffer) ContentType() (string, bool) { } cs.sniffed = true // If ReadAll hits EOF, it returns err==nil. - cs.start, cs.err = ioutil.ReadAll(io.LimitReader(cs.r, sniffBuffSize)) + cs.start, cs.err = io.ReadAll(io.LimitReader(cs.r, sniffBuffSize)) // Don't try to detect the content type based on possibly incomplete data. if cs.err != nil { diff --git a/vendor/github.com/googleapis/gax-go/v2/feature.go b/vendor/github.com/googleapis/gax-go/v2/feature.go new file mode 100644 index 000000000..c7a9ec88b --- /dev/null +++ b/vendor/github.com/googleapis/gax-go/v2/feature.go @@ -0,0 +1,81 @@ +// Copyright 2025, Google Inc. +// All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// * Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// * Redistributions in binary form must reproduce the above +// copyright notice, this list of conditions and the following disclaimer +// in the documentation and/or other materials provided with the +// distribution. +// * Neither the name of Google Inc. nor the names of its +// contributors may be used to endorse or promote products derived from +// this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +package gax + +import ( + "os" + "strings" + "sync" +) + +var ( + // featureEnabledOnce caches results for IsFeatureEnabled. + featureEnabledOnce sync.Once + featureEnabledStore map[string]bool +) + +// IsFeatureEnabled checks if an experimental feature is enabled via +// environment variable. The environment variable must be prefixed with +// "GOOGLE_SDK_GO_EXPERIMENTAL_". The feature name passed to this +// function must be the suffix (e.g., "FOO" for "GOOGLE_SDK_GO_EXPERIMENTAL_FOO"). +// To enable the feature, the environment variable's value must be "true", +// case-insensitive. The result for each name is cached on the first call. +func IsFeatureEnabled(name string) bool { + featureEnabledOnce.Do(func() { + featureEnabledStore = make(map[string]bool) + for _, env := range os.Environ() { + prefix := "" + if strings.HasPrefix(env, "GOOGLE_SDK_GO_EXPERIMENTAL_") { + prefix = "GOOGLE_SDK_GO_EXPERIMENTAL_" + } else if strings.HasPrefix(env, "GOOGLE_SDK_GO_") { + prefix = "GOOGLE_SDK_GO_" + } + if prefix != "" { + // Parse "KEY=VALUE" + kv := strings.SplitN(env, "=", 2) + if len(kv) == 2 && strings.ToLower(kv[1]) == "true" { + key := strings.TrimPrefix(kv[0], prefix) + featureEnabledStore[key] = true + } + } + } + }) + return featureEnabledStore[name] +} + +// TestOnlyResetIsFeatureEnabled is for testing purposes only. It resets the cached +// feature flags, allowing environment variables to be re-read on the next call to IsFeatureEnabled. +// This function is not thread-safe; if another goroutine reads a feature after this +// function is called but before the `featureEnabledOnce` is re-initialized by IsFeatureEnabled, +// it may see an inconsistent state. +func TestOnlyResetIsFeatureEnabled() { + featureEnabledOnce = sync.Once{} + featureEnabledStore = nil +} diff --git a/vendor/github.com/googleapis/gax-go/v2/header.go b/vendor/github.com/googleapis/gax-go/v2/header.go index 3e53729e5..f5273985a 100644 --- a/vendor/github.com/googleapis/gax-go/v2/header.go +++ b/vendor/github.com/googleapis/gax-go/v2/header.go @@ -163,11 +163,38 @@ func insertMetadata(ctx context.Context, keyvals ...string) metadata.MD { out = metadata.MD(make(map[string][]string)) } headers := callctx.HeadersFromContext(ctx) - for k, v := range headers { - out[k] = append(out[k], v...) + + // x-goog-api-client is a special case that we want to make sure gets merged + // into a single header. + const xGoogHeader = "x-goog-api-client" + var mergedXgoogHeader strings.Builder + + for k, vals := range headers { + if k == xGoogHeader { + // Merge all values for the x-goog-api-client header set on the ctx. + for _, v := range vals { + mergedXgoogHeader.WriteString(v) + mergedXgoogHeader.WriteRune(' ') + } + continue + } + out[k] = append(out[k], vals...) } for i := 0; i < len(keyvals); i = i + 2 { out[keyvals[i]] = append(out[keyvals[i]], keyvals[i+1]) + + if keyvals[i] == xGoogHeader { + // Merge the x-goog-api-client header values set on the ctx with any + // values passed in for it from the client. + mergedXgoogHeader.WriteString(keyvals[i+1]) + mergedXgoogHeader.WriteRune(' ') + } + } + + // Add the x goog header back in, replacing the separate values that were set. + if mergedXgoogHeader.Len() > 0 { + out[xGoogHeader] = []string{mergedXgoogHeader.String()[:mergedXgoogHeader.Len()-1]} } + return out } diff --git a/vendor/github.com/googleapis/gax-go/v2/internal/version.go b/vendor/github.com/googleapis/gax-go/v2/internal/version.go index 3006ad7bd..f324d1ab8 100644 --- a/vendor/github.com/googleapis/gax-go/v2/internal/version.go +++ b/vendor/github.com/googleapis/gax-go/v2/internal/version.go @@ -1,33 +1,20 @@ -// Copyright 2022, Google Inc. -// All rights reserved. +// Copyright 2026 Google LLC // -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at // -// * Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// * Redistributions in binary form must reproduce the above -// copyright notice, this list of conditions and the following disclaimer -// in the documentation and/or other materials provided with the -// distribution. -// * Neither the name of Google Inc. nor the names of its -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. +// http://www.apache.org/licenses/LICENSE-2.0 // -// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +// Code generated by gapicgen. DO NOT EDIT. package internal // Version is the current tagged release of the library. -const Version = "2.12.4" +const Version = "2.22.0" diff --git a/vendor/github.com/googleapis/gax-go/v2/internallog/internal/internal.go b/vendor/github.com/googleapis/gax-go/v2/internallog/internal/internal.go new file mode 100644 index 000000000..19f4be35c --- /dev/null +++ b/vendor/github.com/googleapis/gax-go/v2/internallog/internal/internal.go @@ -0,0 +1,134 @@ +// Copyright 2024, Google Inc. +// All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// * Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// * Redistributions in binary form must reproduce the above +// copyright notice, this list of conditions and the following disclaimer +// in the documentation and/or other materials provided with the +// distribution. +// * Neither the name of Google Inc. nor the names of its +// contributors may be used to endorse or promote products derived from +// this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +// Package internal provides some common logic and types to other logging +// sub-packages. +package internal + +import ( + "context" + "io" + "log/slog" + "os" + "strings" + "time" +) + +const ( + // LoggingLevelEnvVar is the environment variable used to enable logging + // at a particular level. + LoggingLevelEnvVar = "GOOGLE_SDK_GO_LOGGING_LEVEL" + + googLvlKey = "severity" + googMsgKey = "message" + googSourceKey = "sourceLocation" + googTimeKey = "timestamp" +) + +// NewLoggerWithWriter is exposed for testing. +func NewLoggerWithWriter(w io.Writer) *slog.Logger { + lvl, loggingEnabled := checkLoggingLevel() + if !loggingEnabled { + return slog.New(noOpHandler{}) + } + return slog.New(newGCPSlogHandler(lvl, w)) +} + +// checkLoggingLevel returned the configured logging level and whether or not +// logging is enabled. +func checkLoggingLevel() (slog.Leveler, bool) { + sLevel := strings.ToLower(os.Getenv(LoggingLevelEnvVar)) + var level slog.Level + switch sLevel { + case "debug": + level = slog.LevelDebug + case "info": + level = slog.LevelInfo + case "warn": + level = slog.LevelWarn + case "error": + level = slog.LevelError + default: + return nil, false + } + return level, true +} + +// newGCPSlogHandler returns a Handler that is configured to output in a JSON +// format with well-known keys. For more information on this format see +// https://cloud.google.com/logging/docs/agent/logging/configuration#special-fields. +func newGCPSlogHandler(lvl slog.Leveler, w io.Writer) slog.Handler { + return slog.NewJSONHandler(w, &slog.HandlerOptions{ + Level: lvl, + ReplaceAttr: replaceAttr, + }) +} + +// replaceAttr remaps default Go logging keys to match what is expected in +// cloud logging. +func replaceAttr(groups []string, a slog.Attr) slog.Attr { + if groups == nil { + if a.Key == slog.LevelKey { + a.Key = googLvlKey + return a + } else if a.Key == slog.MessageKey { + a.Key = googMsgKey + return a + } else if a.Key == slog.SourceKey { + a.Key = googSourceKey + return a + } else if a.Key == slog.TimeKey { + a.Key = googTimeKey + if a.Value.Kind() == slog.KindTime { + a.Value = slog.StringValue(a.Value.Time().Format(time.RFC3339)) + } + return a + } + } + return a +} + +// The handler returned if logging is not enabled. +type noOpHandler struct{} + +func (h noOpHandler) Enabled(_ context.Context, _ slog.Level) bool { + return false +} + +func (h noOpHandler) Handle(_ context.Context, _ slog.Record) error { + return nil +} + +func (h noOpHandler) WithAttrs(_ []slog.Attr) slog.Handler { + return h +} + +func (h noOpHandler) WithGroup(_ string) slog.Handler { + return h +} diff --git a/vendor/github.com/googleapis/gax-go/v2/internallog/internallog.go b/vendor/github.com/googleapis/gax-go/v2/internallog/internallog.go new file mode 100644 index 000000000..e47ab32ac --- /dev/null +++ b/vendor/github.com/googleapis/gax-go/v2/internallog/internallog.go @@ -0,0 +1,154 @@ +// Copyright 2024, Google Inc. +// All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// * Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// * Redistributions in binary form must reproduce the above +// copyright notice, this list of conditions and the following disclaimer +// in the documentation and/or other materials provided with the +// distribution. +// * Neither the name of Google Inc. nor the names of its +// contributors may be used to endorse or promote products derived from +// this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +// Package internallog in intended for internal use by generated clients only. +package internallog + +import ( + "bytes" + "encoding/json" + "fmt" + "log/slog" + "net/http" + "os" + "strings" + + "github.com/googleapis/gax-go/v2/internallog/internal" +) + +// New returns a new [slog.Logger] default logger, or the provided logger if +// non-nil. The returned logger will be a no-op logger unless the environment +// variable GOOGLE_SDK_GO_LOGGING_LEVEL is set. +func New(l *slog.Logger) *slog.Logger { + if l != nil { + return l + } + return internal.NewLoggerWithWriter(os.Stderr) +} + +// HTTPRequest returns a lazily evaluated [slog.LogValuer] for a +// [http.Request] and the associated body. +func HTTPRequest(req *http.Request, body []byte) slog.LogValuer { + return &request{ + req: req, + payload: body, + } +} + +type request struct { + req *http.Request + payload []byte +} + +func (r *request) LogValue() slog.Value { + if r == nil || r.req == nil { + return slog.Value{} + } + var groupValueAttrs []slog.Attr + groupValueAttrs = append(groupValueAttrs, slog.String("method", r.req.Method)) + groupValueAttrs = append(groupValueAttrs, slog.String("url", r.req.URL.String())) + + var headerAttr []slog.Attr + for k, val := range r.req.Header { + headerAttr = append(headerAttr, slog.String(k, strings.Join(val, ","))) + } + if len(headerAttr) > 0 { + groupValueAttrs = append(groupValueAttrs, slog.Any("headers", headerAttr)) + } + + if len(r.payload) > 0 { + if attr, ok := processPayload(r.payload); ok { + groupValueAttrs = append(groupValueAttrs, attr) + } + } + return slog.GroupValue(groupValueAttrs...) +} + +// HTTPResponse returns a lazily evaluated [slog.LogValuer] for a +// [http.Response] and the associated body. +func HTTPResponse(resp *http.Response, body []byte) slog.LogValuer { + return &response{ + resp: resp, + payload: body, + } +} + +type response struct { + resp *http.Response + payload []byte +} + +func (r *response) LogValue() slog.Value { + if r == nil { + return slog.Value{} + } + var groupValueAttrs []slog.Attr + groupValueAttrs = append(groupValueAttrs, slog.String("status", fmt.Sprint(r.resp.StatusCode))) + + var headerAttr []slog.Attr + for k, val := range r.resp.Header { + headerAttr = append(headerAttr, slog.String(k, strings.Join(val, ","))) + } + if len(headerAttr) > 0 { + groupValueAttrs = append(groupValueAttrs, slog.Any("headers", headerAttr)) + } + + if len(r.payload) > 0 { + if attr, ok := processPayload(r.payload); ok { + groupValueAttrs = append(groupValueAttrs, attr) + } + } + return slog.GroupValue(groupValueAttrs...) +} + +func processPayload(payload []byte) (slog.Attr, bool) { + peekChar := payload[0] + if peekChar == '{' { + // JSON object + var m map[string]any + if err := json.Unmarshal(payload, &m); err == nil { + return slog.Any("payload", m), true + } + } else if peekChar == '[' { + // JSON array + var m []any + if err := json.Unmarshal(payload, &m); err == nil { + return slog.Any("payload", m), true + } + } else { + // Everything else + buf := &bytes.Buffer{} + if err := json.Compact(buf, payload); err != nil { + // Write raw payload incase of error + buf.Write(payload) + } + return slog.String("payload", buf.String()), true + } + return slog.Attr{}, false +} diff --git a/vendor/github.com/googleapis/gax-go/v2/invoke.go b/vendor/github.com/googleapis/gax-go/v2/invoke.go index 721d1af55..ea16c3c5a 100644 --- a/vendor/github.com/googleapis/gax-go/v2/invoke.go +++ b/vendor/github.com/googleapis/gax-go/v2/invoke.go @@ -31,15 +31,26 @@ package gax import ( "context" + "strconv" "strings" "time" "github.com/googleapis/gax-go/v2/apierror" + "github.com/googleapis/gax-go/v2/callctx" ) // APICall is a user defined call stub. type APICall func(context.Context, CallSettings) error +// withRetryCount returns a new context with the retry count appended to +// the telemetry context. The retry count is the number of retries that have been +// attempted. On the initial request, retry count is 0. +// On a second request (the first retry), retry count is 1. +func withRetryCount(ctx context.Context, retryCount int) context.Context { + // Add to telemetry context so it's visible to observability wrappers + return callctx.WithTelemetryContext(ctx, "resend_count", strconv.Itoa(retryCount)) +} + // Invoke calls the given APICall, performing retries as specified by opts, if // any. func Invoke(ctx context.Context, call APICall, opts ...CallOption) error { @@ -66,7 +77,7 @@ func Sleep(ctx context.Context, d time.Duration) error { type sleeper func(ctx context.Context, d time.Duration) error // invoke implements Invoke, taking an additional sleeper argument for testing. -func invoke(ctx context.Context, call APICall, settings CallSettings, sp sleeper) error { +func invoke(ctx context.Context, call APICall, settings CallSettings, sp sleeper) (err error) { var retryer Retryer // Only use the value provided via WithTimeout if the context doesn't @@ -78,8 +89,23 @@ func invoke(ctx context.Context, call APICall, settings CallSettings, sp sleeper ctx = c } + if IsFeatureEnabled("METRICS") { + start := time.Now() + ctx = InjectTransportTelemetry(ctx, &TransportTelemetryData{}) + defer func() { + recordMetric(ctx, settings, time.Since(start), err) + }() + } + + retryCount := 0 + // Feature gate: GOOGLE_SDK_GO_EXPERIMENTAL_TRACING=true + tracingEnabled := IsFeatureEnabled("TRACING") for { - err := call(ctx, settings) + ctxToUse := ctx + if tracingEnabled { + ctxToUse = withRetryCount(ctx, retryCount) + } + err = call(ctxToUse, settings) if err == nil { return nil } @@ -110,5 +136,6 @@ func invoke(ctx context.Context, call APICall, settings CallSettings, sp sleeper } else if err = sp(ctx, d); err != nil { return err } + retryCount++ } } diff --git a/vendor/github.com/googleapis/gax-go/v2/telemetry.go b/vendor/github.com/googleapis/gax-go/v2/telemetry.go new file mode 100644 index 000000000..b849b3691 --- /dev/null +++ b/vendor/github.com/googleapis/gax-go/v2/telemetry.go @@ -0,0 +1,469 @@ +// Copyright 2026, Google Inc. +// All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// * Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// * Redistributions in binary form must reproduce the above +// copyright notice, this list of conditions and the following disclaimer +// in the documentation and/or other materials provided with the +// distribution. +// * Neither the name of Google Inc. nor the names of its +// contributors may be used to endorse or promote products derived from +// this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +package gax + +import ( + "context" + "errors" + "fmt" + "log/slog" + "strconv" + "sync" + "time" + + "github.com/googleapis/gax-go/v2/apierror" + "github.com/googleapis/gax-go/v2/callctx" + "go.opentelemetry.io/otel" + "go.opentelemetry.io/otel/attribute" + "go.opentelemetry.io/otel/metric" + "google.golang.org/grpc/codes" + "google.golang.org/grpc/status" +) + +// TransportTelemetryData contains mutable telemetry information that the transport +// layer (e.g. gRPC or HTTP) populates during an RPC. This allows gax.Invoke to +// correctly emit metric data without directly importing those transport layers. +// TransportTelemetryData is experimental and may be modified or removed in future versions, +// regardless of any other documented package stability guarantees. +// It should not be used by external consumers. +type TransportTelemetryData struct { + serverAddress string + serverPort int +} + +// SetServerAddress sets the server address. +// Experimental: This function is experimental and may be modified or removed in future versions, +// regardless of any other documented package stability guarantees. +func (d *TransportTelemetryData) SetServerAddress(addr string) { d.serverAddress = addr } + +// ServerAddress returns the server address. +// Experimental: This function is experimental and may be modified or removed in future versions, +// regardless of any other documented package stability guarantees. +func (d *TransportTelemetryData) ServerAddress() string { return d.serverAddress } + +// SetServerPort sets the server port. +// Experimental: This function is experimental and may be modified or removed in future versions, +// regardless of any other documented package stability guarantees. +func (d *TransportTelemetryData) SetServerPort(port int) { d.serverPort = port } + +// ServerPort returns the server port. +// Experimental: This function is experimental and may be modified or removed in future versions, +// regardless of any other documented package stability guarantees. +func (d *TransportTelemetryData) ServerPort() int { return d.serverPort } + +// transportTelemetryKey is the private context key used to inject TransportTelemetryData +type transportTelemetryKey struct{} + +// InjectTransportTelemetry injects a mutable TransportTelemetryData pointer into the context. +// Experimental: This function is experimental and may be modified or removed in future versions, +// regardless of any other documented package stability guarantees. +func InjectTransportTelemetry(ctx context.Context, data *TransportTelemetryData) context.Context { + return context.WithValue(ctx, transportTelemetryKey{}, data) +} + +// ExtractTransportTelemetry retrieves a mutable TransportTelemetryData pointer from the context. +// It returns nil if the data is not present. +// Experimental: This function is experimental and may be modified or removed in future versions, +// regardless of any other documented package stability guarantees. +func ExtractTransportTelemetry(ctx context.Context) *TransportTelemetryData { + data, _ := ctx.Value(transportTelemetryKey{}).(*TransportTelemetryData) + return data +} + +const ( + metricName = "gcp.client.request.duration" + metricDescription = "Duration of the request to the Google Cloud API" + + // Constants for ClientMetrics configuration map keys. + // These are used by generated clients to pass attributes to the ClientMetrics option. + // Because they are used in generated code, these values must not be changed. + + // ClientService is the Google Cloud API service name. E.g. "storage". + ClientService = "client_service" + // ClientVersion is the version of the client. E.g. "1.43.0". + ClientVersion = "client_version" + // ClientArtifact is the library name. E.g. "cloud.google.com/go/storage". + ClientArtifact = "client_artifact" + // RPCSystem is the RPC system type. E.g. "grpc" or "http". + RPCSystem = "rpc_system" + // URLDomain is the nominal service domain. E.g. "storage.googleapis.com". + URLDomain = "url_domain" + + // Constants for telemetry attribute keys. + keyGCPClientService = "gcp.client.service" + keyRPCSystemName = "rpc.system.name" + keyURLDomain = "url.domain" + + // SchemaURL specifies the OpenTelemetry schema version. + schemaURL = "https://opentelemetry.io/schemas/1.39.0" +) + +// Default bucket boundaries for the duration metric in seconds. +// An exponential-ish distribution. +var defaultHistogramBoundaries = []float64{ + 0.0, 0.0001, 0.0005, 0.0010, 0.005, 0.010, 0.050, 0.100, 0.5, 1.0, 5.0, 10.0, 60.0, 300.0, 900.0, 3600.0, +} + +// ClientMetrics contains the pre-allocated OpenTelemetry instruments and attributes +// for a specific generated Google Cloud client library. +// There should be exactly one ClientMetrics instance instantiated per generated client. +type ClientMetrics struct { + get func() clientMetricsData +} + +type clientMetricsData struct { + duration metric.Float64Histogram + attr []attribute.KeyValue +} + +type telemetryOptions struct { + provider metric.MeterProvider + attributes map[string]string + explicitBucketBoundaries []float64 + logger *slog.Logger +} + +// TelemetryOption is an option to configure a ClientMetrics instance. +// TelemetryOption works by modifying relevant fields of telemetryOptions. +type TelemetryOption interface { + // Resolve applies the option by modifying opts. + Resolve(opts *telemetryOptions) +} + +type providerOpt struct { + p metric.MeterProvider +} + +func (p providerOpt) Resolve(opts *telemetryOptions) { + opts.provider = p.p +} + +// WithMeterProvider specifies the metric.MeterProvider to use for instruments. +func WithMeterProvider(p metric.MeterProvider) TelemetryOption { + return &providerOpt{p: p} +} + +type attrOpt struct { + attrs map[string]string +} + +func (a attrOpt) Resolve(opts *telemetryOptions) { + opts.attributes = a.attrs +} + +// WithTelemetryAttributes specifies the static attributes attachments. +func WithTelemetryAttributes(attr map[string]string) TelemetryOption { + return &attrOpt{attrs: attr} +} + +type boundariesOpt struct { + boundaries []float64 +} + +func (b boundariesOpt) Resolve(opts *telemetryOptions) { + opts.explicitBucketBoundaries = b.boundaries +} + +// WithExplicitBucketBoundaries overrides the default histogram bucket boundaries. +func WithExplicitBucketBoundaries(boundaries []float64) TelemetryOption { + return &boundariesOpt{boundaries: boundaries} +} + +type loggerOpt struct { + l *slog.Logger +} + +func (l loggerOpt) Resolve(opts *telemetryOptions) { + opts.logger = l.l +} + +// WithTelemetryLogger specifies a logger to record internal telemetry errors. +func WithTelemetryLogger(l *slog.Logger) TelemetryOption { + return &loggerOpt{l: l} +} + +func (config *telemetryOptions) meterProvider() metric.MeterProvider { + if config.provider != nil { + return config.provider + } + return otel.GetMeterProvider() +} + +func (config *telemetryOptions) bucketBoundaries() []float64 { + if len(config.explicitBucketBoundaries) > 0 { + return config.explicitBucketBoundaries + } + return defaultHistogramBoundaries +} + +// NewClientMetrics initializes and returns a new ClientMetrics instance. +// It is intended to be called once per generated client during initialization. +func NewClientMetrics(opts ...TelemetryOption) *ClientMetrics { + var config telemetryOptions + for _, opt := range opts { + opt.Resolve(&config) + } + + return &ClientMetrics{ + get: sync.OnceValue(func() clientMetricsData { + provider := config.meterProvider() + + var meterAttrs []attribute.KeyValue + if val, ok := config.attributes[ClientService]; ok { + meterAttrs = append(meterAttrs, attribute.KeyValue{Key: attribute.Key(keyGCPClientService), Value: attribute.StringValue(val)}) + } + + meterOpts := []metric.MeterOption{ + metric.WithInstrumentationVersion(config.attributes[ClientVersion]), + metric.WithSchemaURL(schemaURL), + } + if len(meterAttrs) > 0 { + meterOpts = append(meterOpts, metric.WithInstrumentationAttributes(meterAttrs...)) + } + + meter := provider.Meter(config.attributes[ClientArtifact], meterOpts...) + + boundaries := config.bucketBoundaries() + + duration, err := meter.Float64Histogram( + metricName, + metric.WithDescription(metricDescription), + metric.WithUnit("s"), + metric.WithExplicitBucketBoundaries(boundaries...), + ) + if err != nil && config.logger != nil { + config.logger.Warn("failed to initialize OTel duration histogram", "error", err) + } + + var attr []attribute.KeyValue + if val, ok := config.attributes[URLDomain]; ok { + attr = append(attr, attribute.KeyValue{Key: attribute.Key(keyURLDomain), Value: attribute.StringValue(val)}) + } + if val, ok := config.attributes[RPCSystem]; ok { + attr = append(attr, attribute.KeyValue{Key: attribute.Key(keyRPCSystemName), Value: attribute.StringValue(val)}) + } + return clientMetricsData{ + duration: duration, + attr: attr, + } + }), + } +} + +func (cm *ClientMetrics) durationHistogram() metric.Float64Histogram { + if cm == nil || cm.get == nil { + return nil + } + return cm.get().duration +} + +func (cm *ClientMetrics) attributes() []attribute.KeyValue { + if cm == nil || cm.get == nil { + return nil + } + return cm.get().attr +} + +var codeToStr = [...]string{ + "OK", // codes.OK = 0 + "CANCELED", // codes.Canceled = 1 + "UNKNOWN", // codes.Unknown = 2 + "INVALID_ARGUMENT", // codes.InvalidArgument = 3 + "DEADLINE_EXCEEDED", // codes.DeadlineExceeded = 4 + "NOT_FOUND", // codes.NotFound = 5 + "ALREADY_EXISTS", // codes.AlreadyExists = 6 + "PERMISSION_DENIED", // codes.PermissionDenied = 7 + "RESOURCE_EXHAUSTED", // codes.ResourceExhausted = 8 + "FAILED_PRECONDITION", // codes.FailedPrecondition = 9 + "ABORTED", // codes.Aborted = 10 + "OUT_OF_RANGE", // codes.OutOfRange = 11 + "UNIMPLEMENTED", // codes.Unimplemented = 12 + "INTERNAL", // codes.Internal = 13 + "UNAVAILABLE", // codes.Unavailable = 14 + "DATA_LOSS", // codes.DataLoss = 15 + "UNAUTHENTICATED", // codes.Unauthenticated = 16 +} + +// grpcCodeToStatusString converts a codes.Code to its string representation. +// Experimental: This function is experimental and may be modified or removed in future versions, +// regardless of any other documented package stability guarantees. +func grpcCodeToStatusString(c codes.Code) string { + if int(c) >= 0 && int(c) < len(codeToStr) { + return codeToStr[c] + } + return "UNKNOWN" +} + +// TelemetryErrorInfo contains the mapped error type and status code, as well as +// additional details like status message, domain, and metadata, extracted from an error +// for telemetry purposes. +type TelemetryErrorInfo struct { + // ErrorType is a mapped string for the error type. + // For stability, this maps client-side cancellations, timeouts, and known gRPC + // status codes to standard string literals (e.g., "CLIENT_TIMEOUT", + // "PERMISSION_DENIED"), and falls back to %T for unhandled types. If an + // apierror.APIError is found, it uses its fine-grained Reason() (e.g., + // "SERVICE_DISABLED"). + // This is used by metrics, tracing, and logging. + ErrorType string + // StatusCode is the string representation of the RPC status code. + // This is used by metrics, tracing, and logging. + StatusCode string + // StatusMessage is the raw message from the error. + // This is used for structured logging. + StatusMessage string + // Domain is the domain of the error, extracted from an ErrorInfo, if available. + // This is used for structured logging. + Domain string + // Metadata is the metadata of the error, extracted from an ErrorInfo, if available. + // This is used for structured logging. + Metadata map[string]string + + // _ struct{} prevents unkeyed struct literals, ensuring backwards + // compatibility when new fields are added in the future. + _ struct{} +} + +// ExtractTelemetryErrorInfo parses an error into a TelemetryErrorInfo struct. +// It relies on standard gRPC status codes, apierror.APIError parsing, and +// context inspection to determine the most accurate error classification and +// provide detailed metadata for telemetry systems. +// +// Experimental: This function is experimental and may be modified or removed in future versions, +// regardless of any other documented package stability guarantees. +func ExtractTelemetryErrorInfo(ctx context.Context, err error) TelemetryErrorInfo { + if err == nil { + return TelemetryErrorInfo{ErrorType: "", StatusCode: "OK"} + } + + st, ok := status.FromError(err) + if !ok { + st = status.FromContextError(err) + } + rpcStatusCode := grpcCodeToStatusString(st.Code()) + + var errType string + // 1. Check if the local context expired or was cancelled. This is the only + // reliable way to distinguish a local client timeout from a server timeout + // because gRPC does not wrap context errors in its status.Error types. + if errors.Is(ctx.Err(), context.DeadlineExceeded) { + errType = "CLIENT_TIMEOUT" + } else if errors.Is(ctx.Err(), context.Canceled) { + errType = "CLIENT_CANCELLED" + } else if !ok || st.Code() == codes.Unknown || st.Code() == codes.Internal { + // 2. If the error isn't a context breakdown and the gRPC framework + // doesn't "understand" it (returning ok=false or a generic catch-all + // bucket like Unknown/Internal), we "pack" the actual Go error type + // name into error.type (e.g., "*net.OpError"). This is per the error.type + // [spec](https://opentelemetry.io/docs/specs/semconv/registry/attributes/error/#error-type). + // "When error.type is set to a type (e.g., an exception type), its canonical + // class name identifying the type within the artifact SHOULD be used." + errType = fmt.Sprintf("%T", err) + } else { + // 3. Otherwise, it is a well-understood gRPC protocol error (e.g., + // PERMISSION_DENIED) likely returned by the server. + errType = rpcStatusCode + } + + var msg, domain string + var metadata map[string]string + if ok { + msg = st.Message() + } else { + msg = err.Error() + } + + if parsedErr, parsedOk := apierror.ParseError(err, false); parsedOk { + // If there's an actionable error, the reason takes precedence over our calculated error type. + if reason := parsedErr.Reason(); reason != "" { + errType = reason + } else if httpCode := parsedErr.HTTPCode(); httpCode > 0 { + errType = strconv.Itoa(httpCode) + } + if message := parsedErr.Message(); message != "" { + msg = message + } else if parsedErr.HTTPCode() > 0 { + // For HTTP errors, avoid returning the raw, unformatted err.Error() (e.g. "googleapi: got HTTP response...") + // if the actual parsed message from the response is empty. + msg = "" + } + domain = parsedErr.Domain() + metadata = parsedErr.Metadata() + } + + return TelemetryErrorInfo{ + ErrorType: errType, + StatusCode: rpcStatusCode, + StatusMessage: msg, + Domain: domain, + Metadata: metadata, + } +} + +// recordMetric records a duration measurement for the configured metric. +func recordMetric(ctx context.Context, settings CallSettings, d time.Duration, err error) { + if settings.clientMetrics == nil || settings.clientMetrics.durationHistogram() == nil { + return + } + + // Use context.WithoutCancel to ensure metric records even if context is canceled + // preserving any trace context that might be required for exemplars. + recordCtx := context.WithoutCancel(ctx) + + // Pre-allocate to avoid repeated appends (5 is the max number of dynamic attributes added here) + attrs := make([]attribute.KeyValue, 0, len(settings.clientMetrics.attributes())+5) + attrs = append(attrs, settings.clientMetrics.attributes()...) + + errInfo := ExtractTelemetryErrorInfo(ctx, err) + + if td := ExtractTransportTelemetry(ctx); td != nil { + if td.ServerAddress() != "" { + attrs = append(attrs, attribute.String("server.address", td.ServerAddress())) + } + if td.ServerPort() != 0 { + attrs = append(attrs, attribute.Int("server.port", td.ServerPort())) + } + } + + if errInfo.ErrorType != "" { + attrs = append(attrs, attribute.String("error.type", errInfo.ErrorType)) + } + + attrs = append(attrs, attribute.String("rpc.response.status_code", errInfo.StatusCode)) + + if rpcMethod, ok := callctx.TelemetryFromContext(ctx, "rpc_method"); ok && rpcMethod != "" { + attrs = append(attrs, attribute.String("rpc.method", rpcMethod)) + } + if urlTemplate, ok := callctx.TelemetryFromContext(ctx, "url_template"); ok && urlTemplate != "" { + attrs = append(attrs, attribute.String("url.template", urlTemplate)) + } + + settings.clientMetrics.durationHistogram().Record(recordCtx, d.Seconds(), metric.WithAttributes(attrs...)) +} diff --git a/vendor/go.opencensus.io/.gitignore b/vendor/go.opencensus.io/.gitignore deleted file mode 100644 index 74a6db472..000000000 --- a/vendor/go.opencensus.io/.gitignore +++ /dev/null @@ -1,9 +0,0 @@ -/.idea/ - -# go.opencensus.io/exporter/aws -/exporter/aws/ - -# Exclude vendor, use dep ensure after checkout: -/vendor/github.com/ -/vendor/golang.org/ -/vendor/google.golang.org/ diff --git a/vendor/go.opencensus.io/AUTHORS b/vendor/go.opencensus.io/AUTHORS deleted file mode 100644 index e491a9e7f..000000000 --- a/vendor/go.opencensus.io/AUTHORS +++ /dev/null @@ -1 +0,0 @@ -Google Inc. diff --git a/vendor/go.opencensus.io/CONTRIBUTING.md b/vendor/go.opencensus.io/CONTRIBUTING.md deleted file mode 100644 index 1ba3962c8..000000000 --- a/vendor/go.opencensus.io/CONTRIBUTING.md +++ /dev/null @@ -1,63 +0,0 @@ -# How to contribute - -We'd love to accept your patches and contributions to this project. There are -just a few small guidelines you need to follow. - -## Contributor License Agreement - -Contributions to this project must be accompanied by a Contributor License -Agreement. You (or your employer) retain the copyright to your contribution, -this simply gives us permission to use and redistribute your contributions as -part of the project. Head over to to see -your current agreements on file or to sign a new one. - -You generally only need to submit a CLA once, so if you've already submitted one -(even if it was for a different project), you probably don't need to do it -again. - -## Code reviews - -All submissions, including submissions by project members, require review. We -use GitHub pull requests for this purpose. Consult [GitHub Help] for more -information on using pull requests. - -[GitHub Help]: https://help.github.com/articles/about-pull-requests/ - -## Instructions - -Fork the repo, checkout the upstream repo to your GOPATH by: - -``` -$ go get -d go.opencensus.io -``` - -Add your fork as an origin: - -``` -cd $(go env GOPATH)/src/go.opencensus.io -git remote add fork git@github.com:YOUR_GITHUB_USERNAME/opencensus-go.git -``` - -Run tests: - -``` -$ make install-tools # Only first time. -$ make -``` - -Checkout a new branch, make modifications and push the branch to your fork: - -``` -$ git checkout -b feature -# edit files -$ git commit -$ git push fork feature -``` - -Open a pull request against the main opencensus-go repo. - -## General Notes -This project uses Appveyor and Travis for CI. - -The dependencies are managed with `go mod` if you work with the sources under your -`$GOPATH` you need to set the environment variable `GO111MODULE=on`. \ No newline at end of file diff --git a/vendor/go.opencensus.io/LICENSE b/vendor/go.opencensus.io/LICENSE deleted file mode 100644 index 7a4a3ea24..000000000 --- a/vendor/go.opencensus.io/LICENSE +++ /dev/null @@ -1,202 +0,0 @@ - - Apache License - Version 2.0, January 2004 - http://www.apache.org/licenses/ - - TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - - 1. Definitions. - - "License" shall mean the terms and conditions for use, reproduction, - and distribution as defined by Sections 1 through 9 of this document. - - "Licensor" shall mean the copyright owner or entity authorized by - the copyright owner that is granting the License. - - "Legal Entity" shall mean the union of the acting entity and all - other entities that control, are controlled by, or are under common - control with that entity. For the purposes of this definition, - "control" means (i) the power, direct or indirect, to cause the - direction or management of such entity, whether by contract or - otherwise, or (ii) ownership of fifty percent (50%) or more of the - outstanding shares, or (iii) beneficial ownership of such entity. - - "You" (or "Your") shall mean an individual or Legal Entity - exercising permissions granted by this License. - - "Source" form shall mean the preferred form for making modifications, - including but not limited to software source code, documentation - source, and configuration files. - - "Object" form shall mean any form resulting from mechanical - transformation or translation of a Source form, including but - not limited to compiled object code, generated documentation, - and conversions to other media types. - - "Work" shall mean the work of authorship, whether in Source or - Object form, made available under the License, as indicated by a - copyright notice that is included in or attached to the work - (an example is provided in the Appendix below). - - "Derivative Works" shall mean any work, whether in Source or Object - form, that is based on (or derived from) the Work and for which the - editorial revisions, annotations, elaborations, or other modifications - represent, as a whole, an original work of authorship. For the purposes - of this License, Derivative Works shall not include works that remain - separable from, or merely link (or bind by name) to the interfaces of, - the Work and Derivative Works thereof. - - "Contribution" shall mean any work of authorship, including - the original version of the Work and any modifications or additions - to that Work or Derivative Works thereof, that is intentionally - submitted to Licensor for inclusion in the Work by the copyright owner - or by an individual or Legal Entity authorized to submit on behalf of - the copyright owner. For the purposes of this definition, "submitted" - means any form of electronic, verbal, or written communication sent - to the Licensor or its representatives, including but not limited to - communication on electronic mailing lists, source code control systems, - and issue tracking systems that are managed by, or on behalf of, the - Licensor for the purpose of discussing and improving the Work, but - excluding communication that is conspicuously marked or otherwise - designated in writing by the copyright owner as "Not a Contribution." - - "Contributor" shall mean Licensor and any individual or Legal Entity - on behalf of whom a Contribution has been received by Licensor and - subsequently incorporated within the Work. - - 2. Grant of Copyright License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - copyright license to reproduce, prepare Derivative Works of, - publicly display, publicly perform, sublicense, and distribute the - Work and such Derivative Works in Source or Object form. - - 3. Grant of Patent License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - (except as stated in this section) patent license to make, have made, - use, offer to sell, sell, import, and otherwise transfer the Work, - where such license applies only to those patent claims licensable - by such Contributor that are necessarily infringed by their - Contribution(s) alone or by combination of their Contribution(s) - with the Work to which such Contribution(s) was submitted. If You - institute patent litigation against any entity (including a - cross-claim or counterclaim in a lawsuit) alleging that the Work - or a Contribution incorporated within the Work constitutes direct - or contributory patent infringement, then any patent licenses - granted to You under this License for that Work shall terminate - as of the date such litigation is filed. - - 4. Redistribution. You may reproduce and distribute copies of the - Work or Derivative Works thereof in any medium, with or without - modifications, and in Source or Object form, provided that You - meet the following conditions: - - (a) You must give any other recipients of the Work or - Derivative Works a copy of this License; and - - (b) You must cause any modified files to carry prominent notices - stating that You changed the files; and - - (c) You must retain, in the Source form of any Derivative Works - that You distribute, all copyright, patent, trademark, and - attribution notices from the Source form of the Work, - excluding those notices that do not pertain to any part of - the Derivative Works; and - - (d) If the Work includes a "NOTICE" text file as part of its - distribution, then any Derivative Works that You distribute must - include a readable copy of the attribution notices contained - within such NOTICE file, excluding those notices that do not - pertain to any part of the Derivative Works, in at least one - of the following places: within a NOTICE text file distributed - as part of the Derivative Works; within the Source form or - documentation, if provided along with the Derivative Works; or, - within a display generated by the Derivative Works, if and - wherever such third-party notices normally appear. The contents - of the NOTICE file are for informational purposes only and - do not modify the License. You may add Your own attribution - notices within Derivative Works that You distribute, alongside - or as an addendum to the NOTICE text from the Work, provided - that such additional attribution notices cannot be construed - as modifying the License. - - You may add Your own copyright statement to Your modifications and - may provide additional or different license terms and conditions - for use, reproduction, or distribution of Your modifications, or - for any such Derivative Works as a whole, provided Your use, - reproduction, and distribution of the Work otherwise complies with - the conditions stated in this License. - - 5. Submission of Contributions. Unless You explicitly state otherwise, - any Contribution intentionally submitted for inclusion in the Work - by You to the Licensor shall be under the terms and conditions of - this License, without any additional terms or conditions. - Notwithstanding the above, nothing herein shall supersede or modify - the terms of any separate license agreement you may have executed - with Licensor regarding such Contributions. - - 6. Trademarks. This License does not grant permission to use the trade - names, trademarks, service marks, or product names of the Licensor, - except as required for reasonable and customary use in describing the - origin of the Work and reproducing the content of the NOTICE file. - - 7. Disclaimer of Warranty. Unless required by applicable law or - agreed to in writing, Licensor provides the Work (and each - Contributor provides its Contributions) on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or - implied, including, without limitation, any warranties or conditions - of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A - PARTICULAR PURPOSE. You are solely responsible for determining the - appropriateness of using or redistributing the Work and assume any - risks associated with Your exercise of permissions under this License. - - 8. Limitation of Liability. In no event and under no legal theory, - whether in tort (including negligence), contract, or otherwise, - unless required by applicable law (such as deliberate and grossly - negligent acts) or agreed to in writing, shall any Contributor be - liable to You for damages, including any direct, indirect, special, - incidental, or consequential damages of any character arising as a - result of this License or out of the use or inability to use the - Work (including but not limited to damages for loss of goodwill, - work stoppage, computer failure or malfunction, or any and all - other commercial damages or losses), even if such Contributor - has been advised of the possibility of such damages. - - 9. Accepting Warranty or Additional Liability. While redistributing - the Work or Derivative Works thereof, You may choose to offer, - and charge a fee for, acceptance of support, warranty, indemnity, - or other liability obligations and/or rights consistent with this - License. However, in accepting such obligations, You may act only - on Your own behalf and on Your sole responsibility, not on behalf - of any other Contributor, and only if You agree to indemnify, - defend, and hold each Contributor harmless for any liability - incurred by, or claims asserted against, such Contributor by reason - of your accepting any such warranty or additional liability. - - END OF TERMS AND CONDITIONS - - APPENDIX: How to apply the Apache License to your work. - - To apply the Apache License to your work, attach the following - boilerplate notice, with the fields enclosed by brackets "[]" - replaced with your own identifying information. (Don't include - the brackets!) The text should be enclosed in the appropriate - comment syntax for the file format. We also recommend that a - file or class name and description of purpose be included on the - same "printed page" as the copyright notice for easier - identification within third-party archives. - - Copyright [yyyy] [name of copyright owner] - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. \ No newline at end of file diff --git a/vendor/go.opencensus.io/Makefile b/vendor/go.opencensus.io/Makefile deleted file mode 100644 index d896edc99..000000000 --- a/vendor/go.opencensus.io/Makefile +++ /dev/null @@ -1,97 +0,0 @@ -# TODO: Fix this on windows. -ALL_SRC := $(shell find . -name '*.go' \ - -not -path './vendor/*' \ - -not -path '*/gen-go/*' \ - -type f | sort) -ALL_PKGS := $(shell go list $(sort $(dir $(ALL_SRC)))) - -GOTEST_OPT?=-v -race -timeout 30s -GOTEST_OPT_WITH_COVERAGE = $(GOTEST_OPT) -coverprofile=coverage.txt -covermode=atomic -GOTEST=go test -GOIMPORTS=goimports -GOLINT=golint -GOVET=go vet -EMBEDMD=embedmd -# TODO decide if we need to change these names. -TRACE_ID_LINT_EXCEPTION="type name will be used as trace.TraceID by other packages" -TRACE_OPTION_LINT_EXCEPTION="type name will be used as trace.TraceOptions by other packages" -README_FILES := $(shell find . -name '*README.md' | sort | tr '\n' ' ') - -.DEFAULT_GOAL := imports-lint-vet-embedmd-test - -.PHONY: imports-lint-vet-embedmd-test -imports-lint-vet-embedmd-test: imports lint vet embedmd test - -# TODO enable test-with-coverage in tavis -.PHONY: travis-ci -travis-ci: imports lint vet embedmd test test-386 - -all-pkgs: - @echo $(ALL_PKGS) | tr ' ' '\n' | sort - -all-srcs: - @echo $(ALL_SRC) | tr ' ' '\n' | sort - -.PHONY: test -test: - $(GOTEST) $(GOTEST_OPT) $(ALL_PKGS) - -.PHONY: test-386 -test-386: - GOARCH=386 $(GOTEST) -v -timeout 30s $(ALL_PKGS) - -.PHONY: test-with-coverage -test-with-coverage: - $(GOTEST) $(GOTEST_OPT_WITH_COVERAGE) $(ALL_PKGS) - -.PHONY: imports -imports: - @IMPORTSOUT=`$(GOIMPORTS) -l $(ALL_SRC) 2>&1`; \ - if [ "$$IMPORTSOUT" ]; then \ - echo "$(GOIMPORTS) FAILED => goimports the following files:\n"; \ - echo "$$IMPORTSOUT\n"; \ - exit 1; \ - else \ - echo "Imports finished successfully"; \ - fi - -.PHONY: lint -lint: - @LINTOUT=`$(GOLINT) $(ALL_PKGS) | grep -v $(TRACE_ID_LINT_EXCEPTION) | grep -v $(TRACE_OPTION_LINT_EXCEPTION) 2>&1`; \ - if [ "$$LINTOUT" ]; then \ - echo "$(GOLINT) FAILED => clean the following lint errors:\n"; \ - echo "$$LINTOUT\n"; \ - exit 1; \ - else \ - echo "Lint finished successfully"; \ - fi - -.PHONY: vet -vet: - # TODO: Understand why go vet downloads "github.com/google/go-cmp v0.2.0" - @VETOUT=`$(GOVET) ./... | grep -v "go: downloading" 2>&1`; \ - if [ "$$VETOUT" ]; then \ - echo "$(GOVET) FAILED => go vet the following files:\n"; \ - echo "$$VETOUT\n"; \ - exit 1; \ - else \ - echo "Vet finished successfully"; \ - fi - -.PHONY: embedmd -embedmd: - @EMBEDMDOUT=`$(EMBEDMD) -d $(README_FILES) 2>&1`; \ - if [ "$$EMBEDMDOUT" ]; then \ - echo "$(EMBEDMD) FAILED => embedmd the following files:\n"; \ - echo "$$EMBEDMDOUT\n"; \ - exit 1; \ - else \ - echo "Embedmd finished successfully"; \ - fi - -.PHONY: install-tools -install-tools: - go install golang.org/x/lint/golint@latest - go install golang.org/x/tools/cmd/cover@latest - go install golang.org/x/tools/cmd/goimports@latest - go install github.com/rakyll/embedmd@latest diff --git a/vendor/go.opencensus.io/README.md b/vendor/go.opencensus.io/README.md deleted file mode 100644 index 1d7e83711..000000000 --- a/vendor/go.opencensus.io/README.md +++ /dev/null @@ -1,267 +0,0 @@ -# OpenCensus Libraries for Go - -[![Build Status][travis-image]][travis-url] -[![Windows Build Status][appveyor-image]][appveyor-url] -[![GoDoc][godoc-image]][godoc-url] -[![Gitter chat][gitter-image]][gitter-url] - -OpenCensus Go is a Go implementation of OpenCensus, a toolkit for -collecting application performance and behavior monitoring data. -Currently it consists of three major components: tags, stats and tracing. - -#### OpenCensus and OpenTracing have merged to form OpenTelemetry, which serves as the next major version of OpenCensus and OpenTracing. OpenTelemetry will offer backwards compatibility with existing OpenCensus integrations, and we will continue to make security patches to existing OpenCensus libraries for two years. Read more about the merger [here](https://medium.com/opentracing/a-roadmap-to-convergence-b074e5815289). - -## Installation - -``` -$ go get -u go.opencensus.io -``` - -The API of this project is still evolving, see: [Deprecation Policy](#deprecation-policy). -The use of vendoring or a dependency management tool is recommended. - -## Prerequisites - -OpenCensus Go libraries require Go 1.8 or later. - -## Getting Started - -The easiest way to get started using OpenCensus in your application is to use an existing -integration with your RPC framework: - -* [net/http](https://godoc.org/go.opencensus.io/plugin/ochttp) -* [gRPC](https://godoc.org/go.opencensus.io/plugin/ocgrpc) -* [database/sql](https://godoc.org/github.com/opencensus-integrations/ocsql) -* [Go kit](https://godoc.org/github.com/go-kit/kit/tracing/opencensus) -* [Groupcache](https://godoc.org/github.com/orijtech/groupcache) -* [Caddy webserver](https://godoc.org/github.com/orijtech/caddy) -* [MongoDB](https://godoc.org/github.com/orijtech/mongo-go-driver) -* [Redis gomodule/redigo](https://godoc.org/github.com/orijtech/redigo) -* [Redis goredis/redis](https://godoc.org/github.com/orijtech/redis) -* [Memcache](https://godoc.org/github.com/orijtech/gomemcache) - -If you're using a framework not listed here, you could either implement your own middleware for your -framework or use [custom stats](#stats) and [spans](#spans) directly in your application. - -## Exporters - -OpenCensus can export instrumentation data to various backends. -OpenCensus has exporter implementations for the following, users -can implement their own exporters by implementing the exporter interfaces -([stats](https://godoc.org/go.opencensus.io/stats/view#Exporter), -[trace](https://godoc.org/go.opencensus.io/trace#Exporter)): - -* [Prometheus][exporter-prom] for stats -* [OpenZipkin][exporter-zipkin] for traces -* [Stackdriver][exporter-stackdriver] Monitoring for stats and Trace for traces -* [Jaeger][exporter-jaeger] for traces -* [AWS X-Ray][exporter-xray] for traces -* [Datadog][exporter-datadog] for stats and traces -* [Graphite][exporter-graphite] for stats -* [Honeycomb][exporter-honeycomb] for traces -* [New Relic][exporter-newrelic] for stats and traces - -## Overview - -![OpenCensus Overview](https://i.imgur.com/cf4ElHE.jpg) - -In a microservices environment, a user request may go through -multiple services until there is a response. OpenCensus allows -you to instrument your services and collect diagnostics data all -through your services end-to-end. - -## Tags - -Tags represent propagated key-value pairs. They are propagated using `context.Context` -in the same process or can be encoded to be transmitted on the wire. Usually, this will -be handled by an integration plugin, e.g. `ocgrpc.ServerHandler` and `ocgrpc.ClientHandler` -for gRPC. - -Package `tag` allows adding or modifying tags in the current context. - -[embedmd]:# (internal/readme/tags.go new) -```go -ctx, err := tag.New(ctx, - tag.Insert(osKey, "macOS-10.12.5"), - tag.Upsert(userIDKey, "cde36753ed"), -) -if err != nil { - log.Fatal(err) -} -``` - -## Stats - -OpenCensus is a low-overhead framework even if instrumentation is always enabled. -In order to be so, it is optimized to make recording of data points fast -and separate from the data aggregation. - -OpenCensus stats collection happens in two stages: - -* Definition of measures and recording of data points -* Definition of views and aggregation of the recorded data - -### Recording - -Measurements are data points associated with a measure. -Recording implicitly tags the set of Measurements with the tags from the -provided context: - -[embedmd]:# (internal/readme/stats.go record) -```go -stats.Record(ctx, videoSize.M(102478)) -``` - -### Views - -Views are how Measures are aggregated. You can think of them as queries over the -set of recorded data points (measurements). - -Views have two parts: the tags to group by and the aggregation type used. - -Currently three types of aggregations are supported: -* CountAggregation is used to count the number of times a sample was recorded. -* DistributionAggregation is used to provide a histogram of the values of the samples. -* SumAggregation is used to sum up all sample values. - -[embedmd]:# (internal/readme/stats.go aggs) -```go -distAgg := view.Distribution(1<<32, 2<<32, 3<<32) -countAgg := view.Count() -sumAgg := view.Sum() -``` - -Here we create a view with the DistributionAggregation over our measure. - -[embedmd]:# (internal/readme/stats.go view) -```go -if err := view.Register(&view.View{ - Name: "example.com/video_size_distribution", - Description: "distribution of processed video size over time", - Measure: videoSize, - Aggregation: view.Distribution(1<<32, 2<<32, 3<<32), -}); err != nil { - log.Fatalf("Failed to register view: %v", err) -} -``` - -Register begins collecting data for the view. Registered views' data will be -exported via the registered exporters. - -## Traces - -A distributed trace tracks the progression of a single user request as -it is handled by the services and processes that make up an application. -Each step is called a span in the trace. Spans include metadata about the step, -including especially the time spent in the step, called the span’s latency. - -Below you see a trace and several spans underneath it. - -![Traces and spans](https://i.imgur.com/7hZwRVj.png) - -### Spans - -Span is the unit step in a trace. Each span has a name, latency, status and -additional metadata. - -Below we are starting a span for a cache read and ending it -when we are done: - -[embedmd]:# (internal/readme/trace.go startend) -```go -ctx, span := trace.StartSpan(ctx, "cache.Get") -defer span.End() - -// Do work to get from cache. -``` - -### Propagation - -Spans can have parents or can be root spans if they don't have any parents. -The current span is propagated in-process and across the network to allow associating -new child spans with the parent. - -In the same process, `context.Context` is used to propagate spans. -`trace.StartSpan` creates a new span as a root if the current context -doesn't contain a span. Or, it creates a child of the span that is -already in current context. The returned context can be used to keep -propagating the newly created span in the current context. - -[embedmd]:# (internal/readme/trace.go startend) -```go -ctx, span := trace.StartSpan(ctx, "cache.Get") -defer span.End() - -// Do work to get from cache. -``` - -Across the network, OpenCensus provides different propagation -methods for different protocols. - -* gRPC integrations use the OpenCensus' [binary propagation format](https://godoc.org/go.opencensus.io/trace/propagation). -* HTTP integrations use Zipkin's [B3](https://github.com/openzipkin/b3-propagation) - by default but can be configured to use a custom propagation method by setting another - [propagation.HTTPFormat](https://godoc.org/go.opencensus.io/trace/propagation#HTTPFormat). - -## Execution Tracer - -With Go 1.11, OpenCensus Go will support integration with the Go execution tracer. -See [Debugging Latency in Go](https://medium.com/observability/debugging-latency-in-go-1-11-9f97a7910d68) -for an example of their mutual use. - -## Profiles - -OpenCensus tags can be applied as profiler labels -for users who are on Go 1.9 and above. - -[embedmd]:# (internal/readme/tags.go profiler) -```go -ctx, err = tag.New(ctx, - tag.Insert(osKey, "macOS-10.12.5"), - tag.Insert(userIDKey, "fff0989878"), -) -if err != nil { - log.Fatal(err) -} -tag.Do(ctx, func(ctx context.Context) { - // Do work. - // When profiling is on, samples will be - // recorded with the key/values from the tag map. -}) -``` - -A screenshot of the CPU profile from the program above: - -![CPU profile](https://i.imgur.com/jBKjlkw.png) - -## Deprecation Policy - -Before version 1.0.0, the following deprecation policy will be observed: - -No backwards-incompatible changes will be made except for the removal of symbols that have -been marked as *Deprecated* for at least one minor release (e.g. 0.9.0 to 0.10.0). A release -removing the *Deprecated* functionality will be made no sooner than 28 days after the first -release in which the functionality was marked *Deprecated*. - -[travis-image]: https://travis-ci.org/census-instrumentation/opencensus-go.svg?branch=master -[travis-url]: https://travis-ci.org/census-instrumentation/opencensus-go -[appveyor-image]: https://ci.appveyor.com/api/projects/status/vgtt29ps1783ig38?svg=true -[appveyor-url]: https://ci.appveyor.com/project/opencensusgoteam/opencensus-go/branch/master -[godoc-image]: https://godoc.org/go.opencensus.io?status.svg -[godoc-url]: https://godoc.org/go.opencensus.io -[gitter-image]: https://badges.gitter.im/census-instrumentation/lobby.svg -[gitter-url]: https://gitter.im/census-instrumentation/lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge - - -[new-ex]: https://godoc.org/go.opencensus.io/tag#example-NewMap -[new-replace-ex]: https://godoc.org/go.opencensus.io/tag#example-NewMap--Replace - -[exporter-prom]: https://godoc.org/contrib.go.opencensus.io/exporter/prometheus -[exporter-stackdriver]: https://godoc.org/contrib.go.opencensus.io/exporter/stackdriver -[exporter-zipkin]: https://godoc.org/contrib.go.opencensus.io/exporter/zipkin -[exporter-jaeger]: https://godoc.org/contrib.go.opencensus.io/exporter/jaeger -[exporter-xray]: https://github.com/census-ecosystem/opencensus-go-exporter-aws -[exporter-datadog]: https://github.com/DataDog/opencensus-go-exporter-datadog -[exporter-graphite]: https://github.com/census-ecosystem/opencensus-go-exporter-graphite -[exporter-honeycomb]: https://github.com/honeycombio/opencensus-exporter -[exporter-newrelic]: https://github.com/newrelic/newrelic-opencensus-exporter-go diff --git a/vendor/go.opencensus.io/appveyor.yml b/vendor/go.opencensus.io/appveyor.yml deleted file mode 100644 index d08f0edaf..000000000 --- a/vendor/go.opencensus.io/appveyor.yml +++ /dev/null @@ -1,24 +0,0 @@ -version: "{build}" - -platform: x64 - -clone_folder: c:\gopath\src\go.opencensus.io - -environment: - GOPATH: 'c:\gopath' - GO111MODULE: 'on' - CGO_ENABLED: '0' # See: https://github.com/appveyor/ci/issues/2613 - -stack: go 1.11 - -before_test: - - go version - - go env - -build: false -deploy: false - -test_script: - - cd %APPVEYOR_BUILD_FOLDER% - - go build -v .\... - - go test -v .\... # No -race because cgo is disabled diff --git a/vendor/go.opencensus.io/internal/internal.go b/vendor/go.opencensus.io/internal/internal.go deleted file mode 100644 index 81dc7183e..000000000 --- a/vendor/go.opencensus.io/internal/internal.go +++ /dev/null @@ -1,37 +0,0 @@ -// Copyright 2017, OpenCensus Authors -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -package internal // import "go.opencensus.io/internal" - -import ( - "fmt" - "time" - - opencensus "go.opencensus.io" -) - -// UserAgent is the user agent to be added to the outgoing -// requests from the exporters. -var UserAgent = fmt.Sprintf("opencensus-go/%s", opencensus.Version()) - -// MonotonicEndTime returns the end time at present -// but offset from start, monotonically. -// -// The monotonic clock is used in subtractions hence -// the duration since start added back to start gives -// end as a monotonic time. -// See https://golang.org/pkg/time/#hdr-Monotonic_Clocks -func MonotonicEndTime(start time.Time) time.Time { - return start.Add(time.Since(start)) -} diff --git a/vendor/go.opencensus.io/internal/sanitize.go b/vendor/go.opencensus.io/internal/sanitize.go deleted file mode 100644 index de8ccf236..000000000 --- a/vendor/go.opencensus.io/internal/sanitize.go +++ /dev/null @@ -1,50 +0,0 @@ -// Copyright 2017, OpenCensus Authors -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -package internal - -import ( - "strings" - "unicode" -) - -const labelKeySizeLimit = 100 - -// Sanitize returns a string that is trunacated to 100 characters if it's too -// long, and replaces non-alphanumeric characters to underscores. -func Sanitize(s string) string { - if len(s) == 0 { - return s - } - if len(s) > labelKeySizeLimit { - s = s[:labelKeySizeLimit] - } - s = strings.Map(sanitizeRune, s) - if unicode.IsDigit(rune(s[0])) { - s = "key_" + s - } - if s[0] == '_' { - s = "key" + s - } - return s -} - -// converts anything that is not a letter or digit to an underscore -func sanitizeRune(r rune) rune { - if unicode.IsLetter(r) || unicode.IsDigit(r) { - return r - } - // Everything else turns into an underscore - return '_' -} diff --git a/vendor/go.opencensus.io/internal/tagencoding/tagencoding.go b/vendor/go.opencensus.io/internal/tagencoding/tagencoding.go deleted file mode 100644 index 41b2c3fc0..000000000 --- a/vendor/go.opencensus.io/internal/tagencoding/tagencoding.go +++ /dev/null @@ -1,75 +0,0 @@ -// Copyright 2017, OpenCensus Authors -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// - -// Package tagencoding contains the tag encoding -// used interally by the stats collector. -package tagencoding // import "go.opencensus.io/internal/tagencoding" - -// Values represent the encoded buffer for the values. -type Values struct { - Buffer []byte - WriteIndex int - ReadIndex int -} - -func (vb *Values) growIfRequired(expected int) { - if len(vb.Buffer)-vb.WriteIndex < expected { - tmp := make([]byte, 2*(len(vb.Buffer)+1)+expected) - copy(tmp, vb.Buffer) - vb.Buffer = tmp - } -} - -// WriteValue is the helper method to encode Values from map[Key][]byte. -func (vb *Values) WriteValue(v []byte) { - length := len(v) & 0xff - vb.growIfRequired(1 + length) - - // writing length of v - vb.Buffer[vb.WriteIndex] = byte(length) - vb.WriteIndex++ - - if length == 0 { - // No value was encoded for this key - return - } - - // writing v - copy(vb.Buffer[vb.WriteIndex:], v[:length]) - vb.WriteIndex += length -} - -// ReadValue is the helper method to decode Values to a map[Key][]byte. -func (vb *Values) ReadValue() []byte { - // read length of v - length := int(vb.Buffer[vb.ReadIndex]) - vb.ReadIndex++ - if length == 0 { - // No value was encoded for this key - return nil - } - - // read value of v - v := make([]byte, length) - endIdx := vb.ReadIndex + length - copy(v, vb.Buffer[vb.ReadIndex:endIdx]) - vb.ReadIndex = endIdx - return v -} - -// Bytes returns a reference to already written bytes in the Buffer. -func (vb *Values) Bytes() []byte { - return vb.Buffer[:vb.WriteIndex] -} diff --git a/vendor/go.opencensus.io/internal/traceinternals.go b/vendor/go.opencensus.io/internal/traceinternals.go deleted file mode 100644 index 073af7b47..000000000 --- a/vendor/go.opencensus.io/internal/traceinternals.go +++ /dev/null @@ -1,53 +0,0 @@ -// Copyright 2017, OpenCensus Authors -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -package internal - -import ( - "time" -) - -// Trace allows internal access to some trace functionality. -// TODO(#412): remove this -var Trace interface{} - -// LocalSpanStoreEnabled true if the local span store is enabled. -var LocalSpanStoreEnabled bool - -// BucketConfiguration stores the number of samples to store for span buckets -// for successful and failed spans for a particular span name. -type BucketConfiguration struct { - Name string - MaxRequestsSucceeded int - MaxRequestsErrors int -} - -// PerMethodSummary is a summary of the spans stored for a single span name. -type PerMethodSummary struct { - Active int - LatencyBuckets []LatencyBucketSummary - ErrorBuckets []ErrorBucketSummary -} - -// LatencyBucketSummary is a summary of a latency bucket. -type LatencyBucketSummary struct { - MinLatency, MaxLatency time.Duration - Size int -} - -// ErrorBucketSummary is a summary of an error bucket. -type ErrorBucketSummary struct { - ErrorCode int32 - Size int -} diff --git a/vendor/go.opencensus.io/metric/metricdata/doc.go b/vendor/go.opencensus.io/metric/metricdata/doc.go deleted file mode 100644 index 52a7b3bf8..000000000 --- a/vendor/go.opencensus.io/metric/metricdata/doc.go +++ /dev/null @@ -1,19 +0,0 @@ -// Copyright 2018, OpenCensus Authors -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -// Package metricdata contains the metrics data model. -// -// This is an EXPERIMENTAL package, and may change in arbitrary ways without -// notice. -package metricdata // import "go.opencensus.io/metric/metricdata" diff --git a/vendor/go.opencensus.io/metric/metricdata/exemplar.go b/vendor/go.opencensus.io/metric/metricdata/exemplar.go deleted file mode 100644 index 12695ce2d..000000000 --- a/vendor/go.opencensus.io/metric/metricdata/exemplar.go +++ /dev/null @@ -1,38 +0,0 @@ -// Copyright 2018, OpenCensus Authors -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -package metricdata - -import ( - "time" -) - -// Exemplars keys. -const ( - AttachmentKeySpanContext = "SpanContext" -) - -// Exemplar is an example data point associated with each bucket of a -// distribution type aggregation. -// -// Their purpose is to provide an example of the kind of thing -// (request, RPC, trace span, etc.) that resulted in that measurement. -type Exemplar struct { - Value float64 // the value that was recorded - Timestamp time.Time // the time the value was recorded - Attachments Attachments // attachments (if any) -} - -// Attachments is a map of extra values associated with a recorded data point. -type Attachments map[string]interface{} diff --git a/vendor/go.opencensus.io/metric/metricdata/label.go b/vendor/go.opencensus.io/metric/metricdata/label.go deleted file mode 100644 index aadae41e6..000000000 --- a/vendor/go.opencensus.io/metric/metricdata/label.go +++ /dev/null @@ -1,35 +0,0 @@ -// Copyright 2018, OpenCensus Authors -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -package metricdata - -// LabelKey represents key of a label. It has optional -// description attribute. -type LabelKey struct { - Key string - Description string -} - -// LabelValue represents the value of a label. -// The zero value represents a missing label value, which may be treated -// differently to an empty string value by some back ends. -type LabelValue struct { - Value string // string value of the label - Present bool // flag that indicated whether a value is present or not -} - -// NewLabelValue creates a new non-nil LabelValue that represents the given string. -func NewLabelValue(val string) LabelValue { - return LabelValue{Value: val, Present: true} -} diff --git a/vendor/go.opencensus.io/metric/metricdata/metric.go b/vendor/go.opencensus.io/metric/metricdata/metric.go deleted file mode 100644 index 8293712c7..000000000 --- a/vendor/go.opencensus.io/metric/metricdata/metric.go +++ /dev/null @@ -1,46 +0,0 @@ -// Copyright 2018, OpenCensus Authors -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -package metricdata - -import ( - "time" - - "go.opencensus.io/resource" -) - -// Descriptor holds metadata about a metric. -type Descriptor struct { - Name string // full name of the metric - Description string // human-readable description - Unit Unit // units for the measure - Type Type // type of measure - LabelKeys []LabelKey // label keys -} - -// Metric represents a quantity measured against a resource with different -// label value combinations. -type Metric struct { - Descriptor Descriptor // metric descriptor - Resource *resource.Resource // resource against which this was measured - TimeSeries []*TimeSeries // one time series for each combination of label values -} - -// TimeSeries is a sequence of points associated with a combination of label -// values. -type TimeSeries struct { - LabelValues []LabelValue // label values, same order as keys in the metric descriptor - Points []Point // points sequence - StartTime time.Time // time we started recording this time series -} diff --git a/vendor/go.opencensus.io/metric/metricdata/point.go b/vendor/go.opencensus.io/metric/metricdata/point.go deleted file mode 100644 index 7fe057b19..000000000 --- a/vendor/go.opencensus.io/metric/metricdata/point.go +++ /dev/null @@ -1,193 +0,0 @@ -// Copyright 2018, OpenCensus Authors -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -package metricdata - -import ( - "time" -) - -// Point is a single data point of a time series. -type Point struct { - // Time is the point in time that this point represents in a time series. - Time time.Time - // Value is the value of this point. Prefer using ReadValue to switching on - // the value type, since new value types might be added. - Value interface{} -} - -//go:generate stringer -type ValueType - -// NewFloat64Point creates a new Point holding a float64 value. -func NewFloat64Point(t time.Time, val float64) Point { - return Point{ - Value: val, - Time: t, - } -} - -// NewInt64Point creates a new Point holding an int64 value. -func NewInt64Point(t time.Time, val int64) Point { - return Point{ - Value: val, - Time: t, - } -} - -// NewDistributionPoint creates a new Point holding a Distribution value. -func NewDistributionPoint(t time.Time, val *Distribution) Point { - return Point{ - Value: val, - Time: t, - } -} - -// NewSummaryPoint creates a new Point holding a Summary value. -func NewSummaryPoint(t time.Time, val *Summary) Point { - return Point{ - Value: val, - Time: t, - } -} - -// ValueVisitor allows reading the value of a point. -type ValueVisitor interface { - VisitFloat64Value(float64) - VisitInt64Value(int64) - VisitDistributionValue(*Distribution) - VisitSummaryValue(*Summary) -} - -// ReadValue accepts a ValueVisitor and calls the appropriate method with the -// value of this point. -// Consumers of Point should use this in preference to switching on the type -// of the value directly, since new value types may be added. -func (p Point) ReadValue(vv ValueVisitor) { - switch v := p.Value.(type) { - case int64: - vv.VisitInt64Value(v) - case float64: - vv.VisitFloat64Value(v) - case *Distribution: - vv.VisitDistributionValue(v) - case *Summary: - vv.VisitSummaryValue(v) - default: - panic("unexpected value type") - } -} - -// Distribution contains summary statistics for a population of values. It -// optionally contains a histogram representing the distribution of those -// values across a set of buckets. -type Distribution struct { - // Count is the number of values in the population. Must be non-negative. This value - // must equal the sum of the values in bucket_counts if a histogram is - // provided. - Count int64 - // Sum is the sum of the values in the population. If count is zero then this field - // must be zero. - Sum float64 - // SumOfSquaredDeviation is the sum of squared deviations from the mean of the values in the - // population. For values x_i this is: - // - // Sum[i=1..n]((x_i - mean)^2) - // - // Knuth, "The Art of Computer Programming", Vol. 2, page 323, 3rd edition - // describes Welford's method for accumulating this sum in one pass. - // - // If count is zero then this field must be zero. - SumOfSquaredDeviation float64 - // BucketOptions describes the bounds of the histogram buckets in this - // distribution. - // - // A Distribution may optionally contain a histogram of the values in the - // population. - // - // If nil, there is no associated histogram. - BucketOptions *BucketOptions - // Bucket If the distribution does not have a histogram, then omit this field. - // If there is a histogram, then the sum of the values in the Bucket counts - // must equal the value in the count field of the distribution. - Buckets []Bucket -} - -// BucketOptions describes the bounds of the histogram buckets in this -// distribution. -type BucketOptions struct { - // Bounds specifies a set of bucket upper bounds. - // This defines len(bounds) + 1 (= N) buckets. The boundaries for bucket - // index i are: - // - // [0, Bounds[i]) for i == 0 - // [Bounds[i-1], Bounds[i]) for 0 < i < N-1 - // [Bounds[i-1], +infinity) for i == N-1 - Bounds []float64 -} - -// Bucket represents a single bucket (value range) in a distribution. -type Bucket struct { - // Count is the number of values in each bucket of the histogram, as described in - // bucket_bounds. - Count int64 - // Exemplar associated with this bucket (if any). - Exemplar *Exemplar -} - -// Summary is a representation of percentiles. -type Summary struct { - // Count is the cumulative count (if available). - Count int64 - // Sum is the cumulative sum of values (if available). - Sum float64 - // HasCountAndSum is true if Count and Sum are available. - HasCountAndSum bool - // Snapshot represents percentiles calculated over an arbitrary time window. - // The values in this struct can be reset at arbitrary unknown times, with - // the requirement that all of them are reset at the same time. - Snapshot Snapshot -} - -// Snapshot represents percentiles over an arbitrary time. -// The values in this struct can be reset at arbitrary unknown times, with -// the requirement that all of them are reset at the same time. -type Snapshot struct { - // Count is the number of values in the snapshot. Optional since some systems don't - // expose this. Set to 0 if not available. - Count int64 - // Sum is the sum of values in the snapshot. Optional since some systems don't - // expose this. If count is 0 then this field must be zero. - Sum float64 - // Percentiles is a map from percentile (range (0-100.0]) to the value of - // the percentile. - Percentiles map[float64]float64 -} - -//go:generate stringer -type Type - -// Type is the overall type of metric, including its value type and whether it -// represents a cumulative total (since the start time) or if it represents a -// gauge value. -type Type int - -// Metric types. -const ( - TypeGaugeInt64 Type = iota - TypeGaugeFloat64 - TypeGaugeDistribution - TypeCumulativeInt64 - TypeCumulativeFloat64 - TypeCumulativeDistribution - TypeSummary -) diff --git a/vendor/go.opencensus.io/metric/metricdata/type_string.go b/vendor/go.opencensus.io/metric/metricdata/type_string.go deleted file mode 100644 index c3f8ec27b..000000000 --- a/vendor/go.opencensus.io/metric/metricdata/type_string.go +++ /dev/null @@ -1,16 +0,0 @@ -// Code generated by "stringer -type Type"; DO NOT EDIT. - -package metricdata - -import "strconv" - -const _Type_name = "TypeGaugeInt64TypeGaugeFloat64TypeGaugeDistributionTypeCumulativeInt64TypeCumulativeFloat64TypeCumulativeDistributionTypeSummary" - -var _Type_index = [...]uint8{0, 14, 30, 51, 70, 91, 117, 128} - -func (i Type) String() string { - if i < 0 || i >= Type(len(_Type_index)-1) { - return "Type(" + strconv.FormatInt(int64(i), 10) + ")" - } - return _Type_name[_Type_index[i]:_Type_index[i+1]] -} diff --git a/vendor/go.opencensus.io/metric/metricdata/unit.go b/vendor/go.opencensus.io/metric/metricdata/unit.go deleted file mode 100644 index b483a1371..000000000 --- a/vendor/go.opencensus.io/metric/metricdata/unit.go +++ /dev/null @@ -1,27 +0,0 @@ -// Copyright 2018, OpenCensus Authors -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -package metricdata - -// Unit is a string encoded according to the case-sensitive abbreviations from the -// Unified Code for Units of Measure: http://unitsofmeasure.org/ucum.html -type Unit string - -// Predefined units. To record against a unit not represented here, create your -// own Unit type constant from a string. -const ( - UnitDimensionless Unit = "1" - UnitBytes Unit = "By" - UnitMilliseconds Unit = "ms" -) diff --git a/vendor/go.opencensus.io/metric/metricproducer/manager.go b/vendor/go.opencensus.io/metric/metricproducer/manager.go deleted file mode 100644 index ca1f39049..000000000 --- a/vendor/go.opencensus.io/metric/metricproducer/manager.go +++ /dev/null @@ -1,78 +0,0 @@ -// Copyright 2019, OpenCensus Authors -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -package metricproducer - -import ( - "sync" -) - -// Manager maintains a list of active producers. Producers can register -// with the manager to allow readers to read all metrics provided by them. -// Readers can retrieve all producers registered with the manager, -// read metrics from the producers and export them. -type Manager struct { - mu sync.RWMutex - producers map[Producer]struct{} -} - -var prodMgr *Manager -var once sync.Once - -// GlobalManager is a single instance of producer manager -// that is used by all producers and all readers. -func GlobalManager() *Manager { - once.Do(func() { - prodMgr = &Manager{} - prodMgr.producers = make(map[Producer]struct{}) - }) - return prodMgr -} - -// AddProducer adds the producer to the Manager if it is not already present. -func (pm *Manager) AddProducer(producer Producer) { - if producer == nil { - return - } - pm.mu.Lock() - defer pm.mu.Unlock() - pm.producers[producer] = struct{}{} -} - -// DeleteProducer deletes the producer from the Manager if it is present. -func (pm *Manager) DeleteProducer(producer Producer) { - if producer == nil { - return - } - pm.mu.Lock() - defer pm.mu.Unlock() - delete(pm.producers, producer) -} - -// GetAll returns a slice of all producer currently registered with -// the Manager. For each call it generates a new slice. The slice -// should not be cached as registration may change at any time. It is -// typically called periodically by exporter to read metrics from -// the producers. -func (pm *Manager) GetAll() []Producer { - pm.mu.Lock() - defer pm.mu.Unlock() - producers := make([]Producer, len(pm.producers)) - i := 0 - for producer := range pm.producers { - producers[i] = producer - i++ - } - return producers -} diff --git a/vendor/go.opencensus.io/metric/metricproducer/producer.go b/vendor/go.opencensus.io/metric/metricproducer/producer.go deleted file mode 100644 index 6cee9ed17..000000000 --- a/vendor/go.opencensus.io/metric/metricproducer/producer.go +++ /dev/null @@ -1,28 +0,0 @@ -// Copyright 2019, OpenCensus Authors -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -package metricproducer - -import ( - "go.opencensus.io/metric/metricdata" -) - -// Producer is a source of metrics. -type Producer interface { - // Read should return the current values of all metrics supported by this - // metric provider. - // The returned metrics should be unique for each combination of name and - // resource. - Read() []*metricdata.Metric -} diff --git a/vendor/go.opencensus.io/opencensus.go b/vendor/go.opencensus.io/opencensus.go deleted file mode 100644 index 11e31f421..000000000 --- a/vendor/go.opencensus.io/opencensus.go +++ /dev/null @@ -1,21 +0,0 @@ -// Copyright 2017, OpenCensus Authors -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -// Package opencensus contains Go support for OpenCensus. -package opencensus // import "go.opencensus.io" - -// Version is the current release version of OpenCensus in use. -func Version() string { - return "0.24.0" -} diff --git a/vendor/go.opencensus.io/plugin/ochttp/client.go b/vendor/go.opencensus.io/plugin/ochttp/client.go deleted file mode 100644 index da815b2a7..000000000 --- a/vendor/go.opencensus.io/plugin/ochttp/client.go +++ /dev/null @@ -1,117 +0,0 @@ -// Copyright 2018, OpenCensus Authors -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -package ochttp - -import ( - "net/http" - "net/http/httptrace" - - "go.opencensus.io/trace" - "go.opencensus.io/trace/propagation" -) - -// Transport is an http.RoundTripper that instruments all outgoing requests with -// OpenCensus stats and tracing. -// -// The zero value is intended to be a useful default, but for -// now it's recommended that you explicitly set Propagation, since the default -// for this may change. -type Transport struct { - // Base may be set to wrap another http.RoundTripper that does the actual - // requests. By default http.DefaultTransport is used. - // - // If base HTTP roundtripper implements CancelRequest, - // the returned round tripper will be cancelable. - Base http.RoundTripper - - // Propagation defines how traces are propagated. If unspecified, a default - // (currently B3 format) will be used. - Propagation propagation.HTTPFormat - - // StartOptions are applied to the span started by this Transport around each - // request. - // - // StartOptions.SpanKind will always be set to trace.SpanKindClient - // for spans started by this transport. - StartOptions trace.StartOptions - - // GetStartOptions allows to set start options per request. If set, - // StartOptions is going to be ignored. - GetStartOptions func(*http.Request) trace.StartOptions - - // NameFromRequest holds the function to use for generating the span name - // from the information found in the outgoing HTTP Request. By default the - // name equals the URL Path. - FormatSpanName func(*http.Request) string - - // NewClientTrace may be set to a function allowing the current *trace.Span - // to be annotated with HTTP request event information emitted by the - // httptrace package. - NewClientTrace func(*http.Request, *trace.Span) *httptrace.ClientTrace - - // TODO: Implement tag propagation for HTTP. -} - -// RoundTrip implements http.RoundTripper, delegating to Base and recording stats and traces for the request. -func (t *Transport) RoundTrip(req *http.Request) (*http.Response, error) { - rt := t.base() - if isHealthEndpoint(req.URL.Path) { - return rt.RoundTrip(req) - } - // TODO: remove excessive nesting of http.RoundTrippers here. - format := t.Propagation - if format == nil { - format = defaultFormat - } - spanNameFormatter := t.FormatSpanName - if spanNameFormatter == nil { - spanNameFormatter = spanNameFromURL - } - - startOpts := t.StartOptions - if t.GetStartOptions != nil { - startOpts = t.GetStartOptions(req) - } - - rt = &traceTransport{ - base: rt, - format: format, - startOptions: trace.StartOptions{ - Sampler: startOpts.Sampler, - SpanKind: trace.SpanKindClient, - }, - formatSpanName: spanNameFormatter, - newClientTrace: t.NewClientTrace, - } - rt = statsTransport{base: rt} - return rt.RoundTrip(req) -} - -func (t *Transport) base() http.RoundTripper { - if t.Base != nil { - return t.Base - } - return http.DefaultTransport -} - -// CancelRequest cancels an in-flight request by closing its connection. -func (t *Transport) CancelRequest(req *http.Request) { - type canceler interface { - CancelRequest(*http.Request) - } - if cr, ok := t.base().(canceler); ok { - cr.CancelRequest(req) - } -} diff --git a/vendor/go.opencensus.io/plugin/ochttp/client_stats.go b/vendor/go.opencensus.io/plugin/ochttp/client_stats.go deleted file mode 100644 index 17142aabe..000000000 --- a/vendor/go.opencensus.io/plugin/ochttp/client_stats.go +++ /dev/null @@ -1,143 +0,0 @@ -// Copyright 2018, OpenCensus Authors -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -package ochttp - -import ( - "context" - "io" - "net/http" - "strconv" - "sync" - "time" - - "go.opencensus.io/stats" - "go.opencensus.io/tag" -) - -// statsTransport is an http.RoundTripper that collects stats for the outgoing requests. -type statsTransport struct { - base http.RoundTripper -} - -// RoundTrip implements http.RoundTripper, delegating to Base and recording stats for the request. -func (t statsTransport) RoundTrip(req *http.Request) (*http.Response, error) { - ctx, _ := tag.New(req.Context(), - tag.Upsert(KeyClientHost, req.Host), - tag.Upsert(Host, req.Host), - tag.Upsert(KeyClientPath, req.URL.Path), - tag.Upsert(Path, req.URL.Path), - tag.Upsert(KeyClientMethod, req.Method), - tag.Upsert(Method, req.Method)) - req = req.WithContext(ctx) - track := &tracker{ - start: time.Now(), - ctx: ctx, - } - if req.Body == nil { - // TODO: Handle cases where ContentLength is not set. - track.reqSize = -1 - } else if req.ContentLength > 0 { - track.reqSize = req.ContentLength - } - stats.Record(ctx, ClientRequestCount.M(1)) - - // Perform request. - resp, err := t.base.RoundTrip(req) - - if err != nil { - track.statusCode = http.StatusInternalServerError - track.end() - } else { - track.statusCode = resp.StatusCode - if req.Method != "HEAD" { - track.respContentLength = resp.ContentLength - } - if resp.Body == nil { - track.end() - } else { - track.body = resp.Body - resp.Body = wrappedBody(track, resp.Body) - } - } - return resp, err -} - -// CancelRequest cancels an in-flight request by closing its connection. -func (t statsTransport) CancelRequest(req *http.Request) { - type canceler interface { - CancelRequest(*http.Request) - } - if cr, ok := t.base.(canceler); ok { - cr.CancelRequest(req) - } -} - -type tracker struct { - ctx context.Context - respSize int64 - respContentLength int64 - reqSize int64 - start time.Time - body io.ReadCloser - statusCode int - endOnce sync.Once -} - -var _ io.ReadCloser = (*tracker)(nil) - -func (t *tracker) end() { - t.endOnce.Do(func() { - latencyMs := float64(time.Since(t.start)) / float64(time.Millisecond) - respSize := t.respSize - if t.respSize == 0 && t.respContentLength > 0 { - respSize = t.respContentLength - } - m := []stats.Measurement{ - ClientSentBytes.M(t.reqSize), - ClientReceivedBytes.M(respSize), - ClientRoundtripLatency.M(latencyMs), - ClientLatency.M(latencyMs), - ClientResponseBytes.M(t.respSize), - } - if t.reqSize >= 0 { - m = append(m, ClientRequestBytes.M(t.reqSize)) - } - - stats.RecordWithTags(t.ctx, []tag.Mutator{ - tag.Upsert(StatusCode, strconv.Itoa(t.statusCode)), - tag.Upsert(KeyClientStatus, strconv.Itoa(t.statusCode)), - }, m...) - }) -} - -func (t *tracker) Read(b []byte) (int, error) { - n, err := t.body.Read(b) - t.respSize += int64(n) - switch err { - case nil: - return n, nil - case io.EOF: - t.end() - } - return n, err -} - -func (t *tracker) Close() error { - // Invoking endSpan on Close will help catch the cases - // in which a read returned a non-nil error, we set the - // span status but didn't end the span. - t.end() - return t.body.Close() -} diff --git a/vendor/go.opencensus.io/plugin/ochttp/doc.go b/vendor/go.opencensus.io/plugin/ochttp/doc.go deleted file mode 100644 index 10e626b16..000000000 --- a/vendor/go.opencensus.io/plugin/ochttp/doc.go +++ /dev/null @@ -1,19 +0,0 @@ -// Copyright 2018, OpenCensus Authors -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -// Package ochttp provides OpenCensus instrumentation for net/http package. -// -// For server instrumentation, see Handler. For client-side instrumentation, -// see Transport. -package ochttp // import "go.opencensus.io/plugin/ochttp" diff --git a/vendor/go.opencensus.io/plugin/ochttp/propagation/b3/b3.go b/vendor/go.opencensus.io/plugin/ochttp/propagation/b3/b3.go deleted file mode 100644 index 9ad885219..000000000 --- a/vendor/go.opencensus.io/plugin/ochttp/propagation/b3/b3.go +++ /dev/null @@ -1,123 +0,0 @@ -// Copyright 2018, OpenCensus Authors -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -// Package b3 contains a propagation.HTTPFormat implementation -// for B3 propagation. See https://github.com/openzipkin/b3-propagation -// for more details. -package b3 // import "go.opencensus.io/plugin/ochttp/propagation/b3" - -import ( - "encoding/hex" - "net/http" - - "go.opencensus.io/trace" - "go.opencensus.io/trace/propagation" -) - -// B3 headers that OpenCensus understands. -const ( - TraceIDHeader = "X-B3-TraceId" - SpanIDHeader = "X-B3-SpanId" - SampledHeader = "X-B3-Sampled" -) - -// HTTPFormat implements propagation.HTTPFormat to propagate -// traces in HTTP headers in B3 propagation format. -// HTTPFormat skips the X-B3-ParentId and X-B3-Flags headers -// because there are additional fields not represented in the -// OpenCensus span context. Spans created from the incoming -// header will be the direct children of the client-side span. -// Similarly, receiver of the outgoing spans should use client-side -// span created by OpenCensus as the parent. -type HTTPFormat struct{} - -var _ propagation.HTTPFormat = (*HTTPFormat)(nil) - -// SpanContextFromRequest extracts a B3 span context from incoming requests. -func (f *HTTPFormat) SpanContextFromRequest(req *http.Request) (sc trace.SpanContext, ok bool) { - tid, ok := ParseTraceID(req.Header.Get(TraceIDHeader)) - if !ok { - return trace.SpanContext{}, false - } - sid, ok := ParseSpanID(req.Header.Get(SpanIDHeader)) - if !ok { - return trace.SpanContext{}, false - } - sampled, _ := ParseSampled(req.Header.Get(SampledHeader)) - return trace.SpanContext{ - TraceID: tid, - SpanID: sid, - TraceOptions: sampled, - }, true -} - -// ParseTraceID parses the value of the X-B3-TraceId header. -func ParseTraceID(tid string) (trace.TraceID, bool) { - if tid == "" { - return trace.TraceID{}, false - } - b, err := hex.DecodeString(tid) - if err != nil || len(b) > 16 { - return trace.TraceID{}, false - } - var traceID trace.TraceID - if len(b) <= 8 { - // The lower 64-bits. - start := 8 + (8 - len(b)) - copy(traceID[start:], b) - } else { - start := 16 - len(b) - copy(traceID[start:], b) - } - - return traceID, true -} - -// ParseSpanID parses the value of the X-B3-SpanId or X-B3-ParentSpanId headers. -func ParseSpanID(sid string) (spanID trace.SpanID, ok bool) { - if sid == "" { - return trace.SpanID{}, false - } - b, err := hex.DecodeString(sid) - if err != nil || len(b) > 8 { - return trace.SpanID{}, false - } - start := 8 - len(b) - copy(spanID[start:], b) - return spanID, true -} - -// ParseSampled parses the value of the X-B3-Sampled header. -func ParseSampled(sampled string) (trace.TraceOptions, bool) { - switch sampled { - case "true", "1": - return trace.TraceOptions(1), true - default: - return trace.TraceOptions(0), false - } -} - -// SpanContextToRequest modifies the given request to include B3 headers. -func (f *HTTPFormat) SpanContextToRequest(sc trace.SpanContext, req *http.Request) { - req.Header.Set(TraceIDHeader, hex.EncodeToString(sc.TraceID[:])) - req.Header.Set(SpanIDHeader, hex.EncodeToString(sc.SpanID[:])) - - var sampled string - if sc.IsSampled() { - sampled = "1" - } else { - sampled = "0" - } - req.Header.Set(SampledHeader, sampled) -} diff --git a/vendor/go.opencensus.io/plugin/ochttp/route.go b/vendor/go.opencensus.io/plugin/ochttp/route.go deleted file mode 100644 index 5e6a34307..000000000 --- a/vendor/go.opencensus.io/plugin/ochttp/route.go +++ /dev/null @@ -1,61 +0,0 @@ -// Copyright 2018, OpenCensus Authors -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -package ochttp - -import ( - "context" - "net/http" - - "go.opencensus.io/tag" -) - -// SetRoute sets the http_server_route tag to the given value. -// It's useful when an HTTP framework does not support the http.Handler interface -// and using WithRouteTag is not an option, but provides a way to hook into the request flow. -func SetRoute(ctx context.Context, route string) { - if a, ok := ctx.Value(addedTagsKey{}).(*addedTags); ok { - a.t = append(a.t, tag.Upsert(KeyServerRoute, route)) - } -} - -// WithRouteTag returns an http.Handler that records stats with the -// http_server_route tag set to the given value. -func WithRouteTag(handler http.Handler, route string) http.Handler { - return taggedHandlerFunc(func(w http.ResponseWriter, r *http.Request) []tag.Mutator { - addRoute := []tag.Mutator{tag.Upsert(KeyServerRoute, route)} - ctx, _ := tag.New(r.Context(), addRoute...) - r = r.WithContext(ctx) - handler.ServeHTTP(w, r) - return addRoute - }) -} - -// taggedHandlerFunc is a http.Handler that returns tags describing the -// processing of the request. These tags will be recorded along with the -// measures in this package at the end of the request. -type taggedHandlerFunc func(w http.ResponseWriter, r *http.Request) []tag.Mutator - -func (h taggedHandlerFunc) ServeHTTP(w http.ResponseWriter, r *http.Request) { - tags := h(w, r) - if a, ok := r.Context().Value(addedTagsKey{}).(*addedTags); ok { - a.t = append(a.t, tags...) - } -} - -type addedTagsKey struct{} - -type addedTags struct { - t []tag.Mutator -} diff --git a/vendor/go.opencensus.io/plugin/ochttp/server.go b/vendor/go.opencensus.io/plugin/ochttp/server.go deleted file mode 100644 index f7c8434be..000000000 --- a/vendor/go.opencensus.io/plugin/ochttp/server.go +++ /dev/null @@ -1,455 +0,0 @@ -// Copyright 2018, OpenCensus Authors -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -package ochttp - -import ( - "context" - "io" - "net/http" - "strconv" - "sync" - "time" - - "go.opencensus.io/stats" - "go.opencensus.io/tag" - "go.opencensus.io/trace" - "go.opencensus.io/trace/propagation" -) - -// Handler is an http.Handler wrapper to instrument your HTTP server with -// OpenCensus. It supports both stats and tracing. -// -// # Tracing -// -// This handler is aware of the incoming request's span, reading it from request -// headers as configured using the Propagation field. -// The extracted span can be accessed from the incoming request's -// context. -// -// span := trace.FromContext(r.Context()) -// -// The server span will be automatically ended at the end of ServeHTTP. -type Handler struct { - // Propagation defines how traces are propagated. If unspecified, - // B3 propagation will be used. - Propagation propagation.HTTPFormat - - // Handler is the handler used to handle the incoming request. - Handler http.Handler - - // StartOptions are applied to the span started by this Handler around each - // request. - // - // StartOptions.SpanKind will always be set to trace.SpanKindServer - // for spans started by this transport. - StartOptions trace.StartOptions - - // GetStartOptions allows to set start options per request. If set, - // StartOptions is going to be ignored. - GetStartOptions func(*http.Request) trace.StartOptions - - // IsPublicEndpoint should be set to true for publicly accessible HTTP(S) - // servers. If true, any trace metadata set on the incoming request will - // be added as a linked trace instead of being added as a parent of the - // current trace. - IsPublicEndpoint bool - - // FormatSpanName holds the function to use for generating the span name - // from the information found in the incoming HTTP Request. By default the - // name equals the URL Path. - FormatSpanName func(*http.Request) string - - // IsHealthEndpoint holds the function to use for determining if the - // incoming HTTP request should be considered a health check. This is in - // addition to the private isHealthEndpoint func which may also indicate - // tracing should be skipped. - IsHealthEndpoint func(*http.Request) bool -} - -func (h *Handler) ServeHTTP(w http.ResponseWriter, r *http.Request) { - var tags addedTags - r, traceEnd := h.startTrace(w, r) - defer traceEnd() - w, statsEnd := h.startStats(w, r) - defer statsEnd(&tags) - handler := h.Handler - if handler == nil { - handler = http.DefaultServeMux - } - r = r.WithContext(context.WithValue(r.Context(), addedTagsKey{}, &tags)) - handler.ServeHTTP(w, r) -} - -func (h *Handler) startTrace(w http.ResponseWriter, r *http.Request) (*http.Request, func()) { - if h.IsHealthEndpoint != nil && h.IsHealthEndpoint(r) || isHealthEndpoint(r.URL.Path) { - return r, func() {} - } - var name string - if h.FormatSpanName == nil { - name = spanNameFromURL(r) - } else { - name = h.FormatSpanName(r) - } - ctx := r.Context() - - startOpts := h.StartOptions - if h.GetStartOptions != nil { - startOpts = h.GetStartOptions(r) - } - - var span *trace.Span - sc, ok := h.extractSpanContext(r) - if ok && !h.IsPublicEndpoint { - ctx, span = trace.StartSpanWithRemoteParent(ctx, name, sc, - trace.WithSampler(startOpts.Sampler), - trace.WithSpanKind(trace.SpanKindServer)) - } else { - ctx, span = trace.StartSpan(ctx, name, - trace.WithSampler(startOpts.Sampler), - trace.WithSpanKind(trace.SpanKindServer), - ) - if ok { - span.AddLink(trace.Link{ - TraceID: sc.TraceID, - SpanID: sc.SpanID, - Type: trace.LinkTypeParent, - Attributes: nil, - }) - } - } - span.AddAttributes(requestAttrs(r)...) - if r.Body == nil { - // TODO: Handle cases where ContentLength is not set. - } else if r.ContentLength > 0 { - span.AddMessageReceiveEvent(0, /* TODO: messageID */ - r.ContentLength, -1) - } - return r.WithContext(ctx), span.End -} - -func (h *Handler) extractSpanContext(r *http.Request) (trace.SpanContext, bool) { - if h.Propagation == nil { - return defaultFormat.SpanContextFromRequest(r) - } - return h.Propagation.SpanContextFromRequest(r) -} - -func (h *Handler) startStats(w http.ResponseWriter, r *http.Request) (http.ResponseWriter, func(tags *addedTags)) { - ctx, _ := tag.New(r.Context(), - tag.Upsert(Host, r.Host), - tag.Upsert(Path, r.URL.Path), - tag.Upsert(Method, r.Method)) - track := &trackingResponseWriter{ - start: time.Now(), - ctx: ctx, - writer: w, - } - if r.Body == nil { - // TODO: Handle cases where ContentLength is not set. - track.reqSize = -1 - } else if r.ContentLength > 0 { - track.reqSize = r.ContentLength - } - stats.Record(ctx, ServerRequestCount.M(1)) - return track.wrappedResponseWriter(), track.end -} - -type trackingResponseWriter struct { - ctx context.Context - reqSize int64 - respSize int64 - start time.Time - statusCode int - statusLine string - endOnce sync.Once - writer http.ResponseWriter -} - -// Compile time assertion for ResponseWriter interface -var _ http.ResponseWriter = (*trackingResponseWriter)(nil) - -func (t *trackingResponseWriter) end(tags *addedTags) { - t.endOnce.Do(func() { - if t.statusCode == 0 { - t.statusCode = 200 - } - - span := trace.FromContext(t.ctx) - span.SetStatus(TraceStatus(t.statusCode, t.statusLine)) - span.AddAttributes(trace.Int64Attribute(StatusCodeAttribute, int64(t.statusCode))) - - m := []stats.Measurement{ - ServerLatency.M(float64(time.Since(t.start)) / float64(time.Millisecond)), - ServerResponseBytes.M(t.respSize), - } - if t.reqSize >= 0 { - m = append(m, ServerRequestBytes.M(t.reqSize)) - } - allTags := make([]tag.Mutator, len(tags.t)+1) - allTags[0] = tag.Upsert(StatusCode, strconv.Itoa(t.statusCode)) - copy(allTags[1:], tags.t) - stats.RecordWithTags(t.ctx, allTags, m...) - }) -} - -func (t *trackingResponseWriter) Header() http.Header { - return t.writer.Header() -} - -func (t *trackingResponseWriter) Write(data []byte) (int, error) { - n, err := t.writer.Write(data) - t.respSize += int64(n) - // Add message event for request bytes sent. - span := trace.FromContext(t.ctx) - span.AddMessageSendEvent(0 /* TODO: messageID */, int64(n), -1) - return n, err -} - -func (t *trackingResponseWriter) WriteHeader(statusCode int) { - t.writer.WriteHeader(statusCode) - t.statusCode = statusCode - t.statusLine = http.StatusText(t.statusCode) -} - -// wrappedResponseWriter returns a wrapped version of the original -// -// ResponseWriter and only implements the same combination of additional -// -// interfaces as the original. -// This implementation is based on https://github.com/felixge/httpsnoop. -func (t *trackingResponseWriter) wrappedResponseWriter() http.ResponseWriter { - var ( - hj, i0 = t.writer.(http.Hijacker) - cn, i1 = t.writer.(http.CloseNotifier) - pu, i2 = t.writer.(http.Pusher) - fl, i3 = t.writer.(http.Flusher) - rf, i4 = t.writer.(io.ReaderFrom) - ) - - switch { - case !i0 && !i1 && !i2 && !i3 && !i4: - return struct { - http.ResponseWriter - }{t} - case !i0 && !i1 && !i2 && !i3 && i4: - return struct { - http.ResponseWriter - io.ReaderFrom - }{t, rf} - case !i0 && !i1 && !i2 && i3 && !i4: - return struct { - http.ResponseWriter - http.Flusher - }{t, fl} - case !i0 && !i1 && !i2 && i3 && i4: - return struct { - http.ResponseWriter - http.Flusher - io.ReaderFrom - }{t, fl, rf} - case !i0 && !i1 && i2 && !i3 && !i4: - return struct { - http.ResponseWriter - http.Pusher - }{t, pu} - case !i0 && !i1 && i2 && !i3 && i4: - return struct { - http.ResponseWriter - http.Pusher - io.ReaderFrom - }{t, pu, rf} - case !i0 && !i1 && i2 && i3 && !i4: - return struct { - http.ResponseWriter - http.Pusher - http.Flusher - }{t, pu, fl} - case !i0 && !i1 && i2 && i3 && i4: - return struct { - http.ResponseWriter - http.Pusher - http.Flusher - io.ReaderFrom - }{t, pu, fl, rf} - case !i0 && i1 && !i2 && !i3 && !i4: - return struct { - http.ResponseWriter - http.CloseNotifier - }{t, cn} - case !i0 && i1 && !i2 && !i3 && i4: - return struct { - http.ResponseWriter - http.CloseNotifier - io.ReaderFrom - }{t, cn, rf} - case !i0 && i1 && !i2 && i3 && !i4: - return struct { - http.ResponseWriter - http.CloseNotifier - http.Flusher - }{t, cn, fl} - case !i0 && i1 && !i2 && i3 && i4: - return struct { - http.ResponseWriter - http.CloseNotifier - http.Flusher - io.ReaderFrom - }{t, cn, fl, rf} - case !i0 && i1 && i2 && !i3 && !i4: - return struct { - http.ResponseWriter - http.CloseNotifier - http.Pusher - }{t, cn, pu} - case !i0 && i1 && i2 && !i3 && i4: - return struct { - http.ResponseWriter - http.CloseNotifier - http.Pusher - io.ReaderFrom - }{t, cn, pu, rf} - case !i0 && i1 && i2 && i3 && !i4: - return struct { - http.ResponseWriter - http.CloseNotifier - http.Pusher - http.Flusher - }{t, cn, pu, fl} - case !i0 && i1 && i2 && i3 && i4: - return struct { - http.ResponseWriter - http.CloseNotifier - http.Pusher - http.Flusher - io.ReaderFrom - }{t, cn, pu, fl, rf} - case i0 && !i1 && !i2 && !i3 && !i4: - return struct { - http.ResponseWriter - http.Hijacker - }{t, hj} - case i0 && !i1 && !i2 && !i3 && i4: - return struct { - http.ResponseWriter - http.Hijacker - io.ReaderFrom - }{t, hj, rf} - case i0 && !i1 && !i2 && i3 && !i4: - return struct { - http.ResponseWriter - http.Hijacker - http.Flusher - }{t, hj, fl} - case i0 && !i1 && !i2 && i3 && i4: - return struct { - http.ResponseWriter - http.Hijacker - http.Flusher - io.ReaderFrom - }{t, hj, fl, rf} - case i0 && !i1 && i2 && !i3 && !i4: - return struct { - http.ResponseWriter - http.Hijacker - http.Pusher - }{t, hj, pu} - case i0 && !i1 && i2 && !i3 && i4: - return struct { - http.ResponseWriter - http.Hijacker - http.Pusher - io.ReaderFrom - }{t, hj, pu, rf} - case i0 && !i1 && i2 && i3 && !i4: - return struct { - http.ResponseWriter - http.Hijacker - http.Pusher - http.Flusher - }{t, hj, pu, fl} - case i0 && !i1 && i2 && i3 && i4: - return struct { - http.ResponseWriter - http.Hijacker - http.Pusher - http.Flusher - io.ReaderFrom - }{t, hj, pu, fl, rf} - case i0 && i1 && !i2 && !i3 && !i4: - return struct { - http.ResponseWriter - http.Hijacker - http.CloseNotifier - }{t, hj, cn} - case i0 && i1 && !i2 && !i3 && i4: - return struct { - http.ResponseWriter - http.Hijacker - http.CloseNotifier - io.ReaderFrom - }{t, hj, cn, rf} - case i0 && i1 && !i2 && i3 && !i4: - return struct { - http.ResponseWriter - http.Hijacker - http.CloseNotifier - http.Flusher - }{t, hj, cn, fl} - case i0 && i1 && !i2 && i3 && i4: - return struct { - http.ResponseWriter - http.Hijacker - http.CloseNotifier - http.Flusher - io.ReaderFrom - }{t, hj, cn, fl, rf} - case i0 && i1 && i2 && !i3 && !i4: - return struct { - http.ResponseWriter - http.Hijacker - http.CloseNotifier - http.Pusher - }{t, hj, cn, pu} - case i0 && i1 && i2 && !i3 && i4: - return struct { - http.ResponseWriter - http.Hijacker - http.CloseNotifier - http.Pusher - io.ReaderFrom - }{t, hj, cn, pu, rf} - case i0 && i1 && i2 && i3 && !i4: - return struct { - http.ResponseWriter - http.Hijacker - http.CloseNotifier - http.Pusher - http.Flusher - }{t, hj, cn, pu, fl} - case i0 && i1 && i2 && i3 && i4: - return struct { - http.ResponseWriter - http.Hijacker - http.CloseNotifier - http.Pusher - http.Flusher - io.ReaderFrom - }{t, hj, cn, pu, fl, rf} - default: - return struct { - http.ResponseWriter - }{t} - } -} diff --git a/vendor/go.opencensus.io/plugin/ochttp/span_annotating_client_trace.go b/vendor/go.opencensus.io/plugin/ochttp/span_annotating_client_trace.go deleted file mode 100644 index 05c6c56cc..000000000 --- a/vendor/go.opencensus.io/plugin/ochttp/span_annotating_client_trace.go +++ /dev/null @@ -1,169 +0,0 @@ -// Copyright 2018, OpenCensus Authors -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -package ochttp - -import ( - "crypto/tls" - "net/http" - "net/http/httptrace" - "strings" - - "go.opencensus.io/trace" -) - -type spanAnnotator struct { - sp *trace.Span -} - -// TODO: Remove NewSpanAnnotator at the next release. - -// NewSpanAnnotator returns a httptrace.ClientTrace which annotates -// all emitted httptrace events on the provided Span. -// Deprecated: Use NewSpanAnnotatingClientTrace instead -func NewSpanAnnotator(r *http.Request, s *trace.Span) *httptrace.ClientTrace { - return NewSpanAnnotatingClientTrace(r, s) -} - -// NewSpanAnnotatingClientTrace returns a httptrace.ClientTrace which annotates -// all emitted httptrace events on the provided Span. -func NewSpanAnnotatingClientTrace(_ *http.Request, s *trace.Span) *httptrace.ClientTrace { - sa := spanAnnotator{sp: s} - - return &httptrace.ClientTrace{ - GetConn: sa.getConn, - GotConn: sa.gotConn, - PutIdleConn: sa.putIdleConn, - GotFirstResponseByte: sa.gotFirstResponseByte, - Got100Continue: sa.got100Continue, - DNSStart: sa.dnsStart, - DNSDone: sa.dnsDone, - ConnectStart: sa.connectStart, - ConnectDone: sa.connectDone, - TLSHandshakeStart: sa.tlsHandshakeStart, - TLSHandshakeDone: sa.tlsHandshakeDone, - WroteHeaders: sa.wroteHeaders, - Wait100Continue: sa.wait100Continue, - WroteRequest: sa.wroteRequest, - } -} - -func (s spanAnnotator) getConn(hostPort string) { - attrs := []trace.Attribute{ - trace.StringAttribute("httptrace.get_connection.host_port", hostPort), - } - s.sp.Annotate(attrs, "GetConn") -} - -func (s spanAnnotator) gotConn(info httptrace.GotConnInfo) { - attrs := []trace.Attribute{ - trace.BoolAttribute("httptrace.got_connection.reused", info.Reused), - trace.BoolAttribute("httptrace.got_connection.was_idle", info.WasIdle), - } - if info.WasIdle { - attrs = append(attrs, - trace.StringAttribute("httptrace.got_connection.idle_time", info.IdleTime.String())) - } - s.sp.Annotate(attrs, "GotConn") -} - -// PutIdleConn implements a httptrace.ClientTrace hook -func (s spanAnnotator) putIdleConn(err error) { - var attrs []trace.Attribute - if err != nil { - attrs = append(attrs, - trace.StringAttribute("httptrace.put_idle_connection.error", err.Error())) - } - s.sp.Annotate(attrs, "PutIdleConn") -} - -func (s spanAnnotator) gotFirstResponseByte() { - s.sp.Annotate(nil, "GotFirstResponseByte") -} - -func (s spanAnnotator) got100Continue() { - s.sp.Annotate(nil, "Got100Continue") -} - -func (s spanAnnotator) dnsStart(info httptrace.DNSStartInfo) { - attrs := []trace.Attribute{ - trace.StringAttribute("httptrace.dns_start.host", info.Host), - } - s.sp.Annotate(attrs, "DNSStart") -} - -func (s spanAnnotator) dnsDone(info httptrace.DNSDoneInfo) { - var addrs []string - for _, addr := range info.Addrs { - addrs = append(addrs, addr.String()) - } - attrs := []trace.Attribute{ - trace.StringAttribute("httptrace.dns_done.addrs", strings.Join(addrs, " , ")), - } - if info.Err != nil { - attrs = append(attrs, - trace.StringAttribute("httptrace.dns_done.error", info.Err.Error())) - } - s.sp.Annotate(attrs, "DNSDone") -} - -func (s spanAnnotator) connectStart(network, addr string) { - attrs := []trace.Attribute{ - trace.StringAttribute("httptrace.connect_start.network", network), - trace.StringAttribute("httptrace.connect_start.addr", addr), - } - s.sp.Annotate(attrs, "ConnectStart") -} - -func (s spanAnnotator) connectDone(network, addr string, err error) { - attrs := []trace.Attribute{ - trace.StringAttribute("httptrace.connect_done.network", network), - trace.StringAttribute("httptrace.connect_done.addr", addr), - } - if err != nil { - attrs = append(attrs, - trace.StringAttribute("httptrace.connect_done.error", err.Error())) - } - s.sp.Annotate(attrs, "ConnectDone") -} - -func (s spanAnnotator) tlsHandshakeStart() { - s.sp.Annotate(nil, "TLSHandshakeStart") -} - -func (s spanAnnotator) tlsHandshakeDone(_ tls.ConnectionState, err error) { - var attrs []trace.Attribute - if err != nil { - attrs = append(attrs, - trace.StringAttribute("httptrace.tls_handshake_done.error", err.Error())) - } - s.sp.Annotate(attrs, "TLSHandshakeDone") -} - -func (s spanAnnotator) wroteHeaders() { - s.sp.Annotate(nil, "WroteHeaders") -} - -func (s spanAnnotator) wait100Continue() { - s.sp.Annotate(nil, "Wait100Continue") -} - -func (s spanAnnotator) wroteRequest(info httptrace.WroteRequestInfo) { - var attrs []trace.Attribute - if info.Err != nil { - attrs = append(attrs, - trace.StringAttribute("httptrace.wrote_request.error", info.Err.Error())) - } - s.sp.Annotate(attrs, "WroteRequest") -} diff --git a/vendor/go.opencensus.io/plugin/ochttp/stats.go b/vendor/go.opencensus.io/plugin/ochttp/stats.go deleted file mode 100644 index ee3729040..000000000 --- a/vendor/go.opencensus.io/plugin/ochttp/stats.go +++ /dev/null @@ -1,292 +0,0 @@ -// Copyright 2018, OpenCensus Authors -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -package ochttp - -import ( - "go.opencensus.io/stats" - "go.opencensus.io/stats/view" - "go.opencensus.io/tag" -) - -// Deprecated: client HTTP measures. -var ( - // Deprecated: Use a Count aggregation over one of the other client measures to achieve the same effect. - ClientRequestCount = stats.Int64( - "opencensus.io/http/client/request_count", - "Number of HTTP requests started", - stats.UnitDimensionless) - // Deprecated: Use ClientSentBytes. - ClientRequestBytes = stats.Int64( - "opencensus.io/http/client/request_bytes", - "HTTP request body size if set as ContentLength (uncompressed)", - stats.UnitBytes) - // Deprecated: Use ClientReceivedBytes. - ClientResponseBytes = stats.Int64( - "opencensus.io/http/client/response_bytes", - "HTTP response body size (uncompressed)", - stats.UnitBytes) - // Deprecated: Use ClientRoundtripLatency. - ClientLatency = stats.Float64( - "opencensus.io/http/client/latency", - "End-to-end latency", - stats.UnitMilliseconds) -) - -// The following client HTTP measures are supported for use in custom views. -var ( - ClientSentBytes = stats.Int64( - "opencensus.io/http/client/sent_bytes", - "Total bytes sent in request body (not including headers)", - stats.UnitBytes, - ) - ClientReceivedBytes = stats.Int64( - "opencensus.io/http/client/received_bytes", - "Total bytes received in response bodies (not including headers but including error responses with bodies)", - stats.UnitBytes, - ) - ClientRoundtripLatency = stats.Float64( - "opencensus.io/http/client/roundtrip_latency", - "Time between first byte of request headers sent to last byte of response received, or terminal error", - stats.UnitMilliseconds, - ) -) - -// The following server HTTP measures are supported for use in custom views: -var ( - ServerRequestCount = stats.Int64( - "opencensus.io/http/server/request_count", - "Number of HTTP requests started", - stats.UnitDimensionless) - ServerRequestBytes = stats.Int64( - "opencensus.io/http/server/request_bytes", - "HTTP request body size if set as ContentLength (uncompressed)", - stats.UnitBytes) - ServerResponseBytes = stats.Int64( - "opencensus.io/http/server/response_bytes", - "HTTP response body size (uncompressed)", - stats.UnitBytes) - ServerLatency = stats.Float64( - "opencensus.io/http/server/latency", - "End-to-end latency", - stats.UnitMilliseconds) -) - -// The following tags are applied to stats recorded by this package. Host, Path -// and Method are applied to all measures. StatusCode is not applied to -// ClientRequestCount or ServerRequestCount, since it is recorded before the status is known. -var ( - // Host is the value of the HTTP Host header. - // - // The value of this tag can be controlled by the HTTP client, so you need - // to watch out for potentially generating high-cardinality labels in your - // metrics backend if you use this tag in views. - Host = tag.MustNewKey("http.host") - - // StatusCode is the numeric HTTP response status code, - // or "error" if a transport error occurred and no status code was read. - StatusCode = tag.MustNewKey("http.status") - - // Path is the URL path (not including query string) in the request. - // - // The value of this tag can be controlled by the HTTP client, so you need - // to watch out for potentially generating high-cardinality labels in your - // metrics backend if you use this tag in views. - Path = tag.MustNewKey("http.path") - - // Method is the HTTP method of the request, capitalized (GET, POST, etc.). - Method = tag.MustNewKey("http.method") - - // KeyServerRoute is a low cardinality string representing the logical - // handler of the request. This is usually the pattern registered on the a - // ServeMux (or similar string). - KeyServerRoute = tag.MustNewKey("http_server_route") -) - -// Client tag keys. -var ( - // KeyClientMethod is the HTTP method, capitalized (i.e. GET, POST, PUT, DELETE, etc.). - KeyClientMethod = tag.MustNewKey("http_client_method") - // KeyClientPath is the URL path (not including query string). - KeyClientPath = tag.MustNewKey("http_client_path") - // KeyClientStatus is the HTTP status code as an integer (e.g. 200, 404, 500.), or "error" if no response status line was received. - KeyClientStatus = tag.MustNewKey("http_client_status") - // KeyClientHost is the value of the request Host header. - KeyClientHost = tag.MustNewKey("http_client_host") -) - -// Default distributions used by views in this package. -var ( - DefaultSizeDistribution = view.Distribution(1024, 2048, 4096, 16384, 65536, 262144, 1048576, 4194304, 16777216, 67108864, 268435456, 1073741824, 4294967296) - DefaultLatencyDistribution = view.Distribution(1, 2, 3, 4, 5, 6, 8, 10, 13, 16, 20, 25, 30, 40, 50, 65, 80, 100, 130, 160, 200, 250, 300, 400, 500, 650, 800, 1000, 2000, 5000, 10000, 20000, 50000, 100000) -) - -// Package ochttp provides some convenience views for client measures. -// You still need to register these views for data to actually be collected. -var ( - ClientSentBytesDistribution = &view.View{ - Name: "opencensus.io/http/client/sent_bytes", - Measure: ClientSentBytes, - Aggregation: DefaultSizeDistribution, - Description: "Total bytes sent in request body (not including headers), by HTTP method and response status", - TagKeys: []tag.Key{KeyClientMethod, KeyClientStatus}, - } - - ClientReceivedBytesDistribution = &view.View{ - Name: "opencensus.io/http/client/received_bytes", - Measure: ClientReceivedBytes, - Aggregation: DefaultSizeDistribution, - Description: "Total bytes received in response bodies (not including headers but including error responses with bodies), by HTTP method and response status", - TagKeys: []tag.Key{KeyClientMethod, KeyClientStatus}, - } - - ClientRoundtripLatencyDistribution = &view.View{ - Name: "opencensus.io/http/client/roundtrip_latency", - Measure: ClientRoundtripLatency, - Aggregation: DefaultLatencyDistribution, - Description: "End-to-end latency, by HTTP method and response status", - TagKeys: []tag.Key{KeyClientMethod, KeyClientStatus}, - } - - ClientCompletedCount = &view.View{ - Name: "opencensus.io/http/client/completed_count", - Measure: ClientRoundtripLatency, - Aggregation: view.Count(), - Description: "Count of completed requests, by HTTP method and response status", - TagKeys: []tag.Key{KeyClientMethod, KeyClientStatus}, - } -) - -// Deprecated: Old client Views. -var ( - // Deprecated: No direct replacement, but see ClientCompletedCount. - ClientRequestCountView = &view.View{ - Name: "opencensus.io/http/client/request_count", - Description: "Count of HTTP requests started", - Measure: ClientRequestCount, - Aggregation: view.Count(), - } - - // Deprecated: Use ClientSentBytesDistribution. - ClientRequestBytesView = &view.View{ - Name: "opencensus.io/http/client/request_bytes", - Description: "Size distribution of HTTP request body", - Measure: ClientSentBytes, - Aggregation: DefaultSizeDistribution, - } - - // Deprecated: Use ClientReceivedBytesDistribution instead. - ClientResponseBytesView = &view.View{ - Name: "opencensus.io/http/client/response_bytes", - Description: "Size distribution of HTTP response body", - Measure: ClientReceivedBytes, - Aggregation: DefaultSizeDistribution, - } - - // Deprecated: Use ClientRoundtripLatencyDistribution instead. - ClientLatencyView = &view.View{ - Name: "opencensus.io/http/client/latency", - Description: "Latency distribution of HTTP requests", - Measure: ClientRoundtripLatency, - Aggregation: DefaultLatencyDistribution, - } - - // Deprecated: Use ClientCompletedCount instead. - ClientRequestCountByMethod = &view.View{ - Name: "opencensus.io/http/client/request_count_by_method", - Description: "Client request count by HTTP method", - TagKeys: []tag.Key{Method}, - Measure: ClientSentBytes, - Aggregation: view.Count(), - } - - // Deprecated: Use ClientCompletedCount instead. - ClientResponseCountByStatusCode = &view.View{ - Name: "opencensus.io/http/client/response_count_by_status_code", - Description: "Client response count by status code", - TagKeys: []tag.Key{StatusCode}, - Measure: ClientRoundtripLatency, - Aggregation: view.Count(), - } -) - -// Package ochttp provides some convenience views for server measures. -// You still need to register these views for data to actually be collected. -var ( - ServerRequestCountView = &view.View{ - Name: "opencensus.io/http/server/request_count", - Description: "Count of HTTP requests started", - Measure: ServerRequestCount, - Aggregation: view.Count(), - } - - ServerRequestBytesView = &view.View{ - Name: "opencensus.io/http/server/request_bytes", - Description: "Size distribution of HTTP request body", - Measure: ServerRequestBytes, - Aggregation: DefaultSizeDistribution, - } - - ServerResponseBytesView = &view.View{ - Name: "opencensus.io/http/server/response_bytes", - Description: "Size distribution of HTTP response body", - Measure: ServerResponseBytes, - Aggregation: DefaultSizeDistribution, - } - - ServerLatencyView = &view.View{ - Name: "opencensus.io/http/server/latency", - Description: "Latency distribution of HTTP requests", - Measure: ServerLatency, - Aggregation: DefaultLatencyDistribution, - } - - ServerRequestCountByMethod = &view.View{ - Name: "opencensus.io/http/server/request_count_by_method", - Description: "Server request count by HTTP method", - TagKeys: []tag.Key{Method}, - Measure: ServerRequestCount, - Aggregation: view.Count(), - } - - ServerResponseCountByStatusCode = &view.View{ - Name: "opencensus.io/http/server/response_count_by_status_code", - Description: "Server response count by status code", - TagKeys: []tag.Key{StatusCode}, - Measure: ServerLatency, - Aggregation: view.Count(), - } -) - -// DefaultClientViews are the default client views provided by this package. -// Deprecated: No replacement. Register the views you would like individually. -var DefaultClientViews = []*view.View{ - ClientRequestCountView, - ClientRequestBytesView, - ClientResponseBytesView, - ClientLatencyView, - ClientRequestCountByMethod, - ClientResponseCountByStatusCode, -} - -// DefaultServerViews are the default server views provided by this package. -// Deprecated: No replacement. Register the views you would like individually. -var DefaultServerViews = []*view.View{ - ServerRequestCountView, - ServerRequestBytesView, - ServerResponseBytesView, - ServerLatencyView, - ServerRequestCountByMethod, - ServerResponseCountByStatusCode, -} diff --git a/vendor/go.opencensus.io/plugin/ochttp/trace.go b/vendor/go.opencensus.io/plugin/ochttp/trace.go deleted file mode 100644 index ed3a5db56..000000000 --- a/vendor/go.opencensus.io/plugin/ochttp/trace.go +++ /dev/null @@ -1,244 +0,0 @@ -// Copyright 2018, OpenCensus Authors -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -package ochttp - -import ( - "io" - "net/http" - "net/http/httptrace" - - "go.opencensus.io/plugin/ochttp/propagation/b3" - "go.opencensus.io/trace" - "go.opencensus.io/trace/propagation" -) - -// TODO(jbd): Add godoc examples. - -var defaultFormat propagation.HTTPFormat = &b3.HTTPFormat{} - -// Attributes recorded on the span for the requests. -// Only trace exporters will need them. -const ( - HostAttribute = "http.host" - MethodAttribute = "http.method" - PathAttribute = "http.path" - URLAttribute = "http.url" - UserAgentAttribute = "http.user_agent" - StatusCodeAttribute = "http.status_code" -) - -type traceTransport struct { - base http.RoundTripper - startOptions trace.StartOptions - format propagation.HTTPFormat - formatSpanName func(*http.Request) string - newClientTrace func(*http.Request, *trace.Span) *httptrace.ClientTrace -} - -// TODO(jbd): Add message events for request and response size. - -// RoundTrip creates a trace.Span and inserts it into the outgoing request's headers. -// The created span can follow a parent span, if a parent is presented in -// the request's context. -func (t *traceTransport) RoundTrip(req *http.Request) (*http.Response, error) { - name := t.formatSpanName(req) - // TODO(jbd): Discuss whether we want to prefix - // outgoing requests with Sent. - ctx, span := trace.StartSpan(req.Context(), name, - trace.WithSampler(t.startOptions.Sampler), - trace.WithSpanKind(trace.SpanKindClient)) - - if t.newClientTrace != nil { - req = req.WithContext(httptrace.WithClientTrace(ctx, t.newClientTrace(req, span))) - } else { - req = req.WithContext(ctx) - } - - if t.format != nil { - // SpanContextToRequest will modify its Request argument, which is - // contrary to the contract for http.RoundTripper, so we need to - // pass it a copy of the Request. - // However, the Request struct itself was already copied by - // the WithContext calls above and so we just need to copy the header. - header := make(http.Header) - for k, v := range req.Header { - header[k] = v - } - req.Header = header - t.format.SpanContextToRequest(span.SpanContext(), req) - } - - span.AddAttributes(requestAttrs(req)...) - resp, err := t.base.RoundTrip(req) - if err != nil { - span.SetStatus(trace.Status{Code: trace.StatusCodeUnknown, Message: err.Error()}) - span.End() - return resp, err - } - - span.AddAttributes(responseAttrs(resp)...) - span.SetStatus(TraceStatus(resp.StatusCode, resp.Status)) - - // span.End() will be invoked after - // a read from resp.Body returns io.EOF or when - // resp.Body.Close() is invoked. - bt := &bodyTracker{rc: resp.Body, span: span} - resp.Body = wrappedBody(bt, resp.Body) - return resp, err -} - -// bodyTracker wraps a response.Body and invokes -// trace.EndSpan on encountering io.EOF on reading -// the body of the original response. -type bodyTracker struct { - rc io.ReadCloser - span *trace.Span -} - -var _ io.ReadCloser = (*bodyTracker)(nil) - -func (bt *bodyTracker) Read(b []byte) (int, error) { - n, err := bt.rc.Read(b) - - switch err { - case nil: - return n, nil - case io.EOF: - bt.span.End() - default: - // For all other errors, set the span status - bt.span.SetStatus(trace.Status{ - // Code 2 is the error code for Internal server error. - Code: 2, - Message: err.Error(), - }) - } - return n, err -} - -func (bt *bodyTracker) Close() error { - // Invoking endSpan on Close will help catch the cases - // in which a read returned a non-nil error, we set the - // span status but didn't end the span. - bt.span.End() - return bt.rc.Close() -} - -// CancelRequest cancels an in-flight request by closing its connection. -func (t *traceTransport) CancelRequest(req *http.Request) { - type canceler interface { - CancelRequest(*http.Request) - } - if cr, ok := t.base.(canceler); ok { - cr.CancelRequest(req) - } -} - -func spanNameFromURL(req *http.Request) string { - return req.URL.Path -} - -func requestAttrs(r *http.Request) []trace.Attribute { - userAgent := r.UserAgent() - - attrs := make([]trace.Attribute, 0, 5) - attrs = append(attrs, - trace.StringAttribute(PathAttribute, r.URL.Path), - trace.StringAttribute(URLAttribute, r.URL.String()), - trace.StringAttribute(HostAttribute, r.Host), - trace.StringAttribute(MethodAttribute, r.Method), - ) - - if userAgent != "" { - attrs = append(attrs, trace.StringAttribute(UserAgentAttribute, userAgent)) - } - - return attrs -} - -func responseAttrs(resp *http.Response) []trace.Attribute { - return []trace.Attribute{ - trace.Int64Attribute(StatusCodeAttribute, int64(resp.StatusCode)), - } -} - -// TraceStatus is a utility to convert the HTTP status code to a trace.Status that -// represents the outcome as closely as possible. -func TraceStatus(httpStatusCode int, statusLine string) trace.Status { - var code int32 - if httpStatusCode < 200 || httpStatusCode >= 400 { - code = trace.StatusCodeUnknown - } - switch httpStatusCode { - case 499: - code = trace.StatusCodeCancelled - case http.StatusBadRequest: - code = trace.StatusCodeInvalidArgument - case http.StatusUnprocessableEntity: - code = trace.StatusCodeInvalidArgument - case http.StatusGatewayTimeout: - code = trace.StatusCodeDeadlineExceeded - case http.StatusNotFound: - code = trace.StatusCodeNotFound - case http.StatusForbidden: - code = trace.StatusCodePermissionDenied - case http.StatusUnauthorized: // 401 is actually unauthenticated. - code = trace.StatusCodeUnauthenticated - case http.StatusTooManyRequests: - code = trace.StatusCodeResourceExhausted - case http.StatusNotImplemented: - code = trace.StatusCodeUnimplemented - case http.StatusServiceUnavailable: - code = trace.StatusCodeUnavailable - case http.StatusOK: - code = trace.StatusCodeOK - case http.StatusConflict: - code = trace.StatusCodeAlreadyExists - } - - return trace.Status{Code: code, Message: codeToStr[code]} -} - -var codeToStr = map[int32]string{ - trace.StatusCodeOK: `OK`, - trace.StatusCodeCancelled: `CANCELLED`, - trace.StatusCodeUnknown: `UNKNOWN`, - trace.StatusCodeInvalidArgument: `INVALID_ARGUMENT`, - trace.StatusCodeDeadlineExceeded: `DEADLINE_EXCEEDED`, - trace.StatusCodeNotFound: `NOT_FOUND`, - trace.StatusCodeAlreadyExists: `ALREADY_EXISTS`, - trace.StatusCodePermissionDenied: `PERMISSION_DENIED`, - trace.StatusCodeResourceExhausted: `RESOURCE_EXHAUSTED`, - trace.StatusCodeFailedPrecondition: `FAILED_PRECONDITION`, - trace.StatusCodeAborted: `ABORTED`, - trace.StatusCodeOutOfRange: `OUT_OF_RANGE`, - trace.StatusCodeUnimplemented: `UNIMPLEMENTED`, - trace.StatusCodeInternal: `INTERNAL`, - trace.StatusCodeUnavailable: `UNAVAILABLE`, - trace.StatusCodeDataLoss: `DATA_LOSS`, - trace.StatusCodeUnauthenticated: `UNAUTHENTICATED`, -} - -func isHealthEndpoint(path string) bool { - // Health checking is pretty frequent and - // traces collected for health endpoints - // can be extremely noisy and expensive. - // Disable canonical health checking endpoints - // like /healthz and /_ah/health for now. - if path == "/healthz" || path == "/_ah/health" { - return true - } - return false -} diff --git a/vendor/go.opencensus.io/plugin/ochttp/wrapped_body.go b/vendor/go.opencensus.io/plugin/ochttp/wrapped_body.go deleted file mode 100644 index 7d75cae2b..000000000 --- a/vendor/go.opencensus.io/plugin/ochttp/wrapped_body.go +++ /dev/null @@ -1,44 +0,0 @@ -// Copyright 2019, OpenCensus Authors -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -package ochttp - -import ( - "io" -) - -// wrappedBody returns a wrapped version of the original -// Body and only implements the same combination of additional -// interfaces as the original. -func wrappedBody(wrapper io.ReadCloser, body io.ReadCloser) io.ReadCloser { - var ( - wr, i0 = body.(io.Writer) - ) - switch { - case !i0: - return struct { - io.ReadCloser - }{wrapper} - - case i0: - return struct { - io.ReadCloser - io.Writer - }{wrapper, wr} - default: - return struct { - io.ReadCloser - }{wrapper} - } -} diff --git a/vendor/go.opencensus.io/resource/resource.go b/vendor/go.opencensus.io/resource/resource.go deleted file mode 100644 index b1764e1d3..000000000 --- a/vendor/go.opencensus.io/resource/resource.go +++ /dev/null @@ -1,164 +0,0 @@ -// Copyright 2018, OpenCensus Authors -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -// Package resource provides functionality for resource, which capture -// identifying information about the entities for which signals are exported. -package resource - -import ( - "context" - "fmt" - "os" - "regexp" - "sort" - "strconv" - "strings" -) - -// Environment variables used by FromEnv to decode a resource. -const ( - EnvVarType = "OC_RESOURCE_TYPE" - EnvVarLabels = "OC_RESOURCE_LABELS" -) - -// Resource describes an entity about which identifying information and metadata is exposed. -// For example, a type "k8s.io/container" may hold labels describing the pod name and namespace. -type Resource struct { - Type string - Labels map[string]string -} - -// EncodeLabels encodes a labels map to a string as provided via the OC_RESOURCE_LABELS environment variable. -func EncodeLabels(labels map[string]string) string { - sortedKeys := make([]string, 0, len(labels)) - for k := range labels { - sortedKeys = append(sortedKeys, k) - } - sort.Strings(sortedKeys) - - s := "" - for i, k := range sortedKeys { - if i > 0 { - s += "," - } - s += k + "=" + strconv.Quote(labels[k]) - } - return s -} - -var labelRegex = regexp.MustCompile(`^\s*([[:ascii:]]{1,256}?)=("[[:ascii:]]{0,256}?")\s*,`) - -// DecodeLabels decodes a serialized label map as used in the OC_RESOURCE_LABELS variable. -// A list of labels of the form `="",="",...` is accepted. -// Domain names and paths are accepted as label keys. -// Most users will want to use FromEnv instead. -func DecodeLabels(s string) (map[string]string, error) { - m := map[string]string{} - // Ensure a trailing comma, which allows us to keep the regex simpler - s = strings.TrimRight(strings.TrimSpace(s), ",") + "," - - for len(s) > 0 { - match := labelRegex.FindStringSubmatch(s) - if len(match) == 0 { - return nil, fmt.Errorf("invalid label formatting, remainder: %s", s) - } - v := match[2] - if v == "" { - v = match[3] - } else { - var err error - if v, err = strconv.Unquote(v); err != nil { - return nil, fmt.Errorf("invalid label formatting, remainder: %s, err: %s", s, err) - } - } - m[match[1]] = v - - s = s[len(match[0]):] - } - return m, nil -} - -// FromEnv is a detector that loads resource information from the OC_RESOURCE_TYPE -// and OC_RESOURCE_labelS environment variables. -func FromEnv(context.Context) (*Resource, error) { - res := &Resource{ - Type: strings.TrimSpace(os.Getenv(EnvVarType)), - } - labels := strings.TrimSpace(os.Getenv(EnvVarLabels)) - if labels == "" { - return res, nil - } - var err error - if res.Labels, err = DecodeLabels(labels); err != nil { - return nil, err - } - return res, nil -} - -var _ Detector = FromEnv - -// merge resource information from b into a. In case of a collision, a takes precedence. -func merge(a, b *Resource) *Resource { - if a == nil { - return b - } - if b == nil { - return a - } - res := &Resource{ - Type: a.Type, - Labels: map[string]string{}, - } - if res.Type == "" { - res.Type = b.Type - } - for k, v := range b.Labels { - res.Labels[k] = v - } - // Labels from resource a overwrite labels from resource b. - for k, v := range a.Labels { - res.Labels[k] = v - } - return res -} - -// Detector attempts to detect resource information. -// If the detector cannot find resource information, the returned resource is nil but no -// error is returned. -// An error is only returned on unexpected failures. -type Detector func(context.Context) (*Resource, error) - -// MultiDetector returns a Detector that calls all input detectors in order and -// merges each result with the previous one. In case a type of label key is already set, -// the first set value is takes precedence. -// It returns on the first error that a sub-detector encounters. -func MultiDetector(detectors ...Detector) Detector { - return func(ctx context.Context) (*Resource, error) { - return detectAll(ctx, detectors...) - } -} - -// detectall calls all input detectors sequentially an merges each result with the previous one. -// It returns on the first error that a sub-detector encounters. -func detectAll(ctx context.Context, detectors ...Detector) (*Resource, error) { - var res *Resource - for _, d := range detectors { - r, err := d(ctx) - if err != nil { - return nil, err - } - res = merge(res, r) - } - return res, nil -} diff --git a/vendor/go.opencensus.io/stats/doc.go b/vendor/go.opencensus.io/stats/doc.go deleted file mode 100644 index 31477a464..000000000 --- a/vendor/go.opencensus.io/stats/doc.go +++ /dev/null @@ -1,68 +0,0 @@ -// Copyright 2017, OpenCensus Authors -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// - -/* -Package stats contains support for OpenCensus stats recording. - -OpenCensus allows users to create typed measures, record measurements, -aggregate the collected data, and export the aggregated data. - -# Measures - -A measure represents a type of data point to be tracked and recorded. -For example, latency, request Mb/s, and response Mb/s are measures -to collect from a server. - -Measure constructors such as Int64 and Float64 automatically -register the measure by the given name. Each registered measure needs -to be unique by name. Measures also have a description and a unit. - -Libraries can define and export measures. Application authors can then -create views and collect and break down measures by the tags they are -interested in. - -# Recording measurements - -Measurement is a data point to be collected for a measure. For example, -for a latency (ms) measure, 100 is a measurement that represents a 100ms -latency event. Measurements are created from measures with -the current context. Tags from the current context are recorded with the -measurements if they are any. - -Recorded measurements are dropped immediately if no views are registered for them. -There is usually no need to conditionally enable and disable -recording to reduce cost. Recording of measurements is cheap. - -Libraries can always record measurements, and applications can later decide -on which measurements they want to collect by registering views. This allows -libraries to turn on the instrumentation by default. - -# Exemplars - -For a given recorded measurement, the associated exemplar is a diagnostic map -that gives more information about the measurement. - -When aggregated using a Distribution aggregation, an exemplar is kept for each -bucket in the Distribution. This allows you to easily find an example of a -measurement that fell into each bucket. - -For example, if you also use the OpenCensus trace package and you -record a measurement with a context that contains a sampled trace span, -then the trace span will be added to the exemplar associated with the measurement. - -When exported to a supporting back end, you should be able to easily navigate -to example traces that fell into each bucket in the Distribution. -*/ -package stats // import "go.opencensus.io/stats" diff --git a/vendor/go.opencensus.io/stats/internal/record.go b/vendor/go.opencensus.io/stats/internal/record.go deleted file mode 100644 index 436dc791f..000000000 --- a/vendor/go.opencensus.io/stats/internal/record.go +++ /dev/null @@ -1,31 +0,0 @@ -// Copyright 2018, OpenCensus Authors -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -package internal - -import ( - "go.opencensus.io/tag" -) - -// DefaultRecorder will be called for each Record call. -var DefaultRecorder func(tags *tag.Map, measurement interface{}, attachments map[string]interface{}) - -// MeasurementRecorder will be called for each Record call. This is the same as DefaultRecorder but -// avoids interface{} conversion. -// This will be a func(tags *tag.Map, measurement []Measurement, attachments map[string]interface{}) type, -// but is interface{} here to avoid import loops -var MeasurementRecorder interface{} - -// SubscriptionReporter reports when a view subscribed with a measure. -var SubscriptionReporter func(measure string) diff --git a/vendor/go.opencensus.io/stats/measure.go b/vendor/go.opencensus.io/stats/measure.go deleted file mode 100644 index 1ffd3cefc..000000000 --- a/vendor/go.opencensus.io/stats/measure.go +++ /dev/null @@ -1,109 +0,0 @@ -// Copyright 2017, OpenCensus Authors -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// - -package stats - -import ( - "sync" - "sync/atomic" -) - -// Measure represents a single numeric value to be tracked and recorded. -// For example, latency, request bytes, and response bytes could be measures -// to collect from a server. -// -// Measures by themselves have no outside effects. In order to be exported, -// the measure needs to be used in a View. If no Views are defined over a -// measure, there is very little cost in recording it. -type Measure interface { - // Name returns the name of this measure. - // - // Measure names are globally unique (among all libraries linked into your program). - // We recommend prefixing the measure name with a domain name relevant to your - // project or application. - // - // Measure names are never sent over the wire or exported to backends. - // They are only used to create Views. - Name() string - - // Description returns the human-readable description of this measure. - Description() string - - // Unit returns the units for the values this measure takes on. - // - // Units are encoded according to the case-sensitive abbreviations from the - // Unified Code for Units of Measure: http://unitsofmeasure.org/ucum.html - Unit() string -} - -// measureDescriptor is the untyped descriptor associated with each measure. -// Int64Measure and Float64Measure wrap measureDescriptor to provide typed -// recording APIs. -// Two Measures with the same name will have the same measureDescriptor. -type measureDescriptor struct { - subs int32 // access atomically - - name string - description string - unit string -} - -func (m *measureDescriptor) subscribe() { - atomic.StoreInt32(&m.subs, 1) -} - -func (m *measureDescriptor) subscribed() bool { - return atomic.LoadInt32(&m.subs) == 1 -} - -var ( - mu sync.RWMutex - measures = make(map[string]*measureDescriptor) -) - -func registerMeasureHandle(name, desc, unit string) *measureDescriptor { - mu.Lock() - defer mu.Unlock() - - if stored, ok := measures[name]; ok { - return stored - } - m := &measureDescriptor{ - name: name, - description: desc, - unit: unit, - } - measures[name] = m - return m -} - -// Measurement is the numeric value measured when recording stats. Each measure -// provides methods to create measurements of their kind. For example, Int64Measure -// provides M to convert an int64 into a measurement. -type Measurement struct { - v float64 - m Measure - desc *measureDescriptor -} - -// Value returns the value of the Measurement as a float64. -func (m Measurement) Value() float64 { - return m.v -} - -// Measure returns the Measure from which this Measurement was created. -func (m Measurement) Measure() Measure { - return m.m -} diff --git a/vendor/go.opencensus.io/stats/measure_float64.go b/vendor/go.opencensus.io/stats/measure_float64.go deleted file mode 100644 index f02c1eda8..000000000 --- a/vendor/go.opencensus.io/stats/measure_float64.go +++ /dev/null @@ -1,55 +0,0 @@ -// Copyright 2017, OpenCensus Authors -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// - -package stats - -// Float64Measure is a measure for float64 values. -type Float64Measure struct { - desc *measureDescriptor -} - -// M creates a new float64 measurement. -// Use Record to record measurements. -func (m *Float64Measure) M(v float64) Measurement { - return Measurement{ - m: m, - desc: m.desc, - v: v, - } -} - -// Float64 creates a new measure for float64 values. -// -// See the documentation for interface Measure for more guidance on the -// parameters of this function. -func Float64(name, description, unit string) *Float64Measure { - mi := registerMeasureHandle(name, description, unit) - return &Float64Measure{mi} -} - -// Name returns the name of the measure. -func (m *Float64Measure) Name() string { - return m.desc.name -} - -// Description returns the description of the measure. -func (m *Float64Measure) Description() string { - return m.desc.description -} - -// Unit returns the unit of the measure. -func (m *Float64Measure) Unit() string { - return m.desc.unit -} diff --git a/vendor/go.opencensus.io/stats/measure_int64.go b/vendor/go.opencensus.io/stats/measure_int64.go deleted file mode 100644 index d101d7973..000000000 --- a/vendor/go.opencensus.io/stats/measure_int64.go +++ /dev/null @@ -1,55 +0,0 @@ -// Copyright 2017, OpenCensus Authors -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// - -package stats - -// Int64Measure is a measure for int64 values. -type Int64Measure struct { - desc *measureDescriptor -} - -// M creates a new int64 measurement. -// Use Record to record measurements. -func (m *Int64Measure) M(v int64) Measurement { - return Measurement{ - m: m, - desc: m.desc, - v: float64(v), - } -} - -// Int64 creates a new measure for int64 values. -// -// See the documentation for interface Measure for more guidance on the -// parameters of this function. -func Int64(name, description, unit string) *Int64Measure { - mi := registerMeasureHandle(name, description, unit) - return &Int64Measure{mi} -} - -// Name returns the name of the measure. -func (m *Int64Measure) Name() string { - return m.desc.name -} - -// Description returns the description of the measure. -func (m *Int64Measure) Description() string { - return m.desc.description -} - -// Unit returns the unit of the measure. -func (m *Int64Measure) Unit() string { - return m.desc.unit -} diff --git a/vendor/go.opencensus.io/stats/record.go b/vendor/go.opencensus.io/stats/record.go deleted file mode 100644 index 8b5b99803..000000000 --- a/vendor/go.opencensus.io/stats/record.go +++ /dev/null @@ -1,156 +0,0 @@ -// Copyright 2018, OpenCensus Authors -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// - -package stats - -import ( - "context" - - "go.opencensus.io/metric/metricdata" - "go.opencensus.io/stats/internal" - "go.opencensus.io/tag" -) - -func init() { - internal.SubscriptionReporter = func(measure string) { - mu.Lock() - measures[measure].subscribe() - mu.Unlock() - } -} - -// Recorder provides an interface for exporting measurement information from -// the static Record method by using the WithRecorder option. -type Recorder interface { - // Record records a set of measurements associated with the given tags and attachments. - // The second argument is a `[]Measurement`. - Record(*tag.Map, interface{}, map[string]interface{}) -} - -type recordOptions struct { - attachments metricdata.Attachments - mutators []tag.Mutator - measurements []Measurement - recorder Recorder -} - -// WithAttachments applies provided exemplar attachments. -func WithAttachments(attachments metricdata.Attachments) Options { - return func(ro *recordOptions) { - ro.attachments = attachments - } -} - -// WithTags applies provided tag mutators. -func WithTags(mutators ...tag.Mutator) Options { - return func(ro *recordOptions) { - ro.mutators = mutators - } -} - -// WithMeasurements applies provided measurements. -func WithMeasurements(measurements ...Measurement) Options { - return func(ro *recordOptions) { - ro.measurements = measurements - } -} - -// WithRecorder records the measurements to the specified `Recorder`, rather -// than to the global metrics recorder. -func WithRecorder(meter Recorder) Options { - return func(ro *recordOptions) { - ro.recorder = meter - } -} - -// Options apply changes to recordOptions. -type Options func(*recordOptions) - -func createRecordOption(ros ...Options) *recordOptions { - o := &recordOptions{} - for _, ro := range ros { - ro(o) - } - return o -} - -type measurementRecorder = func(tags *tag.Map, measurement []Measurement, attachments map[string]interface{}) - -// Record records one or multiple measurements with the same context at once. -// If there are any tags in the context, measurements will be tagged with them. -func Record(ctx context.Context, ms ...Measurement) { - // Record behaves the same as RecordWithOptions, but because we do not have to handle generic functionality - // (RecordOptions) we can reduce some allocations to speed up this hot path - if len(ms) == 0 { - return - } - recorder := internal.MeasurementRecorder.(measurementRecorder) - record := false - for _, m := range ms { - if m.desc.subscribed() { - record = true - break - } - } - if !record { - return - } - recorder(tag.FromContext(ctx), ms, nil) - return -} - -// RecordWithTags records one or multiple measurements at once. -// -// Measurements will be tagged with the tags in the context mutated by the mutators. -// RecordWithTags is useful if you want to record with tag mutations but don't want -// to propagate the mutations in the context. -func RecordWithTags(ctx context.Context, mutators []tag.Mutator, ms ...Measurement) error { - return RecordWithOptions(ctx, WithTags(mutators...), WithMeasurements(ms...)) -} - -// RecordWithOptions records measurements from the given options (if any) against context -// and tags and attachments in the options (if any). -// If there are any tags in the context, measurements will be tagged with them. -func RecordWithOptions(ctx context.Context, ros ...Options) error { - o := createRecordOption(ros...) - if len(o.measurements) == 0 { - return nil - } - recorder := internal.DefaultRecorder - if o.recorder != nil { - recorder = o.recorder.Record - } - if recorder == nil { - return nil - } - record := false - for _, m := range o.measurements { - if m.desc.subscribed() { - record = true - break - } - } - if !record { - return nil - } - if len(o.mutators) > 0 { - var err error - if ctx, err = tag.New(ctx, o.mutators...); err != nil { - return err - } - } - recorder(tag.FromContext(ctx), o.measurements, o.attachments) - return nil -} diff --git a/vendor/go.opencensus.io/stats/units.go b/vendor/go.opencensus.io/stats/units.go deleted file mode 100644 index 736399652..000000000 --- a/vendor/go.opencensus.io/stats/units.go +++ /dev/null @@ -1,26 +0,0 @@ -// Copyright 2018, OpenCensus Authors -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// - -package stats - -// Units are encoded according to the case-sensitive abbreviations from the -// Unified Code for Units of Measure: http://unitsofmeasure.org/ucum.html -const ( - UnitNone = "1" // Deprecated: Use UnitDimensionless. - UnitDimensionless = "1" - UnitBytes = "By" - UnitMilliseconds = "ms" - UnitSeconds = "s" -) diff --git a/vendor/go.opencensus.io/stats/view/aggregation.go b/vendor/go.opencensus.io/stats/view/aggregation.go deleted file mode 100644 index 61f72d20d..000000000 --- a/vendor/go.opencensus.io/stats/view/aggregation.go +++ /dev/null @@ -1,123 +0,0 @@ -// Copyright 2017, OpenCensus Authors -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// - -package view - -import "time" - -// AggType represents the type of aggregation function used on a View. -type AggType int - -// All available aggregation types. -const ( - AggTypeNone AggType = iota // no aggregation; reserved for future use. - AggTypeCount // the count aggregation, see Count. - AggTypeSum // the sum aggregation, see Sum. - AggTypeDistribution // the distribution aggregation, see Distribution. - AggTypeLastValue // the last value aggregation, see LastValue. -) - -func (t AggType) String() string { - return aggTypeName[t] -} - -var aggTypeName = map[AggType]string{ - AggTypeNone: "None", - AggTypeCount: "Count", - AggTypeSum: "Sum", - AggTypeDistribution: "Distribution", - AggTypeLastValue: "LastValue", -} - -// Aggregation represents a data aggregation method. Use one of the functions: -// Count, Sum, or Distribution to construct an Aggregation. -type Aggregation struct { - Type AggType // Type is the AggType of this Aggregation. - Buckets []float64 // Buckets are the bucket endpoints if this Aggregation represents a distribution, see Distribution. - - newData func(time.Time) AggregationData -} - -var ( - aggCount = &Aggregation{ - Type: AggTypeCount, - newData: func(t time.Time) AggregationData { - return &CountData{Start: t} - }, - } - aggSum = &Aggregation{ - Type: AggTypeSum, - newData: func(t time.Time) AggregationData { - return &SumData{Start: t} - }, - } -) - -// Count indicates that data collected and aggregated -// with this method will be turned into a count value. -// For example, total number of accepted requests can be -// aggregated by using Count. -func Count() *Aggregation { - return aggCount -} - -// Sum indicates that data collected and aggregated -// with this method will be summed up. -// For example, accumulated request bytes can be aggregated by using -// Sum. -func Sum() *Aggregation { - return aggSum -} - -// Distribution indicates that the desired aggregation is -// a histogram distribution. -// -// A distribution aggregation may contain a histogram of the values in the -// population. The bucket boundaries for that histogram are described -// by the bounds. This defines len(bounds)+1 buckets. -// -// If len(bounds) >= 2 then the boundaries for bucket index i are: -// -// [-infinity, bounds[i]) for i = 0 -// [bounds[i-1], bounds[i]) for 0 < i < length -// [bounds[i-1], +infinity) for i = length -// -// If len(bounds) is 0 then there is no histogram associated with the -// distribution. There will be a single bucket with boundaries -// (-infinity, +infinity). -// -// If len(bounds) is 1 then there is no finite buckets, and that single -// element is the common boundary of the overflow and underflow buckets. -func Distribution(bounds ...float64) *Aggregation { - agg := &Aggregation{ - Type: AggTypeDistribution, - Buckets: bounds, - } - agg.newData = func(t time.Time) AggregationData { - return newDistributionData(agg, t) - } - return agg -} - -// LastValue only reports the last value recorded using this -// aggregation. All other measurements will be dropped. -func LastValue() *Aggregation { - return &Aggregation{ - Type: AggTypeLastValue, - newData: func(_ time.Time) AggregationData { - return &LastValueData{} - }, - } -} diff --git a/vendor/go.opencensus.io/stats/view/aggregation_data.go b/vendor/go.opencensus.io/stats/view/aggregation_data.go deleted file mode 100644 index d93b52066..000000000 --- a/vendor/go.opencensus.io/stats/view/aggregation_data.go +++ /dev/null @@ -1,336 +0,0 @@ -// Copyright 2017, OpenCensus Authors -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// - -package view - -import ( - "math" - "time" - - "go.opencensus.io/metric/metricdata" -) - -// AggregationData represents an aggregated value from a collection. -// They are reported on the view data during exporting. -// Mosts users won't directly access aggregration data. -type AggregationData interface { - isAggregationData() bool - addSample(v float64, attachments map[string]interface{}, t time.Time) - clone() AggregationData - equal(other AggregationData) bool - toPoint(t metricdata.Type, time time.Time) metricdata.Point - StartTime() time.Time -} - -const epsilon = 1e-9 - -// CountData is the aggregated data for the Count aggregation. -// A count aggregation processes data and counts the recordings. -// -// Most users won't directly access count data. -type CountData struct { - Start time.Time - Value int64 -} - -func (a *CountData) isAggregationData() bool { return true } - -func (a *CountData) addSample(_ float64, _ map[string]interface{}, _ time.Time) { - a.Value = a.Value + 1 -} - -func (a *CountData) clone() AggregationData { - return &CountData{Value: a.Value, Start: a.Start} -} - -func (a *CountData) equal(other AggregationData) bool { - a2, ok := other.(*CountData) - if !ok { - return false - } - - return a.Start.Equal(a2.Start) && a.Value == a2.Value -} - -func (a *CountData) toPoint(metricType metricdata.Type, t time.Time) metricdata.Point { - switch metricType { - case metricdata.TypeCumulativeInt64: - return metricdata.NewInt64Point(t, a.Value) - default: - panic("unsupported metricdata.Type") - } -} - -// StartTime returns the start time of the data being aggregated by CountData. -func (a *CountData) StartTime() time.Time { - return a.Start -} - -// SumData is the aggregated data for the Sum aggregation. -// A sum aggregation processes data and sums up the recordings. -// -// Most users won't directly access sum data. -type SumData struct { - Start time.Time - Value float64 -} - -func (a *SumData) isAggregationData() bool { return true } - -func (a *SumData) addSample(v float64, _ map[string]interface{}, _ time.Time) { - a.Value += v -} - -func (a *SumData) clone() AggregationData { - return &SumData{Value: a.Value, Start: a.Start} -} - -func (a *SumData) equal(other AggregationData) bool { - a2, ok := other.(*SumData) - if !ok { - return false - } - return a.Start.Equal(a2.Start) && math.Pow(a.Value-a2.Value, 2) < epsilon -} - -func (a *SumData) toPoint(metricType metricdata.Type, t time.Time) metricdata.Point { - switch metricType { - case metricdata.TypeCumulativeInt64: - return metricdata.NewInt64Point(t, int64(a.Value)) - case metricdata.TypeCumulativeFloat64: - return metricdata.NewFloat64Point(t, a.Value) - default: - panic("unsupported metricdata.Type") - } -} - -// StartTime returns the start time of the data being aggregated by SumData. -func (a *SumData) StartTime() time.Time { - return a.Start -} - -// DistributionData is the aggregated data for the -// Distribution aggregation. -// -// Most users won't directly access distribution data. -// -// For a distribution with N bounds, the associated DistributionData will have -// N+1 buckets. -type DistributionData struct { - Count int64 // number of data points aggregated - Min float64 // minimum value in the distribution - Max float64 // max value in the distribution - Mean float64 // mean of the distribution - SumOfSquaredDev float64 // sum of the squared deviation from the mean - CountPerBucket []int64 // number of occurrences per bucket - // ExemplarsPerBucket is slice the same length as CountPerBucket containing - // an exemplar for the associated bucket, or nil. - ExemplarsPerBucket []*metricdata.Exemplar - bounds []float64 // histogram distribution of the values - Start time.Time -} - -func newDistributionData(agg *Aggregation, t time.Time) *DistributionData { - bucketCount := len(agg.Buckets) + 1 - return &DistributionData{ - CountPerBucket: make([]int64, bucketCount), - ExemplarsPerBucket: make([]*metricdata.Exemplar, bucketCount), - bounds: agg.Buckets, - Min: math.MaxFloat64, - Max: math.SmallestNonzeroFloat64, - Start: t, - } -} - -// Sum returns the sum of all samples collected. -func (a *DistributionData) Sum() float64 { return a.Mean * float64(a.Count) } - -func (a *DistributionData) variance() float64 { - if a.Count <= 1 { - return 0 - } - return a.SumOfSquaredDev / float64(a.Count-1) -} - -func (a *DistributionData) isAggregationData() bool { return true } - -// TODO(songy23): support exemplar attachments. -func (a *DistributionData) addSample(v float64, attachments map[string]interface{}, t time.Time) { - if v < a.Min { - a.Min = v - } - if v > a.Max { - a.Max = v - } - a.Count++ - a.addToBucket(v, attachments, t) - - if a.Count == 1 { - a.Mean = v - return - } - - oldMean := a.Mean - a.Mean = a.Mean + (v-a.Mean)/float64(a.Count) - a.SumOfSquaredDev = a.SumOfSquaredDev + (v-oldMean)*(v-a.Mean) -} - -func (a *DistributionData) addToBucket(v float64, attachments map[string]interface{}, t time.Time) { - var count *int64 - var i int - var b float64 - for i, b = range a.bounds { - if v < b { - count = &a.CountPerBucket[i] - break - } - } - if count == nil { // Last bucket. - i = len(a.bounds) - count = &a.CountPerBucket[i] - } - *count++ - if exemplar := getExemplar(v, attachments, t); exemplar != nil { - a.ExemplarsPerBucket[i] = exemplar - } -} - -func getExemplar(v float64, attachments map[string]interface{}, t time.Time) *metricdata.Exemplar { - if len(attachments) == 0 { - return nil - } - return &metricdata.Exemplar{ - Value: v, - Timestamp: t, - Attachments: attachments, - } -} - -func (a *DistributionData) clone() AggregationData { - c := *a - c.CountPerBucket = append([]int64(nil), a.CountPerBucket...) - c.ExemplarsPerBucket = append([]*metricdata.Exemplar(nil), a.ExemplarsPerBucket...) - return &c -} - -func (a *DistributionData) equal(other AggregationData) bool { - a2, ok := other.(*DistributionData) - if !ok { - return false - } - if a2 == nil { - return false - } - if len(a.CountPerBucket) != len(a2.CountPerBucket) { - return false - } - for i := range a.CountPerBucket { - if a.CountPerBucket[i] != a2.CountPerBucket[i] { - return false - } - } - return a.Start.Equal(a2.Start) && - a.Count == a2.Count && - a.Min == a2.Min && - a.Max == a2.Max && - math.Pow(a.Mean-a2.Mean, 2) < epsilon && math.Pow(a.variance()-a2.variance(), 2) < epsilon -} - -func (a *DistributionData) toPoint(metricType metricdata.Type, t time.Time) metricdata.Point { - switch metricType { - case metricdata.TypeCumulativeDistribution: - buckets := []metricdata.Bucket{} - for i := 0; i < len(a.CountPerBucket); i++ { - buckets = append(buckets, metricdata.Bucket{ - Count: a.CountPerBucket[i], - Exemplar: a.ExemplarsPerBucket[i], - }) - } - bucketOptions := &metricdata.BucketOptions{Bounds: a.bounds} - - val := &metricdata.Distribution{ - Count: a.Count, - Sum: a.Sum(), - SumOfSquaredDeviation: a.SumOfSquaredDev, - BucketOptions: bucketOptions, - Buckets: buckets, - } - return metricdata.NewDistributionPoint(t, val) - - default: - // TODO: [rghetia] when we have a use case for TypeGaugeDistribution. - panic("unsupported metricdata.Type") - } -} - -// StartTime returns the start time of the data being aggregated by DistributionData. -func (a *DistributionData) StartTime() time.Time { - return a.Start -} - -// LastValueData returns the last value recorded for LastValue aggregation. -type LastValueData struct { - Value float64 -} - -func (l *LastValueData) isAggregationData() bool { - return true -} - -func (l *LastValueData) addSample(v float64, _ map[string]interface{}, _ time.Time) { - l.Value = v -} - -func (l *LastValueData) clone() AggregationData { - return &LastValueData{l.Value} -} - -func (l *LastValueData) equal(other AggregationData) bool { - a2, ok := other.(*LastValueData) - if !ok { - return false - } - return l.Value == a2.Value -} - -func (l *LastValueData) toPoint(metricType metricdata.Type, t time.Time) metricdata.Point { - switch metricType { - case metricdata.TypeGaugeInt64: - return metricdata.NewInt64Point(t, int64(l.Value)) - case metricdata.TypeGaugeFloat64: - return metricdata.NewFloat64Point(t, l.Value) - default: - panic("unsupported metricdata.Type") - } -} - -// StartTime returns an empty time value as start time is not recorded when using last value -// aggregation. -func (l *LastValueData) StartTime() time.Time { - return time.Time{} -} - -// ClearStart clears the Start field from data if present. Useful for testing in cases where the -// start time will be nondeterministic. -func ClearStart(data AggregationData) { - switch data := data.(type) { - case *CountData: - data.Start = time.Time{} - case *SumData: - data.Start = time.Time{} - case *DistributionData: - data.Start = time.Time{} - } -} diff --git a/vendor/go.opencensus.io/stats/view/collector.go b/vendor/go.opencensus.io/stats/view/collector.go deleted file mode 100644 index bcd6e08c7..000000000 --- a/vendor/go.opencensus.io/stats/view/collector.go +++ /dev/null @@ -1,93 +0,0 @@ -// Copyright 2017, OpenCensus Authors -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// - -package view - -import ( - "sort" - "time" - - "go.opencensus.io/internal/tagencoding" - "go.opencensus.io/tag" -) - -type collector struct { - // signatures holds the aggregations values for each unique tag signature - // (values for all keys) to its aggregator. - signatures map[string]AggregationData - // Aggregation is the description of the aggregation to perform for this - // view. - a *Aggregation -} - -func (c *collector) addSample(s string, v float64, attachments map[string]interface{}, t time.Time) { - aggregator, ok := c.signatures[s] - if !ok { - aggregator = c.a.newData(t) - c.signatures[s] = aggregator - } - aggregator.addSample(v, attachments, t) -} - -// collectRows returns a snapshot of the collected Row values. -func (c *collector) collectedRows(keys []tag.Key) []*Row { - rows := make([]*Row, 0, len(c.signatures)) - for sig, aggregator := range c.signatures { - tags := decodeTags([]byte(sig), keys) - row := &Row{Tags: tags, Data: aggregator.clone()} - rows = append(rows, row) - } - return rows -} - -func (c *collector) clearRows() { - c.signatures = make(map[string]AggregationData) -} - -// encodeWithKeys encodes the map by using values -// only associated with the keys provided. -func encodeWithKeys(m *tag.Map, keys []tag.Key) []byte { - // Compute the buffer length we will need ahead of time to avoid resizing later - reqLen := 0 - for _, k := range keys { - s, _ := m.Value(k) - // We will store each key + its length - reqLen += len(s) + 1 - } - vb := &tagencoding.Values{ - Buffer: make([]byte, reqLen), - } - for _, k := range keys { - v, _ := m.Value(k) - vb.WriteValue([]byte(v)) - } - return vb.Bytes() -} - -// decodeTags decodes tags from the buffer and -// orders them by the keys. -func decodeTags(buf []byte, keys []tag.Key) []tag.Tag { - vb := &tagencoding.Values{Buffer: buf} - var tags []tag.Tag - for _, k := range keys { - v := vb.ReadValue() - if v != nil { - tags = append(tags, tag.Tag{Key: k, Value: string(v)}) - } - } - vb.ReadIndex = 0 - sort.Slice(tags, func(i, j int) bool { return tags[i].Key.Name() < tags[j].Key.Name() }) - return tags -} diff --git a/vendor/go.opencensus.io/stats/view/doc.go b/vendor/go.opencensus.io/stats/view/doc.go deleted file mode 100644 index 60bf0e392..000000000 --- a/vendor/go.opencensus.io/stats/view/doc.go +++ /dev/null @@ -1,47 +0,0 @@ -// Copyright 2017, OpenCensus Authors -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// - -// Package view contains support for collecting and exposing aggregates over stats. -// -// In order to collect measurements, views need to be defined and registered. -// A view allows recorded measurements to be filtered and aggregated. -// -// All recorded measurements can be grouped by a list of tags. -// -// OpenCensus provides several aggregation methods: Count, Distribution and Sum. -// -// Count only counts the number of measurement points recorded. -// Distribution provides statistical summary of the aggregated data by counting -// how many recorded measurements fall into each bucket. -// Sum adds up the measurement values. -// LastValue just keeps track of the most recently recorded measurement value. -// All aggregations are cumulative. -// -// Views can be registered and unregistered at any time during program execution. -// -// Libraries can define views but it is recommended that in most cases registering -// views be left up to applications. -// -// # Exporting -// -// Collected and aggregated data can be exported to a metric collection -// backend by registering its exporter. -// -// Multiple exporters can be registered to upload the data to various -// different back ends. -package view // import "go.opencensus.io/stats/view" - -// TODO(acetechnologist): Add a link to the language independent OpenCensus -// spec when it is available. diff --git a/vendor/go.opencensus.io/stats/view/export.go b/vendor/go.opencensus.io/stats/view/export.go deleted file mode 100644 index 73ba11f5b..000000000 --- a/vendor/go.opencensus.io/stats/view/export.go +++ /dev/null @@ -1,45 +0,0 @@ -// Copyright 2017, OpenCensus Authors -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -package view - -// Exporter exports the collected records as view data. -// -// The ExportView method should return quickly; if an -// Exporter takes a significant amount of time to -// process a Data, that work should be done on another goroutine. -// -// It is safe to assume that ExportView will not be called concurrently from -// multiple goroutines. -// -// The Data should not be modified. -type Exporter interface { - ExportView(viewData *Data) -} - -// RegisterExporter registers an exporter. -// Collected data will be reported via all the -// registered exporters. Once you no longer -// want data to be exported, invoke UnregisterExporter -// with the previously registered exporter. -// -// Binaries can register exporters, libraries shouldn't register exporters. -func RegisterExporter(e Exporter) { - defaultWorker.RegisterExporter(e) -} - -// UnregisterExporter unregisters an exporter. -func UnregisterExporter(e Exporter) { - defaultWorker.UnregisterExporter(e) -} diff --git a/vendor/go.opencensus.io/stats/view/view.go b/vendor/go.opencensus.io/stats/view/view.go deleted file mode 100644 index 293b54ecb..000000000 --- a/vendor/go.opencensus.io/stats/view/view.go +++ /dev/null @@ -1,221 +0,0 @@ -// Copyright 2017, OpenCensus Authors -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// - -package view - -import ( - "bytes" - "errors" - "fmt" - "reflect" - "sort" - "sync/atomic" - "time" - - "go.opencensus.io/metric/metricdata" - "go.opencensus.io/stats" - "go.opencensus.io/tag" -) - -// View allows users to aggregate the recorded stats.Measurements. -// Views need to be passed to the Register function before data will be -// collected and sent to Exporters. -type View struct { - Name string // Name of View. Must be unique. If unset, will default to the name of the Measure. - Description string // Description is a human-readable description for this view. - - // TagKeys are the tag keys describing the grouping of this view. - // A single Row will be produced for each combination of associated tag values. - TagKeys []tag.Key - - // Measure is a stats.Measure to aggregate in this view. - Measure stats.Measure - - // Aggregation is the aggregation function to apply to the set of Measurements. - Aggregation *Aggregation -} - -// WithName returns a copy of the View with a new name. This is useful for -// renaming views to cope with limitations placed on metric names by various -// backends. -func (v *View) WithName(name string) *View { - vNew := *v - vNew.Name = name - return &vNew -} - -// same compares two views and returns true if they represent the same aggregation. -func (v *View) same(other *View) bool { - if v == other { - return true - } - if v == nil { - return false - } - return reflect.DeepEqual(v.Aggregation, other.Aggregation) && - v.Measure.Name() == other.Measure.Name() -} - -// ErrNegativeBucketBounds error returned if histogram contains negative bounds. -// -// Deprecated: this should not be public. -var ErrNegativeBucketBounds = errors.New("negative bucket bounds not supported") - -// canonicalize canonicalizes v by setting explicit -// defaults for Name and Description and sorting the TagKeys -func (v *View) canonicalize() error { - if v.Measure == nil { - return fmt.Errorf("cannot register view %q: measure not set", v.Name) - } - if v.Aggregation == nil { - return fmt.Errorf("cannot register view %q: aggregation not set", v.Name) - } - if v.Name == "" { - v.Name = v.Measure.Name() - } - if v.Description == "" { - v.Description = v.Measure.Description() - } - if err := checkViewName(v.Name); err != nil { - return err - } - sort.Slice(v.TagKeys, func(i, j int) bool { - return v.TagKeys[i].Name() < v.TagKeys[j].Name() - }) - sort.Float64s(v.Aggregation.Buckets) - for _, b := range v.Aggregation.Buckets { - if b < 0 { - return ErrNegativeBucketBounds - } - } - // drop 0 bucket silently. - v.Aggregation.Buckets = dropZeroBounds(v.Aggregation.Buckets...) - - return nil -} - -func dropZeroBounds(bounds ...float64) []float64 { - for i, bound := range bounds { - if bound > 0 { - return bounds[i:] - } - } - return []float64{} -} - -// viewInternal is the internal representation of a View. -type viewInternal struct { - view *View // view is the canonicalized View definition associated with this view. - subscribed uint32 // 1 if someone is subscribed and data need to be exported, use atomic to access - collector *collector - metricDescriptor *metricdata.Descriptor -} - -func newViewInternal(v *View) (*viewInternal, error) { - return &viewInternal{ - view: v, - collector: &collector{make(map[string]AggregationData), v.Aggregation}, - metricDescriptor: viewToMetricDescriptor(v), - }, nil -} - -func (v *viewInternal) subscribe() { - atomic.StoreUint32(&v.subscribed, 1) -} - -func (v *viewInternal) unsubscribe() { - atomic.StoreUint32(&v.subscribed, 0) -} - -// isSubscribed returns true if the view is exporting -// data by subscription. -func (v *viewInternal) isSubscribed() bool { - return atomic.LoadUint32(&v.subscribed) == 1 -} - -func (v *viewInternal) clearRows() { - v.collector.clearRows() -} - -func (v *viewInternal) collectedRows() []*Row { - return v.collector.collectedRows(v.view.TagKeys) -} - -func (v *viewInternal) addSample(m *tag.Map, val float64, attachments map[string]interface{}, t time.Time) { - if !v.isSubscribed() { - return - } - sig := string(encodeWithKeys(m, v.view.TagKeys)) - v.collector.addSample(sig, val, attachments, t) -} - -// A Data is a set of rows about usage of the single measure associated -// with the given view. Each row is specific to a unique set of tags. -type Data struct { - View *View - Start, End time.Time - Rows []*Row -} - -// Row is the collected value for a specific set of key value pairs a.k.a tags. -type Row struct { - Tags []tag.Tag - Data AggregationData -} - -func (r *Row) String() string { - var buffer bytes.Buffer - buffer.WriteString("{ ") - buffer.WriteString("{ ") - for _, t := range r.Tags { - buffer.WriteString(fmt.Sprintf("{%v %v}", t.Key.Name(), t.Value)) - } - buffer.WriteString(" }") - buffer.WriteString(fmt.Sprintf("%v", r.Data)) - buffer.WriteString(" }") - return buffer.String() -} - -// Equal returns true if both rows are equal. Tags are expected to be ordered -// by the key name. Even if both rows have the same tags but the tags appear in -// different orders it will return false. -func (r *Row) Equal(other *Row) bool { - if r == other { - return true - } - return reflect.DeepEqual(r.Tags, other.Tags) && r.Data.equal(other.Data) -} - -const maxNameLength = 255 - -// Returns true if the given string contains only printable characters. -func isPrintable(str string) bool { - for _, r := range str { - if !(r >= ' ' && r <= '~') { - return false - } - } - return true -} - -func checkViewName(name string) error { - if len(name) > maxNameLength { - return fmt.Errorf("view name cannot be larger than %v", maxNameLength) - } - if !isPrintable(name) { - return fmt.Errorf("view name needs to be an ASCII string") - } - return nil -} diff --git a/vendor/go.opencensus.io/stats/view/view_to_metric.go b/vendor/go.opencensus.io/stats/view/view_to_metric.go deleted file mode 100644 index 57d615ec7..000000000 --- a/vendor/go.opencensus.io/stats/view/view_to_metric.go +++ /dev/null @@ -1,147 +0,0 @@ -// Copyright 2019, OpenCensus Authors -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// - -package view - -import ( - "time" - - "go.opencensus.io/resource" - - "go.opencensus.io/metric/metricdata" - "go.opencensus.io/stats" -) - -func getUnit(unit string) metricdata.Unit { - switch unit { - case "1": - return metricdata.UnitDimensionless - case "ms": - return metricdata.UnitMilliseconds - case "By": - return metricdata.UnitBytes - } - return metricdata.UnitDimensionless -} - -func getType(v *View) metricdata.Type { - m := v.Measure - agg := v.Aggregation - - switch agg.Type { - case AggTypeSum: - switch m.(type) { - case *stats.Int64Measure: - return metricdata.TypeCumulativeInt64 - case *stats.Float64Measure: - return metricdata.TypeCumulativeFloat64 - default: - panic("unexpected measure type") - } - case AggTypeDistribution: - return metricdata.TypeCumulativeDistribution - case AggTypeLastValue: - switch m.(type) { - case *stats.Int64Measure: - return metricdata.TypeGaugeInt64 - case *stats.Float64Measure: - return metricdata.TypeGaugeFloat64 - default: - panic("unexpected measure type") - } - case AggTypeCount: - switch m.(type) { - case *stats.Int64Measure: - return metricdata.TypeCumulativeInt64 - case *stats.Float64Measure: - return metricdata.TypeCumulativeInt64 - default: - panic("unexpected measure type") - } - default: - panic("unexpected aggregation type") - } -} - -func getLabelKeys(v *View) []metricdata.LabelKey { - labelKeys := []metricdata.LabelKey{} - for _, k := range v.TagKeys { - labelKeys = append(labelKeys, metricdata.LabelKey{Key: k.Name()}) - } - return labelKeys -} - -func viewToMetricDescriptor(v *View) *metricdata.Descriptor { - return &metricdata.Descriptor{ - Name: v.Name, - Description: v.Description, - Unit: convertUnit(v), - Type: getType(v), - LabelKeys: getLabelKeys(v), - } -} - -func convertUnit(v *View) metricdata.Unit { - switch v.Aggregation.Type { - case AggTypeCount: - return metricdata.UnitDimensionless - default: - return getUnit(v.Measure.Unit()) - } -} - -func toLabelValues(row *Row, expectedKeys []metricdata.LabelKey) []metricdata.LabelValue { - labelValues := []metricdata.LabelValue{} - tagMap := make(map[string]string) - for _, tag := range row.Tags { - tagMap[tag.Key.Name()] = tag.Value - } - - for _, key := range expectedKeys { - if val, ok := tagMap[key.Key]; ok { - labelValues = append(labelValues, metricdata.NewLabelValue(val)) - } else { - labelValues = append(labelValues, metricdata.LabelValue{}) - } - } - return labelValues -} - -func rowToTimeseries(v *viewInternal, row *Row, now time.Time) *metricdata.TimeSeries { - return &metricdata.TimeSeries{ - Points: []metricdata.Point{row.Data.toPoint(v.metricDescriptor.Type, now)}, - LabelValues: toLabelValues(row, v.metricDescriptor.LabelKeys), - StartTime: row.Data.StartTime(), - } -} - -func viewToMetric(v *viewInternal, r *resource.Resource, now time.Time) *metricdata.Metric { - rows := v.collectedRows() - if len(rows) == 0 { - return nil - } - - ts := []*metricdata.TimeSeries{} - for _, row := range rows { - ts = append(ts, rowToTimeseries(v, row, now)) - } - - m := &metricdata.Metric{ - Descriptor: *v.metricDescriptor, - TimeSeries: ts, - Resource: r, - } - return m -} diff --git a/vendor/go.opencensus.io/stats/view/worker.go b/vendor/go.opencensus.io/stats/view/worker.go deleted file mode 100644 index 6a79cd8a3..000000000 --- a/vendor/go.opencensus.io/stats/view/worker.go +++ /dev/null @@ -1,424 +0,0 @@ -// Copyright 2017, OpenCensus Authors -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// - -package view - -import ( - "fmt" - "sync" - "time" - - "go.opencensus.io/resource" - - "go.opencensus.io/metric/metricdata" - "go.opencensus.io/metric/metricproducer" - "go.opencensus.io/stats" - "go.opencensus.io/stats/internal" - "go.opencensus.io/tag" -) - -func init() { - defaultWorker = NewMeter().(*worker) - go defaultWorker.start() - internal.DefaultRecorder = record - internal.MeasurementRecorder = recordMeasurement -} - -type measureRef struct { - measure string - views map[*viewInternal]struct{} -} - -type worker struct { - measures map[string]*measureRef - views map[string]*viewInternal - viewStartTimes map[*viewInternal]time.Time - - timer *time.Ticker - c chan command - quit, done chan bool - mu sync.RWMutex - r *resource.Resource - - exportersMu sync.RWMutex - exporters map[Exporter]struct{} -} - -// Meter defines an interface which allows a single process to maintain -// multiple sets of metrics exports (intended for the advanced case where a -// single process wants to report metrics about multiple objects, such as -// multiple databases or HTTP services). -// -// Note that this is an advanced use case, and the static functions in this -// module should cover the common use cases. -type Meter interface { - stats.Recorder - // Find returns a registered view associated with this name. - // If no registered view is found, nil is returned. - Find(name string) *View - // Register begins collecting data for the given views. - // Once a view is registered, it reports data to the registered exporters. - Register(views ...*View) error - // Unregister the given views. Data will not longer be exported for these views - // after Unregister returns. - // It is not necessary to unregister from views you expect to collect for the - // duration of your program execution. - Unregister(views ...*View) - // SetReportingPeriod sets the interval between reporting aggregated views in - // the program. If duration is less than or equal to zero, it enables the - // default behavior. - // - // Note: each exporter makes different promises about what the lowest supported - // duration is. For example, the Stackdriver exporter recommends a value no - // lower than 1 minute. Consult each exporter per your needs. - SetReportingPeriod(time.Duration) - - // RegisterExporter registers an exporter. - // Collected data will be reported via all the - // registered exporters. Once you no longer - // want data to be exported, invoke UnregisterExporter - // with the previously registered exporter. - // - // Binaries can register exporters, libraries shouldn't register exporters. - RegisterExporter(Exporter) - // UnregisterExporter unregisters an exporter. - UnregisterExporter(Exporter) - // SetResource may be used to set the Resource associated with this registry. - // This is intended to be used in cases where a single process exports metrics - // for multiple Resources, typically in a multi-tenant situation. - SetResource(*resource.Resource) - - // Start causes the Meter to start processing Record calls and aggregating - // statistics as well as exporting data. - Start() - // Stop causes the Meter to stop processing calls and terminate data export. - Stop() - - // RetrieveData gets a snapshot of the data collected for the the view registered - // with the given name. It is intended for testing only. - RetrieveData(viewName string) ([]*Row, error) -} - -var _ Meter = (*worker)(nil) - -var defaultWorker *worker - -var defaultReportingDuration = 10 * time.Second - -// Find returns a registered view associated with this name. -// If no registered view is found, nil is returned. -func Find(name string) (v *View) { - return defaultWorker.Find(name) -} - -// Find returns a registered view associated with this name. -// If no registered view is found, nil is returned. -func (w *worker) Find(name string) (v *View) { - req := &getViewByNameReq{ - name: name, - c: make(chan *getViewByNameResp), - } - w.c <- req - resp := <-req.c - return resp.v -} - -// Register begins collecting data for the given views. -// Once a view is registered, it reports data to the registered exporters. -func Register(views ...*View) error { - return defaultWorker.Register(views...) -} - -// Register begins collecting data for the given views. -// Once a view is registered, it reports data to the registered exporters. -func (w *worker) Register(views ...*View) error { - req := ®isterViewReq{ - views: views, - err: make(chan error), - } - w.c <- req - return <-req.err -} - -// Unregister the given views. Data will not longer be exported for these views -// after Unregister returns. -// It is not necessary to unregister from views you expect to collect for the -// duration of your program execution. -func Unregister(views ...*View) { - defaultWorker.Unregister(views...) -} - -// Unregister the given views. Data will not longer be exported for these views -// after Unregister returns. -// It is not necessary to unregister from views you expect to collect for the -// duration of your program execution. -func (w *worker) Unregister(views ...*View) { - names := make([]string, len(views)) - for i := range views { - names[i] = views[i].Name - } - req := &unregisterFromViewReq{ - views: names, - done: make(chan struct{}), - } - w.c <- req - <-req.done -} - -// RetrieveData gets a snapshot of the data collected for the the view registered -// with the given name. It is intended for testing only. -func RetrieveData(viewName string) ([]*Row, error) { - return defaultWorker.RetrieveData(viewName) -} - -// RetrieveData gets a snapshot of the data collected for the the view registered -// with the given name. It is intended for testing only. -func (w *worker) RetrieveData(viewName string) ([]*Row, error) { - req := &retrieveDataReq{ - now: time.Now(), - v: viewName, - c: make(chan *retrieveDataResp), - } - w.c <- req - resp := <-req.c - return resp.rows, resp.err -} - -func record(tags *tag.Map, ms interface{}, attachments map[string]interface{}) { - defaultWorker.Record(tags, ms, attachments) -} - -func recordMeasurement(tags *tag.Map, ms []stats.Measurement, attachments map[string]interface{}) { - defaultWorker.recordMeasurement(tags, ms, attachments) -} - -// Record records a set of measurements ms associated with the given tags and attachments. -func (w *worker) Record(tags *tag.Map, ms interface{}, attachments map[string]interface{}) { - w.recordMeasurement(tags, ms.([]stats.Measurement), attachments) -} - -// recordMeasurement records a set of measurements ms associated with the given tags and attachments. -// This is the same as Record but without an interface{} type to avoid allocations -func (w *worker) recordMeasurement(tags *tag.Map, ms []stats.Measurement, attachments map[string]interface{}) { - req := &recordReq{ - tm: tags, - ms: ms, - attachments: attachments, - t: time.Now(), - } - w.c <- req -} - -// SetReportingPeriod sets the interval between reporting aggregated views in -// the program. If duration is less than or equal to zero, it enables the -// default behavior. -// -// Note: each exporter makes different promises about what the lowest supported -// duration is. For example, the Stackdriver exporter recommends a value no -// lower than 1 minute. Consult each exporter per your needs. -func SetReportingPeriod(d time.Duration) { - defaultWorker.SetReportingPeriod(d) -} - -// Stop stops the default worker. -func Stop() { - defaultWorker.Stop() -} - -// SetReportingPeriod sets the interval between reporting aggregated views in -// the program. If duration is less than or equal to zero, it enables the -// default behavior. -// -// Note: each exporter makes different promises about what the lowest supported -// duration is. For example, the Stackdriver exporter recommends a value no -// lower than 1 minute. Consult each exporter per your needs. -func (w *worker) SetReportingPeriod(d time.Duration) { - // TODO(acetechnologist): ensure that the duration d is more than a certain - // value. e.g. 1s - req := &setReportingPeriodReq{ - d: d, - c: make(chan bool), - } - w.c <- req - <-req.c // don't return until the timer is set to the new duration. -} - -// NewMeter constructs a Meter instance. You should only need to use this if -// you need to separate out Measurement recordings and View aggregations within -// a single process. -func NewMeter() Meter { - return &worker{ - measures: make(map[string]*measureRef), - views: make(map[string]*viewInternal), - viewStartTimes: make(map[*viewInternal]time.Time), - timer: time.NewTicker(defaultReportingDuration), - c: make(chan command, 1024), - quit: make(chan bool), - done: make(chan bool), - - exporters: make(map[Exporter]struct{}), - } -} - -// SetResource associates all data collected by this Meter with the specified -// resource. This resource is reported when using metricexport.ReadAndExport; -// it is not provided when used with ExportView/RegisterExporter, because that -// interface does not provide a means for reporting the Resource. -func (w *worker) SetResource(r *resource.Resource) { - w.r = r -} - -func (w *worker) Start() { - go w.start() -} - -func (w *worker) start() { - prodMgr := metricproducer.GlobalManager() - prodMgr.AddProducer(w) - - for { - select { - case cmd := <-w.c: - cmd.handleCommand(w) - case <-w.timer.C: - w.reportUsage() - case <-w.quit: - w.timer.Stop() - close(w.c) - close(w.done) - return - } - } -} - -func (w *worker) Stop() { - prodMgr := metricproducer.GlobalManager() - prodMgr.DeleteProducer(w) - select { - case <-w.quit: - default: - close(w.quit) - } - <-w.done -} - -func (w *worker) getMeasureRef(name string) *measureRef { - if mr, ok := w.measures[name]; ok { - return mr - } - mr := &measureRef{ - measure: name, - views: make(map[*viewInternal]struct{}), - } - w.measures[name] = mr - return mr -} - -func (w *worker) tryRegisterView(v *View) (*viewInternal, error) { - w.mu.Lock() - defer w.mu.Unlock() - vi, err := newViewInternal(v) - if err != nil { - return nil, err - } - if x, ok := w.views[vi.view.Name]; ok { - if !x.view.same(vi.view) { - return nil, fmt.Errorf("cannot register view %q; a different view with the same name is already registered", v.Name) - } - - // the view is already registered so there is nothing to do and the - // command is considered successful. - return x, nil - } - w.views[vi.view.Name] = vi - w.viewStartTimes[vi] = time.Now() - ref := w.getMeasureRef(vi.view.Measure.Name()) - ref.views[vi] = struct{}{} - return vi, nil -} - -func (w *worker) unregisterView(v *viewInternal) { - w.mu.Lock() - defer w.mu.Unlock() - delete(w.views, v.view.Name) - delete(w.viewStartTimes, v) - if measure := w.measures[v.view.Measure.Name()]; measure != nil { - delete(measure.views, v) - } -} - -func (w *worker) reportView(v *viewInternal) { - if !v.isSubscribed() { - return - } - rows := v.collectedRows() - viewData := &Data{ - View: v.view, - Start: w.viewStartTimes[v], - End: time.Now(), - Rows: rows, - } - w.exportersMu.Lock() - defer w.exportersMu.Unlock() - for e := range w.exporters { - e.ExportView(viewData) - } -} - -func (w *worker) reportUsage() { - w.mu.Lock() - defer w.mu.Unlock() - for _, v := range w.views { - w.reportView(v) - } -} - -func (w *worker) toMetric(v *viewInternal, now time.Time) *metricdata.Metric { - if !v.isSubscribed() { - return nil - } - - return viewToMetric(v, w.r, now) -} - -// Read reads all view data and returns them as metrics. -// It is typically invoked by metric reader to export stats in metric format. -func (w *worker) Read() []*metricdata.Metric { - w.mu.Lock() - defer w.mu.Unlock() - now := time.Now() - metrics := make([]*metricdata.Metric, 0, len(w.views)) - for _, v := range w.views { - metric := w.toMetric(v, now) - if metric != nil { - metrics = append(metrics, metric) - } - } - return metrics -} - -func (w *worker) RegisterExporter(e Exporter) { - w.exportersMu.Lock() - defer w.exportersMu.Unlock() - - w.exporters[e] = struct{}{} -} - -func (w *worker) UnregisterExporter(e Exporter) { - w.exportersMu.Lock() - defer w.exportersMu.Unlock() - - delete(w.exporters, e) -} diff --git a/vendor/go.opencensus.io/stats/view/worker_commands.go b/vendor/go.opencensus.io/stats/view/worker_commands.go deleted file mode 100644 index 9ac4cc059..000000000 --- a/vendor/go.opencensus.io/stats/view/worker_commands.go +++ /dev/null @@ -1,186 +0,0 @@ -// Copyright 2017, OpenCensus Authors -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// - -package view - -import ( - "errors" - "fmt" - "strings" - "time" - - "go.opencensus.io/stats" - "go.opencensus.io/stats/internal" - "go.opencensus.io/tag" -) - -type command interface { - handleCommand(w *worker) -} - -// getViewByNameReq is the command to get a view given its name. -type getViewByNameReq struct { - name string - c chan *getViewByNameResp -} - -type getViewByNameResp struct { - v *View -} - -func (cmd *getViewByNameReq) handleCommand(w *worker) { - v := w.views[cmd.name] - if v == nil { - cmd.c <- &getViewByNameResp{nil} - return - } - cmd.c <- &getViewByNameResp{v.view} -} - -// registerViewReq is the command to register a view. -type registerViewReq struct { - views []*View - err chan error -} - -func (cmd *registerViewReq) handleCommand(w *worker) { - for _, v := range cmd.views { - if err := v.canonicalize(); err != nil { - cmd.err <- err - return - } - } - var errstr []string - for _, view := range cmd.views { - vi, err := w.tryRegisterView(view) - if err != nil { - errstr = append(errstr, fmt.Sprintf("%s: %v", view.Name, err)) - continue - } - internal.SubscriptionReporter(view.Measure.Name()) - vi.subscribe() - } - if len(errstr) > 0 { - cmd.err <- errors.New(strings.Join(errstr, "\n")) - } else { - cmd.err <- nil - } -} - -// unregisterFromViewReq is the command to unregister to a view. Has no -// impact on the data collection for client that are pulling data from the -// library. -type unregisterFromViewReq struct { - views []string - done chan struct{} -} - -func (cmd *unregisterFromViewReq) handleCommand(w *worker) { - for _, name := range cmd.views { - vi, ok := w.views[name] - if !ok { - continue - } - - // Report pending data for this view before removing it. - w.reportView(vi) - - vi.unsubscribe() - if !vi.isSubscribed() { - // this was the last subscription and view is not collecting anymore. - // The collected data can be cleared. - vi.clearRows() - } - w.unregisterView(vi) - } - cmd.done <- struct{}{} -} - -// retrieveDataReq is the command to retrieve data for a view. -type retrieveDataReq struct { - now time.Time - v string - c chan *retrieveDataResp -} - -type retrieveDataResp struct { - rows []*Row - err error -} - -func (cmd *retrieveDataReq) handleCommand(w *worker) { - w.mu.Lock() - defer w.mu.Unlock() - vi, ok := w.views[cmd.v] - if !ok { - cmd.c <- &retrieveDataResp{ - nil, - fmt.Errorf("cannot retrieve data; view %q is not registered", cmd.v), - } - return - } - - if !vi.isSubscribed() { - cmd.c <- &retrieveDataResp{ - nil, - fmt.Errorf("cannot retrieve data; view %q has no subscriptions or collection is not forcibly started", cmd.v), - } - return - } - cmd.c <- &retrieveDataResp{ - vi.collectedRows(), - nil, - } -} - -// recordReq is the command to record data related to multiple measures -// at once. -type recordReq struct { - tm *tag.Map - ms []stats.Measurement - attachments map[string]interface{} - t time.Time -} - -func (cmd *recordReq) handleCommand(w *worker) { - w.mu.Lock() - defer w.mu.Unlock() - for _, m := range cmd.ms { - if (m == stats.Measurement{}) { // not registered - continue - } - ref := w.getMeasureRef(m.Measure().Name()) - for v := range ref.views { - v.addSample(cmd.tm, m.Value(), cmd.attachments, cmd.t) - } - } -} - -// setReportingPeriodReq is the command to modify the duration between -// reporting the collected data to the registered clients. -type setReportingPeriodReq struct { - d time.Duration - c chan bool -} - -func (cmd *setReportingPeriodReq) handleCommand(w *worker) { - w.timer.Stop() - if cmd.d <= 0 { - w.timer = time.NewTicker(defaultReportingDuration) - } else { - w.timer = time.NewTicker(cmd.d) - } - cmd.c <- true -} diff --git a/vendor/go.opencensus.io/tag/context.go b/vendor/go.opencensus.io/tag/context.go deleted file mode 100644 index b27d1b26b..000000000 --- a/vendor/go.opencensus.io/tag/context.go +++ /dev/null @@ -1,43 +0,0 @@ -// Copyright 2017, OpenCensus Authors -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// - -package tag - -import ( - "context" -) - -// FromContext returns the tag map stored in the context. -func FromContext(ctx context.Context) *Map { - // The returned tag map shouldn't be mutated. - ts := ctx.Value(mapCtxKey) - if ts == nil { - return nil - } - return ts.(*Map) -} - -// NewContext creates a new context with the given tag map. -// To propagate a tag map to downstream methods and downstream RPCs, add a tag map -// to the current context. NewContext will return a copy of the current context, -// and put the tag map into the returned one. -// If there is already a tag map in the current context, it will be replaced with m. -func NewContext(ctx context.Context, m *Map) context.Context { - return context.WithValue(ctx, mapCtxKey, m) -} - -type ctxKey struct{} - -var mapCtxKey = ctxKey{} diff --git a/vendor/go.opencensus.io/tag/doc.go b/vendor/go.opencensus.io/tag/doc.go deleted file mode 100644 index da16b74e4..000000000 --- a/vendor/go.opencensus.io/tag/doc.go +++ /dev/null @@ -1,26 +0,0 @@ -// Copyright 2017, OpenCensus Authors -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// - -/* -Package tag contains OpenCensus tags. - -Tags are key-value pairs. Tags provide additional cardinality to -the OpenCensus instrumentation data. - -Tags can be propagated on the wire and in the same -process via context.Context. Encode and Decode should be -used to represent tags into their binary propagation form. -*/ -package tag // import "go.opencensus.io/tag" diff --git a/vendor/go.opencensus.io/tag/key.go b/vendor/go.opencensus.io/tag/key.go deleted file mode 100644 index 71ec91365..000000000 --- a/vendor/go.opencensus.io/tag/key.go +++ /dev/null @@ -1,44 +0,0 @@ -// Copyright 2017, OpenCensus Authors -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// - -package tag - -// Key represents a tag key. -type Key struct { - name string -} - -// NewKey creates or retrieves a string key identified by name. -// Calling NewKey more than once with the same name returns the same key. -func NewKey(name string) (Key, error) { - if !checkKeyName(name) { - return Key{}, errInvalidKeyName - } - return Key{name: name}, nil -} - -// MustNewKey returns a key with the given name, and panics if name is an invalid key name. -func MustNewKey(name string) Key { - k, err := NewKey(name) - if err != nil { - panic(err) - } - return k -} - -// Name returns the name of the key. -func (k Key) Name() string { - return k.name -} diff --git a/vendor/go.opencensus.io/tag/map.go b/vendor/go.opencensus.io/tag/map.go deleted file mode 100644 index 0272ef85a..000000000 --- a/vendor/go.opencensus.io/tag/map.go +++ /dev/null @@ -1,229 +0,0 @@ -// Copyright 2017, OpenCensus Authors -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// - -package tag - -import ( - "bytes" - "context" - "fmt" - "sort" -) - -// Tag is a key value pair that can be propagated on wire. -type Tag struct { - Key Key - Value string -} - -type tagContent struct { - value string - m metadatas -} - -// Map is a map of tags. Use New to create a context containing -// a new Map. -type Map struct { - m map[Key]tagContent -} - -// Value returns the value for the key if a value for the key exists. -func (m *Map) Value(k Key) (string, bool) { - if m == nil { - return "", false - } - v, ok := m.m[k] - return v.value, ok -} - -func (m *Map) String() string { - if m == nil { - return "nil" - } - keys := make([]Key, 0, len(m.m)) - for k := range m.m { - keys = append(keys, k) - } - sort.Slice(keys, func(i, j int) bool { return keys[i].Name() < keys[j].Name() }) - - var buffer bytes.Buffer - buffer.WriteString("{ ") - for _, k := range keys { - buffer.WriteString(fmt.Sprintf("{%v %v}", k.name, m.m[k])) - } - buffer.WriteString(" }") - return buffer.String() -} - -func (m *Map) insert(k Key, v string, md metadatas) { - if _, ok := m.m[k]; ok { - return - } - m.m[k] = tagContent{value: v, m: md} -} - -func (m *Map) update(k Key, v string, md metadatas) { - if _, ok := m.m[k]; ok { - m.m[k] = tagContent{value: v, m: md} - } -} - -func (m *Map) upsert(k Key, v string, md metadatas) { - m.m[k] = tagContent{value: v, m: md} -} - -func (m *Map) delete(k Key) { - delete(m.m, k) -} - -func newMap() *Map { - return &Map{m: make(map[Key]tagContent)} -} - -// Mutator modifies a tag map. -type Mutator interface { - Mutate(t *Map) (*Map, error) -} - -// Insert returns a mutator that inserts a -// value associated with k. If k already exists in the tag map, -// mutator doesn't update the value. -// Metadata applies metadata to the tag. It is optional. -// Metadatas are applied in the order in which it is provided. -// If more than one metadata updates the same attribute then -// the update from the last metadata prevails. -func Insert(k Key, v string, mds ...Metadata) Mutator { - return &mutator{ - fn: func(m *Map) (*Map, error) { - if !checkValue(v) { - return nil, errInvalidValue - } - m.insert(k, v, createMetadatas(mds...)) - return m, nil - }, - } -} - -// Update returns a mutator that updates the -// value of the tag associated with k with v. If k doesn't -// exists in the tag map, the mutator doesn't insert the value. -// Metadata applies metadata to the tag. It is optional. -// Metadatas are applied in the order in which it is provided. -// If more than one metadata updates the same attribute then -// the update from the last metadata prevails. -func Update(k Key, v string, mds ...Metadata) Mutator { - return &mutator{ - fn: func(m *Map) (*Map, error) { - if !checkValue(v) { - return nil, errInvalidValue - } - m.update(k, v, createMetadatas(mds...)) - return m, nil - }, - } -} - -// Upsert returns a mutator that upserts the -// value of the tag associated with k with v. It inserts the -// value if k doesn't exist already. It mutates the value -// if k already exists. -// Metadata applies metadata to the tag. It is optional. -// Metadatas are applied in the order in which it is provided. -// If more than one metadata updates the same attribute then -// the update from the last metadata prevails. -func Upsert(k Key, v string, mds ...Metadata) Mutator { - return &mutator{ - fn: func(m *Map) (*Map, error) { - if !checkValue(v) { - return nil, errInvalidValue - } - m.upsert(k, v, createMetadatas(mds...)) - return m, nil - }, - } -} - -func createMetadatas(mds ...Metadata) metadatas { - var metas metadatas - if len(mds) > 0 { - for _, md := range mds { - if md != nil { - md(&metas) - } - } - } else { - WithTTL(TTLUnlimitedPropagation)(&metas) - } - return metas - -} - -// Delete returns a mutator that deletes -// the value associated with k. -func Delete(k Key) Mutator { - return &mutator{ - fn: func(m *Map) (*Map, error) { - m.delete(k) - return m, nil - }, - } -} - -// New returns a new context that contains a tag map -// originated from the incoming context and modified -// with the provided mutators. -func New(ctx context.Context, mutator ...Mutator) (context.Context, error) { - m := newMap() - orig := FromContext(ctx) - if orig != nil { - for k, v := range orig.m { - if !checkKeyName(k.Name()) { - return ctx, fmt.Errorf("key:%q: %v", k, errInvalidKeyName) - } - if !checkValue(v.value) { - return ctx, fmt.Errorf("key:%q value:%q: %v", k.Name(), v, errInvalidValue) - } - m.insert(k, v.value, v.m) - } - } - var err error - for _, mod := range mutator { - m, err = mod.Mutate(m) - if err != nil { - return ctx, err - } - } - return NewContext(ctx, m), nil -} - -// Do is similar to pprof.Do: a convenience for installing the tags -// from the context as Go profiler labels. This allows you to -// correlated runtime profiling with stats. -// -// It converts the key/values from the given map to Go profiler labels -// and calls pprof.Do. -// -// Do is going to do nothing if your Go version is below 1.9. -func Do(ctx context.Context, f func(ctx context.Context)) { - do(ctx, f) -} - -type mutator struct { - fn func(t *Map) (*Map, error) -} - -func (m *mutator) Mutate(t *Map) (*Map, error) { - return m.fn(t) -} diff --git a/vendor/go.opencensus.io/tag/map_codec.go b/vendor/go.opencensus.io/tag/map_codec.go deleted file mode 100644 index c242e695c..000000000 --- a/vendor/go.opencensus.io/tag/map_codec.go +++ /dev/null @@ -1,239 +0,0 @@ -// Copyright 2017, OpenCensus Authors -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// - -package tag - -import ( - "encoding/binary" - "fmt" -) - -// KeyType defines the types of keys allowed. Currently only keyTypeString is -// supported. -type keyType byte - -const ( - keyTypeString keyType = iota - keyTypeInt64 - keyTypeTrue - keyTypeFalse - - tagsVersionID = byte(0) -) - -type encoderGRPC struct { - buf []byte - writeIdx, readIdx int -} - -// writeKeyString writes the fieldID '0' followed by the key string and value -// string. -func (eg *encoderGRPC) writeTagString(k, v string) { - eg.writeByte(byte(keyTypeString)) - eg.writeStringWithVarintLen(k) - eg.writeStringWithVarintLen(v) -} - -func (eg *encoderGRPC) writeTagUint64(k string, i uint64) { - eg.writeByte(byte(keyTypeInt64)) - eg.writeStringWithVarintLen(k) - eg.writeUint64(i) -} - -func (eg *encoderGRPC) writeTagTrue(k string) { - eg.writeByte(byte(keyTypeTrue)) - eg.writeStringWithVarintLen(k) -} - -func (eg *encoderGRPC) writeTagFalse(k string) { - eg.writeByte(byte(keyTypeFalse)) - eg.writeStringWithVarintLen(k) -} - -func (eg *encoderGRPC) writeBytesWithVarintLen(bytes []byte) { - length := len(bytes) - - eg.growIfRequired(binary.MaxVarintLen64 + length) - eg.writeIdx += binary.PutUvarint(eg.buf[eg.writeIdx:], uint64(length)) - copy(eg.buf[eg.writeIdx:], bytes) - eg.writeIdx += length -} - -func (eg *encoderGRPC) writeStringWithVarintLen(s string) { - length := len(s) - - eg.growIfRequired(binary.MaxVarintLen64 + length) - eg.writeIdx += binary.PutUvarint(eg.buf[eg.writeIdx:], uint64(length)) - copy(eg.buf[eg.writeIdx:], s) - eg.writeIdx += length -} - -func (eg *encoderGRPC) writeByte(v byte) { - eg.growIfRequired(1) - eg.buf[eg.writeIdx] = v - eg.writeIdx++ -} - -func (eg *encoderGRPC) writeUint32(i uint32) { - eg.growIfRequired(4) - binary.LittleEndian.PutUint32(eg.buf[eg.writeIdx:], i) - eg.writeIdx += 4 -} - -func (eg *encoderGRPC) writeUint64(i uint64) { - eg.growIfRequired(8) - binary.LittleEndian.PutUint64(eg.buf[eg.writeIdx:], i) - eg.writeIdx += 8 -} - -func (eg *encoderGRPC) readByte() byte { - b := eg.buf[eg.readIdx] - eg.readIdx++ - return b -} - -func (eg *encoderGRPC) readUint32() uint32 { - i := binary.LittleEndian.Uint32(eg.buf[eg.readIdx:]) - eg.readIdx += 4 - return i -} - -func (eg *encoderGRPC) readUint64() uint64 { - i := binary.LittleEndian.Uint64(eg.buf[eg.readIdx:]) - eg.readIdx += 8 - return i -} - -func (eg *encoderGRPC) readBytesWithVarintLen() ([]byte, error) { - if eg.readEnded() { - return nil, fmt.Errorf("unexpected end while readBytesWithVarintLen '%x' starting at idx '%v'", eg.buf, eg.readIdx) - } - length, valueStart := binary.Uvarint(eg.buf[eg.readIdx:]) - if valueStart <= 0 { - return nil, fmt.Errorf("unexpected end while readBytesWithVarintLen '%x' starting at idx '%v'", eg.buf, eg.readIdx) - } - - valueStart += eg.readIdx - valueEnd := valueStart + int(length) - if valueEnd > len(eg.buf) { - return nil, fmt.Errorf("malformed encoding: length:%v, upper:%v, maxLength:%v", length, valueEnd, len(eg.buf)) - } - - eg.readIdx = valueEnd - return eg.buf[valueStart:valueEnd], nil -} - -func (eg *encoderGRPC) readStringWithVarintLen() (string, error) { - bytes, err := eg.readBytesWithVarintLen() - if err != nil { - return "", err - } - return string(bytes), nil -} - -func (eg *encoderGRPC) growIfRequired(expected int) { - if len(eg.buf)-eg.writeIdx < expected { - tmp := make([]byte, 2*(len(eg.buf)+1)+expected) - copy(tmp, eg.buf) - eg.buf = tmp - } -} - -func (eg *encoderGRPC) readEnded() bool { - return eg.readIdx >= len(eg.buf) -} - -func (eg *encoderGRPC) bytes() []byte { - return eg.buf[:eg.writeIdx] -} - -// Encode encodes the tag map into a []byte. It is useful to propagate -// the tag maps on wire in binary format. -func Encode(m *Map) []byte { - if m == nil { - return nil - } - eg := &encoderGRPC{ - buf: make([]byte, len(m.m)), - } - eg.writeByte(tagsVersionID) - for k, v := range m.m { - if v.m.ttl.ttl == valueTTLUnlimitedPropagation { - eg.writeByte(byte(keyTypeString)) - eg.writeStringWithVarintLen(k.name) - eg.writeBytesWithVarintLen([]byte(v.value)) - } - } - return eg.bytes() -} - -// Decode decodes the given []byte into a tag map. -func Decode(bytes []byte) (*Map, error) { - ts := newMap() - err := DecodeEach(bytes, ts.upsert) - if err != nil { - // no partial failures - return nil, err - } - return ts, nil -} - -// DecodeEach decodes the given serialized tag map, calling handler for each -// tag key and value decoded. -func DecodeEach(bytes []byte, fn func(key Key, val string, md metadatas)) error { - eg := &encoderGRPC{ - buf: bytes, - } - if len(eg.buf) == 0 { - return nil - } - - version := eg.readByte() - if version > tagsVersionID { - return fmt.Errorf("cannot decode: unsupported version: %q; supports only up to: %q", version, tagsVersionID) - } - - for !eg.readEnded() { - typ := keyType(eg.readByte()) - - if typ != keyTypeString { - return fmt.Errorf("cannot decode: invalid key type: %q", typ) - } - - k, err := eg.readBytesWithVarintLen() - if err != nil { - return err - } - - v, err := eg.readBytesWithVarintLen() - if err != nil { - return err - } - - key, err := NewKey(string(k)) - if err != nil { - return err - } - val := string(v) - if !checkValue(val) { - return errInvalidValue - } - fn(key, val, createMetadatas(WithTTL(TTLUnlimitedPropagation))) - if err != nil { - return err - } - } - return nil -} diff --git a/vendor/go.opencensus.io/tag/metadata.go b/vendor/go.opencensus.io/tag/metadata.go deleted file mode 100644 index 6571a583e..000000000 --- a/vendor/go.opencensus.io/tag/metadata.go +++ /dev/null @@ -1,52 +0,0 @@ -// Copyright 2019, OpenCensus Authors -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// - -package tag - -const ( - // valueTTLNoPropagation prevents tag from propagating. - valueTTLNoPropagation = 0 - - // valueTTLUnlimitedPropagation allows tag to propagate without any limits on number of hops. - valueTTLUnlimitedPropagation = -1 -) - -// TTL is metadata that specifies number of hops a tag can propagate. -// Details about TTL metadata is specified at https://github.com/census-instrumentation/opencensus-specs/blob/master/tags/TagMap.md#tagmetadata -type TTL struct { - ttl int -} - -var ( - // TTLUnlimitedPropagation is TTL metadata that allows tag to propagate without any limits on number of hops. - TTLUnlimitedPropagation = TTL{ttl: valueTTLUnlimitedPropagation} - - // TTLNoPropagation is TTL metadata that prevents tag from propagating. - TTLNoPropagation = TTL{ttl: valueTTLNoPropagation} -) - -type metadatas struct { - ttl TTL -} - -// Metadata applies metadatas specified by the function. -type Metadata func(*metadatas) - -// WithTTL applies metadata with provided ttl. -func WithTTL(ttl TTL) Metadata { - return func(m *metadatas) { - m.ttl = ttl - } -} diff --git a/vendor/go.opencensus.io/tag/profile_19.go b/vendor/go.opencensus.io/tag/profile_19.go deleted file mode 100644 index 8fb17226f..000000000 --- a/vendor/go.opencensus.io/tag/profile_19.go +++ /dev/null @@ -1,32 +0,0 @@ -// Copyright 2018, OpenCensus Authors -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -//go:build go1.9 -// +build go1.9 - -package tag - -import ( - "context" - "runtime/pprof" -) - -func do(ctx context.Context, f func(ctx context.Context)) { - m := FromContext(ctx) - keyvals := make([]string, 0, 2*len(m.m)) - for k, v := range m.m { - keyvals = append(keyvals, k.Name(), v.value) - } - pprof.Do(ctx, pprof.Labels(keyvals...), f) -} diff --git a/vendor/go.opencensus.io/tag/validate.go b/vendor/go.opencensus.io/tag/validate.go deleted file mode 100644 index 0939fc674..000000000 --- a/vendor/go.opencensus.io/tag/validate.go +++ /dev/null @@ -1,56 +0,0 @@ -// Copyright 2017, OpenCensus Authors -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -package tag - -import "errors" - -const ( - maxKeyLength = 255 - - // valid are restricted to US-ASCII subset (range 0x20 (' ') to 0x7e ('~')). - validKeyValueMin = 32 - validKeyValueMax = 126 -) - -var ( - errInvalidKeyName = errors.New("invalid key name: only ASCII characters accepted; max length must be 255 characters") - errInvalidValue = errors.New("invalid value: only ASCII characters accepted; max length must be 255 characters") -) - -func checkKeyName(name string) bool { - if len(name) == 0 { - return false - } - if len(name) > maxKeyLength { - return false - } - return isASCII(name) -} - -func isASCII(s string) bool { - for _, c := range s { - if (c < validKeyValueMin) || (c > validKeyValueMax) { - return false - } - } - return true -} - -func checkValue(v string) bool { - if len(v) > maxKeyLength { - return false - } - return isASCII(v) -} diff --git a/vendor/go.opencensus.io/trace/basetypes.go b/vendor/go.opencensus.io/trace/basetypes.go deleted file mode 100644 index c8e26ed63..000000000 --- a/vendor/go.opencensus.io/trace/basetypes.go +++ /dev/null @@ -1,129 +0,0 @@ -// Copyright 2017, OpenCensus Authors -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -package trace - -import ( - "fmt" - "time" -) - -type ( - // TraceID is a 16-byte identifier for a set of spans. - TraceID [16]byte - - // SpanID is an 8-byte identifier for a single span. - SpanID [8]byte -) - -func (t TraceID) String() string { - return fmt.Sprintf("%02x", t[:]) -} - -func (s SpanID) String() string { - return fmt.Sprintf("%02x", s[:]) -} - -// Annotation represents a text annotation with a set of attributes and a timestamp. -type Annotation struct { - Time time.Time - Message string - Attributes map[string]interface{} -} - -// Attribute represents a key-value pair on a span, link or annotation. -// Construct with one of: BoolAttribute, Int64Attribute, or StringAttribute. -type Attribute struct { - key string - value interface{} -} - -// Key returns the attribute's key -func (a *Attribute) Key() string { - return a.key -} - -// Value returns the attribute's value -func (a *Attribute) Value() interface{} { - return a.value -} - -// BoolAttribute returns a bool-valued attribute. -func BoolAttribute(key string, value bool) Attribute { - return Attribute{key: key, value: value} -} - -// Int64Attribute returns an int64-valued attribute. -func Int64Attribute(key string, value int64) Attribute { - return Attribute{key: key, value: value} -} - -// Float64Attribute returns a float64-valued attribute. -func Float64Attribute(key string, value float64) Attribute { - return Attribute{key: key, value: value} -} - -// StringAttribute returns a string-valued attribute. -func StringAttribute(key string, value string) Attribute { - return Attribute{key: key, value: value} -} - -// LinkType specifies the relationship between the span that had the link -// added, and the linked span. -type LinkType int32 - -// LinkType values. -const ( - LinkTypeUnspecified LinkType = iota // The relationship of the two spans is unknown. - LinkTypeChild // The linked span is a child of the current span. - LinkTypeParent // The linked span is the parent of the current span. -) - -// Link represents a reference from one span to another span. -type Link struct { - TraceID TraceID - SpanID SpanID - Type LinkType - // Attributes is a set of attributes on the link. - Attributes map[string]interface{} -} - -// MessageEventType specifies the type of message event. -type MessageEventType int32 - -// MessageEventType values. -const ( - MessageEventTypeUnspecified MessageEventType = iota // Unknown event type. - MessageEventTypeSent // Indicates a sent RPC message. - MessageEventTypeRecv // Indicates a received RPC message. -) - -// MessageEvent represents an event describing a message sent or received on the network. -type MessageEvent struct { - Time time.Time - EventType MessageEventType - MessageID int64 - UncompressedByteSize int64 - CompressedByteSize int64 -} - -// Status is the status of a Span. -type Status struct { - // Code is a status code. Zero indicates success. - // - // If Code will be propagated to Google APIs, it ideally should be a value from - // https://github.com/googleapis/googleapis/blob/master/google/rpc/code.proto . - Code int32 - Message string -} diff --git a/vendor/go.opencensus.io/trace/config.go b/vendor/go.opencensus.io/trace/config.go deleted file mode 100644 index 775f8274f..000000000 --- a/vendor/go.opencensus.io/trace/config.go +++ /dev/null @@ -1,86 +0,0 @@ -// Copyright 2018, OpenCensus Authors -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -package trace - -import ( - "sync" - - "go.opencensus.io/trace/internal" -) - -// Config represents the global tracing configuration. -type Config struct { - // DefaultSampler is the default sampler used when creating new spans. - DefaultSampler Sampler - - // IDGenerator is for internal use only. - IDGenerator internal.IDGenerator - - // MaxAnnotationEventsPerSpan is max number of annotation events per span - MaxAnnotationEventsPerSpan int - - // MaxMessageEventsPerSpan is max number of message events per span - MaxMessageEventsPerSpan int - - // MaxAnnotationEventsPerSpan is max number of attributes per span - MaxAttributesPerSpan int - - // MaxLinksPerSpan is max number of links per span - MaxLinksPerSpan int -} - -var configWriteMu sync.Mutex - -const ( - // DefaultMaxAnnotationEventsPerSpan is default max number of annotation events per span - DefaultMaxAnnotationEventsPerSpan = 32 - - // DefaultMaxMessageEventsPerSpan is default max number of message events per span - DefaultMaxMessageEventsPerSpan = 128 - - // DefaultMaxAttributesPerSpan is default max number of attributes per span - DefaultMaxAttributesPerSpan = 32 - - // DefaultMaxLinksPerSpan is default max number of links per span - DefaultMaxLinksPerSpan = 32 -) - -// ApplyConfig applies changes to the global tracing configuration. -// -// Fields not provided in the given config are going to be preserved. -func ApplyConfig(cfg Config) { - configWriteMu.Lock() - defer configWriteMu.Unlock() - c := *config.Load().(*Config) - if cfg.DefaultSampler != nil { - c.DefaultSampler = cfg.DefaultSampler - } - if cfg.IDGenerator != nil { - c.IDGenerator = cfg.IDGenerator - } - if cfg.MaxAnnotationEventsPerSpan > 0 { - c.MaxAnnotationEventsPerSpan = cfg.MaxAnnotationEventsPerSpan - } - if cfg.MaxMessageEventsPerSpan > 0 { - c.MaxMessageEventsPerSpan = cfg.MaxMessageEventsPerSpan - } - if cfg.MaxAttributesPerSpan > 0 { - c.MaxAttributesPerSpan = cfg.MaxAttributesPerSpan - } - if cfg.MaxLinksPerSpan > 0 { - c.MaxLinksPerSpan = cfg.MaxLinksPerSpan - } - config.Store(&c) -} diff --git a/vendor/go.opencensus.io/trace/doc.go b/vendor/go.opencensus.io/trace/doc.go deleted file mode 100644 index 7a1616a55..000000000 --- a/vendor/go.opencensus.io/trace/doc.go +++ /dev/null @@ -1,52 +0,0 @@ -// Copyright 2017, OpenCensus Authors -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -/* -Package trace contains support for OpenCensus distributed tracing. - -The following assumes a basic familiarity with OpenCensus concepts. -See http://opencensus.io - -# Exporting Traces - -To export collected tracing data, register at least one exporter. You can use -one of the provided exporters or write your own. - - trace.RegisterExporter(exporter) - -By default, traces will be sampled relatively rarely. To change the sampling -frequency for your entire program, call ApplyConfig. Use a ProbabilitySampler -to sample a subset of traces, or use AlwaysSample to collect a trace on every run: - - trace.ApplyConfig(trace.Config{DefaultSampler: trace.AlwaysSample()}) - -Be careful about using trace.AlwaysSample in a production application with -significant traffic: a new trace will be started and exported for every request. - -# Adding Spans to a Trace - -A trace consists of a tree of spans. In Go, the current span is carried in a -context.Context. - -It is common to want to capture all the activity of a function call in a span. For -this to work, the function must take a context.Context as a parameter. Add these two -lines to the top of the function: - - ctx, span := trace.StartSpan(ctx, "example.com/Run") - defer span.End() - -StartSpan will create a new top-level span if the context -doesn't contain another span, otherwise it will create a child span. -*/ -package trace // import "go.opencensus.io/trace" diff --git a/vendor/go.opencensus.io/trace/evictedqueue.go b/vendor/go.opencensus.io/trace/evictedqueue.go deleted file mode 100644 index ffc264f23..000000000 --- a/vendor/go.opencensus.io/trace/evictedqueue.go +++ /dev/null @@ -1,38 +0,0 @@ -// Copyright 2019, OpenCensus Authors -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -package trace - -type evictedQueue struct { - queue []interface{} - capacity int - droppedCount int -} - -func newEvictedQueue(capacity int) *evictedQueue { - eq := &evictedQueue{ - capacity: capacity, - queue: make([]interface{}, 0), - } - - return eq -} - -func (eq *evictedQueue) add(value interface{}) { - if len(eq.queue) == eq.capacity { - eq.queue = eq.queue[1:] - eq.droppedCount++ - } - eq.queue = append(eq.queue, value) -} diff --git a/vendor/go.opencensus.io/trace/export.go b/vendor/go.opencensus.io/trace/export.go deleted file mode 100644 index e0d9a4b99..000000000 --- a/vendor/go.opencensus.io/trace/export.go +++ /dev/null @@ -1,97 +0,0 @@ -// Copyright 2017, OpenCensus Authors -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -package trace - -import ( - "sync" - "sync/atomic" - "time" -) - -// Exporter is a type for functions that receive sampled trace spans. -// -// The ExportSpan method should be safe for concurrent use and should return -// quickly; if an Exporter takes a significant amount of time to process a -// SpanData, that work should be done on another goroutine. -// -// The SpanData should not be modified, but a pointer to it can be kept. -type Exporter interface { - ExportSpan(s *SpanData) -} - -type exportersMap map[Exporter]struct{} - -var ( - exporterMu sync.Mutex - exporters atomic.Value -) - -// RegisterExporter adds to the list of Exporters that will receive sampled -// trace spans. -// -// Binaries can register exporters, libraries shouldn't register exporters. -func RegisterExporter(e Exporter) { - exporterMu.Lock() - new := make(exportersMap) - if old, ok := exporters.Load().(exportersMap); ok { - for k, v := range old { - new[k] = v - } - } - new[e] = struct{}{} - exporters.Store(new) - exporterMu.Unlock() -} - -// UnregisterExporter removes from the list of Exporters the Exporter that was -// registered with the given name. -func UnregisterExporter(e Exporter) { - exporterMu.Lock() - new := make(exportersMap) - if old, ok := exporters.Load().(exportersMap); ok { - for k, v := range old { - new[k] = v - } - } - delete(new, e) - exporters.Store(new) - exporterMu.Unlock() -} - -// SpanData contains all the information collected by a Span. -type SpanData struct { - SpanContext - ParentSpanID SpanID - SpanKind int - Name string - StartTime time.Time - // The wall clock time of EndTime will be adjusted to always be offset - // from StartTime by the duration of the span. - EndTime time.Time - // The values of Attributes each have type string, bool, or int64. - Attributes map[string]interface{} - Annotations []Annotation - MessageEvents []MessageEvent - Status - Links []Link - HasRemoteParent bool - DroppedAttributeCount int - DroppedAnnotationCount int - DroppedMessageEventCount int - DroppedLinkCount int - - // ChildSpanCount holds the number of child span created for this span. - ChildSpanCount int -} diff --git a/vendor/go.opencensus.io/trace/internal/internal.go b/vendor/go.opencensus.io/trace/internal/internal.go deleted file mode 100644 index 7e808d8f3..000000000 --- a/vendor/go.opencensus.io/trace/internal/internal.go +++ /dev/null @@ -1,22 +0,0 @@ -// Copyright 2018, OpenCensus Authors -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -// Package internal provides trace internals. -package internal - -// IDGenerator allows custom generators for TraceId and SpanId. -type IDGenerator interface { - NewTraceID() [16]byte - NewSpanID() [8]byte -} diff --git a/vendor/go.opencensus.io/trace/lrumap.go b/vendor/go.opencensus.io/trace/lrumap.go deleted file mode 100644 index 80095a5f6..000000000 --- a/vendor/go.opencensus.io/trace/lrumap.go +++ /dev/null @@ -1,61 +0,0 @@ -// Copyright 2019, OpenCensus Authors -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -package trace - -import ( - "github.com/golang/groupcache/lru" -) - -// A simple lru.Cache wrapper that tracks the keys of the current contents and -// the cumulative number of evicted items. -type lruMap struct { - cacheKeys map[lru.Key]bool - cache *lru.Cache - droppedCount int -} - -func newLruMap(size int) *lruMap { - lm := &lruMap{ - cacheKeys: make(map[lru.Key]bool), - cache: lru.New(size), - droppedCount: 0, - } - lm.cache.OnEvicted = func(key lru.Key, value interface{}) { - delete(lm.cacheKeys, key) - lm.droppedCount++ - } - return lm -} - -func (lm lruMap) len() int { - return lm.cache.Len() -} - -func (lm lruMap) keys() []interface{} { - keys := make([]interface{}, 0, len(lm.cacheKeys)) - for k := range lm.cacheKeys { - keys = append(keys, k) - } - return keys -} - -func (lm *lruMap) add(key, value interface{}) { - lm.cacheKeys[lru.Key(key)] = true - lm.cache.Add(lru.Key(key), value) -} - -func (lm *lruMap) get(key interface{}) (interface{}, bool) { - return lm.cache.Get(key) -} diff --git a/vendor/go.opencensus.io/trace/propagation/propagation.go b/vendor/go.opencensus.io/trace/propagation/propagation.go deleted file mode 100644 index 1eb190a96..000000000 --- a/vendor/go.opencensus.io/trace/propagation/propagation.go +++ /dev/null @@ -1,108 +0,0 @@ -// Copyright 2017, OpenCensus Authors -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -// Package propagation implements the binary trace context format. -package propagation // import "go.opencensus.io/trace/propagation" - -// TODO: link to external spec document. - -// BinaryFormat format: -// -// Binary value: -// version_id: 1 byte representing the version id. -// -// For version_id = 0: -// -// version_format: -// field_format: -// -// Fields: -// -// TraceId: (field_id = 0, len = 16, default = "0000000000000000") - 16-byte array representing the trace_id. -// SpanId: (field_id = 1, len = 8, default = "00000000") - 8-byte array representing the span_id. -// TraceOptions: (field_id = 2, len = 1, default = "0") - 1-byte array representing the trace_options. -// -// Fields MUST be encoded using the field id order (smaller to higher). -// -// Valid value example: -// -// {0, 0, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 1, 97, -// 98, 99, 100, 101, 102, 103, 104, 2, 1} -// -// version_id = 0; -// trace_id = {64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79} -// span_id = {97, 98, 99, 100, 101, 102, 103, 104}; -// trace_options = {1}; - -import ( - "net/http" - - "go.opencensus.io/trace" -) - -// Binary returns the binary format representation of a SpanContext. -// -// If sc is the zero value, Binary returns nil. -func Binary(sc trace.SpanContext) []byte { - if sc == (trace.SpanContext{}) { - return nil - } - var b [29]byte - copy(b[2:18], sc.TraceID[:]) - b[18] = 1 - copy(b[19:27], sc.SpanID[:]) - b[27] = 2 - b[28] = uint8(sc.TraceOptions) - return b[:] -} - -// FromBinary returns the SpanContext represented by b. -// -// If b has an unsupported version ID or contains no TraceID, FromBinary -// returns with ok==false. -func FromBinary(b []byte) (sc trace.SpanContext, ok bool) { - if len(b) == 0 || b[0] != 0 { - return trace.SpanContext{}, false - } - b = b[1:] - if len(b) >= 17 && b[0] == 0 { - copy(sc.TraceID[:], b[1:17]) - b = b[17:] - } else { - return trace.SpanContext{}, false - } - if len(b) >= 9 && b[0] == 1 { - copy(sc.SpanID[:], b[1:9]) - b = b[9:] - } - if len(b) >= 2 && b[0] == 2 { - sc.TraceOptions = trace.TraceOptions(b[1]) - } - return sc, true -} - -// HTTPFormat implementations propagate span contexts -// in HTTP requests. -// -// SpanContextFromRequest extracts a span context from incoming -// requests. -// -// SpanContextToRequest modifies the given request to include the given -// span context. -type HTTPFormat interface { - SpanContextFromRequest(req *http.Request) (sc trace.SpanContext, ok bool) - SpanContextToRequest(sc trace.SpanContext, req *http.Request) -} - -// TODO(jbd): Find a more representative but short name for HTTPFormat. diff --git a/vendor/go.opencensus.io/trace/sampling.go b/vendor/go.opencensus.io/trace/sampling.go deleted file mode 100644 index 71c10f9e3..000000000 --- a/vendor/go.opencensus.io/trace/sampling.go +++ /dev/null @@ -1,75 +0,0 @@ -// Copyright 2017, OpenCensus Authors -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -package trace - -import ( - "encoding/binary" -) - -const defaultSamplingProbability = 1e-4 - -// Sampler decides whether a trace should be sampled and exported. -type Sampler func(SamplingParameters) SamplingDecision - -// SamplingParameters contains the values passed to a Sampler. -type SamplingParameters struct { - ParentContext SpanContext - TraceID TraceID - SpanID SpanID - Name string - HasRemoteParent bool -} - -// SamplingDecision is the value returned by a Sampler. -type SamplingDecision struct { - Sample bool -} - -// ProbabilitySampler returns a Sampler that samples a given fraction of traces. -// -// It also samples spans whose parents are sampled. -func ProbabilitySampler(fraction float64) Sampler { - if !(fraction >= 0) { - fraction = 0 - } else if fraction >= 1 { - return AlwaysSample() - } - - traceIDUpperBound := uint64(fraction * (1 << 63)) - return Sampler(func(p SamplingParameters) SamplingDecision { - if p.ParentContext.IsSampled() { - return SamplingDecision{Sample: true} - } - x := binary.BigEndian.Uint64(p.TraceID[0:8]) >> 1 - return SamplingDecision{Sample: x < traceIDUpperBound} - }) -} - -// AlwaysSample returns a Sampler that samples every trace. -// Be careful about using this sampler in a production application with -// significant traffic: a new trace will be started and exported for every -// request. -func AlwaysSample() Sampler { - return func(p SamplingParameters) SamplingDecision { - return SamplingDecision{Sample: true} - } -} - -// NeverSample returns a Sampler that samples no traces. -func NeverSample() Sampler { - return func(p SamplingParameters) SamplingDecision { - return SamplingDecision{Sample: false} - } -} diff --git a/vendor/go.opencensus.io/trace/spanbucket.go b/vendor/go.opencensus.io/trace/spanbucket.go deleted file mode 100644 index fbabad34c..000000000 --- a/vendor/go.opencensus.io/trace/spanbucket.go +++ /dev/null @@ -1,130 +0,0 @@ -// Copyright 2017, OpenCensus Authors -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -package trace - -import ( - "time" -) - -// samplePeriod is the minimum time between accepting spans in a single bucket. -const samplePeriod = time.Second - -// defaultLatencies contains the default latency bucket bounds. -// TODO: consider defaults, make configurable -var defaultLatencies = [...]time.Duration{ - 10 * time.Microsecond, - 100 * time.Microsecond, - time.Millisecond, - 10 * time.Millisecond, - 100 * time.Millisecond, - time.Second, - 10 * time.Second, - time.Minute, -} - -// bucket is a container for a set of spans for a particular error code or latency range. -type bucket struct { - nextTime time.Time // next time we can accept a span - buffer []*SpanData // circular buffer of spans - nextIndex int // location next SpanData should be placed in buffer - overflow bool // whether the circular buffer has wrapped around -} - -func makeBucket(bufferSize int) bucket { - return bucket{ - buffer: make([]*SpanData, bufferSize), - } -} - -// add adds a span to the bucket, if nextTime has been reached. -func (b *bucket) add(s *SpanData) { - if s.EndTime.Before(b.nextTime) { - return - } - if len(b.buffer) == 0 { - return - } - b.nextTime = s.EndTime.Add(samplePeriod) - b.buffer[b.nextIndex] = s - b.nextIndex++ - if b.nextIndex == len(b.buffer) { - b.nextIndex = 0 - b.overflow = true - } -} - -// size returns the number of spans in the bucket. -func (b *bucket) size() int { - if b.overflow { - return len(b.buffer) - } - return b.nextIndex -} - -// span returns the ith span in the bucket. -func (b *bucket) span(i int) *SpanData { - if !b.overflow { - return b.buffer[i] - } - if i < len(b.buffer)-b.nextIndex { - return b.buffer[b.nextIndex+i] - } - return b.buffer[b.nextIndex+i-len(b.buffer)] -} - -// resize changes the size of the bucket to n, keeping up to n existing spans. -func (b *bucket) resize(n int) { - cur := b.size() - newBuffer := make([]*SpanData, n) - if cur < n { - for i := 0; i < cur; i++ { - newBuffer[i] = b.span(i) - } - b.buffer = newBuffer - b.nextIndex = cur - b.overflow = false - return - } - for i := 0; i < n; i++ { - newBuffer[i] = b.span(i + cur - n) - } - b.buffer = newBuffer - b.nextIndex = 0 - b.overflow = true -} - -// latencyBucket returns the appropriate bucket number for a given latency. -func latencyBucket(latency time.Duration) int { - i := 0 - for i < len(defaultLatencies) && latency >= defaultLatencies[i] { - i++ - } - return i -} - -// latencyBucketBounds returns the lower and upper bounds for a latency bucket -// number. -// -// The lower bound is inclusive, the upper bound is exclusive (except for the -// last bucket.) -func latencyBucketBounds(index int) (lower time.Duration, upper time.Duration) { - if index == 0 { - return 0, defaultLatencies[index] - } - if index == len(defaultLatencies) { - return defaultLatencies[index-1], 1<<63 - 1 - } - return defaultLatencies[index-1], defaultLatencies[index] -} diff --git a/vendor/go.opencensus.io/trace/spanstore.go b/vendor/go.opencensus.io/trace/spanstore.go deleted file mode 100644 index e601f76f2..000000000 --- a/vendor/go.opencensus.io/trace/spanstore.go +++ /dev/null @@ -1,308 +0,0 @@ -// Copyright 2017, OpenCensus Authors -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -package trace - -import ( - "sync" - "time" - - "go.opencensus.io/internal" -) - -const ( - maxBucketSize = 100000 - defaultBucketSize = 10 -) - -var ( - ssmu sync.RWMutex // protects spanStores - spanStores = make(map[string]*spanStore) -) - -// This exists purely to avoid exposing internal methods used by z-Pages externally. -type internalOnly struct{} - -func init() { - //TODO(#412): remove - internal.Trace = &internalOnly{} -} - -// ReportActiveSpans returns the active spans for the given name. -func (i internalOnly) ReportActiveSpans(name string) []*SpanData { - s := spanStoreForName(name) - if s == nil { - return nil - } - var out []*SpanData - s.mu.Lock() - defer s.mu.Unlock() - for activeSpan := range s.active { - if s, ok := activeSpan.(*span); ok { - out = append(out, s.makeSpanData()) - } - } - return out -} - -// ReportSpansByError returns a sample of error spans. -// -// If code is nonzero, only spans with that status code are returned. -func (i internalOnly) ReportSpansByError(name string, code int32) []*SpanData { - s := spanStoreForName(name) - if s == nil { - return nil - } - var out []*SpanData - s.mu.Lock() - defer s.mu.Unlock() - if code != 0 { - if b, ok := s.errors[code]; ok { - for _, sd := range b.buffer { - if sd == nil { - break - } - out = append(out, sd) - } - } - } else { - for _, b := range s.errors { - for _, sd := range b.buffer { - if sd == nil { - break - } - out = append(out, sd) - } - } - } - return out -} - -// ConfigureBucketSizes sets the number of spans to keep per latency and error -// bucket for different span names. -func (i internalOnly) ConfigureBucketSizes(bcs []internal.BucketConfiguration) { - for _, bc := range bcs { - latencyBucketSize := bc.MaxRequestsSucceeded - if latencyBucketSize < 0 { - latencyBucketSize = 0 - } - if latencyBucketSize > maxBucketSize { - latencyBucketSize = maxBucketSize - } - errorBucketSize := bc.MaxRequestsErrors - if errorBucketSize < 0 { - errorBucketSize = 0 - } - if errorBucketSize > maxBucketSize { - errorBucketSize = maxBucketSize - } - spanStoreSetSize(bc.Name, latencyBucketSize, errorBucketSize) - } -} - -// ReportSpansPerMethod returns a summary of what spans are being stored for each span name. -func (i internalOnly) ReportSpansPerMethod() map[string]internal.PerMethodSummary { - out := make(map[string]internal.PerMethodSummary) - ssmu.RLock() - defer ssmu.RUnlock() - for name, s := range spanStores { - s.mu.Lock() - p := internal.PerMethodSummary{ - Active: len(s.active), - } - for code, b := range s.errors { - p.ErrorBuckets = append(p.ErrorBuckets, internal.ErrorBucketSummary{ - ErrorCode: code, - Size: b.size(), - }) - } - for i, b := range s.latency { - min, max := latencyBucketBounds(i) - p.LatencyBuckets = append(p.LatencyBuckets, internal.LatencyBucketSummary{ - MinLatency: min, - MaxLatency: max, - Size: b.size(), - }) - } - s.mu.Unlock() - out[name] = p - } - return out -} - -// ReportSpansByLatency returns a sample of successful spans. -// -// minLatency is the minimum latency of spans to be returned. -// maxLatency, if nonzero, is the maximum latency of spans to be returned. -func (i internalOnly) ReportSpansByLatency(name string, minLatency, maxLatency time.Duration) []*SpanData { - s := spanStoreForName(name) - if s == nil { - return nil - } - var out []*SpanData - s.mu.Lock() - defer s.mu.Unlock() - for i, b := range s.latency { - min, max := latencyBucketBounds(i) - if i+1 != len(s.latency) && max <= minLatency { - continue - } - if maxLatency != 0 && maxLatency < min { - continue - } - for _, sd := range b.buffer { - if sd == nil { - break - } - if minLatency != 0 || maxLatency != 0 { - d := sd.EndTime.Sub(sd.StartTime) - if d < minLatency { - continue - } - if maxLatency != 0 && d > maxLatency { - continue - } - } - out = append(out, sd) - } - } - return out -} - -// spanStore keeps track of spans stored for a particular span name. -// -// It contains all active spans; a sample of spans for failed requests, -// categorized by error code; and a sample of spans for successful requests, -// bucketed by latency. -type spanStore struct { - mu sync.Mutex // protects everything below. - active map[SpanInterface]struct{} - errors map[int32]*bucket - latency []bucket - maxSpansPerErrorBucket int -} - -// newSpanStore creates a span store. -func newSpanStore(name string, latencyBucketSize int, errorBucketSize int) *spanStore { - s := &spanStore{ - active: make(map[SpanInterface]struct{}), - latency: make([]bucket, len(defaultLatencies)+1), - maxSpansPerErrorBucket: errorBucketSize, - } - for i := range s.latency { - s.latency[i] = makeBucket(latencyBucketSize) - } - return s -} - -// spanStoreForName returns the spanStore for the given name. -// -// It returns nil if it doesn't exist. -func spanStoreForName(name string) *spanStore { - var s *spanStore - ssmu.RLock() - s, _ = spanStores[name] - ssmu.RUnlock() - return s -} - -// spanStoreForNameCreateIfNew returns the spanStore for the given name. -// -// It creates it if it didn't exist. -func spanStoreForNameCreateIfNew(name string) *spanStore { - ssmu.RLock() - s, ok := spanStores[name] - ssmu.RUnlock() - if ok { - return s - } - ssmu.Lock() - defer ssmu.Unlock() - s, ok = spanStores[name] - if ok { - return s - } - s = newSpanStore(name, defaultBucketSize, defaultBucketSize) - spanStores[name] = s - return s -} - -// spanStoreSetSize resizes the spanStore for the given name. -// -// It creates it if it didn't exist. -func spanStoreSetSize(name string, latencyBucketSize int, errorBucketSize int) { - ssmu.RLock() - s, ok := spanStores[name] - ssmu.RUnlock() - if ok { - s.resize(latencyBucketSize, errorBucketSize) - return - } - ssmu.Lock() - defer ssmu.Unlock() - s, ok = spanStores[name] - if ok { - s.resize(latencyBucketSize, errorBucketSize) - return - } - s = newSpanStore(name, latencyBucketSize, errorBucketSize) - spanStores[name] = s -} - -func (s *spanStore) resize(latencyBucketSize int, errorBucketSize int) { - s.mu.Lock() - for i := range s.latency { - s.latency[i].resize(latencyBucketSize) - } - for _, b := range s.errors { - b.resize(errorBucketSize) - } - s.maxSpansPerErrorBucket = errorBucketSize - s.mu.Unlock() -} - -// add adds a span to the active bucket of the spanStore. -func (s *spanStore) add(span SpanInterface) { - s.mu.Lock() - s.active[span] = struct{}{} - s.mu.Unlock() -} - -// finished removes a span from the active set, and adds a corresponding -// SpanData to a latency or error bucket. -func (s *spanStore) finished(span SpanInterface, sd *SpanData) { - latency := sd.EndTime.Sub(sd.StartTime) - if latency < 0 { - latency = 0 - } - code := sd.Status.Code - - s.mu.Lock() - delete(s.active, span) - if code == 0 { - s.latency[latencyBucket(latency)].add(sd) - } else { - if s.errors == nil { - s.errors = make(map[int32]*bucket) - } - if b := s.errors[code]; b != nil { - b.add(sd) - } else { - b := makeBucket(s.maxSpansPerErrorBucket) - s.errors[code] = &b - b.add(sd) - } - } - s.mu.Unlock() -} diff --git a/vendor/go.opencensus.io/trace/status_codes.go b/vendor/go.opencensus.io/trace/status_codes.go deleted file mode 100644 index ec60effd1..000000000 --- a/vendor/go.opencensus.io/trace/status_codes.go +++ /dev/null @@ -1,37 +0,0 @@ -// Copyright 2018, OpenCensus Authors -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -package trace - -// Status codes for use with Span.SetStatus. These correspond to the status -// codes used by gRPC defined here: https://github.com/googleapis/googleapis/blob/master/google/rpc/code.proto -const ( - StatusCodeOK = 0 - StatusCodeCancelled = 1 - StatusCodeUnknown = 2 - StatusCodeInvalidArgument = 3 - StatusCodeDeadlineExceeded = 4 - StatusCodeNotFound = 5 - StatusCodeAlreadyExists = 6 - StatusCodePermissionDenied = 7 - StatusCodeResourceExhausted = 8 - StatusCodeFailedPrecondition = 9 - StatusCodeAborted = 10 - StatusCodeOutOfRange = 11 - StatusCodeUnimplemented = 12 - StatusCodeInternal = 13 - StatusCodeUnavailable = 14 - StatusCodeDataLoss = 15 - StatusCodeUnauthenticated = 16 -) diff --git a/vendor/go.opencensus.io/trace/trace.go b/vendor/go.opencensus.io/trace/trace.go deleted file mode 100644 index 861df9d39..000000000 --- a/vendor/go.opencensus.io/trace/trace.go +++ /dev/null @@ -1,595 +0,0 @@ -// Copyright 2017, OpenCensus Authors -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -package trace - -import ( - "context" - crand "crypto/rand" - "encoding/binary" - "fmt" - "math/rand" - "sync" - "sync/atomic" - "time" - - "go.opencensus.io/internal" - "go.opencensus.io/trace/tracestate" -) - -type tracer struct{} - -var _ Tracer = &tracer{} - -// Span represents a span of a trace. It has an associated SpanContext, and -// stores data accumulated while the span is active. -// -// Ideally users should interact with Spans by calling the functions in this -// package that take a Context parameter. -type span struct { - // data contains information recorded about the span. - // - // It will be non-nil if we are exporting the span or recording events for it. - // Otherwise, data is nil, and the Span is simply a carrier for the - // SpanContext, so that the trace ID is propagated. - data *SpanData - mu sync.Mutex // protects the contents of *data (but not the pointer value.) - spanContext SpanContext - - // lruAttributes are capped at configured limit. When the capacity is reached an oldest entry - // is removed to create room for a new entry. - lruAttributes *lruMap - - // annotations are stored in FIFO queue capped by configured limit. - annotations *evictedQueue - - // messageEvents are stored in FIFO queue capped by configured limit. - messageEvents *evictedQueue - - // links are stored in FIFO queue capped by configured limit. - links *evictedQueue - - // spanStore is the spanStore this span belongs to, if any, otherwise it is nil. - *spanStore - endOnce sync.Once - - executionTracerTaskEnd func() // ends the execution tracer span -} - -// IsRecordingEvents returns true if events are being recorded for this span. -// Use this check to avoid computing expensive annotations when they will never -// be used. -func (s *span) IsRecordingEvents() bool { - if s == nil { - return false - } - return s.data != nil -} - -// TraceOptions contains options associated with a trace span. -type TraceOptions uint32 - -// IsSampled returns true if the span will be exported. -func (sc SpanContext) IsSampled() bool { - return sc.TraceOptions.IsSampled() -} - -// setIsSampled sets the TraceOptions bit that determines whether the span will be exported. -func (sc *SpanContext) setIsSampled(sampled bool) { - if sampled { - sc.TraceOptions |= 1 - } else { - sc.TraceOptions &= ^TraceOptions(1) - } -} - -// IsSampled returns true if the span will be exported. -func (t TraceOptions) IsSampled() bool { - return t&1 == 1 -} - -// SpanContext contains the state that must propagate across process boundaries. -// -// SpanContext is not an implementation of context.Context. -// TODO: add reference to external Census docs for SpanContext. -type SpanContext struct { - TraceID TraceID - SpanID SpanID - TraceOptions TraceOptions - Tracestate *tracestate.Tracestate -} - -type contextKey struct{} - -// FromContext returns the Span stored in a context, or nil if there isn't one. -func (t *tracer) FromContext(ctx context.Context) *Span { - s, _ := ctx.Value(contextKey{}).(*Span) - return s -} - -// NewContext returns a new context with the given Span attached. -func (t *tracer) NewContext(parent context.Context, s *Span) context.Context { - return context.WithValue(parent, contextKey{}, s) -} - -// All available span kinds. Span kind must be either one of these values. -const ( - SpanKindUnspecified = iota - SpanKindServer - SpanKindClient -) - -// StartOptions contains options concerning how a span is started. -type StartOptions struct { - // Sampler to consult for this Span. If provided, it is always consulted. - // - // If not provided, then the behavior differs based on whether - // the parent of this Span is remote, local, or there is no parent. - // In the case of a remote parent or no parent, the - // default sampler (see Config) will be consulted. Otherwise, - // when there is a non-remote parent, no new sampling decision will be made: - // we will preserve the sampling of the parent. - Sampler Sampler - - // SpanKind represents the kind of a span. If none is set, - // SpanKindUnspecified is used. - SpanKind int -} - -// StartOption apply changes to StartOptions. -type StartOption func(*StartOptions) - -// WithSpanKind makes new spans to be created with the given kind. -func WithSpanKind(spanKind int) StartOption { - return func(o *StartOptions) { - o.SpanKind = spanKind - } -} - -// WithSampler makes new spans to be be created with a custom sampler. -// Otherwise, the global sampler is used. -func WithSampler(sampler Sampler) StartOption { - return func(o *StartOptions) { - o.Sampler = sampler - } -} - -// StartSpan starts a new child span of the current span in the context. If -// there is no span in the context, creates a new trace and span. -// -// Returned context contains the newly created span. You can use it to -// propagate the returned span in process. -func (t *tracer) StartSpan(ctx context.Context, name string, o ...StartOption) (context.Context, *Span) { - var opts StartOptions - var parent SpanContext - if p := t.FromContext(ctx); p != nil { - if ps, ok := p.internal.(*span); ok { - ps.addChild() - } - parent = p.SpanContext() - } - for _, op := range o { - op(&opts) - } - span := startSpanInternal(name, parent != SpanContext{}, parent, false, opts) - - ctx, end := startExecutionTracerTask(ctx, name) - span.executionTracerTaskEnd = end - extSpan := NewSpan(span) - return t.NewContext(ctx, extSpan), extSpan -} - -// StartSpanWithRemoteParent starts a new child span of the span from the given parent. -// -// If the incoming context contains a parent, it ignores. StartSpanWithRemoteParent is -// preferred for cases where the parent is propagated via an incoming request. -// -// Returned context contains the newly created span. You can use it to -// propagate the returned span in process. -func (t *tracer) StartSpanWithRemoteParent(ctx context.Context, name string, parent SpanContext, o ...StartOption) (context.Context, *Span) { - var opts StartOptions - for _, op := range o { - op(&opts) - } - span := startSpanInternal(name, parent != SpanContext{}, parent, true, opts) - ctx, end := startExecutionTracerTask(ctx, name) - span.executionTracerTaskEnd = end - extSpan := NewSpan(span) - return t.NewContext(ctx, extSpan), extSpan -} - -func startSpanInternal(name string, hasParent bool, parent SpanContext, remoteParent bool, o StartOptions) *span { - s := &span{} - s.spanContext = parent - - cfg := config.Load().(*Config) - if gen, ok := cfg.IDGenerator.(*defaultIDGenerator); ok { - // lazy initialization - gen.init() - } - - if !hasParent { - s.spanContext.TraceID = cfg.IDGenerator.NewTraceID() - } - s.spanContext.SpanID = cfg.IDGenerator.NewSpanID() - sampler := cfg.DefaultSampler - - if !hasParent || remoteParent || o.Sampler != nil { - // If this span is the child of a local span and no Sampler is set in the - // options, keep the parent's TraceOptions. - // - // Otherwise, consult the Sampler in the options if it is non-nil, otherwise - // the default sampler. - if o.Sampler != nil { - sampler = o.Sampler - } - s.spanContext.setIsSampled(sampler(SamplingParameters{ - ParentContext: parent, - TraceID: s.spanContext.TraceID, - SpanID: s.spanContext.SpanID, - Name: name, - HasRemoteParent: remoteParent}).Sample) - } - - if !internal.LocalSpanStoreEnabled && !s.spanContext.IsSampled() { - return s - } - - s.data = &SpanData{ - SpanContext: s.spanContext, - StartTime: time.Now(), - SpanKind: o.SpanKind, - Name: name, - HasRemoteParent: remoteParent, - } - s.lruAttributes = newLruMap(cfg.MaxAttributesPerSpan) - s.annotations = newEvictedQueue(cfg.MaxAnnotationEventsPerSpan) - s.messageEvents = newEvictedQueue(cfg.MaxMessageEventsPerSpan) - s.links = newEvictedQueue(cfg.MaxLinksPerSpan) - - if hasParent { - s.data.ParentSpanID = parent.SpanID - } - if internal.LocalSpanStoreEnabled { - var ss *spanStore - ss = spanStoreForNameCreateIfNew(name) - if ss != nil { - s.spanStore = ss - ss.add(s) - } - } - - return s -} - -// End ends the span. -func (s *span) End() { - if s == nil { - return - } - if s.executionTracerTaskEnd != nil { - s.executionTracerTaskEnd() - } - if !s.IsRecordingEvents() { - return - } - s.endOnce.Do(func() { - exp, _ := exporters.Load().(exportersMap) - mustExport := s.spanContext.IsSampled() && len(exp) > 0 - if s.spanStore != nil || mustExport { - sd := s.makeSpanData() - sd.EndTime = internal.MonotonicEndTime(sd.StartTime) - if s.spanStore != nil { - s.spanStore.finished(s, sd) - } - if mustExport { - for e := range exp { - e.ExportSpan(sd) - } - } - } - }) -} - -// makeSpanData produces a SpanData representing the current state of the Span. -// It requires that s.data is non-nil. -func (s *span) makeSpanData() *SpanData { - var sd SpanData - s.mu.Lock() - sd = *s.data - if s.lruAttributes.len() > 0 { - sd.Attributes = s.lruAttributesToAttributeMap() - sd.DroppedAttributeCount = s.lruAttributes.droppedCount - } - if len(s.annotations.queue) > 0 { - sd.Annotations = s.interfaceArrayToAnnotationArray() - sd.DroppedAnnotationCount = s.annotations.droppedCount - } - if len(s.messageEvents.queue) > 0 { - sd.MessageEvents = s.interfaceArrayToMessageEventArray() - sd.DroppedMessageEventCount = s.messageEvents.droppedCount - } - if len(s.links.queue) > 0 { - sd.Links = s.interfaceArrayToLinksArray() - sd.DroppedLinkCount = s.links.droppedCount - } - s.mu.Unlock() - return &sd -} - -// SpanContext returns the SpanContext of the span. -func (s *span) SpanContext() SpanContext { - if s == nil { - return SpanContext{} - } - return s.spanContext -} - -// SetName sets the name of the span, if it is recording events. -func (s *span) SetName(name string) { - if !s.IsRecordingEvents() { - return - } - s.mu.Lock() - s.data.Name = name - s.mu.Unlock() -} - -// SetStatus sets the status of the span, if it is recording events. -func (s *span) SetStatus(status Status) { - if !s.IsRecordingEvents() { - return - } - s.mu.Lock() - s.data.Status = status - s.mu.Unlock() -} - -func (s *span) interfaceArrayToLinksArray() []Link { - linksArr := make([]Link, 0, len(s.links.queue)) - for _, value := range s.links.queue { - linksArr = append(linksArr, value.(Link)) - } - return linksArr -} - -func (s *span) interfaceArrayToMessageEventArray() []MessageEvent { - messageEventArr := make([]MessageEvent, 0, len(s.messageEvents.queue)) - for _, value := range s.messageEvents.queue { - messageEventArr = append(messageEventArr, value.(MessageEvent)) - } - return messageEventArr -} - -func (s *span) interfaceArrayToAnnotationArray() []Annotation { - annotationArr := make([]Annotation, 0, len(s.annotations.queue)) - for _, value := range s.annotations.queue { - annotationArr = append(annotationArr, value.(Annotation)) - } - return annotationArr -} - -func (s *span) lruAttributesToAttributeMap() map[string]interface{} { - attributes := make(map[string]interface{}, s.lruAttributes.len()) - for _, key := range s.lruAttributes.keys() { - value, ok := s.lruAttributes.get(key) - if ok { - keyStr := key.(string) - attributes[keyStr] = value - } - } - return attributes -} - -func (s *span) copyToCappedAttributes(attributes []Attribute) { - for _, a := range attributes { - s.lruAttributes.add(a.key, a.value) - } -} - -func (s *span) addChild() { - if !s.IsRecordingEvents() { - return - } - s.mu.Lock() - s.data.ChildSpanCount++ - s.mu.Unlock() -} - -// AddAttributes sets attributes in the span. -// -// Existing attributes whose keys appear in the attributes parameter are overwritten. -func (s *span) AddAttributes(attributes ...Attribute) { - if !s.IsRecordingEvents() { - return - } - s.mu.Lock() - s.copyToCappedAttributes(attributes) - s.mu.Unlock() -} - -func (s *span) printStringInternal(attributes []Attribute, str string) { - now := time.Now() - var am map[string]interface{} - if len(attributes) != 0 { - am = make(map[string]interface{}, len(attributes)) - for _, attr := range attributes { - am[attr.key] = attr.value - } - } - s.mu.Lock() - s.annotations.add(Annotation{ - Time: now, - Message: str, - Attributes: am, - }) - s.mu.Unlock() -} - -// Annotate adds an annotation with attributes. -// Attributes can be nil. -func (s *span) Annotate(attributes []Attribute, str string) { - if !s.IsRecordingEvents() { - return - } - s.printStringInternal(attributes, str) -} - -// Annotatef adds an annotation with attributes. -func (s *span) Annotatef(attributes []Attribute, format string, a ...interface{}) { - if !s.IsRecordingEvents() { - return - } - s.printStringInternal(attributes, fmt.Sprintf(format, a...)) -} - -// AddMessageSendEvent adds a message send event to the span. -// -// messageID is an identifier for the message, which is recommended to be -// unique in this span and the same between the send event and the receive -// event (this allows to identify a message between the sender and receiver). -// For example, this could be a sequence id. -func (s *span) AddMessageSendEvent(messageID, uncompressedByteSize, compressedByteSize int64) { - if !s.IsRecordingEvents() { - return - } - now := time.Now() - s.mu.Lock() - s.messageEvents.add(MessageEvent{ - Time: now, - EventType: MessageEventTypeSent, - MessageID: messageID, - UncompressedByteSize: uncompressedByteSize, - CompressedByteSize: compressedByteSize, - }) - s.mu.Unlock() -} - -// AddMessageReceiveEvent adds a message receive event to the span. -// -// messageID is an identifier for the message, which is recommended to be -// unique in this span and the same between the send event and the receive -// event (this allows to identify a message between the sender and receiver). -// For example, this could be a sequence id. -func (s *span) AddMessageReceiveEvent(messageID, uncompressedByteSize, compressedByteSize int64) { - if !s.IsRecordingEvents() { - return - } - now := time.Now() - s.mu.Lock() - s.messageEvents.add(MessageEvent{ - Time: now, - EventType: MessageEventTypeRecv, - MessageID: messageID, - UncompressedByteSize: uncompressedByteSize, - CompressedByteSize: compressedByteSize, - }) - s.mu.Unlock() -} - -// AddLink adds a link to the span. -func (s *span) AddLink(l Link) { - if !s.IsRecordingEvents() { - return - } - s.mu.Lock() - s.links.add(l) - s.mu.Unlock() -} - -func (s *span) String() string { - if s == nil { - return "" - } - if s.data == nil { - return fmt.Sprintf("span %s", s.spanContext.SpanID) - } - s.mu.Lock() - str := fmt.Sprintf("span %s %q", s.spanContext.SpanID, s.data.Name) - s.mu.Unlock() - return str -} - -var config atomic.Value // access atomically - -func init() { - config.Store(&Config{ - DefaultSampler: ProbabilitySampler(defaultSamplingProbability), - IDGenerator: &defaultIDGenerator{}, - MaxAttributesPerSpan: DefaultMaxAttributesPerSpan, - MaxAnnotationEventsPerSpan: DefaultMaxAnnotationEventsPerSpan, - MaxMessageEventsPerSpan: DefaultMaxMessageEventsPerSpan, - MaxLinksPerSpan: DefaultMaxLinksPerSpan, - }) -} - -type defaultIDGenerator struct { - sync.Mutex - - // Please keep these as the first fields - // so that these 8 byte fields will be aligned on addresses - // divisible by 8, on both 32-bit and 64-bit machines when - // performing atomic increments and accesses. - // See: - // * https://github.com/census-instrumentation/opencensus-go/issues/587 - // * https://github.com/census-instrumentation/opencensus-go/issues/865 - // * https://golang.org/pkg/sync/atomic/#pkg-note-BUG - nextSpanID uint64 - spanIDInc uint64 - - traceIDAdd [2]uint64 - traceIDRand *rand.Rand - - initOnce sync.Once -} - -// init initializes the generator on the first call to avoid consuming entropy -// unnecessarily. -func (gen *defaultIDGenerator) init() { - gen.initOnce.Do(func() { - // initialize traceID and spanID generators. - var rngSeed int64 - for _, p := range []interface{}{ - &rngSeed, &gen.traceIDAdd, &gen.nextSpanID, &gen.spanIDInc, - } { - binary.Read(crand.Reader, binary.LittleEndian, p) - } - gen.traceIDRand = rand.New(rand.NewSource(rngSeed)) - gen.spanIDInc |= 1 - }) -} - -// NewSpanID returns a non-zero span ID from a randomly-chosen sequence. -func (gen *defaultIDGenerator) NewSpanID() [8]byte { - var id uint64 - for id == 0 { - id = atomic.AddUint64(&gen.nextSpanID, gen.spanIDInc) - } - var sid [8]byte - binary.LittleEndian.PutUint64(sid[:], id) - return sid -} - -// NewTraceID returns a non-zero trace ID from a randomly-chosen sequence. -// mu should be held while this function is called. -func (gen *defaultIDGenerator) NewTraceID() [16]byte { - var tid [16]byte - // Construct the trace ID from two outputs of traceIDRand, with a constant - // added to each half for additional entropy. - gen.Lock() - binary.LittleEndian.PutUint64(tid[0:8], gen.traceIDRand.Uint64()+gen.traceIDAdd[0]) - binary.LittleEndian.PutUint64(tid[8:16], gen.traceIDRand.Uint64()+gen.traceIDAdd[1]) - gen.Unlock() - return tid -} diff --git a/vendor/go.opencensus.io/trace/trace_api.go b/vendor/go.opencensus.io/trace/trace_api.go deleted file mode 100644 index 9e2c3a999..000000000 --- a/vendor/go.opencensus.io/trace/trace_api.go +++ /dev/null @@ -1,265 +0,0 @@ -// Copyright 2020, OpenCensus Authors -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -package trace - -import ( - "context" -) - -// DefaultTracer is the tracer used when package-level exported functions are invoked. -var DefaultTracer Tracer = &tracer{} - -// Tracer can start spans and access context functions. -type Tracer interface { - - // StartSpan starts a new child span of the current span in the context. If - // there is no span in the context, creates a new trace and span. - // - // Returned context contains the newly created span. You can use it to - // propagate the returned span in process. - StartSpan(ctx context.Context, name string, o ...StartOption) (context.Context, *Span) - - // StartSpanWithRemoteParent starts a new child span of the span from the given parent. - // - // If the incoming context contains a parent, it ignores. StartSpanWithRemoteParent is - // preferred for cases where the parent is propagated via an incoming request. - // - // Returned context contains the newly created span. You can use it to - // propagate the returned span in process. - StartSpanWithRemoteParent(ctx context.Context, name string, parent SpanContext, o ...StartOption) (context.Context, *Span) - - // FromContext returns the Span stored in a context, or nil if there isn't one. - FromContext(ctx context.Context) *Span - - // NewContext returns a new context with the given Span attached. - NewContext(parent context.Context, s *Span) context.Context -} - -// StartSpan starts a new child span of the current span in the context. If -// there is no span in the context, creates a new trace and span. -// -// Returned context contains the newly created span. You can use it to -// propagate the returned span in process. -func StartSpan(ctx context.Context, name string, o ...StartOption) (context.Context, *Span) { - return DefaultTracer.StartSpan(ctx, name, o...) -} - -// StartSpanWithRemoteParent starts a new child span of the span from the given parent. -// -// If the incoming context contains a parent, it ignores. StartSpanWithRemoteParent is -// preferred for cases where the parent is propagated via an incoming request. -// -// Returned context contains the newly created span. You can use it to -// propagate the returned span in process. -func StartSpanWithRemoteParent(ctx context.Context, name string, parent SpanContext, o ...StartOption) (context.Context, *Span) { - return DefaultTracer.StartSpanWithRemoteParent(ctx, name, parent, o...) -} - -// FromContext returns the Span stored in a context, or a Span that is not -// recording events if there isn't one. -func FromContext(ctx context.Context) *Span { - return DefaultTracer.FromContext(ctx) -} - -// NewContext returns a new context with the given Span attached. -func NewContext(parent context.Context, s *Span) context.Context { - return DefaultTracer.NewContext(parent, s) -} - -// SpanInterface represents a span of a trace. It has an associated SpanContext, and -// stores data accumulated while the span is active. -// -// Ideally users should interact with Spans by calling the functions in this -// package that take a Context parameter. -type SpanInterface interface { - - // IsRecordingEvents returns true if events are being recorded for this span. - // Use this check to avoid computing expensive annotations when they will never - // be used. - IsRecordingEvents() bool - - // End ends the span. - End() - - // SpanContext returns the SpanContext of the span. - SpanContext() SpanContext - - // SetName sets the name of the span, if it is recording events. - SetName(name string) - - // SetStatus sets the status of the span, if it is recording events. - SetStatus(status Status) - - // AddAttributes sets attributes in the span. - // - // Existing attributes whose keys appear in the attributes parameter are overwritten. - AddAttributes(attributes ...Attribute) - - // Annotate adds an annotation with attributes. - // Attributes can be nil. - Annotate(attributes []Attribute, str string) - - // Annotatef adds an annotation with attributes. - Annotatef(attributes []Attribute, format string, a ...interface{}) - - // AddMessageSendEvent adds a message send event to the span. - // - // messageID is an identifier for the message, which is recommended to be - // unique in this span and the same between the send event and the receive - // event (this allows to identify a message between the sender and receiver). - // For example, this could be a sequence id. - AddMessageSendEvent(messageID, uncompressedByteSize, compressedByteSize int64) - - // AddMessageReceiveEvent adds a message receive event to the span. - // - // messageID is an identifier for the message, which is recommended to be - // unique in this span and the same between the send event and the receive - // event (this allows to identify a message between the sender and receiver). - // For example, this could be a sequence id. - AddMessageReceiveEvent(messageID, uncompressedByteSize, compressedByteSize int64) - - // AddLink adds a link to the span. - AddLink(l Link) - - // String prints a string representation of a span. - String() string -} - -// NewSpan is a convenience function for creating a *Span out of a *span -func NewSpan(s SpanInterface) *Span { - return &Span{internal: s} -} - -// Span is a struct wrapper around the SpanInt interface, which allows correctly handling -// nil spans, while also allowing the SpanInterface implementation to be swapped out. -type Span struct { - internal SpanInterface -} - -// Internal returns the underlying implementation of the Span -func (s *Span) Internal() SpanInterface { - return s.internal -} - -// IsRecordingEvents returns true if events are being recorded for this span. -// Use this check to avoid computing expensive annotations when they will never -// be used. -func (s *Span) IsRecordingEvents() bool { - if s == nil { - return false - } - return s.internal.IsRecordingEvents() -} - -// End ends the span. -func (s *Span) End() { - if s == nil { - return - } - s.internal.End() -} - -// SpanContext returns the SpanContext of the span. -func (s *Span) SpanContext() SpanContext { - if s == nil { - return SpanContext{} - } - return s.internal.SpanContext() -} - -// SetName sets the name of the span, if it is recording events. -func (s *Span) SetName(name string) { - if !s.IsRecordingEvents() { - return - } - s.internal.SetName(name) -} - -// SetStatus sets the status of the span, if it is recording events. -func (s *Span) SetStatus(status Status) { - if !s.IsRecordingEvents() { - return - } - s.internal.SetStatus(status) -} - -// AddAttributes sets attributes in the span. -// -// Existing attributes whose keys appear in the attributes parameter are overwritten. -func (s *Span) AddAttributes(attributes ...Attribute) { - if !s.IsRecordingEvents() { - return - } - s.internal.AddAttributes(attributes...) -} - -// Annotate adds an annotation with attributes. -// Attributes can be nil. -func (s *Span) Annotate(attributes []Attribute, str string) { - if !s.IsRecordingEvents() { - return - } - s.internal.Annotate(attributes, str) -} - -// Annotatef adds an annotation with attributes. -func (s *Span) Annotatef(attributes []Attribute, format string, a ...interface{}) { - if !s.IsRecordingEvents() { - return - } - s.internal.Annotatef(attributes, format, a...) -} - -// AddMessageSendEvent adds a message send event to the span. -// -// messageID is an identifier for the message, which is recommended to be -// unique in this span and the same between the send event and the receive -// event (this allows to identify a message between the sender and receiver). -// For example, this could be a sequence id. -func (s *Span) AddMessageSendEvent(messageID, uncompressedByteSize, compressedByteSize int64) { - if !s.IsRecordingEvents() { - return - } - s.internal.AddMessageSendEvent(messageID, uncompressedByteSize, compressedByteSize) -} - -// AddMessageReceiveEvent adds a message receive event to the span. -// -// messageID is an identifier for the message, which is recommended to be -// unique in this span and the same between the send event and the receive -// event (this allows to identify a message between the sender and receiver). -// For example, this could be a sequence id. -func (s *Span) AddMessageReceiveEvent(messageID, uncompressedByteSize, compressedByteSize int64) { - if !s.IsRecordingEvents() { - return - } - s.internal.AddMessageReceiveEvent(messageID, uncompressedByteSize, compressedByteSize) -} - -// AddLink adds a link to the span. -func (s *Span) AddLink(l Link) { - if !s.IsRecordingEvents() { - return - } - s.internal.AddLink(l) -} - -// String prints a string representation of a span. -func (s *Span) String() string { - if s == nil { - return "" - } - return s.internal.String() -} diff --git a/vendor/go.opencensus.io/trace/trace_go11.go b/vendor/go.opencensus.io/trace/trace_go11.go deleted file mode 100644 index b8fc1e495..000000000 --- a/vendor/go.opencensus.io/trace/trace_go11.go +++ /dev/null @@ -1,33 +0,0 @@ -// Copyright 2018, OpenCensus Authors -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -//go:build go1.11 -// +build go1.11 - -package trace - -import ( - "context" - t "runtime/trace" -) - -func startExecutionTracerTask(ctx context.Context, name string) (context.Context, func()) { - if !t.IsEnabled() { - // Avoid additional overhead if - // runtime/trace is not enabled. - return ctx, func() {} - } - nctx, task := t.NewTask(ctx, name) - return nctx, task.End -} diff --git a/vendor/go.opencensus.io/trace/trace_nongo11.go b/vendor/go.opencensus.io/trace/trace_nongo11.go deleted file mode 100644 index da488fc87..000000000 --- a/vendor/go.opencensus.io/trace/trace_nongo11.go +++ /dev/null @@ -1,26 +0,0 @@ -// Copyright 2018, OpenCensus Authors -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -//go:build !go1.11 -// +build !go1.11 - -package trace - -import ( - "context" -) - -func startExecutionTracerTask(ctx context.Context, name string) (context.Context, func()) { - return ctx, func() {} -} diff --git a/vendor/go.opencensus.io/trace/tracestate/tracestate.go b/vendor/go.opencensus.io/trace/tracestate/tracestate.go deleted file mode 100644 index 2d6c713eb..000000000 --- a/vendor/go.opencensus.io/trace/tracestate/tracestate.go +++ /dev/null @@ -1,147 +0,0 @@ -// Copyright 2018, OpenCensus Authors -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -// Package tracestate implements support for the Tracestate header of the -// W3C TraceContext propagation format. -package tracestate - -import ( - "fmt" - "regexp" -) - -const ( - keyMaxSize = 256 - valueMaxSize = 256 - maxKeyValuePairs = 32 -) - -const ( - keyWithoutVendorFormat = `[a-z][_0-9a-z\-\*\/]{0,255}` - keyWithVendorFormat = `[a-z][_0-9a-z\-\*\/]{0,240}@[a-z][_0-9a-z\-\*\/]{0,13}` - keyFormat = `(` + keyWithoutVendorFormat + `)|(` + keyWithVendorFormat + `)` - valueFormat = `[\x20-\x2b\x2d-\x3c\x3e-\x7e]{0,255}[\x21-\x2b\x2d-\x3c\x3e-\x7e]` -) - -var keyValidationRegExp = regexp.MustCompile(`^(` + keyFormat + `)$`) -var valueValidationRegExp = regexp.MustCompile(`^(` + valueFormat + `)$`) - -// Tracestate represents tracing-system specific context in a list of key-value pairs. Tracestate allows different -// vendors propagate additional information and inter-operate with their legacy Id formats. -type Tracestate struct { - entries []Entry -} - -// Entry represents one key-value pair in a list of key-value pair of Tracestate. -type Entry struct { - // Key is an opaque string up to 256 characters printable. It MUST begin with a lowercase letter, - // and can only contain lowercase letters a-z, digits 0-9, underscores _, dashes -, asterisks *, and - // forward slashes /. - Key string - - // Value is an opaque string up to 256 characters printable ASCII RFC0020 characters (i.e., the - // range 0x20 to 0x7E) except comma , and =. - Value string -} - -// Entries returns a slice of Entry. -func (ts *Tracestate) Entries() []Entry { - if ts == nil { - return nil - } - return ts.entries -} - -func (ts *Tracestate) remove(key string) *Entry { - for index, entry := range ts.entries { - if entry.Key == key { - ts.entries = append(ts.entries[:index], ts.entries[index+1:]...) - return &entry - } - } - return nil -} - -func (ts *Tracestate) add(entries []Entry) error { - for _, entry := range entries { - ts.remove(entry.Key) - } - if len(ts.entries)+len(entries) > maxKeyValuePairs { - return fmt.Errorf("adding %d key-value pairs to current %d pairs exceeds the limit of %d", - len(entries), len(ts.entries), maxKeyValuePairs) - } - ts.entries = append(entries, ts.entries...) - return nil -} - -func isValid(entry Entry) bool { - return keyValidationRegExp.MatchString(entry.Key) && - valueValidationRegExp.MatchString(entry.Value) -} - -func containsDuplicateKey(entries ...Entry) (string, bool) { - keyMap := make(map[string]int) - for _, entry := range entries { - if _, ok := keyMap[entry.Key]; ok { - return entry.Key, true - } - keyMap[entry.Key] = 1 - } - return "", false -} - -func areEntriesValid(entries ...Entry) (*Entry, bool) { - for _, entry := range entries { - if !isValid(entry) { - return &entry, false - } - } - return nil, true -} - -// New creates a Tracestate object from a parent and/or entries (key-value pair). -// Entries from the parent are copied if present. The entries passed to this function -// are inserted in front of those copied from the parent. If an entry copied from the -// parent contains the same key as one of the entry in entries then the entry copied -// from the parent is removed. See add func. -// -// An error is returned with nil Tracestate if -// 1. one or more entry in entries is invalid. -// 2. two or more entries in the input entries have the same key. -// 3. the number of entries combined from the parent and the input entries exceeds maxKeyValuePairs. -// (duplicate entry is counted only once). -func New(parent *Tracestate, entries ...Entry) (*Tracestate, error) { - if parent == nil && len(entries) == 0 { - return nil, nil - } - if entry, ok := areEntriesValid(entries...); !ok { - return nil, fmt.Errorf("key-value pair {%s, %s} is invalid", entry.Key, entry.Value) - } - - if key, duplicate := containsDuplicateKey(entries...); duplicate { - return nil, fmt.Errorf("contains duplicate keys (%s)", key) - } - - tracestate := Tracestate{} - - if parent != nil && len(parent.entries) > 0 { - tracestate.entries = append([]Entry{}, parent.entries...) - } - - err := tracestate.add(entries) - if err != nil { - return nil, err - } - return &tracestate, nil -} diff --git a/vendor/go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp/config.go b/vendor/go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp/config.go index f7338b7e5..a7d4b2a81 100644 --- a/vendor/go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp/config.go +++ b/vendor/go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp/config.go @@ -194,6 +194,9 @@ func WithServerName(server string) Option { // WithMetricAttributesFn returns an Option to set a function that maps an HTTP request to a slice of attribute.KeyValue. // These attributes will be included in metrics for every request. +// +// Deprecated: WithMetricAttributesFn is deprecated and will be removed in a +// future release. Use [Labeler] instead. func WithMetricAttributesFn(metricAttributesFn func(r *http.Request) []attribute.KeyValue) Option { return optionFunc(func(c *config) { c.MetricAttributesFn = metricAttributesFn diff --git a/vendor/go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp/handler.go b/vendor/go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp/handler.go index 1ecd4be2d..a269fce0f 100644 --- a/vendor/go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp/handler.go +++ b/vendor/go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp/handler.go @@ -184,30 +184,26 @@ func (h *middleware) serveHTTP(w http.ResponseWriter, r *http.Request, next http statusCode := rww.StatusCode() bytesWritten := rww.BytesWritten() span.SetStatus(h.semconv.Status(statusCode)) + bytesRead := bw.BytesRead() span.SetAttributes(h.semconv.ResponseTraceAttrs(semconv.ResponseTelemetry{ StatusCode: statusCode, - ReadBytes: bw.BytesRead(), + ReadBytes: bytesRead, ReadError: bw.Error(), WriteBytes: bytesWritten, WriteError: rww.Error(), })...) - // Use floating point division here for higher precision (instead of Millisecond method). - elapsedTime := float64(time.Since(requestStartTime)) / float64(time.Millisecond) - - metricAttributes := semconv.MetricAttributes{ - Req: r, - StatusCode: statusCode, - AdditionalAttributes: append(labeler.Get(), h.metricAttributesFromRequest(r)...), - } - h.semconv.RecordMetrics(ctx, semconv.ServerMetricData{ - ServerName: h.server, - ResponseSize: bytesWritten, - MetricAttributes: metricAttributes, + ServerName: h.server, + ResponseSize: bytesWritten, + MetricAttributes: semconv.MetricAttributes{ + Req: r, + StatusCode: statusCode, + AdditionalAttributes: append(labeler.Get(), h.metricAttributesFromRequest(r)...), + }, MetricData: semconv.MetricData{ - RequestSize: bw.BytesRead(), - ElapsedTime: elapsedTime, + RequestSize: bytesRead, + RequestDuration: time.Since(requestStartTime), }, }) } diff --git a/vendor/go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp/internal/request/resp_writer_wrapper.go b/vendor/go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp/internal/request/resp_writer_wrapper.go index ca2e4c14c..f29f9b7c9 100644 --- a/vendor/go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp/internal/request/resp_writer_wrapper.go +++ b/vendor/go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp/internal/request/resp_writer_wrapper.go @@ -61,7 +61,7 @@ func (w *RespWriterWrapper) Write(p []byte) (int, error) { // WriteHeader persists initial statusCode for span attribution. // All calls to WriteHeader will be propagated to the underlying ResponseWriter -// and will persist the statusCode from the first call. +// and will persist the statusCode from the first call (except for informational response status codes). // Blocking consecutive calls to WriteHeader alters expected behavior and will // remove warning logs from net/http where developers will notice incorrect handler implementations. func (w *RespWriterWrapper) WriteHeader(statusCode int) { @@ -77,6 +77,13 @@ func (w *RespWriterWrapper) WriteHeader(statusCode int) { // parent method. func (w *RespWriterWrapper) writeHeader(statusCode int) { if !w.wroteHeader { + // Ignore informational response status codes. + // Based on https://github.com/golang/go/blob/go1.24.1/src/net/http/server.go#L1216 + if statusCode >= 100 && statusCode <= 199 && statusCode != http.StatusSwitchingProtocols { + w.ResponseWriter.WriteHeader(statusCode) + return + } + w.wroteHeader = true w.statusCode = statusCode } diff --git a/vendor/go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp/internal/semconv/client.go b/vendor/go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp/internal/semconv/client.go index 29d6f508c..1398d85c2 100644 --- a/vendor/go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp/internal/semconv/client.go +++ b/vendor/go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp/internal/semconv/client.go @@ -19,11 +19,11 @@ import ( "go.opentelemetry.io/otel/attribute" "go.opentelemetry.io/otel/codes" "go.opentelemetry.io/otel/metric" - "go.opentelemetry.io/otel/semconv/v1.39.0" - "go.opentelemetry.io/otel/semconv/v1.39.0/httpconv" + "go.opentelemetry.io/otel/semconv/v1.40.0" + "go.opentelemetry.io/otel/semconv/v1.40.0/httpconv" ) -type HTTPClient struct{ +type HTTPClient struct { requestBodySize httpconv.ClientRequestBodySize requestDuration httpconv.ClientRequestDuration } @@ -57,14 +57,14 @@ func (n HTTPClient) Status(code int) (codes.Code, string) { // RequestTraceAttrs returns trace attributes for an HTTP request made by a client. func (n HTTPClient) RequestTraceAttrs(req *http.Request) []attribute.KeyValue { /* - below attributes are returned: - - http.request.method - - http.request.method.original - - url.full - - server.address - - server.port - - network.protocol.name - - network.protocol.version + below attributes are returned: + - http.request.method + - http.request.method.original + - url.full + - server.address + - server.port + - network.protocol.name + - network.protocol.version */ numOfAttributes := 3 // URL, server address, proto, and method. @@ -139,9 +139,9 @@ func (n HTTPClient) RequestTraceAttrs(req *http.Request) []attribute.KeyValue { // ResponseTraceAttrs returns trace attributes for an HTTP response made by a client. func (n HTTPClient) ResponseTraceAttrs(resp *http.Response) []attribute.KeyValue { /* - below attributes are returned: - - http.response.status_code - - error.type + below attributes are returned: + - http.response.status_code + - error.type */ var count int if resp.StatusCode > 0 { @@ -247,22 +247,26 @@ func (o MetricOpts) AddOptions() metric.AddOption { return o.addOptions } -func (n HTTPClient) MetricOptions(ma MetricAttributes) map[string]MetricOpts { - opts := map[string]MetricOpts{} - +func (n HTTPClient) MetricOptions(ma MetricAttributes) MetricOpts { attributes := n.MetricAttributes(ma.Req, ma.StatusCode, ma.AdditionalAttributes) set := metric.WithAttributeSet(attribute.NewSet(attributes...)) - opts["new"] = MetricOpts{ + + return MetricOpts{ measurement: set, addOptions: set, } - - return opts } -func (n HTTPClient) RecordMetrics(ctx context.Context, md MetricData, opts map[string]MetricOpts) { - n.requestBodySize.Inst().Record(ctx, md.RequestSize, opts["new"].MeasurementOption()) - n.requestDuration.Inst().Record(ctx, md.ElapsedTime/1000, opts["new"].MeasurementOption()) +func (n HTTPClient) RecordMetrics(ctx context.Context, md MetricData, opts MetricOpts) { + recordOpts := metricRecordOptionPool.Get().(*[]metric.RecordOption) + defer func() { + *recordOpts = (*recordOpts)[:0] + metricRecordOptionPool.Put(recordOpts) + }() + *recordOpts = append(*recordOpts, opts.MeasurementOption()) + + n.requestBodySize.Inst().Record(ctx, md.RequestSize, *recordOpts...) + n.requestDuration.Inst().Record(ctx, durationToSeconds(md.RequestDuration), *recordOpts...) } // TraceAttributes returns attributes for httptrace. diff --git a/vendor/go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp/internal/semconv/server.go b/vendor/go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp/internal/semconv/server.go index e0e9ebc05..6dcf1b5b5 100644 --- a/vendor/go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp/internal/semconv/server.go +++ b/vendor/go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp/internal/semconv/server.go @@ -15,12 +15,13 @@ import ( "slices" "strings" "sync" + "time" "go.opentelemetry.io/otel/attribute" "go.opentelemetry.io/otel/codes" "go.opentelemetry.io/otel/metric" - "go.opentelemetry.io/otel/semconv/v1.39.0" - "go.opentelemetry.io/otel/semconv/v1.39.0/httpconv" + "go.opentelemetry.io/otel/semconv/v1.40.0" + "go.opentelemetry.io/otel/semconv/v1.40.0/httpconv" ) type RequestTraceAttrsOpts struct { @@ -36,7 +37,7 @@ type ResponseTelemetry struct { WriteError error } -type HTTPServer struct{ +type HTTPServer struct { requestBodySizeHistogram httpconv.ServerRequestBodySize responseBodySizeHistogram httpconv.ServerResponseBodySize requestDurationHistogram httpconv.ServerRequestDuration @@ -245,19 +246,11 @@ type MetricAttributes struct { } type MetricData struct { - RequestSize int64 - - // The request duration, in milliseconds - ElapsedTime float64 + RequestSize int64 + RequestDuration time.Duration } var ( - metricAddOptionPool = &sync.Pool{ - New: func() any { - return &[]metric.AddOption{} - }, - } - metricRecordOptionPool = &sync.Pool{ New: func() any { return &[]metric.RecordOption{} @@ -272,7 +265,7 @@ func (n HTTPServer) RecordMetrics(ctx context.Context, md ServerMetricData) { *recordOpts = append(*recordOpts, o) n.requestBodySizeHistogram.Inst().Record(ctx, md.RequestSize, *recordOpts...) n.responseBodySizeHistogram.Inst().Record(ctx, md.ResponseSize, *recordOpts...) - n.requestDurationHistogram.Inst().Record(ctx, md.ElapsedTime/1000.0, o) + n.requestDurationHistogram.Inst().Record(ctx, durationToSeconds(md.RequestDuration), o) *recordOpts = (*recordOpts)[:0] metricRecordOptionPool.Put(recordOpts) } @@ -373,8 +366,8 @@ func (n HTTPServer) MetricAttributes(server string, req *http.Request, statusCod } if route != "" { - num++ - } + num++ + } attributes := slices.Grow(additionalAttributes, num) attributes = append(attributes, @@ -397,7 +390,7 @@ func (n HTTPServer) MetricAttributes(server string, req *http.Request, statusCod } if route != "" { - attributes = append(attributes, semconv.HTTPRoute(route)) - } + attributes = append(attributes, semconv.HTTPRoute(route)) + } return attributes } diff --git a/vendor/go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp/internal/semconv/util.go b/vendor/go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp/internal/semconv/util.go index 131fda489..2eab2ecab 100644 --- a/vendor/go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp/internal/semconv/util.go +++ b/vendor/go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp/internal/semconv/util.go @@ -11,10 +11,11 @@ import ( "net/http" "strconv" "strings" + "time" "go.opentelemetry.io/otel" "go.opentelemetry.io/otel/attribute" - semconvNew "go.opentelemetry.io/otel/semconv/v1.39.0" + semconvNew "go.opentelemetry.io/otel/semconv/v1.40.0" ) // SplitHostPort splits a network address hostport of the form "host", @@ -125,3 +126,8 @@ func standardizeHTTPMethod(method string) string { } return method } + +func durationToSeconds(d time.Duration) float64 { + // Use floating point division here for higher precision (instead of Seconds method). + return float64(d) / float64(time.Second) +} diff --git a/vendor/go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp/transport.go b/vendor/go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp/transport.go index 59b6c5498..d8d204d1f 100644 --- a/vendor/go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp/transport.go +++ b/vendor/go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp/transport.go @@ -5,7 +5,6 @@ package otelhttp // import "go.opentelemetry.io/contrib/instrumentation/net/http import ( "context" - "fmt" "io" "net/http" "net/http/httptrace" @@ -16,7 +15,7 @@ import ( "go.opentelemetry.io/otel/attribute" "go.opentelemetry.io/otel/codes" "go.opentelemetry.io/otel/propagation" - otelsemconv "go.opentelemetry.io/otel/semconv/v1.39.0" + otelsemconv "go.opentelemetry.io/otel/semconv/v1.40.0" "go.opentelemetry.io/otel/trace" "go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp/internal/request" @@ -85,8 +84,6 @@ func defaultTransportFormatter(_ string, r *http.Request) string { // RoundTrip creates a Span and propagates its context via the provided request's headers // before handing the request to the configured base RoundTripper. The created span will // end when the response body is closed or when a read from the body returns io.EOF. -// If GetBody returns an error, the error is reported via otel.Handle and the request -// continues with the original Body. func (t *Transport) RoundTrip(r *http.Request) (*http.Response, error) { requestStartTime := time.Now() for _, f := range t.filters { @@ -106,9 +103,7 @@ func (t *Transport) RoundTrip(r *http.Request) (*http.Response, error) { } } - opts := append([]trace.SpanStartOption{}, t.spanStartOptions...) // start with the configured options - - ctx, span := tracer.Start(r.Context(), t.spanNameFormatter("", r), opts...) + ctx, span := tracer.Start(r.Context(), t.spanNameFormatter("", r), t.spanStartOptions...) if t.clientTrace != nil { ctx = httptrace.WithClientTrace(ctx, t.clientTrace(ctx)) @@ -121,23 +116,26 @@ func (t *Transport) RoundTrip(r *http.Request) (*http.Response, error) { r = r.Clone(ctx) // According to RoundTripper spec, we shouldn't modify the origin request. - // GetBody is preferred over direct access to Body if the function is set. - // If the resulting body is nil or is NoBody, we don't want to mutate the body as it - // will affect the identity of it in an unforeseeable way because we assert - // ReadCloser fulfills a certain interface and it is indeed nil or NoBody. - body := r.Body - if r.GetBody != nil { - b, err := r.GetBody() - if err != nil { - otel.Handle(fmt.Errorf("http.Request GetBody returned an error: %w", err)) - } else { - body = b + var lastBW *request.BodyWrapper // Records the last body wrapper. Can be nil. + maybeWrapBody := func(body io.ReadCloser) io.ReadCloser { + if body == nil || body == http.NoBody { + return body } + bw := request.NewBodyWrapper(body, func(int64) {}) + lastBW = bw + return bw } - - bw := request.NewBodyWrapper(body, func(int64) {}) - if body != nil && body != http.NoBody { - r.Body = bw + r.Body = maybeWrapBody(r.Body) + if r.GetBody != nil { + originalGetBody := r.GetBody + r.GetBody = func() (io.ReadCloser, error) { + b, err := originalGetBody() + if err != nil { + lastBW = nil // The underlying transport will fail to make a retry request, hence, record no data. + return nil, err + } + return maybeWrapBody(b), nil + } } span.SetAttributes(t.semconv.RequestTraceAttrs(r)...) @@ -145,35 +143,27 @@ func (t *Transport) RoundTrip(r *http.Request) (*http.Response, error) { res, err := t.rt.RoundTrip(r) - // Defer metrics recording function to record the metrics on error or no error. - defer func() { - metricAttributes := semconv.MetricAttributes{ + // Record the metrics on error or no error. + statusCode := 0 + if err == nil { + statusCode = res.StatusCode + } + var requestSize int64 + if lastBW != nil { + requestSize = lastBW.BytesRead() + } + t.semconv.RecordMetrics( + ctx, + semconv.MetricData{ + RequestSize: requestSize, + RequestDuration: time.Since(requestStartTime), + }, + t.semconv.MetricOptions(semconv.MetricAttributes{ Req: r, + StatusCode: statusCode, AdditionalAttributes: append(labeler.Get(), t.metricAttributesFromRequest(r)...), - } - - if err == nil { - metricAttributes.StatusCode = res.StatusCode - } - - metricOpts := t.semconv.MetricOptions(metricAttributes) - - metricData := semconv.MetricData{ - RequestSize: bw.BytesRead(), - } - - if err == nil { - readRecordFunc := func(int64) {} - res.Body = newWrappedBody(span, readRecordFunc, res.Body) - } - - // Use floating point division here for higher precision (instead of Millisecond method). - elapsedTime := float64(time.Since(requestStartTime)) / float64(time.Millisecond) - - metricData.ElapsedTime = elapsedTime - - t.semconv.RecordMetrics(ctx, metricData, metricOpts) - }() + }), + ) if err != nil { span.SetAttributes(otelsemconv.ErrorType(err)) @@ -183,6 +173,8 @@ func (t *Transport) RoundTrip(r *http.Request) (*http.Response, error) { return res, err } + readRecordFunc := func(int64) {} + res.Body = newWrappedBody(span, readRecordFunc, res.Body) // traces span.SetAttributes(t.semconv.ResponseTraceAttrs(res)...) span.SetStatus(t.semconv.Status(res.StatusCode)) diff --git a/vendor/go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp/version.go b/vendor/go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp/version.go index d0107952e..1d90fc264 100644 --- a/vendor/go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp/version.go +++ b/vendor/go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp/version.go @@ -4,4 +4,4 @@ package otelhttp // import "go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp" // Version is the current release version of the otelhttp instrumentation. -const Version = "0.65.0" +const Version = "0.67.0" diff --git a/vendor/go.opentelemetry.io/otel/.golangci.yml b/vendor/go.opentelemetry.io/otel/.golangci.yml index d12c8920a..db1f55101 100644 --- a/vendor/go.opentelemetry.io/otel/.golangci.yml +++ b/vendor/go.opentelemetry.io/otel/.golangci.yml @@ -17,6 +17,7 @@ linters: - ineffassign - misspell - modernize + - noctx - perfsprint - revive - staticcheck @@ -88,6 +89,16 @@ linters: deny: - pkg: go.opentelemetry.io/otel/exporters/otlp/otlptrace/internal desc: Do not use cross-module internal packages. + semconv: + list-mode: lax + files: + - "!**/semconv/**" + - "!**/exporters/zipkin/**" + deny: + - pkg: go.opentelemetry.io/otel/semconv + desc: "Use go.opentelemetry.io/otel/semconv/v1.40.0 instead. If a newer semconv version has been released, update the depguard rule." + allow: + - go.opentelemetry.io/otel/semconv/v1.40.0 gocritic: disabled-checks: - appendAssign diff --git a/vendor/go.opentelemetry.io/otel/CHANGELOG.md b/vendor/go.opentelemetry.io/otel/CHANGELOG.md index f0595b5e5..20edda441 100644 --- a/vendor/go.opentelemetry.io/otel/CHANGELOG.md +++ b/vendor/go.opentelemetry.io/otel/CHANGELOG.md @@ -8,6 +8,75 @@ This project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.htm ## [Unreleased] + + + +## [1.43.0/0.65.0/0.19.0] 2026-04-02 + +### Added + +- Add `IsRandom` and `WithRandom` on `TraceFlags`, and `IsRandom` on `SpanContext` in `go.opentelemetry.io/otel/trace` for [W3C Trace Context Level 2 Random Trace ID Flag](https://www.w3.org/TR/trace-context-2/#random-trace-id-flag) support. (#8012) +- Add service detection with `WithService` in `go.opentelemetry.io/otel/sdk/resource`. (#7642) +- Add `DefaultWithContext` and `EnvironmentWithContext` in `go.opentelemetry.io/otel/sdk/resource` to support plumbing `context.Context` through default and environment detectors. (#8051) +- Support attributes with empty value (`attribute.EMPTY`) in `go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc`. (#8038) +- Support attributes with empty value (`attribute.EMPTY`) in `go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc`. (#8038) +- Support attributes with empty value (`attribute.EMPTY`) in `go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploggrpc`. (#8038) +- Support attributes with empty value (`attribute.EMPTY`) in `go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp`. (#8038) +- Support attributes with empty value (`attribute.EMPTY`) in `go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetrichttp`. (#8038) +- Support attributes with empty value (`attribute.EMPTY`) in `go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploghttp`. (#8038) +- Support attributes with empty value (`attribute.EMPTY`) in `go.opentelemetry.io/otel/sdk/metric/metricdata/metricdatatest`. (#8038) +- Add support for per-series start time tracking for cumulative metrics in `go.opentelemetry.io/otel/sdk/metric`. + Set `OTEL_GO_X_PER_SERIES_START_TIMESTAMPS=true` to enable. (#8060) +- Add `WithCardinalityLimitSelector` for metric reader for configuring cardinality limits specific to the instrument kind. (#7855) + +### Changed + +- Introduce the `EMPTY` Type in `go.opentelemetry.io/otel/attribute` to reflect that an empty value is now a valid value, with `INVALID` remaining as a deprecated alias of `EMPTY`. (#8038) +- Improve slice handling in `go.opentelemetry.io/otel/attribute` to optimize short slice values with fixed-size fast paths. (#8039) +- Improve performance of span metric recording in `go.opentelemetry.io/otel/sdk/trace` by returning early if self-observability is not enabled. (#8067) +- Improve formatting of metric data diffs in `go.opentelemetry.io/otel/sdk/metric/metricdata/metricdatatest`. (#8073) + +### Deprecated + +- Deprecate `INVALID` in `go.opentelemetry.io/otel/attribute`. Use `EMPTY` instead. (#8038) + +### Fixed + +- Return spec-compliant `TraceIdRatioBased` description. This is a breaking behavioral change, but it is necessary to + make the implementation [spec-compliant](https://opentelemetry.io/docs/specs/otel/trace/sdk/#traceidratiobased). (#8027) +- Fix a race condition in `go.opentelemetry.io/otel/sdk/metric` where the lastvalue aggregation could collect the value 0 even when no zero-value measurements were recorded. (#8056) +- Limit HTTP response body to 4 MiB in `go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp` to mitigate excessive memory usage caused by a misconfigured or malicious server. + Responses exceeding the limit are treated as non-retryable errors. (#8108) +- Limit HTTP response body to 4 MiB in `go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetrichttp` to mitigate excessive memory usage caused by a misconfigured or malicious server. + Responses exceeding the limit are treated as non-retryable errors. (#8108) +- Limit HTTP response body to 4 MiB in `go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploghttp` to mitigate excessive memory usage caused by a misconfigured or malicious server. + Responses exceeding the limit are treated as non-retryable errors. (#8108) +- `WithHostID` detector in `go.opentelemetry.io/otel/sdk/resource` to use full path for `kenv` command on BSD. (#8113) +- Fix missing `request.GetBody` in `go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploghttp` to correctly handle HTTP2 GOAWAY frame. (#8096) + +## [1.42.0/0.64.0/0.18.0/0.0.16] 2026-03-06 + +### Added + +- Add `go.opentelemetry.io/otel/semconv/v1.40.0` package. + The package contains semantic conventions from the `v1.40.0` version of the OpenTelemetry Semantic Conventions. + See the [migration documentation](./semconv/v1.40.0/MIGRATION.md) for information on how to upgrade from `go.opentelemetry.io/otel/semconv/v1.39.0`. (#7985) +- Add `Err` and `SetErr` on `Record` in `go.opentelemetry.io/otel/log` to attach an error and set record exception attributes in `go.opentelemetry.io/otel/log/sdk`. (#7924) + +### Changed + +- `TracerProvider.ForceFlush` in `go.opentelemetry.io/otel/sdk/trace` joins errors together and continues iteration through SpanProcessors as opposed to returning the first encountered error without attempting exports on subsequent SpanProcessors. (#7856) + +### Fixed + +- Fix missing `request.GetBody` in `go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetrichttp` to correctly handle HTTP2 GOAWAY frame. (#7931) +- Fix semconv v1.39.0 generated metric helpers skipping required attributes when extra attributes were empty. (#7964) +- Preserve W3C TraceFlags bitmask (including the random Trace ID flag) during trace context extraction and injection in `go.opentelemetry.io/otel/propagation`. (#7834) + +### Removed + +- Drop support for [Go 1.24]. (#7984) + ## [1.41.0/0.63.0/0.17.0/0.0.15] 2026-03-02 This release is the last to support [Go 1.24]. @@ -26,9 +95,6 @@ The next release will require at least [Go 1.25]. - Return an error when the endpoint is configured as insecure and with TLS configuration in `go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetrichttp`. (#7914) - Return an error when the endpoint is configured as insecure and with TLS configuration in `go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp`. (#7914) - - - ## [1.40.0/0.62.0/0.16.0] 2026-02-02 ### Added @@ -3553,7 +3619,9 @@ It contains api and sdk for trace and meter. - CircleCI build CI manifest files. - CODEOWNERS file to track owners of this project. -[Unreleased]: https://github.com/open-telemetry/opentelemetry-go/compare/v1.41.0...HEAD +[Unreleased]: https://github.com/open-telemetry/opentelemetry-go/compare/v1.43.0...HEAD +[1.43.0/0.65.0/0.19.0]: https://github.com/open-telemetry/opentelemetry-go/releases/tag/v1.43.0 +[1.42.0/0.64.0/0.18.0/0.0.16]: https://github.com/open-telemetry/opentelemetry-go/releases/tag/v1.42.0 [1.41.0/0.63.0/0.17.0/0.0.15]: https://github.com/open-telemetry/opentelemetry-go/releases/tag/v1.41.0 [1.40.0/0.62.0/0.16.0]: https://github.com/open-telemetry/opentelemetry-go/releases/tag/v1.40.0 [1.39.0/0.61.0/0.15.0/0.0.14]: https://github.com/open-telemetry/opentelemetry-go/releases/tag/v1.39.0 diff --git a/vendor/go.opentelemetry.io/otel/CONTRIBUTING.md b/vendor/go.opentelemetry.io/otel/CONTRIBUTING.md index 38dede932..12de3607a 100644 --- a/vendor/go.opentelemetry.io/otel/CONTRIBUTING.md +++ b/vendor/go.opentelemetry.io/otel/CONTRIBUTING.md @@ -746,8 +746,8 @@ Encapsulate setup in constructor functions, ensuring clear ownership and scope: import ( "errors" - semconv "go.opentelemetry.io/otel/semconv/v1.39.0" - "go.opentelemetry.io/otel/semconv/v1.39.0/otelconv" + semconv "go.opentelemetry.io/otel/semconv/v1.40.0" + "go.opentelemetry.io/otel/semconv/v1.40.0/otelconv" ) type SDKComponent struct { @@ -1039,7 +1039,7 @@ func (e *Exporter) ExportSpans(ctx context.Context, spans []trace.ReadOnlySpan) All observability metrics should follow the [OpenTelemetry Semantic Conventions for SDK metrics](https://github.com/open-telemetry/semantic-conventions/blob/1cf2476ae5e518225a766990a28a6d5602bd5a30/docs/otel/sdk-metrics.md). -Use the metric semantic conventions convenience package [otelconv](./semconv/v1.39.0/otelconv/metric.go). +Use the metric semantic conventions convenience package [otelconv](./semconv/v1.40.0/otelconv/metric.go). ##### Component Identification diff --git a/vendor/go.opentelemetry.io/otel/Makefile b/vendor/go.opentelemetry.io/otel/Makefile index fc4befb22..42466f2d6 100644 --- a/vendor/go.opentelemetry.io/otel/Makefile +++ b/vendor/go.opentelemetry.io/otel/Makefile @@ -38,10 +38,14 @@ CROSSLINK = $(TOOLS)/crosslink $(TOOLS)/crosslink: PACKAGE=go.opentelemetry.io/build-tools/crosslink SEMCONVKIT = $(TOOLS)/semconvkit +SEMCONVKIT_FILES := $(sort $(shell find $(TOOLS_MOD_DIR)/semconvkit -type f)) $(TOOLS)/semconvkit: PACKAGE=go.opentelemetry.io/otel/$(TOOLS_MOD_DIR)/semconvkit +$(TOOLS)/semconvkit: $(SEMCONVKIT_FILES) VERIFYREADMES = $(TOOLS)/verifyreadmes +VERIFYREADMES_FILES := $(sort $(shell find $(TOOLS_MOD_DIR)/verifyreadmes -type f)) $(TOOLS)/verifyreadmes: PACKAGE=go.opentelemetry.io/otel/$(TOOLS_MOD_DIR)/verifyreadmes +$(TOOLS)/verifyreadmes: $(VERIFYREADMES_FILES) GOLANGCI_LINT = $(TOOLS)/golangci-lint $(TOOLS)/golangci-lint: PACKAGE=github.com/golangci/golangci-lint/v2/cmd/golangci-lint @@ -185,11 +189,10 @@ test-coverage: $(GOCOVMERGE) .PHONY: benchmark benchmark: $(OTEL_GO_MOD_DIRS:%=benchmark/%) benchmark/%: - @echo "$(GO) test -run=xxxxxMatchNothingxxxxx -bench=. $*..." \ - && cd $* \ - && $(GO) list ./... \ - | grep -v third_party \ - | xargs $(GO) test -run=xxxxxMatchNothingxxxxx -bench=. + cd $* && $(GO) test -run='^$$' -bench=. $(ARGS) ./... + +print-sharded-benchmarks: + @echo $(OTEL_GO_MOD_DIRS) | jq -cR 'split(" ")' .PHONY: golangci-lint golangci-lint-fix golangci-lint-fix: ARGS=--fix diff --git a/vendor/go.opentelemetry.io/otel/README.md b/vendor/go.opentelemetry.io/otel/README.md index 6b1e170c4..16a72004c 100644 --- a/vendor/go.opentelemetry.io/otel/README.md +++ b/vendor/go.opentelemetry.io/otel/README.md @@ -55,25 +55,18 @@ Currently, this project supports the following environments. |----------|------------|--------------| | Ubuntu | 1.26 | amd64 | | Ubuntu | 1.25 | amd64 | -| Ubuntu | 1.24 | amd64 | | Ubuntu | 1.26 | 386 | | Ubuntu | 1.25 | 386 | -| Ubuntu | 1.24 | 386 | | Ubuntu | 1.26 | arm64 | | Ubuntu | 1.25 | arm64 | -| Ubuntu | 1.24 | arm64 | | macOS | 1.26 | amd64 | | macOS | 1.25 | amd64 | -| macOS | 1.24 | amd64 | | macOS | 1.26 | arm64 | | macOS | 1.25 | arm64 | -| macOS | 1.24 | arm64 | | Windows | 1.26 | amd64 | | Windows | 1.25 | amd64 | -| Windows | 1.24 | amd64 | | Windows | 1.26 | 386 | | Windows | 1.25 | 386 | -| Windows | 1.24 | 386 | While this project should work for other systems, no compatibility guarantees are made for those systems currently. diff --git a/vendor/go.opentelemetry.io/otel/RELEASING.md b/vendor/go.opentelemetry.io/otel/RELEASING.md index 861756fd7..6aff7548c 100644 --- a/vendor/go.opentelemetry.io/otel/RELEASING.md +++ b/vendor/go.opentelemetry.io/otel/RELEASING.md @@ -4,7 +4,9 @@ Create a `Version Release` issue to track the release process. -## Semantic Convention Generation +## Semantic Convention Upgrade + +### Semantic Convention Generation New versions of the [OpenTelemetry Semantic Conventions] mean new versions of the `semconv` package need to be generated. The `semconv-generate` make target is used for this. @@ -22,6 +24,43 @@ make semconv-generate # Uses the exported TAG. This should create a new sub-package of [`semconv`](./semconv). Ensure things look correct before submitting a pull request to include the addition. +The `CHANGELOG.md` should also be updated to reflect the new changes: + +```md +- The `go.opentelemetry.io/otel/semconv/` package. The package contains semantic conventions from the `` version of the OpenTelemetry Semantic Conventions. See the [migration documentation](./semconv//MIGRATION.md) for information on how to upgrade from `go.opentelemetry.io/otel/semconv/`. (#PR_NUMBER) +``` + +> **Tip:** Change to the release and prior version to match the changes + +### Update semconv imports + +Once the new semconv module has been generated, update all semconv imports throughout the codebase to reference the new version: + +```go +// Before +semconv "go.opentelemetry.io/otel/semconv/v1.37.0" +"go.opentelemetry.io/otel/semconv/v1.37.0/otelconv" + + +// After +semconv "go.opentelemetry.io/otel/semconv/v1.39.0" +"go.opentelemetry.io/otel/semconv/v1.39.0/otelconv" +``` + +Once complete, run `make` to check for any compilation or test failures. + +#### Handling attribute changes + +Some semconv releases might add new attributes or impact attributes that are currently being used. Changes could stem from a simple renaming, to more complex changes like merging attributes and property values being changed. + +One should update the code to the new attributes that supersede the impacted ones, hence sticking to the semantic conventions. However, legacy attributes might still be emitted in accordance to the `OTEL_SEMCONV_STABILITY_OPT_IN` environment variable. + +For an example on how such migration might have to be tracked and performed, see issue [#7806](https://github.com/open-telemetry/opentelemetry-go/issues/7806). + +### Go contrib linter update + +Update [.golangci.yml](https://github.com/open-telemetry/opentelemetry-go-contrib/blob/main/.golangci.yml) in [opentelemetry-go-contrib](https://github.com/open-telemetry/opentelemetry-go-contrib/) to mandate the new semconv version. + ## Breaking changes validation You can run `make gorelease` which runs [gorelease](https://pkg.go.dev/golang.org/x/exp/cmd/gorelease) to ensure that there are no unwanted changes made in the public API. diff --git a/vendor/go.opentelemetry.io/otel/attribute/encoder.go b/vendor/go.opentelemetry.io/otel/attribute/encoder.go index 6cc1a1655..771dd69c5 100644 --- a/vendor/go.opentelemetry.io/otel/attribute/encoder.go +++ b/vendor/go.opentelemetry.io/otel/attribute/encoder.go @@ -53,7 +53,7 @@ var ( _ Encoder = &defaultAttrEncoder{} // encoderIDCounter is for generating IDs for other attribute encoders. - encoderIDCounter uint64 + encoderIDCounter atomic.Uint64 defaultEncoderOnce sync.Once defaultEncoderID = NewEncoderID() @@ -64,7 +64,7 @@ var ( // once per each type of attribute encoder. Preferably in init() or in var // definition. func NewEncoderID() EncoderID { - return EncoderID{value: atomic.AddUint64(&encoderIDCounter, 1)} + return EncoderID{value: encoderIDCounter.Add(1)} } // DefaultEncoder returns an attribute encoder that encodes attributes in such diff --git a/vendor/go.opentelemetry.io/otel/attribute/hash.go b/vendor/go.opentelemetry.io/otel/attribute/hash.go index 6aa69aeae..b09caaa6d 100644 --- a/vendor/go.opentelemetry.io/otel/attribute/hash.go +++ b/vendor/go.opentelemetry.io/otel/attribute/hash.go @@ -27,6 +27,7 @@ const ( int64SliceID uint64 = 3762322556277578591 // "_[]int64" (little endian) float64SliceID uint64 = 7308324551835016539 // "[]double" (little endian) stringSliceID uint64 = 7453010373645655387 // "[]string" (little endian) + emptyID uint64 = 7305809155345288421 // "__empty_" (little endian) ) // hashKVs returns a new xxHash64 hash of kvs. @@ -80,7 +81,8 @@ func hashKV(h xxhash.Hash, kv KeyValue) xxhash.Hash { for i := 0; i < rv.Len(); i++ { h = h.String(rv.Index(i).String()) } - case INVALID: + case EMPTY: + h = h.Uint64(emptyID) default: // Logging is an alternative, but using the internal logger here // causes an import cycle so it is not done. diff --git a/vendor/go.opentelemetry.io/otel/attribute/internal/attribute.go b/vendor/go.opentelemetry.io/otel/attribute/internal/attribute.go index 7f5eae877..d9f51fa2d 100644 --- a/vendor/go.opentelemetry.io/otel/attribute/internal/attribute.go +++ b/vendor/go.opentelemetry.io/otel/attribute/internal/attribute.go @@ -11,80 +11,63 @@ import ( "reflect" ) -// BoolSliceValue converts a bool slice into an array with same elements as slice. -func BoolSliceValue(v []bool) any { - cp := reflect.New(reflect.ArrayOf(len(v), reflect.TypeFor[bool]())).Elem() - reflect.Copy(cp, reflect.ValueOf(v)) - return cp.Interface() +// sliceElem is the exact set of element types stored in attribute slice values. +// Using a closed set prevents accidental instantiations for unsupported types. +type sliceElem interface { + bool | int64 | float64 | string } -// Int64SliceValue converts an int64 slice into an array with same elements as slice. -func Int64SliceValue(v []int64) any { - cp := reflect.New(reflect.ArrayOf(len(v), reflect.TypeFor[int64]())).Elem() - reflect.Copy(cp, reflect.ValueOf(v)) - return cp.Interface() -} - -// Float64SliceValue converts a float64 slice into an array with same elements as slice. -func Float64SliceValue(v []float64) any { - cp := reflect.New(reflect.ArrayOf(len(v), reflect.TypeFor[float64]())).Elem() - reflect.Copy(cp, reflect.ValueOf(v)) - return cp.Interface() -} +// SliceValue converts a slice into an array with the same elements. +func SliceValue[T sliceElem](v []T) any { + // Keep only the common tiny-slice cases out of reflection. Extending this + // much further increases code size for diminishing benefit while larger + // slices still need the generic reflective path to preserve comparability. + // This matches the short lengths that show up most often in local + // benchmarks and semantic convention examples while leaving larger, less + // predictable slices on the generic reflective path. + switch len(v) { + case 0: + return [0]T{} + case 1: + return [1]T{v[0]} + case 2: + return [2]T{v[0], v[1]} + case 3: + return [3]T{v[0], v[1], v[2]} + } -// StringSliceValue converts a string slice into an array with same elements as slice. -func StringSliceValue(v []string) any { - cp := reflect.New(reflect.ArrayOf(len(v), reflect.TypeFor[string]())).Elem() - reflect.Copy(cp, reflect.ValueOf(v)) - return cp.Interface() + return sliceValueReflect(v) } -// AsBoolSlice converts a bool array into a slice into with same elements as array. -func AsBoolSlice(v any) []bool { - rv := reflect.ValueOf(v) - if rv.Type().Kind() != reflect.Array { - return nil +// AsSlice converts an array into a slice with the same elements. +func AsSlice[T sliceElem](v any) []T { + // Mirror the small fixed-array fast path used by SliceValue. + switch a := v.(type) { + case [0]T: + return []T{} + case [1]T: + return []T{a[0]} + case [2]T: + return []T{a[0], a[1]} + case [3]T: + return []T{a[0], a[1], a[2]} } - cpy := make([]bool, rv.Len()) - if len(cpy) > 0 { - _ = reflect.Copy(reflect.ValueOf(cpy), rv) - } - return cpy -} -// AsInt64Slice converts an int64 array into a slice into with same elements as array. -func AsInt64Slice(v any) []int64 { - rv := reflect.ValueOf(v) - if rv.Type().Kind() != reflect.Array { - return nil - } - cpy := make([]int64, rv.Len()) - if len(cpy) > 0 { - _ = reflect.Copy(reflect.ValueOf(cpy), rv) - } - return cpy + return asSliceReflect[T](v) } -// AsFloat64Slice converts a float64 array into a slice into with same elements as array. -func AsFloat64Slice(v any) []float64 { - rv := reflect.ValueOf(v) - if rv.Type().Kind() != reflect.Array { - return nil - } - cpy := make([]float64, rv.Len()) - if len(cpy) > 0 { - _ = reflect.Copy(reflect.ValueOf(cpy), rv) - } - return cpy +func sliceValueReflect[T sliceElem](v []T) any { + cp := reflect.New(reflect.ArrayOf(len(v), reflect.TypeFor[T]())).Elem() + reflect.Copy(cp, reflect.ValueOf(v)) + return cp.Interface() } -// AsStringSlice converts a string array into a slice into with same elements as array. -func AsStringSlice(v any) []string { +func asSliceReflect[T sliceElem](v any) []T { rv := reflect.ValueOf(v) - if rv.Type().Kind() != reflect.Array { + if !rv.IsValid() || rv.Kind() != reflect.Array || rv.Type().Elem() != reflect.TypeFor[T]() { return nil } - cpy := make([]string, rv.Len()) + cpy := make([]T, rv.Len()) if len(cpy) > 0 { _ = reflect.Copy(reflect.ValueOf(cpy), rv) } diff --git a/vendor/go.opentelemetry.io/otel/attribute/kv.go b/vendor/go.opentelemetry.io/otel/attribute/kv.go index 8c6928ca7..0cc368018 100644 --- a/vendor/go.opentelemetry.io/otel/attribute/kv.go +++ b/vendor/go.opentelemetry.io/otel/attribute/kv.go @@ -15,7 +15,7 @@ type KeyValue struct { // Valid reports whether kv is a valid OpenTelemetry attribute. func (kv KeyValue) Valid() bool { - return kv.Key.Defined() && kv.Value.Type() != INVALID + return kv.Key.Defined() } // Bool creates a KeyValue with a BOOL Value type. diff --git a/vendor/go.opentelemetry.io/otel/attribute/type_string.go b/vendor/go.opentelemetry.io/otel/attribute/type_string.go index 24f1fa37d..6c04448d6 100644 --- a/vendor/go.opentelemetry.io/otel/attribute/type_string.go +++ b/vendor/go.opentelemetry.io/otel/attribute/type_string.go @@ -8,7 +8,7 @@ func _() { // An "invalid array index" compiler error signifies that the constant values have changed. // Re-run the stringer command to generate them again. var x [1]struct{} - _ = x[INVALID-0] + _ = x[EMPTY-0] _ = x[BOOL-1] _ = x[INT64-2] _ = x[FLOAT64-3] @@ -19,9 +19,9 @@ func _() { _ = x[STRINGSLICE-8] } -const _Type_name = "INVALIDBOOLINT64FLOAT64STRINGBOOLSLICEINT64SLICEFLOAT64SLICESTRINGSLICE" +const _Type_name = "EMPTYBOOLINT64FLOAT64STRINGBOOLSLICEINT64SLICEFLOAT64SLICESTRINGSLICE" -var _Type_index = [...]uint8{0, 7, 11, 16, 23, 29, 38, 48, 60, 71} +var _Type_index = [...]uint8{0, 5, 9, 14, 21, 27, 36, 46, 58, 69} func (i Type) String() string { idx := int(i) - 0 diff --git a/vendor/go.opentelemetry.io/otel/attribute/value.go b/vendor/go.opentelemetry.io/otel/attribute/value.go index 5931e7129..db04b1326 100644 --- a/vendor/go.opentelemetry.io/otel/attribute/value.go +++ b/vendor/go.opentelemetry.io/otel/attribute/value.go @@ -6,7 +6,6 @@ package attribute // import "go.opentelemetry.io/otel/attribute" import ( "encoding/json" "fmt" - "reflect" "strconv" attribute "go.opentelemetry.io/otel/attribute/internal" @@ -18,6 +17,8 @@ import ( type Type int // nolint: revive // redefines builtin Type. // Value represents the value part in key-value pairs. +// +// Note that the zero value is a valid empty value. type Value struct { vtype Type numeric uint64 @@ -26,8 +27,8 @@ type Value struct { } const ( - // INVALID is used for a Value with no value set. - INVALID Type = iota + // EMPTY is used for a Value with no value set. + EMPTY Type = iota // BOOL is a boolean Type Value. BOOL // INT64 is a 64-bit signed integral Type Value. @@ -44,6 +45,10 @@ const ( FLOAT64SLICE // STRINGSLICE is a slice of strings Type Value. STRINGSLICE + // INVALID is used for a Value with no value set. + // + // Deprecated: Use EMPTY instead as an empty value is a valid value. + INVALID = EMPTY ) // BoolValue creates a BOOL Value. @@ -56,7 +61,7 @@ func BoolValue(v bool) Value { // BoolSliceValue creates a BOOLSLICE Value. func BoolSliceValue(v []bool) Value { - return Value{vtype: BOOLSLICE, slice: attribute.BoolSliceValue(v)} + return Value{vtype: BOOLSLICE, slice: attribute.SliceValue(v)} } // IntValue creates an INT64 Value. @@ -64,16 +69,30 @@ func IntValue(v int) Value { return Int64Value(int64(v)) } -// IntSliceValue creates an INTSLICE Value. +// IntSliceValue creates an INT64SLICE Value. func IntSliceValue(v []int) Value { - cp := reflect.New(reflect.ArrayOf(len(v), reflect.TypeFor[int64]())) - for i, val := range v { - cp.Elem().Index(i).SetInt(int64(val)) - } - return Value{ - vtype: INT64SLICE, - slice: cp.Elem().Interface(), + val := Value{vtype: INT64SLICE} + + // Avoid the common tiny-slice cases from allocating a new slice. + switch len(v) { + case 0: + val.slice = [0]int64{} + case 1: + val.slice = [1]int64{int64(v[0])} + case 2: + val.slice = [2]int64{int64(v[0]), int64(v[1])} + case 3: + val.slice = [3]int64{int64(v[0]), int64(v[1]), int64(v[2])} + default: + // Fallback to a new slice for larger slices. + cp := make([]int64, len(v)) + for i, val := range v { + cp[i] = int64(val) + } + val.slice = attribute.SliceValue(cp) } + + return val } // Int64Value creates an INT64 Value. @@ -86,7 +105,7 @@ func Int64Value(v int64) Value { // Int64SliceValue creates an INT64SLICE Value. func Int64SliceValue(v []int64) Value { - return Value{vtype: INT64SLICE, slice: attribute.Int64SliceValue(v)} + return Value{vtype: INT64SLICE, slice: attribute.SliceValue(v)} } // Float64Value creates a FLOAT64 Value. @@ -99,7 +118,7 @@ func Float64Value(v float64) Value { // Float64SliceValue creates a FLOAT64SLICE Value. func Float64SliceValue(v []float64) Value { - return Value{vtype: FLOAT64SLICE, slice: attribute.Float64SliceValue(v)} + return Value{vtype: FLOAT64SLICE, slice: attribute.SliceValue(v)} } // StringValue creates a STRING Value. @@ -112,7 +131,7 @@ func StringValue(v string) Value { // StringSliceValue creates a STRINGSLICE Value. func StringSliceValue(v []string) Value { - return Value{vtype: STRINGSLICE, slice: attribute.StringSliceValue(v)} + return Value{vtype: STRINGSLICE, slice: attribute.SliceValue(v)} } // Type returns a type of the Value. @@ -136,7 +155,7 @@ func (v Value) AsBoolSlice() []bool { } func (v Value) asBoolSlice() []bool { - return attribute.AsBoolSlice(v.slice) + return attribute.AsSlice[bool](v.slice) } // AsInt64 returns the int64 value. Make sure that the Value's type is @@ -155,7 +174,7 @@ func (v Value) AsInt64Slice() []int64 { } func (v Value) asInt64Slice() []int64 { - return attribute.AsInt64Slice(v.slice) + return attribute.AsSlice[int64](v.slice) } // AsFloat64 returns the float64 value. Make sure that the Value's @@ -174,7 +193,7 @@ func (v Value) AsFloat64Slice() []float64 { } func (v Value) asFloat64Slice() []float64 { - return attribute.AsFloat64Slice(v.slice) + return attribute.AsSlice[float64](v.slice) } // AsString returns the string value. Make sure that the Value's type @@ -193,7 +212,7 @@ func (v Value) AsStringSlice() []string { } func (v Value) asStringSlice() []string { - return attribute.AsStringSlice(v.slice) + return attribute.AsSlice[string](v.slice) } type unknownValueType struct{} @@ -217,6 +236,8 @@ func (v Value) AsInterface() any { return v.stringly case STRINGSLICE: return v.asStringSlice() + case EMPTY: + return nil } return unknownValueType{} } @@ -252,6 +273,8 @@ func (v Value) Emit() string { return string(j) case STRING: return v.stringly + case EMPTY: + return "" default: return "unknown" } diff --git a/vendor/go.opentelemetry.io/otel/dependencies.Dockerfile b/vendor/go.opentelemetry.io/otel/dependencies.Dockerfile index f0cc942ba..7a9b3c055 100644 --- a/vendor/go.opentelemetry.io/otel/dependencies.Dockerfile +++ b/vendor/go.opentelemetry.io/otel/dependencies.Dockerfile @@ -1,4 +1,4 @@ # This is a renovate-friendly source of Docker images. FROM python:3.13.6-slim-bullseye@sha256:e98b521460ee75bca92175c16247bdf7275637a8faaeb2bcfa19d879ae5c4b9a AS python -FROM otel/weaver:v0.21.2@sha256:2401de985c38bdb98b43918e2f43aa36b2afed4aa5669ac1c1de0a17301cd36d AS weaver +FROM otel/weaver:v0.22.1@sha256:33ae522ae4b71c1c562563c1d81f46aa0f79f088a0873199143a1f11ac30e5c9 AS weaver FROM avtodev/markdown-lint:v1@sha256:6aeedc2f49138ce7a1cd0adffc1b1c0321b841dc2102408967d9301c031949ee AS markdown diff --git a/vendor/go.opentelemetry.io/otel/propagation/trace_context.go b/vendor/go.opentelemetry.io/otel/propagation/trace_context.go index 271ab71f1..11f404deb 100644 --- a/vendor/go.opentelemetry.io/otel/propagation/trace_context.go +++ b/vendor/go.opentelemetry.io/otel/propagation/trace_context.go @@ -46,8 +46,8 @@ func (TraceContext) Inject(ctx context.Context, carrier TextMapCarrier) { carrier.Set(tracestateHeader, ts) } - // Clear all flags other than the trace-context supported sampling bit. - flags := sc.TraceFlags() & trace.FlagsSampled + // Preserve only the spec-defined flags: sampled (0x01) and random (0x02). + flags := sc.TraceFlags() & (trace.FlagsSampled | trace.FlagsRandom) var sb strings.Builder sb.Grow(2 + 32 + 16 + 2 + 3) @@ -104,14 +104,13 @@ func (TraceContext) extract(carrier TextMapCarrier) trace.SpanContext { if !extractPart(opts[:], &h, 2) { return trace.SpanContext{} } - if version == 0 && (h != "" || opts[0] > 2) { - // version 0 not allow extra - // version 0 not allow other flag + if version == 0 && (h != "" || opts[0] > 3) { + // version 0 does not allow extra fields or reserved flag bits. return trace.SpanContext{} } - // Clear all flags other than the trace-context supported sampling bit. - scc.TraceFlags = trace.TraceFlags(opts[0]) & trace.FlagsSampled // nolint:gosec // slice size already checked. + scc.TraceFlags = trace.TraceFlags(opts[0]) & //nolint:gosec // slice size already checked. + (trace.FlagsSampled | trace.FlagsRandom) // Ignore the error returned here. Failure to parse tracestate MUST NOT // affect the parsing of traceparent according to the W3C tracecontext diff --git a/vendor/go.opentelemetry.io/otel/requirements.txt b/vendor/go.opentelemetry.io/otel/requirements.txt index 1bb55fb1c..7c541dee7 100644 --- a/vendor/go.opentelemetry.io/otel/requirements.txt +++ b/vendor/go.opentelemetry.io/otel/requirements.txt @@ -1 +1 @@ -codespell==2.4.1 +codespell==2.4.2 diff --git a/vendor/go.opentelemetry.io/otel/semconv/v1.39.0/MIGRATION.md b/vendor/go.opentelemetry.io/otel/semconv/v1.39.0/MIGRATION.md deleted file mode 100644 index fed7013e6..000000000 --- a/vendor/go.opentelemetry.io/otel/semconv/v1.39.0/MIGRATION.md +++ /dev/null @@ -1,78 +0,0 @@ - -# Migration from v1.38.0 to v1.39.0 - -The `go.opentelemetry.io/otel/semconv/v1.39.0` package should be a drop-in replacement for `go.opentelemetry.io/otel/semconv/v1.38.0` with the following exceptions. - -## Removed - -The following declarations have been removed. -Refer to the [OpenTelemetry Semantic Conventions documentation] for deprecation instructions. - -If the type is not listed in the documentation as deprecated, it has been removed in this version due to lack of applicability or use. -If you use any of these non-deprecated declarations in your Go application, please [open an issue] describing your use-case. - -- `LinuxMemorySlabStateKey` -- `LinuxMemorySlabStateReclaimable` -- `LinuxMemorySlabStateUnreclaimable` -- `PeerService` -- `PeerServiceKey` -- `RPCConnectRPCErrorCodeAborted` -- `RPCConnectRPCErrorCodeAlreadyExists` -- `RPCConnectRPCErrorCodeCancelled` -- `RPCConnectRPCErrorCodeDataLoss` -- `RPCConnectRPCErrorCodeDeadlineExceeded` -- `RPCConnectRPCErrorCodeFailedPrecondition` -- `RPCConnectRPCErrorCodeInternal` -- `RPCConnectRPCErrorCodeInvalidArgument` -- `RPCConnectRPCErrorCodeKey` -- `RPCConnectRPCErrorCodeNotFound` -- `RPCConnectRPCErrorCodeOutOfRange` -- `RPCConnectRPCErrorCodePermissionDenied` -- `RPCConnectRPCErrorCodeResourceExhausted` -- `RPCConnectRPCErrorCodeUnauthenticated` -- `RPCConnectRPCErrorCodeUnavailable` -- `RPCConnectRPCErrorCodeUnimplemented` -- `RPCConnectRPCErrorCodeUnknown` -- `RPCConnectRPCRequestMetadata` -- `RPCConnectRPCResponseMetadata` -- `RPCGRPCRequestMetadata` -- `RPCGRPCResponseMetadata` -- `RPCGRPCStatusCodeAborted` -- `RPCGRPCStatusCodeAlreadyExists` -- `RPCGRPCStatusCodeCancelled` -- `RPCGRPCStatusCodeDataLoss` -- `RPCGRPCStatusCodeDeadlineExceeded` -- `RPCGRPCStatusCodeFailedPrecondition` -- `RPCGRPCStatusCodeInternal` -- `RPCGRPCStatusCodeInvalidArgument` -- `RPCGRPCStatusCodeKey` -- `RPCGRPCStatusCodeNotFound` -- `RPCGRPCStatusCodeOk` -- `RPCGRPCStatusCodeOutOfRange` -- `RPCGRPCStatusCodePermissionDenied` -- `RPCGRPCStatusCodeResourceExhausted` -- `RPCGRPCStatusCodeUnauthenticated` -- `RPCGRPCStatusCodeUnavailable` -- `RPCGRPCStatusCodeUnimplemented` -- `RPCGRPCStatusCodeUnknown` -- `RPCJSONRPCErrorCode` -- `RPCJSONRPCErrorCodeKey` -- `RPCJSONRPCErrorMessage` -- `RPCJSONRPCErrorMessageKey` -- `RPCJSONRPCRequestID` -- `RPCJSONRPCRequestIDKey` -- `RPCJSONRPCVersion` -- `RPCJSONRPCVersionKey` -- `RPCService` -- `RPCServiceKey` -- `RPCSystemApacheDubbo` -- `RPCSystemConnectRPC` -- `RPCSystemDotnetWcf` -- `RPCSystemGRPC` -- `RPCSystemJSONRPC` -- `RPCSystemJavaRmi` -- `RPCSystemKey` -- `RPCSystemOncRPC` - -[OpenTelemetry Semantic Conventions documentation]: https://github.com/open-telemetry/semantic-conventions -[open an issue]: https://github.com/open-telemetry/opentelemetry-go/issues/new?template=Blank+issue diff --git a/vendor/go.opentelemetry.io/otel/semconv/v1.39.0/README.md b/vendor/go.opentelemetry.io/otel/semconv/v1.39.0/README.md deleted file mode 100644 index 4b0e6f7f3..000000000 --- a/vendor/go.opentelemetry.io/otel/semconv/v1.39.0/README.md +++ /dev/null @@ -1,3 +0,0 @@ -# Semconv v1.39.0 - -[![PkgGoDev](https://pkg.go.dev/badge/go.opentelemetry.io/otel/semconv/v1.39.0)](https://pkg.go.dev/go.opentelemetry.io/otel/semconv/v1.39.0) diff --git a/vendor/go.opentelemetry.io/otel/semconv/v1.40.0/MIGRATION.md b/vendor/go.opentelemetry.io/otel/semconv/v1.40.0/MIGRATION.md new file mode 100644 index 000000000..e246b1692 --- /dev/null +++ b/vendor/go.opentelemetry.io/otel/semconv/v1.40.0/MIGRATION.md @@ -0,0 +1,27 @@ + +# Migration from v1.39.0 to v1.40.0 + +The `go.opentelemetry.io/otel/semconv/v1.40.0` package should be a drop-in replacement for `go.opentelemetry.io/otel/semconv/v1.39.0` with the following exceptions. + +## Removed + +The following declarations have been removed. +Refer to the [OpenTelemetry Semantic Conventions documentation] for deprecation instructions. + +If the type is not listed in the documentation as deprecated, it has been removed in this version due to lack of applicability or use. +If you use any of these non-deprecated declarations in your Go application, please [open an issue] describing your use-case. + +- `ErrorMessage` +- `ErrorMessageKey` +- `RPCMessageCompressedSize` +- `RPCMessageCompressedSizeKey` +- `RPCMessageID` +- `RPCMessageIDKey` +- `RPCMessageTypeKey` +- `RPCMessageTypeReceived` +- `RPCMessageTypeSent` +- `RPCMessageUncompressedSize` +- `RPCMessageUncompressedSizeKey` + +[OpenTelemetry Semantic Conventions documentation]: https://github.com/open-telemetry/semantic-conventions +[open an issue]: https://github.com/open-telemetry/opentelemetry-go/issues/new?template=Blank+issue diff --git a/vendor/go.opentelemetry.io/otel/semconv/v1.40.0/README.md b/vendor/go.opentelemetry.io/otel/semconv/v1.40.0/README.md new file mode 100644 index 000000000..c51b7fb7b --- /dev/null +++ b/vendor/go.opentelemetry.io/otel/semconv/v1.40.0/README.md @@ -0,0 +1,3 @@ +# Semconv v1.40.0 + +[![PkgGoDev](https://pkg.go.dev/badge/go.opentelemetry.io/otel/semconv/v1.40.0)](https://pkg.go.dev/go.opentelemetry.io/otel/semconv/v1.40.0) diff --git a/vendor/go.opentelemetry.io/otel/semconv/v1.39.0/attribute_group.go b/vendor/go.opentelemetry.io/otel/semconv/v1.40.0/attribute_group.go similarity index 95% rename from vendor/go.opentelemetry.io/otel/semconv/v1.39.0/attribute_group.go rename to vendor/go.opentelemetry.io/otel/semconv/v1.40.0/attribute_group.go index 080365fc1..ee6b1f79d 100644 --- a/vendor/go.opentelemetry.io/otel/semconv/v1.39.0/attribute_group.go +++ b/vendor/go.opentelemetry.io/otel/semconv/v1.40.0/attribute_group.go @@ -3,7 +3,7 @@ // Code generated from semantic convention specification. DO NOT EDIT. -package semconv // import "go.opentelemetry.io/otel/semconv/v1.39.0" +package semconv // import "go.opentelemetry.io/otel/semconv/v1.40.0" import "go.opentelemetry.io/otel/attribute" @@ -3431,7 +3431,7 @@ const ( // // Type: string // RequirementLevel: Recommended - // Stability: Alpha + // Stability: Beta // // Examples: "a3bf90e006b2" // @@ -3467,7 +3467,7 @@ const ( // // Type: string // RequirementLevel: Recommended - // Stability: Alpha + // Stability: Beta // // Examples: "gcr.io/opentelemetry/operator" ContainerImageNameKey = attribute.Key("container.image.name") @@ -3478,7 +3478,7 @@ const ( // // Type: string[] // RequirementLevel: Recommended - // Stability: Alpha + // Stability: Beta // // Examples: // "example@sha256:afcc7f1ac1b49db317a7196c902e61c6c3c4607d63599ee1a82d702d249a0ccb", @@ -3497,7 +3497,7 @@ const ( // // Type: string[] // RequirementLevel: Recommended - // Stability: Alpha + // Stability: Beta // // Examples: "v1.27.1", "3.5.7-0" // @@ -3856,6 +3856,12 @@ const ( // [Generating query summary] // section. // + // For batch operations, if the individual operations are known to have the same + // query summary + // then that query summary SHOULD be used prepended by `BATCH `, + // otherwise `db.query.summary` SHOULD be `BATCH` or some other database + // system specific term if more applicable. + // // [Generating query summary]: /docs/db/database-spans.md#generating-a-summary-of-the-query DBQuerySummaryKey = attribute.Key("db.query.summary") @@ -4623,27 +4629,6 @@ func EnduserPseudoID(val string) attribute.KeyValue { // Namespace: error const ( - // ErrorMessageKey is the attribute Key conforming to the "error.message" - // semantic conventions. It represents a message providing more detail about an - // error in human-readable form. - // - // Type: string - // RequirementLevel: Recommended - // Stability: Development - // - // Examples: "Unexpected input type: string", "The user has exceeded their - // storage quota" - // Note: `error.message` should provide additional context and detail about an - // error. - // It is NOT RECOMMENDED to duplicate the value of `error.type` in - // `error.message`. - // It is also NOT RECOMMENDED to duplicate the value of `exception.message` in - // `error.message`. - // - // `error.message` is NOT RECOMMENDED for metrics or spans due to its unbounded - // cardinality and overlap with span status. - ErrorMessageKey = attribute.Key("error.message") - // ErrorTypeKey is the attribute Key conforming to the "error.type" semantic // conventions. It represents the describes a class of error the operation ended // with. @@ -4683,13 +4668,6 @@ const ( ErrorTypeKey = attribute.Key("error.type") ) -// ErrorMessage returns an attribute KeyValue conforming to the "error.message" -// semantic conventions. It represents a message providing more detail about an -// error in human-readable form. -func ErrorMessage(val string) attribute.KeyValue { - return ErrorMessageKey.String(val) -} - // Enum values for error.type var ( // A fallback error value to be used when the instrumentation doesn't define a @@ -4710,6 +4688,9 @@ const ( // Stability: Stable // // Examples: "Division by zero", "Can't convert 'int' object to str implicitly" + // Note: > [!WARNING] + // + // > This attribute may contain sensitive information. ExceptionMessageKey = attribute.Key("exception.message") // ExceptionStacktraceKey is the attribute Key conforming to the @@ -5165,6 +5146,19 @@ const ( // Examples: "5157782b-2203-4c80-a857-dbbd5e7761db" FeatureFlagContextIDKey = attribute.Key("feature_flag.context.id") + // FeatureFlagErrorMessageKey is the attribute Key conforming to the + // "feature_flag.error.message" semantic conventions. It represents a message + // providing more detail about an error that occurred during feature flag + // evaluation in human-readable form. + // + // Type: string + // RequirementLevel: Recommended + // Stability: Release_Candidate + // + // Examples: "Unexpected input type: string", "The user has exceeded their + // storage quota" + FeatureFlagErrorMessageKey = attribute.Key("feature_flag.error.message") + // FeatureFlagKeyKey is the attribute Key conforming to the "feature_flag.key" // semantic conventions. It represents the lookup key of the feature flag. // @@ -5266,6 +5260,14 @@ func FeatureFlagContextID(val string) attribute.KeyValue { return FeatureFlagContextIDKey.String(val) } +// FeatureFlagErrorMessage returns an attribute KeyValue conforming to the +// "feature_flag.error.message" semantic conventions. It represents a message +// providing more detail about an error that occurred during feature flag +// evaluation in human-readable form. +func FeatureFlagErrorMessage(val string) attribute.KeyValue { + return FeatureFlagErrorMessageKey.String(val) +} + // FeatureFlagKey returns an attribute KeyValue conforming to the // "feature_flag.key" semantic conventions. It represents the lookup key of the // feature flag. @@ -5980,6 +5982,41 @@ const ( // // [default internal DNS name]: https://cloud.google.com/compute/docs/internal-dns#instance-fully-qualified-domain-names GCPGCEInstanceNameKey = attribute.Key("gcp.gce.instance.name") + + // GCPGCEInstanceGroupManagerNameKey is the attribute Key conforming to the + // "gcp.gce.instance_group_manager.name" semantic conventions. It represents the + // name of the Instance Group Manager (IGM) that manages this VM, if any. + // + // Type: string + // RequirementLevel: Recommended + // Stability: Development + // + // Examples: "web-igm", "my-managed-group" + GCPGCEInstanceGroupManagerNameKey = attribute.Key("gcp.gce.instance_group_manager.name") + + // GCPGCEInstanceGroupManagerRegionKey is the attribute Key conforming to the + // "gcp.gce.instance_group_manager.region" semantic conventions. It represents + // the region of a **regional** Instance Group Manager (e.g., `us-central1`). + // Set this **only** when the IGM is regional. + // + // Type: string + // RequirementLevel: Recommended + // Stability: Development + // + // Examples: "us-central1", "europe-west1" + GCPGCEInstanceGroupManagerRegionKey = attribute.Key("gcp.gce.instance_group_manager.region") + + // GCPGCEInstanceGroupManagerZoneKey is the attribute Key conforming to the + // "gcp.gce.instance_group_manager.zone" semantic conventions. It represents the + // zone of a **zonal** Instance Group Manager (e.g., `us-central1-a`). Set this + // **only** when the IGM is zonal. + // + // Type: string + // RequirementLevel: Recommended + // Stability: Development + // + // Examples: "us-central1-a", "europe-west1-b" + GCPGCEInstanceGroupManagerZoneKey = attribute.Key("gcp.gce.instance_group_manager.zone") ) // GCPAppHubApplicationContainer returns an attribute KeyValue conforming to the @@ -6103,6 +6140,29 @@ func GCPGCEInstanceName(val string) attribute.KeyValue { return GCPGCEInstanceNameKey.String(val) } +// GCPGCEInstanceGroupManagerName returns an attribute KeyValue conforming to the +// "gcp.gce.instance_group_manager.name" semantic conventions. It represents the +// name of the Instance Group Manager (IGM) that manages this VM, if any. +func GCPGCEInstanceGroupManagerName(val string) attribute.KeyValue { + return GCPGCEInstanceGroupManagerNameKey.String(val) +} + +// GCPGCEInstanceGroupManagerRegion returns an attribute KeyValue conforming to +// the "gcp.gce.instance_group_manager.region" semantic conventions. It +// represents the region of a **regional** Instance Group Manager (e.g., +// `us-central1`). Set this **only** when the IGM is regional. +func GCPGCEInstanceGroupManagerRegion(val string) attribute.KeyValue { + return GCPGCEInstanceGroupManagerRegionKey.String(val) +} + +// GCPGCEInstanceGroupManagerZone returns an attribute KeyValue conforming to the +// "gcp.gce.instance_group_manager.zone" semantic conventions. It represents the +// zone of a **zonal** Instance Group Manager (e.g., `us-central1-a`). Set this +// **only** when the IGM is zonal. +func GCPGCEInstanceGroupManagerZone(val string) attribute.KeyValue { + return GCPGCEInstanceGroupManagerZoneKey.String(val) +} + // Enum values for gcp.apphub.service.criticality_type var ( // Mission critical service. @@ -6265,6 +6325,17 @@ const ( // Examples: "Math Tutor", "Fiction Writer" GenAIAgentNameKey = attribute.Key("gen_ai.agent.name") + // GenAIAgentVersionKey is the attribute Key conforming to the + // "gen_ai.agent.version" semantic conventions. It represents the version of the + // GenAI agent. + // + // Type: string + // RequirementLevel: Recommended + // Stability: Development + // + // Examples: "1.0.0", "2025-05-01" + GenAIAgentVersionKey = attribute.Key("gen_ai.agent.version") + // GenAIConversationIDKey is the attribute Key conforming to the // "gen_ai.conversation.id" semantic conventions. It represents the unique // identifier for a conversation (session, thread), used to store and correlate @@ -6663,6 +6734,44 @@ const ( // Examples: "gpt-4-0613" GenAIResponseModelKey = attribute.Key("gen_ai.response.model") + // GenAIRetrievalDocumentsKey is the attribute Key conforming to the + // "gen_ai.retrieval.documents" semantic conventions. It represents the + // documents retrieved. + // + // Type: any + // RequirementLevel: Recommended + // Stability: Development + // + // Examples: "[\n {\n "id": "doc_123",\n "score": 0.95\n },\n {\n "id": + // "doc_456",\n "score": 0.87\n },\n {\n "id": "doc_789",\n "score": 0.82\n + // }\n]\n" + // Note: Instrumentations MUST follow [Retrieval documents JSON schema]. + // When the attribute is recorded on events, it MUST be recorded in structured + // form. When recorded on spans, it MAY be recorded as a JSON string if + // structured + // format is not supported and SHOULD be recorded in structured form otherwise. + // + // Each document object SHOULD contain at least the following properties: + // `id` (string): A unique identifier for the document, `score` (double): The + // relevance score of the document + // + // [Retrieval documents JSON schema]: /docs/gen-ai/gen-ai-retrieval-documents.json + GenAIRetrievalDocumentsKey = attribute.Key("gen_ai.retrieval.documents") + + // GenAIRetrievalQueryTextKey is the attribute Key conforming to the + // "gen_ai.retrieval.query.text" semantic conventions. It represents the query + // text used for retrieval. + // + // Type: string + // RequirementLevel: Recommended + // Stability: Development + // + // Examples: "What is the capital of France?", "weather in Paris" + // Note: > [!Warning] + // + // > This attribute may contain sensitive information. + GenAIRetrievalQueryTextKey = attribute.Key("gen_ai.retrieval.query.text") + // GenAISystemInstructionsKey is the attribute Key conforming to the // "gen_ai.system_instructions" semantic conventions. It represents the system // message or instructions provided to the GenAI model separately from the chat @@ -6837,6 +6946,30 @@ const ( // updates. GenAIToolTypeKey = attribute.Key("gen_ai.tool.type") + // GenAIUsageCacheCreationInputTokensKey is the attribute Key conforming to the + // "gen_ai.usage.cache_creation.input_tokens" semantic conventions. It + // represents the number of input tokens written to a provider-managed cache. + // + // Type: int + // RequirementLevel: Recommended + // Stability: Development + // + // Examples: 25 + // Note: The value SHOULD be included in `gen_ai.usage.input_tokens`. + GenAIUsageCacheCreationInputTokensKey = attribute.Key("gen_ai.usage.cache_creation.input_tokens") + + // GenAIUsageCacheReadInputTokensKey is the attribute Key conforming to the + // "gen_ai.usage.cache_read.input_tokens" semantic conventions. It represents + // the number of input tokens served from a provider-managed cache. + // + // Type: int + // RequirementLevel: Recommended + // Stability: Development + // + // Examples: 50 + // Note: The value SHOULD be included in `gen_ai.usage.input_tokens`. + GenAIUsageCacheReadInputTokensKey = attribute.Key("gen_ai.usage.cache_read.input_tokens") + // GenAIUsageInputTokensKey is the attribute Key conforming to the // "gen_ai.usage.input_tokens" semantic conventions. It represents the number of // tokens used in the GenAI input (prompt). @@ -6846,6 +6979,12 @@ const ( // Stability: Development // // Examples: 100 + // Note: This value SHOULD include all types of input tokens, including cached + // tokens. + // Instrumentations SHOULD make a best effort to populate this value, using a + // total + // provided by the provider when available or, depending on the provider API, + // by summing different token types parsed from the provider output. GenAIUsageInputTokensKey = attribute.Key("gen_ai.usage.input_tokens") // GenAIUsageOutputTokensKey is the attribute Key conforming to the @@ -6880,6 +7019,13 @@ func GenAIAgentName(val string) attribute.KeyValue { return GenAIAgentNameKey.String(val) } +// GenAIAgentVersion returns an attribute KeyValue conforming to the +// "gen_ai.agent.version" semantic conventions. It represents the version of the +// GenAI agent. +func GenAIAgentVersion(val string) attribute.KeyValue { + return GenAIAgentVersionKey.String(val) +} + // GenAIConversationID returns an attribute KeyValue conforming to the // "gen_ai.conversation.id" semantic conventions. It represents the unique // identifier for a conversation (session, thread), used to store and correlate @@ -7036,6 +7182,13 @@ func GenAIResponseModel(val string) attribute.KeyValue { return GenAIResponseModelKey.String(val) } +// GenAIRetrievalQueryText returns an attribute KeyValue conforming to the +// "gen_ai.retrieval.query.text" semantic conventions. It represents the query +// text used for retrieval. +func GenAIRetrievalQueryText(val string) attribute.KeyValue { + return GenAIRetrievalQueryTextKey.String(val) +} + // GenAIToolCallID returns an attribute KeyValue conforming to the // "gen_ai.tool.call.id" semantic conventions. It represents the tool call // identifier. @@ -7064,6 +7217,20 @@ func GenAIToolType(val string) attribute.KeyValue { return GenAIToolTypeKey.String(val) } +// GenAIUsageCacheCreationInputTokens returns an attribute KeyValue conforming to +// the "gen_ai.usage.cache_creation.input_tokens" semantic conventions. It +// represents the number of input tokens written to a provider-managed cache. +func GenAIUsageCacheCreationInputTokens(val int) attribute.KeyValue { + return GenAIUsageCacheCreationInputTokensKey.Int(val) +} + +// GenAIUsageCacheReadInputTokens returns an attribute KeyValue conforming to the +// "gen_ai.usage.cache_read.input_tokens" semantic conventions. It represents the +// number of input tokens served from a provider-managed cache. +func GenAIUsageCacheReadInputTokens(val int) attribute.KeyValue { + return GenAIUsageCacheReadInputTokensKey.Int(val) +} + // GenAIUsageInputTokens returns an attribute KeyValue conforming to the // "gen_ai.usage.input_tokens" semantic conventions. It represents the number of // tokens used in the GenAI input (prompt). @@ -7100,6 +7267,11 @@ var ( // // [OpenAI Create embeddings API]: https://platform.openai.com/docs/api-reference/embeddings/create GenAIOperationNameEmbeddings = GenAIOperationNameKey.String("embeddings") + // Retrieval operation such as [OpenAI Search Vector Store API] + // Stability: development + // + // [OpenAI Search Vector Store API]: https://platform.openai.com/docs/api-reference/vector-stores/search + GenAIOperationNameRetrieval = GenAIOperationNameKey.String("retrieval") // Create GenAI agent // Stability: development GenAIOperationNameCreateAgent = GenAIOperationNameKey.String("create_agent") @@ -7889,9 +8061,18 @@ const ( // the list of known HTTP methods. If this override is done via environment // variable, then the environment variable MUST be named // OTEL_INSTRUMENTATION_HTTP_KNOWN_METHODS and support a comma-separated list of - // case-sensitive known HTTP methods - // (this list MUST be a full override of the default known method, it is not a - // list of known methods in addition to the defaults). + // case-sensitive known HTTP methods. + // + // + // If this override is done via declarative configuration, then the list MUST be + // configurable via the `known_methods` property + // (an array of case-sensitive strings with minimum items 0) under + // `.instrumentation/development.general.http.client` and/or + // `.instrumentation/development.general.http.server`. + // + // In either case, this list MUST be a full override of the default known + // methods, + // it is not a list of known methods in addition to the defaults. // // HTTP method names are case-sensitive and `http.request.method` attribute // value MUST match a known HTTP method name exactly. @@ -8845,7 +9026,7 @@ const ( // // Type: string // RequirementLevel: Recommended - // Stability: Alpha + // Stability: Beta // // Examples: "opentelemetry-cluster" K8SClusterNameKey = attribute.Key("k8s.cluster.name") @@ -8856,7 +9037,7 @@ const ( // // Type: string // RequirementLevel: Recommended - // Stability: Alpha + // Stability: Beta // // Examples: "218fc5a9-a5f1-4b54-aa05-46717d0ab26d" // Note: K8s doesn't have support for obtaining a cluster ID. If this is ever @@ -8892,7 +9073,7 @@ const ( // // Type: string // RequirementLevel: Recommended - // Stability: Alpha + // Stability: Beta // // Examples: "redis" K8SContainerNameKey = attribute.Key("k8s.container.name") @@ -8904,7 +9085,7 @@ const ( // // Type: int // RequirementLevel: Recommended - // Stability: Alpha + // Stability: Beta // // Examples: K8SContainerRestartCountKey = attribute.Key("k8s.container.restart_count") @@ -8955,7 +9136,7 @@ const ( // // Type: string // RequirementLevel: Recommended - // Stability: Alpha + // Stability: Beta // // Examples: "opentelemetry" K8SCronJobNameKey = attribute.Key("k8s.cronjob.name") @@ -8965,7 +9146,7 @@ const ( // // Type: string // RequirementLevel: Recommended - // Stability: Alpha + // Stability: Beta // // Examples: "275ecb36-5aa8-4c2a-9c47-d8bb681b9aff" K8SCronJobUIDKey = attribute.Key("k8s.cronjob.uid") @@ -8976,7 +9157,7 @@ const ( // // Type: string // RequirementLevel: Recommended - // Stability: Alpha + // Stability: Beta // // Examples: "opentelemetry" K8SDaemonSetNameKey = attribute.Key("k8s.daemonset.name") @@ -8986,7 +9167,7 @@ const ( // // Type: string // RequirementLevel: Recommended - // Stability: Alpha + // Stability: Beta // // Examples: "275ecb36-5aa8-4c2a-9c47-d8bb681b9aff" K8SDaemonSetUIDKey = attribute.Key("k8s.daemonset.uid") @@ -8997,7 +9178,7 @@ const ( // // Type: string // RequirementLevel: Recommended - // Stability: Alpha + // Stability: Beta // // Examples: "opentelemetry" K8SDeploymentNameKey = attribute.Key("k8s.deployment.name") @@ -9008,7 +9189,7 @@ const ( // // Type: string // RequirementLevel: Recommended - // Stability: Alpha + // Stability: Beta // // Examples: "275ecb36-5aa8-4c2a-9c47-d8bb681b9aff" K8SDeploymentUIDKey = attribute.Key("k8s.deployment.uid") @@ -9098,7 +9279,7 @@ const ( // // Type: string // RequirementLevel: Recommended - // Stability: Alpha + // Stability: Beta // // Examples: "opentelemetry" K8SJobNameKey = attribute.Key("k8s.job.name") @@ -9108,7 +9289,7 @@ const ( // // Type: string // RequirementLevel: Recommended - // Stability: Alpha + // Stability: Beta // // Examples: "275ecb36-5aa8-4c2a-9c47-d8bb681b9aff" K8SJobUIDKey = attribute.Key("k8s.job.uid") @@ -9119,7 +9300,7 @@ const ( // // Type: string // RequirementLevel: Recommended - // Stability: Alpha + // Stability: Beta // // Examples: "default" K8SNamespaceNameKey = attribute.Key("k8s.namespace.name") @@ -9184,7 +9365,7 @@ const ( // // Type: string // RequirementLevel: Recommended - // Stability: Alpha + // Stability: Beta // // Examples: "node-1" K8SNodeNameKey = attribute.Key("k8s.node.name") @@ -9194,7 +9375,7 @@ const ( // // Type: string // RequirementLevel: Recommended - // Stability: Alpha + // Stability: Beta // // Examples: "1eb3a0c6-0477-4080-a9cb-0cb7db65c6a2" K8SNodeUIDKey = attribute.Key("k8s.node.uid") @@ -9204,7 +9385,7 @@ const ( // // Type: string // RequirementLevel: Recommended - // Stability: Alpha + // Stability: Beta // // Examples: "collector-gateway" // Note: The K8s Pod spec has an optional hostname field, which can be used to @@ -9224,7 +9405,7 @@ const ( // // Type: string // RequirementLevel: Recommended - // Stability: Alpha + // Stability: Beta // // Examples: "172.18.0.2" // Note: This attribute aligns with the `podIP` field of the @@ -9238,7 +9419,7 @@ const ( // // Type: string // RequirementLevel: Recommended - // Stability: Alpha + // Stability: Beta // // Examples: "opentelemetry-pod-autoconf" K8SPodNameKey = attribute.Key("k8s.pod.name") @@ -9249,7 +9430,7 @@ const ( // // Type: string // RequirementLevel: Recommended - // Stability: Alpha + // Stability: Beta // // Examples: "2025-12-04T08:41:03Z" // Note: Date and time at which the object was acknowledged by the Kubelet. @@ -9293,7 +9474,7 @@ const ( // // Type: string // RequirementLevel: Recommended - // Stability: Alpha + // Stability: Beta // // Examples: "275ecb36-5aa8-4c2a-9c47-d8bb681b9aff" K8SPodUIDKey = attribute.Key("k8s.pod.uid") @@ -9304,7 +9485,7 @@ const ( // // Type: string // RequirementLevel: Recommended - // Stability: Alpha + // Stability: Beta // // Examples: "opentelemetry" K8SReplicaSetNameKey = attribute.Key("k8s.replicaset.name") @@ -9315,7 +9496,7 @@ const ( // // Type: string // RequirementLevel: Recommended - // Stability: Alpha + // Stability: Beta // // Examples: "275ecb36-5aa8-4c2a-9c47-d8bb681b9aff" K8SReplicaSetUIDKey = attribute.Key("k8s.replicaset.uid") @@ -9383,13 +9564,152 @@ const ( // Examples: "275ecb36-5aa8-4c2a-9c47-d8bb681b9aff" K8SResourceQuotaUIDKey = attribute.Key("k8s.resourcequota.uid") + // K8SServiceEndpointAddressTypeKey is the attribute Key conforming to the + // "k8s.service.endpoint.address_type" semantic conventions. It represents the + // address type of the service endpoint. + // + // Type: Enum + // RequirementLevel: Recommended + // Stability: Development + // + // Examples: "IPv4", "IPv6" + // Note: The network address family or type of the endpoint. + // This attribute aligns with the `addressType` field of the + // [K8s EndpointSlice]. + // It is used to differentiate metrics when a Service is backed by multiple + // address types + // (e.g., in dual-stack clusters). + // + // [K8s EndpointSlice]: https://kubernetes.io/docs/reference/kubernetes-api/service-resources/endpoint-slice-v1/ + K8SServiceEndpointAddressTypeKey = attribute.Key("k8s.service.endpoint.address_type") + + // K8SServiceEndpointConditionKey is the attribute Key conforming to the + // "k8s.service.endpoint.condition" semantic conventions. It represents the + // condition of the service endpoint. + // + // Type: Enum + // RequirementLevel: Recommended + // Stability: Development + // + // Examples: "ready", "serving", "terminating" + // Note: The current operational condition of the service endpoint. + // An endpoint can have multiple conditions set at once (e.g., both `serving` + // and `terminating` during rollout). + // This attribute aligns with the condition fields in the [K8s EndpointSlice]. + // + // [K8s EndpointSlice]: https://kubernetes.io/docs/reference/kubernetes-api/service-resources/endpoint-slice-v1/ + K8SServiceEndpointConditionKey = attribute.Key("k8s.service.endpoint.condition") + + // K8SServiceEndpointZoneKey is the attribute Key conforming to the + // "k8s.service.endpoint.zone" semantic conventions. It represents the zone of + // the service endpoint. + // + // Type: string + // RequirementLevel: Recommended + // Stability: Development + // + // Examples: "us-east-1a", "us-west-2b", "zone-a", "" + // Note: The zone where the endpoint is located, typically corresponding to a + // failure domain. + // This attribute aligns with the `zone` field of endpoints in the + // [K8s EndpointSlice]. + // It enables zone-aware monitoring of service endpoint distribution and + // supports + // features like [Topology Aware Routing]. + // + // If the zone is not populated (e.g., nodes without the + // `topology.kubernetes.io/zone` label), + // the attribute value will be an empty string. + // + // [K8s EndpointSlice]: https://kubernetes.io/docs/reference/kubernetes-api/service-resources/endpoint-slice-v1/ + // [Topology Aware Routing]: https://kubernetes.io/docs/concepts/services-networking/topology-aware-routing/ + K8SServiceEndpointZoneKey = attribute.Key("k8s.service.endpoint.zone") + + // K8SServiceNameKey is the attribute Key conforming to the "k8s.service.name" + // semantic conventions. It represents the name of the Service. + // + // Type: string + // RequirementLevel: Recommended + // Stability: Development + // + // Examples: "my-service" + K8SServiceNameKey = attribute.Key("k8s.service.name") + + // K8SServicePublishNotReadyAddressesKey is the attribute Key conforming to the + // "k8s.service.publish_not_ready_addresses" semantic conventions. It represents + // the whether the Service publishes not-ready endpoints. + // + // Type: boolean + // RequirementLevel: Recommended + // Stability: Development + // + // Examples: true, false + // Note: Whether the Service is configured to publish endpoints before the pods + // are ready. + // This attribute is typically used to indicate that a Service (such as a + // headless + // Service for a StatefulSet) allows peer discovery before pods pass their + // readiness probes. + // It aligns with the `publishNotReadyAddresses` field of the + // [K8s ServiceSpec]. + // + // [K8s ServiceSpec]: https://kubernetes.io/docs/reference/kubernetes-api/service-resources/service-v1/#ServiceSpec + K8SServicePublishNotReadyAddressesKey = attribute.Key("k8s.service.publish_not_ready_addresses") + + // K8SServiceTrafficDistributionKey is the attribute Key conforming to the + // "k8s.service.traffic_distribution" semantic conventions. It represents the + // traffic distribution policy for the Service. + // + // Type: string + // RequirementLevel: Recommended + // Stability: Development + // + // Examples: "PreferSameZone", "PreferSameNode" + // Note: Specifies how traffic is distributed to endpoints for this Service. + // This attribute aligns with the `trafficDistribution` field of the + // [K8s ServiceSpec]. + // Known values include `PreferSameZone` (prefer endpoints in the same zone as + // the client) and + // `PreferSameNode` (prefer endpoints on the same node, fallback to same zone, + // then cluster-wide). + // If this field is not set on the Service, the attribute SHOULD NOT be emitted. + // When not set, Kubernetes distributes traffic evenly across all endpoints + // cluster-wide. + // + // [K8s ServiceSpec]: https://kubernetes.io/docs/reference/networking/virtual-ips/#traffic-distribution + K8SServiceTrafficDistributionKey = attribute.Key("k8s.service.traffic_distribution") + + // K8SServiceTypeKey is the attribute Key conforming to the "k8s.service.type" + // semantic conventions. It represents the type of the Kubernetes Service. + // + // Type: Enum + // RequirementLevel: Recommended + // Stability: Development + // + // Examples: "ClusterIP", "NodePort", "LoadBalancer" + // Note: This attribute aligns with the `type` field of the + // [K8s ServiceSpec]. + // + // [K8s ServiceSpec]: https://kubernetes.io/docs/reference/kubernetes-api/service-resources/service-v1/#ServiceSpec + K8SServiceTypeKey = attribute.Key("k8s.service.type") + + // K8SServiceUIDKey is the attribute Key conforming to the "k8s.service.uid" + // semantic conventions. It represents the UID of the Service. + // + // Type: string + // RequirementLevel: Recommended + // Stability: Development + // + // Examples: "275ecb36-5aa8-4c2a-9c47-d8bb681b9aff" + K8SServiceUIDKey = attribute.Key("k8s.service.uid") + // K8SStatefulSetNameKey is the attribute Key conforming to the // "k8s.statefulset.name" semantic conventions. It represents the name of the // StatefulSet. // // Type: string // RequirementLevel: Recommended - // Stability: Alpha + // Stability: Beta // // Examples: "opentelemetry" K8SStatefulSetNameKey = attribute.Key("k8s.statefulset.name") @@ -9400,7 +9720,7 @@ const ( // // Type: string // RequirementLevel: Recommended - // Stability: Alpha + // Stability: Beta // // Examples: "275ecb36-5aa8-4c2a-9c47-d8bb681b9aff" K8SStatefulSetUIDKey = attribute.Key("k8s.statefulset.uid") @@ -9803,6 +10123,64 @@ func K8SResourceQuotaUID(val string) attribute.KeyValue { return K8SResourceQuotaUIDKey.String(val) } +// K8SServiceAnnotation returns an attribute KeyValue conforming to the +// "k8s.service.annotation" semantic conventions. It represents the annotation +// placed on the Service, the `` being the annotation name, the value being +// the annotation value, even if the value is empty. +func K8SServiceAnnotation(key string, val string) attribute.KeyValue { + return attribute.String("k8s.service.annotation."+key, val) +} + +// K8SServiceEndpointZone returns an attribute KeyValue conforming to the +// "k8s.service.endpoint.zone" semantic conventions. It represents the zone of +// the service endpoint. +func K8SServiceEndpointZone(val string) attribute.KeyValue { + return K8SServiceEndpointZoneKey.String(val) +} + +// K8SServiceLabel returns an attribute KeyValue conforming to the +// "k8s.service.label" semantic conventions. It represents the label placed on +// the Service, the `` being the label name, the value being the label +// value, even if the value is empty. +func K8SServiceLabel(key string, val string) attribute.KeyValue { + return attribute.String("k8s.service.label."+key, val) +} + +// K8SServiceName returns an attribute KeyValue conforming to the +// "k8s.service.name" semantic conventions. It represents the name of the +// Service. +func K8SServiceName(val string) attribute.KeyValue { + return K8SServiceNameKey.String(val) +} + +// K8SServicePublishNotReadyAddresses returns an attribute KeyValue conforming to +// the "k8s.service.publish_not_ready_addresses" semantic conventions. It +// represents the whether the Service publishes not-ready endpoints. +func K8SServicePublishNotReadyAddresses(val bool) attribute.KeyValue { + return K8SServicePublishNotReadyAddressesKey.Bool(val) +} + +// K8SServiceSelector returns an attribute KeyValue conforming to the +// "k8s.service.selector" semantic conventions. It represents the selector +// key-value pair placed on the Service, the `` being the selector key, the +// value being the selector value. +func K8SServiceSelector(key string, val string) attribute.KeyValue { + return attribute.String("k8s.service.selector."+key, val) +} + +// K8SServiceTrafficDistribution returns an attribute KeyValue conforming to the +// "k8s.service.traffic_distribution" semantic conventions. It represents the +// traffic distribution policy for the Service. +func K8SServiceTrafficDistribution(val string) attribute.KeyValue { + return K8SServiceTrafficDistributionKey.String(val) +} + +// K8SServiceUID returns an attribute KeyValue conforming to the +// "k8s.service.uid" semantic conventions. It represents the UID of the Service. +func K8SServiceUID(val string) attribute.KeyValue { + return K8SServiceUIDKey.String(val) +} + // K8SStatefulSetAnnotation returns an attribute KeyValue conforming to the // "k8s.statefulset.annotation" semantic conventions. It represents the // annotation placed on the StatefulSet, the `` being the annotation name, @@ -9995,6 +10373,48 @@ var ( K8SPodStatusReasonUnexpectedAdmissionError = K8SPodStatusReasonKey.String("UnexpectedAdmissionError") ) +// Enum values for k8s.service.endpoint.address_type +var ( + // IPv4 address type + // Stability: development + K8SServiceEndpointAddressTypeIPv4 = K8SServiceEndpointAddressTypeKey.String("IPv4") + // IPv6 address type + // Stability: development + K8SServiceEndpointAddressTypeIPv6 = K8SServiceEndpointAddressTypeKey.String("IPv6") + // FQDN address type + // Stability: development + K8SServiceEndpointAddressTypeFqdn = K8SServiceEndpointAddressTypeKey.String("FQDN") +) + +// Enum values for k8s.service.endpoint.condition +var ( + // The endpoint is ready to receive new connections. + // Stability: development + K8SServiceEndpointConditionReady = K8SServiceEndpointConditionKey.String("ready") + // The endpoint is currently handling traffic. + // Stability: development + K8SServiceEndpointConditionServing = K8SServiceEndpointConditionKey.String("serving") + // The endpoint is in the process of shutting down. + // Stability: development + K8SServiceEndpointConditionTerminating = K8SServiceEndpointConditionKey.String("terminating") +) + +// Enum values for k8s.service.type +var ( + // ClusterIP service type + // Stability: development + K8SServiceTypeClusterIP = K8SServiceTypeKey.String("ClusterIP") + // NodePort service type + // Stability: development + K8SServiceTypeNodePort = K8SServiceTypeKey.String("NodePort") + // LoadBalancer service type + // Stability: development + K8SServiceTypeLoadBalancer = K8SServiceTypeKey.String("LoadBalancer") + // ExternalName service type + // Stability: development + K8SServiceTypeExternalName = K8SServiceTypeKey.String("ExternalName") +) + // Enum values for k8s.volume.type var ( // A [persistentVolumeClaim] volume @@ -11770,6 +12190,16 @@ func OncRPCVersion(val int) attribute.KeyValue { // Namespace: openai const ( + // OpenAIAPITypeKey is the attribute Key conforming to the "openai.api.type" + // semantic conventions. It represents the type of OpenAI API being used. + // + // Type: Enum + // RequirementLevel: Recommended + // Stability: Development + // + // Examples: + OpenAIAPITypeKey = attribute.Key("openai.api.type") + // OpenAIRequestServiceTierKey is the attribute Key conforming to the // "openai.request.service_tier" semantic conventions. It represents the service // tier requested. May be a specific tier, default, or auto. @@ -11818,6 +12248,20 @@ func OpenAIResponseSystemFingerprint(val string) attribute.KeyValue { return OpenAIResponseSystemFingerprintKey.String(val) } +// Enum values for openai.api.type +var ( + // The OpenAI [Chat Completions API]. + // Stability: development + // + // [Chat Completions API]: https://developers.openai.com/api/reference/chat-completions/overview + OpenAIAPITypeChatCompletions = OpenAIAPITypeKey.String("chat_completions") + // The OpenAI [Responses API]. + // Stability: development + // + // [Responses API]: https://developers.openai.com/api/reference/responses/overview + OpenAIAPITypeResponses = OpenAIAPITypeKey.String("responses") +) + // Enum values for openai.request.service_tier var ( // The system will utilize scale tier credits until they are exhausted. @@ -11892,6 +12336,158 @@ var ( OpenTracingRefTypeFollowsFrom = OpenTracingRefTypeKey.String("follows_from") ) +// Namespace: oracle +const ( + // OracleDBDomainKey is the attribute Key conforming to the "oracle.db.domain" + // semantic conventions. It represents the database domain associated with the + // connection. + // + // Type: string + // RequirementLevel: Recommended + // Stability: Development + // + // Examples: "example.com", "corp.internal", "prod.db.local" + // Note: This attribute SHOULD be set to the value of the `DB_DOMAIN` + // initialization parameter, + // as exposed in `v$parameter`. `DB_DOMAIN` defines the domain portion of the + // global + // database name and SHOULD be configured when a database is, or may become, + // part of a + // distributed environment. Its value consists of one or more valid identifiers + // (alphanumeric ASCII characters) separated by periods. + OracleDBDomainKey = attribute.Key("oracle.db.domain") + + // OracleDBInstanceNameKey is the attribute Key conforming to the + // "oracle.db.instance.name" semantic conventions. It represents the instance + // name associated with the connection in an Oracle Real Application Clusters + // environment. + // + // Type: string + // RequirementLevel: Recommended + // Stability: Development + // + // Examples: "ORCL1", "ORCL2", "ORCL3" + // Note: There can be multiple instances associated with a single database + // service. It indicates the + // unique instance name to which the connection is currently bound. For non-RAC + // databases, this value + // defaults to the `oracle.db.name`. + OracleDBInstanceNameKey = attribute.Key("oracle.db.instance.name") + + // OracleDBNameKey is the attribute Key conforming to the "oracle.db.name" + // semantic conventions. It represents the database name associated with the + // connection. + // + // Type: string + // RequirementLevel: Recommended + // Stability: Development + // + // Examples: "ORCL1", "FREE" + // Note: This attribute SHOULD be set to the value of the parameter `DB_NAME` + // exposed in `v$parameter`. + OracleDBNameKey = attribute.Key("oracle.db.name") + + // OracleDBPdbKey is the attribute Key conforming to the "oracle.db.pdb" + // semantic conventions. It represents the pluggable database (PDB) name + // associated with the connection. + // + // Type: string + // RequirementLevel: Recommended + // Stability: Development + // + // Examples: "PDB1", "FREEPDB" + // Note: This attribute SHOULD reflect the PDB that the session is currently + // connected to. + // If instrumentation cannot reliably obtain the active PDB name for each + // operation + // without issuing an additional query (such as `SELECT SYS_CONTEXT`), it is + // RECOMMENDED to fall back to the PDB name specified at connection + // establishment. + OracleDBPdbKey = attribute.Key("oracle.db.pdb") + + // OracleDBServiceKey is the attribute Key conforming to the "oracle.db.service" + // semantic conventions. It represents the service name currently associated + // with the database connection. + // + // Type: string + // RequirementLevel: Recommended + // Stability: Development + // + // Examples: "order-processing-service", "db_low.adb.oraclecloud.com", + // "db_high.adb.oraclecloud.com" + // Note: The effective service name for a connection can change during its + // lifetime, + // for example after executing sql, `ALTER SESSION`. If an instrumentation + // cannot reliably + // obtain the current service name for each operation without issuing an + // additional + // query (such as `SELECT SYS_CONTEXT`), it is RECOMMENDED to fall back to the + // service name originally provided at connection establishment. + OracleDBServiceKey = attribute.Key("oracle.db.service") +) + +// OracleDBDomain returns an attribute KeyValue conforming to the +// "oracle.db.domain" semantic conventions. It represents the database domain +// associated with the connection. +func OracleDBDomain(val string) attribute.KeyValue { + return OracleDBDomainKey.String(val) +} + +// OracleDBInstanceName returns an attribute KeyValue conforming to the +// "oracle.db.instance.name" semantic conventions. It represents the instance +// name associated with the connection in an Oracle Real Application Clusters +// environment. +func OracleDBInstanceName(val string) attribute.KeyValue { + return OracleDBInstanceNameKey.String(val) +} + +// OracleDBName returns an attribute KeyValue conforming to the "oracle.db.name" +// semantic conventions. It represents the database name associated with the +// connection. +func OracleDBName(val string) attribute.KeyValue { + return OracleDBNameKey.String(val) +} + +// OracleDBPdb returns an attribute KeyValue conforming to the "oracle.db.pdb" +// semantic conventions. It represents the pluggable database (PDB) name +// associated with the connection. +func OracleDBPdb(val string) attribute.KeyValue { + return OracleDBPdbKey.String(val) +} + +// OracleDBService returns an attribute KeyValue conforming to the +// "oracle.db.service" semantic conventions. It represents the service name +// currently associated with the database connection. +func OracleDBService(val string) attribute.KeyValue { + return OracleDBServiceKey.String(val) +} + +// Namespace: oracle_cloud +const ( + // OracleCloudRealmKey is the attribute Key conforming to the + // "oracle_cloud.realm" semantic conventions. It represents the OCI realm + // identifier that indicates the isolated partition in which the tenancy and its + // resources reside. + // + // Type: string + // RequirementLevel: Recommended + // Stability: Development + // + // Examples: "oc1", "oc2" + // Note: See [OCI documentation on realms] + // + // [OCI documentation on realms]: https://docs.oracle.com/iaas/Content/General/Concepts/regions.htm + OracleCloudRealmKey = attribute.Key("oracle_cloud.realm") +) + +// OracleCloudRealm returns an attribute KeyValue conforming to the +// "oracle_cloud.realm" semantic conventions. It represents the OCI realm +// identifier that indicates the isolated partition in which the tenancy and its +// resources reside. +func OracleCloudRealm(val string) attribute.KeyValue { + return OracleCloudRealmKey.String(val) +} + // Namespace: os const ( // OSBuildIDKey is the attribute Key conforming to the "os.build_id" semantic @@ -12423,6 +13019,33 @@ const ( // // Examples: "/bazinga/" PprofProfileKeepFramesKey = attribute.Key("pprof.profile.keep_frames") + + // PprofScopeDefaultSampleTypeKey is the attribute Key conforming to the + // "pprof.scope.default_sample_type" semantic conventions. It represents the + // records the pprof's default_sample_type in the original profile. Not set if + // the default sample type was missing. + // + // Type: string + // RequirementLevel: Recommended + // Stability: Development + // + // Examples: "cpu" + // Note: This attribute, if present, MUST be set at the scope level + // (resource_profiles[].scope_profiles[].scope.attributes[]). + PprofScopeDefaultSampleTypeKey = attribute.Key("pprof.scope.default_sample_type") + + // PprofScopeSampleTypeOrderKey is the attribute Key conforming to the + // "pprof.scope.sample_type_order" semantic conventions. It represents the + // records the indexes of the sample types in the original profile. + // + // Type: int[] + // RequirementLevel: Recommended + // Stability: Development + // + // Examples: 3, 0, 1, 2 + // Note: This attribute, if present, MUST be set at the scope level + // (resource_profiles[].scope_profiles[].scope.attributes[]). + PprofScopeSampleTypeOrderKey = attribute.Key("pprof.scope.sample_type_order") ) // PprofLocationIsFolded returns an attribute KeyValue conforming to the @@ -12494,6 +13117,21 @@ func PprofProfileKeepFrames(val string) attribute.KeyValue { return PprofProfileKeepFramesKey.String(val) } +// PprofScopeDefaultSampleType returns an attribute KeyValue conforming to the +// "pprof.scope.default_sample_type" semantic conventions. It represents the +// records the pprof's default_sample_type in the original profile. Not set if +// the default sample type was missing. +func PprofScopeDefaultSampleType(val string) attribute.KeyValue { + return PprofScopeDefaultSampleTypeKey.String(val) +} + +// PprofScopeSampleTypeOrder returns an attribute KeyValue conforming to the +// "pprof.scope.sample_type_order" semantic conventions. It represents the +// records the indexes of the sample types in the original profile. +func PprofScopeSampleTypeOrder(val ...int) attribute.KeyValue { + return PprofScopeSampleTypeOrderKey.IntSlice(val) +} + // Namespace: process const ( // ProcessArgsCountKey is the attribute Key conforming to the @@ -13258,59 +13896,13 @@ var ( // Namespace: rpc const ( - // RPCMessageCompressedSizeKey is the attribute Key conforming to the - // "rpc.message.compressed_size" semantic conventions. It represents the - // compressed size of the message in bytes. - // - // Type: int - // RequirementLevel: Recommended - // Stability: Development - // - // Examples: - RPCMessageCompressedSizeKey = attribute.Key("rpc.message.compressed_size") - - // RPCMessageIDKey is the attribute Key conforming to the "rpc.message.id" - // semantic conventions. It MUST be calculated as two different counters - // starting from `1` one for sent messages and one for received message.. - // - // Type: int - // RequirementLevel: Recommended - // Stability: Development - // - // Examples: - // Note: This way we guarantee that the values will be consistent between - // different implementations. - RPCMessageIDKey = attribute.Key("rpc.message.id") - - // RPCMessageTypeKey is the attribute Key conforming to the "rpc.message.type" - // semantic conventions. It represents the whether this is a received or sent - // message. - // - // Type: Enum - // RequirementLevel: Recommended - // Stability: Development - // - // Examples: - RPCMessageTypeKey = attribute.Key("rpc.message.type") - - // RPCMessageUncompressedSizeKey is the attribute Key conforming to the - // "rpc.message.uncompressed_size" semantic conventions. It represents the - // uncompressed size of the message in bytes. - // - // Type: int - // RequirementLevel: Recommended - // Stability: Development - // - // Examples: - RPCMessageUncompressedSizeKey = attribute.Key("rpc.message.uncompressed_size") - // RPCMethodKey is the attribute Key conforming to the "rpc.method" semantic // conventions. It represents the fully-qualified logical name of the method // from the RPC interface perspective. // // Type: string // RequirementLevel: Recommended - // Stability: Development + // Stability: Release_Candidate // // Examples: "com.example.ExampleService/exampleMethod", "EchoService/Echo", // "_OTHER" @@ -13345,7 +13937,7 @@ const ( // // Type: string // RequirementLevel: Recommended - // Stability: Development + // Stability: Release_Candidate // // Examples: "com.myservice.EchoService/catchAll", // "com.myservice.EchoService/unknownMethod", "InvalidMethod" @@ -13357,7 +13949,7 @@ const ( // // Type: string // RequirementLevel: Recommended - // Stability: Development + // Stability: Release_Candidate // // Examples: "OK", "DEADLINE_EXCEEDED", "-32602" // Note: Usually it represents an error code, but may also represent partial @@ -13373,7 +13965,7 @@ const ( // // Type: Enum // RequirementLevel: Recommended - // Stability: Development + // Stability: Release_Candidate // // Examples: // Note: The client and server RPC systems may differ for the same RPC @@ -13383,27 +13975,6 @@ const ( RPCSystemNameKey = attribute.Key("rpc.system.name") ) -// RPCMessageCompressedSize returns an attribute KeyValue conforming to the -// "rpc.message.compressed_size" semantic conventions. It represents the -// compressed size of the message in bytes. -func RPCMessageCompressedSize(val int) attribute.KeyValue { - return RPCMessageCompressedSizeKey.Int(val) -} - -// RPCMessageID returns an attribute KeyValue conforming to the "rpc.message.id" -// semantic conventions. It MUST be calculated as two different counters starting -// from `1` one for sent messages and one for received message.. -func RPCMessageID(val int) attribute.KeyValue { - return RPCMessageIDKey.Int(val) -} - -// RPCMessageUncompressedSize returns an attribute KeyValue conforming to the -// "rpc.message.uncompressed_size" semantic conventions. It represents the -// uncompressed size of the message in bytes. -func RPCMessageUncompressedSize(val int) attribute.KeyValue { - return RPCMessageUncompressedSizeKey.Int(val) -} - // RPCMethod returns an attribute KeyValue conforming to the "rpc.method" // semantic conventions. It represents the fully-qualified logical name of the // method from the RPC interface perspective. @@ -13441,25 +14012,15 @@ func RPCResponseStatusCode(val string) attribute.KeyValue { return RPCResponseStatusCodeKey.String(val) } -// Enum values for rpc.message.type -var ( - // sent - // Stability: development - RPCMessageTypeSent = RPCMessageTypeKey.String("SENT") - // received - // Stability: development - RPCMessageTypeReceived = RPCMessageTypeKey.String("RECEIVED") -) - // Enum values for rpc.system.name var ( // [gRPC] - // Stability: development + // Stability: release_candidate // // [gRPC]: https://grpc.io/ RPCSystemNameGRPC = RPCSystemNameKey.String("grpc") // [Apache Dubbo] - // Stability: development + // Stability: release_candidate // // [Apache Dubbo]: https://dubbo.apache.org/ RPCSystemNameDubbo = RPCSystemNameKey.String("dubbo") @@ -13674,13 +14235,28 @@ func ServerPort(val int) attribute.KeyValue { // Namespace: service const ( + // ServiceCriticalityKey is the attribute Key conforming to the + // "service.criticality" semantic conventions. It represents the operational + // criticality of the service. + // + // Type: Enum + // RequirementLevel: Recommended + // Stability: Development + // + // Examples: "critical", "high", "medium", "low" + // Note: Application developers are encouraged to set `service.criticality` to + // express the operational importance of their services. Telemetry consumers MAY + // use this attribute to optimize telemetry collection or improve user + // experience. + ServiceCriticalityKey = attribute.Key("service.criticality") + // ServiceInstanceIDKey is the attribute Key conforming to the // "service.instance.id" semantic conventions. It represents the string ID of // the service instance. // // Type: string // RequirementLevel: Recommended - // Stability: Development + // Stability: Stable // // Examples: "627cc493-f310-47de-96bd-71410b7dec09" // Note: MUST be unique for each instance of the same @@ -13754,7 +14330,7 @@ const ( // // Type: string // RequirementLevel: Recommended - // Stability: Development + // Stability: Stable // // Examples: "Shop" // Note: A string value having a meaning that helps to distinguish a group of @@ -13856,6 +14432,29 @@ func ServiceVersion(val string) attribute.KeyValue { return ServiceVersionKey.String(val) } +// Enum values for service.criticality +var ( + // Service is business-critical; downtime directly impacts revenue, user + // experience, or core functionality. + // + // Stability: development + ServiceCriticalityCritical = ServiceCriticalityKey.String("critical") + // Service is important but has degradation tolerance or fallback mechanisms. + // + // Stability: development + ServiceCriticalityHigh = ServiceCriticalityKey.String("high") + // Service provides supplementary functionality; degradation has limited user + // impact. + // + // Stability: development + ServiceCriticalityMedium = ServiceCriticalityKey.String("medium") + // Service is non-essential to core operations; used for background tasks or + // internal tools. + // + // Stability: development + ServiceCriticalityLow = ServiceCriticalityKey.String("low") +) + // Namespace: session const ( // SessionIDKey is the attribute Key conforming to the "session.id" semantic @@ -15175,6 +15774,18 @@ const ( // // This list is subject to change over time. // + // Matching of query parameter keys against the sensitive list SHOULD be + // case-sensitive. + // + // + // Instrumentation MAY provide a way to override this list via declarative + // configuration. + // If so, it SHOULD use the `sensitive_query_parameters` property + // (an array of case-sensitive strings with minimum items 0) under + // `.instrumentation/development.general.sanitization.url`. + // This list is a full override of the default sensitive query parameter keys, + // it is not a list of keys in addition to the defaults. + // // When a query string value is redacted, the query string key SHOULD still be // preserved, e.g. // `https://www.example.com/path?color=blue&sig=REDACTED`. @@ -15250,6 +15861,17 @@ const ( // // This list is subject to change over time. // + // Matching of query parameter keys against the sensitive list SHOULD be + // case-sensitive. + // + // Instrumentation MAY provide a way to override this list via declarative + // configuration. + // If so, it SHOULD use the `sensitive_query_parameters` property + // (an array of case-sensitive strings with minimum items 0) under + // `.instrumentation/development.general.sanitization.url`. + // This list is a full override of the default sensitive query parameter keys, + // it is not a list of keys in addition to the defaults. + // // When a query string value is redacted, the query string key SHOULD still be // preserved, e.g. // `q=OpenTelemetry&sig=REDACTED`. diff --git a/vendor/go.opentelemetry.io/otel/semconv/v1.39.0/doc.go b/vendor/go.opentelemetry.io/otel/semconv/v1.40.0/doc.go similarity index 80% rename from vendor/go.opentelemetry.io/otel/semconv/v1.39.0/doc.go rename to vendor/go.opentelemetry.io/otel/semconv/v1.40.0/doc.go index 852362ef7..c5c41e4d2 100644 --- a/vendor/go.opentelemetry.io/otel/semconv/v1.39.0/doc.go +++ b/vendor/go.opentelemetry.io/otel/semconv/v1.40.0/doc.go @@ -4,6 +4,6 @@ // Package semconv implements OpenTelemetry semantic conventions. // // OpenTelemetry semantic conventions are agreed standardized naming -// patterns for OpenTelemetry things. This package represents the v1.39.0 +// patterns for OpenTelemetry things. This package represents the v1.40.0 // version of the OpenTelemetry semantic conventions. -package semconv // import "go.opentelemetry.io/otel/semconv/v1.39.0" +package semconv // import "go.opentelemetry.io/otel/semconv/v1.40.0" diff --git a/vendor/go.opentelemetry.io/otel/semconv/v1.39.0/error_type.go b/vendor/go.opentelemetry.io/otel/semconv/v1.40.0/error_type.go similarity index 62% rename from vendor/go.opentelemetry.io/otel/semconv/v1.39.0/error_type.go rename to vendor/go.opentelemetry.io/otel/semconv/v1.40.0/error_type.go index 84cf636a7..6d26e5282 100644 --- a/vendor/go.opentelemetry.io/otel/semconv/v1.39.0/error_type.go +++ b/vendor/go.opentelemetry.io/otel/semconv/v1.40.0/error_type.go @@ -1,9 +1,10 @@ // Copyright The OpenTelemetry Authors // SPDX-License-Identifier: Apache-2.0 -package semconv // import "go.opentelemetry.io/otel/semconv/v1.39.0" +package semconv // import "go.opentelemetry.io/otel/semconv/v1.40.0" import ( + "errors" "reflect" "go.opentelemetry.io/otel/attribute" @@ -14,12 +15,14 @@ import ( // If err is nil, the returned attribute has the default value // [ErrorTypeOther]. // -// If err's type has the method +// If err or one of the errors in its chain has the method // // ErrorType() string // -// then the returned attribute has the value of err.ErrorType(). Otherwise, the -// returned attribute has a value derived from the concrete type of err. +// the returned attribute has that method's return value. If multiple errors in +// the chain implement this method, the value from the first match found by +// [errors.As] is used. Otherwise, the returned attribute has a value derived +// from the concrete type of err. // // The key of the returned attribute is [ErrorTypeKey]. func ErrorType(err error) attribute.KeyValue { @@ -33,8 +36,15 @@ func ErrorType(err error) attribute.KeyValue { func errorType(err error) string { var s string if et, ok := err.(interface{ ErrorType() string }); ok { - // Prioritize the ErrorType method if available. + // Fast path: check the top-level error first. s = et.ErrorType() + } else { + // Fallback: search the error chain for an ErrorType method. + var et interface{ ErrorType() string } + if errors.As(err, &et) { + // Prioritize the ErrorType method if available. + s = et.ErrorType() + } } if s == "" { // Fallback to reflection if the ErrorType method is not supported or diff --git a/vendor/go.opentelemetry.io/otel/semconv/v1.39.0/exception.go b/vendor/go.opentelemetry.io/otel/semconv/v1.40.0/exception.go similarity index 74% rename from vendor/go.opentelemetry.io/otel/semconv/v1.39.0/exception.go rename to vendor/go.opentelemetry.io/otel/semconv/v1.40.0/exception.go index 7b688ecc3..6a26231a1 100644 --- a/vendor/go.opentelemetry.io/otel/semconv/v1.39.0/exception.go +++ b/vendor/go.opentelemetry.io/otel/semconv/v1.40.0/exception.go @@ -1,7 +1,7 @@ // Copyright The OpenTelemetry Authors // SPDX-License-Identifier: Apache-2.0 -package semconv // import "go.opentelemetry.io/otel/semconv/v1.39.0" +package semconv // import "go.opentelemetry.io/otel/semconv/v1.40.0" const ( // ExceptionEventName is the name of the Span event representing an exception. diff --git a/vendor/go.opentelemetry.io/otel/semconv/v1.39.0/httpconv/metric.go b/vendor/go.opentelemetry.io/otel/semconv/v1.40.0/httpconv/metric.go similarity index 95% rename from vendor/go.opentelemetry.io/otel/semconv/v1.39.0/httpconv/metric.go rename to vendor/go.opentelemetry.io/otel/semconv/v1.40.0/httpconv/metric.go index cb993812a..7264925ba 100644 --- a/vendor/go.opentelemetry.io/otel/semconv/v1.39.0/httpconv/metric.go +++ b/vendor/go.opentelemetry.io/otel/semconv/v1.40.0/httpconv/metric.go @@ -160,7 +160,10 @@ func (m ClientActiveRequests) Add( attrs ...attribute.KeyValue, ) { if len(attrs) == 0 { - m.Int64UpDownCounter.Add(ctx, incr) + m.Int64UpDownCounter.Add(ctx, incr, metric.WithAttributes( + attribute.String("server.address", serverAddress), + attribute.Int("server.port", serverPort), + )) return } @@ -174,7 +177,7 @@ func (m ClientActiveRequests) Add( *o, metric.WithAttributes( append( - attrs, + attrs[:len(attrs):len(attrs)], attribute.String("server.address", serverAddress), attribute.Int("server.port", serverPort), )..., @@ -300,7 +303,10 @@ func (m ClientConnectionDuration) Record( attrs ...attribute.KeyValue, ) { if len(attrs) == 0 { - m.Float64Histogram.Record(ctx, val) + m.Float64Histogram.Record(ctx, val, metric.WithAttributes( + attribute.String("server.address", serverAddress), + attribute.Int("server.port", serverPort), + )) return } @@ -314,7 +320,7 @@ func (m ClientConnectionDuration) Record( *o, metric.WithAttributes( append( - attrs, + attrs[:len(attrs):len(attrs)], attribute.String("server.address", serverAddress), attribute.Int("server.port", serverPort), )..., @@ -443,7 +449,11 @@ func (m ClientOpenConnections) Add( attrs ...attribute.KeyValue, ) { if len(attrs) == 0 { - m.Int64UpDownCounter.Add(ctx, incr) + m.Int64UpDownCounter.Add(ctx, incr, metric.WithAttributes( + attribute.String("http.connection.state", string(connectionState)), + attribute.String("server.address", serverAddress), + attribute.Int("server.port", serverPort), + )) return } @@ -457,7 +467,7 @@ func (m ClientOpenConnections) Add( *o, metric.WithAttributes( append( - attrs, + attrs[:len(attrs):len(attrs)], attribute.String("http.connection.state", string(connectionState)), attribute.String("server.address", serverAddress), attribute.Int("server.port", serverPort), @@ -592,7 +602,11 @@ func (m ClientRequestBodySize) Record( attrs ...attribute.KeyValue, ) { if len(attrs) == 0 { - m.Int64Histogram.Record(ctx, val) + m.Int64Histogram.Record(ctx, val, metric.WithAttributes( + attribute.String("http.request.method", string(requestMethod)), + attribute.String("server.address", serverAddress), + attribute.Int("server.port", serverPort), + )) return } @@ -606,7 +620,7 @@ func (m ClientRequestBodySize) Record( *o, metric.WithAttributes( append( - attrs, + attrs[:len(attrs):len(attrs)], attribute.String("http.request.method", string(requestMethod)), attribute.String("server.address", serverAddress), attribute.Int("server.port", serverPort), @@ -768,7 +782,11 @@ func (m ClientRequestDuration) Record( attrs ...attribute.KeyValue, ) { if len(attrs) == 0 { - m.Float64Histogram.Record(ctx, val) + m.Float64Histogram.Record(ctx, val, metric.WithAttributes( + attribute.String("http.request.method", string(requestMethod)), + attribute.String("server.address", serverAddress), + attribute.Int("server.port", serverPort), + )) return } @@ -782,7 +800,7 @@ func (m ClientRequestDuration) Record( *o, metric.WithAttributes( append( - attrs, + attrs[:len(attrs):len(attrs)], attribute.String("http.request.method", string(requestMethod)), attribute.String("server.address", serverAddress), attribute.Int("server.port", serverPort), @@ -944,7 +962,11 @@ func (m ClientResponseBodySize) Record( attrs ...attribute.KeyValue, ) { if len(attrs) == 0 { - m.Int64Histogram.Record(ctx, val) + m.Int64Histogram.Record(ctx, val, metric.WithAttributes( + attribute.String("http.request.method", string(requestMethod)), + attribute.String("server.address", serverAddress), + attribute.Int("server.port", serverPort), + )) return } @@ -958,7 +980,7 @@ func (m ClientResponseBodySize) Record( *o, metric.WithAttributes( append( - attrs, + attrs[:len(attrs):len(attrs)], attribute.String("http.request.method", string(requestMethod)), attribute.String("server.address", serverAddress), attribute.Int("server.port", serverPort), @@ -1118,7 +1140,10 @@ func (m ServerActiveRequests) Add( attrs ...attribute.KeyValue, ) { if len(attrs) == 0 { - m.Int64UpDownCounter.Add(ctx, incr) + m.Int64UpDownCounter.Add(ctx, incr, metric.WithAttributes( + attribute.String("http.request.method", string(requestMethod)), + attribute.String("url.scheme", urlScheme), + )) return } @@ -1132,7 +1157,7 @@ func (m ServerActiveRequests) Add( *o, metric.WithAttributes( append( - attrs, + attrs[:len(attrs):len(attrs)], attribute.String("http.request.method", string(requestMethod)), attribute.String("url.scheme", urlScheme), )..., @@ -1255,7 +1280,10 @@ func (m ServerRequestBodySize) Record( attrs ...attribute.KeyValue, ) { if len(attrs) == 0 { - m.Int64Histogram.Record(ctx, val) + m.Int64Histogram.Record(ctx, val, metric.WithAttributes( + attribute.String("http.request.method", string(requestMethod)), + attribute.String("url.scheme", urlScheme), + )) return } @@ -1269,7 +1297,7 @@ func (m ServerRequestBodySize) Record( *o, metric.WithAttributes( append( - attrs, + attrs[:len(attrs):len(attrs)], attribute.String("http.request.method", string(requestMethod)), attribute.String("url.scheme", urlScheme), )..., @@ -1439,7 +1467,10 @@ func (m ServerRequestDuration) Record( attrs ...attribute.KeyValue, ) { if len(attrs) == 0 { - m.Float64Histogram.Record(ctx, val) + m.Float64Histogram.Record(ctx, val, metric.WithAttributes( + attribute.String("http.request.method", string(requestMethod)), + attribute.String("url.scheme", urlScheme), + )) return } @@ -1453,7 +1484,7 @@ func (m ServerRequestDuration) Record( *o, metric.WithAttributes( append( - attrs, + attrs[:len(attrs):len(attrs)], attribute.String("http.request.method", string(requestMethod)), attribute.String("url.scheme", urlScheme), )..., @@ -1623,7 +1654,10 @@ func (m ServerResponseBodySize) Record( attrs ...attribute.KeyValue, ) { if len(attrs) == 0 { - m.Int64Histogram.Record(ctx, val) + m.Int64Histogram.Record(ctx, val, metric.WithAttributes( + attribute.String("http.request.method", string(requestMethod)), + attribute.String("url.scheme", urlScheme), + )) return } @@ -1637,7 +1671,7 @@ func (m ServerResponseBodySize) Record( *o, metric.WithAttributes( append( - attrs, + attrs[:len(attrs):len(attrs)], attribute.String("http.request.method", string(requestMethod)), attribute.String("url.scheme", urlScheme), )..., diff --git a/vendor/go.opentelemetry.io/otel/semconv/v1.39.0/schema.go b/vendor/go.opentelemetry.io/otel/semconv/v1.40.0/schema.go similarity index 71% rename from vendor/go.opentelemetry.io/otel/semconv/v1.39.0/schema.go rename to vendor/go.opentelemetry.io/otel/semconv/v1.40.0/schema.go index e1a199d89..a07ffa336 100644 --- a/vendor/go.opentelemetry.io/otel/semconv/v1.39.0/schema.go +++ b/vendor/go.opentelemetry.io/otel/semconv/v1.40.0/schema.go @@ -1,9 +1,9 @@ // Copyright The OpenTelemetry Authors // SPDX-License-Identifier: Apache-2.0 -package semconv // import "go.opentelemetry.io/otel/semconv/v1.39.0" +package semconv // import "go.opentelemetry.io/otel/semconv/v1.40.0" // SchemaURL is the schema URL that matches the version of the semantic conventions // that this package defines. Semconv packages starting from v1.4.0 must declare // non-empty schema URL in the form https://opentelemetry.io/schemas/ -const SchemaURL = "https://opentelemetry.io/schemas/1.39.0" +const SchemaURL = "https://opentelemetry.io/schemas/1.40.0" diff --git a/vendor/go.opentelemetry.io/otel/trace/auto.go b/vendor/go.opentelemetry.io/otel/trace/auto.go index 604fdab44..9316fd0ac 100644 --- a/vendor/go.opentelemetry.io/otel/trace/auto.go +++ b/vendor/go.opentelemetry.io/otel/trace/auto.go @@ -20,7 +20,7 @@ import ( "go.opentelemetry.io/otel/attribute" "go.opentelemetry.io/otel/codes" - semconv "go.opentelemetry.io/otel/semconv/v1.39.0" + semconv "go.opentelemetry.io/otel/semconv/v1.40.0" "go.opentelemetry.io/otel/trace/embedded" "go.opentelemetry.io/otel/trace/internal/telemetry" ) diff --git a/vendor/go.opentelemetry.io/otel/trace/trace.go b/vendor/go.opentelemetry.io/otel/trace/trace.go index ee6f4bcb2..e3d103c4b 100644 --- a/vendor/go.opentelemetry.io/otel/trace/trace.go +++ b/vendor/go.opentelemetry.io/otel/trace/trace.go @@ -12,6 +12,11 @@ const ( // with the sampling bit set means the span is sampled. FlagsSampled = TraceFlags(0x01) + // FlagsRandom is a bitmask with the random trace ID flag set. When + // set, it signals that the trace ID was generated randomly with at + // least 56 bits of randomness (W3C Trace Context Level 2). + FlagsRandom = TraceFlags(0x02) + errInvalidHexID errorConst = "trace-id and span-id can only contain [0-9a-f] characters, all lowercase" errInvalidTraceIDLength errorConst = "hex encoded trace-id must have length equals to 32" @@ -191,6 +196,20 @@ func (tf TraceFlags) WithSampled(sampled bool) TraceFlags { // nolint:revive // return tf &^ FlagsSampled } +// IsRandom reports whether the random bit is set in the TraceFlags. +func (tf TraceFlags) IsRandom() bool { + return tf&FlagsRandom == FlagsRandom +} + +// WithRandom sets the random bit in a new copy of the TraceFlags. +func (tf TraceFlags) WithRandom(random bool) TraceFlags { // nolint:revive // random is not a control flag. + if random { + return tf | FlagsRandom + } + + return tf &^ FlagsRandom +} + // MarshalJSON implements a custom marshal function to encode TraceFlags // as a hex string. func (tf TraceFlags) MarshalJSON() ([]byte, error) { @@ -317,6 +336,11 @@ func (sc SpanContext) IsSampled() bool { return sc.traceFlags.IsSampled() } +// IsRandom reports whether the random bit is set in the SpanContext's TraceFlags. +func (sc SpanContext) IsRandom() bool { + return sc.traceFlags.IsRandom() +} + // WithTraceFlags returns a new SpanContext with the TraceFlags replaced. func (sc SpanContext) WithTraceFlags(flags TraceFlags) SpanContext { return SpanContext{ diff --git a/vendor/go.opentelemetry.io/otel/trace/tracestate.go b/vendor/go.opentelemetry.io/otel/trace/tracestate.go index df65c5cc7..e9cb3fd4d 100644 --- a/vendor/go.opentelemetry.io/otel/trace/tracestate.go +++ b/vendor/go.opentelemetry.io/otel/trace/tracestate.go @@ -64,7 +64,7 @@ func checkKeyRemain(key string) bool { if v > 127 { return false } - if isAlphaNum(byte(v)) { + if isAlphaNumASCII(v) { continue } switch v { @@ -92,7 +92,7 @@ func checkKeyPart(key string, n int) bool { return ret && checkKeyRemain(key[1:]) } -func isAlphaNum(c byte) bool { +func isAlphaNumASCII[T rune | byte](c T) bool { if c >= 'a' && c <= 'z' { return true } @@ -108,7 +108,7 @@ func checkKeyTenant(key string, n int) bool { if key == "" { return false } - return isAlphaNum(key[0]) && len(key[1:]) <= n && checkKeyRemain(key[1:]) + return isAlphaNumASCII(key[0]) && len(key[1:]) <= n && checkKeyRemain(key[1:]) } // based on the W3C Trace Context specification diff --git a/vendor/go.opentelemetry.io/otel/version.go b/vendor/go.opentelemetry.io/otel/version.go index 900453406..1db4f47e4 100644 --- a/vendor/go.opentelemetry.io/otel/version.go +++ b/vendor/go.opentelemetry.io/otel/version.go @@ -5,5 +5,5 @@ package otel // import "go.opentelemetry.io/otel" // Version is the current release version of OpenTelemetry in use. func Version() string { - return "1.41.0" + return "1.43.0" } diff --git a/vendor/go.opentelemetry.io/otel/versions.yaml b/vendor/go.opentelemetry.io/otel/versions.yaml index 479c74787..bcc6ee78a 100644 --- a/vendor/go.opentelemetry.io/otel/versions.yaml +++ b/vendor/go.opentelemetry.io/otel/versions.yaml @@ -3,7 +3,7 @@ module-sets: stable-v1: - version: v1.41.0 + version: v1.43.0 modules: - go.opentelemetry.io/otel - go.opentelemetry.io/otel/bridge/opencensus @@ -22,11 +22,11 @@ module-sets: - go.opentelemetry.io/otel/sdk/metric - go.opentelemetry.io/otel/trace experimental-metrics: - version: v0.63.0 + version: v0.65.0 modules: - go.opentelemetry.io/otel/exporters/prometheus experimental-logs: - version: v0.17.0 + version: v0.19.0 modules: - go.opentelemetry.io/otel/log - go.opentelemetry.io/otel/log/logtest @@ -36,7 +36,7 @@ module-sets: - go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploghttp - go.opentelemetry.io/otel/exporters/stdout/stdoutlog experimental-schema: - version: v0.0.15 + version: v0.0.16 modules: - go.opentelemetry.io/otel/schema excluded-modules: @@ -64,3 +64,6 @@ modules: go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploghttp: version-refs: - ./internal/version.go + go.opentelemetry.io/otel/exporters/stdout/stdoutlog: + version-refs: + - ./internal/version.go diff --git a/vendor/google.golang.org/api/compute/v1/compute-api.json b/vendor/google.golang.org/api/compute/v1/compute-api.json index 73c60a07b..18efc7d05 100644 --- a/vendor/google.golang.org/api/compute/v1/compute-api.json +++ b/vendor/google.golang.org/api/compute/v1/compute-api.json @@ -26,7 +26,7 @@ "basePath": "/compute/v1/", "baseUrl": "https://compute.googleapis.com/compute/v1/", "batchPath": "batch/compute/v1", - "description": "Creates and runs virtual machines on Google Cloud Platform. ", + "description": "Creates and runs virtual machines on Google Cloud Platform.", "discoveryVersion": "v1", "documentationLink": "https://cloud.google.com/compute/", "icons": { @@ -126,7 +126,7 @@ "acceleratorTypes": { "methods": { "aggregatedList": { - "description": "Retrieves an aggregated list of accelerator types. To prevent failure, Google recommends that you set the `returnPartialSuccess` parameter to `true`.", + "description": "Retrieves an aggregated list of accelerator types.\n\nTo prevent failure, it is recommended that you set the\n`returnPartialSuccess` parameter to `true`.", "flatPath": "projects/{project}/aggregated/acceleratorTypes", "httpMethod": "GET", "id": "compute.acceleratorTypes.aggregatedList", @@ -135,30 +135,30 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` 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) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.", + "description": "A filter expression that filters resources listed in the response. Most\nCompute resources support two types of filter expressions:\nexpressions that support regular expressions and expressions that follow\nAPI improvement proposal AIP-160.\nThese two types of filter expressions cannot be mixed in one request.\n\nIf you want to use AIP-160, your expression must specify the field name, an\noperator, and the value that you want to use for filtering. The value\nmust be a string, a number, or a boolean. The operator\nmust be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`.\n\nFor example, if you are filtering Compute Engine instances, you can\nexclude instances named `example-instance` by specifying\n`name != example-instance`.\n\nThe `:*` comparison can be used to test whether a key has been defined.\nFor example, to find all objects with `owner` label use:\n```\nlabels.owner:*\n```\n\nYou can also filter nested fields. For example, you could specify\n`scheduling.automaticRestart = false` to include instances only\nif they are not scheduled for automatic restarts. You can use filtering\non nested fields to filter based onresource labels.\n\nTo filter on multiple expressions, provide each separate expression within\nparentheses. For example:\n```\n(scheduling.automaticRestart = true)\n(cpuPlatform = \"Intel Skylake\")\n```\nBy default, each expression is an `AND` expression. However, you\ncan include `AND` and `OR` expressions explicitly.\nFor example:\n```\n(cpuPlatform = \"Intel Skylake\") OR\n(cpuPlatform = \"Intel Broadwell\") AND\n(scheduling.automaticRestart = true)\n```\n\nIf you want to use a regular expression, use the `eq` (equal) or `ne`\n(not equal) operator against a single un-parenthesized expression with or\nwithout quotes or against multiple parenthesized expressions. Examples:\n\n`fieldname eq unquoted literal`\n`fieldname eq 'single quoted literal'`\n`fieldname eq \"double quoted literal\"`\n`(fieldname1 eq literal) (fieldname2 ne \"literal\")`\n\nThe literal value is interpreted as a regular expression using GoogleRE2 library syntax.\nThe literal value must match the entire field.\n\nFor example, to filter for instances that do not end with name \"instance\",\nyou would use `name ne .*instance`.\n\nYou cannot combine constraints on multiple fields using regular\nexpressions.", "location": "query", "type": "string" }, "includeAllScopes": { - "description": "Indicates whether every visible scope for each scope type (zone, region, global) should be included in the response. For new resource types added after this field, the flag has no effect as new resource types will always include every visible scope for each scope type in response. For resource types which predate this field, if this flag is omitted or false, only scopes of the scope types where the resource type is expected to be found will be included.", + "description": "Indicates whether every visible scope for each scope type (zone, region,\nglobal) should be included in the response. For new resource types added\nafter this field, the flag has no effect as new resource types will always\ninclude every visible scope for each scope type in response. For resource\ntypes which predate this field, if this flag is omitted or false, only\nscopes of the scope types where the resource type is expected to be found\nwill be included.", "location": "query", "type": "boolean" }, "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`)", + "description": "The maximum number of results per page that should be returned.\nIf the number of available results is larger than `maxResults`,\nCompute Engine returns a `nextPageToken` that can be used to get\nthe next page of results in subsequent list requests. Acceptable values are\n`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. 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.", + "description": "Sorts list results by a certain order. By default, results\nare returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation\ntimestamp using `orderBy=\"creationTimestamp desc\"`. This sorts\nresults based on the `creationTimestamp` field in\nreverse chronological order (newest result first). Use this to sort\nresources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or\n`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.", + "description": "Specifies a page token to use. Set `pageToken` to the\n`nextPageToken` returned by a previous list request to get\nthe next page of results.", "location": "query", "type": "string" }, @@ -170,12 +170,12 @@ "type": "string" }, "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", + "description": "Opt-in for partial success behavior which provides partial results in case\nof failure. The default value is false.\n\nFor example, when partial success behavior is enabled, aggregatedList for a\nsingle zone scope either returns all resources in the zone or no resources,\nwith an error code.", "location": "query", "type": "boolean" }, "serviceProjectNumber": { - "description": "The Shared VPC service project id or service project number for which aggregated list request is invoked for subnetworks list-usable api.", + "description": "The Shared VPC service project id or service project number for which\naggregated list request is invoked for subnetworks list-usable api.", "format": "int64", "location": "query", "type": "string" @@ -235,7 +235,7 @@ ] }, "list": { - "description": "Retrieves a list of accelerator types that are available to the specified project.", + "description": "Retrieves a list of accelerator types that are available to the specified\nproject.", "flatPath": "projects/{project}/zones/{zone}/acceleratorTypes", "httpMethod": "GET", "id": "compute.acceleratorTypes.list", @@ -245,25 +245,25 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` 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) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.", + "description": "A filter expression that filters resources listed in the response. Most\nCompute resources support two types of filter expressions:\nexpressions that support regular expressions and expressions that follow\nAPI improvement proposal AIP-160.\nThese two types of filter expressions cannot be mixed in one request.\n\nIf you want to use AIP-160, your expression must specify the field name, an\noperator, and the value that you want to use for filtering. The value\nmust be a string, a number, or a boolean. The operator\nmust be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`.\n\nFor example, if you are filtering Compute Engine instances, you can\nexclude instances named `example-instance` by specifying\n`name != example-instance`.\n\nThe `:*` comparison can be used to test whether a key has been defined.\nFor example, to find all objects with `owner` label use:\n```\nlabels.owner:*\n```\n\nYou can also filter nested fields. For example, you could specify\n`scheduling.automaticRestart = false` to include instances only\nif they are not scheduled for automatic restarts. You can use filtering\non nested fields to filter based onresource labels.\n\nTo filter on multiple expressions, provide each separate expression within\nparentheses. For example:\n```\n(scheduling.automaticRestart = true)\n(cpuPlatform = \"Intel Skylake\")\n```\nBy default, each expression is an `AND` expression. However, you\ncan include `AND` and `OR` expressions explicitly.\nFor example:\n```\n(cpuPlatform = \"Intel Skylake\") OR\n(cpuPlatform = \"Intel Broadwell\") AND\n(scheduling.automaticRestart = true)\n```\n\nIf you want to use a regular expression, use the `eq` (equal) or `ne`\n(not equal) operator against a single un-parenthesized expression with or\nwithout quotes or against multiple parenthesized expressions. Examples:\n\n`fieldname eq unquoted literal`\n`fieldname eq 'single quoted literal'`\n`fieldname eq \"double quoted literal\"`\n`(fieldname1 eq literal) (fieldname2 ne \"literal\")`\n\nThe literal value is interpreted as a regular expression using GoogleRE2 library syntax.\nThe literal value must match the entire field.\n\nFor example, to filter for instances that do not end with name \"instance\",\nyou would use `name ne .*instance`.\n\nYou cannot combine constraints on multiple fields using regular\nexpressions.", "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`)", + "description": "The maximum number of results per page that should be returned.\nIf the number of available results is larger than `maxResults`,\nCompute Engine returns a `nextPageToken` that can be used to get\nthe next page of results in subsequent list requests. Acceptable values are\n`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. 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.", + "description": "Sorts list results by a certain order. By default, results\nare returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation\ntimestamp using `orderBy=\"creationTimestamp desc\"`. This sorts\nresults based on the `creationTimestamp` field in\nreverse chronological order (newest result first). Use this to sort\nresources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or\n`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.", + "description": "Specifies a page token to use. Set `pageToken` to the\n`nextPageToken` returned by a previous list request to get\nthe next page of results.", "location": "query", "type": "string" }, @@ -275,7 +275,7 @@ "type": "string" }, "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", + "description": "Opt-in for partial success behavior which provides partial results in case\nof failure. The default value is false.\n\nFor example, when partial success behavior is enabled, aggregatedList for a\nsingle zone scope either returns all resources in the zone or no resources,\nwith an error code.", "location": "query", "type": "boolean" }, @@ -302,7 +302,7 @@ "addresses": { "methods": { "aggregatedList": { - "description": "Retrieves an aggregated list of addresses. To prevent failure, Google recommends that you set the `returnPartialSuccess` parameter to `true`.", + "description": "Retrieves an aggregated list of addresses.\n\nTo prevent failure, it is recommended that you set the\n`returnPartialSuccess` parameter to `true`.", "flatPath": "projects/{project}/aggregated/addresses", "httpMethod": "GET", "id": "compute.addresses.aggregatedList", @@ -311,30 +311,30 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` 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) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.", + "description": "A filter expression that filters resources listed in the response. Most\nCompute resources support two types of filter expressions:\nexpressions that support regular expressions and expressions that follow\nAPI improvement proposal AIP-160.\nThese two types of filter expressions cannot be mixed in one request.\n\nIf you want to use AIP-160, your expression must specify the field name, an\noperator, and the value that you want to use for filtering. The value\nmust be a string, a number, or a boolean. The operator\nmust be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`.\n\nFor example, if you are filtering Compute Engine instances, you can\nexclude instances named `example-instance` by specifying\n`name != example-instance`.\n\nThe `:*` comparison can be used to test whether a key has been defined.\nFor example, to find all objects with `owner` label use:\n```\nlabels.owner:*\n```\n\nYou can also filter nested fields. For example, you could specify\n`scheduling.automaticRestart = false` to include instances only\nif they are not scheduled for automatic restarts. You can use filtering\non nested fields to filter based onresource labels.\n\nTo filter on multiple expressions, provide each separate expression within\nparentheses. For example:\n```\n(scheduling.automaticRestart = true)\n(cpuPlatform = \"Intel Skylake\")\n```\nBy default, each expression is an `AND` expression. However, you\ncan include `AND` and `OR` expressions explicitly.\nFor example:\n```\n(cpuPlatform = \"Intel Skylake\") OR\n(cpuPlatform = \"Intel Broadwell\") AND\n(scheduling.automaticRestart = true)\n```\n\nIf you want to use a regular expression, use the `eq` (equal) or `ne`\n(not equal) operator against a single un-parenthesized expression with or\nwithout quotes or against multiple parenthesized expressions. Examples:\n\n`fieldname eq unquoted literal`\n`fieldname eq 'single quoted literal'`\n`fieldname eq \"double quoted literal\"`\n`(fieldname1 eq literal) (fieldname2 ne \"literal\")`\n\nThe literal value is interpreted as a regular expression using GoogleRE2 library syntax.\nThe literal value must match the entire field.\n\nFor example, to filter for instances that do not end with name \"instance\",\nyou would use `name ne .*instance`.\n\nYou cannot combine constraints on multiple fields using regular\nexpressions.", "location": "query", "type": "string" }, "includeAllScopes": { - "description": "Indicates whether every visible scope for each scope type (zone, region, global) should be included in the response. For new resource types added after this field, the flag has no effect as new resource types will always include every visible scope for each scope type in response. For resource types which predate this field, if this flag is omitted or false, only scopes of the scope types where the resource type is expected to be found will be included.", + "description": "Indicates whether every visible scope for each scope type (zone, region,\nglobal) should be included in the response. For new resource types added\nafter this field, the flag has no effect as new resource types will always\ninclude every visible scope for each scope type in response. For resource\ntypes which predate this field, if this flag is omitted or false, only\nscopes of the scope types where the resource type is expected to be found\nwill be included.", "location": "query", "type": "boolean" }, "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`)", + "description": "The maximum number of results per page that should be returned.\nIf the number of available results is larger than `maxResults`,\nCompute Engine returns a `nextPageToken` that can be used to get\nthe next page of results in subsequent list requests. Acceptable values are\n`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. 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.", + "description": "Sorts list results by a certain order. By default, results\nare returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation\ntimestamp using `orderBy=\"creationTimestamp desc\"`. This sorts\nresults based on the `creationTimestamp` field in\nreverse chronological order (newest result first). Use this to sort\nresources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or\n`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.", + "description": "Specifies a page token to use. Set `pageToken` to the\n`nextPageToken` returned by a previous list request to get\nthe next page of results.", "location": "query", "type": "string" }, @@ -346,12 +346,12 @@ "type": "string" }, "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", + "description": "Opt-in for partial success behavior which provides partial results in case\nof failure. The default value is false.\n\nFor example, when partial success behavior is enabled, aggregatedList for a\nsingle zone scope either returns all resources in the zone or no resources,\nwith an error code.", "location": "query", "type": "boolean" }, "serviceProjectNumber": { - "description": "The Shared VPC service project id or service project number for which aggregated list request is invoked for subnetworks list-usable api.", + "description": "The Shared VPC service project id or service project number for which\naggregated list request is invoked for subnetworks list-usable api.", "format": "int64", "location": "query", "type": "string" @@ -400,7 +400,7 @@ "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. 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).", + "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).", "location": "query", "type": "string" } @@ -458,7 +458,7 @@ ] }, "insert": { - "description": "Creates an address resource in the specified project by using the data included in the request.", + "description": "Creates an address resource in the specified project by using the data\nincluded in the request.", "flatPath": "projects/{project}/regions/{region}/addresses", "httpMethod": "POST", "id": "compute.addresses.insert", @@ -482,7 +482,7 @@ "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. 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).", + "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).", "location": "query", "type": "string" } @@ -500,7 +500,7 @@ ] }, "list": { - "description": "Retrieves a list of addresses contained within the specified region.", + "description": "Retrieves a list of addresses contained within\nthe specified region.", "flatPath": "projects/{project}/regions/{region}/addresses", "httpMethod": "GET", "id": "compute.addresses.list", @@ -510,25 +510,25 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` 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) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.", + "description": "A filter expression that filters resources listed in the response. Most\nCompute resources support two types of filter expressions:\nexpressions that support regular expressions and expressions that follow\nAPI improvement proposal AIP-160.\nThese two types of filter expressions cannot be mixed in one request.\n\nIf you want to use AIP-160, your expression must specify the field name, an\noperator, and the value that you want to use for filtering. The value\nmust be a string, a number, or a boolean. The operator\nmust be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`.\n\nFor example, if you are filtering Compute Engine instances, you can\nexclude instances named `example-instance` by specifying\n`name != example-instance`.\n\nThe `:*` comparison can be used to test whether a key has been defined.\nFor example, to find all objects with `owner` label use:\n```\nlabels.owner:*\n```\n\nYou can also filter nested fields. For example, you could specify\n`scheduling.automaticRestart = false` to include instances only\nif they are not scheduled for automatic restarts. You can use filtering\non nested fields to filter based onresource labels.\n\nTo filter on multiple expressions, provide each separate expression within\nparentheses. For example:\n```\n(scheduling.automaticRestart = true)\n(cpuPlatform = \"Intel Skylake\")\n```\nBy default, each expression is an `AND` expression. However, you\ncan include `AND` and `OR` expressions explicitly.\nFor example:\n```\n(cpuPlatform = \"Intel Skylake\") OR\n(cpuPlatform = \"Intel Broadwell\") AND\n(scheduling.automaticRestart = true)\n```\n\nIf you want to use a regular expression, use the `eq` (equal) or `ne`\n(not equal) operator against a single un-parenthesized expression with or\nwithout quotes or against multiple parenthesized expressions. Examples:\n\n`fieldname eq unquoted literal`\n`fieldname eq 'single quoted literal'`\n`fieldname eq \"double quoted literal\"`\n`(fieldname1 eq literal) (fieldname2 ne \"literal\")`\n\nThe literal value is interpreted as a regular expression using GoogleRE2 library syntax.\nThe literal value must match the entire field.\n\nFor example, to filter for instances that do not end with name \"instance\",\nyou would use `name ne .*instance`.\n\nYou cannot combine constraints on multiple fields using regular\nexpressions.", "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`)", + "description": "The maximum number of results per page that should be returned.\nIf the number of available results is larger than `maxResults`,\nCompute Engine returns a `nextPageToken` that can be used to get\nthe next page of results in subsequent list requests. Acceptable values are\n`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. 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.", + "description": "Sorts list results by a certain order. By default, results\nare returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation\ntimestamp using `orderBy=\"creationTimestamp desc\"`. This sorts\nresults based on the `creationTimestamp` field in\nreverse chronological order (newest result first). Use this to sort\nresources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or\n`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.", + "description": "Specifies a page token to use. Set `pageToken` to the\n`nextPageToken` returned by a previous list request to get\nthe next page of results.", "location": "query", "type": "string" }, @@ -547,7 +547,7 @@ "type": "string" }, "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", + "description": "Opt-in for partial success behavior which provides partial results in case\nof failure. The default value is false.\n\nFor example, when partial success behavior is enabled, aggregatedList for a\nsingle zone scope either returns all resources in the zone or no resources,\nwith an error code.", "location": "query", "type": "boolean" } @@ -595,7 +595,7 @@ "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. 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).", + "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).", "location": "query", "type": "string" } @@ -613,7 +613,7 @@ ] }, "setLabels": { - "description": "Sets the labels on an Address. To learn more about labels, read the Labeling Resources documentation.", + "description": "Sets the labels on an Address. To learn more about labels, read theLabeling\nResources documentation.", "flatPath": "projects/{project}/regions/{region}/addresses/{resource}/setLabels", "httpMethod": "POST", "id": "compute.addresses.setLabels", @@ -638,7 +638,7 @@ "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. 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).", + "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).", "location": "query", "type": "string" }, @@ -661,13 +661,100 @@ "https://www.googleapis.com/auth/cloud-platform", "https://www.googleapis.com/auth/compute" ] + }, + "testIamPermissions": { + "description": "Returns permissions that a caller has on the specified resource.", + "flatPath": "projects/{project}/regions/{region}/addresses/{resource}/testIamPermissions", + "httpMethod": "POST", + "id": "compute.addresses.testIamPermissions", + "parameterOrder": [ + "project", + "region", + "resource" + ], + "parameters": { + "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": "The name of the region for this request.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "required": true, + "type": "string" + }, + "resource": { + "description": "Name or id of the resource for this request.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "required": true, + "type": "string" + } + }, + "path": "projects/{project}/regions/{region}/addresses/{resource}/testIamPermissions", + "request": { + "$ref": "TestPermissionsRequest" + }, + "response": { + "$ref": "TestPermissionsResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ] + } + } + }, + "advice": { + "methods": { + "calendarMode": { + "description": "Advise how, where and when to create the requested amount of instances\nwith specified accelerators, within the specified time and location limits.\nThe method recommends creating future reservations for the requested\nresources.", + "flatPath": "projects/{project}/regions/{region}/advice/calendarMode", + "httpMethod": "POST", + "id": "compute.advice.calendarMode", + "parameterOrder": [ + "project", + "region" + ], + "parameters": { + "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" + } + }, + "path": "projects/{project}/regions/{region}/advice/calendarMode", + "request": { + "$ref": "CalendarModeAdviceRequest" + }, + "response": { + "$ref": "CalendarModeAdviceResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ] } } }, "autoscalers": { "methods": { "aggregatedList": { - "description": "Retrieves an aggregated list of autoscalers. To prevent failure, Google recommends that you set the `returnPartialSuccess` parameter to `true`.", + "description": "Retrieves an aggregated list of autoscalers.\n\nTo prevent failure, it is recommended that you set the\n`returnPartialSuccess` parameter to `true`.", "flatPath": "projects/{project}/aggregated/autoscalers", "httpMethod": "GET", "id": "compute.autoscalers.aggregatedList", @@ -676,30 +763,30 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` 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) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.", + "description": "A filter expression that filters resources listed in the response. Most\nCompute resources support two types of filter expressions:\nexpressions that support regular expressions and expressions that follow\nAPI improvement proposal AIP-160.\nThese two types of filter expressions cannot be mixed in one request.\n\nIf you want to use AIP-160, your expression must specify the field name, an\noperator, and the value that you want to use for filtering. The value\nmust be a string, a number, or a boolean. The operator\nmust be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`.\n\nFor example, if you are filtering Compute Engine instances, you can\nexclude instances named `example-instance` by specifying\n`name != example-instance`.\n\nThe `:*` comparison can be used to test whether a key has been defined.\nFor example, to find all objects with `owner` label use:\n```\nlabels.owner:*\n```\n\nYou can also filter nested fields. For example, you could specify\n`scheduling.automaticRestart = false` to include instances only\nif they are not scheduled for automatic restarts. You can use filtering\non nested fields to filter based onresource labels.\n\nTo filter on multiple expressions, provide each separate expression within\nparentheses. For example:\n```\n(scheduling.automaticRestart = true)\n(cpuPlatform = \"Intel Skylake\")\n```\nBy default, each expression is an `AND` expression. However, you\ncan include `AND` and `OR` expressions explicitly.\nFor example:\n```\n(cpuPlatform = \"Intel Skylake\") OR\n(cpuPlatform = \"Intel Broadwell\") AND\n(scheduling.automaticRestart = true)\n```\n\nIf you want to use a regular expression, use the `eq` (equal) or `ne`\n(not equal) operator against a single un-parenthesized expression with or\nwithout quotes or against multiple parenthesized expressions. Examples:\n\n`fieldname eq unquoted literal`\n`fieldname eq 'single quoted literal'`\n`fieldname eq \"double quoted literal\"`\n`(fieldname1 eq literal) (fieldname2 ne \"literal\")`\n\nThe literal value is interpreted as a regular expression using GoogleRE2 library syntax.\nThe literal value must match the entire field.\n\nFor example, to filter for instances that do not end with name \"instance\",\nyou would use `name ne .*instance`.\n\nYou cannot combine constraints on multiple fields using regular\nexpressions.", "location": "query", "type": "string" }, "includeAllScopes": { - "description": "Indicates whether every visible scope for each scope type (zone, region, global) should be included in the response. For new resource types added after this field, the flag has no effect as new resource types will always include every visible scope for each scope type in response. For resource types which predate this field, if this flag is omitted or false, only scopes of the scope types where the resource type is expected to be found will be included.", + "description": "Indicates whether every visible scope for each scope type (zone, region,\nglobal) should be included in the response. For new resource types added\nafter this field, the flag has no effect as new resource types will always\ninclude every visible scope for each scope type in response. For resource\ntypes which predate this field, if this flag is omitted or false, only\nscopes of the scope types where the resource type is expected to be found\nwill be included.", "location": "query", "type": "boolean" }, "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`)", + "description": "The maximum number of results per page that should be returned.\nIf the number of available results is larger than `maxResults`,\nCompute Engine returns a `nextPageToken` that can be used to get\nthe next page of results in subsequent list requests. Acceptable values are\n`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. 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.", + "description": "Sorts list results by a certain order. By default, results\nare returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation\ntimestamp using `orderBy=\"creationTimestamp desc\"`. This sorts\nresults based on the `creationTimestamp` field in\nreverse chronological order (newest result first). Use this to sort\nresources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or\n`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.", + "description": "Specifies a page token to use. Set `pageToken` to the\n`nextPageToken` returned by a previous list request to get\nthe next page of results.", "location": "query", "type": "string" }, @@ -711,12 +798,12 @@ "type": "string" }, "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", + "description": "Opt-in for partial success behavior which provides partial results in case\nof failure. The default value is false.\n\nFor example, when partial success behavior is enabled, aggregatedList for a\nsingle zone scope either returns all resources in the zone or no resources,\nwith an error code.", "location": "query", "type": "boolean" }, "serviceProjectNumber": { - "description": "The Shared VPC service project id or service project number for which aggregated list request is invoked for subnetworks list-usable api.", + "description": "The Shared VPC service project id or service project number for which\naggregated list request is invoked for subnetworks list-usable api.", "format": "int64", "location": "query", "type": "string" @@ -758,7 +845,7 @@ "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. 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).", + "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).", "location": "query", "type": "string" }, @@ -823,7 +910,7 @@ ] }, "insert": { - "description": "Creates an autoscaler in the specified project using the data included in the request.", + "description": "Creates an autoscaler in the specified project using the data\nincluded in the request.", "flatPath": "projects/{project}/zones/{zone}/autoscalers", "httpMethod": "POST", "id": "compute.autoscalers.insert", @@ -840,7 +927,7 @@ "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. 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).", + "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).", "location": "query", "type": "string" }, @@ -865,7 +952,7 @@ ] }, "list": { - "description": "Retrieves a list of autoscalers contained within the specified zone.", + "description": "Retrieves a list of autoscalers contained within\nthe specified zone.", "flatPath": "projects/{project}/zones/{zone}/autoscalers", "httpMethod": "GET", "id": "compute.autoscalers.list", @@ -875,25 +962,25 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` 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) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.", + "description": "A filter expression that filters resources listed in the response. Most\nCompute resources support two types of filter expressions:\nexpressions that support regular expressions and expressions that follow\nAPI improvement proposal AIP-160.\nThese two types of filter expressions cannot be mixed in one request.\n\nIf you want to use AIP-160, your expression must specify the field name, an\noperator, and the value that you want to use for filtering. The value\nmust be a string, a number, or a boolean. The operator\nmust be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`.\n\nFor example, if you are filtering Compute Engine instances, you can\nexclude instances named `example-instance` by specifying\n`name != example-instance`.\n\nThe `:*` comparison can be used to test whether a key has been defined.\nFor example, to find all objects with `owner` label use:\n```\nlabels.owner:*\n```\n\nYou can also filter nested fields. For example, you could specify\n`scheduling.automaticRestart = false` to include instances only\nif they are not scheduled for automatic restarts. You can use filtering\non nested fields to filter based onresource labels.\n\nTo filter on multiple expressions, provide each separate expression within\nparentheses. For example:\n```\n(scheduling.automaticRestart = true)\n(cpuPlatform = \"Intel Skylake\")\n```\nBy default, each expression is an `AND` expression. However, you\ncan include `AND` and `OR` expressions explicitly.\nFor example:\n```\n(cpuPlatform = \"Intel Skylake\") OR\n(cpuPlatform = \"Intel Broadwell\") AND\n(scheduling.automaticRestart = true)\n```\n\nIf you want to use a regular expression, use the `eq` (equal) or `ne`\n(not equal) operator against a single un-parenthesized expression with or\nwithout quotes or against multiple parenthesized expressions. Examples:\n\n`fieldname eq unquoted literal`\n`fieldname eq 'single quoted literal'`\n`fieldname eq \"double quoted literal\"`\n`(fieldname1 eq literal) (fieldname2 ne \"literal\")`\n\nThe literal value is interpreted as a regular expression using GoogleRE2 library syntax.\nThe literal value must match the entire field.\n\nFor example, to filter for instances that do not end with name \"instance\",\nyou would use `name ne .*instance`.\n\nYou cannot combine constraints on multiple fields using regular\nexpressions.", "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`)", + "description": "The maximum number of results per page that should be returned.\nIf the number of available results is larger than `maxResults`,\nCompute Engine returns a `nextPageToken` that can be used to get\nthe next page of results in subsequent list requests. Acceptable values are\n`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. 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.", + "description": "Sorts list results by a certain order. By default, results\nare returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation\ntimestamp using `orderBy=\"creationTimestamp desc\"`. This sorts\nresults based on the `creationTimestamp` field in\nreverse chronological order (newest result first). Use this to sort\nresources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or\n`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.", + "description": "Specifies a page token to use. Set `pageToken` to the\n`nextPageToken` returned by a previous list request to get\nthe next page of results.", "location": "query", "type": "string" }, @@ -905,7 +992,7 @@ "type": "string" }, "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", + "description": "Opt-in for partial success behavior which provides partial results in case\nof failure. The default value is false.\n\nFor example, when partial success behavior is enabled, aggregatedList for a\nsingle zone scope either returns all resources in the zone or no resources,\nwith an error code.", "location": "query", "type": "boolean" }, @@ -928,7 +1015,7 @@ ] }, "patch": { - "description": "Updates an autoscaler in the specified project using the data included in the request. This method supports PATCH semantics and uses the JSON merge patch format and processing rules.", + "description": "Updates an autoscaler in the specified project using the data\nincluded in the request. This method supportsPATCH\nsemantics and uses theJSON merge\npatch format and processing rules.", "flatPath": "projects/{project}/zones/{zone}/autoscalers", "httpMethod": "PATCH", "id": "compute.autoscalers.patch", @@ -951,7 +1038,7 @@ "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. 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).", + "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).", "location": "query", "type": "string" }, @@ -975,8 +1062,54 @@ "https://www.googleapis.com/auth/compute" ] }, + "testIamPermissions": { + "description": "Returns permissions that a caller has on the specified resource.", + "flatPath": "projects/{project}/zones/{zone}/autoscalers/{resource}/testIamPermissions", + "httpMethod": "POST", + "id": "compute.autoscalers.testIamPermissions", + "parameterOrder": [ + "project", + "zone", + "resource" + ], + "parameters": { + "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" + }, + "resource": { + "description": "Name or id of the resource for this request.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "required": true, + "type": "string" + }, + "zone": { + "description": "The name of the zone for this request.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "required": true, + "type": "string" + } + }, + "path": "projects/{project}/zones/{zone}/autoscalers/{resource}/testIamPermissions", + "request": { + "$ref": "TestPermissionsRequest" + }, + "response": { + "$ref": "TestPermissionsResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ] + }, "update": { - "description": "Updates an autoscaler in the specified project using the data included in the request.", + "description": "Updates an autoscaler in the specified project using the data\nincluded in the request.", "flatPath": "projects/{project}/zones/{zone}/autoscalers", "httpMethod": "PUT", "id": "compute.autoscalers.update", @@ -999,7 +1132,7 @@ "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. 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).", + "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).", "location": "query", "type": "string" }, @@ -1028,7 +1161,7 @@ "backendBuckets": { "methods": { "addSignedUrlKey": { - "description": "Adds a key for validating requests with signed URLs for this backend bucket.", + "description": "Adds a key for validating requests with signed URLs for this backend\nbucket.", "flatPath": "projects/{project}/global/backendBuckets/{backendBucket}/addSignedUrlKey", "httpMethod": "POST", "id": "compute.backendBuckets.addSignedUrlKey", @@ -1038,7 +1171,7 @@ ], "parameters": { "backendBucket": { - "description": "Name of the BackendBucket resource to which the Signed URL Key should be added. The name should conform to RFC1035.", + "description": "Name of the BackendBucket resource to which the Signed URL Key should be\nadded. The name should conform to RFC1035.", "location": "path", "required": true, "type": "string" @@ -1051,7 +1184,7 @@ "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. 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).", + "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).", "location": "query", "type": "string" } @@ -1068,6 +1201,72 @@ "https://www.googleapis.com/auth/compute" ] }, + "aggregatedList": { + "description": "Retrieves the list of all BackendBucket resources, regional and global,\navailable to the specified project.\n\nTo prevent failure, it is recommended that you set the\n`returnPartialSuccess` parameter to `true`.", + "flatPath": "projects/{project}/aggregated/backendBuckets", + "httpMethod": "GET", + "id": "compute.backendBuckets.aggregatedList", + "parameterOrder": [ + "project" + ], + "parameters": { + "filter": { + "description": "A filter expression that filters resources listed in the response. Most\nCompute resources support two types of filter expressions:\nexpressions that support regular expressions and expressions that follow\nAPI improvement proposal AIP-160.\nThese two types of filter expressions cannot be mixed in one request.\n\nIf you want to use AIP-160, your expression must specify the field name, an\noperator, and the value that you want to use for filtering. The value\nmust be a string, a number, or a boolean. The operator\nmust be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`.\n\nFor example, if you are filtering Compute Engine instances, you can\nexclude instances named `example-instance` by specifying\n`name != example-instance`.\n\nThe `:*` comparison can be used to test whether a key has been defined.\nFor example, to find all objects with `owner` label use:\n```\nlabels.owner:*\n```\n\nYou can also filter nested fields. For example, you could specify\n`scheduling.automaticRestart = false` to include instances only\nif they are not scheduled for automatic restarts. You can use filtering\non nested fields to filter based onresource labels.\n\nTo filter on multiple expressions, provide each separate expression within\nparentheses. For example:\n```\n(scheduling.automaticRestart = true)\n(cpuPlatform = \"Intel Skylake\")\n```\nBy default, each expression is an `AND` expression. However, you\ncan include `AND` and `OR` expressions explicitly.\nFor example:\n```\n(cpuPlatform = \"Intel Skylake\") OR\n(cpuPlatform = \"Intel Broadwell\") AND\n(scheduling.automaticRestart = true)\n```\n\nIf you want to use a regular expression, use the `eq` (equal) or `ne`\n(not equal) operator against a single un-parenthesized expression with or\nwithout quotes or against multiple parenthesized expressions. Examples:\n\n`fieldname eq unquoted literal`\n`fieldname eq 'single quoted literal'`\n`fieldname eq \"double quoted literal\"`\n`(fieldname1 eq literal) (fieldname2 ne \"literal\")`\n\nThe literal value is interpreted as a regular expression using GoogleRE2 library syntax.\nThe literal value must match the entire field.\n\nFor example, to filter for instances that do not end with name \"instance\",\nyou would use `name ne .*instance`.\n\nYou cannot combine constraints on multiple fields using regular\nexpressions.", + "location": "query", + "type": "string" + }, + "includeAllScopes": { + "description": "Indicates whether every visible scope for each scope type (zone, region,\nglobal) should be included in the response. For new resource types added\nafter this field, the flag has no effect as new resource types will always\ninclude every visible scope for each scope type in response. For resource\ntypes which predate this field, if this flag is omitted or false, only\nscopes of the scope types where the resource type is expected to be found\nwill be included.", + "location": "query", + "type": "boolean" + }, + "maxResults": { + "default": "500", + "description": "The maximum number of results per page that should be returned.\nIf the number of available results is larger than `maxResults`,\nCompute Engine returns a `nextPageToken` that can be used to get\nthe next page of results in subsequent list requests. Acceptable values are\n`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\nare returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation\ntimestamp using `orderBy=\"creationTimestamp desc\"`. This sorts\nresults based on the `creationTimestamp` field in\nreverse chronological order (newest result first). Use this to sort\nresources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or\n`creationTimestamp desc` is supported.", + "location": "query", + "type": "string" + }, + "pageToken": { + "description": "Specifies a page token to use. Set `pageToken` to the\n`nextPageToken` returned by a previous list request to get\nthe next page of results.", + "location": "query", + "type": "string" + }, + "project": { + "description": "Name of the project scoping 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" + }, + "returnPartialSuccess": { + "description": "Opt-in for partial success behavior which provides partial results in case\nof failure. The default value is false.\n\nFor example, when partial success behavior is enabled, aggregatedList for a\nsingle zone scope either returns all resources in the zone or no resources,\nwith an error code.", + "location": "query", + "type": "boolean" + }, + "serviceProjectNumber": { + "description": "The Shared VPC service project id or service project number for which\naggregated list request is invoked for subnetworks list-usable api.", + "format": "int64", + "location": "query", + "type": "string" + } + }, + "path": "projects/{project}/aggregated/backendBuckets", + "response": { + "$ref": "BackendBucketAggregatedList" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ] + }, "delete": { "description": "Deletes the specified BackendBucket resource.", "flatPath": "projects/{project}/global/backendBuckets/{backendBucket}", @@ -1093,7 +1292,7 @@ "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. 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).", + "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).", "location": "query", "type": "string" } @@ -1108,7 +1307,7 @@ ] }, "deleteSignedUrlKey": { - "description": "Deletes a key for validating requests with signed URLs for this backend bucket.", + "description": "Deletes a key for validating requests with signed URLs for this backend\nbucket.", "flatPath": "projects/{project}/global/backendBuckets/{backendBucket}/deleteSignedUrlKey", "httpMethod": "POST", "id": "compute.backendBuckets.deleteSignedUrlKey", @@ -1119,7 +1318,7 @@ ], "parameters": { "backendBucket": { - "description": "Name of the BackendBucket resource to which the Signed URL Key should be added. The name should conform to RFC1035.", + "description": "Name of the BackendBucket resource to which the Signed URL Key should be\nadded. The name should conform to RFC1035.", "location": "path", "required": true, "type": "string" @@ -1138,7 +1337,7 @@ "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. 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).", + "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).", "location": "query", "type": "string" } @@ -1188,7 +1387,7 @@ ] }, "getIamPolicy": { - "description": "Gets the access control policy for a resource. May be empty if no such policy or resource exists.", + "description": "Gets the access control policy for a resource. May be empty if no such\npolicy or resource exists.", "flatPath": "projects/{project}/global/backendBuckets/{resource}/getIamPolicy", "httpMethod": "GET", "id": "compute.backendBuckets.getIamPolicy", @@ -1229,7 +1428,7 @@ ] }, "insert": { - "description": "Creates a BackendBucket resource in the specified project using the data included in the request.", + "description": "Creates a BackendBucket resource in the specified project using\nthe data included in the request.", "flatPath": "projects/{project}/global/backendBuckets", "httpMethod": "POST", "id": "compute.backendBuckets.insert", @@ -1245,7 +1444,7 @@ "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. 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).", + "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).", "location": "query", "type": "string" } @@ -1263,7 +1462,7 @@ ] }, "list": { - "description": "Retrieves the list of BackendBucket resources available to the specified project.", + "description": "Retrieves the list of BackendBucket resources available to the specified\nproject.", "flatPath": "projects/{project}/global/backendBuckets", "httpMethod": "GET", "id": "compute.backendBuckets.list", @@ -1272,25 +1471,25 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` 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) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.", + "description": "A filter expression that filters resources listed in the response. Most\nCompute resources support two types of filter expressions:\nexpressions that support regular expressions and expressions that follow\nAPI improvement proposal AIP-160.\nThese two types of filter expressions cannot be mixed in one request.\n\nIf you want to use AIP-160, your expression must specify the field name, an\noperator, and the value that you want to use for filtering. The value\nmust be a string, a number, or a boolean. The operator\nmust be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`.\n\nFor example, if you are filtering Compute Engine instances, you can\nexclude instances named `example-instance` by specifying\n`name != example-instance`.\n\nThe `:*` comparison can be used to test whether a key has been defined.\nFor example, to find all objects with `owner` label use:\n```\nlabels.owner:*\n```\n\nYou can also filter nested fields. For example, you could specify\n`scheduling.automaticRestart = false` to include instances only\nif they are not scheduled for automatic restarts. You can use filtering\non nested fields to filter based onresource labels.\n\nTo filter on multiple expressions, provide each separate expression within\nparentheses. For example:\n```\n(scheduling.automaticRestart = true)\n(cpuPlatform = \"Intel Skylake\")\n```\nBy default, each expression is an `AND` expression. However, you\ncan include `AND` and `OR` expressions explicitly.\nFor example:\n```\n(cpuPlatform = \"Intel Skylake\") OR\n(cpuPlatform = \"Intel Broadwell\") AND\n(scheduling.automaticRestart = true)\n```\n\nIf you want to use a regular expression, use the `eq` (equal) or `ne`\n(not equal) operator against a single un-parenthesized expression with or\nwithout quotes or against multiple parenthesized expressions. Examples:\n\n`fieldname eq unquoted literal`\n`fieldname eq 'single quoted literal'`\n`fieldname eq \"double quoted literal\"`\n`(fieldname1 eq literal) (fieldname2 ne \"literal\")`\n\nThe literal value is interpreted as a regular expression using GoogleRE2 library syntax.\nThe literal value must match the entire field.\n\nFor example, to filter for instances that do not end with name \"instance\",\nyou would use `name ne .*instance`.\n\nYou cannot combine constraints on multiple fields using regular\nexpressions.", "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`)", + "description": "The maximum number of results per page that should be returned.\nIf the number of available results is larger than `maxResults`,\nCompute Engine returns a `nextPageToken` that can be used to get\nthe next page of results in subsequent list requests. Acceptable values are\n`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. 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.", + "description": "Sorts list results by a certain order. By default, results\nare returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation\ntimestamp using `orderBy=\"creationTimestamp desc\"`. This sorts\nresults based on the `creationTimestamp` field in\nreverse chronological order (newest result first). Use this to sort\nresources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or\n`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.", + "description": "Specifies a page token to use. Set `pageToken` to the\n`nextPageToken` returned by a previous list request to get\nthe next page of results.", "location": "query", "type": "string" }, @@ -1302,7 +1501,7 @@ "type": "string" }, "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", + "description": "Opt-in for partial success behavior which provides partial results in case\nof failure. The default value is false.\n\nFor example, when partial success behavior is enabled, aggregatedList for a\nsingle zone scope either returns all resources in the zone or no resources,\nwith an error code.", "location": "query", "type": "boolean" } @@ -1317,136 +1516,38 @@ "https://www.googleapis.com/auth/compute.readonly" ] }, - "patch": { - "description": "Updates the specified BackendBucket resource with the data included in the request. This method supports PATCH semantics and uses the JSON merge patch format and processing rules.", - "flatPath": "projects/{project}/global/backendBuckets/{backendBucket}", - "httpMethod": "PATCH", - "id": "compute.backendBuckets.patch", + "listUsable": { + "description": "Retrieves a list of all usable backend buckets in the specified project.", + "flatPath": "projects/{project}/global/backendBuckets/listUsable", + "httpMethod": "GET", + "id": "compute.backendBuckets.listUsable", "parameterOrder": [ - "project", - "backendBucket" + "project" ], "parameters": { - "backendBucket": { - "description": "Name of the BackendBucket resource to patch.", - "location": "path", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "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, + "filter": { + "description": "A filter expression that filters resources listed in the response. Most\nCompute resources support two types of filter expressions:\nexpressions that support regular expressions and expressions that follow\nAPI improvement proposal AIP-160.\nThese two types of filter expressions cannot be mixed in one request.\n\nIf you want to use AIP-160, your expression must specify the field name, an\noperator, and the value that you want to use for filtering. The value\nmust be a string, a number, or a boolean. The operator\nmust be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`.\n\nFor example, if you are filtering Compute Engine instances, you can\nexclude instances named `example-instance` by specifying\n`name != example-instance`.\n\nThe `:*` comparison can be used to test whether a key has been defined.\nFor example, to find all objects with `owner` label use:\n```\nlabels.owner:*\n```\n\nYou can also filter nested fields. For example, you could specify\n`scheduling.automaticRestart = false` to include instances only\nif they are not scheduled for automatic restarts. You can use filtering\non nested fields to filter based onresource labels.\n\nTo filter on multiple expressions, provide each separate expression within\nparentheses. For example:\n```\n(scheduling.automaticRestart = true)\n(cpuPlatform = \"Intel Skylake\")\n```\nBy default, each expression is an `AND` expression. However, you\ncan include `AND` and `OR` expressions explicitly.\nFor example:\n```\n(cpuPlatform = \"Intel Skylake\") OR\n(cpuPlatform = \"Intel Broadwell\") AND\n(scheduling.automaticRestart = true)\n```\n\nIf you want to use a regular expression, use the `eq` (equal) or `ne`\n(not equal) operator against a single un-parenthesized expression with or\nwithout quotes or against multiple parenthesized expressions. Examples:\n\n`fieldname eq unquoted literal`\n`fieldname eq 'single quoted literal'`\n`fieldname eq \"double quoted literal\"`\n`(fieldname1 eq literal) (fieldname2 ne \"literal\")`\n\nThe literal value is interpreted as a regular expression using GoogleRE2 library syntax.\nThe literal value must match the entire field.\n\nFor example, to filter for instances that do not end with name \"instance\",\nyou would use `name ne .*instance`.\n\nYou cannot combine constraints on multiple fields using regular\nexpressions.", + "location": "query", "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. 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).", + "maxResults": { + "default": "500", + "description": "The maximum number of results per page that should be returned.\nIf the number of available results is larger than `maxResults`,\nCompute Engine returns a `nextPageToken` that can be used to get\nthe next page of results in subsequent list requests. Acceptable values are\n`0` to `500`, inclusive. (Default: `500`)", + "format": "uint32", "location": "query", - "type": "string" - } - }, - "path": "projects/{project}/global/backendBuckets/{backendBucket}", - "request": { - "$ref": "BackendBucket" - }, - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ] - }, - "setEdgeSecurityPolicy": { - "description": "Sets the edge security policy for the specified backend bucket.", - "flatPath": "projects/{project}/global/backendBuckets/{backendBucket}/setEdgeSecurityPolicy", - "httpMethod": "POST", - "id": "compute.backendBuckets.setEdgeSecurityPolicy", - "parameterOrder": [ - "project", - "backendBucket" - ], - "parameters": { - "backendBucket": { - "description": "Name of the BackendBucket resource to which the security policy should be set. The name should conform to RFC1035.", - "location": "path", - "required": true, - "type": "string" + "minimum": "0", + "type": "integer" }, - "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, + "orderBy": { + "description": "Sorts list results by a certain order. By default, results\nare returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation\ntimestamp using `orderBy=\"creationTimestamp desc\"`. This sorts\nresults based on the `creationTimestamp` field in\nreverse chronological order (newest result first). Use this to sort\nresources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or\n`creationTimestamp desc` is supported.", + "location": "query", "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. 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).", + "pageToken": { + "description": "Specifies a page token to use. Set `pageToken` to the\n`nextPageToken` returned by a previous list request to get\nthe next page of results.", "location": "query", "type": "string" - } - }, - "path": "projects/{project}/global/backendBuckets/{backendBucket}/setEdgeSecurityPolicy", - "request": { - "$ref": "SecurityPolicyReference" - }, - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ] - }, - "setIamPolicy": { - "description": "Sets the access control policy on the specified resource. Replaces any existing policy.", - "flatPath": "projects/{project}/global/backendBuckets/{resource}/setIamPolicy", - "httpMethod": "POST", - "id": "compute.backendBuckets.setIamPolicy", - "parameterOrder": [ - "project", - "resource" - ], - "parameters": { - "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" }, - "resource": { - "description": "Name or id of the resource for this request.", - "location": "path", - "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "required": true, - "type": "string" - } - }, - "path": "projects/{project}/global/backendBuckets/{resource}/setIamPolicy", - "request": { - "$ref": "GlobalSetPolicyRequest" - }, - "response": { - "$ref": "Policy" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ] - }, - "testIamPermissions": { - "description": "Returns permissions that a caller has on the specified resource.", - "flatPath": "projects/{project}/global/backendBuckets/{resource}/testIamPermissions", - "httpMethod": "POST", - "id": "compute.backendBuckets.testIamPermissions", - "parameterOrder": [ - "project", - "resource" - ], - "parameters": { "project": { "description": "Project ID for this request.", "location": "path", @@ -1454,20 +1555,15 @@ "required": true, "type": "string" }, - "resource": { - "description": "Name or id of the resource for this request.", - "location": "path", - "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "required": true, - "type": "string" + "returnPartialSuccess": { + "description": "Opt-in for partial success behavior which provides partial results in case\nof failure. The default value is false.\n\nFor example, when partial success behavior is enabled, aggregatedList for a\nsingle zone scope either returns all resources in the zone or no resources,\nwith an error code.", + "location": "query", + "type": "boolean" } }, - "path": "projects/{project}/global/backendBuckets/{resource}/testIamPermissions", - "request": { - "$ref": "TestPermissionsRequest" - }, + "path": "projects/{project}/global/backendBuckets/listUsable", "response": { - "$ref": "TestPermissionsResponse" + "$ref": "BackendBucketListUsable" }, "scopes": [ "https://www.googleapis.com/auth/cloud-platform", @@ -1475,18 +1571,18 @@ "https://www.googleapis.com/auth/compute.readonly" ] }, - "update": { - "description": "Updates the specified BackendBucket resource with the data included in the request.", + "patch": { + "description": "Updates the specified BackendBucket resource with the data included in the\nrequest. This method supportsPATCH\nsemantics and uses theJSON merge\npatch format and processing rules.", "flatPath": "projects/{project}/global/backendBuckets/{backendBucket}", - "httpMethod": "PUT", - "id": "compute.backendBuckets.update", + "httpMethod": "PATCH", + "id": "compute.backendBuckets.patch", "parameterOrder": [ "project", "backendBucket" ], "parameters": { "backendBucket": { - "description": "Name of the BackendBucket resource to update.", + "description": "Name of the BackendBucket resource to patch.", "location": "path", "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", "required": true, @@ -1500,7 +1596,165 @@ "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. 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).", + "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).", + "location": "query", + "type": "string" + } + }, + "path": "projects/{project}/global/backendBuckets/{backendBucket}", + "request": { + "$ref": "BackendBucket" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ] + }, + "setEdgeSecurityPolicy": { + "description": "Sets the edge security policy for the specified backend bucket.", + "flatPath": "projects/{project}/global/backendBuckets/{backendBucket}/setEdgeSecurityPolicy", + "httpMethod": "POST", + "id": "compute.backendBuckets.setEdgeSecurityPolicy", + "parameterOrder": [ + "project", + "backendBucket" + ], + "parameters": { + "backendBucket": { + "description": "Name of the BackendBucket resource to which the security policy should be\nset. 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\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).", + "location": "query", + "type": "string" + } + }, + "path": "projects/{project}/global/backendBuckets/{backendBucket}/setEdgeSecurityPolicy", + "request": { + "$ref": "SecurityPolicyReference" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ] + }, + "setIamPolicy": { + "description": "Sets the access control policy on the specified resource.\nReplaces any existing policy.", + "flatPath": "projects/{project}/global/backendBuckets/{resource}/setIamPolicy", + "httpMethod": "POST", + "id": "compute.backendBuckets.setIamPolicy", + "parameterOrder": [ + "project", + "resource" + ], + "parameters": { + "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" + }, + "resource": { + "description": "Name or id of the resource for this request.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "required": true, + "type": "string" + } + }, + "path": "projects/{project}/global/backendBuckets/{resource}/setIamPolicy", + "request": { + "$ref": "GlobalSetPolicyRequest" + }, + "response": { + "$ref": "Policy" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ] + }, + "testIamPermissions": { + "description": "Returns permissions that a caller has on the specified resource.", + "flatPath": "projects/{project}/global/backendBuckets/{resource}/testIamPermissions", + "httpMethod": "POST", + "id": "compute.backendBuckets.testIamPermissions", + "parameterOrder": [ + "project", + "resource" + ], + "parameters": { + "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" + }, + "resource": { + "description": "Name or id of the resource for this request.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "required": true, + "type": "string" + } + }, + "path": "projects/{project}/global/backendBuckets/{resource}/testIamPermissions", + "request": { + "$ref": "TestPermissionsRequest" + }, + "response": { + "$ref": "TestPermissionsResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ] + }, + "update": { + "description": "Updates the specified BackendBucket resource with the data included in the\nrequest.", + "flatPath": "projects/{project}/global/backendBuckets/{backendBucket}", + "httpMethod": "PUT", + "id": "compute.backendBuckets.update", + "parameterOrder": [ + "project", + "backendBucket" + ], + "parameters": { + "backendBucket": { + "description": "Name of the BackendBucket resource to update.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "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\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).", "location": "query", "type": "string" } @@ -1522,7 +1776,7 @@ "backendServices": { "methods": { "addSignedUrlKey": { - "description": "Adds a key for validating requests with signed URLs for this backend service.", + "description": "Adds a key for validating requests with signed URLs for this backend\nservice.", "flatPath": "projects/{project}/global/backendServices/{backendService}/addSignedUrlKey", "httpMethod": "POST", "id": "compute.backendServices.addSignedUrlKey", @@ -1532,7 +1786,7 @@ ], "parameters": { "backendService": { - "description": "Name of the BackendService resource to which the Signed URL Key should be added. The name should conform to RFC1035.", + "description": "Name of the BackendService resource to which the Signed URL Key should be\nadded. The name should conform to RFC1035.", "location": "path", "required": true, "type": "string" @@ -1545,7 +1799,7 @@ "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. 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).", + "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).", "location": "query", "type": "string" } @@ -1563,7 +1817,7 @@ ] }, "aggregatedList": { - "description": "Retrieves the list of all BackendService resources, regional and global, available to the specified project. To prevent failure, Google recommends that you set the `returnPartialSuccess` parameter to `true`.", + "description": "Retrieves the list of all BackendService resources, regional and global,\navailable to the specified project.\n\nTo prevent failure, it is recommended that you set the\n`returnPartialSuccess` parameter to `true`.", "flatPath": "projects/{project}/aggregated/backendServices", "httpMethod": "GET", "id": "compute.backendServices.aggregatedList", @@ -1572,30 +1826,30 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` 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) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.", + "description": "A filter expression that filters resources listed in the response. Most\nCompute resources support two types of filter expressions:\nexpressions that support regular expressions and expressions that follow\nAPI improvement proposal AIP-160.\nThese two types of filter expressions cannot be mixed in one request.\n\nIf you want to use AIP-160, your expression must specify the field name, an\noperator, and the value that you want to use for filtering. The value\nmust be a string, a number, or a boolean. The operator\nmust be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`.\n\nFor example, if you are filtering Compute Engine instances, you can\nexclude instances named `example-instance` by specifying\n`name != example-instance`.\n\nThe `:*` comparison can be used to test whether a key has been defined.\nFor example, to find all objects with `owner` label use:\n```\nlabels.owner:*\n```\n\nYou can also filter nested fields. For example, you could specify\n`scheduling.automaticRestart = false` to include instances only\nif they are not scheduled for automatic restarts. You can use filtering\non nested fields to filter based onresource labels.\n\nTo filter on multiple expressions, provide each separate expression within\nparentheses. For example:\n```\n(scheduling.automaticRestart = true)\n(cpuPlatform = \"Intel Skylake\")\n```\nBy default, each expression is an `AND` expression. However, you\ncan include `AND` and `OR` expressions explicitly.\nFor example:\n```\n(cpuPlatform = \"Intel Skylake\") OR\n(cpuPlatform = \"Intel Broadwell\") AND\n(scheduling.automaticRestart = true)\n```\n\nIf you want to use a regular expression, use the `eq` (equal) or `ne`\n(not equal) operator against a single un-parenthesized expression with or\nwithout quotes or against multiple parenthesized expressions. Examples:\n\n`fieldname eq unquoted literal`\n`fieldname eq 'single quoted literal'`\n`fieldname eq \"double quoted literal\"`\n`(fieldname1 eq literal) (fieldname2 ne \"literal\")`\n\nThe literal value is interpreted as a regular expression using GoogleRE2 library syntax.\nThe literal value must match the entire field.\n\nFor example, to filter for instances that do not end with name \"instance\",\nyou would use `name ne .*instance`.\n\nYou cannot combine constraints on multiple fields using regular\nexpressions.", "location": "query", "type": "string" }, "includeAllScopes": { - "description": "Indicates whether every visible scope for each scope type (zone, region, global) should be included in the response. For new resource types added after this field, the flag has no effect as new resource types will always include every visible scope for each scope type in response. For resource types which predate this field, if this flag is omitted or false, only scopes of the scope types where the resource type is expected to be found will be included.", + "description": "Indicates whether every visible scope for each scope type (zone, region,\nglobal) should be included in the response. For new resource types added\nafter this field, the flag has no effect as new resource types will always\ninclude every visible scope for each scope type in response. For resource\ntypes which predate this field, if this flag is omitted or false, only\nscopes of the scope types where the resource type is expected to be found\nwill be included.", "location": "query", "type": "boolean" }, "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`)", + "description": "The maximum number of results per page that should be returned.\nIf the number of available results is larger than `maxResults`,\nCompute Engine returns a `nextPageToken` that can be used to get\nthe next page of results in subsequent list requests. Acceptable values are\n`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. 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.", + "description": "Sorts list results by a certain order. By default, results\nare returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation\ntimestamp using `orderBy=\"creationTimestamp desc\"`. This sorts\nresults based on the `creationTimestamp` field in\nreverse chronological order (newest result first). Use this to sort\nresources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or\n`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.", + "description": "Specifies a page token to use. Set `pageToken` to the\n`nextPageToken` returned by a previous list request to get\nthe next page of results.", "location": "query", "type": "string" }, @@ -1607,12 +1861,12 @@ "type": "string" }, "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", + "description": "Opt-in for partial success behavior which provides partial results in case\nof failure. The default value is false.\n\nFor example, when partial success behavior is enabled, aggregatedList for a\nsingle zone scope either returns all resources in the zone or no resources,\nwith an error code.", "location": "query", "type": "boolean" }, "serviceProjectNumber": { - "description": "The Shared VPC service project id or service project number for which aggregated list request is invoked for subnetworks list-usable api.", + "description": "The Shared VPC service project id or service project number for which\naggregated list request is invoked for subnetworks list-usable api.", "format": "int64", "location": "query", "type": "string" @@ -1653,7 +1907,7 @@ "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. 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).", + "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).", "location": "query", "type": "string" } @@ -1668,7 +1922,7 @@ ] }, "deleteSignedUrlKey": { - "description": "Deletes a key for validating requests with signed URLs for this backend service.", + "description": "Deletes a key for validating requests with signed URLs for this backend\nservice.", "flatPath": "projects/{project}/global/backendServices/{backendService}/deleteSignedUrlKey", "httpMethod": "POST", "id": "compute.backendServices.deleteSignedUrlKey", @@ -1679,7 +1933,7 @@ ], "parameters": { "backendService": { - "description": "Name of the BackendService resource to which the Signed URL Key should be added. The name should conform to RFC1035.", + "description": "Name of the BackendService resource to which the Signed URL Key should be\nadded. The name should conform to RFC1035.", "location": "path", "required": true, "type": "string" @@ -1698,7 +1952,7 @@ "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. 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).", + "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).", "location": "query", "type": "string" } @@ -1747,8 +2001,40 @@ "https://www.googleapis.com/auth/compute.readonly" ] }, + "getEffectiveSecurityPolicies": { + "description": "Returns effective security policies applied to this backend service.", + "flatPath": "projects/{project}/global/backendServices/{backendService}/getEffectiveSecurityPolicies", + "httpMethod": "GET", + "id": "compute.backendServices.getEffectiveSecurityPolicies", + "parameterOrder": [ + "project", + "backendService" + ], + "parameters": { + "backendService": { + "description": "Name of the Backend Service for this request.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "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" + } + }, + "path": "projects/{project}/global/backendServices/{backendService}/getEffectiveSecurityPolicies", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ] + }, "getHealth": { - "description": "Gets the most recent health check results for this BackendService. Example request body: { \"group\": \"/zones/us-east1-b/instanceGroups/lb-backend-example\" }", + "description": "Gets the most recent health check results for this\nBackendService.\n\nExample request body:\n\n{\n \"group\": \"/zones/us-east1-b/instanceGroups/lb-backend-example\"\n}", "flatPath": "projects/{project}/global/backendServices/{backendService}/getHealth", "httpMethod": "POST", "id": "compute.backendServices.getHealth", @@ -1785,7 +2071,7 @@ ] }, "getIamPolicy": { - "description": "Gets the access control policy for a resource. May be empty if no such policy or resource exists.", + "description": "Gets the access control policy for a resource. May be empty if no such\npolicy or resource exists.", "flatPath": "projects/{project}/global/backendServices/{resource}/getIamPolicy", "httpMethod": "GET", "id": "compute.backendServices.getIamPolicy", @@ -1826,7 +2112,7 @@ ] }, "insert": { - "description": "Creates a BackendService resource in the specified project using the data included in the request. For more information, see Backend services overview .", + "description": "Creates a BackendService resource in the specified project using\nthe data included in the request. For more information, see\nBackend services overview.", "flatPath": "projects/{project}/global/backendServices", "httpMethod": "POST", "id": "compute.backendServices.insert", @@ -1842,7 +2128,7 @@ "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. 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).", + "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).", "location": "query", "type": "string" } @@ -1860,7 +2146,7 @@ ] }, "list": { - "description": "Retrieves the list of BackendService resources available to the specified project.", + "description": "Retrieves the list of BackendService resources available to the specified\nproject.", "flatPath": "projects/{project}/global/backendServices", "httpMethod": "GET", "id": "compute.backendServices.list", @@ -1869,25 +2155,25 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` 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) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.", + "description": "A filter expression that filters resources listed in the response. Most\nCompute resources support two types of filter expressions:\nexpressions that support regular expressions and expressions that follow\nAPI improvement proposal AIP-160.\nThese two types of filter expressions cannot be mixed in one request.\n\nIf you want to use AIP-160, your expression must specify the field name, an\noperator, and the value that you want to use for filtering. The value\nmust be a string, a number, or a boolean. The operator\nmust be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`.\n\nFor example, if you are filtering Compute Engine instances, you can\nexclude instances named `example-instance` by specifying\n`name != example-instance`.\n\nThe `:*` comparison can be used to test whether a key has been defined.\nFor example, to find all objects with `owner` label use:\n```\nlabels.owner:*\n```\n\nYou can also filter nested fields. For example, you could specify\n`scheduling.automaticRestart = false` to include instances only\nif they are not scheduled for automatic restarts. You can use filtering\non nested fields to filter based onresource labels.\n\nTo filter on multiple expressions, provide each separate expression within\nparentheses. For example:\n```\n(scheduling.automaticRestart = true)\n(cpuPlatform = \"Intel Skylake\")\n```\nBy default, each expression is an `AND` expression. However, you\ncan include `AND` and `OR` expressions explicitly.\nFor example:\n```\n(cpuPlatform = \"Intel Skylake\") OR\n(cpuPlatform = \"Intel Broadwell\") AND\n(scheduling.automaticRestart = true)\n```\n\nIf you want to use a regular expression, use the `eq` (equal) or `ne`\n(not equal) operator against a single un-parenthesized expression with or\nwithout quotes or against multiple parenthesized expressions. Examples:\n\n`fieldname eq unquoted literal`\n`fieldname eq 'single quoted literal'`\n`fieldname eq \"double quoted literal\"`\n`(fieldname1 eq literal) (fieldname2 ne \"literal\")`\n\nThe literal value is interpreted as a regular expression using GoogleRE2 library syntax.\nThe literal value must match the entire field.\n\nFor example, to filter for instances that do not end with name \"instance\",\nyou would use `name ne .*instance`.\n\nYou cannot combine constraints on multiple fields using regular\nexpressions.", "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`)", + "description": "The maximum number of results per page that should be returned.\nIf the number of available results is larger than `maxResults`,\nCompute Engine returns a `nextPageToken` that can be used to get\nthe next page of results in subsequent list requests. Acceptable values are\n`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. 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.", + "description": "Sorts list results by a certain order. By default, results\nare returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation\ntimestamp using `orderBy=\"creationTimestamp desc\"`. This sorts\nresults based on the `creationTimestamp` field in\nreverse chronological order (newest result first). Use this to sort\nresources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or\n`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.", + "description": "Specifies a page token to use. Set `pageToken` to the\n`nextPageToken` returned by a previous list request to get\nthe next page of results.", "location": "query", "type": "string" }, @@ -1899,7 +2185,7 @@ "type": "string" }, "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", + "description": "Opt-in for partial success behavior which provides partial results in case\nof failure. The default value is false.\n\nFor example, when partial success behavior is enabled, aggregatedList for a\nsingle zone scope either returns all resources in the zone or no resources,\nwith an error code.", "location": "query", "type": "boolean" } @@ -1915,7 +2201,7 @@ ] }, "listUsable": { - "description": "Retrieves an aggregated list of all usable backend services in the specified project.", + "description": "Retrieves a list of all usable backend services for Application Load\nBalancers and Proxy Network Load Balancers in the specified project.\nBackend services for external and internal passthrough Network Load\nBalancers are not included in the response.", "flatPath": "projects/{project}/global/backendServices/listUsable", "httpMethod": "GET", "id": "compute.backendServices.listUsable", @@ -1924,25 +2210,25 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` 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) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.", + "description": "A filter expression that filters resources listed in the response. Most\nCompute resources support two types of filter expressions:\nexpressions that support regular expressions and expressions that follow\nAPI improvement proposal AIP-160.\nThese two types of filter expressions cannot be mixed in one request.\n\nIf you want to use AIP-160, your expression must specify the field name, an\noperator, and the value that you want to use for filtering. The value\nmust be a string, a number, or a boolean. The operator\nmust be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`.\n\nFor example, if you are filtering Compute Engine instances, you can\nexclude instances named `example-instance` by specifying\n`name != example-instance`.\n\nThe `:*` comparison can be used to test whether a key has been defined.\nFor example, to find all objects with `owner` label use:\n```\nlabels.owner:*\n```\n\nYou can also filter nested fields. For example, you could specify\n`scheduling.automaticRestart = false` to include instances only\nif they are not scheduled for automatic restarts. You can use filtering\non nested fields to filter based onresource labels.\n\nTo filter on multiple expressions, provide each separate expression within\nparentheses. For example:\n```\n(scheduling.automaticRestart = true)\n(cpuPlatform = \"Intel Skylake\")\n```\nBy default, each expression is an `AND` expression. However, you\ncan include `AND` and `OR` expressions explicitly.\nFor example:\n```\n(cpuPlatform = \"Intel Skylake\") OR\n(cpuPlatform = \"Intel Broadwell\") AND\n(scheduling.automaticRestart = true)\n```\n\nIf you want to use a regular expression, use the `eq` (equal) or `ne`\n(not equal) operator against a single un-parenthesized expression with or\nwithout quotes or against multiple parenthesized expressions. Examples:\n\n`fieldname eq unquoted literal`\n`fieldname eq 'single quoted literal'`\n`fieldname eq \"double quoted literal\"`\n`(fieldname1 eq literal) (fieldname2 ne \"literal\")`\n\nThe literal value is interpreted as a regular expression using GoogleRE2 library syntax.\nThe literal value must match the entire field.\n\nFor example, to filter for instances that do not end with name \"instance\",\nyou would use `name ne .*instance`.\n\nYou cannot combine constraints on multiple fields using regular\nexpressions.", "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`)", + "description": "The maximum number of results per page that should be returned.\nIf the number of available results is larger than `maxResults`,\nCompute Engine returns a `nextPageToken` that can be used to get\nthe next page of results in subsequent list requests. Acceptable values are\n`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. 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.", + "description": "Sorts list results by a certain order. By default, results\nare returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation\ntimestamp using `orderBy=\"creationTimestamp desc\"`. This sorts\nresults based on the `creationTimestamp` field in\nreverse chronological order (newest result first). Use this to sort\nresources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or\n`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.", + "description": "Specifies a page token to use. Set `pageToken` to the\n`nextPageToken` returned by a previous list request to get\nthe next page of results.", "location": "query", "type": "string" }, @@ -1954,7 +2240,7 @@ "type": "string" }, "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", + "description": "Opt-in for partial success behavior which provides partial results in case\nof failure. The default value is false.\n\nFor example, when partial success behavior is enabled, aggregatedList for a\nsingle zone scope either returns all resources in the zone or no resources,\nwith an error code.", "location": "query", "type": "boolean" } @@ -1970,7 +2256,7 @@ ] }, "patch": { - "description": "Patches the specified BackendService resource with the data included in the request. For more information, see Backend services overview. This method supports PATCH semantics and uses the JSON merge patch format and processing rules.", + "description": "Patches the specified BackendService resource with the data included in the\nrequest. For more information, see \nBackend services overview. This method\nsupports PATCH semantics and uses the JSON merge\npatch format and processing rules.", "flatPath": "projects/{project}/global/backendServices/{backendService}", "httpMethod": "PATCH", "id": "compute.backendServices.patch", @@ -1994,7 +2280,7 @@ "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. 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).", + "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).", "location": "query", "type": "string" } @@ -2022,7 +2308,7 @@ ], "parameters": { "backendService": { - "description": "Name of the BackendService resource to which the edge security policy should be set. The name should conform to RFC1035.", + "description": "Name of the BackendService resource to which the edge security policy\nshould be set. The name should conform to RFC1035.", "location": "path", "required": true, "type": "string" @@ -2035,7 +2321,7 @@ "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. 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).", + "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).", "location": "query", "type": "string" } @@ -2053,7 +2339,7 @@ ] }, "setIamPolicy": { - "description": "Sets the access control policy on the specified resource. Replaces any existing policy.", + "description": "Sets the access control policy on the specified resource.\nReplaces any existing policy.", "flatPath": "projects/{project}/global/backendServices/{resource}/setIamPolicy", "httpMethod": "POST", "id": "compute.backendServices.setIamPolicy", @@ -2090,7 +2376,7 @@ ] }, "setSecurityPolicy": { - "description": "Sets the Google Cloud Armor security policy for the specified backend service. For more information, see Google Cloud Armor Overview", + "description": "Sets the Google Cloud Armor security policy for the specified backend\nservice. For more information, seeGoogle\nCloud Armor Overview", "flatPath": "projects/{project}/global/backendServices/{backendService}/setSecurityPolicy", "httpMethod": "POST", "id": "compute.backendServices.setSecurityPolicy", @@ -2100,7 +2386,7 @@ ], "parameters": { "backendService": { - "description": "Name of the BackendService resource to which the security policy should be set. The name should conform to RFC1035.", + "description": "Name of the BackendService resource to which the security policy should be\nset. The name should conform to RFC1035.", "location": "path", "required": true, "type": "string" @@ -2113,7 +2399,7 @@ "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. 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).", + "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).", "location": "query", "type": "string" } @@ -2169,7 +2455,7 @@ ] }, "update": { - "description": "Updates the specified BackendService resource with the data included in the request. For more information, see Backend services overview.", + "description": "Updates the specified BackendService resource with the data included in the\nrequest. For more information, seeBackend\nservices overview.", "flatPath": "projects/{project}/global/backendServices/{backendService}", "httpMethod": "PUT", "id": "compute.backendServices.update", @@ -2193,7 +2479,7 @@ "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. 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).", + "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).", "location": "query", "type": "string" } @@ -2212,42 +2498,150 @@ } } }, - "diskTypes": { + "crossSiteNetworks": { "methods": { - "aggregatedList": { - "description": "Retrieves an aggregated list of disk types. To prevent failure, Google recommends that you set the `returnPartialSuccess` parameter to `true`.", - "flatPath": "projects/{project}/aggregated/diskTypes", + "delete": { + "description": "Deletes the specified cross-site network in the given scope.", + "flatPath": "projects/{project}/global/crossSiteNetworks/{crossSiteNetwork}", + "httpMethod": "DELETE", + "id": "compute.crossSiteNetworks.delete", + "parameterOrder": [ + "project", + "crossSiteNetwork" + ], + "parameters": { + "crossSiteNetwork": { + "description": "Name of the cross-site network to delete.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "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\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).\nend_interface: MixerMutationRequestBuilder", + "location": "query", + "type": "string" + } + }, + "path": "projects/{project}/global/crossSiteNetworks/{crossSiteNetwork}", + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ] + }, + "get": { + "description": "Returns the specified cross-site network in the given scope.", + "flatPath": "projects/{project}/global/crossSiteNetworks/{crossSiteNetwork}", "httpMethod": "GET", - "id": "compute.diskTypes.aggregatedList", + "id": "compute.crossSiteNetworks.get", + "parameterOrder": [ + "project", + "crossSiteNetwork" + ], + "parameters": { + "crossSiteNetwork": { + "description": "Name of the cross-site network to return.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "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" + } + }, + "path": "projects/{project}/global/crossSiteNetworks/{crossSiteNetwork}", + "response": { + "$ref": "CrossSiteNetwork" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ] + }, + "insert": { + "description": "Creates a cross-site network in the specified project in the given scope\nusing the parameters that are included in the request.", + "flatPath": "projects/{project}/global/crossSiteNetworks", + "httpMethod": "POST", + "id": "compute.crossSiteNetworks.insert", "parameterOrder": [ "project" ], "parameters": { - "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` 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) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.", + "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\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).\nend_interface: MixerMutationRequestBuilder", "location": "query", "type": "string" }, - "includeAllScopes": { - "description": "Indicates whether every visible scope for each scope type (zone, region, global) should be included in the response. For new resource types added after this field, the flag has no effect as new resource types will always include every visible scope for each scope type in response. For resource types which predate this field, if this flag is omitted or false, only scopes of the scope types where the resource type is expected to be found will be included.", + "validateOnly": { + "description": "[Input Only] Validate the new configuration, but don't create it.", "location": "query", "type": "boolean" + } + }, + "path": "projects/{project}/global/crossSiteNetworks", + "request": { + "$ref": "CrossSiteNetwork" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ] + }, + "list": { + "description": "Lists the cross-site networks for a project in the given scope.", + "flatPath": "projects/{project}/global/crossSiteNetworks", + "httpMethod": "GET", + "id": "compute.crossSiteNetworks.list", + "parameterOrder": [ + "project" + ], + "parameters": { + "filter": { + "description": "A filter expression that filters resources listed in the response. Most\nCompute resources support two types of filter expressions:\nexpressions that support regular expressions and expressions that follow\nAPI improvement proposal AIP-160.\nThese two types of filter expressions cannot be mixed in one request.\n\nIf you want to use AIP-160, your expression must specify the field name, an\noperator, and the value that you want to use for filtering. The value\nmust be a string, a number, or a boolean. The operator\nmust be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`.\n\nFor example, if you are filtering Compute Engine instances, you can\nexclude instances named `example-instance` by specifying\n`name != example-instance`.\n\nThe `:*` comparison can be used to test whether a key has been defined.\nFor example, to find all objects with `owner` label use:\n```\nlabels.owner:*\n```\n\nYou can also filter nested fields. For example, you could specify\n`scheduling.automaticRestart = false` to include instances only\nif they are not scheduled for automatic restarts. You can use filtering\non nested fields to filter based onresource labels.\n\nTo filter on multiple expressions, provide each separate expression within\nparentheses. For example:\n```\n(scheduling.automaticRestart = true)\n(cpuPlatform = \"Intel Skylake\")\n```\nBy default, each expression is an `AND` expression. However, you\ncan include `AND` and `OR` expressions explicitly.\nFor example:\n```\n(cpuPlatform = \"Intel Skylake\") OR\n(cpuPlatform = \"Intel Broadwell\") AND\n(scheduling.automaticRestart = true)\n```\n\nIf you want to use a regular expression, use the `eq` (equal) or `ne`\n(not equal) operator against a single un-parenthesized expression with or\nwithout quotes or against multiple parenthesized expressions. Examples:\n\n`fieldname eq unquoted literal`\n`fieldname eq 'single quoted literal'`\n`fieldname eq \"double quoted literal\"`\n`(fieldname1 eq literal) (fieldname2 ne \"literal\")`\n\nThe literal value is interpreted as a regular expression using GoogleRE2 library syntax.\nThe literal value must match the entire field.\n\nFor example, to filter for instances that do not end with name \"instance\",\nyou would use `name ne .*instance`.\n\nYou cannot combine constraints on multiple fields using regular\nexpressions.", + "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`)", + "description": "The maximum number of results per page that should be returned.\nIf the number of available results is larger than `maxResults`,\nCompute Engine returns a `nextPageToken` that can be used to get\nthe next page of results in subsequent list requests. Acceptable values are\n`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. 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.", + "description": "Sorts list results by a certain order. By default, results\nare returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation\ntimestamp using `orderBy=\"creationTimestamp desc\"`. This sorts\nresults based on the `creationTimestamp` field in\nreverse chronological order (newest result first). Use this to sort\nresources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or\n`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.", + "description": "Specifies a page token to use. Set `pageToken` to the\n`nextPageToken` returned by a previous list request to get\nthe next page of results.", "location": "query", "type": "string" }, @@ -2259,12 +2653,129 @@ "type": "string" }, "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", + "description": "Opt-in for partial success behavior which provides partial results in case\nof failure. The default value is false.\n\nFor example, when partial success behavior is enabled, aggregatedList for a\nsingle zone scope either returns all resources in the zone or no resources,\nwith an error code.", + "location": "query", + "type": "boolean" + } + }, + "path": "projects/{project}/global/crossSiteNetworks", + "response": { + "$ref": "CrossSiteNetworkList" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ] + }, + "patch": { + "description": "Updates the specified cross-site network with the data included in\nthe request. This method supportsPATCH\nsemantics and uses theJSON merge\npatch format and processing rules.", + "flatPath": "projects/{project}/global/crossSiteNetworks/{crossSiteNetwork}", + "httpMethod": "PATCH", + "id": "compute.crossSiteNetworks.patch", + "parameterOrder": [ + "project", + "crossSiteNetwork" + ], + "parameters": { + "crossSiteNetwork": { + "description": "Name of the cross-site network to update.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "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\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).\nend_interface: MixerMutationRequestBuilder", + "location": "query", + "type": "string" + }, + "updateMask": { + "description": "update_mask indicates fields to be updated as part of this request.", + "format": "google-fieldmask", + "location": "query", + "type": "string" + }, + "validateOnly": { + "description": "[Input Only] Validate the new configuration, but don't update it.", + "location": "query", + "type": "boolean" + } + }, + "path": "projects/{project}/global/crossSiteNetworks/{crossSiteNetwork}", + "request": { + "$ref": "CrossSiteNetwork" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ] + } + } + }, + "diskTypes": { + "methods": { + "aggregatedList": { + "description": "Retrieves an aggregated list of disk types.\n\nTo prevent failure, it is recommended that you set the\n`returnPartialSuccess` parameter to `true`.", + "flatPath": "projects/{project}/aggregated/diskTypes", + "httpMethod": "GET", + "id": "compute.diskTypes.aggregatedList", + "parameterOrder": [ + "project" + ], + "parameters": { + "filter": { + "description": "A filter expression that filters resources listed in the response. Most\nCompute resources support two types of filter expressions:\nexpressions that support regular expressions and expressions that follow\nAPI improvement proposal AIP-160.\nThese two types of filter expressions cannot be mixed in one request.\n\nIf you want to use AIP-160, your expression must specify the field name, an\noperator, and the value that you want to use for filtering. The value\nmust be a string, a number, or a boolean. The operator\nmust be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`.\n\nFor example, if you are filtering Compute Engine instances, you can\nexclude instances named `example-instance` by specifying\n`name != example-instance`.\n\nThe `:*` comparison can be used to test whether a key has been defined.\nFor example, to find all objects with `owner` label use:\n```\nlabels.owner:*\n```\n\nYou can also filter nested fields. For example, you could specify\n`scheduling.automaticRestart = false` to include instances only\nif they are not scheduled for automatic restarts. You can use filtering\non nested fields to filter based onresource labels.\n\nTo filter on multiple expressions, provide each separate expression within\nparentheses. For example:\n```\n(scheduling.automaticRestart = true)\n(cpuPlatform = \"Intel Skylake\")\n```\nBy default, each expression is an `AND` expression. However, you\ncan include `AND` and `OR` expressions explicitly.\nFor example:\n```\n(cpuPlatform = \"Intel Skylake\") OR\n(cpuPlatform = \"Intel Broadwell\") AND\n(scheduling.automaticRestart = true)\n```\n\nIf you want to use a regular expression, use the `eq` (equal) or `ne`\n(not equal) operator against a single un-parenthesized expression with or\nwithout quotes or against multiple parenthesized expressions. Examples:\n\n`fieldname eq unquoted literal`\n`fieldname eq 'single quoted literal'`\n`fieldname eq \"double quoted literal\"`\n`(fieldname1 eq literal) (fieldname2 ne \"literal\")`\n\nThe literal value is interpreted as a regular expression using GoogleRE2 library syntax.\nThe literal value must match the entire field.\n\nFor example, to filter for instances that do not end with name \"instance\",\nyou would use `name ne .*instance`.\n\nYou cannot combine constraints on multiple fields using regular\nexpressions.", + "location": "query", + "type": "string" + }, + "includeAllScopes": { + "description": "Indicates whether every visible scope for each scope type (zone, region,\nglobal) should be included in the response. For new resource types added\nafter this field, the flag has no effect as new resource types will always\ninclude every visible scope for each scope type in response. For resource\ntypes which predate this field, if this flag is omitted or false, only\nscopes of the scope types where the resource type is expected to be found\nwill be included.", + "location": "query", + "type": "boolean" + }, + "maxResults": { + "default": "500", + "description": "The maximum number of results per page that should be returned.\nIf the number of available results is larger than `maxResults`,\nCompute Engine returns a `nextPageToken` that can be used to get\nthe next page of results in subsequent list requests. Acceptable values are\n`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\nare returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation\ntimestamp using `orderBy=\"creationTimestamp desc\"`. This sorts\nresults based on the `creationTimestamp` field in\nreverse chronological order (newest result first). Use this to sort\nresources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or\n`creationTimestamp desc` is supported.", + "location": "query", + "type": "string" + }, + "pageToken": { + "description": "Specifies a page token to use. Set `pageToken` to the\n`nextPageToken` returned by a previous list request to get\nthe 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" + }, + "returnPartialSuccess": { + "description": "Opt-in for partial success behavior which provides partial results in case\nof failure. The default value is false.\n\nFor example, when partial success behavior is enabled, aggregatedList for a\nsingle zone scope either returns all resources in the zone or no resources,\nwith an error code.", "location": "query", "type": "boolean" }, "serviceProjectNumber": { - "description": "The Shared VPC service project id or service project number for which aggregated list request is invoked for subnetworks list-usable api.", + "description": "The Shared VPC service project id or service project number for which\naggregated list request is invoked for subnetworks list-usable api.", "format": "int64", "location": "query", "type": "string" @@ -2324,7 +2835,7 @@ ] }, "list": { - "description": "Retrieves a list of disk types available to the specified project.", + "description": "Retrieves a list of disk types available to the specified\nproject.", "flatPath": "projects/{project}/zones/{zone}/diskTypes", "httpMethod": "GET", "id": "compute.diskTypes.list", @@ -2334,25 +2845,25 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` 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) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.", + "description": "A filter expression that filters resources listed in the response. Most\nCompute resources support two types of filter expressions:\nexpressions that support regular expressions and expressions that follow\nAPI improvement proposal AIP-160.\nThese two types of filter expressions cannot be mixed in one request.\n\nIf you want to use AIP-160, your expression must specify the field name, an\noperator, and the value that you want to use for filtering. The value\nmust be a string, a number, or a boolean. The operator\nmust be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`.\n\nFor example, if you are filtering Compute Engine instances, you can\nexclude instances named `example-instance` by specifying\n`name != example-instance`.\n\nThe `:*` comparison can be used to test whether a key has been defined.\nFor example, to find all objects with `owner` label use:\n```\nlabels.owner:*\n```\n\nYou can also filter nested fields. For example, you could specify\n`scheduling.automaticRestart = false` to include instances only\nif they are not scheduled for automatic restarts. You can use filtering\non nested fields to filter based onresource labels.\n\nTo filter on multiple expressions, provide each separate expression within\nparentheses. For example:\n```\n(scheduling.automaticRestart = true)\n(cpuPlatform = \"Intel Skylake\")\n```\nBy default, each expression is an `AND` expression. However, you\ncan include `AND` and `OR` expressions explicitly.\nFor example:\n```\n(cpuPlatform = \"Intel Skylake\") OR\n(cpuPlatform = \"Intel Broadwell\") AND\n(scheduling.automaticRestart = true)\n```\n\nIf you want to use a regular expression, use the `eq` (equal) or `ne`\n(not equal) operator against a single un-parenthesized expression with or\nwithout quotes or against multiple parenthesized expressions. Examples:\n\n`fieldname eq unquoted literal`\n`fieldname eq 'single quoted literal'`\n`fieldname eq \"double quoted literal\"`\n`(fieldname1 eq literal) (fieldname2 ne \"literal\")`\n\nThe literal value is interpreted as a regular expression using GoogleRE2 library syntax.\nThe literal value must match the entire field.\n\nFor example, to filter for instances that do not end with name \"instance\",\nyou would use `name ne .*instance`.\n\nYou cannot combine constraints on multiple fields using regular\nexpressions.", "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`)", + "description": "The maximum number of results per page that should be returned.\nIf the number of available results is larger than `maxResults`,\nCompute Engine returns a `nextPageToken` that can be used to get\nthe next page of results in subsequent list requests. Acceptable values are\n`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. 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.", + "description": "Sorts list results by a certain order. By default, results\nare returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation\ntimestamp using `orderBy=\"creationTimestamp desc\"`. This sorts\nresults based on the `creationTimestamp` field in\nreverse chronological order (newest result first). Use this to sort\nresources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or\n`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.", + "description": "Specifies a page token to use. Set `pageToken` to the\n`nextPageToken` returned by a previous list request to get\nthe next page of results.", "location": "query", "type": "string" }, @@ -2364,7 +2875,7 @@ "type": "string" }, "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", + "description": "Opt-in for partial success behavior which provides partial results in case\nof failure. The default value is false.\n\nFor example, when partial success behavior is enabled, aggregatedList for a\nsingle zone scope either returns all resources in the zone or no resources,\nwith an error code.", "location": "query", "type": "boolean" }, @@ -2391,7 +2902,7 @@ "disks": { "methods": { "addResourcePolicies": { - "description": "Adds existing resource policies to a disk. You can only add one policy which will be applied to this disk for scheduling snapshot creation.", + "description": "Adds existing resource policies to a disk. You can only add one\npolicy which will be applied to this disk for scheduling snapshot\ncreation.", "flatPath": "projects/{project}/zones/{zone}/disks/{disk}/addResourcePolicies", "httpMethod": "POST", "id": "compute.disks.addResourcePolicies", @@ -2416,7 +2927,7 @@ "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. 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).", + "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).", "location": "query", "type": "string" }, @@ -2441,7 +2952,7 @@ ] }, "aggregatedList": { - "description": "Retrieves an aggregated list of persistent disks. To prevent failure, Google recommends that you set the `returnPartialSuccess` parameter to `true`.", + "description": "Retrieves an aggregated list of persistent disks.\n\nTo prevent failure, it is recommended that you set the\n`returnPartialSuccess` parameter to `true`.", "flatPath": "projects/{project}/aggregated/disks", "httpMethod": "GET", "id": "compute.disks.aggregatedList", @@ -2450,30 +2961,30 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` 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) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.", + "description": "A filter expression that filters resources listed in the response. Most\nCompute resources support two types of filter expressions:\nexpressions that support regular expressions and expressions that follow\nAPI improvement proposal AIP-160.\nThese two types of filter expressions cannot be mixed in one request.\n\nIf you want to use AIP-160, your expression must specify the field name, an\noperator, and the value that you want to use for filtering. The value\nmust be a string, a number, or a boolean. The operator\nmust be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`.\n\nFor example, if you are filtering Compute Engine instances, you can\nexclude instances named `example-instance` by specifying\n`name != example-instance`.\n\nThe `:*` comparison can be used to test whether a key has been defined.\nFor example, to find all objects with `owner` label use:\n```\nlabels.owner:*\n```\n\nYou can also filter nested fields. For example, you could specify\n`scheduling.automaticRestart = false` to include instances only\nif they are not scheduled for automatic restarts. You can use filtering\non nested fields to filter based onresource labels.\n\nTo filter on multiple expressions, provide each separate expression within\nparentheses. For example:\n```\n(scheduling.automaticRestart = true)\n(cpuPlatform = \"Intel Skylake\")\n```\nBy default, each expression is an `AND` expression. However, you\ncan include `AND` and `OR` expressions explicitly.\nFor example:\n```\n(cpuPlatform = \"Intel Skylake\") OR\n(cpuPlatform = \"Intel Broadwell\") AND\n(scheduling.automaticRestart = true)\n```\n\nIf you want to use a regular expression, use the `eq` (equal) or `ne`\n(not equal) operator against a single un-parenthesized expression with or\nwithout quotes or against multiple parenthesized expressions. Examples:\n\n`fieldname eq unquoted literal`\n`fieldname eq 'single quoted literal'`\n`fieldname eq \"double quoted literal\"`\n`(fieldname1 eq literal) (fieldname2 ne \"literal\")`\n\nThe literal value is interpreted as a regular expression using GoogleRE2 library syntax.\nThe literal value must match the entire field.\n\nFor example, to filter for instances that do not end with name \"instance\",\nyou would use `name ne .*instance`.\n\nYou cannot combine constraints on multiple fields using regular\nexpressions.", "location": "query", "type": "string" }, "includeAllScopes": { - "description": "Indicates whether every visible scope for each scope type (zone, region, global) should be included in the response. For new resource types added after this field, the flag has no effect as new resource types will always include every visible scope for each scope type in response. For resource types which predate this field, if this flag is omitted or false, only scopes of the scope types where the resource type is expected to be found will be included.", + "description": "Indicates whether every visible scope for each scope type (zone, region,\nglobal) should be included in the response. For new resource types added\nafter this field, the flag has no effect as new resource types will always\ninclude every visible scope for each scope type in response. For resource\ntypes which predate this field, if this flag is omitted or false, only\nscopes of the scope types where the resource type is expected to be found\nwill be included.", "location": "query", "type": "boolean" }, "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`)", + "description": "The maximum number of results per page that should be returned.\nIf the number of available results is larger than `maxResults`,\nCompute Engine returns a `nextPageToken` that can be used to get\nthe next page of results in subsequent list requests. Acceptable values are\n`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. 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.", + "description": "Sorts list results by a certain order. By default, results\nare returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation\ntimestamp using `orderBy=\"creationTimestamp desc\"`. This sorts\nresults based on the `creationTimestamp` field in\nreverse chronological order (newest result first). Use this to sort\nresources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or\n`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.", + "description": "Specifies a page token to use. Set `pageToken` to the\n`nextPageToken` returned by a previous list request to get\nthe next page of results.", "location": "query", "type": "string" }, @@ -2485,12 +2996,12 @@ "type": "string" }, "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", + "description": "Opt-in for partial success behavior which provides partial results in case\nof failure. The default value is false.\n\nFor example, when partial success behavior is enabled, aggregatedList for a\nsingle zone scope either returns all resources in the zone or no resources,\nwith an error code.", "location": "query", "type": "boolean" }, "serviceProjectNumber": { - "description": "The Shared VPC service project id or service project number for which aggregated list request is invoked for subnetworks list-usable api.", + "description": "The Shared VPC service project id or service project number for which\naggregated list request is invoked for subnetworks list-usable api.", "format": "int64", "location": "query", "type": "string" @@ -2524,7 +3035,7 @@ "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. 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).", + "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).", "location": "query", "type": "string" }, @@ -2548,8 +3059,56 @@ "https://www.googleapis.com/auth/compute" ] }, + "bulkSetLabels": { + "description": "Sets the labels on many disks at once. To learn more about labels, read theLabeling\nResources documentation.", + "flatPath": "projects/{project}/zones/{zone}/disks/bulkSetLabels", + "httpMethod": "POST", + "id": "compute.disks.bulkSetLabels", + "parameterOrder": [ + "project", + "zone" + ], + "parameters": { + "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\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).", + "location": "query", + "type": "string" + }, + "resource": { + "description": "Name or id of the resource for this request.", + "location": "query", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "type": "string" + }, + "zone": { + "description": "The name of the zone for this request.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "required": true, + "type": "string" + } + }, + "path": "projects/{project}/zones/{zone}/disks/bulkSetLabels", + "request": { + "$ref": "BulkZoneSetLabelsRequest" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ] + }, "createSnapshot": { - "description": "Creates a snapshot of a specified persistent disk. For regular snapshot creation, consider using snapshots.insert instead, as that method supports more features, such as creating snapshots in a project different from the source disk project.", + "description": "Creates a snapshot of a specified persistent disk. For regular snapshot\ncreation, consider using snapshots.insert\ninstead, as that method supports more features, such as creating snapshots\nin a project different from the source disk project.", "flatPath": "projects/{project}/zones/{zone}/disks/{disk}/createSnapshot", "httpMethod": "POST", "id": "compute.disks.createSnapshot", @@ -2567,7 +3126,7 @@ "type": "string" }, "guestFlush": { - "description": "[Input Only] Whether to attempt an application consistent snapshot by informing the OS to prepare for the snapshot process.", + "description": "[Input Only] Whether to attempt an application consistent snapshot by\ninforming the OS to prepare for the snapshot process.", "location": "query", "type": "boolean" }, @@ -2579,7 +3138,7 @@ "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. 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).", + "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).", "location": "query", "type": "string" }, @@ -2604,7 +3163,7 @@ ] }, "delete": { - "description": "Deletes the specified persistent disk. Deleting a disk removes its data permanently and is irreversible. However, deleting a disk does not delete any snapshots previously made from the disk. You must separately delete snapshots.", + "description": "Deletes the specified persistent disk. Deleting a disk removes its data\npermanently and is irreversible. However, deleting a disk does not\ndelete any snapshots\npreviously made from the disk. You must separatelydelete\nsnapshots.", "flatPath": "projects/{project}/zones/{zone}/disks/{disk}", "httpMethod": "DELETE", "id": "compute.disks.delete", @@ -2617,6 +3176,7 @@ "disk": { "description": "Name of the persistent disk to delete.", "location": "path", + "pattern": "\\S{1,66}", "required": true, "type": "string" }, @@ -2628,7 +3188,7 @@ "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. 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).", + "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).", "location": "query", "type": "string" }, @@ -2693,7 +3253,7 @@ ] }, "getIamPolicy": { - "description": "Gets the access control policy for a resource. May be empty if no such policy or resource exists.", + "description": "Gets the access control policy for a resource. May be empty if no such\npolicy or resource exists.", "flatPath": "projects/{project}/zones/{zone}/disks/{resource}/getIamPolicy", "httpMethod": "GET", "id": "compute.disks.getIamPolicy", @@ -2742,7 +3302,7 @@ ] }, "insert": { - "description": "Creates a persistent disk in the specified project using the data in the request. You can create a disk from a source (sourceImage, sourceSnapshot, or sourceDisk) or create an empty 500 GB data disk by omitting all properties. You can also create a disk that is larger than the default size by specifying the sizeGb property.", + "description": "Creates a persistent disk in the specified project using the data\nin the request. You can create a disk from a source\n(sourceImage, sourceSnapshot, orsourceDisk) or create an empty 500 GB data disk by\nomitting all properties. You can also create a disk that is larger than\nthe default size by specifying the sizeGb property.", "flatPath": "projects/{project}/zones/{zone}/disks", "httpMethod": "POST", "id": "compute.disks.insert", @@ -2759,7 +3319,7 @@ "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. 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).", + "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).", "location": "query", "type": "string" }, @@ -2789,7 +3349,7 @@ ] }, "list": { - "description": "Retrieves a list of persistent disks contained within the specified zone.", + "description": "Retrieves a list of persistent disks contained within\nthe specified zone.", "flatPath": "projects/{project}/zones/{zone}/disks", "httpMethod": "GET", "id": "compute.disks.list", @@ -2799,25 +3359,25 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` 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) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.", + "description": "A filter expression that filters resources listed in the response. Most\nCompute resources support two types of filter expressions:\nexpressions that support regular expressions and expressions that follow\nAPI improvement proposal AIP-160.\nThese two types of filter expressions cannot be mixed in one request.\n\nIf you want to use AIP-160, your expression must specify the field name, an\noperator, and the value that you want to use for filtering. The value\nmust be a string, a number, or a boolean. The operator\nmust be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`.\n\nFor example, if you are filtering Compute Engine instances, you can\nexclude instances named `example-instance` by specifying\n`name != example-instance`.\n\nThe `:*` comparison can be used to test whether a key has been defined.\nFor example, to find all objects with `owner` label use:\n```\nlabels.owner:*\n```\n\nYou can also filter nested fields. For example, you could specify\n`scheduling.automaticRestart = false` to include instances only\nif they are not scheduled for automatic restarts. You can use filtering\non nested fields to filter based onresource labels.\n\nTo filter on multiple expressions, provide each separate expression within\nparentheses. For example:\n```\n(scheduling.automaticRestart = true)\n(cpuPlatform = \"Intel Skylake\")\n```\nBy default, each expression is an `AND` expression. However, you\ncan include `AND` and `OR` expressions explicitly.\nFor example:\n```\n(cpuPlatform = \"Intel Skylake\") OR\n(cpuPlatform = \"Intel Broadwell\") AND\n(scheduling.automaticRestart = true)\n```\n\nIf you want to use a regular expression, use the `eq` (equal) or `ne`\n(not equal) operator against a single un-parenthesized expression with or\nwithout quotes or against multiple parenthesized expressions. Examples:\n\n`fieldname eq unquoted literal`\n`fieldname eq 'single quoted literal'`\n`fieldname eq \"double quoted literal\"`\n`(fieldname1 eq literal) (fieldname2 ne \"literal\")`\n\nThe literal value is interpreted as a regular expression using GoogleRE2 library syntax.\nThe literal value must match the entire field.\n\nFor example, to filter for instances that do not end with name \"instance\",\nyou would use `name ne .*instance`.\n\nYou cannot combine constraints on multiple fields using regular\nexpressions.", "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`)", + "description": "The maximum number of results per page that should be returned.\nIf the number of available results is larger than `maxResults`,\nCompute Engine returns a `nextPageToken` that can be used to get\nthe next page of results in subsequent list requests. Acceptable values are\n`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. 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.", + "description": "Sorts list results by a certain order. By default, results\nare returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation\ntimestamp using `orderBy=\"creationTimestamp desc\"`. This sorts\nresults based on the `creationTimestamp` field in\nreverse chronological order (newest result first). Use this to sort\nresources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or\n`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.", + "description": "Specifies a page token to use. Set `pageToken` to the\n`nextPageToken` returned by a previous list request to get\nthe next page of results.", "location": "query", "type": "string" }, @@ -2829,7 +3389,7 @@ "type": "string" }, "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", + "description": "Opt-in for partial success behavior which provides partial results in case\nof failure. The default value is false.\n\nFor example, when partial success behavior is enabled, aggregatedList for a\nsingle zone scope either returns all resources in the zone or no resources,\nwith an error code.", "location": "query", "type": "boolean" }, @@ -2877,7 +3437,7 @@ "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. 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).", + "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).", "location": "query", "type": "string" }, @@ -2902,7 +3462,7 @@ ] }, "resize": { - "description": "Resizes the specified persistent disk. You can only increase the size of the disk.", + "description": "Resizes the specified persistent disk.\nYou can only increase the size of the disk.", "flatPath": "projects/{project}/zones/{zone}/disks/{disk}/resize", "httpMethod": "POST", "id": "compute.disks.resize", @@ -2927,7 +3487,7 @@ "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. 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).", + "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).", "location": "query", "type": "string" }, @@ -2952,7 +3512,7 @@ ] }, "setIamPolicy": { - "description": "Sets the access control policy on the specified resource. Replaces any existing policy.", + "description": "Sets the access control policy on the specified resource.\nReplaces any existing policy.", "flatPath": "projects/{project}/zones/{zone}/disks/{resource}/setIamPolicy", "httpMethod": "POST", "id": "compute.disks.setIamPolicy", @@ -2997,7 +3557,7 @@ ] }, "setLabels": { - "description": "Sets the labels on a disk. To learn more about labels, read the Labeling Resources documentation.", + "description": "Sets the labels on a disk. To learn more about labels, read theLabeling\nResources documentation.", "flatPath": "projects/{project}/zones/{zone}/disks/{resource}/setLabels", "httpMethod": "POST", "id": "compute.disks.setLabels", @@ -3015,7 +3575,7 @@ "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. 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).", + "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).", "location": "query", "type": "string" }, @@ -3047,7 +3607,7 @@ ] }, "startAsyncReplication": { - "description": "Starts asynchronous replication. Must be invoked on the primary disk.", + "description": "Starts asynchronous replication.\nMust be invoked on the primary disk.", "flatPath": "projects/{project}/zones/{zone}/disks/{disk}/startAsyncReplication", "httpMethod": "POST", "id": "compute.disks.startAsyncReplication", @@ -3072,7 +3632,7 @@ "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. 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).", + "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).", "location": "query", "type": "string" }, @@ -3097,7 +3657,7 @@ ] }, "stopAsyncReplication": { - "description": "Stops asynchronous replication. Can be invoked either on the primary or on the secondary disk.", + "description": "Stops asynchronous replication.\nCan be invoked either on the primary or on the secondary disk.", "flatPath": "projects/{project}/zones/{zone}/disks/{disk}/stopAsyncReplication", "httpMethod": "POST", "id": "compute.disks.stopAsyncReplication", @@ -3122,7 +3682,7 @@ "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. 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).", + "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).", "location": "query", "type": "string" }, @@ -3144,7 +3704,7 @@ ] }, "stopGroupAsyncReplication": { - "description": "Stops asynchronous replication for a consistency group of disks. Can be invoked either in the primary or secondary scope.", + "description": "Stops asynchronous replication for a consistency group of disks.\nCan be invoked either in the primary or secondary scope.", "flatPath": "projects/{project}/zones/{zone}/disks/stopGroupAsyncReplication", "httpMethod": "POST", "id": "compute.disks.stopGroupAsyncReplication", @@ -3161,12 +3721,12 @@ "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. 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).", + "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).", "location": "query", "type": "string" }, "zone": { - "description": "The name of the zone for this request. This must be the zone of the primary or secondary disks in the consistency group.", + "description": "The name of the zone for this request. This must be the zone of the primary\nor secondary disks in the consistency group.", "location": "path", "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", "required": true, @@ -3232,7 +3792,7 @@ ] }, "update": { - "description": "Updates the specified disk with the data included in the request. The update is performed only on selected fields included as part of update-mask. Only the following fields can be modified: user_license.", + "description": "Updates the specified disk with the data included in the request.\nThe update is performed only on selected fields included as part\nof update-mask.", "flatPath": "projects/{project}/zones/{zone}/disks/{disk}", "httpMethod": "PATCH", "id": "compute.disks.update", @@ -3262,7 +3822,7 @@ "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. 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).", + "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).", "location": "query", "type": "string" }, @@ -3291,6 +3851,55 @@ "https://www.googleapis.com/auth/cloud-platform", "https://www.googleapis.com/auth/compute" ] + }, + "updateKmsKey": { + "description": "Rotates the customer-managed\nencryption key to the latest version for the specified persistent disk.", + "flatPath": "projects/{project}/zones/{zone}/disks/{disk}/updateKmsKey", + "httpMethod": "POST", + "id": "compute.disks.updateKmsKey", + "parameterOrder": [ + "project", + "zone", + "disk" + ], + "parameters": { + "disk": { + "description": "Name of the Disk resource, 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\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).", + "location": "query", + "type": "string" + }, + "zone": { + "description": "The name of the zone for this request.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "required": true, + "type": "string" + } + }, + "path": "projects/{project}/zones/{zone}/disks/{disk}/updateKmsKey", + "request": { + "$ref": "DiskUpdateKmsKeyRequest" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ] } } }, @@ -3321,7 +3930,7 @@ "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. 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).", + "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).", "location": "query", "type": "string" } @@ -3336,7 +3945,7 @@ ] }, "get": { - "description": "Returns the specified externalVpnGateway. Get a list of available externalVpnGateways by making a list() request.", + "description": "Returns the specified externalVpnGateway. Get a list of available\nexternalVpnGateways by making a list() request.", "flatPath": "projects/{project}/global/externalVpnGateways/{externalVpnGateway}", "httpMethod": "GET", "id": "compute.externalVpnGateways.get", @@ -3371,7 +3980,7 @@ ] }, "insert": { - "description": "Creates a ExternalVpnGateway in the specified project using the data included in the request.", + "description": "Creates a ExternalVpnGateway in the specified project using\nthe data included in the request.", "flatPath": "projects/{project}/global/externalVpnGateways", "httpMethod": "POST", "id": "compute.externalVpnGateways.insert", @@ -3387,7 +3996,7 @@ "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. 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).", + "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).", "location": "query", "type": "string" } @@ -3405,7 +4014,7 @@ ] }, "list": { - "description": "Retrieves the list of ExternalVpnGateway available to the specified project.", + "description": "Retrieves the list of ExternalVpnGateway available to the specified\nproject.", "flatPath": "projects/{project}/global/externalVpnGateways", "httpMethod": "GET", "id": "compute.externalVpnGateways.list", @@ -3414,25 +4023,25 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` 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) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.", + "description": "A filter expression that filters resources listed in the response. Most\nCompute resources support two types of filter expressions:\nexpressions that support regular expressions and expressions that follow\nAPI improvement proposal AIP-160.\nThese two types of filter expressions cannot be mixed in one request.\n\nIf you want to use AIP-160, your expression must specify the field name, an\noperator, and the value that you want to use for filtering. The value\nmust be a string, a number, or a boolean. The operator\nmust be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`.\n\nFor example, if you are filtering Compute Engine instances, you can\nexclude instances named `example-instance` by specifying\n`name != example-instance`.\n\nThe `:*` comparison can be used to test whether a key has been defined.\nFor example, to find all objects with `owner` label use:\n```\nlabels.owner:*\n```\n\nYou can also filter nested fields. For example, you could specify\n`scheduling.automaticRestart = false` to include instances only\nif they are not scheduled for automatic restarts. You can use filtering\non nested fields to filter based onresource labels.\n\nTo filter on multiple expressions, provide each separate expression within\nparentheses. For example:\n```\n(scheduling.automaticRestart = true)\n(cpuPlatform = \"Intel Skylake\")\n```\nBy default, each expression is an `AND` expression. However, you\ncan include `AND` and `OR` expressions explicitly.\nFor example:\n```\n(cpuPlatform = \"Intel Skylake\") OR\n(cpuPlatform = \"Intel Broadwell\") AND\n(scheduling.automaticRestart = true)\n```\n\nIf you want to use a regular expression, use the `eq` (equal) or `ne`\n(not equal) operator against a single un-parenthesized expression with or\nwithout quotes or against multiple parenthesized expressions. Examples:\n\n`fieldname eq unquoted literal`\n`fieldname eq 'single quoted literal'`\n`fieldname eq \"double quoted literal\"`\n`(fieldname1 eq literal) (fieldname2 ne \"literal\")`\n\nThe literal value is interpreted as a regular expression using GoogleRE2 library syntax.\nThe literal value must match the entire field.\n\nFor example, to filter for instances that do not end with name \"instance\",\nyou would use `name ne .*instance`.\n\nYou cannot combine constraints on multiple fields using regular\nexpressions.", "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`)", + "description": "The maximum number of results per page that should be returned.\nIf the number of available results is larger than `maxResults`,\nCompute Engine returns a `nextPageToken` that can be used to get\nthe next page of results in subsequent list requests. Acceptable values are\n`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. 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.", + "description": "Sorts list results by a certain order. By default, results\nare returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation\ntimestamp using `orderBy=\"creationTimestamp desc\"`. This sorts\nresults based on the `creationTimestamp` field in\nreverse chronological order (newest result first). Use this to sort\nresources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or\n`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.", + "description": "Specifies a page token to use. Set `pageToken` to the\n`nextPageToken` returned by a previous list request to get\nthe next page of results.", "location": "query", "type": "string" }, @@ -3444,7 +4053,7 @@ "type": "string" }, "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", + "description": "Opt-in for partial success behavior which provides partial results in case\nof failure. The default value is false.\n\nFor example, when partial success behavior is enabled, aggregatedList for a\nsingle zone scope either returns all resources in the zone or no resources,\nwith an error code.", "location": "query", "type": "boolean" } @@ -3460,7 +4069,7 @@ ] }, "setLabels": { - "description": "Sets the labels on an ExternalVpnGateway. To learn more about labels, read the Labeling Resources documentation.", + "description": "Sets the labels on an ExternalVpnGateway. To learn more about labels,\nread the Labeling\nResources documentation.", "flatPath": "projects/{project}/global/externalVpnGateways/{resource}/setLabels", "httpMethod": "POST", "id": "compute.externalVpnGateways.setLabels", @@ -3555,12 +4164,12 @@ "type": "string" }, "replaceExistingAssociation": { - "description": "Indicates whether or not to replace it if an association of the attachment already exists. This is false by default, in which case an error will be returned if an association already exists.", + "description": "Indicates whether or not to replace it if an association of the attachment\nalready exists. This is false by default, in which case an error will be\nreturned if an association already exists.", "location": "query", "type": "boolean" }, "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. 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).", + "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).", "location": "query", "type": "string" } @@ -3594,7 +4203,7 @@ "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. 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).", + "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).", "location": "query", "type": "string" } @@ -3628,7 +4237,7 @@ "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. 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).", + "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).", "location": "query", "type": "string" }, @@ -3664,7 +4273,7 @@ "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. 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).", + "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).", "location": "query", "type": "string" } @@ -3738,7 +4347,7 @@ ] }, "getIamPolicy": { - "description": "Gets the access control policy for a resource. May be empty if no such policy or resource exists.", + "description": "Gets the access control policy for a resource. May be empty if no such\npolicy or resource exists.", "flatPath": "locations/global/firewallPolicies/{resource}/getIamPolicy", "httpMethod": "GET", "id": "compute.firewallPolicies.getIamPolicy", @@ -3804,18 +4413,18 @@ ] }, "insert": { - "description": "Creates a new policy in the specified project using the data included in the request.", + "description": "Creates a new policy in the specified project using the data included in\nthe request.", "flatPath": "locations/global/firewallPolicies", "httpMethod": "POST", "id": "compute.firewallPolicies.insert", "parameters": { "parentId": { - "description": "Parent ID for this request. The ID can be either be \"folders/[FOLDER_ID]\" if the parent is a folder or \"organizations/[ORGANIZATION_ID]\" if the parent is an organization.", + "description": "Parent ID for this request. The ID can be either be \"folders/[FOLDER_ID]\"\nif the parent is a folder or \"organizations/[ORGANIZATION_ID]\" if the\nparent is an organization.", "location": "query", "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. 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).", + "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).", "location": "query", "type": "string" } @@ -3833,41 +4442,41 @@ ] }, "list": { - "description": "Lists all the policies that have been configured for the specified folder or organization.", + "description": "Lists all the policies that have been configured for the specified\nfolder or organization.", "flatPath": "locations/global/firewallPolicies", "httpMethod": "GET", "id": "compute.firewallPolicies.list", "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` 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) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.", + "description": "A filter expression that filters resources listed in the response. Most\nCompute resources support two types of filter expressions:\nexpressions that support regular expressions and expressions that follow\nAPI improvement proposal AIP-160.\nThese two types of filter expressions cannot be mixed in one request.\n\nIf you want to use AIP-160, your expression must specify the field name, an\noperator, and the value that you want to use for filtering. The value\nmust be a string, a number, or a boolean. The operator\nmust be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`.\n\nFor example, if you are filtering Compute Engine instances, you can\nexclude instances named `example-instance` by specifying\n`name != example-instance`.\n\nThe `:*` comparison can be used to test whether a key has been defined.\nFor example, to find all objects with `owner` label use:\n```\nlabels.owner:*\n```\n\nYou can also filter nested fields. For example, you could specify\n`scheduling.automaticRestart = false` to include instances only\nif they are not scheduled for automatic restarts. You can use filtering\non nested fields to filter based onresource labels.\n\nTo filter on multiple expressions, provide each separate expression within\nparentheses. For example:\n```\n(scheduling.automaticRestart = true)\n(cpuPlatform = \"Intel Skylake\")\n```\nBy default, each expression is an `AND` expression. However, you\ncan include `AND` and `OR` expressions explicitly.\nFor example:\n```\n(cpuPlatform = \"Intel Skylake\") OR\n(cpuPlatform = \"Intel Broadwell\") AND\n(scheduling.automaticRestart = true)\n```\n\nIf you want to use a regular expression, use the `eq` (equal) or `ne`\n(not equal) operator against a single un-parenthesized expression with or\nwithout quotes or against multiple parenthesized expressions. Examples:\n\n`fieldname eq unquoted literal`\n`fieldname eq 'single quoted literal'`\n`fieldname eq \"double quoted literal\"`\n`(fieldname1 eq literal) (fieldname2 ne \"literal\")`\n\nThe literal value is interpreted as a regular expression using GoogleRE2 library syntax.\nThe literal value must match the entire field.\n\nFor example, to filter for instances that do not end with name \"instance\",\nyou would use `name ne .*instance`.\n\nYou cannot combine constraints on multiple fields using regular\nexpressions.", "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`)", + "description": "The maximum number of results per page that should be returned.\nIf the number of available results is larger than `maxResults`,\nCompute Engine returns a `nextPageToken` that can be used to get\nthe next page of results in subsequent list requests. Acceptable values are\n`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. 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.", + "description": "Sorts list results by a certain order. By default, results\nare returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation\ntimestamp using `orderBy=\"creationTimestamp desc\"`. This sorts\nresults based on the `creationTimestamp` field in\nreverse chronological order (newest result first). Use this to sort\nresources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or\n`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.", + "description": "Specifies a page token to use. Set `pageToken` to the\n`nextPageToken` returned by a previous list request to get\nthe next page of results.", "location": "query", "type": "string" }, "parentId": { - "description": "Parent ID for this request. The ID can be either be \"folders/[FOLDER_ID]\" if the parent is a folder or \"organizations/[ORGANIZATION_ID]\" if the parent is an organization.", + "description": "Parent ID for this request. The ID can be either be \"folders/[FOLDER_ID]\"\nif the parent is a folder or \"organizations/[ORGANIZATION_ID]\" if the\nparent is an organization.", "location": "query", "type": "string" }, "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", + "description": "Opt-in for partial success behavior which provides partial results in case\nof failure. The default value is false.\n\nFor example, when partial success behavior is enabled, aggregatedList for a\nsingle zone scope either returns all resources in the zone or no resources,\nwith an error code.", "location": "query", "type": "boolean" } @@ -3888,8 +4497,13 @@ "httpMethod": "GET", "id": "compute.firewallPolicies.listAssociations", "parameters": { + "includeInheritedPolicies": { + "description": "If set to \"true\", the response will contain a list of all associations for\nthe containing folders and the containing organization of the target. The\nparameter has no effect if the target is an organization.", + "location": "query", + "type": "boolean" + }, "targetResource": { - "description": "The target resource to list associations. It is an organization, or a folder.", + "description": "The target resource to list associations. It is an organization, or a\nfolder.", "location": "query", "type": "string" } @@ -3921,12 +4535,12 @@ "type": "string" }, "parentId": { - "description": "The new parent of the firewall policy. The ID can be either be \"folders/[FOLDER_ID]\" if the parent is a folder or \"organizations/[ORGANIZATION_ID]\" if the parent is an organization.", + "description": "The new parent of the firewall policy. The ID can be either be\n\"folders/[FOLDER_ID]\" if the parent is a folder or\n\"organizations/[ORGANIZATION_ID]\" if the parent is an organization.", "location": "query", "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. 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).", + "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).", "location": "query", "type": "string" } @@ -3957,7 +4571,7 @@ "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. 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).", + "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).", "location": "query", "type": "string" } @@ -3997,7 +4611,7 @@ "type": "integer" }, "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. 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).", + "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).", "location": "query", "type": "string" } @@ -4036,7 +4650,7 @@ "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. 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).", + "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).", "location": "query", "type": "string" } @@ -4073,7 +4687,7 @@ "type": "integer" }, "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. 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).", + "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).", "location": "query", "type": "string" } @@ -4088,7 +4702,7 @@ ] }, "setIamPolicy": { - "description": "Sets the access control policy on the specified resource. Replaces any existing policy.", + "description": "Sets the access control policy on the specified resource.\nReplaces any existing policy.", "flatPath": "locations/global/firewallPolicies/{resource}/setIamPolicy", "httpMethod": "POST", "id": "compute.firewallPolicies.setIamPolicy", @@ -4175,7 +4789,7 @@ "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. 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).", + "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).", "location": "query", "type": "string" } @@ -4225,7 +4839,7 @@ ] }, "insert": { - "description": "Creates a firewall rule in the specified project using the data included in the request.", + "description": "Creates a firewall rule in the specified project using the data\nincluded in the request.", "flatPath": "projects/{project}/global/firewalls", "httpMethod": "POST", "id": "compute.firewalls.insert", @@ -4241,7 +4855,7 @@ "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. 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).", + "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).", "location": "query", "type": "string" } @@ -4259,7 +4873,7 @@ ] }, "list": { - "description": "Retrieves the list of firewall rules available to the specified project.", + "description": "Retrieves the list of firewall rules available to the specified\nproject.", "flatPath": "projects/{project}/global/firewalls", "httpMethod": "GET", "id": "compute.firewalls.list", @@ -4268,25 +4882,25 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` 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) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.", + "description": "A filter expression that filters resources listed in the response. Most\nCompute resources support two types of filter expressions:\nexpressions that support regular expressions and expressions that follow\nAPI improvement proposal AIP-160.\nThese two types of filter expressions cannot be mixed in one request.\n\nIf you want to use AIP-160, your expression must specify the field name, an\noperator, and the value that you want to use for filtering. The value\nmust be a string, a number, or a boolean. The operator\nmust be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`.\n\nFor example, if you are filtering Compute Engine instances, you can\nexclude instances named `example-instance` by specifying\n`name != example-instance`.\n\nThe `:*` comparison can be used to test whether a key has been defined.\nFor example, to find all objects with `owner` label use:\n```\nlabels.owner:*\n```\n\nYou can also filter nested fields. For example, you could specify\n`scheduling.automaticRestart = false` to include instances only\nif they are not scheduled for automatic restarts. You can use filtering\non nested fields to filter based onresource labels.\n\nTo filter on multiple expressions, provide each separate expression within\nparentheses. For example:\n```\n(scheduling.automaticRestart = true)\n(cpuPlatform = \"Intel Skylake\")\n```\nBy default, each expression is an `AND` expression. However, you\ncan include `AND` and `OR` expressions explicitly.\nFor example:\n```\n(cpuPlatform = \"Intel Skylake\") OR\n(cpuPlatform = \"Intel Broadwell\") AND\n(scheduling.automaticRestart = true)\n```\n\nIf you want to use a regular expression, use the `eq` (equal) or `ne`\n(not equal) operator against a single un-parenthesized expression with or\nwithout quotes or against multiple parenthesized expressions. Examples:\n\n`fieldname eq unquoted literal`\n`fieldname eq 'single quoted literal'`\n`fieldname eq \"double quoted literal\"`\n`(fieldname1 eq literal) (fieldname2 ne \"literal\")`\n\nThe literal value is interpreted as a regular expression using GoogleRE2 library syntax.\nThe literal value must match the entire field.\n\nFor example, to filter for instances that do not end with name \"instance\",\nyou would use `name ne .*instance`.\n\nYou cannot combine constraints on multiple fields using regular\nexpressions.", "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`)", + "description": "The maximum number of results per page that should be returned.\nIf the number of available results is larger than `maxResults`,\nCompute Engine returns a `nextPageToken` that can be used to get\nthe next page of results in subsequent list requests. Acceptable values are\n`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. 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.", + "description": "Sorts list results by a certain order. By default, results\nare returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation\ntimestamp using `orderBy=\"creationTimestamp desc\"`. This sorts\nresults based on the `creationTimestamp` field in\nreverse chronological order (newest result first). Use this to sort\nresources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or\n`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.", + "description": "Specifies a page token to use. Set `pageToken` to the\n`nextPageToken` returned by a previous list request to get\nthe next page of results.", "location": "query", "type": "string" }, @@ -4298,7 +4912,7 @@ "type": "string" }, "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", + "description": "Opt-in for partial success behavior which provides partial results in case\nof failure. The default value is false.\n\nFor example, when partial success behavior is enabled, aggregatedList for a\nsingle zone scope either returns all resources in the zone or no resources,\nwith an error code.", "location": "query", "type": "boolean" } @@ -4314,7 +4928,7 @@ ] }, "patch": { - "description": "Updates the specified firewall rule with the data included in the request. This method supports PATCH semantics and uses the JSON merge patch format and processing rules.", + "description": "Updates the specified firewall rule with the data included in the\nrequest. This method supportsPATCH\nsemantics and uses theJSON merge\npatch format and processing rules.", "flatPath": "projects/{project}/global/firewalls/{firewall}", "httpMethod": "PATCH", "id": "compute.firewalls.patch", @@ -4338,7 +4952,7 @@ "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. 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).", + "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).", "location": "query", "type": "string" } @@ -4355,8 +4969,46 @@ "https://www.googleapis.com/auth/compute" ] }, + "testIamPermissions": { + "description": "Returns permissions that a caller has on the specified resource.", + "flatPath": "projects/{project}/global/firewalls/{resource}/testIamPermissions", + "httpMethod": "POST", + "id": "compute.firewalls.testIamPermissions", + "parameterOrder": [ + "project", + "resource" + ], + "parameters": { + "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" + }, + "resource": { + "description": "Name or id of the resource for this request.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "required": true, + "type": "string" + } + }, + "path": "projects/{project}/global/firewalls/{resource}/testIamPermissions", + "request": { + "$ref": "TestPermissionsRequest" + }, + "response": { + "$ref": "TestPermissionsResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ] + }, "update": { - "description": "Updates the specified firewall rule with the data included in the request. Note that all fields will be updated if using PUT, even fields that are not specified. To update individual fields, please use PATCH instead.", + "description": "Updates the specified firewall rule with the data included in the\nrequest.\nNote that all fields will be updated if using PUT, even fields that are not\nspecified. To update individual fields, please use PATCH instead.", "flatPath": "projects/{project}/global/firewalls/{firewall}", "httpMethod": "PUT", "id": "compute.firewalls.update", @@ -4380,7 +5032,7 @@ "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. 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).", + "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).", "location": "query", "type": "string" } @@ -4402,7 +5054,7 @@ "forwardingRules": { "methods": { "aggregatedList": { - "description": "Retrieves an aggregated list of forwarding rules. To prevent failure, Google recommends that you set the `returnPartialSuccess` parameter to `true`.", + "description": "Retrieves an aggregated list of forwarding rules.\n\nTo prevent failure, it is recommended that you set the\n`returnPartialSuccess` parameter to `true`.", "flatPath": "projects/{project}/aggregated/forwardingRules", "httpMethod": "GET", "id": "compute.forwardingRules.aggregatedList", @@ -4411,30 +5063,30 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` 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) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.", + "description": "A filter expression that filters resources listed in the response. Most\nCompute resources support two types of filter expressions:\nexpressions that support regular expressions and expressions that follow\nAPI improvement proposal AIP-160.\nThese two types of filter expressions cannot be mixed in one request.\n\nIf you want to use AIP-160, your expression must specify the field name, an\noperator, and the value that you want to use for filtering. The value\nmust be a string, a number, or a boolean. The operator\nmust be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`.\n\nFor example, if you are filtering Compute Engine instances, you can\nexclude instances named `example-instance` by specifying\n`name != example-instance`.\n\nThe `:*` comparison can be used to test whether a key has been defined.\nFor example, to find all objects with `owner` label use:\n```\nlabels.owner:*\n```\n\nYou can also filter nested fields. For example, you could specify\n`scheduling.automaticRestart = false` to include instances only\nif they are not scheduled for automatic restarts. You can use filtering\non nested fields to filter based onresource labels.\n\nTo filter on multiple expressions, provide each separate expression within\nparentheses. For example:\n```\n(scheduling.automaticRestart = true)\n(cpuPlatform = \"Intel Skylake\")\n```\nBy default, each expression is an `AND` expression. However, you\ncan include `AND` and `OR` expressions explicitly.\nFor example:\n```\n(cpuPlatform = \"Intel Skylake\") OR\n(cpuPlatform = \"Intel Broadwell\") AND\n(scheduling.automaticRestart = true)\n```\n\nIf you want to use a regular expression, use the `eq` (equal) or `ne`\n(not equal) operator against a single un-parenthesized expression with or\nwithout quotes or against multiple parenthesized expressions. Examples:\n\n`fieldname eq unquoted literal`\n`fieldname eq 'single quoted literal'`\n`fieldname eq \"double quoted literal\"`\n`(fieldname1 eq literal) (fieldname2 ne \"literal\")`\n\nThe literal value is interpreted as a regular expression using GoogleRE2 library syntax.\nThe literal value must match the entire field.\n\nFor example, to filter for instances that do not end with name \"instance\",\nyou would use `name ne .*instance`.\n\nYou cannot combine constraints on multiple fields using regular\nexpressions.", "location": "query", "type": "string" }, "includeAllScopes": { - "description": "Indicates whether every visible scope for each scope type (zone, region, global) should be included in the response. For new resource types added after this field, the flag has no effect as new resource types will always include every visible scope for each scope type in response. For resource types which predate this field, if this flag is omitted or false, only scopes of the scope types where the resource type is expected to be found will be included.", + "description": "Indicates whether every visible scope for each scope type (zone, region,\nglobal) should be included in the response. For new resource types added\nafter this field, the flag has no effect as new resource types will always\ninclude every visible scope for each scope type in response. For resource\ntypes which predate this field, if this flag is omitted or false, only\nscopes of the scope types where the resource type is expected to be found\nwill be included.", "location": "query", "type": "boolean" }, "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`)", + "description": "The maximum number of results per page that should be returned.\nIf the number of available results is larger than `maxResults`,\nCompute Engine returns a `nextPageToken` that can be used to get\nthe next page of results in subsequent list requests. Acceptable values are\n`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. 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.", + "description": "Sorts list results by a certain order. By default, results\nare returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation\ntimestamp using `orderBy=\"creationTimestamp desc\"`. This sorts\nresults based on the `creationTimestamp` field in\nreverse chronological order (newest result first). Use this to sort\nresources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or\n`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.", + "description": "Specifies a page token to use. Set `pageToken` to the\n`nextPageToken` returned by a previous list request to get\nthe next page of results.", "location": "query", "type": "string" }, @@ -4446,12 +5098,12 @@ "type": "string" }, "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", + "description": "Opt-in for partial success behavior which provides partial results in case\nof failure. The default value is false.\n\nFor example, when partial success behavior is enabled, aggregatedList for a\nsingle zone scope either returns all resources in the zone or no resources,\nwith an error code.", "location": "query", "type": "boolean" }, "serviceProjectNumber": { - "description": "The Shared VPC service project id or service project number for which aggregated list request is invoked for subnetworks list-usable api.", + "description": "The Shared VPC service project id or service project number for which\naggregated list request is invoked for subnetworks list-usable api.", "format": "int64", "location": "query", "type": "string" @@ -4500,7 +5152,7 @@ "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. 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).", + "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).", "location": "query", "type": "string" } @@ -4545,6 +5197,18 @@ "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", "required": true, "type": "string" + }, + "view": { + "enum": [ + "BASIC", + "FULL" + ], + "enumDescriptions": [ + "The default view of a ForwardingRule, which includes the basic fields.", + "The full view, including the ForwardingRule.`attached_extensions` field." + ], + "location": "query", + "type": "string" } }, "path": "projects/{project}/regions/{region}/forwardingRules/{forwardingRule}", @@ -4558,7 +5222,7 @@ ] }, "insert": { - "description": "Creates a ForwardingRule resource in the specified project and region using the data included in the request.", + "description": "Creates a ForwardingRule resource in the specified project and region using\nthe data included in the request.", "flatPath": "projects/{project}/regions/{region}/forwardingRules", "httpMethod": "POST", "id": "compute.forwardingRules.insert", @@ -4582,7 +5246,7 @@ "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. 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).", + "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).", "location": "query", "type": "string" } @@ -4600,7 +5264,7 @@ ] }, "list": { - "description": "Retrieves a list of ForwardingRule resources available to the specified project and region.", + "description": "Retrieves a list of ForwardingRule resources available to the specified\nproject and region.", "flatPath": "projects/{project}/regions/{region}/forwardingRules", "httpMethod": "GET", "id": "compute.forwardingRules.list", @@ -4610,25 +5274,25 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` 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) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.", + "description": "A filter expression that filters resources listed in the response. Most\nCompute resources support two types of filter expressions:\nexpressions that support regular expressions and expressions that follow\nAPI improvement proposal AIP-160.\nThese two types of filter expressions cannot be mixed in one request.\n\nIf you want to use AIP-160, your expression must specify the field name, an\noperator, and the value that you want to use for filtering. The value\nmust be a string, a number, or a boolean. The operator\nmust be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`.\n\nFor example, if you are filtering Compute Engine instances, you can\nexclude instances named `example-instance` by specifying\n`name != example-instance`.\n\nThe `:*` comparison can be used to test whether a key has been defined.\nFor example, to find all objects with `owner` label use:\n```\nlabels.owner:*\n```\n\nYou can also filter nested fields. For example, you could specify\n`scheduling.automaticRestart = false` to include instances only\nif they are not scheduled for automatic restarts. You can use filtering\non nested fields to filter based onresource labels.\n\nTo filter on multiple expressions, provide each separate expression within\nparentheses. For example:\n```\n(scheduling.automaticRestart = true)\n(cpuPlatform = \"Intel Skylake\")\n```\nBy default, each expression is an `AND` expression. However, you\ncan include `AND` and `OR` expressions explicitly.\nFor example:\n```\n(cpuPlatform = \"Intel Skylake\") OR\n(cpuPlatform = \"Intel Broadwell\") AND\n(scheduling.automaticRestart = true)\n```\n\nIf you want to use a regular expression, use the `eq` (equal) or `ne`\n(not equal) operator against a single un-parenthesized expression with or\nwithout quotes or against multiple parenthesized expressions. Examples:\n\n`fieldname eq unquoted literal`\n`fieldname eq 'single quoted literal'`\n`fieldname eq \"double quoted literal\"`\n`(fieldname1 eq literal) (fieldname2 ne \"literal\")`\n\nThe literal value is interpreted as a regular expression using GoogleRE2 library syntax.\nThe literal value must match the entire field.\n\nFor example, to filter for instances that do not end with name \"instance\",\nyou would use `name ne .*instance`.\n\nYou cannot combine constraints on multiple fields using regular\nexpressions.", "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`)", + "description": "The maximum number of results per page that should be returned.\nIf the number of available results is larger than `maxResults`,\nCompute Engine returns a `nextPageToken` that can be used to get\nthe next page of results in subsequent list requests. Acceptable values are\n`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. 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.", + "description": "Sorts list results by a certain order. By default, results\nare returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation\ntimestamp using `orderBy=\"creationTimestamp desc\"`. This sorts\nresults based on the `creationTimestamp` field in\nreverse chronological order (newest result first). Use this to sort\nresources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or\n`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.", + "description": "Specifies a page token to use. Set `pageToken` to the\n`nextPageToken` returned by a previous list request to get\nthe next page of results.", "location": "query", "type": "string" }, @@ -4647,7 +5311,7 @@ "type": "string" }, "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", + "description": "Opt-in for partial success behavior which provides partial results in case\nof failure. The default value is false.\n\nFor example, when partial success behavior is enabled, aggregatedList for a\nsingle zone scope either returns all resources in the zone or no resources,\nwith an error code.", "location": "query", "type": "boolean" } @@ -4663,7 +5327,7 @@ ] }, "patch": { - "description": "Updates the specified forwarding rule with the data included in the request. This method supports PATCH semantics and uses the JSON merge patch format and processing rules. Currently, you can only patch the network_tier field.", + "description": "Updates the specified forwarding rule with the data included in the\nrequest. This method supportsPATCH\nsemantics and uses theJSON merge\npatch format and processing rules. Currently, you can only\npatch the network_tier field.", "flatPath": "projects/{project}/regions/{region}/forwardingRules/{forwardingRule}", "httpMethod": "PATCH", "id": "compute.forwardingRules.patch", @@ -4695,7 +5359,7 @@ "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. 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).", + "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).", "location": "query", "type": "string" } @@ -4713,7 +5377,7 @@ ] }, "setLabels": { - "description": "Sets the labels on the specified resource. To learn more about labels, read the Labeling Resources documentation.", + "description": "Sets the labels on the specified resource. To learn more about labels,\nread the \nLabeling Resources documentation.", "flatPath": "projects/{project}/regions/{region}/forwardingRules/{resource}/setLabels", "httpMethod": "POST", "id": "compute.forwardingRules.setLabels", @@ -4738,7 +5402,7 @@ "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. 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).", + "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).", "location": "query", "type": "string" }, @@ -4763,7 +5427,7 @@ ] }, "setTarget": { - "description": "Changes target URL for forwarding rule. The new target should be of the same type as the old target.", + "description": "Changes target URL for forwarding rule. The new target should be of the\nsame type as the old target.", "flatPath": "projects/{project}/regions/{region}/forwardingRules/{forwardingRule}/setTarget", "httpMethod": "POST", "id": "compute.forwardingRules.setTarget", @@ -4795,7 +5459,7 @@ "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. 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).", + "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).", "location": "query", "type": "string" } @@ -4814,145 +5478,42 @@ } } }, - "globalAddresses": { + "futureReservations": { "methods": { - "delete": { - "description": "Deletes the specified address resource.", - "flatPath": "projects/{project}/global/addresses/{address}", - "httpMethod": "DELETE", - "id": "compute.globalAddresses.delete", - "parameterOrder": [ - "project", - "address" - ], - "parameters": { - "address": { - "description": "Name of the address resource to delete.", - "location": "path", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "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. 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).", - "location": "query", - "type": "string" - } - }, - "path": "projects/{project}/global/addresses/{address}", - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ] - }, - "get": { - "description": "Returns the specified address resource.", - "flatPath": "projects/{project}/global/addresses/{address}", - "httpMethod": "GET", - "id": "compute.globalAddresses.get", - "parameterOrder": [ - "project", - "address" - ], - "parameters": { - "address": { - "description": "Name of the address resource to return.", - "location": "path", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "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" - } - }, - "path": "projects/{project}/global/addresses/{address}", - "response": { - "$ref": "Address" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" - ] - }, - "insert": { - "description": "Creates an address resource in the specified project by using the data included in the request.", - "flatPath": "projects/{project}/global/addresses", - "httpMethod": "POST", - "id": "compute.globalAddresses.insert", - "parameterOrder": [ - "project" - ], - "parameters": { - "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. 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).", - "location": "query", - "type": "string" - } - }, - "path": "projects/{project}/global/addresses", - "request": { - "$ref": "Address" - }, - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ] - }, - "list": { - "description": "Retrieves a list of global addresses.", - "flatPath": "projects/{project}/global/addresses", + "aggregatedList": { + "description": "Retrieves an aggregated list of future reservations.\n\nTo prevent failure, it is recommended that you set the\n`returnPartialSuccess` parameter to `true`.", + "flatPath": "projects/{project}/aggregated/futureReservations", "httpMethod": "GET", - "id": "compute.globalAddresses.list", + "id": "compute.futureReservations.aggregatedList", "parameterOrder": [ "project" ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` 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) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.", + "description": "A filter expression that filters resources listed in the response. Most\nCompute resources support two types of filter expressions:\nexpressions that support regular expressions and expressions that follow\nAPI improvement proposal AIP-160.\nThese two types of filter expressions cannot be mixed in one request.\n\nIf you want to use AIP-160, your expression must specify the field name, an\noperator, and the value that you want to use for filtering. The value\nmust be a string, a number, or a boolean. The operator\nmust be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`.\n\nFor example, if you are filtering Compute Engine instances, you can\nexclude instances named `example-instance` by specifying\n`name != example-instance`.\n\nThe `:*` comparison can be used to test whether a key has been defined.\nFor example, to find all objects with `owner` label use:\n```\nlabels.owner:*\n```\n\nYou can also filter nested fields. For example, you could specify\n`scheduling.automaticRestart = false` to include instances only\nif they are not scheduled for automatic restarts. You can use filtering\non nested fields to filter based onresource labels.\n\nTo filter on multiple expressions, provide each separate expression within\nparentheses. For example:\n```\n(scheduling.automaticRestart = true)\n(cpuPlatform = \"Intel Skylake\")\n```\nBy default, each expression is an `AND` expression. However, you\ncan include `AND` and `OR` expressions explicitly.\nFor example:\n```\n(cpuPlatform = \"Intel Skylake\") OR\n(cpuPlatform = \"Intel Broadwell\") AND\n(scheduling.automaticRestart = true)\n```\n\nIf you want to use a regular expression, use the `eq` (equal) or `ne`\n(not equal) operator against a single un-parenthesized expression with or\nwithout quotes or against multiple parenthesized expressions. Examples:\n\n`fieldname eq unquoted literal`\n`fieldname eq 'single quoted literal'`\n`fieldname eq \"double quoted literal\"`\n`(fieldname1 eq literal) (fieldname2 ne \"literal\")`\n\nThe literal value is interpreted as a regular expression using GoogleRE2 library syntax.\nThe literal value must match the entire field.\n\nFor example, to filter for instances that do not end with name \"instance\",\nyou would use `name ne .*instance`.\n\nYou cannot combine constraints on multiple fields using regular\nexpressions.", "location": "query", "type": "string" }, + "includeAllScopes": { + "description": "Indicates whether every visible scope for each scope type (zone, region,\nglobal) should be included in the response. For new resource types added\nafter this field, the flag has no effect as new resource types will always\ninclude every visible scope for each scope type in response. For resource\ntypes which predate this field, if this flag is omitted or false, only\nscopes of the scope types where the resource type is expected to be found\nwill be included.", + "location": "query", + "type": "boolean" + }, "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`)", + "description": "The maximum number of results per page that should be returned.\nIf the number of available results is larger than `maxResults`,\nCompute Engine returns a `nextPageToken` that can be used to get\nthe next page of results in subsequent list requests. Acceptable values are\n`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. 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.", + "description": "Sorts list results by a certain order. By default, results\nare returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation\ntimestamp using `orderBy=\"creationTimestamp desc\"`. This sorts\nresults based on the `creationTimestamp` field in\nreverse chronological order (newest result first). Use this to sort\nresources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or\n`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.", + "description": "Specifies a page token to use. Set `pageToken` to the\n`nextPageToken` returned by a previous list request to get\nthe next page of results.", "location": "query", "type": "string" }, @@ -4964,7 +5525,468 @@ "type": "string" }, "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", + "description": "Opt-in for partial success behavior which provides partial results in case\nof failure. The default value is false.\n\nFor example, when partial success behavior is enabled, aggregatedList for a\nsingle zone scope either returns all resources in the zone or no resources,\nwith an error code.", + "location": "query", + "type": "boolean" + }, + "serviceProjectNumber": { + "description": "The Shared VPC service project id or service project number for which\naggregated list request is invoked for subnetworks list-usable api.", + "format": "int64", + "location": "query", + "type": "string" + } + }, + "path": "projects/{project}/aggregated/futureReservations", + "response": { + "$ref": "FutureReservationsAggregatedListResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ] + }, + "cancel": { + "description": "Cancel the specified future reservation.", + "flatPath": "projects/{project}/zones/{zone}/futureReservations/{futureReservation}/cancel", + "httpMethod": "POST", + "id": "compute.futureReservations.cancel", + "parameterOrder": [ + "project", + "zone", + "futureReservation" + ], + "parameters": { + "futureReservation": { + "description": "Name of the future reservation to retrieve. 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\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).", + "location": "query", + "type": "string" + }, + "zone": { + "description": "Name of the zone for this request. Name should conform to RFC1035.", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "projects/{project}/zones/{zone}/futureReservations/{futureReservation}/cancel", + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ] + }, + "delete": { + "description": "Deletes the specified future reservation.", + "flatPath": "projects/{project}/zones/{zone}/futureReservations/{futureReservation}", + "httpMethod": "DELETE", + "id": "compute.futureReservations.delete", + "parameterOrder": [ + "project", + "zone", + "futureReservation" + ], + "parameters": { + "futureReservation": { + "description": "Name of the future reservation to retrieve. 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\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).", + "location": "query", + "type": "string" + }, + "zone": { + "description": "Name of the zone for this request. Name should conform to RFC1035.", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "projects/{project}/zones/{zone}/futureReservations/{futureReservation}", + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ] + }, + "get": { + "description": "Retrieves information about the specified future reservation.", + "flatPath": "projects/{project}/zones/{zone}/futureReservations/{futureReservation}", + "httpMethod": "GET", + "id": "compute.futureReservations.get", + "parameterOrder": [ + "project", + "zone", + "futureReservation" + ], + "parameters": { + "futureReservation": { + "description": "Name of the future reservation to retrieve. 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" + }, + "zone": { + "description": "Name of the zone for this request. Name should conform to RFC1035.", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "projects/{project}/zones/{zone}/futureReservations/{futureReservation}", + "response": { + "$ref": "FutureReservation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ] + }, + "insert": { + "description": "Creates a new Future Reservation.", + "flatPath": "projects/{project}/zones/{zone}/futureReservations", + "httpMethod": "POST", + "id": "compute.futureReservations.insert", + "parameterOrder": [ + "project", + "zone" + ], + "parameters": { + "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\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).", + "location": "query", + "type": "string" + }, + "zone": { + "description": "Name of the zone for this request. Name should conform to RFC1035.", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "projects/{project}/zones/{zone}/futureReservations", + "request": { + "$ref": "FutureReservation" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ] + }, + "list": { + "description": "A list of all the future reservations that have been configured for the\nspecified project in specified zone.", + "flatPath": "projects/{project}/zones/{zone}/futureReservations", + "httpMethod": "GET", + "id": "compute.futureReservations.list", + "parameterOrder": [ + "project", + "zone" + ], + "parameters": { + "filter": { + "description": "A filter expression that filters resources listed in the response. Most\nCompute resources support two types of filter expressions:\nexpressions that support regular expressions and expressions that follow\nAPI improvement proposal AIP-160.\nThese two types of filter expressions cannot be mixed in one request.\n\nIf you want to use AIP-160, your expression must specify the field name, an\noperator, and the value that you want to use for filtering. The value\nmust be a string, a number, or a boolean. The operator\nmust be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`.\n\nFor example, if you are filtering Compute Engine instances, you can\nexclude instances named `example-instance` by specifying\n`name != example-instance`.\n\nThe `:*` comparison can be used to test whether a key has been defined.\nFor example, to find all objects with `owner` label use:\n```\nlabels.owner:*\n```\n\nYou can also filter nested fields. For example, you could specify\n`scheduling.automaticRestart = false` to include instances only\nif they are not scheduled for automatic restarts. You can use filtering\non nested fields to filter based onresource labels.\n\nTo filter on multiple expressions, provide each separate expression within\nparentheses. For example:\n```\n(scheduling.automaticRestart = true)\n(cpuPlatform = \"Intel Skylake\")\n```\nBy default, each expression is an `AND` expression. However, you\ncan include `AND` and `OR` expressions explicitly.\nFor example:\n```\n(cpuPlatform = \"Intel Skylake\") OR\n(cpuPlatform = \"Intel Broadwell\") AND\n(scheduling.automaticRestart = true)\n```\n\nIf you want to use a regular expression, use the `eq` (equal) or `ne`\n(not equal) operator against a single un-parenthesized expression with or\nwithout quotes or against multiple parenthesized expressions. Examples:\n\n`fieldname eq unquoted literal`\n`fieldname eq 'single quoted literal'`\n`fieldname eq \"double quoted literal\"`\n`(fieldname1 eq literal) (fieldname2 ne \"literal\")`\n\nThe literal value is interpreted as a regular expression using GoogleRE2 library syntax.\nThe literal value must match the entire field.\n\nFor example, to filter for instances that do not end with name \"instance\",\nyou would use `name ne .*instance`.\n\nYou cannot combine constraints on multiple fields using regular\nexpressions.", + "location": "query", + "type": "string" + }, + "maxResults": { + "default": "500", + "description": "The maximum number of results per page that should be returned.\nIf the number of available results is larger than `maxResults`,\nCompute Engine returns a `nextPageToken` that can be used to get\nthe next page of results in subsequent list requests. Acceptable values are\n`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\nare returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation\ntimestamp using `orderBy=\"creationTimestamp desc\"`. This sorts\nresults based on the `creationTimestamp` field in\nreverse chronological order (newest result first). Use this to sort\nresources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or\n`creationTimestamp desc` is supported.", + "location": "query", + "type": "string" + }, + "pageToken": { + "description": "Specifies a page token to use. Set `pageToken` to the\n`nextPageToken` returned by a previous list request to get\nthe 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" + }, + "returnPartialSuccess": { + "description": "Opt-in for partial success behavior which provides partial results in case\nof failure. The default value is false.\n\nFor example, when partial success behavior is enabled, aggregatedList for a\nsingle zone scope either returns all resources in the zone or no resources,\nwith an error code.", + "location": "query", + "type": "boolean" + }, + "zone": { + "description": "Name of the zone for this request. Name should conform to RFC1035.", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "projects/{project}/zones/{zone}/futureReservations", + "response": { + "$ref": "FutureReservationsListResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ] + }, + "update": { + "description": "Updates the specified future reservation.", + "flatPath": "projects/{project}/zones/{zone}/futureReservations/{futureReservation}", + "httpMethod": "PATCH", + "id": "compute.futureReservations.update", + "parameterOrder": [ + "project", + "zone", + "futureReservation" + ], + "parameters": { + "futureReservation": { + "description": "Name of the reservation to update. 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\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).", + "location": "query", + "type": "string" + }, + "updateMask": { + "description": "update_mask indicates fields to be updated as part of this request.", + "format": "google-fieldmask", + "location": "query", + "type": "string" + }, + "zone": { + "description": "Name of the zone for this request. Name should conform to RFC1035.", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "projects/{project}/zones/{zone}/futureReservations/{futureReservation}", + "request": { + "$ref": "FutureReservation" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ] + } + } + }, + "globalAddresses": { + "methods": { + "delete": { + "description": "Deletes the specified address resource.", + "flatPath": "projects/{project}/global/addresses/{address}", + "httpMethod": "DELETE", + "id": "compute.globalAddresses.delete", + "parameterOrder": [ + "project", + "address" + ], + "parameters": { + "address": { + "description": "Name of the address resource to delete.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "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\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).", + "location": "query", + "type": "string" + } + }, + "path": "projects/{project}/global/addresses/{address}", + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ] + }, + "get": { + "description": "Returns the specified address resource.", + "flatPath": "projects/{project}/global/addresses/{address}", + "httpMethod": "GET", + "id": "compute.globalAddresses.get", + "parameterOrder": [ + "project", + "address" + ], + "parameters": { + "address": { + "description": "Name of the address resource to return.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "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" + } + }, + "path": "projects/{project}/global/addresses/{address}", + "response": { + "$ref": "Address" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ] + }, + "insert": { + "description": "Creates an address resource in the specified project by using the data\nincluded in the request.", + "flatPath": "projects/{project}/global/addresses", + "httpMethod": "POST", + "id": "compute.globalAddresses.insert", + "parameterOrder": [ + "project" + ], + "parameters": { + "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\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).", + "location": "query", + "type": "string" + } + }, + "path": "projects/{project}/global/addresses", + "request": { + "$ref": "Address" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ] + }, + "list": { + "description": "Retrieves a list of global addresses.", + "flatPath": "projects/{project}/global/addresses", + "httpMethod": "GET", + "id": "compute.globalAddresses.list", + "parameterOrder": [ + "project" + ], + "parameters": { + "filter": { + "description": "A filter expression that filters resources listed in the response. Most\nCompute resources support two types of filter expressions:\nexpressions that support regular expressions and expressions that follow\nAPI improvement proposal AIP-160.\nThese two types of filter expressions cannot be mixed in one request.\n\nIf you want to use AIP-160, your expression must specify the field name, an\noperator, and the value that you want to use for filtering. The value\nmust be a string, a number, or a boolean. The operator\nmust be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`.\n\nFor example, if you are filtering Compute Engine instances, you can\nexclude instances named `example-instance` by specifying\n`name != example-instance`.\n\nThe `:*` comparison can be used to test whether a key has been defined.\nFor example, to find all objects with `owner` label use:\n```\nlabels.owner:*\n```\n\nYou can also filter nested fields. For example, you could specify\n`scheduling.automaticRestart = false` to include instances only\nif they are not scheduled for automatic restarts. You can use filtering\non nested fields to filter based onresource labels.\n\nTo filter on multiple expressions, provide each separate expression within\nparentheses. For example:\n```\n(scheduling.automaticRestart = true)\n(cpuPlatform = \"Intel Skylake\")\n```\nBy default, each expression is an `AND` expression. However, you\ncan include `AND` and `OR` expressions explicitly.\nFor example:\n```\n(cpuPlatform = \"Intel Skylake\") OR\n(cpuPlatform = \"Intel Broadwell\") AND\n(scheduling.automaticRestart = true)\n```\n\nIf you want to use a regular expression, use the `eq` (equal) or `ne`\n(not equal) operator against a single un-parenthesized expression with or\nwithout quotes or against multiple parenthesized expressions. Examples:\n\n`fieldname eq unquoted literal`\n`fieldname eq 'single quoted literal'`\n`fieldname eq \"double quoted literal\"`\n`(fieldname1 eq literal) (fieldname2 ne \"literal\")`\n\nThe literal value is interpreted as a regular expression using GoogleRE2 library syntax.\nThe literal value must match the entire field.\n\nFor example, to filter for instances that do not end with name \"instance\",\nyou would use `name ne .*instance`.\n\nYou cannot combine constraints on multiple fields using regular\nexpressions.", + "location": "query", + "type": "string" + }, + "maxResults": { + "default": "500", + "description": "The maximum number of results per page that should be returned.\nIf the number of available results is larger than `maxResults`,\nCompute Engine returns a `nextPageToken` that can be used to get\nthe next page of results in subsequent list requests. Acceptable values are\n`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\nare returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation\ntimestamp using `orderBy=\"creationTimestamp desc\"`. This sorts\nresults based on the `creationTimestamp` field in\nreverse chronological order (newest result first). Use this to sort\nresources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or\n`creationTimestamp desc` is supported.", + "location": "query", + "type": "string" + }, + "pageToken": { + "description": "Specifies a page token to use. Set `pageToken` to the\n`nextPageToken` returned by a previous list request to get\nthe 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" + }, + "returnPartialSuccess": { + "description": "Opt-in for partial success behavior which provides partial results in case\nof failure. The default value is false.\n\nFor example, when partial success behavior is enabled, aggregatedList for a\nsingle zone scope either returns all resources in the zone or no resources,\nwith an error code.", "location": "query", "type": "boolean" } @@ -5004,7 +6026,7 @@ "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. 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).", + "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).", "location": "query", "type": "string" } @@ -5022,7 +6044,7 @@ ] }, "setLabels": { - "description": "Sets the labels on a GlobalAddress. To learn more about labels, read the Labeling Resources documentation.", + "description": "Sets the labels on a GlobalAddress. To learn more about labels, read theLabeling\nResources documentation.", "flatPath": "projects/{project}/global/addresses/{resource}/setLabels", "httpMethod": "POST", "id": "compute.globalAddresses.setLabels", @@ -5057,6 +6079,44 @@ "https://www.googleapis.com/auth/cloud-platform", "https://www.googleapis.com/auth/compute" ] + }, + "testIamPermissions": { + "description": "Returns permissions that a caller has on the specified resource.", + "flatPath": "projects/{project}/global/addresses/{resource}/testIamPermissions", + "httpMethod": "POST", + "id": "compute.globalAddresses.testIamPermissions", + "parameterOrder": [ + "project", + "resource" + ], + "parameters": { + "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" + }, + "resource": { + "description": "Name or id of the resource for this request.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "required": true, + "type": "string" + } + }, + "path": "projects/{project}/global/addresses/{resource}/testIamPermissions", + "request": { + "$ref": "TestPermissionsRequest" + }, + "response": { + "$ref": "TestPermissionsResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ] } } }, @@ -5087,7 +6147,7 @@ "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. 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).", + "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).", "location": "query", "type": "string" } @@ -5102,7 +6162,7 @@ ] }, "get": { - "description": "Returns the specified GlobalForwardingRule resource. Gets a list of available forwarding rules by making a list() request.", + "description": "Returns the specified GlobalForwardingRule resource. Gets a list of\navailable forwarding rules by making a list() request.", "flatPath": "projects/{project}/global/forwardingRules/{forwardingRule}", "httpMethod": "GET", "id": "compute.globalForwardingRules.get", @@ -5124,6 +6184,18 @@ "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" + }, + "view": { + "enum": [ + "BASIC", + "FULL" + ], + "enumDescriptions": [ + "The default view of a ForwardingRule, which includes the basic fields.", + "The full view, including the ForwardingRule.`attached_extensions` field." + ], + "location": "query", + "type": "string" } }, "path": "projects/{project}/global/forwardingRules/{forwardingRule}", @@ -5137,7 +6209,7 @@ ] }, "insert": { - "description": "Creates a GlobalForwardingRule resource in the specified project using the data included in the request.", + "description": "Creates a GlobalForwardingRule resource in the specified project using\nthe data included in the request.", "flatPath": "projects/{project}/global/forwardingRules", "httpMethod": "POST", "id": "compute.globalForwardingRules.insert", @@ -5153,7 +6225,7 @@ "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. 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).", + "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).", "location": "query", "type": "string" } @@ -5171,7 +6243,7 @@ ] }, "list": { - "description": "Retrieves a list of GlobalForwardingRule resources available to the specified project.", + "description": "Retrieves a list of GlobalForwardingRule resources available to the\nspecified project.", "flatPath": "projects/{project}/global/forwardingRules", "httpMethod": "GET", "id": "compute.globalForwardingRules.list", @@ -5180,25 +6252,25 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` 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) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.", + "description": "A filter expression that filters resources listed in the response. Most\nCompute resources support two types of filter expressions:\nexpressions that support regular expressions and expressions that follow\nAPI improvement proposal AIP-160.\nThese two types of filter expressions cannot be mixed in one request.\n\nIf you want to use AIP-160, your expression must specify the field name, an\noperator, and the value that you want to use for filtering. The value\nmust be a string, a number, or a boolean. The operator\nmust be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`.\n\nFor example, if you are filtering Compute Engine instances, you can\nexclude instances named `example-instance` by specifying\n`name != example-instance`.\n\nThe `:*` comparison can be used to test whether a key has been defined.\nFor example, to find all objects with `owner` label use:\n```\nlabels.owner:*\n```\n\nYou can also filter nested fields. For example, you could specify\n`scheduling.automaticRestart = false` to include instances only\nif they are not scheduled for automatic restarts. You can use filtering\non nested fields to filter based onresource labels.\n\nTo filter on multiple expressions, provide each separate expression within\nparentheses. For example:\n```\n(scheduling.automaticRestart = true)\n(cpuPlatform = \"Intel Skylake\")\n```\nBy default, each expression is an `AND` expression. However, you\ncan include `AND` and `OR` expressions explicitly.\nFor example:\n```\n(cpuPlatform = \"Intel Skylake\") OR\n(cpuPlatform = \"Intel Broadwell\") AND\n(scheduling.automaticRestart = true)\n```\n\nIf you want to use a regular expression, use the `eq` (equal) or `ne`\n(not equal) operator against a single un-parenthesized expression with or\nwithout quotes or against multiple parenthesized expressions. Examples:\n\n`fieldname eq unquoted literal`\n`fieldname eq 'single quoted literal'`\n`fieldname eq \"double quoted literal\"`\n`(fieldname1 eq literal) (fieldname2 ne \"literal\")`\n\nThe literal value is interpreted as a regular expression using GoogleRE2 library syntax.\nThe literal value must match the entire field.\n\nFor example, to filter for instances that do not end with name \"instance\",\nyou would use `name ne .*instance`.\n\nYou cannot combine constraints on multiple fields using regular\nexpressions.", "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`)", + "description": "The maximum number of results per page that should be returned.\nIf the number of available results is larger than `maxResults`,\nCompute Engine returns a `nextPageToken` that can be used to get\nthe next page of results in subsequent list requests. Acceptable values are\n`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. 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.", + "description": "Sorts list results by a certain order. By default, results\nare returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation\ntimestamp using `orderBy=\"creationTimestamp desc\"`. This sorts\nresults based on the `creationTimestamp` field in\nreverse chronological order (newest result first). Use this to sort\nresources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or\n`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.", + "description": "Specifies a page token to use. Set `pageToken` to the\n`nextPageToken` returned by a previous list request to get\nthe next page of results.", "location": "query", "type": "string" }, @@ -5210,7 +6282,7 @@ "type": "string" }, "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", + "description": "Opt-in for partial success behavior which provides partial results in case\nof failure. The default value is false.\n\nFor example, when partial success behavior is enabled, aggregatedList for a\nsingle zone scope either returns all resources in the zone or no resources,\nwith an error code.", "location": "query", "type": "boolean" } @@ -5226,7 +6298,7 @@ ] }, "patch": { - "description": "Updates the specified forwarding rule with the data included in the request. This method supports PATCH semantics and uses the JSON merge patch format and processing rules. Currently, you can only patch the network_tier field.", + "description": "Updates the specified forwarding rule with the data included in the\nrequest. This method supportsPATCH\nsemantics and uses theJSON merge\npatch format and processing rules. Currently, you can only\npatch the network_tier field.", "flatPath": "projects/{project}/global/forwardingRules/{forwardingRule}", "httpMethod": "PATCH", "id": "compute.globalForwardingRules.patch", @@ -5250,7 +6322,7 @@ "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. 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).", + "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).", "location": "query", "type": "string" } @@ -5268,7 +6340,7 @@ ] }, "setLabels": { - "description": "Sets the labels on the specified resource. To learn more about labels, read the Labeling resources documentation.", + "description": "Sets the labels on the specified resource. To learn more about labels,\nread the \nLabeling resources documentation.", "flatPath": "projects/{project}/global/forwardingRules/{resource}/setLabels", "httpMethod": "POST", "id": "compute.globalForwardingRules.setLabels", @@ -5305,7 +6377,7 @@ ] }, "setTarget": { - "description": "Changes target URL for the GlobalForwardingRule resource. The new target should be of the same type as the old target.", + "description": "Changes target URL for the GlobalForwardingRule resource. The new target\nshould be of the same type as the old target.", "flatPath": "projects/{project}/global/forwardingRules/{forwardingRule}/setTarget", "httpMethod": "POST", "id": "compute.globalForwardingRules.setTarget", @@ -5329,7 +6401,7 @@ "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. 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).", + "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).", "location": "query", "type": "string" } @@ -5361,7 +6433,7 @@ ], "parameters": { "networkEndpointGroup": { - "description": "The name of the network endpoint group where you are attaching network endpoints to. It should comply with RFC1035.", + "description": "The name of the network endpoint group where you are attaching network\nendpoints to. It should comply with RFC1035.", "location": "path", "required": true, "type": "string" @@ -5374,7 +6446,7 @@ "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. 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).", + "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).", "location": "query", "type": "string" } @@ -5392,7 +6464,7 @@ ] }, "delete": { - "description": "Deletes the specified network endpoint group.Note that the NEG cannot be deleted if there are backend services referencing it.", + "description": "Deletes the specified network endpoint group.Note that the NEG cannot be\ndeleted if there are backend services referencing it.", "flatPath": "projects/{project}/global/networkEndpointGroups/{networkEndpointGroup}", "httpMethod": "DELETE", "id": "compute.globalNetworkEndpointGroups.delete", @@ -5402,7 +6474,7 @@ ], "parameters": { "networkEndpointGroup": { - "description": "The name of the network endpoint group to delete. It should comply with RFC1035.", + "description": "The name of the network endpoint group to delete. It should comply with\nRFC1035.", "location": "path", "required": true, "type": "string" @@ -5415,7 +6487,7 @@ "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. 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).", + "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).", "location": "query", "type": "string" } @@ -5440,7 +6512,7 @@ ], "parameters": { "networkEndpointGroup": { - "description": "The name of the network endpoint group where you are removing network endpoints. It should comply with RFC1035.", + "description": "The name of the network endpoint group where you are removing network\nendpoints. It should comply with RFC1035.", "location": "path", "required": true, "type": "string" @@ -5453,7 +6525,7 @@ "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. 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).", + "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).", "location": "query", "type": "string" } @@ -5505,7 +6577,7 @@ ] }, "insert": { - "description": "Creates a network endpoint group in the specified project using the parameters that are included in the request.", + "description": "Creates a network endpoint group in the specified project using the\nparameters that are included in the request.\n\nNote: Use the following APIs to manage network endpoint groups:\n \n - \n To manage NEGs with zonal scope (such as zonal NEGs, hybrid connectivity\n NEGs): zonal\n API\n - \n To manage NEGs with regional scope (such as regional internet NEGs,\n serverless NEGs, Private Service Connect NEGs): regional\n API\n - \n To manage NEGs with global scope (such as global internet NEGs):global\n API", "flatPath": "projects/{project}/global/networkEndpointGroups", "httpMethod": "POST", "id": "compute.globalNetworkEndpointGroups.insert", @@ -5521,7 +6593,7 @@ "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. 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).", + "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).", "location": "query", "type": "string" } @@ -5539,7 +6611,7 @@ ] }, "list": { - "description": "Retrieves the list of network endpoint groups that are located in the specified project.", + "description": "Retrieves the list of network endpoint groups that are located in the\nspecified project.", "flatPath": "projects/{project}/global/networkEndpointGroups", "httpMethod": "GET", "id": "compute.globalNetworkEndpointGroups.list", @@ -5548,25 +6620,25 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` 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) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.", + "description": "A filter expression that filters resources listed in the response. Most\nCompute resources support two types of filter expressions:\nexpressions that support regular expressions and expressions that follow\nAPI improvement proposal AIP-160.\nThese two types of filter expressions cannot be mixed in one request.\n\nIf you want to use AIP-160, your expression must specify the field name, an\noperator, and the value that you want to use for filtering. The value\nmust be a string, a number, or a boolean. The operator\nmust be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`.\n\nFor example, if you are filtering Compute Engine instances, you can\nexclude instances named `example-instance` by specifying\n`name != example-instance`.\n\nThe `:*` comparison can be used to test whether a key has been defined.\nFor example, to find all objects with `owner` label use:\n```\nlabels.owner:*\n```\n\nYou can also filter nested fields. For example, you could specify\n`scheduling.automaticRestart = false` to include instances only\nif they are not scheduled for automatic restarts. You can use filtering\non nested fields to filter based onresource labels.\n\nTo filter on multiple expressions, provide each separate expression within\nparentheses. For example:\n```\n(scheduling.automaticRestart = true)\n(cpuPlatform = \"Intel Skylake\")\n```\nBy default, each expression is an `AND` expression. However, you\ncan include `AND` and `OR` expressions explicitly.\nFor example:\n```\n(cpuPlatform = \"Intel Skylake\") OR\n(cpuPlatform = \"Intel Broadwell\") AND\n(scheduling.automaticRestart = true)\n```\n\nIf you want to use a regular expression, use the `eq` (equal) or `ne`\n(not equal) operator against a single un-parenthesized expression with or\nwithout quotes or against multiple parenthesized expressions. Examples:\n\n`fieldname eq unquoted literal`\n`fieldname eq 'single quoted literal'`\n`fieldname eq \"double quoted literal\"`\n`(fieldname1 eq literal) (fieldname2 ne \"literal\")`\n\nThe literal value is interpreted as a regular expression using GoogleRE2 library syntax.\nThe literal value must match the entire field.\n\nFor example, to filter for instances that do not end with name \"instance\",\nyou would use `name ne .*instance`.\n\nYou cannot combine constraints on multiple fields using regular\nexpressions.", "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`)", + "description": "The maximum number of results per page that should be returned.\nIf the number of available results is larger than `maxResults`,\nCompute Engine returns a `nextPageToken` that can be used to get\nthe next page of results in subsequent list requests. Acceptable values are\n`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. 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.", + "description": "Sorts list results by a certain order. By default, results\nare returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation\ntimestamp using `orderBy=\"creationTimestamp desc\"`. This sorts\nresults based on the `creationTimestamp` field in\nreverse chronological order (newest result first). Use this to sort\nresources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or\n`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.", + "description": "Specifies a page token to use. Set `pageToken` to the\n`nextPageToken` returned by a previous list request to get\nthe next page of results.", "location": "query", "type": "string" }, @@ -5578,7 +6650,7 @@ "type": "string" }, "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", + "description": "Opt-in for partial success behavior which provides partial results in case\nof failure. The default value is false.\n\nFor example, when partial success behavior is enabled, aggregatedList for a\nsingle zone scope either returns all resources in the zone or no resources,\nwith an error code.", "location": "query", "type": "boolean" } @@ -5604,31 +6676,31 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` 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) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.", + "description": "A filter expression that filters resources listed in the response. Most\nCompute resources support two types of filter expressions:\nexpressions that support regular expressions and expressions that follow\nAPI improvement proposal AIP-160.\nThese two types of filter expressions cannot be mixed in one request.\n\nIf you want to use AIP-160, your expression must specify the field name, an\noperator, and the value that you want to use for filtering. The value\nmust be a string, a number, or a boolean. The operator\nmust be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`.\n\nFor example, if you are filtering Compute Engine instances, you can\nexclude instances named `example-instance` by specifying\n`name != example-instance`.\n\nThe `:*` comparison can be used to test whether a key has been defined.\nFor example, to find all objects with `owner` label use:\n```\nlabels.owner:*\n```\n\nYou can also filter nested fields. For example, you could specify\n`scheduling.automaticRestart = false` to include instances only\nif they are not scheduled for automatic restarts. You can use filtering\non nested fields to filter based onresource labels.\n\nTo filter on multiple expressions, provide each separate expression within\nparentheses. For example:\n```\n(scheduling.automaticRestart = true)\n(cpuPlatform = \"Intel Skylake\")\n```\nBy default, each expression is an `AND` expression. However, you\ncan include `AND` and `OR` expressions explicitly.\nFor example:\n```\n(cpuPlatform = \"Intel Skylake\") OR\n(cpuPlatform = \"Intel Broadwell\") AND\n(scheduling.automaticRestart = true)\n```\n\nIf you want to use a regular expression, use the `eq` (equal) or `ne`\n(not equal) operator against a single un-parenthesized expression with or\nwithout quotes or against multiple parenthesized expressions. Examples:\n\n`fieldname eq unquoted literal`\n`fieldname eq 'single quoted literal'`\n`fieldname eq \"double quoted literal\"`\n`(fieldname1 eq literal) (fieldname2 ne \"literal\")`\n\nThe literal value is interpreted as a regular expression using GoogleRE2 library syntax.\nThe literal value must match the entire field.\n\nFor example, to filter for instances that do not end with name \"instance\",\nyou would use `name ne .*instance`.\n\nYou cannot combine constraints on multiple fields using regular\nexpressions.", "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`)", + "description": "The maximum number of results per page that should be returned.\nIf the number of available results is larger than `maxResults`,\nCompute Engine returns a `nextPageToken` that can be used to get\nthe next page of results in subsequent list requests. Acceptable values are\n`0` to `500`, inclusive. (Default: `500`)", "format": "uint32", "location": "query", "minimum": "0", "type": "integer" }, "networkEndpointGroup": { - "description": "The name of the network endpoint group from which you want to generate a list of included network endpoints. It should comply with RFC1035.", + "description": "The name of the network endpoint group from which you want to generate a\nlist of included network endpoints. It should comply with RFC1035.", "location": "path", "required": true, "type": "string" }, "orderBy": { - "description": "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.", + "description": "Sorts list results by a certain order. By default, results\nare returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation\ntimestamp using `orderBy=\"creationTimestamp desc\"`. This sorts\nresults based on the `creationTimestamp` field in\nreverse chronological order (newest result first). Use this to sort\nresources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or\n`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.", + "description": "Specifies a page token to use. Set `pageToken` to the\n`nextPageToken` returned by a previous list request to get\nthe next page of results.", "location": "query", "type": "string" }, @@ -5640,7 +6712,7 @@ "type": "string" }, "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", + "description": "Opt-in for partial success behavior which provides partial results in case\nof failure. The default value is false.\n\nFor example, when partial success behavior is enabled, aggregatedList for a\nsingle zone scope either returns all resources in the zone or no resources,\nwith an error code.", "location": "query", "type": "boolean" } @@ -5660,7 +6732,7 @@ "globalOperations": { "methods": { "aggregatedList": { - "description": "Retrieves an aggregated list of all operations. To prevent failure, Google recommends that you set the `returnPartialSuccess` parameter to `true`.", + "description": "Retrieves an aggregated list of all operations.\n\nTo prevent failure, Google recommends that you set the\n`returnPartialSuccess` parameter to `true`.", "flatPath": "projects/{project}/aggregated/operations", "httpMethod": "GET", "id": "compute.globalOperations.aggregatedList", @@ -5669,30 +6741,30 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` 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) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.", + "description": "A filter expression that filters resources listed in the response. Most\nCompute resources support two types of filter expressions:\nexpressions that support regular expressions and expressions that follow\nAPI improvement proposal AIP-160.\nThese two types of filter expressions cannot be mixed in one request.\n\nIf you want to use AIP-160, your expression must specify the field name, an\noperator, and the value that you want to use for filtering. The value\nmust be a string, a number, or a boolean. The operator\nmust be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`.\n\nFor example, if you are filtering Compute Engine instances, you can\nexclude instances named `example-instance` by specifying\n`name != example-instance`.\n\nThe `:*` comparison can be used to test whether a key has been defined.\nFor example, to find all objects with `owner` label use:\n```\nlabels.owner:*\n```\n\nYou can also filter nested fields. For example, you could specify\n`scheduling.automaticRestart = false` to include instances only\nif they are not scheduled for automatic restarts. You can use filtering\non nested fields to filter based onresource labels.\n\nTo filter on multiple expressions, provide each separate expression within\nparentheses. For example:\n```\n(scheduling.automaticRestart = true)\n(cpuPlatform = \"Intel Skylake\")\n```\nBy default, each expression is an `AND` expression. However, you\ncan include `AND` and `OR` expressions explicitly.\nFor example:\n```\n(cpuPlatform = \"Intel Skylake\") OR\n(cpuPlatform = \"Intel Broadwell\") AND\n(scheduling.automaticRestart = true)\n```\n\nIf you want to use a regular expression, use the `eq` (equal) or `ne`\n(not equal) operator against a single un-parenthesized expression with or\nwithout quotes or against multiple parenthesized expressions. Examples:\n\n`fieldname eq unquoted literal`\n`fieldname eq 'single quoted literal'`\n`fieldname eq \"double quoted literal\"`\n`(fieldname1 eq literal) (fieldname2 ne \"literal\")`\n\nThe literal value is interpreted as a regular expression using GoogleRE2 library syntax.\nThe literal value must match the entire field.\n\nFor example, to filter for instances that do not end with name \"instance\",\nyou would use `name ne .*instance`.\n\nYou cannot combine constraints on multiple fields using regular\nexpressions.", "location": "query", "type": "string" }, "includeAllScopes": { - "description": "Indicates whether every visible scope for each scope type (zone, region, global) should be included in the response. For new resource types added after this field, the flag has no effect as new resource types will always include every visible scope for each scope type in response. For resource types which predate this field, if this flag is omitted or false, only scopes of the scope types where the resource type is expected to be found will be included.", + "description": "Indicates whether every visible scope for each scope type (zone, region,\nglobal) should be included in the response. For new resource types added\nafter this field, the flag has no effect as new resource types will always\ninclude every visible scope for each scope type in response. For resource\ntypes which predate this field, if this flag is omitted or false, only\nscopes of the scope types where the resource type is expected to be found\nwill be included.", "location": "query", "type": "boolean" }, "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`)", + "description": "The maximum number of results per page that should be returned.\nIf the number of available results is larger than `maxResults`,\nCompute Engine returns a `nextPageToken` that can be used to get\nthe next page of results in subsequent list requests. Acceptable values are\n`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. 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.", + "description": "Sorts list results by a certain order. By default, results\nare returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation\ntimestamp using `orderBy=\"creationTimestamp desc\"`. This sorts\nresults based on the `creationTimestamp` field in\nreverse chronological order (newest result first). Use this to sort\nresources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or\n`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.", + "description": "Specifies a page token to use. Set `pageToken` to the\n`nextPageToken` returned by a previous list request to get\nthe next page of results.", "location": "query", "type": "string" }, @@ -5704,12 +6776,12 @@ "type": "string" }, "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", + "description": "Opt-in for partial success behavior which provides partial results in case\nof failure. The default value is false.\n\nFor example, when partial success behavior is enabled, aggregatedList for a\nsingle zone scope either returns all resources in the zone or no resources,\nwith an error code.", "location": "query", "type": "boolean" }, "serviceProjectNumber": { - "description": "The Shared VPC service project id or service project number for which aggregated list request is invoked for subnetworks list-usable api.", + "description": "The Shared VPC service project id or service project number for which\naggregated list request is invoked for subnetworks list-usable api.", "format": "int64", "location": "query", "type": "string" @@ -5736,7 +6808,7 @@ ], "parameters": { "operation": { - "description": "Name of the Operations resource to delete.", + "description": "Name of the Operations resource to delete, or its unique numeric\nidentifier.", "location": "path", "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", "required": true, @@ -5767,7 +6839,7 @@ ], "parameters": { "operation": { - "description": "Name of the Operations resource to return.", + "description": "Name of the Operations resource to return, or its unique numeric\nidentifier.", "location": "path", "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", "required": true, @@ -5792,7 +6864,7 @@ ] }, "list": { - "description": "Retrieves a list of Operation resources contained within the specified project.", + "description": "Retrieves a list of Operation resources contained within the specified\nproject.", "flatPath": "projects/{project}/global/operations", "httpMethod": "GET", "id": "compute.globalOperations.list", @@ -5801,25 +6873,25 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` 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) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.", + "description": "A filter expression that filters resources listed in the response. Most\nCompute resources support two types of filter expressions:\nexpressions that support regular expressions and expressions that follow\nAPI improvement proposal AIP-160.\nThese two types of filter expressions cannot be mixed in one request.\n\nIf you want to use AIP-160, your expression must specify the field name, an\noperator, and the value that you want to use for filtering. The value\nmust be a string, a number, or a boolean. The operator\nmust be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`.\n\nFor example, if you are filtering Compute Engine instances, you can\nexclude instances named `example-instance` by specifying\n`name != example-instance`.\n\nThe `:*` comparison can be used to test whether a key has been defined.\nFor example, to find all objects with `owner` label use:\n```\nlabels.owner:*\n```\n\nYou can also filter nested fields. For example, you could specify\n`scheduling.automaticRestart = false` to include instances only\nif they are not scheduled for automatic restarts. You can use filtering\non nested fields to filter based onresource labels.\n\nTo filter on multiple expressions, provide each separate expression within\nparentheses. For example:\n```\n(scheduling.automaticRestart = true)\n(cpuPlatform = \"Intel Skylake\")\n```\nBy default, each expression is an `AND` expression. However, you\ncan include `AND` and `OR` expressions explicitly.\nFor example:\n```\n(cpuPlatform = \"Intel Skylake\") OR\n(cpuPlatform = \"Intel Broadwell\") AND\n(scheduling.automaticRestart = true)\n```\n\nIf you want to use a regular expression, use the `eq` (equal) or `ne`\n(not equal) operator against a single un-parenthesized expression with or\nwithout quotes or against multiple parenthesized expressions. Examples:\n\n`fieldname eq unquoted literal`\n`fieldname eq 'single quoted literal'`\n`fieldname eq \"double quoted literal\"`\n`(fieldname1 eq literal) (fieldname2 ne \"literal\")`\n\nThe literal value is interpreted as a regular expression using GoogleRE2 library syntax.\nThe literal value must match the entire field.\n\nFor example, to filter for instances that do not end with name \"instance\",\nyou would use `name ne .*instance`.\n\nYou cannot combine constraints on multiple fields using regular\nexpressions.", "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`)", + "description": "The maximum number of results per page that should be returned.\nIf the number of available results is larger than `maxResults`,\nCompute Engine returns a `nextPageToken` that can be used to get\nthe next page of results in subsequent list requests. Acceptable values are\n`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. 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.", + "description": "Sorts list results by a certain order. By default, results\nare returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation\ntimestamp using `orderBy=\"creationTimestamp desc\"`. This sorts\nresults based on the `creationTimestamp` field in\nreverse chronological order (newest result first). Use this to sort\nresources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or\n`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.", + "description": "Specifies a page token to use. Set `pageToken` to the\n`nextPageToken` returned by a previous list request to get\nthe next page of results.", "location": "query", "type": "string" }, @@ -5831,7 +6903,7 @@ "type": "string" }, "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", + "description": "Opt-in for partial success behavior which provides partial results in case\nof failure. The default value is false.\n\nFor example, when partial success behavior is enabled, aggregatedList for a\nsingle zone scope either returns all resources in the zone or no resources,\nwith an error code.", "location": "query", "type": "boolean" } @@ -5847,7 +6919,7 @@ ] }, "wait": { - "description": "Waits for the specified Operation resource to return as `DONE` or for the request to approach the 2 minute deadline, and retrieves the specified Operation resource. This method differs from the `GET` method in that it waits for no more than the default deadline (2 minutes) and then returns the current state of the operation, which might be `DONE` or still in progress. This method is called on a best-effort basis. Specifically: - In uncommon cases, when the server is overloaded, the request might return before the default deadline is reached, or might return after zero seconds. - If the default deadline is reached, there is no guarantee that the operation is actually done when the method returns. Be prepared to retry if the operation is not `DONE`. ", + "description": "Waits for the specified Operation resource to return as `DONE`\nor for the request to approach the 2 minute deadline, and retrieves the\nspecified Operation resource. This method differs from the\n`GET` method in that it waits for no more than the default\ndeadline (2 minutes) and then returns the current state of the operation,\nwhich might be `DONE` or still in progress.\n\nThis method is called on a best-effort basis. Specifically:\n \n \n - In uncommon cases, when the server is overloaded, the request might\n return before the default deadline is reached, or might return after zero\n seconds.\n - If the default deadline is reached, there is no guarantee that the\n operation is actually done when the method returns. Be prepared to retry\n if the operation is not `DONE`.", "flatPath": "projects/{project}/global/operations/{operation}/wait", "httpMethod": "POST", "id": "compute.globalOperations.wait", @@ -5857,7 +6929,7 @@ ], "parameters": { "operation": { - "description": "Name of the Operations resource to return.", + "description": "Name of the Operations resource to return, or its unique numeric\nidentifier.", "location": "path", "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", "required": true, @@ -5895,7 +6967,7 @@ ], "parameters": { "operation": { - "description": "Name of the Operations resource to delete.", + "description": "Name of the Operations resource to delete, or its unique numeric\nidentifier.", "location": "path", "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", "required": true, @@ -5914,7 +6986,7 @@ ] }, "get": { - "description": "Retrieves the specified Operations resource. Gets a list of operations by making a `list()` request.", + "description": "Retrieves the specified Operations resource. Gets a list of operations\nby making a `list()` request.", "flatPath": "locations/global/operations/{operation}", "httpMethod": "GET", "id": "compute.globalOrganizationOperations.get", @@ -5923,14 +6995,14 @@ ], "parameters": { "operation": { - "description": "Name of the Operations resource to return.", + "description": "Name of the Operations resource to return. Parent is derived from this\nfield.", "location": "path", "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", "required": true, "type": "string" }, "parentId": { - "description": "Parent ID for this request.", + "description": "Parent ID for this request. Not used. Parent is derived from resource_id.", "location": "query", "type": "string" } @@ -5946,31 +7018,31 @@ ] }, "list": { - "description": "Retrieves a list of Operation resources contained within the specified organization.", + "description": "Retrieves a list of Operation resources contained within the specified\norganization.", "flatPath": "locations/global/operations", "httpMethod": "GET", "id": "compute.globalOrganizationOperations.list", "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` 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) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.", + "description": "A filter expression that filters resources listed in the response. Most\nCompute resources support two types of filter expressions:\nexpressions that support regular expressions and expressions that follow\nAPI improvement proposal AIP-160.\nThese two types of filter expressions cannot be mixed in one request.\n\nIf you want to use AIP-160, your expression must specify the field name, an\noperator, and the value that you want to use for filtering. The value\nmust be a string, a number, or a boolean. The operator\nmust be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`.\n\nFor example, if you are filtering Compute Engine instances, you can\nexclude instances named `example-instance` by specifying\n`name != example-instance`.\n\nThe `:*` comparison can be used to test whether a key has been defined.\nFor example, to find all objects with `owner` label use:\n```\nlabels.owner:*\n```\n\nYou can also filter nested fields. For example, you could specify\n`scheduling.automaticRestart = false` to include instances only\nif they are not scheduled for automatic restarts. You can use filtering\non nested fields to filter based onresource labels.\n\nTo filter on multiple expressions, provide each separate expression within\nparentheses. For example:\n```\n(scheduling.automaticRestart = true)\n(cpuPlatform = \"Intel Skylake\")\n```\nBy default, each expression is an `AND` expression. However, you\ncan include `AND` and `OR` expressions explicitly.\nFor example:\n```\n(cpuPlatform = \"Intel Skylake\") OR\n(cpuPlatform = \"Intel Broadwell\") AND\n(scheduling.automaticRestart = true)\n```\n\nIf you want to use a regular expression, use the `eq` (equal) or `ne`\n(not equal) operator against a single un-parenthesized expression with or\nwithout quotes or against multiple parenthesized expressions. Examples:\n\n`fieldname eq unquoted literal`\n`fieldname eq 'single quoted literal'`\n`fieldname eq \"double quoted literal\"`\n`(fieldname1 eq literal) (fieldname2 ne \"literal\")`\n\nThe literal value is interpreted as a regular expression using GoogleRE2 library syntax.\nThe literal value must match the entire field.\n\nFor example, to filter for instances that do not end with name \"instance\",\nyou would use `name ne .*instance`.\n\nYou cannot combine constraints on multiple fields using regular\nexpressions.", "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`)", + "description": "The maximum number of results per page that should be returned.\nIf the number of available results is larger than `maxResults`,\nCompute Engine returns a `nextPageToken` that can be used to get\nthe next page of results in subsequent list requests. Acceptable values are\n`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. 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.", + "description": "Sorts list results by a certain order. By default, results\nare returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation\ntimestamp using `orderBy=\"creationTimestamp desc\"`. This sorts\nresults based on the `creationTimestamp` field in\nreverse chronological order (newest result first). Use this to sort\nresources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or\n`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.", + "description": "Specifies a page token to use. Set `pageToken` to the\n`nextPageToken` returned by a previous list request to get\nthe next page of results.", "location": "query", "type": "string" }, @@ -5980,7 +7052,7 @@ "type": "string" }, "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", + "description": "Opt-in for partial success behavior which provides partial results in case\nof failure. The default value is false.\n\nFor example, when partial success behavior is enabled, aggregatedList for a\nsingle zone scope either returns all resources in the zone or no resources,\nwith an error code.", "location": "query", "type": "boolean" } @@ -6024,7 +7096,7 @@ "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. 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).", + "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).", "location": "query", "type": "string" } @@ -6074,7 +7146,7 @@ ] }, "insert": { - "description": "Creates a global PublicDelegatedPrefix in the specified project using the parameters that are included in the request.", + "description": "Creates a global PublicDelegatedPrefix in the specified project using the\nparameters that are included in the request.", "flatPath": "projects/{project}/global/publicDelegatedPrefixes", "httpMethod": "POST", "id": "compute.globalPublicDelegatedPrefixes.insert", @@ -6090,7 +7162,7 @@ "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. 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).", + "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).", "location": "query", "type": "string" } @@ -6117,25 +7189,25 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` 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) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.", + "description": "A filter expression that filters resources listed in the response. Most\nCompute resources support two types of filter expressions:\nexpressions that support regular expressions and expressions that follow\nAPI improvement proposal AIP-160.\nThese two types of filter expressions cannot be mixed in one request.\n\nIf you want to use AIP-160, your expression must specify the field name, an\noperator, and the value that you want to use for filtering. The value\nmust be a string, a number, or a boolean. The operator\nmust be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`.\n\nFor example, if you are filtering Compute Engine instances, you can\nexclude instances named `example-instance` by specifying\n`name != example-instance`.\n\nThe `:*` comparison can be used to test whether a key has been defined.\nFor example, to find all objects with `owner` label use:\n```\nlabels.owner:*\n```\n\nYou can also filter nested fields. For example, you could specify\n`scheduling.automaticRestart = false` to include instances only\nif they are not scheduled for automatic restarts. You can use filtering\non nested fields to filter based onresource labels.\n\nTo filter on multiple expressions, provide each separate expression within\nparentheses. For example:\n```\n(scheduling.automaticRestart = true)\n(cpuPlatform = \"Intel Skylake\")\n```\nBy default, each expression is an `AND` expression. However, you\ncan include `AND` and `OR` expressions explicitly.\nFor example:\n```\n(cpuPlatform = \"Intel Skylake\") OR\n(cpuPlatform = \"Intel Broadwell\") AND\n(scheduling.automaticRestart = true)\n```\n\nIf you want to use a regular expression, use the `eq` (equal) or `ne`\n(not equal) operator against a single un-parenthesized expression with or\nwithout quotes or against multiple parenthesized expressions. Examples:\n\n`fieldname eq unquoted literal`\n`fieldname eq 'single quoted literal'`\n`fieldname eq \"double quoted literal\"`\n`(fieldname1 eq literal) (fieldname2 ne \"literal\")`\n\nThe literal value is interpreted as a regular expression using GoogleRE2 library syntax.\nThe literal value must match the entire field.\n\nFor example, to filter for instances that do not end with name \"instance\",\nyou would use `name ne .*instance`.\n\nYou cannot combine constraints on multiple fields using regular\nexpressions.", "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`)", + "description": "The maximum number of results per page that should be returned.\nIf the number of available results is larger than `maxResults`,\nCompute Engine returns a `nextPageToken` that can be used to get\nthe next page of results in subsequent list requests. Acceptable values are\n`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. 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.", + "description": "Sorts list results by a certain order. By default, results\nare returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation\ntimestamp using `orderBy=\"creationTimestamp desc\"`. This sorts\nresults based on the `creationTimestamp` field in\nreverse chronological order (newest result first). Use this to sort\nresources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or\n`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.", + "description": "Specifies a page token to use. Set `pageToken` to the\n`nextPageToken` returned by a previous list request to get\nthe next page of results.", "location": "query", "type": "string" }, @@ -6147,7 +7219,7 @@ "type": "string" }, "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", + "description": "Opt-in for partial success behavior which provides partial results in case\nof failure. The default value is false.\n\nFor example, when partial success behavior is enabled, aggregatedList for a\nsingle zone scope either returns all resources in the zone or no resources,\nwith an error code.", "location": "query", "type": "boolean" } @@ -6163,7 +7235,7 @@ ] }, "patch": { - "description": "Patches the specified global PublicDelegatedPrefix resource with the data included in the request. This method supports PATCH semantics and uses JSON merge patch format and processing rules.", + "description": "Patches the specified global PublicDelegatedPrefix resource with the data\nincluded in the request. This method supportsPATCH\nsemantics and usesJSON merge\npatch format and processing rules.", "flatPath": "projects/{project}/global/publicDelegatedPrefixes/{publicDelegatedPrefix}", "httpMethod": "PATCH", "id": "compute.globalPublicDelegatedPrefixes.patch", @@ -6187,7 +7259,7 @@ "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. 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).", + "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).", "location": "query", "type": "string" } @@ -6206,10 +7278,286 @@ } } }, + "globalVmExtensionPolicies": { + "methods": { + "aggregatedList": { + "description": "Retrieves the list of all VM Extension Policy resources\navailable to the specified project.\n\nTo prevent failure, it's recommended that you set the\n`returnPartialSuccess` parameter to `true`.", + "flatPath": "projects/{project}/aggregated/vmExtensionPolicies", + "httpMethod": "GET", + "id": "compute.globalVmExtensionPolicies.aggregatedList", + "parameterOrder": [ + "project" + ], + "parameters": { + "filter": { + "description": "A filter expression that filters resources listed in the response. Most\nCompute resources support two types of filter expressions:\nexpressions that support regular expressions and expressions that follow\nAPI improvement proposal AIP-160.\nThese two types of filter expressions cannot be mixed in one request.\n\nIf you want to use AIP-160, your expression must specify the field name, an\noperator, and the value that you want to use for filtering. The value\nmust be a string, a number, or a boolean. The operator\nmust be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`.\n\nFor example, if you are filtering Compute Engine instances, you can\nexclude instances named `example-instance` by specifying\n`name != example-instance`.\n\nThe `:*` comparison can be used to test whether a key has been defined.\nFor example, to find all objects with `owner` label use:\n```\nlabels.owner:*\n```\n\nYou can also filter nested fields. For example, you could specify\n`scheduling.automaticRestart = false` to include instances only\nif they are not scheduled for automatic restarts. You can use filtering\non nested fields to filter based onresource labels.\n\nTo filter on multiple expressions, provide each separate expression within\nparentheses. For example:\n```\n(scheduling.automaticRestart = true)\n(cpuPlatform = \"Intel Skylake\")\n```\nBy default, each expression is an `AND` expression. However, you\ncan include `AND` and `OR` expressions explicitly.\nFor example:\n```\n(cpuPlatform = \"Intel Skylake\") OR\n(cpuPlatform = \"Intel Broadwell\") AND\n(scheduling.automaticRestart = true)\n```\n\nIf you want to use a regular expression, use the `eq` (equal) or `ne`\n(not equal) operator against a single un-parenthesized expression with or\nwithout quotes or against multiple parenthesized expressions. Examples:\n\n`fieldname eq unquoted literal`\n`fieldname eq 'single quoted literal'`\n`fieldname eq \"double quoted literal\"`\n`(fieldname1 eq literal) (fieldname2 ne \"literal\")`\n\nThe literal value is interpreted as a regular expression using GoogleRE2 library syntax.\nThe literal value must match the entire field.\n\nFor example, to filter for instances that do not end with name \"instance\",\nyou would use `name ne .*instance`.\n\nYou cannot combine constraints on multiple fields using regular\nexpressions.", + "location": "query", + "type": "string" + }, + "includeAllScopes": { + "description": "Indicates whether every visible scope for each scope type (zone, region,\nglobal) should be included in the response. For new resource types added\nafter this field, the flag has no effect as new resource types will always\ninclude every visible scope for each scope type in response. For resource\ntypes which predate this field, if this flag is omitted or false, only\nscopes of the scope types where the resource type is expected to be found\nwill be included.", + "location": "query", + "type": "boolean" + }, + "maxResults": { + "default": "500", + "description": "The maximum number of results per page that should be returned.\nIf the number of available results is larger than `maxResults`,\nCompute Engine returns a `nextPageToken` that can be used to get\nthe next page of results in subsequent list requests. Acceptable values are\n`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\nare returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation\ntimestamp using `orderBy=\"creationTimestamp desc\"`. This sorts\nresults based on the `creationTimestamp` field in\nreverse chronological order (newest result first). Use this to sort\nresources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or\n`creationTimestamp desc` is supported.", + "location": "query", + "type": "string" + }, + "pageToken": { + "description": "Specifies a page token to use. Set `pageToken` to the\n`nextPageToken` returned by a previous list request to get\nthe next page of results.", + "location": "query", + "type": "string" + }, + "project": { + "description": "Name of the project scoping 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" + }, + "returnPartialSuccess": { + "description": "Opt-in for partial success behavior which provides partial results in case\nof failure. The default value is false.\n\nFor example, when partial success behavior is enabled, aggregatedList for a\nsingle zone scope either returns all resources in the zone or no resources,\nwith an error code.", + "location": "query", + "type": "boolean" + }, + "serviceProjectNumber": { + "description": "The Shared VPC service project id or service project number for which\naggregated list request is invoked for subnetworks list-usable api.", + "format": "int64", + "location": "query", + "type": "string" + } + }, + "path": "projects/{project}/aggregated/vmExtensionPolicies", + "response": { + "$ref": "VmExtensionPolicyAggregatedListResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ] + }, + "delete": { + "description": "Purge scoped resources (zonal policies) from a global VM extension\npolicy, and then delete the global VM extension policy. Purge of the scoped\nresources is a pre-condition of the global VM extension policy deletion.\nThe deletion of the global VM extension policy happens after the purge\nrollout is done, so it's not a part of the LRO. It's an automatic process\nthat triggers in the backend.", + "flatPath": "projects/{project}/global/vmExtensionPolicies/{globalVmExtensionPolicy}/delete", + "httpMethod": "POST", + "id": "compute.globalVmExtensionPolicies.delete", + "parameterOrder": [ + "project", + "globalVmExtensionPolicy" + ], + "parameters": { + "globalVmExtensionPolicy": { + "description": "Name of the global VM extension policy to purge scoped resources for.", + "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\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).", + "location": "query", + "type": "string" + } + }, + "path": "projects/{project}/global/vmExtensionPolicies/{globalVmExtensionPolicy}/delete", + "request": { + "$ref": "GlobalVmExtensionPolicyRolloutOperationRolloutInput" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ] + }, + "get": { + "description": "Gets details of a global VM extension policy.", + "flatPath": "projects/{project}/global/vmExtensionPolicies/{globalVmExtensionPolicy}", + "httpMethod": "GET", + "id": "compute.globalVmExtensionPolicies.get", + "parameterOrder": [ + "project", + "globalVmExtensionPolicy" + ], + "parameters": { + "globalVmExtensionPolicy": { + "description": "Name of the GlobalVmExtensionPolicy resource to return.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "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" + } + }, + "path": "projects/{project}/global/vmExtensionPolicies/{globalVmExtensionPolicy}", + "response": { + "$ref": "GlobalVmExtensionPolicy" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ] + }, + "insert": { + "description": "Creates a new project level GlobalVmExtensionPolicy.", + "flatPath": "projects/{project}/global/vmExtensionPolicies", + "httpMethod": "POST", + "id": "compute.globalVmExtensionPolicies.insert", + "parameterOrder": [ + "project" + ], + "parameters": { + "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\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).", + "location": "query", + "type": "string" + } + }, + "path": "projects/{project}/global/vmExtensionPolicies", + "request": { + "$ref": "GlobalVmExtensionPolicy" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ] + }, + "list": { + "description": "Lists global VM extension policies.", + "flatPath": "projects/{project}/global/vmExtensionPolicies", + "httpMethod": "GET", + "id": "compute.globalVmExtensionPolicies.list", + "parameterOrder": [ + "project" + ], + "parameters": { + "filter": { + "description": "A filter expression that filters resources listed in the response. Most\nCompute resources support two types of filter expressions:\nexpressions that support regular expressions and expressions that follow\nAPI improvement proposal AIP-160.\nThese two types of filter expressions cannot be mixed in one request.\n\nIf you want to use AIP-160, your expression must specify the field name, an\noperator, and the value that you want to use for filtering. The value\nmust be a string, a number, or a boolean. The operator\nmust be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`.\n\nFor example, if you are filtering Compute Engine instances, you can\nexclude instances named `example-instance` by specifying\n`name != example-instance`.\n\nThe `:*` comparison can be used to test whether a key has been defined.\nFor example, to find all objects with `owner` label use:\n```\nlabels.owner:*\n```\n\nYou can also filter nested fields. For example, you could specify\n`scheduling.automaticRestart = false` to include instances only\nif they are not scheduled for automatic restarts. You can use filtering\non nested fields to filter based onresource labels.\n\nTo filter on multiple expressions, provide each separate expression within\nparentheses. For example:\n```\n(scheduling.automaticRestart = true)\n(cpuPlatform = \"Intel Skylake\")\n```\nBy default, each expression is an `AND` expression. However, you\ncan include `AND` and `OR` expressions explicitly.\nFor example:\n```\n(cpuPlatform = \"Intel Skylake\") OR\n(cpuPlatform = \"Intel Broadwell\") AND\n(scheduling.automaticRestart = true)\n```\n\nIf you want to use a regular expression, use the `eq` (equal) or `ne`\n(not equal) operator against a single un-parenthesized expression with or\nwithout quotes or against multiple parenthesized expressions. Examples:\n\n`fieldname eq unquoted literal`\n`fieldname eq 'single quoted literal'`\n`fieldname eq \"double quoted literal\"`\n`(fieldname1 eq literal) (fieldname2 ne \"literal\")`\n\nThe literal value is interpreted as a regular expression using GoogleRE2 library syntax.\nThe literal value must match the entire field.\n\nFor example, to filter for instances that do not end with name \"instance\",\nyou would use `name ne .*instance`.\n\nYou cannot combine constraints on multiple fields using regular\nexpressions.", + "location": "query", + "type": "string" + }, + "maxResults": { + "default": "500", + "description": "The maximum number of results per page that should be returned.\nIf the number of available results is larger than `maxResults`,\nCompute Engine returns a `nextPageToken` that can be used to get\nthe next page of results in subsequent list requests. Acceptable values are\n`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\nare returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation\ntimestamp using `orderBy=\"creationTimestamp desc\"`. This sorts\nresults based on the `creationTimestamp` field in\nreverse chronological order (newest result first). Use this to sort\nresources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or\n`creationTimestamp desc` is supported.", + "location": "query", + "type": "string" + }, + "pageToken": { + "description": "Specifies a page token to use. Set `pageToken` to the\n`nextPageToken` returned by a previous list request to get\nthe 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" + }, + "returnPartialSuccess": { + "description": "Opt-in for partial success behavior which provides partial results in case\nof failure. The default value is false.\n\nFor example, when partial success behavior is enabled, aggregatedList for a\nsingle zone scope either returns all resources in the zone or no resources,\nwith an error code.", + "location": "query", + "type": "boolean" + } + }, + "path": "projects/{project}/global/vmExtensionPolicies", + "response": { + "$ref": "GlobalVmExtensionPolicyList" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ] + }, + "update": { + "description": "Updates a global VM extension policy.", + "flatPath": "projects/{project}/global/vmExtensionPolicies/{globalVmExtensionPolicy}", + "httpMethod": "PATCH", + "id": "compute.globalVmExtensionPolicies.update", + "parameterOrder": [ + "project", + "globalVmExtensionPolicy" + ], + "parameters": { + "globalVmExtensionPolicy": { + "description": "Name of the global VM extension policy to update.", + "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\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).", + "location": "query", + "type": "string" + } + }, + "path": "projects/{project}/global/vmExtensionPolicies/{globalVmExtensionPolicy}", + "request": { + "$ref": "GlobalVmExtensionPolicy" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ] + } + } + }, "healthChecks": { "methods": { "aggregatedList": { - "description": "Retrieves the list of all HealthCheck resources, regional and global, available to the specified project. To prevent failure, Google recommends that you set the `returnPartialSuccess` parameter to `true`.", + "description": "Retrieves the list of all HealthCheck resources, regional and global,\navailable to the specified project.\n\nTo prevent failure, Google recommends that you set the\n`returnPartialSuccess` parameter to `true`.", "flatPath": "projects/{project}/aggregated/healthChecks", "httpMethod": "GET", "id": "compute.healthChecks.aggregatedList", @@ -6218,30 +7566,30 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` 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) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.", + "description": "A filter expression that filters resources listed in the response. Most\nCompute resources support two types of filter expressions:\nexpressions that support regular expressions and expressions that follow\nAPI improvement proposal AIP-160.\nThese two types of filter expressions cannot be mixed in one request.\n\nIf you want to use AIP-160, your expression must specify the field name, an\noperator, and the value that you want to use for filtering. The value\nmust be a string, a number, or a boolean. The operator\nmust be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`.\n\nFor example, if you are filtering Compute Engine instances, you can\nexclude instances named `example-instance` by specifying\n`name != example-instance`.\n\nThe `:*` comparison can be used to test whether a key has been defined.\nFor example, to find all objects with `owner` label use:\n```\nlabels.owner:*\n```\n\nYou can also filter nested fields. For example, you could specify\n`scheduling.automaticRestart = false` to include instances only\nif they are not scheduled for automatic restarts. You can use filtering\non nested fields to filter based onresource labels.\n\nTo filter on multiple expressions, provide each separate expression within\nparentheses. For example:\n```\n(scheduling.automaticRestart = true)\n(cpuPlatform = \"Intel Skylake\")\n```\nBy default, each expression is an `AND` expression. However, you\ncan include `AND` and `OR` expressions explicitly.\nFor example:\n```\n(cpuPlatform = \"Intel Skylake\") OR\n(cpuPlatform = \"Intel Broadwell\") AND\n(scheduling.automaticRestart = true)\n```\n\nIf you want to use a regular expression, use the `eq` (equal) or `ne`\n(not equal) operator against a single un-parenthesized expression with or\nwithout quotes or against multiple parenthesized expressions. Examples:\n\n`fieldname eq unquoted literal`\n`fieldname eq 'single quoted literal'`\n`fieldname eq \"double quoted literal\"`\n`(fieldname1 eq literal) (fieldname2 ne \"literal\")`\n\nThe literal value is interpreted as a regular expression using GoogleRE2 library syntax.\nThe literal value must match the entire field.\n\nFor example, to filter for instances that do not end with name \"instance\",\nyou would use `name ne .*instance`.\n\nYou cannot combine constraints on multiple fields using regular\nexpressions.", "location": "query", "type": "string" }, "includeAllScopes": { - "description": "Indicates whether every visible scope for each scope type (zone, region, global) should be included in the response. For new resource types added after this field, the flag has no effect as new resource types will always include every visible scope for each scope type in response. For resource types which predate this field, if this flag is omitted or false, only scopes of the scope types where the resource type is expected to be found will be included.", + "description": "Indicates whether every visible scope for each scope type (zone, region,\nglobal) should be included in the response. For new resource types added\nafter this field, the flag has no effect as new resource types will always\ninclude every visible scope for each scope type in response. For resource\ntypes which predate this field, if this flag is omitted or false, only\nscopes of the scope types where the resource type is expected to be found\nwill be included.", "location": "query", "type": "boolean" }, "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`)", + "description": "The maximum number of results per page that should be returned.\nIf the number of available results is larger than `maxResults`,\nCompute Engine returns a `nextPageToken` that can be used to get\nthe next page of results in subsequent list requests. Acceptable values are\n`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. 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.", + "description": "Sorts list results by a certain order. By default, results\nare returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation\ntimestamp using `orderBy=\"creationTimestamp desc\"`. This sorts\nresults based on the `creationTimestamp` field in\nreverse chronological order (newest result first). Use this to sort\nresources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or\n`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.", + "description": "Specifies a page token to use. Set `pageToken` to the\n`nextPageToken` returned by a previous list request to get\nthe next page of results.", "location": "query", "type": "string" }, @@ -6253,12 +7601,12 @@ "type": "string" }, "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", + "description": "Opt-in for partial success behavior which provides partial results in case\nof failure. The default value is false.\n\nFor example, when partial success behavior is enabled, aggregatedList for a\nsingle zone scope either returns all resources in the zone or no resources,\nwith an error code.", "location": "query", "type": "boolean" }, "serviceProjectNumber": { - "description": "The Shared VPC service project id or service project number for which aggregated list request is invoked for subnetworks list-usable api.", + "description": "The Shared VPC service project id or service project number for which\naggregated list request is invoked for subnetworks list-usable api.", "format": "int64", "location": "query", "type": "string" @@ -6299,7 +7647,7 @@ "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. 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).", + "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).", "location": "query", "type": "string" } @@ -6349,7 +7697,7 @@ ] }, "insert": { - "description": "Creates a HealthCheck resource in the specified project using the data included in the request.", + "description": "Creates a HealthCheck resource in the specified project using the data\nincluded in the request.", "flatPath": "projects/{project}/global/healthChecks", "httpMethod": "POST", "id": "compute.healthChecks.insert", @@ -6365,7 +7713,7 @@ "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. 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).", + "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).", "location": "query", "type": "string" } @@ -6383,7 +7731,7 @@ ] }, "list": { - "description": "Retrieves the list of HealthCheck resources available to the specified project.", + "description": "Retrieves the list of HealthCheck resources available to the specified\nproject.", "flatPath": "projects/{project}/global/healthChecks", "httpMethod": "GET", "id": "compute.healthChecks.list", @@ -6392,25 +7740,25 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` 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) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.", + "description": "A filter expression that filters resources listed in the response. Most\nCompute resources support two types of filter expressions:\nexpressions that support regular expressions and expressions that follow\nAPI improvement proposal AIP-160.\nThese two types of filter expressions cannot be mixed in one request.\n\nIf you want to use AIP-160, your expression must specify the field name, an\noperator, and the value that you want to use for filtering. The value\nmust be a string, a number, or a boolean. The operator\nmust be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`.\n\nFor example, if you are filtering Compute Engine instances, you can\nexclude instances named `example-instance` by specifying\n`name != example-instance`.\n\nThe `:*` comparison can be used to test whether a key has been defined.\nFor example, to find all objects with `owner` label use:\n```\nlabels.owner:*\n```\n\nYou can also filter nested fields. For example, you could specify\n`scheduling.automaticRestart = false` to include instances only\nif they are not scheduled for automatic restarts. You can use filtering\non nested fields to filter based onresource labels.\n\nTo filter on multiple expressions, provide each separate expression within\nparentheses. For example:\n```\n(scheduling.automaticRestart = true)\n(cpuPlatform = \"Intel Skylake\")\n```\nBy default, each expression is an `AND` expression. However, you\ncan include `AND` and `OR` expressions explicitly.\nFor example:\n```\n(cpuPlatform = \"Intel Skylake\") OR\n(cpuPlatform = \"Intel Broadwell\") AND\n(scheduling.automaticRestart = true)\n```\n\nIf you want to use a regular expression, use the `eq` (equal) or `ne`\n(not equal) operator against a single un-parenthesized expression with or\nwithout quotes or against multiple parenthesized expressions. Examples:\n\n`fieldname eq unquoted literal`\n`fieldname eq 'single quoted literal'`\n`fieldname eq \"double quoted literal\"`\n`(fieldname1 eq literal) (fieldname2 ne \"literal\")`\n\nThe literal value is interpreted as a regular expression using GoogleRE2 library syntax.\nThe literal value must match the entire field.\n\nFor example, to filter for instances that do not end with name \"instance\",\nyou would use `name ne .*instance`.\n\nYou cannot combine constraints on multiple fields using regular\nexpressions.", "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`)", + "description": "The maximum number of results per page that should be returned.\nIf the number of available results is larger than `maxResults`,\nCompute Engine returns a `nextPageToken` that can be used to get\nthe next page of results in subsequent list requests. Acceptable values are\n`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. 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.", + "description": "Sorts list results by a certain order. By default, results\nare returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation\ntimestamp using `orderBy=\"creationTimestamp desc\"`. This sorts\nresults based on the `creationTimestamp` field in\nreverse chronological order (newest result first). Use this to sort\nresources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or\n`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.", + "description": "Specifies a page token to use. Set `pageToken` to the\n`nextPageToken` returned by a previous list request to get\nthe next page of results.", "location": "query", "type": "string" }, @@ -6422,7 +7770,7 @@ "type": "string" }, "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", + "description": "Opt-in for partial success behavior which provides partial results in case\nof failure. The default value is false.\n\nFor example, when partial success behavior is enabled, aggregatedList for a\nsingle zone scope either returns all resources in the zone or no resources,\nwith an error code.", "location": "query", "type": "boolean" } @@ -6438,7 +7786,7 @@ ] }, "patch": { - "description": "Updates a HealthCheck resource in the specified project using the data included in the request. This method supports PATCH semantics and uses the JSON merge patch format and processing rules.", + "description": "Updates a HealthCheck resource in the specified project using the data\nincluded in the request. This method supportsPATCH\nsemantics and uses theJSON merge\npatch format and processing rules.", "flatPath": "projects/{project}/global/healthChecks/{healthCheck}", "httpMethod": "PATCH", "id": "compute.healthChecks.patch", @@ -6462,7 +7810,7 @@ "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. 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).", + "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).", "location": "query", "type": "string" } @@ -6479,8 +7827,46 @@ "https://www.googleapis.com/auth/compute" ] }, + "testIamPermissions": { + "description": "Returns permissions that a caller has on the specified resource.", + "flatPath": "projects/{project}/global/healthChecks/{resource}/testIamPermissions", + "httpMethod": "POST", + "id": "compute.healthChecks.testIamPermissions", + "parameterOrder": [ + "project", + "resource" + ], + "parameters": { + "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" + }, + "resource": { + "description": "Name or id of the resource for this request.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "required": true, + "type": "string" + } + }, + "path": "projects/{project}/global/healthChecks/{resource}/testIamPermissions", + "request": { + "$ref": "TestPermissionsRequest" + }, + "response": { + "$ref": "TestPermissionsResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ] + }, "update": { - "description": "Updates a HealthCheck resource in the specified project using the data included in the request.", + "description": "Updates a HealthCheck resource in the specified project using the data\nincluded in the request.", "flatPath": "projects/{project}/global/healthChecks/{healthCheck}", "httpMethod": "PUT", "id": "compute.healthChecks.update", @@ -6504,7 +7890,7 @@ "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. 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).", + "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).", "location": "query", "type": "string" } @@ -6550,7 +7936,7 @@ "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. 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).", + "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).", "location": "query", "type": "string" } @@ -6600,7 +7986,7 @@ ] }, "insert": { - "description": "Creates a HttpHealthCheck resource in the specified project using the data included in the request.", + "description": "Creates a HttpHealthCheck resource in the specified project using the data\nincluded in the request.", "flatPath": "projects/{project}/global/httpHealthChecks", "httpMethod": "POST", "id": "compute.httpHealthChecks.insert", @@ -6616,7 +8002,7 @@ "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. 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).", + "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).", "location": "query", "type": "string" } @@ -6634,7 +8020,7 @@ ] }, "list": { - "description": "Retrieves the list of HttpHealthCheck resources available to the specified project.", + "description": "Retrieves the list of HttpHealthCheck resources available to the specified\nproject.", "flatPath": "projects/{project}/global/httpHealthChecks", "httpMethod": "GET", "id": "compute.httpHealthChecks.list", @@ -6643,25 +8029,25 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` 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) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.", + "description": "A filter expression that filters resources listed in the response. Most\nCompute resources support two types of filter expressions:\nexpressions that support regular expressions and expressions that follow\nAPI improvement proposal AIP-160.\nThese two types of filter expressions cannot be mixed in one request.\n\nIf you want to use AIP-160, your expression must specify the field name, an\noperator, and the value that you want to use for filtering. The value\nmust be a string, a number, or a boolean. The operator\nmust be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`.\n\nFor example, if you are filtering Compute Engine instances, you can\nexclude instances named `example-instance` by specifying\n`name != example-instance`.\n\nThe `:*` comparison can be used to test whether a key has been defined.\nFor example, to find all objects with `owner` label use:\n```\nlabels.owner:*\n```\n\nYou can also filter nested fields. For example, you could specify\n`scheduling.automaticRestart = false` to include instances only\nif they are not scheduled for automatic restarts. You can use filtering\non nested fields to filter based onresource labels.\n\nTo filter on multiple expressions, provide each separate expression within\nparentheses. For example:\n```\n(scheduling.automaticRestart = true)\n(cpuPlatform = \"Intel Skylake\")\n```\nBy default, each expression is an `AND` expression. However, you\ncan include `AND` and `OR` expressions explicitly.\nFor example:\n```\n(cpuPlatform = \"Intel Skylake\") OR\n(cpuPlatform = \"Intel Broadwell\") AND\n(scheduling.automaticRestart = true)\n```\n\nIf you want to use a regular expression, use the `eq` (equal) or `ne`\n(not equal) operator against a single un-parenthesized expression with or\nwithout quotes or against multiple parenthesized expressions. Examples:\n\n`fieldname eq unquoted literal`\n`fieldname eq 'single quoted literal'`\n`fieldname eq \"double quoted literal\"`\n`(fieldname1 eq literal) (fieldname2 ne \"literal\")`\n\nThe literal value is interpreted as a regular expression using GoogleRE2 library syntax.\nThe literal value must match the entire field.\n\nFor example, to filter for instances that do not end with name \"instance\",\nyou would use `name ne .*instance`.\n\nYou cannot combine constraints on multiple fields using regular\nexpressions.", "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`)", + "description": "The maximum number of results per page that should be returned.\nIf the number of available results is larger than `maxResults`,\nCompute Engine returns a `nextPageToken` that can be used to get\nthe next page of results in subsequent list requests. Acceptable values are\n`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. 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.", + "description": "Sorts list results by a certain order. By default, results\nare returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation\ntimestamp using `orderBy=\"creationTimestamp desc\"`. This sorts\nresults based on the `creationTimestamp` field in\nreverse chronological order (newest result first). Use this to sort\nresources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or\n`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.", + "description": "Specifies a page token to use. Set `pageToken` to the\n`nextPageToken` returned by a previous list request to get\nthe next page of results.", "location": "query", "type": "string" }, @@ -6673,7 +8059,7 @@ "type": "string" }, "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", + "description": "Opt-in for partial success behavior which provides partial results in case\nof failure. The default value is false.\n\nFor example, when partial success behavior is enabled, aggregatedList for a\nsingle zone scope either returns all resources in the zone or no resources,\nwith an error code.", "location": "query", "type": "boolean" } @@ -6689,7 +8075,7 @@ ] }, "patch": { - "description": "Updates a HttpHealthCheck resource in the specified project using the data included in the request. This method supports PATCH semantics and uses the JSON merge patch format and processing rules.", + "description": "Updates a HttpHealthCheck resource in the specified project using the data\nincluded in the request. This method supportsPATCH\nsemantics and uses theJSON merge\npatch format and processing rules.", "flatPath": "projects/{project}/global/httpHealthChecks/{httpHealthCheck}", "httpMethod": "PATCH", "id": "compute.httpHealthChecks.patch", @@ -6713,7 +8099,7 @@ "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. 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).", + "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).", "location": "query", "type": "string" } @@ -6730,8 +8116,46 @@ "https://www.googleapis.com/auth/compute" ] }, + "testIamPermissions": { + "description": "Returns permissions that a caller has on the specified resource.", + "flatPath": "projects/{project}/global/httpHealthChecks/{resource}/testIamPermissions", + "httpMethod": "POST", + "id": "compute.httpHealthChecks.testIamPermissions", + "parameterOrder": [ + "project", + "resource" + ], + "parameters": { + "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" + }, + "resource": { + "description": "Name or id of the resource for this request.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "required": true, + "type": "string" + } + }, + "path": "projects/{project}/global/httpHealthChecks/{resource}/testIamPermissions", + "request": { + "$ref": "TestPermissionsRequest" + }, + "response": { + "$ref": "TestPermissionsResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ] + }, "update": { - "description": "Updates a HttpHealthCheck resource in the specified project using the data included in the request.", + "description": "Updates a HttpHealthCheck resource in the specified project using the data\nincluded in the request.", "flatPath": "projects/{project}/global/httpHealthChecks/{httpHealthCheck}", "httpMethod": "PUT", "id": "compute.httpHealthChecks.update", @@ -6755,7 +8179,7 @@ "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. 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).", + "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).", "location": "query", "type": "string" } @@ -6801,7 +8225,7 @@ "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. 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).", + "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).", "location": "query", "type": "string" } @@ -6851,7 +8275,7 @@ ] }, "insert": { - "description": "Creates a HttpsHealthCheck resource in the specified project using the data included in the request.", + "description": "Creates a HttpsHealthCheck resource in the specified project using the data\nincluded in the request.", "flatPath": "projects/{project}/global/httpsHealthChecks", "httpMethod": "POST", "id": "compute.httpsHealthChecks.insert", @@ -6867,7 +8291,7 @@ "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. 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).", + "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).", "location": "query", "type": "string" } @@ -6885,7 +8309,7 @@ ] }, "list": { - "description": "Retrieves the list of HttpsHealthCheck resources available to the specified project.", + "description": "Retrieves the list of HttpsHealthCheck resources available to the specified\nproject.", "flatPath": "projects/{project}/global/httpsHealthChecks", "httpMethod": "GET", "id": "compute.httpsHealthChecks.list", @@ -6894,25 +8318,25 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` 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) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.", + "description": "A filter expression that filters resources listed in the response. Most\nCompute resources support two types of filter expressions:\nexpressions that support regular expressions and expressions that follow\nAPI improvement proposal AIP-160.\nThese two types of filter expressions cannot be mixed in one request.\n\nIf you want to use AIP-160, your expression must specify the field name, an\noperator, and the value that you want to use for filtering. The value\nmust be a string, a number, or a boolean. The operator\nmust be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`.\n\nFor example, if you are filtering Compute Engine instances, you can\nexclude instances named `example-instance` by specifying\n`name != example-instance`.\n\nThe `:*` comparison can be used to test whether a key has been defined.\nFor example, to find all objects with `owner` label use:\n```\nlabels.owner:*\n```\n\nYou can also filter nested fields. For example, you could specify\n`scheduling.automaticRestart = false` to include instances only\nif they are not scheduled for automatic restarts. You can use filtering\non nested fields to filter based onresource labels.\n\nTo filter on multiple expressions, provide each separate expression within\nparentheses. For example:\n```\n(scheduling.automaticRestart = true)\n(cpuPlatform = \"Intel Skylake\")\n```\nBy default, each expression is an `AND` expression. However, you\ncan include `AND` and `OR` expressions explicitly.\nFor example:\n```\n(cpuPlatform = \"Intel Skylake\") OR\n(cpuPlatform = \"Intel Broadwell\") AND\n(scheduling.automaticRestart = true)\n```\n\nIf you want to use a regular expression, use the `eq` (equal) or `ne`\n(not equal) operator against a single un-parenthesized expression with or\nwithout quotes or against multiple parenthesized expressions. Examples:\n\n`fieldname eq unquoted literal`\n`fieldname eq 'single quoted literal'`\n`fieldname eq \"double quoted literal\"`\n`(fieldname1 eq literal) (fieldname2 ne \"literal\")`\n\nThe literal value is interpreted as a regular expression using GoogleRE2 library syntax.\nThe literal value must match the entire field.\n\nFor example, to filter for instances that do not end with name \"instance\",\nyou would use `name ne .*instance`.\n\nYou cannot combine constraints on multiple fields using regular\nexpressions.", "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`)", + "description": "The maximum number of results per page that should be returned.\nIf the number of available results is larger than `maxResults`,\nCompute Engine returns a `nextPageToken` that can be used to get\nthe next page of results in subsequent list requests. Acceptable values are\n`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. 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.", + "description": "Sorts list results by a certain order. By default, results\nare returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation\ntimestamp using `orderBy=\"creationTimestamp desc\"`. This sorts\nresults based on the `creationTimestamp` field in\nreverse chronological order (newest result first). Use this to sort\nresources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or\n`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.", + "description": "Specifies a page token to use. Set `pageToken` to the\n`nextPageToken` returned by a previous list request to get\nthe next page of results.", "location": "query", "type": "string" }, @@ -6924,7 +8348,7 @@ "type": "string" }, "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", + "description": "Opt-in for partial success behavior which provides partial results in case\nof failure. The default value is false.\n\nFor example, when partial success behavior is enabled, aggregatedList for a\nsingle zone scope either returns all resources in the zone or no resources,\nwith an error code.", "location": "query", "type": "boolean" } @@ -6940,7 +8364,7 @@ ] }, "patch": { - "description": "Updates a HttpsHealthCheck resource in the specified project using the data included in the request. This method supports PATCH semantics and uses the JSON merge patch format and processing rules.", + "description": "Updates a HttpsHealthCheck resource in the specified project using the data\nincluded in the request. This method supportsPATCH\nsemantics and uses theJSON merge\npatch format and processing rules.", "flatPath": "projects/{project}/global/httpsHealthChecks/{httpsHealthCheck}", "httpMethod": "PATCH", "id": "compute.httpsHealthChecks.patch", @@ -6964,7 +8388,7 @@ "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. 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).", + "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).", "location": "query", "type": "string" } @@ -6981,8 +8405,46 @@ "https://www.googleapis.com/auth/compute" ] }, + "testIamPermissions": { + "description": "Returns permissions that a caller has on the specified resource.", + "flatPath": "projects/{project}/global/httpsHealthChecks/{resource}/testIamPermissions", + "httpMethod": "POST", + "id": "compute.httpsHealthChecks.testIamPermissions", + "parameterOrder": [ + "project", + "resource" + ], + "parameters": { + "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" + }, + "resource": { + "description": "Name or id of the resource for this request.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "required": true, + "type": "string" + } + }, + "path": "projects/{project}/global/httpsHealthChecks/{resource}/testIamPermissions", + "request": { + "$ref": "TestPermissionsRequest" + }, + "response": { + "$ref": "TestPermissionsResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ] + }, "update": { - "description": "Updates a HttpsHealthCheck resource in the specified project using the data included in the request.", + "description": "Updates a HttpsHealthCheck resource in the specified project using the data\nincluded in the request.", "flatPath": "projects/{project}/global/httpsHealthChecks/{httpsHealthCheck}", "httpMethod": "PUT", "id": "compute.httpsHealthChecks.update", @@ -7006,7 +8468,7 @@ "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. 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).", + "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).", "location": "query", "type": "string" } @@ -7028,7 +8490,7 @@ "imageFamilyViews": { "methods": { "get": { - "description": "Returns the latest image that is part of an image family, is not deprecated and is rolled out in the specified zone.", + "description": "Returns the latest image that is part of an image family, is not\ndeprecated and is rolled out in the specified zone.", "flatPath": "projects/{project}/zones/{zone}/imageFamilyViews/{family}", "httpMethod": "GET", "id": "compute.imageFamilyViews.get", @@ -7099,7 +8561,7 @@ "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. 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).", + "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).", "location": "query", "type": "string" } @@ -7114,7 +8576,7 @@ ] }, "deprecate": { - "description": "Sets the deprecation status of an image. If an empty request body is given, clears the deprecation status instead.", + "description": "Sets the deprecation status of an image.\n\nIf an empty request body is given, clears the deprecation status instead.", "flatPath": "projects/{project}/global/images/{image}/deprecate", "httpMethod": "POST", "id": "compute.images.deprecate", @@ -7138,7 +8600,7 @@ "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. 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).", + "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).", "location": "query", "type": "string" } @@ -7191,7 +8653,7 @@ ] }, "getFromFamily": { - "description": "Returns the latest image that is part of an image family and is not deprecated. For more information on image families, see Public image families documentation.", + "description": "Returns the latest image that is part of an image family and is not\ndeprecated. For more information on image families, seePublic\nimage families documentation.", "flatPath": "projects/{project}/global/images/family/{family}", "httpMethod": "GET", "id": "compute.images.getFromFamily", @@ -7208,7 +8670,7 @@ "type": "string" }, "project": { - "description": "The image project that the image belongs to. For example, to get a CentOS image, specify centos-cloud as the image project.", + "description": "The image project that the image belongs to. For example, to get a CentOS\nimage, specify centos-cloud as the image project.", "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, @@ -7226,7 +8688,7 @@ ] }, "getIamPolicy": { - "description": "Gets the access control policy for a resource. May be empty if no such policy or resource exists.", + "description": "Gets the access control policy for a resource. May be empty if no such\npolicy or resource exists.", "flatPath": "projects/{project}/global/images/{resource}/getIamPolicy", "httpMethod": "GET", "id": "compute.images.getIamPolicy", @@ -7267,7 +8729,7 @@ ] }, "insert": { - "description": "Creates an image in the specified project using the data included in the request.", + "description": "Creates an image in the specified project using the data included\nin the request.", "flatPath": "projects/{project}/global/images", "httpMethod": "POST", "id": "compute.images.insert", @@ -7288,7 +8750,7 @@ "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. 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).", + "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).", "location": "query", "type": "string" } @@ -7302,14 +8764,11 @@ }, "scopes": [ "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/devstorage.full_control", - "https://www.googleapis.com/auth/devstorage.read_only", - "https://www.googleapis.com/auth/devstorage.read_write" + "https://www.googleapis.com/auth/compute" ] }, "list": { - "description": "Retrieves the list of custom images available to the specified project. Custom images are images you create that belong to your project. This method does not get any images that belong to other projects, including publicly-available images, like Debian 8. If you want to get a list of publicly-available images, use this method to make a request to the respective image project, such as debian-cloud or windows-cloud.", + "description": "Retrieves the list of custom images\navailable to the specified project. Custom images are images you\ncreate that belong to your project. This method does not\nget any images that belong to other projects, including publicly-available\nimages, like Debian 8. If you want to get a list of publicly-available\nimages, use this method to make a request to the respective image project,\nsuch as debian-cloud or windows-cloud.", "flatPath": "projects/{project}/global/images", "httpMethod": "GET", "id": "compute.images.list", @@ -7318,25 +8777,25 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` 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) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.", + "description": "A filter expression that filters resources listed in the response. Most\nCompute resources support two types of filter expressions:\nexpressions that support regular expressions and expressions that follow\nAPI improvement proposal AIP-160.\nThese two types of filter expressions cannot be mixed in one request.\n\nIf you want to use AIP-160, your expression must specify the field name, an\noperator, and the value that you want to use for filtering. The value\nmust be a string, a number, or a boolean. The operator\nmust be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`.\n\nFor example, if you are filtering Compute Engine instances, you can\nexclude instances named `example-instance` by specifying\n`name != example-instance`.\n\nThe `:*` comparison can be used to test whether a key has been defined.\nFor example, to find all objects with `owner` label use:\n```\nlabels.owner:*\n```\n\nYou can also filter nested fields. For example, you could specify\n`scheduling.automaticRestart = false` to include instances only\nif they are not scheduled for automatic restarts. You can use filtering\non nested fields to filter based onresource labels.\n\nTo filter on multiple expressions, provide each separate expression within\nparentheses. For example:\n```\n(scheduling.automaticRestart = true)\n(cpuPlatform = \"Intel Skylake\")\n```\nBy default, each expression is an `AND` expression. However, you\ncan include `AND` and `OR` expressions explicitly.\nFor example:\n```\n(cpuPlatform = \"Intel Skylake\") OR\n(cpuPlatform = \"Intel Broadwell\") AND\n(scheduling.automaticRestart = true)\n```\n\nIf you want to use a regular expression, use the `eq` (equal) or `ne`\n(not equal) operator against a single un-parenthesized expression with or\nwithout quotes or against multiple parenthesized expressions. Examples:\n\n`fieldname eq unquoted literal`\n`fieldname eq 'single quoted literal'`\n`fieldname eq \"double quoted literal\"`\n`(fieldname1 eq literal) (fieldname2 ne \"literal\")`\n\nThe literal value is interpreted as a regular expression using GoogleRE2 library syntax.\nThe literal value must match the entire field.\n\nFor example, to filter for instances that do not end with name \"instance\",\nyou would use `name ne .*instance`.\n\nYou cannot combine constraints on multiple fields using regular\nexpressions.", "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`)", + "description": "The maximum number of results per page that should be returned.\nIf the number of available results is larger than `maxResults`,\nCompute Engine returns a `nextPageToken` that can be used to get\nthe next page of results in subsequent list requests. Acceptable values are\n`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. 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.", + "description": "Sorts list results by a certain order. By default, results\nare returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation\ntimestamp using `orderBy=\"creationTimestamp desc\"`. This sorts\nresults based on the `creationTimestamp` field in\nreverse chronological order (newest result first). Use this to sort\nresources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or\n`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.", + "description": "Specifies a page token to use. Set `pageToken` to the\n`nextPageToken` returned by a previous list request to get\nthe next page of results.", "location": "query", "type": "string" }, @@ -7348,7 +8807,7 @@ "type": "string" }, "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", + "description": "Opt-in for partial success behavior which provides partial results in case\nof failure. The default value is false.\n\nFor example, when partial success behavior is enabled, aggregatedList for a\nsingle zone scope either returns all resources in the zone or no resources,\nwith an error code.", "location": "query", "type": "boolean" } @@ -7364,7 +8823,7 @@ ] }, "patch": { - "description": "Patches the specified image with the data included in the request. Only the following fields can be modified: family, description, deprecation status.", + "description": "Patches the specified image with the data included in the request.\nOnly the following fields can be modified: family, description,\ndeprecation status.", "flatPath": "projects/{project}/global/images/{image}", "httpMethod": "PATCH", "id": "compute.images.patch", @@ -7388,7 +8847,7 @@ "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. 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).", + "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).", "location": "query", "type": "string" } @@ -7406,7 +8865,7 @@ ] }, "setIamPolicy": { - "description": "Sets the access control policy on the specified resource. Replaces any existing policy.", + "description": "Sets the access control policy on the specified resource.\nReplaces any existing policy.", "flatPath": "projects/{project}/global/images/{resource}/setIamPolicy", "httpMethod": "POST", "id": "compute.images.setIamPolicy", @@ -7443,7 +8902,7 @@ ] }, "setLabels": { - "description": "Sets the labels on an image. To learn more about labels, read the Labeling Resources documentation.", + "description": "Sets the labels on an image. To learn more about labels, read theLabeling\nResources documentation.", "flatPath": "projects/{project}/global/images/{resource}/setLabels", "httpMethod": "POST", "id": "compute.images.setLabels", @@ -7522,7 +8981,7 @@ "instanceGroupManagerResizeRequests": { "methods": { "cancel": { - "description": "Cancels the specified resize request and removes it from the queue. Cancelled resize request does no longer wait for the resources to be provisioned. Cancel is only possible for requests that are accepted in the queue.", + "description": "Cancels the specified resize request and removes it from the queue.\nCancelled resize request does no longer wait for the resources to be\nprovisioned. Cancel is only possible for requests that are accepted in the\nqueue.", "flatPath": "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/resizeRequests/{resizeRequest}/cancel", "httpMethod": "POST", "id": "compute.instanceGroupManagerResizeRequests.cancel", @@ -7534,7 +8993,7 @@ ], "parameters": { "instanceGroupManager": { - "description": "The name of the managed instance group. The name should conform to RFC1035 or be a resource ID.", + "description": "The name of the managed instance group.\nThe name should conform to RFC1035 or be a resource ID.", "location": "path", "required": true, "type": "string" @@ -7547,18 +9006,18 @@ "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. 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).", + "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).", "location": "query", "type": "string" }, "resizeRequest": { - "description": "The name of the resize request to cancel. The name should conform to RFC1035 or be a resource ID.", + "description": "The name of the resize request to cancel.\nThe name should conform to RFC1035 or be a resource ID.", "location": "path", "required": true, "type": "string" }, "zone": { - "description": "The name of the zone where the managed instance group is located. The name should conform to RFC1035.", + "description": "The name of thezone where the managed\ninstance group is located. The name should conform to RFC1035.", "location": "path", "required": true, "type": "string" @@ -7574,7 +9033,7 @@ ] }, "delete": { - "description": "Deletes the specified, inactive resize request. Requests that are still active cannot be deleted. Deleting request does not delete instances that were provisioned previously.", + "description": "Deletes the specified, inactive resize request. Requests that are still\nactive cannot be deleted. Deleting request does not delete instances that\nwere provisioned previously.", "flatPath": "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/resizeRequests/{resizeRequest}", "httpMethod": "DELETE", "id": "compute.instanceGroupManagerResizeRequests.delete", @@ -7586,7 +9045,7 @@ ], "parameters": { "instanceGroupManager": { - "description": "The name of the managed instance group. The name should conform to RFC1035 or be a resource ID.", + "description": "The name of the managed instance group.\nThe name should conform to RFC1035 or be a resource ID.", "location": "path", "required": true, "type": "string" @@ -7599,18 +9058,18 @@ "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. 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).", + "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).", "location": "query", "type": "string" }, "resizeRequest": { - "description": "The name of the resize request to delete. The name should conform to RFC1035 or be a resource ID.", + "description": "The name of the resize request to delete.\nThe name should conform to RFC1035 or be a resource ID.", "location": "path", "required": true, "type": "string" }, "zone": { - "description": "The name of the zone where the managed instance group is located. The name should conform to RFC1035.", + "description": "The name of thezone where the managed\ninstance group is located. The name should conform to RFC1035.", "location": "path", "required": true, "type": "string" @@ -7638,7 +9097,7 @@ ], "parameters": { "instanceGroupManager": { - "description": "The name of the managed instance group. Name should conform to RFC1035 or be a resource ID.", + "description": "The name of the managed instance group.\nName should conform to RFC1035 or be a resource ID.", "location": "path", "required": true, "type": "string" @@ -7651,13 +9110,13 @@ "type": "string" }, "resizeRequest": { - "description": "The name of the resize request. Name should conform to RFC1035 or be a resource ID.", + "description": "The name of the resize request.\nName should conform to RFC1035 or be a resource ID.", "location": "path", "required": true, "type": "string" }, "zone": { - "description": "Name of the href=\"/compute/docs/regions-zones/#available\"\u003ezone scoping this request. Name should conform to RFC1035.", + "description": "Name of the href=\"/compute/docs/regions-zones/#available\"\u003ezone\nscoping this request. Name should conform to RFC1035.", "location": "path", "required": true, "type": "string" @@ -7674,7 +9133,7 @@ ] }, "insert": { - "description": "Creates a new resize request that starts provisioning VMs immediately or queues VM creation.", + "description": "Creates a new resize request that starts provisioning VMs immediately\nor queues VM creation.", "flatPath": "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/resizeRequests", "httpMethod": "POST", "id": "compute.instanceGroupManagerResizeRequests.insert", @@ -7685,7 +9144,7 @@ ], "parameters": { "instanceGroupManager": { - "description": "The name of the managed instance group to which the resize request will be added. Name should conform to RFC1035 or be a resource ID.", + "description": "The name of the managed instance group to which the resize request will\nbe added.\nName should conform to RFC1035 or be a resource ID.", "location": "path", "required": true, "type": "string" @@ -7698,12 +9157,12 @@ "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. 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).", + "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).", "location": "query", "type": "string" }, "zone": { - "description": "The name of the zone where the managed instance group is located and where the resize request will be created. Name should conform to RFC1035.", + "description": "The name of thezone where the managed\ninstance group is located and where the resize request will be created.\nName should conform to RFC1035.", "location": "path", "required": true, "type": "string" @@ -7722,7 +9181,7 @@ ] }, "list": { - "description": "Retrieves a list of resize requests that are contained in the managed instance group.", + "description": "Retrieves a list of resize requests that are contained in the\nmanaged instance group.", "flatPath": "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/resizeRequests", "httpMethod": "GET", "id": "compute.instanceGroupManagerResizeRequests.list", @@ -7733,7 +9192,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` 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) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.", + "description": "A filter expression that filters resources listed in the response. Most\nCompute resources support two types of filter expressions:\nexpressions that support regular expressions and expressions that follow\nAPI improvement proposal AIP-160.\nThese two types of filter expressions cannot be mixed in one request.\n\nIf you want to use AIP-160, your expression must specify the field name, an\noperator, and the value that you want to use for filtering. The value\nmust be a string, a number, or a boolean. The operator\nmust be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`.\n\nFor example, if you are filtering Compute Engine instances, you can\nexclude instances named `example-instance` by specifying\n`name != example-instance`.\n\nThe `:*` comparison can be used to test whether a key has been defined.\nFor example, to find all objects with `owner` label use:\n```\nlabels.owner:*\n```\n\nYou can also filter nested fields. For example, you could specify\n`scheduling.automaticRestart = false` to include instances only\nif they are not scheduled for automatic restarts. You can use filtering\non nested fields to filter based onresource labels.\n\nTo filter on multiple expressions, provide each separate expression within\nparentheses. For example:\n```\n(scheduling.automaticRestart = true)\n(cpuPlatform = \"Intel Skylake\")\n```\nBy default, each expression is an `AND` expression. However, you\ncan include `AND` and `OR` expressions explicitly.\nFor example:\n```\n(cpuPlatform = \"Intel Skylake\") OR\n(cpuPlatform = \"Intel Broadwell\") AND\n(scheduling.automaticRestart = true)\n```\n\nIf you want to use a regular expression, use the `eq` (equal) or `ne`\n(not equal) operator against a single un-parenthesized expression with or\nwithout quotes or against multiple parenthesized expressions. Examples:\n\n`fieldname eq unquoted literal`\n`fieldname eq 'single quoted literal'`\n`fieldname eq \"double quoted literal\"`\n`(fieldname1 eq literal) (fieldname2 ne \"literal\")`\n\nThe literal value is interpreted as a regular expression using GoogleRE2 library syntax.\nThe literal value must match the entire field.\n\nFor example, to filter for instances that do not end with name \"instance\",\nyou would use `name ne .*instance`.\n\nYou cannot combine constraints on multiple fields using regular\nexpressions.", "location": "query", "type": "string" }, @@ -7745,19 +9204,19 @@ }, "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`)", + "description": "The maximum number of results per page that should be returned.\nIf the number of available results is larger than `maxResults`,\nCompute Engine returns a `nextPageToken` that can be used to get\nthe next page of results in subsequent list requests. Acceptable values are\n`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. 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.", + "description": "Sorts list results by a certain order. By default, results\nare returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation\ntimestamp using `orderBy=\"creationTimestamp desc\"`. This sorts\nresults based on the `creationTimestamp` field in\nreverse chronological order (newest result first). Use this to sort\nresources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or\n`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.", + "description": "Specifies a page token to use. Set `pageToken` to the\n`nextPageToken` returned by a previous list request to get\nthe next page of results.", "location": "query", "type": "string" }, @@ -7769,12 +9228,12 @@ "type": "string" }, "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", + "description": "Opt-in for partial success behavior which provides partial results in case\nof failure. The default value is false.\n\nFor example, when partial success behavior is enabled, aggregatedList for a\nsingle zone scope either returns all resources in the zone or no resources,\nwith an error code.", "location": "query", "type": "boolean" }, "zone": { - "description": "The name of the zone where the managed instance group is located. The name should conform to RFC1035.", + "description": "The name of thezone where the managed\ninstance group is located. The name should conform to RFC1035.", "location": "path", "required": true, "type": "string" @@ -7795,7 +9254,7 @@ "instanceGroupManagers": { "methods": { "abandonInstances": { - "description": "Flags the specified instances to be removed from the managed instance group. Abandoning an instance does not delete the instance, but it does remove the instance from any target pools that are applied by the managed instance group. This method reduces the targetSize of the managed instance group by the number of instances that you abandon. This operation is marked as DONE when the action is scheduled even if the instances have not yet been removed from the group. You must separately verify the status of the abandoning action with the listmanagedinstances method. If the group is part of a backend service that has enabled connection draining, it can take up to 60 seconds after the connection draining duration has elapsed before the VM instance is removed or deleted. You can specify a maximum of 1000 instances with this method per request.", + "description": "Flags the specified instances to be removed from the\nmanaged instance group. Abandoning an instance does not delete the\ninstance, but it does remove the instance from any target pools that are\napplied by the managed instance group. This method reduces thetargetSize of the managed instance group by the\nnumber of instances that you abandon. This operation is marked asDONE when the action is scheduled even if the instances have\nnot yet been removed from the group. You must separately verify the\nstatus of the abandoning action with thelistmanagedinstances\nmethod.\n\nIf the group is part of a backend\nservice that has enabled\nconnection draining, it can take up to 60 seconds after the connection\ndraining duration has elapsed before the VM instance is removed or deleted.\n\nYou can specify a maximum of 1000 instances with this method per request.", "flatPath": "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/abandonInstances", "httpMethod": "POST", "id": "compute.instanceGroupManagers.abandonInstances", @@ -7819,12 +9278,12 @@ "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. 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).", + "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).", "location": "query", "type": "string" }, "zone": { - "description": "The name of the zone where the managed instance group is located.", + "description": "The name of thezone where the managed\ninstance group is located.", "location": "path", "required": true, "type": "string" @@ -7843,7 +9302,7 @@ ] }, "aggregatedList": { - "description": "Retrieves the list of managed instance groups and groups them by zone. To prevent failure, Google recommends that you set the `returnPartialSuccess` parameter to `true`.", + "description": "Retrieves the list of managed instance groups and groups them by zone.\n\nTo prevent failure, Google recommends that you set the\n`returnPartialSuccess` parameter to `true`.", "flatPath": "projects/{project}/aggregated/instanceGroupManagers", "httpMethod": "GET", "id": "compute.instanceGroupManagers.aggregatedList", @@ -7852,30 +9311,30 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` 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) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.", + "description": "A filter expression that filters resources listed in the response. Most\nCompute resources support two types of filter expressions:\nexpressions that support regular expressions and expressions that follow\nAPI improvement proposal AIP-160.\nThese two types of filter expressions cannot be mixed in one request.\n\nIf you want to use AIP-160, your expression must specify the field name, an\noperator, and the value that you want to use for filtering. The value\nmust be a string, a number, or a boolean. The operator\nmust be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`.\n\nFor example, if you are filtering Compute Engine instances, you can\nexclude instances named `example-instance` by specifying\n`name != example-instance`.\n\nThe `:*` comparison can be used to test whether a key has been defined.\nFor example, to find all objects with `owner` label use:\n```\nlabels.owner:*\n```\n\nYou can also filter nested fields. For example, you could specify\n`scheduling.automaticRestart = false` to include instances only\nif they are not scheduled for automatic restarts. You can use filtering\non nested fields to filter based onresource labels.\n\nTo filter on multiple expressions, provide each separate expression within\nparentheses. For example:\n```\n(scheduling.automaticRestart = true)\n(cpuPlatform = \"Intel Skylake\")\n```\nBy default, each expression is an `AND` expression. However, you\ncan include `AND` and `OR` expressions explicitly.\nFor example:\n```\n(cpuPlatform = \"Intel Skylake\") OR\n(cpuPlatform = \"Intel Broadwell\") AND\n(scheduling.automaticRestart = true)\n```\n\nIf you want to use a regular expression, use the `eq` (equal) or `ne`\n(not equal) operator against a single un-parenthesized expression with or\nwithout quotes or against multiple parenthesized expressions. Examples:\n\n`fieldname eq unquoted literal`\n`fieldname eq 'single quoted literal'`\n`fieldname eq \"double quoted literal\"`\n`(fieldname1 eq literal) (fieldname2 ne \"literal\")`\n\nThe literal value is interpreted as a regular expression using GoogleRE2 library syntax.\nThe literal value must match the entire field.\n\nFor example, to filter for instances that do not end with name \"instance\",\nyou would use `name ne .*instance`.\n\nYou cannot combine constraints on multiple fields using regular\nexpressions.", "location": "query", "type": "string" }, "includeAllScopes": { - "description": "Indicates whether every visible scope for each scope type (zone, region, global) should be included in the response. For new resource types added after this field, the flag has no effect as new resource types will always include every visible scope for each scope type in response. For resource types which predate this field, if this flag is omitted or false, only scopes of the scope types where the resource type is expected to be found will be included.", + "description": "Indicates whether every visible scope for each scope type (zone, region,\nglobal) should be included in the response. For new resource types added\nafter this field, the flag has no effect as new resource types will always\ninclude every visible scope for each scope type in response. For resource\ntypes which predate this field, if this flag is omitted or false, only\nscopes of the scope types where the resource type is expected to be found\nwill be included.", "location": "query", "type": "boolean" }, "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`)", + "description": "The maximum number of results per page that should be returned.\nIf the number of available results is larger than `maxResults`,\nCompute Engine returns a `nextPageToken` that can be used to get\nthe next page of results in subsequent list requests. Acceptable values are\n`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. 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.", + "description": "Sorts list results by a certain order. By default, results\nare returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation\ntimestamp using `orderBy=\"creationTimestamp desc\"`. This sorts\nresults based on the `creationTimestamp` field in\nreverse chronological order (newest result first). Use this to sort\nresources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or\n`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.", + "description": "Specifies a page token to use. Set `pageToken` to the\n`nextPageToken` returned by a previous list request to get\nthe next page of results.", "location": "query", "type": "string" }, @@ -7887,12 +9346,12 @@ "type": "string" }, "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", + "description": "Opt-in for partial success behavior which provides partial results in case\nof failure. The default value is false.\n\nFor example, when partial success behavior is enabled, aggregatedList for a\nsingle zone scope either returns all resources in the zone or no resources,\nwith an error code.", "location": "query", "type": "boolean" }, "serviceProjectNumber": { - "description": "The Shared VPC service project id or service project number for which aggregated list request is invoked for subnetworks list-usable api.", + "description": "The Shared VPC service project id or service project number for which\naggregated list request is invoked for subnetworks list-usable api.", "format": "int64", "location": "query", "type": "string" @@ -7909,7 +9368,7 @@ ] }, "applyUpdatesToInstances": { - "description": "Applies changes to selected instances on the managed instance group. This method can be used to apply new overrides and/or new versions.", + "description": "Applies changes to selected instances on the managed instance group.\nThis method can be used to apply new overrides and/or new versions.", "flatPath": "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/applyUpdatesToInstances", "httpMethod": "POST", "id": "compute.instanceGroupManagers.applyUpdatesToInstances", @@ -7933,7 +9392,7 @@ "type": "string" }, "zone": { - "description": "The name of the zone where the managed instance group is located. Should conform to RFC1035.", + "description": "The name of thezone\nwhere the managed instance group is located. Should conform to RFC1035.", "location": "path", "required": true, "type": "string" @@ -7952,7 +9411,7 @@ ] }, "createInstances": { - "description": "Creates instances with per-instance configurations in this managed instance group. Instances are created using the current instance template. The create instances operation is marked DONE if the createInstances request is successful. The underlying actions take additional time. You must separately verify the status of the creating or actions with the listmanagedinstances method.", + "description": "Creates instances with per-instance configurations in this managed instance\ngroup. Instances are created using the current instance template. Thecreate instances operation is marked DONE if thecreateInstances request is successful. The underlying actions\ntake additional time. You must separately verify the status of thecreating or actions with the listmanagedinstances\nmethod.", "flatPath": "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/createInstances", "httpMethod": "POST", "id": "compute.instanceGroupManagers.createInstances", @@ -7963,7 +9422,7 @@ ], "parameters": { "instanceGroupManager": { - "description": "The name of the managed instance group. It should conform to RFC1035.", + "description": "The name of the managed instance group.\nIt should conform to RFC1035.", "location": "path", "required": true, "type": "string" @@ -7976,12 +9435,12 @@ "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. 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. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).", + "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).", "location": "query", "type": "string" }, "zone": { - "description": "The name of the zone where the managed instance group is located. It should conform to RFC1035.", + "description": "The name of thezone\nwhere the managed instance group is located.\nIt should conform to RFC1035.", "location": "path", "required": true, "type": "string" @@ -8000,7 +9459,7 @@ ] }, "delete": { - "description": "Deletes the specified managed instance group and all of the instances in that group. Note that the instance group must not belong to a backend service. Read Deleting an instance group for more information.", + "description": "Deletes the specified managed instance group and all of the instances\nin that group. Note that the instance group must not belong to a\nbackend service. Read\nDeleting an instance group for more information.", "flatPath": "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}", "httpMethod": "DELETE", "id": "compute.instanceGroupManagers.delete", @@ -8016,6 +9475,12 @@ "required": true, "type": "string" }, + "noGracefulShutdown": { + "default": "false", + "description": "When set, graceful shutdown is skipped for instance deletion even if it's\nconfigured for the instances.", + "location": "query", + "type": "boolean" + }, "project": { "description": "Project ID for this request.", "location": "path", @@ -8024,12 +9489,12 @@ "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. 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).", + "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).", "location": "query", "type": "string" }, "zone": { - "description": "The name of the zone where the managed instance group is located.", + "description": "The name of thezone where the managed\ninstance group is located.", "location": "path", "required": true, "type": "string" @@ -8045,7 +9510,7 @@ ] }, "deleteInstances": { - "description": "Flags the specified instances in the managed instance group for immediate deletion. The instances are also removed from any target pools of which they were a member. This method reduces the targetSize of the managed instance group by the number of instances that you delete. This operation is marked as DONE when the action is scheduled even if the instances are still being deleted. You must separately verify the status of the deleting action with the listmanagedinstances method. If the group is part of a backend service that has enabled connection draining, it can take up to 60 seconds after the connection draining duration has elapsed before the VM instance is removed or deleted. You can specify a maximum of 1000 instances with this method per request.", + "description": "Flags the specified instances in the managed instance group for immediate\ndeletion. The instances are also removed from any target\npools of which they were a member. This method reduces thetargetSize of the managed instance group by the number of\ninstances that you delete. This operation is marked as DONE\nwhen the action is scheduled even if the instances are still being deleted.\nYou must separately verify the status of the deleting action\nwith thelistmanagedinstances\nmethod.\n\nIf the group is part of a backend\nservice that has enabled\nconnection draining, it can take up to 60 seconds after the connection\ndraining duration has elapsed before the VM instance is removed or deleted.\n\nYou can specify a maximum of 1000 instances with this method per request.", "flatPath": "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/deleteInstances", "httpMethod": "POST", "id": "compute.instanceGroupManagers.deleteInstances", @@ -8061,6 +9526,12 @@ "required": true, "type": "string" }, + "noGracefulShutdown": { + "default": "false", + "description": "When set, graceful shutdown is skipped for instance deletion even if it's\nconfigured for the instances.", + "location": "query", + "type": "boolean" + }, "project": { "description": "Project ID for this request.", "location": "path", @@ -8069,12 +9540,12 @@ "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. 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).", + "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).", "location": "query", "type": "string" }, "zone": { - "description": "The name of the zone where the managed instance group is located.", + "description": "The name of thezone where the managed\ninstance group is located.", "location": "path", "required": true, "type": "string" @@ -8093,7 +9564,7 @@ ] }, "deletePerInstanceConfigs": { - "description": "Deletes selected per-instance configurations for the managed instance group.", + "description": "Deletes selected per-instance configurations for the managed instance\ngroup.", "flatPath": "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/deletePerInstanceConfigs", "httpMethod": "POST", "id": "compute.instanceGroupManagers.deletePerInstanceConfigs", @@ -8104,7 +9575,7 @@ ], "parameters": { "instanceGroupManager": { - "description": "The name of the managed instance group. It should conform to RFC1035.", + "description": "The name of the managed instance group.\nIt should conform to RFC1035.", "location": "path", "required": true, "type": "string" @@ -8117,7 +9588,7 @@ "type": "string" }, "zone": { - "description": "The name of the zone where the managed instance group is located. It should conform to RFC1035.", + "description": "The name of thezone\nwhere the managed instance\ngroup is located.\nIt should conform to RFC1035.", "location": "path", "required": true, "type": "string" @@ -8160,7 +9631,7 @@ "type": "string" }, "zone": { - "description": "The name of the zone where the managed instance group is located.", + "description": "The name of thezone where the managed\ninstance group is located.", "location": "path", "required": true, "type": "string" @@ -8177,7 +9648,7 @@ ] }, "insert": { - "description": "Creates a managed instance group using the information that you specify in the request. After the group is created, instances in the group are created using the specified instance template. This operation is marked as DONE when the group is created even if the instances in the group have not yet been created. You must separately verify the status of the individual instances with the listmanagedinstances method. A managed instance group can have up to 1000 VM instances per group. Please contact Cloud Support if you need an increase in this limit.", + "description": "Creates a managed instance group using the information that you specify\nin the request. After the group is created, instances in the group are\ncreated using the specified instance template.\nThis operation is marked as DONE when the group is created\neven if the instances in the group have not yet been created. You\nmust separately verify the status of the individual instances with thelistmanagedinstances\nmethod.\n\nA managed instance group can have up to 1000 VM instances per group. Please\ncontact Cloud Support if you need an increase in\nthis limit.", "flatPath": "projects/{project}/zones/{zone}/instanceGroupManagers", "httpMethod": "POST", "id": "compute.instanceGroupManagers.insert", @@ -8194,12 +9665,12 @@ "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. 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).", + "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).", "location": "query", "type": "string" }, "zone": { - "description": "The name of the zone where you want to create the managed instance group.", + "description": "The name of the zone\nwhere you want to create the managed instance group.", "location": "path", "required": true, "type": "string" @@ -8218,7 +9689,7 @@ ] }, "list": { - "description": "Retrieves a list of managed instance groups that are contained within the specified project and zone.", + "description": "Retrieves a list of managed instance groups that are contained within the\nspecified project and zone.", "flatPath": "projects/{project}/zones/{zone}/instanceGroupManagers", "httpMethod": "GET", "id": "compute.instanceGroupManagers.list", @@ -8228,25 +9699,25 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` 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) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.", + "description": "A filter expression that filters resources listed in the response. Most\nCompute resources support two types of filter expressions:\nexpressions that support regular expressions and expressions that follow\nAPI improvement proposal AIP-160.\nThese two types of filter expressions cannot be mixed in one request.\n\nIf you want to use AIP-160, your expression must specify the field name, an\noperator, and the value that you want to use for filtering. The value\nmust be a string, a number, or a boolean. The operator\nmust be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`.\n\nFor example, if you are filtering Compute Engine instances, you can\nexclude instances named `example-instance` by specifying\n`name != example-instance`.\n\nThe `:*` comparison can be used to test whether a key has been defined.\nFor example, to find all objects with `owner` label use:\n```\nlabels.owner:*\n```\n\nYou can also filter nested fields. For example, you could specify\n`scheduling.automaticRestart = false` to include instances only\nif they are not scheduled for automatic restarts. You can use filtering\non nested fields to filter based onresource labels.\n\nTo filter on multiple expressions, provide each separate expression within\nparentheses. For example:\n```\n(scheduling.automaticRestart = true)\n(cpuPlatform = \"Intel Skylake\")\n```\nBy default, each expression is an `AND` expression. However, you\ncan include `AND` and `OR` expressions explicitly.\nFor example:\n```\n(cpuPlatform = \"Intel Skylake\") OR\n(cpuPlatform = \"Intel Broadwell\") AND\n(scheduling.automaticRestart = true)\n```\n\nIf you want to use a regular expression, use the `eq` (equal) or `ne`\n(not equal) operator against a single un-parenthesized expression with or\nwithout quotes or against multiple parenthesized expressions. Examples:\n\n`fieldname eq unquoted literal`\n`fieldname eq 'single quoted literal'`\n`fieldname eq \"double quoted literal\"`\n`(fieldname1 eq literal) (fieldname2 ne \"literal\")`\n\nThe literal value is interpreted as a regular expression using GoogleRE2 library syntax.\nThe literal value must match the entire field.\n\nFor example, to filter for instances that do not end with name \"instance\",\nyou would use `name ne .*instance`.\n\nYou cannot combine constraints on multiple fields using regular\nexpressions.", "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`)", + "description": "The maximum number of results per page that should be returned.\nIf the number of available results is larger than `maxResults`,\nCompute Engine returns a `nextPageToken` that can be used to get\nthe next page of results in subsequent list requests. Acceptable values are\n`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. 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.", + "description": "Sorts list results by a certain order. By default, results\nare returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation\ntimestamp using `orderBy=\"creationTimestamp desc\"`. This sorts\nresults based on the `creationTimestamp` field in\nreverse chronological order (newest result first). Use this to sort\nresources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or\n`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.", + "description": "Specifies a page token to use. Set `pageToken` to the\n`nextPageToken` returned by a previous list request to get\nthe next page of results.", "location": "query", "type": "string" }, @@ -8258,12 +9729,12 @@ "type": "string" }, "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", + "description": "Opt-in for partial success behavior which provides partial results in case\nof failure. The default value is false.\n\nFor example, when partial success behavior is enabled, aggregatedList for a\nsingle zone scope either returns all resources in the zone or no resources,\nwith an error code.", "location": "query", "type": "boolean" }, "zone": { - "description": "The name of the zone where the managed instance group is located.", + "description": "The name of thezone where the managed\ninstance group is located.", "location": "path", "required": true, "type": "string" @@ -8280,7 +9751,7 @@ ] }, "listErrors": { - "description": "Lists all errors thrown by actions on instances for a given managed instance group. The filter and orderBy query parameters are not supported.", + "description": "Lists all errors thrown by actions on instances for a given managed\ninstance group. The filter and orderBy query\nparameters are not supported.", "flatPath": "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/listErrors", "httpMethod": "GET", "id": "compute.instanceGroupManagers.listErrors", @@ -8291,31 +9762,31 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` 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) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.", + "description": "A filter expression that filters resources listed in the response. Most\nCompute resources support two types of filter expressions:\nexpressions that support regular expressions and expressions that follow\nAPI improvement proposal AIP-160.\nThese two types of filter expressions cannot be mixed in one request.\n\nIf you want to use AIP-160, your expression must specify the field name, an\noperator, and the value that you want to use for filtering. The value\nmust be a string, a number, or a boolean. The operator\nmust be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`.\n\nFor example, if you are filtering Compute Engine instances, you can\nexclude instances named `example-instance` by specifying\n`name != example-instance`.\n\nThe `:*` comparison can be used to test whether a key has been defined.\nFor example, to find all objects with `owner` label use:\n```\nlabels.owner:*\n```\n\nYou can also filter nested fields. For example, you could specify\n`scheduling.automaticRestart = false` to include instances only\nif they are not scheduled for automatic restarts. You can use filtering\non nested fields to filter based onresource labels.\n\nTo filter on multiple expressions, provide each separate expression within\nparentheses. For example:\n```\n(scheduling.automaticRestart = true)\n(cpuPlatform = \"Intel Skylake\")\n```\nBy default, each expression is an `AND` expression. However, you\ncan include `AND` and `OR` expressions explicitly.\nFor example:\n```\n(cpuPlatform = \"Intel Skylake\") OR\n(cpuPlatform = \"Intel Broadwell\") AND\n(scheduling.automaticRestart = true)\n```\n\nIf you want to use a regular expression, use the `eq` (equal) or `ne`\n(not equal) operator against a single un-parenthesized expression with or\nwithout quotes or against multiple parenthesized expressions. Examples:\n\n`fieldname eq unquoted literal`\n`fieldname eq 'single quoted literal'`\n`fieldname eq \"double quoted literal\"`\n`(fieldname1 eq literal) (fieldname2 ne \"literal\")`\n\nThe literal value is interpreted as a regular expression using GoogleRE2 library syntax.\nThe literal value must match the entire field.\n\nFor example, to filter for instances that do not end with name \"instance\",\nyou would use `name ne .*instance`.\n\nYou cannot combine constraints on multiple fields using regular\nexpressions.", "location": "query", "type": "string" }, "instanceGroupManager": { - "description": "The name of the managed instance group. It must be a string that meets the requirements in RFC1035, or an unsigned long integer: must match regexp pattern: (?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?)|1-9{0,19}.", + "description": "The name of the managed instance group.\nIt must be a string that meets the requirements in RFC1035, or an\nunsigned long integer: must match regexp pattern:\n(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?)|1-9{0,19}.", "location": "path", "required": true, "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`)", + "description": "The maximum number of results per page that should be returned.\nIf the number of available results is larger than `maxResults`,\nCompute Engine returns a `nextPageToken` that can be used to get\nthe next page of results in subsequent list requests. Acceptable values are\n`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. 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.", + "description": "Sorts list results by a certain order. By default, results\nare returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation\ntimestamp using `orderBy=\"creationTimestamp desc\"`. This sorts\nresults based on the `creationTimestamp` field in\nreverse chronological order (newest result first). Use this to sort\nresources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or\n`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.", + "description": "Specifies a page token to use. Set `pageToken` to the\n`nextPageToken` returned by a previous list request to get\nthe next page of results.", "location": "query", "type": "string" }, @@ -8327,12 +9798,12 @@ "type": "string" }, "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", + "description": "Opt-in for partial success behavior which provides partial results in case\nof failure. The default value is false.\n\nFor example, when partial success behavior is enabled, aggregatedList for a\nsingle zone scope either returns all resources in the zone or no resources,\nwith an error code.", "location": "query", "type": "boolean" }, "zone": { - "description": "The name of the zone where the managed instance group is located. It should conform to RFC1035.", + "description": "The name of thezone where the managed\ninstance group is located.\nIt should conform to RFC1035.", "location": "path", "required": true, "type": "string" @@ -8349,7 +9820,7 @@ ] }, "listManagedInstances": { - "description": "Lists all of the instances in the managed instance group. Each instance in the list has a currentAction, which indicates the action that the managed instance group is performing on the instance. For example, if the group is still creating an instance, the currentAction is CREATING. If a previous action failed, the list displays the errors for that failed action. The orderBy query parameter is not supported. The `pageToken` query parameter is supported only if the group's `listManagedInstancesResults` field is set to `PAGINATED`.", + "description": "Lists all of the instances in the managed instance group. Each instance\nin the list has a currentAction, which indicates the action\nthat the managed instance group is performing on the instance. For example,\nif the group is still creating an instance, the currentAction\nis CREATING. If a previous action failed, the\nlist displays the errors for that failed action. The orderBy\nquery parameter is not supported. The `pageToken` query parameter is\nsupported only if the group's `listManagedInstancesResults` field is set\nto `PAGINATED`.", "flatPath": "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/listManagedInstances", "httpMethod": "POST", "id": "compute.instanceGroupManagers.listManagedInstances", @@ -8360,7 +9831,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` 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) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.", + "description": "A filter expression that filters resources listed in the response. Most\nCompute resources support two types of filter expressions:\nexpressions that support regular expressions and expressions that follow\nAPI improvement proposal AIP-160.\nThese two types of filter expressions cannot be mixed in one request.\n\nIf you want to use AIP-160, your expression must specify the field name, an\noperator, and the value that you want to use for filtering. The value\nmust be a string, a number, or a boolean. The operator\nmust be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`.\n\nFor example, if you are filtering Compute Engine instances, you can\nexclude instances named `example-instance` by specifying\n`name != example-instance`.\n\nThe `:*` comparison can be used to test whether a key has been defined.\nFor example, to find all objects with `owner` label use:\n```\nlabels.owner:*\n```\n\nYou can also filter nested fields. For example, you could specify\n`scheduling.automaticRestart = false` to include instances only\nif they are not scheduled for automatic restarts. You can use filtering\non nested fields to filter based onresource labels.\n\nTo filter on multiple expressions, provide each separate expression within\nparentheses. For example:\n```\n(scheduling.automaticRestart = true)\n(cpuPlatform = \"Intel Skylake\")\n```\nBy default, each expression is an `AND` expression. However, you\ncan include `AND` and `OR` expressions explicitly.\nFor example:\n```\n(cpuPlatform = \"Intel Skylake\") OR\n(cpuPlatform = \"Intel Broadwell\") AND\n(scheduling.automaticRestart = true)\n```\n\nIf you want to use a regular expression, use the `eq` (equal) or `ne`\n(not equal) operator against a single un-parenthesized expression with or\nwithout quotes or against multiple parenthesized expressions. Examples:\n\n`fieldname eq unquoted literal`\n`fieldname eq 'single quoted literal'`\n`fieldname eq \"double quoted literal\"`\n`(fieldname1 eq literal) (fieldname2 ne \"literal\")`\n\nThe literal value is interpreted as a regular expression using GoogleRE2 library syntax.\nThe literal value must match the entire field.\n\nFor example, to filter for instances that do not end with name \"instance\",\nyou would use `name ne .*instance`.\n\nYou cannot combine constraints on multiple fields using regular\nexpressions.", "location": "query", "type": "string" }, @@ -8372,19 +9843,19 @@ }, "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`)", + "description": "The maximum number of results per page that should be returned.\nIf the number of available results is larger than `maxResults`,\nCompute Engine returns a `nextPageToken` that can be used to get\nthe next page of results in subsequent list requests. Acceptable values are\n`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. 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.", + "description": "Sorts list results by a certain order. By default, results\nare returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation\ntimestamp using `orderBy=\"creationTimestamp desc\"`. This sorts\nresults based on the `creationTimestamp` field in\nreverse chronological order (newest result first). Use this to sort\nresources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or\n`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.", + "description": "Specifies a page token to use. Set `pageToken` to the\n`nextPageToken` returned by a previous list request to get\nthe next page of results.", "location": "query", "type": "string" }, @@ -8396,12 +9867,12 @@ "type": "string" }, "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", + "description": "Opt-in for partial success behavior which provides partial results in case\nof failure. The default value is false.\n\nFor example, when partial success behavior is enabled, aggregatedList for a\nsingle zone scope either returns all resources in the zone or no resources,\nwith an error code.", "location": "query", "type": "boolean" }, "zone": { - "description": "The name of the zone where the managed instance group is located.", + "description": "The name of thezone where the managed\ninstance group is located.", "location": "path", "required": true, "type": "string" @@ -8418,7 +9889,7 @@ ] }, "listPerInstanceConfigs": { - "description": "Lists all of the per-instance configurations defined for the managed instance group. The orderBy query parameter is not supported.", + "description": "Lists all of the per-instance configurations defined for the managed\ninstance group. The orderBy query parameter is not supported.", "flatPath": "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/listPerInstanceConfigs", "httpMethod": "POST", "id": "compute.instanceGroupManagers.listPerInstanceConfigs", @@ -8429,7 +9900,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` 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) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.", + "description": "A filter expression that filters resources listed in the response. Most\nCompute resources support two types of filter expressions:\nexpressions that support regular expressions and expressions that follow\nAPI improvement proposal AIP-160.\nThese two types of filter expressions cannot be mixed in one request.\n\nIf you want to use AIP-160, your expression must specify the field name, an\noperator, and the value that you want to use for filtering. The value\nmust be a string, a number, or a boolean. The operator\nmust be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`.\n\nFor example, if you are filtering Compute Engine instances, you can\nexclude instances named `example-instance` by specifying\n`name != example-instance`.\n\nThe `:*` comparison can be used to test whether a key has been defined.\nFor example, to find all objects with `owner` label use:\n```\nlabels.owner:*\n```\n\nYou can also filter nested fields. For example, you could specify\n`scheduling.automaticRestart = false` to include instances only\nif they are not scheduled for automatic restarts. You can use filtering\non nested fields to filter based onresource labels.\n\nTo filter on multiple expressions, provide each separate expression within\nparentheses. For example:\n```\n(scheduling.automaticRestart = true)\n(cpuPlatform = \"Intel Skylake\")\n```\nBy default, each expression is an `AND` expression. However, you\ncan include `AND` and `OR` expressions explicitly.\nFor example:\n```\n(cpuPlatform = \"Intel Skylake\") OR\n(cpuPlatform = \"Intel Broadwell\") AND\n(scheduling.automaticRestart = true)\n```\n\nIf you want to use a regular expression, use the `eq` (equal) or `ne`\n(not equal) operator against a single un-parenthesized expression with or\nwithout quotes or against multiple parenthesized expressions. Examples:\n\n`fieldname eq unquoted literal`\n`fieldname eq 'single quoted literal'`\n`fieldname eq \"double quoted literal\"`\n`(fieldname1 eq literal) (fieldname2 ne \"literal\")`\n\nThe literal value is interpreted as a regular expression using GoogleRE2 library syntax.\nThe literal value must match the entire field.\n\nFor example, to filter for instances that do not end with name \"instance\",\nyou would use `name ne .*instance`.\n\nYou cannot combine constraints on multiple fields using regular\nexpressions.", "location": "query", "type": "string" }, @@ -8441,19 +9912,19 @@ }, "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`)", + "description": "The maximum number of results per page that should be returned.\nIf the number of available results is larger than `maxResults`,\nCompute Engine returns a `nextPageToken` that can be used to get\nthe next page of results in subsequent list requests. Acceptable values are\n`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. 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.", + "description": "Sorts list results by a certain order. By default, results\nare returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation\ntimestamp using `orderBy=\"creationTimestamp desc\"`. This sorts\nresults based on the `creationTimestamp` field in\nreverse chronological order (newest result first). Use this to sort\nresources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or\n`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.", + "description": "Specifies a page token to use. Set `pageToken` to the\n`nextPageToken` returned by a previous list request to get\nthe next page of results.", "location": "query", "type": "string" }, @@ -8465,12 +9936,12 @@ "type": "string" }, "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", + "description": "Opt-in for partial success behavior which provides partial results in case\nof failure. The default value is false.\n\nFor example, when partial success behavior is enabled, aggregatedList for a\nsingle zone scope either returns all resources in the zone or no resources,\nwith an error code.", "location": "query", "type": "boolean" }, "zone": { - "description": "The name of the zone where the managed instance group is located. It should conform to RFC1035.", + "description": "The name of thezone\nwhere the managed instance group is located.\nIt should conform to RFC1035.", "location": "path", "required": true, "type": "string" @@ -8487,7 +9958,7 @@ ] }, "patch": { - "description": "Updates a managed instance group using the information that you specify in the request. This operation is marked as DONE when the group is patched even if the instances in the group are still in the process of being patched. You must separately verify the status of the individual instances with the listManagedInstances method. This method supports PATCH semantics and uses the JSON merge patch format and processing rules. If you update your group to specify a new template or instance configuration, it's possible that your intended specification for each VM in the group is different from the current state of that VM. To learn how to apply an updated configuration to the VMs in a MIG, see Updating instances in a MIG.", + "description": "Updates a managed instance group using the information that you specify\nin the request.\nThis operation is marked as DONE when the group is patched\neven if the instances in the group are still in the process of being\npatched. You must separately verify the status of the individual instances\nwith thelistManagedInstances\nmethod. This method supportsPATCH\nsemantics and uses theJSON merge\npatch format and processing rules.\n\nIf you update your group to specify a new template or instance\nconfiguration, it's possible that your intended specification for each VM\nin the group is different from the current state of that VM. To learn how\nto apply an updated configuration to the VMs in a MIG, seeUpdating instances in\na MIG.", "flatPath": "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}", "httpMethod": "PATCH", "id": "compute.instanceGroupManagers.patch", @@ -8511,12 +9982,12 @@ "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. 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).", + "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).", "location": "query", "type": "string" }, "zone": { - "description": "The name of the zone where you want to create the managed instance group.", + "description": "The name of the zone where\nyou want to create the managed instance group.", "location": "path", "required": true, "type": "string" @@ -8535,7 +10006,7 @@ ] }, "patchPerInstanceConfigs": { - "description": "Inserts or patches per-instance configurations for the managed instance group. perInstanceConfig.name serves as a key used to distinguish whether to perform insert or patch.", + "description": "Inserts or patches per-instance configurations for the managed instance\ngroup. perInstanceConfig.name serves as a key used to\ndistinguish whether to perform insert or patch.", "flatPath": "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/patchPerInstanceConfigs", "httpMethod": "POST", "id": "compute.instanceGroupManagers.patchPerInstanceConfigs", @@ -8546,7 +10017,7 @@ ], "parameters": { "instanceGroupManager": { - "description": "The name of the managed instance group. It should conform to RFC1035.", + "description": "The name of the managed instance group.\nIt should conform to RFC1035.", "location": "path", "required": true, "type": "string" @@ -8559,12 +10030,12 @@ "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. 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).", + "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).", "location": "query", "type": "string" }, "zone": { - "description": "The name of the zone where the managed instance group is located. It should conform to RFC1035.", + "description": "The name of thezone\nwhere the managed instance group is located.\nIt should conform to RFC1035.", "location": "path", "required": true, "type": "string" @@ -8583,7 +10054,7 @@ ] }, "recreateInstances": { - "description": "Flags the specified VM instances in the managed instance group to be immediately recreated. Each instance is recreated using the group's current configuration. This operation is marked as DONE when the flag is set even if the instances have not yet been recreated. You must separately verify the status of each instance by checking its currentAction field; for more information, see Checking the status of managed instances. If the group is part of a backend service that has enabled connection draining, it can take up to 60 seconds after the connection draining duration has elapsed before the VM instance is removed or deleted. You can specify a maximum of 1000 instances with this method per request.", + "description": "Flags the specified VM instances in the managed instance group to be\nimmediately recreated. Each instance is recreated using the group's current\nconfiguration. This operation is marked as DONE when the flag\nis set even if the instances have not yet been recreated. You must\nseparately verify the status of each instance by checking itscurrentAction field; for more information, see Checking\nthe status of managed instances.\n\nIf the group is part of a backend\nservice that has enabled\nconnection draining, it can take up to 60 seconds after the connection\ndraining duration has elapsed before the VM instance is removed or deleted.\n\nYou can specify a maximum of 1000 instances with this method per request.", "flatPath": "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/recreateInstances", "httpMethod": "POST", "id": "compute.instanceGroupManagers.recreateInstances", @@ -8599,6 +10070,12 @@ "required": true, "type": "string" }, + "noGracefulShutdown": { + "default": "false", + "description": "When set, graceful shutdown is skipped for instance recreation even if it's\nconfigured for the instances.", + "location": "query", + "type": "boolean" + }, "project": { "description": "Project ID for this request.", "location": "path", @@ -8607,12 +10084,12 @@ "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. 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).", + "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).", "location": "query", "type": "string" }, "zone": { - "description": "The name of the zone where the managed instance group is located.", + "description": "The name of thezone where the managed\ninstance group is located.", "location": "path", "required": true, "type": "string" @@ -8631,7 +10108,7 @@ ] }, "resize": { - "description": "Resizes the managed instance group. If you increase the size, the group creates new instances using the current instance template. If you decrease the size, the group deletes instances. The resize operation is marked DONE when the resize actions are scheduled even if the group has not yet added or deleted any instances. You must separately verify the status of the creating or deleting actions with the listmanagedinstances method. When resizing down, the instance group arbitrarily chooses the order in which VMs are deleted. The group takes into account some VM attributes when making the selection including: + The status of the VM instance. + The health of the VM instance. + The instance template version the VM is based on. + For regional managed instance groups, the location of the VM instance. This list is subject to change. If the group is part of a backend service that has enabled connection draining, it can take up to 60 seconds after the connection draining duration has elapsed before the VM instance is removed or deleted.", + "description": "Resizes the managed instance group. If you increase the size, the group\ncreates new instances using the current instance template. If you decrease\nthe size, the group deletes instances. The resize operation is markedDONE when the resize actions are scheduled even if the group\nhas not yet added or deleted any instances. You must separately\nverify the status of the creating or deleting\nactions with thelistmanagedinstances\nmethod.\n\nWhen resizing down, the instance group arbitrarily chooses the order in\nwhich VMs are deleted. The group takes into account some VM attributes when\nmaking the selection including:\n\n+ The status of the VM instance.\n+ The health of the VM instance.\n+ The instance template version the VM is based on.\n+ For regional managed instance groups, the location of the VM instance.\n\nThis list is subject to change.\n\nIf the group is part of a backend\nservice that has enabled\nconnection draining, it can take up to 60 seconds after the connection\ndraining duration has elapsed before the VM instance is removed or deleted.", "flatPath": "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/resize", "httpMethod": "POST", "id": "compute.instanceGroupManagers.resize", @@ -8656,19 +10133,19 @@ "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. 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).", + "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).", "location": "query", "type": "string" }, "size": { - "description": "The number of running instances that the managed instance group should maintain at any given time. The group automatically adds or removes instances to maintain the number of instances specified by this parameter.", + "description": "The number of running instances that the managed instance group should\nmaintain at any given time. The group automatically adds or removes\ninstances to maintain the number of instances specified by this parameter.", "format": "int32", "location": "query", "required": true, "type": "integer" }, "zone": { - "description": "The name of the zone where the managed instance group is located.", + "description": "The name of thezone where the managed\ninstance group is located.", "location": "path", "required": true, "type": "string" @@ -8683,11 +10160,11 @@ "https://www.googleapis.com/auth/compute" ] }, - "setInstanceTemplate": { - "description": "Specifies the instance template to use when creating new instances in this group. The templates for existing instances in the group do not change unless you run recreateInstances, run applyUpdatesToInstances, or set the group's updatePolicy.type to PROACTIVE.", - "flatPath": "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/setInstanceTemplate", + "resumeInstances": { + "description": "Flags the specified instances in the managed instance group to be\nresumed. This method increases thetargetSize and decreases the targetSuspendedSize\nof the managed instance group by the number of instances that you resume.\nThe resumeInstances operation is marked DONE if\nthe resumeInstances request is successful. The underlying\nactions take additional time. You must separately verify the status of theRESUMING action with thelistmanagedinstances\nmethod.\n\nIn this request, you can only specify instances that are suspended. For\nexample, if an instance was previously suspended using the suspendInstances\nmethod, it can be resumed using the resumeInstances method.\n\nIf a health check is attached to the managed instance group, the specified\ninstances will be verified as healthy after they are resumed.\n\nYou can specify a maximum of 1000 instances with this method per request.", + "flatPath": "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/resumeInstances", "httpMethod": "POST", - "id": "compute.instanceGroupManagers.setInstanceTemplate", + "id": "compute.instanceGroupManagers.resumeInstances", "parameterOrder": [ "project", "zone", @@ -8708,20 +10185,20 @@ "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. 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).", + "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).", "location": "query", "type": "string" }, "zone": { - "description": "The name of the zone where the managed instance group is located.", + "description": "The name of thezone where the managed\ninstance group is located.", "location": "path", "required": true, "type": "string" } }, - "path": "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/setInstanceTemplate", + "path": "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/resumeInstances", "request": { - "$ref": "InstanceGroupManagersSetInstanceTemplateRequest" + "$ref": "InstanceGroupManagersResumeInstancesRequest" }, "response": { "$ref": "Operation" @@ -8731,11 +10208,11 @@ "https://www.googleapis.com/auth/compute" ] }, - "setTargetPools": { - "description": "Modifies the target pools to which all instances in this managed instance group are assigned. The target pools automatically apply to all of the instances in the managed instance group. This operation is marked DONE when you make the request even if the instances have not yet been added to their target pools. The change might take some time to apply to all of the instances in the group depending on the size of the group.", - "flatPath": "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/setTargetPools", + "setInstanceTemplate": { + "description": "Specifies the instance template to use when creating new instances in this\ngroup. The templates for existing instances in the group do not change\nunless you run recreateInstances, runapplyUpdatesToInstances, or set the group'supdatePolicy.type to PROACTIVE.", + "flatPath": "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/setInstanceTemplate", "httpMethod": "POST", - "id": "compute.instanceGroupManagers.setTargetPools", + "id": "compute.instanceGroupManagers.setInstanceTemplate", "parameterOrder": [ "project", "zone", @@ -8756,20 +10233,20 @@ "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. 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).", + "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).", "location": "query", "type": "string" }, "zone": { - "description": "The name of the zone where the managed instance group is located.", + "description": "The name of thezone where the managed\ninstance group is located.", "location": "path", "required": true, "type": "string" } }, - "path": "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/setTargetPools", + "path": "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/setInstanceTemplate", "request": { - "$ref": "InstanceGroupManagersSetTargetPoolsRequest" + "$ref": "InstanceGroupManagersSetInstanceTemplateRequest" }, "response": { "$ref": "Operation" @@ -8779,11 +10256,11 @@ "https://www.googleapis.com/auth/compute" ] }, - "updatePerInstanceConfigs": { - "description": "Inserts or updates per-instance configurations for the managed instance group. perInstanceConfig.name serves as a key used to distinguish whether to perform insert or patch.", - "flatPath": "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/updatePerInstanceConfigs", + "setTargetPools": { + "description": "Modifies the target pools to which all instances in this managed instance\ngroup are assigned. The target pools automatically apply to all of the\ninstances in the managed instance group. This operation is markedDONE when you make the request even if the instances have not\nyet been added to their target pools. The change might take some time to\napply to all of the instances in the group depending on the size of the\ngroup.", + "flatPath": "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/setTargetPools", "httpMethod": "POST", - "id": "compute.instanceGroupManagers.updatePerInstanceConfigs", + "id": "compute.instanceGroupManagers.setTargetPools", "parameterOrder": [ "project", "zone", @@ -8791,7 +10268,7 @@ ], "parameters": { "instanceGroupManager": { - "description": "The name of the managed instance group. It should conform to RFC1035.", + "description": "The name of the managed instance group.", "location": "path", "required": true, "type": "string" @@ -8804,20 +10281,20 @@ "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. 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).", + "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).", "location": "query", "type": "string" }, "zone": { - "description": "The name of the zone where the managed instance group is located. It should conform to RFC1035.", + "description": "The name of thezone where the managed\ninstance group is located.", "location": "path", "required": true, "type": "string" } }, - "path": "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/updatePerInstanceConfigs", + "path": "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/setTargetPools", "request": { - "$ref": "InstanceGroupManagersUpdatePerInstanceConfigsReq" + "$ref": "InstanceGroupManagersSetTargetPoolsRequest" }, "response": { "$ref": "Operation" @@ -8826,24 +10303,20 @@ "https://www.googleapis.com/auth/cloud-platform", "https://www.googleapis.com/auth/compute" ] - } - } - }, - "instanceGroups": { - "methods": { - "addInstances": { - "description": "Adds a list of instances to the specified instance group. All of the instances in the instance group must be in the same network/subnetwork. Read Adding instances for more information.", - "flatPath": "projects/{project}/zones/{zone}/instanceGroups/{instanceGroup}/addInstances", + }, + "startInstances": { + "description": "Flags the specified instances in the managed instance group to be\nstarted. This method increases thetargetSize and decreases the targetStoppedSize\nof the managed instance group by the number of instances that you start.\nThe startInstances operation is marked DONE if\nthe startInstances request is successful. The underlying\nactions take additional time. You must separately verify the status of theSTARTING action with thelistmanagedinstances\nmethod.\n\nIn this request, you can only specify instances that are stopped. For\nexample, if an instance was previously stopped using the stopInstances\nmethod, it can be started using the startInstances method.\n\nIf a health check is attached to the managed instance group, the specified\ninstances will be verified as healthy after they are started.\n\nYou can specify a maximum of 1000 instances with this method per request.", + "flatPath": "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/startInstances", "httpMethod": "POST", - "id": "compute.instanceGroups.addInstances", + "id": "compute.instanceGroupManagers.startInstances", "parameterOrder": [ "project", "zone", - "instanceGroup" + "instanceGroupManager" ], "parameters": { - "instanceGroup": { - "description": "The name of the instance group where you are adding instances.", + "instanceGroupManager": { + "description": "The name of the managed instance group.", "location": "path", "required": true, "type": "string" @@ -8856,20 +10329,20 @@ "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. 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).", + "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).", "location": "query", "type": "string" }, "zone": { - "description": "The name of the zone where the instance group is located.", + "description": "The name of thezone where the managed\ninstance group is located.", "location": "path", "required": true, "type": "string" } }, - "path": "projects/{project}/zones/{zone}/instanceGroups/{instanceGroup}/addInstances", + "path": "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/startInstances", "request": { - "$ref": "InstanceGroupsAddInstancesRequest" + "$ref": "InstanceGroupManagersStartInstancesRequest" }, "response": { "$ref": "Operation" @@ -8879,43 +10352,29 @@ "https://www.googleapis.com/auth/compute" ] }, - "aggregatedList": { - "description": "Retrieves the list of instance groups and sorts them by zone. To prevent failure, Google recommends that you set the `returnPartialSuccess` parameter to `true`.", - "flatPath": "projects/{project}/aggregated/instanceGroups", - "httpMethod": "GET", - "id": "compute.instanceGroups.aggregatedList", + "stopInstances": { + "description": "Flags the specified instances in the managed instance group to be\nimmediately stopped. You can only specify instances that are running in\nthis request. This method reduces thetargetSize and increases the targetStoppedSize\nof the managed instance group by the number of instances that you stop.\nThe stopInstances operation is marked DONE if\nthe stopInstances request is successful. The underlying\nactions take additional time. You must separately verify the status of theSTOPPING action with thelistmanagedinstances\nmethod.\n\nIf the standbyPolicy.initialDelaySec field is set, the group\ndelays stopping the instances until initialDelaySec have\npassed from instance.creationTimestamp (that is, when the\ninstance was created). This delay gives your application time to\nset itself up and initialize on the instance. If more thaninitialDelaySec seconds have passed sinceinstance.creationTimestamp when this method is called, there\nwill be zero delay.\n\nIf the group is part of a backend\nservice that has enabled\nconnection draining, it can take up to 60 seconds after the connection\ndraining duration has elapsed before the VM instance is stopped.\n\nStopped instances can be started using the startInstances\nmethod.\n\nYou can specify a maximum of 1000 instances with this method per request.", + "flatPath": "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/stopInstances", + "httpMethod": "POST", + "id": "compute.instanceGroupManagers.stopInstances", "parameterOrder": [ - "project" + "project", + "zone", + "instanceGroupManager" ], "parameters": { - "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` 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) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.", - "location": "query", + "instanceGroupManager": { + "description": "The name of the managed instance group.", + "location": "path", + "required": true, "type": "string" }, - "includeAllScopes": { - "description": "Indicates whether every visible scope for each scope type (zone, region, global) should be included in the response. For new resource types added after this field, the flag has no effect as new resource types will always include every visible scope for each scope type in response. For resource types which predate this field, if this flag is omitted or false, only scopes of the scope types where the resource type is expected to be found will be included.", + "noGracefulShutdown": { + "default": "false", + "description": "When set, graceful shutdown is skipped for instance stopping even if it's\nconfigured for the instances.", "location": "query", "type": "boolean" }, - "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. 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.", - "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", @@ -8923,41 +10382,43 @@ "required": true, "type": "string" }, - "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", + "requestId": { + "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).", "location": "query", - "type": "boolean" + "type": "string" }, - "serviceProjectNumber": { - "description": "The Shared VPC service project id or service project number for which aggregated list request is invoked for subnetworks list-usable api.", - "format": "int64", - "location": "query", + "zone": { + "description": "The name of thezone where the managed\ninstance group is located.", + "location": "path", + "required": true, "type": "string" } }, - "path": "projects/{project}/aggregated/instanceGroups", + "path": "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/stopInstances", + "request": { + "$ref": "InstanceGroupManagersStopInstancesRequest" + }, "response": { - "$ref": "InstanceGroupAggregatedList" + "$ref": "Operation" }, "scopes": [ "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" + "https://www.googleapis.com/auth/compute" ] }, - "delete": { - "description": "Deletes the specified instance group. The instances in the group are not deleted. Note that instance group must not belong to a backend service. Read Deleting an instance group for more information.", - "flatPath": "projects/{project}/zones/{zone}/instanceGroups/{instanceGroup}", - "httpMethod": "DELETE", - "id": "compute.instanceGroups.delete", + "suspendInstances": { + "description": "Flags the specified instances in the managed instance group to be\nimmediately suspended. You can only specify instances that are running in\nthis request. This method reduces thetargetSize and increases the targetSuspendedSize\nof the managed instance group by the number of instances that you suspend.\nThe suspendInstances operation is marked DONE if\nthe suspendInstances request is successful. The underlying\nactions take additional time. You must separately verify the status of theSUSPENDING action with thelistmanagedinstances\nmethod.\n\nIf the standbyPolicy.initialDelaySec field is set, the group\ndelays suspension of the instances until initialDelaySec have\npassed from instance.creationTimestamp (that is, when the\ninstance was created). This delay gives your application time to\nset itself up and initialize on the instance. If more thaninitialDelaySec seconds have passed sinceinstance.creationTimestamp when this method is called, there\nwill be zero delay.\n\nIf the group is part of a backend\nservice that has enabled\nconnection draining, it can take up to 60 seconds after the connection\ndraining duration has elapsed before the VM instance is suspended.\n\nSuspended instances can be resumed using the resumeInstances\nmethod.\n\nYou can specify a maximum of 1000 instances with this method per request.", + "flatPath": "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/suspendInstances", + "httpMethod": "POST", + "id": "compute.instanceGroupManagers.suspendInstances", "parameterOrder": [ "project", "zone", - "instanceGroup" + "instanceGroupManager" ], "parameters": { - "instanceGroup": { - "description": "The name of the instance group to delete.", + "instanceGroupManager": { + "description": "The name of the managed instance group.", "location": "path", "required": true, "type": "string" @@ -8970,18 +10431,21 @@ "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. 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).", + "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).", "location": "query", "type": "string" }, "zone": { - "description": "The name of the zone where the instance group is located.", + "description": "The name of thezone where the managed\ninstance group is located.", "location": "path", "required": true, "type": "string" } }, - "path": "projects/{project}/zones/{zone}/instanceGroups/{instanceGroup}", + "path": "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/suspendInstances", + "request": { + "$ref": "InstanceGroupManagersSuspendInstancesRequest" + }, "response": { "$ref": "Operation" }, @@ -8990,19 +10454,19 @@ "https://www.googleapis.com/auth/compute" ] }, - "get": { - "description": "Returns the specified zonal instance group. Get a list of available zonal instance groups by making a list() request. For managed instance groups, use the instanceGroupManagers or regionInstanceGroupManagers methods instead.", - "flatPath": "projects/{project}/zones/{zone}/instanceGroups/{instanceGroup}", - "httpMethod": "GET", - "id": "compute.instanceGroups.get", + "updatePerInstanceConfigs": { + "description": "Inserts or updates per-instance configurations for the managed instance\ngroup. perInstanceConfig.name serves as a key used to\ndistinguish whether to perform insert or patch.", + "flatPath": "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/updatePerInstanceConfigs", + "httpMethod": "POST", + "id": "compute.instanceGroupManagers.updatePerInstanceConfigs", "parameterOrder": [ "project", "zone", - "instanceGroup" + "instanceGroupManager" ], "parameters": { - "instanceGroup": { - "description": "The name of the instance group.", + "instanceGroupManager": { + "description": "The name of the managed instance group.\nIt should conform to RFC1035.", "location": "path", "required": true, "type": "string" @@ -9014,33 +10478,51 @@ "required": true, "type": "string" }, + "requestId": { + "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).", + "location": "query", + "type": "string" + }, "zone": { - "description": "The name of the zone where the instance group is located.", + "description": "The name of thezone\nwhere the managed instance group is located.\nIt should conform to RFC1035.", "location": "path", "required": true, "type": "string" } }, - "path": "projects/{project}/zones/{zone}/instanceGroups/{instanceGroup}", + "path": "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/updatePerInstanceConfigs", + "request": { + "$ref": "InstanceGroupManagersUpdatePerInstanceConfigsReq" + }, "response": { - "$ref": "InstanceGroup" + "$ref": "Operation" }, "scopes": [ "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" + "https://www.googleapis.com/auth/compute" ] - }, - "insert": { - "description": "Creates an instance group in the specified project using the parameters that are included in the request.", - "flatPath": "projects/{project}/zones/{zone}/instanceGroups", + } + } + }, + "instanceGroups": { + "methods": { + "addInstances": { + "description": "Adds a list of instances to the specified instance group. All of the\ninstances in the instance group must be in the same network/subnetwork.\nRead \nAdding instances for more information.", + "flatPath": "projects/{project}/zones/{zone}/instanceGroups/{instanceGroup}/addInstances", "httpMethod": "POST", - "id": "compute.instanceGroups.insert", + "id": "compute.instanceGroups.addInstances", "parameterOrder": [ "project", - "zone" + "zone", + "instanceGroup" ], "parameters": { + "instanceGroup": { + "description": "The name of the instance group where you are adding instances.", + "location": "path", + "required": true, + "type": "string" + }, "project": { "description": "Project ID for this request.", "location": "path", @@ -9049,20 +10531,20 @@ "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. 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).", + "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).", "location": "query", "type": "string" }, "zone": { - "description": "The name of the zone where you want to create the instance group.", + "description": "The name of the zone\nwhere the instance group is located.", "location": "path", "required": true, "type": "string" } }, - "path": "projects/{project}/zones/{zone}/instanceGroups", + "path": "projects/{project}/zones/{zone}/instanceGroups/{instanceGroup}/addInstances", "request": { - "$ref": "InstanceGroup" + "$ref": "InstanceGroupsAddInstancesRequest" }, "response": { "$ref": "Operation" @@ -9072,36 +10554,40 @@ "https://www.googleapis.com/auth/compute" ] }, - "list": { - "description": "Retrieves the list of zonal instance group resources contained within the specified zone. For managed instance groups, use the instanceGroupManagers or regionInstanceGroupManagers methods instead.", - "flatPath": "projects/{project}/zones/{zone}/instanceGroups", + "aggregatedList": { + "description": "Retrieves the list of instance groups and sorts them by zone.\n\nTo prevent failure, Google recommends that you set the\n`returnPartialSuccess` parameter to `true`.", + "flatPath": "projects/{project}/aggregated/instanceGroups", "httpMethod": "GET", - "id": "compute.instanceGroups.list", + "id": "compute.instanceGroups.aggregatedList", "parameterOrder": [ - "project", - "zone" + "project" ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` 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) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.", + "description": "A filter expression that filters resources listed in the response. Most\nCompute resources support two types of filter expressions:\nexpressions that support regular expressions and expressions that follow\nAPI improvement proposal AIP-160.\nThese two types of filter expressions cannot be mixed in one request.\n\nIf you want to use AIP-160, your expression must specify the field name, an\noperator, and the value that you want to use for filtering. The value\nmust be a string, a number, or a boolean. The operator\nmust be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`.\n\nFor example, if you are filtering Compute Engine instances, you can\nexclude instances named `example-instance` by specifying\n`name != example-instance`.\n\nThe `:*` comparison can be used to test whether a key has been defined.\nFor example, to find all objects with `owner` label use:\n```\nlabels.owner:*\n```\n\nYou can also filter nested fields. For example, you could specify\n`scheduling.automaticRestart = false` to include instances only\nif they are not scheduled for automatic restarts. You can use filtering\non nested fields to filter based onresource labels.\n\nTo filter on multiple expressions, provide each separate expression within\nparentheses. For example:\n```\n(scheduling.automaticRestart = true)\n(cpuPlatform = \"Intel Skylake\")\n```\nBy default, each expression is an `AND` expression. However, you\ncan include `AND` and `OR` expressions explicitly.\nFor example:\n```\n(cpuPlatform = \"Intel Skylake\") OR\n(cpuPlatform = \"Intel Broadwell\") AND\n(scheduling.automaticRestart = true)\n```\n\nIf you want to use a regular expression, use the `eq` (equal) or `ne`\n(not equal) operator against a single un-parenthesized expression with or\nwithout quotes or against multiple parenthesized expressions. Examples:\n\n`fieldname eq unquoted literal`\n`fieldname eq 'single quoted literal'`\n`fieldname eq \"double quoted literal\"`\n`(fieldname1 eq literal) (fieldname2 ne \"literal\")`\n\nThe literal value is interpreted as a regular expression using GoogleRE2 library syntax.\nThe literal value must match the entire field.\n\nFor example, to filter for instances that do not end with name \"instance\",\nyou would use `name ne .*instance`.\n\nYou cannot combine constraints on multiple fields using regular\nexpressions.", "location": "query", "type": "string" }, + "includeAllScopes": { + "description": "Indicates whether every visible scope for each scope type (zone, region,\nglobal) should be included in the response. For new resource types added\nafter this field, the flag has no effect as new resource types will always\ninclude every visible scope for each scope type in response. For resource\ntypes which predate this field, if this flag is omitted or false, only\nscopes of the scope types where the resource type is expected to be found\nwill be included.", + "location": "query", + "type": "boolean" + }, "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`)", + "description": "The maximum number of results per page that should be returned.\nIf the number of available results is larger than `maxResults`,\nCompute Engine returns a `nextPageToken` that can be used to get\nthe next page of results in subsequent list requests. Acceptable values are\n`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. 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.", + "description": "Sorts list results by a certain order. By default, results\nare returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation\ntimestamp using `orderBy=\"creationTimestamp desc\"`. This sorts\nresults based on the `creationTimestamp` field in\nreverse chronological order (newest result first). Use this to sort\nresources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or\n`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.", + "description": "Specifies a page token to use. Set `pageToken` to the\n`nextPageToken` returned by a previous list request to get\nthe next page of results.", "location": "query", "type": "string" }, @@ -9113,12 +10599,201 @@ "type": "string" }, "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", + "description": "Opt-in for partial success behavior which provides partial results in case\nof failure. The default value is false.\n\nFor example, when partial success behavior is enabled, aggregatedList for a\nsingle zone scope either returns all resources in the zone or no resources,\nwith an error code.", "location": "query", "type": "boolean" }, + "serviceProjectNumber": { + "description": "The Shared VPC service project id or service project number for which\naggregated list request is invoked for subnetworks list-usable api.", + "format": "int64", + "location": "query", + "type": "string" + } + }, + "path": "projects/{project}/aggregated/instanceGroups", + "response": { + "$ref": "InstanceGroupAggregatedList" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ] + }, + "delete": { + "description": "Deletes the specified instance group. The instances in the group are not\ndeleted. Note that instance group must not belong to a backend service.\nRead\nDeleting an instance group for more information.", + "flatPath": "projects/{project}/zones/{zone}/instanceGroups/{instanceGroup}", + "httpMethod": "DELETE", + "id": "compute.instanceGroups.delete", + "parameterOrder": [ + "project", + "zone", + "instanceGroup" + ], + "parameters": { + "instanceGroup": { + "description": "The name of the instance group to delete.", + "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\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).", + "location": "query", + "type": "string" + }, + "zone": { + "description": "The name of the zone\nwhere the instance group is located.", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "projects/{project}/zones/{zone}/instanceGroups/{instanceGroup}", + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ] + }, + "get": { + "description": "Returns the specified zonal instance group. Get a list of available zonal\ninstance groups by making a list() request.\n\nFor managed instance groups, use theinstanceGroupManagers\nor regionInstanceGroupManagers\nmethods instead.", + "flatPath": "projects/{project}/zones/{zone}/instanceGroups/{instanceGroup}", + "httpMethod": "GET", + "id": "compute.instanceGroups.get", + "parameterOrder": [ + "project", + "zone", + "instanceGroup" + ], + "parameters": { + "instanceGroup": { + "description": "The name of the instance group.", + "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" + }, "zone": { - "description": "The name of the zone where the instance group is located.", + "description": "The name of the zone\nwhere the instance group is located.", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "projects/{project}/zones/{zone}/instanceGroups/{instanceGroup}", + "response": { + "$ref": "InstanceGroup" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ] + }, + "insert": { + "description": "Creates an instance group in the specified project using the\nparameters that are included in the request.", + "flatPath": "projects/{project}/zones/{zone}/instanceGroups", + "httpMethod": "POST", + "id": "compute.instanceGroups.insert", + "parameterOrder": [ + "project", + "zone" + ], + "parameters": { + "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\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).", + "location": "query", + "type": "string" + }, + "zone": { + "description": "The name of the zone\nwhere you want to create the instance group.", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "projects/{project}/zones/{zone}/instanceGroups", + "request": { + "$ref": "InstanceGroup" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ] + }, + "list": { + "description": "Retrieves the list of zonal instance group resources contained within the\nspecified zone.\n\nFor managed instance groups, use theinstanceGroupManagers\nor regionInstanceGroupManagers\nmethods instead.", + "flatPath": "projects/{project}/zones/{zone}/instanceGroups", + "httpMethod": "GET", + "id": "compute.instanceGroups.list", + "parameterOrder": [ + "project", + "zone" + ], + "parameters": { + "filter": { + "description": "A filter expression that filters resources listed in the response. Most\nCompute resources support two types of filter expressions:\nexpressions that support regular expressions and expressions that follow\nAPI improvement proposal AIP-160.\nThese two types of filter expressions cannot be mixed in one request.\n\nIf you want to use AIP-160, your expression must specify the field name, an\noperator, and the value that you want to use for filtering. The value\nmust be a string, a number, or a boolean. The operator\nmust be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`.\n\nFor example, if you are filtering Compute Engine instances, you can\nexclude instances named `example-instance` by specifying\n`name != example-instance`.\n\nThe `:*` comparison can be used to test whether a key has been defined.\nFor example, to find all objects with `owner` label use:\n```\nlabels.owner:*\n```\n\nYou can also filter nested fields. For example, you could specify\n`scheduling.automaticRestart = false` to include instances only\nif they are not scheduled for automatic restarts. You can use filtering\non nested fields to filter based onresource labels.\n\nTo filter on multiple expressions, provide each separate expression within\nparentheses. For example:\n```\n(scheduling.automaticRestart = true)\n(cpuPlatform = \"Intel Skylake\")\n```\nBy default, each expression is an `AND` expression. However, you\ncan include `AND` and `OR` expressions explicitly.\nFor example:\n```\n(cpuPlatform = \"Intel Skylake\") OR\n(cpuPlatform = \"Intel Broadwell\") AND\n(scheduling.automaticRestart = true)\n```\n\nIf you want to use a regular expression, use the `eq` (equal) or `ne`\n(not equal) operator against a single un-parenthesized expression with or\nwithout quotes or against multiple parenthesized expressions. Examples:\n\n`fieldname eq unquoted literal`\n`fieldname eq 'single quoted literal'`\n`fieldname eq \"double quoted literal\"`\n`(fieldname1 eq literal) (fieldname2 ne \"literal\")`\n\nThe literal value is interpreted as a regular expression using GoogleRE2 library syntax.\nThe literal value must match the entire field.\n\nFor example, to filter for instances that do not end with name \"instance\",\nyou would use `name ne .*instance`.\n\nYou cannot combine constraints on multiple fields using regular\nexpressions.", + "location": "query", + "type": "string" + }, + "maxResults": { + "default": "500", + "description": "The maximum number of results per page that should be returned.\nIf the number of available results is larger than `maxResults`,\nCompute Engine returns a `nextPageToken` that can be used to get\nthe next page of results in subsequent list requests. Acceptable values are\n`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\nare returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation\ntimestamp using `orderBy=\"creationTimestamp desc\"`. This sorts\nresults based on the `creationTimestamp` field in\nreverse chronological order (newest result first). Use this to sort\nresources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or\n`creationTimestamp desc` is supported.", + "location": "query", + "type": "string" + }, + "pageToken": { + "description": "Specifies a page token to use. Set `pageToken` to the\n`nextPageToken` returned by a previous list request to get\nthe 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" + }, + "returnPartialSuccess": { + "description": "Opt-in for partial success behavior which provides partial results in case\nof failure. The default value is false.\n\nFor example, when partial success behavior is enabled, aggregatedList for a\nsingle zone scope either returns all resources in the zone or no resources,\nwith an error code.", + "location": "query", + "type": "boolean" + }, + "zone": { + "description": "The name of thezone\nwhere the instance group is located.", "location": "path", "required": true, "type": "string" @@ -9135,7 +10810,7 @@ ] }, "listInstances": { - "description": "Lists the instances in the specified instance group. The orderBy query parameter is not supported. The filter query parameter is supported, but only for expressions that use `eq` (equal) or `ne` (not equal) operators.", + "description": "Lists the instances in the specified instance group.\nThe orderBy query parameter is not supported.\nThe filter query parameter is supported, but only for\nexpressions that use `eq` (equal) or `ne` (not equal) operators.", "flatPath": "projects/{project}/zones/{zone}/instanceGroups/{instanceGroup}/listInstances", "httpMethod": "POST", "id": "compute.instanceGroups.listInstances", @@ -9146,31 +10821,31 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` 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) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.", + "description": "A filter expression that filters resources listed in the response. Most\nCompute resources support two types of filter expressions:\nexpressions that support regular expressions and expressions that follow\nAPI improvement proposal AIP-160.\nThese two types of filter expressions cannot be mixed in one request.\n\nIf you want to use AIP-160, your expression must specify the field name, an\noperator, and the value that you want to use for filtering. The value\nmust be a string, a number, or a boolean. The operator\nmust be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`.\n\nFor example, if you are filtering Compute Engine instances, you can\nexclude instances named `example-instance` by specifying\n`name != example-instance`.\n\nThe `:*` comparison can be used to test whether a key has been defined.\nFor example, to find all objects with `owner` label use:\n```\nlabels.owner:*\n```\n\nYou can also filter nested fields. For example, you could specify\n`scheduling.automaticRestart = false` to include instances only\nif they are not scheduled for automatic restarts. You can use filtering\non nested fields to filter based onresource labels.\n\nTo filter on multiple expressions, provide each separate expression within\nparentheses. For example:\n```\n(scheduling.automaticRestart = true)\n(cpuPlatform = \"Intel Skylake\")\n```\nBy default, each expression is an `AND` expression. However, you\ncan include `AND` and `OR` expressions explicitly.\nFor example:\n```\n(cpuPlatform = \"Intel Skylake\") OR\n(cpuPlatform = \"Intel Broadwell\") AND\n(scheduling.automaticRestart = true)\n```\n\nIf you want to use a regular expression, use the `eq` (equal) or `ne`\n(not equal) operator against a single un-parenthesized expression with or\nwithout quotes or against multiple parenthesized expressions. Examples:\n\n`fieldname eq unquoted literal`\n`fieldname eq 'single quoted literal'`\n`fieldname eq \"double quoted literal\"`\n`(fieldname1 eq literal) (fieldname2 ne \"literal\")`\n\nThe literal value is interpreted as a regular expression using GoogleRE2 library syntax.\nThe literal value must match the entire field.\n\nFor example, to filter for instances that do not end with name \"instance\",\nyou would use `name ne .*instance`.\n\nYou cannot combine constraints on multiple fields using regular\nexpressions.", "location": "query", "type": "string" }, "instanceGroup": { - "description": "The name of the instance group from which you want to generate a list of included instances.", + "description": "The name of the instance group from which you want to generate a list\nof included instances.", "location": "path", "required": true, "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`)", + "description": "The maximum number of results per page that should be returned.\nIf the number of available results is larger than `maxResults`,\nCompute Engine returns a `nextPageToken` that can be used to get\nthe next page of results in subsequent list requests. Acceptable values are\n`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. 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.", + "description": "Sorts list results by a certain order. By default, results\nare returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation\ntimestamp using `orderBy=\"creationTimestamp desc\"`. This sorts\nresults based on the `creationTimestamp` field in\nreverse chronological order (newest result first). Use this to sort\nresources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or\n`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.", + "description": "Specifies a page token to use. Set `pageToken` to the\n`nextPageToken` returned by a previous list request to get\nthe next page of results.", "location": "query", "type": "string" }, @@ -9182,12 +10857,12 @@ "type": "string" }, "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", + "description": "Opt-in for partial success behavior which provides partial results in case\nof failure. The default value is false.\n\nFor example, when partial success behavior is enabled, aggregatedList for a\nsingle zone scope either returns all resources in the zone or no resources,\nwith an error code.", "location": "query", "type": "boolean" }, "zone": { - "description": "The name of the zone where the instance group is located.", + "description": "The name of the zone\nwhere the instance group is located.", "location": "path", "required": true, "type": "string" @@ -9207,7 +10882,7 @@ ] }, "removeInstances": { - "description": "Removes one or more instances from the specified instance group, but does not delete those instances. If the group is part of a backend service that has enabled connection draining, it can take up to 60 seconds after the connection draining duration before the VM instance is removed or deleted.", + "description": "Removes one or more instances from the specified instance group, but does\nnot delete those instances.\n\nIf the group is part of a backend\nservice that has enabled\nconnection draining, it can take up to 60 seconds after the connection\ndraining duration before the VM instance is removed or deleted.", "flatPath": "projects/{project}/zones/{zone}/instanceGroups/{instanceGroup}/removeInstances", "httpMethod": "POST", "id": "compute.instanceGroups.removeInstances", @@ -9218,7 +10893,7 @@ ], "parameters": { "instanceGroup": { - "description": "The name of the instance group where the specified instances will be removed.", + "description": "The name of the instance group where the specified instances will be\nremoved.", "location": "path", "required": true, "type": "string" @@ -9231,12 +10906,12 @@ "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. 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).", + "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).", "location": "query", "type": "string" }, "zone": { - "description": "The name of the zone where the instance group is located.", + "description": "The name of the zone\nwhere the instance group is located.", "location": "path", "required": true, "type": "string" @@ -9279,12 +10954,12 @@ "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. 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).", + "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).", "location": "query", "type": "string" }, "zone": { - "description": "The name of the zone where the instance group is located.", + "description": "The name of the zone\nwhere the instance group is located.", "location": "path", "required": true, "type": "string" @@ -9301,6 +10976,52 @@ "https://www.googleapis.com/auth/cloud-platform", "https://www.googleapis.com/auth/compute" ] + }, + "testIamPermissions": { + "description": "Returns permissions that a caller has on the specified resource.", + "flatPath": "projects/{project}/zones/{zone}/instanceGroups/{resource}/testIamPermissions", + "httpMethod": "POST", + "id": "compute.instanceGroups.testIamPermissions", + "parameterOrder": [ + "project", + "zone", + "resource" + ], + "parameters": { + "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" + }, + "resource": { + "description": "Name or id of the resource for this request.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "required": true, + "type": "string" + }, + "zone": { + "description": "The name of the zone for this request.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "required": true, + "type": "string" + } + }, + "path": "projects/{project}/zones/{zone}/instanceGroups/{resource}/testIamPermissions", + "request": { + "$ref": "TestPermissionsRequest" + }, + "response": { + "$ref": "TestPermissionsResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ] } } }, @@ -9359,7 +11080,7 @@ "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. 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).", + "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).", "location": "query", "type": "string" }, @@ -9393,7 +11114,7 @@ "instanceTemplates": { "methods": { "aggregatedList": { - "description": "Retrieves the list of all InstanceTemplates resources, regional and global, available to the specified project. To prevent failure, Google recommends that you set the `returnPartialSuccess` parameter to `true`.", + "description": "Retrieves the list of all InstanceTemplates resources, regional and global,\navailable to the specified project.\n\nTo prevent failure, Google recommends that you set the\n`returnPartialSuccess` parameter to `true`.", "flatPath": "projects/{project}/aggregated/instanceTemplates", "httpMethod": "GET", "id": "compute.instanceTemplates.aggregatedList", @@ -9402,30 +11123,30 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` 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) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.", + "description": "A filter expression that filters resources listed in the response. Most\nCompute resources support two types of filter expressions:\nexpressions that support regular expressions and expressions that follow\nAPI improvement proposal AIP-160.\nThese two types of filter expressions cannot be mixed in one request.\n\nIf you want to use AIP-160, your expression must specify the field name, an\noperator, and the value that you want to use for filtering. The value\nmust be a string, a number, or a boolean. The operator\nmust be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`.\n\nFor example, if you are filtering Compute Engine instances, you can\nexclude instances named `example-instance` by specifying\n`name != example-instance`.\n\nThe `:*` comparison can be used to test whether a key has been defined.\nFor example, to find all objects with `owner` label use:\n```\nlabels.owner:*\n```\n\nYou can also filter nested fields. For example, you could specify\n`scheduling.automaticRestart = false` to include instances only\nif they are not scheduled for automatic restarts. You can use filtering\non nested fields to filter based onresource labels.\n\nTo filter on multiple expressions, provide each separate expression within\nparentheses. For example:\n```\n(scheduling.automaticRestart = true)\n(cpuPlatform = \"Intel Skylake\")\n```\nBy default, each expression is an `AND` expression. However, you\ncan include `AND` and `OR` expressions explicitly.\nFor example:\n```\n(cpuPlatform = \"Intel Skylake\") OR\n(cpuPlatform = \"Intel Broadwell\") AND\n(scheduling.automaticRestart = true)\n```\n\nIf you want to use a regular expression, use the `eq` (equal) or `ne`\n(not equal) operator against a single un-parenthesized expression with or\nwithout quotes or against multiple parenthesized expressions. Examples:\n\n`fieldname eq unquoted literal`\n`fieldname eq 'single quoted literal'`\n`fieldname eq \"double quoted literal\"`\n`(fieldname1 eq literal) (fieldname2 ne \"literal\")`\n\nThe literal value is interpreted as a regular expression using GoogleRE2 library syntax.\nThe literal value must match the entire field.\n\nFor example, to filter for instances that do not end with name \"instance\",\nyou would use `name ne .*instance`.\n\nYou cannot combine constraints on multiple fields using regular\nexpressions.", "location": "query", "type": "string" }, "includeAllScopes": { - "description": "Indicates whether every visible scope for each scope type (zone, region, global) should be included in the response. For new resource types added after this field, the flag has no effect as new resource types will always include every visible scope for each scope type in response. For resource types which predate this field, if this flag is omitted or false, only scopes of the scope types where the resource type is expected to be found will be included.", + "description": "Indicates whether every visible scope for each scope type (zone, region,\nglobal) should be included in the response. For new resource types added\nafter this field, the flag has no effect as new resource types will always\ninclude every visible scope for each scope type in response. For resource\ntypes which predate this field, if this flag is omitted or false, only\nscopes of the scope types where the resource type is expected to be found\nwill be included.", "location": "query", "type": "boolean" }, "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`)", + "description": "The maximum number of results per page that should be returned.\nIf the number of available results is larger than `maxResults`,\nCompute Engine returns a `nextPageToken` that can be used to get\nthe next page of results in subsequent list requests. Acceptable values are\n`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. 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.", + "description": "Sorts list results by a certain order. By default, results\nare returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation\ntimestamp using `orderBy=\"creationTimestamp desc\"`. This sorts\nresults based on the `creationTimestamp` field in\nreverse chronological order (newest result first). Use this to sort\nresources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or\n`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.", + "description": "Specifies a page token to use. Set `pageToken` to the\n`nextPageToken` returned by a previous list request to get\nthe next page of results.", "location": "query", "type": "string" }, @@ -9437,12 +11158,12 @@ "type": "string" }, "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", + "description": "Opt-in for partial success behavior which provides partial results in case\nof failure. The default value is false.\n\nFor example, when partial success behavior is enabled, aggregatedList for a\nsingle zone scope either returns all resources in the zone or no resources,\nwith an error code.", "location": "query", "type": "boolean" }, "serviceProjectNumber": { - "description": "The Shared VPC service project id or service project number for which aggregated list request is invoked for subnetworks list-usable api.", + "description": "The Shared VPC service project id or service project number for which\naggregated list request is invoked for subnetworks list-usable api.", "format": "int64", "location": "query", "type": "string" @@ -9459,7 +11180,7 @@ ] }, "delete": { - "description": "Deletes the specified instance template. Deleting an instance template is permanent and cannot be undone. It is not possible to delete templates that are already in use by a managed instance group.", + "description": "Deletes the specified instance template. Deleting an instance template is\npermanent and cannot be undone. It is not possible to delete templates\nthat are already in use by a managed instance group.", "flatPath": "projects/{project}/global/instanceTemplates/{instanceTemplate}", "httpMethod": "DELETE", "id": "compute.instanceTemplates.delete", @@ -9483,7 +11204,7 @@ "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. 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).", + "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).", "location": "query", "type": "string" } @@ -9533,7 +11254,7 @@ ] }, "getIamPolicy": { - "description": "Gets the access control policy for a resource. May be empty if no such policy or resource exists.", + "description": "Gets the access control policy for a resource. May be empty if no such\npolicy or resource exists.", "flatPath": "projects/{project}/global/instanceTemplates/{resource}/getIamPolicy", "httpMethod": "GET", "id": "compute.instanceTemplates.getIamPolicy", @@ -9574,7 +11295,7 @@ ] }, "insert": { - "description": "Creates an instance template in the specified project using the data that is included in the request. If you are creating a new template to update an existing instance group, your new instance template must use the same network or, if applicable, the same subnetwork as the original template.", + "description": "Creates an instance template in the specified project using the\ndata that is included in the request. If you are creating a new template to\nupdate an existing instance group, your new instance template must use the\nsame network or, if applicable, the same subnetwork as the original\ntemplate.", "flatPath": "projects/{project}/global/instanceTemplates", "httpMethod": "POST", "id": "compute.instanceTemplates.insert", @@ -9590,7 +11311,7 @@ "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. 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).", + "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).", "location": "query", "type": "string" } @@ -9608,7 +11329,7 @@ ] }, "list": { - "description": "Retrieves a list of instance templates that are contained within the specified project.", + "description": "Retrieves a list of instance templates that are contained within\nthe specified project.", "flatPath": "projects/{project}/global/instanceTemplates", "httpMethod": "GET", "id": "compute.instanceTemplates.list", @@ -9617,25 +11338,25 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` 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) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.", + "description": "A filter expression that filters resources listed in the response. Most\nCompute resources support two types of filter expressions:\nexpressions that support regular expressions and expressions that follow\nAPI improvement proposal AIP-160.\nThese two types of filter expressions cannot be mixed in one request.\n\nIf you want to use AIP-160, your expression must specify the field name, an\noperator, and the value that you want to use for filtering. The value\nmust be a string, a number, or a boolean. The operator\nmust be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`.\n\nFor example, if you are filtering Compute Engine instances, you can\nexclude instances named `example-instance` by specifying\n`name != example-instance`.\n\nThe `:*` comparison can be used to test whether a key has been defined.\nFor example, to find all objects with `owner` label use:\n```\nlabels.owner:*\n```\n\nYou can also filter nested fields. For example, you could specify\n`scheduling.automaticRestart = false` to include instances only\nif they are not scheduled for automatic restarts. You can use filtering\non nested fields to filter based onresource labels.\n\nTo filter on multiple expressions, provide each separate expression within\nparentheses. For example:\n```\n(scheduling.automaticRestart = true)\n(cpuPlatform = \"Intel Skylake\")\n```\nBy default, each expression is an `AND` expression. However, you\ncan include `AND` and `OR` expressions explicitly.\nFor example:\n```\n(cpuPlatform = \"Intel Skylake\") OR\n(cpuPlatform = \"Intel Broadwell\") AND\n(scheduling.automaticRestart = true)\n```\n\nIf you want to use a regular expression, use the `eq` (equal) or `ne`\n(not equal) operator against a single un-parenthesized expression with or\nwithout quotes or against multiple parenthesized expressions. Examples:\n\n`fieldname eq unquoted literal`\n`fieldname eq 'single quoted literal'`\n`fieldname eq \"double quoted literal\"`\n`(fieldname1 eq literal) (fieldname2 ne \"literal\")`\n\nThe literal value is interpreted as a regular expression using GoogleRE2 library syntax.\nThe literal value must match the entire field.\n\nFor example, to filter for instances that do not end with name \"instance\",\nyou would use `name ne .*instance`.\n\nYou cannot combine constraints on multiple fields using regular\nexpressions.", "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`)", + "description": "The maximum number of results per page that should be returned.\nIf the number of available results is larger than `maxResults`,\nCompute Engine returns a `nextPageToken` that can be used to get\nthe next page of results in subsequent list requests. Acceptable values are\n`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. 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.", + "description": "Sorts list results by a certain order. By default, results\nare returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation\ntimestamp using `orderBy=\"creationTimestamp desc\"`. This sorts\nresults based on the `creationTimestamp` field in\nreverse chronological order (newest result first). Use this to sort\nresources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or\n`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.", + "description": "Specifies a page token to use. Set `pageToken` to the\n`nextPageToken` returned by a previous list request to get\nthe next page of results.", "location": "query", "type": "string" }, @@ -9647,7 +11368,7 @@ "type": "string" }, "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", + "description": "Opt-in for partial success behavior which provides partial results in case\nof failure. The default value is false.\n\nFor example, when partial success behavior is enabled, aggregatedList for a\nsingle zone scope either returns all resources in the zone or no resources,\nwith an error code.", "location": "query", "type": "boolean" } @@ -9663,7 +11384,7 @@ ] }, "setIamPolicy": { - "description": "Sets the access control policy on the specified resource. Replaces any existing policy.", + "description": "Sets the access control policy on the specified resource.\nReplaces any existing policy.", "flatPath": "projects/{project}/global/instanceTemplates/{resource}/setIamPolicy", "httpMethod": "POST", "id": "compute.instanceTemplates.setIamPolicy", @@ -9774,7 +11495,7 @@ "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. 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).", + "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).", "location": "query", "type": "string" }, @@ -9798,8 +11519,57 @@ "https://www.googleapis.com/auth/compute" ] }, + "addNetworkInterface": { + "description": "Adds one dynamic network interface to an active instance.", + "flatPath": "projects/{project}/zones/{zone}/instances/{instance}/addNetworkInterface", + "httpMethod": "POST", + "id": "compute.instances.addNetworkInterface", + "parameterOrder": [ + "project", + "zone", + "instance" + ], + "parameters": { + "instance": { + "description": "The instance name for this request stored as resource_id.\nName should conform to RFC1035 or be an unsigned long integer.", + "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\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).", + "location": "query", + "type": "string" + }, + "zone": { + "description": "The name of the zone for this request.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "required": true, + "type": "string" + } + }, + "path": "projects/{project}/zones/{zone}/instances/{instance}/addNetworkInterface", + "request": { + "$ref": "NetworkInterface" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ] + }, "addResourcePolicies": { - "description": "Adds existing resource policies to an instance. You can only add one policy right now which will be applied to this instance for scheduling live migrations.", + "description": "Adds existing resource policies to an instance. You can only add one\npolicy right now which will be applied to this instance for scheduling live\nmigrations.", "flatPath": "projects/{project}/zones/{zone}/instances/{instance}/addResourcePolicies", "httpMethod": "POST", "id": "compute.instances.addResourcePolicies", @@ -9824,7 +11594,7 @@ "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. 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).", + "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).", "location": "query", "type": "string" }, @@ -9849,7 +11619,7 @@ ] }, "aggregatedList": { - "description": "Retrieves an aggregated list of all of the instances in your project across all regions and zones. The performance of this method degrades when a filter is specified on a project that has a very large number of instances. To prevent failure, Google recommends that you set the `returnPartialSuccess` parameter to `true`.", + "description": "Retrieves an aggregated list of all of the instances in your project\nacross all regions and zones.\n\nThe performance of this method degrades when a filter is specified on a\nproject that has a very large number of instances.\n\nTo prevent failure, Google recommends that you set the\n`returnPartialSuccess` parameter to `true`.", "flatPath": "projects/{project}/aggregated/instances", "httpMethod": "GET", "id": "compute.instances.aggregatedList", @@ -9858,30 +11628,30 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` 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) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.", + "description": "A filter expression that filters resources listed in the response. Most\nCompute resources support two types of filter expressions:\nexpressions that support regular expressions and expressions that follow\nAPI improvement proposal AIP-160.\nThese two types of filter expressions cannot be mixed in one request.\n\nIf you want to use AIP-160, your expression must specify the field name, an\noperator, and the value that you want to use for filtering. The value\nmust be a string, a number, or a boolean. The operator\nmust be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`.\n\nFor example, if you are filtering Compute Engine instances, you can\nexclude instances named `example-instance` by specifying\n`name != example-instance`.\n\nThe `:*` comparison can be used to test whether a key has been defined.\nFor example, to find all objects with `owner` label use:\n```\nlabels.owner:*\n```\n\nYou can also filter nested fields. For example, you could specify\n`scheduling.automaticRestart = false` to include instances only\nif they are not scheduled for automatic restarts. You can use filtering\non nested fields to filter based onresource labels.\n\nTo filter on multiple expressions, provide each separate expression within\nparentheses. For example:\n```\n(scheduling.automaticRestart = true)\n(cpuPlatform = \"Intel Skylake\")\n```\nBy default, each expression is an `AND` expression. However, you\ncan include `AND` and `OR` expressions explicitly.\nFor example:\n```\n(cpuPlatform = \"Intel Skylake\") OR\n(cpuPlatform = \"Intel Broadwell\") AND\n(scheduling.automaticRestart = true)\n```\n\nIf you want to use a regular expression, use the `eq` (equal) or `ne`\n(not equal) operator against a single un-parenthesized expression with or\nwithout quotes or against multiple parenthesized expressions. Examples:\n\n`fieldname eq unquoted literal`\n`fieldname eq 'single quoted literal'`\n`fieldname eq \"double quoted literal\"`\n`(fieldname1 eq literal) (fieldname2 ne \"literal\")`\n\nThe literal value is interpreted as a regular expression using GoogleRE2 library syntax.\nThe literal value must match the entire field.\n\nFor example, to filter for instances that do not end with name \"instance\",\nyou would use `name ne .*instance`.\n\nYou cannot combine constraints on multiple fields using regular\nexpressions.", "location": "query", "type": "string" }, "includeAllScopes": { - "description": "Indicates whether every visible scope for each scope type (zone, region, global) should be included in the response. For new resource types added after this field, the flag has no effect as new resource types will always include every visible scope for each scope type in response. For resource types which predate this field, if this flag is omitted or false, only scopes of the scope types where the resource type is expected to be found will be included.", + "description": "Indicates whether every visible scope for each scope type (zone, region,\nglobal) should be included in the response. For new resource types added\nafter this field, the flag has no effect as new resource types will always\ninclude every visible scope for each scope type in response. For resource\ntypes which predate this field, if this flag is omitted or false, only\nscopes of the scope types where the resource type is expected to be found\nwill be included.", "location": "query", "type": "boolean" }, "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`)", + "description": "The maximum number of results per page that should be returned.\nIf the number of available results is larger than `maxResults`,\nCompute Engine returns a `nextPageToken` that can be used to get\nthe next page of results in subsequent list requests. Acceptable values are\n`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. 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.", + "description": "Sorts list results by a certain order. By default, results\nare returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation\ntimestamp using `orderBy=\"creationTimestamp desc\"`. This sorts\nresults based on the `creationTimestamp` field in\nreverse chronological order (newest result first). Use this to sort\nresources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or\n`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.", + "description": "Specifies a page token to use. Set `pageToken` to the\n`nextPageToken` returned by a previous list request to get\nthe next page of results.", "location": "query", "type": "string" }, @@ -9893,12 +11663,12 @@ "type": "string" }, "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", + "description": "Opt-in for partial success behavior which provides partial results in case\nof failure. The default value is false.\n\nFor example, when partial success behavior is enabled, aggregatedList for a\nsingle zone scope either returns all resources in the zone or no resources,\nwith an error code.", "location": "query", "type": "boolean" }, "serviceProjectNumber": { - "description": "The Shared VPC service project id or service project number for which aggregated list request is invoked for subnetworks list-usable api.", + "description": "The Shared VPC service project id or service project number for which\naggregated list request is invoked for subnetworks list-usable api.", "format": "int64", "location": "query", "type": "string" @@ -9915,7 +11685,7 @@ ] }, "attachDisk": { - "description": "Attaches an existing Disk resource to an instance. You must first create the disk before you can attach it. It is not possible to create and attach a disk at the same time. For more information, read Adding a persistent disk to your instance.", + "description": "Attaches an existing Disk resource to an instance. You must first\ncreate the disk before you can attach it. It is not possible to create\nand attach a disk at the same time. For more information, readAdding a\npersistent disk to your instance.", "flatPath": "projects/{project}/zones/{zone}/instances/{instance}/attachDisk", "httpMethod": "POST", "id": "compute.instances.attachDisk", @@ -9926,7 +11696,7 @@ ], "parameters": { "forceAttach": { - "description": "Whether to force attach the regional disk even if it's currently attached to another instance. If you try to force attach a zonal disk to an instance, you will receive an error.", + "description": "Whether to force attach the regional disk even if it's currently attached\nto another instance. If you try to force attach a zonal disk to an\ninstance, you will receive an error.", "location": "query", "type": "boolean" }, @@ -9945,7 +11715,7 @@ "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. 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).", + "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).", "location": "query", "type": "string" }, @@ -9970,7 +11740,7 @@ ] }, "bulkInsert": { - "description": "Creates multiple instances. Count specifies the number of instances to create. For more information, see About bulk creation of VMs.", + "description": "Creates multiple instances. Count specifies the number of instances to\ncreate. For more information, seeAbout bulk\ncreation of VMs.", "flatPath": "projects/{project}/zones/{zone}/instances/bulkInsert", "httpMethod": "POST", "id": "compute.instances.bulkInsert", @@ -9987,7 +11757,7 @@ "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. 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).", + "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).", "location": "query", "type": "string" }, @@ -10012,7 +11782,7 @@ ] }, "delete": { - "description": "Deletes the specified Instance resource. For more information, see Deleting an instance.", + "description": "Deletes the specified Instance resource. For more information, seeDeleting\nan instance.", "flatPath": "projects/{project}/zones/{zone}/instances/{instance}", "httpMethod": "DELETE", "id": "compute.instances.delete", @@ -10037,7 +11807,7 @@ "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. 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).", + "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).", "location": "query", "type": "string" }, @@ -10098,7 +11868,7 @@ "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. 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).", + "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).", "location": "query", "type": "string" }, @@ -10119,6 +11889,59 @@ "https://www.googleapis.com/auth/compute" ] }, + "deleteNetworkInterface": { + "description": "Deletes one dynamic network interface from an active instance.\nInstancesDeleteNetworkInterfaceRequest indicates:\n- instance from which to delete, using project+zone+resource_id fields;\n- dynamic network interface to be deleted, using network_interface_name\nfield;", + "flatPath": "projects/{project}/zones/{zone}/instances/{instance}/deleteNetworkInterface", + "httpMethod": "POST", + "id": "compute.instances.deleteNetworkInterface", + "parameterOrder": [ + "project", + "zone", + "instance", + "networkInterfaceName" + ], + "parameters": { + "instance": { + "description": "The instance name for this request stored as resource_id.\nName should conform to RFC1035 or be an unsigned long integer.", + "location": "path", + "required": true, + "type": "string" + }, + "networkInterfaceName": { + "description": "The name of the dynamic network interface to be deleted from the instance.", + "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\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).", + "location": "query", + "type": "string" + }, + "zone": { + "description": "The name of the zone for this request.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "required": true, + "type": "string" + } + }, + "path": "projects/{project}/zones/{zone}/instances/{instance}/deleteNetworkInterface", + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ] + }, "detachDisk": { "description": "Detaches a disk from an instance.", "flatPath": "projects/{project}/zones/{zone}/instances/{instance}/detachDisk", @@ -10132,7 +11955,7 @@ ], "parameters": { "deviceName": { - "description": "The device name of the disk to detach. Make a get() request on the instance to view currently attached disks and device names.", + "description": "The device name of the disk to detach. Make a get() request on\nthe instance to view currently attached disks and device names.", "location": "query", "required": true, "type": "string" @@ -10152,7 +11975,7 @@ "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. 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).", + "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).", "location": "query", "type": "string" }, @@ -10320,7 +12143,7 @@ ] }, "getIamPolicy": { - "description": "Gets the access control policy for a resource. May be empty if no such policy or resource exists.", + "description": "Gets the access control policy for a resource. May be empty if no such\npolicy or resource exists.", "flatPath": "projects/{project}/zones/{zone}/instances/{resource}/getIamPolicy", "httpMethod": "GET", "id": "compute.instances.getIamPolicy", @@ -10446,7 +12269,7 @@ "type": "string" }, "start": { - "description": "Specifies the starting byte position of the output to return. To start with the first byte of output to the specified port, omit this field or set it to `0`. If the output for that byte position is available, this field matches the `start` parameter sent with the request. If the amount of serial console output exceeds the size of the buffer (1 MB), the oldest output is discarded and is no longer available. If the requested start position refers to discarded output, the start position is adjusted to the oldest output still available, and the adjusted start position is returned as the `start` property value. You can also provide a negative start position, which translates to the most recent number of bytes written to the serial port. For example, -3 is interpreted as the most recent 3 bytes written to the serial console.", + "description": "Specifies the starting byte position of the output to return. To start with\nthe first byte of output to the specified port, omit this field or set it\nto `0`.\n\nIf the output for that byte position is available, this field matches the\n`start` parameter sent with the request. If the amount of serial console\noutput exceeds the size of the buffer (1 MB), the oldest output is\ndiscarded and is no longer available. If the requested start position\nrefers to discarded output, the start position is adjusted to the oldest\noutput still available, and the adjusted start position is returned as the\n`start` property value.\n\nYou can also provide a negative start position, which translates to the\nmost recent number of bytes written to the serial port. For example, -3 is\ninterpreted as the most recent 3 bytes written to the serial console. Note\nthat the negative start is bounded by the retained buffer size, and the\nreturned serial console output will not exceed the max buffer size.", "format": "int64", "location": "query", "type": "string" @@ -10513,7 +12336,7 @@ ] }, "insert": { - "description": "Creates an instance resource in the specified project using the data included in the request.", + "description": "Creates an instance resource in the specified project using the data\nincluded in the request.", "flatPath": "projects/{project}/zones/{zone}/instances", "httpMethod": "POST", "id": "compute.instances.insert", @@ -10530,17 +12353,17 @@ "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. 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).", + "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).", "location": "query", "type": "string" }, "sourceInstanceTemplate": { - "description": "Specifies instance template to create the instance. This field is optional. It can be a full or partial URL. For example, the following are all valid URLs to an instance template: - https://www.googleapis.com/compute/v1/projects/project /global/instanceTemplates/instanceTemplate - projects/project/global/instanceTemplates/instanceTemplate - global/instanceTemplates/instanceTemplate ", + "description": "Specifies instance template to create the instance.\n\nThis field is optional. It can be a full or partial URL. For example, the\nfollowing are all valid URLs to an instance template:\n \n \n - https://www.googleapis.com/compute/v1/projects/project/global/instanceTemplates/instanceTemplate\n - projects/project/global/instanceTemplates/instanceTemplate\n - global/instanceTemplates/instanceTemplate", "location": "query", "type": "string" }, "sourceMachineImage": { - "description": "Specifies the machine image to use to create the instance. This field is optional. It can be a full or partial URL. For example, the following are all valid URLs to a machine image: - https://www.googleapis.com/compute/v1/projects/project/global/global /machineImages/machineImage - projects/project/global/global/machineImages/machineImage - global/machineImages/machineImage ", + "description": "Specifies the machine image to use to create the instance.\n\nThis field is optional. It can be a full or partial URL. For example, the\nfollowing are all valid URLs to a machine image:\n \n \n - https://www.googleapis.com/compute/v1/projects/project/global/global/machineImages/machineImage\n - projects/project/global/global/machineImages/machineImage\n - global/machineImages/machineImage", "location": "query", "type": "string" }, @@ -10565,7 +12388,7 @@ ] }, "list": { - "description": "Retrieves the list of instances contained within the specified zone.", + "description": "Retrieves the list of instances contained within\nthe specified zone.", "flatPath": "projects/{project}/zones/{zone}/instances", "httpMethod": "GET", "id": "compute.instances.list", @@ -10575,25 +12398,25 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` 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) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.", + "description": "A filter expression that filters resources listed in the response. Most\nCompute resources support two types of filter expressions:\nexpressions that support regular expressions and expressions that follow\nAPI improvement proposal AIP-160.\nThese two types of filter expressions cannot be mixed in one request.\n\nIf you want to use AIP-160, your expression must specify the field name, an\noperator, and the value that you want to use for filtering. The value\nmust be a string, a number, or a boolean. The operator\nmust be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`.\n\nFor example, if you are filtering Compute Engine instances, you can\nexclude instances named `example-instance` by specifying\n`name != example-instance`.\n\nThe `:*` comparison can be used to test whether a key has been defined.\nFor example, to find all objects with `owner` label use:\n```\nlabels.owner:*\n```\n\nYou can also filter nested fields. For example, you could specify\n`scheduling.automaticRestart = false` to include instances only\nif they are not scheduled for automatic restarts. You can use filtering\non nested fields to filter based onresource labels.\n\nTo filter on multiple expressions, provide each separate expression within\nparentheses. For example:\n```\n(scheduling.automaticRestart = true)\n(cpuPlatform = \"Intel Skylake\")\n```\nBy default, each expression is an `AND` expression. However, you\ncan include `AND` and `OR` expressions explicitly.\nFor example:\n```\n(cpuPlatform = \"Intel Skylake\") OR\n(cpuPlatform = \"Intel Broadwell\") AND\n(scheduling.automaticRestart = true)\n```\n\nIf you want to use a regular expression, use the `eq` (equal) or `ne`\n(not equal) operator against a single un-parenthesized expression with or\nwithout quotes or against multiple parenthesized expressions. Examples:\n\n`fieldname eq unquoted literal`\n`fieldname eq 'single quoted literal'`\n`fieldname eq \"double quoted literal\"`\n`(fieldname1 eq literal) (fieldname2 ne \"literal\")`\n\nThe literal value is interpreted as a regular expression using GoogleRE2 library syntax.\nThe literal value must match the entire field.\n\nFor example, to filter for instances that do not end with name \"instance\",\nyou would use `name ne .*instance`.\n\nYou cannot combine constraints on multiple fields using regular\nexpressions.", "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`)", + "description": "The maximum number of results per page that should be returned.\nIf the number of available results is larger than `maxResults`,\nCompute Engine returns a `nextPageToken` that can be used to get\nthe next page of results in subsequent list requests. Acceptable values are\n`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. 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.", + "description": "Sorts list results by a certain order. By default, results\nare returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation\ntimestamp using `orderBy=\"creationTimestamp desc\"`. This sorts\nresults based on the `creationTimestamp` field in\nreverse chronological order (newest result first). Use this to sort\nresources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or\n`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.", + "description": "Specifies a page token to use. Set `pageToken` to the\n`nextPageToken` returned by a previous list request to get\nthe next page of results.", "location": "query", "type": "string" }, @@ -10605,7 +12428,7 @@ "type": "string" }, "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", + "description": "Opt-in for partial success behavior which provides partial results in case\nof failure. The default value is false.\n\nFor example, when partial success behavior is enabled, aggregatedList for a\nsingle zone scope either returns all resources in the zone or no resources,\nwith an error code.", "location": "query", "type": "boolean" }, @@ -10628,7 +12451,7 @@ ] }, "listReferrers": { - "description": "Retrieves a list of resources that refer to the VM instance specified in the request. For example, if the VM instance is part of a managed or unmanaged instance group, the referrers list includes the instance group. For more information, read Viewing referrers to VM instances.", + "description": "Retrieves a list of resources that refer to the VM instance specified in\nthe request. For example, if the VM instance is part of a managed or\nunmanaged instance group, the referrers list includes the instance group.\nFor more information, readViewing\nreferrers to VM instances.", "flatPath": "projects/{project}/zones/{zone}/instances/{instance}/referrers", "httpMethod": "GET", "id": "compute.instances.listReferrers", @@ -10639,12 +12462,12 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` 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) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.", + "description": "A filter expression that filters resources listed in the response. Most\nCompute resources support two types of filter expressions:\nexpressions that support regular expressions and expressions that follow\nAPI improvement proposal AIP-160.\nThese two types of filter expressions cannot be mixed in one request.\n\nIf you want to use AIP-160, your expression must specify the field name, an\noperator, and the value that you want to use for filtering. The value\nmust be a string, a number, or a boolean. The operator\nmust be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`.\n\nFor example, if you are filtering Compute Engine instances, you can\nexclude instances named `example-instance` by specifying\n`name != example-instance`.\n\nThe `:*` comparison can be used to test whether a key has been defined.\nFor example, to find all objects with `owner` label use:\n```\nlabels.owner:*\n```\n\nYou can also filter nested fields. For example, you could specify\n`scheduling.automaticRestart = false` to include instances only\nif they are not scheduled for automatic restarts. You can use filtering\non nested fields to filter based onresource labels.\n\nTo filter on multiple expressions, provide each separate expression within\nparentheses. For example:\n```\n(scheduling.automaticRestart = true)\n(cpuPlatform = \"Intel Skylake\")\n```\nBy default, each expression is an `AND` expression. However, you\ncan include `AND` and `OR` expressions explicitly.\nFor example:\n```\n(cpuPlatform = \"Intel Skylake\") OR\n(cpuPlatform = \"Intel Broadwell\") AND\n(scheduling.automaticRestart = true)\n```\n\nIf you want to use a regular expression, use the `eq` (equal) or `ne`\n(not equal) operator against a single un-parenthesized expression with or\nwithout quotes or against multiple parenthesized expressions. Examples:\n\n`fieldname eq unquoted literal`\n`fieldname eq 'single quoted literal'`\n`fieldname eq \"double quoted literal\"`\n`(fieldname1 eq literal) (fieldname2 ne \"literal\")`\n\nThe literal value is interpreted as a regular expression using GoogleRE2 library syntax.\nThe literal value must match the entire field.\n\nFor example, to filter for instances that do not end with name \"instance\",\nyou would use `name ne .*instance`.\n\nYou cannot combine constraints on multiple fields using regular\nexpressions.", "location": "query", "type": "string" }, "instance": { - "description": "Name of the target instance scoping this request, or '-' if the request should span over all instances in the container.", + "description": "Name of the target instance scoping this request, or '-' if the\nrequest should span over all instances in the container.", "location": "path", "pattern": "-|[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", "required": true, @@ -10652,19 +12475,19 @@ }, "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`)", + "description": "The maximum number of results per page that should be returned.\nIf the number of available results is larger than `maxResults`,\nCompute Engine returns a `nextPageToken` that can be used to get\nthe next page of results in subsequent list requests. Acceptable values are\n`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. 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.", + "description": "Sorts list results by a certain order. By default, results\nare returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation\ntimestamp using `orderBy=\"creationTimestamp desc\"`. This sorts\nresults based on the `creationTimestamp` field in\nreverse chronological order (newest result first). Use this to sort\nresources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or\n`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.", + "description": "Specifies a page token to use. Set `pageToken` to the\n`nextPageToken` returned by a previous list request to get\nthe next page of results.", "location": "query", "type": "string" }, @@ -10676,7 +12499,7 @@ "type": "string" }, "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", + "description": "Opt-in for partial success behavior which provides partial results in case\nof failure. The default value is false.\n\nFor example, when partial success behavior is enabled, aggregatedList for a\nsingle zone scope either returns all resources in the zone or no resources,\nwith an error code.", "location": "query", "type": "boolean" }, @@ -10724,7 +12547,7 @@ "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. 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).", + "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).", "location": "query", "type": "string" }, @@ -10771,7 +12594,7 @@ "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. 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).", + "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).", "location": "query", "type": "string" }, @@ -10795,11 +12618,11 @@ "https://www.googleapis.com/auth/compute" ] }, - "reset": { - "description": "Performs a reset on the instance. This is a hard reset. The VM does not do a graceful shutdown. For more information, see Resetting an instance.", - "flatPath": "projects/{project}/zones/{zone}/instances/{instance}/reset", + "reportHostAsFaulty": { + "description": "Mark the host as faulty and try to restart the instance on a new host.", + "flatPath": "projects/{project}/zones/{zone}/instances/{instance}/reportHostAsFaulty", "httpMethod": "POST", - "id": "compute.instances.reset", + "id": "compute.instances.reportHostAsFaulty", "parameterOrder": [ "project", "zone", @@ -10821,7 +12644,7 @@ "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. 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).", + "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).", "location": "query", "type": "string" }, @@ -10833,54 +12656,10 @@ "type": "string" } }, - "path": "projects/{project}/zones/{zone}/instances/{instance}/reset", - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ] - }, - "resume": { - "description": "Resumes an instance that was suspended using the instances().suspend method.", - "flatPath": "projects/{project}/zones/{zone}/instances/{instance}/resume", - "httpMethod": "POST", - "id": "compute.instances.resume", - "parameterOrder": [ - "project", - "zone", - "instance" - ], - "parameters": { - "instance": { - "description": "Name of the instance resource to resume.", - "location": "path", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "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. 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).", - "location": "query", - "type": "string" - }, - "zone": { - "description": "The name of the zone for this request.", - "location": "path", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "required": true, - "type": "string" - } + "path": "projects/{project}/zones/{zone}/instances/{instance}/reportHostAsFaulty", + "request": { + "$ref": "InstancesReportHostAsFaultyRequest" }, - "path": "projects/{project}/zones/{zone}/instances/{instance}/resume", "response": { "$ref": "Operation" }, @@ -10889,11 +12668,11 @@ "https://www.googleapis.com/auth/compute" ] }, - "sendDiagnosticInterrupt": { - "description": "Sends diagnostic interrupt to the instance.", - "flatPath": "projects/{project}/zones/{zone}/instances/{instance}/sendDiagnosticInterrupt", + "reset": { + "description": "Performs a reset on the instance. This is a hard reset. The VM\ndoes not do a graceful shutdown. For more information, seeResetting\nan instance.", + "flatPath": "projects/{project}/zones/{zone}/instances/{instance}/reset", "httpMethod": "POST", - "id": "compute.instances.sendDiagnosticInterrupt", + "id": "compute.instances.reset", "parameterOrder": [ "project", "zone", @@ -10914,115 +12693,8 @@ "required": true, "type": "string" }, - "zone": { - "description": "The name of the zone for this request.", - "location": "path", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "required": true, - "type": "string" - } - }, - "path": "projects/{project}/zones/{zone}/instances/{instance}/sendDiagnosticInterrupt", - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ] - }, - "setDeletionProtection": { - "description": "Sets deletion protection on the instance.", - "flatPath": "projects/{project}/zones/{zone}/instances/{resource}/setDeletionProtection", - "httpMethod": "POST", - "id": "compute.instances.setDeletionProtection", - "parameterOrder": [ - "project", - "zone", - "resource" - ], - "parameters": { - "deletionProtection": { - "default": "true", - "description": "Whether the resource should be protected against deletion.", - "location": "query", - "type": "boolean" - }, - "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. 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).", - "location": "query", - "type": "string" - }, - "resource": { - "description": "Name or id of the resource for this request.", - "location": "path", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "required": true, - "type": "string" - }, - "zone": { - "description": "The name of the zone for this request.", - "location": "path", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "required": true, - "type": "string" - } - }, - "path": "projects/{project}/zones/{zone}/instances/{resource}/setDeletionProtection", - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ] - }, - "setDiskAutoDelete": { - "description": "Sets the auto-delete flag for a disk attached to an instance.", - "flatPath": "projects/{project}/zones/{zone}/instances/{instance}/setDiskAutoDelete", - "httpMethod": "POST", - "id": "compute.instances.setDiskAutoDelete", - "parameterOrder": [ - "project", - "zone", - "instance", - "autoDelete", - "deviceName" - ], - "parameters": { - "autoDelete": { - "description": "Whether to auto-delete the disk when the instance is deleted.", - "location": "query", - "required": true, - "type": "boolean" - }, - "deviceName": { - "description": "The device name of the disk to modify. Make a get() request on the instance to view currently attached disks and device names.", - "location": "query", - "pattern": "\\w[\\w.-]{0,254}", - "required": true, - "type": "string" - }, - "instance": { - "description": "The instance name for this request.", - "location": "path", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "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. 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).", + "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).", "location": "query", "type": "string" }, @@ -11034,7 +12706,7 @@ "type": "string" } }, - "path": "projects/{project}/zones/{zone}/instances/{instance}/setDiskAutoDelete", + "path": "projects/{project}/zones/{zone}/instances/{instance}/reset", "response": { "$ref": "Operation" }, @@ -11043,56 +12715,11 @@ "https://www.googleapis.com/auth/compute" ] }, - "setIamPolicy": { - "description": "Sets the access control policy on the specified resource. Replaces any existing policy.", - "flatPath": "projects/{project}/zones/{zone}/instances/{resource}/setIamPolicy", - "httpMethod": "POST", - "id": "compute.instances.setIamPolicy", - "parameterOrder": [ - "project", - "zone", - "resource" - ], - "parameters": { - "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" - }, - "resource": { - "description": "Name or id of the resource for this request.", - "location": "path", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "required": true, - "type": "string" - }, - "zone": { - "description": "The name of the zone for this request.", - "location": "path", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "required": true, - "type": "string" - } - }, - "path": "projects/{project}/zones/{zone}/instances/{resource}/setIamPolicy", - "request": { - "$ref": "ZoneSetPolicyRequest" - }, - "response": { - "$ref": "Policy" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ] - }, - "setLabels": { - "description": "Sets labels on an instance. To learn more about labels, read the Labeling Resources documentation.", - "flatPath": "projects/{project}/zones/{zone}/instances/{instance}/setLabels", + "resume": { + "description": "Resumes an instance that was suspended using theinstances().suspend\nmethod.", + "flatPath": "projects/{project}/zones/{zone}/instances/{instance}/resume", "httpMethod": "POST", - "id": "compute.instances.setLabels", + "id": "compute.instances.resume", "parameterOrder": [ "project", "zone", @@ -11100,7 +12727,7 @@ ], "parameters": { "instance": { - "description": "Name of the instance scoping this request.", + "description": "Name of the instance resource to resume.", "location": "path", "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", "required": true, @@ -11114,7 +12741,7 @@ "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. 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).", + "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).", "location": "query", "type": "string" }, @@ -11126,10 +12753,7 @@ "type": "string" } }, - "path": "projects/{project}/zones/{zone}/instances/{instance}/setLabels", - "request": { - "$ref": "InstancesSetLabelsRequest" - }, + "path": "projects/{project}/zones/{zone}/instances/{instance}/resume", "response": { "$ref": "Operation" }, @@ -11138,11 +12762,11 @@ "https://www.googleapis.com/auth/compute" ] }, - "setMachineResources": { - "description": "Changes the number and/or type of accelerator for a stopped instance to the values specified in the request.", - "flatPath": "projects/{project}/zones/{zone}/instances/{instance}/setMachineResources", + "sendDiagnosticInterrupt": { + "description": "Sends diagnostic interrupt to the instance.", + "flatPath": "projects/{project}/zones/{zone}/instances/{instance}/sendDiagnosticInterrupt", "httpMethod": "POST", - "id": "compute.instances.setMachineResources", + "id": "compute.instances.sendDiagnosticInterrupt", "parameterOrder": [ "project", "zone", @@ -11163,11 +12787,56 @@ "required": true, "type": "string" }, + "zone": { + "description": "The name of the zone for this request.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "required": true, + "type": "string" + } + }, + "path": "projects/{project}/zones/{zone}/instances/{instance}/sendDiagnosticInterrupt", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ] + }, + "setDeletionProtection": { + "description": "Sets deletion protection on the instance.", + "flatPath": "projects/{project}/zones/{zone}/instances/{resource}/setDeletionProtection", + "httpMethod": "POST", + "id": "compute.instances.setDeletionProtection", + "parameterOrder": [ + "project", + "zone", + "resource" + ], + "parameters": { + "deletionProtection": { + "default": "true", + "description": "Whether the resource should be protected against deletion.", + "location": "query", + "type": "boolean" + }, + "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. 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).", + "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).", "location": "query", "type": "string" }, + "resource": { + "description": "Name or id of the resource for this request.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "required": true, + "type": "string" + }, "zone": { "description": "The name of the zone for this request.", "location": "path", @@ -11176,10 +12845,7 @@ "type": "string" } }, - "path": "projects/{project}/zones/{zone}/instances/{instance}/setMachineResources", - "request": { - "$ref": "InstancesSetMachineResourcesRequest" - }, + "path": "projects/{project}/zones/{zone}/instances/{resource}/setDeletionProtection", "response": { "$ref": "Operation" }, @@ -11188,19 +12854,34 @@ "https://www.googleapis.com/auth/compute" ] }, - "setMachineType": { - "description": "Changes the machine type for a stopped instance to the machine type specified in the request.", - "flatPath": "projects/{project}/zones/{zone}/instances/{instance}/setMachineType", + "setDiskAutoDelete": { + "description": "Sets the auto-delete flag for a disk attached to an instance.", + "flatPath": "projects/{project}/zones/{zone}/instances/{instance}/setDiskAutoDelete", "httpMethod": "POST", - "id": "compute.instances.setMachineType", + "id": "compute.instances.setDiskAutoDelete", "parameterOrder": [ "project", "zone", - "instance" + "instance", + "autoDelete", + "deviceName" ], "parameters": { + "autoDelete": { + "description": "Whether to auto-delete the disk when the instance is deleted.", + "location": "query", + "required": true, + "type": "boolean" + }, + "deviceName": { + "description": "The device name of the disk to modify. Make a get() request\non the instance to view currently attached disks and device names.", + "location": "query", + "pattern": "\\w[\\w.-]{0,254}", + "required": true, + "type": "string" + }, "instance": { - "description": "Name of the instance scoping this request.", + "description": "The instance name for this request.", "location": "path", "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", "required": true, @@ -11214,7 +12895,7 @@ "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. 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).", + "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).", "location": "query", "type": "string" }, @@ -11226,23 +12907,65 @@ "type": "string" } }, - "path": "projects/{project}/zones/{zone}/instances/{instance}/setMachineType", + "path": "projects/{project}/zones/{zone}/instances/{instance}/setDiskAutoDelete", + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ] + }, + "setIamPolicy": { + "description": "Sets the access control policy on the specified resource.\nReplaces any existing policy.", + "flatPath": "projects/{project}/zones/{zone}/instances/{resource}/setIamPolicy", + "httpMethod": "POST", + "id": "compute.instances.setIamPolicy", + "parameterOrder": [ + "project", + "zone", + "resource" + ], + "parameters": { + "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" + }, + "resource": { + "description": "Name or id of the resource for this request.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "required": true, + "type": "string" + }, + "zone": { + "description": "The name of the zone for this request.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "required": true, + "type": "string" + } + }, + "path": "projects/{project}/zones/{zone}/instances/{resource}/setIamPolicy", "request": { - "$ref": "InstancesSetMachineTypeRequest" + "$ref": "ZoneSetPolicyRequest" }, "response": { - "$ref": "Operation" + "$ref": "Policy" }, "scopes": [ "https://www.googleapis.com/auth/cloud-platform", "https://www.googleapis.com/auth/compute" ] }, - "setMetadata": { - "description": "Sets metadata for the specified instance to the data included in the request.", - "flatPath": "projects/{project}/zones/{zone}/instances/{instance}/setMetadata", + "setLabels": { + "description": "Sets labels on an instance. To learn more about labels, read theLabeling\nResources documentation.", + "flatPath": "projects/{project}/zones/{zone}/instances/{instance}/setLabels", "httpMethod": "POST", - "id": "compute.instances.setMetadata", + "id": "compute.instances.setLabels", "parameterOrder": [ "project", "zone", @@ -11264,7 +12987,7 @@ "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. 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).", + "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).", "location": "query", "type": "string" }, @@ -11276,9 +12999,9 @@ "type": "string" } }, - "path": "projects/{project}/zones/{zone}/instances/{instance}/setMetadata", + "path": "projects/{project}/zones/{zone}/instances/{instance}/setLabels", "request": { - "$ref": "Metadata" + "$ref": "InstancesSetLabelsRequest" }, "response": { "$ref": "Operation" @@ -11288,11 +13011,11 @@ "https://www.googleapis.com/auth/compute" ] }, - "setMinCpuPlatform": { - "description": "Changes the minimum CPU platform that this instance should use. This method can only be called on a stopped instance. For more information, read Specifying a Minimum CPU Platform.", - "flatPath": "projects/{project}/zones/{zone}/instances/{instance}/setMinCpuPlatform", + "setMachineResources": { + "description": "Changes the number and/or type of accelerator for a stopped instance to the\nvalues specified in the request.", + "flatPath": "projects/{project}/zones/{zone}/instances/{instance}/setMachineResources", "httpMethod": "POST", - "id": "compute.instances.setMinCpuPlatform", + "id": "compute.instances.setMachineResources", "parameterOrder": [ "project", "zone", @@ -11314,7 +13037,7 @@ "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. 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).", + "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).", "location": "query", "type": "string" }, @@ -11326,9 +13049,9 @@ "type": "string" } }, - "path": "projects/{project}/zones/{zone}/instances/{instance}/setMinCpuPlatform", + "path": "projects/{project}/zones/{zone}/instances/{instance}/setMachineResources", "request": { - "$ref": "InstancesSetMinCpuPlatformRequest" + "$ref": "InstancesSetMachineResourcesRequest" }, "response": { "$ref": "Operation" @@ -11338,11 +13061,11 @@ "https://www.googleapis.com/auth/compute" ] }, - "setName": { - "description": "Sets name of an instance.", - "flatPath": "projects/{project}/zones/{zone}/instances/{instance}/setName", + "setMachineType": { + "description": "Changes the machine type for a stopped instance to the machine\ntype specified in the request.", + "flatPath": "projects/{project}/zones/{zone}/instances/{instance}/setMachineType", "httpMethod": "POST", - "id": "compute.instances.setName", + "id": "compute.instances.setMachineType", "parameterOrder": [ "project", "zone", @@ -11350,7 +13073,7 @@ ], "parameters": { "instance": { - "description": "The instance name for this request.", + "description": "Name of the instance scoping this request.", "location": "path", "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", "required": true, @@ -11364,7 +13087,7 @@ "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. 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).", + "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).", "location": "query", "type": "string" }, @@ -11376,9 +13099,9 @@ "type": "string" } }, - "path": "projects/{project}/zones/{zone}/instances/{instance}/setName", + "path": "projects/{project}/zones/{zone}/instances/{instance}/setMachineType", "request": { - "$ref": "InstancesSetNameRequest" + "$ref": "InstancesSetMachineTypeRequest" }, "response": { "$ref": "Operation" @@ -11388,11 +13111,11 @@ "https://www.googleapis.com/auth/compute" ] }, - "setScheduling": { - "description": "Sets an instance's scheduling options. You can only call this method on a stopped instance, that is, a VM instance that is in a `TERMINATED` state. See Instance Life Cycle for more information on the possible instance states. For more information about setting scheduling options for a VM, see Set VM host maintenance policy.", - "flatPath": "projects/{project}/zones/{zone}/instances/{instance}/setScheduling", + "setMetadata": { + "description": "Sets metadata for the specified instance to the data included\nin the request.", + "flatPath": "projects/{project}/zones/{zone}/instances/{instance}/setMetadata", "httpMethod": "POST", - "id": "compute.instances.setScheduling", + "id": "compute.instances.setMetadata", "parameterOrder": [ "project", "zone", @@ -11400,7 +13123,7 @@ ], "parameters": { "instance": { - "description": "Instance name for this request.", + "description": "Name of the instance scoping this request.", "location": "path", "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", "required": true, @@ -11414,7 +13137,7 @@ "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. 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).", + "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).", "location": "query", "type": "string" }, @@ -11426,9 +13149,9 @@ "type": "string" } }, - "path": "projects/{project}/zones/{zone}/instances/{instance}/setScheduling", + "path": "projects/{project}/zones/{zone}/instances/{instance}/setMetadata", "request": { - "$ref": "Scheduling" + "$ref": "Metadata" }, "response": { "$ref": "Operation" @@ -11438,11 +13161,11 @@ "https://www.googleapis.com/auth/compute" ] }, - "setSecurityPolicy": { - "description": "Sets the Google Cloud Armor security policy for the specified instance. For more information, see Google Cloud Armor Overview", - "flatPath": "projects/{project}/zones/{zone}/instances/{instance}/setSecurityPolicy", + "setMinCpuPlatform": { + "description": "Changes the minimum CPU platform that this instance should use.\nThis method can only\nbe called on a stopped instance. For more information, readSpecifying a\nMinimum CPU Platform.", + "flatPath": "projects/{project}/zones/{zone}/instances/{instance}/setMinCpuPlatform", "httpMethod": "POST", - "id": "compute.instances.setSecurityPolicy", + "id": "compute.instances.setMinCpuPlatform", "parameterOrder": [ "project", "zone", @@ -11450,8 +13173,9 @@ ], "parameters": { "instance": { - "description": "Name of the Instance resource to which the security policy should be set. The name should conform to RFC1035.", + "description": "Name of the instance scoping this request.", "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", "required": true, "type": "string" }, @@ -11463,21 +13187,21 @@ "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. 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).", + "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).", "location": "query", "type": "string" }, "zone": { - "description": "Name of the zone scoping this request.", + "description": "The name of the zone for this request.", "location": "path", "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", "required": true, "type": "string" } }, - "path": "projects/{project}/zones/{zone}/instances/{instance}/setSecurityPolicy", + "path": "projects/{project}/zones/{zone}/instances/{instance}/setMinCpuPlatform", "request": { - "$ref": "InstancesSetSecurityPolicyRequest" + "$ref": "InstancesSetMinCpuPlatformRequest" }, "response": { "$ref": "Operation" @@ -11487,11 +13211,11 @@ "https://www.googleapis.com/auth/compute" ] }, - "setServiceAccount": { - "description": "Sets the service account on the instance. For more information, read Changing the service account and access scopes for an instance.", - "flatPath": "projects/{project}/zones/{zone}/instances/{instance}/setServiceAccount", + "setName": { + "description": "Sets name of an instance.", + "flatPath": "projects/{project}/zones/{zone}/instances/{instance}/setName", "httpMethod": "POST", - "id": "compute.instances.setServiceAccount", + "id": "compute.instances.setName", "parameterOrder": [ "project", "zone", @@ -11499,7 +13223,7 @@ ], "parameters": { "instance": { - "description": "Name of the instance resource to start.", + "description": "The instance name for this request.", "location": "path", "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", "required": true, @@ -11513,7 +13237,7 @@ "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. 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).", + "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).", "location": "query", "type": "string" }, @@ -11525,9 +13249,9 @@ "type": "string" } }, - "path": "projects/{project}/zones/{zone}/instances/{instance}/setServiceAccount", + "path": "projects/{project}/zones/{zone}/instances/{instance}/setName", "request": { - "$ref": "InstancesSetServiceAccountRequest" + "$ref": "InstancesSetNameRequest" }, "response": { "$ref": "Operation" @@ -11537,11 +13261,11 @@ "https://www.googleapis.com/auth/compute" ] }, - "setShieldedInstanceIntegrityPolicy": { - "description": "Sets the Shielded Instance integrity policy for an instance. You can only use this method on a running instance. This method supports PATCH semantics and uses the JSON merge patch format and processing rules.", - "flatPath": "projects/{project}/zones/{zone}/instances/{instance}/setShieldedInstanceIntegrityPolicy", - "httpMethod": "PATCH", - "id": "compute.instances.setShieldedInstanceIntegrityPolicy", + "setScheduling": { + "description": "Sets an instance's scheduling options. You can only call this method on astopped instance,\nthat is, a VM instance that is in a `TERMINATED` state. SeeInstance Life\nCycle for more information on the possible instance states.\nFor more information about setting scheduling options for a VM, seeSet\nVM host maintenance policy.", + "flatPath": "projects/{project}/zones/{zone}/instances/{instance}/setScheduling", + "httpMethod": "POST", + "id": "compute.instances.setScheduling", "parameterOrder": [ "project", "zone", @@ -11549,7 +13273,7 @@ ], "parameters": { "instance": { - "description": "Name or id of the instance scoping this request.", + "description": "Instance name for this request.", "location": "path", "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", "required": true, @@ -11563,7 +13287,7 @@ "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. 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).", + "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).", "location": "query", "type": "string" }, @@ -11575,9 +13299,9 @@ "type": "string" } }, - "path": "projects/{project}/zones/{zone}/instances/{instance}/setShieldedInstanceIntegrityPolicy", + "path": "projects/{project}/zones/{zone}/instances/{instance}/setScheduling", "request": { - "$ref": "ShieldedInstanceIntegrityPolicy" + "$ref": "Scheduling" }, "response": { "$ref": "Operation" @@ -11587,11 +13311,11 @@ "https://www.googleapis.com/auth/compute" ] }, - "setTags": { - "description": "Sets network tags for the specified instance to the data included in the request.", - "flatPath": "projects/{project}/zones/{zone}/instances/{instance}/setTags", + "setSecurityPolicy": { + "description": "Sets the Google Cloud Armor security policy for the specified instance.\nFor more information, seeGoogle\nCloud Armor Overview", + "flatPath": "projects/{project}/zones/{zone}/instances/{instance}/setSecurityPolicy", "httpMethod": "POST", - "id": "compute.instances.setTags", + "id": "compute.instances.setSecurityPolicy", "parameterOrder": [ "project", "zone", @@ -11599,9 +13323,8 @@ ], "parameters": { "instance": { - "description": "Name of the instance scoping this request.", + "description": "Name of the Instance resource to which the security policy should be\nset. The name should conform to RFC1035.", "location": "path", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", "required": true, "type": "string" }, @@ -11613,21 +13336,21 @@ "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. 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).", + "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).", "location": "query", "type": "string" }, "zone": { - "description": "The name of the zone for this request.", + "description": "Name of the zone scoping this request.", "location": "path", "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", "required": true, "type": "string" } }, - "path": "projects/{project}/zones/{zone}/instances/{instance}/setTags", + "path": "projects/{project}/zones/{zone}/instances/{instance}/setSecurityPolicy", "request": { - "$ref": "Tags" + "$ref": "InstancesSetSecurityPolicyRequest" }, "response": { "$ref": "Operation" @@ -11637,11 +13360,11 @@ "https://www.googleapis.com/auth/compute" ] }, - "simulateMaintenanceEvent": { - "description": "Simulates a host maintenance event on a VM. For more information, see Simulate a host maintenance event.", - "flatPath": "projects/{project}/zones/{zone}/instances/{instance}/simulateMaintenanceEvent", + "setServiceAccount": { + "description": "Sets the service account on the instance. For more information,\nreadChanging\nthe service account and access scopes for an instance.", + "flatPath": "projects/{project}/zones/{zone}/instances/{instance}/setServiceAccount", "httpMethod": "POST", - "id": "compute.instances.simulateMaintenanceEvent", + "id": "compute.instances.setServiceAccount", "parameterOrder": [ "project", "zone", @@ -11649,7 +13372,7 @@ ], "parameters": { "instance": { - "description": "Name of the instance scoping this request.", + "description": "Name of the instance resource to start.", "location": "path", "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", "required": true, @@ -11663,15 +13386,10 @@ "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. 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).", + "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).", "location": "query", "type": "string" }, - "withExtendedNotifications": { - "description": "Determines whether the customers receive notifications before migration. Only applicable to SF vms.", - "location": "query", - "type": "boolean" - }, "zone": { "description": "The name of the zone for this request.", "location": "path", @@ -11680,7 +13398,10 @@ "type": "string" } }, - "path": "projects/{project}/zones/{zone}/instances/{instance}/simulateMaintenanceEvent", + "path": "projects/{project}/zones/{zone}/instances/{instance}/setServiceAccount", + "request": { + "$ref": "InstancesSetServiceAccountRequest" + }, "response": { "$ref": "Operation" }, @@ -11689,11 +13410,11 @@ "https://www.googleapis.com/auth/compute" ] }, - "start": { - "description": "Starts an instance that was stopped using the instances().stop method. For more information, see Restart an instance.", - "flatPath": "projects/{project}/zones/{zone}/instances/{instance}/start", - "httpMethod": "POST", - "id": "compute.instances.start", + "setShieldedInstanceIntegrityPolicy": { + "description": "Sets the Shielded Instance integrity policy for an instance. You can\nonly use this method on a running instance. This method\nsupports PATCH semantics and uses the JSON merge\npatch format and processing rules.", + "flatPath": "projects/{project}/zones/{zone}/instances/{instance}/setShieldedInstanceIntegrityPolicy", + "httpMethod": "PATCH", + "id": "compute.instances.setShieldedInstanceIntegrityPolicy", "parameterOrder": [ "project", "zone", @@ -11701,7 +13422,7 @@ ], "parameters": { "instance": { - "description": "Name of the instance resource to start.", + "description": "Name or id of the instance scoping this request.", "location": "path", "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", "required": true, @@ -11715,7 +13436,159 @@ "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. 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).", + "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).", + "location": "query", + "type": "string" + }, + "zone": { + "description": "The name of the zone for this request.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "required": true, + "type": "string" + } + }, + "path": "projects/{project}/zones/{zone}/instances/{instance}/setShieldedInstanceIntegrityPolicy", + "request": { + "$ref": "ShieldedInstanceIntegrityPolicy" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ] + }, + "setTags": { + "description": "Sets network tags\nfor the specified instance to the data included in the request.", + "flatPath": "projects/{project}/zones/{zone}/instances/{instance}/setTags", + "httpMethod": "POST", + "id": "compute.instances.setTags", + "parameterOrder": [ + "project", + "zone", + "instance" + ], + "parameters": { + "instance": { + "description": "Name of the instance scoping this request.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "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\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).", + "location": "query", + "type": "string" + }, + "zone": { + "description": "The name of the zone for this request.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "required": true, + "type": "string" + } + }, + "path": "projects/{project}/zones/{zone}/instances/{instance}/setTags", + "request": { + "$ref": "Tags" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ] + }, + "simulateMaintenanceEvent": { + "description": "Simulates a host maintenance event on a VM. For more information, see\nSimulate a host maintenance event.", + "flatPath": "projects/{project}/zones/{zone}/instances/{instance}/simulateMaintenanceEvent", + "httpMethod": "POST", + "id": "compute.instances.simulateMaintenanceEvent", + "parameterOrder": [ + "project", + "zone", + "instance" + ], + "parameters": { + "instance": { + "description": "Name of the instance scoping this request.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "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\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).", + "location": "query", + "type": "string" + }, + "withExtendedNotifications": { + "description": "Determines whether the customers receive notifications before migration.\nOnly applicable to SF vms.", + "location": "query", + "type": "boolean" + }, + "zone": { + "description": "The name of the zone for this request.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "required": true, + "type": "string" + } + }, + "path": "projects/{project}/zones/{zone}/instances/{instance}/simulateMaintenanceEvent", + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ] + }, + "start": { + "description": "Starts an instance that was stopped using theinstances().stop\nmethod. For more information, seeRestart an\ninstance.", + "flatPath": "projects/{project}/zones/{zone}/instances/{instance}/start", + "httpMethod": "POST", + "id": "compute.instances.start", + "parameterOrder": [ + "project", + "zone", + "instance" + ], + "parameters": { + "instance": { + "description": "Name of the instance resource to start.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "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\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).", "location": "query", "type": "string" }, @@ -11737,7 +13610,7 @@ ] }, "startWithEncryptionKey": { - "description": "Starts an instance that was stopped using the instances().stop method. For more information, see Restart an instance.", + "description": "Starts an instance that was stopped using theinstances().stop\nmethod. For more information, seeRestart an\ninstance.", "flatPath": "projects/{project}/zones/{zone}/instances/{instance}/startWithEncryptionKey", "httpMethod": "POST", "id": "compute.instances.startWithEncryptionKey", @@ -11762,7 +13635,7 @@ "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. 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).", + "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).", "location": "query", "type": "string" }, @@ -11787,7 +13660,7 @@ ] }, "stop": { - "description": "Stops a running instance, shutting it down cleanly, and allows you to restart the instance at a later time. Stopped instances do not incur VM usage charges while they are stopped. However, resources that the VM is using, such as persistent disks and static IP addresses, will continue to be charged until they are deleted. For more information, see Stopping an instance.", + "description": "Stops a running instance, shutting it down cleanly, and allows\nyou to restart the instance at a later time. Stopped instances do not incur\nVM usage charges while they are stopped. However, resources that the VM is\nusing, such as persistent disks and static IP addresses, will continue to\nbe charged until they are deleted. For more information, seeStopping\nan instance.", "flatPath": "projects/{project}/zones/{zone}/instances/{instance}/stop", "httpMethod": "POST", "id": "compute.instances.stop", @@ -11798,7 +13671,7 @@ ], "parameters": { "discardLocalSsd": { - "description": "This property is required if the instance has any attached Local SSD disks. If false, Local SSD data will be preserved when the instance is suspended. If true, the contents of any attached Local SSD disks will be discarded.", + "description": "This property is required if the instance has any attached Local SSD disks.\nIf false, Local SSD data will be preserved when the instance is suspended.\nIf true, the contents of any attached Local SSD disks will be discarded.", "location": "query", "type": "boolean" }, @@ -11817,7 +13690,7 @@ "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. 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).", + "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).", "location": "query", "type": "string" }, @@ -11839,7 +13712,7 @@ ] }, "suspend": { - "description": "This method suspends a running instance, saving its state to persistent storage, and allows you to resume the instance at a later time. Suspended instances have no compute costs (cores or RAM), and incur only storage charges for the saved VM memory and localSSD data. Any charged resources the virtual machine was using, such as persistent disks and static IP addresses, will continue to be charged while the instance is suspended. For more information, see Suspending and resuming an instance.", + "description": "This method suspends a running instance, saving its state to persistent\nstorage, and allows you to resume the instance at a later time. Suspended\ninstances have no compute costs (cores or RAM), and incur only storage\ncharges for the saved VM memory and localSSD data. Any charged resources\nthe virtual machine was using, such as persistent disks and static IP\naddresses, will continue to be charged while the instance is suspended.\nFor more information, see\nSuspending and resuming an instance.", "flatPath": "projects/{project}/zones/{zone}/instances/{instance}/suspend", "httpMethod": "POST", "id": "compute.instances.suspend", @@ -11850,7 +13723,7 @@ ], "parameters": { "discardLocalSsd": { - "description": "This property is required if the instance has any attached Local SSD disks. If false, Local SSD data will be preserved when the instance is suspended. If true, the contents of any attached Local SSD disks will be discarded.", + "description": "This property is required if the instance has any attached Local SSD disks.\nIf false, Local SSD data will be preserved when the instance is suspended.\nIf true, the contents of any attached Local SSD disks will be discarded.", "location": "query", "type": "boolean" }, @@ -11869,7 +13742,7 @@ "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. 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).", + "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).", "location": "query", "type": "string" }, @@ -11937,7 +13810,7 @@ ] }, "update": { - "description": "Updates an instance only if the necessary resources are available. This method can update only a specific set of instance properties. See Updating a running instance for a list of updatable instance properties.", + "description": "Updates an instance only if the necessary resources are available. This\nmethod can update only a specific set of instance properties. See\nUpdating a running instance for a list of updatable instance\nproperties.", "flatPath": "projects/{project}/zones/{zone}/instances/{instance}", "httpMethod": "PUT", "id": "compute.instances.update", @@ -11947,6 +13820,11 @@ "instance" ], "parameters": { + "discardLocalSsd": { + "description": "Whether to discard local SSDs from the instance during restart\ndefault value is false.", + "location": "query", + "type": "boolean" + }, "instance": { "description": "Name of the instance resource to update.", "location": "path", @@ -11955,7 +13833,7 @@ "type": "string" }, "minimalAction": { - "description": "Specifies the action to take when updating an instance even if the updated properties do not require it. If not specified, then Compute Engine acts based on the minimum action that the updated properties require.", + "description": "Specifies the action to take when updating an instance even if the\nupdated properties do not require it. If not specified, then\nCompute Engine acts based on the minimum action that the updated\nproperties require.", "enum": [ "INVALID", "NO_EFFECT", @@ -11966,13 +13844,13 @@ "", "No changes can be made to the instance.", "The instance will not restart.", - "The instance will restart." + "The instance will restart, potentially on a different host." ], "location": "query", "type": "string" }, "mostDisruptiveAllowedAction": { - "description": "Specifies the most disruptive action that can be taken on the instance as part of the update. Compute Engine returns an error if the instance properties require a more disruptive action as part of the instance update. Valid options from lowest to highest are NO_EFFECT, REFRESH, and RESTART.", + "description": "Specifies the most disruptive action that can be taken on the instance\nas part of the update. Compute Engine returns an error if the\ninstance properties require a more disruptive action as part of the\ninstance update. Valid options from lowest to highest are\nNO_EFFECT, REFRESH, and RESTART.", "enum": [ "INVALID", "NO_EFFECT", @@ -11983,7 +13861,7 @@ "", "No changes can be made to the instance.", "The instance will not restart.", - "The instance will restart." + "The instance will restart, potentially on a different host." ], "location": "query", "type": "string" @@ -11996,7 +13874,7 @@ "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. 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).", + "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).", "location": "query", "type": "string" }, @@ -12021,7 +13899,7 @@ ] }, "updateAccessConfig": { - "description": "Updates the specified access config from an instance's network interface with the data included in the request. This method supports PATCH semantics and uses the JSON merge patch format and processing rules.", + "description": "Updates the specified access config from an instance's network interface\nwith the data included in the request. This method supportsPATCH\nsemantics and uses theJSON merge\npatch format and processing rules.", "flatPath": "projects/{project}/zones/{zone}/instances/{instance}/updateAccessConfig", "httpMethod": "POST", "id": "compute.instances.updateAccessConfig", @@ -12053,7 +13931,7 @@ "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. 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).", + "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).", "location": "query", "type": "string" }, @@ -12078,7 +13956,7 @@ ] }, "updateDisplayDevice": { - "description": "Updates the Display config for a VM instance. You can only use this method on a stopped VM instance. This method supports PATCH semantics and uses the JSON merge patch format and processing rules.", + "description": "Updates the Display config for a VM instance. You can\nonly use this method on a stopped VM instance. This method supportsPATCH\nsemantics and uses theJSON merge\npatch format and processing rules.", "flatPath": "projects/{project}/zones/{zone}/instances/{instance}/updateDisplayDevice", "httpMethod": "PATCH", "id": "compute.instances.updateDisplayDevice", @@ -12103,7 +13981,7 @@ "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. 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).", + "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).", "location": "query", "type": "string" }, @@ -12128,7 +14006,7 @@ ] }, "updateNetworkInterface": { - "description": "Updates an instance's network interface. This method can only update an interface's alias IP range and attached network. See Modifying alias IP ranges for an existing instance for instructions on changing alias IP ranges. See Migrating a VM between networks for instructions on migrating an interface. This method follows PATCH semantics.", + "description": "Updates an instance's network interface. This method can only update an\ninterface's alias IP range and attached network. See Modifying\nalias IP ranges for an existing instance for instructions on\nchanging alias IP ranges. See Migrating\na VM between networks for instructions on migrating an interface.\nThis method follows PATCH semantics.", "flatPath": "projects/{project}/zones/{zone}/instances/{instance}/updateNetworkInterface", "httpMethod": "PATCH", "id": "compute.instances.updateNetworkInterface", @@ -12160,7 +14038,7 @@ "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. 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).", + "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).", "location": "query", "type": "string" }, @@ -12185,7 +14063,7 @@ ] }, "updateShieldedInstanceConfig": { - "description": "Updates the Shielded Instance config for an instance. You can only use this method on a stopped instance. This method supports PATCH semantics and uses the JSON merge patch format and processing rules.", + "description": "Updates the Shielded Instance config for an instance. You can\nonly use this method on a stopped instance. This method supportsPATCH\nsemantics and uses theJSON merge\npatch format and processing rules.", "flatPath": "projects/{project}/zones/{zone}/instances/{instance}/updateShieldedInstanceConfig", "httpMethod": "PATCH", "id": "compute.instances.updateShieldedInstanceConfig", @@ -12210,7 +14088,7 @@ "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. 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).", + "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).", "location": "query", "type": "string" }, @@ -12236,86 +14114,20 @@ } } }, - "instantSnapshots": { + "instantSnapshotGroups": { "methods": { - "aggregatedList": { - "description": "Retrieves an aggregated list of instantSnapshots. To prevent failure, Google recommends that you set the `returnPartialSuccess` parameter to `true`.", - "flatPath": "projects/{project}/aggregated/instantSnapshots", - "httpMethod": "GET", - "id": "compute.instantSnapshots.aggregatedList", - "parameterOrder": [ - "project" - ], - "parameters": { - "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` 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) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.", - "location": "query", - "type": "string" - }, - "includeAllScopes": { - "description": "Indicates whether every visible scope for each scope type (zone, region, global) should be included in the response. For new resource types added after this field, the flag has no effect as new resource types will always include every visible scope for each scope type in response. For resource types which predate this field, if this flag is omitted or false, only scopes of the scope types where the resource type is expected to be found will be included.", - "location": "query", - "type": "boolean" - }, - "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. 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.", - "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" - }, - "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", - "location": "query", - "type": "boolean" - }, - "serviceProjectNumber": { - "description": "The Shared VPC service project id or service project number for which aggregated list request is invoked for subnetworks list-usable api.", - "format": "int64", - "location": "query", - "type": "string" - } - }, - "path": "projects/{project}/aggregated/instantSnapshots", - "response": { - "$ref": "InstantSnapshotAggregatedList" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" - ] - }, "delete": { - "description": "Deletes the specified InstantSnapshot resource. Keep in mind that deleting a single instantSnapshot might not necessarily delete all the data on that instantSnapshot. If any data on the instantSnapshot that is marked for deletion is needed for subsequent instantSnapshots, the data will be moved to the next corresponding instantSnapshot. For more information, see Deleting instantSnapshots.", - "flatPath": "projects/{project}/zones/{zone}/instantSnapshots/{instantSnapshot}", + "description": "deletes a Zonal InstantSnapshotGroup resource", + "flatPath": "projects/{project}/zones/{zone}/instantSnapshotGroups/{instantSnapshotGroup}", "httpMethod": "DELETE", - "id": "compute.instantSnapshots.delete", + "id": "compute.instantSnapshotGroups.delete", "parameterOrder": [ "project", "zone", - "instantSnapshot" + "instantSnapshotGroup" ], "parameters": { - "instantSnapshot": { + "instantSnapshotGroup": { "description": "Name of the InstantSnapshot resource to delete.", "location": "path", "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", @@ -12330,7 +14142,7 @@ "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. 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).", + "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).", "location": "query", "type": "string" }, @@ -12342,7 +14154,7 @@ "type": "string" } }, - "path": "projects/{project}/zones/{zone}/instantSnapshots/{instantSnapshot}", + "path": "projects/{project}/zones/{zone}/instantSnapshotGroups/{instantSnapshotGroup}", "response": { "$ref": "Operation" }, @@ -12352,18 +14164,18 @@ ] }, "get": { - "description": "Returns the specified InstantSnapshot resource in the specified zone.", - "flatPath": "projects/{project}/zones/{zone}/instantSnapshots/{instantSnapshot}", + "description": "returns the specified InstantSnapshotGroup resource in the specified zone.", + "flatPath": "projects/{project}/zones/{zone}/instantSnapshotGroups/{instantSnapshotGroup}", "httpMethod": "GET", - "id": "compute.instantSnapshots.get", + "id": "compute.instantSnapshotGroups.get", "parameterOrder": [ "project", "zone", - "instantSnapshot" + "instantSnapshotGroup" ], "parameters": { - "instantSnapshot": { - "description": "Name of the InstantSnapshot resource to return.", + "instantSnapshotGroup": { + "description": "Name of the InstantSnapshotGroup resource to return.", "location": "path", "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", "required": true, @@ -12384,9 +14196,9 @@ "type": "string" } }, - "path": "projects/{project}/zones/{zone}/instantSnapshots/{instantSnapshot}", + "path": "projects/{project}/zones/{zone}/instantSnapshotGroups/{instantSnapshotGroup}", "response": { - "$ref": "InstantSnapshot" + "$ref": "InstantSnapshotGroup" }, "scopes": [ "https://www.googleapis.com/auth/cloud-platform", @@ -12395,10 +14207,10 @@ ] }, "getIamPolicy": { - "description": "Gets the access control policy for a resource. May be empty if no such policy or resource exists.", - "flatPath": "projects/{project}/zones/{zone}/instantSnapshots/{resource}/getIamPolicy", + "description": "Gets the access control policy for a resource. May be empty if no such\npolicy or resource exists.", + "flatPath": "projects/{project}/zones/{zone}/instantSnapshotGroups/{resource}/getIamPolicy", "httpMethod": "GET", - "id": "compute.instantSnapshots.getIamPolicy", + "id": "compute.instantSnapshotGroups.getIamPolicy", "parameterOrder": [ "project", "zone", @@ -12433,7 +14245,7 @@ "type": "string" } }, - "path": "projects/{project}/zones/{zone}/instantSnapshots/{resource}/getIamPolicy", + "path": "projects/{project}/zones/{zone}/instantSnapshotGroups/{resource}/getIamPolicy", "response": { "$ref": "Policy" }, @@ -12444,10 +14256,10 @@ ] }, "insert": { - "description": "Creates an instant snapshot in the specified zone.", - "flatPath": "projects/{project}/zones/{zone}/instantSnapshots", + "description": "inserts a Zonal InstantSnapshotGroup resource", + "flatPath": "projects/{project}/zones/{zone}/instantSnapshotGroups", "httpMethod": "POST", - "id": "compute.instantSnapshots.insert", + "id": "compute.instantSnapshotGroups.insert", "parameterOrder": [ "project", "zone" @@ -12461,7 +14273,12 @@ "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. 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).", + "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).", + "location": "query", + "type": "string" + }, + "sourceConsistencyGroup": { + "description": "begin_interface: MixerMutationRequestBuilder", "location": "query", "type": "string" }, @@ -12473,9 +14290,9 @@ "type": "string" } }, - "path": "projects/{project}/zones/{zone}/instantSnapshots", + "path": "projects/{project}/zones/{zone}/instantSnapshotGroups", "request": { - "$ref": "InstantSnapshot" + "$ref": "InstantSnapshotGroup" }, "response": { "$ref": "Operation" @@ -12486,35 +14303,35 @@ ] }, "list": { - "description": "Retrieves the list of InstantSnapshot resources contained within the specified zone.", - "flatPath": "projects/{project}/zones/{zone}/instantSnapshots", + "description": "retrieves the list of InstantSnapshotGroup resources contained within\nthe specified zone.", + "flatPath": "projects/{project}/zones/{zone}/instantSnapshotGroups", "httpMethod": "GET", - "id": "compute.instantSnapshots.list", + "id": "compute.instantSnapshotGroups.list", "parameterOrder": [ "project", "zone" ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` 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) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.", + "description": "A filter expression that filters resources listed in the response. Most\nCompute resources support two types of filter expressions:\nexpressions that support regular expressions and expressions that follow\nAPI improvement proposal AIP-160.\nThese two types of filter expressions cannot be mixed in one request.\n\nIf you want to use AIP-160, your expression must specify the field name, an\noperator, and the value that you want to use for filtering. The value\nmust be a string, a number, or a boolean. The operator\nmust be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`.\n\nFor example, if you are filtering Compute Engine instances, you can\nexclude instances named `example-instance` by specifying\n`name != example-instance`.\n\nThe `:*` comparison can be used to test whether a key has been defined.\nFor example, to find all objects with `owner` label use:\n```\nlabels.owner:*\n```\n\nYou can also filter nested fields. For example, you could specify\n`scheduling.automaticRestart = false` to include instances only\nif they are not scheduled for automatic restarts. You can use filtering\non nested fields to filter based onresource labels.\n\nTo filter on multiple expressions, provide each separate expression within\nparentheses. For example:\n```\n(scheduling.automaticRestart = true)\n(cpuPlatform = \"Intel Skylake\")\n```\nBy default, each expression is an `AND` expression. However, you\ncan include `AND` and `OR` expressions explicitly.\nFor example:\n```\n(cpuPlatform = \"Intel Skylake\") OR\n(cpuPlatform = \"Intel Broadwell\") AND\n(scheduling.automaticRestart = true)\n```\n\nIf you want to use a regular expression, use the `eq` (equal) or `ne`\n(not equal) operator against a single un-parenthesized expression with or\nwithout quotes or against multiple parenthesized expressions. Examples:\n\n`fieldname eq unquoted literal`\n`fieldname eq 'single quoted literal'`\n`fieldname eq \"double quoted literal\"`\n`(fieldname1 eq literal) (fieldname2 ne \"literal\")`\n\nThe literal value is interpreted as a regular expression using GoogleRE2 library syntax.\nThe literal value must match the entire field.\n\nFor example, to filter for instances that do not end with name \"instance\",\nyou would use `name ne .*instance`.\n\nYou cannot combine constraints on multiple fields using regular\nexpressions.", "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`)", + "description": "The maximum number of results per page that should be returned.\nIf the number of available results is larger than `maxResults`,\nCompute Engine returns a `nextPageToken` that can be used to get\nthe next page of results in subsequent list requests. Acceptable values are\n`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. 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.", + "description": "Sorts list results by a certain order. By default, results\nare returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation\ntimestamp using `orderBy=\"creationTimestamp desc\"`. This sorts\nresults based on the `creationTimestamp` field in\nreverse chronological order (newest result first). Use this to sort\nresources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or\n`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.", + "description": "Specifies a page token to use. Set `pageToken` to the\n`nextPageToken` returned by a previous list request to get\nthe next page of results.", "location": "query", "type": "string" }, @@ -12526,7 +14343,7 @@ "type": "string" }, "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", + "description": "Opt-in for partial success behavior which provides partial results in case\nof failure. The default value is false.\n\nFor example, when partial success behavior is enabled, aggregatedList for a\nsingle zone scope either returns all resources in the zone or no resources,\nwith an error code.", "location": "query", "type": "boolean" }, @@ -12538,9 +14355,9 @@ "type": "string" } }, - "path": "projects/{project}/zones/{zone}/instantSnapshots", + "path": "projects/{project}/zones/{zone}/instantSnapshotGroups", "response": { - "$ref": "InstantSnapshotList" + "$ref": "ListInstantSnapshotGroups" }, "scopes": [ "https://www.googleapis.com/auth/cloud-platform", @@ -12549,10 +14366,10 @@ ] }, "setIamPolicy": { - "description": "Sets the access control policy on the specified resource. Replaces any existing policy.", - "flatPath": "projects/{project}/zones/{zone}/instantSnapshots/{resource}/setIamPolicy", + "description": "Sets the access control policy on the specified resource.\nReplaces any existing policy.", + "flatPath": "projects/{project}/zones/{zone}/instantSnapshotGroups/{resource}/setIamPolicy", "httpMethod": "POST", - "id": "compute.instantSnapshots.setIamPolicy", + "id": "compute.instantSnapshotGroups.setIamPolicy", "parameterOrder": [ "project", "zone", @@ -12581,7 +14398,7 @@ "type": "string" } }, - "path": "projects/{project}/zones/{zone}/instantSnapshots/{resource}/setIamPolicy", + "path": "projects/{project}/zones/{zone}/instantSnapshotGroups/{resource}/setIamPolicy", "request": { "$ref": "ZoneSetPolicyRequest" }, @@ -12593,61 +14410,11 @@ "https://www.googleapis.com/auth/compute" ] }, - "setLabels": { - "description": "Sets the labels on a instantSnapshot in the given zone. To learn more about labels, read the Labeling Resources documentation.", - "flatPath": "projects/{project}/zones/{zone}/instantSnapshots/{resource}/setLabels", - "httpMethod": "POST", - "id": "compute.instantSnapshots.setLabels", - "parameterOrder": [ - "project", - "zone", - "resource" - ], - "parameters": { - "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. 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).", - "location": "query", - "type": "string" - }, - "resource": { - "description": "Name or id of the resource for this request.", - "location": "path", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "required": true, - "type": "string" - }, - "zone": { - "description": "The name of the zone for this request.", - "location": "path", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "required": true, - "type": "string" - } - }, - "path": "projects/{project}/zones/{zone}/instantSnapshots/{resource}/setLabels", - "request": { - "$ref": "ZoneSetLabelsRequest" - }, - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ] - }, "testIamPermissions": { "description": "Returns permissions that a caller has on the specified resource.", - "flatPath": "projects/{project}/zones/{zone}/instantSnapshots/{resource}/testIamPermissions", + "flatPath": "projects/{project}/zones/{zone}/instantSnapshotGroups/{resource}/testIamPermissions", "httpMethod": "POST", - "id": "compute.instantSnapshots.testIamPermissions", + "id": "compute.instantSnapshotGroups.testIamPermissions", "parameterOrder": [ "project", "zone", @@ -12676,7 +14443,7 @@ "type": "string" } }, - "path": "projects/{project}/zones/{zone}/instantSnapshots/{resource}/testIamPermissions", + "path": "projects/{project}/zones/{zone}/instantSnapshotGroups/{resource}/testIamPermissions", "request": { "$ref": "TestPermissionsRequest" }, @@ -12691,42 +14458,42 @@ } } }, - "interconnectAttachments": { + "instantSnapshots": { "methods": { "aggregatedList": { - "description": "Retrieves an aggregated list of interconnect attachments. To prevent failure, Google recommends that you set the `returnPartialSuccess` parameter to `true`.", - "flatPath": "projects/{project}/aggregated/interconnectAttachments", + "description": "Retrieves an aggregated list of instantSnapshots.\n\nTo prevent failure, Google recommends that you set the\n`returnPartialSuccess` parameter to `true`.", + "flatPath": "projects/{project}/aggregated/instantSnapshots", "httpMethod": "GET", - "id": "compute.interconnectAttachments.aggregatedList", + "id": "compute.instantSnapshots.aggregatedList", "parameterOrder": [ "project" ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` 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) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.", + "description": "A filter expression that filters resources listed in the response. Most\nCompute resources support two types of filter expressions:\nexpressions that support regular expressions and expressions that follow\nAPI improvement proposal AIP-160.\nThese two types of filter expressions cannot be mixed in one request.\n\nIf you want to use AIP-160, your expression must specify the field name, an\noperator, and the value that you want to use for filtering. The value\nmust be a string, a number, or a boolean. The operator\nmust be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`.\n\nFor example, if you are filtering Compute Engine instances, you can\nexclude instances named `example-instance` by specifying\n`name != example-instance`.\n\nThe `:*` comparison can be used to test whether a key has been defined.\nFor example, to find all objects with `owner` label use:\n```\nlabels.owner:*\n```\n\nYou can also filter nested fields. For example, you could specify\n`scheduling.automaticRestart = false` to include instances only\nif they are not scheduled for automatic restarts. You can use filtering\non nested fields to filter based onresource labels.\n\nTo filter on multiple expressions, provide each separate expression within\nparentheses. For example:\n```\n(scheduling.automaticRestart = true)\n(cpuPlatform = \"Intel Skylake\")\n```\nBy default, each expression is an `AND` expression. However, you\ncan include `AND` and `OR` expressions explicitly.\nFor example:\n```\n(cpuPlatform = \"Intel Skylake\") OR\n(cpuPlatform = \"Intel Broadwell\") AND\n(scheduling.automaticRestart = true)\n```\n\nIf you want to use a regular expression, use the `eq` (equal) or `ne`\n(not equal) operator against a single un-parenthesized expression with or\nwithout quotes or against multiple parenthesized expressions. Examples:\n\n`fieldname eq unquoted literal`\n`fieldname eq 'single quoted literal'`\n`fieldname eq \"double quoted literal\"`\n`(fieldname1 eq literal) (fieldname2 ne \"literal\")`\n\nThe literal value is interpreted as a regular expression using GoogleRE2 library syntax.\nThe literal value must match the entire field.\n\nFor example, to filter for instances that do not end with name \"instance\",\nyou would use `name ne .*instance`.\n\nYou cannot combine constraints on multiple fields using regular\nexpressions.", "location": "query", "type": "string" }, "includeAllScopes": { - "description": "Indicates whether every visible scope for each scope type (zone, region, global) should be included in the response. For new resource types added after this field, the flag has no effect as new resource types will always include every visible scope for each scope type in response. For resource types which predate this field, if this flag is omitted or false, only scopes of the scope types where the resource type is expected to be found will be included.", + "description": "Indicates whether every visible scope for each scope type (zone, region,\nglobal) should be included in the response. For new resource types added\nafter this field, the flag has no effect as new resource types will always\ninclude every visible scope for each scope type in response. For resource\ntypes which predate this field, if this flag is omitted or false, only\nscopes of the scope types where the resource type is expected to be found\nwill be included.", "location": "query", "type": "boolean" }, "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`)", + "description": "The maximum number of results per page that should be returned.\nIf the number of available results is larger than `maxResults`,\nCompute Engine returns a `nextPageToken` that can be used to get\nthe next page of results in subsequent list requests. Acceptable values are\n`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. 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.", + "description": "Sorts list results by a certain order. By default, results\nare returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation\ntimestamp using `orderBy=\"creationTimestamp desc\"`. This sorts\nresults based on the `creationTimestamp` field in\nreverse chronological order (newest result first). Use this to sort\nresources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or\n`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.", + "description": "Specifies a page token to use. Set `pageToken` to the\n`nextPageToken` returned by a previous list request to get\nthe next page of results.", "location": "query", "type": "string" }, @@ -12738,20 +14505,20 @@ "type": "string" }, "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", + "description": "Opt-in for partial success behavior which provides partial results in case\nof failure. The default value is false.\n\nFor example, when partial success behavior is enabled, aggregatedList for a\nsingle zone scope either returns all resources in the zone or no resources,\nwith an error code.", "location": "query", "type": "boolean" }, "serviceProjectNumber": { - "description": "The Shared VPC service project id or service project number for which aggregated list request is invoked for subnetworks list-usable api.", + "description": "The Shared VPC service project id or service project number for which\naggregated list request is invoked for subnetworks list-usable api.", "format": "int64", "location": "query", "type": "string" } }, - "path": "projects/{project}/aggregated/interconnectAttachments", + "path": "projects/{project}/aggregated/instantSnapshots", "response": { - "$ref": "InterconnectAttachmentAggregatedList" + "$ref": "InstantSnapshotAggregatedList" }, "scopes": [ "https://www.googleapis.com/auth/cloud-platform", @@ -12760,18 +14527,18 @@ ] }, "delete": { - "description": "Deletes the specified interconnect attachment.", - "flatPath": "projects/{project}/regions/{region}/interconnectAttachments/{interconnectAttachment}", + "description": "Deletes the specified InstantSnapshot resource. Keep in mind that deleting\na single instantSnapshot might not necessarily delete all the data on that\ninstantSnapshot. If any data on the instantSnapshot that is marked for\ndeletion is needed for subsequent instantSnapshots, the data will be moved\nto the next corresponding instantSnapshot.\n\nFor more information, seeDeleting\ninstantSnapshots.", + "flatPath": "projects/{project}/zones/{zone}/instantSnapshots/{instantSnapshot}", "httpMethod": "DELETE", - "id": "compute.interconnectAttachments.delete", + "id": "compute.instantSnapshots.delete", "parameterOrder": [ "project", - "region", - "interconnectAttachment" + "zone", + "instantSnapshot" ], "parameters": { - "interconnectAttachment": { - "description": "Name of the interconnect attachment to delete.", + "instantSnapshot": { + "description": "Name of the InstantSnapshot resource to delete.", "location": "path", "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", "required": true, @@ -12784,20 +14551,20 @@ "required": true, "type": "string" }, - "region": { - "description": "Name of the region for this request.", + "requestId": { + "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).", + "location": "query", + "type": "string" + }, + "zone": { + "description": "The name of the zone for this request.", "location": "path", "pattern": "[a-z](?:[-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. 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).", - "location": "query", - "type": "string" } }, - "path": "projects/{project}/regions/{region}/interconnectAttachments/{interconnectAttachment}", + "path": "projects/{project}/zones/{zone}/instantSnapshots/{instantSnapshot}", "response": { "$ref": "Operation" }, @@ -12807,18 +14574,18 @@ ] }, "get": { - "description": "Returns the specified interconnect attachment.", - "flatPath": "projects/{project}/regions/{region}/interconnectAttachments/{interconnectAttachment}", + "description": "Returns the specified InstantSnapshot resource in the specified zone.", + "flatPath": "projects/{project}/zones/{zone}/instantSnapshots/{instantSnapshot}", "httpMethod": "GET", - "id": "compute.interconnectAttachments.get", + "id": "compute.instantSnapshots.get", "parameterOrder": [ "project", - "region", - "interconnectAttachment" + "zone", + "instantSnapshot" ], "parameters": { - "interconnectAttachment": { - "description": "Name of the interconnect attachment to return.", + "instantSnapshot": { + "description": "Name of the InstantSnapshot resource to return.", "location": "path", "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", "required": true, @@ -12831,17 +14598,17 @@ "required": true, "type": "string" }, - "region": { - "description": "Name of the region for this request.", + "zone": { + "description": "The name of the zone for this request.", "location": "path", "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", "required": true, "type": "string" } }, - "path": "projects/{project}/regions/{region}/interconnectAttachments/{interconnectAttachment}", + "path": "projects/{project}/zones/{zone}/instantSnapshots/{instantSnapshot}", "response": { - "$ref": "InterconnectAttachment" + "$ref": "InstantSnapshot" }, "scopes": [ "https://www.googleapis.com/auth/cloud-platform", @@ -12849,16 +14616,23 @@ "https://www.googleapis.com/auth/compute.readonly" ] }, - "insert": { - "description": "Creates an InterconnectAttachment in the specified project using the data included in the request.", - "flatPath": "projects/{project}/regions/{region}/interconnectAttachments", - "httpMethod": "POST", - "id": "compute.interconnectAttachments.insert", + "getIamPolicy": { + "description": "Gets the access control policy for a resource. May be empty if no such\npolicy or resource exists.", + "flatPath": "projects/{project}/zones/{zone}/instantSnapshots/{resource}/getIamPolicy", + "httpMethod": "GET", + "id": "compute.instantSnapshots.getIamPolicy", "parameterOrder": [ "project", - "region" + "zone", + "resource" ], "parameters": { + "optionsRequestedPolicyVersion": { + "description": "Requested IAM Policy version.", + "format": "int32", + "location": "query", + "type": "integer" + }, "project": { "description": "Project ID for this request.", "location": "path", @@ -12866,27 +14640,64 @@ "required": true, "type": "string" }, - "region": { - "description": "Name of the region for this request.", + "resource": { + "description": "Name or id of the resource for this request.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "required": true, + "type": "string" + }, + "zone": { + "description": "The name of the zone for this request.", "location": "path", "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", "required": true, "type": "string" + } + }, + "path": "projects/{project}/zones/{zone}/instantSnapshots/{resource}/getIamPolicy", + "response": { + "$ref": "Policy" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ] + }, + "insert": { + "description": "Creates an instant snapshot in the specified zone.", + "flatPath": "projects/{project}/zones/{zone}/instantSnapshots", + "httpMethod": "POST", + "id": "compute.instantSnapshots.insert", + "parameterOrder": [ + "project", + "zone" + ], + "parameters": { + "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. 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).", + "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).", "location": "query", "type": "string" }, - "validateOnly": { - "description": "If true, the request will not be committed.", - "location": "query", - "type": "boolean" + "zone": { + "description": "Name of the zone for this request.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "required": true, + "type": "string" } }, - "path": "projects/{project}/regions/{region}/interconnectAttachments", + "path": "projects/{project}/zones/{zone}/instantSnapshots", "request": { - "$ref": "InterconnectAttachment" + "$ref": "InstantSnapshot" }, "response": { "$ref": "Operation" @@ -12897,35 +14708,35 @@ ] }, "list": { - "description": "Retrieves the list of interconnect attachments contained within the specified region.", - "flatPath": "projects/{project}/regions/{region}/interconnectAttachments", + "description": "Retrieves the list of InstantSnapshot resources contained within\nthe specified zone.", + "flatPath": "projects/{project}/zones/{zone}/instantSnapshots", "httpMethod": "GET", - "id": "compute.interconnectAttachments.list", + "id": "compute.instantSnapshots.list", "parameterOrder": [ "project", - "region" + "zone" ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` 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) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.", + "description": "A filter expression that filters resources listed in the response. Most\nCompute resources support two types of filter expressions:\nexpressions that support regular expressions and expressions that follow\nAPI improvement proposal AIP-160.\nThese two types of filter expressions cannot be mixed in one request.\n\nIf you want to use AIP-160, your expression must specify the field name, an\noperator, and the value that you want to use for filtering. The value\nmust be a string, a number, or a boolean. The operator\nmust be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`.\n\nFor example, if you are filtering Compute Engine instances, you can\nexclude instances named `example-instance` by specifying\n`name != example-instance`.\n\nThe `:*` comparison can be used to test whether a key has been defined.\nFor example, to find all objects with `owner` label use:\n```\nlabels.owner:*\n```\n\nYou can also filter nested fields. For example, you could specify\n`scheduling.automaticRestart = false` to include instances only\nif they are not scheduled for automatic restarts. You can use filtering\non nested fields to filter based onresource labels.\n\nTo filter on multiple expressions, provide each separate expression within\nparentheses. For example:\n```\n(scheduling.automaticRestart = true)\n(cpuPlatform = \"Intel Skylake\")\n```\nBy default, each expression is an `AND` expression. However, you\ncan include `AND` and `OR` expressions explicitly.\nFor example:\n```\n(cpuPlatform = \"Intel Skylake\") OR\n(cpuPlatform = \"Intel Broadwell\") AND\n(scheduling.automaticRestart = true)\n```\n\nIf you want to use a regular expression, use the `eq` (equal) or `ne`\n(not equal) operator against a single un-parenthesized expression with or\nwithout quotes or against multiple parenthesized expressions. Examples:\n\n`fieldname eq unquoted literal`\n`fieldname eq 'single quoted literal'`\n`fieldname eq \"double quoted literal\"`\n`(fieldname1 eq literal) (fieldname2 ne \"literal\")`\n\nThe literal value is interpreted as a regular expression using GoogleRE2 library syntax.\nThe literal value must match the entire field.\n\nFor example, to filter for instances that do not end with name \"instance\",\nyou would use `name ne .*instance`.\n\nYou cannot combine constraints on multiple fields using regular\nexpressions.", "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`)", + "description": "The maximum number of results per page that should be returned.\nIf the number of available results is larger than `maxResults`,\nCompute Engine returns a `nextPageToken` that can be used to get\nthe next page of results in subsequent list requests. Acceptable values are\n`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. 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.", + "description": "Sorts list results by a certain order. By default, results\nare returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation\ntimestamp using `orderBy=\"creationTimestamp desc\"`. This sorts\nresults based on the `creationTimestamp` field in\nreverse chronological order (newest result first). Use this to sort\nresources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or\n`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.", + "description": "Specifies a page token to use. Set `pageToken` to the\n`nextPageToken` returned by a previous list request to get\nthe next page of results.", "location": "query", "type": "string" }, @@ -12936,22 +14747,22 @@ "required": true, "type": "string" }, - "region": { - "description": "Name of the region for this request.", + "returnPartialSuccess": { + "description": "Opt-in for partial success behavior which provides partial results in case\nof failure. The default value is false.\n\nFor example, when partial success behavior is enabled, aggregatedList for a\nsingle zone scope either returns all resources in the zone or no resources,\nwith an error code.", + "location": "query", + "type": "boolean" + }, + "zone": { + "description": "The name of the zone for this request.", "location": "path", "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", "required": true, "type": "string" - }, - "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", - "location": "query", - "type": "boolean" } }, - "path": "projects/{project}/regions/{region}/interconnectAttachments", + "path": "projects/{project}/zones/{zone}/instantSnapshots", "response": { - "$ref": "InterconnectAttachmentList" + "$ref": "InstantSnapshotList" }, "scopes": [ "https://www.googleapis.com/auth/cloud-platform", @@ -12959,24 +14770,17 @@ "https://www.googleapis.com/auth/compute.readonly" ] }, - "patch": { - "description": "Updates the specified interconnect attachment with the data included in the request. This method supports PATCH semantics and uses the JSON merge patch format and processing rules.", - "flatPath": "projects/{project}/regions/{region}/interconnectAttachments/{interconnectAttachment}", - "httpMethod": "PATCH", - "id": "compute.interconnectAttachments.patch", + "setIamPolicy": { + "description": "Sets the access control policy on the specified resource.\nReplaces any existing policy.", + "flatPath": "projects/{project}/zones/{zone}/instantSnapshots/{resource}/setIamPolicy", + "httpMethod": "POST", + "id": "compute.instantSnapshots.setIamPolicy", "parameterOrder": [ "project", - "region", - "interconnectAttachment" + "zone", + "resource" ], "parameters": { - "interconnectAttachment": { - "description": "Name of the interconnect attachment to patch.", - "location": "path", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "required": true, - "type": "string" - }, "project": { "description": "Project ID for this request.", "location": "path", @@ -12984,25 +14788,27 @@ "required": true, "type": "string" }, - "region": { - "description": "Name of the region scoping this request.", + "resource": { + "description": "Name or id of the resource for this request.", "location": "path", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", "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. 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).", - "location": "query", + "zone": { + "description": "The name of the zone for this request.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "required": true, "type": "string" } }, - "path": "projects/{project}/regions/{region}/interconnectAttachments/{interconnectAttachment}", + "path": "projects/{project}/zones/{zone}/instantSnapshots/{resource}/setIamPolicy", "request": { - "$ref": "InterconnectAttachment" + "$ref": "ZoneSetPolicyRequest" }, "response": { - "$ref": "Operation" + "$ref": "Policy" }, "scopes": [ "https://www.googleapis.com/auth/cloud-platform", @@ -13010,13 +14816,13 @@ ] }, "setLabels": { - "description": "Sets the labels on an InterconnectAttachment. To learn more about labels, read the Labeling Resources documentation.", - "flatPath": "projects/{project}/regions/{region}/interconnectAttachments/{resource}/setLabels", + "description": "Sets the labels on a instantSnapshot in the given zone. To learn more about\nlabels, read the Labeling\nResources documentation.", + "flatPath": "projects/{project}/zones/{zone}/instantSnapshots/{resource}/setLabels", "httpMethod": "POST", - "id": "compute.interconnectAttachments.setLabels", + "id": "compute.instantSnapshots.setLabels", "parameterOrder": [ "project", - "region", + "zone", "resource" ], "parameters": { @@ -13027,15 +14833,8 @@ "required": true, "type": "string" }, - "region": { - "description": "The region for this request.", - "location": "path", - "pattern": "[a-z](?:[-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. 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).", + "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).", "location": "query", "type": "string" }, @@ -13045,91 +14844,38 @@ "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", "required": true, "type": "string" - } - }, - "path": "projects/{project}/regions/{region}/interconnectAttachments/{resource}/setLabels", - "request": { - "$ref": "RegionSetLabelsRequest" - }, - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ] - } - } - }, - "interconnectLocations": { - "methods": { - "get": { - "description": "Returns the details for the specified interconnect location. Gets a list of available interconnect locations by making a list() request.", - "flatPath": "projects/{project}/global/interconnectLocations/{interconnectLocation}", - "httpMethod": "GET", - "id": "compute.interconnectLocations.get", - "parameterOrder": [ - "project", - "interconnectLocation" - ], - "parameters": { - "interconnectLocation": { - "description": "Name of the interconnect location to return.", - "location": "path", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "required": true, - "type": "string" }, - "project": { - "description": "Project ID for this request.", + "zone": { + "description": "The name of the zone 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])?))", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", "required": true, "type": "string" } }, - "path": "projects/{project}/global/interconnectLocations/{interconnectLocation}", + "path": "projects/{project}/zones/{zone}/instantSnapshots/{resource}/setLabels", + "request": { + "$ref": "ZoneSetLabelsRequest" + }, "response": { - "$ref": "InterconnectLocation" + "$ref": "Operation" }, "scopes": [ "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" + "https://www.googleapis.com/auth/compute" ] }, - "list": { - "description": "Retrieves the list of interconnect locations available to the specified project.", - "flatPath": "projects/{project}/global/interconnectLocations", - "httpMethod": "GET", - "id": "compute.interconnectLocations.list", + "testIamPermissions": { + "description": "Returns permissions that a caller has on the specified resource.", + "flatPath": "projects/{project}/zones/{zone}/instantSnapshots/{resource}/testIamPermissions", + "httpMethod": "POST", + "id": "compute.instantSnapshots.testIamPermissions", "parameterOrder": [ - "project" + "project", + "zone", + "resource" ], "parameters": { - "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` 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) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.", - "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. 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.", - "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", @@ -13137,109 +14883,27 @@ "required": true, "type": "string" }, - "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", - "location": "query", - "type": "boolean" - } - }, - "path": "projects/{project}/global/interconnectLocations", - "response": { - "$ref": "InterconnectLocationList" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" - ] - } - } - }, - "interconnectRemoteLocations": { - "methods": { - "get": { - "description": "Returns the details for the specified interconnect remote location. Gets a list of available interconnect remote locations by making a list() request.", - "flatPath": "projects/{project}/global/interconnectRemoteLocations/{interconnectRemoteLocation}", - "httpMethod": "GET", - "id": "compute.interconnectRemoteLocations.get", - "parameterOrder": [ - "project", - "interconnectRemoteLocation" - ], - "parameters": { - "interconnectRemoteLocation": { - "description": "Name of the interconnect remote location to return.", + "resource": { + "description": "Name or id of the resource for this request.", "location": "path", "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", "required": true, "type": "string" }, - "project": { - "description": "Project ID for this request.", + "zone": { + "description": "The name of the zone 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])?))", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", "required": true, "type": "string" } }, - "path": "projects/{project}/global/interconnectRemoteLocations/{interconnectRemoteLocation}", - "response": { - "$ref": "InterconnectRemoteLocation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" - ] - }, - "list": { - "description": "Retrieves the list of interconnect remote locations available to the specified project.", - "flatPath": "projects/{project}/global/interconnectRemoteLocations", - "httpMethod": "GET", - "id": "compute.interconnectRemoteLocations.list", - "parameterOrder": [ - "project" - ], - "parameters": { - "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` 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) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.", - "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. 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.", - "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" - }, - "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", - "location": "query", - "type": "boolean" - } + "path": "projects/{project}/zones/{zone}/instantSnapshots/{resource}/testIamPermissions", + "request": { + "$ref": "TestPermissionsRequest" }, - "path": "projects/{project}/global/interconnectRemoteLocations", "response": { - "$ref": "InterconnectRemoteLocationList" + "$ref": "TestPermissionsResponse" }, "scopes": [ "https://www.googleapis.com/auth/cloud-platform", @@ -13249,20 +14913,20 @@ } } }, - "interconnects": { + "interconnectAttachmentGroups": { "methods": { "delete": { - "description": "Deletes the specified Interconnect.", - "flatPath": "projects/{project}/global/interconnects/{interconnect}", + "description": "Deletes the specified InterconnectAttachmentGroup in the given scope", + "flatPath": "projects/{project}/global/interconnectAttachmentGroups/{interconnectAttachmentGroup}", "httpMethod": "DELETE", - "id": "compute.interconnects.delete", + "id": "compute.interconnectAttachmentGroups.delete", "parameterOrder": [ "project", - "interconnect" + "interconnectAttachmentGroup" ], "parameters": { - "interconnect": { - "description": "Name of the interconnect to delete.", + "interconnectAttachmentGroup": { + "description": "Name of the InterconnectAttachmentGroup resource to delete.", "location": "path", "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", "required": true, @@ -13276,12 +14940,12 @@ "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. 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).", + "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).\nend_interface: MixerMutationRequestBuilder", "location": "query", "type": "string" } }, - "path": "projects/{project}/global/interconnects/{interconnect}", + "path": "projects/{project}/global/interconnectAttachmentGroups/{interconnectAttachmentGroup}", "response": { "$ref": "Operation" }, @@ -13291,17 +14955,17 @@ ] }, "get": { - "description": "Returns the specified Interconnect. Get a list of available Interconnects by making a list() request.", - "flatPath": "projects/{project}/global/interconnects/{interconnect}", + "description": "Returns the specified InterconnectAttachmentGroup resource in the given\nscope.", + "flatPath": "projects/{project}/global/interconnectAttachmentGroups/{interconnectAttachmentGroup}", "httpMethod": "GET", - "id": "compute.interconnects.get", + "id": "compute.interconnectAttachmentGroups.get", "parameterOrder": [ "project", - "interconnect" + "interconnectAttachmentGroup" ], "parameters": { - "interconnect": { - "description": "Name of the interconnect to return.", + "interconnectAttachmentGroup": { + "description": "Name of the InterconnectAttachmentGroup resource to return.", "location": "path", "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", "required": true, @@ -13315,9 +14979,9 @@ "type": "string" } }, - "path": "projects/{project}/global/interconnects/{interconnect}", + "path": "projects/{project}/global/interconnectAttachmentGroups/{interconnectAttachmentGroup}", "response": { - "$ref": "Interconnect" + "$ref": "InterconnectAttachmentGroup" }, "scopes": [ "https://www.googleapis.com/auth/cloud-platform", @@ -13325,22 +14989,21 @@ "https://www.googleapis.com/auth/compute.readonly" ] }, - "getDiagnostics": { - "description": "Returns the interconnectDiagnostics for the specified Interconnect. In the event of a global outage, do not use this API to make decisions about where to redirect your network traffic. Unlike a VLAN attachment, which is regional, a Cloud Interconnect connection is a global resource. A global outage can prevent this API from functioning properly.", - "flatPath": "projects/{project}/global/interconnects/{interconnect}/getDiagnostics", + "getIamPolicy": { + "description": "Gets the access control policy for a resource. May be empty if no such\npolicy or resource exists.", + "flatPath": "projects/{project}/global/interconnectAttachmentGroups/{resource}/getIamPolicy", "httpMethod": "GET", - "id": "compute.interconnects.getDiagnostics", + "id": "compute.interconnectAttachmentGroups.getIamPolicy", "parameterOrder": [ "project", - "interconnect" + "resource" ], "parameters": { - "interconnect": { - "description": "Name of the interconnect resource to query.", - "location": "path", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "required": true, - "type": "string" + "optionsRequestedPolicyVersion": { + "description": "Requested IAM Policy version.", + "format": "int32", + "location": "query", + "type": "integer" }, "project": { "description": "Project ID for this request.", @@ -13348,11 +15011,18 @@ "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" + }, + "resource": { + "description": "Name or id of the resource for this request.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "required": true, + "type": "string" } }, - "path": "projects/{project}/global/interconnects/{interconnect}/getDiagnostics", + "path": "projects/{project}/global/interconnectAttachmentGroups/{resource}/getIamPolicy", "response": { - "$ref": "InterconnectsGetDiagnosticsResponse" + "$ref": "Policy" }, "scopes": [ "https://www.googleapis.com/auth/cloud-platform", @@ -13360,18 +15030,18 @@ "https://www.googleapis.com/auth/compute.readonly" ] }, - "getMacsecConfig": { - "description": "Returns the interconnectMacsecConfig for the specified Interconnect.", - "flatPath": "projects/{project}/global/interconnects/{interconnect}/getMacsecConfig", + "getOperationalStatus": { + "description": "Returns the InterconnectAttachmentStatuses for the specified\nInterconnectAttachmentGroup resource.", + "flatPath": "projects/{project}/global/interconnectAttachmentGroups/{interconnectAttachmentGroup}/getOperationalStatus", "httpMethod": "GET", - "id": "compute.interconnects.getMacsecConfig", + "id": "compute.interconnectAttachmentGroups.getOperationalStatus", "parameterOrder": [ "project", - "interconnect" + "interconnectAttachmentGroup" ], "parameters": { - "interconnect": { - "description": "Name of the interconnect resource to query.", + "interconnectAttachmentGroup": { + "description": "Name of the interconnectAttachmentGroup resource to query.", "location": "path", "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", "required": true, @@ -13385,9 +15055,9 @@ "type": "string" } }, - "path": "projects/{project}/global/interconnects/{interconnect}/getMacsecConfig", + "path": "projects/{project}/global/interconnectAttachmentGroups/{interconnectAttachmentGroup}/getOperationalStatus", "response": { - "$ref": "InterconnectsGetMacsecConfigResponse" + "$ref": "InterconnectAttachmentGroupsGetOperationalStatusResponse" }, "scopes": [ "https://www.googleapis.com/auth/cloud-platform", @@ -13396,10 +15066,10 @@ ] }, "insert": { - "description": "Creates an Interconnect in the specified project using the data included in the request.", - "flatPath": "projects/{project}/global/interconnects", + "description": "Creates a InterconnectAttachmentGroup in the specified project in the given\nscope using the parameters that are included in the request.", + "flatPath": "projects/{project}/global/interconnectAttachmentGroups", "httpMethod": "POST", - "id": "compute.interconnects.insert", + "id": "compute.interconnectAttachmentGroups.insert", "parameterOrder": [ "project" ], @@ -13412,14 +15082,14 @@ "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. 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).", + "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).\nend_interface: MixerMutationRequestBuilder", "location": "query", "type": "string" } }, - "path": "projects/{project}/global/interconnects", + "path": "projects/{project}/global/interconnectAttachmentGroups", "request": { - "$ref": "Interconnect" + "$ref": "InterconnectAttachmentGroup" }, "response": { "$ref": "Operation" @@ -13430,34 +15100,34 @@ ] }, "list": { - "description": "Retrieves the list of Interconnects available to the specified project.", - "flatPath": "projects/{project}/global/interconnects", + "description": "Lists the InterconnectAttachmentGroups for a project in the given scope.", + "flatPath": "projects/{project}/global/interconnectAttachmentGroups", "httpMethod": "GET", - "id": "compute.interconnects.list", + "id": "compute.interconnectAttachmentGroups.list", "parameterOrder": [ "project" ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` 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) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.", + "description": "A filter expression that filters resources listed in the response. Most\nCompute resources support two types of filter expressions:\nexpressions that support regular expressions and expressions that follow\nAPI improvement proposal AIP-160.\nThese two types of filter expressions cannot be mixed in one request.\n\nIf you want to use AIP-160, your expression must specify the field name, an\noperator, and the value that you want to use for filtering. The value\nmust be a string, a number, or a boolean. The operator\nmust be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`.\n\nFor example, if you are filtering Compute Engine instances, you can\nexclude instances named `example-instance` by specifying\n`name != example-instance`.\n\nThe `:*` comparison can be used to test whether a key has been defined.\nFor example, to find all objects with `owner` label use:\n```\nlabels.owner:*\n```\n\nYou can also filter nested fields. For example, you could specify\n`scheduling.automaticRestart = false` to include instances only\nif they are not scheduled for automatic restarts. You can use filtering\non nested fields to filter based onresource labels.\n\nTo filter on multiple expressions, provide each separate expression within\nparentheses. For example:\n```\n(scheduling.automaticRestart = true)\n(cpuPlatform = \"Intel Skylake\")\n```\nBy default, each expression is an `AND` expression. However, you\ncan include `AND` and `OR` expressions explicitly.\nFor example:\n```\n(cpuPlatform = \"Intel Skylake\") OR\n(cpuPlatform = \"Intel Broadwell\") AND\n(scheduling.automaticRestart = true)\n```\n\nIf you want to use a regular expression, use the `eq` (equal) or `ne`\n(not equal) operator against a single un-parenthesized expression with or\nwithout quotes or against multiple parenthesized expressions. Examples:\n\n`fieldname eq unquoted literal`\n`fieldname eq 'single quoted literal'`\n`fieldname eq \"double quoted literal\"`\n`(fieldname1 eq literal) (fieldname2 ne \"literal\")`\n\nThe literal value is interpreted as a regular expression using GoogleRE2 library syntax.\nThe literal value must match the entire field.\n\nFor example, to filter for instances that do not end with name \"instance\",\nyou would use `name ne .*instance`.\n\nYou cannot combine constraints on multiple fields using regular\nexpressions.", "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`)", + "description": "The maximum number of results per page that should be returned.\nIf the number of available results is larger than `maxResults`,\nCompute Engine returns a `nextPageToken` that can be used to get\nthe next page of results in subsequent list requests. Acceptable values are\n`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. 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.", + "description": "Sorts list results by a certain order. By default, results\nare returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation\ntimestamp using `orderBy=\"creationTimestamp desc\"`. This sorts\nresults based on the `creationTimestamp` field in\nreverse chronological order (newest result first). Use this to sort\nresources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or\n`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.", + "description": "Specifies a page token to use. Set `pageToken` to the\n`nextPageToken` returned by a previous list request to get\nthe next page of results.", "location": "query", "type": "string" }, @@ -13469,14 +15139,14 @@ "type": "string" }, "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", + "description": "Opt-in for partial success behavior which provides partial results in case\nof failure. The default value is false.\n\nFor example, when partial success behavior is enabled, aggregatedList for a\nsingle zone scope either returns all resources in the zone or no resources,\nwith an error code.", "location": "query", "type": "boolean" } }, - "path": "projects/{project}/global/interconnects", + "path": "projects/{project}/global/interconnectAttachmentGroups", "response": { - "$ref": "InterconnectList" + "$ref": "InterconnectAttachmentGroupsListResponse" }, "scopes": [ "https://www.googleapis.com/auth/cloud-platform", @@ -13485,17 +15155,17 @@ ] }, "patch": { - "description": "Updates the specified Interconnect with the data included in the request. This method supports PATCH semantics and uses the JSON merge patch format and processing rules.", - "flatPath": "projects/{project}/global/interconnects/{interconnect}", + "description": "Patches the specified InterconnectAttachmentGroup resource with the data\nincluded in the request. This method supports PATCH\nsemantics and usesJSON merge\npatch format and processing rules.", + "flatPath": "projects/{project}/global/interconnectAttachmentGroups/{interconnectAttachmentGroup}", "httpMethod": "PATCH", - "id": "compute.interconnects.patch", + "id": "compute.interconnectAttachmentGroups.patch", "parameterOrder": [ "project", - "interconnect" + "interconnectAttachmentGroup" ], "parameters": { - "interconnect": { - "description": "Name of the interconnect to update.", + "interconnectAttachmentGroup": { + "description": "Name of the InterconnectAttachmentGroup resource to patch.", "location": "path", "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", "required": true, @@ -13509,14 +15179,20 @@ "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. 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).", + "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).\nend_interface: MixerMutationRequestBuilder", + "location": "query", + "type": "string" + }, + "updateMask": { + "description": "The list of fields to update.", + "format": "google-fieldmask", "location": "query", "type": "string" } }, - "path": "projects/{project}/global/interconnects/{interconnect}", + "path": "projects/{project}/global/interconnectAttachmentGroups/{interconnectAttachmentGroup}", "request": { - "$ref": "Interconnect" + "$ref": "InterconnectAttachmentGroup" }, "response": { "$ref": "Operation" @@ -13526,11 +15202,11 @@ "https://www.googleapis.com/auth/compute" ] }, - "setLabels": { - "description": "Sets the labels on an Interconnect. To learn more about labels, read the Labeling Resources documentation.", - "flatPath": "projects/{project}/global/interconnects/{resource}/setLabels", + "setIamPolicy": { + "description": "Sets the access control policy on the specified resource.\nReplaces any existing policy.", + "flatPath": "projects/{project}/global/interconnectAttachmentGroups/{resource}/setIamPolicy", "httpMethod": "POST", - "id": "compute.interconnects.setLabels", + "id": "compute.interconnectAttachmentGroups.setIamPolicy", "parameterOrder": [ "project", "resource" @@ -13551,62 +15227,23 @@ "type": "string" } }, - "path": "projects/{project}/global/interconnects/{resource}/setLabels", + "path": "projects/{project}/global/interconnectAttachmentGroups/{resource}/setIamPolicy", "request": { - "$ref": "GlobalSetLabelsRequest" + "$ref": "GlobalSetPolicyRequest" }, "response": { - "$ref": "Operation" + "$ref": "Policy" }, "scopes": [ "https://www.googleapis.com/auth/cloud-platform", "https://www.googleapis.com/auth/compute" ] - } - } - }, - "licenseCodes": { - "methods": { - "get": { - "description": "Return a specified license code. License codes are mirrored across all projects that have permissions to read the License Code. *Caution* This resource is intended for use only by third-party partners who are creating Cloud Marketplace images. ", - "flatPath": "projects/{project}/global/licenseCodes/{licenseCode}", - "httpMethod": "GET", - "id": "compute.licenseCodes.get", - "parameterOrder": [ - "project", - "licenseCode" - ], - "parameters": { - "licenseCode": { - "description": "Number corresponding to the License code resource to return.", - "location": "path", - "pattern": "[0-9]{0,61}?", - "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" - } - }, - "path": "projects/{project}/global/licenseCodes/{licenseCode}", - "response": { - "$ref": "LicenseCode" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" - ] }, "testIamPermissions": { - "description": "Returns permissions that a caller has on the specified resource. *Caution* This resource is intended for use only by third-party partners who are creating Cloud Marketplace images. ", - "flatPath": "projects/{project}/global/licenseCodes/{resource}/testIamPermissions", + "description": "Returns permissions that a caller has on the specified resource.", + "flatPath": "projects/{project}/global/interconnectAttachmentGroups/{resource}/testIamPermissions", "httpMethod": "POST", - "id": "compute.licenseCodes.testIamPermissions", + "id": "compute.interconnectAttachmentGroups.testIamPermissions", "parameterOrder": [ "project", "resource" @@ -13627,7 +15264,7 @@ "type": "string" } }, - "path": "projects/{project}/global/licenseCodes/{resource}/testIamPermissions", + "path": "projects/{project}/global/interconnectAttachmentGroups/{resource}/testIamPermissions", "request": { "$ref": "TestPermissionsRequest" }, @@ -13642,23 +15279,43 @@ } } }, - "licenses": { + "interconnectAttachments": { "methods": { - "delete": { - "description": "Deletes the specified license. *Caution* This resource is intended for use only by third-party partners who are creating Cloud Marketplace images. ", - "flatPath": "projects/{project}/global/licenses/{license}", - "httpMethod": "DELETE", - "id": "compute.licenses.delete", + "aggregatedList": { + "description": "Retrieves an aggregated list of interconnect attachments.\n\nTo prevent failure, Google recommends that you set the\n`returnPartialSuccess` parameter to `true`.", + "flatPath": "projects/{project}/aggregated/interconnectAttachments", + "httpMethod": "GET", + "id": "compute.interconnectAttachments.aggregatedList", "parameterOrder": [ - "project", - "license" + "project" ], "parameters": { - "license": { - "description": "Name of the license resource to delete.", - "location": "path", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "required": true, + "filter": { + "description": "A filter expression that filters resources listed in the response. Most\nCompute resources support two types of filter expressions:\nexpressions that support regular expressions and expressions that follow\nAPI improvement proposal AIP-160.\nThese two types of filter expressions cannot be mixed in one request.\n\nIf you want to use AIP-160, your expression must specify the field name, an\noperator, and the value that you want to use for filtering. The value\nmust be a string, a number, or a boolean. The operator\nmust be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`.\n\nFor example, if you are filtering Compute Engine instances, you can\nexclude instances named `example-instance` by specifying\n`name != example-instance`.\n\nThe `:*` comparison can be used to test whether a key has been defined.\nFor example, to find all objects with `owner` label use:\n```\nlabels.owner:*\n```\n\nYou can also filter nested fields. For example, you could specify\n`scheduling.automaticRestart = false` to include instances only\nif they are not scheduled for automatic restarts. You can use filtering\non nested fields to filter based onresource labels.\n\nTo filter on multiple expressions, provide each separate expression within\nparentheses. For example:\n```\n(scheduling.automaticRestart = true)\n(cpuPlatform = \"Intel Skylake\")\n```\nBy default, each expression is an `AND` expression. However, you\ncan include `AND` and `OR` expressions explicitly.\nFor example:\n```\n(cpuPlatform = \"Intel Skylake\") OR\n(cpuPlatform = \"Intel Broadwell\") AND\n(scheduling.automaticRestart = true)\n```\n\nIf you want to use a regular expression, use the `eq` (equal) or `ne`\n(not equal) operator against a single un-parenthesized expression with or\nwithout quotes or against multiple parenthesized expressions. Examples:\n\n`fieldname eq unquoted literal`\n`fieldname eq 'single quoted literal'`\n`fieldname eq \"double quoted literal\"`\n`(fieldname1 eq literal) (fieldname2 ne \"literal\")`\n\nThe literal value is interpreted as a regular expression using GoogleRE2 library syntax.\nThe literal value must match the entire field.\n\nFor example, to filter for instances that do not end with name \"instance\",\nyou would use `name ne .*instance`.\n\nYou cannot combine constraints on multiple fields using regular\nexpressions.", + "location": "query", + "type": "string" + }, + "includeAllScopes": { + "description": "Indicates whether every visible scope for each scope type (zone, region,\nglobal) should be included in the response. For new resource types added\nafter this field, the flag has no effect as new resource types will always\ninclude every visible scope for each scope type in response. For resource\ntypes which predate this field, if this flag is omitted or false, only\nscopes of the scope types where the resource type is expected to be found\nwill be included.", + "location": "query", + "type": "boolean" + }, + "maxResults": { + "default": "500", + "description": "The maximum number of results per page that should be returned.\nIf the number of available results is larger than `maxResults`,\nCompute Engine returns a `nextPageToken` that can be used to get\nthe next page of results in subsequent list requests. Acceptable values are\n`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\nare returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation\ntimestamp using `orderBy=\"creationTimestamp desc\"`. This sorts\nresults based on the `creationTimestamp` field in\nreverse chronological order (newest result first). Use this to sort\nresources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or\n`creationTimestamp desc` is supported.", + "location": "query", + "type": "string" + }, + "pageToken": { + "description": "Specifies a page token to use. Set `pageToken` to the\n`nextPageToken` returned by a previous list request to get\nthe next page of results.", + "location": "query", "type": "string" }, "project": { @@ -13668,33 +15325,41 @@ "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. 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).", + "returnPartialSuccess": { + "description": "Opt-in for partial success behavior which provides partial results in case\nof failure. The default value is false.\n\nFor example, when partial success behavior is enabled, aggregatedList for a\nsingle zone scope either returns all resources in the zone or no resources,\nwith an error code.", + "location": "query", + "type": "boolean" + }, + "serviceProjectNumber": { + "description": "The Shared VPC service project id or service project number for which\naggregated list request is invoked for subnetworks list-usable api.", + "format": "int64", "location": "query", "type": "string" } }, - "path": "projects/{project}/global/licenses/{license}", + "path": "projects/{project}/aggregated/interconnectAttachments", "response": { - "$ref": "Operation" + "$ref": "InterconnectAttachmentAggregatedList" }, "scopes": [ "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" ] }, - "get": { - "description": "Returns the specified License resource. *Caution* This resource is intended for use only by third-party partners who are creating Cloud Marketplace images. ", - "flatPath": "projects/{project}/global/licenses/{license}", - "httpMethod": "GET", - "id": "compute.licenses.get", + "delete": { + "description": "Deletes the specified interconnect attachment.", + "flatPath": "projects/{project}/regions/{region}/interconnectAttachments/{interconnectAttachment}", + "httpMethod": "DELETE", + "id": "compute.interconnectAttachments.delete", "parameterOrder": [ "project", - "license" + "region", + "interconnectAttachment" ], "parameters": { - "license": { - "description": "Name of the License resource to return.", + "interconnectAttachment": { + "description": "Name of the interconnect attachment to delete.", "location": "path", "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", "required": true, @@ -13706,33 +15371,46 @@ "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" + }, + "requestId": { + "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).", + "location": "query", + "type": "string" } }, - "path": "projects/{project}/global/licenses/{license}", + "path": "projects/{project}/regions/{region}/interconnectAttachments/{interconnectAttachment}", "response": { - "$ref": "License" + "$ref": "Operation" }, "scopes": [ "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" + "https://www.googleapis.com/auth/compute" ] }, - "getIamPolicy": { - "description": "Gets the access control policy for a resource. May be empty if no such policy or resource exists. *Caution* This resource is intended for use only by third-party partners who are creating Cloud Marketplace images. ", - "flatPath": "projects/{project}/global/licenses/{resource}/getIamPolicy", + "get": { + "description": "Returns the specified interconnect attachment.", + "flatPath": "projects/{project}/regions/{region}/interconnectAttachments/{interconnectAttachment}", "httpMethod": "GET", - "id": "compute.licenses.getIamPolicy", + "id": "compute.interconnectAttachments.get", "parameterOrder": [ "project", - "resource" + "region", + "interconnectAttachment" ], "parameters": { - "optionsRequestedPolicyVersion": { - "description": "Requested IAM Policy version.", - "format": "int32", - "location": "query", - "type": "integer" + "interconnectAttachment": { + "description": "Name of the interconnect attachment to return.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "required": true, + "type": "string" }, "project": { "description": "Project ID for this request.", @@ -13741,17 +15419,17 @@ "required": true, "type": "string" }, - "resource": { - "description": "Name or id of the resource for this request.", + "region": { + "description": "Name of the region for this request.", "location": "path", - "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", "required": true, "type": "string" } }, - "path": "projects/{project}/global/licenses/{resource}/getIamPolicy", + "path": "projects/{project}/regions/{region}/interconnectAttachments/{interconnectAttachment}", "response": { - "$ref": "Policy" + "$ref": "InterconnectAttachment" }, "scopes": [ "https://www.googleapis.com/auth/cloud-platform", @@ -13760,12 +15438,13 @@ ] }, "insert": { - "description": "Create a License resource in the specified project. *Caution* This resource is intended for use only by third-party partners who are creating Cloud Marketplace images. ", - "flatPath": "projects/{project}/global/licenses", + "description": "Creates an InterconnectAttachment in the specified project using the data\nincluded in the request.", + "flatPath": "projects/{project}/regions/{region}/interconnectAttachments", "httpMethod": "POST", - "id": "compute.licenses.insert", + "id": "compute.interconnectAttachments.insert", "parameterOrder": [ - "project" + "project", + "region" ], "parameters": { "project": { @@ -13775,56 +15454,66 @@ "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" + }, "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. 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).", + "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).", "location": "query", "type": "string" + }, + "validateOnly": { + "description": "If true, the request will not be committed.", + "location": "query", + "type": "boolean" } }, - "path": "projects/{project}/global/licenses", + "path": "projects/{project}/regions/{region}/interconnectAttachments", "request": { - "$ref": "License" + "$ref": "InterconnectAttachment" }, "response": { "$ref": "Operation" }, "scopes": [ "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/devstorage.full_control", - "https://www.googleapis.com/auth/devstorage.read_only", - "https://www.googleapis.com/auth/devstorage.read_write" + "https://www.googleapis.com/auth/compute" ] }, "list": { - "description": "Retrieves the list of licenses available in the specified project. This method does not get any licenses that belong to other projects, including licenses attached to publicly-available images, like Debian 9. If you want to get a list of publicly-available licenses, use this method to make a request to the respective image project, such as debian-cloud or windows-cloud. *Caution* This resource is intended for use only by third-party partners who are creating Cloud Marketplace images. ", - "flatPath": "projects/{project}/global/licenses", + "description": "Retrieves the list of interconnect attachments contained within\nthe specified region.", + "flatPath": "projects/{project}/regions/{region}/interconnectAttachments", "httpMethod": "GET", - "id": "compute.licenses.list", + "id": "compute.interconnectAttachments.list", "parameterOrder": [ - "project" + "project", + "region" ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` 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) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.", + "description": "A filter expression that filters resources listed in the response. Most\nCompute resources support two types of filter expressions:\nexpressions that support regular expressions and expressions that follow\nAPI improvement proposal AIP-160.\nThese two types of filter expressions cannot be mixed in one request.\n\nIf you want to use AIP-160, your expression must specify the field name, an\noperator, and the value that you want to use for filtering. The value\nmust be a string, a number, or a boolean. The operator\nmust be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`.\n\nFor example, if you are filtering Compute Engine instances, you can\nexclude instances named `example-instance` by specifying\n`name != example-instance`.\n\nThe `:*` comparison can be used to test whether a key has been defined.\nFor example, to find all objects with `owner` label use:\n```\nlabels.owner:*\n```\n\nYou can also filter nested fields. For example, you could specify\n`scheduling.automaticRestart = false` to include instances only\nif they are not scheduled for automatic restarts. You can use filtering\non nested fields to filter based onresource labels.\n\nTo filter on multiple expressions, provide each separate expression within\nparentheses. For example:\n```\n(scheduling.automaticRestart = true)\n(cpuPlatform = \"Intel Skylake\")\n```\nBy default, each expression is an `AND` expression. However, you\ncan include `AND` and `OR` expressions explicitly.\nFor example:\n```\n(cpuPlatform = \"Intel Skylake\") OR\n(cpuPlatform = \"Intel Broadwell\") AND\n(scheduling.automaticRestart = true)\n```\n\nIf you want to use a regular expression, use the `eq` (equal) or `ne`\n(not equal) operator against a single un-parenthesized expression with or\nwithout quotes or against multiple parenthesized expressions. Examples:\n\n`fieldname eq unquoted literal`\n`fieldname eq 'single quoted literal'`\n`fieldname eq \"double quoted literal\"`\n`(fieldname1 eq literal) (fieldname2 ne \"literal\")`\n\nThe literal value is interpreted as a regular expression using GoogleRE2 library syntax.\nThe literal value must match the entire field.\n\nFor example, to filter for instances that do not end with name \"instance\",\nyou would use `name ne .*instance`.\n\nYou cannot combine constraints on multiple fields using regular\nexpressions.", "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`)", + "description": "The maximum number of results per page that should be returned.\nIf the number of available results is larger than `maxResults`,\nCompute Engine returns a `nextPageToken` that can be used to get\nthe next page of results in subsequent list requests. Acceptable values are\n`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. 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.", + "description": "Sorts list results by a certain order. By default, results\nare returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation\ntimestamp using `orderBy=\"creationTimestamp desc\"`. This sorts\nresults based on the `creationTimestamp` field in\nreverse chronological order (newest result first). Use this to sort\nresources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or\n`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.", + "description": "Specifies a page token to use. Set `pageToken` to the\n`nextPageToken` returned by a previous list request to get\nthe next page of results.", "location": "query", "type": "string" }, @@ -13835,15 +15524,22 @@ "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" + }, "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", + "description": "Opt-in for partial success behavior which provides partial results in case\nof failure. The default value is false.\n\nFor example, when partial success behavior is enabled, aggregatedList for a\nsingle zone scope either returns all resources in the zone or no resources,\nwith an error code.", "location": "query", "type": "boolean" } }, - "path": "projects/{project}/global/licenses", + "path": "projects/{project}/regions/{region}/interconnectAttachments", "response": { - "$ref": "LicensesListResponse" + "$ref": "InterconnectAttachmentList" }, "scopes": [ "https://www.googleapis.com/auth/cloud-platform", @@ -13851,16 +15547,24 @@ "https://www.googleapis.com/auth/compute.readonly" ] }, - "setIamPolicy": { - "description": "Sets the access control policy on the specified resource. Replaces any existing policy. *Caution* This resource is intended for use only by third-party partners who are creating Cloud Marketplace images. ", - "flatPath": "projects/{project}/global/licenses/{resource}/setIamPolicy", - "httpMethod": "POST", - "id": "compute.licenses.setIamPolicy", + "patch": { + "description": "Updates the specified interconnect attachment with the data included in the\nrequest. This method supportsPATCH\nsemantics and uses theJSON merge\npatch format and processing rules.", + "flatPath": "projects/{project}/regions/{region}/interconnectAttachments/{interconnectAttachment}", + "httpMethod": "PATCH", + "id": "compute.interconnectAttachments.patch", "parameterOrder": [ "project", - "resource" + "region", + "interconnectAttachment" ], "parameters": { + "interconnectAttachment": { + "description": "Name of the interconnect attachment to patch.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "required": true, + "type": "string" + }, "project": { "description": "Project ID for this request.", "location": "path", @@ -13868,33 +15572,39 @@ "required": true, "type": "string" }, - "resource": { - "description": "Name or id of the resource for this request.", + "region": { + "description": "Name of the region scoping this request.", "location": "path", - "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "pattern": "[a-z](?:[-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\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).", + "location": "query", + "type": "string" } }, - "path": "projects/{project}/global/licenses/{resource}/setIamPolicy", + "path": "projects/{project}/regions/{region}/interconnectAttachments/{interconnectAttachment}", "request": { - "$ref": "GlobalSetPolicyRequest" + "$ref": "InterconnectAttachment" }, "response": { - "$ref": "Policy" + "$ref": "Operation" }, "scopes": [ "https://www.googleapis.com/auth/cloud-platform", "https://www.googleapis.com/auth/compute" ] }, - "testIamPermissions": { - "description": "Returns permissions that a caller has on the specified resource. *Caution* This resource is intended for use only by third-party partners who are creating Cloud Marketplace images. ", - "flatPath": "projects/{project}/global/licenses/{resource}/testIamPermissions", + "setLabels": { + "description": "Sets the labels on an InterconnectAttachment. To learn more about labels,\nread the Labeling\nResources documentation.", + "flatPath": "projects/{project}/regions/{region}/interconnectAttachments/{resource}/setLabels", "httpMethod": "POST", - "id": "compute.licenses.testIamPermissions", + "id": "compute.interconnectAttachments.setLabels", "parameterOrder": [ "project", + "region", "resource" ], "parameters": { @@ -13905,43 +15615,91 @@ "required": true, "type": "string" }, + "region": { + "description": "The region for this request.", + "location": "path", + "pattern": "[a-z](?:[-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\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).", + "location": "query", + "type": "string" + }, "resource": { "description": "Name or id of the resource for this request.", "location": "path", - "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", "required": true, "type": "string" } }, - "path": "projects/{project}/global/licenses/{resource}/testIamPermissions", + "path": "projects/{project}/regions/{region}/interconnectAttachments/{resource}/setLabels", "request": { - "$ref": "TestPermissionsRequest" + "$ref": "RegionSetLabelsRequest" }, "response": { - "$ref": "TestPermissionsResponse" + "$ref": "Operation" }, "scopes": [ "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" + "https://www.googleapis.com/auth/compute" ] } } }, - "machineImages": { + "interconnectGroups": { "methods": { + "createMembers": { + "description": "Create Interconnects with redundancy by creating them in a specified\ninterconnect group.", + "flatPath": "projects/{project}/global/interconnectGroups/{interconnectGroup}/createMembers", + "httpMethod": "POST", + "id": "compute.interconnectGroups.createMembers", + "parameterOrder": [ + "project", + "interconnectGroup" + ], + "parameters": { + "interconnectGroup": { + "description": "Name of the group resource to create members for.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "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" + } + }, + "path": "projects/{project}/global/interconnectGroups/{interconnectGroup}/createMembers", + "request": { + "$ref": "InterconnectGroupsCreateMembersRequest" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ] + }, "delete": { - "description": "Deletes the specified machine image. Deleting a machine image is permanent and cannot be undone.", - "flatPath": "projects/{project}/global/machineImages/{machineImage}", + "description": "Deletes the specified InterconnectGroup in the given scope", + "flatPath": "projects/{project}/global/interconnectGroups/{interconnectGroup}", "httpMethod": "DELETE", - "id": "compute.machineImages.delete", + "id": "compute.interconnectGroups.delete", "parameterOrder": [ "project", - "machineImage" + "interconnectGroup" ], "parameters": { - "machineImage": { - "description": "The name of the machine image to delete.", + "interconnectGroup": { + "description": "Name of the InterconnectGroup resource to delete.", "location": "path", "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", "required": true, @@ -13955,12 +15713,12 @@ "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. 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).", + "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).\nend_interface: MixerMutationRequestBuilder", "location": "query", "type": "string" } }, - "path": "projects/{project}/global/machineImages/{machineImage}", + "path": "projects/{project}/global/interconnectGroups/{interconnectGroup}", "response": { "$ref": "Operation" }, @@ -13970,17 +15728,17 @@ ] }, "get": { - "description": "Returns the specified machine image.", - "flatPath": "projects/{project}/global/machineImages/{machineImage}", + "description": "Returns the specified InterconnectGroup resource in the given scope.", + "flatPath": "projects/{project}/global/interconnectGroups/{interconnectGroup}", "httpMethod": "GET", - "id": "compute.machineImages.get", + "id": "compute.interconnectGroups.get", "parameterOrder": [ "project", - "machineImage" + "interconnectGroup" ], "parameters": { - "machineImage": { - "description": "The name of the machine image.", + "interconnectGroup": { + "description": "Name of the InterconnectGroup resource to return.", "location": "path", "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", "required": true, @@ -13994,9 +15752,9 @@ "type": "string" } }, - "path": "projects/{project}/global/machineImages/{machineImage}", + "path": "projects/{project}/global/interconnectGroups/{interconnectGroup}", "response": { - "$ref": "MachineImage" + "$ref": "InterconnectGroup" }, "scopes": [ "https://www.googleapis.com/auth/cloud-platform", @@ -14005,10 +15763,10 @@ ] }, "getIamPolicy": { - "description": "Gets the access control policy for a resource. May be empty if no such policy or resource exists.", - "flatPath": "projects/{project}/global/machineImages/{resource}/getIamPolicy", + "description": "Gets the access control policy for a resource. May be empty if no such\npolicy or resource exists.", + "flatPath": "projects/{project}/global/interconnectGroups/{resource}/getIamPolicy", "httpMethod": "GET", - "id": "compute.machineImages.getIamPolicy", + "id": "compute.interconnectGroups.getIamPolicy", "parameterOrder": [ "project", "resource" @@ -14035,7 +15793,7 @@ "type": "string" } }, - "path": "projects/{project}/global/machineImages/{resource}/getIamPolicy", + "path": "projects/{project}/global/interconnectGroups/{resource}/getIamPolicy", "response": { "$ref": "Policy" }, @@ -14045,11 +15803,46 @@ "https://www.googleapis.com/auth/compute.readonly" ] }, + "getOperationalStatus": { + "description": "Returns the interconnectStatuses for the specified\nInterconnectGroup.", + "flatPath": "projects/{project}/global/interconnectGroups/{interconnectGroup}/getOperationalStatus", + "httpMethod": "GET", + "id": "compute.interconnectGroups.getOperationalStatus", + "parameterOrder": [ + "project", + "interconnectGroup" + ], + "parameters": { + "interconnectGroup": { + "description": "Name of the interconnectGroup resource to query.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "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" + } + }, + "path": "projects/{project}/global/interconnectGroups/{interconnectGroup}/getOperationalStatus", + "response": { + "$ref": "InterconnectGroupsGetOperationalStatusResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ] + }, "insert": { - "description": "Creates a machine image in the specified project using the data that is included in the request. If you are creating a new machine image to update an existing instance, your new machine image should use the same network or, if applicable, the same subnetwork as the original instance.", - "flatPath": "projects/{project}/global/machineImages", + "description": "Creates a InterconnectGroup in the specified project in the given scope\nusing the parameters that are included in the request.", + "flatPath": "projects/{project}/global/interconnectGroups", "httpMethod": "POST", - "id": "compute.machineImages.insert", + "id": "compute.interconnectGroups.insert", "parameterOrder": [ "project" ], @@ -14062,19 +15855,14 @@ "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. 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).", - "location": "query", - "type": "string" - }, - "sourceInstance": { - "description": "Required. Source instance that is used to create the machine image from.", + "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).\nend_interface: MixerMutationRequestBuilder", "location": "query", "type": "string" } }, - "path": "projects/{project}/global/machineImages", + "path": "projects/{project}/global/interconnectGroups", "request": { - "$ref": "MachineImage" + "$ref": "InterconnectGroup" }, "response": { "$ref": "Operation" @@ -14085,34 +15873,34 @@ ] }, "list": { - "description": "Retrieves a list of machine images that are contained within the specified project.", - "flatPath": "projects/{project}/global/machineImages", + "description": "Lists the InterconnectGroups for a project in the given scope.", + "flatPath": "projects/{project}/global/interconnectGroups", "httpMethod": "GET", - "id": "compute.machineImages.list", + "id": "compute.interconnectGroups.list", "parameterOrder": [ "project" ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` 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) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.", + "description": "A filter expression that filters resources listed in the response. Most\nCompute resources support two types of filter expressions:\nexpressions that support regular expressions and expressions that follow\nAPI improvement proposal AIP-160.\nThese two types of filter expressions cannot be mixed in one request.\n\nIf you want to use AIP-160, your expression must specify the field name, an\noperator, and the value that you want to use for filtering. The value\nmust be a string, a number, or a boolean. The operator\nmust be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`.\n\nFor example, if you are filtering Compute Engine instances, you can\nexclude instances named `example-instance` by specifying\n`name != example-instance`.\n\nThe `:*` comparison can be used to test whether a key has been defined.\nFor example, to find all objects with `owner` label use:\n```\nlabels.owner:*\n```\n\nYou can also filter nested fields. For example, you could specify\n`scheduling.automaticRestart = false` to include instances only\nif they are not scheduled for automatic restarts. You can use filtering\non nested fields to filter based onresource labels.\n\nTo filter on multiple expressions, provide each separate expression within\nparentheses. For example:\n```\n(scheduling.automaticRestart = true)\n(cpuPlatform = \"Intel Skylake\")\n```\nBy default, each expression is an `AND` expression. However, you\ncan include `AND` and `OR` expressions explicitly.\nFor example:\n```\n(cpuPlatform = \"Intel Skylake\") OR\n(cpuPlatform = \"Intel Broadwell\") AND\n(scheduling.automaticRestart = true)\n```\n\nIf you want to use a regular expression, use the `eq` (equal) or `ne`\n(not equal) operator against a single un-parenthesized expression with or\nwithout quotes or against multiple parenthesized expressions. Examples:\n\n`fieldname eq unquoted literal`\n`fieldname eq 'single quoted literal'`\n`fieldname eq \"double quoted literal\"`\n`(fieldname1 eq literal) (fieldname2 ne \"literal\")`\n\nThe literal value is interpreted as a regular expression using GoogleRE2 library syntax.\nThe literal value must match the entire field.\n\nFor example, to filter for instances that do not end with name \"instance\",\nyou would use `name ne .*instance`.\n\nYou cannot combine constraints on multiple fields using regular\nexpressions.", "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`)", + "description": "The maximum number of results per page that should be returned.\nIf the number of available results is larger than `maxResults`,\nCompute Engine returns a `nextPageToken` that can be used to get\nthe next page of results in subsequent list requests. Acceptable values are\n`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. 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.", + "description": "Sorts list results by a certain order. By default, results\nare returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation\ntimestamp using `orderBy=\"creationTimestamp desc\"`. This sorts\nresults based on the `creationTimestamp` field in\nreverse chronological order (newest result first). Use this to sort\nresources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or\n`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.", + "description": "Specifies a page token to use. Set `pageToken` to the\n`nextPageToken` returned by a previous list request to get\nthe next page of results.", "location": "query", "type": "string" }, @@ -14124,14 +15912,14 @@ "type": "string" }, "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", + "description": "Opt-in for partial success behavior which provides partial results in case\nof failure. The default value is false.\n\nFor example, when partial success behavior is enabled, aggregatedList for a\nsingle zone scope either returns all resources in the zone or no resources,\nwith an error code.", "location": "query", "type": "boolean" } }, - "path": "projects/{project}/global/machineImages", + "path": "projects/{project}/global/interconnectGroups", "response": { - "$ref": "MachineImageList" + "$ref": "InterconnectGroupsListResponse" }, "scopes": [ "https://www.googleapis.com/auth/cloud-platform", @@ -14139,11 +15927,59 @@ "https://www.googleapis.com/auth/compute.readonly" ] }, + "patch": { + "description": "Patches the specified InterconnectGroup resource with the data included in\nthe request. This method supports PATCH\nsemantics and usesJSON merge\npatch format and processing rules.", + "flatPath": "projects/{project}/global/interconnectGroups/{interconnectGroup}", + "httpMethod": "PATCH", + "id": "compute.interconnectGroups.patch", + "parameterOrder": [ + "project", + "interconnectGroup" + ], + "parameters": { + "interconnectGroup": { + "description": "Name of the InterconnectGroup resource to patch.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "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\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).\nend_interface: MixerMutationRequestBuilder", + "location": "query", + "type": "string" + }, + "updateMask": { + "description": "The list of fields to update.", + "format": "google-fieldmask", + "location": "query", + "type": "string" + } + }, + "path": "projects/{project}/global/interconnectGroups/{interconnectGroup}", + "request": { + "$ref": "InterconnectGroup" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ] + }, "setIamPolicy": { - "description": "Sets the access control policy on the specified resource. Replaces any existing policy.", - "flatPath": "projects/{project}/global/machineImages/{resource}/setIamPolicy", + "description": "Sets the access control policy on the specified resource.\nReplaces any existing policy.", + "flatPath": "projects/{project}/global/interconnectGroups/{resource}/setIamPolicy", "httpMethod": "POST", - "id": "compute.machineImages.setIamPolicy", + "id": "compute.interconnectGroups.setIamPolicy", "parameterOrder": [ "project", "resource" @@ -14164,7 +16000,7 @@ "type": "string" } }, - "path": "projects/{project}/global/machineImages/{resource}/setIamPolicy", + "path": "projects/{project}/global/interconnectGroups/{resource}/setIamPolicy", "request": { "$ref": "GlobalSetPolicyRequest" }, @@ -14178,9 +16014,9 @@ }, "testIamPermissions": { "description": "Returns permissions that a caller has on the specified resource.", - "flatPath": "projects/{project}/global/machineImages/{resource}/testIamPermissions", + "flatPath": "projects/{project}/global/interconnectGroups/{resource}/testIamPermissions", "httpMethod": "POST", - "id": "compute.machineImages.testIamPermissions", + "id": "compute.interconnectGroups.testIamPermissions", "parameterOrder": [ "project", "resource" @@ -14201,7 +16037,7 @@ "type": "string" } }, - "path": "projects/{project}/global/machineImages/{resource}/testIamPermissions", + "path": "projects/{project}/global/interconnectGroups/{resource}/testIamPermissions", "request": { "$ref": "TestPermissionsRequest" }, @@ -14216,42 +16052,72 @@ } } }, - "machineTypes": { + "interconnectLocations": { "methods": { - "aggregatedList": { - "description": "Retrieves an aggregated list of machine types. To prevent failure, Google recommends that you set the `returnPartialSuccess` parameter to `true`.", - "flatPath": "projects/{project}/aggregated/machineTypes", + "get": { + "description": "Returns the details for the specified interconnect location. Gets a list of\navailable interconnect locations by making a list() request.", + "flatPath": "projects/{project}/global/interconnectLocations/{interconnectLocation}", "httpMethod": "GET", - "id": "compute.machineTypes.aggregatedList", + "id": "compute.interconnectLocations.get", + "parameterOrder": [ + "project", + "interconnectLocation" + ], + "parameters": { + "interconnectLocation": { + "description": "Name of the interconnect location to return.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "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" + } + }, + "path": "projects/{project}/global/interconnectLocations/{interconnectLocation}", + "response": { + "$ref": "InterconnectLocation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ] + }, + "list": { + "description": "Retrieves the list of interconnect locations available to the specified\nproject.", + "flatPath": "projects/{project}/global/interconnectLocations", + "httpMethod": "GET", + "id": "compute.interconnectLocations.list", "parameterOrder": [ "project" ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` 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) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.", + "description": "A filter expression that filters resources listed in the response. Most\nCompute resources support two types of filter expressions:\nexpressions that support regular expressions and expressions that follow\nAPI improvement proposal AIP-160.\nThese two types of filter expressions cannot be mixed in one request.\n\nIf you want to use AIP-160, your expression must specify the field name, an\noperator, and the value that you want to use for filtering. The value\nmust be a string, a number, or a boolean. The operator\nmust be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`.\n\nFor example, if you are filtering Compute Engine instances, you can\nexclude instances named `example-instance` by specifying\n`name != example-instance`.\n\nThe `:*` comparison can be used to test whether a key has been defined.\nFor example, to find all objects with `owner` label use:\n```\nlabels.owner:*\n```\n\nYou can also filter nested fields. For example, you could specify\n`scheduling.automaticRestart = false` to include instances only\nif they are not scheduled for automatic restarts. You can use filtering\non nested fields to filter based onresource labels.\n\nTo filter on multiple expressions, provide each separate expression within\nparentheses. For example:\n```\n(scheduling.automaticRestart = true)\n(cpuPlatform = \"Intel Skylake\")\n```\nBy default, each expression is an `AND` expression. However, you\ncan include `AND` and `OR` expressions explicitly.\nFor example:\n```\n(cpuPlatform = \"Intel Skylake\") OR\n(cpuPlatform = \"Intel Broadwell\") AND\n(scheduling.automaticRestart = true)\n```\n\nIf you want to use a regular expression, use the `eq` (equal) or `ne`\n(not equal) operator against a single un-parenthesized expression with or\nwithout quotes or against multiple parenthesized expressions. Examples:\n\n`fieldname eq unquoted literal`\n`fieldname eq 'single quoted literal'`\n`fieldname eq \"double quoted literal\"`\n`(fieldname1 eq literal) (fieldname2 ne \"literal\")`\n\nThe literal value is interpreted as a regular expression using GoogleRE2 library syntax.\nThe literal value must match the entire field.\n\nFor example, to filter for instances that do not end with name \"instance\",\nyou would use `name ne .*instance`.\n\nYou cannot combine constraints on multiple fields using regular\nexpressions.", "location": "query", "type": "string" }, - "includeAllScopes": { - "description": "Indicates whether every visible scope for each scope type (zone, region, global) should be included in the response. For new resource types added after this field, the flag has no effect as new resource types will always include every visible scope for each scope type in response. For resource types which predate this field, if this flag is omitted or false, only scopes of the scope types where the resource type is expected to be found will be included.", - "location": "query", - "type": "boolean" - }, "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`)", + "description": "The maximum number of results per page that should be returned.\nIf the number of available results is larger than `maxResults`,\nCompute Engine returns a `nextPageToken` that can be used to get\nthe next page of results in subsequent list requests. Acceptable values are\n`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. 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.", + "description": "Sorts list results by a certain order. By default, results\nare returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation\ntimestamp using `orderBy=\"creationTimestamp desc\"`. This sorts\nresults based on the `creationTimestamp` field in\nreverse chronological order (newest result first). Use this to sort\nresources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or\n`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.", + "description": "Specifies a page token to use. Set `pageToken` to the\n`nextPageToken` returned by a previous list request to get\nthe next page of results.", "location": "query", "type": "string" }, @@ -14263,40 +16129,37 @@ "type": "string" }, "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", + "description": "Opt-in for partial success behavior which provides partial results in case\nof failure. The default value is false.\n\nFor example, when partial success behavior is enabled, aggregatedList for a\nsingle zone scope either returns all resources in the zone or no resources,\nwith an error code.", "location": "query", "type": "boolean" - }, - "serviceProjectNumber": { - "description": "The Shared VPC service project id or service project number for which aggregated list request is invoked for subnetworks list-usable api.", - "format": "int64", - "location": "query", - "type": "string" } }, - "path": "projects/{project}/aggregated/machineTypes", + "path": "projects/{project}/global/interconnectLocations", "response": { - "$ref": "MachineTypeAggregatedList" + "$ref": "InterconnectLocationList" }, "scopes": [ "https://www.googleapis.com/auth/cloud-platform", "https://www.googleapis.com/auth/compute", "https://www.googleapis.com/auth/compute.readonly" ] - }, + } + } + }, + "interconnectRemoteLocations": { + "methods": { "get": { - "description": "Returns the specified machine type.", - "flatPath": "projects/{project}/zones/{zone}/machineTypes/{machineType}", + "description": "Returns the details for the specified interconnect remote location. Gets a\nlist of available interconnect remote locations by making alist() request.", + "flatPath": "projects/{project}/global/interconnectRemoteLocations/{interconnectRemoteLocation}", "httpMethod": "GET", - "id": "compute.machineTypes.get", + "id": "compute.interconnectRemoteLocations.get", "parameterOrder": [ "project", - "zone", - "machineType" + "interconnectRemoteLocation" ], "parameters": { - "machineType": { - "description": "Name of the machine type to return.", + "interconnectRemoteLocation": { + "description": "Name of the interconnect remote location to return.", "location": "path", "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", "required": true, @@ -14308,18 +16171,11 @@ "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" - }, - "zone": { - "description": "The name of the zone for this request.", - "location": "path", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "required": true, - "type": "string" } }, - "path": "projects/{project}/zones/{zone}/machineTypes/{machineType}", + "path": "projects/{project}/global/interconnectRemoteLocations/{interconnectRemoteLocation}", "response": { - "$ref": "MachineType" + "$ref": "InterconnectRemoteLocation" }, "scopes": [ "https://www.googleapis.com/auth/cloud-platform", @@ -14328,35 +16184,34 @@ ] }, "list": { - "description": "Retrieves a list of machine types available to the specified project.", - "flatPath": "projects/{project}/zones/{zone}/machineTypes", + "description": "Retrieves the list of interconnect remote locations available to the\nspecified project.", + "flatPath": "projects/{project}/global/interconnectRemoteLocations", "httpMethod": "GET", - "id": "compute.machineTypes.list", + "id": "compute.interconnectRemoteLocations.list", "parameterOrder": [ - "project", - "zone" + "project" ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` 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) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.", + "description": "A filter expression that filters resources listed in the response. Most\nCompute resources support two types of filter expressions:\nexpressions that support regular expressions and expressions that follow\nAPI improvement proposal AIP-160.\nThese two types of filter expressions cannot be mixed in one request.\n\nIf you want to use AIP-160, your expression must specify the field name, an\noperator, and the value that you want to use for filtering. The value\nmust be a string, a number, or a boolean. The operator\nmust be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`.\n\nFor example, if you are filtering Compute Engine instances, you can\nexclude instances named `example-instance` by specifying\n`name != example-instance`.\n\nThe `:*` comparison can be used to test whether a key has been defined.\nFor example, to find all objects with `owner` label use:\n```\nlabels.owner:*\n```\n\nYou can also filter nested fields. For example, you could specify\n`scheduling.automaticRestart = false` to include instances only\nif they are not scheduled for automatic restarts. You can use filtering\non nested fields to filter based onresource labels.\n\nTo filter on multiple expressions, provide each separate expression within\nparentheses. For example:\n```\n(scheduling.automaticRestart = true)\n(cpuPlatform = \"Intel Skylake\")\n```\nBy default, each expression is an `AND` expression. However, you\ncan include `AND` and `OR` expressions explicitly.\nFor example:\n```\n(cpuPlatform = \"Intel Skylake\") OR\n(cpuPlatform = \"Intel Broadwell\") AND\n(scheduling.automaticRestart = true)\n```\n\nIf you want to use a regular expression, use the `eq` (equal) or `ne`\n(not equal) operator against a single un-parenthesized expression with or\nwithout quotes or against multiple parenthesized expressions. Examples:\n\n`fieldname eq unquoted literal`\n`fieldname eq 'single quoted literal'`\n`fieldname eq \"double quoted literal\"`\n`(fieldname1 eq literal) (fieldname2 ne \"literal\")`\n\nThe literal value is interpreted as a regular expression using GoogleRE2 library syntax.\nThe literal value must match the entire field.\n\nFor example, to filter for instances that do not end with name \"instance\",\nyou would use `name ne .*instance`.\n\nYou cannot combine constraints on multiple fields using regular\nexpressions.", "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`)", + "description": "The maximum number of results per page that should be returned.\nIf the number of available results is larger than `maxResults`,\nCompute Engine returns a `nextPageToken` that can be used to get\nthe next page of results in subsequent list requests. Acceptable values are\n`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. 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.", + "description": "Sorts list results by a certain order. By default, results\nare returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation\ntimestamp using `orderBy=\"creationTimestamp desc\"`. This sorts\nresults based on the `creationTimestamp` field in\nreverse chronological order (newest result first). Use this to sort\nresources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or\n`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.", + "description": "Specifies a page token to use. Set `pageToken` to the\n`nextPageToken` returned by a previous list request to get\nthe next page of results.", "location": "query", "type": "string" }, @@ -14368,21 +16223,14 @@ "type": "string" }, "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", + "description": "Opt-in for partial success behavior which provides partial results in case\nof failure. The default value is false.\n\nFor example, when partial success behavior is enabled, aggregatedList for a\nsingle zone scope either returns all resources in the zone or no resources,\nwith an error code.", "location": "query", "type": "boolean" - }, - "zone": { - "description": "The name of the zone for this request.", - "location": "path", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "required": true, - "type": "string" } }, - "path": "projects/{project}/zones/{zone}/machineTypes", + "path": "projects/{project}/global/interconnectRemoteLocations", "response": { - "$ref": "MachineTypeList" + "$ref": "InterconnectRemoteLocationList" }, "scopes": [ "https://www.googleapis.com/auth/cloud-platform", @@ -14392,43 +16240,23 @@ } } }, - "networkAttachments": { + "interconnects": { "methods": { - "aggregatedList": { - "description": "Retrieves the list of all NetworkAttachment resources, regional and global, available to the specified project. To prevent failure, Google recommends that you set the `returnPartialSuccess` parameter to `true`.", - "flatPath": "projects/{project}/aggregated/networkAttachments", - "httpMethod": "GET", - "id": "compute.networkAttachments.aggregatedList", + "delete": { + "description": "Deletes the specified Interconnect.", + "flatPath": "projects/{project}/global/interconnects/{interconnect}", + "httpMethod": "DELETE", + "id": "compute.interconnects.delete", "parameterOrder": [ - "project" + "project", + "interconnect" ], "parameters": { - "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` 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) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.", - "location": "query", - "type": "string" - }, - "includeAllScopes": { - "description": "Indicates whether every visible scope for each scope type (zone, region, global) should be included in the response. For new resource types added after this field, the flag has no effect as new resource types will always include every visible scope for each scope type in response. For resource types which predate this field, if this flag is omitted or false, only scopes of the scope types where the resource type is expected to be found will be included.", - "location": "query", - "type": "boolean" - }, - "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. 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.", - "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", + "interconnect": { + "description": "Name of the interconnect to delete.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "required": true, "type": "string" }, "project": { @@ -14438,41 +16266,33 @@ "required": true, "type": "string" }, - "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", - "location": "query", - "type": "boolean" - }, - "serviceProjectNumber": { - "description": "The Shared VPC service project id or service project number for which aggregated list request is invoked for subnetworks list-usable api.", - "format": "int64", + "requestId": { + "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).", "location": "query", "type": "string" } }, - "path": "projects/{project}/aggregated/networkAttachments", + "path": "projects/{project}/global/interconnects/{interconnect}", "response": { - "$ref": "NetworkAttachmentAggregatedList" + "$ref": "Operation" }, "scopes": [ "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" + "https://www.googleapis.com/auth/compute" ] }, - "delete": { - "description": "Deletes the specified NetworkAttachment in the given scope", - "flatPath": "projects/{project}/regions/{region}/networkAttachments/{networkAttachment}", - "httpMethod": "DELETE", - "id": "compute.networkAttachments.delete", + "get": { + "description": "Returns the specified Interconnect. Get a list of available Interconnects\nby making a list() request.", + "flatPath": "projects/{project}/global/interconnects/{interconnect}", + "httpMethod": "GET", + "id": "compute.interconnects.get", "parameterOrder": [ "project", - "region", - "networkAttachment" + "interconnect" ], "parameters": { - "networkAttachment": { - "description": "Name of the NetworkAttachment resource to delete.", + "interconnect": { + "description": "Name of the interconnect to return.", "location": "path", "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", "required": true, @@ -14484,42 +16304,30 @@ "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 of this request.", - "location": "path", - "pattern": "[a-z](?:[-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. 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). end_interface: MixerMutationRequestBuilder", - "location": "query", - "type": "string" } }, - "path": "projects/{project}/regions/{region}/networkAttachments/{networkAttachment}", + "path": "projects/{project}/global/interconnects/{interconnect}", "response": { - "$ref": "Operation" + "$ref": "Interconnect" }, "scopes": [ "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" ] }, - "get": { - "description": "Returns the specified NetworkAttachment resource in the given scope.", - "flatPath": "projects/{project}/regions/{region}/networkAttachments/{networkAttachment}", + "getDiagnostics": { + "description": "Returns the interconnectDiagnostics for the specified\nInterconnect.\n\nIn the event of a\nglobal outage, do not use this API to make decisions about where to\nredirect your network traffic.\n\nUnlike a VLAN attachment, which is regional, a Cloud Interconnect\nconnection is a global resource. A global outage can prevent this\nAPI from functioning properly.", + "flatPath": "projects/{project}/global/interconnects/{interconnect}/getDiagnostics", "httpMethod": "GET", - "id": "compute.networkAttachments.get", + "id": "compute.interconnects.getDiagnostics", "parameterOrder": [ "project", - "region", - "networkAttachment" + "interconnect" ], "parameters": { - "networkAttachment": { - "description": "Name of the NetworkAttachment resource to return.", + "interconnect": { + "description": "Name of the interconnect resource to query.", "location": "path", "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", "required": true, @@ -14531,18 +16339,11 @@ "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 of this request.", - "location": "path", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "required": true, - "type": "string" } }, - "path": "projects/{project}/regions/{region}/networkAttachments/{networkAttachment}", + "path": "projects/{project}/global/interconnects/{interconnect}/getDiagnostics", "response": { - "$ref": "NetworkAttachment" + "$ref": "InterconnectsGetDiagnosticsResponse" }, "scopes": [ "https://www.googleapis.com/auth/cloud-platform", @@ -14550,48 +16351,34 @@ "https://www.googleapis.com/auth/compute.readonly" ] }, - "getIamPolicy": { - "description": "Gets the access control policy for a resource. May be empty if no such policy or resource exists.", - "flatPath": "projects/{project}/regions/{region}/networkAttachments/{resource}/getIamPolicy", + "getMacsecConfig": { + "description": "Returns the interconnectMacsecConfig for the specified\nInterconnect.", + "flatPath": "projects/{project}/global/interconnects/{interconnect}/getMacsecConfig", "httpMethod": "GET", - "id": "compute.networkAttachments.getIamPolicy", + "id": "compute.interconnects.getMacsecConfig", "parameterOrder": [ "project", - "region", - "resource" + "interconnect" ], "parameters": { - "optionsRequestedPolicyVersion": { - "description": "Requested IAM Policy version.", - "format": "int32", - "location": "query", - "type": "integer" - }, - "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": "The name of the region for this request.", + "interconnect": { + "description": "Name of the interconnect resource to query.", "location": "path", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", "required": true, "type": "string" }, - "resource": { - "description": "Name or id of the resource for this request.", + "project": { + "description": "Project ID for this request.", "location": "path", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "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" } }, - "path": "projects/{project}/regions/{region}/networkAttachments/{resource}/getIamPolicy", + "path": "projects/{project}/global/interconnects/{interconnect}/getMacsecConfig", "response": { - "$ref": "Policy" + "$ref": "InterconnectsGetMacsecConfigResponse" }, "scopes": [ "https://www.googleapis.com/auth/cloud-platform", @@ -14600,13 +16387,12 @@ ] }, "insert": { - "description": "Creates a NetworkAttachment in the specified project in the given scope using the parameters that are included in the request.", - "flatPath": "projects/{project}/regions/{region}/networkAttachments", + "description": "Creates an Interconnect in the specified project using\nthe data included in the request.", + "flatPath": "projects/{project}/global/interconnects", "httpMethod": "POST", - "id": "compute.networkAttachments.insert", + "id": "compute.interconnects.insert", "parameterOrder": [ - "project", - "region" + "project" ], "parameters": { "project": { @@ -14616,22 +16402,15 @@ "required": true, "type": "string" }, - "region": { - "description": "Name of the region of this request.", - "location": "path", - "pattern": "[a-z](?:[-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. 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). end_interface: MixerMutationRequestBuilder", + "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).", "location": "query", "type": "string" } }, - "path": "projects/{project}/regions/{region}/networkAttachments", + "path": "projects/{project}/global/interconnects", "request": { - "$ref": "NetworkAttachment" + "$ref": "Interconnect" }, "response": { "$ref": "Operation" @@ -14642,35 +16421,34 @@ ] }, "list": { - "description": "Lists the NetworkAttachments for a project in the given scope.", - "flatPath": "projects/{project}/regions/{region}/networkAttachments", + "description": "Retrieves the list of Interconnects available to the specified project.", + "flatPath": "projects/{project}/global/interconnects", "httpMethod": "GET", - "id": "compute.networkAttachments.list", + "id": "compute.interconnects.list", "parameterOrder": [ - "project", - "region" + "project" ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` 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) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.", + "description": "A filter expression that filters resources listed in the response. Most\nCompute resources support two types of filter expressions:\nexpressions that support regular expressions and expressions that follow\nAPI improvement proposal AIP-160.\nThese two types of filter expressions cannot be mixed in one request.\n\nIf you want to use AIP-160, your expression must specify the field name, an\noperator, and the value that you want to use for filtering. The value\nmust be a string, a number, or a boolean. The operator\nmust be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`.\n\nFor example, if you are filtering Compute Engine instances, you can\nexclude instances named `example-instance` by specifying\n`name != example-instance`.\n\nThe `:*` comparison can be used to test whether a key has been defined.\nFor example, to find all objects with `owner` label use:\n```\nlabels.owner:*\n```\n\nYou can also filter nested fields. For example, you could specify\n`scheduling.automaticRestart = false` to include instances only\nif they are not scheduled for automatic restarts. You can use filtering\non nested fields to filter based onresource labels.\n\nTo filter on multiple expressions, provide each separate expression within\nparentheses. For example:\n```\n(scheduling.automaticRestart = true)\n(cpuPlatform = \"Intel Skylake\")\n```\nBy default, each expression is an `AND` expression. However, you\ncan include `AND` and `OR` expressions explicitly.\nFor example:\n```\n(cpuPlatform = \"Intel Skylake\") OR\n(cpuPlatform = \"Intel Broadwell\") AND\n(scheduling.automaticRestart = true)\n```\n\nIf you want to use a regular expression, use the `eq` (equal) or `ne`\n(not equal) operator against a single un-parenthesized expression with or\nwithout quotes or against multiple parenthesized expressions. Examples:\n\n`fieldname eq unquoted literal`\n`fieldname eq 'single quoted literal'`\n`fieldname eq \"double quoted literal\"`\n`(fieldname1 eq literal) (fieldname2 ne \"literal\")`\n\nThe literal value is interpreted as a regular expression using GoogleRE2 library syntax.\nThe literal value must match the entire field.\n\nFor example, to filter for instances that do not end with name \"instance\",\nyou would use `name ne .*instance`.\n\nYou cannot combine constraints on multiple fields using regular\nexpressions.", "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`)", + "description": "The maximum number of results per page that should be returned.\nIf the number of available results is larger than `maxResults`,\nCompute Engine returns a `nextPageToken` that can be used to get\nthe next page of results in subsequent list requests. Acceptable values are\n`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. 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.", + "description": "Sorts list results by a certain order. By default, results\nare returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation\ntimestamp using `orderBy=\"creationTimestamp desc\"`. This sorts\nresults based on the `creationTimestamp` field in\nreverse chronological order (newest result first). Use this to sort\nresources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or\n`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.", + "description": "Specifies a page token to use. Set `pageToken` to the\n`nextPageToken` returned by a previous list request to get\nthe next page of results.", "location": "query", "type": "string" }, @@ -14681,22 +16459,15 @@ "required": true, "type": "string" }, - "region": { - "description": "Name of the region of this request.", - "location": "path", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "required": true, - "type": "string" - }, "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", + "description": "Opt-in for partial success behavior which provides partial results in case\nof failure. The default value is false.\n\nFor example, when partial success behavior is enabled, aggregatedList for a\nsingle zone scope either returns all resources in the zone or no resources,\nwith an error code.", "location": "query", "type": "boolean" } }, - "path": "projects/{project}/regions/{region}/networkAttachments", + "path": "projects/{project}/global/interconnects", "response": { - "$ref": "NetworkAttachmentList" + "$ref": "InterconnectList" }, "scopes": [ "https://www.googleapis.com/auth/cloud-platform", @@ -14705,18 +16476,17 @@ ] }, "patch": { - "description": "Patches the specified NetworkAttachment resource with the data included in the request. This method supports PATCH semantics and uses JSON merge patch format and processing rules.", - "flatPath": "projects/{project}/regions/{region}/networkAttachments/{networkAttachment}", + "description": "Updates the specified Interconnect with the data included in the request.\nThis method supportsPATCH\nsemantics and uses theJSON merge\npatch format and processing rules.", + "flatPath": "projects/{project}/global/interconnects/{interconnect}", "httpMethod": "PATCH", - "id": "compute.networkAttachments.patch", + "id": "compute.interconnects.patch", "parameterOrder": [ "project", - "region", - "networkAttachment" + "interconnect" ], "parameters": { - "networkAttachment": { - "description": "Name of the NetworkAttachment resource to patch.", + "interconnect": { + "description": "Name of the interconnect to update.", "location": "path", "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", "required": true, @@ -14729,22 +16499,15 @@ "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" - }, "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. 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). end_interface: MixerMutationRequestBuilder", + "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).", "location": "query", "type": "string" } }, - "path": "projects/{project}/regions/{region}/networkAttachments/{networkAttachment}", + "path": "projects/{project}/global/interconnects/{interconnect}", "request": { - "$ref": "NetworkAttachment" + "$ref": "Interconnect" }, "response": { "$ref": "Operation" @@ -14754,14 +16517,13 @@ "https://www.googleapis.com/auth/compute" ] }, - "setIamPolicy": { - "description": "Sets the access control policy on the specified resource. Replaces any existing policy.", - "flatPath": "projects/{project}/regions/{region}/networkAttachments/{resource}/setIamPolicy", + "setLabels": { + "description": "Sets the labels on an Interconnect. To learn more about labels,\nread the Labeling\nResources documentation.", + "flatPath": "projects/{project}/global/interconnects/{resource}/setLabels", "httpMethod": "POST", - "id": "compute.networkAttachments.setIamPolicy", + "id": "compute.interconnects.setLabels", "parameterOrder": [ "project", - "region", "resource" ], "parameters": { @@ -14772,162 +16534,197 @@ "required": true, "type": "string" }, - "region": { - "description": "The name of the region for this request.", - "location": "path", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "required": true, - "type": "string" - }, "resource": { "description": "Name or id of the resource for this request.", "location": "path", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", "required": true, "type": "string" } }, - "path": "projects/{project}/regions/{region}/networkAttachments/{resource}/setIamPolicy", + "path": "projects/{project}/global/interconnects/{resource}/setLabels", "request": { - "$ref": "RegionSetPolicyRequest" + "$ref": "GlobalSetLabelsRequest" }, "response": { - "$ref": "Policy" + "$ref": "Operation" }, "scopes": [ "https://www.googleapis.com/auth/cloud-platform", "https://www.googleapis.com/auth/compute" ] - }, - "testIamPermissions": { - "description": "Returns permissions that a caller has on the specified resource.", - "flatPath": "projects/{project}/regions/{region}/networkAttachments/{resource}/testIamPermissions", - "httpMethod": "POST", - "id": "compute.networkAttachments.testIamPermissions", + } + } + }, + "licenseCodes": { + "methods": { + "get": { + "description": "Return a specified license code. License codes are mirrored across\nall projects that have permissions to read the License Code.\n *Caution* This resource is intended\nfor use only by third-party partners who are creatingCloud Marketplace\nimages.", + "flatPath": "projects/{project}/global/licenseCodes/{licenseCode}", + "httpMethod": "GET", + "id": "compute.licenseCodes.get", "parameterOrder": [ "project", - "region", - "resource" + "licenseCode" ], "parameters": { + "licenseCode": { + "description": "Number corresponding to the License code resource to return.", + "location": "path", + "pattern": "[0-9]{0,61}?", + "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" + } + }, + "path": "projects/{project}/global/licenseCodes/{licenseCode}", + "response": { + "$ref": "LicenseCode" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ] + }, + "getIamPolicy": { + "description": "Gets the access control policy for a resource. May be empty if no such\npolicy or resource exists.\n *Caution* This resource is intended\nfor use only by third-party partners who are creatingCloud Marketplace\nimages.", + "flatPath": "projects/{project}/global/licenseCodes/{resource}/getIamPolicy", + "httpMethod": "GET", + "id": "compute.licenseCodes.getIamPolicy", + "parameterOrder": [ + "project", + "resource" + ], + "parameters": { + "optionsRequestedPolicyVersion": { + "description": "Requested IAM Policy version.", + "format": "int32", + "location": "query", + "type": "integer" }, - "region": { - "description": "The name of the region for this request.", + "project": { + "description": "Project ID for this request.", "location": "path", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "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" }, "resource": { "description": "Name or id of the resource for this request.", "location": "path", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", "required": true, "type": "string" } }, - "path": "projects/{project}/regions/{region}/networkAttachments/{resource}/testIamPermissions", - "request": { - "$ref": "TestPermissionsRequest" - }, + "path": "projects/{project}/global/licenseCodes/{resource}/getIamPolicy", "response": { - "$ref": "TestPermissionsResponse" + "$ref": "Policy" }, "scopes": [ "https://www.googleapis.com/auth/cloud-platform", "https://www.googleapis.com/auth/compute", "https://www.googleapis.com/auth/compute.readonly" ] - } - } - }, - "networkEdgeSecurityServices": { - "methods": { - "aggregatedList": { - "description": "Retrieves the list of all NetworkEdgeSecurityService resources available to the specified project. To prevent failure, Google recommends that you set the `returnPartialSuccess` parameter to `true`.", - "flatPath": "projects/{project}/aggregated/networkEdgeSecurityServices", - "httpMethod": "GET", - "id": "compute.networkEdgeSecurityServices.aggregatedList", + }, + "setIamPolicy": { + "description": "Sets the access control policy on the specified resource.\nReplaces any existing policy.\n *Caution* This resource is intended\nfor use only by third-party partners who are creatingCloud Marketplace\nimages.", + "flatPath": "projects/{project}/global/licenseCodes/{resource}/setIamPolicy", + "httpMethod": "POST", + "id": "compute.licenseCodes.setIamPolicy", "parameterOrder": [ - "project" + "project", + "resource" ], "parameters": { - "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` 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) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.", - "location": "query", - "type": "string" - }, - "includeAllScopes": { - "description": "Indicates whether every visible scope for each scope type (zone, region, global) should be included in the response. For new resource types added after this field, the flag has no effect as new resource types will always include every visible scope for each scope type in response. For resource types which predate this field, if this flag is omitted or false, only scopes of the scope types where the resource type is expected to be found will be included.", - "location": "query", - "type": "boolean" - }, - "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. 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.", - "location": "query", + "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" }, - "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", + "resource": { + "description": "Name or id of the resource for this request.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "required": true, "type": "string" - }, + } + }, + "path": "projects/{project}/global/licenseCodes/{resource}/setIamPolicy", + "request": { + "$ref": "GlobalSetPolicyRequest" + }, + "response": { + "$ref": "Policy" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ] + }, + "testIamPermissions": { + "description": "Returns permissions that a caller has on the specified resource.\n *Caution* This resource is intended\nfor use only by third-party partners who are creatingCloud Marketplace\nimages.", + "flatPath": "projects/{project}/global/licenseCodes/{resource}/testIamPermissions", + "httpMethod": "POST", + "id": "compute.licenseCodes.testIamPermissions", + "parameterOrder": [ + "project", + "resource" + ], + "parameters": { "project": { - "description": "Name of the project scoping this request.", + "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" }, - "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", - "location": "query", - "type": "boolean" - }, - "serviceProjectNumber": { - "description": "The Shared VPC service project id or service project number for which aggregated list request is invoked for subnetworks list-usable api.", - "format": "int64", - "location": "query", + "resource": { + "description": "Name or id of the resource for this request.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "required": true, "type": "string" } }, - "path": "projects/{project}/aggregated/networkEdgeSecurityServices", + "path": "projects/{project}/global/licenseCodes/{resource}/testIamPermissions", + "request": { + "$ref": "TestPermissionsRequest" + }, "response": { - "$ref": "NetworkEdgeSecurityServiceAggregatedList" + "$ref": "TestPermissionsResponse" }, "scopes": [ "https://www.googleapis.com/auth/cloud-platform", "https://www.googleapis.com/auth/compute", "https://www.googleapis.com/auth/compute.readonly" ] - }, + } + } + }, + "licenses": { + "methods": { "delete": { - "description": "Deletes the specified service.", - "flatPath": "projects/{project}/regions/{region}/networkEdgeSecurityServices/{networkEdgeSecurityService}", + "description": "Deletes the specified license.\n *Caution* This resource is intended\nfor use only by third-party partners who are creatingCloud Marketplace\nimages.", + "flatPath": "projects/{project}/global/licenses/{license}", "httpMethod": "DELETE", - "id": "compute.networkEdgeSecurityServices.delete", + "id": "compute.licenses.delete", "parameterOrder": [ "project", - "region", - "networkEdgeSecurityService" + "license" ], "parameters": { - "networkEdgeSecurityService": { - "description": "Name of the network edge security service to delete.", + "license": { + "description": "Name of the license resource to delete.", "location": "path", "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", "required": true, @@ -14940,20 +16737,13 @@ "required": true, "type": "string" }, - "region": { - "description": "Name of the region scoping this request.", - "location": "path", - "pattern": "[a-z](?:[-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. 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).", + "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).", "location": "query", "type": "string" } }, - "path": "projects/{project}/regions/{region}/networkEdgeSecurityServices/{networkEdgeSecurityService}", + "path": "projects/{project}/global/licenses/{license}", "response": { "$ref": "Operation" }, @@ -14963,18 +16753,17 @@ ] }, "get": { - "description": "Gets a specified NetworkEdgeSecurityService.", - "flatPath": "projects/{project}/regions/{region}/networkEdgeSecurityServices/{networkEdgeSecurityService}", + "description": "Returns the specified License resource.\n *Caution* This resource is intended\nfor use only by third-party partners who are creatingCloud Marketplace\nimages.", + "flatPath": "projects/{project}/global/licenses/{license}", "httpMethod": "GET", - "id": "compute.networkEdgeSecurityServices.get", + "id": "compute.licenses.get", "parameterOrder": [ "project", - "region", - "networkEdgeSecurityService" + "license" ], "parameters": { - "networkEdgeSecurityService": { - "description": "Name of the network edge security service to get.", + "license": { + "description": "Name of the License resource to return.", "location": "path", "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", "required": true, @@ -14986,18 +16775,11 @@ "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 scoping this request.", - "location": "path", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "required": true, - "type": "string" } }, - "path": "projects/{project}/regions/{region}/networkEdgeSecurityServices/{networkEdgeSecurityService}", + "path": "projects/{project}/global/licenses/{license}", "response": { - "$ref": "NetworkEdgeSecurityService" + "$ref": "License" }, "scopes": [ "https://www.googleapis.com/auth/cloud-platform", @@ -15005,16 +16787,22 @@ "https://www.googleapis.com/auth/compute.readonly" ] }, - "insert": { - "description": "Creates a new service in the specified project using the data included in the request.", - "flatPath": "projects/{project}/regions/{region}/networkEdgeSecurityServices", - "httpMethod": "POST", - "id": "compute.networkEdgeSecurityServices.insert", + "getIamPolicy": { + "description": "Gets the access control policy for a resource. May be empty if no such\npolicy or resource exists.\n *Caution* This resource is intended\nfor use only by third-party partners who are creatingCloud Marketplace\nimages.", + "flatPath": "projects/{project}/global/licenses/{resource}/getIamPolicy", + "httpMethod": "GET", + "id": "compute.licenses.getIamPolicy", "parameterOrder": [ "project", - "region" + "resource" ], "parameters": { + "optionsRequestedPolicyVersion": { + "description": "Requested IAM Policy version.", + "format": "int32", + "location": "query", + "type": "integer" + }, "project": { "description": "Project ID for this request.", "location": "path", @@ -15022,59 +16810,33 @@ "required": true, "type": "string" }, - "region": { - "description": "Name of the region scoping this request.", + "resource": { + "description": "Name or id of the resource for this request.", "location": "path", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", "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. 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).", - "location": "query", - "type": "string" - }, - "validateOnly": { - "description": "If true, the request will not be committed.", - "location": "query", - "type": "boolean" } }, - "path": "projects/{project}/regions/{region}/networkEdgeSecurityServices", - "request": { - "$ref": "NetworkEdgeSecurityService" - }, + "path": "projects/{project}/global/licenses/{resource}/getIamPolicy", "response": { - "$ref": "Operation" + "$ref": "Policy" }, "scopes": [ "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" ] }, - "patch": { - "description": "Patches the specified policy with the data included in the request.", - "flatPath": "projects/{project}/regions/{region}/networkEdgeSecurityServices/{networkEdgeSecurityService}", - "httpMethod": "PATCH", - "id": "compute.networkEdgeSecurityServices.patch", + "insert": { + "description": "Create a License resource in the specified project.\n *Caution* This resource is intended\nfor use only by third-party partners who are creatingCloud Marketplace\nimages.", + "flatPath": "projects/{project}/global/licenses", + "httpMethod": "POST", + "id": "compute.licenses.insert", "parameterOrder": [ - "project", - "region", - "networkEdgeSecurityService" + "project" ], "parameters": { - "networkEdgeSecurityService": { - "description": "Name of the network edge security service to update.", - "location": "path", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "required": true, - "type": "string" - }, - "paths": { - "location": "query", - "repeated": true, - "type": "string" - }, "project": { "description": "Project ID for this request.", "location": "path", @@ -15082,75 +16844,56 @@ "required": true, "type": "string" }, - "region": { - "description": "Name of the region scoping this request.", - "location": "path", - "pattern": "[a-z](?:[-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. 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).", - "location": "query", - "type": "string" - }, - "updateMask": { - "description": "Indicates fields to be updated as part of this request.", - "format": "google-fieldmask", + "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).", "location": "query", "type": "string" } }, - "path": "projects/{project}/regions/{region}/networkEdgeSecurityServices/{networkEdgeSecurityService}", + "path": "projects/{project}/global/licenses", "request": { - "$ref": "NetworkEdgeSecurityService" + "$ref": "License" }, "response": { "$ref": "Operation" }, "scopes": [ "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/devstorage.full_control", + "https://www.googleapis.com/auth/devstorage.read_only", + "https://www.googleapis.com/auth/devstorage.read_write" ] - } - } - }, - "networkEndpointGroups": { - "methods": { - "aggregatedList": { - "description": "Retrieves the list of network endpoint groups and sorts them by zone. To prevent failure, Google recommends that you set the `returnPartialSuccess` parameter to `true`.", - "flatPath": "projects/{project}/aggregated/networkEndpointGroups", + }, + "list": { + "description": "Retrieves the list of licenses\navailable in the specified project. This method does not\nget any licenses that belong to other projects, including licenses attached\nto publicly-available images, like Debian 9. If you want to get a list of\npublicly-available licenses, use this method to make a request to the\nrespective image project, such as debian-cloud orwindows-cloud.\n *Caution* This resource is intended\nfor use only by third-party partners who are creatingCloud Marketplace\nimages.", + "flatPath": "projects/{project}/global/licenses", "httpMethod": "GET", - "id": "compute.networkEndpointGroups.aggregatedList", + "id": "compute.licenses.list", "parameterOrder": [ "project" ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` 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) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.", + "description": "A filter expression that filters resources listed in the response. Most\nCompute resources support two types of filter expressions:\nexpressions that support regular expressions and expressions that follow\nAPI improvement proposal AIP-160.\nThese two types of filter expressions cannot be mixed in one request.\n\nIf you want to use AIP-160, your expression must specify the field name, an\noperator, and the value that you want to use for filtering. The value\nmust be a string, a number, or a boolean. The operator\nmust be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`.\n\nFor example, if you are filtering Compute Engine instances, you can\nexclude instances named `example-instance` by specifying\n`name != example-instance`.\n\nThe `:*` comparison can be used to test whether a key has been defined.\nFor example, to find all objects with `owner` label use:\n```\nlabels.owner:*\n```\n\nYou can also filter nested fields. For example, you could specify\n`scheduling.automaticRestart = false` to include instances only\nif they are not scheduled for automatic restarts. You can use filtering\non nested fields to filter based onresource labels.\n\nTo filter on multiple expressions, provide each separate expression within\nparentheses. For example:\n```\n(scheduling.automaticRestart = true)\n(cpuPlatform = \"Intel Skylake\")\n```\nBy default, each expression is an `AND` expression. However, you\ncan include `AND` and `OR` expressions explicitly.\nFor example:\n```\n(cpuPlatform = \"Intel Skylake\") OR\n(cpuPlatform = \"Intel Broadwell\") AND\n(scheduling.automaticRestart = true)\n```\n\nIf you want to use a regular expression, use the `eq` (equal) or `ne`\n(not equal) operator against a single un-parenthesized expression with or\nwithout quotes or against multiple parenthesized expressions. Examples:\n\n`fieldname eq unquoted literal`\n`fieldname eq 'single quoted literal'`\n`fieldname eq \"double quoted literal\"`\n`(fieldname1 eq literal) (fieldname2 ne \"literal\")`\n\nThe literal value is interpreted as a regular expression using GoogleRE2 library syntax.\nThe literal value must match the entire field.\n\nFor example, to filter for instances that do not end with name \"instance\",\nyou would use `name ne .*instance`.\n\nYou cannot combine constraints on multiple fields using regular\nexpressions.", "location": "query", "type": "string" }, - "includeAllScopes": { - "description": "Indicates whether every visible scope for each scope type (zone, region, global) should be included in the response. For new resource types added after this field, the flag has no effect as new resource types will always include every visible scope for each scope type in response. For resource types which predate this field, if this flag is omitted or false, only scopes of the scope types where the resource type is expected to be found will be included.", - "location": "query", - "type": "boolean" - }, "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`)", + "description": "The maximum number of results per page that should be returned.\nIf the number of available results is larger than `maxResults`,\nCompute Engine returns a `nextPageToken` that can be used to get\nthe next page of results in subsequent list requests. Acceptable values are\n`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. 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.", + "description": "Sorts list results by a certain order. By default, results\nare returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation\ntimestamp using `orderBy=\"creationTimestamp desc\"`. This sorts\nresults based on the `creationTimestamp` field in\nreverse chronological order (newest result first). Use this to sort\nresources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or\n`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.", + "description": "Specifies a page token to use. Set `pageToken` to the\n`nextPageToken` returned by a previous list request to get\nthe next page of results.", "location": "query", "type": "string" }, @@ -15162,20 +16905,14 @@ "type": "string" }, "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", + "description": "Opt-in for partial success behavior which provides partial results in case\nof failure. The default value is false.\n\nFor example, when partial success behavior is enabled, aggregatedList for a\nsingle zone scope either returns all resources in the zone or no resources,\nwith an error code.", "location": "query", "type": "boolean" - }, - "serviceProjectNumber": { - "description": "The Shared VPC service project id or service project number for which aggregated list request is invoked for subnetworks list-usable api.", - "format": "int64", - "location": "query", - "type": "string" } }, - "path": "projects/{project}/aggregated/networkEndpointGroups", + "path": "projects/{project}/global/licenses", "response": { - "$ref": "NetworkEndpointGroupAggregatedList" + "$ref": "LicensesListResponse" }, "scopes": [ "https://www.googleapis.com/auth/cloud-platform", @@ -15183,23 +16920,16 @@ "https://www.googleapis.com/auth/compute.readonly" ] }, - "attachNetworkEndpoints": { - "description": "Attach a list of network endpoints to the specified network endpoint group.", - "flatPath": "projects/{project}/zones/{zone}/networkEndpointGroups/{networkEndpointGroup}/attachNetworkEndpoints", + "setIamPolicy": { + "description": "Sets the access control policy on the specified resource.\nReplaces any existing policy.\n *Caution* This resource is intended\nfor use only by third-party partners who are creatingCloud Marketplace\nimages.", + "flatPath": "projects/{project}/global/licenses/{resource}/setIamPolicy", "httpMethod": "POST", - "id": "compute.networkEndpointGroups.attachNetworkEndpoints", + "id": "compute.licenses.setIamPolicy", "parameterOrder": [ "project", - "zone", - "networkEndpointGroup" + "resource" ], "parameters": { - "networkEndpointGroup": { - "description": "The name of the network endpoint group where you are attaching network endpoints to. It should comply with RFC1035.", - "location": "path", - "required": true, - "type": "string" - }, "project": { "description": "Project ID for this request.", "location": "path", @@ -15207,44 +16937,78 @@ "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. 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).", - "location": "query", - "type": "string" - }, - "zone": { - "description": "The name of the zone where the network endpoint group is located. It should comply with RFC1035.", + "resource": { + "description": "Name or id of the resource for this request.", "location": "path", + "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", "required": true, "type": "string" } }, - "path": "projects/{project}/zones/{zone}/networkEndpointGroups/{networkEndpointGroup}/attachNetworkEndpoints", + "path": "projects/{project}/global/licenses/{resource}/setIamPolicy", "request": { - "$ref": "NetworkEndpointGroupsAttachEndpointsRequest" + "$ref": "GlobalSetPolicyRequest" }, "response": { - "$ref": "Operation" + "$ref": "Policy" }, "scopes": [ "https://www.googleapis.com/auth/cloud-platform", "https://www.googleapis.com/auth/compute" ] }, - "delete": { - "description": "Deletes the specified network endpoint group. The network endpoints in the NEG and the VM instances they belong to are not terminated when the NEG is deleted. Note that the NEG cannot be deleted if there are backend services referencing it.", - "flatPath": "projects/{project}/zones/{zone}/networkEndpointGroups/{networkEndpointGroup}", - "httpMethod": "DELETE", - "id": "compute.networkEndpointGroups.delete", + "testIamPermissions": { + "description": "Returns permissions that a caller has on the specified resource.\n *Caution* This resource is intended\nfor use only by third-party partners who are creatingCloud Marketplace\nimages.", + "flatPath": "projects/{project}/global/licenses/{resource}/testIamPermissions", + "httpMethod": "POST", + "id": "compute.licenses.testIamPermissions", "parameterOrder": [ "project", - "zone", - "networkEndpointGroup" + "resource" ], "parameters": { - "networkEndpointGroup": { - "description": "The name of the network endpoint group to delete. It should comply with RFC1035.", + "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" + }, + "resource": { + "description": "Name or id of the resource for this request.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "required": true, + "type": "string" + } + }, + "path": "projects/{project}/global/licenses/{resource}/testIamPermissions", + "request": { + "$ref": "TestPermissionsRequest" + }, + "response": { + "$ref": "TestPermissionsResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ] + }, + "update": { + "description": "Updates a License resource in the specified project.\n *Caution* This resource is intended\nfor use only by third-party partners who are creatingCloud Marketplace\nimages.", + "flatPath": "projects/{project}/global/licenses/{license}", + "httpMethod": "PATCH", + "id": "compute.licenses.update", + "parameterOrder": [ + "project", + "license" + ], + "parameters": { + "license": { + "description": "The license name for this request.", "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", "required": true, "type": "string" }, @@ -15256,18 +17020,21 @@ "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. 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).", + "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).", "location": "query", "type": "string" }, - "zone": { - "description": "The name of the zone where the network endpoint group is located. It should comply with RFC1035.", - "location": "path", - "required": true, + "updateMask": { + "description": "update_mask indicates fields to be updated as part of this request.", + "format": "google-fieldmask", + "location": "query", "type": "string" } }, - "path": "projects/{project}/zones/{zone}/networkEndpointGroups/{networkEndpointGroup}", + "path": "projects/{project}/global/licenses/{license}", + "request": { + "$ref": "License" + }, "response": { "$ref": "Operation" }, @@ -15275,21 +17042,25 @@ "https://www.googleapis.com/auth/cloud-platform", "https://www.googleapis.com/auth/compute" ] - }, - "detachNetworkEndpoints": { - "description": "Detach a list of network endpoints from the specified network endpoint group.", - "flatPath": "projects/{project}/zones/{zone}/networkEndpointGroups/{networkEndpointGroup}/detachNetworkEndpoints", - "httpMethod": "POST", - "id": "compute.networkEndpointGroups.detachNetworkEndpoints", + } + } + }, + "machineImages": { + "methods": { + "delete": { + "description": "Deletes the specified machine image. Deleting a machine image is permanent\nand cannot be undone.", + "flatPath": "projects/{project}/global/machineImages/{machineImage}", + "httpMethod": "DELETE", + "id": "compute.machineImages.delete", "parameterOrder": [ "project", - "zone", - "networkEndpointGroup" + "machineImage" ], "parameters": { - "networkEndpointGroup": { - "description": "The name of the network endpoint group where you are removing network endpoints. It should comply with RFC1035.", + "machineImage": { + "description": "The name of the machine image to delete.", "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", "required": true, "type": "string" }, @@ -15301,21 +17072,12 @@ "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. 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).", + "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).", "location": "query", "type": "string" - }, - "zone": { - "description": "The name of the zone where the network endpoint group is located. It should comply with RFC1035.", - "location": "path", - "required": true, - "type": "string" } }, - "path": "projects/{project}/zones/{zone}/networkEndpointGroups/{networkEndpointGroup}/detachNetworkEndpoints", - "request": { - "$ref": "NetworkEndpointGroupsDetachEndpointsRequest" - }, + "path": "projects/{project}/global/machineImages/{machineImage}", "response": { "$ref": "Operation" }, @@ -15325,21 +17087,55 @@ ] }, "get": { - "description": "Returns the specified network endpoint group.", - "flatPath": "projects/{project}/zones/{zone}/networkEndpointGroups/{networkEndpointGroup}", + "description": "Returns the specified machine image.", + "flatPath": "projects/{project}/global/machineImages/{machineImage}", "httpMethod": "GET", - "id": "compute.networkEndpointGroups.get", + "id": "compute.machineImages.get", "parameterOrder": [ "project", - "zone", - "networkEndpointGroup" + "machineImage" ], "parameters": { - "networkEndpointGroup": { - "description": "The name of the network endpoint group. It should comply with RFC1035.", + "machineImage": { + "description": "The name of the machine image.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "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" + } + }, + "path": "projects/{project}/global/machineImages/{machineImage}", + "response": { + "$ref": "MachineImage" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ] + }, + "getIamPolicy": { + "description": "Gets the access control policy for a resource. May be empty if no such\npolicy or resource exists.", + "flatPath": "projects/{project}/global/machineImages/{resource}/getIamPolicy", + "httpMethod": "GET", + "id": "compute.machineImages.getIamPolicy", + "parameterOrder": [ + "project", + "resource" + ], + "parameters": { + "optionsRequestedPolicyVersion": { + "description": "Requested IAM Policy version.", + "format": "int32", + "location": "query", + "type": "integer" }, "project": { "description": "Project ID for this request.", @@ -15348,16 +17144,17 @@ "required": true, "type": "string" }, - "zone": { - "description": "The name of the zone where the network endpoint group is located. It should comply with RFC1035.", + "resource": { + "description": "Name or id of the resource for this request.", "location": "path", + "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", "required": true, "type": "string" } }, - "path": "projects/{project}/zones/{zone}/networkEndpointGroups/{networkEndpointGroup}", + "path": "projects/{project}/global/machineImages/{resource}/getIamPolicy", "response": { - "$ref": "NetworkEndpointGroup" + "$ref": "Policy" }, "scopes": [ "https://www.googleapis.com/auth/cloud-platform", @@ -15366,13 +17163,12 @@ ] }, "insert": { - "description": "Creates a network endpoint group in the specified project using the parameters that are included in the request.", - "flatPath": "projects/{project}/zones/{zone}/networkEndpointGroups", + "description": "Creates a machine image in the specified project using the\ndata that is included in the request. If you are creating a new machine\nimage to update an existing instance, your new machine image should use the\nsame network or, if applicable, the same subnetwork as the original\ninstance.", + "flatPath": "projects/{project}/global/machineImages", "httpMethod": "POST", - "id": "compute.networkEndpointGroups.insert", + "id": "compute.machineImages.insert", "parameterOrder": [ - "project", - "zone" + "project" ], "parameters": { "project": { @@ -15383,20 +17179,19 @@ "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. 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).", + "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).", "location": "query", "type": "string" }, - "zone": { - "description": "The name of the zone where you want to create the network endpoint group. It should comply with RFC1035.", - "location": "path", - "required": true, + "sourceInstance": { + "description": "Required. Source instance that is used to create the machine image from.", + "location": "query", "type": "string" } }, - "path": "projects/{project}/zones/{zone}/networkEndpointGroups", + "path": "projects/{project}/global/machineImages", "request": { - "$ref": "NetworkEndpointGroup" + "$ref": "MachineImage" }, "response": { "$ref": "Operation" @@ -15407,35 +17202,34 @@ ] }, "list": { - "description": "Retrieves the list of network endpoint groups that are located in the specified project and zone.", - "flatPath": "projects/{project}/zones/{zone}/networkEndpointGroups", + "description": "Retrieves a list of machine images that are contained within\nthe specified project.", + "flatPath": "projects/{project}/global/machineImages", "httpMethod": "GET", - "id": "compute.networkEndpointGroups.list", + "id": "compute.machineImages.list", "parameterOrder": [ - "project", - "zone" + "project" ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` 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) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.", + "description": "A filter expression that filters resources listed in the response. Most\nCompute resources support two types of filter expressions:\nexpressions that support regular expressions and expressions that follow\nAPI improvement proposal AIP-160.\nThese two types of filter expressions cannot be mixed in one request.\n\nIf you want to use AIP-160, your expression must specify the field name, an\noperator, and the value that you want to use for filtering. The value\nmust be a string, a number, or a boolean. The operator\nmust be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`.\n\nFor example, if you are filtering Compute Engine instances, you can\nexclude instances named `example-instance` by specifying\n`name != example-instance`.\n\nThe `:*` comparison can be used to test whether a key has been defined.\nFor example, to find all objects with `owner` label use:\n```\nlabels.owner:*\n```\n\nYou can also filter nested fields. For example, you could specify\n`scheduling.automaticRestart = false` to include instances only\nif they are not scheduled for automatic restarts. You can use filtering\non nested fields to filter based onresource labels.\n\nTo filter on multiple expressions, provide each separate expression within\nparentheses. For example:\n```\n(scheduling.automaticRestart = true)\n(cpuPlatform = \"Intel Skylake\")\n```\nBy default, each expression is an `AND` expression. However, you\ncan include `AND` and `OR` expressions explicitly.\nFor example:\n```\n(cpuPlatform = \"Intel Skylake\") OR\n(cpuPlatform = \"Intel Broadwell\") AND\n(scheduling.automaticRestart = true)\n```\n\nIf you want to use a regular expression, use the `eq` (equal) or `ne`\n(not equal) operator against a single un-parenthesized expression with or\nwithout quotes or against multiple parenthesized expressions. Examples:\n\n`fieldname eq unquoted literal`\n`fieldname eq 'single quoted literal'`\n`fieldname eq \"double quoted literal\"`\n`(fieldname1 eq literal) (fieldname2 ne \"literal\")`\n\nThe literal value is interpreted as a regular expression using GoogleRE2 library syntax.\nThe literal value must match the entire field.\n\nFor example, to filter for instances that do not end with name \"instance\",\nyou would use `name ne .*instance`.\n\nYou cannot combine constraints on multiple fields using regular\nexpressions.", "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`)", + "description": "The maximum number of results per page that should be returned.\nIf the number of available results is larger than `maxResults`,\nCompute Engine returns a `nextPageToken` that can be used to get\nthe next page of results in subsequent list requests. Acceptable values are\n`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. 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.", + "description": "Sorts list results by a certain order. By default, results\nare returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation\ntimestamp using `orderBy=\"creationTimestamp desc\"`. This sorts\nresults based on the `creationTimestamp` field in\nreverse chronological order (newest result first). Use this to sort\nresources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or\n`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.", + "description": "Specifies a page token to use. Set `pageToken` to the\n`nextPageToken` returned by a previous list request to get\nthe next page of results.", "location": "query", "type": "string" }, @@ -15447,20 +17241,14 @@ "type": "string" }, "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", + "description": "Opt-in for partial success behavior which provides partial results in case\nof failure. The default value is false.\n\nFor example, when partial success behavior is enabled, aggregatedList for a\nsingle zone scope either returns all resources in the zone or no resources,\nwith an error code.", "location": "query", "type": "boolean" - }, - "zone": { - "description": "The name of the zone where the network endpoint group is located. It should comply with RFC1035.", - "location": "path", - "required": true, - "type": "string" } }, - "path": "projects/{project}/zones/{zone}/networkEndpointGroups", + "path": "projects/{project}/global/machineImages", "response": { - "$ref": "NetworkEndpointGroupList" + "$ref": "MachineImageList" }, "scopes": [ "https://www.googleapis.com/auth/cloud-platform", @@ -15468,46 +17256,53 @@ "https://www.googleapis.com/auth/compute.readonly" ] }, - "listNetworkEndpoints": { - "description": "Lists the network endpoints in the specified network endpoint group.", - "flatPath": "projects/{project}/zones/{zone}/networkEndpointGroups/{networkEndpointGroup}/listNetworkEndpoints", + "setIamPolicy": { + "description": "Sets the access control policy on the specified resource.\nReplaces any existing policy.", + "flatPath": "projects/{project}/global/machineImages/{resource}/setIamPolicy", "httpMethod": "POST", - "id": "compute.networkEndpointGroups.listNetworkEndpoints", + "id": "compute.machineImages.setIamPolicy", "parameterOrder": [ "project", - "zone", - "networkEndpointGroup" + "resource" ], "parameters": { - "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` 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) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.", - "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" - }, - "networkEndpointGroup": { - "description": "The name of the network endpoint group from which you want to generate a list of included network endpoints. It should comply with RFC1035.", + "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" }, - "orderBy": { - "description": "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.", - "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", + "resource": { + "description": "Name or id of the resource for this request.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "required": true, "type": "string" - }, + } + }, + "path": "projects/{project}/global/machineImages/{resource}/setIamPolicy", + "request": { + "$ref": "GlobalSetPolicyRequest" + }, + "response": { + "$ref": "Policy" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ] + }, + "setLabels": { + "description": "Sets the labels on a machine image. To learn more about labels, read theLabeling\nResources documentation.", + "flatPath": "projects/{project}/global/machineImages/{resource}/setLabels", + "httpMethod": "POST", + "id": "compute.machineImages.setLabels", + "parameterOrder": [ + "project", + "resource" + ], + "parameters": { "project": { "description": "Project ID for this request.", "location": "path", @@ -15515,39 +17310,33 @@ "required": true, "type": "string" }, - "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", - "location": "query", - "type": "boolean" - }, - "zone": { - "description": "The name of the zone where the network endpoint group is located. It should comply with RFC1035.", + "resource": { + "description": "Name or id of the resource for this request.", "location": "path", + "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", "required": true, "type": "string" } }, - "path": "projects/{project}/zones/{zone}/networkEndpointGroups/{networkEndpointGroup}/listNetworkEndpoints", + "path": "projects/{project}/global/machineImages/{resource}/setLabels", "request": { - "$ref": "NetworkEndpointGroupsListEndpointsRequest" + "$ref": "GlobalSetLabelsRequest" }, "response": { - "$ref": "NetworkEndpointGroupsListNetworkEndpoints" + "$ref": "Operation" }, "scopes": [ "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" + "https://www.googleapis.com/auth/compute" ] }, "testIamPermissions": { "description": "Returns permissions that a caller has on the specified resource.", - "flatPath": "projects/{project}/zones/{zone}/networkEndpointGroups/{resource}/testIamPermissions", + "flatPath": "projects/{project}/global/machineImages/{resource}/testIamPermissions", "httpMethod": "POST", - "id": "compute.networkEndpointGroups.testIamPermissions", + "id": "compute.machineImages.testIamPermissions", "parameterOrder": [ "project", - "zone", "resource" ], "parameters": { @@ -15561,19 +17350,12 @@ "resource": { "description": "Name or id of the resource for this request.", "location": "path", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "required": true, - "type": "string" - }, - "zone": { - "description": "The name of the zone for this request.", - "location": "path", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", "required": true, "type": "string" } }, - "path": "projects/{project}/zones/{zone}/networkEndpointGroups/{resource}/testIamPermissions", + "path": "projects/{project}/global/machineImages/{resource}/testIamPermissions", "request": { "$ref": "TestPermissionsRequest" }, @@ -15588,23 +17370,43 @@ } } }, - "networkFirewallPolicies": { + "machineTypes": { "methods": { - "addAssociation": { - "description": "Inserts an association for the specified firewall policy.", - "flatPath": "projects/{project}/global/firewallPolicies/{firewallPolicy}/addAssociation", - "httpMethod": "POST", - "id": "compute.networkFirewallPolicies.addAssociation", + "aggregatedList": { + "description": "Retrieves an aggregated list of machine types.\n\nTo prevent failure, Google recommends that you set the\n`returnPartialSuccess` parameter to `true`.", + "flatPath": "projects/{project}/aggregated/machineTypes", + "httpMethod": "GET", + "id": "compute.machineTypes.aggregatedList", "parameterOrder": [ - "project", - "firewallPolicy" + "project" ], "parameters": { - "firewallPolicy": { - "description": "Name of the firewall policy to update.", - "location": "path", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "required": true, + "filter": { + "description": "A filter expression that filters resources listed in the response. Most\nCompute resources support two types of filter expressions:\nexpressions that support regular expressions and expressions that follow\nAPI improvement proposal AIP-160.\nThese two types of filter expressions cannot be mixed in one request.\n\nIf you want to use AIP-160, your expression must specify the field name, an\noperator, and the value that you want to use for filtering. The value\nmust be a string, a number, or a boolean. The operator\nmust be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`.\n\nFor example, if you are filtering Compute Engine instances, you can\nexclude instances named `example-instance` by specifying\n`name != example-instance`.\n\nThe `:*` comparison can be used to test whether a key has been defined.\nFor example, to find all objects with `owner` label use:\n```\nlabels.owner:*\n```\n\nYou can also filter nested fields. For example, you could specify\n`scheduling.automaticRestart = false` to include instances only\nif they are not scheduled for automatic restarts. You can use filtering\non nested fields to filter based onresource labels.\n\nTo filter on multiple expressions, provide each separate expression within\nparentheses. For example:\n```\n(scheduling.automaticRestart = true)\n(cpuPlatform = \"Intel Skylake\")\n```\nBy default, each expression is an `AND` expression. However, you\ncan include `AND` and `OR` expressions explicitly.\nFor example:\n```\n(cpuPlatform = \"Intel Skylake\") OR\n(cpuPlatform = \"Intel Broadwell\") AND\n(scheduling.automaticRestart = true)\n```\n\nIf you want to use a regular expression, use the `eq` (equal) or `ne`\n(not equal) operator against a single un-parenthesized expression with or\nwithout quotes or against multiple parenthesized expressions. Examples:\n\n`fieldname eq unquoted literal`\n`fieldname eq 'single quoted literal'`\n`fieldname eq \"double quoted literal\"`\n`(fieldname1 eq literal) (fieldname2 ne \"literal\")`\n\nThe literal value is interpreted as a regular expression using GoogleRE2 library syntax.\nThe literal value must match the entire field.\n\nFor example, to filter for instances that do not end with name \"instance\",\nyou would use `name ne .*instance`.\n\nYou cannot combine constraints on multiple fields using regular\nexpressions.", + "location": "query", + "type": "string" + }, + "includeAllScopes": { + "description": "Indicates whether every visible scope for each scope type (zone, region,\nglobal) should be included in the response. For new resource types added\nafter this field, the flag has no effect as new resource types will always\ninclude every visible scope for each scope type in response. For resource\ntypes which predate this field, if this flag is omitted or false, only\nscopes of the scope types where the resource type is expected to be found\nwill be included.", + "location": "query", + "type": "boolean" + }, + "maxResults": { + "default": "500", + "description": "The maximum number of results per page that should be returned.\nIf the number of available results is larger than `maxResults`,\nCompute Engine returns a `nextPageToken` that can be used to get\nthe next page of results in subsequent list requests. Acceptable values are\n`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\nare returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation\ntimestamp using `orderBy=\"creationTimestamp desc\"`. This sorts\nresults based on the `creationTimestamp` field in\nreverse chronological order (newest result first). Use this to sort\nresources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or\n`creationTimestamp desc` is supported.", + "location": "query", + "type": "string" + }, + "pageToken": { + "description": "Specifies a page token to use. Set `pageToken` to the\n`nextPageToken` returned by a previous list request to get\nthe next page of results.", + "location": "query", "type": "string" }, "project": { @@ -15614,58 +17416,104 @@ "required": true, "type": "string" }, - "replaceExistingAssociation": { - "description": "Indicates whether or not to replace it if an association of the attachment already exists. This is false by default, in which case an error will be returned if an association already exists.", + "returnPartialSuccess": { + "description": "Opt-in for partial success behavior which provides partial results in case\nof failure. The default value is false.\n\nFor example, when partial success behavior is enabled, aggregatedList for a\nsingle zone scope either returns all resources in the zone or no resources,\nwith an error code.", "location": "query", "type": "boolean" }, - "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. 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).", + "serviceProjectNumber": { + "description": "The Shared VPC service project id or service project number for which\naggregated list request is invoked for subnetworks list-usable api.", + "format": "int64", "location": "query", "type": "string" } }, - "path": "projects/{project}/global/firewallPolicies/{firewallPolicy}/addAssociation", - "request": { - "$ref": "FirewallPolicyAssociation" - }, + "path": "projects/{project}/aggregated/machineTypes", "response": { - "$ref": "Operation" + "$ref": "MachineTypeAggregatedList" }, "scopes": [ "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" ] }, - "addRule": { - "description": "Inserts a rule into a firewall policy.", - "flatPath": "projects/{project}/global/firewallPolicies/{firewallPolicy}/addRule", - "httpMethod": "POST", - "id": "compute.networkFirewallPolicies.addRule", + "get": { + "description": "Returns the specified machine type.", + "flatPath": "projects/{project}/zones/{zone}/machineTypes/{machineType}", + "httpMethod": "GET", + "id": "compute.machineTypes.get", "parameterOrder": [ "project", - "firewallPolicy" + "zone", + "machineType" ], "parameters": { - "firewallPolicy": { - "description": "Name of the firewall policy to update.", + "machineType": { + "description": "Name of the machine type to return.", "location": "path", "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", "required": true, "type": "string" }, - "maxPriority": { - "description": "When rule.priority is not specified, auto choose a unused priority between minPriority and maxPriority\u003e. This field is exclusive with rule.priority.", - "format": "int32", + "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" + }, + "zone": { + "description": "The name of the zone for this request.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "required": true, + "type": "string" + } + }, + "path": "projects/{project}/zones/{zone}/machineTypes/{machineType}", + "response": { + "$ref": "MachineType" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ] + }, + "list": { + "description": "Retrieves a list of machine types available to the specified\nproject.", + "flatPath": "projects/{project}/zones/{zone}/machineTypes", + "httpMethod": "GET", + "id": "compute.machineTypes.list", + "parameterOrder": [ + "project", + "zone" + ], + "parameters": { + "filter": { + "description": "A filter expression that filters resources listed in the response. Most\nCompute resources support two types of filter expressions:\nexpressions that support regular expressions and expressions that follow\nAPI improvement proposal AIP-160.\nThese two types of filter expressions cannot be mixed in one request.\n\nIf you want to use AIP-160, your expression must specify the field name, an\noperator, and the value that you want to use for filtering. The value\nmust be a string, a number, or a boolean. The operator\nmust be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`.\n\nFor example, if you are filtering Compute Engine instances, you can\nexclude instances named `example-instance` by specifying\n`name != example-instance`.\n\nThe `:*` comparison can be used to test whether a key has been defined.\nFor example, to find all objects with `owner` label use:\n```\nlabels.owner:*\n```\n\nYou can also filter nested fields. For example, you could specify\n`scheduling.automaticRestart = false` to include instances only\nif they are not scheduled for automatic restarts. You can use filtering\non nested fields to filter based onresource labels.\n\nTo filter on multiple expressions, provide each separate expression within\nparentheses. For example:\n```\n(scheduling.automaticRestart = true)\n(cpuPlatform = \"Intel Skylake\")\n```\nBy default, each expression is an `AND` expression. However, you\ncan include `AND` and `OR` expressions explicitly.\nFor example:\n```\n(cpuPlatform = \"Intel Skylake\") OR\n(cpuPlatform = \"Intel Broadwell\") AND\n(scheduling.automaticRestart = true)\n```\n\nIf you want to use a regular expression, use the `eq` (equal) or `ne`\n(not equal) operator against a single un-parenthesized expression with or\nwithout quotes or against multiple parenthesized expressions. Examples:\n\n`fieldname eq unquoted literal`\n`fieldname eq 'single quoted literal'`\n`fieldname eq \"double quoted literal\"`\n`(fieldname1 eq literal) (fieldname2 ne \"literal\")`\n\nThe literal value is interpreted as a regular expression using GoogleRE2 library syntax.\nThe literal value must match the entire field.\n\nFor example, to filter for instances that do not end with name \"instance\",\nyou would use `name ne .*instance`.\n\nYou cannot combine constraints on multiple fields using regular\nexpressions.", "location": "query", - "type": "integer" + "type": "string" }, - "minPriority": { - "description": "When rule.priority is not specified, auto choose a unused priority between minPriority and maxPriority\u003e. This field is exclusive with rule.priority.", - "format": "int32", + "maxResults": { + "default": "500", + "description": "The maximum number of results per page that should be returned.\nIf the number of available results is larger than `maxResults`,\nCompute Engine returns a `nextPageToken` that can be used to get\nthe next page of results in subsequent list requests. Acceptable values are\n`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\nare returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation\ntimestamp using `orderBy=\"creationTimestamp desc\"`. This sorts\nresults based on the `creationTimestamp` field in\nreverse chronological order (newest result first). Use this to sort\nresources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or\n`creationTimestamp desc` is supported.", + "location": "query", + "type": "string" + }, + "pageToken": { + "description": "Specifies a page token to use. Set `pageToken` to the\n`nextPageToken` returned by a previous list request to get\nthe next page of results.", + "location": "query", + "type": "string" + }, "project": { "description": "Project ID for this request.", "location": "path", @@ -15673,39 +17521,68 @@ "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. 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).", + "returnPartialSuccess": { + "description": "Opt-in for partial success behavior which provides partial results in case\nof failure. The default value is false.\n\nFor example, when partial success behavior is enabled, aggregatedList for a\nsingle zone scope either returns all resources in the zone or no resources,\nwith an error code.", "location": "query", + "type": "boolean" + }, + "zone": { + "description": "The name of the zone for this request.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "required": true, "type": "string" } }, - "path": "projects/{project}/global/firewallPolicies/{firewallPolicy}/addRule", - "request": { - "$ref": "FirewallPolicyRule" - }, + "path": "projects/{project}/zones/{zone}/machineTypes", "response": { - "$ref": "Operation" + "$ref": "MachineTypeList" }, "scopes": [ "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" ] - }, - "cloneRules": { - "description": "Copies rules to the specified firewall policy.", - "flatPath": "projects/{project}/global/firewallPolicies/{firewallPolicy}/cloneRules", - "httpMethod": "POST", - "id": "compute.networkFirewallPolicies.cloneRules", + } + } + }, + "networkAttachments": { + "methods": { + "aggregatedList": { + "description": "Retrieves the list of all NetworkAttachment resources,\nregional and global, available to the specified project.\n\nTo prevent failure, Google recommends that you set the\n`returnPartialSuccess` parameter to `true`.", + "flatPath": "projects/{project}/aggregated/networkAttachments", + "httpMethod": "GET", + "id": "compute.networkAttachments.aggregatedList", "parameterOrder": [ - "project", - "firewallPolicy" + "project" ], "parameters": { - "firewallPolicy": { - "description": "Name of the firewall policy to update.", - "location": "path", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "required": true, + "filter": { + "description": "A filter expression that filters resources listed in the response. Most\nCompute resources support two types of filter expressions:\nexpressions that support regular expressions and expressions that follow\nAPI improvement proposal AIP-160.\nThese two types of filter expressions cannot be mixed in one request.\n\nIf you want to use AIP-160, your expression must specify the field name, an\noperator, and the value that you want to use for filtering. The value\nmust be a string, a number, or a boolean. The operator\nmust be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`.\n\nFor example, if you are filtering Compute Engine instances, you can\nexclude instances named `example-instance` by specifying\n`name != example-instance`.\n\nThe `:*` comparison can be used to test whether a key has been defined.\nFor example, to find all objects with `owner` label use:\n```\nlabels.owner:*\n```\n\nYou can also filter nested fields. For example, you could specify\n`scheduling.automaticRestart = false` to include instances only\nif they are not scheduled for automatic restarts. You can use filtering\non nested fields to filter based onresource labels.\n\nTo filter on multiple expressions, provide each separate expression within\nparentheses. For example:\n```\n(scheduling.automaticRestart = true)\n(cpuPlatform = \"Intel Skylake\")\n```\nBy default, each expression is an `AND` expression. However, you\ncan include `AND` and `OR` expressions explicitly.\nFor example:\n```\n(cpuPlatform = \"Intel Skylake\") OR\n(cpuPlatform = \"Intel Broadwell\") AND\n(scheduling.automaticRestart = true)\n```\n\nIf you want to use a regular expression, use the `eq` (equal) or `ne`\n(not equal) operator against a single un-parenthesized expression with or\nwithout quotes or against multiple parenthesized expressions. Examples:\n\n`fieldname eq unquoted literal`\n`fieldname eq 'single quoted literal'`\n`fieldname eq \"double quoted literal\"`\n`(fieldname1 eq literal) (fieldname2 ne \"literal\")`\n\nThe literal value is interpreted as a regular expression using GoogleRE2 library syntax.\nThe literal value must match the entire field.\n\nFor example, to filter for instances that do not end with name \"instance\",\nyou would use `name ne .*instance`.\n\nYou cannot combine constraints on multiple fields using regular\nexpressions.", + "location": "query", + "type": "string" + }, + "includeAllScopes": { + "description": "Indicates whether every visible scope for each scope type (zone, region,\nglobal) should be included in the response. For new resource types added\nafter this field, the flag has no effect as new resource types will always\ninclude every visible scope for each scope type in response. For resource\ntypes which predate this field, if this flag is omitted or false, only\nscopes of the scope types where the resource type is expected to be found\nwill be included.", + "location": "query", + "type": "boolean" + }, + "maxResults": { + "default": "500", + "description": "The maximum number of results per page that should be returned.\nIf the number of available results is larger than `maxResults`,\nCompute Engine returns a `nextPageToken` that can be used to get\nthe next page of results in subsequent list requests. Acceptable values are\n`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\nare returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation\ntimestamp using `orderBy=\"creationTimestamp desc\"`. This sorts\nresults based on the `creationTimestamp` field in\nreverse chronological order (newest result first). Use this to sort\nresources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or\n`creationTimestamp desc` is supported.", + "location": "query", + "type": "string" + }, + "pageToken": { + "description": "Specifies a page token to use. Set `pageToken` to the\n`nextPageToken` returned by a previous list request to get\nthe next page of results.", + "location": "query", "type": "string" }, "project": { @@ -15715,38 +17592,41 @@ "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. 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).", + "returnPartialSuccess": { + "description": "Opt-in for partial success behavior which provides partial results in case\nof failure. The default value is false.\n\nFor example, when partial success behavior is enabled, aggregatedList for a\nsingle zone scope either returns all resources in the zone or no resources,\nwith an error code.", "location": "query", - "type": "string" + "type": "boolean" }, - "sourceFirewallPolicy": { - "description": "The firewall policy from which to copy rules.", + "serviceProjectNumber": { + "description": "The Shared VPC service project id or service project number for which\naggregated list request is invoked for subnetworks list-usable api.", + "format": "int64", "location": "query", "type": "string" } }, - "path": "projects/{project}/global/firewallPolicies/{firewallPolicy}/cloneRules", + "path": "projects/{project}/aggregated/networkAttachments", "response": { - "$ref": "Operation" + "$ref": "NetworkAttachmentAggregatedList" }, "scopes": [ "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" ] }, "delete": { - "description": "Deletes the specified policy.", - "flatPath": "projects/{project}/global/firewallPolicies/{firewallPolicy}", + "description": "Deletes the specified NetworkAttachment in the given scope", + "flatPath": "projects/{project}/regions/{region}/networkAttachments/{networkAttachment}", "httpMethod": "DELETE", - "id": "compute.networkFirewallPolicies.delete", + "id": "compute.networkAttachments.delete", "parameterOrder": [ "project", - "firewallPolicy" + "region", + "networkAttachment" ], "parameters": { - "firewallPolicy": { - "description": "Name of the firewall policy to delete.", + "networkAttachment": { + "description": "Name of the NetworkAttachment resource to delete.", "location": "path", "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", "required": true, @@ -15759,13 +17639,20 @@ "required": true, "type": "string" }, + "region": { + "description": "Name of the region of this request.", + "location": "path", + "pattern": "[a-z](?:[-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. 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).", + "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).\nend_interface: MixerMutationRequestBuilder", "location": "query", "type": "string" } }, - "path": "projects/{project}/global/firewallPolicies/{firewallPolicy}", + "path": "projects/{project}/regions/{region}/networkAttachments/{networkAttachment}", "response": { "$ref": "Operation" }, @@ -15775,17 +17662,18 @@ ] }, "get": { - "description": "Returns the specified network firewall policy.", - "flatPath": "projects/{project}/global/firewallPolicies/{firewallPolicy}", + "description": "Returns the specified NetworkAttachment resource in the given scope.", + "flatPath": "projects/{project}/regions/{region}/networkAttachments/{networkAttachment}", "httpMethod": "GET", - "id": "compute.networkFirewallPolicies.get", + "id": "compute.networkAttachments.get", "parameterOrder": [ "project", - "firewallPolicy" + "region", + "networkAttachment" ], "parameters": { - "firewallPolicy": { - "description": "Name of the firewall policy to get.", + "networkAttachment": { + "description": "Name of the NetworkAttachment resource to return.", "location": "path", "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", "required": true, @@ -15797,51 +17685,18 @@ "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 of this request.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "required": true, + "type": "string" } }, - "path": "projects/{project}/global/firewallPolicies/{firewallPolicy}", - "response": { - "$ref": "FirewallPolicy" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" - ] - }, - "getAssociation": { - "description": "Gets an association with the specified name.", - "flatPath": "projects/{project}/global/firewallPolicies/{firewallPolicy}/getAssociation", - "httpMethod": "GET", - "id": "compute.networkFirewallPolicies.getAssociation", - "parameterOrder": [ - "project", - "firewallPolicy" - ], - "parameters": { - "firewallPolicy": { - "description": "Name of the firewall policy to which the queried association belongs.", - "location": "path", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "required": true, - "type": "string" - }, - "name": { - "description": "The name of the association to get from the firewall policy.", - "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" - } - }, - "path": "projects/{project}/global/firewallPolicies/{firewallPolicy}/getAssociation", + "path": "projects/{project}/regions/{region}/networkAttachments/{networkAttachment}", "response": { - "$ref": "FirewallPolicyAssociation" + "$ref": "NetworkAttachment" }, "scopes": [ "https://www.googleapis.com/auth/cloud-platform", @@ -15850,12 +17705,13 @@ ] }, "getIamPolicy": { - "description": "Gets the access control policy for a resource. May be empty if no such policy or resource exists.", - "flatPath": "projects/{project}/global/firewallPolicies/{resource}/getIamPolicy", + "description": "Gets the access control policy for a resource. May be empty if no such\npolicy or resource exists.", + "flatPath": "projects/{project}/regions/{region}/networkAttachments/{resource}/getIamPolicy", "httpMethod": "GET", - "id": "compute.networkFirewallPolicies.getIamPolicy", + "id": "compute.networkAttachments.getIamPolicy", "parameterOrder": [ "project", + "region", "resource" ], "parameters": { @@ -15872,15 +17728,22 @@ "required": true, "type": "string" }, + "region": { + "description": "The name of the region for this request.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "required": true, + "type": "string" + }, "resource": { "description": "Name or id of the resource for this request.", "location": "path", - "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", "required": true, "type": "string" } }, - "path": "projects/{project}/global/firewallPolicies/{resource}/getIamPolicy", + "path": "projects/{project}/regions/{region}/networkAttachments/{resource}/getIamPolicy", "response": { "$ref": "Policy" }, @@ -15890,72 +17753,39 @@ "https://www.googleapis.com/auth/compute.readonly" ] }, - "getRule": { - "description": "Gets a rule of the specified priority.", - "flatPath": "projects/{project}/global/firewallPolicies/{firewallPolicy}/getRule", - "httpMethod": "GET", - "id": "compute.networkFirewallPolicies.getRule", + "insert": { + "description": "Creates a NetworkAttachment in the specified project in the given scope\nusing the parameters that are included in the request.", + "flatPath": "projects/{project}/regions/{region}/networkAttachments", + "httpMethod": "POST", + "id": "compute.networkAttachments.insert", "parameterOrder": [ "project", - "firewallPolicy" + "region" ], "parameters": { - "firewallPolicy": { - "description": "Name of the firewall policy to which the queried rule belongs.", - "location": "path", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "required": true, - "type": "string" - }, - "priority": { - "description": "The priority of the rule to get from the firewall policy.", - "format": "int32", - "location": "query", - "type": "integer" - }, "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" - } - }, - "path": "projects/{project}/global/firewallPolicies/{firewallPolicy}/getRule", - "response": { - "$ref": "FirewallPolicyRule" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" - ] - }, - "insert": { - "description": "Creates a new policy in the specified project using the data included in the request.", - "flatPath": "projects/{project}/global/firewallPolicies", - "httpMethod": "POST", - "id": "compute.networkFirewallPolicies.insert", - "parameterOrder": [ - "project" - ], - "parameters": { - "project": { - "description": "Project ID for this request.", + }, + "region": { + "description": "Name of the region of 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])?))", + "pattern": "[a-z](?:[-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. 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).", + "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).\nend_interface: MixerMutationRequestBuilder", "location": "query", "type": "string" } }, - "path": "projects/{project}/global/firewallPolicies", + "path": "projects/{project}/regions/{region}/networkAttachments", "request": { - "$ref": "FirewallPolicy" + "$ref": "NetworkAttachment" }, "response": { "$ref": "Operation" @@ -15966,34 +17796,35 @@ ] }, "list": { - "description": "Lists all the policies that have been configured for the specified project.", - "flatPath": "projects/{project}/global/firewallPolicies", + "description": "Lists the NetworkAttachments for a project in the given scope.", + "flatPath": "projects/{project}/regions/{region}/networkAttachments", "httpMethod": "GET", - "id": "compute.networkFirewallPolicies.list", + "id": "compute.networkAttachments.list", "parameterOrder": [ - "project" + "project", + "region" ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` 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) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.", + "description": "A filter expression that filters resources listed in the response. Most\nCompute resources support two types of filter expressions:\nexpressions that support regular expressions and expressions that follow\nAPI improvement proposal AIP-160.\nThese two types of filter expressions cannot be mixed in one request.\n\nIf you want to use AIP-160, your expression must specify the field name, an\noperator, and the value that you want to use for filtering. The value\nmust be a string, a number, or a boolean. The operator\nmust be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`.\n\nFor example, if you are filtering Compute Engine instances, you can\nexclude instances named `example-instance` by specifying\n`name != example-instance`.\n\nThe `:*` comparison can be used to test whether a key has been defined.\nFor example, to find all objects with `owner` label use:\n```\nlabels.owner:*\n```\n\nYou can also filter nested fields. For example, you could specify\n`scheduling.automaticRestart = false` to include instances only\nif they are not scheduled for automatic restarts. You can use filtering\non nested fields to filter based onresource labels.\n\nTo filter on multiple expressions, provide each separate expression within\nparentheses. For example:\n```\n(scheduling.automaticRestart = true)\n(cpuPlatform = \"Intel Skylake\")\n```\nBy default, each expression is an `AND` expression. However, you\ncan include `AND` and `OR` expressions explicitly.\nFor example:\n```\n(cpuPlatform = \"Intel Skylake\") OR\n(cpuPlatform = \"Intel Broadwell\") AND\n(scheduling.automaticRestart = true)\n```\n\nIf you want to use a regular expression, use the `eq` (equal) or `ne`\n(not equal) operator against a single un-parenthesized expression with or\nwithout quotes or against multiple parenthesized expressions. Examples:\n\n`fieldname eq unquoted literal`\n`fieldname eq 'single quoted literal'`\n`fieldname eq \"double quoted literal\"`\n`(fieldname1 eq literal) (fieldname2 ne \"literal\")`\n\nThe literal value is interpreted as a regular expression using GoogleRE2 library syntax.\nThe literal value must match the entire field.\n\nFor example, to filter for instances that do not end with name \"instance\",\nyou would use `name ne .*instance`.\n\nYou cannot combine constraints on multiple fields using regular\nexpressions.", "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`)", + "description": "The maximum number of results per page that should be returned.\nIf the number of available results is larger than `maxResults`,\nCompute Engine returns a `nextPageToken` that can be used to get\nthe next page of results in subsequent list requests. Acceptable values are\n`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. 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.", + "description": "Sorts list results by a certain order. By default, results\nare returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation\ntimestamp using `orderBy=\"creationTimestamp desc\"`. This sorts\nresults based on the `creationTimestamp` field in\nreverse chronological order (newest result first). Use this to sort\nresources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or\n`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.", + "description": "Specifies a page token to use. Set `pageToken` to the\n`nextPageToken` returned by a previous list request to get\nthe next page of results.", "location": "query", "type": "string" }, @@ -16004,15 +17835,22 @@ "required": true, "type": "string" }, + "region": { + "description": "Name of the region of this request.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "required": true, + "type": "string" + }, "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", + "description": "Opt-in for partial success behavior which provides partial results in case\nof failure. The default value is false.\n\nFor example, when partial success behavior is enabled, aggregatedList for a\nsingle zone scope either returns all resources in the zone or no resources,\nwith an error code.", "location": "query", "type": "boolean" } }, - "path": "projects/{project}/global/firewallPolicies", + "path": "projects/{project}/regions/{region}/networkAttachments", "response": { - "$ref": "FirewallPolicyList" + "$ref": "NetworkAttachmentList" }, "scopes": [ "https://www.googleapis.com/auth/cloud-platform", @@ -16021,17 +17859,18 @@ ] }, "patch": { - "description": "Patches the specified policy with the data included in the request.", - "flatPath": "projects/{project}/global/firewallPolicies/{firewallPolicy}", + "description": "Patches the specified NetworkAttachment resource with the data included in\nthe request. This method supports PATCH\nsemantics and usesJSON merge\npatch format and processing rules.", + "flatPath": "projects/{project}/regions/{region}/networkAttachments/{networkAttachment}", "httpMethod": "PATCH", - "id": "compute.networkFirewallPolicies.patch", + "id": "compute.networkAttachments.patch", "parameterOrder": [ "project", - "firewallPolicy" + "region", + "networkAttachment" ], "parameters": { - "firewallPolicy": { - "description": "Name of the firewall policy to update.", + "networkAttachment": { + "description": "Name of the NetworkAttachment resource to patch.", "location": "path", "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", "required": true, @@ -16044,108 +17883,23 @@ "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. 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).", - "location": "query", - "type": "string" - } - }, - "path": "projects/{project}/global/firewallPolicies/{firewallPolicy}", - "request": { - "$ref": "FirewallPolicy" - }, - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ] - }, - "patchRule": { - "description": "Patches a rule of the specified priority.", - "flatPath": "projects/{project}/global/firewallPolicies/{firewallPolicy}/patchRule", - "httpMethod": "POST", - "id": "compute.networkFirewallPolicies.patchRule", - "parameterOrder": [ - "project", - "firewallPolicy" - ], - "parameters": { - "firewallPolicy": { - "description": "Name of the firewall policy to update.", - "location": "path", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "required": true, - "type": "string" - }, - "priority": { - "description": "The priority of the rule to patch.", - "format": "int32", - "location": "query", - "type": "integer" - }, - "project": { - "description": "Project ID for this request.", + "region": { + "description": "Name of the region 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])?))", + "pattern": "[a-z](?:[-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. 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).", + "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).\nend_interface: MixerMutationRequestBuilder", "location": "query", "type": "string" } }, - "path": "projects/{project}/global/firewallPolicies/{firewallPolicy}/patchRule", + "path": "projects/{project}/regions/{region}/networkAttachments/{networkAttachment}", "request": { - "$ref": "FirewallPolicyRule" - }, - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ] - }, - "removeAssociation": { - "description": "Removes an association for the specified firewall policy.", - "flatPath": "projects/{project}/global/firewallPolicies/{firewallPolicy}/removeAssociation", - "httpMethod": "POST", - "id": "compute.networkFirewallPolicies.removeAssociation", - "parameterOrder": [ - "project", - "firewallPolicy" - ], - "parameters": { - "firewallPolicy": { - "description": "Name of the firewall policy to update.", - "location": "path", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "required": true, - "type": "string" - }, - "name": { - "description": "Name for the attachment that will be removed.", - "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" - }, - "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. 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).", - "location": "query", - "type": "string" - } + "$ref": "NetworkAttachment" }, - "path": "projects/{project}/global/firewallPolicies/{firewallPolicy}/removeAssociation", "response": { "$ref": "Operation" }, @@ -16154,29 +17908,17 @@ "https://www.googleapis.com/auth/compute" ] }, - "removeRule": { - "description": "Deletes a rule of the specified priority.", - "flatPath": "projects/{project}/global/firewallPolicies/{firewallPolicy}/removeRule", + "setIamPolicy": { + "description": "Sets the access control policy on the specified resource.\nReplaces any existing policy.", + "flatPath": "projects/{project}/regions/{region}/networkAttachments/{resource}/setIamPolicy", "httpMethod": "POST", - "id": "compute.networkFirewallPolicies.removeRule", + "id": "compute.networkAttachments.setIamPolicy", "parameterOrder": [ "project", - "firewallPolicy" + "region", + "resource" ], "parameters": { - "firewallPolicy": { - "description": "Name of the firewall policy to update.", - "location": "path", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "required": true, - "type": "string" - }, - "priority": { - "description": "The priority of the rule to remove from the firewall policy.", - "format": "int32", - "location": "query", - "type": "integer" - }, "project": { "description": "Project ID for this request.", "location": "path", @@ -16184,49 +17926,24 @@ "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. 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).", - "location": "query", - "type": "string" - } - }, - "path": "projects/{project}/global/firewallPolicies/{firewallPolicy}/removeRule", - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ] - }, - "setIamPolicy": { - "description": "Sets the access control policy on the specified resource. Replaces any existing policy.", - "flatPath": "projects/{project}/global/firewallPolicies/{resource}/setIamPolicy", - "httpMethod": "POST", - "id": "compute.networkFirewallPolicies.setIamPolicy", - "parameterOrder": [ - "project", - "resource" - ], - "parameters": { - "project": { - "description": "Project ID for this request.", + "region": { + "description": "The name of the region 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])?))", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", "required": true, "type": "string" }, "resource": { "description": "Name or id of the resource for this request.", "location": "path", - "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", "required": true, "type": "string" } }, - "path": "projects/{project}/global/firewallPolicies/{resource}/setIamPolicy", + "path": "projects/{project}/regions/{region}/networkAttachments/{resource}/setIamPolicy", "request": { - "$ref": "GlobalSetPolicyRequest" + "$ref": "RegionSetPolicyRequest" }, "response": { "$ref": "Policy" @@ -16238,11 +17955,12 @@ }, "testIamPermissions": { "description": "Returns permissions that a caller has on the specified resource.", - "flatPath": "projects/{project}/global/firewallPolicies/{resource}/testIamPermissions", + "flatPath": "projects/{project}/regions/{region}/networkAttachments/{resource}/testIamPermissions", "httpMethod": "POST", - "id": "compute.networkFirewallPolicies.testIamPermissions", + "id": "compute.networkAttachments.testIamPermissions", "parameterOrder": [ "project", + "region", "resource" ], "parameters": { @@ -16253,15 +17971,22 @@ "required": true, "type": "string" }, + "region": { + "description": "The name of the region for this request.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "required": true, + "type": "string" + }, "resource": { "description": "Name or id of the resource for this request.", "location": "path", - "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", "required": true, "type": "string" } }, - "path": "projects/{project}/global/firewallPolicies/{resource}/testIamPermissions", + "path": "projects/{project}/regions/{region}/networkAttachments/{resource}/testIamPermissions", "request": { "$ref": "TestPermissionsRequest" }, @@ -16276,62 +18001,87 @@ } } }, - "networks": { + "networkEdgeSecurityServices": { "methods": { - "addPeering": { - "description": "Adds a peering to the specified network.", - "flatPath": "projects/{project}/global/networks/{network}/addPeering", - "httpMethod": "POST", - "id": "compute.networks.addPeering", + "aggregatedList": { + "description": "Retrieves the list of all NetworkEdgeSecurityService resources available to\nthe specified project.\n\nTo prevent failure, Google recommends that you set the\n`returnPartialSuccess` parameter to `true`.", + "flatPath": "projects/{project}/aggregated/networkEdgeSecurityServices", + "httpMethod": "GET", + "id": "compute.networkEdgeSecurityServices.aggregatedList", "parameterOrder": [ - "project", - "network" + "project" ], "parameters": { - "network": { - "description": "Name of the network resource to add peering to.", - "location": "path", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "required": true, + "filter": { + "description": "A filter expression that filters resources listed in the response. Most\nCompute resources support two types of filter expressions:\nexpressions that support regular expressions and expressions that follow\nAPI improvement proposal AIP-160.\nThese two types of filter expressions cannot be mixed in one request.\n\nIf you want to use AIP-160, your expression must specify the field name, an\noperator, and the value that you want to use for filtering. The value\nmust be a string, a number, or a boolean. The operator\nmust be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`.\n\nFor example, if you are filtering Compute Engine instances, you can\nexclude instances named `example-instance` by specifying\n`name != example-instance`.\n\nThe `:*` comparison can be used to test whether a key has been defined.\nFor example, to find all objects with `owner` label use:\n```\nlabels.owner:*\n```\n\nYou can also filter nested fields. For example, you could specify\n`scheduling.automaticRestart = false` to include instances only\nif they are not scheduled for automatic restarts. You can use filtering\non nested fields to filter based onresource labels.\n\nTo filter on multiple expressions, provide each separate expression within\nparentheses. For example:\n```\n(scheduling.automaticRestart = true)\n(cpuPlatform = \"Intel Skylake\")\n```\nBy default, each expression is an `AND` expression. However, you\ncan include `AND` and `OR` expressions explicitly.\nFor example:\n```\n(cpuPlatform = \"Intel Skylake\") OR\n(cpuPlatform = \"Intel Broadwell\") AND\n(scheduling.automaticRestart = true)\n```\n\nIf you want to use a regular expression, use the `eq` (equal) or `ne`\n(not equal) operator against a single un-parenthesized expression with or\nwithout quotes or against multiple parenthesized expressions. Examples:\n\n`fieldname eq unquoted literal`\n`fieldname eq 'single quoted literal'`\n`fieldname eq \"double quoted literal\"`\n`(fieldname1 eq literal) (fieldname2 ne \"literal\")`\n\nThe literal value is interpreted as a regular expression using GoogleRE2 library syntax.\nThe literal value must match the entire field.\n\nFor example, to filter for instances that do not end with name \"instance\",\nyou would use `name ne .*instance`.\n\nYou cannot combine constraints on multiple fields using regular\nexpressions.", + "location": "query", + "type": "string" + }, + "includeAllScopes": { + "description": "Indicates whether every visible scope for each scope type (zone, region,\nglobal) should be included in the response. For new resource types added\nafter this field, the flag has no effect as new resource types will always\ninclude every visible scope for each scope type in response. For resource\ntypes which predate this field, if this flag is omitted or false, only\nscopes of the scope types where the resource type is expected to be found\nwill be included.", + "location": "query", + "type": "boolean" + }, + "maxResults": { + "default": "500", + "description": "The maximum number of results per page that should be returned.\nIf the number of available results is larger than `maxResults`,\nCompute Engine returns a `nextPageToken` that can be used to get\nthe next page of results in subsequent list requests. Acceptable values are\n`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\nare returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation\ntimestamp using `orderBy=\"creationTimestamp desc\"`. This sorts\nresults based on the `creationTimestamp` field in\nreverse chronological order (newest result first). Use this to sort\nresources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or\n`creationTimestamp desc` is supported.", + "location": "query", + "type": "string" + }, + "pageToken": { + "description": "Specifies a page token to use. Set `pageToken` to the\n`nextPageToken` returned by a previous list request to get\nthe next page of results.", + "location": "query", "type": "string" }, "project": { - "description": "Project ID for this request.", + "description": "Name of the project scoping 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. 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).", + "returnPartialSuccess": { + "description": "Opt-in for partial success behavior which provides partial results in case\nof failure. The default value is false.\n\nFor example, when partial success behavior is enabled, aggregatedList for a\nsingle zone scope either returns all resources in the zone or no resources,\nwith an error code.", + "location": "query", + "type": "boolean" + }, + "serviceProjectNumber": { + "description": "The Shared VPC service project id or service project number for which\naggregated list request is invoked for subnetworks list-usable api.", + "format": "int64", "location": "query", "type": "string" } }, - "path": "projects/{project}/global/networks/{network}/addPeering", - "request": { - "$ref": "NetworksAddPeeringRequest" - }, + "path": "projects/{project}/aggregated/networkEdgeSecurityServices", "response": { - "$ref": "Operation" + "$ref": "NetworkEdgeSecurityServiceAggregatedList" }, "scopes": [ "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" ] }, "delete": { - "description": "Deletes the specified network.", - "flatPath": "projects/{project}/global/networks/{network}", + "description": "Deletes the specified service.", + "flatPath": "projects/{project}/regions/{region}/networkEdgeSecurityServices/{networkEdgeSecurityService}", "httpMethod": "DELETE", - "id": "compute.networks.delete", + "id": "compute.networkEdgeSecurityServices.delete", "parameterOrder": [ "project", - "network" + "region", + "networkEdgeSecurityService" ], "parameters": { - "network": { - "description": "Name of the network to delete.", + "networkEdgeSecurityService": { + "description": "Name of the network edge security service to delete.", "location": "path", "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", "required": true, @@ -16344,13 +18094,20 @@ "required": true, "type": "string" }, + "region": { + "description": "Name of the region scoping this request.", + "location": "path", + "pattern": "[a-z](?:[-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. 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).", + "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).", "location": "query", "type": "string" } }, - "path": "projects/{project}/global/networks/{network}", + "path": "projects/{project}/regions/{region}/networkEdgeSecurityServices/{networkEdgeSecurityService}", "response": { "$ref": "Operation" }, @@ -16360,17 +18117,18 @@ ] }, "get": { - "description": "Returns the specified network.", - "flatPath": "projects/{project}/global/networks/{network}", + "description": "Gets a specified NetworkEdgeSecurityService.", + "flatPath": "projects/{project}/regions/{region}/networkEdgeSecurityServices/{networkEdgeSecurityService}", "httpMethod": "GET", - "id": "compute.networks.get", + "id": "compute.networkEdgeSecurityServices.get", "parameterOrder": [ "project", - "network" + "region", + "networkEdgeSecurityService" ], "parameters": { - "network": { - "description": "Name of the network to return.", + "networkEdgeSecurityService": { + "description": "Name of the network edge security service to get.", "location": "path", "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", "required": true, @@ -16382,46 +18140,18 @@ "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" - } - }, - "path": "projects/{project}/global/networks/{network}", - "response": { - "$ref": "Network" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" - ] - }, - "getEffectiveFirewalls": { - "description": "Returns the effective firewalls on a given network.", - "flatPath": "projects/{project}/global/networks/{network}/getEffectiveFirewalls", - "httpMethod": "GET", - "id": "compute.networks.getEffectiveFirewalls", - "parameterOrder": [ - "project", - "network" - ], - "parameters": { - "network": { - "description": "Name of the network for this request.", - "location": "path", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "required": true, - "type": "string" }, - "project": { - "description": "Project ID for this request.", + "region": { + "description": "Name of the region scoping 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])?))", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", "required": true, "type": "string" } }, - "path": "projects/{project}/global/networks/{network}/getEffectiveFirewalls", + "path": "projects/{project}/regions/{region}/networkEdgeSecurityServices/{networkEdgeSecurityService}", "response": { - "$ref": "NetworksGetEffectiveFirewallsResponse" + "$ref": "NetworkEdgeSecurityService" }, "scopes": [ "https://www.googleapis.com/auth/cloud-platform", @@ -16430,12 +18160,13 @@ ] }, "insert": { - "description": "Creates a network in the specified project using the data included in the request.", - "flatPath": "projects/{project}/global/networks", + "description": "Creates a new service in the specified project using the data included in\nthe request.", + "flatPath": "projects/{project}/regions/{region}/networkEdgeSecurityServices", "httpMethod": "POST", - "id": "compute.networks.insert", + "id": "compute.networkEdgeSecurityServices.insert", "parameterOrder": [ - "project" + "project", + "region" ], "parameters": { "project": { @@ -16445,15 +18176,27 @@ "required": true, "type": "string" }, + "region": { + "description": "Name of the region scoping this request.", + "location": "path", + "pattern": "[a-z](?:[-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. 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).", + "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).", "location": "query", "type": "string" + }, + "validateOnly": { + "description": "If true, the request will not be committed.", + "location": "query", + "type": "boolean" } }, - "path": "projects/{project}/global/networks", + "path": "projects/{project}/regions/{region}/networkEdgeSecurityServices", "request": { - "$ref": "Network" + "$ref": "NetworkEdgeSecurityService" }, "response": { "$ref": "Operation" @@ -16463,36 +18206,27 @@ "https://www.googleapis.com/auth/compute" ] }, - "list": { - "description": "Retrieves the list of networks available to the specified project.", - "flatPath": "projects/{project}/global/networks", - "httpMethod": "GET", - "id": "compute.networks.list", + "patch": { + "description": "Patches the specified policy with the data included in the request.", + "flatPath": "projects/{project}/regions/{region}/networkEdgeSecurityServices/{networkEdgeSecurityService}", + "httpMethod": "PATCH", + "id": "compute.networkEdgeSecurityServices.patch", "parameterOrder": [ - "project" + "project", + "region", + "networkEdgeSecurityService" ], "parameters": { - "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` 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) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.", - "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. 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.", - "location": "query", + "networkEdgeSecurityService": { + "description": "Name of the network edge security service to update.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "required": true, "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.", + "paths": { "location": "query", + "repeated": true, "type": "string" }, "project": { @@ -16502,77 +18236,75 @@ "required": true, "type": "string" }, - "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", - "location": "query", - "type": "boolean" - } - }, - "path": "projects/{project}/global/networks", - "response": { - "$ref": "NetworkList" + "region": { + "description": "Name of the region scoping this request.", + "location": "path", + "pattern": "[a-z](?:[-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\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).", + "location": "query", + "type": "string" + }, + "updateMask": { + "description": "Indicates fields to be updated as part of this request.", + "format": "google-fieldmask", + "location": "query", + "type": "string" + } + }, + "path": "projects/{project}/regions/{region}/networkEdgeSecurityServices/{networkEdgeSecurityService}", + "request": { + "$ref": "NetworkEdgeSecurityService" + }, + "response": { + "$ref": "Operation" }, "scopes": [ "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" + "https://www.googleapis.com/auth/compute" ] - }, - "listPeeringRoutes": { - "description": "Lists the peering routes exchanged over peering connection.", - "flatPath": "projects/{project}/global/networks/{network}/listPeeringRoutes", + } + } + }, + "networkEndpointGroups": { + "methods": { + "aggregatedList": { + "description": "Retrieves the list of network endpoint groups and sorts them by zone.\n\nTo prevent failure, Google recommends that you set the\n`returnPartialSuccess` parameter to `true`.", + "flatPath": "projects/{project}/aggregated/networkEndpointGroups", "httpMethod": "GET", - "id": "compute.networks.listPeeringRoutes", + "id": "compute.networkEndpointGroups.aggregatedList", "parameterOrder": [ - "project", - "network" + "project" ], "parameters": { - "direction": { - "description": "The direction of the exchanged routes.", - "enum": [ - "INCOMING", - "OUTGOING" - ], - "enumDescriptions": [ - "For routes exported from peer network.", - "For routes exported from local network." - ], + "filter": { + "description": "A filter expression that filters resources listed in the response. Most\nCompute resources support two types of filter expressions:\nexpressions that support regular expressions and expressions that follow\nAPI improvement proposal AIP-160.\nThese two types of filter expressions cannot be mixed in one request.\n\nIf you want to use AIP-160, your expression must specify the field name, an\noperator, and the value that you want to use for filtering. The value\nmust be a string, a number, or a boolean. The operator\nmust be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`.\n\nFor example, if you are filtering Compute Engine instances, you can\nexclude instances named `example-instance` by specifying\n`name != example-instance`.\n\nThe `:*` comparison can be used to test whether a key has been defined.\nFor example, to find all objects with `owner` label use:\n```\nlabels.owner:*\n```\n\nYou can also filter nested fields. For example, you could specify\n`scheduling.automaticRestart = false` to include instances only\nif they are not scheduled for automatic restarts. You can use filtering\non nested fields to filter based onresource labels.\n\nTo filter on multiple expressions, provide each separate expression within\nparentheses. For example:\n```\n(scheduling.automaticRestart = true)\n(cpuPlatform = \"Intel Skylake\")\n```\nBy default, each expression is an `AND` expression. However, you\ncan include `AND` and `OR` expressions explicitly.\nFor example:\n```\n(cpuPlatform = \"Intel Skylake\") OR\n(cpuPlatform = \"Intel Broadwell\") AND\n(scheduling.automaticRestart = true)\n```\n\nIf you want to use a regular expression, use the `eq` (equal) or `ne`\n(not equal) operator against a single un-parenthesized expression with or\nwithout quotes or against multiple parenthesized expressions. Examples:\n\n`fieldname eq unquoted literal`\n`fieldname eq 'single quoted literal'`\n`fieldname eq \"double quoted literal\"`\n`(fieldname1 eq literal) (fieldname2 ne \"literal\")`\n\nThe literal value is interpreted as a regular expression using GoogleRE2 library syntax.\nThe literal value must match the entire field.\n\nFor example, to filter for instances that do not end with name \"instance\",\nyou would use `name ne .*instance`.\n\nYou cannot combine constraints on multiple fields using regular\nexpressions.", "location": "query", "type": "string" }, - "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` 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) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.", + "includeAllScopes": { + "description": "Indicates whether every visible scope for each scope type (zone, region,\nglobal) should be included in the response. For new resource types added\nafter this field, the flag has no effect as new resource types will always\ninclude every visible scope for each scope type in response. For resource\ntypes which predate this field, if this flag is omitted or false, only\nscopes of the scope types where the resource type is expected to be found\nwill be included.", "location": "query", - "type": "string" + "type": "boolean" }, "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`)", + "description": "The maximum number of results per page that should be returned.\nIf the number of available results is larger than `maxResults`,\nCompute Engine returns a `nextPageToken` that can be used to get\nthe next page of results in subsequent list requests. Acceptable values are\n`0` to `500`, inclusive. (Default: `500`)", "format": "uint32", "location": "query", "minimum": "0", "type": "integer" }, - "network": { - "description": "Name of the network for this request.", - "location": "path", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "required": true, - "type": "string" - }, "orderBy": { - "description": "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.", + "description": "Sorts list results by a certain order. By default, results\nare returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation\ntimestamp using `orderBy=\"creationTimestamp desc\"`. This sorts\nresults based on the `creationTimestamp` field in\nreverse chronological order (newest result first). Use this to sort\nresources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or\n`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" - }, - "peeringName": { - "description": "The response will show routes exchanged over the given peering connection.", + "description": "Specifies a page token to use. Set `pageToken` to the\n`nextPageToken` returned by a previous list request to get\nthe next page of results.", "location": "query", "type": "string" }, @@ -16583,20 +18315,21 @@ "required": true, "type": "string" }, - "region": { - "description": "The region of the request. The response will include all subnet routes, static routes and dynamic routes in the region.", - "location": "query", - "type": "string" - }, "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", + "description": "Opt-in for partial success behavior which provides partial results in case\nof failure. The default value is false.\n\nFor example, when partial success behavior is enabled, aggregatedList for a\nsingle zone scope either returns all resources in the zone or no resources,\nwith an error code.", "location": "query", "type": "boolean" + }, + "serviceProjectNumber": { + "description": "The Shared VPC service project id or service project number for which\naggregated list request is invoked for subnetworks list-usable api.", + "format": "int64", + "location": "query", + "type": "string" } }, - "path": "projects/{project}/global/networks/{network}/listPeeringRoutes", + "path": "projects/{project}/aggregated/networkEndpointGroups", "response": { - "$ref": "ExchangedPeeringRoutesList" + "$ref": "NetworkEndpointGroupAggregatedList" }, "scopes": [ "https://www.googleapis.com/auth/cloud-platform", @@ -16604,20 +18337,20 @@ "https://www.googleapis.com/auth/compute.readonly" ] }, - "patch": { - "description": "Patches the specified network with the data included in the request. Only the following fields can be modified: routingConfig.routingMode.", - "flatPath": "projects/{project}/global/networks/{network}", - "httpMethod": "PATCH", - "id": "compute.networks.patch", + "attachNetworkEndpoints": { + "description": "Attach a list of network endpoints to the specified network endpoint group.", + "flatPath": "projects/{project}/zones/{zone}/networkEndpointGroups/{networkEndpointGroup}/attachNetworkEndpoints", + "httpMethod": "POST", + "id": "compute.networkEndpointGroups.attachNetworkEndpoints", "parameterOrder": [ "project", - "network" + "zone", + "networkEndpointGroup" ], "parameters": { - "network": { - "description": "Name of the network to update.", + "networkEndpointGroup": { + "description": "The name of the network endpoint group where you are attaching network\nendpoints to. It should comply with RFC1035.", "location": "path", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", "required": true, "type": "string" }, @@ -16629,14 +18362,20 @@ "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. 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).", + "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).", "location": "query", "type": "string" + }, + "zone": { + "description": "The name of the zone where\nthe network endpoint group is located. It should comply with RFC1035.", + "location": "path", + "required": true, + "type": "string" } }, - "path": "projects/{project}/global/networks/{network}", + "path": "projects/{project}/zones/{zone}/networkEndpointGroups/{networkEndpointGroup}/attachNetworkEndpoints", "request": { - "$ref": "Network" + "$ref": "NetworkEndpointGroupsAttachEndpointsRequest" }, "response": { "$ref": "Operation" @@ -16646,20 +18385,20 @@ "https://www.googleapis.com/auth/compute" ] }, - "removePeering": { - "description": "Removes a peering from the specified network.", - "flatPath": "projects/{project}/global/networks/{network}/removePeering", - "httpMethod": "POST", - "id": "compute.networks.removePeering", + "delete": { + "description": "Deletes the specified network endpoint group. The network endpoints in the\nNEG and the VM instances they belong to are not terminated when the NEG is\ndeleted. Note that the NEG cannot be deleted if there are backend services\nreferencing it.", + "flatPath": "projects/{project}/zones/{zone}/networkEndpointGroups/{networkEndpointGroup}", + "httpMethod": "DELETE", + "id": "compute.networkEndpointGroups.delete", "parameterOrder": [ "project", - "network" + "zone", + "networkEndpointGroup" ], "parameters": { - "network": { - "description": "Name of the network resource to remove peering from.", + "networkEndpointGroup": { + "description": "The name of the network endpoint group to delete. It should comply with\nRFC1035.", "location": "path", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", "required": true, "type": "string" }, @@ -16671,15 +18410,18 @@ "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. 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).", + "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).", "location": "query", "type": "string" + }, + "zone": { + "description": "The name of the zone where\nthe network endpoint group is located. It should comply with RFC1035.", + "location": "path", + "required": true, + "type": "string" } }, - "path": "projects/{project}/global/networks/{network}/removePeering", - "request": { - "$ref": "NetworksRemovePeeringRequest" - }, + "path": "projects/{project}/zones/{zone}/networkEndpointGroups/{networkEndpointGroup}", "response": { "$ref": "Operation" }, @@ -16688,20 +18430,20 @@ "https://www.googleapis.com/auth/compute" ] }, - "switchToCustomMode": { - "description": "Switches the network mode from auto subnet mode to custom subnet mode.", - "flatPath": "projects/{project}/global/networks/{network}/switchToCustomMode", + "detachNetworkEndpoints": { + "description": "Detach a list of network endpoints from the specified network endpoint\ngroup.", + "flatPath": "projects/{project}/zones/{zone}/networkEndpointGroups/{networkEndpointGroup}/detachNetworkEndpoints", "httpMethod": "POST", - "id": "compute.networks.switchToCustomMode", + "id": "compute.networkEndpointGroups.detachNetworkEndpoints", "parameterOrder": [ "project", - "network" + "zone", + "networkEndpointGroup" ], "parameters": { - "network": { - "description": "Name of the network to be updated.", + "networkEndpointGroup": { + "description": "The name of the network endpoint group where you are removing network\nendpoints. It should comply with RFC1035.", "location": "path", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", "required": true, "type": "string" }, @@ -16713,12 +18455,21 @@ "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. 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).", + "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).", "location": "query", "type": "string" + }, + "zone": { + "description": "The name of the zone where\nthe network endpoint group is located. It should comply with RFC1035.", + "location": "path", + "required": true, + "type": "string" } }, - "path": "projects/{project}/global/networks/{network}/switchToCustomMode", + "path": "projects/{project}/zones/{zone}/networkEndpointGroups/{networkEndpointGroup}/detachNetworkEndpoints", + "request": { + "$ref": "NetworkEndpointGroupsDetachEndpointsRequest" + }, "response": { "$ref": "Operation" }, @@ -16727,20 +18478,20 @@ "https://www.googleapis.com/auth/compute" ] }, - "updatePeering": { - "description": "Updates the specified network peering with the data included in the request. You can only modify the NetworkPeering.export_custom_routes field and the NetworkPeering.import_custom_routes field.", - "flatPath": "projects/{project}/global/networks/{network}/updatePeering", - "httpMethod": "PATCH", - "id": "compute.networks.updatePeering", + "get": { + "description": "Returns the specified network endpoint group.", + "flatPath": "projects/{project}/zones/{zone}/networkEndpointGroups/{networkEndpointGroup}", + "httpMethod": "GET", + "id": "compute.networkEndpointGroups.get", "parameterOrder": [ "project", - "network" + "zone", + "networkEndpointGroup" ], "parameters": { - "network": { - "description": "Name of the network resource which the updated peering is belonging to.", + "networkEndpointGroup": { + "description": "The name of the network endpoint group. It should comply with RFC1035.", "location": "path", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", "required": true, "type": "string" }, @@ -16751,46 +18502,33 @@ "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. 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).", - "location": "query", + "zone": { + "description": "The name of the zone where\nthe network endpoint group is located. It should comply with RFC1035.", + "location": "path", + "required": true, "type": "string" } }, - "path": "projects/{project}/global/networks/{network}/updatePeering", - "request": { - "$ref": "NetworksUpdatePeeringRequest" - }, + "path": "projects/{project}/zones/{zone}/networkEndpointGroups/{networkEndpointGroup}", "response": { - "$ref": "Operation" + "$ref": "NetworkEndpointGroup" }, "scopes": [ "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" ] - } - } - }, - "nodeGroups": { - "methods": { - "addNodes": { - "description": "Adds specified number of nodes to the node group.", - "flatPath": "projects/{project}/zones/{zone}/nodeGroups/{nodeGroup}/addNodes", + }, + "insert": { + "description": "Creates a network endpoint group in the specified project using the\nparameters that are included in the request.\n\nNote: Use the following APIs to manage network endpoint groups:\n \n - \n To manage NEGs with zonal scope (such as zonal NEGs, hybrid connectivity\n NEGs): zonal\n API\n - \n To manage NEGs with regional scope (such as regional internet NEGs,\n serverless NEGs, Private Service Connect NEGs): regional\n API\n - \n To manage NEGs with global scope (such as global internet NEGs):global\n API", + "flatPath": "projects/{project}/zones/{zone}/networkEndpointGroups", "httpMethod": "POST", - "id": "compute.nodeGroups.addNodes", + "id": "compute.networkEndpointGroups.insert", "parameterOrder": [ "project", - "zone", - "nodeGroup" + "zone" ], "parameters": { - "nodeGroup": { - "description": "Name of the NodeGroup resource.", - "location": "path", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "required": true, - "type": "string" - }, "project": { "description": "Project ID for this request.", "location": "path", @@ -16799,21 +18537,20 @@ "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. 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).", + "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).", "location": "query", "type": "string" }, "zone": { - "description": "The name of the zone for this request.", + "description": "The name of the zone where\nyou want to create the network endpoint group. It should comply with\nRFC1035.", "location": "path", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", "required": true, "type": "string" } }, - "path": "projects/{project}/zones/{zone}/nodeGroups/{nodeGroup}/addNodes", + "path": "projects/{project}/zones/{zone}/networkEndpointGroups", "request": { - "$ref": "NodeGroupsAddNodesRequest" + "$ref": "NetworkEndpointGroup" }, "response": { "$ref": "Operation" @@ -16823,40 +18560,36 @@ "https://www.googleapis.com/auth/compute" ] }, - "aggregatedList": { - "description": "Retrieves an aggregated list of node groups. Note: use nodeGroups.listNodes for more details about each group. To prevent failure, Google recommends that you set the `returnPartialSuccess` parameter to `true`.", - "flatPath": "projects/{project}/aggregated/nodeGroups", + "list": { + "description": "Retrieves the list of network endpoint groups that are located in the\nspecified project and zone.", + "flatPath": "projects/{project}/zones/{zone}/networkEndpointGroups", "httpMethod": "GET", - "id": "compute.nodeGroups.aggregatedList", + "id": "compute.networkEndpointGroups.list", "parameterOrder": [ - "project" + "project", + "zone" ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` 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) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.", + "description": "A filter expression that filters resources listed in the response. Most\nCompute resources support two types of filter expressions:\nexpressions that support regular expressions and expressions that follow\nAPI improvement proposal AIP-160.\nThese two types of filter expressions cannot be mixed in one request.\n\nIf you want to use AIP-160, your expression must specify the field name, an\noperator, and the value that you want to use for filtering. The value\nmust be a string, a number, or a boolean. The operator\nmust be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`.\n\nFor example, if you are filtering Compute Engine instances, you can\nexclude instances named `example-instance` by specifying\n`name != example-instance`.\n\nThe `:*` comparison can be used to test whether a key has been defined.\nFor example, to find all objects with `owner` label use:\n```\nlabels.owner:*\n```\n\nYou can also filter nested fields. For example, you could specify\n`scheduling.automaticRestart = false` to include instances only\nif they are not scheduled for automatic restarts. You can use filtering\non nested fields to filter based onresource labels.\n\nTo filter on multiple expressions, provide each separate expression within\nparentheses. For example:\n```\n(scheduling.automaticRestart = true)\n(cpuPlatform = \"Intel Skylake\")\n```\nBy default, each expression is an `AND` expression. However, you\ncan include `AND` and `OR` expressions explicitly.\nFor example:\n```\n(cpuPlatform = \"Intel Skylake\") OR\n(cpuPlatform = \"Intel Broadwell\") AND\n(scheduling.automaticRestart = true)\n```\n\nIf you want to use a regular expression, use the `eq` (equal) or `ne`\n(not equal) operator against a single un-parenthesized expression with or\nwithout quotes or against multiple parenthesized expressions. Examples:\n\n`fieldname eq unquoted literal`\n`fieldname eq 'single quoted literal'`\n`fieldname eq \"double quoted literal\"`\n`(fieldname1 eq literal) (fieldname2 ne \"literal\")`\n\nThe literal value is interpreted as a regular expression using GoogleRE2 library syntax.\nThe literal value must match the entire field.\n\nFor example, to filter for instances that do not end with name \"instance\",\nyou would use `name ne .*instance`.\n\nYou cannot combine constraints on multiple fields using regular\nexpressions.", "location": "query", "type": "string" }, - "includeAllScopes": { - "description": "Indicates whether every visible scope for each scope type (zone, region, global) should be included in the response. For new resource types added after this field, the flag has no effect as new resource types will always include every visible scope for each scope type in response. For resource types which predate this field, if this flag is omitted or false, only scopes of the scope types where the resource type is expected to be found will be included.", - "location": "query", - "type": "boolean" - }, "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`)", + "description": "The maximum number of results per page that should be returned.\nIf the number of available results is larger than `maxResults`,\nCompute Engine returns a `nextPageToken` that can be used to get\nthe next page of results in subsequent list requests. Acceptable values are\n`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. 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.", + "description": "Sorts list results by a certain order. By default, results\nare returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation\ntimestamp using `orderBy=\"creationTimestamp desc\"`. This sorts\nresults based on the `creationTimestamp` field in\nreverse chronological order (newest result first). Use this to sort\nresources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or\n`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.", + "description": "Specifies a page token to use. Set `pageToken` to the\n`nextPageToken` returned by a previous list request to get\nthe next page of results.", "location": "query", "type": "string" }, @@ -16868,20 +18601,20 @@ "type": "string" }, "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", + "description": "Opt-in for partial success behavior which provides partial results in case\nof failure. The default value is false.\n\nFor example, when partial success behavior is enabled, aggregatedList for a\nsingle zone scope either returns all resources in the zone or no resources,\nwith an error code.", "location": "query", "type": "boolean" }, - "serviceProjectNumber": { - "description": "The Shared VPC service project id or service project number for which aggregated list request is invoked for subnetworks list-usable api.", - "format": "int64", - "location": "query", + "zone": { + "description": "The name of thezone\nwhere the network endpoint group is located. It should comply with RFC1035.", + "location": "path", + "required": true, "type": "string" } }, - "path": "projects/{project}/aggregated/nodeGroups", + "path": "projects/{project}/zones/{zone}/networkEndpointGroups", "response": { - "$ref": "NodeGroupAggregatedList" + "$ref": "NetworkEndpointGroupList" }, "scopes": [ "https://www.googleapis.com/auth/cloud-platform", @@ -16889,24 +18622,46 @@ "https://www.googleapis.com/auth/compute.readonly" ] }, - "delete": { - "description": "Deletes the specified NodeGroup resource.", - "flatPath": "projects/{project}/zones/{zone}/nodeGroups/{nodeGroup}", - "httpMethod": "DELETE", - "id": "compute.nodeGroups.delete", + "listNetworkEndpoints": { + "description": "Lists the network endpoints in the specified network endpoint group.", + "flatPath": "projects/{project}/zones/{zone}/networkEndpointGroups/{networkEndpointGroup}/listNetworkEndpoints", + "httpMethod": "POST", + "id": "compute.networkEndpointGroups.listNetworkEndpoints", "parameterOrder": [ "project", "zone", - "nodeGroup" + "networkEndpointGroup" ], "parameters": { - "nodeGroup": { - "description": "Name of the NodeGroup resource to delete.", + "filter": { + "description": "A filter expression that filters resources listed in the response. Most\nCompute resources support two types of filter expressions:\nexpressions that support regular expressions and expressions that follow\nAPI improvement proposal AIP-160.\nThese two types of filter expressions cannot be mixed in one request.\n\nIf you want to use AIP-160, your expression must specify the field name, an\noperator, and the value that you want to use for filtering. The value\nmust be a string, a number, or a boolean. The operator\nmust be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`.\n\nFor example, if you are filtering Compute Engine instances, you can\nexclude instances named `example-instance` by specifying\n`name != example-instance`.\n\nThe `:*` comparison can be used to test whether a key has been defined.\nFor example, to find all objects with `owner` label use:\n```\nlabels.owner:*\n```\n\nYou can also filter nested fields. For example, you could specify\n`scheduling.automaticRestart = false` to include instances only\nif they are not scheduled for automatic restarts. You can use filtering\non nested fields to filter based onresource labels.\n\nTo filter on multiple expressions, provide each separate expression within\nparentheses. For example:\n```\n(scheduling.automaticRestart = true)\n(cpuPlatform = \"Intel Skylake\")\n```\nBy default, each expression is an `AND` expression. However, you\ncan include `AND` and `OR` expressions explicitly.\nFor example:\n```\n(cpuPlatform = \"Intel Skylake\") OR\n(cpuPlatform = \"Intel Broadwell\") AND\n(scheduling.automaticRestart = true)\n```\n\nIf you want to use a regular expression, use the `eq` (equal) or `ne`\n(not equal) operator against a single un-parenthesized expression with or\nwithout quotes or against multiple parenthesized expressions. Examples:\n\n`fieldname eq unquoted literal`\n`fieldname eq 'single quoted literal'`\n`fieldname eq \"double quoted literal\"`\n`(fieldname1 eq literal) (fieldname2 ne \"literal\")`\n\nThe literal value is interpreted as a regular expression using GoogleRE2 library syntax.\nThe literal value must match the entire field.\n\nFor example, to filter for instances that do not end with name \"instance\",\nyou would use `name ne .*instance`.\n\nYou cannot combine constraints on multiple fields using regular\nexpressions.", + "location": "query", + "type": "string" + }, + "maxResults": { + "default": "500", + "description": "The maximum number of results per page that should be returned.\nIf the number of available results is larger than `maxResults`,\nCompute Engine returns a `nextPageToken` that can be used to get\nthe next page of results in subsequent list requests. Acceptable values are\n`0` to `500`, inclusive. (Default: `500`)", + "format": "uint32", + "location": "query", + "minimum": "0", + "type": "integer" + }, + "networkEndpointGroup": { + "description": "The name of the network endpoint group from which you want to generate a\nlist of included network endpoints. It should comply with RFC1035.", "location": "path", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", "required": true, "type": "string" }, + "orderBy": { + "description": "Sorts list results by a certain order. By default, results\nare returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation\ntimestamp using `orderBy=\"creationTimestamp desc\"`. This sorts\nresults based on the `creationTimestamp` field in\nreverse chronological order (newest result first). Use this to sort\nresources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or\n`creationTimestamp desc` is supported.", + "location": "query", + "type": "string" + }, + "pageToken": { + "description": "Specifies a page token to use. Set `pageToken` to the\n`nextPageToken` returned by a previous list request to get\nthe next page of results.", + "location": "query", + "type": "string" + }, "project": { "description": "Project ID for this request.", "location": "path", @@ -16914,46 +18669,42 @@ "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. 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).", + "returnPartialSuccess": { + "description": "Opt-in for partial success behavior which provides partial results in case\nof failure. The default value is false.\n\nFor example, when partial success behavior is enabled, aggregatedList for a\nsingle zone scope either returns all resources in the zone or no resources,\nwith an error code.", "location": "query", - "type": "string" + "type": "boolean" }, "zone": { - "description": "The name of the zone for this request.", + "description": "The name of the zone where\nthe network endpoint group is located. It should comply with RFC1035.", "location": "path", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", "required": true, "type": "string" } }, - "path": "projects/{project}/zones/{zone}/nodeGroups/{nodeGroup}", + "path": "projects/{project}/zones/{zone}/networkEndpointGroups/{networkEndpointGroup}/listNetworkEndpoints", + "request": { + "$ref": "NetworkEndpointGroupsListEndpointsRequest" + }, "response": { - "$ref": "Operation" + "$ref": "NetworkEndpointGroupsListNetworkEndpoints" }, "scopes": [ "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" ] }, - "deleteNodes": { - "description": "Deletes specified nodes from the node group.", - "flatPath": "projects/{project}/zones/{zone}/nodeGroups/{nodeGroup}/deleteNodes", + "testIamPermissions": { + "description": "Returns permissions that a caller has on the specified resource.", + "flatPath": "projects/{project}/zones/{zone}/networkEndpointGroups/{resource}/testIamPermissions", "httpMethod": "POST", - "id": "compute.nodeGroups.deleteNodes", + "id": "compute.networkEndpointGroups.testIamPermissions", "parameterOrder": [ "project", "zone", - "nodeGroup" + "resource" ], "parameters": { - "nodeGroup": { - "description": "Name of the NodeGroup resource whose nodes will be deleted.", - "location": "path", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "required": true, - "type": "string" - }, "project": { "description": "Project ID for this request.", "location": "path", @@ -16961,9 +18712,11 @@ "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. 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).", - "location": "query", + "resource": { + "description": "Name or id of the resource for this request.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "required": true, "type": "string" }, "zone": { @@ -16974,31 +18727,35 @@ "type": "string" } }, - "path": "projects/{project}/zones/{zone}/nodeGroups/{nodeGroup}/deleteNodes", + "path": "projects/{project}/zones/{zone}/networkEndpointGroups/{resource}/testIamPermissions", "request": { - "$ref": "NodeGroupsDeleteNodesRequest" + "$ref": "TestPermissionsRequest" }, "response": { - "$ref": "Operation" + "$ref": "TestPermissionsResponse" }, "scopes": [ "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" ] - }, - "get": { - "description": "Returns the specified NodeGroup. Get a list of available NodeGroups by making a list() request. Note: the \"nodes\" field should not be used. Use nodeGroups.listNodes instead.", - "flatPath": "projects/{project}/zones/{zone}/nodeGroups/{nodeGroup}", - "httpMethod": "GET", - "id": "compute.nodeGroups.get", + } + } + }, + "networkFirewallPolicies": { + "methods": { + "addAssociation": { + "description": "Inserts an association for the specified firewall policy.", + "flatPath": "projects/{project}/global/firewallPolicies/{firewallPolicy}/addAssociation", + "httpMethod": "POST", + "id": "compute.networkFirewallPolicies.addAssociation", "parameterOrder": [ "project", - "zone", - "nodeGroup" + "firewallPolicy" ], "parameters": { - "nodeGroup": { - "description": "Name of the node group to return.", + "firewallPolicy": { + "description": "Name of the firewall policy to update.", "location": "path", "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", "required": true, @@ -17011,37 +18768,54 @@ "required": true, "type": "string" }, - "zone": { - "description": "The name of the zone for this request.", - "location": "path", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "required": true, + "replaceExistingAssociation": { + "description": "Indicates whether or not to replace it if an association of the attachment\nalready exists. This is false by default, in which case an error will be\nreturned if an association already exists.", + "location": "query", + "type": "boolean" + }, + "requestId": { + "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).", + "location": "query", "type": "string" } }, - "path": "projects/{project}/zones/{zone}/nodeGroups/{nodeGroup}", + "path": "projects/{project}/global/firewallPolicies/{firewallPolicy}/addAssociation", + "request": { + "$ref": "FirewallPolicyAssociation" + }, "response": { - "$ref": "NodeGroup" + "$ref": "Operation" }, "scopes": [ "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" + "https://www.googleapis.com/auth/compute" ] }, - "getIamPolicy": { - "description": "Gets the access control policy for a resource. May be empty if no such policy or resource exists.", - "flatPath": "projects/{project}/zones/{zone}/nodeGroups/{resource}/getIamPolicy", - "httpMethod": "GET", - "id": "compute.nodeGroups.getIamPolicy", + "addPacketMirroringRule": { + "description": "Inserts a packet mirroring rule into a firewall policy.", + "flatPath": "projects/{project}/global/firewallPolicies/{firewallPolicy}/addPacketMirroringRule", + "httpMethod": "POST", + "id": "compute.networkFirewallPolicies.addPacketMirroringRule", "parameterOrder": [ "project", - "zone", - "resource" + "firewallPolicy" ], "parameters": { - "optionsRequestedPolicyVersion": { - "description": "Requested IAM Policy version.", + "firewallPolicy": { + "description": "Name of the firewall policy to update.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "required": true, + "type": "string" + }, + "maxPriority": { + "description": "When rule.priority is not specified, auto choose a unused priority betweenminPriority and maxPriority\u003e.\nThis field is exclusive with rule.priority.", + "format": "int32", + "location": "query", + "type": "integer" + }, + "minPriority": { + "description": "When rule.priority is not specified, auto choose a unused priority betweenminPriority and maxPriority\u003e.\nThis field is exclusive with rule.priority.", "format": "int32", "location": "query", "type": "integer" @@ -17053,47 +18827,51 @@ "required": true, "type": "string" }, - "resource": { - "description": "Name or id of the resource for this request.", - "location": "path", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "required": true, - "type": "string" - }, - "zone": { - "description": "The name of the zone for this request.", - "location": "path", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "required": true, + "requestId": { + "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).", + "location": "query", "type": "string" } }, - "path": "projects/{project}/zones/{zone}/nodeGroups/{resource}/getIamPolicy", + "path": "projects/{project}/global/firewallPolicies/{firewallPolicy}/addPacketMirroringRule", + "request": { + "$ref": "FirewallPolicyRule" + }, "response": { - "$ref": "Policy" + "$ref": "Operation" }, "scopes": [ "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" + "https://www.googleapis.com/auth/compute" ] }, - "insert": { - "description": "Creates a NodeGroup resource in the specified project using the data included in the request.", - "flatPath": "projects/{project}/zones/{zone}/nodeGroups", + "addRule": { + "description": "Inserts a rule into a firewall policy.", + "flatPath": "projects/{project}/global/firewallPolicies/{firewallPolicy}/addRule", "httpMethod": "POST", - "id": "compute.nodeGroups.insert", + "id": "compute.networkFirewallPolicies.addRule", "parameterOrder": [ "project", - "zone", - "initialNodeCount" + "firewallPolicy" ], "parameters": { - "initialNodeCount": { - "description": "Initial count of nodes in the node group.", + "firewallPolicy": { + "description": "Name of the firewall policy to update.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "required": true, + "type": "string" + }, + "maxPriority": { + "description": "When rule.priority is not specified, auto choose a unused priority betweenminPriority and maxPriority\u003e.\nThis field is exclusive with rule.priority.", + "format": "int32", + "location": "query", + "type": "integer" + }, + "minPriority": { + "description": "When rule.priority is not specified, auto choose a unused priority betweenminPriority and maxPriority\u003e.\nThis field is exclusive with rule.priority.", "format": "int32", "location": "query", - "required": true, "type": "integer" }, "project": { @@ -17104,21 +18882,14 @@ "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. 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).", + "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).", "location": "query", "type": "string" - }, - "zone": { - "description": "The name of the zone for this request.", - "location": "path", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "required": true, - "type": "string" } }, - "path": "projects/{project}/zones/{zone}/nodeGroups", + "path": "projects/{project}/global/firewallPolicies/{firewallPolicy}/addRule", "request": { - "$ref": "NodeGroup" + "$ref": "FirewallPolicyRule" }, "response": { "$ref": "Operation" @@ -17128,36 +18899,40 @@ "https://www.googleapis.com/auth/compute" ] }, - "list": { - "description": "Retrieves a list of node groups available to the specified project. Note: use nodeGroups.listNodes for more details about each group.", - "flatPath": "projects/{project}/zones/{zone}/nodeGroups", + "aggregatedList": { + "description": "Retrieves an aggregated list of network firewall policies, listing network\nfirewall policies from all applicable scopes (global and regional) and\ngrouping the results per scope.\n\nTo prevent failure, it is recommended that you set the\n`returnPartialSuccess` parameter to `true`.", + "flatPath": "projects/{project}/aggregated/firewallPolicies", "httpMethod": "GET", - "id": "compute.nodeGroups.list", + "id": "compute.networkFirewallPolicies.aggregatedList", "parameterOrder": [ - "project", - "zone" + "project" ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` 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) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.", + "description": "A filter expression that filters resources listed in the response. Most\nCompute resources support two types of filter expressions:\nexpressions that support regular expressions and expressions that follow\nAPI improvement proposal AIP-160.\nThese two types of filter expressions cannot be mixed in one request.\n\nIf you want to use AIP-160, your expression must specify the field name, an\noperator, and the value that you want to use for filtering. The value\nmust be a string, a number, or a boolean. The operator\nmust be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`.\n\nFor example, if you are filtering Compute Engine instances, you can\nexclude instances named `example-instance` by specifying\n`name != example-instance`.\n\nThe `:*` comparison can be used to test whether a key has been defined.\nFor example, to find all objects with `owner` label use:\n```\nlabels.owner:*\n```\n\nYou can also filter nested fields. For example, you could specify\n`scheduling.automaticRestart = false` to include instances only\nif they are not scheduled for automatic restarts. You can use filtering\non nested fields to filter based onresource labels.\n\nTo filter on multiple expressions, provide each separate expression within\nparentheses. For example:\n```\n(scheduling.automaticRestart = true)\n(cpuPlatform = \"Intel Skylake\")\n```\nBy default, each expression is an `AND` expression. However, you\ncan include `AND` and `OR` expressions explicitly.\nFor example:\n```\n(cpuPlatform = \"Intel Skylake\") OR\n(cpuPlatform = \"Intel Broadwell\") AND\n(scheduling.automaticRestart = true)\n```\n\nIf you want to use a regular expression, use the `eq` (equal) or `ne`\n(not equal) operator against a single un-parenthesized expression with or\nwithout quotes or against multiple parenthesized expressions. Examples:\n\n`fieldname eq unquoted literal`\n`fieldname eq 'single quoted literal'`\n`fieldname eq \"double quoted literal\"`\n`(fieldname1 eq literal) (fieldname2 ne \"literal\")`\n\nThe literal value is interpreted as a regular expression using GoogleRE2 library syntax.\nThe literal value must match the entire field.\n\nFor example, to filter for instances that do not end with name \"instance\",\nyou would use `name ne .*instance`.\n\nYou cannot combine constraints on multiple fields using regular\nexpressions.", "location": "query", "type": "string" }, + "includeAllScopes": { + "description": "Indicates whether every visible scope for each scope type (zone, region,\nglobal) should be included in the response. For new resource types added\nafter this field, the flag has no effect as new resource types will always\ninclude every visible scope for each scope type in response. For resource\ntypes which predate this field, if this flag is omitted or false, only\nscopes of the scope types where the resource type is expected to be found\nwill be included.", + "location": "query", + "type": "boolean" + }, "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`)", + "description": "The maximum number of results per page that should be returned.\nIf the number of available results is larger than `maxResults`,\nCompute Engine returns a `nextPageToken` that can be used to get\nthe next page of results in subsequent list requests. Acceptable values are\n`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. 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.", + "description": "Sorts list results by a certain order. By default, results\nare returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation\ntimestamp using `orderBy=\"creationTimestamp desc\"`. This sorts\nresults based on the `creationTimestamp` field in\nreverse chronological order (newest result first). Use this to sort\nresources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or\n`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.", + "description": "Specifies a page token to use. Set `pageToken` to the\n`nextPageToken` returned by a previous list request to get\nthe next page of results.", "location": "query", "type": "string" }, @@ -17169,21 +18944,20 @@ "type": "string" }, "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", + "description": "Opt-in for partial success behavior which provides partial results in case\nof failure. The default value is false.\n\nFor example, when partial success behavior is enabled, aggregatedList for a\nsingle zone scope either returns all resources in the zone or no resources,\nwith an error code.", "location": "query", "type": "boolean" }, - "zone": { - "description": "The name of the zone for this request.", - "location": "path", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "required": true, + "serviceProjectNumber": { + "description": "The Shared VPC service project id or service project number for which\naggregated list request is invoked for subnetworks list-usable api.", + "format": "int64", + "location": "query", "type": "string" } }, - "path": "projects/{project}/zones/{zone}/nodeGroups", + "path": "projects/{project}/aggregated/firewallPolicies", "response": { - "$ref": "NodeGroupList" + "$ref": "NetworkFirewallPolicyAggregatedList" }, "scopes": [ "https://www.googleapis.com/auth/cloud-platform", @@ -17191,47 +18965,23 @@ "https://www.googleapis.com/auth/compute.readonly" ] }, - "listNodes": { - "description": "Lists nodes in the node group.", - "flatPath": "projects/{project}/zones/{zone}/nodeGroups/{nodeGroup}/listNodes", + "cloneRules": { + "description": "Copies rules to the specified firewall policy.", + "flatPath": "projects/{project}/global/firewallPolicies/{firewallPolicy}/cloneRules", "httpMethod": "POST", - "id": "compute.nodeGroups.listNodes", + "id": "compute.networkFirewallPolicies.cloneRules", "parameterOrder": [ "project", - "zone", - "nodeGroup" + "firewallPolicy" ], "parameters": { - "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` 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) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.", - "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" - }, - "nodeGroup": { - "description": "Name of the NodeGroup resource whose nodes you want to list.", + "firewallPolicy": { + "description": "Name of the firewall policy to update.", "location": "path", "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", "required": true, "type": "string" }, - "orderBy": { - "description": "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.", - "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", @@ -17239,42 +18989,38 @@ "required": true, "type": "string" }, - "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", + "requestId": { + "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).", "location": "query", - "type": "boolean" + "type": "string" }, - "zone": { - "description": "The name of the zone for this request.", - "location": "path", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "required": true, + "sourceFirewallPolicy": { + "description": "The firewall policy from which to copy rules.", + "location": "query", "type": "string" } }, - "path": "projects/{project}/zones/{zone}/nodeGroups/{nodeGroup}/listNodes", + "path": "projects/{project}/global/firewallPolicies/{firewallPolicy}/cloneRules", "response": { - "$ref": "NodeGroupsListNodes" + "$ref": "Operation" }, "scopes": [ "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" + "https://www.googleapis.com/auth/compute" ] }, - "patch": { - "description": "Updates the specified node group.", - "flatPath": "projects/{project}/zones/{zone}/nodeGroups/{nodeGroup}", - "httpMethod": "PATCH", - "id": "compute.nodeGroups.patch", + "delete": { + "description": "Deletes the specified policy.", + "flatPath": "projects/{project}/global/firewallPolicies/{firewallPolicy}", + "httpMethod": "DELETE", + "id": "compute.networkFirewallPolicies.delete", "parameterOrder": [ "project", - "zone", - "nodeGroup" + "firewallPolicy" ], "parameters": { - "nodeGroup": { - "description": "Name of the NodeGroup resource to update.", + "firewallPolicy": { + "description": "Name of the firewall policy to delete.", "location": "path", "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", "required": true, @@ -17288,22 +19034,12 @@ "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. 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).", + "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).", "location": "query", "type": "string" - }, - "zone": { - "description": "The name of the zone for this request.", - "location": "path", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "required": true, - "type": "string" } }, - "path": "projects/{project}/zones/{zone}/nodeGroups/{nodeGroup}", - "request": { - "$ref": "NodeGroup" - }, + "path": "projects/{project}/global/firewallPolicies/{firewallPolicy}", "response": { "$ref": "Operation" }, @@ -17312,19 +19048,18 @@ "https://www.googleapis.com/auth/compute" ] }, - "performMaintenance": { - "description": "Perform maintenance on a subset of nodes in the node group.", - "flatPath": "projects/{project}/zones/{zone}/nodeGroups/{nodeGroup}/performMaintenance", - "httpMethod": "POST", - "id": "compute.nodeGroups.performMaintenance", + "get": { + "description": "Returns the specified network firewall policy.", + "flatPath": "projects/{project}/global/firewallPolicies/{firewallPolicy}", + "httpMethod": "GET", + "id": "compute.networkFirewallPolicies.get", "parameterOrder": [ "project", - "zone", - "nodeGroup" + "firewallPolicy" ], "parameters": { - "nodeGroup": { - "description": "Name of the node group scoping this request.", + "firewallPolicy": { + "description": "Name of the firewall policy to get.", "location": "path", "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", "required": true, @@ -17336,43 +19071,74 @@ "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" + } + }, + "path": "projects/{project}/global/firewallPolicies/{firewallPolicy}", + "response": { + "$ref": "FirewallPolicy" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ] + }, + "getAssociation": { + "description": "Gets an association with the specified name.", + "flatPath": "projects/{project}/global/firewallPolicies/{firewallPolicy}/getAssociation", + "httpMethod": "GET", + "id": "compute.networkFirewallPolicies.getAssociation", + "parameterOrder": [ + "project", + "firewallPolicy" + ], + "parameters": { + "firewallPolicy": { + "description": "Name of the firewall policy to which the queried association belongs.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "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. 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).", + "name": { + "description": "The name of the association to get from the firewall policy.", "location": "query", "type": "string" }, - "zone": { - "description": "The name of the zone for this request.", + "project": { + "description": "Project ID for this request.", "location": "path", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "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" } }, - "path": "projects/{project}/zones/{zone}/nodeGroups/{nodeGroup}/performMaintenance", - "request": { - "$ref": "NodeGroupsPerformMaintenanceRequest" - }, + "path": "projects/{project}/global/firewallPolicies/{firewallPolicy}/getAssociation", "response": { - "$ref": "Operation" + "$ref": "FirewallPolicyAssociation" }, "scopes": [ "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" ] }, - "setIamPolicy": { - "description": "Sets the access control policy on the specified resource. Replaces any existing policy.", - "flatPath": "projects/{project}/zones/{zone}/nodeGroups/{resource}/setIamPolicy", - "httpMethod": "POST", - "id": "compute.nodeGroups.setIamPolicy", + "getIamPolicy": { + "description": "Gets the access control policy for a resource. May be empty if no such\npolicy or resource exists.", + "flatPath": "projects/{project}/global/firewallPolicies/{resource}/getIamPolicy", + "httpMethod": "GET", + "id": "compute.networkFirewallPolicies.getIamPolicy", "parameterOrder": [ "project", - "zone", "resource" ], "parameters": { + "optionsRequestedPolicyVersion": { + "description": "Requested IAM Policy version.", + "format": "int32", + "location": "query", + "type": "integer" + }, "project": { "description": "Project ID for this request.", "location": "path", @@ -17383,139 +19149,110 @@ "resource": { "description": "Name or id of the resource for this request.", "location": "path", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "required": true, - "type": "string" - }, - "zone": { - "description": "The name of the zone for this request.", - "location": "path", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", "required": true, "type": "string" } }, - "path": "projects/{project}/zones/{zone}/nodeGroups/{resource}/setIamPolicy", - "request": { - "$ref": "ZoneSetPolicyRequest" - }, + "path": "projects/{project}/global/firewallPolicies/{resource}/getIamPolicy", "response": { "$ref": "Policy" }, "scopes": [ "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" ] }, - "setNodeTemplate": { - "description": "Updates the node template of the node group.", - "flatPath": "projects/{project}/zones/{zone}/nodeGroups/{nodeGroup}/setNodeTemplate", - "httpMethod": "POST", - "id": "compute.nodeGroups.setNodeTemplate", + "getPacketMirroringRule": { + "description": "Gets a packet mirroring rule of the specified priority.", + "flatPath": "projects/{project}/global/firewallPolicies/{firewallPolicy}/getPacketMirroringRule", + "httpMethod": "GET", + "id": "compute.networkFirewallPolicies.getPacketMirroringRule", "parameterOrder": [ "project", - "zone", - "nodeGroup" + "firewallPolicy" ], "parameters": { - "nodeGroup": { - "description": "Name of the NodeGroup resource to update.", + "firewallPolicy": { + "description": "Name of the firewall policy to which the queried rule belongs.", "location": "path", "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", "required": true, "type": "string" }, + "priority": { + "description": "The priority of the rule to get from the firewall policy.", + "format": "int32", + "location": "query", + "type": "integer" + }, "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. 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).", - "location": "query", - "type": "string" - }, - "zone": { - "description": "The name of the zone for this request.", - "location": "path", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "required": true, - "type": "string" } }, - "path": "projects/{project}/zones/{zone}/nodeGroups/{nodeGroup}/setNodeTemplate", - "request": { - "$ref": "NodeGroupsSetNodeTemplateRequest" - }, + "path": "projects/{project}/global/firewallPolicies/{firewallPolicy}/getPacketMirroringRule", "response": { - "$ref": "Operation" + "$ref": "FirewallPolicyRule" }, "scopes": [ "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" ] }, - "simulateMaintenanceEvent": { - "description": "Simulates maintenance event on specified nodes from the node group.", - "flatPath": "projects/{project}/zones/{zone}/nodeGroups/{nodeGroup}/simulateMaintenanceEvent", - "httpMethod": "POST", - "id": "compute.nodeGroups.simulateMaintenanceEvent", + "getRule": { + "description": "Gets a rule of the specified priority.", + "flatPath": "projects/{project}/global/firewallPolicies/{firewallPolicy}/getRule", + "httpMethod": "GET", + "id": "compute.networkFirewallPolicies.getRule", "parameterOrder": [ "project", - "zone", - "nodeGroup" + "firewallPolicy" ], "parameters": { - "nodeGroup": { - "description": "Name of the NodeGroup resource whose nodes will go under maintenance simulation.", + "firewallPolicy": { + "description": "Name of the firewall policy to which the queried rule belongs.", "location": "path", "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", "required": true, "type": "string" }, + "priority": { + "description": "The priority of the rule to get from the firewall policy.", + "format": "int32", + "location": "query", + "type": "integer" + }, "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. 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).", - "location": "query", - "type": "string" - }, - "zone": { - "description": "The name of the zone for this request.", - "location": "path", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "required": true, - "type": "string" } }, - "path": "projects/{project}/zones/{zone}/nodeGroups/{nodeGroup}/simulateMaintenanceEvent", - "request": { - "$ref": "NodeGroupsSimulateMaintenanceEventRequest" - }, + "path": "projects/{project}/global/firewallPolicies/{firewallPolicy}/getRule", "response": { - "$ref": "Operation" + "$ref": "FirewallPolicyRule" }, "scopes": [ "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" ] }, - "testIamPermissions": { - "description": "Returns permissions that a caller has on the specified resource.", - "flatPath": "projects/{project}/zones/{zone}/nodeGroups/{resource}/testIamPermissions", + "insert": { + "description": "Creates a new policy in the specified project using the data included in\nthe request.", + "flatPath": "projects/{project}/global/firewallPolicies", "httpMethod": "POST", - "id": "compute.nodeGroups.testIamPermissions", + "id": "compute.networkFirewallPolicies.insert", "parameterOrder": [ - "project", - "zone", - "resource" + "project" ], "parameters": { "project": { @@ -17525,72 +19262,53 @@ "required": true, "type": "string" }, - "resource": { - "description": "Name or id of the resource for this request.", - "location": "path", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "required": true, - "type": "string" - }, - "zone": { - "description": "The name of the zone for this request.", - "location": "path", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "required": true, + "requestId": { + "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).", + "location": "query", "type": "string" } }, - "path": "projects/{project}/zones/{zone}/nodeGroups/{resource}/testIamPermissions", + "path": "projects/{project}/global/firewallPolicies", "request": { - "$ref": "TestPermissionsRequest" + "$ref": "FirewallPolicy" }, "response": { - "$ref": "TestPermissionsResponse" + "$ref": "Operation" }, "scopes": [ "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" + "https://www.googleapis.com/auth/compute" ] - } - } - }, - "nodeTemplates": { - "methods": { - "aggregatedList": { - "description": "Retrieves an aggregated list of node templates. To prevent failure, Google recommends that you set the `returnPartialSuccess` parameter to `true`.", - "flatPath": "projects/{project}/aggregated/nodeTemplates", + }, + "list": { + "description": "Lists all the policies that have been configured for the specified project.", + "flatPath": "projects/{project}/global/firewallPolicies", "httpMethod": "GET", - "id": "compute.nodeTemplates.aggregatedList", + "id": "compute.networkFirewallPolicies.list", "parameterOrder": [ "project" ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` 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) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.", + "description": "A filter expression that filters resources listed in the response. Most\nCompute resources support two types of filter expressions:\nexpressions that support regular expressions and expressions that follow\nAPI improvement proposal AIP-160.\nThese two types of filter expressions cannot be mixed in one request.\n\nIf you want to use AIP-160, your expression must specify the field name, an\noperator, and the value that you want to use for filtering. The value\nmust be a string, a number, or a boolean. The operator\nmust be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`.\n\nFor example, if you are filtering Compute Engine instances, you can\nexclude instances named `example-instance` by specifying\n`name != example-instance`.\n\nThe `:*` comparison can be used to test whether a key has been defined.\nFor example, to find all objects with `owner` label use:\n```\nlabels.owner:*\n```\n\nYou can also filter nested fields. For example, you could specify\n`scheduling.automaticRestart = false` to include instances only\nif they are not scheduled for automatic restarts. You can use filtering\non nested fields to filter based onresource labels.\n\nTo filter on multiple expressions, provide each separate expression within\nparentheses. For example:\n```\n(scheduling.automaticRestart = true)\n(cpuPlatform = \"Intel Skylake\")\n```\nBy default, each expression is an `AND` expression. However, you\ncan include `AND` and `OR` expressions explicitly.\nFor example:\n```\n(cpuPlatform = \"Intel Skylake\") OR\n(cpuPlatform = \"Intel Broadwell\") AND\n(scheduling.automaticRestart = true)\n```\n\nIf you want to use a regular expression, use the `eq` (equal) or `ne`\n(not equal) operator against a single un-parenthesized expression with or\nwithout quotes or against multiple parenthesized expressions. Examples:\n\n`fieldname eq unquoted literal`\n`fieldname eq 'single quoted literal'`\n`fieldname eq \"double quoted literal\"`\n`(fieldname1 eq literal) (fieldname2 ne \"literal\")`\n\nThe literal value is interpreted as a regular expression using GoogleRE2 library syntax.\nThe literal value must match the entire field.\n\nFor example, to filter for instances that do not end with name \"instance\",\nyou would use `name ne .*instance`.\n\nYou cannot combine constraints on multiple fields using regular\nexpressions.", "location": "query", "type": "string" }, - "includeAllScopes": { - "description": "Indicates whether every visible scope for each scope type (zone, region, global) should be included in the response. For new resource types added after this field, the flag has no effect as new resource types will always include every visible scope for each scope type in response. For resource types which predate this field, if this flag is omitted or false, only scopes of the scope types where the resource type is expected to be found will be included.", - "location": "query", - "type": "boolean" - }, "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`)", + "description": "The maximum number of results per page that should be returned.\nIf the number of available results is larger than `maxResults`,\nCompute Engine returns a `nextPageToken` that can be used to get\nthe next page of results in subsequent list requests. Acceptable values are\n`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. 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.", + "description": "Sorts list results by a certain order. By default, results\nare returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation\ntimestamp using `orderBy=\"creationTimestamp desc\"`. This sorts\nresults based on the `creationTimestamp` field in\nreverse chronological order (newest result first). Use this to sort\nresources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or\n`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.", + "description": "Specifies a page token to use. Set `pageToken` to the\n`nextPageToken` returned by a previous list request to get\nthe next page of results.", "location": "query", "type": "string" }, @@ -17602,20 +19320,14 @@ "type": "string" }, "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", + "description": "Opt-in for partial success behavior which provides partial results in case\nof failure. The default value is false.\n\nFor example, when partial success behavior is enabled, aggregatedList for a\nsingle zone scope either returns all resources in the zone or no resources,\nwith an error code.", "location": "query", "type": "boolean" - }, - "serviceProjectNumber": { - "description": "The Shared VPC service project id or service project number for which aggregated list request is invoked for subnetworks list-usable api.", - "format": "int64", - "location": "query", - "type": "string" } }, - "path": "projects/{project}/aggregated/nodeTemplates", + "path": "projects/{project}/global/firewallPolicies", "response": { - "$ref": "NodeTemplateAggregatedList" + "$ref": "FirewallPolicyList" }, "scopes": [ "https://www.googleapis.com/auth/cloud-platform", @@ -17623,19 +19335,18 @@ "https://www.googleapis.com/auth/compute.readonly" ] }, - "delete": { - "description": "Deletes the specified NodeTemplate resource.", - "flatPath": "projects/{project}/regions/{region}/nodeTemplates/{nodeTemplate}", - "httpMethod": "DELETE", - "id": "compute.nodeTemplates.delete", + "patch": { + "description": "Patches the specified policy with the data included in the request.", + "flatPath": "projects/{project}/global/firewallPolicies/{firewallPolicy}", + "httpMethod": "PATCH", + "id": "compute.networkFirewallPolicies.patch", "parameterOrder": [ "project", - "region", - "nodeTemplate" + "firewallPolicy" ], "parameters": { - "nodeTemplate": { - "description": "Name of the NodeTemplate resource to delete.", + "firewallPolicy": { + "description": "Name of the firewall policy to update.", "location": "path", "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", "required": true, @@ -17648,20 +19359,16 @@ "required": true, "type": "string" }, - "region": { - "description": "The name of the region for this request.", - "location": "path", - "pattern": "[a-z](?:[-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. 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).", + "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).", "location": "query", "type": "string" } }, - "path": "projects/{project}/regions/{region}/nodeTemplates/{nodeTemplate}", + "path": "projects/{project}/global/firewallPolicies/{firewallPolicy}", + "request": { + "$ref": "FirewallPolicy" + }, "response": { "$ref": "Operation" }, @@ -17670,24 +19377,29 @@ "https://www.googleapis.com/auth/compute" ] }, - "get": { - "description": "Returns the specified node template.", - "flatPath": "projects/{project}/regions/{region}/nodeTemplates/{nodeTemplate}", - "httpMethod": "GET", - "id": "compute.nodeTemplates.get", + "patchPacketMirroringRule": { + "description": "Patches a packet mirroring rule of the specified priority.", + "flatPath": "projects/{project}/global/firewallPolicies/{firewallPolicy}/patchPacketMirroringRule", + "httpMethod": "POST", + "id": "compute.networkFirewallPolicies.patchPacketMirroringRule", "parameterOrder": [ "project", - "region", - "nodeTemplate" + "firewallPolicy" ], "parameters": { - "nodeTemplate": { - "description": "Name of the node template to return.", + "firewallPolicy": { + "description": "Name of the firewall policy to update.", "location": "path", "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", "required": true, "type": "string" }, + "priority": { + "description": "The priority of the rule to patch.", + "format": "int32", + "location": "query", + "type": "integer" + }, "project": { "description": "Project ID for this request.", "location": "path", @@ -17695,37 +19407,43 @@ "required": true, "type": "string" }, - "region": { - "description": "The name of the region for this request.", - "location": "path", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "required": true, + "requestId": { + "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).", + "location": "query", "type": "string" } }, - "path": "projects/{project}/regions/{region}/nodeTemplates/{nodeTemplate}", + "path": "projects/{project}/global/firewallPolicies/{firewallPolicy}/patchPacketMirroringRule", + "request": { + "$ref": "FirewallPolicyRule" + }, "response": { - "$ref": "NodeTemplate" + "$ref": "Operation" }, "scopes": [ "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" + "https://www.googleapis.com/auth/compute" ] }, - "getIamPolicy": { - "description": "Gets the access control policy for a resource. May be empty if no such policy or resource exists.", - "flatPath": "projects/{project}/regions/{region}/nodeTemplates/{resource}/getIamPolicy", - "httpMethod": "GET", - "id": "compute.nodeTemplates.getIamPolicy", + "patchRule": { + "description": "Patches a rule of the specified priority.", + "flatPath": "projects/{project}/global/firewallPolicies/{firewallPolicy}/patchRule", + "httpMethod": "POST", + "id": "compute.networkFirewallPolicies.patchRule", "parameterOrder": [ "project", - "region", - "resource" + "firewallPolicy" ], "parameters": { - "optionsRequestedPolicyVersion": { - "description": "Requested IAM Policy version.", + "firewallPolicy": { + "description": "Name of the firewall policy to update.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "required": true, + "type": "string" + }, + "priority": { + "description": "The priority of the rule to patch.", "format": "int32", "location": "query", "type": "integer" @@ -17737,65 +19455,60 @@ "required": true, "type": "string" }, - "region": { - "description": "The name of the region for this request.", - "location": "path", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "required": true, - "type": "string" - }, - "resource": { - "description": "Name or id of the resource for this request.", - "location": "path", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "required": true, + "requestId": { + "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).", + "location": "query", "type": "string" } }, - "path": "projects/{project}/regions/{region}/nodeTemplates/{resource}/getIamPolicy", + "path": "projects/{project}/global/firewallPolicies/{firewallPolicy}/patchRule", + "request": { + "$ref": "FirewallPolicyRule" + }, "response": { - "$ref": "Policy" + "$ref": "Operation" }, "scopes": [ "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" + "https://www.googleapis.com/auth/compute" ] }, - "insert": { - "description": "Creates a NodeTemplate resource in the specified project using the data included in the request.", - "flatPath": "projects/{project}/regions/{region}/nodeTemplates", + "removeAssociation": { + "description": "Removes an association for the specified firewall policy.", + "flatPath": "projects/{project}/global/firewallPolicies/{firewallPolicy}/removeAssociation", "httpMethod": "POST", - "id": "compute.nodeTemplates.insert", + "id": "compute.networkFirewallPolicies.removeAssociation", "parameterOrder": [ "project", - "region" + "firewallPolicy" ], "parameters": { - "project": { - "description": "Project ID for this request.", + "firewallPolicy": { + "description": "Name of the firewall policy to update.", "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])?))", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", "required": true, "type": "string" }, - "region": { - "description": "The name of the region for this request.", + "name": { + "description": "Name for the attachment that will be removed.", + "location": "query", + "type": "string" + }, + "project": { + "description": "Project ID for this request.", "location": "path", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "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. 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).", + "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).", "location": "query", "type": "string" } }, - "path": "projects/{project}/regions/{region}/nodeTemplates", - "request": { - "$ref": "NodeTemplate" - }, + "path": "projects/{project}/global/firewallPolicies/{firewallPolicy}/removeAssociation", "response": { "$ref": "Operation" }, @@ -17804,39 +19517,29 @@ "https://www.googleapis.com/auth/compute" ] }, - "list": { - "description": "Retrieves a list of node templates available to the specified project.", - "flatPath": "projects/{project}/regions/{region}/nodeTemplates", - "httpMethod": "GET", - "id": "compute.nodeTemplates.list", + "removePacketMirroringRule": { + "description": "Deletes a packet mirroring rule of the specified priority.", + "flatPath": "projects/{project}/global/firewallPolicies/{firewallPolicy}/removePacketMirroringRule", + "httpMethod": "POST", + "id": "compute.networkFirewallPolicies.removePacketMirroringRule", "parameterOrder": [ "project", - "region" + "firewallPolicy" ], "parameters": { - "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` 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) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.", - "location": "query", + "firewallPolicy": { + "description": "Name of the firewall policy to update.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "required": true, "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", + "priority": { + "description": "The priority of the rule to remove from the firewall policy.", + "format": "int32", "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. 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.", - "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", @@ -17844,82 +19547,73 @@ "required": true, "type": "string" }, - "region": { - "description": "The name of the region for this request.", - "location": "path", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "required": true, - "type": "string" - }, - "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", + "requestId": { + "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).", "location": "query", - "type": "boolean" + "type": "string" } }, - "path": "projects/{project}/regions/{region}/nodeTemplates", + "path": "projects/{project}/global/firewallPolicies/{firewallPolicy}/removePacketMirroringRule", "response": { - "$ref": "NodeTemplateList" + "$ref": "Operation" }, "scopes": [ "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" + "https://www.googleapis.com/auth/compute" ] }, - "setIamPolicy": { - "description": "Sets the access control policy on the specified resource. Replaces any existing policy.", - "flatPath": "projects/{project}/regions/{region}/nodeTemplates/{resource}/setIamPolicy", + "removeRule": { + "description": "Deletes a rule of the specified priority.", + "flatPath": "projects/{project}/global/firewallPolicies/{firewallPolicy}/removeRule", "httpMethod": "POST", - "id": "compute.nodeTemplates.setIamPolicy", + "id": "compute.networkFirewallPolicies.removeRule", "parameterOrder": [ "project", - "region", - "resource" + "firewallPolicy" ], "parameters": { - "project": { - "description": "Project ID for this request.", + "firewallPolicy": { + "description": "Name of the firewall policy to update.", "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])?))", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", "required": true, "type": "string" }, - "region": { - "description": "The name of the region for this request.", + "priority": { + "description": "The priority of the rule to remove from the firewall policy.", + "format": "int32", + "location": "query", + "type": "integer" + }, + "project": { + "description": "Project ID for this request.", "location": "path", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "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" }, - "resource": { - "description": "Name or id of the resource for this request.", - "location": "path", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "required": true, + "requestId": { + "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).", + "location": "query", "type": "string" } }, - "path": "projects/{project}/regions/{region}/nodeTemplates/{resource}/setIamPolicy", - "request": { - "$ref": "RegionSetPolicyRequest" - }, + "path": "projects/{project}/global/firewallPolicies/{firewallPolicy}/removeRule", "response": { - "$ref": "Policy" + "$ref": "Operation" }, "scopes": [ "https://www.googleapis.com/auth/cloud-platform", "https://www.googleapis.com/auth/compute" ] }, - "testIamPermissions": { - "description": "Returns permissions that a caller has on the specified resource.", - "flatPath": "projects/{project}/regions/{region}/nodeTemplates/{resource}/testIamPermissions", + "setIamPolicy": { + "description": "Sets the access control policy on the specified resource.\nReplaces any existing policy.", + "flatPath": "projects/{project}/global/firewallPolicies/{resource}/setIamPolicy", "httpMethod": "POST", - "id": "compute.nodeTemplates.testIamPermissions", + "id": "compute.networkFirewallPolicies.setIamPolicy", "parameterOrder": [ "project", - "region", "resource" ], "parameters": { @@ -17930,75 +19624,36 @@ "required": true, "type": "string" }, - "region": { - "description": "The name of the region for this request.", - "location": "path", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "required": true, - "type": "string" - }, "resource": { "description": "Name or id of the resource for this request.", "location": "path", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", "required": true, "type": "string" } }, - "path": "projects/{project}/regions/{region}/nodeTemplates/{resource}/testIamPermissions", + "path": "projects/{project}/global/firewallPolicies/{resource}/setIamPolicy", "request": { - "$ref": "TestPermissionsRequest" + "$ref": "GlobalSetPolicyRequest" }, "response": { - "$ref": "TestPermissionsResponse" + "$ref": "Policy" }, "scopes": [ "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" + "https://www.googleapis.com/auth/compute" ] - } - } - }, - "nodeTypes": { - "methods": { - "aggregatedList": { - "description": "Retrieves an aggregated list of node types. To prevent failure, Google recommends that you set the `returnPartialSuccess` parameter to `true`.", - "flatPath": "projects/{project}/aggregated/nodeTypes", - "httpMethod": "GET", - "id": "compute.nodeTypes.aggregatedList", + }, + "testIamPermissions": { + "description": "Returns permissions that a caller has on the specified resource.", + "flatPath": "projects/{project}/global/firewallPolicies/{resource}/testIamPermissions", + "httpMethod": "POST", + "id": "compute.networkFirewallPolicies.testIamPermissions", "parameterOrder": [ - "project" + "project", + "resource" ], "parameters": { - "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` 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) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.", - "location": "query", - "type": "string" - }, - "includeAllScopes": { - "description": "Indicates whether every visible scope for each scope type (zone, region, global) should be included in the response. For new resource types added after this field, the flag has no effect as new resource types will always include every visible scope for each scope type in response. For resource types which predate this field, if this flag is omitted or false, only scopes of the scope types where the resource type is expected to be found will be included.", - "location": "query", - "type": "boolean" - }, - "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. 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.", - "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", @@ -18006,41 +19661,43 @@ "required": true, "type": "string" }, - "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", - "location": "query", - "type": "boolean" - }, - "serviceProjectNumber": { - "description": "The Shared VPC service project id or service project number for which aggregated list request is invoked for subnetworks list-usable api.", - "format": "int64", - "location": "query", + "resource": { + "description": "Name or id of the resource for this request.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "required": true, "type": "string" } }, - "path": "projects/{project}/aggregated/nodeTypes", + "path": "projects/{project}/global/firewallPolicies/{resource}/testIamPermissions", + "request": { + "$ref": "TestPermissionsRequest" + }, "response": { - "$ref": "NodeTypeAggregatedList" + "$ref": "TestPermissionsResponse" }, "scopes": [ "https://www.googleapis.com/auth/cloud-platform", "https://www.googleapis.com/auth/compute", "https://www.googleapis.com/auth/compute.readonly" ] - }, + } + } + }, + "networkProfiles": { + "methods": { "get": { - "description": "Returns the specified node type.", - "flatPath": "projects/{project}/zones/{zone}/nodeTypes/{nodeType}", + "description": "Returns the specified network profile.", + "flatPath": "projects/{project}/global/networkProfiles/{networkProfile}", "httpMethod": "GET", - "id": "compute.nodeTypes.get", + "id": "compute.networkProfiles.get", "parameterOrder": [ "project", - "zone", - "nodeType" + "networkProfile" ], "parameters": { - "nodeType": { - "description": "Name of the node type to return.", + "networkProfile": { + "description": "Name of the network profile to return.", "location": "path", "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", "required": true, @@ -18052,18 +19709,11 @@ "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" - }, - "zone": { - "description": "The name of the zone for this request.", - "location": "path", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "required": true, - "type": "string" } }, - "path": "projects/{project}/zones/{zone}/nodeTypes/{nodeType}", + "path": "projects/{project}/global/networkProfiles/{networkProfile}", "response": { - "$ref": "NodeType" + "$ref": "NetworkProfile" }, "scopes": [ "https://www.googleapis.com/auth/cloud-platform", @@ -18072,35 +19722,34 @@ ] }, "list": { - "description": "Retrieves a list of node types available to the specified project.", - "flatPath": "projects/{project}/zones/{zone}/nodeTypes", + "description": "Retrieves a list of network profiles available to the specified\nproject.", + "flatPath": "projects/{project}/global/networkProfiles", "httpMethod": "GET", - "id": "compute.nodeTypes.list", + "id": "compute.networkProfiles.list", "parameterOrder": [ - "project", - "zone" + "project" ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` 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) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.", + "description": "A filter expression that filters resources listed in the response. Most\nCompute resources support two types of filter expressions:\nexpressions that support regular expressions and expressions that follow\nAPI improvement proposal AIP-160.\nThese two types of filter expressions cannot be mixed in one request.\n\nIf you want to use AIP-160, your expression must specify the field name, an\noperator, and the value that you want to use for filtering. The value\nmust be a string, a number, or a boolean. The operator\nmust be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`.\n\nFor example, if you are filtering Compute Engine instances, you can\nexclude instances named `example-instance` by specifying\n`name != example-instance`.\n\nThe `:*` comparison can be used to test whether a key has been defined.\nFor example, to find all objects with `owner` label use:\n```\nlabels.owner:*\n```\n\nYou can also filter nested fields. For example, you could specify\n`scheduling.automaticRestart = false` to include instances only\nif they are not scheduled for automatic restarts. You can use filtering\non nested fields to filter based onresource labels.\n\nTo filter on multiple expressions, provide each separate expression within\nparentheses. For example:\n```\n(scheduling.automaticRestart = true)\n(cpuPlatform = \"Intel Skylake\")\n```\nBy default, each expression is an `AND` expression. However, you\ncan include `AND` and `OR` expressions explicitly.\nFor example:\n```\n(cpuPlatform = \"Intel Skylake\") OR\n(cpuPlatform = \"Intel Broadwell\") AND\n(scheduling.automaticRestart = true)\n```\n\nIf you want to use a regular expression, use the `eq` (equal) or `ne`\n(not equal) operator against a single un-parenthesized expression with or\nwithout quotes or against multiple parenthesized expressions. Examples:\n\n`fieldname eq unquoted literal`\n`fieldname eq 'single quoted literal'`\n`fieldname eq \"double quoted literal\"`\n`(fieldname1 eq literal) (fieldname2 ne \"literal\")`\n\nThe literal value is interpreted as a regular expression using GoogleRE2 library syntax.\nThe literal value must match the entire field.\n\nFor example, to filter for instances that do not end with name \"instance\",\nyou would use `name ne .*instance`.\n\nYou cannot combine constraints on multiple fields using regular\nexpressions.", "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`)", + "description": "The maximum number of results per page that should be returned.\nIf the number of available results is larger than `maxResults`,\nCompute Engine returns a `nextPageToken` that can be used to get\nthe next page of results in subsequent list requests. Acceptable values are\n`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. 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.", + "description": "Sorts list results by a certain order. By default, results\nare returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation\ntimestamp using `orderBy=\"creationTimestamp desc\"`. This sorts\nresults based on the `creationTimestamp` field in\nreverse chronological order (newest result first). Use this to sort\nresources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or\n`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.", + "description": "Specifies a page token to use. Set `pageToken` to the\n`nextPageToken` returned by a previous list request to get\nthe next page of results.", "location": "query", "type": "string" }, @@ -18112,21 +19761,14 @@ "type": "string" }, "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", + "description": "Opt-in for partial success behavior which provides partial results in case\nof failure. The default value is false.\n\nFor example, when partial success behavior is enabled, aggregatedList for a\nsingle zone scope either returns all resources in the zone or no resources,\nwith an error code.", "location": "query", "type": "boolean" - }, - "zone": { - "description": "The name of the zone for this request.", - "location": "path", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "required": true, - "type": "string" } }, - "path": "projects/{project}/zones/{zone}/nodeTypes", + "path": "projects/{project}/global/networkProfiles", "response": { - "$ref": "NodeTypeList" + "$ref": "NetworkProfilesListResponse" }, "scopes": [ "https://www.googleapis.com/auth/cloud-platform", @@ -18136,44 +19778,66 @@ } } }, - "packetMirrorings": { + "networks": { "methods": { - "aggregatedList": { - "description": "Retrieves an aggregated list of packetMirrorings. To prevent failure, Google recommends that you set the `returnPartialSuccess` parameter to `true`.", - "flatPath": "projects/{project}/aggregated/packetMirrorings", - "httpMethod": "GET", - "id": "compute.packetMirrorings.aggregatedList", + "addPeering": { + "description": "Adds a peering to the specified network.", + "flatPath": "projects/{project}/global/networks/{network}/addPeering", + "httpMethod": "POST", + "id": "compute.networks.addPeering", "parameterOrder": [ - "project" + "project", + "network" ], "parameters": { - "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` 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) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.", - "location": "query", + "network": { + "description": "Name of the network resource to add peering to.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "required": true, "type": "string" }, - "includeAllScopes": { - "description": "Indicates whether every visible scope for each scope type (zone, region, global) should be included in the response. For new resource types added after this field, the flag has no effect as new resource types will always include every visible scope for each scope type in response. For resource types which predate this field, if this flag is omitted or false, only scopes of the scope types where the resource type is expected to be found will be included.", - "location": "query", - "type": "boolean" - }, - "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. 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.", - "location": "query", + "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" }, - "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.", + "requestId": { + "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).", "location": "query", "type": "string" + } + }, + "path": "projects/{project}/global/networks/{network}/addPeering", + "request": { + "$ref": "NetworksAddPeeringRequest" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ] + }, + "cancelRequestRemovePeering": { + "description": "Cancel requests to remove a peering from the specified network. Applicable\nonly for PeeringConnection with update_strategy=CONSENSUS. Cancels a\nrequest to remove a peering from the specified network.", + "flatPath": "projects/{project}/global/networks/{network}/cancelRequestRemovePeering", + "httpMethod": "POST", + "id": "compute.networks.cancelRequestRemovePeering", + "parameterOrder": [ + "project", + "network" + ], + "parameters": { + "network": { + "description": "Name of the network resource to remove peering from.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "required": true, + "type": "string" }, "project": { "description": "Project ID for this request.", @@ -18182,41 +19846,36 @@ "required": true, "type": "string" }, - "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", - "location": "query", - "type": "boolean" - }, - "serviceProjectNumber": { - "description": "The Shared VPC service project id or service project number for which aggregated list request is invoked for subnetworks list-usable api.", - "format": "int64", + "requestId": { + "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).", "location": "query", "type": "string" } }, - "path": "projects/{project}/aggregated/packetMirrorings", + "path": "projects/{project}/global/networks/{network}/cancelRequestRemovePeering", + "request": { + "$ref": "NetworksCancelRequestRemovePeeringRequest" + }, "response": { - "$ref": "PacketMirroringAggregatedList" + "$ref": "Operation" }, "scopes": [ "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" + "https://www.googleapis.com/auth/compute" ] }, "delete": { - "description": "Deletes the specified PacketMirroring resource.", - "flatPath": "projects/{project}/regions/{region}/packetMirrorings/{packetMirroring}", + "description": "Deletes the specified network.", + "flatPath": "projects/{project}/global/networks/{network}", "httpMethod": "DELETE", - "id": "compute.packetMirrorings.delete", + "id": "compute.networks.delete", "parameterOrder": [ "project", - "region", - "packetMirroring" + "network" ], "parameters": { - "packetMirroring": { - "description": "Name of the PacketMirroring resource to delete.", + "network": { + "description": "Name of the network to delete.", "location": "path", "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", "required": true, @@ -18229,20 +19888,13 @@ "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" - }, "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. 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).", + "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).", "location": "query", "type": "string" } }, - "path": "projects/{project}/regions/{region}/packetMirrorings/{packetMirroring}", + "path": "projects/{project}/global/networks/{network}", "response": { "$ref": "Operation" }, @@ -18252,18 +19904,17 @@ ] }, "get": { - "description": "Returns the specified PacketMirroring resource.", - "flatPath": "projects/{project}/regions/{region}/packetMirrorings/{packetMirroring}", + "description": "Returns the specified network.", + "flatPath": "projects/{project}/global/networks/{network}", "httpMethod": "GET", - "id": "compute.packetMirrorings.get", + "id": "compute.networks.get", "parameterOrder": [ "project", - "region", - "packetMirroring" + "network" ], "parameters": { - "packetMirroring": { - "description": "Name of the PacketMirroring resource to return.", + "network": { + "description": "Name of the network to return.", "location": "path", "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", "required": true, @@ -18275,18 +19926,46 @@ "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.", + } + }, + "path": "projects/{project}/global/networks/{network}", + "response": { + "$ref": "Network" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ] + }, + "getEffectiveFirewalls": { + "description": "Returns the effective firewalls on a given network.", + "flatPath": "projects/{project}/global/networks/{network}/getEffectiveFirewalls", + "httpMethod": "GET", + "id": "compute.networks.getEffectiveFirewalls", + "parameterOrder": [ + "project", + "network" + ], + "parameters": { + "network": { + "description": "Name of the network for this request.", "location": "path", "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", "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" } }, - "path": "projects/{project}/regions/{region}/packetMirrorings/{packetMirroring}", + "path": "projects/{project}/global/networks/{network}/getEffectiveFirewalls", "response": { - "$ref": "PacketMirroring" + "$ref": "NetworksGetEffectiveFirewallsResponse" }, "scopes": [ "https://www.googleapis.com/auth/cloud-platform", @@ -18295,13 +19974,12 @@ ] }, "insert": { - "description": "Creates a PacketMirroring resource in the specified project and region using the data included in the request.", - "flatPath": "projects/{project}/regions/{region}/packetMirrorings", + "description": "Creates a network in the specified project using the data included\nin the request.", + "flatPath": "projects/{project}/global/networks", "httpMethod": "POST", - "id": "compute.packetMirrorings.insert", + "id": "compute.networks.insert", "parameterOrder": [ - "project", - "region" + "project" ], "parameters": { "project": { @@ -18311,22 +19989,15 @@ "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" - }, "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. 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).", + "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).", "location": "query", "type": "string" } }, - "path": "projects/{project}/regions/{region}/packetMirrorings", + "path": "projects/{project}/global/networks", "request": { - "$ref": "PacketMirroring" + "$ref": "Network" }, "response": { "$ref": "Operation" @@ -18337,35 +20008,34 @@ ] }, "list": { - "description": "Retrieves a list of PacketMirroring resources available to the specified project and region.", - "flatPath": "projects/{project}/regions/{region}/packetMirrorings", + "description": "Retrieves the list of networks available to the specified project.", + "flatPath": "projects/{project}/global/networks", "httpMethod": "GET", - "id": "compute.packetMirrorings.list", + "id": "compute.networks.list", "parameterOrder": [ - "project", - "region" + "project" ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` 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) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.", + "description": "A filter expression that filters resources listed in the response. Most\nCompute resources support two types of filter expressions:\nexpressions that support regular expressions and expressions that follow\nAPI improvement proposal AIP-160.\nThese two types of filter expressions cannot be mixed in one request.\n\nIf you want to use AIP-160, your expression must specify the field name, an\noperator, and the value that you want to use for filtering. The value\nmust be a string, a number, or a boolean. The operator\nmust be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`.\n\nFor example, if you are filtering Compute Engine instances, you can\nexclude instances named `example-instance` by specifying\n`name != example-instance`.\n\nThe `:*` comparison can be used to test whether a key has been defined.\nFor example, to find all objects with `owner` label use:\n```\nlabels.owner:*\n```\n\nYou can also filter nested fields. For example, you could specify\n`scheduling.automaticRestart = false` to include instances only\nif they are not scheduled for automatic restarts. You can use filtering\non nested fields to filter based onresource labels.\n\nTo filter on multiple expressions, provide each separate expression within\nparentheses. For example:\n```\n(scheduling.automaticRestart = true)\n(cpuPlatform = \"Intel Skylake\")\n```\nBy default, each expression is an `AND` expression. However, you\ncan include `AND` and `OR` expressions explicitly.\nFor example:\n```\n(cpuPlatform = \"Intel Skylake\") OR\n(cpuPlatform = \"Intel Broadwell\") AND\n(scheduling.automaticRestart = true)\n```\n\nIf you want to use a regular expression, use the `eq` (equal) or `ne`\n(not equal) operator against a single un-parenthesized expression with or\nwithout quotes or against multiple parenthesized expressions. Examples:\n\n`fieldname eq unquoted literal`\n`fieldname eq 'single quoted literal'`\n`fieldname eq \"double quoted literal\"`\n`(fieldname1 eq literal) (fieldname2 ne \"literal\")`\n\nThe literal value is interpreted as a regular expression using GoogleRE2 library syntax.\nThe literal value must match the entire field.\n\nFor example, to filter for instances that do not end with name \"instance\",\nyou would use `name ne .*instance`.\n\nYou cannot combine constraints on multiple fields using regular\nexpressions.", "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`)", + "description": "The maximum number of results per page that should be returned.\nIf the number of available results is larger than `maxResults`,\nCompute Engine returns a `nextPageToken` that can be used to get\nthe next page of results in subsequent list requests. Acceptable values are\n`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. 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.", + "description": "Sorts list results by a certain order. By default, results\nare returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation\ntimestamp using `orderBy=\"creationTimestamp desc\"`. This sorts\nresults based on the `creationTimestamp` field in\nreverse chronological order (newest result first). Use this to sort\nresources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or\n`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.", + "description": "Specifies a page token to use. Set `pageToken` to the\n`nextPageToken` returned by a previous list request to get\nthe next page of results.", "location": "query", "type": "string" }, @@ -18376,22 +20046,15 @@ "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" - }, "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", + "description": "Opt-in for partial success behavior which provides partial results in case\nof failure. The default value is false.\n\nFor example, when partial success behavior is enabled, aggregatedList for a\nsingle zone scope either returns all resources in the zone or no resources,\nwith an error code.", "location": "query", "type": "boolean" } }, - "path": "projects/{project}/regions/{region}/packetMirrorings", + "path": "projects/{project}/global/networks", "response": { - "$ref": "PacketMirroringList" + "$ref": "NetworkList" }, "scopes": [ "https://www.googleapis.com/auth/cloud-platform", @@ -18399,24 +20062,64 @@ "https://www.googleapis.com/auth/compute.readonly" ] }, - "patch": { - "description": "Patches the specified PacketMirroring resource with the data included in the request. This method supports PATCH semantics and uses JSON merge patch format and processing rules.", - "flatPath": "projects/{project}/regions/{region}/packetMirrorings/{packetMirroring}", - "httpMethod": "PATCH", - "id": "compute.packetMirrorings.patch", + "listPeeringRoutes": { + "description": "Lists the peering routes exchanged over peering connection.", + "flatPath": "projects/{project}/global/networks/{network}/listPeeringRoutes", + "httpMethod": "GET", + "id": "compute.networks.listPeeringRoutes", "parameterOrder": [ "project", - "region", - "packetMirroring" + "network" ], "parameters": { - "packetMirroring": { - "description": "Name of the PacketMirroring resource to patch.", + "direction": { + "description": "The direction of the exchanged routes.", + "enum": [ + "INCOMING", + "OUTGOING" + ], + "enumDescriptions": [ + "For routes exported from peer network.", + "For routes exported from local network." + ], + "location": "query", + "type": "string" + }, + "filter": { + "description": "A filter expression that filters resources listed in the response. Most\nCompute resources support two types of filter expressions:\nexpressions that support regular expressions and expressions that follow\nAPI improvement proposal AIP-160.\nThese two types of filter expressions cannot be mixed in one request.\n\nIf you want to use AIP-160, your expression must specify the field name, an\noperator, and the value that you want to use for filtering. The value\nmust be a string, a number, or a boolean. The operator\nmust be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`.\n\nFor example, if you are filtering Compute Engine instances, you can\nexclude instances named `example-instance` by specifying\n`name != example-instance`.\n\nThe `:*` comparison can be used to test whether a key has been defined.\nFor example, to find all objects with `owner` label use:\n```\nlabels.owner:*\n```\n\nYou can also filter nested fields. For example, you could specify\n`scheduling.automaticRestart = false` to include instances only\nif they are not scheduled for automatic restarts. You can use filtering\non nested fields to filter based onresource labels.\n\nTo filter on multiple expressions, provide each separate expression within\nparentheses. For example:\n```\n(scheduling.automaticRestart = true)\n(cpuPlatform = \"Intel Skylake\")\n```\nBy default, each expression is an `AND` expression. However, you\ncan include `AND` and `OR` expressions explicitly.\nFor example:\n```\n(cpuPlatform = \"Intel Skylake\") OR\n(cpuPlatform = \"Intel Broadwell\") AND\n(scheduling.automaticRestart = true)\n```\n\nIf you want to use a regular expression, use the `eq` (equal) or `ne`\n(not equal) operator against a single un-parenthesized expression with or\nwithout quotes or against multiple parenthesized expressions. Examples:\n\n`fieldname eq unquoted literal`\n`fieldname eq 'single quoted literal'`\n`fieldname eq \"double quoted literal\"`\n`(fieldname1 eq literal) (fieldname2 ne \"literal\")`\n\nThe literal value is interpreted as a regular expression using GoogleRE2 library syntax.\nThe literal value must match the entire field.\n\nFor example, to filter for instances that do not end with name \"instance\",\nyou would use `name ne .*instance`.\n\nYou cannot combine constraints on multiple fields using regular\nexpressions.", + "location": "query", + "type": "string" + }, + "maxResults": { + "default": "500", + "description": "The maximum number of results per page that should be returned.\nIf the number of available results is larger than `maxResults`,\nCompute Engine returns a `nextPageToken` that can be used to get\nthe next page of results in subsequent list requests. Acceptable values are\n`0` to `500`, inclusive. (Default: `500`)", + "format": "uint32", + "location": "query", + "minimum": "0", + "type": "integer" + }, + "network": { + "description": "Name of the network for this request.", "location": "path", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", "required": true, "type": "string" }, + "orderBy": { + "description": "Sorts list results by a certain order. By default, results\nare returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation\ntimestamp using `orderBy=\"creationTimestamp desc\"`. This sorts\nresults based on the `creationTimestamp` field in\nreverse chronological order (newest result first). Use this to sort\nresources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or\n`creationTimestamp desc` is supported.", + "location": "query", + "type": "string" + }, + "pageToken": { + "description": "Specifies a page token to use. Set `pageToken` to the\n`nextPageToken` returned by a previous list request to get\nthe next page of results.", + "location": "query", + "type": "string" + }, + "peeringName": { + "description": "The response will show routes exchanged over the given peering connection.", + "location": "query", + "type": "string" + }, "project": { "description": "Project ID for this request.", "location": "path", @@ -18425,89 +20128,85 @@ "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, + "description": "The region of the request. The response will include all subnet routes,\nstatic routes and dynamic routes in the region.", + "location": "query", "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. 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).", + "returnPartialSuccess": { + "description": "Opt-in for partial success behavior which provides partial results in case\nof failure. The default value is false.\n\nFor example, when partial success behavior is enabled, aggregatedList for a\nsingle zone scope either returns all resources in the zone or no resources,\nwith an error code.", "location": "query", - "type": "string" + "type": "boolean" } }, - "path": "projects/{project}/regions/{region}/packetMirrorings/{packetMirroring}", - "request": { - "$ref": "PacketMirroring" - }, + "path": "projects/{project}/global/networks/{network}/listPeeringRoutes", "response": { - "$ref": "Operation" + "$ref": "ExchangedPeeringRoutesList" }, "scopes": [ "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" ] }, - "testIamPermissions": { - "description": "Returns permissions that a caller has on the specified resource.", - "flatPath": "projects/{project}/regions/{region}/packetMirrorings/{resource}/testIamPermissions", - "httpMethod": "POST", - "id": "compute.packetMirrorings.testIamPermissions", + "patch": { + "description": "Patches the specified network with the data included in the request.\nOnly routingConfig can be modified.", + "flatPath": "projects/{project}/global/networks/{network}", + "httpMethod": "PATCH", + "id": "compute.networks.patch", "parameterOrder": [ "project", - "region", - "resource" + "network" ], "parameters": { - "project": { - "description": "Project ID for this request.", + "network": { + "description": "Name of the network to update.", "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])?))", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", "required": true, "type": "string" }, - "region": { - "description": "The name of the region for this request.", + "project": { + "description": "Project ID for this request.", "location": "path", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "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" }, - "resource": { - "description": "Name or id of the resource for this request.", - "location": "path", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "required": true, + "requestId": { + "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).", + "location": "query", "type": "string" } }, - "path": "projects/{project}/regions/{region}/packetMirrorings/{resource}/testIamPermissions", + "path": "projects/{project}/global/networks/{network}", "request": { - "$ref": "TestPermissionsRequest" + "$ref": "Network" }, "response": { - "$ref": "TestPermissionsResponse" + "$ref": "Operation" }, "scopes": [ "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" + "https://www.googleapis.com/auth/compute" ] - } - } - }, - "projects": { - "methods": { - "disableXpnHost": { - "description": "Disable this project as a shared VPC host project.", - "flatPath": "projects/{project}/disableXpnHost", + }, + "removePeering": { + "description": "Removes a peering from the specified network.", + "flatPath": "projects/{project}/global/networks/{network}/removePeering", "httpMethod": "POST", - "id": "compute.projects.disableXpnHost", + "id": "compute.networks.removePeering", "parameterOrder": [ - "project" + "project", + "network" ], "parameters": { + "network": { + "description": "Name of the network resource to remove peering from.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "required": true, + "type": "string" + }, "project": { "description": "Project ID for this request.", "location": "path", @@ -18516,12 +20215,15 @@ "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. 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).", + "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).", "location": "query", "type": "string" } }, - "path": "projects/{project}/disableXpnHost", + "path": "projects/{project}/global/networks/{network}/removePeering", + "request": { + "$ref": "NetworksRemovePeeringRequest" + }, "response": { "$ref": "Operation" }, @@ -18530,15 +20232,23 @@ "https://www.googleapis.com/auth/compute" ] }, - "disableXpnResource": { - "description": "Disable a service resource (also known as service project) associated with this host project.", - "flatPath": "projects/{project}/disableXpnResource", + "requestRemovePeering": { + "description": "Requests to remove a peering from the specified network. Applicable only\nfor PeeringConnection with update_strategy=CONSENSUS.", + "flatPath": "projects/{project}/global/networks/{network}/requestRemovePeering", "httpMethod": "POST", - "id": "compute.projects.disableXpnResource", + "id": "compute.networks.requestRemovePeering", "parameterOrder": [ - "project" + "project", + "network" ], "parameters": { + "network": { + "description": "Name of the network resource to remove peering from.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "required": true, + "type": "string" + }, "project": { "description": "Project ID for this request.", "location": "path", @@ -18547,14 +20257,14 @@ "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. 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).", + "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).", "location": "query", "type": "string" } }, - "path": "projects/{project}/disableXpnResource", + "path": "projects/{project}/global/networks/{network}/requestRemovePeering", "request": { - "$ref": "ProjectsDisableXpnResourceRequest" + "$ref": "NetworksRequestRemovePeeringRequest" }, "response": { "$ref": "Operation" @@ -18564,15 +20274,23 @@ "https://www.googleapis.com/auth/compute" ] }, - "enableXpnHost": { - "description": "Enable this project as a shared VPC host project.", - "flatPath": "projects/{project}/enableXpnHost", + "switchToCustomMode": { + "description": "Switches the network mode from auto subnet mode to custom subnet mode.", + "flatPath": "projects/{project}/global/networks/{network}/switchToCustomMode", "httpMethod": "POST", - "id": "compute.projects.enableXpnHost", + "id": "compute.networks.switchToCustomMode", "parameterOrder": [ - "project" + "project", + "network" ], "parameters": { + "network": { + "description": "Name of the network to be updated.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "required": true, + "type": "string" + }, "project": { "description": "Project ID for this request.", "location": "path", @@ -18581,12 +20299,12 @@ "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. 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).", + "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).", "location": "query", "type": "string" } }, - "path": "projects/{project}/enableXpnHost", + "path": "projects/{project}/global/networks/{network}/switchToCustomMode", "response": { "$ref": "Operation" }, @@ -18595,15 +20313,23 @@ "https://www.googleapis.com/auth/compute" ] }, - "enableXpnResource": { - "description": "Enable service resource (a.k.a service project) for a host project, so that subnets in the host project can be used by instances in the service project.", - "flatPath": "projects/{project}/enableXpnResource", - "httpMethod": "POST", - "id": "compute.projects.enableXpnResource", + "updatePeering": { + "description": "Updates the specified network peering with the data included in the\nrequest. You can only modify the NetworkPeering.export_custom_routes field\nand the NetworkPeering.import_custom_routes field.", + "flatPath": "projects/{project}/global/networks/{network}/updatePeering", + "httpMethod": "PATCH", + "id": "compute.networks.updatePeering", "parameterOrder": [ - "project" + "project", + "network" ], "parameters": { + "network": { + "description": "Name of the network resource which the updated peering is belonging to.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "required": true, + "type": "string" + }, "project": { "description": "Project ID for this request.", "location": "path", @@ -18612,14 +20338,14 @@ "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. 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).", + "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).", "location": "query", "type": "string" } }, - "path": "projects/{project}/enableXpnResource", + "path": "projects/{project}/global/networks/{network}/updatePeering", "request": { - "$ref": "ProjectsEnableXpnResourceRequest" + "$ref": "NetworksUpdatePeeringRequest" }, "response": { "$ref": "Operation" @@ -18628,89 +20354,95 @@ "https://www.googleapis.com/auth/cloud-platform", "https://www.googleapis.com/auth/compute" ] - }, - "get": { - "description": "Returns the specified Project resource. To decrease latency for this method, you can optionally omit any unneeded information from the response by using a field mask. This practice is especially recommended for unused quota information (the `quotas` field). To exclude one or more fields, set your request's `fields` query parameter to only include the fields you need. For example, to only include the `id` and `selfLink` fields, add the query parameter `?fields=id,selfLink` to your request.", - "flatPath": "projects/{project}", - "httpMethod": "GET", - "id": "compute.projects.get", + } + } + }, + "nodeGroups": { + "methods": { + "addNodes": { + "description": "Adds specified number of nodes to the node group.", + "flatPath": "projects/{project}/zones/{zone}/nodeGroups/{nodeGroup}/addNodes", + "httpMethod": "POST", + "id": "compute.nodeGroups.addNodes", "parameterOrder": [ - "project" + "project", + "zone", + "nodeGroup" ], "parameters": { - "project": { - "description": "Project ID for this request.", + "nodeGroup": { + "description": "Name of the NodeGroup resource.", "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])?))", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", "required": true, "type": "string" - } - }, - "path": "projects/{project}", - "response": { - "$ref": "Project" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" - ] - }, - "getXpnHost": { - "description": "Gets the shared VPC host project that this project links to. May be empty if no link exists.", - "flatPath": "projects/{project}/getXpnHost", - "httpMethod": "GET", - "id": "compute.projects.getXpnHost", - "parameterOrder": [ - "project" - ], - "parameters": { + }, "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\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).", + "location": "query", + "type": "string" + }, + "zone": { + "description": "The name of the zone for this request.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "required": true, + "type": "string" } }, - "path": "projects/{project}/getXpnHost", + "path": "projects/{project}/zones/{zone}/nodeGroups/{nodeGroup}/addNodes", + "request": { + "$ref": "NodeGroupsAddNodesRequest" + }, "response": { - "$ref": "Project" + "$ref": "Operation" }, "scopes": [ "https://www.googleapis.com/auth/cloud-platform", "https://www.googleapis.com/auth/compute" ] }, - "getXpnResources": { - "description": "Gets service resources (a.k.a service project) associated with this host project.", - "flatPath": "projects/{project}/getXpnResources", + "aggregatedList": { + "description": "Retrieves an aggregated list of node groups.\nNote: use nodeGroups.listNodes for more details about each group.\n\nTo prevent failure, Google recommends that you set the\n`returnPartialSuccess` parameter to `true`.", + "flatPath": "projects/{project}/aggregated/nodeGroups", "httpMethod": "GET", - "id": "compute.projects.getXpnResources", + "id": "compute.nodeGroups.aggregatedList", "parameterOrder": [ "project" ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` 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) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.", + "description": "A filter expression that filters resources listed in the response. Most\nCompute resources support two types of filter expressions:\nexpressions that support regular expressions and expressions that follow\nAPI improvement proposal AIP-160.\nThese two types of filter expressions cannot be mixed in one request.\n\nIf you want to use AIP-160, your expression must specify the field name, an\noperator, and the value that you want to use for filtering. The value\nmust be a string, a number, or a boolean. The operator\nmust be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`.\n\nFor example, if you are filtering Compute Engine instances, you can\nexclude instances named `example-instance` by specifying\n`name != example-instance`.\n\nThe `:*` comparison can be used to test whether a key has been defined.\nFor example, to find all objects with `owner` label use:\n```\nlabels.owner:*\n```\n\nYou can also filter nested fields. For example, you could specify\n`scheduling.automaticRestart = false` to include instances only\nif they are not scheduled for automatic restarts. You can use filtering\non nested fields to filter based onresource labels.\n\nTo filter on multiple expressions, provide each separate expression within\nparentheses. For example:\n```\n(scheduling.automaticRestart = true)\n(cpuPlatform = \"Intel Skylake\")\n```\nBy default, each expression is an `AND` expression. However, you\ncan include `AND` and `OR` expressions explicitly.\nFor example:\n```\n(cpuPlatform = \"Intel Skylake\") OR\n(cpuPlatform = \"Intel Broadwell\") AND\n(scheduling.automaticRestart = true)\n```\n\nIf you want to use a regular expression, use the `eq` (equal) or `ne`\n(not equal) operator against a single un-parenthesized expression with or\nwithout quotes or against multiple parenthesized expressions. Examples:\n\n`fieldname eq unquoted literal`\n`fieldname eq 'single quoted literal'`\n`fieldname eq \"double quoted literal\"`\n`(fieldname1 eq literal) (fieldname2 ne \"literal\")`\n\nThe literal value is interpreted as a regular expression using GoogleRE2 library syntax.\nThe literal value must match the entire field.\n\nFor example, to filter for instances that do not end with name \"instance\",\nyou would use `name ne .*instance`.\n\nYou cannot combine constraints on multiple fields using regular\nexpressions.", "location": "query", "type": "string" }, + "includeAllScopes": { + "description": "Indicates whether every visible scope for each scope type (zone, region,\nglobal) should be included in the response. For new resource types added\nafter this field, the flag has no effect as new resource types will always\ninclude every visible scope for each scope type in response. For resource\ntypes which predate this field, if this flag is omitted or false, only\nscopes of the scope types where the resource type is expected to be found\nwill be included.", + "location": "query", + "type": "boolean" + }, "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`)", + "description": "The maximum number of results per page that should be returned.\nIf the number of available results is larger than `maxResults`,\nCompute Engine returns a `nextPageToken` that can be used to get\nthe next page of results in subsequent list requests. Acceptable values are\n`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. 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.", + "description": "Sorts list results by a certain order. By default, results\nare returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation\ntimestamp using `orderBy=\"creationTimestamp desc\"`. This sorts\nresults based on the `creationTimestamp` field in\nreverse chronological order (newest result first). Use this to sort\nresources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or\n`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.", + "description": "Specifies a page token to use. Set `pageToken` to the\n`nextPageToken` returned by a previous list request to get\nthe next page of results.", "location": "query", "type": "string" }, @@ -18722,50 +20454,43 @@ "type": "string" }, "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", + "description": "Opt-in for partial success behavior which provides partial results in case\nof failure. The default value is false.\n\nFor example, when partial success behavior is enabled, aggregatedList for a\nsingle zone scope either returns all resources in the zone or no resources,\nwith an error code.", "location": "query", "type": "boolean" + }, + "serviceProjectNumber": { + "description": "The Shared VPC service project id or service project number for which\naggregated list request is invoked for subnetworks list-usable api.", + "format": "int64", + "location": "query", + "type": "string" } }, - "path": "projects/{project}/getXpnResources", + "path": "projects/{project}/aggregated/nodeGroups", "response": { - "$ref": "ProjectsGetXpnResources" + "$ref": "NodeGroupAggregatedList" }, "scopes": [ "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" ] }, - "listXpnHosts": { - "description": "Lists all shared VPC host projects visible to the user in an organization.", - "flatPath": "projects/{project}/listXpnHosts", - "httpMethod": "POST", - "id": "compute.projects.listXpnHosts", + "delete": { + "description": "Deletes the specified NodeGroup resource.", + "flatPath": "projects/{project}/zones/{zone}/nodeGroups/{nodeGroup}", + "httpMethod": "DELETE", + "id": "compute.nodeGroups.delete", "parameterOrder": [ - "project" + "project", + "zone", + "nodeGroup" ], "parameters": { - "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` 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) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.", - "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. 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.", - "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", + "nodeGroup": { + "description": "Name of the NodeGroup resource to delete.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "required": true, "type": "string" }, "project": { @@ -18775,33 +20500,46 @@ "required": true, "type": "string" }, - "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", + "requestId": { + "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).", "location": "query", - "type": "boolean" + "type": "string" + }, + "zone": { + "description": "The name of the zone for this request.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "required": true, + "type": "string" } }, - "path": "projects/{project}/listXpnHosts", - "request": { - "$ref": "ProjectsListXpnHostsRequest" - }, + "path": "projects/{project}/zones/{zone}/nodeGroups/{nodeGroup}", "response": { - "$ref": "XpnHostList" + "$ref": "Operation" }, "scopes": [ "https://www.googleapis.com/auth/cloud-platform", "https://www.googleapis.com/auth/compute" ] }, - "moveDisk": { - "description": "Moves a persistent disk from one zone to another.", - "flatPath": "projects/{project}/moveDisk", + "deleteNodes": { + "description": "Deletes specified nodes from the node group.", + "flatPath": "projects/{project}/zones/{zone}/nodeGroups/{nodeGroup}/deleteNodes", "httpMethod": "POST", - "id": "compute.projects.moveDisk", + "id": "compute.nodeGroups.deleteNodes", "parameterOrder": [ - "project" + "project", + "zone", + "nodeGroup" ], "parameters": { + "nodeGroup": { + "description": "Name of the NodeGroup resource whose nodes will be deleted.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "required": true, + "type": "string" + }, "project": { "description": "Project ID for this request.", "location": "path", @@ -18810,14 +20548,21 @@ "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. 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).", + "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).", "location": "query", "type": "string" + }, + "zone": { + "description": "The name of the zone for this request.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "required": true, + "type": "string" } }, - "path": "projects/{project}/moveDisk", + "path": "projects/{project}/zones/{zone}/nodeGroups/{nodeGroup}/deleteNodes", "request": { - "$ref": "DiskMoveRequest" + "$ref": "NodeGroupsDeleteNodesRequest" }, "response": { "$ref": "Operation" @@ -18827,16 +20572,24 @@ "https://www.googleapis.com/auth/compute" ] }, - "moveInstance": { - "deprecated": true, - "description": "Moves an instance and its attached persistent disks from one zone to another. *Note*: Moving VMs or disks by using this method might cause unexpected behavior. For more information, see the [known issue](/compute/docs/troubleshooting/known-issues#moving_vms_or_disks_using_the_moveinstance_api_or_the_causes_unexpected_behavior). [Deprecated] This method is deprecated. See [moving instance across zones](/compute/docs/instances/moving-instance-across-zones) instead.", - "flatPath": "projects/{project}/moveInstance", - "httpMethod": "POST", - "id": "compute.projects.moveInstance", + "get": { + "description": "Returns the specified NodeGroup. Get a list of available NodeGroups\nby making a list() request.\nNote: the \"nodes\" field should not be used. Use nodeGroups.listNodes\ninstead.", + "flatPath": "projects/{project}/zones/{zone}/nodeGroups/{nodeGroup}", + "httpMethod": "GET", + "id": "compute.nodeGroups.get", "parameterOrder": [ - "project" + "project", + "zone", + "nodeGroup" ], "parameters": { + "nodeGroup": { + "description": "Name of the node group to return.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "required": true, + "type": "string" + }, "project": { "description": "Project ID for this request.", "location": "path", @@ -18844,33 +20597,41 @@ "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. 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).", - "location": "query", + "zone": { + "description": "The name of the zone for this request.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "required": true, "type": "string" } }, - "path": "projects/{project}/moveInstance", - "request": { - "$ref": "InstanceMoveRequest" - }, + "path": "projects/{project}/zones/{zone}/nodeGroups/{nodeGroup}", "response": { - "$ref": "Operation" + "$ref": "NodeGroup" }, "scopes": [ "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" ] }, - "setCloudArmorTier": { - "description": "Sets the Cloud Armor tier of the project. To set ENTERPRISE or above the billing account of the project must be subscribed to Cloud Armor Enterprise. See Subscribing to Cloud Armor Enterprise for more information.", - "flatPath": "projects/{project}/setCloudArmorTier", - "httpMethod": "POST", - "id": "compute.projects.setCloudArmorTier", + "getIamPolicy": { + "description": "Gets the access control policy for a resource. May be empty if no such\npolicy or resource exists.", + "flatPath": "projects/{project}/zones/{zone}/nodeGroups/{resource}/getIamPolicy", + "httpMethod": "GET", + "id": "compute.nodeGroups.getIamPolicy", "parameterOrder": [ - "project" + "project", + "zone", + "resource" ], "parameters": { + "optionsRequestedPolicyVersion": { + "description": "Requested IAM Policy version.", + "format": "int32", + "location": "query", + "type": "integer" + }, "project": { "description": "Project ID for this request.", "location": "path", @@ -18878,33 +20639,49 @@ "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. 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).", - "location": "query", + "resource": { + "description": "Name or id of the resource for this request.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "required": true, + "type": "string" + }, + "zone": { + "description": "The name of the zone for this request.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "required": true, "type": "string" } }, - "path": "projects/{project}/setCloudArmorTier", - "request": { - "$ref": "ProjectsSetCloudArmorTierRequest" - }, + "path": "projects/{project}/zones/{zone}/nodeGroups/{resource}/getIamPolicy", "response": { - "$ref": "Operation" + "$ref": "Policy" }, "scopes": [ "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" ] }, - "setCommonInstanceMetadata": { - "description": "Sets metadata common to all instances within the specified project using the data included in the request.", - "flatPath": "projects/{project}/setCommonInstanceMetadata", + "insert": { + "description": "Creates a NodeGroup resource in the specified project using the data\nincluded in the request.", + "flatPath": "projects/{project}/zones/{zone}/nodeGroups", "httpMethod": "POST", - "id": "compute.projects.setCommonInstanceMetadata", + "id": "compute.nodeGroups.insert", "parameterOrder": [ - "project" + "project", + "zone", + "initialNodeCount" ], "parameters": { + "initialNodeCount": { + "description": "Initial count of nodes in the node group.", + "format": "int32", + "location": "query", + "required": true, + "type": "integer" + }, "project": { "description": "Project ID for this request.", "location": "path", @@ -18913,14 +20690,21 @@ "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. 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).", + "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).", "location": "query", "type": "string" + }, + "zone": { + "description": "The name of the zone for this request.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "required": true, + "type": "string" } }, - "path": "projects/{project}/setCommonInstanceMetadata", + "path": "projects/{project}/zones/{zone}/nodeGroups", "request": { - "$ref": "Metadata" + "$ref": "NodeGroup" }, "response": { "$ref": "Operation" @@ -18930,15 +20714,39 @@ "https://www.googleapis.com/auth/compute" ] }, - "setDefaultNetworkTier": { - "description": "Sets the default network tier of the project. The default network tier is used when an address/forwardingRule/instance is created without specifying the network tier field.", - "flatPath": "projects/{project}/setDefaultNetworkTier", - "httpMethod": "POST", - "id": "compute.projects.setDefaultNetworkTier", + "list": { + "description": "Retrieves a list of node groups available to the specified project.\nNote: use nodeGroups.listNodes for more details about each group.", + "flatPath": "projects/{project}/zones/{zone}/nodeGroups", + "httpMethod": "GET", + "id": "compute.nodeGroups.list", "parameterOrder": [ - "project" + "project", + "zone" ], "parameters": { + "filter": { + "description": "A filter expression that filters resources listed in the response. Most\nCompute resources support two types of filter expressions:\nexpressions that support regular expressions and expressions that follow\nAPI improvement proposal AIP-160.\nThese two types of filter expressions cannot be mixed in one request.\n\nIf you want to use AIP-160, your expression must specify the field name, an\noperator, and the value that you want to use for filtering. The value\nmust be a string, a number, or a boolean. The operator\nmust be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`.\n\nFor example, if you are filtering Compute Engine instances, you can\nexclude instances named `example-instance` by specifying\n`name != example-instance`.\n\nThe `:*` comparison can be used to test whether a key has been defined.\nFor example, to find all objects with `owner` label use:\n```\nlabels.owner:*\n```\n\nYou can also filter nested fields. For example, you could specify\n`scheduling.automaticRestart = false` to include instances only\nif they are not scheduled for automatic restarts. You can use filtering\non nested fields to filter based onresource labels.\n\nTo filter on multiple expressions, provide each separate expression within\nparentheses. For example:\n```\n(scheduling.automaticRestart = true)\n(cpuPlatform = \"Intel Skylake\")\n```\nBy default, each expression is an `AND` expression. However, you\ncan include `AND` and `OR` expressions explicitly.\nFor example:\n```\n(cpuPlatform = \"Intel Skylake\") OR\n(cpuPlatform = \"Intel Broadwell\") AND\n(scheduling.automaticRestart = true)\n```\n\nIf you want to use a regular expression, use the `eq` (equal) or `ne`\n(not equal) operator against a single un-parenthesized expression with or\nwithout quotes or against multiple parenthesized expressions. Examples:\n\n`fieldname eq unquoted literal`\n`fieldname eq 'single quoted literal'`\n`fieldname eq \"double quoted literal\"`\n`(fieldname1 eq literal) (fieldname2 ne \"literal\")`\n\nThe literal value is interpreted as a regular expression using GoogleRE2 library syntax.\nThe literal value must match the entire field.\n\nFor example, to filter for instances that do not end with name \"instance\",\nyou would use `name ne .*instance`.\n\nYou cannot combine constraints on multiple fields using regular\nexpressions.", + "location": "query", + "type": "string" + }, + "maxResults": { + "default": "500", + "description": "The maximum number of results per page that should be returned.\nIf the number of available results is larger than `maxResults`,\nCompute Engine returns a `nextPageToken` that can be used to get\nthe next page of results in subsequent list requests. Acceptable values are\n`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\nare returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation\ntimestamp using `orderBy=\"creationTimestamp desc\"`. This sorts\nresults based on the `creationTimestamp` field in\nreverse chronological order (newest result first). Use this to sort\nresources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or\n`creationTimestamp desc` is supported.", + "location": "query", + "type": "string" + }, + "pageToken": { + "description": "Specifies a page token to use. Set `pageToken` to the\n`nextPageToken` returned by a previous list request to get\nthe next page of results.", + "location": "query", + "type": "string" + }, "project": { "description": "Project ID for this request.", "location": "path", @@ -18946,33 +20754,70 @@ "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. 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).", + "returnPartialSuccess": { + "description": "Opt-in for partial success behavior which provides partial results in case\nof failure. The default value is false.\n\nFor example, when partial success behavior is enabled, aggregatedList for a\nsingle zone scope either returns all resources in the zone or no resources,\nwith an error code.", "location": "query", + "type": "boolean" + }, + "zone": { + "description": "The name of the zone for this request.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "required": true, "type": "string" } }, - "path": "projects/{project}/setDefaultNetworkTier", - "request": { - "$ref": "ProjectsSetDefaultNetworkTierRequest" - }, + "path": "projects/{project}/zones/{zone}/nodeGroups", "response": { - "$ref": "Operation" + "$ref": "NodeGroupList" }, "scopes": [ "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" ] }, - "setUsageExportBucket": { - "description": "Enables the usage export feature and sets the usage export bucket where reports are stored. If you provide an empty request body using this method, the usage export feature will be disabled.", - "flatPath": "projects/{project}/setUsageExportBucket", + "listNodes": { + "description": "Lists nodes in the node group.", + "flatPath": "projects/{project}/zones/{zone}/nodeGroups/{nodeGroup}/listNodes", "httpMethod": "POST", - "id": "compute.projects.setUsageExportBucket", + "id": "compute.nodeGroups.listNodes", "parameterOrder": [ - "project" + "project", + "zone", + "nodeGroup" ], "parameters": { + "filter": { + "description": "A filter expression that filters resources listed in the response. Most\nCompute resources support two types of filter expressions:\nexpressions that support regular expressions and expressions that follow\nAPI improvement proposal AIP-160.\nThese two types of filter expressions cannot be mixed in one request.\n\nIf you want to use AIP-160, your expression must specify the field name, an\noperator, and the value that you want to use for filtering. The value\nmust be a string, a number, or a boolean. The operator\nmust be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`.\n\nFor example, if you are filtering Compute Engine instances, you can\nexclude instances named `example-instance` by specifying\n`name != example-instance`.\n\nThe `:*` comparison can be used to test whether a key has been defined.\nFor example, to find all objects with `owner` label use:\n```\nlabels.owner:*\n```\n\nYou can also filter nested fields. For example, you could specify\n`scheduling.automaticRestart = false` to include instances only\nif they are not scheduled for automatic restarts. You can use filtering\non nested fields to filter based onresource labels.\n\nTo filter on multiple expressions, provide each separate expression within\nparentheses. For example:\n```\n(scheduling.automaticRestart = true)\n(cpuPlatform = \"Intel Skylake\")\n```\nBy default, each expression is an `AND` expression. However, you\ncan include `AND` and `OR` expressions explicitly.\nFor example:\n```\n(cpuPlatform = \"Intel Skylake\") OR\n(cpuPlatform = \"Intel Broadwell\") AND\n(scheduling.automaticRestart = true)\n```\n\nIf you want to use a regular expression, use the `eq` (equal) or `ne`\n(not equal) operator against a single un-parenthesized expression with or\nwithout quotes or against multiple parenthesized expressions. Examples:\n\n`fieldname eq unquoted literal`\n`fieldname eq 'single quoted literal'`\n`fieldname eq \"double quoted literal\"`\n`(fieldname1 eq literal) (fieldname2 ne \"literal\")`\n\nThe literal value is interpreted as a regular expression using GoogleRE2 library syntax.\nThe literal value must match the entire field.\n\nFor example, to filter for instances that do not end with name \"instance\",\nyou would use `name ne .*instance`.\n\nYou cannot combine constraints on multiple fields using regular\nexpressions.", + "location": "query", + "type": "string" + }, + "maxResults": { + "default": "500", + "description": "The maximum number of results per page that should be returned.\nIf the number of available results is larger than `maxResults`,\nCompute Engine returns a `nextPageToken` that can be used to get\nthe next page of results in subsequent list requests. Acceptable values are\n`0` to `500`, inclusive. (Default: `500`)", + "format": "uint32", + "location": "query", + "minimum": "0", + "type": "integer" + }, + "nodeGroup": { + "description": "Name of the NodeGroup resource whose nodes you want to list.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "required": true, + "type": "string" + }, + "orderBy": { + "description": "Sorts list results by a certain order. By default, results\nare returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation\ntimestamp using `orderBy=\"creationTimestamp desc\"`. This sorts\nresults based on the `creationTimestamp` field in\nreverse chronological order (newest result first). Use this to sort\nresources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or\n`creationTimestamp desc` is supported.", + "location": "query", + "type": "string" + }, + "pageToken": { + "description": "Specifies a page token to use. Set `pageToken` to the\n`nextPageToken` returned by a previous list request to get\nthe next page of results.", + "location": "query", + "type": "string" + }, "project": { "description": "Project ID for this request.", "location": "path", @@ -18980,61 +20825,71 @@ "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. 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).", + "returnPartialSuccess": { + "description": "Opt-in for partial success behavior which provides partial results in case\nof failure. The default value is false.\n\nFor example, when partial success behavior is enabled, aggregatedList for a\nsingle zone scope either returns all resources in the zone or no resources,\nwith an error code.", "location": "query", + "type": "boolean" + }, + "zone": { + "description": "The name of the zone for this request.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "required": true, "type": "string" } }, - "path": "projects/{project}/setUsageExportBucket", - "request": { - "$ref": "UsageExportLocation" - }, + "path": "projects/{project}/zones/{zone}/nodeGroups/{nodeGroup}/listNodes", "response": { - "$ref": "Operation" + "$ref": "NodeGroupsListNodes" }, "scopes": [ "https://www.googleapis.com/auth/cloud-platform", "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/devstorage.full_control", - "https://www.googleapis.com/auth/devstorage.read_only", - "https://www.googleapis.com/auth/devstorage.read_write" + "https://www.googleapis.com/auth/compute.readonly" ] - } - } - }, - "publicAdvertisedPrefixes": { - "methods": { - "announce": { - "description": "Announces the specified PublicAdvertisedPrefix", - "flatPath": "projects/{project}/global/publicAdvertisedPrefixes/{publicAdvertisedPrefix}/announce", - "httpMethod": "POST", - "id": "compute.publicAdvertisedPrefixes.announce", + }, + "patch": { + "description": "Updates the specified node group.", + "flatPath": "projects/{project}/zones/{zone}/nodeGroups/{nodeGroup}", + "httpMethod": "PATCH", + "id": "compute.nodeGroups.patch", "parameterOrder": [ "project", - "publicAdvertisedPrefix" + "zone", + "nodeGroup" ], "parameters": { - "project": { - "description": "Project ID for this request.", + "nodeGroup": { + "description": "Name of the NodeGroup resource to update.", "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])?))", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", "required": true, "type": "string" }, - "publicAdvertisedPrefix": { - "description": "The name of the public advertised prefix. It should comply with RFC1035.", + "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. 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).", + "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).", "location": "query", "type": "string" + }, + "zone": { + "description": "The name of the zone for this request.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "required": true, + "type": "string" } }, - "path": "projects/{project}/global/publicAdvertisedPrefixes/{publicAdvertisedPrefix}/announce", + "path": "projects/{project}/zones/{zone}/nodeGroups/{nodeGroup}", + "request": { + "$ref": "NodeGroup" + }, "response": { "$ref": "Operation" }, @@ -19043,37 +20898,48 @@ "https://www.googleapis.com/auth/compute" ] }, - "delete": { - "description": "Deletes the specified PublicAdvertisedPrefix", - "flatPath": "projects/{project}/global/publicAdvertisedPrefixes/{publicAdvertisedPrefix}", - "httpMethod": "DELETE", - "id": "compute.publicAdvertisedPrefixes.delete", + "performMaintenance": { + "description": "Perform maintenance on a subset of nodes in the node group.", + "flatPath": "projects/{project}/zones/{zone}/nodeGroups/{nodeGroup}/performMaintenance", + "httpMethod": "POST", + "id": "compute.nodeGroups.performMaintenance", "parameterOrder": [ "project", - "publicAdvertisedPrefix" + "zone", + "nodeGroup" ], "parameters": { - "project": { - "description": "Project ID for this request.", + "nodeGroup": { + "description": "Name of the node group scoping 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])?))", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", "required": true, "type": "string" }, - "publicAdvertisedPrefix": { - "description": "Name of the PublicAdvertisedPrefix resource to delete.", + "project": { + "description": "Project ID for this request.", "location": "path", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "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. 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).", + "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).", "location": "query", "type": "string" + }, + "zone": { + "description": "The name of the zone for this request.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "required": true, + "type": "string" } }, - "path": "projects/{project}/global/publicAdvertisedPrefixes/{publicAdvertisedPrefix}", + "path": "projects/{project}/zones/{zone}/nodeGroups/{nodeGroup}/performMaintenance", + "request": { + "$ref": "NodeGroupsPerformMaintenanceRequest" + }, "response": { "$ref": "Operation" }, @@ -19082,14 +20948,15 @@ "https://www.googleapis.com/auth/compute" ] }, - "get": { - "description": "Returns the specified PublicAdvertisedPrefix resource.", - "flatPath": "projects/{project}/global/publicAdvertisedPrefixes/{publicAdvertisedPrefix}", - "httpMethod": "GET", - "id": "compute.publicAdvertisedPrefixes.get", + "setIamPolicy": { + "description": "Sets the access control policy on the specified resource.\nReplaces any existing policy.", + "flatPath": "projects/{project}/zones/{zone}/nodeGroups/{resource}/setIamPolicy", + "httpMethod": "POST", + "id": "compute.nodeGroups.setIamPolicy", "parameterOrder": [ "project", - "publicAdvertisedPrefix" + "zone", + "resource" ], "parameters": { "project": { @@ -19099,33 +20966,51 @@ "required": true, "type": "string" }, - "publicAdvertisedPrefix": { - "description": "Name of the PublicAdvertisedPrefix resource to return.", + "resource": { + "description": "Name or id of the resource for this request.", "location": "path", "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", "required": true, "type": "string" + }, + "zone": { + "description": "The name of the zone for this request.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "required": true, + "type": "string" } }, - "path": "projects/{project}/global/publicAdvertisedPrefixes/{publicAdvertisedPrefix}", + "path": "projects/{project}/zones/{zone}/nodeGroups/{resource}/setIamPolicy", + "request": { + "$ref": "ZoneSetPolicyRequest" + }, "response": { - "$ref": "PublicAdvertisedPrefix" + "$ref": "Policy" }, "scopes": [ "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" + "https://www.googleapis.com/auth/compute" ] }, - "insert": { - "description": "Creates a PublicAdvertisedPrefix in the specified project using the parameters that are included in the request.", - "flatPath": "projects/{project}/global/publicAdvertisedPrefixes", + "setNodeTemplate": { + "description": "Updates the node template of the node group.", + "flatPath": "projects/{project}/zones/{zone}/nodeGroups/{nodeGroup}/setNodeTemplate", "httpMethod": "POST", - "id": "compute.publicAdvertisedPrefixes.insert", + "id": "compute.nodeGroups.setNodeTemplate", "parameterOrder": [ - "project" + "project", + "zone", + "nodeGroup" ], "parameters": { + "nodeGroup": { + "description": "Name of the NodeGroup resource to update.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "required": true, + "type": "string" + }, "project": { "description": "Project ID for this request.", "location": "path", @@ -19134,14 +21019,21 @@ "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. 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).", + "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).", "location": "query", "type": "string" + }, + "zone": { + "description": "The name of the zone for this request.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "required": true, + "type": "string" } }, - "path": "projects/{project}/global/publicAdvertisedPrefixes", + "path": "projects/{project}/zones/{zone}/nodeGroups/{nodeGroup}/setNodeTemplate", "request": { - "$ref": "PublicAdvertisedPrefix" + "$ref": "NodeGroupsSetNodeTemplateRequest" }, "response": { "$ref": "Operation" @@ -19151,36 +21043,22 @@ "https://www.googleapis.com/auth/compute" ] }, - "list": { - "description": "Lists the PublicAdvertisedPrefixes for a project.", - "flatPath": "projects/{project}/global/publicAdvertisedPrefixes", - "httpMethod": "GET", - "id": "compute.publicAdvertisedPrefixes.list", + "simulateMaintenanceEvent": { + "description": "Simulates maintenance event on specified nodes from the node group.", + "flatPath": "projects/{project}/zones/{zone}/nodeGroups/{nodeGroup}/simulateMaintenanceEvent", + "httpMethod": "POST", + "id": "compute.nodeGroups.simulateMaintenanceEvent", "parameterOrder": [ - "project" + "project", + "zone", + "nodeGroup" ], "parameters": { - "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` 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) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.", - "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. 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.", - "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", + "nodeGroup": { + "description": "Name of the NodeGroup resource whose nodes will go under maintenance\nsimulation.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "required": true, "type": "string" }, "project": { @@ -19190,55 +21068,22 @@ "required": true, "type": "string" }, - "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", + "requestId": { + "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).", "location": "query", - "type": "boolean" - } - }, - "path": "projects/{project}/global/publicAdvertisedPrefixes", - "response": { - "$ref": "PublicAdvertisedPrefixList" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" - ] - }, - "patch": { - "description": "Patches the specified Router resource with the data included in the request. This method supports PATCH semantics and uses JSON merge patch format and processing rules.", - "flatPath": "projects/{project}/global/publicAdvertisedPrefixes/{publicAdvertisedPrefix}", - "httpMethod": "PATCH", - "id": "compute.publicAdvertisedPrefixes.patch", - "parameterOrder": [ - "project", - "publicAdvertisedPrefix" - ], - "parameters": { - "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" }, - "publicAdvertisedPrefix": { - "description": "Name of the PublicAdvertisedPrefix resource to patch.", + "zone": { + "description": "The name of the zone for this request.", "location": "path", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "pattern": "[a-z](?:[-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. 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).", - "location": "query", - "type": "string" } }, - "path": "projects/{project}/global/publicAdvertisedPrefixes/{publicAdvertisedPrefix}", + "path": "projects/{project}/zones/{zone}/nodeGroups/{nodeGroup}/simulateMaintenanceEvent", "request": { - "$ref": "PublicAdvertisedPrefix" + "$ref": "NodeGroupsSimulateMaintenanceEventRequest" }, "response": { "$ref": "Operation" @@ -19248,14 +21093,15 @@ "https://www.googleapis.com/auth/compute" ] }, - "withdraw": { - "description": "Withdraws the specified PublicAdvertisedPrefix", - "flatPath": "projects/{project}/global/publicAdvertisedPrefixes/{publicAdvertisedPrefix}/withdraw", + "testIamPermissions": { + "description": "Returns permissions that a caller has on the specified resource.", + "flatPath": "projects/{project}/zones/{zone}/nodeGroups/{resource}/testIamPermissions", "httpMethod": "POST", - "id": "compute.publicAdvertisedPrefixes.withdraw", + "id": "compute.nodeGroups.testIamPermissions", "parameterOrder": [ "project", - "publicAdvertisedPrefix" + "zone", + "resource" ], "parameters": { "project": { @@ -19265,90 +21111,97 @@ "required": true, "type": "string" }, - "publicAdvertisedPrefix": { - "description": "The name of the public advertised prefix. It should comply with RFC1035.", + "resource": { + "description": "Name or id of the resource for this request.", "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", "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. 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).", - "location": "query", + "zone": { + "description": "The name of the zone for this request.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "required": true, "type": "string" } }, - "path": "projects/{project}/global/publicAdvertisedPrefixes/{publicAdvertisedPrefix}/withdraw", + "path": "projects/{project}/zones/{zone}/nodeGroups/{resource}/testIamPermissions", + "request": { + "$ref": "TestPermissionsRequest" + }, "response": { - "$ref": "Operation" + "$ref": "TestPermissionsResponse" }, "scopes": [ "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" ] } } }, - "publicDelegatedPrefixes": { + "nodeTemplates": { "methods": { "aggregatedList": { - "description": "Lists all PublicDelegatedPrefix resources owned by the specific project across all scopes. To prevent failure, Google recommends that you set the `returnPartialSuccess` parameter to `true`.", - "flatPath": "projects/{project}/aggregated/publicDelegatedPrefixes", + "description": "Retrieves an aggregated list of node templates.\n\nTo prevent failure, Google recommends that you set the\n`returnPartialSuccess` parameter to `true`.", + "flatPath": "projects/{project}/aggregated/nodeTemplates", "httpMethod": "GET", - "id": "compute.publicDelegatedPrefixes.aggregatedList", + "id": "compute.nodeTemplates.aggregatedList", "parameterOrder": [ "project" ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` 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) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.", + "description": "A filter expression that filters resources listed in the response. Most\nCompute resources support two types of filter expressions:\nexpressions that support regular expressions and expressions that follow\nAPI improvement proposal AIP-160.\nThese two types of filter expressions cannot be mixed in one request.\n\nIf you want to use AIP-160, your expression must specify the field name, an\noperator, and the value that you want to use for filtering. The value\nmust be a string, a number, or a boolean. The operator\nmust be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`.\n\nFor example, if you are filtering Compute Engine instances, you can\nexclude instances named `example-instance` by specifying\n`name != example-instance`.\n\nThe `:*` comparison can be used to test whether a key has been defined.\nFor example, to find all objects with `owner` label use:\n```\nlabels.owner:*\n```\n\nYou can also filter nested fields. For example, you could specify\n`scheduling.automaticRestart = false` to include instances only\nif they are not scheduled for automatic restarts. You can use filtering\non nested fields to filter based onresource labels.\n\nTo filter on multiple expressions, provide each separate expression within\nparentheses. For example:\n```\n(scheduling.automaticRestart = true)\n(cpuPlatform = \"Intel Skylake\")\n```\nBy default, each expression is an `AND` expression. However, you\ncan include `AND` and `OR` expressions explicitly.\nFor example:\n```\n(cpuPlatform = \"Intel Skylake\") OR\n(cpuPlatform = \"Intel Broadwell\") AND\n(scheduling.automaticRestart = true)\n```\n\nIf you want to use a regular expression, use the `eq` (equal) or `ne`\n(not equal) operator against a single un-parenthesized expression with or\nwithout quotes or against multiple parenthesized expressions. Examples:\n\n`fieldname eq unquoted literal`\n`fieldname eq 'single quoted literal'`\n`fieldname eq \"double quoted literal\"`\n`(fieldname1 eq literal) (fieldname2 ne \"literal\")`\n\nThe literal value is interpreted as a regular expression using GoogleRE2 library syntax.\nThe literal value must match the entire field.\n\nFor example, to filter for instances that do not end with name \"instance\",\nyou would use `name ne .*instance`.\n\nYou cannot combine constraints on multiple fields using regular\nexpressions.", "location": "query", "type": "string" }, "includeAllScopes": { - "description": "Indicates whether every visible scope for each scope type (zone, region, global) should be included in the response. For new resource types added after this field, the flag has no effect as new resource types will always include every visible scope for each scope type in response. For resource types which predate this field, if this flag is omitted or false, only scopes of the scope types where the resource type is expected to be found will be included.", + "description": "Indicates whether every visible scope for each scope type (zone, region,\nglobal) should be included in the response. For new resource types added\nafter this field, the flag has no effect as new resource types will always\ninclude every visible scope for each scope type in response. For resource\ntypes which predate this field, if this flag is omitted or false, only\nscopes of the scope types where the resource type is expected to be found\nwill be included.", "location": "query", "type": "boolean" }, "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`)", + "description": "The maximum number of results per page that should be returned.\nIf the number of available results is larger than `maxResults`,\nCompute Engine returns a `nextPageToken` that can be used to get\nthe next page of results in subsequent list requests. Acceptable values are\n`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. 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.", + "description": "Sorts list results by a certain order. By default, results\nare returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation\ntimestamp using `orderBy=\"creationTimestamp desc\"`. This sorts\nresults based on the `creationTimestamp` field in\nreverse chronological order (newest result first). Use this to sort\nresources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or\n`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.", + "description": "Specifies a page token to use. Set `pageToken` to the\n`nextPageToken` returned by a previous list request to get\nthe next page of results.", "location": "query", "type": "string" }, "project": { - "description": "Name of the project scoping this request.", + "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" }, "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", + "description": "Opt-in for partial success behavior which provides partial results in case\nof failure. The default value is false.\n\nFor example, when partial success behavior is enabled, aggregatedList for a\nsingle zone scope either returns all resources in the zone or no resources,\nwith an error code.", "location": "query", "type": "boolean" }, "serviceProjectNumber": { - "description": "The Shared VPC service project id or service project number for which aggregated list request is invoked for subnetworks list-usable api.", + "description": "The Shared VPC service project id or service project number for which\naggregated list request is invoked for subnetworks list-usable api.", "format": "int64", "location": "query", "type": "string" } }, - "path": "projects/{project}/aggregated/publicDelegatedPrefixes", + "path": "projects/{project}/aggregated/nodeTemplates", "response": { - "$ref": "PublicDelegatedPrefixAggregatedList" + "$ref": "NodeTemplateAggregatedList" }, "scopes": [ "https://www.googleapis.com/auth/cloud-platform", @@ -19356,43 +21209,45 @@ "https://www.googleapis.com/auth/compute.readonly" ] }, - "announce": { - "description": "Announces the specified PublicDelegatedPrefix in the given region.", - "flatPath": "projects/{project}/regions/{region}/publicDelegatedPrefixes/{publicDelegatedPrefix}/announce", - "httpMethod": "POST", - "id": "compute.publicDelegatedPrefixes.announce", + "delete": { + "description": "Deletes the specified NodeTemplate resource.", + "flatPath": "projects/{project}/regions/{region}/nodeTemplates/{nodeTemplate}", + "httpMethod": "DELETE", + "id": "compute.nodeTemplates.delete", "parameterOrder": [ "project", "region", - "publicDelegatedPrefix" + "nodeTemplate" ], "parameters": { - "project": { - "description": "Project ID for this request.", + "nodeTemplate": { + "description": "Name of the NodeTemplate resource to delete.", "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])?))", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", "required": true, "type": "string" }, - "publicDelegatedPrefix": { - "description": "The name of the public delegated prefix. It should comply with RFC1035.", + "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": "The name of the region where the public delegated prefix is located. It should comply with RFC1035.", + "description": "The name of the region for this request.", "location": "path", + "pattern": "[a-z](?:[-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. 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).", + "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).", "location": "query", "type": "string" } }, - "path": "projects/{project}/regions/{region}/publicDelegatedPrefixes/{publicDelegatedPrefix}/announce", + "path": "projects/{project}/regions/{region}/nodeTemplates/{nodeTemplate}", "response": { "$ref": "Operation" }, @@ -19401,64 +21256,66 @@ "https://www.googleapis.com/auth/compute" ] }, - "delete": { - "description": "Deletes the specified PublicDelegatedPrefix in the given region.", - "flatPath": "projects/{project}/regions/{region}/publicDelegatedPrefixes/{publicDelegatedPrefix}", - "httpMethod": "DELETE", - "id": "compute.publicDelegatedPrefixes.delete", + "get": { + "description": "Returns the specified node template.", + "flatPath": "projects/{project}/regions/{region}/nodeTemplates/{nodeTemplate}", + "httpMethod": "GET", + "id": "compute.nodeTemplates.get", "parameterOrder": [ "project", "region", - "publicDelegatedPrefix" + "nodeTemplate" ], "parameters": { - "project": { - "description": "Project ID for this request.", + "nodeTemplate": { + "description": "Name of the node template to return.", "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])?))", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", "required": true, "type": "string" }, - "publicDelegatedPrefix": { - "description": "Name of the PublicDelegatedPrefix resource to delete.", + "project": { + "description": "Project ID for this request.", "location": "path", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "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 of this request.", + "description": "The name of the region for this request.", "location": "path", "pattern": "[a-z](?:[-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. 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).", - "location": "query", - "type": "string" } }, - "path": "projects/{project}/regions/{region}/publicDelegatedPrefixes/{publicDelegatedPrefix}", + "path": "projects/{project}/regions/{region}/nodeTemplates/{nodeTemplate}", "response": { - "$ref": "Operation" + "$ref": "NodeTemplate" }, "scopes": [ "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" ] }, - "get": { - "description": "Returns the specified PublicDelegatedPrefix resource in the given region.", - "flatPath": "projects/{project}/regions/{region}/publicDelegatedPrefixes/{publicDelegatedPrefix}", + "getIamPolicy": { + "description": "Gets the access control policy for a resource. May be empty if no such\npolicy or resource exists.", + "flatPath": "projects/{project}/regions/{region}/nodeTemplates/{resource}/getIamPolicy", "httpMethod": "GET", - "id": "compute.publicDelegatedPrefixes.get", + "id": "compute.nodeTemplates.getIamPolicy", "parameterOrder": [ "project", "region", - "publicDelegatedPrefix" + "resource" ], "parameters": { + "optionsRequestedPolicyVersion": { + "description": "Requested IAM Policy version.", + "format": "int32", + "location": "query", + "type": "integer" + }, "project": { "description": "Project ID for this request.", "location": "path", @@ -19466,24 +21323,24 @@ "required": true, "type": "string" }, - "publicDelegatedPrefix": { - "description": "Name of the PublicDelegatedPrefix resource to return.", + "region": { + "description": "The name of the region for this request.", "location": "path", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", "required": true, "type": "string" }, - "region": { - "description": "Name of the region of this request.", + "resource": { + "description": "Name or id of the resource for this request.", "location": "path", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", "required": true, "type": "string" } }, - "path": "projects/{project}/regions/{region}/publicDelegatedPrefixes/{publicDelegatedPrefix}", + "path": "projects/{project}/regions/{region}/nodeTemplates/{resource}/getIamPolicy", "response": { - "$ref": "PublicDelegatedPrefix" + "$ref": "Policy" }, "scopes": [ "https://www.googleapis.com/auth/cloud-platform", @@ -19492,10 +21349,10 @@ ] }, "insert": { - "description": "Creates a PublicDelegatedPrefix in the specified project in the given region using the parameters that are included in the request.", - "flatPath": "projects/{project}/regions/{region}/publicDelegatedPrefixes", + "description": "Creates a NodeTemplate resource in the specified project using the data\nincluded in the request.", + "flatPath": "projects/{project}/regions/{region}/nodeTemplates", "httpMethod": "POST", - "id": "compute.publicDelegatedPrefixes.insert", + "id": "compute.nodeTemplates.insert", "parameterOrder": [ "project", "region" @@ -19509,21 +21366,21 @@ "type": "string" }, "region": { - "description": "Name of the region of this request.", + "description": "The name of the region for this request.", "location": "path", "pattern": "[a-z](?:[-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. 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).", + "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).", "location": "query", "type": "string" } }, - "path": "projects/{project}/regions/{region}/publicDelegatedPrefixes", + "path": "projects/{project}/regions/{region}/nodeTemplates", "request": { - "$ref": "PublicDelegatedPrefix" + "$ref": "NodeTemplate" }, "response": { "$ref": "Operation" @@ -19534,35 +21391,35 @@ ] }, "list": { - "description": "Lists the PublicDelegatedPrefixes for a project in the given region.", - "flatPath": "projects/{project}/regions/{region}/publicDelegatedPrefixes", + "description": "Retrieves a list of node templates available to the specified\nproject.", + "flatPath": "projects/{project}/regions/{region}/nodeTemplates", "httpMethod": "GET", - "id": "compute.publicDelegatedPrefixes.list", + "id": "compute.nodeTemplates.list", "parameterOrder": [ "project", "region" ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` 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) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.", + "description": "A filter expression that filters resources listed in the response. Most\nCompute resources support two types of filter expressions:\nexpressions that support regular expressions and expressions that follow\nAPI improvement proposal AIP-160.\nThese two types of filter expressions cannot be mixed in one request.\n\nIf you want to use AIP-160, your expression must specify the field name, an\noperator, and the value that you want to use for filtering. The value\nmust be a string, a number, or a boolean. The operator\nmust be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`.\n\nFor example, if you are filtering Compute Engine instances, you can\nexclude instances named `example-instance` by specifying\n`name != example-instance`.\n\nThe `:*` comparison can be used to test whether a key has been defined.\nFor example, to find all objects with `owner` label use:\n```\nlabels.owner:*\n```\n\nYou can also filter nested fields. For example, you could specify\n`scheduling.automaticRestart = false` to include instances only\nif they are not scheduled for automatic restarts. You can use filtering\non nested fields to filter based onresource labels.\n\nTo filter on multiple expressions, provide each separate expression within\nparentheses. For example:\n```\n(scheduling.automaticRestart = true)\n(cpuPlatform = \"Intel Skylake\")\n```\nBy default, each expression is an `AND` expression. However, you\ncan include `AND` and `OR` expressions explicitly.\nFor example:\n```\n(cpuPlatform = \"Intel Skylake\") OR\n(cpuPlatform = \"Intel Broadwell\") AND\n(scheduling.automaticRestart = true)\n```\n\nIf you want to use a regular expression, use the `eq` (equal) or `ne`\n(not equal) operator against a single un-parenthesized expression with or\nwithout quotes or against multiple parenthesized expressions. Examples:\n\n`fieldname eq unquoted literal`\n`fieldname eq 'single quoted literal'`\n`fieldname eq \"double quoted literal\"`\n`(fieldname1 eq literal) (fieldname2 ne \"literal\")`\n\nThe literal value is interpreted as a regular expression using GoogleRE2 library syntax.\nThe literal value must match the entire field.\n\nFor example, to filter for instances that do not end with name \"instance\",\nyou would use `name ne .*instance`.\n\nYou cannot combine constraints on multiple fields using regular\nexpressions.", "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`)", + "description": "The maximum number of results per page that should be returned.\nIf the number of available results is larger than `maxResults`,\nCompute Engine returns a `nextPageToken` that can be used to get\nthe next page of results in subsequent list requests. Acceptable values are\n`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. 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.", + "description": "Sorts list results by a certain order. By default, results\nare returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation\ntimestamp using `orderBy=\"creationTimestamp desc\"`. This sorts\nresults based on the `creationTimestamp` field in\nreverse chronological order (newest result first). Use this to sort\nresources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or\n`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.", + "description": "Specifies a page token to use. Set `pageToken` to the\n`nextPageToken` returned by a previous list request to get\nthe next page of results.", "location": "query", "type": "string" }, @@ -19574,21 +21431,21 @@ "type": "string" }, "region": { - "description": "Name of the region of this request.", + "description": "The name of the region for this request.", "location": "path", "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", "required": true, "type": "string" }, "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", + "description": "Opt-in for partial success behavior which provides partial results in case\nof failure. The default value is false.\n\nFor example, when partial success behavior is enabled, aggregatedList for a\nsingle zone scope either returns all resources in the zone or no resources,\nwith an error code.", "location": "query", "type": "boolean" } }, - "path": "projects/{project}/regions/{region}/publicDelegatedPrefixes", + "path": "projects/{project}/regions/{region}/nodeTemplates", "response": { - "$ref": "PublicDelegatedPrefixList" + "$ref": "NodeTemplateList" }, "scopes": [ "https://www.googleapis.com/auth/cloud-platform", @@ -19596,15 +21453,15 @@ "https://www.googleapis.com/auth/compute.readonly" ] }, - "patch": { - "description": "Patches the specified PublicDelegatedPrefix resource with the data included in the request. This method supports PATCH semantics and uses JSON merge patch format and processing rules.", - "flatPath": "projects/{project}/regions/{region}/publicDelegatedPrefixes/{publicDelegatedPrefix}", - "httpMethod": "PATCH", - "id": "compute.publicDelegatedPrefixes.patch", + "setIamPolicy": { + "description": "Sets the access control policy on the specified resource.\nReplaces any existing policy.", + "flatPath": "projects/{project}/regions/{region}/nodeTemplates/{resource}/setIamPolicy", + "httpMethod": "POST", + "id": "compute.nodeTemplates.setIamPolicy", "parameterOrder": [ "project", "region", - "publicDelegatedPrefix" + "resource" ], "parameters": { "project": { @@ -19614,47 +21471,42 @@ "required": true, "type": "string" }, - "publicDelegatedPrefix": { - "description": "Name of the PublicDelegatedPrefix resource to patch.", - "location": "path", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "required": true, - "type": "string" - }, "region": { - "description": "Name of the region for this request.", + "description": "The name of the region for this request.", "location": "path", "pattern": "[a-z](?:[-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. 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).", - "location": "query", + "resource": { + "description": "Name or id of the resource for this request.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "required": true, "type": "string" } }, - "path": "projects/{project}/regions/{region}/publicDelegatedPrefixes/{publicDelegatedPrefix}", + "path": "projects/{project}/regions/{region}/nodeTemplates/{resource}/setIamPolicy", "request": { - "$ref": "PublicDelegatedPrefix" + "$ref": "RegionSetPolicyRequest" }, "response": { - "$ref": "Operation" + "$ref": "Policy" }, "scopes": [ "https://www.googleapis.com/auth/cloud-platform", "https://www.googleapis.com/auth/compute" ] }, - "withdraw": { - "description": "Withdraws the specified PublicDelegatedPrefix in the given region.", - "flatPath": "projects/{project}/regions/{region}/publicDelegatedPrefixes/{publicDelegatedPrefix}/withdraw", + "testIamPermissions": { + "description": "Returns permissions that a caller has on the specified resource.", + "flatPath": "projects/{project}/regions/{region}/nodeTemplates/{resource}/testIamPermissions", "httpMethod": "POST", - "id": "compute.publicDelegatedPrefixes.withdraw", + "id": "compute.nodeTemplates.testIamPermissions", "parameterOrder": [ "project", "region", - "publicDelegatedPrefix" + "resource" ], "parameters": { "project": { @@ -19664,53 +21516,73 @@ "required": true, "type": "string" }, - "publicDelegatedPrefix": { - "description": "The name of the public delegated prefix. It should comply with RFC1035.", + "region": { + "description": "The name of the region for this request.", "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", "required": true, "type": "string" }, - "region": { - "description": "The name of the region where the public delegated prefix is located. It should comply with RFC1035.", + "resource": { + "description": "Name or id of the resource for this request.", "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", "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. 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).", - "location": "query", - "type": "string" } }, - "path": "projects/{project}/regions/{region}/publicDelegatedPrefixes/{publicDelegatedPrefix}/withdraw", + "path": "projects/{project}/regions/{region}/nodeTemplates/{resource}/testIamPermissions", + "request": { + "$ref": "TestPermissionsRequest" + }, "response": { - "$ref": "Operation" + "$ref": "TestPermissionsResponse" }, "scopes": [ "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" ] } } }, - "regionAutoscalers": { + "nodeTypes": { "methods": { - "delete": { - "description": "Deletes the specified autoscaler.", - "flatPath": "projects/{project}/regions/{region}/autoscalers/{autoscaler}", - "httpMethod": "DELETE", - "id": "compute.regionAutoscalers.delete", + "aggregatedList": { + "description": "Retrieves an aggregated list of node types.\n\nTo prevent failure, Google recommends that you set the\n`returnPartialSuccess` parameter to `true`.", + "flatPath": "projects/{project}/aggregated/nodeTypes", + "httpMethod": "GET", + "id": "compute.nodeTypes.aggregatedList", "parameterOrder": [ - "project", - "region", - "autoscaler" + "project" ], "parameters": { - "autoscaler": { - "description": "Name of the autoscaler to delete.", - "location": "path", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "required": true, + "filter": { + "description": "A filter expression that filters resources listed in the response. Most\nCompute resources support two types of filter expressions:\nexpressions that support regular expressions and expressions that follow\nAPI improvement proposal AIP-160.\nThese two types of filter expressions cannot be mixed in one request.\n\nIf you want to use AIP-160, your expression must specify the field name, an\noperator, and the value that you want to use for filtering. The value\nmust be a string, a number, or a boolean. The operator\nmust be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`.\n\nFor example, if you are filtering Compute Engine instances, you can\nexclude instances named `example-instance` by specifying\n`name != example-instance`.\n\nThe `:*` comparison can be used to test whether a key has been defined.\nFor example, to find all objects with `owner` label use:\n```\nlabels.owner:*\n```\n\nYou can also filter nested fields. For example, you could specify\n`scheduling.automaticRestart = false` to include instances only\nif they are not scheduled for automatic restarts. You can use filtering\non nested fields to filter based onresource labels.\n\nTo filter on multiple expressions, provide each separate expression within\nparentheses. For example:\n```\n(scheduling.automaticRestart = true)\n(cpuPlatform = \"Intel Skylake\")\n```\nBy default, each expression is an `AND` expression. However, you\ncan include `AND` and `OR` expressions explicitly.\nFor example:\n```\n(cpuPlatform = \"Intel Skylake\") OR\n(cpuPlatform = \"Intel Broadwell\") AND\n(scheduling.automaticRestart = true)\n```\n\nIf you want to use a regular expression, use the `eq` (equal) or `ne`\n(not equal) operator against a single un-parenthesized expression with or\nwithout quotes or against multiple parenthesized expressions. Examples:\n\n`fieldname eq unquoted literal`\n`fieldname eq 'single quoted literal'`\n`fieldname eq \"double quoted literal\"`\n`(fieldname1 eq literal) (fieldname2 ne \"literal\")`\n\nThe literal value is interpreted as a regular expression using GoogleRE2 library syntax.\nThe literal value must match the entire field.\n\nFor example, to filter for instances that do not end with name \"instance\",\nyou would use `name ne .*instance`.\n\nYou cannot combine constraints on multiple fields using regular\nexpressions.", + "location": "query", + "type": "string" + }, + "includeAllScopes": { + "description": "Indicates whether every visible scope for each scope type (zone, region,\nglobal) should be included in the response. For new resource types added\nafter this field, the flag has no effect as new resource types will always\ninclude every visible scope for each scope type in response. For resource\ntypes which predate this field, if this flag is omitted or false, only\nscopes of the scope types where the resource type is expected to be found\nwill be included.", + "location": "query", + "type": "boolean" + }, + "maxResults": { + "default": "500", + "description": "The maximum number of results per page that should be returned.\nIf the number of available results is larger than `maxResults`,\nCompute Engine returns a `nextPageToken` that can be used to get\nthe next page of results in subsequent list requests. Acceptable values are\n`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\nare returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation\ntimestamp using `orderBy=\"creationTimestamp desc\"`. This sorts\nresults based on the `creationTimestamp` field in\nreverse chronological order (newest result first). Use this to sort\nresources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or\n`creationTimestamp desc` is supported.", + "location": "query", + "type": "string" + }, + "pageToken": { + "description": "Specifies a page token to use. Set `pageToken` to the\n`nextPageToken` returned by a previous list request to get\nthe next page of results.", + "location": "query", "type": "string" }, "project": { @@ -19720,41 +21592,41 @@ "required": true, "type": "string" }, - "region": { - "description": "Name of the region scoping this request.", - "location": "path", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "required": true, - "type": "string" + "returnPartialSuccess": { + "description": "Opt-in for partial success behavior which provides partial results in case\nof failure. The default value is false.\n\nFor example, when partial success behavior is enabled, aggregatedList for a\nsingle zone scope either returns all resources in the zone or no resources,\nwith an error code.", + "location": "query", + "type": "boolean" }, - "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. 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).", + "serviceProjectNumber": { + "description": "The Shared VPC service project id or service project number for which\naggregated list request is invoked for subnetworks list-usable api.", + "format": "int64", "location": "query", "type": "string" } }, - "path": "projects/{project}/regions/{region}/autoscalers/{autoscaler}", + "path": "projects/{project}/aggregated/nodeTypes", "response": { - "$ref": "Operation" + "$ref": "NodeTypeAggregatedList" }, "scopes": [ "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" ] }, "get": { - "description": "Returns the specified autoscaler.", - "flatPath": "projects/{project}/regions/{region}/autoscalers/{autoscaler}", + "description": "Returns the specified node type.", + "flatPath": "projects/{project}/zones/{zone}/nodeTypes/{nodeType}", "httpMethod": "GET", - "id": "compute.regionAutoscalers.get", + "id": "compute.nodeTypes.get", "parameterOrder": [ "project", - "region", - "autoscaler" + "zone", + "nodeType" ], "parameters": { - "autoscaler": { - "description": "Name of the autoscaler to return.", + "nodeType": { + "description": "Name of the node type to return.", "location": "path", "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", "required": true, @@ -19767,17 +21639,17 @@ "required": true, "type": "string" }, - "region": { - "description": "Name of the region scoping this request.", + "zone": { + "description": "The name of the zone for this request.", "location": "path", "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", "required": true, "type": "string" } }, - "path": "projects/{project}/regions/{region}/autoscalers/{autoscaler}", + "path": "projects/{project}/zones/{zone}/nodeTypes/{nodeType}", "response": { - "$ref": "Autoscaler" + "$ref": "NodeType" }, "scopes": [ "https://www.googleapis.com/auth/cloud-platform", @@ -19785,78 +21657,36 @@ "https://www.googleapis.com/auth/compute.readonly" ] }, - "insert": { - "description": "Creates an autoscaler in the specified project using the data included in the request.", - "flatPath": "projects/{project}/regions/{region}/autoscalers", - "httpMethod": "POST", - "id": "compute.regionAutoscalers.insert", - "parameterOrder": [ - "project", - "region" - ], - "parameters": { - "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 scoping this request.", - "location": "path", - "pattern": "[a-z](?:[-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. 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).", - "location": "query", - "type": "string" - } - }, - "path": "projects/{project}/regions/{region}/autoscalers", - "request": { - "$ref": "Autoscaler" - }, - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ] - }, "list": { - "description": "Retrieves a list of autoscalers contained within the specified region.", - "flatPath": "projects/{project}/regions/{region}/autoscalers", + "description": "Retrieves a list of node types available to the specified\nproject.", + "flatPath": "projects/{project}/zones/{zone}/nodeTypes", "httpMethod": "GET", - "id": "compute.regionAutoscalers.list", + "id": "compute.nodeTypes.list", "parameterOrder": [ "project", - "region" + "zone" ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` 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) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.", + "description": "A filter expression that filters resources listed in the response. Most\nCompute resources support two types of filter expressions:\nexpressions that support regular expressions and expressions that follow\nAPI improvement proposal AIP-160.\nThese two types of filter expressions cannot be mixed in one request.\n\nIf you want to use AIP-160, your expression must specify the field name, an\noperator, and the value that you want to use for filtering. The value\nmust be a string, a number, or a boolean. The operator\nmust be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`.\n\nFor example, if you are filtering Compute Engine instances, you can\nexclude instances named `example-instance` by specifying\n`name != example-instance`.\n\nThe `:*` comparison can be used to test whether a key has been defined.\nFor example, to find all objects with `owner` label use:\n```\nlabels.owner:*\n```\n\nYou can also filter nested fields. For example, you could specify\n`scheduling.automaticRestart = false` to include instances only\nif they are not scheduled for automatic restarts. You can use filtering\non nested fields to filter based onresource labels.\n\nTo filter on multiple expressions, provide each separate expression within\nparentheses. For example:\n```\n(scheduling.automaticRestart = true)\n(cpuPlatform = \"Intel Skylake\")\n```\nBy default, each expression is an `AND` expression. However, you\ncan include `AND` and `OR` expressions explicitly.\nFor example:\n```\n(cpuPlatform = \"Intel Skylake\") OR\n(cpuPlatform = \"Intel Broadwell\") AND\n(scheduling.automaticRestart = true)\n```\n\nIf you want to use a regular expression, use the `eq` (equal) or `ne`\n(not equal) operator against a single un-parenthesized expression with or\nwithout quotes or against multiple parenthesized expressions. Examples:\n\n`fieldname eq unquoted literal`\n`fieldname eq 'single quoted literal'`\n`fieldname eq \"double quoted literal\"`\n`(fieldname1 eq literal) (fieldname2 ne \"literal\")`\n\nThe literal value is interpreted as a regular expression using GoogleRE2 library syntax.\nThe literal value must match the entire field.\n\nFor example, to filter for instances that do not end with name \"instance\",\nyou would use `name ne .*instance`.\n\nYou cannot combine constraints on multiple fields using regular\nexpressions.", "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`)", + "description": "The maximum number of results per page that should be returned.\nIf the number of available results is larger than `maxResults`,\nCompute Engine returns a `nextPageToken` that can be used to get\nthe next page of results in subsequent list requests. Acceptable values are\n`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. 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.", + "description": "Sorts list results by a certain order. By default, results\nare returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation\ntimestamp using `orderBy=\"creationTimestamp desc\"`. This sorts\nresults based on the `creationTimestamp` field in\nreverse chronological order (newest result first). Use this to sort\nresources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or\n`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.", + "description": "Specifies a page token to use. Set `pageToken` to the\n`nextPageToken` returned by a previous list request to get\nthe next page of results.", "location": "query", "type": "string" }, @@ -19867,68 +21697,63 @@ "required": true, "type": "string" }, - "region": { - "description": "Name of the region scoping this request.", + "returnPartialSuccess": { + "description": "Opt-in for partial success behavior which provides partial results in case\nof failure. The default value is false.\n\nFor example, when partial success behavior is enabled, aggregatedList for a\nsingle zone scope either returns all resources in the zone or no resources,\nwith an error code.", + "location": "query", + "type": "boolean" + }, + "zone": { + "description": "The name of the zone for this request.", "location": "path", "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", "required": true, "type": "string" - }, - "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", - "location": "query", - "type": "boolean" } }, - "path": "projects/{project}/regions/{region}/autoscalers", + "path": "projects/{project}/zones/{zone}/nodeTypes", "response": { - "$ref": "RegionAutoscalerList" + "$ref": "NodeTypeList" }, "scopes": [ "https://www.googleapis.com/auth/cloud-platform", "https://www.googleapis.com/auth/compute", "https://www.googleapis.com/auth/compute.readonly" ] - }, - "patch": { - "description": "Updates an autoscaler in the specified project using the data included in the request. This method supports PATCH semantics and uses the JSON merge patch format and processing rules.", - "flatPath": "projects/{project}/regions/{region}/autoscalers", - "httpMethod": "PATCH", - "id": "compute.regionAutoscalers.patch", + } + } + }, + "organizationSecurityPolicies": { + "methods": { + "addAssociation": { + "description": "Inserts an association for the specified security policy.\n\nThis has billing implications. Projects in the hierarchy with effective\nhierarchical security policies will be automatically enrolled into Cloud\nArmor Enterprise if not already enrolled.\n\nUse this API to modify Cloud Armor policies. Previously, alpha and beta\nversions of this API were used to modify firewall policies. This usage is\nnow disabled for most organizations. Use firewallPolicies.addAssociation\ninstead.", + "flatPath": "locations/global/securityPolicies/{securityPolicy}/addAssociation", + "httpMethod": "POST", + "id": "compute.organizationSecurityPolicies.addAssociation", "parameterOrder": [ - "project", - "region" + "securityPolicy" ], "parameters": { - "autoscaler": { - "description": "Name of the autoscaler to patch.", + "replaceExistingAssociation": { + "description": "Indicates whether or not to replace it if an association of the attachment\nalready exists. This is false by default, in which case an error will be\nreturned if an association already exists.", "location": "query", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "type": "string" + "type": "boolean" }, - "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, + "requestId": { + "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).", + "location": "query", "type": "string" }, - "region": { - "description": "Name of the region scoping this request.", + "securityPolicy": { + "description": "Name of the security policy to update.", "location": "path", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "pattern": "(securityPolicies/)?[0-9]{0,20}", "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. 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).", - "location": "query", - "type": "string" } }, - "path": "projects/{project}/regions/{region}/autoscalers", + "path": "locations/global/securityPolicies/{securityPolicy}/addAssociation", "request": { - "$ref": "Autoscaler" + "$ref": "SecurityPolicyAssociation" }, "response": { "$ref": "Operation" @@ -19938,46 +21763,68 @@ "https://www.googleapis.com/auth/compute" ] }, - "update": { - "description": "Updates an autoscaler in the specified project using the data included in the request.", - "flatPath": "projects/{project}/regions/{region}/autoscalers", - "httpMethod": "PUT", - "id": "compute.regionAutoscalers.update", + "addRule": { + "description": "Inserts a rule into a security policy.\n\nUse this API to modify Cloud Armor policies. Previously, alpha and beta\nversions of this API were used to modify firewall policies. This usage is\nnow disabled for most organizations. Use firewallPolicies.addRule instead.", + "flatPath": "locations/global/securityPolicies/{securityPolicy}/addRule", + "httpMethod": "POST", + "id": "compute.organizationSecurityPolicies.addRule", "parameterOrder": [ - "project", - "region" + "securityPolicy" ], "parameters": { - "autoscaler": { - "description": "Name of the autoscaler to update.", + "requestId": { + "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).", "location": "query", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", "type": "string" }, - "project": { - "description": "Project ID for this request.", + "securityPolicy": { + "description": "Name of the security policy to update.", "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])?))", + "pattern": "(securityPolicies/)?[0-9]{0,20}", "required": true, "type": "string" + } + }, + "path": "locations/global/securityPolicies/{securityPolicy}/addRule", + "request": { + "$ref": "SecurityPolicyRule" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ] + }, + "copyRules": { + "description": "Copies rules to the specified security policy.\n\nUse this API to modify Cloud Armor policies. Previously, alpha and beta\nversions of this API were used to modify firewall policies. This usage is\nnow disabled for most organizations. Use firewallPolicies.cloneRules\ninstead.", + "flatPath": "locations/global/securityPolicies/{securityPolicy}/copyRules", + "httpMethod": "POST", + "id": "compute.organizationSecurityPolicies.copyRules", + "parameterOrder": [ + "securityPolicy" + ], + "parameters": { + "requestId": { + "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).", + "location": "query", + "type": "string" }, - "region": { - "description": "Name of the region scoping this request.", + "securityPolicy": { + "description": "Name of the security policy to update.", "location": "path", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "pattern": "(securityPolicies/)?[0-9]{0,20}", "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. 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).", + "sourceSecurityPolicy": { + "description": "The security policy from which to copy rules.", "location": "query", "type": "string" } }, - "path": "projects/{project}/regions/{region}/autoscalers", - "request": { - "$ref": "Autoscaler" - }, + "path": "locations/global/securityPolicies/{securityPolicy}/copyRules", "response": { "$ref": "Operation" }, @@ -19985,50 +21832,30 @@ "https://www.googleapis.com/auth/cloud-platform", "https://www.googleapis.com/auth/compute" ] - } - } - }, - "regionBackendServices": { - "methods": { + }, "delete": { - "description": "Deletes the specified regional BackendService resource.", - "flatPath": "projects/{project}/regions/{region}/backendServices/{backendService}", + "description": "Deletes the specified policy.\n\nUse this API to remove Cloud Armor policies. Previously, alpha and beta\nversions of this API were used to remove firewall policies. This usage is\nnow disabled for most organizations. Use firewallPolicies.delete instead.", + "flatPath": "locations/global/securityPolicies/{securityPolicy}", "httpMethod": "DELETE", - "id": "compute.regionBackendServices.delete", + "id": "compute.organizationSecurityPolicies.delete", "parameterOrder": [ - "project", - "region", - "backendService" + "securityPolicy" ], "parameters": { - "backendService": { - "description": "Name of the BackendService resource to delete.", - "location": "path", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "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, + "requestId": { + "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).", + "location": "query", "type": "string" }, - "region": { - "description": "Name of the region scoping this request.", + "securityPolicy": { + "description": "Name of the security policy to delete.", "location": "path", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "pattern": "(securityPolicies/)?[0-9]{0,20}", "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. 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).", - "location": "query", - "type": "string" } }, - "path": "projects/{project}/regions/{region}/backendServices/{backendService}", + "path": "locations/global/securityPolicies/{securityPolicy}", "response": { "$ref": "Operation" }, @@ -20038,41 +21865,25 @@ ] }, "get": { - "description": "Returns the specified regional BackendService resource.", - "flatPath": "projects/{project}/regions/{region}/backendServices/{backendService}", + "description": "List all of the ordered rules present in a single specified policy.\n\nUse this API to read Cloud Armor policies. Previously, alpha and beta\nversions of this API were used to read firewall policies. This usage is now\ndisabled for most organizations. Use firewallPolicies.get instead.", + "flatPath": "locations/global/securityPolicies/{securityPolicy}", "httpMethod": "GET", - "id": "compute.regionBackendServices.get", + "id": "compute.organizationSecurityPolicies.get", "parameterOrder": [ - "project", - "region", - "backendService" + "securityPolicy" ], "parameters": { - "backendService": { - "description": "Name of the BackendService resource to return.", - "location": "path", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "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" - }, - "region": { - "description": "Name of the region scoping this request.", + "securityPolicy": { + "description": "Name of the security policy to get.", "location": "path", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "pattern": "(securityPolicies/)?[0-9]{0,20}", "required": true, "type": "string" } }, - "path": "projects/{project}/regions/{region}/backendServices/{backendService}", + "path": "locations/global/securityPolicies/{securityPolicy}", "response": { - "$ref": "BackendService" + "$ref": "SecurityPolicy" }, "scopes": [ "https://www.googleapis.com/auth/cloud-platform", @@ -20080,44 +21891,31 @@ "https://www.googleapis.com/auth/compute.readonly" ] }, - "getHealth": { - "description": "Gets the most recent health check results for this regional BackendService.", - "flatPath": "projects/{project}/regions/{region}/backendServices/{backendService}/getHealth", - "httpMethod": "POST", - "id": "compute.regionBackendServices.getHealth", + "getAssociation": { + "description": "Gets an association with the specified name.\n\nUse this API to read Cloud Armor policies. Previously, alpha and beta\nversions of this API were used to read firewall policies. This usage is\nnow disabled for most organizations. Use firewallPolicies.getAssociation\ninstead.", + "flatPath": "locations/global/securityPolicies/{securityPolicy}/getAssociation", + "httpMethod": "GET", + "id": "compute.organizationSecurityPolicies.getAssociation", "parameterOrder": [ - "project", - "region", - "backendService" + "securityPolicy" ], "parameters": { - "backendService": { - "description": "Name of the BackendService resource for which to get health.", - "location": "path", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "required": true, - "type": "string" - }, - "project": { - "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, + "name": { + "description": "The name of the association to get from the security policy.", + "location": "query", "type": "string" }, - "region": { - "description": "Name of the region scoping this request.", + "securityPolicy": { + "description": "Name of the security policy to which the queried rule belongs.", "location": "path", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "pattern": "(securityPolicies/)?[0-9]{0,20}", "required": true, "type": "string" } }, - "path": "projects/{project}/regions/{region}/backendServices/{backendService}/getHealth", - "request": { - "$ref": "ResourceGroupReference" - }, + "path": "locations/global/securityPolicies/{securityPolicy}/getAssociation", "response": { - "$ref": "BackendServiceGroupHealth" + "$ref": "SecurityPolicyAssociation" }, "scopes": [ "https://www.googleapis.com/auth/cloud-platform", @@ -20125,48 +21923,32 @@ "https://www.googleapis.com/auth/compute.readonly" ] }, - "getIamPolicy": { - "description": "Gets the access control policy for a resource. May be empty if no such policy or resource exists.", - "flatPath": "projects/{project}/regions/{region}/backendServices/{resource}/getIamPolicy", + "getRule": { + "description": "Gets a rule at the specified priority.\n\nUse this API to read Cloud Armor policies. Previously, alpha and beta\nversions of this API were used to read firewall policies. This usage is now\ndisabled for most organizations. Use firewallPolicies.getRule instead.", + "flatPath": "locations/global/securityPolicies/{securityPolicy}/getRule", "httpMethod": "GET", - "id": "compute.regionBackendServices.getIamPolicy", + "id": "compute.organizationSecurityPolicies.getRule", "parameterOrder": [ - "project", - "region", - "resource" + "securityPolicy" ], "parameters": { - "optionsRequestedPolicyVersion": { - "description": "Requested IAM Policy version.", + "priority": { + "description": "The priority of the rule to get from the security policy.", "format": "int32", "location": "query", "type": "integer" }, - "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": "The name of the region for this request.", - "location": "path", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "required": true, - "type": "string" - }, - "resource": { - "description": "Name or id of the resource for this request.", + "securityPolicy": { + "description": "Name of the security policy to which the queried rule belongs.", "location": "path", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "pattern": "(securityPolicies/)?[0-9]{0,20}", "required": true, "type": "string" } }, - "path": "projects/{project}/regions/{region}/backendServices/{resource}/getIamPolicy", + "path": "locations/global/securityPolicies/{securityPolicy}/getRule", "response": { - "$ref": "Policy" + "$ref": "SecurityPolicyRule" }, "scopes": [ "https://www.googleapis.com/auth/cloud-platform", @@ -20175,38 +21957,25 @@ ] }, "insert": { - "description": "Creates a regional BackendService resource in the specified project using the data included in the request. For more information, see Backend services overview.", - "flatPath": "projects/{project}/regions/{region}/backendServices", + "description": "Creates a new policy in the specified organization using the data included\nin the request.\n\nUse this API to add Cloud Armor policies. Previously, alpha and beta\nversions of this API were used to add firewall policies. This usage is now\ndisabled for most organizations. Use firewallPolicies.insert instead.", + "flatPath": "locations/global/securityPolicies", "httpMethod": "POST", - "id": "compute.regionBackendServices.insert", - "parameterOrder": [ - "project", - "region" - ], + "id": "compute.organizationSecurityPolicies.insert", "parameters": { - "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 scoping this request.", - "location": "path", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "required": true, + "parentId": { + "description": "Parent ID for this request. The ID can be either be \"folders/[FOLDER_ID]\"\nif the parent is a folder or \"organizations/[ORGANIZATION_ID]\" if the\nparent is an organization.", + "location": "query", "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. 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).", + "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).", "location": "query", "type": "string" } }, - "path": "projects/{project}/regions/{region}/backendServices", + "path": "locations/global/securityPolicies", "request": { - "$ref": "BackendService" + "$ref": "SecurityPolicy" }, "response": { "$ref": "Operation" @@ -20217,61 +21986,48 @@ ] }, "list": { - "description": "Retrieves the list of regional BackendService resources available to the specified project in the given region.", - "flatPath": "projects/{project}/regions/{region}/backendServices", + "description": "List all the policies that have been configured for the specified\norganization.\n\nUse this API to read Cloud Armor policies. Previously, alpha and beta\nversions of this API were used to read firewall policies. This usage is now\ndisabled for most organizations. Use firewallPolicies.list instead.", + "flatPath": "locations/global/securityPolicies", "httpMethod": "GET", - "id": "compute.regionBackendServices.list", - "parameterOrder": [ - "project", - "region" - ], + "id": "compute.organizationSecurityPolicies.list", "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` 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) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.", + "description": "A filter expression that filters resources listed in the response. Most\nCompute resources support two types of filter expressions:\nexpressions that support regular expressions and expressions that follow\nAPI improvement proposal AIP-160.\nThese two types of filter expressions cannot be mixed in one request.\n\nIf you want to use AIP-160, your expression must specify the field name, an\noperator, and the value that you want to use for filtering. The value\nmust be a string, a number, or a boolean. The operator\nmust be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`.\n\nFor example, if you are filtering Compute Engine instances, you can\nexclude instances named `example-instance` by specifying\n`name != example-instance`.\n\nThe `:*` comparison can be used to test whether a key has been defined.\nFor example, to find all objects with `owner` label use:\n```\nlabels.owner:*\n```\n\nYou can also filter nested fields. For example, you could specify\n`scheduling.automaticRestart = false` to include instances only\nif they are not scheduled for automatic restarts. You can use filtering\non nested fields to filter based onresource labels.\n\nTo filter on multiple expressions, provide each separate expression within\nparentheses. For example:\n```\n(scheduling.automaticRestart = true)\n(cpuPlatform = \"Intel Skylake\")\n```\nBy default, each expression is an `AND` expression. However, you\ncan include `AND` and `OR` expressions explicitly.\nFor example:\n```\n(cpuPlatform = \"Intel Skylake\") OR\n(cpuPlatform = \"Intel Broadwell\") AND\n(scheduling.automaticRestart = true)\n```\n\nIf you want to use a regular expression, use the `eq` (equal) or `ne`\n(not equal) operator against a single un-parenthesized expression with or\nwithout quotes or against multiple parenthesized expressions. Examples:\n\n`fieldname eq unquoted literal`\n`fieldname eq 'single quoted literal'`\n`fieldname eq \"double quoted literal\"`\n`(fieldname1 eq literal) (fieldname2 ne \"literal\")`\n\nThe literal value is interpreted as a regular expression using GoogleRE2 library syntax.\nThe literal value must match the entire field.\n\nFor example, to filter for instances that do not end with name \"instance\",\nyou would use `name ne .*instance`.\n\nYou cannot combine constraints on multiple fields using regular\nexpressions.", "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`)", + "description": "The maximum number of results per page that should be returned.\nIf the number of available results is larger than `maxResults`,\nCompute Engine returns a `nextPageToken` that can be used to get\nthe next page of results in subsequent list requests. Acceptable values are\n`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. 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.", + "description": "Sorts list results by a certain order. By default, results\nare returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation\ntimestamp using `orderBy=\"creationTimestamp desc\"`. This sorts\nresults based on the `creationTimestamp` field in\nreverse chronological order (newest result first). Use this to sort\nresources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or\n`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.", + "description": "Specifies a page token to use. Set `pageToken` to the\n`nextPageToken` returned by a previous list request to get\nthe 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 scoping this request.", - "location": "path", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "required": true, + "parentId": { + "description": "Parent ID for this request.", + "location": "query", "type": "string" }, "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", + "description": "Opt-in for partial success behavior which provides partial results in case\nof failure. The default value is false.\n\nFor example, when partial success behavior is enabled, aggregatedList for a\nsingle zone scope either returns all resources in the zone or no resources,\nwith an error code.", "location": "query", "type": "boolean" } }, - "path": "projects/{project}/regions/{region}/backendServices", + "path": "locations/global/securityPolicies", "response": { - "$ref": "BackendServiceList" + "$ref": "SecurityPolicyList" }, "scopes": [ "https://www.googleapis.com/auth/cloud-platform", @@ -20279,61 +22035,71 @@ "https://www.googleapis.com/auth/compute.readonly" ] }, - "listUsable": { - "description": "Retrieves an aggregated list of all usable backend services in the specified project in the given region.", - "flatPath": "projects/{project}/regions/{region}/backendServices/listUsable", + "listAssociations": { + "description": "Lists associations of a specified target, i.e., organization or folder.\n\nUse this API to read Cloud Armor policies. Previously, alpha and beta\nversions of this API were used to read firewall policies. This usage is\nnow disabled for most organizations. Use firewallPolicies.listAssociations\ninstead.", + "flatPath": "locations/global/securityPolicies/listAssociations", "httpMethod": "GET", - "id": "compute.regionBackendServices.listUsable", - "parameterOrder": [ - "project", - "region" - ], + "id": "compute.organizationSecurityPolicies.listAssociations", + "parameters": { + "targetResource": { + "description": "The target resource to list associations. It is an organization, or a\nfolder.", + "location": "query", + "type": "string" + } + }, + "path": "locations/global/securityPolicies/listAssociations", + "response": { + "$ref": "OrganizationSecurityPoliciesListAssociationsResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ] + }, + "listPreconfiguredExpressionSets": { + "description": "Gets the current list of preconfigured Web Application Firewall (WAF)\nexpressions.", + "flatPath": "locations/global/securityPolicies/listPreconfiguredExpressionSets", + "httpMethod": "GET", + "id": "compute.organizationSecurityPolicies.listPreconfiguredExpressionSets", "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` 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) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.", + "description": "A filter expression that filters resources listed in the response. Most\nCompute resources support two types of filter expressions:\nexpressions that support regular expressions and expressions that follow\nAPI improvement proposal AIP-160.\nThese two types of filter expressions cannot be mixed in one request.\n\nIf you want to use AIP-160, your expression must specify the field name, an\noperator, and the value that you want to use for filtering. The value\nmust be a string, a number, or a boolean. The operator\nmust be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`.\n\nFor example, if you are filtering Compute Engine instances, you can\nexclude instances named `example-instance` by specifying\n`name != example-instance`.\n\nThe `:*` comparison can be used to test whether a key has been defined.\nFor example, to find all objects with `owner` label use:\n```\nlabels.owner:*\n```\n\nYou can also filter nested fields. For example, you could specify\n`scheduling.automaticRestart = false` to include instances only\nif they are not scheduled for automatic restarts. You can use filtering\non nested fields to filter based onresource labels.\n\nTo filter on multiple expressions, provide each separate expression within\nparentheses. For example:\n```\n(scheduling.automaticRestart = true)\n(cpuPlatform = \"Intel Skylake\")\n```\nBy default, each expression is an `AND` expression. However, you\ncan include `AND` and `OR` expressions explicitly.\nFor example:\n```\n(cpuPlatform = \"Intel Skylake\") OR\n(cpuPlatform = \"Intel Broadwell\") AND\n(scheduling.automaticRestart = true)\n```\n\nIf you want to use a regular expression, use the `eq` (equal) or `ne`\n(not equal) operator against a single un-parenthesized expression with or\nwithout quotes or against multiple parenthesized expressions. Examples:\n\n`fieldname eq unquoted literal`\n`fieldname eq 'single quoted literal'`\n`fieldname eq \"double quoted literal\"`\n`(fieldname1 eq literal) (fieldname2 ne \"literal\")`\n\nThe literal value is interpreted as a regular expression using GoogleRE2 library syntax.\nThe literal value must match the entire field.\n\nFor example, to filter for instances that do not end with name \"instance\",\nyou would use `name ne .*instance`.\n\nYou cannot combine constraints on multiple fields using regular\nexpressions.", "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`)", + "description": "The maximum number of results per page that should be returned.\nIf the number of available results is larger than `maxResults`,\nCompute Engine returns a `nextPageToken` that can be used to get\nthe next page of results in subsequent list requests. Acceptable values are\n`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. 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.", + "description": "Sorts list results by a certain order. By default, results\nare returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation\ntimestamp using `orderBy=\"creationTimestamp desc\"`. This sorts\nresults based on the `creationTimestamp` field in\nreverse chronological order (newest result first). Use this to sort\nresources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or\n`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.", + "description": "Specifies a page token to use. Set `pageToken` to the\n`nextPageToken` returned by a previous list request to get\nthe 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 scoping this request. It must be a string that meets the requirements in RFC1035.", - "location": "path", - "required": true, + "parentId": { + "description": "Parent ID for this request.", + "location": "query", "type": "string" }, "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", + "description": "Opt-in for partial success behavior which provides partial results in case\nof failure. The default value is false.\n\nFor example, when partial success behavior is enabled, aggregatedList for a\nsingle zone scope either returns all resources in the zone or no resources,\nwith an error code.", "location": "query", "type": "boolean" } }, - "path": "projects/{project}/regions/{region}/backendServices/listUsable", + "path": "locations/global/securityPolicies/listPreconfiguredExpressionSets", "response": { - "$ref": "BackendServiceListUsable" + "$ref": "SecurityPoliciesListPreconfiguredExpressionSetsResponse" }, "scopes": [ "https://www.googleapis.com/auth/cloud-platform", @@ -20341,48 +22107,34 @@ "https://www.googleapis.com/auth/compute.readonly" ] }, - "patch": { - "description": "Updates the specified regional BackendService resource with the data included in the request. For more information, see Understanding backend services This method supports PATCH semantics and uses the JSON merge patch format and processing rules.", - "flatPath": "projects/{project}/regions/{region}/backendServices/{backendService}", - "httpMethod": "PATCH", - "id": "compute.regionBackendServices.patch", + "move": { + "description": "Moves the specified security policy.\n\nUse this API to modify Cloud Armor policies. Previously, alpha and beta\nversions of this API were used to modify firewall policies. This usage is\nnow disabled for most organizations. Use firewallPolicies.move instead.", + "flatPath": "locations/global/securityPolicies/{securityPolicy}/move", + "httpMethod": "POST", + "id": "compute.organizationSecurityPolicies.move", "parameterOrder": [ - "project", - "region", - "backendService" + "securityPolicy" ], "parameters": { - "backendService": { - "description": "Name of the BackendService resource to patch.", - "location": "path", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "required": true, + "parentId": { + "description": "The new parent of the security policy.", + "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, + "requestId": { + "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).", + "location": "query", "type": "string" }, - "region": { - "description": "Name of the region scoping this request.", + "securityPolicy": { + "description": "Name of the security policy to update.", "location": "path", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "pattern": "(securityPolicies/)?[0-9]{0,20}", "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. 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).", - "location": "query", - "type": "string" } }, - "path": "projects/{project}/regions/{region}/backendServices/{backendService}", - "request": { - "$ref": "BackendService" - }, + "path": "locations/global/securityPolicies/{securityPolicy}/move", "response": { "$ref": "Operation" }, @@ -20391,91 +22143,71 @@ "https://www.googleapis.com/auth/compute" ] }, - "setIamPolicy": { - "description": "Sets the access control policy on the specified resource. Replaces any existing policy.", - "flatPath": "projects/{project}/regions/{region}/backendServices/{resource}/setIamPolicy", - "httpMethod": "POST", - "id": "compute.regionBackendServices.setIamPolicy", + "patch": { + "description": "Patches the specified policy with the data included in the request.\n\nUse this API to modify Cloud Armor policies. Previously, alpha and beta\nversions of this API were used to modify firewall policies. This usage is\nnow disabled for most organizations. Use firewallPolicies.patch instead.", + "flatPath": "locations/global/securityPolicies/{securityPolicy}", + "httpMethod": "PATCH", + "id": "compute.organizationSecurityPolicies.patch", "parameterOrder": [ - "project", - "region", - "resource" + "securityPolicy" ], "parameters": { - "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": "The name of the region for this request.", - "location": "path", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "required": true, + "requestId": { + "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).", + "location": "query", "type": "string" }, - "resource": { - "description": "Name or id of the resource for this request.", + "securityPolicy": { + "description": "Name of the security policy to update.", "location": "path", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "pattern": "(securityPolicies/)?[0-9]{0,20}", "required": true, "type": "string" } }, - "path": "projects/{project}/regions/{region}/backendServices/{resource}/setIamPolicy", + "path": "locations/global/securityPolicies/{securityPolicy}", "request": { - "$ref": "RegionSetPolicyRequest" + "$ref": "SecurityPolicy" }, "response": { - "$ref": "Policy" + "$ref": "Operation" }, "scopes": [ "https://www.googleapis.com/auth/cloud-platform", "https://www.googleapis.com/auth/compute" ] }, - "setSecurityPolicy": { - "description": "Sets the Google Cloud Armor security policy for the specified backend service. For more information, see Google Cloud Armor Overview", - "flatPath": "projects/{project}/regions/{region}/backendServices/{backendService}/setSecurityPolicy", + "patchRule": { + "description": "Patches a rule at the specified priority.\n\nUse this API to modify Cloud Armor policies. Previously, alpha and beta\nversions of this API were used to modify firewall policies. This usage is\nnow disabled for most organizations. Use firewallPolicies.patchRule\ninstead.", + "flatPath": "locations/global/securityPolicies/{securityPolicy}/patchRule", "httpMethod": "POST", - "id": "compute.regionBackendServices.setSecurityPolicy", + "id": "compute.organizationSecurityPolicies.patchRule", "parameterOrder": [ - "project", - "region", - "backendService" + "securityPolicy" ], "parameters": { - "backendService": { - "description": "Name of the BackendService resource to which the security policy should be set. The name should conform to RFC1035.", - "location": "path", - "required": true, - "type": "string" + "priority": { + "description": "The priority of the rule to patch.", + "format": "int32", + "location": "query", + "type": "integer" }, - "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, + "requestId": { + "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).", + "location": "query", "type": "string" }, - "region": { - "description": "Name of the region scoping this request.", + "securityPolicy": { + "description": "Name of the security policy to update.", "location": "path", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "pattern": "(securityPolicies/)?[0-9]{0,20}", "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. 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).", - "location": "query", - "type": "string" } }, - "path": "projects/{project}/regions/{region}/backendServices/{backendService}/setSecurityPolicy", + "path": "locations/global/securityPolicies/{securityPolicy}/patchRule", "request": { - "$ref": "SecurityPolicyReference" + "$ref": "SecurityPolicyRule" }, "response": { "$ref": "Operation" @@ -20485,94 +22217,71 @@ "https://www.googleapis.com/auth/compute" ] }, - "testIamPermissions": { - "description": "Returns permissions that a caller has on the specified resource.", - "flatPath": "projects/{project}/regions/{region}/backendServices/{resource}/testIamPermissions", + "removeAssociation": { + "description": "Removes an association for the specified security policy.\n\nUse this API to modify Cloud Armor policies. Previously, alpha and beta\nversions of this API were used to modify firewall policies. This usage is\nnow disabled for most organizations. Use firewallPolicies.removeAssociation\ninstead.", + "flatPath": "locations/global/securityPolicies/{securityPolicy}/removeAssociation", "httpMethod": "POST", - "id": "compute.regionBackendServices.testIamPermissions", + "id": "compute.organizationSecurityPolicies.removeAssociation", "parameterOrder": [ - "project", - "region", - "resource" + "securityPolicy" ], "parameters": { - "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, + "name": { + "description": "Name for the attachment that will be removed.", + "location": "query", "type": "string" }, - "region": { - "description": "The name of the region for this request.", - "location": "path", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "required": true, + "requestId": { + "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).", + "location": "query", "type": "string" }, - "resource": { - "description": "Name or id of the resource for this request.", + "securityPolicy": { + "description": "Name of the security policy to update.", "location": "path", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "pattern": "(securityPolicies/)?[0-9]{0,20}", "required": true, "type": "string" } }, - "path": "projects/{project}/regions/{region}/backendServices/{resource}/testIamPermissions", - "request": { - "$ref": "TestPermissionsRequest" - }, + "path": "locations/global/securityPolicies/{securityPolicy}/removeAssociation", "response": { - "$ref": "TestPermissionsResponse" + "$ref": "Operation" }, "scopes": [ "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" + "https://www.googleapis.com/auth/compute" ] }, - "update": { - "description": "Updates the specified regional BackendService resource with the data included in the request. For more information, see Backend services overview .", - "flatPath": "projects/{project}/regions/{region}/backendServices/{backendService}", - "httpMethod": "PUT", - "id": "compute.regionBackendServices.update", + "removeRule": { + "description": "Deletes a rule at the specified priority.\n\nUse this API to modify Cloud Armor policies. Previously, alpha and beta\nversions of this API were used to modify firewall policies. This usage is\nnow disabled for most organizations. Use firewallPolicies.removeRule\ninstead.", + "flatPath": "locations/global/securityPolicies/{securityPolicy}/removeRule", + "httpMethod": "POST", + "id": "compute.organizationSecurityPolicies.removeRule", "parameterOrder": [ - "project", - "region", - "backendService" + "securityPolicy" ], "parameters": { - "backendService": { - "description": "Name of the BackendService resource to update.", - "location": "path", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "required": true, - "type": "string" + "priority": { + "description": "The priority of the rule to remove from the security policy.", + "format": "int32", + "location": "query", + "type": "integer" }, - "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, + "requestId": { + "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).", + "location": "query", "type": "string" }, - "region": { - "description": "Name of the region scoping this request.", + "securityPolicy": { + "description": "Name of the security policy to update.", "location": "path", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "pattern": "(securityPolicies/)?[0-9]{0,20}", "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. 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).", - "location": "query", - "type": "string" } }, - "path": "projects/{project}/regions/{region}/backendServices/{backendService}", - "request": { - "$ref": "BackendService" - }, + "path": "locations/global/securityPolicies/{securityPolicy}/removeRule", "response": { "$ref": "Operation" }, @@ -20583,42 +22292,42 @@ } } }, - "regionCommitments": { + "packetMirrorings": { "methods": { "aggregatedList": { - "description": "Retrieves an aggregated list of commitments by region. To prevent failure, Google recommends that you set the `returnPartialSuccess` parameter to `true`.", - "flatPath": "projects/{project}/aggregated/commitments", + "description": "Retrieves an aggregated list of packetMirrorings.\n\nTo prevent failure, Google recommends that you set the\n`returnPartialSuccess` parameter to `true`.", + "flatPath": "projects/{project}/aggregated/packetMirrorings", "httpMethod": "GET", - "id": "compute.regionCommitments.aggregatedList", + "id": "compute.packetMirrorings.aggregatedList", "parameterOrder": [ "project" ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` 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) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.", + "description": "A filter expression that filters resources listed in the response. Most\nCompute resources support two types of filter expressions:\nexpressions that support regular expressions and expressions that follow\nAPI improvement proposal AIP-160.\nThese two types of filter expressions cannot be mixed in one request.\n\nIf you want to use AIP-160, your expression must specify the field name, an\noperator, and the value that you want to use for filtering. The value\nmust be a string, a number, or a boolean. The operator\nmust be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`.\n\nFor example, if you are filtering Compute Engine instances, you can\nexclude instances named `example-instance` by specifying\n`name != example-instance`.\n\nThe `:*` comparison can be used to test whether a key has been defined.\nFor example, to find all objects with `owner` label use:\n```\nlabels.owner:*\n```\n\nYou can also filter nested fields. For example, you could specify\n`scheduling.automaticRestart = false` to include instances only\nif they are not scheduled for automatic restarts. You can use filtering\non nested fields to filter based onresource labels.\n\nTo filter on multiple expressions, provide each separate expression within\nparentheses. For example:\n```\n(scheduling.automaticRestart = true)\n(cpuPlatform = \"Intel Skylake\")\n```\nBy default, each expression is an `AND` expression. However, you\ncan include `AND` and `OR` expressions explicitly.\nFor example:\n```\n(cpuPlatform = \"Intel Skylake\") OR\n(cpuPlatform = \"Intel Broadwell\") AND\n(scheduling.automaticRestart = true)\n```\n\nIf you want to use a regular expression, use the `eq` (equal) or `ne`\n(not equal) operator against a single un-parenthesized expression with or\nwithout quotes or against multiple parenthesized expressions. Examples:\n\n`fieldname eq unquoted literal`\n`fieldname eq 'single quoted literal'`\n`fieldname eq \"double quoted literal\"`\n`(fieldname1 eq literal) (fieldname2 ne \"literal\")`\n\nThe literal value is interpreted as a regular expression using GoogleRE2 library syntax.\nThe literal value must match the entire field.\n\nFor example, to filter for instances that do not end with name \"instance\",\nyou would use `name ne .*instance`.\n\nYou cannot combine constraints on multiple fields using regular\nexpressions.", "location": "query", "type": "string" }, "includeAllScopes": { - "description": "Indicates whether every visible scope for each scope type (zone, region, global) should be included in the response. For new resource types added after this field, the flag has no effect as new resource types will always include every visible scope for each scope type in response. For resource types which predate this field, if this flag is omitted or false, only scopes of the scope types where the resource type is expected to be found will be included.", + "description": "Indicates whether every visible scope for each scope type (zone, region,\nglobal) should be included in the response. For new resource types added\nafter this field, the flag has no effect as new resource types will always\ninclude every visible scope for each scope type in response. For resource\ntypes which predate this field, if this flag is omitted or false, only\nscopes of the scope types where the resource type is expected to be found\nwill be included.", "location": "query", "type": "boolean" }, "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`)", + "description": "The maximum number of results per page that should be returned.\nIf the number of available results is larger than `maxResults`,\nCompute Engine returns a `nextPageToken` that can be used to get\nthe next page of results in subsequent list requests. Acceptable values are\n`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. 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.", + "description": "Sorts list results by a certain order. By default, results\nare returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation\ntimestamp using `orderBy=\"creationTimestamp desc\"`. This sorts\nresults based on the `creationTimestamp` field in\nreverse chronological order (newest result first). Use this to sort\nresources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or\n`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.", + "description": "Specifies a page token to use. Set `pageToken` to the\n`nextPageToken` returned by a previous list request to get\nthe next page of results.", "location": "query", "type": "string" }, @@ -20630,20 +22339,20 @@ "type": "string" }, "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", + "description": "Opt-in for partial success behavior which provides partial results in case\nof failure. The default value is false.\n\nFor example, when partial success behavior is enabled, aggregatedList for a\nsingle zone scope either returns all resources in the zone or no resources,\nwith an error code.", "location": "query", "type": "boolean" }, "serviceProjectNumber": { - "description": "The Shared VPC service project id or service project number for which aggregated list request is invoked for subnetworks list-usable api.", + "description": "The Shared VPC service project id or service project number for which\naggregated list request is invoked for subnetworks list-usable api.", "format": "int64", "location": "query", "type": "string" } }, - "path": "projects/{project}/aggregated/commitments", + "path": "projects/{project}/aggregated/packetMirrorings", "response": { - "$ref": "CommitmentAggregatedList" + "$ref": "PacketMirroringAggregatedList" }, "scopes": [ "https://www.googleapis.com/auth/cloud-platform", @@ -20651,19 +22360,19 @@ "https://www.googleapis.com/auth/compute.readonly" ] }, - "get": { - "description": "Returns the specified commitment resource.", - "flatPath": "projects/{project}/regions/{region}/commitments/{commitment}", - "httpMethod": "GET", - "id": "compute.regionCommitments.get", + "delete": { + "description": "Deletes the specified PacketMirroring resource.", + "flatPath": "projects/{project}/regions/{region}/packetMirrorings/{packetMirroring}", + "httpMethod": "DELETE", + "id": "compute.packetMirrorings.delete", "parameterOrder": [ "project", "region", - "commitment" + "packetMirroring" ], "parameters": { - "commitment": { - "description": "Name of the commitment to return.", + "packetMirroring": { + "description": "Name of the PacketMirroring resource to delete.", "location": "path", "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", "required": true, @@ -20682,28 +22391,40 @@ "pattern": "[a-z](?:[-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\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).", + "location": "query", + "type": "string" } }, - "path": "projects/{project}/regions/{region}/commitments/{commitment}", + "path": "projects/{project}/regions/{region}/packetMirrorings/{packetMirroring}", "response": { - "$ref": "Commitment" + "$ref": "Operation" }, "scopes": [ "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" + "https://www.googleapis.com/auth/compute" ] }, - "insert": { - "description": "Creates a commitment in the specified project using the data included in the request.", - "flatPath": "projects/{project}/regions/{region}/commitments", - "httpMethod": "POST", - "id": "compute.regionCommitments.insert", + "get": { + "description": "Returns the specified PacketMirroring resource.", + "flatPath": "projects/{project}/regions/{region}/packetMirrorings/{packetMirroring}", + "httpMethod": "GET", + "id": "compute.packetMirrorings.get", "parameterOrder": [ "project", - "region" + "region", + "packetMirroring" ], "parameters": { + "packetMirroring": { + "description": "Name of the PacketMirroring resource to return.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "required": true, + "type": "string" + }, "project": { "description": "Project ID for this request.", "location": "path", @@ -20717,55 +22438,90 @@ "pattern": "[a-z](?:[-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. 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).", - "location": "query", - "type": "string" } }, - "path": "projects/{project}/regions/{region}/commitments", - "request": { - "$ref": "Commitment" - }, + "path": "projects/{project}/regions/{region}/packetMirrorings/{packetMirroring}", "response": { - "$ref": "Operation" + "$ref": "PacketMirroring" }, "scopes": [ "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" ] }, - "list": { - "description": "Retrieves a list of commitments contained within the specified region.", - "flatPath": "projects/{project}/regions/{region}/commitments", + "insert": { + "description": "Creates a PacketMirroring resource in the specified project and region\nusing the data included in the request.", + "flatPath": "projects/{project}/regions/{region}/packetMirrorings", + "httpMethod": "POST", + "id": "compute.packetMirrorings.insert", + "parameterOrder": [ + "project", + "region" + ], + "parameters": { + "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" + }, + "requestId": { + "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).", + "location": "query", + "type": "string" + } + }, + "path": "projects/{project}/regions/{region}/packetMirrorings", + "request": { + "$ref": "PacketMirroring" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ] + }, + "list": { + "description": "Retrieves a list of PacketMirroring resources available to the specified\nproject and region.", + "flatPath": "projects/{project}/regions/{region}/packetMirrorings", "httpMethod": "GET", - "id": "compute.regionCommitments.list", + "id": "compute.packetMirrorings.list", "parameterOrder": [ "project", "region" ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` 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) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.", + "description": "A filter expression that filters resources listed in the response. Most\nCompute resources support two types of filter expressions:\nexpressions that support regular expressions and expressions that follow\nAPI improvement proposal AIP-160.\nThese two types of filter expressions cannot be mixed in one request.\n\nIf you want to use AIP-160, your expression must specify the field name, an\noperator, and the value that you want to use for filtering. The value\nmust be a string, a number, or a boolean. The operator\nmust be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`.\n\nFor example, if you are filtering Compute Engine instances, you can\nexclude instances named `example-instance` by specifying\n`name != example-instance`.\n\nThe `:*` comparison can be used to test whether a key has been defined.\nFor example, to find all objects with `owner` label use:\n```\nlabels.owner:*\n```\n\nYou can also filter nested fields. For example, you could specify\n`scheduling.automaticRestart = false` to include instances only\nif they are not scheduled for automatic restarts. You can use filtering\non nested fields to filter based onresource labels.\n\nTo filter on multiple expressions, provide each separate expression within\nparentheses. For example:\n```\n(scheduling.automaticRestart = true)\n(cpuPlatform = \"Intel Skylake\")\n```\nBy default, each expression is an `AND` expression. However, you\ncan include `AND` and `OR` expressions explicitly.\nFor example:\n```\n(cpuPlatform = \"Intel Skylake\") OR\n(cpuPlatform = \"Intel Broadwell\") AND\n(scheduling.automaticRestart = true)\n```\n\nIf you want to use a regular expression, use the `eq` (equal) or `ne`\n(not equal) operator against a single un-parenthesized expression with or\nwithout quotes or against multiple parenthesized expressions. Examples:\n\n`fieldname eq unquoted literal`\n`fieldname eq 'single quoted literal'`\n`fieldname eq \"double quoted literal\"`\n`(fieldname1 eq literal) (fieldname2 ne \"literal\")`\n\nThe literal value is interpreted as a regular expression using GoogleRE2 library syntax.\nThe literal value must match the entire field.\n\nFor example, to filter for instances that do not end with name \"instance\",\nyou would use `name ne .*instance`.\n\nYou cannot combine constraints on multiple fields using regular\nexpressions.", "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`)", + "description": "The maximum number of results per page that should be returned.\nIf the number of available results is larger than `maxResults`,\nCompute Engine returns a `nextPageToken` that can be used to get\nthe next page of results in subsequent list requests. Acceptable values are\n`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. 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.", + "description": "Sorts list results by a certain order. By default, results\nare returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation\ntimestamp using `orderBy=\"creationTimestamp desc\"`. This sorts\nresults based on the `creationTimestamp` field in\nreverse chronological order (newest result first). Use this to sort\nresources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or\n`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.", + "description": "Specifies a page token to use. Set `pageToken` to the\n`nextPageToken` returned by a previous list request to get\nthe next page of results.", "location": "query", "type": "string" }, @@ -20784,14 +22540,14 @@ "type": "string" }, "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", + "description": "Opt-in for partial success behavior which provides partial results in case\nof failure. The default value is false.\n\nFor example, when partial success behavior is enabled, aggregatedList for a\nsingle zone scope either returns all resources in the zone or no resources,\nwith an error code.", "location": "query", "type": "boolean" } }, - "path": "projects/{project}/regions/{region}/commitments", + "path": "projects/{project}/regions/{region}/packetMirrorings", "response": { - "$ref": "CommitmentList" + "$ref": "PacketMirroringList" }, "scopes": [ "https://www.googleapis.com/auth/cloud-platform", @@ -20799,29 +22555,24 @@ "https://www.googleapis.com/auth/compute.readonly" ] }, - "update": { - "description": "Updates the specified commitment with the data included in the request. Update is performed only on selected fields included as part of update-mask. Only the following fields can be modified: auto_renew.", - "flatPath": "projects/{project}/regions/{region}/commitments/{commitment}", + "patch": { + "description": "Patches the specified PacketMirroring resource with the data included in\nthe request. This method supportsPATCH\nsemantics and usesJSON merge\npatch format and processing rules.", + "flatPath": "projects/{project}/regions/{region}/packetMirrorings/{packetMirroring}", "httpMethod": "PATCH", - "id": "compute.regionCommitments.update", + "id": "compute.packetMirrorings.patch", "parameterOrder": [ "project", "region", - "commitment" + "packetMirroring" ], "parameters": { - "commitment": { - "description": "Name of the commitment for which auto renew is being updated.", + "packetMirroring": { + "description": "Name of the PacketMirroring resource to patch.", "location": "path", "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", "required": true, "type": "string" }, - "paths": { - "location": "query", - "repeated": true, - "type": "string" - }, "project": { "description": "Project ID for this request.", "location": "path", @@ -20837,20 +22588,14 @@ "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. 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).", - "location": "query", - "type": "string" - }, - "updateMask": { - "description": "update_mask indicates fields to be updated as part of this request.", - "format": "google-fieldmask", + "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).", "location": "query", "type": "string" } }, - "path": "projects/{project}/regions/{region}/commitments/{commitment}", + "path": "projects/{project}/regions/{region}/packetMirrorings/{packetMirroring}", "request": { - "$ref": "Commitment" + "$ref": "PacketMirroring" }, "response": { "$ref": "Operation" @@ -20859,24 +22604,69 @@ "https://www.googleapis.com/auth/cloud-platform", "https://www.googleapis.com/auth/compute" ] + }, + "testIamPermissions": { + "description": "Returns permissions that a caller has on the specified resource.", + "flatPath": "projects/{project}/regions/{region}/packetMirrorings/{resource}/testIamPermissions", + "httpMethod": "POST", + "id": "compute.packetMirrorings.testIamPermissions", + "parameterOrder": [ + "project", + "region", + "resource" + ], + "parameters": { + "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": "The name of the region for this request.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "required": true, + "type": "string" + }, + "resource": { + "description": "Name or id of the resource for this request.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "required": true, + "type": "string" + } + }, + "path": "projects/{project}/regions/{region}/packetMirrorings/{resource}/testIamPermissions", + "request": { + "$ref": "TestPermissionsRequest" + }, + "response": { + "$ref": "TestPermissionsResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ] } } }, - "regionDiskTypes": { + "previewFeatures": { "methods": { "get": { - "description": "Returns the specified regional disk type.", - "flatPath": "projects/{project}/regions/{region}/diskTypes/{diskType}", + "description": "Returns the details of the given PreviewFeature.", + "flatPath": "projects/{project}/global/previewFeatures/{previewFeature}", "httpMethod": "GET", - "id": "compute.regionDiskTypes.get", + "id": "compute.previewFeatures.get", "parameterOrder": [ "project", - "region", - "diskType" + "previewFeature" ], "parameters": { - "diskType": { - "description": "Name of the disk type to return.", + "previewFeature": { + "description": "Name of the PreviewFeature for this request.", "location": "path", "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", "required": true, @@ -20888,18 +22678,11 @@ "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": "The name of the region for this request.", - "location": "path", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "required": true, - "type": "string" } }, - "path": "projects/{project}/regions/{region}/diskTypes/{diskType}", + "path": "projects/{project}/global/previewFeatures/{previewFeature}", "response": { - "$ref": "DiskType" + "$ref": "PreviewFeature" }, "scopes": [ "https://www.googleapis.com/auth/cloud-platform", @@ -20908,35 +22691,34 @@ ] }, "list": { - "description": "Retrieves a list of regional disk types available to the specified project.", - "flatPath": "projects/{project}/regions/{region}/diskTypes", + "description": "Returns the details of the given PreviewFeature.", + "flatPath": "projects/{project}/global/previewFeatures", "httpMethod": "GET", - "id": "compute.regionDiskTypes.list", + "id": "compute.previewFeatures.list", "parameterOrder": [ - "project", - "region" + "project" ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` 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) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.", + "description": "A filter expression that filters resources listed in the response. Most\nCompute resources support two types of filter expressions:\nexpressions that support regular expressions and expressions that follow\nAPI improvement proposal AIP-160.\nThese two types of filter expressions cannot be mixed in one request.\n\nIf you want to use AIP-160, your expression must specify the field name, an\noperator, and the value that you want to use for filtering. The value\nmust be a string, a number, or a boolean. The operator\nmust be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`.\n\nFor example, if you are filtering Compute Engine instances, you can\nexclude instances named `example-instance` by specifying\n`name != example-instance`.\n\nThe `:*` comparison can be used to test whether a key has been defined.\nFor example, to find all objects with `owner` label use:\n```\nlabels.owner:*\n```\n\nYou can also filter nested fields. For example, you could specify\n`scheduling.automaticRestart = false` to include instances only\nif they are not scheduled for automatic restarts. You can use filtering\non nested fields to filter based onresource labels.\n\nTo filter on multiple expressions, provide each separate expression within\nparentheses. For example:\n```\n(scheduling.automaticRestart = true)\n(cpuPlatform = \"Intel Skylake\")\n```\nBy default, each expression is an `AND` expression. However, you\ncan include `AND` and `OR` expressions explicitly.\nFor example:\n```\n(cpuPlatform = \"Intel Skylake\") OR\n(cpuPlatform = \"Intel Broadwell\") AND\n(scheduling.automaticRestart = true)\n```\n\nIf you want to use a regular expression, use the `eq` (equal) or `ne`\n(not equal) operator against a single un-parenthesized expression with or\nwithout quotes or against multiple parenthesized expressions. Examples:\n\n`fieldname eq unquoted literal`\n`fieldname eq 'single quoted literal'`\n`fieldname eq \"double quoted literal\"`\n`(fieldname1 eq literal) (fieldname2 ne \"literal\")`\n\nThe literal value is interpreted as a regular expression using GoogleRE2 library syntax.\nThe literal value must match the entire field.\n\nFor example, to filter for instances that do not end with name \"instance\",\nyou would use `name ne .*instance`.\n\nYou cannot combine constraints on multiple fields using regular\nexpressions.", "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`)", + "description": "The maximum number of results per page that should be returned.\nIf the number of available results is larger than `maxResults`,\nCompute Engine returns a `nextPageToken` that can be used to get\nthe next page of results in subsequent list requests. Acceptable values are\n`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. 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.", + "description": "Sorts list results by a certain order. By default, results\nare returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation\ntimestamp using `orderBy=\"creationTimestamp desc\"`. This sorts\nresults based on the `creationTimestamp` field in\nreverse chronological order (newest result first). Use this to sort\nresources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or\n`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.", + "description": "Specifies a page token to use. Set `pageToken` to the\n`nextPageToken` returned by a previous list request to get\nthe next page of results.", "location": "query", "type": "string" }, @@ -20947,46 +22729,34 @@ "required": true, "type": "string" }, - "region": { - "description": "The name of the region for this request.", - "location": "path", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "required": true, - "type": "string" - }, "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", + "description": "Opt-in for partial success behavior which provides partial results in case\nof failure. The default value is false.\n\nFor example, when partial success behavior is enabled, aggregatedList for a\nsingle zone scope either returns all resources in the zone or no resources,\nwith an error code.", "location": "query", "type": "boolean" } }, - "path": "projects/{project}/regions/{region}/diskTypes", + "path": "projects/{project}/global/previewFeatures", "response": { - "$ref": "RegionDiskTypeList" + "$ref": "PreviewFeatureList" }, "scopes": [ "https://www.googleapis.com/auth/cloud-platform", "https://www.googleapis.com/auth/compute", "https://www.googleapis.com/auth/compute.readonly" ] - } - } - }, - "regionDisks": { - "methods": { - "addResourcePolicies": { - "description": "Adds existing resource policies to a regional disk. You can only add one policy which will be applied to this disk for scheduling snapshot creation.", - "flatPath": "projects/{project}/regions/{region}/disks/{disk}/addResourcePolicies", - "httpMethod": "POST", - "id": "compute.regionDisks.addResourcePolicies", + }, + "update": { + "description": "Patches the given PreviewFeature. This method is used to enable or disable\na PreviewFeature.", + "flatPath": "projects/{project}/global/previewFeatures/{previewFeature}", + "httpMethod": "PATCH", + "id": "compute.previewFeatures.update", "parameterOrder": [ "project", - "region", - "disk" + "previewFeature" ], "parameters": { - "disk": { - "description": "The disk name for this request.", + "previewFeature": { + "description": "Name of the PreviewFeature for this request.", "location": "path", "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", "required": true, @@ -20999,22 +22769,15 @@ "required": true, "type": "string" }, - "region": { - "description": "The name of the region for this request.", - "location": "path", - "pattern": "[a-z](?:[-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. 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).", + "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).", "location": "query", "type": "string" } }, - "path": "projects/{project}/regions/{region}/disks/{disk}/addResourcePolicies", + "path": "projects/{project}/global/previewFeatures/{previewFeature}", "request": { - "$ref": "RegionDisksAddResourcePoliciesRequest" + "$ref": "PreviewFeature" }, "response": { "$ref": "Operation" @@ -21023,15 +22786,18 @@ "https://www.googleapis.com/auth/cloud-platform", "https://www.googleapis.com/auth/compute" ] - }, - "bulkInsert": { - "description": "Bulk create a set of disks.", - "flatPath": "projects/{project}/regions/{region}/disks/bulkInsert", + } + } + }, + "projects": { + "methods": { + "disableXpnHost": { + "description": "Disable this project as a shared VPC host project.", + "flatPath": "projects/{project}/disableXpnHost", "httpMethod": "POST", - "id": "compute.regionDisks.bulkInsert", + "id": "compute.projects.disableXpnHost", "parameterOrder": [ - "project", - "region" + "project" ], "parameters": { "project": { @@ -21041,23 +22807,13 @@ "required": true, "type": "string" }, - "region": { - "description": "The name of the region for this request.", - "location": "path", - "pattern": "[a-z](?:[-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. 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).", + "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).", "location": "query", "type": "string" } }, - "path": "projects/{project}/regions/{region}/disks/bulkInsert", - "request": { - "$ref": "BulkInsertDiskResource" - }, + "path": "projects/{project}/disableXpnHost", "response": { "$ref": "Operation" }, @@ -21066,24 +22822,15 @@ "https://www.googleapis.com/auth/compute" ] }, - "createSnapshot": { - "description": "Creates a snapshot of a specified persistent disk. For regular snapshot creation, consider using snapshots.insert instead, as that method supports more features, such as creating snapshots in a project different from the source disk project.", - "flatPath": "projects/{project}/regions/{region}/disks/{disk}/createSnapshot", + "disableXpnResource": { + "description": "Disable a service resource (also known as service project) associated with\nthis host project.", + "flatPath": "projects/{project}/disableXpnResource", "httpMethod": "POST", - "id": "compute.regionDisks.createSnapshot", + "id": "compute.projects.disableXpnResource", "parameterOrder": [ - "project", - "region", - "disk" + "project" ], "parameters": { - "disk": { - "description": "Name of the regional persistent disk to snapshot.", - "location": "path", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "required": true, - "type": "string" - }, "project": { "description": "Project ID for this request.", "location": "path", @@ -21091,22 +22838,15 @@ "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" - }, "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. 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).", + "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).", "location": "query", "type": "string" } }, - "path": "projects/{project}/regions/{region}/disks/{disk}/createSnapshot", + "path": "projects/{project}/disableXpnResource", "request": { - "$ref": "Snapshot" + "$ref": "ProjectsDisableXpnResourceRequest" }, "response": { "$ref": "Operation" @@ -21116,23 +22856,15 @@ "https://www.googleapis.com/auth/compute" ] }, - "delete": { - "description": "Deletes the specified regional persistent disk. Deleting a regional disk removes all the replicas of its data permanently and is irreversible. However, deleting a disk does not delete any snapshots previously made from the disk. You must separately delete snapshots.", - "flatPath": "projects/{project}/regions/{region}/disks/{disk}", - "httpMethod": "DELETE", - "id": "compute.regionDisks.delete", + "enableXpnHost": { + "description": "Enable this project as a shared VPC host project.", + "flatPath": "projects/{project}/enableXpnHost", + "httpMethod": "POST", + "id": "compute.projects.enableXpnHost", "parameterOrder": [ - "project", - "region", - "disk" + "project" ], "parameters": { - "disk": { - "description": "Name of the regional persistent disk to delete.", - "location": "path", - "required": true, - "type": "string" - }, "project": { "description": "Project ID for this request.", "location": "path", @@ -21140,20 +22872,13 @@ "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" - }, "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. 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).", + "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).", "location": "query", "type": "string" } }, - "path": "projects/{project}/regions/{region}/disks/{disk}", + "path": "projects/{project}/enableXpnHost", "response": { "$ref": "Operation" }, @@ -21162,24 +22887,15 @@ "https://www.googleapis.com/auth/compute" ] }, - "get": { - "description": "Returns a specified regional persistent disk.", - "flatPath": "projects/{project}/regions/{region}/disks/{disk}", - "httpMethod": "GET", - "id": "compute.regionDisks.get", + "enableXpnResource": { + "description": "Enable service resource (a.k.a service project) for a host project, so that\nsubnets in the host project can be used by instances in the service\nproject.", + "flatPath": "projects/{project}/enableXpnResource", + "httpMethod": "POST", + "id": "compute.projects.enableXpnResource", "parameterOrder": [ - "project", - "region", - "disk" + "project" ], "parameters": { - "disk": { - "description": "Name of the regional persistent disk to return.", - "location": "path", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "required": true, - "type": "string" - }, "project": { "description": "Project ID for this request.", "location": "path", @@ -21187,66 +22903,44 @@ "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, + "requestId": { + "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).", + "location": "query", "type": "string" } }, - "path": "projects/{project}/regions/{region}/disks/{disk}", + "path": "projects/{project}/enableXpnResource", + "request": { + "$ref": "ProjectsEnableXpnResourceRequest" + }, "response": { - "$ref": "Disk" + "$ref": "Operation" }, "scopes": [ "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" + "https://www.googleapis.com/auth/compute" ] }, - "getIamPolicy": { - "description": "Gets the access control policy for a resource. May be empty if no such policy or resource exists.", - "flatPath": "projects/{project}/regions/{region}/disks/{resource}/getIamPolicy", + "get": { + "description": "Returns the specified Project resource.\n\nTo decrease latency for this method, you can optionally omit any unneeded\ninformation from the response by using a field mask. This practice is\nespecially recommended for unused quota information (the `quotas` field).\nTo exclude one or more fields, set your request's `fields` query parameter\nto only include the fields you need. For example, to only include the `id`\nand `selfLink` fields, add the query parameter `?fields=id,selfLink` to\nyour request.", + "flatPath": "projects/{project}", "httpMethod": "GET", - "id": "compute.regionDisks.getIamPolicy", + "id": "compute.projects.get", "parameterOrder": [ - "project", - "region", - "resource" + "project" ], "parameters": { - "optionsRequestedPolicyVersion": { - "description": "Requested IAM Policy version.", - "format": "int32", - "location": "query", - "type": "integer" - }, "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": "The name of the region for this request.", - "location": "path", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "required": true, - "type": "string" - }, - "resource": { - "description": "Name or id of the resource for this request.", - "location": "path", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "required": true, - "type": "string" } }, - "path": "projects/{project}/regions/{region}/disks/{resource}/getIamPolicy", + "path": "projects/{project}", "response": { - "$ref": "Policy" + "$ref": "Project" }, "scopes": [ "https://www.googleapis.com/auth/cloud-platform", @@ -21254,14 +22948,13 @@ "https://www.googleapis.com/auth/compute.readonly" ] }, - "insert": { - "description": "Creates a persistent regional disk in the specified project using the data included in the request.", - "flatPath": "projects/{project}/regions/{region}/disks", - "httpMethod": "POST", - "id": "compute.regionDisks.insert", + "getXpnHost": { + "description": "Gets the shared VPC host project that this project links to. May be empty\nif no link exists.", + "flatPath": "projects/{project}/getXpnHost", + "httpMethod": "GET", + "id": "compute.projects.getXpnHost", "parameterOrder": [ - "project", - "region" + "project" ], "parameters": { "project": { @@ -21270,67 +22963,46 @@ "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" - }, - "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. 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).", - "location": "query", - "type": "string" - }, - "sourceImage": { - "description": "Source image to restore onto a disk. This field is optional.", - "location": "query", - "type": "string" } }, - "path": "projects/{project}/regions/{region}/disks", - "request": { - "$ref": "Disk" - }, + "path": "projects/{project}/getXpnHost", "response": { - "$ref": "Operation" + "$ref": "Project" }, "scopes": [ "https://www.googleapis.com/auth/cloud-platform", "https://www.googleapis.com/auth/compute" ] }, - "list": { - "description": "Retrieves the list of persistent disks contained within the specified region.", - "flatPath": "projects/{project}/regions/{region}/disks", + "getXpnResources": { + "description": "Gets service resources (a.k.a service project) associated with this host\nproject.", + "flatPath": "projects/{project}/getXpnResources", "httpMethod": "GET", - "id": "compute.regionDisks.list", + "id": "compute.projects.getXpnResources", "parameterOrder": [ - "project", - "region" + "project" ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` 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) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.", + "description": "A filter expression that filters resources listed in the response. Most\nCompute resources support two types of filter expressions:\nexpressions that support regular expressions and expressions that follow\nAPI improvement proposal AIP-160.\nThese two types of filter expressions cannot be mixed in one request.\n\nIf you want to use AIP-160, your expression must specify the field name, an\noperator, and the value that you want to use for filtering. The value\nmust be a string, a number, or a boolean. The operator\nmust be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`.\n\nFor example, if you are filtering Compute Engine instances, you can\nexclude instances named `example-instance` by specifying\n`name != example-instance`.\n\nThe `:*` comparison can be used to test whether a key has been defined.\nFor example, to find all objects with `owner` label use:\n```\nlabels.owner:*\n```\n\nYou can also filter nested fields. For example, you could specify\n`scheduling.automaticRestart = false` to include instances only\nif they are not scheduled for automatic restarts. You can use filtering\non nested fields to filter based onresource labels.\n\nTo filter on multiple expressions, provide each separate expression within\nparentheses. For example:\n```\n(scheduling.automaticRestart = true)\n(cpuPlatform = \"Intel Skylake\")\n```\nBy default, each expression is an `AND` expression. However, you\ncan include `AND` and `OR` expressions explicitly.\nFor example:\n```\n(cpuPlatform = \"Intel Skylake\") OR\n(cpuPlatform = \"Intel Broadwell\") AND\n(scheduling.automaticRestart = true)\n```\n\nIf you want to use a regular expression, use the `eq` (equal) or `ne`\n(not equal) operator against a single un-parenthesized expression with or\nwithout quotes or against multiple parenthesized expressions. Examples:\n\n`fieldname eq unquoted literal`\n`fieldname eq 'single quoted literal'`\n`fieldname eq \"double quoted literal\"`\n`(fieldname1 eq literal) (fieldname2 ne \"literal\")`\n\nThe literal value is interpreted as a regular expression using GoogleRE2 library syntax.\nThe literal value must match the entire field.\n\nFor example, to filter for instances that do not end with name \"instance\",\nyou would use `name ne .*instance`.\n\nYou cannot combine constraints on multiple fields using regular\nexpressions.", "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`)", + "description": "The maximum number of results per page that should be returned.\nIf the number of available results is larger than `maxResults`,\nCompute Engine returns a `nextPageToken` that can be used to get\nthe next page of results in subsequent list requests. Acceptable values are\n`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. 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.", + "description": "Sorts list results by a certain order. By default, results\nare returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation\ntimestamp using `orderBy=\"creationTimestamp desc\"`. This sorts\nresults based on the `creationTimestamp` field in\nreverse chronological order (newest result first). Use this to sort\nresources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or\n`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.", + "description": "Specifies a page token to use. Set `pageToken` to the\n`nextPageToken` returned by a previous list request to get\nthe next page of results.", "location": "query", "type": "string" }, @@ -21341,45 +23013,51 @@ "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" - }, "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", + "description": "Opt-in for partial success behavior which provides partial results in case\nof failure. The default value is false.\n\nFor example, when partial success behavior is enabled, aggregatedList for a\nsingle zone scope either returns all resources in the zone or no resources,\nwith an error code.", "location": "query", "type": "boolean" } }, - "path": "projects/{project}/regions/{region}/disks", + "path": "projects/{project}/getXpnResources", "response": { - "$ref": "DiskList" + "$ref": "ProjectsGetXpnResources" }, "scopes": [ "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" + "https://www.googleapis.com/auth/compute" ] }, - "removeResourcePolicies": { - "description": "Removes resource policies from a regional disk.", - "flatPath": "projects/{project}/regions/{region}/disks/{disk}/removeResourcePolicies", + "listXpnHosts": { + "description": "Lists all shared VPC host projects visible to the user in an organization.", + "flatPath": "projects/{project}/listXpnHosts", "httpMethod": "POST", - "id": "compute.regionDisks.removeResourcePolicies", + "id": "compute.projects.listXpnHosts", "parameterOrder": [ - "project", - "region", - "disk" + "project" ], "parameters": { - "disk": { - "description": "The disk name for this request.", - "location": "path", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "required": true, + "filter": { + "description": "A filter expression that filters resources listed in the response. Most\nCompute resources support two types of filter expressions:\nexpressions that support regular expressions and expressions that follow\nAPI improvement proposal AIP-160.\nThese two types of filter expressions cannot be mixed in one request.\n\nIf you want to use AIP-160, your expression must specify the field name, an\noperator, and the value that you want to use for filtering. The value\nmust be a string, a number, or a boolean. The operator\nmust be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`.\n\nFor example, if you are filtering Compute Engine instances, you can\nexclude instances named `example-instance` by specifying\n`name != example-instance`.\n\nThe `:*` comparison can be used to test whether a key has been defined.\nFor example, to find all objects with `owner` label use:\n```\nlabels.owner:*\n```\n\nYou can also filter nested fields. For example, you could specify\n`scheduling.automaticRestart = false` to include instances only\nif they are not scheduled for automatic restarts. You can use filtering\non nested fields to filter based onresource labels.\n\nTo filter on multiple expressions, provide each separate expression within\nparentheses. For example:\n```\n(scheduling.automaticRestart = true)\n(cpuPlatform = \"Intel Skylake\")\n```\nBy default, each expression is an `AND` expression. However, you\ncan include `AND` and `OR` expressions explicitly.\nFor example:\n```\n(cpuPlatform = \"Intel Skylake\") OR\n(cpuPlatform = \"Intel Broadwell\") AND\n(scheduling.automaticRestart = true)\n```\n\nIf you want to use a regular expression, use the `eq` (equal) or `ne`\n(not equal) operator against a single un-parenthesized expression with or\nwithout quotes or against multiple parenthesized expressions. Examples:\n\n`fieldname eq unquoted literal`\n`fieldname eq 'single quoted literal'`\n`fieldname eq \"double quoted literal\"`\n`(fieldname1 eq literal) (fieldname2 ne \"literal\")`\n\nThe literal value is interpreted as a regular expression using GoogleRE2 library syntax.\nThe literal value must match the entire field.\n\nFor example, to filter for instances that do not end with name \"instance\",\nyou would use `name ne .*instance`.\n\nYou cannot combine constraints on multiple fields using regular\nexpressions.", + "location": "query", + "type": "string" + }, + "maxResults": { + "default": "500", + "description": "The maximum number of results per page that should be returned.\nIf the number of available results is larger than `maxResults`,\nCompute Engine returns a `nextPageToken` that can be used to get\nthe next page of results in subsequent list requests. Acceptable values are\n`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\nare returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation\ntimestamp using `orderBy=\"creationTimestamp desc\"`. This sorts\nresults based on the `creationTimestamp` field in\nreverse chronological order (newest result first). Use this to sort\nresources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or\n`creationTimestamp desc` is supported.", + "location": "query", + "type": "string" + }, + "pageToken": { + "description": "Specifies a page token to use. Set `pageToken` to the\n`nextPageToken` returned by a previous list request to get\nthe next page of results.", + "location": "query", "type": "string" }, "project": { @@ -21389,72 +23067,50 @@ "required": true, "type": "string" }, - "region": { - "description": "The name of the region for this request.", - "location": "path", - "pattern": "[a-z](?:[-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. 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).", + "returnPartialSuccess": { + "description": "Opt-in for partial success behavior which provides partial results in case\nof failure. The default value is false.\n\nFor example, when partial success behavior is enabled, aggregatedList for a\nsingle zone scope either returns all resources in the zone or no resources,\nwith an error code.", "location": "query", - "type": "string" + "type": "boolean" } }, - "path": "projects/{project}/regions/{region}/disks/{disk}/removeResourcePolicies", + "path": "projects/{project}/listXpnHosts", "request": { - "$ref": "RegionDisksRemoveResourcePoliciesRequest" + "$ref": "ProjectsListXpnHostsRequest" }, "response": { - "$ref": "Operation" + "$ref": "XpnHostList" }, "scopes": [ "https://www.googleapis.com/auth/cloud-platform", "https://www.googleapis.com/auth/compute" ] }, - "resize": { - "description": "Resizes the specified regional persistent disk.", - "flatPath": "projects/{project}/regions/{region}/disks/{disk}/resize", + "moveDisk": { + "deprecated": true, + "description": "Moves a persistent disk from one zone to another.\n*Note*: The moveDisk API will be deprecated on September 29, 2026.\n\nStarting September 29, 2025, you can't use the moveDisk API on new\nprojects. To move a disk to a different region or zone, follow the steps in\n[Change the location of a\ndisk](https://cloud.google.com/compute/docs/disks/migrate-to-hyperdisk#migrate-to-hd).\n\nProjects that already use the moveDisk API can continue usage until\nSeptember 29, 2026.\n\nStarting November 1, 2025, API responses will include a warning message in\nthe response body about the upcoming deprecation. You can skip the message\nto continue using the service without interruption.", + "flatPath": "projects/{project}/moveDisk", "httpMethod": "POST", - "id": "compute.regionDisks.resize", + "id": "compute.projects.moveDisk", "parameterOrder": [ - "project", - "region", - "disk" + "project" ], "parameters": { - "disk": { - "description": "Name of the regional persistent disk.", - "location": "path", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "required": true, - "type": "string" - }, "project": { - "description": "The project ID for this request.", + "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" - }, "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. 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).", + "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).", "location": "query", "type": "string" } }, - "path": "projects/{project}/regions/{region}/disks/{disk}/resize", + "path": "projects/{project}/moveDisk", "request": { - "$ref": "RegionDisksResizeRequest" + "$ref": "DiskMoveRequest" }, "response": { "$ref": "Operation" @@ -21464,15 +23120,14 @@ "https://www.googleapis.com/auth/compute" ] }, - "setIamPolicy": { - "description": "Sets the access control policy on the specified resource. Replaces any existing policy.", - "flatPath": "projects/{project}/regions/{region}/disks/{resource}/setIamPolicy", + "moveInstance": { + "deprecated": true, + "description": "Moves an instance and its attached persistent disks from one zone to\nanother.\n*Note*: Moving VMs or disks by using this method might\n cause unexpected behavior. For more information, see the [known\n issue](/compute/docs/troubleshooting/known-issues#moving_vms_or_disks_using_the_moveinstance_api_or_the_causes_unexpected_behavior).\n[Deprecated] This method is deprecated. See [moving instance across\nzones](/compute/docs/instances/moving-instance-across-zones) instead.", + "flatPath": "projects/{project}/moveInstance", "httpMethod": "POST", - "id": "compute.regionDisks.setIamPolicy", + "id": "compute.projects.moveInstance", "parameterOrder": [ - "project", - "region", - "resource" + "project" ], "parameters": { "project": { @@ -21482,42 +23137,31 @@ "required": true, "type": "string" }, - "region": { - "description": "The name of the region for this request.", - "location": "path", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "required": true, - "type": "string" - }, - "resource": { - "description": "Name or id of the resource for this request.", - "location": "path", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "required": true, + "requestId": { + "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).", + "location": "query", "type": "string" } }, - "path": "projects/{project}/regions/{region}/disks/{resource}/setIamPolicy", + "path": "projects/{project}/moveInstance", "request": { - "$ref": "RegionSetPolicyRequest" + "$ref": "InstanceMoveRequest" }, "response": { - "$ref": "Policy" + "$ref": "Operation" }, "scopes": [ "https://www.googleapis.com/auth/cloud-platform", "https://www.googleapis.com/auth/compute" ] }, - "setLabels": { - "description": "Sets the labels on the target regional disk.", - "flatPath": "projects/{project}/regions/{region}/disks/{resource}/setLabels", + "setCloudArmorTier": { + "description": "Sets the Cloud Armor tier of the project. To set ENTERPRISE or above the\nbilling account of the project must be subscribed to Cloud Armor\nEnterprise. See Subscribing\nto Cloud Armor Enterprise for more information.", + "flatPath": "projects/{project}/setCloudArmorTier", "httpMethod": "POST", - "id": "compute.regionDisks.setLabels", + "id": "compute.projects.setCloudArmorTier", "parameterOrder": [ - "project", - "region", - "resource" + "project" ], "parameters": { "project": { @@ -21527,29 +23171,15 @@ "required": true, "type": "string" }, - "region": { - "description": "The region for this request.", - "location": "path", - "pattern": "[a-z](?:[-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. 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).", + "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).", "location": "query", "type": "string" - }, - "resource": { - "description": "Name or id of the resource for this request.", - "location": "path", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "required": true, - "type": "string" } }, - "path": "projects/{project}/regions/{region}/disks/{resource}/setLabels", + "path": "projects/{project}/setCloudArmorTier", "request": { - "$ref": "RegionSetLabelsRequest" + "$ref": "ProjectsSetCloudArmorTierRequest" }, "response": { "$ref": "Operation" @@ -21559,24 +23189,15 @@ "https://www.googleapis.com/auth/compute" ] }, - "startAsyncReplication": { - "description": "Starts asynchronous replication. Must be invoked on the primary disk.", - "flatPath": "projects/{project}/regions/{region}/disks/{disk}/startAsyncReplication", + "setCommonInstanceMetadata": { + "description": "Sets metadata common to all instances within the specified project using\nthe data included in the request.", + "flatPath": "projects/{project}/setCommonInstanceMetadata", "httpMethod": "POST", - "id": "compute.regionDisks.startAsyncReplication", + "id": "compute.projects.setCommonInstanceMetadata", "parameterOrder": [ - "project", - "region", - "disk" + "project" ], "parameters": { - "disk": { - "description": "The name of the persistent disk.", - "location": "path", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "required": true, - "type": "string" - }, "project": { "description": "Project ID for this request.", "location": "path", @@ -21584,22 +23205,49 @@ "required": true, "type": "string" }, - "region": { - "description": "The name of the region for this request.", + "requestId": { + "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).", + "location": "query", + "type": "string" + } + }, + "path": "projects/{project}/setCommonInstanceMetadata", + "request": { + "$ref": "Metadata" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ] + }, + "setDefaultNetworkTier": { + "description": "Sets the default network tier of the project. The default network tier is\nused when an address/forwardingRule/instance is created without specifying\nthe network tier field.", + "flatPath": "projects/{project}/setDefaultNetworkTier", + "httpMethod": "POST", + "id": "compute.projects.setDefaultNetworkTier", + "parameterOrder": [ + "project" + ], + "parameters": { + "project": { + "description": "Project ID for this request.", "location": "path", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "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. 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).", + "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).", "location": "query", "type": "string" } }, - "path": "projects/{project}/regions/{region}/disks/{disk}/startAsyncReplication", + "path": "projects/{project}/setDefaultNetworkTier", "request": { - "$ref": "RegionDisksStartAsyncReplicationRequest" + "$ref": "ProjectsSetDefaultNetworkTierRequest" }, "response": { "$ref": "Operation" @@ -21609,24 +23257,57 @@ "https://www.googleapis.com/auth/compute" ] }, - "stopAsyncReplication": { - "description": "Stops asynchronous replication. Can be invoked either on the primary or on the secondary disk.", - "flatPath": "projects/{project}/regions/{region}/disks/{disk}/stopAsyncReplication", + "setUsageExportBucket": { + "description": "Enables the usage export feature and sets theusage export bucket\nwhere reports are stored. If you provide an empty request body using this\nmethod, the usage export feature will be disabled.", + "flatPath": "projects/{project}/setUsageExportBucket", "httpMethod": "POST", - "id": "compute.regionDisks.stopAsyncReplication", + "id": "compute.projects.setUsageExportBucket", "parameterOrder": [ - "project", - "region", - "disk" + "project" ], "parameters": { - "disk": { - "description": "The name of the persistent disk.", + "project": { + "description": "Project ID for this request.", "location": "path", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "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\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).", + "location": "query", + "type": "string" + } + }, + "path": "projects/{project}/setUsageExportBucket", + "request": { + "$ref": "UsageExportLocation" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/devstorage.full_control", + "https://www.googleapis.com/auth/devstorage.read_only", + "https://www.googleapis.com/auth/devstorage.read_write" + ] + } + } + }, + "publicAdvertisedPrefixes": { + "methods": { + "announce": { + "description": "Announces the specified PublicAdvertisedPrefix", + "flatPath": "projects/{project}/global/publicAdvertisedPrefixes/{publicAdvertisedPrefix}/announce", + "httpMethod": "POST", + "id": "compute.publicAdvertisedPrefixes.announce", + "parameterOrder": [ + "project", + "publicAdvertisedPrefix" + ], + "parameters": { "project": { "description": "Project ID for this request.", "location": "path", @@ -21634,20 +23315,19 @@ "required": true, "type": "string" }, - "region": { - "description": "The name of the region for this request.", + "publicAdvertisedPrefix": { + "description": "The name of the public advertised prefix. It should comply with RFC1035.", "location": "path", - "pattern": "[a-z](?:[-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. 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).", + "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).", "location": "query", "type": "string" } }, - "path": "projects/{project}/regions/{region}/disks/{disk}/stopAsyncReplication", + "path": "projects/{project}/global/publicAdvertisedPrefixes/{publicAdvertisedPrefix}/announce", "response": { "$ref": "Operation" }, @@ -21656,14 +23336,14 @@ "https://www.googleapis.com/auth/compute" ] }, - "stopGroupAsyncReplication": { - "description": "Stops asynchronous replication for a consistency group of disks. Can be invoked either in the primary or secondary scope.", - "flatPath": "projects/{project}/regions/{region}/disks/stopGroupAsyncReplication", - "httpMethod": "POST", - "id": "compute.regionDisks.stopGroupAsyncReplication", + "delete": { + "description": "Deletes the specified PublicAdvertisedPrefix", + "flatPath": "projects/{project}/global/publicAdvertisedPrefixes/{publicAdvertisedPrefix}", + "httpMethod": "DELETE", + "id": "compute.publicAdvertisedPrefixes.delete", "parameterOrder": [ "project", - "region" + "publicAdvertisedPrefix" ], "parameters": { "project": { @@ -21673,23 +23353,20 @@ "required": true, "type": "string" }, - "region": { - "description": "The name of the region for this request. This must be the region of the primary or secondary disks in the consistency group.", + "publicAdvertisedPrefix": { + "description": "Name of the PublicAdvertisedPrefix resource to delete.", "location": "path", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", "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. 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).", + "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).", "location": "query", "type": "string" } }, - "path": "projects/{project}/regions/{region}/disks/stopGroupAsyncReplication", - "request": { - "$ref": "DisksStopGroupAsyncReplicationResource" - }, + "path": "projects/{project}/global/publicAdvertisedPrefixes/{publicAdvertisedPrefix}", "response": { "$ref": "Operation" }, @@ -21698,15 +23375,14 @@ "https://www.googleapis.com/auth/compute" ] }, - "testIamPermissions": { - "description": "Returns permissions that a caller has on the specified resource.", - "flatPath": "projects/{project}/regions/{region}/disks/{resource}/testIamPermissions", - "httpMethod": "POST", - "id": "compute.regionDisks.testIamPermissions", + "get": { + "description": "Returns the specified PublicAdvertisedPrefix resource.", + "flatPath": "projects/{project}/global/publicAdvertisedPrefixes/{publicAdvertisedPrefix}", + "httpMethod": "GET", + "id": "compute.publicAdvertisedPrefixes.get", "parameterOrder": [ "project", - "region", - "resource" + "publicAdvertisedPrefix" ], "parameters": { "project": { @@ -21716,27 +23392,17 @@ "required": true, "type": "string" }, - "region": { - "description": "The name of the region for this request.", - "location": "path", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "required": true, - "type": "string" - }, - "resource": { - "description": "Name or id of the resource for this request.", + "publicAdvertisedPrefix": { + "description": "Name of the PublicAdvertisedPrefix resource to return.", "location": "path", "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", "required": true, "type": "string" } }, - "path": "projects/{project}/regions/{region}/disks/{resource}/testIamPermissions", - "request": { - "$ref": "TestPermissionsRequest" - }, + "path": "projects/{project}/global/publicAdvertisedPrefixes/{publicAdvertisedPrefix}", "response": { - "$ref": "TestPermissionsResponse" + "$ref": "PublicAdvertisedPrefix" }, "scopes": [ "https://www.googleapis.com/auth/cloud-platform", @@ -21744,29 +23410,15 @@ "https://www.googleapis.com/auth/compute.readonly" ] }, - "update": { - "description": "Update the specified disk with the data included in the request. Update is performed only on selected fields included as part of update-mask. Only the following fields can be modified: user_license.", - "flatPath": "projects/{project}/regions/{region}/disks/{disk}", - "httpMethod": "PATCH", - "id": "compute.regionDisks.update", + "insert": { + "description": "Creates a PublicAdvertisedPrefix in the specified project\nusing the parameters that are included in the request.", + "flatPath": "projects/{project}/global/publicAdvertisedPrefixes", + "httpMethod": "POST", + "id": "compute.publicAdvertisedPrefixes.insert", "parameterOrder": [ - "project", - "region", - "disk" + "project" ], "parameters": { - "disk": { - "description": "The disk name for this request.", - "location": "path", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "required": true, - "type": "string" - }, - "paths": { - "location": "query", - "repeated": true, - "type": "string" - }, "project": { "description": "Project ID for this request.", "location": "path", @@ -21774,28 +23426,15 @@ "required": true, "type": "string" }, - "region": { - "description": "The name of the region for this request.", - "location": "path", - "pattern": "[a-z](?:[-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. 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).", - "location": "query", - "type": "string" - }, - "updateMask": { - "description": "update_mask indicates fields to be updated as part of this request.", - "format": "google-fieldmask", + "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).", "location": "query", "type": "string" } }, - "path": "projects/{project}/regions/{region}/disks/{disk}", + "path": "projects/{project}/global/publicAdvertisedPrefixes", "request": { - "$ref": "Disk" + "$ref": "PublicAdvertisedPrefix" }, "response": { "$ref": "Operation" @@ -21804,26 +23443,37 @@ "https://www.googleapis.com/auth/cloud-platform", "https://www.googleapis.com/auth/compute" ] - } - } - }, - "regionHealthCheckServices": { - "methods": { - "delete": { - "description": "Deletes the specified regional HealthCheckService.", - "flatPath": "projects/{project}/regions/{region}/healthCheckServices/{healthCheckService}", - "httpMethod": "DELETE", - "id": "compute.regionHealthCheckServices.delete", + }, + "list": { + "description": "Lists the PublicAdvertisedPrefixes for a project.", + "flatPath": "projects/{project}/global/publicAdvertisedPrefixes", + "httpMethod": "GET", + "id": "compute.publicAdvertisedPrefixes.list", "parameterOrder": [ - "project", - "region", - "healthCheckService" + "project" ], "parameters": { - "healthCheckService": { - "description": "Name of the HealthCheckService to delete. The name must be 1-63 characters long, and comply with RFC1035.", - "location": "path", - "required": true, + "filter": { + "description": "A filter expression that filters resources listed in the response. Most\nCompute resources support two types of filter expressions:\nexpressions that support regular expressions and expressions that follow\nAPI improvement proposal AIP-160.\nThese two types of filter expressions cannot be mixed in one request.\n\nIf you want to use AIP-160, your expression must specify the field name, an\noperator, and the value that you want to use for filtering. The value\nmust be a string, a number, or a boolean. The operator\nmust be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`.\n\nFor example, if you are filtering Compute Engine instances, you can\nexclude instances named `example-instance` by specifying\n`name != example-instance`.\n\nThe `:*` comparison can be used to test whether a key has been defined.\nFor example, to find all objects with `owner` label use:\n```\nlabels.owner:*\n```\n\nYou can also filter nested fields. For example, you could specify\n`scheduling.automaticRestart = false` to include instances only\nif they are not scheduled for automatic restarts. You can use filtering\non nested fields to filter based onresource labels.\n\nTo filter on multiple expressions, provide each separate expression within\nparentheses. For example:\n```\n(scheduling.automaticRestart = true)\n(cpuPlatform = \"Intel Skylake\")\n```\nBy default, each expression is an `AND` expression. However, you\ncan include `AND` and `OR` expressions explicitly.\nFor example:\n```\n(cpuPlatform = \"Intel Skylake\") OR\n(cpuPlatform = \"Intel Broadwell\") AND\n(scheduling.automaticRestart = true)\n```\n\nIf you want to use a regular expression, use the `eq` (equal) or `ne`\n(not equal) operator against a single un-parenthesized expression with or\nwithout quotes or against multiple parenthesized expressions. Examples:\n\n`fieldname eq unquoted literal`\n`fieldname eq 'single quoted literal'`\n`fieldname eq \"double quoted literal\"`\n`(fieldname1 eq literal) (fieldname2 ne \"literal\")`\n\nThe literal value is interpreted as a regular expression using GoogleRE2 library syntax.\nThe literal value must match the entire field.\n\nFor example, to filter for instances that do not end with name \"instance\",\nyou would use `name ne .*instance`.\n\nYou cannot combine constraints on multiple fields using regular\nexpressions.", + "location": "query", + "type": "string" + }, + "maxResults": { + "default": "500", + "description": "The maximum number of results per page that should be returned.\nIf the number of available results is larger than `maxResults`,\nCompute Engine returns a `nextPageToken` that can be used to get\nthe next page of results in subsequent list requests. Acceptable values are\n`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\nare returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation\ntimestamp using `orderBy=\"creationTimestamp desc\"`. This sorts\nresults based on the `creationTimestamp` field in\nreverse chronological order (newest result first). Use this to sort\nresources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or\n`creationTimestamp desc` is supported.", + "location": "query", + "type": "string" + }, + "pageToken": { + "description": "Specifies a page token to use. Set `pageToken` to the\n`nextPageToken` returned by a previous list request to get\nthe next page of results.", + "location": "query", "type": "string" }, "project": { @@ -21833,45 +23483,32 @@ "required": true, "type": "string" }, - "region": { - "description": "Name of the region scoping this request.", - "location": "path", - "pattern": "[a-z](?:[-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. 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).", + "returnPartialSuccess": { + "description": "Opt-in for partial success behavior which provides partial results in case\nof failure. The default value is false.\n\nFor example, when partial success behavior is enabled, aggregatedList for a\nsingle zone scope either returns all resources in the zone or no resources,\nwith an error code.", "location": "query", - "type": "string" + "type": "boolean" } }, - "path": "projects/{project}/regions/{region}/healthCheckServices/{healthCheckService}", + "path": "projects/{project}/global/publicAdvertisedPrefixes", "response": { - "$ref": "Operation" + "$ref": "PublicAdvertisedPrefixList" }, "scopes": [ "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" ] }, - "get": { - "description": "Returns the specified regional HealthCheckService resource.", - "flatPath": "projects/{project}/regions/{region}/healthCheckServices/{healthCheckService}", - "httpMethod": "GET", - "id": "compute.regionHealthCheckServices.get", + "patch": { + "description": "Patches the specified Router resource with the data included in the\nrequest. This method supportsPATCH\nsemantics and usesJSON merge\npatch format and processing rules.", + "flatPath": "projects/{project}/global/publicAdvertisedPrefixes/{publicAdvertisedPrefix}", + "httpMethod": "PATCH", + "id": "compute.publicAdvertisedPrefixes.patch", "parameterOrder": [ "project", - "region", - "healthCheckService" + "publicAdvertisedPrefix" ], "parameters": { - "healthCheckService": { - "description": "Name of the HealthCheckService to update. The name must be 1-63 characters long, and comply with RFC1035.", - "location": "path", - "required": true, - "type": "string" - }, "project": { "description": "Project ID for this request.", "location": "path", @@ -21879,32 +23516,39 @@ "required": true, "type": "string" }, - "region": { - "description": "Name of the region scoping this request.", + "publicAdvertisedPrefix": { + "description": "Name of the PublicAdvertisedPrefix resource to patch.", "location": "path", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", "required": true, "type": "string" + }, + "requestId": { + "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).", + "location": "query", + "type": "string" } }, - "path": "projects/{project}/regions/{region}/healthCheckServices/{healthCheckService}", + "path": "projects/{project}/global/publicAdvertisedPrefixes/{publicAdvertisedPrefix}", + "request": { + "$ref": "PublicAdvertisedPrefix" + }, "response": { - "$ref": "HealthCheckService" + "$ref": "Operation" }, "scopes": [ "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" + "https://www.googleapis.com/auth/compute" ] }, - "insert": { - "description": "Creates a regional HealthCheckService resource in the specified project and region using the data included in the request.", - "flatPath": "projects/{project}/regions/{region}/healthCheckServices", + "withdraw": { + "description": "Withdraws the specified PublicAdvertisedPrefix", + "flatPath": "projects/{project}/global/publicAdvertisedPrefixes/{publicAdvertisedPrefix}/withdraw", "httpMethod": "POST", - "id": "compute.regionHealthCheckServices.insert", + "id": "compute.publicAdvertisedPrefixes.withdraw", "parameterOrder": [ "project", - "region" + "publicAdvertisedPrefix" ], "parameters": { "project": { @@ -21914,23 +23558,19 @@ "required": true, "type": "string" }, - "region": { - "description": "Name of the region scoping this request.", + "publicAdvertisedPrefix": { + "description": "The name of the public advertised prefix. It should comply with RFC1035.", "location": "path", - "pattern": "[a-z](?:[-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. 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).", + "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).", "location": "query", "type": "string" } }, - "path": "projects/{project}/regions/{region}/healthCheckServices", - "request": { - "$ref": "HealthCheckService" - }, + "path": "projects/{project}/global/publicAdvertisedPrefixes/{publicAdvertisedPrefix}/withdraw", "response": { "$ref": "Operation" }, @@ -21938,63 +23578,70 @@ "https://www.googleapis.com/auth/cloud-platform", "https://www.googleapis.com/auth/compute" ] - }, - "list": { - "description": "Lists all the HealthCheckService resources that have been configured for the specified project in the given region.", - "flatPath": "projects/{project}/regions/{region}/healthCheckServices", + } + } + }, + "publicDelegatedPrefixes": { + "methods": { + "aggregatedList": { + "description": "Lists all PublicDelegatedPrefix resources owned by the specific project\nacross all scopes.\n\nTo prevent failure, Google recommends that you set the\n`returnPartialSuccess` parameter to `true`.", + "flatPath": "projects/{project}/aggregated/publicDelegatedPrefixes", "httpMethod": "GET", - "id": "compute.regionHealthCheckServices.list", + "id": "compute.publicDelegatedPrefixes.aggregatedList", "parameterOrder": [ - "project", - "region" + "project" ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` 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) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.", + "description": "A filter expression that filters resources listed in the response. Most\nCompute resources support two types of filter expressions:\nexpressions that support regular expressions and expressions that follow\nAPI improvement proposal AIP-160.\nThese two types of filter expressions cannot be mixed in one request.\n\nIf you want to use AIP-160, your expression must specify the field name, an\noperator, and the value that you want to use for filtering. The value\nmust be a string, a number, or a boolean. The operator\nmust be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`.\n\nFor example, if you are filtering Compute Engine instances, you can\nexclude instances named `example-instance` by specifying\n`name != example-instance`.\n\nThe `:*` comparison can be used to test whether a key has been defined.\nFor example, to find all objects with `owner` label use:\n```\nlabels.owner:*\n```\n\nYou can also filter nested fields. For example, you could specify\n`scheduling.automaticRestart = false` to include instances only\nif they are not scheduled for automatic restarts. You can use filtering\non nested fields to filter based onresource labels.\n\nTo filter on multiple expressions, provide each separate expression within\nparentheses. For example:\n```\n(scheduling.automaticRestart = true)\n(cpuPlatform = \"Intel Skylake\")\n```\nBy default, each expression is an `AND` expression. However, you\ncan include `AND` and `OR` expressions explicitly.\nFor example:\n```\n(cpuPlatform = \"Intel Skylake\") OR\n(cpuPlatform = \"Intel Broadwell\") AND\n(scheduling.automaticRestart = true)\n```\n\nIf you want to use a regular expression, use the `eq` (equal) or `ne`\n(not equal) operator against a single un-parenthesized expression with or\nwithout quotes or against multiple parenthesized expressions. Examples:\n\n`fieldname eq unquoted literal`\n`fieldname eq 'single quoted literal'`\n`fieldname eq \"double quoted literal\"`\n`(fieldname1 eq literal) (fieldname2 ne \"literal\")`\n\nThe literal value is interpreted as a regular expression using GoogleRE2 library syntax.\nThe literal value must match the entire field.\n\nFor example, to filter for instances that do not end with name \"instance\",\nyou would use `name ne .*instance`.\n\nYou cannot combine constraints on multiple fields using regular\nexpressions.", "location": "query", "type": "string" }, + "includeAllScopes": { + "description": "Indicates whether every visible scope for each scope type (zone, region,\nglobal) should be included in the response. For new resource types added\nafter this field, the flag has no effect as new resource types will always\ninclude every visible scope for each scope type in response. For resource\ntypes which predate this field, if this flag is omitted or false, only\nscopes of the scope types where the resource type is expected to be found\nwill be included.", + "location": "query", + "type": "boolean" + }, "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`)", + "description": "The maximum number of results per page that should be returned.\nIf the number of available results is larger than `maxResults`,\nCompute Engine returns a `nextPageToken` that can be used to get\nthe next page of results in subsequent list requests. Acceptable values are\n`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. 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.", + "description": "Sorts list results by a certain order. By default, results\nare returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation\ntimestamp using `orderBy=\"creationTimestamp desc\"`. This sorts\nresults based on the `creationTimestamp` field in\nreverse chronological order (newest result first). Use this to sort\nresources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or\n`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.", + "description": "Specifies a page token to use. Set `pageToken` to the\n`nextPageToken` returned by a previous list request to get\nthe next page of results.", "location": "query", "type": "string" }, "project": { - "description": "Project ID for this request.", + "description": "Name of the project scoping 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 scoping this request.", - "location": "path", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "required": true, - "type": "string" - }, "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", + "description": "Opt-in for partial success behavior which provides partial results in case\nof failure. The default value is false.\n\nFor example, when partial success behavior is enabled, aggregatedList for a\nsingle zone scope either returns all resources in the zone or no resources,\nwith an error code.", "location": "query", "type": "boolean" + }, + "serviceProjectNumber": { + "description": "The Shared VPC service project id or service project number for which\naggregated list request is invoked for subnetworks list-usable api.", + "format": "int64", + "location": "query", + "type": "string" } }, - "path": "projects/{project}/regions/{region}/healthCheckServices", + "path": "projects/{project}/aggregated/publicDelegatedPrefixes", "response": { - "$ref": "HealthCheckServicesList" + "$ref": "PublicDelegatedPrefixAggregatedList" }, "scopes": [ "https://www.googleapis.com/auth/cloud-platform", @@ -22002,47 +23649,43 @@ "https://www.googleapis.com/auth/compute.readonly" ] }, - "patch": { - "description": "Updates the specified regional HealthCheckService resource with the data included in the request. This method supports PATCH semantics and uses the JSON merge patch format and processing rules.", - "flatPath": "projects/{project}/regions/{region}/healthCheckServices/{healthCheckService}", - "httpMethod": "PATCH", - "id": "compute.regionHealthCheckServices.patch", + "announce": { + "description": "Announces the specified PublicDelegatedPrefix in the given region.", + "flatPath": "projects/{project}/regions/{region}/publicDelegatedPrefixes/{publicDelegatedPrefix}/announce", + "httpMethod": "POST", + "id": "compute.publicDelegatedPrefixes.announce", "parameterOrder": [ "project", "region", - "healthCheckService" + "publicDelegatedPrefix" ], "parameters": { - "healthCheckService": { - "description": "Name of the HealthCheckService to update. The name must be 1-63 characters long, and comply with RFC1035.", + "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" }, - "project": { - "description": "Project ID for this request.", + "publicDelegatedPrefix": { + "description": "The name of the public delegated prefix. It should comply with RFC1035.", "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 scoping this request.", + "description": "The name of theregion where\nthe public delegated prefix is located. It should comply with RFC1035.", "location": "path", - "pattern": "[a-z](?:[-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. 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).", + "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).", "location": "query", "type": "string" } }, - "path": "projects/{project}/regions/{region}/healthCheckServices/{healthCheckService}", - "request": { - "$ref": "HealthCheckService" - }, + "path": "projects/{project}/regions/{region}/publicDelegatedPrefixes/{publicDelegatedPrefix}/announce", "response": { "$ref": "Operation" }, @@ -22050,50 +23693,46 @@ "https://www.googleapis.com/auth/cloud-platform", "https://www.googleapis.com/auth/compute" ] - } - } - }, - "regionHealthChecks": { - "methods": { + }, "delete": { - "description": "Deletes the specified HealthCheck resource.", - "flatPath": "projects/{project}/regions/{region}/healthChecks/{healthCheck}", + "description": "Deletes the specified PublicDelegatedPrefix in the given region.", + "flatPath": "projects/{project}/regions/{region}/publicDelegatedPrefixes/{publicDelegatedPrefix}", "httpMethod": "DELETE", - "id": "compute.regionHealthChecks.delete", + "id": "compute.publicDelegatedPrefixes.delete", "parameterOrder": [ "project", "region", - "healthCheck" + "publicDelegatedPrefix" ], "parameters": { - "healthCheck": { - "description": "Name of the HealthCheck resource to delete.", + "project": { + "description": "Project ID for this request.", "location": "path", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "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" }, - "project": { - "description": "Project ID for this request.", + "publicDelegatedPrefix": { + "description": "Name of the PublicDelegatedPrefix resource to delete.", "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])?))", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", "required": true, "type": "string" }, "region": { - "description": "Name of the region scoping this request.", + "description": "Name of the region of this request.", "location": "path", "pattern": "[a-z](?:[-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. 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).", + "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).", "location": "query", "type": "string" } }, - "path": "projects/{project}/regions/{region}/healthChecks/{healthCheck}", + "path": "projects/{project}/regions/{region}/publicDelegatedPrefixes/{publicDelegatedPrefix}", "response": { "$ref": "Operation" }, @@ -22103,41 +23742,41 @@ ] }, "get": { - "description": "Returns the specified HealthCheck resource.", - "flatPath": "projects/{project}/regions/{region}/healthChecks/{healthCheck}", + "description": "Returns the specified PublicDelegatedPrefix resource in the given region.", + "flatPath": "projects/{project}/regions/{region}/publicDelegatedPrefixes/{publicDelegatedPrefix}", "httpMethod": "GET", - "id": "compute.regionHealthChecks.get", + "id": "compute.publicDelegatedPrefixes.get", "parameterOrder": [ "project", "region", - "healthCheck" + "publicDelegatedPrefix" ], "parameters": { - "healthCheck": { - "description": "Name of the HealthCheck resource to return.", + "project": { + "description": "Project ID for this request.", "location": "path", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "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" }, - "project": { - "description": "Project ID for this request.", + "publicDelegatedPrefix": { + "description": "Name of the PublicDelegatedPrefix resource to return.", "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])?))", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", "required": true, "type": "string" }, "region": { - "description": "Name of the region scoping this request.", + "description": "Name of the region of this request.", "location": "path", "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", "required": true, "type": "string" } }, - "path": "projects/{project}/regions/{region}/healthChecks/{healthCheck}", + "path": "projects/{project}/regions/{region}/publicDelegatedPrefixes/{publicDelegatedPrefix}", "response": { - "$ref": "HealthCheck" + "$ref": "PublicDelegatedPrefix" }, "scopes": [ "https://www.googleapis.com/auth/cloud-platform", @@ -22146,10 +23785,10 @@ ] }, "insert": { - "description": "Creates a HealthCheck resource in the specified project using the data included in the request.", - "flatPath": "projects/{project}/regions/{region}/healthChecks", + "description": "Creates a PublicDelegatedPrefix in the specified project in the given\nregion using the parameters that are included in the request.", + "flatPath": "projects/{project}/regions/{region}/publicDelegatedPrefixes", "httpMethod": "POST", - "id": "compute.regionHealthChecks.insert", + "id": "compute.publicDelegatedPrefixes.insert", "parameterOrder": [ "project", "region" @@ -22163,21 +23802,21 @@ "type": "string" }, "region": { - "description": "Name of the region scoping this request.", + "description": "Name of the region of this request.", "location": "path", "pattern": "[a-z](?:[-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. 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).", + "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).", "location": "query", "type": "string" } }, - "path": "projects/{project}/regions/{region}/healthChecks", + "path": "projects/{project}/regions/{region}/publicDelegatedPrefixes", "request": { - "$ref": "HealthCheck" + "$ref": "PublicDelegatedPrefix" }, "response": { "$ref": "Operation" @@ -22188,35 +23827,35 @@ ] }, "list": { - "description": "Retrieves the list of HealthCheck resources available to the specified project.", - "flatPath": "projects/{project}/regions/{region}/healthChecks", + "description": "Lists the PublicDelegatedPrefixes for a project in the given region.", + "flatPath": "projects/{project}/regions/{region}/publicDelegatedPrefixes", "httpMethod": "GET", - "id": "compute.regionHealthChecks.list", + "id": "compute.publicDelegatedPrefixes.list", "parameterOrder": [ "project", "region" ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` 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) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.", + "description": "A filter expression that filters resources listed in the response. Most\nCompute resources support two types of filter expressions:\nexpressions that support regular expressions and expressions that follow\nAPI improvement proposal AIP-160.\nThese two types of filter expressions cannot be mixed in one request.\n\nIf you want to use AIP-160, your expression must specify the field name, an\noperator, and the value that you want to use for filtering. The value\nmust be a string, a number, or a boolean. The operator\nmust be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`.\n\nFor example, if you are filtering Compute Engine instances, you can\nexclude instances named `example-instance` by specifying\n`name != example-instance`.\n\nThe `:*` comparison can be used to test whether a key has been defined.\nFor example, to find all objects with `owner` label use:\n```\nlabels.owner:*\n```\n\nYou can also filter nested fields. For example, you could specify\n`scheduling.automaticRestart = false` to include instances only\nif they are not scheduled for automatic restarts. You can use filtering\non nested fields to filter based onresource labels.\n\nTo filter on multiple expressions, provide each separate expression within\nparentheses. For example:\n```\n(scheduling.automaticRestart = true)\n(cpuPlatform = \"Intel Skylake\")\n```\nBy default, each expression is an `AND` expression. However, you\ncan include `AND` and `OR` expressions explicitly.\nFor example:\n```\n(cpuPlatform = \"Intel Skylake\") OR\n(cpuPlatform = \"Intel Broadwell\") AND\n(scheduling.automaticRestart = true)\n```\n\nIf you want to use a regular expression, use the `eq` (equal) or `ne`\n(not equal) operator against a single un-parenthesized expression with or\nwithout quotes or against multiple parenthesized expressions. Examples:\n\n`fieldname eq unquoted literal`\n`fieldname eq 'single quoted literal'`\n`fieldname eq \"double quoted literal\"`\n`(fieldname1 eq literal) (fieldname2 ne \"literal\")`\n\nThe literal value is interpreted as a regular expression using GoogleRE2 library syntax.\nThe literal value must match the entire field.\n\nFor example, to filter for instances that do not end with name \"instance\",\nyou would use `name ne .*instance`.\n\nYou cannot combine constraints on multiple fields using regular\nexpressions.", "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`)", + "description": "The maximum number of results per page that should be returned.\nIf the number of available results is larger than `maxResults`,\nCompute Engine returns a `nextPageToken` that can be used to get\nthe next page of results in subsequent list requests. Acceptable values are\n`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. 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.", + "description": "Sorts list results by a certain order. By default, results\nare returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation\ntimestamp using `orderBy=\"creationTimestamp desc\"`. This sorts\nresults based on the `creationTimestamp` field in\nreverse chronological order (newest result first). Use this to sort\nresources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or\n`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.", + "description": "Specifies a page token to use. Set `pageToken` to the\n`nextPageToken` returned by a previous list request to get\nthe next page of results.", "location": "query", "type": "string" }, @@ -22228,21 +23867,21 @@ "type": "string" }, "region": { - "description": "Name of the region scoping this request.", + "description": "Name of the region of this request.", "location": "path", "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", "required": true, "type": "string" }, "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", + "description": "Opt-in for partial success behavior which provides partial results in case\nof failure. The default value is false.\n\nFor example, when partial success behavior is enabled, aggregatedList for a\nsingle zone scope either returns all resources in the zone or no resources,\nwith an error code.", "location": "query", "type": "boolean" } }, - "path": "projects/{project}/regions/{region}/healthChecks", + "path": "projects/{project}/regions/{region}/publicDelegatedPrefixes", "response": { - "$ref": "HealthCheckList" + "$ref": "PublicDelegatedPrefixList" }, "scopes": [ "https://www.googleapis.com/auth/cloud-platform", @@ -22251,46 +23890,46 @@ ] }, "patch": { - "description": "Updates a HealthCheck resource in the specified project using the data included in the request. This method supports PATCH semantics and uses the JSON merge patch format and processing rules.", - "flatPath": "projects/{project}/regions/{region}/healthChecks/{healthCheck}", + "description": "Patches the specified PublicDelegatedPrefix resource with the data included\nin the request. This method supportsPATCH\nsemantics and usesJSON merge\npatch format and processing rules.", + "flatPath": "projects/{project}/regions/{region}/publicDelegatedPrefixes/{publicDelegatedPrefix}", "httpMethod": "PATCH", - "id": "compute.regionHealthChecks.patch", + "id": "compute.publicDelegatedPrefixes.patch", "parameterOrder": [ "project", "region", - "healthCheck" + "publicDelegatedPrefix" ], "parameters": { - "healthCheck": { - "description": "Name of the HealthCheck resource to patch.", + "project": { + "description": "Project ID for this request.", "location": "path", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "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" }, - "project": { - "description": "Project ID for this request.", + "publicDelegatedPrefix": { + "description": "Name of the PublicDelegatedPrefix resource to patch.", "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])?))", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", "required": true, "type": "string" }, "region": { - "description": "Name of the region scoping this request.", + "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" }, "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. 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).", + "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).", "location": "query", "type": "string" } }, - "path": "projects/{project}/regions/{region}/healthChecks/{healthCheck}", + "path": "projects/{project}/regions/{region}/publicDelegatedPrefixes/{publicDelegatedPrefix}", "request": { - "$ref": "HealthCheck" + "$ref": "PublicDelegatedPrefix" }, "response": { "$ref": "Operation" @@ -22300,48 +23939,43 @@ "https://www.googleapis.com/auth/compute" ] }, - "update": { - "description": "Updates a HealthCheck resource in the specified project using the data included in the request.", - "flatPath": "projects/{project}/regions/{region}/healthChecks/{healthCheck}", - "httpMethod": "PUT", - "id": "compute.regionHealthChecks.update", + "withdraw": { + "description": "Withdraws the specified PublicDelegatedPrefix in the given region.", + "flatPath": "projects/{project}/regions/{region}/publicDelegatedPrefixes/{publicDelegatedPrefix}/withdraw", + "httpMethod": "POST", + "id": "compute.publicDelegatedPrefixes.withdraw", "parameterOrder": [ "project", "region", - "healthCheck" + "publicDelegatedPrefix" ], "parameters": { - "healthCheck": { - "description": "Name of the HealthCheck resource to update.", + "project": { + "description": "Project ID for this request.", "location": "path", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "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" }, - "project": { - "description": "Project ID for this request.", + "publicDelegatedPrefix": { + "description": "The name of the public delegated prefix. It should comply with RFC1035.", "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 scoping this request.", + "description": "The name of theregion where\nthe public delegated prefix is located. It should comply with RFC1035.", "location": "path", - "pattern": "[a-z](?:[-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. 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).", + "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).", "location": "query", "type": "string" } }, - "path": "projects/{project}/regions/{region}/healthChecks/{healthCheck}", - "request": { - "$ref": "HealthCheck" - }, + "path": "projects/{project}/regions/{region}/publicDelegatedPrefixes/{publicDelegatedPrefix}/withdraw", "response": { "$ref": "Operation" }, @@ -22352,22 +23986,23 @@ } } }, - "regionInstanceGroupManagers": { + "regionAutoscalers": { "methods": { - "abandonInstances": { - "description": "Flags the specified instances to be immediately removed from the managed instance group. Abandoning an instance does not delete the instance, but it does remove the instance from any target pools that are applied by the managed instance group. This method reduces the targetSize of the managed instance group by the number of instances that you abandon. This operation is marked as DONE when the action is scheduled even if the instances have not yet been removed from the group. You must separately verify the status of the abandoning action with the listmanagedinstances method. If the group is part of a backend service that has enabled connection draining, it can take up to 60 seconds after the connection draining duration has elapsed before the VM instance is removed or deleted. You can specify a maximum of 1000 instances with this method per request.", - "flatPath": "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/abandonInstances", - "httpMethod": "POST", - "id": "compute.regionInstanceGroupManagers.abandonInstances", + "delete": { + "description": "Deletes the specified autoscaler.", + "flatPath": "projects/{project}/regions/{region}/autoscalers/{autoscaler}", + "httpMethod": "DELETE", + "id": "compute.regionAutoscalers.delete", "parameterOrder": [ "project", "region", - "instanceGroupManager" + "autoscaler" ], "parameters": { - "instanceGroupManager": { - "description": "Name of the managed instance group.", + "autoscaler": { + "description": "Name of the autoscaler to delete.", "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", "required": true, "type": "string" }, @@ -22381,19 +24016,17 @@ "region": { "description": "Name of the region scoping this request.", "location": "path", + "pattern": "[a-z](?:[-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. 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).", + "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).", "location": "query", "type": "string" } }, - "path": "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/abandonInstances", - "request": { - "$ref": "RegionInstanceGroupManagersAbandonInstancesRequest" - }, + "path": "projects/{project}/regions/{region}/autoscalers/{autoscaler}", "response": { "$ref": "Operation" }, @@ -22402,20 +24035,21 @@ "https://www.googleapis.com/auth/compute" ] }, - "applyUpdatesToInstances": { - "description": "Apply updates to selected instances the managed instance group.", - "flatPath": "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/applyUpdatesToInstances", - "httpMethod": "POST", - "id": "compute.regionInstanceGroupManagers.applyUpdatesToInstances", + "get": { + "description": "Returns the specified autoscaler.", + "flatPath": "projects/{project}/regions/{region}/autoscalers/{autoscaler}", + "httpMethod": "GET", + "id": "compute.regionAutoscalers.get", "parameterOrder": [ "project", "region", - "instanceGroupManager" + "autoscaler" ], "parameters": { - "instanceGroupManager": { - "description": "The name of the managed instance group, should conform to RFC1035.", + "autoscaler": { + "description": "Name of the autoscaler to return.", "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", "required": true, "type": "string" }, @@ -22427,41 +24061,33 @@ "type": "string" }, "region": { - "description": "Name of the region scoping this request, should conform to RFC1035.", + "description": "Name of the region scoping this request.", "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", "required": true, "type": "string" } }, - "path": "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/applyUpdatesToInstances", - "request": { - "$ref": "RegionInstanceGroupManagersApplyUpdatesRequest" - }, + "path": "projects/{project}/regions/{region}/autoscalers/{autoscaler}", "response": { - "$ref": "Operation" + "$ref": "Autoscaler" }, "scopes": [ "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" ] }, - "createInstances": { - "description": "Creates instances with per-instance configurations in this regional managed instance group. Instances are created using the current instance template. The create instances operation is marked DONE if the createInstances request is successful. The underlying actions take additional time. You must separately verify the status of the creating or actions with the listmanagedinstances method.", - "flatPath": "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/createInstances", + "insert": { + "description": "Creates an autoscaler in the specified project using\nthe data included in the request.", + "flatPath": "projects/{project}/regions/{region}/autoscalers", "httpMethod": "POST", - "id": "compute.regionInstanceGroupManagers.createInstances", + "id": "compute.regionAutoscalers.insert", "parameterOrder": [ "project", - "region", - "instanceGroupManager" + "region" ], "parameters": { - "instanceGroupManager": { - "description": "The name of the managed instance group. It should conform to RFC1035.", - "location": "path", - "required": true, - "type": "string" - }, "project": { "description": "Project ID for this request.", "location": "path", @@ -22470,20 +24096,21 @@ "type": "string" }, "region": { - "description": "The name of the region where the managed instance group is located. It should conform to RFC1035.", + "description": "Name of the region scoping this request.", "location": "path", + "pattern": "[a-z](?:[-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. 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. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).", + "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).", "location": "query", "type": "string" } }, - "path": "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/createInstances", + "path": "projects/{project}/regions/{region}/autoscalers", "request": { - "$ref": "RegionInstanceGroupManagersCreateInstancesRequest" + "$ref": "Autoscaler" }, "response": { "$ref": "Operation" @@ -22493,21 +24120,37 @@ "https://www.googleapis.com/auth/compute" ] }, - "delete": { - "description": "Deletes the specified managed instance group and all of the instances in that group.", - "flatPath": "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}", - "httpMethod": "DELETE", - "id": "compute.regionInstanceGroupManagers.delete", + "list": { + "description": "Retrieves a list of autoscalers contained within\nthe specified region.", + "flatPath": "projects/{project}/regions/{region}/autoscalers", + "httpMethod": "GET", + "id": "compute.regionAutoscalers.list", "parameterOrder": [ "project", - "region", - "instanceGroupManager" + "region" ], "parameters": { - "instanceGroupManager": { - "description": "Name of the managed instance group to delete.", - "location": "path", - "required": true, + "filter": { + "description": "A filter expression that filters resources listed in the response. Most\nCompute resources support two types of filter expressions:\nexpressions that support regular expressions and expressions that follow\nAPI improvement proposal AIP-160.\nThese two types of filter expressions cannot be mixed in one request.\n\nIf you want to use AIP-160, your expression must specify the field name, an\noperator, and the value that you want to use for filtering. The value\nmust be a string, a number, or a boolean. The operator\nmust be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`.\n\nFor example, if you are filtering Compute Engine instances, you can\nexclude instances named `example-instance` by specifying\n`name != example-instance`.\n\nThe `:*` comparison can be used to test whether a key has been defined.\nFor example, to find all objects with `owner` label use:\n```\nlabels.owner:*\n```\n\nYou can also filter nested fields. For example, you could specify\n`scheduling.automaticRestart = false` to include instances only\nif they are not scheduled for automatic restarts. You can use filtering\non nested fields to filter based onresource labels.\n\nTo filter on multiple expressions, provide each separate expression within\nparentheses. For example:\n```\n(scheduling.automaticRestart = true)\n(cpuPlatform = \"Intel Skylake\")\n```\nBy default, each expression is an `AND` expression. However, you\ncan include `AND` and `OR` expressions explicitly.\nFor example:\n```\n(cpuPlatform = \"Intel Skylake\") OR\n(cpuPlatform = \"Intel Broadwell\") AND\n(scheduling.automaticRestart = true)\n```\n\nIf you want to use a regular expression, use the `eq` (equal) or `ne`\n(not equal) operator against a single un-parenthesized expression with or\nwithout quotes or against multiple parenthesized expressions. Examples:\n\n`fieldname eq unquoted literal`\n`fieldname eq 'single quoted literal'`\n`fieldname eq \"double quoted literal\"`\n`(fieldname1 eq literal) (fieldname2 ne \"literal\")`\n\nThe literal value is interpreted as a regular expression using GoogleRE2 library syntax.\nThe literal value must match the entire field.\n\nFor example, to filter for instances that do not end with name \"instance\",\nyou would use `name ne .*instance`.\n\nYou cannot combine constraints on multiple fields using regular\nexpressions.", + "location": "query", + "type": "string" + }, + "maxResults": { + "default": "500", + "description": "The maximum number of results per page that should be returned.\nIf the number of available results is larger than `maxResults`,\nCompute Engine returns a `nextPageToken` that can be used to get\nthe next page of results in subsequent list requests. Acceptable values are\n`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\nare returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation\ntimestamp using `orderBy=\"creationTimestamp desc\"`. This sorts\nresults based on the `creationTimestamp` field in\nreverse chronological order (newest result first). Use this to sort\nresources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or\n`creationTimestamp desc` is supported.", + "location": "query", + "type": "string" + }, + "pageToken": { + "description": "Specifies a page token to use. Set `pageToken` to the\n`nextPageToken` returned by a previous list request to get\nthe next page of results.", + "location": "query", "type": "string" }, "project": { @@ -22520,39 +24163,40 @@ "region": { "description": "Name of the region scoping this request.", "location": "path", + "pattern": "[a-z](?:[-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. 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).", + "returnPartialSuccess": { + "description": "Opt-in for partial success behavior which provides partial results in case\nof failure. The default value is false.\n\nFor example, when partial success behavior is enabled, aggregatedList for a\nsingle zone scope either returns all resources in the zone or no resources,\nwith an error code.", "location": "query", - "type": "string" + "type": "boolean" } }, - "path": "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}", + "path": "projects/{project}/regions/{region}/autoscalers", "response": { - "$ref": "Operation" + "$ref": "RegionAutoscalerList" }, "scopes": [ "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" ] }, - "deleteInstances": { - "description": "Flags the specified instances in the managed instance group to be immediately deleted. The instances are also removed from any target pools of which they were a member. This method reduces the targetSize of the managed instance group by the number of instances that you delete. The deleteInstances operation is marked DONE if the deleteInstances request is successful. The underlying actions take additional time. You must separately verify the status of the deleting action with the listmanagedinstances method. If the group is part of a backend service that has enabled connection draining, it can take up to 60 seconds after the connection draining duration has elapsed before the VM instance is removed or deleted. You can specify a maximum of 1000 instances with this method per request.", - "flatPath": "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/deleteInstances", - "httpMethod": "POST", - "id": "compute.regionInstanceGroupManagers.deleteInstances", + "patch": { + "description": "Updates an autoscaler in the specified project using\nthe data included in the request. This method supportsPATCH\nsemantics and uses theJSON merge\npatch format and processing rules.", + "flatPath": "projects/{project}/regions/{region}/autoscalers", + "httpMethod": "PATCH", + "id": "compute.regionAutoscalers.patch", "parameterOrder": [ "project", - "region", - "instanceGroupManager" + "region" ], "parameters": { - "instanceGroupManager": { - "description": "Name of the managed instance group.", - "location": "path", - "required": true, + "autoscaler": { + "description": "Name of the autoscaler to patch.", + "location": "query", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", "type": "string" }, "project": { @@ -22565,18 +24209,19 @@ "region": { "description": "Name of the region scoping this request.", "location": "path", + "pattern": "[a-z](?:[-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. 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).", + "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).", "location": "query", "type": "string" } }, - "path": "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/deleteInstances", + "path": "projects/{project}/regions/{region}/autoscalers", "request": { - "$ref": "RegionInstanceGroupManagersDeleteInstancesRequest" + "$ref": "Autoscaler" }, "response": { "$ref": "Operation" @@ -22586,23 +24231,17 @@ "https://www.googleapis.com/auth/compute" ] }, - "deletePerInstanceConfigs": { - "description": "Deletes selected per-instance configurations for the managed instance group.", - "flatPath": "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/deletePerInstanceConfigs", + "testIamPermissions": { + "description": "Returns permissions that a caller has on the specified resource.", + "flatPath": "projects/{project}/regions/{region}/autoscalers/{resource}/testIamPermissions", "httpMethod": "POST", - "id": "compute.regionInstanceGroupManagers.deletePerInstanceConfigs", + "id": "compute.regionAutoscalers.testIamPermissions", "parameterOrder": [ "project", "region", - "instanceGroupManager" + "resource" ], "parameters": { - "instanceGroupManager": { - "description": "The name of the managed instance group. It should conform to RFC1035.", - "location": "path", - "required": true, - "type": "string" - }, "project": { "description": "Project ID for this request.", "location": "path", @@ -22611,39 +24250,47 @@ "type": "string" }, "region": { - "description": "Name of the region scoping this request, should conform to RFC1035.", + "description": "The name of the region for this request.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "required": true, + "type": "string" + }, + "resource": { + "description": "Name or id of the resource for this request.", "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", "required": true, "type": "string" } }, - "path": "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/deletePerInstanceConfigs", + "path": "projects/{project}/regions/{region}/autoscalers/{resource}/testIamPermissions", "request": { - "$ref": "RegionInstanceGroupManagerDeleteInstanceConfigReq" + "$ref": "TestPermissionsRequest" }, "response": { - "$ref": "Operation" + "$ref": "TestPermissionsResponse" }, "scopes": [ "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" ] }, - "get": { - "description": "Returns all of the details about the specified managed instance group.", - "flatPath": "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}", - "httpMethod": "GET", - "id": "compute.regionInstanceGroupManagers.get", + "update": { + "description": "Updates an autoscaler in the specified project using\nthe data included in the request.", + "flatPath": "projects/{project}/regions/{region}/autoscalers", + "httpMethod": "PUT", + "id": "compute.regionAutoscalers.update", "parameterOrder": [ "project", - "region", - "instanceGroupManager" + "region" ], "parameters": { - "instanceGroupManager": { - "description": "Name of the managed instance group to return.", - "location": "path", - "required": true, + "autoscaler": { + "description": "Name of the autoscaler to update.", + "location": "query", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", "type": "string" }, "project": { @@ -22656,30 +24303,50 @@ "region": { "description": "Name of the region scoping this request.", "location": "path", + "pattern": "[a-z](?:[-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\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).", + "location": "query", + "type": "string" } }, - "path": "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}", + "path": "projects/{project}/regions/{region}/autoscalers", + "request": { + "$ref": "Autoscaler" + }, "response": { - "$ref": "InstanceGroupManager" + "$ref": "Operation" }, "scopes": [ "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" + "https://www.googleapis.com/auth/compute" ] - }, - "insert": { - "description": "Creates a managed instance group using the information that you specify in the request. After the group is created, instances in the group are created using the specified instance template. This operation is marked as DONE when the group is created even if the instances in the group have not yet been created. You must separately verify the status of the individual instances with the listmanagedinstances method. A regional managed instance group can contain up to 2000 instances.", - "flatPath": "projects/{project}/regions/{region}/instanceGroupManagers", - "httpMethod": "POST", - "id": "compute.regionInstanceGroupManagers.insert", + } + } + }, + "regionBackendBuckets": { + "methods": { + "delete": { + "description": "Deletes the specified regional BackendBucket resource.", + "flatPath": "projects/{project}/regions/{region}/backendBuckets/{backendBucket}", + "httpMethod": "DELETE", + "id": "compute.regionBackendBuckets.delete", "parameterOrder": [ "project", - "region" + "region", + "backendBucket" ], "parameters": { + "backendBucket": { + "description": "Name of the BackendBucket resource to delete.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "required": true, + "type": "string" + }, "project": { "description": "Project ID for this request.", "location": "path", @@ -22690,19 +24357,17 @@ "region": { "description": "Name of the region scoping this request.", "location": "path", + "pattern": "[a-z](?:[-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. 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).", + "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).\nend_interface: MixerMutationRequestBuilder", "location": "query", "type": "string" } }, - "path": "projects/{project}/regions/{region}/instanceGroupManagers", - "request": { - "$ref": "InstanceGroupManager" - }, + "path": "projects/{project}/regions/{region}/backendBuckets/{backendBucket}", "response": { "$ref": "Operation" }, @@ -22711,37 +24376,22 @@ "https://www.googleapis.com/auth/compute" ] }, - "list": { - "description": "Retrieves the list of managed instance groups that are contained within the specified region.", - "flatPath": "projects/{project}/regions/{region}/instanceGroupManagers", + "get": { + "description": "Returns the specified regional BackendBucket resource.", + "flatPath": "projects/{project}/regions/{region}/backendBuckets/{backendBucket}", "httpMethod": "GET", - "id": "compute.regionInstanceGroupManagers.list", + "id": "compute.regionBackendBuckets.get", "parameterOrder": [ "project", - "region" + "region", + "backendBucket" ], "parameters": { - "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` 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) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.", - "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. 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.", - "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", + "backendBucket": { + "description": "Name of the BackendBucket resource to return.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "required": true, "type": "string" }, "project": { @@ -22754,18 +24404,14 @@ "region": { "description": "Name of the region scoping this request.", "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", "required": true, "type": "string" - }, - "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", - "location": "query", - "type": "boolean" } }, - "path": "projects/{project}/regions/{region}/instanceGroupManagers", + "path": "projects/{project}/regions/{region}/backendBuckets/{backendBucket}", "response": { - "$ref": "RegionInstanceGroupManagerList" + "$ref": "BackendBucket" }, "scopes": [ "https://www.googleapis.com/auth/cloud-platform", @@ -22773,46 +24419,65 @@ "https://www.googleapis.com/auth/compute.readonly" ] }, - "listErrors": { - "description": "Lists all errors thrown by actions on instances for a given regional managed instance group. The filter and orderBy query parameters are not supported.", - "flatPath": "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/listErrors", + "getIamPolicy": { + "description": "Gets the access control policy for a resource. May be empty if no such\npolicy or resource exists.", + "flatPath": "projects/{project}/regions/{region}/backendBuckets/{resource}/getIamPolicy", "httpMethod": "GET", - "id": "compute.regionInstanceGroupManagers.listErrors", + "id": "compute.regionBackendBuckets.getIamPolicy", "parameterOrder": [ "project", "region", - "instanceGroupManager" + "resource" ], "parameters": { - "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` 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) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.", + "optionsRequestedPolicyVersion": { + "description": "Requested IAM Policy version.", + "format": "int32", "location": "query", - "type": "string" + "type": "integer" }, - "instanceGroupManager": { - "description": "The name of the managed instance group. It must be a string that meets the requirements in RFC1035, or an unsigned long integer: must match regexp pattern: (?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?)|1-9{0,19}.", + "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" }, - "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. 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.", - "location": "query", + "region": { + "description": "The name of the region for this request.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "required": true, "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", + "resource": { + "description": "Name or id of the resource for this request.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "required": true, "type": "string" - }, + } + }, + "path": "projects/{project}/regions/{region}/backendBuckets/{resource}/getIamPolicy", + "response": { + "$ref": "Policy" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ] + }, + "insert": { + "description": "Creates a RegionBackendBucket in the specified project in the given scope\nusing the parameters that are included in the request.", + "flatPath": "projects/{project}/regions/{region}/backendBuckets", + "httpMethod": "POST", + "id": "compute.regionBackendBuckets.insert", + "parameterOrder": [ + "project", + "region" + ], + "parameters": { "project": { "description": "Project ID for this request.", "location": "path", @@ -22821,64 +24486,60 @@ "type": "string" }, "region": { - "description": "Name of the region scoping this request. This should conform to RFC1035.", + "description": "Name of the region of this request.", "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", "required": true, "type": "string" }, - "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", + "requestId": { + "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).", "location": "query", - "type": "boolean" + "type": "string" } }, - "path": "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/listErrors", + "path": "projects/{project}/regions/{region}/backendBuckets", + "request": { + "$ref": "BackendBucket" + }, "response": { - "$ref": "RegionInstanceGroupManagersListErrorsResponse" + "$ref": "Operation" }, "scopes": [ "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" + "https://www.googleapis.com/auth/compute" ] }, - "listManagedInstances": { - "description": "Lists the instances in the managed instance group and instances that are scheduled to be created. The list includes any current actions that the group has scheduled for its instances. The orderBy query parameter is not supported. The `pageToken` query parameter is supported only if the group's `listManagedInstancesResults` field is set to `PAGINATED`.", - "flatPath": "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/listManagedInstances", - "httpMethod": "POST", - "id": "compute.regionInstanceGroupManagers.listManagedInstances", + "list": { + "description": "Retrieves the list of BackendBucket resources available to the specified\nproject in the given region.", + "flatPath": "projects/{project}/regions/{region}/backendBuckets", + "httpMethod": "GET", + "id": "compute.regionBackendBuckets.list", "parameterOrder": [ "project", - "region", - "instanceGroupManager" + "region" ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` 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) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.", + "description": "A filter expression that filters resources listed in the response. Most\nCompute resources support two types of filter expressions:\nexpressions that support regular expressions and expressions that follow\nAPI improvement proposal AIP-160.\nThese two types of filter expressions cannot be mixed in one request.\n\nIf you want to use AIP-160, your expression must specify the field name, an\noperator, and the value that you want to use for filtering. The value\nmust be a string, a number, or a boolean. The operator\nmust be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`.\n\nFor example, if you are filtering Compute Engine instances, you can\nexclude instances named `example-instance` by specifying\n`name != example-instance`.\n\nThe `:*` comparison can be used to test whether a key has been defined.\nFor example, to find all objects with `owner` label use:\n```\nlabels.owner:*\n```\n\nYou can also filter nested fields. For example, you could specify\n`scheduling.automaticRestart = false` to include instances only\nif they are not scheduled for automatic restarts. You can use filtering\non nested fields to filter based onresource labels.\n\nTo filter on multiple expressions, provide each separate expression within\nparentheses. For example:\n```\n(scheduling.automaticRestart = true)\n(cpuPlatform = \"Intel Skylake\")\n```\nBy default, each expression is an `AND` expression. However, you\ncan include `AND` and `OR` expressions explicitly.\nFor example:\n```\n(cpuPlatform = \"Intel Skylake\") OR\n(cpuPlatform = \"Intel Broadwell\") AND\n(scheduling.automaticRestart = true)\n```\n\nIf you want to use a regular expression, use the `eq` (equal) or `ne`\n(not equal) operator against a single un-parenthesized expression with or\nwithout quotes or against multiple parenthesized expressions. Examples:\n\n`fieldname eq unquoted literal`\n`fieldname eq 'single quoted literal'`\n`fieldname eq \"double quoted literal\"`\n`(fieldname1 eq literal) (fieldname2 ne \"literal\")`\n\nThe literal value is interpreted as a regular expression using GoogleRE2 library syntax.\nThe literal value must match the entire field.\n\nFor example, to filter for instances that do not end with name \"instance\",\nyou would use `name ne .*instance`.\n\nYou cannot combine constraints on multiple fields using regular\nexpressions.", "location": "query", "type": "string" }, - "instanceGroupManager": { - "description": "The name of the managed instance group.", - "location": "path", - "required": true, - "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`)", + "description": "The maximum number of results per page that should be returned.\nIf the number of available results is larger than `maxResults`,\nCompute Engine returns a `nextPageToken` that can be used to get\nthe next page of results in subsequent list requests. Acceptable values are\n`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. 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.", + "description": "Sorts list results by a certain order. By default, results\nare returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation\ntimestamp using `orderBy=\"creationTimestamp desc\"`. This sorts\nresults based on the `creationTimestamp` field in\nreverse chronological order (newest result first). Use this to sort\nresources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or\n`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.", + "description": "Specifies a page token to use. Set `pageToken` to the\n`nextPageToken` returned by a previous list request to get\nthe next page of results.", "location": "query", "type": "string" }, @@ -22890,20 +24551,21 @@ "type": "string" }, "region": { - "description": "Name of the region scoping this request.", + "description": "Name of the region of this request.", "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", "required": true, "type": "string" }, "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", + "description": "Opt-in for partial success behavior which provides partial results in case\nof failure. The default value is false.\n\nFor example, when partial success behavior is enabled, aggregatedList for a\nsingle zone scope either returns all resources in the zone or no resources,\nwith an error code.", "location": "query", "type": "boolean" } }, - "path": "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/listManagedInstances", + "path": "projects/{project}/regions/{region}/backendBuckets", "response": { - "$ref": "RegionInstanceGroupManagersListInstancesResponse" + "$ref": "BackendBucketList" }, "scopes": [ "https://www.googleapis.com/auth/cloud-platform", @@ -22911,43 +24573,36 @@ "https://www.googleapis.com/auth/compute.readonly" ] }, - "listPerInstanceConfigs": { - "description": "Lists all of the per-instance configurations defined for the managed instance group. The orderBy query parameter is not supported.", - "flatPath": "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/listPerInstanceConfigs", - "httpMethod": "POST", - "id": "compute.regionInstanceGroupManagers.listPerInstanceConfigs", + "listUsable": { + "description": "Retrieves a list of all usable backend buckets in the specified project in\nthe given region.", + "flatPath": "projects/{project}/regions/{region}/backendBuckets/listUsable", + "httpMethod": "GET", + "id": "compute.regionBackendBuckets.listUsable", "parameterOrder": [ "project", - "region", - "instanceGroupManager" + "region" ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` 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) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.", + "description": "A filter expression that filters resources listed in the response. Most\nCompute resources support two types of filter expressions:\nexpressions that support regular expressions and expressions that follow\nAPI improvement proposal AIP-160.\nThese two types of filter expressions cannot be mixed in one request.\n\nIf you want to use AIP-160, your expression must specify the field name, an\noperator, and the value that you want to use for filtering. The value\nmust be a string, a number, or a boolean. The operator\nmust be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`.\n\nFor example, if you are filtering Compute Engine instances, you can\nexclude instances named `example-instance` by specifying\n`name != example-instance`.\n\nThe `:*` comparison can be used to test whether a key has been defined.\nFor example, to find all objects with `owner` label use:\n```\nlabels.owner:*\n```\n\nYou can also filter nested fields. For example, you could specify\n`scheduling.automaticRestart = false` to include instances only\nif they are not scheduled for automatic restarts. You can use filtering\non nested fields to filter based onresource labels.\n\nTo filter on multiple expressions, provide each separate expression within\nparentheses. For example:\n```\n(scheduling.automaticRestart = true)\n(cpuPlatform = \"Intel Skylake\")\n```\nBy default, each expression is an `AND` expression. However, you\ncan include `AND` and `OR` expressions explicitly.\nFor example:\n```\n(cpuPlatform = \"Intel Skylake\") OR\n(cpuPlatform = \"Intel Broadwell\") AND\n(scheduling.automaticRestart = true)\n```\n\nIf you want to use a regular expression, use the `eq` (equal) or `ne`\n(not equal) operator against a single un-parenthesized expression with or\nwithout quotes or against multiple parenthesized expressions. Examples:\n\n`fieldname eq unquoted literal`\n`fieldname eq 'single quoted literal'`\n`fieldname eq \"double quoted literal\"`\n`(fieldname1 eq literal) (fieldname2 ne \"literal\")`\n\nThe literal value is interpreted as a regular expression using GoogleRE2 library syntax.\nThe literal value must match the entire field.\n\nFor example, to filter for instances that do not end with name \"instance\",\nyou would use `name ne .*instance`.\n\nYou cannot combine constraints on multiple fields using regular\nexpressions.", "location": "query", "type": "string" }, - "instanceGroupManager": { - "description": "The name of the managed instance group. It should conform to RFC1035.", - "location": "path", - "required": true, - "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`)", + "description": "The maximum number of results per page that should be returned.\nIf the number of available results is larger than `maxResults`,\nCompute Engine returns a `nextPageToken` that can be used to get\nthe next page of results in subsequent list requests. Acceptable values are\n`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. 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.", + "description": "Sorts list results by a certain order. By default, results\nare returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation\ntimestamp using `orderBy=\"creationTimestamp desc\"`. This sorts\nresults based on the `creationTimestamp` field in\nreverse chronological order (newest result first). Use this to sort\nresources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or\n`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.", + "description": "Specifies a page token to use. Set `pageToken` to the\n`nextPageToken` returned by a previous list request to get\nthe next page of results.", "location": "query", "type": "string" }, @@ -22959,20 +24614,21 @@ "type": "string" }, "region": { - "description": "Name of the region scoping this request, should conform to RFC1035.", + "description": "Name of the region scoping this request.\nIt must be a string that meets the requirements in RFC1035.", "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", "required": true, "type": "string" }, "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", + "description": "Opt-in for partial success behavior which provides partial results in case\nof failure. The default value is false.\n\nFor example, when partial success behavior is enabled, aggregatedList for a\nsingle zone scope either returns all resources in the zone or no resources,\nwith an error code.", "location": "query", "type": "boolean" } }, - "path": "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/listPerInstanceConfigs", + "path": "projects/{project}/regions/{region}/backendBuckets/listUsable", "response": { - "$ref": "RegionInstanceGroupManagersListInstanceConfigsResp" + "$ref": "BackendBucketListUsable" }, "scopes": [ "https://www.googleapis.com/auth/cloud-platform", @@ -22981,19 +24637,20 @@ ] }, "patch": { - "description": "Updates a managed instance group using the information that you specify in the request. This operation is marked as DONE when the group is patched even if the instances in the group are still in the process of being patched. You must separately verify the status of the individual instances with the listmanagedinstances method. This method supports PATCH semantics and uses the JSON merge patch format and processing rules. If you update your group to specify a new template or instance configuration, it's possible that your intended specification for each VM in the group is different from the current state of that VM. To learn how to apply an updated configuration to the VMs in a MIG, see Updating instances in a MIG.", - "flatPath": "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}", + "description": "Updates the specified BackendBucket resource with the data included in the\nrequest. This method supportsPATCH\nsemantics and uses theJSON merge\npatch format and processing rules.", + "flatPath": "projects/{project}/regions/{region}/backendBuckets/{backendBucket}", "httpMethod": "PATCH", - "id": "compute.regionInstanceGroupManagers.patch", + "id": "compute.regionBackendBuckets.patch", "parameterOrder": [ "project", "region", - "instanceGroupManager" + "backendBucket" ], "parameters": { - "instanceGroupManager": { - "description": "The name of the instance group manager.", + "backendBucket": { + "description": "Name of the BackendBucket resource to patch.", "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", "required": true, "type": "string" }, @@ -23007,18 +24664,19 @@ "region": { "description": "Name of the region scoping this request.", "location": "path", + "pattern": "[a-z](?:[-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. 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).", + "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).\nend_interface: MixerMutationRequestBuilder", "location": "query", "type": "string" } }, - "path": "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}", + "path": "projects/{project}/regions/{region}/backendBuckets/{backendBucket}", "request": { - "$ref": "InstanceGroupManager" + "$ref": "BackendBucket" }, "response": { "$ref": "Operation" @@ -23028,23 +24686,17 @@ "https://www.googleapis.com/auth/compute" ] }, - "patchPerInstanceConfigs": { - "description": "Inserts or patches per-instance configurations for the managed instance group. perInstanceConfig.name serves as a key used to distinguish whether to perform insert or patch.", - "flatPath": "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/patchPerInstanceConfigs", + "setIamPolicy": { + "description": "Sets the access control policy on the specified resource.\nReplaces any existing policy.", + "flatPath": "projects/{project}/regions/{region}/backendBuckets/{resource}/setIamPolicy", "httpMethod": "POST", - "id": "compute.regionInstanceGroupManagers.patchPerInstanceConfigs", + "id": "compute.regionBackendBuckets.setIamPolicy", "parameterOrder": [ "project", "region", - "instanceGroupManager" + "resource" ], "parameters": { - "instanceGroupManager": { - "description": "The name of the managed instance group. It should conform to RFC1035.", - "location": "path", - "required": true, - "type": "string" - }, "project": { "description": "Project ID for this request.", "location": "path", @@ -23053,46 +24705,43 @@ "type": "string" }, "region": { - "description": "Name of the region scoping this request, should conform to RFC1035.", + "description": "The name of the region for this request.", "location": "path", + "pattern": "[a-z](?:[-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. 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).", - "location": "query", + "resource": { + "description": "Name or id of the resource for this request.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "required": true, "type": "string" } }, - "path": "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/patchPerInstanceConfigs", + "path": "projects/{project}/regions/{region}/backendBuckets/{resource}/setIamPolicy", "request": { - "$ref": "RegionInstanceGroupManagerPatchInstanceConfigReq" + "$ref": "RegionSetPolicyRequest" }, "response": { - "$ref": "Operation" + "$ref": "Policy" }, "scopes": [ "https://www.googleapis.com/auth/cloud-platform", "https://www.googleapis.com/auth/compute" ] }, - "recreateInstances": { - "description": "Flags the specified VM instances in the managed instance group to be immediately recreated. Each instance is recreated using the group's current configuration. This operation is marked as DONE when the flag is set even if the instances have not yet been recreated. You must separately verify the status of each instance by checking its currentAction field; for more information, see Checking the status of managed instances. If the group is part of a backend service that has enabled connection draining, it can take up to 60 seconds after the connection draining duration has elapsed before the VM instance is removed or deleted. You can specify a maximum of 1000 instances with this method per request.", - "flatPath": "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/recreateInstances", + "testIamPermissions": { + "description": "Returns permissions that a caller has on the specified resource.", + "flatPath": "projects/{project}/regions/{region}/backendBuckets/{resource}/testIamPermissions", "httpMethod": "POST", - "id": "compute.regionInstanceGroupManagers.recreateInstances", + "id": "compute.regionBackendBuckets.testIamPermissions", "parameterOrder": [ "project", "region", - "instanceGroupManager" + "resource" ], "parameters": { - "instanceGroupManager": { - "description": "Name of the managed instance group.", - "location": "path", - "required": true, - "type": "string" - }, "project": { "description": "Project ID for this request.", "location": "path", @@ -23101,44 +24750,52 @@ "type": "string" }, "region": { - "description": "Name of the region scoping this request.", + "description": "The name of the region for this request.", "location": "path", + "pattern": "[a-z](?:[-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. 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).", - "location": "query", + "resource": { + "description": "Name or id of the resource for this request.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "required": true, "type": "string" } }, - "path": "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/recreateInstances", + "path": "projects/{project}/regions/{region}/backendBuckets/{resource}/testIamPermissions", "request": { - "$ref": "RegionInstanceGroupManagersRecreateRequest" + "$ref": "TestPermissionsRequest" }, "response": { - "$ref": "Operation" + "$ref": "TestPermissionsResponse" }, "scopes": [ "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" ] - }, - "resize": { - "description": "Changes the intended size of the managed instance group. If you increase the size, the group creates new instances using the current instance template. If you decrease the size, the group deletes one or more instances. The resize operation is marked DONE if the resize request is successful. The underlying actions take additional time. You must separately verify the status of the creating or deleting actions with the listmanagedinstances method. If the group is part of a backend service that has enabled connection draining, it can take up to 60 seconds after the connection draining duration has elapsed before the VM instance is removed or deleted.", - "flatPath": "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/resize", - "httpMethod": "POST", - "id": "compute.regionInstanceGroupManagers.resize", + } + } + }, + "regionBackendServices": { + "methods": { + "delete": { + "description": "Deletes the specified regional BackendService resource.", + "flatPath": "projects/{project}/regions/{region}/backendServices/{backendService}", + "httpMethod": "DELETE", + "id": "compute.regionBackendServices.delete", "parameterOrder": [ "project", "region", - "instanceGroupManager", - "size" + "backendService" ], "parameters": { - "instanceGroupManager": { - "description": "Name of the managed instance group.", + "backendService": { + "description": "Name of the BackendService resource to delete.", "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", "required": true, "type": "string" }, @@ -23152,24 +24809,17 @@ "region": { "description": "Name of the region scoping this request.", "location": "path", + "pattern": "[a-z](?:[-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. 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).", + "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).", "location": "query", "type": "string" - }, - "size": { - "description": "Number of instances that should exist in this instance group manager.", - "format": "int32", - "location": "query", - "minimum": "0", - "required": true, - "type": "integer" } }, - "path": "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/resize", + "path": "projects/{project}/regions/{region}/backendServices/{backendService}", "response": { "$ref": "Operation" }, @@ -23178,20 +24828,21 @@ "https://www.googleapis.com/auth/compute" ] }, - "setInstanceTemplate": { - "description": "Sets the instance template to use when creating new instances or recreating instances in this group. Existing instances are not affected.", - "flatPath": "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/setInstanceTemplate", - "httpMethod": "POST", - "id": "compute.regionInstanceGroupManagers.setInstanceTemplate", - "parameterOrder": [ - "project", + "get": { + "description": "Returns the specified regional BackendService resource.", + "flatPath": "projects/{project}/regions/{region}/backendServices/{backendService}", + "httpMethod": "GET", + "id": "compute.regionBackendServices.get", + "parameterOrder": [ + "project", "region", - "instanceGroupManager" + "backendService" ], "parameters": { - "instanceGroupManager": { - "description": "The name of the managed instance group.", + "backendService": { + "description": "Name of the BackendService resource to return.", "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", "required": true, "type": "string" }, @@ -23205,46 +24856,40 @@ "region": { "description": "Name of the region scoping this request.", "location": "path", + "pattern": "[a-z](?:[-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. 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).", - "location": "query", - "type": "string" } }, - "path": "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/setInstanceTemplate", - "request": { - "$ref": "RegionInstanceGroupManagersSetTemplateRequest" - }, + "path": "projects/{project}/regions/{region}/backendServices/{backendService}", "response": { - "$ref": "Operation" + "$ref": "BackendService" }, "scopes": [ "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" ] }, - "setTargetPools": { - "description": "Modifies the target pools to which all new instances in this group are assigned. Existing instances in the group are not affected.", - "flatPath": "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/setTargetPools", + "getHealth": { + "description": "Gets the most recent health check results for this\nregional BackendService.", + "flatPath": "projects/{project}/regions/{region}/backendServices/{backendService}/getHealth", "httpMethod": "POST", - "id": "compute.regionInstanceGroupManagers.setTargetPools", + "id": "compute.regionBackendServices.getHealth", "parameterOrder": [ "project", "region", - "instanceGroupManager" + "backendService" ], "parameters": { - "instanceGroupManager": { - "description": "Name of the managed instance group.", + "backendService": { + "description": "Name of the BackendService resource for which to get health.", "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", "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, @@ -23253,43 +24898,40 @@ "region": { "description": "Name of the region scoping this request.", "location": "path", + "pattern": "[a-z](?:[-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. 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).", - "location": "query", - "type": "string" } }, - "path": "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/setTargetPools", + "path": "projects/{project}/regions/{region}/backendServices/{backendService}/getHealth", "request": { - "$ref": "RegionInstanceGroupManagersSetTargetPoolsRequest" + "$ref": "ResourceGroupReference" }, "response": { - "$ref": "Operation" + "$ref": "BackendServiceGroupHealth" }, "scopes": [ "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" ] }, - "updatePerInstanceConfigs": { - "description": "Inserts or updates per-instance configurations for the managed instance group. perInstanceConfig.name serves as a key used to distinguish whether to perform insert or patch.", - "flatPath": "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/updatePerInstanceConfigs", - "httpMethod": "POST", - "id": "compute.regionInstanceGroupManagers.updatePerInstanceConfigs", + "getIamPolicy": { + "description": "Gets the access control policy for a resource. May be empty if no such\npolicy or resource exists.", + "flatPath": "projects/{project}/regions/{region}/backendServices/{resource}/getIamPolicy", + "httpMethod": "GET", + "id": "compute.regionBackendServices.getIamPolicy", "parameterOrder": [ "project", "region", - "instanceGroupManager" + "resource" ], "parameters": { - "instanceGroupManager": { - "description": "The name of the managed instance group. It should conform to RFC1035.", - "location": "path", - "required": true, - "type": "string" + "optionsRequestedPolicyVersion": { + "description": "Requested IAM Policy version.", + "format": "int32", + "location": "query", + "type": "integer" }, "project": { "description": "Project ID for this request.", @@ -23299,50 +24941,40 @@ "type": "string" }, "region": { - "description": "Name of the region scoping this request, should conform to RFC1035.", + "description": "The name of the region for this request.", "location": "path", + "pattern": "[a-z](?:[-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. 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).", - "location": "query", + "resource": { + "description": "Name or id of the resource for this request.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "required": true, "type": "string" } }, - "path": "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/updatePerInstanceConfigs", - "request": { - "$ref": "RegionInstanceGroupManagerUpdateInstanceConfigReq" - }, + "path": "projects/{project}/regions/{region}/backendServices/{resource}/getIamPolicy", "response": { - "$ref": "Operation" + "$ref": "Policy" }, "scopes": [ "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" ] - } - } - }, - "regionInstanceGroups": { - "methods": { - "get": { - "description": "Returns the specified instance group resource.", - "flatPath": "projects/{project}/regions/{region}/instanceGroups/{instanceGroup}", - "httpMethod": "GET", - "id": "compute.regionInstanceGroups.get", + }, + "insert": { + "description": "Creates a regional BackendService resource in the specified project using\nthe data included in the request. For more information, see\nBackend services overview.", + "flatPath": "projects/{project}/regions/{region}/backendServices", + "httpMethod": "POST", + "id": "compute.regionBackendServices.insert", "parameterOrder": [ "project", - "region", - "instanceGroup" + "region" ], "parameters": { - "instanceGroup": { - "description": "Name of the instance group resource to return.", - "location": "path", - "required": true, - "type": "string" - }, "project": { "description": "Project ID for this request.", "location": "path", @@ -23353,50 +24985,58 @@ "region": { "description": "Name of the region scoping this request.", "location": "path", + "pattern": "[a-z](?:[-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\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).", + "location": "query", + "type": "string" } }, - "path": "projects/{project}/regions/{region}/instanceGroups/{instanceGroup}", + "path": "projects/{project}/regions/{region}/backendServices", + "request": { + "$ref": "BackendService" + }, "response": { - "$ref": "InstanceGroup" + "$ref": "Operation" }, "scopes": [ "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" + "https://www.googleapis.com/auth/compute" ] }, "list": { - "description": "Retrieves the list of instance group resources contained within the specified region.", - "flatPath": "projects/{project}/regions/{region}/instanceGroups", + "description": "Retrieves the list of regional BackendService resources available to the\nspecified project in the given region.", + "flatPath": "projects/{project}/regions/{region}/backendServices", "httpMethod": "GET", - "id": "compute.regionInstanceGroups.list", + "id": "compute.regionBackendServices.list", "parameterOrder": [ "project", "region" ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` 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) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.", + "description": "A filter expression that filters resources listed in the response. Most\nCompute resources support two types of filter expressions:\nexpressions that support regular expressions and expressions that follow\nAPI improvement proposal AIP-160.\nThese two types of filter expressions cannot be mixed in one request.\n\nIf you want to use AIP-160, your expression must specify the field name, an\noperator, and the value that you want to use for filtering. The value\nmust be a string, a number, or a boolean. The operator\nmust be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`.\n\nFor example, if you are filtering Compute Engine instances, you can\nexclude instances named `example-instance` by specifying\n`name != example-instance`.\n\nThe `:*` comparison can be used to test whether a key has been defined.\nFor example, to find all objects with `owner` label use:\n```\nlabels.owner:*\n```\n\nYou can also filter nested fields. For example, you could specify\n`scheduling.automaticRestart = false` to include instances only\nif they are not scheduled for automatic restarts. You can use filtering\non nested fields to filter based onresource labels.\n\nTo filter on multiple expressions, provide each separate expression within\nparentheses. For example:\n```\n(scheduling.automaticRestart = true)\n(cpuPlatform = \"Intel Skylake\")\n```\nBy default, each expression is an `AND` expression. However, you\ncan include `AND` and `OR` expressions explicitly.\nFor example:\n```\n(cpuPlatform = \"Intel Skylake\") OR\n(cpuPlatform = \"Intel Broadwell\") AND\n(scheduling.automaticRestart = true)\n```\n\nIf you want to use a regular expression, use the `eq` (equal) or `ne`\n(not equal) operator against a single un-parenthesized expression with or\nwithout quotes or against multiple parenthesized expressions. Examples:\n\n`fieldname eq unquoted literal`\n`fieldname eq 'single quoted literal'`\n`fieldname eq \"double quoted literal\"`\n`(fieldname1 eq literal) (fieldname2 ne \"literal\")`\n\nThe literal value is interpreted as a regular expression using GoogleRE2 library syntax.\nThe literal value must match the entire field.\n\nFor example, to filter for instances that do not end with name \"instance\",\nyou would use `name ne .*instance`.\n\nYou cannot combine constraints on multiple fields using regular\nexpressions.", "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`)", + "description": "The maximum number of results per page that should be returned.\nIf the number of available results is larger than `maxResults`,\nCompute Engine returns a `nextPageToken` that can be used to get\nthe next page of results in subsequent list requests. Acceptable values are\n`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. 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.", + "description": "Sorts list results by a certain order. By default, results\nare returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation\ntimestamp using `orderBy=\"creationTimestamp desc\"`. This sorts\nresults based on the `creationTimestamp` field in\nreverse chronological order (newest result first). Use this to sort\nresources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or\n`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.", + "description": "Specifies a page token to use. Set `pageToken` to the\n`nextPageToken` returned by a previous list request to get\nthe next page of results.", "location": "query", "type": "string" }, @@ -23410,18 +25050,19 @@ "region": { "description": "Name of the region scoping this request.", "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", "required": true, "type": "string" }, "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", + "description": "Opt-in for partial success behavior which provides partial results in case\nof failure. The default value is false.\n\nFor example, when partial success behavior is enabled, aggregatedList for a\nsingle zone scope either returns all resources in the zone or no resources,\nwith an error code.", "location": "query", "type": "boolean" } }, - "path": "projects/{project}/regions/{region}/instanceGroups", + "path": "projects/{project}/regions/{region}/backendServices", "response": { - "$ref": "RegionInstanceGroupList" + "$ref": "BackendServiceList" }, "scopes": [ "https://www.googleapis.com/auth/cloud-platform", @@ -23429,43 +25070,36 @@ "https://www.googleapis.com/auth/compute.readonly" ] }, - "listInstances": { - "description": "Lists the instances in the specified instance group and displays information about the named ports. Depending on the specified options, this method can list all instances or only the instances that are running. The orderBy query parameter is not supported.", - "flatPath": "projects/{project}/regions/{region}/instanceGroups/{instanceGroup}/listInstances", - "httpMethod": "POST", - "id": "compute.regionInstanceGroups.listInstances", + "listUsable": { + "description": "Retrieves a list of all usable backend services for Application Load\nBalancers and Proxy Network Load Balancers in the specified project in the\ngiven region. Backend services for external and internal passthrough\nNetwork Load Balancers are not included in the response.", + "flatPath": "projects/{project}/regions/{region}/backendServices/listUsable", + "httpMethod": "GET", + "id": "compute.regionBackendServices.listUsable", "parameterOrder": [ "project", - "region", - "instanceGroup" + "region" ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` 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) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.", + "description": "A filter expression that filters resources listed in the response. Most\nCompute resources support two types of filter expressions:\nexpressions that support regular expressions and expressions that follow\nAPI improvement proposal AIP-160.\nThese two types of filter expressions cannot be mixed in one request.\n\nIf you want to use AIP-160, your expression must specify the field name, an\noperator, and the value that you want to use for filtering. The value\nmust be a string, a number, or a boolean. The operator\nmust be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`.\n\nFor example, if you are filtering Compute Engine instances, you can\nexclude instances named `example-instance` by specifying\n`name != example-instance`.\n\nThe `:*` comparison can be used to test whether a key has been defined.\nFor example, to find all objects with `owner` label use:\n```\nlabels.owner:*\n```\n\nYou can also filter nested fields. For example, you could specify\n`scheduling.automaticRestart = false` to include instances only\nif they are not scheduled for automatic restarts. You can use filtering\non nested fields to filter based onresource labels.\n\nTo filter on multiple expressions, provide each separate expression within\nparentheses. For example:\n```\n(scheduling.automaticRestart = true)\n(cpuPlatform = \"Intel Skylake\")\n```\nBy default, each expression is an `AND` expression. However, you\ncan include `AND` and `OR` expressions explicitly.\nFor example:\n```\n(cpuPlatform = \"Intel Skylake\") OR\n(cpuPlatform = \"Intel Broadwell\") AND\n(scheduling.automaticRestart = true)\n```\n\nIf you want to use a regular expression, use the `eq` (equal) or `ne`\n(not equal) operator against a single un-parenthesized expression with or\nwithout quotes or against multiple parenthesized expressions. Examples:\n\n`fieldname eq unquoted literal`\n`fieldname eq 'single quoted literal'`\n`fieldname eq \"double quoted literal\"`\n`(fieldname1 eq literal) (fieldname2 ne \"literal\")`\n\nThe literal value is interpreted as a regular expression using GoogleRE2 library syntax.\nThe literal value must match the entire field.\n\nFor example, to filter for instances that do not end with name \"instance\",\nyou would use `name ne .*instance`.\n\nYou cannot combine constraints on multiple fields using regular\nexpressions.", "location": "query", "type": "string" }, - "instanceGroup": { - "description": "Name of the regional instance group for which we want to list the instances.", - "location": "path", - "required": true, - "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`)", + "description": "The maximum number of results per page that should be returned.\nIf the number of available results is larger than `maxResults`,\nCompute Engine returns a `nextPageToken` that can be used to get\nthe next page of results in subsequent list requests. Acceptable values are\n`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. 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.", + "description": "Sorts list results by a certain order. By default, results\nare returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation\ntimestamp using `orderBy=\"creationTimestamp desc\"`. This sorts\nresults based on the `creationTimestamp` field in\nreverse chronological order (newest result first). Use this to sort\nresources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or\n`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.", + "description": "Specifies a page token to use. Set `pageToken` to the\n`nextPageToken` returned by a previous list request to get\nthe next page of results.", "location": "query", "type": "string" }, @@ -23477,23 +25111,20 @@ "type": "string" }, "region": { - "description": "Name of the region scoping this request.", + "description": "Name of the region scoping this request.\nIt must be a string that meets the requirements in RFC1035.", "location": "path", "required": true, "type": "string" }, "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", + "description": "Opt-in for partial success behavior which provides partial results in case\nof failure. The default value is false.\n\nFor example, when partial success behavior is enabled, aggregatedList for a\nsingle zone scope either returns all resources in the zone or no resources,\nwith an error code.", "location": "query", "type": "boolean" } }, - "path": "projects/{project}/regions/{region}/instanceGroups/{instanceGroup}/listInstances", - "request": { - "$ref": "RegionInstanceGroupsListInstancesRequest" - }, + "path": "projects/{project}/regions/{region}/backendServices/listUsable", "response": { - "$ref": "RegionInstanceGroupsListInstances" + "$ref": "BackendServiceListUsable" }, "scopes": [ "https://www.googleapis.com/auth/cloud-platform", @@ -23501,20 +25132,21 @@ "https://www.googleapis.com/auth/compute.readonly" ] }, - "setNamedPorts": { - "description": "Sets the named ports for the specified regional instance group.", - "flatPath": "projects/{project}/regions/{region}/instanceGroups/{instanceGroup}/setNamedPorts", - "httpMethod": "POST", - "id": "compute.regionInstanceGroups.setNamedPorts", + "patch": { + "description": "Updates the specified regional BackendService resource with the data\nincluded in the request. For more information, see \nUnderstanding backend services This method\nsupports PATCH semantics and uses the JSON merge\npatch format and processing rules.", + "flatPath": "projects/{project}/regions/{region}/backendServices/{backendService}", + "httpMethod": "PATCH", + "id": "compute.regionBackendServices.patch", "parameterOrder": [ "project", "region", - "instanceGroup" + "backendService" ], "parameters": { - "instanceGroup": { - "description": "The name of the regional instance group where the named ports are updated.", + "backendService": { + "description": "Name of the BackendService resource to patch.", "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", "required": true, "type": "string" }, @@ -23528,18 +25160,19 @@ "region": { "description": "Name of the region scoping this request.", "location": "path", + "pattern": "[a-z](?:[-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. 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).", + "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).", "location": "query", "type": "string" } }, - "path": "projects/{project}/regions/{region}/instanceGroups/{instanceGroup}/setNamedPorts", + "path": "projects/{project}/regions/{region}/backendServices/{backendService}", "request": { - "$ref": "RegionInstanceGroupsSetNamedPortsRequest" + "$ref": "BackendService" }, "response": { "$ref": "Operation" @@ -23548,29 +25181,18 @@ "https://www.googleapis.com/auth/cloud-platform", "https://www.googleapis.com/auth/compute" ] - } - } - }, - "regionInstanceTemplates": { - "methods": { - "delete": { - "description": "Deletes the specified instance template. Deleting an instance template is permanent and cannot be undone.", - "flatPath": "projects/{project}/regions/{region}/instanceTemplates/{instanceTemplate}", - "httpMethod": "DELETE", - "id": "compute.regionInstanceTemplates.delete", + }, + "setIamPolicy": { + "description": "Sets the access control policy on the specified resource.\nReplaces any existing policy.", + "flatPath": "projects/{project}/regions/{region}/backendServices/{resource}/setIamPolicy", + "httpMethod": "POST", + "id": "compute.regionBackendServices.setIamPolicy", "parameterOrder": [ "project", "region", - "instanceTemplate" + "resource" ], "parameters": { - "instanceTemplate": { - "description": "The name of the instance template to delete.", - "location": "path", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "required": true, - "type": "string" - }, "project": { "description": "Project ID for this request.", "location": "path", @@ -23585,74 +25207,43 @@ "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. 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).", - "location": "query", + "resource": { + "description": "Name or id of the resource for this request.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "required": true, "type": "string" } }, - "path": "projects/{project}/regions/{region}/instanceTemplates/{instanceTemplate}", + "path": "projects/{project}/regions/{region}/backendServices/{resource}/setIamPolicy", + "request": { + "$ref": "RegionSetPolicyRequest" + }, "response": { - "$ref": "Operation" + "$ref": "Policy" }, "scopes": [ "https://www.googleapis.com/auth/cloud-platform", "https://www.googleapis.com/auth/compute" ] }, - "get": { - "description": "Returns the specified instance template.", - "flatPath": "projects/{project}/regions/{region}/instanceTemplates/{instanceTemplate}", - "httpMethod": "GET", - "id": "compute.regionInstanceTemplates.get", + "setSecurityPolicy": { + "description": "Sets the Google Cloud Armor security policy for the specified backend\nservice. For more information, seeGoogle\nCloud Armor Overview", + "flatPath": "projects/{project}/regions/{region}/backendServices/{backendService}/setSecurityPolicy", + "httpMethod": "POST", + "id": "compute.regionBackendServices.setSecurityPolicy", "parameterOrder": [ "project", "region", - "instanceTemplate" + "backendService" ], "parameters": { - "instanceTemplate": { - "description": "The name of the instance template.", - "location": "path", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "required": true, - "type": "string" - }, - "project": { - "description": "Project ID for this request.", + "backendService": { + "description": "Name of the BackendService resource to which the security policy should be\nset. The name should conform to RFC1035.", "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": "The name of the region for this request.", - "location": "path", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "required": true, - "type": "string" - } - }, - "path": "projects/{project}/regions/{region}/instanceTemplates/{instanceTemplate}", - "response": { - "$ref": "InstanceTemplate" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" - ] - }, - "insert": { - "description": "Creates an instance template in the specified project and region using the global instance template whose URL is included in the request.", - "flatPath": "projects/{project}/regions/{region}/instanceTemplates", - "httpMethod": "POST", - "id": "compute.regionInstanceTemplates.insert", - "parameterOrder": [ - "project", - "region" - ], - "parameters": { "project": { "description": "Project ID for this request.", "location": "path", @@ -23661,21 +25252,21 @@ "type": "string" }, "region": { - "description": "The name of the region for this request.", + "description": "Name of the region scoping this request.", "location": "path", "pattern": "[a-z](?:[-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. 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).", + "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).", "location": "query", "type": "string" } }, - "path": "projects/{project}/regions/{region}/instanceTemplates", + "path": "projects/{project}/regions/{region}/backendServices/{backendService}/setSecurityPolicy", "request": { - "$ref": "InstanceTemplate" + "$ref": "SecurityPolicyReference" }, "response": { "$ref": "Operation" @@ -23685,39 +25276,17 @@ "https://www.googleapis.com/auth/compute" ] }, - "list": { - "description": "Retrieves a list of instance templates that are contained within the specified project and region.", - "flatPath": "projects/{project}/regions/{region}/instanceTemplates", - "httpMethod": "GET", - "id": "compute.regionInstanceTemplates.list", + "testIamPermissions": { + "description": "Returns permissions that a caller has on the specified resource.", + "flatPath": "projects/{project}/regions/{region}/backendServices/{resource}/testIamPermissions", + "httpMethod": "POST", + "id": "compute.regionBackendServices.testIamPermissions", "parameterOrder": [ "project", - "region" + "region", + "resource" ], "parameters": { - "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` 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) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.", - "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. 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.", - "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", @@ -23726,42 +25295,51 @@ "type": "string" }, "region": { - "description": "The name of the regions for this request.", + "description": "The name of the region for this request.", "location": "path", "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", "required": true, "type": "string" }, - "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", - "location": "query", - "type": "boolean" + "resource": { + "description": "Name or id of the resource for this request.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "required": true, + "type": "string" } }, - "path": "projects/{project}/regions/{region}/instanceTemplates", + "path": "projects/{project}/regions/{region}/backendServices/{resource}/testIamPermissions", + "request": { + "$ref": "TestPermissionsRequest" + }, "response": { - "$ref": "InstanceTemplateList" + "$ref": "TestPermissionsResponse" }, "scopes": [ "https://www.googleapis.com/auth/cloud-platform", "https://www.googleapis.com/auth/compute", "https://www.googleapis.com/auth/compute.readonly" ] - } - } - }, - "regionInstances": { - "methods": { - "bulkInsert": { - "description": "Creates multiple instances in a given region. Count specifies the number of instances to create.", - "flatPath": "projects/{project}/regions/{region}/instances/bulkInsert", - "httpMethod": "POST", - "id": "compute.regionInstances.bulkInsert", + }, + "update": { + "description": "Updates the specified regional BackendService resource with the data\nincluded in the request. For more information,\nsee \nBackend services overview.", + "flatPath": "projects/{project}/regions/{region}/backendServices/{backendService}", + "httpMethod": "PUT", + "id": "compute.regionBackendServices.update", "parameterOrder": [ "project", - "region" + "region", + "backendService" ], "parameters": { + "backendService": { + "description": "Name of the BackendService resource to update.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "required": true, + "type": "string" + }, "project": { "description": "Project ID for this request.", "location": "path", @@ -23770,21 +25348,21 @@ "type": "string" }, "region": { - "description": "The name of the region for this request.", + "description": "Name of the region scoping this request.", "location": "path", "pattern": "[a-z](?:[-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. 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).", + "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).", "location": "query", "type": "string" } }, - "path": "projects/{project}/regions/{region}/instances/bulkInsert", + "path": "projects/{project}/regions/{region}/backendServices/{backendService}", "request": { - "$ref": "BulkInsertInstanceResource" + "$ref": "BackendService" }, "response": { "$ref": "Operation" @@ -23796,71 +25374,43 @@ } } }, - "regionInstantSnapshots": { + "regionCommitments": { "methods": { - "delete": { - "description": "Deletes the specified InstantSnapshot resource. Keep in mind that deleting a single instantSnapshot might not necessarily delete all the data on that instantSnapshot. If any data on the instantSnapshot that is marked for deletion is needed for subsequent instantSnapshots, the data will be moved to the next corresponding instantSnapshot. For more information, see Deleting instantSnapshots.", - "flatPath": "projects/{project}/regions/{region}/instantSnapshots/{instantSnapshot}", - "httpMethod": "DELETE", - "id": "compute.regionInstantSnapshots.delete", + "aggregatedList": { + "description": "Retrieves an aggregated list of commitments by region.\n\nTo prevent failure, it is recommended that you set the\n`returnPartialSuccess` parameter to `true`.", + "flatPath": "projects/{project}/aggregated/commitments", + "httpMethod": "GET", + "id": "compute.regionCommitments.aggregatedList", "parameterOrder": [ - "project", - "region", - "instantSnapshot" + "project" ], "parameters": { - "instantSnapshot": { - "description": "Name of the InstantSnapshot resource to delete.", - "location": "path", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "required": true, + "filter": { + "description": "A filter expression that filters resources listed in the response. Most\nCompute resources support two types of filter expressions:\nexpressions that support regular expressions and expressions that follow\nAPI improvement proposal AIP-160.\nThese two types of filter expressions cannot be mixed in one request.\n\nIf you want to use AIP-160, your expression must specify the field name, an\noperator, and the value that you want to use for filtering. The value\nmust be a string, a number, or a boolean. The operator\nmust be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`.\n\nFor example, if you are filtering Compute Engine instances, you can\nexclude instances named `example-instance` by specifying\n`name != example-instance`.\n\nThe `:*` comparison can be used to test whether a key has been defined.\nFor example, to find all objects with `owner` label use:\n```\nlabels.owner:*\n```\n\nYou can also filter nested fields. For example, you could specify\n`scheduling.automaticRestart = false` to include instances only\nif they are not scheduled for automatic restarts. You can use filtering\non nested fields to filter based onresource labels.\n\nTo filter on multiple expressions, provide each separate expression within\nparentheses. For example:\n```\n(scheduling.automaticRestart = true)\n(cpuPlatform = \"Intel Skylake\")\n```\nBy default, each expression is an `AND` expression. However, you\ncan include `AND` and `OR` expressions explicitly.\nFor example:\n```\n(cpuPlatform = \"Intel Skylake\") OR\n(cpuPlatform = \"Intel Broadwell\") AND\n(scheduling.automaticRestart = true)\n```\n\nIf you want to use a regular expression, use the `eq` (equal) or `ne`\n(not equal) operator against a single un-parenthesized expression with or\nwithout quotes or against multiple parenthesized expressions. Examples:\n\n`fieldname eq unquoted literal`\n`fieldname eq 'single quoted literal'`\n`fieldname eq \"double quoted literal\"`\n`(fieldname1 eq literal) (fieldname2 ne \"literal\")`\n\nThe literal value is interpreted as a regular expression using GoogleRE2 library syntax.\nThe literal value must match the entire field.\n\nFor example, to filter for instances that do not end with name \"instance\",\nyou would use `name ne .*instance`.\n\nYou cannot combine constraints on multiple fields using regular\nexpressions.", + "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" + "includeAllScopes": { + "description": "Indicates whether every visible scope for each scope type (zone, region,\nglobal) should be included in the response. For new resource types added\nafter this field, the flag has no effect as new resource types will always\ninclude every visible scope for each scope type in response. For resource\ntypes which predate this field, if this flag is omitted or false, only\nscopes of the scope types where the resource type is expected to be found\nwill be included.", + "location": "query", + "type": "boolean" }, - "region": { - "description": "The name of the region for this request.", - "location": "path", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "required": true, - "type": "string" + "maxResults": { + "default": "500", + "description": "The maximum number of results per page that should be returned.\nIf the number of available results is larger than `maxResults`,\nCompute Engine returns a `nextPageToken` that can be used to get\nthe next page of results in subsequent list requests. Acceptable values are\n`0` to `500`, inclusive. (Default: `500`)", + "format": "uint32", + "location": "query", + "minimum": "0", + "type": "integer" }, - "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. 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).", + "orderBy": { + "description": "Sorts list results by a certain order. By default, results\nare returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation\ntimestamp using `orderBy=\"creationTimestamp desc\"`. This sorts\nresults based on the `creationTimestamp` field in\nreverse chronological order (newest result first). Use this to sort\nresources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or\n`creationTimestamp desc` is supported.", "location": "query", "type": "string" - } - }, - "path": "projects/{project}/regions/{region}/instantSnapshots/{instantSnapshot}", - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ] - }, - "get": { - "description": "Returns the specified InstantSnapshot resource in the specified region.", - "flatPath": "projects/{project}/regions/{region}/instantSnapshots/{instantSnapshot}", - "httpMethod": "GET", - "id": "compute.regionInstantSnapshots.get", - "parameterOrder": [ - "project", - "region", - "instantSnapshot" - ], - "parameters": { - "instantSnapshot": { - "description": "Name of the InstantSnapshot resource to return.", - "location": "path", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "required": true, + }, + "pageToken": { + "description": "Specifies a page token to use. Set `pageToken` to the\n`nextPageToken` returned by a previous list request to get\nthe next page of results.", + "location": "query", "type": "string" }, "project": { @@ -23870,17 +25420,21 @@ "required": true, "type": "string" }, - "region": { - "description": "The name of the region for this request.", - "location": "path", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "required": true, + "returnPartialSuccess": { + "description": "Opt-in for partial success behavior which provides partial results in case\nof failure. The default value is false.\n\nFor example, when partial success behavior is enabled, aggregatedList for a\nsingle zone scope either returns all resources in the zone or no resources,\nwith an error code.", + "location": "query", + "type": "boolean" + }, + "serviceProjectNumber": { + "description": "The Shared VPC service project id or service project number for which\naggregated list request is invoked for subnetworks list-usable api.", + "format": "int64", + "location": "query", "type": "string" } }, - "path": "projects/{project}/regions/{region}/instantSnapshots/{instantSnapshot}", + "path": "projects/{project}/aggregated/commitments", "response": { - "$ref": "InstantSnapshot" + "$ref": "CommitmentAggregatedList" }, "scopes": [ "https://www.googleapis.com/auth/cloud-platform", @@ -23888,22 +25442,23 @@ "https://www.googleapis.com/auth/compute.readonly" ] }, - "getIamPolicy": { - "description": "Gets the access control policy for a resource. May be empty if no such policy or resource exists.", - "flatPath": "projects/{project}/regions/{region}/instantSnapshots/{resource}/getIamPolicy", + "get": { + "description": "Returns the specified commitment resource.", + "flatPath": "projects/{project}/regions/{region}/commitments/{commitment}", "httpMethod": "GET", - "id": "compute.regionInstantSnapshots.getIamPolicy", + "id": "compute.regionCommitments.get", "parameterOrder": [ "project", "region", - "resource" + "commitment" ], "parameters": { - "optionsRequestedPolicyVersion": { - "description": "Requested IAM Policy version.", - "format": "int32", - "location": "query", - "type": "integer" + "commitment": { + "description": "Name of the commitment to return.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "required": true, + "type": "string" }, "project": { "description": "Project ID for this request.", @@ -23913,23 +25468,16 @@ "type": "string" }, "region": { - "description": "The name of the region for this request.", + "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" - }, - "resource": { - "description": "Name or id of the resource for this request.", - "location": "path", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "required": true, - "type": "string" } }, - "path": "projects/{project}/regions/{region}/instantSnapshots/{resource}/getIamPolicy", + "path": "projects/{project}/regions/{region}/commitments/{commitment}", "response": { - "$ref": "Policy" + "$ref": "Commitment" }, "scopes": [ "https://www.googleapis.com/auth/cloud-platform", @@ -23938,10 +25486,10 @@ ] }, "insert": { - "description": "Creates an instant snapshot in the specified region.", - "flatPath": "projects/{project}/regions/{region}/instantSnapshots", + "description": "Creates a commitment in the specified project using the data\nincluded in the request.", + "flatPath": "projects/{project}/regions/{region}/commitments", "httpMethod": "POST", - "id": "compute.regionInstantSnapshots.insert", + "id": "compute.regionCommitments.insert", "parameterOrder": [ "project", "region" @@ -23962,14 +25510,14 @@ "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. 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).", + "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).", "location": "query", "type": "string" } }, - "path": "projects/{project}/regions/{region}/instantSnapshots", + "path": "projects/{project}/regions/{region}/commitments", "request": { - "$ref": "InstantSnapshot" + "$ref": "Commitment" }, "response": { "$ref": "Operation" @@ -23980,35 +25528,35 @@ ] }, "list": { - "description": "Retrieves the list of InstantSnapshot resources contained within the specified region.", - "flatPath": "projects/{project}/regions/{region}/instantSnapshots", + "description": "Retrieves a list of commitments contained within\nthe specified region.", + "flatPath": "projects/{project}/regions/{region}/commitments", "httpMethod": "GET", - "id": "compute.regionInstantSnapshots.list", + "id": "compute.regionCommitments.list", "parameterOrder": [ "project", "region" ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` 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) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.", + "description": "A filter expression that filters resources listed in the response. Most\nCompute resources support two types of filter expressions:\nexpressions that support regular expressions and expressions that follow\nAPI improvement proposal AIP-160.\nThese two types of filter expressions cannot be mixed in one request.\n\nIf you want to use AIP-160, your expression must specify the field name, an\noperator, and the value that you want to use for filtering. The value\nmust be a string, a number, or a boolean. The operator\nmust be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`.\n\nFor example, if you are filtering Compute Engine instances, you can\nexclude instances named `example-instance` by specifying\n`name != example-instance`.\n\nThe `:*` comparison can be used to test whether a key has been defined.\nFor example, to find all objects with `owner` label use:\n```\nlabels.owner:*\n```\n\nYou can also filter nested fields. For example, you could specify\n`scheduling.automaticRestart = false` to include instances only\nif they are not scheduled for automatic restarts. You can use filtering\non nested fields to filter based onresource labels.\n\nTo filter on multiple expressions, provide each separate expression within\nparentheses. For example:\n```\n(scheduling.automaticRestart = true)\n(cpuPlatform = \"Intel Skylake\")\n```\nBy default, each expression is an `AND` expression. However, you\ncan include `AND` and `OR` expressions explicitly.\nFor example:\n```\n(cpuPlatform = \"Intel Skylake\") OR\n(cpuPlatform = \"Intel Broadwell\") AND\n(scheduling.automaticRestart = true)\n```\n\nIf you want to use a regular expression, use the `eq` (equal) or `ne`\n(not equal) operator against a single un-parenthesized expression with or\nwithout quotes or against multiple parenthesized expressions. Examples:\n\n`fieldname eq unquoted literal`\n`fieldname eq 'single quoted literal'`\n`fieldname eq \"double quoted literal\"`\n`(fieldname1 eq literal) (fieldname2 ne \"literal\")`\n\nThe literal value is interpreted as a regular expression using GoogleRE2 library syntax.\nThe literal value must match the entire field.\n\nFor example, to filter for instances that do not end with name \"instance\",\nyou would use `name ne .*instance`.\n\nYou cannot combine constraints on multiple fields using regular\nexpressions.", "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`)", + "description": "The maximum number of results per page that should be returned.\nIf the number of available results is larger than `maxResults`,\nCompute Engine returns a `nextPageToken` that can be used to get\nthe next page of results in subsequent list requests. Acceptable values are\n`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. 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.", + "description": "Sorts list results by a certain order. By default, results\nare returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation\ntimestamp using `orderBy=\"creationTimestamp desc\"`. This sorts\nresults based on the `creationTimestamp` field in\nreverse chronological order (newest result first). Use this to sort\nresources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or\n`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.", + "description": "Specifies a page token to use. Set `pageToken` to the\n`nextPageToken` returned by a previous list request to get\nthe next page of results.", "location": "query", "type": "string" }, @@ -24020,21 +25568,21 @@ "type": "string" }, "region": { - "description": "The name of the region for this request.", + "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" }, "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", + "description": "Opt-in for partial success behavior which provides partial results in case\nof failure. The default value is false.\n\nFor example, when partial success behavior is enabled, aggregatedList for a\nsingle zone scope either returns all resources in the zone or no resources,\nwith an error code.", "location": "query", "type": "boolean" } }, - "path": "projects/{project}/regions/{region}/instantSnapshots", + "path": "projects/{project}/regions/{region}/commitments", "response": { - "$ref": "InstantSnapshotList" + "$ref": "CommitmentList" }, "scopes": [ "https://www.googleapis.com/auth/cloud-platform", @@ -24042,17 +25590,29 @@ "https://www.googleapis.com/auth/compute.readonly" ] }, - "setIamPolicy": { - "description": "Sets the access control policy on the specified resource. Replaces any existing policy.", - "flatPath": "projects/{project}/regions/{region}/instantSnapshots/{resource}/setIamPolicy", - "httpMethod": "POST", - "id": "compute.regionInstantSnapshots.setIamPolicy", + "update": { + "description": "Updates the specified commitment with the data included in the request.\nUpdate is performed only on selected fields included as part of\nupdate-mask. Only the following fields can be updated: auto_renew and plan.", + "flatPath": "projects/{project}/regions/{region}/commitments/{commitment}", + "httpMethod": "PATCH", + "id": "compute.regionCommitments.update", "parameterOrder": [ "project", "region", - "resource" + "commitment" ], "parameters": { + "commitment": { + "description": "Name of the commitment that you want to update.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "required": true, + "type": "string" + }, + "paths": { + "location": "query", + "repeated": true, + "type": "string" + }, "project": { "description": "Project ID for this request.", "location": "path", @@ -24061,93 +25621,124 @@ "type": "string" }, "region": { - "description": "The name of the region for this request.", + "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" }, - "resource": { - "description": "Name or id of the resource for this request.", - "location": "path", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "required": true, + "requestId": { + "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).", + "location": "query", + "type": "string" + }, + "updateMask": { + "description": "update_mask indicates fields to be updated as part of this request.", + "format": "google-fieldmask", + "location": "query", "type": "string" } }, - "path": "projects/{project}/regions/{region}/instantSnapshots/{resource}/setIamPolicy", + "path": "projects/{project}/regions/{region}/commitments/{commitment}", "request": { - "$ref": "RegionSetPolicyRequest" + "$ref": "Commitment" }, "response": { - "$ref": "Policy" + "$ref": "Operation" }, "scopes": [ "https://www.googleapis.com/auth/cloud-platform", "https://www.googleapis.com/auth/compute" ] - }, - "setLabels": { - "description": "Sets the labels on a instantSnapshot in the given region. To learn more about labels, read the Labeling Resources documentation.", - "flatPath": "projects/{project}/regions/{region}/instantSnapshots/{resource}/setLabels", - "httpMethod": "POST", - "id": "compute.regionInstantSnapshots.setLabels", + } + } + }, + "regionCompositeHealthChecks": { + "methods": { + "aggregatedList": { + "description": "Retrieves the list of all CompositeHealthCheck resources (all\nregional) available to the specified project.\n\nTo prevent failure, it is recommended that you set the\n`returnPartialSuccess` parameter to `true`.", + "flatPath": "projects/{project}/aggregated/compositeHealthChecks", + "httpMethod": "GET", + "id": "compute.regionCompositeHealthChecks.aggregatedList", "parameterOrder": [ - "project", - "region", - "resource" + "project" ], "parameters": { - "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, + "filter": { + "description": "A filter expression that filters resources listed in the response. Most\nCompute resources support two types of filter expressions:\nexpressions that support regular expressions and expressions that follow\nAPI improvement proposal AIP-160.\nThese two types of filter expressions cannot be mixed in one request.\n\nIf you want to use AIP-160, your expression must specify the field name, an\noperator, and the value that you want to use for filtering. The value\nmust be a string, a number, or a boolean. The operator\nmust be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`.\n\nFor example, if you are filtering Compute Engine instances, you can\nexclude instances named `example-instance` by specifying\n`name != example-instance`.\n\nThe `:*` comparison can be used to test whether a key has been defined.\nFor example, to find all objects with `owner` label use:\n```\nlabels.owner:*\n```\n\nYou can also filter nested fields. For example, you could specify\n`scheduling.automaticRestart = false` to include instances only\nif they are not scheduled for automatic restarts. You can use filtering\non nested fields to filter based onresource labels.\n\nTo filter on multiple expressions, provide each separate expression within\nparentheses. For example:\n```\n(scheduling.automaticRestart = true)\n(cpuPlatform = \"Intel Skylake\")\n```\nBy default, each expression is an `AND` expression. However, you\ncan include `AND` and `OR` expressions explicitly.\nFor example:\n```\n(cpuPlatform = \"Intel Skylake\") OR\n(cpuPlatform = \"Intel Broadwell\") AND\n(scheduling.automaticRestart = true)\n```\n\nIf you want to use a regular expression, use the `eq` (equal) or `ne`\n(not equal) operator against a single un-parenthesized expression with or\nwithout quotes or against multiple parenthesized expressions. Examples:\n\n`fieldname eq unquoted literal`\n`fieldname eq 'single quoted literal'`\n`fieldname eq \"double quoted literal\"`\n`(fieldname1 eq literal) (fieldname2 ne \"literal\")`\n\nThe literal value is interpreted as a regular expression using GoogleRE2 library syntax.\nThe literal value must match the entire field.\n\nFor example, to filter for instances that do not end with name \"instance\",\nyou would use `name ne .*instance`.\n\nYou cannot combine constraints on multiple fields using regular\nexpressions.", + "location": "query", "type": "string" }, - "region": { - "description": "The region for this request.", - "location": "path", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "required": true, + "includeAllScopes": { + "description": "Indicates whether every visible scope for each scope type (zone, region,\nglobal) should be included in the response. For new resource types added\nafter this field, the flag has no effect as new resource types will always\ninclude every visible scope for each scope type in response. For resource\ntypes which predate this field, if this flag is omitted or false, only\nscopes of the scope types where the resource type is expected to be found\nwill be included.", + "location": "query", + "type": "boolean" + }, + "maxResults": { + "default": "500", + "description": "The maximum number of results per page that should be returned.\nIf the number of available results is larger than `maxResults`,\nCompute Engine returns a `nextPageToken` that can be used to get\nthe next page of results in subsequent list requests. Acceptable values are\n`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\nare returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation\ntimestamp using `orderBy=\"creationTimestamp desc\"`. This sorts\nresults based on the `creationTimestamp` field in\nreverse chronological order (newest result first). Use this to sort\nresources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or\n`creationTimestamp desc` is supported.", + "location": "query", "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. 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).", + "pageToken": { + "description": "Specifies a page token to use. Set `pageToken` to the\n`nextPageToken` returned by a previous list request to get\nthe next page of results.", "location": "query", "type": "string" }, - "resource": { - "description": "Name or id of the resource for this request.", + "project": { + "description": "Name of the project scoping this request.", "location": "path", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "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" + }, + "returnPartialSuccess": { + "description": "Opt-in for partial success behavior which provides partial results in case\nof failure. The default value is false.\n\nFor example, when partial success behavior is enabled, aggregatedList for a\nsingle zone scope either returns all resources in the zone or no resources,\nwith an error code.", + "location": "query", + "type": "boolean" + }, + "serviceProjectNumber": { + "description": "The Shared VPC service project id or service project number for which\naggregated list request is invoked for subnetworks list-usable api.", + "format": "int64", + "location": "query", + "type": "string" } }, - "path": "projects/{project}/regions/{region}/instantSnapshots/{resource}/setLabels", - "request": { - "$ref": "RegionSetLabelsRequest" - }, + "path": "projects/{project}/aggregated/compositeHealthChecks", "response": { - "$ref": "Operation" + "$ref": "CompositeHealthCheckAggregatedList" }, "scopes": [ "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" ] }, - "testIamPermissions": { - "description": "Returns permissions that a caller has on the specified resource.", - "flatPath": "projects/{project}/regions/{region}/instantSnapshots/{resource}/testIamPermissions", - "httpMethod": "POST", - "id": "compute.regionInstantSnapshots.testIamPermissions", + "delete": { + "description": "Deletes the specified CompositeHealthCheck in the given region", + "flatPath": "projects/{project}/regions/{region}/compositeHealthChecks/{compositeHealthCheck}", + "httpMethod": "DELETE", + "id": "compute.regionCompositeHealthChecks.delete", "parameterOrder": [ "project", "region", - "resource" + "compositeHealthCheck" ], "parameters": { + "compositeHealthCheck": { + "description": "Name of the CompositeHealthCheck resource to delete.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "required": true, + "type": "string" + }, "project": { "description": "Project ID for this request.", "location": "path", @@ -24156,51 +25747,42 @@ "type": "string" }, "region": { - "description": "The name of the region for this request.", + "description": "Name of the region scoping this request.", "location": "path", "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", "required": true, "type": "string" }, - "resource": { - "description": "Name or id of the resource for this request.", - "location": "path", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "required": true, + "requestId": { + "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).", + "location": "query", "type": "string" } }, - "path": "projects/{project}/regions/{region}/instantSnapshots/{resource}/testIamPermissions", - "request": { - "$ref": "TestPermissionsRequest" - }, + "path": "projects/{project}/regions/{region}/compositeHealthChecks/{compositeHealthCheck}", "response": { - "$ref": "TestPermissionsResponse" + "$ref": "Operation" }, "scopes": [ "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" + "https://www.googleapis.com/auth/compute" ] - } - } - }, - "regionNetworkEndpointGroups": { - "methods": { - "attachNetworkEndpoints": { - "description": "Attach a list of network endpoints to the specified network endpoint group.", - "flatPath": "projects/{project}/regions/{region}/networkEndpointGroups/{networkEndpointGroup}/attachNetworkEndpoints", - "httpMethod": "POST", - "id": "compute.regionNetworkEndpointGroups.attachNetworkEndpoints", + }, + "get": { + "description": "Returns the specified CompositeHealthCheck resource in the given region.", + "flatPath": "projects/{project}/regions/{region}/compositeHealthChecks/{compositeHealthCheck}", + "httpMethod": "GET", + "id": "compute.regionCompositeHealthChecks.get", "parameterOrder": [ "project", "region", - "networkEndpointGroup" + "compositeHealthCheck" ], "parameters": { - "networkEndpointGroup": { - "description": "The name of the network endpoint group where you are attaching network endpoints to. It should comply with RFC1035.", + "compositeHealthCheck": { + "description": "Name of the CompositeHealthCheck resource to return.", "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", "required": true, "type": "string" }, @@ -24212,91 +25794,76 @@ "type": "string" }, "region": { - "description": "The name of the region where you want to create the network endpoint group. It should comply with RFC1035.", + "description": "Name of the region scoping this request.", "location": "path", + "pattern": "[a-z](?:[-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. 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).", - "location": "query", - "type": "string" } }, - "path": "projects/{project}/regions/{region}/networkEndpointGroups/{networkEndpointGroup}/attachNetworkEndpoints", - "request": { - "$ref": "RegionNetworkEndpointGroupsAttachEndpointsRequest" - }, + "path": "projects/{project}/regions/{region}/compositeHealthChecks/{compositeHealthCheck}", "response": { - "$ref": "Operation" + "$ref": "CompositeHealthCheck" }, "scopes": [ "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" ] }, - "delete": { - "description": "Deletes the specified network endpoint group. Note that the NEG cannot be deleted if it is configured as a backend of a backend service.", - "flatPath": "projects/{project}/regions/{region}/networkEndpointGroups/{networkEndpointGroup}", - "httpMethod": "DELETE", - "id": "compute.regionNetworkEndpointGroups.delete", + "getHealth": { + "description": "Gets the most recent health check results for this\nregional CompositeHealthCheck.", + "flatPath": "projects/{project}/regions/{region}/compositeHealthChecks/{compositeHealthCheck}/getHealth", + "httpMethod": "GET", + "id": "compute.regionCompositeHealthChecks.getHealth", "parameterOrder": [ "project", "region", - "networkEndpointGroup" + "compositeHealthCheck" ], "parameters": { - "networkEndpointGroup": { - "description": "The name of the network endpoint group to delete. It should comply with RFC1035.", + "compositeHealthCheck": { + "description": "Name of the CompositeHealthCheck resource to get health for.", "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", "required": true, "type": "string" }, "project": { - "description": "Project ID for this request.", + "description": "Name of the project scoping 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": "The name of the region where the network endpoint group is located. It should comply with RFC1035.", + "description": "Name of the region scoping this request.", "location": "path", + "pattern": "[a-z](?:[-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. 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).", - "location": "query", - "type": "string" } }, - "path": "projects/{project}/regions/{region}/networkEndpointGroups/{networkEndpointGroup}", + "path": "projects/{project}/regions/{region}/compositeHealthChecks/{compositeHealthCheck}/getHealth", "response": { - "$ref": "Operation" + "$ref": "CompositeHealthCheckHealth" }, "scopes": [ "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" ] }, - "detachNetworkEndpoints": { - "description": "Detach the network endpoint from the specified network endpoint group.", - "flatPath": "projects/{project}/regions/{region}/networkEndpointGroups/{networkEndpointGroup}/detachNetworkEndpoints", + "insert": { + "description": "Create a CompositeHealthCheck in the specified project in the given region\nusing the parameters that are included in the request.", + "flatPath": "projects/{project}/regions/{region}/compositeHealthChecks", "httpMethod": "POST", - "id": "compute.regionNetworkEndpointGroups.detachNetworkEndpoints", + "id": "compute.regionCompositeHealthChecks.insert", "parameterOrder": [ "project", - "region", - "networkEndpointGroup" + "region" ], "parameters": { - "networkEndpointGroup": { - "description": "The name of the network endpoint group you are detaching network endpoints from. It should comply with RFC1035.", - "location": "path", - "required": true, - "type": "string" - }, "project": { "description": "Project ID for this request.", "location": "path", @@ -24305,20 +25872,21 @@ "type": "string" }, "region": { - "description": "The name of the region where the network endpoint group is located. It should comply with RFC1035.", + "description": "Name of the region scoping this request.", "location": "path", + "pattern": "[a-z](?:[-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. 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). end_interface: MixerMutationRequestBuilder", + "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).", "location": "query", "type": "string" } }, - "path": "projects/{project}/regions/{region}/networkEndpointGroups/{networkEndpointGroup}/detachNetworkEndpoints", + "path": "projects/{project}/regions/{region}/compositeHealthChecks", "request": { - "$ref": "RegionNetworkEndpointGroupsDetachEndpointsRequest" + "$ref": "CompositeHealthCheck" }, "response": { "$ref": "Operation" @@ -24328,21 +25896,37 @@ "https://www.googleapis.com/auth/compute" ] }, - "get": { - "description": "Returns the specified network endpoint group.", - "flatPath": "projects/{project}/regions/{region}/networkEndpointGroups/{networkEndpointGroup}", + "list": { + "description": "Lists the CompositeHealthChecks for a project in the given region.", + "flatPath": "projects/{project}/regions/{region}/compositeHealthChecks", "httpMethod": "GET", - "id": "compute.regionNetworkEndpointGroups.get", + "id": "compute.regionCompositeHealthChecks.list", "parameterOrder": [ "project", - "region", - "networkEndpointGroup" + "region" ], "parameters": { - "networkEndpointGroup": { - "description": "The name of the network endpoint group. It should comply with RFC1035.", - "location": "path", - "required": true, + "filter": { + "description": "A filter expression that filters resources listed in the response. Most\nCompute resources support two types of filter expressions:\nexpressions that support regular expressions and expressions that follow\nAPI improvement proposal AIP-160.\nThese two types of filter expressions cannot be mixed in one request.\n\nIf you want to use AIP-160, your expression must specify the field name, an\noperator, and the value that you want to use for filtering. The value\nmust be a string, a number, or a boolean. The operator\nmust be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`.\n\nFor example, if you are filtering Compute Engine instances, you can\nexclude instances named `example-instance` by specifying\n`name != example-instance`.\n\nThe `:*` comparison can be used to test whether a key has been defined.\nFor example, to find all objects with `owner` label use:\n```\nlabels.owner:*\n```\n\nYou can also filter nested fields. For example, you could specify\n`scheduling.automaticRestart = false` to include instances only\nif they are not scheduled for automatic restarts. You can use filtering\non nested fields to filter based onresource labels.\n\nTo filter on multiple expressions, provide each separate expression within\nparentheses. For example:\n```\n(scheduling.automaticRestart = true)\n(cpuPlatform = \"Intel Skylake\")\n```\nBy default, each expression is an `AND` expression. However, you\ncan include `AND` and `OR` expressions explicitly.\nFor example:\n```\n(cpuPlatform = \"Intel Skylake\") OR\n(cpuPlatform = \"Intel Broadwell\") AND\n(scheduling.automaticRestart = true)\n```\n\nIf you want to use a regular expression, use the `eq` (equal) or `ne`\n(not equal) operator against a single un-parenthesized expression with or\nwithout quotes or against multiple parenthesized expressions. Examples:\n\n`fieldname eq unquoted literal`\n`fieldname eq 'single quoted literal'`\n`fieldname eq \"double quoted literal\"`\n`(fieldname1 eq literal) (fieldname2 ne \"literal\")`\n\nThe literal value is interpreted as a regular expression using GoogleRE2 library syntax.\nThe literal value must match the entire field.\n\nFor example, to filter for instances that do not end with name \"instance\",\nyou would use `name ne .*instance`.\n\nYou cannot combine constraints on multiple fields using regular\nexpressions.", + "location": "query", + "type": "string" + }, + "maxResults": { + "default": "500", + "description": "The maximum number of results per page that should be returned.\nIf the number of available results is larger than `maxResults`,\nCompute Engine returns a `nextPageToken` that can be used to get\nthe next page of results in subsequent list requests. Acceptable values are\n`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\nare returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation\ntimestamp using `orderBy=\"creationTimestamp desc\"`. This sorts\nresults based on the `creationTimestamp` field in\nreverse chronological order (newest result first). Use this to sort\nresources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or\n`creationTimestamp desc` is supported.", + "location": "query", + "type": "string" + }, + "pageToken": { + "description": "Specifies a page token to use. Set `pageToken` to the\n`nextPageToken` returned by a previous list request to get\nthe next page of results.", + "location": "query", "type": "string" }, "project": { @@ -24353,15 +25937,21 @@ "type": "string" }, "region": { - "description": "The name of the region where the network endpoint group is located. It should comply with RFC1035.", + "description": "Name of the region scoping this request.", "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", "required": true, "type": "string" + }, + "returnPartialSuccess": { + "description": "Opt-in for partial success behavior which provides partial results in case\nof failure. The default value is false.\n\nFor example, when partial success behavior is enabled, aggregatedList for a\nsingle zone scope either returns all resources in the zone or no resources,\nwith an error code.", + "location": "query", + "type": "boolean" } }, - "path": "projects/{project}/regions/{region}/networkEndpointGroups/{networkEndpointGroup}", + "path": "projects/{project}/regions/{region}/compositeHealthChecks", "response": { - "$ref": "NetworkEndpointGroup" + "$ref": "CompositeHealthCheckList" }, "scopes": [ "https://www.googleapis.com/auth/cloud-platform", @@ -24369,16 +25959,23 @@ "https://www.googleapis.com/auth/compute.readonly" ] }, - "insert": { - "description": "Creates a network endpoint group in the specified project using the parameters that are included in the request.", - "flatPath": "projects/{project}/regions/{region}/networkEndpointGroups", - "httpMethod": "POST", - "id": "compute.regionNetworkEndpointGroups.insert", + "patch": { + "description": "Updates the specified regional CompositeHealthCheck resource\nwith the data included in the request. This method supportsPATCH\nsemantics and uses theJSON merge\npatch format and processing rules.", + "flatPath": "projects/{project}/regions/{region}/compositeHealthChecks/{compositeHealthCheck}", + "httpMethod": "PATCH", + "id": "compute.regionCompositeHealthChecks.patch", "parameterOrder": [ "project", - "region" + "region", + "compositeHealthCheck" ], "parameters": { + "compositeHealthCheck": { + "description": "Name of the CompositeHealthCheck to update. The name\nmust be 1-63 characters long, and comply with RFC1035.", + "location": "path", + "required": true, + "type": "string" + }, "project": { "description": "Project ID for this request.", "location": "path", @@ -24387,20 +25984,21 @@ "type": "string" }, "region": { - "description": "The name of the region where you want to create the network endpoint group. It should comply with RFC1035.", + "description": "Name of the region scoping this request.", "location": "path", + "pattern": "[a-z](?:[-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. 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).", + "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).", "location": "query", "type": "string" } }, - "path": "projects/{project}/regions/{region}/networkEndpointGroups", + "path": "projects/{project}/regions/{region}/compositeHealthChecks/{compositeHealthCheck}", "request": { - "$ref": "NetworkEndpointGroup" + "$ref": "CompositeHealthCheck" }, "response": { "$ref": "Operation" @@ -24410,37 +26008,72 @@ "https://www.googleapis.com/auth/compute" ] }, - "list": { - "description": "Retrieves the list of regional network endpoint groups available to the specified project in the given region.", - "flatPath": "projects/{project}/regions/{region}/networkEndpointGroups", - "httpMethod": "GET", - "id": "compute.regionNetworkEndpointGroups.list", + "testIamPermissions": { + "description": "Returns permissions that a caller has on the specified resource.", + "flatPath": "projects/{project}/regions/{region}/compositeHealthChecks/{resource}/testIamPermissions", + "httpMethod": "POST", + "id": "compute.regionCompositeHealthChecks.testIamPermissions", "parameterOrder": [ "project", - "region" + "region", + "resource" ], "parameters": { - "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` 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) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.", - "location": "query", + "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" }, - "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. 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.", - "location": "query", + "region": { + "description": "The name of the region for this request.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "required": true, "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", + "resource": { + "description": "Name or id of the resource for this request.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "required": true, + "type": "string" + } + }, + "path": "projects/{project}/regions/{region}/compositeHealthChecks/{resource}/testIamPermissions", + "request": { + "$ref": "TestPermissionsRequest" + }, + "response": { + "$ref": "TestPermissionsResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ] + } + } + }, + "regionDiskTypes": { + "methods": { + "get": { + "description": "Returns the specified regional disk type.", + "flatPath": "projects/{project}/regions/{region}/diskTypes/{diskType}", + "httpMethod": "GET", + "id": "compute.regionDiskTypes.get", + "parameterOrder": [ + "project", + "region", + "diskType" + ], + "parameters": { + "diskType": { + "description": "Name of the disk type to return.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "required": true, "type": "string" }, "project": { @@ -24451,20 +26084,16 @@ "type": "string" }, "region": { - "description": "The name of the region where the network endpoint group is located. It should comply with RFC1035.", + "description": "The name of the region for this request.", "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", "required": true, "type": "string" - }, - "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", - "location": "query", - "type": "boolean" } }, - "path": "projects/{project}/regions/{region}/networkEndpointGroups", + "path": "projects/{project}/regions/{region}/diskTypes/{diskType}", "response": { - "$ref": "NetworkEndpointGroupList" + "$ref": "DiskType" }, "scopes": [ "https://www.googleapis.com/auth/cloud-platform", @@ -24472,43 +26101,36 @@ "https://www.googleapis.com/auth/compute.readonly" ] }, - "listNetworkEndpoints": { - "description": "Lists the network endpoints in the specified network endpoint group.", - "flatPath": "projects/{project}/regions/{region}/networkEndpointGroups/{networkEndpointGroup}/listNetworkEndpoints", - "httpMethod": "POST", - "id": "compute.regionNetworkEndpointGroups.listNetworkEndpoints", + "list": { + "description": "Retrieves a list of regional disk types available to the specified project.", + "flatPath": "projects/{project}/regions/{region}/diskTypes", + "httpMethod": "GET", + "id": "compute.regionDiskTypes.list", "parameterOrder": [ "project", - "region", - "networkEndpointGroup" + "region" ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` 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) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.", + "description": "A filter expression that filters resources listed in the response. Most\nCompute resources support two types of filter expressions:\nexpressions that support regular expressions and expressions that follow\nAPI improvement proposal AIP-160.\nThese two types of filter expressions cannot be mixed in one request.\n\nIf you want to use AIP-160, your expression must specify the field name, an\noperator, and the value that you want to use for filtering. The value\nmust be a string, a number, or a boolean. The operator\nmust be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`.\n\nFor example, if you are filtering Compute Engine instances, you can\nexclude instances named `example-instance` by specifying\n`name != example-instance`.\n\nThe `:*` comparison can be used to test whether a key has been defined.\nFor example, to find all objects with `owner` label use:\n```\nlabels.owner:*\n```\n\nYou can also filter nested fields. For example, you could specify\n`scheduling.automaticRestart = false` to include instances only\nif they are not scheduled for automatic restarts. You can use filtering\non nested fields to filter based onresource labels.\n\nTo filter on multiple expressions, provide each separate expression within\nparentheses. For example:\n```\n(scheduling.automaticRestart = true)\n(cpuPlatform = \"Intel Skylake\")\n```\nBy default, each expression is an `AND` expression. However, you\ncan include `AND` and `OR` expressions explicitly.\nFor example:\n```\n(cpuPlatform = \"Intel Skylake\") OR\n(cpuPlatform = \"Intel Broadwell\") AND\n(scheduling.automaticRestart = true)\n```\n\nIf you want to use a regular expression, use the `eq` (equal) or `ne`\n(not equal) operator against a single un-parenthesized expression with or\nwithout quotes or against multiple parenthesized expressions. Examples:\n\n`fieldname eq unquoted literal`\n`fieldname eq 'single quoted literal'`\n`fieldname eq \"double quoted literal\"`\n`(fieldname1 eq literal) (fieldname2 ne \"literal\")`\n\nThe literal value is interpreted as a regular expression using GoogleRE2 library syntax.\nThe literal value must match the entire field.\n\nFor example, to filter for instances that do not end with name \"instance\",\nyou would use `name ne .*instance`.\n\nYou cannot combine constraints on multiple fields using regular\nexpressions.", "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`)", + "description": "The maximum number of results per page that should be returned.\nIf the number of available results is larger than `maxResults`,\nCompute Engine returns a `nextPageToken` that can be used to get\nthe next page of results in subsequent list requests. Acceptable values are\n`0` to `500`, inclusive. (Default: `500`)", "format": "uint32", "location": "query", "minimum": "0", "type": "integer" }, - "networkEndpointGroup": { - "description": "The name of the network endpoint group from which you want to generate a list of included network endpoints. It should comply with RFC1035.", - "location": "path", - "required": true, - "type": "string" - }, "orderBy": { - "description": "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.", + "description": "Sorts list results by a certain order. By default, results\nare returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation\ntimestamp using `orderBy=\"creationTimestamp desc\"`. This sorts\nresults based on the `creationTimestamp` field in\nreverse chronological order (newest result first). Use this to sort\nresources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or\n`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.", + "description": "Specifies a page token to use. Set `pageToken` to the\n`nextPageToken` returned by a previous list request to get\nthe next page of results.", "location": "query", "type": "string" }, @@ -24520,20 +26142,21 @@ "type": "string" }, "region": { - "description": "The name of the region where the network endpoint group is located. It should comply with RFC1035.", + "description": "The name of the region for this request.", "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", "required": true, "type": "string" }, "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", + "description": "Opt-in for partial success behavior which provides partial results in case\nof failure. The default value is false.\n\nFor example, when partial success behavior is enabled, aggregatedList for a\nsingle zone scope either returns all resources in the zone or no resources,\nwith an error code.", "location": "query", "type": "boolean" } }, - "path": "projects/{project}/regions/{region}/networkEndpointGroups/{networkEndpointGroup}/listNetworkEndpoints", + "path": "projects/{project}/regions/{region}/diskTypes", "response": { - "$ref": "NetworkEndpointGroupsListNetworkEndpoints" + "$ref": "RegionDiskTypeList" }, "scopes": [ "https://www.googleapis.com/auth/cloud-platform", @@ -24543,21 +26166,21 @@ } } }, - "regionNetworkFirewallPolicies": { + "regionDisks": { "methods": { - "addAssociation": { - "description": "Inserts an association for the specified network firewall policy.", - "flatPath": "projects/{project}/regions/{region}/firewallPolicies/{firewallPolicy}/addAssociation", + "addResourcePolicies": { + "description": "Adds existing resource policies to a regional disk. You can only add one\npolicy which will be applied to this disk for scheduling snapshot\ncreation.", + "flatPath": "projects/{project}/regions/{region}/disks/{disk}/addResourcePolicies", "httpMethod": "POST", - "id": "compute.regionNetworkFirewallPolicies.addAssociation", + "id": "compute.regionDisks.addResourcePolicies", "parameterOrder": [ "project", "region", - "firewallPolicy" + "disk" ], "parameters": { - "firewallPolicy": { - "description": "Name of the firewall policy to update.", + "disk": { + "description": "The disk name for this request.", "location": "path", "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", "required": true, @@ -24571,26 +26194,21 @@ "type": "string" }, "region": { - "description": "Name of the region scoping this request.", + "description": "The name of the region for this request.", "location": "path", "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", "required": true, "type": "string" }, - "replaceExistingAssociation": { - "description": "Indicates whether or not to replace it if an association already exists. This is false by default, in which case an error will be returned if an association already exists.", - "location": "query", - "type": "boolean" - }, "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. 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).", + "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).", "location": "query", "type": "string" } }, - "path": "projects/{project}/regions/{region}/firewallPolicies/{firewallPolicy}/addAssociation", + "path": "projects/{project}/regions/{region}/disks/{disk}/addResourcePolicies", "request": { - "$ref": "FirewallPolicyAssociation" + "$ref": "RegionDisksAddResourcePoliciesRequest" }, "response": { "$ref": "Operation" @@ -24600,36 +26218,16 @@ "https://www.googleapis.com/auth/compute" ] }, - "addRule": { - "description": "Inserts a rule into a network firewall policy.", - "flatPath": "projects/{project}/regions/{region}/firewallPolicies/{firewallPolicy}/addRule", + "bulkInsert": { + "description": "Bulk create a set of disks.", + "flatPath": "projects/{project}/regions/{region}/disks/bulkInsert", "httpMethod": "POST", - "id": "compute.regionNetworkFirewallPolicies.addRule", + "id": "compute.regionDisks.bulkInsert", "parameterOrder": [ "project", - "region", - "firewallPolicy" + "region" ], "parameters": { - "firewallPolicy": { - "description": "Name of the firewall policy to update.", - "location": "path", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "required": true, - "type": "string" - }, - "maxPriority": { - "description": "When rule.priority is not specified, auto choose a unused priority between minPriority and maxPriority\u003e. This field is exclusive with rule.priority.", - "format": "int32", - "location": "query", - "type": "integer" - }, - "minPriority": { - "description": "When rule.priority is not specified, auto choose a unused priority between minPriority and maxPriority\u003e. This field is exclusive with rule.priority.", - "format": "int32", - "location": "query", - "type": "integer" - }, "project": { "description": "Project ID for this request.", "location": "path", @@ -24638,21 +26236,21 @@ "type": "string" }, "region": { - "description": "Name of the region scoping this request.", + "description": "The name of the region for this request.", "location": "path", "pattern": "[a-z](?:[-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. 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).", + "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).", "location": "query", "type": "string" } }, - "path": "projects/{project}/regions/{region}/firewallPolicies/{firewallPolicy}/addRule", + "path": "projects/{project}/regions/{region}/disks/bulkInsert", "request": { - "$ref": "FirewallPolicyRule" + "$ref": "BulkInsertDiskResource" }, "response": { "$ref": "Operation" @@ -24662,19 +26260,19 @@ "https://www.googleapis.com/auth/compute" ] }, - "cloneRules": { - "description": "Copies rules to the specified network firewall policy.", - "flatPath": "projects/{project}/regions/{region}/firewallPolicies/{firewallPolicy}/cloneRules", + "createSnapshot": { + "description": "Creates a snapshot of a specified persistent disk. For regular snapshot\ncreation, consider using snapshots.insert\ninstead, as that method supports more features, such as creating snapshots\nin a project different from the source disk project.", + "flatPath": "projects/{project}/regions/{region}/disks/{disk}/createSnapshot", "httpMethod": "POST", - "id": "compute.regionNetworkFirewallPolicies.cloneRules", + "id": "compute.regionDisks.createSnapshot", "parameterOrder": [ "project", "region", - "firewallPolicy" + "disk" ], "parameters": { - "firewallPolicy": { - "description": "Name of the firewall policy to update.", + "disk": { + "description": "Name of the regional persistent disk to snapshot.", "location": "path", "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", "required": true, @@ -24688,24 +26286,22 @@ "type": "string" }, "region": { - "description": "Name of the region scoping this request.", + "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" }, "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. 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).", - "location": "query", - "type": "string" - }, - "sourceFirewallPolicy": { - "description": "The firewall policy from which to copy rules.", + "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).", "location": "query", "type": "string" } }, - "path": "projects/{project}/regions/{region}/firewallPolicies/{firewallPolicy}/cloneRules", + "path": "projects/{project}/regions/{region}/disks/{disk}/createSnapshot", + "request": { + "$ref": "Snapshot" + }, "response": { "$ref": "Operation" }, @@ -24715,20 +26311,20 @@ ] }, "delete": { - "description": "Deletes the specified network firewall policy.", - "flatPath": "projects/{project}/regions/{region}/firewallPolicies/{firewallPolicy}", + "description": "Deletes the specified regional persistent disk. Deleting a regional disk\nremoves all the replicas of its data permanently and is irreversible.\nHowever, deleting a disk does not delete anysnapshots\npreviously made from the disk. You must separatelydelete\nsnapshots.", + "flatPath": "projects/{project}/regions/{region}/disks/{disk}", "httpMethod": "DELETE", - "id": "compute.regionNetworkFirewallPolicies.delete", + "id": "compute.regionDisks.delete", "parameterOrder": [ "project", "region", - "firewallPolicy" + "disk" ], "parameters": { - "firewallPolicy": { - "description": "Name of the firewall policy to delete.", + "disk": { + "description": "Name of the regional persistent disk to delete.", "location": "path", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "pattern": "\\S{1,66}", "required": true, "type": "string" }, @@ -24740,19 +26336,19 @@ "type": "string" }, "region": { - "description": "Name of the region scoping this request.", + "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" }, "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. 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).", + "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).", "location": "query", "type": "string" } }, - "path": "projects/{project}/regions/{region}/firewallPolicies/{firewallPolicy}", + "path": "projects/{project}/regions/{region}/disks/{disk}", "response": { "$ref": "Operation" }, @@ -24762,18 +26358,18 @@ ] }, "get": { - "description": "Returns the specified network firewall policy.", - "flatPath": "projects/{project}/regions/{region}/firewallPolicies/{firewallPolicy}", + "description": "Returns a specified regional persistent disk.", + "flatPath": "projects/{project}/regions/{region}/disks/{disk}", "httpMethod": "GET", - "id": "compute.regionNetworkFirewallPolicies.get", + "id": "compute.regionDisks.get", "parameterOrder": [ "project", "region", - "firewallPolicy" + "disk" ], "parameters": { - "firewallPolicy": { - "description": "Name of the firewall policy to get.", + "disk": { + "description": "Name of the regional persistent disk to return.", "location": "path", "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", "required": true, @@ -24787,16 +26383,16 @@ "type": "string" }, "region": { - "description": "Name of the region scoping this request.", + "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" } }, - "path": "projects/{project}/regions/{region}/firewallPolicies/{firewallPolicy}", + "path": "projects/{project}/regions/{region}/disks/{disk}", "response": { - "$ref": "FirewallPolicy" + "$ref": "Disk" }, "scopes": [ "https://www.googleapis.com/auth/cloud-platform", @@ -24804,28 +26400,22 @@ "https://www.googleapis.com/auth/compute.readonly" ] }, - "getAssociation": { - "description": "Gets an association with the specified name.", - "flatPath": "projects/{project}/regions/{region}/firewallPolicies/{firewallPolicy}/getAssociation", + "getIamPolicy": { + "description": "Gets the access control policy for a resource. May be empty if no such\npolicy or resource exists.", + "flatPath": "projects/{project}/regions/{region}/disks/{resource}/getIamPolicy", "httpMethod": "GET", - "id": "compute.regionNetworkFirewallPolicies.getAssociation", + "id": "compute.regionDisks.getIamPolicy", "parameterOrder": [ "project", "region", - "firewallPolicy" + "resource" ], "parameters": { - "firewallPolicy": { - "description": "Name of the firewall policy to which the queried association belongs.", - "location": "path", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "required": true, - "type": "string" - }, - "name": { - "description": "The name of the association to get from the firewall policy.", + "optionsRequestedPolicyVersion": { + "description": "Requested IAM Policy version.", + "format": "int32", "location": "query", - "type": "string" + "type": "integer" }, "project": { "description": "Project ID for this request.", @@ -24835,16 +26425,23 @@ "type": "string" }, "region": { - "description": "Name of the region scoping this request.", + "description": "The name of the region for this request.", "location": "path", "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", "required": true, "type": "string" + }, + "resource": { + "description": "Name or id of the resource for this request.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "required": true, + "type": "string" } }, - "path": "projects/{project}/regions/{region}/firewallPolicies/{firewallPolicy}/getAssociation", + "path": "projects/{project}/regions/{region}/disks/{resource}/getIamPolicy", "response": { - "$ref": "FirewallPolicyAssociation" + "$ref": "Policy" }, "scopes": [ "https://www.googleapis.com/auth/cloud-platform", @@ -24852,23 +26449,16 @@ "https://www.googleapis.com/auth/compute.readonly" ] }, - "getEffectiveFirewalls": { - "description": "Returns the effective firewalls on a given network.", - "flatPath": "projects/{project}/regions/{region}/firewallPolicies/getEffectiveFirewalls", - "httpMethod": "GET", - "id": "compute.regionNetworkFirewallPolicies.getEffectiveFirewalls", + "insert": { + "description": "Creates a persistent regional disk in the specified project using the data\nincluded in the request.", + "flatPath": "projects/{project}/regions/{region}/disks", + "httpMethod": "POST", + "id": "compute.regionDisks.insert", "parameterOrder": [ "project", - "region", - "network" + "region" ], "parameters": { - "network": { - "description": "Network reference", - "location": "query", - "required": true, - "type": "string" - }, "project": { "description": "Project ID for this request.", "location": "path", @@ -24877,40 +26467,68 @@ "type": "string" }, "region": { - "description": "Name of the region scoping this request.", + "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" + }, + "requestId": { + "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).", + "location": "query", + "type": "string" + }, + "sourceImage": { + "description": "Source image to restore onto a disk. This field is optional.", + "location": "query", + "type": "string" } }, - "path": "projects/{project}/regions/{region}/firewallPolicies/getEffectiveFirewalls", + "path": "projects/{project}/regions/{region}/disks", + "request": { + "$ref": "Disk" + }, "response": { - "$ref": "RegionNetworkFirewallPoliciesGetEffectiveFirewallsResponse" + "$ref": "Operation" }, "scopes": [ "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" + "https://www.googleapis.com/auth/compute" ] }, - "getIamPolicy": { - "description": "Gets the access control policy for a resource. May be empty if no such policy or resource exists.", - "flatPath": "projects/{project}/regions/{region}/firewallPolicies/{resource}/getIamPolicy", + "list": { + "description": "Retrieves the list of persistent disks contained within\nthe specified region.", + "flatPath": "projects/{project}/regions/{region}/disks", "httpMethod": "GET", - "id": "compute.regionNetworkFirewallPolicies.getIamPolicy", + "id": "compute.regionDisks.list", "parameterOrder": [ "project", - "region", - "resource" + "region" ], "parameters": { - "optionsRequestedPolicyVersion": { - "description": "Requested IAM Policy version.", - "format": "int32", + "filter": { + "description": "A filter expression that filters resources listed in the response. Most\nCompute resources support two types of filter expressions:\nexpressions that support regular expressions and expressions that follow\nAPI improvement proposal AIP-160.\nThese two types of filter expressions cannot be mixed in one request.\n\nIf you want to use AIP-160, your expression must specify the field name, an\noperator, and the value that you want to use for filtering. The value\nmust be a string, a number, or a boolean. The operator\nmust be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`.\n\nFor example, if you are filtering Compute Engine instances, you can\nexclude instances named `example-instance` by specifying\n`name != example-instance`.\n\nThe `:*` comparison can be used to test whether a key has been defined.\nFor example, to find all objects with `owner` label use:\n```\nlabels.owner:*\n```\n\nYou can also filter nested fields. For example, you could specify\n`scheduling.automaticRestart = false` to include instances only\nif they are not scheduled for automatic restarts. You can use filtering\non nested fields to filter based onresource labels.\n\nTo filter on multiple expressions, provide each separate expression within\nparentheses. For example:\n```\n(scheduling.automaticRestart = true)\n(cpuPlatform = \"Intel Skylake\")\n```\nBy default, each expression is an `AND` expression. However, you\ncan include `AND` and `OR` expressions explicitly.\nFor example:\n```\n(cpuPlatform = \"Intel Skylake\") OR\n(cpuPlatform = \"Intel Broadwell\") AND\n(scheduling.automaticRestart = true)\n```\n\nIf you want to use a regular expression, use the `eq` (equal) or `ne`\n(not equal) operator against a single un-parenthesized expression with or\nwithout quotes or against multiple parenthesized expressions. Examples:\n\n`fieldname eq unquoted literal`\n`fieldname eq 'single quoted literal'`\n`fieldname eq \"double quoted literal\"`\n`(fieldname1 eq literal) (fieldname2 ne \"literal\")`\n\nThe literal value is interpreted as a regular expression using GoogleRE2 library syntax.\nThe literal value must match the entire field.\n\nFor example, to filter for instances that do not end with name \"instance\",\nyou would use `name ne .*instance`.\n\nYou cannot combine constraints on multiple fields using regular\nexpressions.", + "location": "query", + "type": "string" + }, + "maxResults": { + "default": "500", + "description": "The maximum number of results per page that should be returned.\nIf the number of available results is larger than `maxResults`,\nCompute Engine returns a `nextPageToken` that can be used to get\nthe next page of results in subsequent list requests. Acceptable values are\n`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\nare returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation\ntimestamp using `orderBy=\"creationTimestamp desc\"`. This sorts\nresults based on the `creationTimestamp` field in\nreverse chronological order (newest result first). Use this to sort\nresources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or\n`creationTimestamp desc` is supported.", + "location": "query", + "type": "string" + }, + "pageToken": { + "description": "Specifies a page token to use. Set `pageToken` to the\n`nextPageToken` returned by a previous list request to get\nthe next page of results.", + "location": "query", + "type": "string" + }, "project": { "description": "Project ID for this request.", "location": "path", @@ -24919,23 +26537,21 @@ "type": "string" }, "region": { - "description": "The name of the region for this request.", + "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" }, - "resource": { - "description": "Name or id of the resource for this request.", - "location": "path", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "required": true, - "type": "string" + "returnPartialSuccess": { + "description": "Opt-in for partial success behavior which provides partial results in case\nof failure. The default value is false.\n\nFor example, when partial success behavior is enabled, aggregatedList for a\nsingle zone scope either returns all resources in the zone or no resources,\nwith an error code.", + "location": "query", + "type": "boolean" } }, - "path": "projects/{project}/regions/{region}/firewallPolicies/{resource}/getIamPolicy", + "path": "projects/{project}/regions/{region}/disks", "response": { - "$ref": "Policy" + "$ref": "DiskList" }, "scopes": [ "https://www.googleapis.com/auth/cloud-platform", @@ -24943,30 +26559,24 @@ "https://www.googleapis.com/auth/compute.readonly" ] }, - "getRule": { - "description": "Gets a rule of the specified priority.", - "flatPath": "projects/{project}/regions/{region}/firewallPolicies/{firewallPolicy}/getRule", - "httpMethod": "GET", - "id": "compute.regionNetworkFirewallPolicies.getRule", + "removeResourcePolicies": { + "description": "Removes resource policies from a regional disk.", + "flatPath": "projects/{project}/regions/{region}/disks/{disk}/removeResourcePolicies", + "httpMethod": "POST", + "id": "compute.regionDisks.removeResourcePolicies", "parameterOrder": [ "project", "region", - "firewallPolicy" + "disk" ], "parameters": { - "firewallPolicy": { - "description": "Name of the firewall policy to which the queried rule belongs.", + "disk": { + "description": "The disk name for this request.", "location": "path", "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", "required": true, "type": "string" }, - "priority": { - "description": "The priority of the rule to get from the firewall policy.", - "format": "int32", - "location": "query", - "type": "integer" - }, "project": { "description": "Project ID for this request.", "location": "path", @@ -24975,56 +26585,71 @@ "type": "string" }, "region": { - "description": "Name of the region scoping this request.", + "description": "The name of the region for this request.", "location": "path", "pattern": "[a-z](?:[-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\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).", + "location": "query", + "type": "string" } }, - "path": "projects/{project}/regions/{region}/firewallPolicies/{firewallPolicy}/getRule", + "path": "projects/{project}/regions/{region}/disks/{disk}/removeResourcePolicies", + "request": { + "$ref": "RegionDisksRemoveResourcePoliciesRequest" + }, "response": { - "$ref": "FirewallPolicyRule" + "$ref": "Operation" }, "scopes": [ "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" + "https://www.googleapis.com/auth/compute" ] }, - "insert": { - "description": "Creates a new network firewall policy in the specified project and region.", - "flatPath": "projects/{project}/regions/{region}/firewallPolicies", + "resize": { + "description": "Resizes the specified regional persistent disk.", + "flatPath": "projects/{project}/regions/{region}/disks/{disk}/resize", "httpMethod": "POST", - "id": "compute.regionNetworkFirewallPolicies.insert", + "id": "compute.regionDisks.resize", "parameterOrder": [ "project", - "region" + "region", + "disk" ], "parameters": { + "disk": { + "description": "Name of the regional persistent disk.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "required": true, + "type": "string" + }, "project": { - "description": "Project ID for this request.", + "description": "The 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 scoping this request.", + "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" }, "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. 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).", + "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).", "location": "query", "type": "string" } }, - "path": "projects/{project}/regions/{region}/firewallPolicies", + "path": "projects/{project}/regions/{region}/disks/{disk}/resize", "request": { - "$ref": "FirewallPolicy" + "$ref": "RegionDisksResizeRequest" }, "response": { "$ref": "Operation" @@ -25034,39 +26659,17 @@ "https://www.googleapis.com/auth/compute" ] }, - "list": { - "description": "Lists all the network firewall policies that have been configured for the specified project in the given region.", - "flatPath": "projects/{project}/regions/{region}/firewallPolicies", - "httpMethod": "GET", - "id": "compute.regionNetworkFirewallPolicies.list", + "setIamPolicy": { + "description": "Sets the access control policy on the specified resource.\nReplaces any existing policy.", + "flatPath": "projects/{project}/regions/{region}/disks/{resource}/setIamPolicy", + "httpMethod": "POST", + "id": "compute.regionDisks.setIamPolicy", "parameterOrder": [ "project", - "region" + "region", + "resource" ], "parameters": { - "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` 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) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.", - "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. 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.", - "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", @@ -25075,46 +26678,43 @@ "type": "string" }, "region": { - "description": "Name of the region scoping this request.", + "description": "The name of the region for this request.", "location": "path", "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", "required": true, "type": "string" }, - "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", - "location": "query", - "type": "boolean" + "resource": { + "description": "Name or id of the resource for this request.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "required": true, + "type": "string" } }, - "path": "projects/{project}/regions/{region}/firewallPolicies", + "path": "projects/{project}/regions/{region}/disks/{resource}/setIamPolicy", + "request": { + "$ref": "RegionSetPolicyRequest" + }, "response": { - "$ref": "FirewallPolicyList" + "$ref": "Policy" }, "scopes": [ "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" + "https://www.googleapis.com/auth/compute" ] }, - "patch": { - "description": "Patches the specified network firewall policy.", - "flatPath": "projects/{project}/regions/{region}/firewallPolicies/{firewallPolicy}", - "httpMethod": "PATCH", - "id": "compute.regionNetworkFirewallPolicies.patch", + "setLabels": { + "description": "Sets the labels on the target regional disk.", + "flatPath": "projects/{project}/regions/{region}/disks/{resource}/setLabels", + "httpMethod": "POST", + "id": "compute.regionDisks.setLabels", "parameterOrder": [ "project", "region", - "firewallPolicy" + "resource" ], "parameters": { - "firewallPolicy": { - "description": "Name of the firewall policy to update.", - "location": "path", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "required": true, - "type": "string" - }, "project": { "description": "Project ID for this request.", "location": "path", @@ -25123,21 +26723,28 @@ "type": "string" }, "region": { - "description": "Name of the region scoping this request.", + "description": "The region for this request.", "location": "path", "pattern": "[a-z](?:[-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. 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).", + "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).", "location": "query", "type": "string" + }, + "resource": { + "description": "Name or id of the resource for this request.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "required": true, + "type": "string" } }, - "path": "projects/{project}/regions/{region}/firewallPolicies/{firewallPolicy}", + "path": "projects/{project}/regions/{region}/disks/{resource}/setLabels", "request": { - "$ref": "FirewallPolicy" + "$ref": "RegionSetLabelsRequest" }, "response": { "$ref": "Operation" @@ -25147,30 +26754,24 @@ "https://www.googleapis.com/auth/compute" ] }, - "patchRule": { - "description": "Patches a rule of the specified priority.", - "flatPath": "projects/{project}/regions/{region}/firewallPolicies/{firewallPolicy}/patchRule", + "startAsyncReplication": { + "description": "Starts asynchronous replication.\nMust be invoked on the primary disk.", + "flatPath": "projects/{project}/regions/{region}/disks/{disk}/startAsyncReplication", "httpMethod": "POST", - "id": "compute.regionNetworkFirewallPolicies.patchRule", + "id": "compute.regionDisks.startAsyncReplication", "parameterOrder": [ "project", "region", - "firewallPolicy" + "disk" ], "parameters": { - "firewallPolicy": { - "description": "Name of the firewall policy to update.", + "disk": { + "description": "The name of the persistent disk.", "location": "path", "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", "required": true, "type": "string" }, - "priority": { - "description": "The priority of the rule to patch.", - "format": "int32", - "location": "query", - "type": "integer" - }, "project": { "description": "Project ID for this request.", "location": "path", @@ -25179,21 +26780,21 @@ "type": "string" }, "region": { - "description": "Name of the region scoping this request.", + "description": "The name of the region for this request.", "location": "path", "pattern": "[a-z](?:[-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. 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).", + "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).", "location": "query", "type": "string" } }, - "path": "projects/{project}/regions/{region}/firewallPolicies/{firewallPolicy}/patchRule", + "path": "projects/{project}/regions/{region}/disks/{disk}/startAsyncReplication", "request": { - "$ref": "FirewallPolicyRule" + "$ref": "RegionDisksStartAsyncReplicationRequest" }, "response": { "$ref": "Operation" @@ -25203,29 +26804,24 @@ "https://www.googleapis.com/auth/compute" ] }, - "removeAssociation": { - "description": "Removes an association for the specified network firewall policy.", - "flatPath": "projects/{project}/regions/{region}/firewallPolicies/{firewallPolicy}/removeAssociation", + "stopAsyncReplication": { + "description": "Stops asynchronous replication.\nCan be invoked either on the primary or on the secondary disk.", + "flatPath": "projects/{project}/regions/{region}/disks/{disk}/stopAsyncReplication", "httpMethod": "POST", - "id": "compute.regionNetworkFirewallPolicies.removeAssociation", + "id": "compute.regionDisks.stopAsyncReplication", "parameterOrder": [ "project", "region", - "firewallPolicy" + "disk" ], "parameters": { - "firewallPolicy": { - "description": "Name of the firewall policy to update.", + "disk": { + "description": "The name of the persistent disk.", "location": "path", "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", "required": true, "type": "string" }, - "name": { - "description": "Name for the association that will be removed.", - "location": "query", - "type": "string" - }, "project": { "description": "Project ID for this request.", "location": "path", @@ -25234,19 +26830,19 @@ "type": "string" }, "region": { - "description": "Name of the region scoping this request.", + "description": "The name of the region for this request.", "location": "path", "pattern": "[a-z](?:[-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. 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).", + "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).", "location": "query", "type": "string" } }, - "path": "projects/{project}/regions/{region}/firewallPolicies/{firewallPolicy}/removeAssociation", + "path": "projects/{project}/regions/{region}/disks/{disk}/stopAsyncReplication", "response": { "$ref": "Operation" }, @@ -25255,30 +26851,16 @@ "https://www.googleapis.com/auth/compute" ] }, - "removeRule": { - "description": "Deletes a rule of the specified priority.", - "flatPath": "projects/{project}/regions/{region}/firewallPolicies/{firewallPolicy}/removeRule", + "stopGroupAsyncReplication": { + "description": "Stops asynchronous replication for a consistency group of disks.\nCan be invoked either in the primary or secondary scope.", + "flatPath": "projects/{project}/regions/{region}/disks/stopGroupAsyncReplication", "httpMethod": "POST", - "id": "compute.regionNetworkFirewallPolicies.removeRule", + "id": "compute.regionDisks.stopGroupAsyncReplication", "parameterOrder": [ "project", - "region", - "firewallPolicy" + "region" ], "parameters": { - "firewallPolicy": { - "description": "Name of the firewall policy to update.", - "location": "path", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "required": true, - "type": "string" - }, - "priority": { - "description": "The priority of the rule to remove from the firewall policy.", - "format": "int32", - "location": "query", - "type": "integer" - }, "project": { "description": "Project ID for this request.", "location": "path", @@ -25287,19 +26869,22 @@ "type": "string" }, "region": { - "description": "Name of the region scoping this request.", + "description": "The name of the region for this request. This must be the region of the\nprimary or secondary disks in the consistency group.", "location": "path", "pattern": "[a-z](?:[-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. 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).", + "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).", "location": "query", "type": "string" } }, - "path": "projects/{project}/regions/{region}/firewallPolicies/{firewallPolicy}/removeRule", + "path": "projects/{project}/regions/{region}/disks/stopGroupAsyncReplication", + "request": { + "$ref": "DisksStopGroupAsyncReplicationResource" + }, "response": { "$ref": "Operation" }, @@ -25308,11 +26893,11 @@ "https://www.googleapis.com/auth/compute" ] }, - "setIamPolicy": { - "description": "Sets the access control policy on the specified resource. Replaces any existing policy.", - "flatPath": "projects/{project}/regions/{region}/firewallPolicies/{resource}/setIamPolicy", + "testIamPermissions": { + "description": "Returns permissions that a caller has on the specified resource.", + "flatPath": "projects/{project}/regions/{region}/disks/{resource}/testIamPermissions", "httpMethod": "POST", - "id": "compute.regionNetworkFirewallPolicies.setIamPolicy", + "id": "compute.regionDisks.testIamPermissions", "parameterOrder": [ "project", "region", @@ -25341,29 +26926,42 @@ "type": "string" } }, - "path": "projects/{project}/regions/{region}/firewallPolicies/{resource}/setIamPolicy", + "path": "projects/{project}/regions/{region}/disks/{resource}/testIamPermissions", "request": { - "$ref": "RegionSetPolicyRequest" + "$ref": "TestPermissionsRequest" }, "response": { - "$ref": "Policy" + "$ref": "TestPermissionsResponse" }, "scopes": [ "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" ] }, - "testIamPermissions": { - "description": "Returns permissions that a caller has on the specified resource.", - "flatPath": "projects/{project}/regions/{region}/firewallPolicies/{resource}/testIamPermissions", - "httpMethod": "POST", - "id": "compute.regionNetworkFirewallPolicies.testIamPermissions", + "update": { + "description": "Update the specified disk with the data included in the request. Update is\nperformed only on selected fields included as part of update-mask.", + "flatPath": "projects/{project}/regions/{region}/disks/{disk}", + "httpMethod": "PATCH", + "id": "compute.regionDisks.update", "parameterOrder": [ "project", "region", - "resource" + "disk" ], "parameters": { + "disk": { + "description": "The disk name for this request.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "required": true, + "type": "string" + }, + "paths": { + "location": "query", + "repeated": true, + "type": "string" + }, "project": { "description": "Project ID for this request.", "location": "path", @@ -25378,44 +26976,162 @@ "required": true, "type": "string" }, - "resource": { - "description": "Name or id of the resource for this request.", + "requestId": { + "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).", + "location": "query", + "type": "string" + }, + "updateMask": { + "description": "update_mask indicates fields to be updated as part of this request.", + "format": "google-fieldmask", + "location": "query", + "type": "string" + } + }, + "path": "projects/{project}/regions/{region}/disks/{disk}", + "request": { + "$ref": "Disk" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ] + }, + "updateKmsKey": { + "description": "Rotates the customer-managed\nencryption key to the latest version for the specified persistent disk.", + "flatPath": "projects/{project}/regions/{region}/disks/{disk}/updateKmsKey", + "httpMethod": "POST", + "id": "compute.regionDisks.updateKmsKey", + "parameterOrder": [ + "project", + "region", + "disk" + ], + "parameters": { + "disk": { + "description": "Name of the Disk resource, should conform to RFC1035.", "location": "path", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", "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" + }, + "region": { + "description": "The name of the region for this request.", + "location": "path", + "pattern": "[a-z](?:[-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\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).", + "location": "query", + "type": "string" } }, - "path": "projects/{project}/regions/{region}/firewallPolicies/{resource}/testIamPermissions", + "path": "projects/{project}/regions/{region}/disks/{disk}/updateKmsKey", "request": { - "$ref": "TestPermissionsRequest" + "$ref": "RegionDiskUpdateKmsKeyRequest" }, "response": { - "$ref": "TestPermissionsResponse" + "$ref": "Operation" }, "scopes": [ "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" + "https://www.googleapis.com/auth/compute" ] } } }, - "regionNotificationEndpoints": { + "regionHealthAggregationPolicies": { "methods": { + "aggregatedList": { + "description": "Retrieves the list of all HealthAggregationPolicy resources,\nregional and global, available to the specified project.\n\nTo prevent failure, it is recommended that you set the\n`returnPartialSuccess` parameter to `true`.", + "flatPath": "projects/{project}/aggregated/healthAggregationPolicies", + "httpMethod": "GET", + "id": "compute.regionHealthAggregationPolicies.aggregatedList", + "parameterOrder": [ + "project" + ], + "parameters": { + "filter": { + "description": "A filter expression that filters resources listed in the response. Most\nCompute resources support two types of filter expressions:\nexpressions that support regular expressions and expressions that follow\nAPI improvement proposal AIP-160.\nThese two types of filter expressions cannot be mixed in one request.\n\nIf you want to use AIP-160, your expression must specify the field name, an\noperator, and the value that you want to use for filtering. The value\nmust be a string, a number, or a boolean. The operator\nmust be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`.\n\nFor example, if you are filtering Compute Engine instances, you can\nexclude instances named `example-instance` by specifying\n`name != example-instance`.\n\nThe `:*` comparison can be used to test whether a key has been defined.\nFor example, to find all objects with `owner` label use:\n```\nlabels.owner:*\n```\n\nYou can also filter nested fields. For example, you could specify\n`scheduling.automaticRestart = false` to include instances only\nif they are not scheduled for automatic restarts. You can use filtering\non nested fields to filter based onresource labels.\n\nTo filter on multiple expressions, provide each separate expression within\nparentheses. For example:\n```\n(scheduling.automaticRestart = true)\n(cpuPlatform = \"Intel Skylake\")\n```\nBy default, each expression is an `AND` expression. However, you\ncan include `AND` and `OR` expressions explicitly.\nFor example:\n```\n(cpuPlatform = \"Intel Skylake\") OR\n(cpuPlatform = \"Intel Broadwell\") AND\n(scheduling.automaticRestart = true)\n```\n\nIf you want to use a regular expression, use the `eq` (equal) or `ne`\n(not equal) operator against a single un-parenthesized expression with or\nwithout quotes or against multiple parenthesized expressions. Examples:\n\n`fieldname eq unquoted literal`\n`fieldname eq 'single quoted literal'`\n`fieldname eq \"double quoted literal\"`\n`(fieldname1 eq literal) (fieldname2 ne \"literal\")`\n\nThe literal value is interpreted as a regular expression using GoogleRE2 library syntax.\nThe literal value must match the entire field.\n\nFor example, to filter for instances that do not end with name \"instance\",\nyou would use `name ne .*instance`.\n\nYou cannot combine constraints on multiple fields using regular\nexpressions.", + "location": "query", + "type": "string" + }, + "includeAllScopes": { + "description": "Indicates whether every visible scope for each scope type (zone, region,\nglobal) should be included in the response. For new resource types added\nafter this field, the flag has no effect as new resource types will always\ninclude every visible scope for each scope type in response. For resource\ntypes which predate this field, if this flag is omitted or false, only\nscopes of the scope types where the resource type is expected to be found\nwill be included.", + "location": "query", + "type": "boolean" + }, + "maxResults": { + "default": "500", + "description": "The maximum number of results per page that should be returned.\nIf the number of available results is larger than `maxResults`,\nCompute Engine returns a `nextPageToken` that can be used to get\nthe next page of results in subsequent list requests. Acceptable values are\n`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\nare returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation\ntimestamp using `orderBy=\"creationTimestamp desc\"`. This sorts\nresults based on the `creationTimestamp` field in\nreverse chronological order (newest result first). Use this to sort\nresources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or\n`creationTimestamp desc` is supported.", + "location": "query", + "type": "string" + }, + "pageToken": { + "description": "Specifies a page token to use. Set `pageToken` to the\n`nextPageToken` returned by a previous list request to get\nthe next page of results.", + "location": "query", + "type": "string" + }, + "project": { + "description": "Name of the project scoping 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" + }, + "returnPartialSuccess": { + "description": "Opt-in for partial success behavior which provides partial results in case\nof failure. The default value is false.\n\nFor example, when partial success behavior is enabled, aggregatedList for a\nsingle zone scope either returns all resources in the zone or no resources,\nwith an error code.", + "location": "query", + "type": "boolean" + }, + "serviceProjectNumber": { + "description": "The Shared VPC service project id or service project number for which\naggregated list request is invoked for subnetworks list-usable api.", + "format": "int64", + "location": "query", + "type": "string" + } + }, + "path": "projects/{project}/aggregated/healthAggregationPolicies", + "response": { + "$ref": "HealthAggregationPolicyAggregatedList" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ] + }, "delete": { - "description": "Deletes the specified NotificationEndpoint in the given region", - "flatPath": "projects/{project}/regions/{region}/notificationEndpoints/{notificationEndpoint}", + "description": "Deletes the specified HealthAggregationPolicy in the given region.", + "flatPath": "projects/{project}/regions/{region}/healthAggregationPolicies/{healthAggregationPolicy}", "httpMethod": "DELETE", - "id": "compute.regionNotificationEndpoints.delete", + "id": "compute.regionHealthAggregationPolicies.delete", "parameterOrder": [ "project", "region", - "notificationEndpoint" + "healthAggregationPolicy" ], "parameters": { - "notificationEndpoint": { - "description": "Name of the NotificationEndpoint resource to delete.", + "healthAggregationPolicy": { + "description": "Name of the HealthAggregationPolicy resource to delete.", "location": "path", "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", "required": true, @@ -25436,12 +27152,12 @@ "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. 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).", + "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).", "location": "query", "type": "string" } }, - "path": "projects/{project}/regions/{region}/notificationEndpoints/{notificationEndpoint}", + "path": "projects/{project}/regions/{region}/healthAggregationPolicies/{healthAggregationPolicy}", "response": { "$ref": "Operation" }, @@ -25451,18 +27167,18 @@ ] }, "get": { - "description": "Returns the specified NotificationEndpoint resource in the given region.", - "flatPath": "projects/{project}/regions/{region}/notificationEndpoints/{notificationEndpoint}", + "description": "Returns the specified HealthAggregationPolicy resource in the given region.", + "flatPath": "projects/{project}/regions/{region}/healthAggregationPolicies/{healthAggregationPolicy}", "httpMethod": "GET", - "id": "compute.regionNotificationEndpoints.get", + "id": "compute.regionHealthAggregationPolicies.get", "parameterOrder": [ "project", "region", - "notificationEndpoint" + "healthAggregationPolicy" ], "parameters": { - "notificationEndpoint": { - "description": "Name of the NotificationEndpoint resource to return.", + "healthAggregationPolicy": { + "description": "Name of the HealthAggregationPolicy resource to return.", "location": "path", "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", "required": true, @@ -25483,9 +27199,9 @@ "type": "string" } }, - "path": "projects/{project}/regions/{region}/notificationEndpoints/{notificationEndpoint}", + "path": "projects/{project}/regions/{region}/healthAggregationPolicies/{healthAggregationPolicy}", "response": { - "$ref": "NotificationEndpoint" + "$ref": "HealthAggregationPolicy" }, "scopes": [ "https://www.googleapis.com/auth/cloud-platform", @@ -25494,10 +27210,10 @@ ] }, "insert": { - "description": "Create a NotificationEndpoint in the specified project in the given region using the parameters that are included in the request.", - "flatPath": "projects/{project}/regions/{region}/notificationEndpoints", + "description": "Create a HealthAggregationPolicy in the specified project in the given\nregion using the parameters that are included in the request.", + "flatPath": "projects/{project}/regions/{region}/healthAggregationPolicies", "httpMethod": "POST", - "id": "compute.regionNotificationEndpoints.insert", + "id": "compute.regionHealthAggregationPolicies.insert", "parameterOrder": [ "project", "region" @@ -25518,14 +27234,14 @@ "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. 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).", + "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).", "location": "query", "type": "string" } }, - "path": "projects/{project}/regions/{region}/notificationEndpoints", + "path": "projects/{project}/regions/{region}/healthAggregationPolicies", "request": { - "$ref": "NotificationEndpoint" + "$ref": "HealthAggregationPolicy" }, "response": { "$ref": "Operation" @@ -25536,35 +27252,35 @@ ] }, "list": { - "description": "Lists the NotificationEndpoints for a project in the given region.", - "flatPath": "projects/{project}/regions/{region}/notificationEndpoints", + "description": "Lists the HealthAggregationPolicies for a project in the given region.", + "flatPath": "projects/{project}/regions/{region}/healthAggregationPolicies", "httpMethod": "GET", - "id": "compute.regionNotificationEndpoints.list", + "id": "compute.regionHealthAggregationPolicies.list", "parameterOrder": [ "project", "region" ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` 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) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.", + "description": "A filter expression that filters resources listed in the response. Most\nCompute resources support two types of filter expressions:\nexpressions that support regular expressions and expressions that follow\nAPI improvement proposal AIP-160.\nThese two types of filter expressions cannot be mixed in one request.\n\nIf you want to use AIP-160, your expression must specify the field name, an\noperator, and the value that you want to use for filtering. The value\nmust be a string, a number, or a boolean. The operator\nmust be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`.\n\nFor example, if you are filtering Compute Engine instances, you can\nexclude instances named `example-instance` by specifying\n`name != example-instance`.\n\nThe `:*` comparison can be used to test whether a key has been defined.\nFor example, to find all objects with `owner` label use:\n```\nlabels.owner:*\n```\n\nYou can also filter nested fields. For example, you could specify\n`scheduling.automaticRestart = false` to include instances only\nif they are not scheduled for automatic restarts. You can use filtering\non nested fields to filter based onresource labels.\n\nTo filter on multiple expressions, provide each separate expression within\nparentheses. For example:\n```\n(scheduling.automaticRestart = true)\n(cpuPlatform = \"Intel Skylake\")\n```\nBy default, each expression is an `AND` expression. However, you\ncan include `AND` and `OR` expressions explicitly.\nFor example:\n```\n(cpuPlatform = \"Intel Skylake\") OR\n(cpuPlatform = \"Intel Broadwell\") AND\n(scheduling.automaticRestart = true)\n```\n\nIf you want to use a regular expression, use the `eq` (equal) or `ne`\n(not equal) operator against a single un-parenthesized expression with or\nwithout quotes or against multiple parenthesized expressions. Examples:\n\n`fieldname eq unquoted literal`\n`fieldname eq 'single quoted literal'`\n`fieldname eq \"double quoted literal\"`\n`(fieldname1 eq literal) (fieldname2 ne \"literal\")`\n\nThe literal value is interpreted as a regular expression using GoogleRE2 library syntax.\nThe literal value must match the entire field.\n\nFor example, to filter for instances that do not end with name \"instance\",\nyou would use `name ne .*instance`.\n\nYou cannot combine constraints on multiple fields using regular\nexpressions.", "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`)", + "description": "The maximum number of results per page that should be returned.\nIf the number of available results is larger than `maxResults`,\nCompute Engine returns a `nextPageToken` that can be used to get\nthe next page of results in subsequent list requests. Acceptable values are\n`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. 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.", + "description": "Sorts list results by a certain order. By default, results\nare returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation\ntimestamp using `orderBy=\"creationTimestamp desc\"`. This sorts\nresults based on the `creationTimestamp` field in\nreverse chronological order (newest result first). Use this to sort\nresources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or\n`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.", + "description": "Specifies a page token to use. Set `pageToken` to the\n`nextPageToken` returned by a previous list request to get\nthe next page of results.", "location": "query", "type": "string" }, @@ -25583,40 +27299,35 @@ "type": "string" }, "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", + "description": "Opt-in for partial success behavior which provides partial results in case\nof failure. The default value is false.\n\nFor example, when partial success behavior is enabled, aggregatedList for a\nsingle zone scope either returns all resources in the zone or no resources,\nwith an error code.", "location": "query", "type": "boolean" } }, - "path": "projects/{project}/regions/{region}/notificationEndpoints", + "path": "projects/{project}/regions/{region}/healthAggregationPolicies", "response": { - "$ref": "NotificationEndpointList" + "$ref": "HealthAggregationPolicyList" }, "scopes": [ "https://www.googleapis.com/auth/cloud-platform", "https://www.googleapis.com/auth/compute", "https://www.googleapis.com/auth/compute.readonly" ] - } - } - }, - "regionOperations": { - "methods": { - "delete": { - "description": "Deletes the specified region-specific Operations resource.", - "flatPath": "projects/{project}/regions/{region}/operations/{operation}", - "httpMethod": "DELETE", - "id": "compute.regionOperations.delete", + }, + "patch": { + "description": "Updates the specified regional HealthAggregationPolicy\nresource with the data included in the request. This method supportsPATCH\nsemantics and uses theJSON merge\npatch format and processing rules.", + "flatPath": "projects/{project}/regions/{region}/healthAggregationPolicies/{healthAggregationPolicy}", + "httpMethod": "PATCH", + "id": "compute.regionHealthAggregationPolicies.patch", "parameterOrder": [ "project", "region", - "operation" + "healthAggregationPolicy" ], "parameters": { - "operation": { - "description": "Name of the Operations resource to delete.", + "healthAggregationPolicy": { + "description": "Name of the HealthAggregationPolicy to update. The name\nmust be 1-63 characters long, and comply with RFC1035.", "location": "path", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", "required": true, "type": "string" }, @@ -25628,37 +27339,41 @@ "type": "string" }, "region": { - "description": "Name of the region for this request.", + "description": "Name of the region scoping this request.", "location": "path", "pattern": "[a-z](?:[-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\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).", + "location": "query", + "type": "string" } }, - "path": "projects/{project}/regions/{region}/operations/{operation}", + "path": "projects/{project}/regions/{region}/healthAggregationPolicies/{healthAggregationPolicy}", + "request": { + "$ref": "HealthAggregationPolicy" + }, + "response": { + "$ref": "Operation" + }, "scopes": [ "https://www.googleapis.com/auth/cloud-platform", "https://www.googleapis.com/auth/compute" ] }, - "get": { - "description": "Retrieves the specified region-specific Operations resource.", - "flatPath": "projects/{project}/regions/{region}/operations/{operation}", - "httpMethod": "GET", - "id": "compute.regionOperations.get", + "testIamPermissions": { + "description": "Returns permissions that a caller has on the specified resource.", + "flatPath": "projects/{project}/regions/{region}/healthAggregationPolicies/{resource}/testIamPermissions", + "httpMethod": "POST", + "id": "compute.regionHealthAggregationPolicies.testIamPermissions", "parameterOrder": [ "project", "region", - "operation" + "resource" ], "parameters": { - "operation": { - "description": "Name of the Operations resource to return.", - "location": "path", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "required": true, - "type": "string" - }, "project": { "description": "Project ID for this request.", "location": "path", @@ -25667,194 +27382,120 @@ "type": "string" }, "region": { - "description": "Name of the region for this request.", + "description": "The name of the region for this request.", "location": "path", "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", "required": true, "type": "string" + }, + "resource": { + "description": "Name or id of the resource for this request.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "required": true, + "type": "string" } }, - "path": "projects/{project}/regions/{region}/operations/{operation}", + "path": "projects/{project}/regions/{region}/healthAggregationPolicies/{resource}/testIamPermissions", + "request": { + "$ref": "TestPermissionsRequest" + }, "response": { - "$ref": "Operation" + "$ref": "TestPermissionsResponse" }, "scopes": [ "https://www.googleapis.com/auth/cloud-platform", "https://www.googleapis.com/auth/compute", "https://www.googleapis.com/auth/compute.readonly" ] - }, - "list": { - "description": "Retrieves a list of Operation resources contained within the specified region.", - "flatPath": "projects/{project}/regions/{region}/operations", + } + } + }, + "regionHealthCheckServices": { + "methods": { + "aggregatedList": { + "description": "Retrieves the list of all HealthCheckService resources,\nregional and global, available to the specified project.\n\nTo prevent failure, it is recommended that you set the\n`returnPartialSuccess` parameter to `true`.", + "flatPath": "projects/{project}/aggregated/healthCheckServices", "httpMethod": "GET", - "id": "compute.regionOperations.list", + "id": "compute.regionHealthCheckServices.aggregatedList", "parameterOrder": [ - "project", - "region" + "project" ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` 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) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.", + "description": "A filter expression that filters resources listed in the response. Most\nCompute resources support two types of filter expressions:\nexpressions that support regular expressions and expressions that follow\nAPI improvement proposal AIP-160.\nThese two types of filter expressions cannot be mixed in one request.\n\nIf you want to use AIP-160, your expression must specify the field name, an\noperator, and the value that you want to use for filtering. The value\nmust be a string, a number, or a boolean. The operator\nmust be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`.\n\nFor example, if you are filtering Compute Engine instances, you can\nexclude instances named `example-instance` by specifying\n`name != example-instance`.\n\nThe `:*` comparison can be used to test whether a key has been defined.\nFor example, to find all objects with `owner` label use:\n```\nlabels.owner:*\n```\n\nYou can also filter nested fields. For example, you could specify\n`scheduling.automaticRestart = false` to include instances only\nif they are not scheduled for automatic restarts. You can use filtering\non nested fields to filter based onresource labels.\n\nTo filter on multiple expressions, provide each separate expression within\nparentheses. For example:\n```\n(scheduling.automaticRestart = true)\n(cpuPlatform = \"Intel Skylake\")\n```\nBy default, each expression is an `AND` expression. However, you\ncan include `AND` and `OR` expressions explicitly.\nFor example:\n```\n(cpuPlatform = \"Intel Skylake\") OR\n(cpuPlatform = \"Intel Broadwell\") AND\n(scheduling.automaticRestart = true)\n```\n\nIf you want to use a regular expression, use the `eq` (equal) or `ne`\n(not equal) operator against a single un-parenthesized expression with or\nwithout quotes or against multiple parenthesized expressions. Examples:\n\n`fieldname eq unquoted literal`\n`fieldname eq 'single quoted literal'`\n`fieldname eq \"double quoted literal\"`\n`(fieldname1 eq literal) (fieldname2 ne \"literal\")`\n\nThe literal value is interpreted as a regular expression using GoogleRE2 library syntax.\nThe literal value must match the entire field.\n\nFor example, to filter for instances that do not end with name \"instance\",\nyou would use `name ne .*instance`.\n\nYou cannot combine constraints on multiple fields using regular\nexpressions.", "location": "query", "type": "string" }, + "includeAllScopes": { + "description": "Indicates whether every visible scope for each scope type (zone, region,\nglobal) should be included in the response. For new resource types added\nafter this field, the flag has no effect as new resource types will always\ninclude every visible scope for each scope type in response. For resource\ntypes which predate this field, if this flag is omitted or false, only\nscopes of the scope types where the resource type is expected to be found\nwill be included.", + "location": "query", + "type": "boolean" + }, "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`)", + "description": "The maximum number of results per page that should be returned.\nIf the number of available results is larger than `maxResults`,\nCompute Engine returns a `nextPageToken` that can be used to get\nthe next page of results in subsequent list requests. Acceptable values are\n`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. 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.", + "description": "Sorts list results by a certain order. By default, results\nare returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation\ntimestamp using `orderBy=\"creationTimestamp desc\"`. This sorts\nresults based on the `creationTimestamp` field in\nreverse chronological order (newest result first). Use this to sort\nresources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or\n`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.", + "description": "Specifies a page token to use. Set `pageToken` to the\n`nextPageToken` returned by a previous list request to get\nthe next page of results.", "location": "query", "type": "string" }, "project": { - "description": "Project ID for this request.", + "description": "Name of the project scoping 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" - }, "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", + "description": "Opt-in for partial success behavior which provides partial results in case\nof failure. The default value is false.\n\nFor example, when partial success behavior is enabled, aggregatedList for a\nsingle zone scope either returns all resources in the zone or no resources,\nwith an error code.", "location": "query", "type": "boolean" - } - }, - "path": "projects/{project}/regions/{region}/operations", - "response": { - "$ref": "OperationList" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" - ] - }, - "wait": { - "description": "Waits for the specified Operation resource to return as `DONE` or for the request to approach the 2 minute deadline, and retrieves the specified Operation resource. This method differs from the `GET` method in that it waits for no more than the default deadline (2 minutes) and then returns the current state of the operation, which might be `DONE` or still in progress. This method is called on a best-effort basis. Specifically: - In uncommon cases, when the server is overloaded, the request might return before the default deadline is reached, or might return after zero seconds. - If the default deadline is reached, there is no guarantee that the operation is actually done when the method returns. Be prepared to retry if the operation is not `DONE`. ", - "flatPath": "projects/{project}/regions/{region}/operations/{operation}/wait", - "httpMethod": "POST", - "id": "compute.regionOperations.wait", - "parameterOrder": [ - "project", - "region", - "operation" - ], - "parameters": { - "operation": { - "description": "Name of the Operations resource to return.", - "location": "path", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "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" }, - "region": { - "description": "Name of the region for this request.", - "location": "path", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "required": true, + "serviceProjectNumber": { + "description": "The Shared VPC service project id or service project number for which\naggregated list request is invoked for subnetworks list-usable api.", + "format": "int64", + "location": "query", "type": "string" } }, - "path": "projects/{project}/regions/{region}/operations/{operation}/wait", + "path": "projects/{project}/aggregated/healthCheckServices", "response": { - "$ref": "Operation" + "$ref": "HealthCheckServiceAggregatedList" }, "scopes": [ "https://www.googleapis.com/auth/cloud-platform", "https://www.googleapis.com/auth/compute", "https://www.googleapis.com/auth/compute.readonly" ] - } - } - }, - "regionSecurityPolicies": { - "methods": { - "addRule": { - "description": "Inserts a rule into a security policy.", - "flatPath": "projects/{project}/regions/{region}/securityPolicies/{securityPolicy}/addRule", - "httpMethod": "POST", - "id": "compute.regionSecurityPolicies.addRule", + }, + "delete": { + "description": "Deletes the specified regional HealthCheckService.", + "flatPath": "projects/{project}/regions/{region}/healthCheckServices/{healthCheckService}", + "httpMethod": "DELETE", + "id": "compute.regionHealthCheckServices.delete", "parameterOrder": [ "project", "region", - "securityPolicy" + "healthCheckService" ], "parameters": { - "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 scoping this request.", - "location": "path", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "required": true, - "type": "string" - }, - "securityPolicy": { - "description": "Name of the security policy to update.", + "healthCheckService": { + "description": "Name of the HealthCheckService to delete. The name\nmust be 1-63 characters long, and comply with RFC1035.", "location": "path", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", "required": true, "type": "string" }, - "validateOnly": { - "description": "If true, the request will not be committed.", - "location": "query", - "type": "boolean" - } - }, - "path": "projects/{project}/regions/{region}/securityPolicies/{securityPolicy}/addRule", - "request": { - "$ref": "SecurityPolicyRule" - }, - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ] - }, - "delete": { - "description": "Deletes the specified policy.", - "flatPath": "projects/{project}/regions/{region}/securityPolicies/{securityPolicy}", - "httpMethod": "DELETE", - "id": "compute.regionSecurityPolicies.delete", - "parameterOrder": [ - "project", - "region", - "securityPolicy" - ], - "parameters": { "project": { "description": "Project ID for this request.", "location": "path", @@ -25870,19 +27511,12 @@ "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. 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).", + "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).", "location": "query", "type": "string" - }, - "securityPolicy": { - "description": "Name of the security policy to delete.", - "location": "path", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "required": true, - "type": "string" } }, - "path": "projects/{project}/regions/{region}/securityPolicies/{securityPolicy}", + "path": "projects/{project}/regions/{region}/healthCheckServices/{healthCheckService}", "response": { "$ref": "Operation" }, @@ -25892,64 +27526,21 @@ ] }, "get": { - "description": "List all of the ordered rules present in a single specified policy.", - "flatPath": "projects/{project}/regions/{region}/securityPolicies/{securityPolicy}", + "description": "Returns the specified regional HealthCheckService resource.", + "flatPath": "projects/{project}/regions/{region}/healthCheckServices/{healthCheckService}", "httpMethod": "GET", - "id": "compute.regionSecurityPolicies.get", + "id": "compute.regionHealthCheckServices.get", "parameterOrder": [ "project", "region", - "securityPolicy" + "healthCheckService" ], "parameters": { - "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 scoping this request.", - "location": "path", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "required": true, - "type": "string" - }, - "securityPolicy": { - "description": "Name of the security policy to get.", + "healthCheckService": { + "description": "Name of the HealthCheckService to update. The name\nmust be 1-63 characters long, and comply with RFC1035.", "location": "path", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", "required": true, "type": "string" - } - }, - "path": "projects/{project}/regions/{region}/securityPolicies/{securityPolicy}", - "response": { - "$ref": "SecurityPolicy" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" - ] - }, - "getRule": { - "description": "Gets a rule at the specified priority.", - "flatPath": "projects/{project}/regions/{region}/securityPolicies/{securityPolicy}/getRule", - "httpMethod": "GET", - "id": "compute.regionSecurityPolicies.getRule", - "parameterOrder": [ - "project", - "region", - "securityPolicy" - ], - "parameters": { - "priority": { - "description": "The priority of the rule to get from the security policy.", - "format": "int32", - "location": "query", - "type": "integer" }, "project": { "description": "Project ID for this request.", @@ -25964,18 +27555,11 @@ "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", "required": true, "type": "string" - }, - "securityPolicy": { - "description": "Name of the security policy to which the queried rule belongs.", - "location": "path", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "required": true, - "type": "string" } }, - "path": "projects/{project}/regions/{region}/securityPolicies/{securityPolicy}/getRule", + "path": "projects/{project}/regions/{region}/healthCheckServices/{healthCheckService}", "response": { - "$ref": "SecurityPolicyRule" + "$ref": "HealthCheckService" }, "scopes": [ "https://www.googleapis.com/auth/cloud-platform", @@ -25984,10 +27568,10 @@ ] }, "insert": { - "description": "Creates a new policy in the specified project using the data included in the request.", - "flatPath": "projects/{project}/regions/{region}/securityPolicies", + "description": "Creates a regional HealthCheckService resource in the\nspecified project and region using the data included in the request.", + "flatPath": "projects/{project}/regions/{region}/healthCheckServices", "httpMethod": "POST", - "id": "compute.regionSecurityPolicies.insert", + "id": "compute.regionHealthCheckServices.insert", "parameterOrder": [ "project", "region" @@ -26008,19 +27592,14 @@ "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. 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).", + "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).", "location": "query", "type": "string" - }, - "validateOnly": { - "description": "If true, the request will not be committed.", - "location": "query", - "type": "boolean" } }, - "path": "projects/{project}/regions/{region}/securityPolicies", + "path": "projects/{project}/regions/{region}/healthCheckServices", "request": { - "$ref": "SecurityPolicy" + "$ref": "HealthCheckService" }, "response": { "$ref": "Operation" @@ -26031,35 +27610,35 @@ ] }, "list": { - "description": "List all the policies that have been configured for the specified project and region.", - "flatPath": "projects/{project}/regions/{region}/securityPolicies", + "description": "Lists all the HealthCheckService resources that have been\nconfigured for the specified project in the given region.", + "flatPath": "projects/{project}/regions/{region}/healthCheckServices", "httpMethod": "GET", - "id": "compute.regionSecurityPolicies.list", + "id": "compute.regionHealthCheckServices.list", "parameterOrder": [ "project", "region" ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` 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) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.", + "description": "A filter expression that filters resources listed in the response. Most\nCompute resources support two types of filter expressions:\nexpressions that support regular expressions and expressions that follow\nAPI improvement proposal AIP-160.\nThese two types of filter expressions cannot be mixed in one request.\n\nIf you want to use AIP-160, your expression must specify the field name, an\noperator, and the value that you want to use for filtering. The value\nmust be a string, a number, or a boolean. The operator\nmust be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`.\n\nFor example, if you are filtering Compute Engine instances, you can\nexclude instances named `example-instance` by specifying\n`name != example-instance`.\n\nThe `:*` comparison can be used to test whether a key has been defined.\nFor example, to find all objects with `owner` label use:\n```\nlabels.owner:*\n```\n\nYou can also filter nested fields. For example, you could specify\n`scheduling.automaticRestart = false` to include instances only\nif they are not scheduled for automatic restarts. You can use filtering\non nested fields to filter based onresource labels.\n\nTo filter on multiple expressions, provide each separate expression within\nparentheses. For example:\n```\n(scheduling.automaticRestart = true)\n(cpuPlatform = \"Intel Skylake\")\n```\nBy default, each expression is an `AND` expression. However, you\ncan include `AND` and `OR` expressions explicitly.\nFor example:\n```\n(cpuPlatform = \"Intel Skylake\") OR\n(cpuPlatform = \"Intel Broadwell\") AND\n(scheduling.automaticRestart = true)\n```\n\nIf you want to use a regular expression, use the `eq` (equal) or `ne`\n(not equal) operator against a single un-parenthesized expression with or\nwithout quotes or against multiple parenthesized expressions. Examples:\n\n`fieldname eq unquoted literal`\n`fieldname eq 'single quoted literal'`\n`fieldname eq \"double quoted literal\"`\n`(fieldname1 eq literal) (fieldname2 ne \"literal\")`\n\nThe literal value is interpreted as a regular expression using GoogleRE2 library syntax.\nThe literal value must match the entire field.\n\nFor example, to filter for instances that do not end with name \"instance\",\nyou would use `name ne .*instance`.\n\nYou cannot combine constraints on multiple fields using regular\nexpressions.", "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`)", + "description": "The maximum number of results per page that should be returned.\nIf the number of available results is larger than `maxResults`,\nCompute Engine returns a `nextPageToken` that can be used to get\nthe next page of results in subsequent list requests. Acceptable values are\n`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. 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.", + "description": "Sorts list results by a certain order. By default, results\nare returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation\ntimestamp using `orderBy=\"creationTimestamp desc\"`. This sorts\nresults based on the `creationTimestamp` field in\nreverse chronological order (newest result first). Use this to sort\nresources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or\n`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.", + "description": "Specifies a page token to use. Set `pageToken` to the\n`nextPageToken` returned by a previous list request to get\nthe next page of results.", "location": "query", "type": "string" }, @@ -26078,14 +27657,14 @@ "type": "string" }, "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", + "description": "Opt-in for partial success behavior which provides partial results in case\nof failure. The default value is false.\n\nFor example, when partial success behavior is enabled, aggregatedList for a\nsingle zone scope either returns all resources in the zone or no resources,\nwith an error code.", "location": "query", "type": "boolean" } }, - "path": "projects/{project}/regions/{region}/securityPolicies", + "path": "projects/{project}/regions/{region}/healthCheckServices", "response": { - "$ref": "SecurityPolicyList" + "$ref": "HealthCheckServicesList" }, "scopes": [ "https://www.googleapis.com/auth/cloud-platform", @@ -26094,78 +27673,22 @@ ] }, "patch": { - "description": "Patches the specified policy with the data included in the request. To clear fields in the policy, leave the fields empty and specify them in the updateMask. This cannot be used to be update the rules in the policy. Please use the per rule methods like addRule, patchRule, and removeRule instead.", - "flatPath": "projects/{project}/regions/{region}/securityPolicies/{securityPolicy}", + "description": "Updates the specified regional HealthCheckService resource\nwith the data included in the request. This method supportsPATCH\nsemantics and uses theJSON merge\npatch format and processing rules.", + "flatPath": "projects/{project}/regions/{region}/healthCheckServices/{healthCheckService}", "httpMethod": "PATCH", - "id": "compute.regionSecurityPolicies.patch", + "id": "compute.regionHealthCheckServices.patch", "parameterOrder": [ "project", "region", - "securityPolicy" + "healthCheckService" ], "parameters": { - "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 scoping this request.", - "location": "path", - "pattern": "[a-z](?:[-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. 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).", - "location": "query", - "type": "string" - }, - "securityPolicy": { - "description": "Name of the security policy to update.", + "healthCheckService": { + "description": "Name of the HealthCheckService to update. The name\nmust be 1-63 characters long, and comply with RFC1035.", "location": "path", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", "required": true, "type": "string" }, - "updateMask": { - "description": "Indicates fields to be cleared as part of this request.", - "format": "google-fieldmask", - "location": "query", - "type": "string" - } - }, - "path": "projects/{project}/regions/{region}/securityPolicies/{securityPolicy}", - "request": { - "$ref": "SecurityPolicy" - }, - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ] - }, - "patchRule": { - "description": "Patches a rule at the specified priority. To clear fields in the rule, leave the fields empty and specify them in the updateMask.", - "flatPath": "projects/{project}/regions/{region}/securityPolicies/{securityPolicy}/patchRule", - "httpMethod": "POST", - "id": "compute.regionSecurityPolicies.patchRule", - "parameterOrder": [ - "project", - "region", - "securityPolicy" - ], - "parameters": { - "priority": { - "description": "The priority of the rule to patch.", - "format": "int32", - "location": "query", - "type": "integer" - }, "project": { "description": "Project ID for this request.", "location": "path", @@ -26180,28 +27703,15 @@ "required": true, "type": "string" }, - "securityPolicy": { - "description": "Name of the security policy to update.", - "location": "path", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "required": true, - "type": "string" - }, - "updateMask": { - "description": "Indicates fields to be cleared as part of this request.", - "format": "google-fieldmask", + "requestId": { + "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).", "location": "query", "type": "string" - }, - "validateOnly": { - "description": "If true, the request will not be committed.", - "location": "query", - "type": "boolean" } }, - "path": "projects/{project}/regions/{region}/securityPolicies/{securityPolicy}/patchRule", + "path": "projects/{project}/regions/{region}/healthCheckServices/{healthCheckService}", "request": { - "$ref": "SecurityPolicyRule" + "$ref": "HealthCheckService" }, "response": { "$ref": "Operation" @@ -26211,23 +27721,17 @@ "https://www.googleapis.com/auth/compute" ] }, - "removeRule": { - "description": "Deletes a rule at the specified priority.", - "flatPath": "projects/{project}/regions/{region}/securityPolicies/{securityPolicy}/removeRule", + "testIamPermissions": { + "description": "Returns permissions that a caller has on the specified resource.", + "flatPath": "projects/{project}/regions/{region}/healthCheckServices/{resource}/testIamPermissions", "httpMethod": "POST", - "id": "compute.regionSecurityPolicies.removeRule", + "id": "compute.regionHealthCheckServices.testIamPermissions", "parameterOrder": [ "project", "region", - "securityPolicy" + "resource" ], "parameters": { - "priority": { - "description": "The priority of the rule to remove from the security policy.", - "format": "int32", - "location": "query", - "type": "integer" - }, "project": { "description": "Project ID for this request.", "location": "path", @@ -26236,44 +27740,55 @@ "type": "string" }, "region": { - "description": "Name of the region scoping this request.", + "description": "The name of the region for this request.", "location": "path", "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", "required": true, "type": "string" }, - "securityPolicy": { - "description": "Name of the security policy to update.", + "resource": { + "description": "Name or id of the resource for this request.", "location": "path", "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", "required": true, "type": "string" } }, - "path": "projects/{project}/regions/{region}/securityPolicies/{securityPolicy}/removeRule", + "path": "projects/{project}/regions/{region}/healthCheckServices/{resource}/testIamPermissions", + "request": { + "$ref": "TestPermissionsRequest" + }, "response": { - "$ref": "Operation" + "$ref": "TestPermissionsResponse" }, "scopes": [ "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" ] } } }, - "regionSslCertificates": { + "regionHealthChecks": { "methods": { "delete": { - "description": "Deletes the specified SslCertificate resource in the region.", - "flatPath": "projects/{project}/regions/{region}/sslCertificates/{sslCertificate}", + "description": "Deletes the specified HealthCheck resource.", + "flatPath": "projects/{project}/regions/{region}/healthChecks/{healthCheck}", "httpMethod": "DELETE", - "id": "compute.regionSslCertificates.delete", + "id": "compute.regionHealthChecks.delete", "parameterOrder": [ "project", "region", - "sslCertificate" + "healthCheck" ], "parameters": { + "healthCheck": { + "description": "Name of the HealthCheck resource to delete.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "required": true, + "type": "string" + }, "project": { "description": "Project ID for this request.", "location": "path", @@ -26289,19 +27804,12 @@ "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. 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).", + "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).", "location": "query", "type": "string" - }, - "sslCertificate": { - "description": "Name of the SslCertificate resource to delete.", - "location": "path", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "required": true, - "type": "string" } }, - "path": "projects/{project}/regions/{region}/sslCertificates/{sslCertificate}", + "path": "projects/{project}/regions/{region}/healthChecks/{healthCheck}", "response": { "$ref": "Operation" }, @@ -26311,16 +27819,23 @@ ] }, "get": { - "description": "Returns the specified SslCertificate resource in the specified region. Get a list of available SSL certificates by making a list() request.", - "flatPath": "projects/{project}/regions/{region}/sslCertificates/{sslCertificate}", + "description": "Returns the specified HealthCheck resource.", + "flatPath": "projects/{project}/regions/{region}/healthChecks/{healthCheck}", "httpMethod": "GET", - "id": "compute.regionSslCertificates.get", + "id": "compute.regionHealthChecks.get", "parameterOrder": [ "project", "region", - "sslCertificate" + "healthCheck" ], "parameters": { + "healthCheck": { + "description": "Name of the HealthCheck resource to return.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "required": true, + "type": "string" + }, "project": { "description": "Project ID for this request.", "location": "path", @@ -26334,18 +27849,11 @@ "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", "required": true, "type": "string" - }, - "sslCertificate": { - "description": "Name of the SslCertificate resource to return.", - "location": "path", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "required": true, - "type": "string" } }, - "path": "projects/{project}/regions/{region}/sslCertificates/{sslCertificate}", + "path": "projects/{project}/regions/{region}/healthChecks/{healthCheck}", "response": { - "$ref": "SslCertificate" + "$ref": "HealthCheck" }, "scopes": [ "https://www.googleapis.com/auth/cloud-platform", @@ -26354,10 +27862,10 @@ ] }, "insert": { - "description": "Creates a SslCertificate resource in the specified project and region using the data included in the request", - "flatPath": "projects/{project}/regions/{region}/sslCertificates", + "description": "Creates a HealthCheck resource in the specified project using the data\nincluded in the request.", + "flatPath": "projects/{project}/regions/{region}/healthChecks", "httpMethod": "POST", - "id": "compute.regionSslCertificates.insert", + "id": "compute.regionHealthChecks.insert", "parameterOrder": [ "project", "region" @@ -26378,14 +27886,14 @@ "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. 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).", + "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).", "location": "query", "type": "string" } }, - "path": "projects/{project}/regions/{region}/sslCertificates", + "path": "projects/{project}/regions/{region}/healthChecks", "request": { - "$ref": "SslCertificate" + "$ref": "HealthCheck" }, "response": { "$ref": "Operation" @@ -26396,35 +27904,35 @@ ] }, "list": { - "description": "Retrieves the list of SslCertificate resources available to the specified project in the specified region.", - "flatPath": "projects/{project}/regions/{region}/sslCertificates", + "description": "Retrieves the list of HealthCheck resources available to the specified\nproject.", + "flatPath": "projects/{project}/regions/{region}/healthChecks", "httpMethod": "GET", - "id": "compute.regionSslCertificates.list", + "id": "compute.regionHealthChecks.list", "parameterOrder": [ "project", "region" ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` 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) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.", + "description": "A filter expression that filters resources listed in the response. Most\nCompute resources support two types of filter expressions:\nexpressions that support regular expressions and expressions that follow\nAPI improvement proposal AIP-160.\nThese two types of filter expressions cannot be mixed in one request.\n\nIf you want to use AIP-160, your expression must specify the field name, an\noperator, and the value that you want to use for filtering. The value\nmust be a string, a number, or a boolean. The operator\nmust be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`.\n\nFor example, if you are filtering Compute Engine instances, you can\nexclude instances named `example-instance` by specifying\n`name != example-instance`.\n\nThe `:*` comparison can be used to test whether a key has been defined.\nFor example, to find all objects with `owner` label use:\n```\nlabels.owner:*\n```\n\nYou can also filter nested fields. For example, you could specify\n`scheduling.automaticRestart = false` to include instances only\nif they are not scheduled for automatic restarts. You can use filtering\non nested fields to filter based onresource labels.\n\nTo filter on multiple expressions, provide each separate expression within\nparentheses. For example:\n```\n(scheduling.automaticRestart = true)\n(cpuPlatform = \"Intel Skylake\")\n```\nBy default, each expression is an `AND` expression. However, you\ncan include `AND` and `OR` expressions explicitly.\nFor example:\n```\n(cpuPlatform = \"Intel Skylake\") OR\n(cpuPlatform = \"Intel Broadwell\") AND\n(scheduling.automaticRestart = true)\n```\n\nIf you want to use a regular expression, use the `eq` (equal) or `ne`\n(not equal) operator against a single un-parenthesized expression with or\nwithout quotes or against multiple parenthesized expressions. Examples:\n\n`fieldname eq unquoted literal`\n`fieldname eq 'single quoted literal'`\n`fieldname eq \"double quoted literal\"`\n`(fieldname1 eq literal) (fieldname2 ne \"literal\")`\n\nThe literal value is interpreted as a regular expression using GoogleRE2 library syntax.\nThe literal value must match the entire field.\n\nFor example, to filter for instances that do not end with name \"instance\",\nyou would use `name ne .*instance`.\n\nYou cannot combine constraints on multiple fields using regular\nexpressions.", "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`)", + "description": "The maximum number of results per page that should be returned.\nIf the number of available results is larger than `maxResults`,\nCompute Engine returns a `nextPageToken` that can be used to get\nthe next page of results in subsequent list requests. Acceptable values are\n`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. 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.", + "description": "Sorts list results by a certain order. By default, results\nare returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation\ntimestamp using `orderBy=\"creationTimestamp desc\"`. This sorts\nresults based on the `creationTimestamp` field in\nreverse chronological order (newest result first). Use this to sort\nresources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or\n`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.", + "description": "Specifies a page token to use. Set `pageToken` to the\n`nextPageToken` returned by a previous list request to get\nthe next page of results.", "location": "query", "type": "string" }, @@ -26443,36 +27951,39 @@ "type": "string" }, "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", + "description": "Opt-in for partial success behavior which provides partial results in case\nof failure. The default value is false.\n\nFor example, when partial success behavior is enabled, aggregatedList for a\nsingle zone scope either returns all resources in the zone or no resources,\nwith an error code.", "location": "query", "type": "boolean" } }, - "path": "projects/{project}/regions/{region}/sslCertificates", + "path": "projects/{project}/regions/{region}/healthChecks", "response": { - "$ref": "SslCertificateList" + "$ref": "HealthCheckList" }, "scopes": [ "https://www.googleapis.com/auth/cloud-platform", "https://www.googleapis.com/auth/compute", "https://www.googleapis.com/auth/compute.readonly" ] - } - } - }, - "regionSslPolicies": { - "methods": { - "delete": { - "description": "Deletes the specified SSL policy. The SSL policy resource can be deleted only if it is not in use by any TargetHttpsProxy or TargetSslProxy resources.", - "flatPath": "projects/{project}/regions/{region}/sslPolicies/{sslPolicy}", - "httpMethod": "DELETE", - "id": "compute.regionSslPolicies.delete", + }, + "patch": { + "description": "Updates a HealthCheck resource in the specified project using the data\nincluded in the request. This method supportsPATCH\nsemantics and uses theJSON merge\npatch format and processing rules.", + "flatPath": "projects/{project}/regions/{region}/healthChecks/{healthCheck}", + "httpMethod": "PATCH", + "id": "compute.regionHealthChecks.patch", "parameterOrder": [ "project", "region", - "sslPolicy" + "healthCheck" ], "parameters": { + "healthCheck": { + "description": "Name of the HealthCheck resource to patch.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "required": true, + "type": "string" + }, "project": { "description": "Project ID for this request.", "location": "path", @@ -26488,18 +27999,15 @@ "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. 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).", + "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).", "location": "query", "type": "string" - }, - "sslPolicy": { - "description": "Name of the SSL policy to delete. The name must be 1-63 characters long, and comply with RFC1035.", - "location": "path", - "required": true, - "type": "string" } }, - "path": "projects/{project}/regions/{region}/sslPolicies/{sslPolicy}", + "path": "projects/{project}/regions/{region}/healthChecks/{healthCheck}", + "request": { + "$ref": "HealthCheck" + }, "response": { "$ref": "Operation" }, @@ -26508,15 +28016,15 @@ "https://www.googleapis.com/auth/compute" ] }, - "get": { - "description": "Lists all of the ordered rules present in a single specified policy.", - "flatPath": "projects/{project}/regions/{region}/sslPolicies/{sslPolicy}", - "httpMethod": "GET", - "id": "compute.regionSslPolicies.get", + "testIamPermissions": { + "description": "Returns permissions that a caller has on the specified resource.", + "flatPath": "projects/{project}/regions/{region}/healthChecks/{resource}/testIamPermissions", + "httpMethod": "POST", + "id": "compute.regionHealthChecks.testIamPermissions", "parameterOrder": [ "project", "region", - "sslPolicy" + "resource" ], "parameters": { "project": { @@ -26527,22 +28035,26 @@ "type": "string" }, "region": { - "description": "Name of the region scoping this request.", + "description": "The name of the region for this request.", "location": "path", "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", "required": true, "type": "string" }, - "sslPolicy": { - "description": "Name of the SSL policy to update. The name must be 1-63 characters long, and comply with RFC1035.", + "resource": { + "description": "Name or id of the resource for this request.", "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", "required": true, "type": "string" } }, - "path": "projects/{project}/regions/{region}/sslPolicies/{sslPolicy}", + "path": "projects/{project}/regions/{region}/healthChecks/{resource}/testIamPermissions", + "request": { + "$ref": "TestPermissionsRequest" + }, "response": { - "$ref": "SslPolicy" + "$ref": "TestPermissionsResponse" }, "scopes": [ "https://www.googleapis.com/auth/cloud-platform", @@ -26550,16 +28062,24 @@ "https://www.googleapis.com/auth/compute.readonly" ] }, - "insert": { - "description": "Creates a new policy in the specified project and region using the data included in the request.", - "flatPath": "projects/{project}/regions/{region}/sslPolicies", - "httpMethod": "POST", - "id": "compute.regionSslPolicies.insert", + "update": { + "description": "Updates a HealthCheck resource in the specified project using the data\nincluded in the request.", + "flatPath": "projects/{project}/regions/{region}/healthChecks/{healthCheck}", + "httpMethod": "PUT", + "id": "compute.regionHealthChecks.update", "parameterOrder": [ "project", - "region" + "region", + "healthCheck" ], "parameters": { + "healthCheck": { + "description": "Name of the HealthCheck resource to update.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "required": true, + "type": "string" + }, "project": { "description": "Project ID for this request.", "location": "path", @@ -26575,14 +28095,14 @@ "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. 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).", + "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).", "location": "query", "type": "string" } }, - "path": "projects/{project}/regions/{region}/sslPolicies", + "path": "projects/{project}/regions/{region}/healthChecks/{healthCheck}", "request": { - "$ref": "SslPolicy" + "$ref": "HealthCheck" }, "response": { "$ref": "Operation" @@ -26591,126 +28111,70 @@ "https://www.googleapis.com/auth/cloud-platform", "https://www.googleapis.com/auth/compute" ] - }, - "list": { - "description": "Lists all the SSL policies that have been configured for the specified project and region.", - "flatPath": "projects/{project}/regions/{region}/sslPolicies", + } + } + }, + "regionHealthSources": { + "methods": { + "aggregatedList": { + "description": "Retrieves the list of all HealthSource resources (all\nregional) available to the specified project.\n\nTo prevent failure, Google recommends that you set the\n`returnPartialSuccess` parameter to `true`.", + "flatPath": "projects/{project}/aggregated/healthSources", "httpMethod": "GET", - "id": "compute.regionSslPolicies.list", + "id": "compute.regionHealthSources.aggregatedList", "parameterOrder": [ - "project", - "region" + "project" ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` 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) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.", - "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. 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.", - "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.", + "description": "A filter expression that filters resources listed in the response. Most\nCompute resources support two types of filter expressions:\nexpressions that support regular expressions and expressions that follow\nAPI improvement proposal AIP-160.\nThese two types of filter expressions cannot be mixed in one request.\n\nIf you want to use AIP-160, your expression must specify the field name, an\noperator, and the value that you want to use for filtering. The value\nmust be a string, a number, or a boolean. The operator\nmust be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`.\n\nFor example, if you are filtering Compute Engine instances, you can\nexclude instances named `example-instance` by specifying\n`name != example-instance`.\n\nThe `:*` comparison can be used to test whether a key has been defined.\nFor example, to find all objects with `owner` label use:\n```\nlabels.owner:*\n```\n\nYou can also filter nested fields. For example, you could specify\n`scheduling.automaticRestart = false` to include instances only\nif they are not scheduled for automatic restarts. You can use filtering\non nested fields to filter based onresource labels.\n\nTo filter on multiple expressions, provide each separate expression within\nparentheses. For example:\n```\n(scheduling.automaticRestart = true)\n(cpuPlatform = \"Intel Skylake\")\n```\nBy default, each expression is an `AND` expression. However, you\ncan include `AND` and `OR` expressions explicitly.\nFor example:\n```\n(cpuPlatform = \"Intel Skylake\") OR\n(cpuPlatform = \"Intel Broadwell\") AND\n(scheduling.automaticRestart = true)\n```\n\nIf you want to use a regular expression, use the `eq` (equal) or `ne`\n(not equal) operator against a single un-parenthesized expression with or\nwithout quotes or against multiple parenthesized expressions. Examples:\n\n`fieldname eq unquoted literal`\n`fieldname eq 'single quoted literal'`\n`fieldname eq \"double quoted literal\"`\n`(fieldname1 eq literal) (fieldname2 ne \"literal\")`\n\nThe literal value is interpreted as a regular expression using GoogleRE2 library syntax.\nThe literal value must match the entire field.\n\nFor example, to filter for instances that do not end with name \"instance\",\nyou would use `name ne .*instance`.\n\nYou cannot combine constraints on multiple fields using regular\nexpressions.", "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 scoping this request.", - "location": "path", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "required": true, - "type": "string" - }, - "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", + "includeAllScopes": { + "description": "Indicates whether every visible scope for each scope type (zone, region,\nglobal) should be included in the response. For new resource types added\nafter this field, the flag has no effect as new resource types will always\ninclude every visible scope for each scope type in response. For resource\ntypes which predate this field, if this flag is omitted or false, only\nscopes of the scope types where the resource type is expected to be found\nwill be included.", "location": "query", "type": "boolean" - } - }, - "path": "projects/{project}/regions/{region}/sslPolicies", - "response": { - "$ref": "SslPoliciesList" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" - ] - }, - "listAvailableFeatures": { - "description": "Lists all features that can be specified in the SSL policy when using custom profile.", - "flatPath": "projects/{project}/regions/{region}/sslPolicies/listAvailableFeatures", - "httpMethod": "GET", - "id": "compute.regionSslPolicies.listAvailableFeatures", - "parameterOrder": [ - "project", - "region" - ], - "parameters": { - "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` 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) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.", - "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`)", + "description": "The maximum number of results per page that should be returned.\nIf the number of available results is larger than `maxResults`,\nCompute Engine returns a `nextPageToken` that can be used to get\nthe next page of results in subsequent list requests. Acceptable values are\n`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. 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.", + "description": "Sorts list results by a certain order. By default, results\nare returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation\ntimestamp using `orderBy=\"creationTimestamp desc\"`. This sorts\nresults based on the `creationTimestamp` field in\nreverse chronological order (newest result first). Use this to sort\nresources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or\n`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.", + "description": "Specifies a page token to use. Set `pageToken` to the\n`nextPageToken` returned by a previous list request to get\nthe next page of results.", "location": "query", "type": "string" }, "project": { - "description": "Project ID for this request.", + "description": "Name of the project scoping 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 scoping this request.", - "location": "path", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "required": true, - "type": "string" - }, "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", + "description": "Opt-in for partial success behavior which provides partial results in case\nof failure. The default value is false.\n\nFor example, when partial success behavior is enabled, aggregatedList for a\nsingle zone scope either returns all resources in the zone or no resources,\nwith an error code.", "location": "query", "type": "boolean" + }, + "serviceProjectNumber": { + "description": "The Shared VPC service project id or service project number for which\naggregated list request is invoked for subnetworks list-usable api.", + "format": "int64", + "location": "query", + "type": "string" } }, - "path": "projects/{project}/regions/{region}/sslPolicies/listAvailableFeatures", + "path": "projects/{project}/aggregated/healthSources", "response": { - "$ref": "SslPoliciesListAvailableFeaturesResponse" + "$ref": "HealthSourceAggregatedList" }, "scopes": [ "https://www.googleapis.com/auth/cloud-platform", @@ -26718,17 +28182,24 @@ "https://www.googleapis.com/auth/compute.readonly" ] }, - "patch": { - "description": "Patches the specified SSL policy with the data included in the request.", - "flatPath": "projects/{project}/regions/{region}/sslPolicies/{sslPolicy}", - "httpMethod": "PATCH", - "id": "compute.regionSslPolicies.patch", + "delete": { + "description": "Deletes the specified HealthSource in the given region", + "flatPath": "projects/{project}/regions/{region}/healthSources/{healthSource}", + "httpMethod": "DELETE", + "id": "compute.regionHealthSources.delete", "parameterOrder": [ "project", "region", - "sslPolicy" + "healthSource" ], "parameters": { + "healthSource": { + "description": "Name of the HealthSource resource to delete.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "required": true, + "type": "string" + }, "project": { "description": "Project ID for this request.", "location": "path", @@ -26744,21 +28215,12 @@ "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. 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).", + "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).", "location": "query", "type": "string" - }, - "sslPolicy": { - "description": "Name of the SSL policy to update. The name must be 1-63 characters long, and comply with RFC1035.", - "location": "path", - "required": true, - "type": "string" } }, - "path": "projects/{project}/regions/{region}/sslPolicies/{sslPolicy}", - "request": { - "$ref": "SslPolicy" - }, + "path": "projects/{project}/regions/{region}/healthSources/{healthSource}", "response": { "$ref": "Operation" }, @@ -26766,22 +28228,25 @@ "https://www.googleapis.com/auth/cloud-platform", "https://www.googleapis.com/auth/compute" ] - } - } - }, - "regionTargetHttpProxies": { - "methods": { - "delete": { - "description": "Deletes the specified TargetHttpProxy resource.", - "flatPath": "projects/{project}/regions/{region}/targetHttpProxies/{targetHttpProxy}", - "httpMethod": "DELETE", - "id": "compute.regionTargetHttpProxies.delete", + }, + "get": { + "description": "Returns the specified HealthSource resource in the given region.", + "flatPath": "projects/{project}/regions/{region}/healthSources/{healthSource}", + "httpMethod": "GET", + "id": "compute.regionHealthSources.get", "parameterOrder": [ "project", "region", - "targetHttpProxy" + "healthSource" ], "parameters": { + "healthSource": { + "description": "Name of the HealthSource resource to return.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "required": true, + "type": "string" + }, "project": { "description": "Project ID for this request.", "location": "path", @@ -26795,42 +28260,38 @@ "pattern": "[a-z](?:[-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. 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).", - "location": "query", - "type": "string" - }, - "targetHttpProxy": { - "description": "Name of the TargetHttpProxy resource to delete.", - "location": "path", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "required": true, - "type": "string" } }, - "path": "projects/{project}/regions/{region}/targetHttpProxies/{targetHttpProxy}", + "path": "projects/{project}/regions/{region}/healthSources/{healthSource}", "response": { - "$ref": "Operation" + "$ref": "HealthSource" }, "scopes": [ "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" ] }, - "get": { - "description": "Returns the specified TargetHttpProxy resource in the specified region.", - "flatPath": "projects/{project}/regions/{region}/targetHttpProxies/{targetHttpProxy}", + "getHealth": { + "description": "Gets the most recent health check results for this\nregional HealthSource.", + "flatPath": "projects/{project}/regions/{region}/healthSources/{healthSource}/getHealth", "httpMethod": "GET", - "id": "compute.regionTargetHttpProxies.get", + "id": "compute.regionHealthSources.getHealth", "parameterOrder": [ "project", "region", - "targetHttpProxy" + "healthSource" ], "parameters": { + "healthSource": { + "description": "Name of the HealthSource resource to get health for.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "required": true, + "type": "string" + }, "project": { - "description": "Project ID for this request.", + "description": "Name of the project scoping 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, @@ -26842,18 +28303,11 @@ "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", "required": true, "type": "string" - }, - "targetHttpProxy": { - "description": "Name of the TargetHttpProxy resource to return.", - "location": "path", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "required": true, - "type": "string" } }, - "path": "projects/{project}/regions/{region}/targetHttpProxies/{targetHttpProxy}", + "path": "projects/{project}/regions/{region}/healthSources/{healthSource}/getHealth", "response": { - "$ref": "TargetHttpProxy" + "$ref": "HealthSourceHealth" }, "scopes": [ "https://www.googleapis.com/auth/cloud-platform", @@ -26862,10 +28316,10 @@ ] }, "insert": { - "description": "Creates a TargetHttpProxy resource in the specified project and region using the data included in the request.", - "flatPath": "projects/{project}/regions/{region}/targetHttpProxies", + "description": "Create a HealthSource in the specified project in the given region\nusing the parameters that are included in the request.", + "flatPath": "projects/{project}/regions/{region}/healthSources", "httpMethod": "POST", - "id": "compute.regionTargetHttpProxies.insert", + "id": "compute.regionHealthSources.insert", "parameterOrder": [ "project", "region" @@ -26886,14 +28340,14 @@ "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. 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).", + "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).", "location": "query", "type": "string" } }, - "path": "projects/{project}/regions/{region}/targetHttpProxies", + "path": "projects/{project}/regions/{region}/healthSources", "request": { - "$ref": "TargetHttpProxy" + "$ref": "HealthSource" }, "response": { "$ref": "Operation" @@ -26904,35 +28358,35 @@ ] }, "list": { - "description": "Retrieves the list of TargetHttpProxy resources available to the specified project in the specified region.", - "flatPath": "projects/{project}/regions/{region}/targetHttpProxies", + "description": "Lists the HealthSources for a project in the given region.", + "flatPath": "projects/{project}/regions/{region}/healthSources", "httpMethod": "GET", - "id": "compute.regionTargetHttpProxies.list", + "id": "compute.regionHealthSources.list", "parameterOrder": [ "project", "region" ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` 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) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.", + "description": "A filter expression that filters resources listed in the response. Most\nCompute resources support two types of filter expressions:\nexpressions that support regular expressions and expressions that follow\nAPI improvement proposal AIP-160.\nThese two types of filter expressions cannot be mixed in one request.\n\nIf you want to use AIP-160, your expression must specify the field name, an\noperator, and the value that you want to use for filtering. The value\nmust be a string, a number, or a boolean. The operator\nmust be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`.\n\nFor example, if you are filtering Compute Engine instances, you can\nexclude instances named `example-instance` by specifying\n`name != example-instance`.\n\nThe `:*` comparison can be used to test whether a key has been defined.\nFor example, to find all objects with `owner` label use:\n```\nlabels.owner:*\n```\n\nYou can also filter nested fields. For example, you could specify\n`scheduling.automaticRestart = false` to include instances only\nif they are not scheduled for automatic restarts. You can use filtering\non nested fields to filter based onresource labels.\n\nTo filter on multiple expressions, provide each separate expression within\nparentheses. For example:\n```\n(scheduling.automaticRestart = true)\n(cpuPlatform = \"Intel Skylake\")\n```\nBy default, each expression is an `AND` expression. However, you\ncan include `AND` and `OR` expressions explicitly.\nFor example:\n```\n(cpuPlatform = \"Intel Skylake\") OR\n(cpuPlatform = \"Intel Broadwell\") AND\n(scheduling.automaticRestart = true)\n```\n\nIf you want to use a regular expression, use the `eq` (equal) or `ne`\n(not equal) operator against a single un-parenthesized expression with or\nwithout quotes or against multiple parenthesized expressions. Examples:\n\n`fieldname eq unquoted literal`\n`fieldname eq 'single quoted literal'`\n`fieldname eq \"double quoted literal\"`\n`(fieldname1 eq literal) (fieldname2 ne \"literal\")`\n\nThe literal value is interpreted as a regular expression using GoogleRE2 library syntax.\nThe literal value must match the entire field.\n\nFor example, to filter for instances that do not end with name \"instance\",\nyou would use `name ne .*instance`.\n\nYou cannot combine constraints on multiple fields using regular\nexpressions.", "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`)", + "description": "The maximum number of results per page that should be returned.\nIf the number of available results is larger than `maxResults`,\nCompute Engine returns a `nextPageToken` that can be used to get\nthe next page of results in subsequent list requests. Acceptable values are\n`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. 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.", + "description": "Sorts list results by a certain order. By default, results\nare returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation\ntimestamp using `orderBy=\"creationTimestamp desc\"`. This sorts\nresults based on the `creationTimestamp` field in\nreverse chronological order (newest result first). Use this to sort\nresources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or\n`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.", + "description": "Specifies a page token to use. Set `pageToken` to the\n`nextPageToken` returned by a previous list request to get\nthe next page of results.", "location": "query", "type": "string" }, @@ -26951,14 +28405,14 @@ "type": "string" }, "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", + "description": "Opt-in for partial success behavior which provides partial results in case\nof failure. The default value is false.\n\nFor example, when partial success behavior is enabled, aggregatedList for a\nsingle zone scope either returns all resources in the zone or no resources,\nwith an error code.", "location": "query", "type": "boolean" } }, - "path": "projects/{project}/regions/{region}/targetHttpProxies", + "path": "projects/{project}/regions/{region}/healthSources", "response": { - "$ref": "TargetHttpProxyList" + "$ref": "HealthSourceList" }, "scopes": [ "https://www.googleapis.com/auth/cloud-platform", @@ -26966,17 +28420,23 @@ "https://www.googleapis.com/auth/compute.readonly" ] }, - "setUrlMap": { - "description": "Changes the URL map for TargetHttpProxy.", - "flatPath": "projects/{project}/regions/{region}/targetHttpProxies/{targetHttpProxy}/setUrlMap", - "httpMethod": "POST", - "id": "compute.regionTargetHttpProxies.setUrlMap", + "patch": { + "description": "Updates the specified regional HealthSource resource\nwith the data included in the request. This method supportsPATCH\nsemantics and uses theJSON merge\npatch format and processing rules.", + "flatPath": "projects/{project}/regions/{region}/healthSources/{healthSource}", + "httpMethod": "PATCH", + "id": "compute.regionHealthSources.patch", "parameterOrder": [ "project", "region", - "targetHttpProxy" + "healthSource" ], "parameters": { + "healthSource": { + "description": "Name of the HealthSource to update. The name\nmust be 1-63 characters long, and comply with RFC1035.", + "location": "path", + "required": true, + "type": "string" + }, "project": { "description": "Project ID for this request.", "location": "path", @@ -26992,45 +28452,143 @@ "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. 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).", + "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).", "location": "query", "type": "string" + } + }, + "path": "projects/{project}/regions/{region}/healthSources/{healthSource}", + "request": { + "$ref": "HealthSource" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ] + }, + "testIamPermissions": { + "description": "Returns permissions that a caller has on the specified resource.", + "flatPath": "projects/{project}/regions/{region}/healthSources/{resource}/testIamPermissions", + "httpMethod": "POST", + "id": "compute.regionHealthSources.testIamPermissions", + "parameterOrder": [ + "project", + "region", + "resource" + ], + "parameters": { + "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" }, - "targetHttpProxy": { - "description": "Name of the TargetHttpProxy to set a URL map for.", + "region": { + "description": "The name of the region for this request.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "required": true, + "type": "string" + }, + "resource": { + "description": "Name or id of the resource for this request.", "location": "path", "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", "required": true, "type": "string" } }, - "path": "projects/{project}/regions/{region}/targetHttpProxies/{targetHttpProxy}/setUrlMap", + "path": "projects/{project}/regions/{region}/healthSources/{resource}/testIamPermissions", "request": { - "$ref": "UrlMapReference" + "$ref": "TestPermissionsRequest" }, "response": { - "$ref": "Operation" + "$ref": "TestPermissionsResponse" }, "scopes": [ "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" ] } } }, - "regionTargetHttpsProxies": { + "regionInstanceGroupManagerResizeRequests": { "methods": { + "cancel": { + "description": "Cancels the specified resize request.\nCancelled resize request no longer waits for the resources to be\nprovisioned. Cancel is only possible for requests that are in accepted\nstate.", + "flatPath": "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/resizeRequests/{resizeRequest}/cancel", + "httpMethod": "POST", + "id": "compute.regionInstanceGroupManagerResizeRequests.cancel", + "parameterOrder": [ + "project", + "region", + "instanceGroupManager", + "resizeRequest" + ], + "parameters": { + "instanceGroupManager": { + "description": "The name of the managed instance group.\nName should conform to RFC1035 or be a resource ID.", + "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" + }, + "region": { + "description": "The name of the region\nscoping this request. Name should conform to RFC1035.", + "location": "path", + "required": true, + "type": "string" + }, + "requestId": { + "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).", + "location": "query", + "type": "string" + }, + "resizeRequest": { + "description": "The name of the resize request to cancel.\nName should conform to RFC1035 or be a resource ID.", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/resizeRequests/{resizeRequest}/cancel", + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ] + }, "delete": { - "description": "Deletes the specified TargetHttpsProxy resource.", - "flatPath": "projects/{project}/regions/{region}/targetHttpsProxies/{targetHttpsProxy}", + "description": "Deletes the specified, inactive resize request. Requests that are still\nactive cannot be deleted. Deleting request does not delete instances that\nwere provisioned previously.", + "flatPath": "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/resizeRequests/{resizeRequest}", "httpMethod": "DELETE", - "id": "compute.regionTargetHttpsProxies.delete", + "id": "compute.regionInstanceGroupManagerResizeRequests.delete", "parameterOrder": [ "project", "region", - "targetHttpsProxy" + "instanceGroupManager", + "resizeRequest" ], "parameters": { + "instanceGroupManager": { + "description": "The name of the managed instance group.\nName should conform to RFC1035 or be a resource ID.", + "location": "path", + "required": true, + "type": "string" + }, "project": { "description": "Project ID for this request.", "location": "path", @@ -27039,26 +28597,24 @@ "type": "string" }, "region": { - "description": "Name of the region scoping this request.", + "description": "The name of the region\nscoping this request. Name should conform to RFC1035.", "location": "path", - "pattern": "[a-z](?:[-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. 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).", + "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).", "location": "query", "type": "string" }, - "targetHttpsProxy": { - "description": "Name of the TargetHttpsProxy resource to delete.", + "resizeRequest": { + "description": "The name of the resize request to delete.\nName should conform to RFC1035 or be a resource ID.", "location": "path", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", "required": true, "type": "string" } }, - "path": "projects/{project}/regions/{region}/targetHttpsProxies/{targetHttpsProxy}", + "path": "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/resizeRequests/{resizeRequest}", "response": { "$ref": "Operation" }, @@ -27068,16 +28624,23 @@ ] }, "get": { - "description": "Returns the specified TargetHttpsProxy resource in the specified region.", - "flatPath": "projects/{project}/regions/{region}/targetHttpsProxies/{targetHttpsProxy}", + "description": "Returns all of the details about the specified resize request.", + "flatPath": "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/resizeRequests/{resizeRequest}", "httpMethod": "GET", - "id": "compute.regionTargetHttpsProxies.get", + "id": "compute.regionInstanceGroupManagerResizeRequests.get", "parameterOrder": [ "project", "region", - "targetHttpsProxy" + "instanceGroupManager", + "resizeRequest" ], "parameters": { + "instanceGroupManager": { + "description": "The name of the managed instance group.\nName should conform to RFC1035 or be a resource ID.", + "location": "path", + "required": true, + "type": "string" + }, "project": { "description": "Project ID for this request.", "location": "path", @@ -27086,23 +28649,21 @@ "type": "string" }, "region": { - "description": "Name of the region scoping this request.", + "description": "The name of the region\nscoping this request. Name should conform to RFC1035.", "location": "path", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", "required": true, "type": "string" }, - "targetHttpsProxy": { - "description": "Name of the TargetHttpsProxy resource to return.", + "resizeRequest": { + "description": "The name of the resize request.\nName should conform to RFC1035 or be a resource ID.", "location": "path", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", "required": true, "type": "string" } }, - "path": "projects/{project}/regions/{region}/targetHttpsProxies/{targetHttpsProxy}", + "path": "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/resizeRequests/{resizeRequest}", "response": { - "$ref": "TargetHttpsProxy" + "$ref": "InstanceGroupManagerResizeRequest" }, "scopes": [ "https://www.googleapis.com/auth/cloud-platform", @@ -27111,15 +28672,22 @@ ] }, "insert": { - "description": "Creates a TargetHttpsProxy resource in the specified project and region using the data included in the request.", - "flatPath": "projects/{project}/regions/{region}/targetHttpsProxies", + "description": "Creates a new Resize Request that starts provisioning VMs immediately\nor queues VM creation.", + "flatPath": "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/resizeRequests", "httpMethod": "POST", - "id": "compute.regionTargetHttpsProxies.insert", + "id": "compute.regionInstanceGroupManagerResizeRequests.insert", "parameterOrder": [ "project", - "region" + "region", + "instanceGroupManager" ], "parameters": { + "instanceGroupManager": { + "description": "Name of the managed instance group to which the resize request is scoped.\nName should conform to RFC1035 or be a resource ID.", + "location": "path", + "required": true, + "type": "string" + }, "project": { "description": "Project ID for this request.", "location": "path", @@ -27128,21 +28696,20 @@ "type": "string" }, "region": { - "description": "Name of the region scoping this request.", + "description": "Name of the region\nscoping this request. Name should conform to RFC1035.", "location": "path", - "pattern": "[a-z](?:[-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. 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).", + "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).", "location": "query", "type": "string" } }, - "path": "projects/{project}/regions/{region}/targetHttpsProxies", + "path": "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/resizeRequests", "request": { - "$ref": "TargetHttpsProxy" + "$ref": "InstanceGroupManagerResizeRequest" }, "response": { "$ref": "Operation" @@ -27153,35 +28720,42 @@ ] }, "list": { - "description": "Retrieves the list of TargetHttpsProxy resources available to the specified project in the specified region.", - "flatPath": "projects/{project}/regions/{region}/targetHttpsProxies", + "description": "Retrieves a list of Resize Requests that are contained in the\nmanaged instance group.", + "flatPath": "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/resizeRequests", "httpMethod": "GET", - "id": "compute.regionTargetHttpsProxies.list", + "id": "compute.regionInstanceGroupManagerResizeRequests.list", "parameterOrder": [ "project", - "region" + "region", + "instanceGroupManager" ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` 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) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.", + "description": "A filter expression that filters resources listed in the response. Most\nCompute resources support two types of filter expressions:\nexpressions that support regular expressions and expressions that follow\nAPI improvement proposal AIP-160.\nThese two types of filter expressions cannot be mixed in one request.\n\nIf you want to use AIP-160, your expression must specify the field name, an\noperator, and the value that you want to use for filtering. The value\nmust be a string, a number, or a boolean. The operator\nmust be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`.\n\nFor example, if you are filtering Compute Engine instances, you can\nexclude instances named `example-instance` by specifying\n`name != example-instance`.\n\nThe `:*` comparison can be used to test whether a key has been defined.\nFor example, to find all objects with `owner` label use:\n```\nlabels.owner:*\n```\n\nYou can also filter nested fields. For example, you could specify\n`scheduling.automaticRestart = false` to include instances only\nif they are not scheduled for automatic restarts. You can use filtering\non nested fields to filter based onresource labels.\n\nTo filter on multiple expressions, provide each separate expression within\nparentheses. For example:\n```\n(scheduling.automaticRestart = true)\n(cpuPlatform = \"Intel Skylake\")\n```\nBy default, each expression is an `AND` expression. However, you\ncan include `AND` and `OR` expressions explicitly.\nFor example:\n```\n(cpuPlatform = \"Intel Skylake\") OR\n(cpuPlatform = \"Intel Broadwell\") AND\n(scheduling.automaticRestart = true)\n```\n\nIf you want to use a regular expression, use the `eq` (equal) or `ne`\n(not equal) operator against a single un-parenthesized expression with or\nwithout quotes or against multiple parenthesized expressions. Examples:\n\n`fieldname eq unquoted literal`\n`fieldname eq 'single quoted literal'`\n`fieldname eq \"double quoted literal\"`\n`(fieldname1 eq literal) (fieldname2 ne \"literal\")`\n\nThe literal value is interpreted as a regular expression using GoogleRE2 library syntax.\nThe literal value must match the entire field.\n\nFor example, to filter for instances that do not end with name \"instance\",\nyou would use `name ne .*instance`.\n\nYou cannot combine constraints on multiple fields using regular\nexpressions.", "location": "query", "type": "string" }, + "instanceGroupManager": { + "description": "The name of the managed instance group. The name should conform to RFC1035.", + "location": "path", + "required": true, + "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`)", + "description": "The maximum number of results per page that should be returned.\nIf the number of available results is larger than `maxResults`,\nCompute Engine returns a `nextPageToken` that can be used to get\nthe next page of results in subsequent list requests. Acceptable values are\n`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. 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.", + "description": "Sorts list results by a certain order. By default, results\nare returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation\ntimestamp using `orderBy=\"creationTimestamp desc\"`. This sorts\nresults based on the `creationTimestamp` field in\nreverse chronological order (newest result first). Use this to sort\nresources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or\n`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.", + "description": "Specifies a page token to use. Set `pageToken` to the\n`nextPageToken` returned by a previous list request to get\nthe next page of results.", "location": "query", "type": "string" }, @@ -27193,39 +28767,48 @@ "type": "string" }, "region": { - "description": "Name of the region scoping this request.", + "description": "Name of the region\nscoping this request. Name should conform to RFC1035.", "location": "path", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", "required": true, "type": "string" }, "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", + "description": "Opt-in for partial success behavior which provides partial results in case\nof failure. The default value is false.\n\nFor example, when partial success behavior is enabled, aggregatedList for a\nsingle zone scope either returns all resources in the zone or no resources,\nwith an error code.", "location": "query", "type": "boolean" } }, - "path": "projects/{project}/regions/{region}/targetHttpsProxies", + "path": "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/resizeRequests", "response": { - "$ref": "TargetHttpsProxyList" + "$ref": "RegionInstanceGroupManagerResizeRequestsListResponse" }, "scopes": [ "https://www.googleapis.com/auth/cloud-platform", "https://www.googleapis.com/auth/compute", "https://www.googleapis.com/auth/compute.readonly" ] - }, - "patch": { - "description": "Patches the specified regional TargetHttpsProxy resource with the data included in the request. This method supports PATCH semantics and uses JSON merge patch format and processing rules.", - "flatPath": "projects/{project}/regions/{region}/targetHttpsProxies/{targetHttpsProxy}", - "httpMethod": "PATCH", - "id": "compute.regionTargetHttpsProxies.patch", + } + } + }, + "regionInstanceGroupManagers": { + "methods": { + "abandonInstances": { + "description": "Flags the specified instances to be immediately removed from the managed\ninstance group. Abandoning an instance does not delete the\ninstance, but it does remove the instance from any target pools that are\napplied by the managed instance group. This method reduces thetargetSize of the managed instance group by the\nnumber of instances that you abandon. This operation is marked asDONE when the action is scheduled even if the instances have\nnot yet been removed from the group. You must separately verify the\nstatus of the abandoning action with thelistmanagedinstances\nmethod.\n\nIf the group is part of a backend\nservice that has enabled\nconnection draining, it can take up to 60 seconds after the connection\ndraining duration has elapsed before the VM instance is removed or deleted.\n\nYou can specify a maximum of 1000 instances with this method per request.", + "flatPath": "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/abandonInstances", + "httpMethod": "POST", + "id": "compute.regionInstanceGroupManagers.abandonInstances", "parameterOrder": [ "project", "region", - "targetHttpsProxy" + "instanceGroupManager" ], "parameters": { + "instanceGroupManager": { + "description": "Name of the managed instance group.", + "location": "path", + "required": true, + "type": "string" + }, "project": { "description": "Project ID for this request.", "location": "path", @@ -27234,28 +28817,20 @@ "type": "string" }, "region": { - "description": "Name of the region for this request.", + "description": "Name of the region scoping this request.", "location": "path", - "pattern": "[a-z](?:[-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. 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).", + "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).", "location": "query", "type": "string" - }, - "targetHttpsProxy": { - "description": "Name of the TargetHttpsProxy resource to patch.", - "location": "path", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "required": true, - "type": "string" } }, - "path": "projects/{project}/regions/{region}/targetHttpsProxies/{targetHttpsProxy}", + "path": "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/abandonInstances", "request": { - "$ref": "TargetHttpsProxy" + "$ref": "RegionInstanceGroupManagersAbandonInstancesRequest" }, "response": { "$ref": "Operation" @@ -27265,47 +28840,40 @@ "https://www.googleapis.com/auth/compute" ] }, - "setSslCertificates": { - "description": "Replaces SslCertificates for TargetHttpsProxy.", - "flatPath": "projects/{project}/regions/{region}/targetHttpsProxies/{targetHttpsProxy}/setSslCertificates", + "applyUpdatesToInstances": { + "description": "Apply updates to selected instances the managed instance group.", + "flatPath": "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/applyUpdatesToInstances", "httpMethod": "POST", - "id": "compute.regionTargetHttpsProxies.setSslCertificates", + "id": "compute.regionInstanceGroupManagers.applyUpdatesToInstances", "parameterOrder": [ "project", "region", - "targetHttpsProxy" + "instanceGroupManager" ], "parameters": { - "project": { - "description": "Project ID for this request.", + "instanceGroupManager": { + "description": "The name of the managed instance group, should conform to RFC1035.", "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 scoping this request.", + "project": { + "description": "Project ID for this request.", "location": "path", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "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. 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).", - "location": "query", - "type": "string" - }, - "targetHttpsProxy": { - "description": "Name of the TargetHttpsProxy resource to set an SslCertificates resource for.", + "region": { + "description": "Name of the region scoping this request, should conform to RFC1035.", "location": "path", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", "required": true, "type": "string" } }, - "path": "projects/{project}/regions/{region}/targetHttpsProxies/{targetHttpsProxy}/setSslCertificates", + "path": "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/applyUpdatesToInstances", "request": { - "$ref": "RegionTargetHttpsProxiesSetSslCertificatesRequest" + "$ref": "RegionInstanceGroupManagersApplyUpdatesRequest" }, "response": { "$ref": "Operation" @@ -27315,17 +28883,23 @@ "https://www.googleapis.com/auth/compute" ] }, - "setUrlMap": { - "description": "Changes the URL map for TargetHttpsProxy.", - "flatPath": "projects/{project}/regions/{region}/targetHttpsProxies/{targetHttpsProxy}/setUrlMap", + "createInstances": { + "description": "Creates instances with per-instance configurations in this regional managed\ninstance group. Instances are created using the current instance template.\nThe create instances operation is marked DONE if\nthe createInstances request is successful. The underlying\nactions take additional time. You must separately verify the status of thecreating or actions with the listmanagedinstances\nmethod.", + "flatPath": "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/createInstances", "httpMethod": "POST", - "id": "compute.regionTargetHttpsProxies.setUrlMap", + "id": "compute.regionInstanceGroupManagers.createInstances", "parameterOrder": [ "project", "region", - "targetHttpsProxy" + "instanceGroupManager" ], "parameters": { + "instanceGroupManager": { + "description": "The name of the managed instance group.\nIt should conform to RFC1035.", + "location": "path", + "required": true, + "type": "string" + }, "project": { "description": "Project ID for this request.", "location": "path", @@ -27334,28 +28908,20 @@ "type": "string" }, "region": { - "description": "Name of the region scoping this request.", + "description": "The name of theregion\nwhere the managed instance group is located.\nIt should conform to RFC1035.", "location": "path", - "pattern": "[a-z](?:[-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. 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).", + "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).", "location": "query", "type": "string" - }, - "targetHttpsProxy": { - "description": "Name of the TargetHttpsProxy to set a URL map for.", - "location": "path", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "required": true, - "type": "string" } }, - "path": "projects/{project}/regions/{region}/targetHttpsProxies/{targetHttpsProxy}/setUrlMap", + "path": "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/createInstances", "request": { - "$ref": "UrlMapReference" + "$ref": "RegionInstanceGroupManagersCreateInstancesRequest" }, "response": { "$ref": "Operation" @@ -27364,22 +28930,30 @@ "https://www.googleapis.com/auth/cloud-platform", "https://www.googleapis.com/auth/compute" ] - } - } - }, - "regionTargetTcpProxies": { - "methods": { + }, "delete": { - "description": "Deletes the specified TargetTcpProxy resource.", - "flatPath": "projects/{project}/regions/{region}/targetTcpProxies/{targetTcpProxy}", + "description": "Deletes the specified managed instance group and all of the instances\nin that group.", + "flatPath": "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}", "httpMethod": "DELETE", - "id": "compute.regionTargetTcpProxies.delete", + "id": "compute.regionInstanceGroupManagers.delete", "parameterOrder": [ "project", "region", - "targetTcpProxy" + "instanceGroupManager" ], "parameters": { + "instanceGroupManager": { + "description": "Name of the managed instance group to delete.", + "location": "path", + "required": true, + "type": "string" + }, + "noGracefulShutdown": { + "default": "false", + "description": "When set, graceful shutdown is skipped for instance deletion even if it's\nconfigured for the instances.", + "location": "query", + "type": "boolean" + }, "project": { "description": "Project ID for this request.", "location": "path", @@ -27390,24 +28964,16 @@ "region": { "description": "Name of the region scoping this request.", "location": "path", - "pattern": "[a-z](?:[-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. 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).", + "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).", "location": "query", "type": "string" - }, - "targetTcpProxy": { - "description": "Name of the TargetTcpProxy resource to delete.", - "location": "path", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "required": true, - "type": "string" } }, - "path": "projects/{project}/regions/{region}/targetTcpProxies/{targetTcpProxy}", + "path": "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}", "response": { "$ref": "Operation" }, @@ -27416,17 +28982,29 @@ "https://www.googleapis.com/auth/compute" ] }, - "get": { - "description": "Returns the specified TargetTcpProxy resource.", - "flatPath": "projects/{project}/regions/{region}/targetTcpProxies/{targetTcpProxy}", - "httpMethod": "GET", - "id": "compute.regionTargetTcpProxies.get", + "deleteInstances": { + "description": "Flags the specified instances in the managed instance group to be\nimmediately deleted. The instances are also removed from any target\npools of which they were a member. This method reduces thetargetSize of the managed instance group by the number of\ninstances that you delete.\nThe deleteInstances operation is marked DONE if\nthe deleteInstances request is successful. The underlying\nactions take additional time. You must separately verify the status of thedeleting action with thelistmanagedinstances\nmethod.\n\nIf the group is part of a backend\nservice that has enabled\nconnection draining, it can take up to 60 seconds after the connection\ndraining duration has elapsed before the VM instance is removed or deleted.\n\nYou can specify a maximum of 1000 instances with this method per request.", + "flatPath": "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/deleteInstances", + "httpMethod": "POST", + "id": "compute.regionInstanceGroupManagers.deleteInstances", "parameterOrder": [ "project", "region", - "targetTcpProxy" + "instanceGroupManager" ], "parameters": { + "instanceGroupManager": { + "description": "Name of the managed instance group.", + "location": "path", + "required": true, + "type": "string" + }, + "noGracefulShutdown": { + "default": "false", + "description": "When set, graceful shutdown is skipped for instance deletion even if it's\nconfigured for the instances.", + "location": "query", + "type": "boolean" + }, "project": { "description": "Project ID for this request.", "location": "path", @@ -27437,33 +29015,116 @@ "region": { "description": "Name of the region scoping this request.", "location": "path", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", "required": true, "type": "string" }, - "targetTcpProxy": { - "description": "Name of the TargetTcpProxy resource to return.", - "location": "path", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "required": true, + "requestId": { + "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).", + "location": "query", "type": "string" } }, - "path": "projects/{project}/regions/{region}/targetTcpProxies/{targetTcpProxy}", + "path": "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/deleteInstances", + "request": { + "$ref": "RegionInstanceGroupManagersDeleteInstancesRequest" + }, "response": { - "$ref": "TargetTcpProxy" + "$ref": "Operation" }, "scopes": [ "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" + "https://www.googleapis.com/auth/compute" ] }, - "insert": { - "description": "Creates a TargetTcpProxy resource in the specified project and region using the data included in the request.", - "flatPath": "projects/{project}/regions/{region}/targetTcpProxies", + "deletePerInstanceConfigs": { + "description": "Deletes selected per-instance configurations for the managed instance\ngroup.", + "flatPath": "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/deletePerInstanceConfigs", "httpMethod": "POST", - "id": "compute.regionTargetTcpProxies.insert", + "id": "compute.regionInstanceGroupManagers.deletePerInstanceConfigs", + "parameterOrder": [ + "project", + "region", + "instanceGroupManager" + ], + "parameters": { + "instanceGroupManager": { + "description": "The name of the managed instance group. It 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" + }, + "region": { + "description": "Name of the region scoping this request, should conform to RFC1035.", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/deletePerInstanceConfigs", + "request": { + "$ref": "RegionInstanceGroupManagerDeleteInstanceConfigReq" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ] + }, + "get": { + "description": "Returns all of the details about the specified managed instance group.", + "flatPath": "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}", + "httpMethod": "GET", + "id": "compute.regionInstanceGroupManagers.get", + "parameterOrder": [ + "project", + "region", + "instanceGroupManager" + ], + "parameters": { + "instanceGroupManager": { + "description": "Name of the managed instance group to return.", + "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" + }, + "region": { + "description": "Name of the region scoping this request.", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}", + "response": { + "$ref": "InstanceGroupManager" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ] + }, + "insert": { + "description": "Creates a managed instance group using the information that you specify\nin the request. After the group is created, instances in the group are\ncreated using the specified instance template.\nThis operation is marked as DONE when the group is created\neven if the instances in the group have not yet been created. You must\nseparately verify the status of the individual instances with thelistmanagedinstances\nmethod.\n\nA regional managed instance group can contain up to 2000 instances.", + "flatPath": "projects/{project}/regions/{region}/instanceGroupManagers", + "httpMethod": "POST", + "id": "compute.regionInstanceGroupManagers.insert", "parameterOrder": [ "project", "region" @@ -27479,19 +29140,18 @@ "region": { "description": "Name of the region scoping this request.", "location": "path", - "pattern": "[a-z](?:[-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. 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).", + "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).", "location": "query", "type": "string" } }, - "path": "projects/{project}/regions/{region}/targetTcpProxies", + "path": "projects/{project}/regions/{region}/instanceGroupManagers", "request": { - "$ref": "TargetTcpProxy" + "$ref": "InstanceGroupManager" }, "response": { "$ref": "Operation" @@ -27502,35 +29162,35 @@ ] }, "list": { - "description": "Retrieves a list of TargetTcpProxy resources available to the specified project in a given region.", - "flatPath": "projects/{project}/regions/{region}/targetTcpProxies", + "description": "Retrieves the list of managed instance groups that are contained\nwithin the specified region.", + "flatPath": "projects/{project}/regions/{region}/instanceGroupManagers", "httpMethod": "GET", - "id": "compute.regionTargetTcpProxies.list", + "id": "compute.regionInstanceGroupManagers.list", "parameterOrder": [ "project", "region" ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` 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) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.", + "description": "A filter expression that filters resources listed in the response. Most\nCompute resources support two types of filter expressions:\nexpressions that support regular expressions and expressions that follow\nAPI improvement proposal AIP-160.\nThese two types of filter expressions cannot be mixed in one request.\n\nIf you want to use AIP-160, your expression must specify the field name, an\noperator, and the value that you want to use for filtering. The value\nmust be a string, a number, or a boolean. The operator\nmust be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`.\n\nFor example, if you are filtering Compute Engine instances, you can\nexclude instances named `example-instance` by specifying\n`name != example-instance`.\n\nThe `:*` comparison can be used to test whether a key has been defined.\nFor example, to find all objects with `owner` label use:\n```\nlabels.owner:*\n```\n\nYou can also filter nested fields. For example, you could specify\n`scheduling.automaticRestart = false` to include instances only\nif they are not scheduled for automatic restarts. You can use filtering\non nested fields to filter based onresource labels.\n\nTo filter on multiple expressions, provide each separate expression within\nparentheses. For example:\n```\n(scheduling.automaticRestart = true)\n(cpuPlatform = \"Intel Skylake\")\n```\nBy default, each expression is an `AND` expression. However, you\ncan include `AND` and `OR` expressions explicitly.\nFor example:\n```\n(cpuPlatform = \"Intel Skylake\") OR\n(cpuPlatform = \"Intel Broadwell\") AND\n(scheduling.automaticRestart = true)\n```\n\nIf you want to use a regular expression, use the `eq` (equal) or `ne`\n(not equal) operator against a single un-parenthesized expression with or\nwithout quotes or against multiple parenthesized expressions. Examples:\n\n`fieldname eq unquoted literal`\n`fieldname eq 'single quoted literal'`\n`fieldname eq \"double quoted literal\"`\n`(fieldname1 eq literal) (fieldname2 ne \"literal\")`\n\nThe literal value is interpreted as a regular expression using GoogleRE2 library syntax.\nThe literal value must match the entire field.\n\nFor example, to filter for instances that do not end with name \"instance\",\nyou would use `name ne .*instance`.\n\nYou cannot combine constraints on multiple fields using regular\nexpressions.", "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`)", + "description": "The maximum number of results per page that should be returned.\nIf the number of available results is larger than `maxResults`,\nCompute Engine returns a `nextPageToken` that can be used to get\nthe next page of results in subsequent list requests. Acceptable values are\n`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. 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.", + "description": "Sorts list results by a certain order. By default, results\nare returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation\ntimestamp using `orderBy=\"creationTimestamp desc\"`. This sorts\nresults based on the `creationTimestamp` field in\nreverse chronological order (newest result first). Use this to sort\nresources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or\n`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.", + "description": "Specifies a page token to use. Set `pageToken` to the\n`nextPageToken` returned by a previous list request to get\nthe next page of results.", "location": "query", "type": "string" }, @@ -27544,88 +29204,65 @@ "region": { "description": "Name of the region scoping this request.", "location": "path", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", "required": true, "type": "string" }, "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", + "description": "Opt-in for partial success behavior which provides partial results in case\nof failure. The default value is false.\n\nFor example, when partial success behavior is enabled, aggregatedList for a\nsingle zone scope either returns all resources in the zone or no resources,\nwith an error code.", "location": "query", "type": "boolean" } }, - "path": "projects/{project}/regions/{region}/targetTcpProxies", + "path": "projects/{project}/regions/{region}/instanceGroupManagers", "response": { - "$ref": "TargetTcpProxyList" + "$ref": "RegionInstanceGroupManagerList" }, "scopes": [ "https://www.googleapis.com/auth/cloud-platform", "https://www.googleapis.com/auth/compute", "https://www.googleapis.com/auth/compute.readonly" ] - } - } - }, - "regionUrlMaps": { - "methods": { - "delete": { - "description": "Deletes the specified UrlMap resource.", - "flatPath": "projects/{project}/regions/{region}/urlMaps/{urlMap}", - "httpMethod": "DELETE", - "id": "compute.regionUrlMaps.delete", + }, + "listErrors": { + "description": "Lists all errors thrown by actions on instances for a given regional\nmanaged instance group. The filter andorderBy query parameters are not supported.", + "flatPath": "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/listErrors", + "httpMethod": "GET", + "id": "compute.regionInstanceGroupManagers.listErrors", "parameterOrder": [ "project", "region", - "urlMap" + "instanceGroupManager" ], "parameters": { - "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, + "filter": { + "description": "A filter expression that filters resources listed in the response. Most\nCompute resources support two types of filter expressions:\nexpressions that support regular expressions and expressions that follow\nAPI improvement proposal AIP-160.\nThese two types of filter expressions cannot be mixed in one request.\n\nIf you want to use AIP-160, your expression must specify the field name, an\noperator, and the value that you want to use for filtering. The value\nmust be a string, a number, or a boolean. The operator\nmust be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`.\n\nFor example, if you are filtering Compute Engine instances, you can\nexclude instances named `example-instance` by specifying\n`name != example-instance`.\n\nThe `:*` comparison can be used to test whether a key has been defined.\nFor example, to find all objects with `owner` label use:\n```\nlabels.owner:*\n```\n\nYou can also filter nested fields. For example, you could specify\n`scheduling.automaticRestart = false` to include instances only\nif they are not scheduled for automatic restarts. You can use filtering\non nested fields to filter based onresource labels.\n\nTo filter on multiple expressions, provide each separate expression within\nparentheses. For example:\n```\n(scheduling.automaticRestart = true)\n(cpuPlatform = \"Intel Skylake\")\n```\nBy default, each expression is an `AND` expression. However, you\ncan include `AND` and `OR` expressions explicitly.\nFor example:\n```\n(cpuPlatform = \"Intel Skylake\") OR\n(cpuPlatform = \"Intel Broadwell\") AND\n(scheduling.automaticRestart = true)\n```\n\nIf you want to use a regular expression, use the `eq` (equal) or `ne`\n(not equal) operator against a single un-parenthesized expression with or\nwithout quotes or against multiple parenthesized expressions. Examples:\n\n`fieldname eq unquoted literal`\n`fieldname eq 'single quoted literal'`\n`fieldname eq \"double quoted literal\"`\n`(fieldname1 eq literal) (fieldname2 ne \"literal\")`\n\nThe literal value is interpreted as a regular expression using GoogleRE2 library syntax.\nThe literal value must match the entire field.\n\nFor example, to filter for instances that do not end with name \"instance\",\nyou would use `name ne .*instance`.\n\nYou cannot combine constraints on multiple fields using regular\nexpressions.", + "location": "query", "type": "string" }, - "region": { - "description": "Name of the region scoping this request.", + "instanceGroupManager": { + "description": "The name of the managed instance group.\nIt must be a string that meets the requirements in RFC1035, or an\nunsigned long integer: must match regexp pattern:\n(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?)|1-9{0,19}.", "location": "path", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", "required": true, "type": "string" }, - "requestId": { - "description": "begin_interface: MixerMutationRequestBuilder Request ID to support idempotency.", + "maxResults": { + "default": "500", + "description": "The maximum number of results per page that should be returned.\nIf the number of available results is larger than `maxResults`,\nCompute Engine returns a `nextPageToken` that can be used to get\nthe next page of results in subsequent list requests. Acceptable values are\n`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\nare returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation\ntimestamp using `orderBy=\"creationTimestamp desc\"`. This sorts\nresults based on the `creationTimestamp` field in\nreverse chronological order (newest result first). Use this to sort\nresources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or\n`creationTimestamp desc` is supported.", "location": "query", "type": "string" }, - "urlMap": { - "description": "Name of the UrlMap resource to delete.", - "location": "path", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "required": true, + "pageToken": { + "description": "Specifies a page token to use. Set `pageToken` to the\n`nextPageToken` returned by a previous list request to get\nthe next page of results.", + "location": "query", "type": "string" - } - }, - "path": "projects/{project}/regions/{region}/urlMaps/{urlMap}", - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ] - }, - "get": { - "description": "Returns the specified UrlMap resource.", - "flatPath": "projects/{project}/regions/{region}/urlMaps/{urlMap}", - "httpMethod": "GET", - "id": "compute.regionUrlMaps.get", - "parameterOrder": [ - "project", - "region", - "urlMap" - ], - "parameters": { + }, "project": { "description": "Project ID for this request.", "location": "path", @@ -27634,23 +29271,20 @@ "type": "string" }, "region": { - "description": "Name of the region scoping this request.", + "description": "Name of the region scoping this request.\nThis should conform to RFC1035.", "location": "path", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", "required": true, "type": "string" }, - "urlMap": { - "description": "Name of the UrlMap resource to return.", - "location": "path", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "required": true, - "type": "string" + "returnPartialSuccess": { + "description": "Opt-in for partial success behavior which provides partial results in case\nof failure. The default value is false.\n\nFor example, when partial success behavior is enabled, aggregatedList for a\nsingle zone scope either returns all resources in the zone or no resources,\nwith an error code.", + "location": "query", + "type": "boolean" } }, - "path": "projects/{project}/regions/{region}/urlMaps/{urlMap}", + "path": "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/listErrors", "response": { - "$ref": "UrlMap" + "$ref": "RegionInstanceGroupManagersListErrorsResponse" }, "scopes": [ "https://www.googleapis.com/auth/cloud-platform", @@ -27658,16 +29292,46 @@ "https://www.googleapis.com/auth/compute.readonly" ] }, - "insert": { - "description": "Creates a UrlMap resource in the specified project using the data included in the request.", - "flatPath": "projects/{project}/regions/{region}/urlMaps", + "listManagedInstances": { + "description": "Lists the instances in the managed instance group and instances that are\nscheduled to be created. The list includes any current actions\nthat the group has scheduled for its instances. The orderBy\nquery parameter is not supported. The `pageToken` query parameter is\nsupported only if the group's `listManagedInstancesResults` field is set\nto `PAGINATED`.", + "flatPath": "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/listManagedInstances", "httpMethod": "POST", - "id": "compute.regionUrlMaps.insert", + "id": "compute.regionInstanceGroupManagers.listManagedInstances", "parameterOrder": [ "project", - "region" + "region", + "instanceGroupManager" ], "parameters": { + "filter": { + "description": "A filter expression that filters resources listed in the response. Most\nCompute resources support two types of filter expressions:\nexpressions that support regular expressions and expressions that follow\nAPI improvement proposal AIP-160.\nThese two types of filter expressions cannot be mixed in one request.\n\nIf you want to use AIP-160, your expression must specify the field name, an\noperator, and the value that you want to use for filtering. The value\nmust be a string, a number, or a boolean. The operator\nmust be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`.\n\nFor example, if you are filtering Compute Engine instances, you can\nexclude instances named `example-instance` by specifying\n`name != example-instance`.\n\nThe `:*` comparison can be used to test whether a key has been defined.\nFor example, to find all objects with `owner` label use:\n```\nlabels.owner:*\n```\n\nYou can also filter nested fields. For example, you could specify\n`scheduling.automaticRestart = false` to include instances only\nif they are not scheduled for automatic restarts. You can use filtering\non nested fields to filter based onresource labels.\n\nTo filter on multiple expressions, provide each separate expression within\nparentheses. For example:\n```\n(scheduling.automaticRestart = true)\n(cpuPlatform = \"Intel Skylake\")\n```\nBy default, each expression is an `AND` expression. However, you\ncan include `AND` and `OR` expressions explicitly.\nFor example:\n```\n(cpuPlatform = \"Intel Skylake\") OR\n(cpuPlatform = \"Intel Broadwell\") AND\n(scheduling.automaticRestart = true)\n```\n\nIf you want to use a regular expression, use the `eq` (equal) or `ne`\n(not equal) operator against a single un-parenthesized expression with or\nwithout quotes or against multiple parenthesized expressions. Examples:\n\n`fieldname eq unquoted literal`\n`fieldname eq 'single quoted literal'`\n`fieldname eq \"double quoted literal\"`\n`(fieldname1 eq literal) (fieldname2 ne \"literal\")`\n\nThe literal value is interpreted as a regular expression using GoogleRE2 library syntax.\nThe literal value must match the entire field.\n\nFor example, to filter for instances that do not end with name \"instance\",\nyou would use `name ne .*instance`.\n\nYou cannot combine constraints on multiple fields using regular\nexpressions.", + "location": "query", + "type": "string" + }, + "instanceGroupManager": { + "description": "The name of the managed instance group.", + "location": "path", + "required": true, + "type": "string" + }, + "maxResults": { + "default": "500", + "description": "The maximum number of results per page that should be returned.\nIf the number of available results is larger than `maxResults`,\nCompute Engine returns a `nextPageToken` that can be used to get\nthe next page of results in subsequent list requests. Acceptable values are\n`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\nare returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation\ntimestamp using `orderBy=\"creationTimestamp desc\"`. This sorts\nresults based on the `creationTimestamp` field in\nreverse chronological order (newest result first). Use this to sort\nresources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or\n`creationTimestamp desc` is supported.", + "location": "query", + "type": "string" + }, + "pageToken": { + "description": "Specifies a page token to use. Set `pageToken` to the\n`nextPageToken` returned by a previous list request to get\nthe next page of results.", + "location": "query", + "type": "string" + }, "project": { "description": "Project ID for this request.", "location": "path", @@ -27678,58 +29342,62 @@ "region": { "description": "Name of the region scoping this request.", "location": "path", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", "required": true, "type": "string" }, - "requestId": { - "description": "begin_interface: MixerMutationRequestBuilder Request ID to support idempotency.", + "returnPartialSuccess": { + "description": "Opt-in for partial success behavior which provides partial results in case\nof failure. The default value is false.\n\nFor example, when partial success behavior is enabled, aggregatedList for a\nsingle zone scope either returns all resources in the zone or no resources,\nwith an error code.", "location": "query", - "type": "string" + "type": "boolean" } }, - "path": "projects/{project}/regions/{region}/urlMaps", - "request": { - "$ref": "UrlMap" - }, + "path": "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/listManagedInstances", "response": { - "$ref": "Operation" + "$ref": "RegionInstanceGroupManagersListInstancesResponse" }, "scopes": [ "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" ] }, - "list": { - "description": "Retrieves the list of UrlMap resources available to the specified project in the specified region.", - "flatPath": "projects/{project}/regions/{region}/urlMaps", - "httpMethod": "GET", - "id": "compute.regionUrlMaps.list", + "listPerInstanceConfigs": { + "description": "Lists all of the per-instance configurations defined for the managed\ninstance group. The orderBy query parameter is not supported.", + "flatPath": "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/listPerInstanceConfigs", + "httpMethod": "POST", + "id": "compute.regionInstanceGroupManagers.listPerInstanceConfigs", "parameterOrder": [ "project", - "region" + "region", + "instanceGroupManager" ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` 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) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.", + "description": "A filter expression that filters resources listed in the response. Most\nCompute resources support two types of filter expressions:\nexpressions that support regular expressions and expressions that follow\nAPI improvement proposal AIP-160.\nThese two types of filter expressions cannot be mixed in one request.\n\nIf you want to use AIP-160, your expression must specify the field name, an\noperator, and the value that you want to use for filtering. The value\nmust be a string, a number, or a boolean. The operator\nmust be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`.\n\nFor example, if you are filtering Compute Engine instances, you can\nexclude instances named `example-instance` by specifying\n`name != example-instance`.\n\nThe `:*` comparison can be used to test whether a key has been defined.\nFor example, to find all objects with `owner` label use:\n```\nlabels.owner:*\n```\n\nYou can also filter nested fields. For example, you could specify\n`scheduling.automaticRestart = false` to include instances only\nif they are not scheduled for automatic restarts. You can use filtering\non nested fields to filter based onresource labels.\n\nTo filter on multiple expressions, provide each separate expression within\nparentheses. For example:\n```\n(scheduling.automaticRestart = true)\n(cpuPlatform = \"Intel Skylake\")\n```\nBy default, each expression is an `AND` expression. However, you\ncan include `AND` and `OR` expressions explicitly.\nFor example:\n```\n(cpuPlatform = \"Intel Skylake\") OR\n(cpuPlatform = \"Intel Broadwell\") AND\n(scheduling.automaticRestart = true)\n```\n\nIf you want to use a regular expression, use the `eq` (equal) or `ne`\n(not equal) operator against a single un-parenthesized expression with or\nwithout quotes or against multiple parenthesized expressions. Examples:\n\n`fieldname eq unquoted literal`\n`fieldname eq 'single quoted literal'`\n`fieldname eq \"double quoted literal\"`\n`(fieldname1 eq literal) (fieldname2 ne \"literal\")`\n\nThe literal value is interpreted as a regular expression using GoogleRE2 library syntax.\nThe literal value must match the entire field.\n\nFor example, to filter for instances that do not end with name \"instance\",\nyou would use `name ne .*instance`.\n\nYou cannot combine constraints on multiple fields using regular\nexpressions.", "location": "query", "type": "string" }, + "instanceGroupManager": { + "description": "The name of the managed instance group. It should conform to RFC1035.", + "location": "path", + "required": true, + "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`)", + "description": "The maximum number of results per page that should be returned.\nIf the number of available results is larger than `maxResults`,\nCompute Engine returns a `nextPageToken` that can be used to get\nthe next page of results in subsequent list requests. Acceptable values are\n`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. 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.", + "description": "Sorts list results by a certain order. By default, results\nare returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation\ntimestamp using `orderBy=\"creationTimestamp desc\"`. This sorts\nresults based on the `creationTimestamp` field in\nreverse chronological order (newest result first). Use this to sort\nresources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or\n`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.", + "description": "Specifies a page token to use. Set `pageToken` to the\n`nextPageToken` returned by a previous list request to get\nthe next page of results.", "location": "query", "type": "string" }, @@ -27741,21 +29409,20 @@ "type": "string" }, "region": { - "description": "Name of the region scoping this request.", + "description": "Name of the region scoping this request, should conform to RFC1035.", "location": "path", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", "required": true, "type": "string" }, "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", + "description": "Opt-in for partial success behavior which provides partial results in case\nof failure. The default value is false.\n\nFor example, when partial success behavior is enabled, aggregatedList for a\nsingle zone scope either returns all resources in the zone or no resources,\nwith an error code.", "location": "query", "type": "boolean" } }, - "path": "projects/{project}/regions/{region}/urlMaps", + "path": "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/listPerInstanceConfigs", "response": { - "$ref": "UrlMapList" + "$ref": "RegionInstanceGroupManagersListInstanceConfigsResp" }, "scopes": [ "https://www.googleapis.com/auth/cloud-platform", @@ -27764,16 +29431,22 @@ ] }, "patch": { - "description": "Patches the specified UrlMap resource with the data included in the request. This method supports PATCH semantics and uses JSON merge patch format and processing rules.", - "flatPath": "projects/{project}/regions/{region}/urlMaps/{urlMap}", + "description": "Updates a managed instance group using the information that you specify\nin the request.\nThis operation is marked as DONE when the group is patched\neven if the instances in the group are still in the process of being\npatched. You must separately verify the status of the individual instances\nwith the listmanagedinstances\nmethod. This method supportsPATCH\nsemantics and uses theJSON merge\npatch format and processing rules.\n\nIf you update your group to specify a new template or instance\nconfiguration, it's possible that your intended specification for each VM\nin the group is different from the current state of that VM. To learn how\nto apply an updated configuration to the VMs in a MIG, seeUpdating instances in\na MIG.", + "flatPath": "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}", "httpMethod": "PATCH", - "id": "compute.regionUrlMaps.patch", + "id": "compute.regionInstanceGroupManagers.patch", "parameterOrder": [ "project", "region", - "urlMap" + "instanceGroupManager" ], "parameters": { + "instanceGroupManager": { + "description": "The name of the instance group manager.", + "location": "path", + "required": true, + "type": "string" + }, "project": { "description": "Project ID for this request.", "location": "path", @@ -27784,26 +29457,18 @@ "region": { "description": "Name of the region scoping this request.", "location": "path", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", "required": true, "type": "string" }, "requestId": { - "description": "begin_interface: MixerMutationRequestBuilder Request ID to support idempotency.", + "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).", "location": "query", "type": "string" - }, - "urlMap": { - "description": "Name of the UrlMap resource to patch.", - "location": "path", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "required": true, - "type": "string" } }, - "path": "projects/{project}/regions/{region}/urlMaps/{urlMap}", + "path": "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}", "request": { - "$ref": "UrlMap" + "$ref": "InstanceGroupManager" }, "response": { "$ref": "Operation" @@ -27813,17 +29478,23 @@ "https://www.googleapis.com/auth/compute" ] }, - "update": { - "description": "Updates the specified UrlMap resource with the data included in the request.", - "flatPath": "projects/{project}/regions/{region}/urlMaps/{urlMap}", - "httpMethod": "PUT", - "id": "compute.regionUrlMaps.update", + "patchPerInstanceConfigs": { + "description": "Inserts or patches per-instance configurations for the managed instance\ngroup. perInstanceConfig.name serves as a key used to\ndistinguish whether to perform insert or patch.", + "flatPath": "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/patchPerInstanceConfigs", + "httpMethod": "POST", + "id": "compute.regionInstanceGroupManagers.patchPerInstanceConfigs", "parameterOrder": [ "project", "region", - "urlMap" + "instanceGroupManager" ], "parameters": { + "instanceGroupManager": { + "description": "The name of the managed instance group.\nIt should conform to RFC1035.", + "location": "path", + "required": true, + "type": "string" + }, "project": { "description": "Project ID for this request.", "location": "path", @@ -27832,28 +29503,20 @@ "type": "string" }, "region": { - "description": "Name of the region scoping this request.", + "description": "Name of the region scoping this request, should conform to RFC1035.", "location": "path", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", "required": true, "type": "string" }, "requestId": { - "description": "begin_interface: MixerMutationRequestBuilder Request ID to support idempotency.", + "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).", "location": "query", "type": "string" - }, - "urlMap": { - "description": "Name of the UrlMap resource to update.", - "location": "path", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "required": true, - "type": "string" } }, - "path": "projects/{project}/regions/{region}/urlMaps/{urlMap}", + "path": "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/patchPerInstanceConfigs", "request": { - "$ref": "UrlMap" + "$ref": "RegionInstanceGroupManagerPatchInstanceConfigReq" }, "response": { "$ref": "Operation" @@ -27863,17 +29526,29 @@ "https://www.googleapis.com/auth/compute" ] }, - "validate": { - "description": "Runs static validation for the UrlMap. In particular, the tests of the provided UrlMap will be run. Calling this method does NOT create the UrlMap.", - "flatPath": "projects/{project}/regions/{region}/urlMaps/{urlMap}/validate", + "recreateInstances": { + "description": "Flags the specified VM instances in the managed instance group to be\nimmediately recreated. Each instance is recreated using the group's current\nconfiguration. This operation is marked as DONE when the flag\nis set even if the instances have not yet been recreated. You must\nseparately verify the status of each instance by checking itscurrentAction field; for more information, see Checking\nthe status of managed instances.\n\nIf the group is part of a backend\nservice that has enabled\nconnection draining, it can take up to 60 seconds after the connection\ndraining duration has elapsed before the VM instance is removed or deleted.\n\nYou can specify a maximum of 1000 instances with this method per request.", + "flatPath": "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/recreateInstances", "httpMethod": "POST", - "id": "compute.regionUrlMaps.validate", + "id": "compute.regionInstanceGroupManagers.recreateInstances", "parameterOrder": [ "project", "region", - "urlMap" + "instanceGroupManager" ], "parameters": { + "instanceGroupManager": { + "description": "Name of the managed instance group.", + "location": "path", + "required": true, + "type": "string" + }, + "noGracefulShutdown": { + "default": "false", + "description": "When set, graceful shutdown is skipped for instance recreation even if it's\nconfigured for the instances.", + "location": "query", + "type": "boolean" + }, "project": { "description": "Project ID for this request.", "location": "path", @@ -27884,65 +29559,43 @@ "region": { "description": "Name of the region scoping this request.", "location": "path", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", "required": true, "type": "string" }, - "urlMap": { - "description": "Name of the UrlMap resource to be validated as.", - "location": "path", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "required": true, + "requestId": { + "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).", + "location": "query", "type": "string" } }, - "path": "projects/{project}/regions/{region}/urlMaps/{urlMap}/validate", + "path": "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/recreateInstances", "request": { - "$ref": "RegionUrlMapsValidateRequest" + "$ref": "RegionInstanceGroupManagersRecreateRequest" }, "response": { - "$ref": "UrlMapsValidateResponse" + "$ref": "Operation" }, "scopes": [ "https://www.googleapis.com/auth/cloud-platform", "https://www.googleapis.com/auth/compute" ] - } - } - }, - "regionZones": { - "methods": { - "list": { - "description": "Retrieves the list of Zone resources under the specific region available to the specified project.", - "flatPath": "projects/{project}/regions/{region}/zones", - "httpMethod": "GET", - "id": "compute.regionZones.list", + }, + "resize": { + "description": "Changes the intended size of the managed instance group. If you increase\nthe size, the group creates new instances using the current instance\ntemplate. If you decrease the size, the group deletes one or more\ninstances.\n\nThe resize operation is marked DONE if theresize request is successful. The underlying actions take\nadditional time. You must separately verify the status of thecreating or deleting actions with thelistmanagedinstances\nmethod.\n\nIf the group is part of a backend\nservice that has enabled\nconnection draining, it can take up to 60 seconds after the connection\ndraining duration has elapsed before the VM instance is removed or deleted.", + "flatPath": "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/resize", + "httpMethod": "POST", + "id": "compute.regionInstanceGroupManagers.resize", "parameterOrder": [ "project", - "region" + "region", + "instanceGroupManager", + "size" ], "parameters": { - "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` 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) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.", - "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. 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.", - "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", + "instanceGroupManager": { + "description": "Name of the managed instance group.", + "location": "path", + "required": true, "type": "string" }, "project": { @@ -27953,42 +29606,51 @@ "type": "string" }, "region": { - "description": "Region for this request.", + "description": "Name of the region scoping this request.", "location": "path", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", "required": true, "type": "string" }, - "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", + "requestId": { + "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).", "location": "query", - "type": "boolean" + "type": "string" + }, + "size": { + "description": "Number of instances that should exist in this instance group\nmanager.", + "format": "int32", + "location": "query", + "minimum": "0", + "required": true, + "type": "integer" } }, - "path": "projects/{project}/regions/{region}/zones", + "path": "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/resize", "response": { - "$ref": "ZoneList" + "$ref": "Operation" }, "scopes": [ "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" + "https://www.googleapis.com/auth/compute" ] - } - } - }, - "regions": { - "methods": { - "get": { - "description": "Returns the specified Region resource. To decrease latency for this method, you can optionally omit any unneeded information from the response by using a field mask. This practice is especially recommended for unused quota information (the `quotas` field). To exclude one or more fields, set your request's `fields` query parameter to only include the fields you need. For example, to only include the `id` and `selfLink` fields, add the query parameter `?fields=id,selfLink` to your request.", - "flatPath": "projects/{project}/regions/{region}", - "httpMethod": "GET", - "id": "compute.regions.get", + }, + "resumeInstances": { + "description": "Flags the specified instances in the managed instance group to be\nresumed. This method increases thetargetSize and decreases the targetSuspendedSize\nof the managed instance group by the number of instances that you resume.\nThe resumeInstances operation is marked DONE if\nthe resumeInstances request is successful. The underlying\nactions take additional time. You must separately verify the status of theRESUMING action with thelistmanagedinstances\nmethod.\n\nIn this request, you can only specify instances that are suspended. For\nexample, if an instance was previously suspended using the suspendInstances\nmethod, it can be resumed using the resumeInstances method.\n\nIf a health check is attached to the managed instance group, the specified\ninstances will be verified as healthy after they are resumed.\n\nYou can specify a maximum of 1000 instances with this method per request.", + "flatPath": "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/resumeInstances", + "httpMethod": "POST", + "id": "compute.regionInstanceGroupManagers.resumeInstances", "parameterOrder": [ "project", - "region" + "region", + "instanceGroupManager" ], "parameters": { + "instanceGroupManager": { + "description": "Name of the managed instance group.", + "location": "path", + "required": true, + "type": "string" + }, "project": { "description": "Project ID for this request.", "location": "path", @@ -27997,53 +29659,44 @@ "type": "string" }, "region": { - "description": "Name of the region resource to return.", + "description": "Name of the region scoping this request.", "location": "path", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", "required": true, "type": "string" + }, + "requestId": { + "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).", + "location": "query", + "type": "string" } }, - "path": "projects/{project}/regions/{region}", + "path": "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/resumeInstances", + "request": { + "$ref": "RegionInstanceGroupManagersResumeInstancesRequest" + }, "response": { - "$ref": "Region" + "$ref": "Operation" }, "scopes": [ "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" + "https://www.googleapis.com/auth/compute" ] }, - "list": { - "description": "Retrieves the list of region resources available to the specified project. To decrease latency for this method, you can optionally omit any unneeded information from the response by using a field mask. This practice is especially recommended for unused quota information (the `items.quotas` field). To exclude one or more fields, set your request's `fields` query parameter to only include the fields you need. For example, to only include the `id` and `selfLink` fields, add the query parameter `?fields=id,selfLink` to your request.", - "flatPath": "projects/{project}/regions", - "httpMethod": "GET", - "id": "compute.regions.list", + "setInstanceTemplate": { + "description": "Sets the instance template to use when creating new instances or recreating\ninstances in this group. Existing instances are not affected.", + "flatPath": "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/setInstanceTemplate", + "httpMethod": "POST", + "id": "compute.regionInstanceGroupManagers.setInstanceTemplate", "parameterOrder": [ - "project" + "project", + "region", + "instanceGroupManager" ], "parameters": { - "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` 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) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.", - "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. 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.", - "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", + "instanceGroupManager": { + "description": "The name of the managed instance group.", + "location": "path", + "required": true, "type": "string" }, "project": { @@ -28053,61 +29706,45 @@ "required": true, "type": "string" }, - "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", + "region": { + "description": "Name of the region scoping this request.", + "location": "path", + "required": true, + "type": "string" + }, + "requestId": { + "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).", "location": "query", - "type": "boolean" + "type": "string" } }, - "path": "projects/{project}/regions", + "path": "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/setInstanceTemplate", + "request": { + "$ref": "RegionInstanceGroupManagersSetTemplateRequest" + }, "response": { - "$ref": "RegionList" + "$ref": "Operation" }, "scopes": [ "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" + "https://www.googleapis.com/auth/compute" ] - } - } - }, - "reservations": { - "methods": { - "aggregatedList": { - "description": "Retrieves an aggregated list of reservations. To prevent failure, Google recommends that you set the `returnPartialSuccess` parameter to `true`.", - "flatPath": "projects/{project}/aggregated/reservations", - "httpMethod": "GET", - "id": "compute.reservations.aggregatedList", + }, + "setTargetPools": { + "description": "Modifies the target pools to which all new instances in this group are\nassigned. Existing instances in the group are not affected.", + "flatPath": "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/setTargetPools", + "httpMethod": "POST", + "id": "compute.regionInstanceGroupManagers.setTargetPools", "parameterOrder": [ - "project" + "project", + "region", + "instanceGroupManager" ], "parameters": { - "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` 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) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.", - "location": "query", - "type": "string" - }, - "includeAllScopes": { - "description": "Indicates whether every visible scope for each scope type (zone, region, global) should be included in the response. For new resource types added after this field, the flag has no effect as new resource types will always include every visible scope for each scope type in response. For resource types which predate this field, if this flag is omitted or false, only scopes of the scope types where the resource type is expected to be found will be included.", - "location": "query", - "type": "boolean" - }, - "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. 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.", - "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", + "instanceGroupManager": { + "description": "Name of the managed instance group.", + "location": "path", + "required": true, "type": "string" }, "project": { @@ -28117,39 +29754,47 @@ "required": true, "type": "string" }, - "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", - "location": "query", - "type": "boolean" + "region": { + "description": "Name of the region scoping this request.", + "location": "path", + "required": true, + "type": "string" }, - "serviceProjectNumber": { - "description": "The Shared VPC service project id or service project number for which aggregated list request is invoked for subnetworks list-usable api.", - "format": "int64", + "requestId": { + "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).", "location": "query", "type": "string" } }, - "path": "projects/{project}/aggregated/reservations", + "path": "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/setTargetPools", + "request": { + "$ref": "RegionInstanceGroupManagersSetTargetPoolsRequest" + }, "response": { - "$ref": "ReservationAggregatedList" + "$ref": "Operation" }, "scopes": [ "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" + "https://www.googleapis.com/auth/compute" ] }, - "delete": { - "description": "Deletes the specified reservation.", - "flatPath": "projects/{project}/zones/{zone}/reservations/{reservation}", - "httpMethod": "DELETE", - "id": "compute.reservations.delete", + "startInstances": { + "description": "Flags the specified instances in the managed instance group to be\nstarted. This method increases thetargetSize and decreases the targetStoppedSize\nof the managed instance group by the number of instances that you start.\nThe startInstances operation is marked DONE if\nthe startInstances request is successful. The underlying\nactions take additional time. You must separately verify the status of theSTARTING action with thelistmanagedinstances\nmethod.\n\nIn this request, you can only specify instances that are stopped. For\nexample, if an instance was previously stopped using the stopInstances\nmethod, it can be started using the startInstances method.\n\nIf a health check is attached to the managed instance group, the specified\ninstances will be verified as healthy after they are started.\n\nYou can specify a maximum of 1000 instances with this method per request.", + "flatPath": "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/startInstances", + "httpMethod": "POST", + "id": "compute.regionInstanceGroupManagers.startInstances", "parameterOrder": [ "project", - "zone", - "reservation" + "region", + "instanceGroupManager" ], "parameters": { + "instanceGroupManager": { + "description": "Name of the managed instance group.", + "location": "path", + "required": true, + "type": "string" + }, "project": { "description": "Project ID for this request.", "location": "path", @@ -28157,27 +29802,22 @@ "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. 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).", - "location": "query", - "type": "string" - }, - "reservation": { - "description": "Name of the reservation to delete.", + "region": { + "description": "Name of the region scoping this request.", "location": "path", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", "required": true, "type": "string" }, - "zone": { - "description": "Name of the zone for this request.", - "location": "path", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "required": true, + "requestId": { + "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).", + "location": "query", "type": "string" } }, - "path": "projects/{project}/zones/{zone}/reservations/{reservation}", + "path": "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/startInstances", + "request": { + "$ref": "RegionInstanceGroupManagersStartInstancesRequest" + }, "response": { "$ref": "Operation" }, @@ -28186,17 +29826,29 @@ "https://www.googleapis.com/auth/compute" ] }, - "get": { - "description": "Retrieves information about the specified reservation.", - "flatPath": "projects/{project}/zones/{zone}/reservations/{reservation}", - "httpMethod": "GET", - "id": "compute.reservations.get", + "stopInstances": { + "description": "Flags the specified instances in the managed instance group to be\nimmediately stopped. You can only specify instances that are running in\nthis request. This method reduces thetargetSize and increases the targetStoppedSize\nof the managed instance group by the number of instances that you stop.\nThe stopInstances operation is marked DONE if\nthe stopInstances request is successful. The underlying\nactions take additional time. You must separately verify the status of theSTOPPING action with thelistmanagedinstances\nmethod.\n\nIf the standbyPolicy.initialDelaySec field is set, the group\ndelays stopping the instances until initialDelaySec have\npassed from instance.creationTimestamp (that is, when the\ninstance was created). This delay gives your application time to\nset itself up and initialize on the instance. If more thaninitialDelaySec seconds have passed sinceinstance.creationTimestamp when this method is called, there\nwill be zero delay.\n\nIf the group is part of a backend\nservice that has enabled\nconnection draining, it can take up to 60 seconds after the connection\ndraining duration has elapsed before the VM instance is stopped.\n\nStopped instances can be started using the startInstances\nmethod.\n\nYou can specify a maximum of 1000 instances with this method per request.", + "flatPath": "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/stopInstances", + "httpMethod": "POST", + "id": "compute.regionInstanceGroupManagers.stopInstances", "parameterOrder": [ "project", - "zone", - "reservation" + "region", + "instanceGroupManager" ], "parameters": { + "instanceGroupManager": { + "description": "The name of the managed instance group.", + "location": "path", + "required": true, + "type": "string" + }, + "noGracefulShutdown": { + "default": "false", + "description": "When set, graceful shutdown is skipped for instance stopping even if it's\nconfigured for the instances.", + "location": "query", + "type": "boolean" + }, "project": { "description": "Project ID for this request.", "location": "path", @@ -28204,47 +29856,46 @@ "required": true, "type": "string" }, - "reservation": { - "description": "Name of the reservation to retrieve.", + "region": { + "description": "Name of the region scoping this request.", "location": "path", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", "required": true, "type": "string" }, - "zone": { - "description": "Name of the zone for this request.", - "location": "path", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "required": true, + "requestId": { + "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).", + "location": "query", "type": "string" } }, - "path": "projects/{project}/zones/{zone}/reservations/{reservation}", + "path": "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/stopInstances", + "request": { + "$ref": "RegionInstanceGroupManagersStopInstancesRequest" + }, "response": { - "$ref": "Reservation" + "$ref": "Operation" }, "scopes": [ "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" + "https://www.googleapis.com/auth/compute" ] }, - "getIamPolicy": { - "description": "Gets the access control policy for a resource. May be empty if no such policy or resource exists.", - "flatPath": "projects/{project}/zones/{zone}/reservations/{resource}/getIamPolicy", - "httpMethod": "GET", - "id": "compute.reservations.getIamPolicy", + "suspendInstances": { + "description": "Flags the specified instances in the managed instance group to be\nimmediately suspended. You can only specify instances that are running in\nthis request. This method reduces thetargetSize and increases the targetSuspendedSize\nof the managed instance group by the number of instances that you suspend.\nThe suspendInstances operation is marked DONE if\nthe suspendInstances request is successful. The underlying\nactions take additional time. You must separately verify the status of theSUSPENDING action with thelistmanagedinstances\nmethod.\n\nIf the standbyPolicy.initialDelaySec field is set, the group\ndelays suspension of the instances until initialDelaySec have\npassed from instance.creationTimestamp (that is, when the\ninstance was created). This delay gives your application time to\nset itself up and initialize on the instance. If more thaninitialDelaySec seconds have passed sinceinstance.creationTimestamp when this method is called, there\nwill be zero delay.\n\nIf the group is part of a backend\nservice that has enabled\nconnection draining, it can take up to 60 seconds after the connection\ndraining duration has elapsed before the VM instance is suspended.\n\nSuspended instances can be resumed using the resumeInstances\nmethod.\n\nYou can specify a maximum of 1000 instances with this method per request.", + "flatPath": "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/suspendInstances", + "httpMethod": "POST", + "id": "compute.regionInstanceGroupManagers.suspendInstances", "parameterOrder": [ "project", - "zone", - "resource" + "region", + "instanceGroupManager" ], "parameters": { - "optionsRequestedPolicyVersion": { - "description": "Requested IAM Policy version.", - "format": "int32", - "location": "query", - "type": "integer" + "instanceGroupManager": { + "description": "Name of the managed instance group.", + "location": "path", + "required": true, + "type": "string" }, "project": { "description": "Project ID for this request.", @@ -28253,41 +29904,47 @@ "required": true, "type": "string" }, - "resource": { - "description": "Name or id of the resource for this request.", + "region": { + "description": "Name of the region scoping this request.", "location": "path", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", "required": true, "type": "string" }, - "zone": { - "description": "The name of the zone for this request.", - "location": "path", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "required": true, + "requestId": { + "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).", + "location": "query", "type": "string" } }, - "path": "projects/{project}/zones/{zone}/reservations/{resource}/getIamPolicy", + "path": "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/suspendInstances", + "request": { + "$ref": "RegionInstanceGroupManagersSuspendInstancesRequest" + }, "response": { - "$ref": "Policy" + "$ref": "Operation" }, "scopes": [ "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" + "https://www.googleapis.com/auth/compute" ] }, - "insert": { - "description": "Creates a new reservation. For more information, read Reserving zonal resources.", - "flatPath": "projects/{project}/zones/{zone}/reservations", + "updatePerInstanceConfigs": { + "description": "Inserts or updates per-instance configurations for the managed instance\ngroup. perInstanceConfig.name serves as a key used to\ndistinguish whether to perform insert or patch.", + "flatPath": "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/updatePerInstanceConfigs", "httpMethod": "POST", - "id": "compute.reservations.insert", + "id": "compute.regionInstanceGroupManagers.updatePerInstanceConfigs", "parameterOrder": [ "project", - "zone" + "region", + "instanceGroupManager" ], "parameters": { + "instanceGroupManager": { + "description": "The name of the managed instance group.\nIt should conform to RFC1035.", + "location": "path", + "required": true, + "type": "string" + }, "project": { "description": "Project ID for this request.", "location": "path", @@ -28295,22 +29952,21 @@ "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. 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).", - "location": "query", - "type": "string" - }, - "zone": { - "description": "Name of the zone for this request.", + "region": { + "description": "Name of the region scoping this request, should conform to RFC1035.", "location": "path", - "pattern": "[a-z](?:[-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\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).", + "location": "query", + "type": "string" } }, - "path": "projects/{project}/zones/{zone}/reservations", + "path": "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/updatePerInstanceConfigs", "request": { - "$ref": "Reservation" + "$ref": "RegionInstanceGroupManagerUpdateInstanceConfigReq" }, "response": { "$ref": "Operation" @@ -28319,37 +29975,82 @@ "https://www.googleapis.com/auth/cloud-platform", "https://www.googleapis.com/auth/compute" ] + } + } + }, + "regionInstanceGroups": { + "methods": { + "get": { + "description": "Returns the specified instance group resource.", + "flatPath": "projects/{project}/regions/{region}/instanceGroups/{instanceGroup}", + "httpMethod": "GET", + "id": "compute.regionInstanceGroups.get", + "parameterOrder": [ + "project", + "region", + "instanceGroup" + ], + "parameters": { + "instanceGroup": { + "description": "Name of the instance group resource to return.", + "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" + }, + "region": { + "description": "Name of the region scoping this request.", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "projects/{project}/regions/{region}/instanceGroups/{instanceGroup}", + "response": { + "$ref": "InstanceGroup" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ] }, "list": { - "description": "A list of all the reservations that have been configured for the specified project in specified zone.", - "flatPath": "projects/{project}/zones/{zone}/reservations", + "description": "Retrieves the list of instance group resources contained within\nthe specified region.", + "flatPath": "projects/{project}/regions/{region}/instanceGroups", "httpMethod": "GET", - "id": "compute.reservations.list", + "id": "compute.regionInstanceGroups.list", "parameterOrder": [ "project", - "zone" + "region" ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` 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) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.", + "description": "A filter expression that filters resources listed in the response. Most\nCompute resources support two types of filter expressions:\nexpressions that support regular expressions and expressions that follow\nAPI improvement proposal AIP-160.\nThese two types of filter expressions cannot be mixed in one request.\n\nIf you want to use AIP-160, your expression must specify the field name, an\noperator, and the value that you want to use for filtering. The value\nmust be a string, a number, or a boolean. The operator\nmust be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`.\n\nFor example, if you are filtering Compute Engine instances, you can\nexclude instances named `example-instance` by specifying\n`name != example-instance`.\n\nThe `:*` comparison can be used to test whether a key has been defined.\nFor example, to find all objects with `owner` label use:\n```\nlabels.owner:*\n```\n\nYou can also filter nested fields. For example, you could specify\n`scheduling.automaticRestart = false` to include instances only\nif they are not scheduled for automatic restarts. You can use filtering\non nested fields to filter based onresource labels.\n\nTo filter on multiple expressions, provide each separate expression within\nparentheses. For example:\n```\n(scheduling.automaticRestart = true)\n(cpuPlatform = \"Intel Skylake\")\n```\nBy default, each expression is an `AND` expression. However, you\ncan include `AND` and `OR` expressions explicitly.\nFor example:\n```\n(cpuPlatform = \"Intel Skylake\") OR\n(cpuPlatform = \"Intel Broadwell\") AND\n(scheduling.automaticRestart = true)\n```\n\nIf you want to use a regular expression, use the `eq` (equal) or `ne`\n(not equal) operator against a single un-parenthesized expression with or\nwithout quotes or against multiple parenthesized expressions. Examples:\n\n`fieldname eq unquoted literal`\n`fieldname eq 'single quoted literal'`\n`fieldname eq \"double quoted literal\"`\n`(fieldname1 eq literal) (fieldname2 ne \"literal\")`\n\nThe literal value is interpreted as a regular expression using GoogleRE2 library syntax.\nThe literal value must match the entire field.\n\nFor example, to filter for instances that do not end with name \"instance\",\nyou would use `name ne .*instance`.\n\nYou cannot combine constraints on multiple fields using regular\nexpressions.", "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`)", + "description": "The maximum number of results per page that should be returned.\nIf the number of available results is larger than `maxResults`,\nCompute Engine returns a `nextPageToken` that can be used to get\nthe next page of results in subsequent list requests. Acceptable values are\n`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. 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.", + "description": "Sorts list results by a certain order. By default, results\nare returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation\ntimestamp using `orderBy=\"creationTimestamp desc\"`. This sorts\nresults based on the `creationTimestamp` field in\nreverse chronological order (newest result first). Use this to sort\nresources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or\n`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.", + "description": "Specifies a page token to use. Set `pageToken` to the\n`nextPageToken` returned by a previous list request to get\nthe next page of results.", "location": "query", "type": "string" }, @@ -28360,22 +30061,21 @@ "required": true, "type": "string" }, - "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", - "location": "query", - "type": "boolean" - }, - "zone": { - "description": "Name of the zone for this request.", + "region": { + "description": "Name of the region scoping this request.", "location": "path", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", "required": true, "type": "string" + }, + "returnPartialSuccess": { + "description": "Opt-in for partial success behavior which provides partial results in case\nof failure. The default value is false.\n\nFor example, when partial success behavior is enabled, aggregatedList for a\nsingle zone scope either returns all resources in the zone or no resources,\nwith an error code.", + "location": "query", + "type": "boolean" } }, - "path": "projects/{project}/zones/{zone}/reservations", + "path": "projects/{project}/regions/{region}/instanceGroups", "response": { - "$ref": "ReservationList" + "$ref": "RegionInstanceGroupList" }, "scopes": [ "https://www.googleapis.com/auth/cloud-platform", @@ -28383,67 +30083,95 @@ "https://www.googleapis.com/auth/compute.readonly" ] }, - "resize": { - "description": "Resizes the reservation (applicable to standalone reservations only). For more information, read Modifying reservations.", - "flatPath": "projects/{project}/zones/{zone}/reservations/{reservation}/resize", + "listInstances": { + "description": "Lists the instances in the specified instance group and displays\ninformation about the named ports. Depending on the specified options, this\nmethod can list all instances or only the instances that are running.\nThe orderBy query parameter is not supported.", + "flatPath": "projects/{project}/regions/{region}/instanceGroups/{instanceGroup}/listInstances", "httpMethod": "POST", - "id": "compute.reservations.resize", + "id": "compute.regionInstanceGroups.listInstances", "parameterOrder": [ "project", - "zone", - "reservation" + "region", + "instanceGroup" ], "parameters": { - "project": { - "description": "Project ID for this request.", + "filter": { + "description": "A filter expression that filters resources listed in the response. Most\nCompute resources support two types of filter expressions:\nexpressions that support regular expressions and expressions that follow\nAPI improvement proposal AIP-160.\nThese two types of filter expressions cannot be mixed in one request.\n\nIf you want to use AIP-160, your expression must specify the field name, an\noperator, and the value that you want to use for filtering. The value\nmust be a string, a number, or a boolean. The operator\nmust be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`.\n\nFor example, if you are filtering Compute Engine instances, you can\nexclude instances named `example-instance` by specifying\n`name != example-instance`.\n\nThe `:*` comparison can be used to test whether a key has been defined.\nFor example, to find all objects with `owner` label use:\n```\nlabels.owner:*\n```\n\nYou can also filter nested fields. For example, you could specify\n`scheduling.automaticRestart = false` to include instances only\nif they are not scheduled for automatic restarts. You can use filtering\non nested fields to filter based onresource labels.\n\nTo filter on multiple expressions, provide each separate expression within\nparentheses. For example:\n```\n(scheduling.automaticRestart = true)\n(cpuPlatform = \"Intel Skylake\")\n```\nBy default, each expression is an `AND` expression. However, you\ncan include `AND` and `OR` expressions explicitly.\nFor example:\n```\n(cpuPlatform = \"Intel Skylake\") OR\n(cpuPlatform = \"Intel Broadwell\") AND\n(scheduling.automaticRestart = true)\n```\n\nIf you want to use a regular expression, use the `eq` (equal) or `ne`\n(not equal) operator against a single un-parenthesized expression with or\nwithout quotes or against multiple parenthesized expressions. Examples:\n\n`fieldname eq unquoted literal`\n`fieldname eq 'single quoted literal'`\n`fieldname eq \"double quoted literal\"`\n`(fieldname1 eq literal) (fieldname2 ne \"literal\")`\n\nThe literal value is interpreted as a regular expression using GoogleRE2 library syntax.\nThe literal value must match the entire field.\n\nFor example, to filter for instances that do not end with name \"instance\",\nyou would use `name ne .*instance`.\n\nYou cannot combine constraints on multiple fields using regular\nexpressions.", + "location": "query", + "type": "string" + }, + "instanceGroup": { + "description": "Name of the regional instance group for which we want to list the\ninstances.", "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. 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).", + "maxResults": { + "default": "500", + "description": "The maximum number of results per page that should be returned.\nIf the number of available results is larger than `maxResults`,\nCompute Engine returns a `nextPageToken` that can be used to get\nthe next page of results in subsequent list requests. Acceptable values are\n`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\nare returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation\ntimestamp using `orderBy=\"creationTimestamp desc\"`. This sorts\nresults based on the `creationTimestamp` field in\nreverse chronological order (newest result first). Use this to sort\nresources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or\n`creationTimestamp desc` is supported.", "location": "query", "type": "string" }, - "reservation": { - "description": "Name of the reservation to update.", + "pageToken": { + "description": "Specifies a page token to use. Set `pageToken` to the\n`nextPageToken` returned by a previous list request to get\nthe next page of results.", + "location": "query", + "type": "string" + }, + "project": { + "description": "Project ID for this request.", "location": "path", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "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" }, - "zone": { - "description": "Name of the zone for this request.", + "region": { + "description": "Name of the region scoping this request.", "location": "path", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", "required": true, "type": "string" + }, + "returnPartialSuccess": { + "description": "Opt-in for partial success behavior which provides partial results in case\nof failure. The default value is false.\n\nFor example, when partial success behavior is enabled, aggregatedList for a\nsingle zone scope either returns all resources in the zone or no resources,\nwith an error code.", + "location": "query", + "type": "boolean" } }, - "path": "projects/{project}/zones/{zone}/reservations/{reservation}/resize", + "path": "projects/{project}/regions/{region}/instanceGroups/{instanceGroup}/listInstances", "request": { - "$ref": "ReservationsResizeRequest" + "$ref": "RegionInstanceGroupsListInstancesRequest" }, "response": { - "$ref": "Operation" + "$ref": "RegionInstanceGroupsListInstances" }, "scopes": [ "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" ] }, - "setIamPolicy": { - "description": "Sets the access control policy on the specified resource. Replaces any existing policy.", - "flatPath": "projects/{project}/zones/{zone}/reservations/{resource}/setIamPolicy", + "setNamedPorts": { + "description": "Sets the named ports for the specified regional instance group.", + "flatPath": "projects/{project}/regions/{region}/instanceGroups/{instanceGroup}/setNamedPorts", "httpMethod": "POST", - "id": "compute.reservations.setIamPolicy", + "id": "compute.regionInstanceGroups.setNamedPorts", "parameterOrder": [ "project", - "zone", - "resource" + "region", + "instanceGroup" ], "parameters": { + "instanceGroup": { + "description": "The name of the regional instance group where the named ports are updated.", + "location": "path", + "required": true, + "type": "string" + }, "project": { "description": "Project ID for this request.", "location": "path", @@ -28451,27 +30179,24 @@ "required": true, "type": "string" }, - "resource": { - "description": "Name or id of the resource for this request.", + "region": { + "description": "Name of the region scoping this request.", "location": "path", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", "required": true, "type": "string" }, - "zone": { - "description": "The name of the zone for this request.", - "location": "path", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "required": true, + "requestId": { + "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).", + "location": "query", "type": "string" } }, - "path": "projects/{project}/zones/{zone}/reservations/{resource}/setIamPolicy", + "path": "projects/{project}/regions/{region}/instanceGroups/{instanceGroup}/setNamedPorts", "request": { - "$ref": "ZoneSetPolicyRequest" + "$ref": "RegionInstanceGroupsSetNamedPortsRequest" }, "response": { - "$ref": "Policy" + "$ref": "Operation" }, "scopes": [ "https://www.googleapis.com/auth/cloud-platform", @@ -28480,12 +30205,12 @@ }, "testIamPermissions": { "description": "Returns permissions that a caller has on the specified resource.", - "flatPath": "projects/{project}/zones/{zone}/reservations/{resource}/testIamPermissions", + "flatPath": "projects/{project}/regions/{region}/instanceGroups/{resource}/testIamPermissions", "httpMethod": "POST", - "id": "compute.reservations.testIamPermissions", + "id": "compute.regionInstanceGroups.testIamPermissions", "parameterOrder": [ "project", - "zone", + "region", "resource" ], "parameters": { @@ -28496,22 +30221,22 @@ "required": true, "type": "string" }, - "resource": { - "description": "Name or id of the resource for this request.", + "region": { + "description": "The name of the region for this request.", "location": "path", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", "required": true, "type": "string" }, - "zone": { - "description": "The name of the zone for this request.", + "resource": { + "description": "Name or id of the resource for this request.", "location": "path", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", "required": true, "type": "string" } }, - "path": "projects/{project}/zones/{zone}/reservations/{resource}/testIamPermissions", + "path": "projects/{project}/regions/{region}/instanceGroups/{resource}/testIamPermissions", "request": { "$ref": "TestPermissionsRequest" }, @@ -28523,21 +30248,27 @@ "https://www.googleapis.com/auth/compute", "https://www.googleapis.com/auth/compute.readonly" ] - }, - "update": { - "description": "Update share settings of the reservation.", - "flatPath": "projects/{project}/zones/{zone}/reservations/{reservation}", - "httpMethod": "PATCH", - "id": "compute.reservations.update", + } + } + }, + "regionInstanceTemplates": { + "methods": { + "delete": { + "description": "Deletes the specified instance template. Deleting an instance template is\npermanent and cannot be undone.", + "flatPath": "projects/{project}/regions/{region}/instanceTemplates/{instanceTemplate}", + "httpMethod": "DELETE", + "id": "compute.regionInstanceTemplates.delete", "parameterOrder": [ "project", - "zone", - "reservation" + "region", + "instanceTemplate" ], "parameters": { - "paths": { - "location": "query", - "repeated": true, + "instanceTemplate": { + "description": "The name of the instance template to delete.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "required": true, "type": "string" }, "project": { @@ -28547,36 +30278,20 @@ "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. 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).", - "location": "query", - "type": "string" - }, - "reservation": { - "description": "Name of the reservation to update.", + "region": { + "description": "The name of the region for this request.", "location": "path", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", "required": true, "type": "string" }, - "updateMask": { - "description": "Update_mask indicates fields to be updated as part of this request.", - "format": "google-fieldmask", + "requestId": { + "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).", "location": "query", "type": "string" - }, - "zone": { - "description": "Name of the zone for this request.", - "location": "path", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "required": true, - "type": "string" } }, - "path": "projects/{project}/zones/{zone}/reservations/{reservation}", - "request": { - "$ref": "Reservation" - }, + "path": "projects/{project}/regions/{region}/instanceTemplates/{instanceTemplate}", "response": { "$ref": "Operation" }, @@ -28584,46 +30299,23 @@ "https://www.googleapis.com/auth/cloud-platform", "https://www.googleapis.com/auth/compute" ] - } - } - }, - "resourcePolicies": { - "methods": { - "aggregatedList": { - "description": "Retrieves an aggregated list of resource policies. To prevent failure, Google recommends that you set the `returnPartialSuccess` parameter to `true`.", - "flatPath": "projects/{project}/aggregated/resourcePolicies", + }, + "get": { + "description": "Returns the specified instance template.", + "flatPath": "projects/{project}/regions/{region}/instanceTemplates/{instanceTemplate}", "httpMethod": "GET", - "id": "compute.resourcePolicies.aggregatedList", + "id": "compute.regionInstanceTemplates.get", "parameterOrder": [ - "project" + "project", + "region", + "instanceTemplate" ], "parameters": { - "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` 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) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.", - "location": "query", - "type": "string" - }, - "includeAllScopes": { - "description": "Indicates whether every visible scope for each scope type (zone, region, global) should be included in the response. For new resource types added after this field, the flag has no effect as new resource types will always include every visible scope for each scope type in response. For resource types which predate this field, if this flag is omitted or false, only scopes of the scope types where the resource type is expected to be found will be included.", - "location": "query", - "type": "boolean" - }, - "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. 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.", - "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", + "instanceTemplate": { + "description": "The name of the instance template.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "required": true, "type": "string" }, "project": { @@ -28633,21 +30325,17 @@ "required": true, "type": "string" }, - "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", - "location": "query", - "type": "boolean" - }, - "serviceProjectNumber": { - "description": "The Shared VPC service project id or service project number for which aggregated list request is invoked for subnetworks list-usable api.", - "format": "int64", - "location": "query", + "region": { + "description": "The name of the region for this request.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "required": true, "type": "string" } }, - "path": "projects/{project}/aggregated/resourcePolicies", + "path": "projects/{project}/regions/{region}/instanceTemplates/{instanceTemplate}", "response": { - "$ref": "ResourcePolicyAggregatedList" + "$ref": "InstanceTemplate" }, "scopes": [ "https://www.googleapis.com/auth/cloud-platform", @@ -28655,15 +30343,14 @@ "https://www.googleapis.com/auth/compute.readonly" ] }, - "delete": { - "description": "Deletes the specified resource policy.", - "flatPath": "projects/{project}/regions/{region}/resourcePolicies/{resourcePolicy}", - "httpMethod": "DELETE", - "id": "compute.resourcePolicies.delete", + "insert": { + "description": "Creates an instance template in the specified project and region using the\nglobal instance template whose URL is included in the request.", + "flatPath": "projects/{project}/regions/{region}/instanceTemplates", + "httpMethod": "POST", + "id": "compute.regionInstanceTemplates.insert", "parameterOrder": [ "project", - "region", - "resourcePolicy" + "region" ], "parameters": { "project": { @@ -28674,26 +30361,22 @@ "type": "string" }, "region": { - "description": "Name of the region for this request.", + "description": "The name of the region for this request.", "location": "path", "pattern": "[a-z](?:[-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. 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).", + "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).", "location": "query", "type": "string" - }, - "resourcePolicy": { - "description": "Name of the resource policy to delete.", - "location": "path", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "required": true, - "type": "string" } }, - "path": "projects/{project}/regions/{region}/resourcePolicies/{resourcePolicy}", + "path": "projects/{project}/regions/{region}/instanceTemplates", + "request": { + "$ref": "InstanceTemplate" + }, "response": { "$ref": "Operation" }, @@ -28702,65 +30385,38 @@ "https://www.googleapis.com/auth/compute" ] }, - "get": { - "description": "Retrieves all information of the specified resource policy.", - "flatPath": "projects/{project}/regions/{region}/resourcePolicies/{resourcePolicy}", + "list": { + "description": "Retrieves a list of instance templates that are contained within the\nspecified project and region.", + "flatPath": "projects/{project}/regions/{region}/instanceTemplates", "httpMethod": "GET", - "id": "compute.resourcePolicies.get", + "id": "compute.regionInstanceTemplates.list", "parameterOrder": [ "project", - "region", - "resourcePolicy" + "region" ], "parameters": { - "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, + "filter": { + "description": "A filter expression that filters resources listed in the response. Most\nCompute resources support two types of filter expressions:\nexpressions that support regular expressions and expressions that follow\nAPI improvement proposal AIP-160.\nThese two types of filter expressions cannot be mixed in one request.\n\nIf you want to use AIP-160, your expression must specify the field name, an\noperator, and the value that you want to use for filtering. The value\nmust be a string, a number, or a boolean. The operator\nmust be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`.\n\nFor example, if you are filtering Compute Engine instances, you can\nexclude instances named `example-instance` by specifying\n`name != example-instance`.\n\nThe `:*` comparison can be used to test whether a key has been defined.\nFor example, to find all objects with `owner` label use:\n```\nlabels.owner:*\n```\n\nYou can also filter nested fields. For example, you could specify\n`scheduling.automaticRestart = false` to include instances only\nif they are not scheduled for automatic restarts. You can use filtering\non nested fields to filter based onresource labels.\n\nTo filter on multiple expressions, provide each separate expression within\nparentheses. For example:\n```\n(scheduling.automaticRestart = true)\n(cpuPlatform = \"Intel Skylake\")\n```\nBy default, each expression is an `AND` expression. However, you\ncan include `AND` and `OR` expressions explicitly.\nFor example:\n```\n(cpuPlatform = \"Intel Skylake\") OR\n(cpuPlatform = \"Intel Broadwell\") AND\n(scheduling.automaticRestart = true)\n```\n\nIf you want to use a regular expression, use the `eq` (equal) or `ne`\n(not equal) operator against a single un-parenthesized expression with or\nwithout quotes or against multiple parenthesized expressions. Examples:\n\n`fieldname eq unquoted literal`\n`fieldname eq 'single quoted literal'`\n`fieldname eq \"double quoted literal\"`\n`(fieldname1 eq literal) (fieldname2 ne \"literal\")`\n\nThe literal value is interpreted as a regular expression using GoogleRE2 library syntax.\nThe literal value must match the entire field.\n\nFor example, to filter for instances that do not end with name \"instance\",\nyou would use `name ne .*instance`.\n\nYou cannot combine constraints on multiple fields using regular\nexpressions.", + "location": "query", "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" + "maxResults": { + "default": "500", + "description": "The maximum number of results per page that should be returned.\nIf the number of available results is larger than `maxResults`,\nCompute Engine returns a `nextPageToken` that can be used to get\nthe next page of results in subsequent list requests. Acceptable values are\n`0` to `500`, inclusive. (Default: `500`)", + "format": "uint32", + "location": "query", + "minimum": "0", + "type": "integer" }, - "resourcePolicy": { - "description": "Name of the resource policy to retrieve.", - "location": "path", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "required": true, + "orderBy": { + "description": "Sorts list results by a certain order. By default, results\nare returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation\ntimestamp using `orderBy=\"creationTimestamp desc\"`. This sorts\nresults based on the `creationTimestamp` field in\nreverse chronological order (newest result first). Use this to sort\nresources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or\n`creationTimestamp desc` is supported.", + "location": "query", "type": "string" - } - }, - "path": "projects/{project}/regions/{region}/resourcePolicies/{resourcePolicy}", - "response": { - "$ref": "ResourcePolicy" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" - ] - }, - "getIamPolicy": { - "description": "Gets the access control policy for a resource. May be empty if no such policy or resource exists.", - "flatPath": "projects/{project}/regions/{region}/resourcePolicies/{resource}/getIamPolicy", - "httpMethod": "GET", - "id": "compute.resourcePolicies.getIamPolicy", - "parameterOrder": [ - "project", - "region", - "resource" - ], - "parameters": { - "optionsRequestedPolicyVersion": { - "description": "Requested IAM Policy version.", - "format": "int32", + }, + "pageToken": { + "description": "Specifies a page token to use. Set `pageToken` to the\n`nextPageToken` returned by a previous list request to get\nthe next page of results.", "location": "query", - "type": "integer" + "type": "string" }, "project": { "description": "Project ID for this request.", @@ -28770,35 +30426,37 @@ "type": "string" }, "region": { - "description": "The name of the region for this request.", + "description": "The name of the regions for this request.", "location": "path", "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", "required": true, "type": "string" }, - "resource": { - "description": "Name or id of the resource for this request.", - "location": "path", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "required": true, - "type": "string" + "returnPartialSuccess": { + "description": "Opt-in for partial success behavior which provides partial results in case\nof failure. The default value is false.\n\nFor example, when partial success behavior is enabled, aggregatedList for a\nsingle zone scope either returns all resources in the zone or no resources,\nwith an error code.", + "location": "query", + "type": "boolean" } }, - "path": "projects/{project}/regions/{region}/resourcePolicies/{resource}/getIamPolicy", + "path": "projects/{project}/regions/{region}/instanceTemplates", "response": { - "$ref": "Policy" + "$ref": "InstanceTemplateList" }, "scopes": [ "https://www.googleapis.com/auth/cloud-platform", "https://www.googleapis.com/auth/compute", "https://www.googleapis.com/auth/compute.readonly" ] - }, - "insert": { - "description": "Creates a new resource policy.", - "flatPath": "projects/{project}/regions/{region}/resourcePolicies", + } + } + }, + "regionInstances": { + "methods": { + "bulkInsert": { + "description": "Creates multiple instances in a given region. Count specifies the number of\ninstances to create.", + "flatPath": "projects/{project}/regions/{region}/instances/bulkInsert", "httpMethod": "POST", - "id": "compute.resourcePolicies.insert", + "id": "compute.regionInstances.bulkInsert", "parameterOrder": [ "project", "region" @@ -28812,21 +30470,21 @@ "type": "string" }, "region": { - "description": "Name of the region for this request.", + "description": "The name of the region for this request.", "location": "path", "pattern": "[a-z](?:[-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. 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).", + "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).", "location": "query", "type": "string" } }, - "path": "projects/{project}/regions/{region}/resourcePolicies", + "path": "projects/{project}/regions/{region}/instances/bulkInsert", "request": { - "$ref": "ResourcePolicy" + "$ref": "BulkInsertInstanceResource" }, "response": { "$ref": "Operation" @@ -28835,38 +30493,27 @@ "https://www.googleapis.com/auth/cloud-platform", "https://www.googleapis.com/auth/compute" ] - }, - "list": { - "description": "A list all the resource policies that have been configured for the specified project in specified region.", - "flatPath": "projects/{project}/regions/{region}/resourcePolicies", - "httpMethod": "GET", - "id": "compute.resourcePolicies.list", + } + } + }, + "regionInstantSnapshotGroups": { + "methods": { + "delete": { + "description": "deletes a Regional InstantSnapshotGroup resource", + "flatPath": "projects/{project}/regions/{region}/instantSnapshotGroups/{instantSnapshotGroup}", + "httpMethod": "DELETE", + "id": "compute.regionInstantSnapshotGroups.delete", "parameterOrder": [ "project", - "region" + "region", + "instantSnapshotGroup" ], "parameters": { - "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` 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) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.", - "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. 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.", - "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", + "instantSnapshotGroup": { + "description": "Name of the InstantSnapshotGroup resource to delete.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "required": true, "type": "string" }, "project": { @@ -28877,39 +30524,45 @@ "type": "string" }, "region": { - "description": "Name of the region for this request.", + "description": "The name of the region for this request.", "location": "path", "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", "required": true, "type": "string" }, - "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", + "requestId": { + "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).", "location": "query", - "type": "boolean" + "type": "string" } }, - "path": "projects/{project}/regions/{region}/resourcePolicies", + "path": "projects/{project}/regions/{region}/instantSnapshotGroups/{instantSnapshotGroup}", "response": { - "$ref": "ResourcePolicyList" + "$ref": "Operation" }, "scopes": [ "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" + "https://www.googleapis.com/auth/compute" ] }, - "patch": { - "description": "Modify the specified resource policy.", - "flatPath": "projects/{project}/regions/{region}/resourcePolicies/{resourcePolicy}", - "httpMethod": "PATCH", - "id": "compute.resourcePolicies.patch", + "get": { + "description": "returns the specified InstantSnapshotGroup resource in the specified\nregion.", + "flatPath": "projects/{project}/regions/{region}/instantSnapshotGroups/{instantSnapshotGroup}", + "httpMethod": "GET", + "id": "compute.regionInstantSnapshotGroups.get", "parameterOrder": [ "project", "region", - "resourcePolicy" + "instantSnapshotGroup" ], "parameters": { + "instantSnapshotGroup": { + "description": "Name of the InstantSnapshotGroup resource to return.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "required": true, + "type": "string" + }, "project": { "description": "Project ID for this request.", "location": "path", @@ -28918,54 +30571,40 @@ "type": "string" }, "region": { - "description": "Name of the region for this request.", + "description": "The name of the region for this request.", "location": "path", "pattern": "[a-z](?:[-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. 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).", - "location": "query", - "type": "string" - }, - "resourcePolicy": { - "description": "Id of the resource policy to patch.", - "location": "path", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "required": true, - "type": "string" - }, - "updateMask": { - "description": "update_mask indicates fields to be updated as part of this request.", - "format": "google-fieldmask", - "location": "query", - "type": "string" } }, - "path": "projects/{project}/regions/{region}/resourcePolicies/{resourcePolicy}", - "request": { - "$ref": "ResourcePolicy" - }, + "path": "projects/{project}/regions/{region}/instantSnapshotGroups/{instantSnapshotGroup}", "response": { - "$ref": "Operation" + "$ref": "InstantSnapshotGroup" }, "scopes": [ "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" ] }, - "setIamPolicy": { - "description": "Sets the access control policy on the specified resource. Replaces any existing policy.", - "flatPath": "projects/{project}/regions/{region}/resourcePolicies/{resource}/setIamPolicy", - "httpMethod": "POST", - "id": "compute.resourcePolicies.setIamPolicy", + "getIamPolicy": { + "description": "Gets the access control policy for a resource. May be empty if no such\npolicy or resource exists.", + "flatPath": "projects/{project}/regions/{region}/instantSnapshotGroups/{resource}/getIamPolicy", + "httpMethod": "GET", + "id": "compute.regionInstantSnapshotGroups.getIamPolicy", "parameterOrder": [ "project", "region", "resource" ], "parameters": { + "optionsRequestedPolicyVersion": { + "description": "Requested IAM Policy version.", + "format": "int32", + "location": "query", + "type": "integer" + }, "project": { "description": "Project ID for this request.", "location": "path", @@ -28988,27 +30627,24 @@ "type": "string" } }, - "path": "projects/{project}/regions/{region}/resourcePolicies/{resource}/setIamPolicy", - "request": { - "$ref": "RegionSetPolicyRequest" - }, + "path": "projects/{project}/regions/{region}/instantSnapshotGroups/{resource}/getIamPolicy", "response": { "$ref": "Policy" }, "scopes": [ "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" ] }, - "testIamPermissions": { - "description": "Returns permissions that a caller has on the specified resource.", - "flatPath": "projects/{project}/regions/{region}/resourcePolicies/{resource}/testIamPermissions", + "insert": { + "description": "creates a Regional InstantSnapshotGroup resource", + "flatPath": "projects/{project}/regions/{region}/instantSnapshotGroups", "httpMethod": "POST", - "id": "compute.resourcePolicies.testIamPermissions", + "id": "compute.regionInstantSnapshotGroups.insert", "parameterOrder": [ "project", - "region", - "resource" + "region" ], "parameters": { "project": { @@ -29019,71 +30655,65 @@ "type": "string" }, "region": { - "description": "The name of the region for this request.", + "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" }, - "resource": { - "description": "Name or id of the resource for this request.", - "location": "path", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "required": true, + "requestId": { + "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).", + "location": "query", + "type": "string" + }, + "sourceConsistencyGroup": { + "description": "begin_interface: MixerMutationRequestBuilder", + "location": "query", "type": "string" } }, - "path": "projects/{project}/regions/{region}/resourcePolicies/{resource}/testIamPermissions", + "path": "projects/{project}/regions/{region}/instantSnapshotGroups", "request": { - "$ref": "TestPermissionsRequest" + "$ref": "InstantSnapshotGroup" }, "response": { - "$ref": "TestPermissionsResponse" + "$ref": "Operation" }, "scopes": [ "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" + "https://www.googleapis.com/auth/compute" ] - } - } - }, - "routers": { - "methods": { - "aggregatedList": { - "description": "Retrieves an aggregated list of routers. To prevent failure, Google recommends that you set the `returnPartialSuccess` parameter to `true`.", - "flatPath": "projects/{project}/aggregated/routers", + }, + "list": { + "description": "retrieves the list of InstantSnapshotGroup resources contained within\nthe specified region.", + "flatPath": "projects/{project}/regions/{region}/instantSnapshotGroups", "httpMethod": "GET", - "id": "compute.routers.aggregatedList", + "id": "compute.regionInstantSnapshotGroups.list", "parameterOrder": [ - "project" + "project", + "region" ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` 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) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.", + "description": "A filter expression that filters resources listed in the response. Most\nCompute resources support two types of filter expressions:\nexpressions that support regular expressions and expressions that follow\nAPI improvement proposal AIP-160.\nThese two types of filter expressions cannot be mixed in one request.\n\nIf you want to use AIP-160, your expression must specify the field name, an\noperator, and the value that you want to use for filtering. The value\nmust be a string, a number, or a boolean. The operator\nmust be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`.\n\nFor example, if you are filtering Compute Engine instances, you can\nexclude instances named `example-instance` by specifying\n`name != example-instance`.\n\nThe `:*` comparison can be used to test whether a key has been defined.\nFor example, to find all objects with `owner` label use:\n```\nlabels.owner:*\n```\n\nYou can also filter nested fields. For example, you could specify\n`scheduling.automaticRestart = false` to include instances only\nif they are not scheduled for automatic restarts. You can use filtering\non nested fields to filter based onresource labels.\n\nTo filter on multiple expressions, provide each separate expression within\nparentheses. For example:\n```\n(scheduling.automaticRestart = true)\n(cpuPlatform = \"Intel Skylake\")\n```\nBy default, each expression is an `AND` expression. However, you\ncan include `AND` and `OR` expressions explicitly.\nFor example:\n```\n(cpuPlatform = \"Intel Skylake\") OR\n(cpuPlatform = \"Intel Broadwell\") AND\n(scheduling.automaticRestart = true)\n```\n\nIf you want to use a regular expression, use the `eq` (equal) or `ne`\n(not equal) operator against a single un-parenthesized expression with or\nwithout quotes or against multiple parenthesized expressions. Examples:\n\n`fieldname eq unquoted literal`\n`fieldname eq 'single quoted literal'`\n`fieldname eq \"double quoted literal\"`\n`(fieldname1 eq literal) (fieldname2 ne \"literal\")`\n\nThe literal value is interpreted as a regular expression using GoogleRE2 library syntax.\nThe literal value must match the entire field.\n\nFor example, to filter for instances that do not end with name \"instance\",\nyou would use `name ne .*instance`.\n\nYou cannot combine constraints on multiple fields using regular\nexpressions.", "location": "query", "type": "string" }, - "includeAllScopes": { - "description": "Indicates whether every visible scope for each scope type (zone, region, global) should be included in the response. For new resource types added after this field, the flag has no effect as new resource types will always include every visible scope for each scope type in response. For resource types which predate this field, if this flag is omitted or false, only scopes of the scope types where the resource type is expected to be found will be included.", - "location": "query", - "type": "boolean" - }, "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`)", + "description": "The maximum number of results per page that should be returned.\nIf the number of available results is larger than `maxResults`,\nCompute Engine returns a `nextPageToken` that can be used to get\nthe next page of results in subsequent list requests. Acceptable values are\n`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. 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.", + "description": "Sorts list results by a certain order. By default, results\nare returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation\ntimestamp using `orderBy=\"creationTimestamp desc\"`. This sorts\nresults based on the `creationTimestamp` field in\nreverse chronological order (newest result first). Use this to sort\nresources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or\n`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.", + "description": "Specifies a page token to use. Set `pageToken` to the\n`nextPageToken` returned by a previous list request to get\nthe next page of results.", "location": "query", "type": "string" }, @@ -29094,21 +30724,22 @@ "required": true, "type": "string" }, + "region": { + "description": "The name of the region for this request.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "required": true, + "type": "string" + }, "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", + "description": "Opt-in for partial success behavior which provides partial results in case\nof failure. The default value is false.\n\nFor example, when partial success behavior is enabled, aggregatedList for a\nsingle zone scope either returns all resources in the zone or no resources,\nwith an error code.", "location": "query", "type": "boolean" - }, - "serviceProjectNumber": { - "description": "The Shared VPC service project id or service project number for which aggregated list request is invoked for subnetworks list-usable api.", - "format": "int64", - "location": "query", - "type": "string" } }, - "path": "projects/{project}/aggregated/routers", + "path": "projects/{project}/regions/{region}/instantSnapshotGroups", "response": { - "$ref": "RouterAggregatedList" + "$ref": "ListInstantSnapshotGroups" }, "scopes": [ "https://www.googleapis.com/auth/cloud-platform", @@ -29116,15 +30747,15 @@ "https://www.googleapis.com/auth/compute.readonly" ] }, - "delete": { - "description": "Deletes the specified Router resource.", - "flatPath": "projects/{project}/regions/{region}/routers/{router}", - "httpMethod": "DELETE", - "id": "compute.routers.delete", + "setIamPolicy": { + "description": "Sets the access control policy on the specified resource.\nReplaces any existing policy.", + "flatPath": "projects/{project}/regions/{region}/instantSnapshotGroups/{resource}/setIamPolicy", + "httpMethod": "POST", + "id": "compute.regionInstantSnapshotGroups.setIamPolicy", "parameterOrder": [ "project", "region", - "router" + "resource" ], "parameters": { "project": { @@ -29135,43 +30766,41 @@ "type": "string" }, "region": { - "description": "Name of the region for this request.", + "description": "The name of the region for this request.", "location": "path", "pattern": "[a-z](?:[-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. 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).", - "location": "query", - "type": "string" - }, - "router": { - "description": "Name of the Router resource to delete.", + "resource": { + "description": "Name or id of the resource for this request.", "location": "path", "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", "required": true, "type": "string" } }, - "path": "projects/{project}/regions/{region}/routers/{router}", + "path": "projects/{project}/regions/{region}/instantSnapshotGroups/{resource}/setIamPolicy", + "request": { + "$ref": "RegionSetPolicyRequest" + }, "response": { - "$ref": "Operation" + "$ref": "Policy" }, "scopes": [ "https://www.googleapis.com/auth/cloud-platform", "https://www.googleapis.com/auth/compute" ] }, - "get": { - "description": "Returns the specified Router resource.", - "flatPath": "projects/{project}/regions/{region}/routers/{router}", - "httpMethod": "GET", - "id": "compute.routers.get", + "testIamPermissions": { + "description": "Returns permissions that a caller has on the specified resource.", + "flatPath": "projects/{project}/regions/{region}/instantSnapshotGroups/{resource}/testIamPermissions", + "httpMethod": "POST", + "id": "compute.regionInstantSnapshotGroups.testIamPermissions", "parameterOrder": [ "project", "region", - "router" + "resource" ], "parameters": { "project": { @@ -29182,44 +30811,53 @@ "type": "string" }, "region": { - "description": "Name of the region for this request.", + "description": "The 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 return.", + "resource": { + "description": "Name or id of the resource for this request.", "location": "path", "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", "required": true, "type": "string" } }, - "path": "projects/{project}/regions/{region}/routers/{router}", + "path": "projects/{project}/regions/{region}/instantSnapshotGroups/{resource}/testIamPermissions", + "request": { + "$ref": "TestPermissionsRequest" + }, "response": { - "$ref": "Router" + "$ref": "TestPermissionsResponse" }, "scopes": [ "https://www.googleapis.com/auth/cloud-platform", "https://www.googleapis.com/auth/compute", "https://www.googleapis.com/auth/compute.readonly" ] - }, - "getNatIpInfo": { - "description": "Retrieves runtime NAT IP information.", - "flatPath": "projects/{project}/regions/{region}/routers/{router}/getNatIpInfo", - "httpMethod": "GET", - "id": "compute.routers.getNatIpInfo", + } + } + }, + "regionInstantSnapshots": { + "methods": { + "delete": { + "description": "Deletes the specified InstantSnapshot resource. Keep in mind that deleting\na single instantSnapshot might not necessarily delete all the data on that\ninstantSnapshot. If any data on the instantSnapshot that is marked for\ndeletion is needed for subsequent instantSnapshots, the data will be moved\nto the next corresponding instantSnapshot.\n\nFor more information, seeDeleting\ninstantSnapshots.", + "flatPath": "projects/{project}/regions/{region}/instantSnapshots/{instantSnapshot}", + "httpMethod": "DELETE", + "id": "compute.regionInstantSnapshots.delete", "parameterOrder": [ "project", "region", - "router" + "instantSnapshot" ], "parameters": { - "natName": { - "description": "Name of the nat service to filter the NAT IP information. If it is omitted, all nats for this router will be returned. Name should conform to RFC1035.", - "location": "query", + "instantSnapshot": { + "description": "Name of the InstantSnapshot resource to delete.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "required": true, "type": "string" }, "project": { @@ -29230,66 +30868,43 @@ "type": "string" }, "region": { - "description": "Name of the region for this request.", + "description": "The 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 IP information. The name should conform to RFC1035.", - "location": "path", - "required": true, + "requestId": { + "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).", + "location": "query", "type": "string" } }, - "path": "projects/{project}/regions/{region}/routers/{router}/getNatIpInfo", + "path": "projects/{project}/regions/{region}/instantSnapshots/{instantSnapshot}", "response": { - "$ref": "NatIpInfoResponse" + "$ref": "Operation" }, "scopes": [ "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" + "https://www.googleapis.com/auth/compute" ] }, - "getNatMappingInfo": { - "description": "Retrieves runtime Nat mapping information of VM endpoints.", - "flatPath": "projects/{project}/regions/{region}/routers/{router}/getNatMappingInfo", + "get": { + "description": "Returns the specified InstantSnapshot resource in the specified region.", + "flatPath": "projects/{project}/regions/{region}/instantSnapshots/{instantSnapshot}", "httpMethod": "GET", - "id": "compute.routers.getNatMappingInfo", + "id": "compute.regionInstantSnapshots.get", "parameterOrder": [ "project", "region", - "router" + "instantSnapshot" ], "parameters": { - "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` 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) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.", - "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" - }, - "natName": { - "description": "Name of the nat service to filter the Nat Mapping information. If it is omitted, all nats for this router will be returned. Name should conform to RFC1035.", - "location": "query", - "type": "string" - }, - "orderBy": { - "description": "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.", - "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", + "instantSnapshot": { + "description": "Name of the InstantSnapshot resource to return.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "required": true, "type": "string" }, "project": { @@ -29300,28 +30915,16 @@ "type": "string" }, "region": { - "description": "Name of the region for this request.", + "description": "The name of the region for this request.", "location": "path", "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", "required": true, "type": "string" - }, - "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", - "location": "query", - "type": "boolean" - }, - "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])?|[1-9][0-9]{0,19}", - "required": true, - "type": "string" } }, - "path": "projects/{project}/regions/{region}/routers/{router}/getNatMappingInfo", + "path": "projects/{project}/regions/{region}/instantSnapshots/{instantSnapshot}", "response": { - "$ref": "VmEndpointNatMappingsList" + "$ref": "InstantSnapshot" }, "scopes": [ "https://www.googleapis.com/auth/cloud-platform", @@ -29329,17 +30932,23 @@ "https://www.googleapis.com/auth/compute.readonly" ] }, - "getRouterStatus": { - "description": "Retrieves runtime information of the specified router.", - "flatPath": "projects/{project}/regions/{region}/routers/{router}/getRouterStatus", + "getIamPolicy": { + "description": "Gets the access control policy for a resource. May be empty if no such\npolicy or resource exists.", + "flatPath": "projects/{project}/regions/{region}/instantSnapshots/{resource}/getIamPolicy", "httpMethod": "GET", - "id": "compute.routers.getRouterStatus", + "id": "compute.regionInstantSnapshots.getIamPolicy", "parameterOrder": [ "project", "region", - "router" + "resource" ], "parameters": { + "optionsRequestedPolicyVersion": { + "description": "Requested IAM Policy version.", + "format": "int32", + "location": "query", + "type": "integer" + }, "project": { "description": "Project ID for this request.", "location": "path", @@ -29348,23 +30957,23 @@ "type": "string" }, "region": { - "description": "Name of the region for this request.", + "description": "The 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.", + "resource": { + "description": "Name or id of the resource for this request.", "location": "path", "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", "required": true, "type": "string" } }, - "path": "projects/{project}/regions/{region}/routers/{router}/getRouterStatus", + "path": "projects/{project}/regions/{region}/instantSnapshots/{resource}/getIamPolicy", "response": { - "$ref": "RouterStatusResponse" + "$ref": "Policy" }, "scopes": [ "https://www.googleapis.com/auth/cloud-platform", @@ -29373,10 +30982,10 @@ ] }, "insert": { - "description": "Creates a Router resource in the specified project and region using the data included in the request.", - "flatPath": "projects/{project}/regions/{region}/routers", + "description": "Creates an instant snapshot in the specified region.", + "flatPath": "projects/{project}/regions/{region}/instantSnapshots", "httpMethod": "POST", - "id": "compute.routers.insert", + "id": "compute.regionInstantSnapshots.insert", "parameterOrder": [ "project", "region" @@ -29397,14 +31006,14 @@ "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. 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).", + "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).", "location": "query", "type": "string" } }, - "path": "projects/{project}/regions/{region}/routers", + "path": "projects/{project}/regions/{region}/instantSnapshots", "request": { - "$ref": "Router" + "$ref": "InstantSnapshot" }, "response": { "$ref": "Operation" @@ -29415,35 +31024,35 @@ ] }, "list": { - "description": "Retrieves a list of Router resources available to the specified project.", - "flatPath": "projects/{project}/regions/{region}/routers", + "description": "Retrieves the list of InstantSnapshot resources contained within\nthe specified region.", + "flatPath": "projects/{project}/regions/{region}/instantSnapshots", "httpMethod": "GET", - "id": "compute.routers.list", + "id": "compute.regionInstantSnapshots.list", "parameterOrder": [ "project", "region" ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` 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) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.", + "description": "A filter expression that filters resources listed in the response. Most\nCompute resources support two types of filter expressions:\nexpressions that support regular expressions and expressions that follow\nAPI improvement proposal AIP-160.\nThese two types of filter expressions cannot be mixed in one request.\n\nIf you want to use AIP-160, your expression must specify the field name, an\noperator, and the value that you want to use for filtering. The value\nmust be a string, a number, or a boolean. The operator\nmust be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`.\n\nFor example, if you are filtering Compute Engine instances, you can\nexclude instances named `example-instance` by specifying\n`name != example-instance`.\n\nThe `:*` comparison can be used to test whether a key has been defined.\nFor example, to find all objects with `owner` label use:\n```\nlabels.owner:*\n```\n\nYou can also filter nested fields. For example, you could specify\n`scheduling.automaticRestart = false` to include instances only\nif they are not scheduled for automatic restarts. You can use filtering\non nested fields to filter based onresource labels.\n\nTo filter on multiple expressions, provide each separate expression within\nparentheses. For example:\n```\n(scheduling.automaticRestart = true)\n(cpuPlatform = \"Intel Skylake\")\n```\nBy default, each expression is an `AND` expression. However, you\ncan include `AND` and `OR` expressions explicitly.\nFor example:\n```\n(cpuPlatform = \"Intel Skylake\") OR\n(cpuPlatform = \"Intel Broadwell\") AND\n(scheduling.automaticRestart = true)\n```\n\nIf you want to use a regular expression, use the `eq` (equal) or `ne`\n(not equal) operator against a single un-parenthesized expression with or\nwithout quotes or against multiple parenthesized expressions. Examples:\n\n`fieldname eq unquoted literal`\n`fieldname eq 'single quoted literal'`\n`fieldname eq \"double quoted literal\"`\n`(fieldname1 eq literal) (fieldname2 ne \"literal\")`\n\nThe literal value is interpreted as a regular expression using GoogleRE2 library syntax.\nThe literal value must match the entire field.\n\nFor example, to filter for instances that do not end with name \"instance\",\nyou would use `name ne .*instance`.\n\nYou cannot combine constraints on multiple fields using regular\nexpressions.", "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`)", + "description": "The maximum number of results per page that should be returned.\nIf the number of available results is larger than `maxResults`,\nCompute Engine returns a `nextPageToken` that can be used to get\nthe next page of results in subsequent list requests. Acceptable values are\n`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. 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.", + "description": "Sorts list results by a certain order. By default, results\nare returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation\ntimestamp using `orderBy=\"creationTimestamp desc\"`. This sorts\nresults based on the `creationTimestamp` field in\nreverse chronological order (newest result first). Use this to sort\nresources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or\n`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.", + "description": "Specifies a page token to use. Set `pageToken` to the\n`nextPageToken` returned by a previous list request to get\nthe next page of results.", "location": "query", "type": "string" }, @@ -29455,21 +31064,21 @@ "type": "string" }, "region": { - "description": "Name of the region for this request.", + "description": "The name of the region for this request.", "location": "path", "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", "required": true, "type": "string" }, "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", + "description": "Opt-in for partial success behavior which provides partial results in case\nof failure. The default value is false.\n\nFor example, when partial success behavior is enabled, aggregatedList for a\nsingle zone scope either returns all resources in the zone or no resources,\nwith an error code.", "location": "query", "type": "boolean" } }, - "path": "projects/{project}/regions/{region}/routers", + "path": "projects/{project}/regions/{region}/instantSnapshots", "response": { - "$ref": "RouterList" + "$ref": "InstantSnapshotList" }, "scopes": [ "https://www.googleapis.com/auth/cloud-platform", @@ -29477,15 +31086,15 @@ "https://www.googleapis.com/auth/compute.readonly" ] }, - "patch": { - "description": "Patches the specified Router resource with the data included in the request. This method supports PATCH semantics and uses JSON merge patch format and processing rules.", - "flatPath": "projects/{project}/regions/{region}/routers/{router}", - "httpMethod": "PATCH", - "id": "compute.routers.patch", + "setIamPolicy": { + "description": "Sets the access control policy on the specified resource.\nReplaces any existing policy.", + "flatPath": "projects/{project}/regions/{region}/instantSnapshots/{resource}/setIamPolicy", + "httpMethod": "POST", + "id": "compute.regionInstantSnapshots.setIamPolicy", "parameterOrder": [ "project", "region", - "router" + "resource" ], "parameters": { "project": { @@ -29496,46 +31105,41 @@ "type": "string" }, "region": { - "description": "Name of the region for this request.", + "description": "The name of the region for this request.", "location": "path", "pattern": "[a-z](?:[-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. 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).", - "location": "query", - "type": "string" - }, - "router": { - "description": "Name of the Router resource to patch.", + "resource": { + "description": "Name or id of the resource for this request.", "location": "path", "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", "required": true, "type": "string" } }, - "path": "projects/{project}/regions/{region}/routers/{router}", + "path": "projects/{project}/regions/{region}/instantSnapshots/{resource}/setIamPolicy", "request": { - "$ref": "Router" + "$ref": "RegionSetPolicyRequest" }, "response": { - "$ref": "Operation" + "$ref": "Policy" }, "scopes": [ "https://www.googleapis.com/auth/cloud-platform", "https://www.googleapis.com/auth/compute" ] }, - "preview": { - "description": "Preview fields auto-generated during router create and update operations. Calling this method does NOT create or update the router.", - "flatPath": "projects/{project}/regions/{region}/routers/{router}/preview", + "setLabels": { + "description": "Sets the labels on a instantSnapshot in the given region. To learn more\nabout labels, read the Labeling\nResources documentation.", + "flatPath": "projects/{project}/regions/{region}/instantSnapshots/{resource}/setLabels", "httpMethod": "POST", - "id": "compute.routers.preview", + "id": "compute.regionInstantSnapshots.setLabels", "parameterOrder": [ "project", "region", - "router" + "resource" ], "parameters": { "project": { @@ -29546,42 +31150,46 @@ "type": "string" }, "region": { - "description": "Name of the region for this request.", + "description": "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.", + "requestId": { + "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).", + "location": "query", + "type": "string" + }, + "resource": { + "description": "Name or id of the resource for this request.", "location": "path", "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", "required": true, "type": "string" } }, - "path": "projects/{project}/regions/{region}/routers/{router}/preview", + "path": "projects/{project}/regions/{region}/instantSnapshots/{resource}/setLabels", "request": { - "$ref": "Router" + "$ref": "RegionSetLabelsRequest" }, "response": { - "$ref": "RoutersPreviewResponse" + "$ref": "Operation" }, "scopes": [ "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" + "https://www.googleapis.com/auth/compute" ] }, - "update": { - "description": "Updates the specified Router resource with the data included in the request. This method conforms to PUT semantics, which requests that the state of the target resource be created or replaced with the state defined by the representation enclosed in the request message payload.", - "flatPath": "projects/{project}/regions/{region}/routers/{router}", - "httpMethod": "PUT", - "id": "compute.routers.update", + "testIamPermissions": { + "description": "Returns permissions that a caller has on the specified resource.", + "flatPath": "projects/{project}/regions/{region}/instantSnapshots/{resource}/testIamPermissions", + "httpMethod": "POST", + "id": "compute.regionInstantSnapshots.testIamPermissions", "parameterOrder": [ "project", "region", - "router" + "resource" ], "parameters": { "project": { @@ -29592,90 +31200,54 @@ "type": "string" }, "region": { - "description": "Name of the region for this request.", + "description": "The name of the region for this request.", "location": "path", "pattern": "[a-z](?:[-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. 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).", - "location": "query", - "type": "string" - }, - "router": { - "description": "Name of the Router resource to update.", + "resource": { + "description": "Name or id of the resource for this request.", "location": "path", "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", "required": true, "type": "string" } }, - "path": "projects/{project}/regions/{region}/routers/{router}", + "path": "projects/{project}/regions/{region}/instantSnapshots/{resource}/testIamPermissions", "request": { - "$ref": "Router" + "$ref": "TestPermissionsRequest" }, "response": { - "$ref": "Operation" + "$ref": "TestPermissionsResponse" }, "scopes": [ "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" ] } } }, - "routes": { + "regionNetworkEndpointGroups": { "methods": { - "delete": { - "description": "Deletes the specified Route resource.", - "flatPath": "projects/{project}/global/routes/{route}", - "httpMethod": "DELETE", - "id": "compute.routes.delete", + "attachNetworkEndpoints": { + "description": "Attach a list of network endpoints to the specified network endpoint group.", + "flatPath": "projects/{project}/regions/{region}/networkEndpointGroups/{networkEndpointGroup}/attachNetworkEndpoints", + "httpMethod": "POST", + "id": "compute.regionNetworkEndpointGroups.attachNetworkEndpoints", "parameterOrder": [ "project", - "route" + "region", + "networkEndpointGroup" ], "parameters": { - "project": { - "description": "Project ID for this request.", + "networkEndpointGroup": { + "description": "The name of the network endpoint group where you are attaching network\nendpoints to. It should comply with RFC1035.", "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. 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).", - "location": "query", - "type": "string" - }, - "route": { - "description": "Name of the Route resource to delete.", - "location": "path", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "required": true, - "type": "string" - } - }, - "path": "projects/{project}/global/routes/{route}", - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ] - }, - "get": { - "description": "Returns the specified Route resource.", - "flatPath": "projects/{project}/global/routes/{route}", - "httpMethod": "GET", - "id": "compute.routes.get", - "parameterOrder": [ - "project", - "route" - ], - "parameters": { "project": { "description": "Project ID for this request.", "location": "path", @@ -29683,49 +31255,21 @@ "required": true, "type": "string" }, - "route": { - "description": "Name of the Route resource to return.", - "location": "path", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "required": true, - "type": "string" - } - }, - "path": "projects/{project}/global/routes/{route}", - "response": { - "$ref": "Route" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" - ] - }, - "insert": { - "description": "Creates a Route resource in the specified project using the data included in the request.", - "flatPath": "projects/{project}/global/routes", - "httpMethod": "POST", - "id": "compute.routes.insert", - "parameterOrder": [ - "project" - ], - "parameters": { - "project": { - "description": "Project ID for this request.", + "region": { + "description": "The name of the region where\nyou want to create the network endpoint group. It should comply with\nRFC1035.", "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. 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).", + "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).", "location": "query", "type": "string" } }, - "path": "projects/{project}/global/routes", + "path": "projects/{project}/regions/{region}/networkEndpointGroups/{networkEndpointGroup}/attachNetworkEndpoints", "request": { - "$ref": "Route" + "$ref": "RegionNetworkEndpointGroupsAttachEndpointsRequest" }, "response": { "$ref": "Operation" @@ -29735,75 +31279,23 @@ "https://www.googleapis.com/auth/compute" ] }, - "list": { - "description": "Retrieves the list of Route resources available to the specified project.", - "flatPath": "projects/{project}/global/routes", - "httpMethod": "GET", - "id": "compute.routes.list", + "delete": { + "description": "Deletes the specified network endpoint group. Note that the NEG cannot be\ndeleted if it is configured as a backend of a backend service.", + "flatPath": "projects/{project}/regions/{region}/networkEndpointGroups/{networkEndpointGroup}", + "httpMethod": "DELETE", + "id": "compute.regionNetworkEndpointGroups.delete", "parameterOrder": [ - "project" + "project", + "region", + "networkEndpointGroup" ], "parameters": { - "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` 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) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.", - "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. 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.", - "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.", + "networkEndpointGroup": { + "description": "The name of the network endpoint group to delete. It should comply with\nRFC1035.", "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" }, - "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", - "location": "query", - "type": "boolean" - } - }, - "path": "projects/{project}/global/routes", - "response": { - "$ref": "RouteList" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" - ] - } - } - }, - "securityPolicies": { - "methods": { - "addRule": { - "description": "Inserts a rule into a security policy.", - "flatPath": "projects/{project}/global/securityPolicies/{securityPolicy}/addRule", - "httpMethod": "POST", - "id": "compute.securityPolicies.addRule", - "parameterOrder": [ - "project", - "securityPolicy" - ], - "parameters": { "project": { "description": "Project ID for this request.", "location": "path", @@ -29811,23 +31303,19 @@ "required": true, "type": "string" }, - "securityPolicy": { - "description": "Name of the security policy to update.", + "region": { + "description": "The name of the region where\nthe network endpoint group is located. It should comply with RFC1035.", "location": "path", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", "required": true, "type": "string" }, - "validateOnly": { - "description": "If true, the request will not be committed.", + "requestId": { + "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).", "location": "query", - "type": "boolean" + "type": "string" } }, - "path": "projects/{project}/global/securityPolicies/{securityPolicy}/addRule", - "request": { - "$ref": "SecurityPolicyRule" - }, + "path": "projects/{project}/regions/{region}/networkEndpointGroups/{networkEndpointGroup}", "response": { "$ref": "Operation" }, @@ -29836,103 +31324,46 @@ "https://www.googleapis.com/auth/compute" ] }, - "aggregatedList": { - "description": "Retrieves the list of all SecurityPolicy resources, regional and global, available to the specified project. To prevent failure, Google recommends that you set the `returnPartialSuccess` parameter to `true`.", - "flatPath": "projects/{project}/aggregated/securityPolicies", - "httpMethod": "GET", - "id": "compute.securityPolicies.aggregatedList", + "detachNetworkEndpoints": { + "description": "Detach the network endpoint from the specified network endpoint group.", + "flatPath": "projects/{project}/regions/{region}/networkEndpointGroups/{networkEndpointGroup}/detachNetworkEndpoints", + "httpMethod": "POST", + "id": "compute.regionNetworkEndpointGroups.detachNetworkEndpoints", "parameterOrder": [ - "project" + "project", + "region", + "networkEndpointGroup" ], "parameters": { - "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` 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) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.", - "location": "query", - "type": "string" - }, - "includeAllScopes": { - "description": "Indicates whether every visible scope for each scope type (zone, region, global) should be included in the response. For new resource types added after this field, the flag has no effect as new resource types will always include every visible scope for each scope type in response. For resource types which predate this field, if this flag is omitted or false, only scopes of the scope types where the resource type is expected to be found will be included.", - "location": "query", - "type": "boolean" - }, - "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. 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.", - "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", + "networkEndpointGroup": { + "description": "The name of the network endpoint group you are detaching network\nendpoints from. It should comply with RFC1035.", + "location": "path", + "required": true, "type": "string" }, "project": { - "description": "Name of the project scoping this request.", + "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" }, - "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", - "location": "query", - "type": "boolean" - }, - "serviceProjectNumber": { - "description": "The Shared VPC service project id or service project number for which aggregated list request is invoked for subnetworks list-usable api.", - "format": "int64", - "location": "query", - "type": "string" - } - }, - "path": "projects/{project}/aggregated/securityPolicies", - "response": { - "$ref": "SecurityPoliciesAggregatedList" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" - ] - }, - "delete": { - "description": "Deletes the specified policy.", - "flatPath": "projects/{project}/global/securityPolicies/{securityPolicy}", - "httpMethod": "DELETE", - "id": "compute.securityPolicies.delete", - "parameterOrder": [ - "project", - "securityPolicy" - ], - "parameters": { - "project": { - "description": "Project ID for this request.", + "region": { + "description": "The name of the region where\nthe network endpoint group is located. It should comply with\nRFC1035.", "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. 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).", + "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).\nend_interface: MixerMutationRequestBuilder", "location": "query", "type": "string" - }, - "securityPolicy": { - "description": "Name of the security policy to delete.", - "location": "path", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "required": true, - "type": "string" } }, - "path": "projects/{project}/global/securityPolicies/{securityPolicy}", + "path": "projects/{project}/regions/{region}/networkEndpointGroups/{networkEndpointGroup}/detachNetworkEndpoints", + "request": { + "$ref": "RegionNetworkEndpointGroupsDetachEndpointsRequest" + }, "response": { "$ref": "Operation" }, @@ -29942,55 +31373,21 @@ ] }, "get": { - "description": "List all of the ordered rules present in a single specified policy.", - "flatPath": "projects/{project}/global/securityPolicies/{securityPolicy}", + "description": "Returns the specified network endpoint group.", + "flatPath": "projects/{project}/regions/{region}/networkEndpointGroups/{networkEndpointGroup}", "httpMethod": "GET", - "id": "compute.securityPolicies.get", + "id": "compute.regionNetworkEndpointGroups.get", "parameterOrder": [ "project", - "securityPolicy" + "region", + "networkEndpointGroup" ], "parameters": { - "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" - }, - "securityPolicy": { - "description": "Name of the security policy to get.", + "networkEndpointGroup": { + "description": "The name of the network endpoint group. It should comply with RFC1035.", "location": "path", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", "required": true, "type": "string" - } - }, - "path": "projects/{project}/global/securityPolicies/{securityPolicy}", - "response": { - "$ref": "SecurityPolicy" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" - ] - }, - "getRule": { - "description": "Gets a rule at the specified priority.", - "flatPath": "projects/{project}/global/securityPolicies/{securityPolicy}/getRule", - "httpMethod": "GET", - "id": "compute.securityPolicies.getRule", - "parameterOrder": [ - "project", - "securityPolicy" - ], - "parameters": { - "priority": { - "description": "The priority of the rule to get from the security policy.", - "format": "int32", - "location": "query", - "type": "integer" }, "project": { "description": "Project ID for this request.", @@ -29999,17 +31396,16 @@ "required": true, "type": "string" }, - "securityPolicy": { - "description": "Name of the security policy to which the queried rule belongs.", + "region": { + "description": "The name of the region where\nthe network endpoint group is located. It should comply with RFC1035.", "location": "path", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", "required": true, "type": "string" } }, - "path": "projects/{project}/global/securityPolicies/{securityPolicy}/getRule", + "path": "projects/{project}/regions/{region}/networkEndpointGroups/{networkEndpointGroup}", "response": { - "$ref": "SecurityPolicyRule" + "$ref": "NetworkEndpointGroup" }, "scopes": [ "https://www.googleapis.com/auth/cloud-platform", @@ -30018,12 +31414,13 @@ ] }, "insert": { - "description": "Creates a new policy in the specified project using the data included in the request.", - "flatPath": "projects/{project}/global/securityPolicies", + "description": "Creates a network endpoint group in the specified project using the\nparameters that are included in the request.\n\nNote: Use the following APIs to manage network endpoint groups:\n \n - \n To manage NEGs with zonal scope (such as zonal NEGs, hybrid connectivity\n NEGs): zonal\n API\n - \n To manage NEGs with regional scope (such as regional internet NEGs,\n serverless NEGs, Private Service Connect NEGs): regional\n API\n - \n To manage NEGs with global scope (such as global internet NEGs):global\n API", + "flatPath": "projects/{project}/regions/{region}/networkEndpointGroups", "httpMethod": "POST", - "id": "compute.securityPolicies.insert", + "id": "compute.regionNetworkEndpointGroups.insert", "parameterOrder": [ - "project" + "project", + "region" ], "parameters": { "project": { @@ -30033,20 +31430,21 @@ "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. 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).", - "location": "query", + "region": { + "description": "The name of the region where\nyou want to create the network endpoint group. It should comply with\nRFC1035.", + "location": "path", + "required": true, "type": "string" }, - "validateOnly": { - "description": "If true, the request will not be committed.", + "requestId": { + "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).", "location": "query", - "type": "boolean" + "type": "string" } }, - "path": "projects/{project}/global/securityPolicies", + "path": "projects/{project}/regions/{region}/networkEndpointGroups", "request": { - "$ref": "SecurityPolicy" + "$ref": "NetworkEndpointGroup" }, "response": { "$ref": "Operation" @@ -30057,34 +31455,35 @@ ] }, "list": { - "description": "List all the policies that have been configured for the specified project.", - "flatPath": "projects/{project}/global/securityPolicies", + "description": "Retrieves the list of regional network endpoint groups available to the\nspecified project in the given region.", + "flatPath": "projects/{project}/regions/{region}/networkEndpointGroups", "httpMethod": "GET", - "id": "compute.securityPolicies.list", + "id": "compute.regionNetworkEndpointGroups.list", "parameterOrder": [ - "project" + "project", + "region" ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` 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) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.", + "description": "A filter expression that filters resources listed in the response. Most\nCompute resources support two types of filter expressions:\nexpressions that support regular expressions and expressions that follow\nAPI improvement proposal AIP-160.\nThese two types of filter expressions cannot be mixed in one request.\n\nIf you want to use AIP-160, your expression must specify the field name, an\noperator, and the value that you want to use for filtering. The value\nmust be a string, a number, or a boolean. The operator\nmust be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`.\n\nFor example, if you are filtering Compute Engine instances, you can\nexclude instances named `example-instance` by specifying\n`name != example-instance`.\n\nThe `:*` comparison can be used to test whether a key has been defined.\nFor example, to find all objects with `owner` label use:\n```\nlabels.owner:*\n```\n\nYou can also filter nested fields. For example, you could specify\n`scheduling.automaticRestart = false` to include instances only\nif they are not scheduled for automatic restarts. You can use filtering\non nested fields to filter based onresource labels.\n\nTo filter on multiple expressions, provide each separate expression within\nparentheses. For example:\n```\n(scheduling.automaticRestart = true)\n(cpuPlatform = \"Intel Skylake\")\n```\nBy default, each expression is an `AND` expression. However, you\ncan include `AND` and `OR` expressions explicitly.\nFor example:\n```\n(cpuPlatform = \"Intel Skylake\") OR\n(cpuPlatform = \"Intel Broadwell\") AND\n(scheduling.automaticRestart = true)\n```\n\nIf you want to use a regular expression, use the `eq` (equal) or `ne`\n(not equal) operator against a single un-parenthesized expression with or\nwithout quotes or against multiple parenthesized expressions. Examples:\n\n`fieldname eq unquoted literal`\n`fieldname eq 'single quoted literal'`\n`fieldname eq \"double quoted literal\"`\n`(fieldname1 eq literal) (fieldname2 ne \"literal\")`\n\nThe literal value is interpreted as a regular expression using GoogleRE2 library syntax.\nThe literal value must match the entire field.\n\nFor example, to filter for instances that do not end with name \"instance\",\nyou would use `name ne .*instance`.\n\nYou cannot combine constraints on multiple fields using regular\nexpressions.", "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`)", + "description": "The maximum number of results per page that should be returned.\nIf the number of available results is larger than `maxResults`,\nCompute Engine returns a `nextPageToken` that can be used to get\nthe next page of results in subsequent list requests. Acceptable values are\n`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. 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.", + "description": "Sorts list results by a certain order. By default, results\nare returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation\ntimestamp using `orderBy=\"creationTimestamp desc\"`. This sorts\nresults based on the `creationTimestamp` field in\nreverse chronological order (newest result first). Use this to sort\nresources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or\n`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.", + "description": "Specifies a page token to use. Set `pageToken` to the\n`nextPageToken` returned by a previous list request to get\nthe next page of results.", "location": "query", "type": "string" }, @@ -30095,15 +31494,21 @@ "required": true, "type": "string" }, + "region": { + "description": "The name of theregion\nwhere the network endpoint group is located. It should comply with RFC1035.", + "location": "path", + "required": true, + "type": "string" + }, "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", + "description": "Opt-in for partial success behavior which provides partial results in case\nof failure. The default value is false.\n\nFor example, when partial success behavior is enabled, aggregatedList for a\nsingle zone scope either returns all resources in the zone or no resources,\nwith an error code.", "location": "query", "type": "boolean" } }, - "path": "projects/{project}/global/securityPolicies", + "path": "projects/{project}/regions/{region}/networkEndpointGroups", "response": { - "$ref": "SecurityPolicyList" + "$ref": "NetworkEndpointGroupList" }, "scopes": [ "https://www.googleapis.com/auth/cloud-platform", @@ -30111,35 +31516,43 @@ "https://www.googleapis.com/auth/compute.readonly" ] }, - "listPreconfiguredExpressionSets": { - "description": "Gets the current list of preconfigured Web Application Firewall (WAF) expressions.", - "flatPath": "projects/{project}/global/securityPolicies/listPreconfiguredExpressionSets", - "httpMethod": "GET", - "id": "compute.securityPolicies.listPreconfiguredExpressionSets", + "listNetworkEndpoints": { + "description": "Lists the network endpoints in the specified network endpoint group.", + "flatPath": "projects/{project}/regions/{region}/networkEndpointGroups/{networkEndpointGroup}/listNetworkEndpoints", + "httpMethod": "POST", + "id": "compute.regionNetworkEndpointGroups.listNetworkEndpoints", "parameterOrder": [ - "project" + "project", + "region", + "networkEndpointGroup" ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` 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) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.", + "description": "A filter expression that filters resources listed in the response. Most\nCompute resources support two types of filter expressions:\nexpressions that support regular expressions and expressions that follow\nAPI improvement proposal AIP-160.\nThese two types of filter expressions cannot be mixed in one request.\n\nIf you want to use AIP-160, your expression must specify the field name, an\noperator, and the value that you want to use for filtering. The value\nmust be a string, a number, or a boolean. The operator\nmust be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`.\n\nFor example, if you are filtering Compute Engine instances, you can\nexclude instances named `example-instance` by specifying\n`name != example-instance`.\n\nThe `:*` comparison can be used to test whether a key has been defined.\nFor example, to find all objects with `owner` label use:\n```\nlabels.owner:*\n```\n\nYou can also filter nested fields. For example, you could specify\n`scheduling.automaticRestart = false` to include instances only\nif they are not scheduled for automatic restarts. You can use filtering\non nested fields to filter based onresource labels.\n\nTo filter on multiple expressions, provide each separate expression within\nparentheses. For example:\n```\n(scheduling.automaticRestart = true)\n(cpuPlatform = \"Intel Skylake\")\n```\nBy default, each expression is an `AND` expression. However, you\ncan include `AND` and `OR` expressions explicitly.\nFor example:\n```\n(cpuPlatform = \"Intel Skylake\") OR\n(cpuPlatform = \"Intel Broadwell\") AND\n(scheduling.automaticRestart = true)\n```\n\nIf you want to use a regular expression, use the `eq` (equal) or `ne`\n(not equal) operator against a single un-parenthesized expression with or\nwithout quotes or against multiple parenthesized expressions. Examples:\n\n`fieldname eq unquoted literal`\n`fieldname eq 'single quoted literal'`\n`fieldname eq \"double quoted literal\"`\n`(fieldname1 eq literal) (fieldname2 ne \"literal\")`\n\nThe literal value is interpreted as a regular expression using GoogleRE2 library syntax.\nThe literal value must match the entire field.\n\nFor example, to filter for instances that do not end with name \"instance\",\nyou would use `name ne .*instance`.\n\nYou cannot combine constraints on multiple fields using regular\nexpressions.", "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`)", + "description": "The maximum number of results per page that should be returned.\nIf the number of available results is larger than `maxResults`,\nCompute Engine returns a `nextPageToken` that can be used to get\nthe next page of results in subsequent list requests. Acceptable values are\n`0` to `500`, inclusive. (Default: `500`)", "format": "uint32", "location": "query", "minimum": "0", "type": "integer" }, + "networkEndpointGroup": { + "description": "The name of the network endpoint group from which you want to generate a\nlist of included network endpoints. It should comply with RFC1035.", + "location": "path", + "required": true, + "type": "string" + }, "orderBy": { - "description": "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.", + "description": "Sorts list results by a certain order. By default, results\nare returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation\ntimestamp using `orderBy=\"creationTimestamp desc\"`. This sorts\nresults based on the `creationTimestamp` field in\nreverse chronological order (newest result first). Use this to sort\nresources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or\n`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.", + "description": "Specifies a page token to use. Set `pageToken` to the\n`nextPageToken` returned by a previous list request to get\nthe next page of results.", "location": "query", "type": "string" }, @@ -30150,32 +31563,50 @@ "required": true, "type": "string" }, + "region": { + "description": "The name of theregion\nwhere the network endpoint group is located. It should comply with RFC1035.", + "location": "path", + "required": true, + "type": "string" + }, "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", + "description": "Opt-in for partial success behavior which provides partial results in case\nof failure. The default value is false.\n\nFor example, when partial success behavior is enabled, aggregatedList for a\nsingle zone scope either returns all resources in the zone or no resources,\nwith an error code.", "location": "query", "type": "boolean" } }, - "path": "projects/{project}/global/securityPolicies/listPreconfiguredExpressionSets", + "path": "projects/{project}/regions/{region}/networkEndpointGroups/{networkEndpointGroup}/listNetworkEndpoints", "response": { - "$ref": "SecurityPoliciesListPreconfiguredExpressionSetsResponse" + "$ref": "NetworkEndpointGroupsListNetworkEndpoints" }, "scopes": [ "https://www.googleapis.com/auth/cloud-platform", "https://www.googleapis.com/auth/compute", "https://www.googleapis.com/auth/compute.readonly" ] - }, - "patch": { - "description": "Patches the specified policy with the data included in the request. To clear fields in the policy, leave the fields empty and specify them in the updateMask. This cannot be used to be update the rules in the policy. Please use the per rule methods like addRule, patchRule, and removeRule instead.", - "flatPath": "projects/{project}/global/securityPolicies/{securityPolicy}", - "httpMethod": "PATCH", - "id": "compute.securityPolicies.patch", + } + } + }, + "regionNetworkFirewallPolicies": { + "methods": { + "addAssociation": { + "description": "Inserts an association for the specified network firewall policy.", + "flatPath": "projects/{project}/regions/{region}/firewallPolicies/{firewallPolicy}/addAssociation", + "httpMethod": "POST", + "id": "compute.regionNetworkFirewallPolicies.addAssociation", "parameterOrder": [ "project", - "securityPolicy" + "region", + "firewallPolicy" ], "parameters": { + "firewallPolicy": { + "description": "Name of the firewall policy to update.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "required": true, + "type": "string" + }, "project": { "description": "Project ID for this request.", "location": "path", @@ -30183,28 +31614,27 @@ "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. 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).", - "location": "query", - "type": "string" - }, - "securityPolicy": { - "description": "Name of the security policy to update.", + "region": { + "description": "Name of the region scoping this request.", "location": "path", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", "required": true, "type": "string" }, - "updateMask": { - "description": "Indicates fields to be cleared as part of this request.", - "format": "google-fieldmask", + "replaceExistingAssociation": { + "description": "Indicates whether or not to replace it if an association already exists.\nThis is false by default, in which case an error will be returned if an\nassociation already exists.", + "location": "query", + "type": "boolean" + }, + "requestId": { + "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).", "location": "query", "type": "string" } }, - "path": "projects/{project}/global/securityPolicies/{securityPolicy}", + "path": "projects/{project}/regions/{region}/firewallPolicies/{firewallPolicy}/addAssociation", "request": { - "$ref": "SecurityPolicy" + "$ref": "FirewallPolicyAssociation" }, "response": { "$ref": "Operation" @@ -30214,18 +31644,32 @@ "https://www.googleapis.com/auth/compute" ] }, - "patchRule": { - "description": "Patches a rule at the specified priority. To clear fields in the rule, leave the fields empty and specify them in the updateMask.", - "flatPath": "projects/{project}/global/securityPolicies/{securityPolicy}/patchRule", + "addRule": { + "description": "Inserts a rule into a network firewall policy.", + "flatPath": "projects/{project}/regions/{region}/firewallPolicies/{firewallPolicy}/addRule", "httpMethod": "POST", - "id": "compute.securityPolicies.patchRule", + "id": "compute.regionNetworkFirewallPolicies.addRule", "parameterOrder": [ "project", - "securityPolicy" + "region", + "firewallPolicy" ], "parameters": { - "priority": { - "description": "The priority of the rule to patch.", + "firewallPolicy": { + "description": "Name of the firewall policy to update.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "required": true, + "type": "string" + }, + "maxPriority": { + "description": "When rule.priority is not specified, auto choose a unused priority betweenminPriority and maxPriority\u003e.\nThis field is exclusive with rule.priority.", + "format": "int32", + "location": "query", + "type": "integer" + }, + "minPriority": { + "description": "When rule.priority is not specified, auto choose a unused priority betweenminPriority and maxPriority\u003e.\nThis field is exclusive with rule.priority.", "format": "int32", "location": "query", "type": "integer" @@ -30237,28 +31681,22 @@ "required": true, "type": "string" }, - "securityPolicy": { - "description": "Name of the security policy to update.", + "region": { + "description": "Name of the region scoping this request.", "location": "path", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", "required": true, "type": "string" }, - "updateMask": { - "description": "Indicates fields to be cleared as part of this request.", - "format": "google-fieldmask", + "requestId": { + "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).", "location": "query", "type": "string" - }, - "validateOnly": { - "description": "If true, the request will not be committed.", - "location": "query", - "type": "boolean" } }, - "path": "projects/{project}/global/securityPolicies/{securityPolicy}/patchRule", + "path": "projects/{project}/regions/{region}/firewallPolicies/{firewallPolicy}/addRule", "request": { - "$ref": "SecurityPolicyRule" + "$ref": "FirewallPolicyRule" }, "response": { "$ref": "Operation" @@ -30268,21 +31706,23 @@ "https://www.googleapis.com/auth/compute" ] }, - "removeRule": { - "description": "Deletes a rule at the specified priority.", - "flatPath": "projects/{project}/global/securityPolicies/{securityPolicy}/removeRule", + "cloneRules": { + "description": "Copies rules to the specified network firewall policy.", + "flatPath": "projects/{project}/regions/{region}/firewallPolicies/{firewallPolicy}/cloneRules", "httpMethod": "POST", - "id": "compute.securityPolicies.removeRule", + "id": "compute.regionNetworkFirewallPolicies.cloneRules", "parameterOrder": [ "project", - "securityPolicy" + "region", + "firewallPolicy" ], "parameters": { - "priority": { - "description": "The priority of the rule to remove from the security policy.", - "format": "int32", - "location": "query", - "type": "integer" + "firewallPolicy": { + "description": "Name of the firewall policy to update.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "required": true, + "type": "string" }, "project": { "description": "Project ID for this request.", @@ -30291,15 +31731,25 @@ "required": true, "type": "string" }, - "securityPolicy": { - "description": "Name of the security policy to update.", + "region": { + "description": "Name of the region scoping this request.", "location": "path", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "pattern": "[a-z](?:[-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\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).", + "location": "query", + "type": "string" + }, + "sourceFirewallPolicy": { + "description": "The firewall policy from which to copy rules.", + "location": "query", + "type": "string" } }, - "path": "projects/{project}/global/securityPolicies/{securityPolicy}/removeRule", + "path": "projects/{project}/regions/{region}/firewallPolicies/{firewallPolicy}/cloneRules", "response": { "$ref": "Operation" }, @@ -30308,35 +31758,45 @@ "https://www.googleapis.com/auth/compute" ] }, - "setLabels": { - "description": "Sets the labels on a security policy. To learn more about labels, read the Labeling Resources documentation.", - "flatPath": "projects/{project}/global/securityPolicies/{resource}/setLabels", - "httpMethod": "POST", - "id": "compute.securityPolicies.setLabels", + "delete": { + "description": "Deletes the specified network firewall policy.", + "flatPath": "projects/{project}/regions/{region}/firewallPolicies/{firewallPolicy}", + "httpMethod": "DELETE", + "id": "compute.regionNetworkFirewallPolicies.delete", "parameterOrder": [ "project", - "resource" + "region", + "firewallPolicy" ], "parameters": { - "project": { + "firewallPolicy": { + "description": "Name of the firewall policy to delete.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "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" }, - "resource": { - "description": "Name or id of the resource for this request.", + "region": { + "description": "Name of the region scoping this request.", "location": "path", - "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "pattern": "[a-z](?:[-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\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).", + "location": "query", + "type": "string" } }, - "path": "projects/{project}/global/securityPolicies/{resource}/setLabels", - "request": { - "$ref": "GlobalSetLabelsRequest" - }, + "path": "projects/{project}/regions/{region}/firewallPolicies/{firewallPolicy}", "response": { "$ref": "Operation" }, @@ -30344,70 +31804,43 @@ "https://www.googleapis.com/auth/cloud-platform", "https://www.googleapis.com/auth/compute" ] - } - } - }, - "serviceAttachments": { - "methods": { - "aggregatedList": { - "description": "Retrieves the list of all ServiceAttachment resources, regional and global, available to the specified project. To prevent failure, Google recommends that you set the `returnPartialSuccess` parameter to `true`.", - "flatPath": "projects/{project}/aggregated/serviceAttachments", + }, + "get": { + "description": "Returns the specified network firewall policy.", + "flatPath": "projects/{project}/regions/{region}/firewallPolicies/{firewallPolicy}", "httpMethod": "GET", - "id": "compute.serviceAttachments.aggregatedList", + "id": "compute.regionNetworkFirewallPolicies.get", "parameterOrder": [ - "project" + "project", + "region", + "firewallPolicy" ], "parameters": { - "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` 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) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.", - "location": "query", - "type": "string" - }, - "includeAllScopes": { - "description": "Indicates whether every visible scope for each scope type (zone, region, global) should be included in the response. For new resource types added after this field, the flag has no effect as new resource types will always include every visible scope for each scope type in response. For resource types which predate this field, if this flag is omitted or false, only scopes of the scope types where the resource type is expected to be found will be included.", - "location": "query", - "type": "boolean" - }, - "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. 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.", - "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", + "firewallPolicy": { + "description": "Name of the firewall policy to get.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "required": true, "type": "string" }, "project": { - "description": "Name of the project scoping this request.", + "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" }, - "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", - "location": "query", - "type": "boolean" - }, - "serviceProjectNumber": { - "description": "The Shared VPC service project id or service project number for which aggregated list request is invoked for subnetworks list-usable api.", - "format": "int64", - "location": "query", + "region": { + "description": "Name of the region scoping this request.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "required": true, "type": "string" } }, - "path": "projects/{project}/aggregated/serviceAttachments", + "path": "projects/{project}/regions/{region}/firewallPolicies/{firewallPolicy}", "response": { - "$ref": "ServiceAttachmentAggregatedList" + "$ref": "FirewallPolicy" }, "scopes": [ "https://www.googleapis.com/auth/cloud-platform", @@ -30415,17 +31848,29 @@ "https://www.googleapis.com/auth/compute.readonly" ] }, - "delete": { - "description": "Deletes the specified ServiceAttachment in the given scope", - "flatPath": "projects/{project}/regions/{region}/serviceAttachments/{serviceAttachment}", - "httpMethod": "DELETE", - "id": "compute.serviceAttachments.delete", + "getAssociation": { + "description": "Gets an association with the specified name.", + "flatPath": "projects/{project}/regions/{region}/firewallPolicies/{firewallPolicy}/getAssociation", + "httpMethod": "GET", + "id": "compute.regionNetworkFirewallPolicies.getAssociation", "parameterOrder": [ "project", "region", - "serviceAttachment" + "firewallPolicy" ], "parameters": { + "firewallPolicy": { + "description": "Name of the firewall policy to which the queried association belongs.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "required": true, + "type": "string" + }, + "name": { + "description": "The name of the association to get from the firewall policy.", + "location": "query", + "type": "string" + }, "project": { "description": "Project ID for this request.", "location": "path", @@ -30434,45 +31879,40 @@ "type": "string" }, "region": { - "description": "Name of the region of this request.", + "description": "Name of the region scoping this request.", "location": "path", "pattern": "[a-z](?:[-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. 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).", - "location": "query", - "type": "string" - }, - "serviceAttachment": { - "description": "Name of the ServiceAttachment resource to delete.", - "location": "path", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "required": true, - "type": "string" } }, - "path": "projects/{project}/regions/{region}/serviceAttachments/{serviceAttachment}", + "path": "projects/{project}/regions/{region}/firewallPolicies/{firewallPolicy}/getAssociation", "response": { - "$ref": "Operation" + "$ref": "FirewallPolicyAssociation" }, "scopes": [ "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" ] }, - "get": { - "description": "Returns the specified ServiceAttachment resource in the given scope.", - "flatPath": "projects/{project}/regions/{region}/serviceAttachments/{serviceAttachment}", + "getEffectiveFirewalls": { + "description": "Returns the effective firewalls on a given network.", + "flatPath": "projects/{project}/regions/{region}/firewallPolicies/getEffectiveFirewalls", "httpMethod": "GET", - "id": "compute.serviceAttachments.get", + "id": "compute.regionNetworkFirewallPolicies.getEffectiveFirewalls", "parameterOrder": [ "project", "region", - "serviceAttachment" + "network" ], "parameters": { + "network": { + "description": "Network reference", + "location": "query", + "required": true, + "type": "string" + }, "project": { "description": "Project ID for this request.", "location": "path", @@ -30481,23 +31921,16 @@ "type": "string" }, "region": { - "description": "Name of the region of this request.", + "description": "Name of the region scoping this request.", "location": "path", "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", "required": true, "type": "string" - }, - "serviceAttachment": { - "description": "Name of the ServiceAttachment resource to return.", - "location": "path", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "required": true, - "type": "string" } }, - "path": "projects/{project}/regions/{region}/serviceAttachments/{serviceAttachment}", + "path": "projects/{project}/regions/{region}/firewallPolicies/getEffectiveFirewalls", "response": { - "$ref": "ServiceAttachment" + "$ref": "RegionNetworkFirewallPoliciesGetEffectiveFirewallsResponse" }, "scopes": [ "https://www.googleapis.com/auth/cloud-platform", @@ -30506,10 +31939,10 @@ ] }, "getIamPolicy": { - "description": "Gets the access control policy for a resource. May be empty if no such policy or resource exists.", - "flatPath": "projects/{project}/regions/{region}/serviceAttachments/{resource}/getIamPolicy", + "description": "Gets the access control policy for a resource. May be empty if no such\npolicy or resource exists.", + "flatPath": "projects/{project}/regions/{region}/firewallPolicies/{resource}/getIamPolicy", "httpMethod": "GET", - "id": "compute.serviceAttachments.getIamPolicy", + "id": "compute.regionNetworkFirewallPolicies.getIamPolicy", "parameterOrder": [ "project", "region", @@ -30544,7 +31977,7 @@ "type": "string" } }, - "path": "projects/{project}/regions/{region}/serviceAttachments/{resource}/getIamPolicy", + "path": "projects/{project}/regions/{region}/firewallPolicies/{resource}/getIamPolicy", "response": { "$ref": "Policy" }, @@ -30554,11 +31987,60 @@ "https://www.googleapis.com/auth/compute.readonly" ] }, + "getRule": { + "description": "Gets a rule of the specified priority.", + "flatPath": "projects/{project}/regions/{region}/firewallPolicies/{firewallPolicy}/getRule", + "httpMethod": "GET", + "id": "compute.regionNetworkFirewallPolicies.getRule", + "parameterOrder": [ + "project", + "region", + "firewallPolicy" + ], + "parameters": { + "firewallPolicy": { + "description": "Name of the firewall policy to which the queried rule belongs.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "required": true, + "type": "string" + }, + "priority": { + "description": "The priority of the rule to get from the firewall policy.", + "format": "int32", + "location": "query", + "type": "integer" + }, + "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 scoping this request.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "required": true, + "type": "string" + } + }, + "path": "projects/{project}/regions/{region}/firewallPolicies/{firewallPolicy}/getRule", + "response": { + "$ref": "FirewallPolicyRule" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ] + }, "insert": { - "description": "Creates a ServiceAttachment in the specified project in the given scope using the parameters that are included in the request.", - "flatPath": "projects/{project}/regions/{region}/serviceAttachments", + "description": "Creates a new network firewall policy in the specified project and region.", + "flatPath": "projects/{project}/regions/{region}/firewallPolicies", "httpMethod": "POST", - "id": "compute.serviceAttachments.insert", + "id": "compute.regionNetworkFirewallPolicies.insert", "parameterOrder": [ "project", "region" @@ -30572,21 +32054,21 @@ "type": "string" }, "region": { - "description": "Name of the region of this request.", + "description": "Name of the region scoping this request.", "location": "path", "pattern": "[a-z](?:[-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. 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).", + "description": "An optional request ID to identify requests. Specify a unique request ID\nso that if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).", "location": "query", "type": "string" } }, - "path": "projects/{project}/regions/{region}/serviceAttachments", + "path": "projects/{project}/regions/{region}/firewallPolicies", "request": { - "$ref": "ServiceAttachment" + "$ref": "FirewallPolicy" }, "response": { "$ref": "Operation" @@ -30597,35 +32079,35 @@ ] }, "list": { - "description": "Lists the ServiceAttachments for a project in the given scope.", - "flatPath": "projects/{project}/regions/{region}/serviceAttachments", + "description": "Lists all the network firewall policies that have been configured\nfor the specified project in the given region.", + "flatPath": "projects/{project}/regions/{region}/firewallPolicies", "httpMethod": "GET", - "id": "compute.serviceAttachments.list", + "id": "compute.regionNetworkFirewallPolicies.list", "parameterOrder": [ "project", "region" ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` 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) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.", + "description": "A filter expression that filters resources listed in the response. Most\nCompute resources support two types of filter expressions:\nexpressions that support regular expressions and expressions that follow\nAPI improvement proposal AIP-160.\nThese two types of filter expressions cannot be mixed in one request.\n\nIf you want to use AIP-160, your expression must specify the field name, an\noperator, and the value that you want to use for filtering. The value\nmust be a string, a number, or a boolean. The operator\nmust be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`.\n\nFor example, if you are filtering Compute Engine instances, you can\nexclude instances named `example-instance` by specifying\n`name != example-instance`.\n\nThe `:*` comparison can be used to test whether a key has been defined.\nFor example, to find all objects with `owner` label use:\n```\nlabels.owner:*\n```\n\nYou can also filter nested fields. For example, you could specify\n`scheduling.automaticRestart = false` to include instances only\nif they are not scheduled for automatic restarts. You can use filtering\non nested fields to filter based onresource labels.\n\nTo filter on multiple expressions, provide each separate expression within\nparentheses. For example:\n```\n(scheduling.automaticRestart = true)\n(cpuPlatform = \"Intel Skylake\")\n```\nBy default, each expression is an `AND` expression. However, you\ncan include `AND` and `OR` expressions explicitly.\nFor example:\n```\n(cpuPlatform = \"Intel Skylake\") OR\n(cpuPlatform = \"Intel Broadwell\") AND\n(scheduling.automaticRestart = true)\n```\n\nIf you want to use a regular expression, use the `eq` (equal) or `ne`\n(not equal) operator against a single un-parenthesized expression with or\nwithout quotes or against multiple parenthesized expressions. Examples:\n\n`fieldname eq unquoted literal`\n`fieldname eq 'single quoted literal'`\n`fieldname eq \"double quoted literal\"`\n`(fieldname1 eq literal) (fieldname2 ne \"literal\")`\n\nThe literal value is interpreted as a regular expression using GoogleRE2 library syntax.\nThe literal value must match the entire field.\n\nFor example, to filter for instances that do not end with name \"instance\",\nyou would use `name ne .*instance`.\n\nYou cannot combine constraints on multiple fields using regular\nexpressions.", "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`)", + "description": "The maximum number of results per page that should be returned.\nIf the number of available results is larger than `maxResults`,\nCompute Engine returns a `nextPageToken` that can be used to get\nthe next page of results in subsequent list requests. Acceptable values are\n`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. 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.", + "description": "Sorts list results by a certain order. By default, results\nare returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation\ntimestamp using `orderBy=\"creationTimestamp desc\"`. This sorts\nresults based on the `creationTimestamp` field in\nreverse chronological order (newest result first). Use this to sort\nresources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or\n`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.", + "description": "Specifies a page token to use. Set `pageToken` to the\n`nextPageToken` returned by a previous list request to get\nthe next page of results.", "location": "query", "type": "string" }, @@ -30637,21 +32119,21 @@ "type": "string" }, "region": { - "description": "Name of the region of this request.", + "description": "Name of the region scoping this request.", "location": "path", "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", "required": true, "type": "string" }, "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", + "description": "Opt-in for partial success behavior which provides partial results in case\nof failure. The default value is false.\n\nFor example, when partial success behavior is enabled, aggregatedList for a\nsingle zone scope either returns all resources in the zone or no resources,\nwith an error code.", "location": "query", "type": "boolean" } }, - "path": "projects/{project}/regions/{region}/serviceAttachments", + "path": "projects/{project}/regions/{region}/firewallPolicies", "response": { - "$ref": "ServiceAttachmentList" + "$ref": "FirewallPolicyList" }, "scopes": [ "https://www.googleapis.com/auth/cloud-platform", @@ -30660,16 +32142,23 @@ ] }, "patch": { - "description": "Patches the specified ServiceAttachment resource with the data included in the request. This method supports PATCH semantics and uses JSON merge patch format and processing rules.", - "flatPath": "projects/{project}/regions/{region}/serviceAttachments/{serviceAttachment}", + "description": "Patches the specified network firewall policy.", + "flatPath": "projects/{project}/regions/{region}/firewallPolicies/{firewallPolicy}", "httpMethod": "PATCH", - "id": "compute.serviceAttachments.patch", + "id": "compute.regionNetworkFirewallPolicies.patch", "parameterOrder": [ "project", "region", - "serviceAttachment" + "firewallPolicy" ], "parameters": { + "firewallPolicy": { + "description": "Name of the firewall policy to update.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "required": true, + "type": "string" + }, "project": { "description": "Project ID for this request.", "location": "path", @@ -30678,26 +32167,21 @@ "type": "string" }, "region": { - "description": "The region scoping this request and should conform to RFC1035.", + "description": "Name of the region scoping this request.", "location": "path", + "pattern": "[a-z](?:[-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. 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).", + "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).", "location": "query", "type": "string" - }, - "serviceAttachment": { - "description": "The resource id of the ServiceAttachment to patch. It should conform to RFC1035 resource name or be a string form on an unsigned long number.", - "location": "path", - "required": true, - "type": "string" } }, - "path": "projects/{project}/regions/{region}/serviceAttachments/{serviceAttachment}", + "path": "projects/{project}/regions/{region}/firewallPolicies/{firewallPolicy}", "request": { - "$ref": "ServiceAttachment" + "$ref": "FirewallPolicy" }, "response": { "$ref": "Operation" @@ -30707,17 +32191,30 @@ "https://www.googleapis.com/auth/compute" ] }, - "setIamPolicy": { - "description": "Sets the access control policy on the specified resource. Replaces any existing policy.", - "flatPath": "projects/{project}/regions/{region}/serviceAttachments/{resource}/setIamPolicy", + "patchRule": { + "description": "Patches a rule of the specified priority.", + "flatPath": "projects/{project}/regions/{region}/firewallPolicies/{firewallPolicy}/patchRule", "httpMethod": "POST", - "id": "compute.serviceAttachments.setIamPolicy", + "id": "compute.regionNetworkFirewallPolicies.patchRule", "parameterOrder": [ "project", "region", - "resource" + "firewallPolicy" ], "parameters": { + "firewallPolicy": { + "description": "Name of the firewall policy to update.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "required": true, + "type": "string" + }, + "priority": { + "description": "The priority of the rule to patch.", + "format": "int32", + "location": "query", + "type": "integer" + }, "project": { "description": "Project ID for this request.", "location": "path", @@ -30726,43 +32223,53 @@ "type": "string" }, "region": { - "description": "The name of the region for this request.", + "description": "Name of the region scoping this request.", "location": "path", "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", "required": true, "type": "string" }, - "resource": { - "description": "Name or id of the resource for this request.", - "location": "path", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "required": true, + "requestId": { + "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).", + "location": "query", "type": "string" } }, - "path": "projects/{project}/regions/{region}/serviceAttachments/{resource}/setIamPolicy", + "path": "projects/{project}/regions/{region}/firewallPolicies/{firewallPolicy}/patchRule", "request": { - "$ref": "RegionSetPolicyRequest" + "$ref": "FirewallPolicyRule" }, "response": { - "$ref": "Policy" + "$ref": "Operation" }, "scopes": [ "https://www.googleapis.com/auth/cloud-platform", "https://www.googleapis.com/auth/compute" ] }, - "testIamPermissions": { - "description": "Returns permissions that a caller has on the specified resource.", - "flatPath": "projects/{project}/regions/{region}/serviceAttachments/{resource}/testIamPermissions", + "removeAssociation": { + "description": "Removes an association for the specified network firewall policy.", + "flatPath": "projects/{project}/regions/{region}/firewallPolicies/{firewallPolicy}/removeAssociation", "httpMethod": "POST", - "id": "compute.serviceAttachments.testIamPermissions", + "id": "compute.regionNetworkFirewallPolicies.removeAssociation", "parameterOrder": [ "project", "region", - "resource" + "firewallPolicy" ], "parameters": { + "firewallPolicy": { + "description": "Name of the firewall policy to update.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "required": true, + "type": "string" + }, + "name": { + "description": "Name for the association that will be removed.", + "location": "query", + "type": "string" + }, "project": { "description": "Project ID for this request.", "location": "path", @@ -30771,73 +32278,51 @@ "type": "string" }, "region": { - "description": "The name of the region for this request.", + "description": "Name of the region scoping this request.", "location": "path", "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", "required": true, "type": "string" }, - "resource": { - "description": "Name or id of the resource for this request.", - "location": "path", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "required": true, + "requestId": { + "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).", + "location": "query", "type": "string" } }, - "path": "projects/{project}/regions/{region}/serviceAttachments/{resource}/testIamPermissions", - "request": { - "$ref": "TestPermissionsRequest" - }, + "path": "projects/{project}/regions/{region}/firewallPolicies/{firewallPolicy}/removeAssociation", "response": { - "$ref": "TestPermissionsResponse" + "$ref": "Operation" }, "scopes": [ "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" + "https://www.googleapis.com/auth/compute" ] - } - } - }, - "snapshotSettings": { - "methods": { - "get": { - "description": "Get snapshot settings.", - "flatPath": "projects/{project}/global/snapshotSettings", - "httpMethod": "GET", - "id": "compute.snapshotSettings.get", + }, + "removeRule": { + "description": "Deletes a rule of the specified priority.", + "flatPath": "projects/{project}/regions/{region}/firewallPolicies/{firewallPolicy}/removeRule", + "httpMethod": "POST", + "id": "compute.regionNetworkFirewallPolicies.removeRule", "parameterOrder": [ - "project" + "project", + "region", + "firewallPolicy" ], "parameters": { - "project": { - "description": "Project ID for this request.", + "firewallPolicy": { + "description": "Name of the firewall policy to update.", "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])?))", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", "required": true, "type": "string" - } - }, - "path": "projects/{project}/global/snapshotSettings", - "response": { - "$ref": "SnapshotSettings" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" - ] - }, - "patch": { - "description": "Patch snapshot settings.", - "flatPath": "projects/{project}/global/snapshotSettings", - "httpMethod": "PATCH", - "id": "compute.snapshotSettings.patch", - "parameterOrder": [ - "project" - ], - "parameters": { + }, + "priority": { + "description": "The priority of the rule to remove from the firewall policy.", + "format": "int32", + "location": "query", + "type": "integer" + }, "project": { "description": "Project ID for this request.", "location": "path", @@ -30845,22 +32330,20 @@ "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. 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).", - "location": "query", + "region": { + "description": "Name of the region scoping this request.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "required": true, "type": "string" }, - "updateMask": { - "description": "update_mask indicates fields to be updated as part of this request.", - "format": "google-fieldmask", + "requestId": { + "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).", "location": "query", "type": "string" } }, - "path": "projects/{project}/global/snapshotSettings", - "request": { - "$ref": "SnapshotSettings" - }, + "path": "projects/{project}/regions/{region}/firewallPolicies/{firewallPolicy}/removeRule", "response": { "$ref": "Operation" }, @@ -30868,19 +32351,16 @@ "https://www.googleapis.com/auth/cloud-platform", "https://www.googleapis.com/auth/compute" ] - } - } - }, - "snapshots": { - "methods": { - "delete": { - "description": "Deletes the specified Snapshot resource. Keep in mind that deleting a single snapshot might not necessarily delete all the data on that snapshot. If any data on the snapshot that is marked for deletion is needed for subsequent snapshots, the data will be moved to the next corresponding snapshot. For more information, see Deleting snapshots.", - "flatPath": "projects/{project}/global/snapshots/{snapshot}", - "httpMethod": "DELETE", - "id": "compute.snapshots.delete", + }, + "setIamPolicy": { + "description": "Sets the access control policy on the specified resource.\nReplaces any existing policy.", + "flatPath": "projects/{project}/regions/{region}/firewallPolicies/{resource}/setIamPolicy", + "httpMethod": "POST", + "id": "compute.regionNetworkFirewallPolicies.setIamPolicy", "parameterOrder": [ "project", - "snapshot" + "region", + "resource" ], "parameters": { "project": { @@ -30890,36 +32370,42 @@ "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. 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).", - "location": "query", + "region": { + "description": "The name of the region for this request.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "required": true, "type": "string" }, - "snapshot": { - "description": "Name of the Snapshot resource to delete.", + "resource": { + "description": "Name or id of the resource for this request.", "location": "path", "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", "required": true, "type": "string" } }, - "path": "projects/{project}/global/snapshots/{snapshot}", + "path": "projects/{project}/regions/{region}/firewallPolicies/{resource}/setIamPolicy", + "request": { + "$ref": "RegionSetPolicyRequest" + }, "response": { - "$ref": "Operation" + "$ref": "Policy" }, "scopes": [ "https://www.googleapis.com/auth/cloud-platform", "https://www.googleapis.com/auth/compute" ] }, - "get": { - "description": "Returns the specified Snapshot resource.", - "flatPath": "projects/{project}/global/snapshots/{snapshot}", - "httpMethod": "GET", - "id": "compute.snapshots.get", + "testIamPermissions": { + "description": "Returns permissions that a caller has on the specified resource.", + "flatPath": "projects/{project}/regions/{region}/firewallPolicies/{resource}/testIamPermissions", + "httpMethod": "POST", + "id": "compute.regionNetworkFirewallPolicies.testIamPermissions", "parameterOrder": [ "project", - "snapshot" + "region", + "resource" ], "parameters": { "project": { @@ -30929,58 +32415,187 @@ "required": true, "type": "string" }, - "snapshot": { - "description": "Name of the Snapshot resource to return.", + "region": { + "description": "The name of the region for this request.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "required": true, + "type": "string" + }, + "resource": { + "description": "Name or id of the resource for this request.", "location": "path", "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", "required": true, "type": "string" } }, - "path": "projects/{project}/global/snapshots/{snapshot}", + "path": "projects/{project}/regions/{region}/firewallPolicies/{resource}/testIamPermissions", + "request": { + "$ref": "TestPermissionsRequest" + }, "response": { - "$ref": "Snapshot" + "$ref": "TestPermissionsResponse" }, "scopes": [ "https://www.googleapis.com/auth/cloud-platform", "https://www.googleapis.com/auth/compute", "https://www.googleapis.com/auth/compute.readonly" ] - }, - "getIamPolicy": { - "description": "Gets the access control policy for a resource. May be empty if no such policy or resource exists.", - "flatPath": "projects/{project}/global/snapshots/{resource}/getIamPolicy", + } + } + }, + "regionNotificationEndpoints": { + "methods": { + "aggregatedList": { + "description": "Retrieves the list of all NotificationEndpoint resources,\nregional and global, available to the specified project.", + "flatPath": "projects/{project}/aggregated/notificationEndpoints", "httpMethod": "GET", - "id": "compute.snapshots.getIamPolicy", + "id": "compute.regionNotificationEndpoints.aggregatedList", "parameterOrder": [ - "project", - "resource" + "project" ], "parameters": { - "optionsRequestedPolicyVersion": { - "description": "Requested IAM Policy version.", - "format": "int32", + "filter": { + "description": "A filter expression that filters resources listed in the response. Most\nCompute resources support two types of filter expressions:\nexpressions that support regular expressions and expressions that follow\nAPI improvement proposal AIP-160.\nThese two types of filter expressions cannot be mixed in one request.\n\nIf you want to use AIP-160, your expression must specify the field name, an\noperator, and the value that you want to use for filtering. The value\nmust be a string, a number, or a boolean. The operator\nmust be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`.\n\nFor example, if you are filtering Compute Engine instances, you can\nexclude instances named `example-instance` by specifying\n`name != example-instance`.\n\nThe `:*` comparison can be used to test whether a key has been defined.\nFor example, to find all objects with `owner` label use:\n```\nlabels.owner:*\n```\n\nYou can also filter nested fields. For example, you could specify\n`scheduling.automaticRestart = false` to include instances only\nif they are not scheduled for automatic restarts. You can use filtering\non nested fields to filter based onresource labels.\n\nTo filter on multiple expressions, provide each separate expression within\nparentheses. For example:\n```\n(scheduling.automaticRestart = true)\n(cpuPlatform = \"Intel Skylake\")\n```\nBy default, each expression is an `AND` expression. However, you\ncan include `AND` and `OR` expressions explicitly.\nFor example:\n```\n(cpuPlatform = \"Intel Skylake\") OR\n(cpuPlatform = \"Intel Broadwell\") AND\n(scheduling.automaticRestart = true)\n```\n\nIf you want to use a regular expression, use the `eq` (equal) or `ne`\n(not equal) operator against a single un-parenthesized expression with or\nwithout quotes or against multiple parenthesized expressions. Examples:\n\n`fieldname eq unquoted literal`\n`fieldname eq 'single quoted literal'`\n`fieldname eq \"double quoted literal\"`\n`(fieldname1 eq literal) (fieldname2 ne \"literal\")`\n\nThe literal value is interpreted as a regular expression using GoogleRE2 library syntax.\nThe literal value must match the entire field.\n\nFor example, to filter for instances that do not end with name \"instance\",\nyou would use `name ne .*instance`.\n\nYou cannot combine constraints on multiple fields using regular\nexpressions.", + "location": "query", + "type": "string" + }, + "includeAllScopes": { + "description": "Indicates whether every visible scope for each scope type (zone, region,\nglobal) should be included in the response. For new resource types added\nafter this field, the flag has no effect as new resource types will always\ninclude every visible scope for each scope type in response. For resource\ntypes which predate this field, if this flag is omitted or false, only\nscopes of the scope types where the resource type is expected to be found\nwill be included.", + "location": "query", + "type": "boolean" + }, + "maxResults": { + "default": "500", + "description": "The maximum number of results per page that should be returned.\nIf the number of available results is larger than `maxResults`,\nCompute Engine returns a `nextPageToken` that can be used to get\nthe next page of results in subsequent list requests. Acceptable values are\n`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\nare returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation\ntimestamp using `orderBy=\"creationTimestamp desc\"`. This sorts\nresults based on the `creationTimestamp` field in\nreverse chronological order (newest result first). Use this to sort\nresources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or\n`creationTimestamp desc` is supported.", + "location": "query", + "type": "string" + }, + "pageToken": { + "description": "Specifies a page token to use. Set `pageToken` to the\n`nextPageToken` returned by a previous list request to get\nthe next page of results.", + "location": "query", + "type": "string" + }, "project": { - "description": "Project ID for this request.", + "description": "Name of the project scoping 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" }, - "resource": { - "description": "Name or id of the resource for this request.", + "returnPartialSuccess": { + "description": "Opt-in for partial success behavior which provides partial results in case\nof failure. The default value is false.\n\nFor example, when partial success behavior is enabled, aggregatedList for a\nsingle zone scope either returns all resources in the zone or no resources,\nwith an error code.", + "location": "query", + "type": "boolean" + }, + "serviceProjectNumber": { + "description": "The Shared VPC service project id or service project number for which\naggregated list request is invoked for subnetworks list-usable api.", + "format": "int64", + "location": "query", + "type": "string" + } + }, + "path": "projects/{project}/aggregated/notificationEndpoints", + "response": { + "$ref": "NotificationEndpointAggregatedList" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ] + }, + "delete": { + "description": "Deletes the specified NotificationEndpoint in the given region", + "flatPath": "projects/{project}/regions/{region}/notificationEndpoints/{notificationEndpoint}", + "httpMethod": "DELETE", + "id": "compute.regionNotificationEndpoints.delete", + "parameterOrder": [ + "project", + "region", + "notificationEndpoint" + ], + "parameters": { + "notificationEndpoint": { + "description": "Name of the NotificationEndpoint resource to delete.", "location": "path", - "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "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" + }, + "region": { + "description": "Name of the region scoping this request.", + "location": "path", + "pattern": "[a-z](?:[-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\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).", + "location": "query", + "type": "string" } }, - "path": "projects/{project}/global/snapshots/{resource}/getIamPolicy", + "path": "projects/{project}/regions/{region}/notificationEndpoints/{notificationEndpoint}", "response": { - "$ref": "Policy" + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ] + }, + "get": { + "description": "Returns the specified NotificationEndpoint resource in the given region.", + "flatPath": "projects/{project}/regions/{region}/notificationEndpoints/{notificationEndpoint}", + "httpMethod": "GET", + "id": "compute.regionNotificationEndpoints.get", + "parameterOrder": [ + "project", + "region", + "notificationEndpoint" + ], + "parameters": { + "notificationEndpoint": { + "description": "Name of the NotificationEndpoint resource to return.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "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" + }, + "region": { + "description": "Name of the region scoping this request.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "required": true, + "type": "string" + } + }, + "path": "projects/{project}/regions/{region}/notificationEndpoints/{notificationEndpoint}", + "response": { + "$ref": "NotificationEndpoint" }, "scopes": [ "https://www.googleapis.com/auth/cloud-platform", @@ -30989,12 +32604,13 @@ ] }, "insert": { - "description": "Creates a snapshot in the specified project using the data included in the request. For regular snapshot creation, consider using this method instead of disks.createSnapshot, as this method supports more features, such as creating snapshots in a project different from the source disk project.", - "flatPath": "projects/{project}/global/snapshots", + "description": "Create a NotificationEndpoint in the specified project in the given region\nusing the parameters that are included in the request.", + "flatPath": "projects/{project}/regions/{region}/notificationEndpoints", "httpMethod": "POST", - "id": "compute.snapshots.insert", + "id": "compute.regionNotificationEndpoints.insert", "parameterOrder": [ - "project" + "project", + "region" ], "parameters": { "project": { @@ -31004,15 +32620,22 @@ "required": true, "type": "string" }, + "region": { + "description": "Name of the region scoping this request.", + "location": "path", + "pattern": "[a-z](?:[-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. 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).", + "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).", "location": "query", "type": "string" } }, - "path": "projects/{project}/global/snapshots", + "path": "projects/{project}/regions/{region}/notificationEndpoints", "request": { - "$ref": "Snapshot" + "$ref": "NotificationEndpoint" }, "response": { "$ref": "Operation" @@ -31023,34 +32646,35 @@ ] }, "list": { - "description": "Retrieves the list of Snapshot resources contained within the specified project.", - "flatPath": "projects/{project}/global/snapshots", + "description": "Lists the NotificationEndpoints for a project in the given region.", + "flatPath": "projects/{project}/regions/{region}/notificationEndpoints", "httpMethod": "GET", - "id": "compute.snapshots.list", + "id": "compute.regionNotificationEndpoints.list", "parameterOrder": [ - "project" + "project", + "region" ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` 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) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.", + "description": "A filter expression that filters resources listed in the response. Most\nCompute resources support two types of filter expressions:\nexpressions that support regular expressions and expressions that follow\nAPI improvement proposal AIP-160.\nThese two types of filter expressions cannot be mixed in one request.\n\nIf you want to use AIP-160, your expression must specify the field name, an\noperator, and the value that you want to use for filtering. The value\nmust be a string, a number, or a boolean. The operator\nmust be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`.\n\nFor example, if you are filtering Compute Engine instances, you can\nexclude instances named `example-instance` by specifying\n`name != example-instance`.\n\nThe `:*` comparison can be used to test whether a key has been defined.\nFor example, to find all objects with `owner` label use:\n```\nlabels.owner:*\n```\n\nYou can also filter nested fields. For example, you could specify\n`scheduling.automaticRestart = false` to include instances only\nif they are not scheduled for automatic restarts. You can use filtering\non nested fields to filter based onresource labels.\n\nTo filter on multiple expressions, provide each separate expression within\nparentheses. For example:\n```\n(scheduling.automaticRestart = true)\n(cpuPlatform = \"Intel Skylake\")\n```\nBy default, each expression is an `AND` expression. However, you\ncan include `AND` and `OR` expressions explicitly.\nFor example:\n```\n(cpuPlatform = \"Intel Skylake\") OR\n(cpuPlatform = \"Intel Broadwell\") AND\n(scheduling.automaticRestart = true)\n```\n\nIf you want to use a regular expression, use the `eq` (equal) or `ne`\n(not equal) operator against a single un-parenthesized expression with or\nwithout quotes or against multiple parenthesized expressions. Examples:\n\n`fieldname eq unquoted literal`\n`fieldname eq 'single quoted literal'`\n`fieldname eq \"double quoted literal\"`\n`(fieldname1 eq literal) (fieldname2 ne \"literal\")`\n\nThe literal value is interpreted as a regular expression using GoogleRE2 library syntax.\nThe literal value must match the entire field.\n\nFor example, to filter for instances that do not end with name \"instance\",\nyou would use `name ne .*instance`.\n\nYou cannot combine constraints on multiple fields using regular\nexpressions.", "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`)", + "description": "The maximum number of results per page that should be returned.\nIf the number of available results is larger than `maxResults`,\nCompute Engine returns a `nextPageToken` that can be used to get\nthe next page of results in subsequent list requests. Acceptable values are\n`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. 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.", + "description": "Sorts list results by a certain order. By default, results\nare returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation\ntimestamp using `orderBy=\"creationTimestamp desc\"`. This sorts\nresults based on the `creationTimestamp` field in\nreverse chronological order (newest result first). Use this to sort\nresources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or\n`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.", + "description": "Specifies a page token to use. Set `pageToken` to the\n`nextPageToken` returned by a previous list request to get\nthe next page of results.", "location": "query", "type": "string" }, @@ -31061,15 +32685,22 @@ "required": true, "type": "string" }, + "region": { + "description": "Name of the region scoping this request.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "required": true, + "type": "string" + }, "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", + "description": "Opt-in for partial success behavior which provides partial results in case\nof failure. The default value is false.\n\nFor example, when partial success behavior is enabled, aggregatedList for a\nsingle zone scope either returns all resources in the zone or no resources,\nwith an error code.", "location": "query", "type": "boolean" } }, - "path": "projects/{project}/global/snapshots", + "path": "projects/{project}/regions/{region}/notificationEndpoints", "response": { - "$ref": "SnapshotList" + "$ref": "NotificationEndpointList" }, "scopes": [ "https://www.googleapis.com/auth/cloud-platform", @@ -31077,13 +32708,14 @@ "https://www.googleapis.com/auth/compute.readonly" ] }, - "setIamPolicy": { - "description": "Sets the access control policy on the specified resource. Replaces any existing policy.", - "flatPath": "projects/{project}/global/snapshots/{resource}/setIamPolicy", + "testIamPermissions": { + "description": "Returns permissions that a caller has on the specified resource.", + "flatPath": "projects/{project}/regions/{region}/notificationEndpoints/{resource}/testIamPermissions", "httpMethod": "POST", - "id": "compute.snapshots.setIamPolicy", + "id": "compute.regionNotificationEndpoints.testIamPermissions", "parameterOrder": [ "project", + "region", "resource" ], "parameters": { @@ -31094,36 +32726,56 @@ "required": true, "type": "string" }, + "region": { + "description": "The name of the region for this request.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "required": true, + "type": "string" + }, "resource": { "description": "Name or id of the resource for this request.", "location": "path", - "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", "required": true, "type": "string" } }, - "path": "projects/{project}/global/snapshots/{resource}/setIamPolicy", + "path": "projects/{project}/regions/{region}/notificationEndpoints/{resource}/testIamPermissions", "request": { - "$ref": "GlobalSetPolicyRequest" + "$ref": "TestPermissionsRequest" }, "response": { - "$ref": "Policy" + "$ref": "TestPermissionsResponse" }, "scopes": [ "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" ] - }, - "setLabels": { - "description": "Sets the labels on a snapshot. To learn more about labels, read the Labeling Resources documentation.", - "flatPath": "projects/{project}/global/snapshots/{resource}/setLabels", - "httpMethod": "POST", - "id": "compute.snapshots.setLabels", + } + } + }, + "regionOperations": { + "methods": { + "delete": { + "description": "Deletes the specified region-specific Operations resource.", + "flatPath": "projects/{project}/regions/{region}/operations/{operation}", + "httpMethod": "DELETE", + "id": "compute.regionOperations.delete", "parameterOrder": [ "project", - "resource" + "region", + "operation" ], "parameters": { + "operation": { + "description": "Name of the Operations resource to delete, or its unique numeric\nidentifier.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "required": true, + "type": "string" + }, "project": { "description": "Project ID for this request.", "location": "path", @@ -31131,36 +32783,38 @@ "required": true, "type": "string" }, - "resource": { - "description": "Name or id of the resource for this request.", + "region": { + "description": "Name of the region for this request.", "location": "path", - "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", "required": true, "type": "string" } }, - "path": "projects/{project}/global/snapshots/{resource}/setLabels", - "request": { - "$ref": "GlobalSetLabelsRequest" - }, - "response": { - "$ref": "Operation" - }, + "path": "projects/{project}/regions/{region}/operations/{operation}", "scopes": [ "https://www.googleapis.com/auth/cloud-platform", "https://www.googleapis.com/auth/compute" ] }, - "testIamPermissions": { - "description": "Returns permissions that a caller has on the specified resource.", - "flatPath": "projects/{project}/global/snapshots/{resource}/testIamPermissions", - "httpMethod": "POST", - "id": "compute.snapshots.testIamPermissions", + "get": { + "description": "Retrieves the specified region-specific Operations resource.", + "flatPath": "projects/{project}/regions/{region}/operations/{operation}", + "httpMethod": "GET", + "id": "compute.regionOperations.get", "parameterOrder": [ "project", - "resource" + "region", + "operation" ], "parameters": { + "operation": { + "description": "Name of the Operations resource to return, or its unique numeric\nidentifier.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "required": true, + "type": "string" + }, "project": { "description": "Project ID for this request.", "location": "path", @@ -31168,105 +32822,193 @@ "required": true, "type": "string" }, - "resource": { - "description": "Name or id of the resource for this request.", + "region": { + "description": "Name of the region for this request.", "location": "path", - "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", "required": true, "type": "string" } }, - "path": "projects/{project}/global/snapshots/{resource}/testIamPermissions", - "request": { - "$ref": "TestPermissionsRequest" - }, + "path": "projects/{project}/regions/{region}/operations/{operation}", "response": { - "$ref": "TestPermissionsResponse" + "$ref": "Operation" }, "scopes": [ "https://www.googleapis.com/auth/cloud-platform", "https://www.googleapis.com/auth/compute", "https://www.googleapis.com/auth/compute.readonly" ] - } - } - }, - "sslCertificates": { - "methods": { - "aggregatedList": { - "description": "Retrieves the list of all SslCertificate resources, regional and global, available to the specified project. To prevent failure, Google recommends that you set the `returnPartialSuccess` parameter to `true`.", - "flatPath": "projects/{project}/aggregated/sslCertificates", + }, + "list": { + "description": "Retrieves a list of Operation resources contained within\nthe specified region.", + "flatPath": "projects/{project}/regions/{region}/operations", "httpMethod": "GET", - "id": "compute.sslCertificates.aggregatedList", + "id": "compute.regionOperations.list", "parameterOrder": [ - "project" + "project", + "region" ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` 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) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.", + "description": "A filter expression that filters resources listed in the response. Most\nCompute resources support two types of filter expressions:\nexpressions that support regular expressions and expressions that follow\nAPI improvement proposal AIP-160.\nThese two types of filter expressions cannot be mixed in one request.\n\nIf you want to use AIP-160, your expression must specify the field name, an\noperator, and the value that you want to use for filtering. The value\nmust be a string, a number, or a boolean. The operator\nmust be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`.\n\nFor example, if you are filtering Compute Engine instances, you can\nexclude instances named `example-instance` by specifying\n`name != example-instance`.\n\nThe `:*` comparison can be used to test whether a key has been defined.\nFor example, to find all objects with `owner` label use:\n```\nlabels.owner:*\n```\n\nYou can also filter nested fields. For example, you could specify\n`scheduling.automaticRestart = false` to include instances only\nif they are not scheduled for automatic restarts. You can use filtering\non nested fields to filter based onresource labels.\n\nTo filter on multiple expressions, provide each separate expression within\nparentheses. For example:\n```\n(scheduling.automaticRestart = true)\n(cpuPlatform = \"Intel Skylake\")\n```\nBy default, each expression is an `AND` expression. However, you\ncan include `AND` and `OR` expressions explicitly.\nFor example:\n```\n(cpuPlatform = \"Intel Skylake\") OR\n(cpuPlatform = \"Intel Broadwell\") AND\n(scheduling.automaticRestart = true)\n```\n\nIf you want to use a regular expression, use the `eq` (equal) or `ne`\n(not equal) operator against a single un-parenthesized expression with or\nwithout quotes or against multiple parenthesized expressions. Examples:\n\n`fieldname eq unquoted literal`\n`fieldname eq 'single quoted literal'`\n`fieldname eq \"double quoted literal\"`\n`(fieldname1 eq literal) (fieldname2 ne \"literal\")`\n\nThe literal value is interpreted as a regular expression using GoogleRE2 library syntax.\nThe literal value must match the entire field.\n\nFor example, to filter for instances that do not end with name \"instance\",\nyou would use `name ne .*instance`.\n\nYou cannot combine constraints on multiple fields using regular\nexpressions.", "location": "query", "type": "string" }, - "includeAllScopes": { - "description": "Indicates whether every visible scope for each scope type (zone, region, global) should be included in the response. For new resource types added after this field, the flag has no effect as new resource types will always include every visible scope for each scope type in response. For resource types which predate this field, if this flag is omitted or false, only scopes of the scope types where the resource type is expected to be found will be included.", - "location": "query", - "type": "boolean" - }, "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`)", + "description": "The maximum number of results per page that should be returned.\nIf the number of available results is larger than `maxResults`,\nCompute Engine returns a `nextPageToken` that can be used to get\nthe next page of results in subsequent list requests. Acceptable values are\n`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. 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.", + "description": "Sorts list results by a certain order. By default, results\nare returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation\ntimestamp using `orderBy=\"creationTimestamp desc\"`. This sorts\nresults based on the `creationTimestamp` field in\nreverse chronological order (newest result first). Use this to sort\nresources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or\n`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.", + "description": "Specifies a page token to use. Set `pageToken` to the\n`nextPageToken` returned by a previous list request to get\nthe next page of results.", "location": "query", "type": "string" }, "project": { - "description": "Name of the project scoping this request.", + "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" + }, "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", + "description": "Opt-in for partial success behavior which provides partial results in case\nof failure. The default value is false.\n\nFor example, when partial success behavior is enabled, aggregatedList for a\nsingle zone scope either returns all resources in the zone or no resources,\nwith an error code.", "location": "query", "type": "boolean" + } + }, + "path": "projects/{project}/regions/{region}/operations", + "response": { + "$ref": "OperationList" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ] + }, + "wait": { + "description": "Waits for the specified Operation resource to return as `DONE`\nor for the request to approach the 2 minute deadline, and retrieves the\nspecified Operation resource. This method differs from the\n`GET` method in that it waits for no more than the default\ndeadline (2 minutes) and then returns the current state of the operation,\nwhich might be `DONE` or still in progress.\n\nThis method is called on a best-effort basis. Specifically:\n \n \n - In uncommon cases, when the server is overloaded, the request might\n return before the default deadline is reached, or might return after zero\n seconds.\n - If the default deadline is reached, there is no guarantee that the\n operation is actually done when the method returns. Be prepared to retry\n if the operation is not `DONE`.", + "flatPath": "projects/{project}/regions/{region}/operations/{operation}/wait", + "httpMethod": "POST", + "id": "compute.regionOperations.wait", + "parameterOrder": [ + "project", + "region", + "operation" + ], + "parameters": { + "operation": { + "description": "Name of the Operations resource to return, or its unique numeric\nidentifier.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "required": true, + "type": "string" }, - "serviceProjectNumber": { - "description": "The Shared VPC service project id or service project number for which aggregated list request is invoked for subnetworks list-usable api.", - "format": "int64", - "location": "query", + "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" } }, - "path": "projects/{project}/aggregated/sslCertificates", + "path": "projects/{project}/regions/{region}/operations/{operation}/wait", "response": { - "$ref": "SslCertificateAggregatedList" + "$ref": "Operation" }, "scopes": [ "https://www.googleapis.com/auth/cloud-platform", "https://www.googleapis.com/auth/compute", "https://www.googleapis.com/auth/compute.readonly" ] + } + } + }, + "regionSecurityPolicies": { + "methods": { + "addRule": { + "description": "Inserts a rule into a security policy.", + "flatPath": "projects/{project}/regions/{region}/securityPolicies/{securityPolicy}/addRule", + "httpMethod": "POST", + "id": "compute.regionSecurityPolicies.addRule", + "parameterOrder": [ + "project", + "region", + "securityPolicy" + ], + "parameters": { + "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 scoping this request.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "required": true, + "type": "string" + }, + "securityPolicy": { + "description": "Name of the security policy to update.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "required": true, + "type": "string" + }, + "validateOnly": { + "description": "If true, the request will not be committed.", + "location": "query", + "type": "boolean" + } + }, + "path": "projects/{project}/regions/{region}/securityPolicies/{securityPolicy}/addRule", + "request": { + "$ref": "SecurityPolicyRule" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ] }, "delete": { - "description": "Deletes the specified SslCertificate resource.", - "flatPath": "projects/{project}/global/sslCertificates/{sslCertificate}", + "description": "Deletes the specified policy.", + "flatPath": "projects/{project}/regions/{region}/securityPolicies/{securityPolicy}", "httpMethod": "DELETE", - "id": "compute.sslCertificates.delete", + "id": "compute.regionSecurityPolicies.delete", "parameterOrder": [ "project", - "sslCertificate" + "region", + "securityPolicy" ], "parameters": { "project": { @@ -31276,20 +33018,27 @@ "required": true, "type": "string" }, + "region": { + "description": "Name of the region scoping this request.", + "location": "path", + "pattern": "[a-z](?:[-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. 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).", + "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).", "location": "query", "type": "string" }, - "sslCertificate": { - "description": "Name of the SslCertificate resource to delete.", + "securityPolicy": { + "description": "Name of the security policy to delete.", "location": "path", "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", "required": true, "type": "string" } }, - "path": "projects/{project}/global/sslCertificates/{sslCertificate}", + "path": "projects/{project}/regions/{region}/securityPolicies/{securityPolicy}", "response": { "$ref": "Operation" }, @@ -31299,13 +33048,14 @@ ] }, "get": { - "description": "Returns the specified SslCertificate resource.", - "flatPath": "projects/{project}/global/sslCertificates/{sslCertificate}", + "description": "List all of the ordered rules present in a single specified policy.", + "flatPath": "projects/{project}/regions/{region}/securityPolicies/{securityPolicy}", "httpMethod": "GET", - "id": "compute.sslCertificates.get", + "id": "compute.regionSecurityPolicies.get", "parameterOrder": [ "project", - "sslCertificate" + "region", + "securityPolicy" ], "parameters": { "project": { @@ -31315,17 +33065,73 @@ "required": true, "type": "string" }, - "sslCertificate": { - "description": "Name of the SslCertificate resource to return.", + "region": { + "description": "Name of the region scoping this request.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "required": true, + "type": "string" + }, + "securityPolicy": { + "description": "Name of the security policy to get.", "location": "path", "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", "required": true, "type": "string" } }, - "path": "projects/{project}/global/sslCertificates/{sslCertificate}", + "path": "projects/{project}/regions/{region}/securityPolicies/{securityPolicy}", "response": { - "$ref": "SslCertificate" + "$ref": "SecurityPolicy" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ] + }, + "getRule": { + "description": "Gets a rule at the specified priority.", + "flatPath": "projects/{project}/regions/{region}/securityPolicies/{securityPolicy}/getRule", + "httpMethod": "GET", + "id": "compute.regionSecurityPolicies.getRule", + "parameterOrder": [ + "project", + "region", + "securityPolicy" + ], + "parameters": { + "priority": { + "description": "The priority of the rule to get from the security policy.", + "format": "int32", + "location": "query", + "type": "integer" + }, + "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 scoping this request.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "required": true, + "type": "string" + }, + "securityPolicy": { + "description": "Name of the security policy to which the queried rule belongs.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "required": true, + "type": "string" + } + }, + "path": "projects/{project}/regions/{region}/securityPolicies/{securityPolicy}/getRule", + "response": { + "$ref": "SecurityPolicyRule" }, "scopes": [ "https://www.googleapis.com/auth/cloud-platform", @@ -31334,12 +33140,13 @@ ] }, "insert": { - "description": "Creates a SslCertificate resource in the specified project using the data included in the request.", - "flatPath": "projects/{project}/global/sslCertificates", + "description": "Creates a new policy in the specified project using the data included in\nthe request.", + "flatPath": "projects/{project}/regions/{region}/securityPolicies", "httpMethod": "POST", - "id": "compute.sslCertificates.insert", + "id": "compute.regionSecurityPolicies.insert", "parameterOrder": [ - "project" + "project", + "region" ], "parameters": { "project": { @@ -31349,15 +33156,27 @@ "required": true, "type": "string" }, + "region": { + "description": "Name of the region scoping this request.", + "location": "path", + "pattern": "[a-z](?:[-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. 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).", + "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).", "location": "query", "type": "string" + }, + "validateOnly": { + "description": "If true, the request will not be committed.", + "location": "query", + "type": "boolean" } }, - "path": "projects/{project}/global/sslCertificates", + "path": "projects/{project}/regions/{region}/securityPolicies", "request": { - "$ref": "SslCertificate" + "$ref": "SecurityPolicy" }, "response": { "$ref": "Operation" @@ -31368,34 +33187,35 @@ ] }, "list": { - "description": "Retrieves the list of SslCertificate resources available to the specified project.", - "flatPath": "projects/{project}/global/sslCertificates", + "description": "List all the policies that have been configured for the specified project\nand region.", + "flatPath": "projects/{project}/regions/{region}/securityPolicies", "httpMethod": "GET", - "id": "compute.sslCertificates.list", + "id": "compute.regionSecurityPolicies.list", "parameterOrder": [ - "project" + "project", + "region" ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` 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) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.", + "description": "A filter expression that filters resources listed in the response. Most\nCompute resources support two types of filter expressions:\nexpressions that support regular expressions and expressions that follow\nAPI improvement proposal AIP-160.\nThese two types of filter expressions cannot be mixed in one request.\n\nIf you want to use AIP-160, your expression must specify the field name, an\noperator, and the value that you want to use for filtering. The value\nmust be a string, a number, or a boolean. The operator\nmust be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`.\n\nFor example, if you are filtering Compute Engine instances, you can\nexclude instances named `example-instance` by specifying\n`name != example-instance`.\n\nThe `:*` comparison can be used to test whether a key has been defined.\nFor example, to find all objects with `owner` label use:\n```\nlabels.owner:*\n```\n\nYou can also filter nested fields. For example, you could specify\n`scheduling.automaticRestart = false` to include instances only\nif they are not scheduled for automatic restarts. You can use filtering\non nested fields to filter based onresource labels.\n\nTo filter on multiple expressions, provide each separate expression within\nparentheses. For example:\n```\n(scheduling.automaticRestart = true)\n(cpuPlatform = \"Intel Skylake\")\n```\nBy default, each expression is an `AND` expression. However, you\ncan include `AND` and `OR` expressions explicitly.\nFor example:\n```\n(cpuPlatform = \"Intel Skylake\") OR\n(cpuPlatform = \"Intel Broadwell\") AND\n(scheduling.automaticRestart = true)\n```\n\nIf you want to use a regular expression, use the `eq` (equal) or `ne`\n(not equal) operator against a single un-parenthesized expression with or\nwithout quotes or against multiple parenthesized expressions. Examples:\n\n`fieldname eq unquoted literal`\n`fieldname eq 'single quoted literal'`\n`fieldname eq \"double quoted literal\"`\n`(fieldname1 eq literal) (fieldname2 ne \"literal\")`\n\nThe literal value is interpreted as a regular expression using GoogleRE2 library syntax.\nThe literal value must match the entire field.\n\nFor example, to filter for instances that do not end with name \"instance\",\nyou would use `name ne .*instance`.\n\nYou cannot combine constraints on multiple fields using regular\nexpressions.", "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`)", + "description": "The maximum number of results per page that should be returned.\nIf the number of available results is larger than `maxResults`,\nCompute Engine returns a `nextPageToken` that can be used to get\nthe next page of results in subsequent list requests. Acceptable values are\n`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. 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.", + "description": "Sorts list results by a certain order. By default, results\nare returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation\ntimestamp using `orderBy=\"creationTimestamp desc\"`. This sorts\nresults based on the `creationTimestamp` field in\nreverse chronological order (newest result first). Use this to sort\nresources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or\n`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.", + "description": "Specifies a page token to use. Set `pageToken` to the\n`nextPageToken` returned by a previous list request to get\nthe next page of results.", "location": "query", "type": "string" }, @@ -31406,102 +33226,102 @@ "required": true, "type": "string" }, + "region": { + "description": "Name of the region scoping this request.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "required": true, + "type": "string" + }, "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", + "description": "Opt-in for partial success behavior which provides partial results in case\nof failure. The default value is false.\n\nFor example, when partial success behavior is enabled, aggregatedList for a\nsingle zone scope either returns all resources in the zone or no resources,\nwith an error code.", "location": "query", "type": "boolean" } }, - "path": "projects/{project}/global/sslCertificates", + "path": "projects/{project}/regions/{region}/securityPolicies", "response": { - "$ref": "SslCertificateList" + "$ref": "SecurityPolicyList" }, "scopes": [ "https://www.googleapis.com/auth/cloud-platform", "https://www.googleapis.com/auth/compute", "https://www.googleapis.com/auth/compute.readonly" ] - } - } - }, - "sslPolicies": { - "methods": { - "aggregatedList": { - "description": "Retrieves the list of all SslPolicy resources, regional and global, available to the specified project. To prevent failure, Google recommends that you set the `returnPartialSuccess` parameter to `true`.", - "flatPath": "projects/{project}/aggregated/sslPolicies", - "httpMethod": "GET", - "id": "compute.sslPolicies.aggregatedList", + }, + "patch": { + "description": "Patches the specified policy with the data included in the request. To\nclear fields in the policy, leave the fields empty and specify them in the\nupdateMask. This cannot be used to be update the rules in the policy.\nPlease use the per rule methods like addRule, patchRule, and removeRule\ninstead.", + "flatPath": "projects/{project}/regions/{region}/securityPolicies/{securityPolicy}", + "httpMethod": "PATCH", + "id": "compute.regionSecurityPolicies.patch", "parameterOrder": [ - "project" + "project", + "region", + "securityPolicy" ], "parameters": { - "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` 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) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.", - "location": "query", + "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" }, - "includeAllScopes": { - "description": "Indicates whether every visible scope for each scope type (zone, region, global) should be included in the response. For new resource types added after this field, the flag has no effect as new resource types will always include every visible scope for each scope type in response. For resource types which predate this field, if this flag is omitted or false, only scopes of the scope types where the resource type is expected to be found will be included.", - "location": "query", - "type": "boolean" - }, - "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. 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.", - "location": "query", + "region": { + "description": "Name of the region scoping this request.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "required": true, "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.", + "requestId": { + "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).", "location": "query", "type": "string" }, - "project": { - "description": "Name of the project scoping this request.", + "securityPolicy": { + "description": "Name of the security policy to update.", "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])?))", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", "required": true, "type": "string" }, - "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", - "location": "query", - "type": "boolean" - }, - "serviceProjectNumber": { - "description": "The Shared VPC service project id or service project number for which aggregated list request is invoked for subnetworks list-usable api.", - "format": "int64", + "updateMask": { + "description": "Indicates fields to be cleared as part of this request.", + "format": "google-fieldmask", "location": "query", "type": "string" } }, - "path": "projects/{project}/aggregated/sslPolicies", + "path": "projects/{project}/regions/{region}/securityPolicies/{securityPolicy}", + "request": { + "$ref": "SecurityPolicy" + }, "response": { - "$ref": "SslPoliciesAggregatedList" + "$ref": "Operation" }, "scopes": [ "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" + "https://www.googleapis.com/auth/compute" ] }, - "delete": { - "description": "Deletes the specified SSL policy. The SSL policy resource can be deleted only if it is not in use by any TargetHttpsProxy or TargetSslProxy resources.", - "flatPath": "projects/{project}/global/sslPolicies/{sslPolicy}", - "httpMethod": "DELETE", - "id": "compute.sslPolicies.delete", + "patchRule": { + "description": "Patches a rule at the specified priority. To clear fields in the rule,\nleave the fields empty and specify them in the updateMask.", + "flatPath": "projects/{project}/regions/{region}/securityPolicies/{securityPolicy}/patchRule", + "httpMethod": "POST", + "id": "compute.regionSecurityPolicies.patchRule", "parameterOrder": [ "project", - "sslPolicy" + "region", + "securityPolicy" ], "parameters": { + "priority": { + "description": "The priority of the rule to patch.", + "format": "int32", + "location": "query", + "type": "integer" + }, "project": { "description": "Project ID for this request.", "location": "path", @@ -31509,19 +33329,36 @@ "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. 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).", - "location": "query", + "region": { + "description": "Name of the region scoping this request.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "required": true, "type": "string" }, - "sslPolicy": { - "description": "Name of the SSL policy to delete. The name must be 1-63 characters long, and comply with RFC1035.", + "securityPolicy": { + "description": "Name of the security policy to update.", "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", "required": true, "type": "string" + }, + "updateMask": { + "description": "Indicates fields to be cleared as part of this request.", + "format": "google-fieldmask", + "location": "query", + "type": "string" + }, + "validateOnly": { + "description": "If true, the request will not be committed.", + "location": "query", + "type": "boolean" } }, - "path": "projects/{project}/global/sslPolicies/{sslPolicy}", + "path": "projects/{project}/regions/{region}/securityPolicies/{securityPolicy}/patchRule", + "request": { + "$ref": "SecurityPolicyRule" + }, "response": { "$ref": "Operation" }, @@ -31530,16 +33367,23 @@ "https://www.googleapis.com/auth/compute" ] }, - "get": { - "description": "Lists all of the ordered rules present in a single specified policy.", - "flatPath": "projects/{project}/global/sslPolicies/{sslPolicy}", - "httpMethod": "GET", - "id": "compute.sslPolicies.get", + "removeRule": { + "description": "Deletes a rule at the specified priority.", + "flatPath": "projects/{project}/regions/{region}/securityPolicies/{securityPolicy}/removeRule", + "httpMethod": "POST", + "id": "compute.regionSecurityPolicies.removeRule", "parameterOrder": [ "project", - "sslPolicy" + "region", + "securityPolicy" ], "parameters": { + "priority": { + "description": "The priority of the rule to remove from the security policy.", + "format": "int32", + "location": "query", + "type": "integer" + }, "project": { "description": "Project ID for this request.", "location": "path", @@ -31547,30 +33391,39 @@ "required": true, "type": "string" }, - "sslPolicy": { - "description": "Name of the SSL policy to update. The name must be 1-63 characters long, and comply with RFC1035.", + "region": { + "description": "Name of the region scoping this request.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "required": true, + "type": "string" + }, + "securityPolicy": { + "description": "Name of the security policy to update.", "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", "required": true, "type": "string" } }, - "path": "projects/{project}/global/sslPolicies/{sslPolicy}", + "path": "projects/{project}/regions/{region}/securityPolicies/{securityPolicy}/removeRule", "response": { - "$ref": "SslPolicy" + "$ref": "Operation" }, "scopes": [ "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" + "https://www.googleapis.com/auth/compute" ] }, - "insert": { - "description": "Returns the specified SSL policy resource.", - "flatPath": "projects/{project}/global/sslPolicies", + "setLabels": { + "description": "Sets the labels on a security policy. To learn more about labels,\nread the Labeling Resources\ndocumentation.", + "flatPath": "projects/{project}/regions/{region}/securityPolicies/{resource}/setLabels", "httpMethod": "POST", - "id": "compute.sslPolicies.insert", + "id": "compute.regionSecurityPolicies.setLabels", "parameterOrder": [ - "project" + "project", + "region", + "resource" ], "parameters": { "project": { @@ -31580,15 +33433,29 @@ "required": true, "type": "string" }, + "region": { + "description": "The region for this request.", + "location": "path", + "pattern": "[a-z](?:[-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. 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).", + "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).", "location": "query", "type": "string" + }, + "resource": { + "description": "Name or id of the resource for this request.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "required": true, + "type": "string" } }, - "path": "projects/{project}/global/sslPolicies", + "path": "projects/{project}/regions/{region}/securityPolicies/{resource}/setLabels", "request": { - "$ref": "SslPolicy" + "$ref": "RegionSetLabelsRequest" }, "response": { "$ref": "Operation" @@ -31597,39 +33464,21 @@ "https://www.googleapis.com/auth/cloud-platform", "https://www.googleapis.com/auth/compute" ] - }, - "list": { - "description": "Lists all the SSL policies that have been configured for the specified project.", - "flatPath": "projects/{project}/global/sslPolicies", + } + } + }, + "regionSnapshotSettings": { + "methods": { + "get": { + "description": "Get region snapshot settings.", + "flatPath": "projects/{project}/regions/{region}/snapshotSettings", "httpMethod": "GET", - "id": "compute.sslPolicies.list", + "id": "compute.regionSnapshotSettings.get", "parameterOrder": [ - "project" + "project", + "region" ], "parameters": { - "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` 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) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.", - "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. 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.", - "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", @@ -31637,15 +33486,17 @@ "required": true, "type": "string" }, - "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", - "location": "query", - "type": "boolean" + "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" } }, - "path": "projects/{project}/global/sslPolicies", + "path": "projects/{project}/regions/{region}/snapshotSettings", "response": { - "$ref": "SslPoliciesList" + "$ref": "SnapshotSettings" }, "scopes": [ "https://www.googleapis.com/auth/cloud-platform", @@ -31653,38 +33504,16 @@ "https://www.googleapis.com/auth/compute.readonly" ] }, - "listAvailableFeatures": { - "description": "Lists all features that can be specified in the SSL policy when using custom profile.", - "flatPath": "projects/{project}/global/sslPolicies/listAvailableFeatures", - "httpMethod": "GET", - "id": "compute.sslPolicies.listAvailableFeatures", + "patch": { + "description": "Patch region snapshot settings.", + "flatPath": "projects/{project}/regions/{region}/snapshotSettings", + "httpMethod": "PATCH", + "id": "compute.regionSnapshotSettings.patch", "parameterOrder": [ - "project" + "project", + "region" ], "parameters": { - "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` 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) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.", - "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. 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.", - "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", @@ -31692,30 +33521,50 @@ "required": true, "type": "string" }, - "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", + "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" + }, + "requestId": { + "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).", "location": "query", - "type": "boolean" + "type": "string" + }, + "updateMask": { + "description": "update_mask indicates fields to be updated as part of this request.", + "format": "google-fieldmask", + "location": "query", + "type": "string" } }, - "path": "projects/{project}/global/sslPolicies/listAvailableFeatures", + "path": "projects/{project}/regions/{region}/snapshotSettings", + "request": { + "$ref": "SnapshotSettings" + }, "response": { - "$ref": "SslPoliciesListAvailableFeaturesResponse" + "$ref": "Operation" }, "scopes": [ "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" + "https://www.googleapis.com/auth/compute" ] - }, - "patch": { - "description": "Patches the specified SSL policy with the data included in the request.", - "flatPath": "projects/{project}/global/sslPolicies/{sslPolicy}", - "httpMethod": "PATCH", - "id": "compute.sslPolicies.patch", + } + } + }, + "regionSnapshots": { + "methods": { + "delete": { + "description": "Deletes the specified Snapshot resource. Keep in mind that deleting\na single snapshot might not necessarily delete all the data on that\nsnapshot. If any data on the snapshot that is marked for deletion is\nneeded for subsequent snapshots, the data will be moved to the next\ncorresponding snapshot.\n\nFor more information, seeDeleting\nsnapshots.", + "flatPath": "projects/{project}/regions/{region}/snapshots/{snapshot}", + "httpMethod": "DELETE", + "id": "compute.regionSnapshots.delete", "parameterOrder": [ "project", - "sslPolicy" + "region", + "snapshot" ], "parameters": { "project": { @@ -31725,22 +33574,27 @@ "required": true, "type": "string" }, + "region": { + "description": "The name of the region for this request.", + "location": "path", + "pattern": "[a-z](?:[-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. 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).", + "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).", "location": "query", "type": "string" }, - "sslPolicy": { - "description": "Name of the SSL policy to update. The name must be 1-63 characters long, and comply with RFC1035.", + "snapshot": { + "description": "Name of the snapshot resource to delete.", "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", "required": true, "type": "string" } }, - "path": "projects/{project}/global/sslPolicies/{sslPolicy}", - "request": { - "$ref": "SslPolicy" - }, + "path": "projects/{project}/regions/{region}/snapshots/{snapshot}", "response": { "$ref": "Operation" }, @@ -31748,48 +33602,18 @@ "https://www.googleapis.com/auth/cloud-platform", "https://www.googleapis.com/auth/compute" ] - } - } - }, - "storagePoolTypes": { - "methods": { - "aggregatedList": { - "description": "Retrieves an aggregated list of storage pool types. To prevent failure, Google recommends that you set the `returnPartialSuccess` parameter to `true`.", - "flatPath": "projects/{project}/aggregated/storagePoolTypes", + }, + "get": { + "description": "Returns the specified Snapshot resource.", + "flatPath": "projects/{project}/regions/{region}/snapshots/{snapshot}", "httpMethod": "GET", - "id": "compute.storagePoolTypes.aggregatedList", + "id": "compute.regionSnapshots.get", "parameterOrder": [ - "project" + "project", + "region", + "snapshot" ], "parameters": { - "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` 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) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.", - "location": "query", - "type": "string" - }, - "includeAllScopes": { - "description": "Indicates whether every visible scope for each scope type (zone, region, global) should be included in the response. For new resource types added after this field, the flag has no effect as new resource types will always include every visible scope for each scope type in response. For resource types which predate this field, if this flag is omitted or false, only scopes of the scope types where the resource type is expected to be found will be included.", - "location": "query", - "type": "boolean" - }, - "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. 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.", - "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", @@ -31797,21 +33621,24 @@ "required": true, "type": "string" }, - "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", - "location": "query", - "type": "boolean" + "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" }, - "serviceProjectNumber": { - "description": "The Shared VPC service project id or service project number for which aggregated list request is invoked for subnetworks list-usable api.", - "format": "int64", - "location": "query", + "snapshot": { + "description": "Name of the Snapshot resource to return.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "required": true, "type": "string" } }, - "path": "projects/{project}/aggregated/storagePoolTypes", + "path": "projects/{project}/regions/{region}/snapshots/{snapshot}", "response": { - "$ref": "StoragePoolTypeAggregatedList" + "$ref": "Snapshot" }, "scopes": [ "https://www.googleapis.com/auth/cloud-platform", @@ -31819,17 +33646,23 @@ "https://www.googleapis.com/auth/compute.readonly" ] }, - "get": { - "description": "Returns the specified storage pool type.", - "flatPath": "projects/{project}/zones/{zone}/storagePoolTypes/{storagePoolType}", + "getIamPolicy": { + "description": "Gets the access control policy for a resource. May be empty if no such\npolicy or resource exists.", + "flatPath": "projects/{project}/regions/{region}/snapshots/{resource}/getIamPolicy", "httpMethod": "GET", - "id": "compute.storagePoolTypes.get", + "id": "compute.regionSnapshots.getIamPolicy", "parameterOrder": [ "project", - "zone", - "storagePoolType" + "region", + "resource" ], "parameters": { + "optionsRequestedPolicyVersion": { + "description": "Requested IAM Policy version.", + "format": "int32", + "location": "query", + "type": "integer" + }, "project": { "description": "Project ID for this request.", "location": "path", @@ -31837,24 +33670,24 @@ "required": true, "type": "string" }, - "storagePoolType": { - "description": "Name of the storage pool type to return.", + "region": { + "description": "The name of the region for this request.", "location": "path", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", "required": true, "type": "string" }, - "zone": { - "description": "The name of the zone for this request.", + "resource": { + "description": "Name or id of the resource for this request.", "location": "path", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", "required": true, "type": "string" } }, - "path": "projects/{project}/zones/{zone}/storagePoolTypes/{storagePoolType}", + "path": "projects/{project}/regions/{region}/snapshots/{resource}/getIamPolicy", "response": { - "$ref": "StoragePoolType" + "$ref": "Policy" }, "scopes": [ "https://www.googleapis.com/auth/cloud-platform", @@ -31862,39 +33695,16 @@ "https://www.googleapis.com/auth/compute.readonly" ] }, - "list": { - "description": "Retrieves a list of storage pool types available to the specified project.", - "flatPath": "projects/{project}/zones/{zone}/storagePoolTypes", - "httpMethod": "GET", - "id": "compute.storagePoolTypes.list", + "insert": { + "description": "Creates a snapshot in the specified region using the data included\nin the request.", + "flatPath": "projects/{project}/regions/{region}/snapshots", + "httpMethod": "POST", + "id": "compute.regionSnapshots.insert", "parameterOrder": [ "project", - "zone" + "region" ], "parameters": { - "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` 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) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.", - "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. 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.", - "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", @@ -31902,67 +33712,61 @@ "required": true, "type": "string" }, - "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", - "location": "query", - "type": "boolean" - }, - "zone": { - "description": "The name of the zone for this request.", + "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" + }, + "requestId": { + "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).", + "location": "query", + "type": "string" } }, - "path": "projects/{project}/zones/{zone}/storagePoolTypes", + "path": "projects/{project}/regions/{region}/snapshots", + "request": { + "$ref": "Snapshot" + }, "response": { - "$ref": "StoragePoolTypeList" + "$ref": "Operation" }, "scopes": [ "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" + "https://www.googleapis.com/auth/compute" ] - } - } - }, - "storagePools": { - "methods": { - "aggregatedList": { - "description": "Retrieves an aggregated list of storage pools. To prevent failure, Google recommends that you set the `returnPartialSuccess` parameter to `true`.", - "flatPath": "projects/{project}/aggregated/storagePools", + }, + "list": { + "description": "Retrieves the list of Snapshot resources contained within\nthe specified region.", + "flatPath": "projects/{project}/regions/{region}/snapshots", "httpMethod": "GET", - "id": "compute.storagePools.aggregatedList", + "id": "compute.regionSnapshots.list", "parameterOrder": [ - "project" + "project", + "region" ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` 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) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.", + "description": "A filter expression that filters resources listed in the response. Most\nCompute resources support two types of filter expressions:\nexpressions that support regular expressions and expressions that follow\nAPI improvement proposal AIP-160.\nThese two types of filter expressions cannot be mixed in one request.\n\nIf you want to use AIP-160, your expression must specify the field name, an\noperator, and the value that you want to use for filtering. The value\nmust be a string, a number, or a boolean. The operator\nmust be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`.\n\nFor example, if you are filtering Compute Engine instances, you can\nexclude instances named `example-instance` by specifying\n`name != example-instance`.\n\nThe `:*` comparison can be used to test whether a key has been defined.\nFor example, to find all objects with `owner` label use:\n```\nlabels.owner:*\n```\n\nYou can also filter nested fields. For example, you could specify\n`scheduling.automaticRestart = false` to include instances only\nif they are not scheduled for automatic restarts. You can use filtering\non nested fields to filter based onresource labels.\n\nTo filter on multiple expressions, provide each separate expression within\nparentheses. For example:\n```\n(scheduling.automaticRestart = true)\n(cpuPlatform = \"Intel Skylake\")\n```\nBy default, each expression is an `AND` expression. However, you\ncan include `AND` and `OR` expressions explicitly.\nFor example:\n```\n(cpuPlatform = \"Intel Skylake\") OR\n(cpuPlatform = \"Intel Broadwell\") AND\n(scheduling.automaticRestart = true)\n```\n\nIf you want to use a regular expression, use the `eq` (equal) or `ne`\n(not equal) operator against a single un-parenthesized expression with or\nwithout quotes or against multiple parenthesized expressions. Examples:\n\n`fieldname eq unquoted literal`\n`fieldname eq 'single quoted literal'`\n`fieldname eq \"double quoted literal\"`\n`(fieldname1 eq literal) (fieldname2 ne \"literal\")`\n\nThe literal value is interpreted as a regular expression using GoogleRE2 library syntax.\nThe literal value must match the entire field.\n\nFor example, to filter for instances that do not end with name \"instance\",\nyou would use `name ne .*instance`.\n\nYou cannot combine constraints on multiple fields using regular\nexpressions.", "location": "query", "type": "string" }, - "includeAllScopes": { - "description": "Indicates whether every visible scope for each scope type (zone, region, global) should be included in the response. For new resource types added after this field, the flag has no effect as new resource types will always include every visible scope for each scope type in response. For resource types which predate this field, if this flag is omitted or false, only scopes of the scope types where the resource type is expected to be found will be included.", - "location": "query", - "type": "boolean" - }, "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`)", + "description": "The maximum number of results per page that should be returned.\nIf the number of available results is larger than `maxResults`,\nCompute Engine returns a `nextPageToken` that can be used to get\nthe next page of results in subsequent list requests. Acceptable values are\n`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. 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.", + "description": "Sorts list results by a certain order. By default, results\nare returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation\ntimestamp using `orderBy=\"creationTimestamp desc\"`. This sorts\nresults based on the `creationTimestamp` field in\nreverse chronological order (newest result first). Use this to sort\nresources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or\n`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.", + "description": "Specifies a page token to use. Set `pageToken` to the\n`nextPageToken` returned by a previous list request to get\nthe next page of results.", "location": "query", "type": "string" }, @@ -31973,21 +33777,22 @@ "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" + }, "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", + "description": "Opt-in for partial success behavior which provides partial results in case\nof failure. The default value is false.\n\nFor example, when partial success behavior is enabled, aggregatedList for a\nsingle zone scope either returns all resources in the zone or no resources,\nwith an error code.", "location": "query", "type": "boolean" - }, - "serviceProjectNumber": { - "description": "The Shared VPC service project id or service project number for which aggregated list request is invoked for subnetworks list-usable api.", - "format": "int64", - "location": "query", - "type": "string" } }, - "path": "projects/{project}/aggregated/storagePools", + "path": "projects/{project}/regions/{region}/snapshots", "response": { - "$ref": "StoragePoolAggregatedList" + "$ref": "SnapshotList" }, "scopes": [ "https://www.googleapis.com/auth/cloud-platform", @@ -31995,15 +33800,15 @@ "https://www.googleapis.com/auth/compute.readonly" ] }, - "delete": { - "description": "Deletes the specified storage pool. Deleting a storagePool removes its data permanently and is irreversible. However, deleting a storagePool does not delete any snapshots previously made from the storagePool. You must separately delete snapshots.", - "flatPath": "projects/{project}/zones/{zone}/storagePools/{storagePool}", - "httpMethod": "DELETE", - "id": "compute.storagePools.delete", + "setIamPolicy": { + "description": "Sets the access control policy on the specified resource.\nReplaces any existing policy.", + "flatPath": "projects/{project}/regions/{region}/snapshots/{resource}/setIamPolicy", + "httpMethod": "POST", + "id": "compute.regionSnapshots.setIamPolicy", "parameterOrder": [ "project", - "zone", - "storagePool" + "region", + "resource" ], "parameters": { "project": { @@ -32013,43 +33818,42 @@ "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. 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).", - "location": "query", - "type": "string" - }, - "storagePool": { - "description": "Name of the storage pool to delete.", + "region": { + "description": "The name of the region for this request.", "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", "required": true, "type": "string" }, - "zone": { - "description": "The name of the zone for this request.", + "resource": { + "description": "Name or id of the resource for this request.", "location": "path", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", "required": true, "type": "string" } }, - "path": "projects/{project}/zones/{zone}/storagePools/{storagePool}", + "path": "projects/{project}/regions/{region}/snapshots/{resource}/setIamPolicy", + "request": { + "$ref": "RegionSetPolicyRequest" + }, "response": { - "$ref": "Operation" + "$ref": "Policy" }, "scopes": [ "https://www.googleapis.com/auth/cloud-platform", "https://www.googleapis.com/auth/compute" ] }, - "get": { - "description": "Returns a specified storage pool. Gets a list of available storage pools by making a list() request.", - "flatPath": "projects/{project}/zones/{zone}/storagePools/{storagePool}", - "httpMethod": "GET", - "id": "compute.storagePools.get", + "setLabels": { + "description": "Sets the labels on a regional snapshot. To learn more about labels, read\nthe Labeling Resources\ndocumentation.", + "flatPath": "projects/{project}/regions/{region}/snapshots/{resource}/setLabels", + "httpMethod": "POST", + "id": "compute.regionSnapshots.setLabels", "parameterOrder": [ "project", - "zone", - "storagePool" + "region", + "resource" ], "parameters": { "project": { @@ -32059,48 +33863,49 @@ "required": true, "type": "string" }, - "storagePool": { - "description": "Name of the storage pool to return.", + "region": { + "description": "The region for this request.", "location": "path", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", "required": true, "type": "string" }, - "zone": { - "description": "The name of the zone for this request.", + "requestId": { + "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).", + "location": "query", + "type": "string" + }, + "resource": { + "description": "Name or id of the resource for this request.", "location": "path", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", "required": true, "type": "string" } }, - "path": "projects/{project}/zones/{zone}/storagePools/{storagePool}", - "response": { - "$ref": "StoragePool" + "path": "projects/{project}/regions/{region}/snapshots/{resource}/setLabels", + "request": { + "$ref": "RegionSetLabelsRequest" + }, + "response": { + "$ref": "Operation" }, "scopes": [ "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" + "https://www.googleapis.com/auth/compute" ] }, - "getIamPolicy": { - "description": "Gets the access control policy for a resource. May be empty if no such policy or resource exists.", - "flatPath": "projects/{project}/zones/{zone}/storagePools/{resource}/getIamPolicy", - "httpMethod": "GET", - "id": "compute.storagePools.getIamPolicy", + "testIamPermissions": { + "description": "Returns permissions that a caller has on the specified resource.", + "flatPath": "projects/{project}/regions/{region}/snapshots/{resource}/testIamPermissions", + "httpMethod": "POST", + "id": "compute.regionSnapshots.testIamPermissions", "parameterOrder": [ "project", - "zone", + "region", "resource" ], "parameters": { - "optionsRequestedPolicyVersion": { - "description": "Requested IAM Policy version.", - "format": "int32", - "location": "query", - "type": "integer" - }, "project": { "description": "Project ID for this request.", "location": "path", @@ -32108,24 +33913,27 @@ "required": true, "type": "string" }, - "resource": { - "description": "Name or id of the resource for this request.", + "region": { + "description": "The name of the region for this request.", "location": "path", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", "required": true, "type": "string" }, - "zone": { - "description": "The name of the zone for this request.", + "resource": { + "description": "Name or id of the resource for this request.", "location": "path", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", "required": true, "type": "string" } }, - "path": "projects/{project}/zones/{zone}/storagePools/{resource}/getIamPolicy", + "path": "projects/{project}/regions/{region}/snapshots/{resource}/testIamPermissions", + "request": { + "$ref": "TestPermissionsRequest" + }, "response": { - "$ref": "Policy" + "$ref": "TestPermissionsResponse" }, "scopes": [ "https://www.googleapis.com/auth/cloud-platform", @@ -32133,14 +33941,15 @@ "https://www.googleapis.com/auth/compute.readonly" ] }, - "insert": { - "description": "Creates a storage pool in the specified project using the data in the request.", - "flatPath": "projects/{project}/zones/{zone}/storagePools", + "updateKmsKey": { + "description": "Rotates the customer-managed\nencryption key to the latest version for the specified snapshot.", + "flatPath": "projects/{project}/regions/{region}/snapshots/{snapshot}/updateKmsKey", "httpMethod": "POST", - "id": "compute.storagePools.insert", + "id": "compute.regionSnapshots.updateKmsKey", "parameterOrder": [ "project", - "zone" + "region", + "snapshot" ], "parameters": { "project": { @@ -32150,22 +33959,29 @@ "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" + }, "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. 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).", + "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).", "location": "query", "type": "string" }, - "zone": { - "description": "The name of the zone for this request.", + "snapshot": { + "description": "Name of the snapshot resource to update. Should conform to RFC1035.", "location": "path", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", "required": true, "type": "string" } }, - "path": "projects/{project}/zones/{zone}/storagePools", + "path": "projects/{project}/regions/{region}/snapshots/{snapshot}/updateKmsKey", "request": { - "$ref": "StoragePool" + "$ref": "RegionSnapshotUpdateKmsKeyRequest" }, "response": { "$ref": "Operation" @@ -32174,40 +33990,69 @@ "https://www.googleapis.com/auth/cloud-platform", "https://www.googleapis.com/auth/compute" ] - }, - "list": { - "description": "Retrieves a list of storage pools contained within the specified zone.", - "flatPath": "projects/{project}/zones/{zone}/storagePools", - "httpMethod": "GET", - "id": "compute.storagePools.list", + } + } + }, + "regionSslCertificates": { + "methods": { + "delete": { + "description": "Deletes the specified SslCertificate resource in the region.", + "flatPath": "projects/{project}/regions/{region}/sslCertificates/{sslCertificate}", + "httpMethod": "DELETE", + "id": "compute.regionSslCertificates.delete", "parameterOrder": [ "project", - "zone" + "region", + "sslCertificate" ], "parameters": { - "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` 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) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.", - "location": "query", + "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" }, - "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. 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.", - "location": "query", + "region": { + "description": "Name of the region scoping this request.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "required": true, "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.", + "requestId": { + "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).", "location": "query", "type": "string" }, + "sslCertificate": { + "description": "Name of the SslCertificate resource to delete.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "required": true, + "type": "string" + } + }, + "path": "projects/{project}/regions/{region}/sslCertificates/{sslCertificate}", + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ] + }, + "get": { + "description": "Returns the specified SslCertificate resource in the specified region. Get\na list of available SSL certificates by making a list()\nrequest.", + "flatPath": "projects/{project}/regions/{region}/sslCertificates/{sslCertificate}", + "httpMethod": "GET", + "id": "compute.regionSslCertificates.get", + "parameterOrder": [ + "project", + "region", + "sslCertificate" + ], + "parameters": { "project": { "description": "Project ID for this request.", "location": "path", @@ -32215,22 +34060,24 @@ "required": true, "type": "string" }, - "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", - "location": "query", - "type": "boolean" - }, - "zone": { - "description": "The name of the zone for this request.", + "region": { + "description": "Name of the region scoping this request.", "location": "path", "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", "required": true, "type": "string" + }, + "sslCertificate": { + "description": "Name of the SslCertificate resource to return.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "required": true, + "type": "string" } }, - "path": "projects/{project}/zones/{zone}/storagePools", + "path": "projects/{project}/regions/{region}/sslCertificates/{sslCertificate}", "response": { - "$ref": "StoragePoolList" + "$ref": "SslCertificate" }, "scopes": [ "https://www.googleapis.com/auth/cloud-platform", @@ -32238,37 +34085,78 @@ "https://www.googleapis.com/auth/compute.readonly" ] }, - "listDisks": { - "description": "Lists the disks in a specified storage pool.", - "flatPath": "projects/{project}/zones/{zone}/storagePools/{storagePool}/listDisks", + "insert": { + "description": "Creates a SslCertificate resource in the specified project and region using\nthe data included in the request", + "flatPath": "projects/{project}/regions/{region}/sslCertificates", + "httpMethod": "POST", + "id": "compute.regionSslCertificates.insert", + "parameterOrder": [ + "project", + "region" + ], + "parameters": { + "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 scoping this request.", + "location": "path", + "pattern": "[a-z](?:[-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\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).", + "location": "query", + "type": "string" + } + }, + "path": "projects/{project}/regions/{region}/sslCertificates", + "request": { + "$ref": "SslCertificate" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ] + }, + "list": { + "description": "Retrieves the list of SslCertificate resources available to the specified\nproject in the specified region.", + "flatPath": "projects/{project}/regions/{region}/sslCertificates", "httpMethod": "GET", - "id": "compute.storagePools.listDisks", + "id": "compute.regionSslCertificates.list", "parameterOrder": [ "project", - "zone", - "storagePool" + "region" ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` 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) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.", + "description": "A filter expression that filters resources listed in the response. Most\nCompute resources support two types of filter expressions:\nexpressions that support regular expressions and expressions that follow\nAPI improvement proposal AIP-160.\nThese two types of filter expressions cannot be mixed in one request.\n\nIf you want to use AIP-160, your expression must specify the field name, an\noperator, and the value that you want to use for filtering. The value\nmust be a string, a number, or a boolean. The operator\nmust be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`.\n\nFor example, if you are filtering Compute Engine instances, you can\nexclude instances named `example-instance` by specifying\n`name != example-instance`.\n\nThe `:*` comparison can be used to test whether a key has been defined.\nFor example, to find all objects with `owner` label use:\n```\nlabels.owner:*\n```\n\nYou can also filter nested fields. For example, you could specify\n`scheduling.automaticRestart = false` to include instances only\nif they are not scheduled for automatic restarts. You can use filtering\non nested fields to filter based onresource labels.\n\nTo filter on multiple expressions, provide each separate expression within\nparentheses. For example:\n```\n(scheduling.automaticRestart = true)\n(cpuPlatform = \"Intel Skylake\")\n```\nBy default, each expression is an `AND` expression. However, you\ncan include `AND` and `OR` expressions explicitly.\nFor example:\n```\n(cpuPlatform = \"Intel Skylake\") OR\n(cpuPlatform = \"Intel Broadwell\") AND\n(scheduling.automaticRestart = true)\n```\n\nIf you want to use a regular expression, use the `eq` (equal) or `ne`\n(not equal) operator against a single un-parenthesized expression with or\nwithout quotes or against multiple parenthesized expressions. Examples:\n\n`fieldname eq unquoted literal`\n`fieldname eq 'single quoted literal'`\n`fieldname eq \"double quoted literal\"`\n`(fieldname1 eq literal) (fieldname2 ne \"literal\")`\n\nThe literal value is interpreted as a regular expression using GoogleRE2 library syntax.\nThe literal value must match the entire field.\n\nFor example, to filter for instances that do not end with name \"instance\",\nyou would use `name ne .*instance`.\n\nYou cannot combine constraints on multiple fields using regular\nexpressions.", "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`)", + "description": "The maximum number of results per page that should be returned.\nIf the number of available results is larger than `maxResults`,\nCompute Engine returns a `nextPageToken` that can be used to get\nthe next page of results in subsequent list requests. Acceptable values are\n`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. 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.", + "description": "Sorts list results by a certain order. By default, results\nare returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation\ntimestamp using `orderBy=\"creationTimestamp desc\"`. This sorts\nresults based on the `creationTimestamp` field in\nreverse chronological order (newest result first). Use this to sort\nresources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or\n`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.", + "description": "Specifies a page token to use. Set `pageToken` to the\n`nextPageToken` returned by a previous list request to get\nthe next page of results.", "location": "query", "type": "string" }, @@ -32279,45 +34167,42 @@ "required": true, "type": "string" }, - "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", - "location": "query", - "type": "boolean" - }, - "storagePool": { - "description": "Name of the storage pool to list disks of.", - "location": "path", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "required": true, - "type": "string" - }, - "zone": { - "description": "The name of the zone for this request.", + "region": { + "description": "Name of the region scoping this request.", "location": "path", "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", "required": true, "type": "string" + }, + "returnPartialSuccess": { + "description": "Opt-in for partial success behavior which provides partial results in case\nof failure. The default value is false.\n\nFor example, when partial success behavior is enabled, aggregatedList for a\nsingle zone scope either returns all resources in the zone or no resources,\nwith an error code.", + "location": "query", + "type": "boolean" } }, - "path": "projects/{project}/zones/{zone}/storagePools/{storagePool}/listDisks", + "path": "projects/{project}/regions/{region}/sslCertificates", "response": { - "$ref": "StoragePoolListDisks" + "$ref": "SslCertificateList" }, "scopes": [ "https://www.googleapis.com/auth/cloud-platform", "https://www.googleapis.com/auth/compute", "https://www.googleapis.com/auth/compute.readonly" ] - }, - "setIamPolicy": { - "description": "Sets the access control policy on the specified resource. Replaces any existing policy.", - "flatPath": "projects/{project}/zones/{zone}/storagePools/{resource}/setIamPolicy", - "httpMethod": "POST", - "id": "compute.storagePools.setIamPolicy", + } + } + }, + "regionSslPolicies": { + "methods": { + "delete": { + "description": "Deletes the specified SSL policy. The SSL policy resource can be deleted\nonly if it is not in use by any TargetHttpsProxy or TargetSslProxy\nresources.", + "flatPath": "projects/{project}/regions/{region}/sslPolicies/{sslPolicy}", + "httpMethod": "DELETE", + "id": "compute.regionSslPolicies.delete", "parameterOrder": [ "project", - "zone", - "resource" + "region", + "sslPolicy" ], "parameters": { "project": { @@ -32327,42 +34212,43 @@ "required": true, "type": "string" }, - "resource": { - "description": "Name or id of the resource for this request.", + "region": { + "description": "Name of the region scoping this request.", "location": "path", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", "required": true, "type": "string" }, - "zone": { - "description": "The name of the zone for this request.", + "requestId": { + "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).", + "location": "query", + "type": "string" + }, + "sslPolicy": { + "description": "Name of the SSL policy to delete. The name must be 1-63 characters long,\nand comply with RFC1035.", "location": "path", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", "required": true, "type": "string" } }, - "path": "projects/{project}/zones/{zone}/storagePools/{resource}/setIamPolicy", - "request": { - "$ref": "ZoneSetPolicyRequest" - }, + "path": "projects/{project}/regions/{region}/sslPolicies/{sslPolicy}", "response": { - "$ref": "Policy" + "$ref": "Operation" }, "scopes": [ "https://www.googleapis.com/auth/cloud-platform", "https://www.googleapis.com/auth/compute" ] }, - "testIamPermissions": { - "description": "Returns permissions that a caller has on the specified resource.", - "flatPath": "projects/{project}/zones/{zone}/storagePools/{resource}/testIamPermissions", - "httpMethod": "POST", - "id": "compute.storagePools.testIamPermissions", + "get": { + "description": "Lists all of the ordered rules present in a single specified policy.", + "flatPath": "projects/{project}/regions/{region}/sslPolicies/{sslPolicy}", + "httpMethod": "GET", + "id": "compute.regionSslPolicies.get", "parameterOrder": [ "project", - "zone", - "resource" + "region", + "sslPolicy" ], "parameters": { "project": { @@ -32372,27 +34258,23 @@ "required": true, "type": "string" }, - "resource": { - "description": "Name or id of the resource for this request.", + "region": { + "description": "Name of the region scoping this request.", "location": "path", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", "required": true, "type": "string" }, - "zone": { - "description": "The name of the zone for this request.", + "sslPolicy": { + "description": "Name of the SSL policy to update. The name must be 1-63 characters long,\nand comply with RFC1035.", "location": "path", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", "required": true, "type": "string" } }, - "path": "projects/{project}/zones/{zone}/storagePools/{resource}/testIamPermissions", - "request": { - "$ref": "TestPermissionsRequest" - }, + "path": "projects/{project}/regions/{region}/sslPolicies/{sslPolicy}", "response": { - "$ref": "TestPermissionsResponse" + "$ref": "SslPolicy" }, "scopes": [ "https://www.googleapis.com/auth/cloud-platform", @@ -32400,15 +34282,14 @@ "https://www.googleapis.com/auth/compute.readonly" ] }, - "update": { - "description": "Updates the specified storagePool with the data included in the request. The update is performed only on selected fields included as part of update-mask. Only the following fields can be modified: size_tb and provisioned_iops.", - "flatPath": "projects/{project}/zones/{zone}/storagePools/{storagePool}", - "httpMethod": "PATCH", - "id": "compute.storagePools.update", + "insert": { + "description": "Creates a new policy in the specified project and region using the data\nincluded in the request.", + "flatPath": "projects/{project}/regions/{region}/sslPolicies", + "httpMethod": "POST", + "id": "compute.regionSslPolicies.insert", "parameterOrder": [ "project", - "zone", - "storagePool" + "region" ], "parameters": { "project": { @@ -32418,35 +34299,22 @@ "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. 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).", - "location": "query", - "type": "string" - }, - "storagePool": { - "description": "The storagePool name for this request.", + "region": { + "description": "Name of the region scoping this request.", "location": "path", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", "required": true, "type": "string" }, - "updateMask": { - "description": "update_mask indicates fields to be updated as part of this request.", - "format": "google-fieldmask", + "requestId": { + "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).", "location": "query", "type": "string" - }, - "zone": { - "description": "The name of the zone for this request.", - "location": "path", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "required": true, - "type": "string" } }, - "path": "projects/{project}/zones/{zone}/storagePools/{storagePool}", + "path": "projects/{project}/regions/{region}/sslPolicies", "request": { - "$ref": "StoragePool" + "$ref": "SslPolicy" }, "response": { "$ref": "Operation" @@ -32455,45 +34323,37 @@ "https://www.googleapis.com/auth/cloud-platform", "https://www.googleapis.com/auth/compute" ] - } - } - }, - "subnetworks": { - "methods": { - "aggregatedList": { - "description": "Retrieves an aggregated list of subnetworks. To prevent failure, Google recommends that you set the `returnPartialSuccess` parameter to `true`.", - "flatPath": "projects/{project}/aggregated/subnetworks", + }, + "list": { + "description": "Lists all the SSL policies that have been configured for the specified\nproject and region.", + "flatPath": "projects/{project}/regions/{region}/sslPolicies", "httpMethod": "GET", - "id": "compute.subnetworks.aggregatedList", + "id": "compute.regionSslPolicies.list", "parameterOrder": [ - "project" + "project", + "region" ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` 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) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.", + "description": "A filter expression that filters resources listed in the response. Most\nCompute resources support two types of filter expressions:\nexpressions that support regular expressions and expressions that follow\nAPI improvement proposal AIP-160.\nThese two types of filter expressions cannot be mixed in one request.\n\nIf you want to use AIP-160, your expression must specify the field name, an\noperator, and the value that you want to use for filtering. The value\nmust be a string, a number, or a boolean. The operator\nmust be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`.\n\nFor example, if you are filtering Compute Engine instances, you can\nexclude instances named `example-instance` by specifying\n`name != example-instance`.\n\nThe `:*` comparison can be used to test whether a key has been defined.\nFor example, to find all objects with `owner` label use:\n```\nlabels.owner:*\n```\n\nYou can also filter nested fields. For example, you could specify\n`scheduling.automaticRestart = false` to include instances only\nif they are not scheduled for automatic restarts. You can use filtering\non nested fields to filter based onresource labels.\n\nTo filter on multiple expressions, provide each separate expression within\nparentheses. For example:\n```\n(scheduling.automaticRestart = true)\n(cpuPlatform = \"Intel Skylake\")\n```\nBy default, each expression is an `AND` expression. However, you\ncan include `AND` and `OR` expressions explicitly.\nFor example:\n```\n(cpuPlatform = \"Intel Skylake\") OR\n(cpuPlatform = \"Intel Broadwell\") AND\n(scheduling.automaticRestart = true)\n```\n\nIf you want to use a regular expression, use the `eq` (equal) or `ne`\n(not equal) operator against a single un-parenthesized expression with or\nwithout quotes or against multiple parenthesized expressions. Examples:\n\n`fieldname eq unquoted literal`\n`fieldname eq 'single quoted literal'`\n`fieldname eq \"double quoted literal\"`\n`(fieldname1 eq literal) (fieldname2 ne \"literal\")`\n\nThe literal value is interpreted as a regular expression using GoogleRE2 library syntax.\nThe literal value must match the entire field.\n\nFor example, to filter for instances that do not end with name \"instance\",\nyou would use `name ne .*instance`.\n\nYou cannot combine constraints on multiple fields using regular\nexpressions.", "location": "query", "type": "string" }, - "includeAllScopes": { - "description": "Indicates whether every visible scope for each scope type (zone, region, global) should be included in the response. For new resource types added after this field, the flag has no effect as new resource types will always include every visible scope for each scope type in response. For resource types which predate this field, if this flag is omitted or false, only scopes of the scope types where the resource type is expected to be found will be included.", - "location": "query", - "type": "boolean" - }, "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`)", + "description": "The maximum number of results per page that should be returned.\nIf the number of available results is larger than `maxResults`,\nCompute Engine returns a `nextPageToken` that can be used to get\nthe next page of results in subsequent list requests. Acceptable values are\n`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. 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.", + "description": "Sorts list results by a certain order. By default, results\nare returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation\ntimestamp using `orderBy=\"creationTimestamp desc\"`. This sorts\nresults based on the `creationTimestamp` field in\nreverse chronological order (newest result first). Use this to sort\nresources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or\n`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.", + "description": "Specifies a page token to use. Set `pageToken` to the\n`nextPageToken` returned by a previous list request to get\nthe next page of results.", "location": "query", "type": "string" }, @@ -32504,21 +34364,22 @@ "required": true, "type": "string" }, + "region": { + "description": "Name of the region scoping this request.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "required": true, + "type": "string" + }, "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", + "description": "Opt-in for partial success behavior which provides partial results in case\nof failure. The default value is false.\n\nFor example, when partial success behavior is enabled, aggregatedList for a\nsingle zone scope either returns all resources in the zone or no resources,\nwith an error code.", "location": "query", "type": "boolean" - }, - "serviceProjectNumber": { - "description": "The Shared VPC service project id or service project number for which aggregated list request is invoked for subnetworks list-usable api.", - "format": "int64", - "location": "query", - "type": "string" } }, - "path": "projects/{project}/aggregated/subnetworks", + "path": "projects/{project}/regions/{region}/sslPolicies", "response": { - "$ref": "SubnetworkAggregatedList" + "$ref": "SslPoliciesList" }, "scopes": [ "https://www.googleapis.com/auth/cloud-platform", @@ -32526,17 +34387,39 @@ "https://www.googleapis.com/auth/compute.readonly" ] }, - "delete": { - "description": "Deletes the specified subnetwork.", - "flatPath": "projects/{project}/regions/{region}/subnetworks/{subnetwork}", - "httpMethod": "DELETE", - "id": "compute.subnetworks.delete", + "listAvailableFeatures": { + "description": "Lists all features that can be specified in the SSL policy when using\ncustom profile.", + "flatPath": "projects/{project}/regions/{region}/sslPolicies/listAvailableFeatures", + "httpMethod": "GET", + "id": "compute.regionSslPolicies.listAvailableFeatures", "parameterOrder": [ "project", - "region", - "subnetwork" + "region" ], "parameters": { + "filter": { + "description": "A filter expression that filters resources listed in the response. Most\nCompute resources support two types of filter expressions:\nexpressions that support regular expressions and expressions that follow\nAPI improvement proposal AIP-160.\nThese two types of filter expressions cannot be mixed in one request.\n\nIf you want to use AIP-160, your expression must specify the field name, an\noperator, and the value that you want to use for filtering. The value\nmust be a string, a number, or a boolean. The operator\nmust be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`.\n\nFor example, if you are filtering Compute Engine instances, you can\nexclude instances named `example-instance` by specifying\n`name != example-instance`.\n\nThe `:*` comparison can be used to test whether a key has been defined.\nFor example, to find all objects with `owner` label use:\n```\nlabels.owner:*\n```\n\nYou can also filter nested fields. For example, you could specify\n`scheduling.automaticRestart = false` to include instances only\nif they are not scheduled for automatic restarts. You can use filtering\non nested fields to filter based onresource labels.\n\nTo filter on multiple expressions, provide each separate expression within\nparentheses. For example:\n```\n(scheduling.automaticRestart = true)\n(cpuPlatform = \"Intel Skylake\")\n```\nBy default, each expression is an `AND` expression. However, you\ncan include `AND` and `OR` expressions explicitly.\nFor example:\n```\n(cpuPlatform = \"Intel Skylake\") OR\n(cpuPlatform = \"Intel Broadwell\") AND\n(scheduling.automaticRestart = true)\n```\n\nIf you want to use a regular expression, use the `eq` (equal) or `ne`\n(not equal) operator against a single un-parenthesized expression with or\nwithout quotes or against multiple parenthesized expressions. Examples:\n\n`fieldname eq unquoted literal`\n`fieldname eq 'single quoted literal'`\n`fieldname eq \"double quoted literal\"`\n`(fieldname1 eq literal) (fieldname2 ne \"literal\")`\n\nThe literal value is interpreted as a regular expression using GoogleRE2 library syntax.\nThe literal value must match the entire field.\n\nFor example, to filter for instances that do not end with name \"instance\",\nyou would use `name ne .*instance`.\n\nYou cannot combine constraints on multiple fields using regular\nexpressions.", + "location": "query", + "type": "string" + }, + "maxResults": { + "default": "500", + "description": "The maximum number of results per page that should be returned.\nIf the number of available results is larger than `maxResults`,\nCompute Engine returns a `nextPageToken` that can be used to get\nthe next page of results in subsequent list requests. Acceptable values are\n`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\nare returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation\ntimestamp using `orderBy=\"creationTimestamp desc\"`. This sorts\nresults based on the `creationTimestamp` field in\nreverse chronological order (newest result first). Use this to sort\nresources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or\n`creationTimestamp desc` is supported.", + "location": "query", + "type": "string" + }, + "pageToken": { + "description": "Specifies a page token to use. Set `pageToken` to the\n`nextPageToken` returned by a previous list request to get\nthe next page of results.", + "location": "query", + "type": "string" + }, "project": { "description": "Project ID for this request.", "location": "path", @@ -32551,37 +34434,31 @@ "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. 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).", + "returnPartialSuccess": { + "description": "Opt-in for partial success behavior which provides partial results in case\nof failure. The default value is false.\n\nFor example, when partial success behavior is enabled, aggregatedList for a\nsingle zone scope either returns all resources in the zone or no resources,\nwith an error code.", "location": "query", - "type": "string" - }, - "subnetwork": { - "description": "Name of the Subnetwork resource to delete.", - "location": "path", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "required": true, - "type": "string" + "type": "boolean" } }, - "path": "projects/{project}/regions/{region}/subnetworks/{subnetwork}", + "path": "projects/{project}/regions/{region}/sslPolicies/listAvailableFeatures", "response": { - "$ref": "Operation" + "$ref": "SslPoliciesListAvailableFeaturesResponse" }, "scopes": [ "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" ] }, - "expandIpCidrRange": { - "description": "Expands the IP CIDR range of the subnetwork to a specified value.", - "flatPath": "projects/{project}/regions/{region}/subnetworks/{subnetwork}/expandIpCidrRange", - "httpMethod": "POST", - "id": "compute.subnetworks.expandIpCidrRange", + "patch": { + "description": "Patches the specified SSL policy with the data included in the request.", + "flatPath": "projects/{project}/regions/{region}/sslPolicies/{sslPolicy}", + "httpMethod": "PATCH", + "id": "compute.regionSslPolicies.patch", "parameterOrder": [ "project", "region", - "subnetwork" + "sslPolicy" ], "parameters": { "project": { @@ -32599,21 +34476,20 @@ "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. 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).", + "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).", "location": "query", "type": "string" }, - "subnetwork": { - "description": "Name of the Subnetwork resource to update.", + "sslPolicy": { + "description": "Name of the SSL policy to update. The name must be 1-63 characters long,\nand comply with RFC1035.", "location": "path", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", "required": true, "type": "string" } }, - "path": "projects/{project}/regions/{region}/subnetworks/{subnetwork}/expandIpCidrRange", + "path": "projects/{project}/regions/{region}/sslPolicies/{sslPolicy}", "request": { - "$ref": "SubnetworksExpandIpCidrRangeRequest" + "$ref": "SslPolicy" }, "response": { "$ref": "Operation" @@ -32622,16 +34498,20 @@ "https://www.googleapis.com/auth/cloud-platform", "https://www.googleapis.com/auth/compute" ] - }, - "get": { - "description": "Returns the specified subnetwork.", - "flatPath": "projects/{project}/regions/{region}/subnetworks/{subnetwork}", - "httpMethod": "GET", - "id": "compute.subnetworks.get", + } + } + }, + "regionTargetHttpProxies": { + "methods": { + "delete": { + "description": "Deletes the specified TargetHttpProxy resource.", + "flatPath": "projects/{project}/regions/{region}/targetHttpProxies/{targetHttpProxy}", + "httpMethod": "DELETE", + "id": "compute.regionTargetHttpProxies.delete", "parameterOrder": [ "project", "region", - "subnetwork" + "targetHttpProxy" ], "parameters": { "project": { @@ -32648,41 +34528,39 @@ "required": true, "type": "string" }, - "subnetwork": { - "description": "Name of the Subnetwork resource to return.", + "requestId": { + "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).", + "location": "query", + "type": "string" + }, + "targetHttpProxy": { + "description": "Name of the TargetHttpProxy resource to delete.", "location": "path", "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", "required": true, "type": "string" } }, - "path": "projects/{project}/regions/{region}/subnetworks/{subnetwork}", + "path": "projects/{project}/regions/{region}/targetHttpProxies/{targetHttpProxy}", "response": { - "$ref": "Subnetwork" + "$ref": "Operation" }, "scopes": [ "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" + "https://www.googleapis.com/auth/compute" ] }, - "getIamPolicy": { - "description": "Gets the access control policy for a resource. May be empty if no such policy or resource exists.", - "flatPath": "projects/{project}/regions/{region}/subnetworks/{resource}/getIamPolicy", + "get": { + "description": "Returns the specified TargetHttpProxy resource in the specified region.", + "flatPath": "projects/{project}/regions/{region}/targetHttpProxies/{targetHttpProxy}", "httpMethod": "GET", - "id": "compute.subnetworks.getIamPolicy", + "id": "compute.regionTargetHttpProxies.get", "parameterOrder": [ "project", "region", - "resource" + "targetHttpProxy" ], "parameters": { - "optionsRequestedPolicyVersion": { - "description": "Requested IAM Policy version.", - "format": "int32", - "location": "query", - "type": "integer" - }, "project": { "description": "Project ID for this request.", "location": "path", @@ -32691,23 +34569,23 @@ "type": "string" }, "region": { - "description": "The name of the region for this request.", + "description": "Name of the region scoping this request.", "location": "path", "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", "required": true, "type": "string" }, - "resource": { - "description": "Name or id of the resource for this request.", + "targetHttpProxy": { + "description": "Name of the TargetHttpProxy resource to return.", "location": "path", "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", "required": true, "type": "string" } }, - "path": "projects/{project}/regions/{region}/subnetworks/{resource}/getIamPolicy", + "path": "projects/{project}/regions/{region}/targetHttpProxies/{targetHttpProxy}", "response": { - "$ref": "Policy" + "$ref": "TargetHttpProxy" }, "scopes": [ "https://www.googleapis.com/auth/cloud-platform", @@ -32716,10 +34594,10 @@ ] }, "insert": { - "description": "Creates a subnetwork in the specified project using the data included in the request.", - "flatPath": "projects/{project}/regions/{region}/subnetworks", + "description": "Creates a TargetHttpProxy resource in the specified project and region\nusing the data included in the request.", + "flatPath": "projects/{project}/regions/{region}/targetHttpProxies", "httpMethod": "POST", - "id": "compute.subnetworks.insert", + "id": "compute.regionTargetHttpProxies.insert", "parameterOrder": [ "project", "region" @@ -32740,14 +34618,14 @@ "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. 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).", + "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).", "location": "query", "type": "string" } }, - "path": "projects/{project}/regions/{region}/subnetworks", + "path": "projects/{project}/regions/{region}/targetHttpProxies", "request": { - "$ref": "Subnetwork" + "$ref": "TargetHttpProxy" }, "response": { "$ref": "Operation" @@ -32758,35 +34636,35 @@ ] }, "list": { - "description": "Retrieves a list of subnetworks available to the specified project.", - "flatPath": "projects/{project}/regions/{region}/subnetworks", + "description": "Retrieves the list of TargetHttpProxy resources available\nto the specified project in the specified region.", + "flatPath": "projects/{project}/regions/{region}/targetHttpProxies", "httpMethod": "GET", - "id": "compute.subnetworks.list", + "id": "compute.regionTargetHttpProxies.list", "parameterOrder": [ "project", "region" ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` 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) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.", + "description": "A filter expression that filters resources listed in the response. Most\nCompute resources support two types of filter expressions:\nexpressions that support regular expressions and expressions that follow\nAPI improvement proposal AIP-160.\nThese two types of filter expressions cannot be mixed in one request.\n\nIf you want to use AIP-160, your expression must specify the field name, an\noperator, and the value that you want to use for filtering. The value\nmust be a string, a number, or a boolean. The operator\nmust be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`.\n\nFor example, if you are filtering Compute Engine instances, you can\nexclude instances named `example-instance` by specifying\n`name != example-instance`.\n\nThe `:*` comparison can be used to test whether a key has been defined.\nFor example, to find all objects with `owner` label use:\n```\nlabels.owner:*\n```\n\nYou can also filter nested fields. For example, you could specify\n`scheduling.automaticRestart = false` to include instances only\nif they are not scheduled for automatic restarts. You can use filtering\non nested fields to filter based onresource labels.\n\nTo filter on multiple expressions, provide each separate expression within\nparentheses. For example:\n```\n(scheduling.automaticRestart = true)\n(cpuPlatform = \"Intel Skylake\")\n```\nBy default, each expression is an `AND` expression. However, you\ncan include `AND` and `OR` expressions explicitly.\nFor example:\n```\n(cpuPlatform = \"Intel Skylake\") OR\n(cpuPlatform = \"Intel Broadwell\") AND\n(scheduling.automaticRestart = true)\n```\n\nIf you want to use a regular expression, use the `eq` (equal) or `ne`\n(not equal) operator against a single un-parenthesized expression with or\nwithout quotes or against multiple parenthesized expressions. Examples:\n\n`fieldname eq unquoted literal`\n`fieldname eq 'single quoted literal'`\n`fieldname eq \"double quoted literal\"`\n`(fieldname1 eq literal) (fieldname2 ne \"literal\")`\n\nThe literal value is interpreted as a regular expression using GoogleRE2 library syntax.\nThe literal value must match the entire field.\n\nFor example, to filter for instances that do not end with name \"instance\",\nyou would use `name ne .*instance`.\n\nYou cannot combine constraints on multiple fields using regular\nexpressions.", "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`)", + "description": "The maximum number of results per page that should be returned.\nIf the number of available results is larger than `maxResults`,\nCompute Engine returns a `nextPageToken` that can be used to get\nthe next page of results in subsequent list requests. Acceptable values are\n`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. 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.", + "description": "Sorts list results by a certain order. By default, results\nare returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation\ntimestamp using `orderBy=\"creationTimestamp desc\"`. This sorts\nresults based on the `creationTimestamp` field in\nreverse chronological order (newest result first). Use this to sort\nresources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or\n`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.", + "description": "Specifies a page token to use. Set `pageToken` to the\n`nextPageToken` returned by a previous list request to get\nthe next page of results.", "location": "query", "type": "string" }, @@ -32805,14 +34683,14 @@ "type": "string" }, "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", + "description": "Opt-in for partial success behavior which provides partial results in case\nof failure. The default value is false.\n\nFor example, when partial success behavior is enabled, aggregatedList for a\nsingle zone scope either returns all resources in the zone or no resources,\nwith an error code.", "location": "query", "type": "boolean" } }, - "path": "projects/{project}/regions/{region}/subnetworks", + "path": "projects/{project}/regions/{region}/targetHttpProxies", "response": { - "$ref": "SubnetworkList" + "$ref": "TargetHttpProxyList" }, "scopes": [ "https://www.googleapis.com/auth/cloud-platform", @@ -32820,78 +34698,71 @@ "https://www.googleapis.com/auth/compute.readonly" ] }, - "listUsable": { - "description": "Retrieves an aggregated list of all usable subnetworks in the project.", - "flatPath": "projects/{project}/aggregated/subnetworks/listUsable", - "httpMethod": "GET", - "id": "compute.subnetworks.listUsable", - "parameterOrder": [ - "project" + "setUrlMap": { + "description": "Changes the URL map for TargetHttpProxy.", + "flatPath": "projects/{project}/regions/{region}/targetHttpProxies/{targetHttpProxy}/setUrlMap", + "httpMethod": "POST", + "id": "compute.regionTargetHttpProxies.setUrlMap", + "parameterOrder": [ + "project", + "region", + "targetHttpProxy" ], "parameters": { - "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` 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) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.", - "location": "query", + "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" }, - "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. 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.", - "location": "query", + "region": { + "description": "Name of the region scoping this request.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "required": true, "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.", + "requestId": { + "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).", "location": "query", "type": "string" }, - "project": { - "description": "Project ID for this request.", + "targetHttpProxy": { + "description": "Name of the TargetHttpProxy to set a URL map for.", "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])?))", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", "required": true, "type": "string" - }, - "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", - "location": "query", - "type": "boolean" } }, - "path": "projects/{project}/aggregated/subnetworks/listUsable", + "path": "projects/{project}/regions/{region}/targetHttpProxies/{targetHttpProxy}/setUrlMap", + "request": { + "$ref": "UrlMapReference" + }, "response": { - "$ref": "UsableSubnetworksAggregatedList" + "$ref": "Operation" }, "scopes": [ "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" + "https://www.googleapis.com/auth/compute" ] - }, - "patch": { - "description": "Patches the specified subnetwork with the data included in the request. Only certain fields can be updated with a patch request as indicated in the field descriptions. You must specify the current fingerprint of the subnetwork resource being patched.", - "flatPath": "projects/{project}/regions/{region}/subnetworks/{subnetwork}", - "httpMethod": "PATCH", - "id": "compute.subnetworks.patch", + } + } + }, + "regionTargetHttpsProxies": { + "methods": { + "delete": { + "description": "Deletes the specified TargetHttpsProxy resource.", + "flatPath": "projects/{project}/regions/{region}/targetHttpsProxies/{targetHttpsProxy}", + "httpMethod": "DELETE", + "id": "compute.regionTargetHttpsProxies.delete", "parameterOrder": [ "project", "region", - "subnetwork" + "targetHttpsProxy" ], "parameters": { - "drainTimeoutSeconds": { - "description": "The drain timeout specifies the upper bound in seconds on the amount of time allowed to drain connections from the current ACTIVE subnetwork to the current BACKUP subnetwork. The drain timeout is only applicable when the following conditions are true: - the subnetwork being patched has purpose = INTERNAL_HTTPS_LOAD_BALANCER - the subnetwork being patched has role = BACKUP - the patch request is setting the role to ACTIVE. Note that after this patch operation the roles of the ACTIVE and BACKUP subnetworks will be swapped.", - "format": "int32", - "location": "query", - "type": "integer" - }, "project": { "description": "Project ID for this request.", "location": "path", @@ -32907,22 +34778,19 @@ "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. 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).", + "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).", "location": "query", "type": "string" }, - "subnetwork": { - "description": "Name of the Subnetwork resource to patch.", + "targetHttpsProxy": { + "description": "Name of the TargetHttpsProxy resource to delete.", "location": "path", "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", "required": true, "type": "string" } }, - "path": "projects/{project}/regions/{region}/subnetworks/{subnetwork}", - "request": { - "$ref": "Subnetwork" - }, + "path": "projects/{project}/regions/{region}/targetHttpsProxies/{targetHttpsProxy}", "response": { "$ref": "Operation" }, @@ -32931,15 +34799,15 @@ "https://www.googleapis.com/auth/compute" ] }, - "setIamPolicy": { - "description": "Sets the access control policy on the specified resource. Replaces any existing policy.", - "flatPath": "projects/{project}/regions/{region}/subnetworks/{resource}/setIamPolicy", - "httpMethod": "POST", - "id": "compute.subnetworks.setIamPolicy", + "get": { + "description": "Returns the specified TargetHttpsProxy resource in the specified region.", + "flatPath": "projects/{project}/regions/{region}/targetHttpsProxies/{targetHttpsProxy}", + "httpMethod": "GET", + "id": "compute.regionTargetHttpsProxies.get", "parameterOrder": [ "project", "region", - "resource" + "targetHttpsProxy" ], "parameters": { "project": { @@ -32950,41 +34818,38 @@ "type": "string" }, "region": { - "description": "The name of the region for this request.", + "description": "Name of the region scoping this request.", "location": "path", "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", "required": true, "type": "string" }, - "resource": { - "description": "Name or id of the resource for this request.", + "targetHttpsProxy": { + "description": "Name of the TargetHttpsProxy resource to return.", "location": "path", "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", "required": true, "type": "string" } }, - "path": "projects/{project}/regions/{region}/subnetworks/{resource}/setIamPolicy", - "request": { - "$ref": "RegionSetPolicyRequest" - }, + "path": "projects/{project}/regions/{region}/targetHttpsProxies/{targetHttpsProxy}", "response": { - "$ref": "Policy" + "$ref": "TargetHttpsProxy" }, "scopes": [ "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" ] }, - "setPrivateIpGoogleAccess": { - "description": "Set whether VMs in this subnet can access Google services without assigning external IP addresses through Private Google Access.", - "flatPath": "projects/{project}/regions/{region}/subnetworks/{subnetwork}/setPrivateIpGoogleAccess", + "insert": { + "description": "Creates a TargetHttpsProxy resource in the specified project and region\nusing the data included in the request.", + "flatPath": "projects/{project}/regions/{region}/targetHttpsProxies", "httpMethod": "POST", - "id": "compute.subnetworks.setPrivateIpGoogleAccess", + "id": "compute.regionTargetHttpsProxies.insert", "parameterOrder": [ "project", - "region", - "subnetwork" + "region" ], "parameters": { "project": { @@ -33002,21 +34867,14 @@ "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. 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).", + "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).", "location": "query", "type": "string" - }, - "subnetwork": { - "description": "Name of the Subnetwork resource.", - "location": "path", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "required": true, - "type": "string" } }, - "path": "projects/{project}/regions/{region}/subnetworks/{subnetwork}/setPrivateIpGoogleAccess", + "path": "projects/{project}/regions/{region}/targetHttpsProxies", "request": { - "$ref": "SubnetworksSetPrivateIpGoogleAccessRequest" + "$ref": "TargetHttpsProxy" }, "response": { "$ref": "Operation" @@ -33026,17 +34884,39 @@ "https://www.googleapis.com/auth/compute" ] }, - "testIamPermissions": { - "description": "Returns permissions that a caller has on the specified resource.", - "flatPath": "projects/{project}/regions/{region}/subnetworks/{resource}/testIamPermissions", - "httpMethod": "POST", - "id": "compute.subnetworks.testIamPermissions", + "list": { + "description": "Retrieves the list of TargetHttpsProxy resources available\nto the specified project in the specified region.", + "flatPath": "projects/{project}/regions/{region}/targetHttpsProxies", + "httpMethod": "GET", + "id": "compute.regionTargetHttpsProxies.list", "parameterOrder": [ "project", - "region", - "resource" + "region" ], "parameters": { + "filter": { + "description": "A filter expression that filters resources listed in the response. Most\nCompute resources support two types of filter expressions:\nexpressions that support regular expressions and expressions that follow\nAPI improvement proposal AIP-160.\nThese two types of filter expressions cannot be mixed in one request.\n\nIf you want to use AIP-160, your expression must specify the field name, an\noperator, and the value that you want to use for filtering. The value\nmust be a string, a number, or a boolean. The operator\nmust be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`.\n\nFor example, if you are filtering Compute Engine instances, you can\nexclude instances named `example-instance` by specifying\n`name != example-instance`.\n\nThe `:*` comparison can be used to test whether a key has been defined.\nFor example, to find all objects with `owner` label use:\n```\nlabels.owner:*\n```\n\nYou can also filter nested fields. For example, you could specify\n`scheduling.automaticRestart = false` to include instances only\nif they are not scheduled for automatic restarts. You can use filtering\non nested fields to filter based onresource labels.\n\nTo filter on multiple expressions, provide each separate expression within\nparentheses. For example:\n```\n(scheduling.automaticRestart = true)\n(cpuPlatform = \"Intel Skylake\")\n```\nBy default, each expression is an `AND` expression. However, you\ncan include `AND` and `OR` expressions explicitly.\nFor example:\n```\n(cpuPlatform = \"Intel Skylake\") OR\n(cpuPlatform = \"Intel Broadwell\") AND\n(scheduling.automaticRestart = true)\n```\n\nIf you want to use a regular expression, use the `eq` (equal) or `ne`\n(not equal) operator against a single un-parenthesized expression with or\nwithout quotes or against multiple parenthesized expressions. Examples:\n\n`fieldname eq unquoted literal`\n`fieldname eq 'single quoted literal'`\n`fieldname eq \"double quoted literal\"`\n`(fieldname1 eq literal) (fieldname2 ne \"literal\")`\n\nThe literal value is interpreted as a regular expression using GoogleRE2 library syntax.\nThe literal value must match the entire field.\n\nFor example, to filter for instances that do not end with name \"instance\",\nyou would use `name ne .*instance`.\n\nYou cannot combine constraints on multiple fields using regular\nexpressions.", + "location": "query", + "type": "string" + }, + "maxResults": { + "default": "500", + "description": "The maximum number of results per page that should be returned.\nIf the number of available results is larger than `maxResults`,\nCompute Engine returns a `nextPageToken` that can be used to get\nthe next page of results in subsequent list requests. Acceptable values are\n`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\nare returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation\ntimestamp using `orderBy=\"creationTimestamp desc\"`. This sorts\nresults based on the `creationTimestamp` field in\nreverse chronological order (newest result first). Use this to sort\nresources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or\n`creationTimestamp desc` is supported.", + "location": "query", + "type": "string" + }, + "pageToken": { + "description": "Specifies a page token to use. Set `pageToken` to the\n`nextPageToken` returned by a previous list request to get\nthe next page of results.", + "location": "query", + "type": "string" + }, "project": { "description": "Project ID for this request.", "location": "path", @@ -33045,45 +34925,37 @@ "type": "string" }, "region": { - "description": "The name of the region for this request.", + "description": "Name of the region scoping this request.", "location": "path", "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", "required": true, "type": "string" }, - "resource": { - "description": "Name or id of the resource for this request.", - "location": "path", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "required": true, - "type": "string" + "returnPartialSuccess": { + "description": "Opt-in for partial success behavior which provides partial results in case\nof failure. The default value is false.\n\nFor example, when partial success behavior is enabled, aggregatedList for a\nsingle zone scope either returns all resources in the zone or no resources,\nwith an error code.", + "location": "query", + "type": "boolean" } }, - "path": "projects/{project}/regions/{region}/subnetworks/{resource}/testIamPermissions", - "request": { - "$ref": "TestPermissionsRequest" - }, + "path": "projects/{project}/regions/{region}/targetHttpsProxies", "response": { - "$ref": "TestPermissionsResponse" + "$ref": "TargetHttpsProxyList" }, "scopes": [ "https://www.googleapis.com/auth/cloud-platform", "https://www.googleapis.com/auth/compute", "https://www.googleapis.com/auth/compute.readonly" ] - } - } - }, - "targetGrpcProxies": { - "methods": { - "delete": { - "description": "Deletes the specified TargetGrpcProxy in the given scope", - "flatPath": "projects/{project}/global/targetGrpcProxies/{targetGrpcProxy}", - "httpMethod": "DELETE", - "id": "compute.targetGrpcProxies.delete", + }, + "patch": { + "description": "Patches the specified regional TargetHttpsProxy resource with the data\nincluded in the request. This method supports PATCH\nsemantics and usesJSON merge\npatch format and processing rules.", + "flatPath": "projects/{project}/regions/{region}/targetHttpsProxies/{targetHttpsProxy}", + "httpMethod": "PATCH", + "id": "compute.regionTargetHttpsProxies.patch", "parameterOrder": [ "project", - "targetGrpcProxy" + "region", + "targetHttpsProxy" ], "parameters": { "project": { @@ -33093,20 +34965,30 @@ "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" + }, "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. 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).", + "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).", "location": "query", "type": "string" }, - "targetGrpcProxy": { - "description": "Name of the TargetGrpcProxy resource to delete.", + "targetHttpsProxy": { + "description": "Name of the TargetHttpsProxy resource to patch.", "location": "path", "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", "required": true, "type": "string" } }, - "path": "projects/{project}/global/targetGrpcProxies/{targetGrpcProxy}", + "path": "projects/{project}/regions/{region}/targetHttpsProxies/{targetHttpsProxy}", + "request": { + "$ref": "TargetHttpsProxy" + }, "response": { "$ref": "Operation" }, @@ -33115,14 +34997,15 @@ "https://www.googleapis.com/auth/compute" ] }, - "get": { - "description": "Returns the specified TargetGrpcProxy resource in the given scope.", - "flatPath": "projects/{project}/global/targetGrpcProxies/{targetGrpcProxy}", - "httpMethod": "GET", - "id": "compute.targetGrpcProxies.get", + "setSslCertificates": { + "description": "Replaces SslCertificates for TargetHttpsProxy.", + "flatPath": "projects/{project}/regions/{region}/targetHttpsProxies/{targetHttpsProxy}/setSslCertificates", + "httpMethod": "POST", + "id": "compute.regionTargetHttpsProxies.setSslCertificates", "parameterOrder": [ "project", - "targetGrpcProxy" + "region", + "targetHttpsProxy" ], "parameters": { "project": { @@ -33132,31 +35015,47 @@ "required": true, "type": "string" }, - "targetGrpcProxy": { - "description": "Name of the TargetGrpcProxy resource to return.", + "region": { + "description": "Name of the region scoping this request.", + "location": "path", + "pattern": "[a-z](?:[-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\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).", + "location": "query", + "type": "string" + }, + "targetHttpsProxy": { + "description": "Name of the TargetHttpsProxy resource to set an\nSslCertificates resource for.", "location": "path", "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", "required": true, "type": "string" } }, - "path": "projects/{project}/global/targetGrpcProxies/{targetGrpcProxy}", + "path": "projects/{project}/regions/{region}/targetHttpsProxies/{targetHttpsProxy}/setSslCertificates", + "request": { + "$ref": "RegionTargetHttpsProxiesSetSslCertificatesRequest" + }, "response": { - "$ref": "TargetGrpcProxy" + "$ref": "Operation" }, "scopes": [ "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" + "https://www.googleapis.com/auth/compute" ] }, - "insert": { - "description": "Creates a TargetGrpcProxy in the specified project in the given scope using the parameters that are included in the request.", - "flatPath": "projects/{project}/global/targetGrpcProxies", + "setUrlMap": { + "description": "Changes the URL map for TargetHttpsProxy.", + "flatPath": "projects/{project}/regions/{region}/targetHttpsProxies/{targetHttpsProxy}/setUrlMap", "httpMethod": "POST", - "id": "compute.targetGrpcProxies.insert", + "id": "compute.regionTargetHttpsProxies.setUrlMap", "parameterOrder": [ - "project" + "project", + "region", + "targetHttpsProxy" ], "parameters": { "project": { @@ -33166,15 +35065,29 @@ "required": true, "type": "string" }, + "region": { + "description": "Name of the region scoping this request.", + "location": "path", + "pattern": "[a-z](?:[-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. 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).", + "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).", "location": "query", "type": "string" + }, + "targetHttpsProxy": { + "description": "Name of the TargetHttpsProxy to set a URL map for.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "required": true, + "type": "string" } }, - "path": "projects/{project}/global/targetGrpcProxies", + "path": "projects/{project}/regions/{region}/targetHttpsProxies/{targetHttpsProxy}/setUrlMap", "request": { - "$ref": "TargetGrpcProxy" + "$ref": "UrlMapReference" }, "response": { "$ref": "Operation" @@ -33183,39 +35096,69 @@ "https://www.googleapis.com/auth/cloud-platform", "https://www.googleapis.com/auth/compute" ] - }, - "list": { - "description": "Lists the TargetGrpcProxies for a project in the given scope.", - "flatPath": "projects/{project}/global/targetGrpcProxies", - "httpMethod": "GET", - "id": "compute.targetGrpcProxies.list", + } + } + }, + "regionTargetTcpProxies": { + "methods": { + "delete": { + "description": "Deletes the specified TargetTcpProxy resource.", + "flatPath": "projects/{project}/regions/{region}/targetTcpProxies/{targetTcpProxy}", + "httpMethod": "DELETE", + "id": "compute.regionTargetTcpProxies.delete", "parameterOrder": [ - "project" + "project", + "region", + "targetTcpProxy" ], "parameters": { - "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` 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) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.", - "location": "query", + "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" }, - "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. 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.", - "location": "query", + "region": { + "description": "Name of the region scoping this request.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "required": true, "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.", + "requestId": { + "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).", "location": "query", "type": "string" }, + "targetTcpProxy": { + "description": "Name of the TargetTcpProxy resource to delete.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "required": true, + "type": "string" + } + }, + "path": "projects/{project}/regions/{region}/targetTcpProxies/{targetTcpProxy}", + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ] + }, + "get": { + "description": "Returns the specified TargetTcpProxy resource.", + "flatPath": "projects/{project}/regions/{region}/targetTcpProxies/{targetTcpProxy}", + "httpMethod": "GET", + "id": "compute.regionTargetTcpProxies.get", + "parameterOrder": [ + "project", + "region", + "targetTcpProxy" + ], + "parameters": { "project": { "description": "Project ID for this request.", "location": "path", @@ -33223,15 +35166,24 @@ "required": true, "type": "string" }, - "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", - "location": "query", - "type": "boolean" + "region": { + "description": "Name of the region scoping this request.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "required": true, + "type": "string" + }, + "targetTcpProxy": { + "description": "Name of the TargetTcpProxy resource to return.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "required": true, + "type": "string" } }, - "path": "projects/{project}/global/targetGrpcProxies", + "path": "projects/{project}/regions/{region}/targetTcpProxies/{targetTcpProxy}", "response": { - "$ref": "TargetGrpcProxyList" + "$ref": "TargetTcpProxy" }, "scopes": [ "https://www.googleapis.com/auth/cloud-platform", @@ -33239,14 +35191,14 @@ "https://www.googleapis.com/auth/compute.readonly" ] }, - "patch": { - "description": "Patches the specified TargetGrpcProxy resource with the data included in the request. This method supports PATCH semantics and uses JSON merge patch format and processing rules.", - "flatPath": "projects/{project}/global/targetGrpcProxies/{targetGrpcProxy}", - "httpMethod": "PATCH", - "id": "compute.targetGrpcProxies.patch", + "insert": { + "description": "Creates a TargetTcpProxy resource in the specified project and region using\nthe data included in the request.", + "flatPath": "projects/{project}/regions/{region}/targetTcpProxies", + "httpMethod": "POST", + "id": "compute.regionTargetTcpProxies.insert", "parameterOrder": [ "project", - "targetGrpcProxy" + "region" ], "parameters": { "project": { @@ -33256,22 +35208,22 @@ "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. 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).", - "location": "query", - "type": "string" - }, - "targetGrpcProxy": { - "description": "Name of the TargetGrpcProxy resource to patch.", + "region": { + "description": "Name of the region scoping this request.", "location": "path", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "pattern": "[a-z](?:[-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\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).", + "location": "query", + "type": "string" } }, - "path": "projects/{project}/global/targetGrpcProxies/{targetGrpcProxy}", + "path": "projects/{project}/regions/{region}/targetTcpProxies", "request": { - "$ref": "TargetGrpcProxy" + "$ref": "TargetTcpProxy" }, "response": { "$ref": "Operation" @@ -33280,85 +35232,83 @@ "https://www.googleapis.com/auth/cloud-platform", "https://www.googleapis.com/auth/compute" ] - } - } - }, - "targetHttpProxies": { - "methods": { - "aggregatedList": { - "description": "Retrieves the list of all TargetHttpProxy resources, regional and global, available to the specified project. To prevent failure, Google recommends that you set the `returnPartialSuccess` parameter to `true`.", - "flatPath": "projects/{project}/aggregated/targetHttpProxies", + }, + "list": { + "description": "Retrieves a list of TargetTcpProxy resources\navailable to the specified project in a given region.", + "flatPath": "projects/{project}/regions/{region}/targetTcpProxies", "httpMethod": "GET", - "id": "compute.targetHttpProxies.aggregatedList", + "id": "compute.regionTargetTcpProxies.list", "parameterOrder": [ - "project" + "project", + "region" ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` 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) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.", + "description": "A filter expression that filters resources listed in the response. Most\nCompute resources support two types of filter expressions:\nexpressions that support regular expressions and expressions that follow\nAPI improvement proposal AIP-160.\nThese two types of filter expressions cannot be mixed in one request.\n\nIf you want to use AIP-160, your expression must specify the field name, an\noperator, and the value that you want to use for filtering. The value\nmust be a string, a number, or a boolean. The operator\nmust be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`.\n\nFor example, if you are filtering Compute Engine instances, you can\nexclude instances named `example-instance` by specifying\n`name != example-instance`.\n\nThe `:*` comparison can be used to test whether a key has been defined.\nFor example, to find all objects with `owner` label use:\n```\nlabels.owner:*\n```\n\nYou can also filter nested fields. For example, you could specify\n`scheduling.automaticRestart = false` to include instances only\nif they are not scheduled for automatic restarts. You can use filtering\non nested fields to filter based onresource labels.\n\nTo filter on multiple expressions, provide each separate expression within\nparentheses. For example:\n```\n(scheduling.automaticRestart = true)\n(cpuPlatform = \"Intel Skylake\")\n```\nBy default, each expression is an `AND` expression. However, you\ncan include `AND` and `OR` expressions explicitly.\nFor example:\n```\n(cpuPlatform = \"Intel Skylake\") OR\n(cpuPlatform = \"Intel Broadwell\") AND\n(scheduling.automaticRestart = true)\n```\n\nIf you want to use a regular expression, use the `eq` (equal) or `ne`\n(not equal) operator against a single un-parenthesized expression with or\nwithout quotes or against multiple parenthesized expressions. Examples:\n\n`fieldname eq unquoted literal`\n`fieldname eq 'single quoted literal'`\n`fieldname eq \"double quoted literal\"`\n`(fieldname1 eq literal) (fieldname2 ne \"literal\")`\n\nThe literal value is interpreted as a regular expression using GoogleRE2 library syntax.\nThe literal value must match the entire field.\n\nFor example, to filter for instances that do not end with name \"instance\",\nyou would use `name ne .*instance`.\n\nYou cannot combine constraints on multiple fields using regular\nexpressions.", "location": "query", "type": "string" }, - "includeAllScopes": { - "description": "Indicates whether every visible scope for each scope type (zone, region, global) should be included in the response. For new resource types added after this field, the flag has no effect as new resource types will always include every visible scope for each scope type in response. For resource types which predate this field, if this flag is omitted or false, only scopes of the scope types where the resource type is expected to be found will be included.", - "location": "query", - "type": "boolean" - }, "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`)", + "description": "The maximum number of results per page that should be returned.\nIf the number of available results is larger than `maxResults`,\nCompute Engine returns a `nextPageToken` that can be used to get\nthe next page of results in subsequent list requests. Acceptable values are\n`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. 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.", + "description": "Sorts list results by a certain order. By default, results\nare returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation\ntimestamp using `orderBy=\"creationTimestamp desc\"`. This sorts\nresults based on the `creationTimestamp` field in\nreverse chronological order (newest result first). Use this to sort\nresources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or\n`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.", + "description": "Specifies a page token to use. Set `pageToken` to the\n`nextPageToken` returned by a previous list request to get\nthe next page of results.", "location": "query", "type": "string" }, "project": { - "description": "Name of the project scoping this request.", + "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 scoping this request.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "required": true, + "type": "string" + }, "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", + "description": "Opt-in for partial success behavior which provides partial results in case\nof failure. The default value is false.\n\nFor example, when partial success behavior is enabled, aggregatedList for a\nsingle zone scope either returns all resources in the zone or no resources,\nwith an error code.", "location": "query", "type": "boolean" - }, - "serviceProjectNumber": { - "description": "The Shared VPC service project id or service project number for which aggregated list request is invoked for subnetworks list-usable api.", - "format": "int64", - "location": "query", - "type": "string" } }, - "path": "projects/{project}/aggregated/targetHttpProxies", + "path": "projects/{project}/regions/{region}/targetTcpProxies", "response": { - "$ref": "TargetHttpProxyAggregatedList" + "$ref": "TargetTcpProxyList" }, "scopes": [ "https://www.googleapis.com/auth/cloud-platform", "https://www.googleapis.com/auth/compute", "https://www.googleapis.com/auth/compute.readonly" ] - }, + } + } + }, + "regionUrlMaps": { + "methods": { "delete": { - "description": "Deletes the specified TargetHttpProxy resource.", - "flatPath": "projects/{project}/global/targetHttpProxies/{targetHttpProxy}", + "description": "Deletes the specified UrlMap resource.", + "flatPath": "projects/{project}/regions/{region}/urlMaps/{urlMap}", "httpMethod": "DELETE", - "id": "compute.targetHttpProxies.delete", + "id": "compute.regionUrlMaps.delete", "parameterOrder": [ "project", - "targetHttpProxy" + "region", + "urlMap" ], "parameters": { "project": { @@ -33368,20 +35318,27 @@ "required": true, "type": "string" }, + "region": { + "description": "Name of the region scoping this request.", + "location": "path", + "pattern": "[a-z](?:[-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. 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).", + "description": "begin_interface: MixerMutationRequestBuilder\nRequest ID to support idempotency.", "location": "query", "type": "string" }, - "targetHttpProxy": { - "description": "Name of the TargetHttpProxy resource to delete.", + "urlMap": { + "description": "Name of the UrlMap resource to delete.", "location": "path", "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", "required": true, "type": "string" } }, - "path": "projects/{project}/global/targetHttpProxies/{targetHttpProxy}", + "path": "projects/{project}/regions/{region}/urlMaps/{urlMap}", "response": { "$ref": "Operation" }, @@ -33391,13 +35348,14 @@ ] }, "get": { - "description": "Returns the specified TargetHttpProxy resource.", - "flatPath": "projects/{project}/global/targetHttpProxies/{targetHttpProxy}", + "description": "Returns the specified UrlMap resource.", + "flatPath": "projects/{project}/regions/{region}/urlMaps/{urlMap}", "httpMethod": "GET", - "id": "compute.targetHttpProxies.get", + "id": "compute.regionUrlMaps.get", "parameterOrder": [ "project", - "targetHttpProxy" + "region", + "urlMap" ], "parameters": { "project": { @@ -33407,17 +35365,24 @@ "required": true, "type": "string" }, - "targetHttpProxy": { - "description": "Name of the TargetHttpProxy resource to return.", + "region": { + "description": "Name of the region scoping this request.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "required": true, + "type": "string" + }, + "urlMap": { + "description": "Name of the UrlMap resource to return.", "location": "path", "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", "required": true, "type": "string" } }, - "path": "projects/{project}/global/targetHttpProxies/{targetHttpProxy}", + "path": "projects/{project}/regions/{region}/urlMaps/{urlMap}", "response": { - "$ref": "TargetHttpProxy" + "$ref": "UrlMap" }, "scopes": [ "https://www.googleapis.com/auth/cloud-platform", @@ -33426,12 +35391,13 @@ ] }, "insert": { - "description": "Creates a TargetHttpProxy resource in the specified project using the data included in the request.", - "flatPath": "projects/{project}/global/targetHttpProxies", + "description": "Creates a UrlMap resource in the specified project using\nthe data included in the request.", + "flatPath": "projects/{project}/regions/{region}/urlMaps", "httpMethod": "POST", - "id": "compute.targetHttpProxies.insert", + "id": "compute.regionUrlMaps.insert", "parameterOrder": [ - "project" + "project", + "region" ], "parameters": { "project": { @@ -33441,15 +35407,22 @@ "required": true, "type": "string" }, + "region": { + "description": "Name of the region scoping this request.", + "location": "path", + "pattern": "[a-z](?:[-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. 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).", + "description": "begin_interface: MixerMutationRequestBuilder\nRequest ID to support idempotency.", "location": "query", "type": "string" } }, - "path": "projects/{project}/global/targetHttpProxies", + "path": "projects/{project}/regions/{region}/urlMaps", "request": { - "$ref": "TargetHttpProxy" + "$ref": "UrlMap" }, "response": { "$ref": "Operation" @@ -33460,34 +35433,35 @@ ] }, "list": { - "description": "Retrieves the list of TargetHttpProxy resources available to the specified project.", - "flatPath": "projects/{project}/global/targetHttpProxies", + "description": "Retrieves the list of UrlMap resources available to the specified\nproject in the specified region.", + "flatPath": "projects/{project}/regions/{region}/urlMaps", "httpMethod": "GET", - "id": "compute.targetHttpProxies.list", + "id": "compute.regionUrlMaps.list", "parameterOrder": [ - "project" + "project", + "region" ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` 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) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.", + "description": "A filter expression that filters resources listed in the response. Most\nCompute resources support two types of filter expressions:\nexpressions that support regular expressions and expressions that follow\nAPI improvement proposal AIP-160.\nThese two types of filter expressions cannot be mixed in one request.\n\nIf you want to use AIP-160, your expression must specify the field name, an\noperator, and the value that you want to use for filtering. The value\nmust be a string, a number, or a boolean. The operator\nmust be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`.\n\nFor example, if you are filtering Compute Engine instances, you can\nexclude instances named `example-instance` by specifying\n`name != example-instance`.\n\nThe `:*` comparison can be used to test whether a key has been defined.\nFor example, to find all objects with `owner` label use:\n```\nlabels.owner:*\n```\n\nYou can also filter nested fields. For example, you could specify\n`scheduling.automaticRestart = false` to include instances only\nif they are not scheduled for automatic restarts. You can use filtering\non nested fields to filter based onresource labels.\n\nTo filter on multiple expressions, provide each separate expression within\nparentheses. For example:\n```\n(scheduling.automaticRestart = true)\n(cpuPlatform = \"Intel Skylake\")\n```\nBy default, each expression is an `AND` expression. However, you\ncan include `AND` and `OR` expressions explicitly.\nFor example:\n```\n(cpuPlatform = \"Intel Skylake\") OR\n(cpuPlatform = \"Intel Broadwell\") AND\n(scheduling.automaticRestart = true)\n```\n\nIf you want to use a regular expression, use the `eq` (equal) or `ne`\n(not equal) operator against a single un-parenthesized expression with or\nwithout quotes or against multiple parenthesized expressions. Examples:\n\n`fieldname eq unquoted literal`\n`fieldname eq 'single quoted literal'`\n`fieldname eq \"double quoted literal\"`\n`(fieldname1 eq literal) (fieldname2 ne \"literal\")`\n\nThe literal value is interpreted as a regular expression using GoogleRE2 library syntax.\nThe literal value must match the entire field.\n\nFor example, to filter for instances that do not end with name \"instance\",\nyou would use `name ne .*instance`.\n\nYou cannot combine constraints on multiple fields using regular\nexpressions.", "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`)", + "description": "The maximum number of results per page that should be returned.\nIf the number of available results is larger than `maxResults`,\nCompute Engine returns a `nextPageToken` that can be used to get\nthe next page of results in subsequent list requests. Acceptable values are\n`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. 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.", + "description": "Sorts list results by a certain order. By default, results\nare returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation\ntimestamp using `orderBy=\"creationTimestamp desc\"`. This sorts\nresults based on the `creationTimestamp` field in\nreverse chronological order (newest result first). Use this to sort\nresources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or\n`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.", + "description": "Specifies a page token to use. Set `pageToken` to the\n`nextPageToken` returned by a previous list request to get\nthe next page of results.", "location": "query", "type": "string" }, @@ -33498,15 +35472,22 @@ "required": true, "type": "string" }, + "region": { + "description": "Name of the region scoping this request.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "required": true, + "type": "string" + }, "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", + "description": "Opt-in for partial success behavior which provides partial results in case\nof failure. The default value is false.\n\nFor example, when partial success behavior is enabled, aggregatedList for a\nsingle zone scope either returns all resources in the zone or no resources,\nwith an error code.", "location": "query", "type": "boolean" } }, - "path": "projects/{project}/global/targetHttpProxies", + "path": "projects/{project}/regions/{region}/urlMaps", "response": { - "$ref": "TargetHttpProxyList" + "$ref": "UrlMapList" }, "scopes": [ "https://www.googleapis.com/auth/cloud-platform", @@ -33515,13 +35496,14 @@ ] }, "patch": { - "description": "Patches the specified TargetHttpProxy resource with the data included in the request. This method supports PATCH semantics and uses JSON merge patch format and processing rules.", - "flatPath": "projects/{project}/global/targetHttpProxies/{targetHttpProxy}", + "description": "Patches the specified UrlMap resource with the data included in the\nrequest. This method supportsPATCH\nsemantics and usesJSON merge\npatch format and processing rules.", + "flatPath": "projects/{project}/regions/{region}/urlMaps/{urlMap}", "httpMethod": "PATCH", - "id": "compute.targetHttpProxies.patch", + "id": "compute.regionUrlMaps.patch", "parameterOrder": [ "project", - "targetHttpProxy" + "region", + "urlMap" ], "parameters": { "project": { @@ -33531,22 +35513,29 @@ "required": true, "type": "string" }, + "region": { + "description": "Name of the region scoping this request.", + "location": "path", + "pattern": "[a-z](?:[-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. 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).", + "description": "begin_interface: MixerMutationRequestBuilder\nRequest ID to support idempotency.", "location": "query", "type": "string" }, - "targetHttpProxy": { - "description": "Name of the TargetHttpProxy resource to patch.", + "urlMap": { + "description": "Name of the UrlMap resource to patch.", "location": "path", "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", "required": true, "type": "string" } }, - "path": "projects/{project}/global/targetHttpProxies/{targetHttpProxy}", + "path": "projects/{project}/regions/{region}/urlMaps/{urlMap}", "request": { - "$ref": "TargetHttpProxy" + "$ref": "UrlMap" }, "response": { "$ref": "Operation" @@ -33556,14 +35545,15 @@ "https://www.googleapis.com/auth/compute" ] }, - "setUrlMap": { - "description": "Changes the URL map for TargetHttpProxy.", - "flatPath": "projects/{project}/targetHttpProxies/{targetHttpProxy}/setUrlMap", - "httpMethod": "POST", - "id": "compute.targetHttpProxies.setUrlMap", + "update": { + "description": "Updates the specified UrlMap resource with the data included in the\nrequest.", + "flatPath": "projects/{project}/regions/{region}/urlMaps/{urlMap}", + "httpMethod": "PUT", + "id": "compute.regionUrlMaps.update", "parameterOrder": [ "project", - "targetHttpProxy" + "region", + "urlMap" ], "parameters": { "project": { @@ -33573,22 +35563,29 @@ "required": true, "type": "string" }, + "region": { + "description": "Name of the region scoping this request.", + "location": "path", + "pattern": "[a-z](?:[-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. 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).", + "description": "begin_interface: MixerMutationRequestBuilder\nRequest ID to support idempotency.", "location": "query", "type": "string" }, - "targetHttpProxy": { - "description": "Name of the TargetHttpProxy to set a URL map for.", + "urlMap": { + "description": "Name of the UrlMap resource to update.", "location": "path", "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", "required": true, "type": "string" } }, - "path": "projects/{project}/targetHttpProxies/{targetHttpProxy}/setUrlMap", + "path": "projects/{project}/regions/{region}/urlMaps/{urlMap}", "request": { - "$ref": "UrlMapReference" + "$ref": "UrlMap" }, "response": { "$ref": "Operation" @@ -33597,85 +35594,131 @@ "https://www.googleapis.com/auth/cloud-platform", "https://www.googleapis.com/auth/compute" ] + }, + "validate": { + "description": "Runs static validation for the UrlMap. In particular, the tests of the\nprovided UrlMap will be run. Calling this method does NOT create the\nUrlMap.", + "flatPath": "projects/{project}/regions/{region}/urlMaps/{urlMap}/validate", + "httpMethod": "POST", + "id": "compute.regionUrlMaps.validate", + "parameterOrder": [ + "project", + "region", + "urlMap" + ], + "parameters": { + "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 scoping this request.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "required": true, + "type": "string" + }, + "urlMap": { + "description": "Name of the UrlMap resource to be validated as.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "required": true, + "type": "string" + } + }, + "path": "projects/{project}/regions/{region}/urlMaps/{urlMap}/validate", + "request": { + "$ref": "RegionUrlMapsValidateRequest" + }, + "response": { + "$ref": "UrlMapsValidateResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ] } } }, - "targetHttpsProxies": { + "regionZones": { "methods": { - "aggregatedList": { - "description": "Retrieves the list of all TargetHttpsProxy resources, regional and global, available to the specified project. To prevent failure, Google recommends that you set the `returnPartialSuccess` parameter to `true`.", - "flatPath": "projects/{project}/aggregated/targetHttpsProxies", + "list": { + "description": "Retrieves the list of Zone resources under the specific region available to\nthe specified project.", + "flatPath": "projects/{project}/regions/{region}/zones", "httpMethod": "GET", - "id": "compute.targetHttpsProxies.aggregatedList", + "id": "compute.regionZones.list", "parameterOrder": [ - "project" + "project", + "region" ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` 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) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.", + "description": "A filter expression that filters resources listed in the response. Most\nCompute resources support two types of filter expressions:\nexpressions that support regular expressions and expressions that follow\nAPI improvement proposal AIP-160.\nThese two types of filter expressions cannot be mixed in one request.\n\nIf you want to use AIP-160, your expression must specify the field name, an\noperator, and the value that you want to use for filtering. The value\nmust be a string, a number, or a boolean. The operator\nmust be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`.\n\nFor example, if you are filtering Compute Engine instances, you can\nexclude instances named `example-instance` by specifying\n`name != example-instance`.\n\nThe `:*` comparison can be used to test whether a key has been defined.\nFor example, to find all objects with `owner` label use:\n```\nlabels.owner:*\n```\n\nYou can also filter nested fields. For example, you could specify\n`scheduling.automaticRestart = false` to include instances only\nif they are not scheduled for automatic restarts. You can use filtering\non nested fields to filter based onresource labels.\n\nTo filter on multiple expressions, provide each separate expression within\nparentheses. For example:\n```\n(scheduling.automaticRestart = true)\n(cpuPlatform = \"Intel Skylake\")\n```\nBy default, each expression is an `AND` expression. However, you\ncan include `AND` and `OR` expressions explicitly.\nFor example:\n```\n(cpuPlatform = \"Intel Skylake\") OR\n(cpuPlatform = \"Intel Broadwell\") AND\n(scheduling.automaticRestart = true)\n```\n\nIf you want to use a regular expression, use the `eq` (equal) or `ne`\n(not equal) operator against a single un-parenthesized expression with or\nwithout quotes or against multiple parenthesized expressions. Examples:\n\n`fieldname eq unquoted literal`\n`fieldname eq 'single quoted literal'`\n`fieldname eq \"double quoted literal\"`\n`(fieldname1 eq literal) (fieldname2 ne \"literal\")`\n\nThe literal value is interpreted as a regular expression using GoogleRE2 library syntax.\nThe literal value must match the entire field.\n\nFor example, to filter for instances that do not end with name \"instance\",\nyou would use `name ne .*instance`.\n\nYou cannot combine constraints on multiple fields using regular\nexpressions.", "location": "query", "type": "string" }, - "includeAllScopes": { - "description": "Indicates whether every visible scope for each scope type (zone, region, global) should be included in the response. For new resource types added after this field, the flag has no effect as new resource types will always include every visible scope for each scope type in response. For resource types which predate this field, if this flag is omitted or false, only scopes of the scope types where the resource type is expected to be found will be included.", - "location": "query", - "type": "boolean" - }, "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`)", + "description": "The maximum number of results per page that should be returned.\nIf the number of available results is larger than `maxResults`,\nCompute Engine returns a `nextPageToken` that can be used to get\nthe next page of results in subsequent list requests. Acceptable values are\n`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. 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.", + "description": "Sorts list results by a certain order. By default, results\nare returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation\ntimestamp using `orderBy=\"creationTimestamp desc\"`. This sorts\nresults based on the `creationTimestamp` field in\nreverse chronological order (newest result first). Use this to sort\nresources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or\n`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.", + "description": "Specifies a page token to use. Set `pageToken` to the\n`nextPageToken` returned by a previous list request to get\nthe next page of results.", "location": "query", "type": "string" }, "project": { - "description": "Name of the project scoping this request.", + "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": "Region for this request.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "required": true, + "type": "string" + }, "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", + "description": "Opt-in for partial success behavior which provides partial results in case\nof failure. The default value is false.\n\nFor example, when partial success behavior is enabled, aggregatedList for a\nsingle zone scope either returns all resources in the zone or no resources,\nwith an error code.", "location": "query", "type": "boolean" - }, - "serviceProjectNumber": { - "description": "The Shared VPC service project id or service project number for which aggregated list request is invoked for subnetworks list-usable api.", - "format": "int64", - "location": "query", - "type": "string" } }, - "path": "projects/{project}/aggregated/targetHttpsProxies", + "path": "projects/{project}/regions/{region}/zones", "response": { - "$ref": "TargetHttpsProxyAggregatedList" + "$ref": "ZoneList" }, "scopes": [ "https://www.googleapis.com/auth/cloud-platform", "https://www.googleapis.com/auth/compute", "https://www.googleapis.com/auth/compute.readonly" ] - }, - "delete": { - "description": "Deletes the specified TargetHttpsProxy resource.", - "flatPath": "projects/{project}/global/targetHttpsProxies/{targetHttpsProxy}", - "httpMethod": "DELETE", - "id": "compute.targetHttpsProxies.delete", + } + } + }, + "regions": { + "methods": { + "get": { + "description": "Returns the specified Region resource.\n\nTo decrease latency for this method, you can optionally omit any unneeded\ninformation from the response by using a field mask. This practice is\nespecially recommended for unused quota information (the `quotas` field).\nTo exclude one or more fields, set your request's `fields` query parameter\nto only include the fields you need. For example, to only include the `id`\nand `selfLink` fields, add the query parameter `?fields=id,selfLink` to\nyour request.\n\nThis method fails if the quota information is unavailable for the region\nand if the organization policy constraint\ncompute.requireBasicQuotaInResponse is enforced. This\nconstraint, when enforced, disables the fail-open behaviour when quota\ninformation (the `items.quotas` field) is unavailable for the region.\nIt is recommended to use the default setting\nfor the constraint unless your application requires the fail-closed\nbehaviour for this method.", + "flatPath": "projects/{project}/regions/{region}", + "httpMethod": "GET", + "id": "compute.regions.get", "parameterOrder": [ "project", - "targetHttpsProxy" + "region" ], "parameters": { "project": { @@ -33685,56 +35728,138 @@ "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. 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).", + "region": { + "description": "Name of the region resource to return.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "required": true, + "type": "string" + } + }, + "path": "projects/{project}/regions/{region}", + "response": { + "$ref": "Region" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ] + }, + "list": { + "description": "Retrieves the list of region resources available to the specified project.\n\nTo decrease latency for this method, you can optionally omit any unneeded\ninformation from the response by using a field mask. This practice is\nespecially recommended for unused quota information\n(the `items.quotas` field).\nTo exclude one or more fields, set your request's `fields` query parameter\nto only include the fields you need. For example, to only include the `id`\nand `selfLink` fields, add the query parameter `?fields=id,selfLink` to\nyour request.\n\nThis method fails if the quota information is unavailable for the region\nand if the organization policy constraint\ncompute.requireBasicQuotaInResponse is enforced. This\nconstraint, when enforced, disables the fail-open behaviour when quota\ninformation (the `items.quotas` field) is unavailable for the region.\nIt is recommended to use the default setting\nfor the constraint unless your application requires the fail-closed\nbehaviour for this method.", + "flatPath": "projects/{project}/regions", + "httpMethod": "GET", + "id": "compute.regions.list", + "parameterOrder": [ + "project" + ], + "parameters": { + "filter": { + "description": "A filter expression that filters resources listed in the response. Most\nCompute resources support two types of filter expressions:\nexpressions that support regular expressions and expressions that follow\nAPI improvement proposal AIP-160.\nThese two types of filter expressions cannot be mixed in one request.\n\nIf you want to use AIP-160, your expression must specify the field name, an\noperator, and the value that you want to use for filtering. The value\nmust be a string, a number, or a boolean. The operator\nmust be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`.\n\nFor example, if you are filtering Compute Engine instances, you can\nexclude instances named `example-instance` by specifying\n`name != example-instance`.\n\nThe `:*` comparison can be used to test whether a key has been defined.\nFor example, to find all objects with `owner` label use:\n```\nlabels.owner:*\n```\n\nYou can also filter nested fields. For example, you could specify\n`scheduling.automaticRestart = false` to include instances only\nif they are not scheduled for automatic restarts. You can use filtering\non nested fields to filter based onresource labels.\n\nTo filter on multiple expressions, provide each separate expression within\nparentheses. For example:\n```\n(scheduling.automaticRestart = true)\n(cpuPlatform = \"Intel Skylake\")\n```\nBy default, each expression is an `AND` expression. However, you\ncan include `AND` and `OR` expressions explicitly.\nFor example:\n```\n(cpuPlatform = \"Intel Skylake\") OR\n(cpuPlatform = \"Intel Broadwell\") AND\n(scheduling.automaticRestart = true)\n```\n\nIf you want to use a regular expression, use the `eq` (equal) or `ne`\n(not equal) operator against a single un-parenthesized expression with or\nwithout quotes or against multiple parenthesized expressions. Examples:\n\n`fieldname eq unquoted literal`\n`fieldname eq 'single quoted literal'`\n`fieldname eq \"double quoted literal\"`\n`(fieldname1 eq literal) (fieldname2 ne \"literal\")`\n\nThe literal value is interpreted as a regular expression using GoogleRE2 library syntax.\nThe literal value must match the entire field.\n\nFor example, to filter for instances that do not end with name \"instance\",\nyou would use `name ne .*instance`.\n\nYou cannot combine constraints on multiple fields using regular\nexpressions.", "location": "query", "type": "string" }, - "targetHttpsProxy": { - "description": "Name of the TargetHttpsProxy resource to delete.", + "maxResults": { + "default": "500", + "description": "The maximum number of results per page that should be returned.\nIf the number of available results is larger than `maxResults`,\nCompute Engine returns a `nextPageToken` that can be used to get\nthe next page of results in subsequent list requests. Acceptable values are\n`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\nare returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation\ntimestamp using `orderBy=\"creationTimestamp desc\"`. This sorts\nresults based on the `creationTimestamp` field in\nreverse chronological order (newest result first). Use this to sort\nresources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or\n`creationTimestamp desc` is supported.", + "location": "query", + "type": "string" + }, + "pageToken": { + "description": "Specifies a page token to use. Set `pageToken` to the\n`nextPageToken` returned by a previous list request to get\nthe next page of results.", + "location": "query", + "type": "string" + }, + "project": { + "description": "Project ID for this request.", "location": "path", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "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" + }, + "returnPartialSuccess": { + "description": "Opt-in for partial success behavior which provides partial results in case\nof failure. The default value is false.\n\nFor example, when partial success behavior is enabled, aggregatedList for a\nsingle zone scope either returns all resources in the zone or no resources,\nwith an error code.", + "location": "query", + "type": "boolean" } }, - "path": "projects/{project}/global/targetHttpsProxies/{targetHttpsProxy}", + "path": "projects/{project}/regions", "response": { - "$ref": "Operation" + "$ref": "RegionList" }, "scopes": [ "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" ] - }, + } + } + }, + "reservationBlocks": { + "methods": { "get": { - "description": "Returns the specified TargetHttpsProxy resource.", - "flatPath": "projects/{project}/global/targetHttpsProxies/{targetHttpsProxy}", + "description": "Retrieves information about the specified reservation block.", + "flatPath": "projects/{project}/zones/{zone}/reservations/{reservation}/reservationBlocks/{reservationBlock}", "httpMethod": "GET", - "id": "compute.targetHttpsProxies.get", + "id": "compute.reservationBlocks.get", "parameterOrder": [ "project", - "targetHttpsProxy" + "zone", + "reservation", + "reservationBlock" ], "parameters": { "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" }, - "targetHttpsProxy": { - "description": "Name of the TargetHttpsProxy resource to return.", + "reservation": { + "description": "The name of the reservation.\nName should conform to RFC1035 or be a resource ID.", + "location": "path", + "required": true, + "type": "string" + }, + "reservationBlock": { + "description": "The name of the reservation block.\nName should conform to RFC1035 or be a resource ID.", + "location": "path", + "required": true, + "type": "string" + }, + "view": { + "description": "View of the Block.", + "enum": [ + "BASIC", + "BLOCK_VIEW_UNSPECIFIED", + "FULL" + ], + "enumDescriptions": [ + "This view includes basic information about the reservation block", + "The default / unset value. The API will default to the BASIC view.", + "Includes detailed topology view." + ], + "location": "query", + "type": "string" + }, + "zone": { + "description": "Name of the zone for this request. Zone name should conform to RFC1035.", "location": "path", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", "required": true, "type": "string" } }, - "path": "projects/{project}/global/targetHttpsProxies/{targetHttpsProxy}", + "path": "projects/{project}/zones/{zone}/reservations/{reservation}/reservationBlocks/{reservationBlock}", "response": { - "$ref": "TargetHttpsProxy" + "$ref": "ReservationBlocksGetResponse" }, "scopes": [ "https://www.googleapis.com/auth/cloud-platform", @@ -33742,15 +35867,31 @@ "https://www.googleapis.com/auth/compute.readonly" ] }, - "insert": { - "description": "Creates a TargetHttpsProxy resource in the specified project using the data included in the request.", - "flatPath": "projects/{project}/global/targetHttpsProxies", - "httpMethod": "POST", - "id": "compute.targetHttpsProxies.insert", + "getIamPolicy": { + "description": "Gets the access control policy for a resource. May be empty if no such\npolicy or resource exists.", + "flatPath": "projects/{project}/zones/{zone}/reservations/{parentResource}/reservationBlocks/{resource}/getIamPolicy", + "httpMethod": "GET", + "id": "compute.reservationBlocks.getIamPolicy", "parameterOrder": [ - "project" + "project", + "zone", + "parentResource", + "resource" ], "parameters": { + "optionsRequestedPolicyVersion": { + "description": "Requested IAM Policy version.", + "format": "int32", + "location": "query", + "type": "integer" + }, + "parentResource": { + "description": "Name or id of parent resource of the resource for this request.", + "location": "path", + "pattern": "[a-z](?:[-a-zA-Z0-9/]{0,255}[a-zA-Z0-9])?", + "required": true, + "type": "string" + }, "project": { "description": "Project ID for this request.", "location": "path", @@ -33758,72 +35899,92 @@ "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. 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).", - "location": "query", + "resource": { + "description": "Name or id of the resource for this request.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "required": true, + "type": "string" + }, + "zone": { + "description": "The name of the zone for this request.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "required": true, "type": "string" } }, - "path": "projects/{project}/global/targetHttpsProxies", - "request": { - "$ref": "TargetHttpsProxy" - }, + "path": "projects/{project}/zones/{zone}/reservations/{parentResource}/reservationBlocks/{resource}/getIamPolicy", "response": { - "$ref": "Operation" + "$ref": "Policy" }, "scopes": [ "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" ] }, "list": { - "description": "Retrieves the list of TargetHttpsProxy resources available to the specified project.", - "flatPath": "projects/{project}/global/targetHttpsProxies", + "description": "Retrieves a list of reservation blocks under a single reservation.", + "flatPath": "projects/{project}/zones/{zone}/reservations/{reservation}/reservationBlocks", "httpMethod": "GET", - "id": "compute.targetHttpsProxies.list", + "id": "compute.reservationBlocks.list", "parameterOrder": [ - "project" + "project", + "zone", + "reservation" ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` 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) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.", + "description": "A filter expression that filters resources listed in the response. Most\nCompute resources support two types of filter expressions:\nexpressions that support regular expressions and expressions that follow\nAPI improvement proposal AIP-160.\nThese two types of filter expressions cannot be mixed in one request.\n\nIf you want to use AIP-160, your expression must specify the field name, an\noperator, and the value that you want to use for filtering. The value\nmust be a string, a number, or a boolean. The operator\nmust be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`.\n\nFor example, if you are filtering Compute Engine instances, you can\nexclude instances named `example-instance` by specifying\n`name != example-instance`.\n\nThe `:*` comparison can be used to test whether a key has been defined.\nFor example, to find all objects with `owner` label use:\n```\nlabels.owner:*\n```\n\nYou can also filter nested fields. For example, you could specify\n`scheduling.automaticRestart = false` to include instances only\nif they are not scheduled for automatic restarts. You can use filtering\non nested fields to filter based onresource labels.\n\nTo filter on multiple expressions, provide each separate expression within\nparentheses. For example:\n```\n(scheduling.automaticRestart = true)\n(cpuPlatform = \"Intel Skylake\")\n```\nBy default, each expression is an `AND` expression. However, you\ncan include `AND` and `OR` expressions explicitly.\nFor example:\n```\n(cpuPlatform = \"Intel Skylake\") OR\n(cpuPlatform = \"Intel Broadwell\") AND\n(scheduling.automaticRestart = true)\n```\n\nIf you want to use a regular expression, use the `eq` (equal) or `ne`\n(not equal) operator against a single un-parenthesized expression with or\nwithout quotes or against multiple parenthesized expressions. Examples:\n\n`fieldname eq unquoted literal`\n`fieldname eq 'single quoted literal'`\n`fieldname eq \"double quoted literal\"`\n`(fieldname1 eq literal) (fieldname2 ne \"literal\")`\n\nThe literal value is interpreted as a regular expression using GoogleRE2 library syntax.\nThe literal value must match the entire field.\n\nFor example, to filter for instances that do not end with name \"instance\",\nyou would use `name ne .*instance`.\n\nYou cannot combine constraints on multiple fields using regular\nexpressions.", "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`)", + "description": "The maximum number of results per page that should be returned.\nIf the number of available results is larger than `maxResults`,\nCompute Engine returns a `nextPageToken` that can be used to get\nthe next page of results in subsequent list requests. Acceptable values are\n`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. 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.", + "description": "Sorts list results by a certain order. By default, results\nare returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation\ntimestamp using `orderBy=\"creationTimestamp desc\"`. This sorts\nresults based on the `creationTimestamp` field in\nreverse chronological order (newest result first). Use this to sort\nresources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or\n`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.", + "description": "Specifies a page token to use. Set `pageToken` to the\n`nextPageToken` returned by a previous list request to get\nthe 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" + }, + "reservation": { + "description": "The name of the reservation.\nName should conform to RFC1035 or be a resource ID.", + "location": "path", "required": true, "type": "string" }, "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", + "description": "Opt-in for partial success behavior which provides partial results in case\nof failure. The default value is false.\n\nFor example, when partial success behavior is enabled, aggregatedList for a\nsingle zone scope either returns all resources in the zone or no resources,\nwith an error code.", "location": "query", "type": "boolean" + }, + "zone": { + "description": "Name of the zone for this request. Zone name should conform to RFC1035.", + "location": "path", + "required": true, + "type": "string" } }, - "path": "projects/{project}/global/targetHttpsProxies", + "path": "projects/{project}/zones/{zone}/reservations/{reservation}/reservationBlocks", "response": { - "$ref": "TargetHttpsProxyList" + "$ref": "ReservationBlocksListResponse" }, "scopes": [ "https://www.googleapis.com/auth/cloud-platform", @@ -33831,80 +35992,51 @@ "https://www.googleapis.com/auth/compute.readonly" ] }, - "patch": { - "description": "Patches the specified TargetHttpsProxy resource with the data included in the request. This method supports PATCH semantics and uses JSON merge patch format and processing rules.", - "flatPath": "projects/{project}/global/targetHttpsProxies/{targetHttpsProxy}", - "httpMethod": "PATCH", - "id": "compute.targetHttpsProxies.patch", + "performMaintenance": { + "description": "Allows customers to perform maintenance on a reservation block", + "flatPath": "projects/{project}/zones/{zone}/reservations/{reservation}/reservationBlocks/{reservationBlock}/performMaintenance", + "httpMethod": "POST", + "id": "compute.reservationBlocks.performMaintenance", "parameterOrder": [ "project", - "targetHttpsProxy" + "zone", + "reservation", + "reservationBlock" ], "parameters": { "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. 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).", + "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).", "location": "query", "type": "string" }, - "targetHttpsProxy": { - "description": "Name of the TargetHttpsProxy resource to patch.", + "reservation": { + "description": "The name of the reservation.\nName should conform to RFC1035 or be a resource ID.", "location": "path", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", "required": true, "type": "string" - } - }, - "path": "projects/{project}/global/targetHttpsProxies/{targetHttpsProxy}", - "request": { - "$ref": "TargetHttpsProxy" - }, - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ] - }, - "setCertificateMap": { - "description": "Changes the Certificate Map for TargetHttpsProxy.", - "flatPath": "projects/{project}/global/targetHttpsProxies/{targetHttpsProxy}/setCertificateMap", - "httpMethod": "POST", - "id": "compute.targetHttpsProxies.setCertificateMap", - "parameterOrder": [ - "project", - "targetHttpsProxy" - ], - "parameters": { - "project": { - "description": "Project ID for this request.", + }, + "reservationBlock": { + "description": "The name of the reservation block.\nName should conform to RFC1035 or be a resource ID.", "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. 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).", - "location": "query", - "type": "string" - }, - "targetHttpsProxy": { - "description": "Name of the TargetHttpsProxy resource whose CertificateMap is to be set. The name must be 1-63 characters long, and comply with RFC1035.", + "zone": { + "description": "Name of the zone for this request. Zone name should conform to RFC1035.", "location": "path", "required": true, "type": "string" } }, - "path": "projects/{project}/global/targetHttpsProxies/{targetHttpsProxy}/setCertificateMap", + "path": "projects/{project}/zones/{zone}/reservations/{reservation}/reservationBlocks/{reservationBlock}/performMaintenance", "request": { - "$ref": "TargetHttpsProxiesSetCertificateMapRequest" + "$ref": "ReservationsBlocksPerformMaintenanceRequest" }, "response": { "$ref": "Operation" @@ -33914,16 +36046,25 @@ "https://www.googleapis.com/auth/compute" ] }, - "setQuicOverride": { - "description": "Sets the QUIC override policy for TargetHttpsProxy.", - "flatPath": "projects/{project}/global/targetHttpsProxies/{targetHttpsProxy}/setQuicOverride", + "setIamPolicy": { + "description": "Sets the access control policy on the specified resource.\nReplaces any existing policy.", + "flatPath": "projects/{project}/zones/{zone}/reservations/{parentResource}/reservationBlocks/{resource}/setIamPolicy", "httpMethod": "POST", - "id": "compute.targetHttpsProxies.setQuicOverride", + "id": "compute.reservationBlocks.setIamPolicy", "parameterOrder": [ "project", - "targetHttpsProxy" + "zone", + "parentResource", + "resource" ], "parameters": { + "parentResource": { + "description": "Name or id of parent resource of the resource for this request.", + "location": "path", + "pattern": "[a-z](?:[-a-zA-Z0-9/]{0,255}[a-zA-Z0-9])?", + "required": true, + "type": "string" + }, "project": { "description": "Project ID for this request.", "location": "path", @@ -33931,40 +36072,52 @@ "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. 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).", - "location": "query", + "resource": { + "description": "Name or id of the resource for this request.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "required": true, "type": "string" }, - "targetHttpsProxy": { - "description": "Name of the TargetHttpsProxy resource to set the QUIC override policy for. The name should conform to RFC1035.", + "zone": { + "description": "The name of the zone for this request.", "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", "required": true, "type": "string" } }, - "path": "projects/{project}/global/targetHttpsProxies/{targetHttpsProxy}/setQuicOverride", + "path": "projects/{project}/zones/{zone}/reservations/{parentResource}/reservationBlocks/{resource}/setIamPolicy", "request": { - "$ref": "TargetHttpsProxiesSetQuicOverrideRequest" + "$ref": "ZoneSetNestedPolicyRequest" }, "response": { - "$ref": "Operation" + "$ref": "Policy" }, "scopes": [ "https://www.googleapis.com/auth/cloud-platform", "https://www.googleapis.com/auth/compute" ] }, - "setSslCertificates": { - "description": "Replaces SslCertificates for TargetHttpsProxy.", - "flatPath": "projects/{project}/targetHttpsProxies/{targetHttpsProxy}/setSslCertificates", + "testIamPermissions": { + "description": "Returns permissions that a caller has on the specified resource.", + "flatPath": "projects/{project}/zones/{zone}/reservations/{parentResource}/reservationBlocks/{resource}/testIamPermissions", "httpMethod": "POST", - "id": "compute.targetHttpsProxies.setSslCertificates", + "id": "compute.reservationBlocks.testIamPermissions", "parameterOrder": [ "project", - "targetHttpsProxy" + "zone", + "parentResource", + "resource" ], "parameters": { + "parentResource": { + "description": "Name or id of parent resource of the resource for this request.", + "location": "path", + "pattern": "[a-z](?:[-a-zA-Z0-9/]{0,255}[a-zA-Z0-9])?", + "required": true, + "type": "string" + }, "project": { "description": "Project ID for this request.", "location": "path", @@ -33972,105 +36125,132 @@ "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. 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).", - "location": "query", + "resource": { + "description": "Name or id of the resource for this request.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "required": true, "type": "string" }, - "targetHttpsProxy": { - "description": "Name of the TargetHttpsProxy resource to set an SslCertificates resource for.", + "zone": { + "description": "The name of the zone for this request.", "location": "path", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", "required": true, "type": "string" } }, - "path": "projects/{project}/targetHttpsProxies/{targetHttpsProxy}/setSslCertificates", + "path": "projects/{project}/zones/{zone}/reservations/{parentResource}/reservationBlocks/{resource}/testIamPermissions", "request": { - "$ref": "TargetHttpsProxiesSetSslCertificatesRequest" + "$ref": "TestPermissionsRequest" }, "response": { - "$ref": "Operation" + "$ref": "TestPermissionsResponse" }, "scopes": [ "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" ] - }, - "setSslPolicy": { - "description": "Sets the SSL policy for TargetHttpsProxy. The SSL policy specifies the server-side support for SSL features. This affects connections between clients and the HTTPS proxy load balancer. They do not affect the connection between the load balancer and the backends.", - "flatPath": "projects/{project}/global/targetHttpsProxies/{targetHttpsProxy}/setSslPolicy", - "httpMethod": "POST", - "id": "compute.targetHttpsProxies.setSslPolicy", + } + } + }, + "reservationSlots": { + "methods": { + "get": { + "description": "Retrieves information about the specified reservation slot.", + "flatPath": "projects/{project}/zones/{zone}/reservations/{reservationsId}/reservationBlocks/{reservationBlocksId}/reservationSubBlocks/{reservationSubBlocksId}/reservationSlots/{reservationSlot}", + "httpMethod": "GET", + "id": "compute.reservationSlots.get", "parameterOrder": [ "project", - "targetHttpsProxy" + "zone", + "parentName", + "reservationSlot" ], "parameters": { + "parentName": { + "description": "The name of the parent reservation and parent block, formatted as\nreservations/{reservation_name}/reservationBlocks/{reservation_block_name}/reservationSubBlocks/{reservation_sub_block_name}", + "location": "path", + "pattern": "reservations/([a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19})/reservationBlocks/([a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19})/reservationSubBlocks/([a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19})", + "required": true, + "type": "string" + }, "project": { - "description": "Project ID for this request.", + "description": "The 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. 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).", - "location": "query", + "reservationSlot": { + "description": "The name of the reservation slot, formatted as RFC1035 or a resource ID\nnumber.", + "location": "path", + "required": true, "type": "string" }, - "targetHttpsProxy": { - "description": "Name of the TargetHttpsProxy resource whose SSL policy is to be set. The name must be 1-63 characters long, and comply with RFC1035.", + "zone": { + "description": "The name of the zone for this request, formatted as RFC1035.", "location": "path", "required": true, "type": "string" } }, - "path": "projects/{project}/global/targetHttpsProxies/{targetHttpsProxy}/setSslPolicy", - "request": { - "$ref": "SslPolicyReference" - }, + "path": "projects/{project}/zones/{zone}/{+parentName}/reservationSlots/{reservationSlot}", "response": { - "$ref": "Operation" + "$ref": "ReservationSlotsGetResponse" }, "scopes": [ "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" ] }, - "setUrlMap": { - "description": "Changes the URL map for TargetHttpsProxy.", - "flatPath": "projects/{project}/targetHttpsProxies/{targetHttpsProxy}/setUrlMap", + "getVersion": { + "description": "Allows customers to get SBOM versions of a reservation slot.", + "flatPath": "projects/{project}/zones/{zone}/reservations/{reservationsId}/reservationBlocks/{reservationBlocksId}/reservationSubBlocks/{reservationSubBlocksId}/reservationSlots/{reservationSlot}/getVersion", "httpMethod": "POST", - "id": "compute.targetHttpsProxies.setUrlMap", + "id": "compute.reservationSlots.getVersion", "parameterOrder": [ "project", - "targetHttpsProxy" + "zone", + "parentName", + "reservationSlot" ], "parameters": { + "parentName": { + "description": "The name of the parent reservation and parent block. In the format of\nreservations/{reservation_name}/reservationBlocks/{reservation_block_name}/reservationSubBlocks/{reservation_sub_block_name}", + "location": "path", + "pattern": "reservations/([a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19})/reservationBlocks/([a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19})/reservationSubBlocks/([a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19})", + "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. 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).", + "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).", "location": "query", "type": "string" }, - "targetHttpsProxy": { - "description": "Name of the TargetHttpsProxy resource whose URL map is to be set.", + "reservationSlot": { + "description": "The name of the reservation slot.\nName should conform to RFC1035 or be a resource ID.", + "location": "path", + "required": true, + "type": "string" + }, + "zone": { + "description": "Name of the zone for this request. Zone name should conform to RFC1035.", "location": "path", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", "required": true, "type": "string" } }, - "path": "projects/{project}/targetHttpsProxies/{targetHttpsProxy}/setUrlMap", + "path": "projects/{project}/zones/{zone}/{+parentName}/reservationSlots/{reservationSlot}/getVersion", "request": { - "$ref": "UrlMapReference" + "$ref": "ReservationSlotsGetVersionRequest" }, "response": { "$ref": "Operation" @@ -34079,70 +36259,69 @@ "https://www.googleapis.com/auth/cloud-platform", "https://www.googleapis.com/auth/compute" ] - } - } - }, - "targetInstances": { - "methods": { - "aggregatedList": { - "description": "Retrieves an aggregated list of target instances. To prevent failure, Google recommends that you set the `returnPartialSuccess` parameter to `true`.", - "flatPath": "projects/{project}/aggregated/targetInstances", + }, + "list": { + "description": "Retrieves a list of reservation slots under a single reservation.", + "flatPath": "projects/{project}/zones/{zone}/reservations/{reservationsId}/reservationBlocks/{reservationBlocksId}/reservationSubBlocks/{reservationSubBlocksId}/reservationSlots", "httpMethod": "GET", - "id": "compute.targetInstances.aggregatedList", + "id": "compute.reservationSlots.list", "parameterOrder": [ - "project" + "project", + "zone", + "parentName" ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` 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) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.", + "description": "A filter expression that filters resources listed in the response. Most\nCompute resources support two types of filter expressions:\nexpressions that support regular expressions and expressions that follow\nAPI improvement proposal AIP-160.\nThese two types of filter expressions cannot be mixed in one request.\n\nIf you want to use AIP-160, your expression must specify the field name, an\noperator, and the value that you want to use for filtering. The value\nmust be a string, a number, or a boolean. The operator\nmust be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`.\n\nFor example, if you are filtering Compute Engine instances, you can\nexclude instances named `example-instance` by specifying\n`name != example-instance`.\n\nThe `:*` comparison can be used to test whether a key has been defined.\nFor example, to find all objects with `owner` label use:\n```\nlabels.owner:*\n```\n\nYou can also filter nested fields. For example, you could specify\n`scheduling.automaticRestart = false` to include instances only\nif they are not scheduled for automatic restarts. You can use filtering\non nested fields to filter based onresource labels.\n\nTo filter on multiple expressions, provide each separate expression within\nparentheses. For example:\n```\n(scheduling.automaticRestart = true)\n(cpuPlatform = \"Intel Skylake\")\n```\nBy default, each expression is an `AND` expression. However, you\ncan include `AND` and `OR` expressions explicitly.\nFor example:\n```\n(cpuPlatform = \"Intel Skylake\") OR\n(cpuPlatform = \"Intel Broadwell\") AND\n(scheduling.automaticRestart = true)\n```\n\nIf you want to use a regular expression, use the `eq` (equal) or `ne`\n(not equal) operator against a single un-parenthesized expression with or\nwithout quotes or against multiple parenthesized expressions. Examples:\n\n`fieldname eq unquoted literal`\n`fieldname eq 'single quoted literal'`\n`fieldname eq \"double quoted literal\"`\n`(fieldname1 eq literal) (fieldname2 ne \"literal\")`\n\nThe literal value is interpreted as a regular expression using GoogleRE2 library syntax.\nThe literal value must match the entire field.\n\nFor example, to filter for instances that do not end with name \"instance\",\nyou would use `name ne .*instance`.\n\nYou cannot combine constraints on multiple fields using regular\nexpressions.", "location": "query", "type": "string" }, - "includeAllScopes": { - "description": "Indicates whether every visible scope for each scope type (zone, region, global) should be included in the response. For new resource types added after this field, the flag has no effect as new resource types will always include every visible scope for each scope type in response. For resource types which predate this field, if this flag is omitted or false, only scopes of the scope types where the resource type is expected to be found will be included.", - "location": "query", - "type": "boolean" - }, "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`)", + "description": "The maximum number of results per page that should be returned.\nIf the number of available results is larger than `maxResults`,\nCompute Engine returns a `nextPageToken` that can be used to get\nthe next page of results in subsequent list requests. Acceptable values are\n`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. 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.", + "description": "Sorts list results by a certain order. By default, results\nare returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation\ntimestamp using `orderBy=\"creationTimestamp desc\"`. This sorts\nresults based on the `creationTimestamp` field in\nreverse chronological order (newest result first). Use this to sort\nresources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or\n`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.", + "description": "Specifies a page token to use. Set `pageToken` to the\n`nextPageToken` returned by a previous list request to get\nthe next page of results.", "location": "query", "type": "string" }, + "parentName": { + "description": "The name of the parent reservation and parent block, formatted as\nreservations/{reservation_name}/reservationBlocks/{reservation_block_name}/reservationSubBlocks/{reservation_sub_block_name}", + "location": "path", + "pattern": "reservations/([a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19})/reservationBlocks/([a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19})/reservationSubBlocks/([a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19})", + "required": true, + "type": "string" + }, "project": { - "description": "Project ID for this request.", + "description": "The 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" }, "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", + "description": "Opt-in for partial success behavior which provides partial results in case\nof failure. The default value is false.\n\nFor example, when partial success behavior is enabled, aggregatedList for a\nsingle zone scope either returns all resources in the zone or no resources,\nwith an error code.", "location": "query", "type": "boolean" }, - "serviceProjectNumber": { - "description": "The Shared VPC service project id or service project number for which aggregated list request is invoked for subnetworks list-usable api.", - "format": "int64", - "location": "query", + "zone": { + "description": "The name of the zone for this request, formatted as RFC1035.", + "location": "path", + "required": true, "type": "string" } }, - "path": "projects/{project}/aggregated/targetInstances", + "path": "projects/{project}/zones/{zone}/{+parentName}/reservationSlots", "response": { - "$ref": "TargetInstanceAggregatedList" + "$ref": "ReservationSlotsListResponse" }, "scopes": [ "https://www.googleapis.com/auth/cloud-platform", @@ -34150,45 +36329,54 @@ "https://www.googleapis.com/auth/compute.readonly" ] }, - "delete": { - "description": "Deletes the specified TargetInstance resource.", - "flatPath": "projects/{project}/zones/{zone}/targetInstances/{targetInstance}", - "httpMethod": "DELETE", - "id": "compute.targetInstances.delete", + "update": { + "description": "Update a reservation slot in the specified sub-block.", + "flatPath": "projects/{project}/zones/{zone}/reservations/{reservationsId}/reservationBlocks/{reservationBlocksId}/reservationSubBlocks/{reservationSubBlocksId}/reservationSlots/{reservationSlot}", + "httpMethod": "POST", + "id": "compute.reservationSlots.update", "parameterOrder": [ "project", "zone", - "targetInstance" + "parentName", + "reservationSlot" ], "parameters": { - "project": { - "description": "Project ID for this request.", + "parentName": { + "description": "The name of the sub-block resource.", "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])?))", + "pattern": "reservations/([a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19})/reservationBlocks/([a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19})/reservationSubBlocks/([a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19})", "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. 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).", - "location": "query", + "project": { + "description": "The project ID for this request.", + "location": "path", + "required": true, "type": "string" }, - "targetInstance": { - "description": "Name of the TargetInstance resource to delete.", + "reservationSlot": { + "description": "The name of the slot resource.", "location": "path", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", "required": true, "type": "string" }, + "updateMask": { + "description": "The fields to be updated as part of this request.", + "format": "google-fieldmask", + "location": "query", + "type": "string" + }, "zone": { - "description": "Name of the zone scoping this request.", + "description": "The name of the zone for this request, formatted as RFC1035.", "location": "path", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", "required": true, "type": "string" } }, - "path": "projects/{project}/zones/{zone}/targetInstances/{targetInstance}", + "path": "projects/{project}/zones/{zone}/{+parentName}/reservationSlots/{reservationSlot}", + "request": { + "$ref": "ReservationSlot" + }, "response": { "$ref": "Operation" }, @@ -34196,18 +36384,99 @@ "https://www.googleapis.com/auth/cloud-platform", "https://www.googleapis.com/auth/compute" ] - }, + } + } + }, + "reservationSubBlocks": { + "methods": { "get": { - "description": "Returns the specified TargetInstance resource.", - "flatPath": "projects/{project}/zones/{zone}/targetInstances/{targetInstance}", + "description": "Retrieves information about the specified reservation subBlock.", + "flatPath": "projects/{project}/zones/{zone}/reservations/{reservationsId}/reservationBlocks/{reservationBlocksId}/reservationSubBlocks/{reservationSubBlock}", "httpMethod": "GET", - "id": "compute.targetInstances.get", + "id": "compute.reservationSubBlocks.get", "parameterOrder": [ "project", "zone", - "targetInstance" + "parentName", + "reservationSubBlock" + ], + "parameters": { + "parentName": { + "description": "The name of the parent reservation and parent block. In the format of\nreservations/{reservation_name}/reservationBlocks/{reservation_block_name}", + "location": "path", + "pattern": "^reservations/[^/]+/reservationBlocks/[^/]+$", + "required": true, + "type": "string" + }, + "project": { + "description": "Project ID for this request.", + "location": "path", + "required": true, + "type": "string" + }, + "reservationSubBlock": { + "description": "The name of the reservation subBlock.\nName should conform to RFC1035 or be a resource ID.", + "location": "path", + "required": true, + "type": "string" + }, + "view": { + "description": "View of the subBlock.", + "enum": [ + "SUB_BLOCK_VIEW_BASIC", + "SUB_BLOCK_VIEW_FULL", + "SUB_BLOCK_VIEW_UNSPECIFIED" + ], + "enumDescriptions": [ + "This view includes basic information about the reservation sub block", + "Includes detailed topology view.", + "The default / unset value. The API will default to the BASIC view." + ], + "location": "query", + "type": "string" + }, + "zone": { + "description": "Name of the zone for this request. Zone name should conform to RFC1035.", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "projects/{project}/zones/{zone}/{+parentName}/reservationSubBlocks/{reservationSubBlock}", + "response": { + "$ref": "ReservationSubBlocksGetResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ] + }, + "getIamPolicy": { + "description": "Gets the access control policy for a resource. May be empty if no such\npolicy or resource exists.", + "flatPath": "projects/{project}/zones/{zone}/reservations/{reservationsId}/reservationBlocks/{reservationBlocksId}/reservationSubBlocks/{resource}/getIamPolicy", + "httpMethod": "GET", + "id": "compute.reservationSubBlocks.getIamPolicy", + "parameterOrder": [ + "project", + "zone", + "parentResource", + "resource" ], "parameters": { + "optionsRequestedPolicyVersion": { + "description": "Requested IAM Policy version.", + "format": "int32", + "location": "query", + "type": "integer" + }, + "parentResource": { + "description": "Name or id of parent resource of the resource for this request.", + "location": "path", + "pattern": "[a-z](?:[-a-zA-Z0-9/]{0,255}[a-zA-Z0-9])?", + "required": true, + "type": "string" + }, "project": { "description": "Project ID for this request.", "location": "path", @@ -34215,24 +36484,24 @@ "required": true, "type": "string" }, - "targetInstance": { - "description": "Name of the TargetInstance resource to return.", + "resource": { + "description": "Name or id of the resource for this request.", "location": "path", "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", "required": true, "type": "string" }, "zone": { - "description": "Name of the zone scoping this request.", + "description": "The name of the zone for this request.", "location": "path", "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", "required": true, "type": "string" } }, - "path": "projects/{project}/zones/{zone}/targetInstances/{targetInstance}", + "path": "projects/{project}/zones/{zone}/{+parentResource}/reservationSubBlocks/{resource}/getIamPolicy", "response": { - "$ref": "TargetInstance" + "$ref": "Policy" }, "scopes": [ "https://www.googleapis.com/auth/cloud-platform", @@ -34240,39 +36509,52 @@ "https://www.googleapis.com/auth/compute.readonly" ] }, - "insert": { - "description": "Creates a TargetInstance resource in the specified project and zone using the data included in the request.", - "flatPath": "projects/{project}/zones/{zone}/targetInstances", + "getVersion": { + "description": "Allows customers to get SBOM versions of a reservation subBlock.", + "flatPath": "projects/{project}/zones/{zone}/reservations/{reservationsId}/reservationBlocks/{reservationBlocksId}/reservationSubBlocks/{reservationSubBlock}/getVersion", "httpMethod": "POST", - "id": "compute.targetInstances.insert", + "id": "compute.reservationSubBlocks.getVersion", "parameterOrder": [ "project", - "zone" + "zone", + "parentName", + "reservationSubBlock" ], "parameters": { + "parentName": { + "description": "The name of the parent reservation and parent block. In the format of\nreservations/{reservation_name}/reservationBlocks/{reservation_block_name}", + "location": "path", + "pattern": "^reservations/[^/]+/reservationBlocks/[^/]+$", + "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. 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).", + "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).", "location": "query", "type": "string" }, + "reservationSubBlock": { + "description": "The name of the reservation subBlock.\nName should conform to RFC1035 or be a resource ID.", + "location": "path", + "required": true, + "type": "string" + }, "zone": { - "description": "Name of the zone scoping this request.", + "description": "Name of the zone for this request. Zone name should conform to RFC1035.", "location": "path", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", "required": true, "type": "string" } }, - "path": "projects/{project}/zones/{zone}/targetInstances", + "path": "projects/{project}/zones/{zone}/{+parentName}/reservationSubBlocks/{reservationSubBlock}/getVersion", "request": { - "$ref": "TargetInstance" + "$ref": "ReservationSubBlocksGetVersionRequest" }, "response": { "$ref": "Operation" @@ -34283,61 +36565,67 @@ ] }, "list": { - "description": "Retrieves a list of TargetInstance resources available to the specified project and zone.", - "flatPath": "projects/{project}/zones/{zone}/targetInstances", + "description": "Retrieves a list of reservation subBlocks under a single reservation.", + "flatPath": "projects/{project}/zones/{zone}/reservations/{reservationsId}/reservationBlocks/{reservationBlocksId}/reservationSubBlocks", "httpMethod": "GET", - "id": "compute.targetInstances.list", + "id": "compute.reservationSubBlocks.list", "parameterOrder": [ "project", - "zone" + "zone", + "parentName" ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` 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) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.", + "description": "A filter expression that filters resources listed in the response. Most\nCompute resources support two types of filter expressions:\nexpressions that support regular expressions and expressions that follow\nAPI improvement proposal AIP-160.\nThese two types of filter expressions cannot be mixed in one request.\n\nIf you want to use AIP-160, your expression must specify the field name, an\noperator, and the value that you want to use for filtering. The value\nmust be a string, a number, or a boolean. The operator\nmust be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`.\n\nFor example, if you are filtering Compute Engine instances, you can\nexclude instances named `example-instance` by specifying\n`name != example-instance`.\n\nThe `:*` comparison can be used to test whether a key has been defined.\nFor example, to find all objects with `owner` label use:\n```\nlabels.owner:*\n```\n\nYou can also filter nested fields. For example, you could specify\n`scheduling.automaticRestart = false` to include instances only\nif they are not scheduled for automatic restarts. You can use filtering\non nested fields to filter based onresource labels.\n\nTo filter on multiple expressions, provide each separate expression within\nparentheses. For example:\n```\n(scheduling.automaticRestart = true)\n(cpuPlatform = \"Intel Skylake\")\n```\nBy default, each expression is an `AND` expression. However, you\ncan include `AND` and `OR` expressions explicitly.\nFor example:\n```\n(cpuPlatform = \"Intel Skylake\") OR\n(cpuPlatform = \"Intel Broadwell\") AND\n(scheduling.automaticRestart = true)\n```\n\nIf you want to use a regular expression, use the `eq` (equal) or `ne`\n(not equal) operator against a single un-parenthesized expression with or\nwithout quotes or against multiple parenthesized expressions. Examples:\n\n`fieldname eq unquoted literal`\n`fieldname eq 'single quoted literal'`\n`fieldname eq \"double quoted literal\"`\n`(fieldname1 eq literal) (fieldname2 ne \"literal\")`\n\nThe literal value is interpreted as a regular expression using GoogleRE2 library syntax.\nThe literal value must match the entire field.\n\nFor example, to filter for instances that do not end with name \"instance\",\nyou would use `name ne .*instance`.\n\nYou cannot combine constraints on multiple fields using regular\nexpressions.", "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`)", + "description": "The maximum number of results per page that should be returned.\nIf the number of available results is larger than `maxResults`,\nCompute Engine returns a `nextPageToken` that can be used to get\nthe next page of results in subsequent list requests. Acceptable values are\n`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. 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.", + "description": "Sorts list results by a certain order. By default, results\nare returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation\ntimestamp using `orderBy=\"creationTimestamp desc\"`. This sorts\nresults based on the `creationTimestamp` field in\nreverse chronological order (newest result first). Use this to sort\nresources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or\n`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.", + "description": "Specifies a page token to use. Set `pageToken` to the\n`nextPageToken` returned by a previous list request to get\nthe next page of results.", "location": "query", "type": "string" }, + "parentName": { + "description": "The name of the parent reservation and parent block. In the format of\nreservations/{reservation_name}/reservationBlocks/{reservation_block_name}", + "location": "path", + "pattern": "^reservations/[^/]+/reservationBlocks/[^/]+$", + "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" }, "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", + "description": "Opt-in for partial success behavior which provides partial results in case\nof failure. The default value is false.\n\nFor example, when partial success behavior is enabled, aggregatedList for a\nsingle zone scope either returns all resources in the zone or no resources,\nwith an error code.", "location": "query", "type": "boolean" }, "zone": { - "description": "Name of the zone scoping this request.", + "description": "Name of the zone for this request. Zone name should conform to RFC1035.", "location": "path", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", "required": true, "type": "string" } }, - "path": "projects/{project}/zones/{zone}/targetInstances", + "path": "projects/{project}/zones/{zone}/{+parentName}/reservationSubBlocks", "response": { - "$ref": "TargetInstanceList" + "$ref": "ReservationSubBlocksListResponse" }, "scopes": [ "https://www.googleapis.com/auth/cloud-platform", @@ -34345,47 +36633,50 @@ "https://www.googleapis.com/auth/compute.readonly" ] }, - "setSecurityPolicy": { - "description": "Sets the Google Cloud Armor security policy for the specified target instance. For more information, see Google Cloud Armor Overview", - "flatPath": "projects/{project}/zones/{zone}/targetInstances/{targetInstance}/setSecurityPolicy", + "performMaintenance": { + "description": "Allows customers to perform maintenance on a reservation subBlock", + "flatPath": "projects/{project}/zones/{zone}/reservations/{reservationsId}/reservationBlocks/{reservationBlocksId}/reservationSubBlocks/{reservationSubBlock}/performMaintenance", "httpMethod": "POST", - "id": "compute.targetInstances.setSecurityPolicy", + "id": "compute.reservationSubBlocks.performMaintenance", "parameterOrder": [ "project", "zone", - "targetInstance" + "parentName", + "reservationSubBlock" ], "parameters": { + "parentName": { + "description": "The name of the parent reservation and parent block. In the format of\nreservations/{reservation_name}/reservationBlocks/{reservation_block_name}", + "location": "path", + "pattern": "^reservations/[^/]+/reservationBlocks/[^/]+$", + "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. 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).", + "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).", "location": "query", "type": "string" }, - "targetInstance": { - "description": "Name of the TargetInstance resource to which the security policy should be set. The name should conform to RFC1035.", + "reservationSubBlock": { + "description": "The name of the reservation subBlock.\nName should conform to RFC1035 or be a resource ID.", "location": "path", "required": true, "type": "string" }, "zone": { - "description": "Name of the zone scoping this request.", + "description": "Name of the zone for this request. Zone name should conform to RFC1035.", "location": "path", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", "required": true, "type": "string" } }, - "path": "projects/{project}/zones/{zone}/targetInstances/{targetInstance}/setSecurityPolicy", - "request": { - "$ref": "SecurityPolicyReference" - }, + "path": "projects/{project}/zones/{zone}/{+parentName}/reservationSubBlocks/{reservationSubBlock}/performMaintenance", "response": { "$ref": "Operation" }, @@ -34393,52 +36684,53 @@ "https://www.googleapis.com/auth/cloud-platform", "https://www.googleapis.com/auth/compute" ] - } - } - }, - "targetPools": { - "methods": { - "addHealthCheck": { - "description": "Adds health check URLs to a target pool.", - "flatPath": "projects/{project}/regions/{region}/targetPools/{targetPool}/addHealthCheck", + }, + "reportFaulty": { + "description": "Allows customers to report a faulty subBlock.", + "flatPath": "projects/{project}/zones/{zone}/reservations/{reservationsId}/reservationBlocks/{reservationBlocksId}/reservationSubBlocks/{reservationSubBlock}/reportFaulty", "httpMethod": "POST", - "id": "compute.targetPools.addHealthCheck", + "id": "compute.reservationSubBlocks.reportFaulty", "parameterOrder": [ "project", - "region", - "targetPool" + "zone", + "parentName", + "reservationSubBlock" ], "parameters": { - "project": { - "description": "Project ID for this request.", + "parentName": { + "description": "The name of the parent reservation and parent block. In the format of\nreservations/{reservation_name}/reservationBlocks/{reservation_block_name}", "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])?))", + "pattern": "^reservations/[^/]+/reservationBlocks/[^/]+$", "required": true, "type": "string" }, - "region": { - "description": "Name of the region scoping this request.", + "project": { + "description": "Project ID for this request.", "location": "path", - "pattern": "[a-z](?:[-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. 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).", + "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).", "location": "query", "type": "string" }, - "targetPool": { - "description": "Name of the target pool to add a health check to.", + "reservationSubBlock": { + "description": "The name of the reservation subBlock.\nName should conform to RFC1035 or be a resource ID.", + "location": "path", + "required": true, + "type": "string" + }, + "zone": { + "description": "Name of the zone for this request. Zone name should conform to RFC1035.", "location": "path", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", "required": true, "type": "string" } }, - "path": "projects/{project}/regions/{region}/targetPools/{targetPool}/addHealthCheck", + "path": "projects/{project}/zones/{zone}/{+parentName}/reservationSubBlocks/{reservationSubBlock}/reportFaulty", "request": { - "$ref": "TargetPoolsAddHealthCheckRequest" + "$ref": "ReservationSubBlocksReportFaultyRequest" }, "response": { "$ref": "Operation" @@ -34448,17 +36740,25 @@ "https://www.googleapis.com/auth/compute" ] }, - "addInstance": { - "description": "Adds an instance to a target pool.", - "flatPath": "projects/{project}/regions/{region}/targetPools/{targetPool}/addInstance", + "setIamPolicy": { + "description": "Sets the access control policy on the specified resource.\nReplaces any existing policy.", + "flatPath": "projects/{project}/zones/{zone}/reservations/{reservationsId}/reservationBlocks/{reservationBlocksId}/reservationSubBlocks/{resource}/setIamPolicy", "httpMethod": "POST", - "id": "compute.targetPools.addInstance", + "id": "compute.reservationSubBlocks.setIamPolicy", "parameterOrder": [ "project", - "region", - "targetPool" + "zone", + "parentResource", + "resource" ], "parameters": { + "parentResource": { + "description": "Name or id of parent resource of the resource for this request.", + "location": "path", + "pattern": "[a-z](?:[-a-zA-Z0-9/]{0,255}[a-zA-Z0-9])?", + "required": true, + "type": "string" + }, "project": { "description": "Project ID for this request.", "location": "path", @@ -34466,72 +36766,125 @@ "required": true, "type": "string" }, - "region": { - "description": "Name of the region scoping this request.", + "resource": { + "description": "Name or id of the resource for this request.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "required": true, + "type": "string" + }, + "zone": { + "description": "The name of the zone for this request.", "location": "path", "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", "required": true, "type": "string" + } + }, + "path": "projects/{project}/zones/{zone}/{+parentResource}/reservationSubBlocks/{resource}/setIamPolicy", + "request": { + "$ref": "ZoneSetNestedPolicyRequest" + }, + "response": { + "$ref": "Policy" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ] + }, + "testIamPermissions": { + "description": "Returns permissions that a caller has on the specified resource.", + "flatPath": "projects/{project}/zones/{zone}/reservations/{reservationsId}/reservationBlocks/{reservationBlocksId}/reservationSubBlocks/{resource}/testIamPermissions", + "httpMethod": "POST", + "id": "compute.reservationSubBlocks.testIamPermissions", + "parameterOrder": [ + "project", + "zone", + "parentResource", + "resource" + ], + "parameters": { + "parentResource": { + "description": "Name or id of parent resource of the resource for this request.", + "location": "path", + "pattern": "[a-z](?:[-a-zA-Z0-9/]{0,255}[a-zA-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. 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).", - "location": "query", + "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" }, - "targetPool": { - "description": "Name of the TargetPool resource to add instances to.", + "resource": { + "description": "Name or id of the resource for this request.", "location": "path", "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", "required": true, "type": "string" + }, + "zone": { + "description": "The name of the zone for this request.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "required": true, + "type": "string" } }, - "path": "projects/{project}/regions/{region}/targetPools/{targetPool}/addInstance", + "path": "projects/{project}/zones/{zone}/{+parentResource}/reservationSubBlocks/{resource}/testIamPermissions", "request": { - "$ref": "TargetPoolsAddInstanceRequest" + "$ref": "TestPermissionsRequest" }, "response": { - "$ref": "Operation" + "$ref": "TestPermissionsResponse" }, "scopes": [ "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" ] - }, + } + } + }, + "reservations": { + "methods": { "aggregatedList": { - "description": "Retrieves an aggregated list of target pools. To prevent failure, Google recommends that you set the `returnPartialSuccess` parameter to `true`.", - "flatPath": "projects/{project}/aggregated/targetPools", + "description": "Retrieves an aggregated list of reservations.\n\nTo prevent failure, it is recommended that you set the\n`returnPartialSuccess` parameter to `true`.", + "flatPath": "projects/{project}/aggregated/reservations", "httpMethod": "GET", - "id": "compute.targetPools.aggregatedList", + "id": "compute.reservations.aggregatedList", "parameterOrder": [ "project" ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` 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) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.", + "description": "A filter expression that filters resources listed in the response. Most\nCompute resources support two types of filter expressions:\nexpressions that support regular expressions and expressions that follow\nAPI improvement proposal AIP-160.\nThese two types of filter expressions cannot be mixed in one request.\n\nIf you want to use AIP-160, your expression must specify the field name, an\noperator, and the value that you want to use for filtering. The value\nmust be a string, a number, or a boolean. The operator\nmust be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`.\n\nFor example, if you are filtering Compute Engine instances, you can\nexclude instances named `example-instance` by specifying\n`name != example-instance`.\n\nThe `:*` comparison can be used to test whether a key has been defined.\nFor example, to find all objects with `owner` label use:\n```\nlabels.owner:*\n```\n\nYou can also filter nested fields. For example, you could specify\n`scheduling.automaticRestart = false` to include instances only\nif they are not scheduled for automatic restarts. You can use filtering\non nested fields to filter based onresource labels.\n\nTo filter on multiple expressions, provide each separate expression within\nparentheses. For example:\n```\n(scheduling.automaticRestart = true)\n(cpuPlatform = \"Intel Skylake\")\n```\nBy default, each expression is an `AND` expression. However, you\ncan include `AND` and `OR` expressions explicitly.\nFor example:\n```\n(cpuPlatform = \"Intel Skylake\") OR\n(cpuPlatform = \"Intel Broadwell\") AND\n(scheduling.automaticRestart = true)\n```\n\nIf you want to use a regular expression, use the `eq` (equal) or `ne`\n(not equal) operator against a single un-parenthesized expression with or\nwithout quotes or against multiple parenthesized expressions. Examples:\n\n`fieldname eq unquoted literal`\n`fieldname eq 'single quoted literal'`\n`fieldname eq \"double quoted literal\"`\n`(fieldname1 eq literal) (fieldname2 ne \"literal\")`\n\nThe literal value is interpreted as a regular expression using GoogleRE2 library syntax.\nThe literal value must match the entire field.\n\nFor example, to filter for instances that do not end with name \"instance\",\nyou would use `name ne .*instance`.\n\nYou cannot combine constraints on multiple fields using regular\nexpressions.", "location": "query", "type": "string" }, "includeAllScopes": { - "description": "Indicates whether every visible scope for each scope type (zone, region, global) should be included in the response. For new resource types added after this field, the flag has no effect as new resource types will always include every visible scope for each scope type in response. For resource types which predate this field, if this flag is omitted or false, only scopes of the scope types where the resource type is expected to be found will be included.", + "description": "Indicates whether every visible scope for each scope type (zone, region,\nglobal) should be included in the response. For new resource types added\nafter this field, the flag has no effect as new resource types will always\ninclude every visible scope for each scope type in response. For resource\ntypes which predate this field, if this flag is omitted or false, only\nscopes of the scope types where the resource type is expected to be found\nwill be included.", "location": "query", "type": "boolean" }, "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`)", + "description": "The maximum number of results per page that should be returned.\nIf the number of available results is larger than `maxResults`,\nCompute Engine returns a `nextPageToken` that can be used to get\nthe next page of results in subsequent list requests. Acceptable values are\n`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. 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.", + "description": "Sorts list results by a certain order. By default, results\nare returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation\ntimestamp using `orderBy=\"creationTimestamp desc\"`. This sorts\nresults based on the `creationTimestamp` field in\nreverse chronological order (newest result first). Use this to sort\nresources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or\n`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.", + "description": "Specifies a page token to use. Set `pageToken` to the\n`nextPageToken` returned by a previous list request to get\nthe next page of results.", "location": "query", "type": "string" }, @@ -34543,20 +36896,20 @@ "type": "string" }, "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", + "description": "Opt-in for partial success behavior which provides partial results in case\nof failure. The default value is false.\n\nFor example, when partial success behavior is enabled, aggregatedList for a\nsingle zone scope either returns all resources in the zone or no resources,\nwith an error code.", "location": "query", "type": "boolean" }, "serviceProjectNumber": { - "description": "The Shared VPC service project id or service project number for which aggregated list request is invoked for subnetworks list-usable api.", + "description": "The Shared VPC service project id or service project number for which\naggregated list request is invoked for subnetworks list-usable api.", "format": "int64", "location": "query", "type": "string" } }, - "path": "projects/{project}/aggregated/targetPools", + "path": "projects/{project}/aggregated/reservations", "response": { - "$ref": "TargetPoolAggregatedList" + "$ref": "ReservationAggregatedList" }, "scopes": [ "https://www.googleapis.com/auth/cloud-platform", @@ -34565,14 +36918,14 @@ ] }, "delete": { - "description": "Deletes the specified target pool.", - "flatPath": "projects/{project}/regions/{region}/targetPools/{targetPool}", + "description": "Deletes the specified reservation.", + "flatPath": "projects/{project}/zones/{zone}/reservations/{reservation}", "httpMethod": "DELETE", - "id": "compute.targetPools.delete", + "id": "compute.reservations.delete", "parameterOrder": [ "project", - "region", - "targetPool" + "zone", + "reservation" ], "parameters": { "project": { @@ -34582,27 +36935,27 @@ "required": true, "type": "string" }, - "region": { - "description": "Name of the region scoping this request.", - "location": "path", - "pattern": "[a-z](?:[-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. 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).", + "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).", "location": "query", "type": "string" }, - "targetPool": { - "description": "Name of the TargetPool resource to delete.", + "reservation": { + "description": "Name of the reservation to delete.", "location": "path", "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", "required": true, "type": "string" + }, + "zone": { + "description": "Name of the zone for this request.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "required": true, + "type": "string" } }, - "path": "projects/{project}/regions/{region}/targetPools/{targetPool}", + "path": "projects/{project}/zones/{zone}/reservations/{reservation}", "response": { "$ref": "Operation" }, @@ -34612,14 +36965,14 @@ ] }, "get": { - "description": "Returns the specified target pool.", - "flatPath": "projects/{project}/regions/{region}/targetPools/{targetPool}", + "description": "Retrieves information about the specified reservation.", + "flatPath": "projects/{project}/zones/{zone}/reservations/{reservation}", "httpMethod": "GET", - "id": "compute.targetPools.get", + "id": "compute.reservations.get", "parameterOrder": [ "project", - "region", - "targetPool" + "zone", + "reservation" ], "parameters": { "project": { @@ -34629,24 +36982,24 @@ "required": true, "type": "string" }, - "region": { - "description": "Name of the region scoping this request.", + "reservation": { + "description": "Name of the reservation to retrieve.", "location": "path", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", "required": true, "type": "string" }, - "targetPool": { - "description": "Name of the TargetPool resource to return.", + "zone": { + "description": "Name of the zone for this request.", "location": "path", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", "required": true, "type": "string" } }, - "path": "projects/{project}/regions/{region}/targetPools/{targetPool}", + "path": "projects/{project}/zones/{zone}/reservations/{reservation}", "response": { - "$ref": "TargetPool" + "$ref": "Reservation" }, "scopes": [ "https://www.googleapis.com/auth/cloud-platform", @@ -34654,17 +37007,23 @@ "https://www.googleapis.com/auth/compute.readonly" ] }, - "getHealth": { - "description": "Gets the most recent health check results for each IP for the instance that is referenced by the given target pool.", - "flatPath": "projects/{project}/regions/{region}/targetPools/{targetPool}/getHealth", - "httpMethod": "POST", - "id": "compute.targetPools.getHealth", + "getIamPolicy": { + "description": "Gets the access control policy for a resource. May be empty if no such\npolicy or resource exists.", + "flatPath": "projects/{project}/zones/{zone}/reservations/{resource}/getIamPolicy", + "httpMethod": "GET", + "id": "compute.reservations.getIamPolicy", "parameterOrder": [ "project", - "region", - "targetPool" + "zone", + "resource" ], "parameters": { + "optionsRequestedPolicyVersion": { + "description": "Requested IAM Policy version.", + "format": "int32", + "location": "query", + "type": "integer" + }, "project": { "description": "Project ID for this request.", "location": "path", @@ -34672,27 +37031,24 @@ "required": true, "type": "string" }, - "region": { - "description": "Name of the region scoping this request.", + "resource": { + "description": "Name or id of the resource for this request.", "location": "path", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", "required": true, "type": "string" }, - "targetPool": { - "description": "Name of the TargetPool resource to which the queried instance belongs.", + "zone": { + "description": "The name of the zone for this request.", "location": "path", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", "required": true, "type": "string" } }, - "path": "projects/{project}/regions/{region}/targetPools/{targetPool}/getHealth", - "request": { - "$ref": "InstanceReference" - }, + "path": "projects/{project}/zones/{zone}/reservations/{resource}/getIamPolicy", "response": { - "$ref": "TargetPoolInstanceHealth" + "$ref": "Policy" }, "scopes": [ "https://www.googleapis.com/auth/cloud-platform", @@ -34701,13 +37057,13 @@ ] }, "insert": { - "description": "Creates a target pool in the specified project and region using the data included in the request.", - "flatPath": "projects/{project}/regions/{region}/targetPools", + "description": "Creates a new reservation. For more information, readReserving zonal\nresources.", + "flatPath": "projects/{project}/zones/{zone}/reservations", "httpMethod": "POST", - "id": "compute.targetPools.insert", + "id": "compute.reservations.insert", "parameterOrder": [ "project", - "region" + "zone" ], "parameters": { "project": { @@ -34717,22 +37073,22 @@ "required": true, "type": "string" }, - "region": { - "description": "Name of the region scoping this request.", + "requestId": { + "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).", + "location": "query", + "type": "string" + }, + "zone": { + "description": "Name of the zone for this request.", "location": "path", "pattern": "[a-z](?:[-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. 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).", - "location": "query", - "type": "string" } }, - "path": "projects/{project}/regions/{region}/targetPools", + "path": "projects/{project}/zones/{zone}/reservations", "request": { - "$ref": "TargetPool" + "$ref": "Reservation" }, "response": { "$ref": "Operation" @@ -34743,35 +37099,35 @@ ] }, "list": { - "description": "Retrieves a list of target pools available to the specified project and region.", - "flatPath": "projects/{project}/regions/{region}/targetPools", + "description": "A list of all the reservations that have been configured for the\nspecified project in specified zone.", + "flatPath": "projects/{project}/zones/{zone}/reservations", "httpMethod": "GET", - "id": "compute.targetPools.list", + "id": "compute.reservations.list", "parameterOrder": [ "project", - "region" + "zone" ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` 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) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.", + "description": "A filter expression that filters resources listed in the response. Most\nCompute resources support two types of filter expressions:\nexpressions that support regular expressions and expressions that follow\nAPI improvement proposal AIP-160.\nThese two types of filter expressions cannot be mixed in one request.\n\nIf you want to use AIP-160, your expression must specify the field name, an\noperator, and the value that you want to use for filtering. The value\nmust be a string, a number, or a boolean. The operator\nmust be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`.\n\nFor example, if you are filtering Compute Engine instances, you can\nexclude instances named `example-instance` by specifying\n`name != example-instance`.\n\nThe `:*` comparison can be used to test whether a key has been defined.\nFor example, to find all objects with `owner` label use:\n```\nlabels.owner:*\n```\n\nYou can also filter nested fields. For example, you could specify\n`scheduling.automaticRestart = false` to include instances only\nif they are not scheduled for automatic restarts. You can use filtering\non nested fields to filter based onresource labels.\n\nTo filter on multiple expressions, provide each separate expression within\nparentheses. For example:\n```\n(scheduling.automaticRestart = true)\n(cpuPlatform = \"Intel Skylake\")\n```\nBy default, each expression is an `AND` expression. However, you\ncan include `AND` and `OR` expressions explicitly.\nFor example:\n```\n(cpuPlatform = \"Intel Skylake\") OR\n(cpuPlatform = \"Intel Broadwell\") AND\n(scheduling.automaticRestart = true)\n```\n\nIf you want to use a regular expression, use the `eq` (equal) or `ne`\n(not equal) operator against a single un-parenthesized expression with or\nwithout quotes or against multiple parenthesized expressions. Examples:\n\n`fieldname eq unquoted literal`\n`fieldname eq 'single quoted literal'`\n`fieldname eq \"double quoted literal\"`\n`(fieldname1 eq literal) (fieldname2 ne \"literal\")`\n\nThe literal value is interpreted as a regular expression using GoogleRE2 library syntax.\nThe literal value must match the entire field.\n\nFor example, to filter for instances that do not end with name \"instance\",\nyou would use `name ne .*instance`.\n\nYou cannot combine constraints on multiple fields using regular\nexpressions.", "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`)", + "description": "The maximum number of results per page that should be returned.\nIf the number of available results is larger than `maxResults`,\nCompute Engine returns a `nextPageToken` that can be used to get\nthe next page of results in subsequent list requests. Acceptable values are\n`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. 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.", + "description": "Sorts list results by a certain order. By default, results\nare returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation\ntimestamp using `orderBy=\"creationTimestamp desc\"`. This sorts\nresults based on the `creationTimestamp` field in\nreverse chronological order (newest result first). Use this to sort\nresources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or\n`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.", + "description": "Specifies a page token to use. Set `pageToken` to the\n`nextPageToken` returned by a previous list request to get\nthe next page of results.", "location": "query", "type": "string" }, @@ -34782,22 +37138,22 @@ "required": true, "type": "string" }, - "region": { - "description": "Name of the region scoping this request.", + "returnPartialSuccess": { + "description": "Opt-in for partial success behavior which provides partial results in case\nof failure. The default value is false.\n\nFor example, when partial success behavior is enabled, aggregatedList for a\nsingle zone scope either returns all resources in the zone or no resources,\nwith an error code.", + "location": "query", + "type": "boolean" + }, + "zone": { + "description": "Name of the zone for this request.", "location": "path", "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", "required": true, "type": "string" - }, - "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", - "location": "query", - "type": "boolean" } }, - "path": "projects/{project}/regions/{region}/targetPools", + "path": "projects/{project}/zones/{zone}/reservations", "response": { - "$ref": "TargetPoolList" + "$ref": "ReservationList" }, "scopes": [ "https://www.googleapis.com/auth/cloud-platform", @@ -34805,47 +37161,45 @@ "https://www.googleapis.com/auth/compute.readonly" ] }, - "removeHealthCheck": { - "description": "Removes health check URL from a target pool.", - "flatPath": "projects/{project}/regions/{region}/targetPools/{targetPool}/removeHealthCheck", + "performMaintenance": { + "description": "Perform maintenance on an extended reservation", + "flatPath": "projects/{project}/zones/{zone}/reservations/{reservation}/performMaintenance", "httpMethod": "POST", - "id": "compute.targetPools.removeHealthCheck", + "id": "compute.reservations.performMaintenance", "parameterOrder": [ "project", - "region", - "targetPool" + "zone", + "reservation" ], "parameters": { "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" }, "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. 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).", + "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).", "location": "query", "type": "string" }, - "targetPool": { - "description": "Name of the target pool to remove health checks from.", + "reservation": { + "description": "The name of the reservation.\nName should conform to RFC1035 or be a resource ID.", "location": "path", "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", "required": true, "type": "string" + }, + "zone": { + "description": "Name of the zone for this request. Zone name should conform to RFC1035.", + "location": "path", + "required": true, + "type": "string" } }, - "path": "projects/{project}/regions/{region}/targetPools/{targetPool}/removeHealthCheck", + "path": "projects/{project}/zones/{zone}/reservations/{reservation}/performMaintenance", "request": { - "$ref": "TargetPoolsRemoveHealthCheckRequest" + "$ref": "ReservationsPerformMaintenanceRequest" }, "response": { "$ref": "Operation" @@ -34855,15 +37209,15 @@ "https://www.googleapis.com/auth/compute" ] }, - "removeInstance": { - "description": "Removes instance URL from a target pool.", - "flatPath": "projects/{project}/regions/{region}/targetPools/{targetPool}/removeInstance", + "resize": { + "description": "Resizes the reservation (applicable to standalone reservations only). For\nmore information, readModifying\nreservations.", + "flatPath": "projects/{project}/zones/{zone}/reservations/{reservation}/resize", "httpMethod": "POST", - "id": "compute.targetPools.removeInstance", + "id": "compute.reservations.resize", "parameterOrder": [ "project", - "region", - "targetPool" + "zone", + "reservation" ], "parameters": { "project": { @@ -34873,29 +37227,29 @@ "required": true, "type": "string" }, - "region": { - "description": "Name of the region scoping this request.", + "requestId": { + "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).", + "location": "query", + "type": "string" + }, + "reservation": { + "description": "Name of the reservation to update.", "location": "path", "pattern": "[a-z](?:[-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. 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).", - "location": "query", - "type": "string" - }, - "targetPool": { - "description": "Name of the TargetPool resource to remove instances from.", + "zone": { + "description": "Name of the zone for this request.", "location": "path", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", "required": true, "type": "string" } }, - "path": "projects/{project}/regions/{region}/targetPools/{targetPool}/removeInstance", + "path": "projects/{project}/zones/{zone}/reservations/{reservation}/resize", "request": { - "$ref": "TargetPoolsRemoveInstanceRequest" + "$ref": "ReservationsResizeRequest" }, "response": { "$ref": "Operation" @@ -34905,23 +37259,17 @@ "https://www.googleapis.com/auth/compute" ] }, - "setBackup": { - "description": "Changes a backup target pool's configurations.", - "flatPath": "projects/{project}/regions/{region}/targetPools/{targetPool}/setBackup", + "setIamPolicy": { + "description": "Sets the access control policy on the specified resource.\nReplaces any existing policy.", + "flatPath": "projects/{project}/zones/{zone}/reservations/{resource}/setIamPolicy", "httpMethod": "POST", - "id": "compute.targetPools.setBackup", + "id": "compute.reservations.setIamPolicy", "parameterOrder": [ "project", - "region", - "targetPool" + "zone", + "resource" ], "parameters": { - "failoverRatio": { - "description": "New failoverRatio value for the target pool.", - "format": "float", - "location": "query", - "type": "number" - }, "project": { "description": "Project ID for this request.", "location": "path", @@ -34929,47 +37277,42 @@ "required": true, "type": "string" }, - "region": { - "description": "Name of the region scoping this request.", + "resource": { + "description": "Name or id of the resource for this request.", "location": "path", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", "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. 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).", - "location": "query", - "type": "string" - }, - "targetPool": { - "description": "Name of the TargetPool resource to set a backup pool for.", + "zone": { + "description": "The name of the zone for this request.", "location": "path", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", "required": true, "type": "string" } }, - "path": "projects/{project}/regions/{region}/targetPools/{targetPool}/setBackup", + "path": "projects/{project}/zones/{zone}/reservations/{resource}/setIamPolicy", "request": { - "$ref": "TargetReference" + "$ref": "ZoneSetPolicyRequest" }, "response": { - "$ref": "Operation" + "$ref": "Policy" }, "scopes": [ "https://www.googleapis.com/auth/cloud-platform", "https://www.googleapis.com/auth/compute" ] }, - "setSecurityPolicy": { - "description": "Sets the Google Cloud Armor security policy for the specified target pool. For more information, see Google Cloud Armor Overview", - "flatPath": "projects/{project}/regions/{region}/targetPools/{targetPool}/setSecurityPolicy", + "testIamPermissions": { + "description": "Returns permissions that a caller has on the specified resource.", + "flatPath": "projects/{project}/zones/{zone}/reservations/{resource}/testIamPermissions", "httpMethod": "POST", - "id": "compute.targetPools.setSecurityPolicy", + "id": "compute.reservations.testIamPermissions", "parameterOrder": [ "project", - "region", - "targetPool" + "zone", + "resource" ], "parameters": { "project": { @@ -34979,51 +37322,50 @@ "required": true, "type": "string" }, - "region": { - "description": "Name of the region scoping this request.", + "resource": { + "description": "Name or id of the resource for this request.", "location": "path", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", "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. 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).", - "location": "query", - "type": "string" - }, - "targetPool": { - "description": "Name of the TargetPool resource to which the security policy should be set. The name should conform to RFC1035.", + "zone": { + "description": "The name of the zone for this request.", "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", "required": true, "type": "string" } }, - "path": "projects/{project}/regions/{region}/targetPools/{targetPool}/setSecurityPolicy", + "path": "projects/{project}/zones/{zone}/reservations/{resource}/testIamPermissions", "request": { - "$ref": "SecurityPolicyReference" + "$ref": "TestPermissionsRequest" }, "response": { - "$ref": "Operation" + "$ref": "TestPermissionsResponse" }, "scopes": [ "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" ] - } - } - }, - "targetSslProxies": { - "methods": { - "delete": { - "description": "Deletes the specified TargetSslProxy resource.", - "flatPath": "projects/{project}/global/targetSslProxies/{targetSslProxy}", - "httpMethod": "DELETE", - "id": "compute.targetSslProxies.delete", + }, + "update": { + "description": "Update share settings of the reservation.", + "flatPath": "projects/{project}/zones/{zone}/reservations/{reservation}", + "httpMethod": "PATCH", + "id": "compute.reservations.update", "parameterOrder": [ "project", - "targetSslProxy" + "zone", + "reservation" ], "parameters": { + "paths": { + "location": "query", + "repeated": true, + "type": "string" + }, "project": { "description": "Project ID for this request.", "location": "path", @@ -35032,19 +37374,35 @@ "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. 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).", + "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).", "location": "query", "type": "string" }, - "targetSslProxy": { - "description": "Name of the TargetSslProxy resource to delete.", + "reservation": { + "description": "Name of the reservation to update.", "location": "path", "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", "required": true, "type": "string" + }, + "updateMask": { + "description": "Update_mask indicates fields to be updated as part of this request.", + "format": "google-fieldmask", + "location": "query", + "type": "string" + }, + "zone": { + "description": "Name of the zone for this request.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "required": true, + "type": "string" } }, - "path": "projects/{project}/global/targetSslProxies/{targetSslProxy}", + "path": "projects/{project}/zones/{zone}/reservations/{reservation}", + "request": { + "$ref": "Reservation" + }, "response": { "$ref": "Operation" }, @@ -35052,17 +37410,48 @@ "https://www.googleapis.com/auth/cloud-platform", "https://www.googleapis.com/auth/compute" ] - }, - "get": { - "description": "Returns the specified TargetSslProxy resource.", - "flatPath": "projects/{project}/global/targetSslProxies/{targetSslProxy}", + } + } + }, + "resourcePolicies": { + "methods": { + "aggregatedList": { + "description": "Retrieves an aggregated list of resource policies.\n\nTo prevent failure, Google recommends that you set the\n`returnPartialSuccess` parameter to `true`.", + "flatPath": "projects/{project}/aggregated/resourcePolicies", "httpMethod": "GET", - "id": "compute.targetSslProxies.get", + "id": "compute.resourcePolicies.aggregatedList", "parameterOrder": [ - "project", - "targetSslProxy" + "project" ], "parameters": { + "filter": { + "description": "A filter expression that filters resources listed in the response. Most\nCompute resources support two types of filter expressions:\nexpressions that support regular expressions and expressions that follow\nAPI improvement proposal AIP-160.\nThese two types of filter expressions cannot be mixed in one request.\n\nIf you want to use AIP-160, your expression must specify the field name, an\noperator, and the value that you want to use for filtering. The value\nmust be a string, a number, or a boolean. The operator\nmust be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`.\n\nFor example, if you are filtering Compute Engine instances, you can\nexclude instances named `example-instance` by specifying\n`name != example-instance`.\n\nThe `:*` comparison can be used to test whether a key has been defined.\nFor example, to find all objects with `owner` label use:\n```\nlabels.owner:*\n```\n\nYou can also filter nested fields. For example, you could specify\n`scheduling.automaticRestart = false` to include instances only\nif they are not scheduled for automatic restarts. You can use filtering\non nested fields to filter based onresource labels.\n\nTo filter on multiple expressions, provide each separate expression within\nparentheses. For example:\n```\n(scheduling.automaticRestart = true)\n(cpuPlatform = \"Intel Skylake\")\n```\nBy default, each expression is an `AND` expression. However, you\ncan include `AND` and `OR` expressions explicitly.\nFor example:\n```\n(cpuPlatform = \"Intel Skylake\") OR\n(cpuPlatform = \"Intel Broadwell\") AND\n(scheduling.automaticRestart = true)\n```\n\nIf you want to use a regular expression, use the `eq` (equal) or `ne`\n(not equal) operator against a single un-parenthesized expression with or\nwithout quotes or against multiple parenthesized expressions. Examples:\n\n`fieldname eq unquoted literal`\n`fieldname eq 'single quoted literal'`\n`fieldname eq \"double quoted literal\"`\n`(fieldname1 eq literal) (fieldname2 ne \"literal\")`\n\nThe literal value is interpreted as a regular expression using GoogleRE2 library syntax.\nThe literal value must match the entire field.\n\nFor example, to filter for instances that do not end with name \"instance\",\nyou would use `name ne .*instance`.\n\nYou cannot combine constraints on multiple fields using regular\nexpressions.", + "location": "query", + "type": "string" + }, + "includeAllScopes": { + "description": "Indicates whether every visible scope for each scope type (zone, region,\nglobal) should be included in the response. For new resource types added\nafter this field, the flag has no effect as new resource types will always\ninclude every visible scope for each scope type in response. For resource\ntypes which predate this field, if this flag is omitted or false, only\nscopes of the scope types where the resource type is expected to be found\nwill be included.", + "location": "query", + "type": "boolean" + }, + "maxResults": { + "default": "500", + "description": "The maximum number of results per page that should be returned.\nIf the number of available results is larger than `maxResults`,\nCompute Engine returns a `nextPageToken` that can be used to get\nthe next page of results in subsequent list requests. Acceptable values are\n`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\nare returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation\ntimestamp using `orderBy=\"creationTimestamp desc\"`. This sorts\nresults based on the `creationTimestamp` field in\nreverse chronological order (newest result first). Use this to sort\nresources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or\n`creationTimestamp desc` is supported.", + "location": "query", + "type": "string" + }, + "pageToken": { + "description": "Specifies a page token to use. Set `pageToken` to the\n`nextPageToken` returned by a previous list request to get\nthe next page of results.", + "location": "query", + "type": "string" + }, "project": { "description": "Project ID for this request.", "location": "path", @@ -35070,17 +37459,21 @@ "required": true, "type": "string" }, - "targetSslProxy": { - "description": "Name of the TargetSslProxy resource to return.", - "location": "path", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "required": true, + "returnPartialSuccess": { + "description": "Opt-in for partial success behavior which provides partial results in case\nof failure. The default value is false.\n\nFor example, when partial success behavior is enabled, aggregatedList for a\nsingle zone scope either returns all resources in the zone or no resources,\nwith an error code.", + "location": "query", + "type": "boolean" + }, + "serviceProjectNumber": { + "description": "The Shared VPC service project id or service project number for which\naggregated list request is invoked for subnetworks list-usable api.", + "format": "int64", + "location": "query", "type": "string" } }, - "path": "projects/{project}/global/targetSslProxies/{targetSslProxy}", + "path": "projects/{project}/aggregated/resourcePolicies", "response": { - "$ref": "TargetSslProxy" + "$ref": "ResourcePolicyAggregatedList" }, "scopes": [ "https://www.googleapis.com/auth/cloud-platform", @@ -35088,13 +37481,15 @@ "https://www.googleapis.com/auth/compute.readonly" ] }, - "insert": { - "description": "Creates a TargetSslProxy resource in the specified project using the data included in the request.", - "flatPath": "projects/{project}/global/targetSslProxies", - "httpMethod": "POST", - "id": "compute.targetSslProxies.insert", + "delete": { + "description": "Deletes the specified resource policy.", + "flatPath": "projects/{project}/regions/{region}/resourcePolicies/{resourcePolicy}", + "httpMethod": "DELETE", + "id": "compute.resourcePolicies.delete", "parameterOrder": [ - "project" + "project", + "region", + "resourcePolicy" ], "parameters": { "project": { @@ -35104,16 +37499,27 @@ "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" + }, "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. 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).", + "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).", "location": "query", "type": "string" + }, + "resourcePolicy": { + "description": "Name of the resource policy to delete.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "required": true, + "type": "string" } }, - "path": "projects/{project}/global/targetSslProxies", - "request": { - "$ref": "TargetSslProxy" - }, + "path": "projects/{project}/regions/{region}/resourcePolicies/{resourcePolicy}", "response": { "$ref": "Operation" }, @@ -35122,38 +37528,17 @@ "https://www.googleapis.com/auth/compute" ] }, - "list": { - "description": "Retrieves the list of TargetSslProxy resources available to the specified project.", - "flatPath": "projects/{project}/global/targetSslProxies", + "get": { + "description": "Retrieves all information of the specified resource policy.", + "flatPath": "projects/{project}/regions/{region}/resourcePolicies/{resourcePolicy}", "httpMethod": "GET", - "id": "compute.targetSslProxies.list", + "id": "compute.resourcePolicies.get", "parameterOrder": [ - "project" + "project", + "region", + "resourcePolicy" ], "parameters": { - "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` 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) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.", - "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. 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.", - "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", @@ -35161,15 +37546,24 @@ "required": true, "type": "string" }, - "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", - "location": "query", - "type": "boolean" + "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" + }, + "resourcePolicy": { + "description": "Name of the resource policy to retrieve.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "required": true, + "type": "string" } }, - "path": "projects/{project}/global/targetSslProxies", + "path": "projects/{project}/regions/{region}/resourcePolicies/{resourcePolicy}", "response": { - "$ref": "TargetSslProxyList" + "$ref": "ResourcePolicy" }, "scopes": [ "https://www.googleapis.com/auth/cloud-platform", @@ -35177,16 +37571,23 @@ "https://www.googleapis.com/auth/compute.readonly" ] }, - "setBackendService": { - "description": "Changes the BackendService for TargetSslProxy.", - "flatPath": "projects/{project}/global/targetSslProxies/{targetSslProxy}/setBackendService", - "httpMethod": "POST", - "id": "compute.targetSslProxies.setBackendService", + "getIamPolicy": { + "description": "Gets the access control policy for a resource. May be empty if no such\npolicy or resource exists.", + "flatPath": "projects/{project}/regions/{region}/resourcePolicies/{resource}/getIamPolicy", + "httpMethod": "GET", + "id": "compute.resourcePolicies.getIamPolicy", "parameterOrder": [ "project", - "targetSslProxy" + "region", + "resource" ], "parameters": { + "optionsRequestedPolicyVersion": { + "description": "Requested IAM Policy version.", + "format": "int32", + "location": "query", + "type": "integer" + }, "project": { "description": "Project ID for this request.", "location": "path", @@ -35194,39 +37595,39 @@ "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. 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).", - "location": "query", + "region": { + "description": "The name of the region for this request.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "required": true, "type": "string" }, - "targetSslProxy": { - "description": "Name of the TargetSslProxy resource whose BackendService resource is to be set.", + "resource": { + "description": "Name or id of the resource for this request.", "location": "path", "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", "required": true, "type": "string" } }, - "path": "projects/{project}/global/targetSslProxies/{targetSslProxy}/setBackendService", - "request": { - "$ref": "TargetSslProxiesSetBackendServiceRequest" - }, + "path": "projects/{project}/regions/{region}/resourcePolicies/{resource}/getIamPolicy", "response": { - "$ref": "Operation" + "$ref": "Policy" }, "scopes": [ "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" ] }, - "setCertificateMap": { - "description": "Changes the Certificate Map for TargetSslProxy.", - "flatPath": "projects/{project}/global/targetSslProxies/{targetSslProxy}/setCertificateMap", + "insert": { + "description": "Creates a new resource policy.", + "flatPath": "projects/{project}/regions/{region}/resourcePolicies", "httpMethod": "POST", - "id": "compute.targetSslProxies.setCertificateMap", + "id": "compute.resourcePolicies.insert", "parameterOrder": [ "project", - "targetSslProxy" + "region" ], "parameters": { "project": { @@ -35236,21 +37637,22 @@ "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. 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).", - "location": "query", - "type": "string" - }, - "targetSslProxy": { - "description": "Name of the TargetSslProxy resource whose CertificateMap is to be set. The name must be 1-63 characters long, and comply with RFC1035.", + "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" + }, + "requestId": { + "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).", + "location": "query", + "type": "string" } }, - "path": "projects/{project}/global/targetSslProxies/{targetSslProxy}/setCertificateMap", + "path": "projects/{project}/regions/{region}/resourcePolicies", "request": { - "$ref": "TargetSslProxiesSetCertificateMapRequest" + "$ref": "ResourcePolicy" }, "response": { "$ref": "Operation" @@ -35260,16 +37662,39 @@ "https://www.googleapis.com/auth/compute" ] }, - "setProxyHeader": { - "description": "Changes the ProxyHeaderType for TargetSslProxy.", - "flatPath": "projects/{project}/global/targetSslProxies/{targetSslProxy}/setProxyHeader", - "httpMethod": "POST", - "id": "compute.targetSslProxies.setProxyHeader", + "list": { + "description": "A list all the resource policies that have been configured for the\nspecified project in specified region.", + "flatPath": "projects/{project}/regions/{region}/resourcePolicies", + "httpMethod": "GET", + "id": "compute.resourcePolicies.list", "parameterOrder": [ "project", - "targetSslProxy" + "region" ], "parameters": { + "filter": { + "description": "A filter expression that filters resources listed in the response. Most\nCompute resources support two types of filter expressions:\nexpressions that support regular expressions and expressions that follow\nAPI improvement proposal AIP-160.\nThese two types of filter expressions cannot be mixed in one request.\n\nIf you want to use AIP-160, your expression must specify the field name, an\noperator, and the value that you want to use for filtering. The value\nmust be a string, a number, or a boolean. The operator\nmust be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`.\n\nFor example, if you are filtering Compute Engine instances, you can\nexclude instances named `example-instance` by specifying\n`name != example-instance`.\n\nThe `:*` comparison can be used to test whether a key has been defined.\nFor example, to find all objects with `owner` label use:\n```\nlabels.owner:*\n```\n\nYou can also filter nested fields. For example, you could specify\n`scheduling.automaticRestart = false` to include instances only\nif they are not scheduled for automatic restarts. You can use filtering\non nested fields to filter based onresource labels.\n\nTo filter on multiple expressions, provide each separate expression within\nparentheses. For example:\n```\n(scheduling.automaticRestart = true)\n(cpuPlatform = \"Intel Skylake\")\n```\nBy default, each expression is an `AND` expression. However, you\ncan include `AND` and `OR` expressions explicitly.\nFor example:\n```\n(cpuPlatform = \"Intel Skylake\") OR\n(cpuPlatform = \"Intel Broadwell\") AND\n(scheduling.automaticRestart = true)\n```\n\nIf you want to use a regular expression, use the `eq` (equal) or `ne`\n(not equal) operator against a single un-parenthesized expression with or\nwithout quotes or against multiple parenthesized expressions. Examples:\n\n`fieldname eq unquoted literal`\n`fieldname eq 'single quoted literal'`\n`fieldname eq \"double quoted literal\"`\n`(fieldname1 eq literal) (fieldname2 ne \"literal\")`\n\nThe literal value is interpreted as a regular expression using GoogleRE2 library syntax.\nThe literal value must match the entire field.\n\nFor example, to filter for instances that do not end with name \"instance\",\nyou would use `name ne .*instance`.\n\nYou cannot combine constraints on multiple fields using regular\nexpressions.", + "location": "query", + "type": "string" + }, + "maxResults": { + "default": "500", + "description": "The maximum number of results per page that should be returned.\nIf the number of available results is larger than `maxResults`,\nCompute Engine returns a `nextPageToken` that can be used to get\nthe next page of results in subsequent list requests. Acceptable values are\n`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\nare returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation\ntimestamp using `orderBy=\"creationTimestamp desc\"`. This sorts\nresults based on the `creationTimestamp` field in\nreverse chronological order (newest result first). Use this to sort\nresources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or\n`creationTimestamp desc` is supported.", + "location": "query", + "type": "string" + }, + "pageToken": { + "description": "Specifies a page token to use. Set `pageToken` to the\n`nextPageToken` returned by a previous list request to get\nthe next page of results.", + "location": "query", + "type": "string" + }, "project": { "description": "Project ID for this request.", "location": "path", @@ -35277,39 +37702,38 @@ "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. 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).", - "location": "query", - "type": "string" - }, - "targetSslProxy": { - "description": "Name of the TargetSslProxy resource whose ProxyHeader is to be set.", + "region": { + "description": "Name of the region for this request.", "location": "path", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", "required": true, "type": "string" + }, + "returnPartialSuccess": { + "description": "Opt-in for partial success behavior which provides partial results in case\nof failure. The default value is false.\n\nFor example, when partial success behavior is enabled, aggregatedList for a\nsingle zone scope either returns all resources in the zone or no resources,\nwith an error code.", + "location": "query", + "type": "boolean" } }, - "path": "projects/{project}/global/targetSslProxies/{targetSslProxy}/setProxyHeader", - "request": { - "$ref": "TargetSslProxiesSetProxyHeaderRequest" - }, + "path": "projects/{project}/regions/{region}/resourcePolicies", "response": { - "$ref": "Operation" + "$ref": "ResourcePolicyList" }, "scopes": [ "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" ] }, - "setSslCertificates": { - "description": "Changes SslCertificates for TargetSslProxy.", - "flatPath": "projects/{project}/global/targetSslProxies/{targetSslProxy}/setSslCertificates", - "httpMethod": "POST", - "id": "compute.targetSslProxies.setSslCertificates", + "patch": { + "description": "Modify the specified resource policy.", + "flatPath": "projects/{project}/regions/{region}/resourcePolicies/{resourcePolicy}", + "httpMethod": "PATCH", + "id": "compute.resourcePolicies.patch", "parameterOrder": [ "project", - "targetSslProxy" + "region", + "resourcePolicy" ], "parameters": { "project": { @@ -35319,22 +37743,35 @@ "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" + }, "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. 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).", + "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).", "location": "query", "type": "string" }, - "targetSslProxy": { - "description": "Name of the TargetSslProxy resource whose SslCertificate resource is to be set.", + "resourcePolicy": { + "description": "Id of the resource policy to patch.", "location": "path", "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", "required": true, "type": "string" + }, + "updateMask": { + "description": "update_mask indicates fields to be updated as part of this request.", + "format": "google-fieldmask", + "location": "query", + "type": "string" } }, - "path": "projects/{project}/global/targetSslProxies/{targetSslProxy}/setSslCertificates", + "path": "projects/{project}/regions/{region}/resourcePolicies/{resourcePolicy}", "request": { - "$ref": "TargetSslProxiesSetSslCertificatesRequest" + "$ref": "ResourcePolicy" }, "response": { "$ref": "Operation" @@ -35344,14 +37781,15 @@ "https://www.googleapis.com/auth/compute" ] }, - "setSslPolicy": { - "description": "Sets the SSL policy for TargetSslProxy. The SSL policy specifies the server-side support for SSL features. This affects connections between clients and the load balancer. They do not affect the connection between the load balancer and the backends.", - "flatPath": "projects/{project}/global/targetSslProxies/{targetSslProxy}/setSslPolicy", + "setIamPolicy": { + "description": "Sets the access control policy on the specified resource.\nReplaces any existing policy.", + "flatPath": "projects/{project}/regions/{region}/resourcePolicies/{resource}/setIamPolicy", "httpMethod": "POST", - "id": "compute.targetSslProxies.setSslPolicy", + "id": "compute.resourcePolicies.setIamPolicy", "parameterOrder": [ "project", - "targetSslProxy" + "region", + "resource" ], "parameters": { "project": { @@ -35361,108 +37799,91 @@ "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. 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).", - "location": "query", + "region": { + "description": "The name of the region for this request.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "required": true, "type": "string" }, - "targetSslProxy": { - "description": "Name of the TargetSslProxy resource whose SSL policy is to be set. The name must be 1-63 characters long, and comply with RFC1035.", + "resource": { + "description": "Name or id of the resource for this request.", "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", "required": true, "type": "string" } }, - "path": "projects/{project}/global/targetSslProxies/{targetSslProxy}/setSslPolicy", + "path": "projects/{project}/regions/{region}/resourcePolicies/{resource}/setIamPolicy", "request": { - "$ref": "SslPolicyReference" + "$ref": "RegionSetPolicyRequest" }, "response": { - "$ref": "Operation" + "$ref": "Policy" }, "scopes": [ "https://www.googleapis.com/auth/cloud-platform", "https://www.googleapis.com/auth/compute" ] - } - } - }, - "targetTcpProxies": { - "methods": { - "aggregatedList": { - "description": "Retrieves the list of all TargetTcpProxy resources, regional and global, available to the specified project. To prevent failure, Google recommends that you set the `returnPartialSuccess` parameter to `true`.", - "flatPath": "projects/{project}/aggregated/targetTcpProxies", - "httpMethod": "GET", - "id": "compute.targetTcpProxies.aggregatedList", + }, + "testIamPermissions": { + "description": "Returns permissions that a caller has on the specified resource.", + "flatPath": "projects/{project}/regions/{region}/resourcePolicies/{resource}/testIamPermissions", + "httpMethod": "POST", + "id": "compute.resourcePolicies.testIamPermissions", "parameterOrder": [ - "project" + "project", + "region", + "resource" ], "parameters": { - "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` 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) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.", - "location": "query", - "type": "string" - }, - "includeAllScopes": { - "description": "Indicates whether every visible scope for each scope type (zone, region, global) should be included in the response. For new resource types added after this field, the flag has no effect as new resource types will always include every visible scope for each scope type in response. For resource types which predate this field, if this flag is omitted or false, only scopes of the scope types where the resource type is expected to be found will be included.", - "location": "query", - "type": "boolean" - }, - "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. 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.", - "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": "Name of the project scoping this request.", + "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" }, - "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", - "location": "query", - "type": "boolean" + "region": { + "description": "The name of the region for this request.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "required": true, + "type": "string" }, - "serviceProjectNumber": { - "description": "The Shared VPC service project id or service project number for which aggregated list request is invoked for subnetworks list-usable api.", - "format": "int64", - "location": "query", + "resource": { + "description": "Name or id of the resource for this request.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "required": true, "type": "string" } }, - "path": "projects/{project}/aggregated/targetTcpProxies", + "path": "projects/{project}/regions/{region}/resourcePolicies/{resource}/testIamPermissions", + "request": { + "$ref": "TestPermissionsRequest" + }, "response": { - "$ref": "TargetTcpProxyAggregatedList" + "$ref": "TestPermissionsResponse" }, "scopes": [ "https://www.googleapis.com/auth/cloud-platform", "https://www.googleapis.com/auth/compute", "https://www.googleapis.com/auth/compute.readonly" ] - }, + } + } + }, + "rolloutPlans": { + "methods": { "delete": { - "description": "Deletes the specified TargetTcpProxy resource.", - "flatPath": "projects/{project}/global/targetTcpProxies/{targetTcpProxy}", + "description": "Deletes a RolloutPlan.", + "flatPath": "projects/{project}/global/rolloutPlans/{rolloutPlan}", "httpMethod": "DELETE", - "id": "compute.targetTcpProxies.delete", + "id": "compute.rolloutPlans.delete", "parameterOrder": [ "project", - "targetTcpProxy" + "rolloutPlan" ], "parameters": { "project": { @@ -35473,19 +37894,19 @@ "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. 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).", + "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).", "location": "query", "type": "string" }, - "targetTcpProxy": { - "description": "Name of the TargetTcpProxy resource to delete.", + "rolloutPlan": { + "description": "Name of the RolloutPlan resource to delete.", "location": "path", "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", "required": true, "type": "string" } }, - "path": "projects/{project}/global/targetTcpProxies/{targetTcpProxy}", + "path": "projects/{project}/global/rolloutPlans/{rolloutPlan}", "response": { "$ref": "Operation" }, @@ -35495,13 +37916,13 @@ ] }, "get": { - "description": "Returns the specified TargetTcpProxy resource.", - "flatPath": "projects/{project}/global/targetTcpProxies/{targetTcpProxy}", + "description": "Gets details of a single project-scoped RolloutPlan.", + "flatPath": "projects/{project}/global/rolloutPlans/{rolloutPlan}", "httpMethod": "GET", - "id": "compute.targetTcpProxies.get", + "id": "compute.rolloutPlans.get", "parameterOrder": [ "project", - "targetTcpProxy" + "rolloutPlan" ], "parameters": { "project": { @@ -35511,17 +37932,17 @@ "required": true, "type": "string" }, - "targetTcpProxy": { - "description": "Name of the TargetTcpProxy resource to return.", + "rolloutPlan": { + "description": "Name of the persistent rollout plan to return.", "location": "path", "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", "required": true, "type": "string" } }, - "path": "projects/{project}/global/targetTcpProxies/{targetTcpProxy}", + "path": "projects/{project}/global/rolloutPlans/{rolloutPlan}", "response": { - "$ref": "TargetTcpProxy" + "$ref": "RolloutPlan" }, "scopes": [ "https://www.googleapis.com/auth/cloud-platform", @@ -35530,10 +37951,10 @@ ] }, "insert": { - "description": "Creates a TargetTcpProxy resource in the specified project using the data included in the request.", - "flatPath": "projects/{project}/global/targetTcpProxies", + "description": "Creates a new RolloutPlan in a given project and location.", + "flatPath": "projects/{project}/global/rolloutPlans", "httpMethod": "POST", - "id": "compute.targetTcpProxies.insert", + "id": "compute.rolloutPlans.insert", "parameterOrder": [ "project" ], @@ -35546,14 +37967,14 @@ "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. 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).", + "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).", "location": "query", "type": "string" } }, - "path": "projects/{project}/global/targetTcpProxies", + "path": "projects/{project}/global/rolloutPlans", "request": { - "$ref": "TargetTcpProxy" + "$ref": "RolloutPlan" }, "response": { "$ref": "Operation" @@ -35564,34 +37985,34 @@ ] }, "list": { - "description": "Retrieves the list of TargetTcpProxy resources available to the specified project.", - "flatPath": "projects/{project}/global/targetTcpProxies", + "description": "Lists RolloutPlans in a given project and location.", + "flatPath": "projects/{project}/global/rolloutPlans", "httpMethod": "GET", - "id": "compute.targetTcpProxies.list", + "id": "compute.rolloutPlans.list", "parameterOrder": [ "project" ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` 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) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.", + "description": "A filter expression that filters resources listed in the response. Most\nCompute resources support two types of filter expressions:\nexpressions that support regular expressions and expressions that follow\nAPI improvement proposal AIP-160.\nThese two types of filter expressions cannot be mixed in one request.\n\nIf you want to use AIP-160, your expression must specify the field name, an\noperator, and the value that you want to use for filtering. The value\nmust be a string, a number, or a boolean. The operator\nmust be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`.\n\nFor example, if you are filtering Compute Engine instances, you can\nexclude instances named `example-instance` by specifying\n`name != example-instance`.\n\nThe `:*` comparison can be used to test whether a key has been defined.\nFor example, to find all objects with `owner` label use:\n```\nlabels.owner:*\n```\n\nYou can also filter nested fields. For example, you could specify\n`scheduling.automaticRestart = false` to include instances only\nif they are not scheduled for automatic restarts. You can use filtering\non nested fields to filter based onresource labels.\n\nTo filter on multiple expressions, provide each separate expression within\nparentheses. For example:\n```\n(scheduling.automaticRestart = true)\n(cpuPlatform = \"Intel Skylake\")\n```\nBy default, each expression is an `AND` expression. However, you\ncan include `AND` and `OR` expressions explicitly.\nFor example:\n```\n(cpuPlatform = \"Intel Skylake\") OR\n(cpuPlatform = \"Intel Broadwell\") AND\n(scheduling.automaticRestart = true)\n```\n\nIf you want to use a regular expression, use the `eq` (equal) or `ne`\n(not equal) operator against a single un-parenthesized expression with or\nwithout quotes or against multiple parenthesized expressions. Examples:\n\n`fieldname eq unquoted literal`\n`fieldname eq 'single quoted literal'`\n`fieldname eq \"double quoted literal\"`\n`(fieldname1 eq literal) (fieldname2 ne \"literal\")`\n\nThe literal value is interpreted as a regular expression using GoogleRE2 library syntax.\nThe literal value must match the entire field.\n\nFor example, to filter for instances that do not end with name \"instance\",\nyou would use `name ne .*instance`.\n\nYou cannot combine constraints on multiple fields using regular\nexpressions.", "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`)", + "description": "The maximum number of results per page that should be returned.\nIf the number of available results is larger than `maxResults`,\nCompute Engine returns a `nextPageToken` that can be used to get\nthe next page of results in subsequent list requests. Acceptable values are\n`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. 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.", + "description": "Sorts list results by a certain order. By default, results\nare returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation\ntimestamp using `orderBy=\"creationTimestamp desc\"`. This sorts\nresults based on the `creationTimestamp` field in\nreverse chronological order (newest result first). Use this to sort\nresources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or\n`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.", + "description": "Specifies a page token to use. Set `pageToken` to the\n`nextPageToken` returned by a previous list request to get\nthe next page of results.", "location": "query", "type": "string" }, @@ -35603,55 +38024,62 @@ "type": "string" }, "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", + "description": "Opt-in for partial success behavior which provides partial results in case\nof failure. The default value is false.\n\nFor example, when partial success behavior is enabled, aggregatedList for a\nsingle zone scope either returns all resources in the zone or no resources,\nwith an error code.", "location": "query", "type": "boolean" } }, - "path": "projects/{project}/global/targetTcpProxies", + "path": "projects/{project}/global/rolloutPlans", "response": { - "$ref": "TargetTcpProxyList" + "$ref": "RolloutPlansListResponse" }, "scopes": [ "https://www.googleapis.com/auth/cloud-platform", "https://www.googleapis.com/auth/compute", "https://www.googleapis.com/auth/compute.readonly" ] - }, - "setBackendService": { - "description": "Changes the BackendService for TargetTcpProxy.", - "flatPath": "projects/{project}/global/targetTcpProxies/{targetTcpProxy}/setBackendService", + } + } + }, + "rollouts": { + "methods": { + "advance": { + "description": "Advances a Rollout to the next wave, or completes it if no waves remain.", + "flatPath": "projects/{project}/global/rollouts/{rollout}/advance", "httpMethod": "POST", - "id": "compute.targetTcpProxies.setBackendService", + "id": "compute.rollouts.advance", "parameterOrder": [ "project", - "targetTcpProxy" + "rollout" ], "parameters": { + "currentWaveNumber": { + "description": "Required. Wave number of the current wave.", + "format": "int64", + "location": "query", + "type": "string" + }, "project": { - "description": "Project ID for this request.", + "description": "Required. 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. 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).", + "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).", "location": "query", "type": "string" }, - "targetTcpProxy": { - "description": "Name of the TargetTcpProxy resource whose BackendService resource is to be set.", + "rollout": { + "description": "Required. Name of the Rollout resource to advance.", "location": "path", "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", "required": true, "type": "string" } }, - "path": "projects/{project}/global/targetTcpProxies/{targetTcpProxy}/setBackendService", - "request": { - "$ref": "TargetTcpProxiesSetBackendServiceRequest" - }, + "path": "projects/{project}/global/rollouts/{rollout}/advance", "response": { "$ref": "Operation" }, @@ -35660,14 +38088,14 @@ "https://www.googleapis.com/auth/compute" ] }, - "setProxyHeader": { - "description": "Changes the ProxyHeaderType for TargetTcpProxy.", - "flatPath": "projects/{project}/global/targetTcpProxies/{targetTcpProxy}/setProxyHeader", - "httpMethod": "POST", - "id": "compute.targetTcpProxies.setProxyHeader", + "cancel": { + "description": "Cancels a Rollout.", + "flatPath": "projects/{project}/global/rollouts/{rollout}", + "httpMethod": "PATCH", + "id": "compute.rollouts.cancel", "parameterOrder": [ "project", - "targetTcpProxy" + "rollout" ], "parameters": { "project": { @@ -35678,22 +38106,24 @@ "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. 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).", + "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).", "location": "query", "type": "string" }, - "targetTcpProxy": { - "description": "Name of the TargetTcpProxy resource whose ProxyHeader is to be set.", + "rollback": { + "description": "Optional. If true, then the ongoing rollout must be rolled back. Else, just cancel\nthe rollout without taking any further actions. Note that products must\nsupport at least one of these options, however, it does not need to support\nboth.", + "location": "query", + "type": "boolean" + }, + "rollout": { + "description": "Name of the Rollout resource to cancel.", "location": "path", "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", "required": true, "type": "string" } }, - "path": "projects/{project}/global/targetTcpProxies/{targetTcpProxy}/setProxyHeader", - "request": { - "$ref": "TargetTcpProxiesSetProxyHeaderRequest" - }, + "path": "projects/{project}/global/rollouts/{rollout}", "response": { "$ref": "Operation" }, @@ -35701,86 +38131,15 @@ "https://www.googleapis.com/auth/cloud-platform", "https://www.googleapis.com/auth/compute" ] - } - } - }, - "targetVpnGateways": { - "methods": { - "aggregatedList": { - "description": "Retrieves an aggregated list of target VPN gateways. To prevent failure, Google recommends that you set the `returnPartialSuccess` parameter to `true`.", - "flatPath": "projects/{project}/aggregated/targetVpnGateways", - "httpMethod": "GET", - "id": "compute.targetVpnGateways.aggregatedList", - "parameterOrder": [ - "project" - ], - "parameters": { - "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` 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) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.", - "location": "query", - "type": "string" - }, - "includeAllScopes": { - "description": "Indicates whether every visible scope for each scope type (zone, region, global) should be included in the response. For new resource types added after this field, the flag has no effect as new resource types will always include every visible scope for each scope type in response. For resource types which predate this field, if this flag is omitted or false, only scopes of the scope types where the resource type is expected to be found will be included.", - "location": "query", - "type": "boolean" - }, - "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. 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.", - "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" - }, - "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", - "location": "query", - "type": "boolean" - }, - "serviceProjectNumber": { - "description": "The Shared VPC service project id or service project number for which aggregated list request is invoked for subnetworks list-usable api.", - "format": "int64", - "location": "query", - "type": "string" - } - }, - "path": "projects/{project}/aggregated/targetVpnGateways", - "response": { - "$ref": "TargetVpnGatewayAggregatedList" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" - ] }, "delete": { - "description": "Deletes the specified target VPN gateway.", - "flatPath": "projects/{project}/regions/{region}/targetVpnGateways/{targetVpnGateway}", + "description": "Deletes a Rollout.", + "flatPath": "projects/{project}/global/rollouts/{rollout}", "httpMethod": "DELETE", - "id": "compute.targetVpnGateways.delete", + "id": "compute.rollouts.delete", "parameterOrder": [ "project", - "region", - "targetVpnGateway" + "rollout" ], "parameters": { "project": { @@ -35790,27 +38149,20 @@ "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" - }, "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. 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).", + "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).", "location": "query", "type": "string" }, - "targetVpnGateway": { - "description": "Name of the target VPN gateway to delete.", + "rollout": { + "description": "Name of the Rollout resource to delete.", "location": "path", "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", "required": true, "type": "string" } }, - "path": "projects/{project}/regions/{region}/targetVpnGateways/{targetVpnGateway}", + "path": "projects/{project}/global/rollouts/{rollout}", "response": { "$ref": "Operation" }, @@ -35820,14 +38172,13 @@ ] }, "get": { - "description": "Returns the specified target VPN gateway.", - "flatPath": "projects/{project}/regions/{region}/targetVpnGateways/{targetVpnGateway}", + "description": "Gets details of a single project-scoped Rollout.", + "flatPath": "projects/{project}/global/rollouts/{rollout}", "httpMethod": "GET", - "id": "compute.targetVpnGateways.get", + "id": "compute.rollouts.get", "parameterOrder": [ "project", - "region", - "targetVpnGateway" + "rollout" ], "parameters": { "project": { @@ -35837,24 +38188,17 @@ "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" - }, - "targetVpnGateway": { - "description": "Name of the target VPN gateway to return.", + "rollout": { + "description": "Name of the persistent rollout to return.", "location": "path", "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", "required": true, "type": "string" } }, - "path": "projects/{project}/regions/{region}/targetVpnGateways/{targetVpnGateway}", + "path": "projects/{project}/global/rollouts/{rollout}", "response": { - "$ref": "TargetVpnGateway" + "$ref": "Rollout" }, "scopes": [ "https://www.googleapis.com/auth/cloud-platform", @@ -35862,78 +38206,35 @@ "https://www.googleapis.com/auth/compute.readonly" ] }, - "insert": { - "description": "Creates a target VPN gateway in the specified project and region using the data included in the request.", - "flatPath": "projects/{project}/regions/{region}/targetVpnGateways", - "httpMethod": "POST", - "id": "compute.targetVpnGateways.insert", - "parameterOrder": [ - "project", - "region" - ], - "parameters": { - "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" - }, - "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. 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).", - "location": "query", - "type": "string" - } - }, - "path": "projects/{project}/regions/{region}/targetVpnGateways", - "request": { - "$ref": "TargetVpnGateway" - }, - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ] - }, "list": { - "description": "Retrieves a list of target VPN gateways available to the specified project and region.", - "flatPath": "projects/{project}/regions/{region}/targetVpnGateways", + "description": "Lists Rollouts in a given project and location.", + "flatPath": "projects/{project}/global/rollouts", "httpMethod": "GET", - "id": "compute.targetVpnGateways.list", + "id": "compute.rollouts.list", "parameterOrder": [ - "project", - "region" + "project" ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` 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) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.", + "description": "A filter expression that filters resources listed in the response. Most\nCompute resources support two types of filter expressions:\nexpressions that support regular expressions and expressions that follow\nAPI improvement proposal AIP-160.\nThese two types of filter expressions cannot be mixed in one request.\n\nIf you want to use AIP-160, your expression must specify the field name, an\noperator, and the value that you want to use for filtering. The value\nmust be a string, a number, or a boolean. The operator\nmust be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`.\n\nFor example, if you are filtering Compute Engine instances, you can\nexclude instances named `example-instance` by specifying\n`name != example-instance`.\n\nThe `:*` comparison can be used to test whether a key has been defined.\nFor example, to find all objects with `owner` label use:\n```\nlabels.owner:*\n```\n\nYou can also filter nested fields. For example, you could specify\n`scheduling.automaticRestart = false` to include instances only\nif they are not scheduled for automatic restarts. You can use filtering\non nested fields to filter based onresource labels.\n\nTo filter on multiple expressions, provide each separate expression within\nparentheses. For example:\n```\n(scheduling.automaticRestart = true)\n(cpuPlatform = \"Intel Skylake\")\n```\nBy default, each expression is an `AND` expression. However, you\ncan include `AND` and `OR` expressions explicitly.\nFor example:\n```\n(cpuPlatform = \"Intel Skylake\") OR\n(cpuPlatform = \"Intel Broadwell\") AND\n(scheduling.automaticRestart = true)\n```\n\nIf you want to use a regular expression, use the `eq` (equal) or `ne`\n(not equal) operator against a single un-parenthesized expression with or\nwithout quotes or against multiple parenthesized expressions. Examples:\n\n`fieldname eq unquoted literal`\n`fieldname eq 'single quoted literal'`\n`fieldname eq \"double quoted literal\"`\n`(fieldname1 eq literal) (fieldname2 ne \"literal\")`\n\nThe literal value is interpreted as a regular expression using GoogleRE2 library syntax.\nThe literal value must match the entire field.\n\nFor example, to filter for instances that do not end with name \"instance\",\nyou would use `name ne .*instance`.\n\nYou cannot combine constraints on multiple fields using regular\nexpressions.", "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`)", + "description": "The maximum number of results per page that should be returned.\nIf the number of available results is larger than `maxResults`,\nCompute Engine returns a `nextPageToken` that can be used to get\nthe next page of results in subsequent list requests. Acceptable values are\n`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. 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.", + "description": "Sorts list results by a certain order. By default, results\nare returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation\ntimestamp using `orderBy=\"creationTimestamp desc\"`. This sorts\nresults based on the `creationTimestamp` field in\nreverse chronological order (newest result first). Use this to sort\nresources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or\n`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.", + "description": "Specifies a page token to use. Set `pageToken` to the\n`nextPageToken` returned by a previous list request to get\nthe next page of results.", "location": "query", "type": "string" }, @@ -35944,22 +38245,15 @@ "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" - }, "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", + "description": "Opt-in for partial success behavior which provides partial results in case\nof failure. The default value is false.\n\nFor example, when partial success behavior is enabled, aggregatedList for a\nsingle zone scope either returns all resources in the zone or no resources,\nwith an error code.", "location": "query", "type": "boolean" } }, - "path": "projects/{project}/regions/{region}/targetVpnGateways", + "path": "projects/{project}/global/rollouts", "response": { - "$ref": "TargetVpnGatewayList" + "$ref": "RolloutsListResponse" }, "scopes": [ "https://www.googleapis.com/auth/cloud-platform", @@ -35967,48 +38261,86 @@ "https://www.googleapis.com/auth/compute.readonly" ] }, - "setLabels": { - "description": "Sets the labels on a TargetVpnGateway. To learn more about labels, read the Labeling Resources documentation.", - "flatPath": "projects/{project}/regions/{region}/targetVpnGateways/{resource}/setLabels", + "pause": { + "description": "Pauses a Rollout.", + "flatPath": "projects/{project}/global/rollouts/{rollout}/pause", "httpMethod": "POST", - "id": "compute.targetVpnGateways.setLabels", + "id": "compute.rollouts.pause", "parameterOrder": [ "project", - "region", - "resource" + "rollout" ], "parameters": { + "etag": { + "description": "The etag of the Rollout.\nIf this is provided, the request will only succeed if the etag matches\nthe current etag of the Rollout.", + "location": "query", + "type": "string" + }, "project": { - "description": "Project ID for this request.", + "description": "Required. 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": "The region for this request.", + "requestId": { + "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).", + "location": "query", + "type": "string" + }, + "rollout": { + "description": "Required. Name of the Rollout resource to pause.", "location": "path", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "required": true, + "type": "string" + } + }, + "path": "projects/{project}/global/rollouts/{rollout}/pause", + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ] + }, + "resume": { + "description": "Resumes a Rollout.", + "flatPath": "projects/{project}/global/rollouts/{rollout}/resume", + "httpMethod": "POST", + "id": "compute.rollouts.resume", + "parameterOrder": [ + "project", + "rollout" + ], + "parameters": { + "etag": { + "description": "The etag of the Rollout.\nIf this is provided, the request will only succeed if the etag matches\nthe current etag of the Rollout.", + "location": "query", + "type": "string" + }, + "project": { + "description": "Required. 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. 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).", + "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).", "location": "query", "type": "string" }, - "resource": { - "description": "Name or id of the resource for this request.", + "rollout": { + "description": "Required. Name of the Rollout resource to resume.", "location": "path", "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", "required": true, "type": "string" } }, - "path": "projects/{project}/regions/{region}/targetVpnGateways/{resource}/setLabels", - "request": { - "$ref": "RegionSetLabelsRequest" - }, + "path": "projects/{project}/global/rollouts/{rollout}/resume", "response": { "$ref": "Operation" }, @@ -36019,67 +38351,67 @@ } } }, - "urlMaps": { + "routers": { "methods": { "aggregatedList": { - "description": "Retrieves the list of all UrlMap resources, regional and global, available to the specified project. To prevent failure, Google recommends that you set the `returnPartialSuccess` parameter to `true`.", - "flatPath": "projects/{project}/aggregated/urlMaps", + "description": "Retrieves an aggregated list of routers.\n\nTo prevent failure, Google recommends that you set the\n`returnPartialSuccess` parameter to `true`.", + "flatPath": "projects/{project}/aggregated/routers", "httpMethod": "GET", - "id": "compute.urlMaps.aggregatedList", + "id": "compute.routers.aggregatedList", "parameterOrder": [ "project" ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` 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) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.", + "description": "A filter expression that filters resources listed in the response. Most\nCompute resources support two types of filter expressions:\nexpressions that support regular expressions and expressions that follow\nAPI improvement proposal AIP-160.\nThese two types of filter expressions cannot be mixed in one request.\n\nIf you want to use AIP-160, your expression must specify the field name, an\noperator, and the value that you want to use for filtering. The value\nmust be a string, a number, or a boolean. The operator\nmust be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`.\n\nFor example, if you are filtering Compute Engine instances, you can\nexclude instances named `example-instance` by specifying\n`name != example-instance`.\n\nThe `:*` comparison can be used to test whether a key has been defined.\nFor example, to find all objects with `owner` label use:\n```\nlabels.owner:*\n```\n\nYou can also filter nested fields. For example, you could specify\n`scheduling.automaticRestart = false` to include instances only\nif they are not scheduled for automatic restarts. You can use filtering\non nested fields to filter based onresource labels.\n\nTo filter on multiple expressions, provide each separate expression within\nparentheses. For example:\n```\n(scheduling.automaticRestart = true)\n(cpuPlatform = \"Intel Skylake\")\n```\nBy default, each expression is an `AND` expression. However, you\ncan include `AND` and `OR` expressions explicitly.\nFor example:\n```\n(cpuPlatform = \"Intel Skylake\") OR\n(cpuPlatform = \"Intel Broadwell\") AND\n(scheduling.automaticRestart = true)\n```\n\nIf you want to use a regular expression, use the `eq` (equal) or `ne`\n(not equal) operator against a single un-parenthesized expression with or\nwithout quotes or against multiple parenthesized expressions. Examples:\n\n`fieldname eq unquoted literal`\n`fieldname eq 'single quoted literal'`\n`fieldname eq \"double quoted literal\"`\n`(fieldname1 eq literal) (fieldname2 ne \"literal\")`\n\nThe literal value is interpreted as a regular expression using GoogleRE2 library syntax.\nThe literal value must match the entire field.\n\nFor example, to filter for instances that do not end with name \"instance\",\nyou would use `name ne .*instance`.\n\nYou cannot combine constraints on multiple fields using regular\nexpressions.", "location": "query", "type": "string" }, "includeAllScopes": { - "description": "Indicates whether every visible scope for each scope type (zone, region, global) should be included in the response. For new resource types added after this field, the flag has no effect as new resource types will always include every visible scope for each scope type in response. For resource types which predate this field, if this flag is omitted or false, only scopes of the scope types where the resource type is expected to be found will be included.", + "description": "Indicates whether every visible scope for each scope type (zone, region,\nglobal) should be included in the response. For new resource types added\nafter this field, the flag has no effect as new resource types will always\ninclude every visible scope for each scope type in response. For resource\ntypes which predate this field, if this flag is omitted or false, only\nscopes of the scope types where the resource type is expected to be found\nwill be included.", "location": "query", "type": "boolean" }, "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`)", + "description": "The maximum number of results per page that should be returned.\nIf the number of available results is larger than `maxResults`,\nCompute Engine returns a `nextPageToken` that can be used to get\nthe next page of results in subsequent list requests. Acceptable values are\n`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. 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.", + "description": "Sorts list results by a certain order. By default, results\nare returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation\ntimestamp using `orderBy=\"creationTimestamp desc\"`. This sorts\nresults based on the `creationTimestamp` field in\nreverse chronological order (newest result first). Use this to sort\nresources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or\n`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.", + "description": "Specifies a page token to use. Set `pageToken` to the\n`nextPageToken` returned by a previous list request to get\nthe next page of results.", "location": "query", "type": "string" }, "project": { - "description": "Name of the project scoping this request.", + "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" }, "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", + "description": "Opt-in for partial success behavior which provides partial results in case\nof failure. The default value is false.\n\nFor example, when partial success behavior is enabled, aggregatedList for a\nsingle zone scope either returns all resources in the zone or no resources,\nwith an error code.", "location": "query", "type": "boolean" }, "serviceProjectNumber": { - "description": "The Shared VPC service project id or service project number for which aggregated list request is invoked for subnetworks list-usable api.", + "description": "The Shared VPC service project id or service project number for which\naggregated list request is invoked for subnetworks list-usable api.", "format": "int64", "location": "query", "type": "string" } }, - "path": "projects/{project}/aggregated/urlMaps", + "path": "projects/{project}/aggregated/routers", "response": { - "$ref": "UrlMapsAggregatedList" + "$ref": "RouterAggregatedList" }, "scopes": [ "https://www.googleapis.com/auth/cloud-platform", @@ -36088,13 +38420,14 @@ ] }, "delete": { - "description": "Deletes the specified UrlMap resource.", - "flatPath": "projects/{project}/global/urlMaps/{urlMap}", + "description": "Deletes the specified Router resource.", + "flatPath": "projects/{project}/regions/{region}/routers/{router}", "httpMethod": "DELETE", - "id": "compute.urlMaps.delete", + "id": "compute.routers.delete", "parameterOrder": [ "project", - "urlMap" + "region", + "router" ], "parameters": { "project": { @@ -36104,20 +38437,27 @@ "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" + }, "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. 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).", + "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).", "location": "query", "type": "string" }, - "urlMap": { - "description": "Name of the UrlMap resource to delete.", + "router": { + "description": "Name of the Router resource to delete.", "location": "path", "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", "required": true, "type": "string" } }, - "path": "projects/{project}/global/urlMaps/{urlMap}", + "path": "projects/{project}/regions/{region}/routers/{router}", "response": { "$ref": "Operation" }, @@ -36126,16 +38466,22 @@ "https://www.googleapis.com/auth/compute" ] }, - "get": { - "description": "Returns the specified UrlMap resource.", - "flatPath": "projects/{project}/global/urlMaps/{urlMap}", - "httpMethod": "GET", - "id": "compute.urlMaps.get", + "deleteNamedSet": { + "description": "Deletes Named Set", + "flatPath": "projects/{project}/regions/{region}/routers/{router}/deleteNamedSet", + "httpMethod": "POST", + "id": "compute.routers.deleteNamedSet", "parameterOrder": [ "project", - "urlMap" + "region", + "router" ], "parameters": { + "namedSet": { + "description": "The Named Set name for this request. Name must conform to RFC1035", + "location": "query", + "type": "string" + }, "project": { "description": "Project ID for this request.", "location": "path", @@ -36143,50 +38489,27 @@ "required": true, "type": "string" }, - "urlMap": { - "description": "Name of the UrlMap resource to return.", - "location": "path", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "required": true, - "type": "string" - } - }, - "path": "projects/{project}/global/urlMaps/{urlMap}", - "response": { - "$ref": "UrlMap" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" - ] - }, - "insert": { - "description": "Creates a UrlMap resource in the specified project using the data included in the request.", - "flatPath": "projects/{project}/global/urlMaps", - "httpMethod": "POST", - "id": "compute.urlMaps.insert", - "parameterOrder": [ - "project" - ], - "parameters": { - "project": { - "description": "Project ID for this request.", + "region": { + "description": "Name of the region 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])?))", + "pattern": "[a-z](?:[-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. 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).", + "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).", "location": "query", "type": "string" + }, + "router": { + "description": "Name of the Router resource where Named Set is defined.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "required": true, + "type": "string" } }, - "path": "projects/{project}/global/urlMaps", - "request": { - "$ref": "UrlMap" - }, + "path": "projects/{project}/regions/{region}/routers/{router}/deleteNamedSet", "response": { "$ref": "Operation" }, @@ -36195,16 +38518,22 @@ "https://www.googleapis.com/auth/compute" ] }, - "invalidateCache": { - "description": "Initiates a cache invalidation operation, invalidating the specified path, scoped to the specified UrlMap. For more information, see [Invalidating cached content](/cdn/docs/invalidating-cached-content).", - "flatPath": "projects/{project}/global/urlMaps/{urlMap}/invalidateCache", + "deleteRoutePolicy": { + "description": "Deletes Route Policy", + "flatPath": "projects/{project}/regions/{region}/routers/{router}/deleteRoutePolicy", "httpMethod": "POST", - "id": "compute.urlMaps.invalidateCache", + "id": "compute.routers.deleteRoutePolicy", "parameterOrder": [ "project", - "urlMap" + "region", + "router" ], "parameters": { + "policy": { + "description": "The Policy name for this request. Name must conform to RFC1035", + "location": "query", + "type": "string" + }, "project": { "description": "Project ID for this request.", "location": "path", @@ -36212,23 +38541,27 @@ "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" + }, "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. 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).", + "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).", "location": "query", "type": "string" }, - "urlMap": { - "description": "Name of the UrlMap scoping this request.", + "router": { + "description": "Name of the Router resource where Route Policy is defined.", "location": "path", "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", "required": true, "type": "string" } }, - "path": "projects/{project}/global/urlMaps/{urlMap}/invalidateCache", - "request": { - "$ref": "CacheInvalidationRule" - }, + "path": "projects/{project}/regions/{region}/routers/{router}/deleteRoutePolicy", "response": { "$ref": "Operation" }, @@ -36237,38 +38570,17 @@ "https://www.googleapis.com/auth/compute" ] }, - "list": { - "description": "Retrieves the list of UrlMap resources available to the specified project.", - "flatPath": "projects/{project}/global/urlMaps", + "get": { + "description": "Returns the specified Router resource.", + "flatPath": "projects/{project}/regions/{region}/routers/{router}", "httpMethod": "GET", - "id": "compute.urlMaps.list", + "id": "compute.routers.get", "parameterOrder": [ - "project" + "project", + "region", + "router" ], "parameters": { - "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` 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) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.", - "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. 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.", - "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", @@ -36276,74 +38588,47 @@ "required": true, "type": "string" }, - "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", - "location": "query", - "type": "boolean" - } - }, - "path": "projects/{project}/global/urlMaps", - "response": { - "$ref": "UrlMapList" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" - ] - }, - "patch": { - "description": "Patches the specified UrlMap resource with the data included in the request. This method supports PATCH semantics and uses the JSON merge patch format and processing rules.", - "flatPath": "projects/{project}/global/urlMaps/{urlMap}", - "httpMethod": "PATCH", - "id": "compute.urlMaps.patch", - "parameterOrder": [ - "project", - "urlMap" - ], - "parameters": { - "project": { - "description": "Project ID for this request.", + "region": { + "description": "Name of the region 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])?))", + "pattern": "[a-z](?:[-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. 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).", - "location": "query", - "type": "string" - }, - "urlMap": { - "description": "Name of the UrlMap resource to patch.", + "router": { + "description": "Name of the Router resource to return.", "location": "path", "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", "required": true, "type": "string" } }, - "path": "projects/{project}/global/urlMaps/{urlMap}", - "request": { - "$ref": "UrlMap" - }, + "path": "projects/{project}/regions/{region}/routers/{router}", "response": { - "$ref": "Operation" + "$ref": "Router" }, "scopes": [ "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" ] }, - "update": { - "description": "Updates the specified UrlMap resource with the data included in the request.", - "flatPath": "projects/{project}/global/urlMaps/{urlMap}", - "httpMethod": "PUT", - "id": "compute.urlMaps.update", + "getNamedSet": { + "description": "Returns specified Named Set", + "flatPath": "projects/{project}/regions/{region}/routers/{router}/getNamedSet", + "httpMethod": "GET", + "id": "compute.routers.getNamedSet", "parameterOrder": [ "project", - "urlMap" + "region", + "router" ], "parameters": { + "namedSet": { + "description": "The Named Set name for this request. Name must conform to RFC1035", + "location": "query", + "type": "string" + }, "project": { "description": "Project ID for this request.", "location": "path", @@ -36351,41 +38636,46 @@ "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. 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).", - "location": "query", + "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" }, - "urlMap": { - "description": "Name of the UrlMap resource to update.", + "router": { + "description": "Name of the Router resource to query for the named set. The name should\nconform to RFC1035.", "location": "path", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", "required": true, "type": "string" } }, - "path": "projects/{project}/global/urlMaps/{urlMap}", - "request": { - "$ref": "UrlMap" - }, + "path": "projects/{project}/regions/{region}/routers/{router}/getNamedSet", "response": { - "$ref": "Operation" + "$ref": "RoutersGetNamedSetResponse" }, "scopes": [ "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" ] }, - "validate": { - "description": "Runs static validation for the UrlMap. In particular, the tests of the provided UrlMap will be run. Calling this method does NOT create the UrlMap.", - "flatPath": "projects/{project}/global/urlMaps/{urlMap}/validate", - "httpMethod": "POST", - "id": "compute.urlMaps.validate", + "getNatIpInfo": { + "description": "Retrieves runtime NAT IP information.", + "flatPath": "projects/{project}/regions/{region}/routers/{router}/getNatIpInfo", + "httpMethod": "GET", + "id": "compute.routers.getNatIpInfo", "parameterOrder": [ "project", - "urlMap" + "region", + "router" ], "parameters": { + "natName": { + "description": "Name of the nat service to filter the NAT IP information.\nIf it is omitted, all nats for this router will be returned.\nName should conform to RFC1035.", + "location": "query", + "type": "string" + }, "project": { "description": "Project ID for this request.", "location": "path", @@ -36393,64 +38683,66 @@ "required": true, "type": "string" }, - "urlMap": { - "description": "Name of the UrlMap resource to be validated as.", + "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 IP information. The name\nshould conform to RFC1035.", "location": "path", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", "required": true, "type": "string" } }, - "path": "projects/{project}/global/urlMaps/{urlMap}/validate", - "request": { - "$ref": "UrlMapsValidateRequest" - }, + "path": "projects/{project}/regions/{region}/routers/{router}/getNatIpInfo", "response": { - "$ref": "UrlMapsValidateResponse" + "$ref": "NatIpInfoResponse" }, "scopes": [ "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" ] - } - } - }, - "vpnGateways": { - "methods": { - "aggregatedList": { - "description": "Retrieves an aggregated list of VPN gateways. To prevent failure, Google recommends that you set the `returnPartialSuccess` parameter to `true`.", - "flatPath": "projects/{project}/aggregated/vpnGateways", + }, + "getNatMappingInfo": { + "description": "Retrieves runtime Nat mapping information of VM endpoints.", + "flatPath": "projects/{project}/regions/{region}/routers/{router}/getNatMappingInfo", "httpMethod": "GET", - "id": "compute.vpnGateways.aggregatedList", + "id": "compute.routers.getNatMappingInfo", "parameterOrder": [ - "project" + "project", + "region", + "router" ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` 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) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.", + "description": "A filter expression that filters resources listed in the response. Most\nCompute resources support two types of filter expressions:\nexpressions that support regular expressions and expressions that follow\nAPI improvement proposal AIP-160.\nThese two types of filter expressions cannot be mixed in one request.\n\nIf you want to use AIP-160, your expression must specify the field name, an\noperator, and the value that you want to use for filtering. The value\nmust be a string, a number, or a boolean. The operator\nmust be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`.\n\nFor example, if you are filtering Compute Engine instances, you can\nexclude instances named `example-instance` by specifying\n`name != example-instance`.\n\nThe `:*` comparison can be used to test whether a key has been defined.\nFor example, to find all objects with `owner` label use:\n```\nlabels.owner:*\n```\n\nYou can also filter nested fields. For example, you could specify\n`scheduling.automaticRestart = false` to include instances only\nif they are not scheduled for automatic restarts. You can use filtering\non nested fields to filter based onresource labels.\n\nTo filter on multiple expressions, provide each separate expression within\nparentheses. For example:\n```\n(scheduling.automaticRestart = true)\n(cpuPlatform = \"Intel Skylake\")\n```\nBy default, each expression is an `AND` expression. However, you\ncan include `AND` and `OR` expressions explicitly.\nFor example:\n```\n(cpuPlatform = \"Intel Skylake\") OR\n(cpuPlatform = \"Intel Broadwell\") AND\n(scheduling.automaticRestart = true)\n```\n\nIf you want to use a regular expression, use the `eq` (equal) or `ne`\n(not equal) operator against a single un-parenthesized expression with or\nwithout quotes or against multiple parenthesized expressions. Examples:\n\n`fieldname eq unquoted literal`\n`fieldname eq 'single quoted literal'`\n`fieldname eq \"double quoted literal\"`\n`(fieldname1 eq literal) (fieldname2 ne \"literal\")`\n\nThe literal value is interpreted as a regular expression using GoogleRE2 library syntax.\nThe literal value must match the entire field.\n\nFor example, to filter for instances that do not end with name \"instance\",\nyou would use `name ne .*instance`.\n\nYou cannot combine constraints on multiple fields using regular\nexpressions.", "location": "query", "type": "string" }, - "includeAllScopes": { - "description": "Indicates whether every visible scope for each scope type (zone, region, global) should be included in the response. For new resource types added after this field, the flag has no effect as new resource types will always include every visible scope for each scope type in response. For resource types which predate this field, if this flag is omitted or false, only scopes of the scope types where the resource type is expected to be found will be included.", - "location": "query", - "type": "boolean" - }, "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`)", + "description": "The maximum number of results per page that should be returned.\nIf the number of available results is larger than `maxResults`,\nCompute Engine returns a `nextPageToken` that can be used to get\nthe next page of results in subsequent list requests. Acceptable values are\n`0` to `500`, inclusive. (Default: `500`)", "format": "uint32", "location": "query", "minimum": "0", "type": "integer" }, + "natName": { + "description": "Name of the nat service to filter the Nat Mapping information.\nIf it is omitted, all nats for this router will be returned.\nName should conform to RFC1035.", + "location": "query", + "type": "string" + }, "orderBy": { - "description": "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.", + "description": "Sorts list results by a certain order. By default, results\nare returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation\ntimestamp using `orderBy=\"creationTimestamp desc\"`. This sorts\nresults based on the `creationTimestamp` field in\nreverse chronological order (newest result first). Use this to sort\nresources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or\n`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.", + "description": "Specifies a page token to use. Set `pageToken` to the\n`nextPageToken` returned by a previous list request to get\nthe next page of results.", "location": "query", "type": "string" }, @@ -36461,21 +38753,29 @@ "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" + }, "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", + "description": "Opt-in for partial success behavior which provides partial results in case\nof failure. The default value is false.\n\nFor example, when partial success behavior is enabled, aggregatedList for a\nsingle zone scope either returns all resources in the zone or no resources,\nwith an error code.", "location": "query", "type": "boolean" }, - "serviceProjectNumber": { - "description": "The Shared VPC service project id or service project number for which aggregated list request is invoked for subnetworks list-usable api.", - "format": "int64", - "location": "query", + "router": { + "description": "Name of the Router resource to query for Nat Mapping information of\nVM endpoints.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "required": true, "type": "string" } }, - "path": "projects/{project}/aggregated/vpnGateways", + "path": "projects/{project}/regions/{region}/routers/{router}/getNatMappingInfo", "response": { - "$ref": "VpnGatewayAggregatedList" + "$ref": "VmEndpointNatMappingsList" }, "scopes": [ "https://www.googleapis.com/auth/cloud-platform", @@ -36483,17 +38783,22 @@ "https://www.googleapis.com/auth/compute.readonly" ] }, - "delete": { - "description": "Deletes the specified VPN gateway.", - "flatPath": "projects/{project}/regions/{region}/vpnGateways/{vpnGateway}", - "httpMethod": "DELETE", - "id": "compute.vpnGateways.delete", + "getRoutePolicy": { + "description": "Returns specified Route Policy", + "flatPath": "projects/{project}/regions/{region}/routers/{router}/getRoutePolicy", + "httpMethod": "GET", + "id": "compute.routers.getRoutePolicy", "parameterOrder": [ "project", "region", - "vpnGateway" + "router" ], "parameters": { + "policy": { + "description": "The Policy name for this request. Name must conform to RFC1035", + "location": "query", + "type": "string" + }, "project": { "description": "Project ID for this request.", "location": "path", @@ -36508,64 +38813,16 @@ "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. 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).", - "location": "query", - "type": "string" - }, - "vpnGateway": { - "description": "Name of the VPN gateway to delete.", + "router": { + "description": "Name of the Router resource to query for the route policy. The name should\nconform to RFC1035.", "location": "path", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", "required": true, "type": "string" } }, - "path": "projects/{project}/regions/{region}/vpnGateways/{vpnGateway}", + "path": "projects/{project}/regions/{region}/routers/{router}/getRoutePolicy", "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ] - }, - "get": { - "description": "Returns the specified VPN gateway.", - "flatPath": "projects/{project}/regions/{region}/vpnGateways/{vpnGateway}", - "httpMethod": "GET", - "id": "compute.vpnGateways.get", - "parameterOrder": [ - "project", - "region", - "vpnGateway" - ], - "parameters": { - "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" - }, - "vpnGateway": { - "description": "Name of the VPN gateway to return.", - "location": "path", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "required": true, - "type": "string" - } - }, - "path": "projects/{project}/regions/{region}/vpnGateways/{vpnGateway}", - "response": { - "$ref": "VpnGateway" + "$ref": "RoutersGetRoutePolicyResponse" }, "scopes": [ "https://www.googleapis.com/auth/cloud-platform", @@ -36573,15 +38830,15 @@ "https://www.googleapis.com/auth/compute.readonly" ] }, - "getStatus": { - "description": "Returns the status for the specified VPN gateway.", - "flatPath": "projects/{project}/regions/{region}/vpnGateways/{vpnGateway}/getStatus", + "getRouterStatus": { + "description": "Retrieves runtime information of the specified router.", + "flatPath": "projects/{project}/regions/{region}/routers/{router}/getRouterStatus", "httpMethod": "GET", - "id": "compute.vpnGateways.getStatus", + "id": "compute.routers.getRouterStatus", "parameterOrder": [ "project", "region", - "vpnGateway" + "router" ], "parameters": { "project": { @@ -36598,17 +38855,17 @@ "required": true, "type": "string" }, - "vpnGateway": { - "description": "Name of the VPN gateway to return.", + "router": { + "description": "Name of the Router resource to query.", "location": "path", "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", "required": true, "type": "string" } }, - "path": "projects/{project}/regions/{region}/vpnGateways/{vpnGateway}/getStatus", + "path": "projects/{project}/regions/{region}/routers/{router}/getRouterStatus", "response": { - "$ref": "VpnGatewaysGetStatusResponse" + "$ref": "RouterStatusResponse" }, "scopes": [ "https://www.googleapis.com/auth/cloud-platform", @@ -36617,10 +38874,10 @@ ] }, "insert": { - "description": "Creates a VPN gateway in the specified project and region using the data included in the request.", - "flatPath": "projects/{project}/regions/{region}/vpnGateways", + "description": "Creates a Router resource in the specified project and region using\nthe data included in the request.", + "flatPath": "projects/{project}/regions/{region}/routers", "httpMethod": "POST", - "id": "compute.vpnGateways.insert", + "id": "compute.routers.insert", "parameterOrder": [ "project", "region" @@ -36641,14 +38898,14 @@ "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. 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).", + "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).", "location": "query", "type": "string" } }, - "path": "projects/{project}/regions/{region}/vpnGateways", + "path": "projects/{project}/regions/{region}/routers", "request": { - "$ref": "VpnGateway" + "$ref": "Router" }, "response": { "$ref": "Operation" @@ -36659,35 +38916,35 @@ ] }, "list": { - "description": "Retrieves a list of VPN gateways available to the specified project and region.", - "flatPath": "projects/{project}/regions/{region}/vpnGateways", + "description": "Retrieves a list of Router resources available to the specified project.", + "flatPath": "projects/{project}/regions/{region}/routers", "httpMethod": "GET", - "id": "compute.vpnGateways.list", + "id": "compute.routers.list", "parameterOrder": [ "project", "region" ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` 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) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.", + "description": "A filter expression that filters resources listed in the response. Most\nCompute resources support two types of filter expressions:\nexpressions that support regular expressions and expressions that follow\nAPI improvement proposal AIP-160.\nThese two types of filter expressions cannot be mixed in one request.\n\nIf you want to use AIP-160, your expression must specify the field name, an\noperator, and the value that you want to use for filtering. The value\nmust be a string, a number, or a boolean. The operator\nmust be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`.\n\nFor example, if you are filtering Compute Engine instances, you can\nexclude instances named `example-instance` by specifying\n`name != example-instance`.\n\nThe `:*` comparison can be used to test whether a key has been defined.\nFor example, to find all objects with `owner` label use:\n```\nlabels.owner:*\n```\n\nYou can also filter nested fields. For example, you could specify\n`scheduling.automaticRestart = false` to include instances only\nif they are not scheduled for automatic restarts. You can use filtering\non nested fields to filter based onresource labels.\n\nTo filter on multiple expressions, provide each separate expression within\nparentheses. For example:\n```\n(scheduling.automaticRestart = true)\n(cpuPlatform = \"Intel Skylake\")\n```\nBy default, each expression is an `AND` expression. However, you\ncan include `AND` and `OR` expressions explicitly.\nFor example:\n```\n(cpuPlatform = \"Intel Skylake\") OR\n(cpuPlatform = \"Intel Broadwell\") AND\n(scheduling.automaticRestart = true)\n```\n\nIf you want to use a regular expression, use the `eq` (equal) or `ne`\n(not equal) operator against a single un-parenthesized expression with or\nwithout quotes or against multiple parenthesized expressions. Examples:\n\n`fieldname eq unquoted literal`\n`fieldname eq 'single quoted literal'`\n`fieldname eq \"double quoted literal\"`\n`(fieldname1 eq literal) (fieldname2 ne \"literal\")`\n\nThe literal value is interpreted as a regular expression using GoogleRE2 library syntax.\nThe literal value must match the entire field.\n\nFor example, to filter for instances that do not end with name \"instance\",\nyou would use `name ne .*instance`.\n\nYou cannot combine constraints on multiple fields using regular\nexpressions.", "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`)", + "description": "The maximum number of results per page that should be returned.\nIf the number of available results is larger than `maxResults`,\nCompute Engine returns a `nextPageToken` that can be used to get\nthe next page of results in subsequent list requests. Acceptable values are\n`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. 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.", + "description": "Sorts list results by a certain order. By default, results\nare returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation\ntimestamp using `orderBy=\"creationTimestamp desc\"`. This sorts\nresults based on the `creationTimestamp` field in\nreverse chronological order (newest result first). Use this to sort\nresources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or\n`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.", + "description": "Specifies a page token to use. Set `pageToken` to the\n`nextPageToken` returned by a previous list request to get\nthe next page of results.", "location": "query", "type": "string" }, @@ -36706,14 +38963,14 @@ "type": "string" }, "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", + "description": "Opt-in for partial success behavior which provides partial results in case\nof failure. The default value is false.\n\nFor example, when partial success behavior is enabled, aggregatedList for a\nsingle zone scope either returns all resources in the zone or no resources,\nwith an error code.", "location": "query", "type": "boolean" } }, - "path": "projects/{project}/regions/{region}/vpnGateways", + "path": "projects/{project}/regions/{region}/routers", "response": { - "$ref": "VpnGatewayList" + "$ref": "RouterList" }, "scopes": [ "https://www.googleapis.com/auth/cloud-platform", @@ -36721,17 +38978,72 @@ "https://www.googleapis.com/auth/compute.readonly" ] }, - "setLabels": { - "description": "Sets the labels on a VpnGateway. To learn more about labels, read the Labeling Resources documentation.", - "flatPath": "projects/{project}/regions/{region}/vpnGateways/{resource}/setLabels", - "httpMethod": "POST", - "id": "compute.vpnGateways.setLabels", + "listBgpRoutes": { + "description": "Retrieves a list of router bgp routes available to the specified project.", + "flatPath": "projects/{project}/regions/{region}/routers/{router}/listBgpRoutes", + "httpMethod": "GET", + "id": "compute.routers.listBgpRoutes", "parameterOrder": [ "project", "region", - "resource" + "router" ], "parameters": { + "addressFamily": { + "default": "UNSPECIFIED_IP_VERSION", + "description": "(Required) limit results to this address family (either IPv4 or IPv6)", + "enum": [ + "IPV4", + "IPV6", + "UNSPECIFIED_IP_VERSION" + ], + "enumDescriptions": [ + "", + "", + "" + ], + "location": "query", + "type": "string" + }, + "destinationPrefix": { + "description": "Limit results to destinations that are subnets of this CIDR range", + "location": "query", + "type": "string" + }, + "filter": { + "description": "A filter expression that filters resources listed in the response. Most\nCompute resources support two types of filter expressions:\nexpressions that support regular expressions and expressions that follow\nAPI improvement proposal AIP-160.\nThese two types of filter expressions cannot be mixed in one request.\n\nIf you want to use AIP-160, your expression must specify the field name, an\noperator, and the value that you want to use for filtering. The value\nmust be a string, a number, or a boolean. The operator\nmust be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`.\n\nFor example, if you are filtering Compute Engine instances, you can\nexclude instances named `example-instance` by specifying\n`name != example-instance`.\n\nThe `:*` comparison can be used to test whether a key has been defined.\nFor example, to find all objects with `owner` label use:\n```\nlabels.owner:*\n```\n\nYou can also filter nested fields. For example, you could specify\n`scheduling.automaticRestart = false` to include instances only\nif they are not scheduled for automatic restarts. You can use filtering\non nested fields to filter based onresource labels.\n\nTo filter on multiple expressions, provide each separate expression within\nparentheses. For example:\n```\n(scheduling.automaticRestart = true)\n(cpuPlatform = \"Intel Skylake\")\n```\nBy default, each expression is an `AND` expression. However, you\ncan include `AND` and `OR` expressions explicitly.\nFor example:\n```\n(cpuPlatform = \"Intel Skylake\") OR\n(cpuPlatform = \"Intel Broadwell\") AND\n(scheduling.automaticRestart = true)\n```\n\nIf you want to use a regular expression, use the `eq` (equal) or `ne`\n(not equal) operator against a single un-parenthesized expression with or\nwithout quotes or against multiple parenthesized expressions. Examples:\n\n`fieldname eq unquoted literal`\n`fieldname eq 'single quoted literal'`\n`fieldname eq \"double quoted literal\"`\n`(fieldname1 eq literal) (fieldname2 ne \"literal\")`\n\nThe literal value is interpreted as a regular expression using GoogleRE2 library syntax.\nThe literal value must match the entire field.\n\nFor example, to filter for instances that do not end with name \"instance\",\nyou would use `name ne .*instance`.\n\nYou cannot combine constraints on multiple fields using regular\nexpressions.", + "location": "query", + "type": "string" + }, + "maxResults": { + "default": "500", + "description": "The maximum number of results per page that should be returned.\nIf the number of available results is larger than `maxResults`,\nCompute Engine returns a `nextPageToken` that can be used to get\nthe next page of results in subsequent list requests. Acceptable values are\n`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\nare returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation\ntimestamp using `orderBy=\"creationTimestamp desc\"`. This sorts\nresults based on the `creationTimestamp` field in\nreverse chronological order (newest result first). Use this to sort\nresources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or\n`creationTimestamp desc` is supported.", + "location": "query", + "type": "string" + }, + "pageToken": { + "description": "Specifies a page token to use. Set `pageToken` to the\n`nextPageToken` returned by a previous list request to get\nthe next page of results.", + "location": "query", + "type": "string" + }, + "peer": { + "description": "(Required) limit results to the BGP peer with the given name.\nName should conform to RFC1035.", + "location": "query", + "type": "string" + }, + "policyApplied": { + "default": "true", + "description": "When true, the method returns post-policy routes. Otherwise, it returns\npre-policy routes.", + "location": "query", + "type": "boolean" + }, "project": { "description": "Project ID for this request.", "location": "path", @@ -36740,48 +39052,85 @@ "type": "string" }, "region": { - "description": "The region for this request.", + "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" }, - "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. 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).", + "returnPartialSuccess": { + "description": "Opt-in for partial success behavior which provides partial results in case\nof failure. The default value is false.\n\nFor example, when partial success behavior is enabled, aggregatedList for a\nsingle zone scope either returns all resources in the zone or no resources,\nwith an error code.", + "location": "query", + "type": "boolean" + }, + "routeType": { + "default": "UNSPECIFIED_ROUTE_TYPE", + "description": "(Required) limit results to this type of route (either LEARNED or\nADVERTISED)", + "enum": [ + "ADVERTISED", + "LEARNED", + "UNSPECIFIED_ROUTE_TYPE" + ], + "enumDescriptions": [ + "", + "", + "" + ], "location": "query", "type": "string" }, - "resource": { - "description": "Name or id of the resource for this request.", + "router": { + "description": "Name or id of the resource for this request.\nName should conform to RFC1035.", "location": "path", "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", "required": true, "type": "string" } }, - "path": "projects/{project}/regions/{region}/vpnGateways/{resource}/setLabels", - "request": { - "$ref": "RegionSetLabelsRequest" - }, + "path": "projects/{project}/regions/{region}/routers/{router}/listBgpRoutes", "response": { - "$ref": "Operation" + "$ref": "RoutersListBgpRoutes" }, "scopes": [ "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" ] }, - "testIamPermissions": { - "description": "Returns permissions that a caller has on the specified resource.", - "flatPath": "projects/{project}/regions/{region}/vpnGateways/{resource}/testIamPermissions", - "httpMethod": "POST", - "id": "compute.vpnGateways.testIamPermissions", + "listNamedSets": { + "description": "Retrieves a list of router named set subresources available to the\nspecified project.", + "flatPath": "projects/{project}/regions/{region}/routers/{router}/listNamedSets", + "httpMethod": "GET", + "id": "compute.routers.listNamedSets", "parameterOrder": [ "project", "region", - "resource" + "router" ], "parameters": { + "filter": { + "description": "A filter expression that filters resources listed in the response. Most\nCompute resources support two types of filter expressions:\nexpressions that support regular expressions and expressions that follow\nAPI improvement proposal AIP-160.\nThese two types of filter expressions cannot be mixed in one request.\n\nIf you want to use AIP-160, your expression must specify the field name, an\noperator, and the value that you want to use for filtering. The value\nmust be a string, a number, or a boolean. The operator\nmust be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`.\n\nFor example, if you are filtering Compute Engine instances, you can\nexclude instances named `example-instance` by specifying\n`name != example-instance`.\n\nThe `:*` comparison can be used to test whether a key has been defined.\nFor example, to find all objects with `owner` label use:\n```\nlabels.owner:*\n```\n\nYou can also filter nested fields. For example, you could specify\n`scheduling.automaticRestart = false` to include instances only\nif they are not scheduled for automatic restarts. You can use filtering\non nested fields to filter based onresource labels.\n\nTo filter on multiple expressions, provide each separate expression within\nparentheses. For example:\n```\n(scheduling.automaticRestart = true)\n(cpuPlatform = \"Intel Skylake\")\n```\nBy default, each expression is an `AND` expression. However, you\ncan include `AND` and `OR` expressions explicitly.\nFor example:\n```\n(cpuPlatform = \"Intel Skylake\") OR\n(cpuPlatform = \"Intel Broadwell\") AND\n(scheduling.automaticRestart = true)\n```\n\nIf you want to use a regular expression, use the `eq` (equal) or `ne`\n(not equal) operator against a single un-parenthesized expression with or\nwithout quotes or against multiple parenthesized expressions. Examples:\n\n`fieldname eq unquoted literal`\n`fieldname eq 'single quoted literal'`\n`fieldname eq \"double quoted literal\"`\n`(fieldname1 eq literal) (fieldname2 ne \"literal\")`\n\nThe literal value is interpreted as a regular expression using GoogleRE2 library syntax.\nThe literal value must match the entire field.\n\nFor example, to filter for instances that do not end with name \"instance\",\nyou would use `name ne .*instance`.\n\nYou cannot combine constraints on multiple fields using regular\nexpressions.", + "location": "query", + "type": "string" + }, + "maxResults": { + "default": "500", + "description": "The maximum number of results per page that should be returned.\nIf the number of available results is larger than `maxResults`,\nCompute Engine returns a `nextPageToken` that can be used to get\nthe next page of results in subsequent list requests. Acceptable values are\n`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\nare returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation\ntimestamp using `orderBy=\"creationTimestamp desc\"`. This sorts\nresults based on the `creationTimestamp` field in\nreverse chronological order (newest result first). Use this to sort\nresources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or\n`creationTimestamp desc` is supported.", + "location": "query", + "type": "string" + }, + "pageToken": { + "description": "Specifies a page token to use. Set `pageToken` to the\n`nextPageToken` returned by a previous list request to get\nthe next page of results.", + "location": "query", + "type": "string" + }, "project": { "description": "Project ID for this request.", "location": "path", @@ -36790,71 +39139,66 @@ "type": "string" }, "region": { - "description": "The name of the region for this request.", + "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" }, - "resource": { - "description": "Name or id of the resource for this request.", + "returnPartialSuccess": { + "description": "Opt-in for partial success behavior which provides partial results in case\nof failure. The default value is false.\n\nFor example, when partial success behavior is enabled, aggregatedList for a\nsingle zone scope either returns all resources in the zone or no resources,\nwith an error code.", + "location": "query", + "type": "boolean" + }, + "router": { + "description": "Name or id of the resource for this request.\nName should conform to RFC1035.", "location": "path", "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", "required": true, "type": "string" } }, - "path": "projects/{project}/regions/{region}/vpnGateways/{resource}/testIamPermissions", - "request": { - "$ref": "TestPermissionsRequest" - }, + "path": "projects/{project}/regions/{region}/routers/{router}/listNamedSets", "response": { - "$ref": "TestPermissionsResponse" + "$ref": "RoutersListNamedSets" }, "scopes": [ "https://www.googleapis.com/auth/cloud-platform", "https://www.googleapis.com/auth/compute", "https://www.googleapis.com/auth/compute.readonly" ] - } - } - }, - "vpnTunnels": { - "methods": { - "aggregatedList": { - "description": "Retrieves an aggregated list of VPN tunnels. To prevent failure, Google recommends that you set the `returnPartialSuccess` parameter to `true`.", - "flatPath": "projects/{project}/aggregated/vpnTunnels", + }, + "listRoutePolicies": { + "description": "Retrieves a list of router route policy subresources available to the\nspecified project.", + "flatPath": "projects/{project}/regions/{region}/routers/{router}/listRoutePolicies", "httpMethod": "GET", - "id": "compute.vpnTunnels.aggregatedList", + "id": "compute.routers.listRoutePolicies", "parameterOrder": [ - "project" + "project", + "region", + "router" ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` 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) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.", + "description": "A filter expression that filters resources listed in the response. Most\nCompute resources support two types of filter expressions:\nexpressions that support regular expressions and expressions that follow\nAPI improvement proposal AIP-160.\nThese two types of filter expressions cannot be mixed in one request.\n\nIf you want to use AIP-160, your expression must specify the field name, an\noperator, and the value that you want to use for filtering. The value\nmust be a string, a number, or a boolean. The operator\nmust be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`.\n\nFor example, if you are filtering Compute Engine instances, you can\nexclude instances named `example-instance` by specifying\n`name != example-instance`.\n\nThe `:*` comparison can be used to test whether a key has been defined.\nFor example, to find all objects with `owner` label use:\n```\nlabels.owner:*\n```\n\nYou can also filter nested fields. For example, you could specify\n`scheduling.automaticRestart = false` to include instances only\nif they are not scheduled for automatic restarts. You can use filtering\non nested fields to filter based onresource labels.\n\nTo filter on multiple expressions, provide each separate expression within\nparentheses. For example:\n```\n(scheduling.automaticRestart = true)\n(cpuPlatform = \"Intel Skylake\")\n```\nBy default, each expression is an `AND` expression. However, you\ncan include `AND` and `OR` expressions explicitly.\nFor example:\n```\n(cpuPlatform = \"Intel Skylake\") OR\n(cpuPlatform = \"Intel Broadwell\") AND\n(scheduling.automaticRestart = true)\n```\n\nIf you want to use a regular expression, use the `eq` (equal) or `ne`\n(not equal) operator against a single un-parenthesized expression with or\nwithout quotes or against multiple parenthesized expressions. Examples:\n\n`fieldname eq unquoted literal`\n`fieldname eq 'single quoted literal'`\n`fieldname eq \"double quoted literal\"`\n`(fieldname1 eq literal) (fieldname2 ne \"literal\")`\n\nThe literal value is interpreted as a regular expression using GoogleRE2 library syntax.\nThe literal value must match the entire field.\n\nFor example, to filter for instances that do not end with name \"instance\",\nyou would use `name ne .*instance`.\n\nYou cannot combine constraints on multiple fields using regular\nexpressions.", "location": "query", "type": "string" }, - "includeAllScopes": { - "description": "Indicates whether every visible scope for each scope type (zone, region, global) should be included in the response. For new resource types added after this field, the flag has no effect as new resource types will always include every visible scope for each scope type in response. For resource types which predate this field, if this flag is omitted or false, only scopes of the scope types where the resource type is expected to be found will be included.", - "location": "query", - "type": "boolean" - }, "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`)", + "description": "The maximum number of results per page that should be returned.\nIf the number of available results is larger than `maxResults`,\nCompute Engine returns a `nextPageToken` that can be used to get\nthe next page of results in subsequent list requests. Acceptable values are\n`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. 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.", + "description": "Sorts list results by a certain order. By default, results\nare returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation\ntimestamp using `orderBy=\"creationTimestamp desc\"`. This sorts\nresults based on the `creationTimestamp` field in\nreverse chronological order (newest result first). Use this to sort\nresources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or\n`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.", + "description": "Specifies a page token to use. Set `pageToken` to the\n`nextPageToken` returned by a previous list request to get\nthe next page of results.", "location": "query", "type": "string" }, @@ -36865,21 +39209,29 @@ "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" + }, "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", + "description": "Opt-in for partial success behavior which provides partial results in case\nof failure. The default value is false.\n\nFor example, when partial success behavior is enabled, aggregatedList for a\nsingle zone scope either returns all resources in the zone or no resources,\nwith an error code.", "location": "query", "type": "boolean" }, - "serviceProjectNumber": { - "description": "The Shared VPC service project id or service project number for which aggregated list request is invoked for subnetworks list-usable api.", - "format": "int64", - "location": "query", + "router": { + "description": "Name or id of the resource for this request.\nName should conform to RFC1035.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "required": true, "type": "string" } }, - "path": "projects/{project}/aggregated/vpnTunnels", + "path": "projects/{project}/regions/{region}/routers/{router}/listRoutePolicies", "response": { - "$ref": "VpnTunnelAggregatedList" + "$ref": "RoutersListRoutePolicies" }, "scopes": [ "https://www.googleapis.com/auth/cloud-platform", @@ -36887,15 +39239,15 @@ "https://www.googleapis.com/auth/compute.readonly" ] }, - "delete": { - "description": "Deletes the specified VpnTunnel resource.", - "flatPath": "projects/{project}/regions/{region}/vpnTunnels/{vpnTunnel}", - "httpMethod": "DELETE", - "id": "compute.vpnTunnels.delete", + "patch": { + "description": "Patches the specified Router resource with the data included in the\nrequest. This method supportsPATCH\nsemantics and usesJSON merge\npatch format and processing rules.", + "flatPath": "projects/{project}/regions/{region}/routers/{router}", + "httpMethod": "PATCH", + "id": "compute.routers.patch", "parameterOrder": [ "project", "region", - "vpnTunnel" + "router" ], "parameters": { "project": { @@ -36913,19 +39265,22 @@ "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. 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).", + "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).", "location": "query", "type": "string" }, - "vpnTunnel": { - "description": "Name of the VpnTunnel resource to delete.", + "router": { + "description": "Name of the Router resource to patch.", "location": "path", "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", "required": true, "type": "string" } }, - "path": "projects/{project}/regions/{region}/vpnTunnels/{vpnTunnel}", + "path": "projects/{project}/regions/{region}/routers/{router}", + "request": { + "$ref": "Router" + }, "response": { "$ref": "Operation" }, @@ -36934,15 +39289,15 @@ "https://www.googleapis.com/auth/compute" ] }, - "get": { - "description": "Returns the specified VpnTunnel resource.", - "flatPath": "projects/{project}/regions/{region}/vpnTunnels/{vpnTunnel}", - "httpMethod": "GET", - "id": "compute.vpnTunnels.get", + "patchNamedSet": { + "description": "Patches Named Set", + "flatPath": "projects/{project}/regions/{region}/routers/{router}/patchNamedSet", + "httpMethod": "POST", + "id": "compute.routers.patchNamedSet", "parameterOrder": [ "project", "region", - "vpnTunnel" + "router" ], "parameters": { "project": { @@ -36959,32 +39314,40 @@ "required": true, "type": "string" }, - "vpnTunnel": { - "description": "Name of the VpnTunnel resource to return.", + "requestId": { + "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).", + "location": "query", + "type": "string" + }, + "router": { + "description": "Name of the Router resource where Named Set is defined.", "location": "path", "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", "required": true, "type": "string" } }, - "path": "projects/{project}/regions/{region}/vpnTunnels/{vpnTunnel}", + "path": "projects/{project}/regions/{region}/routers/{router}/patchNamedSet", + "request": { + "$ref": "NamedSet" + }, "response": { - "$ref": "VpnTunnel" + "$ref": "Operation" }, "scopes": [ "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" + "https://www.googleapis.com/auth/compute" ] }, - "insert": { - "description": "Creates a VpnTunnel resource in the specified project and region using the data included in the request.", - "flatPath": "projects/{project}/regions/{region}/vpnTunnels", + "patchRoutePolicy": { + "description": "Patches Route Policy", + "flatPath": "projects/{project}/regions/{region}/routers/{router}/patchRoutePolicy", "httpMethod": "POST", - "id": "compute.vpnTunnels.insert", + "id": "compute.routers.patchRoutePolicy", "parameterOrder": [ "project", - "region" + "region", + "router" ], "parameters": { "project": { @@ -37002,14 +39365,21 @@ "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. 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).", + "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).", "location": "query", "type": "string" + }, + "router": { + "description": "Name of the Router resource where Route Policy is defined.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "required": true, + "type": "string" } }, - "path": "projects/{project}/regions/{region}/vpnTunnels", + "path": "projects/{project}/regions/{region}/routers/{router}/patchRoutePolicy", "request": { - "$ref": "VpnTunnel" + "$ref": "RoutePolicy" }, "response": { "$ref": "Operation" @@ -37019,39 +39389,113 @@ "https://www.googleapis.com/auth/compute" ] }, - "list": { - "description": "Retrieves a list of VpnTunnel resources contained in the specified project and region.", - "flatPath": "projects/{project}/regions/{region}/vpnTunnels", - "httpMethod": "GET", - "id": "compute.vpnTunnels.list", + "preview": { + "description": "Preview fields auto-generated during router create andupdate operations.\nCalling this method does NOT create or update the router.", + "flatPath": "projects/{project}/regions/{region}/routers/{router}/preview", + "httpMethod": "POST", + "id": "compute.routers.preview", "parameterOrder": [ "project", - "region" + "region", + "router" ], "parameters": { - "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` 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) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.", - "location": "query", + "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" }, - "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" + "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" }, - "orderBy": { - "description": "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.", - "location": "query", + "router": { + "description": "Name of the Router resource to query.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "required": true, + "type": "string" + } + }, + "path": "projects/{project}/regions/{region}/routers/{router}/preview", + "request": { + "$ref": "Router" + }, + "response": { + "$ref": "RoutersPreviewResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ] + }, + "update": { + "description": "Updates the specified Router resource with the data included in the\nrequest. This method conforms toPUT semantics, which requests that the state of the\ntarget resource be created or replaced with the state defined by the\nrepresentation enclosed in the request message payload.", + "flatPath": "projects/{project}/regions/{region}/routers/{router}", + "httpMethod": "PUT", + "id": "compute.routers.update", + "parameterOrder": [ + "project", + "region", + "router" + ], + "parameters": { + "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" }, - "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.", + "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" + }, + "requestId": { + "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).", "location": "query", "type": "string" }, + "router": { + "description": "Name of the Router resource to update.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "required": true, + "type": "string" + } + }, + "path": "projects/{project}/regions/{region}/routers/{router}", + "request": { + "$ref": "Router" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ] + }, + "updateNamedSet": { + "description": "Updates or creates new Named Set", + "flatPath": "projects/{project}/regions/{region}/routers/{router}/updateNamedSet", + "httpMethod": "POST", + "id": "compute.routers.updateNamedSet", + "parameterOrder": [ + "project", + "region", + "router" + ], + "parameters": { "project": { "description": "Project ID for this request.", "location": "path", @@ -37066,31 +39510,40 @@ "required": true, "type": "string" }, - "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", + "requestId": { + "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).", "location": "query", - "type": "boolean" + "type": "string" + }, + "router": { + "description": "Name of the Router resource where Named Set is defined.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "required": true, + "type": "string" } }, - "path": "projects/{project}/regions/{region}/vpnTunnels", + "path": "projects/{project}/regions/{region}/routers/{router}/updateNamedSet", + "request": { + "$ref": "NamedSet" + }, "response": { - "$ref": "VpnTunnelList" + "$ref": "Operation" }, "scopes": [ "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" + "https://www.googleapis.com/auth/compute" ] }, - "setLabels": { - "description": "Sets the labels on a VpnTunnel. To learn more about labels, read the Labeling Resources documentation.", - "flatPath": "projects/{project}/regions/{region}/vpnTunnels/{resource}/setLabels", + "updateRoutePolicy": { + "description": "Updates or creates new Route Policy", + "flatPath": "projects/{project}/regions/{region}/routers/{router}/updateRoutePolicy", "httpMethod": "POST", - "id": "compute.vpnTunnels.setLabels", + "id": "compute.routers.updateRoutePolicy", "parameterOrder": [ "project", "region", - "resource" + "router" ], "parameters": { "project": { @@ -37101,28 +39554,28 @@ "type": "string" }, "region": { - "description": "The region for this request.", + "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" }, "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. 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).", + "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).", "location": "query", "type": "string" }, - "resource": { - "description": "Name or id of the resource for this request.", + "router": { + "description": "Name of the Router resource where Route Policy is defined.", "location": "path", "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", "required": true, "type": "string" } }, - "path": "projects/{project}/regions/{region}/vpnTunnels/{resource}/setLabels", + "path": "projects/{project}/regions/{region}/routers/{router}/updateRoutePolicy", "request": { - "$ref": "RegionSetLabelsRequest" + "$ref": "RoutePolicy" }, "response": { "$ref": "Operation" @@ -37134,26 +39587,18 @@ } } }, - "zoneOperations": { + "routes": { "methods": { "delete": { - "description": "Deletes the specified zone-specific Operations resource.", - "flatPath": "projects/{project}/zones/{zone}/operations/{operation}", + "description": "Deletes the specified Route resource.", + "flatPath": "projects/{project}/global/routes/{route}", "httpMethod": "DELETE", - "id": "compute.zoneOperations.delete", + "id": "compute.routes.delete", "parameterOrder": [ "project", - "zone", - "operation" + "route" ], "parameters": { - "operation": { - "description": "Name of the Operations resource to delete.", - "location": "path", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "required": true, - "type": "string" - }, "project": { "description": "Project ID for this request.", "location": "path", @@ -37161,38 +39606,72 @@ "required": true, "type": "string" }, - "zone": { - "description": "Name of the zone for this request.", + "requestId": { + "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).", + "location": "query", + "type": "string" + }, + "route": { + "description": "Name of the Route resource to delete.", "location": "path", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", "required": true, "type": "string" } }, - "path": "projects/{project}/zones/{zone}/operations/{operation}", + "path": "projects/{project}/global/routes/{route}", + "response": { + "$ref": "Operation" + }, "scopes": [ "https://www.googleapis.com/auth/cloud-platform", "https://www.googleapis.com/auth/compute" ] }, "get": { - "description": "Retrieves the specified zone-specific Operations resource.", - "flatPath": "projects/{project}/zones/{zone}/operations/{operation}", + "description": "Returns the specified Route resource.", + "flatPath": "projects/{project}/global/routes/{route}", "httpMethod": "GET", - "id": "compute.zoneOperations.get", + "id": "compute.routes.get", "parameterOrder": [ "project", - "zone", - "operation" + "route" ], "parameters": { - "operation": { - "description": "Name of the Operations resource to return.", + "project": { + "description": "Project ID for this request.", "location": "path", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "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" }, + "route": { + "description": "Name of the Route resource to return.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "required": true, + "type": "string" + } + }, + "path": "projects/{project}/global/routes/{route}", + "response": { + "$ref": "Route" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ] + }, + "insert": { + "description": "Creates a Route resource in the specified project using the data included\nin the request.", + "flatPath": "projects/{project}/global/routes", + "httpMethod": "POST", + "id": "compute.routes.insert", + "parameterOrder": [ + "project" + ], + "parameters": { "project": { "description": "Project ID for this request.", "location": "path", @@ -37200,54 +39679,53 @@ "required": true, "type": "string" }, - "zone": { - "description": "Name of the zone for this request.", - "location": "path", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "required": true, + "requestId": { + "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).", + "location": "query", "type": "string" } }, - "path": "projects/{project}/zones/{zone}/operations/{operation}", + "path": "projects/{project}/global/routes", + "request": { + "$ref": "Route" + }, "response": { "$ref": "Operation" }, "scopes": [ "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" + "https://www.googleapis.com/auth/compute" ] }, "list": { - "description": "Retrieves a list of Operation resources contained within the specified zone.", - "flatPath": "projects/{project}/zones/{zone}/operations", + "description": "Retrieves the list of Route resources available to the specified project.", + "flatPath": "projects/{project}/global/routes", "httpMethod": "GET", - "id": "compute.zoneOperations.list", + "id": "compute.routes.list", "parameterOrder": [ - "project", - "zone" + "project" ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` 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) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.", + "description": "A filter expression that filters resources listed in the response. Most\nCompute resources support two types of filter expressions:\nexpressions that support regular expressions and expressions that follow\nAPI improvement proposal AIP-160.\nThese two types of filter expressions cannot be mixed in one request.\n\nIf you want to use AIP-160, your expression must specify the field name, an\noperator, and the value that you want to use for filtering. The value\nmust be a string, a number, or a boolean. The operator\nmust be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`.\n\nFor example, if you are filtering Compute Engine instances, you can\nexclude instances named `example-instance` by specifying\n`name != example-instance`.\n\nThe `:*` comparison can be used to test whether a key has been defined.\nFor example, to find all objects with `owner` label use:\n```\nlabels.owner:*\n```\n\nYou can also filter nested fields. For example, you could specify\n`scheduling.automaticRestart = false` to include instances only\nif they are not scheduled for automatic restarts. You can use filtering\non nested fields to filter based onresource labels.\n\nTo filter on multiple expressions, provide each separate expression within\nparentheses. For example:\n```\n(scheduling.automaticRestart = true)\n(cpuPlatform = \"Intel Skylake\")\n```\nBy default, each expression is an `AND` expression. However, you\ncan include `AND` and `OR` expressions explicitly.\nFor example:\n```\n(cpuPlatform = \"Intel Skylake\") OR\n(cpuPlatform = \"Intel Broadwell\") AND\n(scheduling.automaticRestart = true)\n```\n\nIf you want to use a regular expression, use the `eq` (equal) or `ne`\n(not equal) operator against a single un-parenthesized expression with or\nwithout quotes or against multiple parenthesized expressions. Examples:\n\n`fieldname eq unquoted literal`\n`fieldname eq 'single quoted literal'`\n`fieldname eq \"double quoted literal\"`\n`(fieldname1 eq literal) (fieldname2 ne \"literal\")`\n\nThe literal value is interpreted as a regular expression using GoogleRE2 library syntax.\nThe literal value must match the entire field.\n\nFor example, to filter for instances that do not end with name \"instance\",\nyou would use `name ne .*instance`.\n\nYou cannot combine constraints on multiple fields using regular\nexpressions.", "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`)", + "description": "The maximum number of results per page that should be returned.\nIf the number of available results is larger than `maxResults`,\nCompute Engine returns a `nextPageToken` that can be used to get\nthe next page of results in subsequent list requests. Acceptable values are\n`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. 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.", + "description": "Sorts list results by a certain order. By default, results\nare returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation\ntimestamp using `orderBy=\"creationTimestamp desc\"`. This sorts\nresults based on the `creationTimestamp` field in\nreverse chronological order (newest result first). Use this to sort\nresources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or\n`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.", + "description": "Specifies a page token to use. Set `pageToken` to the\n`nextPageToken` returned by a previous list request to get\nthe next page of results.", "location": "query", "type": "string" }, @@ -37259,21 +39737,14 @@ "type": "string" }, "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", + "description": "Opt-in for partial success behavior which provides partial results in case\nof failure. The default value is false.\n\nFor example, when partial success behavior is enabled, aggregatedList for a\nsingle zone scope either returns all resources in the zone or no resources,\nwith an error code.", "location": "query", "type": "boolean" - }, - "zone": { - "description": "Name of the zone for request.", - "location": "path", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "required": true, - "type": "string" } }, - "path": "projects/{project}/zones/{zone}/operations", + "path": "projects/{project}/global/routes", "response": { - "$ref": "OperationList" + "$ref": "RouteList" }, "scopes": [ "https://www.googleapis.com/auth/cloud-platform", @@ -37281,24 +39752,16 @@ "https://www.googleapis.com/auth/compute.readonly" ] }, - "wait": { - "description": "Waits for the specified Operation resource to return as `DONE` or for the request to approach the 2 minute deadline, and retrieves the specified Operation resource. This method waits for no more than the 2 minutes and then returns the current state of the operation, which might be `DONE` or still in progress. This method is called on a best-effort basis. Specifically: - In uncommon cases, when the server is overloaded, the request might return before the default deadline is reached, or might return after zero seconds. - If the default deadline is reached, there is no guarantee that the operation is actually done when the method returns. Be prepared to retry if the operation is not `DONE`. ", - "flatPath": "projects/{project}/zones/{zone}/operations/{operation}/wait", + "testIamPermissions": { + "description": "Returns permissions that a caller has on the specified resource.", + "flatPath": "projects/{project}/global/routes/{resource}/testIamPermissions", "httpMethod": "POST", - "id": "compute.zoneOperations.wait", + "id": "compute.routes.testIamPermissions", "parameterOrder": [ "project", - "zone", - "operation" + "resource" ], "parameters": { - "operation": { - "description": "Name of the Operations resource to return.", - "location": "path", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "required": true, - "type": "string" - }, "project": { "description": "Project ID for this request.", "location": "path", @@ -37306,17 +39769,20 @@ "required": true, "type": "string" }, - "zone": { - "description": "Name of the zone for this request.", + "resource": { + "description": "Name or id of the resource for this request.", "location": "path", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", "required": true, "type": "string" } }, - "path": "projects/{project}/zones/{zone}/operations/{operation}/wait", + "path": "projects/{project}/global/routes/{resource}/testIamPermissions", + "request": { + "$ref": "TestPermissionsRequest" + }, "response": { - "$ref": "Operation" + "$ref": "TestPermissionsResponse" }, "scopes": [ "https://www.googleapis.com/auth/cloud-platform", @@ -37326,16 +39792,16 @@ } } }, - "zones": { + "securityPolicies": { "methods": { - "get": { - "description": "Returns the specified Zone resource.", - "flatPath": "projects/{project}/zones/{zone}", - "httpMethod": "GET", - "id": "compute.zones.get", + "addRule": { + "description": "Inserts a rule into a security policy.", + "flatPath": "projects/{project}/global/securityPolicies/{securityPolicy}/addRule", + "httpMethod": "POST", + "id": "compute.securityPolicies.addRule", "parameterOrder": [ "project", - "zone" + "securityPolicy" ], "parameters": { "project": { @@ -37345,511 +39811,23243 @@ "required": true, "type": "string" }, - "zone": { - "description": "Name of the zone resource to return.", + "securityPolicy": { + "description": "Name of the security policy to update.", "location": "path", "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", "required": true, "type": "string" + }, + "validateOnly": { + "description": "If true, the request will not be committed.", + "location": "query", + "type": "boolean" } }, - "path": "projects/{project}/zones/{zone}", + "path": "projects/{project}/global/securityPolicies/{securityPolicy}/addRule", + "request": { + "$ref": "SecurityPolicyRule" + }, "response": { - "$ref": "Zone" + "$ref": "Operation" }, "scopes": [ "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly" + "https://www.googleapis.com/auth/compute" ] }, - "list": { - "description": "Retrieves the list of Zone resources available to the specified project.", - "flatPath": "projects/{project}/zones", + "aggregatedList": { + "description": "Retrieves the list of all SecurityPolicy resources, regional and global,\navailable to the specified project.\n\nTo prevent failure, Google recommends that you set the\n`returnPartialSuccess` parameter to `true`.", + "flatPath": "projects/{project}/aggregated/securityPolicies", "httpMethod": "GET", - "id": "compute.zones.list", + "id": "compute.securityPolicies.aggregatedList", "parameterOrder": [ "project" ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` 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) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.", + "description": "A filter expression that filters resources listed in the response. Most\nCompute resources support two types of filter expressions:\nexpressions that support regular expressions and expressions that follow\nAPI improvement proposal AIP-160.\nThese two types of filter expressions cannot be mixed in one request.\n\nIf you want to use AIP-160, your expression must specify the field name, an\noperator, and the value that you want to use for filtering. The value\nmust be a string, a number, or a boolean. The operator\nmust be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`.\n\nFor example, if you are filtering Compute Engine instances, you can\nexclude instances named `example-instance` by specifying\n`name != example-instance`.\n\nThe `:*` comparison can be used to test whether a key has been defined.\nFor example, to find all objects with `owner` label use:\n```\nlabels.owner:*\n```\n\nYou can also filter nested fields. For example, you could specify\n`scheduling.automaticRestart = false` to include instances only\nif they are not scheduled for automatic restarts. You can use filtering\non nested fields to filter based onresource labels.\n\nTo filter on multiple expressions, provide each separate expression within\nparentheses. For example:\n```\n(scheduling.automaticRestart = true)\n(cpuPlatform = \"Intel Skylake\")\n```\nBy default, each expression is an `AND` expression. However, you\ncan include `AND` and `OR` expressions explicitly.\nFor example:\n```\n(cpuPlatform = \"Intel Skylake\") OR\n(cpuPlatform = \"Intel Broadwell\") AND\n(scheduling.automaticRestart = true)\n```\n\nIf you want to use a regular expression, use the `eq` (equal) or `ne`\n(not equal) operator against a single un-parenthesized expression with or\nwithout quotes or against multiple parenthesized expressions. Examples:\n\n`fieldname eq unquoted literal`\n`fieldname eq 'single quoted literal'`\n`fieldname eq \"double quoted literal\"`\n`(fieldname1 eq literal) (fieldname2 ne \"literal\")`\n\nThe literal value is interpreted as a regular expression using GoogleRE2 library syntax.\nThe literal value must match the entire field.\n\nFor example, to filter for instances that do not end with name \"instance\",\nyou would use `name ne .*instance`.\n\nYou cannot combine constraints on multiple fields using regular\nexpressions.", "location": "query", "type": "string" }, + "includeAllScopes": { + "description": "Indicates whether every visible scope for each scope type (zone, region,\nglobal) should be included in the response. For new resource types added\nafter this field, the flag has no effect as new resource types will always\ninclude every visible scope for each scope type in response. For resource\ntypes which predate this field, if this flag is omitted or false, only\nscopes of the scope types where the resource type is expected to be found\nwill be included.", + "location": "query", + "type": "boolean" + }, "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`)", + "description": "The maximum number of results per page that should be returned.\nIf the number of available results is larger than `maxResults`,\nCompute Engine returns a `nextPageToken` that can be used to get\nthe next page of results in subsequent list requests. Acceptable values are\n`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. 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.", + "description": "Sorts list results by a certain order. By default, results\nare returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation\ntimestamp using `orderBy=\"creationTimestamp desc\"`. This sorts\nresults based on the `creationTimestamp` field in\nreverse chronological order (newest result first). Use this to sort\nresources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or\n`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.", + "description": "Specifies a page token to use. Set `pageToken` to the\n`nextPageToken` returned by a previous list request to get\nthe next page of results.", "location": "query", "type": "string" }, "project": { - "description": "Project ID for this request.", + "description": "Name of the project scoping 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" }, "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", + "description": "Opt-in for partial success behavior which provides partial results in case\nof failure. The default value is false.\n\nFor example, when partial success behavior is enabled, aggregatedList for a\nsingle zone scope either returns all resources in the zone or no resources,\nwith an error code.", "location": "query", "type": "boolean" + }, + "serviceProjectNumber": { + "description": "The Shared VPC service project id or service project number for which\naggregated list request is invoked for subnetworks list-usable api.", + "format": "int64", + "location": "query", + "type": "string" } }, - "path": "projects/{project}/zones", + "path": "projects/{project}/aggregated/securityPolicies", "response": { - "$ref": "ZoneList" + "$ref": "SecurityPoliciesAggregatedList" }, "scopes": [ "https://www.googleapis.com/auth/cloud-platform", "https://www.googleapis.com/auth/compute", "https://www.googleapis.com/auth/compute.readonly" ] - } - } - } - }, - "revision": "20240430", - "rootUrl": "https://compute.googleapis.com/", - "schemas": { - "AWSV4Signature": { - "description": "Contains the configurations necessary to generate a signature for access to private storage buckets that support Signature Version 4 for authentication. The service name for generating the authentication header will always default to 's3'.", - "id": "AWSV4Signature", - "properties": { - "accessKey": { - "description": "The access key used for s3 bucket authentication. Required for updating or creating a backend that uses AWS v4 signature authentication, but will not be returned as part of the configuration when queried with a REST API GET request. @InputOnly", - "type": "string" - }, - "accessKeyId": { - "description": "The identifier of an access key used for s3 bucket authentication.", - "type": "string" - }, - "accessKeyVersion": { - "description": "The optional version identifier for the access key. You can use this to keep track of different iterations of your access key.", - "type": "string" - }, - "originRegion": { - "description": "The name of the cloud region of your origin. This is a free-form field with the name of the region your cloud uses to host your origin. For example, \"us-east-1\" for AWS or \"us-ashburn-1\" for OCI.", - "type": "string" - } - }, - "type": "object" - }, - "AcceleratorConfig": { - "description": "A specification of the type and number of accelerator cards attached to the instance.", - "id": "AcceleratorConfig", - "properties": { - "acceleratorCount": { - "description": "The number of the guest accelerator cards exposed to this instance.", - "format": "int32", - "type": "integer" - }, - "acceleratorType": { - "description": "Full or partial URL of the accelerator type resource to attach to this instance. For example: projects/my-project/zones/us-central1-c/acceleratorTypes/nvidia-tesla-p100 If you are creating an instance template, specify only the accelerator name. See GPUs on Compute Engine for a full list of accelerator types.", - "type": "string" - } - }, - "type": "object" - }, - "AcceleratorType": { - "description": "Represents an Accelerator Type resource. Google Cloud Platform provides graphics processing units (accelerators) that you can add to VM instances to improve or accelerate performance when working with intensive workloads. For more information, read GPUs on Compute Engine.", - "id": "AcceleratorType", - "properties": { - "creationTimestamp": { - "description": "[Output Only] Creation timestamp in RFC3339 text format.", - "type": "string" - }, - "deprecated": { - "$ref": "DeprecationStatus", - "description": "[Output Only] The deprecation status associated with this accelerator type." - }, - "description": { - "description": "[Output Only] An optional textual description of the resource.", - "type": "string" - }, - "id": { - "description": "[Output Only] The unique identifier for the resource. This identifier is defined by the server.", - "format": "uint64", - "type": "string" - }, - "kind": { - "default": "compute#acceleratorType", - "description": "[Output Only] The type of the resource. Always compute#acceleratorType for accelerator types.", - "type": "string" - }, - "maximumCardsPerInstance": { - "description": "[Output Only] Maximum number of accelerator cards allowed per instance.", - "format": "int32", - "type": "integer" - }, - "name": { - "description": "[Output Only] Name of the resource.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "type": "string" - }, - "selfLink": { - "description": "[Output Only] Server-defined, fully qualified URL for this resource.", - "type": "string" - }, - "zone": { - "description": "[Output Only] The name of the zone where the accelerator type resides, such as us-central1-a. You must specify this field as part of the HTTP request URL. It is not settable as a field in the request body.", - "type": "string" - } - }, - "type": "object" - }, - "AcceleratorTypeAggregatedList": { - "id": "AcceleratorTypeAggregatedList", - "properties": { - "id": { - "description": "[Output Only] Unique identifier for the resource; defined by the server.", - "type": "string" - }, - "items": { - "additionalProperties": { - "$ref": "AcceleratorTypesScopedList", - "description": "[Output Only] Name of the scope containing this set of accelerator types." - }, - "description": "A list of AcceleratorTypesScopedList resources.", - "type": "object" - }, - "kind": { - "default": "compute#acceleratorTypeAggregatedList", - "description": "[Output Only] Type of resource. Always compute#acceleratorTypeAggregatedList for aggregated lists of accelerator types.", - "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" - }, - "selfLink": { - "description": "[Output Only] Server-defined URL for this resource.", - "type": "string" - }, - "unreachables": { - "description": "[Output Only] Unreachable resources.", - "items": { - "type": "string" - }, - "type": "array" }, - "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", - "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", - "LARGE_DEPLOYMENT_WARNING", - "LIST_OVERHEAD_QUOTA_EXCEED", - "MISSING_TYPE_DEPENDENCY", - "NEXT_HOP_ADDRESS_NOT_ASSIGNED", - "NEXT_HOP_CANNOT_IP_FORWARD", - "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", - "NEXT_HOP_INSTANCE_NOT_FOUND", - "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", - "NEXT_HOP_NOT_RUNNING", - "NOT_CRITICAL_ERROR", - "NO_RESULTS_ON_PAGE", - "PARTIAL_SUCCESS", - "REQUIRED_TOS_AGREEMENT", - "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", - "RESOURCE_NOT_DELETED", - "SCHEMA_VALIDATION_IGNORED", - "SINGLE_INSTANCE_PROPERTY_TEMPLATE", - "UNDECLARED_PROPERTIES", - "UNREACHABLE" - ], - "enumDeprecated": [ - false, - false, - false, - false, - false, - false, - true, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false - ], - "enumDescriptions": [ - "Warning about failed cleanup of transient changes made by a failed operation.", - "A link to a deprecated resource was created.", - "When deploying and at least one of the resources has a type marked as deprecated", - "The user created a boot disk that is larger than image size.", - "When deploying and at least one of the resources has a type marked as experimental", - "Warning that is present in an external api call", - "Warning that value of a field has been overridden. Deprecated unused field.", - "The operation involved use of an injected kernel, which is deprecated.", - "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", - "When deploying a deployment with a exceedingly large number of resources", - "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", - "A resource depends on a missing type", - "The route's nextHopIp address is not assigned to an instance on the network.", - "The route's next hop instance cannot ip forward.", - "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", - "The route's nextHopInstance URL refers to an instance that does not exist.", - "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", - "The route's next hop instance does not have a status of RUNNING.", - "Error which is not critical. We decided to continue the process despite the mentioned error.", - "No results are present on a particular list page.", - "Success is reported, but some results may be missing due to errors", - "The user attempted to use a resource that requires a TOS they have not accepted.", - "Warning that a resource is in use.", - "One or more of the resources set to auto-delete could not be deleted because they were in use.", - "When a resource schema validation is ignored.", - "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", - "When undeclared properties in the schema are present", - "A given scope cannot be reached." - ], + "delete": { + "description": "Deletes the specified policy.", + "flatPath": "projects/{project}/global/securityPolicies/{securityPolicy}", + "httpMethod": "DELETE", + "id": "compute.securityPolicies.delete", + "parameterOrder": [ + "project", + "securityPolicy" + ], + "parameters": { + "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" }, - "data": { - "description": "[Output Only] Metadata about this warning in key: value format. For example: \"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" + "requestId": { + "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).", + "location": "query", + "type": "string" }, - "message": { - "description": "[Output Only] A human-readable description of the warning code.", + "securityPolicy": { + "description": "Name of the security policy to delete.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "required": true, "type": "string" } }, - "type": "object" - } - }, - "type": "object" - }, - "AcceleratorTypeList": { - "description": "Contains a list of accelerator types.", - "id": "AcceleratorTypeList", - "properties": { - "id": { - "description": "[Output Only] Unique identifier for the resource; defined by the server.", - "type": "string" - }, - "items": { - "description": "A list of AcceleratorType resources.", - "items": { - "$ref": "AcceleratorType" + "path": "projects/{project}/global/securityPolicies/{securityPolicy}", + "response": { + "$ref": "Operation" }, - "type": "array" - }, - "kind": { - "default": "compute#acceleratorTypeList", - "description": "[Output Only] Type of resource. Always compute#acceleratorTypeList for lists of accelerator types.", - "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" - }, - "selfLink": { - "description": "[Output Only] Server-defined URL for this resource.", - "type": "string" + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ] }, - "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", - "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", - "LARGE_DEPLOYMENT_WARNING", - "LIST_OVERHEAD_QUOTA_EXCEED", - "MISSING_TYPE_DEPENDENCY", - "NEXT_HOP_ADDRESS_NOT_ASSIGNED", - "NEXT_HOP_CANNOT_IP_FORWARD", - "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", - "NEXT_HOP_INSTANCE_NOT_FOUND", - "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", - "NEXT_HOP_NOT_RUNNING", - "NOT_CRITICAL_ERROR", - "NO_RESULTS_ON_PAGE", - "PARTIAL_SUCCESS", - "REQUIRED_TOS_AGREEMENT", - "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", - "RESOURCE_NOT_DELETED", - "SCHEMA_VALIDATION_IGNORED", - "SINGLE_INSTANCE_PROPERTY_TEMPLATE", - "UNDECLARED_PROPERTIES", - "UNREACHABLE" - ], - "enumDeprecated": [ - false, - false, - false, - false, - false, - false, - true, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false - ], - "enumDescriptions": [ - "Warning about failed cleanup of transient changes made by a failed operation.", - "A link to a deprecated resource was created.", - "When deploying and at least one of the resources has a type marked as deprecated", - "The user created a boot disk that is larger than image size.", - "When deploying and at least one of the resources has a type marked as experimental", - "Warning that is present in an external api call", - "Warning that value of a field has been overridden. Deprecated unused field.", - "The operation involved use of an injected kernel, which is deprecated.", - "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", - "When deploying a deployment with a exceedingly large number of resources", - "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", - "A resource depends on a missing type", - "The route's nextHopIp address is not assigned to an instance on the network.", - "The route's next hop instance cannot ip forward.", - "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", - "The route's nextHopInstance URL refers to an instance that does not exist.", - "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", - "The route's next hop instance does not have a status of RUNNING.", - "Error which is not critical. We decided to continue the process despite the mentioned error.", - "No results are present on a particular list page.", - "Success is reported, but some results may be missing due to errors", - "The user attempted to use a resource that requires a TOS they have not accepted.", - "Warning that a resource is in use.", - "One or more of the resources set to auto-delete could not be deleted because they were in use.", - "When a resource schema validation is ignored.", - "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", - "When undeclared properties in the schema are present", - "A given scope cannot be reached." - ], + "get": { + "description": "List all of the ordered rules present in a single specified policy.", + "flatPath": "projects/{project}/global/securityPolicies/{securityPolicy}", + "httpMethod": "GET", + "id": "compute.securityPolicies.get", + "parameterOrder": [ + "project", + "securityPolicy" + ], + "parameters": { + "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" }, - "data": { - "description": "[Output Only] Metadata about this warning in key: value format. For example: \"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.", + "securityPolicy": { + "description": "Name of the security policy to get.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "required": true, "type": "string" } }, - "type": "object" - } - }, - "type": "object" - }, - "AcceleratorTypesScopedList": { - "id": "AcceleratorTypesScopedList", - "properties": { - "acceleratorTypes": { - "description": "[Output Only] A list of accelerator types contained in this scope.", - "items": { - "$ref": "AcceleratorType" + "path": "projects/{project}/global/securityPolicies/{securityPolicy}", + "response": { + "$ref": "SecurityPolicy" }, - "type": "array" + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ] }, - "warning": { - "description": "[Output Only] An informational warning that appears when the accelerator types list is empty.", - "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", - "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", - "LARGE_DEPLOYMENT_WARNING", - "LIST_OVERHEAD_QUOTA_EXCEED", - "MISSING_TYPE_DEPENDENCY", - "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "getRule": { + "description": "Gets a rule at the specified priority.", + "flatPath": "projects/{project}/global/securityPolicies/{securityPolicy}/getRule", + "httpMethod": "GET", + "id": "compute.securityPolicies.getRule", + "parameterOrder": [ + "project", + "securityPolicy" + ], + "parameters": { + "priority": { + "description": "The priority of the rule to get from the security policy.", + "format": "int32", + "location": "query", + "type": "integer" + }, + "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" + }, + "securityPolicy": { + "description": "Name of the security policy to which the queried rule belongs.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "required": true, + "type": "string" + } + }, + "path": "projects/{project}/global/securityPolicies/{securityPolicy}/getRule", + "response": { + "$ref": "SecurityPolicyRule" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ] + }, + "insert": { + "description": "Creates a new policy in the specified project using the data included in\nthe request.", + "flatPath": "projects/{project}/global/securityPolicies", + "httpMethod": "POST", + "id": "compute.securityPolicies.insert", + "parameterOrder": [ + "project" + ], + "parameters": { + "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\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).", + "location": "query", + "type": "string" + }, + "validateOnly": { + "description": "If true, the request will not be committed.", + "location": "query", + "type": "boolean" + } + }, + "path": "projects/{project}/global/securityPolicies", + "request": { + "$ref": "SecurityPolicy" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ] + }, + "list": { + "description": "List all the policies that have been configured for the specified project.", + "flatPath": "projects/{project}/global/securityPolicies", + "httpMethod": "GET", + "id": "compute.securityPolicies.list", + "parameterOrder": [ + "project" + ], + "parameters": { + "filter": { + "description": "A filter expression that filters resources listed in the response. Most\nCompute resources support two types of filter expressions:\nexpressions that support regular expressions and expressions that follow\nAPI improvement proposal AIP-160.\nThese two types of filter expressions cannot be mixed in one request.\n\nIf you want to use AIP-160, your expression must specify the field name, an\noperator, and the value that you want to use for filtering. The value\nmust be a string, a number, or a boolean. The operator\nmust be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`.\n\nFor example, if you are filtering Compute Engine instances, you can\nexclude instances named `example-instance` by specifying\n`name != example-instance`.\n\nThe `:*` comparison can be used to test whether a key has been defined.\nFor example, to find all objects with `owner` label use:\n```\nlabels.owner:*\n```\n\nYou can also filter nested fields. For example, you could specify\n`scheduling.automaticRestart = false` to include instances only\nif they are not scheduled for automatic restarts. You can use filtering\non nested fields to filter based onresource labels.\n\nTo filter on multiple expressions, provide each separate expression within\nparentheses. For example:\n```\n(scheduling.automaticRestart = true)\n(cpuPlatform = \"Intel Skylake\")\n```\nBy default, each expression is an `AND` expression. However, you\ncan include `AND` and `OR` expressions explicitly.\nFor example:\n```\n(cpuPlatform = \"Intel Skylake\") OR\n(cpuPlatform = \"Intel Broadwell\") AND\n(scheduling.automaticRestart = true)\n```\n\nIf you want to use a regular expression, use the `eq` (equal) or `ne`\n(not equal) operator against a single un-parenthesized expression with or\nwithout quotes or against multiple parenthesized expressions. Examples:\n\n`fieldname eq unquoted literal`\n`fieldname eq 'single quoted literal'`\n`fieldname eq \"double quoted literal\"`\n`(fieldname1 eq literal) (fieldname2 ne \"literal\")`\n\nThe literal value is interpreted as a regular expression using GoogleRE2 library syntax.\nThe literal value must match the entire field.\n\nFor example, to filter for instances that do not end with name \"instance\",\nyou would use `name ne .*instance`.\n\nYou cannot combine constraints on multiple fields using regular\nexpressions.", + "location": "query", + "type": "string" + }, + "maxResults": { + "default": "500", + "description": "The maximum number of results per page that should be returned.\nIf the number of available results is larger than `maxResults`,\nCompute Engine returns a `nextPageToken` that can be used to get\nthe next page of results in subsequent list requests. Acceptable values are\n`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\nare returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation\ntimestamp using `orderBy=\"creationTimestamp desc\"`. This sorts\nresults based on the `creationTimestamp` field in\nreverse chronological order (newest result first). Use this to sort\nresources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or\n`creationTimestamp desc` is supported.", + "location": "query", + "type": "string" + }, + "pageToken": { + "description": "Specifies a page token to use. Set `pageToken` to the\n`nextPageToken` returned by a previous list request to get\nthe 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" + }, + "returnPartialSuccess": { + "description": "Opt-in for partial success behavior which provides partial results in case\nof failure. The default value is false.\n\nFor example, when partial success behavior is enabled, aggregatedList for a\nsingle zone scope either returns all resources in the zone or no resources,\nwith an error code.", + "location": "query", + "type": "boolean" + } + }, + "path": "projects/{project}/global/securityPolicies", + "response": { + "$ref": "SecurityPolicyList" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ] + }, + "listPreconfiguredExpressionSets": { + "description": "Gets the current list of preconfigured Web Application Firewall (WAF)\nexpressions.", + "flatPath": "projects/{project}/global/securityPolicies/listPreconfiguredExpressionSets", + "httpMethod": "GET", + "id": "compute.securityPolicies.listPreconfiguredExpressionSets", + "parameterOrder": [ + "project" + ], + "parameters": { + "filter": { + "description": "A filter expression that filters resources listed in the response. Most\nCompute resources support two types of filter expressions:\nexpressions that support regular expressions and expressions that follow\nAPI improvement proposal AIP-160.\nThese two types of filter expressions cannot be mixed in one request.\n\nIf you want to use AIP-160, your expression must specify the field name, an\noperator, and the value that you want to use for filtering. The value\nmust be a string, a number, or a boolean. The operator\nmust be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`.\n\nFor example, if you are filtering Compute Engine instances, you can\nexclude instances named `example-instance` by specifying\n`name != example-instance`.\n\nThe `:*` comparison can be used to test whether a key has been defined.\nFor example, to find all objects with `owner` label use:\n```\nlabels.owner:*\n```\n\nYou can also filter nested fields. For example, you could specify\n`scheduling.automaticRestart = false` to include instances only\nif they are not scheduled for automatic restarts. You can use filtering\non nested fields to filter based onresource labels.\n\nTo filter on multiple expressions, provide each separate expression within\nparentheses. For example:\n```\n(scheduling.automaticRestart = true)\n(cpuPlatform = \"Intel Skylake\")\n```\nBy default, each expression is an `AND` expression. However, you\ncan include `AND` and `OR` expressions explicitly.\nFor example:\n```\n(cpuPlatform = \"Intel Skylake\") OR\n(cpuPlatform = \"Intel Broadwell\") AND\n(scheduling.automaticRestart = true)\n```\n\nIf you want to use a regular expression, use the `eq` (equal) or `ne`\n(not equal) operator against a single un-parenthesized expression with or\nwithout quotes or against multiple parenthesized expressions. Examples:\n\n`fieldname eq unquoted literal`\n`fieldname eq 'single quoted literal'`\n`fieldname eq \"double quoted literal\"`\n`(fieldname1 eq literal) (fieldname2 ne \"literal\")`\n\nThe literal value is interpreted as a regular expression using GoogleRE2 library syntax.\nThe literal value must match the entire field.\n\nFor example, to filter for instances that do not end with name \"instance\",\nyou would use `name ne .*instance`.\n\nYou cannot combine constraints on multiple fields using regular\nexpressions.", + "location": "query", + "type": "string" + }, + "maxResults": { + "default": "500", + "description": "The maximum number of results per page that should be returned.\nIf the number of available results is larger than `maxResults`,\nCompute Engine returns a `nextPageToken` that can be used to get\nthe next page of results in subsequent list requests. Acceptable values are\n`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\nare returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation\ntimestamp using `orderBy=\"creationTimestamp desc\"`. This sorts\nresults based on the `creationTimestamp` field in\nreverse chronological order (newest result first). Use this to sort\nresources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or\n`creationTimestamp desc` is supported.", + "location": "query", + "type": "string" + }, + "pageToken": { + "description": "Specifies a page token to use. Set `pageToken` to the\n`nextPageToken` returned by a previous list request to get\nthe 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" + }, + "returnPartialSuccess": { + "description": "Opt-in for partial success behavior which provides partial results in case\nof failure. The default value is false.\n\nFor example, when partial success behavior is enabled, aggregatedList for a\nsingle zone scope either returns all resources in the zone or no resources,\nwith an error code.", + "location": "query", + "type": "boolean" + } + }, + "path": "projects/{project}/global/securityPolicies/listPreconfiguredExpressionSets", + "response": { + "$ref": "SecurityPoliciesListPreconfiguredExpressionSetsResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ] + }, + "patch": { + "description": "Patches the specified policy with the data included in the request. To\nclear fields in the policy, leave the fields empty and specify them in the\nupdateMask. This cannot be used to be update the rules in the policy.\nPlease use the per rule methods like addRule, patchRule, and removeRule\ninstead.", + "flatPath": "projects/{project}/global/securityPolicies/{securityPolicy}", + "httpMethod": "PATCH", + "id": "compute.securityPolicies.patch", + "parameterOrder": [ + "project", + "securityPolicy" + ], + "parameters": { + "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\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).", + "location": "query", + "type": "string" + }, + "securityPolicy": { + "description": "Name of the security policy to update.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "required": true, + "type": "string" + }, + "updateMask": { + "description": "Indicates fields to be cleared as part of this request.", + "format": "google-fieldmask", + "location": "query", + "type": "string" + } + }, + "path": "projects/{project}/global/securityPolicies/{securityPolicy}", + "request": { + "$ref": "SecurityPolicy" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ] + }, + "patchRule": { + "description": "Patches a rule at the specified priority. To clear fields in the rule,\nleave the fields empty and specify them in the updateMask.", + "flatPath": "projects/{project}/global/securityPolicies/{securityPolicy}/patchRule", + "httpMethod": "POST", + "id": "compute.securityPolicies.patchRule", + "parameterOrder": [ + "project", + "securityPolicy" + ], + "parameters": { + "priority": { + "description": "The priority of the rule to patch.", + "format": "int32", + "location": "query", + "type": "integer" + }, + "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" + }, + "securityPolicy": { + "description": "Name of the security policy to update.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "required": true, + "type": "string" + }, + "updateMask": { + "description": "Indicates fields to be cleared as part of this request.", + "format": "google-fieldmask", + "location": "query", + "type": "string" + }, + "validateOnly": { + "description": "If true, the request will not be committed.", + "location": "query", + "type": "boolean" + } + }, + "path": "projects/{project}/global/securityPolicies/{securityPolicy}/patchRule", + "request": { + "$ref": "SecurityPolicyRule" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ] + }, + "removeRule": { + "description": "Deletes a rule at the specified priority.", + "flatPath": "projects/{project}/global/securityPolicies/{securityPolicy}/removeRule", + "httpMethod": "POST", + "id": "compute.securityPolicies.removeRule", + "parameterOrder": [ + "project", + "securityPolicy" + ], + "parameters": { + "priority": { + "description": "The priority of the rule to remove from the security policy.", + "format": "int32", + "location": "query", + "type": "integer" + }, + "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" + }, + "securityPolicy": { + "description": "Name of the security policy to update.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "required": true, + "type": "string" + } + }, + "path": "projects/{project}/global/securityPolicies/{securityPolicy}/removeRule", + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ] + }, + "setLabels": { + "description": "Sets the labels on a security policy. To learn more about labels,\nread the Labeling Resources\ndocumentation.", + "flatPath": "projects/{project}/global/securityPolicies/{resource}/setLabels", + "httpMethod": "POST", + "id": "compute.securityPolicies.setLabels", + "parameterOrder": [ + "project", + "resource" + ], + "parameters": { + "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" + }, + "resource": { + "description": "Name or id of the resource for this request.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "required": true, + "type": "string" + } + }, + "path": "projects/{project}/global/securityPolicies/{resource}/setLabels", + "request": { + "$ref": "GlobalSetLabelsRequest" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ] + } + } + }, + "serviceAttachments": { + "methods": { + "aggregatedList": { + "description": "Retrieves the list of all ServiceAttachment resources,\nregional and global, available to the specified project.\n\nTo prevent failure, Google recommends that you set the\n`returnPartialSuccess` parameter to `true`.", + "flatPath": "projects/{project}/aggregated/serviceAttachments", + "httpMethod": "GET", + "id": "compute.serviceAttachments.aggregatedList", + "parameterOrder": [ + "project" + ], + "parameters": { + "filter": { + "description": "A filter expression that filters resources listed in the response. Most\nCompute resources support two types of filter expressions:\nexpressions that support regular expressions and expressions that follow\nAPI improvement proposal AIP-160.\nThese two types of filter expressions cannot be mixed in one request.\n\nIf you want to use AIP-160, your expression must specify the field name, an\noperator, and the value that you want to use for filtering. The value\nmust be a string, a number, or a boolean. The operator\nmust be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`.\n\nFor example, if you are filtering Compute Engine instances, you can\nexclude instances named `example-instance` by specifying\n`name != example-instance`.\n\nThe `:*` comparison can be used to test whether a key has been defined.\nFor example, to find all objects with `owner` label use:\n```\nlabels.owner:*\n```\n\nYou can also filter nested fields. For example, you could specify\n`scheduling.automaticRestart = false` to include instances only\nif they are not scheduled for automatic restarts. You can use filtering\non nested fields to filter based onresource labels.\n\nTo filter on multiple expressions, provide each separate expression within\nparentheses. For example:\n```\n(scheduling.automaticRestart = true)\n(cpuPlatform = \"Intel Skylake\")\n```\nBy default, each expression is an `AND` expression. However, you\ncan include `AND` and `OR` expressions explicitly.\nFor example:\n```\n(cpuPlatform = \"Intel Skylake\") OR\n(cpuPlatform = \"Intel Broadwell\") AND\n(scheduling.automaticRestart = true)\n```\n\nIf you want to use a regular expression, use the `eq` (equal) or `ne`\n(not equal) operator against a single un-parenthesized expression with or\nwithout quotes or against multiple parenthesized expressions. Examples:\n\n`fieldname eq unquoted literal`\n`fieldname eq 'single quoted literal'`\n`fieldname eq \"double quoted literal\"`\n`(fieldname1 eq literal) (fieldname2 ne \"literal\")`\n\nThe literal value is interpreted as a regular expression using GoogleRE2 library syntax.\nThe literal value must match the entire field.\n\nFor example, to filter for instances that do not end with name \"instance\",\nyou would use `name ne .*instance`.\n\nYou cannot combine constraints on multiple fields using regular\nexpressions.", + "location": "query", + "type": "string" + }, + "includeAllScopes": { + "description": "Indicates whether every visible scope for each scope type (zone, region,\nglobal) should be included in the response. For new resource types added\nafter this field, the flag has no effect as new resource types will always\ninclude every visible scope for each scope type in response. For resource\ntypes which predate this field, if this flag is omitted or false, only\nscopes of the scope types where the resource type is expected to be found\nwill be included.", + "location": "query", + "type": "boolean" + }, + "maxResults": { + "default": "500", + "description": "The maximum number of results per page that should be returned.\nIf the number of available results is larger than `maxResults`,\nCompute Engine returns a `nextPageToken` that can be used to get\nthe next page of results in subsequent list requests. Acceptable values are\n`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\nare returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation\ntimestamp using `orderBy=\"creationTimestamp desc\"`. This sorts\nresults based on the `creationTimestamp` field in\nreverse chronological order (newest result first). Use this to sort\nresources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or\n`creationTimestamp desc` is supported.", + "location": "query", + "type": "string" + }, + "pageToken": { + "description": "Specifies a page token to use. Set `pageToken` to the\n`nextPageToken` returned by a previous list request to get\nthe next page of results.", + "location": "query", + "type": "string" + }, + "project": { + "description": "Name of the project scoping 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" + }, + "returnPartialSuccess": { + "description": "Opt-in for partial success behavior which provides partial results in case\nof failure. The default value is false.\n\nFor example, when partial success behavior is enabled, aggregatedList for a\nsingle zone scope either returns all resources in the zone or no resources,\nwith an error code.", + "location": "query", + "type": "boolean" + }, + "serviceProjectNumber": { + "description": "The Shared VPC service project id or service project number for which\naggregated list request is invoked for subnetworks list-usable api.", + "format": "int64", + "location": "query", + "type": "string" + } + }, + "path": "projects/{project}/aggregated/serviceAttachments", + "response": { + "$ref": "ServiceAttachmentAggregatedList" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ] + }, + "delete": { + "description": "Deletes the specified ServiceAttachment in the given scope", + "flatPath": "projects/{project}/regions/{region}/serviceAttachments/{serviceAttachment}", + "httpMethod": "DELETE", + "id": "compute.serviceAttachments.delete", + "parameterOrder": [ + "project", + "region", + "serviceAttachment" + ], + "parameters": { + "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 of this request.", + "location": "path", + "pattern": "[a-z](?:[-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\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).", + "location": "query", + "type": "string" + }, + "serviceAttachment": { + "description": "Name of the ServiceAttachment resource to delete.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "required": true, + "type": "string" + } + }, + "path": "projects/{project}/regions/{region}/serviceAttachments/{serviceAttachment}", + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ] + }, + "get": { + "description": "Returns the specified ServiceAttachment resource in the given scope.", + "flatPath": "projects/{project}/regions/{region}/serviceAttachments/{serviceAttachment}", + "httpMethod": "GET", + "id": "compute.serviceAttachments.get", + "parameterOrder": [ + "project", + "region", + "serviceAttachment" + ], + "parameters": { + "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 of this request.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "required": true, + "type": "string" + }, + "serviceAttachment": { + "description": "Name of the ServiceAttachment resource to return.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "required": true, + "type": "string" + }, + "showNatIps": { + "description": "Indicates whether NAT IPs should be included in the response.", + "location": "query", + "type": "boolean" + } + }, + "path": "projects/{project}/regions/{region}/serviceAttachments/{serviceAttachment}", + "response": { + "$ref": "ServiceAttachment" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ] + }, + "getIamPolicy": { + "description": "Gets the access control policy for a resource. May be empty if no such\npolicy or resource exists.", + "flatPath": "projects/{project}/regions/{region}/serviceAttachments/{resource}/getIamPolicy", + "httpMethod": "GET", + "id": "compute.serviceAttachments.getIamPolicy", + "parameterOrder": [ + "project", + "region", + "resource" + ], + "parameters": { + "optionsRequestedPolicyVersion": { + "description": "Requested IAM Policy version.", + "format": "int32", + "location": "query", + "type": "integer" + }, + "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": "The name of the region for this request.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "required": true, + "type": "string" + }, + "resource": { + "description": "Name or id of the resource for this request.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "required": true, + "type": "string" + } + }, + "path": "projects/{project}/regions/{region}/serviceAttachments/{resource}/getIamPolicy", + "response": { + "$ref": "Policy" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ] + }, + "insert": { + "description": "Creates a ServiceAttachment in the specified project in the given scope\nusing the parameters that are included in the request.", + "flatPath": "projects/{project}/regions/{region}/serviceAttachments", + "httpMethod": "POST", + "id": "compute.serviceAttachments.insert", + "parameterOrder": [ + "project", + "region" + ], + "parameters": { + "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 of this request.", + "location": "path", + "pattern": "[a-z](?:[-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\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).", + "location": "query", + "type": "string" + } + }, + "path": "projects/{project}/regions/{region}/serviceAttachments", + "request": { + "$ref": "ServiceAttachment" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ] + }, + "list": { + "description": "Lists the ServiceAttachments for a project in the given scope.", + "flatPath": "projects/{project}/regions/{region}/serviceAttachments", + "httpMethod": "GET", + "id": "compute.serviceAttachments.list", + "parameterOrder": [ + "project", + "region" + ], + "parameters": { + "filter": { + "description": "A filter expression that filters resources listed in the response. Most\nCompute resources support two types of filter expressions:\nexpressions that support regular expressions and expressions that follow\nAPI improvement proposal AIP-160.\nThese two types of filter expressions cannot be mixed in one request.\n\nIf you want to use AIP-160, your expression must specify the field name, an\noperator, and the value that you want to use for filtering. The value\nmust be a string, a number, or a boolean. The operator\nmust be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`.\n\nFor example, if you are filtering Compute Engine instances, you can\nexclude instances named `example-instance` by specifying\n`name != example-instance`.\n\nThe `:*` comparison can be used to test whether a key has been defined.\nFor example, to find all objects with `owner` label use:\n```\nlabels.owner:*\n```\n\nYou can also filter nested fields. For example, you could specify\n`scheduling.automaticRestart = false` to include instances only\nif they are not scheduled for automatic restarts. You can use filtering\non nested fields to filter based onresource labels.\n\nTo filter on multiple expressions, provide each separate expression within\nparentheses. For example:\n```\n(scheduling.automaticRestart = true)\n(cpuPlatform = \"Intel Skylake\")\n```\nBy default, each expression is an `AND` expression. However, you\ncan include `AND` and `OR` expressions explicitly.\nFor example:\n```\n(cpuPlatform = \"Intel Skylake\") OR\n(cpuPlatform = \"Intel Broadwell\") AND\n(scheduling.automaticRestart = true)\n```\n\nIf you want to use a regular expression, use the `eq` (equal) or `ne`\n(not equal) operator against a single un-parenthesized expression with or\nwithout quotes or against multiple parenthesized expressions. Examples:\n\n`fieldname eq unquoted literal`\n`fieldname eq 'single quoted literal'`\n`fieldname eq \"double quoted literal\"`\n`(fieldname1 eq literal) (fieldname2 ne \"literal\")`\n\nThe literal value is interpreted as a regular expression using GoogleRE2 library syntax.\nThe literal value must match the entire field.\n\nFor example, to filter for instances that do not end with name \"instance\",\nyou would use `name ne .*instance`.\n\nYou cannot combine constraints on multiple fields using regular\nexpressions.", + "location": "query", + "type": "string" + }, + "maxResults": { + "default": "500", + "description": "The maximum number of results per page that should be returned.\nIf the number of available results is larger than `maxResults`,\nCompute Engine returns a `nextPageToken` that can be used to get\nthe next page of results in subsequent list requests. Acceptable values are\n`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\nare returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation\ntimestamp using `orderBy=\"creationTimestamp desc\"`. This sorts\nresults based on the `creationTimestamp` field in\nreverse chronological order (newest result first). Use this to sort\nresources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or\n`creationTimestamp desc` is supported.", + "location": "query", + "type": "string" + }, + "pageToken": { + "description": "Specifies a page token to use. Set `pageToken` to the\n`nextPageToken` returned by a previous list request to get\nthe 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 of this request.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "required": true, + "type": "string" + }, + "returnPartialSuccess": { + "description": "Opt-in for partial success behavior which provides partial results in case\nof failure. The default value is false.\n\nFor example, when partial success behavior is enabled, aggregatedList for a\nsingle zone scope either returns all resources in the zone or no resources,\nwith an error code.", + "location": "query", + "type": "boolean" + } + }, + "path": "projects/{project}/regions/{region}/serviceAttachments", + "response": { + "$ref": "ServiceAttachmentList" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ] + }, + "patch": { + "description": "Patches the specified ServiceAttachment resource with the data included in\nthe request. This method supports PATCH\nsemantics and usesJSON merge\npatch format and processing rules.", + "flatPath": "projects/{project}/regions/{region}/serviceAttachments/{serviceAttachment}", + "httpMethod": "PATCH", + "id": "compute.serviceAttachments.patch", + "parameterOrder": [ + "project", + "region", + "serviceAttachment" + ], + "parameters": { + "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": "The region scoping this request and should conform to RFC1035.", + "location": "path", + "required": true, + "type": "string" + }, + "requestId": { + "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).", + "location": "query", + "type": "string" + }, + "serviceAttachment": { + "description": "The resource id of the ServiceAttachment to patch. It should conform to\nRFC1035 resource name or be a string form on an unsigned long number.", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "projects/{project}/regions/{region}/serviceAttachments/{serviceAttachment}", + "request": { + "$ref": "ServiceAttachment" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ] + }, + "setIamPolicy": { + "description": "Sets the access control policy on the specified resource.\nReplaces any existing policy.", + "flatPath": "projects/{project}/regions/{region}/serviceAttachments/{resource}/setIamPolicy", + "httpMethod": "POST", + "id": "compute.serviceAttachments.setIamPolicy", + "parameterOrder": [ + "project", + "region", + "resource" + ], + "parameters": { + "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": "The name of the region for this request.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "required": true, + "type": "string" + }, + "resource": { + "description": "Name or id of the resource for this request.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "required": true, + "type": "string" + } + }, + "path": "projects/{project}/regions/{region}/serviceAttachments/{resource}/setIamPolicy", + "request": { + "$ref": "RegionSetPolicyRequest" + }, + "response": { + "$ref": "Policy" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ] + }, + "testIamPermissions": { + "description": "Returns permissions that a caller has on the specified resource.", + "flatPath": "projects/{project}/regions/{region}/serviceAttachments/{resource}/testIamPermissions", + "httpMethod": "POST", + "id": "compute.serviceAttachments.testIamPermissions", + "parameterOrder": [ + "project", + "region", + "resource" + ], + "parameters": { + "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": "The name of the region for this request.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "required": true, + "type": "string" + }, + "resource": { + "description": "Name or id of the resource for this request.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "required": true, + "type": "string" + } + }, + "path": "projects/{project}/regions/{region}/serviceAttachments/{resource}/testIamPermissions", + "request": { + "$ref": "TestPermissionsRequest" + }, + "response": { + "$ref": "TestPermissionsResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ] + } + } + }, + "snapshotSettings": { + "methods": { + "get": { + "description": "Get snapshot settings.", + "flatPath": "projects/{project}/global/snapshotSettings", + "httpMethod": "GET", + "id": "compute.snapshotSettings.get", + "parameterOrder": [ + "project" + ], + "parameters": { + "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" + } + }, + "path": "projects/{project}/global/snapshotSettings", + "response": { + "$ref": "SnapshotSettings" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ] + }, + "patch": { + "description": "Patch snapshot settings.", + "flatPath": "projects/{project}/global/snapshotSettings", + "httpMethod": "PATCH", + "id": "compute.snapshotSettings.patch", + "parameterOrder": [ + "project" + ], + "parameters": { + "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\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).", + "location": "query", + "type": "string" + }, + "updateMask": { + "description": "update_mask indicates fields to be updated as part of this request.", + "format": "google-fieldmask", + "location": "query", + "type": "string" + } + }, + "path": "projects/{project}/global/snapshotSettings", + "request": { + "$ref": "SnapshotSettings" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ] + } + } + }, + "snapshots": { + "methods": { + "delete": { + "description": "Deletes the specified Snapshot resource. Keep in mind that deleting\na single snapshot might not necessarily delete all the data on that\nsnapshot. If any data on the snapshot that is marked for deletion is\nneeded for subsequent snapshots, the data will be moved to the next\ncorresponding snapshot.\n\nFor more information, seeDeleting\nsnapshots.", + "flatPath": "projects/{project}/global/snapshots/{snapshot}", + "httpMethod": "DELETE", + "id": "compute.snapshots.delete", + "parameterOrder": [ + "project", + "snapshot" + ], + "parameters": { + "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\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).", + "location": "query", + "type": "string" + }, + "snapshot": { + "description": "Name of the Snapshot resource to delete.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "required": true, + "type": "string" + } + }, + "path": "projects/{project}/global/snapshots/{snapshot}", + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ] + }, + "get": { + "description": "Returns the specified Snapshot resource.", + "flatPath": "projects/{project}/global/snapshots/{snapshot}", + "httpMethod": "GET", + "id": "compute.snapshots.get", + "parameterOrder": [ + "project", + "snapshot" + ], + "parameters": { + "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" + }, + "snapshot": { + "description": "Name of the Snapshot resource to return.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "required": true, + "type": "string" + } + }, + "path": "projects/{project}/global/snapshots/{snapshot}", + "response": { + "$ref": "Snapshot" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ] + }, + "getIamPolicy": { + "description": "Gets the access control policy for a resource. May be empty if no such\npolicy or resource exists.", + "flatPath": "projects/{project}/global/snapshots/{resource}/getIamPolicy", + "httpMethod": "GET", + "id": "compute.snapshots.getIamPolicy", + "parameterOrder": [ + "project", + "resource" + ], + "parameters": { + "optionsRequestedPolicyVersion": { + "description": "Requested IAM Policy version.", + "format": "int32", + "location": "query", + "type": "integer" + }, + "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" + }, + "resource": { + "description": "Name or id of the resource for this request.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "required": true, + "type": "string" + } + }, + "path": "projects/{project}/global/snapshots/{resource}/getIamPolicy", + "response": { + "$ref": "Policy" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ] + }, + "insert": { + "description": "Creates a snapshot in the specified project using the data included\nin the request. For regular snapshot creation, consider using this method\ninstead of disks.createSnapshot,\nas this method supports more features, such as creating snapshots in a\nproject different from the source disk project.", + "flatPath": "projects/{project}/global/snapshots", + "httpMethod": "POST", + "id": "compute.snapshots.insert", + "parameterOrder": [ + "project" + ], + "parameters": { + "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\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).", + "location": "query", + "type": "string" + } + }, + "path": "projects/{project}/global/snapshots", + "request": { + "$ref": "Snapshot" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ] + }, + "list": { + "description": "Retrieves the list of Snapshot resources contained within\nthe specified project.", + "flatPath": "projects/{project}/global/snapshots", + "httpMethod": "GET", + "id": "compute.snapshots.list", + "parameterOrder": [ + "project" + ], + "parameters": { + "filter": { + "description": "A filter expression that filters resources listed in the response. Most\nCompute resources support two types of filter expressions:\nexpressions that support regular expressions and expressions that follow\nAPI improvement proposal AIP-160.\nThese two types of filter expressions cannot be mixed in one request.\n\nIf you want to use AIP-160, your expression must specify the field name, an\noperator, and the value that you want to use for filtering. The value\nmust be a string, a number, or a boolean. The operator\nmust be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`.\n\nFor example, if you are filtering Compute Engine instances, you can\nexclude instances named `example-instance` by specifying\n`name != example-instance`.\n\nThe `:*` comparison can be used to test whether a key has been defined.\nFor example, to find all objects with `owner` label use:\n```\nlabels.owner:*\n```\n\nYou can also filter nested fields. For example, you could specify\n`scheduling.automaticRestart = false` to include instances only\nif they are not scheduled for automatic restarts. You can use filtering\non nested fields to filter based onresource labels.\n\nTo filter on multiple expressions, provide each separate expression within\nparentheses. For example:\n```\n(scheduling.automaticRestart = true)\n(cpuPlatform = \"Intel Skylake\")\n```\nBy default, each expression is an `AND` expression. However, you\ncan include `AND` and `OR` expressions explicitly.\nFor example:\n```\n(cpuPlatform = \"Intel Skylake\") OR\n(cpuPlatform = \"Intel Broadwell\") AND\n(scheduling.automaticRestart = true)\n```\n\nIf you want to use a regular expression, use the `eq` (equal) or `ne`\n(not equal) operator against a single un-parenthesized expression with or\nwithout quotes or against multiple parenthesized expressions. Examples:\n\n`fieldname eq unquoted literal`\n`fieldname eq 'single quoted literal'`\n`fieldname eq \"double quoted literal\"`\n`(fieldname1 eq literal) (fieldname2 ne \"literal\")`\n\nThe literal value is interpreted as a regular expression using GoogleRE2 library syntax.\nThe literal value must match the entire field.\n\nFor example, to filter for instances that do not end with name \"instance\",\nyou would use `name ne .*instance`.\n\nYou cannot combine constraints on multiple fields using regular\nexpressions.", + "location": "query", + "type": "string" + }, + "maxResults": { + "default": "500", + "description": "The maximum number of results per page that should be returned.\nIf the number of available results is larger than `maxResults`,\nCompute Engine returns a `nextPageToken` that can be used to get\nthe next page of results in subsequent list requests. Acceptable values are\n`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\nare returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation\ntimestamp using `orderBy=\"creationTimestamp desc\"`. This sorts\nresults based on the `creationTimestamp` field in\nreverse chronological order (newest result first). Use this to sort\nresources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or\n`creationTimestamp desc` is supported.", + "location": "query", + "type": "string" + }, + "pageToken": { + "description": "Specifies a page token to use. Set `pageToken` to the\n`nextPageToken` returned by a previous list request to get\nthe 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" + }, + "returnPartialSuccess": { + "description": "Opt-in for partial success behavior which provides partial results in case\nof failure. The default value is false.\n\nFor example, when partial success behavior is enabled, aggregatedList for a\nsingle zone scope either returns all resources in the zone or no resources,\nwith an error code.", + "location": "query", + "type": "boolean" + } + }, + "path": "projects/{project}/global/snapshots", + "response": { + "$ref": "SnapshotList" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ] + }, + "setIamPolicy": { + "description": "Sets the access control policy on the specified resource.\nReplaces any existing policy.", + "flatPath": "projects/{project}/global/snapshots/{resource}/setIamPolicy", + "httpMethod": "POST", + "id": "compute.snapshots.setIamPolicy", + "parameterOrder": [ + "project", + "resource" + ], + "parameters": { + "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" + }, + "resource": { + "description": "Name or id of the resource for this request.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "required": true, + "type": "string" + } + }, + "path": "projects/{project}/global/snapshots/{resource}/setIamPolicy", + "request": { + "$ref": "GlobalSetPolicyRequest" + }, + "response": { + "$ref": "Policy" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ] + }, + "setLabels": { + "description": "Sets the labels on a snapshot. To learn more about labels, read theLabeling\nResources documentation.", + "flatPath": "projects/{project}/global/snapshots/{resource}/setLabels", + "httpMethod": "POST", + "id": "compute.snapshots.setLabels", + "parameterOrder": [ + "project", + "resource" + ], + "parameters": { + "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" + }, + "resource": { + "description": "Name or id of the resource for this request.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "required": true, + "type": "string" + } + }, + "path": "projects/{project}/global/snapshots/{resource}/setLabels", + "request": { + "$ref": "GlobalSetLabelsRequest" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ] + }, + "testIamPermissions": { + "description": "Returns permissions that a caller has on the specified resource.", + "flatPath": "projects/{project}/global/snapshots/{resource}/testIamPermissions", + "httpMethod": "POST", + "id": "compute.snapshots.testIamPermissions", + "parameterOrder": [ + "project", + "resource" + ], + "parameters": { + "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" + }, + "resource": { + "description": "Name or id of the resource for this request.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "required": true, + "type": "string" + } + }, + "path": "projects/{project}/global/snapshots/{resource}/testIamPermissions", + "request": { + "$ref": "TestPermissionsRequest" + }, + "response": { + "$ref": "TestPermissionsResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ] + }, + "updateKmsKey": { + "description": "Rotates the customer-managed\nencryption key to the latest version for the specified snapshot.", + "flatPath": "projects/{project}/global/snapshots/{snapshot}/updateKmsKey", + "httpMethod": "POST", + "id": "compute.snapshots.updateKmsKey", + "parameterOrder": [ + "project", + "snapshot" + ], + "parameters": { + "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\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).", + "location": "query", + "type": "string" + }, + "snapshot": { + "description": "Name of the snapshot resource to update. Should conform to RFC1035.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "required": true, + "type": "string" + } + }, + "path": "projects/{project}/global/snapshots/{snapshot}/updateKmsKey", + "request": { + "$ref": "SnapshotUpdateKmsKeyRequest" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ] + } + } + }, + "sslCertificates": { + "methods": { + "aggregatedList": { + "description": "Retrieves the list of all SslCertificate resources, regional and global,\navailable to the specified project.\n\nTo prevent failure, Google recommends that you set the\n`returnPartialSuccess` parameter to `true`.", + "flatPath": "projects/{project}/aggregated/sslCertificates", + "httpMethod": "GET", + "id": "compute.sslCertificates.aggregatedList", + "parameterOrder": [ + "project" + ], + "parameters": { + "filter": { + "description": "A filter expression that filters resources listed in the response. Most\nCompute resources support two types of filter expressions:\nexpressions that support regular expressions and expressions that follow\nAPI improvement proposal AIP-160.\nThese two types of filter expressions cannot be mixed in one request.\n\nIf you want to use AIP-160, your expression must specify the field name, an\noperator, and the value that you want to use for filtering. The value\nmust be a string, a number, or a boolean. The operator\nmust be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`.\n\nFor example, if you are filtering Compute Engine instances, you can\nexclude instances named `example-instance` by specifying\n`name != example-instance`.\n\nThe `:*` comparison can be used to test whether a key has been defined.\nFor example, to find all objects with `owner` label use:\n```\nlabels.owner:*\n```\n\nYou can also filter nested fields. For example, you could specify\n`scheduling.automaticRestart = false` to include instances only\nif they are not scheduled for automatic restarts. You can use filtering\non nested fields to filter based onresource labels.\n\nTo filter on multiple expressions, provide each separate expression within\nparentheses. For example:\n```\n(scheduling.automaticRestart = true)\n(cpuPlatform = \"Intel Skylake\")\n```\nBy default, each expression is an `AND` expression. However, you\ncan include `AND` and `OR` expressions explicitly.\nFor example:\n```\n(cpuPlatform = \"Intel Skylake\") OR\n(cpuPlatform = \"Intel Broadwell\") AND\n(scheduling.automaticRestart = true)\n```\n\nIf you want to use a regular expression, use the `eq` (equal) or `ne`\n(not equal) operator against a single un-parenthesized expression with or\nwithout quotes or against multiple parenthesized expressions. Examples:\n\n`fieldname eq unquoted literal`\n`fieldname eq 'single quoted literal'`\n`fieldname eq \"double quoted literal\"`\n`(fieldname1 eq literal) (fieldname2 ne \"literal\")`\n\nThe literal value is interpreted as a regular expression using GoogleRE2 library syntax.\nThe literal value must match the entire field.\n\nFor example, to filter for instances that do not end with name \"instance\",\nyou would use `name ne .*instance`.\n\nYou cannot combine constraints on multiple fields using regular\nexpressions.", + "location": "query", + "type": "string" + }, + "includeAllScopes": { + "description": "Indicates whether every visible scope for each scope type (zone, region,\nglobal) should be included in the response. For new resource types added\nafter this field, the flag has no effect as new resource types will always\ninclude every visible scope for each scope type in response. For resource\ntypes which predate this field, if this flag is omitted or false, only\nscopes of the scope types where the resource type is expected to be found\nwill be included.", + "location": "query", + "type": "boolean" + }, + "maxResults": { + "default": "500", + "description": "The maximum number of results per page that should be returned.\nIf the number of available results is larger than `maxResults`,\nCompute Engine returns a `nextPageToken` that can be used to get\nthe next page of results in subsequent list requests. Acceptable values are\n`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\nare returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation\ntimestamp using `orderBy=\"creationTimestamp desc\"`. This sorts\nresults based on the `creationTimestamp` field in\nreverse chronological order (newest result first). Use this to sort\nresources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or\n`creationTimestamp desc` is supported.", + "location": "query", + "type": "string" + }, + "pageToken": { + "description": "Specifies a page token to use. Set `pageToken` to the\n`nextPageToken` returned by a previous list request to get\nthe next page of results.", + "location": "query", + "type": "string" + }, + "project": { + "description": "Name of the project scoping 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" + }, + "returnPartialSuccess": { + "description": "Opt-in for partial success behavior which provides partial results in case\nof failure. The default value is false.\n\nFor example, when partial success behavior is enabled, aggregatedList for a\nsingle zone scope either returns all resources in the zone or no resources,\nwith an error code.", + "location": "query", + "type": "boolean" + }, + "serviceProjectNumber": { + "description": "The Shared VPC service project id or service project number for which\naggregated list request is invoked for subnetworks list-usable api.", + "format": "int64", + "location": "query", + "type": "string" + } + }, + "path": "projects/{project}/aggregated/sslCertificates", + "response": { + "$ref": "SslCertificateAggregatedList" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ] + }, + "delete": { + "description": "Deletes the specified SslCertificate resource.", + "flatPath": "projects/{project}/global/sslCertificates/{sslCertificate}", + "httpMethod": "DELETE", + "id": "compute.sslCertificates.delete", + "parameterOrder": [ + "project", + "sslCertificate" + ], + "parameters": { + "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\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).", + "location": "query", + "type": "string" + }, + "sslCertificate": { + "description": "Name of the SslCertificate resource to delete.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "required": true, + "type": "string" + } + }, + "path": "projects/{project}/global/sslCertificates/{sslCertificate}", + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ] + }, + "get": { + "description": "Returns the specified SslCertificate resource.", + "flatPath": "projects/{project}/global/sslCertificates/{sslCertificate}", + "httpMethod": "GET", + "id": "compute.sslCertificates.get", + "parameterOrder": [ + "project", + "sslCertificate" + ], + "parameters": { + "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" + }, + "sslCertificate": { + "description": "Name of the SslCertificate resource to return.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "required": true, + "type": "string" + } + }, + "path": "projects/{project}/global/sslCertificates/{sslCertificate}", + "response": { + "$ref": "SslCertificate" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ] + }, + "insert": { + "description": "Creates a SslCertificate resource in the specified project using the data\nincluded in the request.", + "flatPath": "projects/{project}/global/sslCertificates", + "httpMethod": "POST", + "id": "compute.sslCertificates.insert", + "parameterOrder": [ + "project" + ], + "parameters": { + "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\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).", + "location": "query", + "type": "string" + } + }, + "path": "projects/{project}/global/sslCertificates", + "request": { + "$ref": "SslCertificate" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ] + }, + "list": { + "description": "Retrieves the list of SslCertificate resources available to the specified\nproject.", + "flatPath": "projects/{project}/global/sslCertificates", + "httpMethod": "GET", + "id": "compute.sslCertificates.list", + "parameterOrder": [ + "project" + ], + "parameters": { + "filter": { + "description": "A filter expression that filters resources listed in the response. Most\nCompute resources support two types of filter expressions:\nexpressions that support regular expressions and expressions that follow\nAPI improvement proposal AIP-160.\nThese two types of filter expressions cannot be mixed in one request.\n\nIf you want to use AIP-160, your expression must specify the field name, an\noperator, and the value that you want to use for filtering. The value\nmust be a string, a number, or a boolean. The operator\nmust be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`.\n\nFor example, if you are filtering Compute Engine instances, you can\nexclude instances named `example-instance` by specifying\n`name != example-instance`.\n\nThe `:*` comparison can be used to test whether a key has been defined.\nFor example, to find all objects with `owner` label use:\n```\nlabels.owner:*\n```\n\nYou can also filter nested fields. For example, you could specify\n`scheduling.automaticRestart = false` to include instances only\nif they are not scheduled for automatic restarts. You can use filtering\non nested fields to filter based onresource labels.\n\nTo filter on multiple expressions, provide each separate expression within\nparentheses. For example:\n```\n(scheduling.automaticRestart = true)\n(cpuPlatform = \"Intel Skylake\")\n```\nBy default, each expression is an `AND` expression. However, you\ncan include `AND` and `OR` expressions explicitly.\nFor example:\n```\n(cpuPlatform = \"Intel Skylake\") OR\n(cpuPlatform = \"Intel Broadwell\") AND\n(scheduling.automaticRestart = true)\n```\n\nIf you want to use a regular expression, use the `eq` (equal) or `ne`\n(not equal) operator against a single un-parenthesized expression with or\nwithout quotes or against multiple parenthesized expressions. Examples:\n\n`fieldname eq unquoted literal`\n`fieldname eq 'single quoted literal'`\n`fieldname eq \"double quoted literal\"`\n`(fieldname1 eq literal) (fieldname2 ne \"literal\")`\n\nThe literal value is interpreted as a regular expression using GoogleRE2 library syntax.\nThe literal value must match the entire field.\n\nFor example, to filter for instances that do not end with name \"instance\",\nyou would use `name ne .*instance`.\n\nYou cannot combine constraints on multiple fields using regular\nexpressions.", + "location": "query", + "type": "string" + }, + "maxResults": { + "default": "500", + "description": "The maximum number of results per page that should be returned.\nIf the number of available results is larger than `maxResults`,\nCompute Engine returns a `nextPageToken` that can be used to get\nthe next page of results in subsequent list requests. Acceptable values are\n`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\nare returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation\ntimestamp using `orderBy=\"creationTimestamp desc\"`. This sorts\nresults based on the `creationTimestamp` field in\nreverse chronological order (newest result first). Use this to sort\nresources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or\n`creationTimestamp desc` is supported.", + "location": "query", + "type": "string" + }, + "pageToken": { + "description": "Specifies a page token to use. Set `pageToken` to the\n`nextPageToken` returned by a previous list request to get\nthe 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" + }, + "returnPartialSuccess": { + "description": "Opt-in for partial success behavior which provides partial results in case\nof failure. The default value is false.\n\nFor example, when partial success behavior is enabled, aggregatedList for a\nsingle zone scope either returns all resources in the zone or no resources,\nwith an error code.", + "location": "query", + "type": "boolean" + } + }, + "path": "projects/{project}/global/sslCertificates", + "response": { + "$ref": "SslCertificateList" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ] + } + } + }, + "sslPolicies": { + "methods": { + "aggregatedList": { + "description": "Retrieves the list of all SslPolicy resources, regional and global,\navailable to the specified project.\n\nTo prevent failure, Google recommends that you set the\n`returnPartialSuccess` parameter to `true`.", + "flatPath": "projects/{project}/aggregated/sslPolicies", + "httpMethod": "GET", + "id": "compute.sslPolicies.aggregatedList", + "parameterOrder": [ + "project" + ], + "parameters": { + "filter": { + "description": "A filter expression that filters resources listed in the response. Most\nCompute resources support two types of filter expressions:\nexpressions that support regular expressions and expressions that follow\nAPI improvement proposal AIP-160.\nThese two types of filter expressions cannot be mixed in one request.\n\nIf you want to use AIP-160, your expression must specify the field name, an\noperator, and the value that you want to use for filtering. The value\nmust be a string, a number, or a boolean. The operator\nmust be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`.\n\nFor example, if you are filtering Compute Engine instances, you can\nexclude instances named `example-instance` by specifying\n`name != example-instance`.\n\nThe `:*` comparison can be used to test whether a key has been defined.\nFor example, to find all objects with `owner` label use:\n```\nlabels.owner:*\n```\n\nYou can also filter nested fields. For example, you could specify\n`scheduling.automaticRestart = false` to include instances only\nif they are not scheduled for automatic restarts. You can use filtering\non nested fields to filter based onresource labels.\n\nTo filter on multiple expressions, provide each separate expression within\nparentheses. For example:\n```\n(scheduling.automaticRestart = true)\n(cpuPlatform = \"Intel Skylake\")\n```\nBy default, each expression is an `AND` expression. However, you\ncan include `AND` and `OR` expressions explicitly.\nFor example:\n```\n(cpuPlatform = \"Intel Skylake\") OR\n(cpuPlatform = \"Intel Broadwell\") AND\n(scheduling.automaticRestart = true)\n```\n\nIf you want to use a regular expression, use the `eq` (equal) or `ne`\n(not equal) operator against a single un-parenthesized expression with or\nwithout quotes or against multiple parenthesized expressions. Examples:\n\n`fieldname eq unquoted literal`\n`fieldname eq 'single quoted literal'`\n`fieldname eq \"double quoted literal\"`\n`(fieldname1 eq literal) (fieldname2 ne \"literal\")`\n\nThe literal value is interpreted as a regular expression using GoogleRE2 library syntax.\nThe literal value must match the entire field.\n\nFor example, to filter for instances that do not end with name \"instance\",\nyou would use `name ne .*instance`.\n\nYou cannot combine constraints on multiple fields using regular\nexpressions.", + "location": "query", + "type": "string" + }, + "includeAllScopes": { + "description": "Indicates whether every visible scope for each scope type (zone, region,\nglobal) should be included in the response. For new resource types added\nafter this field, the flag has no effect as new resource types will always\ninclude every visible scope for each scope type in response. For resource\ntypes which predate this field, if this flag is omitted or false, only\nscopes of the scope types where the resource type is expected to be found\nwill be included.", + "location": "query", + "type": "boolean" + }, + "maxResults": { + "default": "500", + "description": "The maximum number of results per page that should be returned.\nIf the number of available results is larger than `maxResults`,\nCompute Engine returns a `nextPageToken` that can be used to get\nthe next page of results in subsequent list requests. Acceptable values are\n`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\nare returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation\ntimestamp using `orderBy=\"creationTimestamp desc\"`. This sorts\nresults based on the `creationTimestamp` field in\nreverse chronological order (newest result first). Use this to sort\nresources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or\n`creationTimestamp desc` is supported.", + "location": "query", + "type": "string" + }, + "pageToken": { + "description": "Specifies a page token to use. Set `pageToken` to the\n`nextPageToken` returned by a previous list request to get\nthe next page of results.", + "location": "query", + "type": "string" + }, + "project": { + "description": "Name of the project scoping 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" + }, + "returnPartialSuccess": { + "description": "Opt-in for partial success behavior which provides partial results in case\nof failure. The default value is false.\n\nFor example, when partial success behavior is enabled, aggregatedList for a\nsingle zone scope either returns all resources in the zone or no resources,\nwith an error code.", + "location": "query", + "type": "boolean" + }, + "serviceProjectNumber": { + "description": "The Shared VPC service project id or service project number for which\naggregated list request is invoked for subnetworks list-usable api.", + "format": "int64", + "location": "query", + "type": "string" + } + }, + "path": "projects/{project}/aggregated/sslPolicies", + "response": { + "$ref": "SslPoliciesAggregatedList" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ] + }, + "delete": { + "description": "Deletes the specified SSL policy. The SSL policy resource can be deleted\nonly if it is not in use by any TargetHttpsProxy or TargetSslProxy\nresources.", + "flatPath": "projects/{project}/global/sslPolicies/{sslPolicy}", + "httpMethod": "DELETE", + "id": "compute.sslPolicies.delete", + "parameterOrder": [ + "project", + "sslPolicy" + ], + "parameters": { + "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\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).", + "location": "query", + "type": "string" + }, + "sslPolicy": { + "description": "Name of the SSL policy to delete. The name must be 1-63 characters long,\nand comply with RFC1035.", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "projects/{project}/global/sslPolicies/{sslPolicy}", + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ] + }, + "get": { + "description": "Lists all of the ordered rules present in a single specified policy.", + "flatPath": "projects/{project}/global/sslPolicies/{sslPolicy}", + "httpMethod": "GET", + "id": "compute.sslPolicies.get", + "parameterOrder": [ + "project", + "sslPolicy" + ], + "parameters": { + "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" + }, + "sslPolicy": { + "description": "Name of the SSL policy to update. The name must be 1-63 characters long,\nand comply with RFC1035.", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "projects/{project}/global/sslPolicies/{sslPolicy}", + "response": { + "$ref": "SslPolicy" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ] + }, + "insert": { + "description": "Returns the specified SSL policy resource.", + "flatPath": "projects/{project}/global/sslPolicies", + "httpMethod": "POST", + "id": "compute.sslPolicies.insert", + "parameterOrder": [ + "project" + ], + "parameters": { + "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\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).", + "location": "query", + "type": "string" + } + }, + "path": "projects/{project}/global/sslPolicies", + "request": { + "$ref": "SslPolicy" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ] + }, + "list": { + "description": "Lists all the SSL policies that have been configured for the specified\nproject.", + "flatPath": "projects/{project}/global/sslPolicies", + "httpMethod": "GET", + "id": "compute.sslPolicies.list", + "parameterOrder": [ + "project" + ], + "parameters": { + "filter": { + "description": "A filter expression that filters resources listed in the response. Most\nCompute resources support two types of filter expressions:\nexpressions that support regular expressions and expressions that follow\nAPI improvement proposal AIP-160.\nThese two types of filter expressions cannot be mixed in one request.\n\nIf you want to use AIP-160, your expression must specify the field name, an\noperator, and the value that you want to use for filtering. The value\nmust be a string, a number, or a boolean. The operator\nmust be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`.\n\nFor example, if you are filtering Compute Engine instances, you can\nexclude instances named `example-instance` by specifying\n`name != example-instance`.\n\nThe `:*` comparison can be used to test whether a key has been defined.\nFor example, to find all objects with `owner` label use:\n```\nlabels.owner:*\n```\n\nYou can also filter nested fields. For example, you could specify\n`scheduling.automaticRestart = false` to include instances only\nif they are not scheduled for automatic restarts. You can use filtering\non nested fields to filter based onresource labels.\n\nTo filter on multiple expressions, provide each separate expression within\nparentheses. For example:\n```\n(scheduling.automaticRestart = true)\n(cpuPlatform = \"Intel Skylake\")\n```\nBy default, each expression is an `AND` expression. However, you\ncan include `AND` and `OR` expressions explicitly.\nFor example:\n```\n(cpuPlatform = \"Intel Skylake\") OR\n(cpuPlatform = \"Intel Broadwell\") AND\n(scheduling.automaticRestart = true)\n```\n\nIf you want to use a regular expression, use the `eq` (equal) or `ne`\n(not equal) operator against a single un-parenthesized expression with or\nwithout quotes or against multiple parenthesized expressions. Examples:\n\n`fieldname eq unquoted literal`\n`fieldname eq 'single quoted literal'`\n`fieldname eq \"double quoted literal\"`\n`(fieldname1 eq literal) (fieldname2 ne \"literal\")`\n\nThe literal value is interpreted as a regular expression using GoogleRE2 library syntax.\nThe literal value must match the entire field.\n\nFor example, to filter for instances that do not end with name \"instance\",\nyou would use `name ne .*instance`.\n\nYou cannot combine constraints on multiple fields using regular\nexpressions.", + "location": "query", + "type": "string" + }, + "maxResults": { + "default": "500", + "description": "The maximum number of results per page that should be returned.\nIf the number of available results is larger than `maxResults`,\nCompute Engine returns a `nextPageToken` that can be used to get\nthe next page of results in subsequent list requests. Acceptable values are\n`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\nare returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation\ntimestamp using `orderBy=\"creationTimestamp desc\"`. This sorts\nresults based on the `creationTimestamp` field in\nreverse chronological order (newest result first). Use this to sort\nresources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or\n`creationTimestamp desc` is supported.", + "location": "query", + "type": "string" + }, + "pageToken": { + "description": "Specifies a page token to use. Set `pageToken` to the\n`nextPageToken` returned by a previous list request to get\nthe 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" + }, + "returnPartialSuccess": { + "description": "Opt-in for partial success behavior which provides partial results in case\nof failure. The default value is false.\n\nFor example, when partial success behavior is enabled, aggregatedList for a\nsingle zone scope either returns all resources in the zone or no resources,\nwith an error code.", + "location": "query", + "type": "boolean" + } + }, + "path": "projects/{project}/global/sslPolicies", + "response": { + "$ref": "SslPoliciesList" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ] + }, + "listAvailableFeatures": { + "description": "Lists all features that can be specified in the SSL policy when using\ncustom profile.", + "flatPath": "projects/{project}/global/sslPolicies/listAvailableFeatures", + "httpMethod": "GET", + "id": "compute.sslPolicies.listAvailableFeatures", + "parameterOrder": [ + "project" + ], + "parameters": { + "filter": { + "description": "A filter expression that filters resources listed in the response. Most\nCompute resources support two types of filter expressions:\nexpressions that support regular expressions and expressions that follow\nAPI improvement proposal AIP-160.\nThese two types of filter expressions cannot be mixed in one request.\n\nIf you want to use AIP-160, your expression must specify the field name, an\noperator, and the value that you want to use for filtering. The value\nmust be a string, a number, or a boolean. The operator\nmust be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`.\n\nFor example, if you are filtering Compute Engine instances, you can\nexclude instances named `example-instance` by specifying\n`name != example-instance`.\n\nThe `:*` comparison can be used to test whether a key has been defined.\nFor example, to find all objects with `owner` label use:\n```\nlabels.owner:*\n```\n\nYou can also filter nested fields. For example, you could specify\n`scheduling.automaticRestart = false` to include instances only\nif they are not scheduled for automatic restarts. You can use filtering\non nested fields to filter based onresource labels.\n\nTo filter on multiple expressions, provide each separate expression within\nparentheses. For example:\n```\n(scheduling.automaticRestart = true)\n(cpuPlatform = \"Intel Skylake\")\n```\nBy default, each expression is an `AND` expression. However, you\ncan include `AND` and `OR` expressions explicitly.\nFor example:\n```\n(cpuPlatform = \"Intel Skylake\") OR\n(cpuPlatform = \"Intel Broadwell\") AND\n(scheduling.automaticRestart = true)\n```\n\nIf you want to use a regular expression, use the `eq` (equal) or `ne`\n(not equal) operator against a single un-parenthesized expression with or\nwithout quotes or against multiple parenthesized expressions. Examples:\n\n`fieldname eq unquoted literal`\n`fieldname eq 'single quoted literal'`\n`fieldname eq \"double quoted literal\"`\n`(fieldname1 eq literal) (fieldname2 ne \"literal\")`\n\nThe literal value is interpreted as a regular expression using GoogleRE2 library syntax.\nThe literal value must match the entire field.\n\nFor example, to filter for instances that do not end with name \"instance\",\nyou would use `name ne .*instance`.\n\nYou cannot combine constraints on multiple fields using regular\nexpressions.", + "location": "query", + "type": "string" + }, + "maxResults": { + "default": "500", + "description": "The maximum number of results per page that should be returned.\nIf the number of available results is larger than `maxResults`,\nCompute Engine returns a `nextPageToken` that can be used to get\nthe next page of results in subsequent list requests. Acceptable values are\n`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\nare returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation\ntimestamp using `orderBy=\"creationTimestamp desc\"`. This sorts\nresults based on the `creationTimestamp` field in\nreverse chronological order (newest result first). Use this to sort\nresources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or\n`creationTimestamp desc` is supported.", + "location": "query", + "type": "string" + }, + "pageToken": { + "description": "Specifies a page token to use. Set `pageToken` to the\n`nextPageToken` returned by a previous list request to get\nthe 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" + }, + "returnPartialSuccess": { + "description": "Opt-in for partial success behavior which provides partial results in case\nof failure. The default value is false.\n\nFor example, when partial success behavior is enabled, aggregatedList for a\nsingle zone scope either returns all resources in the zone or no resources,\nwith an error code.", + "location": "query", + "type": "boolean" + } + }, + "path": "projects/{project}/global/sslPolicies/listAvailableFeatures", + "response": { + "$ref": "SslPoliciesListAvailableFeaturesResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ] + }, + "patch": { + "description": "Patches the specified SSL policy with the data included in the request.", + "flatPath": "projects/{project}/global/sslPolicies/{sslPolicy}", + "httpMethod": "PATCH", + "id": "compute.sslPolicies.patch", + "parameterOrder": [ + "project", + "sslPolicy" + ], + "parameters": { + "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\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).", + "location": "query", + "type": "string" + }, + "sslPolicy": { + "description": "Name of the SSL policy to update. The name must be 1-63 characters long,\nand comply with RFC1035.", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "projects/{project}/global/sslPolicies/{sslPolicy}", + "request": { + "$ref": "SslPolicy" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ] + } + } + }, + "storagePoolTypes": { + "methods": { + "aggregatedList": { + "description": "Retrieves an aggregated list of storage pool types.\n\nTo prevent failure, Google recommends that you set the\n`returnPartialSuccess` parameter to `true`.", + "flatPath": "projects/{project}/aggregated/storagePoolTypes", + "httpMethod": "GET", + "id": "compute.storagePoolTypes.aggregatedList", + "parameterOrder": [ + "project" + ], + "parameters": { + "filter": { + "description": "A filter expression that filters resources listed in the response. Most\nCompute resources support two types of filter expressions:\nexpressions that support regular expressions and expressions that follow\nAPI improvement proposal AIP-160.\nThese two types of filter expressions cannot be mixed in one request.\n\nIf you want to use AIP-160, your expression must specify the field name, an\noperator, and the value that you want to use for filtering. The value\nmust be a string, a number, or a boolean. The operator\nmust be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`.\n\nFor example, if you are filtering Compute Engine instances, you can\nexclude instances named `example-instance` by specifying\n`name != example-instance`.\n\nThe `:*` comparison can be used to test whether a key has been defined.\nFor example, to find all objects with `owner` label use:\n```\nlabels.owner:*\n```\n\nYou can also filter nested fields. For example, you could specify\n`scheduling.automaticRestart = false` to include instances only\nif they are not scheduled for automatic restarts. You can use filtering\non nested fields to filter based onresource labels.\n\nTo filter on multiple expressions, provide each separate expression within\nparentheses. For example:\n```\n(scheduling.automaticRestart = true)\n(cpuPlatform = \"Intel Skylake\")\n```\nBy default, each expression is an `AND` expression. However, you\ncan include `AND` and `OR` expressions explicitly.\nFor example:\n```\n(cpuPlatform = \"Intel Skylake\") OR\n(cpuPlatform = \"Intel Broadwell\") AND\n(scheduling.automaticRestart = true)\n```\n\nIf you want to use a regular expression, use the `eq` (equal) or `ne`\n(not equal) operator against a single un-parenthesized expression with or\nwithout quotes or against multiple parenthesized expressions. Examples:\n\n`fieldname eq unquoted literal`\n`fieldname eq 'single quoted literal'`\n`fieldname eq \"double quoted literal\"`\n`(fieldname1 eq literal) (fieldname2 ne \"literal\")`\n\nThe literal value is interpreted as a regular expression using GoogleRE2 library syntax.\nThe literal value must match the entire field.\n\nFor example, to filter for instances that do not end with name \"instance\",\nyou would use `name ne .*instance`.\n\nYou cannot combine constraints on multiple fields using regular\nexpressions.", + "location": "query", + "type": "string" + }, + "includeAllScopes": { + "description": "Indicates whether every visible scope for each scope type (zone, region,\nglobal) should be included in the response. For new resource types added\nafter this field, the flag has no effect as new resource types will always\ninclude every visible scope for each scope type in response. For resource\ntypes which predate this field, if this flag is omitted or false, only\nscopes of the scope types where the resource type is expected to be found\nwill be included.", + "location": "query", + "type": "boolean" + }, + "maxResults": { + "default": "500", + "description": "The maximum number of results per page that should be returned.\nIf the number of available results is larger than `maxResults`,\nCompute Engine returns a `nextPageToken` that can be used to get\nthe next page of results in subsequent list requests. Acceptable values are\n`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\nare returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation\ntimestamp using `orderBy=\"creationTimestamp desc\"`. This sorts\nresults based on the `creationTimestamp` field in\nreverse chronological order (newest result first). Use this to sort\nresources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or\n`creationTimestamp desc` is supported.", + "location": "query", + "type": "string" + }, + "pageToken": { + "description": "Specifies a page token to use. Set `pageToken` to the\n`nextPageToken` returned by a previous list request to get\nthe 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" + }, + "returnPartialSuccess": { + "description": "Opt-in for partial success behavior which provides partial results in case\nof failure. The default value is false.\n\nFor example, when partial success behavior is enabled, aggregatedList for a\nsingle zone scope either returns all resources in the zone or no resources,\nwith an error code.", + "location": "query", + "type": "boolean" + }, + "serviceProjectNumber": { + "description": "The Shared VPC service project id or service project number for which\naggregated list request is invoked for subnetworks list-usable api.", + "format": "int64", + "location": "query", + "type": "string" + } + }, + "path": "projects/{project}/aggregated/storagePoolTypes", + "response": { + "$ref": "StoragePoolTypeAggregatedList" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ] + }, + "get": { + "description": "Returns the specified storage pool type.", + "flatPath": "projects/{project}/zones/{zone}/storagePoolTypes/{storagePoolType}", + "httpMethod": "GET", + "id": "compute.storagePoolTypes.get", + "parameterOrder": [ + "project", + "zone", + "storagePoolType" + ], + "parameters": { + "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" + }, + "storagePoolType": { + "description": "Name of the storage pool type to return.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "required": true, + "type": "string" + }, + "zone": { + "description": "The name of the zone for this request.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "required": true, + "type": "string" + } + }, + "path": "projects/{project}/zones/{zone}/storagePoolTypes/{storagePoolType}", + "response": { + "$ref": "StoragePoolType" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ] + }, + "list": { + "description": "Retrieves a list of storage pool types available to the specified\nproject.", + "flatPath": "projects/{project}/zones/{zone}/storagePoolTypes", + "httpMethod": "GET", + "id": "compute.storagePoolTypes.list", + "parameterOrder": [ + "project", + "zone" + ], + "parameters": { + "filter": { + "description": "A filter expression that filters resources listed in the response. Most\nCompute resources support two types of filter expressions:\nexpressions that support regular expressions and expressions that follow\nAPI improvement proposal AIP-160.\nThese two types of filter expressions cannot be mixed in one request.\n\nIf you want to use AIP-160, your expression must specify the field name, an\noperator, and the value that you want to use for filtering. The value\nmust be a string, a number, or a boolean. The operator\nmust be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`.\n\nFor example, if you are filtering Compute Engine instances, you can\nexclude instances named `example-instance` by specifying\n`name != example-instance`.\n\nThe `:*` comparison can be used to test whether a key has been defined.\nFor example, to find all objects with `owner` label use:\n```\nlabels.owner:*\n```\n\nYou can also filter nested fields. For example, you could specify\n`scheduling.automaticRestart = false` to include instances only\nif they are not scheduled for automatic restarts. You can use filtering\non nested fields to filter based onresource labels.\n\nTo filter on multiple expressions, provide each separate expression within\nparentheses. For example:\n```\n(scheduling.automaticRestart = true)\n(cpuPlatform = \"Intel Skylake\")\n```\nBy default, each expression is an `AND` expression. However, you\ncan include `AND` and `OR` expressions explicitly.\nFor example:\n```\n(cpuPlatform = \"Intel Skylake\") OR\n(cpuPlatform = \"Intel Broadwell\") AND\n(scheduling.automaticRestart = true)\n```\n\nIf you want to use a regular expression, use the `eq` (equal) or `ne`\n(not equal) operator against a single un-parenthesized expression with or\nwithout quotes or against multiple parenthesized expressions. Examples:\n\n`fieldname eq unquoted literal`\n`fieldname eq 'single quoted literal'`\n`fieldname eq \"double quoted literal\"`\n`(fieldname1 eq literal) (fieldname2 ne \"literal\")`\n\nThe literal value is interpreted as a regular expression using GoogleRE2 library syntax.\nThe literal value must match the entire field.\n\nFor example, to filter for instances that do not end with name \"instance\",\nyou would use `name ne .*instance`.\n\nYou cannot combine constraints on multiple fields using regular\nexpressions.", + "location": "query", + "type": "string" + }, + "maxResults": { + "default": "500", + "description": "The maximum number of results per page that should be returned.\nIf the number of available results is larger than `maxResults`,\nCompute Engine returns a `nextPageToken` that can be used to get\nthe next page of results in subsequent list requests. Acceptable values are\n`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\nare returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation\ntimestamp using `orderBy=\"creationTimestamp desc\"`. This sorts\nresults based on the `creationTimestamp` field in\nreverse chronological order (newest result first). Use this to sort\nresources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or\n`creationTimestamp desc` is supported.", + "location": "query", + "type": "string" + }, + "pageToken": { + "description": "Specifies a page token to use. Set `pageToken` to the\n`nextPageToken` returned by a previous list request to get\nthe 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" + }, + "returnPartialSuccess": { + "description": "Opt-in for partial success behavior which provides partial results in case\nof failure. The default value is false.\n\nFor example, when partial success behavior is enabled, aggregatedList for a\nsingle zone scope either returns all resources in the zone or no resources,\nwith an error code.", + "location": "query", + "type": "boolean" + }, + "zone": { + "description": "The name of the zone for this request.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "required": true, + "type": "string" + } + }, + "path": "projects/{project}/zones/{zone}/storagePoolTypes", + "response": { + "$ref": "StoragePoolTypeList" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ] + } + } + }, + "storagePools": { + "methods": { + "aggregatedList": { + "description": "Retrieves an aggregated list of storage pools.\n\nTo prevent failure, Google recommends that you set the\n`returnPartialSuccess` parameter to `true`.", + "flatPath": "projects/{project}/aggregated/storagePools", + "httpMethod": "GET", + "id": "compute.storagePools.aggregatedList", + "parameterOrder": [ + "project" + ], + "parameters": { + "filter": { + "description": "A filter expression that filters resources listed in the response. Most\nCompute resources support two types of filter expressions:\nexpressions that support regular expressions and expressions that follow\nAPI improvement proposal AIP-160.\nThese two types of filter expressions cannot be mixed in one request.\n\nIf you want to use AIP-160, your expression must specify the field name, an\noperator, and the value that you want to use for filtering. The value\nmust be a string, a number, or a boolean. The operator\nmust be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`.\n\nFor example, if you are filtering Compute Engine instances, you can\nexclude instances named `example-instance` by specifying\n`name != example-instance`.\n\nThe `:*` comparison can be used to test whether a key has been defined.\nFor example, to find all objects with `owner` label use:\n```\nlabels.owner:*\n```\n\nYou can also filter nested fields. For example, you could specify\n`scheduling.automaticRestart = false` to include instances only\nif they are not scheduled for automatic restarts. You can use filtering\non nested fields to filter based onresource labels.\n\nTo filter on multiple expressions, provide each separate expression within\nparentheses. For example:\n```\n(scheduling.automaticRestart = true)\n(cpuPlatform = \"Intel Skylake\")\n```\nBy default, each expression is an `AND` expression. However, you\ncan include `AND` and `OR` expressions explicitly.\nFor example:\n```\n(cpuPlatform = \"Intel Skylake\") OR\n(cpuPlatform = \"Intel Broadwell\") AND\n(scheduling.automaticRestart = true)\n```\n\nIf you want to use a regular expression, use the `eq` (equal) or `ne`\n(not equal) operator against a single un-parenthesized expression with or\nwithout quotes or against multiple parenthesized expressions. Examples:\n\n`fieldname eq unquoted literal`\n`fieldname eq 'single quoted literal'`\n`fieldname eq \"double quoted literal\"`\n`(fieldname1 eq literal) (fieldname2 ne \"literal\")`\n\nThe literal value is interpreted as a regular expression using GoogleRE2 library syntax.\nThe literal value must match the entire field.\n\nFor example, to filter for instances that do not end with name \"instance\",\nyou would use `name ne .*instance`.\n\nYou cannot combine constraints on multiple fields using regular\nexpressions.", + "location": "query", + "type": "string" + }, + "includeAllScopes": { + "description": "Indicates whether every visible scope for each scope type (zone, region,\nglobal) should be included in the response. For new resource types added\nafter this field, the flag has no effect as new resource types will always\ninclude every visible scope for each scope type in response. For resource\ntypes which predate this field, if this flag is omitted or false, only\nscopes of the scope types where the resource type is expected to be found\nwill be included.", + "location": "query", + "type": "boolean" + }, + "maxResults": { + "default": "500", + "description": "The maximum number of results per page that should be returned.\nIf the number of available results is larger than `maxResults`,\nCompute Engine returns a `nextPageToken` that can be used to get\nthe next page of results in subsequent list requests. Acceptable values are\n`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\nare returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation\ntimestamp using `orderBy=\"creationTimestamp desc\"`. This sorts\nresults based on the `creationTimestamp` field in\nreverse chronological order (newest result first). Use this to sort\nresources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or\n`creationTimestamp desc` is supported.", + "location": "query", + "type": "string" + }, + "pageToken": { + "description": "Specifies a page token to use. Set `pageToken` to the\n`nextPageToken` returned by a previous list request to get\nthe 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" + }, + "returnPartialSuccess": { + "description": "Opt-in for partial success behavior which provides partial results in case\nof failure. The default value is false.\n\nFor example, when partial success behavior is enabled, aggregatedList for a\nsingle zone scope either returns all resources in the zone or no resources,\nwith an error code.", + "location": "query", + "type": "boolean" + }, + "serviceProjectNumber": { + "description": "The Shared VPC service project id or service project number for which\naggregated list request is invoked for subnetworks list-usable api.", + "format": "int64", + "location": "query", + "type": "string" + } + }, + "path": "projects/{project}/aggregated/storagePools", + "response": { + "$ref": "StoragePoolAggregatedList" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ] + }, + "delete": { + "description": "Deletes the specified storage pool. Deleting a storagePool\nremoves its data permanently and is irreversible. However, deleting a\nstoragePool does not delete any snapshots previously\nmade from the storagePool. You must separately delete\nsnapshots.", + "flatPath": "projects/{project}/zones/{zone}/storagePools/{storagePool}", + "httpMethod": "DELETE", + "id": "compute.storagePools.delete", + "parameterOrder": [ + "project", + "zone", + "storagePool" + ], + "parameters": { + "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\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).", + "location": "query", + "type": "string" + }, + "storagePool": { + "description": "Name of the storage pool to delete.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "required": true, + "type": "string" + }, + "zone": { + "description": "The name of the zone for this request.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "required": true, + "type": "string" + } + }, + "path": "projects/{project}/zones/{zone}/storagePools/{storagePool}", + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ] + }, + "get": { + "description": "Returns a specified storage pool. Gets a list of available\nstorage pools by making a list() request.", + "flatPath": "projects/{project}/zones/{zone}/storagePools/{storagePool}", + "httpMethod": "GET", + "id": "compute.storagePools.get", + "parameterOrder": [ + "project", + "zone", + "storagePool" + ], + "parameters": { + "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" + }, + "storagePool": { + "description": "Name of the storage pool to return.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "required": true, + "type": "string" + }, + "zone": { + "description": "The name of the zone for this request.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "required": true, + "type": "string" + } + }, + "path": "projects/{project}/zones/{zone}/storagePools/{storagePool}", + "response": { + "$ref": "StoragePool" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ] + }, + "getIamPolicy": { + "description": "Gets the access control policy for a resource. May be empty if no such\npolicy or resource exists.", + "flatPath": "projects/{project}/zones/{zone}/storagePools/{resource}/getIamPolicy", + "httpMethod": "GET", + "id": "compute.storagePools.getIamPolicy", + "parameterOrder": [ + "project", + "zone", + "resource" + ], + "parameters": { + "optionsRequestedPolicyVersion": { + "description": "Requested IAM Policy version.", + "format": "int32", + "location": "query", + "type": "integer" + }, + "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" + }, + "resource": { + "description": "Name or id of the resource for this request.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "required": true, + "type": "string" + }, + "zone": { + "description": "The name of the zone for this request.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "required": true, + "type": "string" + } + }, + "path": "projects/{project}/zones/{zone}/storagePools/{resource}/getIamPolicy", + "response": { + "$ref": "Policy" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ] + }, + "insert": { + "description": "Creates a storage pool in the specified project using the data\nin the request.", + "flatPath": "projects/{project}/zones/{zone}/storagePools", + "httpMethod": "POST", + "id": "compute.storagePools.insert", + "parameterOrder": [ + "project", + "zone" + ], + "parameters": { + "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\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).", + "location": "query", + "type": "string" + }, + "zone": { + "description": "The name of the zone for this request.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "required": true, + "type": "string" + } + }, + "path": "projects/{project}/zones/{zone}/storagePools", + "request": { + "$ref": "StoragePool" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ] + }, + "list": { + "description": "Retrieves a list of storage pools contained within\nthe specified zone.", + "flatPath": "projects/{project}/zones/{zone}/storagePools", + "httpMethod": "GET", + "id": "compute.storagePools.list", + "parameterOrder": [ + "project", + "zone" + ], + "parameters": { + "filter": { + "description": "A filter expression that filters resources listed in the response. Most\nCompute resources support two types of filter expressions:\nexpressions that support regular expressions and expressions that follow\nAPI improvement proposal AIP-160.\nThese two types of filter expressions cannot be mixed in one request.\n\nIf you want to use AIP-160, your expression must specify the field name, an\noperator, and the value that you want to use for filtering. The value\nmust be a string, a number, or a boolean. The operator\nmust be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`.\n\nFor example, if you are filtering Compute Engine instances, you can\nexclude instances named `example-instance` by specifying\n`name != example-instance`.\n\nThe `:*` comparison can be used to test whether a key has been defined.\nFor example, to find all objects with `owner` label use:\n```\nlabels.owner:*\n```\n\nYou can also filter nested fields. For example, you could specify\n`scheduling.automaticRestart = false` to include instances only\nif they are not scheduled for automatic restarts. You can use filtering\non nested fields to filter based onresource labels.\n\nTo filter on multiple expressions, provide each separate expression within\nparentheses. For example:\n```\n(scheduling.automaticRestart = true)\n(cpuPlatform = \"Intel Skylake\")\n```\nBy default, each expression is an `AND` expression. However, you\ncan include `AND` and `OR` expressions explicitly.\nFor example:\n```\n(cpuPlatform = \"Intel Skylake\") OR\n(cpuPlatform = \"Intel Broadwell\") AND\n(scheduling.automaticRestart = true)\n```\n\nIf you want to use a regular expression, use the `eq` (equal) or `ne`\n(not equal) operator against a single un-parenthesized expression with or\nwithout quotes or against multiple parenthesized expressions. Examples:\n\n`fieldname eq unquoted literal`\n`fieldname eq 'single quoted literal'`\n`fieldname eq \"double quoted literal\"`\n`(fieldname1 eq literal) (fieldname2 ne \"literal\")`\n\nThe literal value is interpreted as a regular expression using GoogleRE2 library syntax.\nThe literal value must match the entire field.\n\nFor example, to filter for instances that do not end with name \"instance\",\nyou would use `name ne .*instance`.\n\nYou cannot combine constraints on multiple fields using regular\nexpressions.", + "location": "query", + "type": "string" + }, + "maxResults": { + "default": "500", + "description": "The maximum number of results per page that should be returned.\nIf the number of available results is larger than `maxResults`,\nCompute Engine returns a `nextPageToken` that can be used to get\nthe next page of results in subsequent list requests. Acceptable values are\n`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\nare returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation\ntimestamp using `orderBy=\"creationTimestamp desc\"`. This sorts\nresults based on the `creationTimestamp` field in\nreverse chronological order (newest result first). Use this to sort\nresources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or\n`creationTimestamp desc` is supported.", + "location": "query", + "type": "string" + }, + "pageToken": { + "description": "Specifies a page token to use. Set `pageToken` to the\n`nextPageToken` returned by a previous list request to get\nthe 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" + }, + "returnPartialSuccess": { + "description": "Opt-in for partial success behavior which provides partial results in case\nof failure. The default value is false.\n\nFor example, when partial success behavior is enabled, aggregatedList for a\nsingle zone scope either returns all resources in the zone or no resources,\nwith an error code.", + "location": "query", + "type": "boolean" + }, + "zone": { + "description": "The name of the zone for this request.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "required": true, + "type": "string" + } + }, + "path": "projects/{project}/zones/{zone}/storagePools", + "response": { + "$ref": "StoragePoolList" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ] + }, + "listDisks": { + "description": "Lists the disks in a specified storage pool.", + "flatPath": "projects/{project}/zones/{zone}/storagePools/{storagePool}/listDisks", + "httpMethod": "GET", + "id": "compute.storagePools.listDisks", + "parameterOrder": [ + "project", + "zone", + "storagePool" + ], + "parameters": { + "filter": { + "description": "A filter expression that filters resources listed in the response. Most\nCompute resources support two types of filter expressions:\nexpressions that support regular expressions and expressions that follow\nAPI improvement proposal AIP-160.\nThese two types of filter expressions cannot be mixed in one request.\n\nIf you want to use AIP-160, your expression must specify the field name, an\noperator, and the value that you want to use for filtering. The value\nmust be a string, a number, or a boolean. The operator\nmust be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`.\n\nFor example, if you are filtering Compute Engine instances, you can\nexclude instances named `example-instance` by specifying\n`name != example-instance`.\n\nThe `:*` comparison can be used to test whether a key has been defined.\nFor example, to find all objects with `owner` label use:\n```\nlabels.owner:*\n```\n\nYou can also filter nested fields. For example, you could specify\n`scheduling.automaticRestart = false` to include instances only\nif they are not scheduled for automatic restarts. You can use filtering\non nested fields to filter based onresource labels.\n\nTo filter on multiple expressions, provide each separate expression within\nparentheses. For example:\n```\n(scheduling.automaticRestart = true)\n(cpuPlatform = \"Intel Skylake\")\n```\nBy default, each expression is an `AND` expression. However, you\ncan include `AND` and `OR` expressions explicitly.\nFor example:\n```\n(cpuPlatform = \"Intel Skylake\") OR\n(cpuPlatform = \"Intel Broadwell\") AND\n(scheduling.automaticRestart = true)\n```\n\nIf you want to use a regular expression, use the `eq` (equal) or `ne`\n(not equal) operator against a single un-parenthesized expression with or\nwithout quotes or against multiple parenthesized expressions. Examples:\n\n`fieldname eq unquoted literal`\n`fieldname eq 'single quoted literal'`\n`fieldname eq \"double quoted literal\"`\n`(fieldname1 eq literal) (fieldname2 ne \"literal\")`\n\nThe literal value is interpreted as a regular expression using GoogleRE2 library syntax.\nThe literal value must match the entire field.\n\nFor example, to filter for instances that do not end with name \"instance\",\nyou would use `name ne .*instance`.\n\nYou cannot combine constraints on multiple fields using regular\nexpressions.", + "location": "query", + "type": "string" + }, + "maxResults": { + "default": "500", + "description": "The maximum number of results per page that should be returned.\nIf the number of available results is larger than `maxResults`,\nCompute Engine returns a `nextPageToken` that can be used to get\nthe next page of results in subsequent list requests. Acceptable values are\n`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\nare returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation\ntimestamp using `orderBy=\"creationTimestamp desc\"`. This sorts\nresults based on the `creationTimestamp` field in\nreverse chronological order (newest result first). Use this to sort\nresources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or\n`creationTimestamp desc` is supported.", + "location": "query", + "type": "string" + }, + "pageToken": { + "description": "Specifies a page token to use. Set `pageToken` to the\n`nextPageToken` returned by a previous list request to get\nthe 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" + }, + "returnPartialSuccess": { + "description": "Opt-in for partial success behavior which provides partial results in case\nof failure. The default value is false.\n\nFor example, when partial success behavior is enabled, aggregatedList for a\nsingle zone scope either returns all resources in the zone or no resources,\nwith an error code.", + "location": "query", + "type": "boolean" + }, + "storagePool": { + "description": "Name of the storage pool to list disks of.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "required": true, + "type": "string" + }, + "zone": { + "description": "The name of the zone for this request.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "required": true, + "type": "string" + } + }, + "path": "projects/{project}/zones/{zone}/storagePools/{storagePool}/listDisks", + "response": { + "$ref": "StoragePoolListDisks" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ] + }, + "setIamPolicy": { + "description": "Sets the access control policy on the specified resource.\nReplaces any existing policy.", + "flatPath": "projects/{project}/zones/{zone}/storagePools/{resource}/setIamPolicy", + "httpMethod": "POST", + "id": "compute.storagePools.setIamPolicy", + "parameterOrder": [ + "project", + "zone", + "resource" + ], + "parameters": { + "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" + }, + "resource": { + "description": "Name or id of the resource for this request.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "required": true, + "type": "string" + }, + "zone": { + "description": "The name of the zone for this request.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "required": true, + "type": "string" + } + }, + "path": "projects/{project}/zones/{zone}/storagePools/{resource}/setIamPolicy", + "request": { + "$ref": "ZoneSetPolicyRequest" + }, + "response": { + "$ref": "Policy" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ] + }, + "testIamPermissions": { + "description": "Returns permissions that a caller has on the specified resource.", + "flatPath": "projects/{project}/zones/{zone}/storagePools/{resource}/testIamPermissions", + "httpMethod": "POST", + "id": "compute.storagePools.testIamPermissions", + "parameterOrder": [ + "project", + "zone", + "resource" + ], + "parameters": { + "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" + }, + "resource": { + "description": "Name or id of the resource for this request.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "required": true, + "type": "string" + }, + "zone": { + "description": "The name of the zone for this request.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "required": true, + "type": "string" + } + }, + "path": "projects/{project}/zones/{zone}/storagePools/{resource}/testIamPermissions", + "request": { + "$ref": "TestPermissionsRequest" + }, + "response": { + "$ref": "TestPermissionsResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ] + }, + "update": { + "description": "Updates the specified storagePool with the data included in the request.\nThe update is performed only on selected fields included as part\nof update-mask. Only the following fields can be modified:\npool_provisioned_capacity_gb, pool_provisioned_iops and\npool_provisioned_throughput.", + "flatPath": "projects/{project}/zones/{zone}/storagePools/{storagePool}", + "httpMethod": "PATCH", + "id": "compute.storagePools.update", + "parameterOrder": [ + "project", + "zone", + "storagePool" + ], + "parameters": { + "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\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).", + "location": "query", + "type": "string" + }, + "storagePool": { + "description": "The storagePool name for this request.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "required": true, + "type": "string" + }, + "updateMask": { + "description": "update_mask indicates fields to be updated as part of this request.", + "format": "google-fieldmask", + "location": "query", + "type": "string" + }, + "zone": { + "description": "The name of the zone for this request.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "required": true, + "type": "string" + } + }, + "path": "projects/{project}/zones/{zone}/storagePools/{storagePool}", + "request": { + "$ref": "StoragePool" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ] + } + } + }, + "subnetworks": { + "methods": { + "aggregatedList": { + "description": "Retrieves an aggregated list of subnetworks.\n\nTo prevent failure, Google recommends that you set the\n`returnPartialSuccess` parameter to `true`.", + "flatPath": "projects/{project}/aggregated/subnetworks", + "httpMethod": "GET", + "id": "compute.subnetworks.aggregatedList", + "parameterOrder": [ + "project" + ], + "parameters": { + "filter": { + "description": "A filter expression that filters resources listed in the response. Most\nCompute resources support two types of filter expressions:\nexpressions that support regular expressions and expressions that follow\nAPI improvement proposal AIP-160.\nThese two types of filter expressions cannot be mixed in one request.\n\nIf you want to use AIP-160, your expression must specify the field name, an\noperator, and the value that you want to use for filtering. The value\nmust be a string, a number, or a boolean. The operator\nmust be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`.\n\nFor example, if you are filtering Compute Engine instances, you can\nexclude instances named `example-instance` by specifying\n`name != example-instance`.\n\nThe `:*` comparison can be used to test whether a key has been defined.\nFor example, to find all objects with `owner` label use:\n```\nlabels.owner:*\n```\n\nYou can also filter nested fields. For example, you could specify\n`scheduling.automaticRestart = false` to include instances only\nif they are not scheduled for automatic restarts. You can use filtering\non nested fields to filter based onresource labels.\n\nTo filter on multiple expressions, provide each separate expression within\nparentheses. For example:\n```\n(scheduling.automaticRestart = true)\n(cpuPlatform = \"Intel Skylake\")\n```\nBy default, each expression is an `AND` expression. However, you\ncan include `AND` and `OR` expressions explicitly.\nFor example:\n```\n(cpuPlatform = \"Intel Skylake\") OR\n(cpuPlatform = \"Intel Broadwell\") AND\n(scheduling.automaticRestart = true)\n```\n\nIf you want to use a regular expression, use the `eq` (equal) or `ne`\n(not equal) operator against a single un-parenthesized expression with or\nwithout quotes or against multiple parenthesized expressions. Examples:\n\n`fieldname eq unquoted literal`\n`fieldname eq 'single quoted literal'`\n`fieldname eq \"double quoted literal\"`\n`(fieldname1 eq literal) (fieldname2 ne \"literal\")`\n\nThe literal value is interpreted as a regular expression using GoogleRE2 library syntax.\nThe literal value must match the entire field.\n\nFor example, to filter for instances that do not end with name \"instance\",\nyou would use `name ne .*instance`.\n\nYou cannot combine constraints on multiple fields using regular\nexpressions.", + "location": "query", + "type": "string" + }, + "includeAllScopes": { + "description": "Indicates whether every visible scope for each scope type (zone, region,\nglobal) should be included in the response. For new resource types added\nafter this field, the flag has no effect as new resource types will always\ninclude every visible scope for each scope type in response. For resource\ntypes which predate this field, if this flag is omitted or false, only\nscopes of the scope types where the resource type is expected to be found\nwill be included.", + "location": "query", + "type": "boolean" + }, + "maxResults": { + "default": "500", + "description": "The maximum number of results per page that should be returned.\nIf the number of available results is larger than `maxResults`,\nCompute Engine returns a `nextPageToken` that can be used to get\nthe next page of results in subsequent list requests. Acceptable values are\n`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\nare returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation\ntimestamp using `orderBy=\"creationTimestamp desc\"`. This sorts\nresults based on the `creationTimestamp` field in\nreverse chronological order (newest result first). Use this to sort\nresources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or\n`creationTimestamp desc` is supported.", + "location": "query", + "type": "string" + }, + "pageToken": { + "description": "Specifies a page token to use. Set `pageToken` to the\n`nextPageToken` returned by a previous list request to get\nthe 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" + }, + "returnPartialSuccess": { + "description": "Opt-in for partial success behavior which provides partial results in case\nof failure. The default value is false.\n\nFor example, when partial success behavior is enabled, aggregatedList for a\nsingle zone scope either returns all resources in the zone or no resources,\nwith an error code.", + "location": "query", + "type": "boolean" + }, + "serviceProjectNumber": { + "description": "The Shared VPC service project id or service project number for which\naggregated list request is invoked for subnetworks list-usable api.", + "format": "int64", + "location": "query", + "type": "string" + }, + "views": { + "description": "Defines the extra views returned back in the subnetwork resource.\nSupported values:\n \n - WITH_UTILIZATION: Utilization data is included in the\n response.", + "enum": [ + "DEFAULT", + "WITH_UTILIZATION" + ], + "enumDescriptions": [ + "", + "Utilization data is included in the response." + ], + "location": "query", + "repeated": true, + "type": "string" + } + }, + "path": "projects/{project}/aggregated/subnetworks", + "response": { + "$ref": "SubnetworkAggregatedList" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ] + }, + "delete": { + "description": "Deletes the specified subnetwork.", + "flatPath": "projects/{project}/regions/{region}/subnetworks/{subnetwork}", + "httpMethod": "DELETE", + "id": "compute.subnetworks.delete", + "parameterOrder": [ + "project", + "region", + "subnetwork" + ], + "parameters": { + "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 scoping this request.", + "location": "path", + "pattern": "[a-z](?:[-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\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).", + "location": "query", + "type": "string" + }, + "subnetwork": { + "description": "Name of the Subnetwork resource to delete.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "required": true, + "type": "string" + } + }, + "path": "projects/{project}/regions/{region}/subnetworks/{subnetwork}", + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ] + }, + "expandIpCidrRange": { + "description": "Expands the IP CIDR range of the subnetwork to a specified value.", + "flatPath": "projects/{project}/regions/{region}/subnetworks/{subnetwork}/expandIpCidrRange", + "httpMethod": "POST", + "id": "compute.subnetworks.expandIpCidrRange", + "parameterOrder": [ + "project", + "region", + "subnetwork" + ], + "parameters": { + "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 scoping this request.", + "location": "path", + "pattern": "[a-z](?:[-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\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).", + "location": "query", + "type": "string" + }, + "subnetwork": { + "description": "Name of the Subnetwork resource to update.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "required": true, + "type": "string" + } + }, + "path": "projects/{project}/regions/{region}/subnetworks/{subnetwork}/expandIpCidrRange", + "request": { + "$ref": "SubnetworksExpandIpCidrRangeRequest" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ] + }, + "get": { + "description": "Returns the specified subnetwork.", + "flatPath": "projects/{project}/regions/{region}/subnetworks/{subnetwork}", + "httpMethod": "GET", + "id": "compute.subnetworks.get", + "parameterOrder": [ + "project", + "region", + "subnetwork" + ], + "parameters": { + "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 scoping this request.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "required": true, + "type": "string" + }, + "subnetwork": { + "description": "Name of the Subnetwork resource to return.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "required": true, + "type": "string" + }, + "views": { + "description": "Defines the extra views returned back in the subnetwork resource.\nSupported values:\n \n - WITH_UTILIZATION: Utilization data is included in the\n response.", + "enum": [ + "DEFAULT", + "WITH_UTILIZATION" + ], + "enumDescriptions": [ + "", + "Utilization data is included in the response." + ], + "location": "query", + "repeated": true, + "type": "string" + } + }, + "path": "projects/{project}/regions/{region}/subnetworks/{subnetwork}", + "response": { + "$ref": "Subnetwork" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ] + }, + "getIamPolicy": { + "description": "Gets the access control policy for a resource. May be empty if no such\npolicy or resource exists.", + "flatPath": "projects/{project}/regions/{region}/subnetworks/{resource}/getIamPolicy", + "httpMethod": "GET", + "id": "compute.subnetworks.getIamPolicy", + "parameterOrder": [ + "project", + "region", + "resource" + ], + "parameters": { + "optionsRequestedPolicyVersion": { + "description": "Requested IAM Policy version.", + "format": "int32", + "location": "query", + "type": "integer" + }, + "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": "The name of the region for this request.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "required": true, + "type": "string" + }, + "resource": { + "description": "Name or id of the resource for this request.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "required": true, + "type": "string" + } + }, + "path": "projects/{project}/regions/{region}/subnetworks/{resource}/getIamPolicy", + "response": { + "$ref": "Policy" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ] + }, + "insert": { + "description": "Creates a subnetwork in the specified project using the data\nincluded in the request.", + "flatPath": "projects/{project}/regions/{region}/subnetworks", + "httpMethod": "POST", + "id": "compute.subnetworks.insert", + "parameterOrder": [ + "project", + "region" + ], + "parameters": { + "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 scoping this request.", + "location": "path", + "pattern": "[a-z](?:[-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\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).", + "location": "query", + "type": "string" + } + }, + "path": "projects/{project}/regions/{region}/subnetworks", + "request": { + "$ref": "Subnetwork" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ] + }, + "list": { + "description": "Retrieves a list of subnetworks available to the specified\nproject.", + "flatPath": "projects/{project}/regions/{region}/subnetworks", + "httpMethod": "GET", + "id": "compute.subnetworks.list", + "parameterOrder": [ + "project", + "region" + ], + "parameters": { + "filter": { + "description": "A filter expression that filters resources listed in the response. Most\nCompute resources support two types of filter expressions:\nexpressions that support regular expressions and expressions that follow\nAPI improvement proposal AIP-160.\nThese two types of filter expressions cannot be mixed in one request.\n\nIf you want to use AIP-160, your expression must specify the field name, an\noperator, and the value that you want to use for filtering. The value\nmust be a string, a number, or a boolean. The operator\nmust be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`.\n\nFor example, if you are filtering Compute Engine instances, you can\nexclude instances named `example-instance` by specifying\n`name != example-instance`.\n\nThe `:*` comparison can be used to test whether a key has been defined.\nFor example, to find all objects with `owner` label use:\n```\nlabels.owner:*\n```\n\nYou can also filter nested fields. For example, you could specify\n`scheduling.automaticRestart = false` to include instances only\nif they are not scheduled for automatic restarts. You can use filtering\non nested fields to filter based onresource labels.\n\nTo filter on multiple expressions, provide each separate expression within\nparentheses. For example:\n```\n(scheduling.automaticRestart = true)\n(cpuPlatform = \"Intel Skylake\")\n```\nBy default, each expression is an `AND` expression. However, you\ncan include `AND` and `OR` expressions explicitly.\nFor example:\n```\n(cpuPlatform = \"Intel Skylake\") OR\n(cpuPlatform = \"Intel Broadwell\") AND\n(scheduling.automaticRestart = true)\n```\n\nIf you want to use a regular expression, use the `eq` (equal) or `ne`\n(not equal) operator against a single un-parenthesized expression with or\nwithout quotes or against multiple parenthesized expressions. Examples:\n\n`fieldname eq unquoted literal`\n`fieldname eq 'single quoted literal'`\n`fieldname eq \"double quoted literal\"`\n`(fieldname1 eq literal) (fieldname2 ne \"literal\")`\n\nThe literal value is interpreted as a regular expression using GoogleRE2 library syntax.\nThe literal value must match the entire field.\n\nFor example, to filter for instances that do not end with name \"instance\",\nyou would use `name ne .*instance`.\n\nYou cannot combine constraints on multiple fields using regular\nexpressions.", + "location": "query", + "type": "string" + }, + "maxResults": { + "default": "500", + "description": "The maximum number of results per page that should be returned.\nIf the number of available results is larger than `maxResults`,\nCompute Engine returns a `nextPageToken` that can be used to get\nthe next page of results in subsequent list requests. Acceptable values are\n`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\nare returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation\ntimestamp using `orderBy=\"creationTimestamp desc\"`. This sorts\nresults based on the `creationTimestamp` field in\nreverse chronological order (newest result first). Use this to sort\nresources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or\n`creationTimestamp desc` is supported.", + "location": "query", + "type": "string" + }, + "pageToken": { + "description": "Specifies a page token to use. Set `pageToken` to the\n`nextPageToken` returned by a previous list request to get\nthe 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 scoping this request.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "required": true, + "type": "string" + }, + "returnPartialSuccess": { + "description": "Opt-in for partial success behavior which provides partial results in case\nof failure. The default value is false.\n\nFor example, when partial success behavior is enabled, aggregatedList for a\nsingle zone scope either returns all resources in the zone or no resources,\nwith an error code.", + "location": "query", + "type": "boolean" + }, + "views": { + "description": "Defines the extra views returned back in the subnetwork resource.\nSupported values:\n \n - WITH_UTILIZATION: Utilization data is included in the\n response.", + "enum": [ + "DEFAULT", + "WITH_UTILIZATION" + ], + "enumDescriptions": [ + "", + "Utilization data is included in the response." + ], + "location": "query", + "repeated": true, + "type": "string" + } + }, + "path": "projects/{project}/regions/{region}/subnetworks", + "response": { + "$ref": "SubnetworkList" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ] + }, + "listUsable": { + "description": "Retrieves an aggregated list of all usable subnetworks in the project.", + "flatPath": "projects/{project}/aggregated/subnetworks/listUsable", + "httpMethod": "GET", + "id": "compute.subnetworks.listUsable", + "parameterOrder": [ + "project" + ], + "parameters": { + "filter": { + "description": "A filter expression that filters resources listed in the response. Most\nCompute resources support two types of filter expressions:\nexpressions that support regular expressions and expressions that follow\nAPI improvement proposal AIP-160.\nThese two types of filter expressions cannot be mixed in one request.\n\nIf you want to use AIP-160, your expression must specify the field name, an\noperator, and the value that you want to use for filtering. The value\nmust be a string, a number, or a boolean. The operator\nmust be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`.\n\nFor example, if you are filtering Compute Engine instances, you can\nexclude instances named `example-instance` by specifying\n`name != example-instance`.\n\nThe `:*` comparison can be used to test whether a key has been defined.\nFor example, to find all objects with `owner` label use:\n```\nlabels.owner:*\n```\n\nYou can also filter nested fields. For example, you could specify\n`scheduling.automaticRestart = false` to include instances only\nif they are not scheduled for automatic restarts. You can use filtering\non nested fields to filter based onresource labels.\n\nTo filter on multiple expressions, provide each separate expression within\nparentheses. For example:\n```\n(scheduling.automaticRestart = true)\n(cpuPlatform = \"Intel Skylake\")\n```\nBy default, each expression is an `AND` expression. However, you\ncan include `AND` and `OR` expressions explicitly.\nFor example:\n```\n(cpuPlatform = \"Intel Skylake\") OR\n(cpuPlatform = \"Intel Broadwell\") AND\n(scheduling.automaticRestart = true)\n```\n\nIf you want to use a regular expression, use the `eq` (equal) or `ne`\n(not equal) operator against a single un-parenthesized expression with or\nwithout quotes or against multiple parenthesized expressions. Examples:\n\n`fieldname eq unquoted literal`\n`fieldname eq 'single quoted literal'`\n`fieldname eq \"double quoted literal\"`\n`(fieldname1 eq literal) (fieldname2 ne \"literal\")`\n\nThe literal value is interpreted as a regular expression using GoogleRE2 library syntax.\nThe literal value must match the entire field.\n\nFor example, to filter for instances that do not end with name \"instance\",\nyou would use `name ne .*instance`.\n\nYou cannot combine constraints on multiple fields using regular\nexpressions.", + "location": "query", + "type": "string" + }, + "maxResults": { + "default": "500", + "description": "The maximum number of results per page that should be returned.\nIf the number of available results is larger than `maxResults`,\nCompute Engine returns a `nextPageToken` that can be used to get\nthe next page of results in subsequent list requests. Acceptable values are\n`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\nare returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation\ntimestamp using `orderBy=\"creationTimestamp desc\"`. This sorts\nresults based on the `creationTimestamp` field in\nreverse chronological order (newest result first). Use this to sort\nresources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or\n`creationTimestamp desc` is supported.", + "location": "query", + "type": "string" + }, + "pageToken": { + "description": "Specifies a page token to use. Set `pageToken` to the\n`nextPageToken` returned by a previous list request to get\nthe 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" + }, + "returnPartialSuccess": { + "description": "Opt-in for partial success behavior which provides partial results in case\nof failure. The default value is false.\n\nFor example, when partial success behavior is enabled, aggregatedList for a\nsingle zone scope either returns all resources in the zone or no resources,\nwith an error code.", + "location": "query", + "type": "boolean" + }, + "serviceProject": { + "description": "The project id or project number in which the subnetwork is intended to be\nused. Only applied for Shared VPC. See [Shared VPC\ndocumentation](https://cloud.google.com/vpc/docs/shared-vpc/)", + "location": "query", + "type": "string" + } + }, + "path": "projects/{project}/aggregated/subnetworks/listUsable", + "response": { + "$ref": "UsableSubnetworksAggregatedList" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ] + }, + "patch": { + "description": "Patches the specified subnetwork with the data included in the request.\nOnly certain fields can be updated with a patch request\nas indicated in the field descriptions.\nYou must specify the current fingerprint of the\nsubnetwork resource being patched.", + "flatPath": "projects/{project}/regions/{region}/subnetworks/{subnetwork}", + "httpMethod": "PATCH", + "id": "compute.subnetworks.patch", + "parameterOrder": [ + "project", + "region", + "subnetwork" + ], + "parameters": { + "drainTimeoutSeconds": { + "description": "The drain timeout specifies the upper bound in seconds on the amount of\ntime allowed to drain connections from the current ACTIVE subnetwork\nto the current BACKUP subnetwork. The drain timeout is only applicable\nwhen the following conditions are true:\n - the subnetwork being patched has purpose = INTERNAL_HTTPS_LOAD_BALANCER\n - the subnetwork being patched has role = BACKUP\n - the patch request is setting the role to ACTIVE. Note that after this\n patch operation the roles of the ACTIVE and BACKUP subnetworks will be\n swapped.", + "format": "int32", + "location": "query", + "type": "integer" + }, + "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 scoping this request.", + "location": "path", + "pattern": "[a-z](?:[-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\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).", + "location": "query", + "type": "string" + }, + "subnetwork": { + "description": "Name of the Subnetwork resource to patch.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "required": true, + "type": "string" + } + }, + "path": "projects/{project}/regions/{region}/subnetworks/{subnetwork}", + "request": { + "$ref": "Subnetwork" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ] + }, + "setIamPolicy": { + "description": "Sets the access control policy on the specified resource.\nReplaces any existing policy.", + "flatPath": "projects/{project}/regions/{region}/subnetworks/{resource}/setIamPolicy", + "httpMethod": "POST", + "id": "compute.subnetworks.setIamPolicy", + "parameterOrder": [ + "project", + "region", + "resource" + ], + "parameters": { + "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": "The name of the region for this request.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "required": true, + "type": "string" + }, + "resource": { + "description": "Name or id of the resource for this request.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "required": true, + "type": "string" + } + }, + "path": "projects/{project}/regions/{region}/subnetworks/{resource}/setIamPolicy", + "request": { + "$ref": "RegionSetPolicyRequest" + }, + "response": { + "$ref": "Policy" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ] + }, + "setPrivateIpGoogleAccess": { + "description": "Set whether VMs in this subnet can access Google services without assigning\nexternal IP addresses through Private Google Access.", + "flatPath": "projects/{project}/regions/{region}/subnetworks/{subnetwork}/setPrivateIpGoogleAccess", + "httpMethod": "POST", + "id": "compute.subnetworks.setPrivateIpGoogleAccess", + "parameterOrder": [ + "project", + "region", + "subnetwork" + ], + "parameters": { + "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 scoping this request.", + "location": "path", + "pattern": "[a-z](?:[-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\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).", + "location": "query", + "type": "string" + }, + "subnetwork": { + "description": "Name of the Subnetwork resource.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "required": true, + "type": "string" + } + }, + "path": "projects/{project}/regions/{region}/subnetworks/{subnetwork}/setPrivateIpGoogleAccess", + "request": { + "$ref": "SubnetworksSetPrivateIpGoogleAccessRequest" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ] + }, + "testIamPermissions": { + "description": "Returns permissions that a caller has on the specified resource.", + "flatPath": "projects/{project}/regions/{region}/subnetworks/{resource}/testIamPermissions", + "httpMethod": "POST", + "id": "compute.subnetworks.testIamPermissions", + "parameterOrder": [ + "project", + "region", + "resource" + ], + "parameters": { + "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": "The name of the region for this request.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "required": true, + "type": "string" + }, + "resource": { + "description": "Name or id of the resource for this request.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "required": true, + "type": "string" + } + }, + "path": "projects/{project}/regions/{region}/subnetworks/{resource}/testIamPermissions", + "request": { + "$ref": "TestPermissionsRequest" + }, + "response": { + "$ref": "TestPermissionsResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ] + } + } + }, + "targetGrpcProxies": { + "methods": { + "delete": { + "description": "Deletes the specified TargetGrpcProxy in the given scope", + "flatPath": "projects/{project}/global/targetGrpcProxies/{targetGrpcProxy}", + "httpMethod": "DELETE", + "id": "compute.targetGrpcProxies.delete", + "parameterOrder": [ + "project", + "targetGrpcProxy" + ], + "parameters": { + "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\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).", + "location": "query", + "type": "string" + }, + "targetGrpcProxy": { + "description": "Name of the TargetGrpcProxy resource to delete.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "required": true, + "type": "string" + } + }, + "path": "projects/{project}/global/targetGrpcProxies/{targetGrpcProxy}", + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ] + }, + "get": { + "description": "Returns the specified TargetGrpcProxy resource in the given scope.", + "flatPath": "projects/{project}/global/targetGrpcProxies/{targetGrpcProxy}", + "httpMethod": "GET", + "id": "compute.targetGrpcProxies.get", + "parameterOrder": [ + "project", + "targetGrpcProxy" + ], + "parameters": { + "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" + }, + "targetGrpcProxy": { + "description": "Name of the TargetGrpcProxy resource to return.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "required": true, + "type": "string" + } + }, + "path": "projects/{project}/global/targetGrpcProxies/{targetGrpcProxy}", + "response": { + "$ref": "TargetGrpcProxy" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ] + }, + "insert": { + "description": "Creates a TargetGrpcProxy in the specified project in the given scope\nusing the parameters that are included in the request.", + "flatPath": "projects/{project}/global/targetGrpcProxies", + "httpMethod": "POST", + "id": "compute.targetGrpcProxies.insert", + "parameterOrder": [ + "project" + ], + "parameters": { + "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\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).", + "location": "query", + "type": "string" + } + }, + "path": "projects/{project}/global/targetGrpcProxies", + "request": { + "$ref": "TargetGrpcProxy" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ] + }, + "list": { + "description": "Lists the TargetGrpcProxies for a project in the given scope.", + "flatPath": "projects/{project}/global/targetGrpcProxies", + "httpMethod": "GET", + "id": "compute.targetGrpcProxies.list", + "parameterOrder": [ + "project" + ], + "parameters": { + "filter": { + "description": "A filter expression that filters resources listed in the response. Most\nCompute resources support two types of filter expressions:\nexpressions that support regular expressions and expressions that follow\nAPI improvement proposal AIP-160.\nThese two types of filter expressions cannot be mixed in one request.\n\nIf you want to use AIP-160, your expression must specify the field name, an\noperator, and the value that you want to use for filtering. The value\nmust be a string, a number, or a boolean. The operator\nmust be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`.\n\nFor example, if you are filtering Compute Engine instances, you can\nexclude instances named `example-instance` by specifying\n`name != example-instance`.\n\nThe `:*` comparison can be used to test whether a key has been defined.\nFor example, to find all objects with `owner` label use:\n```\nlabels.owner:*\n```\n\nYou can also filter nested fields. For example, you could specify\n`scheduling.automaticRestart = false` to include instances only\nif they are not scheduled for automatic restarts. You can use filtering\non nested fields to filter based onresource labels.\n\nTo filter on multiple expressions, provide each separate expression within\nparentheses. For example:\n```\n(scheduling.automaticRestart = true)\n(cpuPlatform = \"Intel Skylake\")\n```\nBy default, each expression is an `AND` expression. However, you\ncan include `AND` and `OR` expressions explicitly.\nFor example:\n```\n(cpuPlatform = \"Intel Skylake\") OR\n(cpuPlatform = \"Intel Broadwell\") AND\n(scheduling.automaticRestart = true)\n```\n\nIf you want to use a regular expression, use the `eq` (equal) or `ne`\n(not equal) operator against a single un-parenthesized expression with or\nwithout quotes or against multiple parenthesized expressions. Examples:\n\n`fieldname eq unquoted literal`\n`fieldname eq 'single quoted literal'`\n`fieldname eq \"double quoted literal\"`\n`(fieldname1 eq literal) (fieldname2 ne \"literal\")`\n\nThe literal value is interpreted as a regular expression using GoogleRE2 library syntax.\nThe literal value must match the entire field.\n\nFor example, to filter for instances that do not end with name \"instance\",\nyou would use `name ne .*instance`.\n\nYou cannot combine constraints on multiple fields using regular\nexpressions.", + "location": "query", + "type": "string" + }, + "maxResults": { + "default": "500", + "description": "The maximum number of results per page that should be returned.\nIf the number of available results is larger than `maxResults`,\nCompute Engine returns a `nextPageToken` that can be used to get\nthe next page of results in subsequent list requests. Acceptable values are\n`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\nare returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation\ntimestamp using `orderBy=\"creationTimestamp desc\"`. This sorts\nresults based on the `creationTimestamp` field in\nreverse chronological order (newest result first). Use this to sort\nresources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or\n`creationTimestamp desc` is supported.", + "location": "query", + "type": "string" + }, + "pageToken": { + "description": "Specifies a page token to use. Set `pageToken` to the\n`nextPageToken` returned by a previous list request to get\nthe 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" + }, + "returnPartialSuccess": { + "description": "Opt-in for partial success behavior which provides partial results in case\nof failure. The default value is false.\n\nFor example, when partial success behavior is enabled, aggregatedList for a\nsingle zone scope either returns all resources in the zone or no resources,\nwith an error code.", + "location": "query", + "type": "boolean" + } + }, + "path": "projects/{project}/global/targetGrpcProxies", + "response": { + "$ref": "TargetGrpcProxyList" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ] + }, + "patch": { + "description": "Patches the specified TargetGrpcProxy resource with the data included in\nthe request. This method supports PATCH\nsemantics and usesJSON merge\npatch format and processing rules.", + "flatPath": "projects/{project}/global/targetGrpcProxies/{targetGrpcProxy}", + "httpMethod": "PATCH", + "id": "compute.targetGrpcProxies.patch", + "parameterOrder": [ + "project", + "targetGrpcProxy" + ], + "parameters": { + "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\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).", + "location": "query", + "type": "string" + }, + "targetGrpcProxy": { + "description": "Name of the TargetGrpcProxy resource to patch.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "required": true, + "type": "string" + } + }, + "path": "projects/{project}/global/targetGrpcProxies/{targetGrpcProxy}", + "request": { + "$ref": "TargetGrpcProxy" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ] + } + } + }, + "targetHttpProxies": { + "methods": { + "aggregatedList": { + "description": "Retrieves the list of all TargetHttpProxy resources, regional and global,\navailable to the specified project.\n\nTo prevent failure, Google recommends that you set the\n`returnPartialSuccess` parameter to `true`.", + "flatPath": "projects/{project}/aggregated/targetHttpProxies", + "httpMethod": "GET", + "id": "compute.targetHttpProxies.aggregatedList", + "parameterOrder": [ + "project" + ], + "parameters": { + "filter": { + "description": "A filter expression that filters resources listed in the response. Most\nCompute resources support two types of filter expressions:\nexpressions that support regular expressions and expressions that follow\nAPI improvement proposal AIP-160.\nThese two types of filter expressions cannot be mixed in one request.\n\nIf you want to use AIP-160, your expression must specify the field name, an\noperator, and the value that you want to use for filtering. The value\nmust be a string, a number, or a boolean. The operator\nmust be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`.\n\nFor example, if you are filtering Compute Engine instances, you can\nexclude instances named `example-instance` by specifying\n`name != example-instance`.\n\nThe `:*` comparison can be used to test whether a key has been defined.\nFor example, to find all objects with `owner` label use:\n```\nlabels.owner:*\n```\n\nYou can also filter nested fields. For example, you could specify\n`scheduling.automaticRestart = false` to include instances only\nif they are not scheduled for automatic restarts. You can use filtering\non nested fields to filter based onresource labels.\n\nTo filter on multiple expressions, provide each separate expression within\nparentheses. For example:\n```\n(scheduling.automaticRestart = true)\n(cpuPlatform = \"Intel Skylake\")\n```\nBy default, each expression is an `AND` expression. However, you\ncan include `AND` and `OR` expressions explicitly.\nFor example:\n```\n(cpuPlatform = \"Intel Skylake\") OR\n(cpuPlatform = \"Intel Broadwell\") AND\n(scheduling.automaticRestart = true)\n```\n\nIf you want to use a regular expression, use the `eq` (equal) or `ne`\n(not equal) operator against a single un-parenthesized expression with or\nwithout quotes or against multiple parenthesized expressions. Examples:\n\n`fieldname eq unquoted literal`\n`fieldname eq 'single quoted literal'`\n`fieldname eq \"double quoted literal\"`\n`(fieldname1 eq literal) (fieldname2 ne \"literal\")`\n\nThe literal value is interpreted as a regular expression using GoogleRE2 library syntax.\nThe literal value must match the entire field.\n\nFor example, to filter for instances that do not end with name \"instance\",\nyou would use `name ne .*instance`.\n\nYou cannot combine constraints on multiple fields using regular\nexpressions.", + "location": "query", + "type": "string" + }, + "includeAllScopes": { + "description": "Indicates whether every visible scope for each scope type (zone, region,\nglobal) should be included in the response. For new resource types added\nafter this field, the flag has no effect as new resource types will always\ninclude every visible scope for each scope type in response. For resource\ntypes which predate this field, if this flag is omitted or false, only\nscopes of the scope types where the resource type is expected to be found\nwill be included.", + "location": "query", + "type": "boolean" + }, + "maxResults": { + "default": "500", + "description": "The maximum number of results per page that should be returned.\nIf the number of available results is larger than `maxResults`,\nCompute Engine returns a `nextPageToken` that can be used to get\nthe next page of results in subsequent list requests. Acceptable values are\n`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\nare returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation\ntimestamp using `orderBy=\"creationTimestamp desc\"`. This sorts\nresults based on the `creationTimestamp` field in\nreverse chronological order (newest result first). Use this to sort\nresources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or\n`creationTimestamp desc` is supported.", + "location": "query", + "type": "string" + }, + "pageToken": { + "description": "Specifies a page token to use. Set `pageToken` to the\n`nextPageToken` returned by a previous list request to get\nthe next page of results.", + "location": "query", + "type": "string" + }, + "project": { + "description": "Name of the project scoping 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" + }, + "returnPartialSuccess": { + "description": "Opt-in for partial success behavior which provides partial results in case\nof failure. The default value is false.\n\nFor example, when partial success behavior is enabled, aggregatedList for a\nsingle zone scope either returns all resources in the zone or no resources,\nwith an error code.", + "location": "query", + "type": "boolean" + }, + "serviceProjectNumber": { + "description": "The Shared VPC service project id or service project number for which\naggregated list request is invoked for subnetworks list-usable api.", + "format": "int64", + "location": "query", + "type": "string" + } + }, + "path": "projects/{project}/aggregated/targetHttpProxies", + "response": { + "$ref": "TargetHttpProxyAggregatedList" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ] + }, + "delete": { + "description": "Deletes the specified TargetHttpProxy resource.", + "flatPath": "projects/{project}/global/targetHttpProxies/{targetHttpProxy}", + "httpMethod": "DELETE", + "id": "compute.targetHttpProxies.delete", + "parameterOrder": [ + "project", + "targetHttpProxy" + ], + "parameters": { + "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\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).", + "location": "query", + "type": "string" + }, + "targetHttpProxy": { + "description": "Name of the TargetHttpProxy resource to delete.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "required": true, + "type": "string" + } + }, + "path": "projects/{project}/global/targetHttpProxies/{targetHttpProxy}", + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ] + }, + "get": { + "description": "Returns the specified TargetHttpProxy resource.", + "flatPath": "projects/{project}/global/targetHttpProxies/{targetHttpProxy}", + "httpMethod": "GET", + "id": "compute.targetHttpProxies.get", + "parameterOrder": [ + "project", + "targetHttpProxy" + ], + "parameters": { + "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" + }, + "targetHttpProxy": { + "description": "Name of the TargetHttpProxy resource to return.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "required": true, + "type": "string" + } + }, + "path": "projects/{project}/global/targetHttpProxies/{targetHttpProxy}", + "response": { + "$ref": "TargetHttpProxy" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ] + }, + "insert": { + "description": "Creates a TargetHttpProxy resource in the specified\nproject using the data included in the request.", + "flatPath": "projects/{project}/global/targetHttpProxies", + "httpMethod": "POST", + "id": "compute.targetHttpProxies.insert", + "parameterOrder": [ + "project" + ], + "parameters": { + "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\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).", + "location": "query", + "type": "string" + } + }, + "path": "projects/{project}/global/targetHttpProxies", + "request": { + "$ref": "TargetHttpProxy" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ] + }, + "list": { + "description": "Retrieves the list of TargetHttpProxy resources available\nto the specified project.", + "flatPath": "projects/{project}/global/targetHttpProxies", + "httpMethod": "GET", + "id": "compute.targetHttpProxies.list", + "parameterOrder": [ + "project" + ], + "parameters": { + "filter": { + "description": "A filter expression that filters resources listed in the response. Most\nCompute resources support two types of filter expressions:\nexpressions that support regular expressions and expressions that follow\nAPI improvement proposal AIP-160.\nThese two types of filter expressions cannot be mixed in one request.\n\nIf you want to use AIP-160, your expression must specify the field name, an\noperator, and the value that you want to use for filtering. The value\nmust be a string, a number, or a boolean. The operator\nmust be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`.\n\nFor example, if you are filtering Compute Engine instances, you can\nexclude instances named `example-instance` by specifying\n`name != example-instance`.\n\nThe `:*` comparison can be used to test whether a key has been defined.\nFor example, to find all objects with `owner` label use:\n```\nlabels.owner:*\n```\n\nYou can also filter nested fields. For example, you could specify\n`scheduling.automaticRestart = false` to include instances only\nif they are not scheduled for automatic restarts. You can use filtering\non nested fields to filter based onresource labels.\n\nTo filter on multiple expressions, provide each separate expression within\nparentheses. For example:\n```\n(scheduling.automaticRestart = true)\n(cpuPlatform = \"Intel Skylake\")\n```\nBy default, each expression is an `AND` expression. However, you\ncan include `AND` and `OR` expressions explicitly.\nFor example:\n```\n(cpuPlatform = \"Intel Skylake\") OR\n(cpuPlatform = \"Intel Broadwell\") AND\n(scheduling.automaticRestart = true)\n```\n\nIf you want to use a regular expression, use the `eq` (equal) or `ne`\n(not equal) operator against a single un-parenthesized expression with or\nwithout quotes or against multiple parenthesized expressions. Examples:\n\n`fieldname eq unquoted literal`\n`fieldname eq 'single quoted literal'`\n`fieldname eq \"double quoted literal\"`\n`(fieldname1 eq literal) (fieldname2 ne \"literal\")`\n\nThe literal value is interpreted as a regular expression using GoogleRE2 library syntax.\nThe literal value must match the entire field.\n\nFor example, to filter for instances that do not end with name \"instance\",\nyou would use `name ne .*instance`.\n\nYou cannot combine constraints on multiple fields using regular\nexpressions.", + "location": "query", + "type": "string" + }, + "maxResults": { + "default": "500", + "description": "The maximum number of results per page that should be returned.\nIf the number of available results is larger than `maxResults`,\nCompute Engine returns a `nextPageToken` that can be used to get\nthe next page of results in subsequent list requests. Acceptable values are\n`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\nare returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation\ntimestamp using `orderBy=\"creationTimestamp desc\"`. This sorts\nresults based on the `creationTimestamp` field in\nreverse chronological order (newest result first). Use this to sort\nresources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or\n`creationTimestamp desc` is supported.", + "location": "query", + "type": "string" + }, + "pageToken": { + "description": "Specifies a page token to use. Set `pageToken` to the\n`nextPageToken` returned by a previous list request to get\nthe 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" + }, + "returnPartialSuccess": { + "description": "Opt-in for partial success behavior which provides partial results in case\nof failure. The default value is false.\n\nFor example, when partial success behavior is enabled, aggregatedList for a\nsingle zone scope either returns all resources in the zone or no resources,\nwith an error code.", + "location": "query", + "type": "boolean" + } + }, + "path": "projects/{project}/global/targetHttpProxies", + "response": { + "$ref": "TargetHttpProxyList" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ] + }, + "patch": { + "description": "Patches the specified TargetHttpProxy resource with the data included in\nthe request. This method supports PATCH\nsemantics and usesJSON merge\npatch format and processing rules.", + "flatPath": "projects/{project}/global/targetHttpProxies/{targetHttpProxy}", + "httpMethod": "PATCH", + "id": "compute.targetHttpProxies.patch", + "parameterOrder": [ + "project", + "targetHttpProxy" + ], + "parameters": { + "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\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).", + "location": "query", + "type": "string" + }, + "targetHttpProxy": { + "description": "Name of the TargetHttpProxy resource to patch.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "required": true, + "type": "string" + } + }, + "path": "projects/{project}/global/targetHttpProxies/{targetHttpProxy}", + "request": { + "$ref": "TargetHttpProxy" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ] + }, + "setUrlMap": { + "description": "Changes the URL map for TargetHttpProxy.", + "flatPath": "projects/{project}/targetHttpProxies/{targetHttpProxy}/setUrlMap", + "httpMethod": "POST", + "id": "compute.targetHttpProxies.setUrlMap", + "parameterOrder": [ + "project", + "targetHttpProxy" + ], + "parameters": { + "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\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).", + "location": "query", + "type": "string" + }, + "targetHttpProxy": { + "description": "Name of the TargetHttpProxy to set a URL map for.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "required": true, + "type": "string" + } + }, + "path": "projects/{project}/targetHttpProxies/{targetHttpProxy}/setUrlMap", + "request": { + "$ref": "UrlMapReference" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ] + } + } + }, + "targetHttpsProxies": { + "methods": { + "aggregatedList": { + "description": "Retrieves the list of all TargetHttpsProxy resources, regional and global,\navailable to the specified project.\n\nTo prevent failure, Google recommends that you set the\n`returnPartialSuccess` parameter to `true`.", + "flatPath": "projects/{project}/aggregated/targetHttpsProxies", + "httpMethod": "GET", + "id": "compute.targetHttpsProxies.aggregatedList", + "parameterOrder": [ + "project" + ], + "parameters": { + "filter": { + "description": "A filter expression that filters resources listed in the response. Most\nCompute resources support two types of filter expressions:\nexpressions that support regular expressions and expressions that follow\nAPI improvement proposal AIP-160.\nThese two types of filter expressions cannot be mixed in one request.\n\nIf you want to use AIP-160, your expression must specify the field name, an\noperator, and the value that you want to use for filtering. The value\nmust be a string, a number, or a boolean. The operator\nmust be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`.\n\nFor example, if you are filtering Compute Engine instances, you can\nexclude instances named `example-instance` by specifying\n`name != example-instance`.\n\nThe `:*` comparison can be used to test whether a key has been defined.\nFor example, to find all objects with `owner` label use:\n```\nlabels.owner:*\n```\n\nYou can also filter nested fields. For example, you could specify\n`scheduling.automaticRestart = false` to include instances only\nif they are not scheduled for automatic restarts. You can use filtering\non nested fields to filter based onresource labels.\n\nTo filter on multiple expressions, provide each separate expression within\nparentheses. For example:\n```\n(scheduling.automaticRestart = true)\n(cpuPlatform = \"Intel Skylake\")\n```\nBy default, each expression is an `AND` expression. However, you\ncan include `AND` and `OR` expressions explicitly.\nFor example:\n```\n(cpuPlatform = \"Intel Skylake\") OR\n(cpuPlatform = \"Intel Broadwell\") AND\n(scheduling.automaticRestart = true)\n```\n\nIf you want to use a regular expression, use the `eq` (equal) or `ne`\n(not equal) operator against a single un-parenthesized expression with or\nwithout quotes or against multiple parenthesized expressions. Examples:\n\n`fieldname eq unquoted literal`\n`fieldname eq 'single quoted literal'`\n`fieldname eq \"double quoted literal\"`\n`(fieldname1 eq literal) (fieldname2 ne \"literal\")`\n\nThe literal value is interpreted as a regular expression using GoogleRE2 library syntax.\nThe literal value must match the entire field.\n\nFor example, to filter for instances that do not end with name \"instance\",\nyou would use `name ne .*instance`.\n\nYou cannot combine constraints on multiple fields using regular\nexpressions.", + "location": "query", + "type": "string" + }, + "includeAllScopes": { + "description": "Indicates whether every visible scope for each scope type (zone, region,\nglobal) should be included in the response. For new resource types added\nafter this field, the flag has no effect as new resource types will always\ninclude every visible scope for each scope type in response. For resource\ntypes which predate this field, if this flag is omitted or false, only\nscopes of the scope types where the resource type is expected to be found\nwill be included.", + "location": "query", + "type": "boolean" + }, + "maxResults": { + "default": "500", + "description": "The maximum number of results per page that should be returned.\nIf the number of available results is larger than `maxResults`,\nCompute Engine returns a `nextPageToken` that can be used to get\nthe next page of results in subsequent list requests. Acceptable values are\n`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\nare returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation\ntimestamp using `orderBy=\"creationTimestamp desc\"`. This sorts\nresults based on the `creationTimestamp` field in\nreverse chronological order (newest result first). Use this to sort\nresources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or\n`creationTimestamp desc` is supported.", + "location": "query", + "type": "string" + }, + "pageToken": { + "description": "Specifies a page token to use. Set `pageToken` to the\n`nextPageToken` returned by a previous list request to get\nthe next page of results.", + "location": "query", + "type": "string" + }, + "project": { + "description": "Name of the project scoping 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" + }, + "returnPartialSuccess": { + "description": "Opt-in for partial success behavior which provides partial results in case\nof failure. The default value is false.\n\nFor example, when partial success behavior is enabled, aggregatedList for a\nsingle zone scope either returns all resources in the zone or no resources,\nwith an error code.", + "location": "query", + "type": "boolean" + }, + "serviceProjectNumber": { + "description": "The Shared VPC service project id or service project number for which\naggregated list request is invoked for subnetworks list-usable api.", + "format": "int64", + "location": "query", + "type": "string" + } + }, + "path": "projects/{project}/aggregated/targetHttpsProxies", + "response": { + "$ref": "TargetHttpsProxyAggregatedList" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ] + }, + "delete": { + "description": "Deletes the specified TargetHttpsProxy resource.", + "flatPath": "projects/{project}/global/targetHttpsProxies/{targetHttpsProxy}", + "httpMethod": "DELETE", + "id": "compute.targetHttpsProxies.delete", + "parameterOrder": [ + "project", + "targetHttpsProxy" + ], + "parameters": { + "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\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).", + "location": "query", + "type": "string" + }, + "targetHttpsProxy": { + "description": "Name of the TargetHttpsProxy resource to delete.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "required": true, + "type": "string" + } + }, + "path": "projects/{project}/global/targetHttpsProxies/{targetHttpsProxy}", + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ] + }, + "get": { + "description": "Returns the specified TargetHttpsProxy resource.", + "flatPath": "projects/{project}/global/targetHttpsProxies/{targetHttpsProxy}", + "httpMethod": "GET", + "id": "compute.targetHttpsProxies.get", + "parameterOrder": [ + "project", + "targetHttpsProxy" + ], + "parameters": { + "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" + }, + "targetHttpsProxy": { + "description": "Name of the TargetHttpsProxy resource to return.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "required": true, + "type": "string" + } + }, + "path": "projects/{project}/global/targetHttpsProxies/{targetHttpsProxy}", + "response": { + "$ref": "TargetHttpsProxy" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ] + }, + "insert": { + "description": "Creates a TargetHttpsProxy resource in the specified\nproject using the data included in the request.", + "flatPath": "projects/{project}/global/targetHttpsProxies", + "httpMethod": "POST", + "id": "compute.targetHttpsProxies.insert", + "parameterOrder": [ + "project" + ], + "parameters": { + "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\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).", + "location": "query", + "type": "string" + } + }, + "path": "projects/{project}/global/targetHttpsProxies", + "request": { + "$ref": "TargetHttpsProxy" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ] + }, + "list": { + "description": "Retrieves the list of TargetHttpsProxy resources\navailable to the specified project.", + "flatPath": "projects/{project}/global/targetHttpsProxies", + "httpMethod": "GET", + "id": "compute.targetHttpsProxies.list", + "parameterOrder": [ + "project" + ], + "parameters": { + "filter": { + "description": "A filter expression that filters resources listed in the response. Most\nCompute resources support two types of filter expressions:\nexpressions that support regular expressions and expressions that follow\nAPI improvement proposal AIP-160.\nThese two types of filter expressions cannot be mixed in one request.\n\nIf you want to use AIP-160, your expression must specify the field name, an\noperator, and the value that you want to use for filtering. The value\nmust be a string, a number, or a boolean. The operator\nmust be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`.\n\nFor example, if you are filtering Compute Engine instances, you can\nexclude instances named `example-instance` by specifying\n`name != example-instance`.\n\nThe `:*` comparison can be used to test whether a key has been defined.\nFor example, to find all objects with `owner` label use:\n```\nlabels.owner:*\n```\n\nYou can also filter nested fields. For example, you could specify\n`scheduling.automaticRestart = false` to include instances only\nif they are not scheduled for automatic restarts. You can use filtering\non nested fields to filter based onresource labels.\n\nTo filter on multiple expressions, provide each separate expression within\nparentheses. For example:\n```\n(scheduling.automaticRestart = true)\n(cpuPlatform = \"Intel Skylake\")\n```\nBy default, each expression is an `AND` expression. However, you\ncan include `AND` and `OR` expressions explicitly.\nFor example:\n```\n(cpuPlatform = \"Intel Skylake\") OR\n(cpuPlatform = \"Intel Broadwell\") AND\n(scheduling.automaticRestart = true)\n```\n\nIf you want to use a regular expression, use the `eq` (equal) or `ne`\n(not equal) operator against a single un-parenthesized expression with or\nwithout quotes or against multiple parenthesized expressions. Examples:\n\n`fieldname eq unquoted literal`\n`fieldname eq 'single quoted literal'`\n`fieldname eq \"double quoted literal\"`\n`(fieldname1 eq literal) (fieldname2 ne \"literal\")`\n\nThe literal value is interpreted as a regular expression using GoogleRE2 library syntax.\nThe literal value must match the entire field.\n\nFor example, to filter for instances that do not end with name \"instance\",\nyou would use `name ne .*instance`.\n\nYou cannot combine constraints on multiple fields using regular\nexpressions.", + "location": "query", + "type": "string" + }, + "maxResults": { + "default": "500", + "description": "The maximum number of results per page that should be returned.\nIf the number of available results is larger than `maxResults`,\nCompute Engine returns a `nextPageToken` that can be used to get\nthe next page of results in subsequent list requests. Acceptable values are\n`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\nare returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation\ntimestamp using `orderBy=\"creationTimestamp desc\"`. This sorts\nresults based on the `creationTimestamp` field in\nreverse chronological order (newest result first). Use this to sort\nresources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or\n`creationTimestamp desc` is supported.", + "location": "query", + "type": "string" + }, + "pageToken": { + "description": "Specifies a page token to use. Set `pageToken` to the\n`nextPageToken` returned by a previous list request to get\nthe 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" + }, + "returnPartialSuccess": { + "description": "Opt-in for partial success behavior which provides partial results in case\nof failure. The default value is false.\n\nFor example, when partial success behavior is enabled, aggregatedList for a\nsingle zone scope either returns all resources in the zone or no resources,\nwith an error code.", + "location": "query", + "type": "boolean" + } + }, + "path": "projects/{project}/global/targetHttpsProxies", + "response": { + "$ref": "TargetHttpsProxyList" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ] + }, + "patch": { + "description": "Patches the specified TargetHttpsProxy resource with the data included in\nthe request. This method supports PATCH\nsemantics and usesJSON merge\npatch format and processing rules.", + "flatPath": "projects/{project}/global/targetHttpsProxies/{targetHttpsProxy}", + "httpMethod": "PATCH", + "id": "compute.targetHttpsProxies.patch", + "parameterOrder": [ + "project", + "targetHttpsProxy" + ], + "parameters": { + "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\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).", + "location": "query", + "type": "string" + }, + "targetHttpsProxy": { + "description": "Name of the TargetHttpsProxy resource to patch.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "required": true, + "type": "string" + } + }, + "path": "projects/{project}/global/targetHttpsProxies/{targetHttpsProxy}", + "request": { + "$ref": "TargetHttpsProxy" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ] + }, + "setCertificateMap": { + "description": "Changes the Certificate Map for TargetHttpsProxy.", + "flatPath": "projects/{project}/global/targetHttpsProxies/{targetHttpsProxy}/setCertificateMap", + "httpMethod": "POST", + "id": "compute.targetHttpsProxies.setCertificateMap", + "parameterOrder": [ + "project", + "targetHttpsProxy" + ], + "parameters": { + "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\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).", + "location": "query", + "type": "string" + }, + "targetHttpsProxy": { + "description": "Name of the TargetHttpsProxy resource whose CertificateMap is\nto be set. The name must be 1-63 characters long, and comply with RFC1035.", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "projects/{project}/global/targetHttpsProxies/{targetHttpsProxy}/setCertificateMap", + "request": { + "$ref": "TargetHttpsProxiesSetCertificateMapRequest" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ] + }, + "setQuicOverride": { + "description": "Sets the QUIC override policy for TargetHttpsProxy.", + "flatPath": "projects/{project}/global/targetHttpsProxies/{targetHttpsProxy}/setQuicOverride", + "httpMethod": "POST", + "id": "compute.targetHttpsProxies.setQuicOverride", + "parameterOrder": [ + "project", + "targetHttpsProxy" + ], + "parameters": { + "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\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).", + "location": "query", + "type": "string" + }, + "targetHttpsProxy": { + "description": "Name of the TargetHttpsProxy resource to set the QUIC override policy for.\nThe name should conform to RFC1035.", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "projects/{project}/global/targetHttpsProxies/{targetHttpsProxy}/setQuicOverride", + "request": { + "$ref": "TargetHttpsProxiesSetQuicOverrideRequest" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ] + }, + "setSslCertificates": { + "description": "Replaces SslCertificates for TargetHttpsProxy.", + "flatPath": "projects/{project}/targetHttpsProxies/{targetHttpsProxy}/setSslCertificates", + "httpMethod": "POST", + "id": "compute.targetHttpsProxies.setSslCertificates", + "parameterOrder": [ + "project", + "targetHttpsProxy" + ], + "parameters": { + "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\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).", + "location": "query", + "type": "string" + }, + "targetHttpsProxy": { + "description": "Name of the TargetHttpsProxy resource to set an\nSslCertificates resource for.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "required": true, + "type": "string" + } + }, + "path": "projects/{project}/targetHttpsProxies/{targetHttpsProxy}/setSslCertificates", + "request": { + "$ref": "TargetHttpsProxiesSetSslCertificatesRequest" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ] + }, + "setSslPolicy": { + "description": "Sets the SSL policy for TargetHttpsProxy. The SSL policy specifies the\nserver-side support for SSL features. This affects connections between\nclients and the HTTPS proxy load balancer. They do not affect the\nconnection between the load balancer and the backends.", + "flatPath": "projects/{project}/global/targetHttpsProxies/{targetHttpsProxy}/setSslPolicy", + "httpMethod": "POST", + "id": "compute.targetHttpsProxies.setSslPolicy", + "parameterOrder": [ + "project", + "targetHttpsProxy" + ], + "parameters": { + "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\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).", + "location": "query", + "type": "string" + }, + "targetHttpsProxy": { + "description": "Name of the TargetHttpsProxy resource whose SSL policy is\nto be set. The name must be 1-63 characters long, and comply with RFC1035.", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "projects/{project}/global/targetHttpsProxies/{targetHttpsProxy}/setSslPolicy", + "request": { + "$ref": "SslPolicyReference" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ] + }, + "setUrlMap": { + "description": "Changes the URL map for TargetHttpsProxy.", + "flatPath": "projects/{project}/targetHttpsProxies/{targetHttpsProxy}/setUrlMap", + "httpMethod": "POST", + "id": "compute.targetHttpsProxies.setUrlMap", + "parameterOrder": [ + "project", + "targetHttpsProxy" + ], + "parameters": { + "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\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).", + "location": "query", + "type": "string" + }, + "targetHttpsProxy": { + "description": "Name of the TargetHttpsProxy resource whose URL map is\nto be set.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "required": true, + "type": "string" + } + }, + "path": "projects/{project}/targetHttpsProxies/{targetHttpsProxy}/setUrlMap", + "request": { + "$ref": "UrlMapReference" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ] + } + } + }, + "targetInstances": { + "methods": { + "aggregatedList": { + "description": "Retrieves an aggregated list of target instances.\n\nTo prevent failure, Google recommends that you set the\n`returnPartialSuccess` parameter to `true`.", + "flatPath": "projects/{project}/aggregated/targetInstances", + "httpMethod": "GET", + "id": "compute.targetInstances.aggregatedList", + "parameterOrder": [ + "project" + ], + "parameters": { + "filter": { + "description": "A filter expression that filters resources listed in the response. Most\nCompute resources support two types of filter expressions:\nexpressions that support regular expressions and expressions that follow\nAPI improvement proposal AIP-160.\nThese two types of filter expressions cannot be mixed in one request.\n\nIf you want to use AIP-160, your expression must specify the field name, an\noperator, and the value that you want to use for filtering. The value\nmust be a string, a number, or a boolean. The operator\nmust be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`.\n\nFor example, if you are filtering Compute Engine instances, you can\nexclude instances named `example-instance` by specifying\n`name != example-instance`.\n\nThe `:*` comparison can be used to test whether a key has been defined.\nFor example, to find all objects with `owner` label use:\n```\nlabels.owner:*\n```\n\nYou can also filter nested fields. For example, you could specify\n`scheduling.automaticRestart = false` to include instances only\nif they are not scheduled for automatic restarts. You can use filtering\non nested fields to filter based onresource labels.\n\nTo filter on multiple expressions, provide each separate expression within\nparentheses. For example:\n```\n(scheduling.automaticRestart = true)\n(cpuPlatform = \"Intel Skylake\")\n```\nBy default, each expression is an `AND` expression. However, you\ncan include `AND` and `OR` expressions explicitly.\nFor example:\n```\n(cpuPlatform = \"Intel Skylake\") OR\n(cpuPlatform = \"Intel Broadwell\") AND\n(scheduling.automaticRestart = true)\n```\n\nIf you want to use a regular expression, use the `eq` (equal) or `ne`\n(not equal) operator against a single un-parenthesized expression with or\nwithout quotes or against multiple parenthesized expressions. Examples:\n\n`fieldname eq unquoted literal`\n`fieldname eq 'single quoted literal'`\n`fieldname eq \"double quoted literal\"`\n`(fieldname1 eq literal) (fieldname2 ne \"literal\")`\n\nThe literal value is interpreted as a regular expression using GoogleRE2 library syntax.\nThe literal value must match the entire field.\n\nFor example, to filter for instances that do not end with name \"instance\",\nyou would use `name ne .*instance`.\n\nYou cannot combine constraints on multiple fields using regular\nexpressions.", + "location": "query", + "type": "string" + }, + "includeAllScopes": { + "description": "Indicates whether every visible scope for each scope type (zone, region,\nglobal) should be included in the response. For new resource types added\nafter this field, the flag has no effect as new resource types will always\ninclude every visible scope for each scope type in response. For resource\ntypes which predate this field, if this flag is omitted or false, only\nscopes of the scope types where the resource type is expected to be found\nwill be included.", + "location": "query", + "type": "boolean" + }, + "maxResults": { + "default": "500", + "description": "The maximum number of results per page that should be returned.\nIf the number of available results is larger than `maxResults`,\nCompute Engine returns a `nextPageToken` that can be used to get\nthe next page of results in subsequent list requests. Acceptable values are\n`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\nare returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation\ntimestamp using `orderBy=\"creationTimestamp desc\"`. This sorts\nresults based on the `creationTimestamp` field in\nreverse chronological order (newest result first). Use this to sort\nresources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or\n`creationTimestamp desc` is supported.", + "location": "query", + "type": "string" + }, + "pageToken": { + "description": "Specifies a page token to use. Set `pageToken` to the\n`nextPageToken` returned by a previous list request to get\nthe 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" + }, + "returnPartialSuccess": { + "description": "Opt-in for partial success behavior which provides partial results in case\nof failure. The default value is false.\n\nFor example, when partial success behavior is enabled, aggregatedList for a\nsingle zone scope either returns all resources in the zone or no resources,\nwith an error code.", + "location": "query", + "type": "boolean" + }, + "serviceProjectNumber": { + "description": "The Shared VPC service project id or service project number for which\naggregated list request is invoked for subnetworks list-usable api.", + "format": "int64", + "location": "query", + "type": "string" + } + }, + "path": "projects/{project}/aggregated/targetInstances", + "response": { + "$ref": "TargetInstanceAggregatedList" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ] + }, + "delete": { + "description": "Deletes the specified TargetInstance resource.", + "flatPath": "projects/{project}/zones/{zone}/targetInstances/{targetInstance}", + "httpMethod": "DELETE", + "id": "compute.targetInstances.delete", + "parameterOrder": [ + "project", + "zone", + "targetInstance" + ], + "parameters": { + "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\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).", + "location": "query", + "type": "string" + }, + "targetInstance": { + "description": "Name of the TargetInstance resource to delete.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "required": true, + "type": "string" + }, + "zone": { + "description": "Name of the zone scoping this request.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "required": true, + "type": "string" + } + }, + "path": "projects/{project}/zones/{zone}/targetInstances/{targetInstance}", + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ] + }, + "get": { + "description": "Returns the specified TargetInstance resource.", + "flatPath": "projects/{project}/zones/{zone}/targetInstances/{targetInstance}", + "httpMethod": "GET", + "id": "compute.targetInstances.get", + "parameterOrder": [ + "project", + "zone", + "targetInstance" + ], + "parameters": { + "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" + }, + "targetInstance": { + "description": "Name of the TargetInstance resource to return.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "required": true, + "type": "string" + }, + "zone": { + "description": "Name of the zone scoping this request.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "required": true, + "type": "string" + } + }, + "path": "projects/{project}/zones/{zone}/targetInstances/{targetInstance}", + "response": { + "$ref": "TargetInstance" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ] + }, + "insert": { + "description": "Creates a TargetInstance resource in the specified project and zone using\nthe data included in the request.", + "flatPath": "projects/{project}/zones/{zone}/targetInstances", + "httpMethod": "POST", + "id": "compute.targetInstances.insert", + "parameterOrder": [ + "project", + "zone" + ], + "parameters": { + "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\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).", + "location": "query", + "type": "string" + }, + "zone": { + "description": "Name of the zone scoping this request.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "required": true, + "type": "string" + } + }, + "path": "projects/{project}/zones/{zone}/targetInstances", + "request": { + "$ref": "TargetInstance" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ] + }, + "list": { + "description": "Retrieves a list of TargetInstance resources available to the specified\nproject and zone.", + "flatPath": "projects/{project}/zones/{zone}/targetInstances", + "httpMethod": "GET", + "id": "compute.targetInstances.list", + "parameterOrder": [ + "project", + "zone" + ], + "parameters": { + "filter": { + "description": "A filter expression that filters resources listed in the response. Most\nCompute resources support two types of filter expressions:\nexpressions that support regular expressions and expressions that follow\nAPI improvement proposal AIP-160.\nThese two types of filter expressions cannot be mixed in one request.\n\nIf you want to use AIP-160, your expression must specify the field name, an\noperator, and the value that you want to use for filtering. The value\nmust be a string, a number, or a boolean. The operator\nmust be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`.\n\nFor example, if you are filtering Compute Engine instances, you can\nexclude instances named `example-instance` by specifying\n`name != example-instance`.\n\nThe `:*` comparison can be used to test whether a key has been defined.\nFor example, to find all objects with `owner` label use:\n```\nlabels.owner:*\n```\n\nYou can also filter nested fields. For example, you could specify\n`scheduling.automaticRestart = false` to include instances only\nif they are not scheduled for automatic restarts. You can use filtering\non nested fields to filter based onresource labels.\n\nTo filter on multiple expressions, provide each separate expression within\nparentheses. For example:\n```\n(scheduling.automaticRestart = true)\n(cpuPlatform = \"Intel Skylake\")\n```\nBy default, each expression is an `AND` expression. However, you\ncan include `AND` and `OR` expressions explicitly.\nFor example:\n```\n(cpuPlatform = \"Intel Skylake\") OR\n(cpuPlatform = \"Intel Broadwell\") AND\n(scheduling.automaticRestart = true)\n```\n\nIf you want to use a regular expression, use the `eq` (equal) or `ne`\n(not equal) operator against a single un-parenthesized expression with or\nwithout quotes or against multiple parenthesized expressions. Examples:\n\n`fieldname eq unquoted literal`\n`fieldname eq 'single quoted literal'`\n`fieldname eq \"double quoted literal\"`\n`(fieldname1 eq literal) (fieldname2 ne \"literal\")`\n\nThe literal value is interpreted as a regular expression using GoogleRE2 library syntax.\nThe literal value must match the entire field.\n\nFor example, to filter for instances that do not end with name \"instance\",\nyou would use `name ne .*instance`.\n\nYou cannot combine constraints on multiple fields using regular\nexpressions.", + "location": "query", + "type": "string" + }, + "maxResults": { + "default": "500", + "description": "The maximum number of results per page that should be returned.\nIf the number of available results is larger than `maxResults`,\nCompute Engine returns a `nextPageToken` that can be used to get\nthe next page of results in subsequent list requests. Acceptable values are\n`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\nare returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation\ntimestamp using `orderBy=\"creationTimestamp desc\"`. This sorts\nresults based on the `creationTimestamp` field in\nreverse chronological order (newest result first). Use this to sort\nresources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or\n`creationTimestamp desc` is supported.", + "location": "query", + "type": "string" + }, + "pageToken": { + "description": "Specifies a page token to use. Set `pageToken` to the\n`nextPageToken` returned by a previous list request to get\nthe 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" + }, + "returnPartialSuccess": { + "description": "Opt-in for partial success behavior which provides partial results in case\nof failure. The default value is false.\n\nFor example, when partial success behavior is enabled, aggregatedList for a\nsingle zone scope either returns all resources in the zone or no resources,\nwith an error code.", + "location": "query", + "type": "boolean" + }, + "zone": { + "description": "Name of the zone scoping this request.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "required": true, + "type": "string" + } + }, + "path": "projects/{project}/zones/{zone}/targetInstances", + "response": { + "$ref": "TargetInstanceList" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ] + }, + "setSecurityPolicy": { + "description": "Sets the Google Cloud Armor security policy for the specified target\ninstance. For more information, seeGoogle\nCloud Armor Overview", + "flatPath": "projects/{project}/zones/{zone}/targetInstances/{targetInstance}/setSecurityPolicy", + "httpMethod": "POST", + "id": "compute.targetInstances.setSecurityPolicy", + "parameterOrder": [ + "project", + "zone", + "targetInstance" + ], + "parameters": { + "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\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).", + "location": "query", + "type": "string" + }, + "targetInstance": { + "description": "Name of the TargetInstance resource to which the security policy should be\nset. The name should conform to RFC1035.", + "location": "path", + "required": true, + "type": "string" + }, + "zone": { + "description": "Name of the zone scoping this request.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "required": true, + "type": "string" + } + }, + "path": "projects/{project}/zones/{zone}/targetInstances/{targetInstance}/setSecurityPolicy", + "request": { + "$ref": "SecurityPolicyReference" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ] + }, + "testIamPermissions": { + "description": "Returns permissions that a caller has on the specified resource.", + "flatPath": "projects/{project}/zones/{zone}/targetInstances/{resource}/testIamPermissions", + "httpMethod": "POST", + "id": "compute.targetInstances.testIamPermissions", + "parameterOrder": [ + "project", + "zone", + "resource" + ], + "parameters": { + "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" + }, + "resource": { + "description": "Name or id of the resource for this request.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "required": true, + "type": "string" + }, + "zone": { + "description": "The name of the zone for this request.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "required": true, + "type": "string" + } + }, + "path": "projects/{project}/zones/{zone}/targetInstances/{resource}/testIamPermissions", + "request": { + "$ref": "TestPermissionsRequest" + }, + "response": { + "$ref": "TestPermissionsResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ] + } + } + }, + "targetPools": { + "methods": { + "addHealthCheck": { + "description": "Adds health check URLs to a target pool.", + "flatPath": "projects/{project}/regions/{region}/targetPools/{targetPool}/addHealthCheck", + "httpMethod": "POST", + "id": "compute.targetPools.addHealthCheck", + "parameterOrder": [ + "project", + "region", + "targetPool" + ], + "parameters": { + "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 scoping this request.", + "location": "path", + "pattern": "[a-z](?:[-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\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).", + "location": "query", + "type": "string" + }, + "targetPool": { + "description": "Name of the target pool to add a health check to.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "required": true, + "type": "string" + } + }, + "path": "projects/{project}/regions/{region}/targetPools/{targetPool}/addHealthCheck", + "request": { + "$ref": "TargetPoolsAddHealthCheckRequest" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ] + }, + "addInstance": { + "description": "Adds an instance to a target pool.", + "flatPath": "projects/{project}/regions/{region}/targetPools/{targetPool}/addInstance", + "httpMethod": "POST", + "id": "compute.targetPools.addInstance", + "parameterOrder": [ + "project", + "region", + "targetPool" + ], + "parameters": { + "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 scoping this request.", + "location": "path", + "pattern": "[a-z](?:[-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\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).", + "location": "query", + "type": "string" + }, + "targetPool": { + "description": "Name of the TargetPool resource to add instances to.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "required": true, + "type": "string" + } + }, + "path": "projects/{project}/regions/{region}/targetPools/{targetPool}/addInstance", + "request": { + "$ref": "TargetPoolsAddInstanceRequest" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ] + }, + "aggregatedList": { + "description": "Retrieves an aggregated list of target pools.\n\nTo prevent failure, Google recommends that you set the\n`returnPartialSuccess` parameter to `true`.", + "flatPath": "projects/{project}/aggregated/targetPools", + "httpMethod": "GET", + "id": "compute.targetPools.aggregatedList", + "parameterOrder": [ + "project" + ], + "parameters": { + "filter": { + "description": "A filter expression that filters resources listed in the response. Most\nCompute resources support two types of filter expressions:\nexpressions that support regular expressions and expressions that follow\nAPI improvement proposal AIP-160.\nThese two types of filter expressions cannot be mixed in one request.\n\nIf you want to use AIP-160, your expression must specify the field name, an\noperator, and the value that you want to use for filtering. The value\nmust be a string, a number, or a boolean. The operator\nmust be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`.\n\nFor example, if you are filtering Compute Engine instances, you can\nexclude instances named `example-instance` by specifying\n`name != example-instance`.\n\nThe `:*` comparison can be used to test whether a key has been defined.\nFor example, to find all objects with `owner` label use:\n```\nlabels.owner:*\n```\n\nYou can also filter nested fields. For example, you could specify\n`scheduling.automaticRestart = false` to include instances only\nif they are not scheduled for automatic restarts. You can use filtering\non nested fields to filter based onresource labels.\n\nTo filter on multiple expressions, provide each separate expression within\nparentheses. For example:\n```\n(scheduling.automaticRestart = true)\n(cpuPlatform = \"Intel Skylake\")\n```\nBy default, each expression is an `AND` expression. However, you\ncan include `AND` and `OR` expressions explicitly.\nFor example:\n```\n(cpuPlatform = \"Intel Skylake\") OR\n(cpuPlatform = \"Intel Broadwell\") AND\n(scheduling.automaticRestart = true)\n```\n\nIf you want to use a regular expression, use the `eq` (equal) or `ne`\n(not equal) operator against a single un-parenthesized expression with or\nwithout quotes or against multiple parenthesized expressions. Examples:\n\n`fieldname eq unquoted literal`\n`fieldname eq 'single quoted literal'`\n`fieldname eq \"double quoted literal\"`\n`(fieldname1 eq literal) (fieldname2 ne \"literal\")`\n\nThe literal value is interpreted as a regular expression using GoogleRE2 library syntax.\nThe literal value must match the entire field.\n\nFor example, to filter for instances that do not end with name \"instance\",\nyou would use `name ne .*instance`.\n\nYou cannot combine constraints on multiple fields using regular\nexpressions.", + "location": "query", + "type": "string" + }, + "includeAllScopes": { + "description": "Indicates whether every visible scope for each scope type (zone, region,\nglobal) should be included in the response. For new resource types added\nafter this field, the flag has no effect as new resource types will always\ninclude every visible scope for each scope type in response. For resource\ntypes which predate this field, if this flag is omitted or false, only\nscopes of the scope types where the resource type is expected to be found\nwill be included.", + "location": "query", + "type": "boolean" + }, + "maxResults": { + "default": "500", + "description": "The maximum number of results per page that should be returned.\nIf the number of available results is larger than `maxResults`,\nCompute Engine returns a `nextPageToken` that can be used to get\nthe next page of results in subsequent list requests. Acceptable values are\n`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\nare returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation\ntimestamp using `orderBy=\"creationTimestamp desc\"`. This sorts\nresults based on the `creationTimestamp` field in\nreverse chronological order (newest result first). Use this to sort\nresources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or\n`creationTimestamp desc` is supported.", + "location": "query", + "type": "string" + }, + "pageToken": { + "description": "Specifies a page token to use. Set `pageToken` to the\n`nextPageToken` returned by a previous list request to get\nthe 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" + }, + "returnPartialSuccess": { + "description": "Opt-in for partial success behavior which provides partial results in case\nof failure. The default value is false.\n\nFor example, when partial success behavior is enabled, aggregatedList for a\nsingle zone scope either returns all resources in the zone or no resources,\nwith an error code.", + "location": "query", + "type": "boolean" + }, + "serviceProjectNumber": { + "description": "The Shared VPC service project id or service project number for which\naggregated list request is invoked for subnetworks list-usable api.", + "format": "int64", + "location": "query", + "type": "string" + } + }, + "path": "projects/{project}/aggregated/targetPools", + "response": { + "$ref": "TargetPoolAggregatedList" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ] + }, + "delete": { + "description": "Deletes the specified target pool.", + "flatPath": "projects/{project}/regions/{region}/targetPools/{targetPool}", + "httpMethod": "DELETE", + "id": "compute.targetPools.delete", + "parameterOrder": [ + "project", + "region", + "targetPool" + ], + "parameters": { + "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 scoping this request.", + "location": "path", + "pattern": "[a-z](?:[-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\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).", + "location": "query", + "type": "string" + }, + "targetPool": { + "description": "Name of the TargetPool resource to delete.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "required": true, + "type": "string" + } + }, + "path": "projects/{project}/regions/{region}/targetPools/{targetPool}", + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ] + }, + "get": { + "description": "Returns the specified target pool.", + "flatPath": "projects/{project}/regions/{region}/targetPools/{targetPool}", + "httpMethod": "GET", + "id": "compute.targetPools.get", + "parameterOrder": [ + "project", + "region", + "targetPool" + ], + "parameters": { + "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 scoping this request.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "required": true, + "type": "string" + }, + "targetPool": { + "description": "Name of the TargetPool resource to return.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "required": true, + "type": "string" + } + }, + "path": "projects/{project}/regions/{region}/targetPools/{targetPool}", + "response": { + "$ref": "TargetPool" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ] + }, + "getHealth": { + "description": "Gets the most recent health check results for each IP for the\ninstance that is referenced by the given target pool.", + "flatPath": "projects/{project}/regions/{region}/targetPools/{targetPool}/getHealth", + "httpMethod": "POST", + "id": "compute.targetPools.getHealth", + "parameterOrder": [ + "project", + "region", + "targetPool" + ], + "parameters": { + "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 scoping this request.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "required": true, + "type": "string" + }, + "targetPool": { + "description": "Name of the TargetPool resource to which the queried instance belongs.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "required": true, + "type": "string" + } + }, + "path": "projects/{project}/regions/{region}/targetPools/{targetPool}/getHealth", + "request": { + "$ref": "InstanceReference" + }, + "response": { + "$ref": "TargetPoolInstanceHealth" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ] + }, + "insert": { + "description": "Creates a target pool in the specified project and region using\nthe data included in the request.", + "flatPath": "projects/{project}/regions/{region}/targetPools", + "httpMethod": "POST", + "id": "compute.targetPools.insert", + "parameterOrder": [ + "project", + "region" + ], + "parameters": { + "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 scoping this request.", + "location": "path", + "pattern": "[a-z](?:[-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\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).", + "location": "query", + "type": "string" + } + }, + "path": "projects/{project}/regions/{region}/targetPools", + "request": { + "$ref": "TargetPool" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ] + }, + "list": { + "description": "Retrieves a list of target pools available to the specified\nproject and region.", + "flatPath": "projects/{project}/regions/{region}/targetPools", + "httpMethod": "GET", + "id": "compute.targetPools.list", + "parameterOrder": [ + "project", + "region" + ], + "parameters": { + "filter": { + "description": "A filter expression that filters resources listed in the response. Most\nCompute resources support two types of filter expressions:\nexpressions that support regular expressions and expressions that follow\nAPI improvement proposal AIP-160.\nThese two types of filter expressions cannot be mixed in one request.\n\nIf you want to use AIP-160, your expression must specify the field name, an\noperator, and the value that you want to use for filtering. The value\nmust be a string, a number, or a boolean. The operator\nmust be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`.\n\nFor example, if you are filtering Compute Engine instances, you can\nexclude instances named `example-instance` by specifying\n`name != example-instance`.\n\nThe `:*` comparison can be used to test whether a key has been defined.\nFor example, to find all objects with `owner` label use:\n```\nlabels.owner:*\n```\n\nYou can also filter nested fields. For example, you could specify\n`scheduling.automaticRestart = false` to include instances only\nif they are not scheduled for automatic restarts. You can use filtering\non nested fields to filter based onresource labels.\n\nTo filter on multiple expressions, provide each separate expression within\nparentheses. For example:\n```\n(scheduling.automaticRestart = true)\n(cpuPlatform = \"Intel Skylake\")\n```\nBy default, each expression is an `AND` expression. However, you\ncan include `AND` and `OR` expressions explicitly.\nFor example:\n```\n(cpuPlatform = \"Intel Skylake\") OR\n(cpuPlatform = \"Intel Broadwell\") AND\n(scheduling.automaticRestart = true)\n```\n\nIf you want to use a regular expression, use the `eq` (equal) or `ne`\n(not equal) operator against a single un-parenthesized expression with or\nwithout quotes or against multiple parenthesized expressions. Examples:\n\n`fieldname eq unquoted literal`\n`fieldname eq 'single quoted literal'`\n`fieldname eq \"double quoted literal\"`\n`(fieldname1 eq literal) (fieldname2 ne \"literal\")`\n\nThe literal value is interpreted as a regular expression using GoogleRE2 library syntax.\nThe literal value must match the entire field.\n\nFor example, to filter for instances that do not end with name \"instance\",\nyou would use `name ne .*instance`.\n\nYou cannot combine constraints on multiple fields using regular\nexpressions.", + "location": "query", + "type": "string" + }, + "maxResults": { + "default": "500", + "description": "The maximum number of results per page that should be returned.\nIf the number of available results is larger than `maxResults`,\nCompute Engine returns a `nextPageToken` that can be used to get\nthe next page of results in subsequent list requests. Acceptable values are\n`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\nare returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation\ntimestamp using `orderBy=\"creationTimestamp desc\"`. This sorts\nresults based on the `creationTimestamp` field in\nreverse chronological order (newest result first). Use this to sort\nresources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or\n`creationTimestamp desc` is supported.", + "location": "query", + "type": "string" + }, + "pageToken": { + "description": "Specifies a page token to use. Set `pageToken` to the\n`nextPageToken` returned by a previous list request to get\nthe 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 scoping this request.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "required": true, + "type": "string" + }, + "returnPartialSuccess": { + "description": "Opt-in for partial success behavior which provides partial results in case\nof failure. The default value is false.\n\nFor example, when partial success behavior is enabled, aggregatedList for a\nsingle zone scope either returns all resources in the zone or no resources,\nwith an error code.", + "location": "query", + "type": "boolean" + } + }, + "path": "projects/{project}/regions/{region}/targetPools", + "response": { + "$ref": "TargetPoolList" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ] + }, + "removeHealthCheck": { + "description": "Removes health check URL from a target pool.", + "flatPath": "projects/{project}/regions/{region}/targetPools/{targetPool}/removeHealthCheck", + "httpMethod": "POST", + "id": "compute.targetPools.removeHealthCheck", + "parameterOrder": [ + "project", + "region", + "targetPool" + ], + "parameters": { + "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" + }, + "requestId": { + "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).", + "location": "query", + "type": "string" + }, + "targetPool": { + "description": "Name of the target pool to remove health checks from.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "required": true, + "type": "string" + } + }, + "path": "projects/{project}/regions/{region}/targetPools/{targetPool}/removeHealthCheck", + "request": { + "$ref": "TargetPoolsRemoveHealthCheckRequest" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ] + }, + "removeInstance": { + "description": "Removes instance URL from a target pool.", + "flatPath": "projects/{project}/regions/{region}/targetPools/{targetPool}/removeInstance", + "httpMethod": "POST", + "id": "compute.targetPools.removeInstance", + "parameterOrder": [ + "project", + "region", + "targetPool" + ], + "parameters": { + "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 scoping this request.", + "location": "path", + "pattern": "[a-z](?:[-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\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).", + "location": "query", + "type": "string" + }, + "targetPool": { + "description": "Name of the TargetPool resource to remove instances from.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "required": true, + "type": "string" + } + }, + "path": "projects/{project}/regions/{region}/targetPools/{targetPool}/removeInstance", + "request": { + "$ref": "TargetPoolsRemoveInstanceRequest" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ] + }, + "setBackup": { + "description": "Changes a backup target pool's configurations.", + "flatPath": "projects/{project}/regions/{region}/targetPools/{targetPool}/setBackup", + "httpMethod": "POST", + "id": "compute.targetPools.setBackup", + "parameterOrder": [ + "project", + "region", + "targetPool" + ], + "parameters": { + "failoverRatio": { + "description": "New failoverRatio value for the target pool.", + "format": "float", + "location": "query", + "type": "number" + }, + "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 scoping this request.", + "location": "path", + "pattern": "[a-z](?:[-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\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).", + "location": "query", + "type": "string" + }, + "targetPool": { + "description": "Name of the TargetPool resource to set a backup pool for.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "required": true, + "type": "string" + } + }, + "path": "projects/{project}/regions/{region}/targetPools/{targetPool}/setBackup", + "request": { + "$ref": "TargetReference" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ] + }, + "setSecurityPolicy": { + "description": "Sets the Google Cloud Armor security policy for the specified target pool.\nFor more information, seeGoogle\nCloud Armor Overview", + "flatPath": "projects/{project}/regions/{region}/targetPools/{targetPool}/setSecurityPolicy", + "httpMethod": "POST", + "id": "compute.targetPools.setSecurityPolicy", + "parameterOrder": [ + "project", + "region", + "targetPool" + ], + "parameters": { + "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 scoping this request.", + "location": "path", + "pattern": "[a-z](?:[-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\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).", + "location": "query", + "type": "string" + }, + "targetPool": { + "description": "Name of the TargetPool resource to which the security policy should be\nset. The name should conform to RFC1035.", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "projects/{project}/regions/{region}/targetPools/{targetPool}/setSecurityPolicy", + "request": { + "$ref": "SecurityPolicyReference" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ] + }, + "testIamPermissions": { + "description": "Returns permissions that a caller has on the specified resource.", + "flatPath": "projects/{project}/regions/{region}/targetPools/{resource}/testIamPermissions", + "httpMethod": "POST", + "id": "compute.targetPools.testIamPermissions", + "parameterOrder": [ + "project", + "region", + "resource" + ], + "parameters": { + "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": "The name of the region for this request.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "required": true, + "type": "string" + }, + "resource": { + "description": "Name or id of the resource for this request.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "required": true, + "type": "string" + } + }, + "path": "projects/{project}/regions/{region}/targetPools/{resource}/testIamPermissions", + "request": { + "$ref": "TestPermissionsRequest" + }, + "response": { + "$ref": "TestPermissionsResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ] + } + } + }, + "targetSslProxies": { + "methods": { + "delete": { + "description": "Deletes the specified TargetSslProxy resource.", + "flatPath": "projects/{project}/global/targetSslProxies/{targetSslProxy}", + "httpMethod": "DELETE", + "id": "compute.targetSslProxies.delete", + "parameterOrder": [ + "project", + "targetSslProxy" + ], + "parameters": { + "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\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).", + "location": "query", + "type": "string" + }, + "targetSslProxy": { + "description": "Name of the TargetSslProxy resource to delete.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "required": true, + "type": "string" + } + }, + "path": "projects/{project}/global/targetSslProxies/{targetSslProxy}", + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ] + }, + "get": { + "description": "Returns the specified TargetSslProxy resource.", + "flatPath": "projects/{project}/global/targetSslProxies/{targetSslProxy}", + "httpMethod": "GET", + "id": "compute.targetSslProxies.get", + "parameterOrder": [ + "project", + "targetSslProxy" + ], + "parameters": { + "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" + }, + "targetSslProxy": { + "description": "Name of the TargetSslProxy resource to return.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "required": true, + "type": "string" + } + }, + "path": "projects/{project}/global/targetSslProxies/{targetSslProxy}", + "response": { + "$ref": "TargetSslProxy" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ] + }, + "insert": { + "description": "Creates a TargetSslProxy resource in the specified project using\nthe data included in the request.", + "flatPath": "projects/{project}/global/targetSslProxies", + "httpMethod": "POST", + "id": "compute.targetSslProxies.insert", + "parameterOrder": [ + "project" + ], + "parameters": { + "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\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).", + "location": "query", + "type": "string" + } + }, + "path": "projects/{project}/global/targetSslProxies", + "request": { + "$ref": "TargetSslProxy" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ] + }, + "list": { + "description": "Retrieves the list of TargetSslProxy resources\navailable to the specified project.", + "flatPath": "projects/{project}/global/targetSslProxies", + "httpMethod": "GET", + "id": "compute.targetSslProxies.list", + "parameterOrder": [ + "project" + ], + "parameters": { + "filter": { + "description": "A filter expression that filters resources listed in the response. Most\nCompute resources support two types of filter expressions:\nexpressions that support regular expressions and expressions that follow\nAPI improvement proposal AIP-160.\nThese two types of filter expressions cannot be mixed in one request.\n\nIf you want to use AIP-160, your expression must specify the field name, an\noperator, and the value that you want to use for filtering. The value\nmust be a string, a number, or a boolean. The operator\nmust be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`.\n\nFor example, if you are filtering Compute Engine instances, you can\nexclude instances named `example-instance` by specifying\n`name != example-instance`.\n\nThe `:*` comparison can be used to test whether a key has been defined.\nFor example, to find all objects with `owner` label use:\n```\nlabels.owner:*\n```\n\nYou can also filter nested fields. For example, you could specify\n`scheduling.automaticRestart = false` to include instances only\nif they are not scheduled for automatic restarts. You can use filtering\non nested fields to filter based onresource labels.\n\nTo filter on multiple expressions, provide each separate expression within\nparentheses. For example:\n```\n(scheduling.automaticRestart = true)\n(cpuPlatform = \"Intel Skylake\")\n```\nBy default, each expression is an `AND` expression. However, you\ncan include `AND` and `OR` expressions explicitly.\nFor example:\n```\n(cpuPlatform = \"Intel Skylake\") OR\n(cpuPlatform = \"Intel Broadwell\") AND\n(scheduling.automaticRestart = true)\n```\n\nIf you want to use a regular expression, use the `eq` (equal) or `ne`\n(not equal) operator against a single un-parenthesized expression with or\nwithout quotes or against multiple parenthesized expressions. Examples:\n\n`fieldname eq unquoted literal`\n`fieldname eq 'single quoted literal'`\n`fieldname eq \"double quoted literal\"`\n`(fieldname1 eq literal) (fieldname2 ne \"literal\")`\n\nThe literal value is interpreted as a regular expression using GoogleRE2 library syntax.\nThe literal value must match the entire field.\n\nFor example, to filter for instances that do not end with name \"instance\",\nyou would use `name ne .*instance`.\n\nYou cannot combine constraints on multiple fields using regular\nexpressions.", + "location": "query", + "type": "string" + }, + "maxResults": { + "default": "500", + "description": "The maximum number of results per page that should be returned.\nIf the number of available results is larger than `maxResults`,\nCompute Engine returns a `nextPageToken` that can be used to get\nthe next page of results in subsequent list requests. Acceptable values are\n`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\nare returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation\ntimestamp using `orderBy=\"creationTimestamp desc\"`. This sorts\nresults based on the `creationTimestamp` field in\nreverse chronological order (newest result first). Use this to sort\nresources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or\n`creationTimestamp desc` is supported.", + "location": "query", + "type": "string" + }, + "pageToken": { + "description": "Specifies a page token to use. Set `pageToken` to the\n`nextPageToken` returned by a previous list request to get\nthe 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" + }, + "returnPartialSuccess": { + "description": "Opt-in for partial success behavior which provides partial results in case\nof failure. The default value is false.\n\nFor example, when partial success behavior is enabled, aggregatedList for a\nsingle zone scope either returns all resources in the zone or no resources,\nwith an error code.", + "location": "query", + "type": "boolean" + } + }, + "path": "projects/{project}/global/targetSslProxies", + "response": { + "$ref": "TargetSslProxyList" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ] + }, + "setBackendService": { + "description": "Changes the BackendService for TargetSslProxy.", + "flatPath": "projects/{project}/global/targetSslProxies/{targetSslProxy}/setBackendService", + "httpMethod": "POST", + "id": "compute.targetSslProxies.setBackendService", + "parameterOrder": [ + "project", + "targetSslProxy" + ], + "parameters": { + "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\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).", + "location": "query", + "type": "string" + }, + "targetSslProxy": { + "description": "Name of the TargetSslProxy resource whose BackendService resource\nis to be set.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "required": true, + "type": "string" + } + }, + "path": "projects/{project}/global/targetSslProxies/{targetSslProxy}/setBackendService", + "request": { + "$ref": "TargetSslProxiesSetBackendServiceRequest" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ] + }, + "setCertificateMap": { + "description": "Changes the Certificate Map for TargetSslProxy.", + "flatPath": "projects/{project}/global/targetSslProxies/{targetSslProxy}/setCertificateMap", + "httpMethod": "POST", + "id": "compute.targetSslProxies.setCertificateMap", + "parameterOrder": [ + "project", + "targetSslProxy" + ], + "parameters": { + "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\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).", + "location": "query", + "type": "string" + }, + "targetSslProxy": { + "description": "Name of the TargetSslProxy resource whose CertificateMap is\nto be set. The name must be 1-63 characters long, and comply with RFC1035.", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "projects/{project}/global/targetSslProxies/{targetSslProxy}/setCertificateMap", + "request": { + "$ref": "TargetSslProxiesSetCertificateMapRequest" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ] + }, + "setProxyHeader": { + "description": "Changes the ProxyHeaderType for TargetSslProxy.", + "flatPath": "projects/{project}/global/targetSslProxies/{targetSslProxy}/setProxyHeader", + "httpMethod": "POST", + "id": "compute.targetSslProxies.setProxyHeader", + "parameterOrder": [ + "project", + "targetSslProxy" + ], + "parameters": { + "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\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).", + "location": "query", + "type": "string" + }, + "targetSslProxy": { + "description": "Name of the TargetSslProxy resource whose ProxyHeader is to be set.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "required": true, + "type": "string" + } + }, + "path": "projects/{project}/global/targetSslProxies/{targetSslProxy}/setProxyHeader", + "request": { + "$ref": "TargetSslProxiesSetProxyHeaderRequest" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ] + }, + "setSslCertificates": { + "description": "Changes SslCertificates for TargetSslProxy.", + "flatPath": "projects/{project}/global/targetSslProxies/{targetSslProxy}/setSslCertificates", + "httpMethod": "POST", + "id": "compute.targetSslProxies.setSslCertificates", + "parameterOrder": [ + "project", + "targetSslProxy" + ], + "parameters": { + "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\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).", + "location": "query", + "type": "string" + }, + "targetSslProxy": { + "description": "Name of the TargetSslProxy resource whose SslCertificate resource\nis to be set.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "required": true, + "type": "string" + } + }, + "path": "projects/{project}/global/targetSslProxies/{targetSslProxy}/setSslCertificates", + "request": { + "$ref": "TargetSslProxiesSetSslCertificatesRequest" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ] + }, + "setSslPolicy": { + "description": "Sets the SSL policy for TargetSslProxy. The SSL policy specifies the\nserver-side support for SSL features. This affects connections between\nclients and the load balancer. They do not affect the\nconnection between the load balancer and the backends.", + "flatPath": "projects/{project}/global/targetSslProxies/{targetSslProxy}/setSslPolicy", + "httpMethod": "POST", + "id": "compute.targetSslProxies.setSslPolicy", + "parameterOrder": [ + "project", + "targetSslProxy" + ], + "parameters": { + "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\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).", + "location": "query", + "type": "string" + }, + "targetSslProxy": { + "description": "Name of the TargetSslProxy resource whose SSL policy is\nto be set. The name must be 1-63 characters long, and comply with RFC1035.", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "projects/{project}/global/targetSslProxies/{targetSslProxy}/setSslPolicy", + "request": { + "$ref": "SslPolicyReference" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ] + }, + "testIamPermissions": { + "description": "Returns permissions that a caller has on the specified resource.", + "flatPath": "projects/{project}/global/targetSslProxies/{resource}/testIamPermissions", + "httpMethod": "POST", + "id": "compute.targetSslProxies.testIamPermissions", + "parameterOrder": [ + "project", + "resource" + ], + "parameters": { + "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" + }, + "resource": { + "description": "Name or id of the resource for this request.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "required": true, + "type": "string" + } + }, + "path": "projects/{project}/global/targetSslProxies/{resource}/testIamPermissions", + "request": { + "$ref": "TestPermissionsRequest" + }, + "response": { + "$ref": "TestPermissionsResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ] + } + } + }, + "targetTcpProxies": { + "methods": { + "aggregatedList": { + "description": "Retrieves the list of all TargetTcpProxy resources, regional and global,\navailable to the specified project.\n\nTo prevent failure, Google recommends that you set the\n`returnPartialSuccess` parameter to `true`.", + "flatPath": "projects/{project}/aggregated/targetTcpProxies", + "httpMethod": "GET", + "id": "compute.targetTcpProxies.aggregatedList", + "parameterOrder": [ + "project" + ], + "parameters": { + "filter": { + "description": "A filter expression that filters resources listed in the response. Most\nCompute resources support two types of filter expressions:\nexpressions that support regular expressions and expressions that follow\nAPI improvement proposal AIP-160.\nThese two types of filter expressions cannot be mixed in one request.\n\nIf you want to use AIP-160, your expression must specify the field name, an\noperator, and the value that you want to use for filtering. The value\nmust be a string, a number, or a boolean. The operator\nmust be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`.\n\nFor example, if you are filtering Compute Engine instances, you can\nexclude instances named `example-instance` by specifying\n`name != example-instance`.\n\nThe `:*` comparison can be used to test whether a key has been defined.\nFor example, to find all objects with `owner` label use:\n```\nlabels.owner:*\n```\n\nYou can also filter nested fields. For example, you could specify\n`scheduling.automaticRestart = false` to include instances only\nif they are not scheduled for automatic restarts. You can use filtering\non nested fields to filter based onresource labels.\n\nTo filter on multiple expressions, provide each separate expression within\nparentheses. For example:\n```\n(scheduling.automaticRestart = true)\n(cpuPlatform = \"Intel Skylake\")\n```\nBy default, each expression is an `AND` expression. However, you\ncan include `AND` and `OR` expressions explicitly.\nFor example:\n```\n(cpuPlatform = \"Intel Skylake\") OR\n(cpuPlatform = \"Intel Broadwell\") AND\n(scheduling.automaticRestart = true)\n```\n\nIf you want to use a regular expression, use the `eq` (equal) or `ne`\n(not equal) operator against a single un-parenthesized expression with or\nwithout quotes or against multiple parenthesized expressions. Examples:\n\n`fieldname eq unquoted literal`\n`fieldname eq 'single quoted literal'`\n`fieldname eq \"double quoted literal\"`\n`(fieldname1 eq literal) (fieldname2 ne \"literal\")`\n\nThe literal value is interpreted as a regular expression using GoogleRE2 library syntax.\nThe literal value must match the entire field.\n\nFor example, to filter for instances that do not end with name \"instance\",\nyou would use `name ne .*instance`.\n\nYou cannot combine constraints on multiple fields using regular\nexpressions.", + "location": "query", + "type": "string" + }, + "includeAllScopes": { + "description": "Indicates whether every visible scope for each scope type (zone, region,\nglobal) should be included in the response. For new resource types added\nafter this field, the flag has no effect as new resource types will always\ninclude every visible scope for each scope type in response. For resource\ntypes which predate this field, if this flag is omitted or false, only\nscopes of the scope types where the resource type is expected to be found\nwill be included.", + "location": "query", + "type": "boolean" + }, + "maxResults": { + "default": "500", + "description": "The maximum number of results per page that should be returned.\nIf the number of available results is larger than `maxResults`,\nCompute Engine returns a `nextPageToken` that can be used to get\nthe next page of results in subsequent list requests. Acceptable values are\n`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\nare returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation\ntimestamp using `orderBy=\"creationTimestamp desc\"`. This sorts\nresults based on the `creationTimestamp` field in\nreverse chronological order (newest result first). Use this to sort\nresources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or\n`creationTimestamp desc` is supported.", + "location": "query", + "type": "string" + }, + "pageToken": { + "description": "Specifies a page token to use. Set `pageToken` to the\n`nextPageToken` returned by a previous list request to get\nthe next page of results.", + "location": "query", + "type": "string" + }, + "project": { + "description": "Name of the project scoping 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" + }, + "returnPartialSuccess": { + "description": "Opt-in for partial success behavior which provides partial results in case\nof failure. The default value is false.\n\nFor example, when partial success behavior is enabled, aggregatedList for a\nsingle zone scope either returns all resources in the zone or no resources,\nwith an error code.", + "location": "query", + "type": "boolean" + }, + "serviceProjectNumber": { + "description": "The Shared VPC service project id or service project number for which\naggregated list request is invoked for subnetworks list-usable api.", + "format": "int64", + "location": "query", + "type": "string" + } + }, + "path": "projects/{project}/aggregated/targetTcpProxies", + "response": { + "$ref": "TargetTcpProxyAggregatedList" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ] + }, + "delete": { + "description": "Deletes the specified TargetTcpProxy resource.", + "flatPath": "projects/{project}/global/targetTcpProxies/{targetTcpProxy}", + "httpMethod": "DELETE", + "id": "compute.targetTcpProxies.delete", + "parameterOrder": [ + "project", + "targetTcpProxy" + ], + "parameters": { + "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\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).", + "location": "query", + "type": "string" + }, + "targetTcpProxy": { + "description": "Name of the TargetTcpProxy resource to delete.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "required": true, + "type": "string" + } + }, + "path": "projects/{project}/global/targetTcpProxies/{targetTcpProxy}", + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ] + }, + "get": { + "description": "Returns the specified TargetTcpProxy resource.", + "flatPath": "projects/{project}/global/targetTcpProxies/{targetTcpProxy}", + "httpMethod": "GET", + "id": "compute.targetTcpProxies.get", + "parameterOrder": [ + "project", + "targetTcpProxy" + ], + "parameters": { + "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" + }, + "targetTcpProxy": { + "description": "Name of the TargetTcpProxy resource to return.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "required": true, + "type": "string" + } + }, + "path": "projects/{project}/global/targetTcpProxies/{targetTcpProxy}", + "response": { + "$ref": "TargetTcpProxy" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ] + }, + "insert": { + "description": "Creates a TargetTcpProxy resource in the specified project using\nthe data included in the request.", + "flatPath": "projects/{project}/global/targetTcpProxies", + "httpMethod": "POST", + "id": "compute.targetTcpProxies.insert", + "parameterOrder": [ + "project" + ], + "parameters": { + "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\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).", + "location": "query", + "type": "string" + } + }, + "path": "projects/{project}/global/targetTcpProxies", + "request": { + "$ref": "TargetTcpProxy" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ] + }, + "list": { + "description": "Retrieves the list of TargetTcpProxy resources\navailable to the specified project.", + "flatPath": "projects/{project}/global/targetTcpProxies", + "httpMethod": "GET", + "id": "compute.targetTcpProxies.list", + "parameterOrder": [ + "project" + ], + "parameters": { + "filter": { + "description": "A filter expression that filters resources listed in the response. Most\nCompute resources support two types of filter expressions:\nexpressions that support regular expressions and expressions that follow\nAPI improvement proposal AIP-160.\nThese two types of filter expressions cannot be mixed in one request.\n\nIf you want to use AIP-160, your expression must specify the field name, an\noperator, and the value that you want to use for filtering. The value\nmust be a string, a number, or a boolean. The operator\nmust be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`.\n\nFor example, if you are filtering Compute Engine instances, you can\nexclude instances named `example-instance` by specifying\n`name != example-instance`.\n\nThe `:*` comparison can be used to test whether a key has been defined.\nFor example, to find all objects with `owner` label use:\n```\nlabels.owner:*\n```\n\nYou can also filter nested fields. For example, you could specify\n`scheduling.automaticRestart = false` to include instances only\nif they are not scheduled for automatic restarts. You can use filtering\non nested fields to filter based onresource labels.\n\nTo filter on multiple expressions, provide each separate expression within\nparentheses. For example:\n```\n(scheduling.automaticRestart = true)\n(cpuPlatform = \"Intel Skylake\")\n```\nBy default, each expression is an `AND` expression. However, you\ncan include `AND` and `OR` expressions explicitly.\nFor example:\n```\n(cpuPlatform = \"Intel Skylake\") OR\n(cpuPlatform = \"Intel Broadwell\") AND\n(scheduling.automaticRestart = true)\n```\n\nIf you want to use a regular expression, use the `eq` (equal) or `ne`\n(not equal) operator against a single un-parenthesized expression with or\nwithout quotes or against multiple parenthesized expressions. Examples:\n\n`fieldname eq unquoted literal`\n`fieldname eq 'single quoted literal'`\n`fieldname eq \"double quoted literal\"`\n`(fieldname1 eq literal) (fieldname2 ne \"literal\")`\n\nThe literal value is interpreted as a regular expression using GoogleRE2 library syntax.\nThe literal value must match the entire field.\n\nFor example, to filter for instances that do not end with name \"instance\",\nyou would use `name ne .*instance`.\n\nYou cannot combine constraints on multiple fields using regular\nexpressions.", + "location": "query", + "type": "string" + }, + "maxResults": { + "default": "500", + "description": "The maximum number of results per page that should be returned.\nIf the number of available results is larger than `maxResults`,\nCompute Engine returns a `nextPageToken` that can be used to get\nthe next page of results in subsequent list requests. Acceptable values are\n`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\nare returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation\ntimestamp using `orderBy=\"creationTimestamp desc\"`. This sorts\nresults based on the `creationTimestamp` field in\nreverse chronological order (newest result first). Use this to sort\nresources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or\n`creationTimestamp desc` is supported.", + "location": "query", + "type": "string" + }, + "pageToken": { + "description": "Specifies a page token to use. Set `pageToken` to the\n`nextPageToken` returned by a previous list request to get\nthe 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" + }, + "returnPartialSuccess": { + "description": "Opt-in for partial success behavior which provides partial results in case\nof failure. The default value is false.\n\nFor example, when partial success behavior is enabled, aggregatedList for a\nsingle zone scope either returns all resources in the zone or no resources,\nwith an error code.", + "location": "query", + "type": "boolean" + } + }, + "path": "projects/{project}/global/targetTcpProxies", + "response": { + "$ref": "TargetTcpProxyList" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ] + }, + "setBackendService": { + "description": "Changes the BackendService for TargetTcpProxy.", + "flatPath": "projects/{project}/global/targetTcpProxies/{targetTcpProxy}/setBackendService", + "httpMethod": "POST", + "id": "compute.targetTcpProxies.setBackendService", + "parameterOrder": [ + "project", + "targetTcpProxy" + ], + "parameters": { + "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\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).", + "location": "query", + "type": "string" + }, + "targetTcpProxy": { + "description": "Name of the TargetTcpProxy resource whose BackendService resource\nis to be set.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "required": true, + "type": "string" + } + }, + "path": "projects/{project}/global/targetTcpProxies/{targetTcpProxy}/setBackendService", + "request": { + "$ref": "TargetTcpProxiesSetBackendServiceRequest" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ] + }, + "setProxyHeader": { + "description": "Changes the ProxyHeaderType for TargetTcpProxy.", + "flatPath": "projects/{project}/global/targetTcpProxies/{targetTcpProxy}/setProxyHeader", + "httpMethod": "POST", + "id": "compute.targetTcpProxies.setProxyHeader", + "parameterOrder": [ + "project", + "targetTcpProxy" + ], + "parameters": { + "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\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).", + "location": "query", + "type": "string" + }, + "targetTcpProxy": { + "description": "Name of the TargetTcpProxy resource whose ProxyHeader is to be set.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "required": true, + "type": "string" + } + }, + "path": "projects/{project}/global/targetTcpProxies/{targetTcpProxy}/setProxyHeader", + "request": { + "$ref": "TargetTcpProxiesSetProxyHeaderRequest" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ] + }, + "testIamPermissions": { + "description": "Returns permissions that a caller has on the specified resource.", + "flatPath": "projects/{project}/global/targetTcpProxies/{resource}/testIamPermissions", + "httpMethod": "POST", + "id": "compute.targetTcpProxies.testIamPermissions", + "parameterOrder": [ + "project", + "resource" + ], + "parameters": { + "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" + }, + "resource": { + "description": "Name or id of the resource for this request.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "required": true, + "type": "string" + } + }, + "path": "projects/{project}/global/targetTcpProxies/{resource}/testIamPermissions", + "request": { + "$ref": "TestPermissionsRequest" + }, + "response": { + "$ref": "TestPermissionsResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ] + } + } + }, + "targetVpnGateways": { + "methods": { + "aggregatedList": { + "description": "Retrieves an aggregated list of target VPN gateways.\n\nTo prevent failure, Google recommends that you set the\n`returnPartialSuccess` parameter to `true`.", + "flatPath": "projects/{project}/aggregated/targetVpnGateways", + "httpMethod": "GET", + "id": "compute.targetVpnGateways.aggregatedList", + "parameterOrder": [ + "project" + ], + "parameters": { + "filter": { + "description": "A filter expression that filters resources listed in the response. Most\nCompute resources support two types of filter expressions:\nexpressions that support regular expressions and expressions that follow\nAPI improvement proposal AIP-160.\nThese two types of filter expressions cannot be mixed in one request.\n\nIf you want to use AIP-160, your expression must specify the field name, an\noperator, and the value that you want to use for filtering. The value\nmust be a string, a number, or a boolean. The operator\nmust be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`.\n\nFor example, if you are filtering Compute Engine instances, you can\nexclude instances named `example-instance` by specifying\n`name != example-instance`.\n\nThe `:*` comparison can be used to test whether a key has been defined.\nFor example, to find all objects with `owner` label use:\n```\nlabels.owner:*\n```\n\nYou can also filter nested fields. For example, you could specify\n`scheduling.automaticRestart = false` to include instances only\nif they are not scheduled for automatic restarts. You can use filtering\non nested fields to filter based onresource labels.\n\nTo filter on multiple expressions, provide each separate expression within\nparentheses. For example:\n```\n(scheduling.automaticRestart = true)\n(cpuPlatform = \"Intel Skylake\")\n```\nBy default, each expression is an `AND` expression. However, you\ncan include `AND` and `OR` expressions explicitly.\nFor example:\n```\n(cpuPlatform = \"Intel Skylake\") OR\n(cpuPlatform = \"Intel Broadwell\") AND\n(scheduling.automaticRestart = true)\n```\n\nIf you want to use a regular expression, use the `eq` (equal) or `ne`\n(not equal) operator against a single un-parenthesized expression with or\nwithout quotes or against multiple parenthesized expressions. Examples:\n\n`fieldname eq unquoted literal`\n`fieldname eq 'single quoted literal'`\n`fieldname eq \"double quoted literal\"`\n`(fieldname1 eq literal) (fieldname2 ne \"literal\")`\n\nThe literal value is interpreted as a regular expression using GoogleRE2 library syntax.\nThe literal value must match the entire field.\n\nFor example, to filter for instances that do not end with name \"instance\",\nyou would use `name ne .*instance`.\n\nYou cannot combine constraints on multiple fields using regular\nexpressions.", + "location": "query", + "type": "string" + }, + "includeAllScopes": { + "description": "Indicates whether every visible scope for each scope type (zone, region,\nglobal) should be included in the response. For new resource types added\nafter this field, the flag has no effect as new resource types will always\ninclude every visible scope for each scope type in response. For resource\ntypes which predate this field, if this flag is omitted or false, only\nscopes of the scope types where the resource type is expected to be found\nwill be included.", + "location": "query", + "type": "boolean" + }, + "maxResults": { + "default": "500", + "description": "The maximum number of results per page that should be returned.\nIf the number of available results is larger than `maxResults`,\nCompute Engine returns a `nextPageToken` that can be used to get\nthe next page of results in subsequent list requests. Acceptable values are\n`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\nare returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation\ntimestamp using `orderBy=\"creationTimestamp desc\"`. This sorts\nresults based on the `creationTimestamp` field in\nreverse chronological order (newest result first). Use this to sort\nresources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or\n`creationTimestamp desc` is supported.", + "location": "query", + "type": "string" + }, + "pageToken": { + "description": "Specifies a page token to use. Set `pageToken` to the\n`nextPageToken` returned by a previous list request to get\nthe 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" + }, + "returnPartialSuccess": { + "description": "Opt-in for partial success behavior which provides partial results in case\nof failure. The default value is false.\n\nFor example, when partial success behavior is enabled, aggregatedList for a\nsingle zone scope either returns all resources in the zone or no resources,\nwith an error code.", + "location": "query", + "type": "boolean" + }, + "serviceProjectNumber": { + "description": "The Shared VPC service project id or service project number for which\naggregated list request is invoked for subnetworks list-usable api.", + "format": "int64", + "location": "query", + "type": "string" + } + }, + "path": "projects/{project}/aggregated/targetVpnGateways", + "response": { + "$ref": "TargetVpnGatewayAggregatedList" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ] + }, + "delete": { + "description": "Deletes the specified target VPN gateway.", + "flatPath": "projects/{project}/regions/{region}/targetVpnGateways/{targetVpnGateway}", + "httpMethod": "DELETE", + "id": "compute.targetVpnGateways.delete", + "parameterOrder": [ + "project", + "region", + "targetVpnGateway" + ], + "parameters": { + "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" + }, + "requestId": { + "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).", + "location": "query", + "type": "string" + }, + "targetVpnGateway": { + "description": "Name of the target VPN gateway to delete.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "required": true, + "type": "string" + } + }, + "path": "projects/{project}/regions/{region}/targetVpnGateways/{targetVpnGateway}", + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ] + }, + "get": { + "description": "Returns the specified target VPN gateway.", + "flatPath": "projects/{project}/regions/{region}/targetVpnGateways/{targetVpnGateway}", + "httpMethod": "GET", + "id": "compute.targetVpnGateways.get", + "parameterOrder": [ + "project", + "region", + "targetVpnGateway" + ], + "parameters": { + "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" + }, + "targetVpnGateway": { + "description": "Name of the target VPN gateway to return.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "required": true, + "type": "string" + } + }, + "path": "projects/{project}/regions/{region}/targetVpnGateways/{targetVpnGateway}", + "response": { + "$ref": "TargetVpnGateway" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ] + }, + "insert": { + "description": "Creates a target VPN gateway in the specified project and region using\nthe data included in the request.", + "flatPath": "projects/{project}/regions/{region}/targetVpnGateways", + "httpMethod": "POST", + "id": "compute.targetVpnGateways.insert", + "parameterOrder": [ + "project", + "region" + ], + "parameters": { + "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" + }, + "requestId": { + "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).", + "location": "query", + "type": "string" + } + }, + "path": "projects/{project}/regions/{region}/targetVpnGateways", + "request": { + "$ref": "TargetVpnGateway" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ] + }, + "list": { + "description": "Retrieves a list of target VPN gateways available to the specified\nproject and region.", + "flatPath": "projects/{project}/regions/{region}/targetVpnGateways", + "httpMethod": "GET", + "id": "compute.targetVpnGateways.list", + "parameterOrder": [ + "project", + "region" + ], + "parameters": { + "filter": { + "description": "A filter expression that filters resources listed in the response. Most\nCompute resources support two types of filter expressions:\nexpressions that support regular expressions and expressions that follow\nAPI improvement proposal AIP-160.\nThese two types of filter expressions cannot be mixed in one request.\n\nIf you want to use AIP-160, your expression must specify the field name, an\noperator, and the value that you want to use for filtering. The value\nmust be a string, a number, or a boolean. The operator\nmust be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`.\n\nFor example, if you are filtering Compute Engine instances, you can\nexclude instances named `example-instance` by specifying\n`name != example-instance`.\n\nThe `:*` comparison can be used to test whether a key has been defined.\nFor example, to find all objects with `owner` label use:\n```\nlabels.owner:*\n```\n\nYou can also filter nested fields. For example, you could specify\n`scheduling.automaticRestart = false` to include instances only\nif they are not scheduled for automatic restarts. You can use filtering\non nested fields to filter based onresource labels.\n\nTo filter on multiple expressions, provide each separate expression within\nparentheses. For example:\n```\n(scheduling.automaticRestart = true)\n(cpuPlatform = \"Intel Skylake\")\n```\nBy default, each expression is an `AND` expression. However, you\ncan include `AND` and `OR` expressions explicitly.\nFor example:\n```\n(cpuPlatform = \"Intel Skylake\") OR\n(cpuPlatform = \"Intel Broadwell\") AND\n(scheduling.automaticRestart = true)\n```\n\nIf you want to use a regular expression, use the `eq` (equal) or `ne`\n(not equal) operator against a single un-parenthesized expression with or\nwithout quotes or against multiple parenthesized expressions. Examples:\n\n`fieldname eq unquoted literal`\n`fieldname eq 'single quoted literal'`\n`fieldname eq \"double quoted literal\"`\n`(fieldname1 eq literal) (fieldname2 ne \"literal\")`\n\nThe literal value is interpreted as a regular expression using GoogleRE2 library syntax.\nThe literal value must match the entire field.\n\nFor example, to filter for instances that do not end with name \"instance\",\nyou would use `name ne .*instance`.\n\nYou cannot combine constraints on multiple fields using regular\nexpressions.", + "location": "query", + "type": "string" + }, + "maxResults": { + "default": "500", + "description": "The maximum number of results per page that should be returned.\nIf the number of available results is larger than `maxResults`,\nCompute Engine returns a `nextPageToken` that can be used to get\nthe next page of results in subsequent list requests. Acceptable values are\n`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\nare returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation\ntimestamp using `orderBy=\"creationTimestamp desc\"`. This sorts\nresults based on the `creationTimestamp` field in\nreverse chronological order (newest result first). Use this to sort\nresources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or\n`creationTimestamp desc` is supported.", + "location": "query", + "type": "string" + }, + "pageToken": { + "description": "Specifies a page token to use. Set `pageToken` to the\n`nextPageToken` returned by a previous list request to get\nthe 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" + }, + "returnPartialSuccess": { + "description": "Opt-in for partial success behavior which provides partial results in case\nof failure. The default value is false.\n\nFor example, when partial success behavior is enabled, aggregatedList for a\nsingle zone scope either returns all resources in the zone or no resources,\nwith an error code.", + "location": "query", + "type": "boolean" + } + }, + "path": "projects/{project}/regions/{region}/targetVpnGateways", + "response": { + "$ref": "TargetVpnGatewayList" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ] + }, + "setLabels": { + "description": "Sets the labels on a TargetVpnGateway. To learn more about labels, read theLabeling\nResources documentation.", + "flatPath": "projects/{project}/regions/{region}/targetVpnGateways/{resource}/setLabels", + "httpMethod": "POST", + "id": "compute.targetVpnGateways.setLabels", + "parameterOrder": [ + "project", + "region", + "resource" + ], + "parameters": { + "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": "The region for this request.", + "location": "path", + "pattern": "[a-z](?:[-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\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).", + "location": "query", + "type": "string" + }, + "resource": { + "description": "Name or id of the resource for this request.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "required": true, + "type": "string" + } + }, + "path": "projects/{project}/regions/{region}/targetVpnGateways/{resource}/setLabels", + "request": { + "$ref": "RegionSetLabelsRequest" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ] + } + } + }, + "urlMaps": { + "methods": { + "aggregatedList": { + "description": "Retrieves the list of all UrlMap resources, regional and global,\navailable to the specified project.\n\nTo prevent failure, Google recommends that you set the\n`returnPartialSuccess` parameter to `true`.", + "flatPath": "projects/{project}/aggregated/urlMaps", + "httpMethod": "GET", + "id": "compute.urlMaps.aggregatedList", + "parameterOrder": [ + "project" + ], + "parameters": { + "filter": { + "description": "A filter expression that filters resources listed in the response. Most\nCompute resources support two types of filter expressions:\nexpressions that support regular expressions and expressions that follow\nAPI improvement proposal AIP-160.\nThese two types of filter expressions cannot be mixed in one request.\n\nIf you want to use AIP-160, your expression must specify the field name, an\noperator, and the value that you want to use for filtering. The value\nmust be a string, a number, or a boolean. The operator\nmust be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`.\n\nFor example, if you are filtering Compute Engine instances, you can\nexclude instances named `example-instance` by specifying\n`name != example-instance`.\n\nThe `:*` comparison can be used to test whether a key has been defined.\nFor example, to find all objects with `owner` label use:\n```\nlabels.owner:*\n```\n\nYou can also filter nested fields. For example, you could specify\n`scheduling.automaticRestart = false` to include instances only\nif they are not scheduled for automatic restarts. You can use filtering\non nested fields to filter based onresource labels.\n\nTo filter on multiple expressions, provide each separate expression within\nparentheses. For example:\n```\n(scheduling.automaticRestart = true)\n(cpuPlatform = \"Intel Skylake\")\n```\nBy default, each expression is an `AND` expression. However, you\ncan include `AND` and `OR` expressions explicitly.\nFor example:\n```\n(cpuPlatform = \"Intel Skylake\") OR\n(cpuPlatform = \"Intel Broadwell\") AND\n(scheduling.automaticRestart = true)\n```\n\nIf you want to use a regular expression, use the `eq` (equal) or `ne`\n(not equal) operator against a single un-parenthesized expression with or\nwithout quotes or against multiple parenthesized expressions. Examples:\n\n`fieldname eq unquoted literal`\n`fieldname eq 'single quoted literal'`\n`fieldname eq \"double quoted literal\"`\n`(fieldname1 eq literal) (fieldname2 ne \"literal\")`\n\nThe literal value is interpreted as a regular expression using GoogleRE2 library syntax.\nThe literal value must match the entire field.\n\nFor example, to filter for instances that do not end with name \"instance\",\nyou would use `name ne .*instance`.\n\nYou cannot combine constraints on multiple fields using regular\nexpressions.", + "location": "query", + "type": "string" + }, + "includeAllScopes": { + "description": "Indicates whether every visible scope for each scope type (zone, region,\nglobal) should be included in the response. For new resource types added\nafter this field, the flag has no effect as new resource types will always\ninclude every visible scope for each scope type in response. For resource\ntypes which predate this field, if this flag is omitted or false, only\nscopes of the scope types where the resource type is expected to be found\nwill be included.", + "location": "query", + "type": "boolean" + }, + "maxResults": { + "default": "500", + "description": "The maximum number of results per page that should be returned.\nIf the number of available results is larger than `maxResults`,\nCompute Engine returns a `nextPageToken` that can be used to get\nthe next page of results in subsequent list requests. Acceptable values are\n`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\nare returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation\ntimestamp using `orderBy=\"creationTimestamp desc\"`. This sorts\nresults based on the `creationTimestamp` field in\nreverse chronological order (newest result first). Use this to sort\nresources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or\n`creationTimestamp desc` is supported.", + "location": "query", + "type": "string" + }, + "pageToken": { + "description": "Specifies a page token to use. Set `pageToken` to the\n`nextPageToken` returned by a previous list request to get\nthe next page of results.", + "location": "query", + "type": "string" + }, + "project": { + "description": "Name of the project scoping 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" + }, + "returnPartialSuccess": { + "description": "Opt-in for partial success behavior which provides partial results in case\nof failure. The default value is false.\n\nFor example, when partial success behavior is enabled, aggregatedList for a\nsingle zone scope either returns all resources in the zone or no resources,\nwith an error code.", + "location": "query", + "type": "boolean" + }, + "serviceProjectNumber": { + "description": "The Shared VPC service project id or service project number for which\naggregated list request is invoked for subnetworks list-usable api.", + "format": "int64", + "location": "query", + "type": "string" + } + }, + "path": "projects/{project}/aggregated/urlMaps", + "response": { + "$ref": "UrlMapsAggregatedList" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ] + }, + "delete": { + "description": "Deletes the specified UrlMap resource.", + "flatPath": "projects/{project}/global/urlMaps/{urlMap}", + "httpMethod": "DELETE", + "id": "compute.urlMaps.delete", + "parameterOrder": [ + "project", + "urlMap" + ], + "parameters": { + "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\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).", + "location": "query", + "type": "string" + }, + "urlMap": { + "description": "Name of the UrlMap resource to delete.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "required": true, + "type": "string" + } + }, + "path": "projects/{project}/global/urlMaps/{urlMap}", + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ] + }, + "get": { + "description": "Returns the specified UrlMap resource.", + "flatPath": "projects/{project}/global/urlMaps/{urlMap}", + "httpMethod": "GET", + "id": "compute.urlMaps.get", + "parameterOrder": [ + "project", + "urlMap" + ], + "parameters": { + "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" + }, + "urlMap": { + "description": "Name of the UrlMap resource to return.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "required": true, + "type": "string" + } + }, + "path": "projects/{project}/global/urlMaps/{urlMap}", + "response": { + "$ref": "UrlMap" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ] + }, + "insert": { + "description": "Creates a UrlMap resource in the specified project using\nthe data included in the request.", + "flatPath": "projects/{project}/global/urlMaps", + "httpMethod": "POST", + "id": "compute.urlMaps.insert", + "parameterOrder": [ + "project" + ], + "parameters": { + "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\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).", + "location": "query", + "type": "string" + } + }, + "path": "projects/{project}/global/urlMaps", + "request": { + "$ref": "UrlMap" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ] + }, + "invalidateCache": { + "description": "Initiates a cache invalidation operation, invalidating the specified path,\nscoped to the specified UrlMap.\n\nFor more information, see [Invalidating cached\ncontent](/cdn/docs/invalidating-cached-content).", + "flatPath": "projects/{project}/global/urlMaps/{urlMap}/invalidateCache", + "httpMethod": "POST", + "id": "compute.urlMaps.invalidateCache", + "parameterOrder": [ + "project", + "urlMap" + ], + "parameters": { + "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\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).", + "location": "query", + "type": "string" + }, + "urlMap": { + "description": "Name of the UrlMap scoping this request.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "required": true, + "type": "string" + } + }, + "path": "projects/{project}/global/urlMaps/{urlMap}/invalidateCache", + "request": { + "$ref": "CacheInvalidationRule" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ] + }, + "list": { + "description": "Retrieves the list of UrlMap resources available to the specified\nproject.", + "flatPath": "projects/{project}/global/urlMaps", + "httpMethod": "GET", + "id": "compute.urlMaps.list", + "parameterOrder": [ + "project" + ], + "parameters": { + "filter": { + "description": "A filter expression that filters resources listed in the response. Most\nCompute resources support two types of filter expressions:\nexpressions that support regular expressions and expressions that follow\nAPI improvement proposal AIP-160.\nThese two types of filter expressions cannot be mixed in one request.\n\nIf you want to use AIP-160, your expression must specify the field name, an\noperator, and the value that you want to use for filtering. The value\nmust be a string, a number, or a boolean. The operator\nmust be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`.\n\nFor example, if you are filtering Compute Engine instances, you can\nexclude instances named `example-instance` by specifying\n`name != example-instance`.\n\nThe `:*` comparison can be used to test whether a key has been defined.\nFor example, to find all objects with `owner` label use:\n```\nlabels.owner:*\n```\n\nYou can also filter nested fields. For example, you could specify\n`scheduling.automaticRestart = false` to include instances only\nif they are not scheduled for automatic restarts. You can use filtering\non nested fields to filter based onresource labels.\n\nTo filter on multiple expressions, provide each separate expression within\nparentheses. For example:\n```\n(scheduling.automaticRestart = true)\n(cpuPlatform = \"Intel Skylake\")\n```\nBy default, each expression is an `AND` expression. However, you\ncan include `AND` and `OR` expressions explicitly.\nFor example:\n```\n(cpuPlatform = \"Intel Skylake\") OR\n(cpuPlatform = \"Intel Broadwell\") AND\n(scheduling.automaticRestart = true)\n```\n\nIf you want to use a regular expression, use the `eq` (equal) or `ne`\n(not equal) operator against a single un-parenthesized expression with or\nwithout quotes or against multiple parenthesized expressions. Examples:\n\n`fieldname eq unquoted literal`\n`fieldname eq 'single quoted literal'`\n`fieldname eq \"double quoted literal\"`\n`(fieldname1 eq literal) (fieldname2 ne \"literal\")`\n\nThe literal value is interpreted as a regular expression using GoogleRE2 library syntax.\nThe literal value must match the entire field.\n\nFor example, to filter for instances that do not end with name \"instance\",\nyou would use `name ne .*instance`.\n\nYou cannot combine constraints on multiple fields using regular\nexpressions.", + "location": "query", + "type": "string" + }, + "maxResults": { + "default": "500", + "description": "The maximum number of results per page that should be returned.\nIf the number of available results is larger than `maxResults`,\nCompute Engine returns a `nextPageToken` that can be used to get\nthe next page of results in subsequent list requests. Acceptable values are\n`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\nare returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation\ntimestamp using `orderBy=\"creationTimestamp desc\"`. This sorts\nresults based on the `creationTimestamp` field in\nreverse chronological order (newest result first). Use this to sort\nresources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or\n`creationTimestamp desc` is supported.", + "location": "query", + "type": "string" + }, + "pageToken": { + "description": "Specifies a page token to use. Set `pageToken` to the\n`nextPageToken` returned by a previous list request to get\nthe 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" + }, + "returnPartialSuccess": { + "description": "Opt-in for partial success behavior which provides partial results in case\nof failure. The default value is false.\n\nFor example, when partial success behavior is enabled, aggregatedList for a\nsingle zone scope either returns all resources in the zone or no resources,\nwith an error code.", + "location": "query", + "type": "boolean" + } + }, + "path": "projects/{project}/global/urlMaps", + "response": { + "$ref": "UrlMapList" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ] + }, + "patch": { + "description": "Patches the specified UrlMap resource with the data included in the\nrequest. This method supportsPATCH\nsemantics and uses theJSON merge\npatch format and processing rules.", + "flatPath": "projects/{project}/global/urlMaps/{urlMap}", + "httpMethod": "PATCH", + "id": "compute.urlMaps.patch", + "parameterOrder": [ + "project", + "urlMap" + ], + "parameters": { + "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\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).", + "location": "query", + "type": "string" + }, + "urlMap": { + "description": "Name of the UrlMap resource to patch.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "required": true, + "type": "string" + } + }, + "path": "projects/{project}/global/urlMaps/{urlMap}", + "request": { + "$ref": "UrlMap" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ] + }, + "testIamPermissions": { + "description": "Returns permissions that a caller has on the specified resource.", + "flatPath": "projects/{project}/global/urlMaps/{resource}/testIamPermissions", + "httpMethod": "POST", + "id": "compute.urlMaps.testIamPermissions", + "parameterOrder": [ + "project", + "resource" + ], + "parameters": { + "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" + }, + "resource": { + "description": "Name or id of the resource for this request.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "required": true, + "type": "string" + } + }, + "path": "projects/{project}/global/urlMaps/{resource}/testIamPermissions", + "request": { + "$ref": "TestPermissionsRequest" + }, + "response": { + "$ref": "TestPermissionsResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ] + }, + "update": { + "description": "Updates the specified UrlMap resource with the data included in the\nrequest.", + "flatPath": "projects/{project}/global/urlMaps/{urlMap}", + "httpMethod": "PUT", + "id": "compute.urlMaps.update", + "parameterOrder": [ + "project", + "urlMap" + ], + "parameters": { + "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\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).", + "location": "query", + "type": "string" + }, + "urlMap": { + "description": "Name of the UrlMap resource to update.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "required": true, + "type": "string" + } + }, + "path": "projects/{project}/global/urlMaps/{urlMap}", + "request": { + "$ref": "UrlMap" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ] + }, + "validate": { + "description": "Runs static validation for the UrlMap. In particular, the tests of the\nprovided UrlMap will be run. Calling this method does NOT create the\nUrlMap.", + "flatPath": "projects/{project}/global/urlMaps/{urlMap}/validate", + "httpMethod": "POST", + "id": "compute.urlMaps.validate", + "parameterOrder": [ + "project", + "urlMap" + ], + "parameters": { + "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" + }, + "urlMap": { + "description": "Name of the UrlMap resource to be validated as.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "required": true, + "type": "string" + } + }, + "path": "projects/{project}/global/urlMaps/{urlMap}/validate", + "request": { + "$ref": "UrlMapsValidateRequest" + }, + "response": { + "$ref": "UrlMapsValidateResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ] + } + } + }, + "vpnGateways": { + "methods": { + "aggregatedList": { + "description": "Retrieves an aggregated list of VPN gateways.\n\nTo prevent failure, Google recommends that you set the\n`returnPartialSuccess` parameter to `true`.", + "flatPath": "projects/{project}/aggregated/vpnGateways", + "httpMethod": "GET", + "id": "compute.vpnGateways.aggregatedList", + "parameterOrder": [ + "project" + ], + "parameters": { + "filter": { + "description": "A filter expression that filters resources listed in the response. Most\nCompute resources support two types of filter expressions:\nexpressions that support regular expressions and expressions that follow\nAPI improvement proposal AIP-160.\nThese two types of filter expressions cannot be mixed in one request.\n\nIf you want to use AIP-160, your expression must specify the field name, an\noperator, and the value that you want to use for filtering. The value\nmust be a string, a number, or a boolean. The operator\nmust be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`.\n\nFor example, if you are filtering Compute Engine instances, you can\nexclude instances named `example-instance` by specifying\n`name != example-instance`.\n\nThe `:*` comparison can be used to test whether a key has been defined.\nFor example, to find all objects with `owner` label use:\n```\nlabels.owner:*\n```\n\nYou can also filter nested fields. For example, you could specify\n`scheduling.automaticRestart = false` to include instances only\nif they are not scheduled for automatic restarts. You can use filtering\non nested fields to filter based onresource labels.\n\nTo filter on multiple expressions, provide each separate expression within\nparentheses. For example:\n```\n(scheduling.automaticRestart = true)\n(cpuPlatform = \"Intel Skylake\")\n```\nBy default, each expression is an `AND` expression. However, you\ncan include `AND` and `OR` expressions explicitly.\nFor example:\n```\n(cpuPlatform = \"Intel Skylake\") OR\n(cpuPlatform = \"Intel Broadwell\") AND\n(scheduling.automaticRestart = true)\n```\n\nIf you want to use a regular expression, use the `eq` (equal) or `ne`\n(not equal) operator against a single un-parenthesized expression with or\nwithout quotes or against multiple parenthesized expressions. Examples:\n\n`fieldname eq unquoted literal`\n`fieldname eq 'single quoted literal'`\n`fieldname eq \"double quoted literal\"`\n`(fieldname1 eq literal) (fieldname2 ne \"literal\")`\n\nThe literal value is interpreted as a regular expression using GoogleRE2 library syntax.\nThe literal value must match the entire field.\n\nFor example, to filter for instances that do not end with name \"instance\",\nyou would use `name ne .*instance`.\n\nYou cannot combine constraints on multiple fields using regular\nexpressions.", + "location": "query", + "type": "string" + }, + "includeAllScopes": { + "description": "Indicates whether every visible scope for each scope type (zone, region,\nglobal) should be included in the response. For new resource types added\nafter this field, the flag has no effect as new resource types will always\ninclude every visible scope for each scope type in response. For resource\ntypes which predate this field, if this flag is omitted or false, only\nscopes of the scope types where the resource type is expected to be found\nwill be included.", + "location": "query", + "type": "boolean" + }, + "maxResults": { + "default": "500", + "description": "The maximum number of results per page that should be returned.\nIf the number of available results is larger than `maxResults`,\nCompute Engine returns a `nextPageToken` that can be used to get\nthe next page of results in subsequent list requests. Acceptable values are\n`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\nare returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation\ntimestamp using `orderBy=\"creationTimestamp desc\"`. This sorts\nresults based on the `creationTimestamp` field in\nreverse chronological order (newest result first). Use this to sort\nresources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or\n`creationTimestamp desc` is supported.", + "location": "query", + "type": "string" + }, + "pageToken": { + "description": "Specifies a page token to use. Set `pageToken` to the\n`nextPageToken` returned by a previous list request to get\nthe 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" + }, + "returnPartialSuccess": { + "description": "Opt-in for partial success behavior which provides partial results in case\nof failure. The default value is false.\n\nFor example, when partial success behavior is enabled, aggregatedList for a\nsingle zone scope either returns all resources in the zone or no resources,\nwith an error code.", + "location": "query", + "type": "boolean" + }, + "serviceProjectNumber": { + "description": "The Shared VPC service project id or service project number for which\naggregated list request is invoked for subnetworks list-usable api.", + "format": "int64", + "location": "query", + "type": "string" + } + }, + "path": "projects/{project}/aggregated/vpnGateways", + "response": { + "$ref": "VpnGatewayAggregatedList" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ] + }, + "delete": { + "description": "Deletes the specified VPN gateway.", + "flatPath": "projects/{project}/regions/{region}/vpnGateways/{vpnGateway}", + "httpMethod": "DELETE", + "id": "compute.vpnGateways.delete", + "parameterOrder": [ + "project", + "region", + "vpnGateway" + ], + "parameters": { + "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" + }, + "requestId": { + "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).", + "location": "query", + "type": "string" + }, + "vpnGateway": { + "description": "Name of the VPN gateway to delete.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "required": true, + "type": "string" + } + }, + "path": "projects/{project}/regions/{region}/vpnGateways/{vpnGateway}", + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ] + }, + "get": { + "description": "Returns the specified VPN gateway.", + "flatPath": "projects/{project}/regions/{region}/vpnGateways/{vpnGateway}", + "httpMethod": "GET", + "id": "compute.vpnGateways.get", + "parameterOrder": [ + "project", + "region", + "vpnGateway" + ], + "parameters": { + "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" + }, + "vpnGateway": { + "description": "Name of the VPN gateway to return.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "required": true, + "type": "string" + } + }, + "path": "projects/{project}/regions/{region}/vpnGateways/{vpnGateway}", + "response": { + "$ref": "VpnGateway" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ] + }, + "getStatus": { + "description": "Returns the status for the specified VPN gateway.", + "flatPath": "projects/{project}/regions/{region}/vpnGateways/{vpnGateway}/getStatus", + "httpMethod": "GET", + "id": "compute.vpnGateways.getStatus", + "parameterOrder": [ + "project", + "region", + "vpnGateway" + ], + "parameters": { + "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" + }, + "vpnGateway": { + "description": "Name of the VPN gateway to return.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "required": true, + "type": "string" + } + }, + "path": "projects/{project}/regions/{region}/vpnGateways/{vpnGateway}/getStatus", + "response": { + "$ref": "VpnGatewaysGetStatusResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ] + }, + "insert": { + "description": "Creates a VPN gateway in the specified project and region using\nthe data included in the request.", + "flatPath": "projects/{project}/regions/{region}/vpnGateways", + "httpMethod": "POST", + "id": "compute.vpnGateways.insert", + "parameterOrder": [ + "project", + "region" + ], + "parameters": { + "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" + }, + "requestId": { + "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).", + "location": "query", + "type": "string" + } + }, + "path": "projects/{project}/regions/{region}/vpnGateways", + "request": { + "$ref": "VpnGateway" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ] + }, + "list": { + "description": "Retrieves a list of VPN gateways available to the specified\nproject and region.", + "flatPath": "projects/{project}/regions/{region}/vpnGateways", + "httpMethod": "GET", + "id": "compute.vpnGateways.list", + "parameterOrder": [ + "project", + "region" + ], + "parameters": { + "filter": { + "description": "A filter expression that filters resources listed in the response. Most\nCompute resources support two types of filter expressions:\nexpressions that support regular expressions and expressions that follow\nAPI improvement proposal AIP-160.\nThese two types of filter expressions cannot be mixed in one request.\n\nIf you want to use AIP-160, your expression must specify the field name, an\noperator, and the value that you want to use for filtering. The value\nmust be a string, a number, or a boolean. The operator\nmust be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`.\n\nFor example, if you are filtering Compute Engine instances, you can\nexclude instances named `example-instance` by specifying\n`name != example-instance`.\n\nThe `:*` comparison can be used to test whether a key has been defined.\nFor example, to find all objects with `owner` label use:\n```\nlabels.owner:*\n```\n\nYou can also filter nested fields. For example, you could specify\n`scheduling.automaticRestart = false` to include instances only\nif they are not scheduled for automatic restarts. You can use filtering\non nested fields to filter based onresource labels.\n\nTo filter on multiple expressions, provide each separate expression within\nparentheses. For example:\n```\n(scheduling.automaticRestart = true)\n(cpuPlatform = \"Intel Skylake\")\n```\nBy default, each expression is an `AND` expression. However, you\ncan include `AND` and `OR` expressions explicitly.\nFor example:\n```\n(cpuPlatform = \"Intel Skylake\") OR\n(cpuPlatform = \"Intel Broadwell\") AND\n(scheduling.automaticRestart = true)\n```\n\nIf you want to use a regular expression, use the `eq` (equal) or `ne`\n(not equal) operator against a single un-parenthesized expression with or\nwithout quotes or against multiple parenthesized expressions. Examples:\n\n`fieldname eq unquoted literal`\n`fieldname eq 'single quoted literal'`\n`fieldname eq \"double quoted literal\"`\n`(fieldname1 eq literal) (fieldname2 ne \"literal\")`\n\nThe literal value is interpreted as a regular expression using GoogleRE2 library syntax.\nThe literal value must match the entire field.\n\nFor example, to filter for instances that do not end with name \"instance\",\nyou would use `name ne .*instance`.\n\nYou cannot combine constraints on multiple fields using regular\nexpressions.", + "location": "query", + "type": "string" + }, + "maxResults": { + "default": "500", + "description": "The maximum number of results per page that should be returned.\nIf the number of available results is larger than `maxResults`,\nCompute Engine returns a `nextPageToken` that can be used to get\nthe next page of results in subsequent list requests. Acceptable values are\n`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\nare returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation\ntimestamp using `orderBy=\"creationTimestamp desc\"`. This sorts\nresults based on the `creationTimestamp` field in\nreverse chronological order (newest result first). Use this to sort\nresources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or\n`creationTimestamp desc` is supported.", + "location": "query", + "type": "string" + }, + "pageToken": { + "description": "Specifies a page token to use. Set `pageToken` to the\n`nextPageToken` returned by a previous list request to get\nthe 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" + }, + "returnPartialSuccess": { + "description": "Opt-in for partial success behavior which provides partial results in case\nof failure. The default value is false.\n\nFor example, when partial success behavior is enabled, aggregatedList for a\nsingle zone scope either returns all resources in the zone or no resources,\nwith an error code.", + "location": "query", + "type": "boolean" + } + }, + "path": "projects/{project}/regions/{region}/vpnGateways", + "response": { + "$ref": "VpnGatewayList" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ] + }, + "setLabels": { + "description": "Sets the labels on a VpnGateway. To learn more about labels, read theLabeling\nResources documentation.", + "flatPath": "projects/{project}/regions/{region}/vpnGateways/{resource}/setLabels", + "httpMethod": "POST", + "id": "compute.vpnGateways.setLabels", + "parameterOrder": [ + "project", + "region", + "resource" + ], + "parameters": { + "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": "The region for this request.", + "location": "path", + "pattern": "[a-z](?:[-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\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).", + "location": "query", + "type": "string" + }, + "resource": { + "description": "Name or id of the resource for this request.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "required": true, + "type": "string" + } + }, + "path": "projects/{project}/regions/{region}/vpnGateways/{resource}/setLabels", + "request": { + "$ref": "RegionSetLabelsRequest" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ] + }, + "testIamPermissions": { + "description": "Returns permissions that a caller has on the specified resource.", + "flatPath": "projects/{project}/regions/{region}/vpnGateways/{resource}/testIamPermissions", + "httpMethod": "POST", + "id": "compute.vpnGateways.testIamPermissions", + "parameterOrder": [ + "project", + "region", + "resource" + ], + "parameters": { + "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": "The name of the region for this request.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "required": true, + "type": "string" + }, + "resource": { + "description": "Name or id of the resource for this request.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "required": true, + "type": "string" + } + }, + "path": "projects/{project}/regions/{region}/vpnGateways/{resource}/testIamPermissions", + "request": { + "$ref": "TestPermissionsRequest" + }, + "response": { + "$ref": "TestPermissionsResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ] + } + } + }, + "vpnTunnels": { + "methods": { + "aggregatedList": { + "description": "Retrieves an aggregated list of VPN tunnels.\n\nTo prevent failure, Google recommends that you set the\n`returnPartialSuccess` parameter to `true`.", + "flatPath": "projects/{project}/aggregated/vpnTunnels", + "httpMethod": "GET", + "id": "compute.vpnTunnels.aggregatedList", + "parameterOrder": [ + "project" + ], + "parameters": { + "filter": { + "description": "A filter expression that filters resources listed in the response. Most\nCompute resources support two types of filter expressions:\nexpressions that support regular expressions and expressions that follow\nAPI improvement proposal AIP-160.\nThese two types of filter expressions cannot be mixed in one request.\n\nIf you want to use AIP-160, your expression must specify the field name, an\noperator, and the value that you want to use for filtering. The value\nmust be a string, a number, or a boolean. The operator\nmust be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`.\n\nFor example, if you are filtering Compute Engine instances, you can\nexclude instances named `example-instance` by specifying\n`name != example-instance`.\n\nThe `:*` comparison can be used to test whether a key has been defined.\nFor example, to find all objects with `owner` label use:\n```\nlabels.owner:*\n```\n\nYou can also filter nested fields. For example, you could specify\n`scheduling.automaticRestart = false` to include instances only\nif they are not scheduled for automatic restarts. You can use filtering\non nested fields to filter based onresource labels.\n\nTo filter on multiple expressions, provide each separate expression within\nparentheses. For example:\n```\n(scheduling.automaticRestart = true)\n(cpuPlatform = \"Intel Skylake\")\n```\nBy default, each expression is an `AND` expression. However, you\ncan include `AND` and `OR` expressions explicitly.\nFor example:\n```\n(cpuPlatform = \"Intel Skylake\") OR\n(cpuPlatform = \"Intel Broadwell\") AND\n(scheduling.automaticRestart = true)\n```\n\nIf you want to use a regular expression, use the `eq` (equal) or `ne`\n(not equal) operator against a single un-parenthesized expression with or\nwithout quotes or against multiple parenthesized expressions. Examples:\n\n`fieldname eq unquoted literal`\n`fieldname eq 'single quoted literal'`\n`fieldname eq \"double quoted literal\"`\n`(fieldname1 eq literal) (fieldname2 ne \"literal\")`\n\nThe literal value is interpreted as a regular expression using GoogleRE2 library syntax.\nThe literal value must match the entire field.\n\nFor example, to filter for instances that do not end with name \"instance\",\nyou would use `name ne .*instance`.\n\nYou cannot combine constraints on multiple fields using regular\nexpressions.", + "location": "query", + "type": "string" + }, + "includeAllScopes": { + "description": "Indicates whether every visible scope for each scope type (zone, region,\nglobal) should be included in the response. For new resource types added\nafter this field, the flag has no effect as new resource types will always\ninclude every visible scope for each scope type in response. For resource\ntypes which predate this field, if this flag is omitted or false, only\nscopes of the scope types where the resource type is expected to be found\nwill be included.", + "location": "query", + "type": "boolean" + }, + "maxResults": { + "default": "500", + "description": "The maximum number of results per page that should be returned.\nIf the number of available results is larger than `maxResults`,\nCompute Engine returns a `nextPageToken` that can be used to get\nthe next page of results in subsequent list requests. Acceptable values are\n`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\nare returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation\ntimestamp using `orderBy=\"creationTimestamp desc\"`. This sorts\nresults based on the `creationTimestamp` field in\nreverse chronological order (newest result first). Use this to sort\nresources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or\n`creationTimestamp desc` is supported.", + "location": "query", + "type": "string" + }, + "pageToken": { + "description": "Specifies a page token to use. Set `pageToken` to the\n`nextPageToken` returned by a previous list request to get\nthe 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" + }, + "returnPartialSuccess": { + "description": "Opt-in for partial success behavior which provides partial results in case\nof failure. The default value is false.\n\nFor example, when partial success behavior is enabled, aggregatedList for a\nsingle zone scope either returns all resources in the zone or no resources,\nwith an error code.", + "location": "query", + "type": "boolean" + }, + "serviceProjectNumber": { + "description": "The Shared VPC service project id or service project number for which\naggregated list request is invoked for subnetworks list-usable api.", + "format": "int64", + "location": "query", + "type": "string" + } + }, + "path": "projects/{project}/aggregated/vpnTunnels", + "response": { + "$ref": "VpnTunnelAggregatedList" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ] + }, + "delete": { + "description": "Deletes the specified VpnTunnel resource.", + "flatPath": "projects/{project}/regions/{region}/vpnTunnels/{vpnTunnel}", + "httpMethod": "DELETE", + "id": "compute.vpnTunnels.delete", + "parameterOrder": [ + "project", + "region", + "vpnTunnel" + ], + "parameters": { + "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" + }, + "requestId": { + "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).", + "location": "query", + "type": "string" + }, + "vpnTunnel": { + "description": "Name of the VpnTunnel resource to delete.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "required": true, + "type": "string" + } + }, + "path": "projects/{project}/regions/{region}/vpnTunnels/{vpnTunnel}", + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ] + }, + "get": { + "description": "Returns the specified VpnTunnel resource.", + "flatPath": "projects/{project}/regions/{region}/vpnTunnels/{vpnTunnel}", + "httpMethod": "GET", + "id": "compute.vpnTunnels.get", + "parameterOrder": [ + "project", + "region", + "vpnTunnel" + ], + "parameters": { + "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" + }, + "vpnTunnel": { + "description": "Name of the VpnTunnel resource to return.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "required": true, + "type": "string" + } + }, + "path": "projects/{project}/regions/{region}/vpnTunnels/{vpnTunnel}", + "response": { + "$ref": "VpnTunnel" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ] + }, + "insert": { + "description": "Creates a VpnTunnel resource in the specified project and region using\nthe data included in the request.", + "flatPath": "projects/{project}/regions/{region}/vpnTunnels", + "httpMethod": "POST", + "id": "compute.vpnTunnels.insert", + "parameterOrder": [ + "project", + "region" + ], + "parameters": { + "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" + }, + "requestId": { + "description": "An optional request ID to identify requests. Specify a unique request ID so\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).", + "location": "query", + "type": "string" + } + }, + "path": "projects/{project}/regions/{region}/vpnTunnels", + "request": { + "$ref": "VpnTunnel" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ] + }, + "list": { + "description": "Retrieves a list of VpnTunnel resources contained in the specified\nproject and region.", + "flatPath": "projects/{project}/regions/{region}/vpnTunnels", + "httpMethod": "GET", + "id": "compute.vpnTunnels.list", + "parameterOrder": [ + "project", + "region" + ], + "parameters": { + "filter": { + "description": "A filter expression that filters resources listed in the response. Most\nCompute resources support two types of filter expressions:\nexpressions that support regular expressions and expressions that follow\nAPI improvement proposal AIP-160.\nThese two types of filter expressions cannot be mixed in one request.\n\nIf you want to use AIP-160, your expression must specify the field name, an\noperator, and the value that you want to use for filtering. The value\nmust be a string, a number, or a boolean. The operator\nmust be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`.\n\nFor example, if you are filtering Compute Engine instances, you can\nexclude instances named `example-instance` by specifying\n`name != example-instance`.\n\nThe `:*` comparison can be used to test whether a key has been defined.\nFor example, to find all objects with `owner` label use:\n```\nlabels.owner:*\n```\n\nYou can also filter nested fields. For example, you could specify\n`scheduling.automaticRestart = false` to include instances only\nif they are not scheduled for automatic restarts. You can use filtering\non nested fields to filter based onresource labels.\n\nTo filter on multiple expressions, provide each separate expression within\nparentheses. For example:\n```\n(scheduling.automaticRestart = true)\n(cpuPlatform = \"Intel Skylake\")\n```\nBy default, each expression is an `AND` expression. However, you\ncan include `AND` and `OR` expressions explicitly.\nFor example:\n```\n(cpuPlatform = \"Intel Skylake\") OR\n(cpuPlatform = \"Intel Broadwell\") AND\n(scheduling.automaticRestart = true)\n```\n\nIf you want to use a regular expression, use the `eq` (equal) or `ne`\n(not equal) operator against a single un-parenthesized expression with or\nwithout quotes or against multiple parenthesized expressions. Examples:\n\n`fieldname eq unquoted literal`\n`fieldname eq 'single quoted literal'`\n`fieldname eq \"double quoted literal\"`\n`(fieldname1 eq literal) (fieldname2 ne \"literal\")`\n\nThe literal value is interpreted as a regular expression using GoogleRE2 library syntax.\nThe literal value must match the entire field.\n\nFor example, to filter for instances that do not end with name \"instance\",\nyou would use `name ne .*instance`.\n\nYou cannot combine constraints on multiple fields using regular\nexpressions.", + "location": "query", + "type": "string" + }, + "maxResults": { + "default": "500", + "description": "The maximum number of results per page that should be returned.\nIf the number of available results is larger than `maxResults`,\nCompute Engine returns a `nextPageToken` that can be used to get\nthe next page of results in subsequent list requests. Acceptable values are\n`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\nare returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation\ntimestamp using `orderBy=\"creationTimestamp desc\"`. This sorts\nresults based on the `creationTimestamp` field in\nreverse chronological order (newest result first). Use this to sort\nresources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or\n`creationTimestamp desc` is supported.", + "location": "query", + "type": "string" + }, + "pageToken": { + "description": "Specifies a page token to use. Set `pageToken` to the\n`nextPageToken` returned by a previous list request to get\nthe 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" + }, + "returnPartialSuccess": { + "description": "Opt-in for partial success behavior which provides partial results in case\nof failure. The default value is false.\n\nFor example, when partial success behavior is enabled, aggregatedList for a\nsingle zone scope either returns all resources in the zone or no resources,\nwith an error code.", + "location": "query", + "type": "boolean" + } + }, + "path": "projects/{project}/regions/{region}/vpnTunnels", + "response": { + "$ref": "VpnTunnelList" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ] + }, + "setLabels": { + "description": "Sets the labels on a VpnTunnel. To learn more about labels, read theLabeling\nResources documentation.", + "flatPath": "projects/{project}/regions/{region}/vpnTunnels/{resource}/setLabels", + "httpMethod": "POST", + "id": "compute.vpnTunnels.setLabels", + "parameterOrder": [ + "project", + "region", + "resource" + ], + "parameters": { + "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": "The region for this request.", + "location": "path", + "pattern": "[a-z](?:[-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\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).", + "location": "query", + "type": "string" + }, + "resource": { + "description": "Name or id of the resource for this request.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "required": true, + "type": "string" + } + }, + "path": "projects/{project}/regions/{region}/vpnTunnels/{resource}/setLabels", + "request": { + "$ref": "RegionSetLabelsRequest" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ] + } + } + }, + "wireGroups": { + "methods": { + "delete": { + "description": "Deletes the specified wire group in the given scope.", + "flatPath": "projects/{project}/global/crossSiteNetworks/{crossSiteNetwork}/wireGroups/{wireGroup}", + "httpMethod": "DELETE", + "id": "compute.wireGroups.delete", + "parameterOrder": [ + "project", + "crossSiteNetwork", + "wireGroup" + ], + "parameters": { + "crossSiteNetwork": { + "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\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).\nend_interface: MixerMutationRequestBuilder", + "location": "query", + "type": "string" + }, + "wireGroup": { + "description": "Name of the wire group resource to delete.", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "projects/{project}/global/crossSiteNetworks/{crossSiteNetwork}/wireGroups/{wireGroup}", + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ] + }, + "get": { + "description": "Gets the specified wire group resource in the given scope.", + "flatPath": "projects/{project}/global/crossSiteNetworks/{crossSiteNetwork}/wireGroups/{wireGroup}", + "httpMethod": "GET", + "id": "compute.wireGroups.get", + "parameterOrder": [ + "project", + "crossSiteNetwork", + "wireGroup" + ], + "parameters": { + "crossSiteNetwork": { + "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" + }, + "wireGroup": { + "description": "Name of the wire group resource to return.", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "projects/{project}/global/crossSiteNetworks/{crossSiteNetwork}/wireGroups/{wireGroup}", + "response": { + "$ref": "WireGroup" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ] + }, + "insert": { + "description": "Creates a wire group in the specified project in the given scope\nusing the parameters that are included in the request.", + "flatPath": "projects/{project}/global/crossSiteNetworks/{crossSiteNetwork}/wireGroups", + "httpMethod": "POST", + "id": "compute.wireGroups.insert", + "parameterOrder": [ + "project", + "crossSiteNetwork" + ], + "parameters": { + "crossSiteNetwork": { + "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\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).\nend_interface: MixerMutationRequestBuilder", + "location": "query", + "type": "string" + }, + "validateOnly": { + "description": "[Input Only] Validate the new configuration, but don't create it.", + "location": "query", + "type": "boolean" + } + }, + "path": "projects/{project}/global/crossSiteNetworks/{crossSiteNetwork}/wireGroups", + "request": { + "$ref": "WireGroup" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ] + }, + "list": { + "description": "Lists the wire groups for a project in the given scope.", + "flatPath": "projects/{project}/global/crossSiteNetworks/{crossSiteNetwork}/wireGroups", + "httpMethod": "GET", + "id": "compute.wireGroups.list", + "parameterOrder": [ + "project", + "crossSiteNetwork" + ], + "parameters": { + "crossSiteNetwork": { + "location": "path", + "required": true, + "type": "string" + }, + "filter": { + "description": "A filter expression that filters resources listed in the response. Most\nCompute resources support two types of filter expressions:\nexpressions that support regular expressions and expressions that follow\nAPI improvement proposal AIP-160.\nThese two types of filter expressions cannot be mixed in one request.\n\nIf you want to use AIP-160, your expression must specify the field name, an\noperator, and the value that you want to use for filtering. The value\nmust be a string, a number, or a boolean. The operator\nmust be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`.\n\nFor example, if you are filtering Compute Engine instances, you can\nexclude instances named `example-instance` by specifying\n`name != example-instance`.\n\nThe `:*` comparison can be used to test whether a key has been defined.\nFor example, to find all objects with `owner` label use:\n```\nlabels.owner:*\n```\n\nYou can also filter nested fields. For example, you could specify\n`scheduling.automaticRestart = false` to include instances only\nif they are not scheduled for automatic restarts. You can use filtering\non nested fields to filter based onresource labels.\n\nTo filter on multiple expressions, provide each separate expression within\nparentheses. For example:\n```\n(scheduling.automaticRestart = true)\n(cpuPlatform = \"Intel Skylake\")\n```\nBy default, each expression is an `AND` expression. However, you\ncan include `AND` and `OR` expressions explicitly.\nFor example:\n```\n(cpuPlatform = \"Intel Skylake\") OR\n(cpuPlatform = \"Intel Broadwell\") AND\n(scheduling.automaticRestart = true)\n```\n\nIf you want to use a regular expression, use the `eq` (equal) or `ne`\n(not equal) operator against a single un-parenthesized expression with or\nwithout quotes or against multiple parenthesized expressions. Examples:\n\n`fieldname eq unquoted literal`\n`fieldname eq 'single quoted literal'`\n`fieldname eq \"double quoted literal\"`\n`(fieldname1 eq literal) (fieldname2 ne \"literal\")`\n\nThe literal value is interpreted as a regular expression using GoogleRE2 library syntax.\nThe literal value must match the entire field.\n\nFor example, to filter for instances that do not end with name \"instance\",\nyou would use `name ne .*instance`.\n\nYou cannot combine constraints on multiple fields using regular\nexpressions.", + "location": "query", + "type": "string" + }, + "maxResults": { + "default": "500", + "description": "The maximum number of results per page that should be returned.\nIf the number of available results is larger than `maxResults`,\nCompute Engine returns a `nextPageToken` that can be used to get\nthe next page of results in subsequent list requests. Acceptable values are\n`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\nare returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation\ntimestamp using `orderBy=\"creationTimestamp desc\"`. This sorts\nresults based on the `creationTimestamp` field in\nreverse chronological order (newest result first). Use this to sort\nresources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or\n`creationTimestamp desc` is supported.", + "location": "query", + "type": "string" + }, + "pageToken": { + "description": "Specifies a page token to use. Set `pageToken` to the\n`nextPageToken` returned by a previous list request to get\nthe 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" + }, + "returnPartialSuccess": { + "description": "Opt-in for partial success behavior which provides partial results in case\nof failure. The default value is false.\n\nFor example, when partial success behavior is enabled, aggregatedList for a\nsingle zone scope either returns all resources in the zone or no resources,\nwith an error code.", + "location": "query", + "type": "boolean" + } + }, + "path": "projects/{project}/global/crossSiteNetworks/{crossSiteNetwork}/wireGroups", + "response": { + "$ref": "WireGroupList" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ] + }, + "patch": { + "description": "Updates the specified wire group resource with the data included in the\nrequest. This method supportsPATCH\nsemantics and usesJSON merge\npatch format and processing rules.", + "flatPath": "projects/{project}/global/crossSiteNetworks/{crossSiteNetwork}/wireGroups/{wireGroup}", + "httpMethod": "PATCH", + "id": "compute.wireGroups.patch", + "parameterOrder": [ + "project", + "crossSiteNetwork", + "wireGroup" + ], + "parameters": { + "crossSiteNetwork": { + "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\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).\nend_interface: MixerMutationRequestBuilder", + "location": "query", + "type": "string" + }, + "updateMask": { + "description": "update_mask indicates fields to be updated as part of this request.", + "format": "google-fieldmask", + "location": "query", + "type": "string" + }, + "validateOnly": { + "description": "[Input Only] Validate the new configuration, but don't update it.", + "location": "query", + "type": "boolean" + }, + "wireGroup": { + "description": "Name of the WireGroups resource to patch.", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "projects/{project}/global/crossSiteNetworks/{crossSiteNetwork}/wireGroups/{wireGroup}", + "request": { + "$ref": "WireGroup" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ] + } + } + }, + "zoneOperations": { + "methods": { + "delete": { + "description": "Deletes the specified zone-specific Operations resource.", + "flatPath": "projects/{project}/zones/{zone}/operations/{operation}", + "httpMethod": "DELETE", + "id": "compute.zoneOperations.delete", + "parameterOrder": [ + "project", + "zone", + "operation" + ], + "parameters": { + "operation": { + "description": "Name of the Operations resource to delete, or its unique numeric\nidentifier.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "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" + }, + "zone": { + "description": "Name of the zone for this request.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "required": true, + "type": "string" + } + }, + "path": "projects/{project}/zones/{zone}/operations/{operation}", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ] + }, + "get": { + "description": "Retrieves the specified zone-specific Operations resource.", + "flatPath": "projects/{project}/zones/{zone}/operations/{operation}", + "httpMethod": "GET", + "id": "compute.zoneOperations.get", + "parameterOrder": [ + "project", + "zone", + "operation" + ], + "parameters": { + "operation": { + "description": "Name of the Operations resource to return, or its unique numeric\nidentifier.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "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" + }, + "zone": { + "description": "Name of the zone for this request.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "required": true, + "type": "string" + } + }, + "path": "projects/{project}/zones/{zone}/operations/{operation}", + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ] + }, + "list": { + "description": "Retrieves a list of Operation resources contained within\nthe specified zone.", + "flatPath": "projects/{project}/zones/{zone}/operations", + "httpMethod": "GET", + "id": "compute.zoneOperations.list", + "parameterOrder": [ + "project", + "zone" + ], + "parameters": { + "filter": { + "description": "A filter expression that filters resources listed in the response. Most\nCompute resources support two types of filter expressions:\nexpressions that support regular expressions and expressions that follow\nAPI improvement proposal AIP-160.\nThese two types of filter expressions cannot be mixed in one request.\n\nIf you want to use AIP-160, your expression must specify the field name, an\noperator, and the value that you want to use for filtering. The value\nmust be a string, a number, or a boolean. The operator\nmust be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`.\n\nFor example, if you are filtering Compute Engine instances, you can\nexclude instances named `example-instance` by specifying\n`name != example-instance`.\n\nThe `:*` comparison can be used to test whether a key has been defined.\nFor example, to find all objects with `owner` label use:\n```\nlabels.owner:*\n```\n\nYou can also filter nested fields. For example, you could specify\n`scheduling.automaticRestart = false` to include instances only\nif they are not scheduled for automatic restarts. You can use filtering\non nested fields to filter based onresource labels.\n\nTo filter on multiple expressions, provide each separate expression within\nparentheses. For example:\n```\n(scheduling.automaticRestart = true)\n(cpuPlatform = \"Intel Skylake\")\n```\nBy default, each expression is an `AND` expression. However, you\ncan include `AND` and `OR` expressions explicitly.\nFor example:\n```\n(cpuPlatform = \"Intel Skylake\") OR\n(cpuPlatform = \"Intel Broadwell\") AND\n(scheduling.automaticRestart = true)\n```\n\nIf you want to use a regular expression, use the `eq` (equal) or `ne`\n(not equal) operator against a single un-parenthesized expression with or\nwithout quotes or against multiple parenthesized expressions. Examples:\n\n`fieldname eq unquoted literal`\n`fieldname eq 'single quoted literal'`\n`fieldname eq \"double quoted literal\"`\n`(fieldname1 eq literal) (fieldname2 ne \"literal\")`\n\nThe literal value is interpreted as a regular expression using GoogleRE2 library syntax.\nThe literal value must match the entire field.\n\nFor example, to filter for instances that do not end with name \"instance\",\nyou would use `name ne .*instance`.\n\nYou cannot combine constraints on multiple fields using regular\nexpressions.", + "location": "query", + "type": "string" + }, + "maxResults": { + "default": "500", + "description": "The maximum number of results per page that should be returned.\nIf the number of available results is larger than `maxResults`,\nCompute Engine returns a `nextPageToken` that can be used to get\nthe next page of results in subsequent list requests. Acceptable values are\n`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\nare returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation\ntimestamp using `orderBy=\"creationTimestamp desc\"`. This sorts\nresults based on the `creationTimestamp` field in\nreverse chronological order (newest result first). Use this to sort\nresources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or\n`creationTimestamp desc` is supported.", + "location": "query", + "type": "string" + }, + "pageToken": { + "description": "Specifies a page token to use. Set `pageToken` to the\n`nextPageToken` returned by a previous list request to get\nthe 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" + }, + "returnPartialSuccess": { + "description": "Opt-in for partial success behavior which provides partial results in case\nof failure. The default value is false.\n\nFor example, when partial success behavior is enabled, aggregatedList for a\nsingle zone scope either returns all resources in the zone or no resources,\nwith an error code.", + "location": "query", + "type": "boolean" + }, + "zone": { + "description": "Name of the zone for request.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "required": true, + "type": "string" + } + }, + "path": "projects/{project}/zones/{zone}/operations", + "response": { + "$ref": "OperationList" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ] + }, + "wait": { + "description": "Waits for the specified Operation resource to return as `DONE`\nor for the request to approach the 2 minute deadline, and retrieves the\nspecified Operation resource. This method waits for no more than the\n2 minutes and then returns the current state of the\noperation, which might be `DONE` or still in progress.\n\nThis method is called on a best-effort basis. Specifically:\n \n \n - In uncommon cases, when the server is overloaded, the request might\n return before the default deadline is reached, or might return after zero\n seconds.\n - If the default deadline is reached, there is no guarantee that the\n operation is actually done when the method returns. Be prepared to retry\n if the operation is not `DONE`.", + "flatPath": "projects/{project}/zones/{zone}/operations/{operation}/wait", + "httpMethod": "POST", + "id": "compute.zoneOperations.wait", + "parameterOrder": [ + "project", + "zone", + "operation" + ], + "parameters": { + "operation": { + "description": "Name of the Operations resource to return, or its unique numeric\nidentifier.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "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" + }, + "zone": { + "description": "Name of the zone for this request.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "required": true, + "type": "string" + } + }, + "path": "projects/{project}/zones/{zone}/operations/{operation}/wait", + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ] + } + } + }, + "zoneVmExtensionPolicies": { + "methods": { + "delete": { + "description": "Deletes a specified zone VM extension policy within a project.", + "flatPath": "projects/{project}/zones/{zone}/vmExtensionPolicies/{vmExtensionPolicy}", + "httpMethod": "DELETE", + "id": "compute.zoneVmExtensionPolicies.delete", + "parameterOrder": [ + "project", + "zone", + "vmExtensionPolicy" + ], + "parameters": { + "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\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).", + "location": "query", + "type": "string" + }, + "vmExtensionPolicy": { + "description": "Name of the zone VM extension policy to delete.", + "location": "path", + "required": true, + "type": "string" + }, + "zone": { + "description": "Name of the zone for this request.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "required": true, + "type": "string" + } + }, + "path": "projects/{project}/zones/{zone}/vmExtensionPolicies/{vmExtensionPolicy}", + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ] + }, + "get": { + "description": "Retrieves details of a specific zone VM extension policy within a project.", + "flatPath": "projects/{project}/zones/{zone}/vmExtensionPolicies/{vmExtensionPolicy}", + "httpMethod": "GET", + "id": "compute.zoneVmExtensionPolicies.get", + "parameterOrder": [ + "project", + "zone", + "vmExtensionPolicy" + ], + "parameters": { + "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" + }, + "vmExtensionPolicy": { + "description": "Name of the VM extension policy resource to return.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "required": true, + "type": "string" + }, + "zone": { + "description": "Name of the zone for this request.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "required": true, + "type": "string" + } + }, + "path": "projects/{project}/zones/{zone}/vmExtensionPolicies/{vmExtensionPolicy}", + "response": { + "$ref": "VmExtensionPolicy" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ] + }, + "insert": { + "description": "Creates a new zone-level VM extension policy within a project.", + "flatPath": "projects/{project}/zones/{zone}/vmExtensionPolicies", + "httpMethod": "POST", + "id": "compute.zoneVmExtensionPolicies.insert", + "parameterOrder": [ + "project", + "zone" + ], + "parameters": { + "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\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).", + "location": "query", + "type": "string" + }, + "zone": { + "description": "Name of the zone for this request.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "required": true, + "type": "string" + } + }, + "path": "projects/{project}/zones/{zone}/vmExtensionPolicies", + "request": { + "$ref": "VmExtensionPolicy" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ] + }, + "list": { + "description": "Lists all VM extension policies within a specific zone for a project.", + "flatPath": "projects/{project}/zones/{zone}/vmExtensionPolicies", + "httpMethod": "GET", + "id": "compute.zoneVmExtensionPolicies.list", + "parameterOrder": [ + "project", + "zone" + ], + "parameters": { + "filter": { + "description": "A filter expression that filters resources listed in the response. Most\nCompute resources support two types of filter expressions:\nexpressions that support regular expressions and expressions that follow\nAPI improvement proposal AIP-160.\nThese two types of filter expressions cannot be mixed in one request.\n\nIf you want to use AIP-160, your expression must specify the field name, an\noperator, and the value that you want to use for filtering. The value\nmust be a string, a number, or a boolean. The operator\nmust be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`.\n\nFor example, if you are filtering Compute Engine instances, you can\nexclude instances named `example-instance` by specifying\n`name != example-instance`.\n\nThe `:*` comparison can be used to test whether a key has been defined.\nFor example, to find all objects with `owner` label use:\n```\nlabels.owner:*\n```\n\nYou can also filter nested fields. For example, you could specify\n`scheduling.automaticRestart = false` to include instances only\nif they are not scheduled for automatic restarts. You can use filtering\non nested fields to filter based onresource labels.\n\nTo filter on multiple expressions, provide each separate expression within\nparentheses. For example:\n```\n(scheduling.automaticRestart = true)\n(cpuPlatform = \"Intel Skylake\")\n```\nBy default, each expression is an `AND` expression. However, you\ncan include `AND` and `OR` expressions explicitly.\nFor example:\n```\n(cpuPlatform = \"Intel Skylake\") OR\n(cpuPlatform = \"Intel Broadwell\") AND\n(scheduling.automaticRestart = true)\n```\n\nIf you want to use a regular expression, use the `eq` (equal) or `ne`\n(not equal) operator against a single un-parenthesized expression with or\nwithout quotes or against multiple parenthesized expressions. Examples:\n\n`fieldname eq unquoted literal`\n`fieldname eq 'single quoted literal'`\n`fieldname eq \"double quoted literal\"`\n`(fieldname1 eq literal) (fieldname2 ne \"literal\")`\n\nThe literal value is interpreted as a regular expression using GoogleRE2 library syntax.\nThe literal value must match the entire field.\n\nFor example, to filter for instances that do not end with name \"instance\",\nyou would use `name ne .*instance`.\n\nYou cannot combine constraints on multiple fields using regular\nexpressions.", + "location": "query", + "type": "string" + }, + "maxResults": { + "default": "500", + "description": "The maximum number of results per page that should be returned.\nIf the number of available results is larger than `maxResults`,\nCompute Engine returns a `nextPageToken` that can be used to get\nthe next page of results in subsequent list requests. Acceptable values are\n`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\nare returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation\ntimestamp using `orderBy=\"creationTimestamp desc\"`. This sorts\nresults based on the `creationTimestamp` field in\nreverse chronological order (newest result first). Use this to sort\nresources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or\n`creationTimestamp desc` is supported.", + "location": "query", + "type": "string" + }, + "pageToken": { + "description": "Specifies a page token to use. Set `pageToken` to the\n`nextPageToken` returned by a previous list request to get\nthe 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" + }, + "returnPartialSuccess": { + "description": "Opt-in for partial success behavior which provides partial results in case\nof failure. The default value is false.\n\nFor example, when partial success behavior is enabled, aggregatedList for a\nsingle zone scope either returns all resources in the zone or no resources,\nwith an error code.", + "location": "query", + "type": "boolean" + }, + "zone": { + "description": "Name of the zone for this request.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "required": true, + "type": "string" + } + }, + "path": "projects/{project}/zones/{zone}/vmExtensionPolicies", + "response": { + "$ref": "VmExtensionPolicyList" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ] + }, + "update": { + "description": "Modifies an existing zone VM extension policy within a project.", + "flatPath": "projects/{project}/zones/{zone}/vmExtensionPolicies/{vmExtensionPolicy}", + "httpMethod": "PATCH", + "id": "compute.zoneVmExtensionPolicies.update", + "parameterOrder": [ + "project", + "zone", + "vmExtensionPolicy" + ], + "parameters": { + "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\nthat if you must retry your request, the server will know to ignore the\nrequest if it has already been completed.\n\nFor example, consider a situation where you make an initial request and\nthe request times out. If you make the request again with the same\nrequest ID, the server can check if original operation with the same\nrequest ID was received, and if so, will ignore the second request. This\nprevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be\na valid UUID with the exception that zero UUID is not supported\n(00000000-0000-0000-0000-000000000000).", + "location": "query", + "type": "string" + }, + "vmExtensionPolicy": { + "description": "Name of the zone VM extension policy to update.", + "location": "path", + "required": true, + "type": "string" + }, + "zone": { + "description": "Name of the zone for this request.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "required": true, + "type": "string" + } + }, + "path": "projects/{project}/zones/{zone}/vmExtensionPolicies/{vmExtensionPolicy}", + "request": { + "$ref": "VmExtensionPolicy" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ] + } + } + }, + "zones": { + "methods": { + "get": { + "description": "Returns the specified Zone resource.", + "flatPath": "projects/{project}/zones/{zone}", + "httpMethod": "GET", + "id": "compute.zones.get", + "parameterOrder": [ + "project", + "zone" + ], + "parameters": { + "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" + }, + "zone": { + "description": "Name of the zone resource to return.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "required": true, + "type": "string" + } + }, + "path": "projects/{project}/zones/{zone}", + "response": { + "$ref": "Zone" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ] + }, + "list": { + "description": "Retrieves the list of Zone resources available to the specified project.", + "flatPath": "projects/{project}/zones", + "httpMethod": "GET", + "id": "compute.zones.list", + "parameterOrder": [ + "project" + ], + "parameters": { + "filter": { + "description": "A filter expression that filters resources listed in the response. Most\nCompute resources support two types of filter expressions:\nexpressions that support regular expressions and expressions that follow\nAPI improvement proposal AIP-160.\nThese two types of filter expressions cannot be mixed in one request.\n\nIf you want to use AIP-160, your expression must specify the field name, an\noperator, and the value that you want to use for filtering. The value\nmust be a string, a number, or a boolean. The operator\nmust be either `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`.\n\nFor example, if you are filtering Compute Engine instances, you can\nexclude instances named `example-instance` by specifying\n`name != example-instance`.\n\nThe `:*` comparison can be used to test whether a key has been defined.\nFor example, to find all objects with `owner` label use:\n```\nlabels.owner:*\n```\n\nYou can also filter nested fields. For example, you could specify\n`scheduling.automaticRestart = false` to include instances only\nif they are not scheduled for automatic restarts. You can use filtering\non nested fields to filter based onresource labels.\n\nTo filter on multiple expressions, provide each separate expression within\nparentheses. For example:\n```\n(scheduling.automaticRestart = true)\n(cpuPlatform = \"Intel Skylake\")\n```\nBy default, each expression is an `AND` expression. However, you\ncan include `AND` and `OR` expressions explicitly.\nFor example:\n```\n(cpuPlatform = \"Intel Skylake\") OR\n(cpuPlatform = \"Intel Broadwell\") AND\n(scheduling.automaticRestart = true)\n```\n\nIf you want to use a regular expression, use the `eq` (equal) or `ne`\n(not equal) operator against a single un-parenthesized expression with or\nwithout quotes or against multiple parenthesized expressions. Examples:\n\n`fieldname eq unquoted literal`\n`fieldname eq 'single quoted literal'`\n`fieldname eq \"double quoted literal\"`\n`(fieldname1 eq literal) (fieldname2 ne \"literal\")`\n\nThe literal value is interpreted as a regular expression using GoogleRE2 library syntax.\nThe literal value must match the entire field.\n\nFor example, to filter for instances that do not end with name \"instance\",\nyou would use `name ne .*instance`.\n\nYou cannot combine constraints on multiple fields using regular\nexpressions.", + "location": "query", + "type": "string" + }, + "maxResults": { + "default": "500", + "description": "The maximum number of results per page that should be returned.\nIf the number of available results is larger than `maxResults`,\nCompute Engine returns a `nextPageToken` that can be used to get\nthe next page of results in subsequent list requests. Acceptable values are\n`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\nare returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation\ntimestamp using `orderBy=\"creationTimestamp desc\"`. This sorts\nresults based on the `creationTimestamp` field in\nreverse chronological order (newest result first). Use this to sort\nresources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or\n`creationTimestamp desc` is supported.", + "location": "query", + "type": "string" + }, + "pageToken": { + "description": "Specifies a page token to use. Set `pageToken` to the\n`nextPageToken` returned by a previous list request to get\nthe 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" + }, + "returnPartialSuccess": { + "description": "Opt-in for partial success behavior which provides partial results in case\nof failure. The default value is false.\n\nFor example, when partial success behavior is enabled, aggregatedList for a\nsingle zone scope either returns all resources in the zone or no resources,\nwith an error code.", + "location": "query", + "type": "boolean" + } + }, + "path": "projects/{project}/zones", + "response": { + "$ref": "ZoneList" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ] + } + } + } + }, + "revision": "20260629", + "rootUrl": "https://compute.googleapis.com/", + "schemas": { + "AWSV4Signature": { + "description": "Contains the configurations necessary to generate a signature for access to\nprivate storage buckets that support Signature Version 4 for authentication.\nThe service name for generating the authentication header will always default\nto 's3'.", + "id": "AWSV4Signature", + "properties": { + "accessKey": { + "description": "The access key used for s3 bucket authentication. Required for updating or\ncreating a backend that uses AWS v4 signature authentication, but will not\nbe returned as part of the configuration when queried with a REST API GET\nrequest.\n\n@InputOnly", + "type": "string" + }, + "accessKeyId": { + "description": "The identifier of an access key used for s3 bucket authentication.", + "type": "string" + }, + "accessKeyVersion": { + "description": "The optional version identifier for the access key. You can use this to\nkeep track of different iterations of your access key.", + "type": "string" + }, + "originRegion": { + "description": "The name of the cloud region of your origin. This is a free-form field with\nthe name of the region your cloud uses to host your origin. For example,\n\"us-east-1\" for AWS or \"us-ashburn-1\" for OCI.", + "type": "string" + } + }, + "type": "object" + }, + "AcceleratorConfig": { + "description": "A specification of the type and number of accelerator cards attached to the\ninstance.", + "id": "AcceleratorConfig", + "properties": { + "acceleratorCount": { + "description": "The number of the guest accelerator cards exposed to this instance.", + "format": "int32", + "type": "integer" + }, + "acceleratorType": { + "description": "Full or partial URL of the accelerator type resource to attach to this\ninstance. For example:projects/my-project/zones/us-central1-c/acceleratorTypes/nvidia-tesla-p100\nIf you are creating an instance template, specify only the\naccelerator name.\nSee GPUs on Compute Engine\nfor a full list of accelerator types.", + "type": "string" + } + }, + "type": "object" + }, + "AcceleratorTopologiesInfo": { + "description": "Info for accelerator topologies within a densely packed reservation.", + "id": "AcceleratorTopologiesInfo", + "properties": { + "acceleratorTopologyInfos": { + "description": "Info for each accelerator topology.", + "items": { + "$ref": "AcceleratorTopologiesInfoAcceleratorTopologyInfo" + }, + "type": "array" + } + }, + "type": "object" + }, + "AcceleratorTopologiesInfoAcceleratorTopologyInfo": { + "description": "Info for a slice of a given topology.", + "id": "AcceleratorTopologiesInfoAcceleratorTopologyInfo", + "properties": { + "acceleratorTopology": { + "description": "The accelerator topology.", + "type": "string" + }, + "infoPerTopologyStates": { + "description": "Info for each topology state.", + "items": { + "$ref": "AcceleratorTopologiesInfoAcceleratorTopologyInfoInfoPerTopologyState" + }, + "type": "array" + } + }, + "type": "object" + }, + "AcceleratorTopologiesInfoAcceleratorTopologyInfoInfoPerTopologyState": { + "description": "Info for each topology state.", + "id": "AcceleratorTopologiesInfoAcceleratorTopologyInfoInfoPerTopologyState", + "properties": { + "count": { + "description": "The number of accelerator topologies in this state.", + "format": "int32", + "type": "integer" + }, + "state": { + "description": "The state of the accelerator topology.", + "enum": [ + "AVAILABLE", + "DEGRADED", + "RUNNING", + "TOPOLOGY_STATE_UNSPECIFIED", + "UNHEALTHY" + ], + "enumDeprecated": [ + false, + false, + false, + false, + true + ], + "enumDescriptions": [ + "The accelerator topology is available.", + "The accelerator topology is degraded. The underlying capacity is not in a\nhealthy state and is not available.", + "The accelerator topology is running. If there are both running and\ndegraded hosts within a topology, DEGRADED state will be returned.", + "The state of the topology is unspecified.", + "This value has been deprecated and is no longer used." + ], + "type": "string" + } + }, + "type": "object" + }, + "AcceleratorType": { + "description": "Represents an Accelerator Type resource.\n\nGoogle Cloud Platform provides graphics processing units (accelerators) that\nyou can add to VM instances to improve or accelerate performance when working\nwith intensive workloads. For more information, readGPUs on Compute Engine.", + "id": "AcceleratorType", + "properties": { + "creationTimestamp": { + "description": "[Output Only] Creation timestamp inRFC3339 text format.", + "type": "string" + }, + "deprecated": { + "$ref": "DeprecationStatus", + "description": "[Output Only] The deprecation status associated with this accelerator type." + }, + "description": { + "description": "[Output Only] An optional textual description of the resource.", + "type": "string" + }, + "id": { + "description": "[Output Only] The unique identifier for the resource. This identifier is\ndefined by the server.", + "format": "uint64", + "type": "string" + }, + "kind": { + "default": "compute#acceleratorType", + "description": "Output only. [Output Only] The type of the resource. Alwayscompute#acceleratorType for accelerator types.", + "readOnly": true, + "type": "string" + }, + "maximumCardsPerInstance": { + "description": "[Output Only] Maximum number of accelerator cards allowed per instance.", + "format": "int32", + "type": "integer" + }, + "name": { + "description": "[Output Only] Name of the resource.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "type": "string" + }, + "selfLink": { + "description": "Output only. [Output Only] Server-defined, fully qualified URL for this resource.", + "readOnly": true, + "type": "string" + }, + "zone": { + "description": "[Output Only] The name of the zone where the accelerator type resides,\nsuch as us-central1-a.\nYou must specify this field as part of the HTTP request URL. It is\nnot settable as a field in the request body.", + "type": "string" + } + }, + "type": "object" + }, + "AcceleratorTypeAggregatedList": { + "id": "AcceleratorTypeAggregatedList", + "properties": { + "id": { + "description": "[Output Only] Unique identifier for the resource; defined by the server.", + "type": "string" + }, + "items": { + "additionalProperties": { + "$ref": "AcceleratorTypesScopedList", + "description": "[Output Only] Name of the scope containing this set of accelerator types." + }, + "description": "A list of AcceleratorTypesScopedList resources.", + "type": "object" + }, + "kind": { + "default": "compute#acceleratorTypeAggregatedList", + "description": "Output only. [Output Only] Type of resource. Alwayscompute#acceleratorTypeAggregatedList for aggregated lists of\naccelerator types.", + "readOnly": true, + "type": "string" + }, + "nextPageToken": { + "description": "[Output Only] This token allows you to get the next page of results for\nlist requests. If the number of results is larger thanmaxResults, use the nextPageToken as a value for\nthe query parameter pageToken in the next list request.\nSubsequent list requests will have their own nextPageToken to\ncontinue paging through the results.", + "type": "string" + }, + "selfLink": { + "description": "Output only. [Output Only] Server-defined URL for this resource.", + "readOnly": true, + "type": "string" + }, + "unreachables": { + "description": "Output only. [Output Only] Unreachable resources.", + "items": { + "type": "string" + }, + "readOnly": true, + "type": "array" + }, + "warning": { + "description": "[Output Only] Informational warning message.", + "properties": { + "code": { + "description": "[Output Only] A warning code, if applicable. For example, Compute\nEngine returns NO_RESULTS_ON_PAGE if there\nare 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", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", + "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "PARTIAL_SUCCESS", + "QUOTA_INFO_UNAVAILABLE", + "REQUIRED_TOS_AGREEMENT", + "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", + "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", + "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", + "UNREACHABLE" + ], + "enumDeprecated": [ + false, + false, + false, + false, + false, + false, + true, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false + ], + "enumDescriptions": [ + "Warning about failed cleanup of transient changes made by a failed\noperation.", + "A link to a deprecated resource was created.", + "When deploying and at least one of the resources has a type marked as\ndeprecated", + "The user created a boot disk that is larger than image size.", + "When deploying and at least one of the resources has a type marked as\nexperimental", + "Warning that is present in an external api call", + "Warning that value of a field has been overridden.\nDeprecated unused field.", + "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is\nnot of type HTTP/HTTPS/HTTP2.", + "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed\nwhich captures the amount of resources filtered out by\nuser-defined list filter.", + "A resource depends on a missing type", + "The route's nextHopIp address is not assigned to an instance on the\nnetwork.", + "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an\nipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not exist.", + "The route's nextHopInstance URL refers to an instance that is not on the\nsame network as the route.", + "The route's next hop instance does not have a status of RUNNING.", + "Error which is not critical. We decided to continue the process despite\nthe mentioned error.", + "No results are present on a particular list page.", + "Success is reported, but some results may be missing due to errors", + "Quota information is not available to client requests (e.g:\nregions.list).", + "The user attempted to use a resource that requires a TOS they have not\naccepted.", + "Warning that a resource is in use.", + "One or more of the resources set to auto-delete could not be deleted\nbecause they were in use.", + "When a resource schema validation is ignored.", + "Instance template used in instance group manager is valid as such, but\nits application does not make a lot of sense, because it allows only\nsingle instance in instance group.", + "When undeclared properties in the schema are present", + "A given scope cannot be reached." + ], + "type": "string" + }, + "data": { + "description": "[Output Only] Metadata about this warning in key:\nvalue format. For example:\n\n\"data\": [\n {\n \"key\": \"scope\",\n \"value\": \"zones/us-east1-d\"\n }", + "items": { + "properties": { + "key": { + "description": "[Output Only] A key that provides more detail on the warning being\nreturned. For example, for warnings where there are no results in a list\nrequest for a particular zone, this key might be scope and\nthe key value might be the zone name. Other examples might be a key\nindicating a deprecated resource and a suggested replacement, or a\nwarning about invalid network settings (for example, if an instance\nattempts 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" + }, + "AcceleratorTypeList": { + "description": "Contains a list of accelerator types.", + "id": "AcceleratorTypeList", + "properties": { + "id": { + "description": "[Output Only] Unique identifier for the resource; defined by the server.", + "type": "string" + }, + "items": { + "description": "A list of AcceleratorType resources.", + "items": { + "$ref": "AcceleratorType" + }, + "type": "array" + }, + "kind": { + "default": "compute#acceleratorTypeList", + "description": "Output only. [Output Only] Type of resource. Alwayscompute#acceleratorTypeList for lists of accelerator types.", + "readOnly": true, + "type": "string" + }, + "nextPageToken": { + "description": "[Output Only] This token allows you to get the next page of results for\nlist requests. If the number of results is larger thanmaxResults, use the nextPageToken as a value for\nthe query parameter pageToken in the next list request.\nSubsequent list requests will have their own nextPageToken to\ncontinue paging through the results.", + "type": "string" + }, + "selfLink": { + "description": "Output only. [Output Only] Server-defined URL for this resource.", + "readOnly": true, + "type": "string" + }, + "warning": { + "description": "[Output Only] Informational warning message.", + "properties": { + "code": { + "description": "[Output Only] A warning code, if applicable. For example, Compute\nEngine returns NO_RESULTS_ON_PAGE if there\nare 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", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", + "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "PARTIAL_SUCCESS", + "QUOTA_INFO_UNAVAILABLE", + "REQUIRED_TOS_AGREEMENT", + "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", + "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", + "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", + "UNREACHABLE" + ], + "enumDeprecated": [ + false, + false, + false, + false, + false, + false, + true, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false + ], + "enumDescriptions": [ + "Warning about failed cleanup of transient changes made by a failed\noperation.", + "A link to a deprecated resource was created.", + "When deploying and at least one of the resources has a type marked as\ndeprecated", + "The user created a boot disk that is larger than image size.", + "When deploying and at least one of the resources has a type marked as\nexperimental", + "Warning that is present in an external api call", + "Warning that value of a field has been overridden.\nDeprecated unused field.", + "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is\nnot of type HTTP/HTTPS/HTTP2.", + "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed\nwhich captures the amount of resources filtered out by\nuser-defined list filter.", + "A resource depends on a missing type", + "The route's nextHopIp address is not assigned to an instance on the\nnetwork.", + "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an\nipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not exist.", + "The route's nextHopInstance URL refers to an instance that is not on the\nsame network as the route.", + "The route's next hop instance does not have a status of RUNNING.", + "Error which is not critical. We decided to continue the process despite\nthe mentioned error.", + "No results are present on a particular list page.", + "Success is reported, but some results may be missing due to errors", + "Quota information is not available to client requests (e.g:\nregions.list).", + "The user attempted to use a resource that requires a TOS they have not\naccepted.", + "Warning that a resource is in use.", + "One or more of the resources set to auto-delete could not be deleted\nbecause they were in use.", + "When a resource schema validation is ignored.", + "Instance template used in instance group manager is valid as such, but\nits application does not make a lot of sense, because it allows only\nsingle instance in instance group.", + "When undeclared properties in the schema are present", + "A given scope cannot be reached." + ], + "type": "string" + }, + "data": { + "description": "[Output Only] Metadata about this warning in key:\nvalue format. For example:\n\n\"data\": [\n {\n \"key\": \"scope\",\n \"value\": \"zones/us-east1-d\"\n }", + "items": { + "properties": { + "key": { + "description": "[Output Only] A key that provides more detail on the warning being\nreturned. For example, for warnings where there are no results in a list\nrequest for a particular zone, this key might be scope and\nthe key value might be the zone name. Other examples might be a key\nindicating a deprecated resource and a suggested replacement, or a\nwarning about invalid network settings (for example, if an instance\nattempts 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" + }, + "AcceleratorTypesScopedList": { + "id": "AcceleratorTypesScopedList", + "properties": { + "acceleratorTypes": { + "description": "[Output Only] A list of accelerator types contained in this scope.", + "items": { + "$ref": "AcceleratorType" + }, + "type": "array" + }, + "warning": { + "description": "[Output Only] An informational warning that appears when the accelerator\ntypes list is empty.", + "properties": { + "code": { + "description": "[Output Only] A warning code, if applicable. For example, Compute\nEngine returns NO_RESULTS_ON_PAGE if there\nare 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", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", + "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "PARTIAL_SUCCESS", + "QUOTA_INFO_UNAVAILABLE", + "REQUIRED_TOS_AGREEMENT", + "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", + "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", + "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", + "UNREACHABLE" + ], + "enumDeprecated": [ + false, + false, + false, + false, + false, + false, + true, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false + ], + "enumDescriptions": [ + "Warning about failed cleanup of transient changes made by a failed\noperation.", + "A link to a deprecated resource was created.", + "When deploying and at least one of the resources has a type marked as\ndeprecated", + "The user created a boot disk that is larger than image size.", + "When deploying and at least one of the resources has a type marked as\nexperimental", + "Warning that is present in an external api call", + "Warning that value of a field has been overridden.\nDeprecated unused field.", + "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is\nnot of type HTTP/HTTPS/HTTP2.", + "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed\nwhich captures the amount of resources filtered out by\nuser-defined list filter.", + "A resource depends on a missing type", + "The route's nextHopIp address is not assigned to an instance on the\nnetwork.", + "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an\nipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not exist.", + "The route's nextHopInstance URL refers to an instance that is not on the\nsame network as the route.", + "The route's next hop instance does not have a status of RUNNING.", + "Error which is not critical. We decided to continue the process despite\nthe mentioned error.", + "No results are present on a particular list page.", + "Success is reported, but some results may be missing due to errors", + "Quota information is not available to client requests (e.g:\nregions.list).", + "The user attempted to use a resource that requires a TOS they have not\naccepted.", + "Warning that a resource is in use.", + "One or more of the resources set to auto-delete could not be deleted\nbecause they were in use.", + "When a resource schema validation is ignored.", + "Instance template used in instance group manager is valid as such, but\nits application does not make a lot of sense, because it allows only\nsingle instance in instance group.", + "When undeclared properties in the schema are present", + "A given scope cannot be reached." + ], + "type": "string" + }, + "data": { + "description": "[Output Only] Metadata about this warning in key:\nvalue format. For example:\n\n\"data\": [\n {\n \"key\": \"scope\",\n \"value\": \"zones/us-east1-d\"\n }", + "items": { + "properties": { + "key": { + "description": "[Output Only] A key that provides more detail on the warning being\nreturned. For example, for warnings where there are no results in a list\nrequest for a particular zone, this key might be scope and\nthe key value might be the zone name. Other examples might be a key\nindicating a deprecated resource and a suggested replacement, or a\nwarning about invalid network settings (for example, if an instance\nattempts 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" + }, + "AccessConfig": { + "description": "An access configuration attached to an instance's network interface.\nOnly one access config per instance is supported.", + "id": "AccessConfig", + "properties": { + "externalIpv6": { + "description": "Applies to ipv6AccessConfigs only.\nThe first IPv6 address of the external IPv6 range associated\nwith this instance, prefix length is stored inexternalIpv6PrefixLength in ipv6AccessConfig. To\nuse a static external IP address, it must be unused and in the same region\nas the instance's zone. If not specified, Google Cloud will automatically\nassign an external IPv6 address from the instance's subnetwork.", + "type": "string" + }, + "externalIpv6PrefixLength": { + "description": "Applies to ipv6AccessConfigs only. The prefix length of the\nexternal IPv6 range.", + "format": "int32", + "type": "integer" + }, + "kind": { + "default": "compute#accessConfig", + "description": "Output only. [Output Only] Type of the resource. Alwayscompute#accessConfig for access configs.", + "readOnly": true, + "type": "string" + }, + "name": { + "description": "The name of this access configuration. In accessConfigs\n(IPv4), the default and recommended name is External NAT, but\nyou can use any arbitrary string, such as My external IP orNetwork Access. In ipv6AccessConfigs, the\nrecommend name is External IPv6.", + "type": "string" + }, + "natIP": { + "description": "Applies to accessConfigs (IPv4) only. Anexternal IP\naddress associated with this instance. Specify an unused static\nexternal IP address available to the project or leave this field undefined\nto use an IP from a shared ephemeral IP address pool. If you specify a\nstatic external IP address, it must live in the same region as the zone of\nthe instance.", + "type": "string" + }, + "networkTier": { + "description": "This signifies the networking tier used for configuring this access\nconfiguration and can only take the following values: PREMIUM,STANDARD.\n\nIf an AccessConfig is specified without a valid external IP address, an\nephemeral IP will be created with this networkTier.\n\nIf an AccessConfig with a valid external IP address is specified, it must\nmatch that of the networkTier associated with the Address resource owning\nthat IP.", + "enum": [ + "FIXED_STANDARD", + "PREMIUM", + "STANDARD", + "STANDARD_OVERRIDES_FIXED_STANDARD" + ], + "enumDescriptions": [ + "Public internet quality with fixed bandwidth.", + "High quality, Google-grade network tier, support for all networking\nproducts.", + "Public internet quality, only limited support for other networking\nproducts.", + "(Output only) Temporary tier for FIXED_STANDARD when fixed standard tier\nis expired or not configured." + ], + "type": "string" + }, + "publicPtrDomainName": { + "description": "The DNS domain name for the public PTR record.\n\nYou can set this field only if the `setPublicPtr` field is enabled inaccessConfig. If this field is unspecified inipv6AccessConfig, a default PTR record will be created for\nfirst IP in associated external IPv6 range.", + "type": "string" + }, + "securityPolicy": { + "description": "The resource URL for the security policy associated with this access\nconfig.", + "type": "string" + }, + "setPublicPtr": { + "description": "Specifies whether a public DNS 'PTR' record should be created to map the\nexternal IP address of the instance to a DNS domain name.\n\nThis field is not used in ipv6AccessConfig. A default PTR\nrecord will be created if the VM has external IPv6 range associated.", + "type": "boolean" + }, + "type": { + "description": "The type of configuration. In accessConfigs (IPv4), the\ndefault and only option is ONE_TO_ONE_NAT. Inipv6AccessConfigs, the default and only option isDIRECT_IPV6.", + "enum": [ + "DIRECT_IPV6", + "ONE_TO_ONE_NAT" + ], + "enumDescriptions": [ + "", + "" + ], + "type": "string" + } + }, + "type": "object" + }, + "Address": { + "description": "Represents an IP Address resource.\n\nGoogle Compute Engine has two IP Address resources:\n\n* [Global (external and\ninternal)](https://cloud.google.com/compute/docs/reference/rest/v1/globalAddresses)\n* [Regional (external and\ninternal)](https://cloud.google.com/compute/docs/reference/rest/v1/addresses)\n\nFor more information, see\nReserving a static external IP address.", + "id": "Address", + "properties": { + "address": { + "description": "The static IP address represented by this resource.", + "type": "string" + }, + "addressType": { + "description": "The type of address to reserve, either INTERNAL orEXTERNAL. If unspecified, defaults to EXTERNAL.", + "enum": [ + "EXTERNAL", + "INTERNAL", + "UNSPECIFIED_TYPE" + ], + "enumDescriptions": [ + "A publicly visible external IP address.", + "A private network IP address, for use with an Instance or Internal Load\nBalancer forwarding rule.", + "" + ], + "type": "string" + }, + "creationTimestamp": { + "description": "Output only. [Output Only] Creation timestamp inRFC3339\ntext format.", + "readOnly": true, + "type": "string" + }, + "description": { + "description": "An optional description of this resource. Provide this field when you\ncreate the resource.", + "type": "string" + }, + "id": { + "description": "Output only. [Output Only] The unique identifier for the resource. This identifier is\ndefined by the server.", + "format": "uint64", + "readOnly": true, + "type": "string" + }, + "ipCollection": { + "description": "Reference to the source of IP addresses.\n\nIt supports the following cases:\n \n - \n Case 1: PublicDelegatedPrefix (PDP) for BYOIP external IPv4\n addresses. The PDP must support enhanced IPv4 allocations.\n - \n Case 2: Internal Range for global internal addresses.\n\n\n\nUse one of the following formats to specify the resource:\n\nFor a Public Delegated Prefix:\n \n - \n Full resource URL:https://www.googleapis.com/compute/v1/projects/projectId/regions/region/publicDelegatedPrefixes/pdp\n - Partial URL:\n - projects/projectId/regions/region/publicDelegatedPrefixes/pdp-name\n - regions/region/publicDelegatedPrefixes/pdp-name\n \n\n\nFor an Internal Range:\n \n - Full URL:https://networkconnectivity.googleapis.com/v1/projects/project/locations/global/internalRanges/internal-range\n - Partial URL:projects/project/locations/global/internalRanges/internal-range", + "type": "string" + }, + "ipVersion": { + "description": "The IP version that will be used by this address. Valid options areIPV4 or IPV6.", + "enum": [ + "IPV4", + "IPV6", + "UNSPECIFIED_VERSION" + ], + "enumDescriptions": [ + "", + "", + "" + ], + "type": "string" + }, + "ipv6EndpointType": { + "description": "The endpoint type of this address, which should be VM\nor NETLB. This is used for deciding which type of endpoint\nthis address can be used after the external IPv6 address reservation.", + "enum": [ + "NETLB", + "VM" + ], + "enumDescriptions": [ + "Reserved IPv6 address can be used on network load balancer.", + "Reserved IPv6 address can be used on VM." + ], + "type": "string" + }, + "kind": { + "default": "compute#address", + "description": "Output only. [Output Only] Type of the resource. Always compute#address for\naddresses.", + "readOnly": true, + "type": "string" + }, + "labelFingerprint": { + "description": "A fingerprint for the labels being applied to this Address, which is\nessentially a hash of the labels set used for optimistic locking. The\nfingerprint is initially generated by Compute Engine and changes after\nevery request to modify or update labels. You must always provide an\nup-to-date fingerprint hash in order to update or change labels,\notherwise the request will fail with error412 conditionNotMet.\n\nTo see the latest fingerprint, make a get() request to\nretrieve an Address.", + "format": "byte", + "type": "string" + }, + "labels": { + "additionalProperties": { + "type": "string" + }, + "description": "Labels for this resource. These can only be added or modified by thesetLabels method. Each label key/value pair must comply withRFC1035.\nLabel values may be empty.", + "type": "object" + }, + "name": { + "annotations": { + "required": [ + "compute.addresses.insert" + ] + }, + "description": "Name of the resource. Provided by the client when the resource is created.\nThe name must be 1-63 characters long, and comply withRFC1035.\nSpecifically, the name must be 1-63 characters long and match the regular\nexpression `[a-z]([-a-z0-9]*[a-z0-9])?`. The first character\nmust be a lowercase letter, and all following characters (except for the\nlast character) must be a dash, lowercase letter, or digit. The last\ncharacter must be a lowercase letter or digit.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "type": "string" + }, + "network": { + "description": "The URL of the network in which to reserve the address. This field can\nonly be used with INTERNAL type with theVPC_PEERING purpose.", + "type": "string" + }, + "networkTier": { + "description": "This signifies the networking tier used for configuring this address and\ncan only take the following values: PREMIUM orSTANDARD. Internal IP addresses are always Premium Tier;\nglobal external IP addresses are always Premium Tier; regional external IP\naddresses can be either Standard or Premium Tier.\n\nIf this field is not specified, it is assumed to be PREMIUM.", + "enum": [ + "FIXED_STANDARD", + "PREMIUM", + "STANDARD", + "STANDARD_OVERRIDES_FIXED_STANDARD" + ], + "enumDescriptions": [ + "Public internet quality with fixed bandwidth.", + "High quality, Google-grade network tier, support for all networking\nproducts.", + "Public internet quality, only limited support for other networking\nproducts.", + "(Output only) Temporary tier for FIXED_STANDARD when fixed standard tier\nis expired or not configured." + ], + "type": "string" + }, + "prefixLength": { + "description": "The prefix length if the resource represents an IP range.", + "format": "int32", + "type": "integer" + }, + "purpose": { + "description": "The purpose of this resource, which can be one of the following values:\n \n \n - GCE_ENDPOINT for addresses that are used by VM\n instances, alias IP ranges, load balancers, and similar resources.\n - DNS_RESOLVER for a DNS resolver address in a subnetwork\n for a Cloud DNS inbound\n forwarder IP addresses (regional internal IP address in a subnet of\n a VPC network)\n - VPC_PEERING for global internal IP addresses used for\n \n private services access allocated ranges.\n - NAT_AUTO for the regional external IP addresses used by\n Cloud NAT when allocating addresses using\n \n automatic NAT IP address allocation.\n - IPSEC_INTERCONNECT for addresses created from a private\n IP range that are reserved for a VLAN attachment in an\n *HA VPN over Cloud Interconnect* configuration. These addresses\n are regional resources.\n - `SHARED_LOADBALANCER_VIP` for an internal IP address that is assigned\n to multiple internal forwarding rules.\n - `PRIVATE_SERVICE_CONNECT` for a private network address that is\n used to configure Private Service Connect. Only global internal addresses\n can use this purpose.", + "enum": [ + "DNS_RESOLVER", + "GCE_ENDPOINT", + "IPSEC_INTERCONNECT", + "NAT_AUTO", + "PRIVATE_SERVICE_CONNECT", + "SERVERLESS", + "SHARED_LOADBALANCER_VIP", + "VPC_PEERING" + ], + "enumDescriptions": [ + "DNS resolver address in the subnetwork.", + "VM internal/alias IP, Internal LB service IP, etc.", + "A regional internal IP address range reserved for the VLAN attachment\nthat is used in HA VPN over Cloud Interconnect. This regional\ninternal IP address range must not overlap with any IP address range\nof subnet/route in the VPC network and its peering networks. After the\nVLAN attachment is created with the reserved IP address range, when\ncreating a new VPN gateway, its interface IP address is allocated\nfrom the associated VLAN attachment’s IP address range.", + "External IP automatically reserved for Cloud NAT.", + "A private network IP address that can be used to configure Private\nService Connect. This purpose can be specified only forGLOBAL addresses of Type INTERNAL", + "A regional internal IP address range reserved for Serverless.", + "A private network IP address that can be shared by multiple Internal\nLoad Balancer forwarding rules.", + "IP range for peer networks." + ], + "type": "string" + }, + "region": { + "description": "Output only. [Output Only] The URL of the region where a regional address resides.\nFor regional addresses, you must specify the region as a path parameter in\nthe HTTP request URL. *This field is not applicable to global\naddresses.*", + "readOnly": true, + "type": "string" + }, + "selfLink": { + "description": "[Output Only] Server-defined URL for the resource.", + "type": "string" + }, + "status": { + "description": "Output only. [Output Only] The status of the address, which can be one ofRESERVING, RESERVED, or IN_USE.\nAn address that is RESERVING is currently in the process of\nbeing reserved. A RESERVED address is currently reserved and\navailable to use. An IN_USE address is currently being used\nby another resource and is not available.", + "enum": [ + "IN_USE", + "RESERVED", + "RESERVING" + ], + "enumDescriptions": [ + "Address is being used by another resource and is not available.", + "Address is reserved and available to use.", + "Address is being reserved." + ], + "readOnly": true, + "type": "string" + }, + "subnetwork": { + "description": "The URL of the subnetwork in which to reserve the address. If an IP address\nis specified, it must be within the subnetwork's IP range. This field can\nonly be used with INTERNAL type with aGCE_ENDPOINT or DNS_RESOLVER purpose.", + "type": "string" + }, + "users": { + "description": "[Output Only] The URLs of the resources that are using this address.", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "AddressAggregatedList": { + "id": "AddressAggregatedList", + "properties": { + "id": { + "description": "[Output Only] Unique identifier for the resource; defined by the server.", + "type": "string" + }, + "items": { + "additionalProperties": { + "$ref": "AddressesScopedList", + "description": "[Output Only] Name of the scope containing this set of addresses." + }, + "description": "A list of AddressesScopedList resources.", + "type": "object" + }, + "kind": { + "default": "compute#addressAggregatedList", + "description": "Output only. [Output Only] Type of resource. Alwayscompute#addressAggregatedList for aggregated lists of\naddresses.", + "readOnly": true, + "type": "string" + }, + "nextPageToken": { + "description": "[Output Only] This token allows you to get the next page of results for\nlist requests. If the number of results is larger thanmaxResults, use the nextPageToken as a value for\nthe query parameter pageToken in the next list request.\nSubsequent list requests will have their own nextPageToken to\ncontinue paging through the results.", + "type": "string" + }, + "selfLink": { + "description": "Output only. [Output Only] Server-defined URL for this resource.", + "readOnly": true, + "type": "string" + }, + "unreachables": { + "description": "Output only. [Output Only] Unreachable resources.", + "items": { + "type": "string" + }, + "readOnly": true, + "type": "array" + }, + "warning": { + "description": "[Output Only] Informational warning message.", + "properties": { + "code": { + "description": "[Output Only] A warning code, if applicable. For example, Compute\nEngine returns NO_RESULTS_ON_PAGE if there\nare 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", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", + "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "PARTIAL_SUCCESS", + "QUOTA_INFO_UNAVAILABLE", + "REQUIRED_TOS_AGREEMENT", + "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", + "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", + "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", + "UNREACHABLE" + ], + "enumDeprecated": [ + false, + false, + false, + false, + false, + false, + true, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false + ], + "enumDescriptions": [ + "Warning about failed cleanup of transient changes made by a failed\noperation.", + "A link to a deprecated resource was created.", + "When deploying and at least one of the resources has a type marked as\ndeprecated", + "The user created a boot disk that is larger than image size.", + "When deploying and at least one of the resources has a type marked as\nexperimental", + "Warning that is present in an external api call", + "Warning that value of a field has been overridden.\nDeprecated unused field.", + "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is\nnot of type HTTP/HTTPS/HTTP2.", + "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed\nwhich captures the amount of resources filtered out by\nuser-defined list filter.", + "A resource depends on a missing type", + "The route's nextHopIp address is not assigned to an instance on the\nnetwork.", + "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an\nipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not exist.", + "The route's nextHopInstance URL refers to an instance that is not on the\nsame network as the route.", + "The route's next hop instance does not have a status of RUNNING.", + "Error which is not critical. We decided to continue the process despite\nthe mentioned error.", + "No results are present on a particular list page.", + "Success is reported, but some results may be missing due to errors", + "Quota information is not available to client requests (e.g:\nregions.list).", + "The user attempted to use a resource that requires a TOS they have not\naccepted.", + "Warning that a resource is in use.", + "One or more of the resources set to auto-delete could not be deleted\nbecause they were in use.", + "When a resource schema validation is ignored.", + "Instance template used in instance group manager is valid as such, but\nits application does not make a lot of sense, because it allows only\nsingle instance in instance group.", + "When undeclared properties in the schema are present", + "A given scope cannot be reached." + ], + "type": "string" + }, + "data": { + "description": "[Output Only] Metadata about this warning in key:\nvalue format. For example:\n\n\"data\": [\n {\n \"key\": \"scope\",\n \"value\": \"zones/us-east1-d\"\n }", + "items": { + "properties": { + "key": { + "description": "[Output Only] A key that provides more detail on the warning being\nreturned. For example, for warnings where there are no results in a list\nrequest for a particular zone, this key might be scope and\nthe key value might be the zone name. Other examples might be a key\nindicating a deprecated resource and a suggested replacement, or a\nwarning about invalid network settings (for example, if an instance\nattempts 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" + }, + "AddressList": { + "description": "Contains a list of addresses.", + "id": "AddressList", + "properties": { + "id": { + "description": "[Output Only] Unique identifier for the resource; defined by the server.", + "type": "string" + }, + "items": { + "description": "A list of Address resources.", + "items": { + "$ref": "Address" + }, + "type": "array" + }, + "kind": { + "default": "compute#addressList", + "description": "Output only. [Output Only] Type of resource. Always compute#addressList for\nlists of addresses.", + "readOnly": true, + "type": "string" + }, + "nextPageToken": { + "description": "[Output Only] This token allows you to get the next page of results for\nlist requests. If the number of results is larger thanmaxResults, use the nextPageToken as a value for\nthe query parameter pageToken in the next list request.\nSubsequent list requests will have their own nextPageToken to\ncontinue paging through the results.", + "type": "string" + }, + "selfLink": { + "description": "Output only. [Output Only] Server-defined URL for this resource.", + "readOnly": true, + "type": "string" + }, + "warning": { + "description": "[Output Only] Informational warning message.", + "properties": { + "code": { + "description": "[Output Only] A warning code, if applicable. For example, Compute\nEngine returns NO_RESULTS_ON_PAGE if there\nare 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", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", + "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "PARTIAL_SUCCESS", + "QUOTA_INFO_UNAVAILABLE", + "REQUIRED_TOS_AGREEMENT", + "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", + "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", + "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", + "UNREACHABLE" + ], + "enumDeprecated": [ + false, + false, + false, + false, + false, + false, + true, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false + ], + "enumDescriptions": [ + "Warning about failed cleanup of transient changes made by a failed\noperation.", + "A link to a deprecated resource was created.", + "When deploying and at least one of the resources has a type marked as\ndeprecated", + "The user created a boot disk that is larger than image size.", + "When deploying and at least one of the resources has a type marked as\nexperimental", + "Warning that is present in an external api call", + "Warning that value of a field has been overridden.\nDeprecated unused field.", + "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is\nnot of type HTTP/HTTPS/HTTP2.", + "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed\nwhich captures the amount of resources filtered out by\nuser-defined list filter.", + "A resource depends on a missing type", + "The route's nextHopIp address is not assigned to an instance on the\nnetwork.", + "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an\nipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not exist.", + "The route's nextHopInstance URL refers to an instance that is not on the\nsame network as the route.", + "The route's next hop instance does not have a status of RUNNING.", + "Error which is not critical. We decided to continue the process despite\nthe mentioned error.", + "No results are present on a particular list page.", + "Success is reported, but some results may be missing due to errors", + "Quota information is not available to client requests (e.g:\nregions.list).", + "The user attempted to use a resource that requires a TOS they have not\naccepted.", + "Warning that a resource is in use.", + "One or more of the resources set to auto-delete could not be deleted\nbecause they were in use.", + "When a resource schema validation is ignored.", + "Instance template used in instance group manager is valid as such, but\nits application does not make a lot of sense, because it allows only\nsingle instance in instance group.", + "When undeclared properties in the schema are present", + "A given scope cannot be reached." + ], + "type": "string" + }, + "data": { + "description": "[Output Only] Metadata about this warning in key:\nvalue format. For example:\n\n\"data\": [\n {\n \"key\": \"scope\",\n \"value\": \"zones/us-east1-d\"\n }", + "items": { + "properties": { + "key": { + "description": "[Output Only] A key that provides more detail on the warning being\nreturned. For example, for warnings where there are no results in a list\nrequest for a particular zone, this key might be scope and\nthe key value might be the zone name. Other examples might be a key\nindicating a deprecated resource and a suggested replacement, or a\nwarning about invalid network settings (for example, if an instance\nattempts 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" + }, + "AddressesScopedList": { + "id": "AddressesScopedList", + "properties": { + "addresses": { + "description": "[Output Only] A list of addresses contained in this scope.", + "items": { + "$ref": "Address" + }, + "type": "array" + }, + "warning": { + "description": "[Output Only] Informational warning which replaces the list of addresses\nwhen the list is empty.", + "properties": { + "code": { + "description": "[Output Only] A warning code, if applicable. For example, Compute\nEngine returns NO_RESULTS_ON_PAGE if there\nare 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", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", + "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "PARTIAL_SUCCESS", + "QUOTA_INFO_UNAVAILABLE", + "REQUIRED_TOS_AGREEMENT", + "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", + "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", + "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", + "UNREACHABLE" + ], + "enumDeprecated": [ + false, + false, + false, + false, + false, + false, + true, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false + ], + "enumDescriptions": [ + "Warning about failed cleanup of transient changes made by a failed\noperation.", + "A link to a deprecated resource was created.", + "When deploying and at least one of the resources has a type marked as\ndeprecated", + "The user created a boot disk that is larger than image size.", + "When deploying and at least one of the resources has a type marked as\nexperimental", + "Warning that is present in an external api call", + "Warning that value of a field has been overridden.\nDeprecated unused field.", + "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is\nnot of type HTTP/HTTPS/HTTP2.", + "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed\nwhich captures the amount of resources filtered out by\nuser-defined list filter.", + "A resource depends on a missing type", + "The route's nextHopIp address is not assigned to an instance on the\nnetwork.", + "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an\nipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not exist.", + "The route's nextHopInstance URL refers to an instance that is not on the\nsame network as the route.", + "The route's next hop instance does not have a status of RUNNING.", + "Error which is not critical. We decided to continue the process despite\nthe mentioned error.", + "No results are present on a particular list page.", + "Success is reported, but some results may be missing due to errors", + "Quota information is not available to client requests (e.g:\nregions.list).", + "The user attempted to use a resource that requires a TOS they have not\naccepted.", + "Warning that a resource is in use.", + "One or more of the resources set to auto-delete could not be deleted\nbecause they were in use.", + "When a resource schema validation is ignored.", + "Instance template used in instance group manager is valid as such, but\nits application does not make a lot of sense, because it allows only\nsingle instance in instance group.", + "When undeclared properties in the schema are present", + "A given scope cannot be reached." + ], + "type": "string" + }, + "data": { + "description": "[Output Only] Metadata about this warning in key:\nvalue format. For example:\n\n\"data\": [\n {\n \"key\": \"scope\",\n \"value\": \"zones/us-east1-d\"\n }", + "items": { + "properties": { + "key": { + "description": "[Output Only] A key that provides more detail on the warning being\nreturned. For example, for warnings where there are no results in a list\nrequest for a particular zone, this key might be scope and\nthe key value might be the zone name. Other examples might be a key\nindicating a deprecated resource and a suggested replacement, or a\nwarning about invalid network settings (for example, if an instance\nattempts 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" + }, + "AdvancedMachineFeatures": { + "description": "Specifies options for controlling advanced machine features.\nOptions that would traditionally be configured in a BIOS belong\nhere. Features that require operating system support may have\ncorresponding entries in the GuestOsFeatures of anImage (e.g., whether or not the OS in theImage supports nested virtualization being enabled or\ndisabled).", + "id": "AdvancedMachineFeatures", + "properties": { + "enableNestedVirtualization": { + "description": "Whether to enable nested virtualization or not (default is false).", + "type": "boolean" + }, + "enableUefiNetworking": { + "description": "Whether to enable UEFI networking for instance creation.", + "type": "boolean" + }, + "performanceMonitoringUnit": { + "description": "Type of Performance Monitoring Unit requested on instance.", + "enum": [ + "ARCHITECTURAL", + "ENHANCED", + "PERFORMANCE_MONITORING_UNIT_UNSPECIFIED", + "STANDARD" + ], + "enumDescriptions": [ + "Architecturally defined non-LLC events.", + "Most documented core/L2 and LLC events.", + "", + "Most documented core/L2 events." + ], + "type": "string" + }, + "threadsPerCore": { + "description": "The number of threads per physical core. To disable simultaneous\nmultithreading (SMT) set this to 1. If unset, the maximum number\nof threads supported per core by the underlying processor is\nassumed.", + "format": "int32", + "type": "integer" + }, + "turboMode": { + "description": "Turbo frequency mode to use for the instance.\nSupported modes include:\n* ALL_CORE_MAX\n\nUsing empty string or not setting this field will use the platform-specific\ndefault turbo mode.", + "type": "string" + }, + "visibleCoreCount": { + "description": "The number of physical cores to expose to an instance. Multiply by\nthe number of threads per core to compute the total number of virtual\nCPUs to expose to the instance. If unset, the number of cores is\ninferred from the instance's nominal CPU count and the underlying\nplatform's SMT width.", + "format": "int32", + "type": "integer" + } + }, + "type": "object" + }, + "AliasIpRange": { + "description": "An alias IP range attached to an instance's network interface.", + "id": "AliasIpRange", + "properties": { + "ipCidrRange": { + "description": "The IP alias ranges to allocate for this interface. This IP CIDR range\nmust belong to the specified subnetwork and cannot contain IP addresses\nreserved by system or used by other network interfaces. This range may be\na single IP address (such as 10.2.3.4), a netmask (such as/24) or a CIDR-formatted string (such as10.1.2.0/24).", + "type": "string" + }, + "subnetworkRangeName": { + "description": "The name of a subnetwork secondary IP range from which to allocate an IP\nalias range. If not specified, the primary range of the subnetwork is used.", + "type": "string" + } + }, + "type": "object" + }, + "AllocationAggregateReservation": { + "description": "This reservation type is specified by total resource amounts (e.g. total\ncount of CPUs) and can account for multiple instance SKUs. In other words,\none can create instances of varying shapes against this reservation.", + "id": "AllocationAggregateReservation", + "properties": { + "inUseResources": { + "description": "Output only. [Output only] List of resources currently in use.", + "items": { + "$ref": "AllocationAggregateReservationReservedResourceInfo" + }, + "readOnly": true, + "type": "array" + }, + "reservedResources": { + "description": "List of reserved resources (CPUs, memory, accelerators).", + "items": { + "$ref": "AllocationAggregateReservationReservedResourceInfo" + }, + "type": "array" + }, + "vmFamily": { + "description": "The VM family that all instances scheduled against this reservation must\nbelong to.", + "enum": [ + "VM_FAMILY_CLOUD_TPU_DEVICE_CT3", + "VM_FAMILY_CLOUD_TPU_LITE_DEVICE_CT5L", + "VM_FAMILY_CLOUD_TPU_LITE_POD_SLICE_CT5LP", + "VM_FAMILY_CLOUD_TPU_LITE_POD_SLICE_CT6E", + "VM_FAMILY_CLOUD_TPU_POD_SLICE_CT3P", + "VM_FAMILY_CLOUD_TPU_POD_SLICE_CT4P", + "VM_FAMILY_CLOUD_TPU_POD_SLICE_CT5P", + "VM_FAMILY_CLOUD_TPU_POD_SLICE_TPU7X" + ], + "enumDescriptions": [ + "", + "", + "", + "", + "", + "", + "", + "" + ], + "type": "string" + }, + "workloadType": { + "description": "The workload type of the instances that will target this reservation.", + "enum": [ + "BATCH", + "SERVING", + "UNSPECIFIED" + ], + "enumDescriptions": [ + "Reserved resources will be optimized for BATCH workloads, such as ML\ntraining.", + "Reserved resources will be optimized for SERVING workloads, such as ML\ninference.", + "" + ], + "type": "string" + } + }, + "type": "object" + }, + "AllocationAggregateReservationReservedResourceInfo": { + "id": "AllocationAggregateReservationReservedResourceInfo", + "properties": { + "accelerator": { + "$ref": "AllocationAggregateReservationReservedResourceInfoAccelerator", + "description": "Properties of accelerator resources in this reservation." + } + }, + "type": "object" + }, + "AllocationAggregateReservationReservedResourceInfoAccelerator": { + "id": "AllocationAggregateReservationReservedResourceInfoAccelerator", + "properties": { + "acceleratorCount": { + "description": "Number of accelerators of specified type.", + "format": "int32", + "type": "integer" + }, + "acceleratorType": { + "description": "Full or partial URL to accelerator type. e.g.\n\"projects/{PROJECT}/zones/{ZONE}/acceleratorTypes/ct4l\"", + "type": "string" + } + }, + "type": "object" + }, + "AllocationReservationSharingPolicy": { + "id": "AllocationReservationSharingPolicy", + "properties": { + "serviceShareType": { + "description": "Sharing config for all Google Cloud services.", + "enum": [ + "ALLOW_ALL", + "DISALLOW_ALL", + "SERVICE_SHARE_TYPE_UNSPECIFIED" + ], + "enumDescriptions": [ + "Allow all Google Cloud managed services to share reservations.", + "[Default] Disallow sharing with all Google Cloud services.", + "" + ], + "type": "string" + } + }, + "type": "object" + }, + "AllocationResourceStatus": { + "description": "[Output Only] Contains output only fields.", + "id": "AllocationResourceStatus", + "properties": { + "healthInfo": { + "$ref": "AllocationResourceStatusHealthInfo", + "description": "[Output only] Health information for the reservation." + }, + "reservationBlockCount": { + "description": "The number of reservation blocks associated with this reservation.", + "format": "int32", + "type": "integer" + }, + "reservationMaintenance": { + "$ref": "GroupMaintenanceInfo", + "description": "Maintenance information for this reservation" + }, + "specificSkuAllocation": { + "$ref": "AllocationResourceStatusSpecificSKUAllocation", + "description": "Allocation Properties of this reservation." + } + }, + "type": "object" + }, + "AllocationResourceStatusHealthInfo": { + "description": "Health information for the reservation.", + "id": "AllocationResourceStatusHealthInfo", + "properties": { + "degradedBlockCount": { + "description": "The number of reservation blocks that are degraded.", + "format": "int32", + "type": "integer" + }, + "healthStatus": { + "description": "The health status of the reservation.", + "enum": [ + "DEGRADED", + "HEALTHY", + "HEALTH_STATUS_UNSPECIFIED" + ], + "enumDescriptions": [ + "The reservation is degraded.", + "The reservation is healthy.", + "The health status of the reservation is unspecified." + ], + "type": "string" + }, + "healthyBlockCount": { + "description": "The number of reservation blocks that are healthy.", + "format": "int32", + "type": "integer" + } + }, + "type": "object" + }, + "AllocationResourceStatusSpecificSKUAllocation": { + "description": "Contains Properties set for the reservation.", + "id": "AllocationResourceStatusSpecificSKUAllocation", + "properties": { + "sourceInstanceTemplateId": { + "description": "ID of the instance template used to populate reservation properties.", + "type": "string" + }, + "utilizations": { + "additionalProperties": { + "format": "int64", + "type": "string" + }, + "description": "Per service utilization breakdown. The Key is the Google Cloud managed\nservice name.", + "type": "object" + } + }, + "type": "object" + }, + "AllocationSpecificSKUAllocationAllocatedInstancePropertiesReservedDisk": { + "id": "AllocationSpecificSKUAllocationAllocatedInstancePropertiesReservedDisk", + "properties": { + "diskSizeGb": { + "description": "Specifies the size of the disk in base-2 GB.", + "format": "int64", + "type": "string" + }, + "interface": { + "description": "Specifies the disk interface to use for attaching this disk, which is\neither SCSI or NVME. The default isSCSI.\nFor performance characteristics of SCSI over NVMe, seeLocal SSD performance.", + "enum": [ + "NVME", + "SCSI" + ], + "enumDescriptions": [ + "", + "" + ], + "type": "string" + } + }, + "type": "object" + }, + "AllocationSpecificSKUAllocationReservedInstanceProperties": { + "description": "Properties of the SKU instances being reserved.\nNext ID: 10", + "id": "AllocationSpecificSKUAllocationReservedInstanceProperties", + "properties": { + "guestAccelerators": { + "description": "Specifies accelerator type and count.", + "items": { + "$ref": "AcceleratorConfig" + }, + "type": "array" + }, + "localSsds": { + "description": "Specifies amount of local ssd to reserve with each instance. The type\nof disk is local-ssd.", + "items": { + "$ref": "AllocationSpecificSKUAllocationAllocatedInstancePropertiesReservedDisk" + }, + "type": "array" + }, + "locationHint": { + "description": "An opaque location hint used to place the allocation close to other\nresources.\nThis field is for use by internal tools that use the public API.", + "type": "string" + }, + "machineType": { + "description": "Specifies type of machine (name only) which has fixed number of vCPUs\nand fixed amount of memory. This also includes specifying custom\nmachine type following custom-NUMBER_OF_CPUS-AMOUNT_OF_MEMORY pattern.", + "type": "string" + }, + "minCpuPlatform": { + "description": "Minimum cpu platform the reservation.", + "type": "string" + } + }, + "type": "object" + }, + "AllocationSpecificSKUReservation": { + "description": "This reservation type allows to pre allocate specific instance\n configuration.", + "id": "AllocationSpecificSKUReservation", + "properties": { + "assuredCount": { + "description": "Output only. [Output Only] Indicates how many instances are actually usable currently.", + "format": "int64", + "readOnly": true, + "type": "string" + }, + "count": { + "description": "Specifies the number of resources that are allocated.", + "format": "int64", + "type": "string" + }, + "inUseCount": { + "description": "Output only. [Output Only] Indicates how many instances are in use.", + "format": "int64", + "readOnly": true, + "type": "string" + }, + "instanceProperties": { + "$ref": "AllocationSpecificSKUAllocationReservedInstanceProperties", + "description": "The instance properties for the reservation." + }, + "sourceInstanceTemplate": { + "description": "Specifies the instance template to create the reservation. If you use\nthis field, you must exclude the instanceProperties field.\n\nThis field is optional, and it can be a full or partial URL. For example,\nthe following are all valid URLs to an instance template: \n \n \n - https://www.googleapis.com/compute/v1/projects/project/global/instanceTemplates/instanceTemplate\n - projects/project/global/instanceTemplates/instanceTemplate\n - global/instanceTemplates/instanceTemplate", + "type": "string" + } + }, + "type": "object" + }, + "AttachedDisk": { + "description": "An instance-attached disk resource.", + "id": "AttachedDisk", + "properties": { + "architecture": { + "description": "Output only. [Output Only] The architecture of the attached disk. Valid values are ARM64\nor X86_64.", + "enum": [ + "ARCHITECTURE_UNSPECIFIED", + "ARM64", + "X86_64" + ], + "enumDescriptions": [ + "Default value indicating Architecture is not set.", + "Machines with architecture ARM64", + "Machines with architecture X86_64" + ], + "readOnly": true, + "type": "string" + }, + "autoDelete": { + "description": "Specifies whether the disk will be auto-deleted when the instance is\ndeleted (but not when the disk is detached from the instance).", + "type": "boolean" + }, + "boot": { + "description": "Indicates that this is a boot disk. The virtual machine will use the first\npartition of the disk for its root filesystem.", + "type": "boolean" + }, + "deviceName": { + "description": "Specifies a unique device name of your choice that is reflected into the/dev/disk/by-id/google-* tree of a Linux operating system\nrunning within the instance. This name can be used to reference the device\nfor mounting, resizing, and so on, from within the instance.\n\nIf not specified, the server chooses a default device name to apply to this\ndisk, in the form persistent-disk-x, where x is a number\nassigned by Google Compute Engine. This field is only applicable for\npersistent disks.", + "type": "string" + }, + "diskEncryptionKey": { + "$ref": "CustomerEncryptionKey", + "description": "Encrypts or decrypts a disk using acustomer-supplied\nencryption key.\n\nIf you are creating a new disk, this field encrypts the new disk using\nan encryption key that you provide. If you are attaching an existing\ndisk that is already encrypted, this field decrypts the disk using\nthe customer-supplied encryption key.\n\nIf you encrypt a disk using a customer-supplied key, you must provide the\nsame key again when you attempt to use this resource at a later time. For\nexample, you must provide the key when you create a snapshot or an image\nfrom the disk or when you attach the disk to a virtual machine instance.\n\nIf you do not provide an encryption key, then the disk will be encrypted\nusing an automatically generated key and you do not need to provide a key\nto use the disk later.\n\nNote:\n\nInstance templates do not storecustomer-supplied\nencryption keys, so you cannot use your own keys to encrypt disks in amanaged instance group.\n\nYou cannot create VMs that have disks with customer-supplied keys using\nthe bulk\ninsert method." + }, + "diskSizeGb": { + "description": "The size of the disk in GB.", + "format": "int64", + "type": "string" + }, + "forceAttach": { + "description": "[Input Only] Whether to force attach the regional disk even if it's\ncurrently attached to another instance. If you try to force attach a zonal\ndisk to an instance, you will receive an error.", + "type": "boolean" + }, + "guestOsFeatures": { + "description": "A list of features to enable on the guest operating system. Applicable\nonly for bootable images. Read\nEnabling guest operating system features to see a list of available\noptions.", + "items": { + "$ref": "GuestOsFeature" + }, + "type": "array" + }, + "index": { + "description": "Output only. [Output Only] A zero-based index to this disk, where 0 is reserved for the\nboot disk. If you have many disks attached to an instance, each\ndisk would have a unique index number.", + "format": "int32", + "readOnly": true, + "type": "integer" + }, + "initializeParams": { + "$ref": "AttachedDiskInitializeParams", + "description": "[Input Only] Specifies the parameters for a new disk that will be created\nalongside the new instance. Use initialization parameters to create boot\ndisks or local SSDs attached to the new instance.\n\nThis property is mutually exclusive with the source property;\nyou can only define one or the other, but not both." + }, + "interface": { + "description": "Specifies the disk interface to use for attaching this disk, which is\neither SCSI or NVME. For most machine types, the\ndefault is SCSI. Local SSDs can use either NVME or SCSI.\nIn certain configurations, persistent disks can use NVMe. For more\ninformation, seeAbout\npersistent disks.", + "enum": [ + "NVME", + "SCSI" + ], + "enumDescriptions": [ + "", + "" + ], + "type": "string" + }, + "kind": { + "default": "compute#attachedDisk", + "description": "Output only. [Output Only] Type of the resource. Alwayscompute#attachedDisk for attached disks.", + "readOnly": true, + "type": "string" + }, + "licenses": { + "description": "Output only. [Output Only] Any valid publicly visible licenses.", + "items": { + "type": "string" + }, + "readOnly": true, + "type": "array" + }, + "mode": { + "description": "The mode in which to attach this disk, either READ_WRITE orREAD_ONLY. If not specified, the default is to attach the disk\nin READ_WRITE mode.", + "enum": [ + "READ_ONLY", + "READ_WRITE" + ], + "enumDescriptions": [ + "Attaches this disk in read-only mode. Multiple virtual machines can use\na disk in read-only mode at a time.", + "*[Default]* Attaches this disk in read-write mode. Only one\nvirtual machine at a time can be attached to a disk in read-write mode." + ], + "type": "string" + }, + "savedState": { + "description": "Output only. For LocalSSD disks on VM Instances in STOPPED or SUSPENDED state, this\nfield is set to PRESERVED if the LocalSSD data has been saved\nto a persistent location by customer request. (see the\ndiscard_local_ssd option on Stop/Suspend).\nRead-only in the api.", + "enum": [ + "DISK_SAVED_STATE_UNSPECIFIED", + "PRESERVED" + ], + "enumDescriptions": [ + "*[Default]* Disk state has not been preserved.", + "Disk state has been preserved." + ], + "readOnly": true, + "type": "string" + }, + "shieldedInstanceInitialState": { + "$ref": "InitialStateConfig", + "description": "Output only. [Output Only] shielded vm initial state stored on disk", + "readOnly": true + }, + "source": { + "description": "Specifies a valid partial or full URL to an existing Persistent Disk\nresource. When creating a new instance boot disk, one ofinitializeParams.sourceImage orinitializeParams.sourceSnapshot or disks.source\nis required.\n\nIf desired, you can also attach existing non-root persistent disks using\nthis property. This field is only applicable for persistent disks.\n\nNote that for InstanceTemplate, specify the disk name for zonal disk,\nand the URL for regional disk.", + "type": "string" + }, + "type": { + "description": "Specifies the type of the disk, either SCRATCH orPERSISTENT. If not specified, the default isPERSISTENT.", + "enum": [ + "PERSISTENT", + "SCRATCH" + ], + "enumDescriptions": [ + "", + "" + ], + "type": "string" + } + }, + "type": "object" + }, + "AttachedDiskInitializeParams": { + "description": "[Input Only] Specifies the parameters for a new disk that will be created\nalongside the new instance. Use initialization parameters to create boot\ndisks or local SSDs attached to the new instance.\n\nThis field is persisted and returned for instanceTemplate and not returned\nin the context of instance.\n\nThis property is mutually exclusive with the source property;\nyou can only define one or the other, but not both.", + "id": "AttachedDiskInitializeParams", + "properties": { + "architecture": { + "description": "The architecture of the attached disk. Valid values are\narm64 or x86_64.", + "enum": [ + "ARCHITECTURE_UNSPECIFIED", + "ARM64", + "X86_64" + ], + "enumDescriptions": [ + "Default value indicating Architecture is not set.", + "Machines with architecture ARM64", + "Machines with architecture X86_64" + ], + "type": "string" + }, + "description": { + "description": "An optional description. Provide this property when creating the disk.", + "type": "string" + }, + "diskName": { + "description": "Specifies the disk name. If not specified, the default is to use the name\nof the instance. If a disk with the same name already exists in the given\nregion, the existing disk is attached to the new instance and the\nnew disk is not created.", + "type": "string" + }, + "diskSizeGb": { + "description": "Specifies the size of the disk in base-2 GB. The size must be at least\n10 GB. If you specify a sourceImage, which is required for\nboot disks, the default size is the size of the sourceImage.\nIf you do not specify a sourceImage, the default disk size\nis 500 GB.", + "format": "int64", + "type": "string" + }, + "diskType": { + "type": "string" + }, + "enableConfidentialCompute": { + "description": "Whether this disk is using confidential compute mode.", + "type": "boolean" + }, + "labels": { + "additionalProperties": { + "type": "string" + }, + "description": "Labels to apply to this disk. These can be later modified by thedisks.setLabels method. This field is only applicable for\npersistent disks.", + "type": "object" + }, + "licenses": { + "description": "A list of publicly visible licenses. Reserved for Google's use.", + "items": { + "type": "string" + }, + "type": "array" + }, + "onUpdateAction": { + "description": "Specifies which action to take on instance update with this disk. Default\nis to use the existing disk.", + "enum": [ + "RECREATE_DISK", + "RECREATE_DISK_IF_SOURCE_CHANGED", + "USE_EXISTING_DISK" + ], + "enumDescriptions": [ + "Always recreate the disk.", + "Recreate the disk if source (image, snapshot) of this disk is different\nfrom source of existing disk.", + "Use the existing disk, this is the default behaviour." + ], + "type": "string" + }, + "provisionedIops": { + "description": "Indicates how many IOPS to provision for the disk. This sets the number\nof I/O operations per second that the disk can handle. Values must be\nbetween 10,000 and 120,000. For more details, see theExtreme persistent\ndisk documentation.", + "format": "int64", + "type": "string" + }, + "provisionedThroughput": { + "description": "Indicates how much throughput to provision for the disk. This sets the\nnumber of throughput mb per second that the disk can handle. Values must\ngreater than or equal to 1.", + "format": "int64", + "type": "string" + }, + "replicaZones": { + "description": "Required for each regional disk associated with the instance. Specify\nthe URLs of the zones where the disk should be replicated to.\nYou must provide exactly two replica zones, and one zone must be the same\nas the instance zone.", + "items": { + "type": "string" + }, + "type": "array" + }, + "resourceManagerTags": { + "additionalProperties": { + "type": "string" + }, + "description": "Input only. Resource manager tags to be bound to the disk. Tag keys and values\nhave the same definition as resource\nmanager tags. Keys and values can be either in numeric format,\nsuch as `tagKeys/{tag_key_id}` and `tagValues/{tag_value_id}` or in\nnamespaced format such as `{org_id|project_id}/{tag_key_short_name}` and\n`{tag_value_short_name}`. The field is ignored (both PUT \u0026 PATCH) when\nempty.", + "type": "object" + }, + "resourcePolicies": { + "description": "Resource policies applied to this disk for automatic snapshot creations.\nSpecified using the full or partial URL. For instance template, specify\nonly the resource policy name.", + "items": { + "type": "string" + }, + "type": "array" + }, + "sourceImage": { + "description": "The source image to create this disk. When creating a new instance boot\ndisk, one of initializeParams.sourceImage orinitializeParams.sourceSnapshot or disks.source\nis required.\n\nTo create a disk with one of the public operating system\nimages, specify the image by its family name. For example, specifyfamily/debian-9 to use the latest Debian 9 image:\n\nprojects/debian-cloud/global/images/family/debian-9\n\n\nAlternatively, use a specific version of a public operating system image:\n\nprojects/debian-cloud/global/images/debian-9-stretch-vYYYYMMDD\n\n\nTo create a disk with a custom image that you created, specify the\nimage name in the following format:\n\nglobal/images/my-custom-image\n\n\nYou can also specify a custom image by its image family, which returns\nthe latest version of the image in that family. Replace the image name\nwith family/family-name:\n\nglobal/images/family/my-image-family\n\n\nIf the source image is deleted later, this field will not be set.", + "type": "string" + }, + "sourceImageEncryptionKey": { + "$ref": "CustomerEncryptionKey", + "description": "Thecustomer-supplied\nencryption key of the source image. Required if the source image is\nprotected by a customer-supplied encryption key.\n\nInstanceTemplate and InstancePropertiesPatch do not storecustomer-supplied\nencryption keys, so you cannot create disks for instances in a managed instance group if the\nsource images are encrypted with your own keys." + }, + "sourceSnapshot": { + "description": "The source snapshot to create this disk. When creating a new instance\nboot disk, one of initializeParams.sourceSnapshot orinitializeParams.sourceImage or disks.source\nis required.\n\nTo create a disk with a snapshot that you created, specify the\nsnapshot name in the following format:\n\nglobal/snapshots/my-backup\n\n\nIf the source snapshot is deleted later, this field will not be set.\n\nNote: You cannot create VMs in bulk using a snapshot as the source. Use\nan image instead when you create VMs using\nthe bulk\ninsert method.", + "type": "string" + }, + "sourceSnapshotEncryptionKey": { + "$ref": "CustomerEncryptionKey", + "description": "Thecustomer-supplied\nencryption key of the source snapshot." + }, + "storagePool": { + "description": "The storage pool in which the new disk is created. You can provide\nthis as a partial or full URL to the resource. For example, the following\nare valid values:\n \n \n - https://www.googleapis.com/compute/v1/projects/project/zones/zone/storagePools/storagePool\n - projects/project/zones/zone/storagePools/storagePool \n - zones/zone/storagePools/storagePool", + "type": "string" + } + }, + "type": "object" + }, + "AuditConfig": { + "description": "Specifies the audit configuration for a service.\nThe configuration determines which permission types are logged, and what\nidentities, if any, are exempted from logging.\nAn AuditConfig must have one or more AuditLogConfigs.\n\nIf there are AuditConfigs for both `allServices` and a specific service,\nthe union of the two AuditConfigs is used for that service: the log_types\nspecified in each AuditConfig are enabled, and the exempted_members in each\nAuditLogConfig are exempted.\n\nExample Policy with multiple AuditConfigs:\n\n {\n \"audit_configs\": [\n {\n \"service\": \"allServices\",\n \"audit_log_configs\": [\n {\n \"log_type\": \"DATA_READ\",\n \"exempted_members\": [\n \"user:jose@example.com\"\n ]\n },\n {\n \"log_type\": \"DATA_WRITE\"\n },\n {\n \"log_type\": \"ADMIN_READ\"\n }\n ]\n },\n {\n \"service\": \"sampleservice.googleapis.com\",\n \"audit_log_configs\": [\n {\n \"log_type\": \"DATA_READ\"\n },\n {\n \"log_type\": \"DATA_WRITE\",\n \"exempted_members\": [\n \"user:aliya@example.com\"\n ]\n }\n ]\n }\n ]\n }\n\nFor sampleservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ\nlogging. It also exempts `jose@example.com` from DATA_READ logging, and\n`aliya@example.com` from DATA_WRITE logging.", + "id": "AuditConfig", + "properties": { + "auditLogConfigs": { + "description": "The configuration for logging of each type of permission.", + "items": { + "$ref": "AuditLogConfig" + }, + "type": "array" + }, + "service": { + "description": "Specifies a service that will be enabled for audit logging.\nFor example, `storage.googleapis.com`, `cloudsql.googleapis.com`.\n`allServices` is a special value that covers all services.", + "type": "string" + } + }, + "type": "object" + }, + "AuditLogConfig": { + "description": "Provides the configuration for logging a type of permissions.\nExample:\n\n {\n \"audit_log_configs\": [\n {\n \"log_type\": \"DATA_READ\",\n \"exempted_members\": [\n \"user:jose@example.com\"\n ]\n },\n {\n \"log_type\": \"DATA_WRITE\"\n }\n ]\n }\n\nThis enables 'DATA_READ' and 'DATA_WRITE' logging, while exempting\njose@example.com from DATA_READ logging.", + "id": "AuditLogConfig", + "properties": { + "exemptedMembers": { + "description": "Specifies the identities that do not cause logging for this type of\npermission.\nFollows the same format of Binding.members.", + "items": { + "type": "string" + }, + "type": "array" + }, + "logType": { + "description": "The log type that this config enables.", + "enum": [ + "ADMIN_READ", + "DATA_READ", + "DATA_WRITE", + "LOG_TYPE_UNSPECIFIED" + ], + "enumDescriptions": [ + "Admin reads. Example: CloudIAM getIamPolicy", + "Data reads. Example: CloudSQL Users list", + "Data writes. Example: CloudSQL Users create", + "Default case. Should never be this." + ], + "type": "string" + } + }, + "type": "object" + }, + "Autoscaler": { + "description": "Represents an Autoscaler resource.\n\nGoogle Compute Engine has two Autoscaler resources:\n\n* [Zonal](/compute/docs/reference/rest/v1/autoscalers)\n* [Regional](/compute/docs/reference/rest/v1/regionAutoscalers)\n\nUse autoscalers to automatically add or delete instances from a\nmanaged instance group according to your defined autoscaling policy.\nFor more information, read Autoscaling Groups of Instances.\n\nFor zonal managed instance groups resource, use the autoscaler\nresource.\n\nFor regional managed instance groups, use theregionAutoscalers resource.", + "id": "Autoscaler", + "properties": { + "autoscalingPolicy": { + "$ref": "AutoscalingPolicy", + "description": "The configuration parameters for the autoscaling algorithm. You can define\none or more signals for an autoscaler: cpuUtilization,customMetricUtilizations, andloadBalancingUtilization.\n\nIf none of these are specified, the default will be to autoscale based oncpuUtilization to 0.6 or 60%." + }, + "creationTimestamp": { + "description": "Output only. [Output Only] Creation timestamp inRFC3339\ntext format.", + "readOnly": true, + "type": "string" + }, + "description": { + "description": "An optional description of this resource. Provide this property when you\ncreate the resource.", + "type": "string" + }, + "id": { + "description": "Output only. [Output Only] The unique identifier for the resource. This identifier is\ndefined by the server.", + "format": "uint64", + "readOnly": true, + "type": "string" + }, + "kind": { + "default": "compute#autoscaler", + "description": "Output only. [Output Only] Type of the resource. Always compute#autoscaler\nfor autoscalers.", + "readOnly": true, + "type": "string" + }, + "name": { + "annotations": { + "required": [ + "compute.autoscalers.insert" + ] + }, + "description": "Name of the resource. Provided by the client when the resource is created.\nThe name must be 1-63 characters long, and comply withRFC1035.\nSpecifically, the name must be 1-63 characters long and match the regular\nexpression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first\ncharacter must be a lowercase letter, and all following characters must\nbe a dash, lowercase letter, or digit, except the last character, which\ncannot be a dash.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "type": "string" + }, + "recommendedSize": { + "description": "Output only. [Output Only] Target recommended MIG size (number of instances) computed by\nautoscaler. Autoscaler calculates the recommended MIG size even when the\nautoscaling policy mode is different from ON. This field is empty when\nautoscaler is not connected to an existing managed instance group or\nautoscaler did not generate its prediction.", + "format": "int32", + "readOnly": true, + "type": "integer" + }, + "region": { + "description": "Output only. [Output Only] URL of theregion\nwhere the instance group resides (for autoscalers living in regional\nscope).", + "readOnly": true, + "type": "string" + }, + "scalingScheduleStatus": { + "additionalProperties": { + "$ref": "ScalingScheduleStatus" + }, + "description": "Output only. [Output Only] Status information of existing scaling schedules.", + "readOnly": true, + "type": "object" + }, + "selfLink": { + "description": "[Output Only] Server-defined URL for the resource.", + "type": "string" + }, + "status": { + "description": "[Output Only] The status of the autoscaler configuration. Current set of\npossible values:\n \n - PENDING:\n Autoscaler backend hasn't read new/updated configuration.\n - DELETING:\n Configuration is being deleted.\n - ACTIVE:\n Configuration is acknowledged to be effective. Some warnings might\n be present in the statusDetails field.\n - ERROR:\n Configuration has errors. Actionable for users. Details are present in\n the statusDetails field.\n\n\nNew values might be added in the future.", + "enum": [ + "ACTIVE", + "DELETING", + "ERROR", + "PENDING" + ], + "enumDescriptions": [ + "Configuration is acknowledged to be effective", + "Configuration is being deleted", + "Configuration has errors. Actionable for users.", + "Autoscaler backend hasn't read new/updated configuration" + ], + "type": "string" + }, + "statusDetails": { + "description": "[Output Only] Human-readable details about the current state of the\nautoscaler. Read the documentation forCommonly\nreturned status messages for examples of status messages you might\nencounter.", + "items": { + "$ref": "AutoscalerStatusDetails" + }, + "type": "array" + }, + "target": { + "description": "URL of the managed instance group that this autoscaler will scale. This\nfield is required when creating an autoscaler.", + "type": "string" + }, + "zone": { + "description": "Output only. [Output Only] URL of thezone\nwhere the instance group resides (for autoscalers living in zonal scope).", + "readOnly": true, + "type": "string" + } + }, + "type": "object" + }, + "AutoscalerAggregatedList": { + "id": "AutoscalerAggregatedList", + "properties": { + "id": { + "description": "[Output Only] Unique identifier for the resource; defined by the server.", + "type": "string" + }, + "items": { + "additionalProperties": { + "$ref": "AutoscalersScopedList", + "description": "[Output Only] Name of the scope containing this set of autoscalers." + }, + "description": "A list of AutoscalersScopedList resources.", + "type": "object" + }, + "kind": { + "default": "compute#autoscalerAggregatedList", + "description": "Output only. [Output Only] Type of resource. Alwayscompute#autoscalerAggregatedList for aggregated lists of\nautoscalers.", + "readOnly": true, + "type": "string" + }, + "nextPageToken": { + "description": "[Output Only] This token allows you to get the next page of results for\nlist requests. If the number of results is larger thanmaxResults, use the nextPageToken as a value for\nthe query parameter pageToken in the next list request.\nSubsequent list requests will have their own nextPageToken to\ncontinue paging through the results.", + "type": "string" + }, + "selfLink": { + "description": "Output only. [Output Only] Server-defined URL for this resource.", + "readOnly": true, + "type": "string" + }, + "unreachables": { + "description": "Output only. [Output Only] Unreachable resources.\nend_interface: MixerListResponseWithEtagBuilder", + "items": { + "type": "string" + }, + "readOnly": true, + "type": "array" + }, + "warning": { + "description": "[Output Only] Informational warning message.", + "properties": { + "code": { + "description": "[Output Only] A warning code, if applicable. For example, Compute\nEngine returns NO_RESULTS_ON_PAGE if there\nare 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", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", + "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "PARTIAL_SUCCESS", + "QUOTA_INFO_UNAVAILABLE", + "REQUIRED_TOS_AGREEMENT", + "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", + "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", + "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", + "UNREACHABLE" + ], + "enumDeprecated": [ + false, + false, + false, + false, + false, + false, + true, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false + ], + "enumDescriptions": [ + "Warning about failed cleanup of transient changes made by a failed\noperation.", + "A link to a deprecated resource was created.", + "When deploying and at least one of the resources has a type marked as\ndeprecated", + "The user created a boot disk that is larger than image size.", + "When deploying and at least one of the resources has a type marked as\nexperimental", + "Warning that is present in an external api call", + "Warning that value of a field has been overridden.\nDeprecated unused field.", + "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is\nnot of type HTTP/HTTPS/HTTP2.", + "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed\nwhich captures the amount of resources filtered out by\nuser-defined list filter.", + "A resource depends on a missing type", + "The route's nextHopIp address is not assigned to an instance on the\nnetwork.", + "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an\nipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not exist.", + "The route's nextHopInstance URL refers to an instance that is not on the\nsame network as the route.", + "The route's next hop instance does not have a status of RUNNING.", + "Error which is not critical. We decided to continue the process despite\nthe mentioned error.", + "No results are present on a particular list page.", + "Success is reported, but some results may be missing due to errors", + "Quota information is not available to client requests (e.g:\nregions.list).", + "The user attempted to use a resource that requires a TOS they have not\naccepted.", + "Warning that a resource is in use.", + "One or more of the resources set to auto-delete could not be deleted\nbecause they were in use.", + "When a resource schema validation is ignored.", + "Instance template used in instance group manager is valid as such, but\nits application does not make a lot of sense, because it allows only\nsingle instance in instance group.", + "When undeclared properties in the schema are present", + "A given scope cannot be reached." + ], + "type": "string" + }, + "data": { + "description": "[Output Only] Metadata about this warning in key:\nvalue format. For example:\n\n\"data\": [\n {\n \"key\": \"scope\",\n \"value\": \"zones/us-east1-d\"\n }", + "items": { + "properties": { + "key": { + "description": "[Output Only] A key that provides more detail on the warning being\nreturned. For example, for warnings where there are no results in a list\nrequest for a particular zone, this key might be scope and\nthe key value might be the zone name. Other examples might be a key\nindicating a deprecated resource and a suggested replacement, or a\nwarning about invalid network settings (for example, if an instance\nattempts 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" + }, + "AutoscalerList": { + "description": "Contains a list of Autoscaler resources.", + "id": "AutoscalerList", + "properties": { + "id": { + "description": "[Output Only] Unique identifier for the resource; defined by the server.", + "type": "string" + }, + "items": { + "description": "A list of Autoscaler resources.", + "items": { + "$ref": "Autoscaler" + }, + "type": "array" + }, + "kind": { + "default": "compute#autoscalerList", + "description": "Output only. [Output Only] Type of resource. Always compute#autoscalerList\nfor lists of autoscalers.", + "readOnly": true, + "type": "string" + }, + "nextPageToken": { + "description": "[Output Only] This token allows you to get the next page of results for\nlist requests. If the number of results is larger thanmaxResults, use the nextPageToken as a value for\nthe query parameter pageToken in the next list request.\nSubsequent list requests will have their own nextPageToken to\ncontinue paging through the results.", + "type": "string" + }, + "selfLink": { + "description": "Output only. [Output Only] Server-defined URL for this resource.", + "readOnly": true, + "type": "string" + }, + "warning": { + "description": "[Output Only] Informational warning message.", + "properties": { + "code": { + "description": "[Output Only] A warning code, if applicable. For example, Compute\nEngine returns NO_RESULTS_ON_PAGE if there\nare 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", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", + "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "PARTIAL_SUCCESS", + "QUOTA_INFO_UNAVAILABLE", + "REQUIRED_TOS_AGREEMENT", + "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", + "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", + "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", + "UNREACHABLE" + ], + "enumDeprecated": [ + false, + false, + false, + false, + false, + false, + true, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false + ], + "enumDescriptions": [ + "Warning about failed cleanup of transient changes made by a failed\noperation.", + "A link to a deprecated resource was created.", + "When deploying and at least one of the resources has a type marked as\ndeprecated", + "The user created a boot disk that is larger than image size.", + "When deploying and at least one of the resources has a type marked as\nexperimental", + "Warning that is present in an external api call", + "Warning that value of a field has been overridden.\nDeprecated unused field.", + "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is\nnot of type HTTP/HTTPS/HTTP2.", + "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed\nwhich captures the amount of resources filtered out by\nuser-defined list filter.", + "A resource depends on a missing type", + "The route's nextHopIp address is not assigned to an instance on the\nnetwork.", + "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an\nipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not exist.", + "The route's nextHopInstance URL refers to an instance that is not on the\nsame network as the route.", + "The route's next hop instance does not have a status of RUNNING.", + "Error which is not critical. We decided to continue the process despite\nthe mentioned error.", + "No results are present on a particular list page.", + "Success is reported, but some results may be missing due to errors", + "Quota information is not available to client requests (e.g:\nregions.list).", + "The user attempted to use a resource that requires a TOS they have not\naccepted.", + "Warning that a resource is in use.", + "One or more of the resources set to auto-delete could not be deleted\nbecause they were in use.", + "When a resource schema validation is ignored.", + "Instance template used in instance group manager is valid as such, but\nits application does not make a lot of sense, because it allows only\nsingle instance in instance group.", + "When undeclared properties in the schema are present", + "A given scope cannot be reached." + ], + "type": "string" + }, + "data": { + "description": "[Output Only] Metadata about this warning in key:\nvalue format. For example:\n\n\"data\": [\n {\n \"key\": \"scope\",\n \"value\": \"zones/us-east1-d\"\n }", + "items": { + "properties": { + "key": { + "description": "[Output Only] A key that provides more detail on the warning being\nreturned. For example, for warnings where there are no results in a list\nrequest for a particular zone, this key might be scope and\nthe key value might be the zone name. Other examples might be a key\nindicating a deprecated resource and a suggested replacement, or a\nwarning about invalid network settings (for example, if an instance\nattempts 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" + }, + "AutoscalerStatusDetails": { + "id": "AutoscalerStatusDetails", + "properties": { + "message": { + "description": "The status message.", + "type": "string" + }, + "type": { + "description": "The type of error, warning, or notice returned. Current set of possible\nvalues:\n \n - ALL_INSTANCES_UNHEALTHY (WARNING):\n All instances in the instance group are unhealthy (not in RUNNING\n state).\n - BACKEND_SERVICE_DOES_NOT_EXIST (ERROR):\n There is no backend service attached to the instance group.\n - CAPPED_AT_MAX_NUM_REPLICAS (WARNING):\n Autoscaler recommends a size greater than maxNumReplicas.\n - CUSTOM_METRIC_DATA_POINTS_TOO_SPARSE (WARNING):\n The custom metric samples are not exported often enough to be\n a credible base for autoscaling.\n - CUSTOM_METRIC_INVALID (ERROR):\n The custom metric that was specified does not exist or does not have\n the necessary labels.\n - MIN_EQUALS_MAX (WARNING):\n The minNumReplicas is equal to maxNumReplicas. This means the\n autoscaler cannot add or remove instances from the instance group.\n - MISSING_CUSTOM_METRIC_DATA_POINTS (WARNING):\n The autoscaler did not receive any data from the custom metric\n configured for autoscaling.\n - MISSING_LOAD_BALANCING_DATA_POINTS (WARNING):\n The autoscaler is configured to scale based on a load balancing signal\n but the instance group has not received any requests from the load\n balancer.\n - MODE_OFF (WARNING):\n Autoscaling is turned off. The number of instances in the group won't\n change automatically. The autoscaling configuration is preserved.\n - MODE_ONLY_UP (WARNING):\n Autoscaling is in the \"Autoscale only out\" mode. The autoscaler can add\n instances but not remove any.\n - MORE_THAN_ONE_BACKEND_SERVICE (ERROR):\n The instance group cannot be autoscaled because it has more than one\n backend service attached to it.\n - NOT_ENOUGH_QUOTA_AVAILABLE (ERROR):\n There is insufficient quota for the necessary resources, such as CPU or\n number of instances.\n - REGION_RESOURCE_STOCKOUT (ERROR):\n Shown only for regional autoscalers: there is a resource stockout in\n the chosen region.\n - SCALING_TARGET_DOES_NOT_EXIST (ERROR):\n The target to be scaled does not exist.\n - UNSUPPORTED_MAX_RATE_LOAD_BALANCING_CONFIGURATION\n (ERROR): Autoscaling does not work with an HTTP/S load balancer that\n has been configured for maxRate.\n - ZONE_RESOURCE_STOCKOUT (ERROR):\n For zonal autoscalers: there is a resource stockout in the chosen zone.\n For regional autoscalers: in at least one of the zones you're using\n there is a resource stockout.\n\n\nNew values might be added in the future. Some of the values might not be\navailable in all API versions.", + "enum": [ + "ALL_INSTANCES_UNHEALTHY", + "BACKEND_SERVICE_DOES_NOT_EXIST", + "CAPPED_AT_MAX_NUM_REPLICAS", + "CUSTOM_METRIC_DATA_POINTS_TOO_SPARSE", + "CUSTOM_METRIC_INVALID", + "MIN_EQUALS_MAX", + "MISSING_CUSTOM_METRIC_DATA_POINTS", + "MISSING_LOAD_BALANCING_DATA_POINTS", + "MODE_OFF", + "MODE_ONLY_SCALE_OUT", + "MODE_ONLY_UP", + "MORE_THAN_ONE_BACKEND_SERVICE", + "NOT_ENOUGH_QUOTA_AVAILABLE", + "REGION_RESOURCE_STOCKOUT", + "SCALING_TARGET_DOES_NOT_EXIST", + "SCHEDULED_INSTANCES_GREATER_THAN_AUTOSCALER_MAX", + "SCHEDULED_INSTANCES_LESS_THAN_AUTOSCALER_MIN", + "UNKNOWN", + "UNSUPPORTED_MAX_RATE_LOAD_BALANCING_CONFIGURATION", + "ZONE_RESOURCE_STOCKOUT" + ], + "enumDescriptions": [ + "All instances in the instance group are unhealthy (not in RUNNING state).", + "There is no backend service attached to the instance group.", + "Autoscaler recommends a size greater than maxNumReplicas.", + "The custom metric samples are not exported often enough to be a credible\nbase for autoscaling.", + "The custom metric that was specified does not exist or does not have the\nnecessary labels.", + "The minNumReplicas is equal to maxNumReplicas. This means the autoscaler\ncannot add or remove instances from the instance group.", + "The autoscaler did not receive any data from the custom metric configured\nfor autoscaling.", + "The autoscaler is configured to scale based on a load balancing signal\nbut the instance group has not received any requests from the load\nbalancer.", + "Autoscaling is turned off. The number of instances in the group won't\nchange automatically. The autoscaling configuration is preserved.", + "Autoscaling is in the \"Autoscale only scale out\" mode.\nInstances in the group will be only added.", + "Autoscaling is in the \"Autoscale only out\" mode. Instances in the group\nwill be only added.", + "The instance group cannot be autoscaled because it has more than one\nbackend service attached to it.", + "There is insufficient quota for the necessary resources, such as CPU or\nnumber of instances.", + "Showed only for regional autoscalers: there is a resource stockout in\nthe chosen region.", + "The target to be scaled does not exist.", + "For some scaling schedules minRequiredReplicas is greater than\nmaxNumReplicas. Autoscaler always recommends at most maxNumReplicas\ninstances.", + "For some scaling schedules minRequiredReplicas is less than\nminNumReplicas. Autoscaler always recommends at least minNumReplicas\ninstances.", + "", + "Autoscaling does not work with an HTTP/S load balancer that has been\nconfigured for maxRate.", + "For zonal autoscalers: there is a resource stockout in the chosen zone.\nFor regional autoscalers: in at least one of the zones you're using there\nis a resource stockout." + ], + "type": "string" + } + }, + "type": "object" + }, + "AutoscalersScopedList": { + "id": "AutoscalersScopedList", + "properties": { + "autoscalers": { + "description": "[Output Only] A list of autoscalers contained in this scope.", + "items": { + "$ref": "Autoscaler" + }, + "type": "array" + }, + "warning": { + "description": "[Output Only] Informational warning which replaces the list of autoscalers\nwhen the list is empty.", + "properties": { + "code": { + "description": "[Output Only] A warning code, if applicable. For example, Compute\nEngine returns NO_RESULTS_ON_PAGE if there\nare 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", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", + "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "PARTIAL_SUCCESS", + "QUOTA_INFO_UNAVAILABLE", + "REQUIRED_TOS_AGREEMENT", + "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", + "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", + "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", + "UNREACHABLE" + ], + "enumDeprecated": [ + false, + false, + false, + false, + false, + false, + true, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false + ], + "enumDescriptions": [ + "Warning about failed cleanup of transient changes made by a failed\noperation.", + "A link to a deprecated resource was created.", + "When deploying and at least one of the resources has a type marked as\ndeprecated", + "The user created a boot disk that is larger than image size.", + "When deploying and at least one of the resources has a type marked as\nexperimental", + "Warning that is present in an external api call", + "Warning that value of a field has been overridden.\nDeprecated unused field.", + "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is\nnot of type HTTP/HTTPS/HTTP2.", + "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed\nwhich captures the amount of resources filtered out by\nuser-defined list filter.", + "A resource depends on a missing type", + "The route's nextHopIp address is not assigned to an instance on the\nnetwork.", + "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an\nipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not exist.", + "The route's nextHopInstance URL refers to an instance that is not on the\nsame network as the route.", + "The route's next hop instance does not have a status of RUNNING.", + "Error which is not critical. We decided to continue the process despite\nthe mentioned error.", + "No results are present on a particular list page.", + "Success is reported, but some results may be missing due to errors", + "Quota information is not available to client requests (e.g:\nregions.list).", + "The user attempted to use a resource that requires a TOS they have not\naccepted.", + "Warning that a resource is in use.", + "One or more of the resources set to auto-delete could not be deleted\nbecause they were in use.", + "When a resource schema validation is ignored.", + "Instance template used in instance group manager is valid as such, but\nits application does not make a lot of sense, because it allows only\nsingle instance in instance group.", + "When undeclared properties in the schema are present", + "A given scope cannot be reached." + ], + "type": "string" + }, + "data": { + "description": "[Output Only] Metadata about this warning in key:\nvalue format. For example:\n\n\"data\": [\n {\n \"key\": \"scope\",\n \"value\": \"zones/us-east1-d\"\n }", + "items": { + "properties": { + "key": { + "description": "[Output Only] A key that provides more detail on the warning being\nreturned. For example, for warnings where there are no results in a list\nrequest for a particular zone, this key might be scope and\nthe key value might be the zone name. Other examples might be a key\nindicating a deprecated resource and a suggested replacement, or a\nwarning about invalid network settings (for example, if an instance\nattempts 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" + }, + "AutoscalingPolicy": { + "description": "Cloud Autoscaler policy.", + "id": "AutoscalingPolicy", + "properties": { + "coolDownPeriodSec": { + "description": "The number of seconds that your application takes to initialize on a VM\ninstance. This is referred to as the\n[initialization period](/compute/docs/autoscaler#cool_down_period).\nSpecifying an accurate initialization period improves\nautoscaler decisions. For example, when scaling out, the autoscaler ignores\ndata from VMs that are still initializing because those VMs might not yet\nrepresent normal usage of your application. The default initialization\nperiod is 60 seconds.\n\nInitialization periods might vary because of numerous\nfactors. We recommend that you test how long your application takes to\ninitialize. To do this, create a VM and time your application's startup\nprocess.", + "format": "int32", + "type": "integer" + }, + "cpuUtilization": { + "$ref": "AutoscalingPolicyCpuUtilization", + "description": "Defines the CPU utilization policy that allows the autoscaler to scale\nbased on the average CPU utilization of a managed instance group." + }, + "customMetricUtilizations": { + "description": "Configuration parameters of autoscaling based on a custom metric.", + "items": { + "$ref": "AutoscalingPolicyCustomMetricUtilization" + }, + "type": "array" + }, + "loadBalancingUtilization": { + "$ref": "AutoscalingPolicyLoadBalancingUtilization", + "description": "Configuration parameters of autoscaling based on load balancer." + }, + "maxNumReplicas": { + "description": "The maximum number of instances that the autoscaler can scale out to. This\nis required when creating or updating an autoscaler. The maximum number\nof replicas must not be lower than minimal number of replicas.", + "format": "int32", + "type": "integer" + }, + "minNumReplicas": { + "description": "The minimum number of replicas that the autoscaler can scale in to.\nThis cannot be less than 0. If not provided, autoscaler chooses a\ndefault value depending on maximum number of instances allowed.", + "format": "int32", + "type": "integer" + }, + "mode": { + "description": "Defines the operating mode for this policy.\nThe following modes are available:\n \n - OFF: Disables the autoscaler but maintains its\n configuration.\n - ONLY_SCALE_OUT: Restricts the autoscaler to add\n VM instances only.\n - ON: Enables all autoscaler activities according to its\n policy.\n\n\nFor more information, see \n\"Turning off or restricting an autoscaler\"", + "enum": [ + "OFF", + "ON", + "ONLY_SCALE_OUT", + "ONLY_UP" + ], + "enumDescriptions": [ + "Do not automatically scale the MIG in or out.\nThe recommended_size field contains the size of MIG that would be set if\nthe actuation mode was enabled.", + "Automatically scale the MIG in and out according to the policy.", + "Automatically create VMs according to the policy, but do not scale\nthe MIG in.", + "Automatically create VMs according to the policy, but do not scale\nthe MIG in.\nIt's recommended to use ONLY_SCALE_OUT instead of ONLY_UP." + ], + "type": "string" + }, + "scaleInControl": { + "$ref": "AutoscalingPolicyScaleInControl" + }, + "scalingSchedules": { + "additionalProperties": { + "$ref": "AutoscalingPolicyScalingSchedule" + }, + "description": "Scaling schedules defined for an autoscaler. Multiple schedules\ncan be set on an autoscaler, and they can overlap. During overlapping\nperiods the greatest min_required_replicas of all scaling schedules is\napplied. Up to 128 scaling schedules are allowed.", + "type": "object" + }, + "stabilizationPeriodSec": { + "description": "The number of seconds that autoscaler waits for load stabilization before\nmaking scale-in decisions. This is referred to as the\n[stabilization period](/compute/docs/autoscaler#stabilization_period).\nThis might appear as a delay in scaling in but it is an important mechanism\nfor your application to not have fluctuating size due to short term load\nfluctuations.\n\nThe default stabilization period is 600 seconds.", + "format": "int32", + "type": "integer" + } + }, + "type": "object" + }, + "AutoscalingPolicyCpuUtilization": { + "description": "CPU utilization policy.", + "id": "AutoscalingPolicyCpuUtilization", + "properties": { + "predictiveMethod": { + "description": "Indicates whether predictive autoscaling based on CPU metric is enabled.\nValid values are:\n\n* NONE (default). No predictive method is used. The autoscaler scales the\ngroup to meet current demand based on real-time metrics.\n* OPTIMIZE_AVAILABILITY. Predictive autoscaling improves availability by\nmonitoring daily and weekly load patterns and scaling out ahead of\nanticipated demand.", + "enum": [ + "NONE", + "OPTIMIZE_AVAILABILITY" + ], + "enumDescriptions": [ + "No predictive method is used. The autoscaler scales the group to meet\ncurrent demand based on real-time metrics", + "Predictive autoscaling improves availability by monitoring daily and\nweekly load patterns and scaling out ahead of anticipated demand." + ], + "type": "string" + }, + "utilizationTarget": { + "description": "The target CPU utilization that the autoscaler maintains. Must be\na float value in the range (0, 1]. If not specified, the default is0.6.\n\nIf the CPU level is below the target utilization, the autoscaler scales\nin the number of instances until it reaches the minimum number of\ninstances you specified or until the average CPU of your instances\nreaches the target utilization.\n\nIf the average CPU is above the target utilization, the autoscaler\nscales out until it reaches the maximum number of instances you\nspecified or until the average utilization reaches the target\nutilization.", + "format": "double", + "type": "number" + } + }, + "type": "object" + }, + "AutoscalingPolicyCustomMetricUtilization": { + "description": "Custom utilization metric policy.", + "id": "AutoscalingPolicyCustomMetricUtilization", + "properties": { + "filter": { + "description": "A filter string, compatible with a Stackdriver Monitoringfilter string forTimeSeries.list API call. This filter is\nused to select a specific TimeSeries for the purpose of autoscaling and\nto determine whether the metric is exporting per-instance or\nper-group data.\n\nFor the filter to be valid for autoscaling purposes, the following rules\napply:\n \n \n - You can only use the AND operator for joining\n selectors.\n - You can only use direct equality comparison operator\n (=) without any functions for each selector.\n - You can specify the metric in both the filter string and in the\n metric field. However, if specified in both places, the metric must\n be identical.\n - The monitored resource type\n determines what kind of values are expected for the metric. If it is\n a gce_instance, the autoscaler expects the metric to\n include a separate TimeSeries for each instance in a group. In such a\n case, you cannot filter on resource labels.\n \n \n If the resource type is any other value, the autoscaler expects\n this metric to contain values that apply to the entire autoscaled\n instance group and resource label filtering can be performed to\n point autoscaler at the correct TimeSeries to scale upon. This is\n called a *per-group metric* for the purpose of autoscaling.\n \n If not specified, the type defaults to\n gce_instance.\n\n\n\nTry to provide a filter that is selective enough to pick just one\nTimeSeries for the autoscaled group or for each of the instances (if you\nare using gce_instance resource type). If multiple\nTimeSeries are returned upon the query execution, the autoscaler will sum\ntheir respective values to obtain its scaling value.", + "type": "string" + }, + "metric": { + "description": "The identifier (type) of the Stackdriver Monitoring metric. The metric\ncannot have negative values.\n\nThe metric must have a value type of INT64 orDOUBLE.", + "type": "string" + }, + "singleInstanceAssignment": { + "description": "If scaling is based on a per-group metric value that represents the\ntotal amount of work to be done or resource usage, set this value to an\namount assigned for a single instance of the scaled group. Autoscaler\nkeeps the number of instances proportional to the value of this\nmetric. The metric itself does not change value due to group\nresizing.\n\nA good metric to use with the target is for examplepubsub.googleapis.com/subscription/num_undelivered_messages\nor a custom metric exporting the total number of requests coming to\nyour instances.\n\nA bad example would be a metric exporting an average or median latency,\nsince this value can't include a chunk assignable to a single instance,\nit could be better used with utilization_target instead.", + "format": "double", + "type": "number" + }, + "utilizationTarget": { + "description": "The target value of the metric that autoscaler maintains. This\nmust be a positive value. A utilization metric scales number of\nvirtual machines handling requests to increase or decrease\nproportionally to the metric.\n\nFor example, a good metric to use as a utilization_target ishttps://www.googleapis.com/compute/v1/instance/network/received_bytes_count.\nThe autoscaler works to keep this value constant for each of the\ninstances.", + "format": "double", + "type": "number" + }, + "utilizationTargetType": { + "description": "Defines how target utilization value is expressed for a Stackdriver\nMonitoring metric. Either GAUGE,DELTA_PER_SECOND, or DELTA_PER_MINUTE.", + "enum": [ + "DELTA_PER_MINUTE", + "DELTA_PER_SECOND", + "GAUGE" + ], + "enumDescriptions": [ + "Sets the utilization target value for a cumulative or delta metric,\nexpressed as the rate of growth per minute.", + "Sets the utilization target value for a cumulative or delta metric,\nexpressed as the rate of growth per second.", + "Sets the utilization target value for a gauge metric. The autoscaler\nwill collect the average utilization of the virtual machines from the\nlast couple of minutes, and compare the value to the utilization\ntarget value to perform autoscaling." + ], + "type": "string" + } + }, + "type": "object" + }, + "AutoscalingPolicyLoadBalancingUtilization": { + "description": "Configuration parameters of autoscaling based on load balancing.", + "id": "AutoscalingPolicyLoadBalancingUtilization", + "properties": { + "utilizationTarget": { + "description": "Fraction of backend capacity utilization (set in HTTP(S) load balancing\nconfiguration) that the autoscaler maintains. Must be a positive float\nvalue. If not defined, the default is 0.8.", + "format": "double", + "type": "number" + } + }, + "type": "object" + }, + "AutoscalingPolicyScaleInControl": { + "description": "Configuration that allows for slower scale in so that even if Autoscaler\nrecommends an abrupt scale in of a MIG, it will be throttled as specified\nby the parameters below.", + "id": "AutoscalingPolicyScaleInControl", + "properties": { + "maxScaledInReplicas": { + "$ref": "FixedOrPercent", + "description": "Maximum allowed number (or %) of VMs that can be deducted from the peak\nrecommendation during the window autoscaler looks at when computing\nrecommendations. Possibly all these VMs can be deleted at once so user\nservice needs to be prepared to lose that many VMs in one step." + }, + "timeWindowSec": { + "description": "How far back autoscaling looks when computing recommendations to\ninclude directives regarding slower scale in, as described above.", + "format": "int32", + "type": "integer" + } + }, + "type": "object" + }, + "AutoscalingPolicyScalingSchedule": { + "description": "Scaling based on user-defined schedule. The message describes a single\nscaling schedule. A scaling schedule changes the minimum number of VM\ninstances an autoscaler can recommend, which can trigger scaling out.", + "id": "AutoscalingPolicyScalingSchedule", + "properties": { + "description": { + "description": "A description of a scaling schedule.", + "type": "string" + }, + "disabled": { + "description": "A boolean value that specifies whether a scaling schedule can influence\nautoscaler recommendations. If set to true, then a scaling schedule has\nno effect. This field is optional, and its value is false by default.", + "type": "boolean" + }, + "durationSec": { + "description": "The duration of time intervals, in seconds, for which this\nscaling schedule is to run. The minimum allowed value is 300.\nThis field is required.", + "format": "int32", + "type": "integer" + }, + "minRequiredReplicas": { + "description": "The minimum number of VM instances that the autoscaler will\nrecommend in time intervals starting according to schedule. This field is\nrequired.", + "format": "int32", + "type": "integer" + }, + "schedule": { + "description": "The start timestamps of time intervals when this scaling\nschedule is to provide a scaling signal. This field uses the extended\ncron format (with an optional year field). The expression can describe a\nsingle timestamp if the optional year is set, in which case the scaling\nschedule runs once. The schedule is interpreted with respect to\ntime_zone. This field is required. Note: These timestamps only describe\nwhen autoscaler starts providing the scaling signal. The VMs\nneed additional time to become serving.", + "type": "string" + }, + "timeZone": { + "description": "The time zone to use when interpreting the schedule.\nThe value of this field must be a time zone name from the tz database:\nhttps://en.wikipedia.org/wiki/Tz_database. This field is assigned a\ndefault value of \"UTC\" if left empty.", + "type": "string" + } + }, + "type": "object" + }, + "Backend": { + "description": "Message containing information of one individual backend.", + "id": "Backend", + "properties": { + "balancingMode": { + "description": "Specifies how to determine whether the backend of a load balancer can\nhandle additional traffic or is fully loaded. For usage guidelines, see\nConnection balancing mode.\n\nBackends must use compatible balancing modes. For more information, see\nSupported balancing modes and target capacity settings and\nRestrictions and guidance for instance groups.\n\nNote: Currently, if you use the API to configure incompatible balancing\nmodes, the configuration might be accepted even though it has no impact\nand is ignored. Specifically, Backend.maxUtilization is ignored when\nBackend.balancingMode is RATE. In the future, this incompatible combination\nwill be rejected.", + "enum": [ + "CONNECTION", + "CUSTOM_METRICS", + "IN_FLIGHT", + "RATE", + "UTILIZATION" + ], + "enumDescriptions": [ + "Balance based on the number of simultaneous connections.", + "Based on custom defined and reported metrics.", + "Balance based on the number of in-flight requests.", + "Balance based on requests per second (RPS).", + "Balance based on the backend utilization." + ], + "type": "string" + }, + "capacityScaler": { + "description": "A multiplier applied to the backend's target capacity of its balancing\nmode.\nThe default value is 1, which means the group serves up to\n100% of its configured capacity (depending onbalancingMode). A setting of 0 means the group is\ncompletely drained, offering 0% of its available capacity. The valid ranges\nare 0.0 and [0.1,1.0].\nYou cannot configure a setting larger than 0 and smaller than0.1.\nYou cannot configure a setting of 0 when there is only one\nbackend attached to the backend service.\n\nNot available with backends that don't support using abalancingMode. This includes backends such as global\ninternet NEGs, regional serverless NEGs, and PSC NEGs.", + "format": "float", + "type": "number" + }, + "customMetrics": { + "description": "List of custom metrics that are used for CUSTOM_METRICS\nBalancingMode.", + "items": { + "$ref": "BackendCustomMetric" + }, + "type": "array" + }, + "description": { + "description": "An optional description of this resource. Provide this property when you\ncreate the resource.", + "type": "string" + }, + "failover": { + "description": "This field designates whether this is a failover backend. More than one\nfailover backend can be configured for a given BackendService.", + "type": "boolean" + }, + "group": { + "description": "The fully-qualified URL of aninstance\ngroup or network endpoint\ngroup (NEG) resource. To determine what types of backends a load\nbalancer supports, see the [Backend services\noverview](https://cloud.google.com/load-balancing/docs/backend-service#backends).\n\nYou must use the *fully-qualified* URL (starting withhttps://www.googleapis.com/) to specify the instance group\nor NEG. Partial URLs are not supported.\n\nIf haPolicy is specified, backends must refer to NEG resources of type\nGCE_VM_IP.", + "type": "string" + }, + "maxConnections": { + "description": "Defines a target maximum number of simultaneous connections. For usage\nguidelines, seeConnection\nbalancing mode and Utilization\nbalancing mode. Not available if the backend'sbalancingMode is RATE.", + "format": "int32", + "type": "integer" + }, + "maxConnectionsPerEndpoint": { + "description": "Defines a target maximum number of simultaneous connections. For usage\nguidelines, seeConnection\nbalancing mode and Utilization\nbalancing mode.\n\nNot available if the backend's balancingMode isRATE.", + "format": "int32", + "type": "integer" + }, + "maxConnectionsPerInstance": { + "description": "Defines a target maximum number of simultaneous connections.\nFor usage guidelines, seeConnection\nbalancing mode and Utilization\nbalancing mode.\n\nNot available if the backend's balancingMode isRATE.", + "format": "int32", + "type": "integer" + }, + "maxInFlightRequests": { + "description": "Defines a maximum number of in-flight requests for the whole NEG or\ninstance group. Not available if backend's balancingMode isRATE or CONNECTION.", + "format": "int32", + "type": "integer" + }, + "maxInFlightRequestsPerEndpoint": { + "description": "Defines a maximum number of in-flight requests for a single endpoint.\nNot available if backend's balancingMode is RATE\nor CONNECTION.", + "format": "int32", + "type": "integer" + }, + "maxInFlightRequestsPerInstance": { + "description": "Defines a maximum number of in-flight requests for a single VM.\nNot available if backend's balancingMode is RATE\nor CONNECTION.", + "format": "int32", + "type": "integer" + }, + "maxRate": { + "description": "Defines a maximum number of HTTP requests per second (RPS). For\nusage guidelines, seeRate\nbalancing mode and Utilization\nbalancing mode.\n\nNot available if the backend's balancingMode isCONNECTION.", + "format": "int32", + "type": "integer" + }, + "maxRatePerEndpoint": { + "description": "Defines a maximum target for requests per second (RPS). For usage\nguidelines, seeRate\nbalancing mode and Utilization\nbalancing mode.\n\nNot available if the backend's balancingMode isCONNECTION.", + "format": "float", + "type": "number" + }, + "maxRatePerInstance": { + "description": "Defines a maximum target for requests per second (RPS). For usage\nguidelines, seeRate\nbalancing mode and Utilization\nbalancing mode.\n\nNot available if the backend's balancingMode isCONNECTION.", + "format": "float", + "type": "number" + }, + "maxUtilization": { + "description": "Optional parameter to define a target capacity for theUTILIZATION balancing mode. The valid range is[0.0, 1.0].\n\nFor usage guidelines, seeUtilization\nbalancing mode.", + "format": "float", + "type": "number" + }, + "orchestrationInfo": { + "$ref": "BackendBackendOrchestrationInfo", + "description": "Information about the resource or system that manages the backend." + }, + "preference": { + "description": "This field indicates whether this backend should be fully utilized before\nsending traffic to backends with default preference. The possible values\nare:\n \n - PREFERRED: Backends with this preference level will be\n filled up to their capacity limits first, based on RTT.\n - DEFAULT: If preferred backends don't have enough\n capacity, backends in this layer would be used and traffic would be\n assigned based on the load balancing algorithm you use. This is the\n default", + "enum": [ + "DEFAULT", + "PREFERENCE_UNSPECIFIED", + "PREFERRED" + ], + "enumDescriptions": [ + "No preference.", + "If preference is unspecified, we set it to the DEFAULT value", + "Traffic will be sent to this backend first." + ], + "type": "string" + }, + "trafficDuration": { + "enum": [ + "LONG", + "SHORT", + "TRAFFIC_DURATION_UNSPECIFIED" + ], + "enumDescriptions": [ + "Most of the requests are expected to take more than multiple seconds to\nfinish.", + "Most requests are expected to finish with a sub-second latency.", + "Traffic duration is unspecified." + ], + "type": "string" + } + }, + "type": "object" + }, + "BackendBackendOrchestrationInfo": { + "description": "A message containing information about the resource or system that manages\nthe backend.", + "id": "BackendBackendOrchestrationInfo", + "properties": { + "resourceUri": { + "description": "The URI of the resource or system that manages the backend.", + "type": "string" + } + }, + "type": "object" + }, + "BackendBucket": { + "description": "Represents a Cloud Storage Bucket resource.\n\nThis Cloud Storage bucket resource is referenced by a URL map of a load\nbalancer. For more information, readBackend Buckets.", + "id": "BackendBucket", + "properties": { + "bucketName": { + "description": "Cloud Storage bucket name.", + "type": "string" + }, + "cdnPolicy": { + "$ref": "BackendBucketCdnPolicy", + "description": "Cloud CDN configuration for this BackendBucket." + }, + "compressionMode": { + "description": "Compress text responses using Brotli or gzip compression, based on\nthe client's Accept-Encoding header.", + "enum": [ + "AUTOMATIC", + "DISABLED" + ], + "enumDescriptions": [ + "Automatically uses the best compression based on the Accept-Encoding\nheader sent by the client.", + "Disables compression. Existing compressed responses cached by\nCloud CDN will not be served to clients." + ], + "type": "string" + }, + "creationTimestamp": { + "description": "[Output Only] Creation timestamp inRFC3339\ntext format.", + "type": "string" + }, + "customResponseHeaders": { + "description": "Headers that the Application Load Balancer should add to proxied responses.", + "items": { + "type": "string" + }, + "type": "array" + }, + "description": { + "description": "An optional textual description of the resource; provided by the client\nwhen the resource is created.", + "type": "string" + }, + "edgeSecurityPolicy": { + "description": "[Output Only] The resource URL for the edge security policy associated with\nthis backend bucket.", + "type": "string" + }, + "enableCdn": { + "description": "If true, enable Cloud CDN for this BackendBucket.", + "type": "boolean" + }, + "id": { + "description": "[Output Only] Unique identifier for the resource; defined by the server.", + "format": "uint64", + "type": "string" + }, + "kind": { + "default": "compute#backendBucket", + "description": "Output only. Type of the resource.", + "readOnly": true, + "type": "string" + }, + "loadBalancingScheme": { + "description": "The value can only be INTERNAL_MANAGED for cross-region internal layer 7\nload balancer.\n\nIf loadBalancingScheme is not specified, the backend bucket can be used by\nclassic global external load balancers, or global application external load\nbalancers, or both.", + "enum": [ + "EXTERNAL_MANAGED", + "INTERNAL_MANAGED" + ], + "enumDescriptions": [ + "Signifies that this will be used for regional external Application Load\nBalancers.", + "Signifies that this will be used for internal Application Load Balancers." + ], + "type": "string" + }, + "name": { + "description": "Name of the resource. Provided by the client when the resource is created.\nThe name must be 1-63 characters long, and comply withRFC1035.\nSpecifically, the name must be 1-63 characters long and match the regular\nexpression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first\ncharacter must be a lowercase letter, and all following characters must\nbe a dash, lowercase letter, or digit, except the last character, which\ncannot be a dash.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "type": "string" + }, + "params": { + "$ref": "BackendBucketParams", + "description": "Input only. [Input Only] Additional params passed with the request, but not persisted\nas part of resource payload." + }, + "region": { + "description": "Output only. [Output Only] URL of the region where the regional backend bucket\nresides. This field is not applicable to global backend buckets.\nYou must specify this field as part of the HTTP request URL. It is\nnot settable as a field in the request body.", + "readOnly": true, + "type": "string" + }, + "selfLink": { + "description": "[Output Only] Server-defined URL for the resource.", + "type": "string" + }, + "usedBy": { + "description": "Output only. [Output Only] List of resources referencing that backend bucket.", + "items": { + "$ref": "BackendBucketUsedBy" + }, + "readOnly": true, + "type": "array" + } + }, + "type": "object" + }, + "BackendBucketAggregatedList": { + "id": "BackendBucketAggregatedList", + "properties": { + "id": { + "description": "[Output Only] Unique identifier for the resource; defined by the server.", + "type": "string" + }, + "items": { + "additionalProperties": { + "$ref": "BackendBucketsScopedList", + "description": "Name of the scope containing this set of BackendBuckets." + }, + "description": "A list of BackendBucketsScopedList resources.", + "type": "object" + }, + "kind": { + "default": "compute#backendBucketAggregatedList", + "description": "Output only. Type of resource.", + "readOnly": true, + "type": "string" + }, + "nextPageToken": { + "description": "[Output Only] This token allows you to get the next page of results for\nlist requests. If the number of results is larger thanmaxResults, use the nextPageToken as a value for\nthe query parameter pageToken in the next list request.\nSubsequent list requests will have their own nextPageToken to\ncontinue paging through the results.", + "type": "string" + }, + "selfLink": { + "description": "Output only. [Output Only] Server-defined URL for this resource.", + "readOnly": true, + "type": "string" + }, + "warning": { + "description": "[Output Only] Informational warning message.", + "properties": { + "code": { + "description": "[Output Only] A warning code, if applicable. For example, Compute\nEngine returns NO_RESULTS_ON_PAGE if there\nare 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", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", + "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "PARTIAL_SUCCESS", + "QUOTA_INFO_UNAVAILABLE", + "REQUIRED_TOS_AGREEMENT", + "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", + "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", + "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", + "UNREACHABLE" + ], + "enumDeprecated": [ + false, + false, + false, + false, + false, + false, + true, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false + ], + "enumDescriptions": [ + "Warning about failed cleanup of transient changes made by a failed\noperation.", + "A link to a deprecated resource was created.", + "When deploying and at least one of the resources has a type marked as\ndeprecated", + "The user created a boot disk that is larger than image size.", + "When deploying and at least one of the resources has a type marked as\nexperimental", + "Warning that is present in an external api call", + "Warning that value of a field has been overridden.\nDeprecated unused field.", + "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is\nnot of type HTTP/HTTPS/HTTP2.", + "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed\nwhich captures the amount of resources filtered out by\nuser-defined list filter.", + "A resource depends on a missing type", + "The route's nextHopIp address is not assigned to an instance on the\nnetwork.", + "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an\nipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not exist.", + "The route's nextHopInstance URL refers to an instance that is not on the\nsame network as the route.", + "The route's next hop instance does not have a status of RUNNING.", + "Error which is not critical. We decided to continue the process despite\nthe mentioned error.", + "No results are present on a particular list page.", + "Success is reported, but some results may be missing due to errors", + "Quota information is not available to client requests (e.g:\nregions.list).", + "The user attempted to use a resource that requires a TOS they have not\naccepted.", + "Warning that a resource is in use.", + "One or more of the resources set to auto-delete could not be deleted\nbecause they were in use.", + "When a resource schema validation is ignored.", + "Instance template used in instance group manager is valid as such, but\nits application does not make a lot of sense, because it allows only\nsingle instance in instance group.", + "When undeclared properties in the schema are present", + "A given scope cannot be reached." + ], + "type": "string" + }, + "data": { + "description": "[Output Only] Metadata about this warning in key:\nvalue format. For example:\n\n\"data\": [\n {\n \"key\": \"scope\",\n \"value\": \"zones/us-east1-d\"\n }", + "items": { + "properties": { + "key": { + "description": "[Output Only] A key that provides more detail on the warning being\nreturned. For example, for warnings where there are no results in a list\nrequest for a particular zone, this key might be scope and\nthe key value might be the zone name. Other examples might be a key\nindicating a deprecated resource and a suggested replacement, or a\nwarning about invalid network settings (for example, if an instance\nattempts 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" + }, + "BackendBucketCdnPolicy": { + "description": "Message containing Cloud CDN configuration for a backend bucket.", + "id": "BackendBucketCdnPolicy", + "properties": { + "bypassCacheOnRequestHeaders": { + "description": "Bypass the cache when the specified request headers are matched - e.g.\nPragma or Authorization headers. Up to 5 headers can be specified.\nThe cache is bypassed for all cdnPolicy.cacheMode settings.", + "items": { + "$ref": "BackendBucketCdnPolicyBypassCacheOnRequestHeader" + }, + "type": "array" + }, + "cacheKeyPolicy": { + "$ref": "BackendBucketCdnPolicyCacheKeyPolicy", + "description": "The CacheKeyPolicy for this CdnPolicy." + }, + "cacheMode": { + "description": "Specifies the cache setting for all responses from this backend.\nThe possible values are:USE_ORIGIN_HEADERS Requires the origin to set valid caching\nheaders to cache content. Responses without these headers will not be\ncached at Google's edge, and will require a full trip to the origin on\nevery request, potentially impacting performance and increasing load on\nthe origin server.FORCE_CACHE_ALL Cache all content, ignoring any \"private\",\n\"no-store\" or \"no-cache\" directives in Cache-Control response headers.\nWarning: this may result in Cloud CDN caching private,\nper-user (user identifiable) content.CACHE_ALL_STATIC Automatically cache static content,\nincluding common image formats, media (video and audio), and web assets\n(JavaScript and CSS). Requests and responses that are marked as\nuncacheable, as well as dynamic content (including HTML), will not be\ncached.\n\nIf no value is provided for cdnPolicy.cacheMode, it defaults\nto CACHE_ALL_STATIC.", + "enum": [ + "CACHE_ALL_STATIC", + "FORCE_CACHE_ALL", + "INVALID_CACHE_MODE", + "USE_ORIGIN_HEADERS" + ], + "enumDescriptions": [ + "Automatically cache static content, including common image formats,\nmedia (video and audio), and web assets (JavaScript and CSS).\nRequests and responses that are marked as uncacheable, as well as\ndynamic content (including HTML), will not be cached.", + "Cache all content, ignoring any \"private\", \"no-store\" or \"no-cache\"\ndirectives in Cache-Control response headers.\nWarning: this may result in Cloud CDN caching private,\nper-user (user identifiable) content.", + "", + "Requires the origin to set valid caching headers to cache content.\nResponses without these headers will not be cached at Google's edge,\nand will require a full trip to the origin on every request,\npotentially impacting performance and increasing load on the\norigin server." + ], + "type": "string" + }, + "clientTtl": { + "description": "Specifies a separate client (e.g. browser client) maximum TTL. This is\nused to clamp the max-age (or Expires) value sent to the client. With\nFORCE_CACHE_ALL, the lesser of client_ttl and default_ttl is used for the\nresponse max-age directive, along with a \"public\" directive. For\ncacheable content in CACHE_ALL_STATIC mode, client_ttl clamps the max-age\nfrom the origin (if specified), or else sets the response max-age\ndirective to the lesser of the client_ttl and default_ttl, and also\nensures a \"public\" cache-control directive is present.\nIf a client TTL is not specified, a default value (1 hour) will be used.\nThe maximum allowed value is 31,622,400s (1 year).", + "format": "int32", + "type": "integer" + }, + "defaultTtl": { + "description": "Specifies the default TTL for cached content served by this origin for\nresponses that do not have an existing valid TTL (max-age or s-maxage).\nSetting a TTL of \"0\" means \"always revalidate\".\nThe value of defaultTTL cannot be set to a value greater than that of\nmaxTTL, but can be equal.\nWhen the cacheMode is set to FORCE_CACHE_ALL, the defaultTTL\nwill overwrite the TTL set in all responses. The maximum allowed value is\n31,622,400s (1 year), noting that infrequently accessed objects may be\nevicted from the cache before the defined TTL.", + "format": "int32", + "type": "integer" + }, + "maxTtl": { + "description": "Specifies the maximum allowed TTL for cached content served by this\norigin.\nCache directives that attempt to set a max-age or s-maxage higher than\nthis, or an Expires header more than maxTTL seconds in the future will\nbe capped at the value of maxTTL, as if it were the value of an\ns-maxage Cache-Control directive.\nHeaders sent to the client will not be modified.\nSetting a TTL of \"0\" means \"always revalidate\".\nThe maximum allowed value is 31,622,400s (1 year), noting that\ninfrequently accessed objects may be evicted from the cache before\nthe defined TTL.", + "format": "int32", + "type": "integer" + }, + "negativeCaching": { + "description": "Negative caching allows per-status code TTLs to be set, in order\nto apply fine-grained caching for common errors or redirects.\nThis can reduce the load on your origin and improve end-user\nexperience by reducing response latency.\nWhen the cache mode is set to CACHE_ALL_STATIC or USE_ORIGIN_HEADERS,\nnegative caching applies to responses with the specified response code\nthat lack any Cache-Control, Expires, or Pragma: no-cache directives.\nWhen the cache mode is set to FORCE_CACHE_ALL, negative caching applies\nto all responses with the specified response code, and override any\ncaching headers.\nBy default, Cloud CDN will apply the following default TTLs to these\nstatus codes:\nHTTP 300 (Multiple Choice), 301, 308 (Permanent Redirects): 10m\nHTTP 404 (Not Found), 410 (Gone),\n451 (Unavailable For Legal Reasons): 120s\nHTTP 405 (Method Not Found), 501 (Not Implemented): 60s.\nThese defaults can be overridden in negative_caching_policy.", + "type": "boolean" + }, + "negativeCachingPolicy": { + "description": "Sets a cache TTL for the specified HTTP status code.\nnegative_caching must be enabled to configure negative_caching_policy.\nOmitting the policy and leaving negative_caching enabled will use\nCloud CDN's default cache TTLs.\nNote that when specifying an explicit negative_caching_policy, you\nshould take care to specify a cache TTL for all response codes\nthat you wish to cache. Cloud CDN will not apply any default\nnegative caching when a policy exists.", + "items": { + "$ref": "BackendBucketCdnPolicyNegativeCachingPolicy" + }, + "type": "array" + }, + "requestCoalescing": { + "description": "If true then Cloud CDN will combine multiple concurrent cache fill\nrequests into a small number of requests to the origin.", + "type": "boolean" + }, + "serveWhileStale": { + "description": "Serve existing content from the cache (if available) when revalidating\ncontent with the origin, or when an error is encountered when refreshing\nthe cache.\nThis setting defines the default \"max-stale\" duration for any cached\nresponses that do not specify a max-stale directive. Stale responses that\nexceed the TTL configured here will not be served. The default limit\n(max-stale) is 86400s (1 day), which will allow stale content to be\nserved up to this limit beyond the max-age (or s-maxage) of a cached\nresponse.\nThe maximum allowed value is 604800 (1 week).\nSet this to zero (0) to disable serve-while-stale.", + "format": "int32", + "type": "integer" + }, + "signedUrlCacheMaxAgeSec": { + "description": "Maximum number of seconds the response to a signed URL request will be\nconsidered fresh. After this time period, the response will be\nrevalidated before being served. Defaults to 1hr (3600s). When serving\nresponses to signed URL requests, Cloud CDN will internally behave as\nthough all responses from this backend had a \"Cache-Control:\npublic, max-age=[TTL]\" header, regardless of any existing\nCache-Control header. The actual headers served in responses will not be\naltered.", + "format": "int64", + "type": "string" + }, + "signedUrlKeyNames": { + "description": "[Output Only] Names of the keys for signing request URLs.", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "BackendBucketCdnPolicyBypassCacheOnRequestHeader": { + "description": "Bypass the cache when the specified request headers are present,\ne.g. Pragma or Authorization headers. Values are case insensitive.\nThe presence of such a header overrides the cache_mode setting.", + "id": "BackendBucketCdnPolicyBypassCacheOnRequestHeader", + "properties": { + "headerName": { + "description": "The header field name to match on when bypassing cache.\nValues are case-insensitive.", + "type": "string" + } + }, + "type": "object" + }, + "BackendBucketCdnPolicyCacheKeyPolicy": { + "description": "Message containing what to include in the cache key for a request for\nCloud CDN.", + "id": "BackendBucketCdnPolicyCacheKeyPolicy", + "properties": { + "includeHttpHeaders": { + "description": "Allows HTTP request headers (by name) to be used in the cache key.", + "items": { + "type": "string" + }, + "type": "array" + }, + "queryStringWhitelist": { + "description": "Names of query string parameters to include in cache keys. Default\nparameters are always included. '\u0026' and '=' will be percent encoded\nand not treated as delimiters.", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "BackendBucketCdnPolicyNegativeCachingPolicy": { + "description": "Specify CDN TTLs for response error codes.", + "id": "BackendBucketCdnPolicyNegativeCachingPolicy", + "properties": { + "code": { + "description": "The HTTP status code to define a TTL against. Only HTTP status codes\n300, 301, 302, 307, 308, 404, 405, 410, 421, 451 and 501 can be\nspecified as values, and you cannot specify a status code more than\nonce.", + "format": "int32", + "type": "integer" + }, + "ttl": { + "description": "The TTL (in seconds) for which to cache responses with the\ncorresponding status code.\nThe maximum allowed value is 1800s (30 minutes), noting that\ninfrequently accessed objects may be evicted from the cache before the\ndefined TTL.", + "format": "int32", + "type": "integer" + } + }, + "type": "object" + }, + "BackendBucketList": { + "description": "Contains a list of BackendBucket resources.", + "id": "BackendBucketList", + "properties": { + "id": { + "description": "[Output Only] Unique identifier for the resource; defined by the server.", + "type": "string" + }, + "items": { + "description": "A list of BackendBucket resources.", + "items": { + "$ref": "BackendBucket" + }, + "type": "array" + }, + "kind": { + "default": "compute#backendBucketList", + "description": "Output only. Type of resource.", + "readOnly": true, + "type": "string" + }, + "nextPageToken": { + "description": "[Output Only] This token allows you to get the next page of results for\nlist requests. If the number of results is larger thanmaxResults, use the nextPageToken as a value for\nthe query parameter pageToken in the next list request.\nSubsequent list requests will have their own nextPageToken to\ncontinue paging through the results.", + "type": "string" + }, + "selfLink": { + "description": "Output only. [Output Only] Server-defined URL for this resource.", + "readOnly": true, + "type": "string" + }, + "warning": { + "description": "[Output Only] Informational warning message.", + "properties": { + "code": { + "description": "[Output Only] A warning code, if applicable. For example, Compute\nEngine returns NO_RESULTS_ON_PAGE if there\nare 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", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", + "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "PARTIAL_SUCCESS", + "QUOTA_INFO_UNAVAILABLE", + "REQUIRED_TOS_AGREEMENT", + "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", + "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", + "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", + "UNREACHABLE" + ], + "enumDeprecated": [ + false, + false, + false, + false, + false, + false, + true, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false + ], + "enumDescriptions": [ + "Warning about failed cleanup of transient changes made by a failed\noperation.", + "A link to a deprecated resource was created.", + "When deploying and at least one of the resources has a type marked as\ndeprecated", + "The user created a boot disk that is larger than image size.", + "When deploying and at least one of the resources has a type marked as\nexperimental", + "Warning that is present in an external api call", + "Warning that value of a field has been overridden.\nDeprecated unused field.", + "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is\nnot of type HTTP/HTTPS/HTTP2.", + "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed\nwhich captures the amount of resources filtered out by\nuser-defined list filter.", + "A resource depends on a missing type", + "The route's nextHopIp address is not assigned to an instance on the\nnetwork.", + "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an\nipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not exist.", + "The route's nextHopInstance URL refers to an instance that is not on the\nsame network as the route.", + "The route's next hop instance does not have a status of RUNNING.", + "Error which is not critical. We decided to continue the process despite\nthe mentioned error.", + "No results are present on a particular list page.", + "Success is reported, but some results may be missing due to errors", + "Quota information is not available to client requests (e.g:\nregions.list).", + "The user attempted to use a resource that requires a TOS they have not\naccepted.", + "Warning that a resource is in use.", + "One or more of the resources set to auto-delete could not be deleted\nbecause they were in use.", + "When a resource schema validation is ignored.", + "Instance template used in instance group manager is valid as such, but\nits application does not make a lot of sense, because it allows only\nsingle instance in instance group.", + "When undeclared properties in the schema are present", + "A given scope cannot be reached." + ], + "type": "string" + }, + "data": { + "description": "[Output Only] Metadata about this warning in key:\nvalue format. For example:\n\n\"data\": [\n {\n \"key\": \"scope\",\n \"value\": \"zones/us-east1-d\"\n }", + "items": { + "properties": { + "key": { + "description": "[Output Only] A key that provides more detail on the warning being\nreturned. For example, for warnings where there are no results in a list\nrequest for a particular zone, this key might be scope and\nthe key value might be the zone name. Other examples might be a key\nindicating a deprecated resource and a suggested replacement, or a\nwarning about invalid network settings (for example, if an instance\nattempts 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" + }, + "BackendBucketListUsable": { + "id": "BackendBucketListUsable", + "properties": { + "id": { + "description": "[Output Only] Unique identifier for the resource; defined by the server.", + "type": "string" + }, + "items": { + "description": "A list of BackendBucket resources.", + "items": { + "$ref": "BackendBucket" + }, + "type": "array" + }, + "kind": { + "default": "compute#usableBackendBucketList", + "description": "Output only. [Output Only] Type of resource. Alwayscompute#usableBackendBucketList for lists of usable backend\nbuckets.", + "readOnly": true, + "type": "string" + }, + "nextPageToken": { + "description": "[Output Only] This token allows you to get the next page of results for\nlist requests. If the number of results is larger thanmaxResults, use the nextPageToken as a value for\nthe query parameter pageToken in the next list request.\nSubsequent list requests will have their own nextPageToken to\ncontinue paging through the results.", + "type": "string" + }, + "selfLink": { + "description": "Output only. [Output Only] Server-defined URL for this resource.", + "readOnly": true, + "type": "string" + }, + "warning": { + "description": "[Output Only] Informational warning message.", + "properties": { + "code": { + "description": "[Output Only] A warning code, if applicable. For example, Compute\nEngine returns NO_RESULTS_ON_PAGE if there\nare 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", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", + "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "PARTIAL_SUCCESS", + "QUOTA_INFO_UNAVAILABLE", + "REQUIRED_TOS_AGREEMENT", + "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", + "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", + "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", + "UNREACHABLE" + ], + "enumDeprecated": [ + false, + false, + false, + false, + false, + false, + true, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false + ], + "enumDescriptions": [ + "Warning about failed cleanup of transient changes made by a failed\noperation.", + "A link to a deprecated resource was created.", + "When deploying and at least one of the resources has a type marked as\ndeprecated", + "The user created a boot disk that is larger than image size.", + "When deploying and at least one of the resources has a type marked as\nexperimental", + "Warning that is present in an external api call", + "Warning that value of a field has been overridden.\nDeprecated unused field.", + "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is\nnot of type HTTP/HTTPS/HTTP2.", + "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed\nwhich captures the amount of resources filtered out by\nuser-defined list filter.", + "A resource depends on a missing type", + "The route's nextHopIp address is not assigned to an instance on the\nnetwork.", + "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an\nipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not exist.", + "The route's nextHopInstance URL refers to an instance that is not on the\nsame network as the route.", + "The route's next hop instance does not have a status of RUNNING.", + "Error which is not critical. We decided to continue the process despite\nthe mentioned error.", + "No results are present on a particular list page.", + "Success is reported, but some results may be missing due to errors", + "Quota information is not available to client requests (e.g:\nregions.list).", + "The user attempted to use a resource that requires a TOS they have not\naccepted.", + "Warning that a resource is in use.", + "One or more of the resources set to auto-delete could not be deleted\nbecause they were in use.", + "When a resource schema validation is ignored.", + "Instance template used in instance group manager is valid as such, but\nits application does not make a lot of sense, because it allows only\nsingle instance in instance group.", + "When undeclared properties in the schema are present", + "A given scope cannot be reached." + ], + "type": "string" + }, + "data": { + "description": "[Output Only] Metadata about this warning in key:\nvalue format. For example:\n\n\"data\": [\n {\n \"key\": \"scope\",\n \"value\": \"zones/us-east1-d\"\n }", + "items": { + "properties": { + "key": { + "description": "[Output Only] A key that provides more detail on the warning being\nreturned. For example, for warnings where there are no results in a list\nrequest for a particular zone, this key might be scope and\nthe key value might be the zone name. Other examples might be a key\nindicating a deprecated resource and a suggested replacement, or a\nwarning about invalid network settings (for example, if an instance\nattempts 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" + }, + "BackendBucketParams": { + "description": "Additional Backend Bucket parameters.", + "id": "BackendBucketParams", + "properties": { + "resourceManagerTags": { + "additionalProperties": { + "type": "string" + }, + "description": "Tag keys/values directly bound to this resource.\nTag keys and values have the same definition as resource\nmanager tags. The field is allowed for INSERT\nonly. The keys/values to set on the resource should be specified in\neither ID { : } or Namespaced format\n{ : }.\nFor example the following are valid inputs:\n* {\"tagKeys/333\" : \"tagValues/444\", \"tagKeys/123\" : \"tagValues/456\"}\n* {\"123/environment\" : \"production\", \"345/abc\" : \"xyz\"}\nNote:\n* Invalid combinations of ID \u0026 namespaced format is not supported. For\n instance: {\"123/environment\" : \"tagValues/444\"} is invalid.", + "type": "object" + } + }, + "type": "object" + }, + "BackendBucketUsedBy": { + "id": "BackendBucketUsedBy", + "properties": { + "reference": { + "description": "Output only. [Output Only] Server-defined URL for UrlMaps referencing that\nBackendBucket.", + "readOnly": true, + "type": "string" + } + }, + "type": "object" + }, + "BackendBucketsScopedList": { + "id": "BackendBucketsScopedList", + "properties": { + "backendBuckets": { + "description": "A list of BackendBuckets contained in this scope.", + "items": { + "$ref": "BackendBucket" + }, + "type": "array" + }, + "warning": { + "description": "Informational warning which replaces the list of\nbackend services when the list is empty.", + "properties": { + "code": { + "description": "[Output Only] A warning code, if applicable. For example, Compute\nEngine returns NO_RESULTS_ON_PAGE if there\nare 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", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", + "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "PARTIAL_SUCCESS", + "QUOTA_INFO_UNAVAILABLE", + "REQUIRED_TOS_AGREEMENT", + "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", + "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", + "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", + "UNREACHABLE" + ], + "enumDeprecated": [ + false, + false, + false, + false, + false, + false, + true, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false + ], + "enumDescriptions": [ + "Warning about failed cleanup of transient changes made by a failed\noperation.", + "A link to a deprecated resource was created.", + "When deploying and at least one of the resources has a type marked as\ndeprecated", + "The user created a boot disk that is larger than image size.", + "When deploying and at least one of the resources has a type marked as\nexperimental", + "Warning that is present in an external api call", + "Warning that value of a field has been overridden.\nDeprecated unused field.", + "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is\nnot of type HTTP/HTTPS/HTTP2.", + "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed\nwhich captures the amount of resources filtered out by\nuser-defined list filter.", + "A resource depends on a missing type", + "The route's nextHopIp address is not assigned to an instance on the\nnetwork.", + "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an\nipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not exist.", + "The route's nextHopInstance URL refers to an instance that is not on the\nsame network as the route.", + "The route's next hop instance does not have a status of RUNNING.", + "Error which is not critical. We decided to continue the process despite\nthe mentioned error.", + "No results are present on a particular list page.", + "Success is reported, but some results may be missing due to errors", + "Quota information is not available to client requests (e.g:\nregions.list).", + "The user attempted to use a resource that requires a TOS they have not\naccepted.", + "Warning that a resource is in use.", + "One or more of the resources set to auto-delete could not be deleted\nbecause they were in use.", + "When a resource schema validation is ignored.", + "Instance template used in instance group manager is valid as such, but\nits application does not make a lot of sense, because it allows only\nsingle instance in instance group.", + "When undeclared properties in the schema are present", + "A given scope cannot be reached." + ], + "type": "string" + }, + "data": { + "description": "[Output Only] Metadata about this warning in key:\nvalue format. For example:\n\n\"data\": [\n {\n \"key\": \"scope\",\n \"value\": \"zones/us-east1-d\"\n }", + "items": { + "properties": { + "key": { + "description": "[Output Only] A key that provides more detail on the warning being\nreturned. For example, for warnings where there are no results in a list\nrequest for a particular zone, this key might be scope and\nthe key value might be the zone name. Other examples might be a key\nindicating a deprecated resource and a suggested replacement, or a\nwarning about invalid network settings (for example, if an instance\nattempts 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" + }, + "BackendCustomMetric": { + "description": "Custom Metrics are used for CUSTOM_METRICS balancing_mode.", + "id": "BackendCustomMetric", + "properties": { + "dryRun": { + "description": "If true, the metric data is collected and reported to Cloud\nMonitoring, but is not used for load balancing.", + "type": "boolean" + }, + "maxUtilization": { + "description": "Optional parameter to define a target utilization for the Custom Metrics\nbalancing mode. The valid range is [0.0, 1.0].", + "format": "float", + "type": "number" + }, + "name": { + "description": "Name of a custom utilization signal. The name must be 1-64 characters\nlong and match the regular expression\n`[a-z]([-_.a-z0-9]*[a-z0-9])?` which means that the\nfirst character must be a lowercase letter, and all following\ncharacters must be a dash, period, underscore, lowercase letter, or\ndigit, except the last character, which cannot be a dash, period, or\nunderscore. For usage guidelines, see Custom Metrics balancing mode. This\nfield can only be used for a global or regional backend service with the\nloadBalancingScheme set to EXTERNAL_MANAGED,INTERNAL_MANAGED INTERNAL_SELF_MANAGED.", + "type": "string" + } + }, + "type": "object" + }, + "BackendService": { + "description": "Represents a Backend Service resource.\n\nA backend service defines how Google Cloud load balancers distribute traffic.\nThe backend service configuration contains a set of values, such as the\nprotocol used to connect to backends, various distribution and session\nsettings, health checks, and timeouts. These settings provide fine-grained\ncontrol over how your load balancer behaves. Most of the settings have\ndefault values that allow for easy configuration if you need to get started\nquickly.\n\nBackend services in Google Compute Engine can be either regionally or\nglobally scoped.\n\n* [Global](https://cloud.google.com/compute/docs/reference/rest/v1/backendServices)\n* [Regional](https://cloud.google.com/compute/docs/reference/rest/v1/regionBackendServices)\n\nFor more information, seeBackend\nServices.", + "id": "BackendService", + "properties": { + "affinityCookieTtlSec": { + "description": "Lifetime of cookies in seconds. This setting is applicable to Application\nLoad Balancers and Traffic Director and requires\nGENERATED_COOKIE or HTTP_COOKIE session affinity.\n\nIf set to 0, the cookie is non-persistent and lasts only until\nthe end of the browser session (or equivalent). The maximum allowed value\nis two weeks (1,209,600).\n\nNot supported when the backend service is referenced by a URL map that is\nbound to target gRPC proxy that has validateForProxyless field set to true.", + "format": "int32", + "type": "integer" + }, + "backends": { + "description": "The list of backends that serve this BackendService.", + "items": { + "$ref": "Backend" + }, + "type": "array" + }, + "cdnPolicy": { + "$ref": "BackendServiceCdnPolicy", + "description": "Cloud CDN configuration for this BackendService. Only available for\nspecified load balancer types." + }, + "circuitBreakers": { + "$ref": "CircuitBreakers" + }, + "compressionMode": { + "description": "Compress text responses using Brotli or gzip compression, based on\nthe client's Accept-Encoding header.", + "enum": [ + "AUTOMATIC", + "DISABLED" + ], + "enumDescriptions": [ + "Automatically uses the best compression based on the Accept-Encoding\nheader sent by the client.", + "Disables compression. Existing compressed responses cached by\nCloud CDN will not be served to clients." + ], + "type": "string" + }, + "connectionDraining": { + "$ref": "ConnectionDraining", + "description": "connectionDraining cannot be specified with haPolicy." + }, + "connectionTrackingPolicy": { + "$ref": "BackendServiceConnectionTrackingPolicy", + "description": "Connection Tracking configuration for this BackendService. Connection\ntracking policy settings are only available for external passthrough\nNetwork Load Balancers and internal passthrough Network Load Balancers.\n\nconnectionTrackingPolicy cannot be specified with haPolicy." + }, + "consistentHash": { + "$ref": "ConsistentHashLoadBalancerSettings", + "description": "Consistent Hash-based load balancing can be used to provide soft session\naffinity based on HTTP headers, cookies or other properties. This load\nbalancing policy is applicable only for HTTP connections. The affinity to a\nparticular destination host will be lost when one or more hosts are\nadded/removed from the destination service. This field specifies parameters\nthat control consistent hashing. This field is only applicable whenlocalityLbPolicy is set to MAGLEV orRING_HASH.\n\nThis field is applicable to either:\n \n - A regional backend service with the service protocol set to HTTP,\n HTTPS, HTTP2 or H2C, and load_balancing_scheme set to\n INTERNAL_MANAGED. \n - A global backend service with the\n load_balancing_scheme set to INTERNAL_SELF_MANAGED." + }, + "creationTimestamp": { + "description": "Output only. [Output Only] Creation timestamp inRFC3339\ntext format.", + "readOnly": true, + "type": "string" + }, + "customMetrics": { + "description": "List of custom metrics that are used for theWEIGHTED_ROUND_ROBIN locality_lb_policy.", + "items": { + "$ref": "BackendServiceCustomMetric" + }, + "type": "array" + }, + "customRequestHeaders": { + "description": "Headers that the load balancer adds to proxied requests. See [Creating\ncustom\nheaders](https://cloud.google.com/load-balancing/docs/custom-headers).", + "items": { + "type": "string" + }, + "type": "array" + }, + "customResponseHeaders": { + "description": "Headers that the load balancer adds to proxied responses. See [Creating\ncustom\nheaders](https://cloud.google.com/load-balancing/docs/custom-headers).", + "items": { + "type": "string" + }, + "type": "array" + }, + "description": { + "description": "An optional description of this resource. Provide this property when you\ncreate the resource.", + "type": "string" + }, + "edgeSecurityPolicy": { + "description": "[Output Only] The resource URL for the edge security policy associated with\nthis backend service.", + "type": "string" + }, + "enableCDN": { + "description": "If true, enables Cloud CDN for the backend service of a\nglobal external Application Load Balancer.", + "type": "boolean" + }, + "externalManagedMigrationState": { + "description": "Specifies the canary migration state. Possible values are PREPARE,\nTEST_BY_PERCENTAGE, and TEST_ALL_TRAFFIC.\n\nTo begin the migration from EXTERNAL to EXTERNAL_MANAGED, the state must be\nchanged to PREPARE. The state must be changed to TEST_ALL_TRAFFIC before\nthe loadBalancingScheme can be changed to EXTERNAL_MANAGED. Optionally, the\nTEST_BY_PERCENTAGE state can be used to migrate traffic by percentage using\nexternalManagedMigrationTestingPercentage.\n\nRolling back a migration requires the states to be set in reverse order. So\nchanging the scheme from EXTERNAL_MANAGED to EXTERNAL requires the state to\nbe set to TEST_ALL_TRAFFIC at the same time. Optionally, the\nTEST_BY_PERCENTAGE state can be used to migrate some traffic back to\nEXTERNAL or PREPARE can be used to migrate all traffic back to EXTERNAL.", + "enum": [ + "PREPARE", + "TEST_ALL_TRAFFIC", + "TEST_BY_PERCENTAGE" + ], + "enumDescriptions": [ + "", + "", + "" + ], + "type": "string" + }, + "externalManagedMigrationTestingPercentage": { + "description": "Determines the fraction of requests that should be processed by the Global\nexternal Application Load Balancer.\n\nThe value of this field must be in the range [0, 100].\n\nSession affinity options will slightly affect this routing behavior, for\nmore details, see:Session\nAffinity.\n\nThis value can only be set if the loadBalancingScheme in the BackendService\nis set to EXTERNAL (when using the classic Application Load Balancer) and\nthe migration state is TEST_BY_PERCENTAGE.", + "format": "float", + "type": "number" + }, + "failoverPolicy": { + "$ref": "BackendServiceFailoverPolicy", + "description": "Requires at least one backend instance group to be defined\nas a backup (failover) backend.\nFor load balancers that have configurable failover:\n[Internal passthrough Network Load\nBalancers](https://cloud.google.com/load-balancing/docs/internal/failover-overview)\nand [external passthrough Network Load\nBalancers](https://cloud.google.com/load-balancing/docs/network/networklb-failover-overview).\n\nfailoverPolicy cannot be specified with haPolicy." + }, + "fingerprint": { + "description": "Fingerprint of this resource. A hash of the contents stored in this object.\nThis field is used in optimistic locking. This field will be ignored when\ninserting a BackendService. An up-to-date fingerprint must be provided in\norder to update the BackendService, otherwise the request will\nfail with error 412 conditionNotMet.\n\nTo see the latest fingerprint, make a get() request to\nretrieve a BackendService.", + "format": "byte", + "type": "string" + }, + "haPolicy": { + "$ref": "BackendServiceHAPolicy", + "description": "Configures self-managed High Availability (HA) for External and Internal\nProtocol Forwarding.\n\nThe backends of this regional backend service must only specify zonal\nnetwork endpoint groups (NEGs) of type GCE_VM_IP.\n\nWhen haPolicy is set for an Internal Passthrough Network Load Balancer, the\nregional backend service must set the network field. All zonal NEGs must\nbelong to the same network. However, individual NEGs can\nbelong to different subnetworks of that network.\n\nWhen haPolicy is specified, the set of attached network endpoints across\nall backends comprise an High Availability domain from which one endpoint\nis selected as the active endpoint (the leader) that receives all\ntraffic.\n\nhaPolicy can be added only at backend service creation time. Once set up,\nit cannot be deleted.\n\nNote that haPolicy is not for load balancing, and therefore cannot be\nspecified with sessionAffinity, connectionTrackingPolicy, and\nfailoverPolicy.\n\nhaPolicy requires customers to be responsible for tracking backend\nendpoint health and electing a leader among the healthy endpoints.\nTherefore, haPolicy cannot be specified with healthChecks.\n\nhaPolicy can only be specified for External Passthrough Network Load\nBalancers and Internal Passthrough Network Load Balancers." + }, + "healthChecks": { + "description": "The list of URLs to the healthChecks, httpHealthChecks (legacy), or\nhttpsHealthChecks (legacy) resource for health checking this backend\nservice. Not all backend services support legacy health checks. See\nLoad balancer guide. Currently, at most one health check can be\nspecified for each backend service. Backend services with\ninstance group or zonal NEG backends must have a health check unless\nhaPolicy is specified. Backend services with internet or serverless NEG\nbackends must not have a health check.\n\nhealthChecks[] cannot be specified with haPolicy.", + "items": { + "type": "string" + }, + "type": "array" + }, + "iap": { + "$ref": "BackendServiceIAP", + "description": "The configurations for Identity-Aware Proxy on this resource.\nNot available for internal passthrough Network Load Balancers and external\npassthrough Network Load Balancers." + }, + "id": { + "description": "[Output Only] The unique identifier for the resource. This identifier is\ndefined by the server.", + "format": "uint64", + "type": "string" + }, + "ipAddressSelectionPolicy": { + "description": "Specifies a preference for traffic sent from the proxy to the backend (or\nfrom the client to the backend for proxyless gRPC).\nThe possible values are:\n \n - IPV4_ONLY: Only send IPv4 traffic to the backends of the\n backend service (Instance Group, Managed Instance Group, Network Endpoint\n Group), regardless of traffic from the client to the proxy. Only IPv4\n health checks are used to check the health of the backends. This is the\n default setting.\n - PREFER_IPV6: Prioritize the connection to the endpoint's\n IPv6 address over its IPv4 address (provided there is a healthy IPv6\n address).\n - IPV6_ONLY: Only send IPv6 traffic to the backends of the\n backend service (Instance Group, Managed Instance Group, Network Endpoint\n Group), regardless of traffic from the client to the proxy. Only IPv6\n health checks are used to check the health of the backends.\n\n\n\nThis field is applicable to either:\n \n - Advanced global external Application Load Balancer (load balancing\n scheme EXTERNAL_MANAGED), \n - Regional external Application Load\n Balancer, \n - Internal proxy Network Load Balancer (load balancing\n scheme INTERNAL_MANAGED), \n - Regional internal Application Load\n Balancer (load balancing scheme INTERNAL_MANAGED), \n - Traffic\n Director with Envoy proxies and proxyless gRPC (load balancing scheme\n INTERNAL_SELF_MANAGED).", + "enum": [ + "IPV4_ONLY", + "IPV6_ONLY", + "IP_ADDRESS_SELECTION_POLICY_UNSPECIFIED", + "PREFER_IPV6" + ], + "enumDescriptions": [ + "Only send IPv4 traffic to the backends of the Backend Service\n(Instance Group, Managed Instance Group, Network Endpoint Group)\nregardless of traffic from the client to the proxy.\nOnly IPv4 health-checks are used to check the health of the backends.\nThis is the default setting.", + "Only send IPv6 traffic to the backends of the Backend Service\n(Instance Group, Managed Instance Group, Network Endpoint Group)\nregardless of traffic from the client to the proxy. Only IPv6\nhealth-checks are used to check the health of the backends.", + "Unspecified IP address selection policy.", + "Prioritize the connection to the endpoints IPv6 address\nover its IPv4 address (provided there is a healthy IPv6 address)." + ], + "type": "string" + }, + "kind": { + "default": "compute#backendService", + "description": "Output only. [Output Only] Type of resource. Always compute#backendService\nfor backend services.", + "readOnly": true, + "type": "string" + }, + "loadBalancingScheme": { + "description": "Specifies the load balancer type. A backend service\ncreated for one type of load balancer cannot be used with another.\nFor more information, refer toChoosing\na load balancer.", + "enum": [ + "EXTERNAL", + "EXTERNAL_MANAGED", + "INTERNAL", + "INTERNAL_MANAGED", + "INTERNAL_SELF_MANAGED", + "INVALID_LOAD_BALANCING_SCHEME" + ], + "enumDescriptions": [ + "Signifies that this will be used for classic Application Load Balancers,\nglobal external proxy Network Load Balancers,\nor external passthrough Network Load Balancers.", + "Signifies that this will be used for global external Application Load\nBalancers, regional external Application Load Balancers, or regional\nexternal proxy Network Load Balancers.", + "Signifies that this will be used for internal passthrough Network Load\nBalancers.", + "Signifies that this will be used for internal Application Load Balancers.", + "Signifies that this will be used by Traffic Director.", + "" + ], + "type": "string" + }, + "localityLbPolicies": { + "description": "A list of locality load-balancing policies to be used in order of\npreference. When you use localityLbPolicies, you must set at least one\nvalue for either the localityLbPolicies[].policy or the\nlocalityLbPolicies[].customPolicy field. localityLbPolicies overrides any\nvalue set in the localityLbPolicy field.\n\nFor an example of how to use this field, seeDefine\na list of preferred policies.\n\nCaution: This field and its children are intended for use in a service mesh\nthat includes gRPC clients only. Envoy proxies can't use backend services\nthat have this configuration.", + "items": { + "$ref": "BackendServiceLocalityLoadBalancingPolicyConfig" + }, + "type": "array" + }, + "localityLbPolicy": { + "description": "The load balancing algorithm used within the scope of the locality. The\npossible values are:\n \n - ROUND_ROBIN: This is a simple policy in which each healthy\n backend is selected in round robin order. This is the default.\n - LEAST_REQUEST: An O(1) algorithm which\n selects two random healthy hosts and picks the host which has fewer active\n requests.\n - RING_HASH: The ring/modulo hash load balancer implements\n consistent hashing to backends. The algorithm has the property that the\n addition/removal of a host from a set of N hosts only affects 1/N of the\n requests.\n - RANDOM: The load balancer selects a random healthy\n host.\n - ORIGINAL_DESTINATION: Backend host is selected\n based on the client connection metadata, i.e., connections are opened to\n the same address as the destination address of the incoming connection\n before the connection was redirected to the load balancer.\n - MAGLEV: used as a drop in replacement for the ring hash\n load balancer. Maglev is not as stable as ring hash but has faster table\n lookup build times and host selection times. For more information about\n Maglev, see Maglev:\n A Fast and Reliable Software Network Load Balancer.\n - WEIGHTED_ROUND_ROBIN: Per-endpoint Weighted Round Robin\n Load Balancing using weights computed from Backend reported Custom Metrics.\n If set, the Backend Service responses are expected to contain non-standard\n HTTP response header field Endpoint-Load-Metrics. The reported\n metrics to use for computing the weights are specified via thecustomMetrics field.\n \n This field is applicable to either:\n - A regional backend service with the service protocol set to HTTP,\n HTTPS, HTTP2 or H2C, and load_balancing_scheme set to\n INTERNAL_MANAGED. \n - A global backend service with the\n load_balancing_scheme set to INTERNAL_SELF_MANAGED, INTERNAL_MANAGED, or\n EXTERNAL_MANAGED.\n \n \n If sessionAffinity is not configured—that is, if session\n affinity remains at the default value of NONE—then the\n default value for localityLbPolicy\n is ROUND_ROBIN. If session affinity is set to a value other\n than NONE,\n then the default value for localityLbPolicy isMAGLEV.\n \n Only ROUND_ROBIN and RING_HASH are supported\n when the backend service is referenced by a URL map that is bound to\n target gRPC proxy that has validateForProxyless field set to true.\n \n localityLbPolicy cannot be specified with haPolicy.", + "enum": [ + "INVALID_LB_POLICY", + "LEAST_REQUEST", + "MAGLEV", + "ORIGINAL_DESTINATION", + "RANDOM", + "RING_HASH", + "ROUND_ROBIN", + "WEIGHTED_GCP_RENDEZVOUS", + "WEIGHTED_MAGLEV", + "WEIGHTED_ROUND_ROBIN" + ], + "enumDescriptions": [ + "", + "An O(1) algorithm which selects two random healthy hosts and\npicks the host which has fewer active requests.", + "This algorithm implements consistent hashing to backends. Maglev can be\nused as a drop in replacement for the ring hash load balancer. Maglev is\nnot as stable as ring hash but has faster table lookup build times and\nhost selection times. For more information about Maglev, seeMaglev:\nA Fast and Reliable Software Network Load Balancer.", + "Backend host is selected based on the client connection metadata, i.e.,\nconnections are opened to the same address as the destination address of\nthe incoming connection before the connection was redirected to the load\nbalancer.", + "The load balancer selects a random healthy host.", + "The ring/modulo hash load balancer implements consistent hashing to\nbackends. The algorithm has the property that the addition/removal\nof a host from a set of N hosts only affects 1/N of the requests.", + "This is a simple policy in which each healthy backend is selected\nin round robin order. This is the default.", + "Per-instance weighted Load Balancing via health check reported weights.\nIn internal passthrough network load balancing, it is weighted\nrendezvous hashing.\nThis option is only supported in internal passthrough network load\nbalancing.", + "Per-instance weighted Load Balancing via health check reported weights.\nIf set, the Backend Service must configure a non legacy HTTP-based Health\nCheck, and health check replies are expected to contain non-standard HTTP\nresponse header field X-Load-Balancing-Endpoint-Weight to specify the\nper-instance weights.\nIf set, Load Balancing is weighted based on the\nper-instance weights reported in the last processed health check replies,\nas long as every instance either reported a valid weight or had\nUNAVAILABLE_WEIGHT. Otherwise, Load Balancing remains equal-weight.\nThis option is only supported in Network Load Balancing.", + "Per-endpoint weighted round-robin Load Balancing using weights computed\nfrom Backend reported Custom Metrics. If set, the Backend Service\nresponses are expected to contain non-standard HTTP response header field\nEndpoint-Load-Metrics. The reported metrics\nto use for computing the weights are specified via the\ncustomMetrics fields." + ], + "type": "string" + }, + "logConfig": { + "$ref": "BackendServiceLogConfig", + "description": "This field denotes the logging options for the load balancer traffic served\nby this backend service. If logging is enabled, logs will be exported to\nStackdriver." + }, + "maxStreamDuration": { + "$ref": "Duration", + "description": "Specifies the default maximum duration (timeout) for streams to this\nservice. Duration is computed from the beginning of the stream until the\nresponse has been completely processed, including all retries. A stream\nthat does not complete in this duration is closed.\n\nIf not specified, there will be no timeout limit, i.e. the maximum\nduration is infinite.\n\nThis value can be overridden in the PathMatcher configuration of the\nUrlMap that references this backend service.\n\nThis field is only allowed when the loadBalancingScheme of\nthe backend service is INTERNAL_SELF_MANAGED." + }, + "metadatas": { + "additionalProperties": { + "type": "string" + }, + "description": "Deployment metadata associated with the resource to be set by a GKE hub\ncontroller and read by the backend RCTH", + "type": "object" + }, + "name": { + "description": "Name of the resource. Provided by the client when the resource is created.\nThe name must be 1-63 characters long, and comply withRFC1035.\nSpecifically, the name must be 1-63 characters long and match the regular\nexpression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first\ncharacter must be a lowercase letter, and all following characters must\nbe a dash, lowercase letter, or digit, except the last character, which\ncannot be a dash.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "type": "string" + }, + "network": { + "description": "The URL of the network to which this backend service belongs.\n\nThis field must be set for Internal Passthrough Network Load Balancers when\nthe haPolicy is enabled, and for External Passthrough Network Load\nBalancers when the haPolicy fastIpMove is enabled.\n\nThis field can only be specified when the load balancing scheme is set toINTERNAL, or when the load balancing scheme is set toEXTERNAL and haPolicy fastIpMove is enabled.", + "type": "string" + }, + "networkPassThroughLbTrafficPolicy": { + "$ref": "BackendServiceNetworkPassThroughLbTrafficPolicy", + "description": "Configures traffic steering properties of internal passthrough Network\nLoad Balancers.\n\nnetworkPassThroughLbTrafficPolicy cannot be specified with haPolicy." + }, + "orchestrationInfo": { + "$ref": "BackendServiceOrchestrationInfo", + "description": "Information about the resource or system that manages the backend service." + }, + "outlierDetection": { + "$ref": "OutlierDetection", + "description": "Settings controlling the ejection of unhealthy backend endpoints from the\nload balancing pool of each individual proxy instance that processes the\ntraffic for the given backend service. If not set, this feature is\nconsidered disabled.\n\nResults of the outlier detection algorithm (ejection of endpoints from the\nload balancing pool and returning them back to the pool) are executed\nindependently by each proxy instance of the load balancer. In most cases,\nmore than one proxy instance handles the traffic received by a backend\nservice. Thus, it is possible that an unhealthy endpoint is detected and\nejected by only some of the proxies, and while this happens, other proxies\nmay continue to send requests to the same unhealthy endpoint until they\ndetect and eject the unhealthy endpoint.\n\nApplicable backend endpoints can be:\n \n - VM instances in an Instance Group\n - Endpoints in a Zonal NEG (GCE_VM_IP, GCE_VM_IP_PORT)\n - Endpoints in a Hybrid Connectivity NEG (NON_GCP_PRIVATE_IP_PORT)\n - Serverless NEGs, that resolve to Cloud Run, App Engine, or Cloud\n Functions Services \n - Private Service Connect NEGs, that resolve to\n Google-managed regional API endpoints or managed services published using\n Private Service Connect\n\n\n\nApplicable backend service types can be:\n \n - A global backend service with the loadBalancingScheme set to\n INTERNAL_SELF_MANAGED or EXTERNAL_MANAGED. \n - A regional backend\n service with the service protocol set to HTTP, HTTPS, HTTP2 or H2C, and\n loadBalancingScheme set to INTERNAL_MANAGED or EXTERNAL_MANAGED. Not\n supported for Serverless NEGs.\n\n\n\nNot supported when the backend service is referenced by a URL map that is\nbound to target gRPC proxy that has validateForProxyless field set to true." + }, + "params": { + "$ref": "BackendServiceParams", + "description": "Input only. [Input Only] Additional params passed with the request, but not persisted\nas part of resource payload." + }, + "port": { + "deprecated": true, + "description": "Deprecated in favor of portName. The TCP port to connect on\nthe backend. The default value is 80.\nFor internal passthrough Network Load Balancers and external passthrough\nNetwork Load Balancers, omit port.", + "format": "int32", + "type": "integer" + }, + "portName": { + "description": "A named port on a backend instance group representing the port for\ncommunication to the backend VMs in that group. The\nnamed port must be [defined on each backend instance\ngroup](https://cloud.google.com/load-balancing/docs/backend-service#named_ports).\nThis parameter has no meaning if the backends are NEGs. For internal\npassthrough Network Load Balancers and external passthrough Network Load\nBalancers, omit port_name.", + "type": "string" + }, + "protocol": { + "description": "The protocol this BackendService uses to communicate\nwith backends.\n\nPossible values are HTTP, HTTPS, HTTP2, H2C, TCP, SSL, UDP or GRPC.\ndepending on the chosen load balancer or Traffic Director configuration.\nRefer to the documentation for the load balancers or for Traffic Director\nfor more information.\n\nMust be set to GRPC when the backend service is referenced by a URL map\nthat is bound to target gRPC proxy.", + "enum": [ + "GRPC", + "H2C", + "HTTP", + "HTTP2", + "HTTPS", + "SSL", + "TCP", + "UDP", + "UNSPECIFIED" + ], + "enumDescriptions": [ + "gRPC (available for Traffic Director).", + "HTTP2 over cleartext", + "", + "HTTP/2 with SSL.", + "", + "TCP proxying with SSL.", + "TCP proxying or TCP pass-through.", + "UDP.", + "If a Backend Service has UNSPECIFIED as its protocol, it can be used with\nany L3/L4 Forwarding Rules." + ], + "type": "string" + }, + "region": { + "description": "Output only. [Output Only] URL of the region where the regional backend service\nresides. This field is not applicable to global backend services.\nYou must specify this field as part of the HTTP request URL. It is\nnot settable as a field in the request body.", + "readOnly": true, + "type": "string" + }, + "securityPolicy": { + "description": "[Output Only] The resource URL for the security policy associated with this\nbackend service.", + "type": "string" + }, + "securitySettings": { + "$ref": "SecuritySettings", + "description": "This field specifies the security settings that apply to this backend\nservice. This field is applicable to a global backend service with the\nload_balancing_scheme set to INTERNAL_SELF_MANAGED." + }, + "selfLink": { + "description": "[Output Only] Server-defined URL for the resource.", + "type": "string" + }, + "serviceBindings": { + "description": "URLs of networkservices.ServiceBinding resources.\n\nCan only be set if load balancing scheme is INTERNAL_SELF_MANAGED.\nIf set, lists of backends and health checks must be both empty.", + "items": { + "type": "string" + }, + "type": "array" + }, + "serviceLbPolicy": { + "description": "URL to networkservices.ServiceLbPolicy resource.\n\nCan only be set if load balancing scheme is EXTERNAL_MANAGED,\nINTERNAL_MANAGED or INTERNAL_SELF_MANAGED and the scope is global.", + "type": "string" + }, + "sessionAffinity": { + "description": "Type of session affinity to use. The default is NONE.\n\nOnly NONE and HEADER_FIELD are supported\nwhen the backend service is referenced by a URL map that is bound to\ntarget gRPC proxy that has validateForProxyless field set to true.\n\nFor more details, see:\n[Session\nAffinity](https://cloud.google.com/load-balancing/docs/backend-service#session_affinity).\n\nsessionAffinity cannot be specified with haPolicy.", + "enum": [ + "CLIENT_IP", + "CLIENT_IP_NO_DESTINATION", + "CLIENT_IP_PORT_PROTO", + "CLIENT_IP_PROTO", + "GENERATED_COOKIE", + "HEADER_FIELD", + "HTTP_COOKIE", + "NONE", + "STRONG_COOKIE_AFFINITY" + ], + "enumDescriptions": [ + "2-tuple hash on packet's source and destination IP addresses. Connections\nfrom the same source IP address to the same destination IP address will be\nserved by the same backend VM while that VM remains healthy.", + "1-tuple hash only on packet's source IP address. Connections from the\nsame source IP address will be served by the same backend VM while that VM\nremains healthy. This option can only be used for Internal TCP/UDP\nLoad Balancing.", + "5-tuple hash on packet's source and destination IP addresses, IP protocol,\nand source and destination ports. Connections for the same IP protocol\nfrom the same source IP address and port to the same destination IP address\nand port will be served by the same backend VM while that VM remains\nhealthy. This option cannot be used for HTTP(S) load balancing.", + "3-tuple hash on packet's source and destination IP addresses, and IP\nprotocol. Connections for the same IP protocol from the same source IP\naddress to the same destination IP address will be served by the same\nbackend VM while that VM remains healthy. This option cannot be used for\nHTTP(S) load balancing.", + "Hash based on a cookie generated by the L7 loadbalancer.\nOnly valid for HTTP(S) load balancing.", + "The hash is based on a user specified header field.", + "The hash is based on a user provided cookie.", + "No session affinity. Connections from the same client IP may go\nto any instance in the pool.", + "Strong cookie-based affinity. Connections bearing the same cookie will be\nserved by the same backend VM while that VM remains healthy, as long as the\ncookie has not expired." + ], + "type": "string" + }, + "strongSessionAffinityCookie": { + "$ref": "BackendServiceHttpCookie", + "description": "Describes the HTTP cookie used for stateful session affinity. This field is\napplicable and required if the sessionAffinity is set toSTRONG_COOKIE_AFFINITY." + }, + "subsetting": { + "$ref": "Subsetting", + "description": "subsetting cannot be specified with haPolicy." + }, + "timeoutSec": { + "description": "The backend service timeout has a different meaning depending on the\ntype of load balancer. For more information see,\nBackend service settings.\nThe default is 30 seconds.\nThe full range of timeout values allowed goes from 1\nthrough 2,147,483,647 seconds.\n\nThis value can be overridden in the PathMatcher configuration of the\nUrlMap that references this backend service.\n\nNot supported when the backend service is referenced by a URL map that is\nbound to target gRPC proxy that has validateForProxyless field set to true.\nInstead, use maxStreamDuration.", + "format": "int32", + "type": "integer" + }, + "tlsSettings": { + "$ref": "BackendServiceTlsSettings", + "description": "Configuration for Backend Authenticated TLS and mTLS. May only be specified\nwhen the backend protocol is SSL, HTTPS or HTTP2." + }, + "usedBy": { + "description": "Output only. [Output Only] List of resources referencing given backend service.", + "items": { + "$ref": "BackendServiceUsedBy" + }, + "readOnly": true, + "type": "array" + } + }, + "type": "object" + }, + "BackendServiceAggregatedList": { + "description": "Contains a list of BackendServicesScopedList.", + "id": "BackendServiceAggregatedList", + "properties": { + "id": { + "description": "[Output Only] Unique identifier for the resource; defined by the server.", + "type": "string" + }, + "items": { + "additionalProperties": { + "$ref": "BackendServicesScopedList", + "description": "Name of the scope containing this set of BackendServices." + }, + "description": "A list of BackendServicesScopedList resources.", + "type": "object" + }, + "kind": { + "default": "compute#backendServiceAggregatedList", + "description": "Output only. Type of resource.", + "readOnly": true, + "type": "string" + }, + "nextPageToken": { + "description": "[Output Only] This token allows you to get the next page of results for\nlist requests. If the number of results is larger thanmaxResults, use the nextPageToken as a value for\nthe query parameter pageToken in the next list request.\nSubsequent list requests will have their own nextPageToken to\ncontinue paging through the results.", + "type": "string" + }, + "selfLink": { + "description": "Output only. [Output Only] Server-defined URL for this resource.", + "readOnly": true, + "type": "string" + }, + "unreachables": { + "description": "Output only. [Output Only] Unreachable resources.", + "items": { + "type": "string" + }, + "readOnly": true, + "type": "array" + }, + "warning": { + "description": "[Output Only] Informational warning message.", + "properties": { + "code": { + "description": "[Output Only] A warning code, if applicable. For example, Compute\nEngine returns NO_RESULTS_ON_PAGE if there\nare 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", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", + "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "PARTIAL_SUCCESS", + "QUOTA_INFO_UNAVAILABLE", + "REQUIRED_TOS_AGREEMENT", + "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", + "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", + "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", + "UNREACHABLE" + ], + "enumDeprecated": [ + false, + false, + false, + false, + false, + false, + true, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false + ], + "enumDescriptions": [ + "Warning about failed cleanup of transient changes made by a failed\noperation.", + "A link to a deprecated resource was created.", + "When deploying and at least one of the resources has a type marked as\ndeprecated", + "The user created a boot disk that is larger than image size.", + "When deploying and at least one of the resources has a type marked as\nexperimental", + "Warning that is present in an external api call", + "Warning that value of a field has been overridden.\nDeprecated unused field.", + "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is\nnot of type HTTP/HTTPS/HTTP2.", + "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed\nwhich captures the amount of resources filtered out by\nuser-defined list filter.", + "A resource depends on a missing type", + "The route's nextHopIp address is not assigned to an instance on the\nnetwork.", + "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an\nipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not exist.", + "The route's nextHopInstance URL refers to an instance that is not on the\nsame network as the route.", + "The route's next hop instance does not have a status of RUNNING.", + "Error which is not critical. We decided to continue the process despite\nthe mentioned error.", + "No results are present on a particular list page.", + "Success is reported, but some results may be missing due to errors", + "Quota information is not available to client requests (e.g:\nregions.list).", + "The user attempted to use a resource that requires a TOS they have not\naccepted.", + "Warning that a resource is in use.", + "One or more of the resources set to auto-delete could not be deleted\nbecause they were in use.", + "When a resource schema validation is ignored.", + "Instance template used in instance group manager is valid as such, but\nits application does not make a lot of sense, because it allows only\nsingle instance in instance group.", + "When undeclared properties in the schema are present", + "A given scope cannot be reached." + ], + "type": "string" + }, + "data": { + "description": "[Output Only] Metadata about this warning in key:\nvalue format. For example:\n\n\"data\": [\n {\n \"key\": \"scope\",\n \"value\": \"zones/us-east1-d\"\n }", + "items": { + "properties": { + "key": { + "description": "[Output Only] A key that provides more detail on the warning being\nreturned. For example, for warnings where there are no results in a list\nrequest for a particular zone, this key might be scope and\nthe key value might be the zone name. Other examples might be a key\nindicating a deprecated resource and a suggested replacement, or a\nwarning about invalid network settings (for example, if an instance\nattempts 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" + }, + "BackendServiceCdnPolicy": { + "description": "Message containing Cloud CDN configuration for a backend service.", + "id": "BackendServiceCdnPolicy", + "properties": { + "bypassCacheOnRequestHeaders": { + "description": "Bypass the cache when the specified request headers are matched - e.g.\nPragma or Authorization headers. Up to 5 headers can be specified.\nThe cache is bypassed for all cdnPolicy.cacheMode settings.", + "items": { + "$ref": "BackendServiceCdnPolicyBypassCacheOnRequestHeader" + }, + "type": "array" + }, + "cacheKeyPolicy": { + "$ref": "CacheKeyPolicy", + "description": "The CacheKeyPolicy for this CdnPolicy." + }, + "cacheMode": { + "description": "Specifies the cache setting for all responses from this backend.\nThe possible values are:USE_ORIGIN_HEADERS Requires the origin to set valid caching\nheaders to cache content. Responses without these headers will not be\ncached at Google's edge, and will require a full trip to the origin on\nevery request, potentially impacting performance and increasing load on\nthe origin server.FORCE_CACHE_ALL Cache all content, ignoring any \"private\",\n\"no-store\" or \"no-cache\" directives in Cache-Control response headers.\nWarning: this may result in Cloud CDN caching private,\nper-user (user identifiable) content.CACHE_ALL_STATIC Automatically cache static content,\nincluding common image formats, media (video and audio), and web assets\n(JavaScript and CSS). Requests and responses that are marked as\nuncacheable, as well as dynamic content (including HTML), will not be\ncached.\n\nIf no value is provided for cdnPolicy.cacheMode, it defaults\nto CACHE_ALL_STATIC.", + "enum": [ + "CACHE_ALL_STATIC", + "FORCE_CACHE_ALL", + "INVALID_CACHE_MODE", + "USE_ORIGIN_HEADERS" + ], + "enumDescriptions": [ + "Automatically cache static content, including common image formats,\nmedia (video and audio), and web assets (JavaScript and CSS).\nRequests and responses that are marked as uncacheable, as well as\ndynamic content (including HTML), will not be cached.", + "Cache all content, ignoring any \"private\", \"no-store\" or \"no-cache\"\ndirectives in Cache-Control response headers.\nWarning: this may result in Cloud CDN caching private,\nper-user (user identifiable) content.", + "", + "Requires the origin to set valid caching headers to cache content.\nResponses without these headers will not be cached at Google's edge,\nand will require a full trip to the origin on every request,\npotentially impacting performance and increasing load on the\norigin server." + ], + "type": "string" + }, + "clientTtl": { + "description": "Specifies a separate client (e.g. browser client) maximum TTL. This is\nused to clamp the max-age (or Expires) value sent to the client. With\nFORCE_CACHE_ALL, the lesser of client_ttl and default_ttl is used for the\nresponse max-age directive, along with a \"public\" directive. For\ncacheable content in CACHE_ALL_STATIC mode, client_ttl clamps the max-age\nfrom the origin (if specified), or else sets the response max-age\ndirective to the lesser of the client_ttl and default_ttl, and also\nensures a \"public\" cache-control directive is present.\nIf a client TTL is not specified, a default value (1 hour) will be used.\nThe maximum allowed value is 31,622,400s (1 year).", + "format": "int32", + "type": "integer" + }, + "defaultTtl": { + "description": "Specifies the default TTL for cached content served by this origin for\nresponses that do not have an existing valid TTL (max-age or s-maxage).\nSetting a TTL of \"0\" means \"always revalidate\".\nThe value of defaultTTL cannot be set to a value greater than that of\nmaxTTL, but can be equal.\nWhen the cacheMode is set to FORCE_CACHE_ALL, the defaultTTL\nwill overwrite the TTL set in all responses. The maximum allowed value is\n31,622,400s (1 year), noting that infrequently accessed objects may be\nevicted from the cache before the defined TTL.", + "format": "int32", + "type": "integer" + }, + "maxTtl": { + "description": "Specifies the maximum allowed TTL for cached content served by this\norigin.\nCache directives that attempt to set a max-age or s-maxage higher than\nthis, or an Expires header more than maxTTL seconds in the future will\nbe capped at the value of maxTTL, as if it were the value of an\ns-maxage Cache-Control directive.\nHeaders sent to the client will not be modified.\nSetting a TTL of \"0\" means \"always revalidate\".\nThe maximum allowed value is 31,622,400s (1 year), noting that\ninfrequently accessed objects may be evicted from the cache before\nthe defined TTL.", + "format": "int32", + "type": "integer" + }, + "negativeCaching": { + "description": "Negative caching allows per-status code TTLs to be set, in order\nto apply fine-grained caching for common errors or redirects.\nThis can reduce the load on your origin and improve end-user\nexperience by reducing response latency.\nWhen the cache mode is set to CACHE_ALL_STATIC or USE_ORIGIN_HEADERS,\nnegative caching applies to responses with the specified response code\nthat lack any Cache-Control, Expires, or Pragma: no-cache directives.\nWhen the cache mode is set to FORCE_CACHE_ALL, negative caching applies\nto all responses with the specified response code, and override any\ncaching headers.\nBy default, Cloud CDN will apply the following default TTLs to these\nstatus codes:\nHTTP 300 (Multiple Choice), 301, 308 (Permanent Redirects): 10m\nHTTP 404 (Not Found), 410 (Gone),\n451 (Unavailable For Legal Reasons): 120s\nHTTP 405 (Method Not Found), 501 (Not Implemented): 60s.\nThese defaults can be overridden in negative_caching_policy.", + "type": "boolean" + }, + "negativeCachingPolicy": { + "description": "Sets a cache TTL for the specified HTTP status code.\nnegative_caching must be enabled to configure negative_caching_policy.\nOmitting the policy and leaving negative_caching enabled will use\nCloud CDN's default cache TTLs.\nNote that when specifying an explicit negative_caching_policy, you\nshould take care to specify a cache TTL for all response codes\nthat you wish to cache. Cloud CDN will not apply any default\nnegative caching when a policy exists.", + "items": { + "$ref": "BackendServiceCdnPolicyNegativeCachingPolicy" + }, + "type": "array" + }, + "requestCoalescing": { + "description": "If true then Cloud CDN will combine multiple concurrent cache fill\nrequests into a small number of requests to the origin.", + "type": "boolean" + }, + "serveWhileStale": { + "description": "Serve existing content from the cache (if available) when revalidating\ncontent with the origin, or when an error is encountered when refreshing\nthe cache.\nThis setting defines the default \"max-stale\" duration for any cached\nresponses that do not specify a max-stale directive. Stale responses that\nexceed the TTL configured here will not be served. The default limit\n(max-stale) is 86400s (1 day), which will allow stale content to be\nserved up to this limit beyond the max-age (or s-maxage) of a cached\nresponse.\nThe maximum allowed value is 604800 (1 week).\nSet this to zero (0) to disable serve-while-stale.", + "format": "int32", + "type": "integer" + }, + "signedUrlCacheMaxAgeSec": { + "description": "Maximum number of seconds the response to a signed URL request will be\nconsidered fresh. After this time period, the response will be\nrevalidated before being served. Defaults to 1hr (3600s). When serving\nresponses to signed URL requests, Cloud CDN will internally behave as\nthough all responses from this backend had a \"Cache-Control:\npublic, max-age=[TTL]\" header, regardless of any existing\nCache-Control header. The actual headers served in responses will not be\naltered.", + "format": "int64", + "type": "string" + }, + "signedUrlKeyNames": { + "description": "[Output Only] Names of the keys for signing request URLs.", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "BackendServiceCdnPolicyBypassCacheOnRequestHeader": { + "description": "Bypass the cache when the specified request headers are present,\ne.g. Pragma or Authorization headers. Values are case insensitive.\nThe presence of such a header overrides the cache_mode setting.", + "id": "BackendServiceCdnPolicyBypassCacheOnRequestHeader", + "properties": { + "headerName": { + "description": "The header field name to match on when bypassing cache.\nValues are case-insensitive.", + "type": "string" + } + }, + "type": "object" + }, + "BackendServiceCdnPolicyNegativeCachingPolicy": { + "description": "Specify CDN TTLs for response error codes.", + "id": "BackendServiceCdnPolicyNegativeCachingPolicy", + "properties": { + "code": { + "description": "The HTTP status code to define a TTL against. Only HTTP status codes\n300, 301, 302, 307, 308, 404, 405, 410, 421, 451 and 501 can be\nspecified as values, and you cannot specify a status code more than\nonce.", + "format": "int32", + "type": "integer" + }, + "ttl": { + "description": "The TTL (in seconds) for which to cache responses with the\ncorresponding status code.\nThe maximum allowed value is 1800s (30 minutes), noting that\ninfrequently accessed objects may be evicted from the cache before the\ndefined TTL.", + "format": "int32", + "type": "integer" + } + }, + "type": "object" + }, + "BackendServiceConnectionTrackingPolicy": { + "description": "Connection Tracking configuration for this BackendService.", + "id": "BackendServiceConnectionTrackingPolicy", + "properties": { + "connectionPersistenceOnUnhealthyBackends": { + "description": "Specifies connection persistence when backends are unhealthy. The default\nvalue is DEFAULT_FOR_PROTOCOL.\n\nIf set to DEFAULT_FOR_PROTOCOL, the existing connections\npersist on unhealthy backends only for connection-oriented protocols\n(TCP and SCTP) and only if the Tracking Mode isPER_CONNECTION (default tracking mode) or the Session\nAffinity is configured for 5-tuple. They do not persist forUDP.\n\nIf set to NEVER_PERSIST, after a backend becomes unhealthy,\nthe existing connections on the unhealthy backend are never persisted on\nthe unhealthy backend. They are always diverted to newly selected healthy\nbackends (unless all backends are unhealthy).\n\nIf set to ALWAYS_PERSIST, existing connections always\npersist on unhealthy backends regardless of protocol and session\naffinity. It is generally not recommended to use this mode overriding the\ndefault.\n\nFor more details, see [Connection Persistence for Network Load\nBalancing](https://cloud.google.com/load-balancing/docs/network/networklb-backend-service#connection-persistence)\nand [Connection Persistence for Internal TCP/UDP Load\nBalancing](https://cloud.google.com/load-balancing/docs/internal#connection-persistence).", + "enum": [ + "ALWAYS_PERSIST", + "DEFAULT_FOR_PROTOCOL", + "NEVER_PERSIST" + ], + "enumDescriptions": [ + "", + "", + "" + ], + "type": "string" + }, + "enableStrongAffinity": { + "description": "Enable Strong Session Affinity for external passthrough Network Load\nBalancers. This option is not available publicly.", + "type": "boolean" + }, + "idleTimeoutSec": { + "description": "Specifies how long to keep a Connection Tracking entry while there is no\nmatching traffic (in seconds).\n\nFor internal passthrough Network Load Balancers:\n \n - The minimum (default) is 10 minutes and the maximum is 16 hours.\n - It can be set only if Connection Tracking is less than 5-tuple\n (i.e. Session Affinity is CLIENT_IP_NO_DESTINATION,CLIENT_IP or CLIENT_IP_PROTO, and Tracking\n Mode is PER_SESSION).\n\n\n\nFor external passthrough Network Load Balancers the default is 60\nseconds. This option is not available publicly.", + "format": "int32", + "type": "integer" + }, + "trackingMode": { + "description": "Specifies the key used for connection tracking. There are two\noptions:\n \n - PER_CONNECTION: This is the default mode. The Connection\n Tracking is performed as per the Connection Key (default Hash Method) for\n the specific protocol.\n - PER_SESSION: The Connection Tracking is performed as per\n the configured Session Affinity. It matches the configured Session\n Affinity.\n\n\n\nFor more details, see [Tracking Mode for Network Load\nBalancing](https://cloud.google.com/load-balancing/docs/network/networklb-backend-service#tracking-mode)\nand [Tracking Mode for Internal TCP/UDP Load\nBalancing](https://cloud.google.com/load-balancing/docs/internal#tracking-mode).", + "enum": [ + "INVALID_TRACKING_MODE", + "PER_CONNECTION", + "PER_SESSION" + ], + "enumDescriptions": [ + "", + "", + "" + ], + "type": "string" + } + }, + "type": "object" + }, + "BackendServiceCustomMetric": { + "description": "Custom Metrics are used for WEIGHTED_ROUND_ROBIN\nlocality_lb_policy.", + "id": "BackendServiceCustomMetric", + "properties": { + "dryRun": { + "description": "If true, the metric data is not used for load balancing.", + "type": "boolean" + }, + "name": { + "description": "Name of a custom utilization signal. The name must be 1-64 characters\nlong and match the regular expression\n`[a-z]([-_.a-z0-9]*[a-z0-9])?` which means that the\nfirst character must be a lowercase letter, and all following\ncharacters must be a dash, period, underscore, lowercase letter, or\ndigit, except the last character, which cannot be a dash, period, or\nunderscore. For usage guidelines, see Custom Metrics balancing mode. This\nfield can only be used for a global or regional backend service with the\nloadBalancingScheme set to EXTERNAL_MANAGED,INTERNAL_MANAGED INTERNAL_SELF_MANAGED.", + "type": "string" + } + }, + "type": "object" + }, + "BackendServiceFailoverPolicy": { + "description": "For load balancers that have configurable\nfailover:\n[Internal passthrough Network Load\nBalancers](https://cloud.google.com/load-balancing/docs/internal/failover-overview)\nand [external passthrough\nNetwork Load\nBalancers](https://cloud.google.com/load-balancing/docs/network/networklb-failover-overview).\nOn failover or failback, this field indicates whether connection draining\nwill be honored. Google Cloud has a fixed connection draining timeout of\n10 minutes. A setting of true terminates existing TCP\nconnections to the active pool during failover and failback, immediately\ndraining traffic. A setting of false allows existing TCP\nconnections to persist, even on VMs no longer in the active pool, for up\nto the duration of the connection draining timeout (10 minutes).", + "id": "BackendServiceFailoverPolicy", + "properties": { + "disableConnectionDrainOnFailover": { + "description": "This can be set to true if the protocol isTCP, UDP, or UNSPECIFIED.\n\nThe default is false.", + "type": "boolean" + }, + "dropTrafficIfUnhealthy": { + "description": "If set to true, connections to the\nload balancer are dropped when all primary and all backup backend VMs are\nunhealthy.If set to false, connections are distributed\namong all primary VMs when all primary and all backup backend VMs are\n unhealthy.\nFor load balancers that have configurable\nfailover:\n[Internal passthrough\nNetwork Load\nBalancers](https://cloud.google.com/load-balancing/docs/internal/failover-overview)\nand [external passthrough\nNetwork Load\nBalancers](https://cloud.google.com/load-balancing/docs/network/networklb-failover-overview).\nThe default is false.", + "type": "boolean" + }, + "failoverRatio": { + "description": "The value of the field must be in the range[0, 1]. If the value is 0, the load balancer performs a\nfailover when the number of healthy primary VMs equals zero.\nFor all other values, the load balancer performs a failover when the\ntotal number of healthy primary VMs is less than this ratio.\nFor load balancers that have configurable\nfailover:\n[Internal TCP/UDP Load\nBalancing](https://cloud.google.com/load-balancing/docs/internal/failover-overview)\nand [external TCP/UDP Load\nBalancing](https://cloud.google.com/load-balancing/docs/network/networklb-failover-overview).", + "format": "float", + "type": "number" + } + }, + "type": "object" + }, + "BackendServiceGroupHealth": { + "id": "BackendServiceGroupHealth", + "properties": { + "annotations": { + "additionalProperties": { + "type": "string" + }, + "description": "Metadata defined as annotations on the network endpoint group.", + "type": "object" + }, + "healthStatus": { + "description": "Health state of the backend instances or endpoints in requested instance or\nnetwork endpoint group, determined based on configured health checks.", + "items": { + "$ref": "HealthStatus" + }, + "type": "array" + }, + "kind": { + "default": "compute#backendServiceGroupHealth", + "description": "Output only. [Output Only] Type of resource. Alwayscompute#backendServiceGroupHealth for the health of backend\nservices.", + "readOnly": true, + "type": "string" + } + }, + "type": "object" + }, + "BackendServiceHAPolicy": { + "id": "BackendServiceHAPolicy", + "properties": { + "fastIPMove": { + "description": "Specifies whether fast IP move is enabled, and if so, the mechanism to\nachieve it.\n\nSupported values are:\n \n - DISABLED: Fast IP Move is disabled. You can only use the\n haPolicy.leader API to update the leader.\n - \u003eGARP_RA: Provides a method to very quickly define a new network\n endpoint as the leader. This method is faster than updating the leader\n using the haPolicy.leader API. Fast IP move works as follows: The VM\n hosting the network endpoint that should become the new leader sends\n either a Gratuitous ARP (GARP) packet (IPv4) or an ICMPv6 Router\n Advertisement(RA) packet (IPv6). Google Cloud immediately but\n temporarily associates the forwarding rule IP address with that VM, and\n both new and in-flight packets are quickly delivered to that VM.\n\n\n\nNote the important properties of the Fast IP Move functionality:\n \n - The GARP/RA-initiated re-routing stays active for approximately 20\n minutes. After triggering fast failover, you must also\n appropriately set the haPolicy.leader.\n - The new leader instance should continue to send GARP/RA packets\n periodically every 10 seconds until at least 10 minutes after updating\n the haPolicy.leader (but stop immediately if it is no longer the leader).\n - After triggering a fast failover, we recommend that you wait at least\n 3 seconds before sending another GARP/RA packet from a different VM\n instance to avoid race conditions.\n - Don't send GARP/RA packets from different VM\n instances at the same time. If multiple instances continue to send\n GARP/RA packets, traffic might be routed to different destinations in an\n alternating order. This condition ceases when a single instance\n issues a GARP/RA packet.\n - The GARP/RA request always takes priority over the leader API.\n Using the haPolicy.leader API to change the leader to a different\n instance will have no effect until the GARP/RA request becomes\n inactive.\n - The GARP/RA packets should follow the GARP/RA\n Packet Specifications..\n - When multiple forwarding rules refer to a regional backend service,\n you need only send a GARP or RA packet for a single forwarding rule\n virtual IP. The virtual IPs for all forwarding rules targeting the same\n backend service will also be moved to the sender of the GARP or RA\n packet. \n\n\n\nThe following are the Fast IP Move limitations (that is, when fastIPMove\nis not DISABLED):\n \n - Multiple forwarding rules cannot use the same IP address if one of\n them refers to a regional backend service with fastIPMove.\n - The regional backend service must set the network field, and all\n NEGs must belong to that network. However, individual\n NEGs can belong to different subnetworks of that network. \n - The maximum number of network endpoints across all backends of a\n backend service with fastIPMove is 32.\n - The maximum number of backend services with fastIPMove that can have\n the same network endpoint attached to one of its backends is 64.\n - The maximum number of backend services with fastIPMove in a VPC in a\n region is 64.\n - The network endpoints that are attached to a backend of a backend\n service with fastIPMove cannot resolve to Gen3+ machines for IPv6.\n - Traffic directed to the leader by a static route next hop will not be\n redirected to a new leader by fast failover. Such traffic will only be\n redirected once an haPolicy.leader update has taken effect. Only traffic\n to the forwarding rule's virtual IP will be redirected to a new leader by\n fast failover.\n\n\nhaPolicy.fastIPMove can be set only at backend service creation time.\nOnce set, it cannot be updated.\n\nBy default, fastIpMove is set to DISABLED.", + "enum": [ + "DISABLED", + "GARP_RA" + ], + "enumDescriptions": [ + "", + "" + ], + "type": "string" + }, + "leader": { + "$ref": "BackendServiceHAPolicyLeader", + "description": "Selects one of the network endpoints attached to the backend NEGs of\nthis service as the active endpoint (the leader) that receives all\ntraffic.\n\nWhen the leader changes, there is no connection draining to persist\nexisting connections on the old leader.\n\nYou are responsible for selecting a suitable endpoint as the\nleader. For example, preferring a healthy endpoint over unhealthy ones.\nNote that this service does not track backend endpoint health, and\nselects the configured leader unconditionally." + } + }, + "type": "object" + }, + "BackendServiceHAPolicyLeader": { + "id": "BackendServiceHAPolicyLeader", + "properties": { + "backendGroup": { + "description": "A fully-qualified URL (starting with https://www.googleapis.com/)\nof the zonal Network Endpoint Group (NEG) with `GCE_VM_IP` endpoints\nthat the leader is attached to.\n\nThe leader's backendGroup must already be specified as a backend of\nthis backend service. Removing a backend that is designated as the\nleader's backendGroup is not permitted.", + "type": "string" + }, + "networkEndpoint": { + "$ref": "BackendServiceHAPolicyLeaderNetworkEndpoint", + "description": "The network endpoint within the leader.backendGroup that is\ndesignated as the leader.\n\nThis network endpoint cannot be detached from the NEG specified in\nthe haPolicy.leader.backendGroup until the leader is updated with\nanother network endpoint, or the leader is removed from the haPolicy." + } + }, + "type": "object" + }, + "BackendServiceHAPolicyLeaderNetworkEndpoint": { + "id": "BackendServiceHAPolicyLeaderNetworkEndpoint", + "properties": { + "instance": { + "description": "The name of the VM instance of the leader network endpoint. The\ninstance must already be attached to the NEG specified in the\nhaPolicy.leader.backendGroup.\n\nThe name must be 1-63 characters long, and comply with RFC1035.\nAuthorization requires the following IAM permission on the\nspecified resource instance: compute.instances.use", + "type": "string" + } + }, + "type": "object" + }, + "BackendServiceHttpCookie": { + "description": "The HTTP cookie used for stateful session affinity.", + "id": "BackendServiceHttpCookie", + "properties": { + "name": { + "description": "Name of the cookie.", + "type": "string" + }, + "path": { + "description": "Path to set for the cookie.", + "type": "string" + }, + "ttl": { + "$ref": "Duration", + "description": "Lifetime of the cookie." + } + }, + "type": "object" + }, + "BackendServiceIAP": { + "description": "Identity-Aware Proxy", + "id": "BackendServiceIAP", + "properties": { + "enabled": { + "description": "Whether the serving infrastructure will authenticate and authorize all\nincoming requests.", + "type": "boolean" + }, + "oauth2ClientId": { + "description": "OAuth2 client ID to use for the authentication flow.", + "type": "string" + }, + "oauth2ClientSecret": { + "description": "OAuth2 client secret to use for the authentication flow.\nFor security reasons, this value cannot be retrieved via the API.\nInstead, the SHA-256 hash of the value is returned in the\noauth2ClientSecretSha256 field.\n\n@InputOnly", + "type": "string" + }, + "oauth2ClientSecretSha256": { + "description": "Output only. [Output Only] SHA256 hash value for the field oauth2_client_secret above.", + "readOnly": true, + "type": "string" + } + }, + "type": "object" + }, + "BackendServiceList": { + "description": "Contains a list of BackendService resources.", + "id": "BackendServiceList", + "properties": { + "id": { + "description": "[Output Only] Unique identifier for the resource; defined by the server.", + "type": "string" + }, + "items": { + "description": "A list of BackendService resources.", + "items": { + "$ref": "BackendService" + }, + "type": "array" + }, + "kind": { + "default": "compute#backendServiceList", + "description": "Output only. [Output Only] Type of resource. Alwayscompute#backendServiceList for lists of backend services.", + "readOnly": true, + "type": "string" + }, + "nextPageToken": { + "description": "[Output Only] This token allows you to get the next page of results for\nlist requests. If the number of results is larger thanmaxResults, use the nextPageToken as a value for\nthe query parameter pageToken in the next list request.\nSubsequent list requests will have their own nextPageToken to\ncontinue paging through the results.", + "type": "string" + }, + "selfLink": { + "description": "Output only. [Output Only] Server-defined URL for this resource.", + "readOnly": true, + "type": "string" + }, + "warning": { + "description": "[Output Only] Informational warning message.", + "properties": { + "code": { + "description": "[Output Only] A warning code, if applicable. For example, Compute\nEngine returns NO_RESULTS_ON_PAGE if there\nare 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", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", + "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "PARTIAL_SUCCESS", + "QUOTA_INFO_UNAVAILABLE", + "REQUIRED_TOS_AGREEMENT", + "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", + "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", + "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", + "UNREACHABLE" + ], + "enumDeprecated": [ + false, + false, + false, + false, + false, + false, + true, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false + ], + "enumDescriptions": [ + "Warning about failed cleanup of transient changes made by a failed\noperation.", + "A link to a deprecated resource was created.", + "When deploying and at least one of the resources has a type marked as\ndeprecated", + "The user created a boot disk that is larger than image size.", + "When deploying and at least one of the resources has a type marked as\nexperimental", + "Warning that is present in an external api call", + "Warning that value of a field has been overridden.\nDeprecated unused field.", + "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is\nnot of type HTTP/HTTPS/HTTP2.", + "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed\nwhich captures the amount of resources filtered out by\nuser-defined list filter.", + "A resource depends on a missing type", + "The route's nextHopIp address is not assigned to an instance on the\nnetwork.", + "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an\nipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not exist.", + "The route's nextHopInstance URL refers to an instance that is not on the\nsame network as the route.", + "The route's next hop instance does not have a status of RUNNING.", + "Error which is not critical. We decided to continue the process despite\nthe mentioned error.", + "No results are present on a particular list page.", + "Success is reported, but some results may be missing due to errors", + "Quota information is not available to client requests (e.g:\nregions.list).", + "The user attempted to use a resource that requires a TOS they have not\naccepted.", + "Warning that a resource is in use.", + "One or more of the resources set to auto-delete could not be deleted\nbecause they were in use.", + "When a resource schema validation is ignored.", + "Instance template used in instance group manager is valid as such, but\nits application does not make a lot of sense, because it allows only\nsingle instance in instance group.", + "When undeclared properties in the schema are present", + "A given scope cannot be reached." + ], + "type": "string" + }, + "data": { + "description": "[Output Only] Metadata about this warning in key:\nvalue format. For example:\n\n\"data\": [\n {\n \"key\": \"scope\",\n \"value\": \"zones/us-east1-d\"\n }", + "items": { + "properties": { + "key": { + "description": "[Output Only] A key that provides more detail on the warning being\nreturned. For example, for warnings where there are no results in a list\nrequest for a particular zone, this key might be scope and\nthe key value might be the zone name. Other examples might be a key\nindicating a deprecated resource and a suggested replacement, or a\nwarning about invalid network settings (for example, if an instance\nattempts 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" + }, + "BackendServiceListUsable": { + "description": "Contains a list of usable BackendService resources.", + "id": "BackendServiceListUsable", + "properties": { + "id": { + "description": "[Output Only] Unique identifier for the resource; defined by the server.", + "type": "string" + }, + "items": { + "description": "A list of BackendService resources.", + "items": { + "$ref": "BackendService" + }, + "type": "array" + }, + "kind": { + "default": "compute#usableBackendServiceList", + "description": "Output only. [Output Only] Type of resource. Alwayscompute#usableBackendServiceList for lists of usable backend\nservices.", + "readOnly": true, + "type": "string" + }, + "nextPageToken": { + "description": "[Output Only] This token allows you to get the next page of results for\nlist requests. If the number of results is larger thanmaxResults, use the nextPageToken as a value for\nthe query parameter pageToken in the next list request.\nSubsequent list requests will have their own nextPageToken to\ncontinue paging through the results.", + "type": "string" + }, + "selfLink": { + "description": "Output only. [Output Only] Server-defined URL for this resource.", + "readOnly": true, + "type": "string" + }, + "warning": { + "description": "[Output Only] Informational warning message.", + "properties": { + "code": { + "description": "[Output Only] A warning code, if applicable. For example, Compute\nEngine returns NO_RESULTS_ON_PAGE if there\nare 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", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", + "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "PARTIAL_SUCCESS", + "QUOTA_INFO_UNAVAILABLE", + "REQUIRED_TOS_AGREEMENT", + "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", + "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", + "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", + "UNREACHABLE" + ], + "enumDeprecated": [ + false, + false, + false, + false, + false, + false, + true, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false + ], + "enumDescriptions": [ + "Warning about failed cleanup of transient changes made by a failed\noperation.", + "A link to a deprecated resource was created.", + "When deploying and at least one of the resources has a type marked as\ndeprecated", + "The user created a boot disk that is larger than image size.", + "When deploying and at least one of the resources has a type marked as\nexperimental", + "Warning that is present in an external api call", + "Warning that value of a field has been overridden.\nDeprecated unused field.", + "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is\nnot of type HTTP/HTTPS/HTTP2.", + "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed\nwhich captures the amount of resources filtered out by\nuser-defined list filter.", + "A resource depends on a missing type", + "The route's nextHopIp address is not assigned to an instance on the\nnetwork.", + "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an\nipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not exist.", + "The route's nextHopInstance URL refers to an instance that is not on the\nsame network as the route.", + "The route's next hop instance does not have a status of RUNNING.", + "Error which is not critical. We decided to continue the process despite\nthe mentioned error.", + "No results are present on a particular list page.", + "Success is reported, but some results may be missing due to errors", + "Quota information is not available to client requests (e.g:\nregions.list).", + "The user attempted to use a resource that requires a TOS they have not\naccepted.", + "Warning that a resource is in use.", + "One or more of the resources set to auto-delete could not be deleted\nbecause they were in use.", + "When a resource schema validation is ignored.", + "Instance template used in instance group manager is valid as such, but\nits application does not make a lot of sense, because it allows only\nsingle instance in instance group.", + "When undeclared properties in the schema are present", + "A given scope cannot be reached." + ], + "type": "string" + }, + "data": { + "description": "[Output Only] Metadata about this warning in key:\nvalue format. For example:\n\n\"data\": [\n {\n \"key\": \"scope\",\n \"value\": \"zones/us-east1-d\"\n }", + "items": { + "properties": { + "key": { + "description": "[Output Only] A key that provides more detail on the warning being\nreturned. For example, for warnings where there are no results in a list\nrequest for a particular zone, this key might be scope and\nthe key value might be the zone name. Other examples might be a key\nindicating a deprecated resource and a suggested replacement, or a\nwarning about invalid network settings (for example, if an instance\nattempts 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" + }, + "BackendServiceLocalityLoadBalancingPolicyConfig": { + "description": "Container for either a built-in LB policy supported by gRPC or Envoy or\na custom one implemented by the end user.", + "id": "BackendServiceLocalityLoadBalancingPolicyConfig", + "properties": { + "customPolicy": { + "$ref": "BackendServiceLocalityLoadBalancingPolicyConfigCustomPolicy" + }, + "policy": { + "$ref": "BackendServiceLocalityLoadBalancingPolicyConfigPolicy" + } + }, + "type": "object" + }, + "BackendServiceLocalityLoadBalancingPolicyConfigCustomPolicy": { + "description": "The configuration for a custom policy implemented by the user and\ndeployed with the client.", + "id": "BackendServiceLocalityLoadBalancingPolicyConfigCustomPolicy", + "properties": { + "data": { + "description": "An optional, arbitrary JSON object with configuration data, understood\nby a locally installed custom policy implementation.", + "type": "string" + }, + "name": { + "description": "Identifies the custom policy.\n\nThe value should match the name of a custom implementation registered\non the gRPC clients. It should follow protocol buffer message naming\nconventions and include the full path (for example,\nmyorg.CustomLbPolicy). The maximum length is 256 characters.\n\nDo not specify the same custom policy more than once for a\nbackend. If you do, the configuration is rejected.\n\nFor an example of how to use this field, seeUse\na custom policy.", + "type": "string" + } + }, + "type": "object" + }, + "BackendServiceLocalityLoadBalancingPolicyConfigPolicy": { + "description": "The configuration for a built-in load balancing policy.", + "id": "BackendServiceLocalityLoadBalancingPolicyConfigPolicy", + "properties": { + "name": { + "description": "The name of a locality load-balancing policy. Valid values include\nROUND_ROBIN and, for Java clients, LEAST_REQUEST. For information\nabout these values, see the description of localityLbPolicy.\n\nDo not specify the same policy more than once for a\nbackend. If you do, the configuration is rejected.", + "enum": [ + "INVALID_LB_POLICY", + "LEAST_REQUEST", + "MAGLEV", + "ORIGINAL_DESTINATION", + "RANDOM", + "RING_HASH", + "ROUND_ROBIN", + "WEIGHTED_GCP_RENDEZVOUS", + "WEIGHTED_MAGLEV", + "WEIGHTED_ROUND_ROBIN" + ], + "enumDescriptions": [ + "", + "An O(1) algorithm which selects two random healthy hosts and\npicks the host which has fewer active requests.", + "This algorithm implements consistent hashing to backends. Maglev can be\nused as a drop in replacement for the ring hash load balancer. Maglev is\nnot as stable as ring hash but has faster table lookup build times and\nhost selection times. For more information about Maglev, seeMaglev:\nA Fast and Reliable Software Network Load Balancer.", + "Backend host is selected based on the client connection metadata, i.e.,\nconnections are opened to the same address as the destination address of\nthe incoming connection before the connection was redirected to the load\nbalancer.", + "The load balancer selects a random healthy host.", + "The ring/modulo hash load balancer implements consistent hashing to\nbackends. The algorithm has the property that the addition/removal\nof a host from a set of N hosts only affects 1/N of the requests.", + "This is a simple policy in which each healthy backend is selected\nin round robin order. This is the default.", + "Per-instance weighted Load Balancing via health check reported weights.\nIn internal passthrough network load balancing, it is weighted\nrendezvous hashing.\nThis option is only supported in internal passthrough network load\nbalancing.", + "Per-instance weighted Load Balancing via health check reported weights.\nIf set, the Backend Service must configure a non legacy HTTP-based Health\nCheck, and health check replies are expected to contain non-standard HTTP\nresponse header field X-Load-Balancing-Endpoint-Weight to specify the\nper-instance weights.\nIf set, Load Balancing is weighted based on the\nper-instance weights reported in the last processed health check replies,\nas long as every instance either reported a valid weight or had\nUNAVAILABLE_WEIGHT. Otherwise, Load Balancing remains equal-weight.\nThis option is only supported in Network Load Balancing.", + "Per-endpoint weighted round-robin Load Balancing using weights computed\nfrom Backend reported Custom Metrics. If set, the Backend Service\nresponses are expected to contain non-standard HTTP response header field\nEndpoint-Load-Metrics. The reported metrics\nto use for computing the weights are specified via the\ncustomMetrics fields." + ], + "type": "string" + } + }, + "type": "object" + }, + "BackendServiceLogConfig": { + "description": "The available logging options for the load balancer traffic served by this\nbackend service.", + "id": "BackendServiceLogConfig", + "properties": { + "enable": { + "description": "Denotes whether to enable logging for the load balancer\ntraffic served by this backend service. The default value is false.", + "type": "boolean" + }, + "loggingHttpRequestHeaders": { + "description": "The list of request headers that will be logged to Stackdriver.", + "items": { + "$ref": "BackendServiceLogConfigLoggingHttpHeader" + }, + "type": "array" + }, + "loggingHttpResponseHeaders": { + "description": "The list of response headers that will be logged to Stackdriver.", + "items": { + "$ref": "BackendServiceLogConfigLoggingHttpHeader" + }, + "type": "array" + }, + "optionalFields": { + "description": "This field can only be specified if logging is enabled for this backend\nservice and \"logConfig.optionalMode\" was set to CUSTOM. Contains a list\nof optional fields you want to include in the logs. For example:\nserverInstance, serverGkeDetails.cluster,\nserverGkeDetails.pod.podNamespace", + "items": { + "type": "string" + }, + "type": "array" + }, + "optionalMode": { + "description": "This field can only be specified if logging is enabled for this backend\nservice. Configures whether all, none or a subset of optional fields\nshould be added to the reported logs. One of [INCLUDE_ALL_OPTIONAL,\nEXCLUDE_ALL_OPTIONAL, CUSTOM]. Default is EXCLUDE_ALL_OPTIONAL.", + "enum": [ + "CUSTOM", + "EXCLUDE_ALL_OPTIONAL", + "INCLUDE_ALL_OPTIONAL" + ], + "enumDescriptions": [ + "A subset of optional fields.", + "None optional fields.", + "All optional fields." + ], + "type": "string" + }, + "sampleRate": { + "description": "This field can only be specified if logging is enabled for this backend\nservice. The value of the field must be in [0, 1]. This configures the\nsampling rate of requests to the load balancer where 1.0 means all logged\nrequests are reported and 0.0 means no logged requests are reported. The\ndefault value is 1.0.", + "format": "float", + "type": "number" + } + }, + "type": "object" + }, + "BackendServiceLogConfigLoggingHttpHeader": { + "description": "Determines which HTTP headers will be logged to Stackdriver.", + "id": "BackendServiceLogConfigLoggingHttpHeader", + "properties": { + "headerName": { + "description": "The name of the header to be logged.", + "type": "string" + } + }, + "type": "object" + }, + "BackendServiceNetworkPassThroughLbTrafficPolicy": { + "id": "BackendServiceNetworkPassThroughLbTrafficPolicy", + "properties": { + "zonalAffinity": { + "$ref": "BackendServiceNetworkPassThroughLbTrafficPolicyZonalAffinity", + "description": "When configured, new connections are load balanced across healthy backend\nendpoints in the local zone." + } + }, + "type": "object" + }, + "BackendServiceNetworkPassThroughLbTrafficPolicyZonalAffinity": { + "id": "BackendServiceNetworkPassThroughLbTrafficPolicyZonalAffinity", + "properties": { + "spillover": { + "description": "This field indicates whether zonal affinity is enabled or not. The\npossible values are:\n \n - ZONAL_AFFINITY_DISABLED: Default Value. Zonal Affinity\n is disabled. The load balancer distributes new connections to all\n healthy backend endpoints across all zones.\n - ZONAL_AFFINITY_STAY_WITHIN_ZONE: Zonal Affinity is\n enabled. The load balancer distributes new connections to all healthy\n backend endpoints in the local zone only. If there are no healthy\n backend endpoints in the local zone, the load balancer distributes\n new connections to all backend endpoints in the local zone.\n - ZONAL_AFFINITY_SPILL_CROSS_ZONE: Zonal Affinity is\n enabled. The load balancer distributes new connections to all healthy\n backend endpoints in the local zone only. If there aren't enough\n healthy backend endpoints in the local zone, the load balancer\n distributes new connections to all healthy backend endpoints across all\n zones.", + "enum": [ + "ZONAL_AFFINITY_DISABLED", + "ZONAL_AFFINITY_SPILL_CROSS_ZONE", + "ZONAL_AFFINITY_STAY_WITHIN_ZONE" + ], + "enumDescriptions": [ + "", + "", + "" + ], + "type": "string" + }, + "spilloverRatio": { + "description": "The value of the field must be in [0, 1]. When the ratio of the count\nof healthy backend endpoints in a zone to the count of backend\nendpoints in that same zone is equal to or above this threshold, the\nload balancer distributes new connections to all healthy endpoints in\nthe local zone only. When the ratio of the count of healthy backend\nendpoints in a zone to the count of backend endpoints in that same\nzone is below this threshold, the load balancer distributes all new\nconnections to all healthy endpoints across all zones.", + "format": "float", + "type": "number" + } + }, + "type": "object" + }, + "BackendServiceOrchestrationInfo": { + "description": "A message containing information about the resource or system that manages\nthe backend service.", + "id": "BackendServiceOrchestrationInfo", + "properties": { + "resourceUri": { + "description": "The resource URI of the resource or system that manages the backend\nservice.", + "type": "string" + } + }, + "type": "object" + }, + "BackendServiceParams": { + "description": "Additional Backend Service parameters.", + "id": "BackendServiceParams", + "properties": { + "resourceManagerTags": { + "additionalProperties": { + "type": "string" + }, + "description": "Tag keys/values directly bound to this resource.\nTag keys and values have the same definition as resource\nmanager tags. The field is allowed for INSERT\nonly. The keys/values to set on the resource should be specified in\neither ID { : } or Namespaced format\n{ : }.\nFor example the following are valid inputs:\n* {\"tagKeys/333\" : \"tagValues/444\", \"tagKeys/123\" : \"tagValues/456\"}\n* {\"123/environment\" : \"production\", \"345/abc\" : \"xyz\"}\nNote:\n* Invalid combinations of ID \u0026 namespaced format is not supported. For\n instance: {\"123/environment\" : \"tagValues/444\"} is invalid.", + "type": "object" + } + }, + "type": "object" + }, + "BackendServiceReference": { + "id": "BackendServiceReference", + "properties": { + "backendService": { + "type": "string" + } + }, + "type": "object" + }, + "BackendServiceTlsSettings": { + "id": "BackendServiceTlsSettings", + "properties": { + "authenticationConfig": { + "description": "Reference to the BackendAuthenticationConfig resource from the\nnetworksecurity.googleapis.com namespace. Can be used in authenticating\nTLS connections to the backend, as specified by the authenticationMode\nfield. Can only be specified if authenticationMode is not NONE.", + "type": "string" + }, + "sni": { + "description": "Server Name Indication - see RFC3546 section 3.1. If set, the load\nbalancer sends this string as the SNI hostname in the TLS connection to\nthe backend, and requires that this string match a Subject Alternative\nName (SAN) in the backend's server certificate. With a Regional Internet\nNEG backend, if the SNI is specified here, the load balancer uses it\nregardless of whether the Regional Internet NEG is specified with FQDN or\nIP address and port. When both sni and subjectAltNames[] are specified,\nthe load balancer matches the backend certificate's SAN only to\nsubjectAltNames[].", + "type": "string" + }, + "subjectAltNames": { + "description": "A list of Subject Alternative Names (SANs) that the Load Balancer\nverifies during a TLS handshake with the backend. When the server\npresents its X.509 certificate to the Load Balancer, the Load Balancer\ninspects the certificate's SAN field, and requires that at least one SAN\nmatch one of the subjectAltNames in the list. This field is limited to 5\nentries. When both sni and subjectAltNames[] are specified, the load\nbalancer matches the backend certificate's SAN only to subjectAltNames[].", + "items": { + "$ref": "BackendServiceTlsSettingsSubjectAltName" + }, + "type": "array" + } + }, + "type": "object" + }, + "BackendServiceTlsSettingsSubjectAltName": { + "description": "A Subject Alternative Name that the load balancer matches against the SAN\nfield in the TLS certificate provided by the backend, specified as either\na DNS name or a URI, in accordance with RFC 5280 4.2.1.6", + "id": "BackendServiceTlsSettingsSubjectAltName", + "properties": { + "dnsName": { + "description": "The SAN specified as a DNS Name.", + "type": "string" + }, + "uniformResourceIdentifier": { + "description": "The SAN specified as a URI.", + "type": "string" + } + }, + "type": "object" + }, + "BackendServiceUsedBy": { + "id": "BackendServiceUsedBy", + "properties": { + "reference": { + "description": "Output only. [Output Only] Server-defined URL for resources referencing given\nBackendService like UrlMaps, TargetTcpProxies, TargetSslProxies\nand ForwardingRule.", + "readOnly": true, + "type": "string" + } + }, + "type": "object" + }, + "BackendServicesScopedList": { + "id": "BackendServicesScopedList", + "properties": { + "backendServices": { + "description": "A list of BackendServices contained in this scope.", + "items": { + "$ref": "BackendService" + }, + "type": "array" + }, + "warning": { + "description": "Informational warning which replaces the list of\nbackend services when the list is empty.", + "properties": { + "code": { + "description": "[Output Only] A warning code, if applicable. For example, Compute\nEngine returns NO_RESULTS_ON_PAGE if there\nare 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", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", + "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "PARTIAL_SUCCESS", + "QUOTA_INFO_UNAVAILABLE", + "REQUIRED_TOS_AGREEMENT", + "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", + "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", + "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", + "UNREACHABLE" + ], + "enumDeprecated": [ + false, + false, + false, + false, + false, + false, + true, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false + ], + "enumDescriptions": [ + "Warning about failed cleanup of transient changes made by a failed\noperation.", + "A link to a deprecated resource was created.", + "When deploying and at least one of the resources has a type marked as\ndeprecated", + "The user created a boot disk that is larger than image size.", + "When deploying and at least one of the resources has a type marked as\nexperimental", + "Warning that is present in an external api call", + "Warning that value of a field has been overridden.\nDeprecated unused field.", + "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is\nnot of type HTTP/HTTPS/HTTP2.", + "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed\nwhich captures the amount of resources filtered out by\nuser-defined list filter.", + "A resource depends on a missing type", + "The route's nextHopIp address is not assigned to an instance on the\nnetwork.", + "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an\nipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not exist.", + "The route's nextHopInstance URL refers to an instance that is not on the\nsame network as the route.", + "The route's next hop instance does not have a status of RUNNING.", + "Error which is not critical. We decided to continue the process despite\nthe mentioned error.", + "No results are present on a particular list page.", + "Success is reported, but some results may be missing due to errors", + "Quota information is not available to client requests (e.g:\nregions.list).", + "The user attempted to use a resource that requires a TOS they have not\naccepted.", + "Warning that a resource is in use.", + "One or more of the resources set to auto-delete could not be deleted\nbecause they were in use.", + "When a resource schema validation is ignored.", + "Instance template used in instance group manager is valid as such, but\nits application does not make a lot of sense, because it allows only\nsingle instance in instance group.", + "When undeclared properties in the schema are present", + "A given scope cannot be reached." + ], + "type": "string" + }, + "data": { + "description": "[Output Only] Metadata about this warning in key:\nvalue format. For example:\n\n\"data\": [\n {\n \"key\": \"scope\",\n \"value\": \"zones/us-east1-d\"\n }", + "items": { + "properties": { + "key": { + "description": "[Output Only] A key that provides more detail on the warning being\nreturned. For example, for warnings where there are no results in a list\nrequest for a particular zone, this key might be scope and\nthe key value might be the zone name. Other examples might be a key\nindicating a deprecated resource and a suggested replacement, or a\nwarning about invalid network settings (for example, if an instance\nattempts 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" + }, + "BfdPacket": { + "id": "BfdPacket", + "properties": { + "authenticationPresent": { + "description": "The Authentication Present bit of the BFD packet. This is specified in\nsection 4.1 ofRFC5880", + "type": "boolean" + }, + "controlPlaneIndependent": { + "description": "The Control Plane Independent bit of the BFD packet. This is specified in\nsection 4.1 ofRFC5880", + "type": "boolean" + }, + "demand": { + "description": "The demand bit of the BFD packet. This is specified in section 4.1 ofRFC5880", + "type": "boolean" + }, + "diagnostic": { + "description": "The diagnostic code specifies the local system's reason for the last change\nin session state. This allows remote systems to determine the reason that\nthe previous session failed, for example. These diagnostic codes are\nspecified in section 4.1 ofRFC5880", + "enum": [ + "ADMINISTRATIVELY_DOWN", + "CONCATENATED_PATH_DOWN", + "CONTROL_DETECTION_TIME_EXPIRED", + "DIAGNOSTIC_UNSPECIFIED", + "ECHO_FUNCTION_FAILED", + "FORWARDING_PLANE_RESET", + "NEIGHBOR_SIGNALED_SESSION_DOWN", + "NO_DIAGNOSTIC", + "PATH_DOWN", + "REVERSE_CONCATENATED_PATH_DOWN" + ], + "enumDescriptions": [ + "", + "", + "", + "", + "", + "", + "", + "", + "", + "" + ], + "type": "string" + }, + "final": { + "description": "The Final bit of the BFD packet. This is specified in section 4.1 ofRFC5880", + "type": "boolean" + }, + "length": { + "description": "The length of the BFD Control packet in bytes. This is specified in section\n4.1 ofRFC5880", + "format": "uint32", + "type": "integer" + }, + "minEchoRxIntervalMs": { + "description": "The Required Min Echo RX Interval value in the BFD packet. This is\nspecified in section 4.1 ofRFC5880", + "format": "uint32", + "type": "integer" + }, + "minRxIntervalMs": { + "description": "The Required Min RX Interval value in the BFD packet. This is specified in\nsection 4.1 ofRFC5880", + "format": "uint32", + "type": "integer" + }, + "minTxIntervalMs": { + "description": "The Desired Min TX Interval value in the BFD packet. This is specified in\nsection 4.1 ofRFC5880", + "format": "uint32", + "type": "integer" + }, + "multiplier": { + "description": "The detection time multiplier of the BFD packet. This is specified in\nsection 4.1 ofRFC5880", + "format": "uint32", + "type": "integer" + }, + "multipoint": { + "description": "The multipoint bit of the BFD packet. This is specified in section 4.1 ofRFC5880", + "type": "boolean" + }, + "myDiscriminator": { + "description": "The My Discriminator value in the BFD packet. This is specified in section\n4.1 ofRFC5880", + "format": "uint32", + "type": "integer" + }, + "poll": { + "description": "The Poll bit of the BFD packet. This is specified in section 4.1 ofRFC5880", + "type": "boolean" + }, + "state": { + "description": "The current BFD session state as seen by the transmitting system. These\nstates are specified in section 4.1 ofRFC5880", + "enum": [ + "ADMIN_DOWN", + "DOWN", + "INIT", + "STATE_UNSPECIFIED", + "UP" + ], + "enumDescriptions": [ + "", + "", + "", + "", + "" + ], + "type": "string" + }, + "version": { + "description": "The version number of the BFD protocol, as specified in section 4.1 ofRFC5880.", + "format": "uint32", + "type": "integer" + }, + "yourDiscriminator": { + "description": "The Your Discriminator value in the BFD packet. This is specified in\nsection 4.1 ofRFC5880", + "format": "uint32", + "type": "integer" + } + }, + "type": "object" + }, + "BfdStatus": { + "description": "Next free: 15", + "id": "BfdStatus", + "properties": { + "bfdSessionInitializationMode": { + "description": "The BFD session initialization mode for this BGP peer.\nIf set to ACTIVE, the Cloud Router will initiate the BFD session for\nthis BGP peer. If set to PASSIVE, the Cloud Router will wait for the\npeer router to initiate the BFD session for this BGP peer. If set to\nDISABLED, BFD is disabled for this BGP peer.", + "enum": [ + "ACTIVE", + "DISABLED", + "PASSIVE" + ], + "enumDescriptions": [ + "", + "", + "" + ], + "type": "string" + }, + "configUpdateTimestampMicros": { + "description": "Unix timestamp of the most recent config update.", + "format": "int64", + "type": "string" + }, + "controlPacketCounts": { + "$ref": "BfdStatusPacketCounts", + "description": "Control packet counts for the current BFD session." + }, + "controlPacketIntervals": { + "description": "Inter-packet time interval statistics for control packets.", + "items": { + "$ref": "PacketIntervals" + }, + "type": "array" + }, + "localDiagnostic": { + "description": "The diagnostic code specifies the local system's reason for the last change\nin session state. This allows remote systems to determine the reason that\nthe previous session failed, for example. These diagnostic codes are\nspecified in section 4.1 ofRFC5880", + "enum": [ + "ADMINISTRATIVELY_DOWN", + "CONCATENATED_PATH_DOWN", + "CONTROL_DETECTION_TIME_EXPIRED", + "DIAGNOSTIC_UNSPECIFIED", + "ECHO_FUNCTION_FAILED", + "FORWARDING_PLANE_RESET", + "NEIGHBOR_SIGNALED_SESSION_DOWN", + "NO_DIAGNOSTIC", + "PATH_DOWN", + "REVERSE_CONCATENATED_PATH_DOWN" + ], + "enumDescriptions": [ + "", + "", + "", + "", + "", + "", + "", + "", + "", + "" + ], + "type": "string" + }, + "localState": { + "description": "The current BFD session state as seen by the transmitting system. These\nstates are specified in section 4.1 ofRFC5880", + "enum": [ + "ADMIN_DOWN", + "DOWN", + "INIT", + "STATE_UNSPECIFIED", + "UP" + ], + "enumDescriptions": [ + "", + "", + "", + "", + "" + ], + "type": "string" + }, + "negotiatedLocalControlTxIntervalMs": { + "description": "Negotiated transmit interval for control packets.", + "format": "uint32", + "type": "integer" + }, + "rxPacket": { + "$ref": "BfdPacket", + "description": "The most recent Rx control packet for this BFD session." + }, + "txPacket": { + "$ref": "BfdPacket", + "description": "The most recent Tx control packet for this BFD session." + }, + "uptimeMs": { + "description": "Session uptime in milliseconds. Value will be 0 if session is not up.", + "format": "int64", + "type": "string" + } + }, + "type": "object" + }, + "BfdStatusPacketCounts": { + "id": "BfdStatusPacketCounts", + "properties": { + "numRx": { + "description": "Number of packets received since the beginning of the current BFD\nsession.", + "format": "uint32", + "type": "integer" + }, + "numRxRejected": { + "description": "Number of packets received that were rejected because of errors since the\nbeginning of the current BFD session.", + "format": "uint32", + "type": "integer" + }, + "numRxSuccessful": { + "description": "Number of packets received that were successfully processed since the\nbeginning of the current BFD session.", + "format": "uint32", + "type": "integer" + }, + "numTx": { + "description": "Number of packets transmitted since the beginning of the current BFD\nsession.", + "format": "uint32", + "type": "integer" + } + }, + "type": "object" + }, + "BgpRoute": { + "id": "BgpRoute", + "properties": { + "asPaths": { + "description": "Output only. [Output only] AS-PATH for the route", + "items": { + "$ref": "BgpRouteAsPath" + }, + "readOnly": true, + "type": "array" + }, + "communities": { + "description": "Output only. [Output only] BGP communities in human-readable A:B format.", + "items": { + "type": "string" + }, + "readOnly": true, + "type": "array" + }, + "destination": { + "$ref": "BgpRouteNetworkLayerReachabilityInformation", + "description": "Output only. [Output only] Destination IP range for the route, in human-readable CIDR\nformat", + "readOnly": true + }, + "med": { + "description": "Output only. [Output only] BGP multi-exit discriminator", + "format": "uint32", + "readOnly": true, + "type": "integer" + }, + "origin": { + "description": "Output only. [Output only] BGP origin (EGP, IGP or INCOMPLETE)", + "enum": [ + "BGP_ORIGIN_EGP", + "BGP_ORIGIN_IGP", + "BGP_ORIGIN_INCOMPLETE" + ], + "enumDescriptions": [ + "", + "", + "" + ], + "readOnly": true, + "type": "string" + } + }, + "type": "object" + }, + "BgpRouteAsPath": { + "id": "BgpRouteAsPath", + "properties": { + "asns": { + "description": "Output only. [Output only] ASNs in the path segment. When type is SEQUENCE, these are\nordered.", + "items": { + "format": "int32", + "type": "integer" + }, + "readOnly": true, + "type": "array" + }, + "asns32": { + "description": "Output only. [Output only] ASNs in the path segment. This field is for better\nsupport of 32 bit ASNs as the other asns field suffers from overflow when\nthe ASN is larger. When type is SEQUENCE, these are ordered.", + "items": { + "format": "uint32", + "type": "integer" + }, + "readOnly": true, + "type": "array" + }, + "type": { + "description": "Output only. [Output only] Type of AS-PATH segment (SEQUENCE or SET)", + "enum": [ + "AS_PATH_TYPE_SEQUENCE", + "AS_PATH_TYPE_SET" + ], + "enumDescriptions": [ + "", + "" + ], + "readOnly": true, + "type": "string" + } + }, + "type": "object" + }, + "BgpRouteNetworkLayerReachabilityInformation": { + "description": "Network Layer Reachability Information (NLRI) for a route.", + "id": "BgpRouteNetworkLayerReachabilityInformation", + "properties": { + "pathId": { + "description": "If the BGP session supports multiple paths (RFC 7911), the path\nidentifier for this route.", + "format": "uint32", + "type": "integer" + }, + "prefix": { + "description": "Human readable CIDR notation for a prefix. E.g. 10.42.0.0/16.", + "type": "string" + } + }, + "type": "object" + }, + "Binding": { + "description": "Associates `members`, or principals, with a `role`.", + "id": "Binding", + "properties": { + "condition": { + "$ref": "Expr", + "description": "The condition that is associated with this binding.\n\nIf the condition evaluates to `true`, then this binding applies to the\ncurrent request.\n\nIf the condition evaluates to `false`, then this binding does not apply to\nthe current request. However, a different role binding might grant the same\nrole to one or more of the principals in this binding.\n\nTo learn which resources support conditions in their IAM policies, see the\n[IAM\ndocumentation](https://cloud.google.com/iam/help/conditions/resource-policies)." + }, + "members": { + "description": "Specifies the principals requesting access for a Google Cloud resource.\n`members` can have the following values:\n\n* `allUsers`: A special identifier that represents anyone who is\n on the internet; with or without a Google account.\n\n* `allAuthenticatedUsers`: A special identifier that represents anyone\n who is authenticated with a Google account or a service account.\n Does not include identities that come from external identity providers\n (IdPs) through identity federation.\n\n* `user:{emailid}`: An email address that represents a specific Google\n account. For example, `alice@example.com` .\n\n\n* `serviceAccount:{emailid}`: An email address that represents a Google\n service account. For example,\n `my-other-app@appspot.gserviceaccount.com`.\n\n* `serviceAccount:{projectid}.svc.id.goog[{namespace}/{kubernetes-sa}]`: An\n identifier for a\n [Kubernetes service\n account](https://cloud.google.com/kubernetes-engine/docs/how-to/kubernetes-service-accounts).\n For example, `my-project.svc.id.goog[my-namespace/my-kubernetes-sa]`.\n\n* `group:{emailid}`: An email address that represents a Google group.\n For example, `admins@example.com`.\n\n\n* `domain:{domain}`: The G Suite domain (primary) that represents all the\n users of that domain. For example, `google.com` or `example.com`.\n\n\n\n\n* `principal://iam.googleapis.com/locations/global/workforcePools/{pool_id}/subject/{subject_attribute_value}`:\n A single identity in a workforce identity pool.\n\n* `principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id}/group/{group_id}`:\n All workforce identities in a group.\n\n* `principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id}/attribute.{attribute_name}/{attribute_value}`:\n All workforce identities with a specific attribute value.\n\n* `principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id}/*`:\n All identities in a workforce identity pool.\n\n* `principal://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/subject/{subject_attribute_value}`:\n A single identity in a workload identity pool.\n\n* `principalSet://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/group/{group_id}`:\n A workload identity pool group.\n\n* `principalSet://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/attribute.{attribute_name}/{attribute_value}`:\n All identities in a workload identity pool with a certain attribute.\n\n* `principalSet://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/*`:\n All identities in a workload identity pool.\n\n* `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique\n identifier) representing a user that has been recently deleted. For\n example, `alice@example.com?uid=123456789012345678901`. If the user is\n recovered, this value reverts to `user:{emailid}` and the recovered user\n retains the role in the binding.\n\n* `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus\n unique identifier) representing a service account that has been recently\n deleted. For example,\n `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`.\n If the service account is undeleted, this value reverts to\n `serviceAccount:{emailid}` and the undeleted service account retains the\n role in the binding.\n\n* `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique\n identifier) representing a Google group that has been recently\n deleted. For example, `admins@example.com?uid=123456789012345678901`. If\n the group is recovered, this value reverts to `group:{emailid}` and the\n recovered group retains the role in the binding.\n\n* `deleted:principal://iam.googleapis.com/locations/global/workforcePools/{pool_id}/subject/{subject_attribute_value}`:\n Deleted single identity in a workforce identity pool. For example,\n `deleted:principal://iam.googleapis.com/locations/global/workforcePools/my-pool-id/subject/my-subject-attribute-value`.", + "items": { + "type": "string" + }, + "type": "array" + }, + "role": { + "description": "Role that is assigned to the list of `members`, or principals.\nFor example, `roles/viewer`, `roles/editor`, or `roles/owner`.\n\nFor an overview of the IAM roles and permissions, see the\n[IAM documentation](https://cloud.google.com/iam/docs/roles-overview). For\na list of the available pre-defined roles, see\n[here](https://cloud.google.com/iam/docs/understanding-roles).", + "type": "string" + } + }, + "type": "object" + }, + "BulkInsertDiskResource": { + "description": "A transient resource used in compute.disks.bulkInsert and\ncompute.regionDisks.bulkInsert. It is only used to process\nrequests and is not persisted.", + "id": "BulkInsertDiskResource", + "properties": { + "instantSnapshotGroupParameters": { + "$ref": "InstantSnapshotGroupParameters", + "description": "The parameters for the instant snapshot group." + }, + "snapshotGroupParameters": { + "$ref": "SnapshotGroupParameters", + "description": "The parameters for the snapshot group. The usage of snapshot group feature\nis restricted." + }, + "sourceConsistencyGroupPolicy": { + "description": "The URL of the DiskConsistencyGroupPolicy for the group of disks to clone.\nThis may be a full or partial URL, such as:\n \n \n - \n https://www.googleapis.com/compute/v1/projects/project/regions/region/resourcePolicies/resourcePolicy\n \n - \n projects/project/regions/region/resourcePolicies/resourcePolicy\n \n - \n regions/region/resourcePolicies/resourcePolicy", + "type": "string" + } + }, + "type": "object" + }, + "BulkInsertInstanceResource": { + "description": "A transient resource used in compute.instances.bulkInsert and\ncompute.regionInstances.bulkInsert . This resource is not persisted\nanywhere, it is used only for processing the requests.", + "id": "BulkInsertInstanceResource", + "properties": { + "count": { + "description": "The maximum number of instances to create.", + "format": "int64", + "type": "string" + }, + "instanceFlexibilityPolicy": { + "$ref": "InstanceFlexibilityPolicy", + "description": "A flexible specification of machine type of instances to create." + }, + "instanceProperties": { + "$ref": "InstanceProperties", + "description": "The instance properties defining the VM instances to be created. Required\nif sourceInstanceTemplate is not provided." + }, + "locationPolicy": { + "$ref": "LocationPolicy", + "description": "Policy for choosing target zone. For more information, seeCreate VMs in\nbulk." + }, + "minCount": { + "description": "The minimum number of instances to create. If no min_count is\nspecified then count is used as the default value. Ifmin_count instances cannot be created, then no instances will\nbe created and instances already created will be deleted.", + "format": "int64", + "type": "string" + }, + "namePattern": { + "description": "The string pattern used for the names of the VMs.\nEither name_pattern or per_instance_properties\nmust be set. The pattern must contain one continuous sequence of\nplaceholder hash characters (#) with each character corresponding to one\ndigit of the generated instance name. Example: a name_pattern\nof inst-#### generates instance names such asinst-0001 and inst-0002. If existing instances\nin the same project and zone have names that match the name pattern\nthen the generated instance numbers start after the biggest\nexisting number. For example, if there exists an instance with nameinst-0050, then instance names generated using the patterninst-#### begin with inst-0051. The name pattern\nplaceholder #...# can contain up to 18 characters.", + "type": "string" + }, + "perInstanceProperties": { + "additionalProperties": { + "$ref": "BulkInsertInstanceResourcePerInstanceProperties" + }, + "description": "Per-instance properties to be set on individual instances.\nKeys of this map specify requested instance names.\nCan be empty if name_pattern is used.", + "type": "object" + }, + "sourceInstanceTemplate": { + "description": "Specifies the instance template from which to create instances. You may\ncombine sourceInstanceTemplate withinstanceProperties to override specific values from an\nexisting instance template. Bulk API follows the semantics of JSON Merge\nPatch described by RFC\n7396.\n\nIt can be a full or partial URL. For example, the following are\nall valid URLs to an instance template: \n \n \n - https://www.googleapis.com/compute/v1/projects/project/global/instanceTemplates/instanceTemplate\n - projects/project/global/instanceTemplates/instanceTemplate\n - global/instanceTemplates/instanceTemplate\n\n\n\nThis field is optional.", + "type": "string" + } + }, + "type": "object" + }, + "BulkInsertInstanceResourcePerInstanceProperties": { + "description": "Per-instance properties to be set on individual instances.\nTo be extended in the future.", + "id": "BulkInsertInstanceResourcePerInstanceProperties", + "properties": { + "hostname": { + "description": "Specifies the hostname of the instance. More details in:\nhttps://cloud.google.com/compute/docs/instances/custom-hostname-vm#naming_convention", + "type": "string" + }, + "name": { + "description": "Output only. This field is only temporary. It will be removed. Do not use it.", + "readOnly": true, + "type": "string" + } + }, + "type": "object" + }, + "BulkInsertOperationStatus": { + "id": "BulkInsertOperationStatus", + "properties": { + "createdVmCount": { + "description": "[Output Only] Count of VMs successfully created so far.", + "format": "int32", + "type": "integer" + }, + "deletedVmCount": { + "description": "[Output Only] Count of VMs that got deleted during rollback.", + "format": "int32", + "type": "integer" + }, + "failedToCreateVmCount": { + "description": "[Output Only] Count of VMs that started creating but encountered an\nerror.", + "format": "int32", + "type": "integer" + }, + "status": { + "description": "[Output Only] Creation status of BulkInsert operation - information\nif the flow is rolling forward or rolling back.", + "enum": [ + "CREATING", + "DONE", + "ROLLING_BACK", + "STATUS_UNSPECIFIED" + ], + "enumDescriptions": [ + "Rolling forward - creating VMs.", + "Done", + "Rolling back - cleaning up after an error.", + "" + ], + "type": "string" + }, + "targetVmCount": { + "description": "[Output Only] Count of VMs originally planned to be created.", + "format": "int32", + "type": "integer" + } + }, + "type": "object" + }, + "BulkSetLabelsRequest": { + "id": "BulkSetLabelsRequest", + "properties": { + "labelFingerprint": { + "description": "The fingerprint of the previous set of labels for this resource,\nused to detect conflicts. The fingerprint is initially generated by Compute\nEngine and changes after every request to modify or update labels. You may\noptionally provide an up-to-date fingerprint hash in order to update or\nchange labels. Make a get() request to the resource to get the\nlatest fingerprint.", + "format": "byte", + "type": "string" + }, + "labels": { + "additionalProperties": { + "type": "string" + }, + "description": "The labels to set for this resource.", + "type": "object" + } + }, + "type": "object" + }, + "BulkZoneSetLabelsRequest": { + "id": "BulkZoneSetLabelsRequest", + "properties": { + "requests": { + "items": { + "$ref": "BulkSetLabelsRequest" + }, + "type": "array" + } + }, + "type": "object" + }, + "BundledLocalSsds": { + "id": "BundledLocalSsds", + "properties": { + "defaultInterface": { + "description": "The default disk interface if the interface is not specified.", + "type": "string" + }, + "partitionCount": { + "description": "The number of partitions.", + "format": "int32", + "type": "integer" + } + }, + "type": "object" + }, + "CacheInvalidationRule": { + "id": "CacheInvalidationRule", + "properties": { + "cacheTags": { + "description": "A list of cache tags used to identify cached objects.\n\n \n - Cache tags are specified when the response is first cached, by setting\n the `Cache-Tag` response header at the origin.\n - Multiple cache tags in the same invalidation request are treated as\n Boolean `OR` - for example, `tag1 OR tag2 OR tag3`.\n - If other fields are also specified, these are treated as Boolean `AND`\n with any tags.\n\n\nUp to 10 tags can be specified in a single invalidation request.", + "items": { + "type": "string" + }, + "type": "array" + }, + "host": { + "description": "If set, this invalidation rule will only apply to requests with a Host\nheader matching host.", + "type": "string" + }, + "path": { + "type": "string" + } + }, + "type": "object" + }, + "CacheKeyPolicy": { + "description": "Message containing what to include in the cache key for a request for Cloud\nCDN.", + "id": "CacheKeyPolicy", + "properties": { + "includeHost": { + "description": "If true, requests to different hosts will be cached separately.", + "type": "boolean" + }, + "includeHttpHeaders": { + "description": "Allows HTTP request headers (by name) to be used in the cache key.", + "items": { + "type": "string" + }, + "type": "array" + }, + "includeNamedCookies": { + "description": "Allows HTTP cookies (by name) to be used in the cache key.\nThe name=value pair will be used in the cache key Cloud CDN generates.", + "items": { + "type": "string" + }, + "type": "array" + }, + "includeProtocol": { + "description": "If true, http and https requests will be cached separately.", + "type": "boolean" + }, + "includeQueryString": { + "description": "If true, include query string parameters in the cache key according to\nquery_string_whitelist and query_string_blacklist. If neither is set, the\nentire query string will be included. If false, the query string will be\nexcluded from the cache key entirely.", + "type": "boolean" + }, + "queryStringBlacklist": { + "description": "Names of query string parameters to exclude in cache keys. All other\nparameters will be included. Either specify query_string_whitelist or\nquery_string_blacklist, not both. '\u0026' and '=' will be percent encoded and\nnot treated as delimiters.", + "items": { + "type": "string" + }, + "type": "array" + }, + "queryStringWhitelist": { + "description": "Names of query string parameters to include in cache keys. All other\nparameters will be excluded. Either specify query_string_whitelist or\nquery_string_blacklist, not both. '\u0026' and '=' will be percent encoded and\nnot treated as delimiters.", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "CachePolicy": { + "description": "Message containing CachePolicy configuration for URL Map's Route Action.", + "id": "CachePolicy", + "properties": { + "cacheBypassRequestHeaderNames": { + "description": "Bypass the cache when the specified request headers are matched by name,\ne.g. Pragma or Authorization headers. Values are case-insensitive. Up to 5\nheader names can be specified. The cache is bypassed for all `cacheMode`\nvalues.", + "items": { + "type": "string" + }, + "type": "array" + }, + "cacheKeyPolicy": { + "$ref": "CachePolicyCacheKeyPolicy", + "description": "The cache key configuration. If not specified, the default behavior depends\non the backend type: for Backend Services, the complete request URI is\nused; for Backend Buckets, the request URI is used without the protocol or\nhost, and only query parameters known to Cloud Storage are included." + }, + "cacheMode": { + "description": "Specifies the cache setting for all responses from this route. If not\nspecified, Cloud CDN uses `CACHE_ALL_STATIC` mode.", + "enum": [ + "CACHE_ALL_STATIC", + "FORCE_CACHE_ALL", + "USE_ORIGIN_HEADERS" + ], + "enumDescriptions": [ + "Automatically cache static content, including common image formats,\nmedia (video and audio), and web assets (JavaScript and CSS).\nRequests and responses that are marked as uncacheable, as well as\ndynamic content (including HTML), will not be cached.", + "Cache all content, ignoring any \"private\", \"no-store\" or \"no-cache\"\ndirectives in Cache-Control response headers.\nWarning: this may result in Cloud CDN caching private,\nper-user (user identifiable) content.", + "Requires the origin to set valid caching headers to cache content.\nResponses without these headers will not be cached at the edge, and will\nrequire a full trip to the origin on every request, potentially impacting\nperformance and increasing load on the origin server." + ], + "type": "string" + }, + "clientTtl": { + "$ref": "Duration", + "description": "Specifies a separate client (e.g. browser client) maximum TTL for cached\ncontent. This is used to clamp the max-age (or Expires) value sent to the\nclient. With `FORCE_CACHE_ALL`, the lesser of `clientTtl` and `defaultTtl`\nis used for the response max-age directive, along with a \"public\"\ndirective. For cacheable content in `CACHE_ALL_STATIC` mode, `clientTtl`\nclamps the max-age from the origin (if specified), or else sets the\nresponse max-age directive to the lesser of the `clientTtl` and\n`defaultTtl`, and also ensures a \"public\" cache-control directive is\npresent. The maximum allowed value is 31,622,400s (1 year). If not\nspecified, Cloud CDN uses 3600s (1 hour) for `CACHE_ALL_STATIC` mode.\nCannot exceed `maxTtl`. Cannot be specified when `cacheMode` is\n`USE_ORIGIN_HEADERS`." + }, + "defaultTtl": { + "$ref": "Duration", + "description": "Specifies the default TTL for cached content for responses that do not have\nan existing valid TTL (max-age or s-maxage). Setting a TTL of \"0\" means\n\"always revalidate\". The value of `defaultTtl` cannot be set to a value\ngreater than that of `maxTtl`. When the `cacheMode` is set to\n`FORCE_CACHE_ALL`, the `defaultTtl` will overwrite the TTL set in all\nresponses. The maximum allowed value is 31,622,400s (1 year). Infrequently\naccessed objects may be evicted from the cache before the defined TTL. If\nnot specified, Cloud CDN uses 3600s (1 hour) for `CACHE_ALL_STATIC` and\n`FORCE_CACHE_ALL` modes. Cannot be specified when `cacheMode` is\n`USE_ORIGIN_HEADERS`." + }, + "maxTtl": { + "$ref": "Duration", + "description": "Specifies the maximum allowed TTL for cached content. Cache directives that\nattempt to set a max-age or s-maxage higher than this, or an Expires header\nmore than `maxTtl` seconds in the future will be capped at the value of\n`maxTtl`, as if it were the value of an s-maxage Cache-Control directive.\nHeaders sent to the client will not be modified. Setting a TTL of \"0\" means\n\"always revalidate\". The maximum allowed value is 31,622,400s (1 year).\nInfrequently accessed objects may be evicted from the cache before the\ndefined TTL. If not specified, Cloud CDN uses 86400s (1 day) for\n`CACHE_ALL_STATIC` mode. Can be specified only for `CACHE_ALL_STATIC` cache\nmode." + }, + "negativeCaching": { + "description": "Negative caching allows per-status code TTLs to be set, in order\nto apply fine-grained caching for common errors or redirects.\nThis can reduce the load on your origin and improve end-user\nexperience by reducing response latency.\nWhen the `cacheMode` is set to `CACHE_ALL_STATIC` or\n`USE_ORIGIN_HEADERS`, negative caching applies to responses with\nthe specified response code that lack any Cache-Control, Expires, or\nPragma: no-cache directives. When the `cacheMode` is set to\n`FORCE_CACHE_ALL`, negative caching applies to all responses\nwith the specified response code, and overrides any caching headers. By\ndefault, Cloud CDN applies the following TTLs to these HTTP status codes:\n\n* 300 (Multiple Choice), 301, 308 (Permanent Redirects): 10m\n* 404 (Not Found), 410 (Gone), 451 (Unavailable For Legal Reasons): 120s\n* 405 (Method Not Found), 501 (Not Implemented): 60s\n\nThese defaults can be overridden in `negativeCachingPolicy`.\nIf not specified, Cloud CDN applies negative caching by default.", + "type": "boolean" + }, + "negativeCachingPolicy": { + "description": "Sets a cache TTL for the specified HTTP status code.\n`negativeCaching` must be enabled to configure `negativeCachingPolicy`.\nOmitting the policy and leaving `negativeCaching` enabled will use Cloud\nCDN's default cache TTLs. Note that when specifying an explicit\n`negativeCachingPolicy`, you should take care to specify a cache TTL for\nall response codes that you wish to cache. Cloud CDN will not apply any\ndefault negative caching when a policy exists.", + "items": { + "$ref": "CachePolicyNegativeCachingPolicy" + }, + "type": "array" + }, + "requestCoalescing": { + "description": "If true then Cloud CDN will combine multiple concurrent cache fill\nrequests into a small number of requests to the origin. If not specified,\nCloud CDN applies request coalescing by default.", + "type": "boolean" + }, + "serveWhileStale": { + "$ref": "Duration", + "description": "Serve existing content from the cache (if available) when revalidating\ncontent with the origin, or when an error is encountered when refreshing\nthe cache.\nThis setting defines the default \"max-stale\" duration for any cached\nresponses that do not specify a max-stale directive. Stale responses that\nexceed the TTL configured here will not be served. The default limit\n(max-stale) is 86400s (1 day), which will allow stale content to be\nserved up to this limit beyond the max-age (or s-maxage) of a cached\nresponse.\nThe maximum allowed value is 604800 (1 week).\nSet this to zero (0) to disable serve-while-stale." + } + }, + "type": "object" + }, + "CachePolicyCacheKeyPolicy": { + "description": "Message containing what to include in the cache key for a request for Cache\nPolicy defined on Route Action.", + "id": "CachePolicyCacheKeyPolicy", + "properties": { + "excludedQueryParameters": { + "description": "Names of query string parameters to exclude in cache keys. All other\nparameters will be included. Either specify `excludedQueryParameters`\nor `includedQueryParameters`, not both. '\u0026' and '=' will be percent\nencoded and not treated as delimiters.\n\nNote: This field applies to routes that use backend services. Attempting\nto set it on a route that points exclusively to Backend Buckets will\nresult in a configuration error. For routes that point to a Backend\nBucket, use `includedQueryParameters` to define which parameters should\nbe part of the cache key.", + "items": { + "type": "string" + }, + "type": "array" + }, + "includeHost": { + "description": "If true, requests to different hosts will be cached separately.\n\nNote: This setting is only applicable to routes that use a Backend\nService. It does not affect requests served by a Backend Bucket, as the\nhost is never included in a Backend Bucket's cache key. Attempting to set\nit on a route that points exclusively to Backend Buckets will result in a\nconfiguration error.", + "type": "boolean" + }, + "includeProtocol": { + "description": "If true, http and https requests will be cached separately.\n\nNote: This setting is only applicable to routes that use a Backend\nService. It does not affect requests served by a Backend Bucket, as the\nprotocol is never included in a Backend Bucket's cache key. Attempting to\nset on a route that points exclusively to Backend Buckets will result in\na configuration error.", + "type": "boolean" + }, + "includeQueryString": { + "description": "If true, include query string parameters in the cache key according to\n`includedQueryParameters` and `excludedQueryParameters`. If neither\nis set, the entire query string will be included. If false, the query\nstring will be excluded from the cache key entirely.\n\nNote: This field applies to routes that use backend services. Attempting\nto set it on a route that points exclusively to Backend Buckets will\nresult in a configuration error. For routes that point to a Backend\nBucket, use `includedQueryParameters` to define which parameters should\nbe part of the cache key.", + "type": "boolean" + }, + "includedCookieNames": { + "description": "Allows HTTP cookies (by name) to be used in the cache key.\nThe name=value pair will be used in the cache key Cloud CDN generates.\n\nNote: This setting is only applicable to routes that use a Backend\nService. It does not affect requests served by a Backend Bucket.\nAttempting to set it on a route that points exclusively to Backend\nBuckets will result in a configuration error. Up to 5 cookie names can be\nspecified.", + "items": { + "type": "string" + }, + "type": "array" + }, + "includedHeaderNames": { + "description": "Allows HTTP request headers (by name) to be used in the cache key.", + "items": { + "type": "string" + }, + "type": "array" + }, + "includedQueryParameters": { + "description": "Names of query string parameters to include in cache keys. All other\nparameters will be excluded. Either specify `includedQueryParameters`\nor `excludedQueryParameters`, not both. '\u0026' and '=' will be percent\nencoded and not treated as delimiters.", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "CachePolicyNegativeCachingPolicy": { + "description": "Specify CDN TTLs for response error codes.", + "id": "CachePolicyNegativeCachingPolicy", + "properties": { + "code": { + "description": "The HTTP status code to define a TTL against. Only HTTP status codes\n300, 301, 302, 307, 308, 404, 405, 410, 421, 451 and 501 can be\nspecified as values, and you cannot specify a status code more than\nonce.", + "format": "int32", + "type": "integer" + }, + "ttl": { + "$ref": "Duration", + "description": "The TTL (in seconds) for which to cache responses with the\ncorresponding status code.\nThe maximum allowed value is 1800s (30 minutes). Infrequently accessed\nobjects may be evicted from the cache before the defined TTL." + } + }, + "type": "object" + }, + "CalendarModeAdviceRequest": { + "description": "A request to recommend the best way to consume the specified resources in the\nfuture.", + "id": "CalendarModeAdviceRequest", + "properties": { + "futureResourcesSpecs": { + "additionalProperties": { + "$ref": "FutureResourcesSpec" + }, + "description": "Specification of resources to create in the future.\nThe key of the map is an arbitrary string specified by the caller.\nValue of the map is a specification of required resources and their\nconstraints. Currently only one value is allowed in this map.", + "type": "object" + } + }, + "type": "object" + }, + "CalendarModeAdviceResponse": { + "description": "A response containing the recommended way of creating the specified resources\nin the future. It contains (will contain) multiple recommendations that can\nbe analyzed by the customer and the best one can be picked.", + "id": "CalendarModeAdviceResponse", + "properties": { + "recommendations": { + "description": "Recommendations where, how and when to create the requested resources\nin order to maximize their obtainability and minimize cost.", + "items": { + "$ref": "CalendarModeRecommendation" + }, + "type": "array" + } + }, + "type": "object" + }, + "CalendarModeRecommendation": { + "description": "A single recommendation to create requested resources. Contains detailed\nrecommendations for every future resources specification specified in\nCalendarModeAdviceRequest.", + "id": "CalendarModeRecommendation", + "properties": { + "recommendationsPerSpec": { + "additionalProperties": { + "$ref": "FutureResourcesRecommendation" + }, + "description": "Recommendations for every future resource specification passed in\nCalendarModeAdviceRequest. Keys of the map correspond to keys\nspecified in the request.", + "type": "object" + } + }, + "type": "object" + }, + "CircuitBreakers": { + "description": "Settings controlling the volume of requests, connections and retries to this\nbackend service.", + "id": "CircuitBreakers", + "properties": { + "maxConnections": { + "description": "The maximum number of connections to the backend service. If not specified,\nthere is no limit.\n\nNot supported when the backend service is referenced by a URL map that is\nbound to target gRPC proxy that has validateForProxyless field set to true.", + "format": "int32", + "type": "integer" + }, + "maxPendingRequests": { + "description": "The maximum number of pending requests allowed to the backend service. If\nnot specified, there is no limit.\n\nNot supported when the backend service is referenced by a URL map that is\nbound to target gRPC proxy that has validateForProxyless field set to true.", + "format": "int32", + "type": "integer" + }, + "maxRequests": { + "description": "The maximum number of parallel requests that allowed to the backend\nservice. If not specified, there is no limit.", + "format": "int32", + "type": "integer" + }, + "maxRequestsPerConnection": { + "description": "Maximum requests for a single connection to the backend service.\nThis parameter is respected by both the HTTP/1.1 and HTTP/2\nimplementations. If not specified, there is no limit. Setting this\nparameter to 1 will effectively disable keep alive.\n\nNot supported when the backend service is referenced by a URL map that is\nbound to target gRPC proxy that has validateForProxyless field set to true.", + "format": "int32", + "type": "integer" + }, + "maxRetries": { + "description": "The maximum number of parallel retries allowed to the backend cluster. If\nnot specified, the default is 1.\n\nNot supported when the backend service is referenced by a URL map that is\nbound to target gRPC proxy that has validateForProxyless field set to true.", + "format": "int32", + "type": "integer" + } + }, + "type": "object" + }, + "Commitment": { + "description": "Represents a regional resource-based commitment resource.\n\nCreating this commitment resource means that you are purchasing a\nresource-based committed use contract, with an explicit start and end time.\nYou can purchase resource-based commitments for both hardware and software\nresources. For more information, read\nResource-based committed use discounts", + "id": "Commitment", + "properties": { + "autoRenew": { + "description": "Specifies whether to automatically renew the commitment at the end of its\ncurrent term. The default value is false. If you set the field\nto true, each time your commitment reaches the end of its\nterm, Compute Engine automatically renews it for another term. You can\nupdate this field anytime before the commitment expires. For example, if\nthe commitment is set to expire at 12 AM UTC-8 on January 3, 2027, you can\nupdate this field until 11:59 PM UTC-8 on January 2, 2027.", + "type": "boolean" + }, + "category": { + "description": "The category of the commitment; specifies whether the commitment is for\nhardware or software resources. Category MACHINE specifies\nthat you are committing to hardware machine resources such asVCPU or MEMORY, listed in resources.\nCategory LICENSE specifies that you are committing to software\nlicenses, listed in licenseResources.\nNote that if you specify MACHINE commitments, then you must\nalso specify a type to indicate the machine series of the\nhardware resource that you are committing to.", + "enum": [ + "CATEGORY_UNSPECIFIED", + "LICENSE", + "MACHINE" + ], + "enumDescriptions": [ + "", + "", + "" + ], + "type": "string" + }, + "creationTimestamp": { + "description": "Output only. [Output Only] Creation timestamp inRFC3339\ntext format.", + "readOnly": true, + "type": "string" + }, + "customEndTimestamp": { + "description": "[Input Only] Optional, specifies the requested commitment end time inRFC3339 text format. Use this option when the desired\ncommitment's end date is later than the start date + term duration.", + "type": "string" + }, + "description": { + "description": "An optional description of the commitment. You can provide this property\nwhen you create the resource.", + "type": "string" + }, + "endTimestamp": { + "description": "Output only. [Output Only] Commitment end time inRFC3339\ntext format.", + "readOnly": true, + "type": "string" + }, + "existingReservations": { + "items": { + "type": "string" + }, + "type": "array" + }, + "id": { + "description": "Output only. [Output Only] The unique identifier for the resource. This identifier is\ndefined by the server.", + "format": "uint64", + "readOnly": true, + "type": "string" + }, + "kind": { + "default": "compute#commitment", + "description": "Output only. [Output Only] Type of the resource. Always compute#commitment\nfor commitments.", + "readOnly": true, + "type": "string" + }, + "licenseResource": { + "$ref": "LicenseResourceCommitment", + "description": "The license specification required as part of a license commitment." + }, + "mergeSourceCommitments": { + "description": "The list of source commitments that you are merging to create the new\nmerged commitment. For more information, see\nMerging commitments.", + "items": { + "type": "string" + }, + "type": "array" + }, + "name": { + "description": "Name of the commitment. You must specify a name when you purchase the\ncommitment. The name must be 1-63 characters long, and comply withRFC1035.\nSpecifically, the name must be 1-63 characters long and match the regular\nexpression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first\ncharacter must be a lowercase letter, and all following characters must\nbe a dash, lowercase letter, or digit, except the last character, which\ncannot be a dash.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "type": "string" + }, + "params": { + "$ref": "CommitmentParams", + "description": "Input only. Additional params passed with the request, but not persisted\nas part of resource payload." + }, + "plan": { + "description": "The minimum time duration that you commit to purchasing resources.\nThe plan that you choose determines the preset term length of the\ncommitment (which is 1 year or 3 years) and affects the discount rate that\nyou receive for your resources. Committing to a longer time duration\ntypically gives you a higher discount rate. The supported values for this\nfield are TWELVE_MONTH (1 year), andTHIRTY_SIX_MONTH (3 years).", + "enum": [ + "INVALID", + "THIRTY_SIX_MONTH", + "TWELVE_MONTH" + ], + "enumDescriptions": [ + "", + "", + "" + ], + "type": "string" + }, + "region": { + "description": "Output only. [Output Only] URL of the region where the commitment and committed\nresources are located.", + "readOnly": true, + "type": "string" + }, + "reservations": { + "description": "The list of new reservations that you want to create and attach to this\ncommitment.\n\nYou must attach reservations to your commitment if your commitment\nspecifies any GPUs or Local SSD disks. For more information, see \nAttach reservations to resource-based commitments.\n\nSpecify this property only if you want to create new\nreservations to attach. To attach existing reservations, specify theexistingReservations property instead.", + "items": { + "$ref": "Reservation" + }, + "type": "array" + }, + "resourceStatus": { + "$ref": "CommitmentResourceStatus", + "description": "Output only. [Output Only] Status information for Commitment resource.", + "readOnly": true + }, + "resources": { + "description": "The list of all the hardware resources, with their types and amounts, that\nyou want to commit to. Specify as a separate entry in the list for each\nindividual resource type.", + "items": { + "$ref": "ResourceCommitment" + }, + "type": "array" + }, + "selfLink": { + "description": "Output only. [Output Only] Server-defined URL for the resource.", + "readOnly": true, + "type": "string" + }, + "splitSourceCommitment": { + "description": "The source commitment from which you are transferring resources to create\nthe new split commitment. For more information, see \nSplit commitments.", + "type": "string" + }, + "startTimestamp": { + "description": "Output only. [Output Only] Commitment start time inRFC3339\ntext format.", + "readOnly": true, + "type": "string" + }, + "status": { + "description": "Output only. [Output Only] Status of the commitment with regards to eventual expiration\n(each commitment has an end date defined). Status can be one of the\nfollowing values: NOT_YET_ACTIVE, ACTIVE, orEXPIRED.", + "enum": [ + "ACTIVE", + "CANCELLED", + "CREATING", + "EXPIRED", + "NOT_YET_ACTIVE" + ], + "enumDescriptions": [ + "", + "Deprecate CANCELED status. Will use separate status to differentiate\ncancel by mergeCud or manual cancellation.", + "", + "", + "" + ], + "readOnly": true, + "type": "string" + }, + "statusMessage": { + "description": "Output only. [Output Only] An optional, human-readable explanation of the status.", + "readOnly": true, + "type": "string" + }, + "type": { + "description": "The type of commitment; specifies the\nmachine series for which you want to commit to purchasing resources.\nThe choice of machine series affects the discount rate and the eligible\nresource types.\n\n The type must be one of the following:ACCELERATOR_OPTIMIZED, ACCELERATOR_OPTIMIZED_A3,ACCELERATOR_OPTIMIZED_A3_MEGA,COMPUTE_OPTIMIZED, COMPUTE_OPTIMIZED_C2D,\n COMPUTE_OPTIMIZED_C3, COMPUTE_OPTIMIZED_C3D,COMPUTE_OPTIMIZED_H3, GENERAL_PURPOSE,GENERAL_PURPOSE_C4, GENERAL_PURPOSE_E2,GENERAL_PURPOSE_N2, GENERAL_PURPOSE_N2D,GENERAL_PURPOSE_N4, GENERAL_PURPOSE_T2D,GRAPHICS_OPTIMIZED, GRAPHICS_OPTIMIZED_G4,GRAPHICS_OPTIMIZED_G4_VGPU,MEMORY_OPTIMIZED, MEMORY_OPTIMIZED_M3,MEMORY_OPTIMIZED_X4, STORAGE_OPTIMIZED_Z3. For\nexample, type MEMORY_OPTIMIZED specifies a commitment that\napplies only to eligible resources of memory optimized M1 and M2 machine\nseries. Type GENERAL_PURPOSE specifies a commitment that\napplies only to eligible resources of general purpose N1 machine series.", + "enum": [ + "ACCELERATOR_OPTIMIZED", + "ACCELERATOR_OPTIMIZED_A3", + "ACCELERATOR_OPTIMIZED_A3_MEGA", + "ACCELERATOR_OPTIMIZED_A3_ULTRA", + "ACCELERATOR_OPTIMIZED_A4", + "COMPUTE_OPTIMIZED", + "COMPUTE_OPTIMIZED_C2D", + "COMPUTE_OPTIMIZED_C3", + "COMPUTE_OPTIMIZED_C3D", + "COMPUTE_OPTIMIZED_H3", + "COMPUTE_OPTIMIZED_H4D", + "GENERAL_PURPOSE", + "GENERAL_PURPOSE_C4", + "GENERAL_PURPOSE_C4A", + "GENERAL_PURPOSE_C4D", + "GENERAL_PURPOSE_E2", + "GENERAL_PURPOSE_N2", + "GENERAL_PURPOSE_N2D", + "GENERAL_PURPOSE_N4", + "GENERAL_PURPOSE_N4A", + "GENERAL_PURPOSE_N4D", + "GENERAL_PURPOSE_T2D", + "GRAPHICS_OPTIMIZED", + "GRAPHICS_OPTIMIZED_G4", + "GRAPHICS_OPTIMIZED_G4_VGPU", + "MEMORY_OPTIMIZED", + "MEMORY_OPTIMIZED_M3", + "MEMORY_OPTIMIZED_M4", + "MEMORY_OPTIMIZED_M4_6TB", + "MEMORY_OPTIMIZED_X4_1440_24T", + "MEMORY_OPTIMIZED_X4_16TB", + "MEMORY_OPTIMIZED_X4_1920_32T", + "MEMORY_OPTIMIZED_X4_24TB", + "MEMORY_OPTIMIZED_X4_32TB", + "MEMORY_OPTIMIZED_X4_480_6T", + "MEMORY_OPTIMIZED_X4_480_8T", + "MEMORY_OPTIMIZED_X4_960_12T", + "MEMORY_OPTIMIZED_X4_960_16T", + "STORAGE_OPTIMIZED_Z3", + "TYPE_UNSPECIFIED" + ], + "enumDescriptions": [ + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "CUD bucket for X4 machine with 1440 vCPUs and 24TB of memory.", + "", + "CUD bucket for X4 machine with 1920 vCPUs and 32TB of memory.", + "", + "", + "CUD bucket for X4 machine with 480 vCPUs and 6TB of memory.", + "CUD bucket for X4 machine with 480 vCPUs and 8TB of memory.", + "CUD bucket for X4 machine with 960 vCPUs and 12TB of memory.", + "CUD bucket for X4 machine with 960 vCPUs and 16TB of memory.", + "", + "Note for internal users: When adding a new enum Type for v1, make sure\nto also add it in the comment for the `optional Type type` definition.\nThis ensures that the public documentation displays the new enum Type." + ], + "type": "string" + } + }, + "type": "object" + }, + "CommitmentAggregatedList": { + "id": "CommitmentAggregatedList", + "properties": { + "id": { + "description": "[Output Only] Unique identifier for the resource; defined by the server.", + "type": "string" + }, + "items": { + "additionalProperties": { + "$ref": "CommitmentsScopedList", + "description": "[Output Only] Name of the scope containing this set of commitments." + }, + "description": "A list of CommitmentsScopedList resources.", + "type": "object" + }, + "kind": { + "default": "compute#commitmentAggregatedList", + "description": "Output only. [Output Only] Type of resource. Alwayscompute#commitmentAggregatedList for aggregated lists of\ncommitments.", + "readOnly": true, + "type": "string" + }, + "nextPageToken": { + "description": "[Output Only] This token allows you to get the next page of results for\nlist requests. If the number of results is larger thanmaxResults, use the nextPageToken as a value for\nthe query parameter pageToken in the next list request.\nSubsequent list requests will have their own nextPageToken to\ncontinue paging through the results.", + "type": "string" + }, + "selfLink": { + "description": "Output only. [Output Only] Server-defined URL for this resource.", + "readOnly": true, + "type": "string" + }, + "unreachables": { + "description": "Output only. [Output Only] Unreachable resources.", + "items": { + "type": "string" + }, + "readOnly": true, + "type": "array" + }, + "warning": { + "description": "[Output Only] Informational warning message.", + "properties": { + "code": { + "description": "[Output Only] A warning code, if applicable. For example, Compute\nEngine returns NO_RESULTS_ON_PAGE if there\nare 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", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", + "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "PARTIAL_SUCCESS", + "QUOTA_INFO_UNAVAILABLE", + "REQUIRED_TOS_AGREEMENT", + "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", + "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", + "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", + "UNREACHABLE" + ], + "enumDeprecated": [ + false, + false, + false, + false, + false, + false, + true, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false + ], + "enumDescriptions": [ + "Warning about failed cleanup of transient changes made by a failed\noperation.", + "A link to a deprecated resource was created.", + "When deploying and at least one of the resources has a type marked as\ndeprecated", + "The user created a boot disk that is larger than image size.", + "When deploying and at least one of the resources has a type marked as\nexperimental", + "Warning that is present in an external api call", + "Warning that value of a field has been overridden.\nDeprecated unused field.", + "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is\nnot of type HTTP/HTTPS/HTTP2.", + "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed\nwhich captures the amount of resources filtered out by\nuser-defined list filter.", + "A resource depends on a missing type", + "The route's nextHopIp address is not assigned to an instance on the\nnetwork.", + "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an\nipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not exist.", + "The route's nextHopInstance URL refers to an instance that is not on the\nsame network as the route.", + "The route's next hop instance does not have a status of RUNNING.", + "Error which is not critical. We decided to continue the process despite\nthe mentioned error.", + "No results are present on a particular list page.", + "Success is reported, but some results may be missing due to errors", + "Quota information is not available to client requests (e.g:\nregions.list).", + "The user attempted to use a resource that requires a TOS they have not\naccepted.", + "Warning that a resource is in use.", + "One or more of the resources set to auto-delete could not be deleted\nbecause they were in use.", + "When a resource schema validation is ignored.", + "Instance template used in instance group manager is valid as such, but\nits application does not make a lot of sense, because it allows only\nsingle instance in instance group.", + "When undeclared properties in the schema are present", + "A given scope cannot be reached." + ], + "type": "string" + }, + "data": { + "description": "[Output Only] Metadata about this warning in key:\nvalue format. For example:\n\n\"data\": [\n {\n \"key\": \"scope\",\n \"value\": \"zones/us-east1-d\"\n }", + "items": { + "properties": { + "key": { + "description": "[Output Only] A key that provides more detail on the warning being\nreturned. For example, for warnings where there are no results in a list\nrequest for a particular zone, this key might be scope and\nthe key value might be the zone name. Other examples might be a key\nindicating a deprecated resource and a suggested replacement, or a\nwarning about invalid network settings (for example, if an instance\nattempts 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" + }, + "CommitmentList": { + "description": "Contains a list of Commitment resources.", + "id": "CommitmentList", + "properties": { + "id": { + "description": "[Output Only] Unique identifier for the resource; defined by the server.", + "type": "string" + }, + "items": { + "description": "A list of Commitment resources.", + "items": { + "$ref": "Commitment" + }, + "type": "array" + }, + "kind": { + "default": "compute#commitmentList", + "description": "Output only. [Output Only] Type of resource. Always compute#commitmentList\nfor lists of commitments.", + "readOnly": true, + "type": "string" + }, + "nextPageToken": { + "description": "[Output Only] This token allows you to get the next page of results for\nlist requests. If the number of results is larger thanmaxResults, use the nextPageToken as a value for\nthe query parameter pageToken in the next list request.\nSubsequent list requests will have their own nextPageToken to\ncontinue paging through the results.", + "type": "string" + }, + "selfLink": { + "description": "Output only. [Output Only] Server-defined URL for this resource.", + "readOnly": true, + "type": "string" + }, + "warning": { + "description": "[Output Only] Informational warning message.", + "properties": { + "code": { + "description": "[Output Only] A warning code, if applicable. For example, Compute\nEngine returns NO_RESULTS_ON_PAGE if there\nare 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", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", + "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "PARTIAL_SUCCESS", + "QUOTA_INFO_UNAVAILABLE", + "REQUIRED_TOS_AGREEMENT", + "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", + "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", + "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", + "UNREACHABLE" + ], + "enumDeprecated": [ + false, + false, + false, + false, + false, + false, + true, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false + ], + "enumDescriptions": [ + "Warning about failed cleanup of transient changes made by a failed\noperation.", + "A link to a deprecated resource was created.", + "When deploying and at least one of the resources has a type marked as\ndeprecated", + "The user created a boot disk that is larger than image size.", + "When deploying and at least one of the resources has a type marked as\nexperimental", + "Warning that is present in an external api call", + "Warning that value of a field has been overridden.\nDeprecated unused field.", + "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is\nnot of type HTTP/HTTPS/HTTP2.", + "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed\nwhich captures the amount of resources filtered out by\nuser-defined list filter.", + "A resource depends on a missing type", + "The route's nextHopIp address is not assigned to an instance on the\nnetwork.", + "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an\nipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not exist.", + "The route's nextHopInstance URL refers to an instance that is not on the\nsame network as the route.", + "The route's next hop instance does not have a status of RUNNING.", + "Error which is not critical. We decided to continue the process despite\nthe mentioned error.", + "No results are present on a particular list page.", + "Success is reported, but some results may be missing due to errors", + "Quota information is not available to client requests (e.g:\nregions.list).", + "The user attempted to use a resource that requires a TOS they have not\naccepted.", + "Warning that a resource is in use.", + "One or more of the resources set to auto-delete could not be deleted\nbecause they were in use.", + "When a resource schema validation is ignored.", + "Instance template used in instance group manager is valid as such, but\nits application does not make a lot of sense, because it allows only\nsingle instance in instance group.", + "When undeclared properties in the schema are present", + "A given scope cannot be reached." + ], + "type": "string" + }, + "data": { + "description": "[Output Only] Metadata about this warning in key:\nvalue format. For example:\n\n\"data\": [\n {\n \"key\": \"scope\",\n \"value\": \"zones/us-east1-d\"\n }", + "items": { + "properties": { + "key": { + "description": "[Output Only] A key that provides more detail on the warning being\nreturned. For example, for warnings where there are no results in a list\nrequest for a particular zone, this key might be scope and\nthe key value might be the zone name. Other examples might be a key\nindicating a deprecated resource and a suggested replacement, or a\nwarning about invalid network settings (for example, if an instance\nattempts 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" + }, + "CommitmentParams": { + "description": "Additional commitment params.", + "id": "CommitmentParams", + "properties": { + "resourceManagerTags": { + "additionalProperties": { + "type": "string" + }, + "description": "Input only. Resource manager tags to be bound to the commitment. Tag keys and\nvalues have the same definition as resource\nmanager tags. Keys and values can be either in numeric format,\nsuch as `tagKeys/{tag_key_id}` and `tagValues/{tag_value_id}` or in\nnamespaced format such as `{org_id|project_id}/{tag_key_short_name}` and\n`{tag_value_short_name}`. The field is ignored (both PUT \u0026\nPATCH) when empty.", + "type": "object" + } + }, + "type": "object" + }, + "CommitmentResourceStatus": { + "description": "[Output Only] Contains output only fields.", + "id": "CommitmentResourceStatus", + "properties": { + "customTermEligibilityEndTimestamp": { + "description": "Output only. [Output Only] Indicates the end time of customer's eligibility to send\ncustom term requests in RFC3339 text format. Term extension requests that\n(not the end time in the request) after this time will be rejected.", + "readOnly": true, + "type": "string" + } + }, + "type": "object" + }, + "CommitmentsScopedList": { + "id": "CommitmentsScopedList", + "properties": { + "commitments": { + "description": "[Output Only] The list of commitments contained in this scope.", + "items": { + "$ref": "Commitment" + }, + "type": "array" + }, + "warning": { + "description": "[Output Only] Informational warning which replaces the list of commitments\nwhen the list is empty.", + "properties": { + "code": { + "description": "[Output Only] A warning code, if applicable. For example, Compute\nEngine returns NO_RESULTS_ON_PAGE if there\nare 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", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", + "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "PARTIAL_SUCCESS", + "QUOTA_INFO_UNAVAILABLE", + "REQUIRED_TOS_AGREEMENT", + "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", + "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", + "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", + "UNREACHABLE" + ], + "enumDeprecated": [ + false, + false, + false, + false, + false, + false, + true, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false + ], + "enumDescriptions": [ + "Warning about failed cleanup of transient changes made by a failed\noperation.", + "A link to a deprecated resource was created.", + "When deploying and at least one of the resources has a type marked as\ndeprecated", + "The user created a boot disk that is larger than image size.", + "When deploying and at least one of the resources has a type marked as\nexperimental", + "Warning that is present in an external api call", + "Warning that value of a field has been overridden.\nDeprecated unused field.", + "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is\nnot of type HTTP/HTTPS/HTTP2.", + "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed\nwhich captures the amount of resources filtered out by\nuser-defined list filter.", + "A resource depends on a missing type", + "The route's nextHopIp address is not assigned to an instance on the\nnetwork.", + "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an\nipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not exist.", + "The route's nextHopInstance URL refers to an instance that is not on the\nsame network as the route.", + "The route's next hop instance does not have a status of RUNNING.", + "Error which is not critical. We decided to continue the process despite\nthe mentioned error.", + "No results are present on a particular list page.", + "Success is reported, but some results may be missing due to errors", + "Quota information is not available to client requests (e.g:\nregions.list).", + "The user attempted to use a resource that requires a TOS they have not\naccepted.", + "Warning that a resource is in use.", + "One or more of the resources set to auto-delete could not be deleted\nbecause they were in use.", + "When a resource schema validation is ignored.", + "Instance template used in instance group manager is valid as such, but\nits application does not make a lot of sense, because it allows only\nsingle instance in instance group.", + "When undeclared properties in the schema are present", + "A given scope cannot be reached." + ], + "type": "string" + }, + "data": { + "description": "[Output Only] Metadata about this warning in key:\nvalue format. For example:\n\n\"data\": [\n {\n \"key\": \"scope\",\n \"value\": \"zones/us-east1-d\"\n }", + "items": { + "properties": { + "key": { + "description": "[Output Only] A key that provides more detail on the warning being\nreturned. For example, for warnings where there are no results in a list\nrequest for a particular zone, this key might be scope and\nthe key value might be the zone name. Other examples might be a key\nindicating a deprecated resource and a suggested replacement, or a\nwarning about invalid network settings (for example, if an instance\nattempts 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" + }, + "CompositeHealthCheck": { + "description": "Represents a composite health check.\n\nA composite health check resource specifies the health source resources and\nthe health destination resource to which the aggregated health result from\nthe health source resources is delivered.", + "id": "CompositeHealthCheck", + "properties": { + "creationTimestamp": { + "description": "Output only. [Output Only] Creation timestamp inRFC3339\ntext format.", + "readOnly": true, + "type": "string" + }, + "description": { + "description": "An optional description of this resource. Provide this property when you\ncreate the resource.", + "type": "string" + }, + "fingerprint": { + "description": "Fingerprint of this resource. A hash of the contents stored in this object.\nThis field is used in optimistic locking. This field will be ignored when\ninserting a CompositeHealthCheck. An up-to-date fingerprint\nmust be provided in order to patch the CompositeHealthCheck; Otherwise,\nthe request will fail with error 412 conditionNotMet. To see\nthe latest fingerprint, make a get() request to retrieve the\nCompositeHealthCheck.", + "format": "byte", + "type": "string" + }, + "healthDestination": { + "description": "URL to the destination resource. Must be set. Must be aForwardingRule. The ForwardingRule must have\nload balancing scheme INTERNAL orINTERNAL_MANAGED and must be regional and in the same region\nas the CompositeHealthCheck (cross-region deployment forINTERNAL_MANAGED is not supported). Can be mutated.", + "type": "string" + }, + "healthSources": { + "description": "URLs to the HealthSource resources whose results are AND'ed.\nI.e. he aggregated result is is HEALTHY only if all sources\nare HEALTHY. Must have at least 1. Must not have more than 10.\nMust be regional and in the same region as theCompositeHealthCheck. Can be mutated.", + "items": { + "type": "string" + }, + "type": "array" + }, + "id": { + "description": "Output only. [Output Only] A unique identifier for this resource type. The server\ngenerates this identifier.", + "format": "uint64", + "readOnly": true, + "type": "string" + }, + "kind": { + "default": "compute#compositeHealthCheck", + "description": "Output only. [Output Only] Type of the resource. Alwayscompute#compositeHealthCheck for composite health checks.", + "readOnly": true, + "type": "string" + }, + "name": { + "description": "Name of the resource. Provided by the client when the resource is created.\nThe name must be 1-63 characters long, and comply withRFC1035.\nSpecifically, the name must be 1-63 characters long and match the regular\nexpression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first\ncharacter must be a lowercase letter, and all following characters must\nbe a dash, lowercase letter, or digit, except the last character, which\ncannot be a dash.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "type": "string" + }, + "region": { + "description": "Output only. [Output Only] URL of the region where the composite health check resides.\nThis field applies only to the regional resource. You must specify this\nfield as part of the HTTP request URL. It is not settable as a field in\nthe request body.", + "readOnly": true, + "type": "string" + }, + "selfLink": { + "description": "Output only. [Output Only] Server-defined URL for the resource.", + "readOnly": true, + "type": "string" + }, + "selfLinkWithId": { + "description": "Output only. [Output Only] Server-defined URL with id for the resource.", + "readOnly": true, + "type": "string" + } + }, + "type": "object" + }, + "CompositeHealthCheckAggregatedList": { + "description": "Contains a list of CompositeHealthChecksScopedList.", + "id": "CompositeHealthCheckAggregatedList", + "properties": { + "id": { + "description": "[Output Only] Unique identifier for the resource; defined by the server.", + "type": "string" + }, + "items": { + "additionalProperties": { + "$ref": "CompositeHealthChecksScopedList", + "description": "Name of the scope containing this set of CompositeHealthChecks." + }, + "description": "A list of CompositeHealthChecksScopedList resources.", + "type": "object" + }, + "kind": { + "default": "compute#compositeHealthCheckAggregatedList", + "description": "Output only. Type of resource.", + "readOnly": true, + "type": "string" + }, + "nextPageToken": { + "description": "[Output Only] This token allows you to get the next page of results for\nlist requests. If the number of results is larger thanmaxResults, use the nextPageToken as a value for\nthe query parameter pageToken in the next list request.\nSubsequent list requests will have their own nextPageToken to\ncontinue paging through the results.", + "type": "string" + }, + "selfLink": { + "description": "Output only. [Output Only] Server-defined URL for this resource.", + "readOnly": true, + "type": "string" + }, + "unreachables": { + "description": "Output only. [Output Only] Unreachable resources.", + "items": { + "type": "string" + }, + "readOnly": true, + "type": "array" + }, + "warning": { + "description": "[Output Only] Informational warning message.", + "properties": { + "code": { + "description": "[Output Only] A warning code, if applicable. For example, Compute\nEngine returns NO_RESULTS_ON_PAGE if there\nare 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", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", + "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "PARTIAL_SUCCESS", + "QUOTA_INFO_UNAVAILABLE", + "REQUIRED_TOS_AGREEMENT", + "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", + "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", + "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", + "UNREACHABLE" + ], + "enumDeprecated": [ + false, + false, + false, + false, + false, + false, + true, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false + ], + "enumDescriptions": [ + "Warning about failed cleanup of transient changes made by a failed\noperation.", + "A link to a deprecated resource was created.", + "When deploying and at least one of the resources has a type marked as\ndeprecated", + "The user created a boot disk that is larger than image size.", + "When deploying and at least one of the resources has a type marked as\nexperimental", + "Warning that is present in an external api call", + "Warning that value of a field has been overridden.\nDeprecated unused field.", + "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is\nnot of type HTTP/HTTPS/HTTP2.", + "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed\nwhich captures the amount of resources filtered out by\nuser-defined list filter.", + "A resource depends on a missing type", + "The route's nextHopIp address is not assigned to an instance on the\nnetwork.", + "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an\nipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not exist.", + "The route's nextHopInstance URL refers to an instance that is not on the\nsame network as the route.", + "The route's next hop instance does not have a status of RUNNING.", + "Error which is not critical. We decided to continue the process despite\nthe mentioned error.", + "No results are present on a particular list page.", + "Success is reported, but some results may be missing due to errors", + "Quota information is not available to client requests (e.g:\nregions.list).", + "The user attempted to use a resource that requires a TOS they have not\naccepted.", + "Warning that a resource is in use.", + "One or more of the resources set to auto-delete could not be deleted\nbecause they were in use.", + "When a resource schema validation is ignored.", + "Instance template used in instance group manager is valid as such, but\nits application does not make a lot of sense, because it allows only\nsingle instance in instance group.", + "When undeclared properties in the schema are present", + "A given scope cannot be reached." + ], + "type": "string" + }, + "data": { + "description": "[Output Only] Metadata about this warning in key:\nvalue format. For example:\n\n\"data\": [\n {\n \"key\": \"scope\",\n \"value\": \"zones/us-east1-d\"\n }", + "items": { + "properties": { + "key": { + "description": "[Output Only] A key that provides more detail on the warning being\nreturned. For example, for warnings where there are no results in a list\nrequest for a particular zone, this key might be scope and\nthe key value might be the zone name. Other examples might be a key\nindicating a deprecated resource and a suggested replacement, or a\nwarning about invalid network settings (for example, if an instance\nattempts 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" + }, + "CompositeHealthCheckHealth": { + "description": "Response message for RegionCompositeHealthChecks.GetHealth", + "id": "CompositeHealthCheckHealth", + "properties": { + "healthSources": { + "description": "Health sources and their corresponding health states.", + "items": { + "$ref": "CompositeHealthChecksGetHealthResponseHealthSourceHealth" + }, + "type": "array" + }, + "healthState": { + "description": "Health state of the CompositeHealthCheck.", + "enum": [ + "HEALTHY", + "UNHEALTHY", + "UNKNOWN" + ], + "enumDescriptions": [ + "", + "", + "" + ], + "type": "string" + }, + "kind": { + "default": "compute#compositeHealthCheckHealth", + "description": "Output only. [Output Only] Type of resource. Alwayscompute#compositeHealthCheckHealth for the health of\ncomposite health checks.", + "readOnly": true, + "type": "string" + } + }, + "type": "object" + }, + "CompositeHealthCheckList": { + "id": "CompositeHealthCheckList", + "properties": { + "id": { + "description": "[Output Only] Unique identifier for the resource; defined by the server.", + "type": "string" + }, + "items": { + "description": "A list of CompositeHealthCheck resources.", + "items": { + "$ref": "CompositeHealthCheck" + }, + "type": "array" + }, + "kind": { + "default": "compute#compositeHealthCheckList", + "description": "Output only. [Output Only] Type of the resource. Alwayscompute#compositeHealthCheck for composite health checks.", + "readOnly": true, + "type": "string" + }, + "nextPageToken": { + "description": "[Output Only] This token allows you to get the next page of results for\nlist requests. If the number of results is larger thanmaxResults, use the nextPageToken as a value for\nthe query parameter pageToken in the next list request.\nSubsequent list requests will have their own nextPageToken to\ncontinue paging through the results.", + "type": "string" + }, + "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\nEngine returns NO_RESULTS_ON_PAGE if there\nare 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", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", + "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "PARTIAL_SUCCESS", + "QUOTA_INFO_UNAVAILABLE", + "REQUIRED_TOS_AGREEMENT", + "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", + "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", + "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", + "UNREACHABLE" + ], + "enumDeprecated": [ + false, + false, + false, + false, + false, + false, + true, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false + ], + "enumDescriptions": [ + "Warning about failed cleanup of transient changes made by a failed\noperation.", + "A link to a deprecated resource was created.", + "When deploying and at least one of the resources has a type marked as\ndeprecated", + "The user created a boot disk that is larger than image size.", + "When deploying and at least one of the resources has a type marked as\nexperimental", + "Warning that is present in an external api call", + "Warning that value of a field has been overridden.\nDeprecated unused field.", + "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is\nnot of type HTTP/HTTPS/HTTP2.", + "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed\nwhich captures the amount of resources filtered out by\nuser-defined list filter.", + "A resource depends on a missing type", + "The route's nextHopIp address is not assigned to an instance on the\nnetwork.", + "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an\nipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not exist.", + "The route's nextHopInstance URL refers to an instance that is not on the\nsame network as the route.", + "The route's next hop instance does not have a status of RUNNING.", + "Error which is not critical. We decided to continue the process despite\nthe mentioned error.", + "No results are present on a particular list page.", + "Success is reported, but some results may be missing due to errors", + "Quota information is not available to client requests (e.g:\nregions.list).", + "The user attempted to use a resource that requires a TOS they have not\naccepted.", + "Warning that a resource is in use.", + "One or more of the resources set to auto-delete could not be deleted\nbecause they were in use.", + "When a resource schema validation is ignored.", + "Instance template used in instance group manager is valid as such, but\nits application does not make a lot of sense, because it allows only\nsingle instance in instance group.", + "When undeclared properties in the schema are present", + "A given scope cannot be reached." + ], + "type": "string" + }, + "data": { + "description": "[Output Only] Metadata about this warning in key:\nvalue format. For example:\n\n\"data\": [\n {\n \"key\": \"scope\",\n \"value\": \"zones/us-east1-d\"\n }", + "items": { + "properties": { + "key": { + "description": "[Output Only] A key that provides more detail on the warning being\nreturned. For example, for warnings where there are no results in a list\nrequest for a particular zone, this key might be scope and\nthe key value might be the zone name. Other examples might be a key\nindicating a deprecated resource and a suggested replacement, or a\nwarning about invalid network settings (for example, if an instance\nattempts 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" + }, + "CompositeHealthChecksGetHealthResponseHealthSourceHealth": { + "id": "CompositeHealthChecksGetHealthResponseHealthSourceHealth", + "properties": { + "healthState": { + "description": "Health state of the associated HealthSource resource.", + "enum": [ + "HEALTHY", + "UNHEALTHY", + "UNKNOWN" + ], + "enumDescriptions": [ + "", + "", + "" + ], + "type": "string" + }, + "source": { + "description": "Fully qualified URL of the associated HealthSource resource.", + "type": "string" + } + }, + "type": "object" + }, + "CompositeHealthChecksScopedList": { + "id": "CompositeHealthChecksScopedList", + "properties": { + "compositeHealthChecks": { + "description": "A list of CompositeHealthChecks contained in this scope.", + "items": { + "$ref": "CompositeHealthCheck" + }, + "type": "array" + }, + "warning": { + "description": "Informational warning which replaces the list of composite health checks\nwhen the list is empty.", + "properties": { + "code": { + "description": "[Output Only] A warning code, if applicable. For example, Compute\nEngine returns NO_RESULTS_ON_PAGE if there\nare 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", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", + "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "PARTIAL_SUCCESS", + "QUOTA_INFO_UNAVAILABLE", + "REQUIRED_TOS_AGREEMENT", + "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", + "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", + "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", + "UNREACHABLE" + ], + "enumDeprecated": [ + false, + false, + false, + false, + false, + false, + true, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false + ], + "enumDescriptions": [ + "Warning about failed cleanup of transient changes made by a failed\noperation.", + "A link to a deprecated resource was created.", + "When deploying and at least one of the resources has a type marked as\ndeprecated", + "The user created a boot disk that is larger than image size.", + "When deploying and at least one of the resources has a type marked as\nexperimental", + "Warning that is present in an external api call", + "Warning that value of a field has been overridden.\nDeprecated unused field.", + "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is\nnot of type HTTP/HTTPS/HTTP2.", + "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed\nwhich captures the amount of resources filtered out by\nuser-defined list filter.", + "A resource depends on a missing type", + "The route's nextHopIp address is not assigned to an instance on the\nnetwork.", + "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an\nipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not exist.", + "The route's nextHopInstance URL refers to an instance that is not on the\nsame network as the route.", + "The route's next hop instance does not have a status of RUNNING.", + "Error which is not critical. We decided to continue the process despite\nthe mentioned error.", + "No results are present on a particular list page.", + "Success is reported, but some results may be missing due to errors", + "Quota information is not available to client requests (e.g:\nregions.list).", + "The user attempted to use a resource that requires a TOS they have not\naccepted.", + "Warning that a resource is in use.", + "One or more of the resources set to auto-delete could not be deleted\nbecause they were in use.", + "When a resource schema validation is ignored.", + "Instance template used in instance group manager is valid as such, but\nits application does not make a lot of sense, because it allows only\nsingle instance in instance group.", + "When undeclared properties in the schema are present", + "A given scope cannot be reached." + ], + "type": "string" + }, + "data": { + "description": "[Output Only] Metadata about this warning in key:\nvalue format. For example:\n\n\"data\": [\n {\n \"key\": \"scope\",\n \"value\": \"zones/us-east1-d\"\n }", + "items": { + "properties": { + "key": { + "description": "[Output Only] A key that provides more detail on the warning being\nreturned. For example, for warnings where there are no results in a list\nrequest for a particular zone, this key might be scope and\nthe key value might be the zone name. Other examples might be a key\nindicating a deprecated resource and a suggested replacement, or a\nwarning about invalid network settings (for example, if an instance\nattempts 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" + }, + "ConfidentialInstanceConfig": { + "description": "A set of Confidential Instance options.", + "id": "ConfidentialInstanceConfig", + "properties": { + "confidentialInstanceType": { + "description": "Defines the type of technology used by the confidential instance.", + "enum": [ + "CCA", + "CONFIDENTIAL_INSTANCE_TYPE_UNSPECIFIED", + "SEV", + "SEV_SNP", + "TDX" + ], + "enumDescriptions": [ + "Arm Confidential Compute Architecture.", + "No type specified. Do not use this value.", + "AMD Secure Encrypted Virtualization.", + "AMD Secure Encrypted Virtualization - Secure Nested Paging.", + "Intel Trust Domain eXtension." + ], + "type": "string" + }, + "enableConfidentialCompute": { + "description": "Defines whether the instance should have confidential compute enabled.", + "type": "boolean" + } + }, + "type": "object" + }, + "ConnectionDraining": { + "description": "Message containing connection draining configuration.", + "id": "ConnectionDraining", + "properties": { + "drainingTimeoutSec": { + "description": "Configures a duration timeout for existing requests on a removed backend\ninstance. For supported load balancers and protocols, as described inEnabling\nconnection draining.", + "format": "int32", + "type": "integer" + } + }, + "type": "object" + }, + "ConsistentHashLoadBalancerSettings": { + "description": "This message defines settings for a consistent hash style load balancer.", + "id": "ConsistentHashLoadBalancerSettings", + "properties": { + "httpCookie": { + "$ref": "ConsistentHashLoadBalancerSettingsHttpCookie", + "description": "Hash is based on HTTP Cookie. This field describes a HTTP cookie that will\nbe used as the hash key for the consistent hash load balancer. If the\ncookie is not present, it will be generated. This field is applicable if\nthe sessionAffinity is set to HTTP_COOKIE.\n\nNot supported when the backend service is referenced by a URL map that is\nbound to target gRPC proxy that has validateForProxyless field set to true." + }, + "httpHeaderName": { + "description": "The hash based on the value of the specified header field. This field is\napplicable if the sessionAffinity is set toHEADER_FIELD.", + "type": "string" + }, + "minimumRingSize": { + "description": "The minimum number of virtual nodes to use for the hash ring. Defaults to\n1024. Larger ring sizes result in more granular load distributions. If the\nnumber of hosts in the load balancing pool is larger than the ring size,\neach host will be assigned a single virtual node.", + "format": "int64", + "type": "string" + } + }, + "type": "object" + }, + "ConsistentHashLoadBalancerSettingsHttpCookie": { + "description": "The information about the HTTP Cookie on which the hash function is based\nfor load balancing policies that use a consistent hash.", + "id": "ConsistentHashLoadBalancerSettingsHttpCookie", + "properties": { + "name": { + "description": "Name of the cookie.", + "type": "string" + }, + "path": { + "description": "Path to set for the cookie.", + "type": "string" + }, + "ttl": { + "$ref": "Duration", + "description": "Lifetime of the cookie." + } + }, + "type": "object" + }, + "CorsPolicy": { + "description": "The specification for allowing client-side cross-origin requests. For more\ninformation about the W3C recommendation for cross-origin resource sharing\n(CORS), see Fetch API Living\nStandard.", + "id": "CorsPolicy", + "properties": { + "allowCredentials": { + "description": "In response to a preflight request, setting this to true\nindicates that\nthe actual request can include user credentials. This field translates to\nthe Access-Control-Allow-Credentials header.\n\nDefault is false.", + "type": "boolean" + }, + "allowHeaders": { + "description": "Specifies the content for the Access-Control-Allow-Headers\nheader.", + "items": { + "type": "string" + }, + "type": "array" + }, + "allowMethods": { + "description": "Specifies the content for the Access-Control-Allow-Methods\nheader.", + "items": { + "type": "string" + }, + "type": "array" + }, + "allowOriginRegexes": { + "description": "Specifies a regular expression that matches allowed origins. For\nmore information, see regular expression syntax. \n\nAn origin is allowed if it matches either an item inallowOrigins or an item inallowOriginRegexes.\n\nRegular expressions can only be used when the loadBalancingScheme is\nset to INTERNAL_SELF_MANAGED.", + "items": { + "type": "string" + }, + "type": "array" + }, + "allowOrigins": { + "description": "Specifies the list of origins that is allowed to do CORS requests.\n\nAn origin is allowed if it matches either an item inallowOrigins or an item inallowOriginRegexes.", + "items": { + "type": "string" + }, + "type": "array" + }, + "disabled": { + "description": "If true, disables the CORS policy.\nThe default value is false, which indicates that the CORS\npolicy is in effect.", + "type": "boolean" + }, + "exposeHeaders": { + "description": "Specifies the content for the Access-Control-Expose-Headers\nheader.", + "items": { + "type": "string" + }, + "type": "array" + }, + "maxAge": { + "description": "Specifies how long results of a preflight request can be cached in\nseconds. This field translates to the Access-Control-Max-Age\nheader.", + "format": "int32", + "type": "integer" + } + }, + "type": "object" + }, + "CrossSiteNetwork": { + "description": "A resource that represents a cross-site network.\n\nYou can use cross-site networks to connect your on-premises networks to\neach other through Interconnect connections.", + "id": "CrossSiteNetwork", + "properties": { + "creationTimestamp": { + "description": "Output only. [Output Only] Creation timestamp inRFC3339\ntext format.", + "readOnly": true, + "type": "string" + }, + "description": { + "description": "An optional description of the cross-site network.", + "type": "string" + }, + "id": { + "description": "Output only. [Output Only] The unique identifier for the resource type. The server\ngenerates this identifier.", + "format": "uint64", + "readOnly": true, + "type": "string" + }, + "kind": { + "default": "compute#crossSiteNetwork", + "description": "Output only. [Output Only] Type of the resource. Alwayscompute#crossSiteNetwork for cross-site networks.", + "readOnly": true, + "type": "string" + }, + "name": { + "description": "Name of the resource. Provided by the client when the resource is created.\nThe name must be 1-63 characters long, and comply withRFC1035.\nSpecifically, the name must be 1-63 characters long and match the regular\nexpression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first\ncharacter must be a lowercase letter, and all following characters must\nbe a dash, lowercase letter, or digit, except the last character, which\ncannot be a dash.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "type": "string" + }, + "selfLink": { + "description": "Output only. [Output Only] Server-defined URL for the resource.", + "readOnly": true, + "type": "string" + } + }, + "type": "object" + }, + "CrossSiteNetworkList": { + "description": "Response to the list request that contains a list of cross-site networks.", + "id": "CrossSiteNetworkList", + "properties": { + "etag": { + "type": "string" + }, + "id": { + "description": "[Output Only] Unique identifier for the resource; defined by the server.", + "type": "string" + }, + "items": { + "description": "A list of CrossSiteNetwork resources.", + "items": { + "$ref": "CrossSiteNetwork" + }, + "type": "array" + }, + "kind": { + "default": "compute#crossSiteNetwork", + "description": "Output only. [Output Only] Type of the resource. Alwayscompute#crossSiteNetwork for cross-site networks.", + "readOnly": true, + "type": "string" + }, + "nextPageToken": { + "description": "[Output Only] This token allows you to get the next page of results for\nlist requests. If the number of results is larger thanmaxResults, use the nextPageToken as a value for\nthe query parameter pageToken in the next list request.\nSubsequent list requests will have their own nextPageToken to\ncontinue paging through the results.", + "type": "string" + }, + "selfLink": { + "description": "[Output Only] Server-defined URL for this resource.", + "type": "string" + }, + "unreachables": { + "description": "Output only. [Output Only] Unreachable resources.\nend_interface: MixerListResponseWithEtagBuilder", + "items": { + "type": "string" + }, + "readOnly": true, + "type": "array" + }, + "warning": { + "description": "[Output Only] Informational warning message.", + "properties": { + "code": { + "description": "[Output Only] A warning code, if applicable. For example, Compute\nEngine returns NO_RESULTS_ON_PAGE if there\nare 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", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", + "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "PARTIAL_SUCCESS", + "QUOTA_INFO_UNAVAILABLE", + "REQUIRED_TOS_AGREEMENT", + "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", + "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", + "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", + "UNREACHABLE" + ], + "enumDeprecated": [ + false, + false, + false, + false, + false, + false, + true, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false + ], + "enumDescriptions": [ + "Warning about failed cleanup of transient changes made by a failed\noperation.", + "A link to a deprecated resource was created.", + "When deploying and at least one of the resources has a type marked as\ndeprecated", + "The user created a boot disk that is larger than image size.", + "When deploying and at least one of the resources has a type marked as\nexperimental", + "Warning that is present in an external api call", + "Warning that value of a field has been overridden.\nDeprecated unused field.", + "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is\nnot of type HTTP/HTTPS/HTTP2.", + "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed\nwhich captures the amount of resources filtered out by\nuser-defined list filter.", + "A resource depends on a missing type", + "The route's nextHopIp address is not assigned to an instance on the\nnetwork.", + "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an\nipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not exist.", + "The route's nextHopInstance URL refers to an instance that is not on the\nsame network as the route.", + "The route's next hop instance does not have a status of RUNNING.", + "Error which is not critical. We decided to continue the process despite\nthe mentioned error.", + "No results are present on a particular list page.", + "Success is reported, but some results may be missing due to errors", + "Quota information is not available to client requests (e.g:\nregions.list).", + "The user attempted to use a resource that requires a TOS they have not\naccepted.", + "Warning that a resource is in use.", + "One or more of the resources set to auto-delete could not be deleted\nbecause they were in use.", + "When a resource schema validation is ignored.", + "Instance template used in instance group manager is valid as such, but\nits application does not make a lot of sense, because it allows only\nsingle instance in instance group.", + "When undeclared properties in the schema are present", + "A given scope cannot be reached." + ], + "type": "string" + }, + "data": { + "description": "[Output Only] Metadata about this warning in key:\nvalue format. For example:\n\n\"data\": [\n {\n \"key\": \"scope\",\n \"value\": \"zones/us-east1-d\"\n }", + "items": { + "properties": { + "key": { + "description": "[Output Only] A key that provides more detail on the warning being\nreturned. For example, for warnings where there are no results in a list\nrequest for a particular zone, this key might be scope and\nthe key value might be the zone name. Other examples might be a key\nindicating a deprecated resource and a suggested replacement, or a\nwarning about invalid network settings (for example, if an instance\nattempts 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" + }, + "CustomErrorResponsePolicy": { + "description": "Specifies the custom error response policy that must be applied when the\nbackend service or backend bucket responds with an error.", + "id": "CustomErrorResponsePolicy", + "properties": { + "errorResponseRules": { + "description": "Specifies rules for returning error responses.\n\nIn a given policy, if you specify rules for both a range of error codes\nas well as rules for specific error codes then rules with specific error\ncodes have a higher priority. For example, assume that you configure a rule\nfor 401 (Un-authorized) code, and another for all 4 series\nerror codes (4XX). If the backend service returns a401, then the rule for 401 will be applied.\nHowever if the backend service returns a 403, the rule for4xx takes effect.", + "items": { + "$ref": "CustomErrorResponsePolicyCustomErrorResponseRule" + }, + "type": "array" + }, + "errorService": { + "description": "The full or partial URL to the BackendBucket resource that\ncontains the custom error content. Examples are:\n \n \n - https://www.googleapis.com/compute/v1/projects/project/global/backendBuckets/myBackendBucket\n - compute/v1/projects/project/global/backendBuckets/myBackendBucket\n - global/backendBuckets/myBackendBucket\n\nIf errorService is not specified at lower levels likepathMatcher, pathRule and routeRule,\nan errorService specified at a higher level in theUrlMap will be used. IfUrlMap.defaultCustomErrorResponsePolicy contains one or moreerrorResponseRules[], it must specifyerrorService. \n\nIf load balancer cannot reach\nthe backendBucket, a simple Not Found Error will\nbe returned, with the original response code (oroverrideResponseCode if configured).\n\nerrorService is not supported for internal or regionalHTTP/HTTPS load balancers.", + "type": "string" + } + }, + "type": "object" + }, + "CustomErrorResponsePolicyCustomErrorResponseRule": { + "description": "Specifies the mapping between the response code that will be returned along\nwith the custom error content and the response code returned by the backend\nservice.", + "id": "CustomErrorResponsePolicyCustomErrorResponseRule", + "properties": { + "matchResponseCodes": { + "description": "Valid values include:\n \n \n - A number between 400 and 599: For example\n 401 or 503, in which case the load balancer\n applies the policy if the error code exactly matches this value.\n - 5xx: Load Balancer will apply the policy if the\n backend service responds with any response code in the range of\n 500 to 599. \n - 4xx: Load\n Balancer will apply the policy if the backend service responds with any\n response code in the range of 400 to\n 499.\n\nValues must be unique within matchResponseCodes and across allerrorResponseRules ofCustomErrorResponsePolicy.", + "items": { + "type": "string" + }, + "type": "array" + }, + "overrideResponseCode": { + "description": "The HTTP status code returned with the response containing the custom\nerror content. If overrideResponseCode is not supplied, the\nsame response code returned by the original backend bucket or backend\nservice is returned to the client.", + "format": "int32", + "type": "integer" + }, + "path": { + "description": "The full path to a file within backendBucket . For example:/errors/defaultError.html \n\npath must start\nwith a leading slash. path cannot have trailing slashes.\n\nIf the file is not available in backendBucket or the\nload balancer cannot reach the BackendBucket, a simpleNot Found Error is returned to the client. \n\nThe value must\nbe from 1 to 1024 characters", + "type": "string" + } + }, + "type": "object" + }, + "CustomerEncryptionKey": { + "id": "CustomerEncryptionKey", + "properties": { + "kmsKeyName": { + "description": "The name of the encryption key that is stored in Google Cloud KMS.\nFor example:\n\n\"kmsKeyName\": \"projects/kms_project_id/locations/region/keyRings/\nkey_region/cryptoKeys/key\n\nThe fully-qualifed key name may be returned for resource GET requests. For \nexample: \n\n\"kmsKeyName\": \"projects/kms_project_id/locations/region/keyRings/\nkey_region/cryptoKeys/key\n/cryptoKeyVersions/1", + "type": "string" + }, + "kmsKeyServiceAccount": { + "description": "The service account being used for the encryption request for the given KMS\nkey. If absent, the Compute Engine default service account is used.\nFor example:\n\n\"kmsKeyServiceAccount\": \"name@project_id.iam.gserviceaccount.com/", + "type": "string" + }, + "rawKey": { + "description": "Specifies a 256-bit customer-supplied\nencryption key, encoded in RFC\n4648 base64 to either encrypt or decrypt this resource. You can\nprovide either the rawKey or thersaEncryptedKey.\nFor example:\n\n\"rawKey\":\n\"SGVsbG8gZnJvbSBHb29nbGUgQ2xvdWQgUGxhdGZvcm0=\"", + "type": "string" + }, + "rsaEncryptedKey": { + "description": "Specifies an RFC 4648 base64 encoded, RSA-wrapped 2048-bit\ncustomer-supplied encryption key to either encrypt or decrypt this\nresource. You can provide either the rawKey or thersaEncryptedKey.\nFor example:\n\n\"rsaEncryptedKey\":\n\"ieCx/NcW06PcT7Ep1X6LUTc/hLvUDYyzSZPPVCVPTVEohpeHASqC8uw5TzyO9U+Fka9JFH\nz0mBibXUInrC/jEk014kCK/NPjYgEMOyssZ4ZINPKxlUh2zn1bV+MCaTICrdmuSBTWlUUiFoD\nD6PYznLwh8ZNdaheCeZ8ewEXgFQ8V+sDroLaN3Xs3MDTXQEMMoNUXMCZEIpg9Vtp9x2oe==\"\n\nThe key must meet the following requirements before you can provide it to \nCompute Engine: \n \n 1. The key is wrapped using a RSA public key certificate provided by \n Google. \n 2. After being wrapped, the key must be encoded in RFC 4648 base64 \n encoding. \n\nGets the RSA public key certificate provided by Google at: \n\n\nhttps://cloud-certs.storage.googleapis.com/google-cloud-csek-ingress.pem", + "type": "string" + }, + "sha256": { + "description": "[Output only] TheRFC\n4648 base64 encoded SHA-256 hash of the customer-supplied\nencryption key that protects this resource.", + "type": "string" + } + }, + "type": "object" + }, + "CustomerEncryptionKeyProtectedDisk": { + "id": "CustomerEncryptionKeyProtectedDisk", + "properties": { + "diskEncryptionKey": { + "$ref": "CustomerEncryptionKey", + "description": "Decrypts data associated with the disk with acustomer-supplied\nencryption key." + }, + "source": { + "description": "Specifies a valid partial or full URL to an existing Persistent Disk\nresource. This field is only applicable for persistent disks.\nFor example:\n\n\"source\": \"/compute/v1/projects/project_id/zones/zone/disks/\ndisk_name", + "type": "string" + } + }, + "type": "object" + }, + "Date": { + "description": "Represents a whole or partial calendar date, such as a birthday. The time of\nday and time zone are either specified elsewhere or are insignificant. The\ndate is relative to the Gregorian Calendar. This can represent one of the\nfollowing:\n\n* A full date, with non-zero year, month, and day values.\n* A month and day, with a zero year (for example, an anniversary).\n* A year on its own, with a zero month and a zero day.\n* A year and month, with a zero day (for example, a credit card expiration\n date).\n\nRelated types:\n\n* google.type.TimeOfDay\n* google.type.DateTime\n* google.protobuf.Timestamp", + "id": "Date", + "properties": { + "day": { + "description": "Day of a month. Must be from 1 to 31 and valid for the year and month, or 0\nto specify a year by itself or a year and month where the day isn't\nsignificant.", + "format": "int32", + "type": "integer" + }, + "month": { + "description": "Month of a year. Must be from 1 to 12, or 0 to specify a year without a\nmonth and day.", + "format": "int32", + "type": "integer" + }, + "year": { + "description": "Year of the date. Must be from 1 to 9999, or 0 to specify a date without\na year.", + "format": "int32", + "type": "integer" + } + }, + "type": "object" + }, + "DateTime": { + "description": "Represents civil time (or occasionally physical time).\n\nThis type can represent a civil time in one of a few possible ways:\n\n * When utc_offset is set and time_zone is unset: a civil time on a calendar\n day with a particular offset from UTC.\n * When time_zone is set and utc_offset is unset: a civil time on a calendar\n day in a particular time zone.\n * When neither time_zone nor utc_offset is set: a civil time on a calendar\n day in local time.\n\nThe date is relative to the Proleptic Gregorian Calendar.\n\nIf year, month, or day are 0, the DateTime is considered not to have a\nspecific year, month, or day respectively.\n\nThis type may also be used to represent a physical time if all the date and\ntime fields are set and either case of the `time_offset` oneof is set.\nConsider using `Timestamp` message for physical time instead. If your use\ncase also would like to store the user's timezone, that can be done in\nanother field.\n\nThis type is more flexible than some applications may want. Make sure to\ndocument and validate your application's limitations.", + "id": "DateTime", + "properties": { + "day": { + "description": "Optional. Day of month. Must be from 1 to 31 and valid for the year and\nmonth, or 0 if specifying a datetime without a day.", + "format": "int32", + "type": "integer" + }, + "hours": { + "description": "Optional. Hours of day in 24 hour format. Should be from 0 to 23, defaults\nto 0 (midnight). An API may choose to allow the value \"24:00:00\" for\nscenarios like business closing time.", + "format": "int32", + "type": "integer" + }, + "minutes": { + "description": "Optional. Minutes of hour of day. Must be from 0 to 59, defaults to 0.", + "format": "int32", + "type": "integer" + }, + "month": { + "description": "Optional. Month of year. Must be from 1 to 12, or 0 if specifying a\ndatetime without a month.", + "format": "int32", + "type": "integer" + }, + "nanos": { + "description": "Optional. Fractions of seconds in nanoseconds. Must be from 0 to\n999,999,999, defaults to 0.", + "format": "int32", + "type": "integer" + }, + "seconds": { + "description": "Optional. Seconds of minutes of the time. Must normally be from 0 to 59,\ndefaults to 0. An API may allow the value 60 if it allows leap-seconds.", + "format": "int32", + "type": "integer" + }, + "timeZone": { + "$ref": "TimeZone", + "description": "Time zone." + }, + "utcOffset": { + "description": "UTC offset. Must be whole seconds, between -18 hours and +18 hours.\nFor example, a UTC offset of -4:00 would be represented as\n{ seconds: -14400 }.", + "format": "google-duration", + "type": "string" + }, + "year": { + "description": "Optional. Year of date. Must be from 1 to 9999, or 0 if specifying a\ndatetime without a year.", + "format": "int32", + "type": "integer" + } + }, + "type": "object" + }, + "DeprecationStatus": { + "description": "Deprecation status for a public resource.", + "id": "DeprecationStatus", + "properties": { + "deleted": { + "description": "An optional RFC3339 timestamp on or after which the state of this\nresource is intended to change to DELETED. This is only\ninformational and the status will not change unless the client explicitly\nchanges it.", + "type": "string" + }, + "deprecated": { + "description": "An optional RFC3339 timestamp on or after which the state of this\nresource is intended to change to DEPRECATED. This is only\ninformational and the status will not change unless the client explicitly\nchanges it.", + "type": "string" + }, + "obsolete": { + "description": "An optional RFC3339 timestamp on or after which the state of this\nresource is intended to change to OBSOLETE. This is only\ninformational and the status will not change unless the client explicitly\nchanges it.", + "type": "string" + }, + "replacement": { + "description": "The URL of the suggested replacement for a deprecated resource.\nThe suggested replacement resource must be the same kind of resource as the\ndeprecated resource.", + "type": "string" + }, + "state": { + "description": "The deprecation state of this resource. This can be ACTIVE,DEPRECATED, OBSOLETE, or DELETED.\nOperations which communicate the end of life date for an image, can useACTIVE. Operations which create a new resource using aDEPRECATED resource will return successfully, but with a\nwarning indicating the deprecated resource and recommending its\nreplacement. Operations which use OBSOLETE orDELETED resources will be rejected and result in an error.", + "enum": [ + "ACTIVE", + "DELETED", + "DEPRECATED", + "OBSOLETE" + ], + "enumDescriptions": [ + "", + "", + "", + "" + ], + "type": "string" + } + }, + "type": "object" + }, + "Disk": { + "description": "Represents a Persistent Disk resource.\n\nGoogle Compute Engine has two Disk resources:\n\n* [Zonal](/compute/docs/reference/rest/v1/disks)\n* [Regional](/compute/docs/reference/rest/v1/regionDisks)\n\nPersistent disks are required for running your VM instances.\nCreate both boot and non-boot (data) persistent disks. For more information,\nread Persistent Disks. For more\nstorage options, read Storage options.\n\nThe disks resource represents a zonal persistent disk.\nFor more information, readZonal persistent disks.\n\nThe regionDisks resource represents a\nregional persistent disk. For more information, read\nRegional resources.", + "id": "Disk", + "properties": { + "accessMode": { + "description": "The access mode of the disk.\n \n \n - READ_WRITE_SINGLE: The default AccessMode, means the\n disk can be attached to single instance in RW mode.\n - READ_WRITE_MANY: The AccessMode means the disk can be\n attached to multiple instances in RW mode.\n - READ_ONLY_MANY: The AccessMode means the disk can be\n attached to multiple instances in RO mode.\n\n\nThe AccessMode is only valid for Hyperdisk disk types.", + "enum": [ + "READ_ONLY_MANY", + "READ_WRITE_MANY", + "READ_WRITE_SINGLE" + ], + "enumDescriptions": [ + "The AccessMode means the disk can be attached to multiple instances in RO\nmode.", + "The AccessMode means the disk can be attached to multiple instances in RW\nmode.", + "The default AccessMode, means the disk can be attached to single instance\nin RW mode." + ], + "type": "string" + }, + "architecture": { + "description": "The architecture of the disk. Valid values are\nARM64 or X86_64.", + "enum": [ + "ARCHITECTURE_UNSPECIFIED", + "ARM64", + "X86_64" + ], + "enumDescriptions": [ + "Default value indicating Architecture is not set.", + "Machines with architecture ARM64", + "Machines with architecture X86_64" + ], + "type": "string" + }, + "asyncPrimaryDisk": { + "$ref": "DiskAsyncReplication", + "description": "Disk asynchronously replicated into this disk." + }, + "asyncSecondaryDisks": { + "additionalProperties": { + "$ref": "DiskAsyncReplicationList" + }, + "description": "Output only. [Output Only] A list of disks this disk is asynchronously replicated to.", + "readOnly": true, + "type": "object" + }, + "creationTimestamp": { + "description": "Output only. [Output Only] Creation timestamp inRFC3339\ntext format.", + "readOnly": true, + "type": "string" + }, + "description": { + "description": "An optional description of this resource. Provide this property when you\ncreate the resource.", + "type": "string" + }, + "diskEncryptionKey": { + "$ref": "CustomerEncryptionKey", + "description": "Encrypts the disk using a\ncustomer-supplied encryption key or a \ncustomer-managed encryption key.\n\nEncryption keys do not protect access to metadata of the disk.\n\nAfter you encrypt a disk with a customer-supplied key, you must provide the\nsame key if you use the disk later. For example, to create a disk snapshot,\nto create a disk image, to create a machine image, or to attach the disk to\na virtual machine.\n\nAfter you encrypt a disk with a customer-managed key, thediskEncryptionKey.kmsKeyName is set to a key *version*\nname once the disk is created. The disk is encrypted with this version of\nthe key. In the response, diskEncryptionKey.kmsKeyName appears\nin the following format:\n\n\"diskEncryptionKey.kmsKeyName\":\n\"projects/kms_project_id/locations/region/keyRings/\nkey_region/cryptoKeys/key\n/cryptoKeysVersions/version\n\nIf you do not provide an encryption key when creating the disk, then the \ndisk is encrypted using an automatically generated key and you don't need \nto provide a key to use the disk later." + }, + "enableConfidentialCompute": { + "description": "Whether this disk is using confidential compute mode.", + "type": "boolean" + }, + "guestOsFeatures": { + "description": "A list of features to enable on the guest operating system. Applicable\nonly for bootable images. Read\nEnabling guest operating system features to see a list of available\noptions.", + "items": { + "$ref": "GuestOsFeature" + }, + "type": "array" + }, + "id": { + "description": "Output only. [Output Only] The unique identifier for the resource. This identifier is\ndefined by the server.", + "format": "uint64", + "readOnly": true, + "type": "string" + }, + "kind": { + "default": "compute#disk", + "description": "Output only. [Output Only] Type of the resource. Always compute#disk for\ndisks.", + "readOnly": true, + "type": "string" + }, + "labelFingerprint": { + "description": "A fingerprint for the labels being applied to this disk, which is\nessentially a hash of the labels set used for optimistic locking. The\nfingerprint is initially generated by Compute Engine and changes after\nevery request to modify or update labels. You must always provide an\nup-to-date fingerprint hash in order to update or change labels,\notherwise the request will fail with error412 conditionNotMet.\n\nTo see the latest fingerprint, make a get() request to\nretrieve a disk.", + "format": "byte", + "type": "string" + }, + "labels": { + "additionalProperties": { + "type": "string" + }, + "description": "Labels to apply to this disk. These can be later modified by\nthe setLabels method.", + "type": "object" + }, + "lastAttachTimestamp": { + "description": "Output only. [Output Only] Last attach timestamp inRFC3339\ntext format.", + "readOnly": true, + "type": "string" + }, + "lastDetachTimestamp": { + "description": "Output only. [Output Only] Last detach timestamp inRFC3339\ntext format.", + "readOnly": true, + "type": "string" + }, + "licenseCodes": { + "description": "Integer license codes indicating which licenses are attached to this disk.", + "items": { + "format": "int64", + "type": "string" + }, + "type": "array" + }, + "licenses": { + "description": "A list of publicly visible licenses. Reserved for Google's use.", + "items": { + "type": "string" + }, + "type": "array" + }, + "locationHint": { + "description": "An opaque location hint used to place the disk close to other resources.\nThis field is for use by internal tools that use the public API.", + "type": "string" + }, + "name": { + "annotations": { + "required": [ + "compute.disks.insert" + ] + }, + "description": "Name of the resource. Provided by the client when the resource is created.\nThe name must be 1-63 characters long, and comply withRFC1035.\nSpecifically, the name must be 1-63 characters long and match the regular\nexpression `[a-z]([-a-z0-9]*[a-z0-9])?`\nwhich means the first character must be a lowercase letter, and all\nfollowing characters must be a dash, lowercase letter, or digit, except\nthe last character, which cannot be a dash.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "type": "string" + }, + "options": { + "description": "Internal use only.", + "type": "string" + }, + "params": { + "$ref": "DiskParams", + "description": "Input only. [Input Only] Additional params passed with the request, but not persisted\nas part of resource payload." + }, + "physicalBlockSizeBytes": { + "description": "Physical block size of the persistent disk, in bytes.\nIf not present in a request, a default value is used.\nThe currently supported size is 4096, other sizes may be added in\nthe future.\nIf an unsupported value is requested, the error message will list\nthe supported values for the caller's project.", + "format": "int64", + "type": "string" + }, + "provisionedIops": { + "description": "Indicates how many IOPS to provision for the disk. This sets the number\nof I/O operations per second that the disk can handle. Values must be\nbetween 10,000 and 120,000. For more details, see theExtreme persistent\ndisk documentation.", + "format": "int64", + "type": "string" + }, + "provisionedThroughput": { + "description": "Indicates how much throughput to provision for the disk. This sets the\nnumber of throughput mb per second that the disk can handle. Values must be\ngreater than or equal to 1.", + "format": "int64", + "type": "string" + }, + "region": { + "description": "Output only. [Output Only] URL of the region where the disk resides. Only applicable for\nregional resources.\nYou must specify this field as part of the HTTP request URL. It is\nnot settable as a field in the request body.", + "readOnly": true, + "type": "string" + }, + "replicaZones": { + "description": "URLs of the zones where the disk should be replicated to. Only applicable\nfor regional resources.", + "items": { + "type": "string" + }, + "type": "array" + }, + "resourcePolicies": { + "description": "Resource policies applied to this disk for automatic snapshot creations.", + "items": { + "type": "string" + }, + "type": "array" + }, + "resourceStatus": { + "$ref": "DiskResourceStatus", + "description": "Output only. [Output Only] Status information for the disk resource.", + "readOnly": true + }, + "satisfiesPzi": { + "description": "Output only. Reserved for future use.", + "readOnly": true, + "type": "boolean" + }, + "satisfiesPzs": { + "description": "Output only. [Output Only] Reserved for future use.", + "readOnly": true, + "type": "boolean" + }, + "selfLink": { + "description": "Output only. [Output Only] Server-defined fully-qualified URL for this resource.", + "readOnly": true, + "type": "string" + }, + "sizeGb": { + "description": "Size, in GB, of the persistent disk. You can specify\nthis field when creating a persistent disk using thesourceImage, sourceSnapshot, orsourceDisk parameter, or specify it alone to create an empty\npersistent disk.\n\nIf you specify this field along with a source, the value ofsizeGb must not be less than the size of the\nsource.\nAcceptable values are greater than 0.", + "format": "int64", + "type": "string" + }, + "sourceConsistencyGroupPolicy": { + "description": "Output only. [Output Only] URL of the DiskConsistencyGroupPolicy for a secondary disk\nthat was created using a consistency group.", + "readOnly": true, + "type": "string" + }, + "sourceConsistencyGroupPolicyId": { + "description": "Output only. [Output Only] ID of the DiskConsistencyGroupPolicy for a secondary disk\nthat was created using a consistency group.", + "readOnly": true, + "type": "string" + }, + "sourceDisk": { + "description": "The source disk used to create this disk. You can provide this as a\npartial or full URL to the resource. For example, the following are valid\nvalues:\n \n \n - \n https://www.googleapis.com/compute/v1/projects/project/zones/zone/disks/disk\n \n - \n https://www.googleapis.com/compute/v1/projects/project/regions/region/disks/disk\n \n - \n projects/project/zones/zone/disks/disk\n \n - \n projects/project/regions/region/disks/disk\n \n - \n zones/zone/disks/disk\n \n - \n regions/region/disks/disk", + "type": "string" + }, + "sourceDiskId": { + "description": "Output only. [Output Only] The unique ID of the disk used to create this disk. This\nvalue identifies the exact disk that was used to create this persistent\ndisk. For example, if you created the persistent disk from a disk that\nwas later deleted and recreated under the same name, the source disk ID\nwould identify the exact version of the disk that was used.", + "readOnly": true, + "type": "string" + }, + "sourceImage": { + "description": "The source image used to create this disk. If the source image is\ndeleted, this field will not be set.\n\nTo create a disk with one of the public operating system images, specify\nthe image by its family name. For example, specifyfamily/debian-9 to use the latest Debian 9 image:\n\nprojects/debian-cloud/global/images/family/debian-9\n\n\nAlternatively, use a specific version of a public operating system image:\n\nprojects/debian-cloud/global/images/debian-9-stretch-vYYYYMMDD\n\n\nTo create a disk with a custom image that you created, specify the\nimage name in the following format:\n\nglobal/images/my-custom-image\n\n\nYou can also specify a custom image by its image family, which returns\nthe latest version of the image in that family. Replace the image name\nwith family/family-name:\n\nglobal/images/family/my-image-family", + "type": "string" + }, + "sourceImageEncryptionKey": { + "$ref": "CustomerEncryptionKey", + "description": "Thecustomer-supplied\nencryption key of the source image. Required if the source image is\nprotected by a customer-supplied encryption key." + }, + "sourceImageId": { + "description": "Output only. [Output Only] The ID value of the image used to create this disk. This\nvalue identifies the exact image that was used to create this persistent\ndisk. For example, if you created the persistent disk from an image that\nwas later deleted and recreated under the same name, the source image ID\nwould identify the exact version of the image that was used.", + "readOnly": true, + "type": "string" + }, + "sourceInstantSnapshot": { + "description": "The source instant snapshot used to create this disk. You can provide\nthis as a partial or full URL to the resource. For example, the following\nare valid values:\n \n \n - https://www.googleapis.com/compute/v1/projects/project/zones/zone/instantSnapshots/instantSnapshot\n - projects/project/zones/zone/instantSnapshots/instantSnapshot \n - zones/zone/instantSnapshots/instantSnapshot", + "type": "string" + }, + "sourceInstantSnapshotId": { + "description": "Output only. [Output Only] The unique ID of the instant snapshot used to create this\ndisk. This value identifies the exact instant snapshot that was used to\ncreate this persistent disk. For example, if you created the persistent\ndisk from an instant snapshot that was later deleted and recreated under\nthe same name, the source instant snapshot ID would identify the exact\nversion of the instant snapshot that was used.", + "readOnly": true, + "type": "string" + }, + "sourceSnapshot": { + "description": "The source snapshot used to create this disk. You can provide this as a\npartial or full URL to the resource. For example, the following are valid\nvalues:\n \n \n - https://www.googleapis.com/compute/v1/projects/project/global/snapshots/snapshot \n - projects/project/global/snapshots/snapshot\n - global/snapshots/snapshot", + "type": "string" + }, + "sourceSnapshotEncryptionKey": { + "$ref": "CustomerEncryptionKey", + "description": "Thecustomer-supplied\nencryption key of the source snapshot. Required if the source snapshot\nis protected by a customer-supplied encryption key." + }, + "sourceSnapshotId": { + "description": "Output only. [Output Only] The unique ID of the snapshot used to create this disk. This\nvalue identifies the exact snapshot that was used to create this persistent\ndisk. For example, if you created the persistent disk from a snapshot that\nwas later deleted and recreated under the same name, the source snapshot ID\nwould identify the exact version of the snapshot that was used.", + "readOnly": true, + "type": "string" + }, + "sourceStorageObject": { + "description": "The full Google Cloud Storage URI where the disk image is stored. This file\nmust be a gzip-compressed tarball whose name ends in .tar.gz or virtual\nmachine disk whose name ends in vmdk. Valid URIs may start with gs:// or\nhttps://storage.googleapis.com/. This flag is not optimized for creating\nmultiple disks from a source storage object. To create many disks from a\nsource storage object, use gcloud compute images\nimport instead.", + "type": "string" + }, + "status": { + "description": "Output only. [Output Only] The status of disk creation.\n \n \n - CREATING: Disk is provisioning.\n - RESTORING: Source data is being copied into the\n disk.\n - FAILED: Disk creation failed.\n - READY: Disk is ready for use.\n - DELETING: Disk is deleting.", + "enum": [ + "CREATING", + "DELETING", + "FAILED", + "READY", + "RESTORING", + "UNAVAILABLE" + ], + "enumDescriptions": [ + "Disk is provisioning", + "Disk is deleting.", + "Disk creation failed.", + "Disk is ready for use.", + "Source data is being copied into the disk.", + "Disk is currently unavailable and cannot be accessed, attached or\ndetached." + ], + "readOnly": true, + "type": "string" + }, + "storagePool": { + "description": "The storage pool in which the new disk is created. You can provide\nthis as a partial or full URL to the resource. For example, the following\nare valid values:\n \n \n - https://www.googleapis.com/compute/v1/projects/project/zones/zone/storagePools/storagePool\n - projects/project/zones/zone/storagePools/storagePool \n - zones/zone/storagePools/storagePool", + "type": "string" + }, + "type": { + "description": "URL of the disk type resource describing which disk type to use to create\nthe disk. Provide this when creating the disk. For example:projects/project/zones/zone/diskTypes/pd-ssd. See Persistent disk\ntypes.", + "type": "string" + }, + "users": { + "description": "Output only. [Output Only] Links to the users of the disk (attached instances)\nin form:projects/project/zones/zone/instances/instance", + "items": { + "type": "string" + }, + "readOnly": true, + "type": "array" + }, + "zone": { + "description": "Output only. [Output Only] URL of the zone where the disk resides.\nYou must specify this field as part of the HTTP request URL. It is\nnot settable as a field in the request body.", + "readOnly": true, + "type": "string" + } + }, + "type": "object" + }, + "DiskAggregatedList": { + "id": "DiskAggregatedList", + "properties": { + "id": { + "description": "[Output Only] Unique identifier for the resource; defined by the server.", + "type": "string" + }, + "items": { + "additionalProperties": { + "$ref": "DisksScopedList", + "description": "[Output Only] Name of the scope containing this set of disks." + }, + "description": "A list of DisksScopedList resources.", + "type": "object" + }, + "kind": { + "default": "compute#diskAggregatedList", + "description": "Output only. [Output Only] Type of resource. Alwayscompute#diskAggregatedList for aggregated lists of persistent\ndisks.", + "readOnly": true, + "type": "string" + }, + "nextPageToken": { + "description": "[Output Only] This token allows you to get the next page of results for\nlist requests. If the number of results is larger thanmaxResults, use the nextPageToken as a value for\nthe query parameter pageToken in the next list request.\nSubsequent list requests will have their own nextPageToken to\ncontinue paging through the results.", + "type": "string" + }, + "selfLink": { + "description": "Output only. [Output Only] Server-defined URL for this resource.", + "readOnly": true, + "type": "string" + }, + "unreachables": { + "description": "Output only. [Output Only] Unreachable resources.", + "items": { + "type": "string" + }, + "readOnly": true, + "type": "array" + }, + "warning": { + "description": "[Output Only] Informational warning message.", + "properties": { + "code": { + "description": "[Output Only] A warning code, if applicable. For example, Compute\nEngine returns NO_RESULTS_ON_PAGE if there\nare 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", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", + "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "PARTIAL_SUCCESS", + "QUOTA_INFO_UNAVAILABLE", + "REQUIRED_TOS_AGREEMENT", + "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", + "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", + "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", + "UNREACHABLE" + ], + "enumDeprecated": [ + false, + false, + false, + false, + false, + false, + true, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false + ], + "enumDescriptions": [ + "Warning about failed cleanup of transient changes made by a failed\noperation.", + "A link to a deprecated resource was created.", + "When deploying and at least one of the resources has a type marked as\ndeprecated", + "The user created a boot disk that is larger than image size.", + "When deploying and at least one of the resources has a type marked as\nexperimental", + "Warning that is present in an external api call", + "Warning that value of a field has been overridden.\nDeprecated unused field.", + "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is\nnot of type HTTP/HTTPS/HTTP2.", + "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed\nwhich captures the amount of resources filtered out by\nuser-defined list filter.", + "A resource depends on a missing type", + "The route's nextHopIp address is not assigned to an instance on the\nnetwork.", + "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an\nipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not exist.", + "The route's nextHopInstance URL refers to an instance that is not on the\nsame network as the route.", + "The route's next hop instance does not have a status of RUNNING.", + "Error which is not critical. We decided to continue the process despite\nthe mentioned error.", + "No results are present on a particular list page.", + "Success is reported, but some results may be missing due to errors", + "Quota information is not available to client requests (e.g:\nregions.list).", + "The user attempted to use a resource that requires a TOS they have not\naccepted.", + "Warning that a resource is in use.", + "One or more of the resources set to auto-delete could not be deleted\nbecause they were in use.", + "When a resource schema validation is ignored.", + "Instance template used in instance group manager is valid as such, but\nits application does not make a lot of sense, because it allows only\nsingle instance in instance group.", + "When undeclared properties in the schema are present", + "A given scope cannot be reached." + ], + "type": "string" + }, + "data": { + "description": "[Output Only] Metadata about this warning in key:\nvalue format. For example:\n\n\"data\": [\n {\n \"key\": \"scope\",\n \"value\": \"zones/us-east1-d\"\n }", + "items": { + "properties": { + "key": { + "description": "[Output Only] A key that provides more detail on the warning being\nreturned. For example, for warnings where there are no results in a list\nrequest for a particular zone, this key might be scope and\nthe key value might be the zone name. Other examples might be a key\nindicating a deprecated resource and a suggested replacement, or a\nwarning about invalid network settings (for example, if an instance\nattempts 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" + }, + "DiskAsyncReplication": { + "id": "DiskAsyncReplication", + "properties": { + "consistencyGroupPolicy": { + "description": "Output only. [Output Only] URL of the DiskConsistencyGroupPolicy if replication was\nstarted on the disk as a member of a group.", + "readOnly": true, + "type": "string" + }, + "consistencyGroupPolicyId": { + "description": "Output only. [Output Only] ID of the DiskConsistencyGroupPolicy if replication was\nstarted on the disk as a member of a group.", + "readOnly": true, + "type": "string" + }, + "disk": { + "description": "The other disk asynchronously replicated to or from the current disk.\nYou can provide this as a partial or full URL to the resource.\nFor example, the following are valid values:\n \n \n - https://www.googleapis.com/compute/v1/projects/project/zones/zone/disks/disk \n - projects/project/zones/zone/disks/disk \n - zones/zone/disks/disk", + "type": "string" + }, + "diskId": { + "description": "Output only. [Output Only] The unique ID of the other disk asynchronously replicated\nto or from the current disk. This value identifies the exact disk that\nwas used to create this replication. For example, if you started\nreplicating the persistent disk from a disk that was later deleted and\nrecreated under the same name, the disk ID would identify the exact\nversion of the disk that was used.", + "readOnly": true, + "type": "string" + } + }, + "type": "object" + }, + "DiskAsyncReplicationList": { + "id": "DiskAsyncReplicationList", + "properties": { + "asyncReplicationDisk": { + "$ref": "DiskAsyncReplication" + } + }, + "type": "object" + }, + "DiskInstantiationConfig": { + "description": "A specification of the desired way to instantiate a disk in the instance\ntemplate when its created from a source instance.", + "id": "DiskInstantiationConfig", + "properties": { + "autoDelete": { + "description": "Specifies whether the disk will be auto-deleted when the instance is\ndeleted (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\nthis 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\nvalues are:\n \n \n - source-image: to use the same image that was used to\n create the source instance's corresponding disk. Applicable to the boot\n disk and additional read-write disks.\n - source-image-family: to use the same image family that\n was used to create the source instance's corresponding disk. Applicable\n to the boot disk and additional read-write disks.\n - custom-image: to use a user-provided image url for disk\n creation. Applicable to the boot disk and additional read-write\n disks. \n - attach-read-only: to attach a read-only\n disk. Applicable to read-only disks.\n - do-not-include: to exclude a disk from the template.\n Applicable to additional read-write disks, local SSDs, and read-only\n disks.", + "enum": [ + "ATTACH_READ_ONLY", + "BLANK", + "CUSTOM_IMAGE", + "DEFAULT", + "DO_NOT_INCLUDE", + "SOURCE_IMAGE", + "SOURCE_IMAGE_FAMILY" + ], + "enumDescriptions": [ + "Attach the existing disk in read-only mode. The request will fail if the\ndisk was attached in read-write mode on the source instance. Applicable\nto: read-only disks.", + "Create a blank disk. The disk will be created unformatted. Applicable to:\nadditional read-write disks, local SSDs.", + "Use the custom image specified in the custom_image field. Applicable to:\nboot disk, additional read-write disks.", + "Use the default instantiation option for the corresponding type of disk.\nFor boot disk and any other R/W disks, new custom images will be created\nfrom each disk. For read-only disks, they will be attached in read-only\nmode. Local SSD disks will be created as blank volumes.", + "Do not include the disk in the instance template. Applicable to:\nadditional read-write disks, local SSDs, read-only disks.", + "Use the same source image used for creation of the source instance's\ncorresponding disk. The request will fail if the source VM's disk was\ncreated from a snapshot. Applicable to: boot disk, additional read-write\ndisks.", + "Use the same source image family used for creation of the source\ninstance's corresponding disk. The request will fail if the source image\nof the source disk does not belong to any image family. Applicable to:\nboot disk, additional read-write disks." + ], + "type": "string" + } + }, + "type": "object" + }, + "DiskList": { + "description": "A list of Disk resources.", + "id": "DiskList", + "properties": { + "id": { + "description": "[Output Only] Unique identifier for the resource; defined by the server.", + "type": "string" + }, + "items": { + "description": "A list of Disk resources.", + "items": { + "$ref": "Disk" + }, + "type": "array" + }, + "kind": { + "default": "compute#diskList", + "description": "Output only. [Output Only] Type of resource. Always compute#diskList for\nlists of disks.", + "readOnly": true, + "type": "string" + }, + "nextPageToken": { + "description": "[Output Only] This token allows you to get the next page of results for\nlist requests. If the number of results is larger thanmaxResults, use the nextPageToken as a value for\nthe query parameter pageToken in the next list request.\nSubsequent list requests will have their own nextPageToken to\ncontinue paging through the results.", + "type": "string" + }, + "selfLink": { + "description": "Output only. [Output Only] Server-defined URL for this resource.", + "readOnly": true, + "type": "string" + }, + "warning": { + "description": "[Output Only] Informational warning message.", + "properties": { + "code": { + "description": "[Output Only] A warning code, if applicable. For example, Compute\nEngine returns NO_RESULTS_ON_PAGE if there\nare 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", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", + "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "PARTIAL_SUCCESS", + "QUOTA_INFO_UNAVAILABLE", + "REQUIRED_TOS_AGREEMENT", + "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", + "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", + "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", + "UNREACHABLE" + ], + "enumDeprecated": [ + false, + false, + false, + false, + false, + false, + true, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false + ], + "enumDescriptions": [ + "Warning about failed cleanup of transient changes made by a failed\noperation.", + "A link to a deprecated resource was created.", + "When deploying and at least one of the resources has a type marked as\ndeprecated", + "The user created a boot disk that is larger than image size.", + "When deploying and at least one of the resources has a type marked as\nexperimental", + "Warning that is present in an external api call", + "Warning that value of a field has been overridden.\nDeprecated unused field.", + "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is\nnot of type HTTP/HTTPS/HTTP2.", + "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed\nwhich captures the amount of resources filtered out by\nuser-defined list filter.", + "A resource depends on a missing type", + "The route's nextHopIp address is not assigned to an instance on the\nnetwork.", + "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an\nipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not exist.", + "The route's nextHopInstance URL refers to an instance that is not on the\nsame network as the route.", + "The route's next hop instance does not have a status of RUNNING.", + "Error which is not critical. We decided to continue the process despite\nthe mentioned error.", + "No results are present on a particular list page.", + "Success is reported, but some results may be missing due to errors", + "Quota information is not available to client requests (e.g:\nregions.list).", + "The user attempted to use a resource that requires a TOS they have not\naccepted.", + "Warning that a resource is in use.", + "One or more of the resources set to auto-delete could not be deleted\nbecause they were in use.", + "When a resource schema validation is ignored.", + "Instance template used in instance group manager is valid as such, but\nits application does not make a lot of sense, because it allows only\nsingle instance in instance group.", + "When undeclared properties in the schema are present", + "A given scope cannot be reached." + ], + "type": "string" + }, + "data": { + "description": "[Output Only] Metadata about this warning in key:\nvalue format. For example:\n\n\"data\": [\n {\n \"key\": \"scope\",\n \"value\": \"zones/us-east1-d\"\n }", + "items": { + "properties": { + "key": { + "description": "[Output Only] A key that provides more detail on the warning being\nreturned. For example, for warnings where there are no results in a list\nrequest for a particular zone, this key might be scope and\nthe key value might be the zone name. Other examples might be a key\nindicating a deprecated resource and a suggested replacement, or a\nwarning about invalid network settings (for example, if an instance\nattempts 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" + }, + "DiskMoveRequest": { + "id": "DiskMoveRequest", + "properties": { + "destinationZone": { + "description": "The URL of the destination zone to move the disk. This can be a full or\npartial URL. For example, the following are all valid URLs to a zone:\n \n - https://www.googleapis.com/compute/v1/projects/project/zones/zone \n - projects/project/zones/zone \n - zones/zone", + "type": "string" + }, + "targetDisk": { + "description": "The URL of the target disk to move. This can be a full or partial URL.\nFor example, the following are all valid URLs to a disk:\n \n - https://www.googleapis.com/compute/v1/projects/project/zones/zone/disks/disk \n - projects/project/zones/zone/disks/disk \n - zones/zone/disks/disk", + "type": "string" + } + }, + "type": "object" + }, + "DiskParams": { + "description": "Additional disk params.", + "id": "DiskParams", + "properties": { + "resourceManagerTags": { + "additionalProperties": { + "type": "string" + }, + "description": "Input only. Resource manager tags to be bound to the disk. Tag keys and values\nhave the same definition as resource\nmanager tags. Keys and values can be either in numeric format,\nsuch as `tagKeys/{tag_key_id}` and `tagValues/{tag_value_id}` or in\nnamespaced format such as `{org_id|project_id}/{tag_key_short_name}` and\n`{tag_value_short_name}`. The field is ignored (both PUT \u0026\nPATCH) when empty.", + "type": "object" + } + }, + "type": "object" + }, + "DiskResourceStatus": { + "id": "DiskResourceStatus", + "properties": { + "asyncPrimaryDisk": { + "$ref": "DiskResourceStatusAsyncReplicationStatus" + }, + "asyncSecondaryDisks": { + "additionalProperties": { + "$ref": "DiskResourceStatusAsyncReplicationStatus" + }, + "description": "Key: disk, value: AsyncReplicationStatus message", + "type": "object" + } + }, + "type": "object" + }, + "DiskResourceStatusAsyncReplicationStatus": { + "id": "DiskResourceStatusAsyncReplicationStatus", + "properties": { + "state": { + "enum": [ + "ACTIVE", + "CREATED", + "STARTING", + "STATE_UNSPECIFIED", + "STOPPED", + "STOPPING" + ], + "enumDescriptions": [ + "Replication is active.", + "Secondary disk is created and is waiting for replication to start.", + "Replication is starting.", + "", + "Replication is stopped.", + "Replication is stopping." + ], + "type": "string" + } + }, + "type": "object" + }, + "DiskType": { + "description": "Represents a Disk Type resource.\n\nGoogle Compute Engine has two Disk Type resources:\n\n* [Regional](/compute/docs/reference/rest/v1/regionDiskTypes)\n* [Zonal](/compute/docs/reference/rest/v1/diskTypes)\n\nYou can choose from a variety of disk types based on your needs.\nFor more information, readStorage options.\n\nThe diskTypes resource represents disk types for a zonal\npersistent disk.\nFor more information, readZonal persistent disks.\n\nThe regionDiskTypes resource represents disk types for a\nregional persistent disk. For more information, read Regional persistent disks.", + "id": "DiskType", + "properties": { + "creationTimestamp": { + "description": "[Output Only] Creation timestamp inRFC3339\ntext format.", + "type": "string" + }, + "defaultDiskSizeGb": { + "description": "[Output Only] Server-defined default disk size in GB.", + "format": "int64", + "type": "string" + }, + "deprecated": { + "$ref": "DeprecationStatus", + "description": "[Output Only] The deprecation status associated with this disk type." + }, + "description": { + "description": "[Output Only] An optional description of this resource.", + "type": "string" + }, + "id": { + "description": "[Output Only] The unique identifier for the resource. This identifier is\ndefined by the server.", + "format": "uint64", + "type": "string" + }, + "kind": { + "default": "compute#diskType", + "description": "Output only. [Output Only] Type of the resource. Always compute#diskType\nfor disk types.", + "readOnly": true, + "type": "string" + }, + "name": { + "description": "[Output Only] Name of the resource.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "type": "string" + }, + "region": { + "description": "[Output Only] URL of the region where the disk type resides. Only\napplicable for regional resources.\nYou must specify this field as part of the HTTP request URL. It is\nnot settable as a field in the request body.", + "type": "string" + }, + "selfLink": { + "description": "[Output Only] Server-defined URL for the resource.", + "type": "string" + }, + "validDiskSize": { + "description": "[Output Only] An optional textual description of the valid disk size,\nsuch as \"10GB-10TB\".", + "type": "string" + }, + "zone": { + "description": "[Output Only] URL of the zone where the disk type resides.\nYou must specify this field as part of the HTTP request URL. It is\nnot settable as a field in the request body.", + "type": "string" + } + }, + "type": "object" + }, + "DiskTypeAggregatedList": { + "id": "DiskTypeAggregatedList", + "properties": { + "id": { + "description": "[Output Only] Unique identifier for the resource; defined by the server.", + "type": "string" + }, + "items": { + "additionalProperties": { + "$ref": "DiskTypesScopedList", + "description": "[Output Only] Name of the scope containing this set of disk types." + }, + "description": "A list of DiskTypesScopedList resources.", + "type": "object" + }, + "kind": { + "default": "compute#diskTypeAggregatedList", + "description": "Output only. [Output Only] Type of resource. Alwayscompute#diskTypeAggregatedList.", + "readOnly": true, + "type": "string" + }, + "nextPageToken": { + "description": "[Output Only] This token allows you to get the next page of results for\nlist requests. If the number of results is larger thanmaxResults, use the nextPageToken as a value for\nthe query parameter pageToken in the next list request.\nSubsequent list requests will have their own nextPageToken to\ncontinue paging through the results.", + "type": "string" + }, + "selfLink": { + "description": "Output only. [Output Only] Server-defined URL for this resource.", + "readOnly": true, + "type": "string" + }, + "unreachables": { + "description": "Output only. [Output Only] Unreachable resources.", + "items": { + "type": "string" + }, + "readOnly": true, + "type": "array" + }, + "warning": { + "description": "[Output Only] Informational warning message.", + "properties": { + "code": { + "description": "[Output Only] A warning code, if applicable. For example, Compute\nEngine returns NO_RESULTS_ON_PAGE if there\nare 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", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", + "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "PARTIAL_SUCCESS", + "QUOTA_INFO_UNAVAILABLE", + "REQUIRED_TOS_AGREEMENT", + "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", + "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", + "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", + "UNREACHABLE" + ], + "enumDeprecated": [ + false, + false, + false, + false, + false, + false, + true, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false + ], + "enumDescriptions": [ + "Warning about failed cleanup of transient changes made by a failed\noperation.", + "A link to a deprecated resource was created.", + "When deploying and at least one of the resources has a type marked as\ndeprecated", + "The user created a boot disk that is larger than image size.", + "When deploying and at least one of the resources has a type marked as\nexperimental", + "Warning that is present in an external api call", + "Warning that value of a field has been overridden.\nDeprecated unused field.", + "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is\nnot of type HTTP/HTTPS/HTTP2.", + "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed\nwhich captures the amount of resources filtered out by\nuser-defined list filter.", + "A resource depends on a missing type", + "The route's nextHopIp address is not assigned to an instance on the\nnetwork.", + "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an\nipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not exist.", + "The route's nextHopInstance URL refers to an instance that is not on the\nsame network as the route.", + "The route's next hop instance does not have a status of RUNNING.", + "Error which is not critical. We decided to continue the process despite\nthe mentioned error.", + "No results are present on a particular list page.", + "Success is reported, but some results may be missing due to errors", + "Quota information is not available to client requests (e.g:\nregions.list).", + "The user attempted to use a resource that requires a TOS they have not\naccepted.", + "Warning that a resource is in use.", + "One or more of the resources set to auto-delete could not be deleted\nbecause they were in use.", + "When a resource schema validation is ignored.", + "Instance template used in instance group manager is valid as such, but\nits application does not make a lot of sense, because it allows only\nsingle instance in instance group.", + "When undeclared properties in the schema are present", + "A given scope cannot be reached." + ], + "type": "string" + }, + "data": { + "description": "[Output Only] Metadata about this warning in key:\nvalue format. For example:\n\n\"data\": [\n {\n \"key\": \"scope\",\n \"value\": \"zones/us-east1-d\"\n }", + "items": { + "properties": { + "key": { + "description": "[Output Only] A key that provides more detail on the warning being\nreturned. For example, for warnings where there are no results in a list\nrequest for a particular zone, this key might be scope and\nthe key value might be the zone name. Other examples might be a key\nindicating a deprecated resource and a suggested replacement, or a\nwarning about invalid network settings (for example, if an instance\nattempts 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" + }, + "DiskTypeList": { + "description": "Contains a list of disk types.", + "id": "DiskTypeList", + "properties": { + "id": { + "description": "[Output Only] Unique identifier for the resource; defined by the server.", + "type": "string" + }, + "items": { + "description": "A list of DiskType resources.", + "items": { + "$ref": "DiskType" + }, + "type": "array" + }, + "kind": { + "default": "compute#diskTypeList", + "description": "Output only. [Output Only] Type of resource. Always compute#diskTypeList\nfor disk types.", + "readOnly": true, + "type": "string" + }, + "nextPageToken": { + "description": "[Output Only] This token allows you to get the next page of results for\nlist requests. If the number of results is larger thanmaxResults, use the nextPageToken as a value for\nthe query parameter pageToken in the next list request.\nSubsequent list requests will have their own nextPageToken to\ncontinue paging through the results.", + "type": "string" + }, + "selfLink": { + "description": "Output only. [Output Only] Server-defined URL for this resource.", + "readOnly": true, + "type": "string" + }, + "warning": { + "description": "[Output Only] Informational warning message.", + "properties": { + "code": { + "description": "[Output Only] A warning code, if applicable. For example, Compute\nEngine returns NO_RESULTS_ON_PAGE if there\nare 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", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", + "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "PARTIAL_SUCCESS", + "QUOTA_INFO_UNAVAILABLE", + "REQUIRED_TOS_AGREEMENT", + "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", + "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", + "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", + "UNREACHABLE" + ], + "enumDeprecated": [ + false, + false, + false, + false, + false, + false, + true, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false + ], + "enumDescriptions": [ + "Warning about failed cleanup of transient changes made by a failed\noperation.", + "A link to a deprecated resource was created.", + "When deploying and at least one of the resources has a type marked as\ndeprecated", + "The user created a boot disk that is larger than image size.", + "When deploying and at least one of the resources has a type marked as\nexperimental", + "Warning that is present in an external api call", + "Warning that value of a field has been overridden.\nDeprecated unused field.", + "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is\nnot of type HTTP/HTTPS/HTTP2.", + "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed\nwhich captures the amount of resources filtered out by\nuser-defined list filter.", + "A resource depends on a missing type", + "The route's nextHopIp address is not assigned to an instance on the\nnetwork.", + "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an\nipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not exist.", + "The route's nextHopInstance URL refers to an instance that is not on the\nsame network as the route.", + "The route's next hop instance does not have a status of RUNNING.", + "Error which is not critical. We decided to continue the process despite\nthe mentioned error.", + "No results are present on a particular list page.", + "Success is reported, but some results may be missing due to errors", + "Quota information is not available to client requests (e.g:\nregions.list).", + "The user attempted to use a resource that requires a TOS they have not\naccepted.", + "Warning that a resource is in use.", + "One or more of the resources set to auto-delete could not be deleted\nbecause they were in use.", + "When a resource schema validation is ignored.", + "Instance template used in instance group manager is valid as such, but\nits application does not make a lot of sense, because it allows only\nsingle instance in instance group.", + "When undeclared properties in the schema are present", + "A given scope cannot be reached." + ], + "type": "string" + }, + "data": { + "description": "[Output Only] Metadata about this warning in key:\nvalue format. For example:\n\n\"data\": [\n {\n \"key\": \"scope\",\n \"value\": \"zones/us-east1-d\"\n }", + "items": { + "properties": { + "key": { + "description": "[Output Only] A key that provides more detail on the warning being\nreturned. For example, for warnings where there are no results in a list\nrequest for a particular zone, this key might be scope and\nthe key value might be the zone name. Other examples might be a key\nindicating a deprecated resource and a suggested replacement, or a\nwarning about invalid network settings (for example, if an instance\nattempts 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" + }, + "DiskTypesScopedList": { + "id": "DiskTypesScopedList", + "properties": { + "diskTypes": { + "description": "[Output Only] A list of disk types contained in this scope.", + "items": { + "$ref": "DiskType" + }, + "type": "array" + }, + "warning": { + "description": "[Output Only] Informational warning which replaces the list of disk types\nwhen the list is empty.", + "properties": { + "code": { + "description": "[Output Only] A warning code, if applicable. For example, Compute\nEngine returns NO_RESULTS_ON_PAGE if there\nare 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", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", + "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "PARTIAL_SUCCESS", + "QUOTA_INFO_UNAVAILABLE", + "REQUIRED_TOS_AGREEMENT", + "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", + "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", + "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", + "UNREACHABLE" + ], + "enumDeprecated": [ + false, + false, + false, + false, + false, + false, + true, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false + ], + "enumDescriptions": [ + "Warning about failed cleanup of transient changes made by a failed\noperation.", + "A link to a deprecated resource was created.", + "When deploying and at least one of the resources has a type marked as\ndeprecated", + "The user created a boot disk that is larger than image size.", + "When deploying and at least one of the resources has a type marked as\nexperimental", + "Warning that is present in an external api call", + "Warning that value of a field has been overridden.\nDeprecated unused field.", + "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is\nnot of type HTTP/HTTPS/HTTP2.", + "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed\nwhich captures the amount of resources filtered out by\nuser-defined list filter.", + "A resource depends on a missing type", + "The route's nextHopIp address is not assigned to an instance on the\nnetwork.", + "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an\nipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not exist.", + "The route's nextHopInstance URL refers to an instance that is not on the\nsame network as the route.", + "The route's next hop instance does not have a status of RUNNING.", + "Error which is not critical. We decided to continue the process despite\nthe mentioned error.", + "No results are present on a particular list page.", + "Success is reported, but some results may be missing due to errors", + "Quota information is not available to client requests (e.g:\nregions.list).", + "The user attempted to use a resource that requires a TOS they have not\naccepted.", + "Warning that a resource is in use.", + "One or more of the resources set to auto-delete could not be deleted\nbecause they were in use.", + "When a resource schema validation is ignored.", + "Instance template used in instance group manager is valid as such, but\nits application does not make a lot of sense, because it allows only\nsingle instance in instance group.", + "When undeclared properties in the schema are present", + "A given scope cannot be reached." + ], + "type": "string" + }, + "data": { + "description": "[Output Only] Metadata about this warning in key:\nvalue format. For example:\n\n\"data\": [\n {\n \"key\": \"scope\",\n \"value\": \"zones/us-east1-d\"\n }", + "items": { + "properties": { + "key": { + "description": "[Output Only] A key that provides more detail on the warning being\nreturned. For example, for warnings where there are no results in a list\nrequest for a particular zone, this key might be scope and\nthe key value might be the zone name. Other examples might be a key\nindicating a deprecated resource and a suggested replacement, or a\nwarning about invalid network settings (for example, if an instance\nattempts 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" + }, + "DiskUpdateKmsKeyRequest": { + "id": "DiskUpdateKmsKeyRequest", + "properties": { + "kmsKeyName": { + "description": "Optional. The new KMS key to replace the current one on the disk. If empty, the disk\nwill be re-encrypted using the primary version of the disk's current KMS\nkey.\n\nThe KMS key can be provided in the following formats:\n \n \n - projects/project_id/locations/location/keyRings/key_ring/cryptoKeys/key\n\n\nWhere project is the project ID or\nproject number.", + "type": "string" + } + }, + "type": "object" + }, + "DisksAddResourcePoliciesRequest": { + "id": "DisksAddResourcePoliciesRequest", + "properties": { + "resourcePolicies": { + "description": "Full or relative path to the resource policy to be added to this disk. You\ncan only specify one resource policy.", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "DisksRemoveResourcePoliciesRequest": { + "id": "DisksRemoveResourcePoliciesRequest", + "properties": { + "resourcePolicies": { + "description": "Resource policies to be removed from this disk.", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "DisksResizeRequest": { + "id": "DisksResizeRequest", + "properties": { + "sizeGb": { + "description": "The new size of the persistent disk, which is specified in GB.", + "format": "int64", + "type": "string" + } + }, + "type": "object" + }, + "DisksScopedList": { + "id": "DisksScopedList", + "properties": { + "disks": { + "description": "[Output Only] A list of disks contained in this scope.", + "items": { + "$ref": "Disk" + }, + "type": "array" + }, + "warning": { + "description": "[Output Only] Informational warning which replaces the list of disks when\nthe list is empty.", + "properties": { + "code": { + "description": "[Output Only] A warning code, if applicable. For example, Compute\nEngine returns NO_RESULTS_ON_PAGE if there\nare 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", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", + "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "PARTIAL_SUCCESS", + "QUOTA_INFO_UNAVAILABLE", + "REQUIRED_TOS_AGREEMENT", + "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", + "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", + "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", + "UNREACHABLE" + ], + "enumDeprecated": [ + false, + false, + false, + false, + false, + false, + true, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false + ], + "enumDescriptions": [ + "Warning about failed cleanup of transient changes made by a failed\noperation.", + "A link to a deprecated resource was created.", + "When deploying and at least one of the resources has a type marked as\ndeprecated", + "The user created a boot disk that is larger than image size.", + "When deploying and at least one of the resources has a type marked as\nexperimental", + "Warning that is present in an external api call", + "Warning that value of a field has been overridden.\nDeprecated unused field.", + "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is\nnot of type HTTP/HTTPS/HTTP2.", + "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed\nwhich captures the amount of resources filtered out by\nuser-defined list filter.", + "A resource depends on a missing type", + "The route's nextHopIp address is not assigned to an instance on the\nnetwork.", + "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an\nipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not exist.", + "The route's nextHopInstance URL refers to an instance that is not on the\nsame network as the route.", + "The route's next hop instance does not have a status of RUNNING.", + "Error which is not critical. We decided to continue the process despite\nthe mentioned error.", + "No results are present on a particular list page.", + "Success is reported, but some results may be missing due to errors", + "Quota information is not available to client requests (e.g:\nregions.list).", + "The user attempted to use a resource that requires a TOS they have not\naccepted.", + "Warning that a resource is in use.", + "One or more of the resources set to auto-delete could not be deleted\nbecause they were in use.", + "When a resource schema validation is ignored.", + "Instance template used in instance group manager is valid as such, but\nits application does not make a lot of sense, because it allows only\nsingle instance in instance group.", + "When undeclared properties in the schema are present", + "A given scope cannot be reached." + ], + "type": "string" + }, + "data": { + "description": "[Output Only] Metadata about this warning in key:\nvalue format. For example:\n\n\"data\": [\n {\n \"key\": \"scope\",\n \"value\": \"zones/us-east1-d\"\n }", + "items": { + "properties": { + "key": { + "description": "[Output Only] A key that provides more detail on the warning being\nreturned. For example, for warnings where there are no results in a list\nrequest for a particular zone, this key might be scope and\nthe key value might be the zone name. Other examples might be a key\nindicating a deprecated resource and a suggested replacement, or a\nwarning about invalid network settings (for example, if an instance\nattempts 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" + }, + "DisksStartAsyncReplicationRequest": { + "id": "DisksStartAsyncReplicationRequest", + "properties": { + "asyncSecondaryDisk": { + "description": "The secondary disk to start asynchronous replication to.\nYou can provide this as a partial or full URL to the resource. For example,\nthe following are valid values:\n \n \n - \n https://www.googleapis.com/compute/v1/projects/project/zones/zone/disks/disk\n \n - \n https://www.googleapis.com/compute/v1/projects/project/regions/region/disks/disk\n \n - \n projects/project/zones/zone/disks/disk\n \n - \n projects/project/regions/region/disks/disk\n \n - \n zones/zone/disks/disk\n \n - \n regions/region/disks/disk", + "type": "string" + } + }, + "type": "object" + }, + "DisksStopGroupAsyncReplicationResource": { + "description": "A transient resource used in compute.disks.stopGroupAsyncReplication and\ncompute.regionDisks.stopGroupAsyncReplication. It is only used to process\nrequests and is not persisted.", + "id": "DisksStopGroupAsyncReplicationResource", + "properties": { + "resourcePolicy": { + "description": "The URL of the DiskConsistencyGroupPolicy for the group of disks to stop.\nThis may be a full or partial URL, such as:\n \n \n - \n https://www.googleapis.com/compute/v1/projects/project/regions/region/resourcePolicies/resourcePolicy\n \n - \n projects/project/regions/region/resourcePolicies/resourcePolicy\n \n - \n regions/region/resourcePolicies/resourcePolicy", + "type": "string" + } + }, + "type": "object" + }, + "DisplayDevice": { + "description": "A set of Display Device options", + "id": "DisplayDevice", + "properties": { + "enableDisplay": { + "description": "Defines whether the instance has Display enabled.", + "type": "boolean" + } + }, + "type": "object" + }, + "DistributionPolicy": { + "id": "DistributionPolicy", + "properties": { + "targetShape": { + "description": "The distribution shape to which the group converges either proactively or\non resize events (depending on the value set inupdatePolicy.instanceRedistributionType).", + "enum": [ + "ANY", + "ANY_SINGLE_ZONE", + "BALANCED", + "EVEN" + ], + "enumDescriptions": [ + "The group picks zones for creating VM instances to fulfill the requested\nnumber of VMs within present resource constraints and to maximize\nutilization of unused zonal reservations. Recommended for batch workloads\nthat do not require high availability.", + "The group creates all VM instances within a single zone. The zone is\nselected based on the present resource constraints and to maximize\nutilization of unused zonal reservations.\nRecommended for batch workloads with heavy interprocess communication.", + "The group prioritizes acquisition of resources, scheduling VMs in zones\nwhere resources are available while distributing VMs as evenly as\npossible across selected zones to minimize the impact of zonal failure.\nRecommended for highly available serving workloads.", + "The group schedules VM instance creation and deletion to achieve and\nmaintain an even number of managed instances across the selected zones.\nThe distribution is even when the number of managed instances does not\ndiffer by more than 1 between any two zones. Recommended for highly\navailable serving workloads." + ], + "type": "string" + }, + "zones": { + "description": "Zones where the regional managed instance group will create and manage\nits instances.\nBy default, a regional MIG doesn't automatically select an AI zone to create\ninstances, even if an AI zone is available in the specified region. To\ncreate instances in an AI zone in the selected region, you must explicitly\nspecify it in the distribution policy together with the other preferred\nzones.", + "items": { + "$ref": "DistributionPolicyZoneConfiguration" + }, + "type": "array" + } + }, + "type": "object" + }, + "DistributionPolicyZoneConfiguration": { + "id": "DistributionPolicyZoneConfiguration", + "properties": { + "zone": { + "annotations": { + "required": [ + "compute.regionInstanceGroupManagers.insert" + ] + }, + "description": "The URL of thezone.\nThe zone must exist in the region where the managed instance group is\nlocated.", + "type": "string" + } + }, + "type": "object" + }, + "Duration": { + "description": "A Duration represents a fixed-length span of time represented\nas a count of seconds and fractions of seconds at nanosecond\nresolution. It is independent of any calendar and concepts like \"day\"\nor \"month\". Range is approximately 10,000 years.", + "id": "Duration", + "properties": { + "nanos": { + "description": "Span of time that's a fraction of a second at nanosecond resolution.\nDurations less than one second are represented with a 0\n`seconds` field and a positive `nanos` field. Must be from 0\nto 999,999,999 inclusive.", + "format": "int32", + "type": "integer" + }, + "seconds": { + "description": "Span of time at a resolution of a second. Must be from 0\nto 315,576,000,000 inclusive. Note: these bounds are computed from:\n60 sec/min * 60 min/hr * 24 hr/day * 365.25 days/year * 10000 years", + "format": "int64", + "type": "string" + } + }, + "type": "object" + }, + "ErrorInfo": { + "description": "Describes the cause of the error with structured details.\n\nExample of an error when contacting the \"pubsub.googleapis.com\" API when it\nis not enabled:\n\n { \"reason\": \"API_DISABLED\"\n \"domain\": \"googleapis.com\"\n \"metadata\": {\n \"resource\": \"projects/123\",\n \"service\": \"pubsub.googleapis.com\"\n }\n }\n\nThis response indicates that the pubsub.googleapis.com API is not enabled.\n\nExample of an error that is returned when attempting to create a Spanner\ninstance in a region that is out of stock:\n\n { \"reason\": \"STOCKOUT\"\n \"domain\": \"spanner.googleapis.com\",\n \"metadata\": {\n \"availableRegions\": \"us-central1,us-east2\"\n }\n }", + "id": "ErrorInfo", + "properties": { + "domain": { + "description": "The logical grouping to which the \"reason\" belongs. The error domain\nis typically the registered service name of the tool or product that\ngenerates the error. Example: \"pubsub.googleapis.com\". If the error is\ngenerated by some common infrastructure, the error domain must be a\nglobally unique value that identifies the infrastructure. For Google API\ninfrastructure, the error domain is \"googleapis.com\".", + "type": "string" + }, + "metadatas": { + "additionalProperties": { + "type": "string" + }, + "description": "Additional structured details about this error.\n\nKeys must match a regular expression of `a-z+` but should\nideally be lowerCamelCase. Also, they must be limited to 64 characters in\nlength. When identifying the current value of an exceeded limit, the units\nshould be contained in the key, not the value. For example, rather than\n`{\"instanceLimit\": \"100/request\"}`, should be returned as,\n`{\"instanceLimitPerRequest\": \"100\"}`, if the client exceeds the number of\ninstances that can be created in a single (batch) request.", + "type": "object" + }, + "reason": { + "description": "The reason of the error. This is a constant value that identifies the\nproximate cause of the error. Error reasons are unique within a particular\ndomain of errors. This should be at most 63 characters and match a\nregular expression of `A-Z+[A-Z0-9]`, which represents\nUPPER_SNAKE_CASE.", + "type": "string" + } + }, + "type": "object" + }, + "ExchangedPeeringRoute": { + "id": "ExchangedPeeringRoute", + "properties": { + "destRange": { + "description": "The destination range of the route.", + "type": "string" + }, + "imported": { + "description": "True if the peering route has been imported from a peer. The actual import\nhappens if the field networkPeering.importCustomRoutes is true\nfor this network, and networkPeering.exportCustomRoutes is\ntrue for the peer network, and the import does not result in a route\nconflict.", + "type": "boolean" + }, + "nextHopRegion": { + "description": "The region of peering route next hop, only applies to dynamic routes.", + "type": "string" + }, + "priority": { + "description": "The priority of the peering route.", + "format": "uint32", + "type": "integer" + }, + "type": { + "description": "The type of the peering route.", + "enum": [ + "DYNAMIC_PEERING_ROUTE", + "STATIC_PEERING_ROUTE", + "SUBNET_PEERING_ROUTE" + ], + "enumDescriptions": [ + "For routes exported from local network.", + "The peering route.", + "The peering route corresponding to subnetwork range." + ], + "type": "string" + } + }, + "type": "object" + }, + "ExchangedPeeringRoutesList": { + "id": "ExchangedPeeringRoutesList", + "properties": { + "id": { + "description": "[Output Only] Unique identifier for the resource; defined by the server.", + "type": "string" + }, + "items": { + "description": "A list of ExchangedPeeringRoute resources.", + "items": { + "$ref": "ExchangedPeeringRoute" + }, + "type": "array" + }, + "kind": { + "default": "compute#exchangedPeeringRoutesList", + "description": "Output only. [Output Only] Type of resource. Alwayscompute#exchangedPeeringRoutesList for exchanged peering\nroutes lists.", + "readOnly": true, + "type": "string" + }, + "nextPageToken": { + "description": "[Output Only] This token allows you to get the next page of results for\nlist requests. If the number of results is larger thanmaxResults, use the nextPageToken as a value for\nthe query parameter pageToken in the next list request.\nSubsequent list requests will have their own nextPageToken to\ncontinue paging through the results.", + "type": "string" + }, + "selfLink": { + "description": "Output only. [Output Only] Server-defined URL for this resource.", + "readOnly": true, + "type": "string" + }, + "warning": { + "description": "[Output Only] Informational warning message.", + "properties": { + "code": { + "description": "[Output Only] A warning code, if applicable. For example, Compute\nEngine returns NO_RESULTS_ON_PAGE if there\nare 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", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", + "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "PARTIAL_SUCCESS", + "QUOTA_INFO_UNAVAILABLE", + "REQUIRED_TOS_AGREEMENT", + "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", + "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", + "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", + "UNREACHABLE" + ], + "enumDeprecated": [ + false, + false, + false, + false, + false, + false, + true, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false + ], + "enumDescriptions": [ + "Warning about failed cleanup of transient changes made by a failed\noperation.", + "A link to a deprecated resource was created.", + "When deploying and at least one of the resources has a type marked as\ndeprecated", + "The user created a boot disk that is larger than image size.", + "When deploying and at least one of the resources has a type marked as\nexperimental", + "Warning that is present in an external api call", + "Warning that value of a field has been overridden.\nDeprecated unused field.", + "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is\nnot of type HTTP/HTTPS/HTTP2.", + "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed\nwhich captures the amount of resources filtered out by\nuser-defined list filter.", + "A resource depends on a missing type", + "The route's nextHopIp address is not assigned to an instance on the\nnetwork.", + "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an\nipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not exist.", + "The route's nextHopInstance URL refers to an instance that is not on the\nsame network as the route.", + "The route's next hop instance does not have a status of RUNNING.", + "Error which is not critical. We decided to continue the process despite\nthe mentioned error.", + "No results are present on a particular list page.", + "Success is reported, but some results may be missing due to errors", + "Quota information is not available to client requests (e.g:\nregions.list).", + "The user attempted to use a resource that requires a TOS they have not\naccepted.", + "Warning that a resource is in use.", + "One or more of the resources set to auto-delete could not be deleted\nbecause they were in use.", + "When a resource schema validation is ignored.", + "Instance template used in instance group manager is valid as such, but\nits application does not make a lot of sense, because it allows only\nsingle instance in instance group.", + "When undeclared properties in the schema are present", + "A given scope cannot be reached." + ], + "type": "string" + }, + "data": { + "description": "[Output Only] Metadata about this warning in key:\nvalue format. For example:\n\n\"data\": [\n {\n \"key\": \"scope\",\n \"value\": \"zones/us-east1-d\"\n }", + "items": { + "properties": { + "key": { + "description": "[Output Only] A key that provides more detail on the warning being\nreturned. For example, for warnings where there are no results in a list\nrequest for a particular zone, this key might be scope and\nthe key value might be the zone name. Other examples might be a key\nindicating a deprecated resource and a suggested replacement, or a\nwarning about invalid network settings (for example, if an instance\nattempts 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" + }, + "Expr": { + "description": "Represents a textual expression in the Common Expression Language (CEL)\nsyntax. CEL is a C-like expression language. The syntax and semantics of CEL\nare documented at https://github.com/google/cel-spec.\n\nExample (Comparison):\n\n title: \"Summary size limit\"\n description: \"Determines if a summary is less than 100 chars\"\n expression: \"document.summary.size() \u003c 100\"\n\nExample (Equality):\n\n title: \"Requestor is owner\"\n description: \"Determines if requestor is the document owner\"\n expression: \"document.owner == request.auth.claims.email\"\n\nExample (Logic):\n\n title: \"Public documents\"\n description: \"Determine whether the document should be publicly visible\"\n expression: \"document.type != 'private' \u0026\u0026 document.type != 'internal'\"\n\nExample (Data Manipulation):\n\n title: \"Notification string\"\n description: \"Create a notification string with a timestamp.\"\n expression: \"'New message received at ' + string(document.create_time)\"\n\nThe exact variables and functions that may be referenced within an expression\nare determined by the service that evaluates it. See the service\ndocumentation for additional information.", + "id": "Expr", + "properties": { + "description": { + "description": "Optional. Description of the expression. This is a longer text which\ndescribes the expression, e.g. when hovered over it in a UI.", + "type": "string" + }, + "expression": { + "description": "Textual representation of an expression in Common Expression Language\nsyntax.", + "type": "string" + }, + "location": { + "description": "Optional. String indicating the location of the expression for error\nreporting, e.g. a file name and a position in the file.", + "type": "string" + }, + "title": { + "description": "Optional. Title for the expression, i.e. a short string describing\nits purpose. This can be used e.g. in UIs which allow to enter the\nexpression.", + "type": "string" + } + }, + "type": "object" + }, + "ExternalVpnGateway": { + "description": "Represents an external VPN gateway.\n\nExternal VPN gateway is the on-premises VPN gateway(s) or another cloud\nprovider's VPN gateway that connects to your Google Cloud VPN gateway.\n\nTo create a highly available VPN from Google Cloud Platform to your\nVPN gateway or another cloud provider's VPN gateway, you must create a\nexternal VPN gateway resource with information about the other gateway.\n\nFor more information about using external VPN gateways, see\nCreating an HA VPN gateway and tunnel pair to a peer VPN.", + "id": "ExternalVpnGateway", + "properties": { + "creationTimestamp": { + "description": "Output only. [Output Only] Creation timestamp inRFC3339\ntext format.", + "readOnly": true, + "type": "string" + }, + "description": { + "description": "An optional description of this resource. Provide this property when you\ncreate the resource.", + "type": "string" + }, + "id": { + "description": "Output only. [Output Only] The unique identifier for the resource. This identifier is\ndefined by the server.", + "format": "uint64", + "readOnly": true, + "type": "string" + }, + "interfaces": { + "description": "A list of interfaces for this external VPN gateway.\n\nIf your peer-side gateway is an on-premises gateway and non-AWS cloud\nproviders' gateway, at most two interfaces can be provided for an external\nVPN gateway. If your peer side is an AWS virtual private gateway, four\ninterfaces should be provided for an external VPN gateway.", + "items": { + "$ref": "ExternalVpnGatewayInterface" + }, + "type": "array" + }, + "kind": { + "default": "compute#externalVpnGateway", + "description": "Output only. [Output Only] Type of the resource. Alwayscompute#externalVpnGateway for externalVpnGateways.", + "readOnly": true, + "type": "string" + }, + "labelFingerprint": { + "description": "A fingerprint for the labels being applied to this ExternalVpnGateway,\nwhich is essentially a hash of the labels set used for optimistic locking.\nThe fingerprint is initially generated by Compute Engine and changes after\nevery request to modify or update labels. You must always provide an\nup-to-date fingerprint hash in order to update or change labels,\notherwise the request will fail with error412 conditionNotMet.\n\nTo see the latest fingerprint, make a get() request to\nretrieve an ExternalVpnGateway.", + "format": "byte", + "type": "string" + }, + "labels": { + "additionalProperties": { + "type": "string" + }, + "description": "Labels for this resource. These can only be added or modified by thesetLabels method. Each label key/value pair must comply withRFC1035.\nLabel values may be empty.", + "type": "object" + }, + "name": { + "annotations": { + "required": [ + "compute.externalVpnGateways.insert" + ] + }, + "description": "Name of the resource. Provided by the client when the resource is created.\nThe name must be 1-63 characters long, and comply withRFC1035.\nSpecifically, the name must be 1-63 characters long and match the regular\nexpression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first\ncharacter must be a lowercase letter, and all following characters must be\na dash, lowercase letter, or digit, except the last character, which cannot\nbe a dash.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "type": "string" + }, + "params": { + "$ref": "ExternalVpnGatewayParams", + "description": "Input only. [Input Only] Additional params passed with the request, but not persisted\nas part of resource payload." + }, + "redundancyType": { + "description": "Indicates the user-supplied redundancy type of this external VPN gateway.", + "enum": [ + "FOUR_IPS_REDUNDANCY", + "SINGLE_IP_INTERNALLY_REDUNDANT", + "TWO_IPS_REDUNDANCY" + ], + "enumDescriptions": [ + "The external VPN gateway has four public IP addresses; at the time of\nwriting this API, the AWS virtual private gateway is an example which has\nfour public IP addresses for high availability connections; there should\nbe two VPN connections in the AWS virtual private gateway , each AWS VPN\nconnection has two public IP addresses; please make sure to put two\npublic IP addresses from one AWS VPN connection into interfaces 0 and 1\nof this external VPN gateway, and put the other two public IP addresses\nfrom another AWS VPN connection into interfaces 2 and 3 of this external\nVPN gateway. When displaying highly available configuration status\nfor the VPN tunnels connected to FOUR_IPS_REDUNDANCY external VPN\ngateway, Google will always detect whether interfaces 0 and 1 are\nconnected on one interface of HA Cloud VPN gateway, and detect whether\ninterfaces 2 and 3 are connected to another interface of the HA Cloud VPN\ngateway.", + "The external VPN gateway has only one public IP address which internally\nprovide redundancy or failover.", + "The external VPN gateway has two public IP addresses which are redundant\nwith each other, the following two types of setup on your on-premises\nside would have this type of redundancy:\n(1) Two separate on-premises gateways, each with one public IP address,\n the two on-premises gateways are redundant with each other.\n(2) A single on-premise gateway with two public IP addresses that are\n redundant with eatch other." + ], + "type": "string" + }, + "selfLink": { + "description": "Output only. [Output Only] Server-defined URL for the resource.", + "readOnly": true, + "type": "string" + } + }, + "type": "object" + }, + "ExternalVpnGatewayInterface": { + "description": "The interface for the external VPN gateway.", + "id": "ExternalVpnGatewayInterface", + "properties": { + "id": { + "description": "The numeric ID of this interface.\nThe allowed input values for this id for different redundancy types of\nexternal VPN gateway:\n \n - SINGLE_IP_INTERNALLY_REDUNDANT - 0\n - TWO_IPS_REDUNDANCY - 0, 1\n - FOUR_IPS_REDUNDANCY - 0, 1, 2, 3", + "format": "uint32", + "type": "integer" + }, + "ipAddress": { + "description": "IP address of the interface in the external VPN gateway. Only IPv4 is\nsupported. This IP address can be either from your on-premise gateway or\nanother Cloud provider's VPN gateway, it cannot be an IP address from\nGoogle Compute Engine.", + "type": "string" + }, + "ipv6Address": { + "description": "IPv6 address of the interface in the external VPN gateway. This IPv6\naddress can be either from your on-premise gateway or another Cloud\nprovider's VPN gateway, it cannot be an IP address from Google Compute\nEngine. Must specify an IPv6 address (not IPV4-mapped) using any format\ndescribed in RFC 4291 (e.g. 2001:db8:0:0:2d9:51:0:0). The output format\nis RFC 5952 format (e.g. 2001:db8::2d9:51:0:0).", + "type": "string" + } + }, + "type": "object" + }, + "ExternalVpnGatewayList": { + "description": "Response to the list request, and contains a list of externalVpnGateways.", + "id": "ExternalVpnGatewayList", + "properties": { + "etag": { + "type": "string" + }, + "id": { + "description": "[Output Only] Unique identifier for the resource; defined by the server.", + "type": "string" + }, + "items": { + "description": "A list of ExternalVpnGateway resources.", + "items": { + "$ref": "ExternalVpnGateway" + }, + "type": "array" + }, + "kind": { + "default": "compute#externalVpnGatewayList", + "description": "Output only. [Output Only] Type of resource. Always compute#externalVpnGatewayList for lists of externalVpnGateways.", + "readOnly": true, + "type": "string" + }, + "nextPageToken": { + "description": "[Output Only] This token allows you to get the next page of results for\nlist requests. If the number of results is larger thanmaxResults, use the nextPageToken as a value for\nthe query parameter pageToken in the next list request.\nSubsequent list requests will have their own nextPageToken to\ncontinue paging through the results.", + "type": "string" + }, + "selfLink": { + "description": "Output only. [Output Only] Server-defined URL for this resource.", + "readOnly": true, + "type": "string" + }, + "warning": { + "description": "[Output Only] Informational warning message.", + "properties": { + "code": { + "description": "[Output Only] A warning code, if applicable. For example, Compute\nEngine returns NO_RESULTS_ON_PAGE if there\nare 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", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", + "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "PARTIAL_SUCCESS", + "QUOTA_INFO_UNAVAILABLE", + "REQUIRED_TOS_AGREEMENT", + "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", + "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", + "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", + "UNREACHABLE" + ], + "enumDeprecated": [ + false, + false, + false, + false, + false, + false, + true, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false + ], + "enumDescriptions": [ + "Warning about failed cleanup of transient changes made by a failed\noperation.", + "A link to a deprecated resource was created.", + "When deploying and at least one of the resources has a type marked as\ndeprecated", + "The user created a boot disk that is larger than image size.", + "When deploying and at least one of the resources has a type marked as\nexperimental", + "Warning that is present in an external api call", + "Warning that value of a field has been overridden.\nDeprecated unused field.", + "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is\nnot of type HTTP/HTTPS/HTTP2.", + "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed\nwhich captures the amount of resources filtered out by\nuser-defined list filter.", + "A resource depends on a missing type", + "The route's nextHopIp address is not assigned to an instance on the\nnetwork.", + "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an\nipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not exist.", + "The route's nextHopInstance URL refers to an instance that is not on the\nsame network as the route.", + "The route's next hop instance does not have a status of RUNNING.", + "Error which is not critical. We decided to continue the process despite\nthe mentioned error.", + "No results are present on a particular list page.", + "Success is reported, but some results may be missing due to errors", + "Quota information is not available to client requests (e.g:\nregions.list).", + "The user attempted to use a resource that requires a TOS they have not\naccepted.", + "Warning that a resource is in use.", + "One or more of the resources set to auto-delete could not be deleted\nbecause they were in use.", + "When a resource schema validation is ignored.", + "Instance template used in instance group manager is valid as such, but\nits application does not make a lot of sense, because it allows only\nsingle instance in instance group.", + "When undeclared properties in the schema are present", + "A given scope cannot be reached." + ], + "type": "string" + }, + "data": { + "description": "[Output Only] Metadata about this warning in key:\nvalue format. For example:\n\n\"data\": [\n {\n \"key\": \"scope\",\n \"value\": \"zones/us-east1-d\"\n }", + "items": { + "properties": { + "key": { + "description": "[Output Only] A key that provides more detail on the warning being\nreturned. For example, for warnings where there are no results in a list\nrequest for a particular zone, this key might be scope and\nthe key value might be the zone name. Other examples might be a key\nindicating a deprecated resource and a suggested replacement, or a\nwarning about invalid network settings (for example, if an instance\nattempts 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" + }, + "ExternalVpnGatewayParams": { + "id": "ExternalVpnGatewayParams", + "properties": { + "resourceManagerTags": { + "additionalProperties": { + "type": "string" + }, + "description": "Tag keys/values directly bound to this resource.\nTag keys and values have the same definition as resource\nmanager tags. The field is allowed for INSERT\nonly. The keys/values to set on the resource should be specified in\neither ID { : } or Namespaced format\n{ : }.\nFor example the following are valid inputs:\n* {\"tagKeys/333\" : \"tagValues/444\", \"tagKeys/123\" : \"tagValues/456\"}\n* {\"123/environment\" : \"production\", \"345/abc\" : \"xyz\"}\nNote:\n* Invalid combinations of ID \u0026 namespaced format is not supported. For\n instance: {\"123/environment\" : \"tagValues/444\"} is invalid.\n* Inconsistent format is not supported. For instance:\n {\"tagKeys/333\" : \"tagValues/444\", \"123/env\" : \"prod\"} is invalid.", + "type": "object" + } + }, + "type": "object" + }, + "FileContentBuffer": { + "id": "FileContentBuffer", + "properties": { + "content": { + "description": "The raw content in the secure keys file.", + "format": "byte", + "type": "string" + }, + "fileType": { + "description": "The file type of source file.", + "enum": [ + "BIN", + "UNDEFINED", + "X509" + ], + "enumDescriptions": [ + "", + "", + "" + ], + "type": "string" + } + }, + "type": "object" + }, + "Firewall": { + "description": "Represents a Firewall Rule resource.\n\nFirewall rules allow or deny ingress traffic to, and egress traffic from your\ninstances. For more information, readFirewall rules.", + "id": "Firewall", + "properties": { + "allowed": { + "description": "The list of ALLOW rules specified by this firewall. Each rule specifies a\nprotocol and port-range tuple that describes a permitted connection.", + "items": { + "properties": { + "IPProtocol": { + "description": "The IP protocol to which this rule applies. The protocol type is\nrequired when creating a firewall rule. This value can either be one of the\nfollowing well known protocol strings (tcp, udp,icmp, esp, ah, ipip,sctp) or the IP protocol number.", + "type": "string" + }, + "ports": { + "description": "An optional list of ports to which this rule applies.\nThis field is only applicable for the UDP or TCP protocol.\nEach entry must be either an integer or a range.\nIf not specified, this rule applies to connections through any port.\n\nExample inputs include: [\"22\"], [\"80\",\"443\"],\nand [\"12345-12349\"].", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "type": "array" + }, + "creationTimestamp": { + "description": "Output only. [Output Only] Creation timestamp inRFC3339\ntext format.", + "readOnly": true, + "type": "string" + }, + "denied": { + "description": "The list of DENY rules specified by this firewall. Each rule specifies a\nprotocol and port-range tuple that describes a denied connection.", + "items": { + "properties": { + "IPProtocol": { + "description": "The IP protocol to which this rule applies. The protocol type is\nrequired when creating a firewall rule. This value can either be one of the\nfollowing well known protocol strings (tcp, udp,icmp, esp, ah, ipip,sctp) or the IP protocol number.", + "type": "string" + }, + "ports": { + "description": "An optional list of ports to which this rule applies.\nThis field is only applicable for the UDP or TCP protocol.\nEach entry must be either an integer or a range.\nIf not specified, this rule applies to connections through any port.\n\nExample inputs include: [\"22\"], [\"80\",\"443\"],\nand [\"12345-12349\"].", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "type": "array" + }, + "description": { + "description": "An optional description of this resource. Provide this field when you\ncreate the resource.", + "type": "string" + }, + "destinationRanges": { + "description": "If destination ranges are specified, the firewall rule applies only to\ntraffic that has destination IP address in these ranges. These ranges must\nbe expressed inCIDR format. Both IPv4 and IPv6 are supported.", + "items": { + "type": "string" + }, + "type": "array" + }, + "direction": { + "description": "Direction of traffic to which this firewall applies, either `INGRESS` or\n`EGRESS`. The default is `INGRESS`. For `EGRESS` traffic, you cannot\nspecify the sourceTags fields.", + "enum": [ + "EGRESS", + "INGRESS" + ], + "enumDescriptions": [ + "Indicates that firewall should apply to outgoing traffic.", + "Indicates that firewall should apply to incoming traffic." + ], + "type": "string" + }, + "disabled": { + "description": "Denotes whether the firewall rule is disabled. When set to true, the\nfirewall rule is not enforced and the network behaves as if it did not\nexist. If this is unspecified, the firewall rule will be enabled.", + "type": "boolean" + }, + "id": { + "description": "Output only. [Output Only] The unique identifier for the resource. This identifier is\ndefined by the server.", + "format": "uint64", + "readOnly": true, + "type": "string" + }, + "kind": { + "default": "compute#firewall", + "description": "Output only. [Output Only] Type of the resource. Always compute#firewall\nfor firewall rules.", + "readOnly": true, + "type": "string" + }, + "logConfig": { + "$ref": "FirewallLogConfig", + "description": "This field denotes the logging options for a particular firewall rule. If\nlogging is enabled, logs will be exported to Cloud Logging." + }, + "name": { + "annotations": { + "required": [ + "compute.firewalls.insert", + "compute.firewalls.patch" + ] + }, + "description": "Name of the resource; provided by the client when the resource is created.\nThe name must be 1-63 characters long, and comply withRFC1035.\nSpecifically, the name must be 1-63 characters long and match the regular\nexpression `[a-z]([-a-z0-9]*[a-z0-9])?`. The first character\nmust be a lowercase letter, and all following characters (except for the\nlast character) must be a dash, lowercase letter, or digit. The last\ncharacter must be a lowercase letter or digit.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "type": "string" + }, + "network": { + "description": "URL of the network resource for this firewall rule. If not\nspecified when creating a firewall rule, the default network\nis used:\n\nglobal/networks/default\n\nIf you choose to specify this field, you can specify the network as a full \nor partial URL. For example, the following are all valid URLs: \n \n - \n https://www.googleapis.com/compute/v1/projects/myproject/global/networks/my-network \n - projects/myproject/global/networks/my-network \n - global/networks/default", + "type": "string" + }, + "params": { + "$ref": "FirewallParams", + "description": "Input only. [Input Only] Additional params passed with the request, but not persisted\nas part of resource payload." + }, + "priority": { + "description": "Priority for this rule.\nThis is an integer between `0` and `65535`, both inclusive.\nThe default value is `1000`.\nRelative priorities determine which rule takes effect if multiple rules\napply. Lower values indicate higher priority. For example, a rule with\npriority `0` has higher precedence than a rule with priority `1`.\nDENY rules take precedence over ALLOW rules if they have equal priority.\nNote that VPC networks have implied\nrules with a priority of `65535`. To avoid conflicts with the implied\nrules, use a priority number less than `65535`.", + "format": "int32", + "type": "integer" + }, + "selfLink": { + "description": "[Output Only] Server-defined URL for the resource.", + "type": "string" + }, + "sourceRanges": { + "description": "If source ranges are specified, the firewall rule applies only to traffic\nthat has a source IP address in these ranges. These ranges must be\nexpressed inCIDR format. One or both of sourceRanges\nand sourceTags may be set.\nIf both fields are set, the rule applies to traffic that has a\nsource IP address within sourceRanges OR a source IP\nfrom a resource with a matching tag listed in thesourceTags field. The connection does not need to match\nboth fields for the rule to\napply. Both IPv4 and IPv6 are supported.", + "items": { + "type": "string" + }, + "type": "array" + }, + "sourceServiceAccounts": { + "description": "If source service accounts are specified, the firewall rules apply only to\ntraffic originating from an instance with a service account in this list.\nSource service accounts cannot be used to control traffic to an instance's\nexternal IP address because service accounts are associated with an\ninstance, not an IP address.sourceRanges can be set at the same time assourceServiceAccounts.\nIf both are set, the firewall applies to traffic that\nhas a source IP address within the sourceRanges OR a source\nIP that belongs to an instance with service account listed insourceServiceAccount. The connection does not need to match\nboth fields for the firewall to apply.sourceServiceAccounts cannot be used at the same time assourceTags or targetTags.", + "items": { + "type": "string" + }, + "type": "array" + }, + "sourceTags": { + "description": "If source tags are specified, the firewall rule applies only to traffic\nwith source IPs that match the primary network interfaces of VM instances\nthat have the tag and are in the same VPC network.\nSource tags cannot be used to control traffic to an instance's external IP\naddress, it only applies to traffic between instances in the same virtual\nnetwork. Because tags are associated with instances, not IP addresses.\nOne or both of sourceRanges and sourceTags may be\nset. If both fields are set, the firewall applies to traffic that has a\nsource IP address within sourceRanges OR a source IP from a\nresource with a matching tag listed in the sourceTags\nfield. The connection does not need to match both fields for the\nfirewall to apply.", + "items": { + "type": "string" + }, + "type": "array" + }, + "targetServiceAccounts": { + "description": "A list of service accounts indicating sets of instances located in the\nnetwork that may make network connections as specified inallowed[].targetServiceAccounts cannot be used at the same time astargetTags or sourceTags.\nIf neither targetServiceAccounts nor targetTags\nare specified, the firewall rule applies to all instances on the specified\nnetwork.", + "items": { + "type": "string" + }, + "type": "array" + }, + "targetTags": { + "description": "A list of tags that controls which instances the firewall rule\napplies to. If targetTags are specified, then the firewall\nrule applies only to instances in the VPC network that have one of those\ntags. If no targetTags are specified, the firewall rule\napplies to all instances on the specified network.", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "FirewallList": { + "description": "Contains a list of firewalls.", + "id": "FirewallList", + "properties": { + "id": { + "description": "[Output Only] Unique identifier for the resource; defined by the server.", + "type": "string" + }, + "items": { + "description": "A list of Firewall resources.", + "items": { + "$ref": "Firewall" + }, + "type": "array" + }, + "kind": { + "default": "compute#firewallList", + "description": "Output only. [Output Only] Type of resource. Always compute#firewallList\nfor lists of firewalls.", + "readOnly": true, + "type": "string" + }, + "nextPageToken": { + "description": "[Output Only] This token allows you to get the next page of results for\nlist requests. If the number of results is larger thanmaxResults, use the nextPageToken as a value for\nthe query parameter pageToken in the next list request.\nSubsequent list requests will have their own nextPageToken to\ncontinue paging through the results.", + "type": "string" + }, + "selfLink": { + "description": "Output only. [Output Only] Server-defined URL for this resource.", + "readOnly": true, + "type": "string" + }, + "warning": { + "description": "[Output Only] Informational warning message.", + "properties": { + "code": { + "description": "[Output Only] A warning code, if applicable. For example, Compute\nEngine returns NO_RESULTS_ON_PAGE if there\nare 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", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", + "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "PARTIAL_SUCCESS", + "QUOTA_INFO_UNAVAILABLE", + "REQUIRED_TOS_AGREEMENT", + "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", + "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", + "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", + "UNREACHABLE" + ], + "enumDeprecated": [ + false, + false, + false, + false, + false, + false, + true, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false + ], + "enumDescriptions": [ + "Warning about failed cleanup of transient changes made by a failed\noperation.", + "A link to a deprecated resource was created.", + "When deploying and at least one of the resources has a type marked as\ndeprecated", + "The user created a boot disk that is larger than image size.", + "When deploying and at least one of the resources has a type marked as\nexperimental", + "Warning that is present in an external api call", + "Warning that value of a field has been overridden.\nDeprecated unused field.", + "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is\nnot of type HTTP/HTTPS/HTTP2.", + "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed\nwhich captures the amount of resources filtered out by\nuser-defined list filter.", + "A resource depends on a missing type", + "The route's nextHopIp address is not assigned to an instance on the\nnetwork.", + "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an\nipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not exist.", + "The route's nextHopInstance URL refers to an instance that is not on the\nsame network as the route.", + "The route's next hop instance does not have a status of RUNNING.", + "Error which is not critical. We decided to continue the process despite\nthe mentioned error.", + "No results are present on a particular list page.", + "Success is reported, but some results may be missing due to errors", + "Quota information is not available to client requests (e.g:\nregions.list).", + "The user attempted to use a resource that requires a TOS they have not\naccepted.", + "Warning that a resource is in use.", + "One or more of the resources set to auto-delete could not be deleted\nbecause they were in use.", + "When a resource schema validation is ignored.", + "Instance template used in instance group manager is valid as such, but\nits application does not make a lot of sense, because it allows only\nsingle instance in instance group.", + "When undeclared properties in the schema are present", + "A given scope cannot be reached." + ], + "type": "string" + }, + "data": { + "description": "[Output Only] Metadata about this warning in key:\nvalue format. For example:\n\n\"data\": [\n {\n \"key\": \"scope\",\n \"value\": \"zones/us-east1-d\"\n }", + "items": { + "properties": { + "key": { + "description": "[Output Only] A key that provides more detail on the warning being\nreturned. For example, for warnings where there are no results in a list\nrequest for a particular zone, this key might be scope and\nthe key value might be the zone name. Other examples might be a key\nindicating a deprecated resource and a suggested replacement, or a\nwarning about invalid network settings (for example, if an instance\nattempts 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" + }, + "FirewallLogConfig": { + "description": "The available logging options for a firewall rule.", + "id": "FirewallLogConfig", + "properties": { + "enable": { + "description": "This field denotes whether to enable logging for a particular firewall\nrule.", + "type": "boolean" + }, + "metadata": { + "description": "This field can only be specified for a particular firewall rule if\nlogging is enabled for that rule. This field denotes whether to include\nor exclude metadata for firewall logs.", + "enum": [ + "EXCLUDE_ALL_METADATA", + "INCLUDE_ALL_METADATA" + ], + "enumDescriptions": [ + "", + "" + ], + "type": "string" + } + }, + "type": "object" + }, + "FirewallParams": { + "description": "Additional firewall parameters.", + "id": "FirewallParams", + "properties": { + "resourceManagerTags": { + "additionalProperties": { + "type": "string" + }, + "description": "Tag keys/values directly bound to this resource.\nTag keys and values have the same definition as resource\nmanager tags. The field is allowed for INSERT\nonly. The keys/values to set on the resource should be specified in\neither ID { : } or Namespaced format\n{ : }.\nFor example the following are valid inputs:\n* {\"tagKeys/333\" : \"tagValues/444\", \"tagKeys/123\" : \"tagValues/456\"}\n* {\"123/environment\" : \"production\", \"345/abc\" : \"xyz\"}\nNote:\n* Invalid combinations of ID \u0026 namespaced format is not supported. For\n instance: {\"123/environment\" : \"tagValues/444\"} is invalid.", + "type": "object" + } + }, + "type": "object" + }, + "FirewallPoliciesListAssociationsResponse": { + "id": "FirewallPoliciesListAssociationsResponse", + "properties": { + "associations": { + "description": "A list of associations.", + "items": { + "$ref": "FirewallPolicyAssociation" + }, + "type": "array" + }, + "kind": { + "default": "compute#firewallPoliciesListAssociationsResponse", + "description": "Output only. [Output Only] Type of firewallPolicy associations. Alwayscompute#FirewallPoliciesListAssociations for lists of\nfirewallPolicy associations.", + "readOnly": true, + "type": "string" + } + }, + "type": "object" + }, + "FirewallPoliciesScopedList": { + "id": "FirewallPoliciesScopedList", + "properties": { + "firewallPolicies": { + "description": "A list of firewall policies contained in this scope.", + "items": { + "$ref": "FirewallPolicy" + }, + "type": "array" + }, + "warning": { + "description": "Informational warning which replaces the list of firewall policies when\nthe list is empty.", + "properties": { + "code": { + "description": "[Output Only] A warning code, if applicable. For example, Compute\nEngine returns NO_RESULTS_ON_PAGE if there\nare 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", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", + "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "PARTIAL_SUCCESS", + "QUOTA_INFO_UNAVAILABLE", + "REQUIRED_TOS_AGREEMENT", + "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", + "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", + "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", + "UNREACHABLE" + ], + "enumDeprecated": [ + false, + false, + false, + false, + false, + false, + true, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false + ], + "enumDescriptions": [ + "Warning about failed cleanup of transient changes made by a failed\noperation.", + "A link to a deprecated resource was created.", + "When deploying and at least one of the resources has a type marked as\ndeprecated", + "The user created a boot disk that is larger than image size.", + "When deploying and at least one of the resources has a type marked as\nexperimental", + "Warning that is present in an external api call", + "Warning that value of a field has been overridden.\nDeprecated unused field.", + "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is\nnot of type HTTP/HTTPS/HTTP2.", + "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed\nwhich captures the amount of resources filtered out by\nuser-defined list filter.", + "A resource depends on a missing type", + "The route's nextHopIp address is not assigned to an instance on the\nnetwork.", + "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an\nipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not exist.", + "The route's nextHopInstance URL refers to an instance that is not on the\nsame network as the route.", + "The route's next hop instance does not have a status of RUNNING.", + "Error which is not critical. We decided to continue the process despite\nthe mentioned error.", + "No results are present on a particular list page.", + "Success is reported, but some results may be missing due to errors", + "Quota information is not available to client requests (e.g:\nregions.list).", + "The user attempted to use a resource that requires a TOS they have not\naccepted.", + "Warning that a resource is in use.", + "One or more of the resources set to auto-delete could not be deleted\nbecause they were in use.", + "When a resource schema validation is ignored.", + "Instance template used in instance group manager is valid as such, but\nits application does not make a lot of sense, because it allows only\nsingle instance in instance group.", + "When undeclared properties in the schema are present", + "A given scope cannot be reached." + ], + "type": "string" + }, + "data": { + "description": "[Output Only] Metadata about this warning in key:\nvalue format. For example:\n\n\"data\": [\n {\n \"key\": \"scope\",\n \"value\": \"zones/us-east1-d\"\n }", + "items": { + "properties": { + "key": { + "description": "[Output Only] A key that provides more detail on the warning being\nreturned. For example, for warnings where there are no results in a list\nrequest for a particular zone, this key might be scope and\nthe key value might be the zone name. Other examples might be a key\nindicating a deprecated resource and a suggested replacement, or a\nwarning about invalid network settings (for example, if an instance\nattempts 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" + }, + "FirewallPolicy": { + "description": "Represents a Firewall Policy resource.", + "id": "FirewallPolicy", + "properties": { + "associations": { + "description": "A list of associations that belong to this firewall policy.", + "items": { + "$ref": "FirewallPolicyAssociation" + }, + "type": "array" + }, + "creationTimestamp": { + "description": "Output only. [Output Only] Creation timestamp inRFC3339\ntext format.", + "readOnly": true, + "type": "string" + }, + "description": { + "description": "An optional description of this resource. Provide this property when you\ncreate the resource.", + "type": "string" + }, + "displayName": { + "deprecated": true, + "description": "Deprecated, please use short name instead. User-provided name of the\nOrganization firewall policy. The name should be unique in the organization\nin which the firewall policy is created.\nThis field is not applicable to network firewall policies.\nThis name must be set on creation and cannot be changed.\nThe name must be 1-63 characters long, and comply\nwith RFC1035. Specifically, the name must be 1-63 characters\nlong and match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which\nmeans the first character must be a lowercase letter, and all following\ncharacters must be a dash, lowercase letter, or digit, except the last\ncharacter, which cannot be a dash.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "type": "string" + }, + "fingerprint": { + "description": "Specifies a fingerprint for this resource, which is essentially a hash of\nthe metadata's contents and used for optimistic locking. The\nfingerprint is initially generated by Compute Engine and changes after\nevery request to modify or update metadata. You must always provide an\nup-to-date fingerprint hash in order to update or change metadata,\notherwise the request will fail with error412 conditionNotMet.\n\nTo see the latest fingerprint, make get() request to the\nfirewall policy.", + "format": "byte", + "type": "string" + }, + "id": { + "description": "[Output Only] The unique identifier for the resource. This identifier is\ndefined by the server.", + "format": "uint64", + "type": "string" + }, + "kind": { + "default": "compute#firewallPolicy", + "description": "Output only. [Output only] Type of the resource. Alwayscompute#firewallPolicyfor firewall policies", + "readOnly": true, + "type": "string" + }, + "name": { + "description": "Name of the resource. For Organization Firewall Policies it's a\n[Output Only] numeric ID allocated by Google Cloud which uniquely\nidentifies the Organization Firewall Policy.", + "type": "string" + }, + "packetMirroringRules": { + "description": "A list of packet mirroring rules that belong to this policy.", + "items": { + "$ref": "FirewallPolicyRule" + }, + "type": "array" + }, + "parent": { + "description": "Output only. [Output Only] The parent of the firewall policy.\nThis field is not applicable to network firewall policies.", + "readOnly": true, + "type": "string" + }, + "policyType": { + "description": "The type of the firewall policy. This field can be one of\nVPC_POLICY, RDMA_ROCE_POLICY or ULL_POLICY.\n\nNote: if not specified then VPC_POLICY will be used.", + "enum": [ + "RDMA_ROCE_POLICY", + "ULL_POLICY", + "VPC_POLICY" + ], + "enumDescriptions": [ + "", + "", + "" + ], + "type": "string" + }, + "region": { + "description": "Output only. [Output Only] URL of the region where the regional firewall policy resides.\nThis field is not applicable to global firewall policies.\nYou must specify this field as part of the HTTP request URL. It is\nnot settable as a field in the request body.", + "readOnly": true, + "type": "string" + }, + "ruleTupleCount": { + "description": "Output only. [Output Only] Total count of all firewall policy rule tuples. A firewall\npolicy can not exceed a set number of tuples.", + "format": "int32", + "readOnly": true, + "type": "integer" + }, + "rules": { + "description": "A list of rules that belong to this policy.\nThere must always be a default rule (rule with priority 2147483647 and\nmatch \"*\"). If no rules are provided when creating a firewall policy, a\ndefault rule with action \"allow\" will be added.", + "items": { + "$ref": "FirewallPolicyRule" + }, + "type": "array" + }, + "selfLink": { + "description": "[Output Only] Server-defined URL for the resource.", + "type": "string" + }, + "selfLinkWithId": { + "description": "Output only. [Output Only] Server-defined URL for this resource with the resource id.", + "readOnly": true, + "type": "string" + }, + "shortName": { + "description": "User-provided name of the Organization firewall policy. The name should be\nunique in the organization in which the firewall policy is created.\nThis field is not applicable to network firewall policies.\nThis name must be set on creation and cannot be changed. The name must be\n1-63 characters long, and comply with RFC1035.\nSpecifically, the name must be 1-63 characters long and match the regular\nexpression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first\ncharacter must be a lowercase letter, and all following characters must\nbe a dash, lowercase letter, or digit, except the last character, which\ncannot be a dash.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "type": "string" + } + }, + "type": "object" + }, + "FirewallPolicyAssociation": { + "id": "FirewallPolicyAssociation", + "properties": { + "attachmentTarget": { + "description": "The target that the firewall policy is attached to.", + "type": "string" + }, + "displayName": { + "deprecated": true, + "description": "[Output Only] Deprecated, please use short name instead. The display name\nof the firewall policy of the association.", + "type": "string" + }, + "firewallPolicyId": { + "description": "Output only. [Output Only] The firewall policy ID of the association.", + "readOnly": true, + "type": "string" + }, + "name": { + "description": "The name for an association.", + "type": "string" + }, + "shortName": { + "description": "Output only. [Output Only] The short name of the firewall policy of the association.", + "readOnly": true, + "type": "string" + } + }, + "type": "object" + }, + "FirewallPolicyList": { + "id": "FirewallPolicyList", + "properties": { + "id": { + "description": "[Output Only] Unique identifier for the resource; defined by the server.", + "type": "string" + }, + "items": { + "description": "A list of FirewallPolicy resources.", + "items": { + "$ref": "FirewallPolicy" + }, + "type": "array" + }, + "kind": { + "default": "compute#firewallPolicyList", + "description": "Output only. [Output Only] Type of resource. Alwayscompute#firewallPolicyList for listsof FirewallPolicies", + "readOnly": true, + "type": "string" + }, + "nextPageToken": { + "description": "[Output Only] This token allows you to get the next page of results for\nlist requests. If the number of results is larger thanmaxResults, use the nextPageToken as a value for\nthe query parameter pageToken in the next list request.\nSubsequent list requests will have their own nextPageToken to\ncontinue paging through the results.", + "type": "string" + }, + "warning": { + "description": "[Output Only] Informational warning message.", + "properties": { + "code": { + "description": "[Output Only] A warning code, if applicable. For example, Compute\nEngine returns NO_RESULTS_ON_PAGE if there\nare 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", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", + "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "PARTIAL_SUCCESS", + "QUOTA_INFO_UNAVAILABLE", + "REQUIRED_TOS_AGREEMENT", + "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", + "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", + "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", + "UNREACHABLE" + ], + "enumDeprecated": [ + false, + false, + false, + false, + false, + false, + true, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false + ], + "enumDescriptions": [ + "Warning about failed cleanup of transient changes made by a failed\noperation.", + "A link to a deprecated resource was created.", + "When deploying and at least one of the resources has a type marked as\ndeprecated", + "The user created a boot disk that is larger than image size.", + "When deploying and at least one of the resources has a type marked as\nexperimental", + "Warning that is present in an external api call", + "Warning that value of a field has been overridden.\nDeprecated unused field.", + "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is\nnot of type HTTP/HTTPS/HTTP2.", + "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed\nwhich captures the amount of resources filtered out by\nuser-defined list filter.", + "A resource depends on a missing type", + "The route's nextHopIp address is not assigned to an instance on the\nnetwork.", + "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an\nipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not exist.", + "The route's nextHopInstance URL refers to an instance that is not on the\nsame network as the route.", + "The route's next hop instance does not have a status of RUNNING.", + "Error which is not critical. We decided to continue the process despite\nthe mentioned error.", + "No results are present on a particular list page.", + "Success is reported, but some results may be missing due to errors", + "Quota information is not available to client requests (e.g:\nregions.list).", + "The user attempted to use a resource that requires a TOS they have not\naccepted.", + "Warning that a resource is in use.", + "One or more of the resources set to auto-delete could not be deleted\nbecause they were in use.", + "When a resource schema validation is ignored.", + "Instance template used in instance group manager is valid as such, but\nits application does not make a lot of sense, because it allows only\nsingle instance in instance group.", + "When undeclared properties in the schema are present", + "A given scope cannot be reached." + ], + "type": "string" + }, + "data": { + "description": "[Output Only] Metadata about this warning in key:\nvalue format. For example:\n\n\"data\": [\n {\n \"key\": \"scope\",\n \"value\": \"zones/us-east1-d\"\n }", + "items": { + "properties": { + "key": { + "description": "[Output Only] A key that provides more detail on the warning being\nreturned. For example, for warnings where there are no results in a list\nrequest for a particular zone, this key might be scope and\nthe key value might be the zone name. Other examples might be a key\nindicating a deprecated resource and a suggested replacement, or a\nwarning about invalid network settings (for example, if an instance\nattempts 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" + }, + "FirewallPolicyRule": { + "description": "Represents a rule that describes one or more match conditions along with\nthe action to be taken when traffic matches this condition (allow or deny).", + "id": "FirewallPolicyRule", + "properties": { + "action": { + "description": "The Action to perform when the client connection triggers the rule.\nValid actions for firewall rules are: \"allow\", \"deny\",\n\"apply_security_profile_group\" and \"goto_next\" (\n\"apply_security_profile_group\" can be specified only for global\nnetwork firewall policies or hierarchical firewall policies).\nValid actions for packet mirroring rules are: \"mirror\", \"do_not_mirror\"\nand \"goto_next\".", + "type": "string" + }, + "description": { + "description": "An optional description for this resource.", + "type": "string" + }, + "direction": { + "description": "The direction in which this rule applies.", + "enum": [ + "EGRESS", + "INGRESS" + ], + "enumDescriptions": [ + "", + "" + ], + "type": "string" + }, + "disabled": { + "description": "Denotes whether the firewall policy rule is disabled. When set to true,\nthe firewall policy rule is not enforced and traffic behaves as if it did\nnot exist. If this is unspecified, the firewall policy rule will be\nenabled.", + "type": "boolean" + }, + "enableLogging": { + "description": "Denotes whether to enable logging for a particular rule. If logging is\nenabled, logs will be exported to the configured export destination in\nStackdriver. Logs may be exported to BigQuery or Pub/Sub. Note: you\ncannot enable logging on \"goto_next\" rules.", + "type": "boolean" + }, + "kind": { + "default": "compute#firewallPolicyRule", + "description": "Output only. [Output only] Type of the resource. Returnscompute#firewallPolicyRule for firewall rules andcompute#packetMirroringRule for packet mirroring rules.", + "readOnly": true, + "type": "string" + }, + "match": { + "$ref": "FirewallPolicyRuleMatcher", + "description": "A match condition that incoming traffic is evaluated against.\nIf it evaluates to true, the corresponding 'action' is enforced." + }, + "priority": { + "description": "An integer indicating the priority of a rule in the list. The priority\nmust be a positive value between 0 and 2147483647.\nRules are evaluated from highest to lowest priority where 0 is the\nhighest priority and 2147483647 is the lowest priority.", + "format": "int32", + "type": "integer" + }, + "ruleName": { + "description": "An optional name for the rule. This field is not a unique identifier\nand can be updated.", + "type": "string" + }, + "ruleTupleCount": { + "description": "Output only. [Output Only] Calculation of the complexity of a single firewall policy\nrule.", + "format": "int32", + "readOnly": true, + "type": "integer" + }, + "securityProfileGroup": { + "description": "A fully-qualified URL of a SecurityProfileGroup resource instance.\nExample:\nhttps://networksecurity.googleapis.com/v1/projects/{project}/locations/{location}/securityProfileGroups/my-security-profile-group\nMust be specified if action is one of 'apply_security_profile_group' or\n'mirror'. Cannot be specified for other actions. Can be specified only\nfor global network firewall policies or hierarchical firewall policies.", + "type": "string" + }, + "targetForwardingRules": { + "description": "A list of forwarding rules to which this rule applies.\nThis field allows you to control which load balancers get this rule.\nFor example, the following are valid values:\n \n \n - https://www.googleapis.com/compute/v1/projects/project/global/forwardingRules/forwardingRule\n - https://www.googleapis.com/compute/v1/projects/project/regions/region/forwardingRules/forwardingRule\n - projects/project/global/\n forwardingRules/forwardingRule\n - projects/project/regions/region/forwardingRules/\n forwardingRule", + "items": { + "type": "string" + }, + "type": "array" + }, + "targetResources": { + "description": "A list of network resource URLs to which this rule applies. This field\nallows you to control which network's VMs get this rule. If this field\nis left blank, all VMs within the organization will receive the rule.", + "items": { + "type": "string" + }, + "type": "array" + }, + "targetSecureTags": { + "description": "A list of secure tags that controls which instances the firewall rule\napplies to. If targetSecureTag are specified, then the\nfirewall rule applies only to instances in the VPC network that have one\nof those EFFECTIVE secure tags, if all the target_secure_tag are in\nINEFFECTIVE state, then this rule will be ignored.targetSecureTag may not be set at the same time astargetServiceAccounts.\nIf neither targetServiceAccounts nortargetSecureTag are specified, the firewall rule applies\nto all instances on the specified network.\nMaximum number of target label tags allowed is 256.", + "items": { + "$ref": "FirewallPolicyRuleSecureTag" + }, + "type": "array" + }, + "targetServiceAccounts": { + "description": "A list of service accounts indicating the sets of instances that are\napplied with this rule.", + "items": { + "type": "string" + }, + "type": "array" + }, + "targetType": { + "description": "Target types of the firewall policy rule.\nDefault value is INSTANCES.", + "enum": [ + "INSTANCES", + "INTERNAL_MANAGED_LB" + ], + "enumDescriptions": [ + "", + "" + ], + "type": "string" + }, + "tlsInspect": { + "description": "Boolean flag indicating if the traffic should be TLS decrypted.\nCan be set only if action = 'apply_security_profile_group' and cannot\nbe set for other actions.", + "type": "boolean" + } + }, + "type": "object" + }, + "FirewallPolicyRuleMatcher": { + "description": "Represents a match condition that incoming traffic is evaluated against.\nExactly one field must be specified.", + "id": "FirewallPolicyRuleMatcher", + "properties": { + "destAddressGroups": { + "description": "Address groups which should be matched against the traffic destination.\nMaximum number of destination address groups is 10.", + "items": { + "type": "string" + }, + "type": "array" + }, + "destFqdns": { + "description": "Fully Qualified Domain Name (FQDN) which should be matched against\ntraffic destination.\nMaximum number of destination fqdn allowed is 100.", + "items": { + "type": "string" + }, + "type": "array" + }, + "destIpRanges": { + "description": "CIDR IP address range.\nMaximum number of destination CIDR IP ranges allowed is 5000.", + "items": { + "type": "string" + }, + "type": "array" + }, + "destNetworkContext": { + "description": "Network context of the traffic destination. Allowed values are:\n \n \n - UNSPECIFIED\n - INTERNET\n - NON_INTERNET", + "enum": [ + "INTERNET", + "INTRA_VPC", + "NON_INTERNET", + "UNSPECIFIED", + "VPC_NETWORKS" + ], + "enumDescriptions": [ + "", + "", + "", + "", + "" + ], + "type": "string" + }, + "destNetworkType": { + "description": "Network type of the traffic destination. Allowed values are:\n \n \n - UNSPECIFIED\n - INTERNET\n - NON_INTERNET", + "enum": [ + "INTERNET", + "INTRA_VPC", + "NON_INTERNET", + "UNSPECIFIED", + "VPC_NETWORKS" + ], + "enumDescriptions": [ + "", + "", + "", + "", + "" + ], + "type": "string" + }, + "destRegionCodes": { + "description": "Region codes whose IP addresses will be used to match for destination\nof traffic. Should be specified as 2 letter country code defined as per\nISO 3166 alpha-2 country codes. ex.\"US\"\nMaximum number of dest region codes allowed is 5000.", + "items": { + "type": "string" + }, + "type": "array" + }, + "destThreatIntelligences": { + "description": "Names of Network Threat Intelligence lists.\nThe IPs in these lists will be matched against traffic destination.", + "items": { + "type": "string" + }, + "type": "array" + }, + "layer4Configs": { + "description": "Pairs of IP protocols and ports that the rule should match.", + "items": { + "$ref": "FirewallPolicyRuleMatcherLayer4Config" + }, + "type": "array" + }, + "srcAddressGroups": { + "description": "Address groups which should be matched against the traffic source.\nMaximum number of source address groups is 10.", + "items": { + "type": "string" + }, + "type": "array" + }, + "srcFqdns": { + "description": "Fully Qualified Domain Name (FQDN) which should be matched against\ntraffic source.\nMaximum number of source fqdn allowed is 100.", + "items": { + "type": "string" + }, + "type": "array" + }, + "srcIpRanges": { + "description": "CIDR IP address range.\nMaximum number of source CIDR IP ranges allowed is 5000.", + "items": { + "type": "string" + }, + "type": "array" + }, + "srcNetworkContext": { + "description": "Network context of the traffic source. Allowed values are:\n \n \n - UNSPECIFIED\n - INTERNET\n - INTRA_VPC\n - NON_INTERNET\n - VPC_NETWORKS", + "enum": [ + "INTERNET", + "INTRA_VPC", + "NON_INTERNET", + "UNSPECIFIED", + "VPC_NETWORKS" + ], + "enumDescriptions": [ + "", + "", + "", + "", + "" + ], + "type": "string" + }, + "srcNetworkType": { + "description": "Network type of the traffic source. Allowed values are:\n \n \n - UNSPECIFIED\n - INTERNET\n - INTRA_VPC\n - NON_INTERNET\n - VPC_NETWORKS", + "enum": [ + "INTERNET", + "INTRA_VPC", + "NON_INTERNET", + "UNSPECIFIED", + "VPC_NETWORKS" + ], + "enumDescriptions": [ + "", + "", + "", + "", + "" + ], + "type": "string" + }, + "srcNetworks": { + "description": "Networks of the traffic source. It can be either a full or partial url.", + "items": { + "type": "string" + }, + "type": "array" + }, + "srcRegionCodes": { + "description": "Region codes whose IP addresses will be used to match for source\nof traffic. Should be specified as 2 letter country code defined as per\nISO 3166 alpha-2 country codes. ex.\"US\"\nMaximum number of source region codes allowed is 5000.", + "items": { + "type": "string" + }, + "type": "array" + }, + "srcSecureTags": { + "description": "List of secure tag values, which should be matched at the source\nof the traffic.\nFor INGRESS rule, if all the srcSecureTag are INEFFECTIVE,\nand there is no srcIpRange, this rule will be ignored.\nMaximum number of source tag values allowed is 256.", + "items": { + "$ref": "FirewallPolicyRuleSecureTag" + }, + "type": "array" + }, + "srcThreatIntelligences": { + "description": "Names of Network Threat Intelligence lists.\nThe IPs in these lists will be matched against traffic source.", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "FirewallPolicyRuleMatcherLayer4Config": { + "id": "FirewallPolicyRuleMatcherLayer4Config", + "properties": { + "ipProtocol": { + "description": "The IP protocol to which this rule applies. The protocol type is\nrequired when creating a firewall rule. This value can either be\none of the following well known protocol strings (tcp,udp, icmp, esp,ah, ipip, sctp), or the IP\nprotocol number.", + "type": "string" + }, + "ports": { + "description": "An optional list of ports to which this rule applies. This field is\nonly applicable for UDP or TCP protocol. Each entry must be either\nan integer or a range. If not specified, this rule applies to\nconnections through any port.\n\nExample inputs include: [\"22\"],[\"80\",\"443\"], and [\"12345-12349\"].", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "FirewallPolicyRuleSecureTag": { + "id": "FirewallPolicyRuleSecureTag", + "properties": { + "name": { + "description": "Name of the secure tag, created with TagManager's TagValue API.", + "pattern": "tagValues/[0-9]+", + "type": "string" + }, + "state": { + "description": "Output only. [Output Only] State of the secure tag, either `EFFECTIVE` or\n`INEFFECTIVE`. A secure tag is `INEFFECTIVE` when it is deleted\nor its network is deleted.", + "enum": [ + "EFFECTIVE", + "INEFFECTIVE" + ], + "enumDescriptions": [ + "", + "" + ], + "readOnly": true, + "type": "string" + } + }, + "type": "object" + }, + "FixedOrPercent": { + "description": "Encapsulates numeric value that can be either absolute or relative.", + "id": "FixedOrPercent", + "properties": { + "calculated": { + "description": "Output only. Absolute value of VM instances calculated based on the specific mode.\n\n \n \n - If the value is fixed, then the calculated\n value is equal to the fixed value.\n - If the value is a percent, then the\n calculated\n value is percent/100 * targetSize. For example,\n the calculated value of a 80% of a managed instance group\n with 150 instances would be (80/100 * 150) = 120 VM instances. If there\n is a remainder, the number is rounded.", + "format": "int32", + "readOnly": true, + "type": "integer" + }, + "fixed": { + "description": "Specifies a fixed number of VM instances. This must be a positive integer.", + "format": "int32", + "type": "integer" + }, + "percent": { + "description": "Specifies a percentage of instances between 0 to 100%, inclusive. For\nexample, specify 80 for 80%.", + "format": "int32", + "type": "integer" + } + }, + "type": "object" + }, + "FlexibleTimeRange": { + "description": "Specifies a flexible time range with flexible start time and duration.\n\nIt is possible to specify a contradictory time range that cannot be matched\nby any Interval. This causes a validation error.", + "id": "FlexibleTimeRange", + "properties": { + "maxDuration": { + "format": "google-duration", + "type": "string" + }, + "minDuration": { + "format": "google-duration", + "type": "string" + }, + "startTimeNotEarlierThan": { + "format": "google-datetime", + "type": "string" + }, + "startTimeNotLaterThan": { + "format": "google-datetime", + "type": "string" + } + }, + "type": "object" + }, + "ForwardingRule": { + "description": "Represents a Forwarding Rule resource.\n\nForwarding rule resources in Google Cloud can be either regional or global in\nscope:\n\n* [Global](https://cloud.google.com/compute/docs/reference/rest/v1/globalForwardingRules)\n* [Regional](https://cloud.google.com/compute/docs/reference/rest/v1/forwardingRules)\n\nA forwarding rule and its corresponding IP address represent the frontend\nconfiguration of a Google Cloud load balancer.\nForwarding rules can also reference target instances and Cloud VPN Classic\ngateways (targetVpnGateway).\n\nFor more information, read\nForwarding rule concepts and\nUsing protocol forwarding.", + "id": "ForwardingRule", + "properties": { + "IPAddress": { + "description": "IP address for which this forwarding rule accepts traffic. When a client\nsends traffic to this IP address, the forwarding rule directs the traffic\nto the referenced target or backendService.\nWhile creating a forwarding rule, specifying an IPAddress is\nrequired under the following circumstances:\n\n \n - When the target is set to targetGrpcProxy andvalidateForProxyless is set to true, theIPAddress should be set to 0.0.0.0.\n - When the target is a Private Service Connect Google APIs\n bundle, you must specify an IPAddress.\n\n\nOtherwise, you can optionally specify an IP address that references an\nexisting static (reserved) IP address resource. When omitted, Google Cloud\nassigns an ephemeral IP address.\n\nUse one of the following formats to specify an IP address while creating a\nforwarding rule:\n\n* IP address number, as in `100.1.2.3`\n* IPv6 address range, as in `2600:1234::/96`\n* Full resource URL, as inhttps://www.googleapis.com/compute/v1/projects/project_id/regions/region/addresses/address-name\n* Partial URL or by name, as in:\n \n - projects/project_id/regions/region/addresses/address-name\n - regions/region/addresses/address-name\n - global/addresses/address-name\n - address-name\n\n\n\nThe forwarding rule's target or backendService,\nand in most cases, also the loadBalancingScheme, determine the\ntype of IP address that you can use. For detailed information, see\n[IP address\nspecifications](https://cloud.google.com/load-balancing/docs/forwarding-rule-concepts#ip_address_specifications).\n\nWhen reading an IPAddress, the API always returns the IP\naddress number.", + "type": "string" + }, + "IPProtocol": { + "description": "The IP protocol to which this rule applies.\n\nFor protocol forwarding, valid\noptions are TCP, UDP, ESP,AH, SCTP, ICMP andL3_DEFAULT.\n\nThe valid IP protocols are different for different load balancing products\nas described in [Load balancing\nfeatures](https://cloud.google.com/load-balancing/docs/features#protocols_from_the_load_balancer_to_the_backends).", + "enum": [ + "AH", + "ESP", + "ICMP", + "L3_DEFAULT", + "SCTP", + "TCP", + "UDP" + ], + "enumDescriptions": [ + "", + "", + "", + "", + "", + "", + "" + ], + "type": "string" + }, + "allPorts": { + "description": "The ports, portRange, and allPorts\nfields are mutually exclusive. Only packets addressed to ports in the\nspecified range will be forwarded to the backends configured with this\nforwarding rule.\n\nThe allPorts field has the following limitations:\n \n - It requires that the forwarding rule IPProtocol be TCP,\n UDP, SCTP, or L3_DEFAULT.\n - It's applicable only to the following products: internal passthrough\n Network Load Balancers, backend service-based external passthrough Network\n Load Balancers, and internal and external protocol forwarding.\n - Set this field to true to allow packets addressed to any port or\n packets lacking destination port information (for example, UDP fragments\n after the first fragment) to be forwarded to the backends configured with\n this forwarding rule. The L3_DEFAULT protocol requiresallPorts be set to true.", + "type": "boolean" + }, + "allowGlobalAccess": { + "description": "If set to true, clients can access the internal passthrough Network Load\nBalancers, the regional internal Application Load Balancer, and the\nregional internal proxy Network Load Balancer from all regions.\nIf false, only allows access from the local region the load balancer is\nlocated at. Note that for INTERNAL_MANAGED forwarding rules, this field\ncannot be changed after the forwarding rule is created.", + "type": "boolean" + }, + "allowPscGlobalAccess": { + "description": "This is used in PSC consumer ForwardingRule to control whether the PSC\nendpoint can be accessed from another region.", + "type": "boolean" + }, + "attachedExtensions": { + "description": "Output only. [Output Only]. The extensions that are attached to this ForwardingRule.", + "items": { + "$ref": "ForwardingRuleAttachedExtension" + }, + "readOnly": true, + "type": "array" + }, + "backendService": { + "description": "Identifies the backend service to which the forwarding rule sends traffic.\nRequired for internal and external passthrough Network Load Balancers;\nmust be omitted for all other load balancer types.", + "type": "string" + }, + "baseForwardingRule": { + "description": "Output only. [Output Only] The URL for the corresponding base forwarding rule. By base\nforwarding rule, we mean the forwarding rule that has the same IP address,\nprotocol, and port settings with the current forwarding rule, but without\nsourceIPRanges specified.\nAlways empty if the current forwarding rule does not have sourceIPRanges\nspecified.", + "readOnly": true, + "type": "string" + }, + "creationTimestamp": { + "description": "Output only. [Output Only] Creation timestamp inRFC3339\ntext format.", + "readOnly": true, + "type": "string" + }, + "description": { + "description": "An optional description of this resource. Provide this property when you\ncreate the resource.", + "type": "string" + }, + "externalManagedBackendBucketMigrationState": { + "description": "Specifies the canary migration state for the backend buckets attached to\nthis forwarding rule. Possible values are PREPARE, TEST_BY_PERCENTAGE, and\nTEST_ALL_TRAFFIC.\n\nTo begin the migration from EXTERNAL to EXTERNAL_MANAGED, the state must be\nchanged to PREPARE. The state must be changed to TEST_ALL_TRAFFIC before\nthe loadBalancingScheme can be changed to EXTERNAL_MANAGED. Optionally, the\nTEST_BY_PERCENTAGE state can be used to migrate traffic to backend buckets\nattached to this forwarding rule by percentage using\nexternalManagedBackendBucketMigrationTestingPercentage.\n\nRolling back a migration requires the states to be set in reverse order. So\nchanging the scheme from EXTERNAL_MANAGED to EXTERNAL requires the state to\nbe set to TEST_ALL_TRAFFIC at the same time. Optionally, the\nTEST_BY_PERCENTAGE state can be used to migrate some traffic back to\nEXTERNAL or PREPARE can be used to migrate all traffic back to EXTERNAL.", + "enum": [ + "PREPARE", + "TEST_ALL_TRAFFIC", + "TEST_BY_PERCENTAGE" + ], + "enumDescriptions": [ + "", + "", + "" + ], + "type": "string" + }, + "externalManagedBackendBucketMigrationTestingPercentage": { + "description": "Determines the fraction of requests to backend buckets that should be\nprocessed by the global external Application Load Balancer.\n\nThe value of this field must be in the range [0, 100].\n\nThis value can only be set if the loadBalancingScheme in the BackendService\nis set to EXTERNAL (when using the classic Application Load Balancer) and\nthe migration state is TEST_BY_PERCENTAGE.", + "format": "float", + "type": "number" + }, + "fingerprint": { + "description": "Fingerprint of this resource. A hash of the contents stored in this object.\nThis field is used in optimistic locking. This field will be ignored when\ninserting a ForwardingRule. Include the fingerprint in patch request to\nensure that you do not overwrite changes that were applied from another\nconcurrent request.\n\nTo see the latest fingerprint, make a get() request to\nretrieve a ForwardingRule.", + "format": "byte", + "type": "string" + }, + "id": { + "description": "[Output Only] The unique identifier for the resource. This identifier is\ndefined by the server.", + "format": "uint64", + "type": "string" + }, + "ipCollection": { + "description": "Resource reference of a PublicDelegatedPrefix. The PDP must\nbe a sub-PDP in EXTERNAL_IPV6_FORWARDING_RULE_CREATION mode.\n\nUse one of the following formats to specify a sub-PDP when creating an IPv6\nNetLB forwarding rule using BYOIP:\nFull resource URL, as inhttps://www.googleapis.com/compute/v1/projects/project_id/regions/region/publicDelegatedPrefixes/sub-pdp-name\nPartial URL, as in:\n \n - projects/project_id/regions/region/publicDelegatedPrefixes/sub-pdp-name\n - regions/region/publicDelegatedPrefixes/sub-pdp-name", + "type": "string" + }, + "ipVersion": { + "description": "The IP Version that will be used by this forwarding rule. Valid options\nare IPV4 or IPV6.", + "enum": [ + "IPV4", + "IPV6", + "UNSPECIFIED_VERSION" + ], + "enumDescriptions": [ + "", + "", + "" + ], + "type": "string" + }, + "isMirroringCollector": { + "description": "Indicates whether or not this load balancer can be used as a collector for\npacket mirroring. To prevent mirroring loops, instances behind this\nload balancer will not have their traffic mirrored even if aPacketMirroring rule applies to them.\nThis can only be set to true for load balancers that have theirloadBalancingScheme set to INTERNAL.", + "type": "boolean" + }, + "kind": { + "default": "compute#forwardingRule", + "description": "Output only. [Output Only] Type of the resource. Alwayscompute#forwardingRule for forwarding rule resources.", + "readOnly": true, + "type": "string" + }, + "labelFingerprint": { + "description": "A fingerprint for the labels being applied to this resource, which is\nessentially a hash of the labels set used for optimistic locking. The\nfingerprint is initially generated by Compute Engine and changes after\nevery request to modify or update labels. You must always provide an\nup-to-date fingerprint hash in order to update or change labels,\notherwise the request will fail with error412 conditionNotMet.\n\nTo see the latest fingerprint, make a get() request to\nretrieve a ForwardingRule.", + "format": "byte", + "type": "string" + }, + "labels": { + "additionalProperties": { + "type": "string" + }, + "description": "Labels for this resource. These can only be added or modified by thesetLabels method. Each label key/value pair must comply withRFC1035.\nLabel values may be empty.", + "type": "object" + }, + "loadBalancingScheme": { + "description": "Specifies the forwarding rule type.\n\nFor more information about forwarding rules, refer to\nForwarding rule concepts.", + "enum": [ + "EXTERNAL", + "EXTERNAL_MANAGED", + "INTERNAL", + "INTERNAL_MANAGED", + "INTERNAL_SELF_MANAGED", + "INVALID" + ], + "enumDescriptions": [ + "", + "", + "", + "", + "", + "" + ], + "type": "string" + }, + "metadataFilters": { + "description": "Opaque filter criteria used by load balancer to restrict routing\nconfiguration to a limited set of xDS\ncompliant clients. In their xDS requests to load balancer, xDS clients\npresent node\nmetadata. When there is a match, the relevant configuration\nis made available to those proxies. Otherwise, all the resources (e.g.TargetHttpProxy, UrlMap)\nreferenced by the ForwardingRule are not visible to\nthose proxies.\n\nFor each metadataFilter in this list, if itsfilterMatchCriteria is set to MATCH_ANY, at least one of thefilterLabels must match the corresponding label provided in\nthe metadata. If its filterMatchCriteria is set to\nMATCH_ALL, then all of its filterLabels must match with\ncorresponding labels provided in the metadata. If multiplemetadataFilters are specified, all of them need to be satisfied\nin order to be considered a match.\n\nmetadataFilters specified here will be applifed before\nthose specified in the UrlMap that thisForwardingRule references.\n\nmetadataFilters only applies to Loadbalancers that have\ntheir loadBalancingScheme set toINTERNAL_SELF_MANAGED.", + "items": { + "$ref": "MetadataFilter" + }, + "type": "array" + }, + "name": { + "description": "Name of the resource; provided by the client when the resource is created.\nThe name must be 1-63 characters long, and comply withRFC1035.\nSpecifically, the name must be 1-63 characters long and match the regular\nexpression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first\ncharacter must be a lowercase letter, and all following characters must\nbe a dash, lowercase letter, or digit, except the last character, which\ncannot be a dash.\n\nFor Private Service Connect forwarding rules that forward traffic to Google\nAPIs, the forwarding rule name must be a 1-20 characters string with\nlowercase letters and numbers and must start with a letter.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "type": "string" + }, + "network": { + "description": "This field is not used for global external load balancing.\n\nFor internal passthrough Network Load Balancers, this field identifies the\nnetwork that the load balanced IP should belong to for this forwarding\nrule.\nIf the subnetwork is specified, the network of the subnetwork will be used.\nIf neither subnetwork nor this field is specified, the default network will\nbe used.\n\nFor Private Service Connect forwarding rules that forward traffic to Google\nAPIs, a network must be provided.", + "type": "string" + }, + "networkTier": { + "description": "This signifies the networking tier used for configuring\nthis load balancer and can only take the following values:PREMIUM, STANDARD.\n\nFor regional ForwardingRule, the valid values are PREMIUM andSTANDARD. For GlobalForwardingRule, the valid value isPREMIUM.\n\nIf this field is not specified, it is assumed to be PREMIUM.\nIf IPAddress is specified, this value must be equal to the\nnetworkTier of the Address.", + "enum": [ + "FIXED_STANDARD", + "PREMIUM", + "STANDARD", + "STANDARD_OVERRIDES_FIXED_STANDARD" + ], + "enumDescriptions": [ + "Public internet quality with fixed bandwidth.", + "High quality, Google-grade network tier, support for all networking\nproducts.", + "Public internet quality, only limited support for other networking\nproducts.", + "(Output only) Temporary tier for FIXED_STANDARD when fixed standard tier\nis expired or not configured." + ], + "type": "string" + }, + "noAutomateDnsZone": { + "description": "This is used in PSC consumer ForwardingRule to control whether it should\ntry to auto-generate a DNS zone or not. Non-PSC forwarding rules do not use\nthis field. Once set, this field is not mutable.", + "type": "boolean" + }, + "portRange": { + "description": "The ports, portRange, and allPorts\nfields are mutually exclusive. Only packets addressed to ports in the\nspecified range will be forwarded to the backends configured with this\nforwarding rule.\n\nThe portRange field has the following limitations:\n \n - It requires that the forwarding rule IPProtocol be TCP,\n UDP, or SCTP, and\n - It's applicable only to the following products: external passthrough\n Network Load Balancers, internal and external proxy Network Load Balancers,\n internal and external Application Load Balancers, external protocol\n forwarding, and Classic VPN.\n - Some products have restrictions on what ports can be used. See \n port specifications for details.\n\n\n\nFor external forwarding rules, two or more forwarding rules cannot use the\nsame [IPAddress, IPProtocol] pair, and cannot have overlappingportRanges.\n\nFor internal forwarding rules within the same VPC network, two or more\nforwarding rules cannot use the same [IPAddress, IPProtocol]\npair, and cannot have overlapping portRanges.\n\n@pattern: \\\\d+(?:-\\\\d+)?", + "type": "string" + }, + "ports": { + "description": "The ports, portRange, and allPorts\nfields are mutually exclusive. Only packets addressed to ports in the\nspecified range will be forwarded to the backends configured with this\nforwarding rule.\n\nThe ports field has the following limitations:\n \n - It requires that the forwarding rule IPProtocol be TCP,\n UDP, or SCTP, and\n - It's applicable only to the following products: internal passthrough\n Network Load Balancers, backend service-based external passthrough Network\n Load Balancers, and internal protocol forwarding.\n - You can specify a list of up to five ports by number, separated by\n commas. The ports can be contiguous or discontiguous.\n\n\n\nFor external forwarding rules, two or more forwarding rules cannot use the\nsame [IPAddress, IPProtocol] pair if they share at least one\nport number.\n\nFor internal forwarding rules within the same VPC network, two or more\nforwarding rules cannot use the same [IPAddress, IPProtocol]\npair if they share at least one port number.\n\n@pattern: \\\\d+(?:-\\\\d+)?", + "items": { + "type": "string" + }, + "type": "array" + }, + "pscConnectionId": { + "description": "[Output Only] The PSC connection id of the PSC forwarding rule.", + "format": "uint64", + "type": "string" + }, + "pscConnectionStatus": { + "enum": [ + "ACCEPTED", + "CLOSED", + "NEEDS_ATTENTION", + "PENDING", + "REJECTED", + "STATUS_UNSPECIFIED" + ], + "enumDescriptions": [ + "The connection has been accepted by the producer.", + "The connection has been closed by the producer and will not serve traffic\ngoing forward.", + "The connection has been accepted by the producer, but the producer needs\nto take further action before the forwarding rule can serve traffic.", + "The connection is pending acceptance by the producer.", + "The connection has been rejected by the producer.", + "" + ], + "readOnly": true, + "type": "string" + }, + "region": { + "description": "Output only. [Output Only] URL of the region where the regional forwarding rule resides.\nThis field is not applicable to global forwarding rules.\nYou must specify this field as part of the HTTP request URL. It is\nnot settable as a field in the request body.", + "readOnly": true, + "type": "string" + }, + "selfLink": { + "description": "[Output Only] Server-defined URL for the resource.", + "type": "string" + }, + "selfLinkWithId": { + "description": "Output only. [Output Only] Server-defined URL for this resource with the resource id.", + "readOnly": true, + "type": "string" + }, + "serviceDirectoryRegistrations": { + "description": "Service Directory resources to register this forwarding rule with.\nCurrently, only supports a single Service Directory resource.", + "items": { + "$ref": "ForwardingRuleServiceDirectoryRegistration" + }, + "type": "array" + }, + "serviceLabel": { + "description": "An optional prefix to the service name for this forwarding rule.\nIf specified, the prefix is the first label of the fully qualified service\nname.\n\nThe label must be 1-63 characters long, and comply withRFC1035.\nSpecifically, the label must be 1-63 characters long and match the regular\nexpression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first\ncharacter must be a lowercase letter, and all following characters must\nbe a dash, lowercase letter, or digit, except the last character, which\ncannot be a dash.\n\nThis field is only used for internal load balancing.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "type": "string" + }, + "serviceName": { + "description": "[Output Only]\nThe internal fully qualified service name for this forwarding rule.\n\nThis field is only used for internal load balancing.", + "type": "string" + }, + "sourceIpRanges": { + "description": "If not empty, this forwarding rule will only forward the traffic when the\nsource IP address matches one of the IP addresses or CIDR ranges set here.\nNote that a forwarding rule can only have up to 64 source IP ranges, and\nthis field can only be used with a regional forwarding rule whose scheme isEXTERNAL.\nEach source_ip_range entry should be either an IP address (for\nexample, 1.2.3.4) or a CIDR range (for example, 1.2.3.0/24).", + "items": { + "type": "string" + }, + "type": "array" + }, + "subnetwork": { + "description": "This field identifies the subnetwork that the load balanced IP should\nbelong to for this forwarding rule, used with internal load balancers and\nexternal passthrough Network Load Balancers with IPv6.\n\nIf the network specified is in auto subnet mode, this field is optional.\nHowever, a subnetwork must be specified if the network is in custom subnet\nmode or when creating external forwarding rule with IPv6.", + "type": "string" + }, + "target": { + "description": "The URL of the target resource to receive the matched traffic. For\nregional forwarding rules, this target must be in the same region as the\nforwarding rule. For global forwarding rules, this target must be a global\nload balancing resource.\n\nThe forwarded traffic must be of a type appropriate to the target object.\n \n \n - For load balancers, see the \"Target\" column in [Port specifications](https://cloud.google.com/load-balancing/docs/forwarding-rule-concepts#ip_address_specifications).\n - For Private Service Connect forwarding rules that forward traffic to Google APIs, provide the name of a supported Google API bundle:\n \n \n - vpc-sc - APIs that support VPC Service Controls. \n - all-apis - All supported Google APIs. \n \n \n - For Private Service Connect forwarding rules that forward traffic to managed services, the target must be a service attachment. The target is not mutable once set as a service attachment.", + "type": "string" + } + }, + "type": "object" + }, + "ForwardingRuleAggregatedList": { + "id": "ForwardingRuleAggregatedList", + "properties": { + "id": { + "description": "[Output Only] Unique identifier for the resource; defined by the server.", + "type": "string" + }, + "items": { + "additionalProperties": { + "$ref": "ForwardingRulesScopedList", + "description": "Name of the scope containing this set of addresses." + }, + "description": "A list of ForwardingRulesScopedList resources.", + "type": "object" + }, + "kind": { + "default": "compute#forwardingRuleAggregatedList", + "description": "Output only. [Output Only] Type of resource. Alwayscompute#forwardingRuleAggregatedList for lists of forwarding rules.", + "readOnly": true, + "type": "string" + }, + "nextPageToken": { + "description": "[Output Only] This token allows you to get the next page of results for\nlist requests. If the number of results is larger thanmaxResults, use the nextPageToken as a value for\nthe query parameter pageToken in the next list request.\nSubsequent list requests will have their own nextPageToken to\ncontinue paging through the results.", + "type": "string" + }, + "selfLink": { + "description": "Output only. [Output Only] Server-defined URL for this resource.", + "readOnly": true, + "type": "string" + }, + "unreachables": { + "description": "Output only. [Output Only] Unreachable resources.", + "items": { + "type": "string" + }, + "readOnly": true, + "type": "array" + }, + "warning": { + "description": "[Output Only] Informational warning message.", + "properties": { + "code": { + "description": "[Output Only] A warning code, if applicable. For example, Compute\nEngine returns NO_RESULTS_ON_PAGE if there\nare 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", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", + "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "PARTIAL_SUCCESS", + "QUOTA_INFO_UNAVAILABLE", + "REQUIRED_TOS_AGREEMENT", + "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", + "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", + "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", + "UNREACHABLE" + ], + "enumDeprecated": [ + false, + false, + false, + false, + false, + false, + true, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false + ], + "enumDescriptions": [ + "Warning about failed cleanup of transient changes made by a failed\noperation.", + "A link to a deprecated resource was created.", + "When deploying and at least one of the resources has a type marked as\ndeprecated", + "The user created a boot disk that is larger than image size.", + "When deploying and at least one of the resources has a type marked as\nexperimental", + "Warning that is present in an external api call", + "Warning that value of a field has been overridden.\nDeprecated unused field.", + "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is\nnot of type HTTP/HTTPS/HTTP2.", + "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed\nwhich captures the amount of resources filtered out by\nuser-defined list filter.", + "A resource depends on a missing type", + "The route's nextHopIp address is not assigned to an instance on the\nnetwork.", + "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an\nipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not exist.", + "The route's nextHopInstance URL refers to an instance that is not on the\nsame network as the route.", + "The route's next hop instance does not have a status of RUNNING.", + "Error which is not critical. We decided to continue the process despite\nthe mentioned error.", + "No results are present on a particular list page.", + "Success is reported, but some results may be missing due to errors", + "Quota information is not available to client requests (e.g:\nregions.list).", + "The user attempted to use a resource that requires a TOS they have not\naccepted.", + "Warning that a resource is in use.", + "One or more of the resources set to auto-delete could not be deleted\nbecause they were in use.", + "When a resource schema validation is ignored.", + "Instance template used in instance group manager is valid as such, but\nits application does not make a lot of sense, because it allows only\nsingle instance in instance group.", + "When undeclared properties in the schema are present", + "A given scope cannot be reached." + ], + "type": "string" + }, + "data": { + "description": "[Output Only] Metadata about this warning in key:\nvalue format. For example:\n\n\"data\": [\n {\n \"key\": \"scope\",\n \"value\": \"zones/us-east1-d\"\n }", + "items": { + "properties": { + "key": { + "description": "[Output Only] A key that provides more detail on the warning being\nreturned. For example, for warnings where there are no results in a list\nrequest for a particular zone, this key might be scope and\nthe key value might be the zone name. Other examples might be a key\nindicating a deprecated resource and a suggested replacement, or a\nwarning about invalid network settings (for example, if an instance\nattempts 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" + }, + "ForwardingRuleAttachedExtension": { + "description": "Reference to an extension resource that is attached to this ForwardingRule.", + "id": "ForwardingRuleAttachedExtension", + "properties": { + "reference": { + "description": "Output only. The resource name.", + "readOnly": true, + "type": "string" + } + }, + "type": "object" + }, + "ForwardingRuleList": { + "description": "Contains a list of ForwardingRule resources.", + "id": "ForwardingRuleList", + "properties": { + "id": { + "description": "[Output Only] Unique identifier for the resource; defined by the server.", + "type": "string" + }, + "items": { + "description": "A list of ForwardingRule resources.", + "items": { + "$ref": "ForwardingRule" + }, + "type": "array" + }, + "kind": { + "default": "compute#forwardingRuleList", + "description": "Output only. Type of resource.", + "readOnly": true, + "type": "string" + }, + "nextPageToken": { + "description": "[Output Only] This token allows you to get the next page of results for\nlist requests. If the number of results is larger thanmaxResults, use the nextPageToken as a value for\nthe query parameter pageToken in the next list request.\nSubsequent list requests will have their own nextPageToken to\ncontinue paging through the results.", + "type": "string" + }, + "selfLink": { + "description": "Output only. [Output Only] Server-defined URL for this resource.", + "readOnly": true, + "type": "string" + }, + "warning": { + "description": "[Output Only] Informational warning message.", + "properties": { + "code": { + "description": "[Output Only] A warning code, if applicable. For example, Compute\nEngine returns NO_RESULTS_ON_PAGE if there\nare 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", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", + "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "PARTIAL_SUCCESS", + "QUOTA_INFO_UNAVAILABLE", + "REQUIRED_TOS_AGREEMENT", + "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", + "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", + "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", + "UNREACHABLE" + ], + "enumDeprecated": [ + false, + false, + false, + false, + false, + false, + true, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false + ], + "enumDescriptions": [ + "Warning about failed cleanup of transient changes made by a failed\noperation.", + "A link to a deprecated resource was created.", + "When deploying and at least one of the resources has a type marked as\ndeprecated", + "The user created a boot disk that is larger than image size.", + "When deploying and at least one of the resources has a type marked as\nexperimental", + "Warning that is present in an external api call", + "Warning that value of a field has been overridden.\nDeprecated unused field.", + "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is\nnot of type HTTP/HTTPS/HTTP2.", + "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed\nwhich captures the amount of resources filtered out by\nuser-defined list filter.", + "A resource depends on a missing type", + "The route's nextHopIp address is not assigned to an instance on the\nnetwork.", + "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an\nipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not exist.", + "The route's nextHopInstance URL refers to an instance that is not on the\nsame network as the route.", + "The route's next hop instance does not have a status of RUNNING.", + "Error which is not critical. We decided to continue the process despite\nthe mentioned error.", + "No results are present on a particular list page.", + "Success is reported, but some results may be missing due to errors", + "Quota information is not available to client requests (e.g:\nregions.list).", + "The user attempted to use a resource that requires a TOS they have not\naccepted.", + "Warning that a resource is in use.", + "One or more of the resources set to auto-delete could not be deleted\nbecause they were in use.", + "When a resource schema validation is ignored.", + "Instance template used in instance group manager is valid as such, but\nits application does not make a lot of sense, because it allows only\nsingle instance in instance group.", + "When undeclared properties in the schema are present", + "A given scope cannot be reached." + ], + "type": "string" + }, + "data": { + "description": "[Output Only] Metadata about this warning in key:\nvalue format. For example:\n\n\"data\": [\n {\n \"key\": \"scope\",\n \"value\": \"zones/us-east1-d\"\n }", + "items": { + "properties": { + "key": { + "description": "[Output Only] A key that provides more detail on the warning being\nreturned. For example, for warnings where there are no results in a list\nrequest for a particular zone, this key might be scope and\nthe key value might be the zone name. Other examples might be a key\nindicating a deprecated resource and a suggested replacement, or a\nwarning about invalid network settings (for example, if an instance\nattempts 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" + }, + "ForwardingRuleReference": { + "id": "ForwardingRuleReference", + "properties": { + "forwardingRule": { + "type": "string" + } + }, + "type": "object" + }, + "ForwardingRuleServiceDirectoryRegistration": { + "description": "Describes the auto-registration of the forwarding rule to Service Directory.\nThe region and project of the Service Directory resource generated from\nthis registration will be the same as this forwarding rule.", + "id": "ForwardingRuleServiceDirectoryRegistration", + "properties": { + "namespace": { + "description": "Service Directory namespace to register the forwarding rule under.", + "type": "string" + }, + "service": { + "description": "Service Directory service to register the forwarding rule under.", + "type": "string" + }, + "serviceDirectoryRegion": { + "description": "[Optional] Service Directory region to register this global forwarding\nrule under. Default to \"us-central1\". Only used for PSC for Google APIs.\nAll PSC for Google APIs forwarding rules on the same network should use\nthe same Service Directory region.", + "type": "string" + } + }, + "type": "object" + }, + "ForwardingRulesScopedList": { + "id": "ForwardingRulesScopedList", + "properties": { + "forwardingRules": { + "description": "A list of forwarding rules contained in this scope.", + "items": { + "$ref": "ForwardingRule" + }, + "type": "array" + }, + "warning": { + "description": "Informational warning which replaces the list of forwarding rules when\nthe list is empty.", + "properties": { + "code": { + "description": "[Output Only] A warning code, if applicable. For example, Compute\nEngine returns NO_RESULTS_ON_PAGE if there\nare 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", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", + "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "PARTIAL_SUCCESS", + "QUOTA_INFO_UNAVAILABLE", + "REQUIRED_TOS_AGREEMENT", + "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", + "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", + "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", + "UNREACHABLE" + ], + "enumDeprecated": [ + false, + false, + false, + false, + false, + false, + true, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false + ], + "enumDescriptions": [ + "Warning about failed cleanup of transient changes made by a failed\noperation.", + "A link to a deprecated resource was created.", + "When deploying and at least one of the resources has a type marked as\ndeprecated", + "The user created a boot disk that is larger than image size.", + "When deploying and at least one of the resources has a type marked as\nexperimental", + "Warning that is present in an external api call", + "Warning that value of a field has been overridden.\nDeprecated unused field.", + "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is\nnot of type HTTP/HTTPS/HTTP2.", + "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed\nwhich captures the amount of resources filtered out by\nuser-defined list filter.", + "A resource depends on a missing type", + "The route's nextHopIp address is not assigned to an instance on the\nnetwork.", + "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an\nipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not exist.", + "The route's nextHopInstance URL refers to an instance that is not on the\nsame network as the route.", + "The route's next hop instance does not have a status of RUNNING.", + "Error which is not critical. We decided to continue the process despite\nthe mentioned error.", + "No results are present on a particular list page.", + "Success is reported, but some results may be missing due to errors", + "Quota information is not available to client requests (e.g:\nregions.list).", + "The user attempted to use a resource that requires a TOS they have not\naccepted.", + "Warning that a resource is in use.", + "One or more of the resources set to auto-delete could not be deleted\nbecause they were in use.", + "When a resource schema validation is ignored.", + "Instance template used in instance group manager is valid as such, but\nits application does not make a lot of sense, because it allows only\nsingle instance in instance group.", + "When undeclared properties in the schema are present", + "A given scope cannot be reached." + ], + "type": "string" + }, + "data": { + "description": "[Output Only] Metadata about this warning in key:\nvalue format. For example:\n\n\"data\": [\n {\n \"key\": \"scope\",\n \"value\": \"zones/us-east1-d\"\n }", + "items": { + "properties": { + "key": { + "description": "[Output Only] A key that provides more detail on the warning being\nreturned. For example, for warnings where there are no results in a list\nrequest for a particular zone, this key might be scope and\nthe key value might be the zone name. Other examples might be a key\nindicating a deprecated resource and a suggested replacement, or a\nwarning about invalid network settings (for example, if an instance\nattempts 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" + }, + "FutureReservation": { + "id": "FutureReservation", + "properties": { + "aggregateReservation": { + "$ref": "AllocationAggregateReservation", + "description": "Aggregate reservation details for the future reservation." + }, + "autoCreatedReservationsDeleteTime": { + "description": "Future timestamp when the FR auto-created reservations will be deleted by\nCompute Engine. Format of this field must be a valid\nhref=\"https://www.ietf.org/rfc/rfc3339.txt\"\u003eRFC3339 value.", + "type": "string" + }, + "autoCreatedReservationsDuration": { + "$ref": "Duration", + "description": "Specifies the duration of auto-created reservations.\nIt represents relative time to future reservation start_time when\nauto-created reservations will be automatically deleted by Compute\nEngine. Duration time unit is represented as a count of seconds\nand fractions of seconds at nanosecond resolution." + }, + "autoDeleteAutoCreatedReservations": { + "description": "Setting for enabling or disabling automatic deletion for auto-created\nreservation. If set to true, auto-created reservations will be\ndeleted at Future Reservation's end time (default) or at user's defined\ntimestamp if any of the\n[auto_created_reservations_delete_time, auto_created_reservations_duration]\nvalues is specified.\nFor keeping auto-created reservation indefinitely, this value should be set\nto false.", + "type": "boolean" + }, + "commitmentInfo": { + "$ref": "FutureReservationCommitmentInfo", + "description": "If not present, then FR will not deliver a new commitment or update an\nexisting commitment." + }, + "confidentialComputeType": { + "enum": [ + "CONFIDENTIAL_COMPUTE_TYPE_TDX", + "CONFIDENTIAL_COMPUTE_TYPE_UNSPECIFIED" + ], + "enumDescriptions": [ + "Intel Trust Domain Extensions.", + "" + ], + "type": "string" + }, + "creationTimestamp": { + "description": "Output only. [Output Only] The creation timestamp for this future reservation inRFC3339\ntext format.", + "readOnly": true, + "type": "string" + }, + "deploymentType": { + "description": "Type of the deployment requested as part of future reservation.", + "enum": [ + "DENSE", + "DEPLOYMENT_TYPE_UNSPECIFIED" + ], + "enumDescriptions": [ + "The reserved capacity is made up of densely deployed reservation blocks.", + "" + ], + "type": "string" + }, + "description": { + "description": "An optional description of this resource. Provide this property when you\ncreate the future reservation.", + "type": "string" + }, + "enableEmergentMaintenance": { + "description": "Indicates if this group of VMs have emergent maintenance enabled.", + "type": "boolean" + }, + "id": { + "description": "Output only. [Output Only] A unique identifier for this future reservation. The server\ndefines this identifier.", + "format": "uint64", + "readOnly": true, + "type": "string" + }, + "kind": { + "default": "compute#futureReservation", + "description": "Output only. [Output Only] Type of the resource. Alwayscompute#futureReservation for future reservations.", + "readOnly": true, + "type": "string" + }, + "name": { + "annotations": { + "required": [ + "compute.instances.insert" + ] + }, + "description": "The name of the resource, provided by the client when initially creating\nthe resource. The resource name must be 1-63 characters long, and comply\nwithRFC1035.\nSpecifically, the name must be 1-63 characters long and match the regular\nexpression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first\ncharacter must be a lowercase letter, and all following characters must be\na dash, lowercase letter, or digit, except the last character, which cannot\nbe a dash.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "type": "string" + }, + "namePrefix": { + "description": "Name prefix for the reservations to be created at the time of\ndelivery. The name prefix must comply with RFC1035.\nMaximum allowed length for name prefix is 20. Automatically created\nreservations name format will be -date-####.", + "type": "string" + }, + "params": { + "$ref": "FutureReservationParams", + "description": "Input only. Additional params passed with the request, but not persisted\nas part of resource payload." + }, + "planningStatus": { + "description": "Planning state before being submitted for evaluation", + "enum": [ + "DRAFT", + "PLANNING_STATUS_UNSPECIFIED", + "SUBMITTED" + ], + "enumDescriptions": [ + "Future Reservation is being drafted.", + "", + "Future Reservation has been submitted for evaluation by GCP." + ], + "type": "string" + }, + "reservationMode": { + "description": "The reservation mode which determines reservation-termination behavior and\nexpected pricing.", + "enum": [ + "CALENDAR", + "DEFAULT", + "RESERVATION_MODE_UNSPECIFIED" + ], + "enumDescriptions": [ + "The delivered reservations will delivered at specified start time and\nterminated at specified end time along with terminating the VMs running\non it.", + "The delivered reservations do not terminate VMs at the end of\nreservations. This is default mode.", + "" + ], + "type": "string" + }, + "reservationName": { + "description": "Name of reservations where the capacity is provisioned at the time of\ndelivery of future reservations. If the reservation with the given name\ndoes not exist already, it is created automatically at the time of Approval\nwith INACTIVE state till specified start-time. Either provide the\nreservation_name or a name_prefix.", + "type": "string" + }, + "schedulingType": { + "description": "Maintenance information for this reservation", + "enum": [ + "GROUPED", + "GROUP_MAINTENANCE_TYPE_UNSPECIFIED", + "INDEPENDENT" + ], + "enumDescriptions": [ + "Maintenance on all reserved instances in the reservation is synchronized.", + "Unknown maintenance type.", + "Maintenance is not synchronized for this reservation. Instead, each\ninstance has its own maintenance window." + ], + "type": "string" + }, + "selfLink": { + "description": "Output only. [Output Only] Server-defined fully-qualified URL for this resource.", + "readOnly": true, + "type": "string" + }, + "selfLinkWithId": { + "description": "Output only. [Output Only] Server-defined URL for this resource with the resource id.", + "readOnly": true, + "type": "string" + }, + "shareSettings": { + "$ref": "ShareSettings", + "description": "List of Projects/Folders to share with." + }, + "specificReservationRequired": { + "description": "Indicates whether the auto-created reservation can be consumed by VMs with\naffinity for \"any\" reservation. If the field is set, then only VMs that\ntarget the reservation by name can consume from the delivered reservation.", + "type": "boolean" + }, + "specificSkuProperties": { + "$ref": "FutureReservationSpecificSKUProperties", + "description": "Future Reservation configuration to indicate instance properties and\ntotal count." + }, + "status": { + "$ref": "FutureReservationStatus", + "description": "Output only. [Output only] Status of the Future Reservation", + "readOnly": true + }, + "timeWindow": { + "$ref": "FutureReservationTimeWindow", + "description": "Time window for this Future Reservation." + }, + "zone": { + "description": "Output only. [Output Only] URL of the Zone where this future reservation resides.", + "readOnly": true, + "type": "string" + } + }, + "type": "object" + }, + "FutureReservationCommitmentInfo": { + "id": "FutureReservationCommitmentInfo", + "properties": { + "commitmentName": { + "description": "name of the commitment where capacity is being delivered to.", + "type": "string" + }, + "commitmentPlan": { + "description": "Indicates if a Commitment needs to be created as part of FR delivery. If\nthis field is not present, then no\ncommitment needs to be created.", + "enum": [ + "INVALID", + "THIRTY_SIX_MONTH", + "TWELVE_MONTH" + ], + "enumDescriptions": [ + "", + "", + "" + ], + "type": "string" + }, + "previousCommitmentTerms": { + "description": "Only applicable if FR is delivering to the same reservation. If set, all\nparent commitments will be extended to match the end date of the plan for\nthis commitment.", + "enum": [ + "EXTEND", + "PREVIOUSCOMMITMENTTERM_UNSPECIFIED" + ], + "enumDescriptions": [ + "All associated parent Committed Used Discount(s) end-date/term will be\nextended to the end-time of this future reservation. Default is to\nextend previous commitment(s) time to the end_time of the reservation.", + "No changes to associated parents Committed Used Discount(s) terms." + ], + "type": "string" + } + }, + "type": "object" + }, + "FutureReservationParams": { + "description": "Additional future reservation params.", + "id": "FutureReservationParams", + "properties": { + "resourceManagerTags": { + "additionalProperties": { + "type": "string" + }, + "description": "Input only. Resource manager tags to be bound to the future reservation. Tag keys and\nvalues have the same definition as resource\nmanager tags. Keys and values can be either in numeric format,\nsuch as `tagKeys/{tag_key_id}` and `tagValues/{tag_value_id}` or in\nnamespaced format such as `{org_id|project_id}/{tag_key_short_name}` and\n`{tag_value_short_name}`. The field is ignored (both PUT \u0026\nPATCH) when empty.", + "type": "object" + } + }, + "type": "object" + }, + "FutureReservationSpecificSKUProperties": { + "id": "FutureReservationSpecificSKUProperties", + "properties": { + "instanceProperties": { + "$ref": "AllocationSpecificSKUAllocationReservedInstanceProperties", + "description": "Properties of the SKU instances being reserved." + }, + "sourceInstanceTemplate": { + "description": "The instance template that will be used to populate the\nReservedInstanceProperties of the future reservation", + "type": "string" + }, + "totalCount": { + "description": "Total number of instances for which capacity assurance is requested at a\nfuture time period.", + "format": "int64", + "type": "string" + } + }, + "type": "object" + }, + "FutureReservationStatus": { + "description": "[Output only] Represents status related to the future reservation.", + "id": "FutureReservationStatus", + "properties": { + "amendmentStatus": { + "description": "Output only. [Output Only] The current status of the requested amendment.", + "enum": [ + "AMENDMENT_APPROVED", + "AMENDMENT_DECLINED", + "AMENDMENT_IN_REVIEW", + "AMENDMENT_STATUS_UNSPECIFIED" + ], + "enumDescriptions": [ + "The requested amendment to the Future Resevation has been approved and\napplied by GCP.", + "The requested amendment to the Future Reservation has been declined by\nGCP and the original state was restored.", + "The requested amendment to the Future Reservation is currently being\nreviewd by GCP.", + "" + ], + "readOnly": true, + "type": "string" + }, + "autoCreatedReservations": { + "description": "Output only. Fully qualified urls of the automatically created reservations at\nstart_time.", + "items": { + "type": "string" + }, + "readOnly": true, + "type": "array" + }, + "existingMatchingUsageInfo": { + "$ref": "FutureReservationStatusExistingMatchingUsageInfo", + "description": "Output only. [Output Only] Represents the existing matching usage for the future\nreservation.", + "readOnly": true + }, + "fulfilledCount": { + "description": "Output only. This count indicates the fulfilled capacity so far. This is set during\n\"PROVISIONING\" state. This count also includes capacity delivered as part\nof existing matching reservations.", + "format": "int64", + "readOnly": true, + "type": "string" + }, + "lastKnownGoodState": { + "$ref": "FutureReservationStatusLastKnownGoodState", + "description": "Output only. [Output Only] This field represents the future reservation before an\namendment was requested. If the amendment is declined, the Future\nReservation will be reverted to the last known good state. The last known\ngood state is not set when updating a future reservation whose\nProcurement Status is DRAFTING.", + "readOnly": true + }, + "lockTime": { + "description": "Output only. Time when Future Reservation would become LOCKED, after which no\nmodifications to Future Reservation will be allowed. Applicable only\nafter the Future Reservation is in the APPROVED state. The lock_time is\nan RFC3339 string. The procurement_status will transition to PROCURING\nstate at this time.", + "readOnly": true, + "type": "string" + }, + "procurementStatus": { + "description": "Output only. Current state of this Future Reservation", + "enum": [ + "APPROVED", + "CANCELLED", + "COMMITTED", + "DECLINED", + "DRAFTING", + "FAILED", + "FAILED_PARTIALLY_FULFILLED", + "FULFILLED", + "PENDING_AMENDMENT_APPROVAL", + "PENDING_APPROVAL", + "PROCUREMENT_STATUS_UNSPECIFIED", + "PROCURING", + "PROVISIONING" + ], + "enumDescriptions": [ + "Future reservation is approved by GCP.", + "Future reservation is cancelled by the customer.", + "Future reservation is committed by the customer.", + "Future reservation is rejected by GCP.", + "Related status for PlanningStatus.Draft. Transitions to\nPENDING_APPROVAL upon user submitting FR.", + "Future reservation failed. No additional reservations were provided.", + "Future reservation is partially fulfilled. Additional reservations were\nprovided but did not reach total_count reserved instance slots.", + "Future reservation is fulfilled completely.", + "An Amendment to the Future Reservation has been requested. If the\nAmendment is declined, the Future Reservation will be restored to the\nlast known good state.", + "Future reservation is pending approval by GCP.", + "", + "Future reservation is being procured by GCP. Beyond this point, Future\nreservation is locked and no further modifications are allowed.", + "Future reservation capacity is being provisioned. This state will be\nentered after start_time, while reservations are being created to\nprovide total_count reserved instance slots. This state will not\npersist past start_time + 24h." + ], + "readOnly": true, + "type": "string" + }, + "specificSkuProperties": { + "$ref": "FutureReservationStatusSpecificSKUProperties" + } + }, + "type": "object" + }, + "FutureReservationStatusExistingMatchingUsageInfo": { + "description": "[Output Only] Represents the existing matching usage for the future\nreservation.", + "id": "FutureReservationStatusExistingMatchingUsageInfo", + "properties": { + "count": { + "description": "Output only. Count to represent min(FR total_count,\nmatching_reserved_capacity+matching_unreserved_instances)", + "format": "int64", + "readOnly": true, + "type": "string" + }, + "timestamp": { + "description": "Output only. Timestamp when the matching usage was calculated", + "readOnly": true, + "type": "string" + } + }, + "type": "object" + }, + "FutureReservationStatusLastKnownGoodState": { + "description": "The state that the future reservation will be reverted to should the\namendment be declined.", + "id": "FutureReservationStatusLastKnownGoodState", + "properties": { + "description": { + "description": "Output only. [Output Only] The description of the FutureReservation before an\namendment was requested.", + "readOnly": true, + "type": "string" + }, + "existingMatchingUsageInfo": { + "$ref": "FutureReservationStatusExistingMatchingUsageInfo", + "description": "Output only. [Output Only] Represents the matching usage for the future\nreservation before an amendment was requested.", + "readOnly": true + }, + "futureReservationSpecs": { + "$ref": "FutureReservationStatusLastKnownGoodStateFutureReservationSpecs", + "readOnly": true + }, + "lockTime": { + "description": "Output only. [Output Only] The lock time of the FutureReservation before an\namendment was requested.", + "readOnly": true, + "type": "string" + }, + "namePrefix": { + "description": "Output only. [Output Only] The name prefix of the Future Reservation before an\namendment was requested.", + "readOnly": true, + "type": "string" + }, + "procurementStatus": { + "description": "Output only. [Output Only] The status of the last known good state for the Future\nReservation.", + "enum": [ + "APPROVED", + "CANCELLED", + "COMMITTED", + "DECLINED", + "DRAFTING", + "FAILED", + "FAILED_PARTIALLY_FULFILLED", + "FULFILLED", + "PENDING_AMENDMENT_APPROVAL", + "PENDING_APPROVAL", + "PROCUREMENT_STATUS_UNSPECIFIED", + "PROCURING", + "PROVISIONING" + ], + "enumDescriptions": [ + "Future reservation is approved by GCP.", + "Future reservation is cancelled by the customer.", + "Future reservation is committed by the customer.", + "Future reservation is rejected by GCP.", + "Related status for PlanningStatus.Draft. Transitions to\nPENDING_APPROVAL upon user submitting FR.", + "Future reservation failed. No additional reservations were provided.", + "Future reservation is partially fulfilled. Additional reservations were\nprovided but did not reach total_count reserved instance slots.", + "Future reservation is fulfilled completely.", + "An Amendment to the Future Reservation has been requested. If the\nAmendment is declined, the Future Reservation will be restored to the\nlast known good state.", + "Future reservation is pending approval by GCP.", + "", + "Future reservation is being procured by GCP. Beyond this point, Future\nreservation is locked and no further modifications are allowed.", + "Future reservation capacity is being provisioned. This state will be\nentered after start_time, while reservations are being created to\nprovide total_count reserved instance slots. This state will not\npersist past start_time + 24h." + ], + "readOnly": true, + "type": "string" + } + }, + "type": "object" + }, + "FutureReservationStatusLastKnownGoodStateFutureReservationSpecs": { + "description": "The properties of the last known good state for the Future Reservation.", + "id": "FutureReservationStatusLastKnownGoodStateFutureReservationSpecs", + "properties": { + "shareSettings": { + "$ref": "ShareSettings", + "description": "Output only. [Output Only] The previous share settings of the Future Reservation.", + "readOnly": true + }, + "specificSkuProperties": { + "$ref": "FutureReservationSpecificSKUProperties", + "description": "Output only. [Output Only] The previous instance related properties of the\nFuture Reservation.", + "readOnly": true + }, + "timeWindow": { + "$ref": "FutureReservationTimeWindow", + "description": "Output only. [Output Only] The previous time window of the Future Reservation.", + "readOnly": true + } + }, + "type": "object" + }, + "FutureReservationStatusSpecificSKUProperties": { + "description": "Properties to be set for the Future Reservation.", + "id": "FutureReservationStatusSpecificSKUProperties", + "properties": { + "sourceInstanceTemplateId": { + "description": "ID of the instance template used to populate the Future Reservation\nproperties.", + "type": "string" + } + }, + "type": "object" + }, + "FutureReservationTimeWindow": { + "id": "FutureReservationTimeWindow", + "properties": { + "duration": { + "$ref": "Duration" + }, + "endTime": { + "type": "string" + }, + "startTime": { + "description": "Start time of the Future Reservation. The start_time is an RFC3339\nstring.", + "type": "string" + } + }, + "type": "object" + }, + "FutureReservationsAggregatedListResponse": { + "description": "Contains a list of future reservations.", + "id": "FutureReservationsAggregatedListResponse", + "properties": { + "etag": { + "type": "string" + }, + "id": { + "description": "[Output Only] Unique identifier for the resource; defined by the server.", + "type": "string" + }, + "items": { + "additionalProperties": { + "$ref": "FutureReservationsScopedList", + "description": "Name of the scope containing this set of future reservations." + }, + "description": "A list of Future reservation resources.", + "type": "object" + }, + "kind": { + "default": "compute#futureReservationsAggregatedListResponse", + "description": "Output only. [Output Only] Type of resource. Alwayscompute#futureReservationsAggregatedListResponse for future\nresevation aggregated list response.", + "readOnly": true, + "type": "string" + }, + "nextPageToken": { + "description": "[Output Only] This token allows you to get the next page of results for\nlist requests. If the number of results is larger thanmaxResults, use the nextPageToken as a value for\nthe query parameter pageToken in the next list request.\nSubsequent list requests will have their own nextPageToken to\ncontinue paging through the results.", + "type": "string" + }, + "selfLink": { + "description": "Output only. [Output Only] Server-defined URL for this resource.", + "readOnly": true, + "type": "string" + }, + "unreachables": { + "description": "Output only. [Output Only] Unreachable resources.", + "items": { + "type": "string" + }, + "readOnly": true, + "type": "array" + }, + "warning": { + "description": "[Output Only] Informational warning message.", + "properties": { + "code": { + "description": "[Output Only] A warning code, if applicable. For example, Compute\nEngine returns NO_RESULTS_ON_PAGE if there\nare 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", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", + "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "PARTIAL_SUCCESS", + "QUOTA_INFO_UNAVAILABLE", + "REQUIRED_TOS_AGREEMENT", + "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", + "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", + "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", + "UNREACHABLE" + ], + "enumDeprecated": [ + false, + false, + false, + false, + false, + false, + true, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false + ], + "enumDescriptions": [ + "Warning about failed cleanup of transient changes made by a failed\noperation.", + "A link to a deprecated resource was created.", + "When deploying and at least one of the resources has a type marked as\ndeprecated", + "The user created a boot disk that is larger than image size.", + "When deploying and at least one of the resources has a type marked as\nexperimental", + "Warning that is present in an external api call", + "Warning that value of a field has been overridden.\nDeprecated unused field.", + "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is\nnot of type HTTP/HTTPS/HTTP2.", + "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed\nwhich captures the amount of resources filtered out by\nuser-defined list filter.", + "A resource depends on a missing type", + "The route's nextHopIp address is not assigned to an instance on the\nnetwork.", + "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an\nipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not exist.", + "The route's nextHopInstance URL refers to an instance that is not on the\nsame network as the route.", + "The route's next hop instance does not have a status of RUNNING.", + "Error which is not critical. We decided to continue the process despite\nthe mentioned error.", + "No results are present on a particular list page.", + "Success is reported, but some results may be missing due to errors", + "Quota information is not available to client requests (e.g:\nregions.list).", + "The user attempted to use a resource that requires a TOS they have not\naccepted.", + "Warning that a resource is in use.", + "One or more of the resources set to auto-delete could not be deleted\nbecause they were in use.", + "When a resource schema validation is ignored.", + "Instance template used in instance group manager is valid as such, but\nits application does not make a lot of sense, because it allows only\nsingle instance in instance group.", + "When undeclared properties in the schema are present", + "A given scope cannot be reached." + ], + "type": "string" + }, + "data": { + "description": "[Output Only] Metadata about this warning in key:\nvalue format. For example:\n\n\"data\": [\n {\n \"key\": \"scope\",\n \"value\": \"zones/us-east1-d\"\n }", + "items": { + "properties": { + "key": { + "description": "[Output Only] A key that provides more detail on the warning being\nreturned. For example, for warnings where there are no results in a list\nrequest for a particular zone, this key might be scope and\nthe key value might be the zone name. Other examples might be a key\nindicating a deprecated resource and a suggested replacement, or a\nwarning about invalid network settings (for example, if an instance\nattempts 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" + }, + "FutureReservationsListResponse": { + "id": "FutureReservationsListResponse", + "properties": { + "etag": { + "type": "string" + }, + "id": { + "description": "[Output Only] The unique identifier for the resource. This identifier is\ndefined by the server.", + "type": "string" + }, + "items": { + "description": "[Output Only] A list of future reservation resources.", + "items": { + "$ref": "FutureReservation" + }, + "type": "array" + }, + "kind": { + "default": "compute#futureReservationsListResponse", + "description": "Output only. [Output Only] Type of resource.Alwayscompute#FutureReservationsListResponse for lists of\nreservations", + "readOnly": true, + "type": "string" + }, + "nextPageToken": { + "description": "[Output Only] This token allows you to get the next page of results for\nlist requests. If the number of results is larger thanmaxResults, use the nextPageToken as a value for\nthe query parameter pageToken in the next list request.\nSubsequent list requests will have their own nextPageToken to\ncontinue paging through the results.", + "type": "string" + }, + "selfLink": { + "description": "Output only. [Output Only] Server-defined URL for this resource.", + "readOnly": true, + "type": "string" + }, + "unreachables": { + "description": "Output only. [Output Only] Unreachable resources.", + "items": { + "type": "string" + }, + "readOnly": true, + "type": "array" + }, + "warning": { + "description": "[Output Only] Informational warning message.", + "properties": { + "code": { + "description": "[Output Only] A warning code, if applicable. For example, Compute\nEngine returns NO_RESULTS_ON_PAGE if there\nare 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", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", + "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "PARTIAL_SUCCESS", + "QUOTA_INFO_UNAVAILABLE", + "REQUIRED_TOS_AGREEMENT", + "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", + "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", + "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", + "UNREACHABLE" + ], + "enumDeprecated": [ + false, + false, + false, + false, + false, + false, + true, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false + ], + "enumDescriptions": [ + "Warning about failed cleanup of transient changes made by a failed\noperation.", + "A link to a deprecated resource was created.", + "When deploying and at least one of the resources has a type marked as\ndeprecated", + "The user created a boot disk that is larger than image size.", + "When deploying and at least one of the resources has a type marked as\nexperimental", + "Warning that is present in an external api call", + "Warning that value of a field has been overridden.\nDeprecated unused field.", + "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is\nnot of type HTTP/HTTPS/HTTP2.", + "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed\nwhich captures the amount of resources filtered out by\nuser-defined list filter.", + "A resource depends on a missing type", + "The route's nextHopIp address is not assigned to an instance on the\nnetwork.", + "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an\nipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not exist.", + "The route's nextHopInstance URL refers to an instance that is not on the\nsame network as the route.", + "The route's next hop instance does not have a status of RUNNING.", + "Error which is not critical. We decided to continue the process despite\nthe mentioned error.", + "No results are present on a particular list page.", + "Success is reported, but some results may be missing due to errors", + "Quota information is not available to client requests (e.g:\nregions.list).", + "The user attempted to use a resource that requires a TOS they have not\naccepted.", + "Warning that a resource is in use.", + "One or more of the resources set to auto-delete could not be deleted\nbecause they were in use.", + "When a resource schema validation is ignored.", + "Instance template used in instance group manager is valid as such, but\nits application does not make a lot of sense, because it allows only\nsingle instance in instance group.", + "When undeclared properties in the schema are present", + "A given scope cannot be reached." + ], + "type": "string" + }, + "data": { + "description": "[Output Only] Metadata about this warning in key:\nvalue format. For example:\n\n\"data\": [\n {\n \"key\": \"scope\",\n \"value\": \"zones/us-east1-d\"\n }", + "items": { + "properties": { + "key": { + "description": "[Output Only] A key that provides more detail on the warning being\nreturned. For example, for warnings where there are no results in a list\nrequest for a particular zone, this key might be scope and\nthe key value might be the zone name. Other examples might be a key\nindicating a deprecated resource and a suggested replacement, or a\nwarning about invalid network settings (for example, if an instance\nattempts 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" + }, + "FutureReservationsScopedList": { + "id": "FutureReservationsScopedList", + "properties": { + "futureReservations": { + "description": "A list of future reservations contained in this scope.", + "items": { + "$ref": "FutureReservation" + }, + "type": "array" + }, + "warning": { + "description": "Informational warning which replaces the list of future reservations when\nthe list is empty.", + "properties": { + "code": { + "description": "[Output Only] A warning code, if applicable. For example, Compute\nEngine returns NO_RESULTS_ON_PAGE if there\nare 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", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", + "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "PARTIAL_SUCCESS", + "QUOTA_INFO_UNAVAILABLE", + "REQUIRED_TOS_AGREEMENT", + "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", + "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", + "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", + "UNREACHABLE" + ], + "enumDeprecated": [ + false, + false, + false, + false, + false, + false, + true, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false + ], + "enumDescriptions": [ + "Warning about failed cleanup of transient changes made by a failed\noperation.", + "A link to a deprecated resource was created.", + "When deploying and at least one of the resources has a type marked as\ndeprecated", + "The user created a boot disk that is larger than image size.", + "When deploying and at least one of the resources has a type marked as\nexperimental", + "Warning that is present in an external api call", + "Warning that value of a field has been overridden.\nDeprecated unused field.", + "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is\nnot of type HTTP/HTTPS/HTTP2.", + "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed\nwhich captures the amount of resources filtered out by\nuser-defined list filter.", + "A resource depends on a missing type", + "The route's nextHopIp address is not assigned to an instance on the\nnetwork.", + "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an\nipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not exist.", + "The route's nextHopInstance URL refers to an instance that is not on the\nsame network as the route.", + "The route's next hop instance does not have a status of RUNNING.", + "Error which is not critical. We decided to continue the process despite\nthe mentioned error.", + "No results are present on a particular list page.", + "Success is reported, but some results may be missing due to errors", + "Quota information is not available to client requests (e.g:\nregions.list).", + "The user attempted to use a resource that requires a TOS they have not\naccepted.", + "Warning that a resource is in use.", + "One or more of the resources set to auto-delete could not be deleted\nbecause they were in use.", + "When a resource schema validation is ignored.", + "Instance template used in instance group manager is valid as such, but\nits application does not make a lot of sense, because it allows only\nsingle instance in instance group.", + "When undeclared properties in the schema are present", + "A given scope cannot be reached." + ], + "type": "string" + }, + "data": { + "description": "[Output Only] Metadata about this warning in key:\nvalue format. For example:\n\n\"data\": [\n {\n \"key\": \"scope\",\n \"value\": \"zones/us-east1-d\"\n }", + "items": { + "properties": { + "key": { + "description": "[Output Only] A key that provides more detail on the warning being\nreturned. For example, for warnings where there are no results in a list\nrequest for a particular zone, this key might be scope and\nthe key value might be the zone name. Other examples might be a key\nindicating a deprecated resource and a suggested replacement, or a\nwarning about invalid network settings (for example, if an instance\nattempts 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" + }, + "FutureResourcesRecommendation": { + "description": "Recommendation for single resources specification, to be created in the\nfuture.", + "id": "FutureResourcesRecommendation", + "properties": { + "endTime": { + "format": "google-datetime", + "type": "string" + }, + "location": { + "description": "The advised location for resource usage. When a zone, in format\n'zones/'.\nIf not set, it means that no location is recommended - see\nother_locations for details.", + "type": "string" + }, + "otherLocations": { + "additionalProperties": { + "$ref": "FutureResourcesRecommendationOtherLocation" + }, + "description": "List of locations in the request scope that were not\nrecommended. Keys of the map are zones, in format 'zones/'.\nThe values are status information indicating the recommendation status.", + "type": "object" + }, + "recommendationId": { + "description": "Unique id of the recommendation, a UUID string generated by the API.", + "type": "string" + }, + "recommendationType": { + "description": "Type of recommendation. Currently only FUTURE_RESERVATION is supported.", + "enum": [ + "FUTURE_RESERVATION", + "RECOMMENDATION_TYPE_UNSPECIFIED" + ], + "enumDescriptions": [ + "A Future Reservation is recommended.", + "Default value, unused." + ], + "type": "string" + }, + "startTime": { + "format": "google-datetime", + "type": "string" + } + }, + "type": "object" + }, + "FutureResourcesRecommendationOtherLocation": { + "description": "Information about recommendation status for locations\nthat were allowed but not used by the response.", + "id": "FutureResourcesRecommendationOtherLocation", + "properties": { + "details": { + "description": "Details (human readable) describing the situation.\nFor example, if status is CONDITION_NOT_MET, then\ndetails contain information about the parameters of the time window\nthat did not meet the required conditions.", + "type": "string" + }, + "status": { + "description": "Status of recommendation in this location.", + "enum": [ + "CONDITIONS_NOT_MET", + "NOT_SUPPORTED", + "NO_CAPACITY", + "OTHER_LOCATION_STATUS_UNDEFINED", + "RECOMMENDED" + ], + "enumDescriptions": [ + "The requested resources are offered in this location\nbut the requested time window is does not meet the required conditions.", + "The requested resources are not offered in this location.\nRetrying the request will not change this status.", + "The requested resources are offered in this location\nand the requested time window is accepted\nbut there is no capacity within the requested time window.", + "Default value, unused.", + "The requested resources are offered in this location\nand it is possible to request them. However, another location\nwas better and was recommended." + ], + "type": "string" + } + }, + "type": "object" + }, + "FutureResourcesSpec": { + "description": "Specification of resources to be created at some time in the future within an\noptionally specified set of locations, and within the specified time range.", + "id": "FutureResourcesSpec", + "properties": { + "deploymentType": { + "description": "Indicates if the reservation allocation strategy is static (DENSE) or\ndynamic (STANDARD). Defaults to DENSE.", + "enum": [ + "DENSE", + "DEPLOYMENT_TYPE_UNSPECIFIED" + ], + "enumDescriptions": [ + "The reserved capacity is made up of densely deployed reservation blocks.", + "" + ], + "type": "string" + }, + "locationPolicy": { + "$ref": "FutureResourcesSpecLocationPolicy", + "description": "Optional location policy allowing to exclude some zone(s) in which\nthe resources must not be created." + }, + "targetResources": { + "$ref": "FutureResourcesSpecTargetResources", + "description": "Specification of the reserved resources." + }, + "timeRangeSpec": { + "$ref": "FlexibleTimeRange", + "description": "Specification of a time range in which the resources may be created.\nThe time range specifies start of resource use and planned end of resource\nuse." + } + }, + "type": "object" + }, + "FutureResourcesSpecAggregateResources": { + "id": "FutureResourcesSpecAggregateResources", + "properties": { + "acceleratorCount": { + "description": "Size of the request, in accelerator (chip) count.", + "format": "int64", + "type": "string" + }, + "vmFamily": { + "description": "The VM family that all instances scheduled against this reservation\nmust belong to. Use for TPU reservations.", + "enum": [ + "VM_FAMILY_CLOUD_TPU_DEVICE_CT3", + "VM_FAMILY_CLOUD_TPU_LITE_DEVICE_CT5L", + "VM_FAMILY_CLOUD_TPU_LITE_POD_SLICE_CT5LP", + "VM_FAMILY_CLOUD_TPU_LITE_POD_SLICE_CT6E", + "VM_FAMILY_CLOUD_TPU_POD_SLICE_CT3P", + "VM_FAMILY_CLOUD_TPU_POD_SLICE_CT4P", + "VM_FAMILY_CLOUD_TPU_POD_SLICE_CT5P", + "VM_FAMILY_CLOUD_TPU_POD_SLICE_TPU7X" + ], + "enumDescriptions": [ + "", + "", + "", + "", + "", + "", + "", + "" + ], + "type": "string" + }, + "workloadType": { + "description": "Workload type. Use for TPU reservations.", + "enum": [ + "BATCH", + "SERVING", + "UNSPECIFIED" + ], + "enumDescriptions": [ + "Reserved resources will be optimized for BATCH workloads, such as ML\ntraining.", + "Reserved resources will be optimized for SERVING workloads, such as ML\ninference.", + "" + ], + "type": "string" + } + }, + "type": "object" + }, + "FutureResourcesSpecLocalSsdPartition": { + "id": "FutureResourcesSpecLocalSsdPartition", + "properties": { + "diskInterface": { + "description": "Disk interface. Defaults to SCSI.", + "enum": [ + "NVME", + "SCSI" + ], + "enumDescriptions": [ + "", + "" + ], + "type": "string" + }, + "diskSizeGb": { + "description": "The size of the disk in GB.", + "format": "int64", + "type": "string" + } + }, + "type": "object" + }, + "FutureResourcesSpecLocationPolicy": { + "description": "Specification of locations to create resources in.", + "id": "FutureResourcesSpecLocationPolicy", + "properties": { + "locations": { + "additionalProperties": { + "$ref": "FutureResourcesSpecLocationPolicyLocation" + }, + "description": "Preferences for specified locations.\nKeys of the map are locations - zones, in format of 'zones/'.\nValues are preferences for the zones.\nIf a zone is not specified in this map, it is ALLOWed.", + "type": "object" + } + }, + "type": "object" + }, + "FutureResourcesSpecLocationPolicyLocation": { + "description": "Preference for a single specified location.", + "id": "FutureResourcesSpecLocationPolicyLocation", + "properties": { + "preference": { + "description": "Preference for this location.", + "enum": [ + "ALLOW", + "DENY", + "PREFERENCE_UNSPECIFIED" + ], + "enumDescriptions": [ + "Location is allowed for use.", + "Location is prohibited.", + "Default value, unused." + ], + "type": "string" + } + }, + "type": "object" + }, + "FutureResourcesSpecSpecificSKUResources": { + "id": "FutureResourcesSpecSpecificSKUResources", + "properties": { + "instanceCount": { + "description": "Size of the request, in instance count.", + "format": "int64", + "type": "string" + }, + "localSsdPartitions": { + "description": "Local SSD partitions. You do not have to include SSD partitions that\nare built in the machine type.", + "items": { + "$ref": "FutureResourcesSpecLocalSsdPartition" + }, + "type": "array" + }, + "machineType": { + "description": "The machine type to use for instances that will use the reservation.\nThis field only accepts machine type names. e.g. n2-standard-4\nand does not accept machine type full or partial url. e.g.\nprojects/my-l7ilb-project/zones/us-central1-a/machineTypes/n2-standard-4.\nUse for GPU reservations.", + "type": "string" + } + }, + "type": "object" + }, + "FutureResourcesSpecTargetResources": { + "description": "Specification of reserved resources.", + "id": "FutureResourcesSpecTargetResources", + "properties": { + "aggregateResources": { + "$ref": "FutureResourcesSpecAggregateResources" + }, + "specificSkuResources": { + "$ref": "FutureResourcesSpecSpecificSKUResources" + } + }, + "type": "object" + }, + "GRPCHealthCheck": { + "id": "GRPCHealthCheck", + "properties": { + "grpcServiceName": { + "description": "The gRPC service name for the health check. This field is optional. The\nvalue of grpc_service_name has the following meanings by convention: \n\n- Empty service_name means the overall status of all services at the\nbackend. \n\n- Non-empty service_name means the health of that gRPC service, as defined\nby the owner of the service. \n\nThe grpc_service_name can only be ASCII.", + "type": "string" + }, + "port": { + "description": "The TCP port number to which the health check prober sends packets. Valid\nvalues are 1 through 65535.", + "format": "int32", + "type": "integer" + }, + "portName": { + "description": "Not supported.", + "type": "string" + }, + "portSpecification": { + "description": "Specifies how a port is selected for health checking. Can be one of the\nfollowing values: \nUSE_FIXED_PORT: Specifies a port number explicitly using theport field in the health check. Supported by backend services\nfor passthrough load balancers and backend services for proxy load\nbalancers. Not supported by target pools. The health check supports all\nbackends supported by the backend service provided the backend can be\nhealth checked. For example, GCE_VM_IP network endpoint\ngroups, GCE_VM_IP_PORT network endpoint groups, and instance\ngroup backends. \n USE_NAMED_PORT: Not supported. \nUSE_SERVING_PORT: Provides an indirect method of specifying\nthe health check port by referring to the backend service. Only supported\nby backend services for proxy load balancers. Not supported by target\npools. Not supported by backend services for passthrough load balancers.\nSupports all backends that can be health checked; for example,GCE_VM_IP_PORT network endpoint groups and instance group\nbackends.\n\nFor GCE_VM_IP_PORT network endpoint group backends, the health\ncheck uses the port number specified for each endpoint in the network\nendpoint group. For instance group backends, the health check uses the\nport number determined by looking up the backend service's named port in\nthe instance group's list of named ports.", + "enum": [ + "USE_FIXED_PORT", + "USE_NAMED_PORT", + "USE_SERVING_PORT" + ], + "enumDescriptions": [ + "The port number in the health check's port is used for health\nchecking. Applies to network endpoint group and instance group backends.", + "Not supported.", + "For network endpoint group backends, the health check uses the port number\nspecified on each endpoint in the network endpoint group. For instance\ngroup backends, the health check uses the port number specified for the\nbackend service's named port defined in the instance group's named ports." + ], + "type": "string" + } + }, + "type": "object" + }, + "GRPCTLSHealthCheck": { + "id": "GRPCTLSHealthCheck", + "properties": { + "grpcServiceName": { + "description": "The gRPC service name for the health check. This field is optional. The\nvalue of grpc_service_name has the following meanings by convention: \n\n- Empty service_name means the overall status of all services at the\nbackend. \n\n- Non-empty service_name means the health of that gRPC service, as defined\nby the owner of the service. \n\nThe grpc_service_name can only be ASCII.", + "type": "string" + }, + "port": { + "description": "The TCP port number to which the health check prober sends packets. Valid\nvalues are 1 through 65535.", + "format": "int32", + "type": "integer" + }, + "portSpecification": { + "description": "Specifies how a port is selected for health checking. Can be one of the\nfollowing values: \nUSE_FIXED_PORT: Specifies a port number explicitly using theport field in the health check. Supported by backend services\nfor passthrough load balancers and backend services for proxy load\nbalancers. Not supported by target pools. The health check supports all\nbackends supported by the backend service provided the backend can be\nhealth checked. For example, GCE_VM_IP network endpoint\ngroups, GCE_VM_IP_PORT network endpoint groups, and instance\ngroup backends. \n USE_NAMED_PORT: Not supported. \nUSE_SERVING_PORT: Provides an indirect method of specifying\nthe health check port by referring to the backend service. Only supported\nby backend services for proxy load balancers. Not supported by target\npools. Not supported by backend services for passthrough load balancers.\nSupports all backends that can be health checked; for example,GCE_VM_IP_PORT network endpoint groups and instance group\nbackends.\n\nFor GCE_VM_IP_PORT network endpoint group backends, the health\ncheck uses the port number specified for each endpoint in the network\nendpoint group. For instance group backends, the health check uses the\nport number determined by looking up the backend service's named port in\nthe instance group's list of named ports.", + "enum": [ + "USE_FIXED_PORT", + "USE_NAMED_PORT", + "USE_SERVING_PORT" + ], + "enumDescriptions": [ + "The port number in the health check's port is used for health\nchecking. Applies to network endpoint group and instance group backends.", + "Not supported.", + "For network endpoint group backends, the health check uses the port number\nspecified on each endpoint in the network endpoint group. For instance\ngroup backends, the health check uses the port number specified for the\nbackend service's named port defined in the instance group's named ports." + ], + "type": "string" + } + }, + "type": "object" + }, + "GetVersionOperationMetadata": { + "id": "GetVersionOperationMetadata", + "properties": { + "inlineSbomInfo": { + "$ref": "GetVersionOperationMetadataSbomInfo" + } + }, + "type": "object" + }, + "GetVersionOperationMetadataSbomInfo": { + "id": "GetVersionOperationMetadataSbomInfo", + "properties": { + "currentComponentVersions": { + "additionalProperties": { + "type": "string" + }, + "description": "A mapping of components to their currently-applied versions or other\nappropriate identifiers.", + "type": "object" + }, + "targetComponentVersions": { + "additionalProperties": { + "type": "string" + }, + "description": "A mapping of components to their target versions or other appropriate\nidentifiers.", + "type": "object" + } + }, + "type": "object" + }, + "GlobalAddressesMoveRequest": { + "id": "GlobalAddressesMoveRequest", + "properties": { + "description": { + "description": "An optional destination address description if intended to be different\nfrom the source.", + "type": "string" + }, + "destinationAddress": { + "description": "The URL of the destination address to move to. This can be a full or\npartial URL. For example, the following are all valid URLs to a address:\n \n - https://www.googleapis.com/compute/v1/projects/project/global/addresses/address \n - projects/project/global/addresses/address\n\n\nNote that destination project must be different from the source project. So/global/addresses/address is not valid partial url.", + "type": "string" + } + }, + "type": "object" + }, + "GlobalNetworkEndpointGroupsAttachEndpointsRequest": { + "id": "GlobalNetworkEndpointGroupsAttachEndpointsRequest", + "properties": { + "networkEndpoints": { + "description": "The list of network endpoints to be attached.", + "items": { + "$ref": "NetworkEndpoint" + }, + "type": "array" + } + }, + "type": "object" + }, + "GlobalNetworkEndpointGroupsDetachEndpointsRequest": { + "id": "GlobalNetworkEndpointGroupsDetachEndpointsRequest", + "properties": { + "networkEndpoints": { + "description": "The list of network endpoints to be detached.", + "items": { + "$ref": "NetworkEndpoint" + }, + "type": "array" + } + }, + "type": "object" + }, + "GlobalOrganizationSetPolicyRequest": { + "id": "GlobalOrganizationSetPolicyRequest", + "properties": { + "bindings": { + "description": "Flatten Policy to create a backward compatible wire-format.\nDeprecated. Use 'policy' to specify bindings.", + "items": { + "$ref": "Binding" + }, + "type": "array" + }, + "etag": { + "description": "Flatten Policy to create a backward compatible wire-format.\nDeprecated. Use 'policy' to specify the etag.", + "format": "byte", + "type": "string" + }, + "policy": { + "$ref": "Policy", + "description": "REQUIRED: The complete policy to be applied to the 'resource'. The size of\nthe policy is limited to a few 10s of KB. An empty policy is in general a\nvalid policy but certain services (like Projects) might reject them." + } + }, + "type": "object" + }, + "GlobalSetLabelsRequest": { + "id": "GlobalSetLabelsRequest", + "properties": { + "labelFingerprint": { + "description": "The fingerprint of the previous set of labels for this resource,\nused to detect conflicts. The fingerprint is initially generated by Compute\nEngine and changes after every request to modify or update labels. You must\nalways provide an up-to-date fingerprint hash when updating or changing\nlabels, otherwise the request will fail with error412 conditionNotMet. Make a get() request to the\nresource to get the latest fingerprint.", + "format": "byte", + "type": "string" + }, + "labels": { + "additionalProperties": { + "type": "string" + }, + "description": "A list of labels to apply for this resource. Each label must comply with\nthe\nrequirements for labels. For example,\"webserver-frontend\": \"images\". A label value can also be\nempty (e.g. \"my-label\": \"\").", + "type": "object" + } + }, + "type": "object" + }, + "GlobalSetPolicyRequest": { + "id": "GlobalSetPolicyRequest", + "properties": { + "bindings": { + "description": "Flatten Policy to create a backward compatible wire-format.\nDeprecated. Use 'policy' to specify bindings.", + "items": { + "$ref": "Binding" + }, + "type": "array" + }, + "etag": { + "description": "Flatten Policy to create a backward compatible wire-format.\nDeprecated. Use 'policy' to specify the etag.", + "format": "byte", + "type": "string" + }, + "policy": { + "$ref": "Policy", + "description": "REQUIRED: The complete policy to be applied to the 'resource'. The size of\nthe policy is limited to a few 10s of KB. An empty policy is in general a\nvalid policy but certain services (like Projects) might reject them." + } + }, + "type": "object" + }, + "GlobalVmExtensionPolicy": { + "description": "Message describing GlobalVmExtensionPolicy object.", + "id": "GlobalVmExtensionPolicy", + "properties": { + "creationTimestamp": { + "description": "Output only. [Output Only] Creation timestamp inRFC3339\ntext format.", + "readOnly": true, + "type": "string" + }, + "description": { + "description": "An optional description of this resource. Provide this property when you\ncreate the resource.", + "type": "string" + }, + "extensionPolicies": { + "additionalProperties": { + "$ref": "GlobalVmExtensionPolicyExtensionPolicy" + }, + "description": "Required. Map from extension (eg: \"cloudops\") to its policy configuration.\nThe key is the name of the extension.", + "type": "object" + }, + "id": { + "description": "Output only. [Output Only] The unique identifier for the resource. This identifier is\ndefined by the server.", + "format": "uint64", + "readOnly": true, + "type": "string" + }, + "instanceSelectors": { + "description": "Optional. Selector to target VMs for a policy.\nThere is a logical \"AND\" between instance_selectors.", + "items": { + "$ref": "GlobalVmExtensionPolicyInstanceSelector" + }, + "type": "array" + }, + "kind": { + "default": "compute#globalVmExtensionPolicy", + "description": "Output only. [Output Only] Type of the resource. Alwayscompute#globalVmExtensionPolicy for globalVmExtensionPolicies.", + "readOnly": true, + "type": "string" + }, + "name": { + "description": "Name of the resource. Provided by the client when the resource is created.\nThe name must be 1-63 characters long, and comply withRFC1035.\nSpecifically, the name must be 1-63 characters long and match the regular\nexpression `[a-z]([-a-z0-9]*[a-z0-9])?`\nwhich means the first character must be a lowercase letter, and all\nfollowing characters must be a dash, lowercase letter, or digit, except\nthe last character, which cannot be a dash.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "type": "string" + }, + "priority": { + "description": "Optional. Used to resolve conflicts when multiple policies are active for the same\nextension. Defaults to 0.\n\nLarger the number, higher the priority. When the priority is the same,\nthe policy with the newer create time has higher priority.", + "format": "int32", + "type": "integer" + }, + "rolloutOperation": { + "$ref": "GlobalVmExtensionPolicyRolloutOperation", + "description": "Required. The rollout strategy and status." + }, + "scopedResourceStatus": { + "description": "Output only. [Output Only] The scoped resource status. It's only for tracking the\npurging status of the policy.", + "enum": [ + "SCOPED_RESOURCE_STATUS_DELETING", + "SCOPED_RESOURCE_STATUS_UNSPECIFIED" + ], + "enumDescriptions": [ + "The zonal policies are being deleted.", + "Default value. This value is unused." + ], + "readOnly": true, + "type": "string" + }, + "selfLink": { + "description": "Output only. [Output Only] Server-defined fully-qualified URL for this resource.", + "readOnly": true, + "type": "string" + }, + "selfLinkWithId": { + "description": "Output only. [Output Only] Server-defined URL for this resource's resource id.", + "readOnly": true, + "type": "string" + }, + "updateTimestamp": { + "description": "Output only. [Output Only] Update timestamp inRFC3339\ntext format.", + "readOnly": true, + "type": "string" + } + }, + "type": "object" + }, + "GlobalVmExtensionPolicyExtensionPolicy": { + "description": "Policy for a single extension.", + "id": "GlobalVmExtensionPolicyExtensionPolicy", + "properties": { + "pinnedVersion": { + "description": "Optional. The version pinning for the extension.\nIf empty, the extension will be installed with the latest version\nreleased by the extension producer.", + "type": "string" + }, + "stringConfig": { + "description": "Optional. String configuration. Any string payload that the extension\nunderstands.", + "type": "string" + } + }, + "type": "object" + }, + "GlobalVmExtensionPolicyInstanceSelector": { + "description": "Selector to target VMs for a zone VM extension policy.", + "id": "GlobalVmExtensionPolicyInstanceSelector", + "properties": { + "labelSelector": { + "$ref": "GlobalVmExtensionPolicyLabelSelector", + "description": "Optional. Labels within the LabelSelector are OR'd." + } + }, + "type": "object" + }, + "GlobalVmExtensionPolicyLabelSelector": { + "description": "A LabelSelector is applicable for a VM only if it matches all labels in\nthe LabelSelector.", + "id": "GlobalVmExtensionPolicyLabelSelector", + "properties": { + "inclusionLabels": { + "additionalProperties": { + "type": "string" + }, + "description": "Optional. Labels as key value pairs.\nA VM should contain all the pairs specified in this map to be selected;\nLabels within the LabelSelector are OR'ed.", + "type": "object" + } + }, + "type": "object" + }, + "GlobalVmExtensionPolicyList": { + "description": "Response to list global VM extension policy resources.", + "id": "GlobalVmExtensionPolicyList", + "properties": { + "etag": { + "type": "string" + }, + "id": { + "description": "[Output Only] Unique identifier for the resource; defined by the server.", + "type": "string" + }, + "items": { + "description": "A list of GlobalVmExtensionPolicy resources.", + "items": { + "$ref": "GlobalVmExtensionPolicy" + }, + "type": "array" + }, + "kind": { + "default": "compute#globalVmExtensionPolicyList", + "description": "Output only. Type of resource.", + "readOnly": true, + "type": "string" + }, + "nextPageToken": { + "description": "[Output Only] This token allows you to get the next page of results for\nlist requests. If the number of results is larger thanmaxResults, use the nextPageToken as a value for\nthe query parameter pageToken in the next list request.\nSubsequent list requests will have their own nextPageToken to\ncontinue paging through the results.", + "type": "string" + }, + "selfLink": { + "description": "Output only. [Output Only] Server-defined URL for this resource.", + "readOnly": true, + "type": "string" + }, + "unreachables": { + "description": "Output only. [Output Only] Unreachable resources.", + "items": { + "type": "string" + }, + "readOnly": true, + "type": "array" + }, + "warning": { + "description": "[Output Only] Informational warning message.", + "properties": { + "code": { + "description": "[Output Only] A warning code, if applicable. For example, Compute\nEngine returns NO_RESULTS_ON_PAGE if there\nare 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", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", + "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "PARTIAL_SUCCESS", + "QUOTA_INFO_UNAVAILABLE", + "REQUIRED_TOS_AGREEMENT", + "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", + "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", + "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", + "UNREACHABLE" + ], + "enumDeprecated": [ + false, + false, + false, + false, + false, + false, + true, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false + ], + "enumDescriptions": [ + "Warning about failed cleanup of transient changes made by a failed\noperation.", + "A link to a deprecated resource was created.", + "When deploying and at least one of the resources has a type marked as\ndeprecated", + "The user created a boot disk that is larger than image size.", + "When deploying and at least one of the resources has a type marked as\nexperimental", + "Warning that is present in an external api call", + "Warning that value of a field has been overridden.\nDeprecated unused field.", + "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is\nnot of type HTTP/HTTPS/HTTP2.", + "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed\nwhich captures the amount of resources filtered out by\nuser-defined list filter.", + "A resource depends on a missing type", + "The route's nextHopIp address is not assigned to an instance on the\nnetwork.", + "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an\nipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not exist.", + "The route's nextHopInstance URL refers to an instance that is not on the\nsame network as the route.", + "The route's next hop instance does not have a status of RUNNING.", + "Error which is not critical. We decided to continue the process despite\nthe mentioned error.", + "No results are present on a particular list page.", + "Success is reported, but some results may be missing due to errors", + "Quota information is not available to client requests (e.g:\nregions.list).", + "The user attempted to use a resource that requires a TOS they have not\naccepted.", + "Warning that a resource is in use.", + "One or more of the resources set to auto-delete could not be deleted\nbecause they were in use.", + "When a resource schema validation is ignored.", + "Instance template used in instance group manager is valid as such, but\nits application does not make a lot of sense, because it allows only\nsingle instance in instance group.", + "When undeclared properties in the schema are present", + "A given scope cannot be reached." + ], + "type": "string" + }, + "data": { + "description": "[Output Only] Metadata about this warning in key:\nvalue format. For example:\n\n\"data\": [\n {\n \"key\": \"scope\",\n \"value\": \"zones/us-east1-d\"\n }", + "items": { + "properties": { + "key": { + "description": "[Output Only] A key that provides more detail on the warning being\nreturned. For example, for warnings where there are no results in a list\nrequest for a particular zone, this key might be scope and\nthe key value might be the zone name. Other examples might be a key\nindicating a deprecated resource and a suggested replacement, or a\nwarning about invalid network settings (for example, if an instance\nattempts 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" + }, + "GlobalVmExtensionPolicyRolloutOperation": { + "description": "Represents the rollout operation", + "id": "GlobalVmExtensionPolicyRolloutOperation", + "properties": { + "rolloutInput": { + "$ref": "GlobalVmExtensionPolicyRolloutOperationRolloutInput", + "description": "Required. The rollout input which defines the rollout plan." + }, + "rolloutStatus": { + "$ref": "GlobalVmExtensionPolicyRolloutOperationRolloutStatus", + "description": "Output only. [Output Only] The rollout status of the policy.", + "readOnly": true + } + }, + "type": "object" + }, + "GlobalVmExtensionPolicyRolloutOperationRolloutInput": { + "id": "GlobalVmExtensionPolicyRolloutOperationRolloutInput", + "properties": { + "conflictBehavior": { + "description": "Optional. Specifies the behavior of the rollout if a conflict is detected in a\nproject during a rollout. This only applies to `insert` and `update`\nmethods.\n\nA conflict occurs in the following cases:\n\n* `insert` method: If the zonal policy already exists when the insert\n happens.\n* `update` method: If the zonal policy was modified by a zonal API call\n outside of this rollout.\n\nPossible values are the following:\n\n* `\"\"` (empty string): If a conflict occurs, the local value is not\n overwritten. This is the default behavior.\n* `\"overwrite\"`: If a conflict occurs, the local value is overwritten\n with the rollout value.", + "type": "string" + }, + "name": { + "description": "Optional. The name of the rollout plan.\nEx.\nprojects//locations/global/rolloutPlans/.", + "type": "string" + }, + "predefinedRolloutPlan": { + "description": "Optional. Specifies the predefined rollout plan for the policy. Valid values\nare `SLOW_ROLLOUT` and `FAST_ROLLOUT`. The recommended value is\n`SLOW_ROLLOUT` for progressive rollout. For more information, see Rollout\nplans for global policies.", + "enum": [ + "FAST_ROLLOUT", + "ROLLOUT_PLAN_UNSPECIFIED", + "SLOW_ROLLOUT" + ], + "enumDescriptions": [ + "", + "", + "" + ], + "type": "string" + }, + "retryUuid": { + "description": "Optional. The UUID that identifies a policy rollout retry attempt for update and\ndelete operations. Set this field only when retrying a rollout for an\nexisting extension policy.\n\n* `update` method: Lets you retry policy rollout without changes.\nAn error occurs if you set retry_uuid but the policy is modified.\n* `delete` method: Lets you retry policy deletion rollout if the\nprevious deletion rollout is not finished and the policy is in the\nDELETING state. If you set this field when the policy is not in the\nDELETING state, an error occurs.", + "type": "string" + } + }, + "type": "object" + }, + "GlobalVmExtensionPolicyRolloutOperationRolloutStatus": { + "id": "GlobalVmExtensionPolicyRolloutOperationRolloutStatus", + "properties": { + "currentRollouts": { + "description": "Output only. [Output Only] The current rollouts for the latest version of the\nresource. There should be only one current rollout, but for\nscalability, we make it repeated.", + "items": { + "$ref": "GlobalVmExtensionPolicyRolloutOperationRolloutStatusRolloutMetadata" + }, + "readOnly": true, + "type": "array" + }, + "previousRollout": { + "$ref": "GlobalVmExtensionPolicyRolloutOperationRolloutStatusRolloutMetadata", + "description": "Output only. [Output Only] The last completed rollout resource. This field will not\nbe populated until the first rollout is completed.", + "readOnly": true + } + }, + "type": "object" + }, + "GlobalVmExtensionPolicyRolloutOperationRolloutStatusRolloutMetadata": { + "id": "GlobalVmExtensionPolicyRolloutOperationRolloutStatusRolloutMetadata", + "properties": { + "locationRolloutStatus": { + "additionalProperties": { + "$ref": "GlobalVmExtensionPolicyRolloutOperationRolloutStatusRolloutMetadataLocationRolloutStatus" + }, + "description": "Output only. [Output Only] The rollout status for each location. The list of the\nlocations is the same as the list of locations in the rollout plan.", + "readOnly": true, + "type": "object" + }, + "rollout": { + "description": "Output only. [Output Only] The name of the rollout.\nEx. projects//locations/global/rollouts/.", + "readOnly": true, + "type": "string" + }, + "rolloutPlan": { + "description": "Output only. [Output Only] The name of the rollout plan.\nEx.\nprojects//locations/global/rolloutPlans/.", + "readOnly": true, + "type": "string" + }, + "state": { + "description": "Output only. [Output Only] The overall state of the rollout.", + "enum": [ + "STATE_CANCELLED", + "STATE_COMPLETED", + "STATE_FAILED", + "STATE_PAUSED", + "STATE_PROCESSING", + "STATE_UNKNOWN", + "STATE_UNSPECIFIED" + ], + "enumDescriptions": [ + "Iteration was explicitly cancelled.", + "Iteration completed, with all actions being successful.", + "Iteration completed, with failures.", + "The rollout is paused.", + "Iteration is in progress.", + "Impossible to determine current state of the iteration.", + "Default value. This value is unused." + ], + "readOnly": true, + "type": "string" + } + }, + "type": "object" + }, + "GlobalVmExtensionPolicyRolloutOperationRolloutStatusRolloutMetadataLocationRolloutStatus": { + "id": "GlobalVmExtensionPolicyRolloutOperationRolloutStatusRolloutMetadataLocationRolloutStatus", + "properties": { + "state": { + "description": "Output only. [Output Only] The state of the location rollout.", + "enum": [ + "LOCATION_ROLLOUT_STATE_COMPLETED", + "LOCATION_ROLLOUT_STATE_FAILED", + "LOCATION_ROLLOUT_STATE_NOT_STARTED", + "LOCATION_ROLLOUT_STATE_SKIPPED", + "LOCATION_ROLLOUT_STATE_UNSPECIFIED" + ], + "enumDescriptions": [ + "The location rollout is completed.", + "The location rollout has failed.", + "The location rollout has not started.", + "The location rollout is skipped.", + "Default value. This value is unused." + ], + "readOnly": true, + "type": "string" + } + }, + "type": "object" + }, + "GroupMaintenanceInfo": { + "description": "Maintenance Info for ReservationBlocks.", + "id": "GroupMaintenanceInfo", + "properties": { + "instanceMaintenanceOngoingCount": { + "description": "Describes number of instances that have ongoing maintenance.", + "format": "int32", + "type": "integer" + }, + "instanceMaintenancePendingCount": { + "description": "Describes number of instances that have pending maintenance.", + "format": "int32", + "type": "integer" + }, + "maintenanceOngoingCount": { + "description": "Progress for ongoing maintenance for this group of VMs/hosts.\nDescribes number of hosts in the block that have ongoing maintenance.", + "format": "int32", + "type": "integer" + }, + "maintenancePendingCount": { + "description": "Progress for ongoing maintenance for this group of VMs/hosts.\nDescribes number of hosts in the block that have pending maintenance.", + "format": "int32", + "type": "integer" + }, + "schedulingType": { + "description": "The type of maintenance for the reservation.", + "enum": [ + "GROUPED", + "GROUP_MAINTENANCE_TYPE_UNSPECIFIED", + "INDEPENDENT" + ], + "enumDescriptions": [ + "Maintenance on all reserved instances in the reservation is synchronized.", + "Unknown maintenance type.", + "Maintenance is not synchronized for this reservation. Instead, each\ninstance has its own maintenance window." + ], + "type": "string" + }, + "subblockInfraMaintenanceOngoingCount": { + "description": "Describes number of subblock Infrastructure that has ongoing maintenance.\nHere, Subblock Infrastructure Maintenance pertains to upstream hardware\ncontained in the Subblock that is necessary for a VM Family(e.g. NVLink\nDomains). Not all VM Families will support this field.", + "format": "int32", + "type": "integer" + }, + "subblockInfraMaintenancePendingCount": { + "description": "Describes number of subblock Infrastructure that has pending maintenance.\n Here, Subblock Infrastructure Maintenance pertains to upstream hardware\n contained in the Subblock that is necessary for a VM Family (e.g. NVLink\n Domains). Not all VM Families will support this field.", + "format": "int32", + "type": "integer" + }, + "upcomingGroupMaintenance": { + "$ref": "UpcomingMaintenance", + "description": "Maintenance information on this group of VMs." + } + }, + "type": "object" + }, + "GuestAttributes": { + "description": "A guest attributes entry.", + "id": "GuestAttributes", + "properties": { + "kind": { + "default": "compute#guestAttributes", + "description": "Output only. [Output Only] Type of the resource. Alwayscompute#guestAttributes for guest attributes entry.", + "readOnly": true, + "type": "string" + }, + "queryPath": { + "description": "The path to be queried. This can be the default namespace ('') or a\nnested namespace ('\\/') or a specified key\n('\\/\\').", + "type": "string" + }, + "queryValue": { + "$ref": "GuestAttributesValue", + "description": "Output only. [Output Only] The value of the requested queried path.", + "readOnly": true + }, + "selfLink": { + "description": "Output only. [Output Only] Server-defined URL for this resource.", + "readOnly": true, + "type": "string" + }, + "variableKey": { + "description": "The key to search for.", + "type": "string" + }, + "variableValue": { + "description": "Output only. [Output Only] The value found for the requested key.", + "readOnly": true, + "type": "string" + } + }, + "type": "object" + }, + "GuestAttributesEntry": { + "description": "A guest attributes namespace/key/value entry.", + "id": "GuestAttributesEntry", + "properties": { + "key": { + "description": "Key for the guest attribute entry.", + "type": "string" + }, + "namespace": { + "description": "Namespace for the guest attribute entry.", + "type": "string" + }, + "value": { + "description": "Value for the guest attribute entry.", + "type": "string" + } + }, + "type": "object" + }, + "GuestAttributesValue": { + "description": "Array of guest attribute namespace/key/value tuples.", + "id": "GuestAttributesValue", + "properties": { + "items": { + "items": { + "$ref": "GuestAttributesEntry" + }, + "type": "array" + } + }, + "type": "object" + }, + "GuestOsFeature": { + "description": "Guest OS features.", + "id": "GuestOsFeature", + "properties": { + "type": { + "description": "The ID of a supported feature. To add multiple values, use commas to\nseparate values. Set to one or more of the following values:\n \n - VIRTIO_SCSI_MULTIQUEUE\n - WINDOWS\n - MULTI_IP_SUBNET\n - UEFI_COMPATIBLE\n - GVNIC\n - SEV_CAPABLE\n - SUSPEND_RESUME_COMPATIBLE\n - SEV_LIVE_MIGRATABLE_V2\n - SEV_SNP_CAPABLE\n - TDX_CAPABLE\n - IDPF\n - SNP_SVSM_CAPABLE\n - CCA_CAPABLE\n\n\nFor more information, see\nEnabling guest operating system features.", + "enum": [ + "BARE_METAL_LINUX_COMPATIBLE", + "CCA_CAPABLE", + "FEATURE_TYPE_UNSPECIFIED", + "GVNIC", + "IDPF", + "MULTI_IP_SUBNET", + "SECURE_BOOT", + "SEV_CAPABLE", + "SEV_LIVE_MIGRATABLE", + "SEV_LIVE_MIGRATABLE_V2", + "SEV_SNP_CAPABLE", + "SNP_SVSM_CAPABLE", + "TDX_CAPABLE", + "UEFI_COMPATIBLE", + "VIRTIO_SCSI_MULTIQUEUE", + "WINDOWS" + ], + "enumDescriptions": [ + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "" + ], + "type": "string" + } + }, + "type": "object" + }, + "HTTP2HealthCheck": { + "id": "HTTP2HealthCheck", + "properties": { + "host": { + "description": "The value of the host header in the HTTP/2 health check request. If left\nempty (default value), the host header is set to the destination IP address\nto which health check packets are sent. The destination IP address depends\non the type of load balancer. For details, see:\nhttps://cloud.google.com/load-balancing/docs/health-check-concepts#hc-packet-dest", + "type": "string" + }, + "port": { + "description": "The TCP port number to which the health check prober sends packets. The\ndefault value is 443. Valid values are 1 through65535.", + "format": "int32", + "type": "integer" + }, + "portName": { + "description": "Not supported.", + "type": "string" + }, + "portSpecification": { + "description": "Specifies how a port is selected for health checking. Can be one of the\nfollowing values: \nUSE_FIXED_PORT: Specifies a port number explicitly using theport field in the health check. Supported by backend services\nfor passthrough load balancers and backend services for proxy load\nbalancers. Not supported by target pools. The health check supports all\nbackends supported by the backend service provided the backend can be\nhealth checked. For example, GCE_VM_IP network endpoint\ngroups, GCE_VM_IP_PORT network endpoint groups, and instance\ngroup backends. \n USE_NAMED_PORT: Not supported. \nUSE_SERVING_PORT: Provides an indirect method of specifying\nthe health check port by referring to the backend service. Only supported\nby backend services for proxy load balancers. Not supported by target\npools. Not supported by backend services for passthrough load balancers.\nSupports all backends that can be health checked; for example,GCE_VM_IP_PORT network endpoint groups and instance group\nbackends.\n\nFor GCE_VM_IP_PORT network endpoint group backends, the health\ncheck uses the port number specified for each endpoint in the network\nendpoint group. For instance group backends, the health check uses the\nport number determined by looking up the backend service's named port in\nthe instance group's list of named ports.", + "enum": [ + "USE_FIXED_PORT", + "USE_NAMED_PORT", + "USE_SERVING_PORT" + ], + "enumDescriptions": [ + "The port number in the health check's port is used for health\nchecking. Applies to network endpoint group and instance group backends.", + "Not supported.", + "For network endpoint group backends, the health check uses the port number\nspecified on each endpoint in the network endpoint group. For instance\ngroup backends, the health check uses the port number specified for the\nbackend service's named port defined in the instance group's named ports." + ], + "type": "string" + }, + "proxyHeader": { + "description": "Specifies the type of proxy header to append before sending data to the\nbackend, either NONE or PROXY_V1. The default\nis NONE.", + "enum": [ + "NONE", + "PROXY_V1" + ], + "enumDescriptions": [ + "", + "" + ], + "type": "string" + }, + "requestPath": { + "description": "The request path of the HTTP/2 health check request. The default value is/. Must comply withRFC3986.", + "type": "string" + }, + "response": { + "description": "Creates a content-based HTTP/2 health check. In addition to the required\nHTTP 200 (OK) status code, you can configure the health check to pass only\nwhen the backend sends this specific ASCII response string within the first\n1024 bytes of the HTTP response body. For details, see:\nhttps://cloud.google.com/load-balancing/docs/health-check-concepts#criteria-protocol-http", + "type": "string" + } + }, + "type": "object" + }, + "HTTPHealthCheck": { + "id": "HTTPHealthCheck", + "properties": { + "host": { + "description": "The value of the host header in the HTTP health check request. If left\nempty (default value), the host header is set to the destination IP address\nto which health check packets are sent. The destination IP address depends\non the type of load balancer. For details, see:\nhttps://cloud.google.com/load-balancing/docs/health-check-concepts#hc-packet-dest", + "type": "string" + }, + "port": { + "description": "The TCP port number to which the health check prober sends packets. The\ndefault value is 80. Valid values are 1 through65535.", + "format": "int32", + "type": "integer" + }, + "portName": { + "description": "Not supported.", + "type": "string" + }, + "portSpecification": { + "description": "Specifies how a port is selected for health checking. Can be one of the\nfollowing values: \nUSE_FIXED_PORT: Specifies a port number explicitly using theport field in the health check. Supported by backend services\nfor passthrough load balancers and backend services for proxy load\nbalancers. Also supported in legacy HTTP health checks for target pools.\nThe health check supports all backends supported by the backend service\nprovided the backend can be health checked. For example,GCE_VM_IP network endpoint groups, GCE_VM_IP_PORT\nnetwork endpoint groups, and instance group backends. \nUSE_NAMED_PORT: Not supported. \nUSE_SERVING_PORT: Provides an indirect method of specifying\nthe health check port by referring to the backend service. Only supported\nby backend services for proxy load balancers. Not supported by target\npools. Not supported by backend services for pass-through load balancers.\nSupports all backends that can be health checked; for example,GCE_VM_IP_PORT network endpoint groups and instance group\nbackends.\n\nFor GCE_VM_IP_PORT network endpoint group backends, the health\ncheck uses the port number specified for each endpoint in the network\nendpoint group. For instance group backends, the health check uses the\nport number determined by looking up the backend service's named port in\nthe instance group's list of named ports.", + "enum": [ + "USE_FIXED_PORT", + "USE_NAMED_PORT", + "USE_SERVING_PORT" + ], + "enumDescriptions": [ + "The port number in the health check's port is used for health\nchecking. Applies to network endpoint group and instance group backends.", + "Not supported.", + "For network endpoint group backends, the health check uses the port number\nspecified on each endpoint in the network endpoint group. For instance\ngroup backends, the health check uses the port number specified for the\nbackend service's named port defined in the instance group's named ports." + ], + "type": "string" + }, + "proxyHeader": { + "description": "Specifies the type of proxy header to append before sending data to the\nbackend, either NONE or PROXY_V1. The default\nis NONE.", + "enum": [ + "NONE", + "PROXY_V1" + ], + "enumDescriptions": [ + "", + "" + ], + "type": "string" + }, + "requestPath": { + "description": "The request path of the HTTP health check request. The default value is/. Must comply withRFC3986.", + "type": "string" + }, + "response": { + "description": "Creates a content-based HTTP health check. In addition to the required\nHTTP 200 (OK) status code, you can configure the health check to pass only\nwhen the backend sends this specific ASCII response string within the first\n1024 bytes of the HTTP response body. For details, see:\nhttps://cloud.google.com/load-balancing/docs/health-check-concepts#criteria-protocol-http", + "type": "string" + } + }, + "type": "object" + }, + "HTTPSHealthCheck": { + "id": "HTTPSHealthCheck", + "properties": { + "host": { + "description": "The value of the host header in the HTTPS health check request. If left\nempty (default value), the host header is set to the destination IP address\nto which health check packets are sent. The destination IP address depends\non the type of load balancer. For details, see:\nhttps://cloud.google.com/load-balancing/docs/health-check-concepts#hc-packet-dest", + "type": "string" + }, + "port": { + "description": "The TCP port number to which the health check prober sends packets. The\ndefault value is 443. Valid values are 1 through65535.", + "format": "int32", + "type": "integer" + }, + "portName": { + "description": "Not supported.", + "type": "string" + }, + "portSpecification": { + "description": "Specifies how a port is selected for health checking. Can be one of the\nfollowing values: \nUSE_FIXED_PORT: Specifies a port number explicitly using theport field in the health check. Supported by backend services\nfor passthrough load balancers and backend services for proxy load\nbalancers. Not supported by target pools. The health check supports all\nbackends supported by the backend service provided the backend can be\nhealth checked. For example, GCE_VM_IP network endpoint\ngroups, GCE_VM_IP_PORT network endpoint groups, and instance\ngroup backends. \n USE_NAMED_PORT: Not supported. \nUSE_SERVING_PORT: Provides an indirect method of specifying\nthe health check port by referring to the backend service. Only supported\nby backend services for proxy load balancers. Not supported by target\npools. Not supported by backend services for passthrough load balancers.\nSupports all backends that can be health checked; for example,GCE_VM_IP_PORT network endpoint groups and instance group\nbackends.\n\nFor GCE_VM_IP_PORT network endpoint group backends, the health\ncheck uses the port number specified for each endpoint in the network\nendpoint group. For instance group backends, the health check uses the\nport number determined by looking up the backend service's named port in\nthe instance group's list of named ports.", + "enum": [ + "USE_FIXED_PORT", + "USE_NAMED_PORT", + "USE_SERVING_PORT" + ], + "enumDescriptions": [ + "The port number in the health check's port is used for health\nchecking. Applies to network endpoint group and instance group backends.", + "Not supported.", + "For network endpoint group backends, the health check uses the port number\nspecified on each endpoint in the network endpoint group. For instance\ngroup backends, the health check uses the port number specified for the\nbackend service's named port defined in the instance group's named ports." + ], + "type": "string" + }, + "proxyHeader": { + "description": "Specifies the type of proxy header to append before sending data to the\nbackend, either NONE or PROXY_V1. The default\nis NONE.", + "enum": [ + "NONE", + "PROXY_V1" + ], + "enumDescriptions": [ + "", + "" + ], + "type": "string" + }, + "requestPath": { + "description": "The request path of the HTTPS health check request. The default value is/. Must comply withRFC3986.", + "type": "string" + }, + "response": { + "description": "Creates a content-based HTTPS health check. In addition to the required\nHTTP 200 (OK) status code, you can configure the health check to pass only\nwhen the backend sends this specific ASCII response string within the first\n1024 bytes of the HTTP response body. For details, see:\nhttps://cloud.google.com/load-balancing/docs/health-check-concepts#criteria-protocol-http", + "type": "string" + } + }, + "type": "object" + }, + "HealthAggregationPoliciesScopedList": { + "id": "HealthAggregationPoliciesScopedList", + "properties": { + "healthAggregationPolicies": { + "description": "A list of HealthAggregationPolicys contained in this scope.", + "items": { + "$ref": "HealthAggregationPolicy" + }, + "type": "array" + }, + "warning": { + "description": "Informational warning which replaces the list of health aggregation\npolicies when the list is empty.", + "properties": { + "code": { + "description": "[Output Only] A warning code, if applicable. For example, Compute\nEngine returns NO_RESULTS_ON_PAGE if there\nare 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", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", + "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "PARTIAL_SUCCESS", + "QUOTA_INFO_UNAVAILABLE", + "REQUIRED_TOS_AGREEMENT", + "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", + "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", + "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", + "UNREACHABLE" + ], + "enumDeprecated": [ + false, + false, + false, + false, + false, + false, + true, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false + ], + "enumDescriptions": [ + "Warning about failed cleanup of transient changes made by a failed\noperation.", + "A link to a deprecated resource was created.", + "When deploying and at least one of the resources has a type marked as\ndeprecated", + "The user created a boot disk that is larger than image size.", + "When deploying and at least one of the resources has a type marked as\nexperimental", + "Warning that is present in an external api call", + "Warning that value of a field has been overridden.\nDeprecated unused field.", + "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is\nnot of type HTTP/HTTPS/HTTP2.", + "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed\nwhich captures the amount of resources filtered out by\nuser-defined list filter.", + "A resource depends on a missing type", + "The route's nextHopIp address is not assigned to an instance on the\nnetwork.", + "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an\nipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not exist.", + "The route's nextHopInstance URL refers to an instance that is not on the\nsame network as the route.", + "The route's next hop instance does not have a status of RUNNING.", + "Error which is not critical. We decided to continue the process despite\nthe mentioned error.", + "No results are present on a particular list page.", + "Success is reported, but some results may be missing due to errors", + "Quota information is not available to client requests (e.g:\nregions.list).", + "The user attempted to use a resource that requires a TOS they have not\naccepted.", + "Warning that a resource is in use.", + "One or more of the resources set to auto-delete could not be deleted\nbecause they were in use.", + "When a resource schema validation is ignored.", + "Instance template used in instance group manager is valid as such, but\nits application does not make a lot of sense, because it allows only\nsingle instance in instance group.", + "When undeclared properties in the schema are present", + "A given scope cannot be reached." + ], + "type": "string" + }, + "data": { + "description": "[Output Only] Metadata about this warning in key:\nvalue format. For example:\n\n\"data\": [\n {\n \"key\": \"scope\",\n \"value\": \"zones/us-east1-d\"\n }", + "items": { + "properties": { + "key": { + "description": "[Output Only] A key that provides more detail on the warning being\nreturned. For example, for warnings where there are no results in a list\nrequest for a particular zone, this key might be scope and\nthe key value might be the zone name. Other examples might be a key\nindicating a deprecated resource and a suggested replacement, or a\nwarning about invalid network settings (for example, if an instance\nattempts 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" + }, + "HealthAggregationPolicy": { + "description": "Represents a health aggregation policy.\n\nA health aggregation policy resource defines a policy to aggregate health.\n\nFor more information, see\nHealth checks overview.", + "id": "HealthAggregationPolicy", + "properties": { + "creationTimestamp": { + "description": "Output only. [Output Only] Creation timestamp inRFC3339\ntext format.", + "readOnly": true, + "type": "string" + }, + "description": { + "description": "An optional description of this resource. Provide this property when you\ncreate the resource.", + "type": "string" + }, + "fingerprint": { + "description": "Fingerprint of this resource. A hash of the contents stored in this object.\nThis field is used in optimistic locking. This field will be ignored when\ninserting a HealthAggregationPolicy. An up-to-date fingerprint\nmust be provided in order to patch the HealthAggregationPolicy; Otherwise,\nthe request will fail with error 412 conditionNotMet. To see\nthe latest fingerprint, make a get() request to retrieve the\nHealthAggregationPolicy.", + "format": "byte", + "type": "string" + }, + "healthyPercentThreshold": { + "description": "Can only be set if the policyType field isBACKEND_SERVICE_POLICY. Specifies the threshold (as a\npercentage) of healthy endpoints required in order to consider the\naggregated health result HEALTHY. Defaults to 60. Must be in\nrange [0, 100]. Not applicable if the policyType field isDNB_PUBLIC_IP_POLICY. Can be mutated. This field is optional,\nand will be set to the default if unspecified. Note that both this\nthreshold and minHealthyThreshold must be satisfied in order\nfor HEALTHY to be the aggregated result. \"Endpoints\" refers to network\nendpoints within a Network Endpoint Group or instances within an Instance\nGroup.", + "format": "uint32", + "type": "integer" + }, + "id": { + "description": "Output only. [Output Only] The unique identifier for the resource. This identifier is\ndefined by the server.", + "format": "uint64", + "readOnly": true, + "type": "string" + }, + "kind": { + "default": "compute#healthAggregationPolicy", + "description": "Output only. [Output Only] Type of the resource. Alwayscompute#healthAggregationPolicy for health aggregation\npolicies.", + "readOnly": true, + "type": "string" + }, + "minHealthyThreshold": { + "description": "Can only be set if the policyType field isBACKEND_SERVICE_POLICY. Specifies the minimum number of\nhealthy endpoints required in order to consider the aggregated health\nresult HEALTHY. Defaults to 1. Must be positive. Not\napplicable if the policyType field isDNB_PUBLIC_IP_POLICY. Can be mutated. This field is optional,\nand will be set to the default if unspecified. Note that both this\nthreshold and healthyPercentThreshold must be satisfied in\norder for HEALTHY to be the aggregated result. \"Endpoints\" refers to\nnetwork endpoints within a Network Endpoint Group or instances within an\nInstance Group.", + "format": "uint32", + "type": "integer" + }, + "name": { + "description": "Name of the resource. Provided by the client when the resource is created.\nThe name must be 1-63 characters long, and comply withRFC1035.\nSpecifically, the name must be 1-63 characters long and match the regular\nexpression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first\ncharacter must be a lowercase letter, and all following characters must\nbe a dash, lowercase letter, or digit, except the last character, which\ncannot be a dash.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "type": "string" + }, + "policyType": { + "description": "Specifies the type of the healthAggregationPolicy. The only allowed value\nfor global resources is DNS_PUBLIC_IP_POLICY. The only allowed\nvalue for regional resources is BACKEND_SERVICE_POLICY. Must\nbe specified when the healthAggregationPolicy is created, and cannot be\nmutated.", + "enum": [ + "BACKEND_SERVICE_POLICY", + "DNS_PUBLIC_IP_POLICY" + ], + "enumDescriptions": [ + "", + "" + ], + "type": "string" + }, + "region": { + "description": "Output only. [Output Only] URL of the region where the health aggregation policy\nresides. This field applies only to the regional resource. You must specify\nthis field as part of the HTTP request URL. It is not settable as a field\nin the request body.", + "readOnly": true, + "type": "string" + }, + "selfLink": { + "description": "Output only. [Output Only] Server-defined URL for the resource.", + "readOnly": true, + "type": "string" + }, + "selfLinkWithId": { + "description": "Output only. [Output Only] Server-defined URL with id for the resource.", + "readOnly": true, + "type": "string" + } + }, + "type": "object" + }, + "HealthAggregationPolicyAggregatedList": { + "description": "Contains a list of HealthAggregationPoliciesScopedList.", + "id": "HealthAggregationPolicyAggregatedList", + "properties": { + "id": { + "description": "[Output Only] Unique identifier for the resource; defined by the server.", + "type": "string" + }, + "items": { + "additionalProperties": { + "$ref": "HealthAggregationPoliciesScopedList", + "description": "Name of the scope containing this set of HealthAggregationPolicies." + }, + "description": "A list of HealthAggregationPoliciesScopedList resources.", + "type": "object" + }, + "kind": { + "default": "compute#healthAggregationPolicyAggregatedList", + "description": "Output only. Type of resource.", + "readOnly": true, + "type": "string" + }, + "nextPageToken": { + "description": "[Output Only] This token allows you to get the next page of results for\nlist requests. If the number of results is larger thanmaxResults, use the nextPageToken as a value for\nthe query parameter pageToken in the next list request.\nSubsequent list requests will have their own nextPageToken to\ncontinue paging through the results.", + "type": "string" + }, + "selfLink": { + "description": "Output only. [Output Only] Server-defined URL for this resource.", + "readOnly": true, + "type": "string" + }, + "unreachables": { + "description": "Output only. [Output Only] Unreachable resources.", + "items": { + "type": "string" + }, + "readOnly": true, + "type": "array" + }, + "warning": { + "description": "[Output Only] Informational warning message.", + "properties": { + "code": { + "description": "[Output Only] A warning code, if applicable. For example, Compute\nEngine returns NO_RESULTS_ON_PAGE if there\nare 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", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", + "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "PARTIAL_SUCCESS", + "QUOTA_INFO_UNAVAILABLE", + "REQUIRED_TOS_AGREEMENT", + "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", + "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", + "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", + "UNREACHABLE" + ], + "enumDeprecated": [ + false, + false, + false, + false, + false, + false, + true, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false + ], + "enumDescriptions": [ + "Warning about failed cleanup of transient changes made by a failed\noperation.", + "A link to a deprecated resource was created.", + "When deploying and at least one of the resources has a type marked as\ndeprecated", + "The user created a boot disk that is larger than image size.", + "When deploying and at least one of the resources has a type marked as\nexperimental", + "Warning that is present in an external api call", + "Warning that value of a field has been overridden.\nDeprecated unused field.", + "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is\nnot of type HTTP/HTTPS/HTTP2.", + "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed\nwhich captures the amount of resources filtered out by\nuser-defined list filter.", + "A resource depends on a missing type", + "The route's nextHopIp address is not assigned to an instance on the\nnetwork.", + "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an\nipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not exist.", + "The route's nextHopInstance URL refers to an instance that is not on the\nsame network as the route.", + "The route's next hop instance does not have a status of RUNNING.", + "Error which is not critical. We decided to continue the process despite\nthe mentioned error.", + "No results are present on a particular list page.", + "Success is reported, but some results may be missing due to errors", + "Quota information is not available to client requests (e.g:\nregions.list).", + "The user attempted to use a resource that requires a TOS they have not\naccepted.", + "Warning that a resource is in use.", + "One or more of the resources set to auto-delete could not be deleted\nbecause they were in use.", + "When a resource schema validation is ignored.", + "Instance template used in instance group manager is valid as such, but\nits application does not make a lot of sense, because it allows only\nsingle instance in instance group.", + "When undeclared properties in the schema are present", + "A given scope cannot be reached." + ], + "type": "string" + }, + "data": { + "description": "[Output Only] Metadata about this warning in key:\nvalue format. For example:\n\n\"data\": [\n {\n \"key\": \"scope\",\n \"value\": \"zones/us-east1-d\"\n }", + "items": { + "properties": { + "key": { + "description": "[Output Only] A key that provides more detail on the warning being\nreturned. For example, for warnings where there are no results in a list\nrequest for a particular zone, this key might be scope and\nthe key value might be the zone name. Other examples might be a key\nindicating a deprecated resource and a suggested replacement, or a\nwarning about invalid network settings (for example, if an instance\nattempts 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" + }, + "HealthAggregationPolicyList": { + "id": "HealthAggregationPolicyList", + "properties": { + "id": { + "description": "[Output Only] Unique identifier for the resource; defined by the server.", + "type": "string" + }, + "items": { + "description": "A list of HealthAggregationPolicy resources.", + "items": { + "$ref": "HealthAggregationPolicy" + }, + "type": "array" + }, + "kind": { + "default": "compute#healthAggregationPolicyList", + "description": "Output only. [Output Only] Type of the resource. Alwayscompute#healthAggregationPolicy for health aggregation\npolicies.", + "readOnly": true, + "type": "string" + }, + "nextPageToken": { + "description": "[Output Only] This token allows you to get the next page of results for\nlist requests. If the number of results is larger thanmaxResults, use the nextPageToken as a value for\nthe query parameter pageToken in the next list request.\nSubsequent list requests will have their own nextPageToken to\ncontinue paging through the results.", + "type": "string" + }, + "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\nEngine returns NO_RESULTS_ON_PAGE if there\nare 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", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", + "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "PARTIAL_SUCCESS", + "QUOTA_INFO_UNAVAILABLE", + "REQUIRED_TOS_AGREEMENT", + "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", + "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", + "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", + "UNREACHABLE" + ], + "enumDeprecated": [ + false, + false, + false, + false, + false, + false, + true, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false + ], + "enumDescriptions": [ + "Warning about failed cleanup of transient changes made by a failed\noperation.", + "A link to a deprecated resource was created.", + "When deploying and at least one of the resources has a type marked as\ndeprecated", + "The user created a boot disk that is larger than image size.", + "When deploying and at least one of the resources has a type marked as\nexperimental", + "Warning that is present in an external api call", + "Warning that value of a field has been overridden.\nDeprecated unused field.", + "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is\nnot of type HTTP/HTTPS/HTTP2.", + "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed\nwhich captures the amount of resources filtered out by\nuser-defined list filter.", + "A resource depends on a missing type", + "The route's nextHopIp address is not assigned to an instance on the\nnetwork.", + "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an\nipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not exist.", + "The route's nextHopInstance URL refers to an instance that is not on the\nsame network as the route.", + "The route's next hop instance does not have a status of RUNNING.", + "Error which is not critical. We decided to continue the process despite\nthe mentioned error.", + "No results are present on a particular list page.", + "Success is reported, but some results may be missing due to errors", + "Quota information is not available to client requests (e.g:\nregions.list).", + "The user attempted to use a resource that requires a TOS they have not\naccepted.", + "Warning that a resource is in use.", + "One or more of the resources set to auto-delete could not be deleted\nbecause they were in use.", + "When a resource schema validation is ignored.", + "Instance template used in instance group manager is valid as such, but\nits application does not make a lot of sense, because it allows only\nsingle instance in instance group.", + "When undeclared properties in the schema are present", + "A given scope cannot be reached." + ], + "type": "string" + }, + "data": { + "description": "[Output Only] Metadata about this warning in key:\nvalue format. For example:\n\n\"data\": [\n {\n \"key\": \"scope\",\n \"value\": \"zones/us-east1-d\"\n }", + "items": { + "properties": { + "key": { + "description": "[Output Only] A key that provides more detail on the warning being\nreturned. For example, for warnings where there are no results in a list\nrequest for a particular zone, this key might be scope and\nthe key value might be the zone name. Other examples might be a key\nindicating a deprecated resource and a suggested replacement, or a\nwarning about invalid network settings (for example, if an instance\nattempts 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" + }, + "HealthCheck": { + "description": "Represents a health check resource.\n\nGoogle Compute Engine has two health check resources:\n\n* [Regional](/compute/docs/reference/rest/v1/regionHealthChecks)\n* [Global](/compute/docs/reference/rest/v1/healthChecks)\n\nThese health check resources can be used for load balancing and for\nautohealing VMs in a managed instance group (MIG).\n\n**Load balancing**\n\nHealth check requirements vary depending on the type of load balancer. For\ndetails about the type of health check supported for\neach load balancer and corresponding backend type,\nsee Health\nchecks overview: Load balancer guide.\n\n**Autohealing in MIGs**\n\nThe health checks that you use for autohealing VMs in a MIG can be either\nregional or global. For more information, see Set up an\napplication health check and autohealing.\n\nFor more information, seeHealth checks\noverview.", + "id": "HealthCheck", + "properties": { + "checkIntervalSec": { + "description": "How often (in seconds) to send a health check. The default value is 5\nseconds.", + "format": "int32", + "type": "integer" + }, + "creationTimestamp": { + "description": "Output only. [Output Only] Creation timestamp in3339\ntext format.", + "readOnly": true, + "type": "string" + }, + "description": { + "description": "An optional description of this resource. Provide this property when you\ncreate the resource.", + "type": "string" + }, + "grpcHealthCheck": { + "$ref": "GRPCHealthCheck" + }, + "grpcTlsHealthCheck": { + "$ref": "GRPCTLSHealthCheck" + }, + "healthyThreshold": { + "description": "A so-far unhealthy instance will be marked healthy after this\nmany consecutive successes. The default value is 2.", + "format": "int32", + "type": "integer" + }, + "http2HealthCheck": { + "$ref": "HTTP2HealthCheck" + }, + "httpHealthCheck": { + "$ref": "HTTPHealthCheck" + }, + "httpsHealthCheck": { + "$ref": "HTTPSHealthCheck" + }, + "id": { + "description": "[Output Only] The unique identifier for the resource. This identifier is\ndefined by the server.", + "format": "uint64", + "type": "string" + }, + "kind": { + "default": "compute#healthCheck", + "description": "Output only. Type of the resource.", + "readOnly": true, + "type": "string" + }, + "logConfig": { + "$ref": "HealthCheckLogConfig", + "description": "Configure logging on this health check." + }, + "name": { + "description": "Name of the resource. Provided by the client when the resource is created.\nThe name must be 1-63 characters long, and comply withRFC1035.\nFor example, a name that is 1-63 characters long, matches the regular\nexpression `[a-z]([-a-z0-9]*[a-z0-9])?`, and otherwise complies with\nRFC1035. This regular expression describes a name where the first\ncharacter is a lowercase letter, and all following characters are a dash,\nlowercase letter, or digit, except the last character, which isn't a dash.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "type": "string" + }, + "region": { + "description": "Output only. [Output Only] Region where the health check resides. Not applicable to\nglobal health checks.", + "readOnly": true, + "type": "string" + }, + "selfLink": { + "description": "[Output Only] Server-defined URL for the resource.", + "type": "string" + }, + "sourceRegions": { + "description": "The list of cloud regions from which health checks are performed. If any\nregions are specified, then exactly 3 regions should be specified. The\nregion names must be valid names of Google Cloud regions.\nThis can only be set for global health check.\nIf this list is non-empty, then there are restrictions\non what other health check fields are supported and what other resources\ncan use this health check:\n \n - SSL, HTTP2, and GRPC protocols are not supported.\n - The TCP request field is not supported.\n - The proxyHeader field for HTTP, HTTPS, and TCP is not\n supported.\n - The checkIntervalSec field must be at least 30.\n - The health check cannot be used with BackendService nor with managed\n instance group auto-healing.", + "items": { + "type": "string" + }, + "type": "array" + }, + "sslHealthCheck": { + "$ref": "SSLHealthCheck" + }, + "tcpHealthCheck": { + "$ref": "TCPHealthCheck" + }, + "timeoutSec": { + "description": "How long (in seconds) to wait before claiming failure. The default value is\n5 seconds. It is invalid for timeoutSec to have greater\nvalue than checkIntervalSec.", + "format": "int32", + "type": "integer" + }, + "type": { + "description": "Specifies the type of the healthCheck, either TCP,SSL, HTTP, HTTPS,HTTP2 or GRPC. Exactly one of the\nprotocol-specific health check fields must be specified, which must matchtype field.", + "enum": [ + "GRPC", + "GRPC_WITH_TLS", + "HTTP", + "HTTP2", + "HTTPS", + "INVALID", + "SSL", + "TCP" + ], + "enumDescriptions": [ + "", + "", + "", + "", + "", + "", + "", + "" + ], + "type": "string" + }, + "unhealthyThreshold": { + "description": "A so-far healthy instance will be marked unhealthy after this many\nconsecutive failures. The default value is 2.", + "format": "int32", + "type": "integer" + } + }, + "type": "object" + }, + "HealthCheckList": { + "description": "Contains a list of HealthCheck resources.", + "id": "HealthCheckList", + "properties": { + "id": { + "description": "[Output Only] Unique identifier for the resource; defined by the server.", + "type": "string" + }, + "items": { + "description": "A list of HealthCheck resources.", + "items": { + "$ref": "HealthCheck" + }, + "type": "array" + }, + "kind": { + "default": "compute#healthCheckList", + "description": "Output only. Type of resource.", + "readOnly": true, + "type": "string" + }, + "nextPageToken": { + "description": "[Output Only] This token allows you to get the next page of results for\nlist requests. If the number of results is larger thanmaxResults, use the nextPageToken as a value for\nthe query parameter pageToken in the next list request.\nSubsequent list requests will have their own nextPageToken to\ncontinue paging through the results.", + "type": "string" + }, + "selfLink": { + "description": "Output only. [Output Only] Server-defined URL for this resource.", + "readOnly": true, + "type": "string" + }, + "warning": { + "description": "[Output Only] Informational warning message.", + "properties": { + "code": { + "description": "[Output Only] A warning code, if applicable. For example, Compute\nEngine returns NO_RESULTS_ON_PAGE if there\nare 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", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", + "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", "NEXT_HOP_INSTANCE_NOT_FOUND", @@ -37858,6 +63056,7 @@ "NOT_CRITICAL_ERROR", "NO_RESULTS_ON_PAGE", "PARTIAL_SUCCESS", + "QUOTA_INFO_UNAVAILABLE", "REQUIRED_TOS_AGREEMENT", "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", "RESOURCE_NOT_DELETED", @@ -37894,46 +63093,48 @@ false, false, false, + false, false ], "enumDescriptions": [ - "Warning about failed cleanup of transient changes made by a failed operation.", + "Warning about failed cleanup of transient changes made by a failed\noperation.", "A link to a deprecated resource was created.", - "When deploying and at least one of the resources has a type marked as deprecated", + "When deploying and at least one of the resources has a type marked as\ndeprecated", "The user created a boot disk that is larger than image size.", - "When deploying and at least one of the resources has a type marked as experimental", + "When deploying and at least one of the resources has a type marked as\nexperimental", "Warning that is present in an external api call", - "Warning that value of a field has been overridden. Deprecated unused field.", + "Warning that value of a field has been overridden.\nDeprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", - "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is\nnot of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", - "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", + "Resource can't be retrieved due to list overhead quota exceed\nwhich captures the amount of resources filtered out by\nuser-defined list filter.", "A resource depends on a missing type", - "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's nextHopIp address is not assigned to an instance on the\nnetwork.", "The route's next hop instance cannot ip forward.", - "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not have an\nipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", - "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that is not on the\nsame network as the route.", "The route's next hop instance does not have a status of RUNNING.", - "Error which is not critical. We decided to continue the process despite the mentioned error.", + "Error which is not critical. We decided to continue the process despite\nthe mentioned error.", "No results are present on a particular list page.", "Success is reported, but some results may be missing due to errors", - "The user attempted to use a resource that requires a TOS they have not accepted.", + "Quota information is not available to client requests (e.g:\nregions.list).", + "The user attempted to use a resource that requires a TOS they have not\naccepted.", "Warning that a resource is in use.", - "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "One or more of the resources set to auto-delete could not be deleted\nbecause they were in use.", "When a resource schema validation is ignored.", - "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", + "Instance template used in instance group manager is valid as such, but\nits application does not make a lot of sense, because it allows only\nsingle instance in instance group.", "When undeclared properties in the schema are present", "A given scope cannot be reached." ], "type": "string" }, "data": { - "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", + "description": "[Output Only] Metadata about this warning in key:\nvalue format. For example:\n\n\"data\": [\n {\n \"key\": \"scope\",\n \"value\": \"zones/us-east1-d\"\n }", "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).", + "description": "[Output Only] A key that provides more detail on the warning being\nreturned. For example, for warnings where there are no results in a list\nrequest for a particular zone, this key might be scope and\nthe key value might be the zone name. Other examples might be a key\nindicating a deprecated resource and a suggested replacement, or a\nwarning about invalid network settings (for example, if an instance\nattempts to perform IP forwarding but is not enabled for IP forwarding).", "type": "string" }, "value": { @@ -37955,288 +63156,458 @@ }, "type": "object" }, - "AccessConfig": { - "description": "An access configuration attached to an instance's network interface. Only one access config per instance is supported.", - "id": "AccessConfig", + "HealthCheckLogConfig": { + "description": "Configuration of logging on a health check. If logging is enabled, logs\nwill be exported to Stackdriver.", + "id": "HealthCheckLogConfig", "properties": { - "externalIpv6": { - "description": "Applies to ipv6AccessConfigs only. The first IPv6 address of the external IPv6 range associated with this instance, prefix length is stored in externalIpv6PrefixLength in ipv6AccessConfig. To use a static external IP address, it must be unused and in the same region as the instance's zone. If not specified, Google Cloud will automatically assign an external IPv6 address from the instance's subnetwork.", - "type": "string" - }, - "externalIpv6PrefixLength": { - "description": "Applies to ipv6AccessConfigs only. The prefix length of the external IPv6 range.", - "format": "int32", - "type": "integer" - }, - "kind": { - "default": "compute#accessConfig", - "description": "[Output Only] Type of the resource. Always compute#accessConfig for access configs.", - "type": "string" - }, - "name": { - "description": "The name of this access configuration. In accessConfigs (IPv4), the default and recommended name is External NAT, but you can use any arbitrary string, such as My external IP or Network Access. In ipv6AccessConfigs, the recommend name is External IPv6.", - "type": "string" - }, - "natIP": { - "description": "Applies to accessConfigs (IPv4) only. An external IP address associated with this instance. Specify an unused static external IP address available to the project or leave this field undefined to use an IP from a shared ephemeral IP address pool. If you specify a static external IP address, it must live in the same region as the zone of the instance.", - "type": "string" - }, - "networkTier": { - "description": "This signifies the networking tier used for configuring this access configuration and can only take the following values: PREMIUM, STANDARD. If an AccessConfig is specified without a valid external IP address, an ephemeral IP will be created with this networkTier. If an AccessConfig with a valid external IP address is specified, it must match that of the networkTier associated with the Address resource owning that IP.", - "enum": [ - "FIXED_STANDARD", - "PREMIUM", - "STANDARD", - "STANDARD_OVERRIDES_FIXED_STANDARD" - ], - "enumDescriptions": [ - "Public internet quality with fixed bandwidth.", - "High quality, Google-grade network tier, support for all networking products.", - "Public internet quality, only limited support for other networking products.", - "(Output only) Temporary tier for FIXED_STANDARD when fixed standard tier is expired or not configured." - ], - "type": "string" - }, - "publicPtrDomainName": { - "description": "The DNS domain name for the public PTR record. You can set this field only if the `setPublicPtr` field is enabled in accessConfig. If this field is unspecified in ipv6AccessConfig, a default PTR record will be created for first IP in associated external IPv6 range.", - "type": "string" - }, - "securityPolicy": { - "description": "[Output Only] The resource URL for the security policy associated with this access config.", - "type": "string" - }, - "setPublicPtr": { - "description": "Specifies whether a public DNS 'PTR' record should be created to map the external IP address of the instance to a DNS domain name. This field is not used in ipv6AccessConfig. A default PTR record will be created if the VM has external IPv6 range associated.", + "enable": { + "description": "Indicates whether or not to export logs. This is false by default, which\nmeans no health check logging will be done.", "type": "boolean" - }, - "type": { - "description": "The type of configuration. In accessConfigs (IPv4), the default and only option is ONE_TO_ONE_NAT. In ipv6AccessConfigs, the default and only option is DIRECT_IPV6.", - "enum": [ - "DIRECT_IPV6", - "ONE_TO_ONE_NAT" - ], - "enumDescriptions": [ - "", - "" - ], - "type": "string" } }, "type": "object" }, - "Address": { - "description": "Represents an IP Address resource. Google Compute Engine has two IP Address resources: * [Global (external and internal)](https://cloud.google.com/compute/docs/reference/rest/v1/globalAddresses) * [Regional (external and internal)](https://cloud.google.com/compute/docs/reference/rest/v1/addresses) For more information, see Reserving a static external IP address.", - "id": "Address", + "HealthCheckReference": { + "description": "A full or valid partial URL to a health check. For example, the following are\nvalid URLs:\n \n - https://www.googleapis.com/compute/beta/projects/project-id/global/httpHealthChecks/health-check\n - projects/project-id/global/httpHealthChecks/health-check\n - global/httpHealthChecks/health-check", + "id": "HealthCheckReference", "properties": { - "address": { - "description": "The static IP address represented by this resource.", - "type": "string" - }, - "addressType": { - "description": "The type of address to reserve, either INTERNAL or EXTERNAL. If unspecified, defaults to EXTERNAL.", - "enum": [ - "EXTERNAL", - "INTERNAL", - "UNSPECIFIED_TYPE" - ], - "enumDescriptions": [ - "A publicly visible external IP address.", - "A private network IP address, for use with an Instance or Internal Load Balancer forwarding rule.", - "" - ], + "healthCheck": { "type": "string" - }, + } + }, + "type": "object" + }, + "HealthCheckService": { + "description": "Represents a Health-Check as a Service resource.", + "id": "HealthCheckService", + "properties": { "creationTimestamp": { - "description": "[Output Only] Creation timestamp in RFC3339 text format.", + "description": "Output only. [Output Only] Creation timestamp inRFC3339\ntext format.", + "readOnly": true, "type": "string" }, "description": { - "description": "An optional description of this resource. Provide this field when you create the resource.", + "description": "An optional description of this resource. Provide this property when you\ncreate the resource.", "type": "string" }, - "id": { - "description": "[Output Only] The unique identifier for the resource. This identifier is defined by the server.", - "format": "uint64", + "fingerprint": { + "description": "Fingerprint of this resource. A hash of the contents stored in this object.\nThis field is used in optimistic locking. This field will be ignored when\ninserting a HealthCheckService. An up-to-date fingerprint must\nbe provided in order to patch/update the HealthCheckService; Otherwise, the\nrequest will fail with error 412 conditionNotMet. To see the\nlatest fingerprint, make a get() request to retrieve the\nHealthCheckService.", + "format": "byte", "type": "string" }, - "ipVersion": { - "description": "The IP version that will be used by this address. Valid options are IPV4 or IPV6.", + "healthChecks": { + "description": "A list of URLs to the HealthCheck resources. Must have\nat least one HealthCheck, and not more than 10 for regionalHealthCheckService, and not more than 1 for globalHealthCheckService.HealthCheck resources must haveportSpecification=USE_SERVING_PORT orportSpecification=USE_FIXED_PORT. For\nregional HealthCheckService, theHealthCheck must be regional and in the same\nregion. For global HealthCheckService,HealthCheck must be global. Mix of regional and globalHealthChecks is not supported. Multiple regionalHealthChecks must belong to the same region. RegionalHealthChecks must belong to the same region as zones ofNetworkEndpointGroups. For globalHealthCheckService using globalINTERNET_IP_PORT NetworkEndpointGroups, the\nglobal HealthChecks must specify sourceRegions,\nand HealthChecks that specify sourceRegions can\nonly be used with global INTERNET_IP_PORTNetworkEndpointGroups.", + "items": { + "type": "string" + }, + "type": "array" + }, + "healthStatusAggregationPolicy": { + "description": "Optional. Policy for how the results from multiple health checks\nfor the same endpoint are aggregated. Defaults to NO_AGGREGATION\nif unspecified.\n \n - NO_AGGREGATION. An EndpointHealth message is\n returned for each pair in the health check\n service.\n - AND. If any health check of an endpoint reportsUNHEALTHY, then UNHEALTHY is theHealthState of the endpoint. If all health checks reportHEALTHY, the HealthState of the endpoint isHEALTHY.\n\n.\nThis is only allowed with regional HealthCheckService.", "enum": [ - "IPV4", - "IPV6", - "UNSPECIFIED_VERSION" + "AND", + "NO_AGGREGATION" ], "enumDescriptions": [ - "", - "", - "" + "If any backend's health check reports UNHEALTHY,\nthen UNHEALTHY is the HealthState of\nthe entire health check service. If all backend's are healthy,\nthe HealthState of the health check service isHEALTHY.", + "An EndpointHealth message is returned for each\nbackend in the health check service." ], "type": "string" }, - "ipv6EndpointType": { - "description": "The endpoint type of this address, which should be VM or NETLB. This is used for deciding which type of endpoint this address can be used after the external IPv6 address reservation.", - "enum": [ - "NETLB", - "VM" - ], - "enumDescriptions": [ - "Reserved IPv6 address can be used on network load balancer.", - "Reserved IPv6 address can be used on VM." - ], + "id": { + "description": "Output only. [Output Only] The unique identifier for the resource. This identifier is\ndefined by the server.", + "format": "uint64", + "readOnly": true, "type": "string" }, "kind": { - "default": "compute#address", - "description": "[Output Only] Type of the resource. Always compute#address for addresses.", + "default": "compute#healthCheckService", + "description": "Output only. [Output only] Type of the resource. Alwayscompute#healthCheckServicefor health check services.", + "readOnly": true, "type": "string" }, - "labelFingerprint": { - "description": "A fingerprint for the labels being applied to this Address, which is essentially a hash of the labels set used for optimistic locking. The fingerprint is initially generated by Compute Engine and changes after every request to modify or update labels. You must always provide an up-to-date fingerprint hash in order to update or change labels, otherwise the request will fail with error 412 conditionNotMet. To see the latest fingerprint, make a get() request to retrieve an Address.", - "format": "byte", + "name": { + "description": "Name of the resource. The name must be 1-63 characters long, and comply\nwith RFC1035. Specifically, the name must be 1-63 characters\nlong and match the regular expression\n`[a-z]([-a-z0-9]*[a-z0-9])?` which means the first character\nmust be a lowercase letter, and all following characters must be a dash,\nlowercase letter, or digit, except the last character, which cannot be a\ndash.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", "type": "string" }, - "labels": { - "additionalProperties": { + "networkEndpointGroups": { + "description": "A list of URLs to the NetworkEndpointGroup\nresources. Must not have more than 100. For regionalHealthCheckService, NEGs must be in\nzones in the region of the HealthCheckService. For globalHealthCheckServices, the NetworkEndpointGroups\nmust be global INTERNET_IP_PORT.", + "items": { "type": "string" }, - "description": "Labels for this resource. These can only be added or modified by the setLabels method. Each label key/value pair must comply with RFC1035. Label values may be empty.", - "type": "object" + "type": "array" }, - "name": { - "annotations": { - "required": [ - "compute.addresses.insert" - ] + "notificationEndpoints": { + "description": "A list of URLs to the NotificationEndpoint\nresources. Must not have more than 10. A list of endpoints for\nreceiving notifications of change in health status. For regionalHealthCheckService,NotificationEndpoint must be regional and in the\nsame region. For global HealthCheckService,NotificationEndpoint must be global.", + "items": { + "type": "string" }, - "description": "Name of the resource. Provided by the client when the resource is created. The name must be 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters long and match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?`. The first character must be a lowercase letter, and all following characters (except for the last character) must be a dash, lowercase letter, or digit. The last character must be a lowercase letter or digit.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "type": "string" + "type": "array" }, - "network": { - "description": "The URL of the network in which to reserve the address. This field can only be used with INTERNAL type with the VPC_PEERING purpose.", + "region": { + "description": "Output only. [Output Only] URL of the region where the health check service\nresides. This field is not applicable to global health check services.\nYou must specify this field as part of the HTTP request URL. It is\nnot settable as a field in the request body.", + "readOnly": true, "type": "string" }, - "networkTier": { - "description": "This signifies the networking tier used for configuring this address and can only take the following values: PREMIUM or STANDARD. Internal IP addresses are always Premium Tier; global external IP addresses are always Premium Tier; regional external IP addresses can be either Standard or Premium Tier. If this field is not specified, it is assumed to be PREMIUM.", - "enum": [ - "FIXED_STANDARD", - "PREMIUM", - "STANDARD", - "STANDARD_OVERRIDES_FIXED_STANDARD" - ], - "enumDescriptions": [ - "Public internet quality with fixed bandwidth.", - "High quality, Google-grade network tier, support for all networking products.", - "Public internet quality, only limited support for other networking products.", - "(Output only) Temporary tier for FIXED_STANDARD when fixed standard tier is expired or not configured." - ], + "selfLink": { + "description": "Output only. [Output Only] Server-defined URL for the resource.", + "readOnly": true, "type": "string" - }, - "prefixLength": { - "description": "The prefix length if the resource represents an IP range.", - "format": "int32", - "type": "integer" - }, - "purpose": { - "description": "The purpose of this resource, which can be one of the following values: - GCE_ENDPOINT for addresses that are used by VM instances, alias IP ranges, load balancers, and similar resources. - DNS_RESOLVER for a DNS resolver address in a subnetwork for a Cloud DNS inbound forwarder IP addresses (regional internal IP address in a subnet of a VPC network) - VPC_PEERING for global internal IP addresses used for private services access allocated ranges. - NAT_AUTO for the regional external IP addresses used by Cloud NAT when allocating addresses using automatic NAT IP address allocation. - IPSEC_INTERCONNECT for addresses created from a private IP range that are reserved for a VLAN attachment in an *HA VPN over Cloud Interconnect* configuration. These addresses are regional resources. - `SHARED_LOADBALANCER_VIP` for an internal IP address that is assigned to multiple internal forwarding rules. - `PRIVATE_SERVICE_CONNECT` for a private network address that is used to configure Private Service Connect. Only global internal addresses can use this purpose. ", - "enum": [ - "DNS_RESOLVER", - "GCE_ENDPOINT", - "IPSEC_INTERCONNECT", - "NAT_AUTO", - "PRIVATE_SERVICE_CONNECT", - "SERVERLESS", - "SHARED_LOADBALANCER_VIP", - "VPC_PEERING" - ], - "enumDescriptions": [ - "DNS resolver address in the subnetwork.", - "VM internal/alias IP, Internal LB service IP, etc.", - "A regional internal IP address range reserved for the VLAN attachment that is used in HA VPN over Cloud Interconnect. This regional internal IP address range must not overlap with any IP address range of subnet/route in the VPC network and its peering networks. After the VLAN attachment is created with the reserved IP address range, when creating a new VPN gateway, its interface IP address is allocated from the associated VLAN attachment’s IP address range.", - "External IP automatically reserved for Cloud NAT.", - "A private network IP address that can be used to configure Private Service Connect. This purpose can be specified only for GLOBAL addresses of Type INTERNAL", - "A regional internal IP address range reserved for Serverless.", - "A private network IP address that can be shared by multiple Internal Load Balancer forwarding rules.", - "IP range for peer networks." - ], + } + }, + "type": "object" + }, + "HealthCheckServiceAggregatedList": { + "description": "Contains a list of HealthCheckServicesScopedList.", + "id": "HealthCheckServiceAggregatedList", + "properties": { + "id": { + "description": "[Output Only] Unique identifier for the resource; defined by the server.", "type": "string" }, - "region": { - "description": "[Output Only] The URL of the region where a regional address resides. For regional addresses, you must specify the region as a path parameter in the HTTP request URL. *This field is not applicable to global addresses.*", - "type": "string" + "items": { + "additionalProperties": { + "$ref": "HealthCheckServicesScopedList", + "description": "Name of the scope containing this set of HealthCheckServices." + }, + "description": "A list of HealthCheckServicesScopedList resources.", + "type": "object" }, - "selfLink": { - "description": "[Output Only] Server-defined URL for the resource.", + "kind": { + "default": "compute#healthCheckServiceAggregatedList", + "description": "Output only. Type of resource.", + "readOnly": true, "type": "string" }, - "status": { - "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": [ - "IN_USE", - "RESERVED", - "RESERVING" - ], - "enumDescriptions": [ - "Address is being used by another resource and is not available.", - "Address is reserved and available to use.", - "Address is being reserved." - ], + "nextPageToken": { + "description": "[Output Only] This token allows you to get the next page of results for\nlist requests. If the number of results is larger thanmaxResults, use the nextPageToken as a value for\nthe query parameter pageToken in the next list request.\nSubsequent list requests will have their own nextPageToken to\ncontinue paging through the results.", "type": "string" }, - "subnetwork": { - "description": "The URL of the subnetwork in which to reserve the address. If an IP address is specified, it must be within the subnetwork's IP range. This field can only be used with INTERNAL type with a GCE_ENDPOINT or DNS_RESOLVER purpose.", + "selfLink": { + "description": "Output only. [Output Only] Server-defined URL for this resource.", + "readOnly": true, "type": "string" }, - "users": { - "description": "[Output Only] The URLs of the resources that are using this address.", + "unreachables": { + "description": "Output only. [Output Only] Unreachable resources.", "items": { "type": "string" }, + "readOnly": true, "type": "array" + }, + "warning": { + "description": "[Output Only] Informational warning message.", + "properties": { + "code": { + "description": "[Output Only] A warning code, if applicable. For example, Compute\nEngine returns NO_RESULTS_ON_PAGE if there\nare 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", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", + "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "PARTIAL_SUCCESS", + "QUOTA_INFO_UNAVAILABLE", + "REQUIRED_TOS_AGREEMENT", + "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", + "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", + "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", + "UNREACHABLE" + ], + "enumDeprecated": [ + false, + false, + false, + false, + false, + false, + true, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false + ], + "enumDescriptions": [ + "Warning about failed cleanup of transient changes made by a failed\noperation.", + "A link to a deprecated resource was created.", + "When deploying and at least one of the resources has a type marked as\ndeprecated", + "The user created a boot disk that is larger than image size.", + "When deploying and at least one of the resources has a type marked as\nexperimental", + "Warning that is present in an external api call", + "Warning that value of a field has been overridden.\nDeprecated unused field.", + "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is\nnot of type HTTP/HTTPS/HTTP2.", + "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed\nwhich captures the amount of resources filtered out by\nuser-defined list filter.", + "A resource depends on a missing type", + "The route's nextHopIp address is not assigned to an instance on the\nnetwork.", + "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an\nipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not exist.", + "The route's nextHopInstance URL refers to an instance that is not on the\nsame network as the route.", + "The route's next hop instance does not have a status of RUNNING.", + "Error which is not critical. We decided to continue the process despite\nthe mentioned error.", + "No results are present on a particular list page.", + "Success is reported, but some results may be missing due to errors", + "Quota information is not available to client requests (e.g:\nregions.list).", + "The user attempted to use a resource that requires a TOS they have not\naccepted.", + "Warning that a resource is in use.", + "One or more of the resources set to auto-delete could not be deleted\nbecause they were in use.", + "When a resource schema validation is ignored.", + "Instance template used in instance group manager is valid as such, but\nits application does not make a lot of sense, because it allows only\nsingle instance in instance group.", + "When undeclared properties in the schema are present", + "A given scope cannot be reached." + ], + "type": "string" + }, + "data": { + "description": "[Output Only] Metadata about this warning in key:\nvalue format. For example:\n\n\"data\": [\n {\n \"key\": \"scope\",\n \"value\": \"zones/us-east1-d\"\n }", + "items": { + "properties": { + "key": { + "description": "[Output Only] A key that provides more detail on the warning being\nreturned. For example, for warnings where there are no results in a list\nrequest for a particular zone, this key might be scope and\nthe key value might be the zone name. Other examples might be a key\nindicating a deprecated resource and a suggested replacement, or a\nwarning about invalid network settings (for example, if an instance\nattempts 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" }, - "AddressAggregatedList": { - "id": "AddressAggregatedList", + "HealthCheckServiceReference": { + "description": "A full or valid partial URL to a health check service. For example, the\nfollowing are valid URLs:\n \n - https://www.googleapis.com/compute/beta/projects/project-id/regions/us-west1/healthCheckServices/health-check-service\n - projects/project-id/regions/us-west1/healthCheckServices/health-check-service\n - regions/us-west1/healthCheckServices/health-check-service", + "id": "HealthCheckServiceReference", + "properties": { + "healthCheckService": { + "type": "string" + } + }, + "type": "object" + }, + "HealthCheckServicesList": { + "id": "HealthCheckServicesList", "properties": { "id": { - "description": "[Output Only] Unique identifier for the resource; defined by the server.", + "description": "Output only. [Output Only] Unique identifier for the resource; defined by the server.", + "readOnly": true, "type": "string" }, "items": { - "additionalProperties": { - "$ref": "AddressesScopedList", - "description": "[Output Only] Name of the scope containing this set of addresses." + "description": "Output only. A list of HealthCheckService resources.", + "items": { + "$ref": "HealthCheckService" }, - "description": "A list of AddressesScopedList resources.", - "type": "object" + "readOnly": true, + "type": "array" }, "kind": { - "default": "compute#addressAggregatedList", - "description": "[Output Only] Type of resource. Always compute#addressAggregatedList for aggregated lists of addresses.", + "default": "compute#healthCheckServicesList", + "description": "Output only. [Output Only] Type of the resource. Alwayscompute#healthCheckServicesList for lists of\nHealthCheckServices.", + "readOnly": true, "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.", + "description": "Output only. [Output Only] This token allows you to get the next page of results for\nlist requests. If the number of results is larger thanmaxResults, use the nextPageToken as a value for\nthe query parameter pageToken in the next list request.\nSubsequent list requests will have their own nextPageToken to\ncontinue paging through the results.", + "readOnly": true, "type": "string" }, "selfLink": { - "description": "[Output Only] Server-defined URL for this resource.", + "description": "Output only. [Output Only] Server-defined URL for this resource.", + "readOnly": true, "type": "string" }, - "unreachables": { - "description": "[Output Only] Unreachable resources.", + "warning": { + "description": "[Output Only] Informational warning message.", + "properties": { + "code": { + "description": "[Output Only] A warning code, if applicable. For example, Compute\nEngine returns NO_RESULTS_ON_PAGE if there\nare 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", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", + "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "PARTIAL_SUCCESS", + "QUOTA_INFO_UNAVAILABLE", + "REQUIRED_TOS_AGREEMENT", + "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", + "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", + "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", + "UNREACHABLE" + ], + "enumDeprecated": [ + false, + false, + false, + false, + false, + false, + true, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false + ], + "enumDescriptions": [ + "Warning about failed cleanup of transient changes made by a failed\noperation.", + "A link to a deprecated resource was created.", + "When deploying and at least one of the resources has a type marked as\ndeprecated", + "The user created a boot disk that is larger than image size.", + "When deploying and at least one of the resources has a type marked as\nexperimental", + "Warning that is present in an external api call", + "Warning that value of a field has been overridden.\nDeprecated unused field.", + "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is\nnot of type HTTP/HTTPS/HTTP2.", + "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed\nwhich captures the amount of resources filtered out by\nuser-defined list filter.", + "A resource depends on a missing type", + "The route's nextHopIp address is not assigned to an instance on the\nnetwork.", + "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an\nipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not exist.", + "The route's nextHopInstance URL refers to an instance that is not on the\nsame network as the route.", + "The route's next hop instance does not have a status of RUNNING.", + "Error which is not critical. We decided to continue the process despite\nthe mentioned error.", + "No results are present on a particular list page.", + "Success is reported, but some results may be missing due to errors", + "Quota information is not available to client requests (e.g:\nregions.list).", + "The user attempted to use a resource that requires a TOS they have not\naccepted.", + "Warning that a resource is in use.", + "One or more of the resources set to auto-delete could not be deleted\nbecause they were in use.", + "When a resource schema validation is ignored.", + "Instance template used in instance group manager is valid as such, but\nits application does not make a lot of sense, because it allows only\nsingle instance in instance group.", + "When undeclared properties in the schema are present", + "A given scope cannot be reached." + ], + "type": "string" + }, + "data": { + "description": "[Output Only] Metadata about this warning in key:\nvalue format. For example:\n\n\"data\": [\n {\n \"key\": \"scope\",\n \"value\": \"zones/us-east1-d\"\n }", + "items": { + "properties": { + "key": { + "description": "[Output Only] A key that provides more detail on the warning being\nreturned. For example, for warnings where there are no results in a list\nrequest for a particular zone, this key might be scope and\nthe key value might be the zone name. Other examples might be a key\nindicating a deprecated resource and a suggested replacement, or a\nwarning about invalid network settings (for example, if an instance\nattempts 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" + }, + "HealthCheckServicesScopedList": { + "id": "HealthCheckServicesScopedList", + "properties": { + "resources": { + "description": "A list of HealthCheckServices contained in this scope.", "items": { - "type": "string" + "$ref": "HealthCheckService" }, "type": "array" }, "warning": { - "description": "[Output Only] Informational warning message.", + "description": "Informational warning which replaces the list of\nbackend services when the list is empty.", "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.", + "description": "[Output Only] A warning code, if applicable. For example, Compute\nEngine returns NO_RESULTS_ON_PAGE if there\nare no results in the response.", "enum": [ "CLEANUP_FAILED", "DEPRECATED_RESOURCE_USED", @@ -38259,6 +63630,7 @@ "NOT_CRITICAL_ERROR", "NO_RESULTS_ON_PAGE", "PARTIAL_SUCCESS", + "QUOTA_INFO_UNAVAILABLE", "REQUIRED_TOS_AGREEMENT", "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", "RESOURCE_NOT_DELETED", @@ -38295,46 +63667,48 @@ false, false, false, + false, false ], "enumDescriptions": [ - "Warning about failed cleanup of transient changes made by a failed operation.", + "Warning about failed cleanup of transient changes made by a failed\noperation.", "A link to a deprecated resource was created.", - "When deploying and at least one of the resources has a type marked as deprecated", + "When deploying and at least one of the resources has a type marked as\ndeprecated", "The user created a boot disk that is larger than image size.", - "When deploying and at least one of the resources has a type marked as experimental", + "When deploying and at least one of the resources has a type marked as\nexperimental", "Warning that is present in an external api call", - "Warning that value of a field has been overridden. Deprecated unused field.", + "Warning that value of a field has been overridden.\nDeprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", - "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is\nnot of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", - "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", + "Resource can't be retrieved due to list overhead quota exceed\nwhich captures the amount of resources filtered out by\nuser-defined list filter.", "A resource depends on a missing type", - "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's nextHopIp address is not assigned to an instance on the\nnetwork.", "The route's next hop instance cannot ip forward.", - "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not have an\nipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", - "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that is not on the\nsame network as the route.", "The route's next hop instance does not have a status of RUNNING.", - "Error which is not critical. We decided to continue the process despite the mentioned error.", + "Error which is not critical. We decided to continue the process despite\nthe mentioned error.", "No results are present on a particular list page.", "Success is reported, but some results may be missing due to errors", - "The user attempted to use a resource that requires a TOS they have not accepted.", + "Quota information is not available to client requests (e.g:\nregions.list).", + "The user attempted to use a resource that requires a TOS they have not\naccepted.", "Warning that a resource is in use.", - "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "One or more of the resources set to auto-delete could not be deleted\nbecause they were in use.", "When a resource schema validation is ignored.", - "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", + "Instance template used in instance group manager is valid as such, but\nits application does not make a lot of sense, because it allows only\nsingle instance in instance group.", "When undeclared properties in the schema are present", "A given scope cannot be reached." ], "type": "string" }, "data": { - "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", + "description": "[Output Only] Metadata about this warning in key:\nvalue format. For example:\n\n\"data\": [\n {\n \"key\": \"scope\",\n \"value\": \"zones/us-east1-d\"\n }", "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).", + "description": "[Output Only] A key that provides more detail on the warning being\nreturned. For example, for warnings where there are no results in a list\nrequest for a particular zone, this key might be scope and\nthe key value might be the zone name. Other examples might be a key\nindicating a deprecated resource and a suggested replacement, or a\nwarning about invalid network settings (for example, if an instance\nattempts to perform IP forwarding but is not enabled for IP forwarding).", "type": "string" }, "value": { @@ -38356,39 +63730,49 @@ }, "type": "object" }, - "AddressList": { - "description": "Contains a list of addresses.", - "id": "AddressList", + "HealthChecksAggregatedList": { + "id": "HealthChecksAggregatedList", "properties": { "id": { "description": "[Output Only] Unique identifier for the resource; defined by the server.", "type": "string" }, "items": { - "description": "A list of Address resources.", - "items": { - "$ref": "Address" + "additionalProperties": { + "$ref": "HealthChecksScopedList", + "description": "Name of the scope containing this set of HealthChecks." }, - "type": "array" + "description": "A list of HealthChecksScopedList resources.", + "type": "object" }, "kind": { - "default": "compute#addressList", - "description": "[Output Only] Type of resource. Always compute#addressList for lists of addresses.", + "default": "compute#healthChecksAggregatedList", + "description": "Output only. Type of resource.", + "readOnly": true, "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.", + "description": "[Output Only] This token allows you to get the next page of results for\nlist requests. If the number of results is larger thanmaxResults, use the nextPageToken as a value for\nthe query parameter pageToken in the next list request.\nSubsequent list requests will have their own nextPageToken to\ncontinue paging through the results.", "type": "string" }, "selfLink": { - "description": "[Output Only] Server-defined URL for this resource.", + "description": "Output only. [Output Only] Server-defined URL for this resource.", + "readOnly": true, "type": "string" }, + "unreachables": { + "description": "Output only. [Output Only] Unreachable resources.", + "items": { + "type": "string" + }, + "readOnly": true, + "type": "array" + }, "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.", + "description": "[Output Only] A warning code, if applicable. For example, Compute\nEngine returns NO_RESULTS_ON_PAGE if there\nare no results in the response.", "enum": [ "CLEANUP_FAILED", "DEPRECATED_RESOURCE_USED", @@ -38411,6 +63795,7 @@ "NOT_CRITICAL_ERROR", "NO_RESULTS_ON_PAGE", "PARTIAL_SUCCESS", + "QUOTA_INFO_UNAVAILABLE", "REQUIRED_TOS_AGREEMENT", "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", "RESOURCE_NOT_DELETED", @@ -38447,46 +63832,48 @@ false, false, false, + false, false ], "enumDescriptions": [ - "Warning about failed cleanup of transient changes made by a failed operation.", + "Warning about failed cleanup of transient changes made by a failed\noperation.", "A link to a deprecated resource was created.", - "When deploying and at least one of the resources has a type marked as deprecated", + "When deploying and at least one of the resources has a type marked as\ndeprecated", "The user created a boot disk that is larger than image size.", - "When deploying and at least one of the resources has a type marked as experimental", + "When deploying and at least one of the resources has a type marked as\nexperimental", "Warning that is present in an external api call", - "Warning that value of a field has been overridden. Deprecated unused field.", + "Warning that value of a field has been overridden.\nDeprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", - "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is\nnot of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", - "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", + "Resource can't be retrieved due to list overhead quota exceed\nwhich captures the amount of resources filtered out by\nuser-defined list filter.", "A resource depends on a missing type", - "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's nextHopIp address is not assigned to an instance on the\nnetwork.", "The route's next hop instance cannot ip forward.", - "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not have an\nipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", - "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that is not on the\nsame network as the route.", "The route's next hop instance does not have a status of RUNNING.", - "Error which is not critical. We decided to continue the process despite the mentioned error.", + "Error which is not critical. We decided to continue the process despite\nthe mentioned error.", "No results are present on a particular list page.", "Success is reported, but some results may be missing due to errors", - "The user attempted to use a resource that requires a TOS they have not accepted.", + "Quota information is not available to client requests (e.g:\nregions.list).", + "The user attempted to use a resource that requires a TOS they have not\naccepted.", "Warning that a resource is in use.", - "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "One or more of the resources set to auto-delete could not be deleted\nbecause they were in use.", "When a resource schema validation is ignored.", - "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", + "Instance template used in instance group manager is valid as such, but\nits application does not make a lot of sense, because it allows only\nsingle instance in instance group.", "When undeclared properties in the schema are present", "A given scope cannot be reached." ], "type": "string" }, "data": { - "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", + "description": "[Output Only] Metadata about this warning in key:\nvalue format. For example:\n\n\"data\": [\n {\n \"key\": \"scope\",\n \"value\": \"zones/us-east1-d\"\n }", "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).", + "description": "[Output Only] A key that provides more detail on the warning being\nreturned. For example, for warnings where there are no results in a list\nrequest for a particular zone, this key might be scope and\nthe key value might be the zone name. Other examples might be a key\nindicating a deprecated resource and a suggested replacement, or a\nwarning about invalid network settings (for example, if an instance\nattempts to perform IP forwarding but is not enabled for IP forwarding).", "type": "string" }, "value": { @@ -38508,21 +63895,21 @@ }, "type": "object" }, - "AddressesScopedList": { - "id": "AddressesScopedList", + "HealthChecksScopedList": { + "id": "HealthChecksScopedList", "properties": { - "addresses": { - "description": "[Output Only] A list of addresses contained in this scope.", + "healthChecks": { + "description": "A list of HealthChecks contained in this scope.", "items": { - "$ref": "Address" + "$ref": "HealthCheck" }, "type": "array" }, "warning": { - "description": "[Output Only] Informational warning which replaces the list of addresses when the list is empty.", + "description": "Informational warning which replaces the list of\nbackend services when the list is empty.", "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.", + "description": "[Output Only] A warning code, if applicable. For example, Compute\nEngine returns NO_RESULTS_ON_PAGE if there\nare no results in the response.", "enum": [ "CLEANUP_FAILED", "DEPRECATED_RESOURCE_USED", @@ -38545,6 +63932,7 @@ "NOT_CRITICAL_ERROR", "NO_RESULTS_ON_PAGE", "PARTIAL_SUCCESS", + "QUOTA_INFO_UNAVAILABLE", "REQUIRED_TOS_AGREEMENT", "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", "RESOURCE_NOT_DELETED", @@ -38581,46 +63969,48 @@ false, false, false, + false, false ], "enumDescriptions": [ - "Warning about failed cleanup of transient changes made by a failed operation.", + "Warning about failed cleanup of transient changes made by a failed\noperation.", "A link to a deprecated resource was created.", - "When deploying and at least one of the resources has a type marked as deprecated", + "When deploying and at least one of the resources has a type marked as\ndeprecated", "The user created a boot disk that is larger than image size.", - "When deploying and at least one of the resources has a type marked as experimental", + "When deploying and at least one of the resources has a type marked as\nexperimental", "Warning that is present in an external api call", - "Warning that value of a field has been overridden. Deprecated unused field.", + "Warning that value of a field has been overridden.\nDeprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", - "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is\nnot of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", - "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", + "Resource can't be retrieved due to list overhead quota exceed\nwhich captures the amount of resources filtered out by\nuser-defined list filter.", "A resource depends on a missing type", - "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's nextHopIp address is not assigned to an instance on the\nnetwork.", "The route's next hop instance cannot ip forward.", - "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not have an\nipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", - "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that is not on the\nsame network as the route.", "The route's next hop instance does not have a status of RUNNING.", - "Error which is not critical. We decided to continue the process despite the mentioned error.", + "Error which is not critical. We decided to continue the process despite\nthe mentioned error.", "No results are present on a particular list page.", "Success is reported, but some results may be missing due to errors", - "The user attempted to use a resource that requires a TOS they have not accepted.", + "Quota information is not available to client requests (e.g:\nregions.list).", + "The user attempted to use a resource that requires a TOS they have not\naccepted.", "Warning that a resource is in use.", - "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "One or more of the resources set to auto-delete could not be deleted\nbecause they were in use.", "When a resource schema validation is ignored.", - "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", + "Instance template used in instance group manager is valid as such, but\nits application does not make a lot of sense, because it allows only\nsingle instance in instance group.", "When undeclared properties in the schema are present", "A given scope cannot be reached." ], "type": "string" }, "data": { - "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", + "description": "[Output Only] Metadata about this warning in key:\nvalue format. For example:\n\n\"data\": [\n {\n \"key\": \"scope\",\n \"value\": \"zones/us-east1-d\"\n }", "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).", + "description": "[Output Only] A key that provides more detail on the warning being\nreturned. For example, for warnings where there are no results in a list\nrequest for a particular zone, this key might be scope and\nthe key value might be the zone name. Other examples might be a key\nindicating a deprecated resource and a suggested replacement, or a\nwarning about invalid network settings (for example, if an instance\nattempts to perform IP forwarding but is not enabled for IP forwarding).", "type": "string" }, "value": { @@ -38642,693 +64032,491 @@ }, "type": "object" }, - "AdvancedMachineFeatures": { - "description": "Specifies options for controlling advanced machine features. Options that would traditionally be configured in a BIOS belong here. Features that require operating system support may have corresponding entries in the GuestOsFeatures of an Image (e.g., whether or not the OS in the Image supports nested virtualization being enabled or disabled).", - "id": "AdvancedMachineFeatures", - "properties": { - "enableNestedVirtualization": { - "description": "Whether to enable nested virtualization or not (default is false).", - "type": "boolean" - }, - "enableUefiNetworking": { - "description": "Whether to enable UEFI networking for instance creation.", - "type": "boolean" - }, - "threadsPerCore": { - "description": "The number of threads per physical core. To disable simultaneous multithreading (SMT) set this to 1. If unset, the maximum number of threads supported per core by the underlying processor is assumed.", - "format": "int32", - "type": "integer" - }, - "visibleCoreCount": { - "description": "The number of physical cores to expose to an instance. Multiply by the number of threads per core to compute the total number of virtual CPUs to expose to the instance. If unset, the number of cores is inferred from the instance's nominal CPU count and the underlying platform's SMT width.", - "format": "int32", - "type": "integer" - } - }, - "type": "object" - }, - "AliasIpRange": { - "description": "An alias IP range attached to an instance's network interface.", - "id": "AliasIpRange", - "properties": { - "ipCidrRange": { - "description": "The IP alias ranges to allocate for this interface. This IP CIDR range must belong to the specified subnetwork and cannot contain IP addresses reserved by system or used by other network interfaces. This range may be a single IP address (such as 10.2.3.4), a netmask (such as /24) or a CIDR-formatted string (such as 10.1.2.0/24).", - "type": "string" - }, - "subnetworkRangeName": { - "description": "The name of a subnetwork secondary IP range from which to allocate an IP alias range. If not specified, the primary range of the subnetwork is used.", - "type": "string" - } - }, - "type": "object" - }, - "AllocationAggregateReservation": { - "description": "This reservation type is specified by total resource amounts (e.g. total count of CPUs) and can account for multiple instance SKUs. In other words, one can create instances of varying shapes against this reservation.", - "id": "AllocationAggregateReservation", - "properties": { - "inUseResources": { - "description": "[Output only] List of resources currently in use.", - "items": { - "$ref": "AllocationAggregateReservationReservedResourceInfo" - }, - "type": "array" - }, - "reservedResources": { - "description": "List of reserved resources (CPUs, memory, accelerators).", - "items": { - "$ref": "AllocationAggregateReservationReservedResourceInfo" - }, - "type": "array" - }, - "vmFamily": { - "description": "The VM family that all instances scheduled against this reservation must belong to.", - "enum": [ - "VM_FAMILY_CLOUD_TPU_LITE_DEVICE_CT5L", - "VM_FAMILY_CLOUD_TPU_LITE_POD_SLICE_CT5LP", - "VM_FAMILY_CLOUD_TPU_POD_SLICE_CT4P" - ], - "enumDescriptions": [ - "", - "", - "" - ], - "type": "string" - }, - "workloadType": { - "description": "The workload type of the instances that will target this reservation.", - "enum": [ - "BATCH", - "SERVING", - "UNSPECIFIED" - ], - "enumDescriptions": [ - "Reserved resources will be optimized for BATCH workloads, such as ML training.", - "Reserved resources will be optimized for SERVING workloads, such as ML inference.", - "" - ], - "type": "string" - } - }, - "type": "object" - }, - "AllocationAggregateReservationReservedResourceInfo": { - "id": "AllocationAggregateReservationReservedResourceInfo", - "properties": { - "accelerator": { - "$ref": "AllocationAggregateReservationReservedResourceInfoAccelerator", - "description": "Properties of accelerator resources in this reservation." - } - }, - "type": "object" - }, - "AllocationAggregateReservationReservedResourceInfoAccelerator": { - "id": "AllocationAggregateReservationReservedResourceInfoAccelerator", - "properties": { - "acceleratorCount": { - "description": "Number of accelerators of specified type.", - "format": "int32", - "type": "integer" - }, - "acceleratorType": { - "description": "Full or partial URL to accelerator type. e.g. \"projects/{PROJECT}/zones/{ZONE}/acceleratorTypes/ct4l\"", - "type": "string" - } - }, - "type": "object" - }, - "AllocationResourceStatus": { - "description": "[Output Only] Contains output only fields.", - "id": "AllocationResourceStatus", - "properties": { - "specificSkuAllocation": { - "$ref": "AllocationResourceStatusSpecificSKUAllocation", - "description": "Allocation Properties of this reservation." - } - }, - "type": "object" - }, - "AllocationResourceStatusSpecificSKUAllocation": { - "description": "Contains Properties set for the reservation.", - "id": "AllocationResourceStatusSpecificSKUAllocation", - "properties": { - "sourceInstanceTemplateId": { - "description": "ID of the instance template used to populate reservation properties.", - "type": "string" - } - }, - "type": "object" - }, - "AllocationSpecificSKUAllocationAllocatedInstancePropertiesReservedDisk": { - "id": "AllocationSpecificSKUAllocationAllocatedInstancePropertiesReservedDisk", + "HealthSource": { + "description": "Represents a health source.\n\nA health source resource specifies the source resources and the health\naggregation policy applied to the source resources to determine the\naggregated health status.", + "id": "HealthSource", "properties": { - "diskSizeGb": { - "description": "Specifies the size of the disk in base-2 GB.", - "format": "int64", + "creationTimestamp": { + "description": "Output only. [Output Only] Creation timestamp inRFC3339\ntext format.", + "readOnly": true, "type": "string" }, - "interface": { - "description": "Specifies the disk interface to use for attaching this disk, which is either SCSI or NVME. The default is SCSI. For performance characteristics of SCSI over NVMe, see Local SSD performance.", - "enum": [ - "NVME", - "SCSI" - ], - "enumDescriptions": [ - "", - "" - ], + "description": { + "description": "An optional description of this resource. Provide this property when you\ncreate the resource.", "type": "string" - } - }, - "type": "object" - }, - "AllocationSpecificSKUAllocationReservedInstanceProperties": { - "description": "Properties of the SKU instances being reserved. Next ID: 9", - "id": "AllocationSpecificSKUAllocationReservedInstanceProperties", - "properties": { - "guestAccelerators": { - "description": "Specifies accelerator type and count.", - "items": { - "$ref": "AcceleratorConfig" - }, - "type": "array" - }, - "localSsds": { - "description": "Specifies amount of local ssd to reserve with each instance. The type of disk is local-ssd.", - "items": { - "$ref": "AllocationSpecificSKUAllocationAllocatedInstancePropertiesReservedDisk" - }, - "type": "array" }, - "locationHint": { - "description": "An opaque location hint used to place the allocation close to other resources. This field is for use by internal tools that use the public API.", + "fingerprint": { + "description": "Fingerprint of this resource. A hash of the contents stored in this object.\nThis field is used in optimistic locking. This field will be ignored when\ninserting a HealthSource. An up-to-date fingerprint\nmust be provided in order to patch the HealthSource; Otherwise, the request\nwill fail with error 412 conditionNotMet. To see the latest\nfingerprint, make a get() request to retrieve the\nHealthSource.", + "format": "byte", "type": "string" }, - "machineType": { - "description": "Specifies type of machine (name only) which has fixed number of vCPUs and fixed amount of memory. This also includes specifying custom machine type following custom-NUMBER_OF_CPUS-AMOUNT_OF_MEMORY pattern.", + "healthAggregationPolicy": { + "description": "URL to the HealthAggregationPolicy resource. Must be set. Must\nbe regional and in the same region as the HealthSource. Can be\nmutated.", "type": "string" }, - "minCpuPlatform": { - "description": "Minimum cpu platform the reservation.", - "type": "string" - } - }, - "type": "object" - }, - "AllocationSpecificSKUReservation": { - "description": "This reservation type allows to pre allocate specific instance configuration.", - "id": "AllocationSpecificSKUReservation", - "properties": { - "assuredCount": { - "description": "[Output Only] Indicates how many instances are actually usable currently.", - "format": "int64", + "id": { + "description": "Output only. [Output Only] A unique identifier for this resource type. The server\ngenerates this identifier.", + "format": "uint64", + "readOnly": true, "type": "string" }, - "count": { - "description": "Specifies the number of resources that are allocated.", - "format": "int64", + "kind": { + "default": "compute#healthSource", + "description": "Output only. [Output Only] Type of the resource. Alwayscompute#healthSource for health sources.", + "readOnly": true, "type": "string" }, - "inUseCount": { - "description": "[Output Only] Indicates how many instances are in use.", - "format": "int64", + "name": { + "description": "Name of the resource. Provided by the client when the resource is created.\nThe name must be 1-63 characters long, and comply withRFC1035.\nSpecifically, the name must be 1-63 characters long and match the regular\nexpression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first\ncharacter must be a lowercase letter, and all following characters must\nbe a dash, lowercase letter, or digit, except the last character, which\ncannot be a dash.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", "type": "string" }, - "instanceProperties": { - "$ref": "AllocationSpecificSKUAllocationReservedInstanceProperties", - "description": "The instance properties for the reservation." - }, - "sourceInstanceTemplate": { - "description": "Specifies the instance template to create the reservation. If you use this field, you must exclude the instanceProperties field. This field is optional, and it can be a full or partial URL. For example, the following are all valid URLs to an instance template: - https://www.googleapis.com/compute/v1/projects/project /global/instanceTemplates/instanceTemplate - projects/project/global/instanceTemplates/instanceTemplate - global/instanceTemplates/instanceTemplate ", - "type": "string" - } - }, - "type": "object" - }, - "AttachedDisk": { - "description": "An instance-attached disk resource.", - "id": "AttachedDisk", - "properties": { - "architecture": { - "description": "[Output Only] The architecture of the attached disk. Valid values are ARM64 or X86_64.", - "enum": [ - "ARCHITECTURE_UNSPECIFIED", - "ARM64", - "X86_64" - ], - "enumDescriptions": [ - "Default value indicating Architecture is not set.", - "Machines with architecture ARM64", - "Machines with architecture X86_64" - ], + "region": { + "description": "Output only. [Output Only] URL of the region where the health source resides.\nThis field applies only to the regional resource. You must specify this\nfield as part of the HTTP request URL. It is not settable as a field in\nthe request body.", + "readOnly": true, "type": "string" }, - "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" - }, - "boot": { - "description": "Indicates that this is a boot disk. The virtual machine will use the first partition of the disk for its root filesystem.", - "type": "boolean" - }, - "deviceName": { - "description": "Specifies a unique device name of your choice that is reflected into the /dev/disk/by-id/google-* tree of a Linux operating system running within the instance. This name can be used to reference the device for mounting, resizing, and so on, from within the instance. If not specified, the server chooses a default device name to apply to this disk, in the form persistent-disk-x, where x is a number assigned by Google Compute Engine. This field is only applicable for persistent disks.", + "selfLink": { + "description": "Output only. [Output Only] Server-defined URL for the resource.", + "readOnly": true, "type": "string" }, - "diskEncryptionKey": { - "$ref": "CustomerEncryptionKey", - "description": "Encrypts or decrypts a disk using a customer-supplied encryption key. If you are creating a new disk, this field encrypts the new disk using an encryption key that you provide. If you are attaching an existing disk that is already encrypted, this field decrypts the disk using the customer-supplied encryption key. If you encrypt a disk using a customer-supplied key, you must provide the same key again when you attempt to use this resource at a later time. For example, you must provide the key when you create a snapshot or an image from the disk or when you attach the disk to a virtual machine instance. If you do not provide an encryption key, then the disk will be encrypted using an automatically generated key and you do not need to provide a key to use the disk later. Instance templates do not store customer-supplied encryption keys, so you cannot use your own keys to encrypt disks in a managed instance group." - }, - "diskSizeGb": { - "description": "The size of the disk in GB.", - "format": "int64", + "selfLinkWithId": { + "description": "Output only. [Output Only] Server-defined URL with id for the resource.", + "readOnly": true, "type": "string" }, - "forceAttach": { - "description": "[Input Only] Whether to force attach the regional disk even if it's currently attached to another instance. If you try to force attach a zonal disk to an instance, you will receive an error.", - "type": "boolean" - }, - "guestOsFeatures": { - "description": "A list of features to enable on the guest operating system. Applicable only for bootable images. Read Enabling guest operating system features to see a list of available options.", - "items": { - "$ref": "GuestOsFeature" - }, - "type": "array" - }, - "index": { - "description": "[Output Only] A zero-based index to this disk, where 0 is reserved for the boot disk. If you have many disks attached to an instance, each disk would have a unique index number.", - "format": "int32", - "type": "integer" - }, - "initializeParams": { - "$ref": "AttachedDiskInitializeParams", - "description": "[Input Only] Specifies the parameters for a new disk that will be created alongside the new instance. Use initialization parameters to create boot disks or local SSDs attached to the new instance. This property is mutually exclusive with the source property; you can only define one or the other, but not both." - }, - "interface": { - "description": "Specifies the disk interface to use for attaching this disk, which is either SCSI or NVME. For most machine types, the default is SCSI. Local SSDs can use either NVME or SCSI. In certain configurations, persistent disks can use NVMe. For more information, see About persistent disks.", + "sourceType": { + "description": "Specifies the type of the HealthSource. The only allowed value\nis BACKEND_SERVICE. Must be specified when theHealthSource is created, and cannot be mutated.", "enum": [ - "NVME", - "SCSI" + "BACKEND_SERVICE" ], "enumDescriptions": [ - "", "" ], "type": "string" }, - "kind": { - "default": "compute#attachedDisk", - "description": "[Output Only] Type of the resource. Always compute#attachedDisk for attached disks.", - "type": "string" - }, - "licenses": { - "description": "[Output Only] Any valid publicly visible licenses.", + "sources": { + "description": "URLs to the source resources. Must be size 1. Must be aBackendService if\nthe sourceType is BACKEND_SERVICE. TheBackendService must have load balancing schemeINTERNAL or INTERNAL_MANAGED and must be regional\nand in the same region as the HealthSource (cross-region\ndeployment for INTERNAL_MANAGED is not supported). TheBackendService may use only IGs, MIGs, or NEGs of typeGCE_VM_IP or GCE_VM_IP_PORT. TheBackendService may not use haPolicy. Can be\nmutated.", "items": { "type": "string" }, "type": "array" - }, - "mode": { - "description": "The mode in which to attach this disk, either READ_WRITE or READ_ONLY. If not specified, the default is to attach the disk in READ_WRITE mode.", - "enum": [ - "READ_ONLY", - "READ_WRITE" - ], - "enumDescriptions": [ - "Attaches this disk in read-only mode. Multiple virtual machines can use a disk in read-only mode at a time.", - "*[Default]* Attaches this disk in read-write mode. Only one virtual machine at a time can be attached to a disk in read-write mode." - ], - "type": "string" - }, - "savedState": { - "description": "For LocalSSD disks on VM Instances in STOPPED or SUSPENDED state, this field is set to PRESERVED if the LocalSSD data has been saved to a persistent location by customer request. (see the discard_local_ssd option on Stop/Suspend). Read-only in the api.", - "enum": [ - "DISK_SAVED_STATE_UNSPECIFIED", - "PRESERVED" - ], - "enumDescriptions": [ - "*[Default]* Disk state has not been preserved.", - "Disk state has been preserved." - ], - "type": "string" - }, - "shieldedInstanceInitialState": { - "$ref": "InitialStateConfig", - "description": "[Output Only] shielded vm initial state stored on disk" - }, - "source": { - "description": "Specifies a valid partial or full URL to an existing Persistent Disk resource. When creating a new instance, one of initializeParams.sourceImage or initializeParams.sourceSnapshot or disks.source is required except for local SSD. If desired, you can also attach existing non-root persistent disks using this property. This field is only applicable for persistent disks. Note that for InstanceTemplate, specify the disk name for zonal disk, and the URL for regional disk.", - "type": "string" - }, - "type": { - "description": "Specifies the type of the disk, either SCRATCH or PERSISTENT. If not specified, the default is PERSISTENT.", - "enum": [ - "PERSISTENT", - "SCRATCH" - ], - "enumDescriptions": [ - "", - "" - ], - "type": "string" } }, "type": "object" }, - "AttachedDiskInitializeParams": { - "description": "[Input Only] Specifies the parameters for a new disk that will be created alongside the new instance. Use initialization parameters to create boot disks or local SSDs attached to the new instance. This field is persisted and returned for instanceTemplate and not returned in the context of instance. This property is mutually exclusive with the source property; you can only define one or the other, but not both.", - "id": "AttachedDiskInitializeParams", + "HealthSourceAggregatedList": { + "description": "Contains a list of HealthSourcesScopedList.", + "id": "HealthSourceAggregatedList", "properties": { - "architecture": { - "description": "The architecture of the attached disk. Valid values are arm64 or x86_64.", - "enum": [ - "ARCHITECTURE_UNSPECIFIED", - "ARM64", - "X86_64" - ], - "enumDescriptions": [ - "Default value indicating Architecture is not set.", - "Machines with architecture ARM64", - "Machines with architecture X86_64" - ], + "id": { + "description": "[Output Only] Unique identifier for the resource; defined by the server.", "type": "string" }, - "description": { - "description": "An optional description. Provide this property when creating the disk.", - "type": "string" + "items": { + "additionalProperties": { + "$ref": "HealthSourcesScopedList", + "description": "Name of the scope containing this set of HealthSources." + }, + "description": "A list of HealthSourcesScopedList resources.", + "type": "object" }, - "diskName": { - "description": "Specifies the disk name. If not specified, the default is to use the name of the instance. If a disk with the same name already exists in the given region, the existing disk is attached to the new instance and the new disk is not created.", + "kind": { + "default": "compute#healthSourceAggregatedList", + "description": "Output only. Type of resource.", + "readOnly": true, "type": "string" }, - "diskSizeGb": { - "description": "Specifies the size of the disk in base-2 GB. The size must be at least 10 GB. If you specify a sourceImage, which is required for boot disks, the default size is the size of the sourceImage. If you do not specify a sourceImage, the default disk size is 500 GB.", - "format": "int64", + "nextPageToken": { + "description": "[Output Only] This token allows you to get the next page of results for\nlist requests. If the number of results is larger thanmaxResults, use the nextPageToken as a value for\nthe query parameter pageToken in the next list request.\nSubsequent list requests will have their own nextPageToken to\ncontinue paging through the results.", "type": "string" }, - "diskType": { - "description": "Specifies the disk type to use to create the instance. If not specified, the default is pd-standard, specified using the full URL. For example: https://www.googleapis.com/compute/v1/projects/project/zones/zone /diskTypes/pd-standard For a full list of acceptable values, see Persistent disk types. If you specify this field when creating a VM, you can provide either the full or partial URL. For example, the following values are valid: - https://www.googleapis.com/compute/v1/projects/project/zones/zone /diskTypes/diskType - projects/project/zones/zone/diskTypes/diskType - zones/zone/diskTypes/diskType If you specify this field when creating or updating an instance template or all-instances configuration, specify the type of the disk, not the URL. For example: pd-standard.", + "selfLink": { + "description": "Output only. [Output Only] Server-defined URL for this resource.", + "readOnly": true, "type": "string" }, - "enableConfidentialCompute": { - "description": "Whether this disk is using confidential compute mode.", - "type": "boolean" - }, - "labels": { - "additionalProperties": { - "type": "string" - }, - "description": "Labels to apply to this disk. These can be later modified by the disks.setLabels method. This field is only applicable for persistent disks.", - "type": "object" - }, - "licenses": { - "description": "A list of publicly visible licenses. Reserved for Google's use.", + "unreachables": { + "description": "Output only. [Output Only] Unreachable resources.", "items": { "type": "string" }, + "readOnly": true, "type": "array" }, - "onUpdateAction": { - "description": "Specifies which action to take on instance update with this disk. Default is to use the existing disk.", + "warning": { + "description": "[Output Only] Informational warning message.", + "properties": { + "code": { + "description": "[Output Only] A warning code, if applicable. For example, Compute\nEngine returns NO_RESULTS_ON_PAGE if there\nare 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", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", + "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "PARTIAL_SUCCESS", + "QUOTA_INFO_UNAVAILABLE", + "REQUIRED_TOS_AGREEMENT", + "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", + "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", + "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", + "UNREACHABLE" + ], + "enumDeprecated": [ + false, + false, + false, + false, + false, + false, + true, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false + ], + "enumDescriptions": [ + "Warning about failed cleanup of transient changes made by a failed\noperation.", + "A link to a deprecated resource was created.", + "When deploying and at least one of the resources has a type marked as\ndeprecated", + "The user created a boot disk that is larger than image size.", + "When deploying and at least one of the resources has a type marked as\nexperimental", + "Warning that is present in an external api call", + "Warning that value of a field has been overridden.\nDeprecated unused field.", + "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is\nnot of type HTTP/HTTPS/HTTP2.", + "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed\nwhich captures the amount of resources filtered out by\nuser-defined list filter.", + "A resource depends on a missing type", + "The route's nextHopIp address is not assigned to an instance on the\nnetwork.", + "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an\nipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not exist.", + "The route's nextHopInstance URL refers to an instance that is not on the\nsame network as the route.", + "The route's next hop instance does not have a status of RUNNING.", + "Error which is not critical. We decided to continue the process despite\nthe mentioned error.", + "No results are present on a particular list page.", + "Success is reported, but some results may be missing due to errors", + "Quota information is not available to client requests (e.g:\nregions.list).", + "The user attempted to use a resource that requires a TOS they have not\naccepted.", + "Warning that a resource is in use.", + "One or more of the resources set to auto-delete could not be deleted\nbecause they were in use.", + "When a resource schema validation is ignored.", + "Instance template used in instance group manager is valid as such, but\nits application does not make a lot of sense, because it allows only\nsingle instance in instance group.", + "When undeclared properties in the schema are present", + "A given scope cannot be reached." + ], + "type": "string" + }, + "data": { + "description": "[Output Only] Metadata about this warning in key:\nvalue format. For example:\n\n\"data\": [\n {\n \"key\": \"scope\",\n \"value\": \"zones/us-east1-d\"\n }", + "items": { + "properties": { + "key": { + "description": "[Output Only] A key that provides more detail on the warning being\nreturned. For example, for warnings where there are no results in a list\nrequest for a particular zone, this key might be scope and\nthe key value might be the zone name. Other examples might be a key\nindicating a deprecated resource and a suggested replacement, or a\nwarning about invalid network settings (for example, if an instance\nattempts 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" + }, + "HealthSourceHealth": { + "description": "Response message for RegionHealthSources.GetHealth", + "id": "HealthSourceHealth", + "properties": { + "healthState": { + "description": "Health state of the HealthSource.", "enum": [ - "RECREATE_DISK", - "RECREATE_DISK_IF_SOURCE_CHANGED", - "USE_EXISTING_DISK" + "HEALTHY", + "UNHEALTHY", + "UNKNOWN" ], "enumDescriptions": [ - "Always recreate the disk.", - "Recreate the disk if source (image, snapshot) of this disk is different from source of existing disk.", - "Use the existing disk, this is the default behaviour." - ], - "type": "string" - }, - "provisionedIops": { - "description": "Indicates how many IOPS to provision for the disk. This sets the number of I/O operations per second that the disk can handle. Values must be between 10,000 and 120,000. For more details, see the Extreme persistent disk documentation.", - "format": "int64", + "", + "", + "" + ], "type": "string" }, - "provisionedThroughput": { - "description": "Indicates how much throughput to provision for the disk. This sets the number of throughput mb per second that the disk can handle. Values must greater than or equal to 1.", - "format": "int64", + "kind": { + "default": "compute#healthSourceHealth", + "description": "Output only. [Output Only] Type of resource. Alwayscompute#healthSourceHealth for the health of health sources.", + "readOnly": true, "type": "string" }, - "replicaZones": { - "description": "Required for each regional disk associated with the instance. Specify the URLs of the zones where the disk should be replicated to. You must provide exactly two replica zones, and one zone must be the same as the instance zone.", + "sources": { + "description": "Health state details of the sources.", "items": { - "type": "string" + "$ref": "HealthSourcesGetHealthResponseSourceInfo" }, "type": "array" + } + }, + "type": "object" + }, + "HealthSourceList": { + "id": "HealthSourceList", + "properties": { + "id": { + "description": "[Output Only] Unique identifier for the resource; defined by the server.", + "type": "string" }, - "resourceManagerTags": { - "additionalProperties": { - "type": "string" - }, - "description": "Resource manager tags to be bound to the disk. Tag keys and values have the same definition as resource manager tags. Keys must be in the format `tagKeys/{tag_key_id}`, and values are in the format `tagValues/456`. The field is ignored (both PUT \u0026 PATCH) when empty.", - "type": "object" - }, - "resourcePolicies": { - "description": "Resource policies applied to this disk for automatic snapshot creations. Specified using the full or partial URL. For instance template, specify only the resource policy name.", + "items": { + "description": "A list of HealthSource resources.", "items": { - "type": "string" + "$ref": "HealthSource" }, "type": "array" }, - "sourceImage": { - "description": "The source image to create this disk. When creating a new instance, one of initializeParams.sourceImage or initializeParams.sourceSnapshot or disks.source is required except for local SSD. To create a disk with one of the public operating system images, specify the image by its family name. For example, specify family/debian-9 to use the latest Debian 9 image: projects/debian-cloud/global/images/family/debian-9 Alternatively, use a specific version of a public operating system image: projects/debian-cloud/global/images/debian-9-stretch-vYYYYMMDD To create a disk with a custom image that you created, specify the image name in the following format: global/images/my-custom-image You can also specify a custom image by its image family, which returns the latest version of the image in that family. Replace the image name with family/family-name: global/images/family/my-image-family If the source image is deleted later, this field will not be set.", + "kind": { + "default": "compute#healthSourceList", + "description": "Output only. [Output Only] Type of the resource. Alwayscompute#healthSource for health sources.", + "readOnly": true, "type": "string" }, - "sourceImageEncryptionKey": { - "$ref": "CustomerEncryptionKey", - "description": "The customer-supplied encryption key of the source image. Required if the source image is protected by a customer-supplied encryption key. InstanceTemplate and InstancePropertiesPatch do not store customer-supplied encryption keys, so you cannot create disks for instances in a managed instance group if the source images are encrypted with your own keys." - }, - "sourceSnapshot": { - "description": "The source snapshot to create this disk. When creating a new instance, one of initializeParams.sourceSnapshot or initializeParams.sourceImage or disks.source is required except for local SSD. To create a disk with a snapshot that you created, specify the snapshot name in the following format: global/snapshots/my-backup If the source snapshot is deleted later, this field will not be set.", + "nextPageToken": { + "description": "[Output Only] This token allows you to get the next page of results for\nlist requests. If the number of results is larger thanmaxResults, use the nextPageToken as a value for\nthe query parameter pageToken in the next list request.\nSubsequent list requests will have their own nextPageToken to\ncontinue paging through the results.", "type": "string" }, - "sourceSnapshotEncryptionKey": { - "$ref": "CustomerEncryptionKey", - "description": "The customer-supplied encryption key of the source snapshot." - }, - "storagePool": { - "description": "The storage pool in which the new disk is created. 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 /storagePools/storagePool - projects/project/zones/zone/storagePools/storagePool - zones/zone/storagePools/storagePool ", + "selfLink": { + "description": "[Output Only] Server-defined URL for this resource.", "type": "string" - } - }, - "type": "object" - }, - "AuditConfig": { - "description": "Specifies the audit configuration for a service. The configuration determines which permission types are logged, and what identities, if any, are exempted from logging. An AuditConfig must have one or more AuditLogConfigs. If there are AuditConfigs for both `allServices` and a specific service, the union of the two AuditConfigs is used for that service: the log_types specified in each AuditConfig are enabled, and the exempted_members in each AuditLogConfig are exempted. Example Policy with multiple AuditConfigs: { \"audit_configs\": [ { \"service\": \"allServices\", \"audit_log_configs\": [ { \"log_type\": \"DATA_READ\", \"exempted_members\": [ \"user:jose@example.com\" ] }, { \"log_type\": \"DATA_WRITE\" }, { \"log_type\": \"ADMIN_READ\" } ] }, { \"service\": \"sampleservice.googleapis.com\", \"audit_log_configs\": [ { \"log_type\": \"DATA_READ\" }, { \"log_type\": \"DATA_WRITE\", \"exempted_members\": [ \"user:aliya@example.com\" ] } ] } ] } For sampleservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ logging. It also exempts jose@example.com from DATA_READ logging, and aliya@example.com from DATA_WRITE logging.", - "id": "AuditConfig", - "properties": { - "auditLogConfigs": { - "description": "The configuration for logging of each type of permission.", - "items": { - "$ref": "AuditLogConfig" - }, - "type": "array" }, - "exemptedMembers": { - "description": "This is deprecated and has no effect. Do not use.", - "items": { - "type": "string" + "warning": { + "description": "[Output Only] Informational warning message.", + "properties": { + "code": { + "description": "[Output Only] A warning code, if applicable. For example, Compute\nEngine returns NO_RESULTS_ON_PAGE if there\nare 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", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", + "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "PARTIAL_SUCCESS", + "QUOTA_INFO_UNAVAILABLE", + "REQUIRED_TOS_AGREEMENT", + "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", + "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", + "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", + "UNREACHABLE" + ], + "enumDeprecated": [ + false, + false, + false, + false, + false, + false, + true, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false + ], + "enumDescriptions": [ + "Warning about failed cleanup of transient changes made by a failed\noperation.", + "A link to a deprecated resource was created.", + "When deploying and at least one of the resources has a type marked as\ndeprecated", + "The user created a boot disk that is larger than image size.", + "When deploying and at least one of the resources has a type marked as\nexperimental", + "Warning that is present in an external api call", + "Warning that value of a field has been overridden.\nDeprecated unused field.", + "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is\nnot of type HTTP/HTTPS/HTTP2.", + "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed\nwhich captures the amount of resources filtered out by\nuser-defined list filter.", + "A resource depends on a missing type", + "The route's nextHopIp address is not assigned to an instance on the\nnetwork.", + "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an\nipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not exist.", + "The route's nextHopInstance URL refers to an instance that is not on the\nsame network as the route.", + "The route's next hop instance does not have a status of RUNNING.", + "Error which is not critical. We decided to continue the process despite\nthe mentioned error.", + "No results are present on a particular list page.", + "Success is reported, but some results may be missing due to errors", + "Quota information is not available to client requests (e.g:\nregions.list).", + "The user attempted to use a resource that requires a TOS they have not\naccepted.", + "Warning that a resource is in use.", + "One or more of the resources set to auto-delete could not be deleted\nbecause they were in use.", + "When a resource schema validation is ignored.", + "Instance template used in instance group manager is valid as such, but\nits application does not make a lot of sense, because it allows only\nsingle instance in instance group.", + "When undeclared properties in the schema are present", + "A given scope cannot be reached." + ], + "type": "string" + }, + "data": { + "description": "[Output Only] Metadata about this warning in key:\nvalue format. For example:\n\n\"data\": [\n {\n \"key\": \"scope\",\n \"value\": \"zones/us-east1-d\"\n }", + "items": { + "properties": { + "key": { + "description": "[Output Only] A key that provides more detail on the warning being\nreturned. For example, for warnings where there are no results in a list\nrequest for a particular zone, this key might be scope and\nthe key value might be the zone name. Other examples might be a key\nindicating a deprecated resource and a suggested replacement, or a\nwarning about invalid network settings (for example, if an instance\nattempts 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": "array" - }, - "service": { - "description": "Specifies a service that will be enabled for audit logging. For example, `storage.googleapis.com`, `cloudsql.googleapis.com`. `allServices` is a special value that covers all services.", - "type": "string" + "type": "object" } }, "type": "object" }, - "AuditLogConfig": { - "description": "Provides the configuration for logging a type of permissions. Example: { \"audit_log_configs\": [ { \"log_type\": \"DATA_READ\", \"exempted_members\": [ \"user:jose@example.com\" ] }, { \"log_type\": \"DATA_WRITE\" } ] } This enables 'DATA_READ' and 'DATA_WRITE' logging, while exempting jose@example.com from DATA_READ logging.", - "id": "AuditLogConfig", + "HealthSourcesGetHealthResponseSourceInfo": { + "id": "HealthSourcesGetHealthResponseSourceInfo", "properties": { - "exemptedMembers": { - "description": "Specifies the identities that do not cause logging for this type of permission. Follows the same format of Binding.members.", + "backends": { + "description": "Represents an instance group or network endpoint group behind the source\nbackend service. Only used if the sourceType of the regionHealthSource\nis BACKEND_SERVICE.", "items": { - "type": "string" + "$ref": "HealthSourcesGetHealthResponseSourceInfoBackendInfo" }, "type": "array" }, - "ignoreChildExemptions": { - "description": "This is deprecated and has no effect. Do not use.", - "type": "boolean" - }, - "logType": { - "description": "The log type that this config enables.", - "enum": [ - "ADMIN_READ", - "DATA_READ", - "DATA_WRITE", - "LOG_TYPE_UNSPECIFIED" - ], - "enumDescriptions": [ - "Admin reads. Example: CloudIAM getIamPolicy", - "Data reads. Example: CloudSQL Users list", - "Data writes. Example: CloudSQL Users create", - "Default case. Should never be this." - ], + "forwardingRule": { + "description": "Fully qualified URL of the forwarding rule associated with the source\nresource if it is a L4ILB backend service.", "type": "string" - } - }, - "type": "object" - }, - "AuthorizationLoggingOptions": { - "description": "This is deprecated and has no effect. Do not use.", - "id": "AuthorizationLoggingOptions", - "properties": { - "permissionType": { - "description": "This is deprecated and has no effect. Do not use.", - "enum": [ - "ADMIN_READ", - "ADMIN_WRITE", - "DATA_READ", - "DATA_WRITE", - "PERMISSION_TYPE_UNSPECIFIED" - ], - "enumDescriptions": [ - "This is deprecated and has no effect. Do not use.", - "This is deprecated and has no effect. Do not use.", - "This is deprecated and has no effect. Do not use.", - "This is deprecated and has no effect. Do not use.", - "This is deprecated and has no effect. Do not use." - ], + }, + "source": { + "description": "Fully qualified URL of the associated source resource. This is always a\nbackend service URL.", "type": "string" } }, "type": "object" }, - "Autoscaler": { - "description": "Represents an Autoscaler resource. Google Compute Engine has two Autoscaler resources: * [Zonal](/compute/docs/reference/rest/v1/autoscalers) * [Regional](/compute/docs/reference/rest/v1/regionAutoscalers) Use autoscalers to automatically add or delete instances from a managed instance group according to your defined autoscaling policy. For more information, read Autoscaling Groups of Instances. For zonal managed instance groups resource, use the autoscaler resource. For regional managed instance groups, use the regionAutoscalers resource.", - "id": "Autoscaler", + "HealthSourcesGetHealthResponseSourceInfoBackendInfo": { + "id": "HealthSourcesGetHealthResponseSourceInfoBackendInfo", "properties": { - "autoscalingPolicy": { - "$ref": "AutoscalingPolicy", - "description": "The configuration parameters for the autoscaling algorithm. You can define one or more signals for an autoscaler: cpuUtilization, customMetricUtilizations, and loadBalancingUtilization. If none of these are specified, the default will be to autoscale based on cpuUtilization to 0.6 or 60%." - }, - "creationTimestamp": { - "description": "[Output Only] Creation timestamp in RFC3339 text format.", - "type": "string" - }, - "description": { - "description": "An optional description of this resource. Provide this property when you create the resource.", - "type": "string" - }, - "id": { - "description": "[Output Only] The unique identifier for the resource. This identifier is defined by the server.", - "format": "uint64", - "type": "string" - }, - "kind": { - "default": "compute#autoscaler", - "description": "[Output Only] Type of the resource. Always compute#autoscaler for autoscalers.", - "type": "string" - }, - "name": { - "annotations": { - "required": [ - "compute.autoscalers.insert" - ] - }, - "description": "Name of the resource. Provided by the client when the resource is created. The name must be 1-63 characters long, and comply with RFC1035. 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" - }, - "recommendedSize": { - "description": "[Output Only] Target recommended MIG size (number of instances) computed by autoscaler. Autoscaler calculates the recommended MIG size even when the autoscaling policy mode is different from ON. This field is empty when autoscaler is not connected to an existing managed instance group or autoscaler did not generate its prediction.", + "endpointCount": { + "description": "Total number of endpoints when determining the health of the\nregionHealthSource.", "format": "int32", "type": "integer" }, - "region": { - "description": "[Output Only] URL of the region where the instance group resides (for autoscalers living in regional scope).", - "type": "string" - }, - "scalingScheduleStatus": { - "additionalProperties": { - "$ref": "ScalingScheduleStatus" - }, - "description": "[Output Only] Status information of existing scaling schedules.", - "type": "object" - }, - "selfLink": { - "description": "[Output Only] Server-defined URL for the resource.", - "type": "string" - }, - "status": { - "description": "[Output Only] The status of the autoscaler configuration. Current set of possible values: - PENDING: Autoscaler backend hasn't read new/updated configuration. - DELETING: Configuration is being deleted. - ACTIVE: Configuration is acknowledged to be effective. Some warnings might be present in the statusDetails field. - ERROR: Configuration has errors. Actionable for users. Details are present in the statusDetails field. New values might be added in the future.", - "enum": [ - "ACTIVE", - "DELETING", - "ERROR", - "PENDING" - ], - "enumDescriptions": [ - "Configuration is acknowledged to be effective", - "Configuration is being deleted", - "Configuration has errors. Actionable for users.", - "Autoscaler backend hasn't read new/updated configuration" - ], - "type": "string" - }, - "statusDetails": { - "description": "[Output Only] Human-readable details about the current state of the autoscaler. Read the documentation for Commonly returned status messages for examples of status messages you might encounter.", - "items": { - "$ref": "AutoscalerStatusDetails" - }, - "type": "array" - }, - "target": { - "description": "URL of the managed instance group that this autoscaler will scale. This field is required when creating an autoscaler.", + "group": { + "description": "Fully qualified URL of an instance group or network endpoint group\nbehind the source backend service.", "type": "string" }, - "zone": { - "description": "[Output Only] URL of the zone where the instance group resides (for autoscalers living in zonal scope).", - "type": "string" + "healthyEndpointCount": { + "description": "Number of endpoints considered healthy when determining health of the\nregionHealthSource.", + "format": "int32", + "type": "integer" } }, "type": "object" }, - "AutoscalerAggregatedList": { - "id": "AutoscalerAggregatedList", + "HealthSourcesScopedList": { + "id": "HealthSourcesScopedList", "properties": { - "id": { - "description": "[Output Only] Unique identifier for the resource; defined by the server.", - "type": "string" - }, - "items": { - "additionalProperties": { - "$ref": "AutoscalersScopedList", - "description": "[Output Only] Name of the scope containing this set of autoscalers." - }, - "description": "A list of AutoscalersScopedList resources.", - "type": "object" - }, - "kind": { - "default": "compute#autoscalerAggregatedList", - "description": "[Output Only] Type of resource. Always compute#autoscalerAggregatedList for aggregated lists of autoscalers.", - "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" - }, - "selfLink": { - "description": "[Output Only] Server-defined URL for this resource.", - "type": "string" - }, - "unreachables": { - "description": "[Output Only] Unreachable resources. end_interface: MixerListResponseWithEtagBuilder", + "healthSources": { + "description": "A list of HealthSources contained in this scope.", "items": { - "type": "string" + "$ref": "HealthSource" }, "type": "array" }, "warning": { - "description": "[Output Only] Informational warning message.", + "description": "Informational warning which replaces the list of\nhealth sources when the list is empty.", "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.", + "description": "[Output Only] A warning code, if applicable. For example, Compute\nEngine returns NO_RESULTS_ON_PAGE if there\nare no results in the response.", "enum": [ "CLEANUP_FAILED", "DEPRECATED_RESOURCE_USED", @@ -39351,6 +64539,7 @@ "NOT_CRITICAL_ERROR", "NO_RESULTS_ON_PAGE", "PARTIAL_SUCCESS", + "QUOTA_INFO_UNAVAILABLE", "REQUIRED_TOS_AGREEMENT", "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", "RESOURCE_NOT_DELETED", @@ -39387,46 +64576,48 @@ false, false, false, + false, false ], "enumDescriptions": [ - "Warning about failed cleanup of transient changes made by a failed operation.", + "Warning about failed cleanup of transient changes made by a failed\noperation.", "A link to a deprecated resource was created.", - "When deploying and at least one of the resources has a type marked as deprecated", + "When deploying and at least one of the resources has a type marked as\ndeprecated", "The user created a boot disk that is larger than image size.", - "When deploying and at least one of the resources has a type marked as experimental", + "When deploying and at least one of the resources has a type marked as\nexperimental", "Warning that is present in an external api call", - "Warning that value of a field has been overridden. Deprecated unused field.", + "Warning that value of a field has been overridden.\nDeprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", - "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is\nnot of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", - "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", + "Resource can't be retrieved due to list overhead quota exceed\nwhich captures the amount of resources filtered out by\nuser-defined list filter.", "A resource depends on a missing type", - "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's nextHopIp address is not assigned to an instance on the\nnetwork.", "The route's next hop instance cannot ip forward.", - "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not have an\nipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", - "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that is not on the\nsame network as the route.", "The route's next hop instance does not have a status of RUNNING.", - "Error which is not critical. We decided to continue the process despite the mentioned error.", + "Error which is not critical. We decided to continue the process despite\nthe mentioned error.", "No results are present on a particular list page.", "Success is reported, but some results may be missing due to errors", - "The user attempted to use a resource that requires a TOS they have not accepted.", + "Quota information is not available to client requests (e.g:\nregions.list).", + "The user attempted to use a resource that requires a TOS they have not\naccepted.", "Warning that a resource is in use.", - "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "One or more of the resources set to auto-delete could not be deleted\nbecause they were in use.", "When a resource schema validation is ignored.", - "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", + "Instance template used in instance group manager is valid as such, but\nits application does not make a lot of sense, because it allows only\nsingle instance in instance group.", "When undeclared properties in the schema are present", "A given scope cannot be reached." ], "type": "string" }, "data": { - "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", + "description": "[Output Only] Metadata about this warning in key:\nvalue format. For example:\n\n\"data\": [\n {\n \"key\": \"scope\",\n \"value\": \"zones/us-east1-d\"\n }", "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).", + "description": "[Output Only] A key that provides more detail on the warning being\nreturned. For example, for warnings where there are no results in a list\nrequest for a particular zone, this key might be scope and\nthe key value might be the zone name. Other examples might be a key\nindicating a deprecated resource and a suggested replacement, or a\nwarning about invalid network settings (for example, if an instance\nattempts to perform IP forwarding but is not enabled for IP forwarding).", "type": "string" }, "value": { @@ -39443,236 +64634,439 @@ "type": "string" } }, - "type": "object" + "type": "object" + } + }, + "type": "object" + }, + "HealthStatus": { + "id": "HealthStatus", + "properties": { + "annotations": { + "additionalProperties": { + "type": "string" + }, + "description": "Metadata defined as annotations for network endpoint.", + "type": "object" + }, + "forwardingRule": { + "description": "URL of the forwarding rule associated with the health status of the\ninstance.", + "type": "string" + }, + "forwardingRuleIp": { + "description": "A forwarding rule IP address assigned to this instance.", + "type": "string" + }, + "healthState": { + "description": "Health state of the IPv4 address of the instance.", + "enum": [ + "HEALTHY", + "UNHEALTHY" + ], + "enumDescriptions": [ + "", + "" + ], + "type": "string" + }, + "instance": { + "description": "URL of the instance resource.", + "type": "string" + }, + "ipAddress": { + "description": "For target pool based Network Load Balancing, it indicates the forwarding\nrule's IP address assigned to this instance. For other types of load\nbalancing, the field indicates VM internal ip.", + "type": "string" + }, + "ipv6Address": { + "type": "string" + }, + "ipv6HealthState": { + "description": "Health state of the IPv6 address of the instance.", + "enum": [ + "HEALTHY", + "UNHEALTHY" + ], + "enumDescriptions": [ + "", + "" + ], + "type": "string" + }, + "port": { + "description": "The named port of the instance group, not necessarily the port that is\nhealth-checked.", + "format": "int32", + "type": "integer" + }, + "weight": { + "type": "string" + }, + "weightError": { + "enum": [ + "INVALID_WEIGHT", + "MISSING_WEIGHT", + "UNAVAILABLE_WEIGHT", + "WEIGHT_NONE" + ], + "enumDescriptions": [ + "The response to a Health Check probe had the HTTP response header field\nX-Load-Balancing-Endpoint-Weight, but its content was invalid (i.e., not\na non-negative single-precision floating-point number in decimal string\nrepresentation).", + "The response to a Health Check probe did not have the HTTP response\nheader field X-Load-Balancing-Endpoint-Weight.", + "This is the value when the accompanied health status is either TIMEOUT\n(i.e.,the Health Check probe was not able to get a response in time) or\nUNKNOWN. For the latter, it should be typically because there has not\nbeen sufficient time to parse and report the weight for a new backend\n(which is with 0.0.0.0 ip address). However, it can be also due to an\noutage case for which the health status is explicitly reset to UNKNOWN.", + "This is the default value when WeightReportMode is DISABLE,\nand is also the initial value when WeightReportMode has just updated to\nENABLE or DRY_RUN and there has not been\nsufficient time to parse and report the backend weight." + ], + "type": "string" + } + }, + "type": "object" + }, + "HealthStatusForNetworkEndpoint": { + "id": "HealthStatusForNetworkEndpoint", + "properties": { + "backendService": { + "$ref": "BackendServiceReference", + "description": "URL of the backend service associated with the health state of the network\nendpoint." + }, + "forwardingRule": { + "$ref": "ForwardingRuleReference", + "description": "URL of the forwarding rule associated with the health state of the network\nendpoint." + }, + "healthCheck": { + "$ref": "HealthCheckReference", + "description": "URL of the health check associated with the health state of the network\nendpoint." + }, + "healthCheckService": { + "$ref": "HealthCheckServiceReference", + "description": "URL of the health check service associated with the health state of the\nnetwork endpoint." + }, + "healthState": { + "description": "Health state of the network endpoint determined based on the health checks\nconfigured.", + "enum": [ + "DRAINING", + "HEALTHY", + "UNHEALTHY", + "UNKNOWN" + ], + "enumDescriptions": [ + "Endpoint is being drained.", + "Endpoint is healthy.", + "Endpoint is unhealthy.", + "Health status of the endpoint is unknown." + ], + "type": "string" + }, + "ipv6HealthState": { + "description": "Health state of the ipv6 network endpoint determined based on the health\nchecks configured.", + "enum": [ + "DRAINING", + "HEALTHY", + "UNHEALTHY", + "UNKNOWN" + ], + "enumDescriptions": [ + "Endpoint is being drained.", + "Endpoint is healthy.", + "Endpoint is unhealthy.", + "Health status of the endpoint is unknown." + ], + "type": "string" + } + }, + "type": "object" + }, + "Help": { + "description": "Provides links to documentation or for performing an out of band action.\n\nFor example, if a quota check failed with an error indicating the calling\nproject hasn't enabled the accessed service, this can contain a URL pointing\ndirectly to the right place in the developer console to flip the bit.", + "id": "Help", + "properties": { + "links": { + "description": "URL(s) pointing to additional information on handling the current error.", + "items": { + "$ref": "HelpLink" + }, + "type": "array" + } + }, + "type": "object" + }, + "HelpLink": { + "description": "Describes a URL link.", + "id": "HelpLink", + "properties": { + "description": { + "description": "Describes what the link offers.", + "type": "string" + }, + "url": { + "description": "The URL of the link.", + "type": "string" + } + }, + "type": "object" + }, + "HostRule": { + "description": "UrlMaps\nA host-matching rule for a URL. If matched, will use the namedPathMatcher to select the BackendService.", + "id": "HostRule", + "properties": { + "description": { + "description": "An optional description of this resource. Provide this property when you\ncreate the resource.", + "type": "string" + }, + "hosts": { + "description": "The list of host patterns to match. They must be valid hostnames with\noptional port numbers in the format host:port.* matches any string of ([a-z0-9-.]*). In\nthat case, * must be the first character, and if followed by\nanything, the immediate following character must be either -\nor ..\n\n* based matching is not supported when the URL map is bound\nto a target gRPC proxy that has the validateForProxyless field\nset to true.", + "items": { + "type": "string" + }, + "type": "array" + }, + "pathMatcher": { + "description": "The name of the PathMatcher to use to match the path portion\nof the URL if the hostRule matches the URL's host portion.", + "type": "string" + } + }, + "type": "object" + }, + "HttpFaultAbort": { + "description": "Specification for how requests are aborted as part of fault injection.", + "id": "HttpFaultAbort", + "properties": { + "httpStatus": { + "description": "The HTTP status code used to abort the request.\n\nThe value must be from 200 to 599 inclusive.\n\nFor gRPC protocol, the gRPC status code is mapped to HTTP status code\naccording to this \nmapping table. HTTP status 200 is mapped to gRPC status\nUNKNOWN. Injecting an OK status is currently not supported by\nTraffic Director.", + "format": "uint32", + "type": "integer" + }, + "percentage": { + "description": "The percentage of traffic for connections, operations, or requests\nthat is aborted as part of fault injection.\n\nThe value must be from 0.0 to 100.0 inclusive.", + "format": "double", + "type": "number" + } + }, + "type": "object" + }, + "HttpFaultDelay": { + "description": "Specifies the delay introduced by the load balancer before forwarding the\nrequest to the backend service as part of fault injection.", + "id": "HttpFaultDelay", + "properties": { + "fixedDelay": { + "$ref": "Duration", + "description": "Specifies the value of the fixed delay interval." + }, + "percentage": { + "description": "The percentage of traffic for connections, operations, or requests for\nwhich a delay is introduced as part of fault injection.\n\nThe value must be from 0.0 to 100.0 inclusive.", + "format": "double", + "type": "number" + } + }, + "type": "object" + }, + "HttpFaultInjection": { + "description": "The specification for fault injection introduced into traffic to test\nthe resiliency of clients to backend service failure. As part of fault\ninjection, when clients send requests to a backend service, delays can be\nintroduced by the load balancer on a percentage of requests before sending\nthose request to the backend service. Similarly requests from clients can be\naborted by the load balancer for a percentage of requests.", + "id": "HttpFaultInjection", + "properties": { + "abort": { + "$ref": "HttpFaultAbort", + "description": "The specification for how client requests are aborted as part of fault\ninjection." + }, + "delay": { + "$ref": "HttpFaultDelay", + "description": "The specification for how client requests are delayed as part of fault\ninjection, before being sent to a backend service." + } + }, + "type": "object" + }, + "HttpHeaderAction": { + "description": "The request and response header transformations that take effect before\nthe request is passed along to the selected backendService.", + "id": "HttpHeaderAction", + "properties": { + "requestHeadersToAdd": { + "description": "Headers to add to a matching request before forwarding the request to thebackendService.", + "items": { + "$ref": "HttpHeaderOption" + }, + "type": "array" + }, + "requestHeadersToRemove": { + "description": "A list of header names for headers that need to be removed from the\nrequest before forwarding the request to the backendService.", + "items": { + "type": "string" + }, + "type": "array" + }, + "responseHeadersToAdd": { + "description": "Headers to add the response before sending the response back to the\nclient.", + "items": { + "$ref": "HttpHeaderOption" + }, + "type": "array" + }, + "responseHeadersToRemove": { + "description": "A list of header names for headers that need to be removed from the\nresponse before sending the response back to the client.", + "items": { + "type": "string" + }, + "type": "array" } }, "type": "object" }, - "AutoscalerList": { - "description": "Contains a list of Autoscaler resources.", - "id": "AutoscalerList", + "HttpHeaderMatch": { + "description": "matchRule criteria for request header matches.", + "id": "HttpHeaderMatch", "properties": { - "id": { - "description": "[Output Only] Unique identifier for the resource; defined by the server.", + "exactMatch": { + "description": "The value should exactly match contents of exactMatch.\n\nOnly one of exactMatch, prefixMatch,suffixMatch, regexMatch,presentMatch or rangeMatch must be set.", "type": "string" }, - "items": { - "description": "A list of Autoscaler resources.", - "items": { - "$ref": "Autoscaler" - }, - "type": "array" + "headerName": { + "description": "The name of the HTTP header to match.\n\nFor matching against the HTTP request's authority, use a headerMatch\nwith the header name \":authority\".\n\nFor matching a request's method, use the headerName \":method\".\n\nWhen the URL map is bound to a target gRPC proxy that has\nthe validateForProxyless field set to true, only\nnon-binary\nuser-specified custom metadata and the `content-type` header are supported.\nThe following transport-level headers cannot be used in header matching\nrules:\n`:authority`, `:method`, `:path`, `:scheme`, `user-agent`,\n`accept-encoding`, `content-encoding`, `grpc-accept-encoding`,\n`grpc-encoding`, `grpc-previous-rpc-attempts`, `grpc-tags-bin`,\n`grpc-timeout` and `grpc-trace-bin`.", + "type": "string" }, - "kind": { - "default": "compute#autoscalerList", - "description": "[Output Only] Type of resource. Always compute#autoscalerList for lists of autoscalers.", + "invertMatch": { + "description": "If set to false, the headerMatch is considered a\nmatch if the preceding match criteria are met. If set to true,\nthe headerMatch is considered a match if the preceding\nmatch criteria are NOT met.\n\nThe default setting is false.", + "type": "boolean" + }, + "prefixMatch": { + "description": "The value of the header must start with the contents ofprefixMatch.\n\nOnly one of exactMatch, prefixMatch,suffixMatch, regexMatch,presentMatch or rangeMatch must be set.", "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.", + "presentMatch": { + "description": "A header with the contents of headerName must exist. The\nmatch takes place whether or not the request's header has a value.\n\nOnly one of exactMatch, prefixMatch,suffixMatch, regexMatch,presentMatch or rangeMatch must be set.", + "type": "boolean" + }, + "rangeMatch": { + "$ref": "Int64RangeMatch", + "description": "The header value must be an integer and its value must be in the range\nspecified in rangeMatch. If the header does not contain an\ninteger, number or is empty, the match fails.\n\nFor example for a range [-5, 0]\n \n \n - -3 will match.\n - 0 will not match.\n - 0.25 will not match.\n - -3someString will not match.\n\nOnly one of exactMatch, prefixMatch,suffixMatch, regexMatch,presentMatch or rangeMatch must be set.\n\nrangeMatch is not supported for load balancers\nthat have loadBalancingScheme set to EXTERNAL." + }, + "regexMatch": { + "description": "The value of the header must match the regular expression specified inregexMatch.\nFor more information about regular expression syntax, see Syntax.\n\nFor matching against a port specified in the HTTP request, use a\nheaderMatch with headerName set to PORT and a regular expression that\nsatisfies the RFC2616 Host header's port specifier.\n\nOnly one of exactMatch, prefixMatch,suffixMatch, regexMatch,presentMatch or rangeMatch must be set.\n\nRegular expressions can only be used when the loadBalancingScheme is\nset to INTERNAL_SELF_MANAGED, EXTERNAL_MANAGED\n(regional scope) or INTERNAL_MANAGED.", "type": "string" }, - "selfLink": { - "description": "[Output Only] Server-defined URL for this resource.", + "suffixMatch": { + "description": "The value of the header must end with the contents ofsuffixMatch.\n\nOnly one of exactMatch, prefixMatch,suffixMatch, regexMatch,presentMatch or rangeMatch must be set.", + "type": "string" + } + }, + "type": "object" + }, + "HttpHeaderOption": { + "description": "Specification determining how headers are added to requests or responses.", + "id": "HttpHeaderOption", + "properties": { + "headerName": { + "description": "The name of the header.", "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", - "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", - "LARGE_DEPLOYMENT_WARNING", - "LIST_OVERHEAD_QUOTA_EXCEED", - "MISSING_TYPE_DEPENDENCY", - "NEXT_HOP_ADDRESS_NOT_ASSIGNED", - "NEXT_HOP_CANNOT_IP_FORWARD", - "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", - "NEXT_HOP_INSTANCE_NOT_FOUND", - "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", - "NEXT_HOP_NOT_RUNNING", - "NOT_CRITICAL_ERROR", - "NO_RESULTS_ON_PAGE", - "PARTIAL_SUCCESS", - "REQUIRED_TOS_AGREEMENT", - "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", - "RESOURCE_NOT_DELETED", - "SCHEMA_VALIDATION_IGNORED", - "SINGLE_INSTANCE_PROPERTY_TEMPLATE", - "UNDECLARED_PROPERTIES", - "UNREACHABLE" - ], - "enumDeprecated": [ - false, - false, - false, - false, - false, - false, - true, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false - ], - "enumDescriptions": [ - "Warning about failed cleanup of transient changes made by a failed operation.", - "A link to a deprecated resource was created.", - "When deploying and at least one of the resources has a type marked as deprecated", - "The user created a boot disk that is larger than image size.", - "When deploying and at least one of the resources has a type marked as experimental", - "Warning that is present in an external api call", - "Warning that value of a field has been overridden. Deprecated unused field.", - "The operation involved use of an injected kernel, which is deprecated.", - "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", - "When deploying a deployment with a exceedingly large number of resources", - "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", - "A resource depends on a missing type", - "The route's nextHopIp address is not assigned to an instance on the network.", - "The route's next hop instance cannot ip forward.", - "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", - "The route's nextHopInstance URL refers to an instance that does not exist.", - "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", - "The route's next hop instance does not have a status of RUNNING.", - "Error which is not critical. We decided to continue the process despite the mentioned error.", - "No results are present on a particular list page.", - "Success is reported, but some results may be missing due to errors", - "The user attempted to use a resource that requires a TOS they have not accepted.", - "Warning that a resource is in use.", - "One or more of the resources set to auto-delete could not be deleted because they were in use.", - "When a resource schema validation is ignored.", - "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", - "When undeclared properties in the schema are present", - "A given scope cannot be reached." - ], - "type": "string" - }, - "data": { - "description": "[Output Only] Metadata about this warning in key: value format. For example: \"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" + "headerValue": { + "description": "The value of the header to add.", + "type": "string" + }, + "replace": { + "description": "If false, headerValue is appended to any values\nthat already\nexist for the header. If true, headerValue is set for the\nheader, discarding any values that were set for that header.\n\nThe default value is true,\nunless a variable is present in headerValue,\nin which case the default value is false.\n.", + "type": "boolean" } }, "type": "object" }, - "AutoscalerStatusDetails": { - "id": "AutoscalerStatusDetails", + "HttpHealthCheck": { + "description": "Represents a legacy HTTP Health Check resource.\n\nLegacy HTTP health checks are now only required by target pool-based network\nload balancers. For all other load balancers, including backend service-based\nnetwork load balancers, and for managed instance group auto-healing, you must\nuse modern (non-legacy) health checks.\n\nFor more information, seeHealth checks\noverview.", + "id": "HttpHealthCheck", "properties": { - "message": { - "description": "The status message.", + "checkIntervalSec": { + "description": "How often (in seconds) to send a health check. The default value is5 seconds.", + "format": "int32", + "type": "integer" + }, + "creationTimestamp": { + "description": "[Output Only] Creation timestamp inRFC3339\ntext format.", "type": "string" }, - "type": { - "description": "The type of error, warning, or notice returned. Current set of possible values: - ALL_INSTANCES_UNHEALTHY (WARNING): All instances in the instance group are unhealthy (not in RUNNING state). - BACKEND_SERVICE_DOES_NOT_EXIST (ERROR): There is no backend service attached to the instance group. - CAPPED_AT_MAX_NUM_REPLICAS (WARNING): Autoscaler recommends a size greater than maxNumReplicas. - CUSTOM_METRIC_DATA_POINTS_TOO_SPARSE (WARNING): The custom metric samples are not exported often enough to be a credible base for autoscaling. - CUSTOM_METRIC_INVALID (ERROR): The custom metric that was specified does not exist or does not have the necessary labels. - MIN_EQUALS_MAX (WARNING): The minNumReplicas is equal to maxNumReplicas. This means the autoscaler cannot add or remove instances from the instance group. - MISSING_CUSTOM_METRIC_DATA_POINTS (WARNING): The autoscaler did not receive any data from the custom metric configured for autoscaling. - MISSING_LOAD_BALANCING_DATA_POINTS (WARNING): The autoscaler is configured to scale based on a load balancing signal but the instance group has not received any requests from the load balancer. - MODE_OFF (WARNING): Autoscaling is turned off. The number of instances in the group won't change automatically. The autoscaling configuration is preserved. - MODE_ONLY_UP (WARNING): Autoscaling is in the \"Autoscale only out\" mode. The autoscaler can add instances but not remove any. - MORE_THAN_ONE_BACKEND_SERVICE (ERROR): The instance group cannot be autoscaled because it has more than one backend service attached to it. - NOT_ENOUGH_QUOTA_AVAILABLE (ERROR): There is insufficient quota for the necessary resources, such as CPU or number of instances. - REGION_RESOURCE_STOCKOUT (ERROR): Shown only for regional autoscalers: there is a resource stockout in the chosen region. - SCALING_TARGET_DOES_NOT_EXIST (ERROR): The target to be scaled does not exist. - UNSUPPORTED_MAX_RATE_LOAD_BALANCING_CONFIGURATION (ERROR): Autoscaling does not work with an HTTP/S load balancer that has been configured for maxRate. - ZONE_RESOURCE_STOCKOUT (ERROR): For zonal autoscalers: there is a resource stockout in the chosen zone. For regional autoscalers: in at least one of the zones you're using there is a resource stockout. New values might be added in the future. Some of the values might not be available in all API versions.", - "enum": [ - "ALL_INSTANCES_UNHEALTHY", - "BACKEND_SERVICE_DOES_NOT_EXIST", - "CAPPED_AT_MAX_NUM_REPLICAS", - "CUSTOM_METRIC_DATA_POINTS_TOO_SPARSE", - "CUSTOM_METRIC_INVALID", - "MIN_EQUALS_MAX", - "MISSING_CUSTOM_METRIC_DATA_POINTS", - "MISSING_LOAD_BALANCING_DATA_POINTS", - "MODE_OFF", - "MODE_ONLY_SCALE_OUT", - "MODE_ONLY_UP", - "MORE_THAN_ONE_BACKEND_SERVICE", - "NOT_ENOUGH_QUOTA_AVAILABLE", - "REGION_RESOURCE_STOCKOUT", - "SCALING_TARGET_DOES_NOT_EXIST", - "SCHEDULED_INSTANCES_GREATER_THAN_AUTOSCALER_MAX", - "SCHEDULED_INSTANCES_LESS_THAN_AUTOSCALER_MIN", - "UNKNOWN", - "UNSUPPORTED_MAX_RATE_LOAD_BALANCING_CONFIGURATION", - "ZONE_RESOURCE_STOCKOUT" - ], - "enumDescriptions": [ - "All instances in the instance group are unhealthy (not in RUNNING state).", - "There is no backend service attached to the instance group.", - "Autoscaler recommends a size greater than maxNumReplicas.", - "The custom metric samples are not exported often enough to be a credible base for autoscaling.", - "The custom metric that was specified does not exist or does not have the necessary labels.", - "The minNumReplicas is equal to maxNumReplicas. This means the autoscaler cannot add or remove instances from the instance group.", - "The autoscaler did not receive any data from the custom metric configured for autoscaling.", - "The autoscaler is configured to scale based on a load balancing signal but the instance group has not received any requests from the load balancer.", - "Autoscaling is turned off. The number of instances in the group won't change automatically. The autoscaling configuration is preserved.", - "Autoscaling is in the \"Autoscale only scale out\" mode. Instances in the group will be only added.", - "Autoscaling is in the \"Autoscale only out\" mode. Instances in the group will be only added.", - "The instance group cannot be autoscaled because it has more than one backend service attached to it.", - "There is insufficient quota for the necessary resources, such as CPU or number of instances.", - "Showed only for regional autoscalers: there is a resource stockout in the chosen region.", - "The target to be scaled does not exist.", - "For some scaling schedules minRequiredReplicas is greater than maxNumReplicas. Autoscaler always recommends at most maxNumReplicas instances.", - "For some scaling schedules minRequiredReplicas is less than minNumReplicas. Autoscaler always recommends at least minNumReplicas instances.", - "", - "Autoscaling does not work with an HTTP/S load balancer that has been configured for maxRate.", - "For zonal autoscalers: there is a resource stockout in the chosen zone. For regional autoscalers: in at least one of the zones you're using there is a resource stockout." - ], + "description": { + "description": "An optional description of this resource. Provide this property when you\ncreate the resource.", + "type": "string" + }, + "healthyThreshold": { + "description": "A so-far unhealthy instance will be marked healthy after this\nmany consecutive successes. The default value is 2.", + "format": "int32", + "type": "integer" + }, + "host": { + "description": "The value of the host header in the HTTP health check request. If left\nempty (default value), the public IP on behalf of which this health check\nis performed will be used.", "type": "string" + }, + "id": { + "description": "[Output Only] The unique identifier for the resource. This identifier is\ndefined by the server.", + "format": "uint64", + "type": "string" + }, + "kind": { + "default": "compute#httpHealthCheck", + "description": "Output only. [Output Only] Type of the resource. Alwayscompute#httpHealthCheck for HTTP health checks.", + "readOnly": true, + "type": "string" + }, + "name": { + "description": "Name of the resource. Provided by the client when the resource is created.\nThe name must be 1-63 characters long, and comply withRFC1035.\nSpecifically, the name must be 1-63 characters long and match the regular\nexpression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first\ncharacter must be a lowercase letter, and all following characters must\nbe a dash, lowercase letter, or digit, except the last character, which\ncannot be a dash.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "type": "string" + }, + "port": { + "description": "The TCP port number for the HTTP health check request. The default value is80.", + "format": "int32", + "type": "integer" + }, + "requestPath": { + "description": "The request path of the HTTP health check request. The default value is/. This field does not support query\nparameters. Must comply withRFC3986.", + "type": "string" + }, + "selfLink": { + "description": "[Output Only] Server-defined URL for the resource.", + "type": "string" + }, + "timeoutSec": { + "description": "How long (in seconds) to wait before claiming failure. The default value is5 seconds. It is invalid for timeoutSec to have\ngreater value than checkIntervalSec.", + "format": "int32", + "type": "integer" + }, + "unhealthyThreshold": { + "description": "A so-far healthy instance will be marked unhealthy after this\nmany consecutive failures. The default value is 2.", + "format": "int32", + "type": "integer" } }, "type": "object" }, - "AutoscalersScopedList": { - "id": "AutoscalersScopedList", + "HttpHealthCheckList": { + "description": "Contains a list of HttpHealthCheck resources.", + "id": "HttpHealthCheckList", "properties": { - "autoscalers": { - "description": "[Output Only] A list of autoscalers contained in this scope.", + "id": { + "description": "[Output Only] Unique identifier for the resource; defined by the server.", + "type": "string" + }, + "items": { + "description": "A list of HttpHealthCheck resources.", "items": { - "$ref": "Autoscaler" + "$ref": "HttpHealthCheck" }, "type": "array" }, + "kind": { + "default": "compute#httpHealthCheckList", + "description": "Output only. Type of resource.", + "readOnly": true, + "type": "string" + }, + "nextPageToken": { + "description": "[Output Only] This token allows you to get the next page of results for\nlist requests. If the number of results is larger thanmaxResults, use the nextPageToken as a value for\nthe query parameter pageToken in the next list request.\nSubsequent list requests will have their own nextPageToken to\ncontinue paging through the results.", + "type": "string" + }, + "selfLink": { + "description": "Output only. [Output Only] Server-defined URL for this resource.", + "readOnly": true, + "type": "string" + }, "warning": { - "description": "[Output Only] Informational warning which replaces the list of autoscalers when the list is empty.", + "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.", + "description": "[Output Only] A warning code, if applicable. For example, Compute\nEngine returns NO_RESULTS_ON_PAGE if there\nare no results in the response.", "enum": [ "CLEANUP_FAILED", "DEPRECATED_RESOURCE_USED", @@ -39695,6 +65089,7 @@ "NOT_CRITICAL_ERROR", "NO_RESULTS_ON_PAGE", "PARTIAL_SUCCESS", + "QUOTA_INFO_UNAVAILABLE", "REQUIRED_TOS_AGREEMENT", "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", "RESOURCE_NOT_DELETED", @@ -39731,46 +65126,48 @@ false, false, false, + false, false ], "enumDescriptions": [ - "Warning about failed cleanup of transient changes made by a failed operation.", + "Warning about failed cleanup of transient changes made by a failed\noperation.", "A link to a deprecated resource was created.", - "When deploying and at least one of the resources has a type marked as deprecated", + "When deploying and at least one of the resources has a type marked as\ndeprecated", "The user created a boot disk that is larger than image size.", - "When deploying and at least one of the resources has a type marked as experimental", + "When deploying and at least one of the resources has a type marked as\nexperimental", "Warning that is present in an external api call", - "Warning that value of a field has been overridden. Deprecated unused field.", + "Warning that value of a field has been overridden.\nDeprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", - "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is\nnot of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", - "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", + "Resource can't be retrieved due to list overhead quota exceed\nwhich captures the amount of resources filtered out by\nuser-defined list filter.", "A resource depends on a missing type", - "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's nextHopIp address is not assigned to an instance on the\nnetwork.", "The route's next hop instance cannot ip forward.", - "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not have an\nipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", - "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that is not on the\nsame network as the route.", "The route's next hop instance does not have a status of RUNNING.", - "Error which is not critical. We decided to continue the process despite the mentioned error.", + "Error which is not critical. We decided to continue the process despite\nthe mentioned error.", "No results are present on a particular list page.", "Success is reported, but some results may be missing due to errors", - "The user attempted to use a resource that requires a TOS they have not accepted.", + "Quota information is not available to client requests (e.g:\nregions.list).", + "The user attempted to use a resource that requires a TOS they have not\naccepted.", "Warning that a resource is in use.", - "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "One or more of the resources set to auto-delete could not be deleted\nbecause they were in use.", "When a resource schema validation is ignored.", - "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", + "Instance template used in instance group manager is valid as such, but\nits application does not make a lot of sense, because it allows only\nsingle instance in instance group.", "When undeclared properties in the schema are present", "A given scope cannot be reached." ], "type": "string" }, "data": { - "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", + "description": "[Output Only] Metadata about this warning in key:\nvalue format. For example:\n\n\"data\": [\n {\n \"key\": \"scope\",\n \"value\": \"zones/us-east1-d\"\n }", "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).", + "description": "[Output Only] A key that provides more detail on the warning being\nreturned. For example, for warnings where there are no results in a list\nrequest for a particular zone, this key might be scope and\nthe key value might be the zone name. Other examples might be a key\nindicating a deprecated resource and a suggested replacement, or a\nwarning about invalid network settings (for example, if an instance\nattempts to perform IP forwarding but is not enabled for IP forwarding).", "type": "string" }, "value": { @@ -39792,512 +65189,336 @@ }, "type": "object" }, - "AutoscalingPolicy": { - "description": "Cloud Autoscaler policy.", - "id": "AutoscalingPolicy", - "properties": { - "coolDownPeriodSec": { - "description": "The number of seconds that your application takes to initialize on a VM instance. This is referred to as the [initialization period](/compute/docs/autoscaler#cool_down_period). Specifying an accurate initialization period improves autoscaler decisions. For example, when scaling out, the autoscaler ignores data from VMs that are still initializing because those VMs might not yet represent normal usage of your application. The default initialization period is 60 seconds. Initialization periods might vary because of numerous factors. We recommend that you test how long your application takes to initialize. To do this, create a VM and time your application's startup process.", - "format": "int32", - "type": "integer" - }, - "cpuUtilization": { - "$ref": "AutoscalingPolicyCpuUtilization", - "description": "Defines the CPU utilization policy that allows the autoscaler to scale based on the average CPU utilization of a managed instance group." - }, - "customMetricUtilizations": { - "description": "Configuration parameters of autoscaling based on a custom metric.", - "items": { - "$ref": "AutoscalingPolicyCustomMetricUtilization" - }, - "type": "array" - }, - "loadBalancingUtilization": { - "$ref": "AutoscalingPolicyLoadBalancingUtilization", - "description": "Configuration parameters of autoscaling based on load balancer." - }, - "maxNumReplicas": { - "description": "The maximum number of instances that the autoscaler can scale out to. This is required when creating or updating an autoscaler. The maximum number of replicas must not be lower than minimal number of replicas.", - "format": "int32", - "type": "integer" - }, - "minNumReplicas": { - "description": "The minimum number of replicas that the autoscaler can scale in to. This cannot be less than 0. If not provided, autoscaler chooses a default value depending on maximum number of instances allowed.", - "format": "int32", - "type": "integer" - }, - "mode": { - "description": "Defines the operating mode for this policy. The following modes are available: - OFF: Disables the autoscaler but maintains its configuration. - ONLY_SCALE_OUT: Restricts the autoscaler to add VM instances only. - ON: Enables all autoscaler activities according to its policy. For more information, see \"Turning off or restricting an autoscaler\"", - "enum": [ - "OFF", - "ON", - "ONLY_SCALE_OUT", - "ONLY_UP" - ], - "enumDescriptions": [ - "Do not automatically scale the MIG in or out. The recommended_size field contains the size of MIG that would be set if the actuation mode was enabled.", - "Automatically scale the MIG in and out according to the policy.", - "Automatically create VMs according to the policy, but do not scale the MIG in.", - "Automatically create VMs according to the policy, but do not scale the MIG in." - ], - "type": "string" - }, - "scaleInControl": { - "$ref": "AutoscalingPolicyScaleInControl" - }, - "scalingSchedules": { - "additionalProperties": { - "$ref": "AutoscalingPolicyScalingSchedule" - }, - "description": "Scaling schedules defined for an autoscaler. Multiple schedules can be set on an autoscaler, and they can overlap. During overlapping periods the greatest min_required_replicas of all scaling schedules is applied. Up to 128 scaling schedules are allowed.", - "type": "object" - } - }, - "type": "object" - }, - "AutoscalingPolicyCpuUtilization": { - "description": "CPU utilization policy.", - "id": "AutoscalingPolicyCpuUtilization", - "properties": { - "predictiveMethod": { - "description": "Indicates whether predictive autoscaling based on CPU metric is enabled. Valid values are: * NONE (default). No predictive method is used. The autoscaler scales the group to meet current demand based on real-time metrics. * OPTIMIZE_AVAILABILITY. Predictive autoscaling improves availability by monitoring daily and weekly load patterns and scaling out ahead of anticipated demand.", - "enum": [ - "NONE", - "OPTIMIZE_AVAILABILITY" - ], - "enumDescriptions": [ - "No predictive method is used. The autoscaler scales the group to meet current demand based on real-time metrics", - "Predictive autoscaling improves availability by monitoring daily and weekly load patterns and scaling out ahead of anticipated demand." - ], - "type": "string" - }, - "utilizationTarget": { - "description": "The target CPU utilization that the autoscaler maintains. Must be a float value in the range (0, 1]. If not specified, the default is 0.6. If the CPU level is below the target utilization, the autoscaler scales in the number of instances until it reaches the minimum number of instances you specified or until the average CPU of your instances reaches the target utilization. If the average CPU is above the target utilization, the autoscaler scales out until it reaches the maximum number of instances you specified or until the average utilization reaches the target utilization.", - "format": "double", - "type": "number" - } - }, - "type": "object" - }, - "AutoscalingPolicyCustomMetricUtilization": { - "description": "Custom utilization metric policy.", - "id": "AutoscalingPolicyCustomMetricUtilization", - "properties": { - "filter": { - "description": "A filter string, compatible with a Stackdriver Monitoring filter string for TimeSeries.list API call. This filter is used to select a specific TimeSeries for the purpose of autoscaling and to determine whether the metric is exporting per-instance or per-group data. For the filter to be valid for autoscaling purposes, the following rules apply: - You can only use the AND operator for joining selectors. - You can only use direct equality comparison operator (=) without any functions for each selector. - You can specify the metric in both the filter string and in the metric field. However, if specified in both places, the metric must be identical. - The monitored resource type determines what kind of values are expected for the metric. If it is a gce_instance, the autoscaler expects the metric to include a separate TimeSeries for each instance in a group. In such a case, you cannot filter on resource labels. If the resource type is any other value, the autoscaler expects this metric to contain values that apply to the entire autoscaled instance group and resource label filtering can be performed to point autoscaler at the correct TimeSeries to scale upon. This is called a *per-group metric* for the purpose of autoscaling. If not specified, the type defaults to gce_instance. Try to provide a filter that is selective enough to pick just one TimeSeries for the autoscaled group or for each of the instances (if you are using gce_instance resource type). If multiple TimeSeries are returned upon the query execution, the autoscaler will sum their respective values to obtain its scaling value.", - "type": "string" - }, - "metric": { - "description": "The identifier (type) of the Stackdriver Monitoring metric. The metric cannot have negative values. The metric must have a value type of INT64 or DOUBLE.", - "type": "string" - }, - "singleInstanceAssignment": { - "description": "If scaling is based on a per-group metric value that represents the total amount of work to be done or resource usage, set this value to an amount assigned for a single instance of the scaled group. Autoscaler keeps the number of instances proportional to the value of this metric. The metric itself does not change value due to group resizing. A good metric to use with the target is for example pubsub.googleapis.com/subscription/num_undelivered_messages or a custom metric exporting the total number of requests coming to your instances. A bad example would be a metric exporting an average or median latency, since this value can't include a chunk assignable to a single instance, it could be better used with utilization_target instead.", - "format": "double", - "type": "number" - }, - "utilizationTarget": { - "description": "The target value of the metric that autoscaler maintains. This must be a positive value. A utilization metric scales number of virtual machines handling requests to increase or decrease proportionally to the metric. For example, a good metric to use as a utilization_target is https://www.googleapis.com/compute/v1/instance/network/received_bytes_count. The autoscaler works to keep this value constant for each of the instances.", - "format": "double", - "type": "number" - }, - "utilizationTargetType": { - "description": "Defines how target utilization value is expressed for a Stackdriver Monitoring metric. Either GAUGE, DELTA_PER_SECOND, or DELTA_PER_MINUTE.", - "enum": [ - "DELTA_PER_MINUTE", - "DELTA_PER_SECOND", - "GAUGE" - ], - "enumDescriptions": [ - "Sets the utilization target value for a cumulative or delta metric, expressed as the rate of growth per minute.", - "Sets the utilization target value for a cumulative or delta metric, expressed as the rate of growth per second.", - "Sets the utilization target value for a gauge metric. The autoscaler will collect the average utilization of the virtual machines from the last couple of minutes, and compare the value to the utilization target value to perform autoscaling." - ], - "type": "string" - } - }, - "type": "object" - }, - "AutoscalingPolicyLoadBalancingUtilization": { - "description": "Configuration parameters of autoscaling based on load balancing.", - "id": "AutoscalingPolicyLoadBalancingUtilization", - "properties": { - "utilizationTarget": { - "description": "Fraction of backend capacity utilization (set in HTTP(S) load balancing configuration) that the autoscaler maintains. Must be a positive float value. If not defined, the default is 0.8.", - "format": "double", - "type": "number" - } - }, - "type": "object" - }, - "AutoscalingPolicyScaleInControl": { - "description": "Configuration that allows for slower scale in so that even if Autoscaler recommends an abrupt scale in of a MIG, it will be throttled as specified by the parameters below.", - "id": "AutoscalingPolicyScaleInControl", - "properties": { - "maxScaledInReplicas": { - "$ref": "FixedOrPercent", - "description": "Maximum allowed number (or %) of VMs that can be deducted from the peak recommendation during the window autoscaler looks at when computing recommendations. Possibly all these VMs can be deleted at once so user service needs to be prepared to lose that many VMs in one step." - }, - "timeWindowSec": { - "description": "How far back autoscaling looks when computing recommendations to include directives regarding slower scale in, as described above.", - "format": "int32", - "type": "integer" - } - }, - "type": "object" - }, - "AutoscalingPolicyScalingSchedule": { - "description": "Scaling based on user-defined schedule. The message describes a single scaling schedule. A scaling schedule changes the minimum number of VM instances an autoscaler can recommend, which can trigger scaling out.", - "id": "AutoscalingPolicyScalingSchedule", - "properties": { - "description": { - "description": "A description of a scaling schedule.", - "type": "string" - }, - "disabled": { - "description": "A boolean value that specifies whether a scaling schedule can influence autoscaler recommendations. If set to true, then a scaling schedule has no effect. This field is optional, and its value is false by default.", - "type": "boolean" - }, - "durationSec": { - "description": "The duration of time intervals, in seconds, for which this scaling schedule is to run. The minimum allowed value is 300. This field is required.", - "format": "int32", - "type": "integer" - }, - "minRequiredReplicas": { - "description": "The minimum number of VM instances that the autoscaler will recommend in time intervals starting according to schedule. This field is required.", - "format": "int32", - "type": "integer" - }, - "schedule": { - "description": "The start timestamps of time intervals when this scaling schedule is to provide a scaling signal. This field uses the extended cron format (with an optional year field). The expression can describe a single timestamp if the optional year is set, in which case the scaling schedule runs once. The schedule is interpreted with respect to time_zone. This field is required. Note: These timestamps only describe when autoscaler starts providing the scaling signal. The VMs need additional time to become serving.", - "type": "string" - }, - "timeZone": { - "description": "The time zone to use when interpreting the schedule. The value of this field must be a time zone name from the tz database: https://en.wikipedia.org/wiki/Tz_database. This field is assigned a default value of \"UTC\" if left empty.", - "type": "string" - } - }, - "type": "object" - }, - "Backend": { - "description": "Message containing information of one individual backend.", - "id": "Backend", + "HttpQueryParameterMatch": { + "description": "HttpRouteRuleMatch criteria for a request's query parameter.", + "id": "HttpQueryParameterMatch", "properties": { - "balancingMode": { - "description": "Specifies how to determine whether the backend of a load balancer can handle additional traffic or is fully loaded. For usage guidelines, see Connection balancing mode. Backends must use compatible balancing modes. For more information, see Supported balancing modes and target capacity settings and Restrictions and guidance for instance groups. Note: Currently, if you use the API to configure incompatible balancing modes, the configuration might be accepted even though it has no impact and is ignored. Specifically, Backend.maxUtilization is ignored when Backend.balancingMode is RATE. In the future, this incompatible combination will be rejected.", - "enum": [ - "CONNECTION", - "RATE", - "UTILIZATION" - ], - "enumDescriptions": [ - "Balance based on the number of simultaneous connections.", - "Balance based on requests per second (RPS).", - "Balance based on the backend utilization." - ], - "type": "string" - }, - "capacityScaler": { - "description": "A multiplier applied to the backend's target capacity of its balancing mode. The default value is 1, which means the group serves up to 100% of its configured capacity (depending on balancingMode). A setting of 0 means the group is completely drained, offering 0% of its available capacity. The valid ranges are 0.0 and [0.1,1.0]. You cannot configure a setting larger than 0 and smaller than 0.1. You cannot configure a setting of 0 when there is only one backend attached to the backend service. Not available with backends that don't support using a balancingMode. This includes backends such as global internet NEGs, regional serverless NEGs, and PSC NEGs.", - "format": "float", - "type": "number" - }, - "description": { - "description": "An optional description of this resource. Provide this property when you create the resource.", - "type": "string" - }, - "failover": { - "description": "This field designates whether this is a failover backend. More than one failover backend can be configured for a given BackendService.", - "type": "boolean" - }, - "group": { - "description": "The fully-qualified URL of an instance group or network endpoint group (NEG) resource. To determine what types of backends a load balancer supports, see the [Backend services overview](https://cloud.google.com/load-balancing/docs/backend-service#backends). You must use the *fully-qualified* URL (starting with https://www.googleapis.com/) to specify the instance group or NEG. Partial URLs are not supported.", + "exactMatch": { + "description": "The queryParameterMatch matches if the value of the\nparameter exactly matches the contents of exactMatch.\n\nOnly one of presentMatch, exactMatch, orregexMatch must be set.", "type": "string" }, - "maxConnections": { - "description": "Defines a target maximum number of simultaneous connections. For usage guidelines, see Connection balancing mode and Utilization balancing mode. Not available if the backend's balancingMode is RATE.", - "format": "int32", - "type": "integer" - }, - "maxConnectionsPerEndpoint": { - "description": "Defines a target maximum number of simultaneous connections. For usage guidelines, see Connection balancing mode and Utilization balancing mode. Not available if the backend's balancingMode is RATE.", - "format": "int32", - "type": "integer" - }, - "maxConnectionsPerInstance": { - "description": "Defines a target maximum number of simultaneous connections. For usage guidelines, see Connection balancing mode and Utilization balancing mode. Not available if the backend's balancingMode is RATE.", - "format": "int32", - "type": "integer" - }, - "maxRate": { - "description": "Defines a maximum number of HTTP requests per second (RPS). For usage guidelines, see Rate balancing mode and Utilization balancing mode. Not available if the backend's balancingMode is CONNECTION.", - "format": "int32", - "type": "integer" - }, - "maxRatePerEndpoint": { - "description": "Defines a maximum target for requests per second (RPS). For usage guidelines, see Rate balancing mode and Utilization balancing mode. Not available if the backend's balancingMode is CONNECTION.", - "format": "float", - "type": "number" - }, - "maxRatePerInstance": { - "description": "Defines a maximum target for requests per second (RPS). For usage guidelines, see Rate balancing mode and Utilization balancing mode. Not available if the backend's balancingMode is CONNECTION.", - "format": "float", - "type": "number" - }, - "maxUtilization": { - "description": "Optional parameter to define a target capacity for the UTILIZATION balancing mode. The valid range is [0.0, 1.0]. For usage guidelines, see Utilization balancing mode.", - "format": "float", - "type": "number" - }, - "preference": { - "description": "This field indicates whether this backend should be fully utilized before sending traffic to backends with default preference. The possible values are: - PREFERRED: Backends with this preference level will be filled up to their capacity limits first, based on RTT. - DEFAULT: If preferred backends don't have enough capacity, backends in this layer would be used and traffic would be assigned based on the load balancing algorithm you use. This is the default ", - "enum": [ - "DEFAULT", - "PREFERENCE_UNSPECIFIED", - "PREFERRED" - ], - "enumDescriptions": [ - "No preference.", - "If preference is unspecified, we set it to the DEFAULT value", - "Traffic will be sent to this backend first." - ], + "name": { + "description": "The name of the query parameter to match. The query parameter must exist in\nthe request, in the absence of which the request match fails.", + "type": "string" + }, + "presentMatch": { + "description": "Specifies that the queryParameterMatch matches if the\nrequest contains the query parameter, irrespective of whether the\nparameter has a value or not.\n\nOnly one of presentMatch, exactMatch, orregexMatch must be set.", + "type": "boolean" + }, + "regexMatch": { + "description": "The queryParameterMatch matches if the value of the\nparameter matches the regular expression specified byregexMatch. For\nmore information about regular expression syntax, see Syntax.\n\nOnly one of presentMatch, exactMatch, orregexMatch must be set.\n\nRegular expressions can only be used when the loadBalancingScheme is\nset to INTERNAL_SELF_MANAGED, EXTERNAL_MANAGED\n(regional scope) or INTERNAL_MANAGED.", "type": "string" } }, "type": "object" }, - "BackendBucket": { - "description": "Represents a Cloud Storage Bucket resource. This Cloud Storage bucket resource is referenced by a URL map of a load balancer. For more information, read Backend Buckets.", - "id": "BackendBucket", + "HttpRedirectAction": { + "description": "Specifies settings for an HTTP redirect.", + "id": "HttpRedirectAction", "properties": { - "bucketName": { - "description": "Cloud Storage bucket name.", + "hostRedirect": { + "description": "The host that is used in the redirect response instead of the one that\nwas supplied in the request.\n\nThe value must be from 1 to 255\ncharacters.", "type": "string" }, - "cdnPolicy": { - "$ref": "BackendBucketCdnPolicy", - "description": "Cloud CDN configuration for this BackendBucket." + "httpsRedirect": { + "description": "If set to true, the URL scheme in the redirected request is\nset to HTTPS.\nIf set to false, the URL scheme of the redirected request\nremains the same as that of the request.\n\nThis must only be set for URL maps used inTargetHttpProxys. Setting this true forTargetHttpsProxy is not permitted.\n\nThe default is set to false.", + "type": "boolean" }, - "compressionMode": { - "description": "Compress text responses using Brotli or gzip compression, based on the client's Accept-Encoding header.", + "pathRedirect": { + "description": "The path that is used in the redirect response instead of the one\nthat was supplied in the request.\n\npathRedirect cannot be supplied together withprefixRedirect. Supply one alone or neither. If neither is\nsupplied, the path of the original request is used for the redirect.\n\nThe value must be from 1 to 1024 characters.", + "type": "string" + }, + "prefixRedirect": { + "description": "The prefix that replaces the prefixMatch specified in\nthe HttpRouteRuleMatch, retaining the remaining portion\nof the URL before redirecting the request.\n\nprefixRedirect cannot be supplied together withpathRedirect. Supply one alone or neither. If neither is\nsupplied, the path of the original request is used for the redirect.\n\nThe value must be from 1 to 1024 characters.", + "type": "string" + }, + "redirectResponseCode": { + "description": "The HTTP Status code to use for this RedirectAction.\n\nSupported values are:\n \n - MOVED_PERMANENTLY_DEFAULT, which is the default value and corresponds\n to 301.\n - FOUND, which corresponds to 302.\n - SEE_OTHER which corresponds to 303.\n - TEMPORARY_REDIRECT, which corresponds to 307. In this case, the request\n method is retained.\n - PERMANENT_REDIRECT, which corresponds to 308. In this case, the request\n method is retained.", "enum": [ - "AUTOMATIC", - "DISABLED" + "FOUND", + "MOVED_PERMANENTLY_DEFAULT", + "PERMANENT_REDIRECT", + "SEE_OTHER", + "TEMPORARY_REDIRECT" ], "enumDescriptions": [ - "Automatically uses the best compression based on the Accept-Encoding header sent by the client.", - "Disables compression. Existing compressed responses cached by Cloud CDN will not be served to clients." + "Http Status Code 302 - Found.", + "Http Status Code 301 - Moved Permanently.", + "Http Status Code 308 - Permanent Redirect maintaining HTTP method.", + "Http Status Code 303 - See Other.", + "Http Status Code 307 - Temporary Redirect maintaining HTTP method." ], "type": "string" }, - "creationTimestamp": { - "description": "[Output Only] Creation timestamp in RFC3339 text format.", - "type": "string" + "stripQuery": { + "description": "If set to true, any accompanying query portion of the original\nURL is\nremoved before redirecting the request. If set to false, the\nquery portion of the original URL is retained.\n\nThe default is set to false.", + "type": "boolean" + } + }, + "type": "object" + }, + "HttpRetryPolicy": { + "description": "The retry policy associates with HttpRouteRule", + "id": "HttpRetryPolicy", + "properties": { + "numRetries": { + "description": "Specifies the allowed number retries. This number must be \u003e 0.\nIf not specified, defaults to 1.", + "format": "uint32", + "type": "integer" }, - "customResponseHeaders": { - "description": "Headers that the Application Load Balancer should add to proxied responses.", + "perTryTimeout": { + "$ref": "Duration", + "description": "Specifies a non-zero timeout per retry attempt.\n\nIf not specified, will use the timeout set in theHttpRouteAction field.\nIf timeout in the HttpRouteAction field is not set, this field\nuses the largest timeout\namong all backend services associated with the route.\n\nNot supported when the URL map is bound to a target gRPC proxy that\nhas the validateForProxyless field set to true." + }, + "retryConditions": { + "description": "Specifies one or more conditions when this retry policy applies. Valid\nvalues are:\n \n - 5xx: retry is attempted if the instance or endpoint\n responds with any 5xx response code, or if the instance or\n endpoint does not respond at all. For example, disconnects, reset, read\n timeout, connection failure, and refused streams.\n - gateway-error: Similar to 5xx, but only\n applies to response codes 502, 503 or504.\n - connect-failure: a retry is attempted on failures\n connecting to the instance or endpoint. For example, connection\n timeouts.\n - retriable-4xx: a retry is attempted if the instance\n or endpoint responds with a 4xx response code.\n The only error that you can retry is error code 409.\n - refused-stream: a retry is attempted if the instance\n or endpoint resets the stream with a REFUSED_STREAM error\n code. This reset type indicates that it is safe to retry.\n - cancelled: a retry is attempted if the gRPC status\n code in the response header is set to cancelled.\n - deadline-exceeded: a retry is attempted if the gRPC\n status code in the response header is set todeadline-exceeded.\n - internal: a retry is attempted if the gRPC\n status code in the response header is set tointernal.\n - resource-exhausted: a retry is attempted if the gRPC\n status code in the response header is set toresource-exhausted.\n - unavailable: a retry is attempted if the gRPC\n status code in the response header is set tounavailable.\n\nOnly the following codes are supported when the URL map is bound to\ntarget gRPC proxy that has validateForProxyless field set to true.\n \n - cancelled\n - deadline-exceeded\n - internal\n - resource-exhausted\n - unavailable", "items": { "type": "string" }, "type": "array" + } + }, + "type": "object" + }, + "HttpRouteAction": { + "id": "HttpRouteAction", + "properties": { + "cachePolicy": { + "$ref": "CachePolicy", + "description": "Specifies the cache policy configuration for matched traffic. Available\nonly for Global `EXTERNAL_MANAGED` load balancer schemes. At least one\nproperty must be specified. This policy cannot be specified if any target\nbackend has Identity-Aware Proxy enabled." }, - "description": { - "description": "An optional textual description of the resource; provided by the client when the resource is created.", - "type": "string" + "corsPolicy": { + "$ref": "CorsPolicy", + "description": "The specification for allowing client-side cross-origin requests. For more\ninformation about the W3C recommendation for cross-origin resource sharing\n(CORS), see Fetch API Living\nStandard.\n\nNot supported when the URL map is bound to a target gRPC proxy." }, - "edgeSecurityPolicy": { - "description": "[Output Only] The resource URL for the edge security policy associated with this backend bucket.", - "type": "string" + "faultInjectionPolicy": { + "$ref": "HttpFaultInjection", + "description": "The specification for fault injection introduced into traffic to test\nthe resiliency of clients to backend service failure. As part of fault\ninjection, when clients send requests to a backend service, delays can be\nintroduced by a load balancer on a percentage of requests before sending\nthose requests to the backend service. Similarly requests from clients can\nbe aborted by the load balancer for a percentage of requests.timeout and retry_policy is ignored by clients\nthat are configured with a fault_injection_policy if:\n1. The traffic is generated by fault injection AND\n2. The fault injection is not a delay fault injection.\nFault injection is not supported with the classic Application Load Balancer\n. To see which load balancers support fault injection,\nsee Load\nbalancing: Routing and traffic management features." }, - "enableCdn": { - "description": "If true, enable Cloud CDN for this BackendBucket.", - "type": "boolean" + "maxStreamDuration": { + "$ref": "Duration", + "description": "Specifies the maximum duration (timeout) for streams on the selected route.\nUnlike the timeout field where the timeout duration starts\nfrom the time the request has been fully processed (known as*end-of-stream*),\nthe duration in this field is computed from the beginning of the stream\nuntil the response has been processed, including all retries. A\nstream that does not complete in this duration is closed.\n\nIf not specified, this field uses the maximummaxStreamDuration value among all backend services associated\nwith the route.\n\nThis field is only allowed if the Url map is used with backend services\nwith loadBalancingScheme set toINTERNAL_SELF_MANAGED." }, - "id": { - "description": "[Output Only] Unique identifier for the resource; defined by the server.", - "format": "uint64", - "type": "string" + "requestMirrorPolicy": { + "$ref": "RequestMirrorPolicy", + "description": "Specifies the policy on how requests intended for the route's backends\nare shadowed to a separate mirrored backend service. The load balancer does\nnot wait for responses from the shadow service. Before sending traffic\nto the shadow service, the host / authority header is suffixed with-shadow.\n\nNot supported when the URL map is bound to a target gRPC proxy that\nhas the validateForProxyless field set to true." }, - "kind": { - "default": "compute#backendBucket", - "description": "Type of the resource.", - "type": "string" + "retryPolicy": { + "$ref": "HttpRetryPolicy", + "description": "Specifies the retry policy associated with this route." }, - "name": { - "description": "Name of the resource. Provided by the client when the resource is created. The name must be 1-63 characters long, and comply with RFC1035. 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" + "timeout": { + "$ref": "Duration", + "description": "Specifies the timeout for the selected route. Timeout is computed from the\ntime the request has been fully processed (known as *end-of-stream*)\nup until the response has been processed. Timeout includes\nall retries.\n\nIf not specified, this field uses the largest timeout among all backend\nservices associated with the route.\n\nNot supported when the URL map is bound to a target gRPC proxy that\nhas validateForProxyless field set to true." }, - "selfLink": { - "description": "[Output Only] Server-defined URL for the resource.", - "type": "string" + "urlRewrite": { + "$ref": "UrlRewrite", + "description": "The spec to modify the URL of the request, before forwarding the request\nto the matched service.\n\n urlRewrite is the only action supported in UrlMaps\nfor classic Application Load Balancers.\n\nNot supported when the URL map is bound to a target gRPC proxy that\nhas the validateForProxyless field set to true." + }, + "weightedBackendServices": { + "description": "A list of weighted backend services to send traffic to when a route match\noccurs. The weights determine the fraction of traffic that flows to\ntheir corresponding backend service. If all traffic needs to\ngo to a single backend service, there must be oneweightedBackendService with weight set to a non-zero number.\n\nAfter a backend service is identified and before forwarding\nthe request to\nthe backend service, advanced routing actions such as URL rewrites and\nheader transformations are applied depending on additional settings\nspecified in this HttpRouteAction.", + "items": { + "$ref": "WeightedBackendService" + }, + "type": "array" } }, "type": "object" }, - "BackendBucketCdnPolicy": { - "description": "Message containing Cloud CDN configuration for a backend bucket.", - "id": "BackendBucketCdnPolicy", + "HttpRouteRule": { + "description": "The HttpRouteRule setting specifies how to match an HTTP request\nand the corresponding routing action that load balancing proxies perform.", + "id": "HttpRouteRule", "properties": { - "bypassCacheOnRequestHeaders": { - "description": "Bypass the cache when the specified request headers are matched - e.g. Pragma or Authorization headers. Up to 5 headers can be specified. The cache is bypassed for all cdnPolicy.cacheMode settings.", - "items": { - "$ref": "BackendBucketCdnPolicyBypassCacheOnRequestHeader" - }, - "type": "array" - }, - "cacheKeyPolicy": { - "$ref": "BackendBucketCdnPolicyCacheKeyPolicy", - "description": "The CacheKeyPolicy for this CdnPolicy." + "customErrorResponsePolicy": { + "$ref": "CustomErrorResponsePolicy", + "description": "customErrorResponsePolicy specifies how the Load\nBalancer returns error responses when BackendServiceorBackendBucket responds with an error. \n\nIf a policy for an\nerror code is not configured for the RouteRule, a policy for\nthe error code configured inpathMatcher.defaultCustomErrorResponsePolicy is applied. If\none is not specified inpathMatcher.defaultCustomErrorResponsePolicy, the policy\nconfigured in UrlMap.defaultCustomErrorResponsePolicy takes\neffect. \n\nFor example, consider a UrlMap with the following configuration:\n \n \n - UrlMap.defaultCustomErrorResponsePolicy are configured\n with policies for 5xx and 4xx errors\n - A RouteRule for /coming_soon/ is configured for the\n error code 404.\n\nIf the request is for www.myotherdomain.com and a404 is encountered, the policy underUrlMap.defaultCustomErrorResponsePolicy takes effect. If a404 response is encountered for the requestwww.example.com/current_events/, the pathMatcher's policy\ntakes effect. If however, the request forwww.example.com/coming_soon/ encounters a 404,\nthe policy in RouteRule.customErrorResponsePolicy takes\neffect. If any of the requests in this example encounter a 500\nerror code, the policy atUrlMap.defaultCustomErrorResponsePolicy takes effect. \n\nWhen\nused in conjunction withrouteRules.routeAction.retryPolicy, retries take\nprecedence. Only once all retries are exhausted, thecustomErrorResponsePolicy is applied. While attempting\na retry, if load balancer is successful in reaching the\nservice, the customErrorResponsePolicy is ignored and\nthe response from the service is returned to the client.\n\ncustomErrorResponsePolicy is supported only for\nglobal external Application Load Balancers." }, - "cacheMode": { - "description": "Specifies the cache setting for all responses from this backend. The possible values are: USE_ORIGIN_HEADERS Requires the origin to set valid caching headers to cache content. Responses without these headers will not be cached at Google's edge, and will require a full trip to the origin on every request, potentially impacting performance and increasing load on the origin server. FORCE_CACHE_ALL Cache all content, ignoring any \"private\", \"no-store\" or \"no-cache\" directives in Cache-Control response headers. Warning: this may result in Cloud CDN caching private, per-user (user identifiable) content. CACHE_ALL_STATIC Automatically cache static content, including common image formats, media (video and audio), and web assets (JavaScript and CSS). Requests and responses that are marked as uncacheable, as well as dynamic content (including HTML), will not be cached.", - "enum": [ - "CACHE_ALL_STATIC", - "FORCE_CACHE_ALL", - "INVALID_CACHE_MODE", - "USE_ORIGIN_HEADERS" - ], - "enumDescriptions": [ - "Automatically cache static content, including common image formats, media (video and audio), and web assets (JavaScript and CSS). Requests and responses that are marked as uncacheable, as well as dynamic content (including HTML), will not be cached.", - "Cache all content, ignoring any \"private\", \"no-store\" or \"no-cache\" directives in Cache-Control response headers. Warning: this may result in Cloud CDN caching private, per-user (user identifiable) content.", - "", - "Requires the origin to set valid caching headers to cache content. Responses without these headers will not be cached at Google's edge, and will require a full trip to the origin on every request, potentially impacting performance and increasing load on the origin server." - ], + "description": { + "description": "The short description conveying the intent of this routeRule.\n\n\nThe description can have a maximum length of 1024 characters.", "type": "string" }, - "clientTtl": { - "description": "Specifies a separate client (e.g. browser client) maximum TTL. This is used to clamp the max-age (or Expires) value sent to the client. With FORCE_CACHE_ALL, the lesser of client_ttl and default_ttl is used for the response max-age directive, along with a \"public\" directive. For cacheable content in CACHE_ALL_STATIC mode, client_ttl clamps the max-age from the origin (if specified), or else sets the response max-age directive to the lesser of the client_ttl and default_ttl, and also ensures a \"public\" cache-control directive is present. If a client TTL is not specified, a default value (1 hour) will be used. The maximum allowed value is 31,622,400s (1 year).", - "format": "int32", - "type": "integer" - }, - "defaultTtl": { - "description": "Specifies the default TTL for cached content served by this origin for responses that do not have an existing valid TTL (max-age or s-max-age). Setting a TTL of \"0\" means \"always revalidate\". The value of defaultTTL cannot be set to a value greater than that of maxTTL, but can be equal. When the cacheMode is set to FORCE_CACHE_ALL, the defaultTTL will overwrite the TTL set in all responses. The maximum allowed value is 31,622,400s (1 year), noting that infrequently accessed objects may be evicted from the cache before the defined TTL.", - "format": "int32", - "type": "integer" - }, - "maxTtl": { - "description": "Specifies the maximum allowed TTL for cached content served by this origin. Cache directives that attempt to set a max-age or s-maxage higher than this, or an Expires header more than maxTTL seconds in the future will be capped at the value of maxTTL, as if it were the value of an s-maxage Cache-Control directive. Headers sent to the client will not be modified. Setting a TTL of \"0\" means \"always revalidate\". The maximum allowed value is 31,622,400s (1 year), noting that infrequently accessed objects may be evicted from the cache before the defined TTL.", - "format": "int32", - "type": "integer" - }, - "negativeCaching": { - "description": "Negative caching allows per-status code TTLs to be set, in order to apply fine-grained caching for common errors or redirects. This can reduce the load on your origin and improve end-user experience by reducing response latency. When the cache mode is set to CACHE_ALL_STATIC or USE_ORIGIN_HEADERS, negative caching applies to responses with the specified response code that lack any Cache-Control, Expires, or Pragma: no-cache directives. When the cache mode is set to FORCE_CACHE_ALL, negative caching applies to all responses with the specified response code, and override any caching headers. By default, Cloud CDN will apply the following default TTLs to these status codes: HTTP 300 (Multiple Choice), 301, 308 (Permanent Redirects): 10m HTTP 404 (Not Found), 410 (Gone), 451 (Unavailable For Legal Reasons): 120s HTTP 405 (Method Not Found), 421 (Misdirected Request), 501 (Not Implemented): 60s. These defaults can be overridden in negative_caching_policy.", - "type": "boolean" + "headerAction": { + "$ref": "HttpHeaderAction", + "description": "Specifies changes to request and response headers that need to take effect\nfor the selected backendService.\n\nThe headerAction value specified here is applied before the\nmatching pathMatchers[].headerAction and afterpathMatchers[].routeRules[].routeAction.weightedBackendService.backendServiceWeightAction[].headerAction\n\nHeaderAction is not supported for load balancers\nthat have\ntheir loadBalancingScheme set to EXTERNAL.\n\nNot supported when the URL map is bound to a target gRPC proxy that\nhas validateForProxyless field set to true." }, - "negativeCachingPolicy": { - "description": "Sets a cache TTL for the specified HTTP status code. negative_caching must be enabled to configure negative_caching_policy. Omitting the policy and leaving negative_caching enabled will use Cloud CDN's default cache TTLs. Note that when specifying an explicit negative_caching_policy, you should take care to specify a cache TTL for all response codes that you wish to cache. Cloud CDN will not apply any default negative caching when a policy exists.", + "matchRules": { + "description": "The list of criteria for matching attributes of a request to thisrouteRule. This list has OR semantics: the request matches\nthis routeRule when any of thematchRules are satisfied. However predicates within\na given matchRule have AND semantics. All predicates\nwithin a matchRule must match for the request to\nmatch the rule.", "items": { - "$ref": "BackendBucketCdnPolicyNegativeCachingPolicy" + "$ref": "HttpRouteRuleMatch" }, "type": "array" }, - "requestCoalescing": { - "description": "If true then Cloud CDN will combine multiple concurrent cache fill requests into a small number of requests to the origin.", - "type": "boolean" - }, - "serveWhileStale": { - "description": "Serve existing content from the cache (if available) when revalidating content with the origin, or when an error is encountered when refreshing the cache. This setting defines the default \"max-stale\" duration for any cached responses that do not specify a max-stale directive. Stale responses that exceed the TTL configured here will not be served. The default limit (max-stale) is 86400s (1 day), which will allow stale content to be served up to this limit beyond the max-age (or s-max-age) of a cached response. The maximum allowed value is 604800 (1 week). Set this to zero (0) to disable serve-while-stale.", + "priority": { + "description": "For routeRules within a given pathMatcher,\npriority determines the order in which a load balancer interpretsrouteRules. RouteRules are evaluated in order\nof priority, from the lowest to highest number. The priority of a\nrule decreases as its number increases (1, 2, 3, N+1). The first rule\nthat matches the request is applied.\n\n\nYou cannot configure two or more routeRules with the same priority.\nPriority for each rule must be set to a number from 0 to 2147483647\ninclusive.\n\n\nPriority numbers can have gaps, which enable you to add or remove rules\nin the future without affecting the rest of the rules. For example, 1, 2,\n3, 4, 5, 9, 12, 16 is a valid series of priority numbers to which you\ncould add rules numbered from 6 to 8, 10 to 11, and 13 to 15 in the future\nwithout any impact on existing rules.", "format": "int32", "type": "integer" }, - "signedUrlCacheMaxAgeSec": { - "description": "Maximum number of seconds the response to a signed URL request will be considered fresh. After this time period, the response will be revalidated before being served. Defaults to 1hr (3600s). When serving responses to signed URL requests, Cloud CDN will internally behave 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", + "routeAction": { + "$ref": "HttpRouteAction", + "description": "In response to a matching matchRule, the load balancer\nperforms advanced routing actions, such as URL rewrites and header\ntransformations, before forwarding the request to the selected backend.\n\n\nOnly one of urlRedirect, service orrouteAction.weightedBackendService can be set.\n\n\nURL maps for classic Application Load Balancers only support\nthe urlRewrite action within a route rule'srouteAction." + }, + "service": { + "description": "The full or partial URL of the backend service resource to which traffic\nis directed if this rule is matched. If routeAction is\nalso specified, advanced routing actions, such as URL rewrites,\ntake effect before sending the request to the backend.\n\n\nOnly one of urlRedirect, service orrouteAction.weightedBackendService can be set.", "type": "string" }, - "signedUrlKeyNames": { - "description": "[Output Only] Names of the keys for signing request URLs.", - "items": { - "type": "string" - }, - "type": "array" + "urlRedirect": { + "$ref": "HttpRedirectAction", + "description": "When this rule is matched, the request is redirected to a URL\nspecified by urlRedirect.\n\n\nOnly one of urlRedirect, service orrouteAction.weightedBackendService can be set.\n\n\nNot supported when the URL map is bound to a target gRPC proxy." } }, "type": "object" }, - "BackendBucketCdnPolicyBypassCacheOnRequestHeader": { - "description": "Bypass the cache when the specified request headers are present, e.g. Pragma or Authorization headers. Values are case insensitive. The presence of such a header overrides the cache_mode setting.", - "id": "BackendBucketCdnPolicyBypassCacheOnRequestHeader", + "HttpRouteRuleMatch": { + "description": "HttpRouteRuleMatch specifies a set of criteria for matching\nrequests to an HttpRouteRule. All specified criteria must\nbe satisfied for a match to occur.", + "id": "HttpRouteRuleMatch", "properties": { - "headerName": { - "description": "The header field name to match on when bypassing cache. Values are case-insensitive.", + "fullPathMatch": { + "description": "For satisfying the matchRule condition, the path of the\nrequest must exactly match the value specified infullPathMatch after removing any query parameters and anchor\nthat may be part of the original URL.\n\nfullPathMatch must be from 1 to 1024 characters.\n\nOnly one of prefixMatch, fullPathMatch,regexMatch or path_template_match must be\nspecified.", "type": "string" - } - }, - "type": "object" - }, - "BackendBucketCdnPolicyCacheKeyPolicy": { - "description": "Message containing what to include in the cache key for a request for Cloud CDN.", - "id": "BackendBucketCdnPolicyCacheKeyPolicy", - "properties": { - "includeHttpHeaders": { - "description": "Allows HTTP request headers (by name) to be used in the cache key.", + }, + "headerMatches": { + "description": "Specifies a list of header match criteria, all of which must match\ncorresponding headers in the request.", "items": { - "type": "string" + "$ref": "HttpHeaderMatch" }, "type": "array" }, - "queryStringWhitelist": { - "description": "Names of query string parameters to include in cache keys. Default parameters are always included. '\u0026' and '=' will be percent encoded and not treated as delimiters.", + "ignoreCase": { + "description": "Specifies that prefixMatch and fullPathMatch\nmatches are case sensitive.\n\nThe default value is false.\n\nignoreCase must not be used with regexMatch.\n\nNot supported when the URL map is bound to a target gRPC proxy.", + "type": "boolean" + }, + "metadataFilters": { + "description": "Opaque filter criteria used by the load balancer to restrict routing\nconfiguration to a limited set of xDS\ncompliant clients. In their xDS requests to the load balancer, xDS clients\npresent node\nmetadata. When there is a match, the relevant routing configuration\nis made available to those proxies.\n\nFor each metadataFilter in this list, if itsfilterMatchCriteria is set to MATCH_ANY, at least one of thefilterLabels must match the corresponding label provided in\nthe metadata. If its filterMatchCriteria is set to\nMATCH_ALL, then all of its filterLabels must match with\ncorresponding labels provided in the metadata. If multiple\nmetadata filters are specified, all of them need to be\nsatisfied in order to be considered a match.\n\nmetadataFilters specified here is applied after those\nspecified in ForwardingRule that refers to theUrlMap this HttpRouteRuleMatch belongs to.\n\nmetadataFilters only applies to load balancers that haveloadBalancingScheme set toINTERNAL_SELF_MANAGED.\n\nNot supported when the URL map is bound to a target gRPC proxy that\nhas validateForProxyless field set to true.", "items": { - "type": "string" + "$ref": "MetadataFilter" + }, + "type": "array" + }, + "pathTemplateMatch": { + "description": "If specified, this field defines a path template pattern that must match\nthe :path header after the query string is removed.\n\nA path template pattern can include variables and wildcards.\nVariables are enclosed in curly braces, for example{variable_name}. Wildcards include * that\nmatches a single path segment, and ** that matches zero or\nmore path segments. The pattern must follow these rules:\n\n \n - The value must be between 1 and 1024 characters.\n - The pattern must start with a leading slash (\"/\").\n - No more than 5 operators (variables or wildcards) may appear in\n the pattern.\n\nPrecisely one ofprefixMatch, fullPathMatch,regexMatch, or pathTemplateMatch must be\nset.", + "type": "string" + }, + "prefixMatch": { + "description": "For satisfying the matchRule condition, the request's\npath must begin with the specified prefixMatch.prefixMatch must begin with a /.\n\nThe value must be from 1 to 1024 characters.\n\nThe * character inside a prefix match is\ntreated as a literal character, not as a wildcard.\n\nOnly one of prefixMatch, fullPathMatch,regexMatch or path_template_match can be\nused within a matchRule.", + "type": "string" + }, + "queryParameterMatches": { + "description": "Specifies a list of query parameter match criteria, all of which must\nmatch corresponding query parameters in the request.\n\nNot supported when the URL map is bound to a target gRPC proxy.", + "items": { + "$ref": "HttpQueryParameterMatch" }, "type": "array" + }, + "regexMatch": { + "description": "For satisfying the matchRule condition, the path of the\nrequest must satisfy the regular expression specified inregexMatch after removing any query parameters and anchor\nsupplied with the original URL. For\nmore information about regular expression syntax, see Syntax.\n\nOnly one of prefixMatch, fullPathMatch,regexMatch or path_template_match must be\nspecified.\n\nRegular expressions can only be used when the loadBalancingScheme is\nset to INTERNAL_SELF_MANAGED, EXTERNAL_MANAGED\n(regional scope) or INTERNAL_MANAGED.", + "type": "string" } }, "type": "object" }, - "BackendBucketCdnPolicyNegativeCachingPolicy": { - "description": "Specify CDN TTLs for response error codes.", - "id": "BackendBucketCdnPolicyNegativeCachingPolicy", + "HttpsHealthCheck": { + "description": "Represents a legacy HTTPS Health Check resource.\n\nLegacy HTTPS health checks have been deprecated. If you are using a target\npool-based network load balancer, you must use a legacy HTTP (not HTTPS)\nhealth check. For all other load balancers, including backend service-based\nnetwork load balancers, and for managed instance group auto-healing, you must\nuse modern (non-legacy) health checks.\n\nFor more information, seeHealth checks\noverview.", + "id": "HttpsHealthCheck", "properties": { - "code": { - "description": "The HTTP status code to define a TTL against. Only HTTP status codes 300, 301, 302, 307, 308, 404, 405, 410, 421, 451 and 501 are can be specified as values, and you cannot specify a status code more than once.", + "checkIntervalSec": { + "description": "How often (in seconds) to send a health check. The default value is 5\nseconds.", "format": "int32", "type": "integer" }, - "ttl": { - "description": "The TTL (in seconds) for which to cache responses with the corresponding status code. The maximum allowed value is 1800s (30 minutes), noting that infrequently accessed objects may be evicted from the cache before the defined TTL.", + "creationTimestamp": { + "description": "[Output Only] Creation timestamp inRFC3339\ntext format.", + "type": "string" + }, + "description": { + "description": "An optional description of this resource. Provide this property when you\ncreate the resource.", + "type": "string" + }, + "healthyThreshold": { + "description": "A so-far unhealthy instance will be marked healthy after this\nmany consecutive successes. The default value is 2.", + "format": "int32", + "type": "integer" + }, + "host": { + "description": "The value of the host header in the HTTPS health check request. If left\nempty (default value), the public IP on behalf of which this health check\nis performed will be used.", + "type": "string" + }, + "id": { + "description": "[Output Only] The unique identifier for the resource. This identifier is\ndefined by the server.", + "format": "uint64", + "type": "string" + }, + "kind": { + "default": "compute#httpsHealthCheck", + "description": "Output only. Type of the resource.", + "readOnly": true, + "type": "string" + }, + "name": { + "description": "Name of the resource. Provided by the client when the resource is created.\nThe name must be 1-63 characters long, and comply withRFC1035.\nSpecifically, the name must be 1-63 characters long and match the regular\nexpression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first\ncharacter must be a lowercase letter, and all following characters must\nbe a dash, lowercase letter, or digit, except the last character, which\ncannot be a dash.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "type": "string" + }, + "port": { + "description": "The TCP port number for the HTTPS health check request. The default value\nis 443.", + "format": "int32", + "type": "integer" + }, + "requestPath": { + "description": "The request path of the HTTPS health check request. The default value is\n\"/\". Must comply withRFC3986.", + "type": "string" + }, + "selfLink": { + "description": "[Output Only] Server-defined URL for the resource.", + "type": "string" + }, + "timeoutSec": { + "description": "How long (in seconds) to wait before claiming failure. The default value is\n5 seconds. It is invalid for timeoutSec to have a greater value than\ncheckIntervalSec.", + "format": "int32", + "type": "integer" + }, + "unhealthyThreshold": { + "description": "A so-far healthy instance will be marked unhealthy after this\nmany consecutive failures. The default value is 2.", "format": "int32", "type": "integer" } }, "type": "object" }, - "BackendBucketList": { - "description": "Contains a list of BackendBucket resources.", - "id": "BackendBucketList", + "HttpsHealthCheckList": { + "description": "Contains a list of HttpsHealthCheck resources.", + "id": "HttpsHealthCheckList", "properties": { "id": { "description": "[Output Only] Unique identifier for the resource; defined by the server.", "type": "string" }, "items": { - "description": "A list of BackendBucket resources.", + "description": "A list of HttpsHealthCheck resources.", "items": { - "$ref": "BackendBucket" + "$ref": "HttpsHealthCheck" }, "type": "array" }, "kind": { - "default": "compute#backendBucketList", - "description": "Type of resource.", + "default": "compute#httpsHealthCheckList", + "description": "Output only. Type of resource.", + "readOnly": true, "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.", + "description": "[Output Only] This token allows you to get the next page of results for\nlist requests. If the number of results is larger thanmaxResults, use the nextPageToken as a value for\nthe query parameter pageToken in the next list request.\nSubsequent list requests will have their own nextPageToken to\ncontinue paging through the results.", "type": "string" }, "selfLink": { - "description": "[Output Only] Server-defined URL for this resource.", + "description": "Output only. [Output Only] Server-defined URL for this resource.", + "readOnly": true, "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.", + "description": "[Output Only] A warning code, if applicable. For example, Compute\nEngine returns NO_RESULTS_ON_PAGE if there\nare no results in the response.", "enum": [ "CLEANUP_FAILED", "DEPRECATED_RESOURCE_USED", @@ -40320,6 +65541,7 @@ "NOT_CRITICAL_ERROR", "NO_RESULTS_ON_PAGE", "PARTIAL_SUCCESS", + "QUOTA_INFO_UNAVAILABLE", "REQUIRED_TOS_AGREEMENT", "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", "RESOURCE_NOT_DELETED", @@ -40356,46 +65578,48 @@ false, false, false, + false, false ], "enumDescriptions": [ - "Warning about failed cleanup of transient changes made by a failed operation.", + "Warning about failed cleanup of transient changes made by a failed\noperation.", "A link to a deprecated resource was created.", - "When deploying and at least one of the resources has a type marked as deprecated", + "When deploying and at least one of the resources has a type marked as\ndeprecated", "The user created a boot disk that is larger than image size.", - "When deploying and at least one of the resources has a type marked as experimental", + "When deploying and at least one of the resources has a type marked as\nexperimental", "Warning that is present in an external api call", - "Warning that value of a field has been overridden. Deprecated unused field.", + "Warning that value of a field has been overridden.\nDeprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", - "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is\nnot of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", - "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", + "Resource can't be retrieved due to list overhead quota exceed\nwhich captures the amount of resources filtered out by\nuser-defined list filter.", "A resource depends on a missing type", - "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's nextHopIp address is not assigned to an instance on the\nnetwork.", "The route's next hop instance cannot ip forward.", - "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not have an\nipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", - "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that is not on the\nsame network as the route.", "The route's next hop instance does not have a status of RUNNING.", - "Error which is not critical. We decided to continue the process despite the mentioned error.", + "Error which is not critical. We decided to continue the process despite\nthe mentioned error.", "No results are present on a particular list page.", "Success is reported, but some results may be missing due to errors", - "The user attempted to use a resource that requires a TOS they have not accepted.", + "Quota information is not available to client requests (e.g:\nregions.list).", + "The user attempted to use a resource that requires a TOS they have not\naccepted.", "Warning that a resource is in use.", - "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "One or more of the resources set to auto-delete could not be deleted\nbecause they were in use.", "When a resource schema validation is ignored.", - "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", + "Instance template used in instance group manager is valid as such, but\nits application does not make a lot of sense, because it allows only\nsingle instance in instance group.", "When undeclared properties in the schema are present", "A given scope cannot be reached." ], "type": "string" }, "data": { - "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", + "description": "[Output Only] Metadata about this warning in key:\nvalue format. For example:\n\n\"data\": [\n {\n \"key\": \"scope\",\n \"value\": \"zones/us-east1-d\"\n }", "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).", + "description": "[Output Only] A key that provides more detail on the warning being\nreturned. For example, for warnings where there are no results in a list\nrequest for a particular zone, this key might be scope and\nthe key value might be the zone name. Other examples might be a key\nindicating a deprecated resource and a suggested replacement, or a\nwarning about invalid network settings (for example, if an instance\nattempts to perform IP forwarding but is not enabled for IP forwarding).", "type": "string" }, "value": { @@ -40417,334 +65641,288 @@ }, "type": "object" }, - "BackendService": { - "description": "Represents a Backend Service resource. A backend service defines how Google Cloud load balancers distribute traffic. The backend service configuration contains a set of values, such as the protocol used to connect to backends, various distribution and session settings, health checks, and timeouts. These settings provide fine-grained control over how your load balancer behaves. Most of the settings have default values that allow for easy configuration if you need to get started quickly. Backend services in Google Compute Engine can be either regionally or globally scoped. * [Global](https://cloud.google.com/compute/docs/reference/rest/v1/backendServices) * [Regional](https://cloud.google.com/compute/docs/reference/rest/v1/regionBackendServices) For more information, see Backend Services.", - "id": "BackendService", + "Image": { + "description": "Represents an Image resource.\n\nYou can use images to create boot disks for your VM instances.\nFor more information, read Images.", + "id": "Image", "properties": { - "affinityCookieTtlSec": { - "description": "Lifetime of cookies in seconds. This setting is applicable to Application Load Balancers and Traffic Director and requires GENERATED_COOKIE or HTTP_COOKIE session affinity. If set to 0, the cookie is non-persistent and lasts only until the end of the browser session (or equivalent). The maximum allowed value is two weeks (1,209,600). Not supported when the backend service is referenced by a URL map that is bound to target gRPC proxy that has validateForProxyless field set to true.", - "format": "int32", - "type": "integer" - }, - "backends": { - "description": "The list of backends that serve this BackendService.", - "items": { - "$ref": "Backend" - }, - "type": "array" - }, - "cdnPolicy": { - "$ref": "BackendServiceCdnPolicy", - "description": "Cloud CDN configuration for this BackendService. Only available for specified load balancer types." - }, - "circuitBreakers": { - "$ref": "CircuitBreakers" - }, - "compressionMode": { - "description": "Compress text responses using Brotli or gzip compression, based on the client's Accept-Encoding header.", + "architecture": { + "description": "The architecture of the image. Valid values are\nARM64 or X86_64.", "enum": [ - "AUTOMATIC", - "DISABLED" + "ARCHITECTURE_UNSPECIFIED", + "ARM64", + "X86_64" ], "enumDescriptions": [ - "Automatically uses the best compression based on the Accept-Encoding header sent by the client.", - "Disables compression. Existing compressed responses cached by Cloud CDN will not be served to clients." + "Default value indicating Architecture is not set.", + "Machines with architecture ARM64", + "Machines with architecture X86_64" ], "type": "string" }, - "connectionDraining": { - "$ref": "ConnectionDraining" - }, - "connectionTrackingPolicy": { - "$ref": "BackendServiceConnectionTrackingPolicy", - "description": "Connection Tracking configuration for this BackendService. Connection tracking policy settings are only available for external passthrough Network Load Balancers and internal passthrough Network Load Balancers." - }, - "consistentHash": { - "$ref": "ConsistentHashLoadBalancerSettings", - "description": "Consistent Hash-based load balancing can be used to provide soft session affinity based on HTTP headers, cookies or other properties. This load balancing policy is applicable only for HTTP connections. The affinity to a particular destination host will be lost when one or more hosts are added/removed from the destination service. This field specifies parameters that control consistent hashing. This field is only applicable when localityLbPolicy is set to MAGLEV or RING_HASH. This field is applicable to either: - A regional backend service with the service_protocol set to HTTP, HTTPS, or HTTP2, and load_balancing_scheme set to INTERNAL_MANAGED. - A global backend service with the load_balancing_scheme set to INTERNAL_SELF_MANAGED. " + "archiveSizeBytes": { + "description": "Size of the image tar.gz archive stored in Google Cloud\nStorage (in bytes).", + "format": "int64", + "type": "string" }, "creationTimestamp": { - "description": "[Output Only] Creation timestamp in RFC3339 text format.", + "description": "Output only. [Output Only] Creation timestamp inRFC3339\ntext format.", + "readOnly": true, "type": "string" }, - "customRequestHeaders": { - "description": "Headers that the load balancer adds to proxied requests. See [Creating custom headers](https://cloud.google.com/load-balancing/docs/custom-headers).", - "items": { - "type": "string" - }, - "type": "array" - }, - "customResponseHeaders": { - "description": "Headers that the load balancer adds to proxied responses. See [Creating custom headers](https://cloud.google.com/load-balancing/docs/custom-headers).", - "items": { - "type": "string" - }, - "type": "array" + "deprecated": { + "$ref": "DeprecationStatus", + "description": "Output only. The deprecation status associated with this image.", + "readOnly": true }, "description": { - "description": "An optional description of this resource. Provide this property when you create the resource.", + "description": "An optional description of this resource. Provide this property when you\ncreate the resource.", "type": "string" }, - "edgeSecurityPolicy": { - "description": "[Output Only] The resource URL for the edge security policy associated with this backend service.", + "diskSizeGb": { + "description": "Size of the image when restored onto a persistent disk (in GB).", + "format": "int64", "type": "string" }, - "enableCDN": { - "description": "If true, enables Cloud CDN for the backend service of a global external Application Load Balancer.", + "enableConfidentialCompute": { + "description": "Output only. Whether this image is created from a confidential compute mode disk.\n[Output Only]: This field is not set by user, but from source disk.", + "readOnly": true, "type": "boolean" }, - "failoverPolicy": { - "$ref": "BackendServiceFailoverPolicy", - "description": "Requires at least one backend instance group to be defined as a backup (failover) backend. For load balancers that have configurable failover: [Internal passthrough Network Load Balancers](https://cloud.google.com/load-balancing/docs/internal/failover-overview) and [external passthrough Network Load Balancers](https://cloud.google.com/load-balancing/docs/network/networklb-failover-overview)." - }, - "fingerprint": { - "description": "Fingerprint of this resource. A hash of the contents stored in this object. This field is used in optimistic locking. This field will be ignored when inserting a BackendService. An up-to-date fingerprint must be provided in order to update the BackendService, otherwise the request will fail with error 412 conditionNotMet. To see the latest fingerprint, make a get() request to retrieve a BackendService.", - "format": "byte", + "family": { + "description": "The name of the image family to which this image belongs. The image\nfamily name can be from a publicly managed image family provided by\nCompute Engine, or from a custom image family you create. For example,centos-stream-9 is a publicly available image family.\nFor more information, see Image\nfamily best practices.\n\nWhen creating disks, you can specify an image family instead of a specific\nimage name. The image family always returns its latest image that is not\ndeprecated. The name of the image family must comply with RFC1035.", "type": "string" }, - "healthChecks": { - "description": "The list of URLs to the healthChecks, httpHealthChecks (legacy), or httpsHealthChecks (legacy) resource for health checking this backend service. Not all backend services support legacy health checks. See Load balancer guide. Currently, at most one health check can be specified for each backend service. Backend services with instance group or zonal NEG backends must have a health check. Backend services with internet or serverless NEG backends must not have a health check.", + "guestOsFeatures": { + "description": "A list of features to enable on the guest operating system. Applicable\nonly for bootable images. To see a list of available options, see theguestOSfeatures[].type parameter.", "items": { - "type": "string" + "$ref": "GuestOsFeature" }, "type": "array" }, - "iap": { - "$ref": "BackendServiceIAP", - "description": "The configurations for Identity-Aware Proxy on this resource. Not available for internal passthrough Network Load Balancers and external passthrough Network Load Balancers." - }, "id": { - "description": "[Output Only] The unique identifier for the resource. This identifier is defined by the server.", + "description": "Output only. [Output Only] The unique identifier for the resource. This identifier is\ndefined by the server.", "format": "uint64", + "readOnly": true, "type": "string" }, + "imageEncryptionKey": { + "$ref": "CustomerEncryptionKey", + "description": "Encrypts the image using acustomer-supplied\nencryption key.\n\nAfter you encrypt an image with a customer-supplied key, you must provide\nthe same key if you use the image later (e.g. to create a disk from\nthe image).\n\nCustomer-supplied encryption keys do not protect access to metadata\nof the disk.\n\nIf you do not provide an encryption key when creating the image, then the\ndisk will be encrypted using an automatically generated key and you do not\nneed to provide a key to use the image later." + }, "kind": { - "default": "compute#backendService", - "description": "[Output Only] Type of resource. Always compute#backendService for backend services.", + "default": "compute#image", + "description": "Output only. [Output Only] Type of the resource. Always compute#image for\nimages.", + "readOnly": true, "type": "string" }, - "loadBalancingScheme": { - "description": "Specifies the load balancer type. A backend service created for one type of load balancer cannot be used with another. For more information, refer to Choosing a load balancer.", - "enum": [ - "EXTERNAL", - "EXTERNAL_MANAGED", - "INTERNAL", - "INTERNAL_MANAGED", - "INTERNAL_SELF_MANAGED", - "INVALID_LOAD_BALANCING_SCHEME" - ], - "enumDescriptions": [ - "Signifies that this will be used for classic Application Load Balancers, global external proxy Network Load Balancers, or external passthrough Network Load Balancers.", - "Signifies that this will be used for global external Application Load Balancers, regional external Application Load Balancers, or regional external proxy Network Load Balancers.", - "Signifies that this will be used for internal passthrough Network Load Balancers.", - "Signifies that this will be used for internal Application Load Balancers.", - "Signifies that this will be used by Traffic Director.", - "" - ], + "labelFingerprint": { + "description": "A fingerprint for the labels being applied to this image, which is\nessentially a hash of the labels used for optimistic locking. The\nfingerprint is initially generated by Compute Engine and changes after\nevery request to modify or update labels. You must always provide an\nup-to-date fingerprint hash in order to update or change labels,\notherwise the request will fail with error412 conditionNotMet.\n\nTo see the latest fingerprint, make a get() request to\nretrieve an image.", + "format": "byte", "type": "string" }, - "localityLbPolicies": { - "description": "A list of locality load-balancing policies to be used in order of preference. When you use localityLbPolicies, you must set at least one value for either the localityLbPolicies[].policy or the localityLbPolicies[].customPolicy field. localityLbPolicies overrides any value set in the localityLbPolicy field. For an example of how to use this field, see Define a list of preferred policies. Caution: This field and its children are intended for use in a service mesh that includes gRPC clients only. Envoy proxies can't use backend services that have this configuration.", + "labels": { + "additionalProperties": { + "type": "string" + }, + "description": "Labels to apply to this image. These can be later modified by\nthe setLabels method.", + "type": "object" + }, + "licenseCodes": { + "description": "Integer license codes indicating which licenses are attached to this image.", "items": { - "$ref": "BackendServiceLocalityLoadBalancingPolicyConfig" + "format": "int64", + "type": "string" }, "type": "array" }, - "localityLbPolicy": { - "description": "The load balancing algorithm used within the scope of the locality. The possible values are: - ROUND_ROBIN: This is a simple policy in which each healthy backend is selected in round robin order. This is the default. - LEAST_REQUEST: An O(1) algorithm which selects two random healthy hosts and picks the host which has fewer active requests. - RING_HASH: The ring/modulo hash load balancer implements consistent hashing to backends. The algorithm has the property that the addition/removal of a host from a set of N hosts only affects 1/N of the requests. - RANDOM: The load balancer selects a random healthy host. - ORIGINAL_DESTINATION: Backend host is selected based on the client connection metadata, i.e., connections are opened to the same address as the destination address of the incoming connection before the connection was redirected to the load balancer. - MAGLEV: used as a drop in replacement for the ring hash load balancer. Maglev is not as stable as ring hash but has faster table lookup build times and host selection times. For more information about Maglev, see https://ai.google/research/pubs/pub44824 This field is applicable to either: - A regional backend service with the service_protocol set to HTTP, HTTPS, or HTTP2, and load_balancing_scheme set to INTERNAL_MANAGED. - A global backend service with the load_balancing_scheme set to INTERNAL_SELF_MANAGED, INTERNAL_MANAGED, or EXTERNAL_MANAGED. If sessionAffinity is not NONE, and this field is not set to MAGLEV or RING_HASH, session affinity settings will not take effect. Only ROUND_ROBIN and RING_HASH are supported when the backend service is referenced by a URL map that is bound to target gRPC proxy that has validateForProxyless field set to true.", - "enum": [ - "INVALID_LB_POLICY", - "LEAST_REQUEST", - "MAGLEV", - "ORIGINAL_DESTINATION", - "RANDOM", - "RING_HASH", - "ROUND_ROBIN", - "WEIGHTED_MAGLEV" - ], - "enumDescriptions": [ - "", - "An O(1) algorithm which selects two random healthy hosts and picks the host which has fewer active requests.", - "This algorithm implements consistent hashing to backends. Maglev can be used as a drop in replacement for the ring hash load balancer. Maglev is not as stable as ring hash but has faster table lookup build times and host selection times. For more information about Maglev, see https://ai.google/research/pubs/pub44824", - "Backend host is selected based on the client connection metadata, i.e., connections are opened to the same address as the destination address of the incoming connection before the connection was redirected to the load balancer.", - "The load balancer selects a random healthy host.", - "The ring/modulo hash load balancer implements consistent hashing to backends. The algorithm has the property that the addition/removal of a host from a set of N hosts only affects 1/N of the requests.", - "This is a simple policy in which each healthy backend is selected in round robin order. This is the default.", - "Per-instance weighted Load Balancing via health check reported weights. If set, the Backend Service must configure a non legacy HTTP-based Health Check, and health check replies are expected to contain non-standard HTTP response header field X-Load-Balancing-Endpoint-Weight to specify the per-instance weights. If set, Load Balancing is weighted based on the per-instance weights reported in the last processed health check replies, as long as every instance either reported a valid weight or had UNAVAILABLE_WEIGHT. Otherwise, Load Balancing remains equal-weight. This option is only supported in Network Load Balancing." - ], - "type": "string" - }, - "logConfig": { - "$ref": "BackendServiceLogConfig", - "description": "This field denotes the logging options for the load balancer traffic served by this backend service. If logging is enabled, logs will be exported to Stackdriver." - }, - "maxStreamDuration": { - "$ref": "Duration", - "description": "Specifies the default maximum duration (timeout) for streams to this service. Duration is computed from the beginning of the stream until the response has been completely processed, including all retries. A stream that does not complete in this duration is closed. If not specified, there will be no timeout limit, i.e. the maximum duration is infinite. This value can be overridden in the PathMatcher configuration of the UrlMap that references this backend service. This field is only allowed when the loadBalancingScheme of the backend service is INTERNAL_SELF_MANAGED." - }, - "metadatas": { - "additionalProperties": { + "licenses": { + "description": "Any applicable license URI.", + "items": { "type": "string" }, - "description": "Deployment metadata associated with the resource to be set by a GKE hub controller and read by the backend RCTH", - "type": "object" + "type": "array" }, "name": { - "description": "Name of the resource. Provided by the client when the resource is created. The name must be 1-63 characters long, and comply with RFC1035. 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.", + "annotations": { + "required": [ + "compute.images.insert" + ] + }, + "description": "Name of the resource; provided by the client when the resource is created.\nThe name must be 1-63 characters long, and comply withRFC1035.\nSpecifically, the name must be 1-63 characters long and match the regular\nexpression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first\ncharacter must be a lowercase letter, and all following characters must be\na dash, lowercase letter, or digit, except the last character, which cannot\nbe a dash.", "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", "type": "string" }, - "network": { - "description": "The URL of the network to which this backend service belongs. This field can only be specified when the load balancing scheme is set to INTERNAL.", - "type": "string" + "params": { + "$ref": "ImageParams", + "description": "Input only. [Input Only] Additional params passed with the request, but not persisted\nas part of resource payload." }, - "outlierDetection": { - "$ref": "OutlierDetection", - "description": "Settings controlling the ejection of unhealthy backend endpoints from the load balancing pool of each individual proxy instance that processes the traffic for the given backend service. If not set, this feature is considered disabled. Results of the outlier detection algorithm (ejection of endpoints from the load balancing pool and returning them back to the pool) are executed independently by each proxy instance of the load balancer. In most cases, more than one proxy instance handles the traffic received by a backend service. Thus, it is possible that an unhealthy endpoint is detected and ejected by only some of the proxies, and while this happens, other proxies may continue to send requests to the same unhealthy endpoint until they detect and eject the unhealthy endpoint. Applicable backend endpoints can be: - VM instances in an Instance Group - Endpoints in a Zonal NEG (GCE_VM_IP, GCE_VM_IP_PORT) - Endpoints in a Hybrid Connectivity NEG (NON_GCP_PRIVATE_IP_PORT) - Serverless NEGs, that resolve to Cloud Run, App Engine, or Cloud Functions Services - Private Service Connect NEGs, that resolve to Google-managed regional API endpoints or managed services published using Private Service Connect Applicable backend service types can be: - A global backend service with the loadBalancingScheme set to INTERNAL_SELF_MANAGED or EXTERNAL_MANAGED. - A regional backend service with the serviceProtocol set to HTTP, HTTPS, or HTTP2, and loadBalancingScheme set to INTERNAL_MANAGED or EXTERNAL_MANAGED. Not supported for Serverless NEGs. Not supported when the backend service is referenced by a URL map that is bound to target gRPC proxy that has validateForProxyless field set to true." + "rawDisk": { + "description": "The parameters of the raw disk image.", + "properties": { + "containerType": { + "description": "The format used to encode and transmit the block device, which should beTAR. This is just a container and transmission format and not\na runtime format. Provided by the client when the disk image is created.", + "enum": [ + "TAR" + ], + "enumDescriptions": [ + "" + ], + "type": "string" + }, + "sha1Checksum": { + "deprecated": true, + "description": "[Deprecated] This field is deprecated.\nAn optional SHA1 checksum of the disk image before unpackaging provided\nby the client when the disk image is created.", + "pattern": "[a-f0-9]{40}", + "type": "string" + }, + "source": { + "description": "The full Google Cloud Storage URL or Artifact Registry path where the raw\ndisk image archive is stored.\nThe following are valid formats:\n \n - https://storage.googleapis.com/bucket_name/image_archive_name\n - https://storage.googleapis.com/bucket_name/folder_name/image_archive_name\n - projects/project/locations/location/repositories/repo/packages/package/versions/version_id\n - projects/project/locations/location/repositories/repo/packages/package/versions/version_id@dirsum_sha256:hex_value\n\n\n\nIn order to create an image, you must provide the full or partial URL of\none of the following:\n \n - The rawDisk.source URL \n - The sourceDisk URL \n - The sourceImage URL \n - The sourceSnapshot URL", + "type": "string" + } + }, + "type": "object" }, - "port": { - "deprecated": true, - "description": "Deprecated in favor of portName. The TCP port to connect on the backend. The default value is 80. For internal passthrough Network Load Balancers and external passthrough Network Load Balancers, omit port.", - "format": "int32", - "type": "integer" + "satisfiesPzi": { + "description": "Output only. Reserved for future use.", + "readOnly": true, + "type": "boolean" }, - "portName": { - "description": "A named port on a backend instance group representing the port for communication to the backend VMs in that group. The named port must be [defined on each backend instance group](https://cloud.google.com/load-balancing/docs/backend-service#named_ports). This parameter has no meaning if the backends are NEGs. For internal passthrough Network Load Balancers and external passthrough Network Load Balancers, omit port_name.", + "satisfiesPzs": { + "description": "Output only. [Output Only] Reserved for future use.", + "readOnly": true, + "type": "boolean" + }, + "selfLink": { + "description": "Output only. [Output Only] Server-defined URL for the resource.", + "readOnly": true, "type": "string" }, - "protocol": { - "description": "The protocol this BackendService uses to communicate with backends. Possible values are HTTP, HTTPS, HTTP2, TCP, SSL, UDP or GRPC. depending on the chosen load balancer or Traffic Director configuration. Refer to the documentation for the load balancers or for Traffic Director for more information. Must be set to GRPC when the backend service is referenced by a URL map that is bound to target gRPC proxy.", - "enum": [ - "GRPC", - "HTTP", - "HTTP2", - "HTTPS", - "SSL", - "TCP", - "UDP", - "UNSPECIFIED" - ], - "enumDescriptions": [ - "gRPC (available for Traffic Director).", - "", - "HTTP/2 with SSL.", - "", - "TCP proxying with SSL.", - "TCP proxying or TCP pass-through.", - "UDP.", - "If a Backend Service has UNSPECIFIED as its protocol, it can be used with any L3/L4 Forwarding Rules." - ], + "shieldedInstanceInitialState": { + "$ref": "InitialStateConfig", + "description": "Set the secure boot keys of shielded instance." + }, + "sourceDisk": { + "description": "URL of the source disk used to create this image.\nFor example, the following are valid values:\n \n - https://www.googleapis.com/compute/v1/projects/project/zones/zone/disks/disk \n - projects/project/zones/zone/disks/disk \n - zones/zone/disks/disk\n\n\n\nIn order to create an image, you must provide the full or partial URL of\none of the following:\n \n - The rawDisk.source URL \n - The sourceDisk URL \n - The sourceImage URL \n - The sourceSnapshot URL", "type": "string" }, - "region": { - "description": "[Output Only] URL of the region where the regional backend service resides. This field is not applicable to global backend services. You must specify this field as part of the HTTP request URL. It is not settable as a field in the request body.", + "sourceDiskEncryptionKey": { + "$ref": "CustomerEncryptionKey", + "description": "Thecustomer-supplied\nencryption key of the source disk. Required if the source disk is\nprotected by a customer-supplied encryption key." + }, + "sourceDiskId": { + "description": "Output only. [Output Only]\nThe ID value of the disk used to create this image. This value may be used\nto determine whether the image was taken from the current or a previous\ninstance of a given disk name.", + "readOnly": true, "type": "string" }, - "securityPolicy": { - "description": "[Output Only] The resource URL for the security policy associated with this backend service.", + "sourceImage": { + "description": "URL of the source image used to create this image.\nThe following are valid formats for the URL:\n \n - https://www.googleapis.com/compute/v1/projects/project_id/global/\n images/image_name\n - projects/project_id/global/images/image_name\n\n\n\nIn order to create an image, you must provide the full or partial URL of\none of the following:\n \n - The rawDisk.source URL \n - The sourceDisk URL \n - The sourceImage URL \n - The sourceSnapshot URL", "type": "string" }, - "securitySettings": { - "$ref": "SecuritySettings", - "description": "This field specifies the security settings that apply to this backend service. This field is applicable to a global backend service with the load_balancing_scheme set to INTERNAL_SELF_MANAGED." + "sourceImageEncryptionKey": { + "$ref": "CustomerEncryptionKey", + "description": "The customer-supplied encryption key of the source image. Required if the\nsource image is protected by a customer-supplied encryption key." }, - "selfLink": { - "description": "[Output Only] Server-defined URL for the resource.", + "sourceImageId": { + "description": "Output only. [Output Only]\nThe ID value of the image used to create this image. This value may be used\nto determine whether the image was taken from the current or a previous\ninstance of a given image name.", + "readOnly": true, "type": "string" }, - "serviceBindings": { - "description": "URLs of networkservices.ServiceBinding resources. Can only be set if load balancing scheme is INTERNAL_SELF_MANAGED. If set, lists of backends and health checks must be both empty.", - "items": { - "type": "string" - }, - "type": "array" - }, - "serviceLbPolicy": { - "description": "URL to networkservices.ServiceLbPolicy resource. Can only be set if load balancing scheme is EXTERNAL, EXTERNAL_MANAGED, INTERNAL_MANAGED or INTERNAL_SELF_MANAGED and the scope is global.", + "sourceSnapshot": { + "description": "URL of the source snapshot used to create this image.\nThe following are valid formats for the URL:\n \n - https://www.googleapis.com/compute/v1/projects/project_id/global/\n snapshots/snapshot_name\n - projects/project_id/global/snapshots/snapshot_name\n\n\n\nIn order to create an image, you must provide the full or partial URL of\none of the following:\n \n - The rawDisk.source URL \n - The sourceDisk URL \n - The sourceImage URL \n - The sourceSnapshot URL", "type": "string" }, - "sessionAffinity": { - "description": "Type of session affinity to use. The default is NONE. Only NONE and HEADER_FIELD are supported when the backend service is referenced by a URL map that is bound to target gRPC proxy that has validateForProxyless field set to true. For more details, see: [Session Affinity](https://cloud.google.com/load-balancing/docs/backend-service#session_affinity).", + "sourceSnapshotEncryptionKey": { + "$ref": "CustomerEncryptionKey", + "description": "The customer-supplied encryption key of the source snapshot. Required if\nthe source snapshot is protected by a customer-supplied encryption key." + }, + "sourceSnapshotId": { + "description": "Output only. [Output Only]\nThe ID value of the snapshot used to create this image. This value may be\nused to determine whether the snapshot was taken from the current or a\nprevious instance of a given snapshot name.", + "readOnly": true, + "type": "string" + }, + "sourceType": { + "default": "RAW", + "description": "The type of the image used to create this disk. The\ndefault and only valid value is RAW.", "enum": [ - "CLIENT_IP", - "CLIENT_IP_NO_DESTINATION", - "CLIENT_IP_PORT_PROTO", - "CLIENT_IP_PROTO", - "GENERATED_COOKIE", - "HEADER_FIELD", - "HTTP_COOKIE", - "NONE" + "RAW" ], "enumDescriptions": [ - "2-tuple hash on packet's source and destination IP addresses. Connections from the same source IP address to the same destination IP address will be served by the same backend VM while that VM remains healthy.", - "1-tuple hash only on packet's source IP address. Connections from the same source IP address will be served by the same backend VM while that VM remains healthy. This option can only be used for Internal TCP/UDP Load Balancing.", - "5-tuple hash on packet's source and destination IP addresses, IP protocol, and source and destination ports. Connections for the same IP protocol from the same source IP address and port to the same destination IP address and port will be served by the same backend VM while that VM remains healthy. This option cannot be used for HTTP(S) load balancing.", - "3-tuple hash on packet's source and destination IP addresses, and IP protocol. Connections for the same IP protocol from the same source IP address to the same destination IP address will be served by the same backend VM while that VM remains healthy. This option cannot be used for HTTP(S) load balancing.", - "Hash based on a cookie generated by the L7 loadbalancer. Only valid for HTTP(S) load balancing.", - "The hash is based on a user specified header field.", - "The hash is based on a user provided cookie.", - "No session affinity. Connections from the same client IP may go to any instance in the pool." + "" ], "type": "string" }, - "subsetting": { - "$ref": "Subsetting" - }, - "timeoutSec": { - "description": "The backend service timeout has a different meaning depending on the type of load balancer. For more information see, Backend service settings. The default is 30 seconds. The full range of timeout values allowed goes from 1 through 2,147,483,647 seconds. This value can be overridden in the PathMatcher configuration of the UrlMap that references this backend service. Not supported when the backend service is referenced by a URL map that is bound to target gRPC proxy that has validateForProxyless field set to true. Instead, use maxStreamDuration.", - "format": "int32", - "type": "integer" + "status": { + "description": "Output only. [Output Only] The status of the image. An image can be used to create other\nresources, such as instances, only after the image has been successfully\ncreated and the status is set to READY. Possible\nvalues are FAILED, PENDING, orREADY.", + "enum": [ + "DELETING", + "FAILED", + "PENDING", + "READY" + ], + "enumDescriptions": [ + "Image is deleting.", + "Image creation failed due to an error.", + "Image hasn't been created as yet.", + "Image has been successfully created." + ], + "readOnly": true, + "type": "string" }, - "usedBy": { + "storageLocations": { + "description": "Cloud Storage bucket storage location of the image (regional or\nmulti-regional).", "items": { - "$ref": "BackendServiceUsedBy" + "type": "string" }, "type": "array" } }, "type": "object" }, - "BackendServiceAggregatedList": { - "description": "Contains a list of BackendServicesScopedList.", - "id": "BackendServiceAggregatedList", + "ImageFamilyView": { + "id": "ImageFamilyView", + "properties": { + "image": { + "$ref": "Image", + "description": "The latest image that is part of the specified image family in the\nrequested location, and that is not deprecated." + } + }, + "type": "object" + }, + "ImageList": { + "description": "Contains a list of images.", + "id": "ImageList", "properties": { "id": { "description": "[Output Only] Unique identifier for the resource; defined by the server.", "type": "string" }, "items": { - "additionalProperties": { - "$ref": "BackendServicesScopedList", - "description": "Name of the scope containing this set of BackendServices." + "description": "A list of Image resources.", + "items": { + "$ref": "Image" }, - "description": "A list of BackendServicesScopedList resources.", - "type": "object" + "type": "array" }, "kind": { - "default": "compute#backendServiceAggregatedList", - "description": "Type of resource.", + "default": "compute#imageList", + "description": "Output only. Type of resource.", + "readOnly": true, "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.", + "description": "[Output Only] This token allows you to get the next page of results for\nlist requests. If the number of results is larger thanmaxResults, use the nextPageToken as a value for\nthe query parameter pageToken in the next list request.\nSubsequent list requests will have their own nextPageToken to\ncontinue paging through the results.", "type": "string" }, "selfLink": { - "description": "[Output Only] Server-defined URL for this resource.", + "description": "Output only. [Output Only] Server-defined URL for this resource.", + "readOnly": true, "type": "string" }, - "unreachables": { - "description": "[Output Only] Unreachable resources.", - "items": { - "type": "string" - }, - "type": "array" - }, "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.", + "description": "[Output Only] A warning code, if applicable. For example, Compute\nEngine returns NO_RESULTS_ON_PAGE if there\nare no results in the response.", "enum": [ "CLEANUP_FAILED", "DEPRECATED_RESOURCE_USED", @@ -40767,6 +65945,7 @@ "NOT_CRITICAL_ERROR", "NO_RESULTS_ON_PAGE", "PARTIAL_SUCCESS", + "QUOTA_INFO_UNAVAILABLE", "REQUIRED_TOS_AGREEMENT", "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", "RESOURCE_NOT_DELETED", @@ -40803,46 +65982,48 @@ false, false, false, + false, false ], "enumDescriptions": [ - "Warning about failed cleanup of transient changes made by a failed operation.", + "Warning about failed cleanup of transient changes made by a failed\noperation.", "A link to a deprecated resource was created.", - "When deploying and at least one of the resources has a type marked as deprecated", + "When deploying and at least one of the resources has a type marked as\ndeprecated", "The user created a boot disk that is larger than image size.", - "When deploying and at least one of the resources has a type marked as experimental", + "When deploying and at least one of the resources has a type marked as\nexperimental", "Warning that is present in an external api call", - "Warning that value of a field has been overridden. Deprecated unused field.", + "Warning that value of a field has been overridden.\nDeprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", - "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is\nnot of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", - "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", + "Resource can't be retrieved due to list overhead quota exceed\nwhich captures the amount of resources filtered out by\nuser-defined list filter.", "A resource depends on a missing type", - "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's nextHopIp address is not assigned to an instance on the\nnetwork.", "The route's next hop instance cannot ip forward.", - "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not have an\nipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", - "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that is not on the\nsame network as the route.", "The route's next hop instance does not have a status of RUNNING.", - "Error which is not critical. We decided to continue the process despite the mentioned error.", + "Error which is not critical. We decided to continue the process despite\nthe mentioned error.", "No results are present on a particular list page.", "Success is reported, but some results may be missing due to errors", - "The user attempted to use a resource that requires a TOS they have not accepted.", + "Quota information is not available to client requests (e.g:\nregions.list).", + "The user attempted to use a resource that requires a TOS they have not\naccepted.", "Warning that a resource is in use.", - "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "One or more of the resources set to auto-delete could not be deleted\nbecause they were in use.", "When a resource schema validation is ignored.", - "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", + "Instance template used in instance group manager is valid as such, but\nits application does not make a lot of sense, because it allows only\nsingle instance in instance group.", "When undeclared properties in the schema are present", "A given scope cannot be reached." ], "type": "string" }, "data": { - "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", + "description": "[Output Only] Metadata about this warning in key:\nvalue format. For example:\n\n\"data\": [\n {\n \"key\": \"scope\",\n \"value\": \"zones/us-east1-d\"\n }", "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).", + "description": "[Output Only] A key that provides more detail on the warning being\nreturned. For example, for warnings where there are no results in a list\nrequest for a particular zone, this key might be scope and\nthe key value might be the zone name. Other examples might be a key\nindicating a deprecated resource and a suggested replacement, or a\nwarning about invalid network settings (for example, if an instance\nattempts to perform IP forwarding but is not enabled for IP forwarding).", "type": "string" }, "value": { @@ -40864,412 +66045,388 @@ }, "type": "object" }, - "BackendServiceCdnPolicy": { - "description": "Message containing Cloud CDN configuration for a backend service.", - "id": "BackendServiceCdnPolicy", + "ImageParams": { + "description": "Additional image params.", + "id": "ImageParams", "properties": { - "bypassCacheOnRequestHeaders": { - "description": "Bypass the cache when the specified request headers are matched - e.g. Pragma or Authorization headers. Up to 5 headers can be specified. The cache is bypassed for all cdnPolicy.cacheMode settings.", + "resourceManagerTags": { + "additionalProperties": { + "type": "string" + }, + "description": "Input only. Resource manager tags to be bound to the image. Tag keys and values have\nthe same definition as resource\nmanager tags. Keys and values can be either in numeric format,\nsuch as `tagKeys/{tag_key_id}` and `tagValues/{tag_value_id}` or in\nnamespaced format such as `{org_id|project_id}/{tag_key_short_name}` and\n`{tag_value_short_name}`. The field is ignored (both PUT \u0026\nPATCH) when empty.", + "type": "object" + } + }, + "type": "object" + }, + "InitialStateConfig": { + "description": "Initial State for shielded instance,\nthese are public keys which are safe to store in public", + "id": "InitialStateConfig", + "properties": { + "dbs": { + "description": "The Key Database (db).", "items": { - "$ref": "BackendServiceCdnPolicyBypassCacheOnRequestHeader" + "$ref": "FileContentBuffer" }, "type": "array" }, - "cacheKeyPolicy": { - "$ref": "CacheKeyPolicy", - "description": "The CacheKeyPolicy for this CdnPolicy." + "dbxs": { + "description": "The forbidden key database (dbx).", + "items": { + "$ref": "FileContentBuffer" + }, + "type": "array" }, - "cacheMode": { - "description": "Specifies the cache setting for all responses from this backend. The possible values are: USE_ORIGIN_HEADERS Requires the origin to set valid caching headers to cache content. Responses without these headers will not be cached at Google's edge, and will require a full trip to the origin on every request, potentially impacting performance and increasing load on the origin server. FORCE_CACHE_ALL Cache all content, ignoring any \"private\", \"no-store\" or \"no-cache\" directives in Cache-Control response headers. Warning: this may result in Cloud CDN caching private, per-user (user identifiable) content. CACHE_ALL_STATIC Automatically cache static content, including common image formats, media (video and audio), and web assets (JavaScript and CSS). Requests and responses that are marked as uncacheable, as well as dynamic content (including HTML), will not be cached.", - "enum": [ - "CACHE_ALL_STATIC", - "FORCE_CACHE_ALL", - "INVALID_CACHE_MODE", - "USE_ORIGIN_HEADERS" - ], - "enumDescriptions": [ - "Automatically cache static content, including common image formats, media (video and audio), and web assets (JavaScript and CSS). Requests and responses that are marked as uncacheable, as well as dynamic content (including HTML), will not be cached.", - "Cache all content, ignoring any \"private\", \"no-store\" or \"no-cache\" directives in Cache-Control response headers. Warning: this may result in Cloud CDN caching private, per-user (user identifiable) content.", - "", - "Requires the origin to set valid caching headers to cache content. Responses without these headers will not be cached at Google's edge, and will require a full trip to the origin on every request, potentially impacting performance and increasing load on the origin server." - ], - "type": "string" + "keks": { + "description": "The Key Exchange Key (KEK).", + "items": { + "$ref": "FileContentBuffer" + }, + "type": "array" }, - "clientTtl": { - "description": "Specifies a separate client (e.g. browser client) maximum TTL. This is used to clamp the max-age (or Expires) value sent to the client. With FORCE_CACHE_ALL, the lesser of client_ttl and default_ttl is used for the response max-age directive, along with a \"public\" directive. For cacheable content in CACHE_ALL_STATIC mode, client_ttl clamps the max-age from the origin (if specified), or else sets the response max-age directive to the lesser of the client_ttl and default_ttl, and also ensures a \"public\" cache-control directive is present. If a client TTL is not specified, a default value (1 hour) will be used. The maximum allowed value is 31,622,400s (1 year).", - "format": "int32", - "type": "integer" + "pk": { + "$ref": "FileContentBuffer", + "description": "The Platform Key (PK)." + } + }, + "type": "object" + }, + "Instance": { + "description": "Represents an Instance resource.\n\nAn instance is a virtual machine that is hosted on Google Cloud Platform.\nFor more information, readVirtual Machine Instances.", + "id": "Instance", + "properties": { + "advancedMachineFeatures": { + "$ref": "AdvancedMachineFeatures", + "description": "Controls for advanced machine-related behavior features." }, - "defaultTtl": { - "description": "Specifies the default TTL for cached content served by this origin for responses that do not have an existing valid TTL (max-age or s-max-age). Setting a TTL of \"0\" means \"always revalidate\". The value of defaultTTL cannot be set to a value greater than that of maxTTL, but can be equal. When the cacheMode is set to FORCE_CACHE_ALL, the defaultTTL will overwrite the TTL set in all responses. The maximum allowed value is 31,622,400s (1 year), noting that infrequently accessed objects may be evicted from the cache before the defined TTL.", - "format": "int32", - "type": "integer" + "canIpForward": { + "description": "Allows this instance to send and receive packets with non-matching\ndestination or source IPs. This is required if you plan to use this\ninstance to forward routes. For more information, seeEnabling IP Forwarding.", + "type": "boolean" }, - "maxTtl": { - "description": "Specifies the maximum allowed TTL for cached content served by this origin. Cache directives that attempt to set a max-age or s-maxage higher than this, or an Expires header more than maxTTL seconds in the future will be capped at the value of maxTTL, as if it were the value of an s-maxage Cache-Control directive. Headers sent to the client will not be modified. Setting a TTL of \"0\" means \"always revalidate\". The maximum allowed value is 31,622,400s (1 year), noting that infrequently accessed objects may be evicted from the cache before the defined TTL.", - "format": "int32", - "type": "integer" + "confidentialInstanceConfig": { + "$ref": "ConfidentialInstanceConfig" }, - "negativeCaching": { - "description": "Negative caching allows per-status code TTLs to be set, in order to apply fine-grained caching for common errors or redirects. This can reduce the load on your origin and improve end-user experience by reducing response latency. When the cache mode is set to CACHE_ALL_STATIC or USE_ORIGIN_HEADERS, negative caching applies to responses with the specified response code that lack any Cache-Control, Expires, or Pragma: no-cache directives. When the cache mode is set to FORCE_CACHE_ALL, negative caching applies to all responses with the specified response code, and override any caching headers. By default, Cloud CDN will apply the following default TTLs to these status codes: HTTP 300 (Multiple Choice), 301, 308 (Permanent Redirects): 10m HTTP 404 (Not Found), 410 (Gone), 451 (Unavailable For Legal Reasons): 120s HTTP 405 (Method Not Found), 421 (Misdirected Request), 501 (Not Implemented): 60s. These defaults can be overridden in negative_caching_policy.", + "cpuPlatform": { + "description": "Output only. [Output Only] The CPU platform used by this instance.", + "readOnly": true, + "type": "string" + }, + "creationTimestamp": { + "description": "Output only. [Output Only] Creation timestamp inRFC3339 text format.", + "readOnly": true, + "type": "string" + }, + "deletionProtection": { + "description": "Whether the resource should be protected against deletion.", "type": "boolean" }, - "negativeCachingPolicy": { - "description": "Sets a cache TTL for the specified HTTP status code. negative_caching must be enabled to configure negative_caching_policy. Omitting the policy and leaving negative_caching enabled will use Cloud CDN's default cache TTLs. Note that when specifying an explicit negative_caching_policy, you should take care to specify a cache TTL for all response codes that you wish to cache. Cloud CDN will not apply any default negative caching when a policy exists.", + "description": { + "description": "An optional description of this resource. Provide this property when you\ncreate the resource.", + "type": "string" + }, + "disks": { + "description": "Array of disks associated with this instance. Persistent disks must be\ncreated before you can assign them.", "items": { - "$ref": "BackendServiceCdnPolicyNegativeCachingPolicy" + "$ref": "AttachedDisk" }, "type": "array" }, - "requestCoalescing": { - "description": "If true then Cloud CDN will combine multiple concurrent cache fill requests into a small number of requests to the origin.", - "type": "boolean" - }, - "serveWhileStale": { - "description": "Serve existing content from the cache (if available) when revalidating content with the origin, or when an error is encountered when refreshing the cache. This setting defines the default \"max-stale\" duration for any cached responses that do not specify a max-stale directive. Stale responses that exceed the TTL configured here will not be served. The default limit (max-stale) is 86400s (1 day), which will allow stale content to be served up to this limit beyond the max-age (or s-max-age) of a cached response. The maximum allowed value is 604800 (1 week). Set this to zero (0) to disable serve-while-stale.", - "format": "int32", - "type": "integer" + "displayDevice": { + "$ref": "DisplayDevice", + "description": "Enables display device for the instance." }, - "signedUrlCacheMaxAgeSec": { - "description": "Maximum number of seconds the response to a signed URL request will be considered fresh. After this time period, the response will be revalidated before being served. Defaults to 1hr (3600s). When serving responses to signed URL requests, Cloud CDN will internally behave 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", + "fingerprint": { + "description": "Specifies a fingerprint for this resource, which is essentially a hash of\nthe instance's contents and used for optimistic locking. The\nfingerprint is initially generated by Compute Engine and changes after\nevery request to modify or update the instance. You must always provide an\nup-to-date fingerprint hash in order to update the instance.\n\nTo see the latest fingerprint, make get() request to the\ninstance.", + "format": "byte", "type": "string" }, - "signedUrlKeyNames": { - "description": "[Output Only] Names of the keys for signing request URLs.", + "guestAccelerators": { + "description": "A list of the type and count of accelerator cards attached to the instance.", "items": { - "type": "string" + "$ref": "AcceleratorConfig" }, "type": "array" - } - }, - "type": "object" - }, - "BackendServiceCdnPolicyBypassCacheOnRequestHeader": { - "description": "Bypass the cache when the specified request headers are present, e.g. Pragma or Authorization headers. Values are case insensitive. The presence of such a header overrides the cache_mode setting.", - "id": "BackendServiceCdnPolicyBypassCacheOnRequestHeader", - "properties": { - "headerName": { - "description": "The header field name to match on when bypassing cache. Values are case-insensitive.", - "type": "string" - } - }, - "type": "object" - }, - "BackendServiceCdnPolicyNegativeCachingPolicy": { - "description": "Specify CDN TTLs for response error codes.", - "id": "BackendServiceCdnPolicyNegativeCachingPolicy", - "properties": { - "code": { - "description": "The HTTP status code to define a TTL against. Only HTTP status codes 300, 301, 302, 307, 308, 404, 405, 410, 421, 451 and 501 are can be specified as values, and you cannot specify a status code more than once.", - "format": "int32", - "type": "integer" }, - "ttl": { - "description": "The TTL (in seconds) for which to cache responses with the corresponding status code. The maximum allowed value is 1800s (30 minutes), noting that infrequently accessed objects may be evicted from the cache before the defined TTL.", - "format": "int32", - "type": "integer" - } - }, - "type": "object" - }, - "BackendServiceConnectionTrackingPolicy": { - "description": "Connection Tracking configuration for this BackendService.", - "id": "BackendServiceConnectionTrackingPolicy", - "properties": { - "connectionPersistenceOnUnhealthyBackends": { - "description": "Specifies connection persistence when backends are unhealthy. The default value is DEFAULT_FOR_PROTOCOL. If set to DEFAULT_FOR_PROTOCOL, the existing connections persist on unhealthy backends only for connection-oriented protocols (TCP and SCTP) and only if the Tracking Mode is PER_CONNECTION (default tracking mode) or the Session Affinity is configured for 5-tuple. They do not persist for UDP. If set to NEVER_PERSIST, after a backend becomes unhealthy, the existing connections on the unhealthy backend are never persisted on the unhealthy backend. They are always diverted to newly selected healthy backends (unless all backends are unhealthy). If set to ALWAYS_PERSIST, existing connections always persist on unhealthy backends regardless of protocol and session affinity. It is generally not recommended to use this mode overriding the default. For more details, see [Connection Persistence for Network Load Balancing](https://cloud.google.com/load-balancing/docs/network/networklb-backend-service#connection-persistence) and [Connection Persistence for Internal TCP/UDP Load Balancing](https://cloud.google.com/load-balancing/docs/internal#connection-persistence).", - "enum": [ - "ALWAYS_PERSIST", - "DEFAULT_FOR_PROTOCOL", - "NEVER_PERSIST" - ], - "enumDescriptions": [ - "", - "", - "" - ], + "hostname": { + "description": "Specifies the hostname of the instance. The specified hostname must be\nRFC1035 compliant. If hostname is not specified, the default hostname is\n[INSTANCE_NAME].c.[PROJECT_ID].internal when using the global DNS, and\n[INSTANCE_NAME].[ZONE].c.[PROJECT_ID].internal when using zonal DNS.", "type": "string" }, - "enableStrongAffinity": { - "description": "Enable Strong Session Affinity for external passthrough Network Load Balancers. This option is not available publicly.", - "type": "boolean" + "id": { + "description": "Output only. [Output Only] The unique identifier for the resource. This identifier is\ndefined by the server.", + "format": "uint64", + "readOnly": true, + "type": "string" }, - "idleTimeoutSec": { - "description": "Specifies how long to keep a Connection Tracking entry while there is no matching traffic (in seconds). For internal passthrough Network Load Balancers: - The minimum (default) is 10 minutes and the maximum is 16 hours. - It can be set only if Connection Tracking is less than 5-tuple (i.e. Session Affinity is CLIENT_IP_NO_DESTINATION, CLIENT_IP or CLIENT_IP_PROTO, and Tracking Mode is PER_SESSION). For external passthrough Network Load Balancers the default is 60 seconds. This option is not available publicly.", - "format": "int32", - "type": "integer" + "instanceEncryptionKey": { + "$ref": "CustomerEncryptionKey", + "description": "Encrypts suspended data for an instance with acustomer-managed\nencryption key.\n\nIf you are creating a new instance, this field will encrypt the local SSD\nand in-memory contents of the instance during the suspend operation.\n\nIf you do not provide an encryption key when creating the instance, then\nthe local SSD and in-memory contents will be encrypted using\nan automatically generated key during the suspend operation." }, - "trackingMode": { - "description": "Specifies the key used for connection tracking. There are two options: - PER_CONNECTION: This is the default mode. The Connection Tracking is performed as per the Connection Key (default Hash Method) for the specific protocol. - PER_SESSION: The Connection Tracking is performed as per the configured Session Affinity. It matches the configured Session Affinity. For more details, see [Tracking Mode for Network Load Balancing](https://cloud.google.com/load-balancing/docs/network/networklb-backend-service#tracking-mode) and [Tracking Mode for Internal TCP/UDP Load Balancing](https://cloud.google.com/load-balancing/docs/internal#tracking-mode).", + "keyRevocationActionType": { + "description": "KeyRevocationActionType of the instance. Supported options are \"STOP\" and\n\"NONE\". The default value is \"NONE\" if it is not specified.", "enum": [ - "INVALID_TRACKING_MODE", - "PER_CONNECTION", - "PER_SESSION" + "KEY_REVOCATION_ACTION_TYPE_UNSPECIFIED", + "NONE", + "STOP" ], "enumDescriptions": [ - "", - "", - "" + "Default value. This value is unused.", + "Indicates user chose no operation.", + "Indicates user chose to opt for VM shutdown on key revocation." ], "type": "string" - } - }, - "type": "object" - }, - "BackendServiceFailoverPolicy": { - "description": "For load balancers that have configurable failover: [Internal passthrough Network Load Balancers](https://cloud.google.com/load-balancing/docs/internal/failover-overview) and [external passthrough Network Load Balancers](https://cloud.google.com/load-balancing/docs/network/networklb-failover-overview). On failover or failback, this field indicates whether connection draining will be honored. Google Cloud has a fixed connection draining timeout of 10 minutes. A setting of true terminates existing TCP connections to the active pool during failover and failback, immediately draining traffic. A setting of false allows existing TCP connections to persist, even on VMs no longer in the active pool, for up to the duration of the connection draining timeout (10 minutes).", - "id": "BackendServiceFailoverPolicy", - "properties": { - "disableConnectionDrainOnFailover": { - "description": "This can be set to true only if the protocol is TCP. The default is false.", - "type": "boolean" }, - "dropTrafficIfUnhealthy": { - "description": "If set to true, connections to the load balancer are dropped when all primary and all backup backend VMs are unhealthy.If set to false, connections are distributed among all primary VMs when all primary and all backup backend VMs are unhealthy. For load balancers that have configurable failover: [Internal passthrough Network Load Balancers](https://cloud.google.com/load-balancing/docs/internal/failover-overview) and [external passthrough Network Load Balancers](https://cloud.google.com/load-balancing/docs/network/networklb-failover-overview). The default is false.", - "type": "boolean" + "kind": { + "default": "compute#instance", + "description": "Output only. [Output Only] Type of the resource. Always compute#instance\nfor instances.", + "readOnly": true, + "type": "string" }, - "failoverRatio": { - "description": "The value of the field must be in the range [0, 1]. If the value is 0, the load balancer performs a failover when the number of healthy primary VMs equals zero. For all other values, the load balancer performs a failover when the total number of healthy primary VMs is less than this ratio. For load balancers that have configurable failover: [Internal TCP/UDP Load Balancing](https://cloud.google.com/load-balancing/docs/internal/failover-overview) and [external TCP/UDP Load Balancing](https://cloud.google.com/load-balancing/docs/network/networklb-failover-overview).", - "format": "float", - "type": "number" - } - }, - "type": "object" - }, - "BackendServiceGroupHealth": { - "id": "BackendServiceGroupHealth", - "properties": { - "annotations": { + "labelFingerprint": { + "description": "A fingerprint for this request, which is essentially a hash of\nthe label's contents and used for optimistic locking. The\nfingerprint is initially generated by Compute Engine and changes after\nevery request to modify or update labels. You must always provide an\nup-to-date fingerprint hash in order to update or change labels.\n\nTo see the latest fingerprint, make get() request to the\ninstance.", + "format": "byte", + "type": "string" + }, + "labels": { "additionalProperties": { "type": "string" }, - "description": "Metadata defined as annotations on the network endpoint group.", + "description": "Labels to apply to this instance. These can be later modified by\nthe setLabels method.", "type": "object" }, - "healthStatus": { - "description": "Health state of the backend instances or endpoints in requested instance or network endpoint group, determined based on configured health checks.", - "items": { - "$ref": "HealthStatus" - }, - "type": "array" + "lastStartTimestamp": { + "description": "Output only. [Output Only] Last start timestamp inRFC3339 text format.", + "readOnly": true, + "type": "string" }, - "kind": { - "default": "compute#backendServiceGroupHealth", - "description": "[Output Only] Type of resource. Always compute#backendServiceGroupHealth for the health of backend services.", + "lastStopTimestamp": { + "description": "Output only. [Output Only] Last stop timestamp inRFC3339 text format.", + "readOnly": true, "type": "string" - } - }, - "type": "object" - }, - "BackendServiceIAP": { - "description": "Identity-Aware Proxy", - "id": "BackendServiceIAP", - "properties": { - "enabled": { - "description": "Whether the serving infrastructure will authenticate and authorize all incoming requests.", - "type": "boolean" }, - "oauth2ClientId": { - "description": "OAuth2 client ID to use for the authentication flow.", + "lastSuspendedTimestamp": { + "description": "Output only. [Output Only] Last suspended timestamp inRFC3339 text format.", + "readOnly": true, "type": "string" }, - "oauth2ClientSecret": { - "description": "OAuth2 client secret to use for the authentication flow. For security reasons, this value cannot be retrieved via the API. Instead, the SHA-256 hash of the value is returned in the oauth2ClientSecretSha256 field. @InputOnly", + "localSsdEncryptionMode": { + "description": "Specifies which method should be used for encrypting the\nLocal SSDs attached to the VM.", + "enum": [ + "EPHEMERAL_KEY_ENCRYPTION", + "LOCAL_SSD_ENCRYPTION_MODE_UNSPECIFIED", + "STANDARD_ENCRYPTION" + ], + "enumDescriptions": [ + "The given VM will opt-in for using ephemeral key for\nencryption of Local SSDs.\nThe Local SSDs will not be able to recover data in case of VM\ncrash.", + "The given VM will be encrypted using keys managed by the cloud\ninfrastructure and the keys will be deleted when the VM is\ndeleted.", + "The given VM will be encrypted using keys managed by the cloud\ninfrastructure and the keys will be deleted when the VM is\ndeleted." + ], "type": "string" }, - "oauth2ClientSecretSha256": { - "description": "[Output Only] SHA256 hash value for the field oauth2_client_secret above.", + "machineType": { + "description": "Full or partial URL of the machine type resource to use for this instance,\nin the format:zones/zone/machineTypes/machine-type. This is provided by the client\nwhen the instance is created. For example, the following is a valid partial\nurl to a predefined\nmachine type:\n\nzones/us-central1-f/machineTypes/n1-standard-1\n\n\nTo create acustom\nmachine type, provide a URL to a machine type in the following format,\nwhere CPUS is 1 or an even number up to 32 (2,\n4, 6, ... 24, etc), and MEMORY is the total\nmemory for this instance. Memory must be a multiple of 256 MB and must\nbe supplied in MB (e.g. 5 GB of memory is 5120 MB):\n\nzones/zone/machineTypes/custom-CPUS-MEMORY\n\n\nFor example: zones/us-central1-f/machineTypes/custom-4-5120\nFor a full list of restrictions, read theSpecifications\nfor custom machine types.", "type": "string" - } - }, - "type": "object" - }, - "BackendServiceList": { - "description": "Contains a list of BackendService resources.", - "id": "BackendServiceList", - "properties": { - "id": { - "description": "[Output Only] Unique identifier for the resource; defined by the server.", + }, + "metadata": { + "$ref": "Metadata", + "description": "The metadata key/value pairs assigned\nto this instance. This includes metadata keys that were explicitly defined\nfor the instance." + }, + "minCpuPlatform": { + "description": "Specifies aminimum CPU\nplatform for the VM instance. Applicable values are the friendly names\nof CPU platforms, such as minCpuPlatform: \"Intel\nHaswell\" or minCpuPlatform: \"Intel Sandy\nBridge\".", "type": "string" }, - "items": { - "description": "A list of BackendService resources.", + "name": { + "annotations": { + "required": [ + "compute.instances.insert" + ] + }, + "description": "The name of the resource, provided by the client when initially creating\nthe resource. The resource name must be 1-63 characters long, and comply\nwithRFC1035.\nSpecifically, the name must be 1-63 characters long and match the regular\nexpression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first\ncharacter must be a lowercase letter, and all following characters must be\na dash, lowercase letter, or digit, except the last character, which cannot\nbe a dash.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "type": "string" + }, + "networkInterfaces": { + "description": "An array of network configurations for this instance. These specify how\ninterfaces are configured to interact with other network services, such as\nconnecting to the internet. Multiple interfaces are supported\nper instance.", "items": { - "$ref": "BackendService" + "$ref": "NetworkInterface" }, "type": "array" }, - "kind": { - "default": "compute#backendServiceList", - "description": "[Output Only] Type of resource. Always compute#backendServiceList for lists of backend services.", - "type": "string" + "networkPerformanceConfig": { + "$ref": "NetworkPerformanceConfig" }, - "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.", + "params": { + "$ref": "InstanceParams", + "description": "Input only. [Input Only] Additional params passed with the request, but not persisted\nas part of resource payload." + }, + "privateIpv6GoogleAccess": { + "description": "The private IPv6 google access type for the VM.\nIf not specified, use INHERIT_FROM_SUBNETWORK as default.", + "enum": [ + "ENABLE_BIDIRECTIONAL_ACCESS_TO_GOOGLE", + "ENABLE_OUTBOUND_VM_ACCESS_TO_GOOGLE", + "INHERIT_FROM_SUBNETWORK" + ], + "enumDescriptions": [ + "Bidirectional private IPv6 access to/from Google services. If\nspecified, the subnetwork who is attached to the instance's default network\ninterface will be assigned an internal IPv6 prefix if it doesn't have\nbefore.", + "Outbound private IPv6 access from VMs in this subnet to Google services. If\nspecified, the subnetwork who is attached to the instance's default network\ninterface will be assigned an internal IPv6 prefix if it doesn't have\nbefore.", + "Each network interface inherits PrivateIpv6GoogleAccess from its\nsubnetwork." + ], "type": "string" }, + "reservationAffinity": { + "$ref": "ReservationAffinity", + "description": "Specifies the reservations that this instance can consume from." + }, + "resourcePolicies": { + "description": "Resource policies applied to this instance.", + "items": { + "type": "string" + }, + "type": "array" + }, + "resourceStatus": { + "$ref": "ResourceStatus", + "description": "Output only. [Output Only] Specifies values set for instance attributes as\ncompared to the values requested by user in the corresponding input only\nfield.", + "readOnly": true + }, + "satisfiesPzi": { + "description": "Output only. [Output Only] Reserved for future use.", + "readOnly": true, + "type": "boolean" + }, + "satisfiesPzs": { + "description": "Output only. [Output Only] Reserved for future use.", + "readOnly": true, + "type": "boolean" + }, + "scheduling": { + "$ref": "Scheduling", + "description": "Sets the scheduling options for this instance." + }, "selfLink": { - "description": "[Output Only] Server-defined URL for this resource.", + "description": "Output only. [Output Only] Server-defined URL for this resource.", + "readOnly": true, "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", - "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", - "LARGE_DEPLOYMENT_WARNING", - "LIST_OVERHEAD_QUOTA_EXCEED", - "MISSING_TYPE_DEPENDENCY", - "NEXT_HOP_ADDRESS_NOT_ASSIGNED", - "NEXT_HOP_CANNOT_IP_FORWARD", - "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", - "NEXT_HOP_INSTANCE_NOT_FOUND", - "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", - "NEXT_HOP_NOT_RUNNING", - "NOT_CRITICAL_ERROR", - "NO_RESULTS_ON_PAGE", - "PARTIAL_SUCCESS", - "REQUIRED_TOS_AGREEMENT", - "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", - "RESOURCE_NOT_DELETED", - "SCHEMA_VALIDATION_IGNORED", - "SINGLE_INSTANCE_PROPERTY_TEMPLATE", - "UNDECLARED_PROPERTIES", - "UNREACHABLE" - ], - "enumDeprecated": [ - false, - false, - false, - false, - false, - false, - true, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false - ], - "enumDescriptions": [ - "Warning about failed cleanup of transient changes made by a failed operation.", - "A link to a deprecated resource was created.", - "When deploying and at least one of the resources has a type marked as deprecated", - "The user created a boot disk that is larger than image size.", - "When deploying and at least one of the resources has a type marked as experimental", - "Warning that is present in an external api call", - "Warning that value of a field has been overridden. Deprecated unused field.", - "The operation involved use of an injected kernel, which is deprecated.", - "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", - "When deploying a deployment with a exceedingly large number of resources", - "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", - "A resource depends on a missing type", - "The route's nextHopIp address is not assigned to an instance on the network.", - "The route's next hop instance cannot ip forward.", - "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", - "The route's nextHopInstance URL refers to an instance that does not exist.", - "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", - "The route's next hop instance does not have a status of RUNNING.", - "Error which is not critical. We decided to continue the process despite the mentioned error.", - "No results are present on a particular list page.", - "Success is reported, but some results may be missing due to errors", - "The user attempted to use a resource that requires a TOS they have not accepted.", - "Warning that a resource is in use.", - "One or more of the resources set to auto-delete could not be deleted because they were in use.", - "When a resource schema validation is ignored.", - "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", - "When undeclared properties in the schema are present", - "A given scope cannot be reached." - ], - "type": "string" - }, - "data": { - "description": "[Output Only] Metadata about this warning in key: value format. For example: \"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" - } + "serviceAccounts": { + "description": "A list of service accounts, with their specified scopes, authorized for\nthis instance. Only one service account per VM instance is supported.\n\nService accounts generate access tokens that can be accessed\nthrough the metadata server and used to authenticate applications on the\ninstance. SeeService Accounts\nfor more information.", + "items": { + "$ref": "ServiceAccount" }, - "type": "object" + "type": "array" + }, + "shieldedInstanceConfig": { + "$ref": "ShieldedInstanceConfig" + }, + "shieldedInstanceIntegrityPolicy": { + "$ref": "ShieldedInstanceIntegrityPolicy" + }, + "sourceMachineImage": { + "description": "Source machine image", + "type": "string" + }, + "sourceMachineImageEncryptionKey": { + "$ref": "CustomerEncryptionKey", + "description": "Source machine image encryption key when creating an instance from a\nmachine image." + }, + "startRestricted": { + "description": "Output only. [Output Only] Whether a VM has been restricted for start because Compute\nEngine has detected suspicious activity.", + "readOnly": true, + "type": "boolean" + }, + "status": { + "description": "Output only. [Output Only] The status of the instance. One of the\nfollowing values: PROVISIONING, STAGING,RUNNING, STOPPING, SUSPENDING,SUSPENDED, REPAIRING, andTERMINATED. For more information about the status of the\ninstance, see \nInstance life cycle.", + "enum": [ + "DEPROVISIONING", + "PENDING", + "PROVISIONING", + "REPAIRING", + "RUNNING", + "STAGING", + "STOPPED", + "STOPPING", + "SUSPENDED", + "SUSPENDING", + "TERMINATED" + ], + "enumDescriptions": [ + "The instance is halted and we are performing tear down tasks like network\ndeprogramming, releasing quota, IP, tearing down disks etc.", + "For Flex Start provisioning instance is waiting for available capacity\nfrom Dynamic Workload Scheduler (DWS).", + "Resources are being allocated for the instance.", + "The instance is in repair.", + "The instance is running.", + "All required resources have been allocated and the instance\nis being started.", + "The instance has stopped successfully.", + "The instance is currently stopping (either being deleted or killed).", + "The instance has suspended.", + "The instance is suspending.", + "The instance has stopped (either by explicit action or underlying\nfailure)." + ], + "readOnly": true, + "type": "string" + }, + "statusMessage": { + "description": "Output only. [Output Only] An optional, human-readable explanation of the status.", + "readOnly": true, + "type": "string" + }, + "tags": { + "$ref": "Tags", + "description": "Tags to apply to this instance. Tags are used to identify valid\nsources or targets for network firewalls and are specified by the client\nduring instance creation. The tags can be later modified by the setTags\nmethod. Each tag within the list must comply withRFC1035.\nMultiple tags can be specified via the 'tags.items' field." + }, + "workloadIdentityConfig": { + "$ref": "WorkloadIdentityConfig" + }, + "zone": { + "description": "Output only. [Output Only] URL of the zone where the instance resides.\nYou must specify this field as part of the HTTP request URL. It is\nnot settable as a field in the request body.", + "readOnly": true, + "type": "string" } }, "type": "object" }, - "BackendServiceListUsable": { - "description": "Contains a list of usable BackendService resources.", - "id": "BackendServiceListUsable", + "InstanceAggregatedList": { + "id": "InstanceAggregatedList", "properties": { "id": { "description": "[Output Only] Unique identifier for the resource; defined by the server.", "type": "string" }, "items": { - "description": "A list of BackendService resources.", - "items": { - "$ref": "BackendService" + "additionalProperties": { + "$ref": "InstancesScopedList", + "description": "[Output Only] Name of the scope containing this set of instances." }, - "type": "array" + "description": "An object that contains a list of instances scoped by zone.", + "type": "object" }, "kind": { - "default": "compute#usableBackendServiceList", - "description": "[Output Only] Type of resource. Always compute#usableBackendServiceList for lists of usable backend services.", + "default": "compute#instanceAggregatedList", + "description": "Output only. [Output Only] Type of resource. Alwayscompute#instanceAggregatedList for aggregated lists of\nInstance resources.", + "readOnly": true, "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.", + "description": "[Output Only] This token allows you to get the next page of results for\nlist requests. If the number of results is larger thanmaxResults, use the nextPageToken as a value for\nthe query parameter pageToken in the next list request.\nSubsequent list requests will have their own nextPageToken to\ncontinue paging through the results.", "type": "string" }, "selfLink": { - "description": "[Output Only] Server-defined URL for this resource.", + "description": "Output only. [Output Only] Server-defined URL for this resource.", + "readOnly": true, "type": "string" }, + "unreachables": { + "description": "Output only. [Output Only] Unreachable resources.", + "items": { + "type": "string" + }, + "readOnly": true, + "type": "array" + }, "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.", + "description": "[Output Only] A warning code, if applicable. For example, Compute\nEngine returns NO_RESULTS_ON_PAGE if there\nare no results in the response.", "enum": [ "CLEANUP_FAILED", "DEPRECATED_RESOURCE_USED", @@ -41292,6 +66449,7 @@ "NOT_CRITICAL_ERROR", "NO_RESULTS_ON_PAGE", "PARTIAL_SUCCESS", + "QUOTA_INFO_UNAVAILABLE", "REQUIRED_TOS_AGREEMENT", "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", "RESOURCE_NOT_DELETED", @@ -41328,46 +66486,48 @@ false, false, false, + false, false ], "enumDescriptions": [ - "Warning about failed cleanup of transient changes made by a failed operation.", + "Warning about failed cleanup of transient changes made by a failed\noperation.", "A link to a deprecated resource was created.", - "When deploying and at least one of the resources has a type marked as deprecated", + "When deploying and at least one of the resources has a type marked as\ndeprecated", "The user created a boot disk that is larger than image size.", - "When deploying and at least one of the resources has a type marked as experimental", + "When deploying and at least one of the resources has a type marked as\nexperimental", "Warning that is present in an external api call", - "Warning that value of a field has been overridden. Deprecated unused field.", + "Warning that value of a field has been overridden.\nDeprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", - "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is\nnot of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", - "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", + "Resource can't be retrieved due to list overhead quota exceed\nwhich captures the amount of resources filtered out by\nuser-defined list filter.", "A resource depends on a missing type", - "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's nextHopIp address is not assigned to an instance on the\nnetwork.", "The route's next hop instance cannot ip forward.", - "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not have an\nipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", - "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that is not on the\nsame network as the route.", "The route's next hop instance does not have a status of RUNNING.", - "Error which is not critical. We decided to continue the process despite the mentioned error.", + "Error which is not critical. We decided to continue the process despite\nthe mentioned error.", "No results are present on a particular list page.", "Success is reported, but some results may be missing due to errors", - "The user attempted to use a resource that requires a TOS they have not accepted.", + "Quota information is not available to client requests (e.g:\nregions.list).", + "The user attempted to use a resource that requires a TOS they have not\naccepted.", "Warning that a resource is in use.", - "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "One or more of the resources set to auto-delete could not be deleted\nbecause they were in use.", "When a resource schema validation is ignored.", - "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", + "Instance template used in instance group manager is valid as such, but\nits application does not make a lot of sense, because it allows only\nsingle instance in instance group.", "When undeclared properties in the schema are present", "A given scope cannot be reached." ], "type": "string" }, "data": { - "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", + "description": "[Output Only] Metadata about this warning in key:\nvalue format. For example:\n\n\"data\": [\n {\n \"key\": \"scope\",\n \"value\": \"zones/us-east1-d\"\n }", "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).", + "description": "[Output Only] A key that provides more detail on the warning being\nreturned. For example, for warnings where there are no results in a list\nrequest for a particular zone, this key might be scope and\nthe key value might be the zone name. Other examples might be a key\nindicating a deprecated resource and a suggested replacement, or a\nwarning about invalid network settings (for example, if an instance\nattempts to perform IP forwarding but is not enabled for IP forwarding).", "type": "string" }, "value": { @@ -41389,135 +66549,218 @@ }, "type": "object" }, - "BackendServiceLocalityLoadBalancingPolicyConfig": { - "description": "Container for either a built-in LB policy supported by gRPC or Envoy or a custom one implemented by the end user.", - "id": "BackendServiceLocalityLoadBalancingPolicyConfig", + "InstanceConsumptionData": { + "id": "InstanceConsumptionData", "properties": { - "customPolicy": { - "$ref": "BackendServiceLocalityLoadBalancingPolicyConfigCustomPolicy" + "consumptionInfo": { + "$ref": "InstanceConsumptionInfo", + "description": "Output only. Resources consumed by the instance.", + "readOnly": true }, - "policy": { - "$ref": "BackendServiceLocalityLoadBalancingPolicyConfigPolicy" + "instance": { + "description": "Output only. Server-defined URL for the instance.", + "readOnly": true, + "type": "string" } }, "type": "object" }, - "BackendServiceLocalityLoadBalancingPolicyConfigCustomPolicy": { - "description": "The configuration for a custom policy implemented by the user and deployed with the client.", - "id": "BackendServiceLocalityLoadBalancingPolicyConfigCustomPolicy", + "InstanceConsumptionInfo": { + "id": "InstanceConsumptionInfo", "properties": { - "data": { - "description": "An optional, arbitrary JSON object with configuration data, understood by a locally installed custom policy implementation.", - "type": "string" + "guestCpus": { + "description": "Output only. The number of virtual CPUs that are available to the instance.", + "format": "int32", + "readOnly": true, + "type": "integer" }, - "name": { - "description": "Identifies the custom policy. The value should match the name of a custom implementation registered on the gRPC clients. It should follow protocol buffer message naming conventions and include the full path (for example, myorg.CustomLbPolicy). The maximum length is 256 characters. Do not specify the same custom policy more than once for a backend. If you do, the configuration is rejected. For an example of how to use this field, see Use a custom policy.", - "type": "string" + "localSsdGb": { + "description": "Output only. The amount of local SSD storage available to the instance,\ndefined in GiB.", + "format": "int32", + "readOnly": true, + "type": "integer" + }, + "memoryMb": { + "description": "Output only. The amount of physical memory available to the instance,\ndefined in MiB.", + "format": "int32", + "readOnly": true, + "type": "integer" + }, + "minNodeCpus": { + "description": "Output only. The minimal guaranteed number of virtual CPUs that are reserved.", + "format": "int32", + "readOnly": true, + "type": "integer" } }, "type": "object" }, - "BackendServiceLocalityLoadBalancingPolicyConfigPolicy": { - "description": "The configuration for a built-in load balancing policy.", - "id": "BackendServiceLocalityLoadBalancingPolicyConfigPolicy", + "InstanceFlexibilityPolicy": { + "description": "A flexible specification of machine types for instances to create.", + "id": "InstanceFlexibilityPolicy", "properties": { - "name": { - "description": "The name of a locality load-balancing policy. Valid values include ROUND_ROBIN and, for Java clients, LEAST_REQUEST. For information about these values, see the description of localityLbPolicy. Do not specify the same policy more than once for a backend. If you do, the configuration is rejected.", - "enum": [ - "INVALID_LB_POLICY", - "LEAST_REQUEST", - "MAGLEV", - "ORIGINAL_DESTINATION", - "RANDOM", - "RING_HASH", - "ROUND_ROBIN", - "WEIGHTED_MAGLEV" - ], - "enumDescriptions": [ - "", - "An O(1) algorithm which selects two random healthy hosts and picks the host which has fewer active requests.", - "This algorithm implements consistent hashing to backends. Maglev can be used as a drop in replacement for the ring hash load balancer. Maglev is not as stable as ring hash but has faster table lookup build times and host selection times. For more information about Maglev, see https://ai.google/research/pubs/pub44824", - "Backend host is selected based on the client connection metadata, i.e., connections are opened to the same address as the destination address of the incoming connection before the connection was redirected to the load balancer.", - "The load balancer selects a random healthy host.", - "The ring/modulo hash load balancer implements consistent hashing to backends. The algorithm has the property that the addition/removal of a host from a set of N hosts only affects 1/N of the requests.", - "This is a simple policy in which each healthy backend is selected in round robin order. This is the default.", - "Per-instance weighted Load Balancing via health check reported weights. If set, the Backend Service must configure a non legacy HTTP-based Health Check, and health check replies are expected to contain non-standard HTTP response header field X-Load-Balancing-Endpoint-Weight to specify the per-instance weights. If set, Load Balancing is weighted based on the per-instance weights reported in the last processed health check replies, as long as every instance either reported a valid weight or had UNAVAILABLE_WEIGHT. Otherwise, Load Balancing remains equal-weight. This option is only supported in Network Load Balancing." - ], - "type": "string" + "instanceSelections": { + "additionalProperties": { + "$ref": "InstanceFlexibilityPolicyInstanceSelection" + }, + "description": "Specification of alternative, flexible instance subsets.\nOne of them will be selected to create the instances\nbased on various criteria, like:\n- ranks,\n- location policy,\n- current capacity,\n- available reservations (you can specify affinity in\nInstanceProperties),\n- SWAN/GOOSE limitations.\nKey is an arbitrary, unique RFC1035 string that identifies the instance\nselection.", + "type": "object" } }, "type": "object" }, - "BackendServiceLogConfig": { - "description": "The available logging options for the load balancer traffic served by this backend service.", - "id": "BackendServiceLogConfig", + "InstanceFlexibilityPolicyInstanceSelection": { + "description": "Specification of machine type to use. Every position inside this message\nis an alternative.\nThe count specified in the shape flexibility must not exceed the number\nof entries in per_instance_properties or the capacity of the\nname_pattern, if used.", + "id": "InstanceFlexibilityPolicyInstanceSelection", "properties": { - "enable": { - "description": "Denotes whether to enable logging for the load balancer traffic served by this backend service. The default value is false.", - "type": "boolean" + "disks": { + "description": "Disks to be attached to the instances created from in this selection.\nThey override the disks specified in the instance properties.", + "items": { + "$ref": "AttachedDisk" + }, + "type": "array" }, - "optionalFields": { - "description": "This field can only be specified if logging is enabled for this backend service and \"logConfig.optionalMode\" was set to CUSTOM. Contains a list of optional fields you want to include in the logs. For example: serverInstance, serverGkeDetails.cluster, serverGkeDetails.pod.podNamespace", + "machineTypes": { + "description": "Alternative machine types to use for instances that are created from\nthese properties. This field only accepts a machine type names, for\nexample `n2-standard-4` and not URLs or partial URLs.", "items": { "type": "string" }, "type": "array" }, - "optionalMode": { - "description": "This field can only be specified if logging is enabled for this backend service. Configures whether all, none or a subset of optional fields should be added to the reported logs. One of [INCLUDE_ALL_OPTIONAL, EXCLUDE_ALL_OPTIONAL, CUSTOM]. Default is EXCLUDE_ALL_OPTIONAL.", - "enum": [ - "CUSTOM", - "EXCLUDE_ALL_OPTIONAL", - "INCLUDE_ALL_OPTIONAL" - ], - "enumDescriptions": [ - "A subset of optional fields.", - "None optional fields.", - "All optional fields." - ], + "rank": { + "description": "Rank when prioritizing the shape flexibilities.\nThe instance selections with rank are considered\nfirst, in the ascending order of the rank.\nIf not set, defaults to 0.", + "format": "int64", "type": "string" - }, - "sampleRate": { - "description": "This field can only be specified if logging is enabled for this backend service. The value of the field must be in [0, 1]. This configures the sampling rate of requests to the load balancer where 1.0 means all logged requests are reported and 0.0 means no logged requests are reported. The default value is 1.0.", - "format": "float", - "type": "number" } }, "type": "object" }, - "BackendServiceReference": { - "id": "BackendServiceReference", + "InstanceGroup": { + "description": "Represents an Instance Group resource.\n\nInstance Groups can be used to configure a target forload\nbalancing.\n\nInstance groups can either be managed or unmanaged.\n\nTo create \nmanaged instance groups, use the instanceGroupManager orregionInstanceGroupManager resource instead.\n\nUse zonal unmanaged instance groups if you need to applyload\nbalancing to groups of heterogeneous instances or if you need to manage\nthe instances yourself. You cannot create regional unmanaged instance groups.\n\nFor more information, readInstance\ngroups.", + "id": "InstanceGroup", "properties": { - "backendService": { + "creationTimestamp": { + "description": "Output only. [Output Only] The creation timestamp for this instance group inRFC3339\ntext format.", + "readOnly": true, "type": "string" - } - }, - "type": "object" - }, - "BackendServiceUsedBy": { - "id": "BackendServiceUsedBy", - "properties": { - "reference": { + }, + "description": { + "description": "An optional description of this resource. Provide this property when you\ncreate the resource.", + "type": "string" + }, + "fingerprint": { + "description": "Output only. [Output Only] The fingerprint of the named ports. The system\nuses this fingerprint to detect conflicts when multiple users change the\nnamed ports concurrently.", + "format": "byte", + "readOnly": true, + "type": "string" + }, + "id": { + "description": "Output only. [Output Only] A unique identifier for this instance group, generated\nby the server.", + "format": "uint64", + "readOnly": true, + "type": "string" + }, + "kind": { + "default": "compute#instanceGroup", + "description": "Output only. [Output Only] The resource type, which is alwayscompute#instanceGroup for instance groups.", + "readOnly": true, + "type": "string" + }, + "name": { + "annotations": { + "required": [ + "compute.instanceGroups.insert" + ] + }, + "description": "The name of the instance group. The name must be 1-63 characters\nlong, and comply withRFC1035.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "type": "string" + }, + "namedPorts": { + "description": "Optional. Assigns a name to a port number. For example:{name: \"http\", port: 80}\n\nThis\nallows the system to reference ports by the assigned name instead of a\nport number. Named ports can also contain multiple ports. For example:[{name: \"app1\", port: 8080}, {name:\n\"app1\", port: 8081}, {name: \"app2\", port:\n8082}]\n\nNamed ports apply to all instances in this instance group.", + "items": { + "$ref": "NamedPort" + }, + "type": "array" + }, + "network": { + "description": "[Output Only] The URL of the network to which all instances in the\ninstance group belong. If your instance has multiple network interfaces,\nthen the network and subnetwork fields only refer to the\nnetwork and subnet used by your primary interface (nic0).", + "type": "string" + }, + "region": { + "description": "Output only. [Output Only] The URL of theregion\nwhere the instance group is located (for regional resources).", + "readOnly": true, + "type": "string" + }, + "selfLink": { + "description": "Output only. [Output Only] The URL for this instance group. The server generates\nthis URL.", + "readOnly": true, + "type": "string" + }, + "size": { + "description": "Output only. [Output Only] The total number of instances in the instance group.", + "format": "int32", + "readOnly": true, + "type": "integer" + }, + "subnetwork": { + "description": "Output only. [Output Only] The URL of the subnetwork to which all instances in the\ninstance group belong. If your instance has multiple network interfaces,\nthen the network and subnetwork fields only refer to the\nnetwork and subnet used by your primary interface (nic0).", + "readOnly": true, + "type": "string" + }, + "zone": { + "description": "Output only. [Output Only] The URL of thezone\nwhere the instance group is located (for zonal resources).", + "readOnly": true, "type": "string" } }, "type": "object" }, - "BackendServicesScopedList": { - "id": "BackendServicesScopedList", + "InstanceGroupAggregatedList": { + "id": "InstanceGroupAggregatedList", "properties": { - "backendServices": { - "description": "A list of BackendServices contained in this scope.", + "id": { + "description": "Output only. [Output Only] Unique identifier for the resource; defined by the server.", + "readOnly": true, + "type": "string" + }, + "items": { + "additionalProperties": { + "$ref": "InstanceGroupsScopedList", + "description": "The name of the scope that contains this set of instance groups." + }, + "description": "A list of InstanceGroupsScopedList resources.", + "type": "object" + }, + "kind": { + "default": "compute#instanceGroupAggregatedList", + "description": "Output only. [Output Only] The resource type, which is alwayscompute#instanceGroupAggregatedList for aggregated lists of\ninstance groups.", + "readOnly": true, + "type": "string" + }, + "nextPageToken": { + "description": "Output only. [Output Only] This token allows you to get the next page of results for\nlist requests. If the number of results is larger thanmaxResults, use the nextPageToken as a value for\nthe query parameter pageToken in the next list request.\nSubsequent list requests will have their own nextPageToken to\ncontinue paging through the results.", + "readOnly": true, + "type": "string" + }, + "selfLink": { + "description": "Output only. [Output Only] Server-defined URL for this resource.", + "readOnly": true, + "type": "string" + }, + "unreachables": { + "description": "Output only. [Output Only] Unreachable resources.", "items": { - "$ref": "BackendService" + "type": "string" }, + "readOnly": true, "type": "array" }, "warning": { - "description": "Informational warning which replaces the list of backend services when the list is empty.", + "description": "Output only. [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.", + "description": "[Output Only] A warning code, if applicable. For example, Compute\nEngine returns NO_RESULTS_ON_PAGE if there\nare no results in the response.", "enum": [ "CLEANUP_FAILED", "DEPRECATED_RESOURCE_USED", @@ -41540,6 +66783,7 @@ "NOT_CRITICAL_ERROR", "NO_RESULTS_ON_PAGE", "PARTIAL_SUCCESS", + "QUOTA_INFO_UNAVAILABLE", "REQUIRED_TOS_AGREEMENT", "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", "RESOURCE_NOT_DELETED", @@ -41576,46 +66820,48 @@ false, false, false, + false, false ], "enumDescriptions": [ - "Warning about failed cleanup of transient changes made by a failed operation.", + "Warning about failed cleanup of transient changes made by a failed\noperation.", "A link to a deprecated resource was created.", - "When deploying and at least one of the resources has a type marked as deprecated", + "When deploying and at least one of the resources has a type marked as\ndeprecated", "The user created a boot disk that is larger than image size.", - "When deploying and at least one of the resources has a type marked as experimental", + "When deploying and at least one of the resources has a type marked as\nexperimental", "Warning that is present in an external api call", - "Warning that value of a field has been overridden. Deprecated unused field.", + "Warning that value of a field has been overridden.\nDeprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", - "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is\nnot of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", - "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", + "Resource can't be retrieved due to list overhead quota exceed\nwhich captures the amount of resources filtered out by\nuser-defined list filter.", "A resource depends on a missing type", - "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's nextHopIp address is not assigned to an instance on the\nnetwork.", "The route's next hop instance cannot ip forward.", - "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not have an\nipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", - "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that is not on the\nsame network as the route.", "The route's next hop instance does not have a status of RUNNING.", - "Error which is not critical. We decided to continue the process despite the mentioned error.", + "Error which is not critical. We decided to continue the process despite\nthe mentioned error.", "No results are present on a particular list page.", "Success is reported, but some results may be missing due to errors", - "The user attempted to use a resource that requires a TOS they have not accepted.", + "Quota information is not available to client requests (e.g:\nregions.list).", + "The user attempted to use a resource that requires a TOS they have not\naccepted.", "Warning that a resource is in use.", - "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "One or more of the resources set to auto-delete could not be deleted\nbecause they were in use.", "When a resource schema validation is ignored.", - "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", + "Instance template used in instance group manager is valid as such, but\nits application does not make a lot of sense, because it allows only\nsingle instance in instance group.", "When undeclared properties in the schema are present", "A given scope cannot be reached." ], "type": "string" }, "data": { - "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", + "description": "[Output Only] Metadata about this warning in key:\nvalue format. For example:\n\n\"data\": [\n {\n \"key\": \"scope\",\n \"value\": \"zones/us-east1-d\"\n }", "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).", + "description": "[Output Only] A key that provides more detail on the warning being\nreturned. For example, for warnings where there are no results in a list\nrequest for a particular zone, this key might be scope and\nthe key value might be the zone name. Other examples might be a key\nindicating a deprecated resource and a suggested replacement, or a\nwarning about invalid network settings (for example, if an instance\nattempts to perform IP forwarding but is not enabled for IP forwarding).", "type": "string" }, "value": { @@ -41628,706 +66874,494 @@ "type": "array" }, "message": { - "description": "[Output Only] A human-readable description of the warning code.", - "type": "string" - } - }, - "type": "object" - } - }, - "type": "object" - }, - "BfdPacket": { - "id": "BfdPacket", - "properties": { - "authenticationPresent": { - "description": "The Authentication Present bit of the BFD packet. This is specified in section 4.1 of RFC5880", - "type": "boolean" - }, - "controlPlaneIndependent": { - "description": "The Control Plane Independent bit of the BFD packet. This is specified in section 4.1 of RFC5880", - "type": "boolean" - }, - "demand": { - "description": "The demand bit of the BFD packet. This is specified in section 4.1 of RFC5880", - "type": "boolean" - }, - "diagnostic": { - "description": "The diagnostic code specifies the local system's reason for the last change in session state. This allows remote systems to determine the reason that the previous session failed, for example. These diagnostic codes are specified in section 4.1 of RFC5880", - "enum": [ - "ADMINISTRATIVELY_DOWN", - "CONCATENATED_PATH_DOWN", - "CONTROL_DETECTION_TIME_EXPIRED", - "DIAGNOSTIC_UNSPECIFIED", - "ECHO_FUNCTION_FAILED", - "FORWARDING_PLANE_RESET", - "NEIGHBOR_SIGNALED_SESSION_DOWN", - "NO_DIAGNOSTIC", - "PATH_DOWN", - "REVERSE_CONCATENATED_PATH_DOWN" - ], - "enumDescriptions": [ - "", - "", - "", - "", - "", - "", - "", - "", - "", - "" - ], - "type": "string" - }, - "final": { - "description": "The Final bit of the BFD packet. This is specified in section 4.1 of RFC5880", - "type": "boolean" - }, - "length": { - "description": "The length of the BFD Control packet in bytes. This is specified in section 4.1 of RFC5880", - "format": "uint32", - "type": "integer" - }, - "minEchoRxIntervalMs": { - "description": "The Required Min Echo RX Interval value in the BFD packet. This is specified in section 4.1 of RFC5880", - "format": "uint32", - "type": "integer" - }, - "minRxIntervalMs": { - "description": "The Required Min RX Interval value in the BFD packet. This is specified in section 4.1 of RFC5880", - "format": "uint32", - "type": "integer" - }, - "minTxIntervalMs": { - "description": "The Desired Min TX Interval value in the BFD packet. This is specified in section 4.1 of RFC5880", - "format": "uint32", - "type": "integer" - }, - "multiplier": { - "description": "The detection time multiplier of the BFD packet. This is specified in section 4.1 of RFC5880", - "format": "uint32", - "type": "integer" - }, - "multipoint": { - "description": "The multipoint bit of the BFD packet. This is specified in section 4.1 of RFC5880", - "type": "boolean" - }, - "myDiscriminator": { - "description": "The My Discriminator value in the BFD packet. This is specified in section 4.1 of RFC5880", - "format": "uint32", - "type": "integer" - }, - "poll": { - "description": "The Poll bit of the BFD packet. This is specified in section 4.1 of RFC5880", - "type": "boolean" - }, - "state": { - "description": "The current BFD session state as seen by the transmitting system. These states are specified in section 4.1 of RFC5880", - "enum": [ - "ADMIN_DOWN", - "DOWN", - "INIT", - "STATE_UNSPECIFIED", - "UP" - ], - "enumDescriptions": [ - "", - "", - "", - "", - "" - ], - "type": "string" - }, - "version": { - "description": "The version number of the BFD protocol, as specified in section 4.1 of RFC5880.", - "format": "uint32", - "type": "integer" - }, - "yourDiscriminator": { - "description": "The Your Discriminator value in the BFD packet. This is specified in section 4.1 of RFC5880", - "format": "uint32", - "type": "integer" - } - }, - "type": "object" - }, - "BfdStatus": { - "description": "Next free: 15", - "id": "BfdStatus", - "properties": { - "bfdSessionInitializationMode": { - "description": "The BFD session initialization mode for this BGP peer. If set to ACTIVE, the Cloud Router will initiate the BFD session for this BGP peer. If set to PASSIVE, the Cloud Router will wait for the peer router to initiate the BFD session for this BGP peer. If set to DISABLED, BFD is disabled for this BGP peer.", - "enum": [ - "ACTIVE", - "DISABLED", - "PASSIVE" - ], - "enumDescriptions": [ - "", - "", - "" - ], - "type": "string" - }, - "configUpdateTimestampMicros": { - "description": "Unix timestamp of the most recent config update.", - "format": "int64", - "type": "string" - }, - "controlPacketCounts": { - "$ref": "BfdStatusPacketCounts", - "description": "Control packet counts for the current BFD session." - }, - "controlPacketIntervals": { - "description": "Inter-packet time interval statistics for control packets.", - "items": { - "$ref": "PacketIntervals" - }, - "type": "array" - }, - "localDiagnostic": { - "description": "The diagnostic code specifies the local system's reason for the last change in session state. This allows remote systems to determine the reason that the previous session failed, for example. These diagnostic codes are specified in section 4.1 of RFC5880", - "enum": [ - "ADMINISTRATIVELY_DOWN", - "CONCATENATED_PATH_DOWN", - "CONTROL_DETECTION_TIME_EXPIRED", - "DIAGNOSTIC_UNSPECIFIED", - "ECHO_FUNCTION_FAILED", - "FORWARDING_PLANE_RESET", - "NEIGHBOR_SIGNALED_SESSION_DOWN", - "NO_DIAGNOSTIC", - "PATH_DOWN", - "REVERSE_CONCATENATED_PATH_DOWN" - ], - "enumDescriptions": [ - "", - "", - "", - "", - "", - "", - "", - "", - "", - "" - ], - "type": "string" - }, - "localState": { - "description": "The current BFD session state as seen by the transmitting system. These states are specified in section 4.1 of RFC5880", - "enum": [ - "ADMIN_DOWN", - "DOWN", - "INIT", - "STATE_UNSPECIFIED", - "UP" - ], - "enumDescriptions": [ - "", - "", - "", - "", - "" - ], - "type": "string" - }, - "negotiatedLocalControlTxIntervalMs": { - "description": "Negotiated transmit interval for control packets.", - "format": "uint32", - "type": "integer" - }, - "rxPacket": { - "$ref": "BfdPacket", - "description": "The most recent Rx control packet for this BFD session." - }, - "txPacket": { - "$ref": "BfdPacket", - "description": "The most recent Tx control packet for this BFD session." - }, - "uptimeMs": { - "description": "Session uptime in milliseconds. Value will be 0 if session is not up.", - "format": "int64", - "type": "string" - } - }, - "type": "object" - }, - "BfdStatusPacketCounts": { - "id": "BfdStatusPacketCounts", - "properties": { - "numRx": { - "description": "Number of packets received since the beginning of the current BFD session.", - "format": "uint32", - "type": "integer" - }, - "numRxRejected": { - "description": "Number of packets received that were rejected because of errors since the beginning of the current BFD session.", - "format": "uint32", - "type": "integer" - }, - "numRxSuccessful": { - "description": "Number of packets received that were successfully processed since the beginning of the current BFD session.", - "format": "uint32", - "type": "integer" - }, - "numTx": { - "description": "Number of packets transmitted since the beginning of the current BFD session.", - "format": "uint32", - "type": "integer" - } - }, - "type": "object" - }, - "Binding": { - "description": "Associates `members`, or principals, with a `role`.", - "id": "Binding", - "properties": { - "bindingId": { - "description": "This is deprecated and has no effect. Do not use.", - "type": "string" - }, - "condition": { - "$ref": "Expr", - "description": "The condition that is associated with this binding. If the condition evaluates to `true`, then this binding applies to the current request. If the condition evaluates to `false`, then this binding does not apply to the current request. However, a different role binding might grant the same role to one or more of the principals in this binding. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies)." - }, - "members": { - "description": "Specifies the principals requesting access for a Google Cloud resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. Does not include identities that come from external identity providers (IdPs) through identity federation. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a Google service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `serviceAccount:{projectid}.svc.id.goog[{namespace}/{kubernetes-sa}]`: An identifier for a [Kubernetes service account](https://cloud.google.com/kubernetes-engine/docs/how-to/kubernetes-service-accounts). For example, `my-project.svc.id.goog[my-namespace/my-kubernetes-sa]`. * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. * `principal://iam.googleapis.com/locations/global/workforcePools/{pool_id}/subject/{subject_attribute_value}`: A single identity in a workforce identity pool. * `principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id}/group/{group_id}`: All workforce identities in a group. * `principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id}/attribute.{attribute_name}/{attribute_value}`: All workforce identities with a specific attribute value. * `principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id}/*`: All identities in a workforce identity pool. * `principal://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/subject/{subject_attribute_value}`: A single identity in a workload identity pool. * `principalSet://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/group/{group_id}`: A workload identity pool group. * `principalSet://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/attribute.{attribute_name}/{attribute_value}`: All identities in a workload identity pool with a certain attribute. * `principalSet://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/*`: All identities in a workload identity pool. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding. * `deleted:principal://iam.googleapis.com/locations/global/workforcePools/{pool_id}/subject/{subject_attribute_value}`: Deleted single identity in a workforce identity pool. For example, `deleted:principal://iam.googleapis.com/locations/global/workforcePools/my-pool-id/subject/my-subject-attribute-value`.", - "items": { - "type": "string" + "description": "[Output Only] A human-readable description of the warning code.", + "type": "string" + } }, - "type": "array" - }, - "role": { - "description": "Role that is assigned to the list of `members`, or principals. For example, `roles/viewer`, `roles/editor`, or `roles/owner`. For an overview of the IAM roles and permissions, see the [IAM documentation](https://cloud.google.com/iam/docs/roles-overview). For a list of the available pre-defined roles, see [here](https://cloud.google.com/iam/docs/understanding-roles).", - "type": "string" - } - }, - "type": "object" - }, - "BulkInsertDiskResource": { - "description": "A transient resource used in compute.disks.bulkInsert and compute.regionDisks.bulkInsert. It is only used to process requests and is not persisted.", - "id": "BulkInsertDiskResource", - "properties": { - "sourceConsistencyGroupPolicy": { - "description": "The URL of the DiskConsistencyGroupPolicy for the group of disks to clone. This may be a full or partial URL, such as: - https://www.googleapis.com/compute/v1/projects/project/regions/region /resourcePolicies/resourcePolicy - projects/project/regions/region/resourcePolicies/resourcePolicy - regions/region/resourcePolicies/resourcePolicy ", - "type": "string" + "readOnly": true, + "type": "object" } }, "type": "object" }, - "BulkInsertInstanceResource": { - "description": "A transient resource used in compute.instances.bulkInsert and compute.regionInstances.bulkInsert . This resource is not persisted anywhere, it is used only for processing the requests.", - "id": "BulkInsertInstanceResource", + "InstanceGroupList": { + "description": "A list of InstanceGroup resources.", + "id": "InstanceGroupList", "properties": { - "count": { - "description": "The maximum number of instances to create.", - "format": "int64", + "id": { + "description": "Output only. [Output Only] Unique identifier for the resource; defined by the server.", + "readOnly": true, "type": "string" }, - "instanceProperties": { - "$ref": "InstanceProperties", - "description": "The instance properties defining the VM instances to be created. Required if sourceInstanceTemplate is not provided." + "items": { + "description": "A list of InstanceGroup resources.", + "items": { + "$ref": "InstanceGroup" + }, + "type": "array" }, - "locationPolicy": { - "$ref": "LocationPolicy", - "description": "Policy for chosing target zone. For more information, see Create VMs in bulk ." + "kind": { + "default": "compute#instanceGroupList", + "description": "Output only. [Output Only] The resource type, which is alwayscompute#instanceGroupList for instance group lists.", + "readOnly": true, + "type": "string" }, - "minCount": { - "description": "The minimum number of instances to create. If no min_count is specified then count is used as the default value. If min_count instances cannot be created, then no instances will be created and instances already created will be deleted.", - "format": "int64", + "nextPageToken": { + "description": "Output only. [Output Only] This token allows you to get the next page of results for\nlist requests. If the number of results is larger thanmaxResults, use the nextPageToken as a value for\nthe query parameter pageToken in the next list request.\nSubsequent list requests will have their own nextPageToken to\ncontinue paging through the results.", + "readOnly": true, "type": "string" }, - "namePattern": { - "description": "The string pattern used for the names of the VMs. Either name_pattern or per_instance_properties must be set. The pattern must contain one continuous sequence of placeholder hash characters (#) with each character corresponding to one digit of the generated instance name. Example: a name_pattern of inst-#### generates instance names such as inst-0001 and inst-0002. If existing instances in the same project and zone have names that match the name pattern then the generated instance numbers start after the biggest existing number. For example, if there exists an instance with name inst-0050, then instance names generated using the pattern inst-#### begin with inst-0051. The name pattern placeholder #...# can contain up to 18 characters.", + "selfLink": { + "description": "Output only. [Output Only] Server-defined URL for this resource.", + "readOnly": true, "type": "string" }, - "perInstanceProperties": { - "additionalProperties": { - "$ref": "BulkInsertInstanceResourcePerInstanceProperties" + "warning": { + "description": "Output only. [Output Only] Informational warning message.", + "properties": { + "code": { + "description": "[Output Only] A warning code, if applicable. For example, Compute\nEngine returns NO_RESULTS_ON_PAGE if there\nare 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", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", + "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "PARTIAL_SUCCESS", + "QUOTA_INFO_UNAVAILABLE", + "REQUIRED_TOS_AGREEMENT", + "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", + "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", + "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", + "UNREACHABLE" + ], + "enumDeprecated": [ + false, + false, + false, + false, + false, + false, + true, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false + ], + "enumDescriptions": [ + "Warning about failed cleanup of transient changes made by a failed\noperation.", + "A link to a deprecated resource was created.", + "When deploying and at least one of the resources has a type marked as\ndeprecated", + "The user created a boot disk that is larger than image size.", + "When deploying and at least one of the resources has a type marked as\nexperimental", + "Warning that is present in an external api call", + "Warning that value of a field has been overridden.\nDeprecated unused field.", + "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is\nnot of type HTTP/HTTPS/HTTP2.", + "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed\nwhich captures the amount of resources filtered out by\nuser-defined list filter.", + "A resource depends on a missing type", + "The route's nextHopIp address is not assigned to an instance on the\nnetwork.", + "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an\nipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not exist.", + "The route's nextHopInstance URL refers to an instance that is not on the\nsame network as the route.", + "The route's next hop instance does not have a status of RUNNING.", + "Error which is not critical. We decided to continue the process despite\nthe mentioned error.", + "No results are present on a particular list page.", + "Success is reported, but some results may be missing due to errors", + "Quota information is not available to client requests (e.g:\nregions.list).", + "The user attempted to use a resource that requires a TOS they have not\naccepted.", + "Warning that a resource is in use.", + "One or more of the resources set to auto-delete could not be deleted\nbecause they were in use.", + "When a resource schema validation is ignored.", + "Instance template used in instance group manager is valid as such, but\nits application does not make a lot of sense, because it allows only\nsingle instance in instance group.", + "When undeclared properties in the schema are present", + "A given scope cannot be reached." + ], + "type": "string" + }, + "data": { + "description": "[Output Only] Metadata about this warning in key:\nvalue format. For example:\n\n\"data\": [\n {\n \"key\": \"scope\",\n \"value\": \"zones/us-east1-d\"\n }", + "items": { + "properties": { + "key": { + "description": "[Output Only] A key that provides more detail on the warning being\nreturned. For example, for warnings where there are no results in a list\nrequest for a particular zone, this key might be scope and\nthe key value might be the zone name. Other examples might be a key\nindicating a deprecated resource and a suggested replacement, or a\nwarning about invalid network settings (for example, if an instance\nattempts 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" + } }, - "description": "Per-instance properties to be set on individual instances. Keys of this map specify requested instance names. Can be empty if name_pattern is used.", + "readOnly": true, "type": "object" - }, - "sourceInstanceTemplate": { - "description": "Specifies the instance template from which to create instances. You may combine sourceInstanceTemplate with instanceProperties to override specific values from an existing instance template. Bulk API follows the semantics of JSON Merge Patch described by RFC 7396. It can be a full or partial URL. For example, the following are all valid URLs to an instance template: - https://www.googleapis.com/compute/v1/projects/project /global/instanceTemplates/instanceTemplate - projects/project/global/instanceTemplates/instanceTemplate - global/instanceTemplates/instanceTemplate This field is optional.", - "type": "string" } }, "type": "object" }, - "BulkInsertInstanceResourcePerInstanceProperties": { - "description": "Per-instance properties to be set on individual instances. To be extended in the future.", - "id": "BulkInsertInstanceResourcePerInstanceProperties", + "InstanceGroupManager": { + "description": "Represents a Managed Instance Group resource.\n\nAn instance group is a collection of VM instances that you can manage as a\nsingle entity. For more information, readInstance groups.\n\nFor zonal Managed Instance Group, use the instanceGroupManagers\nresource.\n\nFor regional Managed Instance Group, use theregionInstanceGroupManagers resource.", + "id": "InstanceGroupManager", "properties": { - "hostname": { - "description": "Specifies the hostname of the instance. More details in: https://cloud.google.com/compute/docs/instances/custom-hostname-vm#naming_convention", + "allInstancesConfig": { + "$ref": "InstanceGroupManagerAllInstancesConfig", + "description": "Specifies configuration that overrides the instance template configuration\nfor the group." + }, + "autoHealingPolicies": { + "description": "The autohealing policy for this managed instance group. You can specify\nonly one value.", + "items": { + "$ref": "InstanceGroupManagerAutoHealingPolicy" + }, + "type": "array" + }, + "baseInstanceName": { + "description": "The base instance name is a prefix that you want to attach to the names of\nall VMs in a MIG. The maximum character length is 58 and the name must\ncomply with RFC1035 format.\n\nWhen a VM is created in the group, the MIG appends a hyphen and a random\nfour-character string to the base instance name. If you want the MIG to\nassign sequential numbers instead of a random string, then end the base\ninstance name with a hyphen followed by one or more hash symbols. The hash\nsymbols indicate the number of digits. For example, a base instance name of\n\"vm-###\" results in \"vm-001\" as a VM name.\n@pattern\n[a-z](([-a-z0-9]{0,57})|([-a-z0-9]{0,51}-#{1,10}(\\\\[[0-9]{1,10}\\\\])?))", "type": "string" }, - "name": { - "description": "This field is only temporary. It will be removed. Do not use it.", + "creationTimestamp": { + "description": "Output only. The creation timestamp for this managed instance group inRFC3339\ntext format.", + "readOnly": true, "type": "string" - } - }, - "type": "object" - }, - "BulkInsertOperationStatus": { - "id": "BulkInsertOperationStatus", - "properties": { - "createdVmCount": { - "description": "[Output Only] Count of VMs successfully created so far.", - "format": "int32", - "type": "integer" }, - "deletedVmCount": { - "description": "[Output Only] Count of VMs that got deleted during rollback.", - "format": "int32", - "type": "integer" + "currentActions": { + "$ref": "InstanceGroupManagerActionsSummary", + "description": "Output only. The list of instance actions and the number of instances\nin this managed instance group that are scheduled for each of those\nactions.", + "readOnly": true }, - "failedToCreateVmCount": { - "description": "[Output Only] Count of VMs that started creating but encountered an error.", - "format": "int32", - "type": "integer" + "description": { + "description": "An optional description of this resource.", + "type": "string" }, - "status": { - "description": "[Output Only] Creation status of BulkInsert operation - information if the flow is rolling forward or rolling back.", - "enum": [ - "CREATING", - "DONE", - "ROLLING_BACK", - "STATUS_UNSPECIFIED" - ], - "enumDescriptions": [ - "Rolling forward - creating VMs.", - "Done", - "Rolling back - cleaning up after an error.", - "" - ], + "distributionPolicy": { + "$ref": "DistributionPolicy", + "description": "Policy specifying the intended distribution of managed instances across\nzones in a regional managed instance group." + }, + "fingerprint": { + "description": "Fingerprint of this resource. This field may be used in optimistic locking.\nIt will be ignored when inserting an InstanceGroupManager. An up-to-date\nfingerprint must be provided in order to update the InstanceGroupManager,\notherwise the request will fail with error412 conditionNotMet.\n\nTo see the latest fingerprint, make a get() request to\nretrieve an InstanceGroupManager.", + "format": "byte", "type": "string" }, - "targetVmCount": { - "description": "[Output Only] Count of VMs originally planned to be created.", - "format": "int32", - "type": "integer" - } - }, - "type": "object" - }, - "CacheInvalidationRule": { - "id": "CacheInvalidationRule", - "properties": { - "host": { - "description": "If set, this invalidation rule will only apply to requests with a Host header matching host.", + "id": { + "description": "Output only. A unique identifier for this resource type. The server\ngenerates this identifier.", + "format": "uint64", + "readOnly": true, "type": "string" }, - "path": { + "instanceFlexibilityPolicy": { + "$ref": "InstanceGroupManagerInstanceFlexibilityPolicy", + "description": "Instance flexibility allowing MIG to create VMs from multiple\ntypes of machines.\nInstance flexibility configuration on MIG overrides instance\ntemplate configuration." + }, + "instanceGroup": { + "description": "Output only. The URL of the Instance Group resource.", + "readOnly": true, "type": "string" - } - }, - "type": "object" - }, - "CacheKeyPolicy": { - "description": "Message containing what to include in the cache key for a request for Cloud CDN.", - "id": "CacheKeyPolicy", - "properties": { - "includeHost": { - "description": "If true, requests to different hosts will be cached separately.", - "type": "boolean" }, - "includeHttpHeaders": { - "description": "Allows HTTP request headers (by name) to be used in the cache key.", - "items": { - "type": "string" - }, - "type": "array" + "instanceLifecyclePolicy": { + "$ref": "InstanceGroupManagerInstanceLifecyclePolicy", + "description": "The repair policy for this managed instance group." }, - "includeNamedCookies": { - "description": "Allows HTTP cookies (by name) to be used in the cache key. The name=value pair will be used in the cache key Cloud CDN generates.", - "items": { - "type": "string" - }, - "type": "array" + "instanceTemplate": { + "description": "The URL of the instance template that is specified for this managed\ninstance group. The group uses this template to create all new instances\nin the managed instance group. The templates for existing instances in the\ngroup do not change unless you run recreateInstances, runapplyUpdatesToInstances, or set the group'supdatePolicy.type to PROACTIVE.", + "type": "string" }, - "includeProtocol": { - "description": "If true, http and https requests will be cached separately.", - "type": "boolean" + "kind": { + "default": "compute#instanceGroupManager", + "description": "Output only. The resource type, which is alwayscompute#instanceGroupManager for managed instance groups.", + "readOnly": true, + "type": "string" }, - "includeQueryString": { - "description": "If true, include query string parameters in the cache key according to query_string_whitelist and query_string_blacklist. If neither is set, the entire query string will be included. If false, the query string will be excluded from the cache key entirely.", - "type": "boolean" + "listManagedInstancesResults": { + "description": "Pagination behavior of the listManagedInstances API method for\nthis managed instance group.", + "enum": [ + "PAGELESS", + "PAGINATED" + ], + "enumDescriptions": [ + "(Default) Pagination is disabled for the group'slistManagedInstances API method. maxResults\nand pageToken query parameters are ignored and all\ninstances are returned in a single response.", + "Pagination is enabled for the group's listManagedInstances\nAPI method. maxResults and pageToken query\nparameters are respected." + ], + "type": "string" }, - "queryStringBlacklist": { - "description": "Names of query string parameters to exclude in cache keys. All other parameters will be included. Either specify query_string_whitelist or query_string_blacklist, not both. '\u0026' and '=' will be percent encoded and not treated as delimiters.", - "items": { - "type": "string" + "name": { + "annotations": { + "required": [ + "compute.instanceGroupManagers.insert", + "compute.regionInstanceGroupManagers.insert" + ] }, - "type": "array" + "description": "The name of the managed instance group. The name must be 1-63 characters\nlong, and comply withRFC1035.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "type": "string" }, - "queryStringWhitelist": { - "description": "Names of query string parameters to include in cache keys. All other parameters will be excluded. Either specify query_string_whitelist or query_string_blacklist, not both. '\u0026' and '=' will be percent encoded and not treated as delimiters.", + "namedPorts": { + "description": "[Output Only] Named ports configured on the Instance Groups complementary\nto this Instance Group Manager.", "items": { - "type": "string" + "$ref": "NamedPort" }, "type": "array" - } - }, - "type": "object" - }, - "CircuitBreakers": { - "description": "Settings controlling the volume of requests, connections and retries to this backend service.", - "id": "CircuitBreakers", - "properties": { - "maxConnections": { - "description": "The maximum number of connections to the backend service. If not specified, there is no limit. Not supported when the backend service is referenced by a URL map that is bound to target gRPC proxy that has validateForProxyless field set to true.", - "format": "int32", - "type": "integer" }, - "maxPendingRequests": { - "description": "The maximum number of pending requests allowed to the backend service. If not specified, there is no limit. Not supported when the backend service is referenced by a URL map that is bound to target gRPC proxy that has validateForProxyless field set to true.", - "format": "int32", - "type": "integer" + "region": { + "description": "Output only. [Output Only] The URL of theregion\nwhere the managed instance group resides (for regional resources).", + "readOnly": true, + "type": "string" }, - "maxRequests": { - "description": "The maximum number of parallel requests that allowed to the backend service. If not specified, there is no limit.", - "format": "int32", - "type": "integer" + "resourcePolicies": { + "$ref": "InstanceGroupManagerResourcePolicies", + "description": "Resource policies for this managed instance group." }, - "maxRequestsPerConnection": { - "description": "Maximum requests for a single connection to the backend service. This parameter is respected by both the HTTP/1.1 and HTTP/2 implementations. If not specified, there is no limit. Setting this parameter to 1 will effectively disable keep alive. Not supported when the backend service is referenced by a URL map that is bound to target gRPC proxy that has validateForProxyless field set to true.", - "format": "int32", - "type": "integer" + "satisfiesPzi": { + "description": "Output only. Reserved for future use.", + "readOnly": true, + "type": "boolean" }, - "maxRetries": { - "description": "The maximum number of parallel retries allowed to the backend cluster. If not specified, the default is 1. Not supported when the backend service is referenced by a URL map that is bound to target gRPC proxy that has validateForProxyless field set to true.", - "format": "int32", - "type": "integer" - } - }, - "type": "object" - }, - "Commitment": { - "description": "Represents a regional Commitment resource. Creating a commitment resource means that you are purchasing a committed use contract with an explicit start and end time. You can create commitments based on vCPUs and memory usage and receive discounted rates. For full details, read Signing Up for Committed Use Discounts.", - "id": "Commitment", - "properties": { - "autoRenew": { - "description": "Specifies whether to enable automatic renewal for the commitment. The default value is false if not specified. The field can be updated until the day of the commitment expiration at 12:00am PST. If the field is set to true, the commitment will be automatically renewed for either one or three years according to the terms of the existing commitment.", + "satisfiesPzs": { + "description": "Output only. Reserved for future use.", + "readOnly": true, "type": "boolean" }, - "category": { - "description": "The category of the commitment. Category MACHINE specifies commitments composed of machine resources such as VCPU or MEMORY, listed in resources. Category LICENSE specifies commitments composed of software licenses, listed in licenseResources. Note that only MACHINE commitments should have a Type specified.", - "enum": [ - "CATEGORY_UNSPECIFIED", - "LICENSE", - "MACHINE" - ], - "enumDescriptions": [ - "", - "", - "" - ], + "selfLink": { + "description": "Output only. The URL for this managed instance group. The server defines\nthis URL.", + "readOnly": true, "type": "string" }, - "creationTimestamp": { - "description": "[Output Only] Creation timestamp in RFC3339 text format.", - "type": "string" + "standbyPolicy": { + "$ref": "InstanceGroupManagerStandbyPolicy", + "description": "Standby policy for stopped and suspended instances." }, - "description": { - "description": "An optional description of this resource. Provide this property when you create the resource.", - "type": "string" + "statefulPolicy": { + "$ref": "StatefulPolicy", + "description": "Stateful configuration for this Instanced Group Manager" }, - "endTimestamp": { - "description": "[Output Only] Commitment end time in RFC3339 text format.", - "type": "string" + "status": { + "$ref": "InstanceGroupManagerStatus", + "description": "Output only. The status of this managed instance group.", + "readOnly": true }, - "existingReservations": { - "description": "Specifies the already existing reservations to attach to the Commitment. This field is optional, and it can be a full or partial URL. For example, the following are valid URLs to an reservation: - https://www.googleapis.com/compute/v1/projects/project/zones/zone /reservations/reservation - projects/project/zones/zone/reservations/reservation ", + "targetPools": { + "description": "The URLs for all TargetPool resources to which instances in theinstanceGroup field are added. The target pools automatically\napply to all of the instances in the managed instance group.", "items": { "type": "string" }, "type": "array" }, - "id": { - "description": "[Output Only] The unique identifier for the resource. This identifier is defined by the server.", - "format": "uint64", - "type": "string" - }, - "kind": { - "default": "compute#commitment", - "description": "[Output Only] Type of the resource. Always compute#commitment for commitments.", - "type": "string" - }, - "licenseResource": { - "$ref": "LicenseResourceCommitment", - "description": "The license specification required as part of a license commitment." - }, - "mergeSourceCommitments": { - "description": "List of source commitments to be merged into a new commitment.", - "items": { - "type": "string" + "targetSize": { + "annotations": { + "required": [ + "compute.instanceGroupManagers.insert", + "compute.regionInstanceGroupManagers.insert" + ] }, - "type": "array" + "description": "The target number of running instances for this managed instance group.\nYou can reduce this number by using the instanceGroupManager\ndeleteInstances or abandonInstances methods. Resizing the group also\nchanges this number.", + "format": "int32", + "type": "integer" }, - "name": { - "description": "Name of the resource. Provided by the client when the resource is created. The name must be 1-63 characters long, and comply with RFC1035. 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" + "targetSizePolicy": { + "$ref": "InstanceGroupManagerTargetSizePolicy", + "description": "The policy that specifies how the MIG creates its VMs to achieve the target\nsize." }, - "plan": { - "description": "The plan for this commitment, which determines duration and discount rate. The currently supported plans are TWELVE_MONTH (1 year), and THIRTY_SIX_MONTH (3 years).", - "enum": [ - "INVALID", - "THIRTY_SIX_MONTH", - "TWELVE_MONTH" - ], - "enumDescriptions": [ - "", - "", - "" - ], - "type": "string" + "targetStoppedSize": { + "description": "The target number of stopped instances for this managed instance group.\nThis number changes when you: \n \n - Stop instance using the stopInstances\n method or start instances using the startInstances\n method.\n - Manually change the targetStoppedSize using the update\n method.", + "format": "int32", + "type": "integer" }, - "region": { - "description": "[Output Only] URL of the region where this commitment may be used.", - "type": "string" + "targetSuspendedSize": { + "description": "The target number of suspended instances for this managed instance group.\nThis number changes when you: \n \n - Suspend instance using the suspendInstances\n method or resume instances using the resumeInstances\n method.\n - Manually change the targetSuspendedSize using the update\n method.", + "format": "int32", + "type": "integer" }, - "reservations": { - "description": "List of create-on-create reservations for this commitment.", - "items": { - "$ref": "Reservation" - }, - "type": "array" + "updatePolicy": { + "$ref": "InstanceGroupManagerUpdatePolicy", + "description": "The update policy for this managed instance group." }, - "resources": { - "description": "A list of commitment amounts for particular resources. Note that VCPU and MEMORY resource commitments must occur together.", + "versions": { + "description": "Specifies the instance templates used by this managed instance group to\ncreate instances.\n\nEach version is defined by an instanceTemplate and aname. Every version can appear at most once per instance\ngroup. This field overrides the top-level instanceTemplate\nfield. Read more about therelationships\nbetween these fields. Exactly one version must leave thetargetSize field unset. That version will be applied to all\nremaining instances. For more information, read aboutcanary\nupdates.", "items": { - "$ref": "ResourceCommitment" + "$ref": "InstanceGroupManagerVersion" }, "type": "array" }, - "selfLink": { - "description": "[Output Only] Server-defined URL for the resource.", - "type": "string" - }, - "splitSourceCommitment": { - "description": "Source commitment to be split into a new commitment.", + "zone": { + "description": "Output only. The URL of azone\nwhere the managed instance group is located (for zonal resources).", + "readOnly": true, "type": "string" + } + }, + "type": "object" + }, + "InstanceGroupManagerActionsSummary": { + "id": "InstanceGroupManagerActionsSummary", + "properties": { + "abandoning": { + "description": "Output only. The total number of instances in the managed instance group\nthat are scheduled to be abandoned. Abandoning an instance removes it\nfrom the managed instance group without deleting it.", + "format": "int32", + "readOnly": true, + "type": "integer" }, - "startTimestamp": { - "description": "[Output Only] Commitment start time in RFC3339 text format.", - "type": "string" + "creating": { + "description": "Output only. The number of instances in the managed instance group that\nare scheduled to be created or are currently being created. If the group\nfails to create any of these instances, it tries again until it creates\nthe instance successfully.\n\nIf you have disabled creation retries, this field will not be populated;\ninstead, the creatingWithoutRetries field will be populated.", + "format": "int32", + "readOnly": true, + "type": "integer" }, - "status": { - "description": "[Output Only] Status of the commitment with regards to eventual expiration (each commitment has an end date defined). One of the following values: NOT_YET_ACTIVE, ACTIVE, EXPIRED.", - "enum": [ - "ACTIVE", - "CANCELLED", - "CREATING", - "EXPIRED", - "NOT_YET_ACTIVE" - ], - "enumDescriptions": [ - "", - "Deprecate CANCELED status. Will use separate status to differentiate cancel by mergeCud or manual cancellation.", - "", - "", - "" - ], - "type": "string" + "creatingWithoutRetries": { + "description": "Output only. The number of instances that the managed instance group\nwill attempt to create. The group attempts to create each instance\nonly once. If the group fails to create any of these instances, it\ndecreases the group's targetSize value accordingly.", + "format": "int32", + "readOnly": true, + "type": "integer" }, - "statusMessage": { - "description": "[Output Only] An optional, human-readable explanation of the status.", - "type": "string" + "deleting": { + "description": "Output only. The number of instances in the managed instance group that\nare scheduled to be deleted or are currently being deleted.", + "format": "int32", + "readOnly": true, + "type": "integer" }, - "type": { - "description": "The type of commitment, which affects the discount rate and the eligible resources. Type MEMORY_OPTIMIZED specifies a commitment that will only apply to memory optimized machines. Type ACCELERATOR_OPTIMIZED specifies a commitment that will only apply to accelerator optimized machines.", - "enum": [ - "ACCELERATOR_OPTIMIZED", - "ACCELERATOR_OPTIMIZED_A3", - "ACCELERATOR_OPTIMIZED_A3_MEGA", - "COMPUTE_OPTIMIZED", - "COMPUTE_OPTIMIZED_C2D", - "COMPUTE_OPTIMIZED_C3", - "COMPUTE_OPTIMIZED_C3D", - "COMPUTE_OPTIMIZED_H3", - "GENERAL_PURPOSE", - "GENERAL_PURPOSE_E2", - "GENERAL_PURPOSE_N2", - "GENERAL_PURPOSE_N2D", - "GENERAL_PURPOSE_N4", - "GENERAL_PURPOSE_T2D", - "GRAPHICS_OPTIMIZED", - "MEMORY_OPTIMIZED", - "MEMORY_OPTIMIZED_M3", - "STORAGE_OPTIMIZED_Z3", - "TYPE_UNSPECIFIED" - ], - "enumDescriptions": [ - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "" - ], - "type": "string" + "none": { + "description": "Output only. The number of instances in the managed instance group that\nare running and have no scheduled actions.", + "format": "int32", + "readOnly": true, + "type": "integer" + }, + "recreating": { + "description": "Output only. The number of instances in the managed instance group that\nare scheduled to be recreated or are currently being being recreated.\nRecreating an instance deletes the existing root persistent disk\nand creates a new disk from the image that is defined in the\ninstance template.", + "format": "int32", + "readOnly": true, + "type": "integer" + }, + "refreshing": { + "description": "Output only. The number of instances in the managed instance group that\nare being reconfigured with properties that do not require a restart\nor a recreate action. For example, setting or removing target\npools for the instance.", + "format": "int32", + "readOnly": true, + "type": "integer" + }, + "restarting": { + "description": "Output only. The number of instances in the managed instance group that\nare scheduled to be restarted or are currently being restarted.", + "format": "int32", + "readOnly": true, + "type": "integer" + }, + "resuming": { + "description": "Output only. The number of instances in the managed instance group that\nare scheduled to be resumed or are currently being resumed.", + "format": "int32", + "readOnly": true, + "type": "integer" + }, + "starting": { + "description": "Output only. The number of instances in the managed instance group that\nare scheduled to be started or are currently being started.", + "format": "int32", + "readOnly": true, + "type": "integer" + }, + "stopping": { + "description": "Output only. The number of instances in the managed instance group that\nare scheduled to be stopped or are currently being stopped.", + "format": "int32", + "readOnly": true, + "type": "integer" + }, + "suspending": { + "description": "Output only. The number of instances in the managed instance group that\nare scheduled to be suspended or are currently being suspended.", + "format": "int32", + "readOnly": true, + "type": "integer" + }, + "verifying": { + "description": "Output only. The number of instances in the managed instance group that\nare being verified. See the managedInstances[].currentAction\nproperty in the listManagedInstances method documentation.", + "format": "int32", + "readOnly": true, + "type": "integer" } }, "type": "object" }, - "CommitmentAggregatedList": { - "id": "CommitmentAggregatedList", + "InstanceGroupManagerAggregatedList": { + "id": "InstanceGroupManagerAggregatedList", "properties": { "id": { - "description": "[Output Only] Unique identifier for the resource; defined by the server.", + "description": "Output only. Unique identifier for the resource; defined by the server.", + "readOnly": true, "type": "string" }, "items": { "additionalProperties": { - "$ref": "CommitmentsScopedList", - "description": "[Output Only] Name of the scope containing this set of commitments." + "$ref": "InstanceGroupManagersScopedList", + "description": "Output only. The name of the scope that contains this set of managed instance groups." }, - "description": "A list of CommitmentsScopedList resources.", + "description": "A list of InstanceGroupManagersScopedList resources.", "type": "object" }, "kind": { - "default": "compute#commitmentAggregatedList", - "description": "[Output Only] Type of resource. Always compute#commitmentAggregatedList for aggregated lists of commitments.", + "default": "compute#instanceGroupManagerAggregatedList", + "description": "Output only. The resource type, which is alwayscompute#instanceGroupManagerAggregatedList for an aggregated\nlist of managed instance groups.", + "readOnly": true, "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.", + "description": "Output only. This token allows you to get the next page of results for\nlist requests. If the number of results is larger thanmaxResults, use the nextPageToken as a value for\nthe query parameter pageToken in the next list request.\nSubsequent list requests will have their own nextPageToken to\ncontinue paging through the results.", + "readOnly": true, "type": "string" }, "selfLink": { - "description": "[Output Only] Server-defined URL for this resource.", + "description": "Output only. Server-defined URL for this resource.", + "readOnly": true, "type": "string" }, "unreachables": { - "description": "[Output Only] Unreachable resources.", + "description": "Output only. Unreachable resources.", "items": { "type": "string" }, + "readOnly": true, "type": "array" }, "warning": { - "description": "[Output Only] Informational warning message.", + "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.", + "description": "[Output Only] A warning code, if applicable. For example, Compute\nEngine returns NO_RESULTS_ON_PAGE if there\nare no results in the response.", "enum": [ "CLEANUP_FAILED", "DEPRECATED_RESOURCE_USED", @@ -42350,6 +67384,7 @@ "NOT_CRITICAL_ERROR", "NO_RESULTS_ON_PAGE", "PARTIAL_SUCCESS", + "QUOTA_INFO_UNAVAILABLE", "REQUIRED_TOS_AGREEMENT", "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", "RESOURCE_NOT_DELETED", @@ -42386,46 +67421,48 @@ false, false, false, + false, false ], "enumDescriptions": [ - "Warning about failed cleanup of transient changes made by a failed operation.", + "Warning about failed cleanup of transient changes made by a failed\noperation.", "A link to a deprecated resource was created.", - "When deploying and at least one of the resources has a type marked as deprecated", + "When deploying and at least one of the resources has a type marked as\ndeprecated", "The user created a boot disk that is larger than image size.", - "When deploying and at least one of the resources has a type marked as experimental", + "When deploying and at least one of the resources has a type marked as\nexperimental", "Warning that is present in an external api call", - "Warning that value of a field has been overridden. Deprecated unused field.", + "Warning that value of a field has been overridden.\nDeprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", - "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is\nnot of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", - "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", + "Resource can't be retrieved due to list overhead quota exceed\nwhich captures the amount of resources filtered out by\nuser-defined list filter.", "A resource depends on a missing type", - "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's nextHopIp address is not assigned to an instance on the\nnetwork.", "The route's next hop instance cannot ip forward.", - "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not have an\nipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", - "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that is not on the\nsame network as the route.", "The route's next hop instance does not have a status of RUNNING.", - "Error which is not critical. We decided to continue the process despite the mentioned error.", + "Error which is not critical. We decided to continue the process despite\nthe mentioned error.", "No results are present on a particular list page.", "Success is reported, but some results may be missing due to errors", - "The user attempted to use a resource that requires a TOS they have not accepted.", + "Quota information is not available to client requests (e.g:\nregions.list).", + "The user attempted to use a resource that requires a TOS they have not\naccepted.", "Warning that a resource is in use.", - "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "One or more of the resources set to auto-delete could not be deleted\nbecause they were in use.", "When a resource schema validation is ignored.", - "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", + "Instance template used in instance group manager is valid as such, but\nits application does not make a lot of sense, because it allows only\nsingle instance in instance group.", "When undeclared properties in the schema are present", "A given scope cannot be reached." ], "type": "string" }, "data": { - "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", + "description": "[Output Only] Metadata about this warning in key:\nvalue format. For example:\n\n\"data\": [\n {\n \"key\": \"scope\",\n \"value\": \"zones/us-east1-d\"\n }", "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).", + "description": "[Output Only] A key that provides more detail on the warning being\nreturned. For example, for warnings where there are no results in a list\nrequest for a particular zone, this key might be scope and\nthe key value might be the zone name. Other examples might be a key\nindicating a deprecated resource and a suggested replacement, or a\nwarning about invalid network settings (for example, if an instance\nattempts to perform IP forwarding but is not enabled for IP forwarding).", "type": "string" }, "value": { @@ -42442,44 +67479,172 @@ "type": "string" } }, + "readOnly": true, "type": "object" } }, "type": "object" }, - "CommitmentList": { - "description": "Contains a list of Commitment resources.", - "id": "CommitmentList", + "InstanceGroupManagerAllInstancesConfig": { + "id": "InstanceGroupManagerAllInstancesConfig", + "properties": { + "properties": { + "$ref": "InstancePropertiesPatch", + "description": "Properties to set on all instances in the group.\n\nYou can add or modify properties using theinstanceGroupManagers.patch orregionInstanceGroupManagers.patch. After settingallInstancesConfig on the group, you must update the group's\ninstances to apply the configuration. To apply the configuration, set the\ngroup's updatePolicy.type field to use proactive updates or\nuse the applyUpdatesToInstances method." + } + }, + "type": "object" + }, + "InstanceGroupManagerAutoHealingPolicy": { + "id": "InstanceGroupManagerAutoHealingPolicy", + "properties": { + "healthCheck": { + "description": "The URL for the health check that signals autohealing.", + "type": "string" + }, + "initialDelaySec": { + "description": "The initial delay is the number of seconds that a new VM takes to\ninitialize and run its startup script. During a VM's initial delay\nperiod, the MIG ignores unsuccessful health checks because the VM might\nbe in the startup process. This prevents the MIG from prematurely\nrecreating a VM. If the health check receives a healthy response during\nthe initial delay, it indicates that the startup process is complete and\nthe VM is ready. The value of initial delay must be between 0 and 3600\nseconds. The default value is 0.", + "format": "int32", + "type": "integer" + } + }, + "type": "object" + }, + "InstanceGroupManagerInstanceFlexibilityPolicy": { + "id": "InstanceGroupManagerInstanceFlexibilityPolicy", + "properties": { + "instanceSelections": { + "additionalProperties": { + "$ref": "InstanceGroupManagerInstanceFlexibilityPolicyInstanceSelection" + }, + "description": "Named instance selections configuring properties that the group will use\nwhen creating new VMs.", + "type": "object" + } + }, + "type": "object" + }, + "InstanceGroupManagerInstanceFlexibilityPolicyInstanceSelection": { + "id": "InstanceGroupManagerInstanceFlexibilityPolicyInstanceSelection", + "properties": { + "machineTypes": { + "description": "Full machine-type names, e.g. \"n1-standard-16\".", + "items": { + "type": "string" + }, + "type": "array" + }, + "rank": { + "description": "Preference of this instance selection. Lower number means higher\npreference. MIG will first try to create a VM based on the machine-type\nwith lowest rank and fallback to next rank based on availability.\nMachine types and instance selections with the same rank have the same\npreference.", + "format": "int32", + "type": "integer" + } + }, + "type": "object" + }, + "InstanceGroupManagerInstanceLifecyclePolicy": { + "id": "InstanceGroupManagerInstanceLifecyclePolicy", + "properties": { + "defaultActionOnFailure": { + "description": "The action that a MIG performs on a failed VM. If the value of the\nonFailedHealthCheck field is `DEFAULT_ACTION`, then the same action also\napplies to the VMs on which your application fails a health check.\nValid values are \n \n - REPAIR (default): MIG automatically repairs a failed VM\n by recreating it. For more information, see About\n repairing VMs in a MIG.\n - DO_NOTHING: MIG does not repair a failed VM.", + "enum": [ + "DO_NOTHING", + "REPAIR" + ], + "enumDescriptions": [ + "MIG does not repair a failed VM.", + "(default): MIG automatically repairs a failed VM by recreating it.\nFor more information, see About\nrepairing VMs in a MIG." + ], + "type": "string" + }, + "forceUpdateOnRepair": { + "description": "A bit indicating whether to forcefully apply the group's latest\nconfiguration when repairing a VM. Valid options are:\n\n \n \n - NO (default): If configuration updates are available, they are not\n forcefully applied during repair. Instead, configuration updates are\n applied according to the group's update policy.\n \n - YES: If configuration updates are available, they are applied\n during repair.", + "enum": [ + "NO", + "YES" + ], + "enumDescriptions": [ + "", + "" + ], + "type": "string" + }, + "onFailedHealthCheck": { + "description": "The action that a MIG performs on an unhealthy VM. A VM is marked as\nunhealthy when the application running on that VM fails a health check.\nValid values are:\n \n - DEFAULT_ACTION (default): MIG uses the same action\n configured for instanceLifecyclePolicy.defaultActionOnFailure field.\n - REPAIR: MIG automatically repairs an unhealthy VM by\n recreating it.\n - DO_NOTHING: MIG doesn't repair an unhealthy VM.\n For more information, see \n About repairing VMs in a MIG.", + "enum": [ + "DEFAULT_ACTION", + "DO_NOTHING", + "REPAIR" + ], + "enumDescriptions": [ + "(Default) MIG uses the same action configured for\ninstanceLifecyclePolicy.defaultActionOnFailure field.", + "MIG doesn't repair an unhealthy VM.", + "MIG automatically repairs an unhealthy VM by recreating it." + ], + "type": "string" + }, + "onRepair": { + "$ref": "InstanceGroupManagerInstanceLifecyclePolicyOnRepair", + "description": "Configuration for VM repairs in the MIG." + } + }, + "type": "object" + }, + "InstanceGroupManagerInstanceLifecyclePolicyOnRepair": { + "description": "Configuration for VM repairs in the MIG.", + "id": "InstanceGroupManagerInstanceLifecyclePolicyOnRepair", + "properties": { + "allowChangingZone": { + "description": "Specifies whether the MIG can change a VM's zone during a repair.\nValid values are:\n \n - NO (default): MIG cannot change a VM's zone during a\n repair.\n - YES: MIG can select a different zone for the VM during\n a repair.", + "enum": [ + "NO", + "YES" + ], + "enumDescriptions": [ + "[Default] MIG cannot change a VM's zone during a repair.", + "MIG can select a different zone for the VM during a repair." + ], + "type": "string" + } + }, + "type": "object" + }, + "InstanceGroupManagerList": { + "description": "[Output Only] A list of managed instance groups.", + "id": "InstanceGroupManagerList", "properties": { "id": { - "description": "[Output Only] Unique identifier for the resource; defined by the server.", + "description": "Output only. Unique identifier for the resource; defined by the server.", + "readOnly": true, "type": "string" }, "items": { - "description": "A list of Commitment resources.", + "description": "A list of InstanceGroupManager resources.", "items": { - "$ref": "Commitment" + "$ref": "InstanceGroupManager" }, "type": "array" }, "kind": { - "default": "compute#commitmentList", - "description": "[Output Only] Type of resource. Always compute#commitmentList for lists of commitments.", + "default": "compute#instanceGroupManagerList", + "description": "Output only. The resource type, which is always compute#instanceGroupManagerList for a\nlist of managed instance groups.", + "readOnly": true, "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.", + "description": "Output only. This token allows you to get the next page of results for\nlist requests. If the number of results is larger thanmaxResults, use the nextPageToken as a value for\nthe query parameter pageToken in the next list request.\nSubsequent list requests will have their own nextPageToken to\ncontinue paging through the results.", + "readOnly": true, "type": "string" }, "selfLink": { - "description": "[Output Only] Server-defined URL for this resource.", + "description": "Output only. Server-defined URL for this resource.", + "readOnly": true, "type": "string" }, "warning": { - "description": "[Output Only] Informational warning message.", + "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.", + "description": "[Output Only] A warning code, if applicable. For example, Compute\nEngine returns NO_RESULTS_ON_PAGE if there\nare no results in the response.", "enum": [ "CLEANUP_FAILED", "DEPRECATED_RESOURCE_USED", @@ -42502,6 +67667,7 @@ "NOT_CRITICAL_ERROR", "NO_RESULTS_ON_PAGE", "PARTIAL_SUCCESS", + "QUOTA_INFO_UNAVAILABLE", "REQUIRED_TOS_AGREEMENT", "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", "RESOURCE_NOT_DELETED", @@ -42538,46 +67704,48 @@ false, false, false, + false, false ], "enumDescriptions": [ - "Warning about failed cleanup of transient changes made by a failed operation.", + "Warning about failed cleanup of transient changes made by a failed\noperation.", "A link to a deprecated resource was created.", - "When deploying and at least one of the resources has a type marked as deprecated", + "When deploying and at least one of the resources has a type marked as\ndeprecated", "The user created a boot disk that is larger than image size.", - "When deploying and at least one of the resources has a type marked as experimental", + "When deploying and at least one of the resources has a type marked as\nexperimental", "Warning that is present in an external api call", - "Warning that value of a field has been overridden. Deprecated unused field.", + "Warning that value of a field has been overridden.\nDeprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", - "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is\nnot of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", - "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", + "Resource can't be retrieved due to list overhead quota exceed\nwhich captures the amount of resources filtered out by\nuser-defined list filter.", "A resource depends on a missing type", - "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's nextHopIp address is not assigned to an instance on the\nnetwork.", "The route's next hop instance cannot ip forward.", - "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not have an\nipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", - "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that is not on the\nsame network as the route.", "The route's next hop instance does not have a status of RUNNING.", - "Error which is not critical. We decided to continue the process despite the mentioned error.", + "Error which is not critical. We decided to continue the process despite\nthe mentioned error.", "No results are present on a particular list page.", "Success is reported, but some results may be missing due to errors", - "The user attempted to use a resource that requires a TOS they have not accepted.", + "Quota information is not available to client requests (e.g:\nregions.list).", + "The user attempted to use a resource that requires a TOS they have not\naccepted.", "Warning that a resource is in use.", - "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "One or more of the resources set to auto-delete could not be deleted\nbecause they were in use.", "When a resource schema validation is ignored.", - "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", + "Instance template used in instance group manager is valid as such, but\nits application does not make a lot of sense, because it allows only\nsingle instance in instance group.", "When undeclared properties in the schema are present", "A given scope cannot be reached." ], "type": "string" }, "data": { - "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", + "description": "[Output Only] Metadata about this warning in key:\nvalue format. For example:\n\n\"data\": [\n {\n \"key\": \"scope\",\n \"value\": \"zones/us-east1-d\"\n }", "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).", + "description": "[Output Only] A key that provides more detail on the warning being\nreturned. For example, for warnings where there are no results in a list\nrequest for a particular zone, this key might be scope and\nthe key value might be the zone name. Other examples might be a key\nindicating a deprecated resource and a suggested replacement, or a\nwarning about invalid network settings (for example, if an instance\nattempts to perform IP forwarding but is not enabled for IP forwarding).", "type": "string" }, "value": { @@ -42594,26 +67762,264 @@ "type": "string" } }, + "readOnly": true, "type": "object" } }, "type": "object" }, - "CommitmentsScopedList": { - "id": "CommitmentsScopedList", + "InstanceGroupManagerResizeRequest": { + "description": "InstanceGroupManagerResizeRequest represents a request to create\na number of VMs: either immediately or by queuing the request for the\nspecified time. This resize request is nested under InstanceGroupManager\nand the VMs created by this request are added to the owning\nInstanceGroupManager.", + "id": "InstanceGroupManagerResizeRequest", "properties": { - "commitments": { - "description": "[Output Only] A list of commitments contained in this scope.", + "creationTimestamp": { + "description": "Output only. The creation timestamp for this resize request inRFC3339\ntext format.", + "readOnly": true, + "type": "string" + }, + "description": { + "description": "An optional description of this resource.", + "type": "string" + }, + "id": { + "description": "Output only. A unique identifier for this resource type. The server generates this\nidentifier.", + "format": "uint64", + "readOnly": true, + "type": "string" + }, + "instances": { + "description": "The names of instances to be created by this resize request. The number of\nnames specified determines the number of instances to create. The group's\ntarget size will be increased by this number. This field cannot be used\ntogether with 'resize_by'.", "items": { - "$ref": "Commitment" + "$ref": "PerInstanceConfig" + }, + "type": "array" + }, + "kind": { + "default": "compute#instanceGroupManagerResizeRequest", + "description": "Output only. The resource type, which is alwayscompute#instanceGroupManagerResizeRequest for resize requests.", + "readOnly": true, + "type": "string" + }, + "name": { + "annotations": { + "required": [ + "compute.instanceGroupManagerResizeRequests.insert" + ] + }, + "description": "The name of this resize request. The name must be 1-63 characters\nlong, and comply withRFC1035.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "type": "string" + }, + "region": { + "description": "Output only. The URL of a region\nwhere the resize request is located. Populated only for regional resize\nrequests.", + "readOnly": true, + "type": "string" + }, + "requestedRunDuration": { + "$ref": "Duration", + "description": "Requested run duration for instances that will be created by this request.\nAt the end of the run duration instance will be deleted." + }, + "resizeBy": { + "description": "The number of instances to be created by this resize request. The group's\ntarget size will be increased by this number. This field cannot be used\ntogether with 'instances'.", + "format": "int32", + "type": "integer" + }, + "selfLink": { + "description": "Output only. The URL for this resize request. The server defines this URL.", + "readOnly": true, + "type": "string" + }, + "selfLinkWithId": { + "description": "Output only. Server-defined URL for this resource with the resource id.", + "readOnly": true, + "type": "string" + }, + "state": { + "description": "Output only. Current state of the request.", + "enum": [ + "ACCEPTED", + "CANCELLED", + "CREATING", + "FAILED", + "STATE_UNSPECIFIED", + "SUCCEEDED" + ], + "enumDescriptions": [ + "The request was created successfully and was accepted for provisioning\nwhen the capacity becomes available.", + "The request is cancelled.", + "Resize request is being created and may still fail creation.", + "The request failed before or during provisioning. If the request fails\nduring provisioning, any VMs that were created during provisioning are\nrolled back and removed from the MIG.", + "Default value. This value should never be returned.", + "The request succeeded." + ], + "readOnly": true, + "type": "string" + }, + "status": { + "$ref": "InstanceGroupManagerResizeRequestStatus", + "description": "Output only. Status of the request.", + "readOnly": true + }, + "zone": { + "description": "Output only. The URL of a zone\nwhere the resize request is located. Populated only for zonal resize\nrequests.", + "readOnly": true, + "type": "string" + } + }, + "type": "object" + }, + "InstanceGroupManagerResizeRequestStatus": { + "id": "InstanceGroupManagerResizeRequestStatus", + "properties": { + "error": { + "description": "Output only. Fatal errors encountered during the queueing or provisioning phases of\nthe ResizeRequest that caused the transition to the FAILED state.\nContrary to the last_attempt errors, this field is final and errors are\nnever removed from here, as the ResizeRequest is not going to retry.", + "properties": { + "errors": { + "description": "[Output Only] The array of errors encountered while processing this\noperation.", + "items": { + "properties": { + "code": { + "description": "[Output Only] The error type identifier for this error.", + "type": "string" + }, + "errorDetails": { + "description": "[Output Only] An optional list of messages that contain the error\ndetails. There is a set of defined message types to use for providing\ndetails.The syntax depends on the error code. For example,\nQuotaExceededInfo will have details when the error code is\nQUOTA_EXCEEDED.", + "items": { + "properties": { + "errorInfo": { + "$ref": "ErrorInfo" + }, + "help": { + "$ref": "Help" + }, + "localizedMessage": { + "$ref": "LocalizedMessage" + }, + "quotaInfo": { + "$ref": "QuotaExceededInfo" + } + }, + "type": "object" + }, + "type": "array" + }, + "location": { + "description": "[Output Only] Indicates the field in the request that caused the error.\nThis property is optional.", + "type": "string" + }, + "message": { + "description": "[Output Only] An optional, human-readable error message.", + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + } + }, + "readOnly": true, + "type": "object" + }, + "lastAttempt": { + "$ref": "InstanceGroupManagerResizeRequestStatusLastAttempt", + "description": "Output only. Information about the last attempt to fulfill the request. The value is\ntemporary since the ResizeRequest can retry, as long as it's still active\nand the last attempt value can either be cleared or replaced with a\ndifferent error. Since ResizeRequest retries infrequently, the value may\nbe stale and no longer show an active problem. The value is cleared when\nResizeRequest transitions to the final state (becomes inactive). If the\nfinal state is FAILED the error describing it will be stored in the\n\"error\" field only.", + "readOnly": true + } + }, + "type": "object" + }, + "InstanceGroupManagerResizeRequestStatusLastAttempt": { + "id": "InstanceGroupManagerResizeRequestStatusLastAttempt", + "properties": { + "error": { + "description": "Output only. Errors that prevented the ResizeRequest to be fulfilled.", + "properties": { + "errors": { + "description": "[Output Only] The array of errors encountered while processing this\noperation.", + "items": { + "properties": { + "code": { + "description": "[Output Only] The error type identifier for this error.", + "type": "string" + }, + "errorDetails": { + "description": "[Output Only] An optional list of messages that contain the error\ndetails. There is a set of defined message types to use for providing\ndetails.The syntax depends on the error code. For example,\nQuotaExceededInfo will have details when the error code is\nQUOTA_EXCEEDED.", + "items": { + "properties": { + "errorInfo": { + "$ref": "ErrorInfo" + }, + "help": { + "$ref": "Help" + }, + "localizedMessage": { + "$ref": "LocalizedMessage" + }, + "quotaInfo": { + "$ref": "QuotaExceededInfo" + } + }, + "type": "object" + }, + "type": "array" + }, + "location": { + "description": "[Output Only] Indicates the field in the request that caused the error.\nThis property is optional.", + "type": "string" + }, + "message": { + "description": "[Output Only] An optional, human-readable error message.", + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + } + }, + "readOnly": true, + "type": "object" + } + }, + "type": "object" + }, + "InstanceGroupManagerResizeRequestsListResponse": { + "description": "[Output Only] A list of resize requests.", + "id": "InstanceGroupManagerResizeRequestsListResponse", + "properties": { + "id": { + "description": "Output only. Unique identifier for the resource; defined by the server.", + "readOnly": true, + "type": "string" + }, + "items": { + "description": "A list of resize request resources.", + "items": { + "$ref": "InstanceGroupManagerResizeRequest" }, "type": "array" }, + "kind": { + "default": "compute#instanceGroupManagerResizeRequestList", + "description": "Output only. Type of the resource. Alwayscompute#instanceGroupManagerResizeRequestList for\na list of resize requests.", + "readOnly": true, + "type": "string" + }, + "nextPageToken": { + "description": "Output only. This token allows you to get the next page of results for list requests.\nIf the number of results is larger than maxResults, use thenextPageToken as a value for the query parameterpageToken in the next list request.\nSubsequent list requests will have their own nextPageToken to\ncontinue paging through the results.", + "readOnly": true, + "type": "string" + }, + "selfLink": { + "description": "Output only. Server-defined URL for this resource.", + "readOnly": true, + "type": "string" + }, "warning": { - "description": "[Output Only] Informational warning which replaces the list of commitments when the list is empty.", + "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.", + "description": "[Output Only] A warning code, if applicable. For example, Compute\nEngine returns NO_RESULTS_ON_PAGE if there\nare no results in the response.", "enum": [ "CLEANUP_FAILED", "DEPRECATED_RESOURCE_USED", @@ -42636,6 +68042,7 @@ "NOT_CRITICAL_ERROR", "NO_RESULTS_ON_PAGE", "PARTIAL_SUCCESS", + "QUOTA_INFO_UNAVAILABLE", "REQUIRED_TOS_AGREEMENT", "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", "RESOURCE_NOT_DELETED", @@ -42672,651 +68079,754 @@ false, false, false, + false, false ], "enumDescriptions": [ - "Warning about failed cleanup of transient changes made by a failed operation.", + "Warning about failed cleanup of transient changes made by a failed\noperation.", "A link to a deprecated resource was created.", - "When deploying and at least one of the resources has a type marked as deprecated", + "When deploying and at least one of the resources has a type marked as\ndeprecated", "The user created a boot disk that is larger than image size.", - "When deploying and at least one of the resources has a type marked as experimental", + "When deploying and at least one of the resources has a type marked as\nexperimental", "Warning that is present in an external api call", - "Warning that value of a field has been overridden. Deprecated unused field.", + "Warning that value of a field has been overridden.\nDeprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", - "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is\nnot of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", - "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", + "Resource can't be retrieved due to list overhead quota exceed\nwhich captures the amount of resources filtered out by\nuser-defined list filter.", "A resource depends on a missing type", - "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's nextHopIp address is not assigned to an instance on the\nnetwork.", "The route's next hop instance cannot ip forward.", - "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not have an\nipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", - "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that is not on the\nsame network as the route.", "The route's next hop instance does not have a status of RUNNING.", - "Error which is not critical. We decided to continue the process despite the mentioned error.", + "Error which is not critical. We decided to continue the process despite\nthe mentioned error.", "No results are present on a particular list page.", "Success is reported, but some results may be missing due to errors", - "The user attempted to use a resource that requires a TOS they have not accepted.", + "Quota information is not available to client requests (e.g:\nregions.list).", + "The user attempted to use a resource that requires a TOS they have not\naccepted.", "Warning that a resource is in use.", - "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "One or more of the resources set to auto-delete could not be deleted\nbecause they were in use.", "When a resource schema validation is ignored.", - "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", + "Instance template used in instance group manager is valid as such, but\nits application does not make a lot of sense, because it allows only\nsingle instance in instance group.", "When undeclared properties in the schema are present", "A given scope cannot be reached." ], "type": "string" }, "data": { - "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", + "description": "[Output Only] Metadata about this warning in key:\nvalue format. For example:\n\n\"data\": [\n {\n \"key\": \"scope\",\n \"value\": \"zones/us-east1-d\"\n }", "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).", + "description": "[Output Only] A key that provides more detail on the warning being\nreturned. For example, for warnings where there are no results in a list\nrequest for a particular zone, this key might be scope and\nthe key value might be the zone name. Other examples might be a key\nindicating a deprecated resource and a suggested replacement, or a\nwarning about invalid network settings (for example, if an instance\nattempts 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" + } + }, + "readOnly": true, + "type": "object" + } + }, + "type": "object" + }, + "InstanceGroupManagerResourcePolicies": { + "id": "InstanceGroupManagerResourcePolicies", + "properties": { + "workloadPolicy": { + "description": "The URL of the workload policy that is specified for this managed\ninstance group.\nIt can be a full or partial URL. For example, the following are\nall valid URLs to a workload policy: \n \n \n - https://www.googleapis.com/compute/v1/projects/project/regions/region/resourcePolicies/resourcePolicy\n - projects/project/regions/region/resourcePolicies/resourcePolicy\n - regions/region/resourcePolicies/resourcePolicy", + "type": "string" + } + }, + "type": "object" + }, + "InstanceGroupManagerStandbyPolicy": { + "id": "InstanceGroupManagerStandbyPolicy", + "properties": { + "initialDelaySec": { + "description": "Specifies the number of seconds that the MIG should wait to suspend or\nstop a VM after that VM was created. The initial delay gives the\ninitialization script the time to prepare your VM for a quick scale out.\nThe value of initial delay must be between 0 and 3600 seconds. The\ndefault value is 0.", + "format": "int32", + "type": "integer" + }, + "mode": { + "description": "Defines how a MIG resumes or starts VMs from a standby pool when the\ngroup scales out. The default mode is `MANUAL`.", + "enum": [ + "MANUAL", + "SCALE_OUT_POOL" + ], + "enumDescriptions": [ + "MIG does not automatically resume or start VMs in the standby pool when\nthe group scales out.", + "MIG automatically resumes or starts VMs in the standby pool when the\ngroup scales out, and replenishes the standby pool afterwards." + ], + "type": "string" + } + }, + "type": "object" + }, + "InstanceGroupManagerStatus": { + "id": "InstanceGroupManagerStatus", + "properties": { + "allInstancesConfig": { + "$ref": "InstanceGroupManagerStatusAllInstancesConfig", + "description": "Output only. Status of all-instances configuration on the group.", + "readOnly": true + }, + "appliedAcceleratorTopologies": { + "description": "Output only. The accelerator topology applied to this MIG.\nCurrently only one accelerator topology is supported.", + "items": { + "$ref": "InstanceGroupManagerStatusAcceleratorTopology" + }, + "readOnly": true, + "type": "array" + }, + "autoscaler": { + "description": "Output only. The URL of theAutoscaler\nthat targets this instance group manager.", + "readOnly": true, + "type": "string" + }, + "bulkInstanceOperation": { + "$ref": "InstanceGroupManagerStatusBulkInstanceOperation", + "description": "Output only. The status of bulk instance operation.", + "readOnly": true + }, + "currentInstanceStatuses": { + "$ref": "InstanceGroupManagerStatusInstanceStatusSummary", + "description": "Output only. The list of instance statuses and the number of instances\nin this managed instance group that have the status. Currently only shown\nfor TPU MIGs", + "readOnly": true + }, + "isStable": { + "description": "Output only. A bit indicating whether the managed instance group is in a\nstable state. A stable state means that: none of the instances in the\nmanaged instance group is currently undergoing any type of change (for\nexample, creation, restart, or deletion); no future changes are scheduled\nfor instances in the managed instance group; and the managed instance\ngroup itself is not being modified.", + "readOnly": true, + "type": "boolean" + }, + "stateful": { + "$ref": "InstanceGroupManagerStatusStateful", + "description": "Output only. Stateful status of the given Instance Group Manager.", + "readOnly": true + }, + "versionTarget": { + "$ref": "InstanceGroupManagerStatusVersionTarget", + "description": "Output only. A status of consistency of Instances' versions with their\ntarget version specified by version field on Instance Group\nManager.", + "readOnly": true + } + }, + "type": "object" + }, + "InstanceGroupManagerStatusAcceleratorTopology": { + "id": "InstanceGroupManagerStatusAcceleratorTopology", + "properties": { + "acceleratorTopology": { + "description": "Output only. Topology in the format of: \"16x16\", \"4x4x4\", etc.\nThe value is the same as configured in the WorkloadPolicy.", + "readOnly": true, + "type": "string" + }, + "state": { + "description": "Output only. The state of the accelerator topology.", + "enum": [ + "ACTIVATING", + "ACTIVE", + "DEACTIVATING", + "FAILED", + "INCOMPLETE", + "REACTIVATING" + ], + "enumDescriptions": [ + "The accelerator topology is being activated.", + "The accelerator topology is active.", + "The accelerator topology is being deactivated.", + "The accelerator topology failed.", + "The configuration is incomplete and the accelerator topology cannot\nbe activated due to insufficient number of running VMs.", + "The accelerator topology is being reactivated." + ], + "readOnly": true, + "type": "string" + }, + "stateDetails": { + "$ref": "InstanceGroupManagerStatusAcceleratorTopologyAcceleratorTopologyStateDetails", + "description": "Output only. The result of the latest accelerator topology state\ncheck.", + "readOnly": true + } + }, + "type": "object" + }, + "InstanceGroupManagerStatusAcceleratorTopologyAcceleratorTopologyStateDetails": { + "id": "InstanceGroupManagerStatusAcceleratorTopologyAcceleratorTopologyStateDetails", + "properties": { + "error": { + "description": "Output only. Encountered errors.", + "properties": { + "errors": { + "description": "[Output Only] The array of errors encountered while processing this\noperation.", + "items": { + "properties": { + "code": { + "description": "[Output Only] The error type identifier for this error.", + "type": "string" + }, + "errorDetails": { + "description": "[Output Only] An optional list of messages that contain the error\ndetails. There is a set of defined message types to use for providing\ndetails.The syntax depends on the error code. For example,\nQuotaExceededInfo will have details when the error code is\nQUOTA_EXCEEDED.", + "items": { + "properties": { + "errorInfo": { + "$ref": "ErrorInfo" + }, + "help": { + "$ref": "Help" + }, + "localizedMessage": { + "$ref": "LocalizedMessage" + }, + "quotaInfo": { + "$ref": "QuotaExceededInfo" + } + }, + "type": "object" + }, + "type": "array" + }, + "location": { + "description": "[Output Only] Indicates the field in the request that caused the error.\nThis property is optional.", "type": "string" }, - "value": { - "description": "[Output Only] A warning data value corresponding to the key.", + "message": { + "description": "[Output Only] An optional, human-readable error message.", "type": "string" } }, "type": "object" }, "type": "array" - }, - "message": { - "description": "[Output Only] A human-readable description of the warning code.", - "type": "string" } }, + "readOnly": true, "type": "object" - } - }, - "type": "object" - }, - "Condition": { - "description": "This is deprecated and has no effect. Do not use.", - "id": "Condition", - "properties": { - "iam": { - "description": "This is deprecated and has no effect. Do not use.", - "enum": [ - "APPROVER", - "ATTRIBUTION", - "AUTHORITY", - "CREDENTIALS_TYPE", - "CREDS_ASSERTION", - "JUSTIFICATION_TYPE", - "NO_ATTR", - "SECURITY_REALM" - ], - "enumDescriptions": [ - "This is deprecated and has no effect. Do not use.", - "This is deprecated and has no effect. Do not use.", - "This is deprecated and has no effect. Do not use.", - "This is deprecated and has no effect. Do not use.", - "This is deprecated and has no effect. Do not use.", - "This is deprecated and has no effect. Do not use.", - "This is deprecated and has no effect. Do not use.", - "This is deprecated and has no effect. Do not use." - ], - "type": "string" - }, - "op": { - "description": "This is deprecated and has no effect. Do not use.", - "enum": [ - "DISCHARGED", - "EQUALS", - "IN", - "NOT_EQUALS", - "NOT_IN", - "NO_OP" - ], - "enumDescriptions": [ - "This is deprecated and has no effect. Do not use.", - "This is deprecated and has no effect. Do not use.", - "This is deprecated and has no effect. Do not use.", - "This is deprecated and has no effect. Do not use.", - "This is deprecated and has no effect. Do not use.", - "This is deprecated and has no effect. Do not use." - ], - "type": "string" - }, - "svc": { - "description": "This is deprecated and has no effect. Do not use.", - "type": "string" }, - "sys": { - "description": "This is deprecated and has no effect. Do not use.", - "enum": [ - "IP", - "NAME", - "NO_ATTR", - "REGION", - "SERVICE" - ], - "enumDescriptions": [ - "This is deprecated and has no effect. Do not use.", - "This is deprecated and has no effect. Do not use.", - "This is deprecated and has no effect. Do not use.", - "This is deprecated and has no effect. Do not use.", - "This is deprecated and has no effect. Do not use." - ], + "timestamp": { + "description": "Output only. Timestamp is shown only if there is an error. The field\nhas // RFC3339 //\ntext format.", + "format": "google-datetime", + "readOnly": true, "type": "string" - }, - "values": { - "description": "This is deprecated and has no effect. Do not use.", - "items": { - "type": "string" - }, - "type": "array" } }, "type": "object" }, - "ConfidentialInstanceConfig": { - "description": "A set of Confidential Instance options.", - "id": "ConfidentialInstanceConfig", + "InstanceGroupManagerStatusAllInstancesConfig": { + "id": "InstanceGroupManagerStatusAllInstancesConfig", "properties": { - "enableConfidentialCompute": { - "description": "Defines whether the instance should have confidential compute enabled.", + "currentRevision": { + "description": "Output only. Current all-instances configuration revision.\nThis value is in RFC3339 text format.", + "readOnly": true, + "type": "string" + }, + "effective": { + "description": "Output only. A bit indicating whether this configuration has\nbeen applied to all managed instances in the group.", + "readOnly": true, "type": "boolean" } }, "type": "object" }, - "ConnectionDraining": { - "description": "Message containing connection draining configuration.", - "id": "ConnectionDraining", + "InstanceGroupManagerStatusBulkInstanceOperation": { + "description": "Bulk instance operation is the creation of VMs in a MIG when the\ntargetSizePolicy.mode is set to BULK.", + "id": "InstanceGroupManagerStatusBulkInstanceOperation", "properties": { - "drainingTimeoutSec": { - "description": "Configures a duration timeout for existing requests on a removed backend instance. For supported load balancers and protocols, as described in Enabling connection draining.", - "format": "int32", - "type": "integer" + "inProgress": { + "description": "Output only. Informs whether bulk instance operation is in progress.", + "readOnly": true, + "type": "boolean" + }, + "lastProgressCheck": { + "$ref": "InstanceGroupManagerStatusBulkInstanceOperationLastProgressCheck", + "description": "Output only. Information from the last progress check of bulk instance\noperation.", + "readOnly": true } }, "type": "object" }, - "ConsistentHashLoadBalancerSettings": { - "description": "This message defines settings for a consistent hash style load balancer.", - "id": "ConsistentHashLoadBalancerSettings", + "InstanceGroupManagerStatusBulkInstanceOperationLastProgressCheck": { + "id": "InstanceGroupManagerStatusBulkInstanceOperationLastProgressCheck", "properties": { - "httpCookie": { - "$ref": "ConsistentHashLoadBalancerSettingsHttpCookie", - "description": "Hash is based on HTTP Cookie. This field describes a HTTP cookie that will be used as the hash key for the consistent hash load balancer. If the cookie is not present, it will be generated. This field is applicable if the sessionAffinity is set to HTTP_COOKIE. Not supported when the backend service is referenced by a URL map that is bound to target gRPC proxy that has validateForProxyless field set to true." - }, - "httpHeaderName": { - "description": "The hash based on the value of the specified header field. This field is applicable if the sessionAffinity is set to HEADER_FIELD.", - "type": "string" + "error": { + "description": "Output only. Errors encountered during bulk instance operation.", + "properties": { + "errors": { + "description": "[Output Only] The array of errors encountered while processing this\noperation.", + "items": { + "properties": { + "code": { + "description": "[Output Only] The error type identifier for this error.", + "type": "string" + }, + "errorDetails": { + "description": "[Output Only] An optional list of messages that contain the error\ndetails. There is a set of defined message types to use for providing\ndetails.The syntax depends on the error code. For example,\nQuotaExceededInfo will have details when the error code is\nQUOTA_EXCEEDED.", + "items": { + "properties": { + "errorInfo": { + "$ref": "ErrorInfo" + }, + "help": { + "$ref": "Help" + }, + "localizedMessage": { + "$ref": "LocalizedMessage" + }, + "quotaInfo": { + "$ref": "QuotaExceededInfo" + } + }, + "type": "object" + }, + "type": "array" + }, + "location": { + "description": "[Output Only] Indicates the field in the request that caused the error.\nThis property is optional.", + "type": "string" + }, + "message": { + "description": "[Output Only] An optional, human-readable error message.", + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + } + }, + "readOnly": true, + "type": "object" }, - "minimumRingSize": { - "description": "The minimum number of virtual nodes to use for the hash ring. Defaults to 1024. Larger ring sizes result in more granular load distributions. If the number of hosts in the load balancing pool is larger than the ring size, each host will be assigned a single virtual node.", - "format": "int64", + "timestamp": { + "description": "Output only. Timestamp of the last progress check of bulk instance\noperation. Timestamp is in RFC3339 text format.", + "format": "google-datetime", + "readOnly": true, "type": "string" } }, "type": "object" }, - "ConsistentHashLoadBalancerSettingsHttpCookie": { - "description": "The information about the HTTP Cookie on which the hash function is based for load balancing policies that use a consistent hash.", - "id": "ConsistentHashLoadBalancerSettingsHttpCookie", + "InstanceGroupManagerStatusInstanceStatusSummary": { + "description": "The list of instance statuses and the number of instances in this managed\ninstance group that have the status. For more information about how to\ninterpret each status check the instance lifecycle documentation.\nCurrently only shown for TPU MIGs.", + "id": "InstanceGroupManagerStatusInstanceStatusSummary", "properties": { - "name": { - "description": "Name of the cookie.", - "type": "string" + "deprovisioning": { + "description": "Output only. The number of instances in the managed instance group\nthat have DEPROVISIONING status.", + "format": "int32", + "readOnly": true, + "type": "integer" }, - "path": { - "description": "Path to set for the cookie.", - "type": "string" + "nonExistent": { + "description": "Output only. The number of instances that have not been created yet or\nhave been deleted. Includes only instances that would be shown in the\nlistManagedInstances method and not all instances that have been\ndeleted in the lifetime of the MIG.\nDoes not include FlexStart instances that are waiting for the resources\navailability, they are considered as 'pending'.", + "format": "int32", + "readOnly": true, + "type": "integer" }, - "ttl": { - "$ref": "Duration", - "description": "Lifetime of the cookie." - } - }, - "type": "object" - }, - "CorsPolicy": { - "description": "The specification for allowing client-side cross-origin requests. For more information about the W3C recommendation for cross-origin resource sharing (CORS), see Fetch API Living Standard.", - "id": "CorsPolicy", - "properties": { - "allowCredentials": { - "description": "In response to a preflight request, setting this to true indicates that the actual request can include user credentials. This field translates to the Access-Control-Allow-Credentials header. Default is false.", - "type": "boolean" + "pending": { + "description": "Output only. The number of instances in the managed instance group\nthat have PENDING status, that is FlexStart instances that are waiting\nfor resources. Instances that do not exist because of the other reasons\nare counted as 'non_existent'.", + "format": "int32", + "readOnly": true, + "type": "integer" }, - "allowHeaders": { - "description": "Specifies the content for the Access-Control-Allow-Headers header.", - "items": { - "type": "string" - }, - "type": "array" + "pendingStop": { + "description": "Output only. The number of instances in the managed instance group\nthat have PENDING_STOP status.", + "format": "int32", + "readOnly": true, + "type": "integer" }, - "allowMethods": { - "description": "Specifies the content for the Access-Control-Allow-Methods header.", - "items": { - "type": "string" - }, - "type": "array" + "provisioning": { + "description": "Output only. The number of instances in the managed instance group\nthat have PROVISIONING status.", + "format": "int32", + "readOnly": true, + "type": "integer" }, - "allowOriginRegexes": { - "description": "Specifies a regular expression that matches allowed origins. For more information, see regular expression syntax . An origin is allowed if it matches either an item in allowOrigins or an item in allowOriginRegexes. Regular expressions can only be used when the loadBalancingScheme is set to INTERNAL_SELF_MANAGED.", - "items": { - "type": "string" - }, - "type": "array" + "repairing": { + "description": "Output only. The number of instances in the managed instance group\nthat have REPAIRING status.", + "format": "int32", + "readOnly": true, + "type": "integer" }, - "allowOrigins": { - "description": "Specifies the list of origins that is allowed to do CORS requests. An origin is allowed if it matches either an item in allowOrigins or an item in allowOriginRegexes.", - "items": { - "type": "string" - }, - "type": "array" + "running": { + "description": "Output only. The number of instances in the managed instance group\nthat have RUNNING status.", + "format": "int32", + "readOnly": true, + "type": "integer" }, - "disabled": { - "description": "If true, disables the CORS policy. The default value is false, which indicates that the CORS policy is in effect.", - "type": "boolean" + "staging": { + "description": "Output only. The number of instances in the managed instance group\nthat have STAGING status.", + "format": "int32", + "readOnly": true, + "type": "integer" }, - "exposeHeaders": { - "description": "Specifies the content for the Access-Control-Expose-Headers header.", - "items": { - "type": "string" - }, - "type": "array" + "stopped": { + "description": "Output only. The number of instances in the managed instance group\nthat have STOPPED status.", + "format": "int32", + "readOnly": true, + "type": "integer" }, - "maxAge": { - "description": "Specifies how long results of a preflight request can be cached in seconds. This field translates to the Access-Control-Max-Age header.", + "stopping": { + "description": "Output only. The number of instances in the managed instance group\nthat have STOPPING status.", + "format": "int32", + "readOnly": true, + "type": "integer" + }, + "suspended": { + "description": "Output only. The number of instances in the managed instance group\nthat have SUSPENDED status.", + "format": "int32", + "readOnly": true, + "type": "integer" + }, + "suspending": { + "description": "Output only. The number of instances in the managed instance group\nthat have SUSPENDING status.", + "format": "int32", + "readOnly": true, + "type": "integer" + }, + "terminated": { + "description": "Output only. The number of instances in the managed instance group\nthat have TERMINATED status.", "format": "int32", + "readOnly": true, "type": "integer" } }, "type": "object" }, - "CustomerEncryptionKey": { - "id": "CustomerEncryptionKey", + "InstanceGroupManagerStatusStateful": { + "id": "InstanceGroupManagerStatusStateful", "properties": { - "kmsKeyName": { - "description": "The name of the encryption key that is stored in Google Cloud KMS. For example: \"kmsKeyName\": \"projects/kms_project_id/locations/region/keyRings/ key_region/cryptoKeys/key The fully-qualifed key name may be returned for resource GET requests. For example: \"kmsKeyName\": \"projects/kms_project_id/locations/region/keyRings/ key_region/cryptoKeys/key /cryptoKeyVersions/1 ", - "type": "string" - }, - "kmsKeyServiceAccount": { - "description": "The service account being used for the encryption request for the given KMS key. If absent, the Compute Engine default service account is used. For example: \"kmsKeyServiceAccount\": \"name@project_id.iam.gserviceaccount.com/ ", - "type": "string" - }, - "rawKey": { - "description": "Specifies a 256-bit customer-supplied encryption key, encoded in RFC 4648 base64 to either encrypt or decrypt this resource. You can provide either the rawKey or the rsaEncryptedKey. For example: \"rawKey\": \"SGVsbG8gZnJvbSBHb29nbGUgQ2xvdWQgUGxhdGZvcm0=\" ", - "type": "string" - }, - "rsaEncryptedKey": { - "description": "Specifies an RFC 4648 base64 encoded, RSA-wrapped 2048-bit customer-supplied encryption key to either encrypt or decrypt this resource. You can provide either the rawKey or the rsaEncryptedKey. For example: \"rsaEncryptedKey\": \"ieCx/NcW06PcT7Ep1X6LUTc/hLvUDYyzSZPPVCVPTVEohpeHASqC8uw5TzyO9U+Fka9JFH z0mBibXUInrC/jEk014kCK/NPjYgEMOyssZ4ZINPKxlUh2zn1bV+MCaTICrdmuSBTWlUUiFoD D6PYznLwh8ZNdaheCeZ8ewEXgFQ8V+sDroLaN3Xs3MDTXQEMMoNUXMCZEIpg9Vtp9x2oe==\" The key must meet the following requirements before you can provide it to Compute Engine: 1. The key is wrapped using a RSA public key certificate provided by Google. 2. After being wrapped, the key must be encoded in RFC 4648 base64 encoding. Gets the RSA public key certificate provided by Google at: https://cloud-certs.storage.googleapis.com/google-cloud-csek-ingress.pem ", - "type": "string" + "hasStatefulConfig": { + "description": "Output only. A bit indicating whether the managed instance group\nhas stateful configuration, that is, if you have configured any items\nin a stateful policy or in per-instance configs.\nThe group might report that it has no stateful configuration even when\nthere is still some preserved state on a managed instance, for example,\nif you have deleted all PICs but not yet applied those deletions.", + "readOnly": true, + "type": "boolean" }, - "sha256": { - "description": "[Output only] The RFC 4648 base64 encoded SHA-256 hash of the customer-supplied encryption key that protects this resource.", - "type": "string" + "perInstanceConfigs": { + "$ref": "InstanceGroupManagerStatusStatefulPerInstanceConfigs", + "description": "Output only. Status of per-instance configurations on the instances.", + "readOnly": true } }, "type": "object" }, - "CustomerEncryptionKeyProtectedDisk": { - "id": "CustomerEncryptionKeyProtectedDisk", + "InstanceGroupManagerStatusStatefulPerInstanceConfigs": { + "id": "InstanceGroupManagerStatusStatefulPerInstanceConfigs", "properties": { - "diskEncryptionKey": { - "$ref": "CustomerEncryptionKey", - "description": "Decrypts data associated with the disk with a customer-supplied encryption key." - }, - "source": { - "description": "Specifies a valid partial or full URL to an existing Persistent Disk resource. This field is only applicable for persistent disks. For example: \"source\": \"/compute/v1/projects/project_id/zones/zone/disks/ disk_name ", - "type": "string" + "allEffective": { + "description": "Output only. A bit indicating if all of the group's per-instance configurations\n(listed in the output of a listPerInstanceConfigs API call) have\nstatus EFFECTIVE or there are no per-instance-configs.", + "readOnly": true, + "type": "boolean" } }, "type": "object" }, - "DeprecationStatus": { - "description": "Deprecation status for a public resource.", - "id": "DeprecationStatus", + "InstanceGroupManagerStatusVersionTarget": { + "id": "InstanceGroupManagerStatusVersionTarget", "properties": { - "deleted": { - "description": "An optional RFC3339 timestamp on or after which the state of this resource is intended to change to DELETED. This is only informational and the status will not change unless the client explicitly changes it.", - "type": "string" - }, - "deprecated": { - "description": "An optional RFC3339 timestamp on or after which the state of this resource is intended to change to DEPRECATED. This is only informational and the status will not change unless the client explicitly changes it.", - "type": "string" - }, - "obsolete": { - "description": "An optional RFC3339 timestamp on or after which the state of this resource is intended to change to OBSOLETE. This is only informational and the status will not change unless the client explicitly changes it.", - "type": "string" - }, - "replacement": { - "description": "The URL of the suggested replacement for a deprecated resource. The suggested replacement resource must be the same kind of resource as the deprecated resource.", - "type": "string" - }, - "state": { - "description": "The deprecation state of this resource. This can be ACTIVE, DEPRECATED, OBSOLETE, or DELETED. Operations which communicate the end of life date for an image, can use ACTIVE. Operations which create a new resource using a DEPRECATED resource will return successfully, but with a warning indicating the deprecated resource and recommending its replacement. Operations which use OBSOLETE or DELETED resources will be rejected and result in an error.", + "isReached": { + "description": "Output only. A bit indicating whether version target has been reached\nin this managed instance group, i.e. all instances are in their target\nversion. Instances' target version are specified byversion field on Instance Group Manager.", + "readOnly": true, + "type": "boolean" + } + }, + "type": "object" + }, + "InstanceGroupManagerTargetSizePolicy": { + "id": "InstanceGroupManagerTargetSizePolicy", + "properties": { + "mode": { + "description": "The mode of target size policy based on which the MIG creates its VMs\nindividually or all at once.", "enum": [ - "ACTIVE", - "DELETED", - "DEPRECATED", - "OBSOLETE" + "BULK", + "INDIVIDUAL", + "UNSPECIFIED_MODE" ], "enumDescriptions": [ - "", - "", - "", - "" + "The mode in which the MIG creates VMs all at once. In this mode, if the\nMIG is unable to create even one VM, the MIG waits until all VMs can be\ncreated at the same time.", + "The mode in which the MIG creates VMs individually. In this mode, if\nthe MIG is unable to create a VM, the MIG will continue to create the\nother VMs in the group. This is the default mode.", + "If mode is unspecified, MIG will behave as in the default `INDIVIDUAL`\nmode." ], "type": "string" } }, "type": "object" }, - "Disk": { - "description": "Represents a Persistent Disk resource. Google Compute Engine has two Disk resources: * [Zonal](/compute/docs/reference/rest/v1/disks) * [Regional](/compute/docs/reference/rest/v1/regionDisks) Persistent disks are required for running your VM instances. Create both boot and non-boot (data) persistent disks. For more information, read Persistent Disks. For more storage options, read Storage options. The disks resource represents a zonal persistent disk. For more information, read Zonal persistent disks. The regionDisks resource represents a regional persistent disk. For more information, read Regional resources.", - "id": "Disk", + "InstanceGroupManagerUpdatePolicy": { + "id": "InstanceGroupManagerUpdatePolicy", "properties": { - "architecture": { - "description": "The architecture of the disk. Valid values are ARM64 or X86_64.", + "instanceRedistributionType": { + "description": "The \ninstance redistribution policy for regional managed instance groups.\nValid values are: \n \n - PROACTIVE (default): The group attempts to maintain an\n even distribution of VM instances across zones in the region.\n - NONE: For non-autoscaled groups, proactive\n redistribution is disabled.", "enum": [ - "ARCHITECTURE_UNSPECIFIED", - "ARM64", - "X86_64" + "NONE", + "PROACTIVE" ], "enumDescriptions": [ - "Default value indicating Architecture is not set.", - "Machines with architecture ARM64", - "Machines with architecture X86_64" + "No action is being proactively performed in order to bring this IGM\nto its target instance distribution.", + "This IGM will actively converge to its target instance distribution." ], "type": "string" }, - "asyncPrimaryDisk": { - "$ref": "DiskAsyncReplication", - "description": "Disk asynchronously replicated into this disk." - }, - "asyncSecondaryDisks": { - "additionalProperties": { - "$ref": "DiskAsyncReplicationList" - }, - "description": "[Output Only] A list of disks this disk is asynchronously replicated to.", - "type": "object" - }, - "creationTimestamp": { - "description": "[Output Only] Creation timestamp in RFC3339 text format.", - "type": "string" - }, - "description": { - "description": "An optional description of this resource. Provide this property when you create the resource.", - "type": "string" - }, - "diskEncryptionKey": { - "$ref": "CustomerEncryptionKey", - "description": "Encrypts the disk using a customer-supplied encryption key or a customer-managed encryption key. Encryption keys do not protect access to metadata of the disk. After you encrypt a disk with a customer-supplied key, you must provide the same key if you use the disk later. For example, to create a disk snapshot, to create a disk image, to create a machine image, or to attach the disk to a virtual machine. After you encrypt a disk with a customer-managed key, the diskEncryptionKey.kmsKeyName is set to a key *version* name once the disk is created. The disk is encrypted with this version of the key. In the response, diskEncryptionKey.kmsKeyName appears in the following format: \"diskEncryptionKey.kmsKeyName\": \"projects/kms_project_id/locations/region/keyRings/ key_region/cryptoKeys/key /cryptoKeysVersions/version If you do not provide an encryption key when creating the disk, then the disk is encrypted using an automatically generated key and you don't need to provide a key to use the disk later." - }, - "enableConfidentialCompute": { - "description": "Whether this disk is using confidential compute mode.", - "type": "boolean" - }, - "guestOsFeatures": { - "description": "A list of features to enable on the guest operating system. Applicable only for bootable images. Read Enabling guest operating system features to see a list of available options.", - "items": { - "$ref": "GuestOsFeature" - }, - "type": "array" + "maxSurge": { + "$ref": "FixedOrPercent", + "description": "The maximum number of instances that can be created above the specifiedtargetSize during the update process. This value can be\neither a fixed number or, if the group has 10 or more instances, a\npercentage. If you set a percentage, the number of instances is rounded\nif necessary. The default value for maxSurge is a fixed\nvalue equal to the number of zones in which the managed instance group\noperates.\n\nAt least one of either maxSurge ormaxUnavailable must be greater than 0. Learn more about maxSurge." }, - "id": { - "description": "[Output Only] The unique identifier for the resource. This identifier is defined by the server.", - "format": "uint64", - "type": "string" + "maxUnavailable": { + "$ref": "FixedOrPercent", + "description": "The maximum number of instances that can be unavailable during the update\nprocess. An instance is considered available if all of the following\nconditions are satisfied:\n\n \n \n - The instance's status is\n RUNNING. \n - If there is a health\n check on the instance group, the instance's health check status\n must be HEALTHY at least once. If there is no health check\n on the group, then the instance only needs to have a status of\n RUNNING to be considered available.\n\n\nThis value can be either a fixed number or, if the group has 10 or more\ninstances, a percentage. If you set a percentage, the number of instances\nis rounded if necessary. The default value formaxUnavailable is a fixed value equal to the number of zones\nin which the managed instance group operates.\n\nAt least one of either maxSurge ormaxUnavailable must be greater than 0. Learn more about maxUnavailable." }, - "kind": { - "default": "compute#disk", - "description": "[Output Only] Type of the resource. Always compute#disk for disks.", + "minimalAction": { + "description": "Minimal action to be taken on an instance. Use this option to minimize\ndisruption as much as possible or to apply a more disruptive action than\nis necessary.\n \n - To limit disruption as much as possible, set the minimal action toREFRESH. If your update requires a more disruptive action,\n Compute Engine performs the necessary action to execute the update.\n - To apply a more disruptive action than is strictly necessary, set the\n minimal action to RESTART or REPLACE. For\n example, Compute Engine does not need to restart a VM to change its\n metadata. But if your application reads instance metadata only when a VM\n is restarted, you can set the minimal action to RESTART in\n order to pick up metadata changes.", + "enum": [ + "NONE", + "REFRESH", + "REPLACE", + "RESTART" + ], + "enumDescriptions": [ + "Do not perform any action.", + "Do not stop the instance.", + "(Default.) Replace the instance according to the replacement method\noption.", + "Stop the instance and start it again." + ], "type": "string" }, - "labelFingerprint": { - "description": "A fingerprint for the labels being applied to this disk, which is essentially a hash of the labels set used for optimistic locking. The fingerprint is initially generated by Compute Engine and changes after every request to modify or update labels. You must always provide an up-to-date fingerprint hash in order to update or change labels, otherwise the request will fail with error 412 conditionNotMet. To see the latest fingerprint, make a get() request to retrieve a disk.", - "format": "byte", + "mostDisruptiveAllowedAction": { + "description": "Most disruptive action that is allowed to be taken on an instance.\nYou can specify either NONE to forbid any actions,REFRESH to avoid restarting the VM and to limit disruption\nas much as possible. RESTART to allow actions that can be\napplied without instance replacing or REPLACE to allow all\npossible actions. If the Updater determines that the minimal update\naction needed is more disruptive than most disruptive allowed action you\nspecify it will not perform the update at all.", + "enum": [ + "NONE", + "REFRESH", + "REPLACE", + "RESTART" + ], + "enumDescriptions": [ + "Do not perform any action.", + "Do not stop the instance.", + "(Default.) Replace the instance according to the replacement method\noption.", + "Stop the instance and start it again." + ], "type": "string" }, - "labels": { - "additionalProperties": { - "type": "string" - }, - "description": "Labels to apply to this disk. These can be later modified by the setLabels method.", - "type": "object" - }, - "lastAttachTimestamp": { - "description": "[Output Only] Last attach timestamp in RFC3339 text format.", + "replacementMethod": { + "description": "What action should be used to replace instances.\nSee minimal_action.REPLACE", + "enum": [ + "RECREATE", + "SUBSTITUTE" + ], + "enumDescriptions": [ + "Instances will be recreated (with the same name)", + "Default option: instances will be deleted and created (with a new name)" + ], "type": "string" }, - "lastDetachTimestamp": { - "description": "[Output Only] Last detach timestamp in RFC3339 text format.", + "type": { + "description": "The type\nof update process. You can specify either PROACTIVE so\nthat the MIG automatically updates VMs to the latest configurations orOPPORTUNISTIC so that you can select the VMs that you want\nto update.", + "enum": [ + "OPPORTUNISTIC", + "PROACTIVE" + ], + "enumDescriptions": [ + "MIG will apply new configurations\nto existing VMs only when you selectively target specific or all VMs to\nbe updated.", + "MIG will automatically apply new configurations\nto all or a subset of existing VMs and also to new VMs that are added\nto the group." + ], "type": "string" - }, - "licenseCodes": { - "description": "Integer license codes indicating which licenses are attached to this disk.", - "items": { - "format": "int64", - "type": "string" - }, - "type": "array" - }, - "licenses": { - "description": "A list of publicly visible licenses. Reserved for Google's use.", - "items": { - "type": "string" - }, - "type": "array" - }, - "locationHint": { - "description": "An opaque location hint used to place the disk close to other resources. This field is for use by internal tools that use the public API.", + } + }, + "type": "object" + }, + "InstanceGroupManagerVersion": { + "id": "InstanceGroupManagerVersion", + "properties": { + "instanceTemplate": { + "description": "The URL of the instance template that is specified for this managed\ninstance group. The group uses this template to create new instances in\nthe managed instance group until the `targetSize` for this version is\nreached. The templates for existing instances in the group do not change\nunless you run recreateInstances, runapplyUpdatesToInstances, or set the group'supdatePolicy.type to PROACTIVE; in those cases,\nexisting instances are updated until the `targetSize` for this version is\nreached.", "type": "string" }, "name": { - "annotations": { - "required": [ - "compute.disks.insert" - ] - }, - "description": "Name of the resource. Provided by the client when the resource is created. The name must be 1-63 characters long, and comply with RFC1035. 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" - }, - "options": { - "description": "Internal use only.", - "type": "string" - }, - "params": { - "$ref": "DiskParams", - "description": "Input only. [Input Only] Additional params passed with the request, but not persisted as part of resource payload." - }, - "physicalBlockSizeBytes": { - "description": "Physical block size of the persistent disk, in bytes. If not present in a request, a default value is used. The currently supported size is 4096, other sizes may be added in the future. If an unsupported value is requested, the error message will list the supported values for the caller's project.", - "format": "int64", - "type": "string" - }, - "provisionedIops": { - "description": "Indicates how many IOPS to provision for the disk. This sets the number of I/O operations per second that the disk can handle. Values must be between 10,000 and 120,000. For more details, see the Extreme persistent disk documentation.", - "format": "int64", - "type": "string" - }, - "provisionedThroughput": { - "description": "Indicates how much throughput to provision for the disk. This sets the number of throughput mb per second that the disk can handle. Values must be greater than or equal to 1.", - "format": "int64", - "type": "string" - }, - "region": { - "description": "[Output Only] URL of the region where the disk resides. Only applicable for regional resources. You must specify this field as part of the HTTP request URL. It is not settable as a field in the request body.", - "type": "string" - }, - "replicaZones": { - "description": "URLs of the zones where the disk should be replicated to. Only applicable for regional resources.", - "items": { - "type": "string" - }, - "type": "array" - }, - "resourcePolicies": { - "description": "Resource policies applied to this disk for automatic snapshot creations.", - "items": { - "type": "string" - }, - "type": "array" - }, - "resourceStatus": { - "$ref": "DiskResourceStatus", - "description": "[Output Only] Status information for the disk resource." - }, - "satisfiesPzi": { - "description": "Output only. Reserved for future use.", - "readOnly": true, - "type": "boolean" - }, - "satisfiesPzs": { - "description": "[Output Only] Reserved for future use.", - "type": "boolean" - }, - "selfLink": { - "description": "[Output Only] Server-defined fully-qualified URL for this resource.", - "type": "string" - }, - "sizeGb": { - "description": "Size, in GB, of the persistent disk. You can specify this field when creating a persistent disk using the sourceImage, sourceSnapshot, or sourceDisk parameter, or specify it alone to create an empty persistent disk. If you specify this field along with a source, the value of sizeGb must not be less than the size of the source. Acceptable values are greater than 0.", - "format": "int64", - "type": "string" - }, - "sourceConsistencyGroupPolicy": { - "description": "[Output Only] URL of the DiskConsistencyGroupPolicy for a secondary disk that was created using a consistency group.", - "type": "string" - }, - "sourceConsistencyGroupPolicyId": { - "description": "[Output Only] ID of the DiskConsistencyGroupPolicy for a secondary disk that was created using a consistency group.", - "type": "string" - }, - "sourceDisk": { - "description": "The source disk used to create this disk. 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 /disks/disk - https://www.googleapis.com/compute/v1/projects/project/regions/region /disks/disk - projects/project/zones/zone/disks/disk - projects/project/regions/region/disks/disk - zones/zone/disks/disk - regions/region/disks/disk ", - "type": "string" - }, - "sourceDiskId": { - "description": "[Output Only] The unique ID of the disk used to create this disk. This value identifies the exact disk that was used to create this persistent disk. For example, if you created the persistent disk from a disk that was later deleted and recreated under the same name, the source disk ID would identify the exact version of the disk that was used.", - "type": "string" - }, - "sourceImage": { - "description": "The source image used to create this disk. If the source image is deleted, this field will not be set. To create a disk with one of the public operating system images, specify the image by its family name. For example, specify family/debian-9 to use the latest Debian 9 image: projects/debian-cloud/global/images/family/debian-9 Alternatively, use a specific version of a public operating system image: projects/debian-cloud/global/images/debian-9-stretch-vYYYYMMDD To create a disk with a custom image that you created, specify the image name in the following format: global/images/my-custom-image You can also specify a custom image by its image family, which returns the latest version of the image in that family. Replace the image name with family/family-name: global/images/family/my-image-family ", - "type": "string" - }, - "sourceImageEncryptionKey": { - "$ref": "CustomerEncryptionKey", - "description": "The customer-supplied encryption key of the source image. Required if the source image is protected by a customer-supplied encryption key." - }, - "sourceImageId": { - "description": "[Output Only] The ID value of the image used to create this disk. This value identifies the exact image that was used to create this persistent disk. For example, if you created the persistent disk from an image that was later deleted and recreated under the same name, the source image ID would identify the exact version of the image that was used.", - "type": "string" - }, - "sourceInstantSnapshot": { - "description": "The source instant snapshot used to create this disk. 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 /instantSnapshots/instantSnapshot - projects/project/zones/zone/instantSnapshots/instantSnapshot - zones/zone/instantSnapshots/instantSnapshot ", - "type": "string" - }, - "sourceInstantSnapshotId": { - "description": "[Output Only] The unique ID of the instant snapshot used to create this disk. This value identifies the exact instant snapshot that was used to create this persistent disk. For example, if you created the persistent disk from an instant snapshot that was later deleted and recreated under the same name, the source instant snapshot ID would identify the exact version of the instant snapshot that was used.", + "description": "Name of the version. Unique among all versions in the scope of this\nmanaged instance group.", "type": "string" }, - "sourceSnapshot": { - "description": "The source snapshot used to create this disk. 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 /global/snapshots/snapshot - projects/project/global/snapshots/snapshot - global/snapshots/snapshot ", - "type": "string" - }, - "sourceSnapshotEncryptionKey": { - "$ref": "CustomerEncryptionKey", - "description": "The customer-supplied encryption key of the source snapshot. Required if the source snapshot is protected by a customer-supplied encryption key." - }, - "sourceSnapshotId": { - "description": "[Output Only] The unique ID of the snapshot used to create this disk. This value identifies the exact snapshot that was used to create this persistent disk. For example, if you created the persistent disk from a snapshot that was later deleted and recreated under the same name, the source snapshot ID would identify the exact version of the snapshot that was used.", - "type": "string" + "targetSize": { + "$ref": "FixedOrPercent", + "description": "Specifies the intended number of instances to be created from theinstanceTemplate. The final number of instances created\nfrom the template will be equal to:\n \n \n - If expressed as a fixed number, the minimum of either\n targetSize.fixed or\n instanceGroupManager.targetSize is used.\n - if expressed as a percent, the targetSize\n would be (targetSize.percent/100 *\n InstanceGroupManager.targetSize) If there is a remainder, the\n number is rounded.\n \n If unset, this version will update any remaining instances not\nupdated by another version. ReadStarting\na canary update for more information." + } + }, + "type": "object" + }, + "InstanceGroupManagersAbandonInstancesRequest": { + "id": "InstanceGroupManagersAbandonInstancesRequest", + "properties": { + "instances": { + "description": "The URLs of one or more instances to abandon. This can be a full URL or\na partial URL, such as zones/[ZONE]/instances/[INSTANCE_NAME].", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "InstanceGroupManagersApplyUpdatesRequest": { + "description": "InstanceGroupManagers.applyUpdatesToInstances", + "id": "InstanceGroupManagersApplyUpdatesRequest", + "properties": { + "allInstances": { + "description": "Flag to update all instances instead of specified list of “instances”.\nIf the flag is set to true then the instances may not be specified\nin the request.", + "type": "boolean" }, - "sourceStorageObject": { - "description": "The full Google Cloud Storage URI where the disk image is stored. This file must be a gzip-compressed tarball whose name ends in .tar.gz or virtual machine disk whose name ends in vmdk. Valid URIs may start with gs:// or https://storage.googleapis.com/. This flag is not optimized for creating multiple disks from a source storage object. To create many disks from a source storage object, use gcloud compute images import instead.", - "type": "string" + "instances": { + "description": "The list of URLs of one or more instances for which you want to apply\nupdates. Each URL can be a full URL or a partial URL, such aszones/[ZONE]/instances/[INSTANCE_NAME].", + "items": { + "type": "string" + }, + "type": "array" }, - "status": { - "description": "[Output Only] The status of disk creation. - CREATING: Disk is provisioning. - RESTORING: Source data is being copied into the disk. - FAILED: Disk creation failed. - READY: Disk is ready for use. - DELETING: Disk is deleting. ", + "minimalAction": { + "description": "The minimal action that you want to perform on each instance during the\nupdate:\n \n \n - REPLACE: At minimum, delete the instance and create it\n again. \n - RESTART: Stop the instance and start it\n again. \n - REFRESH: Do not stop the instance and limit\n disruption as much as possible. \n - NONE: Do not\n disrupt the instance at all.\n\n\nBy default, the minimum action is NONE. If your update\nrequires a more disruptive action than you set with this flag, the\nnecessary action is performed to execute the update.", "enum": [ - "CREATING", - "DELETING", - "FAILED", - "READY", - "RESTORING", - "UNAVAILABLE" + "NONE", + "REFRESH", + "REPLACE", + "RESTART" ], "enumDescriptions": [ - "Disk is provisioning", - "Disk is deleting.", - "Disk creation failed.", - "Disk is ready for use.", - "Source data is being copied into the disk.", - "Disk is currently unavailable and cannot be accessed, attached or detached." + "Do not perform any action.", + "Do not stop the instance.", + "(Default.) Replace the instance according to the replacement method\noption.", + "Stop the instance and start it again." ], "type": "string" }, - "storagePool": { - "description": "The storage pool in which the new disk is created. 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 /storagePools/storagePool - projects/project/zones/zone/storagePools/storagePool - zones/zone/storagePools/storagePool ", - "type": "string" - }, - "type": { - "description": "URL of the disk type resource describing which disk type to use to create the disk. Provide this when creating the disk. For example: projects/project /zones/zone/diskTypes/pd-ssd . See Persistent disk types.", + "mostDisruptiveAllowedAction": { + "description": "The most disruptive action that you want to perform on each instance during\nthe update:\n \n \n - REPLACE: Delete the instance and create it again.\n - RESTART: Stop the instance and start it again.\n - REFRESH: Do not stop the instance and limit disruption\n as much as possible. \n - NONE: Do not disrupt the\n instance at all.\n\n\nBy default, the most disruptive allowed action is REPLACE. If\nyour update requires a more disruptive action than you set with this flag,\nthe update request will fail.", + "enum": [ + "NONE", + "REFRESH", + "REPLACE", + "RESTART" + ], + "enumDescriptions": [ + "Do not perform any action.", + "Do not stop the instance.", + "(Default.) Replace the instance according to the replacement method\noption.", + "Stop the instance and start it again." + ], "type": "string" - }, - "users": { - "description": "[Output Only] Links to the users of the disk (attached instances) in form: projects/project/zones/zone/instances/instance", + } + }, + "type": "object" + }, + "InstanceGroupManagersCreateInstancesRequest": { + "description": "InstanceGroupManagers.createInstances", + "id": "InstanceGroupManagersCreateInstancesRequest", + "properties": { + "instances": { + "description": "[Required] List of specifications of per-instance configs.", + "items": { + "$ref": "PerInstanceConfig" + }, + "type": "array" + } + }, + "type": "object" + }, + "InstanceGroupManagersDeleteInstancesRequest": { + "id": "InstanceGroupManagersDeleteInstancesRequest", + "properties": { + "instances": { + "description": "The URLs of one or more instances to delete. This can be a full URL or\na partial URL, such as zones/[ZONE]/instances/[INSTANCE_NAME].\nQueued instances do not have URL and can be deleted only by name.\nOne cannot specify both URLs and names in a single request.", "items": { "type": "string" }, "type": "array" }, - "zone": { - "description": "[Output Only] URL of the zone where the disk resides. You must specify this field as part of the HTTP request URL. It is not settable as a field in the request body.", - "type": "string" + "skipInstancesOnValidationError": { + "description": "Specifies whether the request should proceed despite the inclusion of\ninstances that are not members of the group or that are already in the\nprocess of being deleted or abandoned. If this field is set to `false` and\nsuch an instance is specified in the request, the operation fails. The\noperation always fails if the request contains a malformed instance URL or\na reference to an instance that exists in a zone or region other than the\ngroup's zone or region.", + "type": "boolean" } }, "type": "object" }, - "DiskAggregatedList": { - "id": "DiskAggregatedList", + "InstanceGroupManagersDeletePerInstanceConfigsReq": { + "description": "InstanceGroupManagers.deletePerInstanceConfigs", + "id": "InstanceGroupManagersDeletePerInstanceConfigsReq", + "properties": { + "names": { + "description": "The list of instance names for which we want to delete per-instance configs\non this managed instance group.", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "InstanceGroupManagersListErrorsResponse": { + "id": "InstanceGroupManagersListErrorsResponse", "properties": { - "id": { - "description": "[Output Only] Unique identifier for the resource; defined by the server.", - "type": "string" - }, "items": { - "additionalProperties": { - "$ref": "DisksScopedList", - "description": "[Output Only] Name of the scope containing this set of disks." + "description": "Output only. [Output Only] The list of errors of the managed instance group.", + "items": { + "$ref": "InstanceManagedByIgmError" }, - "description": "A list of DisksScopedList resources.", - "type": "object" - }, - "kind": { - "default": "compute#diskAggregatedList", - "description": "[Output Only] Type of resource. Always compute#diskAggregatedList for aggregated lists of persistent disks.", - "type": "string" + "readOnly": true, + "type": "array" }, "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.", + "description": "Output only. [Output Only] This token allows you to get the next page of results for\nlist requests. If the number of results is larger thanmaxResults, use the nextPageToken as a value for\nthe query parameter pageToken in the next list request.\nSubsequent list requests will have their own nextPageToken to\ncontinue paging through the results.", + "readOnly": true, "type": "string" + } + }, + "type": "object" + }, + "InstanceGroupManagersListManagedInstancesResponse": { + "id": "InstanceGroupManagersListManagedInstancesResponse", + "properties": { + "managedInstances": { + "description": "Output only. [Output Only] The list of instances in the managed instance group.", + "items": { + "$ref": "ManagedInstance" + }, + "readOnly": true, + "type": "array" }, - "selfLink": { - "description": "[Output Only] Server-defined URL for this resource.", + "nextPageToken": { + "description": "Output only. [Output Only] This token allows you to get the next page of results for\nlist requests. If the number of results is larger thanmaxResults, use the nextPageToken as a value for\nthe query parameter pageToken in the next list request.\nSubsequent list requests will have their own nextPageToken to\ncontinue paging through the results.", + "readOnly": true, "type": "string" - }, - "unreachables": { - "description": "[Output Only] Unreachable resources.", + } + }, + "type": "object" + }, + "InstanceGroupManagersListPerInstanceConfigsResp": { + "id": "InstanceGroupManagersListPerInstanceConfigsResp", + "properties": { + "items": { + "description": "Output only. [Output Only] The list of PerInstanceConfig.", "items": { - "type": "string" + "$ref": "PerInstanceConfig" }, + "readOnly": true, "type": "array" }, + "nextPageToken": { + "description": "Output only. [Output Only] This token allows you to get the next page of results for\nlist requests. If the number of results is larger thanmaxResults, use the nextPageToken as a value for\nthe query parameter pageToken in the next list request.\nSubsequent list requests will have their own nextPageToken to\ncontinue paging through the results.", + "readOnly": true, + "type": "string" + }, "warning": { - "description": "[Output Only] Informational warning message.", + "description": "Output only. [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.", + "description": "[Output Only] A warning code, if applicable. For example, Compute\nEngine returns NO_RESULTS_ON_PAGE if there\nare no results in the response.", "enum": [ "CLEANUP_FAILED", "DEPRECATED_RESOURCE_USED", @@ -43339,6 +68849,7 @@ "NOT_CRITICAL_ERROR", "NO_RESULTS_ON_PAGE", "PARTIAL_SUCCESS", + "QUOTA_INFO_UNAVAILABLE", "REQUIRED_TOS_AGREEMENT", "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", "RESOURCE_NOT_DELETED", @@ -43375,46 +68886,48 @@ false, false, false, + false, false ], "enumDescriptions": [ - "Warning about failed cleanup of transient changes made by a failed operation.", + "Warning about failed cleanup of transient changes made by a failed\noperation.", "A link to a deprecated resource was created.", - "When deploying and at least one of the resources has a type marked as deprecated", + "When deploying and at least one of the resources has a type marked as\ndeprecated", "The user created a boot disk that is larger than image size.", - "When deploying and at least one of the resources has a type marked as experimental", + "When deploying and at least one of the resources has a type marked as\nexperimental", "Warning that is present in an external api call", - "Warning that value of a field has been overridden. Deprecated unused field.", + "Warning that value of a field has been overridden.\nDeprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", - "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is\nnot of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", - "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", + "Resource can't be retrieved due to list overhead quota exceed\nwhich captures the amount of resources filtered out by\nuser-defined list filter.", "A resource depends on a missing type", - "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's nextHopIp address is not assigned to an instance on the\nnetwork.", "The route's next hop instance cannot ip forward.", - "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not have an\nipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", - "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that is not on the\nsame network as the route.", "The route's next hop instance does not have a status of RUNNING.", - "Error which is not critical. We decided to continue the process despite the mentioned error.", + "Error which is not critical. We decided to continue the process despite\nthe mentioned error.", "No results are present on a particular list page.", "Success is reported, but some results may be missing due to errors", - "The user attempted to use a resource that requires a TOS they have not accepted.", + "Quota information is not available to client requests (e.g:\nregions.list).", + "The user attempted to use a resource that requires a TOS they have not\naccepted.", "Warning that a resource is in use.", - "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "One or more of the resources set to auto-delete could not be deleted\nbecause they were in use.", "When a resource schema validation is ignored.", - "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", + "Instance template used in instance group manager is valid as such, but\nits application does not make a lot of sense, because it allows only\nsingle instance in instance group.", "When undeclared properties in the schema are present", "A given scope cannot be reached." ], "type": "string" }, "data": { - "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", + "description": "[Output Only] Metadata about this warning in key:\nvalue format. For example:\n\n\"data\": [\n {\n \"key\": \"scope\",\n \"value\": \"zones/us-east1-d\"\n }", "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).", + "description": "[Output Only] A key that provides more detail on the warning being\nreturned. For example, for warnings where there are no results in a list\nrequest for a particular zone, this key might be scope and\nthe key value might be the zone name. Other examples might be a key\nindicating a deprecated resource and a suggested replacement, or a\nwarning about invalid network settings (for example, if an instance\nattempts to perform IP forwarding but is not enabled for IP forwarding).", "type": "string" }, "value": { @@ -43431,116 +68944,68 @@ "type": "string" } }, + "readOnly": true, "type": "object" } }, "type": "object" }, - "DiskAsyncReplication": { - "id": "DiskAsyncReplication", + "InstanceGroupManagersPatchPerInstanceConfigsReq": { + "description": "InstanceGroupManagers.patchPerInstanceConfigs", + "id": "InstanceGroupManagersPatchPerInstanceConfigsReq", "properties": { - "consistencyGroupPolicy": { - "description": "[Output Only] URL of the DiskConsistencyGroupPolicy if replication was started on the disk as a member of a group.", - "type": "string" - }, - "consistencyGroupPolicyId": { - "description": "[Output Only] ID of the DiskConsistencyGroupPolicy if replication was started on the disk as a member of a group.", - "type": "string" - }, - "disk": { - "description": "The other disk asynchronously replicated to or from the current disk. 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 /disks/disk - projects/project/zones/zone/disks/disk - zones/zone/disks/disk ", - "type": "string" - }, - "diskId": { - "description": "[Output Only] The unique ID of the other disk asynchronously replicated to or from the current disk. This value identifies the exact disk that was used to create this replication. For example, if you started replicating the persistent disk from a disk that was later deleted and recreated under the same name, the disk ID would identify the exact version of the disk that was used.", - "type": "string" + "perInstanceConfigs": { + "description": "The list of per-instance configurations to insert or patch on this managed\ninstance group.", + "items": { + "$ref": "PerInstanceConfig" + }, + "type": "array" } }, "type": "object" }, - "DiskAsyncReplicationList": { - "id": "DiskAsyncReplicationList", + "InstanceGroupManagersRecreateInstancesRequest": { + "id": "InstanceGroupManagersRecreateInstancesRequest", "properties": { - "asyncReplicationDisk": { - "$ref": "DiskAsyncReplication" + "instances": { + "description": "The URLs of one or more instances to recreate. This can be a full URL or\na partial URL, such as zones/[ZONE]/instances/[INSTANCE_NAME].", + "items": { + "type": "string" + }, + "type": "array" } }, "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", + "InstanceGroupManagersResumeInstancesRequest": { + "id": "InstanceGroupManagersResumeInstancesRequest", "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: - 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. ", - "enum": [ - "ATTACH_READ_ONLY", - "BLANK", - "CUSTOM_IMAGE", - "DEFAULT", - "DO_NOT_INCLUDE", - "SOURCE_IMAGE", - "SOURCE_IMAGE_FAMILY" - ], - "enumDescriptions": [ - "Attach the existing disk in read-only mode. The request will fail if the disk was attached in read-write mode on the source instance. Applicable to: read-only disks.", - "Create a blank disk. The disk will be created unformatted. Applicable to: additional read-write disks, local SSDs.", - "Use the custom image specified in the custom_image field. Applicable to: boot disk, additional read-write disks.", - "Use the default instantiation option for the corresponding type of disk. 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.", - "Do not include the disk in the instance template. Applicable to: additional read-write disks, local SSDs, read-only disks.", - "Use the same source image used for creation of the source instance's corresponding disk. The request will fail if the source VM's disk was created from a snapshot. Applicable to: boot disk, additional read-write disks.", - "Use the same source image family used for creation of the source instance's corresponding disk. The request will fail if the source image of the source disk does not belong to any image family. Applicable to: boot disk, additional read-write disks." - ], - "type": "string" + "instances": { + "description": "The URLs of one or more instances to resume. This can be a full URL or\na partial URL, such as zones/[ZONE]/instances/[INSTANCE_NAME].", + "items": { + "type": "string" + }, + "type": "array" } }, "type": "object" }, - "DiskList": { - "description": "A list of Disk resources.", - "id": "DiskList", + "InstanceGroupManagersScopedList": { + "id": "InstanceGroupManagersScopedList", "properties": { - "id": { - "description": "[Output Only] Unique identifier for the resource; defined by the server.", - "type": "string" - }, - "items": { - "description": "A list of Disk resources.", + "instanceGroupManagers": { + "description": "Output only. The list of managed instance groups that are contained in the specified\nproject and zone.", "items": { - "$ref": "Disk" + "$ref": "InstanceGroupManager" }, + "readOnly": true, "type": "array" }, - "kind": { - "default": "compute#diskList", - "description": "[Output Only] Type of resource. Always compute#diskList for lists of disks.", - "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" - }, - "selfLink": { - "description": "[Output Only] Server-defined URL for this resource.", - "type": "string" - }, "warning": { - "description": "[Output Only] Informational warning message.", + "description": "Output only. The warning that replaces the list of managed instance groups when the list\nis empty.", "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.", + "description": "[Output Only] A warning code, if applicable. For example, Compute\nEngine returns NO_RESULTS_ON_PAGE if there\nare no results in the response.", "enum": [ "CLEANUP_FAILED", "DEPRECATED_RESOURCE_USED", @@ -43563,6 +69028,7 @@ "NOT_CRITICAL_ERROR", "NO_RESULTS_ON_PAGE", "PARTIAL_SUCCESS", + "QUOTA_INFO_UNAVAILABLE", "REQUIRED_TOS_AGREEMENT", "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", "RESOURCE_NOT_DELETED", @@ -43599,46 +69065,48 @@ false, false, false, + false, false ], "enumDescriptions": [ - "Warning about failed cleanup of transient changes made by a failed operation.", + "Warning about failed cleanup of transient changes made by a failed\noperation.", "A link to a deprecated resource was created.", - "When deploying and at least one of the resources has a type marked as deprecated", + "When deploying and at least one of the resources has a type marked as\ndeprecated", "The user created a boot disk that is larger than image size.", - "When deploying and at least one of the resources has a type marked as experimental", + "When deploying and at least one of the resources has a type marked as\nexperimental", "Warning that is present in an external api call", - "Warning that value of a field has been overridden. Deprecated unused field.", + "Warning that value of a field has been overridden.\nDeprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", - "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is\nnot of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", - "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", + "Resource can't be retrieved due to list overhead quota exceed\nwhich captures the amount of resources filtered out by\nuser-defined list filter.", "A resource depends on a missing type", - "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's nextHopIp address is not assigned to an instance on the\nnetwork.", "The route's next hop instance cannot ip forward.", - "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not have an\nipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", - "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that is not on the\nsame network as the route.", "The route's next hop instance does not have a status of RUNNING.", - "Error which is not critical. We decided to continue the process despite the mentioned error.", + "Error which is not critical. We decided to continue the process despite\nthe mentioned error.", "No results are present on a particular list page.", "Success is reported, but some results may be missing due to errors", - "The user attempted to use a resource that requires a TOS they have not accepted.", + "Quota information is not available to client requests (e.g:\nregions.list).", + "The user attempted to use a resource that requires a TOS they have not\naccepted.", "Warning that a resource is in use.", - "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "One or more of the resources set to auto-delete could not be deleted\nbecause they were in use.", "When a resource schema validation is ignored.", - "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", + "Instance template used in instance group manager is valid as such, but\nits application does not make a lot of sense, because it allows only\nsingle instance in instance group.", "When undeclared properties in the schema are present", "A given scope cannot be reached." ], "type": "string" }, "data": { - "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", + "description": "[Output Only] Metadata about this warning in key:\nvalue format. For example:\n\n\"data\": [\n {\n \"key\": \"scope\",\n \"value\": \"zones/us-east1-d\"\n }", "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).", + "description": "[Output Only] A key that provides more detail on the warning being\nreturned. For example, for warnings where there are no results in a list\nrequest for a particular zone, this key might be scope and\nthe key value might be the zone name. Other examples might be a key\nindicating a deprecated resource and a suggested replacement, or a\nwarning about invalid network settings (for example, if an instance\nattempts to perform IP forwarding but is not enabled for IP forwarding).", "type": "string" }, "value": { @@ -43655,175 +69123,150 @@ "type": "string" } }, + "readOnly": true, "type": "object" } }, "type": "object" }, - "DiskMoveRequest": { - "id": "DiskMoveRequest", + "InstanceGroupManagersSetInstanceTemplateRequest": { + "id": "InstanceGroupManagersSetInstanceTemplateRequest", "properties": { - "destinationZone": { - "description": "The URL of the destination zone to move the disk. This can be a full or partial URL. For example, the following are all valid URLs to a zone: - https://www.googleapis.com/compute/v1/projects/project/zones/zone - projects/project/zones/zone - zones/zone ", + "instanceTemplate": { + "description": "The URL of the instance template that is specified for this managed\ninstance group. The group uses this template to create all new instances\nin the managed instance group. The templates for existing instances in the\ngroup do not change unless you run recreateInstances, runapplyUpdatesToInstances, or set the group'supdatePolicy.type to PROACTIVE.", "type": "string" - }, - "targetDisk": { - "description": "The URL of the target disk to move. This can be a full or partial URL. For example, the following are all valid URLs to a disk: - https://www.googleapis.com/compute/v1/projects/project/zones/zone /disks/disk - projects/project/zones/zone/disks/disk - zones/zone/disks/disk ", + } + }, + "type": "object" + }, + "InstanceGroupManagersSetTargetPoolsRequest": { + "id": "InstanceGroupManagersSetTargetPoolsRequest", + "properties": { + "fingerprint": { + "description": "The fingerprint of the target pools information. Use this optional\nproperty to prevent conflicts when multiple users change the target pools\nsettings concurrently. Obtain the fingerprint with theinstanceGroupManagers.get\nmethod. Then, include the fingerprint in your request to ensure that you\ndo not overwrite changes that were applied from another\nconcurrent request.", + "format": "byte", "type": "string" + }, + "targetPools": { + "description": "The list of target pool URLs that instances in this managed instance group\nbelong to. The managed instance group applies these target pools to all\nof the instances in the group. Existing instances and new instances in the\ngroup all receive these target pool settings.", + "items": { + "type": "string" + }, + "type": "array" } }, "type": "object" }, - "DiskParams": { - "description": "Additional disk params.", - "id": "DiskParams", + "InstanceGroupManagersStartInstancesRequest": { + "id": "InstanceGroupManagersStartInstancesRequest", "properties": { - "resourceManagerTags": { - "additionalProperties": { + "instances": { + "description": "The URLs of one or more instances to start. This can be a full URL or\na partial URL, such as zones/[ZONE]/instances/[INSTANCE_NAME].", + "items": { "type": "string" }, - "description": "Resource manager tags to be bound to the disk. Tag keys and values have the same definition as resource manager tags. Keys must be in the format `tagKeys/{tag_key_id}`, and values are in the format `tagValues/456`. The field is ignored (both PUT \u0026 PATCH) when empty.", - "type": "object" + "type": "array" } }, "type": "object" }, - "DiskResourceStatus": { - "id": "DiskResourceStatus", + "InstanceGroupManagersStopInstancesRequest": { + "id": "InstanceGroupManagersStopInstancesRequest", "properties": { - "asyncPrimaryDisk": { - "$ref": "DiskResourceStatusAsyncReplicationStatus" + "forceStop": { + "description": "If this flag is set to true, the Instance Group Manager will proceed to\nstop the instances, skipping initialization on them.", + "type": "boolean" }, - "asyncSecondaryDisks": { - "additionalProperties": { - "$ref": "DiskResourceStatusAsyncReplicationStatus" + "instances": { + "description": "The URLs of one or more instances to stop. This can be a full URL or\na partial URL, such as zones/[ZONE]/instances/[INSTANCE_NAME].", + "items": { + "type": "string" }, - "description": "Key: disk, value: AsyncReplicationStatus message", - "type": "object" + "type": "array" } }, "type": "object" }, - "DiskResourceStatusAsyncReplicationStatus": { - "id": "DiskResourceStatusAsyncReplicationStatus", + "InstanceGroupManagersSuspendInstancesRequest": { + "id": "InstanceGroupManagersSuspendInstancesRequest", "properties": { - "state": { - "enum": [ - "ACTIVE", - "CREATED", - "STARTING", - "STATE_UNSPECIFIED", - "STOPPED", - "STOPPING" - ], - "enumDescriptions": [ - "Replication is active.", - "Secondary disk is created and is waiting for replication to start.", - "Replication is starting.", - "", - "Replication is stopped.", - "Replication is stopping." - ], - "type": "string" + "forceSuspend": { + "description": "If this flag is set to true, the Instance Group Manager will proceed to\nsuspend the instances, skipping initialization on them.", + "type": "boolean" + }, + "instances": { + "description": "The URLs of one or more instances to suspend. This can be a full URL or\na partial URL, such as zones/[ZONE]/instances/[INSTANCE_NAME].", + "items": { + "type": "string" + }, + "type": "array" } }, "type": "object" }, - "DiskType": { - "description": "Represents a Disk Type resource. Google Compute Engine has two Disk Type resources: * [Regional](/compute/docs/reference/rest/v1/regionDiskTypes) * [Zonal](/compute/docs/reference/rest/v1/diskTypes) You can choose from a variety of disk types based on your needs. For more information, read Storage options. The diskTypes resource represents disk types for a zonal persistent disk. For more information, read Zonal persistent disks. The regionDiskTypes resource represents disk types for a regional persistent disk. For more information, read Regional persistent disks.", - "id": "DiskType", + "InstanceGroupManagersUpdatePerInstanceConfigsReq": { + "description": "InstanceGroupManagers.updatePerInstanceConfigs", + "id": "InstanceGroupManagersUpdatePerInstanceConfigsReq", "properties": { - "creationTimestamp": { - "description": "[Output Only] Creation timestamp in RFC3339 text format.", - "type": "string" - }, - "defaultDiskSizeGb": { - "description": "[Output Only] Server-defined default disk size in GB.", - "format": "int64", - "type": "string" - }, - "deprecated": { - "$ref": "DeprecationStatus", - "description": "[Output Only] The deprecation status associated with this disk type." - }, - "description": { - "description": "[Output Only] An optional description of this resource.", - "type": "string" - }, - "id": { - "description": "[Output Only] The unique identifier for the resource. This identifier is defined by the server.", - "format": "uint64", - "type": "string" - }, - "kind": { - "default": "compute#diskType", - "description": "[Output Only] Type of the resource. Always compute#diskType for disk types.", - "type": "string" - }, - "name": { - "description": "[Output Only] Name of the resource.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "type": "string" - }, - "region": { - "description": "[Output Only] URL of the region where the disk type resides. Only applicable for regional resources. You must specify this field as part of the HTTP request URL. It is not settable as a field in the request body.", - "type": "string" - }, - "selfLink": { - "description": "[Output Only] Server-defined URL for the resource.", - "type": "string" - }, - "validDiskSize": { - "description": "[Output Only] An optional textual description of the valid disk size, such as \"10GB-10TB\".", - "type": "string" - }, - "zone": { - "description": "[Output Only] URL of the zone where the disk type resides. You must specify this field as part of the HTTP request URL. It is not settable as a field in the request body.", - "type": "string" + "perInstanceConfigs": { + "description": "The list of per-instance configurations to insert or patch on this managed\ninstance group.", + "items": { + "$ref": "PerInstanceConfig" + }, + "type": "array" } }, "type": "object" }, - "DiskTypeAggregatedList": { - "id": "DiskTypeAggregatedList", + "InstanceGroupsAddInstancesRequest": { + "id": "InstanceGroupsAddInstancesRequest", + "properties": { + "instances": { + "description": "The list of instances to add to the instance group.", + "items": { + "$ref": "InstanceReference" + }, + "type": "array" + } + }, + "type": "object" + }, + "InstanceGroupsListInstances": { + "id": "InstanceGroupsListInstances", "properties": { "id": { - "description": "[Output Only] Unique identifier for the resource; defined by the server.", + "description": "Output only. [Output Only] Unique identifier for the resource; defined by the server.", + "readOnly": true, "type": "string" }, "items": { - "additionalProperties": { - "$ref": "DiskTypesScopedList", - "description": "[Output Only] Name of the scope containing this set of disk types." + "description": "A list of InstanceWithNamedPorts resources.", + "items": { + "$ref": "InstanceWithNamedPorts" }, - "description": "A list of DiskTypesScopedList resources.", - "type": "object" + "type": "array" }, "kind": { - "default": "compute#diskTypeAggregatedList", - "description": "[Output Only] Type of resource. Always compute#diskTypeAggregatedList.", + "default": "compute#instanceGroupsListInstances", + "description": "Output only. [Output Only] The resource type, which is alwayscompute#instanceGroupsListInstances for the list of instances\nin the specified instance group.", + "readOnly": true, "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.", + "description": "Output only. [Output Only] This token allows you to get the next page of results for\nlist requests. If the number of results is larger thanmaxResults, use the nextPageToken as a value for\nthe query parameter pageToken in the next list request.\nSubsequent list requests will have their own nextPageToken to\ncontinue paging through the results.", + "readOnly": true, "type": "string" }, "selfLink": { - "description": "[Output Only] Server-defined URL for this resource.", + "description": "Output only. [Output Only] Server-defined URL for this resource.", + "readOnly": true, "type": "string" }, - "unreachables": { - "description": "[Output Only] Unreachable resources.", - "items": { - "type": "string" - }, - "type": "array" - }, "warning": { - "description": "[Output Only] Informational warning message.", + "description": "Output only. [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.", + "description": "[Output Only] A warning code, if applicable. For example, Compute\nEngine returns NO_RESULTS_ON_PAGE if there\nare no results in the response.", "enum": [ "CLEANUP_FAILED", "DEPRECATED_RESOURCE_USED", @@ -43846,6 +69289,7 @@ "NOT_CRITICAL_ERROR", "NO_RESULTS_ON_PAGE", "PARTIAL_SUCCESS", + "QUOTA_INFO_UNAVAILABLE", "REQUIRED_TOS_AGREEMENT", "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", "RESOURCE_NOT_DELETED", @@ -43882,46 +69326,48 @@ false, false, false, + false, false ], "enumDescriptions": [ - "Warning about failed cleanup of transient changes made by a failed operation.", + "Warning about failed cleanup of transient changes made by a failed\noperation.", "A link to a deprecated resource was created.", - "When deploying and at least one of the resources has a type marked as deprecated", + "When deploying and at least one of the resources has a type marked as\ndeprecated", "The user created a boot disk that is larger than image size.", - "When deploying and at least one of the resources has a type marked as experimental", + "When deploying and at least one of the resources has a type marked as\nexperimental", "Warning that is present in an external api call", - "Warning that value of a field has been overridden. Deprecated unused field.", + "Warning that value of a field has been overridden.\nDeprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", - "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is\nnot of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", - "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", + "Resource can't be retrieved due to list overhead quota exceed\nwhich captures the amount of resources filtered out by\nuser-defined list filter.", "A resource depends on a missing type", - "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's nextHopIp address is not assigned to an instance on the\nnetwork.", "The route's next hop instance cannot ip forward.", - "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not have an\nipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", - "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that is not on the\nsame network as the route.", "The route's next hop instance does not have a status of RUNNING.", - "Error which is not critical. We decided to continue the process despite the mentioned error.", + "Error which is not critical. We decided to continue the process despite\nthe mentioned error.", "No results are present on a particular list page.", "Success is reported, but some results may be missing due to errors", - "The user attempted to use a resource that requires a TOS they have not accepted.", + "Quota information is not available to client requests (e.g:\nregions.list).", + "The user attempted to use a resource that requires a TOS they have not\naccepted.", "Warning that a resource is in use.", - "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "One or more of the resources set to auto-delete could not be deleted\nbecause they were in use.", "When a resource schema validation is ignored.", - "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", + "Instance template used in instance group manager is valid as such, but\nits application does not make a lot of sense, because it allows only\nsingle instance in instance group.", "When undeclared properties in the schema are present", "A given scope cannot be reached." ], "type": "string" }, "data": { - "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", + "description": "[Output Only] Metadata about this warning in key:\nvalue format. For example:\n\n\"data\": [\n {\n \"key\": \"scope\",\n \"value\": \"zones/us-east1-d\"\n }", "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).", + "description": "[Output Only] A key that provides more detail on the warning being\nreturned. For example, for warnings where there are no results in a list\nrequest for a particular zone, this key might be scope and\nthe key value might be the zone name. Other examples might be a key\nindicating a deprecated resource and a suggested replacement, or a\nwarning about invalid network settings (for example, if an instance\nattempts to perform IP forwarding but is not enabled for IP forwarding).", "type": "string" }, "value": { @@ -43938,44 +69384,59 @@ "type": "string" } }, + "readOnly": true, "type": "object" } }, "type": "object" }, - "DiskTypeList": { - "description": "Contains a list of disk types.", - "id": "DiskTypeList", + "InstanceGroupsListInstancesRequest": { + "id": "InstanceGroupsListInstancesRequest", "properties": { - "id": { - "description": "[Output Only] Unique identifier for the resource; defined by the server.", + "instanceState": { + "description": "A filter for the state of the instances in the instance group. Valid\noptions are ALL or RUNNING. If you do not specify\nthis parameter the list includes all instances regardless of their state.", + "enum": [ + "ALL", + "RUNNING" + ], + "enumDescriptions": [ + "Includes all instances in the generated list regardless of their state.", + "Includes instances in the generated list only if they have a RUNNING\nstate." + ], "type": "string" - }, - "items": { - "description": "A list of DiskType resources.", + } + }, + "type": "object" + }, + "InstanceGroupsRemoveInstancesRequest": { + "id": "InstanceGroupsRemoveInstancesRequest", + "properties": { + "instances": { + "description": "The list of instances to remove from the instance group.", "items": { - "$ref": "DiskType" + "$ref": "InstanceReference" }, "type": "array" - }, - "kind": { - "default": "compute#diskTypeList", - "description": "[Output Only] Type of resource. Always compute#diskTypeList for disk types.", - "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" - }, - "selfLink": { - "description": "[Output Only] Server-defined URL for this resource.", - "type": "string" + } + }, + "type": "object" + }, + "InstanceGroupsScopedList": { + "id": "InstanceGroupsScopedList", + "properties": { + "instanceGroups": { + "description": "Output only. [Output Only] The list ofinstance\ngroups that are contained in this scope.", + "items": { + "$ref": "InstanceGroup" + }, + "readOnly": true, + "type": "array" }, "warning": { - "description": "[Output Only] Informational warning message.", + "description": "Output only. [Output Only] An informational warning that replaces the list of\ninstance groups when the list is empty.", "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.", + "description": "[Output Only] A warning code, if applicable. For example, Compute\nEngine returns NO_RESULTS_ON_PAGE if there\nare no results in the response.", "enum": [ "CLEANUP_FAILED", "DEPRECATED_RESOURCE_USED", @@ -43998,6 +69459,7 @@ "NOT_CRITICAL_ERROR", "NO_RESULTS_ON_PAGE", "PARTIAL_SUCCESS", + "QUOTA_INFO_UNAVAILABLE", "REQUIRED_TOS_AGREEMENT", "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", "RESOURCE_NOT_DELETED", @@ -44034,46 +69496,48 @@ false, false, false, + false, false ], "enumDescriptions": [ - "Warning about failed cleanup of transient changes made by a failed operation.", + "Warning about failed cleanup of transient changes made by a failed\noperation.", "A link to a deprecated resource was created.", - "When deploying and at least one of the resources has a type marked as deprecated", + "When deploying and at least one of the resources has a type marked as\ndeprecated", "The user created a boot disk that is larger than image size.", - "When deploying and at least one of the resources has a type marked as experimental", + "When deploying and at least one of the resources has a type marked as\nexperimental", "Warning that is present in an external api call", - "Warning that value of a field has been overridden. Deprecated unused field.", + "Warning that value of a field has been overridden.\nDeprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", - "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is\nnot of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", - "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", + "Resource can't be retrieved due to list overhead quota exceed\nwhich captures the amount of resources filtered out by\nuser-defined list filter.", "A resource depends on a missing type", - "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's nextHopIp address is not assigned to an instance on the\nnetwork.", "The route's next hop instance cannot ip forward.", - "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not have an\nipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", - "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that is not on the\nsame network as the route.", "The route's next hop instance does not have a status of RUNNING.", - "Error which is not critical. We decided to continue the process despite the mentioned error.", + "Error which is not critical. We decided to continue the process despite\nthe mentioned error.", "No results are present on a particular list page.", "Success is reported, but some results may be missing due to errors", - "The user attempted to use a resource that requires a TOS they have not accepted.", + "Quota information is not available to client requests (e.g:\nregions.list).", + "The user attempted to use a resource that requires a TOS they have not\naccepted.", "Warning that a resource is in use.", - "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "One or more of the resources set to auto-delete could not be deleted\nbecause they were in use.", "When a resource schema validation is ignored.", - "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", + "Instance template used in instance group manager is valid as such, but\nits application does not make a lot of sense, because it allows only\nsingle instance in instance group.", "When undeclared properties in the schema are present", "A given scope cannot be reached." ], "type": "string" }, "data": { - "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", + "description": "[Output Only] Metadata about this warning in key:\nvalue format. For example:\n\n\"data\": [\n {\n \"key\": \"scope\",\n \"value\": \"zones/us-east1-d\"\n }", "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).", + "description": "[Output Only] A key that provides more detail on the warning being\nreturned. For example, for warnings where there are no results in a list\nrequest for a particular zone, this key might be scope and\nthe key value might be the zone name. Other examples might be a key\nindicating a deprecated resource and a suggested replacement, or a\nwarning about invalid network settings (for example, if an instance\nattempts to perform IP forwarding but is not enabled for IP forwarding).", "type": "string" }, "value": { @@ -44090,26 +69554,65 @@ "type": "string" } }, + "readOnly": true, "type": "object" } }, "type": "object" }, - "DiskTypesScopedList": { - "id": "DiskTypesScopedList", + "InstanceGroupsSetNamedPortsRequest": { + "id": "InstanceGroupsSetNamedPortsRequest", "properties": { - "diskTypes": { - "description": "[Output Only] A list of disk types contained in this scope.", + "fingerprint": { + "description": "The fingerprint of the named ports information for this instance group.\nUse this optional property to prevent conflicts when multiple users change\nthe named ports settings concurrently. Obtain the fingerprint with theinstanceGroups.get\nmethod. Then, include the fingerprint in your request to ensure that you\ndo not overwrite changes that were applied from another concurrent request.\nA request with an incorrect fingerprint will fail with error412 conditionNotMet.", + "format": "byte", + "type": "string" + }, + "namedPorts": { + "description": "The list of named ports to set for this instance group.", "items": { - "$ref": "DiskType" + "$ref": "NamedPort" + }, + "type": "array" + } + }, + "type": "object" + }, + "InstanceList": { + "description": "Contains a list of instances.", + "id": "InstanceList", + "properties": { + "id": { + "description": "[Output Only] Unique identifier for the resource; defined by the server.", + "type": "string" + }, + "items": { + "description": "A list of Instance resources.", + "items": { + "$ref": "Instance" }, "type": "array" }, + "kind": { + "default": "compute#instanceList", + "description": "Output only. [Output Only] Type of resource. Always compute#instanceList\nfor lists of Instance resources.", + "readOnly": true, + "type": "string" + }, + "nextPageToken": { + "description": "[Output Only] This token allows you to get the next page of results for\nlist requests. If the number of results is larger thanmaxResults, use the nextPageToken as a value for\nthe query parameter pageToken in the next list request.\nSubsequent list requests will have their own nextPageToken to\ncontinue paging through the results.", + "type": "string" + }, + "selfLink": { + "description": "Output only. [Output Only] Server-defined URL for this resource.", + "readOnly": true, + "type": "string" + }, "warning": { - "description": "[Output Only] Informational warning which replaces the list of disk types when the list is empty.", + "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.", + "description": "[Output Only] A warning code, if applicable. For example, Compute\nEngine returns NO_RESULTS_ON_PAGE if there\nare no results in the response.", "enum": [ "CLEANUP_FAILED", "DEPRECATED_RESOURCE_USED", @@ -44132,6 +69635,7 @@ "NOT_CRITICAL_ERROR", "NO_RESULTS_ON_PAGE", "PARTIAL_SUCCESS", + "QUOTA_INFO_UNAVAILABLE", "REQUIRED_TOS_AGREEMENT", "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", "RESOURCE_NOT_DELETED", @@ -44168,46 +69672,48 @@ false, false, false, + false, false ], "enumDescriptions": [ - "Warning about failed cleanup of transient changes made by a failed operation.", + "Warning about failed cleanup of transient changes made by a failed\noperation.", "A link to a deprecated resource was created.", - "When deploying and at least one of the resources has a type marked as deprecated", + "When deploying and at least one of the resources has a type marked as\ndeprecated", "The user created a boot disk that is larger than image size.", - "When deploying and at least one of the resources has a type marked as experimental", + "When deploying and at least one of the resources has a type marked as\nexperimental", "Warning that is present in an external api call", - "Warning that value of a field has been overridden. Deprecated unused field.", + "Warning that value of a field has been overridden.\nDeprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", - "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is\nnot of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", - "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", + "Resource can't be retrieved due to list overhead quota exceed\nwhich captures the amount of resources filtered out by\nuser-defined list filter.", "A resource depends on a missing type", - "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's nextHopIp address is not assigned to an instance on the\nnetwork.", "The route's next hop instance cannot ip forward.", - "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not have an\nipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", - "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that is not on the\nsame network as the route.", "The route's next hop instance does not have a status of RUNNING.", - "Error which is not critical. We decided to continue the process despite the mentioned error.", + "Error which is not critical. We decided to continue the process despite\nthe mentioned error.", "No results are present on a particular list page.", "Success is reported, but some results may be missing due to errors", - "The user attempted to use a resource that requires a TOS they have not accepted.", + "Quota information is not available to client requests (e.g:\nregions.list).", + "The user attempted to use a resource that requires a TOS they have not\naccepted.", "Warning that a resource is in use.", - "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "One or more of the resources set to auto-delete could not be deleted\nbecause they were in use.", "When a resource schema validation is ignored.", - "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", + "Instance template used in instance group manager is valid as such, but\nits application does not make a lot of sense, because it allows only\nsingle instance in instance group.", "When undeclared properties in the schema are present", "A given scope cannot be reached." ], "type": "string" }, "data": { - "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", + "description": "[Output Only] Metadata about this warning in key:\nvalue format. For example:\n\n\"data\": [\n {\n \"key\": \"scope\",\n \"value\": \"zones/us-east1-d\"\n }", "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).", + "description": "[Output Only] A key that provides more detail on the warning being\nreturned. For example, for warnings where there are no results in a list\nrequest for a particular zone, this key might be scope and\nthe key value might be the zone name. Other examples might be a key\nindicating a deprecated resource and a suggested replacement, or a\nwarning about invalid network settings (for example, if an instance\nattempts to perform IP forwarding but is not enabled for IP forwarding).", "type": "string" }, "value": { @@ -44229,58 +69735,41 @@ }, "type": "object" }, - "DisksAddResourcePoliciesRequest": { - "id": "DisksAddResourcePoliciesRequest", - "properties": { - "resourcePolicies": { - "description": "Full or relative path to the resource policy to be added to this disk. You can only specify one resource policy.", - "items": { - "type": "string" - }, - "type": "array" - } - }, - "type": "object" - }, - "DisksRemoveResourcePoliciesRequest": { - "id": "DisksRemoveResourcePoliciesRequest", - "properties": { - "resourcePolicies": { - "description": "Resource policies to be removed from this disk.", - "items": { - "type": "string" - }, - "type": "array" - } - }, - "type": "object" - }, - "DisksResizeRequest": { - "id": "DisksResizeRequest", + "InstanceListReferrers": { + "description": "Contains a list of instance referrers.", + "id": "InstanceListReferrers", "properties": { - "sizeGb": { - "description": "The new size of the persistent disk, which is specified in GB.", - "format": "int64", + "id": { + "description": "[Output Only] Unique identifier for the resource; defined by the server.", "type": "string" - } - }, - "type": "object" - }, - "DisksScopedList": { - "id": "DisksScopedList", - "properties": { - "disks": { - "description": "[Output Only] A list of disks contained in this scope.", + }, + "items": { + "description": "A list of Reference resources.", "items": { - "$ref": "Disk" + "$ref": "Reference" }, "type": "array" }, + "kind": { + "default": "compute#instanceListReferrers", + "description": "Output only. [Output Only] Type of resource. Alwayscompute#instanceListReferrers for lists of Instance referrers.", + "readOnly": true, + "type": "string" + }, + "nextPageToken": { + "description": "[Output Only] This token allows you to get the next page of results for\nlist requests. If the number of results is larger thanmaxResults, use the nextPageToken as a value for\nthe query parameter pageToken in the next list request.\nSubsequent list requests will have their own nextPageToken to\ncontinue paging through the results.", + "type": "string" + }, + "selfLink": { + "description": "Output only. [Output Only] Server-defined URL for this resource.", + "readOnly": true, + "type": "string" + }, "warning": { - "description": "[Output Only] Informational warning which replaces the list of disks when the list is empty.", + "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.", + "description": "[Output Only] A warning code, if applicable. For example, Compute\nEngine returns NO_RESULTS_ON_PAGE if there\nare no results in the response.", "enum": [ "CLEANUP_FAILED", "DEPRECATED_RESOURCE_USED", @@ -44303,6 +69792,7 @@ "NOT_CRITICAL_ERROR", "NO_RESULTS_ON_PAGE", "PARTIAL_SUCCESS", + "QUOTA_INFO_UNAVAILABLE", "REQUIRED_TOS_AGREEMENT", "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", "RESOURCE_NOT_DELETED", @@ -44339,46 +69829,48 @@ false, false, false, + false, false ], "enumDescriptions": [ - "Warning about failed cleanup of transient changes made by a failed operation.", + "Warning about failed cleanup of transient changes made by a failed\noperation.", "A link to a deprecated resource was created.", - "When deploying and at least one of the resources has a type marked as deprecated", + "When deploying and at least one of the resources has a type marked as\ndeprecated", "The user created a boot disk that is larger than image size.", - "When deploying and at least one of the resources has a type marked as experimental", + "When deploying and at least one of the resources has a type marked as\nexperimental", "Warning that is present in an external api call", - "Warning that value of a field has been overridden. Deprecated unused field.", + "Warning that value of a field has been overridden.\nDeprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", - "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is\nnot of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", - "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", + "Resource can't be retrieved due to list overhead quota exceed\nwhich captures the amount of resources filtered out by\nuser-defined list filter.", "A resource depends on a missing type", - "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's nextHopIp address is not assigned to an instance on the\nnetwork.", "The route's next hop instance cannot ip forward.", - "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not have an\nipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", - "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that is not on the\nsame network as the route.", "The route's next hop instance does not have a status of RUNNING.", - "Error which is not critical. We decided to continue the process despite the mentioned error.", + "Error which is not critical. We decided to continue the process despite\nthe mentioned error.", "No results are present on a particular list page.", "Success is reported, but some results may be missing due to errors", - "The user attempted to use a resource that requires a TOS they have not accepted.", + "Quota information is not available to client requests (e.g:\nregions.list).", + "The user attempted to use a resource that requires a TOS they have not\naccepted.", "Warning that a resource is in use.", - "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "One or more of the resources set to auto-delete could not be deleted\nbecause they were in use.", "When a resource schema validation is ignored.", - "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", + "Instance template used in instance group manager is valid as such, but\nits application does not make a lot of sense, because it allows only\nsingle instance in instance group.", "When undeclared properties in the schema are present", "A given scope cannot be reached." ], "type": "string" }, "data": { - "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", + "description": "[Output Only] Metadata about this warning in key:\nvalue format. For example:\n\n\"data\": [\n {\n \"key\": \"scope\",\n \"value\": \"zones/us-east1-d\"\n }", "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).", + "description": "[Output Only] A key that provides more detail on the warning being\nreturned. For example, for warnings where there are no results in a list\nrequest for a particular zone, this key might be scope and\nthe key value might be the zone name. Other examples might be a key\nindicating a deprecated resource and a suggested replacement, or a\nwarning about invalid network settings (for example, if an instance\nattempts to perform IP forwarding but is not enabled for IP forwarding).", "type": "string" }, "value": { @@ -44400,190 +69892,452 @@ }, "type": "object" }, - "DisksStartAsyncReplicationRequest": { - "id": "DisksStartAsyncReplicationRequest", + "InstanceManagedByIgmError": { + "id": "InstanceManagedByIgmError", "properties": { - "asyncSecondaryDisk": { - "description": "The secondary disk to start asynchronous replication to. 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 /disks/disk - https://www.googleapis.com/compute/v1/projects/project/regions/region /disks/disk - projects/project/zones/zone/disks/disk - projects/project/regions/region/disks/disk - zones/zone/disks/disk - regions/region/disks/disk ", + "error": { + "$ref": "InstanceManagedByIgmErrorManagedInstanceError", + "description": "Output only. Contents of the error.", + "readOnly": true + }, + "instanceActionDetails": { + "$ref": "InstanceManagedByIgmErrorInstanceActionDetails", + "description": "Output only. Details of the instance action that triggered this error.\nMay be null, if the error was not caused by an action on an instance.\nThis field is optional.", + "readOnly": true + }, + "timestamp": { + "description": "Output only. The time that this error occurred. This value is in RFC3339 text format.", + "readOnly": true, "type": "string" } }, "type": "object" }, - "DisksStopGroupAsyncReplicationResource": { - "description": "A transient resource used in compute.disks.stopGroupAsyncReplication and compute.regionDisks.stopGroupAsyncReplication. It is only used to process requests and is not persisted.", - "id": "DisksStopGroupAsyncReplicationResource", + "InstanceManagedByIgmErrorInstanceActionDetails": { + "id": "InstanceManagedByIgmErrorInstanceActionDetails", "properties": { - "resourcePolicy": { - "description": "The URL of the DiskConsistencyGroupPolicy for the group of disks to stop. This may be a full or partial URL, such as: - https://www.googleapis.com/compute/v1/projects/project/regions/region /resourcePolicies/resourcePolicy - projects/project/regions/region/resourcePolicies/resourcePolicy - regions/region/resourcePolicies/resourcePolicy ", + "action": { + "description": "Output only. Action that managed instance group was executing on the instance when the\nerror occurred. Possible values:", + "enum": [ + "ABANDONING", + "CREATING", + "CREATING_WITHOUT_RETRIES", + "DELETING", + "NONE", + "RECREATING", + "REFRESHING", + "RESTARTING", + "RESUMING", + "STARTING", + "STOPPING", + "SUSPENDING", + "VERIFYING" + ], + "enumDescriptions": [ + "The managed instance group is abandoning this instance. The instance\nwill be removed from the instance group and from any target pools that\nare associated with this group.", + "The managed instance group is creating this instance. If the group\nfails to create this instance, it will try again until it is\nsuccessful.", + "The managed instance group is attempting to create this instance\nonly once. If the group fails to create this instance, it does\nnot try again and the group's targetSize value is\ndecreased.", + "The managed instance group is permanently deleting this instance.", + "The managed instance group has not scheduled any actions for this\ninstance.", + "The managed instance group is recreating this instance.", + "The managed instance group is applying configuration changes to the\ninstance without stopping it. For example, the group can update the\ntarget pool list for an instance without stopping that instance.", + "The managed instance group is restarting this instance.", + "The managed instance group is resuming this instance.", + "The managed instance group is starting this instance.", + "The managed instance group is stopping this instance.", + "The managed instance group is suspending this instance.", + "The managed instance group is verifying this already created instance.\nVerification happens every time the instance is (re)created or restarted\nand consists of:\n 1. Waiting until health check specified as part of this managed instance\n group's autohealing policy reports HEALTHY.\n Note: Applies only if autohealing policy has a health check specified\n 2. Waiting for addition verification steps performed as post-instance\n creation (subject to future extensions)." + ], + "readOnly": true, + "type": "string" + }, + "instance": { + "description": "Output only. The URL of the instance. The URL can be set even if the instance has not\nyet been created.", + "readOnly": true, "type": "string" + }, + "version": { + "$ref": "ManagedInstanceVersion", + "description": "Output only. Version this instance was created from, or was being\ncreated from, but the creation failed. Corresponds to one of the versions\nthat were set on the Instance Group Manager resource at the time this\ninstance was being created.", + "readOnly": true } }, "type": "object" }, - "DisplayDevice": { - "description": "A set of Display Device options", - "id": "DisplayDevice", + "InstanceManagedByIgmErrorManagedInstanceError": { + "id": "InstanceManagedByIgmErrorManagedInstanceError", "properties": { - "enableDisplay": { - "description": "Defines whether the instance has Display enabled.", - "type": "boolean" + "code": { + "description": "Output only. Error code.", + "readOnly": true, + "type": "string" + }, + "message": { + "description": "Output only. Error message.", + "readOnly": true, + "type": "string" } }, "type": "object" }, - "DistributionPolicy": { - "id": "DistributionPolicy", + "InstanceMoveRequest": { + "id": "InstanceMoveRequest", "properties": { - "targetShape": { - "description": "The distribution shape to which the group converges either proactively or on resize events (depending on the value set in updatePolicy.instanceRedistributionType).", + "destinationZone": { + "description": "The URL of the destination zone to move the instance. This can be a full or\npartial URL. For example, the following are all valid URLs to a zone:\n \n - https://www.googleapis.com/compute/v1/projects/project/zones/zone \n - projects/project/zones/zone \n - zones/zone", + "type": "string" + }, + "targetInstance": { + "description": "The URL of the target instance to move. This can be a full or partial URL.\nFor example, the following are all valid URLs to an instance:\n \n - https://www.googleapis.com/compute/v1/projects/project/zones/zone/instances/instance \n - projects/project/zones/zone/instances/instance \n - zones/zone/instances/instance", + "type": "string" + } + }, + "type": "object" + }, + "InstanceParams": { + "description": "Additional instance params.", + "id": "InstanceParams", + "properties": { + "requestValidForDuration": { + "$ref": "Duration", + "description": "Relative deadline for waiting for capacity. Relevant only for\nInstances.Insert API." + }, + "resourceManagerTags": { + "additionalProperties": { + "type": "string" + }, + "description": "Input only. Resource manager tags to be bound to the instance. Tag keys and values\nhave the same definition as resource\nmanager tags. Keys and values can be either in numeric format,\nsuch as `tagKeys/{tag_key_id}` and `tagValues/{tag_value_id}` or in\nnamespaced format such as `{org_id|project_id}/{tag_key_short_name}` and\n`{tag_value_short_name}`. The field is ignored (both PUT \u0026\nPATCH) when empty.", + "type": "object" + } + }, + "type": "object" + }, + "InstanceProperties": { + "id": "InstanceProperties", + "properties": { + "advancedMachineFeatures": { + "$ref": "AdvancedMachineFeatures", + "description": "Controls for advanced machine-related behavior features.\nNote that for MachineImage, this is not supported yet." + }, + "canIpForward": { + "description": "Enables instances created based on these properties to send packets with\nsource IP addresses other than their own and receive packets with\ndestination IP addresses other than their own. If these instances will be\nused as an IP gateway or it will be set as the next-hop in a Route\nresource, specify true. If unsure, leave this set tofalse. See theEnable IP forwarding\ndocumentation for more information.", + "type": "boolean" + }, + "confidentialInstanceConfig": { + "$ref": "ConfidentialInstanceConfig", + "description": "Specifies the Confidential Instance options.\nNote that for MachineImage, this is not supported yet." + }, + "description": { + "description": "An optional text description for the instances that are created from these\nproperties.", + "type": "string" + }, + "disks": { + "description": "An array of disks that are associated with the instances that are created\nfrom these properties.", + "items": { + "$ref": "AttachedDisk" + }, + "type": "array" + }, + "guestAccelerators": { + "description": "A list of guest accelerator cards' type and count to use for instances\ncreated from these properties.", + "items": { + "$ref": "AcceleratorConfig" + }, + "type": "array" + }, + "keyRevocationActionType": { + "description": "KeyRevocationActionType of the instance. Supported options are \"STOP\" and\n\"NONE\". The default value is \"NONE\" if it is not specified.", "enum": [ - "ANY", - "ANY_SINGLE_ZONE", - "BALANCED", - "EVEN" + "KEY_REVOCATION_ACTION_TYPE_UNSPECIFIED", + "NONE", + "STOP" ], "enumDescriptions": [ - "The group picks zones for creating VM instances to fulfill the requested number of VMs within present resource constraints and to maximize utilization of unused zonal reservations. Recommended for batch workloads that do not require high availability.", - "The group creates all VM instances within a single zone. The zone is selected based on the present resource constraints and to maximize utilization of unused zonal reservations. Recommended for batch workloads with heavy interprocess communication.", - "The group prioritizes acquisition of resources, scheduling VMs in zones where resources are available while distributing VMs as evenly as possible across selected zones to minimize the impact of zonal failure. Recommended for highly available serving workloads.", - "The group schedules VM instance creation and deletion to achieve and maintain an even number of managed instances across the selected zones. The distribution is even when the number of managed instances does not differ by more than 1 between any two zones. Recommended for highly available serving workloads." + "Default value. This value is unused.", + "Indicates user chose no operation.", + "Indicates user chose to opt for VM shutdown on key revocation." ], "type": "string" }, - "zones": { - "description": "Zones where the regional managed instance group will create and manage its instances.", + "labels": { + "additionalProperties": { + "type": "string" + }, + "description": "Labels to apply to instances that are created from these properties.", + "type": "object" + }, + "localSsdEncryptionMode": { + "description": "Specifies which method should be used for encrypting the\nLocal SSDs attached to the VM.", + "enum": [ + "EPHEMERAL_KEY_ENCRYPTION", + "LOCAL_SSD_ENCRYPTION_MODE_UNSPECIFIED", + "STANDARD_ENCRYPTION" + ], + "enumDescriptions": [ + "The given VM will opt-in for using ephemeral key for\nencryption of Local SSDs.\nThe Local SSDs will not be able to recover data in case of VM\ncrash.", + "The given VM will be encrypted using keys managed by the cloud\ninfrastructure and the keys will be deleted when the VM is\ndeleted.", + "The given VM will be encrypted using keys managed by the cloud\ninfrastructure and the keys will be deleted when the VM is\ndeleted." + ], + "type": "string" + }, + "machineType": { + "annotations": { + "required": [ + "compute.instanceTemplates.insert" + ] + }, + "description": "The machine type to use for instances that are created from these\nproperties.\nThis field only accepts a machine type name, for example `n2-standard-4`.\nIf you use the machine type full or partial URL, for example\n`projects/my-l7ilb-project/zones/us-central1-a/machineTypes/n2-standard-4`,\nthe request will result in an `INTERNAL_ERROR`.", + "type": "string" + }, + "metadata": { + "$ref": "Metadata", + "description": "The metadata key/value pairs to assign to instances that are created from\nthese properties. These pairs can consist of custom metadata or predefined\nkeys. SeeProject and\ninstance metadata for more information." + }, + "minCpuPlatform": { + "description": "Minimum cpu/platform to be used by instances. The instance may be\nscheduled on the specified or newer cpu/platform. Applicable values are the\nfriendly names of CPU platforms, such asminCpuPlatform: \"Intel Haswell\" orminCpuPlatform: \"Intel Sandy Bridge\". For more\ninformation, read Specifying a\nMinimum CPU Platform.", + "type": "string" + }, + "networkInterfaces": { + "description": "An array of network access configurations for this interface.", "items": { - "$ref": "DistributionPolicyZoneConfiguration" + "$ref": "NetworkInterface" + }, + "type": "array" + }, + "networkPerformanceConfig": { + "$ref": "NetworkPerformanceConfig", + "description": "Note that for MachineImage, this is not supported yet." + }, + "privateIpv6GoogleAccess": { + "description": "The private IPv6 google access type for VMs.\nIf not specified, use INHERIT_FROM_SUBNETWORK as default.\nNote that for MachineImage, this is not supported yet.", + "enum": [ + "ENABLE_BIDIRECTIONAL_ACCESS_TO_GOOGLE", + "ENABLE_OUTBOUND_VM_ACCESS_TO_GOOGLE", + "INHERIT_FROM_SUBNETWORK" + ], + "enumDescriptions": [ + "Bidirectional private IPv6 access to/from Google services. If\nspecified, the subnetwork who is attached to the instance's default network\ninterface will be assigned an internal IPv6 prefix if it doesn't have\nbefore.", + "Outbound private IPv6 access from VMs in this subnet to Google services. If\nspecified, the subnetwork who is attached to the instance's default network\ninterface will be assigned an internal IPv6 prefix if it doesn't have\nbefore.", + "Each network interface inherits PrivateIpv6GoogleAccess from its\nsubnetwork." + ], + "type": "string" + }, + "reservationAffinity": { + "$ref": "ReservationAffinity", + "description": "Specifies the reservations that instances can consume from.\nNote that for MachineImage, this is not supported yet." + }, + "resourceManagerTags": { + "additionalProperties": { + "type": "string" + }, + "description": "Input only. Resource manager tags to be bound to the instance. Tag keys and values\nhave the same definition as resource\nmanager tags. Keys and values can be either in numeric format,\nsuch as `tagKeys/{tag_key_id}` and `tagValues/{tag_value_id}` or in\nnamespaced format such as `{org_id|project_id}/{tag_key_short_name}` and\n`{tag_value_short_name}`. The field is ignored (both PUT \u0026\nPATCH) when empty.", + "type": "object" + }, + "resourcePolicies": { + "description": "Resource policies (names, not URLs) applied to instances created from\nthese properties.\nNote that for MachineImage, this is not supported yet.", + "items": { + "type": "string" + }, + "type": "array" + }, + "scheduling": { + "$ref": "Scheduling", + "description": "Specifies the scheduling options for the instances that are created from\nthese properties." + }, + "serviceAccounts": { + "description": "A list of service accounts with specified scopes. Access tokens for these\nservice accounts are available to the instances that are created from\nthese properties. Use metadata queries to obtain the access tokens for\nthese instances.", + "items": { + "$ref": "ServiceAccount" }, "type": "array" + }, + "shieldedInstanceConfig": { + "$ref": "ShieldedInstanceConfig", + "description": "Note that for MachineImage, this is not supported yet." + }, + "tags": { + "$ref": "Tags", + "description": "A list of tags to apply to the instances that are created from these\nproperties. The tags identify valid sources or targets for network\nfirewalls. The setTags method can modify this list of tags. Each tag within\nthe list must comply with RFC1035." + }, + "workloadIdentityConfig": { + "$ref": "WorkloadIdentityConfig" } }, "type": "object" }, - "DistributionPolicyZoneConfiguration": { - "id": "DistributionPolicyZoneConfiguration", + "InstancePropertiesPatch": { + "description": "Represents the change that you want to make to the instance properties.", + "id": "InstancePropertiesPatch", "properties": { - "zone": { - "annotations": { - "required": [ - "compute.regionInstanceGroupManagers.insert" - ] + "labels": { + "additionalProperties": { + "type": "string" }, - "description": "The URL of the zone. The zone must exist in the region where the managed instance group is located.", - "type": "string" + "description": "The label key-value pairs that you want to patch onto the instance.", + "type": "object" + }, + "metadata": { + "additionalProperties": { + "type": "string" + }, + "description": "The metadata key-value pairs that you want to patch onto the instance. For\nmore information, see Project and\ninstance metadata.", + "type": "object" } }, "type": "object" }, - "Duration": { - "description": "A Duration represents a fixed-length span of time represented as a count of seconds and fractions of seconds at nanosecond resolution. It is independent of any calendar and concepts like \"day\" or \"month\". Range is approximately 10,000 years.", - "id": "Duration", + "InstanceReference": { + "id": "InstanceReference", "properties": { - "nanos": { - "description": "Span of time that's a fraction of a second at nanosecond resolution. Durations less than one second are represented with a 0 `seconds` field and a positive `nanos` field. Must be from 0 to 999,999,999 inclusive.", - "format": "int32", - "type": "integer" - }, - "seconds": { - "description": "Span of time at a resolution of a second. Must be from 0 to 315,576,000,000 inclusive. Note: these bounds are computed from: 60 sec/min * 60 min/hr * 24 hr/day * 365.25 days/year * 10000 years", - "format": "int64", + "instance": { + "description": "The URL for a specific instance.\n@required compute.instancegroups.addInstances/removeInstances", "type": "string" } }, "type": "object" }, - "ErrorInfo": { - "description": "Describes the cause of the error with structured details. Example of an error when contacting the \"pubsub.googleapis.com\" API when it is not enabled: { \"reason\": \"API_DISABLED\" \"domain\": \"googleapis.com\" \"metadata\": { \"resource\": \"projects/123\", \"service\": \"pubsub.googleapis.com\" } } This response indicates that the pubsub.googleapis.com API is not enabled. Example of an error that is returned when attempting to create a Spanner instance in a region that is out of stock: { \"reason\": \"STOCKOUT\" \"domain\": \"spanner.googleapis.com\", \"metadata\": { \"availableRegions\": \"us-central1,us-east2\" } }", - "id": "ErrorInfo", + "InstanceSettings": { + "description": "Represents a Instance Settings resource. You can use instance settings to\nconfigure default settings for Compute Engine VM instances. For example, you\ncan use it to configure default machine type of Compute Engine VM instances.", + "id": "InstanceSettings", "properties": { - "domain": { - "description": "The logical grouping to which the \"reason\" belongs. The error domain is typically the registered service name of the tool or product that generates the error. Example: \"pubsub.googleapis.com\". If the error is generated by some common infrastructure, the error domain must be a globally unique value that identifies the infrastructure. For Google API infrastructure, the error domain is \"googleapis.com\".", + "fingerprint": { + "description": "Specifies a fingerprint for instance settings, which is essentially a hash\nof the instance settings resource's contents and used for optimistic\nlocking. The fingerprint is initially generated by Compute Engine and\nchanges after every request to modify or update the instance settings\nresource. You must always provide an up-to-date fingerprint hash in order\nto update or change the resource, otherwise the request will fail with\nerror 412 conditionNotMet.\n\nTo see the latest fingerprint, make a get() request to\nretrieve the resource.", + "format": "byte", "type": "string" }, - "metadatas": { + "kind": { + "default": "compute#instanceSettings", + "description": "Output only. [Output Only] Type of the resource. Alwayscompute#instance_settings for instance settings.", + "readOnly": true, + "type": "string" + }, + "metadata": { + "$ref": "InstanceSettingsMetadata", + "description": "The metadata key/value pairs assigned to all the instances in the\ncorresponding scope." + }, + "zone": { + "description": "Output only. [Output Only] URL of the zone where the resource resides\nYou must specify this field as part of the HTTP request URL. It is not\nsettable as a field in the request body.", + "readOnly": true, + "type": "string" + } + }, + "type": "object" + }, + "InstanceSettingsMetadata": { + "id": "InstanceSettingsMetadata", + "properties": { + "items": { "additionalProperties": { "type": "string" }, - "description": "Additional structured details about this error. Keys must match /a-z+/ but should ideally be lowerCamelCase. Also they must be limited to 64 characters in length. When identifying the current value of an exceeded limit, the units should be contained in the key, not the value. For example, rather than {\"instanceLimit\": \"100/request\"}, should be returned as, {\"instanceLimitPerRequest\": \"100\"}, if the client exceeds the number of instances that can be created in a single (batch) request.", + "description": "A metadata key/value items map.\nThe total size of all keys and values must be less than 512KB.", "type": "object" }, - "reason": { - "description": "The reason of the error. This is a constant value that identifies the proximate cause of the error. Error reasons are unique within a particular domain of errors. This should be at most 63 characters and match a regular expression of `A-Z+[A-Z0-9]`, which represents UPPER_SNAKE_CASE.", + "kind": { + "default": "compute#metadata", + "description": "Output only. [Output Only] Type of the resource. Always compute#metadata\nfor metadata.", + "readOnly": true, "type": "string" } }, "type": "object" }, - "ExchangedPeeringRoute": { - "id": "ExchangedPeeringRoute", + "InstanceTemplate": { + "description": "Represents an Instance Template resource.\n\nGoogle Compute Engine has two Instance Template resources:\n\n* [Global](/compute/docs/reference/rest/v1/instanceTemplates)\n* [Regional](/compute/docs/reference/rest/v1/regionInstanceTemplates)\n\nYou can reuse a global instance template in\ndifferent regions whereas you can use a regional instance template in a\nspecified region only. If you want to reduce cross-region dependency or\nachieve data residency, use a regional instance template.\n\nTo create VMs, managed instance groups, and reservations, you can use either\nglobal or regional instance templates.\n\nFor more information, readInstance Templates.", + "id": "InstanceTemplate", "properties": { - "destRange": { - "description": "The destination range of the route.", + "creationTimestamp": { + "description": "Output only. [Output Only] The creation timestamp for this instance template inRFC3339\ntext format.", + "readOnly": true, "type": "string" }, - "imported": { - "description": "True if the peering route has been imported from a peer. The actual import happens if the field networkPeering.importCustomRoutes is true for this network, and networkPeering.exportCustomRoutes is true for the peer network, and the import does not result in a route conflict.", - "type": "boolean" + "description": { + "description": "An optional description of this resource. Provide this property when you\ncreate the resource.", + "type": "string" }, - "nextHopRegion": { - "description": "The region of peering route next hop, only applies to dynamic routes.", + "id": { + "description": "Output only. [Output Only] A unique identifier for this instance template. The server\ndefines this identifier.", + "format": "uint64", + "readOnly": true, "type": "string" }, - "priority": { - "description": "The priority of the peering route.", - "format": "uint32", - "type": "integer" + "kind": { + "default": "compute#instanceTemplate", + "description": "Output only. [Output Only] The resource type, which is alwayscompute#instanceTemplate for instance templates.", + "readOnly": true, + "type": "string" }, - "type": { - "description": "The type of the peering route.", - "enum": [ - "DYNAMIC_PEERING_ROUTE", - "STATIC_PEERING_ROUTE", - "SUBNET_PEERING_ROUTE" - ], - "enumDescriptions": [ - "For routes exported from local network.", - "The peering route.", - "The peering route corresponding to subnetwork range." - ], + "name": { + "annotations": { + "required": [ + "compute.instanceTemplates.insert" + ] + }, + "description": "Name of the resource; provided by the client when the resource is created.\nThe name must be 1-63 characters long, and comply withRFC1035.\nSpecifically, the name must be 1-63 characters long and match the regular\nexpression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first\ncharacter must be a lowercase letter, and all following characters must be\na dash, lowercase letter, or digit, except the last character, which cannot\nbe a dash.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "type": "string" + }, + "properties": { + "$ref": "InstanceProperties", + "description": "The instance properties for this instance template." + }, + "region": { + "description": "Output only. [Output Only] URL of the region where the instance template resides. Only\napplicable for regional resources.", + "readOnly": true, + "type": "string" + }, + "selfLink": { + "description": "Output only. [Output Only] The URL for this instance template. The server defines this\nURL.", + "readOnly": true, + "type": "string" + }, + "sourceInstance": { + "description": "The source instance used to create the template. You can provide this as a\npartial or full URL to the resource. For example, the following are valid\nvalues:\n \n \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" }, - "ExchangedPeeringRoutesList": { - "id": "ExchangedPeeringRoutesList", + "InstanceTemplateAggregatedList": { + "description": "Contains a list of InstanceTemplatesScopedList.", + "id": "InstanceTemplateAggregatedList", "properties": { "id": { "description": "[Output Only] Unique identifier for the resource; defined by the server.", "type": "string" }, "items": { - "description": "A list of ExchangedPeeringRoute resources.", - "items": { - "$ref": "ExchangedPeeringRoute" + "additionalProperties": { + "$ref": "InstanceTemplatesScopedList", + "description": "The name of the scope that contains this set of instance templates." }, - "type": "array" + "description": "A list of InstanceTemplatesScopedList resources.", + "type": "object" }, "kind": { - "default": "compute#exchangedPeeringRoutesList", - "description": "[Output Only] Type of resource. Always compute#exchangedPeeringRoutesList for exchanged peering routes lists.", + "default": "compute#instanceTemplateAggregatedList", + "description": "Output only. Type of resource.", + "readOnly": true, "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.", + "description": "[Output Only] This token allows you to get the next page of results for\nlist requests. If the number of results is larger thanmaxResults, use the nextPageToken as a value for\nthe query parameter pageToken in the next list request.\nSubsequent list requests will have their own nextPageToken to\ncontinue paging through the results.", "type": "string" }, "selfLink": { - "description": "[Output Only] Server-defined URL for this resource.", + "description": "Output only. [Output Only] Server-defined URL for this resource.", + "readOnly": true, "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.", + "description": "[Output Only] A warning code, if applicable. For example, Compute\nEngine returns NO_RESULTS_ON_PAGE if there\nare no results in the response.", "enum": [ "CLEANUP_FAILED", "DEPRECATED_RESOURCE_USED", @@ -44606,6 +70360,7 @@ "NOT_CRITICAL_ERROR", "NO_RESULTS_ON_PAGE", "PARTIAL_SUCCESS", + "QUOTA_INFO_UNAVAILABLE", "REQUIRED_TOS_AGREEMENT", "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", "RESOURCE_NOT_DELETED", @@ -44642,218 +70397,104 @@ false, false, false, + false, false ], "enumDescriptions": [ - "Warning about failed cleanup of transient changes made by a failed operation.", + "Warning about failed cleanup of transient changes made by a failed\noperation.", "A link to a deprecated resource was created.", - "When deploying and at least one of the resources has a type marked as deprecated", + "When deploying and at least one of the resources has a type marked as\ndeprecated", "The user created a boot disk that is larger than image size.", - "When deploying and at least one of the resources has a type marked as experimental", + "When deploying and at least one of the resources has a type marked as\nexperimental", "Warning that is present in an external api call", - "Warning that value of a field has been overridden. Deprecated unused field.", + "Warning that value of a field has been overridden.\nDeprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", - "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is\nnot of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", - "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", + "Resource can't be retrieved due to list overhead quota exceed\nwhich captures the amount of resources filtered out by\nuser-defined list filter.", "A resource depends on a missing type", - "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's nextHopIp address is not assigned to an instance on the\nnetwork.", "The route's next hop instance cannot ip forward.", - "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not have an\nipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", - "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that is not on the\nsame network as the route.", "The route's next hop instance does not have a status of RUNNING.", - "Error which is not critical. We decided to continue the process despite the mentioned error.", + "Error which is not critical. We decided to continue the process despite\nthe mentioned error.", "No results are present on a particular list page.", "Success is reported, but some results may be missing due to errors", - "The user attempted to use a resource that requires a TOS they have not accepted.", - "Warning that a resource is in use.", - "One or more of the resources set to auto-delete could not be deleted because they were in use.", - "When a resource schema validation is ignored.", - "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", - "When undeclared properties in the schema are present", - "A given scope cannot be reached." - ], - "type": "string" - }, - "data": { - "description": "[Output Only] Metadata about this warning in key: value format. For example: \"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" - }, - "Expr": { - "description": "Represents a textual expression in the Common Expression Language (CEL) syntax. CEL is a C-like expression language. The syntax and semantics of CEL are documented at https://github.com/google/cel-spec. Example (Comparison): title: \"Summary size limit\" description: \"Determines if a summary is less than 100 chars\" expression: \"document.summary.size() \u003c 100\" Example (Equality): title: \"Requestor is owner\" description: \"Determines if requestor is the document owner\" expression: \"document.owner == request.auth.claims.email\" Example (Logic): title: \"Public documents\" description: \"Determine whether the document should be publicly visible\" expression: \"document.type != 'private' \u0026\u0026 document.type != 'internal'\" Example (Data Manipulation): title: \"Notification string\" description: \"Create a notification string with a timestamp.\" expression: \"'New message received at ' + string(document.create_time)\" The exact variables and functions that may be referenced within an expression are determined by the service that evaluates it. See the service documentation for additional information.", - "id": "Expr", - "properties": { - "description": { - "description": "Optional. Description of the expression. This is a longer text which describes the expression, e.g. when hovered over it in a UI.", - "type": "string" - }, - "expression": { - "description": "Textual representation of an expression in Common Expression Language syntax.", - "type": "string" - }, - "location": { - "description": "Optional. String indicating the location of the expression for error reporting, e.g. a file name and a position in the file.", - "type": "string" - }, - "title": { - "description": "Optional. Title for the expression, i.e. a short string describing its purpose. This can be used e.g. in UIs which allow to enter the expression.", - "type": "string" - } - }, - "type": "object" - }, - "ExternalVpnGateway": { - "description": "Represents an external VPN gateway. External VPN gateway is the on-premises VPN gateway(s) or another cloud provider's VPN gateway that connects to your Google Cloud VPN gateway. To create a highly available VPN from Google Cloud Platform to your VPN gateway or another cloud provider's VPN gateway, you must create a external VPN gateway resource with information about the other gateway. For more information about using external VPN gateways, see Creating an HA VPN gateway and tunnel pair to a peer VPN.", - "id": "ExternalVpnGateway", - "properties": { - "creationTimestamp": { - "description": "[Output Only] Creation timestamp in RFC3339 text format.", - "type": "string" - }, - "description": { - "description": "An optional description of this resource. Provide this property when you create the resource.", - "type": "string" - }, - "id": { - "description": "[Output Only] The unique identifier for the resource. This identifier is defined by the server.", - "format": "uint64", - "type": "string" - }, - "interfaces": { - "description": "A list of interfaces for this external VPN gateway. If your peer-side gateway is an on-premises gateway and non-AWS cloud providers' gateway, at most two interfaces can be provided for an external VPN gateway. If your peer side is an AWS virtual private gateway, four interfaces should be provided for an external VPN gateway.", - "items": { - "$ref": "ExternalVpnGatewayInterface" - }, - "type": "array" - }, - "kind": { - "default": "compute#externalVpnGateway", - "description": "[Output Only] Type of the resource. Always compute#externalVpnGateway for externalVpnGateways.", - "type": "string" - }, - "labelFingerprint": { - "description": "A fingerprint for the labels being applied to this ExternalVpnGateway, which is essentially a hash of the labels set used for optimistic locking. The fingerprint is initially generated by Compute Engine and changes after every request to modify or update labels. You must always provide an up-to-date fingerprint hash in order to update or change labels, otherwise the request will fail with error 412 conditionNotMet. To see the latest fingerprint, make a get() request to retrieve an ExternalVpnGateway.", - "format": "byte", - "type": "string" - }, - "labels": { - "additionalProperties": { - "type": "string" + "Quota information is not available to client requests (e.g:\nregions.list).", + "The user attempted to use a resource that requires a TOS they have not\naccepted.", + "Warning that a resource is in use.", + "One or more of the resources set to auto-delete could not be deleted\nbecause they were in use.", + "When a resource schema validation is ignored.", + "Instance template used in instance group manager is valid as such, but\nits application does not make a lot of sense, because it allows only\nsingle instance in instance group.", + "When undeclared properties in the schema are present", + "A given scope cannot be reached." + ], + "type": "string" + }, + "data": { + "description": "[Output Only] Metadata about this warning in key:\nvalue format. For example:\n\n\"data\": [\n {\n \"key\": \"scope\",\n \"value\": \"zones/us-east1-d\"\n }", + "items": { + "properties": { + "key": { + "description": "[Output Only] A key that provides more detail on the warning being\nreturned. For example, for warnings where there are no results in a list\nrequest for a particular zone, this key might be scope and\nthe key value might be the zone name. Other examples might be a key\nindicating a deprecated resource and a suggested replacement, or a\nwarning about invalid network settings (for example, if an instance\nattempts 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" + } }, - "description": "Labels for this resource. These can only be added or modified by the setLabels method. Each label key/value pair must comply with RFC1035. Label values may be empty.", "type": "object" - }, - "name": { - "annotations": { - "required": [ - "compute.externalVpnGateways.insert" - ] - }, - "description": "Name of the resource. Provided by the client when the resource is created. The name must be 1-63 characters long, and comply with RFC1035. 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" - }, - "redundancyType": { - "description": "Indicates the user-supplied redundancy type of this external VPN gateway.", - "enum": [ - "FOUR_IPS_REDUNDANCY", - "SINGLE_IP_INTERNALLY_REDUNDANT", - "TWO_IPS_REDUNDANCY" - ], - "enumDescriptions": [ - "The external VPN gateway has four public IP addresses; at the time of writing this API, the AWS virtual private gateway is an example which has four public IP addresses for high availability connections; there should be two VPN connections in the AWS virtual private gateway , each AWS VPN connection has two public IP addresses; please make sure to put two public IP addresses from one AWS VPN connection into interfaces 0 and 1 of this external VPN gateway, and put the other two public IP addresses from another AWS VPN connection into interfaces 2 and 3 of this external VPN gateway. When displaying highly available configuration status for the VPN tunnels connected to FOUR_IPS_REDUNDANCY external VPN gateway, Google will always detect whether interfaces 0 and 1 are connected on one interface of HA Cloud VPN gateway, and detect whether interfaces 2 and 3 are connected to another interface of the HA Cloud VPN gateway.", - "The external VPN gateway has only one public IP address which internally provide redundancy or failover.", - "The external VPN gateway has two public IP addresses which are redundant with each other, the following two types of setup on your on-premises side would have this type of redundancy: (1) Two separate on-premises gateways, each with one public IP address, the two on-premises gateways are redundant with each other. (2) A single on-premise gateway with two public IP addresses that are redundant with eatch other." - ], - "type": "string" - }, - "selfLink": { - "description": "[Output Only] Server-defined URL for the resource.", - "type": "string" - } - }, - "type": "object" - }, - "ExternalVpnGatewayInterface": { - "description": "The interface for the external VPN gateway.", - "id": "ExternalVpnGatewayInterface", - "properties": { - "id": { - "description": "The numeric ID of this interface. The allowed input values for this id for different redundancy types of external VPN gateway: - SINGLE_IP_INTERNALLY_REDUNDANT - 0 - TWO_IPS_REDUNDANCY - 0, 1 - FOUR_IPS_REDUNDANCY - 0, 1, 2, 3 ", - "format": "uint32", - "type": "integer" - }, - "ipAddress": { - "description": "IP address of the interface in the external VPN gateway. Only IPv4 is supported. This IP address can be either from your on-premise gateway or another Cloud provider's VPN gateway, it cannot be an IP address from Google Compute Engine.", - "type": "string" - }, - "ipv6Address": { - "description": "IPv6 address of the interface in the external VPN gateway. This IPv6 address can be either from your on-premise gateway or another Cloud provider's VPN gateway, it cannot be an IP address from Google Compute Engine. Must specify an IPv6 address (not IPV4-mapped) using any format described in RFC 4291 (e.g. 2001:db8:0:0:2d9:51:0:0). The output format is RFC 5952 format (e.g. 2001:db8::2d9:51:0:0).", - "type": "string" } }, "type": "object" }, - "ExternalVpnGatewayList": { - "description": "Response to the list request, and contains a list of externalVpnGateways.", - "id": "ExternalVpnGatewayList", + "InstanceTemplateList": { + "description": "A list of instance templates.", + "id": "InstanceTemplateList", "properties": { - "etag": { - "type": "string" - }, "id": { "description": "[Output Only] Unique identifier for the resource; defined by the server.", "type": "string" }, "items": { - "description": "A list of ExternalVpnGateway resources.", + "description": "A list of InstanceTemplate resources.", "items": { - "$ref": "ExternalVpnGateway" + "$ref": "InstanceTemplate" }, "type": "array" }, "kind": { - "default": "compute#externalVpnGatewayList", - "description": "[Output Only] Type of resource. Always compute#externalVpnGatewayList for lists of externalVpnGateways.", + "default": "compute#instanceTemplateList", + "description": "Output only. [Output Only] The resource type, which is alwayscompute#instanceTemplatesListResponse for instance template\nlists.", + "readOnly": true, "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.", + "description": "[Output Only] This token allows you to get the next page of results for\nlist requests. If the number of results is larger thanmaxResults, use the nextPageToken as a value for\nthe query parameter pageToken in the next list request.\nSubsequent list requests will have their own nextPageToken to\ncontinue paging through the results.", "type": "string" }, "selfLink": { - "description": "[Output Only] Server-defined URL for this resource.", + "description": "Output only. [Output Only] Server-defined URL for this resource.", + "readOnly": true, "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.", + "description": "[Output Only] A warning code, if applicable. For example, Compute\nEngine returns NO_RESULTS_ON_PAGE if there\nare no results in the response.", "enum": [ "CLEANUP_FAILED", "DEPRECATED_RESOURCE_USED", @@ -44876,6 +70517,7 @@ "NOT_CRITICAL_ERROR", "NO_RESULTS_ON_PAGE", "PARTIAL_SUCCESS", + "QUOTA_INFO_UNAVAILABLE", "REQUIRED_TOS_AGREEMENT", "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", "RESOURCE_NOT_DELETED", @@ -44912,46 +70554,48 @@ false, false, false, + false, false ], "enumDescriptions": [ - "Warning about failed cleanup of transient changes made by a failed operation.", + "Warning about failed cleanup of transient changes made by a failed\noperation.", "A link to a deprecated resource was created.", - "When deploying and at least one of the resources has a type marked as deprecated", + "When deploying and at least one of the resources has a type marked as\ndeprecated", "The user created a boot disk that is larger than image size.", - "When deploying and at least one of the resources has a type marked as experimental", + "When deploying and at least one of the resources has a type marked as\nexperimental", "Warning that is present in an external api call", - "Warning that value of a field has been overridden. Deprecated unused field.", + "Warning that value of a field has been overridden.\nDeprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", - "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is\nnot of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", - "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", + "Resource can't be retrieved due to list overhead quota exceed\nwhich captures the amount of resources filtered out by\nuser-defined list filter.", "A resource depends on a missing type", - "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's nextHopIp address is not assigned to an instance on the\nnetwork.", "The route's next hop instance cannot ip forward.", - "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not have an\nipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", - "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that is not on the\nsame network as the route.", "The route's next hop instance does not have a status of RUNNING.", - "Error which is not critical. We decided to continue the process despite the mentioned error.", + "Error which is not critical. We decided to continue the process despite\nthe mentioned error.", "No results are present on a particular list page.", "Success is reported, but some results may be missing due to errors", - "The user attempted to use a resource that requires a TOS they have not accepted.", + "Quota information is not available to client requests (e.g:\nregions.list).", + "The user attempted to use a resource that requires a TOS they have not\naccepted.", "Warning that a resource is in use.", - "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "One or more of the resources set to auto-delete could not be deleted\nbecause they were in use.", "When a resource schema validation is ignored.", - "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", + "Instance template used in instance group manager is valid as such, but\nits application does not make a lot of sense, because it allows only\nsingle instance in instance group.", "When undeclared properties in the schema are present", "A given scope cannot be reached." ], "type": "string" }, "data": { - "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", + "description": "[Output Only] Metadata about this warning in key:\nvalue format. For example:\n\n\"data\": [\n {\n \"key\": \"scope\",\n \"value\": \"zones/us-east1-d\"\n }", "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).", + "description": "[Output Only] A key that provides more detail on the warning being\nreturned. For example, for warnings where there are no results in a list\nrequest for a particular zone, this key might be scope and\nthe key value might be the zone name. Other examples might be a key\nindicating a deprecated resource and a suggested replacement, or a\nwarning about invalid network settings (for example, if an instance\nattempts to perform IP forwarding but is not enabled for IP forwarding).", "type": "string" }, "value": { @@ -44973,215 +70617,21 @@ }, "type": "object" }, - "FileContentBuffer": { - "id": "FileContentBuffer", - "properties": { - "content": { - "description": "The raw content in the secure keys file.", - "format": "byte", - "type": "string" - }, - "fileType": { - "description": "The file type of source file.", - "enum": [ - "BIN", - "UNDEFINED", - "X509" - ], - "enumDescriptions": [ - "", - "", - "" - ], - "type": "string" - } - }, - "type": "object" - }, - "Firewall": { - "description": "Represents a Firewall Rule resource. Firewall rules allow or deny ingress traffic to, and egress traffic from your instances. For more information, read Firewall rules.", - "id": "Firewall", - "properties": { - "allowed": { - "description": "The list of ALLOW rules specified by this firewall. Each rule specifies a protocol and port-range tuple that describes a permitted connection.", - "items": { - "properties": { - "IPProtocol": { - "description": "The IP protocol to which this rule applies. The protocol type is required when creating a firewall rule. This value can either be one of the following well known protocol strings (tcp, udp, icmp, esp, ah, ipip, sctp) or the IP protocol number.", - "type": "string" - }, - "ports": { - "description": "An optional list of ports to which this rule applies. This field is only applicable for the UDP or TCP protocol. Each entry must be either an integer or a range. If not specified, this rule applies to connections through any port. Example inputs include: [\"22\"], [\"80\",\"443\"], and [\"12345-12349\"].", - "items": { - "type": "string" - }, - "type": "array" - } - }, - "type": "object" - }, - "type": "array" - }, - "creationTimestamp": { - "description": "[Output Only] Creation timestamp in RFC3339 text format.", - "type": "string" - }, - "denied": { - "description": "The list of DENY rules specified by this firewall. Each rule specifies a protocol and port-range tuple that describes a denied connection.", - "items": { - "properties": { - "IPProtocol": { - "description": "The IP protocol to which this rule applies. The protocol type is required when creating a firewall rule. This value can either be one of the following well known protocol strings (tcp, udp, icmp, esp, ah, ipip, sctp) or the IP protocol number.", - "type": "string" - }, - "ports": { - "description": "An optional list of ports to which this rule applies. This field is only applicable for the UDP or TCP protocol. Each entry must be either an integer or a range. If not specified, this rule applies to connections through any port. Example inputs include: [\"22\"], [\"80\",\"443\"], and [\"12345-12349\"].", - "items": { - "type": "string" - }, - "type": "array" - } - }, - "type": "object" - }, - "type": "array" - }, - "description": { - "description": "An optional description of this resource. Provide this field when you create the resource.", - "type": "string" - }, - "destinationRanges": { - "description": "If destination ranges are specified, the firewall rule applies only to traffic that has destination IP address in these ranges. These ranges must be expressed in CIDR format. Both IPv4 and IPv6 are supported.", - "items": { - "type": "string" - }, - "type": "array" - }, - "direction": { - "description": "Direction of traffic to which this firewall applies, either `INGRESS` or `EGRESS`. The default is `INGRESS`. For `EGRESS` traffic, you cannot specify the sourceTags fields.", - "enum": [ - "EGRESS", - "INGRESS" - ], - "enumDescriptions": [ - "Indicates that firewall should apply to outgoing traffic.", - "Indicates that firewall should apply to incoming traffic." - ], - "type": "string" - }, - "disabled": { - "description": "Denotes whether the firewall rule is disabled. When set to true, the firewall rule is not enforced and the network behaves as if it did not exist. If this is unspecified, the firewall rule will be enabled.", - "type": "boolean" - }, - "id": { - "description": "[Output Only] The unique identifier for the resource. This identifier is defined by the server.", - "format": "uint64", - "type": "string" - }, - "kind": { - "default": "compute#firewall", - "description": "[Output Only] Type of the resource. Always compute#firewall for firewall rules.", - "type": "string" - }, - "logConfig": { - "$ref": "FirewallLogConfig", - "description": "This field denotes the logging options for a particular firewall rule. If logging is enabled, logs will be exported to Cloud Logging." - }, - "name": { - "annotations": { - "required": [ - "compute.firewalls.insert", - "compute.firewalls.patch" - ] - }, - "description": "Name of the resource; provided by the client when the resource is created. The name must be 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters long and match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?`. The first character must be a lowercase letter, and all following characters (except for the last character) must be a dash, lowercase letter, or digit. The last character must be a lowercase letter or digit.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "type": "string" - }, - "network": { - "description": "URL of the network resource for this firewall rule. If not specified when creating a firewall rule, the default network is used: global/networks/default If you choose to specify this field, you can specify the network as a full or partial URL. For example, the following are all valid URLs: - https://www.googleapis.com/compute/v1/projects/myproject/global/networks/my-network - projects/myproject/global/networks/my-network - global/networks/default ", - "type": "string" - }, - "priority": { - "description": "Priority for this rule. This is an integer between `0` and `65535`, both inclusive. The default value is `1000`. Relative priorities determine which rule takes effect if multiple rules apply. Lower values indicate higher priority. For example, a rule with priority `0` has higher precedence than a rule with priority `1`. DENY rules take precedence over ALLOW rules if they have equal priority. Note that VPC networks have implied rules with a priority of `65535`. To avoid conflicts with the implied rules, use a priority number less than `65535`.", - "format": "int32", - "type": "integer" - }, - "selfLink": { - "description": "[Output Only] Server-defined URL for the resource.", - "type": "string" - }, - "sourceRanges": { - "description": "If source ranges are specified, the firewall rule applies only to traffic that has a source IP address in these ranges. These ranges must be expressed in CIDR format. One or both of sourceRanges and sourceTags may be set. If both fields are set, the rule applies to traffic that has a source IP address within sourceRanges OR a source IP from a resource with a matching tag listed in the sourceTags field. The connection does not need to match both fields for the rule to apply. Both IPv4 and IPv6 are supported.", - "items": { - "type": "string" - }, - "type": "array" - }, - "sourceServiceAccounts": { - "description": "If source service accounts are specified, the firewall rules apply only to traffic originating from an instance with a service account in this list. Source service accounts cannot be used to control traffic to an instance's external IP address because service accounts are associated with an instance, not an IP address. sourceRanges can be set at the same time as sourceServiceAccounts. If both are set, the firewall applies to traffic that has a source IP address within the sourceRanges OR a source IP that belongs to an instance with service account listed in sourceServiceAccount. The connection does not need to match both fields for the firewall to apply. sourceServiceAccounts cannot be used at the same time as sourceTags or targetTags.", - "items": { - "type": "string" - }, - "type": "array" - }, - "sourceTags": { - "description": "If source tags are specified, the firewall rule applies only to traffic with source IPs that match the primary network interfaces of VM instances that have the tag and are in the same VPC network. Source tags cannot be used to control traffic to an instance's external IP address, it only applies to traffic between instances in the same virtual network. Because tags are associated with instances, not IP addresses. One or both of sourceRanges and sourceTags may be set. If both fields are set, the firewall applies to traffic that has a source IP address within sourceRanges OR a source IP from a resource with a matching tag listed in the sourceTags field. The connection does not need to match both fields for the firewall to apply.", - "items": { - "type": "string" - }, - "type": "array" - }, - "targetServiceAccounts": { - "description": "A list of service accounts indicating sets of instances located in the network that may make network connections as specified in allowed[]. targetServiceAccounts cannot be used at the same time as targetTags or sourceTags. If neither targetServiceAccounts nor targetTags are specified, the firewall rule applies to all instances on the specified network.", - "items": { - "type": "string" - }, - "type": "array" - }, - "targetTags": { - "description": "A list of tags that controls which instances the firewall rule applies to. If targetTags are specified, then the firewall rule applies only to instances in the VPC network that have one of those tags. If no targetTags are specified, the firewall rule applies to all instances on the specified network.", - "items": { - "type": "string" - }, - "type": "array" - } - }, - "type": "object" - }, - "FirewallList": { - "description": "Contains a list of firewalls.", - "id": "FirewallList", + "InstanceTemplatesScopedList": { + "id": "InstanceTemplatesScopedList", "properties": { - "id": { - "description": "[Output Only] Unique identifier for the resource; defined by the server.", - "type": "string" - }, - "items": { - "description": "A list of Firewall resources.", + "instanceTemplates": { + "description": "[Output Only] A list of instance templates that are contained within\nthe specified project and zone.", "items": { - "$ref": "Firewall" + "$ref": "InstanceTemplate" }, "type": "array" }, - "kind": { - "default": "compute#firewallList", - "description": "[Output Only] Type of resource. Always compute#firewallList for lists of firewalls.", - "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" - }, - "selfLink": { - "description": "[Output Only] Server-defined URL for this resource.", - "type": "string" - }, "warning": { - "description": "[Output Only] Informational warning message.", + "description": "[Output Only] An informational warning that replaces the list of instance\ntemplates when the list is empty.", "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.", + "description": "[Output Only] A warning code, if applicable. For example, Compute\nEngine returns NO_RESULTS_ON_PAGE if there\nare no results in the response.", "enum": [ "CLEANUP_FAILED", "DEPRECATED_RESOURCE_USED", @@ -45204,6 +70654,7 @@ "NOT_CRITICAL_ERROR", "NO_RESULTS_ON_PAGE", "PARTIAL_SUCCESS", + "QUOTA_INFO_UNAVAILABLE", "REQUIRED_TOS_AGREEMENT", "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", "RESOURCE_NOT_DELETED", @@ -45240,46 +70691,48 @@ false, false, false, + false, false ], "enumDescriptions": [ - "Warning about failed cleanup of transient changes made by a failed operation.", + "Warning about failed cleanup of transient changes made by a failed\noperation.", "A link to a deprecated resource was created.", - "When deploying and at least one of the resources has a type marked as deprecated", + "When deploying and at least one of the resources has a type marked as\ndeprecated", "The user created a boot disk that is larger than image size.", - "When deploying and at least one of the resources has a type marked as experimental", + "When deploying and at least one of the resources has a type marked as\nexperimental", "Warning that is present in an external api call", - "Warning that value of a field has been overridden. Deprecated unused field.", + "Warning that value of a field has been overridden.\nDeprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", - "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is\nnot of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", - "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", + "Resource can't be retrieved due to list overhead quota exceed\nwhich captures the amount of resources filtered out by\nuser-defined list filter.", "A resource depends on a missing type", - "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's nextHopIp address is not assigned to an instance on the\nnetwork.", "The route's next hop instance cannot ip forward.", - "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not have an\nipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", - "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that is not on the\nsame network as the route.", "The route's next hop instance does not have a status of RUNNING.", - "Error which is not critical. We decided to continue the process despite the mentioned error.", + "Error which is not critical. We decided to continue the process despite\nthe mentioned error.", "No results are present on a particular list page.", "Success is reported, but some results may be missing due to errors", - "The user attempted to use a resource that requires a TOS they have not accepted.", + "Quota information is not available to client requests (e.g:\nregions.list).", + "The user attempted to use a resource that requires a TOS they have not\naccepted.", "Warning that a resource is in use.", - "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "One or more of the resources set to auto-delete could not be deleted\nbecause they were in use.", "When a resource schema validation is ignored.", - "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", + "Instance template used in instance group manager is valid as such, but\nits application does not make a lot of sense, because it allows only\nsingle instance in instance group.", "When undeclared properties in the schema are present", "A given scope cannot be reached." ], "type": "string" }, "data": { - "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", + "description": "[Output Only] Metadata about this warning in key:\nvalue format. For example:\n\n\"data\": [\n {\n \"key\": \"scope\",\n \"value\": \"zones/us-east1-d\"\n }", "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).", + "description": "[Output Only] A key that provides more detail on the warning being\nreturned. For example, for warnings where there are no results in a list\nrequest for a particular zone, this key might be scope and\nthe key value might be the zone name. Other examples might be a key\nindicating a deprecated resource and a suggested replacement, or a\nwarning about invalid network settings (for example, if an instance\nattempts to perform IP forwarding but is not enabled for IP forwarding).", "type": "string" }, "value": { @@ -45301,182 +70754,246 @@ }, "type": "object" }, - "FirewallLogConfig": { - "description": "The available logging options for a firewall rule.", - "id": "FirewallLogConfig", + "InstanceWithNamedPorts": { + "id": "InstanceWithNamedPorts", "properties": { - "enable": { - "description": "This field denotes whether to enable logging for a particular firewall rule.", - "type": "boolean" + "instance": { + "description": "Output only. [Output Only] The URL of the instance.", + "readOnly": true, + "type": "string" }, - "metadata": { - "description": "This field can only be specified for a particular firewall rule if logging is enabled for that rule. This field denotes whether to include or exclude metadata for firewall logs.", + "namedPorts": { + "description": "Output only. [Output Only] The named ports that belong to this instance group.", + "items": { + "$ref": "NamedPort" + }, + "readOnly": true, + "type": "array" + }, + "status": { + "description": "Output only. [Output Only] The status of the instance.", "enum": [ - "EXCLUDE_ALL_METADATA", - "INCLUDE_ALL_METADATA" + "DEPROVISIONING", + "PENDING", + "PROVISIONING", + "REPAIRING", + "RUNNING", + "STAGING", + "STOPPED", + "STOPPING", + "SUSPENDED", + "SUSPENDING", + "TERMINATED" ], "enumDescriptions": [ - "", - "" + "The instance is halted and we are performing tear down tasks like network\ndeprogramming, releasing quota, IP, tearing down disks etc.", + "For Flex Start provisioning instance is waiting for available capacity\nfrom Dynamic Workload Scheduler (DWS).", + "Resources are being allocated for the instance.", + "The instance is in repair.", + "The instance is running.", + "All required resources have been allocated and the instance\nis being started.", + "The instance has stopped successfully.", + "The instance is currently stopping (either being deleted or killed).", + "The instance has suspended.", + "The instance is suspending.", + "The instance has stopped (either by explicit action or underlying\nfailure)." ], + "readOnly": true, "type": "string" } }, "type": "object" }, - "FirewallPoliciesListAssociationsResponse": { - "id": "FirewallPoliciesListAssociationsResponse", + "InstancesAddResourcePoliciesRequest": { + "id": "InstancesAddResourcePoliciesRequest", "properties": { - "associations": { - "description": "A list of associations.", + "resourcePolicies": { + "description": "Resource policies to be added to this instance.", "items": { - "$ref": "FirewallPolicyAssociation" + "type": "string" }, "type": "array" - }, - "kind": { - "default": "compute#firewallPoliciesListAssociationsResponse", - "description": "[Output Only] Type of firewallPolicy associations. Always compute#FirewallPoliciesListAssociations for lists of firewallPolicy associations.", - "type": "string" } }, "type": "object" }, - "FirewallPolicy": { - "description": "Represents a Firewall Policy resource.", - "id": "FirewallPolicy", + "InstancesBulkInsertOperationMetadata": { + "id": "InstancesBulkInsertOperationMetadata", "properties": { - "associations": { - "description": "A list of associations that belong to this firewall policy.", + "perLocationStatus": { + "additionalProperties": { + "$ref": "BulkInsertOperationStatus" + }, + "description": "Status information per location (location name is key).\nExample key: zones/us-central1-a", + "type": "object" + } + }, + "type": "object" + }, + "InstancesGetEffectiveFirewallsResponse": { + "id": "InstancesGetEffectiveFirewallsResponse", + "properties": { + "firewallPolicys": { + "description": "[Output Only] Effective firewalls from firewall policies.", "items": { - "$ref": "FirewallPolicyAssociation" + "$ref": "InstancesGetEffectiveFirewallsResponseEffectiveFirewallPolicy" }, "type": "array" }, - "creationTimestamp": { - "description": "[Output Only] Creation timestamp in RFC3339 text format.", - "type": "string" - }, - "description": { - "description": "An optional description of this resource. Provide this property when you create the resource.", - "type": "string" - }, + "firewalls": { + "description": "Effective firewalls on the instance.", + "items": { + "$ref": "Firewall" + }, + "type": "array" + } + }, + "type": "object" + }, + "InstancesGetEffectiveFirewallsResponseEffectiveFirewallPolicy": { + "id": "InstancesGetEffectiveFirewallsResponseEffectiveFirewallPolicy", + "properties": { "displayName": { "deprecated": true, - "description": "Deprecated, please use short name instead. User-provided name of the Organization firewall policy. The name should be unique in the organization in which the firewall policy is created. This field is not applicable to network firewall policies. This name must be set on creation and cannot be changed. 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" - }, - "fingerprint": { - "description": "Specifies a fingerprint for this resource, which is essentially a hash of the metadata's contents and used for optimistic locking. The fingerprint is initially generated by Compute Engine and changes after every request to modify or update metadata. You must always provide an up-to-date fingerprint hash in order to update or change metadata, otherwise the request will fail with error 412 conditionNotMet. To see the latest fingerprint, make get() request to the firewall policy.", - "format": "byte", - "type": "string" - }, - "id": { - "description": "[Output Only] The unique identifier for the resource. This identifier is defined by the server.", - "format": "uint64", - "type": "string" - }, - "kind": { - "default": "compute#firewallPolicy", - "description": "[Output only] Type of the resource. Always compute#firewallPolicyfor firewall policies", + "description": "Output only. [Output Only] Deprecated, please use short name instead. The display name\nof the firewall policy.", + "readOnly": true, "type": "string" }, "name": { - "description": "Name of the resource. For Organization Firewall Policies it's a [Output Only] numeric ID allocated by Google Cloud which uniquely identifies the Organization Firewall Policy.", - "type": "string" - }, - "parent": { - "description": "[Output Only] The parent of the firewall policy. This field is not applicable to network firewall policies.", + "description": "Output only. [Output Only] The name of the firewall policy.", + "readOnly": true, "type": "string" }, - "region": { - "description": "[Output Only] URL of the region where the regional firewall policy resides. This field is not applicable to global firewall policies. You must specify this field as part of the HTTP request URL. It is not settable as a field in the request body.", - "type": "string" + "packetMirroringRules": { + "description": "Output only. [Output Only] The packet mirroring rules that apply to the instance.", + "items": { + "$ref": "FirewallPolicyRule" + }, + "readOnly": true, + "type": "array" }, - "ruleTupleCount": { - "description": "[Output Only] Total count of all firewall policy rule tuples. A firewall policy can not exceed a set number of tuples.", + "priority": { + "description": "Output only. [Output only] Priority of firewall policy association. Not applicable for\ntype=HIERARCHY.", "format": "int32", + "readOnly": true, "type": "integer" }, "rules": { - "description": "A list of rules that belong to this policy. There must always be a default rule (rule with priority 2147483647 and match \"*\"). If no rules are provided when creating a firewall policy, a default rule with action \"allow\" will be added.", + "description": "[Output Only] The rules that apply to the instance. Only rules that\ntarget the specific VM instance are returned if target service accounts\nor target secure tags are specified in the rules.", "items": { "$ref": "FirewallPolicyRule" }, "type": "array" }, - "selfLink": { - "description": "[Output Only] Server-defined URL for the resource.", - "type": "string" - }, - "selfLinkWithId": { - "description": "[Output Only] Server-defined URL for this resource with the resource id.", + "shortName": { + "description": "Output only. [Output Only] The short name of the firewall policy.", + "readOnly": true, "type": "string" }, - "shortName": { - "description": "User-provided name of the Organization firewall policy. The name should be unique in the organization in which the firewall policy is created. This field is not applicable to network firewall policies. This name must be set on creation and cannot be changed. 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": { + "description": "Output only. [Output Only] The type of the firewall policy. Can be one of HIERARCHY,\nNETWORK, NETWORK_REGIONAL, SYSTEM_GLOBAL, SYSTEM_REGIONAL.", + "enum": [ + "HIERARCHY", + "NETWORK", + "NETWORK_REGIONAL", + "SYSTEM_GLOBAL", + "SYSTEM_REGIONAL", + "UNSPECIFIED" + ], + "enumDescriptions": [ + "", + "", + "", + "", + "", + "" + ], + "readOnly": true, "type": "string" } }, "type": "object" }, - "FirewallPolicyAssociation": { - "id": "FirewallPolicyAssociation", + "InstancesRemoveResourcePoliciesRequest": { + "id": "InstancesRemoveResourcePoliciesRequest", "properties": { - "attachmentTarget": { - "description": "The target that the firewall policy is attached to.", - "type": "string" - }, - "displayName": { - "deprecated": true, - "description": "[Output Only] Deprecated, please use short name instead. The display name of the firewall policy of the association.", - "type": "string" - }, - "firewallPolicyId": { - "description": "[Output Only] The firewall policy ID of the association.", - "type": "string" - }, - "name": { - "description": "The name for an association.", - "type": "string" - }, - "shortName": { - "description": "[Output Only] The short name of the firewall policy of the association.", - "type": "string" + "resourcePolicies": { + "description": "Resource policies to be removed from this instance.", + "items": { + "type": "string" + }, + "type": "array" } }, "type": "object" }, - "FirewallPolicyList": { - "id": "FirewallPolicyList", + "InstancesReportHostAsFaultyRequest": { + "id": "InstancesReportHostAsFaultyRequest", "properties": { - "id": { - "description": "[Output Only] Unique identifier for the resource; defined by the server.", + "disruptionSchedule": { + "description": "The disruption schedule for the VM. Required field, only allows IMMEDIATE.", + "enum": [ + "DISRUPTION_SCHEDULE_UNSPECIFIED", + "FUTURE", + "IMMEDIATE" + ], + "enumDescriptions": [ + "Not used. Required as per aip/126.", + "Delay disruption for caller control. Will be default soon.", + "Default value. Disrupt the VM immediately." + ], "type": "string" }, - "items": { - "description": "A list of FirewallPolicy resources.", + "faultReasons": { "items": { - "$ref": "FirewallPolicy" + "$ref": "InstancesReportHostAsFaultyRequestFaultReason" }, "type": "array" - }, - "kind": { - "default": "compute#firewallPolicyList", - "description": "[Output Only] Type of resource. Always compute#firewallPolicyList for listsof FirewallPolicies", + } + }, + "type": "object" + }, + "InstancesReportHostAsFaultyRequestFaultReason": { + "id": "InstancesReportHostAsFaultyRequestFaultReason", + "properties": { + "behavior": { + "enum": [ + "BEHAVIOR_UNSPECIFIED", + "CHIP_ERROR", + "PERFORMANCE", + "SILENT_DATA_CORRUPTION", + "UNRECOVERABLE_GPU_ERROR" + ], + "enumDescriptions": [ + "Public reportable behaviors", + "Any GPU or TPU errors or faults where the accelerator becomes unusable", + "", + "", + "Unrecoverable GPU error identified by an XID" + ], "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.", + "description": { "type": "string" + } + }, + "type": "object" + }, + "InstancesScopedList": { + "id": "InstancesScopedList", + "properties": { + "instances": { + "description": "[Output Only] A list of instances contained in this scope.", + "items": { + "$ref": "Instance" + }, + "type": "array" }, "warning": { - "description": "[Output Only] Informational warning message.", + "description": "[Output Only] Informational warning which replaces the list of instances\nwhen the list is empty.", "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.", + "description": "[Output Only] A warning code, if applicable. For example, Compute\nEngine returns NO_RESULTS_ON_PAGE if there\nare no results in the response.", "enum": [ "CLEANUP_FAILED", "DEPRECATED_RESOURCE_USED", @@ -45499,6 +71016,7 @@ "NOT_CRITICAL_ERROR", "NO_RESULTS_ON_PAGE", "PARTIAL_SUCCESS", + "QUOTA_INFO_UNAVAILABLE", "REQUIRED_TOS_AGREEMENT", "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", "RESOURCE_NOT_DELETED", @@ -45535,46 +71053,48 @@ false, false, false, + false, false ], "enumDescriptions": [ - "Warning about failed cleanup of transient changes made by a failed operation.", + "Warning about failed cleanup of transient changes made by a failed\noperation.", "A link to a deprecated resource was created.", - "When deploying and at least one of the resources has a type marked as deprecated", + "When deploying and at least one of the resources has a type marked as\ndeprecated", "The user created a boot disk that is larger than image size.", - "When deploying and at least one of the resources has a type marked as experimental", + "When deploying and at least one of the resources has a type marked as\nexperimental", "Warning that is present in an external api call", - "Warning that value of a field has been overridden. Deprecated unused field.", + "Warning that value of a field has been overridden.\nDeprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", - "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is\nnot of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", - "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", + "Resource can't be retrieved due to list overhead quota exceed\nwhich captures the amount of resources filtered out by\nuser-defined list filter.", "A resource depends on a missing type", - "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's nextHopIp address is not assigned to an instance on the\nnetwork.", "The route's next hop instance cannot ip forward.", - "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not have an\nipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", - "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that is not on the\nsame network as the route.", "The route's next hop instance does not have a status of RUNNING.", - "Error which is not critical. We decided to continue the process despite the mentioned error.", + "Error which is not critical. We decided to continue the process despite\nthe mentioned error.", "No results are present on a particular list page.", "Success is reported, but some results may be missing due to errors", - "The user attempted to use a resource that requires a TOS they have not accepted.", + "Quota information is not available to client requests (e.g:\nregions.list).", + "The user attempted to use a resource that requires a TOS they have not\naccepted.", "Warning that a resource is in use.", - "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "One or more of the resources set to auto-delete could not be deleted\nbecause they were in use.", "When a resource schema validation is ignored.", - "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", + "Instance template used in instance group manager is valid as such, but\nits application does not make a lot of sense, because it allows only\nsingle instance in instance group.", "When undeclared properties in the schema are present", "A given scope cannot be reached." ], "type": "string" }, "data": { - "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", + "description": "[Output Only] Metadata about this warning in key:\nvalue format. For example:\n\n\"data\": [\n {\n \"key\": \"scope\",\n \"value\": \"zones/us-east1-d\"\n }", "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).", + "description": "[Output Only] A key that provides more detail on the warning being\nreturned. For example, for warnings where there are no results in a list\nrequest for a particular zone, this key might be scope and\nthe key value might be the zone name. Other examples might be a key\nindicating a deprecated resource and a suggested replacement, or a\nwarning about invalid network settings (for example, if an instance\nattempts to perform IP forwarding but is not enabled for IP forwarding).", "type": "string" }, "value": { @@ -45591,198 +71111,101 @@ "type": "string" } }, - "type": "object" + "type": "object" + } + }, + "type": "object" + }, + "InstancesSetLabelsRequest": { + "id": "InstancesSetLabelsRequest", + "properties": { + "labelFingerprint": { + "description": "Fingerprint of the previous set of labels for this resource,\nused to prevent conflicts. Provide the latest fingerprint value when making\na request to add or change labels.", + "format": "byte", + "type": "string" + }, + "labels": { + "additionalProperties": { + "type": "string" + }, + "type": "object" + } + }, + "type": "object" + }, + "InstancesSetMachineResourcesRequest": { + "id": "InstancesSetMachineResourcesRequest", + "properties": { + "guestAccelerators": { + "description": "A list of the type and count of accelerator cards attached to the instance.", + "items": { + "$ref": "AcceleratorConfig" + }, + "type": "array" } }, "type": "object" }, - "FirewallPolicyRule": { - "description": "Represents a rule that describes one or more match conditions along with the action to be taken when traffic matches this condition (allow or deny).", - "id": "FirewallPolicyRule", + "InstancesSetMachineTypeRequest": { + "id": "InstancesSetMachineTypeRequest", "properties": { - "action": { - "description": "The Action to perform when the client connection triggers the rule. Valid actions are \"allow\", \"deny\" and \"goto_next\".", - "type": "string" - }, - "description": { - "description": "An optional description for this resource.", - "type": "string" - }, - "direction": { - "description": "The direction in which this rule applies.", - "enum": [ - "EGRESS", - "INGRESS" - ], - "enumDescriptions": [ - "", - "" - ], + "machineType": { + "description": "Full or partial URL of the machine type resource. See Machine Types for a full list of\nmachine types. For example:zones/us-central1-f/machineTypes/n1-standard-1", "type": "string" - }, - "disabled": { - "description": "Denotes whether the firewall policy rule is disabled. When set to true, the firewall policy rule is not enforced and traffic behaves as if it did not exist. If this is unspecified, the firewall policy rule will be enabled.", - "type": "boolean" - }, - "enableLogging": { - "description": "Denotes whether to enable logging for a particular rule. If logging is enabled, logs will be exported to the configured export destination in Stackdriver. Logs may be exported to BigQuery or Pub/Sub. Note: you cannot enable logging on \"goto_next\" rules.", - "type": "boolean" - }, - "kind": { - "default": "compute#firewallPolicyRule", - "description": "[Output only] Type of the resource. Always compute#firewallPolicyRule for firewall policy rules", + } + }, + "type": "object" + }, + "InstancesSetMinCpuPlatformRequest": { + "id": "InstancesSetMinCpuPlatformRequest", + "properties": { + "minCpuPlatform": { + "description": "Minimum cpu/platform this instance should be started at.", "type": "string" - }, - "match": { - "$ref": "FirewallPolicyRuleMatcher", - "description": "A match condition that incoming traffic is evaluated against. If it evaluates to true, the corresponding 'action' is enforced." - }, - "priority": { - "description": "An integer indicating the priority of a rule in the list. The priority must be a positive value between 0 and 2147483647. Rules are evaluated from highest to lowest priority where 0 is the highest priority and 2147483647 is the lowest prority.", - "format": "int32", - "type": "integer" - }, - "ruleName": { - "description": "An optional name for the rule. This field is not a unique identifier and can be updated.", + } + }, + "type": "object" + }, + "InstancesSetNameRequest": { + "id": "InstancesSetNameRequest", + "properties": { + "currentName": { + "description": "The current name of this resource, used to prevent conflicts. Provide the\nlatest name when making a request to change name.", "type": "string" }, - "ruleTupleCount": { - "description": "[Output Only] Calculation of the complexity of a single firewall policy rule.", - "format": "int32", - "type": "integer" - }, - "securityProfileGroup": { - "description": "A fully-qualified URL of a SecurityProfile resource instance. Example: https://networksecurity.googleapis.com/v1/projects/{project}/locations/{location}/securityProfileGroups/my-security-profile-group Must be specified if action = 'apply_security_profile_group' and cannot be specified for other actions.", + "name": { + "description": "The name to be applied to the instance. Needs to be RFC 1035 compliant.", "type": "string" - }, - "targetResources": { - "description": "A list of network resource URLs to which this rule applies. This field allows you to control which network's VMs get this rule. If this field is left blank, all VMs within the organization will receive the rule.", - "items": { - "type": "string" - }, - "type": "array" - }, - "targetSecureTags": { - "description": "A list of secure tags that controls which instances the firewall rule applies to. If targetSecureTag are specified, then the firewall rule applies only to instances in the VPC network that have one of those EFFECTIVE secure tags, if all the target_secure_tag are in INEFFECTIVE state, then this rule will be ignored. targetSecureTag may not be set at the same time as targetServiceAccounts. If neither targetServiceAccounts nor targetSecureTag are specified, the firewall rule applies to all instances on the specified network. Maximum number of target label tags allowed is 256.", - "items": { - "$ref": "FirewallPolicyRuleSecureTag" - }, - "type": "array" - }, - "targetServiceAccounts": { - "description": "A list of service accounts indicating the sets of instances that are applied with this rule.", - "items": { - "type": "string" - }, - "type": "array" - }, - "tlsInspect": { - "description": "Boolean flag indicating if the traffic should be TLS decrypted. Can be set only if action = 'apply_security_profile_group' and cannot be set for other actions.", - "type": "boolean" } }, "type": "object" }, - "FirewallPolicyRuleMatcher": { - "description": "Represents a match condition that incoming traffic is evaluated against. Exactly one field must be specified.", - "id": "FirewallPolicyRuleMatcher", + "InstancesSetSecurityPolicyRequest": { + "id": "InstancesSetSecurityPolicyRequest", "properties": { - "destAddressGroups": { - "description": "Address groups which should be matched against the traffic destination. Maximum number of destination address groups is 10.", - "items": { - "type": "string" - }, - "type": "array" - }, - "destFqdns": { - "description": "Fully Qualified Domain Name (FQDN) which should be matched against traffic destination. Maximum number of destination fqdn allowed is 100.", - "items": { - "type": "string" - }, - "type": "array" - }, - "destIpRanges": { - "description": "CIDR IP address range. Maximum number of destination CIDR IP ranges allowed is 5000.", - "items": { - "type": "string" - }, - "type": "array" - }, - "destRegionCodes": { - "description": "Region codes whose IP addresses will be used to match for destination of traffic. Should be specified as 2 letter country code defined as per ISO 3166 alpha-2 country codes. ex.\"US\" Maximum number of dest region codes allowed is 5000.", - "items": { - "type": "string" - }, - "type": "array" - }, - "destThreatIntelligences": { - "description": "Names of Network Threat Intelligence lists. The IPs in these lists will be matched against traffic destination.", - "items": { - "type": "string" - }, - "type": "array" - }, - "layer4Configs": { - "description": "Pairs of IP protocols and ports that the rule should match.", - "items": { - "$ref": "FirewallPolicyRuleMatcherLayer4Config" - }, - "type": "array" - }, - "srcAddressGroups": { - "description": "Address groups which should be matched against the traffic source. Maximum number of source address groups is 10.", - "items": { - "type": "string" - }, - "type": "array" - }, - "srcFqdns": { - "description": "Fully Qualified Domain Name (FQDN) which should be matched against traffic source. Maximum number of source fqdn allowed is 100.", - "items": { - "type": "string" - }, - "type": "array" - }, - "srcIpRanges": { - "description": "CIDR IP address range. Maximum number of source CIDR IP ranges allowed is 5000.", - "items": { - "type": "string" - }, - "type": "array" - }, - "srcRegionCodes": { - "description": "Region codes whose IP addresses will be used to match for source of traffic. Should be specified as 2 letter country code defined as per ISO 3166 alpha-2 country codes. ex.\"US\" Maximum number of source region codes allowed is 5000.", + "networkInterfaces": { + "description": "The network interfaces that the security policy will be applied to. Network\ninterfaces use the nicN naming format. You can only set a\nsecurity policy for network interfaces with an access config.", "items": { "type": "string" }, "type": "array" }, - "srcSecureTags": { - "description": "List of secure tag values, which should be matched at the source of the traffic. For INGRESS rule, if all the srcSecureTag are INEFFECTIVE, and there is no srcIpRange, this rule will be ignored. Maximum number of source tag values allowed is 256.", - "items": { - "$ref": "FirewallPolicyRuleSecureTag" - }, - "type": "array" - }, - "srcThreatIntelligences": { - "description": "Names of Network Threat Intelligence lists. The IPs in these lists will be matched against traffic source.", - "items": { - "type": "string" - }, - "type": "array" + "securityPolicy": { + "description": "A full or partial URL to a security policy to add to this instance.\nIf this field is set to an empty string it will remove the associated\nsecurity policy.", + "type": "string" } }, "type": "object" }, - "FirewallPolicyRuleMatcherLayer4Config": { - "id": "FirewallPolicyRuleMatcherLayer4Config", + "InstancesSetServiceAccountRequest": { + "id": "InstancesSetServiceAccountRequest", "properties": { - "ipProtocol": { - "description": "The IP protocol to which this rule applies. The protocol type is required when creating a firewall rule. This value can either be one of the following well known protocol strings (tcp, udp, icmp, esp, ah, ipip, sctp), or the IP protocol number.", + "email": { + "description": "Email address of the service account.", "type": "string" }, - "ports": { - "description": "An optional list of ports to which this rule applies. This field is only applicable for UDP or TCP protocol. Each entry must be either an integer or a range. If not specified, this rule applies to connections through any port. Example inputs include: [\"22\"], [\"80\",\"443\"], and [\"12345-12349\"].", + "scopes": { + "description": "The list of scopes to be made available for this service account.", "items": { "type": "string" }, @@ -45791,148 +71214,67 @@ }, "type": "object" }, - "FirewallPolicyRuleSecureTag": { - "id": "FirewallPolicyRuleSecureTag", - "properties": { - "name": { - "description": "Name of the secure tag, created with TagManager's TagValue API.", - "pattern": "tagValues/[0-9]+", - "type": "string" - }, - "state": { - "description": "[Output Only] State of the secure tag, either `EFFECTIVE` or `INEFFECTIVE`. A secure tag is `INEFFECTIVE` when it is deleted or its network is deleted.", - "enum": [ - "EFFECTIVE", - "INEFFECTIVE" - ], - "enumDescriptions": [ - "", - "" - ], - "type": "string" - } - }, - "type": "object" - }, - "FixedOrPercent": { - "description": "Encapsulates numeric value that can be either absolute or relative.", - "id": "FixedOrPercent", + "InstancesStartWithEncryptionKeyRequest": { + "id": "InstancesStartWithEncryptionKeyRequest", "properties": { - "calculated": { - "description": "[Output Only] Absolute value of VM instances calculated based on the specific mode. - If the value is fixed, then the calculated value is equal to the fixed value. - If the value is a percent, then the calculated value is percent/100 * targetSize. For example, the calculated value of a 80% of a managed instance group with 150 instances would be (80/100 * 150) = 120 VM instances. If there is a remainder, the number is rounded. ", - "format": "int32", - "type": "integer" - }, - "fixed": { - "description": "Specifies a fixed number of VM instances. This must be a positive integer.", - "format": "int32", - "type": "integer" - }, - "percent": { - "description": "Specifies a percentage of instances between 0 to 100%, inclusive. For example, specify 80 for 80%.", - "format": "int32", - "type": "integer" + "disks": { + "description": "Array of disks associated with this instance that are protected with acustomer-supplied\nencryption key.\n\nIn order to start the instance, the disk url and its corresponding key must\nbe provided.\n\nIf the disk is not protected with a customer-supplied encryption key it\nshould not be specified.", + "items": { + "$ref": "CustomerEncryptionKeyProtectedDisk" + }, + "type": "array" } }, "type": "object" }, - "ForwardingRule": { - "description": "Represents a Forwarding Rule resource. Forwarding rule resources in Google Cloud can be either regional or global in scope: * [Global](https://cloud.google.com/compute/docs/reference/rest/v1/globalForwardingRules) * [Regional](https://cloud.google.com/compute/docs/reference/rest/v1/forwardingRules) A forwarding rule and its corresponding IP address represent the frontend configuration of a Google Cloud load balancer. Forwarding rules can also reference target instances and Cloud VPN Classic gateways (targetVpnGateway). For more information, read Forwarding rule concepts and Using protocol forwarding.", - "id": "ForwardingRule", + "InstantSnapshot": { + "description": "Represents a InstantSnapshot resource.\n\nYou can use instant snapshots to create disk rollback points quickly..", + "id": "InstantSnapshot", "properties": { - "IPAddress": { - "description": "IP address for which this forwarding rule accepts traffic. When a client sends traffic to this IP address, the forwarding rule directs the traffic to the referenced target or backendService. While creating a forwarding rule, specifying an IPAddress is required under the following circumstances: - When the target is set to targetGrpcProxy and validateForProxyless is set to true, the IPAddress should be set to 0.0.0.0. - When the target is a Private Service Connect Google APIs bundle, you must specify an IPAddress. Otherwise, you can optionally specify an IP address that references an existing static (reserved) IP address resource. When omitted, Google Cloud assigns an ephemeral IP address. Use one of the following formats to specify an IP address while creating a forwarding rule: * IP address number, as in `100.1.2.3` * IPv6 address range, as in `2600:1234::/96` * Full resource URL, as in https://www.googleapis.com/compute/v1/projects/ project_id/regions/region/addresses/address-name * Partial URL or by name, as in: - projects/project_id/regions/region/addresses/address-name - regions/region/addresses/address-name - global/addresses/address-name - address-name The forwarding rule's target or backendService, and in most cases, also the loadBalancingScheme, determine the type of IP address that you can use. For detailed information, see [IP address specifications](https://cloud.google.com/load-balancing/docs/forwarding-rule-concepts#ip_address_specifications). When reading an IPAddress, the API always returns the IP address number.", - "type": "string" - }, - "IPProtocol": { - "description": "The IP protocol to which this rule applies. For protocol forwarding, valid options are TCP, UDP, ESP, AH, SCTP, ICMP and L3_DEFAULT. The valid IP protocols are different for different load balancing products as described in [Load balancing features](https://cloud.google.com/load-balancing/docs/features#protocols_from_the_load_balancer_to_the_backends).", + "architecture": { + "description": "Output only. [Output Only] The architecture of the instant snapshot. Valid values are\nARM64 or X86_64.", "enum": [ - "AH", - "ESP", - "ICMP", - "L3_DEFAULT", - "SCTP", - "TCP", - "UDP" + "ARCHITECTURE_UNSPECIFIED", + "ARM64", + "X86_64" ], "enumDescriptions": [ - "", - "", - "", - "", - "", - "", - "" + "Default value indicating Architecture is not set.", + "Machines with architecture ARM64", + "Machines with architecture X86_64" ], - "type": "string" - }, - "allPorts": { - "description": "The ports, portRange, and allPorts fields are mutually exclusive. Only packets addressed to ports in the specified range will be forwarded to the backends configured with this forwarding rule. The allPorts field has the following limitations: - It requires that the forwarding rule IPProtocol be TCP, UDP, SCTP, or L3_DEFAULT. - It's applicable only to the following products: internal passthrough Network Load Balancers, backend service-based external passthrough Network Load Balancers, and internal and external protocol forwarding. - Set this field to true to allow packets addressed to any port or packets lacking destination port information (for example, UDP fragments after the first fragment) to be forwarded to the backends configured with this forwarding rule. The L3_DEFAULT protocol requires allPorts be set to true. ", - "type": "boolean" - }, - "allowGlobalAccess": { - "description": "If set to true, clients can access the internal passthrough Network Load Balancers, the regional internal Application Load Balancer, and the regional internal proxy Network Load Balancer from all regions. If false, only allows access from the local region the load balancer is located at. Note that for INTERNAL_MANAGED forwarding rules, this field cannot be changed after the forwarding rule is created.", - "type": "boolean" - }, - "allowPscGlobalAccess": { - "description": "This is used in PSC consumer ForwardingRule to control whether the PSC endpoint can be accessed from another region.", - "type": "boolean" - }, - "backendService": { - "description": "Identifies the backend service to which the forwarding rule sends traffic. Required for internal and external passthrough Network Load Balancers; must be omitted for all other load balancer types.", - "type": "string" - }, - "baseForwardingRule": { - "description": "[Output Only] The URL for the corresponding base forwarding rule. By base forwarding rule, we mean the forwarding rule that has the same IP address, protocol, and port settings with the current forwarding rule, but without sourceIPRanges specified. Always empty if the current forwarding rule does not have sourceIPRanges specified.", + "readOnly": true, "type": "string" }, "creationTimestamp": { - "description": "[Output Only] Creation timestamp in RFC3339 text format.", + "description": "Output only. [Output Only] Creation timestamp inRFC3339\ntext format.", + "readOnly": true, "type": "string" }, "description": { - "description": "An optional description of this resource. Provide this property when you create the resource.", + "description": "An optional description of this resource. Provide this property when you\ncreate the resource.", "type": "string" }, - "fingerprint": { - "description": "Fingerprint of this resource. A hash of the contents stored in this object. This field is used in optimistic locking. This field will be ignored when inserting a ForwardingRule. Include the fingerprint in patch request to ensure that you do not overwrite changes that were applied from another concurrent request. To see the latest fingerprint, make a get() request to retrieve a ForwardingRule.", - "format": "byte", + "diskSizeGb": { + "description": "Output only. [Output Only] Size of the source disk, specified in GB.", + "format": "int64", + "readOnly": true, "type": "string" }, "id": { - "description": "[Output Only] The unique identifier for the resource. This identifier is defined by the server.", + "description": "Output only. [Output Only] The unique identifier for the resource. This identifier is\ndefined by the server.", "format": "uint64", + "readOnly": true, "type": "string" }, - "ipCollection": { - "description": "Resource reference of a PublicDelegatedPrefix. The PDP must be a sub-PDP in EXTERNAL_IPV6_FORWARDING_RULE_CREATION mode. Use one of the following formats to specify a sub-PDP when creating an IPv6 NetLB forwarding rule using BYOIP: Full resource URL, as in https://www.googleapis.com/compute/v1/projects/project_id/regions/region /publicDelegatedPrefixes/sub-pdp-name Partial URL, as in: - projects/project_id/regions/region/publicDelegatedPrefixes/sub-pdp-name - regions/region/publicDelegatedPrefixes/sub-pdp-name ", - "type": "string" - }, - "ipVersion": { - "description": "The IP Version that will be used by this forwarding rule. Valid options are IPV4 or IPV6.", - "enum": [ - "IPV4", - "IPV6", - "UNSPECIFIED_VERSION" - ], - "enumDescriptions": [ - "", - "", - "" - ], - "type": "string" - }, - "isMirroringCollector": { - "description": "Indicates whether or not this load balancer can be used as a collector for packet mirroring. To prevent mirroring loops, instances behind this load balancer will not have their traffic mirrored even if a PacketMirroring rule applies to them. This can only be set to true for load balancers that have their loadBalancingScheme set to INTERNAL.", - "type": "boolean" - }, "kind": { - "default": "compute#forwardingRule", - "description": "[Output Only] Type of the resource. Always compute#forwardingRule for forwarding rule resources.", + "default": "compute#instantSnapshot", + "description": "Output only. [Output Only] Type of the resource. Alwayscompute#instantSnapshot for InstantSnapshot resources.", + "readOnly": true, "type": "string" }, "labelFingerprint": { - "description": "A fingerprint for the labels being applied to this resource, which is essentially a hash of the labels set used for optimistic locking. The fingerprint is initially generated by Compute Engine and changes after every request to modify or update labels. You must always provide an up-to-date fingerprint hash in order to update or change labels, otherwise the request will fail with error 412 conditionNotMet. To see the latest fingerprint, make a get() request to retrieve a ForwardingRule.", + "description": "A fingerprint for the labels being applied to this InstantSnapshot, which\nis essentially a hash of the labels set used for optimistic locking. The\nfingerprint is initially generated by Compute Engine and changes after\nevery request to modify or update labels. You must always provide an\nup-to-date fingerprint hash in order to update or change labels,\notherwise the request will fail with error412 conditionNotMet.\n\nTo see the latest fingerprint, make a get() request to\nretrieve a InstantSnapshot.", "format": "byte", "type": "string" }, @@ -45940,144 +71282,96 @@ "additionalProperties": { "type": "string" }, - "description": "Labels for this resource. These can only be added or modified by the setLabels method. Each label key/value pair must comply with RFC1035. Label values may be empty.", + "description": "Labels to apply to this InstantSnapshot. These can be later modified by\nthe setLabels method.\nLabel values may be empty.", "type": "object" }, - "loadBalancingScheme": { - "description": "Specifies the forwarding rule type. For more information about forwarding rules, refer to Forwarding rule concepts.", - "enum": [ - "EXTERNAL", - "EXTERNAL_MANAGED", - "INTERNAL", - "INTERNAL_MANAGED", - "INTERNAL_SELF_MANAGED", - "INVALID" - ], - "enumDescriptions": [ - "", - "", - "", - "", - "", - "" - ], - "type": "string" - }, - "metadataFilters": { - "description": "Opaque filter criteria used by load balancer to restrict routing configuration to a limited set of xDS compliant clients. In their xDS requests to load balancer, xDS clients present node metadata. When there is a match, the relevant configuration is made available to those proxies. Otherwise, all the resources (e.g. TargetHttpProxy, UrlMap) referenced by the ForwardingRule are not visible to those proxies. For each metadataFilter in this list, if its filterMatchCriteria is set to MATCH_ANY, at least one of the filterLabels must match the corresponding label provided in the metadata. If its filterMatchCriteria is set to MATCH_ALL, then all of its filterLabels must match with corresponding labels provided in the metadata. If multiple metadataFilters are specified, all of them need to be satisfied in order to be considered a match. metadataFilters specified here will be applifed before those specified in the UrlMap that this ForwardingRule references. metadataFilters only applies to Loadbalancers that have their loadBalancingScheme set to INTERNAL_SELF_MANAGED.", - "items": { - "$ref": "MetadataFilter" - }, - "type": "array" - }, "name": { - "description": "Name of the resource; provided by the client when the resource is created. The name must be 1-63 characters long, and comply with RFC1035. 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. For Private Service Connect forwarding rules that forward traffic to Google APIs, the forwarding rule name must be a 1-20 characters string with lowercase letters and numbers and must start with a letter.", + "description": "Name of the resource; provided by the client when the resource is created.\nThe name must be 1-63 characters long, and comply withRFC1035.\nSpecifically, the name must be 1-63 characters long and match the regular\nexpression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first\ncharacter must be a lowercase letter, and all following characters must be\na dash, lowercase letter, or digit, except the last character, which cannot\nbe a dash.", "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", "type": "string" }, - "network": { - "description": "This field is not used for global external load balancing. For internal passthrough Network Load Balancers, this field identifies the network that the load balanced IP should belong to for this forwarding rule. If the subnetwork is specified, the network of the subnetwork will be used. If neither subnetwork nor this field is specified, the default network will be used. For Private Service Connect forwarding rules that forward traffic to Google APIs, a network must be provided.", - "type": "string" + "params": { + "$ref": "InstantSnapshotParams", + "description": "Input only. Additional params passed with the request, but not persisted\nas part of resource payload." }, - "networkTier": { - "description": "This signifies the networking tier used for configuring this load balancer and can only take the following values: PREMIUM, STANDARD. For regional ForwardingRule, the valid values are PREMIUM and STANDARD. For GlobalForwardingRule, the valid value is PREMIUM. If this field is not specified, it is assumed to be PREMIUM. If IPAddress is specified, this value must be equal to the networkTier of the Address.", - "enum": [ - "FIXED_STANDARD", - "PREMIUM", - "STANDARD", - "STANDARD_OVERRIDES_FIXED_STANDARD" - ], - "enumDescriptions": [ - "Public internet quality with fixed bandwidth.", - "High quality, Google-grade network tier, support for all networking products.", - "Public internet quality, only limited support for other networking products.", - "(Output only) Temporary tier for FIXED_STANDARD when fixed standard tier is expired or not configured." - ], + "region": { + "description": "Output only. [Output Only] URL of the region where the instant snapshot resides.\nYou must specify this field as part of the HTTP request URL. It is\nnot settable as a field in the request body.", + "readOnly": true, "type": "string" }, - "noAutomateDnsZone": { - "description": "This is used in PSC consumer ForwardingRule to control whether it should try to auto-generate a DNS zone or not. Non-PSC forwarding rules do not use this field. Once set, this field is not mutable.", - "type": "boolean" + "resourceStatus": { + "$ref": "InstantSnapshotResourceStatus", + "description": "Output only. [Output Only] Status information for the instant snapshot resource.", + "readOnly": true }, - "portRange": { - "description": "The ports, portRange, and allPorts fields are mutually exclusive. Only packets addressed to ports in the specified range will be forwarded to the backends configured with this forwarding rule. The portRange field has the following limitations: - It requires that the forwarding rule IPProtocol be TCP, UDP, or SCTP, and - It's applicable only to the following products: external passthrough Network Load Balancers, internal and external proxy Network Load Balancers, internal and external Application Load Balancers, external protocol forwarding, and Classic VPN. - Some products have restrictions on what ports can be used. See port specifications for details. For external forwarding rules, two or more forwarding rules cannot use the same [IPAddress, IPProtocol] pair, and cannot have overlapping portRanges. For internal forwarding rules within the same VPC network, two or more forwarding rules cannot use the same [IPAddress, IPProtocol] pair, and cannot have overlapping portRanges. @pattern: \\\\d+(?:-\\\\d+)?", - "type": "string" + "satisfiesPzi": { + "description": "Output only. Reserved for future use.", + "readOnly": true, + "type": "boolean" }, - "ports": { - "description": "The ports, portRange, and allPorts fields are mutually exclusive. Only packets addressed to ports in the specified range will be forwarded to the backends configured with this forwarding rule. The ports field has the following limitations: - It requires that the forwarding rule IPProtocol be TCP, UDP, or SCTP, and - It's applicable only to the following products: internal passthrough Network Load Balancers, backend service-based external passthrough Network Load Balancers, and internal protocol forwarding. - You can specify a list of up to five ports by number, separated by commas. The ports can be contiguous or discontiguous. For external forwarding rules, two or more forwarding rules cannot use the same [IPAddress, IPProtocol] pair if they share at least one port number. For internal forwarding rules within the same VPC network, two or more forwarding rules cannot use the same [IPAddress, IPProtocol] pair if they share at least one port number. @pattern: \\\\d+(?:-\\\\d+)?", - "items": { - "type": "string" - }, - "type": "array" + "satisfiesPzs": { + "description": "Output only. [Output Only] Reserved for future use.", + "readOnly": true, + "type": "boolean" }, - "pscConnectionId": { - "description": "[Output Only] The PSC connection id of the PSC forwarding rule.", - "format": "uint64", + "selfLink": { + "description": "Output only. [Output Only] Server-defined URL for the resource.", + "readOnly": true, "type": "string" }, - "pscConnectionStatus": { - "enum": [ - "ACCEPTED", - "CLOSED", - "NEEDS_ATTENTION", - "PENDING", - "REJECTED", - "STATUS_UNSPECIFIED" - ], - "enumDescriptions": [ - "The connection has been accepted by the producer.", - "The connection has been closed by the producer and will not serve traffic going forward.", - "The connection has been accepted by the producer, but the producer needs to take further action before the forwarding rule can serve traffic.", - "The connection is pending acceptance by the producer.", - "The connection has been rejected by the producer.", - "" - ], + "selfLinkWithId": { + "description": "Output only. [Output Only] Server-defined URL for this resource's resource id.", + "readOnly": true, "type": "string" }, - "region": { - "description": "[Output Only] URL of the region where the regional forwarding rule resides. This field is not applicable to global forwarding rules. You must specify this field as part of the HTTP request URL. It is not settable as a field in the request body.", + "sourceDisk": { + "description": "URL of the source disk used to create this instant snapshot.\nNote that the source disk must be in the same zone/region as the\ninstant snapshot to be created. This can be a full or valid partial URL.\nFor example, the following are valid values:\n \n \n - \n https://www.googleapis.com/compute/v1/projects/project/zones/zone/disks/disk\n \n - \n https://www.googleapis.com/compute/v1/projects/project/regions/region/disks/disk\n \n - \n projects/project/zones/zone/disks/disk\n \n - \n projects/project/regions/region/disks/disk\n \n - \n zones/zone/disks/disk\n \n - \n regions/region/disks/disk", "type": "string" }, - "selfLink": { - "description": "[Output Only] Server-defined URL for the resource.", + "sourceDiskId": { + "description": "Output only. [Output Only] The ID value of the disk used to create this InstantSnapshot.\nThis value may be used to determine whether the InstantSnapshot\nwas taken from the current or a previous instance of a given disk name.", + "readOnly": true, "type": "string" }, - "serviceDirectoryRegistrations": { - "description": "Service Directory resources to register this forwarding rule with. Currently, only supports a single Service Directory resource.", - "items": { - "$ref": "ForwardingRuleServiceDirectoryRegistration" - }, - "type": "array" - }, - "serviceLabel": { - "description": "An optional prefix to the service name for this forwarding rule. If specified, the prefix is the first label of the fully qualified service name. The label must be 1-63 characters long, and comply with RFC1035. Specifically, the label must be 1-63 characters long and match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash. This field is only used for internal load balancing.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "sourceInstantSnapshotGroup": { + "description": "Output only. [Output Only] URL of the source instant snapshot this instant snapshot is\npart of. Note that the source instant snapshot group must be in the same\nzone/region as the instant snapshot to be created. This can be a full or\nvalid partial URL.", + "readOnly": true, "type": "string" }, - "serviceName": { - "description": "[Output Only] The internal fully qualified service name for this forwarding rule. This field is only used for internal load balancing.", + "sourceInstantSnapshotGroupId": { + "description": "Output only. [Output Only] The ID value of the source instant snapshot group this\nInstantSnapshot is part of. This value may be used to determine whether the\nInstantSnapshot was created as part of an InstantSnapshotGroup creation.", + "readOnly": true, "type": "string" }, - "sourceIpRanges": { - "description": "If not empty, this forwarding rule will only forward the traffic when the source IP address matches one of the IP addresses or CIDR ranges set here. Note that a forwarding rule can only have up to 64 source IP ranges, and this field can only be used with a regional forwarding rule whose scheme is EXTERNAL. Each source_ip_range entry should be either an IP address (for example, 1.2.3.4) or a CIDR range (for example, 1.2.3.0/24).", - "items": { - "type": "string" - }, - "type": "array" - }, - "subnetwork": { - "description": "This field identifies the subnetwork that the load balanced IP should belong to for this forwarding rule, used with internal load balancers and external passthrough Network Load Balancers with IPv6. If the network specified is in auto subnet mode, this field is optional. However, a subnetwork must be specified if the network is in custom subnet mode or when creating external forwarding rule with IPv6.", + "status": { + "description": "Output only. [Output Only] The status of the instantSnapshot. This can beCREATING, DELETING, FAILED, orREADY.", + "enum": [ + "CREATING", + "DELETING", + "FAILED", + "READY", + "UNAVAILABLE" + ], + "enumDescriptions": [ + "InstantSnapshot creation is in progress.", + "InstantSnapshot is currently being deleted.", + "InstantSnapshot creation failed.", + "InstantSnapshot has been created successfully.", + "InstantSnapshot is currently unavailable and cannot be used for\nDisk restoration" + ], + "readOnly": true, "type": "string" }, - "target": { - "description": "The URL of the target resource to receive the matched traffic. For regional forwarding rules, this target must be in the same region as the forwarding rule. For global forwarding rules, this target must be a global load balancing resource. The forwarded traffic must be of a type appropriate to the target object. - For load balancers, see the \"Target\" column in [Port specifications](https://cloud.google.com/load-balancing/docs/forwarding-rule-concepts#ip_address_specifications). - For Private Service Connect forwarding rules that forward traffic to Google APIs, provide the name of a supported Google API bundle: - vpc-sc - APIs that support VPC Service Controls. - all-apis - All supported Google APIs. - For Private Service Connect forwarding rules that forward traffic to managed services, the target must be a service attachment. The target is not mutable once set as a service attachment. ", + "zone": { + "description": "Output only. [Output Only] URL of the zone where the instant snapshot resides.\nYou must specify this field as part of the HTTP request URL. It is\nnot settable as a field in the request body.", + "readOnly": true, "type": "string" } }, "type": "object" }, - "ForwardingRuleAggregatedList": { - "id": "ForwardingRuleAggregatedList", + "InstantSnapshotAggregatedList": { + "id": "InstantSnapshotAggregatedList", "properties": { "id": { "description": "[Output Only] Unique identifier for the resource; defined by the server.", @@ -46085,37 +71379,40 @@ }, "items": { "additionalProperties": { - "$ref": "ForwardingRulesScopedList", - "description": "Name of the scope containing this set of addresses." + "$ref": "InstantSnapshotsScopedList", + "description": "[Output Only] Name of the scope containing this set of instantSnapshots." }, - "description": "A list of ForwardingRulesScopedList resources.", + "description": "A list of InstantSnapshotsScopedList resources.", "type": "object" }, "kind": { - "default": "compute#forwardingRuleAggregatedList", - "description": "[Output Only] Type of resource. Always compute#forwardingRuleAggregatedList for lists of forwarding rules.", + "default": "compute#instantSnapshotAggregatedList", + "description": "Output only. [Output Only] Type of resource. Alwayscompute#instantSnapshotAggregatedList for aggregated lists of\ninstantSnapshots.", + "readOnly": true, "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.", + "description": "[Output Only] This token allows you to get the next page of results for\nlist requests. If the number of results is larger thanmaxResults, use the nextPageToken as a value for\nthe query parameter pageToken in the next list request.\nSubsequent list requests will have their own nextPageToken to\ncontinue paging through the results.", "type": "string" }, "selfLink": { - "description": "[Output Only] Server-defined URL for this resource.", + "description": "Output only. [Output Only] Server-defined URL for this resource.", + "readOnly": true, "type": "string" }, "unreachables": { - "description": "[Output Only] Unreachable resources.", + "description": "Output only. [Output Only] Unreachable resources.", "items": { "type": "string" }, + "readOnly": true, "type": "array" }, "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.", + "description": "[Output Only] A warning code, if applicable. For example, Compute\nEngine returns NO_RESULTS_ON_PAGE if there\nare no results in the response.", "enum": [ "CLEANUP_FAILED", "DEPRECATED_RESOURCE_USED", @@ -46138,6 +71435,7 @@ "NOT_CRITICAL_ERROR", "NO_RESULTS_ON_PAGE", "PARTIAL_SUCCESS", + "QUOTA_INFO_UNAVAILABLE", "REQUIRED_TOS_AGREEMENT", "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", "RESOURCE_NOT_DELETED", @@ -46174,46 +71472,48 @@ false, false, false, + false, false ], "enumDescriptions": [ - "Warning about failed cleanup of transient changes made by a failed operation.", + "Warning about failed cleanup of transient changes made by a failed\noperation.", "A link to a deprecated resource was created.", - "When deploying and at least one of the resources has a type marked as deprecated", + "When deploying and at least one of the resources has a type marked as\ndeprecated", "The user created a boot disk that is larger than image size.", - "When deploying and at least one of the resources has a type marked as experimental", + "When deploying and at least one of the resources has a type marked as\nexperimental", "Warning that is present in an external api call", - "Warning that value of a field has been overridden. Deprecated unused field.", + "Warning that value of a field has been overridden.\nDeprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", - "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is\nnot of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", - "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", + "Resource can't be retrieved due to list overhead quota exceed\nwhich captures the amount of resources filtered out by\nuser-defined list filter.", "A resource depends on a missing type", - "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's nextHopIp address is not assigned to an instance on the\nnetwork.", "The route's next hop instance cannot ip forward.", - "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not have an\nipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", - "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that is not on the\nsame network as the route.", "The route's next hop instance does not have a status of RUNNING.", - "Error which is not critical. We decided to continue the process despite the mentioned error.", + "Error which is not critical. We decided to continue the process despite\nthe mentioned error.", "No results are present on a particular list page.", "Success is reported, but some results may be missing due to errors", - "The user attempted to use a resource that requires a TOS they have not accepted.", + "Quota information is not available to client requests (e.g:\nregions.list).", + "The user attempted to use a resource that requires a TOS they have not\naccepted.", "Warning that a resource is in use.", - "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "One or more of the resources set to auto-delete could not be deleted\nbecause they were in use.", "When a resource schema validation is ignored.", - "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", + "Instance template used in instance group manager is valid as such, but\nits application does not make a lot of sense, because it allows only\nsingle instance in instance group.", "When undeclared properties in the schema are present", "A given scope cannot be reached." ], "type": "string" }, "data": { - "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", + "description": "[Output Only] Metadata about this warning in key:\nvalue format. For example:\n\n\"data\": [\n {\n \"key\": \"scope\",\n \"value\": \"zones/us-east1-d\"\n }", "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).", + "description": "[Output Only] A key that provides more detail on the warning being\nreturned. For example, for warnings where there are no results in a list\nrequest for a particular zone, this key might be scope and\nthe key value might be the zone name. Other examples might be a key\nindicating a deprecated resource and a suggested replacement, or a\nwarning about invalid network settings (for example, if an instance\nattempts to perform IP forwarding but is not enabled for IP forwarding).", "type": "string" }, "value": { @@ -46235,39 +71535,163 @@ }, "type": "object" }, - "ForwardingRuleList": { - "description": "Contains a list of ForwardingRule resources.", - "id": "ForwardingRuleList", + "InstantSnapshotGroup": { + "description": "Represents an InstantSnapshotGroup resource.\n\nAn instant snapshot group is a set of instant snapshots that represents a\npoint in time state of a consistency group.", + "id": "InstantSnapshotGroup", + "properties": { + "creationTimestamp": { + "description": "Output only. [Output Only] Creation timestamp inRFC3339\ntext format.", + "readOnly": true, + "type": "string" + }, + "description": { + "description": "Optional. An optional description of this resource. Provide this property when you\ncreate the resource.", + "type": "string" + }, + "id": { + "description": "Output only. [Output Only] The unique identifier for the resource. This identifier is\ndefined by the server.", + "format": "uint64", + "readOnly": true, + "type": "string" + }, + "kind": { + "default": "compute#instantSnapshotGroup", + "description": "Output only. [Output Only] Type of the resource. Alwayscompute#instantSnapshotGroup for InstantSnapshotGroup\nresources.", + "readOnly": true, + "type": "string" + }, + "name": { + "description": "Identifier. Name of the resource; provided by the client when the resource is created.\nThe name must be 1-63 characters long, and comply withRFC1035.\nSpecifically, the name must be 1-63 characters long and match the regular\nexpression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first\ncharacter must be a lowercase letter, and all following characters must be\na dash, lowercase letter, or digit, except the last character, which cannot\nbe a dash.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "type": "string" + }, + "region": { + "description": "Output only. [Output Only] URL of the region where the instant snapshot group resides.\nYou must specify this field as part of the HTTP request URL. It is\nnot settable as a field in the request body.", + "readOnly": true, + "type": "string" + }, + "resourceStatus": { + "$ref": "InstantSnapshotGroupResourceStatus", + "readOnly": true + }, + "selfLink": { + "description": "Output only. [Output Only] Server-defined URL for the resource.", + "readOnly": true, + "type": "string" + }, + "selfLinkWithId": { + "description": "Output only. [Output Only] Server-defined URL for this resource's resource id.", + "readOnly": true, + "type": "string" + }, + "sourceConsistencyGroup": { + "type": "string" + }, + "status": { + "description": "Output only. [Output Only]", + "enum": [ + "CREATING", + "DELETING", + "FAILED", + "INVALID", + "READY", + "UNKNOWN" + ], + "enumDescriptions": [ + "", + "", + "", + "", + "", + "" + ], + "readOnly": true, + "type": "string" + }, + "zone": { + "description": "Output only. [Output Only] URL of the zone where the instant snapshot group resides.\nYou must specify this field as part of the HTTP request URL. It is\nnot settable as a field in the request body.", + "readOnly": true, + "type": "string" + } + }, + "type": "object" + }, + "InstantSnapshotGroupParameters": { + "id": "InstantSnapshotGroupParameters", + "properties": { + "sourceInstantSnapshotGroup": { + "description": "The source instant snapshot group used to create disks. You can provide\nthis as a partial or full URL to the resource. For example, the following\nare valid values:\n \n \n - https://www.googleapis.com/compute/v1/projects/project/zones/zone/instantSnapshotGroups/instantSnapshotGroup\n - projects/project/zones/zone/instantSnapshotGroups/instantSnapshotGroup\n - zones/zone/instantSnapshotGroups/instantSnapshotGroup", + "type": "string" + } + }, + "type": "object" + }, + "InstantSnapshotGroupResourceStatus": { + "id": "InstantSnapshotGroupResourceStatus", + "properties": { + "consistencyMembershipResolutionTime": { + "description": "Output only. [Output Only]", + "format": "google-datetime", + "readOnly": true, + "type": "string" + }, + "sourceInfo": { + "$ref": "InstantSnapshotGroupSourceInfo", + "description": "Output only. [Output Only]", + "readOnly": true + } + }, + "type": "object" + }, + "InstantSnapshotGroupSourceInfo": { + "id": "InstantSnapshotGroupSourceInfo", + "properties": { + "consistencyGroup": { + "readOnly": true, + "type": "string" + }, + "consistencyGroupId": { + "readOnly": true, + "type": "string" + } + }, + "type": "object" + }, + "InstantSnapshotList": { + "description": "Contains a list of InstantSnapshot resources.", + "id": "InstantSnapshotList", "properties": { "id": { "description": "[Output Only] Unique identifier for the resource; defined by the server.", "type": "string" }, "items": { - "description": "A list of ForwardingRule resources.", + "description": "A list of InstantSnapshot resources.", "items": { - "$ref": "ForwardingRule" + "$ref": "InstantSnapshot" }, "type": "array" }, "kind": { - "default": "compute#forwardingRuleList", - "description": "Type of resource.", + "default": "compute#instantSnapshotList", + "description": "Output only. Type of resource.", + "readOnly": true, "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.", + "description": "[Output Only] This token allows you to get the next page of results for\nlist requests. If the number of results is larger thanmaxResults, use the nextPageToken as a value for\nthe query parameter pageToken in the next list request.\nSubsequent list requests will have their own nextPageToken to\ncontinue paging through the results.", "type": "string" }, "selfLink": { - "description": "[Output Only] Server-defined URL for this resource.", + "description": "Output only. [Output Only] Server-defined URL for this resource.", + "readOnly": true, "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.", + "description": "[Output Only] A warning code, if applicable. For example, Compute\nEngine returns NO_RESULTS_ON_PAGE if there\nare no results in the response.", "enum": [ "CLEANUP_FAILED", "DEPRECATED_RESOURCE_USED", @@ -46290,6 +71714,7 @@ "NOT_CRITICAL_ERROR", "NO_RESULTS_ON_PAGE", "PARTIAL_SUCCESS", + "QUOTA_INFO_UNAVAILABLE", "REQUIRED_TOS_AGREEMENT", "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", "RESOURCE_NOT_DELETED", @@ -46326,46 +71751,48 @@ false, false, false, + false, false ], "enumDescriptions": [ - "Warning about failed cleanup of transient changes made by a failed operation.", + "Warning about failed cleanup of transient changes made by a failed\noperation.", "A link to a deprecated resource was created.", - "When deploying and at least one of the resources has a type marked as deprecated", + "When deploying and at least one of the resources has a type marked as\ndeprecated", "The user created a boot disk that is larger than image size.", - "When deploying and at least one of the resources has a type marked as experimental", + "When deploying and at least one of the resources has a type marked as\nexperimental", "Warning that is present in an external api call", - "Warning that value of a field has been overridden. Deprecated unused field.", + "Warning that value of a field has been overridden.\nDeprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", - "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is\nnot of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", - "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", + "Resource can't be retrieved due to list overhead quota exceed\nwhich captures the amount of resources filtered out by\nuser-defined list filter.", "A resource depends on a missing type", - "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's nextHopIp address is not assigned to an instance on the\nnetwork.", "The route's next hop instance cannot ip forward.", - "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not have an\nipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", - "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that is not on the\nsame network as the route.", "The route's next hop instance does not have a status of RUNNING.", - "Error which is not critical. We decided to continue the process despite the mentioned error.", + "Error which is not critical. We decided to continue the process despite\nthe mentioned error.", "No results are present on a particular list page.", "Success is reported, but some results may be missing due to errors", - "The user attempted to use a resource that requires a TOS they have not accepted.", + "Quota information is not available to client requests (e.g:\nregions.list).", + "The user attempted to use a resource that requires a TOS they have not\naccepted.", "Warning that a resource is in use.", - "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "One or more of the resources set to auto-delete could not be deleted\nbecause they were in use.", "When a resource schema validation is ignored.", - "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", + "Instance template used in instance group manager is valid as such, but\nits application does not make a lot of sense, because it allows only\nsingle instance in instance group.", "When undeclared properties in the schema are present", "A given scope cannot be reached." ], "type": "string" }, "data": { - "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", + "description": "[Output Only] Metadata about this warning in key:\nvalue format. For example:\n\n\"data\": [\n {\n \"key\": \"scope\",\n \"value\": \"zones/us-east1-d\"\n }", "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).", + "description": "[Output Only] A key that provides more detail on the warning being\nreturned. For example, for warnings where there are no results in a list\nrequest for a particular zone, this key might be scope and\nthe key value might be the zone name. Other examples might be a key\nindicating a deprecated resource and a suggested replacement, or a\nwarning about invalid network settings (for example, if an instance\nattempts to perform IP forwarding but is not enabled for IP forwarding).", "type": "string" }, "value": { @@ -46387,49 +71814,46 @@ }, "type": "object" }, - "ForwardingRuleReference": { - "id": "ForwardingRuleReference", + "InstantSnapshotParams": { + "description": "Additional instant snapshot params.", + "id": "InstantSnapshotParams", "properties": { - "forwardingRule": { - "type": "string" + "resourceManagerTags": { + "additionalProperties": { + "type": "string" + }, + "description": "Input only. Resource manager tags to be bound to the instant snapshot. Tag keys and\nvalues have the same definition as resource\nmanager tags. Keys and values can be either in numeric format,\nsuch as `tagKeys/{tag_key_id}` and `tagValues/{tag_value_id}` or in\nnamespaced format such as `{org_id|project_id}/{tag_key_short_name}` and\n`{tag_value_short_name}`. The field is ignored (both PUT \u0026\nPATCH) when empty.", + "type": "object" } }, "type": "object" }, - "ForwardingRuleServiceDirectoryRegistration": { - "description": "Describes the auto-registration of the forwarding rule to Service Directory. The region and project of the Service Directory resource generated from this registration will be the same as this forwarding rule.", - "id": "ForwardingRuleServiceDirectoryRegistration", + "InstantSnapshotResourceStatus": { + "id": "InstantSnapshotResourceStatus", "properties": { - "namespace": { - "description": "Service Directory namespace to register the forwarding rule under.", - "type": "string" - }, - "service": { - "description": "Service Directory service to register the forwarding rule under.", - "type": "string" - }, - "serviceDirectoryRegion": { - "description": "[Optional] Service Directory region to register this global forwarding rule under. Default to \"us-central1\". Only used for PSC for Google APIs. All PSC for Google APIs forwarding rules on the same network should use the same Service Directory region.", + "storageSizeBytes": { + "description": "[Output Only] The storage size of this instant snapshot.", + "format": "int64", "type": "string" } }, "type": "object" }, - "ForwardingRulesScopedList": { - "id": "ForwardingRulesScopedList", + "InstantSnapshotsScopedList": { + "id": "InstantSnapshotsScopedList", "properties": { - "forwardingRules": { - "description": "A list of forwarding rules contained in this scope.", + "instantSnapshots": { + "description": "[Output Only] A list of instantSnapshots contained in this scope.", "items": { - "$ref": "ForwardingRule" + "$ref": "InstantSnapshot" }, "type": "array" }, "warning": { - "description": "Informational warning which replaces the list of forwarding rules when the list is empty.", + "description": "[Output Only] Informational warning which replaces the list of\ninstantSnapshots when the list is empty.", "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.", + "description": "[Output Only] A warning code, if applicable. For example, Compute\nEngine returns NO_RESULTS_ON_PAGE if there\nare no results in the response.", "enum": [ "CLEANUP_FAILED", "DEPRECATED_RESOURCE_USED", @@ -46452,6 +71876,7 @@ "NOT_CRITICAL_ERROR", "NO_RESULTS_ON_PAGE", "PARTIAL_SUCCESS", + "QUOTA_INFO_UNAVAILABLE", "REQUIRED_TOS_AGREEMENT", "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", "RESOURCE_NOT_DELETED", @@ -46488,46 +71913,48 @@ false, false, false, + false, false ], "enumDescriptions": [ - "Warning about failed cleanup of transient changes made by a failed operation.", + "Warning about failed cleanup of transient changes made by a failed\noperation.", "A link to a deprecated resource was created.", - "When deploying and at least one of the resources has a type marked as deprecated", + "When deploying and at least one of the resources has a type marked as\ndeprecated", "The user created a boot disk that is larger than image size.", - "When deploying and at least one of the resources has a type marked as experimental", + "When deploying and at least one of the resources has a type marked as\nexperimental", "Warning that is present in an external api call", - "Warning that value of a field has been overridden. Deprecated unused field.", + "Warning that value of a field has been overridden.\nDeprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", - "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is\nnot of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", - "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", + "Resource can't be retrieved due to list overhead quota exceed\nwhich captures the amount of resources filtered out by\nuser-defined list filter.", "A resource depends on a missing type", - "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's nextHopIp address is not assigned to an instance on the\nnetwork.", "The route's next hop instance cannot ip forward.", - "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not have an\nipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", - "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that is not on the\nsame network as the route.", "The route's next hop instance does not have a status of RUNNING.", - "Error which is not critical. We decided to continue the process despite the mentioned error.", + "Error which is not critical. We decided to continue the process despite\nthe mentioned error.", "No results are present on a particular list page.", "Success is reported, but some results may be missing due to errors", - "The user attempted to use a resource that requires a TOS they have not accepted.", + "Quota information is not available to client requests (e.g:\nregions.list).", + "The user attempted to use a resource that requires a TOS they have not\naccepted.", "Warning that a resource is in use.", - "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "One or more of the resources set to auto-delete could not be deleted\nbecause they were in use.", "When a resource schema validation is ignored.", - "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", + "Instance template used in instance group manager is valid as such, but\nits application does not make a lot of sense, because it allows only\nsingle instance in instance group.", "When undeclared properties in the schema are present", "A given scope cannot be reached." ], "type": "string" }, "data": { - "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", + "description": "[Output Only] Metadata about this warning in key:\nvalue format. For example:\n\n\"data\": [\n {\n \"key\": \"scope\",\n \"value\": \"zones/us-east1-d\"\n }", "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).", + "description": "[Output Only] A key that provides more detail on the warning being\nreturned. For example, for warnings where there are no results in a list\nrequest for a particular zone, this key might be scope and\nthe key value might be the zone name. Other examples might be a key\nindicating a deprecated resource and a suggested replacement, or a\nwarning about invalid network settings (for example, if an instance\nattempts to perform IP forwarding but is not enabled for IP forwarding).", "type": "string" }, "value": { @@ -46549,106 +71976,144 @@ }, "type": "object" }, - "GRPCHealthCheck": { - "id": "GRPCHealthCheck", + "Int64RangeMatch": { + "description": "HttpRouteRuleMatch criteria for field values that must stay\nwithin the specified integer range.", + "id": "Int64RangeMatch", "properties": { - "grpcServiceName": { - "description": "The gRPC service name for the health check. This field is optional. The value of grpc_service_name has the following meanings by convention: - Empty service_name means the overall status of all services at the backend. - Non-empty service_name means the health of that gRPC service, as defined by the owner of the service. The grpc_service_name can only be ASCII.", - "type": "string" - }, - "port": { - "description": "The TCP port number to which the health check prober sends packets. Valid values are 1 through 65535.", - "format": "int32", - "type": "integer" - }, - "portName": { - "description": "Not supported.", + "rangeEnd": { + "description": "The end of the range (exclusive) in signed long integer format.", + "format": "int64", "type": "string" }, - "portSpecification": { - "description": "Specifies how a port is selected for health checking. Can be one of the following values: USE_FIXED_PORT: Specifies a port number explicitly using the port field in the health check. Supported by backend services for passthrough load balancers and backend services for proxy load balancers. Not supported by target pools. The health check supports all backends supported by the backend service provided the backend can be health checked. For example, GCE_VM_IP network endpoint groups, GCE_VM_IP_PORT network endpoint groups, and instance group backends. USE_NAMED_PORT: Not supported. USE_SERVING_PORT: Provides an indirect method of specifying the health check port by referring to the backend service. Only supported by backend services for proxy load balancers. Not supported by target pools. Not supported by backend services for passthrough load balancers. Supports all backends that can be health checked; for example, GCE_VM_IP_PORT network endpoint groups and instance group backends. For GCE_VM_IP_PORT network endpoint group backends, the health check uses the port number specified for each endpoint in the network endpoint group. For instance group backends, the health check uses the port number determined by looking up the backend service's named port in the instance group's list of named ports.", - "enum": [ - "USE_FIXED_PORT", - "USE_NAMED_PORT", - "USE_SERVING_PORT" - ], - "enumDescriptions": [ - "The port number in the health check's port is used for health checking. Applies to network endpoint group and instance group backends.", - "Not supported.", - "For network endpoint group backends, the health check uses the port number specified on each endpoint in the network endpoint group. For instance group backends, the health check uses the port number specified for the backend service's named port defined in the instance group's named ports." - ], + "rangeStart": { + "description": "The start of the range (inclusive) in signed long integer format.", + "format": "int64", "type": "string" } }, "type": "object" }, - "GlobalAddressesMoveRequest": { - "id": "GlobalAddressesMoveRequest", + "Interconnect": { + "description": "Represents an Interconnect resource.\n\nAn Interconnect resource is a dedicated connection between the Google\nCloud network and your on-premises network. For more information, read the\nDedicated Interconnect Overview.", + "id": "Interconnect", "properties": { + "aaiEnabled": { + "description": "Enable or disable the application awareness feature on this Cloud\nInterconnect.", + "type": "boolean" + }, + "adminEnabled": { + "description": "Administrative status of the interconnect. When this is set to true, the\nInterconnect is functional and can carry traffic.\nWhen set to false, no packets can be carried over the interconnect and\nno BGP routes are exchanged over it. By default, the status is set to true.", + "type": "boolean" + }, + "applicationAwareInterconnect": { + "$ref": "InterconnectApplicationAwareInterconnect", + "description": "Configuration information for application awareness on this Cloud\nInterconnect." + }, + "availableFeatures": { + "description": "[Output only] List of features available for this Interconnect connection,\nwhich can take one of the following values:\n \n - IF_MACSEC: If present, then the Interconnect connection is\n provisioned on MACsec capable hardware ports. If not present, then the\n Interconnect connection is provisioned on non-MACsec capable ports. Any\n attempt to enable MACsec will fail.\n - IF_CROSS_SITE_NETWORK: If present, then the Interconnect connection is\n provisioned exclusively for Cross-Site Networking. Any attempt to configure\n VLAN attachments will fail. If not present, then the Interconnect\n connection is not provisioned for Cross-Site Networking. Any attempt to use\n it for Cross-Site Networking will fail.", + "items": { + "enum": [ + "IF_CROSS_SITE_NETWORK", + "IF_L2_FORWARDING", + "IF_MACSEC" + ], + "enumDescriptions": [ + "Cross-Site Networking", + "L2 Interconnect Attachment Forwarding", + "Media Access Control security (MACsec)" + ], + "type": "string" + }, + "type": "array" + }, + "circuitInfos": { + "description": "Output only. [Output Only] A list of CircuitInfo objects, that describe the individual\ncircuits in this LAG.", + "items": { + "$ref": "InterconnectCircuitInfo" + }, + "readOnly": true, + "type": "array" + }, + "creationTimestamp": { + "description": "Output only. [Output Only] Creation timestamp inRFC3339\ntext format.", + "readOnly": true, + "type": "string" + }, + "customerName": { + "description": "Customer name, to put in the Letter of Authorization as the party\nauthorized to request a crossconnect.", + "type": "string" + }, "description": { - "description": "An optional destination address description if intended to be different from the source.", + "description": "An optional description of this resource. Provide this property when you\ncreate the resource.", "type": "string" }, - "destinationAddress": { - "description": "The URL of the destination address to move to. This can be a full or partial URL. For example, the following are all valid URLs to a address: - https://www.googleapis.com/compute/v1/projects/project /global/addresses/address - projects/project/global/addresses/address Note that destination project must be different from the source project. So /global/addresses/address is not valid partial url.", + "effectiveLocation": { + "description": "Output only. URL of the InterconnectLocation object that represents where\nthis connection is to be provisioned. By default it will be the same as the\nlocation field.", + "readOnly": true, "type": "string" - } - }, - "type": "object" - }, - "GlobalNetworkEndpointGroupsAttachEndpointsRequest": { - "id": "GlobalNetworkEndpointGroupsAttachEndpointsRequest", - "properties": { - "networkEndpoints": { - "description": "The list of network endpoints to be attached.", + }, + "expectedOutages": { + "description": "Output only. [Output Only] A list of outages expected for this Interconnect.", "items": { - "$ref": "NetworkEndpoint" + "$ref": "InterconnectOutageNotification" }, + "readOnly": true, "type": "array" - } - }, - "type": "object" - }, - "GlobalNetworkEndpointGroupsDetachEndpointsRequest": { - "id": "GlobalNetworkEndpointGroupsDetachEndpointsRequest", - "properties": { - "networkEndpoints": { - "description": "The list of network endpoints to be detached.", + }, + "googleIpAddress": { + "description": "Output only. [Output Only] IP address configured on the Google side of the Interconnect\nlink. This can be used only for ping tests.", + "readOnly": true, + "type": "string" + }, + "googleReferenceId": { + "description": "Output only. [Output Only] Google reference ID to be used when raising support tickets\nwith Google or otherwise to debug backend connectivity issues.", + "readOnly": true, + "type": "string" + }, + "id": { + "description": "Output only. [Output Only] The unique identifier for the resource. This identifier is\ndefined by the server.", + "format": "uint64", + "readOnly": true, + "type": "string" + }, + "interconnectAttachments": { + "description": "Output only. [Output Only] A list of the URLs of all InterconnectAttachments configured\nto use this Interconnect.", "items": { - "$ref": "NetworkEndpoint" + "type": "string" }, + "readOnly": true, "type": "array" - } - }, - "type": "object" - }, - "GlobalOrganizationSetPolicyRequest": { - "id": "GlobalOrganizationSetPolicyRequest", - "properties": { - "bindings": { - "description": "Flatten Policy to create a backward compatible wire-format. Deprecated. Use 'policy' to specify bindings.", + }, + "interconnectGroups": { + "description": "Output only. [Output Only] URLs of InterconnectGroups that include this Interconnect.\nOrder is arbitrary and items are unique.", "items": { - "$ref": "Binding" + "type": "string" }, + "readOnly": true, "type": "array" }, - "etag": { - "description": "Flatten Policy to create a backward compatible wire-format. Deprecated. Use 'policy' to specify the etag.", - "format": "byte", + "interconnectType": { + "description": "Type of interconnect, which can take one of the following values:\n \n - PARTNER: A partner-managed interconnection shared between customers\n though a partner.\n - DEDICATED: A dedicated physical interconnection with the\n customer.\n\n\nNote that a value IT_PRIVATE has been deprecated in favor of DEDICATED.", + "enum": [ + "DEDICATED", + "IT_PRIVATE", + "PARTNER" + ], + "enumDescriptions": [ + "A dedicated physical interconnection with the customer.", + "[Deprecated] A private, physical interconnection with the customer.", + "A partner-managed interconnection shared between customers via partner." + ], + "type": "string" + }, + "kind": { + "default": "compute#interconnect", + "description": "Output only. [Output Only] Type of the resource. Alwayscompute#interconnect for interconnects.", + "readOnly": true, "type": "string" }, - "policy": { - "$ref": "Policy", - "description": "REQUIRED: The complete policy to be applied to the 'resource'. The size of the policy is limited to a few 10s of KB. An empty policy is in general a valid policy but certain services (like Projects) might reject them." - } - }, - "type": "object" - }, - "GlobalSetLabelsRequest": { - "id": "GlobalSetLabelsRequest", - "properties": { "labelFingerprint": { - "description": "The fingerprint of the previous set of labels for this resource, used to detect conflicts. The fingerprint is initially generated by Compute Engine and changes after every request to modify or update labels. You must always provide an up-to-date fingerprint hash when updating or changing labels, otherwise the request will fail with error 412 conditionNotMet. Make a get() request to the resource to get the latest fingerprint.", + "description": "A fingerprint for the labels being applied to this Interconnect, which\nis essentially a hash of the labels set used for optimistic locking. The\nfingerprint is initially generated by Compute Engine and changes after\nevery request to modify or update labels. You must always provide an\nup-to-date fingerprint hash in order to update or change labels,\notherwise the request will fail with error412 conditionNotMet.\n\nTo see the latest fingerprint, make a get() request to\nretrieve an Interconnect.", "format": "byte", "type": "string" }, @@ -46656,431 +72121,598 @@ "additionalProperties": { "type": "string" }, - "description": "A list of labels to apply for this resource. Each label must comply with the requirements for labels. For example, \"webserver-frontend\": \"images\". A label value can also be empty (e.g. \"my-label\": \"\").", + "description": "Labels for this resource. These can only be added or modified by thesetLabels method. Each label key/value pair must comply withRFC1035.\nLabel values may be empty.", "type": "object" - } - }, - "type": "object" - }, - "GlobalSetPolicyRequest": { - "id": "GlobalSetPolicyRequest", - "properties": { - "bindings": { - "description": "Flatten Policy to create a backward compatible wire-format. Deprecated. Use 'policy' to specify bindings.", - "items": { - "$ref": "Binding" - }, - "type": "array" }, - "etag": { - "description": "Flatten Policy to create a backward compatible wire-format. Deprecated. Use 'policy' to specify the etag.", - "format": "byte", + "linkType": { + "description": "Type of link requested, which can take one of the following values:\n \n - LINK_TYPE_ETHERNET_10G_LR: A 10G Ethernet with LR optics\n - LINK_TYPE_ETHERNET_100G_LR: A 100G Ethernet with LR optics.\n - LINK_TYPE_ETHERNET_400G_LR4: A 400G Ethernet with LR4 optics.\n\n\n Note that this field indicates the speed of each of\nthe links in the bundle, not the speed of the entire bundle.", + "enum": [ + "LINK_TYPE_ETHERNET_100G_LR", + "LINK_TYPE_ETHERNET_10G_LR", + "LINK_TYPE_ETHERNET_400G_LR4" + ], + "enumDescriptions": [ + "100G Ethernet, LR Optics.", + "10G Ethernet, LR Optics.\n[(rate_bps) = 10000000000];", + "400G Ethernet, LR4 Optics." + ], "type": "string" }, - "policy": { - "$ref": "Policy", - "description": "REQUIRED: The complete policy to be applied to the 'resource'. The size of the policy is limited to a few 10s of KB. An empty policy is in general a valid policy but certain services (like Projects) might reject them." - } - }, - "type": "object" - }, - "GuestAttributes": { - "description": "A guest attributes entry.", - "id": "GuestAttributes", - "properties": { - "kind": { - "default": "compute#guestAttributes", - "description": "[Output Only] Type of the resource. Always compute#guestAttributes for guest attributes entry.", + "location": { + "description": "URL of the InterconnectLocation object that represents where this\nconnection is to be provisioned.", "type": "string" }, - "queryPath": { - "description": "The path to be queried. This can be the default namespace ('') or a nested namespace ('\\/') or a specified key ('\\/\\').", + "macsec": { + "$ref": "InterconnectMacsec", + "description": "Configuration that enables Media Access Control security (MACsec) on the\nCloud Interconnect connection between Google and your on-premises router." + }, + "macsecEnabled": { + "description": "Enable or disable MACsec on this Interconnect connection. MACsec enablement\nfails if the MACsec object is not specified.", + "type": "boolean" + }, + "name": { + "annotations": { + "required": [ + "compute.interconnects.insert" + ] + }, + "description": "Name of the resource. Provided by the client when the resource is created.\nThe name must be 1-63 characters long, and comply withRFC1035.\nSpecifically, the name must be 1-63 characters long and match the regular\nexpression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first\ncharacter must be a lowercase letter, and all following characters must be\na dash, lowercase letter, or digit, except the last character, which cannot\nbe a dash.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", "type": "string" }, - "queryValue": { - "$ref": "GuestAttributesValue", - "description": "[Output Only] The value of the requested queried path." + "nocContactEmail": { + "description": "Email address to contact the customer NOC for operations and maintenance\nnotifications regarding this Interconnect. If specified, this will be used\nfor notifications in addition to all other forms described, such as\nCloud Monitoring logs alerting and Cloud Notifications. This field is\nrequired for users who sign up for Cloud Interconnect using\nworkforce identity federation.", + "type": "string" }, - "selfLink": { - "description": "[Output Only] Server-defined URL for this resource.", + "operationalStatus": { + "description": "Output only. [Output Only] The current status of this Interconnect's functionality,\nwhich can take one of the following values:\n \n - OS_ACTIVE: A valid Interconnect, which is turned up and is ready to\n use. Attachments may be provisioned on this Interconnect.\n\n- OS_UNPROVISIONED: An Interconnect that has not completed turnup. No\nattachments may be provisioned on this Interconnect.\n- OS_UNDER_MAINTENANCE: An Interconnect that is undergoing internal\nmaintenance. No attachments may be provisioned or updated on this\nInterconnect.", + "enum": [ + "OS_ACTIVE", + "OS_UNPROVISIONED" + ], + "enumDescriptions": [ + "The interconnect is valid, turned up, and ready to use. Attachments may\nbe provisioned on this interconnect.", + "The interconnect has not completed turnup. No attachments may be\nprovisioned on this interconnect." + ], + "readOnly": true, "type": "string" }, - "variableKey": { - "description": "The key to search for.", + "params": { + "$ref": "InterconnectParams", + "description": "Input only. [Input Only] Additional params passed with the request, but not persisted\nas part of resource payload." + }, + "peerIpAddress": { + "description": "Output only. [Output Only] IP address configured on the customer side of the\nInterconnect link. The customer should configure this IP address during\nturnup when prompted by Google NOC. This can be used only for ping tests.", + "readOnly": true, "type": "string" }, - "variableValue": { - "description": "[Output Only] The value found for the requested key.", + "provisionedLinkCount": { + "description": "Output only. [Output Only] Number of links actually provisioned in this interconnect.", + "format": "int32", + "readOnly": true, + "type": "integer" + }, + "remoteLocation": { + "description": "Indicates that this is a Cross-Cloud Interconnect. This field specifies the\nlocation outside of Google's network that the interconnect is connected to.", "type": "string" - } - }, - "type": "object" - }, - "GuestAttributesEntry": { - "description": "A guest attributes namespace/key/value entry.", - "id": "GuestAttributesEntry", - "properties": { - "key": { - "description": "Key for the guest attribute entry.", + }, + "requestedFeatures": { + "description": "Optional. This parameter can be provided only with Interconnect INSERT. It\nisn't valid for Interconnect PATCH. List of features requested for this\nInterconnect connection, which can take one of the following values:\n \n - IF_MACSEC: If specified, then the connection is created on MACsec\n capable hardware ports. If not specified, non-MACsec capable ports will\n also be considered.\n - IF_CROSS_SITE_NETWORK: If specified, then the connection is created\n exclusively for Cross-Site Networking. The connection can not be used for\n Cross-Site Networking unless this feature is specified.", + "items": { + "enum": [ + "IF_CROSS_SITE_NETWORK", + "IF_L2_FORWARDING", + "IF_MACSEC" + ], + "enumDescriptions": [ + "Cross-Site Networking", + "L2 Interconnect Attachment Forwarding", + "Media Access Control security (MACsec)" + ], + "type": "string" + }, + "type": "array" + }, + "requestedLinkCount": { + "description": "Target number of physical links in the link bundle, as requested by the\ncustomer.", + "format": "int32", + "type": "integer" + }, + "satisfiesPzs": { + "description": "Output only. [Output Only] Reserved for future use.", + "readOnly": true, + "type": "boolean" + }, + "selfLink": { + "description": "Output only. [Output Only] Server-defined URL for the resource.", + "readOnly": true, "type": "string" }, - "namespace": { - "description": "Namespace for the guest attribute entry.", + "state": { + "description": "Output only. [Output Only] The current state of Interconnect functionality, which can\ntake one of the following values:\n \n - ACTIVE: The Interconnect is valid, turned up and ready to use.\n Attachments may be provisioned on this Interconnect.\n - UNPROVISIONED: The Interconnect has not completed turnup. No\n attachments may be provisioned on this Interconnect.\n - UNDER_MAINTENANCE: The Interconnect is undergoing internal maintenance.\n No attachments may be provisioned or updated on this\n Interconnect.", + "enum": [ + "ACTIVE", + "UNPROVISIONED" + ], + "enumDescriptions": [ + "The interconnect is valid, turned up, and ready to use. Attachments may\nbe provisioned on this interconnect.", + "The interconnect has not completed turnup. No attachments may be\nprovisioned on this interconnect." + ], + "readOnly": true, "type": "string" }, - "value": { - "description": "Value for the guest attribute entry.", + "subzone": { + "description": "To be deprecated.", + "enum": [ + "SUBZONE_A", + "SUBZONE_B" + ], + "enumDescriptions": [ + "Subzone A.", + "Subzone B." + ], "type": "string" + }, + "wireGroups": { + "description": "Output only. [Output Only] A list of the URLs of all CrossSiteNetwork WireGroups\nconfigured to use this Interconnect. The Interconnect cannot be deleted if\nthis list is non-empty.", + "items": { + "type": "string" + }, + "readOnly": true, + "type": "array" } }, "type": "object" }, - "GuestAttributesValue": { - "description": "Array of guest attribute namespace/key/value tuples.", - "id": "GuestAttributesValue", + "InterconnectApplicationAwareInterconnect": { + "description": "Configuration information for application awareness on this Cloud\nInterconnect.", + "id": "InterconnectApplicationAwareInterconnect", "properties": { - "items": { + "bandwidthPercentagePolicy": { + "$ref": "InterconnectApplicationAwareInterconnectBandwidthPercentagePolicy" + }, + "profileDescription": { + "description": "Description for the application awareness profile on this Cloud\nInterconnect.", + "type": "string" + }, + "shapeAveragePercentages": { + "description": "Optional field to specify a list of shape average percentages to be\napplied in conjunction with StrictPriorityPolicy or\nBandwidthPercentagePolicy.", "items": { - "$ref": "GuestAttributesEntry" + "$ref": "InterconnectApplicationAwareInterconnectBandwidthPercentage" }, "type": "array" + }, + "strictPriorityPolicy": { + "$ref": "InterconnectApplicationAwareInterconnectStrictPriorityPolicy" } }, "type": "object" }, - "GuestOsFeature": { - "description": "Guest OS features.", - "id": "GuestOsFeature", + "InterconnectApplicationAwareInterconnectBandwidthPercentage": { + "description": "Specify bandwidth percentages [1-100] for various traffic classes in\nBandwidthPercentagePolicy. The sum of all percentages must equal 100.\nAll traffic classes must have a percentage value specified.", + "id": "InterconnectApplicationAwareInterconnectBandwidthPercentage", "properties": { - "type": { - "description": "The ID of a supported feature. To add multiple values, use commas to separate values. Set to one or more of the following values: - VIRTIO_SCSI_MULTIQUEUE - WINDOWS - MULTI_IP_SUBNET - UEFI_COMPATIBLE - GVNIC - SEV_CAPABLE - SUSPEND_RESUME_COMPATIBLE - SEV_LIVE_MIGRATABLE_V2 - SEV_SNP_CAPABLE - TDX_CAPABLE - IDPF For more information, see Enabling guest operating system features.", + "percentage": { + "description": "Bandwidth percentage for a specific traffic class.", + "format": "uint32", + "type": "integer" + }, + "trafficClass": { + "description": "TrafficClass whose bandwidth percentage is being specified.", "enum": [ - "FEATURE_TYPE_UNSPECIFIED", - "GVNIC", - "IDPF", - "MULTI_IP_SUBNET", - "SECURE_BOOT", - "SEV_CAPABLE", - "SEV_LIVE_MIGRATABLE", - "SEV_LIVE_MIGRATABLE_V2", - "SEV_SNP_CAPABLE", - "UEFI_COMPATIBLE", - "VIRTIO_SCSI_MULTIQUEUE", - "WINDOWS" + "TC1", + "TC2", + "TC3", + "TC4", + "TC5", + "TC6" ], "enumDescriptions": [ - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "" + "Traffic Class 1, corresponding to DSCP ranges (0-7) 000xxx.", + "Traffic Class 2, corresponding to DSCP ranges (8-15) 001xxx.", + "Traffic Class 3, corresponding to DSCP ranges (16-23) 010xxx.", + "Traffic Class 4, corresponding to DSCP ranges (24-31) 011xxx.", + "Traffic Class 5, corresponding to DSCP ranges (32-47) 10xxxx.", + "Traffic Class 6, corresponding to DSCP ranges (48-63) 11xxxx." ], "type": "string" } }, "type": "object" }, - "HTTP2HealthCheck": { - "id": "HTTP2HealthCheck", + "InterconnectApplicationAwareInterconnectBandwidthPercentagePolicy": { + "id": "InterconnectApplicationAwareInterconnectBandwidthPercentagePolicy", "properties": { - "host": { - "description": "The value of the host header in the HTTP/2 health check request. If left empty (default value), the host header is set to the destination IP address to which health check packets are sent. The destination IP address depends on the type of load balancer. For details, see: https://cloud.google.com/load-balancing/docs/health-check-concepts#hc-packet-dest", - "type": "string" - }, - "port": { - "description": "The TCP port number to which the health check prober sends packets. The default value is 443. Valid values are 1 through 65535.", - "format": "int32", - "type": "integer" + "bandwidthPercentages": { + "description": "Specify bandwidth percentages for various traffic classes for queuing\ntype Bandwidth Percent.", + "items": { + "$ref": "InterconnectApplicationAwareInterconnectBandwidthPercentage" + }, + "type": "array" + } + }, + "type": "object" + }, + "InterconnectApplicationAwareInterconnectStrictPriorityPolicy": { + "description": "Specify configuration for StrictPriorityPolicy.", + "id": "InterconnectApplicationAwareInterconnectStrictPriorityPolicy", + "properties": {}, + "type": "object" + }, + "InterconnectAttachment": { + "description": "Represents an Interconnect Attachment (VLAN) resource.\n\nYou can use Interconnect attachments (VLANS) to connect your Virtual Private\nCloud networks to your on-premises networks through an Interconnect.\nFor more information, read\nCreating VLAN Attachments.", + "id": "InterconnectAttachment", + "properties": { + "adminEnabled": { + "description": "Determines whether this Attachment will carry packets.\nNot present for PARTNER_PROVIDER.", + "type": "boolean" }, - "portName": { - "description": "Not supported.", + "attachmentGroup": { + "description": "Output only. [Output Only] URL of the AttachmentGroup that includes this Attachment.", + "readOnly": true, "type": "string" }, - "portSpecification": { - "description": "Specifies how a port is selected for health checking. Can be one of the following values: USE_FIXED_PORT: Specifies a port number explicitly using the port field in the health check. Supported by backend services for passthrough load balancers and backend services for proxy load balancers. Not supported by target pools. The health check supports all backends supported by the backend service provided the backend can be health checked. For example, GCE_VM_IP network endpoint groups, GCE_VM_IP_PORT network endpoint groups, and instance group backends. USE_NAMED_PORT: Not supported. USE_SERVING_PORT: Provides an indirect method of specifying the health check port by referring to the backend service. Only supported by backend services for proxy load balancers. Not supported by target pools. Not supported by backend services for passthrough load balancers. Supports all backends that can be health checked; for example, GCE_VM_IP_PORT network endpoint groups and instance group backends. For GCE_VM_IP_PORT network endpoint group backends, the health check uses the port number specified for each endpoint in the network endpoint group. For instance group backends, the health check uses the port number determined by looking up the backend service's named port in the instance group's list of named ports.", + "bandwidth": { + "description": "Provisioned bandwidth capacity for the interconnect attachment. For\nattachments of type DEDICATED, the user can set the bandwidth.\nFor attachments of type PARTNER, the Google Partner that is operating\nthe interconnect must set the bandwidth.\nOutput only for PARTNER type, mutable for PARTNER_PROVIDER and DEDICATED,\nand can take one of the following values:\n \n - BPS_50M: 50 Mbit/s\n - BPS_100M: 100 Mbit/s\n - BPS_200M: 200 Mbit/s\n - BPS_300M: 300 Mbit/s\n - BPS_400M: 400 Mbit/s\n - BPS_500M: 500 Mbit/s\n - BPS_1G: 1 Gbit/s\n - BPS_2G: 2 Gbit/s\n - BPS_5G: 5 Gbit/s\n - BPS_10G: 10 Gbit/s\n - BPS_20G: 20 Gbit/s\n - BPS_50G: 50 Gbit/s\n - BPS_100G: 100 Gbit/s\n - BPS_400G: 400 Gbit/s", "enum": [ - "USE_FIXED_PORT", - "USE_NAMED_PORT", - "USE_SERVING_PORT" + "BPS_100G", + "BPS_100M", + "BPS_10G", + "BPS_1G", + "BPS_200M", + "BPS_20G", + "BPS_2G", + "BPS_300M", + "BPS_400G", + "BPS_400M", + "BPS_500M", + "BPS_50G", + "BPS_50M", + "BPS_5G" ], "enumDescriptions": [ - "The port number in the health check's port is used for health checking. Applies to network endpoint group and instance group backends.", - "Not supported.", - "For network endpoint group backends, the health check uses the port number specified on each endpoint in the network endpoint group. For instance group backends, the health check uses the port number specified for the backend service's named port defined in the instance group's named ports." + "100 Gbit/s", + "100 Mbit/s", + "10 Gbit/s", + "1 Gbit/s", + "200 Mbit/s", + "20 Gbit/s", + "2 Gbit/s", + "300 Mbit/s", + "400 Gbit/s", + "400 Mbit/s", + "500 Mbit/s", + "50 Gbit/s", + "50 Mbit/s", + "5 Gbit/s" ], "type": "string" }, - "proxyHeader": { - "description": "Specifies the type of proxy header to append before sending data to the backend, either NONE or PROXY_V1. The default is NONE.", - "enum": [ - "NONE", - "PROXY_V1" - ], - "enumDescriptions": [ - "", - "" - ], + "candidateCloudRouterIpAddress": { + "description": "Single IPv4 address + prefix length to be configured on the cloud router\ninterface for this interconnect attachment.\n \n - Both candidate_cloud_router_ip_address and\n candidate_customer_router_ip_address fields must be set or both must be\n unset.\n - Prefix length of both candidate_cloud_router_ip_address and\n candidate_customer_router_ip_address must be the same.\n - Max prefix length is 31.", "type": "string" }, - "requestPath": { - "description": "The request path of the HTTP/2 health check request. The default value is /. Must comply with RFC3986.", + "candidateCloudRouterIpv6Address": { + "description": "Single IPv6 address + prefix length to be configured on the cloud router\ninterface for this interconnect attachment.\n \n - Both candidate_cloud_router_ipv6_address and\n candidate_customer_router_ipv6_address fields must be set or both must be\n unset.\n - Prefix length of both candidate_cloud_router_ipv6_address and\n candidate_customer_router_ipv6_address must be the same.\n - Max prefix length is 126.", "type": "string" }, - "response": { - "description": "Creates a content-based HTTP/2 health check. In addition to the required HTTP 200 (OK) status code, you can configure the health check to pass only when the backend sends this specific ASCII response string within the first 1024 bytes of the HTTP response body. For details, see: https://cloud.google.com/load-balancing/docs/health-check-concepts#criteria-protocol-http", + "candidateCustomerRouterIpAddress": { + "description": "Single IPv4 address + prefix length to be configured on the customer router\ninterface for this interconnect attachment.", "type": "string" - } - }, - "type": "object" - }, - "HTTPHealthCheck": { - "id": "HTTPHealthCheck", - "properties": { - "host": { - "description": "The value of the host header in the HTTP health check request. If left empty (default value), the host header is set to the destination IP address to which health check packets are sent. The destination IP address depends on the type of load balancer. For details, see: https://cloud.google.com/load-balancing/docs/health-check-concepts#hc-packet-dest", + }, + "candidateCustomerRouterIpv6Address": { + "description": "Single IPv6 address + prefix length to be configured on the customer router\ninterface for this interconnect attachment.", "type": "string" }, - "port": { - "description": "The TCP port number to which the health check prober sends packets. The default value is 80. Valid values are 1 through 65535.", - "format": "int32", - "type": "integer" + "candidateIpv6Subnets": { + "description": "This field is not available.", + "items": { + "type": "string" + }, + "type": "array" }, - "portName": { - "description": "Not supported.", + "candidateSubnets": { + "description": "Input only. Up to 16 candidate prefixes that can be used to restrict the allocation\nof cloudRouterIpAddress and customerRouterIpAddress for this attachment.\nAll prefixes must be within link-local address space (169.254.0.0/16) and\nmust be /29 or shorter (/28, /27, etc). Google will attempt to select an\nunused /29 from the supplied candidate prefix(es). The request will fail if\nall possible /29s are in use on Google's edge. If not supplied, Google will\nrandomly select an unused /29 from all of link-local space.", + "items": { + "type": "string" + }, + "type": "array" + }, + "cloudRouterIpAddress": { + "description": "Output only. [Output Only] IPv4 address + prefix length to be configured on Cloud Router\nInterface for this interconnect attachment.", + "readOnly": true, "type": "string" }, - "portSpecification": { - "description": "Specifies how a port is selected for health checking. Can be one of the following values: USE_FIXED_PORT: Specifies a port number explicitly using the port field in the health check. Supported by backend services for passthrough load balancers and backend services for proxy load balancers. Also supported in legacy HTTP health checks for target pools. The health check supports all backends supported by the backend service provided the backend can be health checked. For example, GCE_VM_IP network endpoint groups, GCE_VM_IP_PORT network endpoint groups, and instance group backends. USE_NAMED_PORT: Not supported. USE_SERVING_PORT: Provides an indirect method of specifying the health check port by referring to the backend service. Only supported by backend services for proxy load balancers. Not supported by target pools. Not supported by backend services for pass-through load balancers. Supports all backends that can be health checked; for example, GCE_VM_IP_PORT network endpoint groups and instance group backends. For GCE_VM_IP_PORT network endpoint group backends, the health check uses the port number specified for each endpoint in the network endpoint group. For instance group backends, the health check uses the port number determined by looking up the backend service's named port in the instance group's list of named ports.", - "enum": [ - "USE_FIXED_PORT", - "USE_NAMED_PORT", - "USE_SERVING_PORT" - ], - "enumDescriptions": [ - "The port number in the health check's port is used for health checking. Applies to network endpoint group and instance group backends.", - "Not supported.", - "For network endpoint group backends, the health check uses the port number specified on each endpoint in the network endpoint group. For instance group backends, the health check uses the port number specified for the backend service's named port defined in the instance group's named ports." - ], + "cloudRouterIpv6Address": { + "description": "Output only. [Output Only] IPv6 address + prefix length to be configured on Cloud\nRouter Interface for this interconnect attachment.", + "readOnly": true, "type": "string" }, - "proxyHeader": { - "description": "Specifies the type of proxy header to append before sending data to the backend, either NONE or PROXY_V1. The default is NONE.", - "enum": [ - "NONE", - "PROXY_V1" - ], - "enumDescriptions": [ - "", - "" - ], + "cloudRouterIpv6InterfaceId": { + "description": "This field is not available.", "type": "string" }, - "requestPath": { - "description": "The request path of the HTTP health check request. The default value is /. Must comply with RFC3986.", + "configurationConstraints": { + "$ref": "InterconnectAttachmentConfigurationConstraints", + "description": "Output only. [Output Only] Constraints for this attachment, if any. The attachment does\nnot work if these constraints are not met.", + "readOnly": true + }, + "creationTimestamp": { + "description": "Output only. [Output Only] Creation timestamp inRFC3339\ntext format.", + "readOnly": true, "type": "string" }, - "response": { - "description": "Creates a content-based HTTP health check. In addition to the required HTTP 200 (OK) status code, you can configure the health check to pass only when the backend sends this specific ASCII response string within the first 1024 bytes of the HTTP response body. For details, see: https://cloud.google.com/load-balancing/docs/health-check-concepts#criteria-protocol-http", + "customerRouterIpAddress": { + "description": "Output only. [Output Only] IPv4 address + prefix length to be configured on the customer\nrouter subinterface for this interconnect attachment.", + "readOnly": true, "type": "string" - } - }, - "type": "object" - }, - "HTTPSHealthCheck": { - "id": "HTTPSHealthCheck", - "properties": { - "host": { - "description": "The value of the host header in the HTTPS health check request. If left empty (default value), the host header is set to the destination IP address to which health check packets are sent. The destination IP address depends on the type of load balancer. For details, see: https://cloud.google.com/load-balancing/docs/health-check-concepts#hc-packet-dest", + }, + "customerRouterIpv6Address": { + "description": "Output only. [Output Only] IPv6 address + prefix length to be configured on the\ncustomer router subinterface for this interconnect attachment.", + "readOnly": true, "type": "string" }, - "port": { - "description": "The TCP port number to which the health check prober sends packets. The default value is 443. Valid values are 1 through 65535.", + "customerRouterIpv6InterfaceId": { + "description": "This field is not available.", + "type": "string" + }, + "dataplaneVersion": { + "description": "Output only. [Output Only] Dataplane version for this InterconnectAttachment. This\nfield is only present for Dataplane version 2 and higher. Absence of this\nfield in the API output indicates that the Dataplane is version 1.", "format": "int32", + "readOnly": true, "type": "integer" }, - "portName": { - "description": "Not supported.", + "description": { + "description": "An optional description of this resource.", "type": "string" }, - "portSpecification": { - "description": "Specifies how a port is selected for health checking. Can be one of the following values: USE_FIXED_PORT: Specifies a port number explicitly using the port field in the health check. Supported by backend services for passthrough load balancers and backend services for proxy load balancers. Not supported by target pools. The health check supports all backends supported by the backend service provided the backend can be health checked. For example, GCE_VM_IP network endpoint groups, GCE_VM_IP_PORT network endpoint groups, and instance group backends. USE_NAMED_PORT: Not supported. USE_SERVING_PORT: Provides an indirect method of specifying the health check port by referring to the backend service. Only supported by backend services for proxy load balancers. Not supported by target pools. Not supported by backend services for passthrough load balancers. Supports all backends that can be health checked; for example, GCE_VM_IP_PORT network endpoint groups and instance group backends. For GCE_VM_IP_PORT network endpoint group backends, the health check uses the port number specified for each endpoint in the network endpoint group. For instance group backends, the health check uses the port number determined by looking up the backend service's named port in the instance group's list of named ports.", + "edgeAvailabilityDomain": { + "description": "Input only. Desired availability domain for the attachment. Only available for type\nPARTNER, at creation time, and can take one of the following values:\n \n - AVAILABILITY_DOMAIN_ANY\n - AVAILABILITY_DOMAIN_1\n - AVAILABILITY_DOMAIN_2\n\n\nFor improved reliability, customers should configure a pair of attachments,\none per availability domain. The selected availability domain will be\nprovided to the Partner via the pairing key, so that the provisioned\ncircuit will lie in the specified domain. If not specified, the value will\ndefault to AVAILABILITY_DOMAIN_ANY.", "enum": [ - "USE_FIXED_PORT", - "USE_NAMED_PORT", - "USE_SERVING_PORT" + "AVAILABILITY_DOMAIN_1", + "AVAILABILITY_DOMAIN_2", + "AVAILABILITY_DOMAIN_ANY" ], "enumDescriptions": [ - "The port number in the health check's port is used for health checking. Applies to network endpoint group and instance group backends.", - "Not supported.", - "For network endpoint group backends, the health check uses the port number specified on each endpoint in the network endpoint group. For instance group backends, the health check uses the port number specified for the backend service's named port defined in the instance group's named ports." + "", + "", + "" ], "type": "string" }, - "proxyHeader": { - "description": "Specifies the type of proxy header to append before sending data to the backend, either NONE or PROXY_V1. The default is NONE.", + "encryption": { + "description": "Indicates the user-supplied encryption option of this VLAN attachment\n(interconnectAttachment). Can only be specified at attachment creation\nfor PARTNER or DEDICATED attachments.\nPossible values are:\n \n - NONE - This is the default value, which means that the\n VLAN attachment carries unencrypted traffic. VMs are able to send\n traffic to, or receive traffic from, such a VLAN attachment.\n - IPSEC - The VLAN attachment carries only encrypted\n traffic that is encrypted by an IPsec device, such as an HA VPN gateway or\n third-party IPsec VPN. VMs cannot directly send traffic to, or receive\n traffic from, such a VLAN attachment. To use *HA VPN over Cloud\n Interconnect*, the VLAN attachment must be created with this\n option.", "enum": [ - "NONE", - "PROXY_V1" + "IPSEC", + "NONE" ], "enumDescriptions": [ - "", - "" + "The interconnect attachment will carry only encrypted traffic that is\nencrypted by an IPsec device such as HA VPN gateway;\nVMs cannot directly send traffic to or receive traffic from such an\ninterconnect attachment. To use HA VPN over Cloud Interconnect,\nthe interconnect attachment must be created with this option.", + "This is the default value, which means the Interconnect Attachment will\ncarry unencrypted traffic. VMs will be able to send traffic to or receive\ntraffic from such interconnect attachment." ], "type": "string" }, - "requestPath": { - "description": "The request path of the HTTPS health check request. The default value is /. Must comply with RFC3986.", + "googleReferenceId": { + "deprecated": true, + "description": "Output only. [Output Only] Google reference ID, to be used when raising support tickets\nwith Google or otherwise to debug backend connectivity issues.\n[Deprecated] This field is not used.", + "readOnly": true, "type": "string" }, - "response": { - "description": "Creates a content-based HTTPS health check. In addition to the required HTTP 200 (OK) status code, you can configure the health check to pass only when the backend sends this specific ASCII response string within the first 1024 bytes of the HTTP response body. For details, see: https://cloud.google.com/load-balancing/docs/health-check-concepts#criteria-protocol-http", + "id": { + "description": "Output only. [Output Only] The unique identifier for the resource. This identifier is\ndefined by the server.", + "format": "uint64", + "readOnly": true, "type": "string" - } - }, - "type": "object" - }, - "HealthCheck": { - "description": "Represents a health check resource. Google Compute Engine has two health check resources: * [Regional](/compute/docs/reference/rest/v1/regionHealthChecks) * [Global](/compute/docs/reference/rest/v1/healthChecks) These health check resources can be used for load balancing and for autohealing VMs in a managed instance group (MIG). **Load balancing** Health check requirements vary depending on the type of load balancer. For details about the type of health check supported for each load balancer and corresponding backend type, see Health checks overview: Load balancer guide. **Autohealing in MIGs** The health checks that you use for autohealing VMs in a MIG can be either regional or global. For more information, see Set up an application health check and autohealing. For more information, see Health checks overview.", - "id": "HealthCheck", - "properties": { - "checkIntervalSec": { - "description": "How often (in seconds) to send a health check. The default value is 5 seconds.", - "format": "int32", - "type": "integer" }, - "creationTimestamp": { - "description": "[Output Only] Creation timestamp in 3339 text format.", + "interconnect": { + "description": "URL of the underlying Interconnect object that this attachment's traffic\nwill traverse through.", "type": "string" }, - "description": { - "description": "An optional description of this resource. Provide this property when you create the resource.", + "ipsecInternalAddresses": { + "description": "A list of URLs of addresses that have been reserved for the VLAN\nattachment. Used only for the VLAN attachment that has the encryption\noption as IPSEC. The addresses must be regional internal IP address ranges.\nWhen creating an HA VPN gateway over the VLAN attachment, if the attachment\nis configured to use a regional internal IP address, then the VPN gateway's\nIP address is allocated from the IP address range specified here. For\nexample, if the HA VPN gateway's interface 0 is paired to this VLAN\nattachment, then a regional internal IP address for the VPN gateway\ninterface 0 will be allocated from the IP address specified for this\nVLAN attachment.\nIf this field is not specified when creating the VLAN attachment, then\nlater on when creating an HA VPN gateway on this VLAN attachment, the HA\nVPN gateway's IP address is allocated from the regional external IP address\npool.", + "items": { + "type": "string" + }, + "type": "array" + }, + "kind": { + "default": "compute#interconnectAttachment", + "description": "Output only. [Output Only] Type of the resource. Alwayscompute#interconnectAttachment for interconnect attachments.", + "readOnly": true, "type": "string" }, - "grpcHealthCheck": { - "$ref": "GRPCHealthCheck" + "l2Forwarding": { + "$ref": "InterconnectAttachmentL2Forwarding", + "description": "L2 Interconnect Attachment related config. This field is required if the\ntype is L2_DEDICATED.\n\nThe configuration specifies how VLAN tags (like dot1q, qinq, or dot1ad)\nwithin L2 packets are mapped to the destination appliances IP addresses.\nThe packet is then encapsulated with the appliance IP address and sent to\nthe edge appliance." }, - "healthyThreshold": { - "description": "A so-far unhealthy instance will be marked healthy after this many consecutive successes. The default value is 2.", - "format": "int32", - "type": "integer" + "labelFingerprint": { + "description": "A fingerprint for the labels being applied to this InterconnectAttachment,\nwhich is essentially a hash of the labels set used for optimistic locking.\nThe fingerprint is initially generated by Compute Engine and changes after\nevery request to modify or update labels. You must always provide an\nup-to-date fingerprint hash in order to update or change labels,\notherwise the request will fail with error412 conditionNotMet.\n\nTo see the latest fingerprint, make a get() request to\nretrieve an InterconnectAttachment.", + "format": "byte", + "type": "string" }, - "http2HealthCheck": { - "$ref": "HTTP2HealthCheck" + "labels": { + "additionalProperties": { + "type": "string" + }, + "description": "Labels for this resource. These can only be added or modified by thesetLabels method. Each label key/value pair must comply withRFC1035.\nLabel values may be empty.", + "type": "object" }, - "httpHealthCheck": { - "$ref": "HTTPHealthCheck" + "mtu": { + "description": "Maximum Transmission Unit (MTU), in bytes, of packets passing through this\ninterconnect attachment.\nValid values are 1440, 1460, 1500, and 8896. If not specified,\nthe value will default to 1440.", + "format": "int32", + "type": "integer" }, - "httpsHealthCheck": { - "$ref": "HTTPSHealthCheck" + "name": { + "description": "Name of the resource. Provided by the client when the resource is created.\nThe name must be 1-63 characters long, and comply withRFC1035.\nSpecifically, the name must be 1-63 characters long and match the regular\nexpression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first\ncharacter must be a lowercase letter, and all following characters must\nbe a dash, lowercase letter, or digit, except the last character, which\ncannot be a dash.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "type": "string" }, - "id": { - "description": "[Output Only] The unique identifier for the resource. This identifier is defined by the server.", - "format": "uint64", + "operationalStatus": { + "description": "Output only. [Output Only] The current status of whether or not this interconnect\nattachment is functional, which can take one of the following values:\n \n - OS_ACTIVE: The attachment has been turned up and is ready to\n use. \n - OS_UNPROVISIONED: The attachment is not ready to use yet,\n because turnup is not complete.", + "enum": [ + "OS_ACTIVE", + "OS_UNPROVISIONED" + ], + "enumDescriptions": [ + "Indicates that attachment has been turned up and is ready to\nuse.", + "Indicates that attachment is not ready to use yet, because\nturnup is not complete." + ], + "readOnly": true, "type": "string" }, - "kind": { - "default": "compute#healthCheck", - "description": "Type of the resource.", + "pairingKey": { + "description": "[Output only for type PARTNER. Input only for PARTNER_PROVIDER. Not\npresent for DEDICATED].\nThe opaque identifier of a PARTNER attachment used to initiate\nprovisioning with a selected partner.\nOf the form \"XXXXX/region/domain\"", "type": "string" }, - "logConfig": { - "$ref": "HealthCheckLogConfig", - "description": "Configure logging on this health check." + "params": { + "$ref": "InterconnectAttachmentParams", + "description": "Input only. [Input Only] Additional params passed with the request, but not persisted\nas part of resource payload." }, - "name": { - "description": "Name of the resource. Provided by the client when the resource is created. The name must be 1-63 characters long, and comply with RFC1035. For example, a name that is 1-63 characters long, matches the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?`, and otherwise complies with RFC1035. This regular expression describes a name where the first character is a lowercase letter, and all following characters are a dash, lowercase letter, or digit, except the last character, which isn't a dash.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "partnerAsn": { + "description": "Optional BGP ASN for the router supplied by a Layer 3 Partner if they\nconfigured BGP on behalf of the customer.\nOutput only for PARTNER type, input only for PARTNER_PROVIDER, not\navailable for DEDICATED.", + "format": "int64", "type": "string" }, + "partnerMetadata": { + "$ref": "InterconnectAttachmentPartnerMetadata", + "description": "Informational metadata about Partner attachments from Partners to display\nto customers.\nOutput only for PARTNER type, mutable for PARTNER_PROVIDER, not\navailable for DEDICATED." + }, + "privateInterconnectInfo": { + "$ref": "InterconnectAttachmentPrivateInfo", + "description": "Output only. [Output Only] Information specific to an InterconnectAttachment.\nThis property is populated if the interconnect that\nthis is attached to is of type DEDICATED.", + "readOnly": true + }, "region": { - "description": "[Output Only] Region where the health check resides. Not applicable to global health checks.", + "description": "Output only. [Output Only] URL of the region where the regional interconnect attachment\nresides.\nYou must specify this field as part of the HTTP request URL. It is\nnot settable as a field in the request body.", + "readOnly": true, + "type": "string" + }, + "remoteService": { + "description": "Output only. [Output Only]\nIf the attachment is on a Cross-Cloud Interconnect connection, this field\ncontains the interconnect's remote location service provider. Example\nvalues: \"Amazon Web Services\" \"Microsoft Azure\".\n\nThe field is set only for attachments on Cross-Cloud Interconnect\nconnections. Its value is copied from the InterconnectRemoteLocation\nremoteService field.", + "readOnly": true, + "type": "string" + }, + "router": { + "description": "URL of the Cloud Router to be used for dynamic routing. This router must be\nin the same region as this InterconnectAttachment. The\nInterconnectAttachment will automatically connect the Interconnect to the\nnetwork \u0026 region within which the Cloud Router is configured.", "type": "string" }, + "satisfiesPzs": { + "description": "Output only. [Output Only] Reserved for future use.", + "readOnly": true, + "type": "boolean" + }, "selfLink": { - "description": "[Output Only] Server-defined URL for the resource.", + "description": "Output only. [Output Only] Server-defined URL for the resource.", + "readOnly": true, "type": "string" }, - "sslHealthCheck": { - "$ref": "SSLHealthCheck" + "stackType": { + "description": "The stack type for this interconnect attachment to identify whether the\nIPv6 feature is enabled or not. If not specified, IPV4_ONLY\nwill be used.\n\nThis field can be both set at interconnect attachments creation and\nupdate interconnect attachment operations.", + "enum": [ + "IPV4_IPV6", + "IPV4_ONLY" + ], + "enumDescriptions": [ + "The interconnect attachment can have both IPv4 and IPv6 addresses.", + "The interconnect attachment will only be assigned IPv4 addresses." + ], + "type": "string" }, - "tcpHealthCheck": { - "$ref": "TCPHealthCheck" + "state": { + "description": "Output only. [Output Only] The current state of this attachment's functionality.\nEnum values ACTIVE and UNPROVISIONED are shared by DEDICATED/PRIVATE,\nPARTNER, and PARTNER_PROVIDER interconnect attachments, while enum values\nPENDING_PARTNER, PARTNER_REQUEST_RECEIVED, and PENDING_CUSTOMER are used\nfor only PARTNER and PARTNER_PROVIDER interconnect attachments.\nThis state can take one of the following values:\n \n - ACTIVE: The attachment has been turned up and is ready to use.\n - UNPROVISIONED: The attachment is not ready to use yet, because turnup\n is not complete.\n - PENDING_PARTNER: A newly-created PARTNER attachment that has not yet\n been configured on the Partner side.\n - PARTNER_REQUEST_RECEIVED: A PARTNER attachment is in the process of\n provisioning after a PARTNER_PROVIDER attachment was created that\n references it. \n - PENDING_CUSTOMER: A PARTNER or PARTNER_PROVIDER\n attachment that is waiting for a customer to activate it. \n - DEFUNCT:\n The attachment was deleted externally and is no longer functional. This\n could be because the associated Interconnect was removed, or because the\n other side of a Partner attachment was deleted.", + "enum": [ + "ACTIVE", + "DEFUNCT", + "PARTNER_REQUEST_RECEIVED", + "PENDING_CUSTOMER", + "PENDING_PARTNER", + "STATE_UNSPECIFIED", + "UNPROVISIONED" + ], + "enumDescriptions": [ + "Indicates that attachment has been turned up and is ready to use.", + "The attachment was deleted externally and is no longer functional.\nThis could be because the associated Interconnect was wiped out,\nor because the other side of a Partner attachment was deleted.", + "A PARTNER attachment is in the process of provisioning after a\nPARTNER_PROVIDER attachment was created that references it.", + "PARTNER or PARTNER_PROVIDER attachment that is waiting for the customer\nto activate.", + "A newly created PARTNER attachment that has not yet been configured on\nthe Partner side.", + "", + "Indicates that attachment is not ready to use yet, because turnup is not\ncomplete." + ], + "readOnly": true, + "type": "string" }, - "timeoutSec": { - "description": "How long (in seconds) to wait before claiming failure. The default value is 5 seconds. It is invalid for timeoutSec to have greater value than checkIntervalSec.", + "subnetLength": { + "description": "Input only. Length of the IPv4 subnet mask.\nAllowed values:\n \n \n - 29 (default)\n - 30\n\nThe default value is 29, except for Cross-Cloud Interconnect\nconnections that use an InterconnectRemoteLocation with a\nconstraints.subnetLengthRange.min equal to 30. For example,\nconnections that use an Azure remote location fall into this\ncategory. In these cases, the default value is 30, and requesting\n29 returns an error.\n\nWhere both 29 and 30 are allowed, 29 is preferred, because it gives\nGoogle Cloud Support more debugging visibility.", "format": "int32", "type": "integer" }, "type": { - "description": "Specifies the type of the healthCheck, either TCP, SSL, HTTP, HTTPS, HTTP2 or GRPC. Exactly one of the protocol-specific health check fields must be specified, which must match type field.", + "description": "The type of interconnect attachment this is, which can take one of the\nfollowing values:\n \n - DEDICATED: an attachment to a Dedicated Interconnect.\n - PARTNER: an attachment to a Partner Interconnect, created by the\n customer.\n - PARTNER_PROVIDER: an attachment to a Partner Interconnect, created by\n the partner.\n\n- L2_DEDICATED: a L2 attachment to a Dedicated Interconnect.", "enum": [ - "GRPC", - "HTTP", - "HTTP2", - "HTTPS", - "INVALID", - "SSL", - "TCP" + "DEDICATED", + "L2_DEDICATED", + "PARTNER", + "PARTNER_PROVIDER" ], "enumDescriptions": [ - "", - "", - "", - "", - "", - "", - "" + "Attachment to a dedicated interconnect.", + "Attachment to a dedicated interconnect, forwarding L2 packets.", + "Attachment to a partner interconnect, created by the customer.", + "Attachment to a partner interconnect, created by the partner." ], "type": "string" }, - "unhealthyThreshold": { - "description": "A so-far healthy instance will be marked unhealthy after this many consecutive failures. The default value is 2.", + "vlanTag8021q": { + "description": "The IEEE 802.1Q VLAN tag for this attachment, in the range 2-4093.\nOnly specified at creation time.", "format": "int32", "type": "integer" } }, "type": "object" }, - "HealthCheckList": { - "description": "Contains a list of HealthCheck resources.", - "id": "HealthCheckList", + "InterconnectAttachmentAggregatedList": { + "id": "InterconnectAttachmentAggregatedList", "properties": { "id": { "description": "[Output Only] Unique identifier for the resource; defined by the server.", "type": "string" }, "items": { - "description": "A list of HealthCheck resources.", - "items": { - "$ref": "HealthCheck" + "additionalProperties": { + "$ref": "InterconnectAttachmentsScopedList", + "description": "Name of the scope containing this set of interconnect attachments." }, - "type": "array" + "description": "A list of InterconnectAttachmentsScopedList resources.", + "type": "object" }, "kind": { - "default": "compute#healthCheckList", - "description": "Type of resource.", + "default": "compute#interconnectAttachmentAggregatedList", + "description": "Output only. [Output Only] Type of resource. Alwayscompute#interconnectAttachmentAggregatedList for aggregated\nlists of interconnect attachments.", + "readOnly": true, "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.", + "description": "[Output Only] This token allows you to get the next page of results for\nlist requests. If the number of results is larger thanmaxResults, use the nextPageToken as a value for\nthe query parameter pageToken in the next list request.\nSubsequent list requests will have their own nextPageToken to\ncontinue paging through the results.", "type": "string" }, "selfLink": { - "description": "[Output Only] Server-defined URL for this resource.", + "description": "Output only. [Output Only] Server-defined URL for this resource.", + "readOnly": true, "type": "string" }, + "unreachables": { + "description": "Output only. [Output Only] Unreachable resources.", + "items": { + "type": "string" + }, + "readOnly": true, + "type": "array" + }, "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.", + "description": "[Output Only] A warning code, if applicable. For example, Compute\nEngine returns NO_RESULTS_ON_PAGE if there\nare no results in the response.", "enum": [ "CLEANUP_FAILED", "DEPRECATED_RESOURCE_USED", @@ -47103,6 +72735,7 @@ "NOT_CRITICAL_ERROR", "NO_RESULTS_ON_PAGE", "PARTIAL_SUCCESS", + "QUOTA_INFO_UNAVAILABLE", "REQUIRED_TOS_AGREEMENT", "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", "RESOURCE_NOT_DELETED", @@ -47139,46 +72772,48 @@ false, false, false, + false, false ], "enumDescriptions": [ - "Warning about failed cleanup of transient changes made by a failed operation.", + "Warning about failed cleanup of transient changes made by a failed\noperation.", "A link to a deprecated resource was created.", - "When deploying and at least one of the resources has a type marked as deprecated", + "When deploying and at least one of the resources has a type marked as\ndeprecated", "The user created a boot disk that is larger than image size.", - "When deploying and at least one of the resources has a type marked as experimental", + "When deploying and at least one of the resources has a type marked as\nexperimental", "Warning that is present in an external api call", - "Warning that value of a field has been overridden. Deprecated unused field.", + "Warning that value of a field has been overridden.\nDeprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", - "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is\nnot of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", - "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", + "Resource can't be retrieved due to list overhead quota exceed\nwhich captures the amount of resources filtered out by\nuser-defined list filter.", "A resource depends on a missing type", - "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's nextHopIp address is not assigned to an instance on the\nnetwork.", "The route's next hop instance cannot ip forward.", - "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not have an\nipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", - "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that is not on the\nsame network as the route.", "The route's next hop instance does not have a status of RUNNING.", - "Error which is not critical. We decided to continue the process despite the mentioned error.", + "Error which is not critical. We decided to continue the process despite\nthe mentioned error.", "No results are present on a particular list page.", "Success is reported, but some results may be missing due to errors", - "The user attempted to use a resource that requires a TOS they have not accepted.", + "Quota information is not available to client requests (e.g:\nregions.list).", + "The user attempted to use a resource that requires a TOS they have not\naccepted.", "Warning that a resource is in use.", - "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "One or more of the resources set to auto-delete could not be deleted\nbecause they were in use.", "When a resource schema validation is ignored.", - "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", + "Instance template used in instance group manager is valid as such, but\nits application does not make a lot of sense, because it allows only\nsingle instance in instance group.", "When undeclared properties in the schema are present", "A given scope cannot be reached." ], "type": "string" }, "data": { - "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", + "description": "[Output Only] Metadata about this warning in key:\nvalue format. For example:\n\n\"data\": [\n {\n \"key\": \"scope\",\n \"value\": \"zones/us-east1-d\"\n }", "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).", + "description": "[Output Only] A key that provides more detail on the warning being\nreturned. For example, for warnings where there are no results in a list\nrequest for a particular zone, this key might be scope and\nthe key value might be the zone name. Other examples might be a key\nindicating a deprecated resource and a suggested replacement, or a\nwarning about invalid network settings (for example, if an instance\nattempts to perform IP forwarding but is not enabled for IP forwarding).", "type": "string" }, "value": { @@ -47200,145 +72835,404 @@ }, "type": "object" }, - "HealthCheckLogConfig": { - "description": "Configuration of logging on a health check. If logging is enabled, logs will be exported to Stackdriver.", - "id": "HealthCheckLogConfig", + "InterconnectAttachmentConfigurationConstraints": { + "id": "InterconnectAttachmentConfigurationConstraints", "properties": { - "enable": { - "description": "Indicates whether or not to export logs. This is false by default, which means no health check logging will be done.", - "type": "boolean" + "bgpMd5": { + "description": "Output only. [Output Only] Whether the attachment's BGP session\nrequires/allows/disallows BGP MD5 authentication. This can take one of\nthe following values: MD5_OPTIONAL, MD5_REQUIRED, MD5_UNSUPPORTED.\n\nFor example, a Cross-Cloud Interconnect connection to a remote cloud\nprovider that requires BGP MD5 authentication has the\ninterconnectRemoteLocation attachment_configuration_constraints.bgp_md5\nfield set to MD5_REQUIRED, and that property is propagated to the\nattachment. Similarly, if BGP MD5 is MD5_UNSUPPORTED, an error is\nreturned if MD5 is requested.", + "enum": [ + "MD5_OPTIONAL", + "MD5_REQUIRED", + "MD5_UNSUPPORTED" + ], + "enumDescriptions": [ + "MD5_OPTIONAL: BGP MD5 authentication is supported and can optionally be\nconfigured.", + "MD5_REQUIRED: BGP MD5 authentication must be configured.", + "MD5_UNSUPPORTED: BGP MD5 authentication must not be configured" + ], + "readOnly": true, + "type": "string" + }, + "bgpPeerAsnRanges": { + "description": "Output only. [Output Only] List of ASN ranges that the remote location is known to\nsupport. Formatted as an array of inclusive ranges {min: min-value, max:\nmax-value}. For example, [{min: 123, max: 123}, {min: 64512, max: 65534}]\nallows the peer ASN to be 123 or anything in the range 64512-65534.\n\nThis field is only advisory. Although the API accepts other ranges, these\nare the ranges that we recommend.", + "items": { + "$ref": "InterconnectAttachmentConfigurationConstraintsBgpPeerASNRange" + }, + "readOnly": true, + "type": "array" } }, "type": "object" }, - "HealthCheckReference": { - "description": "A full or valid partial URL to a health check. For example, the following are valid URLs: - https://www.googleapis.com/compute/beta/projects/project-id/global/httpHealthChecks/health-check - projects/project-id/global/httpHealthChecks/health-check - global/httpHealthChecks/health-check ", - "id": "HealthCheckReference", + "InterconnectAttachmentConfigurationConstraintsBgpPeerASNRange": { + "id": "InterconnectAttachmentConfigurationConstraintsBgpPeerASNRange", "properties": { - "healthCheck": { - "type": "string" + "max": { + "format": "uint32", + "type": "integer" + }, + "min": { + "format": "uint32", + "type": "integer" } }, "type": "object" }, - "HealthCheckService": { - "description": "Represents a Health-Check as a Service resource.", - "id": "HealthCheckService", + "InterconnectAttachmentGroup": { + "description": "An interconnect attachment group resource allows customers to create,\nanalyze, and expand highly available deployments.", + "id": "InterconnectAttachmentGroup", "properties": { + "attachments": { + "additionalProperties": { + "$ref": "InterconnectAttachmentGroupAttachment" + }, + "description": "Attachments in the AttachmentGroup. Keys are arbitrary user-specified\nstrings. Users are encouraged, but not required, to use their preferred\nformat for resource links as keys.\nNote that there are add-members and remove-members methods in gcloud.\nThe size of this map is limited by an \"Attachments per group\" quota.", + "type": "object" + }, + "configured": { + "$ref": "InterconnectAttachmentGroupConfigured", + "readOnly": true + }, "creationTimestamp": { - "description": "[Output Only] Creation timestamp in RFC3339 text format.", + "description": "Output only. [Output Only] Creation timestamp inRFC3339\ntext format.", + "readOnly": true, "type": "string" }, "description": { - "description": "An optional description of this resource. Provide this property when you create the resource.", + "description": "An optional description of this resource. Provide this property when you\ncreate the resource.", "type": "string" }, - "fingerprint": { - "description": "Fingerprint of this resource. A hash of the contents stored in this object. This field is used in optimistic locking. This field will be ignored when inserting a HealthCheckService. An up-to-date fingerprint must be provided in order to patch/update the HealthCheckService; Otherwise, the request will fail with error 412 conditionNotMet. To see the latest fingerprint, make a get() request to retrieve the HealthCheckService.", - "format": "byte", + "etag": { + "description": "Opaque system-generated token that uniquely identifies the configuration.\nIf provided when patching a configuration in update mode, the provided\ntoken must match the current token or the update is rejected. This provides\na reliable means of doing read-modify-write (optimistic locking) as\ndescribed byAIP 154.", "type": "string" }, - "healthChecks": { - "description": "A list of URLs to the HealthCheck resources. Must have at least one HealthCheck, and not more than 10 for regional HealthCheckService, and not more than 1 for global HealthCheckService. HealthCheck resources must have portSpecification=USE_SERVING_PORT or portSpecification=USE_FIXED_PORT. For regional HealthCheckService, the HealthCheck must be regional and in the same region. For global HealthCheckService, HealthCheck must be global. Mix of regional and global HealthChecks is not supported. Multiple regional HealthChecks must belong to the same region. Regional HealthChecks must belong to the same region as zones of NetworkEndpointGroups. For global HealthCheckService using global INTERNET_IP_PORT NetworkEndpointGroups, the global HealthChecks must specify sourceRegions, and HealthChecks that specify sourceRegions can only be used with global INTERNET_IP_PORT NetworkEndpointGroups.", + "id": { + "description": "Output only. [Output Only] The unique identifier for the resource type. The server\ngenerates this identifier.", + "format": "uint64", + "readOnly": true, + "type": "string" + }, + "intent": { + "$ref": "InterconnectAttachmentGroupIntent" + }, + "interconnectGroup": { + "description": "The URL of an InterconnectGroup that groups these Attachments'\nInterconnects. Customers do not need to set this unless directed by\nGoogle Support.", + "type": "string" + }, + "kind": { + "default": "compute#interconnectAttachmentGroup", + "description": "Output only. [Output Only] Type of the resource. Always\ncompute#interconnectAttachmentGroup.", + "readOnly": true, + "type": "string" + }, + "logicalStructure": { + "$ref": "InterconnectAttachmentGroupLogicalStructure", + "readOnly": true + }, + "name": { + "description": "Name of the resource. Provided by the client when the resource is created.\nThe name must be 1-63 characters long, and comply withRFC1035.\nSpecifically, the name must be 1-63 characters long and match the regular\nexpression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first\ncharacter must be a lowercase letter, and all following characters must\nbe a dash, lowercase letter, or digit, except the last character, which\ncannot be a dash.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "type": "string" + }, + "selfLink": { + "description": "Output only. [Output Only] Server-defined URL for the resource.", + "readOnly": true, + "type": "string" + } + }, + "type": "object" + }, + "InterconnectAttachmentGroupAttachment": { + "description": "An Attachment in this AttachmentGroup.", + "id": "InterconnectAttachmentGroupAttachment", + "properties": { + "attachment": { + "type": "string" + } + }, + "type": "object" + }, + "InterconnectAttachmentGroupConfigured": { + "description": "[Output Only] The redundancy this group is configured to support. The way a\nuser queries what SLA their Attachment gets is by looking at this field of\nthe Attachment's AttachmentGroup.", + "id": "InterconnectAttachmentGroupConfigured", + "properties": { + "availabilitySla": { + "$ref": "InterconnectAttachmentGroupConfiguredAvailabilitySLA", + "readOnly": true + } + }, + "type": "object" + }, + "InterconnectAttachmentGroupConfiguredAvailabilitySLA": { + "description": "[Output Only] Which SLA this group is configured to support, and why this\ngroup does or does not meet that SLA's requirements.", + "id": "InterconnectAttachmentGroupConfiguredAvailabilitySLA", + "properties": { + "effectiveSla": { + "enum": [ + "EFFECTIVE_SLA_UNSPECIFIED", + "NO_SLA", + "PRODUCTION_CRITICAL", + "PRODUCTION_NON_CRITICAL" + ], + "enumDescriptions": [ + "", + "", + "", + "" + ], + "readOnly": true, + "type": "string" + }, + "intendedSlaBlockers": { + "items": { + "$ref": "InterconnectAttachmentGroupConfiguredAvailabilitySLAIntendedSlaBlockers" + }, + "readOnly": true, + "type": "array" + } + }, + "type": "object" + }, + "InterconnectAttachmentGroupConfiguredAvailabilitySLAIntendedSlaBlockers": { + "description": "[Output Only] Reasons why configuration.availabilitySLA.sla differs from\nintent.availabilitySLA. This list is empty if and only if those are the\nsame.", + "id": "InterconnectAttachmentGroupConfiguredAvailabilitySLAIntendedSlaBlockers", + "properties": { + "attachments": { + "description": "Output only. [Output Only] URLs of any particular Attachments to explain this\nblocker in more detail.", "items": { "type": "string" }, + "readOnly": true, "type": "array" }, - "healthStatusAggregationPolicy": { - "description": "Optional. Policy for how the results from multiple health checks for the same endpoint are aggregated. Defaults to NO_AGGREGATION if unspecified. - NO_AGGREGATION. An EndpointHealth message is returned for each pair in the health check service. - AND. If any health check of an endpoint reports UNHEALTHY, then UNHEALTHY is the HealthState of the endpoint. If all health checks report HEALTHY, the HealthState of the endpoint is HEALTHY. . This is only allowed with regional HealthCheckService.", + "blockerType": { "enum": [ - "AND", - "NO_AGGREGATION" + "BLOCKER_TYPE_UNSPECIFIED", + "INCOMPATIBLE_METROS", + "INCOMPATIBLE_REGIONS", + "MISSING_GLOBAL_ROUTING", + "NO_ATTACHMENTS", + "NO_ATTACHMENTS_IN_METRO_AND_ZONE", + "OTHER" ], "enumDescriptions": [ - "If any backend's health check reports UNHEALTHY, then UNHEALTHY is the HealthState of the entire health check service. If all backend's are healthy, the HealthState of the health check service is HEALTHY.", - "An EndpointHealth message is returned for each backend in the health check service." + "", + "", + "", + "", + "", + "", + "" ], + "readOnly": true, "type": "string" }, - "id": { - "description": "[Output Only] The unique identifier for the resource. This identifier is defined by the server.", - "format": "uint64", + "documentationLink": { + "description": "Output only. [Output Only] The url of Google Cloud public documentation explaining\nthis requirement. This is set for every type of requirement.", + "readOnly": true, "type": "string" }, - "kind": { - "default": "compute#healthCheckService", - "description": "[Output only] Type of the resource. Always compute#healthCheckServicefor health check services.", + "explanation": { + "description": "Output only. [Output Only] A human-readable explanation of this requirement and\nwhy it's not met. This is set for every type of requirement.", + "readOnly": true, "type": "string" }, - "name": { - "description": "Name of the resource. 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" + "metros": { + "description": "Output only. [Output Only] Metros used to explain this blocker in more detail.\nThese are three-letter lowercase strings like \"iad\". This will be set\nfor some blockers (like NO_ATTACHMENTS_IN_METRO_AND_ZONE) but does\nnot apply to others.", + "items": { + "type": "string" + }, + "readOnly": true, + "type": "array" }, - "networkEndpointGroups": { - "description": "A list of URLs to the NetworkEndpointGroup resources. Must not have more than 100. For regional HealthCheckService, NEGs must be in zones in the region of the HealthCheckService. For global HealthCheckServices, the NetworkEndpointGroups must be global INTERNET_IP_PORT.", + "regions": { + "description": "Output only. [Output Only] Regions used to explain this blocker in more\ndetail. These are region names formatted like \"us-central1\". This\nwill be set for some blockers (like INCOMPATIBLE_REGIONS) but does\nnot apply to others.", "items": { "type": "string" }, + "readOnly": true, "type": "array" }, - "notificationEndpoints": { - "description": "A list of URLs to the NotificationEndpoint resources. Must not have more than 10. A list of endpoints for receiving notifications of change in health status. For regional HealthCheckService, NotificationEndpoint must be regional and in the same region. For global HealthCheckService, NotificationEndpoint must be global.", + "zones": { + "description": "Output only. [Output Only] Zones used to explain this blocker in more detail.\nFormat is \"zone1\" and/or \"zone2\". This will be set for some blockers\n(like MISSING_ZONE) but does not apply to others.", "items": { "type": "string" }, + "readOnly": true, + "type": "array" + } + }, + "type": "object" + }, + "InterconnectAttachmentGroupIntent": { + "description": "The user's intent for this AttachmentGroup. This is the only required field\nbesides the name that must be specified on group creation.", + "id": "InterconnectAttachmentGroupIntent", + "properties": { + "availabilitySla": { + "enum": [ + "AVAILABILITY_SLA_UNSPECIFIED", + "NO_SLA", + "PRODUCTION_CRITICAL", + "PRODUCTION_NON_CRITICAL" + ], + "enumDescriptions": [ + "", + "", + "", + "" + ], + "type": "string" + } + }, + "type": "object" + }, + "InterconnectAttachmentGroupLogicalStructure": { + "description": "[Output Only] An analysis of the logical layout of Attachments in this\ngroup. Every Attachment in the group is shown once in this structure.", + "id": "InterconnectAttachmentGroupLogicalStructure", + "properties": { + "regions": { + "items": { + "$ref": "InterconnectAttachmentGroupLogicalStructureRegion" + }, + "readOnly": true, + "type": "array" + } + }, + "type": "object" + }, + "InterconnectAttachmentGroupLogicalStructureRegion": { + "description": "[Output Only] The regions Attachments in this group are in.", + "id": "InterconnectAttachmentGroupLogicalStructureRegion", + "properties": { + "metros": { + "items": { + "$ref": "InterconnectAttachmentGroupLogicalStructureRegionMetro" + }, + "readOnly": true, "type": "array" }, "region": { - "description": "[Output Only] URL of the region where the health check service resides. This field is not applicable to global health check services. You must specify this field as part of the HTTP request URL. It is not settable as a field in the request body.", + "description": "Output only. [Output Only] The name of a region, like \"us-central1\".", + "readOnly": true, + "type": "string" + } + }, + "type": "object" + }, + "InterconnectAttachmentGroupLogicalStructureRegionMetro": { + "description": "[Output Only] The metros of Attachments in this group in this region.", + "id": "InterconnectAttachmentGroupLogicalStructureRegionMetro", + "properties": { + "facilities": { + "items": { + "$ref": "InterconnectAttachmentGroupLogicalStructureRegionMetroFacility" + }, + "readOnly": true, + "type": "array" + }, + "metro": { + "description": "Output only. [Output Only] The name of the metro, as a three-letter lowercase\nstring like \"iad\". This is the first component of the location of an\nInterconnect.", + "readOnly": true, + "type": "string" + } + }, + "type": "object" + }, + "InterconnectAttachmentGroupLogicalStructureRegionMetroFacility": { + "description": "[Output Only] The facilities used for this group's Attachments'\nInterconnects.", + "id": "InterconnectAttachmentGroupLogicalStructureRegionMetroFacility", + "properties": { + "facility": { + "description": "Output only. [Output Only] The name of a facility, like \"iad-1234\".", + "readOnly": true, "type": "string" }, - "selfLink": { - "description": "[Output Only] Server-defined URL for the resource.", + "zones": { + "items": { + "$ref": "InterconnectAttachmentGroupLogicalStructureRegionMetroFacilityZone" + }, + "readOnly": true, + "type": "array" + } + }, + "type": "object" + }, + "InterconnectAttachmentGroupLogicalStructureRegionMetroFacilityZone": { + "description": "[Output Only] The zones that Attachments in this group are present\nin, in the given facilities. This is inherited from their\nInterconnects.", + "id": "InterconnectAttachmentGroupLogicalStructureRegionMetroFacilityZone", + "properties": { + "attachments": { + "description": "Output only. [Output Only] URLs of Attachments in the given zone, to the given\nregion, on Interconnects in the given facility and metro. Every\nAttachment in the AG has such an entry.", + "items": { + "type": "string" + }, + "readOnly": true, + "type": "array" + }, + "zone": { + "description": "Output only. [Output Only] The name of a zone, either \"zone1\" or \"zone2\".", + "readOnly": true, "type": "string" } }, "type": "object" }, - "HealthCheckServiceReference": { - "description": "A full or valid partial URL to a health check service. For example, the following are valid URLs: - https://www.googleapis.com/compute/beta/projects/project-id/regions/us-west1/healthCheckServices/health-check-service - projects/project-id/regions/us-west1/healthCheckServices/health-check-service - regions/us-west1/healthCheckServices/health-check-service ", - "id": "HealthCheckServiceReference", + "InterconnectAttachmentGroupsGetOperationalStatusResponse": { + "description": "Response for the InterconnectAttachmentGroupsGetOperationalStatusResponse.", + "id": "InterconnectAttachmentGroupsGetOperationalStatusResponse", "properties": { - "healthCheckService": { + "etag": { "type": "string" + }, + "result": { + "$ref": "InterconnectAttachmentGroupsOperationalStatus" } }, "type": "object" }, - "HealthCheckServicesList": { - "id": "HealthCheckServicesList", + "InterconnectAttachmentGroupsListResponse": { + "id": "InterconnectAttachmentGroupsListResponse", "properties": { + "etag": { + "type": "string" + }, "id": { "description": "[Output Only] Unique identifier for the resource; defined by the server.", "type": "string" }, "items": { - "description": "A list of HealthCheckService resources.", + "description": "A list of InterconnectAttachmentGroup resources.", "items": { - "$ref": "HealthCheckService" + "$ref": "InterconnectAttachmentGroup" }, "type": "array" }, "kind": { - "default": "compute#healthCheckServicesList", - "description": "[Output Only] Type of the resource. Always compute#healthCheckServicesList for lists of HealthCheckServices.", + "default": "compute#interconnectAttachmentGroup", + "readOnly": true, "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.", + "description": "[Output Only] This token allows you to get the next page of results for\nlist requests. If the number of results is larger thanmaxResults, use the nextPageToken as a value for\nthe query parameter pageToken in the next list request.\nSubsequent list requests will have their own nextPageToken to\ncontinue paging through the results.", "type": "string" }, "selfLink": { "description": "[Output Only] Server-defined URL for this resource.", "type": "string" }, + "unreachables": { + "description": "Output only. [Output Only] Unreachable resources.\nend_interface:\nMixerListResponseWithEtagBuilder", + "items": { + "type": "string" + }, + "readOnly": true, + "type": "array" + }, "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.", + "description": "[Output Only] A warning code, if applicable. For example, Compute\nEngine returns NO_RESULTS_ON_PAGE if there\nare no results in the response.", "enum": [ "CLEANUP_FAILED", "DEPRECATED_RESOURCE_USED", @@ -47361,6 +73255,7 @@ "NOT_CRITICAL_ERROR", "NO_RESULTS_ON_PAGE", "PARTIAL_SUCCESS", + "QUOTA_INFO_UNAVAILABLE", "REQUIRED_TOS_AGREEMENT", "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", "RESOURCE_NOT_DELETED", @@ -47397,46 +73292,48 @@ false, false, false, + false, false ], "enumDescriptions": [ - "Warning about failed cleanup of transient changes made by a failed operation.", + "Warning about failed cleanup of transient changes made by a failed\noperation.", "A link to a deprecated resource was created.", - "When deploying and at least one of the resources has a type marked as deprecated", + "When deploying and at least one of the resources has a type marked as\ndeprecated", "The user created a boot disk that is larger than image size.", - "When deploying and at least one of the resources has a type marked as experimental", + "When deploying and at least one of the resources has a type marked as\nexperimental", "Warning that is present in an external api call", - "Warning that value of a field has been overridden. Deprecated unused field.", + "Warning that value of a field has been overridden.\nDeprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", - "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is\nnot of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", - "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", + "Resource can't be retrieved due to list overhead quota exceed\nwhich captures the amount of resources filtered out by\nuser-defined list filter.", "A resource depends on a missing type", - "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's nextHopIp address is not assigned to an instance on the\nnetwork.", "The route's next hop instance cannot ip forward.", - "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not have an\nipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", - "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that is not on the\nsame network as the route.", "The route's next hop instance does not have a status of RUNNING.", - "Error which is not critical. We decided to continue the process despite the mentioned error.", + "Error which is not critical. We decided to continue the process despite\nthe mentioned error.", "No results are present on a particular list page.", "Success is reported, but some results may be missing due to errors", - "The user attempted to use a resource that requires a TOS they have not accepted.", + "Quota information is not available to client requests (e.g:\nregions.list).", + "The user attempted to use a resource that requires a TOS they have not\naccepted.", "Warning that a resource is in use.", - "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "One or more of the resources set to auto-delete could not be deleted\nbecause they were in use.", "When a resource schema validation is ignored.", - "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", + "Instance template used in instance group manager is valid as such, but\nits application does not make a lot of sense, because it allows only\nsingle instance in instance group.", "When undeclared properties in the schema are present", "A given scope cannot be reached." ], "type": "string" }, "data": { - "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", + "description": "[Output Only] Metadata about this warning in key:\nvalue format. For example:\n\n\"data\": [\n {\n \"key\": \"scope\",\n \"value\": \"zones/us-east1-d\"\n }", "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).", + "description": "[Output Only] A key that provides more detail on the warning being\nreturned. For example, for warnings where there are no results in a list\nrequest for a particular zone, this key might be scope and\nthe key value might be the zone name. Other examples might be a key\nindicating a deprecated resource and a suggested replacement, or a\nwarning about invalid network settings (for example, if an instance\nattempts to perform IP forwarding but is not enabled for IP forwarding).", "type": "string" }, "value": { @@ -47458,46 +73355,237 @@ }, "type": "object" }, - "HealthChecksAggregatedList": { - "id": "HealthChecksAggregatedList", + "InterconnectAttachmentGroupsOperationalStatus": { + "id": "InterconnectAttachmentGroupsOperationalStatus", + "properties": { + "attachmentStatuses": { + "items": { + "$ref": "InterconnectAttachmentGroupsOperationalStatusAttachmentStatus" + }, + "readOnly": true, + "type": "array" + }, + "configured": { + "$ref": "InterconnectAttachmentGroupConfigured", + "readOnly": true + }, + "groupStatus": { + "description": "Output only. Summarizes the status of the group.", + "enum": [ + "DEGRADED", + "FULLY_DOWN", + "FULLY_UP", + "UNSPECIFIED" + ], + "enumDescriptions": [ + "", + "", + "", + "" + ], + "readOnly": true, + "type": "string" + }, + "intent": { + "$ref": "InterconnectAttachmentGroupIntent", + "readOnly": true + }, + "operational": { + "$ref": "InterconnectAttachmentGroupConfigured", + "description": "Output only. The operational state of the group, including only active Attachments.", + "readOnly": true + } + }, + "type": "object" + }, + "InterconnectAttachmentGroupsOperationalStatusAttachmentStatus": { + "description": "The status of one Attachment in the group. List order is arbitrary.", + "id": "InterconnectAttachmentGroupsOperationalStatusAttachmentStatus", + "properties": { + "adminEnabled": { + "description": "Output only. Whether this Attachment is enabled. This becomes false when the customer\ndrains their Attachment.", + "readOnly": true, + "type": "boolean" + }, + "attachment": { + "description": "Output only. The URL of the Attachment being described.", + "readOnly": true, + "type": "string" + }, + "isActive": { + "description": "Output only. Whether this Attachment is participating in the redundant configuration.\nThis will be ACTIVE if and only if the status below is CONNECTION_UP.\nAny INACTIVE Attachments are excluded from the analysis that generates\noperational.availabilitySLA.", + "enum": [ + "ACTIVE", + "INACTIVE", + "UNSPECIFIED" + ], + "enumDescriptions": [ + "", + "", + "" + ], + "readOnly": true, + "type": "string" + }, + "status": { + "description": "Output only. Whether this Attachment is active, and if so, whether BGP is up.", + "enum": [ + "ATTACHMENT_STATUS_UNKNOWN", + "CONNECTION_DISABLED", + "CONNECTION_DOWN", + "CONNECTION_UP", + "DEFUNCT", + "IPSEC_CONFIGURATION_NEEDED_STATUS", + "IPSEC_READY_TO_RESUME_FLOW_STATUS", + "IPV4_DOWN_IPV6_UP", + "IPV4_UP_IPV6_DOWN", + "PARTNER_REQUEST_RECEIVED", + "PENDING_CUSTOMER", + "PENDING_PARTNER", + "PROVISIONED", + "ROUTER_CONFIGURATION_BROKEN", + "UNPROVISIONED" + ], + "enumDescriptions": [ + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "" + ], + "readOnly": true, + "type": "string" + } + }, + "type": "object" + }, + "InterconnectAttachmentL2Forwarding": { + "description": "L2 Interconnect Attachment related configuration.", + "id": "InterconnectAttachmentL2Forwarding", + "properties": { + "applianceMappings": { + "additionalProperties": { + "$ref": "InterconnectAttachmentL2ForwardingApplianceMapping" + }, + "description": "Optional. A map of VLAN tags to appliances and optional inner mapping\nrules. If VLANs are not explicitly mapped to any appliance, the\ndefaultApplianceIpAddress is used.\n\nEach VLAN tag can be a single number or a range of numbers in the range\nof 1 to 4094, e.g., \"1\" or \"4001-4094\". Non-empty and non-overlapping\nVLAN tag ranges are enforced, and violating operations will be rejected.\n\nThe VLAN tags in the Ethernet header must use an ethertype value of\n0x88A8 or 0x8100.", + "type": "object" + }, + "defaultApplianceIpAddress": { + "description": "Optional. A single IPv4 or IPv6 address used as the default destination\nIP when there is no VLAN mapping result found.\n\nUnset field (null-value) indicates the unmatched packet should be\ndropped.", + "type": "string" + }, + "geneveHeader": { + "$ref": "InterconnectAttachmentL2ForwardingGeneveHeader", + "description": "Optional. It represents the structure of a Geneve (Generic Network\nVirtualization Encapsulation) header, as defined in RFC8926. It encapsulates packets from various\nprotocols (e.g., Ethernet, IPv4, IPv6) for use in network virtualization\nenvironments." + }, + "network": { + "description": "Required. Resource URL of the network to which this attachment belongs.", + "type": "string" + }, + "tunnelEndpointIpAddress": { + "description": "Required. A single IPv4 or IPv6 address. This address will be used as the\nsource IP address for packets sent to the appliances, and must be used as\nthe destination IP address for packets that should be sent out through\nthis attachment.", + "type": "string" + } + }, + "type": "object" + }, + "InterconnectAttachmentL2ForwardingApplianceMapping": { + "description": "Two-level VLAN-to-Appliance mapping rule.", + "id": "InterconnectAttachmentL2ForwardingApplianceMapping", + "properties": { + "applianceIpAddress": { + "description": "Optional. A single IPv4 or IPv6 address used as the destination IP\naddress for ingress packets that match on a VLAN tag, but do not match\na more specific inner VLAN tag.\n\nUnset field (null-value) indicates both VLAN tags are required to be\nmapped. Otherwise, defaultApplianceIpAddress is used.", + "type": "string" + }, + "innerVlanToApplianceMappings": { + "description": "Optional. Used to match against the inner VLAN when the packet\ncontains two VLAN tags.\n\nA list of mapping rules from inner VLAN tags to IP addresses. If the\ninner VLAN is not explicitly mapped to an IP address range, the\napplianceIpAddress is used.", + "items": { + "$ref": "InterconnectAttachmentL2ForwardingApplianceMappingInnerVlanToApplianceMapping" + }, + "type": "array" + }, + "name": { + "description": "Optional. The name of this appliance mapping rule.", + "type": "string" + } + }, + "type": "object" + }, + "InterconnectAttachmentL2ForwardingApplianceMappingInnerVlanToApplianceMapping": { + "description": "The inner VLAN-to-Appliance mapping.", + "id": "InterconnectAttachmentL2ForwardingApplianceMappingInnerVlanToApplianceMapping", + "properties": { + "innerApplianceIpAddress": { + "description": "Required in this object. A single IPv4 or IPv6 address used as the\ndestination IP address for ingress packets that match on both VLAN\ntags.", + "type": "string" + }, + "innerVlanTags": { + "description": "Required in this object. Used to match the inner VLAN tag on the\npacket. Each entry can be a single number or a range of numbers in\nthe range of 1 to 4094, e.g., [\"1\", \"4001-4094\"] is valid. Non-empty\nand Non-overlapping VLAN tag ranges are enforced, and violating\noperations will be rejected.\n\nThe inner VLAN tags must have an ethertype value of 0x8100.", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "InterconnectAttachmentL2ForwardingGeneveHeader": { + "description": "GeneveHeader related configurations.", + "id": "InterconnectAttachmentL2ForwardingGeneveHeader", + "properties": { + "vni": { + "description": "Optional. VNI is a 24-bit unique virtual network identifier, from 0 to\n16,777,215.", + "format": "uint32", + "type": "integer" + } + }, + "type": "object" + }, + "InterconnectAttachmentList": { + "description": "Response to the list request, and contains a list of interconnect\nattachments.", + "id": "InterconnectAttachmentList", "properties": { "id": { "description": "[Output Only] Unique identifier for the resource; defined by the server.", "type": "string" }, "items": { - "additionalProperties": { - "$ref": "HealthChecksScopedList", - "description": "Name of the scope containing this set of HealthChecks." + "description": "A list of InterconnectAttachment resources.", + "items": { + "$ref": "InterconnectAttachment" }, - "description": "A list of HealthChecksScopedList resources.", - "type": "object" + "type": "array" }, "kind": { - "default": "compute#healthChecksAggregatedList", - "description": "Type of resource.", + "default": "compute#interconnectAttachmentList", + "description": "Output only. [Output Only] Type of resource. Alwayscompute#interconnectAttachmentList for lists of interconnect\nattachments.", + "readOnly": true, "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.", + "description": "[Output Only] This token allows you to get the next page of results for\nlist requests. If the number of results is larger thanmaxResults, use the nextPageToken as a value for\nthe query parameter pageToken in the next list request.\nSubsequent list requests will have their own nextPageToken to\ncontinue paging through the results.", "type": "string" }, "selfLink": { - "description": "[Output Only] Server-defined URL for this resource.", + "description": "Output only. [Output Only] Server-defined URL for this resource.", + "readOnly": true, "type": "string" }, - "unreachables": { - "description": "[Output Only] Unreachable resources.", - "items": { - "type": "string" - }, - "type": "array" - }, "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.", + "description": "[Output Only] A warning code, if applicable. For example, Compute\nEngine returns NO_RESULTS_ON_PAGE if there\nare no results in the response.", "enum": [ "CLEANUP_FAILED", "DEPRECATED_RESOURCE_USED", @@ -47520,6 +73608,7 @@ "NOT_CRITICAL_ERROR", "NO_RESULTS_ON_PAGE", "PARTIAL_SUCCESS", + "QUOTA_INFO_UNAVAILABLE", "REQUIRED_TOS_AGREEMENT", "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", "RESOURCE_NOT_DELETED", @@ -47556,46 +73645,48 @@ false, false, false, + false, false ], "enumDescriptions": [ - "Warning about failed cleanup of transient changes made by a failed operation.", + "Warning about failed cleanup of transient changes made by a failed\noperation.", "A link to a deprecated resource was created.", - "When deploying and at least one of the resources has a type marked as deprecated", + "When deploying and at least one of the resources has a type marked as\ndeprecated", "The user created a boot disk that is larger than image size.", - "When deploying and at least one of the resources has a type marked as experimental", + "When deploying and at least one of the resources has a type marked as\nexperimental", "Warning that is present in an external api call", - "Warning that value of a field has been overridden. Deprecated unused field.", + "Warning that value of a field has been overridden.\nDeprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", - "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is\nnot of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", - "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", + "Resource can't be retrieved due to list overhead quota exceed\nwhich captures the amount of resources filtered out by\nuser-defined list filter.", "A resource depends on a missing type", - "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's nextHopIp address is not assigned to an instance on the\nnetwork.", "The route's next hop instance cannot ip forward.", - "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not have an\nipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", - "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that is not on the\nsame network as the route.", "The route's next hop instance does not have a status of RUNNING.", - "Error which is not critical. We decided to continue the process despite the mentioned error.", + "Error which is not critical. We decided to continue the process despite\nthe mentioned error.", "No results are present on a particular list page.", "Success is reported, but some results may be missing due to errors", - "The user attempted to use a resource that requires a TOS they have not accepted.", + "Quota information is not available to client requests (e.g:\nregions.list).", + "The user attempted to use a resource that requires a TOS they have not\naccepted.", "Warning that a resource is in use.", - "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "One or more of the resources set to auto-delete could not be deleted\nbecause they were in use.", "When a resource schema validation is ignored.", - "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", + "Instance template used in instance group manager is valid as such, but\nits application does not make a lot of sense, because it allows only\nsingle instance in instance group.", "When undeclared properties in the schema are present", "A given scope cannot be reached." ], "type": "string" }, "data": { - "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", + "description": "[Output Only] Metadata about this warning in key:\nvalue format. For example:\n\n\"data\": [\n {\n \"key\": \"scope\",\n \"value\": \"zones/us-east1-d\"\n }", "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).", + "description": "[Output Only] A key that provides more detail on the warning being\nreturned. For example, for warnings where there are no results in a list\nrequest for a particular zone, this key might be scope and\nthe key value might be the zone name. Other examples might be a key\nindicating a deprecated resource and a suggested replacement, or a\nwarning about invalid network settings (for example, if an instance\nattempts to perform IP forwarding but is not enabled for IP forwarding).", "type": "string" }, "value": { @@ -47617,21 +73708,66 @@ }, "type": "object" }, - "HealthChecksScopedList": { - "id": "HealthChecksScopedList", + "InterconnectAttachmentParams": { + "description": "Additional interconnect attachment parameters.", + "id": "InterconnectAttachmentParams", "properties": { - "healthChecks": { - "description": "A list of HealthChecks contained in this scope.", + "resourceManagerTags": { + "additionalProperties": { + "type": "string" + }, + "description": "Tag keys/values directly bound to this resource.\nTag keys and values have the same definition as resource\nmanager tags. The field is allowed for INSERT\nonly. The keys/values to set on the resource should be specified in\neither ID { : } or Namespaced format\n{ : }.\nFor example the following are valid inputs:\n* {\"tagKeys/333\" : \"tagValues/444\", \"tagKeys/123\" : \"tagValues/456\"}\n* {\"123/environment\" : \"production\", \"345/abc\" : \"xyz\"}\nNote:\n* Invalid combinations of ID \u0026 namespaced format is not supported. For\n instance: {\"123/environment\" : \"tagValues/444\"} is invalid.\n* Inconsistent format is not supported. For instance:\n {\"tagKeys/333\" : \"tagValues/444\", \"123/env\" : \"prod\"} is invalid.", + "type": "object" + } + }, + "type": "object" + }, + "InterconnectAttachmentPartnerMetadata": { + "description": "Informational metadata about Partner attachments from Partners to display\nto customers. These fields are propagated from PARTNER_PROVIDER\nattachments to their corresponding PARTNER attachments.", + "id": "InterconnectAttachmentPartnerMetadata", + "properties": { + "interconnectName": { + "description": "Plain text name of the Interconnect this attachment is connected to, as\ndisplayed in the Partner's portal. For instance \"Chicago 1\".\nThis value may be validated to match approved Partner values.", + "type": "string" + }, + "partnerName": { + "description": "Plain text name of the Partner providing this attachment.\nThis value may be validated to match approved Partner values.", + "type": "string" + }, + "portalUrl": { + "description": "URL of the Partner's portal for this Attachment. Partners may customise\nthis to be a deep link to the specific resource on the Partner portal.\nThis value may be validated to match approved Partner values.", + "type": "string" + } + }, + "type": "object" + }, + "InterconnectAttachmentPrivateInfo": { + "description": "Information for an interconnect attachment when this belongs to an\ninterconnect of type DEDICATED.", + "id": "InterconnectAttachmentPrivateInfo", + "properties": { + "tag8021q": { + "description": "[Output Only] 802.1q encapsulation tag to be used for traffic between\nGoogle and the customer, going to and from this network and region.", + "format": "uint32", + "type": "integer" + } + }, + "type": "object" + }, + "InterconnectAttachmentsScopedList": { + "id": "InterconnectAttachmentsScopedList", + "properties": { + "interconnectAttachments": { + "description": "A list of interconnect attachments contained in this scope.", "items": { - "$ref": "HealthCheck" + "$ref": "InterconnectAttachment" }, "type": "array" }, "warning": { - "description": "Informational warning which replaces the list of backend services when the list is empty.", + "description": "Informational warning which replaces the list of addresses when\nthe list is empty.", "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.", + "description": "[Output Only] A warning code, if applicable. For example, Compute\nEngine returns NO_RESULTS_ON_PAGE if there\nare no results in the response.", "enum": [ "CLEANUP_FAILED", "DEPRECATED_RESOURCE_USED", @@ -47654,6 +73790,7 @@ "NOT_CRITICAL_ERROR", "NO_RESULTS_ON_PAGE", "PARTIAL_SUCCESS", + "QUOTA_INFO_UNAVAILABLE", "REQUIRED_TOS_AGREEMENT", "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", "RESOURCE_NOT_DELETED", @@ -47690,46 +73827,48 @@ false, false, false, + false, false ], "enumDescriptions": [ - "Warning about failed cleanup of transient changes made by a failed operation.", + "Warning about failed cleanup of transient changes made by a failed\noperation.", "A link to a deprecated resource was created.", - "When deploying and at least one of the resources has a type marked as deprecated", + "When deploying and at least one of the resources has a type marked as\ndeprecated", "The user created a boot disk that is larger than image size.", - "When deploying and at least one of the resources has a type marked as experimental", + "When deploying and at least one of the resources has a type marked as\nexperimental", "Warning that is present in an external api call", - "Warning that value of a field has been overridden. Deprecated unused field.", + "Warning that value of a field has been overridden.\nDeprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", - "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is\nnot of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", - "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", + "Resource can't be retrieved due to list overhead quota exceed\nwhich captures the amount of resources filtered out by\nuser-defined list filter.", "A resource depends on a missing type", - "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's nextHopIp address is not assigned to an instance on the\nnetwork.", "The route's next hop instance cannot ip forward.", - "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not have an\nipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", - "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that is not on the\nsame network as the route.", "The route's next hop instance does not have a status of RUNNING.", - "Error which is not critical. We decided to continue the process despite the mentioned error.", + "Error which is not critical. We decided to continue the process despite\nthe mentioned error.", "No results are present on a particular list page.", "Success is reported, but some results may be missing due to errors", - "The user attempted to use a resource that requires a TOS they have not accepted.", + "Quota information is not available to client requests (e.g:\nregions.list).", + "The user attempted to use a resource that requires a TOS they have not\naccepted.", "Warning that a resource is in use.", - "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "One or more of the resources set to auto-delete could not be deleted\nbecause they were in use.", "When a resource schema validation is ignored.", - "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", + "Instance template used in instance group manager is valid as such, but\nits application does not make a lot of sense, because it allows only\nsingle instance in instance group.", "When undeclared properties in the schema are present", "A given scope cannot be reached." ], "type": "string" }, "data": { - "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", + "description": "[Output Only] Metadata about this warning in key:\nvalue format. For example:\n\n\"data\": [\n {\n \"key\": \"scope\",\n \"value\": \"zones/us-east1-d\"\n }", "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).", + "description": "[Output Only] A key that provides more detail on the warning being\nreturned. For example, for warnings where there are no results in a list\nrequest for a particular zone, this key might be scope and\nthe key value might be the zone name. Other examples might be a key\nindicating a deprecated resource and a suggested replacement, or a\nwarning about invalid network settings (for example, if an instance\nattempts to perform IP forwarding but is not enabled for IP forwarding).", "type": "string" }, "value": { @@ -47751,400 +73890,666 @@ }, "type": "object" }, - "HealthStatus": { - "id": "HealthStatus", + "InterconnectCircuitInfo": { + "description": "Describes a single physical circuit between the Customer and Google.\nCircuitInfo objects are created by Google, so all fields are output only.", + "id": "InterconnectCircuitInfo", "properties": { - "annotations": { - "additionalProperties": { - "type": "string" - }, - "description": "Metadata defined as annotations for network endpoint.", - "type": "object" + "customerDemarcId": { + "description": "Customer-side demarc ID for this circuit.", + "type": "string" }, - "forwardingRule": { - "description": "URL of the forwarding rule associated with the health status of the instance.", + "googleCircuitId": { + "description": "Google-assigned unique ID for this circuit. Assigned at circuit turn-up.", "type": "string" }, - "forwardingRuleIp": { - "description": "A forwarding rule IP address assigned to this instance.", + "googleDemarcId": { + "description": "Google-side demarc ID for this circuit. Assigned at circuit turn-up and\nprovided by Google to the customer in the LOA.", "type": "string" + } + }, + "type": "object" + }, + "InterconnectDiagnostics": { + "description": "Diagnostics information about the Interconnect connection, which contains\ndetailed and current technical information about Google's side of the\nconnection.", + "id": "InterconnectDiagnostics", + "properties": { + "arpCaches": { + "description": "A list of InterconnectDiagnostics.ARPEntry objects,\ndescribing individual neighbors currently seen by the Google router in\nthe ARP cache for the Interconnect.\nThis will be empty when the Interconnect is not bundled.", + "items": { + "$ref": "InterconnectDiagnosticsARPEntry" + }, + "type": "array" }, - "healthState": { - "description": "Health state of the IPv4 address of the instance.", + "bundleAggregationType": { + "description": "The aggregation type of the bundle interface.", "enum": [ - "HEALTHY", - "UNHEALTHY" + "BUNDLE_AGGREGATION_TYPE_LACP", + "BUNDLE_AGGREGATION_TYPE_STATIC" ], "enumDescriptions": [ - "", - "" + "LACP is enabled.", + "LACP is disabled." ], "type": "string" }, - "instance": { - "description": "URL of the instance resource.", + "bundleOperationalStatus": { + "description": "The operational status of the bundle interface.", + "enum": [ + "BUNDLE_OPERATIONAL_STATUS_DOWN", + "BUNDLE_OPERATIONAL_STATUS_UP" + ], + "enumDescriptions": [ + "If bundleAggregationType is LACP: LACP is not established and/or all\nlinks in the bundle have DOWN operational status. If\nbundleAggregationType is STATIC: one or more links in the bundle has\nDOWN operational status.", + "If bundleAggregationType is LACP: LACP is established and at least one\nlink in the bundle has UP operational status. If bundleAggregationType\nis STATIC: all links in the bundle (typically just one) have UP\noperational status." + ], "type": "string" }, + "links": { + "description": "A list of InterconnectDiagnostics.LinkStatus objects,\ndescribing the status for each link on the Interconnect.", + "items": { + "$ref": "InterconnectDiagnosticsLinkStatus" + }, + "type": "array" + }, + "macAddress": { + "description": "The MAC address of the Interconnect's bundle interface.", + "type": "string" + } + }, + "type": "object" + }, + "InterconnectDiagnosticsARPEntry": { + "description": "Describing the ARP neighbor entries seen on this link", + "id": "InterconnectDiagnosticsARPEntry", + "properties": { "ipAddress": { - "description": "For target pool based Network Load Balancing, it indicates the forwarding rule's IP address assigned to this instance. For other types of load balancing, the field indicates VM internal ip.", + "description": "The IP address of this ARP neighbor.", "type": "string" }, - "port": { - "description": "The named port of the instance group, not necessarily the port that is health-checked.", - "format": "int32", - "type": "integer" + "macAddress": { + "description": "The MAC address of this ARP neighbor.", + "type": "string" + } + }, + "type": "object" + }, + "InterconnectDiagnosticsLinkLACPStatus": { + "id": "InterconnectDiagnosticsLinkLACPStatus", + "properties": { + "googleSystemId": { + "description": "System ID of the port on Google's side of the LACP exchange.", + "type": "string" }, - "weight": { + "neighborSystemId": { + "description": "System ID of the port on the neighbor's side of the LACP exchange.", "type": "string" }, - "weightError": { + "state": { + "description": "The state of a LACP link, which can take one of the following values:\n \n - ACTIVE: The link is configured and active within the bundle.\n - DETACHED: The link is not configured within the bundle. This means\n that the rest of the object should be empty.", "enum": [ - "INVALID_WEIGHT", - "MISSING_WEIGHT", - "UNAVAILABLE_WEIGHT", - "WEIGHT_NONE" + "ACTIVE", + "DETACHED" ], "enumDescriptions": [ - "The response to a Health Check probe had the HTTP response header field X-Load-Balancing-Endpoint-Weight, but its content was invalid (i.e., not a non-negative single-precision floating-point number in decimal string representation).", - "The response to a Health Check probe did not have the HTTP response header field X-Load-Balancing-Endpoint-Weight.", - "This is the value when the accompanied health status is either TIMEOUT (i.e.,the Health Check probe was not able to get a response in time) or UNKNOWN. For the latter, it should be typically because there has not been sufficient time to parse and report the weight for a new backend (which is with 0.0.0.0 ip address). However, it can be also due to an outage case for which the health status is explicitly reset to UNKNOWN.", - "This is the default value when WeightReportMode is DISABLE, and is also the initial value when WeightReportMode has just updated to ENABLE or DRY_RUN and there has not been sufficient time to parse and report the backend weight." + "The link is configured and active within the bundle.", + "The link is not configured within the bundle, this means the rest of\nthe object should be empty." ], "type": "string" } }, "type": "object" }, - "HealthStatusForNetworkEndpoint": { - "id": "HealthStatusForNetworkEndpoint", + "InterconnectDiagnosticsLinkOpticalPower": { + "id": "InterconnectDiagnosticsLinkOpticalPower", "properties": { - "backendService": { - "$ref": "BackendServiceReference", - "description": "URL of the backend service associated with the health state of the network endpoint." - }, - "forwardingRule": { - "$ref": "ForwardingRuleReference", - "description": "URL of the forwarding rule associated with the health state of the network endpoint." - }, - "healthCheck": { - "$ref": "HealthCheckReference", - "description": "URL of the health check associated with the health state of the network endpoint." - }, - "healthCheckService": { - "$ref": "HealthCheckServiceReference", - "description": "URL of the health check service associated with the health state of the network endpoint." - }, - "healthState": { - "description": "Health state of the network endpoint determined based on the health checks configured.", + "state": { + "description": "The status of the current value when compared to the warning and alarm\nlevels for the receiving or transmitting transceiver. Possible states\ninclude:\n \n \n - OK: The value has not crossed a warning threshold.\n - LOW_WARNING: The value has crossed below the low\n warning threshold. \n - HIGH_WARNING: The value has\n crossed above the high warning threshold.\n - LOW_ALARM: The value has crossed below the low alarm\n threshold.\n - HIGH_ALARM: The value has crossed above the high alarm\n threshold.", "enum": [ - "DRAINING", - "HEALTHY", - "UNHEALTHY", - "UNKNOWN" + "HIGH_ALARM", + "HIGH_WARNING", + "LOW_ALARM", + "LOW_WARNING", + "OK" ], "enumDescriptions": [ - "Endpoint is being drained.", - "Endpoint is healthy.", - "Endpoint is unhealthy.", - "Health status of the endpoint is unknown." + "The value has crossed above the high alarm threshold.", + "The value of the current optical power has crossed above the high\nwarning threshold.", + "The value of the current optical power has crossed below the low alarm\nthreshold.", + "The value of the current optical power has crossed below the low\nwarning threshold.", + "The value of the current optical power has not crossed a warning\nthreshold." ], "type": "string" + }, + "value": { + "description": "Value of the current receiving or transmitting optical power, read in\ndBm. Take a known good optical value, give it a 10% margin and trigger\nwarnings relative to that value. In general, a -7dBm warning and a -11dBm\nalarm are good optical value estimates for most links.", + "format": "float", + "type": "number" } }, "type": "object" }, - "Help": { - "description": "Provides links to documentation or for performing an out of band action. For example, if a quota check failed with an error indicating the calling project hasn't enabled the accessed service, this can contain a URL pointing directly to the right place in the developer console to flip the bit.", - "id": "Help", + "InterconnectDiagnosticsLinkStatus": { + "id": "InterconnectDiagnosticsLinkStatus", "properties": { - "links": { - "description": "URL(s) pointing to additional information on handling the current error.", + "arpCaches": { + "description": "A list of InterconnectDiagnostics.ARPEntry objects,\ndescribing the ARP neighbor entries seen on this link.\nThis will be empty if the link is bundled", "items": { - "$ref": "HelpLink" + "$ref": "InterconnectDiagnosticsARPEntry" }, "type": "array" + }, + "circuitId": { + "description": "The unique ID for this link assigned during turn up by Google.", + "type": "string" + }, + "googleDemarc": { + "description": "The Demarc address assigned by Google and provided in the LoA.", + "type": "string" + }, + "lacpStatus": { + "$ref": "InterconnectDiagnosticsLinkLACPStatus" + }, + "macsec": { + "$ref": "InterconnectDiagnosticsMacsecStatus", + "description": "Describes the status of MACsec encryption on this link." + }, + "operationalStatus": { + "description": "The operational status of the link.", + "enum": [ + "LINK_OPERATIONAL_STATUS_DOWN", + "LINK_OPERATIONAL_STATUS_UP" + ], + "enumDescriptions": [ + "The interface is unable to communicate with the remote end.", + "The interface has low level communication with the remote end." + ], + "type": "string" + }, + "receivingOpticalPower": { + "$ref": "InterconnectDiagnosticsLinkOpticalPower", + "description": "An InterconnectDiagnostics.LinkOpticalPower object,\ndescribing the current value and status of the received light level." + }, + "transmittingOpticalPower": { + "$ref": "InterconnectDiagnosticsLinkOpticalPower", + "description": "An InterconnectDiagnostics.LinkOpticalPower object,\ndescribing the current value and status of the transmitted light level." } }, "type": "object" }, - "HelpLink": { - "description": "Describes a URL link.", - "id": "HelpLink", + "InterconnectDiagnosticsMacsecStatus": { + "description": "Describes the status of MACsec encryption on the link.", + "id": "InterconnectDiagnosticsMacsecStatus", "properties": { - "description": { - "description": "Describes what the link offers.", + "ckn": { + "description": "Indicates the Connectivity Association Key Name (CKN)\ncurrently being used if MACsec is operational.", "type": "string" }, - "url": { - "description": "The URL of the link.", - "type": "string" + "operational": { + "description": "Indicates whether or not MACsec is operational on this link.", + "type": "boolean" } }, "type": "object" }, - "HostRule": { - "description": "UrlMaps A host-matching rule for a URL. If matched, will use the named PathMatcher to select the BackendService.", - "id": "HostRule", + "InterconnectGroup": { + "description": "An interconnect group resource allows customers to create, analyze, and\nexpand their redundant connections.", + "id": "InterconnectGroup", "properties": { + "configured": { + "$ref": "InterconnectGroupConfigured", + "readOnly": true + }, + "creationTimestamp": { + "description": "Output only. [Output Only] Creation timestamp inRFC3339\ntext format.", + "readOnly": true, + "type": "string" + }, "description": { - "description": "An optional description of this resource. Provide this property when you create the resource.", + "description": "An optional description of this resource. Provide this property when you\ncreate the resource.", "type": "string" }, - "hosts": { - "description": "The list of host patterns to match. They must be valid hostnames with optional port numbers in the format host:port. * matches any string of ([a-z0-9-.]*). In that case, * must be the first character, and if followed by anything, the immediate following character must be either - or .. * based matching is not supported when the URL map is bound to a target gRPC proxy that has the validateForProxyless field set to true.", - "items": { - "type": "string" + "etag": { + "description": "Opaque system-generated token that uniquely identifies the configuration.\nIf provided when patching a configuration in update mode, the provided\ntoken must match the current token or the update is rejected. This provides\na reliable means of doing read-modify-write (optimistic locking) as\ndescribed by AIP 154.", + "type": "string" + }, + "id": { + "description": "Output only. [Output Only] The unique identifier for the resource type. The server\ngenerates this identifier.", + "format": "uint64", + "readOnly": true, + "type": "string" + }, + "intent": { + "$ref": "InterconnectGroupIntent" + }, + "interconnects": { + "additionalProperties": { + "$ref": "InterconnectGroupInterconnect" }, - "type": "array" + "description": "Interconnects in the InterconnectGroup. Keys are arbitrary user-specified\nstrings. Users are encouraged, but not required, to use their preferred\nformat for resource links as keys.\nNote that there are add-members and remove-members methods in gcloud.\nThe size of this map is limited by an \"Interconnects per group\" quota.", + "type": "object" }, - "pathMatcher": { - "description": "The name of the PathMatcher to use to match the path portion of the URL if the hostRule matches the URL's host portion.", + "kind": { + "default": "compute#InterconnectGroup", + "description": "Output only. [Output Only] Type of the resource. Always compute#InterconnectGroup", + "readOnly": true, "type": "string" - } - }, - "type": "object" - }, - "HttpFaultAbort": { - "description": "Specification for how requests are aborted as part of fault injection.", - "id": "HttpFaultAbort", - "properties": { - "httpStatus": { - "description": "The HTTP status code used to abort the request. The value must be from 200 to 599 inclusive. For gRPC protocol, the gRPC status code is mapped to HTTP status code according to this mapping table. HTTP status 200 is mapped to gRPC status UNKNOWN. Injecting an OK status is currently not supported by Traffic Director.", - "format": "uint32", - "type": "integer" }, - "percentage": { - "description": "The percentage of traffic for connections, operations, or requests that is aborted as part of fault injection. The value must be from 0.0 to 100.0 inclusive.", - "format": "double", - "type": "number" + "name": { + "annotations": { + "required": [ + "compute.interconnectGroups.insert" + ] + }, + "description": "Name of the resource. Provided by the client when the resource is created.\nThe name must be 1-63 characters long, and comply withRFC1035.\nSpecifically, the name must be 1-63 characters long and match the regular\nexpression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first\ncharacter must be a lowercase letter, and all following characters must\nbe a dash, lowercase letter, or digit, except the last character, which\ncannot be a dash.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "type": "string" + }, + "physicalStructure": { + "$ref": "InterconnectGroupPhysicalStructure", + "readOnly": true + }, + "selfLink": { + "description": "Output only. [Output Only] Server-defined URL for the resource.", + "readOnly": true, + "type": "string" } }, "type": "object" }, - "HttpFaultDelay": { - "description": "Specifies the delay introduced by the load balancer before forwarding the request to the backend service as part of fault injection.", - "id": "HttpFaultDelay", + "InterconnectGroupConfigured": { + "description": "[Output Only] The status of the group as configured. This has the same\nstructure as the operational field reported by the OperationalStatus\nmethod, but does not take into account the operational status of each\nresource.", + "id": "InterconnectGroupConfigured", "properties": { - "fixedDelay": { - "$ref": "Duration", - "description": "Specifies the value of the fixed delay interval." - }, - "percentage": { - "description": "The percentage of traffic for connections, operations, or requests for which a delay is introduced as part of fault injection. The value must be from 0.0 to 100.0 inclusive.", - "format": "double", - "type": "number" + "topologyCapability": { + "$ref": "InterconnectGroupConfiguredTopologyCapability", + "readOnly": true } }, "type": "object" }, - "HttpFaultInjection": { - "description": "The specification for fault injection introduced into traffic to test the resiliency of clients to backend service failure. As part of fault injection, when clients send requests to a backend service, delays can be introduced by the load balancer on a percentage of requests before sending those request to the backend service. Similarly requests from clients can be aborted by the load balancer for a percentage of requests.", - "id": "HttpFaultInjection", + "InterconnectGroupConfiguredTopologyCapability": { + "description": "[Output Only] How reliable this topology is configured to be, and why\nthis group does or does not meet the requirements for the intended\ncapability.", + "id": "InterconnectGroupConfiguredTopologyCapability", "properties": { - "abort": { - "$ref": "HttpFaultAbort", - "description": "The specification for how client requests are aborted as part of fault injection." + "intendedCapabilityBlockers": { + "items": { + "$ref": "InterconnectGroupConfiguredTopologyCapabilityIntendedCapabilityBlockers" + }, + "readOnly": true, + "type": "array" }, - "delay": { - "$ref": "HttpFaultDelay", - "description": "The specification for how client requests are delayed as part of fault injection, before being sent to a backend service." + "supportedSla": { + "enum": [ + "NO_SLA", + "PRODUCTION_CRITICAL", + "PRODUCTION_NON_CRITICAL", + "UNSPECIFIED" + ], + "enumDescriptions": [ + "", + "", + "", + "" + ], + "readOnly": true, + "type": "string" } }, "type": "object" }, - "HttpHeaderAction": { - "description": "The request and response header transformations that take effect before the request is passed along to the selected backendService.", - "id": "HttpHeaderAction", + "InterconnectGroupConfiguredTopologyCapabilityIntendedCapabilityBlockers": { + "description": "[Output Only] Reasons why configuration.topologyCapability.sla differs\nfrom intent.topologyCapability. This list is empty if and only if those\nare the same.", + "id": "InterconnectGroupConfiguredTopologyCapabilityIntendedCapabilityBlockers", "properties": { - "requestHeadersToAdd": { - "description": "Headers to add to a matching request before forwarding the request to the backendService.", + "blockerType": { + "enum": [ + "INCOMPATIBLE_METROS", + "NOT_AVAILABLE", + "NO_INTERCONNECTS", + "NO_INTERCONNECTS_IN_METRO_AND_ZONE", + "OTHER", + "UNSPECIFIED" + ], + "enumDescriptions": [ + "", + "", + "", + "", + "", + "" + ], + "readOnly": true, + "type": "string" + }, + "documentationLink": { + "description": "Output only. [Output Only] The url of Google Cloud public documentation explaining\nthis requirement. This is set for every type of requirement.", + "readOnly": true, + "type": "string" + }, + "explanation": { + "description": "Output only. [Output Only] A human-readable explanation of this requirement and\nwhy it's not met. This is set for every type of requirement.", + "readOnly": true, + "type": "string" + }, + "facilities": { + "description": "Output only. [Output Only] Facilities used to explain this blocker in more detail.\nLike physicalStructure.metros.facilities.facility, this is a numeric\nstring like \"5467\".", "items": { - "$ref": "HttpHeaderOption" + "type": "string" }, + "readOnly": true, "type": "array" }, - "requestHeadersToRemove": { - "description": "A list of header names for headers that need to be removed from the request before forwarding the request to the backendService.", + "interconnects": { + "description": "Output only. [Output Only] Interconnects used to explain this blocker in more\ndetail.", "items": { "type": "string" }, + "readOnly": true, "type": "array" }, - "responseHeadersToAdd": { - "description": "Headers to add the response before sending the response back to the client.", + "metros": { + "description": "Output only. [Output Only] Metros used to explain this blocker in more detail.\nThese are three-letter lowercase strings like \"iad\". A blocker like\nINCOMPATIBLE_METROS will specify the problematic metros in this\nfield.", "items": { - "$ref": "HttpHeaderOption" + "type": "string" }, + "readOnly": true, "type": "array" }, - "responseHeadersToRemove": { - "description": "A list of header names for headers that need to be removed from the response before sending the response back to the client.", + "zones": { + "description": "Output only. [Output Only] Zones used to explain this blocker in more detail.\nZone names are \"zone1\" and/or \"zone2\".", "items": { "type": "string" }, + "readOnly": true, "type": "array" } }, "type": "object" }, - "HttpHeaderMatch": { - "description": "matchRule criteria for request header matches.", - "id": "HttpHeaderMatch", + "InterconnectGroupIntent": { + "description": "The user's intent for this group. This is the only required field besides\nthe name that must be specified on group creation.", + "id": "InterconnectGroupIntent", "properties": { - "exactMatch": { - "description": "The value should exactly match contents of exactMatch. Only one of exactMatch, prefixMatch, suffixMatch, regexMatch, presentMatch or rangeMatch must be set.", + "topologyCapability": { + "enum": [ + "NO_SLA", + "PRODUCTION_CRITICAL", + "PRODUCTION_NON_CRITICAL", + "UNSPECIFIED" + ], + "enumDescriptions": [ + "", + "", + "", + "" + ], "type": "string" - }, - "headerName": { - "description": "The name of the HTTP header to match. For matching against the HTTP request's authority, use a headerMatch with the header name \":authority\". For matching a request's method, use the headerName \":method\". When the URL map is bound to a target gRPC proxy that has the validateForProxyless field set to true, only non-binary user-specified custom metadata and the `content-type` header are supported. The following transport-level headers cannot be used in header matching rules: `:authority`, `:method`, `:path`, `:scheme`, `user-agent`, `accept-encoding`, `content-encoding`, `grpc-accept-encoding`, `grpc-encoding`, `grpc-previous-rpc-attempts`, `grpc-tags-bin`, `grpc-timeout` and `grpc-trace-bin`.", + } + }, + "type": "object" + }, + "InterconnectGroupInterconnect": { + "description": "An Interconnect in this InterconnectGroup.", + "id": "InterconnectGroupInterconnect", + "properties": { + "interconnect": { + "description": "The URL of an Interconnect in this group. All Interconnects in the group\nare unique.", "type": "string" + } + }, + "type": "object" + }, + "InterconnectGroupPhysicalStructure": { + "description": "[Output Only] An analysis of the physical layout of Interconnects in this\ngroup. Every Interconnect in the group is shown once in this structure.", + "id": "InterconnectGroupPhysicalStructure", + "properties": { + "metros": { + "items": { + "$ref": "InterconnectGroupPhysicalStructureMetros" + }, + "readOnly": true, + "type": "array" + } + }, + "type": "object" + }, + "InterconnectGroupPhysicalStructureMetros": { + "description": "[Output Only] The metros Interconnects in this group are in.", + "id": "InterconnectGroupPhysicalStructureMetros", + "properties": { + "facilities": { + "items": { + "$ref": "InterconnectGroupPhysicalStructureMetrosFacilities" + }, + "readOnly": true, + "type": "array" }, - "invertMatch": { - "description": "If set to false, the headerMatch is considered a match if the preceding match criteria are met. If set to true, the headerMatch is considered a match if the preceding match criteria are NOT met. The default setting is false. ", - "type": "boolean" - }, - "prefixMatch": { - "description": "The value of the header must start with the contents of prefixMatch. Only one of exactMatch, prefixMatch, suffixMatch, regexMatch, presentMatch or rangeMatch must be set.", + "metro": { + "description": "Output only. [Output Only] The name of the metro, as a three-letter lowercase string\nlike \"iad\". This is the first component of the location of\nInterconnects underneath this.", + "readOnly": true, "type": "string" - }, - "presentMatch": { - "description": "A header with the contents of headerName must exist. The match takes place whether or not the request's header has a value. Only one of exactMatch, prefixMatch, suffixMatch, regexMatch, presentMatch or rangeMatch must be set.", - "type": "boolean" - }, - "rangeMatch": { - "$ref": "Int64RangeMatch", - "description": "The header value must be an integer and its value must be in the range specified in rangeMatch. If the header does not contain an integer, number or is empty, the match fails. For example for a range [-5, 0] - -3 will match. - 0 will not match. - 0.25 will not match. - -3someString will not match. Only one of exactMatch, prefixMatch, suffixMatch, regexMatch, presentMatch or rangeMatch must be set. rangeMatch is not supported for load balancers that have loadBalancingScheme set to EXTERNAL." - }, - "regexMatch": { - "description": "The value of the header must match the regular expression specified in regexMatch. For more information about regular expression syntax, see Syntax. For matching against a port specified in the HTTP request, use a headerMatch with headerName set to PORT and a regular expression that satisfies the RFC2616 Host header's port specifier. Only one of exactMatch, prefixMatch, suffixMatch, regexMatch, presentMatch or rangeMatch must be set. Regular expressions can only be used when the loadBalancingScheme is set to INTERNAL_SELF_MANAGED.", + } + }, + "type": "object" + }, + "InterconnectGroupPhysicalStructureMetrosFacilities": { + "description": "[Output Only] The facilities Interconnects in this metro are present\nin.", + "id": "InterconnectGroupPhysicalStructureMetrosFacilities", + "properties": { + "facility": { + "description": "Output only. [Output Only] The ID of this facility, as a numeric string like\n\"5467\". This is the third component of the location of Interconnects\nin this facility.", + "readOnly": true, "type": "string" }, - "suffixMatch": { - "description": "The value of the header must end with the contents of suffixMatch. Only one of exactMatch, prefixMatch, suffixMatch, regexMatch, presentMatch or rangeMatch must be set.", - "type": "string" + "zones": { + "items": { + "$ref": "InterconnectGroupPhysicalStructureMetrosFacilitiesZones" + }, + "readOnly": true, + "type": "array" } }, "type": "object" }, - "HttpHeaderOption": { - "description": "Specification determining how headers are added to requests or responses.", - "id": "HttpHeaderOption", + "InterconnectGroupPhysicalStructureMetrosFacilitiesZones": { + "description": "[Output Only] The zones that Interconnects in this facility are\npresent in.", + "id": "InterconnectGroupPhysicalStructureMetrosFacilitiesZones", + "properties": { + "interconnects": { + "description": "Output only. [Output Only] URLs of Interconnects in this redundancy group in the\ngiven metro, facility, and zone.", + "items": { + "type": "string" + }, + "readOnly": true, + "type": "array" + }, + "zone": { + "description": "Output only. [Output Only] The name of the zone, either \"zone1\" or \"zone2\".\nThis is the second component of the location of Interconnects in\nthis facility.", + "readOnly": true, + "type": "string" + } + }, + "type": "object" + }, + "InterconnectGroupsCreateMembers": { + "id": "InterconnectGroupsCreateMembers", "properties": { - "headerName": { - "description": "The name of the header.", + "intentMismatchBehavior": { + "description": "How to behave when configured.topologyCapability.supportedSLA would not\nequal intent.topologyCapability after this call.", + "enum": [ + "CREATE", + "REJECT", + "UNSPECIFIED" + ], + "enumDescriptions": [ + "", + "", + "" + ], "type": "string" }, - "headerValue": { - "description": "The value of the header to add.", - "type": "string" + "interconnects": { + "items": { + "$ref": "InterconnectGroupsCreateMembersInterconnectInput" + }, + "type": "array" }, - "replace": { - "description": "If false, headerValue is appended to any values that already exist for the header. If true, headerValue is set for the header, discarding any values that were set for that header. The default value is false. ", - "type": "boolean" + "templateInterconnect": { + "$ref": "InterconnectGroupsCreateMembersInterconnectInput", + "description": "Parameters for the Interconnects to create." } }, "type": "object" }, - "HttpHealthCheck": { - "description": "Represents a legacy HTTP Health Check resource. Legacy HTTP health checks are now only required by target pool-based network load balancers. For all other load balancers, including backend service-based network load balancers, and for managed instance group auto-healing, you must use modern (non-legacy) health checks. For more information, see Health checks overview .", - "id": "HttpHealthCheck", + "InterconnectGroupsCreateMembersInterconnectInput": { + "id": "InterconnectGroupsCreateMembersInterconnectInput", "properties": { - "checkIntervalSec": { - "description": "How often (in seconds) to send a health check. The default value is 5 seconds.", - "format": "int32", - "type": "integer" + "adminEnabled": { + "description": "Administrative status of the interconnect. When this is set to true, the\nInterconnect is functional and can carry traffic.\nWhen set to false, no packets can be carried over the interconnect and\nno BGP routes are exchanged over it. By default, the status is set to\ntrue.", + "type": "boolean" }, - "creationTimestamp": { - "description": "[Output Only] Creation timestamp in RFC3339 text format.", + "customerName": { + "description": "Customer name, to put in the Letter of Authorization as the party\nauthorized to request a crossconnect.", "type": "string" }, "description": { - "description": "An optional description of this resource. Provide this property when you create the resource.", + "description": "An optional description of this resource. Provide this property when you\ncreate the resource.", "type": "string" }, - "healthyThreshold": { - "description": "A so-far unhealthy instance will be marked healthy after this many consecutive successes. The default value is 2.", - "format": "int32", - "type": "integer" - }, - "host": { - "description": "The value of the host header in the HTTP health check request. If left empty (default value), the public IP on behalf of which this health check is performed will be used.", + "facility": { + "description": "A zone-free location to use for all Interconnects created in this call,\nlike \"iad-1234\".", "type": "string" }, - "id": { - "description": "[Output Only] The unique identifier for the resource. This identifier is defined by the server.", - "format": "uint64", + "interconnectType": { + "description": "Type of interconnect, which can take one of the following values:\n \n - PARTNER: A partner-managed interconnection shared between\n customers though a partner. \n - DEDICATED: A dedicated physical\n interconnection with the customer.\n\n Note that a value IT_PRIVATE\nhas been deprecated in favor of DEDICATED.", + "enum": [ + "DEDICATED", + "IT_PRIVATE", + "PARTNER" + ], + "enumDescriptions": [ + "A dedicated physical interconnection with the customer.", + "[Deprecated] A private, physical interconnection with the customer.", + "A partner-managed interconnection shared between customers via partner." + ], "type": "string" }, - "kind": { - "default": "compute#httpHealthCheck", - "description": "[Output Only] Type of the resource. Always compute#httpHealthCheck for HTTP health checks.", + "linkType": { + "description": "Type of link requested, which can take one of the following values:\n \n - LINK_TYPE_ETHERNET_10G_LR: A 10G Ethernet with LR optics\n - LINK_TYPE_ETHERNET_100G_LR: A 100G Ethernet with LR optics.\n - LINK_TYPE_ETHERNET_400G_LR4: A 400G Ethernet with LR4\n optics.\n\n Note that this field indicates the speed of each of the\nlinks in the bundle, not the speed of the entire bundle.", + "enum": [ + "LINK_TYPE_ETHERNET_100G_LR", + "LINK_TYPE_ETHERNET_10G_LR", + "LINK_TYPE_ETHERNET_400G_LR4" + ], + "enumDescriptions": [ + "100G Ethernet, LR Optics.", + "10G Ethernet, LR Optics.\n[(rate_bps) = 10000000000];", + "400G Ethernet, LR4 Optics." + ], "type": "string" }, "name": { - "description": "Name of the resource. Provided by the client when the resource is created. The name must be 1-63 characters long, and comply with RFC1035. 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])?", + "description": "Name of the Interconnects to be created. This must be specified on the\ntemplate and/or on each individual interconnect. The name, if not empty,\nmust be 1-63 characters long, and comply with RFC1035.\nSpecifically, any nonempty name must be 1-63 characters long and match\nthe regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first\ncharacter must be a lowercase letter, and all following characters must\nbe a dash, lowercase letter, or digit, except the last character, which\ncannot be a dash.", "type": "string" }, - "port": { - "description": "The TCP port number for the HTTP health check request. The default value is 80.", - "format": "int32", - "type": "integer" - }, - "requestPath": { - "description": "The request path of the HTTP health check request. The default value is /. This field does not support query parameters. Must comply with RFC3986.", + "nocContactEmail": { + "description": "Email address to contact the customer NOC for operations and maintenance\nnotifications regarding this Interconnect. If specified, this will be\nused for notifications in addition to all other forms described, such as\nCloud Monitoring logs alerting and Cloud Notifications. This field is\nrequired for users who sign up for Cloud Interconnect using\nworkforce identity federation.", "type": "string" }, - "selfLink": { - "description": "[Output Only] Server-defined URL for the resource.", + "remoteLocation": { + "description": "Indicates that this is a Cross-Cloud Interconnect. This field specifies\nthe location outside of Google's network that the interconnect is\nconnected to.", "type": "string" }, - "timeoutSec": { - "description": "How long (in seconds) to wait before claiming failure. The default value is 5 seconds. It is invalid for timeoutSec to have greater value than checkIntervalSec.", - "format": "int32", - "type": "integer" + "requestedFeatures": { + "description": "Optional. List of features requested for this Interconnect connection,\nwhich can take one of the following values:\n \n - IF_MACSEC: If specified, then the connection is created on MACsec\n capable hardware ports. If not specified, non-MACsec capable ports will\n also be considered.\n - IF_CROSS_SITE_NETWORK: If specified, then the connection is created\n exclusively for Cross-Site Networking. The connection can not be used for\n Cross-Site Networking unless this feature is specified.", + "items": { + "enum": [ + "IF_CROSS_SITE_NETWORK", + "IF_L2_FORWARDING", + "IF_MACSEC" + ], + "enumDescriptions": [ + "Cross-Site Networking", + "L2 Interconnect Attachment Forwarding", + "Media Access Control security (MACsec)" + ], + "type": "string" + }, + "type": "array" }, - "unhealthyThreshold": { - "description": "A so-far healthy instance will be marked unhealthy after this many consecutive failures. The default value is 2.", + "requestedLinkCount": { + "description": "Target number of physical links in the link bundle, as requested by the\ncustomer.", "format": "int32", "type": "integer" } }, "type": "object" }, - "HttpHealthCheckList": { - "description": "Contains a list of HttpHealthCheck resources.", - "id": "HttpHealthCheckList", + "InterconnectGroupsCreateMembersRequest": { + "id": "InterconnectGroupsCreateMembersRequest", + "properties": { + "request": { + "$ref": "InterconnectGroupsCreateMembers" + } + }, + "type": "object" + }, + "InterconnectGroupsGetOperationalStatusResponse": { + "description": "Response for the InterconnectGroupsGetOperationalStatusResponse.", + "id": "InterconnectGroupsGetOperationalStatusResponse", + "properties": { + "etag": { + "type": "string" + }, + "result": { + "$ref": "InterconnectGroupsOperationalStatus" + } + }, + "type": "object" + }, + "InterconnectGroupsListResponse": { + "id": "InterconnectGroupsListResponse", "properties": { + "etag": { + "type": "string" + }, "id": { "description": "[Output Only] Unique identifier for the resource; defined by the server.", "type": "string" }, "items": { - "description": "A list of HttpHealthCheck resources.", + "description": "A list of InterconnectGroup resources.", "items": { - "$ref": "HttpHealthCheck" + "$ref": "InterconnectGroup" }, "type": "array" }, "kind": { - "default": "compute#httpHealthCheckList", - "description": "Type of resource.", + "default": "compute#InterconnectGroup", + "readOnly": true, "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.", + "description": "[Output Only] This token allows you to get the next page of results for\nlist requests. If the number of results is larger thanmaxResults, use the nextPageToken as a value for\nthe query parameter pageToken in the next list request.\nSubsequent list requests will have their own nextPageToken to\ncontinue paging through the results.", "type": "string" }, "selfLink": { "description": "[Output Only] Server-defined URL for this resource.", "type": "string" }, + "unreachables": { + "description": "Output only. [Output Only] Unreachable resources.\nend_interface: MixerListResponseWithEtagBuilder", + "items": { + "type": "string" + }, + "readOnly": true, + "type": "array" + }, "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.", + "description": "[Output Only] A warning code, if applicable. For example, Compute\nEngine returns NO_RESULTS_ON_PAGE if there\nare no results in the response.", "enum": [ "CLEANUP_FAILED", "DEPRECATED_RESOURCE_USED", @@ -48167,6 +74572,7 @@ "NOT_CRITICAL_ERROR", "NO_RESULTS_ON_PAGE", "PARTIAL_SUCCESS", + "QUOTA_INFO_UNAVAILABLE", "REQUIRED_TOS_AGREEMENT", "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", "RESOURCE_NOT_DELETED", @@ -48203,46 +74609,48 @@ false, false, false, + false, false ], "enumDescriptions": [ - "Warning about failed cleanup of transient changes made by a failed operation.", + "Warning about failed cleanup of transient changes made by a failed\noperation.", "A link to a deprecated resource was created.", - "When deploying and at least one of the resources has a type marked as deprecated", + "When deploying and at least one of the resources has a type marked as\ndeprecated", "The user created a boot disk that is larger than image size.", - "When deploying and at least one of the resources has a type marked as experimental", + "When deploying and at least one of the resources has a type marked as\nexperimental", "Warning that is present in an external api call", - "Warning that value of a field has been overridden. Deprecated unused field.", + "Warning that value of a field has been overridden.\nDeprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", - "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is\nnot of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", - "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", + "Resource can't be retrieved due to list overhead quota exceed\nwhich captures the amount of resources filtered out by\nuser-defined list filter.", "A resource depends on a missing type", - "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's nextHopIp address is not assigned to an instance on the\nnetwork.", "The route's next hop instance cannot ip forward.", - "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not have an\nipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", - "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that is not on the\nsame network as the route.", "The route's next hop instance does not have a status of RUNNING.", - "Error which is not critical. We decided to continue the process despite the mentioned error.", + "Error which is not critical. We decided to continue the process despite\nthe mentioned error.", "No results are present on a particular list page.", "Success is reported, but some results may be missing due to errors", - "The user attempted to use a resource that requires a TOS they have not accepted.", + "Quota information is not available to client requests (e.g:\nregions.list).", + "The user attempted to use a resource that requires a TOS they have not\naccepted.", "Warning that a resource is in use.", - "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "One or more of the resources set to auto-delete could not be deleted\nbecause they were in use.", "When a resource schema validation is ignored.", - "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", + "Instance template used in instance group manager is valid as such, but\nits application does not make a lot of sense, because it allows only\nsingle instance in instance group.", "When undeclared properties in the schema are present", "A given scope cannot be reached." ], "type": "string" }, "data": { - "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", + "description": "[Output Only] Metadata about this warning in key:\nvalue format. For example:\n\n\"data\": [\n {\n \"key\": \"scope\",\n \"value\": \"zones/us-east1-d\"\n }", "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).", + "description": "[Output Only] A key that provides more detail on the warning being\nreturned. For example, for warnings where there are no results in a list\nrequest for a particular zone, this key might be scope and\nthe key value might be the zone name. Other examples might be a key\nindicating a deprecated resource and a suggested replacement, or a\nwarning about invalid network settings (for example, if an instance\nattempts to perform IP forwarding but is not enabled for IP forwarding).", "type": "string" }, "value": { @@ -48264,325 +74672,124 @@ }, "type": "object" }, - "HttpQueryParameterMatch": { - "description": "HttpRouteRuleMatch criteria for a request's query parameter.", - "id": "HttpQueryParameterMatch", - "properties": { - "exactMatch": { - "description": "The queryParameterMatch matches if the value of the parameter exactly matches the contents of exactMatch. Only one of presentMatch, exactMatch, or regexMatch must be set. ", - "type": "string" - }, - "name": { - "description": "The name of the query parameter to match. The query parameter must exist in the request, in the absence of which the request match fails.", - "type": "string" - }, - "presentMatch": { - "description": "Specifies that the queryParameterMatch matches if the request contains the query parameter, irrespective of whether the parameter has a value or not. Only one of presentMatch, exactMatch, or regexMatch must be set. ", - "type": "boolean" - }, - "regexMatch": { - "description": "The queryParameterMatch matches if the value of the parameter matches the regular expression specified by regexMatch. For more information about regular expression syntax, see Syntax. Only one of presentMatch, exactMatch, or regexMatch must be set. Regular expressions can only be used when the loadBalancingScheme is set to INTERNAL_SELF_MANAGED. ", - "type": "string" - } - }, - "type": "object" - }, - "HttpRedirectAction": { - "description": "Specifies settings for an HTTP redirect.", - "id": "HttpRedirectAction", + "InterconnectGroupsOperationalStatus": { + "description": "Request to get the status of the interconnect group with extra detail.", + "id": "InterconnectGroupsOperationalStatus", "properties": { - "hostRedirect": { - "description": "The host that is used in the redirect response instead of the one that was supplied in the request. The value must be from 1 to 255 characters.", - "type": "string" - }, - "httpsRedirect": { - "description": "If set to true, the URL scheme in the redirected request is set to HTTPS. If set to false, the URL scheme of the redirected request remains the same as that of the request. This must only be set for URL maps used in TargetHttpProxys. Setting this true for TargetHttpsProxy is not permitted. The default is set to false.", - "type": "boolean" - }, - "pathRedirect": { - "description": "The path that is used in the redirect response instead of the one that was supplied in the request. pathRedirect cannot be supplied together with prefixRedirect. Supply one alone or neither. If neither is supplied, the path of the original request is used for the redirect. The value must be from 1 to 1024 characters.", - "type": "string" + "configured": { + "$ref": "InterconnectGroupConfigured", + "description": "Output only. The configuration analysis, as returned by Get.", + "readOnly": true }, - "prefixRedirect": { - "description": "The prefix that replaces the prefixMatch specified in the HttpRouteRuleMatch, retaining the remaining portion of the URL before redirecting the request. prefixRedirect cannot be supplied together with pathRedirect. Supply one alone or neither. If neither is supplied, the path of the original request is used for the redirect. The value must be from 1 to 1024 characters.", - "type": "string" - }, - "redirectResponseCode": { - "description": "The HTTP Status code to use for this RedirectAction. Supported values are: - MOVED_PERMANENTLY_DEFAULT, which is the default value and corresponds to 301. - FOUND, which corresponds to 302. - SEE_OTHER which corresponds to 303. - TEMPORARY_REDIRECT, which corresponds to 307. In this case, the request method is retained. - PERMANENT_REDIRECT, which corresponds to 308. In this case, the request method is retained. ", + "groupStatus": { + "description": "Output only. Summarizes the status of the group.", "enum": [ - "FOUND", - "MOVED_PERMANENTLY_DEFAULT", - "PERMANENT_REDIRECT", - "SEE_OTHER", - "TEMPORARY_REDIRECT" + "DEGRADED", + "FULLY_DOWN", + "FULLY_UP", + "GROUPS_STATUS_UNSPECIFIED" ], "enumDescriptions": [ - "Http Status Code 302 - Found.", - "Http Status Code 301 - Moved Permanently.", - "Http Status Code 308 - Permanent Redirect maintaining HTTP method.", - "Http Status Code 303 - See Other.", - "Http Status Code 307 - Temporary Redirect maintaining HTTP method." + "", + "", + "", + "" ], + "readOnly": true, "type": "string" }, - "stripQuery": { - "description": "If set to true, any accompanying query portion of the original URL is removed before redirecting the request. If set to false, the query portion of the original URL is retained. The default is set to false. ", - "type": "boolean" - } - }, - "type": "object" - }, - "HttpRetryPolicy": { - "description": "The retry policy associates with HttpRouteRule", - "id": "HttpRetryPolicy", - "properties": { - "numRetries": { - "description": "Specifies the allowed number retries. This number must be \u003e 0. If not specified, defaults to 1.", - "format": "uint32", - "type": "integer" - }, - "perTryTimeout": { - "$ref": "Duration", - "description": "Specifies a non-zero timeout per retry attempt. If not specified, will use the timeout set in the HttpRouteAction field. If timeout in the HttpRouteAction field is not set, this field uses the largest timeout among all backend services associated with the route. Not supported when the URL map is bound to a target gRPC proxy that has the validateForProxyless field set to true." - }, - "retryConditions": { - "description": "Specifies one or more conditions when this retry policy applies. Valid values are: - 5xx: retry is attempted if the instance or endpoint responds with any 5xx response code, or if the instance or endpoint does not respond at all. For example, disconnects, reset, read timeout, connection failure, and refused streams. - gateway-error: Similar to 5xx, but only applies to response codes 502, 503 or 504. - connect-failure: a retry is attempted on failures connecting to the instance or endpoint. For example, connection timeouts. - retriable-4xx: a retry is attempted if the instance or endpoint responds with a 4xx response code. The only error that you can retry is error code 409. - refused-stream: a retry is attempted if the instance or endpoint resets the stream with a REFUSED_STREAM error code. This reset type indicates that it is safe to retry. - cancelled: a retry is attempted if the gRPC status code in the response header is set to cancelled. - deadline-exceeded: a retry is attempted if the gRPC status code in the response header is set to deadline-exceeded. - internal: a retry is attempted if the gRPC status code in the response header is set to internal. - resource-exhausted: a retry is attempted if the gRPC status code in the response header is set to resource-exhausted. - unavailable: a retry is attempted if the gRPC status code in the response header is set to unavailable. Only the following codes are supported when the URL map is bound to target gRPC proxy that has validateForProxyless field set to true. - cancelled - deadline-exceeded - internal - resource-exhausted - unavailable ", - "items": { - "type": "string" - }, - "type": "array" - } - }, - "type": "object" - }, - "HttpRouteAction": { - "id": "HttpRouteAction", - "properties": { - "corsPolicy": { - "$ref": "CorsPolicy", - "description": "The specification for allowing client-side cross-origin requests. For more information about the W3C recommendation for cross-origin resource sharing (CORS), see Fetch API Living Standard. Not supported when the URL map is bound to a target gRPC proxy." - }, - "faultInjectionPolicy": { - "$ref": "HttpFaultInjection", - "description": "The specification for fault injection introduced into traffic to test the resiliency of clients to backend service failure. As part of fault injection, when clients send requests to a backend service, delays can be introduced by a load balancer on a percentage of requests before sending those requests to the backend service. Similarly requests from clients can be aborted by the load balancer for a percentage of requests. timeout and retry_policy is ignored by clients that are configured with a fault_injection_policy if: 1. The traffic is generated by fault injection AND 2. The fault injection is not a delay fault injection. Fault injection is not supported with the classic Application Load Balancer . To see which load balancers support fault injection, see Load balancing: Routing and traffic management features." - }, - "maxStreamDuration": { - "$ref": "Duration", - "description": "Specifies the maximum duration (timeout) for streams on the selected route. Unlike the timeout field where the timeout duration starts from the time the request has been fully processed (known as *end-of-stream*), the duration in this field is computed from the beginning of the stream until the response has been processed, including all retries. A stream that does not complete in this duration is closed. If not specified, this field uses the maximum maxStreamDuration value among all backend services associated with the route. This field is only allowed if the Url map is used with backend services with loadBalancingScheme set to INTERNAL_SELF_MANAGED." - }, - "requestMirrorPolicy": { - "$ref": "RequestMirrorPolicy", - "description": "Specifies the policy on how requests intended for the route's backends are shadowed to a separate mirrored backend service. The load balancer does not wait for responses from the shadow service. Before sending traffic to the shadow service, the host / authority header is suffixed with -shadow. Not supported when the URL map is bound to a target gRPC proxy that has the validateForProxyless field set to true." - }, - "retryPolicy": { - "$ref": "HttpRetryPolicy", - "description": "Specifies the retry policy associated with this route." - }, - "timeout": { - "$ref": "Duration", - "description": "Specifies the timeout for the selected route. Timeout is computed from the time the request has been fully processed (known as *end-of-stream*) up until the response has been processed. Timeout includes all retries. If not specified, this field uses the largest timeout among all backend services associated with the route. Not supported when the URL map is bound to a target gRPC proxy that has validateForProxyless field set to true." - }, - "urlRewrite": { - "$ref": "UrlRewrite", - "description": "The spec to modify the URL of the request, before forwarding the request to the matched service. urlRewrite is the only action supported in UrlMaps for classic Application Load Balancers. Not supported when the URL map is bound to a target gRPC proxy that has the validateForProxyless field set to true." - }, - "weightedBackendServices": { - "description": "A list of weighted backend services to send traffic to when a route match occurs. The weights determine the fraction of traffic that flows to their corresponding backend service. If all traffic needs to go to a single backend service, there must be one weightedBackendService with weight set to a non-zero number. After a backend service is identified and before forwarding the request to the backend service, advanced routing actions such as URL rewrites and header transformations are applied depending on additional settings specified in this HttpRouteAction.", - "items": { - "$ref": "WeightedBackendService" - }, - "type": "array" - } - }, - "type": "object" - }, - "HttpRouteRule": { - "description": "The HttpRouteRule setting specifies how to match an HTTP request and the corresponding routing action that load balancing proxies perform.", - "id": "HttpRouteRule", - "properties": { - "description": { - "description": "The short description conveying the intent of this routeRule. The description can have a maximum length of 1024 characters.", - "type": "string" - }, - "headerAction": { - "$ref": "HttpHeaderAction", - "description": "Specifies changes to request and response headers that need to take effect for the selected backendService. The headerAction value specified here is applied before the matching pathMatchers[].headerAction and after pathMatchers[].routeRules[].routeAction.weightedBackendService.backendServiceWeightAction[].headerAction HeaderAction is not supported for load balancers that have their loadBalancingScheme set to EXTERNAL. Not supported when the URL map is bound to a target gRPC proxy that has validateForProxyless field set to true." + "intent": { + "$ref": "InterconnectGroupIntent", + "description": "Output only. The intent of the resource, as returned by Get.", + "readOnly": true }, - "matchRules": { - "description": "The list of criteria for matching attributes of a request to this routeRule. This list has OR semantics: the request matches this routeRule when any of the matchRules are satisfied. However predicates within a given matchRule have AND semantics. All predicates within a matchRule must match for the request to match the rule.", + "interconnectStatuses": { "items": { - "$ref": "HttpRouteRuleMatch" + "$ref": "InterconnectGroupsOperationalStatusInterconnectStatus" }, + "readOnly": true, "type": "array" }, - "priority": { - "description": "For routeRules within a given pathMatcher, priority determines the order in which a load balancer interprets routeRules. RouteRules are evaluated in order of priority, from the lowest to highest number. The priority of a rule decreases as its number increases (1, 2, 3, N+1). The first rule that matches the request is applied. You cannot configure two or more routeRules with the same priority. Priority for each rule must be set to a number from 0 to 2147483647 inclusive. Priority numbers can have gaps, which enable you to add or remove rules in the future without affecting the rest of the rules. For example, 1, 2, 3, 4, 5, 9, 12, 16 is a valid series of priority numbers to which you could add rules numbered from 6 to 8, 10 to 11, and 13 to 15 in the future without any impact on existing rules.", - "format": "int32", - "type": "integer" - }, - "routeAction": { - "$ref": "HttpRouteAction", - "description": "In response to a matching matchRule, the load balancer performs advanced routing actions, such as URL rewrites and header transformations, before forwarding the request to the selected backend. If routeAction specifies any weightedBackendServices, service must not be set. Conversely if service is set, routeAction cannot contain any weightedBackendServices. Only one of urlRedirect, service or routeAction.weightedBackendService must be set. URL maps for classic Application Load Balancers only support the urlRewrite action within a route rule's routeAction." - }, - "service": { - "description": "The full or partial URL of the backend service resource to which traffic is directed if this rule is matched. If routeAction is also specified, advanced routing actions, such as URL rewrites, take effect before sending the request to the backend. However, if service is specified, routeAction cannot contain any weightedBackendServices. Conversely, if routeAction specifies any weightedBackendServices, service must not be specified. Only one of urlRedirect, service or routeAction.weightedBackendService must be set.", - "type": "string" - }, - "urlRedirect": { - "$ref": "HttpRedirectAction", - "description": "When this rule is matched, the request is redirected to a URL specified by urlRedirect. If urlRedirect is specified, service or routeAction must not be set. Not supported when the URL map is bound to a target gRPC proxy." + "operational": { + "$ref": "InterconnectGroupConfigured", + "description": "Output only. The operational state of the group, including only active Interconnects.", + "readOnly": true } }, "type": "object" }, - "HttpRouteRuleMatch": { - "description": "HttpRouteRuleMatch specifies a set of criteria for matching requests to an HttpRouteRule. All specified criteria must be satisfied for a match to occur.", - "id": "HttpRouteRuleMatch", + "InterconnectGroupsOperationalStatusInterconnectStatus": { + "description": "The status of one Interconnect in the group. The order is arbitrary.", + "id": "InterconnectGroupsOperationalStatusInterconnectStatus", "properties": { - "fullPathMatch": { - "description": "For satisfying the matchRule condition, the path of the request must exactly match the value specified in fullPathMatch after removing any query parameters and anchor that may be part of the original URL. fullPathMatch must be from 1 to 1024 characters. Only one of prefixMatch, fullPathMatch or regexMatch must be specified.", - "type": "string" - }, - "headerMatches": { - "description": "Specifies a list of header match criteria, all of which must match corresponding headers in the request.", - "items": { - "$ref": "HttpHeaderMatch" - }, - "type": "array" - }, - "ignoreCase": { - "description": "Specifies that prefixMatch and fullPathMatch matches are case sensitive. The default value is false. ignoreCase must not be used with regexMatch. Not supported when the URL map is bound to a target gRPC proxy.", + "adminEnabled": { + "description": "Output only. Whether the Interconnect is enabled.", + "readOnly": true, "type": "boolean" }, - "metadataFilters": { - "description": "Opaque filter criteria used by the load balancer to restrict routing configuration to a limited set of xDS compliant clients. In their xDS requests to the load balancer, xDS clients present node metadata. When there is a match, the relevant routing configuration is made available to those proxies. For each metadataFilter in this list, if its filterMatchCriteria is set to MATCH_ANY, at least one of the filterLabels must match the corresponding label provided in the metadata. If its filterMatchCriteria is set to MATCH_ALL, then all of its filterLabels must match with corresponding labels provided in the metadata. If multiple metadata filters are specified, all of them need to be satisfied in order to be considered a match. metadataFilters specified here is applied after those specified in ForwardingRule that refers to the UrlMap this HttpRouteRuleMatch belongs to. metadataFilters only applies to load balancers that have loadBalancingScheme set to INTERNAL_SELF_MANAGED. Not supported when the URL map is bound to a target gRPC proxy that has validateForProxyless field set to true.", - "items": { - "$ref": "MetadataFilter" - }, - "type": "array" - }, - "pathTemplateMatch": { - "description": "If specified, the route is a pattern match expression that must match the :path header once the query string is removed. A pattern match allows you to match - The value must be between 1 and 1024 characters - The pattern must start with a leading slash (\"/\") - There may be no more than 5 operators in pattern Precisely one of prefix_match, full_path_match, regex_match or path_template_match must be set.", - "type": "string" - }, - "prefixMatch": { - "description": "For satisfying the matchRule condition, the request's path must begin with the specified prefixMatch. prefixMatch must begin with a /. The value must be from 1 to 1024 characters. Only one of prefixMatch, fullPathMatch or regexMatch must be specified.", - "type": "string" - }, - "queryParameterMatches": { - "description": "Specifies a list of query parameter match criteria, all of which must match corresponding query parameters in the request. Not supported when the URL map is bound to a target gRPC proxy.", - "items": { - "$ref": "HttpQueryParameterMatch" - }, - "type": "array" - }, - "regexMatch": { - "description": "For satisfying the matchRule condition, the path of the request must satisfy the regular expression specified in regexMatch after removing any query parameters and anchor supplied with the original URL. For more information about regular expression syntax, see Syntax. Only one of prefixMatch, fullPathMatch or regexMatch must be specified. Regular expressions can only be used when the loadBalancingScheme is set to INTERNAL_SELF_MANAGED.", - "type": "string" - } - }, - "type": "object" - }, - "HttpsHealthCheck": { - "description": "Represents a legacy HTTPS Health Check resource. Legacy HTTPS health checks have been deprecated. If you are using a target pool-based network load balancer, you must use a legacy HTTP (not HTTPS) health check. For all other load balancers, including backend service-based network load balancers, and for managed instance group auto-healing, you must use modern (non-legacy) health checks. For more information, see Health checks overview .", - "id": "HttpsHealthCheck", - "properties": { - "checkIntervalSec": { - "description": "How often (in seconds) to send a health check. The default value is 5 seconds.", - "format": "int32", - "type": "integer" - }, - "creationTimestamp": { - "description": "[Output Only] Creation timestamp in RFC3339 text format.", - "type": "string" - }, - "description": { - "description": "An optional description of this resource. Provide this property when you create the resource.", - "type": "string" - }, - "healthyThreshold": { - "description": "A so-far unhealthy instance will be marked healthy after this many consecutive successes. The default value is 2.", - "format": "int32", - "type": "integer" - }, - "host": { - "description": "The value of the host header in the HTTPS health check request. If left empty (default value), the public IP on behalf of which this health check is performed will be used.", - "type": "string" - }, - "id": { - "description": "[Output Only] The unique identifier for the resource. This identifier is defined by the server.", - "format": "uint64", - "type": "string" - }, - "kind": { - "default": "compute#httpsHealthCheck", - "description": "Type of the resource.", - "type": "string" - }, - "name": { - "description": "Name of the resource. Provided by the client when the resource is created. The name must be 1-63 characters long, and comply with RFC1035. 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" - }, - "port": { - "description": "The TCP port number for the HTTPS health check request. The default value is 443.", - "format": "int32", - "type": "integer" + "diagnostics": { + "$ref": "InterconnectDiagnostics", + "description": "Output only. The diagnostics of the Interconnect, as returned by the existing\nget-diagnostics method.", + "readOnly": true }, - "requestPath": { - "description": "The request path of the HTTPS health check request. The default value is \"/\". Must comply with RFC3986.", + "interconnect": { + "description": "Output only. The URL of the Interconnect being described.", + "readOnly": true, "type": "string" }, - "selfLink": { - "description": "[Output Only] Server-defined URL for the resource.", + "isActive": { + "description": "Output only. Whether this interconnect is participating in the redundant\nconfiguration.", + "enum": [ + "ACTIVE", + "INACTIVE", + "IS_ACTIVE_UNSPECIFIED" + ], + "enumDescriptions": [ + "", + "", + "" + ], + "readOnly": true, "type": "string" - }, - "timeoutSec": { - "description": "How long (in seconds) to wait before claiming failure. The default value is 5 seconds. It is invalid for timeoutSec to have a greater value than checkIntervalSec.", - "format": "int32", - "type": "integer" - }, - "unhealthyThreshold": { - "description": "A so-far healthy instance will be marked unhealthy after this many consecutive failures. The default value is 2.", - "format": "int32", - "type": "integer" } }, "type": "object" }, - "HttpsHealthCheckList": { - "description": "Contains a list of HttpsHealthCheck resources.", - "id": "HttpsHealthCheckList", + "InterconnectList": { + "description": "Response to the list request, and contains a list of interconnects.", + "id": "InterconnectList", "properties": { "id": { "description": "[Output Only] Unique identifier for the resource; defined by the server.", "type": "string" }, "items": { - "description": "A list of HttpsHealthCheck resources.", + "description": "A list of Interconnect resources.", "items": { - "$ref": "HttpsHealthCheck" + "$ref": "Interconnect" }, "type": "array" }, "kind": { - "default": "compute#httpsHealthCheckList", - "description": "Type of resource.", + "default": "compute#interconnectList", + "description": "Output only. [Output Only] Type of resource. Alwayscompute#interconnectList for lists of interconnects.", + "readOnly": true, "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.", + "description": "[Output Only] This token allows you to get the next page of results for\nlist requests. If the number of results is larger thanmaxResults, use the nextPageToken as a value for\nthe query parameter pageToken in the next list request.\nSubsequent list requests will have their own nextPageToken to\ncontinue paging through the results.", "type": "string" }, "selfLink": { - "description": "[Output Only] Server-defined URL for this resource.", + "description": "Output only. [Output Only] Server-defined URL for this resource.", + "readOnly": true, "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.", + "description": "[Output Only] A warning code, if applicable. For example, Compute\nEngine returns NO_RESULTS_ON_PAGE if there\nare no results in the response.", "enum": [ "CLEANUP_FAILED", "DEPRECATED_RESOURCE_USED", @@ -48605,6 +74812,7 @@ "NOT_CRITICAL_ERROR", "NO_RESULTS_ON_PAGE", "PARTIAL_SUCCESS", + "QUOTA_INFO_UNAVAILABLE", "REQUIRED_TOS_AGREEMENT", "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", "RESOURCE_NOT_DELETED", @@ -48641,46 +74849,48 @@ false, false, false, + false, false ], "enumDescriptions": [ - "Warning about failed cleanup of transient changes made by a failed operation.", + "Warning about failed cleanup of transient changes made by a failed\noperation.", "A link to a deprecated resource was created.", - "When deploying and at least one of the resources has a type marked as deprecated", + "When deploying and at least one of the resources has a type marked as\ndeprecated", "The user created a boot disk that is larger than image size.", - "When deploying and at least one of the resources has a type marked as experimental", + "When deploying and at least one of the resources has a type marked as\nexperimental", "Warning that is present in an external api call", - "Warning that value of a field has been overridden. Deprecated unused field.", + "Warning that value of a field has been overridden.\nDeprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", - "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is\nnot of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", - "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", + "Resource can't be retrieved due to list overhead quota exceed\nwhich captures the amount of resources filtered out by\nuser-defined list filter.", "A resource depends on a missing type", - "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's nextHopIp address is not assigned to an instance on the\nnetwork.", "The route's next hop instance cannot ip forward.", - "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not have an\nipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", - "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that is not on the\nsame network as the route.", "The route's next hop instance does not have a status of RUNNING.", - "Error which is not critical. We decided to continue the process despite the mentioned error.", + "Error which is not critical. We decided to continue the process despite\nthe mentioned error.", "No results are present on a particular list page.", "Success is reported, but some results may be missing due to errors", - "The user attempted to use a resource that requires a TOS they have not accepted.", + "Quota information is not available to client requests (e.g:\nregions.list).", + "The user attempted to use a resource that requires a TOS they have not\naccepted.", "Warning that a resource is in use.", - "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "One or more of the resources set to auto-delete could not be deleted\nbecause they were in use.", "When a resource schema validation is ignored.", - "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", + "Instance template used in instance group manager is valid as such, but\nits application does not make a lot of sense, because it allows only\nsingle instance in instance group.", "When undeclared properties in the schema are present", "A given scope cannot be reached." ], "type": "string" }, "data": { - "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", + "description": "[Output Only] Metadata about this warning in key:\nvalue format. For example:\n\n\"data\": [\n {\n \"key\": \"scope\",\n \"value\": \"zones/us-east1-d\"\n }", "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).", + "description": "[Output Only] A key that provides more detail on the warning being\nreturned. For example, for warnings where there are no results in a list\nrequest for a particular zone, this key might be scope and\nthe key value might be the zone name. Other examples might be a key\nindicating a deprecated resource and a suggested replacement, or a\nwarning about invalid network settings (for example, if an instance\nattempts to perform IP forwarding but is not enabled for IP forwarding).", "type": "string" }, "value": { @@ -48702,271 +74912,222 @@ }, "type": "object" }, - "Image": { - "description": "Represents an Image resource. You can use images to create boot disks for your VM instances. For more information, read Images.", - "id": "Image", + "InterconnectLocation": { + "description": "Represents an Interconnect Attachment (VLAN) Location resource.\n\nYou can use this resource to find location details about an Interconnect\nattachment (VLAN). For more information about interconnect attachments, read\nCreating VLAN Attachments.", + "id": "InterconnectLocation", "properties": { - "architecture": { - "description": "The architecture of the image. Valid values are ARM64 or X86_64.", - "enum": [ - "ARCHITECTURE_UNSPECIFIED", - "ARM64", - "X86_64" - ], - "enumDescriptions": [ - "Default value indicating Architecture is not set.", - "Machines with architecture ARM64", - "Machines with architecture X86_64" - ], - "type": "string" - }, - "archiveSizeBytes": { - "description": "Size of the image tar.gz archive stored in Google Cloud Storage (in bytes).", - "format": "int64", - "type": "string" - }, - "creationTimestamp": { - "description": "[Output Only] Creation timestamp in RFC3339 text format.", - "type": "string" - }, - "deprecated": { - "$ref": "DeprecationStatus", - "description": "The deprecation status associated with this image." - }, - "description": { - "description": "An optional description of this resource. Provide this property when you create the resource.", - "type": "string" - }, - "diskSizeGb": { - "description": "Size of the image when restored onto a persistent disk (in GB).", - "format": "int64", - "type": "string" - }, - "enableConfidentialCompute": { - "description": "Whether this image is created from a confidential compute mode disk. [Output Only]: This field is not set by user, but from source disk.", - "type": "boolean" - }, - "family": { - "description": "The name of the image family to which this image belongs. The image family name can be from a publicly managed image family provided by Compute Engine, or from a custom image family you create. For example, centos-stream-9 is a publicly available image family. For more information, see Image family best practices. When creating disks, you can specify an image family instead of a specific image name. The image family always returns its latest image that is not deprecated. The name of the image family must comply with RFC1035.", - "type": "string" - }, - "guestOsFeatures": { - "description": "A list of features to enable on the guest operating system. Applicable only for bootable images. To see a list of available options, see the guestOSfeatures[].type parameter.", - "items": { - "$ref": "GuestOsFeature" - }, - "type": "array" - }, - "id": { - "description": "[Output Only] The unique identifier for the resource. This identifier is defined by the server.", - "format": "uint64", - "type": "string" - }, - "imageEncryptionKey": { - "$ref": "CustomerEncryptionKey", - "description": "Encrypts the image using a customer-supplied encryption key. After you encrypt an image with a customer-supplied key, you must provide the same key if you use the image later (e.g. to create a disk from the image). Customer-supplied encryption keys do not protect access to metadata of the disk. If you do not provide an encryption key when creating the image, then the disk will be encrypted using an automatically generated key and you do not need to provide a key to use the image later." - }, - "kind": { - "default": "compute#image", - "description": "[Output Only] Type of the resource. Always compute#image for images.", + "address": { + "description": "Output only. [Output Only] The postal address of the Point of Presence, each line in\nthe address is separated by a newline character.", + "readOnly": true, "type": "string" }, - "labelFingerprint": { - "description": "A fingerprint for the labels being applied to this image, which is essentially a hash of the labels used for optimistic locking. The fingerprint is initially generated by Compute Engine and changes after every request to modify or update labels. You must always provide an up-to-date fingerprint hash in order to update or change labels, otherwise the request will fail with error 412 conditionNotMet. To see the latest fingerprint, make a get() request to retrieve an image.", - "format": "byte", + "availabilityZone": { + "description": "[Output Only] Availability zone for this InterconnectLocation. Within a\nmetropolitan area (metro), maintenance will not be simultaneously scheduled\nin more than one availability zone. Example: \"zone1\" or \"zone2\".", "type": "string" }, - "labels": { - "additionalProperties": { - "type": "string" - }, - "description": "Labels to apply to this image. These can be later modified by the setLabels method.", - "type": "object" - }, - "licenseCodes": { - "description": "Integer license codes indicating which licenses are attached to this image.", + "availableFeatures": { + "description": "[Output only] List of features available at this InterconnectLocation,\nwhich can take one of the following values:\n \n - IF_MACSEC\n - IF_CROSS_SITE_NETWORK", "items": { - "format": "int64", + "enum": [ + "IF_CROSS_SITE_NETWORK", + "IF_L2_FORWARDING", + "IF_MACSEC" + ], + "enumDescriptions": [ + "Cross-Site Networking", + "L2 Interconnect Attachment Forwarding", + "Media Access Control security (MACsec)" + ], "type": "string" }, "type": "array" }, - "licenses": { - "description": "Any applicable license URI.", + "availableLinkTypes": { + "description": "[Output only] List of link types available at this InterconnectLocation,\nwhich can take one of the following values:\n \n - LINK_TYPE_ETHERNET_10G_LR\n - LINK_TYPE_ETHERNET_100G_LR\n - LINK_TYPE_ETHERNET_400G_LR4", "items": { + "enum": [ + "LINK_TYPE_ETHERNET_100G_LR", + "LINK_TYPE_ETHERNET_10G_LR", + "LINK_TYPE_ETHERNET_400G_LR4" + ], + "enumDescriptions": [ + "100G Ethernet, LR Optics.", + "10G Ethernet, LR Optics.\n[(rate_bps) = 10000000000];", + "400G Ethernet, LR4 Optics." + ], "type": "string" }, "type": "array" }, - "name": { - "annotations": { - "required": [ - "compute.images.insert" - ] - }, - "description": "Name of the resource; provided by the client when the resource is created. The name must be 1-63 characters long, and comply with RFC1035. 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])?", + "city": { + "description": "[Output Only] Metropolitan area designator that indicates which city an\ninterconnect is located.\nFor example: \"Chicago, IL\", \"Amsterdam, Netherlands\".", "type": "string" }, - "rawDisk": { - "description": "The parameters of the raw disk image.", - "properties": { - "containerType": { - "description": "The format used to encode and transmit the block device, which should be TAR. This is just a container and transmission format and not a runtime format. Provided by the client when the disk image is created.", - "enum": [ - "TAR" - ], - "enumDescriptions": [ - "" - ], - "type": "string" - }, - "sha1Checksum": { - "deprecated": true, - "description": "[Deprecated] This field is deprecated. An optional SHA1 checksum of the disk image before unpackaging provided by the client when the disk image is created.", - "pattern": "[a-f0-9]{40}", - "type": "string" - }, - "source": { - "description": "The full Google Cloud Storage URL where the raw disk image archive is stored. The following are valid formats for the URL: - https://storage.googleapis.com/bucket_name/image_archive_name - https://storage.googleapis.com/bucket_name/folder_name/ image_archive_name In order to create an image, you must provide the full or partial URL of one of the following: - The rawDisk.source URL - The sourceDisk URL - The sourceImage URL - The sourceSnapshot URL ", - "type": "string" - } - }, - "type": "object" - }, - "satisfiesPzi": { - "description": "Output only. Reserved for future use.", - "readOnly": true, - "type": "boolean" - }, - "satisfiesPzs": { - "description": "[Output Only] Reserved for future use.", - "type": "boolean" + "continent": { + "description": "[Output Only] Continent for this location, which can take one of the\nfollowing values:\n \n - AFRICA\n - ASIA_PAC\n - EUROPE\n - NORTH_AMERICA\n - SOUTH_AMERICA", + "enum": [ + "AFRICA", + "ASIA_PAC", + "C_AFRICA", + "C_ASIA_PAC", + "C_EUROPE", + "C_NORTH_AMERICA", + "C_SOUTH_AMERICA", + "EUROPE", + "NORTH_AMERICA", + "SOUTH_AMERICA" + ], + "enumDescriptions": [ + "", + "", + "", + "", + "", + "", + "", + "", + "", + "" + ], + "type": "string" }, - "selfLink": { - "description": "[Output Only] Server-defined URL for the resource.", + "creationTimestamp": { + "description": "Output only. [Output Only] Creation timestamp inRFC3339\ntext format.", + "readOnly": true, "type": "string" }, - "shieldedInstanceInitialState": { - "$ref": "InitialStateConfig", - "description": "Set the secure boot keys of shielded instance." + "crossSiteInterconnectInfos": { + "description": "[Output Only] A list of InterconnectLocation.CrossSiteInterconnectInfo\nobjects, that describe where Cross-Site Interconnect wires may connect to\nfrom this location and associated connection parameters. Cross-Site\nInterconnect isn't allowed to locations which are not listed.", + "items": { + "$ref": "InterconnectLocationCrossSiteInterconnectInfo" + }, + "type": "array" }, - "sourceDisk": { - "description": "URL of the source disk used to create this image. For example, the following are valid values: - https://www.googleapis.com/compute/v1/projects/project/zones/zone /disks/disk - projects/project/zones/zone/disks/disk - zones/zone/disks/disk In order to create an image, you must provide the full or partial URL of one of the following: - The rawDisk.source URL - The sourceDisk URL - The sourceImage URL - The sourceSnapshot URL ", + "description": { + "description": "Output only. [Output Only] An optional description of the resource.", + "readOnly": true, "type": "string" }, - "sourceDiskEncryptionKey": { - "$ref": "CustomerEncryptionKey", - "description": "The customer-supplied encryption key of the source disk. Required if the source disk is protected by a customer-supplied encryption key." + "facilityProvider": { + "description": "Output only. [Output Only] The name of the provider for this facility (e.g., EQUINIX).", + "readOnly": true, + "type": "string" }, - "sourceDiskId": { - "description": "[Output Only] The ID value of the disk used to create this image. This value may be used to determine whether the image was taken from the current or a previous instance of a given disk name.", + "facilityProviderFacilityId": { + "description": "Output only. [Output Only] A provider-assigned Identifier for this facility (e.g.,\nAshburn-DC1).", + "readOnly": true, "type": "string" }, - "sourceImage": { - "description": "URL of the source image used to create this image. The following are valid formats for the URL: - https://www.googleapis.com/compute/v1/projects/project_id/global/ images/image_name - projects/project_id/global/images/image_name In order to create an image, you must provide the full or partial URL of one of the following: - The rawDisk.source URL - The sourceDisk URL - The sourceImage URL - The sourceSnapshot URL ", + "id": { + "description": "Output only. [Output Only] The unique identifier for the resource. This identifier is\ndefined by the server.", + "format": "uint64", + "readOnly": true, "type": "string" }, - "sourceImageEncryptionKey": { - "$ref": "CustomerEncryptionKey", - "description": "The customer-supplied encryption key of the source image. Required if the source image is protected by a customer-supplied encryption key." + "kind": { + "default": "compute#interconnectLocation", + "description": "Output only. [Output Only] Type of the resource. Alwayscompute#interconnectLocation for interconnect locations.", + "readOnly": true, + "type": "string" }, - "sourceImageId": { - "description": "[Output Only] The ID value of the image used to create this image. This value may be used to determine whether the image was taken from the current or a previous instance of a given image name.", + "name": { + "description": "Output only. [Output Only] Name of the resource.", + "readOnly": true, "type": "string" }, - "sourceSnapshot": { - "description": "URL of the source snapshot used to create this image. The following are valid formats for the URL: - https://www.googleapis.com/compute/v1/projects/project_id/global/ snapshots/snapshot_name - projects/project_id/global/snapshots/snapshot_name In order to create an image, you must provide the full or partial URL of one of the following: - The rawDisk.source URL - The sourceDisk URL - The sourceImage URL - The sourceSnapshot URL ", + "peeringdbFacilityId": { + "description": "Output only. [Output Only] The peeringdb identifier for this facility (corresponding\nwith a netfac type in peeringdb).", + "readOnly": true, "type": "string" }, - "sourceSnapshotEncryptionKey": { - "$ref": "CustomerEncryptionKey", - "description": "The customer-supplied encryption key of the source snapshot. Required if the source snapshot is protected by a customer-supplied encryption key." + "regionInfos": { + "description": "Output only. [Output Only] A list of InterconnectLocation.RegionInfo objects, that\ndescribe parameters pertaining to the relation between this\nInterconnectLocation and various Google Cloud regions.", + "items": { + "$ref": "InterconnectLocationRegionInfo" + }, + "readOnly": true, + "type": "array" }, - "sourceSnapshotId": { - "description": "[Output Only] The ID value of the snapshot used to create this image. This value may be used to determine whether the snapshot was taken from the current or a previous instance of a given snapshot name.", + "selfLink": { + "description": "Output only. [Output Only] Server-defined URL for the resource.", + "readOnly": true, "type": "string" }, - "sourceType": { - "default": "RAW", - "description": "The type of the image used to create this disk. The default and only valid value is RAW.", - "enum": [ - "RAW" - ], - "enumDescriptions": [ - "" - ], - "type": "string" + "singleRegionProductionCriticalPeerLocations": { + "description": "Output only. [Output Only] URLs of the other locations that can pair up with this\nlocation to support Single-Region 99.99% SLA. E.g. iad-zone1-1 and\niad-zone2-5467 are Single-Region 99.99% peer locations of each other.", + "items": { + "type": "string" + }, + "readOnly": true, + "type": "array" }, "status": { - "description": "[Output Only] The status of the image. An image can be used to create other resources, such as instances, only after the image has been successfully created and the status is set to READY. Possible values are FAILED, PENDING, or READY.", + "description": "[Output Only] The status of this InterconnectLocation, which can take one\nof the following values:\n \n - CLOSED: The InterconnectLocation is closed and is unavailable for\n provisioning new Interconnects.\n - AVAILABLE: The InterconnectLocation is available for provisioning new\n Interconnects.", "enum": [ - "DELETING", - "FAILED", - "PENDING", - "READY" + "AVAILABLE", + "CLOSED" ], "enumDescriptions": [ - "Image is deleting.", - "Image creation failed due to an error.", - "Image hasn't been created as yet.", - "Image has been successfully created." + "The InterconnectLocation is available for provisioning new Interconnects.", + "The InterconnectLocation is closed for provisioning new Interconnects." ], "type": "string" }, - "storageLocations": { - "description": "Cloud Storage bucket storage location of the image (regional or multi-regional).", - "items": { - "type": "string" - }, - "type": "array" + "supportsPzs": { + "description": "Output only. [Output Only] Reserved for future use.", + "readOnly": true, + "type": "boolean" } }, "type": "object" }, - "ImageFamilyView": { - "id": "ImageFamilyView", + "InterconnectLocationCrossSiteInterconnectInfo": { + "description": "Information about Cross-Site Interconnect wires which may be created\nbetween the containing location and another remote location.", + "id": "InterconnectLocationCrossSiteInterconnectInfo", "properties": { - "image": { - "$ref": "Image", - "description": "The latest image that is part of the specified image family in the requested location, and that is not deprecated." + "city": { + "description": "Output only. The remote location for Cross-Site Interconnect wires. This specifies an\nInterconnectLocation city (metropolitan area designator), which itself\nmay match multiple InterconnectLocations.", + "readOnly": true, + "type": "string" } }, "type": "object" }, - "ImageList": { - "description": "Contains a list of images.", - "id": "ImageList", + "InterconnectLocationList": { + "description": "Response to the list request, and contains a list of interconnect locations.", + "id": "InterconnectLocationList", "properties": { "id": { "description": "[Output Only] Unique identifier for the resource; defined by the server.", "type": "string" }, "items": { - "description": "A list of Image resources.", + "description": "A list of InterconnectLocation resources.", "items": { - "$ref": "Image" + "$ref": "InterconnectLocation" }, "type": "array" }, "kind": { - "default": "compute#imageList", - "description": "Type of resource.", + "default": "compute#interconnectLocationList", + "description": "Output only. [Output Only] Type of resource. Alwayscompute#interconnectLocationList for lists of interconnect\nlocations.", + "readOnly": true, "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.", + "description": "[Output Only] This token allows you to get the next page of results for\nlist requests. If the number of results is larger thanmaxResults, use the nextPageToken as a value for\nthe query parameter pageToken in the next list request.\nSubsequent list requests will have their own nextPageToken to\ncontinue paging through the results.", "type": "string" }, "selfLink": { - "description": "[Output Only] Server-defined URL for this resource.", + "description": "Output only. [Output Only] Server-defined URL for this resource.", + "readOnly": true, "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.", + "description": "[Output Only] A warning code, if applicable. For example, Compute\nEngine returns NO_RESULTS_ON_PAGE if there\nare no results in the response.", "enum": [ "CLEANUP_FAILED", "DEPRECATED_RESOURCE_USED", @@ -48989,6 +75150,7 @@ "NOT_CRITICAL_ERROR", "NO_RESULTS_ON_PAGE", "PARTIAL_SUCCESS", + "QUOTA_INFO_UNAVAILABLE", "REQUIRED_TOS_AGREEMENT", "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", "RESOURCE_NOT_DELETED", @@ -49025,46 +75187,48 @@ false, false, false, + false, false ], "enumDescriptions": [ - "Warning about failed cleanup of transient changes made by a failed operation.", + "Warning about failed cleanup of transient changes made by a failed\noperation.", "A link to a deprecated resource was created.", - "When deploying and at least one of the resources has a type marked as deprecated", + "When deploying and at least one of the resources has a type marked as\ndeprecated", "The user created a boot disk that is larger than image size.", - "When deploying and at least one of the resources has a type marked as experimental", + "When deploying and at least one of the resources has a type marked as\nexperimental", "Warning that is present in an external api call", - "Warning that value of a field has been overridden. Deprecated unused field.", + "Warning that value of a field has been overridden.\nDeprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", - "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is\nnot of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", - "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", + "Resource can't be retrieved due to list overhead quota exceed\nwhich captures the amount of resources filtered out by\nuser-defined list filter.", "A resource depends on a missing type", - "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's nextHopIp address is not assigned to an instance on the\nnetwork.", "The route's next hop instance cannot ip forward.", - "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not have an\nipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", - "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that is not on the\nsame network as the route.", "The route's next hop instance does not have a status of RUNNING.", - "Error which is not critical. We decided to continue the process despite the mentioned error.", + "Error which is not critical. We decided to continue the process despite\nthe mentioned error.", "No results are present on a particular list page.", "Success is reported, but some results may be missing due to errors", - "The user attempted to use a resource that requires a TOS they have not accepted.", + "Quota information is not available to client requests (e.g:\nregions.list).", + "The user attempted to use a resource that requires a TOS they have not\naccepted.", "Warning that a resource is in use.", - "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "One or more of the resources set to auto-delete could not be deleted\nbecause they were in use.", "When a resource schema validation is ignored.", - "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", + "Instance template used in instance group manager is valid as such, but\nits application does not make a lot of sense, because it allows only\nsingle instance in instance group.", "When undeclared properties in the schema are present", "A given scope cannot be reached." ], "type": "string" }, "data": { - "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", + "description": "[Output Only] Metadata about this warning in key:\nvalue format. For example:\n\n\"data\": [\n {\n \"key\": \"scope\",\n \"value\": \"zones/us-east1-d\"\n }", "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).", + "description": "[Output Only] A key that provides more detail on the warning being\nreturned. For example, for warnings where there are no results in a list\nrequest for a particular zone, this key might be scope and\nthe key value might be the zone name. Other examples might be a key\nindicating a deprecated resource and a suggested replacement, or a\nwarning about invalid network settings (for example, if an instance\nattempts to perform IP forwarding but is not enabled for IP forwarding).", "type": "string" }, "value": { @@ -49086,337 +75250,444 @@ }, "type": "object" }, - "InitialStateConfig": { - "description": "Initial State for shielded instance, these are public keys which are safe to store in public", - "id": "InitialStateConfig", + "InterconnectLocationRegionInfo": { + "description": "Information about any potential InterconnectAttachments between an\nInterconnect at a specific InterconnectLocation, and a specific Cloud\nRegion.", + "id": "InterconnectLocationRegionInfo", "properties": { - "dbs": { - "description": "The Key Database (db).", - "items": { - "$ref": "FileContentBuffer" - }, - "type": "array" + "expectedRttMs": { + "description": "Output only. Expected round-trip time in milliseconds, from this InterconnectLocation\nto a VM in this region.", + "format": "int64", + "readOnly": true, + "type": "string" }, - "dbxs": { - "description": "The forbidden key database (dbx).", + "l2ForwardingEnabled": { + "description": "Output only. Identifies whether L2 Interconnect Attachments can be created in this\nregion for interconnects that are in this location.", + "readOnly": true, + "type": "boolean" + }, + "locationPresence": { + "description": "Output only. Identifies the network presence of this location.", + "enum": [ + "GLOBAL", + "LOCAL_REGION", + "LP_GLOBAL", + "LP_LOCAL_REGION" + ], + "enumDescriptions": [ + "This region is not in any common network presence with this\nInterconnectLocation.", + "This region shares the same regional network presence as this\nInterconnectLocation.", + "[Deprecated] This region is not in any common network presence with\nthis InterconnectLocation.", + "[Deprecated] This region shares the same regional network presence as\nthis InterconnectLocation." + ], + "readOnly": true, + "type": "string" + }, + "region": { + "description": "Output only. URL for the region of this location.", + "readOnly": true, + "type": "string" + } + }, + "type": "object" + }, + "InterconnectMacsec": { + "description": "Configuration information for enabling Media Access Control security\n(MACsec) on this Cloud Interconnect connection between Google and your\non-premises router.", + "id": "InterconnectMacsec", + "properties": { + "failOpen": { + "description": "If set to true, the Interconnect connection is configured with ashould-secure MACsec security policy, that allows the Google\nrouter to fallback to cleartext traffic if the MKA session cannot be\nestablished. By default, the Interconnect connection is configured with amust-secure security policy that drops all traffic if the\nMKA session cannot be established with your router.", + "type": "boolean" + }, + "preSharedKeys": { + "description": "Required. A keychain placeholder describing a set of named key objects\nalong with their start times. A MACsec CKN/CAK is generated for each\nkey in the key chain. Google router automatically picks the key with\nthe most recent startTime when establishing or re-establishing a MACsec\nsecure link.", "items": { - "$ref": "FileContentBuffer" + "$ref": "InterconnectMacsecPreSharedKey" }, "type": "array" - }, - "keks": { - "description": "The Key Exchange Key (KEK).", + } + }, + "type": "object" + }, + "InterconnectMacsecConfig": { + "description": "MACsec configuration information for the Interconnect connection. Contains\nthe generated Connectivity Association Key Name (CKN) and the key (CAK) for\nthis Interconnect connection.", + "id": "InterconnectMacsecConfig", + "properties": { + "preSharedKeys": { + "description": "A keychain placeholder describing a set of named key objects\nalong with their start times. A MACsec CKN/CAK is generated for each key in\nthe key chain. Google router automatically picks the key with the most\nrecent startTime when establishing or re-establishing a MACsec secure link.", "items": { - "$ref": "FileContentBuffer" + "$ref": "InterconnectMacsecConfigPreSharedKey" }, "type": "array" - }, - "pk": { - "$ref": "FileContentBuffer", - "description": "The Platform Key (PK)." } }, "type": "object" }, - "Instance": { - "description": "Represents an Instance resource. An instance is a virtual machine that is hosted on Google Cloud Platform. For more information, read Virtual Machine Instances.", - "id": "Instance", + "InterconnectMacsecConfigPreSharedKey": { + "description": "Describes a pre-shared key used to setup MACsec in static connectivity\nassociation key (CAK) mode.", + "id": "InterconnectMacsecConfigPreSharedKey", "properties": { - "advancedMachineFeatures": { - "$ref": "AdvancedMachineFeatures", - "description": "Controls for advanced machine-related behavior features." - }, - "canIpForward": { - "description": "Allows this instance to send and receive packets with non-matching destination or source IPs. This is required if you plan to use this instance to forward routes. For more information, see Enabling IP Forwarding .", - "type": "boolean" - }, - "confidentialInstanceConfig": { - "$ref": "ConfidentialInstanceConfig" - }, - "cpuPlatform": { - "description": "[Output Only] The CPU platform used by this instance.", + "cak": { + "description": "An auto-generated Connectivity Association Key (CAK) for this key.", "type": "string" }, - "creationTimestamp": { - "description": "[Output Only] Creation timestamp in RFC3339 text format.", + "ckn": { + "description": "An auto-generated Connectivity Association Key Name (CKN) for this key.", "type": "string" }, - "deletionProtection": { - "description": "Whether the resource should be protected against deletion.", - "type": "boolean" + "name": { + "description": "User provided name for this pre-shared key.", + "type": "string" }, - "description": { - "description": "An optional description of this resource. Provide this property when you create the resource.", + "startTime": { + "description": "User provided timestamp on or after which this key is valid.", + "type": "string" + } + }, + "type": "object" + }, + "InterconnectMacsecPreSharedKey": { + "description": "Describes a pre-shared key used to setup MACsec in static connectivity\nassociation key (CAK) mode.", + "id": "InterconnectMacsecPreSharedKey", + "properties": { + "name": { + "description": "Required. A name for this pre-shared key.\nThe name must be 1-63 characters long, and comply withRFC1035. Specifically, the name must be 1-63\ncharacters long and match the regular expression\n`[a-z]([-a-z0-9]*[a-z0-9])?` which means the first character must be a\nlowercase letter, and all following characters must be a dash,\nlowercase letter, or digit, except the last character, which cannot be\na dash.", "type": "string" }, - "disks": { - "description": "Array of disks associated with this instance. Persistent disks must be created before you can assign them.", + "startTime": { + "description": "A RFC3339 timestamp on or after which the key is\nvalid. startTime can be in the future. If the keychain has a single\nkey, startTime can be omitted. If the keychain has multiple keys,\nstartTime is mandatory for each key. The start times of keys must be in\nincreasing order. The start times of two consecutive keys must be\nat least 6 hours apart.", + "type": "string" + } + }, + "type": "object" + }, + "InterconnectOutageNotification": { + "description": "Description of a planned outage on this Interconnect.", + "id": "InterconnectOutageNotification", + "properties": { + "affectedCircuits": { + "description": "If issue_type is IT_PARTIAL_OUTAGE, a list of the Google-side circuit\nIDs that will be affected.", "items": { - "$ref": "AttachedDisk" + "type": "string" }, "type": "array" }, - "displayDevice": { - "$ref": "DisplayDevice", - "description": "Enables display device for the instance." - }, - "fingerprint": { - "description": "Specifies a fingerprint for this resource, which is essentially a hash of the instance's contents and used for optimistic locking. The fingerprint is initially generated by Compute Engine and changes after every request to modify or update the instance. You must always provide an up-to-date fingerprint hash in order to update the instance. To see the latest fingerprint, make get() request to the instance.", - "format": "byte", + "description": { + "description": "A description about the purpose of the outage.", "type": "string" }, - "guestAccelerators": { - "description": "A list of the type and count of accelerator cards attached to the instance.", - "items": { - "$ref": "AcceleratorConfig" - }, - "type": "array" - }, - "hostname": { - "description": "Specifies the hostname of the instance. The specified hostname must be RFC1035 compliant. If hostname is not specified, the default hostname is [INSTANCE_NAME].c.[PROJECT_ID].internal when using the global DNS, and [INSTANCE_NAME].[ZONE].c.[PROJECT_ID].internal when using zonal DNS.", + "endTime": { + "description": "Scheduled end time for the outage (milliseconds since Unix\nepoch).", + "format": "int64", "type": "string" }, - "id": { - "description": "[Output Only] The unique identifier for the resource. This identifier is defined by the server.", - "format": "uint64", + "issueType": { + "description": "Form this outage is expected to take, which can take one of the following\nvalues:\n \n - OUTAGE: The Interconnect may be completely out of service for\n some or all of the specified window.\n - PARTIAL_OUTAGE: Some circuits comprising the Interconnect as a whole\n should remain up, but with reduced bandwidth.\n\n\nNote that the versions of this enum prefixed with \"IT_\" have been\ndeprecated in favor of the unprefixed values.", + "enum": [ + "IT_OUTAGE", + "IT_PARTIAL_OUTAGE", + "OUTAGE", + "PARTIAL_OUTAGE" + ], + "enumDescriptions": [ + "[Deprecated] The Interconnect may be completely out of service for some\nor all of the specified window.", + "[Deprecated] Some circuits comprising the Interconnect will be out of\nservice during the expected window. The interconnect as a whole should\nremain up, albeit with reduced bandwidth.", + "The Interconnect may be completely out of service for some or all of\nthe specified window.", + "Some circuits comprising the Interconnect will be out of service during\nthe expected window. The interconnect as a whole should remain\nup, albeit with reduced bandwidth." + ], "type": "string" }, - "instanceEncryptionKey": { - "$ref": "CustomerEncryptionKey", - "description": "Encrypts suspended data for an instance with a customer-managed encryption key. If you are creating a new instance, this field will encrypt the local SSD and in-memory contents of the instance during the suspend operation. If you do not provide an encryption key when creating the instance, then the local SSD and in-memory contents will be encrypted using an automatically generated key during the suspend operation." + "name": { + "description": "Unique identifier for this outage notification.", + "type": "string" }, - "keyRevocationActionType": { - "description": "KeyRevocationActionType of the instance. Supported options are \"STOP\" and \"NONE\". The default value is \"NONE\" if it is not specified.", + "source": { + "description": "The party that generated this notification, which can take the following\nvalue:\n \n - GOOGLE: this notification as generated by Google.\n\n\nNote that the value of NSRC_GOOGLE has been deprecated in favor of\nGOOGLE.", "enum": [ - "KEY_REVOCATION_ACTION_TYPE_UNSPECIFIED", - "NONE", - "STOP" + "GOOGLE", + "NSRC_GOOGLE" ], "enumDescriptions": [ - "Default value. This value is unused.", - "Indicates user chose no operation.", - "Indicates user chose to opt for VM shutdown on key revocation." + "This notification was generated by Google.", + "[Deprecated] This notification was generated by Google." ], "type": "string" }, - "kind": { - "default": "compute#instance", - "description": "[Output Only] Type of the resource. Always compute#instance for instances.", + "startTime": { + "description": "Scheduled start time for the outage (milliseconds since Unix\nepoch).", + "format": "int64", "type": "string" }, - "labelFingerprint": { - "description": "A fingerprint for this request, which is essentially a hash of the label's contents and used for optimistic locking. The fingerprint is initially generated by Compute Engine and changes after every request to modify or update labels. You must always provide an up-to-date fingerprint hash in order to update or change labels. To see the latest fingerprint, make get() request to the instance.", - "format": "byte", + "state": { + "description": "State of this notification, which can take one of the following values:\n \n - ACTIVE: This outage notification is active. The event could be in\n the past, present, or future. See start_time and end_time for\n scheduling.\n - CANCELLED: The outage associated with this notification was cancelled\n before the outage was due to start.\n - COMPLETED: The outage associated with this notification is complete.\n\n\nNote that the versions of this enum prefixed with \"NS_\" have been\ndeprecated in favor of the unprefixed values.", + "enum": [ + "ACTIVE", + "CANCELLED", + "COMPLETED", + "NS_ACTIVE", + "NS_CANCELED" + ], + "enumDescriptions": [ + "This outage notification is active. The event could be in the future,\npresent, or past. See start_time and end_time for scheduling.", + "The outage associated with this notification was cancelled before the\noutage was due to start.", + "The outage associated with this notification is complete.", + "[Deprecated] This outage notification is active. The event could be in\nthe future, present, or past. See start_time and end_time for\nscheduling.", + "[Deprecated] The outage associated with this notification was canceled\nbefore the outage was due to start." + ], "type": "string" - }, - "labels": { + } + }, + "type": "object" + }, + "InterconnectParams": { + "description": "Additional interconnect parameters.", + "id": "InterconnectParams", + "properties": { + "resourceManagerTags": { "additionalProperties": { "type": "string" }, - "description": "Labels to apply to this instance. These can be later modified by the setLabels method.", + "description": "Tag keys/values directly bound to this resource.\nTag keys and values have the same definition as resource\nmanager tags. The field is allowed for INSERT\nonly. The keys/values to set on the resource should be specified in\neither ID { : } or Namespaced format\n{ : }.\nFor example the following are valid inputs:\n* {\"tagKeys/333\" : \"tagValues/444\", \"tagKeys/123\" : \"tagValues/456\"}\n* {\"123/environment\" : \"production\", \"345/abc\" : \"xyz\"}\nNote:\n* Invalid combinations of ID \u0026 namespaced format is not supported. For\n instance: {\"123/environment\" : \"tagValues/444\"} is invalid.\n* Inconsistent format is not supported. For instance:\n {\"tagKeys/333\" : \"tagValues/444\", \"123/env\" : \"prod\"} is invalid.", "type": "object" - }, - "lastStartTimestamp": { - "description": "[Output Only] Last start timestamp in RFC3339 text format.", + } + }, + "type": "object" + }, + "InterconnectRemoteLocation": { + "description": "Represents a Cross-Cloud Interconnect Remote Location resource.\n\nYou can use this resource to find remote location details about an\nInterconnect attachment (VLAN).", + "id": "InterconnectRemoteLocation", + "properties": { + "address": { + "description": "Output only. [Output Only] The postal address of the Point of Presence, each line in\nthe address is separated by a newline character.", + "readOnly": true, "type": "string" }, - "lastStopTimestamp": { - "description": "[Output Only] Last stop timestamp in RFC3339 text format.", - "type": "string" + "attachmentConfigurationConstraints": { + "$ref": "InterconnectAttachmentConfigurationConstraints", + "description": "Output only. [Output Only] Subset of fields from InterconnectAttachment's\n|configurationConstraints| field that apply to all attachments for this\nremote location.", + "readOnly": true }, - "lastSuspendedTimestamp": { - "description": "[Output Only] Last suspended timestamp in RFC3339 text format.", + "city": { + "description": "Output only. [Output Only] Metropolitan area designator that indicates which city an\ninterconnect is located.\nFor example: \"Chicago, IL\", \"Amsterdam, Netherlands\".", + "readOnly": true, "type": "string" }, - "machineType": { - "description": "Full or partial URL of the machine type resource to use for this instance, in the format: zones/zone/machineTypes/machine-type. This is provided by the client when the instance is created. For example, the following is a valid partial url to a predefined machine type: zones/us-central1-f/machineTypes/n1-standard-1 To create a custom machine type, provide a URL to a machine type in the following format, where CPUS is 1 or an even number up to 32 (2, 4, 6, ... 24, etc), and MEMORY is the total memory for this instance. Memory must be a multiple of 256 MB and must be supplied in MB (e.g. 5 GB of memory is 5120 MB): zones/zone/machineTypes/custom-CPUS-MEMORY For example: zones/us-central1-f/machineTypes/custom-4-5120 For a full list of restrictions, read the Specifications for custom machine types.", + "constraints": { + "$ref": "InterconnectRemoteLocationConstraints", + "description": "Output only. [Output Only] Constraints on the parameters for creating Cross-Cloud\nInterconnect and associated InterconnectAttachments.", + "readOnly": true + }, + "continent": { + "description": "Output only. [Output Only] Continent for this location, which can take one of the\nfollowing values:\n \n - AFRICA\n - ASIA_PAC\n - EUROPE\n - NORTH_AMERICA\n - SOUTH_AMERICA", + "enum": [ + "AFRICA", + "ASIA_PAC", + "EUROPE", + "NORTH_AMERICA", + "SOUTH_AMERICA" + ], + "enumDescriptions": [ + "", + "", + "", + "", + "" + ], + "readOnly": true, "type": "string" }, - "metadata": { - "$ref": "Metadata", - "description": "The metadata key/value pairs assigned to this instance. This includes custom metadata and predefined keys." + "creationTimestamp": { + "description": "Output only. [Output Only] Creation timestamp inRFC3339\ntext format.", + "readOnly": true, + "type": "string" }, - "minCpuPlatform": { - "description": "Specifies a minimum CPU platform for the VM instance. Applicable values are the friendly names of CPU platforms, such as minCpuPlatform: \"Intel Haswell\" or minCpuPlatform: \"Intel Sandy Bridge\".", + "description": { + "description": "Output only. [Output Only] An optional description of the resource.", + "readOnly": true, "type": "string" }, - "name": { - "annotations": { - "required": [ - "compute.instances.insert" - ] - }, - "description": "The name of the resource, provided by the client when initially creating the resource. The resource 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])?", + "facilityProvider": { + "description": "Output only. [Output Only] The name of the provider for this facility (e.g., EQUINIX).", + "readOnly": true, "type": "string" }, - "networkInterfaces": { - "description": "An array of network configurations for this instance. These specify how interfaces are configured to interact with other network services, such as connecting to the internet. Multiple interfaces are supported per instance.", - "items": { - "$ref": "NetworkInterface" - }, - "type": "array" + "facilityProviderFacilityId": { + "description": "Output only. [Output Only] A provider-assigned Identifier for this facility (e.g.,\nAshburn-DC1).", + "readOnly": true, + "type": "string" }, - "networkPerformanceConfig": { - "$ref": "NetworkPerformanceConfig" + "id": { + "description": "Output only. [Output Only] The unique identifier for the resource. This identifier is\ndefined by the server.", + "format": "uint64", + "readOnly": true, + "type": "string" }, - "params": { - "$ref": "InstanceParams", - "description": "Input only. [Input Only] Additional params passed with the request, but not persisted as part of resource payload." + "kind": { + "default": "compute#interconnectRemoteLocation", + "description": "Output only. [Output Only] Type of the resource. Alwayscompute#interconnectRemoteLocation for interconnect remote\nlocations.", + "readOnly": true, + "type": "string" }, - "privateIpv6GoogleAccess": { - "description": "The private IPv6 google access type for the VM. If not specified, use INHERIT_FROM_SUBNETWORK as default.", + "lacp": { + "description": "Output only. [Output Only] Link Aggregation Control Protocol (LACP) constraints, which\ncan take one of the following values: LACP_SUPPORTED, LACP_UNSUPPORTED", "enum": [ - "ENABLE_BIDIRECTIONAL_ACCESS_TO_GOOGLE", - "ENABLE_OUTBOUND_VM_ACCESS_TO_GOOGLE", - "INHERIT_FROM_SUBNETWORK" + "LACP_SUPPORTED", + "LACP_UNSUPPORTED" ], "enumDescriptions": [ - "Bidirectional private IPv6 access to/from Google services. If specified, the subnetwork who is attached to the instance's default network interface will be assigned an internal IPv6 prefix if it doesn't have before.", - "Outbound private IPv6 access from VMs in this subnet to Google services. If specified, the subnetwork who is attached to the instance's default network interface will be assigned an internal IPv6 prefix if it doesn't have before.", - "Each network interface inherits PrivateIpv6GoogleAccess from its subnetwork." + "LACP_SUPPORTED: LACP is supported, and enabled by default on\nthe Cross-Cloud Interconnect.", + "LACP_UNSUPPORTED: LACP is not supported and is not be enabled on this\nport. GetDiagnostics shows bundleAggregationType as \"static\". GCP does\nnot support LAGs without LACP, so requestedLinkCount must be 1." ], + "readOnly": true, "type": "string" }, - "reservationAffinity": { - "$ref": "ReservationAffinity", - "description": "Specifies the reservations that this instance can consume from." - }, - "resourcePolicies": { - "description": "Resource policies applied to this instance.", - "items": { - "type": "string" - }, - "type": "array" - }, - "resourceStatus": { - "$ref": "ResourceStatus", - "description": "[Output Only] Specifies values set for instance attributes as compared to the values requested by user in the corresponding input only field." + "maxLagSize100Gbps": { + "description": "Output only. [Output Only]\nThe maximum number of 100 Gbps ports supported in a link aggregation group\n(LAG). When linkType is 100 Gbps, requestedLinkCount cannot exceed\nmax_lag_size_100_gbps.", + "format": "int32", + "readOnly": true, + "type": "integer" }, - "satisfiesPzi": { - "description": "[Output Only] Reserved for future use.", - "type": "boolean" + "maxLagSize10Gbps": { + "description": "Output only. [Output Only]\nThe maximum number of 10 Gbps ports supported in a link aggregation group\n(LAG). When linkType is 10 Gbps, requestedLinkCount cannot exceed\nmax_lag_size_10_gbps.", + "format": "int32", + "readOnly": true, + "type": "integer" }, - "satisfiesPzs": { - "description": "[Output Only] Reserved for future use.", - "type": "boolean" + "maxLagSize400Gbps": { + "description": "Output only. [Output Only]\nThe maximum number of 400 Gbps ports supported in a link aggregation group\n(LAG). When linkType is 400 Gbps, requestedLinkCount cannot exceed\nmax_lag_size_400_gbps.", + "format": "int32", + "readOnly": true, + "type": "integer" }, - "scheduling": { - "$ref": "Scheduling", - "description": "Sets the scheduling options for this instance." + "name": { + "description": "Output only. [Output Only] Name of the resource.", + "readOnly": true, + "type": "string" }, - "selfLink": { - "description": "[Output Only] Server-defined URL for this resource.", + "peeringdbFacilityId": { + "description": "Output only. [Output Only] The peeringdb identifier for this facility (corresponding\nwith a netfac type in peeringdb).", + "readOnly": true, "type": "string" }, - "serviceAccounts": { - "description": "A list of service accounts, with their specified scopes, authorized for this instance. Only one service account per VM instance is supported. Service accounts generate access tokens that can be accessed through the metadata server and used to authenticate applications on the instance. See Service Accounts for more information.", + "permittedConnections": { + "description": "Output only. [Output Only] Permitted connections.", "items": { - "$ref": "ServiceAccount" + "$ref": "InterconnectRemoteLocationPermittedConnections" }, + "readOnly": true, "type": "array" }, - "shieldedInstanceConfig": { - "$ref": "ShieldedInstanceConfig" - }, - "shieldedInstanceIntegrityPolicy": { - "$ref": "ShieldedInstanceIntegrityPolicy" - }, - "sourceMachineImage": { - "description": "Source machine image", + "remoteService": { + "description": "Output only. [Output Only] Indicates the service provider present at the remote\nlocation. Example values: \"Amazon Web Services\", \"Microsoft Azure\".", + "readOnly": true, "type": "string" }, - "sourceMachineImageEncryptionKey": { - "$ref": "CustomerEncryptionKey", - "description": "Source machine image encryption key when creating an instance from a machine image." - }, - "startRestricted": { - "description": "[Output Only] Whether a VM has been restricted for start because Compute Engine has detected suspicious activity.", - "type": "boolean" + "selfLink": { + "description": "Output only. [Output Only] Server-defined URL for the resource.", + "readOnly": true, + "type": "string" }, "status": { - "description": "[Output Only] The status of the instance. One of the following values: PROVISIONING, STAGING, RUNNING, STOPPING, SUSPENDING, SUSPENDED, REPAIRING, and TERMINATED. For more information about the status of the instance, see Instance life cycle.", + "description": "Output only. [Output Only] The status of this InterconnectRemoteLocation, which can take\none of the following values:\n \n - CLOSED: The InterconnectRemoteLocation is closed and is unavailable\n for provisioning new Cross-Cloud Interconnects. \n - AVAILABLE: The\n InterconnectRemoteLocation is available for provisioning new\n Cross-Cloud Interconnects.", "enum": [ - "DEPROVISIONING", - "PROVISIONING", - "REPAIRING", - "RUNNING", - "STAGING", - "STOPPED", - "STOPPING", - "SUSPENDED", - "SUSPENDING", - "TERMINATED" + "AVAILABLE", + "CLOSED" ], "enumDescriptions": [ - "The instance is halted and we are performing tear down tasks like network deprogramming, releasing quota, IP, tearing down disks etc.", - "Resources are being allocated for the instance.", - "The instance is in repair.", - "The instance is running.", - "All required resources have been allocated and the instance is being started.", - "The instance has stopped successfully.", - "The instance is currently stopping (either being deleted or killed).", - "The instance has suspended.", - "The instance is suspending.", - "The instance has stopped (either by explicit action or underlying failure)." + "The InterconnectRemoteLocation is available for provisioning new\nCross-Cloud Interconnects.", + "The InterconnectRemoteLocation is closed for provisioning new\nCross-Cloud Interconnects." + ], + "readOnly": true, + "type": "string" + } + }, + "type": "object" + }, + "InterconnectRemoteLocationConstraints": { + "id": "InterconnectRemoteLocationConstraints", + "properties": { + "portPairRemoteLocation": { + "description": "Output only. [Output Only] Port pair remote location constraints, which can take one\nof the following values: PORT_PAIR_UNCONSTRAINED_REMOTE_LOCATION,\nPORT_PAIR_MATCHING_REMOTE_LOCATION.\n\nGoogle Cloud API refers only to individual ports, but the UI uses this\nfield when ordering a pair of ports, to prevent users from accidentally\nordering something that is incompatible with their cloud provider.\nSpecifically, when ordering a redundant pair of Cross-Cloud Interconnect\nports, and one of them uses a remote location with\nportPairMatchingRemoteLocation set to matching, the UI requires that\nboth ports use the same remote location.", + "enum": [ + "PORT_PAIR_MATCHING_REMOTE_LOCATION", + "PORT_PAIR_UNCONSTRAINED_REMOTE_LOCATION" + ], + "enumDescriptions": [ + "If PORT_PAIR_MATCHING_REMOTE_LOCATION, the remote cloud provider\nallocates ports in pairs, and the user should choose the same remote\nlocation for both ports.", + "If PORT_PAIR_UNCONSTRAINED_REMOTE_LOCATION, a user may opt to provision\na redundant pair of Cross-Cloud Interconnects using two different\nremote locations in the same city." ], + "readOnly": true, "type": "string" }, - "statusMessage": { - "description": "[Output Only] An optional, human-readable explanation of the status.", + "portPairVlan": { + "description": "Output only. [Output Only] Port pair VLAN constraints, which can take one of the\nfollowing values: PORT_PAIR_UNCONSTRAINED_VLAN, PORT_PAIR_MATCHING_VLAN", + "enum": [ + "PORT_PAIR_MATCHING_VLAN", + "PORT_PAIR_UNCONSTRAINED_VLAN" + ], + "enumDescriptions": [ + "If PORT_PAIR_MATCHING_VLAN, the Interconnect for this attachment is\npart of a pair of ports that should have matching VLAN allocations.\nThis occurs with Cross-Cloud Interconnect to Azure remote locations.\nWhile GCP's API does not explicitly group pairs of ports, the UI uses\nthis field to ensure matching VLAN ids when configuring a redundant\nVLAN pair.", + "PORT_PAIR_UNCONSTRAINED_VLAN means there is no constraint." + ], + "readOnly": true, "type": "string" }, - "tags": { - "$ref": "Tags", - "description": "Tags to apply to this instance. Tags are used to identify valid sources or targets for network firewalls and are specified by the client during instance creation. The tags can be later modified by the setTags method. Each tag within the list must comply with RFC1035. Multiple tags can be specified via the 'tags.items' field." + "subnetLengthRange": { + "$ref": "InterconnectRemoteLocationConstraintsSubnetLengthRange", + "description": "Output only. [Output Only]\n\n[min-length, max-length] \n\nThe minimum and maximum value (inclusive) for the IPv4 subnet\nlength.\n\n For example, an interconnectRemoteLocation for Azure has {min: 30,\nmax:\n30} because Azure requires /30 subnets. \n\nThis range specifies the values supported by both cloud providers.\nInterconnect currently supports /29 and /30 IPv4 subnet lengths. If a\nremote cloud has no constraint on IPv4 subnet length, the range would\nthus be {min: 29, max: 30}.", + "readOnly": true + } + }, + "type": "object" + }, + "InterconnectRemoteLocationConstraintsSubnetLengthRange": { + "id": "InterconnectRemoteLocationConstraintsSubnetLengthRange", + "properties": { + "max": { + "format": "int32", + "type": "integer" }, - "zone": { - "description": "[Output Only] URL of the zone where the instance resides. You must specify this field as part of the HTTP request URL. It is not settable as a field in the request body.", - "type": "string" + "min": { + "format": "int32", + "type": "integer" } }, "type": "object" }, - "InstanceAggregatedList": { - "id": "InstanceAggregatedList", + "InterconnectRemoteLocationList": { + "description": "Response to the list request, and contains a list of interconnect remote\nlocations.", + "id": "InterconnectRemoteLocationList", "properties": { "id": { "description": "[Output Only] Unique identifier for the resource; defined by the server.", "type": "string" }, "items": { - "additionalProperties": { - "$ref": "InstancesScopedList", - "description": "[Output Only] Name of the scope containing this set of instances." + "description": "A list of InterconnectRemoteLocation resources.", + "items": { + "$ref": "InterconnectRemoteLocation" }, - "description": "An object that contains a list of instances scoped by zone.", - "type": "object" + "type": "array" }, "kind": { - "default": "compute#instanceAggregatedList", - "description": "[Output Only] Type of resource. Always compute#instanceAggregatedList for aggregated lists of Instance resources.", + "default": "compute#interconnectRemoteLocationList", + "description": "Output only. [Output Only] Type of resource. Alwayscompute#interconnectRemoteLocationList for lists of\ninterconnect remote locations.", + "readOnly": true, "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.", + "description": "[Output Only] This token lets you get the next page of results for\nlist requests. If the number of results is larger thanmaxResults, use the nextPageToken as a value for\nthe query parameter pageToken in the next list request.\nSubsequent list requests will have their own nextPageToken to\ncontinue paging through the results.", "type": "string" }, "selfLink": { - "description": "[Output Only] Server-defined URL for this resource.", + "description": "Output only. [Output Only] Server-defined URL for this resource.", + "readOnly": true, "type": "string" }, - "unreachables": { - "description": "[Output Only] Unreachable resources.", - "items": { - "type": "string" - }, - "type": "array" - }, "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.", + "description": "[Output Only] A warning code, if applicable. For example, Compute\nEngine returns NO_RESULTS_ON_PAGE if there\nare no results in the response.", "enum": [ "CLEANUP_FAILED", "DEPRECATED_RESOURCE_USED", @@ -49439,6 +75710,7 @@ "NOT_CRITICAL_ERROR", "NO_RESULTS_ON_PAGE", "PARTIAL_SUCCESS", + "QUOTA_INFO_UNAVAILABLE", "REQUIRED_TOS_AGREEMENT", "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", "RESOURCE_NOT_DELETED", @@ -49475,46 +75747,48 @@ false, false, false, + false, false ], "enumDescriptions": [ - "Warning about failed cleanup of transient changes made by a failed operation.", + "Warning about failed cleanup of transient changes made by a failed\noperation.", "A link to a deprecated resource was created.", - "When deploying and at least one of the resources has a type marked as deprecated", + "When deploying and at least one of the resources has a type marked as\ndeprecated", "The user created a boot disk that is larger than image size.", - "When deploying and at least one of the resources has a type marked as experimental", + "When deploying and at least one of the resources has a type marked as\nexperimental", "Warning that is present in an external api call", - "Warning that value of a field has been overridden. Deprecated unused field.", + "Warning that value of a field has been overridden.\nDeprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", - "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is\nnot of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", - "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", + "Resource can't be retrieved due to list overhead quota exceed\nwhich captures the amount of resources filtered out by\nuser-defined list filter.", "A resource depends on a missing type", - "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's nextHopIp address is not assigned to an instance on the\nnetwork.", "The route's next hop instance cannot ip forward.", - "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not have an\nipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", - "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that is not on the\nsame network as the route.", "The route's next hop instance does not have a status of RUNNING.", - "Error which is not critical. We decided to continue the process despite the mentioned error.", + "Error which is not critical. We decided to continue the process despite\nthe mentioned error.", "No results are present on a particular list page.", "Success is reported, but some results may be missing due to errors", - "The user attempted to use a resource that requires a TOS they have not accepted.", + "Quota information is not available to client requests (e.g:\nregions.list).", + "The user attempted to use a resource that requires a TOS they have not\naccepted.", "Warning that a resource is in use.", - "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "One or more of the resources set to auto-delete could not be deleted\nbecause they were in use.", "When a resource schema validation is ignored.", - "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", + "Instance template used in instance group manager is valid as such, but\nits application does not make a lot of sense, because it allows only\nsingle instance in instance group.", "When undeclared properties in the schema are present", "A given scope cannot be reached." ], "type": "string" }, "data": { - "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", + "description": "[Output Only] Metadata about this warning in key:\nvalue format. For example:\n\n\"data\": [\n {\n \"key\": \"scope\",\n \"value\": \"zones/us-east1-d\"\n }", "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).", + "description": "[Output Only] A key that provides more detail on the warning being\nreturned. For example, for warnings where there are no results in a list\nrequest for a particular zone, this key might be scope and\nthe key value might be the zone name. Other examples might be a key\nindicating a deprecated resource and a suggested replacement, or a\nwarning about invalid network settings (for example, if an instance\nattempts to perform IP forwarding but is not enabled for IP forwarding).", "type": "string" }, "value": { @@ -49536,310 +75810,379 @@ }, "type": "object" }, - "InstanceConsumptionData": { - "id": "InstanceConsumptionData", + "InterconnectRemoteLocationPermittedConnections": { + "id": "InterconnectRemoteLocationPermittedConnections", "properties": { - "consumptionInfo": { - "$ref": "InstanceConsumptionInfo", - "description": "Resources consumed by the instance." - }, - "instance": { - "description": "Server-defined URL for the instance.", + "interconnectLocation": { + "description": "Output only. [Output Only] URL of an Interconnect location that is permitted to\nconnect to this Interconnect remote location.", + "readOnly": true, "type": "string" } }, "type": "object" }, - "InstanceConsumptionInfo": { - "id": "InstanceConsumptionInfo", + "InterconnectsGetDiagnosticsResponse": { + "description": "Response for the InterconnectsGetDiagnosticsRequest.", + "id": "InterconnectsGetDiagnosticsResponse", "properties": { - "guestCpus": { - "description": "The number of virtual CPUs that are available to the instance.", - "format": "int32", - "type": "integer" - }, - "localSsdGb": { - "description": "The amount of local SSD storage available to the instance, defined in GiB.", - "format": "int32", - "type": "integer" - }, - "memoryMb": { - "description": "The amount of physical memory available to the instance, defined in MiB.", - "format": "int32", - "type": "integer" + "result": { + "$ref": "InterconnectDiagnostics" + } + }, + "type": "object" + }, + "InterconnectsGetMacsecConfigResponse": { + "description": "Response for the InterconnectsGetMacsecConfigRequest.", + "id": "InterconnectsGetMacsecConfigResponse", + "properties": { + "etag": { + "description": "end_interface: MixerGetResponseWithEtagBuilder", + "type": "string" }, - "minNodeCpus": { - "description": "The minimal guaranteed number of virtual CPUs that are reserved.", - "format": "int32", - "type": "integer" + "result": { + "$ref": "InterconnectMacsecConfig" } }, "type": "object" }, - "InstanceGroup": { - "description": "Represents an Instance Group resource. Instance Groups can be used to configure a target for load balancing. Instance groups can either be managed or unmanaged. To create managed instance groups, use the instanceGroupManager or regionInstanceGroupManager resource instead. Use zonal unmanaged instance groups if you need to apply load balancing to groups of heterogeneous instances or if you need to manage the instances yourself. You cannot create regional unmanaged instance groups. For more information, read Instance groups.", - "id": "InstanceGroup", + "License": { + "description": "Represents a License resource.\n\nA License represents billing and aggregate usage data forpublic andmarketplace images.\n *Caution* This resource is intended for\nuse only by third-party partners who are creatingCloud Marketplace\nimages.", + "id": "License", "properties": { + "allowedReplacementLicenses": { + "description": "Specifies licenseCodes of licenses that can replace this license. Note:\nsuch replacements are allowed even if removable_from_disk is false.", + "items": { + "type": "string" + }, + "type": "array" + }, + "appendableToDisk": { + "description": "If true, this license can be appended to an existing disk's set of\nlicenses.", + "type": "boolean" + }, + "chargesUseFee": { + "description": "[Output Only] Deprecated. This field no longer reflects whether a license\ncharges a usage fee.", + "type": "boolean" + }, "creationTimestamp": { - "description": "[Output Only] The creation timestamp for this instance group in RFC3339 text format.", + "description": "Output only. [Output Only] Creation timestamp inRFC3339\ntext format.", + "readOnly": true, "type": "string" }, "description": { - "description": "An optional description of this resource. Provide this property when you create the resource.", - "type": "string" - }, - "fingerprint": { - "description": "[Output Only] The fingerprint of the named ports. The system uses this fingerprint to detect conflicts when multiple users change the named ports concurrently.", - "format": "byte", + "description": "An optional textual description of the resource; provided by the client\nwhen the resource is created.", "type": "string" }, "id": { - "description": "[Output Only] A unique identifier for this instance group, generated by the server.", + "description": "[Output Only] The unique identifier for the resource. This identifier is\ndefined by the server.", "format": "uint64", "type": "string" }, + "incompatibleLicenses": { + "description": "Specifies licenseCodes of licenses that are incompatible with this license.\nIf a license is incompatible with this license, it cannot be attached to\nthe same disk or image.", + "items": { + "type": "string" + }, + "type": "array" + }, "kind": { - "default": "compute#instanceGroup", - "description": "[Output Only] The resource type, which is always compute#instanceGroup for instance groups.", + "default": "compute#license", + "description": "Output only. [Output Only] Type of resource. Always compute#license for\nlicenses.", + "readOnly": true, + "type": "string" + }, + "licenseCode": { + "description": "[Output Only] The unique code used to attach this license to images,\nsnapshots, and disks.", + "format": "uint64", "type": "string" }, + "minimumRetention": { + "$ref": "Duration", + "description": "If set, this license will be unable to be removed or replaced once attached\nto a disk until the minimum_retention period has passed." + }, + "multiTenantOnly": { + "description": "If true, this license can only be used on VMs on multi tenant nodes.", + "type": "boolean" + }, "name": { "annotations": { "required": [ - "compute.instanceGroups.insert" + "compute.images.insert" ] }, - "description": "The name of the instance group. The name must be 1-63 characters long, and comply with RFC1035.", + "description": "Name of the resource. The name must be 1-63 characters long and\ncomply withRFC1035.", "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", "type": "string" }, - "namedPorts": { - "description": " Assigns a name to a port number. For example: {name: \"http\", port: 80} This allows the system to reference ports by the assigned name instead of a port number. Named ports can also contain multiple ports. For example: [{name: \"app1\", port: 8080}, {name: \"app1\", port: 8081}, {name: \"app2\", port: 8082}] Named ports apply to all instances in this instance group. ", + "osLicense": { + "description": "If true, indicates this is an OS license. Only one OS license can be\nattached to a disk or image at a time.", + "type": "boolean" + }, + "params": { + "$ref": "LicenseParams", + "description": "Input only. Additional params passed with the request, but not persisted\nas part of resource payload." + }, + "removableFromDisk": { + "description": "If true, this license can be removed from a disk's set of licenses, with no\nreplacement license needed.", + "type": "boolean" + }, + "requiredCoattachedLicenses": { + "description": "Specifies the set of permissible coattached licenseCodes of licenses that\nsatisfy the coattachment requirement of this license. At least one license\nfrom the set must be attached to the same disk or image as this license.", "items": { - "$ref": "NamedPort" + "type": "string" }, "type": "array" }, - "network": { - "description": "[Output Only] The URL of the network to which all instances in the instance group belong. If your instance has multiple network interfaces, then the network and subnetwork fields only refer to the network and subnet used by your primary interface (nic0).", - "type": "string" + "resourceRequirements": { + "$ref": "LicenseResourceRequirements", + "description": "[Input Only] Deprecated." }, - "region": { - "description": "[Output Only] The URL of the region where the instance group is located (for regional resources).", + "selfLink": { + "description": "Output only. [Output Only] Server-defined URL for the resource.", + "readOnly": true, "type": "string" }, - "selfLink": { - "description": "[Output Only] The URL for this instance group. The server generates this URL.", + "selfLinkWithId": { + "description": "Output only. [Output Only] Server-defined URL for this resource with the resource id.", + "readOnly": true, "type": "string" }, - "size": { - "description": "[Output Only] The total number of instances in the instance group.", - "format": "int32", - "type": "integer" + "soleTenantOnly": { + "description": "If true, this license can only be used on VMs on sole tenant nodes.", + "type": "boolean" }, - "subnetwork": { - "description": "[Output Only] The URL of the subnetwork to which all instances in the instance group belong. If your instance has multiple network interfaces, then the network and subnetwork fields only refer to the network and subnet used by your primary interface (nic0).", - "type": "string" + "transferable": { + "description": "If false, licenses will not be copied from the source resource when\ncreating an image from a disk, disk from snapshot, or snapshot from disk.", + "type": "boolean" }, - "zone": { - "description": "[Output Only] The URL of the zone where the instance group is located (for zonal resources).", + "updateTimestamp": { + "description": "Output only. [Output Only] Last update timestamp inRFC3339\ntext format.", + "readOnly": true, "type": "string" } }, "type": "object" }, - "InstanceGroupAggregatedList": { - "id": "InstanceGroupAggregatedList", + "LicenseCode": { + "description": "Represents a License Code resource.\n\nA License Code is a unique identifier used to represent alicense\nresource.\n *Caution* This resource is intended for\nuse only by third-party partners who are creatingCloud Marketplace\nimages.", + "id": "LicenseCode", "properties": { + "allowedReplacementLicenses": { + "description": "Specifies licenseCodes of licenses that can replace this license. Note:\nsuch replacements are allowed even if removable_from_disk is false.", + "items": { + "type": "string" + }, + "type": "array" + }, + "appendableToDisk": { + "description": "If true, this license can be appended to an existing disk's set of\nlicenses.", + "type": "boolean" + }, + "creationTimestamp": { + "description": "Output only. [Output Only] Creation timestamp inRFC3339\ntext format.", + "readOnly": true, + "type": "string" + }, + "description": { + "description": "Output only. [Output Only] Description of this License Code.", + "readOnly": true, + "type": "string" + }, "id": { - "description": "[Output Only] Unique identifier for the resource; defined by the server.", + "description": "Output only. [Output Only] The unique identifier for the resource. This identifier is\ndefined by the server.", + "format": "uint64", + "readOnly": true, "type": "string" }, - "items": { - "additionalProperties": { - "$ref": "InstanceGroupsScopedList", - "description": "The name of the scope that contains this set of instance groups." + "incompatibleLicenses": { + "description": "Specifies licenseCodes of licenses that are incompatible with this license.\nIf a license is incompatible with this license, it cannot be attached to\nthe same disk or image.", + "items": { + "type": "string" }, - "description": "A list of InstanceGroupsScopedList resources.", - "type": "object" + "type": "array" }, "kind": { - "default": "compute#instanceGroupAggregatedList", - "description": "[Output Only] The resource type, which is always compute#instanceGroupAggregatedList for aggregated lists of instance groups.", + "default": "compute#licenseCode", + "description": "Output only. [Output Only] Type of resource. Always compute#licenseCode for\nlicenses.", + "readOnly": true, "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" + "licenseAlias": { + "description": "[Output Only] URL and description aliases of Licenses with the same\nLicense Code.", + "items": { + "$ref": "LicenseCodeLicenseAlias" + }, + "type": "array" }, - "selfLink": { - "description": "[Output Only] Server-defined URL for this resource.", + "minimumRetention": { + "$ref": "Duration", + "description": "If set, this license will be unable to be removed or replaced once attached\nto a disk until the minimum_retention period has passed." + }, + "multiTenantOnly": { + "description": "If true, this license can only be used on VMs on multi tenant nodes.", + "type": "boolean" + }, + "name": { + "annotations": { + "required": [ + "compute.licenses.insert" + ] + }, + "description": "Output only. [Output Only] Name of the resource. The name is 1-20 characters long and\nmust be a valid 64 bit integer.", + "pattern": "[0-9]{0,20}?", + "readOnly": true, "type": "string" }, - "unreachables": { - "description": "[Output Only] Unreachable resources.", + "osLicense": { + "description": "If true, indicates this is an OS license. Only one OS license can be\nattached to a disk or image at a time.", + "type": "boolean" + }, + "removableFromDisk": { + "description": "If true, this license can be removed from a disk's set of licenses, with no\nreplacement license needed.", + "type": "boolean" + }, + "requiredCoattachedLicenses": { + "description": "Specifies the set of permissible coattached licenseCodes of licenses that\nsatisfy the coattachment requirement of this license. At least one license\nfrom the set must be attached to the same disk or image as this license.", "items": { "type": "string" }, "type": "array" }, - "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", - "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", - "LARGE_DEPLOYMENT_WARNING", - "LIST_OVERHEAD_QUOTA_EXCEED", - "MISSING_TYPE_DEPENDENCY", - "NEXT_HOP_ADDRESS_NOT_ASSIGNED", - "NEXT_HOP_CANNOT_IP_FORWARD", - "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", - "NEXT_HOP_INSTANCE_NOT_FOUND", - "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", - "NEXT_HOP_NOT_RUNNING", - "NOT_CRITICAL_ERROR", - "NO_RESULTS_ON_PAGE", - "PARTIAL_SUCCESS", - "REQUIRED_TOS_AGREEMENT", - "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", - "RESOURCE_NOT_DELETED", - "SCHEMA_VALIDATION_IGNORED", - "SINGLE_INSTANCE_PROPERTY_TEMPLATE", - "UNDECLARED_PROPERTIES", - "UNREACHABLE" - ], - "enumDeprecated": [ - false, - false, - false, - false, - false, - false, - true, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false - ], - "enumDescriptions": [ - "Warning about failed cleanup of transient changes made by a failed operation.", - "A link to a deprecated resource was created.", - "When deploying and at least one of the resources has a type marked as deprecated", - "The user created a boot disk that is larger than image size.", - "When deploying and at least one of the resources has a type marked as experimental", - "Warning that is present in an external api call", - "Warning that value of a field has been overridden. Deprecated unused field.", - "The operation involved use of an injected kernel, which is deprecated.", - "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", - "When deploying a deployment with a exceedingly large number of resources", - "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", - "A resource depends on a missing type", - "The route's nextHopIp address is not assigned to an instance on the network.", - "The route's next hop instance cannot ip forward.", - "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", - "The route's nextHopInstance URL refers to an instance that does not exist.", - "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", - "The route's next hop instance does not have a status of RUNNING.", - "Error which is not critical. We decided to continue the process despite the mentioned error.", - "No results are present on a particular list page.", - "Success is reported, but some results may be missing due to errors", - "The user attempted to use a resource that requires a TOS they have not accepted.", - "Warning that a resource is in use.", - "One or more of the resources set to auto-delete could not be deleted because they were in use.", - "When a resource schema validation is ignored.", - "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", - "When undeclared properties in the schema are present", - "A given scope cannot be reached." - ], - "type": "string" - }, - "data": { - "description": "[Output Only] Metadata about this warning in key: value format. For example: \"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" - } + "selfLink": { + "description": "Output only. [Output Only] Server-defined URL for the resource.", + "readOnly": true, + "type": "string" + }, + "soleTenantOnly": { + "description": "If true, this license can only be used on VMs on sole tenant nodes.", + "type": "boolean" + }, + "state": { + "description": "Output only. [Output Only] Current state of this License Code.", + "enum": [ + "DISABLED", + "ENABLED", + "RESTRICTED", + "STATE_UNSPECIFIED", + "TERMINATED" + ], + "enumDescriptions": [ + "Machines are not allowed to attach boot disks with this License Code.\nRequests to create new resources with this license will be rejected.", + "Use is allowed for anyone with USE_READ_ONLY access to this License Code.", + "Use of this license is limited to a project whitelist.", + "", + "Reserved state." + ], + "readOnly": true, + "type": "string" + }, + "transferable": { + "description": "Output only. [Output Only] If true, the license will remain attached when creating\nimages or snapshots from disks. Otherwise, the license is not transferred.", + "readOnly": true, + "type": "boolean" + }, + "updateTimestamp": { + "description": "Output only. [Output Only] Last update timestamp inRFC3339\ntext format.", + "readOnly": true, + "type": "string" + } + }, + "type": "object" + }, + "LicenseCodeLicenseAlias": { + "id": "LicenseCodeLicenseAlias", + "properties": { + "description": { + "description": "Output only. [Output Only] Description of this License Code.", + "readOnly": true, + "type": "string" + }, + "selfLink": { + "description": "Output only. [Output Only] URL of license corresponding to this License Code.", + "readOnly": true, + "type": "string" + } + }, + "type": "object" + }, + "LicenseParams": { + "description": "Additional license params.", + "id": "LicenseParams", + "properties": { + "resourceManagerTags": { + "additionalProperties": { + "type": "string" }, + "description": "Input only. Resource manager tags to be bound to the license. Tag keys and values\nhave the same definition as resource\nmanager tags. Keys and values can be either in numeric format,\nsuch as `tagKeys/{tag_key_id}` and `tagValues/{tag_value_id}` or in\nnamespaced format such as `{org_id|project_id}/{tag_key_short_name}` and\n`{tag_value_short_name}`. The field is ignored (both PUT \u0026\nPATCH) when empty.", "type": "object" } }, "type": "object" }, - "InstanceGroupList": { - "description": "A list of InstanceGroup resources.", - "id": "InstanceGroupList", + "LicenseResourceCommitment": { + "description": "Commitment for a particular license resource.", + "id": "LicenseResourceCommitment", + "properties": { + "amount": { + "description": "The number of licenses you plan to purchase.", + "format": "int64", + "type": "string" + }, + "coresPerLicense": { + "description": "The number of cores per license.", + "type": "string" + }, + "license": { + "description": "The applicable license URI.", + "type": "string" + } + }, + "type": "object" + }, + "LicenseResourceRequirements": { + "id": "LicenseResourceRequirements", + "properties": { + "minGuestCpuCount": { + "description": "[Input Only] Deprecated. This field no longer reflects the minimum number\nof guest cpus required to use the Instance.", + "format": "int32", + "type": "integer" + }, + "minMemoryMb": { + "description": "[Input Only] Deprecated. This field no longer reflects the minimum memory\nrequired to use the Instance.", + "format": "int32", + "type": "integer" + } + }, + "type": "object" + }, + "LicensesListResponse": { + "id": "LicensesListResponse", "properties": { "id": { "description": "[Output Only] Unique identifier for the resource; defined by the server.", "type": "string" }, "items": { - "description": "A list of InstanceGroup resources.", + "description": "A list of License resources.", "items": { - "$ref": "InstanceGroup" + "$ref": "License" }, "type": "array" }, - "kind": { - "default": "compute#instanceGroupList", - "description": "[Output Only] The resource type, which is always compute#instanceGroupList for instance group lists.", - "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.", + "description": "[Output Only] This token allows you to get the next page of results for\nlist requests. If the number of results is larger thanmaxResults, use the nextPageToken as a value for\nthe query parameter pageToken in the next list request.\nSubsequent list requests will have their own nextPageToken to\ncontinue paging through the results.", "type": "string" }, "selfLink": { - "description": "[Output Only] Server-defined URL for this resource.", + "description": "Output only. [Output Only] Server-defined URL for this resource.", + "readOnly": true, "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.", + "description": "[Output Only] A warning code, if applicable. For example, Compute\nEngine returns NO_RESULTS_ON_PAGE if there\nare no results in the response.", "enum": [ "CLEANUP_FAILED", "DEPRECATED_RESOURCE_USED", @@ -49862,6 +76205,7 @@ "NOT_CRITICAL_ERROR", "NO_RESULTS_ON_PAGE", "PARTIAL_SUCCESS", + "QUOTA_INFO_UNAVAILABLE", "REQUIRED_TOS_AGREEMENT", "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", "RESOURCE_NOT_DELETED", @@ -49898,323 +76242,115 @@ false, false, false, + false, false ], "enumDescriptions": [ - "Warning about failed cleanup of transient changes made by a failed operation.", + "Warning about failed cleanup of transient changes made by a failed\noperation.", "A link to a deprecated resource was created.", - "When deploying and at least one of the resources has a type marked as deprecated", + "When deploying and at least one of the resources has a type marked as\ndeprecated", "The user created a boot disk that is larger than image size.", - "When deploying and at least one of the resources has a type marked as experimental", + "When deploying and at least one of the resources has a type marked as\nexperimental", "Warning that is present in an external api call", - "Warning that value of a field has been overridden. Deprecated unused field.", + "Warning that value of a field has been overridden.\nDeprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", - "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is\nnot of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", - "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", + "Resource can't be retrieved due to list overhead quota exceed\nwhich captures the amount of resources filtered out by\nuser-defined list filter.", "A resource depends on a missing type", - "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's nextHopIp address is not assigned to an instance on the\nnetwork.", "The route's next hop instance cannot ip forward.", - "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not have an\nipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", - "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that is not on the\nsame network as the route.", "The route's next hop instance does not have a status of RUNNING.", - "Error which is not critical. We decided to continue the process despite the mentioned error.", + "Error which is not critical. We decided to continue the process despite\nthe mentioned error.", "No results are present on a particular list page.", "Success is reported, but some results may be missing due to errors", - "The user attempted to use a resource that requires a TOS they have not accepted.", + "Quota information is not available to client requests (e.g:\nregions.list).", + "The user attempted to use a resource that requires a TOS they have not\naccepted.", "Warning that a resource is in use.", - "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "One or more of the resources set to auto-delete could not be deleted\nbecause they were in use.", "When a resource schema validation is ignored.", - "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", + "Instance template used in instance group manager is valid as such, but\nits application does not make a lot of sense, because it allows only\nsingle instance in instance group.", "When undeclared properties in the schema are present", "A given scope cannot be reached." ], "type": "string" }, "data": { - "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", + "description": "[Output Only] Metadata about this warning in key:\nvalue format. For example:\n\n\"data\": [\n {\n \"key\": \"scope\",\n \"value\": \"zones/us-east1-d\"\n }", "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" - }, - "InstanceGroupManager": { - "description": "Represents a Managed Instance Group resource. An instance group is a collection of VM instances that you can manage as a single entity. For more information, read Instance groups. For zonal Managed Instance Group, use the instanceGroupManagers resource. For regional Managed Instance Group, use the regionInstanceGroupManagers resource.", - "id": "InstanceGroupManager", - "properties": { - "allInstancesConfig": { - "$ref": "InstanceGroupManagerAllInstancesConfig", - "description": "Specifies configuration that overrides the instance template configuration for the group." - }, - "autoHealingPolicies": { - "description": "The autohealing policy for this managed instance group. You can specify only one value.", - "items": { - "$ref": "InstanceGroupManagerAutoHealingPolicy" - }, - "type": "array" - }, - "baseInstanceName": { - "description": "The base instance name to use for instances in this group. The value must be 1-58 characters long. Instances are named by appending a hyphen and a random four-character string to the base instance name. The base instance name must comply with RFC1035.", - "pattern": "[a-z][-a-z0-9]{0,57}", - "type": "string" - }, - "creationTimestamp": { - "description": "[Output Only] The creation timestamp for this managed instance group in RFC3339 text format.", - "type": "string" - }, - "currentActions": { - "$ref": "InstanceGroupManagerActionsSummary", - "description": "[Output Only] The list of instance actions and the number of instances in this managed instance group that are scheduled for each of those actions." - }, - "description": { - "description": "An optional description of this resource.", - "type": "string" - }, - "distributionPolicy": { - "$ref": "DistributionPolicy", - "description": "Policy specifying the intended distribution of managed instances across zones in a regional managed instance group." - }, - "fingerprint": { - "description": "Fingerprint of this resource. This field may be used in optimistic locking. It will be ignored when inserting an InstanceGroupManager. An up-to-date fingerprint must be provided in order to update the InstanceGroupManager, otherwise the request will fail with error 412 conditionNotMet. To see the latest fingerprint, make a get() request to retrieve an InstanceGroupManager.", - "format": "byte", - "type": "string" - }, - "id": { - "description": "[Output Only] A unique identifier for this resource type. The server generates this identifier.", - "format": "uint64", - "type": "string" - }, - "instanceGroup": { - "description": "[Output Only] The URL of the Instance Group resource.", - "type": "string" - }, - "instanceLifecyclePolicy": { - "$ref": "InstanceGroupManagerInstanceLifecyclePolicy", - "description": "The repair policy for this managed instance group." - }, - "instanceTemplate": { - "description": "The URL of the instance template that is specified for this managed instance group. The group uses this template to create all new instances in the managed instance group. The templates for existing instances in the group do not change unless you run recreateInstances, run applyUpdatesToInstances, or set the group's updatePolicy.type to PROACTIVE.", - "type": "string" - }, - "kind": { - "default": "compute#instanceGroupManager", - "description": "[Output Only] The resource type, which is always compute#instanceGroupManager for managed instance groups.", - "type": "string" - }, - "listManagedInstancesResults": { - "description": "Pagination behavior of the listManagedInstances API method for this managed instance group.", - "enum": [ - "PAGELESS", - "PAGINATED" - ], - "enumDescriptions": [ - "(Default) Pagination is disabled for the group's listManagedInstances API method. maxResults and pageToken query parameters are ignored and all instances are returned in a single response.", - "Pagination is enabled for the group's listManagedInstances API method. maxResults and pageToken query parameters are respected." - ], - "type": "string" - }, - "name": { - "annotations": { - "required": [ - "compute.instanceGroupManagers.insert", - "compute.regionInstanceGroupManagers.insert" - ] - }, - "description": "The name of the managed instance group. The name must be 1-63 characters long, and comply with RFC1035.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "type": "string" - }, - "namedPorts": { - "description": "Named ports configured for the Instance Groups complementary to this Instance Group Manager.", - "items": { - "$ref": "NamedPort" - }, - "type": "array" - }, - "region": { - "description": "[Output Only] The URL of the region where the managed instance group resides (for regional resources).", - "type": "string" - }, - "selfLink": { - "description": "[Output Only] The URL for this managed instance group. The server defines this URL.", - "type": "string" - }, - "statefulPolicy": { - "$ref": "StatefulPolicy", - "description": "Stateful configuration for this Instanced Group Manager" - }, - "status": { - "$ref": "InstanceGroupManagerStatus", - "description": "[Output Only] The status of this managed instance group." - }, - "targetPools": { - "description": "The URLs for all TargetPool resources to which instances in the instanceGroup field are added. The target pools automatically apply to all of the instances in the managed instance group.", - "items": { - "type": "string" - }, - "type": "array" - }, - "targetSize": { - "annotations": { - "required": [ - "compute.instanceGroupManagers.insert", - "compute.regionInstanceGroupManagers.insert" - ] - }, - "description": "The target number of running instances for this managed instance group. You can reduce this number by using the instanceGroupManager deleteInstances or abandonInstances methods. Resizing the group also changes this number.", - "format": "int32", - "type": "integer" - }, - "updatePolicy": { - "$ref": "InstanceGroupManagerUpdatePolicy", - "description": "The update policy for this managed instance group." - }, - "versions": { - "description": "Specifies the instance templates used by this managed instance group to create instances. Each version is defined by an instanceTemplate and a name. Every version can appear at most once per instance group. This field overrides the top-level instanceTemplate field. Read more about the relationships between these fields. Exactly one version must leave the targetSize field unset. That version will be applied to all remaining instances. For more information, read about canary updates.", - "items": { - "$ref": "InstanceGroupManagerVersion" + "description": "[Output Only] A key that provides more detail on the warning being\nreturned. For example, for warnings where there are no results in a list\nrequest for a particular zone, this key might be scope and\nthe key value might be the zone name. Other examples might be a key\nindicating a deprecated resource and a suggested replacement, or a\nwarning about invalid network settings (for example, if an instance\nattempts 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": "array" - }, - "zone": { - "description": "[Output Only] The URL of a zone where the managed instance group is located (for zonal resources).", - "type": "string" + "type": "object" } }, "type": "object" }, - "InstanceGroupManagerActionsSummary": { - "id": "InstanceGroupManagerActionsSummary", + "ListInstantSnapshotGroups": { + "description": "Contains a list of InstantSnapshotGroup resources.", + "id": "ListInstantSnapshotGroups", "properties": { - "abandoning": { - "description": "[Output Only] The total number of instances in the managed instance group that are scheduled to be abandoned. Abandoning an instance removes it from the managed instance group without deleting it.", - "format": "int32", - "type": "integer" - }, - "creating": { - "description": "[Output Only] The number of instances in the managed instance group that are scheduled to be created or are currently being created. If the group fails to create any of these instances, it tries again until it creates the instance successfully. If you have disabled creation retries, this field will not be populated; instead, the creatingWithoutRetries field will be populated.", - "format": "int32", - "type": "integer" - }, - "creatingWithoutRetries": { - "description": "[Output Only] The number of instances that the managed instance group will attempt to create. The group attempts to create each instance only once. If the group fails to create any of these instances, it decreases the group's targetSize value accordingly.", - "format": "int32", - "type": "integer" - }, - "deleting": { - "description": "[Output Only] The number of instances in the managed instance group that are scheduled to be deleted or are currently being deleted.", - "format": "int32", - "type": "integer" - }, - "none": { - "description": "[Output Only] The number of instances in the managed instance group that are running and have no scheduled actions.", - "format": "int32", - "type": "integer" - }, - "recreating": { - "description": "[Output Only] The number of instances in the managed instance group that are scheduled to be recreated or are currently being being recreated. Recreating an instance deletes the existing root persistent disk and creates a new disk from the image that is defined in the instance template.", - "format": "int32", - "type": "integer" - }, - "refreshing": { - "description": "[Output Only] The number of instances in the managed instance group that are being reconfigured with properties that do not require a restart or a recreate action. For example, setting or removing target pools for the instance.", - "format": "int32", - "type": "integer" - }, - "restarting": { - "description": "[Output Only] The number of instances in the managed instance group that are scheduled to be restarted or are currently being restarted.", - "format": "int32", - "type": "integer" - }, - "resuming": { - "description": "[Output Only] The number of instances in the managed instance group that are scheduled to be resumed or are currently being resumed.", - "format": "int32", - "type": "integer" - }, - "starting": { - "description": "[Output Only] The number of instances in the managed instance group that are scheduled to be started or are currently being started.", - "format": "int32", - "type": "integer" - }, - "stopping": { - "description": "[Output Only] The number of instances in the managed instance group that are scheduled to be stopped or are currently being stopped.", - "format": "int32", - "type": "integer" - }, - "suspending": { - "description": "[Output Only] The number of instances in the managed instance group that are scheduled to be suspended or are currently being suspended.", - "format": "int32", - "type": "integer" + "etag": { + "type": "string" }, - "verifying": { - "description": "[Output Only] The number of instances in the managed instance group that are being verified. See the managedInstances[].currentAction property in the listManagedInstances method documentation.", - "format": "int32", - "type": "integer" - } - }, - "type": "object" - }, - "InstanceGroupManagerAggregatedList": { - "id": "InstanceGroupManagerAggregatedList", - "properties": { "id": { "description": "[Output Only] Unique identifier for the resource; defined by the server.", "type": "string" }, "items": { - "additionalProperties": { - "$ref": "InstanceGroupManagersScopedList", - "description": "[Output Only] The name of the scope that contains this set of managed instance groups." + "description": "A list of InstantSnapshotGroup resources.", + "items": { + "$ref": "InstantSnapshotGroup" }, - "description": "A list of InstanceGroupManagersScopedList resources.", - "type": "object" + "type": "array" }, "kind": { - "default": "compute#instanceGroupManagerAggregatedList", - "description": "[Output Only] The resource type, which is always compute#instanceGroupManagerAggregatedList for an aggregated list of managed instance groups.", + "default": "compute#instantSnapshotGroupsList", + "description": "Output only. Type of resource.", + "readOnly": true, "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.", + "description": "[Output Only] This token allows you to get the next page of results for\nlist requests. If the number of results is larger thanmaxResults, use the nextPageToken as a value for\nthe query parameter pageToken in the next list request.\nSubsequent list requests will have their own nextPageToken to\ncontinue paging through the results.", "type": "string" }, "selfLink": { - "description": "[Output Only] Server-defined URL for this resource.", + "description": "Output only. [Output Only] Server-defined URL for this resource.", + "readOnly": true, "type": "string" }, "unreachables": { - "description": "[Output Only] Unreachable resources.", + "description": "Output only. [Output Only] Unreachable resources.\nend_interface: MixerListResponseWithEtagBuilder", "items": { "type": "string" }, + "readOnly": true, "type": "array" }, "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.", + "description": "[Output Only] A warning code, if applicable. For example, Compute\nEngine returns NO_RESULTS_ON_PAGE if there\nare no results in the response.", "enum": [ "CLEANUP_FAILED", "DEPRECATED_RESOURCE_USED", @@ -50237,6 +76373,7 @@ "NOT_CRITICAL_ERROR", "NO_RESULTS_ON_PAGE", "PARTIAL_SUCCESS", + "QUOTA_INFO_UNAVAILABLE", "REQUIRED_TOS_AGREEMENT", "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", "RESOURCE_NOT_DELETED", @@ -50273,46 +76410,48 @@ false, false, false, + false, false ], "enumDescriptions": [ - "Warning about failed cleanup of transient changes made by a failed operation.", + "Warning about failed cleanup of transient changes made by a failed\noperation.", "A link to a deprecated resource was created.", - "When deploying and at least one of the resources has a type marked as deprecated", + "When deploying and at least one of the resources has a type marked as\ndeprecated", "The user created a boot disk that is larger than image size.", - "When deploying and at least one of the resources has a type marked as experimental", + "When deploying and at least one of the resources has a type marked as\nexperimental", "Warning that is present in an external api call", - "Warning that value of a field has been overridden. Deprecated unused field.", + "Warning that value of a field has been overridden.\nDeprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", - "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is\nnot of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", - "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", + "Resource can't be retrieved due to list overhead quota exceed\nwhich captures the amount of resources filtered out by\nuser-defined list filter.", "A resource depends on a missing type", - "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's nextHopIp address is not assigned to an instance on the\nnetwork.", "The route's next hop instance cannot ip forward.", - "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not have an\nipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", - "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that is not on the\nsame network as the route.", "The route's next hop instance does not have a status of RUNNING.", - "Error which is not critical. We decided to continue the process despite the mentioned error.", + "Error which is not critical. We decided to continue the process despite\nthe mentioned error.", "No results are present on a particular list page.", "Success is reported, but some results may be missing due to errors", - "The user attempted to use a resource that requires a TOS they have not accepted.", + "Quota information is not available to client requests (e.g:\nregions.list).", + "The user attempted to use a resource that requires a TOS they have not\naccepted.", "Warning that a resource is in use.", - "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "One or more of the resources set to auto-delete could not be deleted\nbecause they were in use.", "When a resource schema validation is ignored.", - "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", + "Instance template used in instance group manager is valid as such, but\nits application does not make a lot of sense, because it allows only\nsingle instance in instance group.", "When undeclared properties in the schema are present", "A given scope cannot be reached." ], "type": "string" }, "data": { - "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", + "description": "[Output Only] Metadata about this warning in key:\nvalue format. For example:\n\n\"data\": [\n {\n \"key\": \"scope\",\n \"value\": \"zones/us-east1-d\"\n }", "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).", + "description": "[Output Only] A key that provides more detail on the warning being\nreturned. For example, for warnings where there are no results in a list\nrequest for a particular zone, this key might be scope and\nthe key value might be the zone name. Other examples might be a key\nindicating a deprecated resource and a suggested replacement, or a\nwarning about invalid network settings (for example, if an instance\nattempts to perform IP forwarding but is not enabled for IP forwarding).", "type": "string" }, "value": { @@ -50334,94 +76473,294 @@ }, "type": "object" }, - "InstanceGroupManagerAllInstancesConfig": { - "id": "InstanceGroupManagerAllInstancesConfig", + "LocalDisk": { + "id": "LocalDisk", "properties": { - "properties": { - "$ref": "InstancePropertiesPatch", - "description": "Properties to set on all instances in the group. You can add or modify properties using the instanceGroupManagers.patch or regionInstanceGroupManagers.patch. After setting allInstancesConfig on the group, you must update the group's instances to apply the configuration. To apply the configuration, set the group's updatePolicy.type field to use proactive updates or use the applyUpdatesToInstances method." + "diskCount": { + "description": "Specifies the number of such disks.", + "format": "int32", + "type": "integer" + }, + "diskSizeGb": { + "description": "Specifies the size of the disk in base-2 GB.", + "format": "int32", + "type": "integer" + }, + "diskType": { + "description": "Specifies the desired disk type on the node. This disk type must be a\nlocal storage type (e.g.: local-ssd).\nNote that for nodeTemplates, this should be the name of the disk type and\nnot its URL.", + "type": "string" } }, "type": "object" }, - "InstanceGroupManagerAutoHealingPolicy": { - "id": "InstanceGroupManagerAutoHealingPolicy", + "LocalizedMessage": { + "description": "Provides a localized error message that is safe to return to the user\nwhich can be attached to an RPC error.", + "id": "LocalizedMessage", "properties": { - "healthCheck": { - "description": "The URL for the health check that signals autohealing.", + "locale": { + "description": "The locale used following the specification defined at\nhttps://www.rfc-editor.org/rfc/bcp/bcp47.txt.\nExamples are: \"en-US\", \"fr-CH\", \"es-MX\"", "type": "string" }, - "initialDelaySec": { - "description": "The initial delay is the number of seconds that a new VM takes to initialize and run its startup script. During a VM's initial delay period, the MIG ignores unsuccessful health checks because the VM might be in the startup process. This prevents the MIG from prematurely recreating a VM. If the health check receives a healthy response during the initial delay, it indicates that the startup process is complete and the VM is ready. The value of initial delay must be between 0 and 3600 seconds. The default value is 0.", - "format": "int32", - "type": "integer" + "message": { + "description": "The localized error message in the above locale.", + "type": "string" } }, "type": "object" }, - "InstanceGroupManagerInstanceLifecyclePolicy": { - "id": "InstanceGroupManagerInstanceLifecyclePolicy", + "LocationPolicy": { + "description": "Configuration for location policy among multiple possible locations\n(e.g. preferences for zone selection among zones in a single region).", + "id": "LocationPolicy", "properties": { - "defaultActionOnFailure": { - "description": "The action that a MIG performs on a failed or an unhealthy VM. A VM is marked as unhealthy when the application running on that VM fails a health check. Valid values are - REPAIR (default): MIG automatically repairs a failed or an unhealthy VM by recreating it. For more information, see About repairing VMs in a MIG. - DO_NOTHING: MIG does not repair a failed or an unhealthy VM. ", + "locations": { + "additionalProperties": { + "$ref": "LocationPolicyLocation" + }, + "description": "Location configurations mapped by location name.\nCurrently only zone names are supported and must be represented as valid\ninternal URLs, such as zones/us-central1-a.\nThe bulkInsert operation doesn't create instances in an AI zone, even if\nan AI zone is available in the specified region. For example, if you set a\nDENY preference for us-central1-a, Compute Engine will consider\nus-central1-b and us-central1-c for instance creation, but not\nus-central1-ai1a. Also, you can't use the locations[] configuration to\nallow instance creation in an AI zone. To include an AI zone in bulkInsert\noperations, use the locationPolicy.zones[] field.", + "type": "object" + }, + "targetShape": { + "description": "Strategy for distributing VMs across zones in a region.", "enum": [ - "DO_NOTHING", - "REPAIR" + "ANY", + "ANY_SINGLE_ZONE", + "BALANCED" ], "enumDescriptions": [ - "MIG does not repair a failed or an unhealthy VM.", - "(Default) MIG automatically repairs a failed or an unhealthy VM by recreating it. For more information, see About repairing VMs in a MIG." + "GCE picks zones for creating VM instances to fulfill the requested\nnumber of VMs within present resource constraints and to maximize\nutilization of unused zonal reservations. Recommended for batch workloads\nthat do not require high availability.", + "GCE always selects a single zone for all the VMs, optimizing for resource\nquotas, available reservations and general capacity. Recommended for\nbatch workloads that cannot tollerate distribution over multiple zones.\nThis the default shape in Bulk Insert and Capacity Advisor APIs.", + "GCE prioritizes acquisition of resources, scheduling VMs in zones\nwhere resources are available while distributing VMs as evenly as\npossible across allowed zones to minimize the impact of zonal failure.\nRecommended for highly available serving workloads." ], "type": "string" }, - "forceUpdateOnRepair": { - "description": "A bit indicating whether to forcefully apply the group's latest configuration when repairing a VM. Valid options are: - NO (default): If configuration updates are available, they are not forcefully applied during repair. Instead, configuration updates are applied according to the group's update policy. - YES: If configuration updates are available, they are applied during repair. ", + "zones": { + "description": "The bulkInsert operation applies any preferences set in the locations\nfield to the specific zones listed in the zones field if the same zones\nare specified in both fields.", + "items": { + "$ref": "LocationPolicyZoneConfiguration" + }, + "type": "array" + } + }, + "type": "object" + }, + "LocationPolicyLocation": { + "id": "LocationPolicyLocation", + "properties": { + "constraints": { + "$ref": "LocationPolicyLocationConstraints", + "description": "Constraints that the caller requires on the result distribution\nin this zone." + }, + "preference": { + "description": "Preference for a given location. Set to either ALLOW orDENY.", "enum": [ - "NO", - "YES" + "ALLOW", + "DENY", + "PREFERENCE_UNSPECIFIED" + ], + "enumDescriptions": [ + "Location is allowed for use.", + "Location is prohibited.", + "Default value, unused." + ], + "type": "string" + } + }, + "type": "object" + }, + "LocationPolicyLocationConstraints": { + "description": "Per-zone constraints on location policy for this zone.", + "id": "LocationPolicyLocationConstraints", + "properties": { + "maxCount": { + "description": "Maximum number of items that are allowed to be placed in this zone.\nThe value must be non-negative.", + "format": "int32", + "type": "integer" + } + }, + "type": "object" + }, + "LocationPolicyZoneConfiguration": { + "id": "LocationPolicyZoneConfiguration", + "properties": { + "zone": { + "description": "The URL of the zone.\nThe zone must exist in the region where the request is called.\nZones must be represented as valid partial URLs,\nsuch as zones/us-central1-a.", + "type": "string" + } + }, + "type": "object" + }, + "MachineImage": { + "description": "Represents a machine image resource.\n\nA machine image is a Compute Engine resource that stores all the\nconfiguration, metadata, permissions, and data from one or more disks\nrequired to create a Virtual machine (VM) instance. For more information, seeMachine images.", + "id": "MachineImage", + "properties": { + "creationTimestamp": { + "description": "Output only. [Output Only] The creation timestamp for this machine image inRFC3339\ntext format.", + "readOnly": true, + "type": "string" + }, + "description": { + "description": "An optional description of this resource. Provide this property when you\ncreate the resource.", + "type": "string" + }, + "guestFlush": { + "description": "[Input Only] Whether to attempt an application consistent machine image by\ninforming the OS to prepare for the snapshot process.", + "type": "boolean" + }, + "id": { + "description": "Output only. [Output Only] A unique identifier for this machine image. The server\ndefines this identifier.", + "format": "uint64", + "readOnly": true, + "type": "string" + }, + "instanceProperties": { + "$ref": "InstanceProperties", + "description": "[Output Only] Properties of source instance" + }, + "kind": { + "default": "compute#machineImage", + "description": "Output only. [Output Only] The resource type, which is alwayscompute#machineImage for machine image.", + "readOnly": true, + "type": "string" + }, + "labelFingerprint": { + "description": "A fingerprint for the labels being applied to this machine image, which is\nessentially a hash of the labels set used for optimistic locking. The\nfingerprint is initially generated by Compute Engine and changes after\nevery request to modify or update labels. You must always provide an\nup-to-date fingerprint hash in order to update or change labels.\n\nTo see the latest fingerprint, make get() request to the\nmachine image.", + "format": "byte", + "type": "string" + }, + "labels": { + "additionalProperties": { + "type": "string" + }, + "description": "Labels to apply to this machine image. These can be later modified by\nthe setLabels method.", + "type": "object" + }, + "machineImageEncryptionKey": { + "$ref": "CustomerEncryptionKey", + "description": "Encrypts the machine image using acustomer-supplied\nencryption key.\n\nAfter you encrypt a machine image using a customer-supplied key, you must\nprovide the same key if you use the machine image later. For example, you\nmust provide the encryption key when you create an instance from the\nencrypted machine image in a future request.\n\nCustomer-supplied encryption keys do not protect access to metadata of the\nmachine image.\n\nIf you do not provide an encryption key when creating the machine image,\nthen the machine image will be encrypted using an automatically generated\nkey and you do not need to provide a key to use the machine image later." + }, + "name": { + "annotations": { + "required": [ + "compute.machineImages.insert" + ] + }, + "description": "Name of the resource; provided by the client when the resource is created.\nThe name must be 1-63 characters long, and comply withRFC1035.\nSpecifically, the name must be 1-63 characters long and match the regular\nexpression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first\ncharacter must be a lowercase letter, and all following characters must be\na dash, lowercase letter, or digit, except the last character, which cannot\nbe a dash.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "type": "string" + }, + "params": { + "$ref": "MachineImageParams", + "description": "Input only. [Input Only] Additional parameters that are passed in the request, but are\nnot persisted in the resource." + }, + "satisfiesPzi": { + "description": "Output only. Reserved for future use.", + "readOnly": true, + "type": "boolean" + }, + "satisfiesPzs": { + "description": "Output only. [Output Only] Reserved for future use.", + "readOnly": true, + "type": "boolean" + }, + "savedDisks": { + "description": "Output only. An array of Machine Image specific properties for disks attached to the\nsource instance", + "items": { + "$ref": "SavedDisk" + }, + "readOnly": true, + "type": "array" + }, + "selfLink": { + "description": "Output only. [Output Only] The URL for this machine image. The server defines this URL.", + "readOnly": true, + "type": "string" + }, + "sourceDiskEncryptionKeys": { + "description": "[Input Only] Thecustomer-supplied\nencryption key of the disks attached to the source instance. Required\nif the source disk is protected by a customer-supplied encryption key.", + "items": { + "$ref": "SourceDiskEncryptionKey" + }, + "type": "array" + }, + "sourceInstance": { + "description": "The source instance used to create the machine image. You can provide this\nas a partial or full URL to the resource. For example, the following are\nvalid values: \n \n \n - https://www.googleapis.com/compute/v1/projects/project/zones/zone/instances/instance \n - projects/project/zones/zone/instances/instance", + "type": "string" + }, + "sourceInstanceProperties": { + "$ref": "SourceInstanceProperties", + "description": "Output only. [Output Only] DEPRECATED: Please use instance_properties\ninstead for source instance related properties. New properties will not be\nadded to this field.", + "readOnly": true + }, + "status": { + "description": "Output only. [Output Only] The status of the machine image. One of the following values:INVALID, CREATING, READY,DELETING, and UPLOADING.", + "enum": [ + "CREATING", + "DELETING", + "INVALID", + "READY", + "UPLOADING" ], "enumDescriptions": [ + "", + "", + "", "", "" ], + "readOnly": true, + "type": "string" + }, + "storageLocations": { + "description": "The regional or multi-regional Cloud Storage bucket location where themachine image is\nstored.", + "items": { + "type": "string" + }, + "type": "array" + }, + "totalStorageBytes": { + "description": "Output only. [Output Only] Total size of the storage used by the machine image.", + "format": "int64", + "readOnly": true, "type": "string" } }, "type": "object" }, - "InstanceGroupManagerList": { - "description": "[Output Only] A list of managed instance groups.", - "id": "InstanceGroupManagerList", + "MachineImageList": { + "description": "A list of machine images.", + "id": "MachineImageList", "properties": { "id": { "description": "[Output Only] Unique identifier for the resource; defined by the server.", "type": "string" }, "items": { - "description": "A list of InstanceGroupManager resources.", + "description": "A list of MachineImage resources.", "items": { - "$ref": "InstanceGroupManager" + "$ref": "MachineImage" }, "type": "array" }, "kind": { - "default": "compute#instanceGroupManagerList", - "description": "[Output Only] The resource type, which is always compute#instanceGroupManagerList for a list of managed instance groups.", + "default": "compute#machineImageList", + "description": "Output only. [Output Only] The resource type, which is alwayscompute#machineImagesListResponse for machine image lists.", + "readOnly": true, "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.", + "description": "[Output Only] This token allows you to get the next page of results for\nlist requests. If the number of results is larger thanmaxResults, use the nextPageToken as a value for\nthe query parameter pageToken in the next list request.\nSubsequent list requests will have their own nextPageToken to\ncontinue paging through the results.", "type": "string" }, "selfLink": { - "description": "[Output Only] Server-defined URL for this resource.", + "description": "Output only. [Output Only] Server-defined URL for this resource.", + "readOnly": true, "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.", + "description": "[Output Only] A warning code, if applicable. For example, Compute\nEngine returns NO_RESULTS_ON_PAGE if there\nare no results in the response.", "enum": [ "CLEANUP_FAILED", "DEPRECATED_RESOURCE_USED", @@ -50444,6 +76783,7 @@ "NOT_CRITICAL_ERROR", "NO_RESULTS_ON_PAGE", "PARTIAL_SUCCESS", + "QUOTA_INFO_UNAVAILABLE", "REQUIRED_TOS_AGREEMENT", "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", "RESOURCE_NOT_DELETED", @@ -50480,46 +76820,48 @@ false, false, false, + false, false ], "enumDescriptions": [ - "Warning about failed cleanup of transient changes made by a failed operation.", + "Warning about failed cleanup of transient changes made by a failed\noperation.", "A link to a deprecated resource was created.", - "When deploying and at least one of the resources has a type marked as deprecated", + "When deploying and at least one of the resources has a type marked as\ndeprecated", "The user created a boot disk that is larger than image size.", - "When deploying and at least one of the resources has a type marked as experimental", + "When deploying and at least one of the resources has a type marked as\nexperimental", "Warning that is present in an external api call", - "Warning that value of a field has been overridden. Deprecated unused field.", + "Warning that value of a field has been overridden.\nDeprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", - "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is\nnot of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", - "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", + "Resource can't be retrieved due to list overhead quota exceed\nwhich captures the amount of resources filtered out by\nuser-defined list filter.", "A resource depends on a missing type", - "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's nextHopIp address is not assigned to an instance on the\nnetwork.", "The route's next hop instance cannot ip forward.", - "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not have an\nipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", - "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that is not on the\nsame network as the route.", "The route's next hop instance does not have a status of RUNNING.", - "Error which is not critical. We decided to continue the process despite the mentioned error.", + "Error which is not critical. We decided to continue the process despite\nthe mentioned error.", "No results are present on a particular list page.", "Success is reported, but some results may be missing due to errors", - "The user attempted to use a resource that requires a TOS they have not accepted.", + "Quota information is not available to client requests (e.g:\nregions.list).", + "The user attempted to use a resource that requires a TOS they have not\naccepted.", "Warning that a resource is in use.", - "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "One or more of the resources set to auto-delete could not be deleted\nbecause they were in use.", "When a resource schema validation is ignored.", - "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", + "Instance template used in instance group manager is valid as such, but\nits application does not make a lot of sense, because it allows only\nsingle instance in instance group.", "When undeclared properties in the schema are present", "A given scope cannot be reached." ], "type": "string" }, "data": { - "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", + "description": "[Output Only] Metadata about this warning in key:\nvalue format. For example:\n\n\"data\": [\n {\n \"key\": \"scope\",\n \"value\": \"zones/us-east1-d\"\n }", "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).", + "description": "[Output Only] A key that provides more detail on the warning being\nreturned. For example, for warnings where there are no results in a list\nrequest for a particular zone, this key might be scope and\nthe key value might be the zone name. Other examples might be a key\nindicating a deprecated resource and a suggested replacement, or a\nwarning about invalid network settings (for example, if an instance\nattempts to perform IP forwarding but is not enabled for IP forwarding).", "type": "string" }, "value": { @@ -50541,231 +76883,171 @@ }, "type": "object" }, - "InstanceGroupManagerResizeRequest": { - "description": "InstanceGroupManagerResizeRequest represents a request to create a number of VMs: either immediately or by queuing the request for the specified time. This resize request is nested under InstanceGroupManager and the VMs created by this request are added to the owning InstanceGroupManager.", - "id": "InstanceGroupManagerResizeRequest", + "MachineImageParams": { + "description": "Machine Image parameters", + "id": "MachineImageParams", "properties": { - "creationTimestamp": { - "description": "[Output Only] The creation timestamp for this resize request in RFC3339 text format.", - "type": "string" + "resourceManagerTags": { + "additionalProperties": { + "type": "string" + }, + "description": "Input only. Resource manager tags to be bound to the machine image. Tag keys and values\nhave the same definition as resource\nmanager tags. Keys and values can be either in numeric format,\nsuch as `tagKeys/{tag_key_id}` and `tagValues/{tag_value_id}` or in\nnamespaced format such as `{org_id|project_id}/{tag_key_short_name}` and\n`{tag_value_short_name}`. The field is ignored (both PUT \u0026\nPATCH) when empty.", + "type": "object" + } + }, + "type": "object" + }, + "MachineType": { + "description": "Represents a Machine Type resource.\n\nYou can use specific machine types for your VM instances based on performance\nand pricing requirements. For more information, readMachine Types.", + "id": "MachineType", + "properties": { + "accelerators": { + "description": "[Output Only] A list of accelerator configurations assigned to this\nmachine type.", + "items": { + "properties": { + "guestAcceleratorCount": { + "description": "Number of accelerator cards exposed to the guest.", + "format": "int32", + "type": "integer" + }, + "guestAcceleratorType": { + "description": "The accelerator type resource name, not a full URL, e.g.nvidia-tesla-t4.", + "type": "string" + } + }, + "type": "object" + }, + "type": "array" }, - "description": { - "description": "An optional description of this resource.", + "architecture": { + "description": "[Output Only] The architecture of the machine type.", + "enum": [ + "ARCHITECTURE_UNSPECIFIED", + "ARM64", + "X86_64" + ], + "enumDescriptions": [ + "Default value indicating Architecture is not set.", + "Machines with architecture ARM64", + "Machines with architecture X86_64" + ], "type": "string" }, - "id": { - "description": "[Output Only] A unique identifier for this resource type. The server generates this identifier.", - "format": "uint64", - "type": "string" + "bundledLocalSsds": { + "$ref": "BundledLocalSsds", + "description": "[Output Only] The configuration of bundled local SSD for the machine type." }, - "kind": { - "default": "compute#instanceGroupManagerResizeRequest", - "description": "[Output Only] The resource type, which is always compute#instanceGroupManagerResizeRequest for resize requests.", + "creationTimestamp": { + "description": "[Output Only] Creation timestamp inRFC3339\ntext format.", "type": "string" }, - "name": { - "annotations": { - "required": [ - "compute.instanceGroupManagerResizeRequests.insert" - ] - }, - "description": "The name of this resize request. The name must be 1-63 characters long, and comply with RFC1035.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "type": "string" + "deprecated": { + "$ref": "DeprecationStatus", + "description": "[Output Only] The deprecation status associated with this machine type.\nOnly applicable if the machine type is unavailable." }, - "requestedRunDuration": { - "$ref": "Duration", - "description": "Requested run duration for instances that will be created by this request. At the end of the run duration instance will be deleted." + "description": { + "description": "[Output Only] An optional textual description of the resource.", + "type": "string" }, - "resizeBy": { - "description": "The number of instances to be created by this resize request. The group's target size will be increased by this number.", + "guestCpus": { + "description": "[Output Only] The number of virtual CPUs that are available to the\ninstance.", "format": "int32", "type": "integer" }, - "selfLink": { - "description": "[Output Only] The URL for this resize request. The server defines this URL.", - "type": "string" - }, - "selfLinkWithId": { - "description": "[Output Only] Server-defined URL for this resource with the resource id.", - "type": "string" - }, - "state": { - "description": "[Output only] Current state of the request.", - "enum": [ - "ACCEPTED", - "CANCELLED", - "CREATING", - "FAILED", - "STATE_UNSPECIFIED", - "SUCCEEDED" - ], - "enumDescriptions": [ - "The request was created successfully and was accepted for provisioning when the capacity becomes available.", - "The request is cancelled.", - "Resize request is being created and may still fail creation.", - "The request failed before or during provisioning. If the request fails during provisioning, any VMs that were created during provisioning are rolled back and removed from the MIG.", - "Default value. This value should never be returned.", - "The request succeeded." - ], - "type": "string" - }, - "status": { - "$ref": "InstanceGroupManagerResizeRequestStatus", - "description": "[Output only] Status of the request." - }, - "zone": { - "description": "[Output Only] The URL of a zone where the resize request is located. Populated only for zonal resize requests.", + "id": { + "description": "[Output Only] The unique identifier for the resource. This identifier is\ndefined by the server.", + "format": "uint64", "type": "string" - } - }, - "type": "object" - }, - "InstanceGroupManagerResizeRequestStatus": { - "id": "InstanceGroupManagerResizeRequestStatus", - "properties": { - "error": { - "description": "[Output only] Fatal errors encountered during the queueing or provisioning phases of the ResizeRequest that caused the transition to the FAILED state. Contrary to the last_attempt errors, this field is final and errors are never removed from here, as the ResizeRequest is not going to retry.", - "properties": { - "errors": { - "description": "[Output Only] The array of errors encountered while processing this operation.", - "items": { - "properties": { - "code": { - "description": "[Output Only] The error type identifier for this error.", - "type": "string" - }, - "errorDetails": { - "description": "[Output Only] An optional list of messages that contain the error details. There is a set of defined message types to use for providing details.The syntax depends on the error code. For example, QuotaExceededInfo will have details when the error code is QUOTA_EXCEEDED.", - "items": { - "properties": { - "errorInfo": { - "$ref": "ErrorInfo" - }, - "help": { - "$ref": "Help" - }, - "localizedMessage": { - "$ref": "LocalizedMessage" - }, - "quotaInfo": { - "$ref": "QuotaExceededInfo" - } - }, - "type": "object" - }, - "type": "array" - }, - "location": { - "description": "[Output Only] Indicates the field in the request that caused the error. This property is optional.", - "type": "string" - }, - "message": { - "description": "[Output Only] An optional, human-readable error message.", - "type": "string" - } - }, - "type": "object" - }, - "type": "array" - } - }, - "type": "object" }, - "lastAttempt": { - "$ref": "InstanceGroupManagerResizeRequestStatusLastAttempt", - "description": "[Output only] Information about the last attempt to fulfill the request. The value is temporary since the ResizeRequest can retry, as long as it's still active and the last attempt value can either be cleared or replaced with a different error. Since ResizeRequest retries infrequently, the value may be stale and no longer show an active problem. The value is cleared when ResizeRequest transitions to the final state (becomes inactive). If the final state is FAILED the error describing it will be storred in the \"error\" field only." - } - }, - "type": "object" - }, - "InstanceGroupManagerResizeRequestStatusLastAttempt": { - "id": "InstanceGroupManagerResizeRequestStatusLastAttempt", - "properties": { - "error": { - "description": "Errors that prevented the ResizeRequest to be fulfilled.", - "properties": { - "errors": { - "description": "[Output Only] The array of errors encountered while processing this operation.", - "items": { - "properties": { - "code": { - "description": "[Output Only] The error type identifier for this error.", - "type": "string" - }, - "errorDetails": { - "description": "[Output Only] An optional list of messages that contain the error details. There is a set of defined message types to use for providing details.The syntax depends on the error code. For example, QuotaExceededInfo will have details when the error code is QUOTA_EXCEEDED.", - "items": { - "properties": { - "errorInfo": { - "$ref": "ErrorInfo" - }, - "help": { - "$ref": "Help" - }, - "localizedMessage": { - "$ref": "LocalizedMessage" - }, - "quotaInfo": { - "$ref": "QuotaExceededInfo" - } - }, - "type": "object" - }, - "type": "array" - }, - "location": { - "description": "[Output Only] Indicates the field in the request that caused the error. This property is optional.", - "type": "string" - }, - "message": { - "description": "[Output Only] An optional, human-readable error message.", - "type": "string" - } - }, - "type": "object" - }, - "type": "array" - } - }, - "type": "object" + "imageSpaceGb": { + "description": "[Deprecated] This property is deprecated and will never be populated with\nany relevant values.", + "format": "int32", + "type": "integer" + }, + "isSharedCpu": { + "description": "[Output Only] Whether this machine type has a shared CPU. SeeShared-core machine\ntypes for more information.", + "type": "boolean" + }, + "kind": { + "default": "compute#machineType", + "description": "Output only. [Output Only] The type of the resource. Alwayscompute#machineType for machine types.", + "readOnly": true, + "type": "string" + }, + "maximumPersistentDisks": { + "description": "[Output Only] Maximum persistent disks allowed.", + "format": "int32", + "type": "integer" + }, + "maximumPersistentDisksSizeGb": { + "description": "[Output Only] Maximum total persistent disks size (GB) allowed.", + "format": "int64", + "type": "string" + }, + "memoryMb": { + "description": "[Output Only] The amount of physical memory available to the instance,\ndefined in MB.", + "format": "int32", + "type": "integer" + }, + "name": { + "description": "[Output Only] Name of the resource.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "type": "string" + }, + "selfLink": { + "description": "[Output Only] Server-defined URL for the resource.", + "type": "string" + }, + "zone": { + "description": "[Output Only] The name of the zone where the machine type resides,\nsuch as us-central1-a.", + "type": "string" } }, "type": "object" }, - "InstanceGroupManagerResizeRequestsListResponse": { - "description": "[Output Only] A list of resize requests.", - "id": "InstanceGroupManagerResizeRequestsListResponse", + "MachineTypeAggregatedList": { + "id": "MachineTypeAggregatedList", "properties": { "id": { "description": "[Output Only] Unique identifier for the resource; defined by the server.", "type": "string" }, "items": { - "description": "A list of resize request resources.", - "items": { - "$ref": "InstanceGroupManagerResizeRequest" + "additionalProperties": { + "$ref": "MachineTypesScopedList", + "description": "[Output Only] Name of the scope containing this set of machine types." }, - "type": "array" + "description": "A list of MachineTypesScopedList resources.", + "type": "object" }, "kind": { - "default": "compute#instanceGroupManagerResizeRequestList", - "description": "[Output Only] Type of the resource. Always compute#instanceGroupManagerResizeRequestList for a list of resize requests.", + "default": "compute#machineTypeAggregatedList", + "description": "Output only. [Output Only] Type of resource. Alwayscompute#machineTypeAggregatedList for aggregated lists of\nmachine types.", + "readOnly": true, "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.", + "description": "[Output Only] This token allows you to get the next page of results for\nlist requests. If the number of results is larger thanmaxResults, use the nextPageToken as a value for\nthe query parameter pageToken in the next list request.\nSubsequent list requests will have their own nextPageToken to\ncontinue paging through the results.", "type": "string" }, "selfLink": { - "description": "[Output Only] Server-defined URL for this resource.", + "description": "Output only. [Output Only] Server-defined URL for this resource.", + "readOnly": true, "type": "string" }, + "unreachables": { + "description": "Output only. [Output Only] Unreachable resources.", + "items": { + "type": "string" + }, + "readOnly": true, + "type": "array" + }, "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.", + "description": "[Output Only] A warning code, if applicable. For example, Compute\nEngine returns NO_RESULTS_ON_PAGE if there\nare no results in the response.", "enum": [ "CLEANUP_FAILED", "DEPRECATED_RESOURCE_USED", @@ -50788,6 +77070,7 @@ "NOT_CRITICAL_ERROR", "NO_RESULTS_ON_PAGE", "PARTIAL_SUCCESS", + "QUOTA_INFO_UNAVAILABLE", "REQUIRED_TOS_AGREEMENT", "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", "RESOURCE_NOT_DELETED", @@ -50824,46 +77107,48 @@ false, false, false, + false, false ], "enumDescriptions": [ - "Warning about failed cleanup of transient changes made by a failed operation.", + "Warning about failed cleanup of transient changes made by a failed\noperation.", "A link to a deprecated resource was created.", - "When deploying and at least one of the resources has a type marked as deprecated", + "When deploying and at least one of the resources has a type marked as\ndeprecated", "The user created a boot disk that is larger than image size.", - "When deploying and at least one of the resources has a type marked as experimental", + "When deploying and at least one of the resources has a type marked as\nexperimental", "Warning that is present in an external api call", - "Warning that value of a field has been overridden. Deprecated unused field.", + "Warning that value of a field has been overridden.\nDeprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", - "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is\nnot of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", - "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", + "Resource can't be retrieved due to list overhead quota exceed\nwhich captures the amount of resources filtered out by\nuser-defined list filter.", "A resource depends on a missing type", - "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's nextHopIp address is not assigned to an instance on the\nnetwork.", "The route's next hop instance cannot ip forward.", - "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not have an\nipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", - "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that is not on the\nsame network as the route.", "The route's next hop instance does not have a status of RUNNING.", - "Error which is not critical. We decided to continue the process despite the mentioned error.", + "Error which is not critical. We decided to continue the process despite\nthe mentioned error.", "No results are present on a particular list page.", "Success is reported, but some results may be missing due to errors", - "The user attempted to use a resource that requires a TOS they have not accepted.", + "Quota information is not available to client requests (e.g:\nregions.list).", + "The user attempted to use a resource that requires a TOS they have not\naccepted.", "Warning that a resource is in use.", - "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "One or more of the resources set to auto-delete could not be deleted\nbecause they were in use.", "When a resource schema validation is ignored.", - "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", + "Instance template used in instance group manager is valid as such, but\nits application does not make a lot of sense, because it allows only\nsingle instance in instance group.", "When undeclared properties in the schema are present", "A given scope cannot be reached." ], "type": "string" }, "data": { - "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", + "description": "[Output Only] Metadata about this warning in key:\nvalue format. For example:\n\n\"data\": [\n {\n \"key\": \"scope\",\n \"value\": \"zones/us-east1-d\"\n }", "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).", + "description": "[Output Only] A key that provides more detail on the warning being\nreturned. For example, for warnings where there are no results in a list\nrequest for a particular zone, this key might be scope and\nthe key value might be the zone name. Other examples might be a key\nindicating a deprecated resource and a suggested replacement, or a\nwarning about invalid network settings (for example, if an instance\nattempts to perform IP forwarding but is not enabled for IP forwarding).", "type": "string" }, "value": { @@ -50885,341 +77170,41 @@ }, "type": "object" }, - "InstanceGroupManagerStatus": { - "id": "InstanceGroupManagerStatus", - "properties": { - "allInstancesConfig": { - "$ref": "InstanceGroupManagerStatusAllInstancesConfig", - "description": "[Output only] Status of all-instances configuration on the group." - }, - "autoscaler": { - "description": "[Output Only] The URL of the Autoscaler that targets this instance group manager.", - "type": "string" - }, - "isStable": { - "description": "[Output Only] A bit indicating whether the managed instance group is in a stable state. A stable state means that: none of the instances in the managed instance group is currently undergoing any type of change (for example, creation, restart, or deletion); no future changes are scheduled for instances in the managed instance group; and the managed instance group itself is not being modified.", - "type": "boolean" - }, - "stateful": { - "$ref": "InstanceGroupManagerStatusStateful", - "description": "[Output Only] Stateful status of the given Instance Group Manager." - }, - "versionTarget": { - "$ref": "InstanceGroupManagerStatusVersionTarget", - "description": "[Output Only] A status of consistency of Instances' versions with their target version specified by version field on Instance Group Manager." - } - }, - "type": "object" - }, - "InstanceGroupManagerStatusAllInstancesConfig": { - "id": "InstanceGroupManagerStatusAllInstancesConfig", - "properties": { - "currentRevision": { - "description": "[Output Only] Current all-instances configuration revision. This value is in RFC3339 text format.", - "type": "string" - }, - "effective": { - "description": "[Output Only] A bit indicating whether this configuration has been applied to all managed instances in the group.", - "type": "boolean" - } - }, - "type": "object" - }, - "InstanceGroupManagerStatusStateful": { - "id": "InstanceGroupManagerStatusStateful", - "properties": { - "hasStatefulConfig": { - "description": "[Output Only] A bit indicating whether the managed instance group has stateful configuration, that is, if you have configured any items in a stateful policy or in per-instance configs. The group might report that it has no stateful configuration even when there is still some preserved state on a managed instance, for example, if you have deleted all PICs but not yet applied those deletions.", - "type": "boolean" - }, - "perInstanceConfigs": { - "$ref": "InstanceGroupManagerStatusStatefulPerInstanceConfigs", - "description": "[Output Only] Status of per-instance configurations on the instances." - } - }, - "type": "object" - }, - "InstanceGroupManagerStatusStatefulPerInstanceConfigs": { - "id": "InstanceGroupManagerStatusStatefulPerInstanceConfigs", - "properties": { - "allEffective": { - "description": "A bit indicating if all of the group's per-instance configurations (listed in the output of a listPerInstanceConfigs API call) have status EFFECTIVE or there are no per-instance-configs.", - "type": "boolean" - } - }, - "type": "object" - }, - "InstanceGroupManagerStatusVersionTarget": { - "id": "InstanceGroupManagerStatusVersionTarget", - "properties": { - "isReached": { - "description": "[Output Only] A bit indicating whether version target has been reached in this managed instance group, i.e. all instances are in their target version. Instances' target version are specified by version field on Instance Group Manager.", - "type": "boolean" - } - }, - "type": "object" - }, - "InstanceGroupManagerUpdatePolicy": { - "id": "InstanceGroupManagerUpdatePolicy", - "properties": { - "instanceRedistributionType": { - "description": "The instance redistribution policy for regional managed instance groups. Valid values are: - PROACTIVE (default): The group attempts to maintain an even distribution of VM instances across zones in the region. - NONE: For non-autoscaled groups, proactive redistribution is disabled. ", - "enum": [ - "NONE", - "PROACTIVE" - ], - "enumDescriptions": [ - "No action is being proactively performed in order to bring this IGM to its target instance distribution.", - "This IGM will actively converge to its target instance distribution." - ], - "type": "string" - }, - "maxSurge": { - "$ref": "FixedOrPercent", - "description": "The maximum number of instances that can be created above the specified targetSize during the update process. This value can be either a fixed number or, if the group has 10 or more instances, a percentage. If you set a percentage, the number of instances is rounded if necessary. The default value for maxSurge is a fixed value equal to the number of zones in which the managed instance group operates. At least one of either maxSurge or maxUnavailable must be greater than 0. Learn more about maxSurge." - }, - "maxUnavailable": { - "$ref": "FixedOrPercent", - "description": "The maximum number of instances that can be unavailable during the update process. An instance is considered available if all of the following conditions are satisfied: - The instance's status is RUNNING. - If there is a health check on the instance group, the instance's health check status must be HEALTHY at least once. If there is no health check on the group, then the instance only needs to have a status of RUNNING to be considered available. This value can be either a fixed number or, if the group has 10 or more instances, a percentage. If you set a percentage, the number of instances is rounded if necessary. The default value for maxUnavailable is a fixed value equal to the number of zones in which the managed instance group operates. At least one of either maxSurge or maxUnavailable must be greater than 0. Learn more about maxUnavailable." - }, - "minimalAction": { - "description": "Minimal action to be taken on an instance. Use this option to minimize disruption as much as possible or to apply a more disruptive action than is necessary. - To limit disruption as much as possible, set the minimal action to REFRESH. If your update requires a more disruptive action, Compute Engine performs the necessary action to execute the update. - To apply a more disruptive action than is strictly necessary, set the minimal action to RESTART or REPLACE. For example, Compute Engine does not need to restart a VM to change its metadata. But if your application reads instance metadata only when a VM is restarted, you can set the minimal action to RESTART in order to pick up metadata changes. ", - "enum": [ - "NONE", - "REFRESH", - "REPLACE", - "RESTART" - ], - "enumDescriptions": [ - "Do not perform any action.", - "Do not stop the instance.", - "(Default.) Replace the instance according to the replacement method option.", - "Stop the instance and start it again." - ], - "type": "string" - }, - "mostDisruptiveAllowedAction": { - "description": "Most disruptive action that is allowed to be taken on an instance. You can specify either NONE to forbid any actions, REFRESH to avoid restarting the VM and to limit disruption as much as possible. RESTART to allow actions that can be applied without instance replacing or REPLACE to allow all possible actions. If the Updater determines that the minimal update action needed is more disruptive than most disruptive allowed action you specify it will not perform the update at all.", - "enum": [ - "NONE", - "REFRESH", - "REPLACE", - "RESTART" - ], - "enumDescriptions": [ - "Do not perform any action.", - "Do not stop the instance.", - "(Default.) Replace the instance according to the replacement method option.", - "Stop the instance and start it again." - ], - "type": "string" - }, - "replacementMethod": { - "description": "What action should be used to replace instances. See minimal_action.REPLACE", - "enum": [ - "RECREATE", - "SUBSTITUTE" - ], - "enumDescriptions": [ - "Instances will be recreated (with the same name)", - "Default option: instances will be deleted and created (with a new name)" - ], - "type": "string" - }, - "type": { - "description": "The type of update process. You can specify either PROACTIVE so that the MIG automatically updates VMs to the latest configurations or OPPORTUNISTIC so that you can select the VMs that you want to update.", - "enum": [ - "OPPORTUNISTIC", - "PROACTIVE" - ], - "enumDescriptions": [ - "MIG will apply new configurations to existing VMs only when you selectively target specific or all VMs to be updated.", - "MIG will automatically apply new configurations to all or a subset of existing VMs and also to new VMs that are added to the group." - ], - "type": "string" - } - }, - "type": "object" - }, - "InstanceGroupManagerVersion": { - "id": "InstanceGroupManagerVersion", - "properties": { - "instanceTemplate": { - "description": "The URL of the instance template that is specified for this managed instance group. The group uses this template to create new instances in the managed instance group until the `targetSize` for this version is reached. The templates for existing instances in the group do not change unless you run recreateInstances, run applyUpdatesToInstances, or set the group's updatePolicy.type to PROACTIVE; in those cases, existing instances are updated until the `targetSize` for this version is reached.", - "type": "string" - }, - "name": { - "description": "Name of the version. Unique among all versions in the scope of this managed instance group.", - "type": "string" - }, - "targetSize": { - "$ref": "FixedOrPercent", - "description": "Specifies the intended number of instances to be created from the instanceTemplate. The final number of instances created from the template will be equal to: - If expressed as a fixed number, the minimum of either targetSize.fixed or instanceGroupManager.targetSize is used. - if expressed as a percent, the targetSize would be (targetSize.percent/100 * InstanceGroupManager.targetSize) If there is a remainder, the number is rounded. If unset, this version will update any remaining instances not updated by another version. Read Starting a canary update for more information." - } - }, - "type": "object" - }, - "InstanceGroupManagersAbandonInstancesRequest": { - "id": "InstanceGroupManagersAbandonInstancesRequest", - "properties": { - "instances": { - "description": "The URLs of one or more instances to abandon. This can be a full URL or a partial URL, such as zones/[ZONE]/instances/[INSTANCE_NAME].", - "items": { - "type": "string" - }, - "type": "array" - } - }, - "type": "object" - }, - "InstanceGroupManagersApplyUpdatesRequest": { - "description": "InstanceGroupManagers.applyUpdatesToInstances", - "id": "InstanceGroupManagersApplyUpdatesRequest", + "MachineTypeList": { + "description": "Contains a list of machine types.", + "id": "MachineTypeList", "properties": { - "allInstances": { - "description": "Flag to update all instances instead of specified list of “instances”. If the flag is set to true then the instances may not be specified in the request.", - "type": "boolean" - }, - "instances": { - "description": "The list of URLs of one or more instances for which you want to apply updates. Each URL can be a full URL or a partial URL, such as zones/[ZONE]/instances/[INSTANCE_NAME].", - "items": { - "type": "string" - }, - "type": "array" - }, - "minimalAction": { - "description": "The minimal action that you want to perform on each instance during the update: - REPLACE: At minimum, delete the instance and create it again. - RESTART: Stop the instance and start it again. - REFRESH: Do not stop the instance and limit disruption as much as possible. - NONE: Do not disrupt the instance at all. By default, the minimum action is NONE. If your update requires a more disruptive action than you set with this flag, the necessary action is performed to execute the update.", - "enum": [ - "NONE", - "REFRESH", - "REPLACE", - "RESTART" - ], - "enumDescriptions": [ - "Do not perform any action.", - "Do not stop the instance.", - "(Default.) Replace the instance according to the replacement method option.", - "Stop the instance and start it again." - ], - "type": "string" - }, - "mostDisruptiveAllowedAction": { - "description": "The most disruptive action that you want to perform on each instance during the update: - REPLACE: Delete the instance and create it again. - RESTART: Stop the instance and start it again. - REFRESH: Do not stop the instance and limit disruption as much as possible. - NONE: Do not disrupt the instance at all. By default, the most disruptive allowed action is REPLACE. If your update requires a more disruptive action than you set with this flag, the update request will fail.", - "enum": [ - "NONE", - "REFRESH", - "REPLACE", - "RESTART" - ], - "enumDescriptions": [ - "Do not perform any action.", - "Do not stop the instance.", - "(Default.) Replace the instance according to the replacement method option.", - "Stop the instance and start it again." - ], + "id": { + "description": "[Output Only] Unique identifier for the resource; defined by the server.", "type": "string" - } - }, - "type": "object" - }, - "InstanceGroupManagersCreateInstancesRequest": { - "description": "InstanceGroupManagers.createInstances", - "id": "InstanceGroupManagersCreateInstancesRequest", - "properties": { - "instances": { - "description": "[Required] List of specifications of per-instance configs.", - "items": { - "$ref": "PerInstanceConfig" - }, - "type": "array" - } - }, - "type": "object" - }, - "InstanceGroupManagersDeleteInstancesRequest": { - "id": "InstanceGroupManagersDeleteInstancesRequest", - "properties": { - "instances": { - "description": "The URLs of one or more instances to delete. This can be a full URL or a partial URL, such as zones/[ZONE]/instances/[INSTANCE_NAME]. Queued instances do not have URL and can be deleted only by name. One cannot specify both URLs and names in a single request.", - "items": { - "type": "string" - }, - "type": "array" }, - "skipInstancesOnValidationError": { - "description": "Specifies whether the request should proceed despite the inclusion of instances that are not members of the group or that are already in the process of being deleted or abandoned. If this field is set to `false` and such an instance is specified in the request, the operation fails. The operation always fails if the request contains a malformed instance URL or a reference to an instance that exists in a zone or region other than the group's zone or region.", - "type": "boolean" - } - }, - "type": "object" - }, - "InstanceGroupManagersDeletePerInstanceConfigsReq": { - "description": "InstanceGroupManagers.deletePerInstanceConfigs", - "id": "InstanceGroupManagersDeletePerInstanceConfigsReq", - "properties": { - "names": { - "description": "The list of instance names for which we want to delete per-instance configs on this managed instance group.", - "items": { - "type": "string" - }, - "type": "array" - } - }, - "type": "object" - }, - "InstanceGroupManagersListErrorsResponse": { - "id": "InstanceGroupManagersListErrorsResponse", - "properties": { "items": { - "description": "[Output Only] The list of errors of the managed instance group.", + "description": "A list of MachineType resources.", "items": { - "$ref": "InstanceManagedByIgmError" + "$ref": "MachineType" }, "type": "array" }, - "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.", + "kind": { + "default": "compute#machineTypeList", + "description": "Output only. [Output Only] Type of resource. Always compute#machineTypeList\nfor lists of machine types.", + "readOnly": true, "type": "string" - } - }, - "type": "object" - }, - "InstanceGroupManagersListManagedInstancesResponse": { - "id": "InstanceGroupManagersListManagedInstancesResponse", - "properties": { - "managedInstances": { - "description": "[Output Only] The list of instances in the managed instance group.", - "items": { - "$ref": "ManagedInstance" - }, - "type": "array" }, "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.", + "description": "[Output Only] This token allows you to get the next page of results for\nlist requests. If the number of results is larger thanmaxResults, use the nextPageToken as a value for\nthe query parameter pageToken in the next list request.\nSubsequent list requests will have their own nextPageToken to\ncontinue paging through the results.", "type": "string" - } - }, - "type": "object" - }, - "InstanceGroupManagersListPerInstanceConfigsResp": { - "id": "InstanceGroupManagersListPerInstanceConfigsResp", - "properties": { - "items": { - "description": "[Output Only] The list of PerInstanceConfig.", - "items": { - "$ref": "PerInstanceConfig" - }, - "type": "array" }, - "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.", + "selfLink": { + "description": "Output only. [Output Only] Server-defined URL for this resource.", + "readOnly": true, "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.", + "description": "[Output Only] A warning code, if applicable. For example, Compute\nEngine returns NO_RESULTS_ON_PAGE if there\nare no results in the response.", "enum": [ "CLEANUP_FAILED", "DEPRECATED_RESOURCE_USED", @@ -51242,6 +77227,7 @@ "NOT_CRITICAL_ERROR", "NO_RESULTS_ON_PAGE", "PARTIAL_SUCCESS", + "QUOTA_INFO_UNAVAILABLE", "REQUIRED_TOS_AGREEMENT", "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", "RESOURCE_NOT_DELETED", @@ -51278,46 +77264,48 @@ false, false, false, + false, false ], "enumDescriptions": [ - "Warning about failed cleanup of transient changes made by a failed operation.", + "Warning about failed cleanup of transient changes made by a failed\noperation.", "A link to a deprecated resource was created.", - "When deploying and at least one of the resources has a type marked as deprecated", + "When deploying and at least one of the resources has a type marked as\ndeprecated", "The user created a boot disk that is larger than image size.", - "When deploying and at least one of the resources has a type marked as experimental", + "When deploying and at least one of the resources has a type marked as\nexperimental", "Warning that is present in an external api call", - "Warning that value of a field has been overridden. Deprecated unused field.", + "Warning that value of a field has been overridden.\nDeprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", - "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is\nnot of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", - "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", + "Resource can't be retrieved due to list overhead quota exceed\nwhich captures the amount of resources filtered out by\nuser-defined list filter.", "A resource depends on a missing type", - "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's nextHopIp address is not assigned to an instance on the\nnetwork.", "The route's next hop instance cannot ip forward.", - "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not have an\nipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", - "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that is not on the\nsame network as the route.", "The route's next hop instance does not have a status of RUNNING.", - "Error which is not critical. We decided to continue the process despite the mentioned error.", + "Error which is not critical. We decided to continue the process despite\nthe mentioned error.", "No results are present on a particular list page.", "Success is reported, but some results may be missing due to errors", - "The user attempted to use a resource that requires a TOS they have not accepted.", + "Quota information is not available to client requests (e.g:\nregions.list).", + "The user attempted to use a resource that requires a TOS they have not\naccepted.", "Warning that a resource is in use.", - "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "One or more of the resources set to auto-delete could not be deleted\nbecause they were in use.", "When a resource schema validation is ignored.", - "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", + "Instance template used in instance group manager is valid as such, but\nits application does not make a lot of sense, because it allows only\nsingle instance in instance group.", "When undeclared properties in the schema are present", "A given scope cannot be reached." ], "type": "string" }, "data": { - "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", + "description": "[Output Only] Metadata about this warning in key:\nvalue format. For example:\n\n\"data\": [\n {\n \"key\": \"scope\",\n \"value\": \"zones/us-east1-d\"\n }", "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).", + "description": "[Output Only] A key that provides more detail on the warning being\nreturned. For example, for warnings where there are no results in a list\nrequest for a particular zone, this key might be scope and\nthe key value might be the zone name. Other examples might be a key\nindicating a deprecated resource and a suggested replacement, or a\nwarning about invalid network settings (for example, if an instance\nattempts to perform IP forwarding but is not enabled for IP forwarding).", "type": "string" }, "value": { @@ -51339,48 +77327,21 @@ }, "type": "object" }, - "InstanceGroupManagersPatchPerInstanceConfigsReq": { - "description": "InstanceGroupManagers.patchPerInstanceConfigs", - "id": "InstanceGroupManagersPatchPerInstanceConfigsReq", - "properties": { - "perInstanceConfigs": { - "description": "The list of per-instance configurations to insert or patch on this managed instance group.", - "items": { - "$ref": "PerInstanceConfig" - }, - "type": "array" - } - }, - "type": "object" - }, - "InstanceGroupManagersRecreateInstancesRequest": { - "id": "InstanceGroupManagersRecreateInstancesRequest", - "properties": { - "instances": { - "description": "The URLs of one or more instances to recreate. This can be a full URL or a partial URL, such as zones/[ZONE]/instances/[INSTANCE_NAME].", - "items": { - "type": "string" - }, - "type": "array" - } - }, - "type": "object" - }, - "InstanceGroupManagersScopedList": { - "id": "InstanceGroupManagersScopedList", + "MachineTypesScopedList": { + "id": "MachineTypesScopedList", "properties": { - "instanceGroupManagers": { - "description": "[Output Only] The list of managed instance groups that are contained in the specified project and zone.", + "machineTypes": { + "description": "[Output Only] A list of machine types contained in this scope.", "items": { - "$ref": "InstanceGroupManager" + "$ref": "MachineType" }, "type": "array" }, "warning": { - "description": "[Output Only] The warning that replaces the list of managed instance groups when the list is empty.", + "description": "[Output Only] An informational warning that appears when the machine types\nlist is empty.", "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.", + "description": "[Output Only] A warning code, if applicable. For example, Compute\nEngine returns NO_RESULTS_ON_PAGE if there\nare no results in the response.", "enum": [ "CLEANUP_FAILED", "DEPRECATED_RESOURCE_USED", @@ -51403,6 +77364,7 @@ "NOT_CRITICAL_ERROR", "NO_RESULTS_ON_PAGE", "PARTIAL_SUCCESS", + "QUOTA_INFO_UNAVAILABLE", "REQUIRED_TOS_AGREEMENT", "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", "RESOURCE_NOT_DELETED", @@ -51439,319 +77401,823 @@ false, false, false, + false, false ], "enumDescriptions": [ - "Warning about failed cleanup of transient changes made by a failed operation.", + "Warning about failed cleanup of transient changes made by a failed\noperation.", "A link to a deprecated resource was created.", - "When deploying and at least one of the resources has a type marked as deprecated", + "When deploying and at least one of the resources has a type marked as\ndeprecated", "The user created a boot disk that is larger than image size.", - "When deploying and at least one of the resources has a type marked as experimental", + "When deploying and at least one of the resources has a type marked as\nexperimental", "Warning that is present in an external api call", - "Warning that value of a field has been overridden. Deprecated unused field.", + "Warning that value of a field has been overridden.\nDeprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", - "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is\nnot of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", - "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", + "Resource can't be retrieved due to list overhead quota exceed\nwhich captures the amount of resources filtered out by\nuser-defined list filter.", "A resource depends on a missing type", - "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's nextHopIp address is not assigned to an instance on the\nnetwork.", "The route's next hop instance cannot ip forward.", - "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not have an\nipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", - "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that is not on the\nsame network as the route.", "The route's next hop instance does not have a status of RUNNING.", - "Error which is not critical. We decided to continue the process despite the mentioned error.", + "Error which is not critical. We decided to continue the process despite\nthe mentioned error.", "No results are present on a particular list page.", "Success is reported, but some results may be missing due to errors", - "The user attempted to use a resource that requires a TOS they have not accepted.", + "Quota information is not available to client requests (e.g:\nregions.list).", + "The user attempted to use a resource that requires a TOS they have not\naccepted.", "Warning that a resource is in use.", - "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "One or more of the resources set to auto-delete could not be deleted\nbecause they were in use.", "When a resource schema validation is ignored.", - "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", + "Instance template used in instance group manager is valid as such, but\nits application does not make a lot of sense, because it allows only\nsingle instance in instance group.", "When undeclared properties in the schema are present", "A given scope cannot be reached." ], "type": "string" }, "data": { - "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", + "description": "[Output Only] Metadata about this warning in key:\nvalue format. For example:\n\n\"data\": [\n {\n \"key\": \"scope\",\n \"value\": \"zones/us-east1-d\"\n }", + "items": { + "properties": { + "key": { + "description": "[Output Only] A key that provides more detail on the warning being\nreturned. For example, for warnings where there are no results in a list\nrequest for a particular zone, this key might be scope and\nthe key value might be the zone name. Other examples might be a key\nindicating a deprecated resource and a suggested replacement, or a\nwarning about invalid network settings (for example, if an instance\nattempts 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" + }, + "ManagedInstance": { + "description": "A Managed Instance resource.", + "id": "ManagedInstance", + "properties": { + "currentAction": { + "description": "Output only. [Output Only] The current action that the managed instance group has\nscheduled for the instance. Possible values:\n \n - NONE The instance is running, and the managed\n instance group does not have any scheduled actions for this instance.\n - CREATING The managed instance group is creating this\n instance. If the group fails to create this instance, it will try again\n until it is successful.\n - CREATING_WITHOUT_RETRIES The managed instance group\n is attempting to create this instance only once. If the group fails\n to create this instance, it does not try again and the group'stargetSize value is decreased instead.\n - RECREATING The managed instance group is recreating\n this instance.\n - DELETING The managed instance group is permanently\n deleting this instance.\n - ABANDONING The managed instance group is abandoning\n this instance. The instance will be removed from the instance group\n and from any target pools that are associated with this group.\n - RESTARTING The managed instance group is restarting\n the instance.\n - REFRESHING The managed instance group is applying\n configuration changes to the instance without stopping it. For example,\n the group can update the target pool list for an instance without\n stopping that instance.\n - VERIFYING The managed instance group has created the\n instance and it is in the process of being verified.", + "enum": [ + "ABANDONING", + "CREATING", + "CREATING_WITHOUT_RETRIES", + "DELETING", + "NONE", + "RECREATING", + "REFRESHING", + "RESTARTING", + "RESUMING", + "STARTING", + "STOPPING", + "SUSPENDING", + "VERIFYING" + ], + "enumDescriptions": [ + "The managed instance group is abandoning this instance. The instance\nwill be removed from the instance group and from any target pools that\nare associated with this group.", + "The managed instance group is creating this instance. If the group\nfails to create this instance, it will try again until it is\nsuccessful.", + "The managed instance group is attempting to create this instance\nonly once. If the group fails to create this instance, it does\nnot try again and the group's targetSize value is\ndecreased.", + "The managed instance group is permanently deleting this instance.", + "The managed instance group has not scheduled any actions for this\ninstance.", + "The managed instance group is recreating this instance.", + "The managed instance group is applying configuration changes to the\ninstance without stopping it. For example, the group can update the\ntarget pool list for an instance without stopping that instance.", + "The managed instance group is restarting this instance.", + "The managed instance group is resuming this instance.", + "The managed instance group is starting this instance.", + "The managed instance group is stopping this instance.", + "The managed instance group is suspending this instance.", + "The managed instance group is verifying this already created instance.\nVerification happens every time the instance is (re)created or restarted\nand consists of:\n 1. Waiting until health check specified as part of this managed instance\n group's autohealing policy reports HEALTHY.\n Note: Applies only if autohealing policy has a health check specified\n 2. Waiting for addition verification steps performed as post-instance\n creation (subject to future extensions)." + ], + "readOnly": true, + "type": "string" + }, + "id": { + "description": "Output only. [Output only] The unique identifier for this resource. This field is empty\nwhen instance does not exist.", + "format": "uint64", + "readOnly": true, + "type": "string" + }, + "instance": { + "description": "Output only. [Output Only] The URL of the instance. The URL can exist even if the\ninstance has not yet been created.", + "readOnly": true, + "type": "string" + }, + "instanceHealth": { + "description": "Output only. [Output Only] Health state of the instance per health-check.", + "items": { + "$ref": "ManagedInstanceInstanceHealth" + }, + "readOnly": true, + "type": "array" + }, + "instanceStatus": { + "description": "Output only. [Output Only] The status of the instance. This field is empty when\nthe instance does not exist.", + "enum": [ + "DEPROVISIONING", + "PENDING", + "PROVISIONING", + "REPAIRING", + "RUNNING", + "STAGING", + "STOPPED", + "STOPPING", + "SUSPENDED", + "SUSPENDING", + "TERMINATED" + ], + "enumDescriptions": [ + "The instance is halted and we are performing tear down tasks like network\ndeprogramming, releasing quota, IP, tearing down disks etc.", + "For Flex Start provisioning instance is waiting for available capacity\nfrom Dynamic Workload Scheduler (DWS).", + "Resources are being allocated for the instance.", + "The instance is in repair.", + "The instance is running.", + "All required resources have been allocated and the instance\nis being started.", + "The instance has stopped successfully.", + "The instance is currently stopping (either being deleted or killed).", + "The instance has suspended.", + "The instance is suspending.", + "The instance has stopped (either by explicit action or underlying\nfailure)." + ], + "readOnly": true, + "type": "string" + }, + "lastAttempt": { + "$ref": "ManagedInstanceLastAttempt", + "description": "Output only. [Output Only] Information about the last attempt to create or delete\nthe instance.", + "readOnly": true + }, + "name": { + "description": "Output only. [Output Only] The name of the instance. The name always exists even if the\ninstance has not yet been created.", + "readOnly": true, + "type": "string" + }, + "preservedStateFromConfig": { + "$ref": "PreservedState", + "description": "Output only. [Output Only] Preserved state applied from per-instance config\nfor this instance.", + "readOnly": true + }, + "preservedStateFromPolicy": { + "$ref": "PreservedState", + "description": "Output only. [Output Only] Preserved state generated based on stateful policy\nfor this instance.", + "readOnly": true + }, + "propertiesFromFlexibilityPolicy": { + "$ref": "ManagedInstancePropertiesFromFlexibilityPolicy", + "description": "Output only. [Output Only] Instance properties selected for this instance resulting from\nInstanceFlexibilityPolicy.", + "readOnly": true + }, + "scheduling": { + "$ref": "ManagedInstanceScheduling", + "description": "Output only. Information about the termination timestamp of the instance, if applicable.", + "readOnly": true + }, + "shutdownDetails": { + "$ref": "ManagedInstanceShutdownDetails", + "description": "Output only. Specifies the graceful shutdown details if the instance is in\n`PENDING_STOP` state or there is a programmed stop scheduled.", + "readOnly": true + }, + "version": { + "$ref": "ManagedInstanceVersion", + "description": "Output only. [Output Only] Intended version of this instance.", + "readOnly": true + } + }, + "type": "object" + }, + "ManagedInstanceInstanceHealth": { + "id": "ManagedInstanceInstanceHealth", + "properties": { + "detailedHealthState": { + "description": "Output only. [Output Only] The current detailed instance health state.", + "enum": [ + "DRAINING", + "HEALTHY", + "TIMEOUT", + "UNHEALTHY", + "UNKNOWN" + ], + "enumDescriptions": [ + "The instance is being drained. The existing connections to the instance\nhave time to complete, but the new ones are being refused.", + "The instance is reachable i.e. a connection to the application health\nchecking endpoint can be established, and conforms to the requirements\ndefined by the health check.", + "The instance is unreachable i.e. a connection to the application health\nchecking endpoint cannot be established, or the server does not respond\nwithin the specified timeout.", + "The instance is reachable, but does not conform to the requirements\ndefined by the health check.", + "The health checking system is aware of the instance but its health is\nnot known at the moment." + ], + "readOnly": true, + "type": "string" + }, + "healthCheck": { + "description": "Output only. [Output Only] The URL for the health check that verifies whether the\ninstance is healthy.", + "readOnly": true, + "type": "string" + } + }, + "type": "object" + }, + "ManagedInstanceLastAttempt": { + "id": "ManagedInstanceLastAttempt", + "properties": { + "errors": { + "description": "Output only. [Output Only] Encountered errors during the last attempt to create or\ndelete the instance.", + "properties": { + "errors": { + "description": "[Output Only] The array of errors encountered while processing this\noperation.", "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).", + "code": { + "description": "[Output Only] The error type identifier for this error.", "type": "string" }, - "value": { - "description": "[Output Only] A warning data value corresponding to the key.", + "errorDetails": { + "description": "[Output Only] An optional list of messages that contain the error\ndetails. There is a set of defined message types to use for providing\ndetails.The syntax depends on the error code. For example,\nQuotaExceededInfo will have details when the error code is\nQUOTA_EXCEEDED.", + "items": { + "properties": { + "errorInfo": { + "$ref": "ErrorInfo" + }, + "help": { + "$ref": "Help" + }, + "localizedMessage": { + "$ref": "LocalizedMessage" + }, + "quotaInfo": { + "$ref": "QuotaExceededInfo" + } + }, + "type": "object" + }, + "type": "array" + }, + "location": { + "description": "[Output Only] Indicates the field in the request that caused the error.\nThis property is optional.", + "type": "string" + }, + "message": { + "description": "[Output Only] An optional, human-readable error message.", "type": "string" } }, "type": "object" }, "type": "array" - }, - "message": { - "description": "[Output Only] A human-readable description of the warning code.", - "type": "string" } }, + "readOnly": true, "type": "object" } }, "type": "object" }, - "InstanceGroupManagersSetInstanceTemplateRequest": { - "id": "InstanceGroupManagersSetInstanceTemplateRequest", + "ManagedInstancePropertiesFromFlexibilityPolicy": { + "id": "ManagedInstancePropertiesFromFlexibilityPolicy", + "properties": { + "machineType": { + "description": "Output only. The machine type to be used for this instance.", + "readOnly": true, + "type": "string" + } + }, + "type": "object" + }, + "ManagedInstanceScheduling": { + "id": "ManagedInstanceScheduling", + "properties": { + "gracefulShutdownTimestamp": { + "description": "Output only. The timestamp at which the underlying instance will be\ntriggered for graceful shutdown if it is configured. This is in RFC3339 text format.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + }, + "terminationTimestamp": { + "description": "Output only. The timestamp at which the managed instance will be terminated. This is\nin RFC3339 text\nformat.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + } + }, + "type": "object" + }, + "ManagedInstanceShutdownDetails": { + "id": "ManagedInstanceShutdownDetails", + "properties": { + "maxDuration": { + "$ref": "Duration", + "description": "Output only. The duration for graceful shutdown. Only applicable when the instance is\nin `PENDING_STOP` state.", + "readOnly": true + }, + "requestTimestamp": { + "description": "Output only. Past timestamp indicating the beginning of `PENDING_STOP` state of\ninstance in RFC3339\ntext format.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + } + }, + "type": "object" + }, + "ManagedInstanceVersion": { + "id": "ManagedInstanceVersion", "properties": { "instanceTemplate": { - "description": "The URL of the instance template that is specified for this managed instance group. The group uses this template to create all new instances in the managed instance group. The templates for existing instances in the group do not change unless you run recreateInstances, run applyUpdatesToInstances, or set the group's updatePolicy.type to PROACTIVE.", + "description": "Output only. [Output Only] The intended template of the instance. This field is empty\nwhen current_action is one of { DELETING, ABANDONING }.", + "readOnly": true, + "type": "string" + }, + "name": { + "description": "Output only. [Output Only] Name of the version.", + "readOnly": true, "type": "string" } }, "type": "object" }, - "InstanceGroupManagersSetTargetPoolsRequest": { - "id": "InstanceGroupManagersSetTargetPoolsRequest", + "Metadata": { + "description": "A metadata key/value entry.", + "id": "Metadata", "properties": { "fingerprint": { - "description": "The fingerprint of the target pools information. Use this optional property to prevent conflicts when multiple users change the target pools settings concurrently. Obtain the fingerprint with the instanceGroupManagers.get method. Then, include the fingerprint in your request to ensure that you do not overwrite changes that were applied from another concurrent request.", + "description": "Specifies a fingerprint for this request, which is essentially a hash of\nthe metadata's contents and used for optimistic locking. The\nfingerprint is initially generated by Compute Engine and changes after\nevery request to modify or update metadata. You must always provide an\nup-to-date fingerprint hash in order to update or change metadata,\notherwise the request will fail with error412 conditionNotMet.\n\nTo see the latest fingerprint, make a get() request to\nretrieve the resource.", "format": "byte", "type": "string" }, - "targetPools": { - "description": "The list of target pool URLs that instances in this managed instance group belong to. The managed instance group applies these target pools to all of the instances in the group. Existing instances and new instances in the group all receive these target pool settings.", + "items": { + "description": "Array of key/value pairs. The total size of all keys and values must be\nless than 512 KB.", "items": { - "type": "string" + "description": "Metadata", + "properties": { + "key": { + "annotations": { + "required": [ + "compute.instances.insert", + "compute.projects.setCommonInstanceMetadata" + ] + }, + "description": "Key for the metadata entry. Keys must conform to the following\nregexp: [a-zA-Z0-9-_]+, and be less than 128 bytes in length.\nThis is reflected as part of a URL in the metadata server. Additionally, to\navoid ambiguity, keys must not conflict with any other metadata keys\nfor the project.", + "pattern": "[a-zA-Z0-9-_]{1,128}", + "type": "string" + }, + "value": { + "annotations": { + "required": [ + "compute.instances.insert", + "compute.projects.setCommonInstanceMetadata" + ] + }, + "description": "Value for the metadata entry. These are free-form strings, and only\nhave meaning as interpreted by the image running in the instance. The\nonly restriction placed on values is that their size must be less than\nor equal to 262144 bytes (256 KiB).", + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "kind": { + "default": "compute#metadata", + "description": "Output only. [Output Only] Type of the resource. Always compute#metadata\nfor metadata.", + "readOnly": true, + "type": "string" + } + }, + "type": "object" + }, + "MetadataFilter": { + "description": "Opaque filter criteria used by load balancers to restrict routing\nconfiguration to a limited set of load balancing proxies. Proxies and\nsidecars involved in load balancing would typically present metadata to the\nload balancers that need to match criteria specified here. If a match takes\nplace, the relevant configuration is made available to those\nproxies.\n\nFor each metadataFilter in this list, if itsfilterMatchCriteria is set to MATCH_ANY, at least\none of thefilterLabels must match the corresponding label provided in\nthe metadata. If its filterMatchCriteria is set to\nMATCH_ALL, then all of its filterLabels must match with\ncorresponding labels provided in the metadata.\n\nAn example for using metadataFilters would be: if\nload balancing involves\nEnvoys, they receive routing configuration when values inmetadataFilters match values supplied in of their XDS requests to loadbalancers.", + "id": "MetadataFilter", + "properties": { + "filterLabels": { + "description": "The list of label value pairs that must match labels in the provided\nmetadata based on filterMatchCriteria\n\nThis list must not be empty and can have at the most 64 entries.", + "items": { + "$ref": "MetadataFilterLabelMatch" }, "type": "array" + }, + "filterMatchCriteria": { + "description": "Specifies how individual filter label matches\nwithin the list of filterLabels and contributes toward the\noverall metadataFilter match.\n\n Supported values are:\n \n - MATCH_ANY: at least one of the filterLabels\n must have a matching label in the provided metadata.\n - MATCH_ALL: all filterLabels must have\n matching labels in the provided metadata.", + "enum": [ + "MATCH_ALL", + "MATCH_ANY", + "NOT_SET" + ], + "enumDescriptions": [ + "Specifies that all filterLabels must match for themetadataFilter to be considered a match.", + "Specifies that any filterLabel must match for themetadataFilter to be considered a match.", + "Indicates that the match criteria was not set. AmetadataFilter must never be created with this value." + ], + "type": "string" } }, "type": "object" }, - "InstanceGroupManagersUpdatePerInstanceConfigsReq": { - "description": "InstanceGroupManagers.updatePerInstanceConfigs", - "id": "InstanceGroupManagersUpdatePerInstanceConfigsReq", + "MetadataFilterLabelMatch": { + "description": "MetadataFilter label name value pairs that are expected\nto match corresponding labels presented as metadata to the load balancer.", + "id": "MetadataFilterLabelMatch", "properties": { - "perInstanceConfigs": { - "description": "The list of per-instance configurations to insert or patch on this managed instance group.", + "name": { + "description": "Name of metadata label.\n\n The name can have a maximum length of 1024 characters and must be at\nleast 1 character long.", + "type": "string" + }, + "value": { + "description": "The value of the label must match the specified value.\n\nvalue can have a maximum length of 1024 characters.", + "type": "string" + } + }, + "type": "object" + }, + "NamedPort": { + "description": "The named port. For example: \u003c\"http\", 80\u003e.", + "id": "NamedPort", + "properties": { + "name": { + "description": "The name for this named port.\nThe name must be 1-63 characters long, and comply withRFC1035.", + "type": "string" + }, + "port": { + "description": "The port number, which can be a value between 1 and 65535.", + "format": "int32", + "type": "integer" + } + }, + "type": "object" + }, + "NamedSet": { + "id": "NamedSet", + "properties": { + "description": { + "description": "An optional description of named set.", + "type": "string" + }, + "elements": { + "description": "CEL expressions that are comparable to constructs of this set's type\n(see Policy Language).", "items": { - "$ref": "PerInstanceConfig" + "$ref": "Expr" }, "type": "array" + }, + "fingerprint": { + "description": "A fingerprint for the Named Set being applied to this Router, which is\nessentially a hash of the Named Set used for optimistic locking.\nThe fingerprint is initially generated by Compute Engine and changes\nafter every request to modify or update the Named Set. You must always\nprovide an up-to-date fingerprint hash in order to update or change\nlabels.\n\nTo see the latest fingerprint, make a getNamedSet() request\nto retrieve a Named Set.", + "format": "byte", + "type": "string" + }, + "name": { + "description": "This set's name, which must be a resource ID segment and unique within all\nnamed sets owned by the Router. Name should conform to RFC1035.", + "type": "string" + }, + "type": { + "description": "This named set's type", + "enum": [ + "NAMED_SET_TYPE_COMMUNITY", + "NAMED_SET_TYPE_PREFIX" + ], + "enumDescriptions": [ + "The Named Set is a Community Named Set.", + "The Named Set is a Prefix Named Set." + ], + "type": "string" } }, "type": "object" }, - "InstanceGroupsAddInstancesRequest": { - "id": "InstanceGroupsAddInstancesRequest", + "NatIpInfo": { + "description": "Contains NAT IP information of a NAT config (i.e. usage status, mode).", + "id": "NatIpInfo", "properties": { - "instances": { - "description": "The list of instances to add to the instance group.", + "natIpInfoMappings": { + "description": "Output only. A list of all NAT IPs assigned to this NAT config.", "items": { - "$ref": "InstanceReference" + "$ref": "NatIpInfoNatIpInfoMapping" }, + "readOnly": true, "type": "array" + }, + "natName": { + "description": "Output only. Name of the NAT config which the NAT IP belongs to.", + "readOnly": true, + "type": "string" } }, "type": "object" }, - "InstanceGroupsListInstances": { - "id": "InstanceGroupsListInstances", + "NatIpInfoNatIpInfoMapping": { + "description": "Contains information of a NAT IP.", + "id": "NatIpInfoNatIpInfoMapping", "properties": { - "id": { - "description": "[Output Only] Unique identifier for the resource; defined by the server.", + "mode": { + "description": "Output only. Specifies whether NAT IP is auto or manual.", + "enum": [ + "AUTO", + "MANUAL" + ], + "enumDescriptions": [ + "", + "" + ], + "readOnly": true, "type": "string" }, - "items": { - "description": "A list of InstanceWithNamedPorts resources.", + "natIp": { + "description": "Output only. NAT IP address. For example: 203.0.113.11.", + "readOnly": true, + "type": "string" + }, + "usage": { + "description": "Output only. Specifies whether NAT IP is currently serving at least one endpoint or\nnot.", + "enum": [ + "IN_USE", + "UNUSED" + ], + "enumDescriptions": [ + "", + "" + ], + "readOnly": true, + "type": "string" + } + }, + "type": "object" + }, + "NatIpInfoResponse": { + "id": "NatIpInfoResponse", + "properties": { + "result": { + "description": "[Output Only] A list of NAT IP information.", "items": { - "$ref": "InstanceWithNamedPorts" + "$ref": "NatIpInfo" }, "type": "array" + } + }, + "type": "object" + }, + "Network": { + "description": "Represents a VPC Network resource.\n\nNetworks connect resources to each other and to the internet. For more\ninformation, readVirtual Private Cloud (VPC) Network.", + "id": "Network", + "properties": { + "IPv4Range": { + "deprecated": true, + "description": "Deprecated in favor of subnet mode networks.\nThe range of internal addresses that are legal on this network. This\nrange is aCIDR specification, for example:192.168.0.0/16. Provided by the client when the network is\ncreated.", + "pattern": "[0-9]{1,3}(?:\\.[0-9]{1,3}){3}/[0-9]{1,2}", + "type": "string" + }, + "autoCreateSubnetworks": { + "description": "Must be set to create a VPC network. If not set, a legacy network is\ncreated.\n\nWhen set to true, the VPC network is created in auto mode.\nWhen set to false, the VPC network is created in custom mode.\n\nAn auto mode VPC network starts with one subnet per region. Each subnet\nhas a predetermined range as described inAuto mode VPC network IP ranges.\n\nFor custom mode VPC networks, you can add subnets using the subnetworksinsert\nmethod.", + "type": "boolean" + }, + "creationTimestamp": { + "description": "Output only. [Output Only] Creation timestamp inRFC3339\ntext format.", + "readOnly": true, + "type": "string" + }, + "description": { + "description": "An optional description of this resource. Provide this field when you\ncreate the resource.", + "type": "string" + }, + "enableUlaInternalIpv6": { + "description": "Enable ULA internal ipv6 on this network. Enabling this feature will assign\na /48 from google defined ULA prefix fd20::/20.\n.", + "type": "boolean" + }, + "firewallPolicy": { + "description": "Output only. [Output Only] URL of the firewall policy the network is associated with.", + "readOnly": true, + "type": "string" + }, + "gatewayIPv4": { + "description": "[Output Only] The gateway address for default routing out of the network,\nselected by Google Cloud.", + "pattern": "[0-9]{1,3}(?:\\.[0-9]{1,3}){3}", + "type": "string" + }, + "id": { + "description": "Output only. [Output Only] The unique identifier for the resource. This identifier is\ndefined by the server.", + "format": "uint64", + "readOnly": true, + "type": "string" + }, + "internalIpv6Range": { + "description": "When enabling ula internal ipv6, caller optionally can specify the /48\nrange they want from the google defined ULA prefix fd20::/20. The input\nmust be a valid /48 ULA IPv6 address and must be within the fd20::/20.\nOperation will fail if the speficied /48 is already in used by another\nresource. If the field is not speficied, then a /48 range will be randomly\nallocated from fd20::/20 and returned via this field.\n.", + "type": "string" }, "kind": { - "default": "compute#instanceGroupsListInstances", - "description": "[Output Only] The resource type, which is always compute#instanceGroupsListInstances for the list of instances in the specified instance group.", + "default": "compute#network", + "description": "Output only. [Output Only] Type of the resource. Always compute#network for\nnetworks.", + "readOnly": true, "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.", + "mtu": { + "description": "Maximum Transmission Unit in bytes.\nThe minimum value for this field is 1300 and the maximum value is 8896.\nThe suggested value is 1500, which is the default MTU used on the\nInternet, or 8896 if you want to use Jumbo frames. If unspecified, the\nvalue defaults to 1460.", + "format": "int32", + "type": "integer" + }, + "name": { + "annotations": { + "required": [ + "compute.networks.insert" + ] + }, + "description": "Name of the resource. Provided by the client when the resource is created.\nThe name must be 1-63 characters long, and comply withRFC1035.\nSpecifically, the name must be 1-63 characters long and match the regular\nexpression `[a-z]([-a-z0-9]*[a-z0-9])?`. The first character must be a\nlowercase letter, and all following characters (except for the last\ncharacter) must be a dash, lowercase letter, or digit. The last character\nmust be a lowercase letter or digit.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "type": "string" + }, + "networkFirewallPolicyEnforcementOrder": { + "description": "The network firewall policy enforcement order. Can be either\nAFTER_CLASSIC_FIREWALL or BEFORE_CLASSIC_FIREWALL. Defaults to\nAFTER_CLASSIC_FIREWALL if the field is not specified.", + "enum": [ + "AFTER_CLASSIC_FIREWALL", + "BEFORE_CLASSIC_FIREWALL" + ], + "enumDescriptions": [ + "", + "" + ], + "type": "string" + }, + "networkProfile": { + "description": "A full or partial URL of the network profile to apply to this network.\nThis field can be set only at resource creation time. For example, the\nfollowing are valid URLs: \n \n - https://www.googleapis.com/compute/{api_version}/projects/{project_id}/global/networkProfiles/{network_profile_name}\n - projects/{project_id}/global/networkProfiles/{network_profile_name}", "type": "string" }, + "params": { + "$ref": "NetworkParams", + "description": "Input only. [Input Only] Additional params passed with the request, but not persisted\nas part of resource payload." + }, + "peerings": { + "description": "Output only. [Output Only] A list of network peerings for the resource.", + "items": { + "$ref": "NetworkPeering" + }, + "readOnly": true, + "type": "array" + }, + "routingConfig": { + "$ref": "NetworkRoutingConfig", + "description": "The network-level routing configuration for this network. Used by Cloud\nRouter to determine what type of network-wide routing behavior to enforce." + }, "selfLink": { - "description": "[Output Only] Server-defined URL for this resource.", + "description": "[Output Only] Server-defined URL for the 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", - "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", - "LARGE_DEPLOYMENT_WARNING", - "LIST_OVERHEAD_QUOTA_EXCEED", - "MISSING_TYPE_DEPENDENCY", - "NEXT_HOP_ADDRESS_NOT_ASSIGNED", - "NEXT_HOP_CANNOT_IP_FORWARD", - "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", - "NEXT_HOP_INSTANCE_NOT_FOUND", - "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", - "NEXT_HOP_NOT_RUNNING", - "NOT_CRITICAL_ERROR", - "NO_RESULTS_ON_PAGE", - "PARTIAL_SUCCESS", - "REQUIRED_TOS_AGREEMENT", - "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", - "RESOURCE_NOT_DELETED", - "SCHEMA_VALIDATION_IGNORED", - "SINGLE_INSTANCE_PROPERTY_TEMPLATE", - "UNDECLARED_PROPERTIES", - "UNREACHABLE" - ], - "enumDeprecated": [ - false, - false, - false, - false, - false, - false, - true, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false - ], - "enumDescriptions": [ - "Warning about failed cleanup of transient changes made by a failed operation.", - "A link to a deprecated resource was created.", - "When deploying and at least one of the resources has a type marked as deprecated", - "The user created a boot disk that is larger than image size.", - "When deploying and at least one of the resources has a type marked as experimental", - "Warning that is present in an external api call", - "Warning that value of a field has been overridden. Deprecated unused field.", - "The operation involved use of an injected kernel, which is deprecated.", - "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", - "When deploying a deployment with a exceedingly large number of resources", - "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", - "A resource depends on a missing type", - "The route's nextHopIp address is not assigned to an instance on the network.", - "The route's next hop instance cannot ip forward.", - "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", - "The route's nextHopInstance URL refers to an instance that does not exist.", - "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", - "The route's next hop instance does not have a status of RUNNING.", - "Error which is not critical. We decided to continue the process despite the mentioned error.", - "No results are present on a particular list page.", - "Success is reported, but some results may be missing due to errors", - "The user attempted to use a resource that requires a TOS they have not accepted.", - "Warning that a resource is in use.", - "One or more of the resources set to auto-delete could not be deleted because they were in use.", - "When a resource schema validation is ignored.", - "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", - "When undeclared properties in the schema are present", - "A given scope cannot be reached." - ], - "type": "string" - }, - "data": { - "description": "[Output Only] Metadata about this warning in key: value format. For example: \"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" - } + "selfLinkWithId": { + "description": "Output only. [Output Only] Server-defined URL for this resource with the resource id.", + "readOnly": true, + "type": "string" + }, + "subnetworks": { + "description": "[Output Only] Server-defined fully-qualified URLs for all subnetworks\nin this VPC network.", + "items": { + "type": "string" }, - "type": "object" + "type": "array" } }, "type": "object" }, - "InstanceGroupsListInstancesRequest": { - "id": "InstanceGroupsListInstancesRequest", + "NetworkAttachment": { + "description": "NetworkAttachments\nA network attachment resource ...", + "id": "NetworkAttachment", "properties": { - "instanceState": { - "description": "A filter for the state of the instances in the instance group. Valid options are ALL or RUNNING. If you do not specify this parameter the list includes all instances regardless of their state.", + "connectionEndpoints": { + "description": "Output only. [Output Only] An array of connections for all the producers connected\nto this network attachment.", + "items": { + "$ref": "NetworkAttachmentConnectedEndpoint" + }, + "readOnly": true, + "type": "array" + }, + "connectionPreference": { "enum": [ - "ALL", - "RUNNING" + "ACCEPT_AUTOMATIC", + "ACCEPT_MANUAL", + "INVALID" ], "enumDescriptions": [ - "Includes all instances in the generated list regardless of their state.", - "Includes instances in the generated list only if they have a RUNNING state." + "", + "", + "" ], "type": "string" - } - }, - "type": "object" - }, - "InstanceGroupsRemoveInstancesRequest": { - "id": "InstanceGroupsRemoveInstancesRequest", - "properties": { - "instances": { - "description": "The list of instances to remove from the instance group.", + }, + "creationTimestamp": { + "description": "Output only. [Output Only] Creation timestamp inRFC3339\ntext format.", + "readOnly": true, + "type": "string" + }, + "description": { + "description": "An optional description of this resource. Provide this property when you\ncreate the resource.", + "type": "string" + }, + "fingerprint": { + "description": "Fingerprint of this resource. A hash of the contents stored\nin this object. This field is used in optimistic locking. An up-to-date\nfingerprint must be provided in order to patch.", + "format": "byte", + "type": "string" + }, + "id": { + "description": "Output only. [Output Only] The unique identifier for the resource type. The server\ngenerates this identifier.", + "format": "uint64", + "readOnly": true, + "type": "string" + }, + "kind": { + "default": "compute#networkAttachment", + "description": "Output only. [Output Only] Type of the resource.", + "readOnly": true, + "type": "string" + }, + "name": { + "annotations": { + "required": [ + "compute.networkAttachments.insert" + ] + }, + "description": "Name of the resource. Provided by the client when the resource is created.\nThe name must be 1-63 characters long, and comply withRFC1035.\nSpecifically, the name must be 1-63 characters long and match the regular\nexpression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first\ncharacter must be a lowercase letter, and all following characters must\nbe a dash, lowercase letter, or digit, except the last character, which\ncannot be a dash.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "type": "string" + }, + "network": { + "description": "Output only. [Output Only] The URL of the network which the Network Attachment\nbelongs to. Practically it is inferred by fetching the network of the first\nsubnetwork associated. Because it is required that all the subnetworks must\nbe from the same network, it is assured that the Network Attachment belongs\nto the same network as all the subnetworks.", + "readOnly": true, + "type": "string" + }, + "producerAcceptLists": { + "description": "Projects or service class ids that are allowed to connect to this network\nattachment. The project can be specified using its id or number. Service\nclass id can be specified as \"serviceclasses/{service_class_id}\".", + "items": { + "type": "string" + }, + "type": "array" + }, + "producerRejectLists": { + "description": "Projects or service class ids that are not allowed to connect to this\nnetwork attachment. The project can be specified using its id or number.\nService class id can be specified as \"serviceclasses/{service_class_id}\".", + "items": { + "type": "string" + }, + "type": "array" + }, + "region": { + "description": "Output only. [Output Only] URL of the region where the network attachment resides.\nThis field applies only to the region resource. You must specify this\nfield as part of the HTTP request URL. It is not settable as a field in\nthe request body.", + "readOnly": true, + "type": "string" + }, + "selfLink": { + "description": "Output only. [Output Only] Server-defined URL for the resource.", + "readOnly": true, + "type": "string" + }, + "selfLinkWithId": { + "description": "Output only. [Output Only] Server-defined URL for this resource's resource id.", + "readOnly": true, + "type": "string" + }, + "subnetworks": { + "description": "An array of URLs where each entry is the URL of a subnet\nprovided by the service consumer to use for\nendpoints in the producers that connect to this network attachment.", "items": { - "$ref": "InstanceReference" + "type": "string" }, "type": "array" } }, "type": "object" }, - "InstanceGroupsScopedList": { - "id": "InstanceGroupsScopedList", + "NetworkAttachmentAggregatedList": { + "description": "Contains a list of NetworkAttachmentsScopedList.", + "id": "NetworkAttachmentAggregatedList", "properties": { - "instanceGroups": { - "description": "[Output Only] The list of instance groups that are contained in this scope.", - "items": { - "$ref": "InstanceGroup" + "id": { + "description": "[Output Only] Unique identifier for the resource; defined by the server.", + "type": "string" + }, + "items": { + "additionalProperties": { + "$ref": "NetworkAttachmentsScopedList", + "description": "Name of the scope containing this set of NetworkAttachments." }, - "type": "array" + "description": "A list of NetworkAttachmentsScopedList resources.", + "type": "object" + }, + "kind": { + "default": "compute#networkAttachmentAggregatedList", + "readOnly": true, + "type": "string" + }, + "nextPageToken": { + "description": "[Output Only] This token allows you to get the next page of results for\nlist requests. If the number of results is larger thanmaxResults, use the nextPageToken as a value for\nthe query parameter pageToken in the next list request.\nSubsequent list requests will have their own nextPageToken to\ncontinue paging through the results.", + "type": "string" + }, + "selfLink": { + "description": "[Output Only] Server-defined URL for this resource.", + "type": "string" }, "warning": { - "description": "[Output Only] An informational warning that replaces the list of instance groups when the list is empty.", + "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.", + "description": "[Output Only] A warning code, if applicable. For example, Compute\nEngine returns NO_RESULTS_ON_PAGE if there\nare no results in the response.", "enum": [ "CLEANUP_FAILED", "DEPRECATED_RESOURCE_USED", @@ -51774,6 +78240,7 @@ "NOT_CRITICAL_ERROR", "NO_RESULTS_ON_PAGE", "PARTIAL_SUCCESS", + "QUOTA_INFO_UNAVAILABLE", "REQUIRED_TOS_AGREEMENT", "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", "RESOURCE_NOT_DELETED", @@ -51810,46 +78277,48 @@ false, false, false, + false, false ], "enumDescriptions": [ - "Warning about failed cleanup of transient changes made by a failed operation.", + "Warning about failed cleanup of transient changes made by a failed\noperation.", "A link to a deprecated resource was created.", - "When deploying and at least one of the resources has a type marked as deprecated", + "When deploying and at least one of the resources has a type marked as\ndeprecated", "The user created a boot disk that is larger than image size.", - "When deploying and at least one of the resources has a type marked as experimental", + "When deploying and at least one of the resources has a type marked as\nexperimental", "Warning that is present in an external api call", - "Warning that value of a field has been overridden. Deprecated unused field.", + "Warning that value of a field has been overridden.\nDeprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", - "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is\nnot of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", - "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", + "Resource can't be retrieved due to list overhead quota exceed\nwhich captures the amount of resources filtered out by\nuser-defined list filter.", "A resource depends on a missing type", - "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's nextHopIp address is not assigned to an instance on the\nnetwork.", "The route's next hop instance cannot ip forward.", - "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not have an\nipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", - "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that is not on the\nsame network as the route.", "The route's next hop instance does not have a status of RUNNING.", - "Error which is not critical. We decided to continue the process despite the mentioned error.", + "Error which is not critical. We decided to continue the process despite\nthe mentioned error.", "No results are present on a particular list page.", "Success is reported, but some results may be missing due to errors", - "The user attempted to use a resource that requires a TOS they have not accepted.", + "Quota information is not available to client requests (e.g:\nregions.list).", + "The user attempted to use a resource that requires a TOS they have not\naccepted.", "Warning that a resource is in use.", - "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "One or more of the resources set to auto-delete could not be deleted\nbecause they were in use.", "When a resource schema validation is ignored.", - "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", + "Instance template used in instance group manager is valid as such, but\nits application does not make a lot of sense, because it allows only\nsingle instance in instance group.", "When undeclared properties in the schema are present", "A given scope cannot be reached." ], "type": "string" }, "data": { - "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", + "description": "[Output Only] Metadata about this warning in key:\nvalue format. For example:\n\n\"data\": [\n {\n \"key\": \"scope\",\n \"value\": \"zones/us-east1-d\"\n }", "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).", + "description": "[Output Only] A key that provides more detail on the warning being\nreturned. For example, for warnings where there are no results in a list\nrequest for a particular zone, this key might be scope and\nthe key value might be the zone name. Other examples might be a key\nindicating a deprecated resource and a suggested replacement, or a\nwarning about invalid network settings (for example, if an instance\nattempts to perform IP forwarding but is not enabled for IP forwarding).", "type": "string" }, "value": { @@ -51871,46 +78340,86 @@ }, "type": "object" }, - "InstanceGroupsSetNamedPortsRequest": { - "id": "InstanceGroupsSetNamedPortsRequest", + "NetworkAttachmentConnectedEndpoint": { + "description": "[Output Only] A connection connected to this network attachment.", + "id": "NetworkAttachmentConnectedEndpoint", "properties": { - "fingerprint": { - "description": "The fingerprint of the named ports information for this instance group. Use this optional property to prevent conflicts when multiple users change the named ports settings concurrently. Obtain the fingerprint with the instanceGroups.get method. Then, include the fingerprint in your request to ensure that you do not overwrite changes that were applied from another concurrent request. A request with an incorrect fingerprint will fail with error 412 conditionNotMet.", - "format": "byte", + "ipAddress": { + "description": "The IPv4 address assigned to the producer instance network interface.\nThis value will be a range in case of Serverless.", "type": "string" }, - "namedPorts": { - "description": "The list of named ports to set for this instance group.", + "ipv6Address": { + "description": "The IPv6 address assigned to the producer instance network interface.\nThis is only assigned when the stack types of both the instance network\ninterface and the consumer subnet are IPv4_IPv6.", + "type": "string" + }, + "projectIdOrNum": { + "description": "The project id or number of the interface to which the IP was assigned.", + "type": "string" + }, + "secondaryIpCidrRanges": { + "description": "Alias IP ranges from the same subnetwork.", "items": { - "$ref": "NamedPort" + "type": "string" }, "type": "array" + }, + "serviceClassId": { + "description": "The service class id of the producer service to which the IP was\nassigned.", + "type": "string" + }, + "status": { + "description": "The status of a connected endpoint to this network attachment.", + "enum": [ + "ACCEPTED", + "CLOSED", + "NEEDS_ATTENTION", + "PENDING", + "REJECTED", + "STATUS_UNSPECIFIED" + ], + "enumDescriptions": [ + "The consumer allows traffic from the producer to reach its VPC.", + "The consumer network attachment no longer exists.", + "The consumer needs to take further action before traffic can be served.", + "The consumer neither allows nor prohibits traffic\nfrom the producer to reach its VPC.", + "The consumer prohibits traffic from the producer to reach its VPC.", + "" + ], + "type": "string" + }, + "subnetwork": { + "description": "The subnetwork used to assign the IP to the producer\ninstance network interface.", + "type": "string" + }, + "subnetworkCidrRange": { + "description": "Output only. [Output Only] The CIDR range of the subnet from which the IPv4 internal\nIP was allocated from.", + "readOnly": true, + "type": "string" } }, "type": "object" }, - "InstanceList": { - "description": "Contains a list of instances.", - "id": "InstanceList", + "NetworkAttachmentList": { + "id": "NetworkAttachmentList", "properties": { "id": { "description": "[Output Only] Unique identifier for the resource; defined by the server.", "type": "string" }, "items": { - "description": "A list of Instance resources.", + "description": "A list of NetworkAttachment resources.", "items": { - "$ref": "Instance" + "$ref": "NetworkAttachment" }, "type": "array" }, "kind": { - "default": "compute#instanceList", - "description": "[Output Only] Type of resource. Always compute#instanceList for lists of Instance resources.", + "default": "compute#networkAttachmentList", + "readOnly": true, "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.", + "description": "[Output Only] This token allows you to get the next page of results for\nlist requests. If the number of results is larger thanmaxResults, use the nextPageToken as a value for\nthe query parameter pageToken in the next list request.\nSubsequent list requests will have their own nextPageToken to\ncontinue paging through the results.", "type": "string" }, "selfLink": { @@ -51921,7 +78430,7 @@ "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.", + "description": "[Output Only] A warning code, if applicable. For example, Compute\nEngine returns NO_RESULTS_ON_PAGE if there\nare no results in the response.", "enum": [ "CLEANUP_FAILED", "DEPRECATED_RESOURCE_USED", @@ -51944,6 +78453,7 @@ "NOT_CRITICAL_ERROR", "NO_RESULTS_ON_PAGE", "PARTIAL_SUCCESS", + "QUOTA_INFO_UNAVAILABLE", "REQUIRED_TOS_AGREEMENT", "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", "RESOURCE_NOT_DELETED", @@ -51980,46 +78490,48 @@ false, false, false, + false, false ], "enumDescriptions": [ - "Warning about failed cleanup of transient changes made by a failed operation.", + "Warning about failed cleanup of transient changes made by a failed\noperation.", "A link to a deprecated resource was created.", - "When deploying and at least one of the resources has a type marked as deprecated", + "When deploying and at least one of the resources has a type marked as\ndeprecated", "The user created a boot disk that is larger than image size.", - "When deploying and at least one of the resources has a type marked as experimental", + "When deploying and at least one of the resources has a type marked as\nexperimental", "Warning that is present in an external api call", - "Warning that value of a field has been overridden. Deprecated unused field.", + "Warning that value of a field has been overridden.\nDeprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", - "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is\nnot of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", - "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", + "Resource can't be retrieved due to list overhead quota exceed\nwhich captures the amount of resources filtered out by\nuser-defined list filter.", "A resource depends on a missing type", - "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's nextHopIp address is not assigned to an instance on the\nnetwork.", "The route's next hop instance cannot ip forward.", - "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not have an\nipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", - "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that is not on the\nsame network as the route.", "The route's next hop instance does not have a status of RUNNING.", - "Error which is not critical. We decided to continue the process despite the mentioned error.", + "Error which is not critical. We decided to continue the process despite\nthe mentioned error.", "No results are present on a particular list page.", "Success is reported, but some results may be missing due to errors", - "The user attempted to use a resource that requires a TOS they have not accepted.", + "Quota information is not available to client requests (e.g:\nregions.list).", + "The user attempted to use a resource that requires a TOS they have not\naccepted.", "Warning that a resource is in use.", - "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "One or more of the resources set to auto-delete could not be deleted\nbecause they were in use.", "When a resource schema validation is ignored.", - "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", + "Instance template used in instance group manager is valid as such, but\nits application does not make a lot of sense, because it allows only\nsingle instance in instance group.", "When undeclared properties in the schema are present", "A given scope cannot be reached." ], "type": "string" }, "data": { - "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", + "description": "[Output Only] Metadata about this warning in key:\nvalue format. For example:\n\n\"data\": [\n {\n \"key\": \"scope\",\n \"value\": \"zones/us-east1-d\"\n }", "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).", + "description": "[Output Only] A key that provides more detail on the warning being\nreturned. For example, for warnings where there are no results in a list\nrequest for a particular zone, this key might be scope and\nthe key value might be the zone name. Other examples might be a key\nindicating a deprecated resource and a suggested replacement, or a\nwarning about invalid network settings (for example, if an instance\nattempts to perform IP forwarding but is not enabled for IP forwarding).", "type": "string" }, "value": { @@ -52041,39 +78553,21 @@ }, "type": "object" }, - "InstanceListReferrers": { - "description": "Contains a list of instance referrers.", - "id": "InstanceListReferrers", + "NetworkAttachmentsScopedList": { + "id": "NetworkAttachmentsScopedList", "properties": { - "id": { - "description": "[Output Only] Unique identifier for the resource; defined by the server.", - "type": "string" - }, - "items": { - "description": "A list of Reference resources.", + "networkAttachments": { + "description": "A list of NetworkAttachments contained in this scope.", "items": { - "$ref": "Reference" + "$ref": "NetworkAttachment" }, "type": "array" }, - "kind": { - "default": "compute#instanceListReferrers", - "description": "[Output Only] Type of resource. Always compute#instanceListReferrers for lists of Instance referrers.", - "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" - }, - "selfLink": { - "description": "[Output Only] Server-defined URL for this resource.", - "type": "string" - }, "warning": { - "description": "[Output Only] Informational warning message.", + "description": "Informational warning which replaces the list of\nnetwork attachments when the list is empty.", "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.", + "description": "[Output Only] A warning code, if applicable. For example, Compute\nEngine returns NO_RESULTS_ON_PAGE if there\nare no results in the response.", "enum": [ "CLEANUP_FAILED", "DEPRECATED_RESOURCE_USED", @@ -52096,6 +78590,7 @@ "NOT_CRITICAL_ERROR", "NO_RESULTS_ON_PAGE", "PARTIAL_SUCCESS", + "QUOTA_INFO_UNAVAILABLE", "REQUIRED_TOS_AGREEMENT", "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", "RESOURCE_NOT_DELETED", @@ -52132,46 +78627,48 @@ false, false, false, + false, false ], "enumDescriptions": [ - "Warning about failed cleanup of transient changes made by a failed operation.", + "Warning about failed cleanup of transient changes made by a failed\noperation.", "A link to a deprecated resource was created.", - "When deploying and at least one of the resources has a type marked as deprecated", + "When deploying and at least one of the resources has a type marked as\ndeprecated", "The user created a boot disk that is larger than image size.", - "When deploying and at least one of the resources has a type marked as experimental", + "When deploying and at least one of the resources has a type marked as\nexperimental", "Warning that is present in an external api call", - "Warning that value of a field has been overridden. Deprecated unused field.", + "Warning that value of a field has been overridden.\nDeprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", - "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is\nnot of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", - "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", + "Resource can't be retrieved due to list overhead quota exceed\nwhich captures the amount of resources filtered out by\nuser-defined list filter.", "A resource depends on a missing type", - "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's nextHopIp address is not assigned to an instance on the\nnetwork.", "The route's next hop instance cannot ip forward.", - "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not have an\nipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", - "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that is not on the\nsame network as the route.", "The route's next hop instance does not have a status of RUNNING.", - "Error which is not critical. We decided to continue the process despite the mentioned error.", + "Error which is not critical. We decided to continue the process despite\nthe mentioned error.", "No results are present on a particular list page.", "Success is reported, but some results may be missing due to errors", - "The user attempted to use a resource that requires a TOS they have not accepted.", + "Quota information is not available to client requests (e.g:\nregions.list).", + "The user attempted to use a resource that requires a TOS they have not\naccepted.", "Warning that a resource is in use.", - "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "One or more of the resources set to auto-delete could not be deleted\nbecause they were in use.", "When a resource schema validation is ignored.", - "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", + "Instance template used in instance group manager is valid as such, but\nits application does not make a lot of sense, because it allows only\nsingle instance in instance group.", "When undeclared properties in the schema are present", "A given scope cannot be reached." ], "type": "string" }, "data": { - "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", + "description": "[Output Only] Metadata about this warning in key:\nvalue format. For example:\n\n\"data\": [\n {\n \"key\": \"scope\",\n \"value\": \"zones/us-east1-d\"\n }", "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).", + "description": "[Output Only] A key that provides more detail on the warning being\nreturned. For example, for warnings where there are no results in a list\nrequest for a particular zone, this key might be scope and\nthe key value might be the zone name. Other examples might be a key\nindicating a deprecated resource and a suggested replacement, or a\nwarning about invalid network settings (for example, if an instance\nattempts to perform IP forwarding but is not enabled for IP forwarding).", "type": "string" }, "value": { @@ -52193,413 +78690,109 @@ }, "type": "object" }, - "InstanceManagedByIgmError": { - "id": "InstanceManagedByIgmError", - "properties": { - "error": { - "$ref": "InstanceManagedByIgmErrorManagedInstanceError", - "description": "[Output Only] Contents of the error." - }, - "instanceActionDetails": { - "$ref": "InstanceManagedByIgmErrorInstanceActionDetails", - "description": "[Output Only] Details of the instance action that triggered this error. May be null, if the error was not caused by an action on an instance. This field is optional." - }, - "timestamp": { - "description": "[Output Only] The time that this error occurred. This value is in RFC3339 text format.", - "type": "string" - } - }, - "type": "object" - }, - "InstanceManagedByIgmErrorInstanceActionDetails": { - "id": "InstanceManagedByIgmErrorInstanceActionDetails", - "properties": { - "action": { - "description": "[Output Only] Action that managed instance group was executing on the instance when the error occurred. Possible values:", - "enum": [ - "ABANDONING", - "CREATING", - "CREATING_WITHOUT_RETRIES", - "DELETING", - "NONE", - "RECREATING", - "REFRESHING", - "RESTARTING", - "RESUMING", - "STARTING", - "STOPPING", - "SUSPENDING", - "VERIFYING" - ], - "enumDescriptions": [ - "The managed instance group is abandoning this instance. The instance will be removed from the instance group and from any target pools that are associated with this group.", - "The managed instance group is creating this instance. If the group fails to create this instance, it will try again until it is successful.", - "The managed instance group is attempting to create this instance only once. If the group fails to create this instance, it does not try again and the group's targetSize value is decreased.", - "The managed instance group is permanently deleting this instance.", - "The managed instance group has not scheduled any actions for this instance.", - "The managed instance group is recreating this instance.", - "The managed instance group is applying configuration changes to the instance without stopping it. For example, the group can update the target pool list for an instance without stopping that instance.", - "The managed instance group is restarting this instance.", - "The managed instance group is resuming this instance.", - "The managed instance group is starting this instance.", - "The managed instance group is stopping this instance.", - "The managed instance group is suspending this instance.", - "The managed instance group is verifying this already created instance. Verification happens every time the instance is (re)created or restarted and consists of: 1. Waiting until health check specified as part of this managed instance group's autohealing policy reports HEALTHY. Note: Applies only if autohealing policy has a health check specified 2. Waiting for addition verification steps performed as post-instance creation (subject to future extensions)." - ], - "type": "string" - }, - "instance": { - "description": "[Output Only] The URL of the instance. The URL can be set even if the instance has not yet been created.", - "type": "string" - }, - "version": { - "$ref": "ManagedInstanceVersion", - "description": "[Output Only] Version this instance was created from, or was being created from, but the creation failed. Corresponds to one of the versions that were set on the Instance Group Manager resource at the time this instance was being created." - } - }, - "type": "object" - }, - "InstanceManagedByIgmErrorManagedInstanceError": { - "id": "InstanceManagedByIgmErrorManagedInstanceError", - "properties": { - "code": { - "description": "[Output Only] Error code.", - "type": "string" - }, - "message": { - "description": "[Output Only] Error message.", - "type": "string" - } - }, - "type": "object" - }, - "InstanceMoveRequest": { - "id": "InstanceMoveRequest", + "NetworkEdgeSecurityService": { + "description": "Represents a Google Cloud Armor network edge security service resource.", + "id": "NetworkEdgeSecurityService", "properties": { - "destinationZone": { - "description": "The URL of the destination zone to move the instance. This can be a full or partial URL. For example, the following are all valid URLs to a zone: - https://www.googleapis.com/compute/v1/projects/project/zones/zone - projects/project/zones/zone - zones/zone ", - "type": "string" - }, - "targetInstance": { - "description": "The URL of the target instance to move. This can be a full or partial URL. For example, the following are all valid URLs to an instance: - https://www.googleapis.com/compute/v1/projects/project/zones/zone /instances/instance - projects/project/zones/zone/instances/instance - zones/zone/instances/instance ", + "creationTimestamp": { + "description": "Output only. [Output Only] Creation timestamp inRFC3339\ntext format.", + "readOnly": true, "type": "string" - } - }, - "type": "object" - }, - "InstanceParams": { - "description": "Additional instance params.", - "id": "InstanceParams", - "properties": { - "resourceManagerTags": { - "additionalProperties": { - "type": "string" - }, - "description": "Resource manager tags to be bound to the instance. Tag keys and values have the same definition as resource manager tags. Keys must be in the format `tagKeys/{tag_key_id}`, and values are in the format `tagValues/456`. The field is ignored (both PUT \u0026 PATCH) when empty.", - "type": "object" - } - }, - "type": "object" - }, - "InstanceProperties": { - "id": "InstanceProperties", - "properties": { - "advancedMachineFeatures": { - "$ref": "AdvancedMachineFeatures", - "description": "Controls for advanced machine-related behavior features. Note that for MachineImage, this is not supported yet." - }, - "canIpForward": { - "description": "Enables instances created based on these properties to send packets with source IP addresses other than their own and receive packets with destination IP addresses other than their own. If these instances will be used as an IP gateway or it will be set as the next-hop in a Route resource, specify true. If unsure, leave this set to false. See the Enable IP forwarding documentation for more information.", - "type": "boolean" - }, - "confidentialInstanceConfig": { - "$ref": "ConfidentialInstanceConfig", - "description": "Specifies the Confidential Instance options. Note that for MachineImage, this is not supported yet." }, "description": { - "description": "An optional text description for the instances that are created from these properties.", - "type": "string" - }, - "disks": { - "description": "An array of disks that are associated with the instances that are created from these properties.", - "items": { - "$ref": "AttachedDisk" - }, - "type": "array" - }, - "guestAccelerators": { - "description": "A list of guest accelerator cards' type and count to use for instances created from these properties.", - "items": { - "$ref": "AcceleratorConfig" - }, - "type": "array" - }, - "keyRevocationActionType": { - "description": "KeyRevocationActionType of the instance. Supported options are \"STOP\" and \"NONE\". The default value is \"NONE\" if it is not specified.", - "enum": [ - "KEY_REVOCATION_ACTION_TYPE_UNSPECIFIED", - "NONE", - "STOP" - ], - "enumDescriptions": [ - "Default value. This value is unused.", - "Indicates user chose no operation.", - "Indicates user chose to opt for VM shutdown on key revocation." - ], - "type": "string" - }, - "labels": { - "additionalProperties": { - "type": "string" - }, - "description": "Labels to apply to instances that are created from these properties.", - "type": "object" - }, - "machineType": { - "annotations": { - "required": [ - "compute.instanceTemplates.insert" - ] - }, - "description": "The machine type to use for instances that are created from these properties.", - "type": "string" - }, - "metadata": { - "$ref": "Metadata", - "description": "The metadata key/value pairs to assign to instances that are created from these properties. These pairs can consist of custom metadata or predefined keys. See Project and instance metadata for more information." - }, - "minCpuPlatform": { - "description": "Minimum cpu/platform to be used by instances. The instance may be scheduled on the specified or newer cpu/platform. Applicable values are the friendly names of CPU platforms, such as minCpuPlatform: \"Intel Haswell\" or minCpuPlatform: \"Intel Sandy Bridge\". For more information, read Specifying a Minimum CPU Platform.", - "type": "string" - }, - "networkInterfaces": { - "description": "An array of network access configurations for this interface.", - "items": { - "$ref": "NetworkInterface" - }, - "type": "array" - }, - "networkPerformanceConfig": { - "$ref": "NetworkPerformanceConfig", - "description": "Note that for MachineImage, this is not supported yet." - }, - "privateIpv6GoogleAccess": { - "description": "The private IPv6 google access type for VMs. If not specified, use INHERIT_FROM_SUBNETWORK as default. Note that for MachineImage, this is not supported yet.", - "enum": [ - "ENABLE_BIDIRECTIONAL_ACCESS_TO_GOOGLE", - "ENABLE_OUTBOUND_VM_ACCESS_TO_GOOGLE", - "INHERIT_FROM_SUBNETWORK" - ], - "enumDescriptions": [ - "Bidirectional private IPv6 access to/from Google services. If specified, the subnetwork who is attached to the instance's default network interface will be assigned an internal IPv6 prefix if it doesn't have before.", - "Outbound private IPv6 access from VMs in this subnet to Google services. If specified, the subnetwork who is attached to the instance's default network interface will be assigned an internal IPv6 prefix if it doesn't have before.", - "Each network interface inherits PrivateIpv6GoogleAccess from its subnetwork." - ], + "description": "An optional description of this resource. Provide this property when you\ncreate the resource.", "type": "string" }, - "reservationAffinity": { - "$ref": "ReservationAffinity", - "description": "Specifies the reservations that instances can consume from. Note that for MachineImage, this is not supported yet." - }, - "resourceManagerTags": { - "additionalProperties": { - "type": "string" - }, - "description": "Resource manager tags to be bound to the instance. Tag keys and values have the same definition as resource manager tags. Keys must be in the format `tagKeys/{tag_key_id}`, and values are in the format `tagValues/456`. The field is ignored (both PUT \u0026 PATCH) when empty.", - "type": "object" - }, - "resourcePolicies": { - "description": "Resource policies (names, not URLs) applied to instances created from these properties. Note that for MachineImage, this is not supported yet.", - "items": { - "type": "string" - }, - "type": "array" - }, - "scheduling": { - "$ref": "Scheduling", - "description": "Specifies the scheduling options for the instances that are created from these properties." - }, - "serviceAccounts": { - "description": "A list of service accounts with specified scopes. Access tokens for these service accounts are available to the instances that are created from these properties. Use metadata queries to obtain the access tokens for these instances.", - "items": { - "$ref": "ServiceAccount" - }, - "type": "array" - }, - "shieldedInstanceConfig": { - "$ref": "ShieldedInstanceConfig", - "description": "Note that for MachineImage, this is not supported yet." - }, - "tags": { - "$ref": "Tags", - "description": "A list of tags to apply to the instances that are created from these properties. The tags identify valid sources or targets for network firewalls. The setTags method can modify this list of tags. Each tag within the list must comply with RFC1035." - } - }, - "type": "object" - }, - "InstancePropertiesPatch": { - "description": "Represents the change that you want to make to the instance properties.", - "id": "InstancePropertiesPatch", - "properties": { - "labels": { - "additionalProperties": { - "type": "string" - }, - "description": "The label key-value pairs that you want to patch onto the instance.", - "type": "object" - }, - "metadata": { - "additionalProperties": { - "type": "string" - }, - "description": "The metadata key-value pairs that you want to patch onto the instance. For more information, see Project and instance metadata.", - "type": "object" - } - }, - "type": "object" - }, - "InstanceReference": { - "id": "InstanceReference", - "properties": { - "instance": { - "description": "The URL for a specific instance. @required compute.instancegroups.addInstances/removeInstances", - "type": "string" - } - }, - "type": "object" - }, - "InstanceSettings": { - "description": "Represents a Instance Settings resource. You can use instance settings to configure default settings for Compute Engine VM instances. For example, you can use it to configure default machine type of Compute Engine VM instances.", - "id": "InstanceSettings", - "properties": { "fingerprint": { - "description": "Specifies a fingerprint for instance settings, which is essentially a hash of the instance settings resource's contents and used for optimistic locking. The fingerprint is initially generated by Compute Engine and changes after every request to modify or update the instance settings resource. You must always provide an up-to-date fingerprint hash in order to update or change the resource, otherwise the request will fail with error 412 conditionNotMet. To see the latest fingerprint, make a get() request to retrieve the resource.", + "description": "Fingerprint of this resource. A hash of the contents stored in this object.\nThis field is used in optimistic locking. This field will be ignored when\ninserting a NetworkEdgeSecurityService. An up-to-date fingerprint must be\nprovided in order to update the NetworkEdgeSecurityService,\notherwise the request will fail with error412 conditionNotMet.\n\nTo see the latest fingerprint, make a get() request to\nretrieve a NetworkEdgeSecurityService.", "format": "byte", "type": "string" }, - "kind": { - "default": "compute#instanceSettings", - "description": "[Output Only] Type of the resource. Always compute#instance_settings for instance settings.", - "type": "string" - }, - "metadata": { - "$ref": "InstanceSettingsMetadata", - "description": "The metadata key/value pairs assigned to all the instances in the corresponding scope." - }, - "zone": { - "description": "[Output Only] URL of the zone where the resource resides You must specify this field as part of the HTTP request URL. It is not settable as a field in the request body.", - "type": "string" - } - }, - "type": "object" - }, - "InstanceSettingsMetadata": { - "id": "InstanceSettingsMetadata", - "properties": { - "items": { - "additionalProperties": { - "type": "string" - }, - "description": "A metadata key/value items map. The total size of all keys and values must be less than 512KB.", - "type": "object" - }, - "kind": { - "default": "compute#metadata", - "description": "[Output Only] Type of the resource. Always compute#metadata for metadata.", - "type": "string" - } - }, - "type": "object" - }, - "InstanceTemplate": { - "description": "Represents an Instance Template resource. Google Compute Engine has two Instance Template resources: * [Global](/compute/docs/reference/rest/v1/instanceTemplates) * [Regional](/compute/docs/reference/rest/v1/regionInstanceTemplates) You can reuse a global instance template in different regions whereas you can use a regional instance template in a specified region only. If you want to reduce cross-region dependency or achieve data residency, use a regional instance template. To create VMs, managed instance groups, and reservations, you can use either global or regional instance templates. For more information, read Instance Templates.", - "id": "InstanceTemplate", - "properties": { - "creationTimestamp": { - "description": "[Output Only] The creation timestamp for this instance template in RFC3339 text format.", - "type": "string" - }, - "description": { - "description": "An optional description of this resource. Provide this property when you create the resource.", - "type": "string" - }, "id": { - "description": "[Output Only] A unique identifier for this instance template. The server defines this identifier.", + "description": "Output only. [Output Only] The unique identifier for the resource. This identifier is\ndefined by the server.", "format": "uint64", + "readOnly": true, "type": "string" }, "kind": { - "default": "compute#instanceTemplate", - "description": "[Output Only] The resource type, which is always compute#instanceTemplate for instance templates.", + "default": "compute#networkEdgeSecurityService", + "description": "Output only. [Output only] Type of the resource. Alwayscompute#networkEdgeSecurityService for\nNetworkEdgeSecurityServices", + "readOnly": true, "type": "string" }, "name": { - "annotations": { - "required": [ - "compute.instanceTemplates.insert" - ] - }, - "description": "Name of the resource; provided by the client when the resource is created. The name must be 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters long and match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash.", + "description": "Name of the resource. Provided by the client when the resource is created.\nThe name must be 1-63 characters long, and comply withRFC1035.\nSpecifically, the name must be 1-63 characters long and match the regular\nexpression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first\ncharacter must be a lowercase letter, and all following characters must\nbe a dash, lowercase letter, or digit, except the last character, which\ncannot be a dash.", "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", "type": "string" }, - "properties": { - "$ref": "InstanceProperties", - "description": "The instance properties for this instance template." - }, "region": { - "description": "[Output Only] URL of the region where the instance template resides. Only applicable for regional resources.", + "description": "Output only. [Output Only] URL of the region where the resource resides. You must\nspecify this field as part of the HTTP request URL. It is not settable as a\nfield in the request body.", + "readOnly": true, "type": "string" }, - "selfLink": { - "description": "[Output Only] The URL for this instance template. The server defines this URL.", + "securityPolicy": { + "description": "The resource URL for the network edge security service associated with this\nnetwork edge security service.", "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: - https://www.googleapis.com/compute/v1/projects/project/zones/zone /instances/instance - projects/project/zones/zone/instances/instance ", + "selfLink": { + "description": "Output only. [Output Only] Server-defined URL for the resource.", + "readOnly": true, "type": "string" }, - "sourceInstanceParams": { - "$ref": "SourceInstanceParams", - "description": "The source instance params to use to create this instance template." + "selfLinkWithId": { + "description": "Output only. [Output Only] Server-defined URL for this resource with the resource id.", + "readOnly": true, + "type": "string" } }, "type": "object" }, - "InstanceTemplateAggregatedList": { - "description": "Contains a list of InstanceTemplatesScopedList.", - "id": "InstanceTemplateAggregatedList", + "NetworkEdgeSecurityServiceAggregatedList": { + "id": "NetworkEdgeSecurityServiceAggregatedList", "properties": { + "etag": { + "type": "string" + }, "id": { "description": "[Output Only] Unique identifier for the resource; defined by the server.", "type": "string" }, "items": { "additionalProperties": { - "$ref": "InstanceTemplatesScopedList", - "description": "The name of the scope that contains this set of instance templates." + "$ref": "NetworkEdgeSecurityServicesScopedList", + "description": "Name of the scope containing this set of security policies." }, - "description": "A list of InstanceTemplatesScopedList resources.", + "description": "A list of NetworkEdgeSecurityServicesScopedList resources.", "type": "object" }, "kind": { - "default": "compute#instanceTemplateAggregatedList", - "description": "Type of resource.", + "default": "compute#networkEdgeSecurityServiceAggregatedList", + "description": "Output only. [Output Only] Type of resource. Alwayscompute#networkEdgeSecurityServiceAggregatedList for lists of\nNetwork Edge Security Services.", + "readOnly": true, "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.", + "description": "[Output Only] This token allows you to get the next page of results for\nlist requests. If the number of results is larger thanmaxResults, use the nextPageToken as a value for\nthe query parameter pageToken in the next list request.\nSubsequent list requests will have their own nextPageToken to\ncontinue paging through the results.", "type": "string" }, "selfLink": { - "description": "[Output Only] Server-defined URL for this resource.", + "description": "Output only. [Output Only] Server-defined URL for this resource.", + "readOnly": true, "type": "string" }, + "unreachables": { + "description": "Output only. [Output Only] Unreachable resources.", + "items": { + "type": "string" + }, + "readOnly": true, + "type": "array" + }, "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.", + "description": "[Output Only] A warning code, if applicable. For example, Compute\nEngine returns NO_RESULTS_ON_PAGE if there\nare no results in the response.", "enum": [ "CLEANUP_FAILED", "DEPRECATED_RESOURCE_USED", @@ -52622,6 +78815,7 @@ "NOT_CRITICAL_ERROR", "NO_RESULTS_ON_PAGE", "PARTIAL_SUCCESS", + "QUOTA_INFO_UNAVAILABLE", "REQUIRED_TOS_AGREEMENT", "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", "RESOURCE_NOT_DELETED", @@ -52658,46 +78852,48 @@ false, false, false, + false, false ], "enumDescriptions": [ - "Warning about failed cleanup of transient changes made by a failed operation.", + "Warning about failed cleanup of transient changes made by a failed\noperation.", "A link to a deprecated resource was created.", - "When deploying and at least one of the resources has a type marked as deprecated", + "When deploying and at least one of the resources has a type marked as\ndeprecated", "The user created a boot disk that is larger than image size.", - "When deploying and at least one of the resources has a type marked as experimental", + "When deploying and at least one of the resources has a type marked as\nexperimental", "Warning that is present in an external api call", - "Warning that value of a field has been overridden. Deprecated unused field.", + "Warning that value of a field has been overridden.\nDeprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", - "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is\nnot of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", - "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", + "Resource can't be retrieved due to list overhead quota exceed\nwhich captures the amount of resources filtered out by\nuser-defined list filter.", "A resource depends on a missing type", - "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's nextHopIp address is not assigned to an instance on the\nnetwork.", "The route's next hop instance cannot ip forward.", - "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not have an\nipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", - "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that is not on the\nsame network as the route.", "The route's next hop instance does not have a status of RUNNING.", - "Error which is not critical. We decided to continue the process despite the mentioned error.", + "Error which is not critical. We decided to continue the process despite\nthe mentioned error.", "No results are present on a particular list page.", "Success is reported, but some results may be missing due to errors", - "The user attempted to use a resource that requires a TOS they have not accepted.", + "Quota information is not available to client requests (e.g:\nregions.list).", + "The user attempted to use a resource that requires a TOS they have not\naccepted.", "Warning that a resource is in use.", - "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "One or more of the resources set to auto-delete could not be deleted\nbecause they were in use.", "When a resource schema validation is ignored.", - "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", + "Instance template used in instance group manager is valid as such, but\nits application does not make a lot of sense, because it allows only\nsingle instance in instance group.", "When undeclared properties in the schema are present", "A given scope cannot be reached." ], "type": "string" }, "data": { - "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", + "description": "[Output Only] Metadata about this warning in key:\nvalue format. For example:\n\n\"data\": [\n {\n \"key\": \"scope\",\n \"value\": \"zones/us-east1-d\"\n }", "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).", + "description": "[Output Only] A key that provides more detail on the warning being\nreturned. For example, for warnings where there are no results in a list\nrequest for a particular zone, this key might be scope and\nthe key value might be the zone name. Other examples might be a key\nindicating a deprecated resource and a suggested replacement, or a\nwarning about invalid network settings (for example, if an instance\nattempts to perform IP forwarding but is not enabled for IP forwarding).", "type": "string" }, "value": { @@ -52718,40 +78914,22 @@ } }, "type": "object" - }, - "InstanceTemplateList": { - "description": "A list of instance templates.", - "id": "InstanceTemplateList", - "properties": { - "id": { - "description": "[Output Only] Unique identifier for the resource; defined by the server.", - "type": "string" - }, - "items": { - "description": "A list of InstanceTemplate resources.", - "items": { - "$ref": "InstanceTemplate" - }, - "type": "array" - }, - "kind": { - "default": "compute#instanceTemplateList", - "description": "[Output Only] The resource type, which is always compute#instanceTemplatesListResponse for instance template lists.", - "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" - }, - "selfLink": { - "description": "[Output Only] Server-defined URL for this resource.", - "type": "string" + }, + "NetworkEdgeSecurityServicesScopedList": { + "id": "NetworkEdgeSecurityServicesScopedList", + "properties": { + "networkEdgeSecurityServices": { + "description": "A list of NetworkEdgeSecurityServices contained in this scope.", + "items": { + "$ref": "NetworkEdgeSecurityService" + }, + "type": "array" }, "warning": { - "description": "[Output Only] Informational warning message.", + "description": "Informational warning which replaces the list of\nsecurity policies when the list is empty.", "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.", + "description": "[Output Only] A warning code, if applicable. For example, Compute\nEngine returns NO_RESULTS_ON_PAGE if there\nare no results in the response.", "enum": [ "CLEANUP_FAILED", "DEPRECATED_RESOURCE_USED", @@ -52774,6 +78952,7 @@ "NOT_CRITICAL_ERROR", "NO_RESULTS_ON_PAGE", "PARTIAL_SUCCESS", + "QUOTA_INFO_UNAVAILABLE", "REQUIRED_TOS_AGREEMENT", "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", "RESOURCE_NOT_DELETED", @@ -52810,46 +78989,48 @@ false, false, false, + false, false ], "enumDescriptions": [ - "Warning about failed cleanup of transient changes made by a failed operation.", + "Warning about failed cleanup of transient changes made by a failed\noperation.", "A link to a deprecated resource was created.", - "When deploying and at least one of the resources has a type marked as deprecated", + "When deploying and at least one of the resources has a type marked as\ndeprecated", "The user created a boot disk that is larger than image size.", - "When deploying and at least one of the resources has a type marked as experimental", + "When deploying and at least one of the resources has a type marked as\nexperimental", "Warning that is present in an external api call", - "Warning that value of a field has been overridden. Deprecated unused field.", + "Warning that value of a field has been overridden.\nDeprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", - "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is\nnot of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", - "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", + "Resource can't be retrieved due to list overhead quota exceed\nwhich captures the amount of resources filtered out by\nuser-defined list filter.", "A resource depends on a missing type", - "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's nextHopIp address is not assigned to an instance on the\nnetwork.", "The route's next hop instance cannot ip forward.", - "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not have an\nipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", - "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that is not on the\nsame network as the route.", "The route's next hop instance does not have a status of RUNNING.", - "Error which is not critical. We decided to continue the process despite the mentioned error.", + "Error which is not critical. We decided to continue the process despite\nthe mentioned error.", "No results are present on a particular list page.", "Success is reported, but some results may be missing due to errors", - "The user attempted to use a resource that requires a TOS they have not accepted.", + "Quota information is not available to client requests (e.g:\nregions.list).", + "The user attempted to use a resource that requires a TOS they have not\naccepted.", "Warning that a resource is in use.", - "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "One or more of the resources set to auto-delete could not be deleted\nbecause they were in use.", "When a resource schema validation is ignored.", - "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", + "Instance template used in instance group manager is valid as such, but\nits application does not make a lot of sense, because it allows only\nsingle instance in instance group.", "When undeclared properties in the schema are present", "A given scope cannot be reached." ], "type": "string" }, "data": { - "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", + "description": "[Output Only] Metadata about this warning in key:\nvalue format. For example:\n\n\"data\": [\n {\n \"key\": \"scope\",\n \"value\": \"zones/us-east1-d\"\n }", "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).", + "description": "[Output Only] A key that provides more detail on the warning being\nreturned. For example, for warnings where there are no results in a list\nrequest for a particular zone, this key might be scope and\nthe key value might be the zone name. Other examples might be a key\nindicating a deprecated resource and a suggested replacement, or a\nwarning about invalid network settings (for example, if an instance\nattempts to perform IP forwarding but is not enabled for IP forwarding).", "type": "string" }, "value": { @@ -52871,21 +79052,206 @@ }, "type": "object" }, - "InstanceTemplatesScopedList": { - "id": "InstanceTemplatesScopedList", + "NetworkEndpoint": { + "description": "The network endpoint.", + "id": "NetworkEndpoint", "properties": { - "instanceTemplates": { - "description": "[Output Only] A list of instance templates that are contained within the specified project and zone.", + "annotations": { + "additionalProperties": { + "type": "string" + }, + "description": "Optional metadata defined as annotations on the network endpoint.", + "type": "object" + }, + "clientDestinationPort": { + "description": "Represents the port number to which PSC consumer sends packets.\n\nOptional. Only valid for network endpoint groups created withGCE_VM_IP_PORTMAP endpoint type.", + "format": "int32", + "type": "integer" + }, + "fqdn": { + "description": "Optional fully qualified domain name of network endpoint. This can only be\nspecified when NetworkEndpointGroup.network_endpoint_type isNON_GCP_FQDN_PORT.", + "type": "string" + }, + "instance": { + "description": "The name or a URL of VM instance of this network endpoint.\nOptional, the field presence depends on the network endpoint type. The\nfield is required for network endpoints of type GCE_VM_IP andGCE_VM_IP_PORT.\n\nThe instance must be in the same zone of network endpoint group (for zonal\nNEGs) or in the zone within the region of the NEG (for regional NEGs).\nIf the ipAddress is specified, it must belongs to the VM\ninstance.\n\nThe name must be 1-63 characters long, and comply withRFC1035\nor be a valid URL pointing to an existing instance.", + "type": "string" + }, + "ipAddress": { + "description": "Optional IPv4 address of network endpoint. The IP address must belong to a\nVM in Compute Engine (either the primary IP or as part of an aliased IP\nrange). If the IP address is not specified, then the primary IP address for\nthe VM instance in the network that the network endpoint group belongs to\nwill be used.\n\nThis field is redundant and need not be set for network endpoints of typeGCE_VM_IP. If set, it must be set to the primary internal IP\naddress of the attached VM instance that matches the subnetwork of the NEG.\nThe primary internal IP address from any NIC of a multi-NIC VM instance can\nbe added to a NEG as long as it matches the NEG subnetwork.", + "type": "string" + }, + "ipv6Address": { + "description": "Optional IPv6 address of network endpoint.", + "type": "string" + }, + "port": { + "description": "Optional port number of network endpoint. If not specified, the\ndefaultPort for the network endpoint group will be used.\n\nThis field can not be set for network endpoints of typeGCE_VM_IP.", + "format": "int32", + "type": "integer" + } + }, + "type": "object" + }, + "NetworkEndpointGroup": { + "description": "Represents a collection of network endpoints.\n\nA network endpoint group (NEG) defines how a set of endpoints should be\nreached, whether they are reachable, and where they are located.\nFor more information about using NEGs for different use cases, seeNetwork endpoint groups overview.\n\nNote: Use the following APIs to manage network endpoint groups:\n \n - \n To manage NEGs with zonal scope (such as zonal NEGs, hybrid connectivity\n NEGs): zonal\n API\n - \n To manage NEGs with regional scope (such as regional internet NEGs,\n serverless NEGs, Private Service Connect NEGs): regional\n API\n - \n To manage NEGs with global scope (such as global internet NEGs):global\n API", + "id": "NetworkEndpointGroup", + "properties": { + "annotations": { + "additionalProperties": { + "type": "string" + }, + "description": "Optional. Metadata defined as annotations on the network endpoint group.", + "type": "object" + }, + "appEngine": { + "$ref": "NetworkEndpointGroupAppEngine", + "description": "Optional. Only valid when networkEndpointType isSERVERLESS. Only one of cloudRun,appEngine or cloudFunction may be set." + }, + "cloudFunction": { + "$ref": "NetworkEndpointGroupCloudFunction", + "description": "Optional. Only valid when networkEndpointType isSERVERLESS. Only one of cloudRun,appEngine or cloudFunction may be set." + }, + "cloudRun": { + "$ref": "NetworkEndpointGroupCloudRun", + "description": "Optional. Only valid when networkEndpointType isSERVERLESS. Only one of cloudRun,appEngine or cloudFunction may be set." + }, + "creationTimestamp": { + "description": "Output only. [Output Only] Creation timestamp inRFC3339\ntext format.", + "readOnly": true, + "type": "string" + }, + "defaultPort": { + "description": "The default port used if the port number is not specified in the network\nendpoint.\n\nOptional. If the network endpoint type is either GCE_VM_IP,SERVERLESS or PRIVATE_SERVICE_CONNECT, this\nfield must not be specified.", + "format": "int32", + "type": "integer" + }, + "description": { + "description": "An optional description of this resource. Provide this property when you\ncreate the resource.", + "type": "string" + }, + "id": { + "description": "Output only. [Output Only] The unique identifier for the resource. This identifier is\ndefined by the server.", + "format": "uint64", + "readOnly": true, + "type": "string" + }, + "kind": { + "default": "compute#networkEndpointGroup", + "description": "Output only. [Output Only] Type of the resource. Alwayscompute#networkEndpointGroup for network endpoint group.", + "readOnly": true, + "type": "string" + }, + "name": { + "description": "Name of the resource; provided by the client when the resource is created.\nThe name must be 1-63 characters long, and comply withRFC1035.\nSpecifically, the name must be 1-63 characters long and match the regular\nexpression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first\ncharacter must be a lowercase letter, and all following characters must be\na dash, lowercase letter, or digit, except the last character, which cannot\nbe a dash.", + "type": "string" + }, + "network": { + "description": "The URL of the network to which all network endpoints in the NEG belong.\nFor networkEndpointType GCE_VM_IP_PORT,GCE_VM_IP_PORTMAP or NON_GCP_PRIVATE_IP_PORT,\nif this field is not specified, a default network will be used.\nThis field cannot be set for NEGs with networkEndpointType set toSERVERLESS or PRIVATE_SERVICE_CONNECT and for\nglobal NEGs.\nFor all other network endpoint types, this field is required.", + "type": "string" + }, + "networkEndpointType": { + "description": "Type of network endpoints in this network endpoint group. Can be one ofGCE_VM_IP, GCE_VM_IP_PORT,NON_GCP_PRIVATE_IP_PORT, INTERNET_FQDN_PORT,INTERNET_IP_PORT, SERVERLESS,PRIVATE_SERVICE_CONNECT, GCE_VM_IP_PORTMAP.", + "enum": [ + "GCE_VM_IP", + "GCE_VM_IP_PORT", + "GCE_VM_IP_PORTMAP", + "INTERNET_FQDN_PORT", + "INTERNET_IP_PORT", + "NON_GCP_PRIVATE_IP_PORT", + "PRIVATE_SERVICE_CONNECT", + "SERVERLESS" + ], + "enumDescriptions": [ + "The network endpoint is represented by an IP address.", + "The network endpoint is represented by IP address and port pair.", + "The network endpoint is represented by an IP, Port and Client Destination\nPort.", + "The network endpoint is represented by fully qualified domain name and\nport.", + "The network endpoint is represented by an internet IP address and port.", + "The network endpoint is represented by an IP address and port. The\nendpoint belongs to a VM or pod running in a customer's on-premises.", + "The network endpoint is either public Google APIs or\nservices exposed by other GCP Project with a Service Attachment.\nThe connection is set up by private service connect", + "The network endpoint is handled by specified serverless infrastructure." + ], + "type": "string" + }, + "pscData": { + "$ref": "NetworkEndpointGroupPscData", + "description": "Optional. Only valid when networkEndpointType isPRIVATE_SERVICE_CONNECT." + }, + "pscTargetService": { + "description": "The target service url used to set up private service connection to\na Google API or a PSC Producer Service Attachment.\nAn example value is: asia-northeast3-cloudkms.googleapis.com.\n\nOptional. Only valid when networkEndpointType isPRIVATE_SERVICE_CONNECT.", + "type": "string" + }, + "region": { + "description": "Output only. [Output Only] The URL of theregion\nwhere the network endpoint group is located.", + "readOnly": true, + "type": "string" + }, + "selfLink": { + "description": "Output only. [Output Only] Server-defined URL for the resource.", + "readOnly": true, + "type": "string" + }, + "size": { + "description": "Output only. [Output only] Number of network endpoints in the network endpoint group.", + "format": "int32", + "readOnly": true, + "type": "integer" + }, + "subnetwork": { + "description": "Optional URL of the subnetwork to which all network endpoints in the NEG\nbelong.", + "type": "string" + }, + "zone": { + "description": "Output only. [Output Only] The URL of thezone\nwhere the network endpoint group is located.", + "readOnly": true, + "type": "string" + } + }, + "type": "object" + }, + "NetworkEndpointGroupAggregatedList": { + "id": "NetworkEndpointGroupAggregatedList", + "properties": { + "id": { + "description": "[Output Only] Unique identifier for the resource; defined by the server.", + "type": "string" + }, + "items": { + "additionalProperties": { + "$ref": "NetworkEndpointGroupsScopedList", + "description": "The name of the scope that contains this set of network endpoint groups." + }, + "description": "A list of NetworkEndpointGroupsScopedList resources.", + "type": "object" + }, + "kind": { + "default": "compute#networkEndpointGroupAggregatedList", + "description": "Output only. [Output Only] The resource type, which is alwayscompute#networkEndpointGroupAggregatedList for aggregated\nlists of network endpoint groups.", + "readOnly": true, + "type": "string" + }, + "nextPageToken": { + "description": "[Output Only] This token allows you to get the next page of results for\nlist requests. If the number of results is larger thanmaxResults, use the nextPageToken as a value for\nthe query parameter pageToken in the next list request.\nSubsequent list requests will have their own nextPageToken to\ncontinue paging through the results.", + "type": "string" + }, + "selfLink": { + "description": "Output only. [Output Only] Server-defined URL for this resource.", + "readOnly": true, + "type": "string" + }, + "unreachables": { + "description": "Output only. [Output Only] Unreachable resources.", "items": { - "$ref": "InstanceTemplate" + "type": "string" }, + "readOnly": true, "type": "array" }, "warning": { - "description": "[Output Only] An informational warning that replaces the list of instance templates when the list is empty.", + "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.", + "description": "[Output Only] A warning code, if applicable. For example, Compute\nEngine returns NO_RESULTS_ON_PAGE if there\nare no results in the response.", "enum": [ "CLEANUP_FAILED", "DEPRECATED_RESOURCE_USED", @@ -52908,6 +79274,7 @@ "NOT_CRITICAL_ERROR", "NO_RESULTS_ON_PAGE", "PARTIAL_SUCCESS", + "QUOTA_INFO_UNAVAILABLE", "REQUIRED_TOS_AGREEMENT", "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", "RESOURCE_NOT_DELETED", @@ -52944,46 +79311,48 @@ false, false, false, + false, false ], "enumDescriptions": [ - "Warning about failed cleanup of transient changes made by a failed operation.", + "Warning about failed cleanup of transient changes made by a failed\noperation.", "A link to a deprecated resource was created.", - "When deploying and at least one of the resources has a type marked as deprecated", + "When deploying and at least one of the resources has a type marked as\ndeprecated", "The user created a boot disk that is larger than image size.", - "When deploying and at least one of the resources has a type marked as experimental", + "When deploying and at least one of the resources has a type marked as\nexperimental", "Warning that is present in an external api call", - "Warning that value of a field has been overridden. Deprecated unused field.", + "Warning that value of a field has been overridden.\nDeprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", - "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is\nnot of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", - "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", + "Resource can't be retrieved due to list overhead quota exceed\nwhich captures the amount of resources filtered out by\nuser-defined list filter.", "A resource depends on a missing type", - "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's nextHopIp address is not assigned to an instance on the\nnetwork.", "The route's next hop instance cannot ip forward.", - "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not have an\nipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", - "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that is not on the\nsame network as the route.", "The route's next hop instance does not have a status of RUNNING.", - "Error which is not critical. We decided to continue the process despite the mentioned error.", + "Error which is not critical. We decided to continue the process despite\nthe mentioned error.", "No results are present on a particular list page.", "Success is reported, but some results may be missing due to errors", - "The user attempted to use a resource that requires a TOS they have not accepted.", + "Quota information is not available to client requests (e.g:\nregions.list).", + "The user attempted to use a resource that requires a TOS they have not\naccepted.", "Warning that a resource is in use.", - "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "One or more of the resources set to auto-delete could not be deleted\nbecause they were in use.", "When a resource schema validation is ignored.", - "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", + "Instance template used in instance group manager is valid as such, but\nits application does not make a lot of sense, because it allows only\nsingle instance in instance group.", "When undeclared properties in the schema are present", "A given scope cannot be reached." ], "type": "string" }, "data": { - "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", + "description": "[Output Only] Metadata about this warning in key:\nvalue format. For example:\n\n\"data\": [\n {\n \"key\": \"scope\",\n \"value\": \"zones/us-east1-d\"\n }", "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).", + "description": "[Output Only] A key that provides more detail on the warning being\nreturned. For example, for warnings where there are no results in a list\nrequest for a particular zone, this key might be scope and\nthe key value might be the zone name. Other examples might be a key\nindicating a deprecated resource and a suggested replacement, or a\nwarning about invalid network settings (for example, if an instance\nattempts to perform IP forwarding but is not enabled for IP forwarding).", "type": "string" }, "value": { @@ -53005,167 +79374,93 @@ }, "type": "object" }, - "InstanceWithNamedPorts": { - "id": "InstanceWithNamedPorts", + "NetworkEndpointGroupAppEngine": { + "description": "Configuration for an App Engine network endpoint group (NEG).\nThe service is optional, may be provided explicitly or in the\nURL mask. The version is optional and can only be provided\nexplicitly or in the URL mask when service is present.\n\nNote: App Engine service must be in the same project and located in the\nsame region as the Serverless NEG.", + "id": "NetworkEndpointGroupAppEngine", "properties": { - "instance": { - "description": "[Output Only] The URL of the instance.", + "service": { + "description": "Optional serving service.\n\nThe service name is case-sensitive and must be 1-63\ncharacters long.\n\nExample value: default, my-service.", "type": "string" }, - "namedPorts": { - "description": "[Output Only] The named ports that belong to this instance group.", - "items": { - "$ref": "NamedPort" - }, - "type": "array" + "urlMask": { + "description": "An URL\nmask is one of the main components of the Cloud Function.\n\nA template to parse service and version fields\nfrom a request URL. URL mask allows for routing to multiple App Engine\nservices without having to create multiple Network Endpoint Groups and\nbackend services.\n\nFor example, the request URLsfoo1-dot-appname.appspot.com/v1 andfoo1-dot-appname.appspot.com/v2 can be backed by the same\nServerless NEG with URL mask\u003cservice\u003e-dot-appname.appspot.com/\u003cversion\u003e.\nThe URL mask will parse them to { service = \"foo1\", version = \"v1\"\n} and { service = \"foo1\", version = \"v2\" }\nrespectively.", + "type": "string" }, - "status": { - "description": "[Output Only] The status of the instance.", - "enum": [ - "DEPROVISIONING", - "PROVISIONING", - "REPAIRING", - "RUNNING", - "STAGING", - "STOPPED", - "STOPPING", - "SUSPENDED", - "SUSPENDING", - "TERMINATED" - ], - "enumDescriptions": [ - "The instance is halted and we are performing tear down tasks like network deprogramming, releasing quota, IP, tearing down disks etc.", - "Resources are being allocated for the instance.", - "The instance is in repair.", - "The instance is running.", - "All required resources have been allocated and the instance is being started.", - "The instance has stopped successfully.", - "The instance is currently stopping (either being deleted or killed).", - "The instance has suspended.", - "The instance is suspending.", - "The instance has stopped (either by explicit action or underlying failure)." - ], + "version": { + "description": "Optional serving version.\n\nThe version name is case-sensitive and must be 1-100\ncharacters long.\n\nExample value: v1, v2.", "type": "string" } }, "type": "object" }, - "InstancesAddResourcePoliciesRequest": { - "id": "InstancesAddResourcePoliciesRequest", - "properties": { - "resourcePolicies": { - "description": "Resource policies to be added to this instance.", - "items": { - "type": "string" - }, - "type": "array" - } - }, - "type": "object" - }, - "InstancesBulkInsertOperationMetadata": { - "id": "InstancesBulkInsertOperationMetadata", + "NetworkEndpointGroupCloudFunction": { + "description": "Configuration for a Cloud Function network endpoint group (NEG).\nThe function must be provided explicitly or in the URL mask.\n\nNote: Cloud Function must be in the same project and located in the same\nregion as the Serverless NEG.", + "id": "NetworkEndpointGroupCloudFunction", "properties": { - "perLocationStatus": { - "additionalProperties": { - "$ref": "BulkInsertOperationStatus" - }, - "description": "Status information per location (location name is key). Example key: zones/us-central1-a", - "type": "object" + "function": { + "description": "A user-defined name of the Cloud Function.\n\nThe function name is case-sensitive and must be 1-63\ncharacters long.\n\nExample value: func1.", + "type": "string" + }, + "urlMask": { + "description": "An URL\nmask is one of the main components of the Cloud Function.\n\nA template to parse function field from a request URL. URL\nmask allows for routing to multiple Cloud Functions without having to\ncreate multiple Network Endpoint Groups and backend services.\n\nFor example, request URLs mydomain.com/function1 andmydomain.com/function2 can be backed by the same\nServerless NEG with URL mask /\u003cfunction\u003e. The URL\nmask will parse them to { function = \"function1\" } and{ function = \"function2\" } respectively.", + "type": "string" } }, "type": "object" }, - "InstancesGetEffectiveFirewallsResponse": { - "id": "InstancesGetEffectiveFirewallsResponse", + "NetworkEndpointGroupCloudRun": { + "description": "Configuration for a Cloud Run network endpoint group (NEG).\nThe service must be provided explicitly or in the URL mask.\nThe tag is optional, may be provided explicitly or in the URL\nmask.\n\nNote: Cloud Run service must be in the same project and located in the same\nregion as the Serverless NEG.", + "id": "NetworkEndpointGroupCloudRun", "properties": { - "firewallPolicys": { - "description": "Effective firewalls from firewall policies.", - "items": { - "$ref": "InstancesGetEffectiveFirewallsResponseEffectiveFirewallPolicy" - }, - "type": "array" + "service": { + "description": "Cloud Run service is the main resource of Cloud Run.\n\nThe service must be 1-63 characters long, and comply withRFC1035.\n\nExample value: \"run-service\".", + "type": "string" }, - "firewalls": { - "description": "Effective firewalls on the instance.", - "items": { - "$ref": "Firewall" - }, - "type": "array" + "tag": { + "description": "Optional Cloud Run tag represents the \"named-revision\" to provide additional\nfine-grained traffic routing information.\n\nThe tag must be 1-63 characters long, and comply withRFC1035.\n\nExample value: \"revision-0010\".", + "type": "string" + }, + "urlMask": { + "description": "An URL\nmask is one of the main components of the Cloud Function.\n\nA template to parse \u003cservice\u003e and\u003ctag\u003e fields from a request URL. URL mask allows for\nrouting to multiple Run services without having to create multiple\nnetwork endpoint groups and backend services.\n\nFor example, request URLs foo1.domain.com/bar1 andfoo1.domain.com/bar2 can be backed by the same Serverless\nNetwork Endpoint Group (NEG) with URL mask\u003ctag\u003e.domain.com/\u003cservice\u003e. The URL mask will\nparse them to { service=\"bar1\", tag=\"foo1\" } and {\nservice=\"bar2\", tag=\"foo2\" } respectively.", + "type": "string" } }, "type": "object" }, - "InstancesGetEffectiveFirewallsResponseEffectiveFirewallPolicy": { - "id": "InstancesGetEffectiveFirewallsResponseEffectiveFirewallPolicy", + "NetworkEndpointGroupList": { + "id": "NetworkEndpointGroupList", "properties": { - "displayName": { - "deprecated": true, - "description": "[Output Only] Deprecated, please use short name instead. The display name of the firewall policy.", - "type": "string" - }, - "name": { - "description": "[Output Only] The name of the firewall policy.", + "id": { + "description": "[Output Only] Unique identifier for the resource; defined by the server.", "type": "string" }, - "rules": { - "description": "The rules that apply to the network.", + "items": { + "description": "A list of NetworkEndpointGroup resources.", "items": { - "$ref": "FirewallPolicyRule" + "$ref": "NetworkEndpointGroup" }, "type": "array" }, - "shortName": { - "description": "[Output Only] The short name of the firewall policy.", + "kind": { + "default": "compute#networkEndpointGroupList", + "description": "Output only. [Output Only] The resource type, which is alwayscompute#networkEndpointGroupList for network endpoint group\nlists.", + "readOnly": true, "type": "string" }, - "type": { - "description": "[Output Only] The type of the firewall policy. Can be one of HIERARCHY, NETWORK, NETWORK_REGIONAL, SYSTEM_GLOBAL, SYSTEM_REGIONAL.", - "enum": [ - "HIERARCHY", - "NETWORK", - "NETWORK_REGIONAL", - "UNSPECIFIED" - ], - "enumDescriptions": [ - "", - "", - "", - "" - ], + "nextPageToken": { + "description": "[Output Only] This token allows you to get the next page of results for\nlist requests. If the number of results is larger thanmaxResults, use the nextPageToken as a value for\nthe query parameter pageToken in the next list request.\nSubsequent list requests will have their own nextPageToken to\ncontinue paging through the results.", + "type": "string" + }, + "selfLink": { + "description": "Output only. [Output Only] Server-defined URL for this resource.", + "readOnly": true, "type": "string" - } - }, - "type": "object" - }, - "InstancesRemoveResourcePoliciesRequest": { - "id": "InstancesRemoveResourcePoliciesRequest", - "properties": { - "resourcePolicies": { - "description": "Resource policies to be removed from this instance.", - "items": { - "type": "string" - }, - "type": "array" - } - }, - "type": "object" - }, - "InstancesScopedList": { - "id": "InstancesScopedList", - "properties": { - "instances": { - "description": "[Output Only] A list of instances contained in this scope.", - "items": { - "$ref": "Instance" - }, - "type": "array" }, "warning": { - "description": "[Output Only] Informational warning which replaces the list of instances when the list is empty.", + "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.", + "description": "[Output Only] A warning code, if applicable. For example, Compute\nEngine returns NO_RESULTS_ON_PAGE if there\nare no results in the response.", "enum": [ "CLEANUP_FAILED", "DEPRECATED_RESOURCE_USED", @@ -53188,6 +79483,7 @@ "NOT_CRITICAL_ERROR", "NO_RESULTS_ON_PAGE", "PARTIAL_SUCCESS", + "QUOTA_INFO_UNAVAILABLE", "REQUIRED_TOS_AGREEMENT", "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", "RESOURCE_NOT_DELETED", @@ -53224,46 +79520,48 @@ false, false, false, + false, false ], "enumDescriptions": [ - "Warning about failed cleanup of transient changes made by a failed operation.", + "Warning about failed cleanup of transient changes made by a failed\noperation.", "A link to a deprecated resource was created.", - "When deploying and at least one of the resources has a type marked as deprecated", + "When deploying and at least one of the resources has a type marked as\ndeprecated", "The user created a boot disk that is larger than image size.", - "When deploying and at least one of the resources has a type marked as experimental", + "When deploying and at least one of the resources has a type marked as\nexperimental", "Warning that is present in an external api call", - "Warning that value of a field has been overridden. Deprecated unused field.", + "Warning that value of a field has been overridden.\nDeprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", - "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is\nnot of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", - "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", + "Resource can't be retrieved due to list overhead quota exceed\nwhich captures the amount of resources filtered out by\nuser-defined list filter.", "A resource depends on a missing type", - "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's nextHopIp address is not assigned to an instance on the\nnetwork.", "The route's next hop instance cannot ip forward.", - "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not have an\nipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", - "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that is not on the\nsame network as the route.", "The route's next hop instance does not have a status of RUNNING.", - "Error which is not critical. We decided to continue the process despite the mentioned error.", + "Error which is not critical. We decided to continue the process despite\nthe mentioned error.", "No results are present on a particular list page.", "Success is reported, but some results may be missing due to errors", - "The user attempted to use a resource that requires a TOS they have not accepted.", + "Quota information is not available to client requests (e.g:\nregions.list).", + "The user attempted to use a resource that requires a TOS they have not\naccepted.", "Warning that a resource is in use.", - "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "One or more of the resources set to auto-delete could not be deleted\nbecause they were in use.", "When a resource schema validation is ignored.", - "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", + "Instance template used in instance group manager is valid as such, but\nits application does not make a lot of sense, because it allows only\nsingle instance in instance group.", "When undeclared properties in the schema are present", "A given scope cannot be reached." ], "type": "string" }, "data": { - "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", + "description": "[Output Only] Metadata about this warning in key:\nvalue format. For example:\n\n\"data\": [\n {\n \"key\": \"scope\",\n \"value\": \"zones/us-east1-d\"\n }", "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).", + "description": "[Output Only] A key that provides more detail on the warning being\nreturned. For example, for warnings where there are no results in a list\nrequest for a particular zone, this key might be scope and\nthe key value might be the zone name. Other examples might be a key\nindicating a deprecated resource and a suggested replacement, or a\nwarning about invalid network settings (for example, if an instance\nattempts to perform IP forwarding but is not enabled for IP forwarding).", "type": "string" }, "value": { @@ -53285,273 +79583,261 @@ }, "type": "object" }, - "InstancesSetLabelsRequest": { - "id": "InstancesSetLabelsRequest", + "NetworkEndpointGroupPscData": { + "description": "All data that is specifically relevant to only network endpoint groups of\ntype PRIVATE_SERVICE_CONNECT.", + "id": "NetworkEndpointGroupPscData", "properties": { - "labelFingerprint": { - "description": "Fingerprint of the previous set of labels for this resource, used to prevent conflicts. Provide the latest fingerprint value when making a request to add or change labels.", - "format": "byte", + "consumerPscAddress": { + "description": "Output only. [Output Only] Address allocated from given subnetwork for PSC. This IP\naddress acts as a VIP for a PSC NEG, allowing it to act as an endpoint in\nL7 PSC-XLB.", + "readOnly": true, "type": "string" }, - "labels": { - "additionalProperties": { - "type": "string" - }, - "type": "object" - } - }, - "type": "object" - }, - "InstancesSetMachineResourcesRequest": { - "id": "InstancesSetMachineResourcesRequest", - "properties": { - "guestAccelerators": { - "description": "A list of the type and count of accelerator cards attached to the instance.", - "items": { - "$ref": "AcceleratorConfig" - }, - "type": "array" - } - }, - "type": "object" - }, - "InstancesSetMachineTypeRequest": { - "id": "InstancesSetMachineTypeRequest", - "properties": { - "machineType": { - "description": "Full or partial URL of the machine type resource. See Machine Types for a full list of machine types. For example: zones/us-central1-f/machineTypes/n1-standard-1", - "type": "string" - } - }, - "type": "object" - }, - "InstancesSetMinCpuPlatformRequest": { - "id": "InstancesSetMinCpuPlatformRequest", - "properties": { - "minCpuPlatform": { - "description": "Minimum cpu/platform this instance should be started at.", - "type": "string" - } - }, - "type": "object" - }, - "InstancesSetNameRequest": { - "id": "InstancesSetNameRequest", - "properties": { - "currentName": { - "description": "The current name of this resource, used to prevent conflicts. Provide the latest name when making a request to change name.", - "type": "string" + "producerPort": { + "description": "The psc producer port is used to connect PSC NEG with specific port on\nthe PSC Producer side; should only be used for the\nPRIVATE_SERVICE_CONNECT NEG type", + "format": "int32", + "type": "integer" }, - "name": { - "description": "The name to be applied to the instance. Needs to be RFC 1035 compliant.", + "pscConnectionId": { + "description": "Output only. [Output Only] The PSC connection id of the PSC Network Endpoint Group\nConsumer.", + "format": "uint64", + "readOnly": true, "type": "string" - } - }, - "type": "object" - }, - "InstancesSetSecurityPolicyRequest": { - "id": "InstancesSetSecurityPolicyRequest", - "properties": { - "networkInterfaces": { - "description": "The network interfaces that the security policy will be applied to. Network interfaces use the nicN naming format. You can only set a security policy for network interfaces with an access config.", - "items": { - "type": "string" - }, - "type": "array" }, - "securityPolicy": { - "description": "A full or partial URL to a security policy to add to this instance. If this field is set to an empty string it will remove the associated security policy.", + "pscConnectionStatus": { + "description": "Output only. [Output Only] The connection status of the PSC Forwarding Rule.", + "enum": [ + "ACCEPTED", + "CLOSED", + "NEEDS_ATTENTION", + "PENDING", + "REJECTED", + "STATUS_UNSPECIFIED" + ], + "enumDescriptions": [ + "The connection has been accepted by the producer.", + "The connection has been closed by the producer and will not serve\ntraffic going forward.", + "The connection has been accepted by the producer, but the producer\nneeds to take further action before the forwarding rule can serve\ntraffic.", + "The connection is pending acceptance by the producer.", + "The connection has been rejected by the producer.", + "" + ], + "readOnly": true, "type": "string" } }, "type": "object" }, - "InstancesSetServiceAccountRequest": { - "id": "InstancesSetServiceAccountRequest", + "NetworkEndpointGroupsAttachEndpointsRequest": { + "id": "NetworkEndpointGroupsAttachEndpointsRequest", "properties": { - "email": { - "description": "Email address of the service account.", - "type": "string" - }, - "scopes": { - "description": "The list of scopes to be made available for this service account.", + "networkEndpoints": { + "description": "The list of network endpoints to be attached.", "items": { - "type": "string" + "$ref": "NetworkEndpoint" }, "type": "array" } }, "type": "object" }, - "InstancesStartWithEncryptionKeyRequest": { - "id": "InstancesStartWithEncryptionKeyRequest", + "NetworkEndpointGroupsDetachEndpointsRequest": { + "id": "NetworkEndpointGroupsDetachEndpointsRequest", "properties": { - "disks": { - "description": "Array of disks associated with this instance that are protected with a customer-supplied encryption key. In order to start the instance, the disk url and its corresponding key must be provided. If the disk is not protected with a customer-supplied encryption key it should not be specified.", + "networkEndpoints": { + "description": "The list of network endpoints to be detached.", "items": { - "$ref": "CustomerEncryptionKeyProtectedDisk" + "$ref": "NetworkEndpoint" }, "type": "array" } }, - "type": "object" - }, - "InstantSnapshot": { - "description": "Represents a InstantSnapshot resource. You can use instant snapshots to create disk rollback points quickly..", - "id": "InstantSnapshot", - "properties": { - "architecture": { - "description": "[Output Only] The architecture of the instant snapshot. Valid values are ARM64 or X86_64.", - "enum": [ - "ARCHITECTURE_UNSPECIFIED", - "ARM64", - "X86_64" - ], - "enumDescriptions": [ - "Default value indicating Architecture is not set.", - "Machines with architecture ARM64", - "Machines with architecture X86_64" - ], - "type": "string" - }, - "creationTimestamp": { - "description": "[Output Only] Creation timestamp in RFC3339 text format.", - "type": "string" - }, - "description": { - "description": "An optional description of this resource. Provide this property when you create the resource.", - "type": "string" - }, - "diskSizeGb": { - "description": "[Output Only] Size of the source disk, specified in GB.", - "format": "int64", - "type": "string" - }, - "id": { - "description": "[Output Only] The unique identifier for the resource. This identifier is defined by the server.", - "format": "uint64", - "type": "string" - }, - "kind": { - "default": "compute#instantSnapshot", - "description": "[Output Only] Type of the resource. Always compute#instantSnapshot for InstantSnapshot resources.", - "type": "string" - }, - "labelFingerprint": { - "description": "A fingerprint for the labels being applied to this InstantSnapshot, which is essentially a hash of the labels set used for optimistic locking. The fingerprint is initially generated by Compute Engine and changes after every request to modify or update labels. You must always provide an up-to-date fingerprint hash in order to update or change labels, otherwise the request will fail with error 412 conditionNotMet. To see the latest fingerprint, make a get() request to retrieve a InstantSnapshot.", - "format": "byte", - "type": "string" - }, - "labels": { - "additionalProperties": { - "type": "string" - }, - "description": "Labels to apply to this InstantSnapshot. These can be later modified by the setLabels method. Label values may be empty.", - "type": "object" - }, - "name": { - "description": "Name of the resource; provided by the client when the resource is created. The name must be 1-63 characters long, and comply with RFC1035. 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" - }, - "region": { - "description": "[Output Only] URL of the region where the instant snapshot resides. You must specify this field as part of the HTTP request URL. It is not settable as a field in the request body.", - "type": "string" - }, - "resourceStatus": { - "$ref": "InstantSnapshotResourceStatus", - "description": "[Output Only] Status information for the instant snapshot resource." - }, - "satisfiesPzi": { - "description": "Output only. Reserved for future use.", - "readOnly": true, - "type": "boolean" - }, - "satisfiesPzs": { - "description": "[Output Only] Reserved for future use.", - "type": "boolean" - }, - "selfLink": { - "description": "[Output Only] Server-defined URL for the resource.", - "type": "string" - }, - "selfLinkWithId": { - "description": "[Output Only] Server-defined URL for this resource's resource id.", - "type": "string" - }, - "sourceDisk": { - "description": "URL of the source disk used to create this instant snapshot. Note that the source disk must be in the same zone/region as the instant snapshot to be created. This can be a full or valid partial URL. For example, the following are valid values: - https://www.googleapis.com/compute/v1/projects/project/zones/zone /disks/disk - https://www.googleapis.com/compute/v1/projects/project/regions/region /disks/disk - projects/project/zones/zone/disks/disk - projects/project/regions/region/disks/disk - zones/zone/disks/disk - regions/region/disks/disk ", - "type": "string" - }, - "sourceDiskId": { - "description": "[Output Only] The ID value of the disk used to create this InstantSnapshot. This value may be used to determine whether the InstantSnapshot was taken from the current or a previous instance of a given disk name.", - "type": "string" - }, - "status": { - "description": "[Output Only] The status of the instantSnapshot. This can be CREATING, DELETING, FAILED, or READY.", + "type": "object" + }, + "NetworkEndpointGroupsListEndpointsRequest": { + "id": "NetworkEndpointGroupsListEndpointsRequest", + "properties": { + "healthStatus": { + "description": "Optional query parameter for showing the health status of each network\nendpoint. Valid options are SKIP or SHOW. If you\ndon't specify this parameter, the health status of network endpoints will\nnot be provided.", "enum": [ - "CREATING", - "DELETING", - "FAILED", - "READY", - "UNAVAILABLE" + "SHOW", + "SKIP" ], "enumDescriptions": [ - "InstantSnapshot creation is in progress.", - "InstantSnapshot is currently being deleted.", - "InstantSnapshot creation failed.", - "InstantSnapshot has been created successfully.", - "InstantSnapshot is currently unavailable and cannot be used for Disk restoration" + "Show the health status for each network endpoint. Impacts latency of the\ncall.", + "Health status for network endpoints will not be provided." ], "type": "string" - }, - "zone": { - "description": "[Output Only] URL of the zone where the instant snapshot resides. You must specify this field as part of the HTTP request URL. It is not settable as a field in the request body.", - "type": "string" } }, "type": "object" }, - "InstantSnapshotAggregatedList": { - "id": "InstantSnapshotAggregatedList", + "NetworkEndpointGroupsListNetworkEndpoints": { + "id": "NetworkEndpointGroupsListNetworkEndpoints", "properties": { "id": { "description": "[Output Only] Unique identifier for the resource; defined by the server.", "type": "string" }, "items": { - "additionalProperties": { - "$ref": "InstantSnapshotsScopedList", - "description": "[Output Only] Name of the scope containing this set of instantSnapshots." + "description": "A list of NetworkEndpointWithHealthStatus resources.", + "items": { + "$ref": "NetworkEndpointWithHealthStatus" }, - "description": "A list of InstantSnapshotsScopedList resources.", - "type": "object" + "type": "array" }, "kind": { - "default": "compute#instantSnapshotAggregatedList", - "description": "[Output Only] Type of resource. Always compute#instantSnapshotAggregatedList for aggregated lists of instantSnapshots.", + "default": "compute#networkEndpointGroupsListNetworkEndpoints", + "description": "Output only. [Output Only] The resource type, which is alwayscompute#networkEndpointGroupsListNetworkEndpoints for the list\nof network endpoints in the specified network endpoint group.", + "readOnly": true, "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" - }, - "selfLink": { - "description": "[Output Only] Server-defined URL for this resource.", + "description": "[Output Only] This token allows you to get the next page of results for\nlist requests. If the number of results is larger thanmaxResults, use the nextPageToken as a value for\nthe query parameter pageToken in the next list request.\nSubsequent list requests will have their own nextPageToken to\ncontinue paging through the results.", "type": "string" }, - "unreachables": { - "description": "[Output Only] Unreachable resources.", + "warning": { + "description": "[Output Only] Informational warning message.", + "properties": { + "code": { + "description": "[Output Only] A warning code, if applicable. For example, Compute\nEngine returns NO_RESULTS_ON_PAGE if there\nare 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", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", + "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "PARTIAL_SUCCESS", + "QUOTA_INFO_UNAVAILABLE", + "REQUIRED_TOS_AGREEMENT", + "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", + "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", + "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", + "UNREACHABLE" + ], + "enumDeprecated": [ + false, + false, + false, + false, + false, + false, + true, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false + ], + "enumDescriptions": [ + "Warning about failed cleanup of transient changes made by a failed\noperation.", + "A link to a deprecated resource was created.", + "When deploying and at least one of the resources has a type marked as\ndeprecated", + "The user created a boot disk that is larger than image size.", + "When deploying and at least one of the resources has a type marked as\nexperimental", + "Warning that is present in an external api call", + "Warning that value of a field has been overridden.\nDeprecated unused field.", + "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is\nnot of type HTTP/HTTPS/HTTP2.", + "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed\nwhich captures the amount of resources filtered out by\nuser-defined list filter.", + "A resource depends on a missing type", + "The route's nextHopIp address is not assigned to an instance on the\nnetwork.", + "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an\nipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not exist.", + "The route's nextHopInstance URL refers to an instance that is not on the\nsame network as the route.", + "The route's next hop instance does not have a status of RUNNING.", + "Error which is not critical. We decided to continue the process despite\nthe mentioned error.", + "No results are present on a particular list page.", + "Success is reported, but some results may be missing due to errors", + "Quota information is not available to client requests (e.g:\nregions.list).", + "The user attempted to use a resource that requires a TOS they have not\naccepted.", + "Warning that a resource is in use.", + "One or more of the resources set to auto-delete could not be deleted\nbecause they were in use.", + "When a resource schema validation is ignored.", + "Instance template used in instance group manager is valid as such, but\nits application does not make a lot of sense, because it allows only\nsingle instance in instance group.", + "When undeclared properties in the schema are present", + "A given scope cannot be reached." + ], + "type": "string" + }, + "data": { + "description": "[Output Only] Metadata about this warning in key:\nvalue format. For example:\n\n\"data\": [\n {\n \"key\": \"scope\",\n \"value\": \"zones/us-east1-d\"\n }", + "items": { + "properties": { + "key": { + "description": "[Output Only] A key that provides more detail on the warning being\nreturned. For example, for warnings where there are no results in a list\nrequest for a particular zone, this key might be scope and\nthe key value might be the zone name. Other examples might be a key\nindicating a deprecated resource and a suggested replacement, or a\nwarning about invalid network settings (for example, if an instance\nattempts 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" + }, + "NetworkEndpointGroupsScopedList": { + "id": "NetworkEndpointGroupsScopedList", + "properties": { + "networkEndpointGroups": { + "description": "Output only. [Output Only] The list ofnetwork\nendpoint groups that are contained in this scope.", "items": { - "type": "string" + "$ref": "NetworkEndpointGroup" }, + "readOnly": true, "type": "array" }, "warning": { - "description": "[Output Only] Informational warning message.", + "description": "Output only. [Output Only] An informational warning that replaces the list of network\nendpoint groups when the list is empty.", "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.", + "description": "[Output Only] A warning code, if applicable. For example, Compute\nEngine returns NO_RESULTS_ON_PAGE if there\nare no results in the response.", "enum": [ "CLEANUP_FAILED", "DEPRECATED_RESOURCE_USED", @@ -53574,6 +79860,7 @@ "NOT_CRITICAL_ERROR", "NO_RESULTS_ON_PAGE", "PARTIAL_SUCCESS", + "QUOTA_INFO_UNAVAILABLE", "REQUIRED_TOS_AGREEMENT", "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", "RESOURCE_NOT_DELETED", @@ -53610,46 +79897,48 @@ false, false, false, + false, false ], "enumDescriptions": [ - "Warning about failed cleanup of transient changes made by a failed operation.", + "Warning about failed cleanup of transient changes made by a failed\noperation.", "A link to a deprecated resource was created.", - "When deploying and at least one of the resources has a type marked as deprecated", + "When deploying and at least one of the resources has a type marked as\ndeprecated", "The user created a boot disk that is larger than image size.", - "When deploying and at least one of the resources has a type marked as experimental", + "When deploying and at least one of the resources has a type marked as\nexperimental", "Warning that is present in an external api call", - "Warning that value of a field has been overridden. Deprecated unused field.", + "Warning that value of a field has been overridden.\nDeprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", - "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is\nnot of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", - "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", + "Resource can't be retrieved due to list overhead quota exceed\nwhich captures the amount of resources filtered out by\nuser-defined list filter.", "A resource depends on a missing type", - "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's nextHopIp address is not assigned to an instance on the\nnetwork.", "The route's next hop instance cannot ip forward.", - "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not have an\nipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", - "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that is not on the\nsame network as the route.", "The route's next hop instance does not have a status of RUNNING.", - "Error which is not critical. We decided to continue the process despite the mentioned error.", + "Error which is not critical. We decided to continue the process despite\nthe mentioned error.", "No results are present on a particular list page.", "Success is reported, but some results may be missing due to errors", - "The user attempted to use a resource that requires a TOS they have not accepted.", + "Quota information is not available to client requests (e.g:\nregions.list).", + "The user attempted to use a resource that requires a TOS they have not\naccepted.", "Warning that a resource is in use.", - "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "One or more of the resources set to auto-delete could not be deleted\nbecause they were in use.", "When a resource schema validation is ignored.", - "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", + "Instance template used in instance group manager is valid as such, but\nits application does not make a lot of sense, because it allows only\nsingle instance in instance group.", "When undeclared properties in the schema are present", "A given scope cannot be reached." ], "type": "string" }, "data": { - "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", + "description": "[Output Only] Metadata about this warning in key:\nvalue format. For example:\n\n\"data\": [\n {\n \"key\": \"scope\",\n \"value\": \"zones/us-east1-d\"\n }", "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).", + "description": "[Output Only] A key that provides more detail on the warning being\nreturned. For example, for warnings where there are no results in a list\nrequest for a particular zone, this key might be scope and\nthe key value might be the zone name. Other examples might be a key\nindicating a deprecated resource and a suggested replacement, or a\nwarning about invalid network settings (for example, if an instance\nattempts to perform IP forwarding but is not enabled for IP forwarding).", "type": "string" }, "value": { @@ -53666,44 +79955,74 @@ "type": "string" } }, + "readOnly": true, "type": "object" } }, "type": "object" }, - "InstantSnapshotList": { - "description": "Contains a list of InstantSnapshot resources.", - "id": "InstantSnapshotList", + "NetworkEndpointWithHealthStatus": { + "id": "NetworkEndpointWithHealthStatus", + "properties": { + "healths": { + "description": "Output only. [Output only] The health status of network endpoint.\n\nOptional. Displayed only if the network endpoint has centralized health\nchecking configured.", + "items": { + "$ref": "HealthStatusForNetworkEndpoint" + }, + "readOnly": true, + "type": "array" + }, + "networkEndpoint": { + "$ref": "NetworkEndpoint", + "description": "Output only. [Output only] The network endpoint.", + "readOnly": true + } + }, + "type": "object" + }, + "NetworkFirewallPolicyAggregatedList": { + "id": "NetworkFirewallPolicyAggregatedList", "properties": { "id": { "description": "[Output Only] Unique identifier for the resource; defined by the server.", "type": "string" }, "items": { - "description": "A list of InstantSnapshot resources.", - "items": { - "$ref": "InstantSnapshot" + "additionalProperties": { + "$ref": "FirewallPoliciesScopedList", + "description": "Name of the scope containing this set of addresses." }, - "type": "array" + "description": "A list of FirewallPoliciesScopedList resources.", + "type": "object" }, "kind": { - "default": "compute#instantSnapshotList", - "description": "Type of resource.", + "default": "compute#networkFirewallPolicyAggregatedList", + "description": "Output only. [Output Only] Type of resource. Alwayscompute#networkFirewallPoliciesAggregatedList for lists of\nnetwork firewall policies.", + "readOnly": true, "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.", + "description": "[Output Only] This token allows you to get the next page of results for\nlist requests. If the number of results is larger thanmaxResults, use the nextPageToken as a value for\nthe query parameter pageToken in the next list request.\nSubsequent list requests will have their own nextPageToken to\ncontinue paging through the results.", "type": "string" }, "selfLink": { - "description": "[Output Only] Server-defined URL for this resource.", + "description": "Output only. [Output Only] Server-defined URL for this resource.", + "readOnly": true, "type": "string" }, + "unreachables": { + "description": "Output only. [Output Only] Unreachable resources.", + "items": { + "type": "string" + }, + "readOnly": true, + "type": "array" + }, "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.", + "description": "[Output Only] A warning code, if applicable. For example, Compute\nEngine returns NO_RESULTS_ON_PAGE if there\nare no results in the response.", "enum": [ "CLEANUP_FAILED", "DEPRECATED_RESOURCE_USED", @@ -53726,6 +80045,7 @@ "NOT_CRITICAL_ERROR", "NO_RESULTS_ON_PAGE", "PARTIAL_SUCCESS", + "QUOTA_INFO_UNAVAILABLE", "REQUIRED_TOS_AGREEMENT", "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", "RESOURCE_NOT_DELETED", @@ -53762,46 +80082,48 @@ false, false, false, + false, false ], "enumDescriptions": [ - "Warning about failed cleanup of transient changes made by a failed operation.", + "Warning about failed cleanup of transient changes made by a failed\noperation.", "A link to a deprecated resource was created.", - "When deploying and at least one of the resources has a type marked as deprecated", + "When deploying and at least one of the resources has a type marked as\ndeprecated", "The user created a boot disk that is larger than image size.", - "When deploying and at least one of the resources has a type marked as experimental", + "When deploying and at least one of the resources has a type marked as\nexperimental", "Warning that is present in an external api call", - "Warning that value of a field has been overridden. Deprecated unused field.", + "Warning that value of a field has been overridden.\nDeprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", - "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is\nnot of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", - "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", + "Resource can't be retrieved due to list overhead quota exceed\nwhich captures the amount of resources filtered out by\nuser-defined list filter.", "A resource depends on a missing type", - "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's nextHopIp address is not assigned to an instance on the\nnetwork.", "The route's next hop instance cannot ip forward.", - "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not have an\nipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", - "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that is not on the\nsame network as the route.", "The route's next hop instance does not have a status of RUNNING.", - "Error which is not critical. We decided to continue the process despite the mentioned error.", + "Error which is not critical. We decided to continue the process despite\nthe mentioned error.", "No results are present on a particular list page.", "Success is reported, but some results may be missing due to errors", - "The user attempted to use a resource that requires a TOS they have not accepted.", + "Quota information is not available to client requests (e.g:\nregions.list).", + "The user attempted to use a resource that requires a TOS they have not\naccepted.", "Warning that a resource is in use.", - "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "One or more of the resources set to auto-delete could not be deleted\nbecause they were in use.", "When a resource schema validation is ignored.", - "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", + "Instance template used in instance group manager is valid as such, but\nits application does not make a lot of sense, because it allows only\nsingle instance in instance group.", "When undeclared properties in the schema are present", "A given scope cannot be reached." ], "type": "string" }, "data": { - "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", + "description": "[Output Only] Metadata about this warning in key:\nvalue format. For example:\n\n\"data\": [\n {\n \"key\": \"scope\",\n \"value\": \"zones/us-east1-d\"\n }", "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).", + "description": "[Output Only] A key that provides more detail on the warning being\nreturned. For example, for warnings where there are no results in a list\nrequest for a particular zone, this key might be scope and\nthe key value might be the zone name. Other examples might be a key\nindicating a deprecated resource and a suggested replacement, or a\nwarning about invalid network settings (for example, if an instance\nattempts to perform IP forwarding but is not enabled for IP forwarding).", "type": "string" }, "value": { @@ -53823,32 +80145,197 @@ }, "type": "object" }, - "InstantSnapshotResourceStatus": { - "id": "InstantSnapshotResourceStatus", + "NetworkInterface": { + "description": "A network interface resource attached to an instance.", + "id": "NetworkInterface", "properties": { - "storageSizeBytes": { - "description": "[Output Only] The storage size of this instant snapshot.", - "format": "int64", + "accessConfigs": { + "description": "An array of configurations for this interface. Currently, only one access\nconfig, ONE_TO_ONE_NAT, is supported. If there are noaccessConfigs specified, then this instance will have\nno external internet access.", + "items": { + "$ref": "AccessConfig" + }, + "type": "array" + }, + "aliasIpRanges": { + "description": "An array of alias IP ranges for this network interface.\nYou can only specify this field for network interfaces in VPC networks.", + "items": { + "$ref": "AliasIpRange" + }, + "type": "array" + }, + "aliasIpv6Ranges": { + "description": "An array of alias IPv6 ranges for this network interface.\nYou can only specify this field for network interfaces in VPC networks.", + "items": { + "$ref": "AliasIpRange" + }, + "type": "array" + }, + "enableVpcScopedDns": { + "description": "Optional. If true, DNS resolution will be enabled over this interface. Only valid\nwith network_attachment.", + "type": "boolean" + }, + "fingerprint": { + "description": "Fingerprint hash of contents stored in this network interface.\nThis field will be ignored when inserting an Instance or\nadding a NetworkInterface. An up-to-date\nfingerprint must be provided in order to update theNetworkInterface. The request will fail with error400 Bad Request if the fingerprint is not provided, or412 Precondition Failed if the fingerprint is out of date.", + "format": "byte", + "type": "string" + }, + "igmpQuery": { + "description": "Indicate whether igmp query is enabled on the network interface\nor not. If enabled, also indicates the version of IGMP supported.", + "enum": [ + "IGMP_QUERY_DISABLED", + "IGMP_QUERY_V2" + ], + "enumDescriptions": [ + "The network interface has disabled IGMP query.", + "The network interface has enabled IGMP query - v2." + ], + "type": "string" + }, + "internalIpv6PrefixLength": { + "description": "The prefix length of the primary internal IPv6 range.", + "format": "int32", + "type": "integer" + }, + "ipv6AccessConfigs": { + "description": "An array of IPv6 access configurations for this interface. Currently, only\none IPv6 access config, DIRECT_IPV6, is supported. If there\nis no ipv6AccessConfig specified, then this instance will\nhave no external IPv6 Internet access.", + "items": { + "$ref": "AccessConfig" + }, + "type": "array" + }, + "ipv6AccessType": { + "description": "Output only. [Output Only] One of EXTERNAL, INTERNAL to indicate whether the IP can be\naccessed from the Internet. This field is always inherited from its\nsubnetwork.\n\nValid only if stackType is IPV4_IPV6.", + "enum": [ + "EXTERNAL", + "INTERNAL" + ], + "enumDescriptions": [ + "This network interface can have external IPv6.", + "This network interface can have internal IPv6." + ], + "readOnly": true, + "type": "string" + }, + "ipv6Address": { + "description": "An IPv6 internal network address for this network interface. To\nuse a static internal IP address, it must be unused and in the same region\nas the instance's zone. If not specified, Google Cloud will automatically\nassign an internal IPv6 address from the instance's subnetwork.", + "type": "string" + }, + "kind": { + "default": "compute#networkInterface", + "description": "Output only. [Output Only] Type of the resource. Alwayscompute#networkInterface for network interfaces.", + "readOnly": true, + "type": "string" + }, + "name": { + "description": "[Output Only] The name of the network interface, which is generated by the\nserver. For a VM, the network interface uses the nicN naming\nformat. Where N is a value between 0 and7. The default interface value is nic0.", + "type": "string" + }, + "network": { + "description": "URL of the VPC network resource for this instance. When creating an\ninstance, if neither the network nor the subnetwork is specified, the\ndefault network global/networks/default is used. If the\nselected project doesn't have the default network, you must specify a\nnetwork or subnet. If the network is not specified but the subnetwork is\nspecified, the network is inferred.\n\nIf you specify this property, you can specify the network as\na full or partial URL. For example, the following are all valid URLs:\n \n \n - https://www.googleapis.com/compute/v1/projects/project/global/networks/network\n - projects/project/global/networks/network\n - global/networks/default", + "type": "string" + }, + "networkAttachment": { + "description": "The URL of the network attachment that this interface should connect\nto in the following format:\nprojects/{project_number}/regions/{region_name}/networkAttachments/{network_attachment_name}.", + "type": "string" + }, + "networkIP": { + "description": "An IPv4 internal IP address to assign to the instance for this network\ninterface. If not specified by the user, an unused internal IP is\nassigned by the system.", + "type": "string" + }, + "nicType": { + "description": "The type of vNIC to be used on this interface. This may be gVNIC or\nVirtioNet.", + "enum": [ + "GVNIC", + "IDPF", + "IRDMA", + "MRDMA", + "UNSPECIFIED_NIC_TYPE", + "VIRTIO_NET" + ], + "enumDescriptions": [ + "GVNIC", + "IDPF", + "IRDMA", + "MRDMA", + "No type specified.", + "VIRTIO" + ], + "type": "string" + }, + "parentNicName": { + "description": "Name of the parent network interface of a dynamic network interface.", + "type": "string" + }, + "queueCount": { + "description": "The networking queue count that's specified by users for the network\ninterface. Both Rx and Tx queues will be set to this number. It'll be empty\nif not specified by the users.", + "format": "int32", + "type": "integer" + }, + "serviceClassId": { + "description": "Optional. Producer Service's Service class Id for the region of this network\ninterface. Can only be used with network_attachment. It is not possible to\nuse on its own however, network_attachment can be used without\nservice_class_id.", + "type": "string" + }, + "stackType": { + "description": "The stack type for this network interface. To assign only IPv4 addresses,\nuse IPV4_ONLY. To assign both IPv4 and IPv6 addresses, useIPV4_IPV6. If not specified, IPV4_ONLY is used.\n\nThis field can be both set at instance creation and update network\ninterface operations.", + "enum": [ + "IPV4_IPV6", + "IPV4_ONLY", + "IPV6_ONLY" + ], + "enumDescriptions": [ + "The network interface can have both IPv4 and IPv6 addresses.", + "The network interface will only be assigned IPv4 addresses.", + "The network interface will only be assigned IPv6 addresses." + ], + "type": "string" + }, + "subnetwork": { + "description": "The URL of the Subnetwork resource for this instance. If the network\nresource is inlegacy\nmode, do not specify this field. If the network is in auto subnet\nmode, specifying the subnetwork is optional. If the network is in custom\nsubnet mode, specifying the subnetwork is required. If you specify this\nfield, you can specify the subnetwork as a full or partial URL. For\nexample, the following are all valid URLs:\n \n \n - https://www.googleapis.com/compute/v1/projects/project/regions/region/subnetworks/subnetwork \n - regions/region/subnetworks/subnetwork", "type": "string" + }, + "vlan": { + "description": "VLAN tag of a dynamic network interface, must be an integer in the range\nfrom 2 to 255 inclusively.", + "format": "int32", + "type": "integer" } }, "type": "object" }, - "InstantSnapshotsScopedList": { - "id": "InstantSnapshotsScopedList", + "NetworkList": { + "description": "Contains a list of networks.", + "id": "NetworkList", "properties": { - "instantSnapshots": { - "description": "[Output Only] A list of instantSnapshots contained in this scope.", + "id": { + "description": "[Output Only] Unique identifier for the resource; defined by the server.", + "type": "string" + }, + "items": { + "description": "A list of Network resources.", "items": { - "$ref": "InstantSnapshot" + "$ref": "Network" }, "type": "array" }, + "kind": { + "default": "compute#networkList", + "description": "Output only. [Output Only] Type of resource. Always compute#networkList for\nlists of networks.", + "readOnly": true, + "type": "string" + }, + "nextPageToken": { + "description": "[Output Only] This token allows you to get the next page of results for\nlist requests. If the number of results is larger thanmaxResults, use the nextPageToken as a value for\nthe query parameter pageToken in the next list request.\nSubsequent list requests will have their own nextPageToken to\ncontinue paging through the results.", + "type": "string" + }, + "selfLink": { + "description": "Output only. [Output Only] Server-defined URL for this resource.", + "readOnly": true, + "type": "string" + }, "warning": { - "description": "[Output Only] Informational warning which replaces the list of instantSnapshots when the list is empty.", + "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.", + "description": "[Output Only] A warning code, if applicable. For example, Compute\nEngine returns NO_RESULTS_ON_PAGE if there\nare no results in the response.", "enum": [ "CLEANUP_FAILED", "DEPRECATED_RESOURCE_USED", @@ -53871,6 +80358,7 @@ "NOT_CRITICAL_ERROR", "NO_RESULTS_ON_PAGE", "PARTIAL_SUCCESS", + "QUOTA_INFO_UNAVAILABLE", "REQUIRED_TOS_AGREEMENT", "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", "RESOURCE_NOT_DELETED", @@ -53907,46 +80395,48 @@ false, false, false, + false, false ], "enumDescriptions": [ - "Warning about failed cleanup of transient changes made by a failed operation.", + "Warning about failed cleanup of transient changes made by a failed\noperation.", "A link to a deprecated resource was created.", - "When deploying and at least one of the resources has a type marked as deprecated", + "When deploying and at least one of the resources has a type marked as\ndeprecated", "The user created a boot disk that is larger than image size.", - "When deploying and at least one of the resources has a type marked as experimental", + "When deploying and at least one of the resources has a type marked as\nexperimental", "Warning that is present in an external api call", - "Warning that value of a field has been overridden. Deprecated unused field.", + "Warning that value of a field has been overridden.\nDeprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", - "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is\nnot of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", - "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", + "Resource can't be retrieved due to list overhead quota exceed\nwhich captures the amount of resources filtered out by\nuser-defined list filter.", "A resource depends on a missing type", - "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's nextHopIp address is not assigned to an instance on the\nnetwork.", "The route's next hop instance cannot ip forward.", - "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not have an\nipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", - "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that is not on the\nsame network as the route.", "The route's next hop instance does not have a status of RUNNING.", - "Error which is not critical. We decided to continue the process despite the mentioned error.", + "Error which is not critical. We decided to continue the process despite\nthe mentioned error.", "No results are present on a particular list page.", "Success is reported, but some results may be missing due to errors", - "The user attempted to use a resource that requires a TOS they have not accepted.", + "Quota information is not available to client requests (e.g:\nregions.list).", + "The user attempted to use a resource that requires a TOS they have not\naccepted.", "Warning that a resource is in use.", - "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "One or more of the resources set to auto-delete could not be deleted\nbecause they were in use.", "When a resource schema validation is ignored.", - "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", + "Instance template used in instance group manager is valid as such, but\nits application does not make a lot of sense, because it allows only\nsingle instance in instance group.", "When undeclared properties in the schema are present", "A given scope cannot be reached." ], "type": "string" }, "data": { - "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", + "description": "[Output Only] Metadata about this warning in key:\nvalue format. For example:\n\n\"data\": [\n {\n \"key\": \"scope\",\n \"value\": \"zones/us-east1-d\"\n }", "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).", + "description": "[Output Only] A key that provides more detail on the warning being\nreturned. For example, for warnings where there are no results in a list\nrequest for a particular zone, this key might be scope and\nthe key value might be the zone name. Other examples might be a key\nindicating a deprecated resource and a suggested replacement, or a\nwarning about invalid network settings (for example, if an instance\nattempts to perform IP forwarding but is not enabled for IP forwarding).", "type": "string" }, "value": { @@ -53968,544 +80458,938 @@ }, "type": "object" }, - "Int64RangeMatch": { - "description": "HttpRouteRuleMatch criteria for field values that must stay within the specified integer range.", - "id": "Int64RangeMatch", + "NetworkParams": { + "description": "Additional network parameters.", + "id": "NetworkParams", + "properties": { + "resourceManagerTags": { + "additionalProperties": { + "type": "string" + }, + "description": "Tag keys/values directly bound to this resource.\nTag keys and values have the same definition as resource\nmanager tags. The field is allowed for INSERT\nonly. The keys/values to set on the resource should be specified in\neither ID { : } or Namespaced format\n{ : }.\nFor example the following are valid inputs:\n* {\"tagKeys/333\" : \"tagValues/444\", \"tagKeys/123\" : \"tagValues/456\"}\n* {\"123/environment\" : \"production\", \"345/abc\" : \"xyz\"}\nNote:\n* Invalid combinations of ID \u0026 namespaced format is not supported. For\n instance: {\"123/environment\" : \"tagValues/444\"} is invalid.", + "type": "object" + } + }, + "type": "object" + }, + "NetworkPeering": { + "description": "A network peering attached to a network resource. The message includes the\npeering name, peer network, peering state, and a flag indicating whether\nGoogle Compute Engine should automatically create routes for the peering.", + "id": "NetworkPeering", + "properties": { + "autoCreateRoutes": { + "description": "This field will be deprecated soon. Use theexchange_subnet_routes field instead.\nIndicates whether full mesh connectivity is created and managed\nautomatically between peered networks. Currently this field should always\nbe true since Google Compute Engine will automatically create and manage\nsubnetwork routes between two networks when peering state isACTIVE.", + "type": "boolean" + }, + "connectionStatus": { + "$ref": "NetworkPeeringConnectionStatus", + "description": "Output only. [Output Only] The effective state of the peering connection\nas a whole.", + "readOnly": true + }, + "exchangeSubnetRoutes": { + "description": "Indicates whether full mesh connectivity is created and managed\nautomatically between peered networks. Currently this field should always\nbe true since Google Compute Engine will automatically create and manage\nsubnetwork routes between two networks when peering state isACTIVE.", + "type": "boolean" + }, + "exportCustomRoutes": { + "description": "Whether to export the custom routes to peer network. The default value is\nfalse.", + "type": "boolean" + }, + "exportSubnetRoutesWithPublicIp": { + "description": "Whether subnet routes with public IP range are exported. The default value\nis true, all subnet routes are exported.IPv4\nspecial-use ranges are always\nexported to peers and are not controlled by this field.", + "type": "boolean" + }, + "importCustomRoutes": { + "description": "Whether to import the custom routes from peer network. The default value is\nfalse.", + "type": "boolean" + }, + "importSubnetRoutesWithPublicIp": { + "description": "Whether subnet routes with public IP range are imported. The default value\nis false.IPv4\nspecial-use ranges are always\nimported from peers and are not controlled by this field.", + "type": "boolean" + }, + "name": { + "description": "Name of this peering. Provided by the client when the peering is created.\nThe name must comply withRFC1035.\nSpecifically, the name must be 1-63 characters long and match regular\nexpression `[a-z]([-a-z0-9]*[a-z0-9])?`. The first character must be a\nlowercase letter, and all the following characters must be a dash,\nlowercase letter, or digit, except the last character, which cannot be a\ndash.", + "type": "string" + }, + "network": { + "description": "The URL of the peer network. It can be either full URL or partial URL. The\npeer network may belong to a different project. If the partial URL does not\ncontain project, it is assumed that the peer network is in the same project\nas the current network.", + "type": "string" + }, + "peerMtu": { + "description": "Output only. [Output Only] Maximum Transmission Unit in bytes of the peer network.", + "format": "int32", + "readOnly": true, + "type": "integer" + }, + "stackType": { + "description": "Which IP version(s) of traffic and routes are allowed to be imported or\nexported between peer networks. The default value is IPV4_ONLY.", + "enum": [ + "IPV4_IPV6", + "IPV4_ONLY" + ], + "enumDescriptions": [ + "This Peering will allow IPv4 traffic and routes to be\nexchanged. Additionally if the matching peering is\nIPV4_IPV6, IPv6 traffic and routes will be exchanged as\nwell.", + "This Peering will only allow IPv4 traffic and routes to be\nexchanged, even if the matching peering is IPV4_IPV6." + ], + "type": "string" + }, + "state": { + "description": "Output only. [Output Only] State for the peering.", + "enum": [ + "ACTIVE", + "INACTIVE" + ], + "enumDescriptions": [ + "Matching configuration exists on the peer.", + "There is no matching configuration on the peer, including the case when\npeer does not exist." + ], + "readOnly": true, + "type": "string" + }, + "stateDetails": { + "description": "Output only. [Output Only] Details about the current state of the peering.", + "readOnly": true, + "type": "string" + }, + "updateStrategy": { + "description": "The update strategy determines the semantics for updates and deletes to the\npeering connection configuration.", + "enum": [ + "CONSENSUS", + "INDEPENDENT", + "UNSPECIFIED" + ], + "enumDescriptions": [ + "Updates are reflected in the local peering but aren't applied to the\npeering connection until a complementary change is made to the\nmatching peering.\nTo delete a peering with the consensus update strategy, both the peerings\nmust request the deletion of the peering before the peering can be\ndeleted.", + "In this mode, changes to the peering configuration can\nbe unilaterally altered by changing either side of the peering.\nThis is the default value if the field is unspecified.", + "Peerings with update strategy UNSPECIFIED are created with\nupdate strategy INDEPENDENT." + ], + "type": "string" + } + }, + "type": "object" + }, + "NetworkPeeringConnectionStatus": { + "description": "[Output Only] Describes the state of a peering connection, not just the\nlocal peering. This field provides information about the effective settings\nfor the connection as a whole, including pending delete/update requests for\nCONSENSUS peerings.", + "id": "NetworkPeeringConnectionStatus", + "properties": { + "consensusState": { + "$ref": "NetworkPeeringConnectionStatusConsensusState", + "description": "The consensus state contains information about the status of update\nand delete for a consensus peering connection." + }, + "trafficConfiguration": { + "$ref": "NetworkPeeringConnectionStatusTrafficConfiguration", + "description": "The active connectivity settings for the peering connection based on the\nsettings of the network peerings." + }, + "updateStrategy": { + "description": "The update strategy determines the update/delete semantics for this\npeering connection.", + "enum": [ + "CONSENSUS", + "INDEPENDENT", + "UNSPECIFIED" + ], + "enumDescriptions": [ + "Updates are reflected in the local peering but aren't applied to the\npeering connection until a complementary change is made to the\nmatching peering.\nTo delete a peering with the consensus update strategy, both the peerings\nmust request the deletion of the peering before the peering can be\ndeleted.", + "In this mode, changes to the peering configuration can\nbe unilaterally altered by changing either side of the peering.\nThis is the default value if the field is unspecified.", + "Peerings with update strategy UNSPECIFIED are created with\nupdate strategy INDEPENDENT." + ], + "type": "string" + } + }, + "type": "object" + }, + "NetworkPeeringConnectionStatusConsensusState": { + "description": "The status of update/delete for a consensus peering connection. Only set\nwhen connection_status.update_strategy isCONSENSUS or a network peering is proposing to update the\nstrategy to CONSENSUS.", + "id": "NetworkPeeringConnectionStatusConsensusState", + "properties": { + "deleteStatus": { + "description": "The status of the delete request.", + "enum": [ + "DELETE_ACKNOWLEDGED", + "DELETE_STATUS_UNSPECIFIED", + "LOCAL_CANCEL_REQUESTED", + "LOCAL_DELETE_REQUESTED", + "PEER_CANCEL_REQUESTED", + "PEER_DELETE_REQUESTED" + ], + "enumDescriptions": [ + "Both network admins have agreed this consensus peering connection can\nbe deleted.", + "", + "The local network admin requested to cancel their delete request\nafter DELETE_ACKNOWLEDGED.", + "Network admin has requested deletion of this peering connection.", + "The peer network admin requested to cancel their delete request after\nDELETE_ACKNOWLEDGED.", + "The peer network admin has requested deletion of this peering\nconnection." + ], + "type": "string" + }, + "updateStatus": { + "description": "The status of the update request.", + "enum": [ + "IN_SYNC", + "PENDING_LOCAL_ACKNOWLEDMENT", + "PENDING_PEER_ACKNOWLEDGEMENT", + "UPDATE_STATUS_UNSPECIFIED" + ], + "enumDescriptions": [ + "No pending configuration update proposals to the peering connection.", + "The peer network admin has made an updatePeering call. The change is\nawaiting acknowledgment from this peering's network admin.", + "The local network admin has made an updatePeering call. The change\nis awaiting acknowledgment from the peer network admin.", + "" + ], + "type": "string" + } + }, + "type": "object" + }, + "NetworkPeeringConnectionStatusTrafficConfiguration": { + "id": "NetworkPeeringConnectionStatusTrafficConfiguration", + "properties": { + "exportCustomRoutesToPeer": { + "description": "Whether custom routes are being exported to the peer network.", + "type": "boolean" + }, + "exportSubnetRoutesWithPublicIpToPeer": { + "description": "Whether subnet routes with public IP ranges are being exported to the\npeer network.", + "type": "boolean" + }, + "importCustomRoutesFromPeer": { + "description": "Whether custom routes are being imported from the peer network.", + "type": "boolean" + }, + "importSubnetRoutesWithPublicIpFromPeer": { + "description": "Whether subnet routes with public IP ranges are being imported\nfrom the peer network.", + "type": "boolean" + }, + "stackType": { + "description": "Which IP version(s) of traffic and routes are being imported or\nexported between peer networks.", + "enum": [ + "IPV4_IPV6", + "IPV4_ONLY" + ], + "enumDescriptions": [ + "This Peering will allow IPv4 traffic and routes to be\nexchanged. Additionally if the matching peering is\nIPV4_IPV6, IPv6 traffic and routes will be exchanged as\nwell.", + "This Peering will only allow IPv4 traffic and routes to be\nexchanged, even if the matching peering is IPV4_IPV6." + ], + "type": "string" + } + }, + "type": "object" + }, + "NetworkPerformanceConfig": { + "id": "NetworkPerformanceConfig", + "properties": { + "totalEgressBandwidthTier": { + "enum": [ + "DEFAULT", + "TIER_1" + ], + "enumDescriptions": [ + "", + "" + ], + "type": "string" + } + }, + "type": "object" + }, + "NetworkProfile": { + "description": "NetworkProfile represents a Google managed network profile resource.", + "id": "NetworkProfile", + "properties": { + "creationTimestamp": { + "description": "Output only. [Output Only] Creation timestamp inRFC3339\ntext format.", + "readOnly": true, + "type": "string" + }, + "description": { + "description": "Output only. [Output Only] An optional description of this resource.", + "readOnly": true, + "type": "string" + }, + "features": { + "$ref": "NetworkProfileNetworkFeatures", + "description": "Output only. [Output Only] Features supported by the network.", + "readOnly": true + }, + "id": { + "description": "Output only. [Output Only] The unique identifier for the resource. This identifier is\ndefined by the server.", + "format": "uint64", + "readOnly": true, + "type": "string" + }, + "kind": { + "default": "compute#networkProfile", + "description": "Output only. [Output Only] Type of the resource. Alwayscompute#networkProfile for network profiles.", + "readOnly": true, + "type": "string" + }, + "location": { + "$ref": "NetworkProfileLocation", + "description": "Output only. [Output Only] Location to which the network is restricted.", + "readOnly": true + }, + "name": { + "description": "Output only. [Output Only] Name of the resource.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "readOnly": true, + "type": "string" + }, + "profileType": { + "$ref": "NetworkProfileProfileType", + "description": "Output only. [Output Only] Type of the network profile.", + "readOnly": true + }, + "selfLink": { + "description": "Output only. [Output Only] Server-defined URL for the resource.", + "readOnly": true, + "type": "string" + }, + "selfLinkWithId": { + "description": "Output only. [Output Only] Server-defined URL for this resource with the resource id.", + "readOnly": true, + "type": "string" + } + }, + "type": "object" + }, + "NetworkProfileLocation": { + "id": "NetworkProfileLocation", "properties": { - "rangeEnd": { - "description": "The end of the range (exclusive) in signed long integer format.", - "format": "int64", + "name": { "type": "string" }, - "rangeStart": { - "description": "The start of the range (inclusive) in signed long integer format.", - "format": "int64", + "scope": { + "enum": [ + "REGION", + "ZONE" + ], + "enumDescriptions": [ + "", + "" + ], "type": "string" } }, "type": "object" }, - "Interconnect": { - "description": "Represents an Interconnect resource. An Interconnect resource is a dedicated connection between the Google Cloud network and your on-premises network. For more information, read the Dedicated Interconnect Overview.", - "id": "Interconnect", + "NetworkProfileNetworkFeatures": { + "id": "NetworkProfileNetworkFeatures", "properties": { - "adminEnabled": { - "description": "Administrative status of the interconnect. When this is set to true, the Interconnect is functional and can carry traffic. When set to false, no packets can be carried over the interconnect and no BGP routes are exchanged over it. By default, the status is set to true.", - "type": "boolean" - }, - "availableFeatures": { - "description": "[Output only] List of features available for this Interconnect connection, which can take one of the following values: - MACSEC If present then the Interconnect connection is provisioned on MACsec capable hardware ports. If not present then the Interconnect connection is provisioned on non-MACsec capable ports and MACsec isn't supported and enabling MACsec fails.", + "addressPurposes": { + "description": "Specifies what address purposes are supported. If empty, all address\npurposes are supported.", "items": { "enum": [ - "IF_MACSEC" + "DNS_RESOLVER", + "GCE_ENDPOINT", + "IPSEC_INTERCONNECT", + "NAT_AUTO", + "PRIVATE_SERVICE_CONNECT", + "SERVERLESS", + "SHARED_LOADBALANCER_VIP", + "VPC_PEERING" ], "enumDescriptions": [ - "Media Access Control security (MACsec)" + "DNS resolver address in the subnetwork.", + "VM internal/alias IP, Internal LB service IP, etc.", + "A regional internal IP address range reserved for the VLAN attachment\nthat is used in HA VPN over Cloud Interconnect. This regional\ninternal IP address range must not overlap with any IP address range\nof subnet/route in the VPC network and its peering networks. After the\nVLAN attachment is created with the reserved IP address range, when\ncreating a new VPN gateway, its interface IP address is allocated\nfrom the associated VLAN attachment’s IP address range.", + "External IP automatically reserved for Cloud NAT.", + "A private network IP address that can be used to configure Private\nService Connect. This purpose can be specified only forGLOBAL addresses of Type INTERNAL", + "A regional internal IP address range reserved for Serverless.", + "A private network IP address that can be shared by multiple Internal\nLoad Balancer forwarding rules.", + "IP range for peer networks." ], "type": "string" }, "type": "array" }, - "circuitInfos": { - "description": "[Output Only] A list of CircuitInfo objects, that describe the individual circuits in this LAG.", - "items": { - "$ref": "InterconnectCircuitInfo" - }, - "type": "array" - }, - "creationTimestamp": { - "description": "[Output Only] Creation timestamp in RFC3339 text format.", - "type": "string" - }, - "customerName": { - "description": "Customer name, to put in the Letter of Authorization as the party authorized to request a crossconnect.", - "type": "string" - }, - "description": { - "description": "An optional description of this resource. Provide this property when you create the resource.", - "type": "string" - }, - "expectedOutages": { - "description": "[Output Only] A list of outages expected for this Interconnect.", - "items": { - "$ref": "InterconnectOutageNotification" - }, - "type": "array" - }, - "googleIpAddress": { - "description": "[Output Only] IP address configured on the Google side of the Interconnect link. This can be used only for ping tests.", - "type": "string" - }, - "googleReferenceId": { - "description": "[Output Only] Google reference ID to be used when raising support tickets with Google or otherwise to debug backend connectivity issues.", - "type": "string" - }, - "id": { - "description": "[Output Only] The unique identifier for the resource. This identifier is defined by the server.", - "format": "uint64", + "allowAddressCreation": { + "description": "Specifies whether address creation is allowed.", + "enum": [ + "ADDRESS_CREATION_ALLOWED", + "ADDRESS_CREATION_BLOCKED" + ], + "enumDescriptions": [ + "", + "" + ], "type": "string" }, - "interconnectAttachments": { - "description": "[Output Only] A list of the URLs of all InterconnectAttachments configured to use this Interconnect.", - "items": { - "type": "string" - }, - "type": "array" - }, - "interconnectType": { - "description": "Type of interconnect, which can take one of the following values: - PARTNER: A partner-managed interconnection shared between customers though a partner. - DEDICATED: A dedicated physical interconnection with the customer. Note that a value IT_PRIVATE has been deprecated in favor of DEDICATED.", + "allowAliasIpRanges": { + "description": "Specifies whether alias IP ranges (and secondary address ranges) are\nallowed.", "enum": [ - "DEDICATED", - "IT_PRIVATE", - "PARTNER" + "ALIAS_IP_RANGES_ALLOWED", + "ALIAS_IP_RANGES_BLOCKED" ], "enumDescriptions": [ - "A dedicated physical interconnection with the customer.", - "[Deprecated] A private, physical interconnection with the customer.", - "A partner-managed interconnection shared between customers via partner." + "", + "" ], "type": "string" }, - "kind": { - "default": "compute#interconnect", - "description": "[Output Only] Type of the resource. Always compute#interconnect for interconnects.", + "allowAutoModeSubnet": { + "description": "Specifies whether auto mode subnet creation is allowed.", + "enum": [ + "AUTO_MODE_SUBNET_ALLOWED", + "AUTO_MODE_SUBNET_BLOCKED" + ], + "enumDescriptions": [ + "", + "" + ], "type": "string" }, - "labelFingerprint": { - "description": "A fingerprint for the labels being applied to this Interconnect, which is essentially a hash of the labels set used for optimistic locking. The fingerprint is initially generated by Compute Engine and changes after every request to modify or update labels. You must always provide an up-to-date fingerprint hash in order to update or change labels, otherwise the request will fail with error 412 conditionNotMet. To see the latest fingerprint, make a get() request to retrieve an Interconnect.", - "format": "byte", + "allowClassDFirewalls": { + "description": "Specifies whether firewalls for Class D address ranges are supported.", + "enum": [ + "CLASS_D_FIREWALLS_ALLOWED", + "CLASS_D_FIREWALLS_BLOCKED" + ], + "enumDescriptions": [ + "", + "" + ], "type": "string" }, - "labels": { - "additionalProperties": { - "type": "string" - }, - "description": "Labels for this resource. These can only be added or modified by the setLabels method. Each label key/value pair must comply with RFC1035. Label values may be empty.", - "type": "object" - }, - "linkType": { - "description": "Type of link requested, which can take one of the following values: - LINK_TYPE_ETHERNET_10G_LR: A 10G Ethernet with LR optics - LINK_TYPE_ETHERNET_100G_LR: A 100G Ethernet with LR optics. Note that this field indicates the speed of each of the links in the bundle, not the speed of the entire bundle.", + "allowCloudNat": { + "description": "Specifies whether cloud NAT creation is allowed.", "enum": [ - "LINK_TYPE_ETHERNET_100G_LR", - "LINK_TYPE_ETHERNET_10G_LR" + "CLOUD_NAT_ALLOWED", + "CLOUD_NAT_BLOCKED" ], "enumDescriptions": [ - "100G Ethernet, LR Optics.", - "10G Ethernet, LR Optics. [(rate_bps) = 10000000000];" + "", + "" ], "type": "string" }, - "location": { - "description": "URL of the InterconnectLocation object that represents where this connection is to be provisioned.", + "allowCloudRouter": { + "description": "Specifies whether cloud router creation is allowed.", + "enum": [ + "CLOUD_ROUTER_ALLOWED", + "CLOUD_ROUTER_BLOCKED" + ], + "enumDescriptions": [ + "", + "" + ], "type": "string" }, - "macsec": { - "$ref": "InterconnectMacsec", - "description": "Configuration that enables Media Access Control security (MACsec) on the Cloud Interconnect connection between Google and your on-premises router." - }, - "macsecEnabled": { - "description": "Enable or disable MACsec on this Interconnect connection. MACsec enablement fails if the MACsec object is not specified.", - "type": "boolean" - }, - "name": { - "annotations": { - "required": [ - "compute.interconnects.insert" - ] - }, - "description": "Name of the resource. Provided by the client when the resource is created. The name must be 1-63 characters long, and comply with RFC1035. 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])?", + "allowDefaultNicAttachment": { + "description": "Specifies whether default NIC attachment is allowed.", + "enum": [ + "DEFAULT_NIC_ATTACHMENT_ALLOWED", + "DEFAULT_NIC_ATTACHMENT_BLOCKED" + ], + "enumDescriptions": [ + "", + "" + ], "type": "string" }, - "nocContactEmail": { - "description": "Email address to contact the customer NOC for operations and maintenance notifications regarding this Interconnect. If specified, this will be used for notifications in addition to all other forms described, such as Cloud Monitoring logs alerting and Cloud Notifications. This field is required for users who sign up for Cloud Interconnect using workforce identity federation.", + "allowExternalIpAccess": { + "description": "Specifies whether VMs are allowed to have external IP access on network\ninterfaces connected to this VPC.", + "enum": [ + "EXTERNAL_IP_ACCESS_ALLOWED", + "EXTERNAL_IP_ACCESS_BLOCKED" + ], + "enumDescriptions": [ + "", + "" + ], "type": "string" }, - "operationalStatus": { - "description": "[Output Only] The current status of this Interconnect's functionality, which can take one of the following values: - OS_ACTIVE: A valid Interconnect, which is turned up and is ready to use. Attachments may be provisioned on this Interconnect. - OS_UNPROVISIONED: An Interconnect that has not completed turnup. No attachments may be provisioned on this Interconnect. - OS_UNDER_MAINTENANCE: An Interconnect that is undergoing internal maintenance. No attachments may be provisioned or updated on this Interconnect. ", + "allowFirewallPolicy": { + "description": "Specifies whether firewall policy can be attached to the network.", "enum": [ - "OS_ACTIVE", - "OS_UNPROVISIONED" + "FIREWALL_POLICY_ALLOWED", + "FIREWALL_POLICY_BLOCKED" ], "enumDescriptions": [ - "The interconnect is valid, turned up, and ready to use. Attachments may be provisioned on this interconnect.", - "The interconnect has not completed turnup. No attachments may be provisioned on this interconnect." + "", + "" ], "type": "string" }, - "peerIpAddress": { - "description": "[Output Only] IP address configured on the customer side of the Interconnect link. The customer should configure this IP address during turnup when prompted by Google NOC. This can be used only for ping tests.", + "allowInterconnect": { + "description": "Specifies whether Cloud Interconnect creation is allowed.", + "enum": [ + "INTERCONNECT_ALLOWED", + "INTERCONNECT_BLOCKED" + ], + "enumDescriptions": [ + "", + "" + ], "type": "string" }, - "provisionedLinkCount": { - "description": "[Output Only] Number of links actually provisioned in this interconnect.", - "format": "int32", - "type": "integer" - }, - "remoteLocation": { - "description": "Indicates that this is a Cross-Cloud Interconnect. This field specifies the location outside of Google's network that the interconnect is connected to.", + "allowIpForwarding": { + "description": "Specifies whether IP forwarding is allowed.", + "enum": [ + "IP_FORWARDING_ALLOWED", + "IP_FORWARDING_BLOCKED" + ], + "enumDescriptions": [ + "", + "" + ], "type": "string" }, - "requestedFeatures": { - "description": "Optional. List of features requested for this Interconnect connection, which can take one of the following values: - MACSEC If specified then the connection is created on MACsec capable hardware ports. If not specified, the default value is false, which allocates non-MACsec capable ports first if available. This parameter can be provided only with Interconnect INSERT. It isn't valid for Interconnect PATCH.", - "items": { - "enum": [ - "IF_MACSEC" - ], - "enumDescriptions": [ - "Media Access Control security (MACsec)" - ], - "type": "string" - }, - "type": "array" - }, - "requestedLinkCount": { - "description": "Target number of physical links in the link bundle, as requested by the customer.", - "format": "int32", - "type": "integer" - }, - "satisfiesPzs": { - "description": "[Output Only] Reserved for future use.", - "type": "boolean" - }, - "selfLink": { - "description": "[Output Only] Server-defined URL for the resource.", + "allowLoadBalancing": { + "description": "Specifies whether cloud load balancing is allowed.", + "enum": [ + "LOAD_BALANCING_ALLOWED", + "LOAD_BALANCING_BLOCKED" + ], + "enumDescriptions": [ + "", + "" + ], "type": "string" }, - "state": { - "description": "[Output Only] The current state of Interconnect functionality, which can take one of the following values: - ACTIVE: The Interconnect is valid, turned up and ready to use. Attachments may be provisioned on this Interconnect. - UNPROVISIONED: The Interconnect has not completed turnup. No attachments may be provisioned on this Interconnect. - UNDER_MAINTENANCE: The Interconnect is undergoing internal maintenance. No attachments may be provisioned or updated on this Interconnect. ", + "allowMultiNicInSameNetwork": { + "description": "Specifies whether multi-nic in the same network is allowed.", "enum": [ - "ACTIVE", - "UNPROVISIONED" + "MULTI_NIC_IN_SAME_NETWORK_ALLOWED", + "MULTI_NIC_IN_SAME_NETWORK_BLOCKED" ], "enumDescriptions": [ - "The interconnect is valid, turned up, and ready to use. Attachments may be provisioned on this interconnect.", - "The interconnect has not completed turnup. No attachments may be provisioned on this interconnect." + "", + "" ], "type": "string" - } - }, - "type": "object" - }, - "InterconnectAttachment": { - "description": "Represents an Interconnect Attachment (VLAN) resource. You can use Interconnect attachments (VLANS) to connect your Virtual Private Cloud networks to your on-premises networks through an Interconnect. For more information, read Creating VLAN Attachments.", - "id": "InterconnectAttachment", - "properties": { - "adminEnabled": { - "description": "Determines whether this Attachment will carry packets. Not present for PARTNER_PROVIDER.", - "type": "boolean" }, - "bandwidth": { - "description": "Provisioned bandwidth capacity for the interconnect attachment. For attachments of type DEDICATED, the user can set the bandwidth. For attachments of type PARTNER, the Google Partner that is operating the interconnect must set the bandwidth. Output only for PARTNER type, mutable for PARTNER_PROVIDER and DEDICATED, and can take one of the following values: - BPS_50M: 50 Mbit/s - BPS_100M: 100 Mbit/s - BPS_200M: 200 Mbit/s - BPS_300M: 300 Mbit/s - BPS_400M: 400 Mbit/s - BPS_500M: 500 Mbit/s - BPS_1G: 1 Gbit/s - BPS_2G: 2 Gbit/s - BPS_5G: 5 Gbit/s - BPS_10G: 10 Gbit/s - BPS_20G: 20 Gbit/s - BPS_50G: 50 Gbit/s ", + "allowMultiNicInSameSubnetwork": { + "description": "Specifies whether multi-nic in the same subnetwork is allowed.", "enum": [ - "BPS_100M", - "BPS_10G", - "BPS_1G", - "BPS_200M", - "BPS_20G", - "BPS_2G", - "BPS_300M", - "BPS_400M", - "BPS_500M", - "BPS_50G", - "BPS_50M", - "BPS_5G" + "MULTI_NIC_IN_SAME_SUBNETWORK_ALLOWED", + "MULTI_NIC_IN_SAME_SUBNETWORK_BLOCKED" ], "enumDescriptions": [ - "100 Mbit/s", - "10 Gbit/s", - "1 Gbit/s", - "200 Mbit/s", - "20 Gbit/s", - "2 Gbit/s", - "300 Mbit/s", - "400 Mbit/s", - "500 Mbit/s", - "50 Gbit/s", - "50 Mbit/s", - "5 Gbit/s" + "", + "" ], "type": "string" }, - "candidateIpv6Subnets": { - "description": "This field is not available.", - "items": { - "type": "string" - }, - "type": "array" - }, - "candidateSubnets": { - "description": "Up to 16 candidate prefixes that can be used to restrict the allocation of cloudRouterIpAddress and customerRouterIpAddress for this attachment. All prefixes must be within link-local address space (169.254.0.0/16) and must be /29 or shorter (/28, /27, etc). Google will attempt to select an unused /29 from the supplied candidate prefix(es). The request will fail if all possible /29s are in use on Google's edge. If not supplied, Google will randomly select an unused /29 from all of link-local space.", - "items": { - "type": "string" - }, - "type": "array" - }, - "cloudRouterIpAddress": { - "description": "[Output Only] IPv4 address + prefix length to be configured on Cloud Router Interface for this interconnect attachment.", + "allowMulticast": { + "description": "Specifies whether multicast is allowed.", + "enum": [ + "MULTICAST_ALLOWED", + "MULTICAST_BLOCKED" + ], + "enumDescriptions": [ + "", + "" + ], "type": "string" }, - "cloudRouterIpv6Address": { - "description": "[Output Only] IPv6 address + prefix length to be configured on Cloud Router Interface for this interconnect attachment.", + "allowNcc": { + "description": "Specifies whether NCC is allowed.", + "enum": [ + "NCC_ALLOWED", + "NCC_BLOCKED" + ], + "enumDescriptions": [ + "", + "" + ], "type": "string" }, - "cloudRouterIpv6InterfaceId": { - "description": "This field is not available.", + "allowNetworkMigration": { + "description": "Specifies whether VM network migration is allowed.", + "enum": [ + "NETWORK_MIGRATION_ALLOWED", + "NETWORK_MIGRATION_BLOCKED" + ], + "enumDescriptions": [ + "", + "" + ], "type": "string" }, - "configurationConstraints": { - "$ref": "InterconnectAttachmentConfigurationConstraints", - "description": "[Output Only] Constraints for this attachment, if any. The attachment does not work if these constraints are not met." - }, - "creationTimestamp": { - "description": "[Output Only] Creation timestamp in RFC3339 text format.", + "allowPacketMirroring": { + "description": "Specifies whether Packet Mirroring 1.0 is supported.", + "enum": [ + "PACKET_MIRRORING_ALLOWED", + "PACKET_MIRRORING_BLOCKED" + ], + "enumDescriptions": [ + "", + "" + ], "type": "string" }, - "customerRouterIpAddress": { - "description": "[Output Only] IPv4 address + prefix length to be configured on the customer router subinterface for this interconnect attachment.", + "allowPrivateGoogleAccess": { + "description": "Specifies whether private Google access is allowed.", + "enum": [ + "PRIVATE_GOOGLE_ACCESS_ALLOWED", + "PRIVATE_GOOGLE_ACCESS_BLOCKED" + ], + "enumDescriptions": [ + "", + "" + ], "type": "string" }, - "customerRouterIpv6Address": { - "description": "[Output Only] IPv6 address + prefix length to be configured on the customer router subinterface for this interconnect attachment.", + "allowPsc": { + "description": "Specifies whether PSC creation is allowed.", + "enum": [ + "PSC_ALLOWED", + "PSC_BLOCKED" + ], + "enumDescriptions": [ + "", + "" + ], "type": "string" }, - "customerRouterIpv6InterfaceId": { - "description": "This field is not available.", + "allowSameNetworkUnicast": { + "description": "Specifies whether unicast within the same network is allowed.", + "enum": [ + "SAME_NETWORK_UNICAST_ALLOWED", + "SAME_NETWORK_UNICAST_BLOCKED" + ], + "enumDescriptions": [ + "", + "" + ], "type": "string" }, - "dataplaneVersion": { - "description": "[Output Only] Dataplane version for this InterconnectAttachment. This field is only present for Dataplane version 2 and higher. Absence of this field in the API output indicates that the Dataplane is version 1.", - "format": "int32", - "type": "integer" - }, - "description": { - "description": "An optional description of this resource.", + "allowStaticRoutes": { + "description": "Specifies whether static route creation is allowed.", + "enum": [ + "STATIC_ROUTES_ALLOWED", + "STATIC_ROUTES_BLOCKED" + ], + "enumDescriptions": [ + "", + "" + ], "type": "string" }, - "edgeAvailabilityDomain": { - "description": "Desired availability domain for the attachment. Only available for type PARTNER, at creation time, and can take one of the following values: - AVAILABILITY_DOMAIN_ANY - AVAILABILITY_DOMAIN_1 - AVAILABILITY_DOMAIN_2 For improved reliability, customers should configure a pair of attachments, one per availability domain. The selected availability domain will be provided to the Partner via the pairing key, so that the provisioned circuit will lie in the specified domain. If not specified, the value will default to AVAILABILITY_DOMAIN_ANY.", + "allowSubInterfaces": { + "description": "Specifies whether sub interfaces are allowed.", "enum": [ - "AVAILABILITY_DOMAIN_1", - "AVAILABILITY_DOMAIN_2", - "AVAILABILITY_DOMAIN_ANY" + "SUBINTERFACES_ALLOWED", + "SUBINTERFACES_BLOCKED" ], "enumDescriptions": [ - "", "", "" ], "type": "string" }, - "encryption": { - "description": "Indicates the user-supplied encryption option of this VLAN attachment (interconnectAttachment). Can only be specified at attachment creation for PARTNER or DEDICATED attachments. Possible values are: - NONE - This is the default value, which means that the VLAN attachment carries unencrypted traffic. VMs are able to send traffic to, or receive traffic from, such a VLAN attachment. - IPSEC - The VLAN attachment carries only encrypted traffic that is encrypted by an IPsec device, such as an HA VPN gateway or third-party IPsec VPN. VMs cannot directly send traffic to, or receive traffic from, such a VLAN attachment. To use *HA VPN over Cloud Interconnect*, the VLAN attachment must be created with this option. ", + "allowSubnetworkCreation": { + "description": "Specifies whether subnetwork creation is allowed.", "enum": [ - "IPSEC", - "NONE" + "SUBNETWORK_CREATION_ALLOWED", + "SUBNETWORK_CREATION_BLOCKED" ], "enumDescriptions": [ - "The interconnect attachment will carry only encrypted traffic that is encrypted by an IPsec device such as HA VPN gateway; VMs cannot directly send traffic to or receive traffic from such an interconnect attachment. To use HA VPN over Cloud Interconnect, the interconnect attachment must be created with this option.", - "This is the default value, which means the Interconnect Attachment will carry unencrypted traffic. VMs will be able to send traffic to or receive traffic from such interconnect attachment." + "", + "" ], "type": "string" }, - "googleReferenceId": { - "deprecated": true, - "description": "[Output Only] Google reference ID, to be used when raising support tickets with Google or otherwise to debug backend connectivity issues. [Deprecated] This field is not used.", + "allowVpcFirewallRules": { + "description": "Specifies whether VPC firewall rules can be created under the network.", + "enum": [ + "VPC_FIREWALL_RULES_ALLOWED", + "VPC_FIREWALL_RULES_BLOCKED" + ], + "enumDescriptions": [ + "", + "" + ], "type": "string" }, - "id": { - "description": "[Output Only] The unique identifier for the resource. This identifier is defined by the server.", - "format": "uint64", + "allowVpcPeering": { + "description": "Specifies whether VPC peering is allowed.", + "enum": [ + "VPC_PEERING_ALLOWED", + "VPC_PEERING_BLOCKED" + ], + "enumDescriptions": [ + "", + "" + ], "type": "string" }, - "interconnect": { - "description": "URL of the underlying Interconnect object that this attachment's traffic will traverse through.", + "allowVpn": { + "description": "Specifies whether VPN creation is allowed.", + "enum": [ + "VPN_ALLOWED", + "VPN_BLOCKED" + ], + "enumDescriptions": [ + "", + "" + ], "type": "string" }, - "ipsecInternalAddresses": { - "description": "A list of URLs of addresses that have been reserved for the VLAN attachment. Used only for the VLAN attachment that has the encryption option as IPSEC. The addresses must be regional internal IP address ranges. When creating an HA VPN gateway over the VLAN attachment, if the attachment is configured to use a regional internal IP address, then the VPN gateway's IP address is allocated from the IP address range specified here. For example, if the HA VPN gateway's interface 0 is paired to this VLAN attachment, then a regional internal IP address for the VPN gateway interface 0 will be allocated from the IP address specified for this VLAN attachment. If this field is not specified when creating the VLAN attachment, then later on when creating an HA VPN gateway on this VLAN attachment, the HA VPN gateway's IP address is allocated from the regional external IP address pool.", + "firewallPolicyTypes": { "items": { + "enum": [ + "RDMA_ROCE_POLICY", + "ULL_POLICY", + "VPC_POLICY" + ], + "enumDescriptions": [ + "", + "", + "" + ], "type": "string" }, "type": "array" }, - "kind": { - "default": "compute#interconnectAttachment", - "description": "[Output Only] Type of the resource. Always compute#interconnectAttachment for interconnect attachments.", - "type": "string" - }, - "labelFingerprint": { - "description": "A fingerprint for the labels being applied to this InterconnectAttachment, which is essentially a hash of the labels set used for optimistic locking. The fingerprint is initially generated by Compute Engine and changes after every request to modify or update labels. You must always provide an up-to-date fingerprint hash in order to update or change labels, otherwise the request will fail with error 412 conditionNotMet. To see the latest fingerprint, make a get() request to retrieve an InterconnectAttachment.", - "format": "byte", - "type": "string" - }, - "labels": { - "additionalProperties": { + "interfaceTypes": { + "description": "If set, limits the interface types that the network supports. If\nempty, all interface types are supported.", + "items": { + "enum": [ + "GVNIC", + "IDPF", + "IRDMA", + "MRDMA", + "UNSPECIFIED_NIC_TYPE", + "VIRTIO_NET" + ], + "enumDescriptions": [ + "GVNIC", + "IDPF", + "IRDMA", + "MRDMA", + "No type specified.", + "VIRTIO" + ], "type": "string" }, - "description": "Labels for this resource. These can only be added or modified by the setLabels method. Each label key/value pair must comply with RFC1035. Label values may be empty.", - "type": "object" - }, - "mtu": { - "description": "Maximum Transmission Unit (MTU), in bytes, of packets passing through this interconnect attachment. Only 1440 and 1500 are allowed. If not specified, the value will default to 1440.", - "format": "int32", - "type": "integer" - }, - "name": { - "description": "Name of the resource. Provided by the client when the resource is created. The name must be 1-63 characters long, and comply with RFC1035. 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" + "type": "array" }, - "operationalStatus": { - "description": "[Output Only] The current status of whether or not this interconnect attachment is functional, which can take one of the following values: - OS_ACTIVE: The attachment has been turned up and is ready to use. - OS_UNPROVISIONED: The attachment is not ready to use yet, because turnup is not complete. ", + "multicast": { + "description": "Specifies which type of multicast is supported.", "enum": [ - "OS_ACTIVE", - "OS_UNPROVISIONED" + "MULTICAST_SDN", + "MULTICAST_ULL" ], "enumDescriptions": [ - "Indicates that attachment has been turned up and is ready to use.", - "Indicates that attachment is not ready to use yet, because turnup is not complete." + "", + "" ], "type": "string" }, - "pairingKey": { - "description": "[Output only for type PARTNER. Input only for PARTNER_PROVIDER. Not present for DEDICATED]. The opaque identifier of a PARTNER attachment used to initiate provisioning with a selected partner. Of the form \"XXXXX/region/domain\"", + "predefinedNetworkInternalIpv6Range": { + "description": "Specifies a predefined internal IPv6 range for the network.", "type": "string" }, - "partnerAsn": { - "description": "Optional BGP ASN for the router supplied by a Layer 3 Partner if they configured BGP on behalf of the customer. Output only for PARTNER type, input only for PARTNER_PROVIDER, not available for DEDICATED.", - "format": "int64", - "type": "string" + "predefinedSubnetworkRanges": { + "description": "Predefined subnetwork ranges for the network.", + "items": { + "$ref": "NetworkProfileNetworkFeaturesPredefinedSubnetworkRange" + }, + "type": "array" }, - "partnerMetadata": { - "$ref": "InterconnectAttachmentPartnerMetadata", - "description": "Informational metadata about Partner attachments from Partners to display to customers. Output only for PARTNER type, mutable for PARTNER_PROVIDER, not available for DEDICATED." + "subnetPurposes": { + "description": "Specifies which subnetwork purposes are supported.", + "items": { + "enum": [ + "SUBNET_PURPOSE_CUSTOM_HARDWARE", + "SUBNET_PURPOSE_PRIVATE" + ], + "enumDescriptions": [ + "", + "" + ], + "type": "string" + }, + "type": "array" }, - "privateInterconnectInfo": { - "$ref": "InterconnectAttachmentPrivateInfo", - "description": "[Output Only] Information specific to an InterconnectAttachment. This property is populated if the interconnect that this is attached to is of type DEDICATED." + "subnetStackTypes": { + "description": "Specifies which subnetwork stack types are supported.", + "items": { + "enum": [ + "SUBNET_STACK_TYPE_IPV4_IPV6", + "SUBNET_STACK_TYPE_IPV4_ONLY", + "SUBNET_STACK_TYPE_IPV6_ONLY" + ], + "enumDescriptions": [ + "", + "", + "" + ], + "type": "string" + }, + "type": "array" }, - "region": { - "description": "[Output Only] URL of the region where the regional interconnect attachment resides. You must specify this field as part of the HTTP request URL. It is not settable as a field in the request body.", - "type": "string" + "subnetworkPurposes": { + "description": "Output only. Specifies which subnetwork purposes are supported.", + "items": { + "enum": [ + "GLOBAL_MANAGED_PROXY", + "INTERNAL_HTTPS_LOAD_BALANCER", + "PEER_MIGRATION", + "PRIVATE", + "PRIVATE_NAT", + "PRIVATE_RFC_1918", + "PRIVATE_SERVICE_CONNECT", + "REGIONAL_MANAGED_PROXY" + ], + "enumDescriptions": [ + "Subnet reserved for Global Envoy-based Load Balancing.", + "Subnet reserved for Internal HTTP(S) Load Balancing. This is a legacy\npurpose, please use REGIONAL_MANAGED_PROXY instead.", + "Subnetwork will be used for Migration from one peered VPC to another.\n(a transient state of subnetwork\nwhile migrating resources from one project to another).", + "Regular user created or automatically created subnet.", + "Subnetwork used as source range for Private NAT Gateways.", + "Regular user created or automatically created subnet.", + "Subnetworks created for Private Service Connect in the producer network.", + "Subnetwork used for Regional Envoy-based Load Balancing." + ], + "type": "string" + }, + "readOnly": true, + "type": "array" }, - "remoteService": { - "description": "[Output Only] If the attachment is on a Cross-Cloud Interconnect connection, this field contains the interconnect's remote location service provider. Example values: \"Amazon Web Services\" \"Microsoft Azure\". The field is set only for attachments on Cross-Cloud Interconnect connections. Its value is copied from the InterconnectRemoteLocation remoteService field.", - "type": "string" + "subnetworkStackTypes": { + "description": "Output only. Specifies which subnetwork stack types are supported.", + "items": { + "enum": [ + "IPV4_IPV6", + "IPV4_ONLY", + "IPV6_ONLY" + ], + "enumDescriptions": [ + "New VMs in this subnet can have both IPv4 and IPv6 addresses.", + "New VMs in this subnet will only be assigned IPv4 addresses.", + "New VMs in this subnet will only be assigned IPv6 addresses." + ], + "type": "string" + }, + "readOnly": true, + "type": "array" }, - "router": { - "description": "URL of the Cloud Router to be used for dynamic routing. This router must be in the same region as this InterconnectAttachment. The InterconnectAttachment will automatically connect the Interconnect to the network \u0026 region within which the Cloud Router is configured.", + "unicast": { + "description": "Specifies which type of unicast is supported.", + "enum": [ + "UNICAST_SDN", + "UNICAST_ULL" + ], + "enumDescriptions": [ + "", + "" + ], "type": "string" - }, - "satisfiesPzs": { - "description": "[Output Only] Reserved for future use.", - "type": "boolean" - }, - "selfLink": { - "description": "[Output Only] Server-defined URL for the resource.", + } + }, + "type": "object" + }, + "NetworkProfileNetworkFeaturesPredefinedSubnetworkRange": { + "id": "NetworkProfileNetworkFeaturesPredefinedSubnetworkRange", + "properties": { + "ipv6Range": { + "description": "The IPv6 range of the predefined subnetwork.", "type": "string" }, - "stackType": { - "description": "The stack type for this interconnect attachment to identify whether the IPv6 feature is enabled or not. If not specified, IPV4_ONLY will be used. This field can be both set at interconnect attachments creation and update interconnect attachment operations.", + "namePrefix": { + "description": "The naming prefix of the predefined subnetwork.", + "type": "string" + } + }, + "type": "object" + }, + "NetworkProfileProfileType": { + "id": "NetworkProfileProfileType", + "properties": { + "networkType": { "enum": [ - "IPV4_IPV6", - "IPV4_ONLY" + "RDMA", + "ULL", + "VPC" ], "enumDescriptions": [ - "The interconnect attachment can have both IPv4 and IPv6 addresses.", - "The interconnect attachment will only be assigned IPv4 addresses." + "RDMA network.", + "ULL network.", + "VPC network." ], "type": "string" }, - "state": { - "description": "[Output Only] The current state of this attachment's functionality. Enum values ACTIVE and UNPROVISIONED are shared by DEDICATED/PRIVATE, PARTNER, and PARTNER_PROVIDER interconnect attachments, while enum values PENDING_PARTNER, PARTNER_REQUEST_RECEIVED, and PENDING_CUSTOMER are used for only PARTNER and PARTNER_PROVIDER interconnect attachments. This state can take one of the following values: - ACTIVE: The attachment has been turned up and is ready to use. - UNPROVISIONED: The attachment is not ready to use yet, because turnup is not complete. - PENDING_PARTNER: A newly-created PARTNER attachment that has not yet been configured on the Partner side. - PARTNER_REQUEST_RECEIVED: A PARTNER attachment is in the process of provisioning after a PARTNER_PROVIDER attachment was created that references it. - PENDING_CUSTOMER: A PARTNER or PARTNER_PROVIDER attachment that is waiting for a customer to activate it. - DEFUNCT: The attachment was deleted externally and is no longer functional. This could be because the associated Interconnect was removed, or because the other side of a Partner attachment was deleted. ", + "rdmaSubtype": { "enum": [ - "ACTIVE", - "DEFUNCT", - "PARTNER_REQUEST_RECEIVED", - "PENDING_CUSTOMER", - "PENDING_PARTNER", - "STATE_UNSPECIFIED", - "UNPROVISIONED" + "FALCON", + "ROCE", + "ROCE_METAL" ], "enumDescriptions": [ - "Indicates that attachment has been turned up and is ready to use.", - "The attachment was deleted externally and is no longer functional. This could be because the associated Interconnect was wiped out, or because the other side of a Partner attachment was deleted.", - "A PARTNER attachment is in the process of provisioning after a PARTNER_PROVIDER attachment was created that references it.", - "PARTNER or PARTNER_PROVIDER attachment that is waiting for the customer to activate.", - "A newly created PARTNER attachment that has not yet been configured on the Partner side.", - "", - "Indicates that attachment is not ready to use yet, because turnup is not complete." + "RDMA over Falcon.", + "RDMA over Converged Ethernet (RoCE).", + "RDMA over Converged Ethernet (RoCE) for Bare Metal." ], "type": "string" }, - "subnetLength": { - "description": "Length of the IPv4 subnet mask. Allowed values: - 29 (default) - 30 The default value is 29, except for Cross-Cloud Interconnect connections that use an InterconnectRemoteLocation with a constraints.subnetLengthRange.min equal to 30. For example, connections that use an Azure remote location fall into this category. In these cases, the default value is 30, and requesting 29 returns an error. Where both 29 and 30 are allowed, 29 is preferred, because it gives Google Cloud Support more debugging visibility. ", - "format": "int32", - "type": "integer" - }, - "type": { - "description": "The type of interconnect attachment this is, which can take one of the following values: - DEDICATED: an attachment to a Dedicated Interconnect. - PARTNER: an attachment to a Partner Interconnect, created by the customer. - PARTNER_PROVIDER: an attachment to a Partner Interconnect, created by the partner. ", + "ullSubtype": { "enum": [ - "DEDICATED", - "PARTNER", - "PARTNER_PROVIDER" + "OPERATOR", + "PARTICIPANT" ], "enumDescriptions": [ - "Attachment to a dedicated interconnect.", - "Attachment to a partner interconnect, created by the customer.", - "Attachment to a partner interconnect, created by the partner." + "Exchange operator.", + "Exchange participant." ], "type": "string" }, - "vlanTag8021q": { - "description": "The IEEE 802.1Q VLAN tag for this attachment, in the range 2-4093. Only specified at creation time.", - "format": "int32", - "type": "integer" + "vpcSubtype": { + "enum": [ + "REGIONAL" + ], + "enumDescriptions": [ + "Regionally bound VPC network." + ], + "type": "string" } }, "type": "object" }, - "InterconnectAttachmentAggregatedList": { - "id": "InterconnectAttachmentAggregatedList", + "NetworkProfilesListResponse": { + "description": "Contains a list of network profiles.", + "id": "NetworkProfilesListResponse", "properties": { + "etag": { + "type": "string" + }, "id": { "description": "[Output Only] Unique identifier for the resource; defined by the server.", "type": "string" }, - "items": { - "additionalProperties": { - "$ref": "InterconnectAttachmentsScopedList", - "description": "Name of the scope containing this set of interconnect attachments." + "items": { + "description": "A list of NetworkProfile resources.", + "items": { + "$ref": "NetworkProfile" }, - "description": "A list of InterconnectAttachmentsScopedList resources.", - "type": "object" + "type": "array" }, "kind": { - "default": "compute#interconnectAttachmentAggregatedList", - "description": "[Output Only] Type of resource. Always compute#interconnectAttachmentAggregatedList for aggregated lists of interconnect attachments.", + "default": "compute#networkProfileList", + "description": "Output only. [Output Only] Type of resource. Alwayscompute#networkProfileList for network profiles.", + "readOnly": true, "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.", + "description": "[Output Only] This token allows you to get the next page of results for\nlist requests. If the number of results is larger thanmaxResults, use the nextPageToken as a value\nfor\nthe query parameter pageToken in the next list request.\nSubsequent list requests will have their own nextPageToken\nto\ncontinue paging through the results.", "type": "string" }, "selfLink": { - "description": "[Output Only] Server-defined URL for this resource.", + "description": "Output only. [Output Only] Server-defined URL for this resource.", + "readOnly": true, "type": "string" }, "unreachables": { - "description": "[Output Only] Unreachable resources.", + "description": "Output only. [Output Only] Unreachable resources.\nend_interface: MixerListResponseWithEtagBuilder", "items": { "type": "string" }, + "readOnly": true, "type": "array" }, "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.", + "description": "[Output Only] A warning code, if applicable. For example, Compute\nEngine returns NO_RESULTS_ON_PAGE if there\nare no results in the response.", "enum": [ "CLEANUP_FAILED", "DEPRECATED_RESOURCE_USED", @@ -54528,6 +81412,7 @@ "NOT_CRITICAL_ERROR", "NO_RESULTS_ON_PAGE", "PARTIAL_SUCCESS", + "QUOTA_INFO_UNAVAILABLE", "REQUIRED_TOS_AGREEMENT", "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", "RESOURCE_NOT_DELETED", @@ -54564,46 +81449,48 @@ false, false, false, + false, false ], "enumDescriptions": [ - "Warning about failed cleanup of transient changes made by a failed operation.", + "Warning about failed cleanup of transient changes made by a failed\noperation.", "A link to a deprecated resource was created.", - "When deploying and at least one of the resources has a type marked as deprecated", + "When deploying and at least one of the resources has a type marked as\ndeprecated", "The user created a boot disk that is larger than image size.", - "When deploying and at least one of the resources has a type marked as experimental", + "When deploying and at least one of the resources has a type marked as\nexperimental", "Warning that is present in an external api call", - "Warning that value of a field has been overridden. Deprecated unused field.", + "Warning that value of a field has been overridden.\nDeprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", - "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is\nnot of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", - "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", + "Resource can't be retrieved due to list overhead quota exceed\nwhich captures the amount of resources filtered out by\nuser-defined list filter.", "A resource depends on a missing type", - "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's nextHopIp address is not assigned to an instance on the\nnetwork.", "The route's next hop instance cannot ip forward.", - "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not have an\nipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", - "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that is not on the\nsame network as the route.", "The route's next hop instance does not have a status of RUNNING.", - "Error which is not critical. We decided to continue the process despite the mentioned error.", + "Error which is not critical. We decided to continue the process despite\nthe mentioned error.", "No results are present on a particular list page.", "Success is reported, but some results may be missing due to errors", - "The user attempted to use a resource that requires a TOS they have not accepted.", + "Quota information is not available to client requests (e.g:\nregions.list).", + "The user attempted to use a resource that requires a TOS they have not\naccepted.", "Warning that a resource is in use.", - "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "One or more of the resources set to auto-delete could not be deleted\nbecause they were in use.", "When a resource schema validation is ignored.", - "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", + "Instance template used in instance group manager is valid as such, but\nits application does not make a lot of sense, because it allows only\nsingle instance in instance group.", "When undeclared properties in the schema are present", "A given scope cannot be reached." ], "type": "string" }, "data": { - "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", + "description": "[Output Only] Metadata about this warning in key:\nvalue format. For example:\n\n\"data\": [\n {\n \"key\": \"scope\",\n \"value\": \"zones/us-east1-d\"\n }", "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).", + "description": "[Output Only] A key that provides more detail on the warning being\nreturned. For example, for warnings where there are no results in a list\nrequest for a particular zone, this key might be scope and\nthe key value might be the zone name. Other examples might be a key\nindicating a deprecated resource and a suggested replacement, or a\nwarning about invalid network settings (for example, if an instance\nattempts to perform IP forwarding but is not enabled for IP forwarding).", "type": "string" }, "value": { @@ -54625,80 +81512,375 @@ }, "type": "object" }, - "InterconnectAttachmentConfigurationConstraints": { - "id": "InterconnectAttachmentConfigurationConstraints", + "NetworkRoutingConfig": { + "description": "A routing configuration attached to a network resource. The message\nincludes the list of routers associated with the network, and a flag\nindicating the type of routing behavior to enforce network-wide.", + "id": "NetworkRoutingConfig", "properties": { - "bgpMd5": { - "description": "[Output Only] Whether the attachment's BGP session requires/allows/disallows BGP MD5 authentication. This can take one of the following values: MD5_OPTIONAL, MD5_REQUIRED, MD5_UNSUPPORTED. For example, a Cross-Cloud Interconnect connection to a remote cloud provider that requires BGP MD5 authentication has the interconnectRemoteLocation attachment_configuration_constraints.bgp_md5 field set to MD5_REQUIRED, and that property is propagated to the attachment. Similarly, if BGP MD5 is MD5_UNSUPPORTED, an error is returned if MD5 is requested.", + "bgpAlwaysCompareMed": { + "description": "Enable comparison of Multi-Exit Discriminators (MED) across routes with\ndifferent neighbor ASNs when using the STANDARD BGP best path selection\nalgorithm.", + "type": "boolean" + }, + "bgpBestPathSelectionMode": { + "description": "The BGP best path selection algorithm to be employed within this network\nfor dynamic routes learned by Cloud Routers. Can be LEGACY\n(default) or STANDARD.", "enum": [ - "MD5_OPTIONAL", - "MD5_REQUIRED", - "MD5_UNSUPPORTED" + "LEGACY", + "STANDARD" ], "enumDescriptions": [ - "MD5_OPTIONAL: BGP MD5 authentication is supported and can optionally be configured.", - "MD5_REQUIRED: BGP MD5 authentication must be configured.", - "MD5_UNSUPPORTED: BGP MD5 authentication must not be configured" + "", + "" ], "type": "string" }, - "bgpPeerAsnRanges": { - "description": "[Output Only] List of ASN ranges that the remote location is known to support. Formatted as an array of inclusive ranges {min: min-value, max: max-value}. For example, [{min: 123, max: 123}, {min: 64512, max: 65534}] allows the peer ASN to be 123 or anything in the range 64512-65534. This field is only advisory. Although the API accepts other ranges, these are the ranges that we recommend.", + "bgpInterRegionCost": { + "description": "Allows to define a preferred approach for handling inter-region cost in\nthe selection process when using the STANDARD BGP best path\nselection algorithm. Can be DEFAULT orADD_COST_TO_MED.", + "enum": [ + "ADD_COST_TO_MED", + "DEFAULT" + ], + "enumDescriptions": [ + "", + "" + ], + "type": "string" + }, + "effectiveBgpAlwaysCompareMed": { + "description": "Output only. [Output Only] Effective value of the bgp_always_compare_med\nfield.", + "readOnly": true, + "type": "boolean" + }, + "effectiveBgpInterRegionCost": { + "description": "Output only. [Output Only] Effective value of the bgp_inter_region_cost\nfield.", + "enum": [ + "ADD_COST_TO_MED", + "DEFAULT" + ], + "enumDescriptions": [ + "", + "" + ], + "readOnly": true, + "type": "string" + }, + "routingMode": { + "description": "The network-wide routing mode to use. If set to REGIONAL,\nthis network's Cloud Routers will only advertise routes with subnets\nof this network in the same region as the router. If set toGLOBAL, this network's Cloud Routers will advertise\nroutes with all subnets of this network, across regions.", + "enum": [ + "GLOBAL", + "REGIONAL" + ], + "enumDescriptions": [ + "", + "" + ], + "type": "string" + } + }, + "type": "object" + }, + "NetworksAddPeeringRequest": { + "id": "NetworksAddPeeringRequest", + "properties": { + "autoCreateRoutes": { + "description": "This field will be deprecated soon. Useexchange_subnet_routes in network_peering\ninstead.\nIndicates whether full mesh connectivity is created and managed\nautomatically between peered networks. Currently this field should always\nbe true since Google Compute Engine will automatically create and manage\nsubnetwork routes between two networks when peering state isACTIVE.", + "type": "boolean" + }, + "name": { + "annotations": { + "required": [ + "compute.networks.addPeering" + ] + }, + "description": "Name of the peering, which should conform to RFC1035.", + "type": "string" + }, + "networkPeering": { + "$ref": "NetworkPeering", + "description": "Network peering parameters.\nIn order to specify route policies for peering using import and export\ncustom routes, you must specify all peering related parameters\n(name, peer network,exchange_subnet_routes) in the network_peering\nfield.\nThe corresponding fields in NetworksAddPeeringRequest will be\ndeprecated soon." + }, + "peerNetwork": { + "description": "URL of the peer network. It can be either full URL or partial URL. The\npeer network may belong to a different project. If the partial URL does not\ncontain project, it is assumed that the peer network is in the same project\nas the current network.", + "type": "string" + } + }, + "type": "object" + }, + "NetworksCancelRequestRemovePeeringRequest": { + "id": "NetworksCancelRequestRemovePeeringRequest", + "properties": { + "name": { + "description": "Name of the peering, which should conform to RFC1035.", + "type": "string" + } + }, + "type": "object" + }, + "NetworksGetEffectiveFirewallsResponse": { + "id": "NetworksGetEffectiveFirewallsResponse", + "properties": { + "firewallPolicys": { + "description": "[Output Only] Effective firewalls from firewall policy. It returns Global\nNetwork Firewall Policies and Hierarchical Firewall Policies. UseregionNetworkFirewallPolicies.getEffectiveFirewalls to get\nRegional Network Firewall Policies as well.", "items": { - "$ref": "InterconnectAttachmentConfigurationConstraintsBgpPeerASNRange" + "$ref": "NetworksGetEffectiveFirewallsResponseEffectiveFirewallPolicy" + }, + "type": "array" + }, + "firewalls": { + "description": "Effective firewalls on the network.", + "items": { + "$ref": "Firewall" }, "type": "array" } }, "type": "object" }, - "InterconnectAttachmentConfigurationConstraintsBgpPeerASNRange": { - "id": "InterconnectAttachmentConfigurationConstraintsBgpPeerASNRange", + "NetworksGetEffectiveFirewallsResponseEffectiveFirewallPolicy": { + "id": "NetworksGetEffectiveFirewallsResponseEffectiveFirewallPolicy", "properties": { - "max": { - "format": "uint32", + "displayName": { + "deprecated": true, + "description": "Output only. [Output Only] Deprecated, please use short name instead. The display name\nof the firewall policy.", + "readOnly": true, + "type": "string" + }, + "name": { + "description": "Output only. [Output Only] The name of the firewall policy.", + "readOnly": true, + "type": "string" + }, + "packetMirroringRules": { + "description": "Output only. [Output Only] The packet mirroring rules that apply to the network.", + "items": { + "$ref": "FirewallPolicyRule" + }, + "readOnly": true, + "type": "array" + }, + "priority": { + "description": "Output only. [Output only] Priority of firewall policy association. Not applicable for\ntype=HIERARCHY.", + "format": "int32", + "readOnly": true, "type": "integer" }, - "min": { - "format": "uint32", + "rules": { + "description": "[Output Only] The rules that apply to the network.", + "items": { + "$ref": "FirewallPolicyRule" + }, + "type": "array" + }, + "shortName": { + "description": "Output only. [Output Only] The short name of the firewall policy.", + "readOnly": true, + "type": "string" + }, + "type": { + "description": "Output only. [Output Only] The type of the firewall policy.", + "enum": [ + "HIERARCHY", + "NETWORK", + "SYSTEM", + "UNSPECIFIED" + ], + "enumDescriptions": [ + "", + "", + "", + "" + ], + "readOnly": true, + "type": "string" + } + }, + "type": "object" + }, + "NetworksRemovePeeringRequest": { + "id": "NetworksRemovePeeringRequest", + "properties": { + "name": { + "description": "Name of the peering, which should conform to RFC1035.", + "type": "string" + } + }, + "type": "object" + }, + "NetworksRequestRemovePeeringRequest": { + "id": "NetworksRequestRemovePeeringRequest", + "properties": { + "name": { + "description": "Name of the peering, which should conform to RFC1035.", + "type": "string" + } + }, + "type": "object" + }, + "NetworksUpdatePeeringRequest": { + "id": "NetworksUpdatePeeringRequest", + "properties": { + "networkPeering": { + "$ref": "NetworkPeering" + } + }, + "type": "object" + }, + "NodeGroup": { + "description": "Represents a sole-tenant Node Group resource.\n\nA sole-tenant node is a physical server that is dedicated to\nhosting VM instances only for your specific project. Use sole-tenant nodes to\nkeep your instances physically separated from instances in other projects, or\nto group your instances together on the same host hardware. For more\ninformation, readSole-tenant nodes.", + "id": "NodeGroup", + "properties": { + "autoscalingPolicy": { + "$ref": "NodeGroupAutoscalingPolicy", + "description": "Specifies how autoscaling should behave." + }, + "creationTimestamp": { + "description": "Output only. [Output Only] Creation timestamp inRFC3339\ntext format.", + "readOnly": true, + "type": "string" + }, + "description": { + "description": "An optional description of this resource. Provide this property when you\ncreate the resource.", + "type": "string" + }, + "fingerprint": { + "format": "byte", + "type": "string" + }, + "id": { + "description": "Output only. [Output Only] The unique identifier for the resource. This identifier is\ndefined by the server.", + "format": "uint64", + "readOnly": true, + "type": "string" + }, + "kind": { + "default": "compute#nodeGroup", + "description": "Output only. [Output Only] The type of the resource. Alwayscompute#nodeGroup for node group.", + "readOnly": true, + "type": "string" + }, + "locationHint": { + "description": "An opaque location hint used to place the Node close to other\nresources.\nThis field is for use by internal tools that use the public API.\nThe location hint here on the NodeGroup overrides any location_hint\npresent in the NodeTemplate.", + "type": "string" + }, + "maintenanceInterval": { + "description": "Specifies the frequency of planned maintenance events. The accepted values\nare: `AS_NEEDED` and `RECURRENT`.", + "enum": [ + "AS_NEEDED", + "RECURRENT" + ], + "enumDescriptions": [ + "VMs are eligible to receive infrastructure and hypervisor updates as they\nbecome available. This may result in more maintenance operations (live\nmigrations or terminations) for the VM than the PERIODIC andRECURRENT options.", + "VMs receive infrastructure and hypervisor updates on a periodic basis,\nminimizing the number of maintenance operations (live migrations or\nterminations) on an individual VM. This may mean a VM will take longer\nto receive an update than if it was configured forAS_NEEDED. Security updates will still be applied as soon\nas they are available. RECURRENT is used for GEN3 and Slice\nof Hardware VMs." + ], + "type": "string" + }, + "maintenancePolicy": { + "description": "Specifies how to handle instances when a node in the group undergoes\nmaintenance. Set to one of: DEFAULT,RESTART_IN_PLACE, or MIGRATE_WITHIN_NODE_GROUP.\nThe default value is DEFAULT. For more information, see\nMaintenance policies.", + "enum": [ + "DEFAULT", + "MAINTENANCE_POLICY_UNSPECIFIED", + "MIGRATE_WITHIN_NODE_GROUP", + "RESTART_IN_PLACE" + ], + "enumDescriptions": [ + "Allow the node and corresponding instances to retain default\nmaintenance behavior.", + "", + "When maintenance must be done on a node, the instances on that node will\nbe moved to other nodes in the group.\nInstances with onHostMaintenance = MIGRATE will live migrate to their\ndestinations while instances with onHostMaintenance = TERMINATE will\nterminate and then restart on their destination nodes if\nautomaticRestart = true.", + "Instances in this group will restart on the same node when maintenance\nhas completed. Instances must have onHostMaintenance = TERMINATE, and\nthey will only restart if automaticRestart = true." + ], + "type": "string" + }, + "maintenanceWindow": { + "$ref": "NodeGroupMaintenanceWindow" + }, + "name": { + "description": "The name of the resource, provided by the client when initially creating\nthe resource. The resource name must be 1-63 characters long, and comply\nwithRFC1035.\nSpecifically, the name must be 1-63 characters long and match the regular\nexpression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first\ncharacter must be a lowercase letter, and all following characters must be\na dash, lowercase letter, or digit, except the last character, which cannot\nbe a dash.", + "type": "string" + }, + "nodeTemplate": { + "description": "URL of the node template to create the node group from.", + "type": "string" + }, + "selfLink": { + "description": "Output only. [Output Only] Server-defined URL for the resource.", + "readOnly": true, + "type": "string" + }, + "shareSettings": { + "$ref": "ShareSettings", + "description": "Share-settings for the node group" + }, + "size": { + "description": "Output only. [Output Only] The total number of nodes in the node group.", + "format": "int32", + "readOnly": true, "type": "integer" + }, + "status": { + "enum": [ + "CREATING", + "DELETING", + "INVALID", + "READY" + ], + "enumDescriptions": [ + "", + "", + "", + "" + ], + "readOnly": true, + "type": "string" + }, + "zone": { + "description": "Output only. [Output Only] The name of the zone where the node group resides,\nsuch as us-central1-a.", + "readOnly": true, + "type": "string" } }, "type": "object" }, - "InterconnectAttachmentList": { - "description": "Response to the list request, and contains a list of interconnect attachments.", - "id": "InterconnectAttachmentList", + "NodeGroupAggregatedList": { + "id": "NodeGroupAggregatedList", "properties": { "id": { "description": "[Output Only] Unique identifier for the resource; defined by the server.", "type": "string" }, "items": { - "description": "A list of InterconnectAttachment resources.", - "items": { - "$ref": "InterconnectAttachment" + "additionalProperties": { + "$ref": "NodeGroupsScopedList", + "description": "[Output Only] Name of the scope containing this set of node groups." }, - "type": "array" + "description": "A list of NodeGroupsScopedList resources.", + "type": "object" }, "kind": { - "default": "compute#interconnectAttachmentList", - "description": "[Output Only] Type of resource. Always compute#interconnectAttachmentList for lists of interconnect attachments.", + "default": "compute#nodeGroupAggregatedList", + "description": "Output only. [Output Only] Type of resource.Alwayscompute#nodeGroupAggregatedList for aggregated lists of node\ngroups.", + "readOnly": true, "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.", + "description": "[Output Only] This token allows you to get the next page of results for\nlist requests. If the number of results is larger thanmaxResults, use the nextPageToken as a value for\nthe query parameter pageToken in the next list request.\nSubsequent list requests will have their own nextPageToken to\ncontinue paging through the results.", "type": "string" }, "selfLink": { - "description": "[Output Only] Server-defined URL for this resource.", + "description": "Output only. [Output Only] Server-defined URL for this resource.", + "readOnly": true, "type": "string" }, + "unreachables": { + "description": "Output only. [Output Only] Unreachable resources.", + "items": { + "type": "string" + }, + "readOnly": true, + "type": "array" + }, "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.", + "description": "[Output Only] A warning code, if applicable. For example, Compute\nEngine returns NO_RESULTS_ON_PAGE if there\nare no results in the response.", "enum": [ "CLEANUP_FAILED", "DEPRECATED_RESOURCE_USED", @@ -54721,6 +81903,7 @@ "NOT_CRITICAL_ERROR", "NO_RESULTS_ON_PAGE", "PARTIAL_SUCCESS", + "QUOTA_INFO_UNAVAILABLE", "REQUIRED_TOS_AGREEMENT", "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", "RESOURCE_NOT_DELETED", @@ -54757,46 +81940,48 @@ false, false, false, + false, false ], "enumDescriptions": [ - "Warning about failed cleanup of transient changes made by a failed operation.", + "Warning about failed cleanup of transient changes made by a failed\noperation.", "A link to a deprecated resource was created.", - "When deploying and at least one of the resources has a type marked as deprecated", + "When deploying and at least one of the resources has a type marked as\ndeprecated", "The user created a boot disk that is larger than image size.", - "When deploying and at least one of the resources has a type marked as experimental", + "When deploying and at least one of the resources has a type marked as\nexperimental", "Warning that is present in an external api call", - "Warning that value of a field has been overridden. Deprecated unused field.", + "Warning that value of a field has been overridden.\nDeprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", - "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is\nnot of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", - "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", + "Resource can't be retrieved due to list overhead quota exceed\nwhich captures the amount of resources filtered out by\nuser-defined list filter.", "A resource depends on a missing type", - "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's nextHopIp address is not assigned to an instance on the\nnetwork.", "The route's next hop instance cannot ip forward.", - "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not have an\nipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", - "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that is not on the\nsame network as the route.", "The route's next hop instance does not have a status of RUNNING.", - "Error which is not critical. We decided to continue the process despite the mentioned error.", + "Error which is not critical. We decided to continue the process despite\nthe mentioned error.", "No results are present on a particular list page.", "Success is reported, but some results may be missing due to errors", - "The user attempted to use a resource that requires a TOS they have not accepted.", + "Quota information is not available to client requests (e.g:\nregions.list).", + "The user attempted to use a resource that requires a TOS they have not\naccepted.", "Warning that a resource is in use.", - "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "One or more of the resources set to auto-delete could not be deleted\nbecause they were in use.", "When a resource schema validation is ignored.", - "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", + "Instance template used in instance group manager is valid as such, but\nits application does not make a lot of sense, because it allows only\nsingle instance in instance group.", "When undeclared properties in the schema are present", "A given scope cannot be reached." ], "type": "string" }, "data": { - "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", + "description": "[Output Only] Metadata about this warning in key:\nvalue format. For example:\n\n\"data\": [\n {\n \"key\": \"scope\",\n \"value\": \"zones/us-east1-d\"\n }", "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).", + "description": "[Output Only] A key that provides more detail on the warning being\nreturned. For example, for warnings where there are no results in a list\nrequest for a particular zone, this key might be scope and\nthe key value might be the zone name. Other examples might be a key\nindicating a deprecated resource and a suggested replacement, or a\nwarning about invalid network settings (for example, if an instance\nattempts to perform IP forwarding but is not enabled for IP forwarding).", "type": "string" }, "value": { @@ -54818,52 +82003,73 @@ }, "type": "object" }, - "InterconnectAttachmentPartnerMetadata": { - "description": "Informational metadata about Partner attachments from Partners to display to customers. These fields are propagated from PARTNER_PROVIDER attachments to their corresponding PARTNER attachments.", - "id": "InterconnectAttachmentPartnerMetadata", + "NodeGroupAutoscalingPolicy": { + "id": "NodeGroupAutoscalingPolicy", "properties": { - "interconnectName": { - "description": "Plain text name of the Interconnect this attachment is connected to, as displayed in the Partner's portal. For instance \"Chicago 1\". This value may be validated to match approved Partner values.", - "type": "string" + "maxNodes": { + "description": "The maximum number of nodes that the group should have. Must be set if\nautoscaling is enabled. Maximum value allowed is 100.", + "format": "int32", + "type": "integer" }, - "partnerName": { - "description": "Plain text name of the Partner providing this attachment. This value may be validated to match approved Partner values.", - "type": "string" + "minNodes": { + "description": "The minimum number of nodes that the group should have.", + "format": "int32", + "type": "integer" }, - "portalUrl": { - "description": "URL of the Partner's portal for this Attachment. Partners may customise this to be a deep link to the specific resource on the Partner portal. This value may be validated to match approved Partner values.", + "mode": { + "description": "The autoscaling mode. Set to one of: ON, OFF,\nor ONLY_SCALE_OUT. For more information, see \nAutoscaler modes.", + "enum": [ + "MODE_UNSPECIFIED", + "OFF", + "ON", + "ONLY_SCALE_OUT" + ], + "enumDescriptions": [ + "", + "Autoscaling is disabled.", + "Autocaling is fully enabled.", + "Autoscaling will only scale out and will not remove nodes." + ], "type": "string" } }, "type": "object" }, - "InterconnectAttachmentPrivateInfo": { - "description": "Information for an interconnect attachment when this belongs to an interconnect of type DEDICATED.", - "id": "InterconnectAttachmentPrivateInfo", - "properties": { - "tag8021q": { - "description": "[Output Only] 802.1q encapsulation tag to be used for traffic between Google and the customer, going to and from this network and region.", - "format": "uint32", - "type": "integer" - } - }, - "type": "object" - }, - "InterconnectAttachmentsScopedList": { - "id": "InterconnectAttachmentsScopedList", + "NodeGroupList": { + "description": "Contains a list of nodeGroups.", + "id": "NodeGroupList", "properties": { - "interconnectAttachments": { - "description": "A list of interconnect attachments contained in this scope.", + "id": { + "description": "[Output Only] Unique identifier for the resource; defined by the server.", + "type": "string" + }, + "items": { + "description": "A list of NodeGroup resources.", "items": { - "$ref": "InterconnectAttachment" + "$ref": "NodeGroup" }, "type": "array" }, + "kind": { + "default": "compute#nodeGroupList", + "description": "Output only. [Output Only] Type of resource.Always compute#nodeGroupList\nfor lists of node groups.", + "readOnly": true, + "type": "string" + }, + "nextPageToken": { + "description": "[Output Only] This token allows you to get the next page of results for\nlist requests. If the number of results is larger thanmaxResults, use the nextPageToken as a value for\nthe query parameter pageToken in the next list request.\nSubsequent list requests will have their own nextPageToken to\ncontinue paging through the results.", + "type": "string" + }, + "selfLink": { + "description": "Output only. [Output Only] Server-defined URL for this resource.", + "readOnly": true, + "type": "string" + }, "warning": { - "description": "Informational warning which replaces the list of addresses when the list is empty.", + "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.", + "description": "[Output Only] A warning code, if applicable. For example, Compute\nEngine returns NO_RESULTS_ON_PAGE if there\nare no results in the response.", "enum": [ "CLEANUP_FAILED", "DEPRECATED_RESOURCE_USED", @@ -54886,6 +82092,7 @@ "NOT_CRITICAL_ERROR", "NO_RESULTS_ON_PAGE", "PARTIAL_SUCCESS", + "QUOTA_INFO_UNAVAILABLE", "REQUIRED_TOS_AGREEMENT", "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", "RESOURCE_NOT_DELETED", @@ -54922,46 +82129,48 @@ false, false, false, + false, false ], "enumDescriptions": [ - "Warning about failed cleanup of transient changes made by a failed operation.", + "Warning about failed cleanup of transient changes made by a failed\noperation.", "A link to a deprecated resource was created.", - "When deploying and at least one of the resources has a type marked as deprecated", + "When deploying and at least one of the resources has a type marked as\ndeprecated", "The user created a boot disk that is larger than image size.", - "When deploying and at least one of the resources has a type marked as experimental", + "When deploying and at least one of the resources has a type marked as\nexperimental", "Warning that is present in an external api call", - "Warning that value of a field has been overridden. Deprecated unused field.", + "Warning that value of a field has been overridden.\nDeprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", - "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is\nnot of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", - "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", + "Resource can't be retrieved due to list overhead quota exceed\nwhich captures the amount of resources filtered out by\nuser-defined list filter.", "A resource depends on a missing type", - "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's nextHopIp address is not assigned to an instance on the\nnetwork.", "The route's next hop instance cannot ip forward.", - "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not have an\nipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", - "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that is not on the\nsame network as the route.", "The route's next hop instance does not have a status of RUNNING.", - "Error which is not critical. We decided to continue the process despite the mentioned error.", + "Error which is not critical. We decided to continue the process despite\nthe mentioned error.", "No results are present on a particular list page.", "Success is reported, but some results may be missing due to errors", - "The user attempted to use a resource that requires a TOS they have not accepted.", + "Quota information is not available to client requests (e.g:\nregions.list).", + "The user attempted to use a resource that requires a TOS they have not\naccepted.", "Warning that a resource is in use.", - "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "One or more of the resources set to auto-delete could not be deleted\nbecause they were in use.", "When a resource schema validation is ignored.", - "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", + "Instance template used in instance group manager is valid as such, but\nits application does not make a lot of sense, because it allows only\nsingle instance in instance group.", "When undeclared properties in the schema are present", "A given scope cannot be reached." ], "type": "string" }, "data": { - "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", + "description": "[Output Only] Metadata about this warning in key:\nvalue format. For example:\n\n\"data\": [\n {\n \"key\": \"scope\",\n \"value\": \"zones/us-east1-d\"\n }", "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).", + "description": "[Output Only] A key that provides more detail on the warning being\nreturned. For example, for warnings where there are no results in a list\nrequest for a particular zone, this key might be scope and\nthe key value might be the zone name. Other examples might be a key\nindicating a deprecated resource and a suggested replacement, or a\nwarning about invalid network settings (for example, if an instance\nattempts to perform IP forwarding but is not enabled for IP forwarding).", "type": "string" }, "value": { @@ -54983,240 +82192,184 @@ }, "type": "object" }, - "InterconnectCircuitInfo": { - "description": "Describes a single physical circuit between the Customer and Google. CircuitInfo objects are created by Google, so all fields are output only.", - "id": "InterconnectCircuitInfo", + "NodeGroupMaintenanceWindow": { + "description": "Time window specified for daily maintenance operations. GCE's internal\nmaintenance will be performed within this window.", + "id": "NodeGroupMaintenanceWindow", "properties": { - "customerDemarcId": { - "description": "Customer-side demarc ID for this circuit.", - "type": "string" - }, - "googleCircuitId": { - "description": "Google-assigned unique ID for this circuit. Assigned at circuit turn-up.", - "type": "string" + "maintenanceDuration": { + "$ref": "Duration", + "description": "Output only. [Output only] A predetermined duration for the window, automatically\nchosen to be the smallest possible in the given scenario.", + "readOnly": true }, - "googleDemarcId": { - "description": "Google-side demarc ID for this circuit. Assigned at circuit turn-up and provided by Google to the customer in the LOA.", + "startTime": { + "description": "Start time of the window. This must be in UTC format that resolves to one\nof 00:00, 04:00, 08:00,12:00, 16:00, or 20:00. For\nexample, both 13:00-5 and 08:00 are valid.", "type": "string" } }, "type": "object" }, - "InterconnectDiagnostics": { - "description": "Diagnostics information about the Interconnect connection, which contains detailed and current technical information about Google's side of the connection.", - "id": "InterconnectDiagnostics", + "NodeGroupNode": { + "id": "NodeGroupNode", "properties": { - "arpCaches": { - "description": "A list of InterconnectDiagnostics.ARPEntry objects, describing individual neighbors currently seen by the Google router in the ARP cache for the Interconnect. This will be empty when the Interconnect is not bundled.", + "accelerators": { + "description": "Accelerators for this node.", "items": { - "$ref": "InterconnectDiagnosticsARPEntry" + "$ref": "AcceleratorConfig" }, "type": "array" }, - "bundleAggregationType": { - "description": "The aggregation type of the bundle interface.", - "enum": [ - "BUNDLE_AGGREGATION_TYPE_LACP", - "BUNDLE_AGGREGATION_TYPE_STATIC" - ], - "enumDescriptions": [ - "LACP is enabled.", - "LACP is disabled." - ], - "type": "string" + "consumedResources": { + "$ref": "InstanceConsumptionInfo", + "description": "Output only. Node resources that are reserved by all instances.", + "readOnly": true }, - "bundleOperationalStatus": { - "description": "The operational status of the bundle interface.", + "cpuOvercommitType": { + "description": "CPU overcommit.", "enum": [ - "BUNDLE_OPERATIONAL_STATUS_DOWN", - "BUNDLE_OPERATIONAL_STATUS_UP" + "CPU_OVERCOMMIT_TYPE_UNSPECIFIED", + "ENABLED", + "NONE" ], "enumDescriptions": [ - "If bundleAggregationType is LACP: LACP is not established and/or all links in the bundle have DOWN operational status. If bundleAggregationType is STATIC: one or more links in the bundle has DOWN operational status.", - "If bundleAggregationType is LACP: LACP is established and at least one link in the bundle has UP operational status. If bundleAggregationType is STATIC: all links in the bundle (typically just one) have UP operational status." + "", + "", + "" ], "type": "string" }, - "links": { - "description": "A list of InterconnectDiagnostics.LinkStatus objects, describing the status for each link on the Interconnect.", + "disks": { + "description": "Local disk configurations.", "items": { - "$ref": "InterconnectDiagnosticsLinkStatus" + "$ref": "LocalDisk" }, "type": "array" }, - "macAddress": { - "description": "The MAC address of the Interconnect's bundle interface.", - "type": "string" - } - }, - "type": "object" - }, - "InterconnectDiagnosticsARPEntry": { - "description": "Describing the ARP neighbor entries seen on this link", - "id": "InterconnectDiagnosticsARPEntry", - "properties": { - "ipAddress": { - "description": "The IP address of this ARP neighbor.", - "type": "string" - }, - "macAddress": { - "description": "The MAC address of this ARP neighbor.", - "type": "string" - } - }, - "type": "object" - }, - "InterconnectDiagnosticsLinkLACPStatus": { - "id": "InterconnectDiagnosticsLinkLACPStatus", - "properties": { - "googleSystemId": { - "description": "System ID of the port on Google's side of the LACP exchange.", - "type": "string" - }, - "neighborSystemId": { - "description": "System ID of the port on the neighbor's side of the LACP exchange.", - "type": "string" - }, - "state": { - "description": "The state of a LACP link, which can take one of the following values: - ACTIVE: The link is configured and active within the bundle. - DETACHED: The link is not configured within the bundle. This means that the rest of the object should be empty. ", - "enum": [ - "ACTIVE", - "DETACHED" - ], - "enumDescriptions": [ - "The link is configured and active within the bundle.", - "The link is not configured within the bundle, this means the rest of the object should be empty." - ], - "type": "string" - } - }, - "type": "object" - }, - "InterconnectDiagnosticsLinkOpticalPower": { - "id": "InterconnectDiagnosticsLinkOpticalPower", - "properties": { - "state": { - "description": "The status of the current value when compared to the warning and alarm levels for the receiving or transmitting transceiver. Possible states include: - OK: The value has not crossed a warning threshold. - LOW_WARNING: The value has crossed below the low warning threshold. - HIGH_WARNING: The value has crossed above the high warning threshold. - LOW_ALARM: The value has crossed below the low alarm threshold. - HIGH_ALARM: The value has crossed above the high alarm threshold. ", - "enum": [ - "HIGH_ALARM", - "HIGH_WARNING", - "LOW_ALARM", - "LOW_WARNING", - "OK" - ], - "enumDescriptions": [ - "The value has crossed above the high alarm threshold.", - "The value of the current optical power has crossed above the high warning threshold.", - "The value of the current optical power has crossed below the low alarm threshold.", - "The value of the current optical power has crossed below the low warning threshold.", - "The value of the current optical power has not crossed a warning threshold." - ], - "type": "string" + "instanceConsumptionData": { + "description": "Output only. Instance data that shows consumed resources on the node.", + "items": { + "$ref": "InstanceConsumptionData" + }, + "readOnly": true, + "type": "array" }, - "value": { - "description": "Value of the current receiving or transmitting optical power, read in dBm. Take a known good optical value, give it a 10% margin and trigger warnings relative to that value. In general, a -7dBm warning and a -11dBm alarm are good optical value estimates for most links.", - "format": "float", - "type": "number" - } - }, - "type": "object" - }, - "InterconnectDiagnosticsLinkStatus": { - "id": "InterconnectDiagnosticsLinkStatus", - "properties": { - "arpCaches": { - "description": "A list of InterconnectDiagnostics.ARPEntry objects, describing the ARP neighbor entries seen on this link. This will be empty if the link is bundled", + "instances": { + "description": "Instances scheduled on this node.", "items": { - "$ref": "InterconnectDiagnosticsARPEntry" + "type": "string" }, "type": "array" }, - "circuitId": { - "description": "The unique ID for this link assigned during turn up by Google.", + "name": { + "description": "The name of the node.", "type": "string" }, - "googleDemarc": { - "description": "The Demarc address assigned by Google and provided in the LoA.", + "nodeType": { + "description": "The type of this node.", "type": "string" }, - "lacpStatus": { - "$ref": "InterconnectDiagnosticsLinkLACPStatus" + "satisfiesPzs": { + "description": "Output only. [Output Only] Reserved for future use.", + "readOnly": true, + "type": "boolean" }, - "macsec": { - "$ref": "InterconnectDiagnosticsMacsecStatus", - "description": "Describes the status of MACsec encryption on this link." + "serverBinding": { + "$ref": "ServerBinding", + "description": "Binding properties for the physical server." }, - "operationalStatus": { - "description": "The operational status of the link.", + "serverId": { + "description": "Server ID associated with this node.", + "type": "string" + }, + "status": { "enum": [ - "LINK_OPERATIONAL_STATUS_DOWN", - "LINK_OPERATIONAL_STATUS_UP" + "CREATING", + "DELETING", + "INVALID", + "READY", + "REPAIRING" ], "enumDescriptions": [ - "The interface is unable to communicate with the remote end.", - "The interface has low level communication with the remote end." + "", + "", + "", + "", + "" ], "type": "string" }, - "receivingOpticalPower": { - "$ref": "InterconnectDiagnosticsLinkOpticalPower", - "description": "An InterconnectDiagnostics.LinkOpticalPower object, describing the current value and status of the received light level." + "totalResources": { + "$ref": "InstanceConsumptionInfo", + "description": "Output only. Total amount of available resources on the node.", + "readOnly": true }, - "transmittingOpticalPower": { - "$ref": "InterconnectDiagnosticsLinkOpticalPower", - "description": "An InterconnectDiagnostics.LinkOpticalPower object, describing the current value and status of the transmitted light level." + "upcomingMaintenance": { + "$ref": "UpcomingMaintenance", + "description": "Output only. [Output Only] The information about an upcoming maintenance event.", + "readOnly": true } }, "type": "object" }, - "InterconnectDiagnosticsMacsecStatus": { - "description": "Describes the status of MACsec encryption on the link.", - "id": "InterconnectDiagnosticsMacsecStatus", + "NodeGroupsAddNodesRequest": { + "id": "NodeGroupsAddNodesRequest", "properties": { - "ckn": { - "description": "Indicates the Connectivity Association Key Name (CKN) currently being used if MACsec is operational.", - "type": "string" - }, - "operational": { - "description": "Indicates whether or not MACsec is operational on this link.", - "type": "boolean" + "additionalNodeCount": { + "description": "Count of additional nodes to be added to the node group.", + "format": "int32", + "type": "integer" } }, "type": "object" }, - "InterconnectList": { - "description": "Response to the list request, and contains a list of interconnects.", - "id": "InterconnectList", + "NodeGroupsDeleteNodesRequest": { + "id": "NodeGroupsDeleteNodesRequest", + "properties": { + "nodes": { + "description": "Names of the nodes to delete.", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "NodeGroupsListNodes": { + "id": "NodeGroupsListNodes", "properties": { "id": { - "description": "[Output Only] Unique identifier for the resource; defined by the server.", + "description": "Output only. [Output Only] Unique identifier for the resource; defined by the server.", + "readOnly": true, "type": "string" }, "items": { - "description": "A list of Interconnect resources.", + "description": "A list of Node resources.", "items": { - "$ref": "Interconnect" + "$ref": "NodeGroupNode" }, "type": "array" }, "kind": { - "default": "compute#interconnectList", - "description": "[Output Only] Type of resource. Always compute#interconnectList for lists of interconnects.", + "default": "compute#nodeGroupsListNodes", + "description": "Output only. [Output Only] The resource type, which is alwayscompute.nodeGroupsListNodes for the list of nodes in the\nspecified node group.", + "readOnly": true, "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.", + "description": "Output only. [Output Only] This token allows you to get the next page of results for\nlist requests. If the number of results is larger thanmaxResults, use the nextPageToken as a value for\nthe query parameter pageToken in the next list request.\nSubsequent list requests will have their own nextPageToken to\ncontinue paging through the results.", + "readOnly": true, "type": "string" }, "selfLink": { - "description": "[Output Only] Server-defined URL for this resource.", + "description": "Output only. [Output Only] Server-defined URL for this resource.", + "readOnly": true, "type": "string" }, "warning": { - "description": "[Output Only] Informational warning message.", + "description": "Output only. [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.", + "description": "[Output Only] A warning code, if applicable. For example, Compute\nEngine returns NO_RESULTS_ON_PAGE if there\nare no results in the response.", "enum": [ "CLEANUP_FAILED", "DEPRECATED_RESOURCE_USED", @@ -55239,6 +82392,7 @@ "NOT_CRITICAL_ERROR", "NO_RESULTS_ON_PAGE", "PARTIAL_SUCCESS", + "QUOTA_INFO_UNAVAILABLE", "REQUIRED_TOS_AGREEMENT", "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", "RESOURCE_NOT_DELETED", @@ -55275,46 +82429,48 @@ false, false, false, + false, false ], "enumDescriptions": [ - "Warning about failed cleanup of transient changes made by a failed operation.", + "Warning about failed cleanup of transient changes made by a failed\noperation.", "A link to a deprecated resource was created.", - "When deploying and at least one of the resources has a type marked as deprecated", + "When deploying and at least one of the resources has a type marked as\ndeprecated", "The user created a boot disk that is larger than image size.", - "When deploying and at least one of the resources has a type marked as experimental", + "When deploying and at least one of the resources has a type marked as\nexperimental", "Warning that is present in an external api call", - "Warning that value of a field has been overridden. Deprecated unused field.", + "Warning that value of a field has been overridden.\nDeprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", - "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is\nnot of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", - "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", + "Resource can't be retrieved due to list overhead quota exceed\nwhich captures the amount of resources filtered out by\nuser-defined list filter.", "A resource depends on a missing type", - "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's nextHopIp address is not assigned to an instance on the\nnetwork.", "The route's next hop instance cannot ip forward.", - "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not have an\nipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", - "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that is not on the\nsame network as the route.", "The route's next hop instance does not have a status of RUNNING.", - "Error which is not critical. We decided to continue the process despite the mentioned error.", + "Error which is not critical. We decided to continue the process despite\nthe mentioned error.", "No results are present on a particular list page.", "Success is reported, but some results may be missing due to errors", - "The user attempted to use a resource that requires a TOS they have not accepted.", + "Quota information is not available to client requests (e.g:\nregions.list).", + "The user attempted to use a resource that requires a TOS they have not\naccepted.", "Warning that a resource is in use.", - "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "One or more of the resources set to auto-delete could not be deleted\nbecause they were in use.", "When a resource schema validation is ignored.", - "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", + "Instance template used in instance group manager is valid as such, but\nits application does not make a lot of sense, because it allows only\nsingle instance in instance group.", "When undeclared properties in the schema are present", "A given scope cannot be reached." ], "type": "string" }, "data": { - "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", + "description": "[Output Only] Metadata about this warning in key:\nvalue format. For example:\n\n\"data\": [\n {\n \"key\": \"scope\",\n \"value\": \"zones/us-east1-d\"\n }", "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).", + "description": "[Output Only] A key that provides more detail on the warning being\nreturned. For example, for warnings where there are no results in a list\nrequest for a particular zone, this key might be scope and\nthe key value might be the zone name. Other examples might be a key\nindicating a deprecated resource and a suggested replacement, or a\nwarning about invalid network settings (for example, if an instance\nattempts to perform IP forwarding but is not enabled for IP forwarding).", "type": "string" }, "value": { @@ -55331,180 +82487,44 @@ "type": "string" } }, + "readOnly": true, "type": "object" } }, "type": "object" }, - "InterconnectLocation": { - "description": "Represents an Interconnect Attachment (VLAN) Location resource. You can use this resource to find location details about an Interconnect attachment (VLAN). For more information about interconnect attachments, read Creating VLAN Attachments.", - "id": "InterconnectLocation", + "NodeGroupsPerformMaintenanceRequest": { + "id": "NodeGroupsPerformMaintenanceRequest", "properties": { - "address": { - "description": "[Output Only] The postal address of the Point of Presence, each line in the address is separated by a newline character.", - "type": "string" - }, - "availabilityZone": { - "description": "[Output Only] Availability zone for this InterconnectLocation. Within a metropolitan area (metro), maintenance will not be simultaneously scheduled in more than one availability zone. Example: \"zone1\" or \"zone2\".", - "type": "string" - }, - "availableFeatures": { - "description": "[Output only] List of features available at this InterconnectLocation, which can take one of the following values: - MACSEC ", - "items": { - "enum": [ - "IF_MACSEC" - ], - "enumDescriptions": [ - "Media Access Control security (MACsec)" - ], - "type": "string" - }, - "type": "array" - }, - "availableLinkTypes": { - "description": "[Output only] List of link types available at this InterconnectLocation, which can take one of the following values: - LINK_TYPE_ETHERNET_10G_LR - LINK_TYPE_ETHERNET_100G_LR ", + "nodes": { + "description": "[Required] List of nodes affected by the call.", "items": { - "enum": [ - "LINK_TYPE_ETHERNET_100G_LR", - "LINK_TYPE_ETHERNET_10G_LR" - ], - "enumDescriptions": [ - "100G Ethernet, LR Optics.", - "10G Ethernet, LR Optics. [(rate_bps) = 10000000000];" - ], "type": "string" }, "type": "array" }, - "city": { - "description": "[Output Only] Metropolitan area designator that indicates which city an interconnect is located. For example: \"Chicago, IL\", \"Amsterdam, Netherlands\".", - "type": "string" - }, - "continent": { - "description": "[Output Only] Continent for this location, which can take one of the following values: - AFRICA - ASIA_PAC - EUROPE - NORTH_AMERICA - SOUTH_AMERICA ", - "enum": [ - "AFRICA", - "ASIA_PAC", - "C_AFRICA", - "C_ASIA_PAC", - "C_EUROPE", - "C_NORTH_AMERICA", - "C_SOUTH_AMERICA", - "EUROPE", - "NORTH_AMERICA", - "SOUTH_AMERICA" - ], - "enumDescriptions": [ - "", - "", - "", - "", - "", - "", - "", - "", - "", - "" - ], - "type": "string" - }, - "creationTimestamp": { - "description": "[Output Only] Creation timestamp in RFC3339 text format.", - "type": "string" - }, - "description": { - "description": "[Output Only] An optional description of the resource.", - "type": "string" - }, - "facilityProvider": { - "description": "[Output Only] The name of the provider for this facility (e.g., EQUINIX).", - "type": "string" - }, - "facilityProviderFacilityId": { - "description": "[Output Only] A provider-assigned Identifier for this facility (e.g., Ashburn-DC1).", - "type": "string" - }, - "id": { - "description": "[Output Only] The unique identifier for the resource. This identifier is defined by the server.", - "format": "uint64", - "type": "string" - }, - "kind": { - "default": "compute#interconnectLocation", - "description": "[Output Only] Type of the resource. Always compute#interconnectLocation for interconnect locations.", - "type": "string" - }, - "name": { - "description": "[Output Only] Name of the resource.", - "type": "string" - }, - "peeringdbFacilityId": { - "description": "[Output Only] The peeringdb identifier for this facility (corresponding with a netfac type in peeringdb).", - "type": "string" - }, - "regionInfos": { - "description": "[Output Only] A list of InterconnectLocation.RegionInfo objects, that describe parameters pertaining to the relation between this InterconnectLocation and various Google Cloud regions.", - "items": { - "$ref": "InterconnectLocationRegionInfo" - }, - "type": "array" - }, - "selfLink": { - "description": "[Output Only] Server-defined URL for the resource.", - "type": "string" - }, - "status": { - "description": "[Output Only] The status of this InterconnectLocation, which can take one of the following values: - CLOSED: The InterconnectLocation is closed and is unavailable for provisioning new Interconnects. - AVAILABLE: The InterconnectLocation is available for provisioning new Interconnects. ", - "enum": [ - "AVAILABLE", - "CLOSED" - ], - "enumDescriptions": [ - "The InterconnectLocation is available for provisioning new Interconnects.", - "The InterconnectLocation is closed for provisioning new Interconnects." - ], + "startTime": { + "description": "The start time of the schedule. The timestamp is an RFC3339 string.", "type": "string" - }, - "supportsPzs": { - "description": "[Output Only] Reserved for future use.", - "type": "boolean" } }, "type": "object" }, - "InterconnectLocationList": { - "description": "Response to the list request, and contains a list of interconnect locations.", - "id": "InterconnectLocationList", + "NodeGroupsScopedList": { + "id": "NodeGroupsScopedList", "properties": { - "id": { - "description": "[Output Only] Unique identifier for the resource; defined by the server.", - "type": "string" - }, - "items": { - "description": "A list of InterconnectLocation resources.", + "nodeGroups": { + "description": "[Output Only] A list of node groups contained in this scope.", "items": { - "$ref": "InterconnectLocation" + "$ref": "NodeGroup" }, "type": "array" }, - "kind": { - "default": "compute#interconnectLocationList", - "description": "[Output Only] Type of resource. Always compute#interconnectLocationList for lists of interconnect locations.", - "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" - }, - "selfLink": { - "description": "[Output Only] Server-defined URL for this resource.", - "type": "string" - }, "warning": { - "description": "[Output Only] Informational warning message.", + "description": "[Output Only] An informational warning that appears when the nodeGroup\nlist is empty.", "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.", + "description": "[Output Only] A warning code, if applicable. For example, Compute\nEngine returns NO_RESULTS_ON_PAGE if there\nare no results in the response.", "enum": [ "CLEANUP_FAILED", "DEPRECATED_RESOURCE_USED", @@ -55527,6 +82547,7 @@ "NOT_CRITICAL_ERROR", "NO_RESULTS_ON_PAGE", "PARTIAL_SUCCESS", + "QUOTA_INFO_UNAVAILABLE", "REQUIRED_TOS_AGREEMENT", "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", "RESOURCE_NOT_DELETED", @@ -55563,46 +82584,48 @@ false, false, false, + false, false ], "enumDescriptions": [ - "Warning about failed cleanup of transient changes made by a failed operation.", + "Warning about failed cleanup of transient changes made by a failed\noperation.", "A link to a deprecated resource was created.", - "When deploying and at least one of the resources has a type marked as deprecated", + "When deploying and at least one of the resources has a type marked as\ndeprecated", "The user created a boot disk that is larger than image size.", - "When deploying and at least one of the resources has a type marked as experimental", + "When deploying and at least one of the resources has a type marked as\nexperimental", "Warning that is present in an external api call", - "Warning that value of a field has been overridden. Deprecated unused field.", + "Warning that value of a field has been overridden.\nDeprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", - "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is\nnot of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", - "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", + "Resource can't be retrieved due to list overhead quota exceed\nwhich captures the amount of resources filtered out by\nuser-defined list filter.", "A resource depends on a missing type", - "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's nextHopIp address is not assigned to an instance on the\nnetwork.", "The route's next hop instance cannot ip forward.", - "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not have an\nipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", - "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that is not on the\nsame network as the route.", "The route's next hop instance does not have a status of RUNNING.", - "Error which is not critical. We decided to continue the process despite the mentioned error.", + "Error which is not critical. We decided to continue the process despite\nthe mentioned error.", "No results are present on a particular list page.", "Success is reported, but some results may be missing due to errors", - "The user attempted to use a resource that requires a TOS they have not accepted.", + "Quota information is not available to client requests (e.g:\nregions.list).", + "The user attempted to use a resource that requires a TOS they have not\naccepted.", "Warning that a resource is in use.", - "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "One or more of the resources set to auto-delete could not be deleted\nbecause they were in use.", "When a resource schema validation is ignored.", - "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", + "Instance template used in instance group manager is valid as such, but\nits application does not make a lot of sense, because it allows only\nsingle instance in instance group.", "When undeclared properties in the schema are present", "A given scope cannot be reached." ], "type": "string" }, "data": { - "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", + "description": "[Output Only] Metadata about this warning in key:\nvalue format. For example:\n\n\"data\": [\n {\n \"key\": \"scope\",\n \"value\": \"zones/us-east1-d\"\n }", "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).", + "description": "[Output Only] A key that provides more detail on the warning being\nreturned. For example, for warnings where there are no results in a list\nrequest for a particular zone, this key might be scope and\nthe key value might be the zone name. Other examples might be a key\nindicating a deprecated resource and a suggested replacement, or a\nwarning about invalid network settings (for example, if an instance\nattempts to perform IP forwarding but is not enabled for IP forwarding).", "type": "string" }, "value": { @@ -55624,218 +82647,47 @@ }, "type": "object" }, - "InterconnectLocationRegionInfo": { - "description": "Information about any potential InterconnectAttachments between an Interconnect at a specific InterconnectLocation, and a specific Cloud Region.", - "id": "InterconnectLocationRegionInfo", + "NodeGroupsSetNodeTemplateRequest": { + "id": "NodeGroupsSetNodeTemplateRequest", "properties": { - "expectedRttMs": { - "description": "Expected round-trip time in milliseconds, from this InterconnectLocation to a VM in this region.", - "format": "int64", - "type": "string" - }, - "locationPresence": { - "description": "Identifies the network presence of this location.", - "enum": [ - "GLOBAL", - "LOCAL_REGION", - "LP_GLOBAL", - "LP_LOCAL_REGION" - ], - "enumDescriptions": [ - "This region is not in any common network presence with this InterconnectLocation.", - "This region shares the same regional network presence as this InterconnectLocation.", - "[Deprecated] This region is not in any common network presence with this InterconnectLocation.", - "[Deprecated] This region shares the same regional network presence as this InterconnectLocation." - ], - "type": "string" - }, - "region": { - "description": "URL for the region of this location.", + "nodeTemplate": { + "description": "Full or partial URL of the node template resource to be updated for this\nnode group.", "type": "string" } }, "type": "object" }, - "InterconnectMacsec": { - "description": "Configuration information for enabling Media Access Control security (MACsec) on this Cloud Interconnect connection between Google and your on-premises router.", - "id": "InterconnectMacsec", - "properties": { - "failOpen": { - "description": "If set to true, the Interconnect connection is configured with a should-secure MACsec security policy, that allows the Google router to fallback to cleartext traffic if the MKA session cannot be established. By default, the Interconnect connection is configured with a must-secure security policy that drops all traffic if the MKA session cannot be established with your router.", - "type": "boolean" - }, - "preSharedKeys": { - "description": "Required. A keychain placeholder describing a set of named key objects along with their start times. A MACsec CKN/CAK is generated for each key in the key chain. Google router automatically picks the key with the most recent startTime when establishing or re-establishing a MACsec secure link.", - "items": { - "$ref": "InterconnectMacsecPreSharedKey" - }, - "type": "array" - } - }, - "type": "object" - }, - "InterconnectMacsecConfig": { - "description": "MACsec configuration information for the Interconnect connection. Contains the generated Connectivity Association Key Name (CKN) and the key (CAK) for this Interconnect connection.", - "id": "InterconnectMacsecConfig", + "NodeGroupsSimulateMaintenanceEventRequest": { + "id": "NodeGroupsSimulateMaintenanceEventRequest", "properties": { - "preSharedKeys": { - "description": "A keychain placeholder describing a set of named key objects along with their start times. A MACsec CKN/CAK is generated for each key in the key chain. Google router automatically picks the key with the most recent startTime when establishing or re-establishing a MACsec secure link.", + "nodes": { + "description": "Names of the nodes to go under maintenance simulation.", "items": { - "$ref": "InterconnectMacsecConfigPreSharedKey" + "type": "string" }, "type": "array" } }, "type": "object" }, - "InterconnectMacsecConfigPreSharedKey": { - "description": "Describes a pre-shared key used to setup MACsec in static connectivity association key (CAK) mode.", - "id": "InterconnectMacsecConfigPreSharedKey", - "properties": { - "cak": { - "description": "An auto-generated Connectivity Association Key (CAK) for this key.", - "type": "string" - }, - "ckn": { - "description": "An auto-generated Connectivity Association Key Name (CKN) for this key.", - "type": "string" - }, - "name": { - "description": "User provided name for this pre-shared key.", - "type": "string" - }, - "startTime": { - "description": "User provided timestamp on or after which this key is valid.", - "type": "string" - } - }, - "type": "object" - }, - "InterconnectMacsecPreSharedKey": { - "description": "Describes a pre-shared key used to setup MACsec in static connectivity association key (CAK) mode.", - "id": "InterconnectMacsecPreSharedKey", - "properties": { - "name": { - "description": "Required. A name for this pre-shared 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.", - "type": "string" - }, - "startTime": { - "description": "A RFC3339 timestamp on or after which the key is valid. startTime can be in the future. If the keychain has a single key, startTime can be omitted. If the keychain has multiple keys, startTime is mandatory for each key. The start times of keys must be in increasing order. The start times of two consecutive keys must be at least 6 hours apart.", - "type": "string" - } - }, - "type": "object" - }, - "InterconnectOutageNotification": { - "description": "Description of a planned outage on this Interconnect.", - "id": "InterconnectOutageNotification", + "NodeTemplate": { + "description": "Represent a sole-tenant Node Template resource.\n\nYou can use a template to define properties for nodes in a node group. For\nmore information, readCreating node groups\nand instances.", + "id": "NodeTemplate", "properties": { - "affectedCircuits": { - "description": "If issue_type is IT_PARTIAL_OUTAGE, a list of the Google-side circuit IDs that will be affected.", + "accelerators": { "items": { - "type": "string" + "$ref": "AcceleratorConfig" }, "type": "array" }, - "description": { - "description": "A description about the purpose of the outage.", - "type": "string" - }, - "endTime": { - "description": "Scheduled end time for the outage (milliseconds since Unix epoch).", - "format": "int64", - "type": "string" - }, - "issueType": { - "description": "Form this outage is expected to take, which can take one of the following values: - OUTAGE: The Interconnect may be completely out of service for some or all of the specified window. - PARTIAL_OUTAGE: Some circuits comprising the Interconnect as a whole should remain up, but with reduced bandwidth. Note that the versions of this enum prefixed with \"IT_\" have been deprecated in favor of the unprefixed values.", - "enum": [ - "IT_OUTAGE", - "IT_PARTIAL_OUTAGE", - "OUTAGE", - "PARTIAL_OUTAGE" - ], - "enumDescriptions": [ - "[Deprecated] The Interconnect may be completely out of service for some or all of the specified window.", - "[Deprecated] Some circuits comprising the Interconnect will be out of service during the expected window. The interconnect as a whole should remain up, albeit with reduced bandwidth.", - "The Interconnect may be completely out of service for some or all of the specified window.", - "Some circuits comprising the Interconnect will be out of service during the expected window. The interconnect as a whole should remain up, albeit with reduced bandwidth." - ], - "type": "string" - }, - "name": { - "description": "Unique identifier for this outage notification.", - "type": "string" - }, - "source": { - "description": "The party that generated this notification, which can take the following value: - GOOGLE: this notification as generated by Google. Note that the value of NSRC_GOOGLE has been deprecated in favor of GOOGLE.", - "enum": [ - "GOOGLE", - "NSRC_GOOGLE" - ], - "enumDescriptions": [ - "This notification was generated by Google.", - "[Deprecated] This notification was generated by Google." - ], - "type": "string" - }, - "startTime": { - "description": "Scheduled start time for the outage (milliseconds since Unix epoch).", - "format": "int64", - "type": "string" - }, - "state": { - "description": "State of this notification, which can take one of the following values: - ACTIVE: This outage notification is active. The event could be in the past, present, or future. See start_time and end_time for scheduling. - CANCELLED: The outage associated with this notification was cancelled before the outage was due to start. - COMPLETED: The outage associated with this notification is complete. Note that the versions of this enum prefixed with \"NS_\" have been deprecated in favor of the unprefixed values.", - "enum": [ - "ACTIVE", - "CANCELLED", - "COMPLETED", - "NS_ACTIVE", - "NS_CANCELED" - ], - "enumDescriptions": [ - "This outage notification is active. The event could be in the future, present, or past. See start_time and end_time for scheduling.", - "The outage associated with this notification was cancelled before the outage was due to start.", - "The outage associated with this notification is complete.", - "[Deprecated] This outage notification is active. The event could be in the future, present, or past. See start_time and end_time for scheduling.", - "[Deprecated] The outage associated with this notification was canceled before the outage was due to start." - ], - "type": "string" - } - }, - "type": "object" - }, - "InterconnectRemoteLocation": { - "description": "Represents a Cross-Cloud Interconnect Remote Location resource. You can use this resource to find remote location details about an Interconnect attachment (VLAN).", - "id": "InterconnectRemoteLocation", - "properties": { - "address": { - "description": "[Output Only] The postal address of the Point of Presence, each line in the address is separated by a newline character.", - "type": "string" - }, - "attachmentConfigurationConstraints": { - "$ref": "InterconnectAttachmentConfigurationConstraints", - "description": "[Output Only] Subset of fields from InterconnectAttachment's |configurationConstraints| field that apply to all attachments for this remote location." - }, - "city": { - "description": "[Output Only] Metropolitan area designator that indicates which city an interconnect is located. For example: \"Chicago, IL\", \"Amsterdam, Netherlands\".", - "type": "string" - }, - "constraints": { - "$ref": "InterconnectRemoteLocationConstraints", - "description": "[Output Only] Constraints on the parameters for creating Cross-Cloud Interconnect and associated InterconnectAttachments." - }, - "continent": { - "description": "[Output Only] Continent for this location, which can take one of the following values: - AFRICA - ASIA_PAC - EUROPE - NORTH_AMERICA - SOUTH_AMERICA ", + "cpuOvercommitType": { + "description": "CPU overcommit.", "enum": [ - "AFRICA", - "ASIA_PAC", - "EUROPE", - "NORTH_AMERICA", - "SOUTH_AMERICA" + "CPU_OVERCOMMIT_TYPE_UNSPECIFIED", + "ENABLED", + "NONE" ], "enumDescriptions": [ - "", - "", "", "", "" @@ -55843,172 +82695,133 @@ "type": "string" }, "creationTimestamp": { - "description": "[Output Only] Creation timestamp in RFC3339 text format.", + "description": "Output only. [Output Only] Creation timestamp inRFC3339\ntext format.", + "readOnly": true, "type": "string" }, "description": { - "description": "[Output Only] An optional description of the resource.", - "type": "string" - }, - "facilityProvider": { - "description": "[Output Only] The name of the provider for this facility (e.g., EQUINIX).", + "description": "An optional description of this resource. Provide this property when you\ncreate the resource.", "type": "string" }, - "facilityProviderFacilityId": { - "description": "[Output Only] A provider-assigned Identifier for this facility (e.g., Ashburn-DC1).", - "type": "string" + "disks": { + "items": { + "$ref": "LocalDisk" + }, + "type": "array" }, "id": { - "description": "[Output Only] The unique identifier for the resource. This identifier is defined by the server.", + "description": "Output only. [Output Only] The unique identifier for the resource. This identifier is\ndefined by the server.", "format": "uint64", + "readOnly": true, "type": "string" }, "kind": { - "default": "compute#interconnectRemoteLocation", - "description": "[Output Only] Type of the resource. Always compute#interconnectRemoteLocation for interconnect remote locations.", - "type": "string" - }, - "lacp": { - "description": "[Output Only] Link Aggregation Control Protocol (LACP) constraints, which can take one of the following values: LACP_SUPPORTED, LACP_UNSUPPORTED", - "enum": [ - "LACP_SUPPORTED", - "LACP_UNSUPPORTED" - ], - "enumDescriptions": [ - "LACP_SUPPORTED: LACP is supported, and enabled by default on the Cross-Cloud Interconnect.", - "LACP_UNSUPPORTED: LACP is not supported and is not be enabled on this port. GetDiagnostics shows bundleAggregationType as \"static\". GCP does not support LAGs without LACP, so requestedLinkCount must be 1." - ], + "default": "compute#nodeTemplate", + "description": "Output only. [Output Only] The type of the resource. Alwayscompute#nodeTemplate for node templates.", + "readOnly": true, "type": "string" }, - "maxLagSize100Gbps": { - "description": "[Output Only] The maximum number of 100 Gbps ports supported in a link aggregation group (LAG). When linkType is 100 Gbps, requestedLinkCount cannot exceed max_lag_size_100_gbps.", - "format": "int32", - "type": "integer" - }, - "maxLagSize10Gbps": { - "description": "[Output Only] The maximum number of 10 Gbps ports supported in a link aggregation group (LAG). When linkType is 10 Gbps, requestedLinkCount cannot exceed max_lag_size_10_gbps.", - "format": "int32", - "type": "integer" - }, "name": { - "description": "[Output Only] Name of the resource.", + "description": "The name of the resource, provided by the client when initially creating\nthe resource. The resource name must be 1-63 characters long, and comply\nwithRFC1035.\nSpecifically, the name must be 1-63 characters long and match the regular\nexpression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first\ncharacter must be a lowercase letter, and all following characters must be\na dash, lowercase letter, or digit, except the last character, which\ncannot be a dash.", "type": "string" }, - "peeringdbFacilityId": { - "description": "[Output Only] The peeringdb identifier for this facility (corresponding with a netfac type in peeringdb).", + "nodeAffinityLabels": { + "additionalProperties": { + "type": "string" + }, + "description": "Labels to use for node affinity, which will be used in instance scheduling.", + "type": "object" + }, + "nodeType": { + "description": "The node type to use for nodes group that are created from this template.", "type": "string" }, - "permittedConnections": { - "description": "[Output Only] Permitted connections.", - "items": { - "$ref": "InterconnectRemoteLocationPermittedConnections" - }, - "type": "array" + "nodeTypeFlexibility": { + "$ref": "NodeTemplateNodeTypeFlexibility", + "description": "Do not use. Instead, use the node_type property." }, - "remoteService": { - "description": "[Output Only] Indicates the service provider present at the remote location. Example values: \"Amazon Web Services\", \"Microsoft Azure\".", + "region": { + "description": "Output only. [Output Only] The name of the region where the node template resides,\nsuch as us-central1.", + "readOnly": true, "type": "string" }, "selfLink": { - "description": "[Output Only] Server-defined URL for the resource.", + "description": "Output only. [Output Only] Server-defined URL for the resource.", + "readOnly": true, "type": "string" }, - "status": { - "description": "[Output Only] The status of this InterconnectRemoteLocation, which can take one of the following values: - CLOSED: The InterconnectRemoteLocation is closed and is unavailable for provisioning new Cross-Cloud Interconnects. - AVAILABLE: The InterconnectRemoteLocation is available for provisioning new Cross-Cloud Interconnects. ", - "enum": [ - "AVAILABLE", - "CLOSED" - ], - "enumDescriptions": [ - "The InterconnectRemoteLocation is available for provisioning new Cross-Cloud Interconnects.", - "The InterconnectRemoteLocation is closed for provisioning new Cross-Cloud Interconnects." - ], - "type": "string" - } - }, - "type": "object" - }, - "InterconnectRemoteLocationConstraints": { - "id": "InterconnectRemoteLocationConstraints", - "properties": { - "portPairRemoteLocation": { - "description": "[Output Only] Port pair remote location constraints, which can take one of the following values: PORT_PAIR_UNCONSTRAINED_REMOTE_LOCATION, PORT_PAIR_MATCHING_REMOTE_LOCATION. Google Cloud API refers only to individual ports, but the UI uses this field when ordering a pair of ports, to prevent users from accidentally ordering something that is incompatible with their cloud provider. Specifically, when ordering a redundant pair of Cross-Cloud Interconnect ports, and one of them uses a remote location with portPairMatchingRemoteLocation set to matching, the UI requires that both ports use the same remote location.", - "enum": [ - "PORT_PAIR_MATCHING_REMOTE_LOCATION", - "PORT_PAIR_UNCONSTRAINED_REMOTE_LOCATION" - ], - "enumDescriptions": [ - "If PORT_PAIR_MATCHING_REMOTE_LOCATION, the remote cloud provider allocates ports in pairs, and the user should choose the same remote location for both ports.", - "If PORT_PAIR_UNCONSTRAINED_REMOTE_LOCATION, a user may opt to provision a redundant pair of Cross-Cloud Interconnects using two different remote locations in the same city." - ], - "type": "string" + "serverBinding": { + "$ref": "ServerBinding", + "description": "Sets the binding properties for the physical server. Valid values include:\n \n - *[Default]* RESTART_NODE_ON_ANY_SERVER:\n Restarts VMs on any available\n physical server\n - RESTART_NODE_ON_MINIMAL_SERVER: Restarts VMs on the same\n physical server whenever possible\n\n\n\nSee Sole-tenant\nnode options for more information." }, - "portPairVlan": { - "description": "[Output Only] Port pair VLAN constraints, which can take one of the following values: PORT_PAIR_UNCONSTRAINED_VLAN, PORT_PAIR_MATCHING_VLAN", + "status": { + "description": "Output only. [Output Only] The status of the node template. One of the following values:CREATING, READY, and DELETING.", "enum": [ - "PORT_PAIR_MATCHING_VLAN", - "PORT_PAIR_UNCONSTRAINED_VLAN" + "CREATING", + "DELETING", + "INVALID", + "READY" ], "enumDescriptions": [ - "If PORT_PAIR_MATCHING_VLAN, the Interconnect for this attachment is part of a pair of ports that should have matching VLAN allocations. This occurs with Cross-Cloud Interconnect to Azure remote locations. While GCP's API does not explicitly group pairs of ports, the UI uses this field to ensure matching VLAN ids when configuring a redundant VLAN pair.", - "PORT_PAIR_UNCONSTRAINED_VLAN means there is no constraint." - ], - "type": "string" - }, - "subnetLengthRange": { - "$ref": "InterconnectRemoteLocationConstraintsSubnetLengthRange", - "description": "[Output Only] [min-length, max-length] The minimum and maximum value (inclusive) for the IPv4 subnet length. For example, an interconnectRemoteLocation for Azure has {min: 30, max: 30} because Azure requires /30 subnets. This range specifies the values supported by both cloud providers. Interconnect currently supports /29 and /30 IPv4 subnet lengths. If a remote cloud has no constraint on IPv4 subnet length, the range would thus be {min: 29, max: 30}. " - } - }, - "type": "object" - }, - "InterconnectRemoteLocationConstraintsSubnetLengthRange": { - "id": "InterconnectRemoteLocationConstraintsSubnetLengthRange", - "properties": { - "max": { - "format": "int32", - "type": "integer" + "Resources are being allocated.", + "The node template is currently being deleted.", + "Invalid status.", + "The node template is ready." + ], + "readOnly": true, + "type": "string" }, - "min": { - "format": "int32", - "type": "integer" + "statusMessage": { + "description": "Output only. [Output Only] An optional, human-readable explanation of the status.", + "readOnly": true, + "type": "string" } }, "type": "object" }, - "InterconnectRemoteLocationList": { - "description": "Response to the list request, and contains a list of interconnect remote locations.", - "id": "InterconnectRemoteLocationList", + "NodeTemplateAggregatedList": { + "id": "NodeTemplateAggregatedList", "properties": { "id": { "description": "[Output Only] Unique identifier for the resource; defined by the server.", "type": "string" }, "items": { - "description": "A list of InterconnectRemoteLocation resources.", - "items": { - "$ref": "InterconnectRemoteLocation" + "additionalProperties": { + "$ref": "NodeTemplatesScopedList", + "description": "[Output Only] Name of the scope containing this set of node templates." }, - "type": "array" + "description": "A list of NodeTemplatesScopedList resources.", + "type": "object" }, "kind": { - "default": "compute#interconnectRemoteLocationList", - "description": "[Output Only] Type of resource. Always compute#interconnectRemoteLocationList for lists of interconnect remote locations.", + "default": "compute#nodeTemplateAggregatedList", + "description": "Output only. [Output Only] Type of resource.Alwayscompute#nodeTemplateAggregatedList for aggregated lists of\nnode templates.", + "readOnly": true, "type": "string" }, "nextPageToken": { - "description": "[Output Only] This token lets you 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.", + "description": "[Output Only] This token allows you to get the next page of results for\nlist requests. If the number of results is larger thanmaxResults, use the nextPageToken as a value for\nthe query parameter pageToken in the next list request.\nSubsequent list requests will have their own nextPageToken to\ncontinue paging through the results.", "type": "string" }, "selfLink": { - "description": "[Output Only] Server-defined URL for this resource.", + "description": "Output only. [Output Only] Server-defined URL for this resource.", + "readOnly": true, "type": "string" }, + "unreachables": { + "description": "Output only. [Output Only] Unreachable resources.", + "items": { + "type": "string" + }, + "readOnly": true, + "type": "array" + }, "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.", + "description": "[Output Only] A warning code, if applicable. For example, Compute\nEngine returns NO_RESULTS_ON_PAGE if there\nare no results in the response.", "enum": [ "CLEANUP_FAILED", "DEPRECATED_RESOURCE_USED", @@ -56031,6 +82844,7 @@ "NOT_CRITICAL_ERROR", "NO_RESULTS_ON_PAGE", "PARTIAL_SUCCESS", + "QUOTA_INFO_UNAVAILABLE", "REQUIRED_TOS_AGREEMENT", "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", "RESOURCE_NOT_DELETED", @@ -56067,46 +82881,48 @@ false, false, false, + false, false ], "enumDescriptions": [ - "Warning about failed cleanup of transient changes made by a failed operation.", + "Warning about failed cleanup of transient changes made by a failed\noperation.", "A link to a deprecated resource was created.", - "When deploying and at least one of the resources has a type marked as deprecated", + "When deploying and at least one of the resources has a type marked as\ndeprecated", "The user created a boot disk that is larger than image size.", - "When deploying and at least one of the resources has a type marked as experimental", + "When deploying and at least one of the resources has a type marked as\nexperimental", "Warning that is present in an external api call", - "Warning that value of a field has been overridden. Deprecated unused field.", + "Warning that value of a field has been overridden.\nDeprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", - "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is\nnot of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", - "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", + "Resource can't be retrieved due to list overhead quota exceed\nwhich captures the amount of resources filtered out by\nuser-defined list filter.", "A resource depends on a missing type", - "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's nextHopIp address is not assigned to an instance on the\nnetwork.", "The route's next hop instance cannot ip forward.", - "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not have an\nipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", - "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that is not on the\nsame network as the route.", "The route's next hop instance does not have a status of RUNNING.", - "Error which is not critical. We decided to continue the process despite the mentioned error.", + "Error which is not critical. We decided to continue the process despite\nthe mentioned error.", "No results are present on a particular list page.", "Success is reported, but some results may be missing due to errors", - "The user attempted to use a resource that requires a TOS they have not accepted.", + "Quota information is not available to client requests (e.g:\nregions.list).", + "The user attempted to use a resource that requires a TOS they have not\naccepted.", "Warning that a resource is in use.", - "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "One or more of the resources set to auto-delete could not be deleted\nbecause they were in use.", "When a resource schema validation is ignored.", - "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", + "Instance template used in instance group manager is valid as such, but\nits application does not make a lot of sense, because it allows only\nsingle instance in instance group.", "When undeclared properties in the schema are present", "A given scope cannot be reached." ], "type": "string" }, "data": { - "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", + "description": "[Output Only] Metadata about this warning in key:\nvalue format. For example:\n\n\"data\": [\n {\n \"key\": \"scope\",\n \"value\": \"zones/us-east1-d\"\n }", "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).", + "description": "[Output Only] A key that provides more detail on the warning being\nreturned. For example, for warnings where there are no results in a list\nrequest for a particular zone, this key might be scope and\nthe key value might be the zone name. Other examples might be a key\nindicating a deprecated resource and a suggested replacement, or a\nwarning about invalid network settings (for example, if an instance\nattempts to perform IP forwarding but is not enabled for IP forwarding).", "type": "string" }, "value": { @@ -56128,240 +82944,41 @@ }, "type": "object" }, - "InterconnectRemoteLocationPermittedConnections": { - "id": "InterconnectRemoteLocationPermittedConnections", - "properties": { - "interconnectLocation": { - "description": "[Output Only] URL of an Interconnect location that is permitted to connect to this Interconnect remote location.", - "type": "string" - } - }, - "type": "object" - }, - "InterconnectsGetDiagnosticsResponse": { - "description": "Response for the InterconnectsGetDiagnosticsRequest.", - "id": "InterconnectsGetDiagnosticsResponse", - "properties": { - "result": { - "$ref": "InterconnectDiagnostics" - } - }, - "type": "object" - }, - "InterconnectsGetMacsecConfigResponse": { - "description": "Response for the InterconnectsGetMacsecConfigRequest.", - "id": "InterconnectsGetMacsecConfigResponse", - "properties": { - "etag": { - "description": "end_interface: MixerGetResponseWithEtagBuilder", - "type": "string" - }, - "result": { - "$ref": "InterconnectMacsecConfig" - } - }, - "type": "object" - }, - "License": { - "description": "Represents a License resource. A License represents billing and aggregate usage data for public and marketplace images. *Caution* This resource is intended for use only by third-party partners who are creating Cloud Marketplace images. ", - "id": "License", - "properties": { - "chargesUseFee": { - "description": "[Output Only] Deprecated. This field no longer reflects whether a license charges a usage fee.", - "type": "boolean" - }, - "creationTimestamp": { - "description": "[Output Only] Creation timestamp in RFC3339 text format.", - "type": "string" - }, - "description": { - "description": "An optional textual description of the resource; provided by the client when the resource is created.", - "type": "string" - }, - "id": { - "description": "[Output Only] The unique identifier for the resource. This identifier is defined by the server.", - "format": "uint64", - "type": "string" - }, - "kind": { - "default": "compute#license", - "description": "[Output Only] Type of resource. Always compute#license for licenses.", - "type": "string" - }, - "licenseCode": { - "description": "[Output Only] The unique code used to attach this license to images, snapshots, and disks.", - "format": "uint64", - "type": "string" - }, - "name": { - "annotations": { - "required": [ - "compute.images.insert" - ] - }, - "description": "Name of the resource. The name must be 1-63 characters long and comply with RFC1035.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "type": "string" - }, - "resourceRequirements": { - "$ref": "LicenseResourceRequirements" - }, - "selfLink": { - "description": "[Output Only] Server-defined URL for the resource.", - "type": "string" - }, - "transferable": { - "description": "If false, licenses will not be copied from the source resource when creating an image from a disk, disk from snapshot, or snapshot from disk.", - "type": "boolean" - } - }, - "type": "object" - }, - "LicenseCode": { - "description": "Represents a License Code resource. A License Code is a unique identifier used to represent a license resource. *Caution* This resource is intended for use only by third-party partners who are creating Cloud Marketplace images. ", - "id": "LicenseCode", - "properties": { - "creationTimestamp": { - "description": "[Output Only] Creation timestamp in RFC3339 text format.", - "type": "string" - }, - "description": { - "description": "[Output Only] Description of this License Code.", - "type": "string" - }, - "id": { - "description": "[Output Only] The unique identifier for the resource. This identifier is defined by the server.", - "format": "uint64", - "type": "string" - }, - "kind": { - "default": "compute#licenseCode", - "description": "[Output Only] Type of resource. Always compute#licenseCode for licenses.", - "type": "string" - }, - "licenseAlias": { - "description": "[Output Only] URL and description aliases of Licenses with the same License Code.", - "items": { - "$ref": "LicenseCodeLicenseAlias" - }, - "type": "array" - }, - "name": { - "annotations": { - "required": [ - "compute.licenses.insert" - ] - }, - "description": "[Output Only] Name of the resource. The name is 1-20 characters long and must be a valid 64 bit integer.", - "pattern": "[0-9]{0,20}?", - "type": "string" - }, - "selfLink": { - "description": "[Output Only] Server-defined URL for the resource.", - "type": "string" - }, - "state": { - "description": "[Output Only] Current state of this License Code.", - "enum": [ - "DISABLED", - "ENABLED", - "RESTRICTED", - "STATE_UNSPECIFIED", - "TERMINATED" - ], - "enumDescriptions": [ - "Machines are not allowed to attach boot disks with this License Code. Requests to create new resources with this license will be rejected.", - "Use is allowed for anyone with USE_READ_ONLY access to this License Code.", - "Use of this license is limited to a project whitelist.", - "", - "Reserved state." - ], - "type": "string" - }, - "transferable": { - "description": "[Output Only] If true, the license will remain attached when creating images or snapshots from disks. Otherwise, the license is not transferred.", - "type": "boolean" - } - }, - "type": "object" - }, - "LicenseCodeLicenseAlias": { - "id": "LicenseCodeLicenseAlias", - "properties": { - "description": { - "description": "[Output Only] Description of this License Code.", - "type": "string" - }, - "selfLink": { - "description": "[Output Only] URL of license corresponding to this License Code.", - "type": "string" - } - }, - "type": "object" - }, - "LicenseResourceCommitment": { - "description": "Commitment for a particular license resource.", - "id": "LicenseResourceCommitment", - "properties": { - "amount": { - "description": "The number of licenses purchased.", - "format": "int64", - "type": "string" - }, - "coresPerLicense": { - "description": "Specifies the core range of the instance for which this license applies.", - "type": "string" - }, - "license": { - "description": "Any applicable license URI.", - "type": "string" - } - }, - "type": "object" - }, - "LicenseResourceRequirements": { - "id": "LicenseResourceRequirements", - "properties": { - "minGuestCpuCount": { - "description": "Minimum number of guest cpus required to use the Instance. Enforced at Instance creation and Instance start.", - "format": "int32", - "type": "integer" - }, - "minMemoryMb": { - "description": "Minimum memory required to use the Instance. Enforced at Instance creation and Instance start.", - "format": "int32", - "type": "integer" - } - }, - "type": "object" - }, - "LicensesListResponse": { - "id": "LicensesListResponse", + "NodeTemplateList": { + "description": "Contains a list of node templates.", + "id": "NodeTemplateList", "properties": { "id": { "description": "[Output Only] Unique identifier for the resource; defined by the server.", "type": "string" }, "items": { - "description": "A list of License resources.", + "description": "A list of NodeTemplate resources.", "items": { - "$ref": "License" + "$ref": "NodeTemplate" }, "type": "array" }, + "kind": { + "default": "compute#nodeTemplateList", + "description": "Output only. [Output Only] Type of resource.Always compute#nodeTemplateList\nfor lists of node templates.", + "readOnly": true, + "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.", + "description": "[Output Only] This token allows you to get the next page of results for\nlist requests. If the number of results is larger thanmaxResults, use the nextPageToken as a value for\nthe query parameter pageToken in the next list request.\nSubsequent list requests will have their own nextPageToken to\ncontinue paging through the results.", "type": "string" }, "selfLink": { - "description": "[Output Only] Server-defined URL for this resource.", + "description": "Output only. [Output Only] Server-defined URL for this resource.", + "readOnly": true, "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.", + "description": "[Output Only] A warning code, if applicable. For example, Compute\nEngine returns NO_RESULTS_ON_PAGE if there\nare no results in the response.", "enum": [ "CLEANUP_FAILED", "DEPRECATED_RESOURCE_USED", @@ -56384,6 +83001,7 @@ "NOT_CRITICAL_ERROR", "NO_RESULTS_ON_PAGE", "PARTIAL_SUCCESS", + "QUOTA_INFO_UNAVAILABLE", "REQUIRED_TOS_AGREEMENT", "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", "RESOURCE_NOT_DELETED", @@ -56420,46 +83038,48 @@ false, false, false, + false, false ], "enumDescriptions": [ - "Warning about failed cleanup of transient changes made by a failed operation.", + "Warning about failed cleanup of transient changes made by a failed\noperation.", "A link to a deprecated resource was created.", - "When deploying and at least one of the resources has a type marked as deprecated", + "When deploying and at least one of the resources has a type marked as\ndeprecated", "The user created a boot disk that is larger than image size.", - "When deploying and at least one of the resources has a type marked as experimental", + "When deploying and at least one of the resources has a type marked as\nexperimental", "Warning that is present in an external api call", - "Warning that value of a field has been overridden. Deprecated unused field.", + "Warning that value of a field has been overridden.\nDeprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", - "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is\nnot of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", - "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", + "Resource can't be retrieved due to list overhead quota exceed\nwhich captures the amount of resources filtered out by\nuser-defined list filter.", "A resource depends on a missing type", - "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's nextHopIp address is not assigned to an instance on the\nnetwork.", "The route's next hop instance cannot ip forward.", - "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not have an\nipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", - "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that is not on the\nsame network as the route.", "The route's next hop instance does not have a status of RUNNING.", - "Error which is not critical. We decided to continue the process despite the mentioned error.", + "Error which is not critical. We decided to continue the process despite\nthe mentioned error.", "No results are present on a particular list page.", "Success is reported, but some results may be missing due to errors", - "The user attempted to use a resource that requires a TOS they have not accepted.", + "Quota information is not available to client requests (e.g:\nregions.list).", + "The user attempted to use a resource that requires a TOS they have not\naccepted.", "Warning that a resource is in use.", - "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "One or more of the resources set to auto-delete could not be deleted\nbecause they were in use.", "When a resource schema validation is ignored.", - "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", + "Instance template used in instance group manager is valid as such, but\nits application does not make a lot of sense, because it allows only\nsingle instance in instance group.", "When undeclared properties in the schema are present", "A given scope cannot be reached." ], "type": "string" }, "data": { - "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", + "description": "[Output Only] Metadata about this warning in key:\nvalue format. For example:\n\n\"data\": [\n {\n \"key\": \"scope\",\n \"value\": \"zones/us-east1-d\"\n }", "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).", + "description": "[Output Only] A key that provides more detail on the warning being\nreturned. For example, for warnings where there are no results in a list\nrequest for a particular zone, this key might be scope and\nthe key value might be the zone name. Other examples might be a key\nindicating a deprecated resource and a suggested replacement, or a\nwarning about invalid network settings (for example, if an instance\nattempts to perform IP forwarding but is not enabled for IP forwarding).", "type": "string" }, "value": { @@ -56481,350 +83101,36 @@ }, "type": "object" }, - "LocalDisk": { - "id": "LocalDisk", - "properties": { - "diskCount": { - "description": "Specifies the number of such disks.", - "format": "int32", - "type": "integer" - }, - "diskSizeGb": { - "description": "Specifies the size of the disk in base-2 GB.", - "format": "int32", - "type": "integer" - }, - "diskType": { - "description": "Specifies the desired disk type on the node. This disk type must be a local storage type (e.g.: local-ssd). Note that for nodeTemplates, this should be the name of the disk type and not its URL.", - "type": "string" - } - }, - "type": "object" - }, - "LocalizedMessage": { - "description": "Provides a localized error message that is safe to return to the user which can be attached to an RPC error.", - "id": "LocalizedMessage", - "properties": { - "locale": { - "description": "The locale used following the specification defined at https://www.rfc-editor.org/rfc/bcp/bcp47.txt. Examples are: \"en-US\", \"fr-CH\", \"es-MX\"", - "type": "string" - }, - "message": { - "description": "The localized error message in the above locale.", - "type": "string" - } - }, - "type": "object" - }, - "LocationPolicy": { - "description": "Configuration for location policy among multiple possible locations (e.g. preferences for zone selection among zones in a single region).", - "id": "LocationPolicy", - "properties": { - "locations": { - "additionalProperties": { - "$ref": "LocationPolicyLocation" - }, - "description": "Location configurations mapped by location name. Currently only zone names are supported and must be represented as valid internal URLs, such as zones/us-central1-a.", - "type": "object" - }, - "targetShape": { - "description": "Strategy for distributing VMs across zones in a region.", - "enum": [ - "ANY", - "ANY_SINGLE_ZONE", - "BALANCED" - ], - "enumDescriptions": [ - "GCE picks zones for creating VM instances to fulfill the requested number of VMs within present resource constraints and to maximize utilization of unused zonal reservations. Recommended for batch workloads that do not require high availability.", - "GCE always selects a single zone for all the VMs, optimizing for resource quotas, available reservations and general capacity. Recommended for batch workloads that cannot tollerate distribution over multiple zones. This the default shape in Bulk Insert and Capacity Advisor APIs.", - "GCE prioritizes acquisition of resources, scheduling VMs in zones where resources are available while distributing VMs as evenly as possible across allowed zones to minimize the impact of zonal failure. Recommended for highly available serving workloads." - ], - "type": "string" - } - }, - "type": "object" - }, - "LocationPolicyLocation": { - "id": "LocationPolicyLocation", - "properties": { - "constraints": { - "$ref": "LocationPolicyLocationConstraints", - "description": "Constraints that the caller requires on the result distribution in this zone." - }, - "preference": { - "description": "Preference for a given location. Set to either ALLOW or DENY.", - "enum": [ - "ALLOW", - "DENY", - "PREFERENCE_UNSPECIFIED" - ], - "enumDescriptions": [ - "Location is allowed for use.", - "Location is prohibited.", - "Default value, unused." - ], - "type": "string" - } - }, - "type": "object" - }, - "LocationPolicyLocationConstraints": { - "description": "Per-zone constraints on location policy for this zone.", - "id": "LocationPolicyLocationConstraints", - "properties": { - "maxCount": { - "description": "Maximum number of items that are allowed to be placed in this zone. The value must be non-negative.", - "format": "int32", - "type": "integer" - } - }, - "type": "object" - }, - "LogConfig": { - "description": "This is deprecated and has no effect. Do not use.", - "id": "LogConfig", - "properties": { - "cloudAudit": { - "$ref": "LogConfigCloudAuditOptions", - "description": "This is deprecated and has no effect. Do not use." - }, - "counter": { - "$ref": "LogConfigCounterOptions", - "description": "This is deprecated and has no effect. Do not use." - }, - "dataAccess": { - "$ref": "LogConfigDataAccessOptions", - "description": "This is deprecated and has no effect. Do not use." - } - }, - "type": "object" - }, - "LogConfigCloudAuditOptions": { - "description": "This is deprecated and has no effect. Do not use.", - "id": "LogConfigCloudAuditOptions", - "properties": { - "authorizationLoggingOptions": { - "$ref": "AuthorizationLoggingOptions", - "description": "This is deprecated and has no effect. Do not use." - }, - "logName": { - "description": "This is deprecated and has no effect. Do not use.", - "enum": [ - "ADMIN_ACTIVITY", - "DATA_ACCESS", - "UNSPECIFIED_LOG_NAME" - ], - "enumDescriptions": [ - "This is deprecated and has no effect. Do not use.", - "This is deprecated and has no effect. Do not use.", - "This is deprecated and has no effect. Do not use." - ], - "type": "string" - } - }, - "type": "object" - }, - "LogConfigCounterOptions": { - "description": "This is deprecated and has no effect. Do not use.", - "id": "LogConfigCounterOptions", - "properties": { - "customFields": { - "description": "This is deprecated and has no effect. Do not use.", - "items": { - "$ref": "LogConfigCounterOptionsCustomField" - }, - "type": "array" - }, - "field": { - "description": "This is deprecated and has no effect. Do not use.", - "type": "string" - }, - "metric": { - "description": "This is deprecated and has no effect. Do not use.", - "type": "string" - } - }, - "type": "object" - }, - "LogConfigCounterOptionsCustomField": { - "description": "This is deprecated and has no effect. Do not use.", - "id": "LogConfigCounterOptionsCustomField", - "properties": { - "name": { - "description": "This is deprecated and has no effect. Do not use.", - "type": "string" - }, - "value": { - "description": "This is deprecated and has no effect. Do not use.", - "type": "string" - } - }, - "type": "object" - }, - "LogConfigDataAccessOptions": { - "description": "This is deprecated and has no effect. Do not use.", - "id": "LogConfigDataAccessOptions", - "properties": { - "logMode": { - "description": "This is deprecated and has no effect. Do not use.", - "enum": [ - "LOG_FAIL_CLOSED", - "LOG_MODE_UNSPECIFIED" - ], - "enumDescriptions": [ - "This is deprecated and has no effect. Do not use.", - "This is deprecated and has no effect. Do not use." - ], - "type": "string" - } - }, - "type": "object" - }, - "MachineImage": { - "description": "Represents a machine image resource. A machine image is a Compute Engine resource that stores all the configuration, metadata, permissions, and data from one or more disks required to create a Virtual machine (VM) instance. For more information, see Machine images.", - "id": "MachineImage", + "NodeTemplateNodeTypeFlexibility": { + "id": "NodeTemplateNodeTypeFlexibility", "properties": { - "creationTimestamp": { - "description": "[Output Only] The creation timestamp for this machine image in RFC3339 text format.", - "type": "string" - }, - "description": { - "description": "An optional description of this resource. Provide this property when you create the resource.", - "type": "string" - }, - "guestFlush": { - "description": "[Input Only] Whether to attempt an application consistent machine image by informing the OS to prepare for the snapshot process.", - "type": "boolean" - }, - "id": { - "description": "[Output Only] A unique identifier for this machine image. The server defines this identifier.", - "format": "uint64", - "type": "string" - }, - "instanceProperties": { - "$ref": "InstanceProperties", - "description": "[Output Only] Properties of source instance" - }, - "kind": { - "default": "compute#machineImage", - "description": "[Output Only] The resource type, which is always compute#machineImage for machine image.", - "type": "string" - }, - "machineImageEncryptionKey": { - "$ref": "CustomerEncryptionKey", - "description": "Encrypts the machine image using a customer-supplied encryption key. After you encrypt a machine image using a customer-supplied key, you must provide the same key if you use the machine image later. For example, you must provide the encryption key when you create an instance from the encrypted machine image in a future request. Customer-supplied encryption keys do not protect access to metadata of the machine image. If you do not provide an encryption key when creating the machine image, then the machine image will be encrypted using an automatically generated key and you do not need to provide a key to use the machine image later." - }, - "name": { - "annotations": { - "required": [ - "compute.machineImages.insert" - ] - }, - "description": "Name of the resource; provided by the client when the resource is created. The name must be 1-63 characters long, and comply with RFC1035. 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" - }, - "satisfiesPzi": { - "description": "Output only. Reserved for future use.", - "readOnly": true, - "type": "boolean" - }, - "satisfiesPzs": { - "description": "[Output Only] Reserved for future use.", - "type": "boolean" - }, - "savedDisks": { - "description": "An array of Machine Image specific properties for disks attached to the source instance", - "items": { - "$ref": "SavedDisk" - }, - "type": "array" - }, - "selfLink": { - "description": "[Output Only] The URL for this machine image. The server defines this URL.", - "type": "string" - }, - "sourceDiskEncryptionKeys": { - "description": "[Input Only] The customer-supplied encryption key of the disks attached to the source instance. Required if the source disk is protected by a customer-supplied encryption key.", - "items": { - "$ref": "SourceDiskEncryptionKey" - }, - "type": "array" - }, - "sourceInstance": { - "description": "The source instance used to create the machine image. 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 ", + "cpus": { "type": "string" }, - "sourceInstanceProperties": { - "$ref": "SourceInstanceProperties", - "description": "[Output Only] DEPRECATED: Please use instance_properties instead for source instance related properties. New properties will not be added to this field." - }, - "status": { - "description": "[Output Only] The status of the machine image. One of the following values: INVALID, CREATING, READY, DELETING, and UPLOADING.", - "enum": [ - "CREATING", - "DELETING", - "INVALID", - "READY", - "UPLOADING" - ], - "enumDescriptions": [ - "", - "", - "", - "", - "" - ], + "localSsd": { "type": "string" }, - "storageLocations": { - "description": "The regional or multi-regional Cloud Storage bucket location where the machine image is stored.", - "items": { - "type": "string" - }, - "type": "array" - }, - "totalStorageBytes": { - "description": "[Output Only] Total size of the storage used by the machine image.", - "format": "int64", + "memory": { "type": "string" } }, "type": "object" }, - "MachineImageList": { - "description": "A list of machine images.", - "id": "MachineImageList", + "NodeTemplatesScopedList": { + "id": "NodeTemplatesScopedList", "properties": { - "id": { - "description": "[Output Only] Unique identifier for the resource; defined by the server.", - "type": "string" - }, - "items": { - "description": "A list of MachineImage resources.", + "nodeTemplates": { + "description": "[Output Only] A list of node templates contained in this scope.", "items": { - "$ref": "MachineImage" + "$ref": "NodeTemplate" }, "type": "array" }, - "kind": { - "default": "compute#machineImageList", - "description": "[Output Only] The resource type, which is always compute#machineImagesListResponse for machine image lists.", - "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" - }, - "selfLink": { - "description": "[Output Only] Server-defined URL for this resource.", - "type": "string" - }, "warning": { - "description": "[Output Only] Informational warning message.", + "description": "[Output Only] An informational warning that appears when the node templates\nlist is empty.", "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.", + "description": "[Output Only] A warning code, if applicable. For example, Compute\nEngine returns NO_RESULTS_ON_PAGE if there\nare no results in the response.", "enum": [ "CLEANUP_FAILED", "DEPRECATED_RESOURCE_USED", @@ -56847,6 +83153,7 @@ "NOT_CRITICAL_ERROR", "NO_RESULTS_ON_PAGE", "PARTIAL_SUCCESS", + "QUOTA_INFO_UNAVAILABLE", "REQUIRED_TOS_AGREEMENT", "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", "RESOURCE_NOT_DELETED", @@ -56883,46 +83190,48 @@ false, false, false, + false, false ], "enumDescriptions": [ - "Warning about failed cleanup of transient changes made by a failed operation.", + "Warning about failed cleanup of transient changes made by a failed\noperation.", "A link to a deprecated resource was created.", - "When deploying and at least one of the resources has a type marked as deprecated", + "When deploying and at least one of the resources has a type marked as\ndeprecated", "The user created a boot disk that is larger than image size.", - "When deploying and at least one of the resources has a type marked as experimental", + "When deploying and at least one of the resources has a type marked as\nexperimental", "Warning that is present in an external api call", - "Warning that value of a field has been overridden. Deprecated unused field.", + "Warning that value of a field has been overridden.\nDeprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", - "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is\nnot of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", - "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", + "Resource can't be retrieved due to list overhead quota exceed\nwhich captures the amount of resources filtered out by\nuser-defined list filter.", "A resource depends on a missing type", - "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's nextHopIp address is not assigned to an instance on the\nnetwork.", "The route's next hop instance cannot ip forward.", - "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not have an\nipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", - "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that is not on the\nsame network as the route.", "The route's next hop instance does not have a status of RUNNING.", - "Error which is not critical. We decided to continue the process despite the mentioned error.", + "Error which is not critical. We decided to continue the process despite\nthe mentioned error.", "No results are present on a particular list page.", "Success is reported, but some results may be missing due to errors", - "The user attempted to use a resource that requires a TOS they have not accepted.", + "Quota information is not available to client requests (e.g:\nregions.list).", + "The user attempted to use a resource that requires a TOS they have not\naccepted.", "Warning that a resource is in use.", - "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "One or more of the resources set to auto-delete could not be deleted\nbecause they were in use.", "When a resource schema validation is ignored.", - "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", + "Instance template used in instance group manager is valid as such, but\nits application does not make a lot of sense, because it allows only\nsingle instance in instance group.", "When undeclared properties in the schema are present", "A given scope cannot be reached." ], "type": "string" }, "data": { - "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", + "description": "[Output Only] Metadata about this warning in key:\nvalue format. For example:\n\n\"data\": [\n {\n \"key\": \"scope\",\n \"value\": \"zones/us-east1-d\"\n }", "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).", + "description": "[Output Only] A key that provides more detail on the warning being\nreturned. For example, for warnings where there are no results in a list\nrequest for a particular zone, this key might be scope and\nthe key value might be the zone name. Other examples might be a key\nindicating a deprecated resource and a suggested replacement, or a\nwarning about invalid network settings (for example, if an instance\nattempts to perform IP forwarding but is not enabled for IP forwarding).", "type": "string" }, "value": { @@ -56942,78 +83251,57 @@ "type": "object" } }, - "type": "object" - }, - "MachineType": { - "description": "Represents a Machine Type resource. You can use specific machine types for your VM instances based on performance and pricing requirements. For more information, read Machine Types.", - "id": "MachineType", - "properties": { - "accelerators": { - "description": "[Output Only] A list of accelerator configurations assigned to this machine type.", - "items": { - "properties": { - "guestAcceleratorCount": { - "description": "Number of accelerator cards exposed to the guest.", - "format": "int32", - "type": "integer" - }, - "guestAcceleratorType": { - "description": "The accelerator type resource name, not a full URL, e.g. nvidia-tesla-t4.", - "type": "string" - } - }, - "type": "object" - }, - "type": "array" + "type": "object" + }, + "NodeType": { + "description": "Represent a sole-tenant Node Type resource.\n\nEach node within a node group must have a node type. A node type specifies\nthe total amount of cores and memory for that node. Currently, the only\navailable node type is n1-node-96-624 node type that has 96\nvCPUs and 624 GB of memory, available in multiple zones. For more information\nreadNode types.", + "id": "NodeType", + "properties": { + "cpuPlatform": { + "description": "[Output Only] The CPU platform used by this node type.", + "type": "string" }, "creationTimestamp": { - "description": "[Output Only] Creation timestamp in RFC3339 text format.", + "description": "[Output Only] Creation timestamp inRFC3339\ntext format.", "type": "string" }, "deprecated": { "$ref": "DeprecationStatus", - "description": "[Output Only] The deprecation status associated with this machine type. Only applicable if the machine type is unavailable." + "description": "[Output Only] The deprecation status associated with this node type." }, "description": { "description": "[Output Only] An optional textual description of the resource.", "type": "string" }, "guestCpus": { - "description": "[Output Only] The number of virtual CPUs that are available to the instance.", + "description": "[Output Only] The number of virtual CPUs that are available to the node\ntype.", "format": "int32", "type": "integer" }, "id": { - "description": "[Output Only] The unique identifier for the resource. This identifier is defined by the server.", + "description": "[Output Only] The unique identifier for the resource. This identifier is\ndefined by the server.", "format": "uint64", "type": "string" }, - "imageSpaceGb": { - "description": "[Deprecated] This property is deprecated and will never be populated with any relevant values.", - "format": "int32", - "type": "integer" - }, - "isSharedCpu": { - "description": "[Output Only] Whether this machine type has a shared CPU. See Shared-core machine types for more information.", - "type": "boolean" - }, "kind": { - "default": "compute#machineType", - "description": "[Output Only] The type of the resource. Always compute#machineType for machine types.", + "default": "compute#nodeType", + "description": "Output only. [Output Only] The type of the resource. Alwayscompute#nodeType for node types.", + "readOnly": true, "type": "string" }, - "maximumPersistentDisks": { - "description": "[Output Only] Maximum persistent disks allowed.", + "localSsdGb": { + "description": "[Output Only] Local SSD available to the node type, defined in GB.", "format": "int32", "type": "integer" }, - "maximumPersistentDisksSizeGb": { - "description": "[Output Only] Maximum total persistent disks size (GB) allowed.", - "format": "int64", - "type": "string" + "maxVms": { + "description": "Output only. [Output Only] Maximum number of VMs that can be created for this node type.", + "format": "int32", + "readOnly": true, + "type": "integer" }, "memoryMb": { - "description": "[Output Only] The amount of physical memory available to the instance, defined in MB.", + "description": "[Output Only] The amount of physical memory available to the node type,\ndefined in MB.", "format": "int32", "type": "integer" }, @@ -57022,33 +83310,21 @@ "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", "type": "string" }, - "scratchDisks": { - "description": "[Output Only] A list of extended scratch disks assigned to the instance.", - "items": { - "properties": { - "diskGb": { - "description": "Size of the scratch disk, defined in GB.", - "format": "int32", - "type": "integer" - } - }, - "type": "object" - }, - "type": "array" - }, "selfLink": { - "description": "[Output Only] Server-defined URL for the resource.", + "description": "Output only. [Output Only] Server-defined URL for the resource.", + "readOnly": true, "type": "string" }, "zone": { - "description": "[Output Only] The name of the zone where the machine type resides, such as us-central1-a.", + "description": "Output only. [Output Only] The name of the zone where the node type resides,\nsuch as us-central1-a.", + "readOnly": true, "type": "string" } }, "type": "object" }, - "MachineTypeAggregatedList": { - "id": "MachineTypeAggregatedList", + "NodeTypeAggregatedList": { + "id": "NodeTypeAggregatedList", "properties": { "id": { "description": "[Output Only] Unique identifier for the resource; defined by the server.", @@ -57056,37 +83332,40 @@ }, "items": { "additionalProperties": { - "$ref": "MachineTypesScopedList", - "description": "[Output Only] Name of the scope containing this set of machine types." + "$ref": "NodeTypesScopedList", + "description": "[Output Only] Name of the scope containing this set of node types." }, - "description": "A list of MachineTypesScopedList resources.", + "description": "A list of NodeTypesScopedList resources.", "type": "object" }, "kind": { - "default": "compute#machineTypeAggregatedList", - "description": "[Output Only] Type of resource. Always compute#machineTypeAggregatedList for aggregated lists of machine types.", + "default": "compute#nodeTypeAggregatedList", + "description": "Output only. [Output Only] Type of resource.Alwayscompute#nodeTypeAggregatedList for aggregated lists of node\ntypes.", + "readOnly": true, "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.", + "description": "[Output Only] This token allows you to get the next page of results for\nlist requests. If the number of results is larger thanmaxResults, use the nextPageToken as a value for\nthe query parameter pageToken in the next list request.\nSubsequent list requests will have their own nextPageToken to\ncontinue paging through the results.", "type": "string" }, "selfLink": { - "description": "[Output Only] Server-defined URL for this resource.", + "description": "Output only. [Output Only] Server-defined URL for this resource.", + "readOnly": true, "type": "string" }, "unreachables": { - "description": "[Output Only] Unreachable resources.", + "description": "Output only. [Output Only] Unreachable resources.", "items": { "type": "string" }, + "readOnly": true, "type": "array" }, "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.", + "description": "[Output Only] A warning code, if applicable. For example, Compute\nEngine returns NO_RESULTS_ON_PAGE if there\nare no results in the response.", "enum": [ "CLEANUP_FAILED", "DEPRECATED_RESOURCE_USED", @@ -57109,6 +83388,7 @@ "NOT_CRITICAL_ERROR", "NO_RESULTS_ON_PAGE", "PARTIAL_SUCCESS", + "QUOTA_INFO_UNAVAILABLE", "REQUIRED_TOS_AGREEMENT", "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", "RESOURCE_NOT_DELETED", @@ -57145,46 +83425,48 @@ false, false, false, + false, false ], "enumDescriptions": [ - "Warning about failed cleanup of transient changes made by a failed operation.", + "Warning about failed cleanup of transient changes made by a failed\noperation.", "A link to a deprecated resource was created.", - "When deploying and at least one of the resources has a type marked as deprecated", + "When deploying and at least one of the resources has a type marked as\ndeprecated", "The user created a boot disk that is larger than image size.", - "When deploying and at least one of the resources has a type marked as experimental", + "When deploying and at least one of the resources has a type marked as\nexperimental", "Warning that is present in an external api call", - "Warning that value of a field has been overridden. Deprecated unused field.", + "Warning that value of a field has been overridden.\nDeprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", - "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is\nnot of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", - "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", + "Resource can't be retrieved due to list overhead quota exceed\nwhich captures the amount of resources filtered out by\nuser-defined list filter.", "A resource depends on a missing type", - "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's nextHopIp address is not assigned to an instance on the\nnetwork.", "The route's next hop instance cannot ip forward.", - "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not have an\nipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", - "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that is not on the\nsame network as the route.", "The route's next hop instance does not have a status of RUNNING.", - "Error which is not critical. We decided to continue the process despite the mentioned error.", + "Error which is not critical. We decided to continue the process despite\nthe mentioned error.", "No results are present on a particular list page.", "Success is reported, but some results may be missing due to errors", - "The user attempted to use a resource that requires a TOS they have not accepted.", + "Quota information is not available to client requests (e.g:\nregions.list).", + "The user attempted to use a resource that requires a TOS they have not\naccepted.", "Warning that a resource is in use.", - "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "One or more of the resources set to auto-delete could not be deleted\nbecause they were in use.", "When a resource schema validation is ignored.", - "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", + "Instance template used in instance group manager is valid as such, but\nits application does not make a lot of sense, because it allows only\nsingle instance in instance group.", "When undeclared properties in the schema are present", "A given scope cannot be reached." ], "type": "string" }, "data": { - "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", + "description": "[Output Only] Metadata about this warning in key:\nvalue format. For example:\n\n\"data\": [\n {\n \"key\": \"scope\",\n \"value\": \"zones/us-east1-d\"\n }", "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).", + "description": "[Output Only] A key that provides more detail on the warning being\nreturned. For example, for warnings where there are no results in a list\nrequest for a particular zone, this key might be scope and\nthe key value might be the zone name. Other examples might be a key\nindicating a deprecated resource and a suggested replacement, or a\nwarning about invalid network settings (for example, if an instance\nattempts to perform IP forwarding but is not enabled for IP forwarding).", "type": "string" }, "value": { @@ -57206,39 +83488,41 @@ }, "type": "object" }, - "MachineTypeList": { - "description": "Contains a list of machine types.", - "id": "MachineTypeList", + "NodeTypeList": { + "description": "Contains a list of node types.", + "id": "NodeTypeList", "properties": { "id": { "description": "[Output Only] Unique identifier for the resource; defined by the server.", "type": "string" }, "items": { - "description": "A list of MachineType resources.", + "description": "A list of NodeType resources.", "items": { - "$ref": "MachineType" + "$ref": "NodeType" }, "type": "array" }, "kind": { - "default": "compute#machineTypeList", - "description": "[Output Only] Type of resource. Always compute#machineTypeList for lists of machine types.", + "default": "compute#nodeTypeList", + "description": "Output only. [Output Only] Type of resource.Always compute#nodeTypeList for\nlists of node types.", + "readOnly": true, "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.", + "description": "[Output Only] This token allows you to get the next page of results for\nlist requests. If the number of results is larger thanmaxResults, use the nextPageToken as a value for\nthe query parameter pageToken in the next list request.\nSubsequent list requests will have their own nextPageToken to\ncontinue paging through the results.", "type": "string" }, "selfLink": { - "description": "[Output Only] Server-defined URL for this resource.", + "description": "Output only. [Output Only] Server-defined URL for this resource.", + "readOnly": true, "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.", + "description": "[Output Only] A warning code, if applicable. For example, Compute\nEngine returns NO_RESULTS_ON_PAGE if there\nare no results in the response.", "enum": [ "CLEANUP_FAILED", "DEPRECATED_RESOURCE_USED", @@ -57261,6 +83545,7 @@ "NOT_CRITICAL_ERROR", "NO_RESULTS_ON_PAGE", "PARTIAL_SUCCESS", + "QUOTA_INFO_UNAVAILABLE", "REQUIRED_TOS_AGREEMENT", "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", "RESOURCE_NOT_DELETED", @@ -57297,46 +83582,48 @@ false, false, false, + false, false ], "enumDescriptions": [ - "Warning about failed cleanup of transient changes made by a failed operation.", + "Warning about failed cleanup of transient changes made by a failed\noperation.", "A link to a deprecated resource was created.", - "When deploying and at least one of the resources has a type marked as deprecated", + "When deploying and at least one of the resources has a type marked as\ndeprecated", "The user created a boot disk that is larger than image size.", - "When deploying and at least one of the resources has a type marked as experimental", + "When deploying and at least one of the resources has a type marked as\nexperimental", "Warning that is present in an external api call", - "Warning that value of a field has been overridden. Deprecated unused field.", + "Warning that value of a field has been overridden.\nDeprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", - "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is\nnot of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", - "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", + "Resource can't be retrieved due to list overhead quota exceed\nwhich captures the amount of resources filtered out by\nuser-defined list filter.", "A resource depends on a missing type", - "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's nextHopIp address is not assigned to an instance on the\nnetwork.", "The route's next hop instance cannot ip forward.", - "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not have an\nipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", - "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that is not on the\nsame network as the route.", "The route's next hop instance does not have a status of RUNNING.", - "Error which is not critical. We decided to continue the process despite the mentioned error.", + "Error which is not critical. We decided to continue the process despite\nthe mentioned error.", "No results are present on a particular list page.", "Success is reported, but some results may be missing due to errors", - "The user attempted to use a resource that requires a TOS they have not accepted.", + "Quota information is not available to client requests (e.g:\nregions.list).", + "The user attempted to use a resource that requires a TOS they have not\naccepted.", "Warning that a resource is in use.", - "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "One or more of the resources set to auto-delete could not be deleted\nbecause they were in use.", "When a resource schema validation is ignored.", - "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", + "Instance template used in instance group manager is valid as such, but\nits application does not make a lot of sense, because it allows only\nsingle instance in instance group.", "When undeclared properties in the schema are present", "A given scope cannot be reached." ], "type": "string" }, "data": { - "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", + "description": "[Output Only] Metadata about this warning in key:\nvalue format. For example:\n\n\"data\": [\n {\n \"key\": \"scope\",\n \"value\": \"zones/us-east1-d\"\n }", "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).", + "description": "[Output Only] A key that provides more detail on the warning being\nreturned. For example, for warnings where there are no results in a list\nrequest for a particular zone, this key might be scope and\nthe key value might be the zone name. Other examples might be a key\nindicating a deprecated resource and a suggested replacement, or a\nwarning about invalid network settings (for example, if an instance\nattempts to perform IP forwarding but is not enabled for IP forwarding).", "type": "string" }, "value": { @@ -57358,21 +83645,21 @@ }, "type": "object" }, - "MachineTypesScopedList": { - "id": "MachineTypesScopedList", + "NodeTypesScopedList": { + "id": "NodeTypesScopedList", "properties": { - "machineTypes": { - "description": "[Output Only] A list of machine types contained in this scope.", + "nodeTypes": { + "description": "[Output Only] A list of node types contained in this scope.", "items": { - "$ref": "MachineType" + "$ref": "NodeType" }, "type": "array" }, "warning": { - "description": "[Output Only] An informational warning that appears when the machine types list is empty.", + "description": "[Output Only] An informational warning that appears when the node types\nlist is empty.", "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.", + "description": "[Output Only] A warning code, if applicable. For example, Compute\nEngine returns NO_RESULTS_ON_PAGE if there\nare no results in the response.", "enum": [ "CLEANUP_FAILED", "DEPRECATED_RESOURCE_USED", @@ -57395,6 +83682,7 @@ "NOT_CRITICAL_ERROR", "NO_RESULTS_ON_PAGE", "PARTIAL_SUCCESS", + "QUOTA_INFO_UNAVAILABLE", "REQUIRED_TOS_AGREEMENT", "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", "RESOURCE_NOT_DELETED", @@ -57431,46 +83719,48 @@ false, false, false, + false, false ], "enumDescriptions": [ - "Warning about failed cleanup of transient changes made by a failed operation.", + "Warning about failed cleanup of transient changes made by a failed\noperation.", "A link to a deprecated resource was created.", - "When deploying and at least one of the resources has a type marked as deprecated", + "When deploying and at least one of the resources has a type marked as\ndeprecated", "The user created a boot disk that is larger than image size.", - "When deploying and at least one of the resources has a type marked as experimental", + "When deploying and at least one of the resources has a type marked as\nexperimental", "Warning that is present in an external api call", - "Warning that value of a field has been overridden. Deprecated unused field.", + "Warning that value of a field has been overridden.\nDeprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", - "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is\nnot of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", - "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", + "Resource can't be retrieved due to list overhead quota exceed\nwhich captures the amount of resources filtered out by\nuser-defined list filter.", "A resource depends on a missing type", - "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's nextHopIp address is not assigned to an instance on the\nnetwork.", "The route's next hop instance cannot ip forward.", - "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not have an\nipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", - "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that is not on the\nsame network as the route.", "The route's next hop instance does not have a status of RUNNING.", - "Error which is not critical. We decided to continue the process despite the mentioned error.", + "Error which is not critical. We decided to continue the process despite\nthe mentioned error.", "No results are present on a particular list page.", "Success is reported, but some results may be missing due to errors", - "The user attempted to use a resource that requires a TOS they have not accepted.", + "Quota information is not available to client requests (e.g:\nregions.list).", + "The user attempted to use a resource that requires a TOS they have not\naccepted.", "Warning that a resource is in use.", - "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "One or more of the resources set to auto-delete could not be deleted\nbecause they were in use.", "When a resource schema validation is ignored.", - "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", + "Instance template used in instance group manager is valid as such, but\nits application does not make a lot of sense, because it allows only\nsingle instance in instance group.", "When undeclared properties in the schema are present", "A given scope cannot be reached." ], "type": "string" }, "data": { - "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", + "description": "[Output Only] Metadata about this warning in key:\nvalue format. For example:\n\n\"data\": [\n {\n \"key\": \"scope\",\n \"value\": \"zones/us-east1-d\"\n }", "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).", + "description": "[Output Only] A key that provides more detail on the warning being\nreturned. For example, for warnings where there are no results in a list\nrequest for a particular zone, this key might be scope and\nthe key value might be the zone name. Other examples might be a key\nindicating a deprecated resource and a suggested replacement, or a\nwarning about invalid network settings (for example, if an instance\nattempts to perform IP forwarding but is not enabled for IP forwarding).", "type": "string" }, "value": { @@ -57492,604 +83782,269 @@ }, "type": "object" }, - "ManagedInstance": { - "description": "A Managed Instance resource.", - "id": "ManagedInstance", - "properties": { - "currentAction": { - "description": "[Output Only] The current action that the managed instance group has scheduled for the instance. Possible values: - NONE The instance is running, and the managed instance group does not have any scheduled actions for this instance. - CREATING The managed instance group is creating this instance. If the group fails to create this instance, it will try again until it is successful. - CREATING_WITHOUT_RETRIES The managed instance group is attempting to create this instance only once. If the group fails to create this instance, it does not try again and the group's targetSize value is decreased instead. - RECREATING The managed instance group is recreating this instance. - DELETING The managed instance group is permanently deleting this instance. - ABANDONING The managed instance group is abandoning this instance. The instance will be removed from the instance group and from any target pools that are associated with this group. - RESTARTING The managed instance group is restarting the instance. - REFRESHING The managed instance group is applying configuration changes to the instance without stopping it. For example, the group can update the target pool list for an instance without stopping that instance. - VERIFYING The managed instance group has created the instance and it is in the process of being verified. ", - "enum": [ - "ABANDONING", - "CREATING", - "CREATING_WITHOUT_RETRIES", - "DELETING", - "NONE", - "RECREATING", - "REFRESHING", - "RESTARTING", - "RESUMING", - "STARTING", - "STOPPING", - "SUSPENDING", - "VERIFYING" - ], - "enumDescriptions": [ - "The managed instance group is abandoning this instance. The instance will be removed from the instance group and from any target pools that are associated with this group.", - "The managed instance group is creating this instance. If the group fails to create this instance, it will try again until it is successful.", - "The managed instance group is attempting to create this instance only once. If the group fails to create this instance, it does not try again and the group's targetSize value is decreased.", - "The managed instance group is permanently deleting this instance.", - "The managed instance group has not scheduled any actions for this instance.", - "The managed instance group is recreating this instance.", - "The managed instance group is applying configuration changes to the instance without stopping it. For example, the group can update the target pool list for an instance without stopping that instance.", - "The managed instance group is restarting this instance.", - "The managed instance group is resuming this instance.", - "The managed instance group is starting this instance.", - "The managed instance group is stopping this instance.", - "The managed instance group is suspending this instance.", - "The managed instance group is verifying this already created instance. Verification happens every time the instance is (re)created or restarted and consists of: 1. Waiting until health check specified as part of this managed instance group's autohealing policy reports HEALTHY. Note: Applies only if autohealing policy has a health check specified 2. Waiting for addition verification steps performed as post-instance creation (subject to future extensions)." - ], - "type": "string" - }, - "id": { - "description": "[Output only] The unique identifier for this resource. This field is empty when instance does not exist.", - "format": "uint64", - "type": "string" - }, - "instance": { - "description": "[Output Only] The URL of the instance. The URL can exist even if the instance has not yet been created.", - "type": "string" - }, - "instanceHealth": { - "description": "[Output Only] Health state of the instance per health-check.", - "items": { - "$ref": "ManagedInstanceInstanceHealth" - }, - "type": "array" - }, - "instanceStatus": { - "description": "[Output Only] The status of the instance. This field is empty when the instance does not exist.", - "enum": [ - "DEPROVISIONING", - "PROVISIONING", - "REPAIRING", - "RUNNING", - "STAGING", - "STOPPED", - "STOPPING", - "SUSPENDED", - "SUSPENDING", - "TERMINATED" - ], - "enumDescriptions": [ - "The instance is halted and we are performing tear down tasks like network deprogramming, releasing quota, IP, tearing down disks etc.", - "Resources are being allocated for the instance.", - "The instance is in repair.", - "The instance is running.", - "All required resources have been allocated and the instance is being started.", - "The instance has stopped successfully.", - "The instance is currently stopping (either being deleted or killed).", - "The instance has suspended.", - "The instance is suspending.", - "The instance has stopped (either by explicit action or underlying failure)." - ], - "type": "string" - }, - "lastAttempt": { - "$ref": "ManagedInstanceLastAttempt", - "description": "[Output Only] Information about the last attempt to create or delete the instance." - }, - "name": { - "description": "[Output Only] The name of the instance. The name always exists even if the instance has not yet been created.", - "type": "string" - }, - "preservedStateFromConfig": { - "$ref": "PreservedState", - "description": "[Output Only] Preserved state applied from per-instance config for this instance." - }, - "preservedStateFromPolicy": { - "$ref": "PreservedState", - "description": "[Output Only] Preserved state generated based on stateful policy for this instance." - }, - "version": { - "$ref": "ManagedInstanceVersion", - "description": "[Output Only] Intended version of this instance." - } - }, - "type": "object" - }, - "ManagedInstanceInstanceHealth": { - "id": "ManagedInstanceInstanceHealth", - "properties": { - "detailedHealthState": { - "description": "[Output Only] The current detailed instance health state.", - "enum": [ - "DRAINING", - "HEALTHY", - "TIMEOUT", - "UNHEALTHY", - "UNKNOWN" - ], - "enumDescriptions": [ - "The instance is being drained. The existing connections to the instance have time to complete, but the new ones are being refused.", - "The instance is reachable i.e. a connection to the application health checking endpoint can be established, and conforms to the requirements defined by the health check.", - "The instance is unreachable i.e. a connection to the application health checking endpoint cannot be established, or the server does not respond within the specified timeout.", - "The instance is reachable, but does not conform to the requirements defined by the health check.", - "The health checking system is aware of the instance but its health is not known at the moment." - ], - "type": "string" - }, - "healthCheck": { - "description": "[Output Only] The URL for the health check that verifies whether the instance is healthy.", - "type": "string" - } - }, - "type": "object" - }, - "ManagedInstanceLastAttempt": { - "id": "ManagedInstanceLastAttempt", - "properties": { - "errors": { - "description": "[Output Only] Encountered errors during the last attempt to create or delete the instance.", - "properties": { - "errors": { - "description": "[Output Only] The array of errors encountered while processing this operation.", - "items": { - "properties": { - "code": { - "description": "[Output Only] The error type identifier for this error.", - "type": "string" - }, - "errorDetails": { - "description": "[Output Only] An optional list of messages that contain the error details. There is a set of defined message types to use for providing details.The syntax depends on the error code. For example, QuotaExceededInfo will have details when the error code is QUOTA_EXCEEDED.", - "items": { - "properties": { - "errorInfo": { - "$ref": "ErrorInfo" - }, - "help": { - "$ref": "Help" - }, - "localizedMessage": { - "$ref": "LocalizedMessage" - }, - "quotaInfo": { - "$ref": "QuotaExceededInfo" - } - }, - "type": "object" - }, - "type": "array" - }, - "location": { - "description": "[Output Only] Indicates the field in the request that caused the error. This property is optional.", - "type": "string" - }, - "message": { - "description": "[Output Only] An optional, human-readable error message.", - "type": "string" - } - }, - "type": "object" - }, - "type": "array" - } - }, - "type": "object" - } - }, - "type": "object" - }, - "ManagedInstanceVersion": { - "id": "ManagedInstanceVersion", - "properties": { - "instanceTemplate": { - "description": "[Output Only] The intended template of the instance. This field is empty when current_action is one of { DELETING, ABANDONING }.", - "type": "string" - }, - "name": { - "description": "[Output Only] Name of the version.", - "type": "string" - } - }, - "type": "object" - }, - "Metadata": { - "description": "A metadata key/value entry.", - "id": "Metadata", - "properties": { - "fingerprint": { - "description": "Specifies a fingerprint for this request, which is essentially a hash of the metadata's contents and used for optimistic locking. The fingerprint is initially generated by Compute Engine and changes after every request to modify or update metadata. You must always provide an up-to-date fingerprint hash in order to update or change metadata, otherwise the request will fail with error 412 conditionNotMet. To see the latest fingerprint, make a get() request to retrieve the resource.", - "format": "byte", - "type": "string" - }, - "items": { - "description": "Array of key/value pairs. The total size of all keys and values must be less than 512 KB.", - "items": { - "description": "Metadata", - "properties": { - "key": { - "annotations": { - "required": [ - "compute.instances.insert", - "compute.projects.setCommonInstanceMetadata" - ] - }, - "description": "Key for the metadata entry. Keys must conform to the following regexp: [a-zA-Z0-9-_]+, and be less than 128 bytes in length. This is reflected as part of a URL in the metadata server. Additionally, to avoid ambiguity, keys must not conflict with any other metadata keys for the project.", - "pattern": "[a-zA-Z0-9-_]{1,128}", - "type": "string" - }, - "value": { - "annotations": { - "required": [ - "compute.instances.insert", - "compute.projects.setCommonInstanceMetadata" - ] - }, - "description": "Value for the metadata entry. These are free-form strings, and only have meaning as interpreted by the image running in the instance. The only restriction placed on values is that their size must be less than or equal to 262144 bytes (256 KiB).", - "type": "string" - } - }, - "type": "object" - }, - "type": "array" - }, - "kind": { - "default": "compute#metadata", - "description": "[Output Only] Type of the resource. Always compute#metadata for metadata.", - "type": "string" - } - }, - "type": "object" - }, - "MetadataFilter": { - "description": "Opaque filter criteria used by load balancers to restrict routing configuration to a limited set of load balancing proxies. Proxies and sidecars involved in load balancing would typically present metadata to the load balancers that need to match criteria specified here. If a match takes place, the relevant configuration is made available to those proxies. For each metadataFilter in this list, if its filterMatchCriteria is set to MATCH_ANY, at least one of the filterLabels must match the corresponding label provided in the metadata. If its filterMatchCriteria is set to MATCH_ALL, then all of its filterLabels must match with corresponding labels provided in the metadata. An example for using metadataFilters would be: if load balancing involves Envoys, they receive routing configuration when values in metadataFilters match values supplied in of their XDS requests to loadbalancers.", - "id": "MetadataFilter", - "properties": { - "filterLabels": { - "description": "The list of label value pairs that must match labels in the provided metadata based on filterMatchCriteria This list must not be empty and can have at the most 64 entries.", - "items": { - "$ref": "MetadataFilterLabelMatch" - }, - "type": "array" - }, - "filterMatchCriteria": { - "description": "Specifies how individual filter label matches within the list of filterLabels and contributes toward the overall metadataFilter match. Supported values are: - MATCH_ANY: at least one of the filterLabels must have a matching label in the provided metadata. - MATCH_ALL: all filterLabels must have matching labels in the provided metadata. ", - "enum": [ - "MATCH_ALL", - "MATCH_ANY", - "NOT_SET" - ], - "enumDescriptions": [ - "Specifies that all filterLabels must match for the metadataFilter to be considered a match.", - "Specifies that any filterLabel must match for the metadataFilter to be considered a match.", - "Indicates that the match criteria was not set. A metadataFilter must never be created with this value." - ], - "type": "string" - } - }, - "type": "object" - }, - "MetadataFilterLabelMatch": { - "description": "MetadataFilter label name value pairs that are expected to match corresponding labels presented as metadata to the load balancer.", - "id": "MetadataFilterLabelMatch", - "properties": { - "name": { - "description": "Name of metadata label. The name can have a maximum length of 1024 characters and must be at least 1 character long.", - "type": "string" - }, - "value": { - "description": "The value of the label must match the specified value. value can have a maximum length of 1024 characters.", - "type": "string" - } - }, - "type": "object" - }, - "NamedPort": { - "description": "The named port. For example: \u003c\"http\", 80\u003e.", - "id": "NamedPort", - "properties": { - "name": { - "description": "The name for this named port. The name must be 1-63 characters long, and comply with RFC1035.", - "type": "string" - }, - "port": { - "description": "The port number, which can be a value between 1 and 65535.", - "format": "int32", - "type": "integer" - } - }, - "type": "object" - }, - "NatIpInfo": { - "description": "Contains NAT IP information of a NAT config (i.e. usage status, mode).", - "id": "NatIpInfo", - "properties": { - "natIpInfoMappings": { - "description": "A list of all NAT IPs assigned to this NAT config.", - "items": { - "$ref": "NatIpInfoNatIpInfoMapping" - }, - "type": "array" - }, - "natName": { - "description": "Name of the NAT config which the NAT IP belongs to.", - "type": "string" - } - }, - "type": "object" - }, - "NatIpInfoNatIpInfoMapping": { - "description": "Contains information of a NAT IP.", - "id": "NatIpInfoNatIpInfoMapping", - "properties": { - "mode": { - "description": "Specifies whether NAT IP is auto or manual.", - "enum": [ - "AUTO", - "MANUAL" - ], - "enumDescriptions": [ - "", - "" - ], - "type": "string" - }, - "natIp": { - "description": "NAT IP address. For example: 203.0.113.11.", - "type": "string" - }, - "usage": { - "description": "Specifies whether NAT IP is currently serving at least one endpoint or not.", - "enum": [ - "IN_USE", - "UNUSED" - ], - "enumDescriptions": [ - "", - "" - ], - "type": "string" - } - }, - "type": "object" - }, - "NatIpInfoResponse": { - "id": "NatIpInfoResponse", - "properties": { - "result": { - "description": "[Output Only] A list of NAT IP information.", - "items": { - "$ref": "NatIpInfo" - }, - "type": "array" - } - }, - "type": "object" - }, - "Network": { - "description": "Represents a VPC Network resource. Networks connect resources to each other and to the internet. For more information, read Virtual Private Cloud (VPC) Network.", - "id": "Network", + "NotificationEndpoint": { + "description": "Represents a notification endpoint.\n\nA notification endpoint resource defines an endpoint to receive notifications\nwhen there are status changes detected by the associated health check\nservice.\n\nFor more information, see\nHealth checks overview.", + "id": "NotificationEndpoint", "properties": { - "IPv4Range": { - "deprecated": true, - "description": "Deprecated in favor of subnet mode networks. The range of internal addresses that are legal on this network. This range is a CIDR specification, for example: 192.168.0.0/16. Provided by the client when the network is created.", - "pattern": "[0-9]{1,3}(?:\\.[0-9]{1,3}){3}/[0-9]{1,2}", - "type": "string" - }, - "autoCreateSubnetworks": { - "description": "Must be set to create a VPC network. If not set, a legacy network is created. When set to true, the VPC network is created in auto mode. When set to false, the VPC network is created in custom mode. An auto mode VPC network starts with one subnet per region. Each subnet has a predetermined range as described in Auto mode VPC network IP ranges. For custom mode VPC networks, you can add subnets using the subnetworks insert method.", - "type": "boolean" - }, "creationTimestamp": { - "description": "[Output Only] Creation timestamp in RFC3339 text format.", + "description": "Output only. [Output Only] Creation timestamp inRFC3339\ntext format.", + "readOnly": true, "type": "string" }, "description": { - "description": "An optional description of this resource. Provide this field when you create the resource.", - "type": "string" - }, - "enableUlaInternalIpv6": { - "description": "Enable ULA internal ipv6 on this network. Enabling this feature will assign a /48 from google defined ULA prefix fd20::/20. .", - "type": "boolean" - }, - "firewallPolicy": { - "description": "[Output Only] URL of the firewall policy the network is associated with.", + "description": "An optional description of this resource. Provide this property when you\ncreate the resource.", "type": "string" }, - "gatewayIPv4": { - "description": "[Output Only] The gateway address for default routing out of the network, selected by Google Cloud.", - "pattern": "[0-9]{1,3}(?:\\.[0-9]{1,3}){3}", - "type": "string" + "grpcSettings": { + "$ref": "NotificationEndpointGrpcSettings", + "description": "Settings of the gRPC notification endpoint including the endpoint URL and\nthe retry duration." }, "id": { - "description": "[Output Only] The unique identifier for the resource. This identifier is defined by the server.", + "description": "Output only. [Output Only] A unique identifier for this resource type. The server\ngenerates this identifier.", "format": "uint64", - "type": "string" - }, - "internalIpv6Range": { - "description": "When enabling ula internal ipv6, caller optionally can specify the /48 range they want from the google defined ULA prefix fd20::/20. The input must be a valid /48 ULA IPv6 address and must be within the fd20::/20. Operation will fail if the speficied /48 is already in used by another resource. If the field is not speficied, then a /48 range will be randomly allocated from fd20::/20 and returned via this field. .", + "readOnly": true, "type": "string" }, "kind": { - "default": "compute#network", - "description": "[Output Only] Type of the resource. Always compute#network for networks.", + "default": "compute#notificationEndpoint", + "description": "Output only. [Output Only] Type of the resource. Alwayscompute#notificationEndpoint for notification endpoints.", + "readOnly": true, "type": "string" }, - "mtu": { - "description": "Maximum Transmission Unit in bytes. The minimum value for this field is 1300 and the maximum value is 8896. The suggested value is 1500, which is the default MTU used on the Internet, or 8896 if you want to use Jumbo frames. If unspecified, the value defaults to 1460.", - "format": "int32", - "type": "integer" - }, "name": { - "annotations": { - "required": [ - "compute.networks.insert" - ] - }, - "description": "Name of the resource. Provided by the client when the resource is created. The name must be 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters long and match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?`. The first character must be a lowercase letter, and all following characters (except for the last character) must be a dash, lowercase letter, or digit. The last character must be a lowercase letter or digit.", + "description": "Name of the resource. Provided by the client when the resource is created.\nThe name must be 1-63 characters long, and comply withRFC1035.\nSpecifically, the name must be 1-63 characters long and match the regular\nexpression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first\ncharacter must be a lowercase letter, and all following characters must\nbe a dash, lowercase letter, or digit, except the last character, which\ncannot be a dash.", "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", "type": "string" }, - "networkFirewallPolicyEnforcementOrder": { - "description": "The network firewall policy enforcement order. Can be either AFTER_CLASSIC_FIREWALL or BEFORE_CLASSIC_FIREWALL. Defaults to AFTER_CLASSIC_FIREWALL if the field is not specified.", - "enum": [ - "AFTER_CLASSIC_FIREWALL", - "BEFORE_CLASSIC_FIREWALL" - ], - "enumDescriptions": [ - "", - "" - ], - "type": "string" - }, - "peerings": { - "description": "[Output Only] A list of network peerings for the resource.", - "items": { - "$ref": "NetworkPeering" - }, - "type": "array" - }, - "routingConfig": { - "$ref": "NetworkRoutingConfig", - "description": "The network-level routing configuration for this network. Used by Cloud Router to determine what type of network-wide routing behavior to enforce." - }, - "selfLink": { - "description": "[Output Only] Server-defined URL for the resource.", - "type": "string" - }, - "selfLinkWithId": { - "description": "[Output Only] Server-defined URL for this resource with the resource id.", - "type": "string" - }, - "subnetworks": { - "description": "[Output Only] Server-defined fully-qualified URLs for all subnetworks in this VPC network.", - "items": { - "type": "string" - }, - "type": "array" - } - }, - "type": "object" - }, - "NetworkAttachment": { - "description": "NetworkAttachments A network attachment resource ...", - "id": "NetworkAttachment", - "properties": { - "connectionEndpoints": { - "description": "[Output Only] An array of connections for all the producers connected to this network attachment.", - "items": { - "$ref": "NetworkAttachmentConnectedEndpoint" - }, - "type": "array" - }, - "connectionPreference": { - "enum": [ - "ACCEPT_AUTOMATIC", - "ACCEPT_MANUAL", - "INVALID" - ], - "enumDescriptions": [ - "", - "", - "" - ], - "type": "string" - }, - "creationTimestamp": { - "description": "[Output Only] Creation timestamp in RFC3339 text format.", - "type": "string" - }, - "description": { - "description": "An optional description of this resource. Provide this property when you create the resource.", + "region": { + "description": "Output only. [Output Only] URL of the region where the notification endpoint resides.\nThis field applies only to the regional resource. You must specify this\nfield as part of the HTTP request URL. It is not settable as a field in\nthe request body.", + "readOnly": true, "type": "string" }, - "fingerprint": { - "description": "Fingerprint of this resource. A hash of the contents stored in this object. This field is used in optimistic locking. An up-to-date fingerprint must be provided in order to patch.", - "format": "byte", + "selfLink": { + "description": "Output only. [Output Only] Server-defined URL for the resource.", + "readOnly": true, "type": "string" - }, + } + }, + "type": "object" + }, + "NotificationEndpointAggregatedList": { + "description": "Contains a list of NotificationEndpointsScopedList.", + "id": "NotificationEndpointAggregatedList", + "properties": { "id": { - "description": "[Output Only] The unique identifier for the resource type. The server generates this identifier.", - "format": "uint64", + "description": "[Output Only] Unique identifier for the resource; defined by the server.", "type": "string" }, + "items": { + "additionalProperties": { + "$ref": "NotificationEndpointsScopedList", + "description": "Name of the scope containing this set of NotificationEndpoints." + }, + "description": "A list of NotificationEndpointsScopedList resources.", + "type": "object" + }, "kind": { - "default": "compute#networkAttachment", - "description": "[Output Only] Type of the resource.", + "default": "compute#notificationEndpointAggregatedList", + "description": "Output only. Type of resource.", + "readOnly": true, "type": "string" }, - "name": { - "annotations": { - "required": [ - "compute.networkAttachments.insert" - ] - }, - "description": "Name of the resource. Provided by the client when the resource is created. The name must be 1-63 characters long, and comply with RFC1035. 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])?", + "nextPageToken": { + "description": "[Output Only] This token allows you to get the next page of results for\nlist requests. If the number of results is larger thanmaxResults, use the nextPageToken as a value for\nthe query parameter pageToken in the next list request.\nSubsequent list requests will have their own nextPageToken to\ncontinue paging through the results.", "type": "string" }, - "network": { - "description": "[Output Only] The URL of the network which the Network Attachment belongs to. Practically it is inferred by fetching the network of the first subnetwork associated. Because it is required that all the subnetworks must be from the same network, it is assured that the Network Attachment belongs to the same network as all the subnetworks.", + "selfLink": { + "description": "Output only. [Output Only] Server-defined URL for this resource.", + "readOnly": true, "type": "string" }, - "producerAcceptLists": { - "description": "Projects that are allowed to connect to this network attachment. The project can be specified using its id or number.", + "unreachables": { + "description": "Output only. [Output Only] Unreachable resources.", "items": { "type": "string" }, + "readOnly": true, "type": "array" }, - "producerRejectLists": { - "description": "Projects that are not allowed to connect to this network attachment. The project can be specified using its id or number.", - "items": { - "type": "string" + "warning": { + "description": "[Output Only] Informational warning message.", + "properties": { + "code": { + "description": "[Output Only] A warning code, if applicable. For example, Compute\nEngine returns NO_RESULTS_ON_PAGE if there\nare 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", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", + "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "PARTIAL_SUCCESS", + "QUOTA_INFO_UNAVAILABLE", + "REQUIRED_TOS_AGREEMENT", + "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", + "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", + "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", + "UNREACHABLE" + ], + "enumDeprecated": [ + false, + false, + false, + false, + false, + false, + true, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false + ], + "enumDescriptions": [ + "Warning about failed cleanup of transient changes made by a failed\noperation.", + "A link to a deprecated resource was created.", + "When deploying and at least one of the resources has a type marked as\ndeprecated", + "The user created a boot disk that is larger than image size.", + "When deploying and at least one of the resources has a type marked as\nexperimental", + "Warning that is present in an external api call", + "Warning that value of a field has been overridden.\nDeprecated unused field.", + "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is\nnot of type HTTP/HTTPS/HTTP2.", + "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed\nwhich captures the amount of resources filtered out by\nuser-defined list filter.", + "A resource depends on a missing type", + "The route's nextHopIp address is not assigned to an instance on the\nnetwork.", + "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an\nipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not exist.", + "The route's nextHopInstance URL refers to an instance that is not on the\nsame network as the route.", + "The route's next hop instance does not have a status of RUNNING.", + "Error which is not critical. We decided to continue the process despite\nthe mentioned error.", + "No results are present on a particular list page.", + "Success is reported, but some results may be missing due to errors", + "Quota information is not available to client requests (e.g:\nregions.list).", + "The user attempted to use a resource that requires a TOS they have not\naccepted.", + "Warning that a resource is in use.", + "One or more of the resources set to auto-delete could not be deleted\nbecause they were in use.", + "When a resource schema validation is ignored.", + "Instance template used in instance group manager is valid as such, but\nits application does not make a lot of sense, because it allows only\nsingle instance in instance group.", + "When undeclared properties in the schema are present", + "A given scope cannot be reached." + ], + "type": "string" + }, + "data": { + "description": "[Output Only] Metadata about this warning in key:\nvalue format. For example:\n\n\"data\": [\n {\n \"key\": \"scope\",\n \"value\": \"zones/us-east1-d\"\n }", + "items": { + "properties": { + "key": { + "description": "[Output Only] A key that provides more detail on the warning being\nreturned. For example, for warnings where there are no results in a list\nrequest for a particular zone, this key might be scope and\nthe key value might be the zone name. Other examples might be a key\nindicating a deprecated resource and a suggested replacement, or a\nwarning about invalid network settings (for example, if an instance\nattempts 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": "array" - }, - "region": { - "description": "[Output Only] URL of the region where the network attachment resides. This field applies only to the region resource. You must specify this field as part of the HTTP request URL. It is not settable as a field in the request body.", + "type": "object" + } + }, + "type": "object" + }, + "NotificationEndpointGrpcSettings": { + "description": "Represents a gRPC setting that describes one gRPC notification endpoint and\nthe retry duration attempting to send notification to this endpoint.", + "id": "NotificationEndpointGrpcSettings", + "properties": { + "authority": { + "description": "Optional. If specified, this field is used to set the authority header by\nthe sender of notifications. See\nhttps://tools.ietf.org/html/rfc7540#section-8.1.2.3", "type": "string" }, - "selfLink": { - "description": "[Output Only] Server-defined URL for the resource.", + "endpoint": { + "description": "Endpoint to which gRPC notifications are sent. This must be a valid\ngRPCLB DNS name.", "type": "string" }, - "selfLinkWithId": { - "description": "[Output Only] Server-defined URL for this resource's resource id.", + "payloadName": { + "description": "Optional. If specified, this field is used to populate the \"name\" field\nin gRPC requests.", "type": "string" }, - "subnetworks": { - "description": "An array of URLs where each entry is the URL of a subnet provided by the service consumer to use for endpoints in the producers that connect to this network attachment.", - "items": { - "type": "string" - }, - "type": "array" + "resendInterval": { + "$ref": "Duration", + "description": "Optional. This field is used to configure how often to send a full update\nof all non-healthy backends. If unspecified, full updates are not sent.\nIf specified, must be in the range between 600 seconds to 3600 seconds.\nNanos are disallowed. Can only be set for regional notification\nendpoints." + }, + "retryDurationSec": { + "description": "How much time (in seconds) is spent attempting notification retries\nuntil a successful response is received. Default is 30s. Limit is 20m\n(1200s). Must be a positive number.", + "format": "uint32", + "type": "integer" } }, "type": "object" }, - "NetworkAttachmentAggregatedList": { - "description": "Contains a list of NetworkAttachmentsScopedList.", - "id": "NetworkAttachmentAggregatedList", + "NotificationEndpointList": { + "id": "NotificationEndpointList", "properties": { "id": { "description": "[Output Only] Unique identifier for the resource; defined by the server.", "type": "string" }, "items": { - "additionalProperties": { - "$ref": "NetworkAttachmentsScopedList", - "description": "Name of the scope containing this set of NetworkAttachments." + "description": "A list of NotificationEndpoint resources.", + "items": { + "$ref": "NotificationEndpoint" }, - "description": "A list of NetworkAttachmentsScopedList resources.", - "type": "object" + "type": "array" }, "kind": { - "default": "compute#networkAttachmentAggregatedList", + "default": "compute#notificationEndpointList", + "description": "Output only. [Output Only] Type of the resource. Alwayscompute#notificationEndpoint for notification endpoints.", + "readOnly": true, "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.", + "description": "[Output Only] This token allows you to get the next page of results for\nlist requests. If the number of results is larger thanmaxResults, use the nextPageToken as a value for\nthe query parameter pageToken in the next list request.\nSubsequent list requests will have their own nextPageToken to\ncontinue paging through the results.", "type": "string" }, "selfLink": { @@ -58100,7 +84055,144 @@ "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.", + "description": "[Output Only] A warning code, if applicable. For example, Compute\nEngine returns NO_RESULTS_ON_PAGE if there\nare 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", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", + "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "PARTIAL_SUCCESS", + "QUOTA_INFO_UNAVAILABLE", + "REQUIRED_TOS_AGREEMENT", + "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", + "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", + "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", + "UNREACHABLE" + ], + "enumDeprecated": [ + false, + false, + false, + false, + false, + false, + true, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false + ], + "enumDescriptions": [ + "Warning about failed cleanup of transient changes made by a failed\noperation.", + "A link to a deprecated resource was created.", + "When deploying and at least one of the resources has a type marked as\ndeprecated", + "The user created a boot disk that is larger than image size.", + "When deploying and at least one of the resources has a type marked as\nexperimental", + "Warning that is present in an external api call", + "Warning that value of a field has been overridden.\nDeprecated unused field.", + "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is\nnot of type HTTP/HTTPS/HTTP2.", + "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed\nwhich captures the amount of resources filtered out by\nuser-defined list filter.", + "A resource depends on a missing type", + "The route's nextHopIp address is not assigned to an instance on the\nnetwork.", + "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an\nipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not exist.", + "The route's nextHopInstance URL refers to an instance that is not on the\nsame network as the route.", + "The route's next hop instance does not have a status of RUNNING.", + "Error which is not critical. We decided to continue the process despite\nthe mentioned error.", + "No results are present on a particular list page.", + "Success is reported, but some results may be missing due to errors", + "Quota information is not available to client requests (e.g:\nregions.list).", + "The user attempted to use a resource that requires a TOS they have not\naccepted.", + "Warning that a resource is in use.", + "One or more of the resources set to auto-delete could not be deleted\nbecause they were in use.", + "When a resource schema validation is ignored.", + "Instance template used in instance group manager is valid as such, but\nits application does not make a lot of sense, because it allows only\nsingle instance in instance group.", + "When undeclared properties in the schema are present", + "A given scope cannot be reached." + ], + "type": "string" + }, + "data": { + "description": "[Output Only] Metadata about this warning in key:\nvalue format. For example:\n\n\"data\": [\n {\n \"key\": \"scope\",\n \"value\": \"zones/us-east1-d\"\n }", + "items": { + "properties": { + "key": { + "description": "[Output Only] A key that provides more detail on the warning being\nreturned. For example, for warnings where there are no results in a list\nrequest for a particular zone, this key might be scope and\nthe key value might be the zone name. Other examples might be a key\nindicating a deprecated resource and a suggested replacement, or a\nwarning about invalid network settings (for example, if an instance\nattempts 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" + }, + "NotificationEndpointsScopedList": { + "id": "NotificationEndpointsScopedList", + "properties": { + "resources": { + "description": "A list of NotificationEndpoints contained in this scope.", + "items": { + "$ref": "NotificationEndpoint" + }, + "type": "array" + }, + "warning": { + "description": "Informational warning which replaces the list of\nnotification endpoints when the list is empty.", + "properties": { + "code": { + "description": "[Output Only] A warning code, if applicable. For example, Compute\nEngine returns NO_RESULTS_ON_PAGE if there\nare no results in the response.", "enum": [ "CLEANUP_FAILED", "DEPRECATED_RESOURCE_USED", @@ -58123,6 +84215,7 @@ "NOT_CRITICAL_ERROR", "NO_RESULTS_ON_PAGE", "PARTIAL_SUCCESS", + "QUOTA_INFO_UNAVAILABLE", "REQUIRED_TOS_AGREEMENT", "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", "RESOURCE_NOT_DELETED", @@ -58159,286 +84252,409 @@ false, false, false, + false, false ], "enumDescriptions": [ - "Warning about failed cleanup of transient changes made by a failed operation.", + "Warning about failed cleanup of transient changes made by a failed\noperation.", "A link to a deprecated resource was created.", - "When deploying and at least one of the resources has a type marked as deprecated", + "When deploying and at least one of the resources has a type marked as\ndeprecated", "The user created a boot disk that is larger than image size.", - "When deploying and at least one of the resources has a type marked as experimental", + "When deploying and at least one of the resources has a type marked as\nexperimental", "Warning that is present in an external api call", - "Warning that value of a field has been overridden. Deprecated unused field.", + "Warning that value of a field has been overridden.\nDeprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", - "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is\nnot of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", - "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", + "Resource can't be retrieved due to list overhead quota exceed\nwhich captures the amount of resources filtered out by\nuser-defined list filter.", "A resource depends on a missing type", - "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's nextHopIp address is not assigned to an instance on the\nnetwork.", "The route's next hop instance cannot ip forward.", - "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not have an\nipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", - "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that is not on the\nsame network as the route.", "The route's next hop instance does not have a status of RUNNING.", - "Error which is not critical. We decided to continue the process despite the mentioned error.", + "Error which is not critical. We decided to continue the process despite\nthe mentioned error.", "No results are present on a particular list page.", "Success is reported, but some results may be missing due to errors", - "The user attempted to use a resource that requires a TOS they have not accepted.", + "Quota information is not available to client requests (e.g:\nregions.list).", + "The user attempted to use a resource that requires a TOS they have not\naccepted.", "Warning that a resource is in use.", - "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "One or more of the resources set to auto-delete could not be deleted\nbecause they were in use.", "When a resource schema validation is ignored.", - "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", + "Instance template used in instance group manager is valid as such, but\nits application does not make a lot of sense, because it allows only\nsingle instance in instance group.", "When undeclared properties in the schema are present", "A given scope cannot be reached." ], "type": "string" }, "data": { - "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", + "description": "[Output Only] Metadata about this warning in key:\nvalue format. For example:\n\n\"data\": [\n {\n \"key\": \"scope\",\n \"value\": \"zones/us-east1-d\"\n }", "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).", + "description": "[Output Only] A key that provides more detail on the warning being\nreturned. For example, for warnings where there are no results in a list\nrequest for a particular zone, this key might be scope and\nthe key value might be the zone name. Other examples might be a key\nindicating a deprecated resource and a suggested replacement, or a\nwarning about invalid network settings (for example, if an instance\nattempts 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" + }, + "Operation": { + "description": "Represents an Operation resource.\n\nGoogle Compute Engine has three Operation resources:\n\n* [Global](/compute/docs/reference/rest/v1/globalOperations)\n* [Regional](/compute/docs/reference/rest/v1/regionOperations)\n* [Zonal](/compute/docs/reference/rest/v1/zoneOperations)\n\nYou can use an operation resource to manage asynchronous API requests.\nFor more information, readHandling\nAPI responses.\n\nOperations can be global, regional or zonal.\n \n - For global operations, use the `globalOperations`\n resource. \n - For regional operations, use the\n `regionOperations` resource. \n - For zonal operations, use\n the `zoneOperations` resource.\n\n\n\nFor more information, read\nGlobal, Regional, and Zonal Resources.\n\nNote that completed Operation resources have a limited \nretention period.", + "id": "Operation", + "properties": { + "clientOperationId": { + "description": "[Output Only] The value of `requestId` if you provided it in the request.\nNot present otherwise.", + "type": "string" + }, + "creationTimestamp": { + "description": "[Deprecated] This field is deprecated.", + "type": "string" + }, + "description": { + "description": "[Output Only] A textual description of the operation, which is\nset when the operation is created.", + "type": "string" + }, + "endTime": { + "description": "[Output Only] The time that this operation was completed. This value is inRFC3339\ntext format.", + "type": "string" + }, + "error": { + "description": "[Output Only] If errors are generated during processing of the operation,\nthis field will be populated.", + "properties": { + "errors": { + "description": "[Output Only] The array of errors encountered while processing this\noperation.", + "items": { + "properties": { + "code": { + "description": "[Output Only] The error type identifier for this error.", + "type": "string" + }, + "errorDetails": { + "description": "[Output Only] An optional list of messages that contain the error\ndetails. There is a set of defined message types to use for providing\ndetails.The syntax depends on the error code. For example,\nQuotaExceededInfo will have details when the error code is\nQUOTA_EXCEEDED.", + "items": { + "properties": { + "errorInfo": { + "$ref": "ErrorInfo" + }, + "help": { + "$ref": "Help" + }, + "localizedMessage": { + "$ref": "LocalizedMessage" + }, + "quotaInfo": { + "$ref": "QuotaExceededInfo" + } + }, + "type": "object" + }, + "type": "array" + }, + "location": { + "description": "[Output Only] Indicates the field in the request that caused the error.\nThis property is optional.", "type": "string" }, - "value": { - "description": "[Output Only] A warning data value corresponding to the key.", - "type": "string" - } + "message": { + "description": "[Output Only] An optional, human-readable error message.", + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + } + }, + "type": "object" + }, + "getVersionOperationMetadata": { + "$ref": "GetVersionOperationMetadata" + }, + "httpErrorMessage": { + "description": "[Output Only] If the operation fails, this field contains the HTTP error\nmessage that was returned, such as `NOT FOUND`.", + "type": "string" + }, + "httpErrorStatusCode": { + "description": "[Output Only] If the operation fails, this field contains the HTTP error\nstatus code that was returned. For example, a `404` means the\nresource was not found.", + "format": "int32", + "type": "integer" + }, + "id": { + "description": "[Output Only] The unique identifier for the operation. This identifier is\ndefined by the server.", + "format": "uint64", + "type": "string" + }, + "insertTime": { + "description": "[Output Only] The time that this operation was requested.\nThis value is inRFC3339\ntext format.", + "type": "string" + }, + "instancesBulkInsertOperationMetadata": { + "$ref": "InstancesBulkInsertOperationMetadata" + }, + "kind": { + "default": "compute#operation", + "description": "Output only. [Output Only] Type of the resource. Always `compute#operation` for\nOperation resources.", + "readOnly": true, + "type": "string" + }, + "name": { + "description": "[Output Only] Name of the operation.", + "type": "string" + }, + "operationGroupId": { + "description": "Output only. [Output Only] An ID that represents a group of operations, such as when a\ngroup of operations results from a `bulkInsert` API request.", + "readOnly": true, + "type": "string" + }, + "operationType": { + "description": "[Output Only] The type of operation, such as `insert`,\n`update`, or `delete`, and so on.", + "type": "string" + }, + "progress": { + "description": "[Output Only] An optional progress indicator that ranges from 0 to 100.\nThere is no requirement that this be linear or support any granularity of\noperations. This should not be used to guess when the operation will be\ncomplete. This number should monotonically increase as the operation\nprogresses.", + "format": "int32", + "type": "integer" + }, + "region": { + "description": "[Output Only] The URL of the region where the operation resides. Only\napplicable when performing regional operations.", + "type": "string" + }, + "selfLink": { + "description": "[Output Only] Server-defined URL for the resource.", + "type": "string" + }, + "setCommonInstanceMetadataOperationMetadata": { + "$ref": "SetCommonInstanceMetadataOperationMetadata", + "description": "Output only. [Output Only] If the operation is for projects.setCommonInstanceMetadata,\nthis field will contain information on all underlying zonal actions and\ntheir state.", + "readOnly": true + }, + "startTime": { + "description": "[Output Only] The time that this operation was started by the server.\nThis value is inRFC3339\ntext format.", + "type": "string" + }, + "status": { + "description": "[Output Only] The status of the operation, which can be one of the\nfollowing:\n`PENDING`, `RUNNING`, or `DONE`.", + "enum": [ + "DONE", + "PENDING", + "RUNNING" + ], + "enumDescriptions": [ + "", + "", + "" + ], + "type": "string" + }, + "statusMessage": { + "description": "[Output Only] An optional textual description of the current status of the\noperation.", + "type": "string" + }, + "targetId": { + "description": "[Output Only] The unique target ID, which identifies a specific incarnation\nof the target resource.", + "format": "uint64", + "type": "string" + }, + "targetLink": { + "description": "[Output Only] The URL of the resource that the operation modifies. For\noperations related to creating a snapshot, this points to the disk\nthat the snapshot was created from.", + "type": "string" + }, + "user": { + "description": "[Output Only] User who requested the operation, for example:\n`user@example.com` or\n`alice_smith_identifier (global/workforcePools/example-com-us-employees)`.", + "type": "string" + }, + "warnings": { + "description": "[Output Only] If warning messages are generated during processing of the\noperation, this field will be populated.", + "items": { + "properties": { + "code": { + "description": "[Output Only] A warning code, if applicable. For example, Compute\nEngine returns NO_RESULTS_ON_PAGE if there\nare 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", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", + "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "PARTIAL_SUCCESS", + "QUOTA_INFO_UNAVAILABLE", + "REQUIRED_TOS_AGREEMENT", + "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", + "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", + "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", + "UNREACHABLE" + ], + "enumDeprecated": [ + false, + false, + false, + false, + false, + false, + true, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false + ], + "enumDescriptions": [ + "Warning about failed cleanup of transient changes made by a failed\noperation.", + "A link to a deprecated resource was created.", + "When deploying and at least one of the resources has a type marked as\ndeprecated", + "The user created a boot disk that is larger than image size.", + "When deploying and at least one of the resources has a type marked as\nexperimental", + "Warning that is present in an external api call", + "Warning that value of a field has been overridden.\nDeprecated unused field.", + "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is\nnot of type HTTP/HTTPS/HTTP2.", + "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed\nwhich captures the amount of resources filtered out by\nuser-defined list filter.", + "A resource depends on a missing type", + "The route's nextHopIp address is not assigned to an instance on the\nnetwork.", + "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an\nipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not exist.", + "The route's nextHopInstance URL refers to an instance that is not on the\nsame network as the route.", + "The route's next hop instance does not have a status of RUNNING.", + "Error which is not critical. We decided to continue the process despite\nthe mentioned error.", + "No results are present on a particular list page.", + "Success is reported, but some results may be missing due to errors", + "Quota information is not available to client requests (e.g:\nregions.list).", + "The user attempted to use a resource that requires a TOS they have not\naccepted.", + "Warning that a resource is in use.", + "One or more of the resources set to auto-delete could not be deleted\nbecause they were in use.", + "When a resource schema validation is ignored.", + "Instance template used in instance group manager is valid as such, but\nits application does not make a lot of sense, because it allows only\nsingle instance in instance group.", + "When undeclared properties in the schema are present", + "A given scope cannot be reached." + ], + "type": "string" + }, + "data": { + "description": "[Output Only] Metadata about this warning in key:\nvalue format. For example:\n\n\"data\": [\n {\n \"key\": \"scope\",\n \"value\": \"zones/us-east1-d\"\n }", + "items": { + "properties": { + "key": { + "description": "[Output Only] A key that provides more detail on the warning being\nreturned. For example, for warnings where there are no results in a list\nrequest for a particular zone, this key might be scope and\nthe key value might be the zone name. Other examples might be a key\nindicating a deprecated resource and a suggested replacement, or a\nwarning about invalid network settings (for example, if an instance\nattempts 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": "object" + "type": "array" }, - "type": "array" + "message": { + "description": "[Output Only] A human-readable description of the warning code.", + "type": "string" + } }, - "message": { - "description": "[Output Only] A human-readable description of the warning code.", - "type": "string" - } - }, - "type": "object" - } - }, - "type": "object" - }, - "NetworkAttachmentConnectedEndpoint": { - "description": "[Output Only] A connection connected to this network attachment.", - "id": "NetworkAttachmentConnectedEndpoint", - "properties": { - "ipAddress": { - "description": "The IPv4 address assigned to the producer instance network interface. This value will be a range in case of Serverless.", - "type": "string" - }, - "ipv6Address": { - "description": "The IPv6 address assigned to the producer instance network interface. This is only assigned when the stack types of both the instance network interface and the consumer subnet are IPv4_IPv6.", - "type": "string" - }, - "projectIdOrNum": { - "description": "The project id or number of the interface to which the IP was assigned.", - "type": "string" - }, - "secondaryIpCidrRanges": { - "description": "Alias IP ranges from the same subnetwork.", - "items": { - "type": "string" + "type": "object" }, "type": "array" }, - "status": { - "description": "The status of a connected endpoint to this network attachment.", - "enum": [ - "ACCEPTED", - "CLOSED", - "NEEDS_ATTENTION", - "PENDING", - "REJECTED", - "STATUS_UNSPECIFIED" - ], - "enumDescriptions": [ - "The consumer allows traffic from the producer to reach its VPC.", - "The consumer network attachment no longer exists.", - "The consumer needs to take further action before traffic can be served.", - "The consumer neither allows nor prohibits traffic from the producer to reach its VPC.", - "The consumer prohibits traffic from the producer to reach its VPC.", - "" - ], - "type": "string" - }, - "subnetwork": { - "description": "The subnetwork used to assign the IP to the producer instance network interface.", - "type": "string" - }, - "subnetworkCidrRange": { - "description": "[Output Only] The CIDR range of the subnet from which the IPv4 internal IP was allocated from.", + "zone": { + "description": "[Output Only] The URL of the zone where the operation resides. Only\napplicable when performing per-zone operations.", "type": "string" } }, "type": "object" }, - "NetworkAttachmentList": { - "id": "NetworkAttachmentList", + "OperationAggregatedList": { + "id": "OperationAggregatedList", "properties": { "id": { - "description": "[Output Only] Unique identifier for the resource; defined by the server.", + "description": "[Output Only] The unique identifier for the resource. This identifier is\ndefined by the server.", "type": "string" }, "items": { - "description": "A list of NetworkAttachment resources.", - "items": { - "$ref": "NetworkAttachment" + "additionalProperties": { + "$ref": "OperationsScopedList", + "description": "[Output Only] Name of the scope containing this set of operations." }, - "type": "array" + "description": "[Output Only] A map of scoped operation lists.", + "type": "object" }, "kind": { - "default": "compute#networkAttachmentList", + "default": "compute#operationAggregatedList", + "description": "Output only. [Output Only] Type of resource. Always `compute#operationAggregatedList`\nfor aggregated lists of operations.", + "readOnly": true, "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.", + "description": "[Output Only] This token allows you to get the next page of results for\nlist requests. If the number of results is larger than\n`maxResults`, use the `nextPageToken` as a value for\nthe query parameter `pageToken` in the next list request.\nSubsequent list requests will have their own `nextPageToken` to\ncontinue paging through the results.", "type": "string" }, "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", - "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", - "LARGE_DEPLOYMENT_WARNING", - "LIST_OVERHEAD_QUOTA_EXCEED", - "MISSING_TYPE_DEPENDENCY", - "NEXT_HOP_ADDRESS_NOT_ASSIGNED", - "NEXT_HOP_CANNOT_IP_FORWARD", - "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", - "NEXT_HOP_INSTANCE_NOT_FOUND", - "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", - "NEXT_HOP_NOT_RUNNING", - "NOT_CRITICAL_ERROR", - "NO_RESULTS_ON_PAGE", - "PARTIAL_SUCCESS", - "REQUIRED_TOS_AGREEMENT", - "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", - "RESOURCE_NOT_DELETED", - "SCHEMA_VALIDATION_IGNORED", - "SINGLE_INSTANCE_PROPERTY_TEMPLATE", - "UNDECLARED_PROPERTIES", - "UNREACHABLE" - ], - "enumDeprecated": [ - false, - false, - false, - false, - false, - false, - true, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false - ], - "enumDescriptions": [ - "Warning about failed cleanup of transient changes made by a failed operation.", - "A link to a deprecated resource was created.", - "When deploying and at least one of the resources has a type marked as deprecated", - "The user created a boot disk that is larger than image size.", - "When deploying and at least one of the resources has a type marked as experimental", - "Warning that is present in an external api call", - "Warning that value of a field has been overridden. Deprecated unused field.", - "The operation involved use of an injected kernel, which is deprecated.", - "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", - "When deploying a deployment with a exceedingly large number of resources", - "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", - "A resource depends on a missing type", - "The route's nextHopIp address is not assigned to an instance on the network.", - "The route's next hop instance cannot ip forward.", - "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", - "The route's nextHopInstance URL refers to an instance that does not exist.", - "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", - "The route's next hop instance does not have a status of RUNNING.", - "Error which is not critical. We decided to continue the process despite the mentioned error.", - "No results are present on a particular list page.", - "Success is reported, but some results may be missing due to errors", - "The user attempted to use a resource that requires a TOS they have not accepted.", - "Warning that a resource is in use.", - "One or more of the resources set to auto-delete could not be deleted because they were in use.", - "When a resource schema validation is ignored.", - "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", - "When undeclared properties in the schema are present", - "A given scope cannot be reached." - ], - "type": "string" - }, - "data": { - "description": "[Output Only] Metadata about this warning in key: value format. For example: \"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" - }, - "NetworkAttachmentsScopedList": { - "id": "NetworkAttachmentsScopedList", - "properties": { - "networkAttachments": { - "description": "A list of NetworkAttachments contained in this scope.", + "unreachables": { + "description": "Output only. [Output Only] Unreachable resources.", "items": { - "$ref": "NetworkAttachment" + "type": "string" }, + "readOnly": true, "type": "array" }, "warning": { - "description": "Informational warning which replaces the list of network attachments when the list is empty.", + "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.", + "description": "[Output Only] A warning code, if applicable. For example, Compute\nEngine returns NO_RESULTS_ON_PAGE if there\nare no results in the response.", "enum": [ "CLEANUP_FAILED", "DEPRECATED_RESOURCE_USED", @@ -58461,6 +84677,7 @@ "NOT_CRITICAL_ERROR", "NO_RESULTS_ON_PAGE", "PARTIAL_SUCCESS", + "QUOTA_INFO_UNAVAILABLE", "REQUIRED_TOS_AGREEMENT", "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", "RESOURCE_NOT_DELETED", @@ -58497,46 +84714,48 @@ false, false, false, + false, false ], "enumDescriptions": [ - "Warning about failed cleanup of transient changes made by a failed operation.", + "Warning about failed cleanup of transient changes made by a failed\noperation.", "A link to a deprecated resource was created.", - "When deploying and at least one of the resources has a type marked as deprecated", + "When deploying and at least one of the resources has a type marked as\ndeprecated", "The user created a boot disk that is larger than image size.", - "When deploying and at least one of the resources has a type marked as experimental", + "When deploying and at least one of the resources has a type marked as\nexperimental", "Warning that is present in an external api call", - "Warning that value of a field has been overridden. Deprecated unused field.", + "Warning that value of a field has been overridden.\nDeprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", - "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is\nnot of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", - "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", + "Resource can't be retrieved due to list overhead quota exceed\nwhich captures the amount of resources filtered out by\nuser-defined list filter.", "A resource depends on a missing type", - "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's nextHopIp address is not assigned to an instance on the\nnetwork.", "The route's next hop instance cannot ip forward.", - "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not have an\nipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", - "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that is not on the\nsame network as the route.", "The route's next hop instance does not have a status of RUNNING.", - "Error which is not critical. We decided to continue the process despite the mentioned error.", + "Error which is not critical. We decided to continue the process despite\nthe mentioned error.", "No results are present on a particular list page.", "Success is reported, but some results may be missing due to errors", - "The user attempted to use a resource that requires a TOS they have not accepted.", + "Quota information is not available to client requests (e.g:\nregions.list).", + "The user attempted to use a resource that requires a TOS they have not\naccepted.", "Warning that a resource is in use.", - "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "One or more of the resources set to auto-delete could not be deleted\nbecause they were in use.", "When a resource schema validation is ignored.", - "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", + "Instance template used in instance group manager is valid as such, but\nits application does not make a lot of sense, because it allows only\nsingle instance in instance group.", "When undeclared properties in the schema are present", "A given scope cannot be reached." ], "type": "string" }, "data": { - "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", + "description": "[Output Only] Metadata about this warning in key:\nvalue format. For example:\n\n\"data\": [\n {\n \"key\": \"scope\",\n \"value\": \"zones/us-east1-d\"\n }", "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).", + "description": "[Output Only] A key that provides more detail on the warning being\nreturned. For example, for warnings where there are no results in a list\nrequest for a particular zone, this key might be scope and\nthe key value might be the zone name. Other examples might be a key\nindicating a deprecated resource and a suggested replacement, or a\nwarning about invalid network settings (for example, if an instance\nattempts to perform IP forwarding but is not enabled for IP forwarding).", "type": "string" }, "value": { @@ -58558,100 +84777,40 @@ }, "type": "object" }, - "NetworkEdgeSecurityService": { - "description": "Represents a Google Cloud Armor network edge security service resource.", - "id": "NetworkEdgeSecurityService", - "properties": { - "creationTimestamp": { - "description": "[Output Only] Creation timestamp in RFC3339 text format.", - "type": "string" - }, - "description": { - "description": "An optional description of this resource. Provide this property when you create the resource.", - "type": "string" - }, - "fingerprint": { - "description": "Fingerprint of this resource. A hash of the contents stored in this object. This field is used in optimistic locking. This field will be ignored when inserting a NetworkEdgeSecurityService. An up-to-date fingerprint must be provided in order to update the NetworkEdgeSecurityService, otherwise the request will fail with error 412 conditionNotMet. To see the latest fingerprint, make a get() request to retrieve a NetworkEdgeSecurityService.", - "format": "byte", - "type": "string" - }, - "id": { - "description": "[Output Only] The unique identifier for the resource. This identifier is defined by the server.", - "format": "uint64", - "type": "string" - }, - "kind": { - "default": "compute#networkEdgeSecurityService", - "description": "[Output only] Type of the resource. Always compute#networkEdgeSecurityService for NetworkEdgeSecurityServices", - "type": "string" - }, - "name": { - "description": "Name of the resource. Provided by the client when the resource is created. The name must be 1-63 characters long, and comply with RFC1035. 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" - }, - "region": { - "description": "[Output Only] URL of the region where the resource resides. You must specify this field as part of the HTTP request URL. It is not settable as a field in the request body.", - "type": "string" - }, - "securityPolicy": { - "description": "The resource URL for the network edge security service associated with this network edge security service.", - "type": "string" - }, - "selfLink": { - "description": "[Output Only] Server-defined URL for the resource.", - "type": "string" - }, - "selfLinkWithId": { - "description": "[Output Only] Server-defined URL for this resource with the resource id.", - "type": "string" - } - }, - "type": "object" - }, - "NetworkEdgeSecurityServiceAggregatedList": { - "id": "NetworkEdgeSecurityServiceAggregatedList", + "OperationList": { + "description": "Contains a list of Operation resources.", + "id": "OperationList", "properties": { - "etag": { - "type": "string" - }, "id": { - "description": "[Output Only] Unique identifier for the resource; defined by the server.", + "description": "[Output Only] The unique identifier for the resource. This identifier is\ndefined by the server.", "type": "string" }, "items": { - "additionalProperties": { - "$ref": "NetworkEdgeSecurityServicesScopedList", - "description": "Name of the scope containing this set of security policies." + "description": "[Output Only] A list of Operation resources.", + "items": { + "$ref": "Operation" }, - "description": "A list of NetworkEdgeSecurityServicesScopedList resources.", - "type": "object" + "type": "array" }, "kind": { - "default": "compute#networkEdgeSecurityServiceAggregatedList", - "description": "[Output Only] Type of resource. Always compute#networkEdgeSecurityServiceAggregatedList for lists of Network Edge Security Services.", + "default": "compute#operationList", + "description": "Output only. [Output Only] Type of resource. Always `compute#operations` for Operations\nresource.", + "readOnly": true, "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.", + "description": "[Output Only] This token allows you to get the next page of results for\nlist requests. If the number of results is larger than\n`maxResults`, use the `nextPageToken` as a value for\nthe query parameter `pageToken` in the next list request.\nSubsequent list requests will have their own `nextPageToken` to\ncontinue paging through the results.", "type": "string" }, "selfLink": { "description": "[Output Only] Server-defined URL for this resource.", "type": "string" }, - "unreachables": { - "description": "[Output Only] Unreachable resources.", - "items": { - "type": "string" - }, - "type": "array" - }, "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.", + "description": "[Output Only] A warning code, if applicable. For example, Compute\nEngine returns NO_RESULTS_ON_PAGE if there\nare no results in the response.", "enum": [ "CLEANUP_FAILED", "DEPRECATED_RESOURCE_USED", @@ -58674,6 +84833,7 @@ "NOT_CRITICAL_ERROR", "NO_RESULTS_ON_PAGE", "PARTIAL_SUCCESS", + "QUOTA_INFO_UNAVAILABLE", "REQUIRED_TOS_AGREEMENT", "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", "RESOURCE_NOT_DELETED", @@ -58710,46 +84870,48 @@ false, false, false, + false, false ], "enumDescriptions": [ - "Warning about failed cleanup of transient changes made by a failed operation.", + "Warning about failed cleanup of transient changes made by a failed\noperation.", "A link to a deprecated resource was created.", - "When deploying and at least one of the resources has a type marked as deprecated", + "When deploying and at least one of the resources has a type marked as\ndeprecated", "The user created a boot disk that is larger than image size.", - "When deploying and at least one of the resources has a type marked as experimental", + "When deploying and at least one of the resources has a type marked as\nexperimental", "Warning that is present in an external api call", - "Warning that value of a field has been overridden. Deprecated unused field.", + "Warning that value of a field has been overridden.\nDeprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", - "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is\nnot of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", - "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", + "Resource can't be retrieved due to list overhead quota exceed\nwhich captures the amount of resources filtered out by\nuser-defined list filter.", "A resource depends on a missing type", - "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's nextHopIp address is not assigned to an instance on the\nnetwork.", "The route's next hop instance cannot ip forward.", - "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not have an\nipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", - "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that is not on the\nsame network as the route.", "The route's next hop instance does not have a status of RUNNING.", - "Error which is not critical. We decided to continue the process despite the mentioned error.", + "Error which is not critical. We decided to continue the process despite\nthe mentioned error.", "No results are present on a particular list page.", "Success is reported, but some results may be missing due to errors", - "The user attempted to use a resource that requires a TOS they have not accepted.", + "Quota information is not available to client requests (e.g:\nregions.list).", + "The user attempted to use a resource that requires a TOS they have not\naccepted.", "Warning that a resource is in use.", - "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "One or more of the resources set to auto-delete could not be deleted\nbecause they were in use.", "When a resource schema validation is ignored.", - "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", + "Instance template used in instance group manager is valid as such, but\nits application does not make a lot of sense, because it allows only\nsingle instance in instance group.", "When undeclared properties in the schema are present", "A given scope cannot be reached." ], "type": "string" }, "data": { - "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", + "description": "[Output Only] Metadata about this warning in key:\nvalue format. For example:\n\n\"data\": [\n {\n \"key\": \"scope\",\n \"value\": \"zones/us-east1-d\"\n }", "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).", + "description": "[Output Only] A key that provides more detail on the warning being\nreturned. For example, for warnings where there are no results in a list\nrequest for a particular zone, this key might be scope and\nthe key value might be the zone name. Other examples might be a key\nindicating a deprecated resource and a suggested replacement, or a\nwarning about invalid network settings (for example, if an instance\nattempts to perform IP forwarding but is not enabled for IP forwarding).", "type": "string" }, "value": { @@ -58771,21 +84933,21 @@ }, "type": "object" }, - "NetworkEdgeSecurityServicesScopedList": { - "id": "NetworkEdgeSecurityServicesScopedList", + "OperationsScopedList": { + "id": "OperationsScopedList", "properties": { - "networkEdgeSecurityServices": { - "description": "A list of NetworkEdgeSecurityServices contained in this scope.", + "operations": { + "description": "[Output Only] A list of operations contained in this scope.", "items": { - "$ref": "NetworkEdgeSecurityService" + "$ref": "Operation" }, "type": "array" }, "warning": { - "description": "Informational warning which replaces the list of security policies when the list is empty.", + "description": "[Output Only] Informational warning which replaces the list of operations\nwhen the list is empty.", "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.", + "description": "[Output Only] A warning code, if applicable. For example, Compute\nEngine returns NO_RESULTS_ON_PAGE if there\nare no results in the response.", "enum": [ "CLEANUP_FAILED", "DEPRECATED_RESOURCE_USED", @@ -58808,6 +84970,7 @@ "NOT_CRITICAL_ERROR", "NO_RESULTS_ON_PAGE", "PARTIAL_SUCCESS", + "QUOTA_INFO_UNAVAILABLE", "REQUIRED_TOS_AGREEMENT", "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", "RESOURCE_NOT_DELETED", @@ -58844,46 +85007,48 @@ false, false, false, + false, false ], "enumDescriptions": [ - "Warning about failed cleanup of transient changes made by a failed operation.", + "Warning about failed cleanup of transient changes made by a failed\noperation.", "A link to a deprecated resource was created.", - "When deploying and at least one of the resources has a type marked as deprecated", + "When deploying and at least one of the resources has a type marked as\ndeprecated", "The user created a boot disk that is larger than image size.", - "When deploying and at least one of the resources has a type marked as experimental", + "When deploying and at least one of the resources has a type marked as\nexperimental", "Warning that is present in an external api call", - "Warning that value of a field has been overridden. Deprecated unused field.", + "Warning that value of a field has been overridden.\nDeprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", - "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is\nnot of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", - "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", + "Resource can't be retrieved due to list overhead quota exceed\nwhich captures the amount of resources filtered out by\nuser-defined list filter.", "A resource depends on a missing type", - "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's nextHopIp address is not assigned to an instance on the\nnetwork.", "The route's next hop instance cannot ip forward.", - "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not have an\nipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", - "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that is not on the\nsame network as the route.", "The route's next hop instance does not have a status of RUNNING.", - "Error which is not critical. We decided to continue the process despite the mentioned error.", + "Error which is not critical. We decided to continue the process despite\nthe mentioned error.", "No results are present on a particular list page.", "Success is reported, but some results may be missing due to errors", - "The user attempted to use a resource that requires a TOS they have not accepted.", + "Quota information is not available to client requests (e.g:\nregions.list).", + "The user attempted to use a resource that requires a TOS they have not\naccepted.", "Warning that a resource is in use.", - "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "One or more of the resources set to auto-delete could not be deleted\nbecause they were in use.", "When a resource schema validation is ignored.", - "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", + "Instance template used in instance group manager is valid as such, but\nits application does not make a lot of sense, because it allows only\nsingle instance in instance group.", "When undeclared properties in the schema are present", "A given scope cannot be reached." ], "type": "string" }, "data": { - "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", + "description": "[Output Only] Metadata about this warning in key:\nvalue format. For example:\n\n\"data\": [\n {\n \"key\": \"scope\",\n \"value\": \"zones/us-east1-d\"\n }", "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).", + "description": "[Output Only] A key that provides more detail on the warning being\nreturned. For example, for warnings where there are no results in a list\nrequest for a particular zone, this key might be scope and\nthe key value might be the zone name. Other examples might be a key\nindicating a deprecated resource and a suggested replacement, or a\nwarning about invalid network settings (for example, if an instance\nattempts to perform IP forwarding but is not enabled for IP forwarding).", "type": "string" }, "value": { @@ -58905,146 +85070,232 @@ }, "type": "object" }, - "NetworkEndpoint": { - "description": "The network endpoint.", - "id": "NetworkEndpoint", + "OrganizationSecurityPoliciesListAssociationsResponse": { + "id": "OrganizationSecurityPoliciesListAssociationsResponse", "properties": { - "annotations": { - "additionalProperties": { - "type": "string" + "associations": { + "description": "A list of associations.", + "items": { + "$ref": "SecurityPolicyAssociation" }, - "description": "Metadata defined as annotations on the network endpoint.", - "type": "object" + "type": "array" }, - "fqdn": { - "description": "Optional fully qualified domain name of network endpoint. This can only be specified when NetworkEndpointGroup.network_endpoint_type is NON_GCP_FQDN_PORT.", + "kind": { + "default": "compute#organizationSecurityPoliciesListAssociationsResponse", + "description": "Output only. [Output Only] Type of securityPolicy associations. Alwayscompute#organizationSecurityPoliciesListAssociations for lists\nof securityPolicy associations.", + "readOnly": true, "type": "string" + } + }, + "type": "object" + }, + "OutlierDetection": { + "description": "Settings controlling the eviction of unhealthy hosts from the load balancing\npool for the backend service.", + "id": "OutlierDetection", + "properties": { + "baseEjectionTime": { + "$ref": "Duration", + "description": "The base time that a backend endpoint is ejected for. Defaults to 30000ms\nor 30s.\n\nAfter a backend endpoint is returned back to the load balancing pool, it\ncan be ejected again in another ejection analysis. Thus, the total ejection\ntime is equal to the base ejection time multiplied by the number of times\nthe backend endpoint has been ejected. Defaults to 30000ms or 30s." }, - "instance": { - "description": "The name or a URL of VM instance of this network endpoint. This field is required for network endpoints of type GCE_VM_IP and GCE_VM_IP_PORT. The instance must be in the same zone of network endpoint group (for zonal NEGs) or in the zone within the region of the NEG (for regional NEGs). If the ipAddress is specified, it must belongs to the VM instance. The name must be 1-63 characters long, and comply with RFC1035 or be a valid URL pointing to an existing instance.", - "type": "string" + "consecutiveErrors": { + "description": "Number of consecutive errors before a backend endpoint is ejected from the\nload balancing pool. When the backend endpoint is accessed over HTTP, a 5xx\nreturn code qualifies as an error. Defaults to 5.", + "format": "int32", + "type": "integer" }, - "ipAddress": { - "description": "Optional IPv4 address of network endpoint. The IP address must belong to a VM in Compute Engine (either the primary IP or as part of an aliased IP range). If the IP address is not specified, then the primary IP address for the VM instance in the network that the network endpoint group belongs to will be used. This field is redundant and need not be set for network endpoints of type GCE_VM_IP. If set, it must be set to the primary internal IP address of the attached VM instance that matches the subnetwork of the NEG. The primary internal IP address from any NIC of a multi-NIC VM instance can be added to a NEG as long as it matches the NEG subnetwork.", - "type": "string" + "consecutiveGatewayFailure": { + "description": "The number of consecutive gateway failures (502, 503, 504 status or\nconnection errors that are mapped to one of those status codes) before a\nconsecutive gateway failure ejection occurs. Defaults to 3.", + "format": "int32", + "type": "integer" }, - "port": { - "description": "Optional port number of network endpoint. If not specified, the defaultPort for the network endpoint group will be used. This field can not be set for network endpoints of type GCE_VM_IP.", + "enforcingConsecutiveErrors": { + "description": "The percentage chance that a backend endpoint will be ejected when an\noutlier status is detected through consecutive 5xx. This setting can be\nused to disable ejection or to ramp it up slowly. Defaults to 0.", + "format": "int32", + "type": "integer" + }, + "enforcingConsecutiveGatewayFailure": { + "description": "The percentage chance that a backend endpoint will be ejected when an\noutlier status is detected through consecutive gateway failures. This\nsetting can be used to disable ejection or to ramp it up slowly. Defaults\nto 100.", + "format": "int32", + "type": "integer" + }, + "enforcingSuccessRate": { + "description": "The percentage chance that a backend endpoint will be ejected when an\noutlier status is detected through success rate statistics. This setting\ncan be used to disable ejection or to ramp it up slowly. Defaults to 100.\n\nNot supported when the backend service uses Serverless NEG.", + "format": "int32", + "type": "integer" + }, + "interval": { + "$ref": "Duration", + "description": "Time interval between ejection analysis sweeps. This can result in both new\nejections and backend endpoints being returned to service. The interval is\nequal to the number of seconds as defined in\noutlierDetection.interval.seconds plus the number of nanoseconds as defined\nin outlierDetection.interval.nanos. Defaults to 1 second." + }, + "maxEjectionPercent": { + "description": "Maximum percentage of backend endpoints in the load balancing pool for the\nbackend service that can be ejected if the ejection conditions are met.\nDefaults to 50%.", + "format": "int32", + "type": "integer" + }, + "successRateMinimumHosts": { + "description": "The number of backend endpoints in the load balancing pool that must have\nenough request volume to detect success rate outliers. If the number of\nbackend endpoints is fewer than this setting, outlier detection via success\nrate statistics is not performed for any backend endpoint in the load\nbalancing pool. Defaults to 5.\n\nNot supported when the backend service uses Serverless NEG.", + "format": "int32", + "type": "integer" + }, + "successRateRequestVolume": { + "description": "The minimum number of total requests that must be collected in one interval\n(as defined by the interval duration above) to include this backend\nendpoint in success rate based outlier detection. If the volume is lower\nthan this setting, outlier detection via success rate statistics is not\nperformed for that backend endpoint. Defaults to 100.\n\nNot supported when the backend service uses Serverless NEG.", + "format": "int32", + "type": "integer" + }, + "successRateStdevFactor": { + "description": "This factor is used to determine the ejection threshold for success rate\noutlier ejection. The ejection threshold is the difference between the mean\nsuccess rate, and the product of this factor and the standard deviation of\nthe mean success rate: mean - (stdev * successRateStdevFactor). This factor\nis divided by a thousand to get a double. That is, if the desired factor\nis 1.9, the runtime value should be 1900. Defaults to 1900.\n\nNot supported when the backend service uses Serverless NEG.", "format": "int32", "type": "integer" } }, "type": "object" }, - "NetworkEndpointGroup": { - "description": "Represents a collection of network endpoints. A network endpoint group (NEG) defines how a set of endpoints should be reached, whether they are reachable, and where they are located. For more information about using NEGs for different use cases, see Network endpoint groups overview.", - "id": "NetworkEndpointGroup", + "PacketIntervals": { + "description": "Next free: 7", + "id": "PacketIntervals", "properties": { - "annotations": { - "additionalProperties": { - "type": "string" - }, - "description": "Metadata defined as annotations on the network endpoint group.", - "type": "object" - }, - "appEngine": { - "$ref": "NetworkEndpointGroupAppEngine", - "description": "Only valid when networkEndpointType is SERVERLESS. Only one of cloudRun, appEngine or cloudFunction may be set." - }, - "cloudFunction": { - "$ref": "NetworkEndpointGroupCloudFunction", - "description": "Only valid when networkEndpointType is SERVERLESS. Only one of cloudRun, appEngine or cloudFunction may be set." - }, - "cloudRun": { - "$ref": "NetworkEndpointGroupCloudRun", - "description": "Only valid when networkEndpointType is SERVERLESS. Only one of cloudRun, appEngine or cloudFunction may be set." + "avgMs": { + "description": "Average observed inter-packet interval in milliseconds.", + "format": "int64", + "type": "string" }, - "creationTimestamp": { - "description": "[Output Only] Creation timestamp in RFC3339 text format.", + "duration": { + "description": "From how long ago in the past these intervals were observed.", + "enum": [ + "DURATION_UNSPECIFIED", + "HOUR", + "MAX", + "MINUTE" + ], + "enumDescriptions": [ + "", + "", + "From BfdSession object creation time.", + "" + ], "type": "string" }, - "defaultPort": { - "description": "The default port used if the port number is not specified in the network endpoint. If the network endpoint type is either GCE_VM_IP, SERVERLESS or PRIVATE_SERVICE_CONNECT, this field must not be specified.", - "format": "int32", - "type": "integer" + "maxMs": { + "description": "Maximum observed inter-packet interval in milliseconds.", + "format": "int64", + "type": "string" }, - "description": { - "description": "An optional description of this resource. Provide this property when you create the resource.", + "minMs": { + "description": "Minimum observed inter-packet interval in milliseconds.", + "format": "int64", "type": "string" }, - "id": { - "description": "[Output Only] The unique identifier for the resource. This identifier is defined by the server.", - "format": "uint64", + "numIntervals": { + "description": "Number of inter-packet intervals from which these statistics were derived.", + "format": "int64", "type": "string" }, - "kind": { - "default": "compute#networkEndpointGroup", - "description": "[Output Only] Type of the resource. Always compute#networkEndpointGroup for network endpoint group.", + "type": { + "description": "The type of packets for which inter-packet intervals were computed.", + "enum": [ + "LOOPBACK", + "RECEIVE", + "TRANSMIT", + "TYPE_UNSPECIFIED" + ], + "enumDescriptions": [ + "Only applies to Echo packets. This shows the intervals between sending\nand receiving the same packet.", + "Intervals between received packets.", + "Intervals between transmitted packets.", + "" + ], "type": "string" + } + }, + "type": "object" + }, + "PacketMirroring": { + "description": "Represents a Packet Mirroring resource.\n\nPacket Mirroring clones the traffic of specified instances in your Virtual\nPrivate Cloud (VPC) network and forwards it to a collector destination,\nsuch as an instance group of an internal TCP/UDP load balancer, for analysis\nor examination.\nFor more information about setting up Packet Mirroring, seeUsing Packet Mirroring.", + "id": "PacketMirroring", + "properties": { + "collectorIlb": { + "$ref": "PacketMirroringForwardingRuleInfo", + "description": "The Forwarding Rule resource of typeloadBalancingScheme=INTERNAL that will be used as collector\nfor mirrored traffic.\nThe specified forwarding rule must have isMirroringCollector\nset to true." }, - "name": { - "description": "Name of the resource; provided by the client when the resource is created. The name must be 1-63 characters long, and comply with RFC1035. 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.", + "creationTimestamp": { + "description": "Output only. [Output Only] Creation timestamp inRFC3339\ntext format.", + "readOnly": true, "type": "string" }, - "network": { - "description": "The URL of the network to which all network endpoints in the NEG belong. Uses default project network if unspecified.", + "description": { + "description": "An optional description of this resource. Provide this property when you\ncreate the resource.", "type": "string" }, - "networkEndpointType": { - "description": "Type of network endpoints in this network endpoint group. Can be one of GCE_VM_IP, GCE_VM_IP_PORT, NON_GCP_PRIVATE_IP_PORT, INTERNET_FQDN_PORT, INTERNET_IP_PORT, SERVERLESS, PRIVATE_SERVICE_CONNECT, GCE_VM_IP_PORTMAP.", + "enable": { + "description": "Indicates whether or not this packet mirroring takes effect.\nIf set to FALSE, this packet mirroring policy will not be enforced on the\nnetwork.\n\nThe default is TRUE.", "enum": [ - "GCE_VM_IP", - "GCE_VM_IP_PORT", - "INTERNET_FQDN_PORT", - "INTERNET_IP_PORT", - "NON_GCP_PRIVATE_IP_PORT", - "PRIVATE_SERVICE_CONNECT", - "SERVERLESS" + "FALSE", + "TRUE" ], "enumDescriptions": [ - "The network endpoint is represented by an IP address.", - "The network endpoint is represented by IP address and port pair.", - "The network endpoint is represented by fully qualified domain name and port.", - "The network endpoint is represented by an internet IP address and port.", - "The network endpoint is represented by an IP address and port. The endpoint belongs to a VM or pod running in a customer's on-premises.", - "The network endpoint is either public Google APIs or services exposed by other GCP Project with a Service Attachment. The connection is set up by private service connect", - "The network endpoint is handled by specified serverless infrastructure." + "", + "" ], "type": "string" }, - "pscData": { - "$ref": "NetworkEndpointGroupPscData" + "filter": { + "$ref": "PacketMirroringFilter", + "description": "Filter for mirrored traffic. If unspecified, all IPv4 traffic is mirrored." }, - "pscTargetService": { - "description": "The target service url used to set up private service connection to a Google API or a PSC Producer Service Attachment. An example value is: asia-northeast3-cloudkms.googleapis.com", + "id": { + "description": "Output only. [Output Only] The unique identifier for the resource. This identifier is\ndefined by the server.", + "format": "uint64", + "readOnly": true, "type": "string" }, - "region": { - "description": "[Output Only] The URL of the region where the network endpoint group is located.", + "kind": { + "default": "compute#packetMirroring", + "description": "Output only. [Output Only] Type of the resource. Alwayscompute#packetMirroring for packet mirrorings.", + "readOnly": true, "type": "string" }, - "selfLink": { - "description": "[Output Only] Server-defined URL for the resource.", + "mirroredResources": { + "$ref": "PacketMirroringMirroredResourceInfo", + "description": "PacketMirroring mirroredResourceInfos.\nMirroredResourceInfo specifies a set of mirrored VM instances, subnetworks\nand/or tags for which traffic from/to all VM instances will be mirrored." + }, + "name": { + "annotations": { + "required": [ + "compute.packetMirrorings.insert" + ] + }, + "description": "Name of the resource; provided by the client when the resource is created.\nThe name must be 1-63 characters long, and comply withRFC1035.\nSpecifically, the name must be 1-63 characters long and match the regular\nexpression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first\ncharacter must be a lowercase letter, and all following characters must be\na dash, lowercase letter, or digit, except the last character, which cannot\nbe a dash.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", "type": "string" }, - "size": { - "description": "[Output only] Number of network endpoints in the network endpoint group.", - "format": "int32", + "network": { + "$ref": "PacketMirroringNetworkInfo", + "annotations": { + "required": [ + "compute.packetMirrorings.insert" + ] + }, + "description": "Specifies the mirrored VPC network. Only packets in this network will be\nmirrored. All mirrored VMs should have a NIC in the given network.\nAll mirrored subnetworks should belong to the given network." + }, + "priority": { + "description": "The priority of applying this configuration. Priority is used to break ties\nin cases where there is more than one matching rule. In the case of two\nrules that apply for a given Instance, the one with the lowest-numbered\npriority value wins.\n\nDefault value is 1000. Valid range is 0 through 65535.", + "format": "uint32", "type": "integer" }, - "subnetwork": { - "description": "Optional URL of the subnetwork to which all network endpoints in the NEG belong.", + "region": { + "description": "[Output Only] URI of the region where the packetMirroring resides.", "type": "string" }, - "zone": { - "description": "[Output Only] The URL of the zone where the network endpoint group is located.", + "selfLink": { + "description": "Output only. [Output Only] Server-defined URL for the resource.", + "readOnly": true, "type": "string" } }, "type": "object" }, - "NetworkEndpointGroupAggregatedList": { - "id": "NetworkEndpointGroupAggregatedList", + "PacketMirroringAggregatedList": { + "description": "Contains a list of packetMirrorings.", + "id": "PacketMirroringAggregatedList", "properties": { "id": { "description": "[Output Only] Unique identifier for the resource; defined by the server.", @@ -59052,37 +85303,40 @@ }, "items": { "additionalProperties": { - "$ref": "NetworkEndpointGroupsScopedList", - "description": "The name of the scope that contains this set of network endpoint groups." + "$ref": "PacketMirroringsScopedList", + "description": "Name of the scope containing this set of packetMirrorings." }, - "description": "A list of NetworkEndpointGroupsScopedList resources.", + "description": "A list of PacketMirroring resources.", "type": "object" }, "kind": { - "default": "compute#networkEndpointGroupAggregatedList", - "description": "[Output Only] The resource type, which is always compute#networkEndpointGroupAggregatedList for aggregated lists of network endpoint groups.", + "default": "compute#packetMirroringAggregatedList", + "description": "Output only. Type of resource.", + "readOnly": true, "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.", + "description": "[Output Only] This token allows you to get the next page of results for\nlist requests. If the number of results is larger thanmaxResults, use the nextPageToken as a value for\nthe query parameter pageToken in the next list request.\nSubsequent list requests will have their own nextPageToken to\ncontinue paging through the results.", "type": "string" }, "selfLink": { - "description": "[Output Only] Server-defined URL for this resource.", + "description": "Output only. [Output Only] Server-defined URL for this resource.", + "readOnly": true, "type": "string" }, "unreachables": { - "description": "[Output Only] Unreachable resources.", + "description": "Output only. [Output Only] Unreachable resources.", "items": { "type": "string" }, + "readOnly": true, "type": "array" }, "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.", + "description": "[Output Only] A warning code, if applicable. For example, Compute\nEngine returns NO_RESULTS_ON_PAGE if there\nare no results in the response.", "enum": [ "CLEANUP_FAILED", "DEPRECATED_RESOURCE_USED", @@ -59105,6 +85359,7 @@ "NOT_CRITICAL_ERROR", "NO_RESULTS_ON_PAGE", "PARTIAL_SUCCESS", + "QUOTA_INFO_UNAVAILABLE", "REQUIRED_TOS_AGREEMENT", "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", "RESOURCE_NOT_DELETED", @@ -59141,46 +85396,48 @@ false, false, false, + false, false ], "enumDescriptions": [ - "Warning about failed cleanup of transient changes made by a failed operation.", + "Warning about failed cleanup of transient changes made by a failed\noperation.", "A link to a deprecated resource was created.", - "When deploying and at least one of the resources has a type marked as deprecated", + "When deploying and at least one of the resources has a type marked as\ndeprecated", "The user created a boot disk that is larger than image size.", - "When deploying and at least one of the resources has a type marked as experimental", + "When deploying and at least one of the resources has a type marked as\nexperimental", "Warning that is present in an external api call", - "Warning that value of a field has been overridden. Deprecated unused field.", + "Warning that value of a field has been overridden.\nDeprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", - "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is\nnot of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", - "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", + "Resource can't be retrieved due to list overhead quota exceed\nwhich captures the amount of resources filtered out by\nuser-defined list filter.", "A resource depends on a missing type", - "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's nextHopIp address is not assigned to an instance on the\nnetwork.", "The route's next hop instance cannot ip forward.", - "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not have an\nipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", - "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that is not on the\nsame network as the route.", "The route's next hop instance does not have a status of RUNNING.", - "Error which is not critical. We decided to continue the process despite the mentioned error.", + "Error which is not critical. We decided to continue the process despite\nthe mentioned error.", "No results are present on a particular list page.", "Success is reported, but some results may be missing due to errors", - "The user attempted to use a resource that requires a TOS they have not accepted.", + "Quota information is not available to client requests (e.g:\nregions.list).", + "The user attempted to use a resource that requires a TOS they have not\naccepted.", "Warning that a resource is in use.", - "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "One or more of the resources set to auto-delete could not be deleted\nbecause they were in use.", "When a resource schema validation is ignored.", - "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", + "Instance template used in instance group manager is valid as such, but\nits application does not make a lot of sense, because it allows only\nsingle instance in instance group.", "When undeclared properties in the schema are present", "A given scope cannot be reached." ], "type": "string" }, "data": { - "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", + "description": "[Output Only] Metadata about this warning in key:\nvalue format. For example:\n\n\"data\": [\n {\n \"key\": \"scope\",\n \"value\": \"zones/us-east1-d\"\n }", "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).", + "description": "[Output Only] A key that provides more detail on the warning being\nreturned. For example, for warnings where there are no results in a list\nrequest for a particular zone, this key might be scope and\nthe key value might be the zone name. Other examples might be a key\nindicating a deprecated resource and a suggested replacement, or a\nwarning about invalid network settings (for example, if an instance\nattempts to perform IP forwarding but is not enabled for IP forwarding).", "type": "string" }, "value": { @@ -59202,91 +85459,90 @@ }, "type": "object" }, - "NetworkEndpointGroupAppEngine": { - "description": "Configuration for an App Engine network endpoint group (NEG). The service is optional, may be provided explicitly or in the URL mask. The version is optional and can only be provided explicitly or in the URL mask when service is present. Note: App Engine service must be in the same project and located in the same region as the Serverless NEG.", - "id": "NetworkEndpointGroupAppEngine", + "PacketMirroringFilter": { + "id": "PacketMirroringFilter", "properties": { - "service": { - "description": "Optional serving service. The service name is case-sensitive and must be 1-63 characters long. Example value: default, my-service.", - "type": "string" - }, - "urlMask": { - "description": "An URL mask is one of the main components of the Cloud Function. A template to parse service and version fields from a request URL. URL mask allows for routing to multiple App Engine services without having to create multiple Network Endpoint Groups and backend services. For example, the request URLs foo1-dot-appname.appspot.com/v1 and foo1-dot-appname.appspot.com/v2 can be backed by the same Serverless NEG with URL mask \u003cservice\u003e-dot-appname.appspot.com/\u003cversion\u003e. The URL mask will parse them to { service = \"foo1\", version = \"v1\" } and { service = \"foo1\", version = \"v2\" } respectively.", - "type": "string" + "IPProtocols": { + "description": "Protocols that apply as filter on mirrored traffic.\nIf no protocols are specified, all traffic that matches the specified\nCIDR ranges is mirrored.\nIf neither cidrRanges nor IPProtocols is specified, all IPv4 traffic is\nmirrored.", + "items": { + "type": "string" + }, + "type": "array" }, - "version": { - "description": "Optional serving version. The version name is case-sensitive and must be 1-100 characters long. Example value: v1, v2.", - "type": "string" - } - }, - "type": "object" - }, - "NetworkEndpointGroupCloudFunction": { - "description": "Configuration for a Cloud Function network endpoint group (NEG). The function must be provided explicitly or in the URL mask. Note: Cloud Function must be in the same project and located in the same region as the Serverless NEG.", - "id": "NetworkEndpointGroupCloudFunction", - "properties": { - "function": { - "description": "A user-defined name of the Cloud Function. The function name is case-sensitive and must be 1-63 characters long. Example value: func1.", - "type": "string" + "cidrRanges": { + "description": "One or more IPv4 or IPv6 CIDR ranges that apply as filters on the source\n(ingress) or destination (egress) IP in the IP header. If no ranges are\nspecified, all IPv4 traffic that matches the specified IPProtocols is\nmirrored. If neither cidrRanges nor IPProtocols is specified, all IPv4\ntraffic is mirrored. To mirror all IPv4 and IPv6 traffic, use\n\"0.0.0.0/0,::/0\".", + "items": { + "type": "string" + }, + "type": "array" }, - "urlMask": { - "description": "An URL mask is one of the main components of the Cloud Function. A template to parse function field from a request URL. URL mask allows for routing to multiple Cloud Functions without having to create multiple Network Endpoint Groups and backend services. For example, request URLs mydomain.com/function1 and mydomain.com/function2 can be backed by the same Serverless NEG with URL mask /\u003cfunction\u003e. The URL mask will parse them to { function = \"function1\" } and { function = \"function2\" } respectively.", + "direction": { + "description": "Direction of traffic to mirror, either INGRESS, EGRESS, or BOTH.\nThe default is BOTH.", + "enum": [ + "BOTH", + "EGRESS", + "INGRESS" + ], + "enumDescriptions": [ + "Default, both directions are mirrored.", + "Only egress traffic is mirrored.", + "Only ingress traffic is mirrored." + ], "type": "string" } }, "type": "object" }, - "NetworkEndpointGroupCloudRun": { - "description": "Configuration for a Cloud Run network endpoint group (NEG). The service must be provided explicitly or in the URL mask. The tag is optional, may be provided explicitly or in the URL mask. Note: Cloud Run service must be in the same project and located in the same region as the Serverless NEG.", - "id": "NetworkEndpointGroupCloudRun", + "PacketMirroringForwardingRuleInfo": { + "id": "PacketMirroringForwardingRuleInfo", "properties": { - "service": { - "description": "Cloud Run service is the main resource of Cloud Run. The service must be 1-63 characters long, and comply with RFC1035. Example value: \"run-service\".", - "type": "string" - }, - "tag": { - "description": "Optional Cloud Run tag represents the \"named-revision\" to provide additional fine-grained traffic routing information. The tag must be 1-63 characters long, and comply with RFC1035. Example value: \"revision-0010\".", + "canonicalUrl": { + "description": "Output only. [Output Only] Unique identifier for the forwarding rule; defined by the\nserver.", + "readOnly": true, "type": "string" }, - "urlMask": { - "description": "An URL mask is one of the main components of the Cloud Function. A template to parse \u003cservice\u003e and \u003ctag\u003e fields from a request URL. URL mask allows for routing to multiple Run services without having to create multiple network endpoint groups and backend services. For example, request URLs foo1.domain.com/bar1 and foo1.domain.com/bar2 can be backed by the same Serverless Network Endpoint Group (NEG) with URL mask \u003ctag\u003e.domain.com/\u003cservice\u003e. The URL mask will parse them to { service=\"bar1\", tag=\"foo1\" } and { service=\"bar2\", tag=\"foo2\" } respectively.", + "url": { + "description": "Resource URL to the forwarding rule representing the ILB\nconfigured as destination of the mirrored traffic.", "type": "string" } }, "type": "object" }, - "NetworkEndpointGroupList": { - "id": "NetworkEndpointGroupList", + "PacketMirroringList": { + "description": "Contains a list of PacketMirroring resources.", + "id": "PacketMirroringList", "properties": { "id": { "description": "[Output Only] Unique identifier for the resource; defined by the server.", "type": "string" }, "items": { - "description": "A list of NetworkEndpointGroup resources.", + "description": "A list of PacketMirroring resources.", "items": { - "$ref": "NetworkEndpointGroup" + "$ref": "PacketMirroring" }, "type": "array" }, "kind": { - "default": "compute#networkEndpointGroupList", - "description": "[Output Only] The resource type, which is always compute#networkEndpointGroupList for network endpoint group lists.", + "default": "compute#packetMirroringList", + "description": "Output only. [Output Only] Type of resource. Always compute#packetMirroring\nfor packetMirrorings.", + "readOnly": true, "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.", + "description": "[Output Only] This token allows you to get the next page of results for\nlist requests. If the number of results is larger thanmaxResults, use the nextPageToken as a value for\nthe query parameter pageToken in the next list request.\nSubsequent list requests will have their own nextPageToken to\ncontinue paging through the results.", "type": "string" }, "selfLink": { - "description": "[Output Only] Server-defined URL for this resource.", + "description": "Output only. [Output Only] Server-defined URL for this resource.", + "readOnly": true, "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.", + "description": "[Output Only] A warning code, if applicable. For example, Compute\nEngine returns NO_RESULTS_ON_PAGE if there\nare no results in the response.", "enum": [ "CLEANUP_FAILED", "DEPRECATED_RESOURCE_USED", @@ -59309,6 +85565,7 @@ "NOT_CRITICAL_ERROR", "NO_RESULTS_ON_PAGE", "PARTIAL_SUCCESS", + "QUOTA_INFO_UNAVAILABLE", "REQUIRED_TOS_AGREEMENT", "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", "RESOURCE_NOT_DELETED", @@ -59345,46 +85602,48 @@ false, false, false, + false, false ], "enumDescriptions": [ - "Warning about failed cleanup of transient changes made by a failed operation.", + "Warning about failed cleanup of transient changes made by a failed\noperation.", "A link to a deprecated resource was created.", - "When deploying and at least one of the resources has a type marked as deprecated", + "When deploying and at least one of the resources has a type marked as\ndeprecated", "The user created a boot disk that is larger than image size.", - "When deploying and at least one of the resources has a type marked as experimental", + "When deploying and at least one of the resources has a type marked as\nexperimental", "Warning that is present in an external api call", - "Warning that value of a field has been overridden. Deprecated unused field.", + "Warning that value of a field has been overridden.\nDeprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", - "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is\nnot of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", - "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", + "Resource can't be retrieved due to list overhead quota exceed\nwhich captures the amount of resources filtered out by\nuser-defined list filter.", "A resource depends on a missing type", - "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's nextHopIp address is not assigned to an instance on the\nnetwork.", "The route's next hop instance cannot ip forward.", - "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not have an\nipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", - "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that is not on the\nsame network as the route.", "The route's next hop instance does not have a status of RUNNING.", - "Error which is not critical. We decided to continue the process despite the mentioned error.", + "Error which is not critical. We decided to continue the process despite\nthe mentioned error.", "No results are present on a particular list page.", "Success is reported, but some results may be missing due to errors", - "The user attempted to use a resource that requires a TOS they have not accepted.", + "Quota information is not available to client requests (e.g:\nregions.list).", + "The user attempted to use a resource that requires a TOS they have not\naccepted.", "Warning that a resource is in use.", - "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "One or more of the resources set to auto-delete could not be deleted\nbecause they were in use.", "When a resource schema validation is ignored.", - "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", + "Instance template used in instance group manager is valid as such, but\nits application does not make a lot of sense, because it allows only\nsingle instance in instance group.", "When undeclared properties in the schema are present", "A given scope cannot be reached." ], "type": "string" }, "data": { - "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", + "description": "[Output Only] Metadata about this warning in key:\nvalue format. For example:\n\n\"data\": [\n {\n \"key\": \"scope\",\n \"value\": \"zones/us-east1-d\"\n }", "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).", + "description": "[Output Only] A key that provides more detail on the warning being\nreturned. For example, for warnings where there are no results in a list\nrequest for a particular zone, this key might be scope and\nthe key value might be the zone name. Other examples might be a key\nindicating a deprecated resource and a suggested replacement, or a\nwarning about invalid network settings (for example, if an instance\nattempts to perform IP forwarding but is not enabled for IP forwarding).", "type": "string" }, "value": { @@ -59406,114 +85665,93 @@ }, "type": "object" }, - "NetworkEndpointGroupPscData": { - "description": "All data that is specifically relevant to only network endpoint groups of type PRIVATE_SERVICE_CONNECT.", - "id": "NetworkEndpointGroupPscData", + "PacketMirroringMirroredResourceInfo": { + "id": "PacketMirroringMirroredResourceInfo", "properties": { - "consumerPscAddress": { - "description": "[Output Only] Address allocated from given subnetwork for PSC. This IP address acts as a VIP for a PSC NEG, allowing it to act as an endpoint in L7 PSC-XLB.", - "type": "string" + "instances": { + "description": "A set of virtual machine instances that are being mirrored.\nThey must live in zones contained in the same region as this\npacketMirroring.\n\nNote that this config will apply only to those network interfaces of the\nInstances that belong to the network specified in this packetMirroring.\n\nYou may specify a maximum of 50 Instances.", + "items": { + "$ref": "PacketMirroringMirroredResourceInfoInstanceInfo" + }, + "type": "array" }, - "pscConnectionId": { - "description": "[Output Only] The PSC connection id of the PSC Network Endpoint Group Consumer.", - "format": "uint64", - "type": "string" + "subnetworks": { + "description": "A set of subnetworks for which traffic from/to all VM instances will be\nmirrored. They must live in the same region as this packetMirroring.\n\nYou may specify a maximum of 5 subnetworks.", + "items": { + "$ref": "PacketMirroringMirroredResourceInfoSubnetInfo" + }, + "type": "array" }, - "pscConnectionStatus": { - "description": "[Output Only] The connection status of the PSC Forwarding Rule.", - "enum": [ - "ACCEPTED", - "CLOSED", - "NEEDS_ATTENTION", - "PENDING", - "REJECTED", - "STATUS_UNSPECIFIED" - ], - "enumDescriptions": [ - "The connection has been accepted by the producer.", - "The connection has been closed by the producer and will not serve traffic going forward.", - "The connection has been accepted by the producer, but the producer needs to take further action before the forwarding rule can serve traffic.", - "The connection is pending acceptance by the producer.", - "The connection has been rejected by the producer.", - "" - ], - "type": "string" - } - }, - "type": "object" - }, - "NetworkEndpointGroupsAttachEndpointsRequest": { - "id": "NetworkEndpointGroupsAttachEndpointsRequest", - "properties": { - "networkEndpoints": { - "description": "The list of network endpoints to be attached.", + "tags": { + "description": "A set of mirrored tags. Traffic from/to all VM instances that have one or\nmore of these tags will be mirrored.", "items": { - "$ref": "NetworkEndpoint" + "type": "string" }, "type": "array" } }, "type": "object" }, - "NetworkEndpointGroupsDetachEndpointsRequest": { - "id": "NetworkEndpointGroupsDetachEndpointsRequest", + "PacketMirroringMirroredResourceInfoInstanceInfo": { + "id": "PacketMirroringMirroredResourceInfoInstanceInfo", "properties": { - "networkEndpoints": { - "description": "The list of network endpoints to be detached.", - "items": { - "$ref": "NetworkEndpoint" - }, - "type": "array" + "canonicalUrl": { + "description": "Output only. [Output Only] Unique identifier for the instance; defined by the\nserver.", + "readOnly": true, + "type": "string" + }, + "url": { + "description": "Resource URL to the virtual machine instance which is being mirrored.", + "type": "string" } }, "type": "object" }, - "NetworkEndpointGroupsListEndpointsRequest": { - "id": "NetworkEndpointGroupsListEndpointsRequest", + "PacketMirroringMirroredResourceInfoSubnetInfo": { + "id": "PacketMirroringMirroredResourceInfoSubnetInfo", "properties": { - "healthStatus": { - "description": "Optional query parameter for showing the health status of each network endpoint. Valid options are SKIP or SHOW. If you don't specify this parameter, the health status of network endpoints will not be provided.", - "enum": [ - "SHOW", - "SKIP" - ], - "enumDescriptions": [ - "Show the health status for each network endpoint. Impacts latency of the call.", - "Health status for network endpoints will not be provided." - ], + "canonicalUrl": { + "description": "Output only. [Output Only] Unique identifier for the subnetwork; defined by the\nserver.", + "readOnly": true, + "type": "string" + }, + "url": { + "description": "Resource URL to the subnetwork for which\ntraffic from/to all VM instances will be mirrored.", "type": "string" } }, "type": "object" }, - "NetworkEndpointGroupsListNetworkEndpoints": { - "id": "NetworkEndpointGroupsListNetworkEndpoints", + "PacketMirroringNetworkInfo": { + "id": "PacketMirroringNetworkInfo", "properties": { - "id": { - "description": "[Output Only] Unique identifier for the resource; defined by the server.", + "canonicalUrl": { + "description": "Output only. [Output Only] Unique identifier for the network; defined by the server.", + "readOnly": true, "type": "string" }, - "items": { - "description": "A list of NetworkEndpointWithHealthStatus resources.", + "url": { + "description": "URL of the network resource.", + "type": "string" + } + }, + "type": "object" + }, + "PacketMirroringsScopedList": { + "id": "PacketMirroringsScopedList", + "properties": { + "packetMirrorings": { + "description": "A list of packetMirrorings contained in this scope.", "items": { - "$ref": "NetworkEndpointWithHealthStatus" + "$ref": "PacketMirroring" }, "type": "array" }, - "kind": { - "default": "compute#networkEndpointGroupsListNetworkEndpoints", - "description": "[Output Only] The resource type, which is always compute#networkEndpointGroupsListNetworkEndpoints for the list of network endpoints in the specified network endpoint group.", - "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" - }, "warning": { - "description": "[Output Only] Informational warning message.", + "description": "Informational warning which replaces the list of packetMirrorings when the\nlist is empty.", "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.", + "description": "[Output Only] A warning code, if applicable. For example, Compute\nEngine returns NO_RESULTS_ON_PAGE if there\nare no results in the response.", "enum": [ "CLEANUP_FAILED", "DEPRECATED_RESOURCE_USED", @@ -59536,6 +85774,7 @@ "NOT_CRITICAL_ERROR", "NO_RESULTS_ON_PAGE", "PARTIAL_SUCCESS", + "QUOTA_INFO_UNAVAILABLE", "REQUIRED_TOS_AGREEMENT", "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", "RESOURCE_NOT_DELETED", @@ -59572,46 +85811,48 @@ false, false, false, + false, false ], "enumDescriptions": [ - "Warning about failed cleanup of transient changes made by a failed operation.", + "Warning about failed cleanup of transient changes made by a failed\noperation.", "A link to a deprecated resource was created.", - "When deploying and at least one of the resources has a type marked as deprecated", + "When deploying and at least one of the resources has a type marked as\ndeprecated", "The user created a boot disk that is larger than image size.", - "When deploying and at least one of the resources has a type marked as experimental", + "When deploying and at least one of the resources has a type marked as\nexperimental", "Warning that is present in an external api call", - "Warning that value of a field has been overridden. Deprecated unused field.", + "Warning that value of a field has been overridden.\nDeprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", - "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is\nnot of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", - "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", + "Resource can't be retrieved due to list overhead quota exceed\nwhich captures the amount of resources filtered out by\nuser-defined list filter.", "A resource depends on a missing type", - "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's nextHopIp address is not assigned to an instance on the\nnetwork.", "The route's next hop instance cannot ip forward.", - "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not have an\nipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", - "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that is not on the\nsame network as the route.", "The route's next hop instance does not have a status of RUNNING.", - "Error which is not critical. We decided to continue the process despite the mentioned error.", + "Error which is not critical. We decided to continue the process despite\nthe mentioned error.", "No results are present on a particular list page.", "Success is reported, but some results may be missing due to errors", - "The user attempted to use a resource that requires a TOS they have not accepted.", + "Quota information is not available to client requests (e.g:\nregions.list).", + "The user attempted to use a resource that requires a TOS they have not\naccepted.", "Warning that a resource is in use.", - "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "One or more of the resources set to auto-delete could not be deleted\nbecause they were in use.", "When a resource schema validation is ignored.", - "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", + "Instance template used in instance group manager is valid as such, but\nits application does not make a lot of sense, because it allows only\nsingle instance in instance group.", "When undeclared properties in the schema are present", "A given scope cannot be reached." ], "type": "string" }, "data": { - "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", + "description": "[Output Only] Metadata about this warning in key:\nvalue format. For example:\n\n\"data\": [\n {\n \"key\": \"scope\",\n \"value\": \"zones/us-east1-d\"\n }", "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).", + "description": "[Output Only] A key that provides more detail on the warning being\nreturned. For example, for warnings where there are no results in a list\nrequest for a particular zone, this key might be scope and\nthe key value might be the zone name. Other examples might be a key\nindicating a deprecated resource and a suggested replacement, or a\nwarning about invalid network settings (for example, if an instance\nattempts to perform IP forwarding but is not enabled for IP forwarding).", "type": "string" }, "value": { @@ -59633,300 +85874,421 @@ }, "type": "object" }, - "NetworkEndpointGroupsScopedList": { - "id": "NetworkEndpointGroupsScopedList", + "PathMatcher": { + "description": "A matcher for the path portion of the URL. The BackendService\nfrom the longest-matched rule will serve the URL. If no rule was matched, the\ndefault service is used.", + "id": "PathMatcher", "properties": { - "networkEndpointGroups": { - "description": "[Output Only] The list of network endpoint groups that are contained in this scope.", + "defaultCustomErrorResponsePolicy": { + "$ref": "CustomErrorResponsePolicy", + "description": "defaultCustomErrorResponsePolicy specifies how the Load\nBalancer returns error responses when BackendServiceorBackendBucket responds with an error. \n\nThis policy takes\neffect at the PathMatcher level and applies only when no\npolicy has been defined for the error code at lower levels likeRouteRule and PathRule within thisPathMatcher. If an error code does not have a policy defined\nin defaultCustomErrorResponsePolicy, then a policy defined for\nthe error code in UrlMap.defaultCustomErrorResponsePolicy\ntakes effect. \n\nFor example, consider a UrlMap with the following\nconfiguration:\n \n \n - UrlMap.defaultCustomErrorResponsePolicy is configured\n with policies for 5xx and 4xx errors\n - A RouteRule for /coming_soon/ is configured for the\n error code 404.\n\nIf the request is for www.myotherdomain.com and a404 is encountered, the policy underUrlMap.defaultCustomErrorResponsePolicy takes effect. If a404 response is encountered for the requestwww.example.com/current_events/, the pathMatcher's policy\ntakes effect. If however, the request forwww.example.com/coming_soon/ encounters a 404,\nthe policy in RouteRule.customErrorResponsePolicy takes\neffect. If any of the requests in this example encounter a 500\nerror code, the policy atUrlMap.defaultCustomErrorResponsePolicy takes effect. \n\nWhen\nused in conjunction withpathMatcher.defaultRouteAction.retryPolicy, retries take\nprecedence. Only once all retries are exhausted, thedefaultCustomErrorResponsePolicy is applied. While attempting\na retry, if load balancer is successful in reaching the\nservice, the defaultCustomErrorResponsePolicy is ignored and\nthe response from the service is returned to the client.\n\ndefaultCustomErrorResponsePolicy is supported only for\nglobal external Application Load Balancers." + }, + "defaultRouteAction": { + "$ref": "HttpRouteAction", + "description": "defaultRouteAction takes effect when none of the \npathRules or routeRules match. The load balancer\nperforms advanced routing actions, such as URL rewrites and\nheader transformations, before forwarding the request to the\nselected backend.\n\n\nOnly one of defaultUrlRedirect, defaultService\nor defaultRouteAction.weightedBackendService can be set.\n\n\nURL maps for classic Application Load Balancers only support\nthe urlRewrite action within a path matcher'sdefaultRouteAction." + }, + "defaultService": { + "description": "The full or partial URL to the BackendService resource. This\nURL is used if none of the pathRules orrouteRules defined by this PathMatcher are\nmatched. For example, the\nfollowing are all valid URLs to a BackendService resource:\n \n \n - https://www.googleapis.com/compute/v1/projects/project/global/backendServices/backendService\n - compute/v1/projects/project/global/backendServices/backendService\n - global/backendServices/backendService\n\n\nIf defaultRouteAction is also specified, advanced\nrouting actions, such as URL rewrites, take effect before sending the\nrequest to the backend.\n\n\nOnly one of defaultUrlRedirect, defaultService\nor defaultRouteAction.weightedBackendService can be set.\n\n\nAuthorization requires one or more of the following Google IAM permissions on the\nspecified resource default_service: \n \n \n - compute.backendBuckets.use\n - compute.backendServices.use", + "type": "string" + }, + "defaultUrlRedirect": { + "$ref": "HttpRedirectAction", + "description": "When none of the specified pathRules orrouteRules match, the request is redirected to a URL specified\nby defaultUrlRedirect.\n\n\nOnly one of defaultUrlRedirect, defaultService\nor defaultRouteAction.weightedBackendService can be set.\n\n\nNot supported when the URL map is bound to a target gRPC proxy." + }, + "description": { + "description": "An optional description of this resource. Provide this property when you\ncreate the resource.", + "type": "string" + }, + "headerAction": { + "$ref": "HttpHeaderAction", + "description": "Specifies changes to request and response headers that need to take effect\nfor the selected backend service.\n\nHeaderAction specified here are applied after the matchingHttpRouteRule HeaderAction and before theHeaderAction in the UrlMap\n\nHeaderAction is not supported for load balancers\nthat have\ntheir loadBalancingScheme set to EXTERNAL.\n\nNot supported when the URL map is bound to a target gRPC proxy that\nhas validateForProxyless field set to true." + }, + "name": { + "description": "The name to which this PathMatcher is referred by theHostRule.", + "type": "string" + }, + "pathRules": { + "description": "The list of path rules. Use this list instead of routeRules\nwhen routing based on simple path matching is all that's required. A path\nrule can only include a wildcard character (*) after a\nforward slash character (\"/\").\n\nThe order by which path rules are specified does not matter.\nMatches are always done on the longest-path-first basis.\n\nFor example: a pathRule with a path /a/b/c/* will match\nbefore /a/b/* irrespective of the order in which those paths appear in this\nlist.\n\nWithin a given pathMatcher, only one ofpathRules or routeRules must be set.", "items": { - "$ref": "NetworkEndpointGroup" + "$ref": "PathRule" }, "type": "array" }, - "warning": { - "description": "[Output Only] An informational warning that replaces the list of network endpoint groups when the list is empty.", - "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", - "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", - "LARGE_DEPLOYMENT_WARNING", - "LIST_OVERHEAD_QUOTA_EXCEED", - "MISSING_TYPE_DEPENDENCY", - "NEXT_HOP_ADDRESS_NOT_ASSIGNED", - "NEXT_HOP_CANNOT_IP_FORWARD", - "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", - "NEXT_HOP_INSTANCE_NOT_FOUND", - "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", - "NEXT_HOP_NOT_RUNNING", - "NOT_CRITICAL_ERROR", - "NO_RESULTS_ON_PAGE", - "PARTIAL_SUCCESS", - "REQUIRED_TOS_AGREEMENT", - "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", - "RESOURCE_NOT_DELETED", - "SCHEMA_VALIDATION_IGNORED", - "SINGLE_INSTANCE_PROPERTY_TEMPLATE", - "UNDECLARED_PROPERTIES", - "UNREACHABLE" - ], - "enumDeprecated": [ - false, - false, - false, - false, - false, - false, - true, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false - ], - "enumDescriptions": [ - "Warning about failed cleanup of transient changes made by a failed operation.", - "A link to a deprecated resource was created.", - "When deploying and at least one of the resources has a type marked as deprecated", - "The user created a boot disk that is larger than image size.", - "When deploying and at least one of the resources has a type marked as experimental", - "Warning that is present in an external api call", - "Warning that value of a field has been overridden. Deprecated unused field.", - "The operation involved use of an injected kernel, which is deprecated.", - "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", - "When deploying a deployment with a exceedingly large number of resources", - "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", - "A resource depends on a missing type", - "The route's nextHopIp address is not assigned to an instance on the network.", - "The route's next hop instance cannot ip forward.", - "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", - "The route's nextHopInstance URL refers to an instance that does not exist.", - "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", - "The route's next hop instance does not have a status of RUNNING.", - "Error which is not critical. We decided to continue the process despite the mentioned error.", - "No results are present on a particular list page.", - "Success is reported, but some results may be missing due to errors", - "The user attempted to use a resource that requires a TOS they have not accepted.", - "Warning that a resource is in use.", - "One or more of the resources set to auto-delete could not be deleted because they were in use.", - "When a resource schema validation is ignored.", - "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", - "When undeclared properties in the schema are present", - "A given scope cannot be reached." - ], - "type": "string" - }, - "data": { - "description": "[Output Only] Metadata about this warning in key: value format. For example: \"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" - } + "routeRules": { + "description": "The list of HTTP route rules. Use this list instead ofpathRules when advanced route matching and routing actions are\ndesired. routeRules are evaluated in order of priority, from\nthe lowest to highest number.\n\nWithin a given pathMatcher, you can set only one ofpathRules or routeRules.", + "items": { + "$ref": "HttpRouteRule" + }, + "type": "array" + } + }, + "type": "object" + }, + "PathRule": { + "description": "A path-matching rule for a URL. If matched, will use the specifiedBackendService to handle the traffic arriving at this URL.", + "id": "PathRule", + "properties": { + "customErrorResponsePolicy": { + "$ref": "CustomErrorResponsePolicy", + "description": "customErrorResponsePolicy specifies how the Load\nBalancer returns error responses when BackendServiceorBackendBucket responds with an error. \n\nIf a policy for an\nerror code is not configured for the PathRule, a policy for\nthe error code configured inpathMatcher.defaultCustomErrorResponsePolicy is applied. If\none is not specified inpathMatcher.defaultCustomErrorResponsePolicy, the policy\nconfigured in UrlMap.defaultCustomErrorResponsePolicy takes\neffect. \n\nFor example, consider a UrlMap with the following configuration:\n \n \n - UrlMap.defaultCustomErrorResponsePolicy are configured\n with policies for 5xx and 4xx errors\n - A PathRule for /coming_soon/ is configured for the error\n code 404.\n\nIf the request is for www.myotherdomain.com and a404 is encountered, the policy underUrlMap.defaultCustomErrorResponsePolicy takes effect. If a404 response is encountered for the requestwww.example.com/current_events/, the pathMatcher's policy\ntakes effect. If however, the request forwww.example.com/coming_soon/ encounters a 404,\nthe policy in PathRule.customErrorResponsePolicy takes\neffect. If any of the requests in this example encounter a 500\nerror code, the policy atUrlMap.defaultCustomErrorResponsePolicy takes effect.\n\ncustomErrorResponsePolicy is supported only for\nglobal external Application Load Balancers." + }, + "paths": { + "description": "The list of path patterns to match. Each must start with /\nand the only place a * is allowed is at the end following\na /. The string fed to the path matcher does not include\nany text after the first ? or #, and\nthose chars are not allowed here.", + "items": { + "type": "string" + }, + "type": "array" + }, + "routeAction": { + "$ref": "HttpRouteAction", + "description": "In response to a matching path, the load balancer\nperforms advanced routing actions, such as URL rewrites and header\ntransformations, before forwarding the request to the selected\nbackend.\n\n\nOnly one of urlRedirect, service orrouteAction.weightedBackendService can be set.\n\n\nURL maps for classic Application Load Balancers only support\nthe urlRewrite action within a path rule'srouteAction." + }, + "service": { + "description": "The full or partial URL of the backend service resource to which traffic\nis directed if this rule is matched. If routeAction is\nalso specified, advanced routing actions, such as URL rewrites,\ntake effect before sending the request to the backend.\n\n\nOnly one of urlRedirect, service orrouteAction.weightedBackendService can be set.", + "type": "string" + }, + "urlRedirect": { + "$ref": "HttpRedirectAction", + "description": "When a path pattern is matched, the request is redirected to a URL\nspecified by urlRedirect.\n\n\nOnly one of urlRedirect, service orrouteAction.weightedBackendService can be set.\n\n\nNot supported when the URL map is bound to a target gRPC proxy." + } + }, + "type": "object" + }, + "PerInstanceConfig": { + "id": "PerInstanceConfig", + "properties": { + "fingerprint": { + "description": "Fingerprint of this per-instance config. This field can be used in\noptimistic locking. It is ignored when inserting a per-instance\nconfig. An up-to-date fingerprint must be provided in order to update an\nexisting per-instance configuration or the field needs to be unset.", + "format": "byte", + "type": "string" + }, + "name": { + "description": "The name of a per-instance configuration and its corresponding instance.\nServes as a merge key during UpdatePerInstanceConfigs\noperations, that is, if a per-instance configuration with the same name\nexists then it will be updated, otherwise a new one will be created for the\nVM instance with the same name. An attempt to create a per-instance\nconfiguration for a VM instance that either doesn't exist or is not part\nof the group will result in an error.", + "type": "string" + }, + "preservedState": { + "$ref": "PreservedState", + "description": "The intended preserved state for the given instance. Does not contain\npreserved state generated from a stateful policy." + }, + "status": { + "description": "The status of applying this per-instance configuration on the corresponding\nmanaged instance.", + "enum": [ + "APPLYING", + "DELETING", + "EFFECTIVE", + "NONE", + "UNAPPLIED", + "UNAPPLIED_DELETION" + ], + "enumDescriptions": [ + "The per-instance configuration is being applied to the instance, but is\nnot yet effective, possibly waiting for the instance to, for example,REFRESH.", + "The per-instance configuration deletion is being applied on the instance,\npossibly waiting for the instance to, for example, REFRESH.", + "The per-instance configuration is effective on the instance, meaning that\nall disks, ips and metadata specified in this configuration are attached\nor set on the instance.", + "*[Default]* The default status, when no per-instance configuration\nexists.", + "The per-instance configuration is set on an instance but not been applied\nyet.", + "The per-instance configuration has been deleted, but the deletion is not\nyet applied." + ], + "type": "string" + } + }, + "type": "object" + }, + "PeriodicPartialMaintenanceSchedule": { + "description": "The periodic partial maintenance schedule includes 52 weeks worth of\nmaintenance windows.\nLINT.IfChange(PeriodicPartialMaintenanceSchedule)", + "id": "PeriodicPartialMaintenanceSchedule", + "properties": { + "subType": { + "description": "The maintenance type in which the zone is during the given window.", + "enum": [ + "MAINTENANCE_SUBTYPE_UNSPECIFIED", + "MAINTENANCE_TYPE_CUSTOMER_MAINTENANCE", + "MAINTENANCE_TYPE_DISRUPTIVE_UPGRADE", + "MAINTENANCE_TYPE_STABLE", + "MAINTENANCE_TYPE_TRANSITION" + ], + "enumDescriptions": [ + "Default value.", + "A dedicated window for customers to perform their own maintenance. This\noften runs concurrently with a DISRUPTIVE_UPGRADE.", + "For disruptive updates, including host machine kernel or firmware\nupgrades.", + "A post-maintenance window for customers to conduct final testing and\nperformance validation before resuming full business operations.", + "For preliminary, non-disruptive tasks such as key rotations." + ], + "type": "string" + }, + "targetResource": { + "description": "The target resource that the maintenance window is for.\nFor example, \"projects/my-project/zones/us-central1-a\".", + "type": "string" + }, + "type": { + "enum": [ + "MAINTENANCE_TYPE_UNSPECIFIED", + "PRIVATE_ZONE_MAINTENANCE" + ], + "enumDescriptions": [ + "Default value.", + "The zone is in a private maintenance window." + ], + "type": "string" + }, + "windowEndTime": { + "$ref": "DateTime", + "description": "The end civil timestamp of the window (not inclusive).\nThis contains a time zone." + }, + "windowStartTime": { + "$ref": "DateTime", + "description": "The start civil timestamp of the window.\nThis contains a time zone." + } + }, + "type": "object" + }, + "Policy": { + "description": "An Identity and Access Management (IAM) policy, which specifies access\ncontrols for Google Cloud resources.\n\n\nA `Policy` is a collection of `bindings`. A `binding` binds one or more\n`members`, or principals, to a single `role`. Principals can be user\naccounts, service accounts, Google groups, and domains (such as G Suite). A\n`role` is a named list of permissions; each `role` can be an IAM predefined\nrole or a user-created custom role.\n\nFor some types of Google Cloud resources, a `binding` can also specify a\n`condition`, which is a logical expression that allows access to a resource\nonly if the expression evaluates to `true`. A condition can add constraints\nbased on attributes of the request, the resource, or both. To learn which\nresources support conditions in their IAM policies, see the\n[IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies).\n\n**JSON example:**\n\n```\n {\n \"bindings\": [\n {\n \"role\": \"roles/resourcemanager.organizationAdmin\",\n \"members\": [\n \"user:mike@example.com\",\n \"group:admins@example.com\",\n \"domain:google.com\",\n \"serviceAccount:my-project-id@appspot.gserviceaccount.com\"\n ]\n },\n {\n \"role\": \"roles/resourcemanager.organizationViewer\",\n \"members\": [\n \"user:eve@example.com\"\n ],\n \"condition\": {\n \"title\": \"expirable access\",\n \"description\": \"Does not grant access after Sep 2020\",\n \"expression\": \"request.time \u003c timestamp('2020-10-01T00:00:00.000Z')\",\n }\n }\n ],\n \"etag\": \"BwWWja0YfJA=\",\n \"version\": 3\n }\n```\n\n**YAML example:**\n\n```\n bindings:\n - members:\n - user:mike@example.com\n - group:admins@example.com\n - domain:google.com\n - serviceAccount:my-project-id@appspot.gserviceaccount.com\n role: roles/resourcemanager.organizationAdmin\n - members:\n - user:eve@example.com\n role: roles/resourcemanager.organizationViewer\n condition:\n title: expirable access\n description: Does not grant access after Sep 2020\n expression: request.time \u003c timestamp('2020-10-01T00:00:00.000Z')\n etag: BwWWja0YfJA=\n version: 3\n```\n\nFor a description of IAM and its features, see the\n[IAM documentation](https://cloud.google.com/iam/docs/).", + "id": "Policy", + "properties": { + "auditConfigs": { + "description": "Specifies cloud audit logging configuration for this policy.", + "items": { + "$ref": "AuditConfig" + }, + "type": "array" + }, + "bindings": { + "description": "Associates a list of `members`, or principals, with a `role`. Optionally,\nmay specify a `condition` that determines how and when the `bindings` are\napplied. Each of the `bindings` must contain at least one principal.\n\nThe `bindings` in a `Policy` can refer to up to 1,500 principals; up to 250\nof these principals can be Google groups. Each occurrence of a principal\ncounts towards these limits. For example, if the `bindings` grant 50\ndifferent roles to `user:alice@example.com`, and not to any other\nprincipal, then you can add another 1,450 principals to the `bindings` in\nthe `Policy`.", + "items": { + "$ref": "Binding" + }, + "type": "array" + }, + "etag": { + "description": "`etag` is used for optimistic concurrency control as a way to help\nprevent simultaneous updates of a policy from overwriting each other.\nIt is strongly suggested that systems make use of the `etag` in the\nread-modify-write cycle to perform policy updates in order to avoid race\nconditions: An `etag` is returned in the response to `getIamPolicy`, and\nsystems are expected to put that etag in the request to `setIamPolicy` to\nensure that their change will be applied to the same version of the policy.\n\n**Important:** If you use IAM Conditions, you must include the `etag` field\nwhenever you call `setIamPolicy`. If you omit this field, then IAM allows\nyou to overwrite a version `3` policy with a version `1` policy, and all of\nthe conditions in the version `3` policy are lost.", + "format": "byte", + "type": "string" + }, + "version": { + "description": "Specifies the format of the policy.\n\nValid values are `0`, `1`, and `3`. Requests that specify an invalid value\nare rejected.\n\nAny operation that affects conditional role bindings must specify version\n`3`. This requirement applies to the following operations:\n\n* Getting a policy that includes a conditional role binding\n* Adding a conditional role binding to a policy\n* Changing a conditional role binding in a policy\n* Removing any role binding, with or without a condition, from a policy\n that includes conditions\n\n**Important:** If you use IAM Conditions, you must include the `etag` field\nwhenever you call `setIamPolicy`. If you omit this field, then IAM allows\nyou to overwrite a version `3` policy with a version `1` policy, and all of\nthe conditions in the version `3` policy are lost.\n\nIf a policy does not include any conditions, operations on that policy may\nspecify any valid version or leave the field unset.\n\nTo learn which resources support conditions in their IAM policies, see the\n[IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies).", + "format": "int32", + "type": "integer" + } + }, + "type": "object" + }, + "PreconfiguredWafSet": { + "id": "PreconfiguredWafSet", + "properties": { + "expressionSets": { + "description": "List of entities that are currently supported for WAF rules.", + "items": { + "$ref": "WafExpressionSet" + }, + "type": "array" + } + }, + "type": "object" + }, + "PreservedState": { + "description": "Preserved state for a given instance.", + "id": "PreservedState", + "properties": { + "disks": { + "additionalProperties": { + "$ref": "PreservedStatePreservedDisk" + }, + "description": "Preserved disks defined for this instance.\nThis map is keyed with the device names of the disks.", + "type": "object" + }, + "externalIPs": { + "additionalProperties": { + "$ref": "PreservedStatePreservedNetworkIp" + }, + "description": "Preserved external IPs defined for this instance.\nThis map is keyed with the name of the network interface.", + "type": "object" + }, + "internalIPs": { + "additionalProperties": { + "$ref": "PreservedStatePreservedNetworkIp" }, + "description": "Preserved internal IPs defined for this instance.\nThis map is keyed with the name of the network interface.", "type": "object" + }, + "metadata": { + "additionalProperties": { + "type": "string" + }, + "description": "Preserved metadata defined for this instance.", + "type": "object" + } + }, + "type": "object" + }, + "PreservedStatePreservedDisk": { + "id": "PreservedStatePreservedDisk", + "properties": { + "autoDelete": { + "description": "These stateful disks will never be deleted during autohealing,\nupdate, instance recreate operations. This flag is used to configure\nif the disk should be deleted after it is no longer used by the group,\ne.g. when the given instance or the whole MIG is deleted.\nNote: disks attached in READ_ONLY mode cannot be\nauto-deleted.", + "enum": [ + "NEVER", + "ON_PERMANENT_INSTANCE_DELETION" + ], + "enumDescriptions": [ + "", + "" + ], + "type": "string" + }, + "mode": { + "description": "The mode in which to attach this disk, either READ_WRITE orREAD_ONLY. If not specified, the default is to attach the\ndisk in READ_WRITE mode.", + "enum": [ + "READ_ONLY", + "READ_WRITE" + ], + "enumDescriptions": [ + "Attaches this disk in read-only mode. Multiple VM instances can use\na disk in READ_ONLY mode at a time.", + "*[Default]* Attaches this disk in READ_WRITE mode. Only\none VM instance at a time can be attached to a disk inREAD_WRITE mode." + ], + "type": "string" + }, + "source": { + "description": "The URL of the disk resource that is stateful and should be attached\nto the VM instance.", + "type": "string" } }, "type": "object" }, - "NetworkEndpointWithHealthStatus": { - "id": "NetworkEndpointWithHealthStatus", + "PreservedStatePreservedNetworkIp": { + "id": "PreservedStatePreservedNetworkIp", "properties": { - "healths": { - "description": "[Output only] The health status of network endpoint;", - "items": { - "$ref": "HealthStatusForNetworkEndpoint" - }, - "type": "array" + "autoDelete": { + "description": "These stateful IPs will never be released during autohealing,\nupdate or VM instance recreate operations.\nThis flag is used to configure if the IP reservation should be deleted\nafter it is no longer used by the group, e.g. when the given instance\nor the whole group is deleted.", + "enum": [ + "NEVER", + "ON_PERMANENT_INSTANCE_DELETION" + ], + "enumDescriptions": [ + "", + "" + ], + "type": "string" }, - "networkEndpoint": { - "$ref": "NetworkEndpoint", - "description": "[Output only] The network endpoint;" + "ipAddress": { + "$ref": "PreservedStatePreservedNetworkIpIpAddress", + "description": "Ip address representation" } }, "type": "object" }, - "NetworkInterface": { - "description": "A network interface resource attached to an instance.", - "id": "NetworkInterface", + "PreservedStatePreservedNetworkIpIpAddress": { + "id": "PreservedStatePreservedNetworkIpIpAddress", "properties": { - "accessConfigs": { - "description": "An array of configurations for this interface. Currently, only one access config, ONE_TO_ONE_NAT, is supported. If there are no accessConfigs specified, then this instance will have no external internet access.", - "items": { - "$ref": "AccessConfig" - }, - "type": "array" - }, - "aliasIpRanges": { - "description": "An array of alias IP ranges for this network interface. You can only specify this field for network interfaces in VPC networks.", - "items": { - "$ref": "AliasIpRange" - }, - "type": "array" - }, - "fingerprint": { - "description": "Fingerprint hash of contents stored in this network interface. This field will be ignored when inserting an Instance or adding a NetworkInterface. An up-to-date fingerprint must be provided in order to update the NetworkInterface. The request will fail with error 400 Bad Request if the fingerprint is not provided, or 412 Precondition Failed if the fingerprint is out of date.", - "format": "byte", + "address": { + "description": "The URL of the reservation for this IP address.", "type": "string" }, - "internalIpv6PrefixLength": { - "description": "The prefix length of the primary internal IPv6 range.", - "format": "int32", - "type": "integer" - }, - "ipv6AccessConfigs": { - "description": "An array of IPv6 access configurations for this interface. Currently, only one IPv6 access config, DIRECT_IPV6, is supported. If there is no ipv6AccessConfig specified, then this instance will have no external IPv6 Internet access.", - "items": { - "$ref": "AccessConfig" - }, - "type": "array" - }, - "ipv6AccessType": { - "description": "[Output Only] One of EXTERNAL, INTERNAL to indicate whether the IP can be accessed from the Internet. This field is always inherited from its subnetwork. Valid only if stackType is IPV4_IPV6.", + "literal": { + "description": "An IPv4 internal network address to assign to the instance for this\nnetwork interface.", + "type": "string" + } + }, + "type": "object" + }, + "PreviewFeature": { + "description": "Represents a single Google Compute Engine preview feature.", + "id": "PreviewFeature", + "properties": { + "activationStatus": { + "description": "Specifies whether the feature is enabled or disabled.", "enum": [ - "EXTERNAL", - "INTERNAL" + "ACTIVATION_STATE_UNSPECIFIED", + "DISABLED", + "ENABLED" ], "enumDescriptions": [ - "This network interface can have external IPv6.", - "This network interface can have internal IPv6." + "", + "", + "" ], "type": "string" }, - "ipv6Address": { - "description": "An IPv6 internal network address for this network interface. To use a static internal IP address, it must be unused and in the same region as the instance's zone. If not specified, Google Cloud will automatically assign an internal IPv6 address from the instance's subnetwork.", - "type": "string" - }, - "kind": { - "default": "compute#networkInterface", - "description": "[Output Only] Type of the resource. Always compute#networkInterface for network interfaces.", - "type": "string" - }, - "name": { - "description": "[Output Only] The name of the network interface, which is generated by the server. For a VM, the network interface uses the nicN naming format. Where N is a value between 0 and 7. The default interface value is nic0.", + "creationTimestamp": { + "description": "Output only. [Output Only] Creation timestamp inRFC3339\ntext format.", + "readOnly": true, "type": "string" }, - "network": { - "description": "URL of the VPC network resource for this instance. When creating an instance, if neither the network nor the subnetwork is specified, the default network global/networks/default is used. If the selected project doesn't have the default network, you must specify a network or subnet. If the network is not specified but the subnetwork is specified, the network is inferred. If you specify this property, you can specify the network as a full or partial URL. For example, the following are all valid URLs: - https://www.googleapis.com/compute/v1/projects/project/global/networks/ network - projects/project/global/networks/network - global/networks/default ", + "description": { + "description": "Output only. [Output Only] Description of the feature.", + "readOnly": true, "type": "string" }, - "networkAttachment": { - "description": "The URL of the network attachment that this interface should connect to in the following format: projects/{project_number}/regions/{region_name}/networkAttachments/{network_attachment_name}.", + "id": { + "description": "Output only. [Output Only] The unique identifier for the resource. This identifier is\ndefined by the server.", + "format": "uint64", + "readOnly": true, "type": "string" }, - "networkIP": { - "description": "An IPv4 internal IP address to assign to the instance for this network interface. If not specified by the user, an unused internal IP is assigned by the system.", + "kind": { + "default": "compute#previewFeature", + "description": "Output only. [Output only] The type of the feature. Always \"compute#previewFeature\" for\npreview features.", + "readOnly": true, "type": "string" }, - "nicType": { - "description": "The type of vNIC to be used on this interface. This may be gVNIC or VirtioNet.", - "enum": [ - "GVNIC", - "UNSPECIFIED_NIC_TYPE", - "VIRTIO_NET" - ], - "enumDescriptions": [ - "GVNIC", - "No type specified.", - "VIRTIO" - ], + "name": { + "description": "Name of the feature.", "type": "string" }, - "queueCount": { - "description": "The networking queue count that's specified by users for the network interface. Both Rx and Tx queues will be set to this number. It'll be empty if not specified by the users.", - "format": "int32", - "type": "integer" + "rolloutOperation": { + "$ref": "PreviewFeatureRolloutOperation", + "description": "Rollout operation of the feature." }, - "stackType": { - "description": "The stack type for this network interface. To assign only IPv4 addresses, use IPV4_ONLY. To assign both IPv4 and IPv6 addresses, use IPV4_IPV6. If not specified, IPV4_ONLY is used. This field can be both set at instance creation and update network interface operations.", - "enum": [ - "IPV4_IPV6", - "IPV4_ONLY" - ], - "enumDescriptions": [ - "The network interface can have both IPv4 and IPv6 addresses.", - "The network interface will be assigned IPv4 address." - ], + "selfLink": { + "description": "Output only. [Output Only] Server-defined URL for the resource.", + "readOnly": true, "type": "string" }, - "subnetwork": { - "description": "The URL of the Subnetwork resource for this instance. If the network resource is in legacy mode, do not specify this field. If the network is in auto subnet mode, specifying the subnetwork is optional. If the network is in custom subnet mode, specifying the subnetwork is required. If you specify this field, you can specify the subnetwork as a full or partial URL. For example, the following are all valid URLs: - https://www.googleapis.com/compute/v1/projects/project/regions/region /subnetworks/subnetwork - regions/region/subnetworks/subnetwork ", - "type": "string" + "status": { + "$ref": "PreviewFeatureStatus", + "description": "Output only. [Output only] Status of the feature.", + "readOnly": true } }, "type": "object" }, - "NetworkList": { - "description": "Contains a list of networks.", - "id": "NetworkList", + "PreviewFeatureList": { + "id": "PreviewFeatureList", "properties": { + "etag": { + "type": "string" + }, "id": { "description": "[Output Only] Unique identifier for the resource; defined by the server.", "type": "string" }, "items": { - "description": "A list of Network resources.", + "description": "A list of PreviewFeature resources.", "items": { - "$ref": "Network" + "$ref": "PreviewFeature" }, "type": "array" }, - "kind": { - "default": "compute#networkList", - "description": "[Output Only] Type of resource. Always compute#networkList for lists of networks.", - "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.", + "description": "[Output Only] This token allows you to get the next page of results for\nlist requests. If the number of results is larger thanmaxResults, use the nextPageToken as a value for\nthe query parameter pageToken in the next list request.\nSubsequent list requests will have their own nextPageToken to\ncontinue paging through the results.", "type": "string" }, "selfLink": { - "description": "[Output Only] Server-defined URL for this resource.", + "description": "Output only. [Output Only] Server-defined URL for this resource.", + "readOnly": true, "type": "string" }, + "unreachables": { + "description": "Output only. [Output Only] Unreachable resources.\nend_interface: MixerListResponseWithEtagBuilder", + "items": { + "type": "string" + }, + "readOnly": true, + "type": "array" + }, "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.", + "description": "[Output Only] A warning code, if applicable. For example, Compute\nEngine returns NO_RESULTS_ON_PAGE if there\nare no results in the response.", "enum": [ "CLEANUP_FAILED", "DEPRECATED_RESOURCE_USED", @@ -59949,6 +86311,7 @@ "NOT_CRITICAL_ERROR", "NO_RESULTS_ON_PAGE", "PARTIAL_SUCCESS", + "QUOTA_INFO_UNAVAILABLE", "REQUIRED_TOS_AGREEMENT", "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", "RESOURCE_NOT_DELETED", @@ -59985,46 +86348,48 @@ false, false, false, + false, false ], "enumDescriptions": [ - "Warning about failed cleanup of transient changes made by a failed operation.", + "Warning about failed cleanup of transient changes made by a failed\noperation.", "A link to a deprecated resource was created.", - "When deploying and at least one of the resources has a type marked as deprecated", + "When deploying and at least one of the resources has a type marked as\ndeprecated", "The user created a boot disk that is larger than image size.", - "When deploying and at least one of the resources has a type marked as experimental", + "When deploying and at least one of the resources has a type marked as\nexperimental", "Warning that is present in an external api call", - "Warning that value of a field has been overridden. Deprecated unused field.", + "Warning that value of a field has been overridden.\nDeprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", - "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is\nnot of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", - "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", + "Resource can't be retrieved due to list overhead quota exceed\nwhich captures the amount of resources filtered out by\nuser-defined list filter.", "A resource depends on a missing type", - "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's nextHopIp address is not assigned to an instance on the\nnetwork.", "The route's next hop instance cannot ip forward.", - "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not have an\nipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", - "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that is not on the\nsame network as the route.", "The route's next hop instance does not have a status of RUNNING.", - "Error which is not critical. We decided to continue the process despite the mentioned error.", + "Error which is not critical. We decided to continue the process despite\nthe mentioned error.", "No results are present on a particular list page.", "Success is reported, but some results may be missing due to errors", - "The user attempted to use a resource that requires a TOS they have not accepted.", + "Quota information is not available to client requests (e.g:\nregions.list).", + "The user attempted to use a resource that requires a TOS they have not\naccepted.", "Warning that a resource is in use.", - "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "One or more of the resources set to auto-delete could not be deleted\nbecause they were in use.", "When a resource schema validation is ignored.", - "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", + "Instance template used in instance group manager is valid as such, but\nits application does not make a lot of sense, because it allows only\nsingle instance in instance group.", "When undeclared properties in the schema are present", "A given scope cannot be reached." ], "type": "string" }, "data": { - "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", + "description": "[Output Only] Metadata about this warning in key:\nvalue format. For example:\n\n\"data\": [\n {\n \"key\": \"scope\",\n \"value\": \"zones/us-east1-d\"\n }", "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).", + "description": "[Output Only] A key that provides more detail on the warning being\nreturned. For example, for warnings where there are no results in a list\nrequest for a particular zone, this key might be scope and\nthe key value might be the zone name. Other examples might be a key\nindicating a deprecated resource and a suggested replacement, or a\nwarning about invalid network settings (for example, if an instance\nattempts to perform IP forwarding but is not enabled for IP forwarding).", "type": "string" }, "value": { @@ -60046,193 +86411,203 @@ }, "type": "object" }, - "NetworkPeering": { - "description": "A network peering attached to a network resource. The message includes the peering name, peer network, peering state, and a flag indicating whether Google Compute Engine should automatically create routes for the peering.", - "id": "NetworkPeering", + "PreviewFeatureRolloutOperation": { + "description": "Represents the rollout operation", + "id": "PreviewFeatureRolloutOperation", + "properties": { + "rolloutInput": { + "$ref": "PreviewFeatureRolloutOperationRolloutInput", + "description": "Input only. The input for the rollout operation." + } + }, + "type": "object" + }, + "PreviewFeatureRolloutOperationRolloutInput": { + "description": "Represents the input for the rollout operation.", + "id": "PreviewFeatureRolloutOperationRolloutInput", "properties": { - "autoCreateRoutes": { - "description": "This field will be deprecated soon. Use the exchange_subnet_routes field instead. Indicates whether full mesh connectivity is created and managed automatically between peered networks. Currently this field should always be true since Google Compute Engine will automatically create and manage subnetwork routes between two networks when peering state is ACTIVE.", - "type": "boolean" - }, - "exchangeSubnetRoutes": { - "description": "Indicates whether full mesh connectivity is created and managed automatically between peered networks. Currently this field should always be true since Google Compute Engine will automatically create and manage subnetwork routes between two networks when peering state is ACTIVE.", - "type": "boolean" - }, - "exportCustomRoutes": { - "description": "Whether to export the custom routes to peer network. The default value is false.", - "type": "boolean" - }, - "exportSubnetRoutesWithPublicIp": { - "description": "Whether subnet routes with public IP range are exported. The default value is true, all subnet routes are exported. IPv4 special-use ranges are always exported to peers and are not controlled by this field.", - "type": "boolean" - }, - "importCustomRoutes": { - "description": "Whether to import the custom routes from peer network. The default value is false.", - "type": "boolean" - }, - "importSubnetRoutesWithPublicIp": { - "description": "Whether subnet routes with public IP range are imported. The default value is false. IPv4 special-use ranges are always imported from peers and are not controlled by this field.", - "type": "boolean" - }, "name": { - "description": "Name of this peering. Provided by the client when the peering is created. The name must comply with RFC1035. Specifically, the name must be 1-63 characters long and match regular expression `[a-z]([-a-z0-9]*[a-z0-9])?`. The first character must be a lowercase letter, and all the following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash.", - "type": "string" - }, - "network": { - "description": "The URL of the peer network. It can be either full URL or partial URL. The peer network may belong to a different project. If the partial URL does not contain project, it is assumed that the peer network is in the same project as the current network.", + "description": "The name of the rollout plan\nEx.\norganizations//locations/global/rolloutPlans/\nEx.\nfolders//locations/global/rolloutPlans/\nEx.\nprojects//locations/global/rolloutPlans/.", "type": "string" }, - "peerMtu": { - "description": "Maximum Transmission Unit in bytes.", - "format": "int32", - "type": "integer" - }, - "stackType": { - "description": "Which IP version(s) of traffic and routes are allowed to be imported or exported between peer networks. The default value is IPV4_ONLY.", + "predefinedRolloutPlan": { + "description": "Predefined rollout plan.", "enum": [ - "IPV4_IPV6", - "IPV4_ONLY" + "ROLLOUT_PLAN_FAST_ROLLOUT", + "ROLLOUT_PLAN_TWO_DAY_ROLLOUT", + "ROLLOUT_PLAN_UNSPECIFIED" ], "enumDescriptions": [ - "This Peering will allow IPv4 traffic and routes to be exchanged. Additionally if the matching peering is IPV4_IPV6, IPv6 traffic and routes will be exchanged as well.", - "This Peering will only allow IPv4 traffic and routes to be exchanged, even if the matching peering is IPV4_IPV6." + "", + "", + "" ], "type": "string" - }, - "state": { - "description": "[Output Only] State for the peering, either `ACTIVE` or `INACTIVE`. The peering is `ACTIVE` when there's a matching configuration in the peer network.", - "enum": [ - "ACTIVE", - "INACTIVE" - ], - "enumDescriptions": [ - "Matching configuration exists on the peer.", - "There is no matching configuration on the peer, including the case when peer does not exist." - ], + } + }, + "type": "object" + }, + "PreviewFeatureStatus": { + "description": "[Output Only] The status of the feature.", + "id": "PreviewFeatureStatus", + "properties": { + "description": { + "description": "Output only. [Output Only] The description of the feature.", + "readOnly": true, "type": "string" }, - "stateDetails": { - "description": "[Output Only] Details about the current state of the peering.", + "helpLink": { + "description": "Output only. [Output Only] Link to the public documentation for the feature.", + "readOnly": true, "type": "string" + }, + "releaseStatus": { + "$ref": "PreviewFeatureStatusReleaseStatus" } }, "type": "object" }, - "NetworkPerformanceConfig": { - "id": "NetworkPerformanceConfig", + "PreviewFeatureStatusReleaseStatus": { + "description": "[Output Only] The release status of the feature.", + "id": "PreviewFeatureStatusReleaseStatus", "properties": { - "totalEgressBandwidthTier": { + "stage": { + "description": "Output only. [Output Only] The stage of the feature.", "enum": [ - "DEFAULT", - "TIER_1" + "DEPRECATED", + "GA", + "PREVIEW", + "STAGE_UNSPECIFIED" ], "enumDescriptions": [ + "", + "", "", "" ], + "readOnly": true, "type": "string" + }, + "updateDate": { + "$ref": "Date", + "description": "Output only. The last date when a feature transitioned between ReleaseStatuses.", + "readOnly": true } }, "type": "object" }, - "NetworkRoutingConfig": { - "description": "A routing configuration attached to a network resource. The message includes the list of routers associated with the network, and a flag indicating the type of routing behavior to enforce network-wide.", - "id": "NetworkRoutingConfig", + "Project": { + "description": "Represents a Project resource.\n\nA project is used to organize resources in a Google Cloud Platform\nenvironment. For more information, read about the \nResource Hierarchy.", + "id": "Project", "properties": { - "routingMode": { - "description": "The network-wide routing mode to use. If set to REGIONAL, this network's Cloud Routers will only advertise routes with subnets of this network in the same region as the router. If set to GLOBAL, this network's Cloud Routers will advertise routes with all subnets of this network, across regions.", + "cloudArmorTier": { + "description": "Output only. [Output Only] The Cloud Armor tier for this project. It can be one of the\nfollowing values: CA_STANDARD,CA_ENTERPRISE_PAYGO.\n\nIf this field is not specified, it is assumed to beCA_STANDARD.", "enum": [ - "GLOBAL", - "REGIONAL" + "CA_ENTERPRISE_ANNUAL", + "CA_ENTERPRISE_PAYGO", + "CA_STANDARD" ], "enumDescriptions": [ - "", - "" + "Enterprise tier protection billed annually.", + "Enterprise tier protection billed monthly.", + "Standard protection." ], + "readOnly": true, "type": "string" - } - }, - "type": "object" - }, - "NetworksAddPeeringRequest": { - "id": "NetworksAddPeeringRequest", - "properties": { - "autoCreateRoutes": { - "description": "This field will be deprecated soon. Use exchange_subnet_routes in network_peering instead. Indicates whether full mesh connectivity is created and managed automatically between peered networks. Currently this field should always be true since Google Compute Engine will automatically create and manage subnetwork routes between two networks when peering state is ACTIVE.", - "type": "boolean" }, - "name": { - "annotations": { - "required": [ - "compute.networks.addPeering" - ] - }, - "description": "Name of the peering, which should conform to RFC1035.", + "commonInstanceMetadata": { + "$ref": "Metadata", + "description": "Metadata key/value pairs available to all instances contained in this\nproject. See Custom\nmetadata for more information." + }, + "creationTimestamp": { + "description": "[Output Only] Creation timestamp inRFC3339\ntext format.", "type": "string" }, - "networkPeering": { - "$ref": "NetworkPeering", - "description": "Network peering parameters. In order to specify route policies for peering using import and export custom routes, you must specify all peering related parameters (name, peer network, exchange_subnet_routes) in the network_peering field. The corresponding fields in NetworksAddPeeringRequest will be deprecated soon." + "defaultNetworkTier": { + "description": "This signifies the default network tier used for configuring resources of\nthe project and can only take the following values:PREMIUM, STANDARD. Initially the default network\ntier is PREMIUM.", + "enum": [ + "FIXED_STANDARD", + "PREMIUM", + "STANDARD", + "STANDARD_OVERRIDES_FIXED_STANDARD" + ], + "enumDescriptions": [ + "Public internet quality with fixed bandwidth.", + "High quality, Google-grade network tier, support for all networking\nproducts.", + "Public internet quality, only limited support for other networking\nproducts.", + "(Output only) Temporary tier for FIXED_STANDARD when fixed standard tier\nis expired or not configured." + ], + "type": "string" }, - "peerNetwork": { - "description": "URL of the peer network. It can be either full URL or partial URL. The peer network may belong to a different project. If the partial URL does not contain project, it is assumed that the peer network is in the same project as the current network.", + "defaultServiceAccount": { + "description": "[Output Only] Default service account used by VMs running in this project.", "type": "string" - } - }, - "type": "object" - }, - "NetworksGetEffectiveFirewallsResponse": { - "id": "NetworksGetEffectiveFirewallsResponse", - "properties": { - "firewallPolicys": { - "description": "Effective firewalls from firewall policy.", - "items": { - "$ref": "NetworksGetEffectiveFirewallsResponseEffectiveFirewallPolicy" - }, - "type": "array" }, - "firewalls": { - "description": "Effective firewalls on the network.", + "description": { + "description": "An optional textual description of the resource.", + "type": "string" + }, + "enabledFeatures": { + "description": "An optional list of restricted features enabled for use on this project.", "items": { - "$ref": "Firewall" + "type": "string" }, "type": "array" - } - }, - "type": "object" - }, - "NetworksGetEffectiveFirewallsResponseEffectiveFirewallPolicy": { - "id": "NetworksGetEffectiveFirewallsResponseEffectiveFirewallPolicy", - "properties": { - "displayName": { - "deprecated": true, - "description": "[Output Only] Deprecated, please use short name instead. The display name of the firewall policy.", + }, + "id": { + "description": "[Output Only] The unique identifier for the resource. This identifier is\ndefined by the server. This is *not* the project ID, and is\njust a unique ID used by Compute Engine to identify resources.", + "format": "uint64", + "type": "string" + }, + "kind": { + "default": "compute#project", + "description": "Output only. [Output Only] Type of the resource. Always compute#project for\nprojects.", + "readOnly": true, "type": "string" }, "name": { - "description": "[Output Only] The name of the firewall policy.", + "description": "The project ID. For example: my-example-project. Use the\nproject ID to make requests to Compute Engine.", "type": "string" }, - "rules": { - "description": "The rules that apply to the network.", + "quotas": { + "description": "[Output Only] Quotas assigned to this project.", "items": { - "$ref": "FirewallPolicyRule" + "$ref": "Quota" }, "type": "array" }, - "shortName": { - "description": "[Output Only] The short name of the firewall policy.", + "selfLink": { + "description": "[Output Only] Server-defined URL for the resource.", "type": "string" }, - "type": { - "description": "[Output Only] The type of the firewall policy.", + "usageExportLocation": { + "$ref": "UsageExportLocation", + "description": "An optional naming prefix for daily usage reports and the Google Cloud\nStorage bucket where they are stored." + }, + "vmDnsSetting": { + "description": "Output only. [Output Only] Default internal DNS setting used by VMs running in\nthis project.", "enum": [ - "HIERARCHY", - "NETWORK", - "UNSPECIFIED" + "GLOBAL_DEFAULT", + "UNSPECIFIED_VM_DNS_SETTING", + "ZONAL_DEFAULT", + "ZONAL_ONLY" ], "enumDescriptions": [ "", + "", + "", + "" + ], + "readOnly": true, + "type": "string" + }, + "xpnProjectStatus": { + "description": "[Output Only] The role this project has in a shared VPC configuration.\nCurrently, only projects with the host role, which is specified by the\nvalue HOST, are differentiated.", + "enum": [ + "HOST", + "UNSPECIFIED_XPN_PROJECT_STATUS" + ], + "enumDescriptions": [ "", "" ], @@ -60241,346 +86616,257 @@ }, "type": "object" }, - "NetworksRemovePeeringRequest": { - "id": "NetworksRemovePeeringRequest", + "ProjectsDisableXpnResourceRequest": { + "id": "ProjectsDisableXpnResourceRequest", "properties": { - "name": { - "description": "Name of the peering, which should conform to RFC1035.", - "type": "string" + "xpnResource": { + "$ref": "XpnResourceId", + "description": "Service resource (a.k.a service project) ID." } }, "type": "object" }, - "NetworksUpdatePeeringRequest": { - "id": "NetworksUpdatePeeringRequest", + "ProjectsEnableXpnResourceRequest": { + "id": "ProjectsEnableXpnResourceRequest", "properties": { - "networkPeering": { - "$ref": "NetworkPeering" + "xpnResource": { + "$ref": "XpnResourceId", + "description": "Service resource (a.k.a service project) ID." } }, "type": "object" }, - "NodeGroup": { - "description": "Represents a sole-tenant Node Group resource. A sole-tenant node is a physical server that is dedicated to hosting VM instances only for your specific project. Use sole-tenant nodes to keep your instances physically separated from instances in other projects, or to group your instances together on the same host hardware. For more information, read Sole-tenant nodes.", - "id": "NodeGroup", + "ProjectsGetXpnResources": { + "id": "ProjectsGetXpnResources", "properties": { - "autoscalingPolicy": { - "$ref": "NodeGroupAutoscalingPolicy", - "description": "Specifies how autoscaling should behave." - }, - "creationTimestamp": { - "description": "[Output Only] Creation timestamp in RFC3339 text format.", - "type": "string" - }, - "description": { - "description": "An optional description of this resource. Provide this property when you create the resource.", - "type": "string" - }, - "fingerprint": { - "format": "byte", + "kind": { + "default": "compute#projectsGetXpnResources", + "description": "Output only. [Output Only] Type of resource. Alwayscompute#projectsGetXpnResources for lists of service resources\n(a.k.a service projects)", + "readOnly": true, "type": "string" }, - "id": { - "description": "[Output Only] The unique identifier for the resource. This identifier is defined by the server.", - "format": "uint64", + "nextPageToken": { + "description": "Output only. [Output Only] This token allows you to get the next page of results for\nlist requests. If the number of results is larger thanmaxResults, use the nextPageToken as a value for\nthe query parameter pageToken in the next list request.\nSubsequent list requests will have their own nextPageToken to\ncontinue paging through the results.", + "readOnly": true, "type": "string" }, - "kind": { - "default": "compute#nodeGroup", - "description": "[Output Only] The type of the resource. Always compute#nodeGroup for node group.", + "resources": { + "description": "Service resources (a.k.a service projects) attached to this project as\ntheir shared VPC host.", + "items": { + "$ref": "XpnResourceId" + }, + "type": "array" + } + }, + "type": "object" + }, + "ProjectsListXpnHostsRequest": { + "id": "ProjectsListXpnHostsRequest", + "properties": { + "organization": { + "description": "Optional organization ID managed by Cloud Resource Manager, for which to\nlist shared VPC host projects. If not specified, the organization will be\ninferred from the project.", "type": "string" - }, - "locationHint": { - "description": "An opaque location hint used to place the Node close to other resources. This field is for use by internal tools that use the public API. The location hint here on the NodeGroup overrides any location_hint present in the NodeTemplate.", + } + }, + "type": "object" + }, + "ProjectsSetCloudArmorTierRequest": { + "id": "ProjectsSetCloudArmorTierRequest", + "properties": { + "cloudArmorTier": { + "description": "Managed protection tier to be set.", + "enum": [ + "CA_ENTERPRISE_ANNUAL", + "CA_ENTERPRISE_PAYGO", + "CA_STANDARD" + ], + "enumDescriptions": [ + "Enterprise tier protection billed annually.", + "Enterprise tier protection billed monthly.", + "Standard protection." + ], "type": "string" - }, - "maintenanceInterval": { - "description": "Specifies the frequency of planned maintenance events. The accepted values are: `AS_NEEDED` and `RECURRENT`.", + } + }, + "type": "object" + }, + "ProjectsSetDefaultNetworkTierRequest": { + "id": "ProjectsSetDefaultNetworkTierRequest", + "properties": { + "networkTier": { + "description": "Default network tier to be set.", "enum": [ - "AS_NEEDED", - "RECURRENT" + "FIXED_STANDARD", + "PREMIUM", + "STANDARD", + "STANDARD_OVERRIDES_FIXED_STANDARD" ], "enumDescriptions": [ - "VMs are eligible to receive infrastructure and hypervisor updates as they become available. This may result in more maintenance operations (live migrations or terminations) for the VM than the PERIODIC and RECURRENT options.", - "VMs receive infrastructure and hypervisor updates on a periodic basis, minimizing the number of maintenance operations (live migrations or terminations) on an individual VM. This may mean a VM will take longer to receive an update than if it was configured for AS_NEEDED. Security updates will still be applied as soon as they are available. RECURRENT is used for GEN3 and Slice of Hardware VMs." + "Public internet quality with fixed bandwidth.", + "High quality, Google-grade network tier, support for all networking\nproducts.", + "Public internet quality, only limited support for other networking\nproducts.", + "(Output only) Temporary tier for FIXED_STANDARD when fixed standard tier\nis expired or not configured." ], "type": "string" - }, - "maintenancePolicy": { - "description": "Specifies how to handle instances when a node in the group undergoes maintenance. Set to one of: DEFAULT, RESTART_IN_PLACE, or MIGRATE_WITHIN_NODE_GROUP. The default value is DEFAULT. For more information, see Maintenance policies.", + } + }, + "type": "object" + }, + "PublicAdvertisedPrefix": { + "description": "A public advertised prefix represents an aggregated IP prefix or netblock\nwhich customers bring to cloud. The IP prefix is a single unit of route\nadvertisement and is announced globally to the internet.", + "id": "PublicAdvertisedPrefix", + "properties": { + "byoipApiVersion": { + "description": "Output only. [Output Only] The version of BYOIP API.", "enum": [ - "DEFAULT", - "MAINTENANCE_POLICY_UNSPECIFIED", - "MIGRATE_WITHIN_NODE_GROUP", - "RESTART_IN_PLACE" + "V1", + "V2" ], "enumDescriptions": [ - "Allow the node and corresponding instances to retain default maintenance behavior.", - "", - "When maintenance must be done on a node, the instances on that node will be moved to other nodes in the group. Instances with onHostMaintenance = MIGRATE will live migrate to their destinations while instances with onHostMaintenance = TERMINATE will terminate and then restart on their destination nodes if automaticRestart = true.", - "Instances in this group will restart on the same node when maintenance has completed. Instances must have onHostMaintenance = TERMINATE, and they will only restart if automaticRestart = true." + "This public advertised prefix can be used to create both regional and\nglobal public delegated prefixes. It usually takes 4 weeks to create or\ndelete a public delegated prefix. The BGP status cannot be changed.", + "This public advertised prefix can only be used to create regional public\ndelegated prefixes. Public delegated prefix creation and deletion takes\nminutes and the BGP status can be modified." ], + "readOnly": true, "type": "string" }, - "maintenanceWindow": { - "$ref": "NodeGroupMaintenanceWindow" - }, - "name": { - "description": "The name of the resource, provided by the client when initially creating the resource. The resource 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.", + "creationTimestamp": { + "description": "Output only. [Output Only] Creation timestamp inRFC3339\ntext format.", + "readOnly": true, "type": "string" }, - "nodeTemplate": { - "description": "URL of the node template to create the node group from.", + "description": { + "description": "An optional description of this resource. Provide this property when you\ncreate the resource.", "type": "string" }, - "selfLink": { - "description": "[Output Only] Server-defined URL for the resource.", + "dnsVerificationIp": { + "description": "The address to be used for reverse DNS verification.", "type": "string" }, - "shareSettings": { - "$ref": "ShareSettings", - "description": "Share-settings for the node group" - }, - "size": { - "description": "[Output Only] The total number of nodes in the node group.", - "format": "int32", - "type": "integer" + "fingerprint": { + "description": "Fingerprint of this resource. A hash of the contents stored in this object.\nThis field is used in optimistic locking. This field will be ignored when\ninserting a new PublicAdvertisedPrefix. An up-to-date\nfingerprint must be provided in order to update thePublicAdvertisedPrefix, otherwise the request will fail with\nerror 412 conditionNotMet.\n\nTo see the latest fingerprint, make a get() request to\nretrieve a PublicAdvertisedPrefix.", + "format": "byte", + "type": "string" }, - "status": { - "enum": [ - "CREATING", - "DELETING", - "INVALID", - "READY" - ], - "enumDescriptions": [ - "", - "", - "", - "" - ], + "id": { + "description": "Output only. [Output Only] The unique identifier for the resource type. The server\ngenerates this identifier.", + "format": "uint64", + "readOnly": true, "type": "string" }, - "zone": { - "description": "[Output Only] The name of the zone where the node group resides, such as us-central1-a.", + "ipCidrRange": { + "description": "The address range, in CIDR format, represented by this public advertised\nprefix.", "type": "string" - } - }, - "type": "object" - }, - "NodeGroupAggregatedList": { - "id": "NodeGroupAggregatedList", - "properties": { - "id": { - "description": "[Output Only] Unique identifier for the resource; defined by the server.", + }, + "ipv6AccessType": { + "description": "The internet access type for IPv6 Public Advertised Prefixes.", + "enum": [ + "EXTERNAL", + "INTERNAL" + ], + "enumDescriptions": [ + "Default IPv6 access type. The prefix will be announced to the internet.\nAll children Public Delegated Prefixes will have IPv6 access type as\nEXTERNAL.", + "The prefix will not be announced to the internet. Prefix will be used\nprivately within Cloud. All children Public Delegated Prefixes\nwill have IPv6 access type as INTERNAL." + ], "type": "string" }, - "items": { - "additionalProperties": { - "$ref": "NodeGroupsScopedList", - "description": "[Output Only] Name of the scope containing this set of node groups." - }, - "description": "A list of NodeGroupsScopedList resources.", - "type": "object" - }, "kind": { - "default": "compute#nodeGroupAggregatedList", - "description": "[Output Only] Type of resource.Always compute#nodeGroupAggregatedList for aggregated lists of node groups.", + "default": "compute#publicAdvertisedPrefix", + "description": "Output only. [Output Only] Type of the resource. Alwayscompute#publicAdvertisedPrefix for public advertised prefixes.", + "readOnly": true, "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.", + "name": { + "annotations": { + "required": [ + "compute.publicAdvertisedPrefixes.insert" + ] + }, + "description": "Name of the resource. Provided by the client when the resource is created.\nThe name must be 1-63 characters long, and comply withRFC1035.\nSpecifically, the name must be 1-63 characters long and match the regular\nexpression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first\ncharacter must be a lowercase letter, and all following characters must\nbe a dash, lowercase letter, or digit, except the last character, which\ncannot be a dash.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", "type": "string" }, - "selfLink": { - "description": "[Output Only] Server-defined URL for this resource.", + "pdpScope": { + "description": "Specifies how child public delegated prefix will be scoped. It could\nbe one of following values:\n \n \n - `REGIONAL`: The public delegated prefix is regional only. The\n provisioning will take a few minutes.\n - `GLOBAL`: The public delegated prefix is global only. The\n provisioning will take ~4 weeks.\n - `GLOBAL_AND_REGIONAL` [output only]: The public delegated prefixes is\n BYOIP V1 legacy prefix. This is output only value and no longer\n supported in BYOIP V2.", + "enum": [ + "GLOBAL", + "GLOBAL_AND_REGIONAL", + "REGIONAL" + ], + "enumDescriptions": [ + "The public delegated prefix is global only. The provisioning will take ~4\nweeks.", + "The public delegated prefixes is BYOIP V1 legacy prefix. This is output\nonly value and no longer supported in BYOIP V2.", + "The public delegated prefix is regional only. The provisioning will take\na few minutes." + ], "type": "string" }, - "unreachables": { - "description": "[Output Only] Unreachable resources.", + "publicDelegatedPrefixs": { + "description": "Output only. [Output Only] The list of public delegated prefixes that exist for this\npublic advertised prefix.", "items": { - "type": "string" + "$ref": "PublicAdvertisedPrefixPublicDelegatedPrefix" }, + "readOnly": true, "type": "array" }, - "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", - "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", - "LARGE_DEPLOYMENT_WARNING", - "LIST_OVERHEAD_QUOTA_EXCEED", - "MISSING_TYPE_DEPENDENCY", - "NEXT_HOP_ADDRESS_NOT_ASSIGNED", - "NEXT_HOP_CANNOT_IP_FORWARD", - "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", - "NEXT_HOP_INSTANCE_NOT_FOUND", - "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", - "NEXT_HOP_NOT_RUNNING", - "NOT_CRITICAL_ERROR", - "NO_RESULTS_ON_PAGE", - "PARTIAL_SUCCESS", - "REQUIRED_TOS_AGREEMENT", - "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", - "RESOURCE_NOT_DELETED", - "SCHEMA_VALIDATION_IGNORED", - "SINGLE_INSTANCE_PROPERTY_TEMPLATE", - "UNDECLARED_PROPERTIES", - "UNREACHABLE" - ], - "enumDeprecated": [ - false, - false, - false, - false, - false, - false, - true, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false - ], - "enumDescriptions": [ - "Warning about failed cleanup of transient changes made by a failed operation.", - "A link to a deprecated resource was created.", - "When deploying and at least one of the resources has a type marked as deprecated", - "The user created a boot disk that is larger than image size.", - "When deploying and at least one of the resources has a type marked as experimental", - "Warning that is present in an external api call", - "Warning that value of a field has been overridden. Deprecated unused field.", - "The operation involved use of an injected kernel, which is deprecated.", - "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", - "When deploying a deployment with a exceedingly large number of resources", - "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", - "A resource depends on a missing type", - "The route's nextHopIp address is not assigned to an instance on the network.", - "The route's next hop instance cannot ip forward.", - "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", - "The route's nextHopInstance URL refers to an instance that does not exist.", - "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", - "The route's next hop instance does not have a status of RUNNING.", - "Error which is not critical. We decided to continue the process despite the mentioned error.", - "No results are present on a particular list page.", - "Success is reported, but some results may be missing due to errors", - "The user attempted to use a resource that requires a TOS they have not accepted.", - "Warning that a resource is in use.", - "One or more of the resources set to auto-delete could not be deleted because they were in use.", - "When a resource schema validation is ignored.", - "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", - "When undeclared properties in the schema are present", - "A given scope cannot be reached." - ], - "type": "string" - }, - "data": { - "description": "[Output Only] Metadata about this warning in key: value format. For example: \"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" - }, - "NodeGroupAutoscalingPolicy": { - "id": "NodeGroupAutoscalingPolicy", - "properties": { - "maxNodes": { - "description": "The maximum number of nodes that the group should have. Must be set if autoscaling is enabled. Maximum value allowed is 100.", - "format": "int32", - "type": "integer" + "selfLink": { + "description": "Output only. [Output Only] Server-defined URL for the resource.", + "readOnly": true, + "type": "string" }, - "minNodes": { - "description": "The minimum number of nodes that the group should have.", - "format": "int32", - "type": "integer" + "sharedSecret": { + "description": "[Output Only] The shared secret to be used for reverse DNS verification.", + "type": "string" }, - "mode": { - "description": "The autoscaling mode. Set to one of: ON, OFF, or ONLY_SCALE_OUT. For more information, see Autoscaler modes.", + "status": { + "description": "The status of the public advertised prefix. Possible values include:\n \n \n - `INITIAL`: RPKI validation is complete.\n - `PTR_CONFIGURED`: User has configured the PTR.\n - `VALIDATED`: Reverse DNS lookup is successful.\n - `REVERSE_DNS_LOOKUP_FAILED`: Reverse DNS lookup failed.\n - `PREFIX_CONFIGURATION_IN_PROGRESS`: The prefix is being\n configured.\n - `PREFIX_CONFIGURATION_COMPLETE`: The prefix is fully configured.\n - `PREFIX_REMOVAL_IN_PROGRESS`: The prefix is being removed.", "enum": [ - "MODE_UNSPECIFIED", - "OFF", - "ON", - "ONLY_SCALE_OUT" + "ANNOUNCED_TO_INTERNET", + "INITIAL", + "PREFIX_CONFIGURATION_COMPLETE", + "PREFIX_CONFIGURATION_IN_PROGRESS", + "PREFIX_REMOVAL_IN_PROGRESS", + "PTR_CONFIGURED", + "READY_TO_ANNOUNCE", + "REVERSE_DNS_LOOKUP_FAILED", + "VALIDATED" ], "enumDescriptions": [ - "", - "Autoscaling is disabled.", - "Autocaling is fully enabled.", - "Autoscaling will only scale out and will not remove nodes." + "The prefix is announced to Internet.", + "RPKI validation is complete.", + "The prefix is fully configured.", + "The prefix is being configured.", + "The prefix is being removed.", + "User has configured the PTR.", + "The prefix is currently withdrawn but ready to be announced.", + "Reverse DNS lookup failed.", + "Reverse DNS lookup is successful." ], "type": "string" } }, "type": "object" }, - "NodeGroupList": { - "description": "Contains a list of nodeGroups.", - "id": "NodeGroupList", + "PublicAdvertisedPrefixList": { + "id": "PublicAdvertisedPrefixList", "properties": { "id": { "description": "[Output Only] Unique identifier for the resource; defined by the server.", "type": "string" }, "items": { - "description": "A list of NodeGroup resources.", + "description": "A list of PublicAdvertisedPrefix resources.", "items": { - "$ref": "NodeGroup" + "$ref": "PublicAdvertisedPrefix" }, "type": "array" }, "kind": { - "default": "compute#nodeGroupList", - "description": "[Output Only] Type of resource.Always compute#nodeGroupList for lists of node groups.", + "default": "compute#publicAdvertisedPrefixList", + "description": "Output only. [Output Only] Type of the resource. Alwayscompute#publicAdvertisedPrefix for public advertised prefixes.", + "readOnly": true, "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.", + "description": "[Output Only] This token allows you to get the next page of results for\nlist requests. If the number of results is larger thanmaxResults, use the nextPageToken as a value for\nthe query parameter pageToken in the next list request.\nSubsequent list requests will have their own nextPageToken to\ncontinue paging through the results.", "type": "string" }, "selfLink": { @@ -60591,7 +86877,7 @@ "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.", + "description": "[Output Only] A warning code, if applicable. For example, Compute\nEngine returns NO_RESULTS_ON_PAGE if there\nare no results in the response.", "enum": [ "CLEANUP_FAILED", "DEPRECATED_RESOURCE_USED", @@ -60614,6 +86900,7 @@ "NOT_CRITICAL_ERROR", "NO_RESULTS_ON_PAGE", "PARTIAL_SUCCESS", + "QUOTA_INFO_UNAVAILABLE", "REQUIRED_TOS_AGREEMENT", "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", "RESOURCE_NOT_DELETED", @@ -60650,46 +86937,48 @@ false, false, false, + false, false ], "enumDescriptions": [ - "Warning about failed cleanup of transient changes made by a failed operation.", + "Warning about failed cleanup of transient changes made by a failed\noperation.", "A link to a deprecated resource was created.", - "When deploying and at least one of the resources has a type marked as deprecated", + "When deploying and at least one of the resources has a type marked as\ndeprecated", "The user created a boot disk that is larger than image size.", - "When deploying and at least one of the resources has a type marked as experimental", + "When deploying and at least one of the resources has a type marked as\nexperimental", "Warning that is present in an external api call", - "Warning that value of a field has been overridden. Deprecated unused field.", + "Warning that value of a field has been overridden.\nDeprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", - "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is\nnot of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", - "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", + "Resource can't be retrieved due to list overhead quota exceed\nwhich captures the amount of resources filtered out by\nuser-defined list filter.", "A resource depends on a missing type", - "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's nextHopIp address is not assigned to an instance on the\nnetwork.", "The route's next hop instance cannot ip forward.", - "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not have an\nipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", - "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that is not on the\nsame network as the route.", "The route's next hop instance does not have a status of RUNNING.", - "Error which is not critical. We decided to continue the process despite the mentioned error.", + "Error which is not critical. We decided to continue the process despite\nthe mentioned error.", "No results are present on a particular list page.", "Success is reported, but some results may be missing due to errors", - "The user attempted to use a resource that requires a TOS they have not accepted.", + "Quota information is not available to client requests (e.g:\nregions.list).", + "The user attempted to use a resource that requires a TOS they have not\naccepted.", "Warning that a resource is in use.", - "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "One or more of the resources set to auto-delete could not be deleted\nbecause they were in use.", "When a resource schema validation is ignored.", - "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", + "Instance template used in instance group manager is valid as such, but\nits application does not make a lot of sense, because it allows only\nsingle instance in instance group.", "When undeclared properties in the schema are present", "A given scope cannot be reached." ], "type": "string" }, "data": { - "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", + "description": "[Output Only] Metadata about this warning in key:\nvalue format. For example:\n\n\"data\": [\n {\n \"key\": \"scope\",\n \"value\": \"zones/us-east1-d\"\n }", "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).", + "description": "[Output Only] A key that provides more detail on the warning being\nreturned. For example, for warnings where there are no results in a list\nrequest for a particular zone, this key might be scope and\nthe key value might be the zone name. Other examples might be a key\nindicating a deprecated resource and a suggested replacement, or a\nwarning about invalid network settings (for example, if an instance\nattempts to perform IP forwarding but is not enabled for IP forwarding).", "type": "string" }, "value": { @@ -60711,174 +87000,221 @@ }, "type": "object" }, - "NodeGroupMaintenanceWindow": { - "description": "Time window specified for daily maintenance operations. GCE's internal maintenance will be performed within this window.", - "id": "NodeGroupMaintenanceWindow", + "PublicAdvertisedPrefixPublicDelegatedPrefix": { + "description": "Represents a CIDR range which can be used to assign addresses.", + "id": "PublicAdvertisedPrefixPublicDelegatedPrefix", "properties": { - "maintenanceDuration": { - "$ref": "Duration", - "description": "[Output only] A predetermined duration for the window, automatically chosen to be the smallest possible in the given scenario." + "ipRange": { + "description": "The IP address range of the public delegated prefix", + "type": "string" }, - "startTime": { - "description": "Start time of the window. This must be in UTC format that resolves to one of 00:00, 04:00, 08:00, 12:00, 16:00, or 20:00. For example, both 13:00-5 and 08:00 are valid.", + "name": { + "description": "The name of the public delegated prefix", + "type": "string" + }, + "project": { + "description": "The project number of the public delegated prefix", + "type": "string" + }, + "region": { + "description": "The region of the public delegated prefix if it is regional. If absent,\nthe prefix is global.", + "type": "string" + }, + "status": { + "description": "The status of the public delegated prefix. Possible values are:\n INITIALIZING: The public delegated prefix is being initialized and\n addresses cannot be created yet.\n ANNOUNCED: The public delegated prefix is active.", "type": "string" } }, "type": "object" }, - "NodeGroupNode": { - "id": "NodeGroupNode", + "PublicDelegatedPrefix": { + "description": "A PublicDelegatedPrefix resource represents an IP block within a\nPublicAdvertisedPrefix that is configured within a single cloud scope\n(global or region). IPs in the block can be allocated to resources within\nthat scope. Public delegated prefixes may be further broken up into\nsmaller IP blocks in the same scope as the parent block.", + "id": "PublicDelegatedPrefix", "properties": { - "accelerators": { - "description": "Accelerators for this node.", - "items": { - "$ref": "AcceleratorConfig" - }, - "type": "array" - }, - "consumedResources": { - "$ref": "InstanceConsumptionInfo", - "description": "Node resources that are reserved by all instances." + "allocatablePrefixLength": { + "description": "The allocatable prefix length supported by this public delegated prefix.\nThis field is optional and cannot be set for prefixes in DELEGATION mode.\nIt cannot be set for IPv4 prefixes either, and it always defaults to 32.", + "format": "int32", + "type": "integer" }, - "cpuOvercommitType": { - "description": "CPU overcommit.", + "byoipApiVersion": { + "description": "Output only. [Output Only] The version of BYOIP API.", "enum": [ - "CPU_OVERCOMMIT_TYPE_UNSPECIFIED", - "ENABLED", - "NONE" + "V1", + "V2" ], "enumDescriptions": [ - "", - "", - "" + "This public delegated prefix usually takes 4 weeks to delete, and the BGP\nstatus cannot be changed. Announce and Withdraw APIs can not be used on\nthis prefix.", + "This public delegated prefix takes minutes to delete. Announce and\nWithdraw APIs can be used on this prefix to change the BGP status." ], + "readOnly": true, "type": "string" }, - "disks": { - "description": "Local disk configurations.", - "items": { - "$ref": "LocalDisk" - }, - "type": "array" + "creationTimestamp": { + "description": "Output only. [Output Only] Creation timestamp inRFC3339\ntext format.", + "readOnly": true, + "type": "string" }, - "instanceConsumptionData": { - "description": "Instance data that shows consumed resources on the node.", - "items": { - "$ref": "InstanceConsumptionData" - }, - "type": "array" + "description": { + "description": "An optional description of this resource. Provide this property when you\ncreate the resource.", + "type": "string" }, - "instances": { - "description": "Instances scheduled on this node.", - "items": { - "type": "string" - }, - "type": "array" + "enableEnhancedIpv4Allocation": { + "description": "Output only. [Output Only] Whether this PDP supports enhanced IPv4 allocations.\nApplicable for IPv4 PDPs only.", + "readOnly": true, + "type": "boolean" }, - "name": { - "description": "The name of the node.", + "fingerprint": { + "description": "Fingerprint of this resource. A hash of the contents stored in this object.\nThis field is used in optimistic locking. This field will be ignored when\ninserting a new PublicDelegatedPrefix. An up-to-date\nfingerprint must be provided in order to update thePublicDelegatedPrefix, otherwise the request will fail with\nerror 412 conditionNotMet.\n\nTo see the latest fingerprint, make a get() request to\nretrieve a PublicDelegatedPrefix.", + "format": "byte", "type": "string" }, - "nodeType": { - "description": "The type of this node.", + "id": { + "description": "Output only. [Output Only] The unique identifier for the resource type. The server\ngenerates this identifier.", + "format": "uint64", + "readOnly": true, "type": "string" }, - "satisfiesPzs": { - "description": "[Output Only] Reserved for future use.", - "type": "boolean" + "ipCidrRange": { + "description": "The IP address range, in CIDR format, represented by this public\ndelegated prefix.", + "type": "string" }, - "serverBinding": { - "$ref": "ServerBinding", - "description": "Binding properties for the physical server." + "ipv6AccessType": { + "description": "Output only. [Output Only] The internet access type for IPv6 Public Delegated Prefixes.\nInherited from parent prefix.", + "enum": [ + "EXTERNAL", + "INTERNAL" + ], + "enumDescriptions": [ + "The parent public advertised prefix will be announced to the internet.\nAll children public delegated prefixes will have IPv6 access type as\nEXTERNAL.", + "The parent public advertised prefix will not be announced to the\ninternet. Prefix will be used privately within Cloud. All children\npublic delegated prefixes will have IPv6 access type as INTERNAL." + ], + "readOnly": true, + "type": "string" }, - "serverId": { - "description": "Server ID associated with this node.", + "isLiveMigration": { + "description": "If true, the prefix will be live migrated.", + "type": "boolean" + }, + "kind": { + "default": "compute#publicDelegatedPrefix", + "description": "Output only. [Output Only] Type of the resource. Alwayscompute#publicDelegatedPrefix for public delegated prefixes.", + "readOnly": true, "type": "string" }, - "status": { + "mode": { + "description": "The public delegated prefix mode for IPv6 only.", "enum": [ - "CREATING", - "DELETING", - "INVALID", - "READY", - "REPAIRING" + "DELEGATION", + "EXTERNAL_IPV6_FORWARDING_RULE_CREATION", + "EXTERNAL_IPV6_SUBNETWORK_CREATION", + "INTERNAL_IPV6_SUBNETWORK_CREATION" ], "enumDescriptions": [ - "", - "", - "", - "", - "" + "The public delegated prefix is used for further sub-delegation only. Such\nprefixes cannot set allocatablePrefixLength.", + "The public delegated prefix is used for creating forwarding rules only.\nSuch prefixes cannot set publicDelegatedSubPrefixes. Parent public\ndelegated prefix must have IPv6 access type as EXTERNAL.", + "The public delegated prefix is used for creating dual-mode subnetworks\nonly. Such prefixes cannot set publicDelegatedSubPrefixes. Parent public\ndelegated prefix must have IPv6 access type as EXTERNAL.", + "The public delegated prefix is used for creating dual stack or IPv6-only\nsubnetwork with internal access only. Such prefixes cannot set\npublicDelegatedSubPrefixes and allocatablePrefixLength. Parent public\ndelegated prefix must have IPv6 access type as INTERNAL." ], "type": "string" }, - "totalResources": { - "$ref": "InstanceConsumptionInfo", - "description": "Total amount of available resources on the node." + "name": { + "annotations": { + "required": [ + "compute.publicDelegatedPrefixes.insert" + ] + }, + "description": "Name of the resource. Provided by the client when the resource is created.\nThe name must be 1-63 characters long, and comply withRFC1035.\nSpecifically, the name must be 1-63 characters long and match the regular\nexpression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first\ncharacter must be a lowercase letter, and all following characters must\nbe a dash, lowercase letter, or digit, except the last character, which\ncannot be a dash.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "type": "string" }, - "upcomingMaintenance": { - "$ref": "UpcomingMaintenance", - "description": "[Output Only] The information about an upcoming maintenance event." - } - }, - "type": "object" - }, - "NodeGroupsAddNodesRequest": { - "id": "NodeGroupsAddNodesRequest", - "properties": { - "additionalNodeCount": { - "description": "Count of additional nodes to be added to the node group.", - "format": "int32", - "type": "integer" - } - }, - "type": "object" - }, - "NodeGroupsDeleteNodesRequest": { - "id": "NodeGroupsDeleteNodesRequest", - "properties": { - "nodes": { - "description": "Names of the nodes to delete.", + "parentPrefix": { + "description": "The URL of parent prefix. Either PublicAdvertisedPrefix or\nPublicDelegatedPrefix.", + "type": "string" + }, + "publicDelegatedSubPrefixs": { + "description": "The list of sub public delegated prefixes that exist for this public\ndelegated prefix.", "items": { - "type": "string" + "$ref": "PublicDelegatedPrefixPublicDelegatedSubPrefix" }, "type": "array" + }, + "region": { + "description": "Output only. [Output Only] URL of the region where the public delegated prefix resides.\nThis field applies only to the region resource. You must specify this\nfield as part of the HTTP request URL. It is not settable as a field in\nthe request body.", + "readOnly": true, + "type": "string" + }, + "selfLink": { + "description": "Output only. [Output Only] Server-defined URL for the resource.", + "readOnly": true, + "type": "string" + }, + "status": { + "description": "[Output Only] The status of the public delegated prefix, which can be one\nof following values:\n \n \n - `INITIALIZING` The public delegated prefix is being initialized and\n addresses cannot be created yet.\n - `READY_TO_ANNOUNCE` The public delegated prefix is a live migration\n prefix and is active.\n - `ANNOUNCED` The public delegated prefix is announced and ready to\n use.\n - `DELETING` The public delegated prefix is being deprovsioned.\n - `ACTIVE` The public delegated prefix is ready to use.", + "enum": [ + "ACTIVE", + "ANNOUNCED", + "ANNOUNCED_TO_GOOGLE", + "ANNOUNCED_TO_INTERNET", + "DELETING", + "INITIALIZING", + "READY_TO_ANNOUNCE" + ], + "enumDescriptions": [ + "The public delegated prefix is ready to use.", + "The public delegated prefix is announced and ready to use.", + "The prefix is announced within Google network.", + "The prefix is announced to Internet and within Google.", + "The public delegated prefix is being deprovsioned.", + "The public delegated prefix is being initialized and addresses cannot be\ncreated yet.", + "The public delegated prefix is currently withdrawn but ready to be\nannounced." + ], + "type": "string" } }, "type": "object" }, - "NodeGroupsListNodes": { - "id": "NodeGroupsListNodes", + "PublicDelegatedPrefixAggregatedList": { + "id": "PublicDelegatedPrefixAggregatedList", "properties": { "id": { "description": "[Output Only] Unique identifier for the resource; defined by the server.", "type": "string" }, "items": { - "description": "A list of Node resources.", - "items": { - "$ref": "NodeGroupNode" + "additionalProperties": { + "$ref": "PublicDelegatedPrefixesScopedList", + "description": "[Output Only] Name of the scope containing this set of\nPublicDelegatedPrefixes." }, - "type": "array" + "description": "A list of PublicDelegatedPrefixesScopedList resources.", + "type": "object" }, "kind": { - "default": "compute#nodeGroupsListNodes", - "description": "[Output Only] The resource type, which is always compute.nodeGroupsListNodes for the list of nodes in the specified node group.", + "default": "compute#publicDelegatedPrefixAggregatedList", + "description": "Output only. [Output Only] Type of the resource. Alwayscompute#publicDelegatedPrefixAggregatedList for aggregated\nlists of public delegated prefixes.", + "readOnly": true, "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.", + "description": "[Output Only] This token allows you to get the next page of results for\nlist requests. If the number of results is larger thanmaxResults, use the nextPageToken as a value for\nthe query parameter pageToken in the next list request.\nSubsequent list requests will have their own nextPageToken to\ncontinue paging through the results.", "type": "string" }, "selfLink": { "description": "[Output Only] Server-defined URL for this resource.", "type": "string" }, + "unreachables": { + "description": "Output only. [Output Only] Unreachable resources.", + "items": { + "type": "string" + }, + "readOnly": true, + "type": "array" + }, "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.", + "description": "[Output Only] A warning code, if applicable. For example, Compute\nEngine returns NO_RESULTS_ON_PAGE if there\nare no results in the response.", "enum": [ "CLEANUP_FAILED", "DEPRECATED_RESOURCE_USED", @@ -60901,6 +87237,7 @@ "NOT_CRITICAL_ERROR", "NO_RESULTS_ON_PAGE", "PARTIAL_SUCCESS", + "QUOTA_INFO_UNAVAILABLE", "REQUIRED_TOS_AGREEMENT", "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", "RESOURCE_NOT_DELETED", @@ -60937,46 +87274,48 @@ false, false, false, + false, false ], "enumDescriptions": [ - "Warning about failed cleanup of transient changes made by a failed operation.", + "Warning about failed cleanup of transient changes made by a failed\noperation.", "A link to a deprecated resource was created.", - "When deploying and at least one of the resources has a type marked as deprecated", + "When deploying and at least one of the resources has a type marked as\ndeprecated", "The user created a boot disk that is larger than image size.", - "When deploying and at least one of the resources has a type marked as experimental", + "When deploying and at least one of the resources has a type marked as\nexperimental", "Warning that is present in an external api call", - "Warning that value of a field has been overridden. Deprecated unused field.", + "Warning that value of a field has been overridden.\nDeprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", - "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is\nnot of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", - "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", + "Resource can't be retrieved due to list overhead quota exceed\nwhich captures the amount of resources filtered out by\nuser-defined list filter.", "A resource depends on a missing type", - "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's nextHopIp address is not assigned to an instance on the\nnetwork.", "The route's next hop instance cannot ip forward.", - "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not have an\nipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", - "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that is not on the\nsame network as the route.", "The route's next hop instance does not have a status of RUNNING.", - "Error which is not critical. We decided to continue the process despite the mentioned error.", + "Error which is not critical. We decided to continue the process despite\nthe mentioned error.", "No results are present on a particular list page.", "Success is reported, but some results may be missing due to errors", - "The user attempted to use a resource that requires a TOS they have not accepted.", + "Quota information is not available to client requests (e.g:\nregions.list).", + "The user attempted to use a resource that requires a TOS they have not\naccepted.", "Warning that a resource is in use.", - "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "One or more of the resources set to auto-delete could not be deleted\nbecause they were in use.", "When a resource schema validation is ignored.", - "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", + "Instance template used in instance group manager is valid as such, but\nits application does not make a lot of sense, because it allows only\nsingle instance in instance group.", "When undeclared properties in the schema are present", "A given scope cannot be reached." ], "type": "string" }, "data": { - "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", + "description": "[Output Only] Metadata about this warning in key:\nvalue format. For example:\n\n\"data\": [\n {\n \"key\": \"scope\",\n \"value\": \"zones/us-east1-d\"\n }", "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).", + "description": "[Output Only] A key that provides more detail on the warning being\nreturned. For example, for warnings where there are no results in a list\nrequest for a particular zone, this key might be scope and\nthe key value might be the zone name. Other examples might be a key\nindicating a deprecated resource and a suggested replacement, or a\nwarning about invalid network settings (for example, if an instance\nattempts to perform IP forwarding but is not enabled for IP forwarding).", "type": "string" }, "value": { @@ -60998,38 +87337,39 @@ }, "type": "object" }, - "NodeGroupsPerformMaintenanceRequest": { - "id": "NodeGroupsPerformMaintenanceRequest", + "PublicDelegatedPrefixList": { + "id": "PublicDelegatedPrefixList", "properties": { - "nodes": { - "description": "[Required] List of nodes affected by the call.", + "id": { + "description": "[Output Only] Unique identifier for the resource; defined by the server.", + "type": "string" + }, + "items": { + "description": "A list of PublicDelegatedPrefix resources.", "items": { - "type": "string" + "$ref": "PublicDelegatedPrefix" }, "type": "array" }, - "startTime": { - "description": "The start time of the schedule. The timestamp is an RFC3339 string.", + "kind": { + "default": "compute#publicDelegatedPrefixList", + "description": "Output only. [Output Only] Type of the resource. Alwayscompute#publicDelegatedPrefixList for public delegated\nprefixes.", + "readOnly": true, + "type": "string" + }, + "nextPageToken": { + "description": "[Output Only] This token allows you to get the next page of results for\nlist requests. If the number of results is larger thanmaxResults, use the nextPageToken as a value for\nthe query parameter pageToken in the next list request.\nSubsequent list requests will have their own nextPageToken to\ncontinue paging through the results.", + "type": "string" + }, + "selfLink": { + "description": "[Output Only] Server-defined URL for this resource.", "type": "string" - } - }, - "type": "object" - }, - "NodeGroupsScopedList": { - "id": "NodeGroupsScopedList", - "properties": { - "nodeGroups": { - "description": "[Output Only] A list of node groups contained in this scope.", - "items": { - "$ref": "NodeGroup" - }, - "type": "array" }, "warning": { - "description": "[Output Only] An informational warning that appears when the nodeGroup list is empty.", + "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.", + "description": "[Output Only] A warning code, if applicable. For example, Compute\nEngine returns NO_RESULTS_ON_PAGE if there\nare no results in the response.", "enum": [ "CLEANUP_FAILED", "DEPRECATED_RESOURCE_USED", @@ -61052,6 +87392,7 @@ "NOT_CRITICAL_ERROR", "NO_RESULTS_ON_PAGE", "PARTIAL_SUCCESS", + "QUOTA_INFO_UNAVAILABLE", "REQUIRED_TOS_AGREEMENT", "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", "RESOURCE_NOT_DELETED", @@ -61088,46 +87429,48 @@ false, false, false, + false, false ], "enumDescriptions": [ - "Warning about failed cleanup of transient changes made by a failed operation.", + "Warning about failed cleanup of transient changes made by a failed\noperation.", "A link to a deprecated resource was created.", - "When deploying and at least one of the resources has a type marked as deprecated", + "When deploying and at least one of the resources has a type marked as\ndeprecated", "The user created a boot disk that is larger than image size.", - "When deploying and at least one of the resources has a type marked as experimental", + "When deploying and at least one of the resources has a type marked as\nexperimental", "Warning that is present in an external api call", - "Warning that value of a field has been overridden. Deprecated unused field.", + "Warning that value of a field has been overridden.\nDeprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", - "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is\nnot of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", - "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", + "Resource can't be retrieved due to list overhead quota exceed\nwhich captures the amount of resources filtered out by\nuser-defined list filter.", "A resource depends on a missing type", - "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's nextHopIp address is not assigned to an instance on the\nnetwork.", "The route's next hop instance cannot ip forward.", - "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not have an\nipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", - "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that is not on the\nsame network as the route.", "The route's next hop instance does not have a status of RUNNING.", - "Error which is not critical. We decided to continue the process despite the mentioned error.", + "Error which is not critical. We decided to continue the process despite\nthe mentioned error.", "No results are present on a particular list page.", "Success is reported, but some results may be missing due to errors", - "The user attempted to use a resource that requires a TOS they have not accepted.", + "Quota information is not available to client requests (e.g:\nregions.list).", + "The user attempted to use a resource that requires a TOS they have not\naccepted.", "Warning that a resource is in use.", - "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "One or more of the resources set to auto-delete could not be deleted\nbecause they were in use.", "When a resource schema validation is ignored.", - "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", + "Instance template used in instance group manager is valid as such, but\nits application does not make a lot of sense, because it allows only\nsingle instance in instance group.", "When undeclared properties in the schema are present", "A given scope cannot be reached." ], "type": "string" }, "data": { - "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", + "description": "[Output Only] Metadata about this warning in key:\nvalue format. For example:\n\n\"data\": [\n {\n \"key\": \"scope\",\n \"value\": \"zones/us-east1-d\"\n }", "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).", + "description": "[Output Only] A key that provides more detail on the warning being\nreturned. For example, for warnings where there are no results in a list\nrequest for a particular zone, this key might be scope and\nthe key value might be the zone name. Other examples might be a key\nindicating a deprecated resource and a suggested replacement, or a\nwarning about invalid network settings (for example, if an instance\nattempts to perform IP forwarding but is not enabled for IP forwarding).", "type": "string" }, "value": { @@ -61135,185 +87478,119 @@ "type": "string" } }, - "type": "object" - }, - "type": "array" - }, - "message": { - "description": "[Output Only] A human-readable description of the warning code.", - "type": "string" - } - }, - "type": "object" - } - }, - "type": "object" - }, - "NodeGroupsSetNodeTemplateRequest": { - "id": "NodeGroupsSetNodeTemplateRequest", - "properties": { - "nodeTemplate": { - "description": "Full or partial URL of the node template resource to be updated for this node group.", - "type": "string" - } - }, - "type": "object" - }, - "NodeGroupsSimulateMaintenanceEventRequest": { - "id": "NodeGroupsSimulateMaintenanceEventRequest", - "properties": { - "nodes": { - "description": "Names of the nodes to go under maintenance simulation.", - "items": { - "type": "string" - }, - "type": "array" - } - }, - "type": "object" - }, - "NodeTemplate": { - "description": "Represent a sole-tenant Node Template resource. You can use a template to define properties for nodes in a node group. For more information, read Creating node groups and instances.", - "id": "NodeTemplate", - "properties": { - "accelerators": { - "items": { - "$ref": "AcceleratorConfig" - }, - "type": "array" - }, - "cpuOvercommitType": { - "description": "CPU overcommit.", - "enum": [ - "CPU_OVERCOMMIT_TYPE_UNSPECIFIED", - "ENABLED", - "NONE" - ], - "enumDescriptions": [ - "", - "", - "" - ], - "type": "string" + "type": "object" + }, + "type": "array" + }, + "message": { + "description": "[Output Only] A human-readable description of the warning code.", + "type": "string" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "PublicDelegatedPrefixPublicDelegatedSubPrefix": { + "description": "Represents a sub PublicDelegatedPrefix.", + "id": "PublicDelegatedPrefixPublicDelegatedSubPrefix", + "properties": { + "allocatablePrefixLength": { + "description": "The allocatable prefix length supported by this PublicDelegatedSubPrefix.", + "format": "int32", + "type": "integer" }, - "creationTimestamp": { - "description": "[Output Only] Creation timestamp in RFC3339 text format.", + "delegateeProject": { + "description": "Name of the project scoping this PublicDelegatedSubPrefix.", "type": "string" }, "description": { - "description": "An optional description of this resource. Provide this property when you create the resource.", + "description": "An optional description of this resource. Provide this property when you\ncreate the resource.", "type": "string" }, - "disks": { - "items": { - "$ref": "LocalDisk" - }, - "type": "array" - }, - "id": { - "description": "[Output Only] The unique identifier for the resource. This identifier is defined by the server.", - "format": "uint64", - "type": "string" + "enableEnhancedIpv4Allocation": { + "description": "Output only. [Output Only] Whether this PDP supports enhanced IPv4 allocations.\nApplicable for IPv4 PDPs only.", + "readOnly": true, + "type": "boolean" }, - "kind": { - "default": "compute#nodeTemplate", - "description": "[Output Only] The type of the resource. Always compute#nodeTemplate for node templates.", + "ipCidrRange": { + "description": "The IP address range, in CIDR format, represented by this sub public\ndelegated prefix.", "type": "string" }, - "name": { - "description": "The name of the resource, provided by the client when initially creating the resource. The resource 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.", + "ipv6AccessType": { + "description": "Output only. [Output Only] The internet access type for IPv6 Public Delegated Sub\nPrefixes. Inherited from parent prefix.", + "enum": [ + "EXTERNAL", + "INTERNAL" + ], + "enumDescriptions": [ + "The parent public advertised prefix will be announced to the internet.\nAll children public delegated prefixes will have IPv6 access type as\nEXTERNAL.", + "The parent public advertised prefix will not be announced to the\ninternet. Prefix will be used privately within Cloud. All children\npublic delegated prefixes will have IPv6 access type as INTERNAL." + ], + "readOnly": true, "type": "string" }, - "nodeAffinityLabels": { - "additionalProperties": { - "type": "string" - }, - "description": "Labels to use for node affinity, which will be used in instance scheduling.", - "type": "object" + "isAddress": { + "description": "Whether the sub prefix is delegated to create Address resources in the\ndelegatee project.", + "type": "boolean" }, - "nodeType": { - "description": "The node type to use for nodes group that are created from this template.", + "mode": { + "description": "The PublicDelegatedSubPrefix mode for IPv6 only.", + "enum": [ + "DELEGATION", + "EXTERNAL_IPV6_FORWARDING_RULE_CREATION", + "EXTERNAL_IPV6_SUBNETWORK_CREATION", + "INTERNAL_IPV6_SUBNETWORK_CREATION" + ], + "enumDescriptions": [ + "The public delegated prefix is used for further sub-delegation only. Such\nprefixes cannot set allocatablePrefixLength.", + "The public delegated prefix is used for creating forwarding rules only.\nSuch prefixes cannot set publicDelegatedSubPrefixes. Parent public\ndelegated prefix must have IPv6 access type as EXTERNAL.", + "The public delegated prefix is used for creating dual-mode subnetworks\nonly. Such prefixes cannot set publicDelegatedSubPrefixes. Parent public\ndelegated prefix must have IPv6 access type as EXTERNAL.", + "The public delegated prefix is used for creating dual stack or IPv6-only\nsubnetwork with internal access only. Such prefixes cannot set\npublicDelegatedSubPrefixes and allocatablePrefixLength. Parent public\ndelegated prefix must have IPv6 access type as INTERNAL." + ], "type": "string" }, - "nodeTypeFlexibility": { - "$ref": "NodeTemplateNodeTypeFlexibility", - "description": "Do not use. Instead, use the node_type property." - }, - "region": { - "description": "[Output Only] The name of the region where the node template resides, such as us-central1.", + "name": { + "description": "The name of the sub public delegated prefix.", "type": "string" }, - "selfLink": { - "description": "[Output Only] Server-defined URL for the resource.", + "region": { + "description": "Output only. [Output Only] The region of the sub public delegated prefix if it is\nregional. If absent, the sub prefix is global.", + "readOnly": true, "type": "string" }, - "serverBinding": { - "$ref": "ServerBinding", - "description": "Sets the binding properties for the physical server. Valid values include: - *[Default]* RESTART_NODE_ON_ANY_SERVER: Restarts VMs on any available physical server - RESTART_NODE_ON_MINIMAL_SERVER: Restarts VMs on the same physical server whenever possible See Sole-tenant node options for more information." - }, "status": { - "description": "[Output Only] The status of the node template. One of the following values: CREATING, READY, and DELETING.", + "description": "Output only. [Output Only] The status of the sub public delegated prefix.", "enum": [ - "CREATING", - "DELETING", - "INVALID", - "READY" + "ACTIVE", + "INACTIVE" ], "enumDescriptions": [ - "Resources are being allocated.", - "The node template is currently being deleted.", - "Invalid status.", - "The node template is ready." + "", + "" ], - "type": "string" - }, - "statusMessage": { - "description": "[Output Only] An optional, human-readable explanation of the status.", + "readOnly": true, "type": "string" } }, "type": "object" }, - "NodeTemplateAggregatedList": { - "id": "NodeTemplateAggregatedList", + "PublicDelegatedPrefixesScopedList": { + "id": "PublicDelegatedPrefixesScopedList", "properties": { - "id": { - "description": "[Output Only] Unique identifier for the resource; defined by the server.", - "type": "string" - }, - "items": { - "additionalProperties": { - "$ref": "NodeTemplatesScopedList", - "description": "[Output Only] Name of the scope containing this set of node templates." - }, - "description": "A list of NodeTemplatesScopedList resources.", - "type": "object" - }, - "kind": { - "default": "compute#nodeTemplateAggregatedList", - "description": "[Output Only] Type of resource.Always compute#nodeTemplateAggregatedList for aggregated lists of node templates.", - "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" - }, - "selfLink": { - "description": "[Output Only] Server-defined URL for this resource.", - "type": "string" - }, - "unreachables": { - "description": "[Output Only] Unreachable resources.", + "publicDelegatedPrefixes": { + "description": "[Output Only] A list of PublicDelegatedPrefixes contained in this scope.", "items": { - "type": "string" + "$ref": "PublicDelegatedPrefix" }, "type": "array" }, "warning": { - "description": "[Output Only] Informational warning message.", + "description": "[Output Only] Informational warning which replaces the list of\npublic delegated prefixes when the list is empty.", "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.", + "description": "[Output Only] A warning code, if applicable. For example, Compute\nEngine returns NO_RESULTS_ON_PAGE if there\nare no results in the response.", "enum": [ "CLEANUP_FAILED", "DEPRECATED_RESOURCE_USED", @@ -61336,6 +87613,7 @@ "NOT_CRITICAL_ERROR", "NO_RESULTS_ON_PAGE", "PARTIAL_SUCCESS", + "QUOTA_INFO_UNAVAILABLE", "REQUIRED_TOS_AGREEMENT", "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", "RESOURCE_NOT_DELETED", @@ -61372,46 +87650,48 @@ false, false, false, + false, false ], "enumDescriptions": [ - "Warning about failed cleanup of transient changes made by a failed operation.", + "Warning about failed cleanup of transient changes made by a failed\noperation.", "A link to a deprecated resource was created.", - "When deploying and at least one of the resources has a type marked as deprecated", + "When deploying and at least one of the resources has a type marked as\ndeprecated", "The user created a boot disk that is larger than image size.", - "When deploying and at least one of the resources has a type marked as experimental", + "When deploying and at least one of the resources has a type marked as\nexperimental", "Warning that is present in an external api call", - "Warning that value of a field has been overridden. Deprecated unused field.", + "Warning that value of a field has been overridden.\nDeprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", - "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is\nnot of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", - "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", + "Resource can't be retrieved due to list overhead quota exceed\nwhich captures the amount of resources filtered out by\nuser-defined list filter.", "A resource depends on a missing type", - "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's nextHopIp address is not assigned to an instance on the\nnetwork.", "The route's next hop instance cannot ip forward.", - "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not have an\nipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", - "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that is not on the\nsame network as the route.", "The route's next hop instance does not have a status of RUNNING.", - "Error which is not critical. We decided to continue the process despite the mentioned error.", + "Error which is not critical. We decided to continue the process despite\nthe mentioned error.", "No results are present on a particular list page.", "Success is reported, but some results may be missing due to errors", - "The user attempted to use a resource that requires a TOS they have not accepted.", + "Quota information is not available to client requests (e.g:\nregions.list).", + "The user attempted to use a resource that requires a TOS they have not\naccepted.", "Warning that a resource is in use.", - "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "One or more of the resources set to auto-delete could not be deleted\nbecause they were in use.", "When a resource schema validation is ignored.", - "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", + "Instance template used in instance group manager is valid as such, but\nits application does not make a lot of sense, because it allows only\nsingle instance in instance group.", "When undeclared properties in the schema are present", "A given scope cannot be reached." ], "type": "string" }, "data": { - "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", + "description": "[Output Only] Metadata about this warning in key:\nvalue format. For example:\n\n\"data\": [\n {\n \"key\": \"scope\",\n \"value\": \"zones/us-east1-d\"\n }", "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).", + "description": "[Output Only] A key that provides more detail on the warning being\nreturned. For example, for warnings where there are no results in a list\nrequest for a particular zone, this key might be scope and\nthe key value might be the zone name. Other examples might be a key\nindicating a deprecated resource and a suggested replacement, or a\nwarning about invalid network settings (for example, if an instance\nattempts to perform IP forwarding but is not enabled for IP forwarding).", "type": "string" }, "value": { @@ -61433,39 +87713,468 @@ }, "type": "object" }, - "NodeTemplateList": { - "description": "Contains a list of node templates.", - "id": "NodeTemplateList", + "Quota": { + "description": "A quotas entry.", + "id": "Quota", + "properties": { + "limit": { + "description": "[Output Only] Quota limit for this metric.", + "format": "double", + "type": "number" + }, + "metric": { + "description": "[Output Only] Name of the quota metric.", + "enum": [ + "A2_CPUS", + "AFFINITY_GROUPS", + "AUTOSCALERS", + "BACKEND_BUCKETS", + "BACKEND_SERVICES", + "C2D_CPUS", + "C2_CPUS", + "C3_CPUS", + "COMMITMENTS", + "COMMITTED_A2_CPUS", + "COMMITTED_C2D_CPUS", + "COMMITTED_C2_CPUS", + "COMMITTED_C3_CPUS", + "COMMITTED_CPUS", + "COMMITTED_E2_CPUS", + "COMMITTED_LICENSES", + "COMMITTED_LOCAL_SSD_TOTAL_GB", + "COMMITTED_M3_CPUS", + "COMMITTED_MEMORY_OPTIMIZED_CPUS", + "COMMITTED_N2A_CPUS", + "COMMITTED_N2D_CPUS", + "COMMITTED_N2_CPUS", + "COMMITTED_NVIDIA_A100_80GB_GPUS", + "COMMITTED_NVIDIA_A100_GPUS", + "COMMITTED_NVIDIA_H100_GPUS", + "COMMITTED_NVIDIA_K80_GPUS", + "COMMITTED_NVIDIA_L4_GPUS", + "COMMITTED_NVIDIA_P100_GPUS", + "COMMITTED_NVIDIA_P4_GPUS", + "COMMITTED_NVIDIA_T4_GPUS", + "COMMITTED_NVIDIA_V100_GPUS", + "COMMITTED_T2A_CPUS", + "COMMITTED_T2D_CPUS", + "COMMITTED_Z3_CPUS", + "CPUS", + "CPUS_ALL_REGIONS", + "DISKS_TOTAL_GB", + "E2_CPUS", + "EXTERNAL_MANAGED_FORWARDING_RULES", + "EXTERNAL_NETWORK_LB_FORWARDING_RULES", + "EXTERNAL_PROTOCOL_FORWARDING_RULES", + "EXTERNAL_VPN_GATEWAYS", + "FIREWALLS", + "FORWARDING_RULES", + "GLOBAL_EXTERNAL_MANAGED_BACKEND_SERVICES", + "GLOBAL_EXTERNAL_MANAGED_FORWARDING_RULES", + "GLOBAL_EXTERNAL_PROXY_LB_BACKEND_SERVICES", + "GLOBAL_INTERNAL_ADDRESSES", + "GLOBAL_INTERNAL_MANAGED_BACKEND_SERVICES", + "GLOBAL_INTERNAL_TRAFFIC_DIRECTOR_BACKEND_SERVICES", + "GPUS_ALL_REGIONS", + "HDB_TOTAL_GB", + "HDB_TOTAL_IOPS", + "HDB_TOTAL_THROUGHPUT", + "HEALTH_CHECKS", + "IMAGES", + "INSTANCES", + "INSTANCE_GROUPS", + "INSTANCE_GROUP_MANAGERS", + "INSTANCE_TEMPLATES", + "INTERCONNECTS", + "INTERCONNECT_ATTACHMENTS_PER_REGION", + "INTERCONNECT_ATTACHMENTS_TOTAL_MBPS", + "INTERCONNECT_TOTAL_GBPS", + "INTERNAL_ADDRESSES", + "INTERNAL_TRAFFIC_DIRECTOR_FORWARDING_RULES", + "IN_PLACE_SNAPSHOTS", + "IN_USE_ADDRESSES", + "IN_USE_BACKUP_SCHEDULES", + "IN_USE_SNAPSHOT_SCHEDULES", + "LOCAL_SSD_TOTAL_GB", + "M1_CPUS", + "M2_CPUS", + "M3_CPUS", + "MACHINE_IMAGES", + "N2A_CPUS", + "N2D_CPUS", + "N2_CPUS", + "NETWORKS", + "NETWORK_ATTACHMENTS", + "NETWORK_ENDPOINT_GROUPS", + "NETWORK_FIREWALL_POLICIES", + "NET_LB_SECURITY_POLICIES_PER_REGION", + "NET_LB_SECURITY_POLICY_RULES_PER_REGION", + "NET_LB_SECURITY_POLICY_RULE_ATTRIBUTES_PER_REGION", + "NODE_GROUPS", + "NODE_TEMPLATES", + "NVIDIA_A100_80GB_GPUS", + "NVIDIA_A100_GPUS", + "NVIDIA_K80_GPUS", + "NVIDIA_L4_GPUS", + "NVIDIA_P100_GPUS", + "NVIDIA_P100_VWS_GPUS", + "NVIDIA_P4_GPUS", + "NVIDIA_P4_VWS_GPUS", + "NVIDIA_T4_GPUS", + "NVIDIA_T4_VWS_GPUS", + "NVIDIA_V100_GPUS", + "PACKET_MIRRORINGS", + "PD_EXTREME_TOTAL_PROVISIONED_IOPS", + "PREEMPTIBLE_CPUS", + "PREEMPTIBLE_LOCAL_SSD_GB", + "PREEMPTIBLE_NVIDIA_A100_80GB_GPUS", + "PREEMPTIBLE_NVIDIA_A100_GPUS", + "PREEMPTIBLE_NVIDIA_H100_GPUS", + "PREEMPTIBLE_NVIDIA_K80_GPUS", + "PREEMPTIBLE_NVIDIA_L4_GPUS", + "PREEMPTIBLE_NVIDIA_P100_GPUS", + "PREEMPTIBLE_NVIDIA_P100_VWS_GPUS", + "PREEMPTIBLE_NVIDIA_P4_GPUS", + "PREEMPTIBLE_NVIDIA_P4_VWS_GPUS", + "PREEMPTIBLE_NVIDIA_T4_GPUS", + "PREEMPTIBLE_NVIDIA_T4_VWS_GPUS", + "PREEMPTIBLE_NVIDIA_V100_GPUS", + "PREEMPTIBLE_TPU_LITE_DEVICE_V5", + "PREEMPTIBLE_TPU_LITE_PODSLICE_V5", + "PREEMPTIBLE_TPU_PODSLICE_V4", + "PSC_ILB_CONSUMER_FORWARDING_RULES_PER_PRODUCER_NETWORK", + "PSC_INTERNAL_LB_FORWARDING_RULES", + "PUBLIC_ADVERTISED_PREFIXES", + "PUBLIC_DELEGATED_PREFIXES", + "REGIONAL_AUTOSCALERS", + "REGIONAL_EXTERNAL_MANAGED_BACKEND_SERVICES", + "REGIONAL_EXTERNAL_NETWORK_LB_BACKEND_SERVICES", + "REGIONAL_INSTANCE_GROUP_MANAGERS", + "REGIONAL_INTERNAL_LB_BACKEND_SERVICES", + "REGIONAL_INTERNAL_MANAGED_BACKEND_SERVICES", + "REGIONAL_INTERNAL_TRAFFIC_DIRECTOR_BACKEND_SERVICES", + "RESERVATIONS", + "RESOURCE_POLICIES", + "ROUTERS", + "ROUTES", + "SECURITY_POLICIES", + "SECURITY_POLICIES_PER_REGION", + "SECURITY_POLICY_ADVANCED_RULES_PER_REGION", + "SECURITY_POLICY_CEVAL_RULES", + "SECURITY_POLICY_RULES", + "SECURITY_POLICY_RULES_PER_REGION", + "SERVICE_ATTACHMENTS", + "SNAPSHOTS", + "SSD_TOTAL_GB", + "SSL_CERTIFICATES", + "SSL_POLICIES", + "STATIC_ADDRESSES", + "STATIC_BYOIP_ADDRESSES", + "STATIC_EXTERNAL_IPV6_ADDRESS_RANGES", + "SUBNETWORKS", + "T2A_CPUS", + "T2D_CPUS", + "TARGET_HTTPS_PROXIES", + "TARGET_HTTP_PROXIES", + "TARGET_INSTANCES", + "TARGET_POOLS", + "TARGET_SSL_PROXIES", + "TARGET_TCP_PROXIES", + "TARGET_VPN_GATEWAYS", + "TPU_LITE_DEVICE_V5", + "TPU_LITE_PODSLICE_V5", + "TPU_PODSLICE_V4", + "URL_MAPS", + "VARIABLE_IPV6_PUBLIC_DELEGATED_PREFIXES", + "VPN_GATEWAYS", + "VPN_TUNNELS", + "XPN_SERVICE_PROJECTS" + ], + "enumDescriptions": [ + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "Guest CPUs", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "The total number of snapshots allowed for a single project.", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "" + ], + "type": "string" + }, + "owner": { + "description": "[Output Only] Owning resource. This is the resource on which this quota\nis applied.", + "type": "string" + }, + "usage": { + "description": "[Output Only] Current usage of this metric.", + "format": "double", + "type": "number" + } + }, + "type": "object" + }, + "QuotaExceededInfo": { + "description": "Additional details for quota exceeded error for resource quota.", + "id": "QuotaExceededInfo", + "properties": { + "dimensions": { + "additionalProperties": { + "type": "string" + }, + "description": "The map holding related quota dimensions.", + "type": "object" + }, + "futureLimit": { + "description": "Future quota limit being rolled out. The limit's unit depends on the quota\n type or metric.", + "format": "double", + "type": "number" + }, + "limit": { + "description": "Current effective quota limit. The limit's unit depends on the quota type\nor metric.", + "format": "double", + "type": "number" + }, + "limitName": { + "description": "The name of the quota limit.", + "type": "string" + }, + "metricName": { + "description": "The Compute Engine quota metric name.", + "type": "string" + }, + "rolloutStatus": { + "description": "Rollout status of the future quota limit.", + "enum": [ + "IN_PROGRESS", + "ROLLOUT_STATUS_UNSPECIFIED" + ], + "enumDescriptions": [ + "IN_PROGRESS - A rollout is in process which will change the limit value\nto future limit.", + "ROLLOUT_STATUS_UNSPECIFIED - Rollout status is not specified. The default\nvalue." + ], + "type": "string" + } + }, + "type": "object" + }, + "Reference": { + "description": "Represents a reference to a resource.", + "id": "Reference", "properties": { - "id": { - "description": "[Output Only] Unique identifier for the resource; defined by the server.", + "kind": { + "default": "compute#reference", + "description": "Output only. [Output Only] Type of the resource. Always compute#reference\nfor references.", + "readOnly": true, "type": "string" }, - "items": { - "description": "A list of NodeTemplate resources.", - "items": { - "$ref": "NodeTemplate" - }, - "type": "array" + "referenceType": { + "description": "A description of the reference type with no implied semantics. Possible\nvalues include:\n \n \n 1. MEMBER_OF", + "type": "string" }, - "kind": { - "default": "compute#nodeTemplateList", - "description": "[Output Only] Type of resource.Always compute#nodeTemplateList for lists of node templates.", + "referrer": { + "description": "URL of the resource which refers to the target.", "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.", + "target": { + "description": "URL of the resource to which this reference points.", + "type": "string" + } + }, + "type": "object" + }, + "Region": { + "description": "Represents a Region resource.\n\nA region is a geographical area where a resource is located. For more\ninformation, readRegions\nand Zones.", + "id": "Region", + "properties": { + "creationTimestamp": { + "description": "[Output Only] Creation timestamp inRFC3339\ntext format.", "type": "string" }, - "selfLink": { - "description": "[Output Only] Server-defined URL for this resource.", + "deprecated": { + "$ref": "DeprecationStatus", + "description": "[Output Only] The deprecation status associated with this region." + }, + "description": { + "description": "[Output Only] Textual description of the resource.", "type": "string" }, - "warning": { - "description": "[Output Only] Informational warning message.", + "id": { + "description": "[Output Only] The unique identifier for the resource. This identifier is\ndefined by the server.", + "format": "uint64", + "type": "string" + }, + "kind": { + "default": "compute#region", + "description": "Output only. [Output Only] Type of the resource. Always compute#region for\nregions.", + "readOnly": true, + "type": "string" + }, + "name": { + "description": "[Output Only] Name of the resource.", + "type": "string" + }, + "quotaStatusWarning": { + "description": "Output only. [Output Only] Warning of fetching the `quotas` field for this region. This\nfield is populated only if fetching of the `quotas` field fails.", "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.", + "description": "[Output Only] A warning code, if applicable. For example, Compute\nEngine returns NO_RESULTS_ON_PAGE if there\nare no results in the response.", "enum": [ "CLEANUP_FAILED", "DEPRECATED_RESOURCE_USED", @@ -61488,6 +88197,7 @@ "NOT_CRITICAL_ERROR", "NO_RESULTS_ON_PAGE", "PARTIAL_SUCCESS", + "QUOTA_INFO_UNAVAILABLE", "REQUIRED_TOS_AGREEMENT", "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", "RESOURCE_NOT_DELETED", @@ -61524,46 +88234,48 @@ false, false, false, + false, false ], "enumDescriptions": [ - "Warning about failed cleanup of transient changes made by a failed operation.", + "Warning about failed cleanup of transient changes made by a failed\noperation.", "A link to a deprecated resource was created.", - "When deploying and at least one of the resources has a type marked as deprecated", + "When deploying and at least one of the resources has a type marked as\ndeprecated", "The user created a boot disk that is larger than image size.", - "When deploying and at least one of the resources has a type marked as experimental", + "When deploying and at least one of the resources has a type marked as\nexperimental", "Warning that is present in an external api call", - "Warning that value of a field has been overridden. Deprecated unused field.", + "Warning that value of a field has been overridden.\nDeprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", - "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is\nnot of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", - "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", + "Resource can't be retrieved due to list overhead quota exceed\nwhich captures the amount of resources filtered out by\nuser-defined list filter.", "A resource depends on a missing type", - "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's nextHopIp address is not assigned to an instance on the\nnetwork.", "The route's next hop instance cannot ip forward.", - "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not have an\nipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", - "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that is not on the\nsame network as the route.", "The route's next hop instance does not have a status of RUNNING.", - "Error which is not critical. We decided to continue the process despite the mentioned error.", + "Error which is not critical. We decided to continue the process despite\nthe mentioned error.", "No results are present on a particular list page.", "Success is reported, but some results may be missing due to errors", - "The user attempted to use a resource that requires a TOS they have not accepted.", + "Quota information is not available to client requests (e.g:\nregions.list).", + "The user attempted to use a resource that requires a TOS they have not\naccepted.", "Warning that a resource is in use.", - "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "One or more of the resources set to auto-delete could not be deleted\nbecause they were in use.", "When a resource schema validation is ignored.", - "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", + "Instance template used in instance group manager is valid as such, but\nits application does not make a lot of sense, because it allows only\nsingle instance in instance group.", "When undeclared properties in the schema are present", "A given scope cannot be reached." ], "type": "string" }, "data": { - "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", + "description": "[Output Only] Metadata about this warning in key:\nvalue format. For example:\n\n\"data\": [\n {\n \"key\": \"scope\",\n \"value\": \"zones/us-east1-d\"\n }", "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).", + "description": "[Output Only] A key that provides more detail on the warning being\nreturned. For example, for warnings where there are no results in a list\nrequest for a particular zone, this key might be scope and\nthe key value might be the zone name. Other examples might be a key\nindicating a deprecated resource and a suggested replacement, or a\nwarning about invalid network settings (for example, if an instance\nattempts to perform IP forwarding but is not enabled for IP forwarding).", "type": "string" }, "value": { @@ -61580,41 +88292,96 @@ "type": "string" } }, + "readOnly": true, "type": "object" + }, + "quotas": { + "description": "[Output Only] Quotas assigned to this region.", + "items": { + "$ref": "Quota" + }, + "type": "array" + }, + "selfLink": { + "description": "[Output Only] Server-defined URL for the resource.", + "type": "string" + }, + "status": { + "description": "[Output Only] Status of the region, either UP orDOWN.", + "enum": [ + "DOWN", + "UP" + ], + "enumDescriptions": [ + "", + "" + ], + "type": "string" + }, + "supportsPzs": { + "description": "Output only. [Output Only] Reserved for future use.", + "readOnly": true, + "type": "boolean" + }, + "zones": { + "description": "[Output Only] A list of zones available in this region, in the form of\nresource URLs.", + "items": { + "type": "string" + }, + "type": "array" } }, "type": "object" }, - "NodeTemplateNodeTypeFlexibility": { - "id": "NodeTemplateNodeTypeFlexibility", + "RegionAddressesMoveRequest": { + "id": "RegionAddressesMoveRequest", "properties": { - "cpus": { - "type": "string" - }, - "localSsd": { + "description": { + "description": "An optional destination address description if intended to be different\nfrom the source.", "type": "string" }, - "memory": { + "destinationAddress": { + "description": "The URL of the destination address to move to. This can be a full or\npartial URL. For example, the following are all valid URLs to a address:\n \n - https://www.googleapis.com/compute/v1/projects/project/regions/region/addresses/address \n - projects/project/regions/region/addresses/address\n\n\nNote that destination project must be different from the source project. So/regions/region/addresses/address is not valid partial url.", "type": "string" } }, "type": "object" }, - "NodeTemplatesScopedList": { - "id": "NodeTemplatesScopedList", + "RegionAutoscalerList": { + "description": "Contains a list of autoscalers.", + "id": "RegionAutoscalerList", "properties": { - "nodeTemplates": { - "description": "[Output Only] A list of node templates contained in this scope.", + "id": { + "description": "[Output Only] Unique identifier for the resource; defined by the server.", + "type": "string" + }, + "items": { + "description": "A list of Autoscaler resources.", "items": { - "$ref": "NodeTemplate" + "$ref": "Autoscaler" }, "type": "array" }, + "kind": { + "default": "compute#regionAutoscalerList", + "description": "Output only. Type of resource.", + "readOnly": true, + "type": "string" + }, + "nextPageToken": { + "description": "[Output Only] This token allows you to get the next page of results for\nlist requests. If the number of results is larger thanmaxResults, use the nextPageToken as a value for\nthe query parameter pageToken in the next list request.\nSubsequent list requests will have their own nextPageToken to\ncontinue paging through the results.", + "type": "string" + }, + "selfLink": { + "description": "Output only. [Output Only] Server-defined URL for this resource.", + "readOnly": true, + "type": "string" + }, "warning": { - "description": "[Output Only] An informational warning that appears when the node templates list is empty.", + "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.", + "description": "[Output Only] A warning code, if applicable. For example, Compute\nEngine returns NO_RESULTS_ON_PAGE if there\nare no results in the response.", "enum": [ "CLEANUP_FAILED", "DEPRECATED_RESOURCE_USED", @@ -61637,6 +88404,7 @@ "NOT_CRITICAL_ERROR", "NO_RESULTS_ON_PAGE", "PARTIAL_SUCCESS", + "QUOTA_INFO_UNAVAILABLE", "REQUIRED_TOS_AGREEMENT", "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", "RESOURCE_NOT_DELETED", @@ -61673,46 +88441,48 @@ false, false, false, + false, false ], "enumDescriptions": [ - "Warning about failed cleanup of transient changes made by a failed operation.", + "Warning about failed cleanup of transient changes made by a failed\noperation.", "A link to a deprecated resource was created.", - "When deploying and at least one of the resources has a type marked as deprecated", + "When deploying and at least one of the resources has a type marked as\ndeprecated", "The user created a boot disk that is larger than image size.", - "When deploying and at least one of the resources has a type marked as experimental", + "When deploying and at least one of the resources has a type marked as\nexperimental", "Warning that is present in an external api call", - "Warning that value of a field has been overridden. Deprecated unused field.", + "Warning that value of a field has been overridden.\nDeprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", - "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is\nnot of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", - "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", + "Resource can't be retrieved due to list overhead quota exceed\nwhich captures the amount of resources filtered out by\nuser-defined list filter.", "A resource depends on a missing type", - "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's nextHopIp address is not assigned to an instance on the\nnetwork.", "The route's next hop instance cannot ip forward.", - "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not have an\nipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", - "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that is not on the\nsame network as the route.", "The route's next hop instance does not have a status of RUNNING.", - "Error which is not critical. We decided to continue the process despite the mentioned error.", + "Error which is not critical. We decided to continue the process despite\nthe mentioned error.", "No results are present on a particular list page.", "Success is reported, but some results may be missing due to errors", - "The user attempted to use a resource that requires a TOS they have not accepted.", + "Quota information is not available to client requests (e.g:\nregions.list).", + "The user attempted to use a resource that requires a TOS they have not\naccepted.", "Warning that a resource is in use.", - "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "One or more of the resources set to auto-delete could not be deleted\nbecause they were in use.", "When a resource schema validation is ignored.", - "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", + "Instance template used in instance group manager is valid as such, but\nits application does not make a lot of sense, because it allows only\nsingle instance in instance group.", "When undeclared properties in the schema are present", "A given scope cannot be reached." ], "type": "string" }, "data": { - "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", + "description": "[Output Only] Metadata about this warning in key:\nvalue format. For example:\n\n\"data\": [\n {\n \"key\": \"scope\",\n \"value\": \"zones/us-east1-d\"\n }", "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).", + "description": "[Output Only] A key that provides more detail on the warning being\nreturned. For example, for warnings where there are no results in a list\nrequest for a particular zone, this key might be scope and\nthe key value might be the zone name. Other examples might be a key\nindicating a deprecated resource and a suggested replacement, or a\nwarning about invalid network settings (for example, if an instance\nattempts to perform IP forwarding but is not enabled for IP forwarding).", "type": "string" }, "value": { @@ -61734,107 +88504,40 @@ }, "type": "object" }, - "NodeType": { - "description": "Represent a sole-tenant Node Type resource. Each node within a node group must have a node type. A node type specifies the total amount of cores and memory for that node. Currently, the only available node type is n1-node-96-624 node type that has 96 vCPUs and 624 GB of memory, available in multiple zones. For more information read Node types.", - "id": "NodeType", - "properties": { - "cpuPlatform": { - "description": "[Output Only] The CPU platform used by this node type.", - "type": "string" - }, - "creationTimestamp": { - "description": "[Output Only] Creation timestamp in RFC3339 text format.", - "type": "string" - }, - "deprecated": { - "$ref": "DeprecationStatus", - "description": "[Output Only] The deprecation status associated with this node type." - }, - "description": { - "description": "[Output Only] An optional textual description of the resource.", - "type": "string" - }, - "guestCpus": { - "description": "[Output Only] The number of virtual CPUs that are available to the node type.", - "format": "int32", - "type": "integer" - }, - "id": { - "description": "[Output Only] The unique identifier for the resource. This identifier is defined by the server.", - "format": "uint64", - "type": "string" - }, - "kind": { - "default": "compute#nodeType", - "description": "[Output Only] The type of the resource. Always compute#nodeType for node types.", - "type": "string" - }, - "localSsdGb": { - "description": "[Output Only] Local SSD available to the node type, defined in GB.", - "format": "int32", - "type": "integer" - }, - "memoryMb": { - "description": "[Output Only] The amount of physical memory available to the node type, defined in MB.", - "format": "int32", - "type": "integer" - }, - "name": { - "description": "[Output Only] Name of the resource.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "type": "string" - }, - "selfLink": { - "description": "[Output Only] Server-defined URL for the resource.", - "type": "string" - }, - "zone": { - "description": "[Output Only] The name of the zone where the node type resides, such as us-central1-a.", - "type": "string" - } - }, - "type": "object" - }, - "NodeTypeAggregatedList": { - "id": "NodeTypeAggregatedList", + "RegionDiskTypeList": { + "id": "RegionDiskTypeList", "properties": { "id": { "description": "[Output Only] Unique identifier for the resource; defined by the server.", "type": "string" }, "items": { - "additionalProperties": { - "$ref": "NodeTypesScopedList", - "description": "[Output Only] Name of the scope containing this set of node types." + "description": "A list of DiskType resources.", + "items": { + "$ref": "DiskType" }, - "description": "A list of NodeTypesScopedList resources.", - "type": "object" + "type": "array" }, "kind": { - "default": "compute#nodeTypeAggregatedList", - "description": "[Output Only] Type of resource.Always compute#nodeTypeAggregatedList for aggregated lists of node types.", + "default": "compute#regionDiskTypeList", + "description": "Output only. [Output Only] Type of resource. Alwayscompute#regionDiskTypeList for region disk types.", + "readOnly": true, "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.", + "description": "[Output Only] This token allows you to get the next page of results for\nlist requests. If the number of results is larger thanmaxResults, use the nextPageToken as a value for\nthe query parameter pageToken in the next list request.\nSubsequent list requests will have their own nextPageToken to\ncontinue paging through the results.", "type": "string" }, "selfLink": { - "description": "[Output Only] Server-defined URL for this resource.", + "description": "Output only. [Output Only] Server-defined URL for this resource.", + "readOnly": true, "type": "string" }, - "unreachables": { - "description": "[Output Only] Unreachable resources.", - "items": { - "type": "string" - }, - "type": "array" - }, "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.", + "description": "[Output Only] A warning code, if applicable. For example, Compute\nEngine returns NO_RESULTS_ON_PAGE if there\nare no results in the response.", "enum": [ "CLEANUP_FAILED", "DEPRECATED_RESOURCE_USED", @@ -61857,6 +88560,7 @@ "NOT_CRITICAL_ERROR", "NO_RESULTS_ON_PAGE", "PARTIAL_SUCCESS", + "QUOTA_INFO_UNAVAILABLE", "REQUIRED_TOS_AGREEMENT", "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", "RESOURCE_NOT_DELETED", @@ -61893,46 +88597,48 @@ false, false, false, + false, false ], "enumDescriptions": [ - "Warning about failed cleanup of transient changes made by a failed operation.", + "Warning about failed cleanup of transient changes made by a failed\noperation.", "A link to a deprecated resource was created.", - "When deploying and at least one of the resources has a type marked as deprecated", + "When deploying and at least one of the resources has a type marked as\ndeprecated", "The user created a boot disk that is larger than image size.", - "When deploying and at least one of the resources has a type marked as experimental", + "When deploying and at least one of the resources has a type marked as\nexperimental", "Warning that is present in an external api call", - "Warning that value of a field has been overridden. Deprecated unused field.", + "Warning that value of a field has been overridden.\nDeprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", - "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is\nnot of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", - "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", + "Resource can't be retrieved due to list overhead quota exceed\nwhich captures the amount of resources filtered out by\nuser-defined list filter.", "A resource depends on a missing type", - "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's nextHopIp address is not assigned to an instance on the\nnetwork.", "The route's next hop instance cannot ip forward.", - "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not have an\nipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", - "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that is not on the\nsame network as the route.", "The route's next hop instance does not have a status of RUNNING.", - "Error which is not critical. We decided to continue the process despite the mentioned error.", + "Error which is not critical. We decided to continue the process despite\nthe mentioned error.", "No results are present on a particular list page.", "Success is reported, but some results may be missing due to errors", - "The user attempted to use a resource that requires a TOS they have not accepted.", + "Quota information is not available to client requests (e.g:\nregions.list).", + "The user attempted to use a resource that requires a TOS they have not\naccepted.", "Warning that a resource is in use.", - "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "One or more of the resources set to auto-delete could not be deleted\nbecause they were in use.", "When a resource schema validation is ignored.", - "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", + "Instance template used in instance group manager is valid as such, but\nits application does not make a lot of sense, because it allows only\nsingle instance in instance group.", "When undeclared properties in the schema are present", "A given scope cannot be reached." ], "type": "string" }, "data": { - "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", + "description": "[Output Only] Metadata about this warning in key:\nvalue format. For example:\n\n\"data\": [\n {\n \"key\": \"scope\",\n \"value\": \"zones/us-east1-d\"\n }", "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).", + "description": "[Output Only] A key that provides more detail on the warning being\nreturned. For example, for warnings where there are no results in a list\nrequest for a particular zone, this key might be scope and\nthe key value might be the zone name. Other examples might be a key\nindicating a deprecated resource and a suggested replacement, or a\nwarning about invalid network settings (for example, if an instance\nattempts to perform IP forwarding but is not enabled for IP forwarding).", "type": "string" }, "value": { @@ -61954,39 +88660,100 @@ }, "type": "object" }, - "NodeTypeList": { - "description": "Contains a list of node types.", - "id": "NodeTypeList", + "RegionDiskUpdateKmsKeyRequest": { + "id": "RegionDiskUpdateKmsKeyRequest", + "properties": { + "kmsKeyName": { + "description": "Optional. The new KMS key to replace the current one on the disk. If empty, the disk\nwill be re-encrypted using the primary version of the disk's current KMS\nkey.\n\nThe KMS key can be provided in the following formats:\n \n \n - projects/project_id/locations/location/keyRings/key_ring/cryptoKeys/key\n\n\nWhere project is the project ID or\nproject number.", + "type": "string" + } + }, + "type": "object" + }, + "RegionDisksAddResourcePoliciesRequest": { + "id": "RegionDisksAddResourcePoliciesRequest", + "properties": { + "resourcePolicies": { + "description": "Resource policies to be added to this disk.", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "RegionDisksRemoveResourcePoliciesRequest": { + "id": "RegionDisksRemoveResourcePoliciesRequest", + "properties": { + "resourcePolicies": { + "description": "Resource policies to be removed from this disk.", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "RegionDisksResizeRequest": { + "id": "RegionDisksResizeRequest", + "properties": { + "sizeGb": { + "description": "The new size of the regional persistent disk, which is specified in GB.", + "format": "int64", + "type": "string" + } + }, + "type": "object" + }, + "RegionDisksStartAsyncReplicationRequest": { + "id": "RegionDisksStartAsyncReplicationRequest", + "properties": { + "asyncSecondaryDisk": { + "description": "The secondary disk to start asynchronous replication to.\nYou can provide this as a partial or full URL to the resource. For example,\nthe following are valid values:\n \n \n - \n https://www.googleapis.com/compute/v1/projects/project/zones/zone/disks/disk\n \n - \n https://www.googleapis.com/compute/v1/projects/project/regions/region/disks/disk\n \n - \n projects/project/zones/zone/disks/disk\n \n - \n projects/project/regions/region/disks/disk\n \n - \n zones/zone/disks/disk\n \n - \n regions/region/disks/disk", + "type": "string" + } + }, + "type": "object" + }, + "RegionInstanceGroupList": { + "description": "Contains a list of InstanceGroup resources.", + "id": "RegionInstanceGroupList", "properties": { "id": { - "description": "[Output Only] Unique identifier for the resource; defined by the server.", + "description": "Output only. [Output Only] Unique identifier for the resource; defined by the server.", + "readOnly": true, "type": "string" }, "items": { - "description": "A list of NodeType resources.", + "description": "A list of InstanceGroup resources.", "items": { - "$ref": "NodeType" + "$ref": "InstanceGroup" }, "type": "array" }, "kind": { - "default": "compute#nodeTypeList", - "description": "[Output Only] Type of resource.Always compute#nodeTypeList for lists of node types.", + "default": "compute#regionInstanceGroupList", + "description": "Output only. The resource type.", + "readOnly": true, "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.", + "description": "Output only. [Output Only] This token allows you to get the next page of results for\nlist requests. If the number of results is larger thanmaxResults, use the nextPageToken as a value for\nthe query parameter pageToken in the next list request.\nSubsequent list requests will have their own nextPageToken to\ncontinue paging through the results.", + "readOnly": true, "type": "string" }, "selfLink": { - "description": "[Output Only] Server-defined URL for this resource.", + "description": "Output only. [Output Only] Server-defined URL for this resource.", + "readOnly": true, "type": "string" }, "warning": { - "description": "[Output Only] Informational warning message.", + "description": "Output only. [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.", + "description": "[Output Only] A warning code, if applicable. For example, Compute\nEngine returns NO_RESULTS_ON_PAGE if there\nare no results in the response.", "enum": [ "CLEANUP_FAILED", "DEPRECATED_RESOURCE_USED", @@ -62009,6 +88776,7 @@ "NOT_CRITICAL_ERROR", "NO_RESULTS_ON_PAGE", "PARTIAL_SUCCESS", + "QUOTA_INFO_UNAVAILABLE", "REQUIRED_TOS_AGREEMENT", "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", "RESOURCE_NOT_DELETED", @@ -62045,46 +88813,48 @@ false, false, false, + false, false ], "enumDescriptions": [ - "Warning about failed cleanup of transient changes made by a failed operation.", + "Warning about failed cleanup of transient changes made by a failed\noperation.", "A link to a deprecated resource was created.", - "When deploying and at least one of the resources has a type marked as deprecated", + "When deploying and at least one of the resources has a type marked as\ndeprecated", "The user created a boot disk that is larger than image size.", - "When deploying and at least one of the resources has a type marked as experimental", + "When deploying and at least one of the resources has a type marked as\nexperimental", "Warning that is present in an external api call", - "Warning that value of a field has been overridden. Deprecated unused field.", + "Warning that value of a field has been overridden.\nDeprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", - "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is\nnot of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", - "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", + "Resource can't be retrieved due to list overhead quota exceed\nwhich captures the amount of resources filtered out by\nuser-defined list filter.", "A resource depends on a missing type", - "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's nextHopIp address is not assigned to an instance on the\nnetwork.", "The route's next hop instance cannot ip forward.", - "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not have an\nipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", - "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that is not on the\nsame network as the route.", "The route's next hop instance does not have a status of RUNNING.", - "Error which is not critical. We decided to continue the process despite the mentioned error.", + "Error which is not critical. We decided to continue the process despite\nthe mentioned error.", "No results are present on a particular list page.", "Success is reported, but some results may be missing due to errors", - "The user attempted to use a resource that requires a TOS they have not accepted.", + "Quota information is not available to client requests (e.g:\nregions.list).", + "The user attempted to use a resource that requires a TOS they have not\naccepted.", "Warning that a resource is in use.", - "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "One or more of the resources set to auto-delete could not be deleted\nbecause they were in use.", "When a resource schema validation is ignored.", - "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", + "Instance template used in instance group manager is valid as such, but\nits application does not make a lot of sense, because it allows only\nsingle instance in instance group.", "When undeclared properties in the schema are present", "A given scope cannot be reached." ], "type": "string" }, "data": { - "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", + "description": "[Output Only] Metadata about this warning in key:\nvalue format. For example:\n\n\"data\": [\n {\n \"key\": \"scope\",\n \"value\": \"zones/us-east1-d\"\n }", "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).", + "description": "[Output Only] A key that provides more detail on the warning being\nreturned. For example, for warnings where there are no results in a list\nrequest for a particular zone, this key might be scope and\nthe key value might be the zone name. Other examples might be a key\nindicating a deprecated resource and a suggested replacement, or a\nwarning about invalid network settings (for example, if an instance\nattempts to perform IP forwarding but is not enabled for IP forwarding).", "type": "string" }, "value": { @@ -62101,26 +88871,63 @@ "type": "string" } }, + "readOnly": true, "type": "object" } }, "type": "object" }, - "NodeTypesScopedList": { - "id": "NodeTypesScopedList", + "RegionInstanceGroupManagerDeleteInstanceConfigReq": { + "description": "RegionInstanceGroupManagers.deletePerInstanceConfigs", + "id": "RegionInstanceGroupManagerDeleteInstanceConfigReq", "properties": { - "nodeTypes": { - "description": "[Output Only] A list of node types contained in this scope.", + "names": { + "description": "The list of instance names for which we want to delete per-instance configs\non this managed instance group.", "items": { - "$ref": "NodeType" + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "RegionInstanceGroupManagerList": { + "description": "Contains a list of managed instance groups.", + "id": "RegionInstanceGroupManagerList", + "properties": { + "id": { + "description": "Output only. Unique identifier for the resource; defined by the server.", + "readOnly": true, + "type": "string" + }, + "items": { + "description": "A list of InstanceGroupManager resources.", + "items": { + "$ref": "InstanceGroupManager" }, "type": "array" }, + "kind": { + "default": "compute#regionInstanceGroupManagerList", + "description": "Output only. The resource type, which is always compute#instanceGroupManagerList for a\nlist of managed instance groups that exist in th regional scope.", + "readOnly": true, + "type": "string" + }, + "nextPageToken": { + "description": "Output only. This token allows you to get the next page of results for\nlist requests. If the number of results is larger thanmaxResults, use the nextPageToken as a value for\nthe query parameter pageToken in the next list request.\nSubsequent list requests will have their own nextPageToken to\ncontinue paging through the results.", + "readOnly": true, + "type": "string" + }, + "selfLink": { + "description": "Output only. Server-defined URL for this resource.", + "readOnly": true, + "type": "string" + }, "warning": { - "description": "[Output Only] An informational warning that appears when the node types list is empty.", + "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.", + "description": "[Output Only] A warning code, if applicable. For example, Compute\nEngine returns NO_RESULTS_ON_PAGE if there\nare no results in the response.", "enum": [ "CLEANUP_FAILED", "DEPRECATED_RESOURCE_USED", @@ -62143,6 +88950,7 @@ "NOT_CRITICAL_ERROR", "NO_RESULTS_ON_PAGE", "PARTIAL_SUCCESS", + "QUOTA_INFO_UNAVAILABLE", "REQUIRED_TOS_AGREEMENT", "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", "RESOURCE_NOT_DELETED", @@ -62179,46 +88987,48 @@ false, false, false, + false, false ], "enumDescriptions": [ - "Warning about failed cleanup of transient changes made by a failed operation.", + "Warning about failed cleanup of transient changes made by a failed\noperation.", "A link to a deprecated resource was created.", - "When deploying and at least one of the resources has a type marked as deprecated", + "When deploying and at least one of the resources has a type marked as\ndeprecated", "The user created a boot disk that is larger than image size.", - "When deploying and at least one of the resources has a type marked as experimental", + "When deploying and at least one of the resources has a type marked as\nexperimental", "Warning that is present in an external api call", - "Warning that value of a field has been overridden. Deprecated unused field.", + "Warning that value of a field has been overridden.\nDeprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", - "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is\nnot of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", - "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", + "Resource can't be retrieved due to list overhead quota exceed\nwhich captures the amount of resources filtered out by\nuser-defined list filter.", "A resource depends on a missing type", - "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's nextHopIp address is not assigned to an instance on the\nnetwork.", "The route's next hop instance cannot ip forward.", - "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not have an\nipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", - "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that is not on the\nsame network as the route.", "The route's next hop instance does not have a status of RUNNING.", - "Error which is not critical. We decided to continue the process despite the mentioned error.", + "Error which is not critical. We decided to continue the process despite\nthe mentioned error.", "No results are present on a particular list page.", "Success is reported, but some results may be missing due to errors", - "The user attempted to use a resource that requires a TOS they have not accepted.", + "Quota information is not available to client requests (e.g:\nregions.list).", + "The user attempted to use a resource that requires a TOS they have not\naccepted.", "Warning that a resource is in use.", - "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "One or more of the resources set to auto-delete could not be deleted\nbecause they were in use.", "When a resource schema validation is ignored.", - "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", + "Instance template used in instance group manager is valid as such, but\nits application does not make a lot of sense, because it allows only\nsingle instance in instance group.", "When undeclared properties in the schema are present", "A given scope cannot be reached." ], "type": "string" }, "data": { - "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", + "description": "[Output Only] Metadata about this warning in key:\nvalue format. For example:\n\n\"data\": [\n {\n \"key\": \"scope\",\n \"value\": \"zones/us-east1-d\"\n }", "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).", + "description": "[Output Only] A key that provides more detail on the warning being\nreturned. For example, for warnings where there are no results in a list\nrequest for a particular zone, this key might be scope and\nthe key value might be the zone name. Other examples might be a key\nindicating a deprecated resource and a suggested replacement, or a\nwarning about invalid network settings (for example, if an instance\nattempts to perform IP forwarding but is not enabled for IP forwarding).", "type": "string" }, "value": { @@ -62235,113 +89045,73 @@ "type": "string" } }, + "readOnly": true, "type": "object" } }, "type": "object" }, - "NotificationEndpoint": { - "description": "Represents a notification endpoint. A notification endpoint resource defines an endpoint to receive notifications when there are status changes detected by the associated health check service. For more information, see Health checks overview.", - "id": "NotificationEndpoint", + "RegionInstanceGroupManagerPatchInstanceConfigReq": { + "description": "RegionInstanceGroupManagers.patchPerInstanceConfigs", + "id": "RegionInstanceGroupManagerPatchInstanceConfigReq", "properties": { - "creationTimestamp": { - "description": "[Output Only] Creation timestamp in RFC3339 text format.", - "type": "string" - }, - "description": { - "description": "An optional description of this resource. Provide this property when you create the resource.", - "type": "string" - }, - "grpcSettings": { - "$ref": "NotificationEndpointGrpcSettings", - "description": "Settings of the gRPC notification endpoint including the endpoint URL and the retry duration." - }, - "id": { - "description": "[Output Only] A unique identifier for this resource type. The server generates this identifier.", - "format": "uint64", - "type": "string" - }, - "kind": { - "default": "compute#notificationEndpoint", - "description": "[Output Only] Type of the resource. Always compute#notificationEndpoint for notification endpoints.", - "type": "string" - }, - "name": { - "description": "Name of the resource. Provided by the client when the resource is created. The name must be 1-63 characters long, and comply with RFC1035. 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" - }, - "region": { - "description": "[Output Only] URL of the region where the notification endpoint resides. This field applies only to the regional resource. You must specify this field as part of the HTTP request URL. It is not settable as a field in the request body.", - "type": "string" - }, - "selfLink": { - "description": "[Output Only] Server-defined URL for the resource.", - "type": "string" + "perInstanceConfigs": { + "description": "The list of per-instance configurations to insert or patch on this managed\ninstance group.", + "items": { + "$ref": "PerInstanceConfig" + }, + "type": "array" } }, "type": "object" }, - "NotificationEndpointGrpcSettings": { - "description": "Represents a gRPC setting that describes one gRPC notification endpoint and the retry duration attempting to send notification to this endpoint.", - "id": "NotificationEndpointGrpcSettings", + "RegionInstanceGroupManagerResizeRequestsListResponse": { + "id": "RegionInstanceGroupManagerResizeRequestsListResponse", "properties": { - "authority": { - "description": "Optional. If specified, this field is used to set the authority header by the sender of notifications. See https://tools.ietf.org/html/rfc7540#section-8.1.2.3", - "type": "string" - }, - "endpoint": { - "description": "Endpoint to which gRPC notifications are sent. This must be a valid gRPCLB DNS name.", - "type": "string" - }, - "payloadName": { - "description": "Optional. If specified, this field is used to populate the \"name\" field in gRPC requests.", + "etag": { "type": "string" }, - "resendInterval": { - "$ref": "Duration", - "description": "Optional. This field is used to configure how often to send a full update of all non-healthy backends. If unspecified, full updates are not sent. If specified, must be in the range between 600 seconds to 3600 seconds. Nanos are disallowed. Can only be set for regional notification endpoints." - }, - "retryDurationSec": { - "description": "How much time (in seconds) is spent attempting notification retries until a successful response is received. Default is 30s. Limit is 20m (1200s). Must be a positive number.", - "format": "uint32", - "type": "integer" - } - }, - "type": "object" - }, - "NotificationEndpointList": { - "id": "NotificationEndpointList", - "properties": { "id": { - "description": "[Output Only] Unique identifier for the resource; defined by the server.", + "description": "Output only. Unique identifier for the resource; defined by the server.", + "readOnly": true, "type": "string" }, "items": { - "description": "A list of NotificationEndpoint resources.", + "description": "A list of Resize Request resources.", "items": { - "$ref": "NotificationEndpoint" + "$ref": "InstanceGroupManagerResizeRequest" }, "type": "array" }, "kind": { - "default": "compute#notificationEndpointList", - "description": "[Output Only] Type of the resource. Always compute#notificationEndpoint for notification endpoints.", + "default": "compute#regionInstanceGroupManagerResizeRequestList", + "description": "Output only. Type of the resource. Alwayscompute#regionInstanceGroupManagerResizeRequestList for\na list of Resize Requests.", + "readOnly": true, "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.", + "description": "Output only. This token allows you to get the next page of results for\nlist requests. If the number of results is larger thanmaxResults, use the nextPageToken as a value for\nthe query parameter pageToken in the next list request.\nSubsequent list requests will have their own nextPageToken to\ncontinue paging through the results.", + "readOnly": true, "type": "string" }, "selfLink": { - "description": "[Output Only] Server-defined URL for this resource.", + "description": "Output only. Server-defined URL for this resource.", + "readOnly": true, "type": "string" }, + "unreachables": { + "description": "Output only. Unreachable resources.\nend_interface: MixerListResponseWithEtagBuilder", + "items": { + "type": "string" + }, + "readOnly": true, + "type": "array" + }, "warning": { - "description": "[Output Only] Informational warning message.", + "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.", + "description": "[Output Only] A warning code, if applicable. For example, Compute\nEngine returns NO_RESULTS_ON_PAGE if there\nare no results in the response.", "enum": [ "CLEANUP_FAILED", "DEPRECATED_RESOURCE_USED", @@ -62364,6 +89134,7 @@ "NOT_CRITICAL_ERROR", "NO_RESULTS_ON_PAGE", "PARTIAL_SUCCESS", + "QUOTA_INFO_UNAVAILABLE", "REQUIRED_TOS_AGREEMENT", "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", "RESOURCE_NOT_DELETED", @@ -62400,396 +89171,217 @@ false, false, false, + false, false - ], - "enumDescriptions": [ - "Warning about failed cleanup of transient changes made by a failed operation.", - "A link to a deprecated resource was created.", - "When deploying and at least one of the resources has a type marked as deprecated", - "The user created a boot disk that is larger than image size.", - "When deploying and at least one of the resources has a type marked as experimental", - "Warning that is present in an external api call", - "Warning that value of a field has been overridden. Deprecated unused field.", - "The operation involved use of an injected kernel, which is deprecated.", - "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", - "When deploying a deployment with a exceedingly large number of resources", - "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", - "A resource depends on a missing type", - "The route's nextHopIp address is not assigned to an instance on the network.", - "The route's next hop instance cannot ip forward.", - "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", - "The route's nextHopInstance URL refers to an instance that does not exist.", - "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", - "The route's next hop instance does not have a status of RUNNING.", - "Error which is not critical. We decided to continue the process despite the mentioned error.", - "No results are present on a particular list page.", - "Success is reported, but some results may be missing due to errors", - "The user attempted to use a resource that requires a TOS they have not accepted.", - "Warning that a resource is in use.", - "One or more of the resources set to auto-delete could not be deleted because they were in use.", - "When a resource schema validation is ignored.", - "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", - "When undeclared properties in the schema are present", - "A given scope cannot be reached." - ], - "type": "string" - }, - "data": { - "description": "[Output Only] Metadata about this warning in key: value format. For example: \"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" - }, - "Operation": { - "description": "Represents an Operation resource. Google Compute Engine has three Operation resources: * [Global](/compute/docs/reference/rest/v1/globalOperations) * [Regional](/compute/docs/reference/rest/v1/regionOperations) * [Zonal](/compute/docs/reference/rest/v1/zoneOperations) You can use an operation resource to manage asynchronous API requests. For more information, read Handling API responses. Operations can be global, regional or zonal. - For global operations, use the `globalOperations` resource. - For regional operations, use the `regionOperations` resource. - For zonal operations, use the `zoneOperations` resource. For more information, read Global, Regional, and Zonal Resources. Note that completed Operation resources have a limited retention period.", - "id": "Operation", - "properties": { - "clientOperationId": { - "description": "[Output Only] The value of `requestId` if you provided it in the request. Not present otherwise.", - "type": "string" - }, - "creationTimestamp": { - "description": "[Deprecated] This field is deprecated.", - "type": "string" - }, - "description": { - "description": "[Output Only] A textual description of the operation, which is set when the operation is created.", - "type": "string" - }, - "endTime": { - "description": "[Output Only] The time that this operation was completed. This value is in RFC3339 text format.", - "type": "string" - }, - "error": { - "description": "[Output Only] If errors are generated during processing of the operation, this field will be populated.", - "properties": { - "errors": { - "description": "[Output Only] The array of errors encountered while processing this operation.", - "items": { - "properties": { - "code": { - "description": "[Output Only] The error type identifier for this error.", - "type": "string" - }, - "errorDetails": { - "description": "[Output Only] An optional list of messages that contain the error details. There is a set of defined message types to use for providing details.The syntax depends on the error code. For example, QuotaExceededInfo will have details when the error code is QUOTA_EXCEEDED.", - "items": { - "properties": { - "errorInfo": { - "$ref": "ErrorInfo" - }, - "help": { - "$ref": "Help" - }, - "localizedMessage": { - "$ref": "LocalizedMessage" - }, - "quotaInfo": { - "$ref": "QuotaExceededInfo" - } - }, - "type": "object" - }, - "type": "array" - }, - "location": { - "description": "[Output Only] Indicates the field in the request that caused the error. This property is optional.", + ], + "enumDescriptions": [ + "Warning about failed cleanup of transient changes made by a failed\noperation.", + "A link to a deprecated resource was created.", + "When deploying and at least one of the resources has a type marked as\ndeprecated", + "The user created a boot disk that is larger than image size.", + "When deploying and at least one of the resources has a type marked as\nexperimental", + "Warning that is present in an external api call", + "Warning that value of a field has been overridden.\nDeprecated unused field.", + "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is\nnot of type HTTP/HTTPS/HTTP2.", + "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed\nwhich captures the amount of resources filtered out by\nuser-defined list filter.", + "A resource depends on a missing type", + "The route's nextHopIp address is not assigned to an instance on the\nnetwork.", + "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an\nipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not exist.", + "The route's nextHopInstance URL refers to an instance that is not on the\nsame network as the route.", + "The route's next hop instance does not have a status of RUNNING.", + "Error which is not critical. We decided to continue the process despite\nthe mentioned error.", + "No results are present on a particular list page.", + "Success is reported, but some results may be missing due to errors", + "Quota information is not available to client requests (e.g:\nregions.list).", + "The user attempted to use a resource that requires a TOS they have not\naccepted.", + "Warning that a resource is in use.", + "One or more of the resources set to auto-delete could not be deleted\nbecause they were in use.", + "When a resource schema validation is ignored.", + "Instance template used in instance group manager is valid as such, but\nits application does not make a lot of sense, because it allows only\nsingle instance in instance group.", + "When undeclared properties in the schema are present", + "A given scope cannot be reached." + ], + "type": "string" + }, + "data": { + "description": "[Output Only] Metadata about this warning in key:\nvalue format. For example:\n\n\"data\": [\n {\n \"key\": \"scope\",\n \"value\": \"zones/us-east1-d\"\n }", + "items": { + "properties": { + "key": { + "description": "[Output Only] A key that provides more detail on the warning being\nreturned. For example, for warnings where there are no results in a list\nrequest for a particular zone, this key might be scope and\nthe key value might be the zone name. Other examples might be a key\nindicating a deprecated resource and a suggested replacement, or a\nwarning about invalid network settings (for example, if an instance\nattempts to perform IP forwarding but is not enabled for IP forwarding).", "type": "string" }, - "message": { - "description": "[Output Only] An optional, human-readable error message.", + "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" } }, + "readOnly": true, "type": "object" + } + }, + "type": "object" + }, + "RegionInstanceGroupManagerUpdateInstanceConfigReq": { + "description": "RegionInstanceGroupManagers.updatePerInstanceConfigs", + "id": "RegionInstanceGroupManagerUpdateInstanceConfigReq", + "properties": { + "perInstanceConfigs": { + "description": "The list of per-instance configurations to insert or patch on this managed\ninstance group.", + "items": { + "$ref": "PerInstanceConfig" + }, + "type": "array" + } + }, + "type": "object" + }, + "RegionInstanceGroupManagersAbandonInstancesRequest": { + "id": "RegionInstanceGroupManagersAbandonInstancesRequest", + "properties": { + "instances": { + "description": "The URLs of one or more instances to abandon. This can be a full URL or\na partial URL, such as zones/[ZONE]/instances/[INSTANCE_NAME].", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "RegionInstanceGroupManagersApplyUpdatesRequest": { + "description": "RegionInstanceGroupManagers.applyUpdatesToInstances", + "id": "RegionInstanceGroupManagersApplyUpdatesRequest", + "properties": { + "allInstances": { + "description": "Flag to update all instances instead of specified list of “instances”.\nIf the flag is set to true then the instances may not be specified\nin the request.", + "type": "boolean" }, - "httpErrorMessage": { - "description": "[Output Only] If the operation fails, this field contains the HTTP error message that was returned, such as `NOT FOUND`.", - "type": "string" - }, - "httpErrorStatusCode": { - "description": "[Output Only] If the operation fails, this field contains the HTTP error status code that was returned. For example, a `404` means the resource was not found.", - "format": "int32", - "type": "integer" - }, - "id": { - "description": "[Output Only] The unique identifier for the operation. This identifier is defined by the server.", - "format": "uint64", - "type": "string" - }, - "insertTime": { - "description": "[Output Only] The time that this operation was requested. This value is in RFC3339 text format.", - "type": "string" - }, - "instancesBulkInsertOperationMetadata": { - "$ref": "InstancesBulkInsertOperationMetadata" - }, - "kind": { - "default": "compute#operation", - "description": "[Output Only] Type of the resource. Always `compute#operation` for Operation resources.", - "type": "string" - }, - "name": { - "description": "[Output Only] Name of the operation.", - "type": "string" - }, - "operationGroupId": { - "description": "[Output Only] An ID that represents a group of operations, such as when a group of operations results from a `bulkInsert` API request.", - "type": "string" - }, - "operationType": { - "description": "[Output Only] The type of operation, such as `insert`, `update`, or `delete`, and so on.", - "type": "string" - }, - "progress": { - "description": "[Output Only] An optional progress indicator that ranges from 0 to 100. There is no requirement that this be linear or support any granularity of operations. This should not be used to guess when the operation will be complete. This number should monotonically increase as the operation progresses.", - "format": "int32", - "type": "integer" - }, - "region": { - "description": "[Output Only] The URL of the region where the operation resides. Only applicable when performing regional operations.", - "type": "string" - }, - "selfLink": { - "description": "[Output Only] Server-defined URL for the resource.", - "type": "string" - }, - "setCommonInstanceMetadataOperationMetadata": { - "$ref": "SetCommonInstanceMetadataOperationMetadata", - "description": "[Output Only] If the operation is for projects.setCommonInstanceMetadata, this field will contain information on all underlying zonal actions and their state." - }, - "startTime": { - "description": "[Output Only] The time that this operation was started by the server. This value is in RFC3339 text format.", - "type": "string" + "instances": { + "description": "The list of URLs of one or more instances for which you want to apply\nupdates. Each URL can be a full URL or a partial URL, such aszones/[ZONE]/instances/[INSTANCE_NAME].", + "items": { + "type": "string" + }, + "type": "array" }, - "status": { - "description": "[Output Only] The status of the operation, which can be one of the following: `PENDING`, `RUNNING`, or `DONE`.", + "minimalAction": { + "description": "The minimal action that you want to perform on each instance during the\nupdate:\n \n \n - REPLACE: At minimum, delete the instance and create it\n again. \n - RESTART: Stop the instance and start it\n again. \n - REFRESH: Do not stop the instance and limit\n disruption as much as possible. \n - NONE: Do not\n disrupt the instance at all.\n\n\nBy default, the minimum action is NONE. If your update\nrequires a more disruptive action than you set with this flag, the\nnecessary action is performed to execute the update.", "enum": [ - "DONE", - "PENDING", - "RUNNING" + "NONE", + "REFRESH", + "REPLACE", + "RESTART" ], "enumDescriptions": [ - "", - "", - "" + "Do not perform any action.", + "Do not stop the instance.", + "(Default.) Replace the instance according to the replacement method\noption.", + "Stop the instance and start it again." ], "type": "string" }, - "statusMessage": { - "description": "[Output Only] An optional textual description of the current status of the operation.", - "type": "string" - }, - "targetId": { - "description": "[Output Only] The unique target ID, which identifies a specific incarnation of the target resource.", - "format": "uint64", - "type": "string" - }, - "targetLink": { - "description": "[Output Only] The URL of the resource that the operation modifies. For operations related to creating a snapshot, this points to the persistent disk that the snapshot was created from.", - "type": "string" - }, - "user": { - "description": "[Output Only] User who requested the operation, for example: `user@example.com` or `alice_smith_identifier (global/workforcePools/example-com-us-employees)`.", + "mostDisruptiveAllowedAction": { + "description": "The most disruptive action that you want to perform on each instance during\nthe update:\n \n \n - REPLACE: Delete the instance and create it again.\n - RESTART: Stop the instance and start it again.\n - REFRESH: Do not stop the instance and limit disruption\n as much as possible. \n - NONE: Do not disrupt the\n instance at all.\n\n\nBy default, the most disruptive allowed action is REPLACE. If\nyour update requires a more disruptive action than you set with this flag,\nthe update request will fail.", + "enum": [ + "NONE", + "REFRESH", + "REPLACE", + "RESTART" + ], + "enumDescriptions": [ + "Do not perform any action.", + "Do not stop the instance.", + "(Default.) Replace the instance according to the replacement method\noption.", + "Stop the instance and start it again." + ], "type": "string" - }, - "warnings": { - "description": "[Output Only] If warning messages are generated during processing of the operation, this field will be populated.", + } + }, + "type": "object" + }, + "RegionInstanceGroupManagersCreateInstancesRequest": { + "description": "RegionInstanceGroupManagers.createInstances", + "id": "RegionInstanceGroupManagersCreateInstancesRequest", + "properties": { + "instances": { + "description": "[Required] List of specifications of per-instance configs.", "items": { - "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", - "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", - "LARGE_DEPLOYMENT_WARNING", - "LIST_OVERHEAD_QUOTA_EXCEED", - "MISSING_TYPE_DEPENDENCY", - "NEXT_HOP_ADDRESS_NOT_ASSIGNED", - "NEXT_HOP_CANNOT_IP_FORWARD", - "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", - "NEXT_HOP_INSTANCE_NOT_FOUND", - "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", - "NEXT_HOP_NOT_RUNNING", - "NOT_CRITICAL_ERROR", - "NO_RESULTS_ON_PAGE", - "PARTIAL_SUCCESS", - "REQUIRED_TOS_AGREEMENT", - "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", - "RESOURCE_NOT_DELETED", - "SCHEMA_VALIDATION_IGNORED", - "SINGLE_INSTANCE_PROPERTY_TEMPLATE", - "UNDECLARED_PROPERTIES", - "UNREACHABLE" - ], - "enumDeprecated": [ - false, - false, - false, - false, - false, - false, - true, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false - ], - "enumDescriptions": [ - "Warning about failed cleanup of transient changes made by a failed operation.", - "A link to a deprecated resource was created.", - "When deploying and at least one of the resources has a type marked as deprecated", - "The user created a boot disk that is larger than image size.", - "When deploying and at least one of the resources has a type marked as experimental", - "Warning that is present in an external api call", - "Warning that value of a field has been overridden. Deprecated unused field.", - "The operation involved use of an injected kernel, which is deprecated.", - "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", - "When deploying a deployment with a exceedingly large number of resources", - "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", - "A resource depends on a missing type", - "The route's nextHopIp address is not assigned to an instance on the network.", - "The route's next hop instance cannot ip forward.", - "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", - "The route's nextHopInstance URL refers to an instance that does not exist.", - "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", - "The route's next hop instance does not have a status of RUNNING.", - "Error which is not critical. We decided to continue the process despite the mentioned error.", - "No results are present on a particular list page.", - "Success is reported, but some results may be missing due to errors", - "The user attempted to use a resource that requires a TOS they have not accepted.", - "Warning that a resource is in use.", - "One or more of the resources set to auto-delete could not be deleted because they were in use.", - "When a resource schema validation is ignored.", - "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", - "When undeclared properties in the schema are present", - "A given scope cannot be reached." - ], - "type": "string" - }, - "data": { - "description": "[Output Only] Metadata about this warning in key: value format. For example: \"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" + "$ref": "PerInstanceConfig" }, "type": "array" - }, - "zone": { - "description": "[Output Only] The URL of the zone where the operation resides. Only applicable when performing per-zone operations.", - "type": "string" } }, "type": "object" }, - "OperationAggregatedList": { - "id": "OperationAggregatedList", + "RegionInstanceGroupManagersDeleteInstancesRequest": { + "id": "RegionInstanceGroupManagersDeleteInstancesRequest", "properties": { - "id": { - "description": "[Output Only] The unique identifier for the resource. This identifier is defined by the server.", - "type": "string" + "instances": { + "description": "The URLs of one or more instances to delete. This can be a full URL or\na partial URL, such as zones/[ZONE]/instances/[INSTANCE_NAME].", + "items": { + "type": "string" + }, + "type": "array" }, + "skipInstancesOnValidationError": { + "description": "Specifies whether the request should proceed despite the inclusion of\ninstances that are not members of the group or that are already in the\nprocess of being deleted or abandoned. If this field is set to `false` and\nsuch an instance is specified in the request, the operation fails. The\noperation always fails if the request contains a malformed instance URL or\na reference to an instance that exists in a zone or region other than the\ngroup's zone or region.", + "type": "boolean" + } + }, + "type": "object" + }, + "RegionInstanceGroupManagersListErrorsResponse": { + "id": "RegionInstanceGroupManagersListErrorsResponse", + "properties": { "items": { - "additionalProperties": { - "$ref": "OperationsScopedList", - "description": "[Output Only] Name of the scope containing this set of operations." + "description": "[Output Only] The list of errors of the managed instance group.", + "items": { + "$ref": "InstanceManagedByIgmError" }, - "description": "[Output Only] A map of scoped operation lists.", - "type": "object" - }, - "kind": { - "default": "compute#operationAggregatedList", - "description": "[Output Only] Type of resource. Always `compute#operationAggregatedList` for aggregated lists of operations.", - "type": "string" + "type": "array" }, "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" - }, - "selfLink": { - "description": "[Output Only] Server-defined URL for this resource.", + "description": "Output only. [Output Only] This token allows you to get the next page of results for\nlist requests. If the number of results is larger thanmaxResults, use the nextPageToken as a value for\nthe query parameter pageToken in the next list request.\nSubsequent list requests will have their own nextPageToken to\ncontinue paging through the results.", + "readOnly": true, "type": "string" - }, - "unreachables": { - "description": "[Output Only] Unreachable resources.", + } + }, + "type": "object" + }, + "RegionInstanceGroupManagersListInstanceConfigsResp": { + "id": "RegionInstanceGroupManagersListInstanceConfigsResp", + "properties": { + "items": { + "description": "Output only. [Output Only] The list of PerInstanceConfig.", "items": { - "type": "string" + "$ref": "PerInstanceConfig" }, + "readOnly": true, "type": "array" }, + "nextPageToken": { + "description": "Output only. [Output Only] This token allows you to get the next page of results for\nlist requests. If the number of results is larger thanmaxResults, use the nextPageToken as a value for\nthe query parameter pageToken in the next list request.\nSubsequent list requests will have their own nextPageToken to\ncontinue paging through the results.", + "readOnly": true, + "type": "string" + }, "warning": { - "description": "[Output Only] Informational warning message.", + "description": "Output only. [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.", + "description": "[Output Only] A warning code, if applicable. For example, Compute\nEngine returns NO_RESULTS_ON_PAGE if there\nare no results in the response.", "enum": [ "CLEANUP_FAILED", "DEPRECATED_RESOURCE_USED", @@ -62812,6 +89404,7 @@ "NOT_CRITICAL_ERROR", "NO_RESULTS_ON_PAGE", "PARTIAL_SUCCESS", + "QUOTA_INFO_UNAVAILABLE", "REQUIRED_TOS_AGREEMENT", "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", "RESOURCE_NOT_DELETED", @@ -62848,46 +89441,48 @@ false, false, false, + false, false ], "enumDescriptions": [ - "Warning about failed cleanup of transient changes made by a failed operation.", + "Warning about failed cleanup of transient changes made by a failed\noperation.", "A link to a deprecated resource was created.", - "When deploying and at least one of the resources has a type marked as deprecated", + "When deploying and at least one of the resources has a type marked as\ndeprecated", "The user created a boot disk that is larger than image size.", - "When deploying and at least one of the resources has a type marked as experimental", + "When deploying and at least one of the resources has a type marked as\nexperimental", "Warning that is present in an external api call", - "Warning that value of a field has been overridden. Deprecated unused field.", + "Warning that value of a field has been overridden.\nDeprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", - "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is\nnot of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", - "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", + "Resource can't be retrieved due to list overhead quota exceed\nwhich captures the amount of resources filtered out by\nuser-defined list filter.", "A resource depends on a missing type", - "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's nextHopIp address is not assigned to an instance on the\nnetwork.", "The route's next hop instance cannot ip forward.", - "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not have an\nipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", - "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that is not on the\nsame network as the route.", "The route's next hop instance does not have a status of RUNNING.", - "Error which is not critical. We decided to continue the process despite the mentioned error.", + "Error which is not critical. We decided to continue the process despite\nthe mentioned error.", "No results are present on a particular list page.", "Success is reported, but some results may be missing due to errors", - "The user attempted to use a resource that requires a TOS they have not accepted.", + "Quota information is not available to client requests (e.g:\nregions.list).", + "The user attempted to use a resource that requires a TOS they have not\naccepted.", "Warning that a resource is in use.", - "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "One or more of the resources set to auto-delete could not be deleted\nbecause they were in use.", "When a resource schema validation is ignored.", - "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", + "Instance template used in instance group manager is valid as such, but\nits application does not make a lot of sense, because it allows only\nsingle instance in instance group.", "When undeclared properties in the schema are present", "A given scope cannot be reached." ], "type": "string" }, "data": { - "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", + "description": "[Output Only] Metadata about this warning in key:\nvalue format. For example:\n\n\"data\": [\n {\n \"key\": \"scope\",\n \"value\": \"zones/us-east1-d\"\n }", "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).", + "description": "[Output Only] A key that provides more detail on the warning being\nreturned. For example, for warnings where there are no results in a list\nrequest for a particular zone, this key might be scope and\nthe key value might be the zone name. Other examples might be a key\nindicating a deprecated resource and a suggested replacement, or a\nwarning about invalid network settings (for example, if an instance\nattempts to perform IP forwarding but is not enabled for IP forwarding).", "type": "string" }, "value": { @@ -62904,44 +89499,167 @@ "type": "string" } }, + "readOnly": true, "type": "object" } }, "type": "object" }, - "OperationList": { - "description": "Contains a list of Operation resources.", - "id": "OperationList", + "RegionInstanceGroupManagersListInstancesResponse": { + "id": "RegionInstanceGroupManagersListInstancesResponse", + "properties": { + "managedInstances": { + "description": "A list of managed instances.", + "items": { + "$ref": "ManagedInstance" + }, + "type": "array" + }, + "nextPageToken": { + "description": "Output only. [Output Only] This token allows you to get the next page of results for\nlist requests. If the number of results is larger thanmaxResults, use the nextPageToken as a value for\nthe query parameter pageToken in the next list request.\nSubsequent list requests will have their own nextPageToken to\ncontinue paging through the results.", + "readOnly": true, + "type": "string" + } + }, + "type": "object" + }, + "RegionInstanceGroupManagersRecreateRequest": { + "id": "RegionInstanceGroupManagersRecreateRequest", + "properties": { + "instances": { + "description": "The URLs of one or more instances to recreate. This can be a full URL or\na partial URL, such as zones/[ZONE]/instances/[INSTANCE_NAME].", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "RegionInstanceGroupManagersResumeInstancesRequest": { + "id": "RegionInstanceGroupManagersResumeInstancesRequest", + "properties": { + "instances": { + "description": "The URLs of one or more instances to resume. This can be a full URL or\na partial URL, such as zones/[ZONE]/instances/[INSTANCE_NAME].", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "RegionInstanceGroupManagersSetTargetPoolsRequest": { + "id": "RegionInstanceGroupManagersSetTargetPoolsRequest", + "properties": { + "fingerprint": { + "description": "Fingerprint of the target pools information, which is a hash of the\ncontents. This field is used for optimistic locking when you update the\ntarget pool entries. This field is optional.", + "format": "byte", + "type": "string" + }, + "targetPools": { + "description": "The URL of all TargetPool resources to which instances in theinstanceGroup field are added. The target pools automatically\napply to all of the instances in the managed instance group.", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "RegionInstanceGroupManagersSetTemplateRequest": { + "id": "RegionInstanceGroupManagersSetTemplateRequest", + "properties": { + "instanceTemplate": { + "description": "URL of the InstanceTemplate resource from which all new instances will be\ncreated.", + "type": "string" + } + }, + "type": "object" + }, + "RegionInstanceGroupManagersStartInstancesRequest": { + "id": "RegionInstanceGroupManagersStartInstancesRequest", + "properties": { + "instances": { + "description": "The URLs of one or more instances to start. This can be a full URL or\na partial URL, such as zones/[ZONE]/instances/[INSTANCE_NAME].", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "RegionInstanceGroupManagersStopInstancesRequest": { + "id": "RegionInstanceGroupManagersStopInstancesRequest", + "properties": { + "forceStop": { + "description": "If this flag is set to true, the Instance Group Manager will proceed to\nstop the instances, skipping initialization on them.", + "type": "boolean" + }, + "instances": { + "description": "The URLs of one or more instances to stop. This can be a full URL or\na partial URL, such as zones/[ZONE]/instances/[INSTANCE_NAME].", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "RegionInstanceGroupManagersSuspendInstancesRequest": { + "id": "RegionInstanceGroupManagersSuspendInstancesRequest", + "properties": { + "forceSuspend": { + "description": "If this flag is set to true, the Instance Group Manager will proceed to\nsuspend the instances, skipping initialization on them.", + "type": "boolean" + }, + "instances": { + "description": "The URLs of one or more instances to suspend. This can be a full URL or\na partial URL, such as zones/[ZONE]/instances/[INSTANCE_NAME].", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "RegionInstanceGroupsListInstances": { + "id": "RegionInstanceGroupsListInstances", "properties": { "id": { - "description": "[Output Only] The unique identifier for the resource. This identifier is defined by the server.", + "description": "Output only. [Output Only] Unique identifier for the resource; defined by the server.", + "readOnly": true, "type": "string" }, "items": { - "description": "[Output Only] A list of Operation resources.", + "description": "A list of InstanceWithNamedPorts resources.", "items": { - "$ref": "Operation" + "$ref": "InstanceWithNamedPorts" }, "type": "array" }, "kind": { - "default": "compute#operationList", - "description": "[Output Only] Type of resource. Always `compute#operations` for Operations resource.", + "default": "compute#regionInstanceGroupsListInstances", + "description": "Output only. The resource type.", + "readOnly": true, "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.", + "description": "Output only. [Output Only] This token allows you to get the next page of results for\nlist requests. If the number of results is larger thanmaxResults, use the nextPageToken as a value for\nthe query parameter pageToken in the next list request.\nSubsequent list requests will have their own nextPageToken to\ncontinue paging through the results.", + "readOnly": true, "type": "string" }, "selfLink": { - "description": "[Output Only] Server-defined URL for this resource.", + "description": "Output only. [Output Only] Server-defined URL for this resource.", + "readOnly": true, "type": "string" }, "warning": { - "description": "[Output Only] Informational warning message.", + "description": "Output only. [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.", + "description": "[Output Only] A warning code, if applicable. For example, Compute\nEngine returns NO_RESULTS_ON_PAGE if there\nare no results in the response.", "enum": [ "CLEANUP_FAILED", "DEPRECATED_RESOURCE_USED", @@ -62964,6 +89682,7 @@ "NOT_CRITICAL_ERROR", "NO_RESULTS_ON_PAGE", "PARTIAL_SUCCESS", + "QUOTA_INFO_UNAVAILABLE", "REQUIRED_TOS_AGREEMENT", "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", "RESOURCE_NOT_DELETED", @@ -63000,46 +89719,48 @@ false, false, false, + false, false ], "enumDescriptions": [ - "Warning about failed cleanup of transient changes made by a failed operation.", + "Warning about failed cleanup of transient changes made by a failed\noperation.", "A link to a deprecated resource was created.", - "When deploying and at least one of the resources has a type marked as deprecated", + "When deploying and at least one of the resources has a type marked as\ndeprecated", "The user created a boot disk that is larger than image size.", - "When deploying and at least one of the resources has a type marked as experimental", + "When deploying and at least one of the resources has a type marked as\nexperimental", "Warning that is present in an external api call", - "Warning that value of a field has been overridden. Deprecated unused field.", + "Warning that value of a field has been overridden.\nDeprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", - "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is\nnot of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", - "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", + "Resource can't be retrieved due to list overhead quota exceed\nwhich captures the amount of resources filtered out by\nuser-defined list filter.", "A resource depends on a missing type", - "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's nextHopIp address is not assigned to an instance on the\nnetwork.", "The route's next hop instance cannot ip forward.", - "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not have an\nipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", - "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that is not on the\nsame network as the route.", "The route's next hop instance does not have a status of RUNNING.", - "Error which is not critical. We decided to continue the process despite the mentioned error.", + "Error which is not critical. We decided to continue the process despite\nthe mentioned error.", "No results are present on a particular list page.", "Success is reported, but some results may be missing due to errors", - "The user attempted to use a resource that requires a TOS they have not accepted.", + "Quota information is not available to client requests (e.g:\nregions.list).", + "The user attempted to use a resource that requires a TOS they have not\naccepted.", "Warning that a resource is in use.", - "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "One or more of the resources set to auto-delete could not be deleted\nbecause they were in use.", "When a resource schema validation is ignored.", - "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", + "Instance template used in instance group manager is valid as such, but\nits application does not make a lot of sense, because it allows only\nsingle instance in instance group.", "When undeclared properties in the schema are present", "A given scope cannot be reached." ], "type": "string" }, "data": { - "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", + "description": "[Output Only] Metadata about this warning in key:\nvalue format. For example:\n\n\"data\": [\n {\n \"key\": \"scope\",\n \"value\": \"zones/us-east1-d\"\n }", "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).", + "description": "[Output Only] A key that provides more detail on the warning being\nreturned. For example, for warnings where there are no results in a list\nrequest for a particular zone, this key might be scope and\nthe key value might be the zone name. Other examples might be a key\nindicating a deprecated resource and a suggested replacement, or a\nwarning about invalid network settings (for example, if an instance\nattempts to perform IP forwarding but is not enabled for IP forwarding).", "type": "string" }, "value": { @@ -63056,26 +89777,88 @@ "type": "string" } }, + "readOnly": true, "type": "object" } }, "type": "object" }, - "OperationsScopedList": { - "id": "OperationsScopedList", + "RegionInstanceGroupsListInstancesRequest": { + "id": "RegionInstanceGroupsListInstancesRequest", "properties": { - "operations": { - "description": "[Output Only] A list of operations contained in this scope.", + "instanceState": { + "description": "Instances in which state should be returned. Valid options are:\n'ALL', 'RUNNING'. By default, it lists all instances.", + "enum": [ + "ALL", + "RUNNING" + ], + "enumDescriptions": [ + "Matches any status of the instances, running, non-running and others.", + "Instance is in RUNNING state if it is running." + ], + "type": "string" + }, + "portName": { + "description": "Name of port user is interested in. It is optional. If it is set, only\ninformation about this ports will be returned. If it is not set, all the\nnamed ports will be returned.\nAlways lists all instances.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "type": "string" + } + }, + "type": "object" + }, + "RegionInstanceGroupsSetNamedPortsRequest": { + "id": "RegionInstanceGroupsSetNamedPortsRequest", + "properties": { + "fingerprint": { + "description": "The fingerprint of the named ports information for this instance group.\nUse this optional property to prevent conflicts when multiple users change\nthe named ports settings concurrently. Obtain the fingerprint with theinstanceGroups.get\nmethod. Then, include the fingerprint in your request to ensure that you\ndo not overwrite changes that were applied from another\nconcurrent request.", + "format": "byte", + "type": "string" + }, + "namedPorts": { + "description": "The list of named ports to set for this instance group.", "items": { - "$ref": "Operation" + "$ref": "NamedPort" + }, + "type": "array" + } + }, + "type": "object" + }, + "RegionList": { + "description": "Contains a list of region resources.", + "id": "RegionList", + "properties": { + "id": { + "description": "[Output Only] Unique identifier for the resource; defined by the server.", + "type": "string" + }, + "items": { + "description": "A list of Region resources.", + "items": { + "$ref": "Region" }, "type": "array" }, + "kind": { + "default": "compute#regionList", + "description": "Output only. [Output Only] Type of resource. Always compute#regionList for\nlists of regions.", + "readOnly": true, + "type": "string" + }, + "nextPageToken": { + "description": "[Output Only] This token allows you to get the next page of results for\nlist requests. If the number of results is larger thanmaxResults, use the nextPageToken as a value for\nthe query parameter pageToken in the next list request.\nSubsequent list requests will have their own nextPageToken to\ncontinue paging through the results.", + "type": "string" + }, + "selfLink": { + "description": "Output only. [Output Only] Server-defined URL for this resource.", + "readOnly": true, + "type": "string" + }, "warning": { - "description": "[Output Only] Informational warning which replaces the list of operations when the list is empty.", + "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.", + "description": "[Output Only] A warning code, if applicable. For example, Compute\nEngine returns NO_RESULTS_ON_PAGE if there\nare no results in the response.", "enum": [ "CLEANUP_FAILED", "DEPRECATED_RESOURCE_USED", @@ -63098,6 +89881,7 @@ "NOT_CRITICAL_ERROR", "NO_RESULTS_ON_PAGE", "PARTIAL_SUCCESS", + "QUOTA_INFO_UNAVAILABLE", "REQUIRED_TOS_AGREEMENT", "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", "RESOURCE_NOT_DELETED", @@ -63134,46 +89918,48 @@ false, false, false, + false, false ], "enumDescriptions": [ - "Warning about failed cleanup of transient changes made by a failed operation.", + "Warning about failed cleanup of transient changes made by a failed\noperation.", "A link to a deprecated resource was created.", - "When deploying and at least one of the resources has a type marked as deprecated", + "When deploying and at least one of the resources has a type marked as\ndeprecated", "The user created a boot disk that is larger than image size.", - "When deploying and at least one of the resources has a type marked as experimental", + "When deploying and at least one of the resources has a type marked as\nexperimental", "Warning that is present in an external api call", - "Warning that value of a field has been overridden. Deprecated unused field.", + "Warning that value of a field has been overridden.\nDeprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", - "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is\nnot of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", - "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", + "Resource can't be retrieved due to list overhead quota exceed\nwhich captures the amount of resources filtered out by\nuser-defined list filter.", "A resource depends on a missing type", - "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's nextHopIp address is not assigned to an instance on the\nnetwork.", "The route's next hop instance cannot ip forward.", - "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not have an\nipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", - "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that is not on the\nsame network as the route.", "The route's next hop instance does not have a status of RUNNING.", - "Error which is not critical. We decided to continue the process despite the mentioned error.", + "Error which is not critical. We decided to continue the process despite\nthe mentioned error.", "No results are present on a particular list page.", "Success is reported, but some results may be missing due to errors", - "The user attempted to use a resource that requires a TOS they have not accepted.", + "Quota information is not available to client requests (e.g:\nregions.list).", + "The user attempted to use a resource that requires a TOS they have not\naccepted.", "Warning that a resource is in use.", - "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "One or more of the resources set to auto-delete could not be deleted\nbecause they were in use.", "When a resource schema validation is ignored.", - "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", + "Instance template used in instance group manager is valid as such, but\nits application does not make a lot of sense, because it allows only\nsingle instance in instance group.", "When undeclared properties in the schema are present", "A given scope cannot be reached." ], "type": "string" }, "data": { - "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", + "description": "[Output Only] Metadata about this warning in key:\nvalue format. For example:\n\n\"data\": [\n {\n \"key\": \"scope\",\n \"value\": \"zones/us-east1-d\"\n }", "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).", + "description": "[Output Only] A key that provides more detail on the warning being\nreturned. For example, for warnings where there are no results in a list\nrequest for a particular zone, this key might be scope and\nthe key value might be the zone name. Other examples might be a key\nindicating a deprecated resource and a suggested replacement, or a\nwarning about invalid network settings (for example, if an instance\nattempts to perform IP forwarding but is not enabled for IP forwarding).", "type": "string" }, "value": { @@ -63195,209 +89981,460 @@ }, "type": "object" }, - "OutlierDetection": { - "description": "Settings controlling the eviction of unhealthy hosts from the load balancing pool for the backend service.", - "id": "OutlierDetection", + "RegionNetworkEndpointGroupsAttachEndpointsRequest": { + "id": "RegionNetworkEndpointGroupsAttachEndpointsRequest", "properties": { - "baseEjectionTime": { - "$ref": "Duration", - "description": "The base time that a backend endpoint is ejected for. Defaults to 30000ms or 30s. After a backend endpoint is returned back to the load balancing pool, it can be ejected again in another ejection analysis. Thus, the total ejection time is equal to the base ejection time multiplied by the number of times the backend endpoint has been ejected. Defaults to 30000ms or 30s." + "networkEndpoints": { + "description": "The list of network endpoints to be attached.", + "items": { + "$ref": "NetworkEndpoint" + }, + "type": "array" + } + }, + "type": "object" + }, + "RegionNetworkEndpointGroupsDetachEndpointsRequest": { + "id": "RegionNetworkEndpointGroupsDetachEndpointsRequest", + "properties": { + "networkEndpoints": { + "description": "The list of network endpoints to be detached.", + "items": { + "$ref": "NetworkEndpoint" + }, + "type": "array" + } + }, + "type": "object" + }, + "RegionNetworkFirewallPoliciesGetEffectiveFirewallsResponse": { + "id": "RegionNetworkFirewallPoliciesGetEffectiveFirewallsResponse", + "properties": { + "firewallPolicys": { + "description": "Output only. [Output only] Effective firewalls from firewall policy. It applies to\nRegional Network Firewall Policies in the specified region, Global Network\nFirewall Policies and Hierachial Firewall Policies which are associated\nwith the network.", + "items": { + "$ref": "RegionNetworkFirewallPoliciesGetEffectiveFirewallsResponseEffectiveFirewallPolicy" + }, + "readOnly": true, + "type": "array" }, - "consecutiveErrors": { - "description": "Number of consecutive errors before a backend endpoint is ejected from the load balancing pool. When the backend endpoint is accessed over HTTP, a 5xx return code qualifies as an error. Defaults to 5.", - "format": "int32", - "type": "integer" + "firewalls": { + "description": "Effective firewalls on the network.", + "items": { + "$ref": "Firewall" + }, + "type": "array" + } + }, + "type": "object" + }, + "RegionNetworkFirewallPoliciesGetEffectiveFirewallsResponseEffectiveFirewallPolicy": { + "id": "RegionNetworkFirewallPoliciesGetEffectiveFirewallsResponseEffectiveFirewallPolicy", + "properties": { + "displayName": { + "description": "Output only. [Output Only] The display name of the firewall policy.", + "readOnly": true, + "type": "string" }, - "consecutiveGatewayFailure": { - "description": "The number of consecutive gateway failures (502, 503, 504 status or connection errors that are mapped to one of those status codes) before a consecutive gateway failure ejection occurs. Defaults to 3.", - "format": "int32", - "type": "integer" + "name": { + "description": "Output only. [Output Only] The name of the firewall policy.", + "readOnly": true, + "type": "string" }, - "enforcingConsecutiveErrors": { - "description": "The percentage chance that a backend endpoint will be ejected when an outlier status is detected through consecutive 5xx. This setting can be used to disable ejection or to ramp it up slowly. Defaults to 0.", - "format": "int32", - "type": "integer" + "packetMirroringRules": { + "description": "Output only. [Output only] The packet mirroring rules that apply to the network.", + "items": { + "$ref": "FirewallPolicyRule" + }, + "readOnly": true, + "type": "array" }, - "enforcingConsecutiveGatewayFailure": { - "description": "The percentage chance that a backend endpoint will be ejected when an outlier status is detected through consecutive gateway failures. This setting can be used to disable ejection or to ramp it up slowly. Defaults to 100.", + "priority": { + "description": "Output only. [Output only] Priority of firewall policy association. Not applicable for\ntype=HIERARCHY.", "format": "int32", + "readOnly": true, "type": "integer" }, - "enforcingSuccessRate": { - "description": "The percentage chance that a backend endpoint will be ejected when an outlier status is detected through success rate statistics. This setting can be used to disable ejection or to ramp it up slowly. Defaults to 100. Not supported when the backend service uses Serverless NEG.", - "format": "int32", - "type": "integer" + "rules": { + "description": "Output only. [Output only] The rules that apply to the network.", + "items": { + "$ref": "FirewallPolicyRule" + }, + "readOnly": true, + "type": "array" }, - "interval": { - "$ref": "Duration", - "description": "Time interval between ejection analysis sweeps. This can result in both new ejections and backend endpoints being returned to service. The interval is equal to the number of seconds as defined in outlierDetection.interval.seconds plus the number of nanoseconds as defined in outlierDetection.interval.nanos. Defaults to 1 second." + "type": { + "description": "Output only. [Output Only] The type of the firewall policy. Can be one of HIERARCHY,\nNETWORK, NETWORK_REGIONAL, SYSTEM_GLOBAL, SYSTEM_REGIONAL.", + "enum": [ + "HIERARCHY", + "NETWORK", + "NETWORK_REGIONAL", + "SYSTEM_GLOBAL", + "SYSTEM_REGIONAL", + "UNSPECIFIED" + ], + "enumDescriptions": [ + "", + "", + "", + "", + "", + "" + ], + "readOnly": true, + "type": "string" + } + }, + "type": "object" + }, + "RegionSetLabelsRequest": { + "id": "RegionSetLabelsRequest", + "properties": { + "labelFingerprint": { + "description": "The fingerprint of the previous set of labels for this resource,\nused to detect conflicts. The fingerprint is initially generated by Compute\nEngine and changes after every request to modify or update labels. You must\nalways provide an up-to-date fingerprint hash in order to update or change\nlabels. Make a get() request to the resource to get the latest\nfingerprint.", + "format": "byte", + "type": "string" }, - "maxEjectionPercent": { - "description": "Maximum percentage of backend endpoints in the load balancing pool for the backend service that can be ejected if the ejection conditions are met. Defaults to 50%.", - "format": "int32", - "type": "integer" + "labels": { + "additionalProperties": { + "type": "string" + }, + "description": "The labels to set for this resource.", + "type": "object" + } + }, + "type": "object" + }, + "RegionSetPolicyRequest": { + "id": "RegionSetPolicyRequest", + "properties": { + "bindings": { + "description": "Flatten Policy to create a backwacd compatible wire-format.\nDeprecated. Use 'policy' to specify bindings.", + "items": { + "$ref": "Binding" + }, + "type": "array" }, - "successRateMinimumHosts": { - "description": "The number of backend endpoints in the load balancing pool that must have enough request volume to detect success rate outliers. If the number of backend endpoints is fewer than this setting, outlier detection via success rate statistics is not performed for any backend endpoint in the load balancing pool. Defaults to 5. Not supported when the backend service uses Serverless NEG.", - "format": "int32", - "type": "integer" + "etag": { + "description": "Flatten Policy to create a backward compatible wire-format.\nDeprecated. Use 'policy' to specify the etag.", + "format": "byte", + "type": "string" }, - "successRateRequestVolume": { - "description": "The minimum number of total requests that must be collected in one interval (as defined by the interval duration above) to include this backend endpoint in success rate based outlier detection. If the volume is lower than this setting, outlier detection via success rate statistics is not performed for that backend endpoint. Defaults to 100. Not supported when the backend service uses Serverless NEG.", - "format": "int32", - "type": "integer" + "policy": { + "$ref": "Policy", + "description": "REQUIRED: The complete policy to be applied to the 'resource'. The size of\nthe policy is limited to a few 10s of KB. An empty policy is in general a\nvalid policy but certain services (like Projects) might reject them." + } + }, + "type": "object" + }, + "RegionSnapshotUpdateKmsKeyRequest": { + "id": "RegionSnapshotUpdateKmsKeyRequest", + "properties": { + "kmsKeyName": { + "description": "Optional. The new KMS key to replace the current one on the snapshot. If empty, the\nsnapshot will be re-encrypted using the primary version of the snapshot's\ncurrent KMS key.\n\nThe KMS key can be provided in the following formats:\n \n \n - projects/project_id/locations/region/keyRings/region/cryptoKeys/key", + "type": "string" + } + }, + "type": "object" + }, + "RegionTargetHttpsProxiesSetSslCertificatesRequest": { + "id": "RegionTargetHttpsProxiesSetSslCertificatesRequest", + "properties": { + "sslCertificates": { + "description": "New set of SslCertificate resources to associate\nwith this TargetHttpsProxy resource.", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "RegionUrlMapsValidateRequest": { + "id": "RegionUrlMapsValidateRequest", + "properties": { + "resource": { + "$ref": "UrlMap", + "description": "Content of the UrlMap to be validated." + } + }, + "type": "object" + }, + "RequestMirrorPolicy": { + "description": "A policy that specifies how requests intended for the route's backends\nare shadowed to a separate mirrored backend service. The load balancer\ndoesn't wait for responses from the shadow service. Before sending traffic\nto the shadow service, the host or authority header is suffixed with-shadow.", + "id": "RequestMirrorPolicy", + "properties": { + "backendService": { + "description": "The full or partial URL to the BackendService resource being\nmirrored to.\n\nThe backend service configured for a mirroring\npolicy must reference backends that are of the same type as the original\nbackend service matched in the URL map.\n\nServerless NEG backends are not currently supported as a mirrored\nbackend service.", + "type": "string" }, - "successRateStdevFactor": { - "description": "This factor is used to determine the ejection threshold for success rate outlier ejection. The ejection threshold is the difference between the mean success rate, and the product of this factor and the standard deviation of the mean success rate: mean - (stdev * successRateStdevFactor). This factor is divided by a thousand to get a double. That is, if the desired factor is 1.9, the runtime value should be 1900. Defaults to 1900. Not supported when the backend service uses Serverless NEG.", - "format": "int32", - "type": "integer" + "mirrorPercent": { + "description": "The percentage of requests to be mirrored to `backend_service`.", + "format": "double", + "type": "number" } }, "type": "object" }, - "PacketIntervals": { - "description": "Next free: 7", - "id": "PacketIntervals", + "Reservation": { + "description": "Represents a reservation resource. A reservation ensures that capacity is\nheld in a specific zone even if the reserved VMs are not running. For more\ninformation, read Reserving zonal\nresources.", + "id": "Reservation", "properties": { - "avgMs": { - "description": "Average observed inter-packet interval in milliseconds.", - "format": "int64", + "advancedDeploymentControl": { + "$ref": "ReservationAdvancedDeploymentControl", + "description": "Advanced control for cluster management, applicable only to DENSE\ndeployment type reservations." + }, + "aggregateReservation": { + "$ref": "AllocationAggregateReservation", + "description": "Reservation for aggregated resources, providing shape flexibility." + }, + "commitment": { + "description": "Output only. [Output Only] Full or partial URL to a parent commitment. This field\ndisplays for reservations that are tied to a commitment.", + "readOnly": true, "type": "string" }, - "duration": { - "description": "From how long ago in the past these intervals were observed.", + "confidentialComputeType": { "enum": [ - "DURATION_UNSPECIFIED", - "HOUR", - "MAX", - "MINUTE" + "CONFIDENTIAL_COMPUTE_TYPE_TDX", + "CONFIDENTIAL_COMPUTE_TYPE_UNSPECIFIED" ], "enumDescriptions": [ - "", - "", - "From BfdSession object creation time.", + "Intel Trust Domain Extensions.", "" ], "type": "string" }, - "maxMs": { - "description": "Maximum observed inter-packet interval in milliseconds.", - "format": "int64", + "creationTimestamp": { + "description": "Output only. [Output Only] Creation timestamp inRFC3339\ntext format.", + "readOnly": true, "type": "string" }, - "minMs": { - "description": "Minimum observed inter-packet interval in milliseconds.", - "format": "int64", - "type": "string" + "deleteAfterDuration": { + "$ref": "Duration", + "description": "Duration time relative to reservation creation when Compute Engine will\nautomatically delete this resource." }, - "numIntervals": { - "description": "Number of inter-packet intervals from which these statistics were derived.", - "format": "int64", + "deleteAtTime": { + "description": "Absolute time in future when the reservation will be\n auto-deleted by Compute Engine. Timestamp is represented inRFC3339 text format.", "type": "string" }, - "type": { - "description": "The type of packets for which inter-packet intervals were computed.", + "deploymentType": { + "description": "Specifies the deployment strategy for this reservation.", "enum": [ - "LOOPBACK", - "RECEIVE", - "TRANSMIT", - "TYPE_UNSPECIFIED" + "DENSE", + "DEPLOYMENT_TYPE_UNSPECIFIED" ], "enumDescriptions": [ - "Only applies to Echo packets. This shows the intervals between sending and receiving the same packet.", - "Intervals between received packets.", - "Intervals between transmitted packets.", + "The reserved capacity is made up of densely deployed reservation blocks.", "" ], "type": "string" - } - }, - "type": "object" - }, - "PacketMirroring": { - "description": "Represents a Packet Mirroring resource. Packet Mirroring clones the traffic of specified instances in your Virtual Private Cloud (VPC) network and forwards it to a collector destination, such as an instance group of an internal TCP/UDP load balancer, for analysis or examination. For more information about setting up Packet Mirroring, see Using Packet Mirroring.", - "id": "PacketMirroring", - "properties": { - "collectorIlb": { - "$ref": "PacketMirroringForwardingRuleInfo", - "description": "The Forwarding Rule resource of type loadBalancingScheme=INTERNAL that will be used as collector for mirrored traffic. The specified forwarding rule must have isMirroringCollector set to true." - }, - "creationTimestamp": { - "description": "[Output Only] Creation timestamp in RFC3339 text format.", - "type": "string" }, "description": { - "description": "An optional description of this resource. Provide this property when you create the resource.", + "description": "An optional description of this resource. Provide this property when you\ncreate the resource.", "type": "string" }, - "enable": { - "description": "Indicates whether or not this packet mirroring takes effect. If set to FALSE, this packet mirroring policy will not be enforced on the network. The default is TRUE.", + "earlyAccessMaintenance": { + "description": "Indicates the early access maintenance for the reservation.\nIf this field is absent or set to NO_EARLY_ACCESS, the reservation is not\nenrolled in early access maintenance and the standard notice applies.", "enum": [ - "FALSE", - "TRUE" + "NO_EARLY_ACCESS", + "WAVE1", + "WAVE2" ], "enumDescriptions": [ - "", - "" + "No early access.", + "Wave 1: Fastest notification period", + "Wave 2: Medium notification period" ], "type": "string" }, - "filter": { - "$ref": "PacketMirroringFilter", - "description": "Filter for mirrored traffic. If unspecified, all IPv4 traffic is mirrored." + "enableEmergentMaintenance": { + "description": "Indicates whether Compute Engine allows unplanned maintenance for your VMs;\nfor example, to fix hardware errors.", + "type": "boolean" }, "id": { - "description": "[Output Only] The unique identifier for the resource. This identifier is defined by the server.", + "description": "Output only. [Output Only] The unique identifier for the resource. This identifier is\ndefined by the server.", "format": "uint64", + "readOnly": true, "type": "string" }, "kind": { - "default": "compute#packetMirroring", - "description": "[Output Only] Type of the resource. Always compute#packetMirroring for packet mirrorings.", + "default": "compute#reservation", + "description": "Output only. [Output Only] Type of the resource. Alwayscompute#reservations for reservations.", + "readOnly": true, "type": "string" }, - "mirroredResources": { - "$ref": "PacketMirroringMirroredResourceInfo", - "description": "PacketMirroring mirroredResourceInfos. MirroredResourceInfo specifies a set of mirrored VM instances, subnetworks and/or tags for which traffic from/to all VM instances will be mirrored." + "linkedCommitments": { + "description": "Output only. [Output Only] Full or partial URL to parent commitments. This field\ndisplays for reservations that are tied to multiple commitments.", + "items": { + "type": "string" + }, + "readOnly": true, + "type": "array" }, "name": { "annotations": { "required": [ - "compute.packetMirrorings.insert" + "compute.instances.insert" ] }, - "description": "Name of the resource; provided by the client when the resource is created. The name must be 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters long and match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash.", + "description": "The name of the resource, provided by the client when initially creating\nthe resource. The resource name must be 1-63 characters long, and comply\nwithRFC1035.\nSpecifically, the name must be 1-63 characters long and match the regular\nexpression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first\ncharacter must be a lowercase letter, and all following characters must be\na dash, lowercase letter, or digit, except the last character, which cannot\nbe a dash.", "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", "type": "string" }, - "network": { - "$ref": "PacketMirroringNetworkInfo", - "annotations": { - "required": [ - "compute.packetMirrorings.insert" - ] + "params": { + "$ref": "ReservationParams", + "description": "Input only. Additional params passed with the request, but not persisted\nas part of resource payload." + }, + "protectionTier": { + "description": "Protection tier for the workload which specifies the workload expectations\nin the event of infrastructure failures at data center (e.g. power\nand/or cooling failures).", + "enum": [ + "CAPACITY_OPTIMIZED", + "PROTECTION_TIER_UNSPECIFIED", + "STANDARD" + ], + "enumDescriptions": [ + "CAPACITY_OPTIMIZED capacity leverages redundancies (e.g. power, cooling)\nat the data center during normal operating conditions. In the event of\ninfrastructure failures at data center (e.g. power and/or cooling\nfailures), this workload may be disrupted. As a consequence, it has a\nweaker availability SLO than STANDARD.", + "Unspecified protection tier.", + "STANDARD protection for workload that should be protected by redundancies\n(e.g. power, cooling) at the data center level. In the event of\ninfrastructure failures at data center (e.g. power and/or cooling\nfailures), this workload is expected to continue as normal using the\nredundancies." + ], + "type": "string" + }, + "reservationSharingPolicy": { + "$ref": "AllocationReservationSharingPolicy", + "description": "Specify the reservation sharing policy. If unspecified, the reservation\nwill not be shared with Google Cloud managed services." + }, + "resourcePolicies": { + "additionalProperties": { + "type": "string" }, - "description": "Specifies the mirrored VPC network. Only packets in this network will be mirrored. All mirrored VMs should have a NIC in the given network. All mirrored subnetworks should belong to the given network." + "description": "Resource policies to be added to this reservation. The key is defined by\nuser, and the value is resource policy url. This is to define placement\npolicy with reservation.", + "type": "object" }, - "priority": { - "description": "The priority of applying this configuration. Priority is used to break ties in cases where there is more than one matching rule. In the case of two rules that apply for a given Instance, the one with the lowest-numbered priority value wins. Default value is 1000. Valid range is 0 through 65535.", - "format": "uint32", - "type": "integer" + "resourceStatus": { + "$ref": "AllocationResourceStatus", + "description": "Output only. [Output Only] Status information for Reservation resource.", + "readOnly": true }, - "region": { - "description": "[Output Only] URI of the region where the packetMirroring resides.", + "satisfiesPzs": { + "description": "Output only. [Output Only] Reserved for future use.", + "readOnly": true, + "type": "boolean" + }, + "schedulingType": { + "description": "The type of maintenance for the reservation.", + "enum": [ + "GROUPED", + "GROUP_MAINTENANCE_TYPE_UNSPECIFIED", + "INDEPENDENT" + ], + "enumDescriptions": [ + "Maintenance on all reserved instances in the reservation is synchronized.", + "Unknown maintenance type.", + "Maintenance is not synchronized for this reservation. Instead, each\ninstance has its own maintenance window." + ], "type": "string" }, "selfLink": { - "description": "[Output Only] Server-defined URL for the resource.", + "description": "Output only. [Output Only] Server-defined fully-qualified URL for this resource.", + "readOnly": true, + "type": "string" + }, + "shareSettings": { + "$ref": "ShareSettings", + "description": "Specify share-settings to create a shared reservation. This property is\noptional. For more information about the syntax and options for this\nfield and its subfields, see the guide for creating\na shared reservation." + }, + "specificReservation": { + "$ref": "AllocationSpecificSKUReservation", + "description": "Reservation for instances with specific machine shapes." + }, + "specificReservationRequired": { + "description": "Indicates whether the reservation can be consumed by VMs with affinity\nfor \"any\" reservation. If the field is set, then only VMs that target\nthe reservation by name can consume from this reservation.", + "type": "boolean" + }, + "status": { + "description": "Output only. [Output Only] The status of the reservation.\n \n \n - CREATING: Reservation resources are being\n allocated.\n - READY: Reservation resources have been allocated,\n and the reservation is ready for use.\n - DELETING: Reservation deletion is in progress.\n - UPDATING: Reservation update is in progress.", + "enum": [ + "CREATING", + "DELETING", + "INVALID", + "READY", + "UPDATING" + ], + "enumDescriptions": [ + "Reservation resources are being allocated.", + "Reservation deletion is in progress.", + "", + "Reservation resources have been allocated, and the reservation is ready\nfor use.", + "Reservation update is in progress." + ], + "readOnly": true, + "type": "string" + }, + "zone": { + "description": "Zone in which the reservation resides. A zone must be provided if the\nreservation is created within a commitment.", "type": "string" } }, "type": "object" }, - "PacketMirroringAggregatedList": { - "description": "Contains a list of packetMirrorings.", - "id": "PacketMirroringAggregatedList", + "ReservationAdvancedDeploymentControl": { + "description": "Advance control for cluster management, applicable only to DENSE deployment\ntype reservations.", + "id": "ReservationAdvancedDeploymentControl", + "properties": { + "reservationOperationalMode": { + "description": "Indicates chosen reservation operational mode for the reservation.", + "enum": [ + "ALL_CAPACITY", + "HIGHLY_AVAILABLE_CAPACITY", + "RESERVATION_OPERATIONAL_MODE_UNSPECIFIED" + ], + "enumDescriptions": [ + "Google Cloud does not manage the failure of machines, but provides\nadditional capacity, which is not guaranteed to be available.", + "Google Cloud manages the failure of machines to provide high\navailability.", + "" + ], + "type": "string" + } + }, + "type": "object" + }, + "ReservationAffinity": { + "description": "Specifies the reservations that this instance can consume from.", + "id": "ReservationAffinity", + "properties": { + "consumeReservationType": { + "description": "Specifies the type of reservation from which this instance can consume\nresources: ANY_RESERVATION (default),SPECIFIC_RESERVATION, or NO_RESERVATION. See\nConsuming reserved instances for examples.", + "enum": [ + "ANY_RESERVATION", + "NO_RESERVATION", + "SPECIFIC_RESERVATION", + "UNSPECIFIED" + ], + "enumDescriptions": [ + "Consume any allocation available.", + "Do not consume from any allocated capacity.", + "Must consume from a specific reservation. Must specify key value fields\nfor specifying the reservations.", + "" + ], + "type": "string" + }, + "key": { + "description": "Corresponds to the label key of a reservation resource. To target aSPECIFIC_RESERVATION by name, specifygoogleapis.com/reservation-name as the key and specify\nthe name of your reservation as its value.", + "type": "string" + }, + "values": { + "description": "Corresponds to the label values of a reservation resource. This can be\neither a name to a reservation in the same project or\n\"projects/different-project/reservations/some-reservation-name\" to target a\nshared reservation in the same zone but in a different project.", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "ReservationAggregatedList": { + "description": "Contains a list of reservations.", + "id": "ReservationAggregatedList", "properties": { "id": { "description": "[Output Only] Unique identifier for the resource; defined by the server.", @@ -63405,37 +90442,40 @@ }, "items": { "additionalProperties": { - "$ref": "PacketMirroringsScopedList", - "description": "Name of the scope containing this set of packetMirrorings." + "$ref": "ReservationsScopedList", + "description": "Name of the scope containing this set of reservations." }, - "description": "A list of PacketMirroring resources.", + "description": "A list of Allocation resources.", "type": "object" }, "kind": { - "default": "compute#packetMirroringAggregatedList", - "description": "Type of resource.", + "default": "compute#reservationAggregatedList", + "description": "Output only. Type of resource.", + "readOnly": true, "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.", + "description": "[Output Only] This token allows you to get the next page of results for\nlist requests. If the number of results is larger thanmaxResults, use the nextPageToken as a value for\nthe query parameter pageToken in the next list request.\nSubsequent list requests will have their own nextPageToken to\ncontinue paging through the results.", "type": "string" }, "selfLink": { - "description": "[Output Only] Server-defined URL for this resource.", + "description": "Output only. [Output Only] Server-defined URL for this resource.", + "readOnly": true, "type": "string" }, "unreachables": { - "description": "[Output Only] Unreachable resources.", + "description": "Output only. [Output Only] Unreachable resources.", "items": { "type": "string" }, + "readOnly": true, "type": "array" }, "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.", + "description": "[Output Only] A warning code, if applicable. For example, Compute\nEngine returns NO_RESULTS_ON_PAGE if there\nare no results in the response.", "enum": [ "CLEANUP_FAILED", "DEPRECATED_RESOURCE_USED", @@ -63458,6 +90498,7 @@ "NOT_CRITICAL_ERROR", "NO_RESULTS_ON_PAGE", "PARTIAL_SUCCESS", + "QUOTA_INFO_UNAVAILABLE", "REQUIRED_TOS_AGREEMENT", "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", "RESOURCE_NOT_DELETED", @@ -63494,46 +90535,48 @@ false, false, false, + false, false ], "enumDescriptions": [ - "Warning about failed cleanup of transient changes made by a failed operation.", + "Warning about failed cleanup of transient changes made by a failed\noperation.", "A link to a deprecated resource was created.", - "When deploying and at least one of the resources has a type marked as deprecated", + "When deploying and at least one of the resources has a type marked as\ndeprecated", "The user created a boot disk that is larger than image size.", - "When deploying and at least one of the resources has a type marked as experimental", + "When deploying and at least one of the resources has a type marked as\nexperimental", "Warning that is present in an external api call", - "Warning that value of a field has been overridden. Deprecated unused field.", + "Warning that value of a field has been overridden.\nDeprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", - "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is\nnot of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", - "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", + "Resource can't be retrieved due to list overhead quota exceed\nwhich captures the amount of resources filtered out by\nuser-defined list filter.", "A resource depends on a missing type", - "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's nextHopIp address is not assigned to an instance on the\nnetwork.", "The route's next hop instance cannot ip forward.", - "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not have an\nipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", - "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that is not on the\nsame network as the route.", "The route's next hop instance does not have a status of RUNNING.", - "Error which is not critical. We decided to continue the process despite the mentioned error.", + "Error which is not critical. We decided to continue the process despite\nthe mentioned error.", "No results are present on a particular list page.", "Success is reported, but some results may be missing due to errors", - "The user attempted to use a resource that requires a TOS they have not accepted.", + "Quota information is not available to client requests (e.g:\nregions.list).", + "The user attempted to use a resource that requires a TOS they have not\naccepted.", "Warning that a resource is in use.", - "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "One or more of the resources set to auto-delete could not be deleted\nbecause they were in use.", "When a resource schema validation is ignored.", - "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", + "Instance template used in instance group manager is valid as such, but\nits application does not make a lot of sense, because it allows only\nsingle instance in instance group.", "When undeclared properties in the schema are present", "A given scope cannot be reached." ], "type": "string" }, "data": { - "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", + "description": "[Output Only] Metadata about this warning in key:\nvalue format. For example:\n\n\"data\": [\n {\n \"key\": \"scope\",\n \"value\": \"zones/us-east1-d\"\n }", "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).", + "description": "[Output Only] A key that provides more detail on the warning being\nreturned. For example, for warnings where there are no results in a list\nrequest for a particular zone, this key might be scope and\nthe key value might be the zone name. Other examples might be a key\nindicating a deprecated resource and a suggested replacement, or a\nwarning about invalid network settings (for example, if an instance\nattempts to perform IP forwarding but is not enabled for IP forwarding).", "type": "string" }, "value": { @@ -63555,87 +90598,244 @@ }, "type": "object" }, - "PacketMirroringFilter": { - "id": "PacketMirroringFilter", + "ReservationBlock": { + "description": "Represents a reservation block resource.", + "id": "ReservationBlock", "properties": { - "IPProtocols": { - "description": "Protocols that apply as filter on mirrored traffic. If no protocols are specified, all traffic that matches the specified CIDR ranges is mirrored. If neither cidrRanges nor IPProtocols is specified, all IPv4 traffic is mirrored.", - "items": { - "type": "string" - }, - "type": "array" + "count": { + "description": "Output only. [Output Only] The number of resources that are allocated in this\nreservation block.", + "format": "int32", + "readOnly": true, + "type": "integer" }, - "cidrRanges": { - "description": "One or more IPv4 or IPv6 CIDR ranges that apply as filters on the source (ingress) or destination (egress) IP in the IP header. If no ranges are specified, all IPv4 traffic that matches the specified IPProtocols is mirrored. If neither cidrRanges nor IPProtocols is specified, all IPv4 traffic is mirrored. To mirror all IPv4 and IPv6 traffic, use \"0.0.0.0/0,::/0\".", - "items": { - "type": "string" - }, - "type": "array" + "creationTimestamp": { + "description": "Output only. [Output Only] Creation timestamp inRFC3339 text format.", + "readOnly": true, + "type": "string" }, - "direction": { - "description": "Direction of traffic to mirror, either INGRESS, EGRESS, or BOTH. The default is BOTH.", + "healthInfo": { + "$ref": "ReservationBlockHealthInfo", + "description": "Output only. [Output Only] Health information for the reservation block.", + "readOnly": true + }, + "id": { + "description": "Output only. [Output Only] The unique identifier for the resource. This identifier is\ndefined by the server.", + "format": "uint64", + "readOnly": true, + "type": "string" + }, + "inUseCount": { + "description": "Output only. [Output Only] The number of instances that are currently in use on this\nreservation block.", + "format": "int32", + "readOnly": true, + "type": "integer" + }, + "inUseHostCount": { + "description": "Output only. Number of hosts currently in use. If there is one or more Instances running\non the host, it is considered in use.", + "format": "int32", + "readOnly": true, + "type": "integer" + }, + "kind": { + "default": "compute#reservationBlock", + "description": "Output only. [Output Only] Type of the resource. Alwayscompute#reservationBlock for reservation blocks.", + "readOnly": true, + "type": "string" + }, + "name": { + "description": "Output only. [Output Only] The name of this reservation block generated by Google\nCompute Engine. The name must be 1-63 characters long, and comply with\nRFC1035 @pattern [a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "readOnly": true, + "type": "string" + }, + "physicalTopology": { + "$ref": "ReservationBlockPhysicalTopology", + "description": "Output only. [Output Only] The physical topology of the reservation block.", + "readOnly": true + }, + "reservationMaintenance": { + "$ref": "GroupMaintenanceInfo", + "description": "Output only. [Output Only] Maintenance information for this reservation block.", + "readOnly": true + }, + "reservationSubBlockCount": { + "description": "Output only. [Output Only] The number of reservation subBlocks associated with this\nreservation block.", + "format": "int32", + "readOnly": true, + "type": "integer" + }, + "reservationSubBlockInUseCount": { + "description": "Output only. [Output Only] The number of in-use reservation subBlocks associated with\nthis reservation block. If at least one VM is running on a subBlock, it is\nconsidered in-use.", + "format": "int32", + "readOnly": true, + "type": "integer" + }, + "selfLink": { + "description": "Output only. [Output Only] Server-defined fully-qualified URL for this resource.", + "readOnly": true, + "type": "string" + }, + "selfLinkWithId": { + "description": "Output only. [Output Only] Server-defined URL for this resource with the resource id.", + "readOnly": true, + "type": "string" + }, + "status": { + "description": "Output only. [Output Only] Status of the reservation block.", "enum": [ - "BOTH", - "EGRESS", - "INGRESS" + "CREATING", + "DELETING", + "INVALID", + "READY" ], "enumDescriptions": [ - "Default, both directions are mirrored.", - "Only egress traffic is mirrored.", - "Only ingress traffic is mirrored." + "Resources are being allocated for the reservation block.", + "Reservation block is currently being deleted.", + "", + "Reservation block has allocated all its resources." + ], + "readOnly": true, + "type": "string" + }, + "zone": { + "description": "Output only. [Output Only] Zone in which the reservation block resides.", + "readOnly": true, + "type": "string" + } + }, + "type": "object" + }, + "ReservationBlockHealthInfo": { + "description": "Health information for the reservation block.", + "id": "ReservationBlockHealthInfo", + "properties": { + "degradedSubBlockCount": { + "description": "The number of subBlocks that are degraded.", + "format": "int32", + "type": "integer" + }, + "healthStatus": { + "description": "The health status of the reservation block.", + "enum": [ + "DEGRADED", + "HEALTHY", + "HEALTH_STATUS_UNSPECIFIED" + ], + "enumDescriptions": [ + "The reservation block is degraded.", + "The reservation block is healthy.", + "The health status of the reservation block is unspecified." ], "type": "string" + }, + "healthySubBlockCount": { + "description": "The number of subBlocks that are healthy.", + "format": "int32", + "type": "integer" + } + }, + "type": "object" + }, + "ReservationBlockPhysicalTopology": { + "id": "ReservationBlockPhysicalTopology", + "properties": { + "block": { + "description": "The hash of the capacity block within the cluster.", + "type": "string" + }, + "cluster": { + "description": "The cluster name of the reservation block.", + "type": "string" + }, + "instances": { + "description": "Output only. The detailed instances information for a given Block", + "items": { + "$ref": "ReservationBlockPhysicalTopologyInstance" + }, + "readOnly": true, + "type": "array" + } + }, + "type": "object" + }, + "ReservationBlockPhysicalTopologyInstance": { + "description": "The instances information for a given Block", + "id": "ReservationBlockPhysicalTopologyInstance", + "properties": { + "instanceId": { + "description": "The InstanceId of the instance", + "format": "uint64", + "type": "string" + }, + "physicalHostTopology": { + "$ref": "ReservationBlockPhysicalTopologyInstancePhysicalHostTopology", + "description": "Output only. The PhysicalHostTopology of instances within a Block resource.", + "readOnly": true + }, + "projectId": { + "description": "Project where the instance lives", + "format": "uint64", + "type": "string" } }, "type": "object" }, - "PacketMirroringForwardingRuleInfo": { - "id": "PacketMirroringForwardingRuleInfo", + "ReservationBlockPhysicalTopologyInstancePhysicalHostTopology": { + "description": "The PhysicalHostTopology of the instance within a Block resource.", + "id": "ReservationBlockPhysicalTopologyInstancePhysicalHostTopology", "properties": { - "canonicalUrl": { - "description": "[Output Only] Unique identifier for the forwarding rule; defined by the server.", + "host": { + "description": "Host hash for a given instance", "type": "string" }, - "url": { - "description": "Resource URL to the forwarding rule representing the ILB configured as destination of the mirrored traffic.", + "subBlock": { + "description": "Sub block hash for a given instance", "type": "string" } }, "type": "object" }, - "PacketMirroringList": { - "description": "Contains a list of PacketMirroring resources.", - "id": "PacketMirroringList", + "ReservationBlocksGetResponse": { + "id": "ReservationBlocksGetResponse", + "properties": { + "resource": { + "$ref": "ReservationBlock" + } + }, + "type": "object" + }, + "ReservationBlocksListResponse": { + "description": "A list of reservation blocks under a single reservation.", + "id": "ReservationBlocksListResponse", "properties": { "id": { - "description": "[Output Only] Unique identifier for the resource; defined by the server.", + "description": "Unique identifier for the resource; defined by the server.", "type": "string" }, "items": { - "description": "A list of PacketMirroring resources.", + "description": "A list of reservation block resources.", "items": { - "$ref": "PacketMirroring" + "$ref": "ReservationBlock" }, "type": "array" }, "kind": { - "default": "compute#packetMirroringList", - "description": "[Output Only] Type of resource. Always compute#packetMirroring for packetMirrorings.", + "default": "compute#reservationBlock", + "description": "Type of the resource. Alwayscompute#reservationBlock for a list of reservation blocks.", "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.", + "description": "This token allows you to get the next page of results for\nlist requests. If the number of results is larger thanmaxResults, use the nextPageToken as a value for\nthe query parameter pageToken in the next list request.\nSubsequent list requests will have their own nextPageToken to\ncontinue paging through the results.", "type": "string" }, "selfLink": { - "description": "[Output Only] Server-defined URL for this resource.", + "description": "Server-defined URL for this resource.", "type": "string" }, "warning": { - "description": "[Output Only] Informational warning message.", + "description": "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.", + "description": "[Output Only] A warning code, if applicable. For example, Compute\nEngine returns NO_RESULTS_ON_PAGE if there\nare no results in the response.", "enum": [ "CLEANUP_FAILED", "DEPRECATED_RESOURCE_USED", @@ -63658,6 +90858,7 @@ "NOT_CRITICAL_ERROR", "NO_RESULTS_ON_PAGE", "PARTIAL_SUCCESS", + "QUOTA_INFO_UNAVAILABLE", "REQUIRED_TOS_AGREEMENT", "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", "RESOURCE_NOT_DELETED", @@ -63694,46 +90895,48 @@ false, false, false, + false, false ], "enumDescriptions": [ - "Warning about failed cleanup of transient changes made by a failed operation.", + "Warning about failed cleanup of transient changes made by a failed\noperation.", "A link to a deprecated resource was created.", - "When deploying and at least one of the resources has a type marked as deprecated", + "When deploying and at least one of the resources has a type marked as\ndeprecated", "The user created a boot disk that is larger than image size.", - "When deploying and at least one of the resources has a type marked as experimental", + "When deploying and at least one of the resources has a type marked as\nexperimental", "Warning that is present in an external api call", - "Warning that value of a field has been overridden. Deprecated unused field.", + "Warning that value of a field has been overridden.\nDeprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", - "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is\nnot of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", - "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", + "Resource can't be retrieved due to list overhead quota exceed\nwhich captures the amount of resources filtered out by\nuser-defined list filter.", "A resource depends on a missing type", - "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's nextHopIp address is not assigned to an instance on the\nnetwork.", "The route's next hop instance cannot ip forward.", - "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not have an\nipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", - "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that is not on the\nsame network as the route.", "The route's next hop instance does not have a status of RUNNING.", - "Error which is not critical. We decided to continue the process despite the mentioned error.", + "Error which is not critical. We decided to continue the process despite\nthe mentioned error.", "No results are present on a particular list page.", "Success is reported, but some results may be missing due to errors", - "The user attempted to use a resource that requires a TOS they have not accepted.", + "Quota information is not available to client requests (e.g:\nregions.list).", + "The user attempted to use a resource that requires a TOS they have not\naccepted.", "Warning that a resource is in use.", - "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "One or more of the resources set to auto-delete could not be deleted\nbecause they were in use.", "When a resource schema validation is ignored.", - "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", + "Instance template used in instance group manager is valid as such, but\nits application does not make a lot of sense, because it allows only\nsingle instance in instance group.", "When undeclared properties in the schema are present", "A given scope cannot be reached." ], "type": "string" }, "data": { - "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", + "description": "[Output Only] Metadata about this warning in key:\nvalue format. For example:\n\n\"data\": [\n {\n \"key\": \"scope\",\n \"value\": \"zones/us-east1-d\"\n }", "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).", + "description": "[Output Only] A key that provides more detail on the warning being\nreturned. For example, for warnings where there are no results in a list\nrequest for a particular zone, this key might be scope and\nthe key value might be the zone name. Other examples might be a key\nindicating a deprecated resource and a suggested replacement, or a\nwarning about invalid network settings (for example, if an instance\nattempts to perform IP forwarding but is not enabled for IP forwarding).", "type": "string" }, "value": { @@ -63755,90 +90958,40 @@ }, "type": "object" }, - "PacketMirroringMirroredResourceInfo": { - "id": "PacketMirroringMirroredResourceInfo", + "ReservationList": { + "id": "ReservationList", "properties": { - "instances": { - "description": "A set of virtual machine instances that are being mirrored. They must live in zones contained in the same region as this packetMirroring. Note that this config will apply only to those network interfaces of the Instances that belong to the network specified in this packetMirroring. You may specify a maximum of 50 Instances.", - "items": { - "$ref": "PacketMirroringMirroredResourceInfoInstanceInfo" - }, - "type": "array" - }, - "subnetworks": { - "description": "A set of subnetworks for which traffic from/to all VM instances will be mirrored. They must live in the same region as this packetMirroring. You may specify a maximum of 5 subnetworks.", - "items": { - "$ref": "PacketMirroringMirroredResourceInfoSubnetInfo" - }, - "type": "array" + "id": { + "description": "[Output Only] The unique identifier for the resource. This identifier is\ndefined by the server.", + "type": "string" }, - "tags": { - "description": "A set of mirrored tags. Traffic from/to all VM instances that have one or more of these tags will be mirrored.", + "items": { + "description": "[Output Only] A list of Allocation resources.", "items": { - "type": "string" + "$ref": "Reservation" }, "type": "array" - } - }, - "type": "object" - }, - "PacketMirroringMirroredResourceInfoInstanceInfo": { - "id": "PacketMirroringMirroredResourceInfoInstanceInfo", - "properties": { - "canonicalUrl": { - "description": "[Output Only] Unique identifier for the instance; defined by the server.", - "type": "string" }, - "url": { - "description": "Resource URL to the virtual machine instance which is being mirrored.", - "type": "string" - } - }, - "type": "object" - }, - "PacketMirroringMirroredResourceInfoSubnetInfo": { - "id": "PacketMirroringMirroredResourceInfoSubnetInfo", - "properties": { - "canonicalUrl": { - "description": "[Output Only] Unique identifier for the subnetwork; defined by the server.", + "kind": { + "default": "compute#reservationList", + "description": "Output only. [Output Only] Type of resource.Always compute#reservationsList\nfor listsof reservations", + "readOnly": true, "type": "string" }, - "url": { - "description": "Resource URL to the subnetwork for which traffic from/to all VM instances will be mirrored.", - "type": "string" - } - }, - "type": "object" - }, - "PacketMirroringNetworkInfo": { - "id": "PacketMirroringNetworkInfo", - "properties": { - "canonicalUrl": { - "description": "[Output Only] Unique identifier for the network; defined by the server.", + "nextPageToken": { + "description": "[Output Only] This token allows you to get the next page of results for\nlist requests. If the number of results is larger thanmaxResults, use the nextPageToken as a value for\nthe query parameter pageToken in the next list request.\nSubsequent list requests will have their own nextPageToken to\ncontinue paging through the results.", "type": "string" }, - "url": { - "description": "URL of the network resource.", + "selfLink": { + "description": "Output only. [Output Only] Server-defined URL for this resource.", + "readOnly": true, "type": "string" - } - }, - "type": "object" - }, - "PacketMirroringsScopedList": { - "id": "PacketMirroringsScopedList", - "properties": { - "packetMirrorings": { - "description": "A list of packetMirrorings contained in this scope.", - "items": { - "$ref": "PacketMirroring" - }, - "type": "array" }, "warning": { - "description": "Informational warning which replaces the list of packetMirrorings when the list is empty.", + "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.", + "description": "[Output Only] A warning code, if applicable. For example, Compute\nEngine returns NO_RESULTS_ON_PAGE if there\nare no results in the response.", "enum": [ "CLEANUP_FAILED", "DEPRECATED_RESOURCE_USED", @@ -63861,6 +91014,7 @@ "NOT_CRITICAL_ERROR", "NO_RESULTS_ON_PAGE", "PARTIAL_SUCCESS", + "QUOTA_INFO_UNAVAILABLE", "REQUIRED_TOS_AGREEMENT", "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", "RESOURCE_NOT_DELETED", @@ -63897,46 +91051,48 @@ false, false, false, + false, false ], "enumDescriptions": [ - "Warning about failed cleanup of transient changes made by a failed operation.", + "Warning about failed cleanup of transient changes made by a failed\noperation.", "A link to a deprecated resource was created.", - "When deploying and at least one of the resources has a type marked as deprecated", + "When deploying and at least one of the resources has a type marked as\ndeprecated", "The user created a boot disk that is larger than image size.", - "When deploying and at least one of the resources has a type marked as experimental", + "When deploying and at least one of the resources has a type marked as\nexperimental", "Warning that is present in an external api call", - "Warning that value of a field has been overridden. Deprecated unused field.", + "Warning that value of a field has been overridden.\nDeprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", - "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is\nnot of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", - "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", + "Resource can't be retrieved due to list overhead quota exceed\nwhich captures the amount of resources filtered out by\nuser-defined list filter.", "A resource depends on a missing type", - "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's nextHopIp address is not assigned to an instance on the\nnetwork.", "The route's next hop instance cannot ip forward.", - "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not have an\nipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", - "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that is not on the\nsame network as the route.", "The route's next hop instance does not have a status of RUNNING.", - "Error which is not critical. We decided to continue the process despite the mentioned error.", + "Error which is not critical. We decided to continue the process despite\nthe mentioned error.", "No results are present on a particular list page.", "Success is reported, but some results may be missing due to errors", - "The user attempted to use a resource that requires a TOS they have not accepted.", + "Quota information is not available to client requests (e.g:\nregions.list).", + "The user attempted to use a resource that requires a TOS they have not\naccepted.", "Warning that a resource is in use.", - "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "One or more of the resources set to auto-delete could not be deleted\nbecause they were in use.", "When a resource schema validation is ignored.", - "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", + "Instance template used in instance group manager is valid as such, but\nits application does not make a lot of sense, because it allows only\nsingle instance in instance group.", "When undeclared properties in the schema are present", "A given scope cannot be reached." ], "type": "string" }, "data": { - "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", + "description": "[Output Only] Metadata about this warning in key:\nvalue format. For example:\n\n\"data\": [\n {\n \"key\": \"scope\",\n \"value\": \"zones/us-east1-d\"\n }", "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).", + "description": "[Output Only] A key that provides more detail on the warning being\nreturned. For example, for warnings where there are no results in a list\nrequest for a particular zone, this key might be scope and\nthe key value might be the zone name. Other examples might be a key\nindicating a deprecated resource and a suggested replacement, or a\nwarning about invalid network settings (for example, if an instance\nattempts to perform IP forwarding but is not enabled for IP forwarding).", "type": "string" }, "value": { @@ -63958,630 +91114,212 @@ }, "type": "object" }, - "PathMatcher": { - "description": "A matcher for the path portion of the URL. The BackendService from the longest-matched rule will serve the URL. If no rule was matched, the default service is used.", - "id": "PathMatcher", - "properties": { - "defaultRouteAction": { - "$ref": "HttpRouteAction", - "description": "defaultRouteAction takes effect when none of the pathRules or routeRules match. The load balancer performs advanced routing actions, such as URL rewrites and header transformations, before forwarding the request to the selected backend. If defaultRouteAction specifies any weightedBackendServices, defaultService must not be set. Conversely if defaultService is set, defaultRouteAction cannot contain any weightedBackendServices. If defaultRouteAction is specified, don't set defaultUrlRedirect. If defaultRouteAction.weightedBackendServices is specified, don't set defaultService. URL maps for classic Application Load Balancers only support the urlRewrite action within a path matcher's defaultRouteAction." - }, - "defaultService": { - "description": "The full or partial URL to the BackendService resource. This URL is used if none of the pathRules or routeRules defined by this PathMatcher are matched. For example, the following are all valid URLs to a BackendService resource: - https://www.googleapis.com/compute/v1/projects/project /global/backendServices/backendService - compute/v1/projects/project/global/backendServices/backendService - global/backendServices/backendService If defaultRouteAction is also specified, advanced routing actions, such as URL rewrites, take effect before sending the request to the backend. However, if defaultService is specified, defaultRouteAction cannot contain any weightedBackendServices. Conversely, if defaultRouteAction specifies any weightedBackendServices, defaultService must not be specified. If defaultService is specified, then set either defaultUrlRedirect or defaultRouteAction.weightedBackendService. Don't set both. Authorization requires one or more of the following Google IAM permissions on the specified resource default_service: - compute.backendBuckets.use - compute.backendServices.use ", - "type": "string" - }, - "defaultUrlRedirect": { - "$ref": "HttpRedirectAction", - "description": "When none of the specified pathRules or routeRules match, the request is redirected to a URL specified by defaultUrlRedirect. If defaultUrlRedirect is specified, then set either defaultService or defaultRouteAction. Don't set both. Not supported when the URL map is bound to a target gRPC proxy." - }, - "description": { - "description": "An optional description of this resource. Provide this property when you create the resource.", - "type": "string" - }, - "headerAction": { - "$ref": "HttpHeaderAction", - "description": "Specifies changes to request and response headers that need to take effect for the selected backend service. HeaderAction specified here are applied after the matching HttpRouteRule HeaderAction and before the HeaderAction in the UrlMap HeaderAction is not supported for load balancers that have their loadBalancingScheme set to EXTERNAL. Not supported when the URL map is bound to a target gRPC proxy that has validateForProxyless field set to true." - }, - "name": { - "description": "The name to which this PathMatcher is referred by the HostRule.", - "type": "string" - }, - "pathRules": { - "description": "The list of path rules. Use this list instead of routeRules when routing based on simple path matching is all that's required. The order by which path rules are specified does not matter. Matches are always done on the longest-path-first basis. For example: a pathRule with a path /a/b/c/* will match before /a/b/* irrespective of the order in which those paths appear in this list. Within a given pathMatcher, only one of pathRules or routeRules must be set.", - "items": { - "$ref": "PathRule" - }, - "type": "array" - }, - "routeRules": { - "description": "The list of HTTP route rules. Use this list instead of pathRules when advanced route matching and routing actions are desired. routeRules are evaluated in order of priority, from the lowest to highest number. Within a given pathMatcher, you can set only one of pathRules or routeRules.", - "items": { - "$ref": "HttpRouteRule" - }, - "type": "array" - } - }, - "type": "object" - }, - "PathRule": { - "description": "A path-matching rule for a URL. If matched, will use the specified BackendService to handle the traffic arriving at this URL.", - "id": "PathRule", - "properties": { - "paths": { - "description": "The list of path patterns to match. Each must start with / and the only place a * is allowed is at the end following a /. The string fed to the path matcher does not include any text after the first ? or #, and those chars are not allowed here.", - "items": { - "type": "string" - }, - "type": "array" - }, - "routeAction": { - "$ref": "HttpRouteAction", - "description": "In response to a matching path, the load balancer performs advanced routing actions, such as URL rewrites and header transformations, before forwarding the request to the selected backend. If routeAction specifies any weightedBackendServices, service must not be set. Conversely if service is set, routeAction cannot contain any weightedBackendServices. Only one of routeAction or urlRedirect must be set. URL maps for classic Application Load Balancers only support the urlRewrite action within a path rule's routeAction." - }, - "service": { - "description": "The full or partial URL of the backend service resource to which traffic is directed if this rule is matched. If routeAction is also specified, advanced routing actions, such as URL rewrites, take effect before sending the request to the backend. However, if service is specified, routeAction cannot contain any weightedBackendServices. Conversely, if routeAction specifies any weightedBackendServices, service must not be specified. Only one of urlRedirect, service or routeAction.weightedBackendService must be set.", - "type": "string" - }, - "urlRedirect": { - "$ref": "HttpRedirectAction", - "description": "When a path pattern is matched, the request is redirected to a URL specified by urlRedirect. If urlRedirect is specified, service or routeAction must not be set. Not supported when the URL map is bound to a target gRPC proxy." - } - }, - "type": "object" - }, - "PerInstanceConfig": { - "id": "PerInstanceConfig", - "properties": { - "fingerprint": { - "description": "Fingerprint of this per-instance config. This field can be used in optimistic locking. It is ignored when inserting a per-instance config. An up-to-date fingerprint must be provided in order to update an existing per-instance configuration or the field needs to be unset.", - "format": "byte", - "type": "string" - }, - "name": { - "description": "The name of a per-instance configuration and its corresponding instance. Serves as a merge key during UpdatePerInstanceConfigs operations, that is, if a per-instance configuration with the same name exists then it will be updated, otherwise a new one will be created for the VM instance with the same name. An attempt to create a per-instance configconfiguration for a VM instance that either doesn't exist or is not part of the group will result in an error.", - "type": "string" - }, - "preservedState": { - "$ref": "PreservedState", - "description": "The intended preserved state for the given instance. Does not contain preserved state generated from a stateful policy." - }, - "status": { - "description": "The status of applying this per-instance configuration on the corresponding managed instance.", - "enum": [ - "APPLYING", - "DELETING", - "EFFECTIVE", - "NONE", - "UNAPPLIED", - "UNAPPLIED_DELETION" - ], - "enumDescriptions": [ - "The per-instance configuration is being applied to the instance, but is not yet effective, possibly waiting for the instance to, for example, REFRESH.", - "The per-instance configuration deletion is being applied on the instance, possibly waiting for the instance to, for example, REFRESH.", - "The per-instance configuration is effective on the instance, meaning that all disks, ips and metadata specified in this configuration are attached or set on the instance.", - "*[Default]* The default status, when no per-instance configuration exists.", - "The per-instance configuration is set on an instance but not been applied yet.", - "The per-instance configuration has been deleted, but the deletion is not yet applied." - ], - "type": "string" - } - }, - "type": "object" - }, - "Policy": { - "description": "An Identity and Access Management (IAM) policy, which specifies access controls for Google Cloud resources. A `Policy` is a collection of `bindings`. A `binding` binds one or more `members`, or principals, to a single `role`. Principals can be user accounts, service accounts, Google groups, and domains (such as G Suite). A `role` is a named list of permissions; each `role` can be an IAM predefined role or a user-created custom role. For some types of Google Cloud resources, a `binding` can also specify a `condition`, which is a logical expression that allows access to a resource only if the expression evaluates to `true`. A condition can add constraints based on attributes of the request, the resource, or both. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies). **JSON example:** ``` { \"bindings\": [ { \"role\": \"roles/resourcemanager.organizationAdmin\", \"members\": [ \"user:mike@example.com\", \"group:admins@example.com\", \"domain:google.com\", \"serviceAccount:my-project-id@appspot.gserviceaccount.com\" ] }, { \"role\": \"roles/resourcemanager.organizationViewer\", \"members\": [ \"user:eve@example.com\" ], \"condition\": { \"title\": \"expirable access\", \"description\": \"Does not grant access after Sep 2020\", \"expression\": \"request.time \u003c timestamp('2020-10-01T00:00:00.000Z')\", } } ], \"etag\": \"BwWWja0YfJA=\", \"version\": 3 } ``` **YAML example:** ``` bindings: - members: - user:mike@example.com - group:admins@example.com - domain:google.com - serviceAccount:my-project-id@appspot.gserviceaccount.com role: roles/resourcemanager.organizationAdmin - members: - user:eve@example.com role: roles/resourcemanager.organizationViewer condition: title: expirable access description: Does not grant access after Sep 2020 expression: request.time \u003c timestamp('2020-10-01T00:00:00.000Z') etag: BwWWja0YfJA= version: 3 ``` For a description of IAM and its features, see the [IAM documentation](https://cloud.google.com/iam/docs/).", - "id": "Policy", - "properties": { - "auditConfigs": { - "description": "Specifies cloud audit logging configuration for this policy.", - "items": { - "$ref": "AuditConfig" - }, - "type": "array" - }, - "bindings": { - "description": "Associates a list of `members`, or principals, with a `role`. Optionally, may specify a `condition` that determines how and when the `bindings` are applied. Each of the `bindings` must contain at least one principal. The `bindings` in a `Policy` can refer to up to 1,500 principals; up to 250 of these principals can be Google groups. Each occurrence of a principal counts towards these limits. For example, if the `bindings` grant 50 different roles to `user:alice@example.com`, and not to any other principal, then you can add another 1,450 principals to the `bindings` in the `Policy`.", - "items": { - "$ref": "Binding" - }, - "type": "array" - }, - "etag": { - "description": "`etag` is used for optimistic concurrency control as a way to help prevent simultaneous updates of a policy from overwriting each other. It is strongly suggested that systems make use of the `etag` in the read-modify-write cycle to perform policy updates in order to avoid race conditions: An `etag` is returned in the response to `getIamPolicy`, and systems are expected to put that etag in the request to `setIamPolicy` to ensure that their change will be applied to the same version of the policy. **Important:** If you use IAM Conditions, you must include the `etag` field whenever you call `setIamPolicy`. If you omit this field, then IAM allows you to overwrite a version `3` policy with a version `1` policy, and all of the conditions in the version `3` policy are lost.", - "format": "byte", - "type": "string" - }, - "rules": { - "description": "This is deprecated and has no effect. Do not use.", - "items": { - "$ref": "Rule" - }, - "type": "array" - }, - "version": { - "description": "Specifies the format of the policy. Valid values are `0`, `1`, and `3`. Requests that specify an invalid value are rejected. Any operation that affects conditional role bindings must specify version `3`. This requirement applies to the following operations: * Getting a policy that includes a conditional role binding * Adding a conditional role binding to a policy * Changing a conditional role binding in a policy * Removing any role binding, with or without a condition, from a policy that includes conditions **Important:** If you use IAM Conditions, you must include the `etag` field whenever you call `setIamPolicy`. If you omit this field, then IAM allows you to overwrite a version `3` policy with a version `1` policy, and all of the conditions in the version `3` policy are lost. If a policy does not include any conditions, operations on that policy may specify any valid version or leave the field unset. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies).", - "format": "int32", - "type": "integer" - } - }, - "type": "object" - }, - "PreconfiguredWafSet": { - "id": "PreconfiguredWafSet", - "properties": { - "expressionSets": { - "description": "List of entities that are currently supported for WAF rules.", - "items": { - "$ref": "WafExpressionSet" - }, - "type": "array" - } - }, - "type": "object" - }, - "PreservedState": { - "description": "Preserved state for a given instance.", - "id": "PreservedState", + "ReservationParams": { + "description": "Additional reservation params.", + "id": "ReservationParams", "properties": { - "disks": { - "additionalProperties": { - "$ref": "PreservedStatePreservedDisk" - }, - "description": "Preserved disks defined for this instance. This map is keyed with the device names of the disks.", - "type": "object" - }, - "externalIPs": { - "additionalProperties": { - "$ref": "PreservedStatePreservedNetworkIp" - }, - "description": "Preserved external IPs defined for this instance. This map is keyed with the name of the network interface.", - "type": "object" - }, - "internalIPs": { - "additionalProperties": { - "$ref": "PreservedStatePreservedNetworkIp" - }, - "description": "Preserved internal IPs defined for this instance. This map is keyed with the name of the network interface.", - "type": "object" - }, - "metadata": { + "resourceManagerTags": { "additionalProperties": { - "type": "string" - }, - "description": "Preserved metadata defined for this instance.", - "type": "object" - } - }, - "type": "object" - }, - "PreservedStatePreservedDisk": { - "id": "PreservedStatePreservedDisk", - "properties": { - "autoDelete": { - "description": "These stateful disks will never be deleted during autohealing, update, instance recreate operations. This flag is used to configure if the disk should be deleted after it is no longer used by the group, e.g. when the given instance or the whole MIG is deleted. Note: disks attached in READ_ONLY mode cannot be auto-deleted.", - "enum": [ - "NEVER", - "ON_PERMANENT_INSTANCE_DELETION" - ], - "enumDescriptions": [ - "", - "" - ], - "type": "string" - }, - "mode": { - "description": "The mode in which to attach this disk, either READ_WRITE or READ_ONLY. If not specified, the default is to attach the disk in READ_WRITE mode.", - "enum": [ - "READ_ONLY", - "READ_WRITE" - ], - "enumDescriptions": [ - "Attaches this disk in read-only mode. Multiple VM instances can use a disk in READ_ONLY mode at a time.", - "*[Default]* Attaches this disk in READ_WRITE mode. Only one VM instance at a time can be attached to a disk in READ_WRITE mode." - ], - "type": "string" - }, - "source": { - "description": "The URL of the disk resource that is stateful and should be attached to the VM instance.", - "type": "string" - } - }, - "type": "object" - }, - "PreservedStatePreservedNetworkIp": { - "id": "PreservedStatePreservedNetworkIp", - "properties": { - "autoDelete": { - "description": "These stateful IPs will never be released during autohealing, update or VM instance recreate operations. This flag is used to configure if the IP reservation should be deleted after it is no longer used by the group, e.g. when the given instance or the whole group is deleted.", - "enum": [ - "NEVER", - "ON_PERMANENT_INSTANCE_DELETION" - ], - "enumDescriptions": [ - "", - "" - ], - "type": "string" - }, - "ipAddress": { - "$ref": "PreservedStatePreservedNetworkIpIpAddress", - "description": "Ip address representation" - } - }, - "type": "object" - }, - "PreservedStatePreservedNetworkIpIpAddress": { - "id": "PreservedStatePreservedNetworkIpIpAddress", - "properties": { - "address": { - "description": "The URL of the reservation for this IP address.", - "type": "string" - }, - "literal": { - "description": "An IPv4 internal network address to assign to the instance for this network interface.", - "type": "string" - } - }, - "type": "object" - }, - "Project": { - "description": "Represents a Project resource. A project is used to organize resources in a Google Cloud Platform environment. For more information, read about the Resource Hierarchy.", - "id": "Project", - "properties": { - "cloudArmorTier": { - "description": "[Output Only] The Cloud Armor tier for this project. It can be one of the following values: CA_STANDARD, CA_ENTERPRISE_PAYGO. If this field is not specified, it is assumed to be CA_STANDARD.", - "enum": [ - "CA_ENTERPRISE_ANNUAL", - "CA_ENTERPRISE_PAYGO", - "CA_STANDARD" - ], - "enumDescriptions": [ - "Enterprise tier protection billed annually.", - "Enterprise tier protection billed monthly.", - "Standard protection." - ], - "type": "string" - }, - "commonInstanceMetadata": { - "$ref": "Metadata", - "description": "Metadata key/value pairs available to all instances contained in this project. See Custom metadata for more information." - }, - "creationTimestamp": { - "description": "[Output Only] Creation timestamp in RFC3339 text format.", - "type": "string" - }, - "defaultNetworkTier": { - "description": "This signifies the default network tier used for configuring resources of the project and can only take the following values: PREMIUM, STANDARD. Initially the default network tier is PREMIUM.", - "enum": [ - "FIXED_STANDARD", - "PREMIUM", - "STANDARD", - "STANDARD_OVERRIDES_FIXED_STANDARD" - ], - "enumDescriptions": [ - "Public internet quality with fixed bandwidth.", - "High quality, Google-grade network tier, support for all networking products.", - "Public internet quality, only limited support for other networking products.", - "(Output only) Temporary tier for FIXED_STANDARD when fixed standard tier is expired or not configured." - ], - "type": "string" - }, - "defaultServiceAccount": { - "description": "[Output Only] Default service account used by VMs running in this project.", - "type": "string" - }, - "description": { - "description": "An optional textual description of the resource.", - "type": "string" - }, - "enabledFeatures": { - "description": "Restricted features enabled for use on this project.", - "items": { - "type": "string" - }, - "type": "array" - }, - "id": { - "description": "[Output Only] The unique identifier for the resource. This identifier is defined by the server. This is *not* the project ID, and is just a unique ID used by Compute Engine to identify resources.", - "format": "uint64", - "type": "string" - }, - "kind": { - "default": "compute#project", - "description": "[Output Only] Type of the resource. Always compute#project for projects.", - "type": "string" - }, - "name": { - "description": "The project ID. For example: my-example-project. Use the project ID to make requests to Compute Engine.", - "type": "string" - }, - "quotas": { - "description": "[Output Only] Quotas assigned to this project.", - "items": { - "$ref": "Quota" - }, - "type": "array" - }, - "selfLink": { - "description": "[Output Only] Server-defined URL for the resource.", - "type": "string" - }, - "usageExportLocation": { - "$ref": "UsageExportLocation", - "description": "The naming prefix for daily usage reports and the Google Cloud Storage bucket where they are stored." - }, - "vmDnsSetting": { - "description": "[Output Only] Default internal DNS setting used by VMs running in this project.", - "enum": [ - "GLOBAL_DEFAULT", - "UNSPECIFIED_VM_DNS_SETTING", - "ZONAL_DEFAULT", - "ZONAL_ONLY" - ], - "enumDescriptions": [ - "", - "", - "", - "" - ], - "type": "string" - }, - "xpnProjectStatus": { - "description": "[Output Only] The role this project has in a shared VPC configuration. Currently, only projects with the host role, which is specified by the value HOST, are differentiated.", - "enum": [ - "HOST", - "UNSPECIFIED_XPN_PROJECT_STATUS" - ], - "enumDescriptions": [ - "", - "" - ], - "type": "string" - } - }, - "type": "object" - }, - "ProjectsDisableXpnResourceRequest": { - "id": "ProjectsDisableXpnResourceRequest", - "properties": { - "xpnResource": { - "$ref": "XpnResourceId", - "description": "Service resource (a.k.a service project) ID." - } - }, - "type": "object" - }, - "ProjectsEnableXpnResourceRequest": { - "id": "ProjectsEnableXpnResourceRequest", - "properties": { - "xpnResource": { - "$ref": "XpnResourceId", - "description": "Service resource (a.k.a service project) ID." - } - }, - "type": "object" - }, - "ProjectsGetXpnResources": { - "id": "ProjectsGetXpnResources", - "properties": { - "kind": { - "default": "compute#projectsGetXpnResources", - "description": "[Output Only] Type of resource. Always compute#projectsGetXpnResources for lists of service resources (a.k.a service projects)", - "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" - }, - "resources": { - "description": "Service resources (a.k.a service projects) attached to this project as their shared VPC host.", - "items": { - "$ref": "XpnResourceId" - }, - "type": "array" - } - }, - "type": "object" - }, - "ProjectsListXpnHostsRequest": { - "id": "ProjectsListXpnHostsRequest", - "properties": { - "organization": { - "description": "Optional organization ID managed by Cloud Resource Manager, for which to list shared VPC host projects. If not specified, the organization will be inferred from the project.", - "type": "string" - } - }, - "type": "object" - }, - "ProjectsSetCloudArmorTierRequest": { - "id": "ProjectsSetCloudArmorTierRequest", - "properties": { - "cloudArmorTier": { - "description": "Managed protection tier to be set.", - "enum": [ - "CA_ENTERPRISE_ANNUAL", - "CA_ENTERPRISE_PAYGO", - "CA_STANDARD" - ], - "enumDescriptions": [ - "Enterprise tier protection billed annually.", - "Enterprise tier protection billed monthly.", - "Standard protection." - ], - "type": "string" - } - }, - "type": "object" - }, - "ProjectsSetDefaultNetworkTierRequest": { - "id": "ProjectsSetDefaultNetworkTierRequest", - "properties": { - "networkTier": { - "description": "Default network tier to be set.", - "enum": [ - "FIXED_STANDARD", - "PREMIUM", - "STANDARD", - "STANDARD_OVERRIDES_FIXED_STANDARD" - ], - "enumDescriptions": [ - "Public internet quality with fixed bandwidth.", - "High quality, Google-grade network tier, support for all networking products.", - "Public internet quality, only limited support for other networking products.", - "(Output only) Temporary tier for FIXED_STANDARD when fixed standard tier is expired or not configured." - ], - "type": "string" + "type": "string" + }, + "description": "Input only. Resource manager tags to be bound to the reservation. Tag keys and\nvalues have the same definition as resource\nmanager tags. Keys and values can be either in numeric format,\nsuch as `tagKeys/{tag_key_id}` and `tagValues/{tag_value_id}` or in\nnamespaced format such as `{org_id|project_id}/{tag_key_short_name}` and\n`{tag_value_short_name}`. The field is ignored (both PUT \u0026\nPATCH) when empty.", + "type": "object" } }, "type": "object" }, - "PublicAdvertisedPrefix": { - "description": "A public advertised prefix represents an aggregated IP prefix or netblock which customers bring to cloud. The IP prefix is a single unit of route advertisement and is announced globally to the internet.", - "id": "PublicAdvertisedPrefix", + "ReservationSlot": { + "description": "Represents a reservation slot resource.", + "id": "ReservationSlot", "properties": { - "byoipApiVersion": { - "description": "[Output Only] The version of BYOIP API.", - "enum": [ - "V1", - "V2" - ], - "enumDescriptions": [ - "This public advertised prefix can be used to create both regional and global public delegated prefixes. It usually takes 4 weeks to create or delete a public delegated prefix. The BGP status cannot be changed.", - "This public advertised prefix can only be used to create regional public delegated prefixes. Public delegated prefix creation and deletion takes minutes and the BGP status can be modified." - ], - "type": "string" - }, "creationTimestamp": { - "description": "[Output Only] Creation timestamp in RFC3339 text format.", + "description": "Output only. [Output Only] The creation timestamp, formatted asRFC3339 text.", + "readOnly": true, "type": "string" }, - "description": { - "description": "An optional description of this resource. Provide this property when you create the resource.", + "id": { + "description": "Output only. [Output Only] The unique identifier for this resource. This identifier is\ndefined by the server.", + "format": "uint64", + "readOnly": true, "type": "string" }, - "dnsVerificationIp": { - "description": "The address to be used for reverse DNS verification.", + "kind": { + "default": "compute#reservationSlot", + "description": "Output only. [Output Only] The type of resource. Alwayscompute#reservationSlot for reservation slots.", + "readOnly": true, "type": "string" }, - "fingerprint": { - "description": "Fingerprint of this resource. A hash of the contents stored in this object. This field is used in optimistic locking. This field will be ignored when inserting a new PublicAdvertisedPrefix. An up-to-date fingerprint must be provided in order to update the PublicAdvertisedPrefix, otherwise the request will fail with error 412 conditionNotMet. To see the latest fingerprint, make a get() request to retrieve a PublicAdvertisedPrefix.", - "format": "byte", + "name": { + "description": "Output only. [Output Only] The name of the reservation slot.", + "readOnly": true, "type": "string" }, - "id": { - "description": "[Output Only] The unique identifier for the resource type. The server generates this identifier.", - "format": "uint64", - "type": "string" + "physicalTopology": { + "$ref": "ReservationSlotPhysicalTopology", + "deprecated": true, + "description": "Output only. [Output Only] The physical topology of the reservation slot.", + "readOnly": true }, - "ipCidrRange": { - "description": "The address range, in CIDR format, represented by this public advertised prefix.", + "selfLink": { + "description": "Output only. [Output Only] A server-defined fully-qualified URL for this resource.", + "readOnly": true, "type": "string" }, - "kind": { - "default": "compute#publicAdvertisedPrefix", - "description": "[Output Only] Type of the resource. Always compute#publicAdvertisedPrefix for public advertised prefixes.", + "selfLinkWithId": { + "description": "Output only. [Output Only] A server-defined URL for this resource with the resource ID.", + "readOnly": true, "type": "string" }, - "name": { - "annotations": { - "required": [ - "compute.publicAdvertisedPrefixes.insert" - ] - }, - "description": "Name of the resource. Provided by the client when the resource is created. The name must be 1-63 characters long, and comply with RFC1035. 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" + "shareSettings": { + "$ref": "ShareSettings", + "description": "Specify share settings to create a shared slot. Set to empty\nto inherit the share settings from a parent resource." }, - "pdpScope": { - "description": "Specifies how child public delegated prefix will be scoped. It could be one of following values: - `REGIONAL`: The public delegated prefix is regional only. The provisioning will take a few minutes. - `GLOBAL`: The public delegated prefix is global only. The provisioning will take ~4 weeks. - `GLOBAL_AND_REGIONAL` [output only]: The public delegated prefixes is BYOIP V1 legacy prefix. This is output only value and no longer supported in BYOIP V2. ", + "state": { + "description": "Output only. [Output Only] The state of the reservation slot.", "enum": [ - "GLOBAL", - "GLOBAL_AND_REGIONAL", - "REGIONAL" + "ACTIVE", + "CREATING", + "DELETING", + "STATE_UNSPECIFIED", + "UNAVAILABLE" ], "enumDescriptions": [ - "The public delegated prefix is global only. The provisioning will take ~4 weeks.", - "The public delegated prefixes is BYOIP V1 legacy prefix. This is output only value and no longer supported in BYOIP V2.", - "The public delegated prefix is regional only. The provisioning will take a few minutes." + "The reservation slot has allocated all its resources.", + "The resources are being allocated for the reservation slot.", + "The reservation slot is currently being deleted.", + "", + "The reservation slot is currently unavailable." ], + "readOnly": true, "type": "string" }, - "publicDelegatedPrefixs": { - "description": "[Output Only] The list of public delegated prefixes that exist for this public advertised prefix.", - "items": { - "$ref": "PublicAdvertisedPrefixPublicDelegatedPrefix" - }, - "type": "array" + "status": { + "$ref": "ReservationSlotStatus", + "description": "Output only. [Output Only] The status of the reservation slot.", + "readOnly": true }, - "selfLink": { - "description": "[Output Only] Server-defined URL for the resource.", + "zone": { + "description": "Output only. [Output Only] The zone in which the reservation slot resides.", + "readOnly": true, + "type": "string" + } + }, + "type": "object" + }, + "ReservationSlotPhysicalTopology": { + "id": "ReservationSlotPhysicalTopology", + "properties": { + "block": { + "description": "The unique identifier of the capacity block within the cluster.", "type": "string" }, - "sharedSecret": { - "description": "[Output Only] The shared secret to be used for reverse DNS verification.", + "cluster": { + "description": "The cluster name of the reservation sub-block.", "type": "string" }, - "status": { - "description": "The status of the public advertised prefix. Possible values include: - `INITIAL`: RPKI validation is complete. - `PTR_CONFIGURED`: User has configured the PTR. - `VALIDATED`: Reverse DNS lookup is successful. - `REVERSE_DNS_LOOKUP_FAILED`: Reverse DNS lookup failed. - `PREFIX_CONFIGURATION_IN_PROGRESS`: The prefix is being configured. - `PREFIX_CONFIGURATION_COMPLETE`: The prefix is fully configured. - `PREFIX_REMOVAL_IN_PROGRESS`: The prefix is being removed. ", - "enum": [ - "ANNOUNCED_TO_INTERNET", - "INITIAL", - "PREFIX_CONFIGURATION_COMPLETE", - "PREFIX_CONFIGURATION_IN_PROGRESS", - "PREFIX_REMOVAL_IN_PROGRESS", - "PTR_CONFIGURED", - "READY_TO_ANNOUNCE", - "REVERSE_DNS_LOOKUP_FAILED", - "VALIDATED" - ], - "enumDescriptions": [ - "The prefix is announced to Internet.", - "RPKI validation is complete.", - "The prefix is fully configured.", - "The prefix is being configured.", - "The prefix is being removed.", - "User has configured the PTR.", - "The prefix is currently withdrawn but ready to be announced.", - "Reverse DNS lookup failed.", - "Reverse DNS lookup is successful." - ], + "host": { + "description": "The unique identifier of the capacity host within the capacity sub-block.", + "type": "string" + }, + "subBlock": { + "description": "The unique identifier of the capacity sub-block within the capacity\nblock.", "type": "string" } }, "type": "object" }, - "PublicAdvertisedPrefixList": { - "id": "PublicAdvertisedPrefixList", + "ReservationSlotStatus": { + "id": "ReservationSlotStatus", + "properties": { + "physicalTopology": { + "$ref": "ReservationSlotPhysicalTopology", + "description": "Output only. [Output Only] The physical topology of the reservation sub-block.", + "readOnly": true + }, + "rdmaIpAddresses": { + "description": "Output only. The RDMA IP address of the physical host.", + "items": { + "type": "string" + }, + "readOnly": true, + "type": "array" + }, + "runningInstances": { + "description": "Output only. The URIs of the instances currently running on this slot.", + "items": { + "type": "string" + }, + "readOnly": true, + "type": "array" + } + }, + "type": "object" + }, + "ReservationSlotsGetResponse": { + "id": "ReservationSlotsGetResponse", + "properties": { + "resource": { + "$ref": "ReservationSlot" + } + }, + "type": "object" + }, + "ReservationSlotsGetVersionRequest": { + "id": "ReservationSlotsGetVersionRequest", + "properties": { + "sbomSelections": { + "description": "The SBOM selection to return. Duplicate values in the list will be ignored.", + "items": { + "enum": [ + "SBOM_SELECTION_CURRENT", + "SBOM_SELECTION_TARGET", + "SBOM_SELECTION_UNSPECIFIED" + ], + "enumDescriptions": [ + "", + "", + "" + ], + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "ReservationSlotsListResponse": { + "description": "A list of reservation slots within a single reservation.", + "id": "ReservationSlotsListResponse", "properties": { "id": { - "description": "[Output Only] Unique identifier for the resource; defined by the server.", + "description": "The unique identifier for the resource; defined by the server.", "type": "string" }, "items": { - "description": "A list of PublicAdvertisedPrefix resources.", + "description": "A list of reservation slot resources.", "items": { - "$ref": "PublicAdvertisedPrefix" + "$ref": "ReservationSlot" }, "type": "array" }, "kind": { - "default": "compute#publicAdvertisedPrefixList", - "description": "[Output Only] Type of the resource. Always compute#publicAdvertisedPrefix for public advertised prefixes.", + "default": "compute#reservationSlot", + "description": "The type of resource. Alwayscompute#reservationSlot for a list of reservation\nslots.", "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.", + "description": "This token allows you to get the next page of results for\nlist requests. If the number of results is larger thanmaxResults, use the nextPageToken as a value for\nthe query parameter pageToken in the next list request.\nSubsequent list requests will have their own nextPageToken to\ncontinue paging through the results.", "type": "string" }, "selfLink": { - "description": "[Output Only] Server-defined URL for this resource.", + "description": "The server-defined URL for this resource.", "type": "string" }, "warning": { - "description": "[Output Only] Informational warning message.", + "description": "An 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.", + "description": "[Output Only] A warning code, if applicable. For example, Compute\nEngine returns NO_RESULTS_ON_PAGE if there\nare no results in the response.", "enum": [ "CLEANUP_FAILED", "DEPRECATED_RESOURCE_USED", @@ -64604,6 +91342,7 @@ "NOT_CRITICAL_ERROR", "NO_RESULTS_ON_PAGE", "PARTIAL_SUCCESS", + "QUOTA_INFO_UNAVAILABLE", "REQUIRED_TOS_AGREEMENT", "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", "RESOURCE_NOT_DELETED", @@ -64640,46 +91379,48 @@ false, false, false, + false, false ], "enumDescriptions": [ - "Warning about failed cleanup of transient changes made by a failed operation.", + "Warning about failed cleanup of transient changes made by a failed\noperation.", "A link to a deprecated resource was created.", - "When deploying and at least one of the resources has a type marked as deprecated", + "When deploying and at least one of the resources has a type marked as\ndeprecated", "The user created a boot disk that is larger than image size.", - "When deploying and at least one of the resources has a type marked as experimental", + "When deploying and at least one of the resources has a type marked as\nexperimental", "Warning that is present in an external api call", - "Warning that value of a field has been overridden. Deprecated unused field.", + "Warning that value of a field has been overridden.\nDeprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", - "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is\nnot of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", - "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", + "Resource can't be retrieved due to list overhead quota exceed\nwhich captures the amount of resources filtered out by\nuser-defined list filter.", "A resource depends on a missing type", - "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's nextHopIp address is not assigned to an instance on the\nnetwork.", "The route's next hop instance cannot ip forward.", - "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not have an\nipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", - "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that is not on the\nsame network as the route.", "The route's next hop instance does not have a status of RUNNING.", - "Error which is not critical. We decided to continue the process despite the mentioned error.", + "Error which is not critical. We decided to continue the process despite\nthe mentioned error.", "No results are present on a particular list page.", "Success is reported, but some results may be missing due to errors", - "The user attempted to use a resource that requires a TOS they have not accepted.", + "Quota information is not available to client requests (e.g:\nregions.list).", + "The user attempted to use a resource that requires a TOS they have not\naccepted.", "Warning that a resource is in use.", - "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "One or more of the resources set to auto-delete could not be deleted\nbecause they were in use.", "When a resource schema validation is ignored.", - "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", + "Instance template used in instance group manager is valid as such, but\nits application does not make a lot of sense, because it allows only\nsingle instance in instance group.", "When undeclared properties in the schema are present", "A given scope cannot be reached." ], "type": "string" }, "data": { - "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", + "description": "[Output Only] Metadata about this warning in key:\nvalue format. For example:\n\n\"data\": [\n {\n \"key\": \"scope\",\n \"value\": \"zones/us-east1-d\"\n }", "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).", + "description": "[Output Only] A key that provides more detail on the warning being\nreturned. For example, for warnings where there are no results in a list\nrequest for a particular zone, this key might be scope and\nthe key value might be the zone name. Other examples might be a key\nindicating a deprecated resource and a suggested replacement, or a\nwarning about invalid network settings (for example, if an instance\nattempts to perform IP forwarding but is not enabled for IP forwarding).", "type": "string" }, "value": { @@ -64701,189 +91442,489 @@ }, "type": "object" }, - "PublicAdvertisedPrefixPublicDelegatedPrefix": { - "description": "Represents a CIDR range which can be used to assign addresses.", - "id": "PublicAdvertisedPrefixPublicDelegatedPrefix", + "ReservationSubBlock": { + "description": "Represents a reservation subBlock resource.", + "id": "ReservationSubBlock", "properties": { - "ipRange": { - "description": "The IP address range of the public delegated prefix", + "acceleratorTopologiesInfo": { + "$ref": "AcceleratorTopologiesInfo", + "description": "Output only. [Output Only] Slice info for the reservation subBlock.", + "readOnly": true + }, + "count": { + "description": "Output only. [Output Only] The number of hosts that are allocated in this\nreservation subBlock.", + "format": "int32", + "readOnly": true, + "type": "integer" + }, + "creationTimestamp": { + "description": "Output only. [Output Only] Creation timestamp inRFC3339 text format.", + "readOnly": true, + "type": "string" + }, + "healthInfo": { + "$ref": "ReservationSubBlockHealthInfo", + "description": "Output only. [Output Only] Health information for the reservation subBlock.", + "readOnly": true + }, + "id": { + "description": "Output only. [Output Only] The unique identifier for the resource. This identifier is\ndefined by the server.", + "format": "uint64", + "readOnly": true, + "type": "string" + }, + "inUseCount": { + "description": "Output only. [Output Only] The number of instances that are currently in use on this\nreservation subBlock.", + "format": "int32", + "readOnly": true, + "type": "integer" + }, + "inUseHostCount": { + "description": "Output only. Number of hosts currently in use. If there is one or more Instances running\non the host, it is considered in use.", + "format": "int32", + "readOnly": true, + "type": "integer" + }, + "kind": { + "default": "compute#reservationSubBlock", + "description": "Output only. [Output Only] Type of the resource. Alwayscompute#reservationSubBlock for reservation subBlocks.", + "readOnly": true, "type": "string" }, "name": { - "description": "The name of the public delegated prefix", + "description": "Output only. [Output Only] The name of this reservation subBlock generated by Google\nCompute Engine. The name must be 1-63 characters long, and comply with\nRFC1035 @pattern [a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "readOnly": true, "type": "string" }, - "project": { - "description": "The project number of the public delegated prefix", + "physicalTopology": { + "$ref": "ReservationSubBlockPhysicalTopology", + "description": "Output only. [Output Only] The physical topology of the reservation subBlock.", + "readOnly": true + }, + "reservationSubBlockMaintenance": { + "$ref": "GroupMaintenanceInfo", + "description": "Output only. Maintenance information for this reservation subBlock.", + "readOnly": true + }, + "selfLink": { + "description": "Output only. [Output Only] Server-defined fully-qualified URL for this resource.", + "readOnly": true, "type": "string" }, - "region": { - "description": "The region of the public delegated prefix if it is regional. If absent, the prefix is global.", + "selfLinkWithId": { + "description": "Output only. [Output Only] Server-defined URL for this resource with the resource id.", + "readOnly": true, "type": "string" }, "status": { - "description": "The status of the public delegated prefix. Possible values are: INITIALIZING: The public delegated prefix is being initialized and addresses cannot be created yet. ANNOUNCED: The public delegated prefix is active.", + "description": "Output only. [Output Only] Status of the reservation subBlock.", + "enum": [ + "CREATING", + "DELETING", + "INVALID", + "READY" + ], + "enumDescriptions": [ + "Resources are being allocated for the reservation subBlock.", + "Reservation subBlock is currently being deleted.", + "", + "Reservation subBlock has allocated all its resources." + ], + "readOnly": true, + "type": "string" + }, + "zone": { + "description": "Output only. [Output Only] Zone in which the reservation subBlock resides.", + "readOnly": true, "type": "string" } }, "type": "object" }, - "PublicDelegatedPrefix": { - "description": "A PublicDelegatedPrefix resource represents an IP block within a PublicAdvertisedPrefix that is configured within a single cloud scope (global or region). IPs in the block can be allocated to resources within that scope. Public delegated prefixes may be further broken up into smaller IP blocks in the same scope as the parent block.", - "id": "PublicDelegatedPrefix", + "ReservationSubBlockHealthInfo": { + "description": "Health information for the reservation subBlock.", + "id": "ReservationSubBlockHealthInfo", "properties": { - "allocatablePrefixLength": { - "description": "The allocatable prefix length supported by this public delegated prefix. This field is optional and cannot be set for prefixes in DELEGATION mode. It cannot be set for IPv4 prefixes either, and it always defaults to 32.", + "degradedHostCount": { + "description": "The number of degraded hosts in the reservation subBlock.", "format": "int32", "type": "integer" }, - "byoipApiVersion": { - "description": "[Output Only] The version of BYOIP API.", + "degradedInfraCount": { + "description": "The number of degraded infrastructure (e.g NV link domain) in the\nreservation subblock.", + "format": "int32", + "type": "integer" + }, + "healthStatus": { + "description": "The health status of the reservation subBlock.", "enum": [ - "V1", - "V2" + "DEGRADED", + "HEALTHY", + "HEALTH_STATUS_UNSPECIFIED" ], "enumDescriptions": [ - "This public delegated prefix usually takes 4 weeks to delete, and the BGP status cannot be changed. Announce and Withdraw APIs can not be used on this prefix.", - "This public delegated prefix takes minutes to delete. Announce and Withdraw APIs can be used on this prefix to change the BGP status." + "The reservation subBlock is degraded.", + "The reservation subBlock is healthy.", + "The health status of the reservation subBlock is unspecified." ], "type": "string" }, - "creationTimestamp": { - "description": "[Output Only] Creation timestamp in RFC3339 text format.", - "type": "string" + "healthyHostCount": { + "description": "The number of healthy hosts in the reservation subBlock.", + "format": "int32", + "type": "integer" }, - "description": { - "description": "An optional description of this resource. Provide this property when you create the resource.", + "healthyInfraCount": { + "description": "The number of healthy infrastructure (e.g NV link domain) in the\nreservation subblock.", + "format": "int32", + "type": "integer" + } + }, + "type": "object" + }, + "ReservationSubBlockPhysicalTopology": { + "id": "ReservationSubBlockPhysicalTopology", + "properties": { + "block": { + "description": "The hash of the capacity block within the cluster.", "type": "string" }, - "fingerprint": { - "description": "Fingerprint of this resource. A hash of the contents stored in this object. This field is used in optimistic locking. This field will be ignored when inserting a new PublicDelegatedPrefix. An up-to-date fingerprint must be provided in order to update the PublicDelegatedPrefix, otherwise the request will fail with error 412 conditionNotMet. To see the latest fingerprint, make a get() request to retrieve a PublicDelegatedPrefix.", - "format": "byte", + "cluster": { + "description": "The cluster name of the reservation subBlock.", "type": "string" }, + "subBlock": { + "description": "The hash of the capacity sub-block within the capacity block.", + "type": "string" + } + }, + "type": "object" + }, + "ReservationSubBlocksGetResponse": { + "id": "ReservationSubBlocksGetResponse", + "properties": { + "resource": { + "$ref": "ReservationSubBlock" + } + }, + "type": "object" + }, + "ReservationSubBlocksGetVersionRequest": { + "id": "ReservationSubBlocksGetVersionRequest", + "properties": { + "sbomSelections": { + "description": "The SBOM selection to return.", + "items": { + "enum": [ + "SBOM_SELECTION_CURRENT", + "SBOM_SELECTION_TARGET", + "SBOM_SELECTION_UNSPECIFIED" + ], + "enumDescriptions": [ + "", + "", + "" + ], + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "ReservationSubBlocksListResponse": { + "description": "A list of reservation subBlocks under a single reservation.", + "id": "ReservationSubBlocksListResponse", + "properties": { "id": { - "description": "[Output Only] The unique identifier for the resource type. The server generates this identifier.", - "format": "uint64", + "description": "Unique identifier for the resource; defined by the server.", "type": "string" }, - "ipCidrRange": { - "description": "The IP address range, in CIDR format, represented by this public delegated prefix.", + "items": { + "description": "A list of reservation subBlock resources.", + "items": { + "$ref": "ReservationSubBlock" + }, + "type": "array" + }, + "kind": { + "default": "compute#reservationSubBlock", + "description": "Type of the resource. Alwayscompute#reservationSubBlock for a list of reservation\nsubBlocks.", "type": "string" }, - "isLiveMigration": { - "description": "If true, the prefix will be live migrated.", - "type": "boolean" + "nextPageToken": { + "description": "This token allows you to get the next page of results for\nlist requests. If the number of results is larger thanmaxResults, use the nextPageToken as a value for\nthe query parameter pageToken in the next list request.\nSubsequent list requests will have their own nextPageToken to\ncontinue paging through the results.", + "type": "string" }, - "kind": { - "default": "compute#publicDelegatedPrefix", - "description": "[Output Only] Type of the resource. Always compute#publicDelegatedPrefix for public delegated prefixes.", + "selfLink": { + "description": "Server-defined URL for this resource.", "type": "string" }, - "mode": { - "description": "The public delegated prefix mode for IPv6 only.", + "warning": { + "description": "Informational warning message.", + "properties": { + "code": { + "description": "[Output Only] A warning code, if applicable. For example, Compute\nEngine returns NO_RESULTS_ON_PAGE if there\nare 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", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", + "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "PARTIAL_SUCCESS", + "QUOTA_INFO_UNAVAILABLE", + "REQUIRED_TOS_AGREEMENT", + "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", + "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", + "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", + "UNREACHABLE" + ], + "enumDeprecated": [ + false, + false, + false, + false, + false, + false, + true, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false + ], + "enumDescriptions": [ + "Warning about failed cleanup of transient changes made by a failed\noperation.", + "A link to a deprecated resource was created.", + "When deploying and at least one of the resources has a type marked as\ndeprecated", + "The user created a boot disk that is larger than image size.", + "When deploying and at least one of the resources has a type marked as\nexperimental", + "Warning that is present in an external api call", + "Warning that value of a field has been overridden.\nDeprecated unused field.", + "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is\nnot of type HTTP/HTTPS/HTTP2.", + "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed\nwhich captures the amount of resources filtered out by\nuser-defined list filter.", + "A resource depends on a missing type", + "The route's nextHopIp address is not assigned to an instance on the\nnetwork.", + "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an\nipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not exist.", + "The route's nextHopInstance URL refers to an instance that is not on the\nsame network as the route.", + "The route's next hop instance does not have a status of RUNNING.", + "Error which is not critical. We decided to continue the process despite\nthe mentioned error.", + "No results are present on a particular list page.", + "Success is reported, but some results may be missing due to errors", + "Quota information is not available to client requests (e.g:\nregions.list).", + "The user attempted to use a resource that requires a TOS they have not\naccepted.", + "Warning that a resource is in use.", + "One or more of the resources set to auto-delete could not be deleted\nbecause they were in use.", + "When a resource schema validation is ignored.", + "Instance template used in instance group manager is valid as such, but\nits application does not make a lot of sense, because it allows only\nsingle instance in instance group.", + "When undeclared properties in the schema are present", + "A given scope cannot be reached." + ], + "type": "string" + }, + "data": { + "description": "[Output Only] Metadata about this warning in key:\nvalue format. For example:\n\n\"data\": [\n {\n \"key\": \"scope\",\n \"value\": \"zones/us-east1-d\"\n }", + "items": { + "properties": { + "key": { + "description": "[Output Only] A key that provides more detail on the warning being\nreturned. For example, for warnings where there are no results in a list\nrequest for a particular zone, this key might be scope and\nthe key value might be the zone name. Other examples might be a key\nindicating a deprecated resource and a suggested replacement, or a\nwarning about invalid network settings (for example, if an instance\nattempts 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" + }, + "ReservationSubBlocksReportFaultyRequest": { + "id": "ReservationSubBlocksReportFaultyRequest", + "properties": { + "disruptionSchedule": { + "description": "The disruption schedule for the subBlock.", "enum": [ - "DELEGATION", - "EXTERNAL_IPV6_FORWARDING_RULE_CREATION" + "DISRUPTION_SCHEDULE_UNSPECIFIED", + "IMMEDIATE" ], "enumDescriptions": [ - "The public delegated prefix is used for further sub-delegation only. Such prefixes cannot set allocatablePrefixLength.", - "The public delegated prefix is used for creating forwarding rules only. Such prefixes cannot set publicDelegatedSubPrefixes." + "", + "All VMs will be disrupted immediately." ], "type": "string" }, - "name": { - "annotations": { - "required": [ - "compute.publicDelegatedPrefixes.insert" - ] - }, - "description": "Name of the resource. Provided by the client when the resource is created. The name must be 1-63 characters long, and comply with RFC1035. 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" - }, - "parentPrefix": { - "description": "The URL of parent prefix. Either PublicAdvertisedPrefix or PublicDelegatedPrefix.", + "failureComponent": { + "description": "The component that experienced the fault.", + "enum": [ + "FAILURE_COMPONENT_UNSPECIFIED", + "MULTIPLE_FAULTY_HOSTS", + "NVLINK_SWITCH" + ], + "enumDescriptions": [ + "", + "Multiple hosts experienced the fault.", + "The NVLink switch experienced the fault." + ], "type": "string" }, - "publicDelegatedSubPrefixs": { - "description": "The list of sub public delegated prefixes that exist for this public delegated prefix.", + "faultReasons": { + "description": "The reasons for the fault experienced with the subBlock.", "items": { - "$ref": "PublicDelegatedPrefixPublicDelegatedSubPrefix" + "$ref": "ReservationSubBlocksReportFaultyRequestFaultReason" }, "type": "array" - }, - "region": { - "description": "[Output Only] URL of the region where the public delegated prefix resides. This field applies only to the region resource. You must specify this field as part of the HTTP request URL. It is not settable as a field in the request body.", + } + }, + "type": "object" + }, + "ReservationSubBlocksReportFaultyRequestFaultReason": { + "description": "The reason for the fault experienced with the subBlock.", + "id": "ReservationSubBlocksReportFaultyRequestFaultReason", + "properties": { + "behavior": { + "description": "The behavior of the fault experienced with the subBlock.", + "enum": [ + "FAULT_BEHAVIOR_UNSPECIFIED", + "GPU_ERROR", + "PERFORMANCE", + "SILENT_DATA_CORRUPTION", + "SWITCH_FAILURE" + ], + "enumDescriptions": [ + "", + "The subBlock experienced a GPU error.", + "The subBlock experienced performance issues.", + "The subBlock experienced silent data corruption.", + "The subBlock experienced a switch failure." + ], "type": "string" }, - "selfLink": { - "description": "[Output Only] Server-defined URL for the resource.", + "description": { + "description": "The description of the fault experienced with the subBlock.", "type": "string" - }, - "status": { - "description": "[Output Only] The status of the public delegated prefix, which can be one of following values: - `INITIALIZING` The public delegated prefix is being initialized and addresses cannot be created yet. - `READY_TO_ANNOUNCE` The public delegated prefix is a live migration prefix and is active. - `ANNOUNCED` The public delegated prefix is active. - `DELETING` The public delegated prefix is being deprovsioned. ", + } + }, + "type": "object" + }, + "ReservationsBlocksPerformMaintenanceRequest": { + "id": "ReservationsBlocksPerformMaintenanceRequest", + "properties": { + "maintenanceScope": { + "description": "Specifies if all, running or unused hosts are in scope for this request.", "enum": [ - "ANNOUNCED", - "ANNOUNCED_TO_GOOGLE", - "ANNOUNCED_TO_INTERNET", - "DELETING", - "INITIALIZING", - "READY_TO_ANNOUNCE" + "ALL", + "MAINTENANCE_SCOPE_UNSPECIFIED", + "RUNNING_VMS", + "UNUSED_CAPACITY" ], "enumDescriptions": [ - "The public delegated prefix is active.", - "The prefix is announced within Google network.", - "The prefix is announced to Internet and within Google.", - "The public delegated prefix is being deprovsioned.", - "The public delegated prefix is being initialized and addresses cannot be created yet.", - "The public delegated prefix is currently withdrawn but ready to be announced." + "Trigger maintenance for all hosts belonging to this reservation\nirrespective of whether VMs are running on them or not.", + "Internal only", + "Trigger maintenance only on the hosts belonging to this reservation which\nhave VMs running on them.", + "Trigger maintenance only on the hosts belonging to this reservation which\ndo not have any VMs running on them. This is not allowed for Standard ExR" ], "type": "string" } }, "type": "object" }, - "PublicDelegatedPrefixAggregatedList": { - "id": "PublicDelegatedPrefixAggregatedList", + "ReservationsPerformMaintenanceRequest": { + "id": "ReservationsPerformMaintenanceRequest", "properties": { - "id": { - "description": "[Output Only] Unique identifier for the resource; defined by the server.", - "type": "string" - }, - "items": { - "additionalProperties": { - "$ref": "PublicDelegatedPrefixesScopedList", - "description": "[Output Only] Name of the scope containing this set of PublicDelegatedPrefixes." - }, - "description": "A list of PublicDelegatedPrefixesScopedList resources.", - "type": "object" - }, - "kind": { - "default": "compute#publicDelegatedPrefixAggregatedList", - "description": "[Output Only] Type of the resource. Always compute#publicDelegatedPrefixAggregatedList for aggregated lists of public delegated prefixes.", - "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.", + "maintenanceScope": { + "description": "Specifies if all, running or unused hosts are in scope for this request.", + "enum": [ + "ALL", + "MAINTENANCE_SCOPE_UNSPECIFIED", + "RUNNING_VMS", + "UNUSED_CAPACITY" + ], + "enumDescriptions": [ + "Trigger maintenance for all hosts belonging to this reservation\nirrespective of whether VMs are running on them or not.", + "Internal only", + "Trigger maintenance only on the hosts belonging to this reservation which\nhave VMs running on them.", + "Trigger maintenance only on the hosts belonging to this reservation which\ndo not have any VMs running on them. This is not allowed for Standard ExR" + ], "type": "string" - }, - "selfLink": { - "description": "[Output Only] Server-defined URL for this resource.", + } + }, + "type": "object" + }, + "ReservationsResizeRequest": { + "id": "ReservationsResizeRequest", + "properties": { + "specificSkuCount": { + "description": "Number of allocated resources can be resized with minimum = 1 and\nmaximum = 1000.", + "format": "int64", "type": "string" - }, - "unreachables": { - "description": "[Output Only] Unreachable resources.", + } + }, + "type": "object" + }, + "ReservationsScopedList": { + "id": "ReservationsScopedList", + "properties": { + "reservations": { + "description": "A list of reservations contained in this scope.", "items": { - "type": "string" + "$ref": "Reservation" }, "type": "array" }, "warning": { - "description": "[Output Only] Informational warning message.", + "description": "Informational warning which replaces the list of reservations when\nthe list is empty.", "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.", + "description": "[Output Only] A warning code, if applicable. For example, Compute\nEngine returns NO_RESULTS_ON_PAGE if there\nare no results in the response.", "enum": [ "CLEANUP_FAILED", "DEPRECATED_RESOURCE_USED", @@ -64906,6 +91947,7 @@ "NOT_CRITICAL_ERROR", "NO_RESULTS_ON_PAGE", "PARTIAL_SUCCESS", + "QUOTA_INFO_UNAVAILABLE", "REQUIRED_TOS_AGREEMENT", "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", "RESOURCE_NOT_DELETED", @@ -64942,46 +91984,48 @@ false, false, false, + false, false ], "enumDescriptions": [ - "Warning about failed cleanup of transient changes made by a failed operation.", + "Warning about failed cleanup of transient changes made by a failed\noperation.", "A link to a deprecated resource was created.", - "When deploying and at least one of the resources has a type marked as deprecated", + "When deploying and at least one of the resources has a type marked as\ndeprecated", "The user created a boot disk that is larger than image size.", - "When deploying and at least one of the resources has a type marked as experimental", + "When deploying and at least one of the resources has a type marked as\nexperimental", "Warning that is present in an external api call", - "Warning that value of a field has been overridden. Deprecated unused field.", + "Warning that value of a field has been overridden.\nDeprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", - "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is\nnot of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", - "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", + "Resource can't be retrieved due to list overhead quota exceed\nwhich captures the amount of resources filtered out by\nuser-defined list filter.", "A resource depends on a missing type", - "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's nextHopIp address is not assigned to an instance on the\nnetwork.", "The route's next hop instance cannot ip forward.", - "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not have an\nipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", - "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that is not on the\nsame network as the route.", "The route's next hop instance does not have a status of RUNNING.", - "Error which is not critical. We decided to continue the process despite the mentioned error.", + "Error which is not critical. We decided to continue the process despite\nthe mentioned error.", "No results are present on a particular list page.", "Success is reported, but some results may be missing due to errors", - "The user attempted to use a resource that requires a TOS they have not accepted.", + "Quota information is not available to client requests (e.g:\nregions.list).", + "The user attempted to use a resource that requires a TOS they have not\naccepted.", "Warning that a resource is in use.", - "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "One or more of the resources set to auto-delete could not be deleted\nbecause they were in use.", "When a resource schema validation is ignored.", - "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", + "Instance template used in instance group manager is valid as such, but\nits application does not make a lot of sense, because it allows only\nsingle instance in instance group.", "When undeclared properties in the schema are present", "A given scope cannot be reached." ], "type": "string" }, "data": { - "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", + "description": "[Output Only] Metadata about this warning in key:\nvalue format. For example:\n\n\"data\": [\n {\n \"key\": \"scope\",\n \"value\": \"zones/us-east1-d\"\n }", "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).", + "description": "[Output Only] A key that provides more detail on the warning being\nreturned. For example, for warnings where there are no results in a list\nrequest for a particular zone, this key might be scope and\nthe key value might be the zone name. Other examples might be a key\nindicating a deprecated resource and a suggested replacement, or a\nwarning about invalid network settings (for example, if an instance\nattempts to perform IP forwarding but is not enabled for IP forwarding).", "type": "string" }, "value": { @@ -65003,38 +92047,65 @@ }, "type": "object" }, - "PublicDelegatedPrefixList": { - "id": "PublicDelegatedPrefixList", + "ResourceCommitment": { + "description": "Commitment for a particular hardware resource (a commitment is composed of\none or more of these).", + "id": "ResourceCommitment", + "properties": { + "acceleratorType": { + "description": "Name of the accelerator type or GPU resource. Specify this field only when\nthe type of hardware resource is ACCELERATOR.", + "type": "string" + }, + "amount": { + "description": "The quantity of the hardware resource that you want to commit to purchasing\n(in a type-dependent unit).\n \n - For vCPUs, you must specify an integer value.\n - For memory, you specify the amount of MB that you want. The value you\n specify must be a multiple of 256 MB, with up to 6.5 GB of\n memory per every vCPU.\n - For GPUs, you must specify an integer value.\n - For Local SSD disks, you must specify the amount in GB. The size of a\n single Local SSD disk is 375 GB.", + "format": "int64", + "type": "string" + }, + "type": { + "description": "The type of hardware resource that you want to specify.\nYou can specify any of the following values:\n \n - VCPU\n - MEMORY\n - LOCAL_SSD\n - ACCELERATOR\n\n\n\nSpecify as a separate entry in the list for each\nindividual resource type.", + "enum": [ + "ACCELERATOR", + "LOCAL_SSD", + "MEMORY", + "UNSPECIFIED", + "VCPU" + ], + "enumDescriptions": [ + "", + "", + "", + "", + "" + ], + "type": "string" + } + }, + "type": "object" + }, + "ResourceGroupReference": { + "id": "ResourceGroupReference", "properties": { - "id": { - "description": "[Output Only] Unique identifier for the resource; defined by the server.", + "group": { + "description": "A URI referencing one of the instance groups or network endpoint groups\nlisted in the backend service.", "type": "string" - }, - "items": { - "description": "A list of PublicDelegatedPrefix resources.", + } + }, + "type": "object" + }, + "ResourcePoliciesScopedList": { + "id": "ResourcePoliciesScopedList", + "properties": { + "resourcePolicies": { + "description": "A list of resourcePolicies contained in this scope.", "items": { - "$ref": "PublicDelegatedPrefix" + "$ref": "ResourcePolicy" }, "type": "array" }, - "kind": { - "default": "compute#publicDelegatedPrefixList", - "description": "[Output Only] Type of the resource. Always compute#publicDelegatedPrefixList for public delegated prefixes.", - "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" - }, - "selfLink": { - "description": "[Output Only] Server-defined URL for this resource.", - "type": "string" - }, "warning": { - "description": "[Output Only] Informational warning message.", + "description": "Informational warning which replaces the list of resourcePolicies when\nthe list is empty.", "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.", + "description": "[Output Only] A warning code, if applicable. For example, Compute\nEngine returns NO_RESULTS_ON_PAGE if there\nare no results in the response.", "enum": [ "CLEANUP_FAILED", "DEPRECATED_RESOURCE_USED", @@ -65057,6 +92128,7 @@ "NOT_CRITICAL_ERROR", "NO_RESULTS_ON_PAGE", "PARTIAL_SUCCESS", + "QUOTA_INFO_UNAVAILABLE", "REQUIRED_TOS_AGREEMENT", "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", "RESOURCE_NOT_DELETED", @@ -65093,46 +92165,48 @@ false, false, false, + false, false ], "enumDescriptions": [ - "Warning about failed cleanup of transient changes made by a failed operation.", + "Warning about failed cleanup of transient changes made by a failed\noperation.", "A link to a deprecated resource was created.", - "When deploying and at least one of the resources has a type marked as deprecated", + "When deploying and at least one of the resources has a type marked as\ndeprecated", "The user created a boot disk that is larger than image size.", - "When deploying and at least one of the resources has a type marked as experimental", + "When deploying and at least one of the resources has a type marked as\nexperimental", "Warning that is present in an external api call", - "Warning that value of a field has been overridden. Deprecated unused field.", + "Warning that value of a field has been overridden.\nDeprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", - "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is\nnot of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", - "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", + "Resource can't be retrieved due to list overhead quota exceed\nwhich captures the amount of resources filtered out by\nuser-defined list filter.", "A resource depends on a missing type", - "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's nextHopIp address is not assigned to an instance on the\nnetwork.", "The route's next hop instance cannot ip forward.", - "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not have an\nipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", - "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that is not on the\nsame network as the route.", "The route's next hop instance does not have a status of RUNNING.", - "Error which is not critical. We decided to continue the process despite the mentioned error.", + "Error which is not critical. We decided to continue the process despite\nthe mentioned error.", "No results are present on a particular list page.", "Success is reported, but some results may be missing due to errors", - "The user attempted to use a resource that requires a TOS they have not accepted.", + "Quota information is not available to client requests (e.g:\nregions.list).", + "The user attempted to use a resource that requires a TOS they have not\naccepted.", "Warning that a resource is in use.", - "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "One or more of the resources set to auto-delete could not be deleted\nbecause they were in use.", "When a resource schema validation is ignored.", - "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", + "Instance template used in instance group manager is valid as such, but\nits application does not make a lot of sense, because it allows only\nsingle instance in instance group.", "When undeclared properties in the schema are present", "A given scope cannot be reached." ], "type": "string" }, "data": { - "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", + "description": "[Output Only] Metadata about this warning in key:\nvalue format. For example:\n\n\"data\": [\n {\n \"key\": \"scope\",\n \"value\": \"zones/us-east1-d\"\n }", "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).", + "description": "[Output Only] A key that provides more detail on the warning being\nreturned. For example, for warnings where there are no results in a list\nrequest for a particular zone, this key might be scope and\nthe key value might be the zone name. Other examples might be a key\nindicating a deprecated resource and a suggested replacement, or a\nwarning about invalid network settings (for example, if an instance\nattempts to perform IP forwarding but is not enabled for IP forwarding).", "type": "string" }, "value": { @@ -65154,81 +92228,143 @@ }, "type": "object" }, - "PublicDelegatedPrefixPublicDelegatedSubPrefix": { - "description": "Represents a sub PublicDelegatedPrefix.", - "id": "PublicDelegatedPrefixPublicDelegatedSubPrefix", + "ResourcePolicy": { + "description": "Represents a Resource Policy resource. You can use resource policies to\nschedule actions for some Compute Engine resources. For example, you can\nuse them toschedule persistent disk\nsnapshots.", + "id": "ResourcePolicy", "properties": { - "allocatablePrefixLength": { - "description": "The allocatable prefix length supported by this PublicDelegatedSubPrefix.", - "format": "int32", - "type": "integer" - }, - "delegateeProject": { - "description": "Name of the project scoping this PublicDelegatedSubPrefix.", + "creationTimestamp": { + "description": "Output only. [Output Only] Creation timestamp inRFC3339\ntext format.", + "readOnly": true, "type": "string" }, "description": { - "description": "An optional description of this resource. Provide this property when you create the resource.", "type": "string" }, - "ipCidrRange": { - "description": "The IP address range, in CIDR format, represented by this sub public delegated prefix.", + "diskConsistencyGroupPolicy": { + "$ref": "ResourcePolicyDiskConsistencyGroupPolicy", + "description": "Resource policy for disk consistency groups." + }, + "groupPlacementPolicy": { + "$ref": "ResourcePolicyGroupPlacementPolicy", + "description": "Resource policy for instances for placement configuration." + }, + "id": { + "description": "Output only. [Output Only] The unique identifier for the resource. This identifier is\ndefined by the server.", + "format": "uint64", + "readOnly": true, "type": "string" }, - "isAddress": { - "description": "Whether the sub prefix is delegated to create Address resources in the delegatee project.", - "type": "boolean" + "instanceSchedulePolicy": { + "$ref": "ResourcePolicyInstanceSchedulePolicy", + "description": "Resource policy for scheduling instance operations." }, - "mode": { - "description": "The PublicDelegatedSubPrefix mode for IPv6 only.", - "enum": [ - "DELEGATION", - "EXTERNAL_IPV6_FORWARDING_RULE_CREATION" - ], - "enumDescriptions": [ - "The public delegated prefix is used for further sub-delegation only. Such prefixes cannot set allocatablePrefixLength.", - "The public delegated prefix is used for creating forwarding rules only. Such prefixes cannot set publicDelegatedSubPrefixes." - ], + "kind": { + "default": "compute#resourcePolicy", + "description": "Output only. [Output Only] Type of the resource. Alwayscompute#resource_policies for resource policies.", + "readOnly": true, "type": "string" }, "name": { - "description": "The name of the sub public delegated prefix.", + "annotations": { + "required": [ + "compute.instances.insert" + ] + }, + "description": "The name of the resource, provided by the client when initially creating\nthe resource. The resource name must be 1-63 characters long, and comply\nwithRFC1035.\nSpecifically, the name must be 1-63 characters long and match the regular\nexpression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first\ncharacter must be a lowercase letter, and all following characters must be\na dash, lowercase letter, or digit, except the last character, which cannot\nbe a dash.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", "type": "string" }, "region": { - "description": "[Output Only] The region of the sub public delegated prefix if it is regional. If absent, the sub prefix is global.", + "readOnly": true, + "type": "string" + }, + "resourceStatus": { + "$ref": "ResourcePolicyResourceStatus", + "description": "Output only. [Output Only] The system status of the resource policy.", + "readOnly": true + }, + "selfLink": { + "description": "Output only. [Output Only] Server-defined fully-qualified URL for this resource.", + "readOnly": true, "type": "string" }, + "snapshotSchedulePolicy": { + "$ref": "ResourcePolicySnapshotSchedulePolicy", + "description": "Resource policy for persistent disks for creating snapshots." + }, "status": { - "description": "[Output Only] The status of the sub public delegated prefix.", + "description": "Output only. [Output Only] The status of resource policy creation.", "enum": [ - "ACTIVE", - "INACTIVE" + "CREATING", + "DELETING", + "EXPIRED", + "INVALID", + "READY" ], "enumDescriptions": [ + "Resource policy is being created.", + "Resource policy is being deleted.", + "Resource policy is expired and will not run again.", "", - "" + "Resource policy is ready to be used." ], + "readOnly": true, "type": "string" + }, + "workloadPolicy": { + "$ref": "ResourcePolicyWorkloadPolicy", + "description": "Resource policy for defining instance placement for MIGs." } }, "type": "object" }, - "PublicDelegatedPrefixesScopedList": { - "id": "PublicDelegatedPrefixesScopedList", + "ResourcePolicyAggregatedList": { + "description": "Contains a list of resourcePolicies.", + "id": "ResourcePolicyAggregatedList", "properties": { - "publicDelegatedPrefixes": { - "description": "[Output Only] A list of PublicDelegatedPrefixes contained in this scope.", + "etag": { + "type": "string" + }, + "id": { + "description": "[Output Only] Unique identifier for the resource; defined by the server.", + "type": "string" + }, + "items": { + "additionalProperties": { + "$ref": "ResourcePoliciesScopedList", + "description": "Name of the scope containing this set of resourcePolicies." + }, + "description": "A list of ResourcePolicy resources.", + "type": "object" + }, + "kind": { + "default": "compute#resourcePolicyAggregatedList", + "description": "Output only. Type of resource.", + "readOnly": true, + "type": "string" + }, + "nextPageToken": { + "description": "[Output Only] This token allows you to get the next page of results for\nlist requests. If the number of results is larger thanmaxResults, use the nextPageToken as a value for\nthe query parameter pageToken in the next list request.\nSubsequent list requests will have their own nextPageToken to\ncontinue paging through the results.", + "type": "string" + }, + "selfLink": { + "description": "Output only. [Output Only] Server-defined URL for this resource.", + "readOnly": true, + "type": "string" + }, + "unreachables": { + "description": "Output only. [Output Only] Unreachable resources.", "items": { - "$ref": "PublicDelegatedPrefix" + "type": "string" }, + "readOnly": true, "type": "array" }, "warning": { - "description": "[Output Only] Informational warning which replaces the list of public delegated prefixes when the list is empty.", + "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.", + "description": "[Output Only] A warning code, if applicable. For example, Compute\nEngine returns NO_RESULTS_ON_PAGE if there\nare no results in the response.", "enum": [ "CLEANUP_FAILED", "DEPRECATED_RESOURCE_USED", @@ -65251,6 +92387,7 @@ "NOT_CRITICAL_ERROR", "NO_RESULTS_ON_PAGE", "PARTIAL_SUCCESS", + "QUOTA_INFO_UNAVAILABLE", "REQUIRED_TOS_AGREEMENT", "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", "RESOURCE_NOT_DELETED", @@ -65287,46 +92424,48 @@ false, false, false, + false, false ], "enumDescriptions": [ - "Warning about failed cleanup of transient changes made by a failed operation.", + "Warning about failed cleanup of transient changes made by a failed\noperation.", "A link to a deprecated resource was created.", - "When deploying and at least one of the resources has a type marked as deprecated", + "When deploying and at least one of the resources has a type marked as\ndeprecated", "The user created a boot disk that is larger than image size.", - "When deploying and at least one of the resources has a type marked as experimental", + "When deploying and at least one of the resources has a type marked as\nexperimental", "Warning that is present in an external api call", - "Warning that value of a field has been overridden. Deprecated unused field.", + "Warning that value of a field has been overridden.\nDeprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", - "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is\nnot of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", - "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", + "Resource can't be retrieved due to list overhead quota exceed\nwhich captures the amount of resources filtered out by\nuser-defined list filter.", "A resource depends on a missing type", - "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's nextHopIp address is not assigned to an instance on the\nnetwork.", "The route's next hop instance cannot ip forward.", - "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not have an\nipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", - "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that is not on the\nsame network as the route.", "The route's next hop instance does not have a status of RUNNING.", - "Error which is not critical. We decided to continue the process despite the mentioned error.", + "Error which is not critical. We decided to continue the process despite\nthe mentioned error.", "No results are present on a particular list page.", "Success is reported, but some results may be missing due to errors", - "The user attempted to use a resource that requires a TOS they have not accepted.", + "Quota information is not available to client requests (e.g:\nregions.list).", + "The user attempted to use a resource that requires a TOS they have not\naccepted.", "Warning that a resource is in use.", - "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "One or more of the resources set to auto-delete could not be deleted\nbecause they were in use.", "When a resource schema validation is ignored.", - "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", + "Instance template used in instance group manager is valid as such, but\nits application does not make a lot of sense, because it allows only\nsingle instance in instance group.", "When undeclared properties in the schema are present", "A given scope cannot be reached." ], "type": "string" }, "data": { - "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", + "description": "[Output Only] Metadata about this warning in key:\nvalue format. For example:\n\n\"data\": [\n {\n \"key\": \"scope\",\n \"value\": \"zones/us-east1-d\"\n }", "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).", + "description": "[Output Only] A key that provides more detail on the warning being\nreturned. For example, for warnings where there are no results in a list\nrequest for a particular zone, this key might be scope and\nthe key value might be the zone name. Other examples might be a key\nindicating a deprecated resource and a suggested replacement, or a\nwarning about invalid network settings (for example, if an instance\nattempts to perform IP forwarding but is not enabled for IP forwarding).", "type": "string" }, "value": { @@ -65334,480 +92473,188 @@ "type": "string" } }, - "type": "object" - }, - "type": "array" - }, - "message": { - "description": "[Output Only] A human-readable description of the warning code.", - "type": "string" - } - }, - "type": "object" - } - }, - "type": "object" - }, - "Quota": { - "description": "A quotas entry.", - "id": "Quota", - "properties": { - "limit": { - "description": "[Output Only] Quota limit for this metric.", - "format": "double", - "type": "number" - }, - "metric": { - "description": "[Output Only] Name of the quota metric.", - "enum": [ - "A2_CPUS", - "AFFINITY_GROUPS", - "AUTOSCALERS", - "BACKEND_BUCKETS", - "BACKEND_SERVICES", - "C2D_CPUS", - "C2_CPUS", - "C3_CPUS", - "COMMITMENTS", - "COMMITTED_A2_CPUS", - "COMMITTED_C2D_CPUS", - "COMMITTED_C2_CPUS", - "COMMITTED_C3_CPUS", - "COMMITTED_CPUS", - "COMMITTED_E2_CPUS", - "COMMITTED_LICENSES", - "COMMITTED_LOCAL_SSD_TOTAL_GB", - "COMMITTED_M3_CPUS", - "COMMITTED_MEMORY_OPTIMIZED_CPUS", - "COMMITTED_N2A_CPUS", - "COMMITTED_N2D_CPUS", - "COMMITTED_N2_CPUS", - "COMMITTED_NVIDIA_A100_80GB_GPUS", - "COMMITTED_NVIDIA_A100_GPUS", - "COMMITTED_NVIDIA_H100_GPUS", - "COMMITTED_NVIDIA_K80_GPUS", - "COMMITTED_NVIDIA_L4_GPUS", - "COMMITTED_NVIDIA_P100_GPUS", - "COMMITTED_NVIDIA_P4_GPUS", - "COMMITTED_NVIDIA_T4_GPUS", - "COMMITTED_NVIDIA_V100_GPUS", - "COMMITTED_T2A_CPUS", - "COMMITTED_T2D_CPUS", - "COMMITTED_Z3_CPUS", - "CPUS", - "CPUS_ALL_REGIONS", - "DISKS_TOTAL_GB", - "E2_CPUS", - "EXTERNAL_MANAGED_FORWARDING_RULES", - "EXTERNAL_NETWORK_LB_FORWARDING_RULES", - "EXTERNAL_PROTOCOL_FORWARDING_RULES", - "EXTERNAL_VPN_GATEWAYS", - "FIREWALLS", - "FORWARDING_RULES", - "GLOBAL_EXTERNAL_MANAGED_BACKEND_SERVICES", - "GLOBAL_EXTERNAL_MANAGED_FORWARDING_RULES", - "GLOBAL_EXTERNAL_PROXY_LB_BACKEND_SERVICES", - "GLOBAL_INTERNAL_ADDRESSES", - "GLOBAL_INTERNAL_MANAGED_BACKEND_SERVICES", - "GLOBAL_INTERNAL_TRAFFIC_DIRECTOR_BACKEND_SERVICES", - "GPUS_ALL_REGIONS", - "HDB_TOTAL_GB", - "HDB_TOTAL_IOPS", - "HDB_TOTAL_THROUGHPUT", - "HEALTH_CHECKS", - "IMAGES", - "INSTANCES", - "INSTANCE_GROUPS", - "INSTANCE_GROUP_MANAGERS", - "INSTANCE_TEMPLATES", - "INTERCONNECTS", - "INTERCONNECT_ATTACHMENTS_PER_REGION", - "INTERCONNECT_ATTACHMENTS_TOTAL_MBPS", - "INTERCONNECT_TOTAL_GBPS", - "INTERNAL_ADDRESSES", - "INTERNAL_TRAFFIC_DIRECTOR_FORWARDING_RULES", - "IN_PLACE_SNAPSHOTS", - "IN_USE_ADDRESSES", - "IN_USE_BACKUP_SCHEDULES", - "IN_USE_SNAPSHOT_SCHEDULES", - "LOCAL_SSD_TOTAL_GB", - "M1_CPUS", - "M2_CPUS", - "M3_CPUS", - "MACHINE_IMAGES", - "N2A_CPUS", - "N2D_CPUS", - "N2_CPUS", - "NETWORKS", - "NETWORK_ATTACHMENTS", - "NETWORK_ENDPOINT_GROUPS", - "NETWORK_FIREWALL_POLICIES", - "NET_LB_SECURITY_POLICIES_PER_REGION", - "NET_LB_SECURITY_POLICY_RULES_PER_REGION", - "NET_LB_SECURITY_POLICY_RULE_ATTRIBUTES_PER_REGION", - "NODE_GROUPS", - "NODE_TEMPLATES", - "NVIDIA_A100_80GB_GPUS", - "NVIDIA_A100_GPUS", - "NVIDIA_K80_GPUS", - "NVIDIA_L4_GPUS", - "NVIDIA_P100_GPUS", - "NVIDIA_P100_VWS_GPUS", - "NVIDIA_P4_GPUS", - "NVIDIA_P4_VWS_GPUS", - "NVIDIA_T4_GPUS", - "NVIDIA_T4_VWS_GPUS", - "NVIDIA_V100_GPUS", - "PACKET_MIRRORINGS", - "PD_EXTREME_TOTAL_PROVISIONED_IOPS", - "PREEMPTIBLE_CPUS", - "PREEMPTIBLE_LOCAL_SSD_GB", - "PREEMPTIBLE_NVIDIA_A100_80GB_GPUS", - "PREEMPTIBLE_NVIDIA_A100_GPUS", - "PREEMPTIBLE_NVIDIA_H100_GPUS", - "PREEMPTIBLE_NVIDIA_K80_GPUS", - "PREEMPTIBLE_NVIDIA_L4_GPUS", - "PREEMPTIBLE_NVIDIA_P100_GPUS", - "PREEMPTIBLE_NVIDIA_P100_VWS_GPUS", - "PREEMPTIBLE_NVIDIA_P4_GPUS", - "PREEMPTIBLE_NVIDIA_P4_VWS_GPUS", - "PREEMPTIBLE_NVIDIA_T4_GPUS", - "PREEMPTIBLE_NVIDIA_T4_VWS_GPUS", - "PREEMPTIBLE_NVIDIA_V100_GPUS", - "PREEMPTIBLE_TPU_LITE_DEVICE_V5", - "PREEMPTIBLE_TPU_LITE_PODSLICE_V5", - "PREEMPTIBLE_TPU_PODSLICE_V4", - "PSC_ILB_CONSUMER_FORWARDING_RULES_PER_PRODUCER_NETWORK", - "PSC_INTERNAL_LB_FORWARDING_RULES", - "PUBLIC_ADVERTISED_PREFIXES", - "PUBLIC_DELEGATED_PREFIXES", - "REGIONAL_AUTOSCALERS", - "REGIONAL_EXTERNAL_MANAGED_BACKEND_SERVICES", - "REGIONAL_EXTERNAL_NETWORK_LB_BACKEND_SERVICES", - "REGIONAL_INSTANCE_GROUP_MANAGERS", - "REGIONAL_INTERNAL_LB_BACKEND_SERVICES", - "REGIONAL_INTERNAL_MANAGED_BACKEND_SERVICES", - "REGIONAL_INTERNAL_TRAFFIC_DIRECTOR_BACKEND_SERVICES", - "RESERVATIONS", - "RESOURCE_POLICIES", - "ROUTERS", - "ROUTES", - "SECURITY_POLICIES", - "SECURITY_POLICIES_PER_REGION", - "SECURITY_POLICY_ADVANCED_RULES_PER_REGION", - "SECURITY_POLICY_CEVAL_RULES", - "SECURITY_POLICY_RULES", - "SECURITY_POLICY_RULES_PER_REGION", - "SERVICE_ATTACHMENTS", - "SNAPSHOTS", - "SSD_TOTAL_GB", - "SSL_CERTIFICATES", - "SSL_POLICIES", - "STATIC_ADDRESSES", - "STATIC_BYOIP_ADDRESSES", - "STATIC_EXTERNAL_IPV6_ADDRESS_RANGES", - "SUBNETWORKS", - "T2A_CPUS", - "T2D_CPUS", - "TARGET_HTTPS_PROXIES", - "TARGET_HTTP_PROXIES", - "TARGET_INSTANCES", - "TARGET_POOLS", - "TARGET_SSL_PROXIES", - "TARGET_TCP_PROXIES", - "TARGET_VPN_GATEWAYS", - "TPU_LITE_DEVICE_V5", - "TPU_LITE_PODSLICE_V5", - "TPU_PODSLICE_V4", - "URL_MAPS", - "VARIABLE_IPV6_PUBLIC_DELEGATED_PREFIXES", - "VPN_GATEWAYS", - "VPN_TUNNELS", - "XPN_SERVICE_PROJECTS" - ], - "enumDescriptions": [ - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "Guest CPUs", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "The total number of snapshots allowed for a single project.", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "" - ], - "type": "string" + "type": "object" + }, + "type": "array" + }, + "message": { + "description": "[Output Only] A human-readable description of the warning code.", + "type": "string" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "ResourcePolicyDailyCycle": { + "description": "Time window specified for daily operations.", + "id": "ResourcePolicyDailyCycle", + "properties": { + "daysInCycle": { + "description": "Defines a schedule with units measured in days. The value determines\nhow many days pass between the start of each cycle.", + "format": "int32", + "type": "integer" }, - "owner": { - "description": "[Output Only] Owning resource. This is the resource on which this quota is applied.", + "duration": { + "description": "Output only. [Output only] A predetermined duration for the window, automatically\nchosen to be the smallest possible in the given scenario.", + "readOnly": true, "type": "string" }, - "usage": { - "description": "[Output Only] Current usage of this metric.", - "format": "double", - "type": "number" + "startTime": { + "description": "Start time of the window. This must be in UTC format that resolves to one\nof 00:00, 04:00, 08:00,12:00, 16:00, or 20:00. For\nexample, both 13:00-5 and 08:00 are valid.", + "type": "string" } }, "type": "object" }, - "QuotaExceededInfo": { - "description": "Additional details for quota exceeded error for resource quota.", - "id": "QuotaExceededInfo", + "ResourcePolicyDiskConsistencyGroupPolicy": { + "description": "Resource policy for disk consistency groups.", + "id": "ResourcePolicyDiskConsistencyGroupPolicy", + "properties": {}, + "type": "object" + }, + "ResourcePolicyGroupPlacementPolicy": { + "description": "A GroupPlacementPolicy specifies resource placement configuration.\nIt specifies the failure bucket separation", + "id": "ResourcePolicyGroupPlacementPolicy", "properties": { - "dimensions": { - "additionalProperties": { - "type": "string" - }, - "description": "The map holding related quota dimensions.", - "type": "object" - }, - "futureLimit": { - "description": "Future quota limit being rolled out. The limit's unit depends on the quota type or metric.", - "format": "double", - "type": "number" - }, - "limit": { - "description": "Current effective quota limit. The limit's unit depends on the quota type or metric.", - "format": "double", - "type": "number" - }, - "limitName": { - "description": "The name of the quota limit.", + "acceleratorTopologyMode": { + "description": "Specifies the connection mode for the accelerator topology. If not\nspecified, the default is AUTO_CONNECT.", + "enum": [ + "AUTO_CONNECT", + "PROVISION_ONLY" + ], + "enumDescriptions": [ + "The interconnected chips are pre-configured at the time of VM creation.", + "The interconnected chips are connected on demand. At the time of VM\ncreation, the chips are not connected." + ], "type": "string" }, - "metricName": { - "description": "The Compute Engine quota metric name.", - "type": "string" + "availabilityDomainCount": { + "description": "The number of availability domains to spread instances across. If two\ninstances are in different availability domain, they are not in the same\nlow latency network.", + "format": "int32", + "type": "integer" }, - "rolloutStatus": { - "description": "Rollout status of the future quota limit.", + "collocation": { + "description": "Specifies network collocation", "enum": [ - "IN_PROGRESS", - "ROLLOUT_STATUS_UNSPECIFIED" + "COLLOCATED", + "UNSPECIFIED_COLLOCATION" ], "enumDescriptions": [ - "IN_PROGRESS - A rollout is in process which will change the limit value to future limit.", - "ROLLOUT_STATUS_UNSPECIFIED - Rollout status is not specified. The default value." + "", + "" ], "type": "string" + }, + "gpuTopology": { + "description": "Specifies the shape of the GPU slice, in slice based GPU families eg.\nA4X.", + "type": "string" + }, + "vmCount": { + "description": "Number of VMs in this placement group. Google does not recommend that you\nuse this field unless you use a compact policy and you want your policy\nto work only if it contains this exact number of VMs.", + "format": "int32", + "type": "integer" } }, "type": "object" }, - "Reference": { - "description": "Represents a reference to a resource.", - "id": "Reference", + "ResourcePolicyHourlyCycle": { + "description": "Time window specified for hourly operations.", + "id": "ResourcePolicyHourlyCycle", "properties": { - "kind": { - "default": "compute#reference", - "description": "[Output Only] Type of the resource. Always compute#reference for references.", + "duration": { + "description": "Output only. [Output only] Duration of the time window, automatically chosen to be\nsmallest possible in the given scenario.", + "readOnly": true, "type": "string" }, - "referenceType": { - "description": "A description of the reference type with no implied semantics. Possible values include: 1. MEMBER_OF ", + "hoursInCycle": { + "description": "Defines a schedule with units measured in hours. The value determines\nhow many hours pass between the start of each cycle.", + "format": "int32", + "type": "integer" + }, + "startTime": { + "description": "Time within the window to start the operations.\nIt must be in format \"HH:MM\", where HH : [00-23] and MM : [00-00] GMT.", + "type": "string" + } + }, + "type": "object" + }, + "ResourcePolicyInstanceSchedulePolicy": { + "description": "An InstanceSchedulePolicy specifies when and how frequent certain\noperations are performed on the instance.", + "id": "ResourcePolicyInstanceSchedulePolicy", + "properties": { + "expirationTime": { + "description": "The expiration time of the schedule. The timestamp is an RFC3339 string.", "type": "string" }, - "referrer": { - "description": "URL of the resource which refers to the target.", + "startTime": { + "description": "The start time of the schedule. The timestamp is an RFC3339 string.", "type": "string" }, - "target": { - "description": "URL of the resource to which this reference points.", + "timeZone": { + "description": "Specifies the time zone to be used in interpreting Schedule.schedule.\nThe value of this field must be a time zone name from the tz database:\nhttps://wikipedia.org/wiki/Tz_database.", "type": "string" + }, + "vmStartSchedule": { + "$ref": "ResourcePolicyInstanceSchedulePolicySchedule", + "description": "Specifies the schedule for starting instances." + }, + "vmStopSchedule": { + "$ref": "ResourcePolicyInstanceSchedulePolicySchedule", + "description": "Specifies the schedule for stopping instances." } }, "type": "object" }, - "Region": { - "description": "Represents a Region resource. A region is a geographical area where a resource is located. For more information, read Regions and Zones.", - "id": "Region", + "ResourcePolicyInstanceSchedulePolicySchedule": { + "description": "Schedule for an instance operation.", + "id": "ResourcePolicyInstanceSchedulePolicySchedule", "properties": { - "creationTimestamp": { - "description": "[Output Only] Creation timestamp in RFC3339 text format.", + "schedule": { + "description": "Specifies the frequency for the operation, using the unix-cron format.", "type": "string" - }, - "deprecated": { - "$ref": "DeprecationStatus", - "description": "[Output Only] The deprecation status associated with this region." - }, - "description": { - "description": "[Output Only] Textual description of the resource.", + } + }, + "type": "object" + }, + "ResourcePolicyList": { + "id": "ResourcePolicyList", + "properties": { + "etag": { "type": "string" }, "id": { - "description": "[Output Only] The unique identifier for the resource. This identifier is defined by the server.", - "format": "uint64", + "description": "[Output Only] The unique identifier for the resource. This identifier is\ndefined by the server.", "type": "string" }, + "items": { + "description": "[Output Only] A list of ResourcePolicy resources.", + "items": { + "$ref": "ResourcePolicy" + }, + "type": "array" + }, "kind": { - "default": "compute#region", - "description": "[Output Only] Type of the resource. Always compute#region for regions.", + "default": "compute#resourcePolicyList", + "description": "Output only. [Output Only] Type of resource.Alwayscompute#resourcePoliciesList for listsof resourcePolicies", + "readOnly": true, "type": "string" }, - "name": { - "description": "[Output Only] Name of the resource.", + "nextPageToken": { + "description": "[Output Only] This token allows you to get the next page of results for\nlist requests. If the number of results is larger thanmaxResults, use the nextPageToken as a value for\nthe query parameter pageToken in the next list request.\nSubsequent list requests will have their own nextPageToken to\ncontinue paging through the results.", "type": "string" }, - "quotaStatusWarning": { - "description": "[Output Only] Warning of fetching the `quotas` field for this region. This field is populated only if fetching of the `quotas` field fails.", + "selfLink": { + "description": "Output only. [Output Only] Server-defined URL for this resource.", + "readOnly": true, + "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.", + "description": "[Output Only] A warning code, if applicable. For example, Compute\nEngine returns NO_RESULTS_ON_PAGE if there\nare no results in the response.", "enum": [ "CLEANUP_FAILED", "DEPRECATED_RESOURCE_USED", @@ -65830,6 +92677,7 @@ "NOT_CRITICAL_ERROR", "NO_RESULTS_ON_PAGE", "PARTIAL_SUCCESS", + "QUOTA_INFO_UNAVAILABLE", "REQUIRED_TOS_AGREEMENT", "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", "RESOURCE_NOT_DELETED", @@ -65866,46 +92714,48 @@ false, false, false, + false, false ], "enumDescriptions": [ - "Warning about failed cleanup of transient changes made by a failed operation.", + "Warning about failed cleanup of transient changes made by a failed\noperation.", "A link to a deprecated resource was created.", - "When deploying and at least one of the resources has a type marked as deprecated", + "When deploying and at least one of the resources has a type marked as\ndeprecated", "The user created a boot disk that is larger than image size.", - "When deploying and at least one of the resources has a type marked as experimental", + "When deploying and at least one of the resources has a type marked as\nexperimental", "Warning that is present in an external api call", - "Warning that value of a field has been overridden. Deprecated unused field.", + "Warning that value of a field has been overridden.\nDeprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", - "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is\nnot of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", - "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", + "Resource can't be retrieved due to list overhead quota exceed\nwhich captures the amount of resources filtered out by\nuser-defined list filter.", "A resource depends on a missing type", - "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's nextHopIp address is not assigned to an instance on the\nnetwork.", "The route's next hop instance cannot ip forward.", - "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not have an\nipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", - "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that is not on the\nsame network as the route.", "The route's next hop instance does not have a status of RUNNING.", - "Error which is not critical. We decided to continue the process despite the mentioned error.", + "Error which is not critical. We decided to continue the process despite\nthe mentioned error.", "No results are present on a particular list page.", "Success is reported, but some results may be missing due to errors", - "The user attempted to use a resource that requires a TOS they have not accepted.", + "Quota information is not available to client requests (e.g:\nregions.list).", + "The user attempted to use a resource that requires a TOS they have not\naccepted.", "Warning that a resource is in use.", - "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "One or more of the resources set to auto-delete could not be deleted\nbecause they were in use.", "When a resource schema validation is ignored.", - "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", + "Instance template used in instance group manager is valid as such, but\nits application does not make a lot of sense, because it allows only\nsingle instance in instance group.", "When undeclared properties in the schema are present", "A given scope cannot be reached." ], "type": "string" }, "data": { - "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", + "description": "[Output Only] Metadata about this warning in key:\nvalue format. For example:\n\n\"data\": [\n {\n \"key\": \"scope\",\n \"value\": \"zones/us-east1-d\"\n }", "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).", + "description": "[Output Only] A key that provides more detail on the warning being\nreturned. For example, for warnings where there are no results in a list\nrequest for a particular zone, this key might be scope and\nthe key value might be the zone name. Other examples might be a key\nindicating a deprecated resource and a suggested replacement, or a\nwarning about invalid network settings (for example, if an instance\nattempts to perform IP forwarding but is not enabled for IP forwarding).", "type": "string" }, "value": { @@ -65922,37 +92772,695 @@ "type": "string" } }, - "type": "object" + "type": "object" + } + }, + "type": "object" + }, + "ResourcePolicyResourceStatus": { + "description": "Contains output only fields.\nUse this sub-message for all output fields set on ResourcePolicy.\nThe internal structure of this \"status\" field should mimic the structure\nof ResourcePolicy proto specification.", + "id": "ResourcePolicyResourceStatus", + "properties": { + "instanceSchedulePolicy": { + "$ref": "ResourcePolicyResourceStatusInstanceSchedulePolicyStatus", + "description": "Output only. [Output Only] Specifies a set of output values reffering to\nthe instance_schedule_policy system status.\nThis field should have the same name as corresponding policy field.", + "readOnly": true + } + }, + "type": "object" + }, + "ResourcePolicyResourceStatusInstanceSchedulePolicyStatus": { + "id": "ResourcePolicyResourceStatusInstanceSchedulePolicyStatus", + "properties": { + "lastRunStartTime": { + "description": "Output only. [Output Only] The last time the schedule successfully ran.\nThe timestamp is an RFC3339 string.", + "readOnly": true, + "type": "string" + }, + "nextRunStartTime": { + "description": "Output only. [Output Only] The next time the schedule is planned to run.\nThe actual time might be slightly different.\nThe timestamp is an RFC3339 string.", + "readOnly": true, + "type": "string" + } + }, + "type": "object" + }, + "ResourcePolicySnapshotSchedulePolicy": { + "description": "A snapshot schedule policy specifies when and how frequently snapshots are\nto be created for the target disk. Also specifies how many and how long\nthese scheduled snapshots should be retained.", + "id": "ResourcePolicySnapshotSchedulePolicy", + "properties": { + "retentionPolicy": { + "$ref": "ResourcePolicySnapshotSchedulePolicyRetentionPolicy", + "description": "Retention policy applied to snapshots created by this resource policy." + }, + "schedule": { + "$ref": "ResourcePolicySnapshotSchedulePolicySchedule", + "description": "A Vm Maintenance Policy specifies what kind of infrastructure\nmaintenance we are allowed to perform on this VM and when. Schedule\nthat is applied to disks covered by this policy." + }, + "snapshotProperties": { + "$ref": "ResourcePolicySnapshotSchedulePolicySnapshotProperties", + "description": "Properties with which snapshots are created such as labels, encryption\nkeys." + } + }, + "type": "object" + }, + "ResourcePolicySnapshotSchedulePolicyRetentionPolicy": { + "description": "Policy for retention of scheduled snapshots.", + "id": "ResourcePolicySnapshotSchedulePolicyRetentionPolicy", + "properties": { + "maxRetentionDays": { + "description": "Maximum age of the snapshot that is allowed to be kept.", + "format": "int32", + "type": "integer" + }, + "onSourceDiskDelete": { + "description": "Specifies the behavior to apply to scheduled snapshots when\nthe source disk is deleted.", + "enum": [ + "APPLY_RETENTION_POLICY", + "KEEP_AUTO_SNAPSHOTS", + "UNSPECIFIED_ON_SOURCE_DISK_DELETE" + ], + "enumDescriptions": [ + "", + "", + "" + ], + "type": "string" + } + }, + "type": "object" + }, + "ResourcePolicySnapshotSchedulePolicySchedule": { + "description": "A schedule for disks where the schedueled operations are performed.", + "id": "ResourcePolicySnapshotSchedulePolicySchedule", + "properties": { + "dailySchedule": { + "$ref": "ResourcePolicyDailyCycle" + }, + "hourlySchedule": { + "$ref": "ResourcePolicyHourlyCycle" + }, + "weeklySchedule": { + "$ref": "ResourcePolicyWeeklyCycle" + } + }, + "type": "object" + }, + "ResourcePolicySnapshotSchedulePolicySnapshotProperties": { + "description": "Specified snapshot properties for scheduled snapshots created by this\npolicy.", + "id": "ResourcePolicySnapshotSchedulePolicySnapshotProperties", + "properties": { + "chainName": { + "description": "Chain name that the snapshot is created in.", + "type": "string" + }, + "guestFlush": { + "description": "Indication to perform a 'guest aware' snapshot.", + "type": "boolean" + }, + "labels": { + "additionalProperties": { + "type": "string" + }, + "description": "Labels to apply to scheduled snapshots. These can be later modified\nby the setLabels method. Label values may be empty.", + "type": "object" + }, + "storageLocations": { + "description": "Cloud Storage bucket storage location of the auto snapshot (regional or\nmulti-regional).", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "ResourcePolicyWeeklyCycle": { + "description": "Time window specified for weekly operations.", + "id": "ResourcePolicyWeeklyCycle", + "properties": { + "dayOfWeeks": { + "description": "Up to 7 intervals/windows, one for each day of the week.", + "items": { + "$ref": "ResourcePolicyWeeklyCycleDayOfWeek" + }, + "type": "array" + } + }, + "type": "object" + }, + "ResourcePolicyWeeklyCycleDayOfWeek": { + "id": "ResourcePolicyWeeklyCycleDayOfWeek", + "properties": { + "day": { + "description": "Defines a schedule that runs on specific days of the week. Specify\none or more days. The following options are available:\nMONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, SUNDAY.", + "enum": [ + "FRIDAY", + "INVALID", + "MONDAY", + "SATURDAY", + "SUNDAY", + "THURSDAY", + "TUESDAY", + "WEDNESDAY" + ], + "enumDescriptions": [ + "", + "", + "", + "", + "", + "", + "", + "" + ], + "type": "string" + }, + "duration": { + "description": "Output only. [Output only] Duration of the time window, automatically chosen to be\nsmallest possible in the given scenario.", + "readOnly": true, + "type": "string" + }, + "startTime": { + "description": "Time within the window to start the operations.\nIt must be in format \"HH:MM\", where HH : [00-23] and MM : [00-00] GMT.", + "type": "string" + } + }, + "type": "object" + }, + "ResourcePolicyWorkloadPolicy": { + "description": "Represents the workload policy.", + "id": "ResourcePolicyWorkloadPolicy", + "properties": { + "acceleratorTopology": { + "description": "Specifies the topology required to create a partition for VMs that have\ninterconnected GPUs.", + "type": "string" + }, + "acceleratorTopologyMode": { + "description": "Specifies the connection mode for the accelerator topology. If not\nspecified, the default is AUTO_CONNECT.", + "enum": [ + "AUTO_CONNECT", + "PROVISION_ONLY" + ], + "enumDescriptions": [ + "The interconnected chips are pre-configured at the time of VM creation.", + "The interconnected chips are connected on demand. At the time of VM\ncreation, the chips are not connected." + ], + "type": "string" + }, + "maxTopologyDistance": { + "description": "Specifies the maximum distance between instances.", + "enum": [ + "BLOCK", + "CLUSTER", + "SUBBLOCK" + ], + "enumDescriptions": [ + "VMs must be provisioned in the same block.", + "VMs must be provisioned in the same cluster.", + "VMs must be provisioned in the same subblock." + ], + "type": "string" + }, + "type": { + "description": "Specifies the intent of the instance placement in the MIG.", + "enum": [ + "HIGH_AVAILABILITY", + "HIGH_THROUGHPUT" + ], + "enumDescriptions": [ + "MIG spreads out the instances as much as possible for high availability.", + "MIG provisions instances as close to each other as possible for high\nthroughput." + ], + "type": "string" + } + }, + "type": "object" + }, + "ResourceStatus": { + "description": "Contains output only fields.\nUse this sub-message for actual values set on Instance attributes as compared\nto the value requested by the user (intent) in their instance CRUD calls.", + "id": "ResourceStatus", + "properties": { + "effectiveInstanceMetadata": { + "$ref": "ResourceStatusEffectiveInstanceMetadata", + "description": "Output only. [Output Only] Effective metadata is a field that consolidates project,\nzonal instance settings, and instance-level predefined metadata keys to\nprovide the overridden value for those metadata keys at the instance level.", + "readOnly": true + }, + "physicalHost": { + "description": "Output only. [Output Only] The precise location of your instance within the zone's data\ncenter, including the block, sub-block, and host. The field is formatted as\nfollows: blockId/subBlockId/hostId.", + "readOnly": true, + "type": "string" + }, + "physicalHostTopology": { + "$ref": "ResourceStatusPhysicalHostTopology", + "description": "Output only. [Output Only] A series of fields containing the global name of the Compute\nEngine cluster, as well as the ID of the block, sub-block, and host on\nwhich the running instance is located.", + "readOnly": true + }, + "reservationConsumptionInfo": { + "$ref": "ResourceStatusReservationConsumptionInfo", + "description": "Output only. [Output Only] Reservation information that the instance is consuming from.", + "readOnly": true + }, + "scheduling": { + "$ref": "ResourceStatusScheduling" + }, + "upcomingMaintenance": { + "$ref": "UpcomingMaintenance", + "readOnly": true + } + }, + "type": "object" + }, + "ResourceStatusEffectiveInstanceMetadata": { + "description": "Effective values of predefined metadata keys for an instance.", + "id": "ResourceStatusEffectiveInstanceMetadata", + "properties": { + "blockProjectSshKeysMetadataValue": { + "description": "Effective block-project-ssh-keys value at Instance level.", + "type": "boolean" + }, + "enableGuestAttributesMetadataValue": { + "description": "Effective enable-guest-attributes value at Instance level.", + "type": "boolean" + }, + "enableOsInventoryMetadataValue": { + "description": "Effective enable-os-inventory value at Instance level.", + "type": "boolean" + }, + "enableOsconfigMetadataValue": { + "description": "Effective enable-osconfig value at Instance level.", + "type": "boolean" + }, + "enableOsloginMetadataValue": { + "description": "Effective enable-oslogin value at Instance level.", + "type": "boolean" + }, + "gceContainerDeclarationMetadataValue": { + "description": "Effective gce-container-declaration value at Instance level.", + "type": "boolean" + }, + "serialPortEnableMetadataValue": { + "description": "Effective serial-port-enable value at Instance level.", + "type": "boolean" + }, + "serialPortLoggingEnableMetadataValue": { + "description": "Effective serial-port-logging-enable value at Instance level.", + "type": "boolean" + }, + "vmDnsSettingMetadataValue": { + "description": "Effective VM DNS setting at Instance level.", + "type": "string" + } + }, + "type": "object" + }, + "ResourceStatusPhysicalHostTopology": { + "description": "Represents the physical host topology of the host on which the VM is\nrunning.", + "id": "ResourceStatusPhysicalHostTopology", + "properties": { + "additionalAttributes": { + "$ref": "ResourceStatusPhysicalHostTopologyAdditionalAttributes", + "description": "Output only. [Output Only] Additional location information of the running instance.", + "readOnly": true + }, + "block": { + "description": "[Output Only] The ID of the block in which the running instance is\nlocated. Instances within the same block experience low network latency.", + "type": "string" + }, + "cluster": { + "description": "[Output Only] The global name of the Compute Engine cluster where the\nrunning instance is located.", + "type": "string" + }, + "host": { + "description": "[Output Only] The ID of the host on which the running instance is located.\nInstances on the same host experience the lowest possible network\nlatency.", + "type": "string" + }, + "subblock": { + "description": "[Output Only] The ID of the sub-block in which the running instance is\nlocated. Instances in the same sub-block experience lower network latency\nthan instances in the same block.", + "type": "string" + } + }, + "type": "object" + }, + "ResourceStatusPhysicalHostTopologyAdditionalAttributes": { + "description": "Additional location information of the running instance.", + "id": "ResourceStatusPhysicalHostTopologyAdditionalAttributes", + "properties": { + "acceleratorTopologyIds": { + "additionalProperties": { + "type": "string" + }, + "description": "Output only. The IDs of the accelerator topologies the instance belongs to. For\nexample\nThe key will be topologies like \"4x4\", \"2x2x2\" and the value will be\nthe location ID of the topologies.", + "readOnly": true, + "type": "object" + } + }, + "type": "object" + }, + "ResourceStatusReservationConsumptionInfo": { + "description": "Reservation consumption information that the instance is consuming from.", + "id": "ResourceStatusReservationConsumptionInfo", + "properties": { + "consumedReservation": { + "description": "Output only. [Output Only] The full resource name of the reservation that this\ninstance is consuming from.", + "readOnly": true, + "type": "string" + } + }, + "type": "object" + }, + "ResourceStatusScheduling": { + "id": "ResourceStatusScheduling", + "properties": { + "availabilityDomain": { + "description": "Specifies the availability domain to place the instance in. The value\nmust be a number between 1 and the number of availability domains\nspecified in the spread placement policy attached to the instance.", + "format": "int32", + "type": "integer" + } + }, + "type": "object" + }, + "Rollout": { + "description": "Rollout resource.\n\nA Rollout is a specific instance of a RolloutPlan. It represents a single\nexecution of a strategy to roll out a specific resource. It also provides\nAPIs to interact with the rollout.", + "id": "Rollout", + "properties": { + "cancellationTime": { + "description": "Output only. The timestamp at which the Rollout was cancelled.", + "readOnly": true, + "type": "string" + }, + "completionTime": { + "description": "Output only. The timestamp at which the Rollout was completed.", + "readOnly": true, + "type": "string" + }, + "creationTimestamp": { + "description": "Output only. [Output Only] Creation timestamp inRFC3339\ntext format.", + "readOnly": true, + "type": "string" + }, + "currentWaveNumber": { + "description": "Output only. The number of the currently running wave.\nEx. 1", + "format": "int64", + "readOnly": true, + "type": "string" + }, + "description": { + "description": "An optional description of this resource. Provide this property when you\ncreate the resource.", + "type": "string" + }, + "etag": { + "description": "Output only. etag of the Rollout\nEx. abc1234", + "readOnly": true, + "type": "string" + }, + "id": { + "description": "Output only. [Output Only] The unique identifier for the resource. This identifier is\ndefined by the server.", + "format": "uint64", + "readOnly": true, + "type": "string" + }, + "kind": { + "default": "compute#rollout", + "description": "Output only. [Output Only] Type of the resource. Always compute#rollout\nfor rollouts.", + "readOnly": true, + "type": "string" + }, + "name": { + "description": "Name of the resource. Provided by the client when the resource is created.\nThe name must be 1-63 characters long, and comply withRFC1035.\nSpecifically, the name must be 1-63 characters long and match the regular\nexpression `[a-z]([-a-z0-9]*[a-z0-9])?`\nwhich means the first character must be a lowercase letter, and all\nfollowing characters must be a dash, lowercase letter, or digit, except\nthe last character, which cannot be a dash.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "type": "string" + }, + "pauseTime": { + "description": "Output only. The timestamp at which the Rollout was paused.", + "readOnly": true, + "type": "string" + }, + "resumeTime": { + "description": "Output only. The timestamp at which the Rollout was resumed.", + "readOnly": true, + "type": "string" + }, + "rolloutEntity": { + "$ref": "RolloutRolloutEntity", + "description": "Required. The resource being rolled out." + }, + "rolloutPlan": { + "description": "Required. Rollout Plan used to model the Rollout.\nEx. compute.googleapis.com/v1/projects/1234/rolloutPlans/rp1", + "type": "string" + }, + "selfLink": { + "description": "Output only. [Output Only] Server-defined fully-qualified URL for this resource.", + "readOnly": true, + "type": "string" + }, + "selfLinkWithId": { + "description": "Output only. [Output Only] Server-defined URL for this resource's resource id.", + "readOnly": true, + "type": "string" + }, + "state": { + "description": "Output only. The current state of the Rollout.", + "enum": [ + "CANCELLED", + "CANCELLING", + "CANCEL_FAILED", + "COMPLETED", + "COMPLETE_FAILED", + "COMPLETING", + "FAILED", + "PAUSED", + "PAUSE_FAILED", + "PAUSING", + "PROCESSING", + "READY", + "RESUMING", + "ROLLBACK_WAVE_FAILED", + "ROLLING_BACK", + "STATE_UNSPECIFIED", + "UNINITIALIZED", + "WAVE_FAILED" + ], + "enumDescriptions": [ + "The rollout is in a failure terminal state.", + "The rollout is being cancelled.", + "An attempted cancel operation was unsuccessful.", + "The rollout is in a successful terminal state.", + "An attempted complete operation was unsuccessful.", + "The rollout is being marked as completed.", + "The rollout completed with failures.", + "The rollout is paused.", + "An attempted pause operation was unsuccessful.", + "The rollout is being paused.", + "A wave is being processed by the product.", + "The rollout has been successfully initialized and is ready to start.", + "The rollout is being resumed after being paused.", + "An attempted rollback operation failed to complete successfully.", + "A wave rollback is in progress for this rollout.", + "Undefined default state. Should never be exposed to users.", + "The rollout has been created but is not yet ready to be started.", + "The product failed to process the wave." + ], + "readOnly": true, + "type": "string" + }, + "waveDetails": { + "description": "Output only. Details about each wave of the rollout.", + "items": { + "$ref": "RolloutWaveDetails" + }, + "readOnly": true, + "type": "array" + } + }, + "type": "object" + }, + "RolloutPlan": { + "description": "RolloutPlan resource.\n\nA RolloutPlan is the customer-defined strategy to divide a large-scale change\ninto smaller increments, referred to as \"waves\". Each wave targets a specific\nportion of the overall affected area and defines criteria that must be met\nbefore progressing to the subsequent wave.", + "id": "RolloutPlan", + "properties": { + "creationTimestamp": { + "description": "Output only. [Output Only] Creation timestamp inRFC3339\ntext format.", + "readOnly": true, + "type": "string" + }, + "description": { + "description": "An optional description of this resource. Provide this property when you\ncreate the resource.", + "type": "string" + }, + "id": { + "description": "Output only. [Output Only] The unique identifier for the resource. This identifier is\ndefined by the server.", + "format": "uint64", + "readOnly": true, + "type": "string" + }, + "kind": { + "default": "compute#rolloutPlan", + "description": "Output only. [Output Only] Type of the resource. Always compute#rolloutPlan\nfor rolloutPlans.", + "readOnly": true, + "type": "string" + }, + "locationScope": { + "description": "The location scope of the rollout plan. If not specified, the location\nscope is considered as ZONAL.", + "enum": [ + "LOCATION_SCOPE_UNSPECIFIED", + "REGIONAL", + "ZONAL" + ], + "enumDescriptions": [ + "Unspecified value. Considered as ZONAL.", + "Regional scope.", + "Zonal scope." + ], + "type": "string" + }, + "name": { + "annotations": { + "required": [ + "compute.rolloutPlans.insert" + ] + }, + "description": "Name of the resource. Provided by the client when the resource is created.\nThe name must be 1-63 characters long, and comply withRFC1035.\nSpecifically, the name must be 1-63 characters long and match the regular\nexpression `[a-z]([-a-z0-9]*[a-z0-9])?`\nwhich means the first character must be a lowercase letter, and all\nfollowing characters must be a dash, lowercase letter, or digit, except\nthe last character, which cannot be a dash.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "type": "string" }, - "quotas": { - "description": "[Output Only] Quotas assigned to this region.", + "selfLink": { + "description": "Output only. [Output Only] Server-defined fully-qualified URL for this resource.", + "readOnly": true, + "type": "string" + }, + "selfLinkWithId": { + "description": "Output only. [Output Only] Server-defined URL for this resource's resource id.", + "readOnly": true, + "type": "string" + }, + "waves": { + "description": "Required. The waves included in this rollout plan.", "items": { - "$ref": "Quota" + "$ref": "RolloutPlanWave" }, "type": "array" + } + }, + "type": "object" + }, + "RolloutPlanWave": { + "description": "A single wave in a rollout plan.", + "id": "RolloutPlanWave", + "properties": { + "displayName": { + "description": "Optional. The display name of this wave of the rollout plan.", + "type": "string" }, - "selfLink": { - "description": "[Output Only] Server-defined URL for the resource.", + "number": { + "description": "Output only. The wave number.", + "format": "int64", + "readOnly": true, "type": "string" }, - "status": { - "description": "[Output Only] Status of the region, either UP or DOWN.", + "orchestrationOptions": { + "$ref": "RolloutPlanWaveOrchestrationOptions", + "description": "Optional. The orchestration options for this wave." + }, + "selectors": { + "description": "Required. The selectors for this wave. There is a logical AND between each selector\ndefined in a wave, so a resource must satisfy the criteria of *all* the\nspecified selectors to be in scope for the wave.", + "items": { + "$ref": "RolloutPlanWaveSelector" + }, + "type": "array" + }, + "validation": { + "$ref": "RolloutPlanWaveValidation", + "description": "Required. The validation to be performed at the end of this wave." + } + }, + "type": "object" + }, + "RolloutPlanWaveOrchestrationOptions": { + "description": "Options to control the pace of orchestration of a wave. These options are\nrequired only if the resource being rolled out follows the Orchestrated\npattern.", + "id": "RolloutPlanWaveOrchestrationOptions", + "properties": { + "delays": { + "description": "Optional. Delays, if any, to be added between batches of projects. We allow\nmultiple Delays to be specified, letting users set separate delays\nbetween batches of projects corresponding to different locations and\nbatches of projects corresponding to the same location.", + "items": { + "$ref": "RolloutPlanWaveOrchestrationOptionsDelay" + }, + "type": "array" + }, + "maxConcurrentLocations": { + "description": "Optional. Maximum number of locations to be orchestrated in parallel.", + "format": "int64", + "type": "string" + }, + "maxConcurrentResourcesPerLocation": { + "description": "Optional. Maximum number of resources to be orchestrated per location in\nparallel.", + "format": "int64", + "type": "string" + } + }, + "type": "object" + }, + "RolloutPlanWaveOrchestrationOptionsDelay": { + "description": "Options to control the delay, if any, between batches of projects.", + "id": "RolloutPlanWaveOrchestrationOptionsDelay", + "properties": { + "delimiter": { + "description": "Optional. Controls whether the delay should only be added between batches of\nprojects corresponding to different locations, or also between\nbatches of projects corresponding to the same location.\n\nMust be set to DELIMITER_UNSPECIFIED if no delay is to be added.", "enum": [ - "DOWN", - "UP" + "DELIMITER_BATCH", + "DELIMITER_LOCATION", + "DELIMITER_UNSPECIFIED" ], "enumDescriptions": [ - "", - "" + "The delay will also be added between batches of projects\ncorresponding to the same location.", + "The delay will only be added between batches of projects\ncorresponding to different locations.", + "No delay will be added between batches of projects. Processing will\ncontinue with the next batch as soon as the previous batch of LROs\nis done." ], "type": "string" }, - "supportsPzs": { - "description": "[Output Only] Reserved for future use.", - "type": "boolean" + "duration": { + "description": "Optional. The duration of the delay, if any, to be added between batches of\nprojects. A zero duration corresponds to no delay.", + "format": "google-duration", + "type": "string" }, - "zones": { - "description": "[Output Only] A list of zones available in this region, in the form of resource URLs.", + "type": { + "description": "Optional. Controls whether the specified duration is to be added at the end of\neach batch, or if the total processing time for each batch will be\npadded if needed to meet the specified duration.\n\nMust be set to TYPE_UNSPECIFIED if no delay is to be added.", + "enum": [ + "TYPE_MINIMUM", + "TYPE_OFFSET", + "TYPE_UNSPECIFIED" + ], + "enumDescriptions": [ + "The total processing time for each batch of projects will be padded\nif needed to meet the specified delay duration.", + "The specified delay will directly be added after each batch of\nprojects as specified by the delimiter.", + "No delay will be added between batches of projects. Processing will\ncontinue with the next batch as soon as the previous batch of LROs\nis done." + ], + "type": "string" + } + }, + "type": "object" + }, + "RolloutPlanWaveSelector": { + "description": "A selector which specifies what resource(s) are included in a given wave.", + "id": "RolloutPlanWaveSelector", + "properties": { + "locationSelector": { + "$ref": "RolloutPlanWaveSelectorLocationSelector", + "description": "Optional. Roll out to resources by Cloud locations." + }, + "resourceHierarchySelector": { + "$ref": "RolloutPlanWaveSelectorResourceHierarchySelector", + "description": "Optional. Roll out to resources by Cloud Resource Manager resource hierarchy." + } + }, + "type": "object" + }, + "RolloutPlanWaveSelectorLocationSelector": { + "description": "Roll out to resources by location.", + "id": "RolloutPlanWaveSelectorLocationSelector", + "properties": { + "includedLocations": { + "description": "Optional. Example: \"us-central1-a\"", "items": { "type": "string" }, @@ -65961,53 +93469,101 @@ }, "type": "object" }, - "RegionAddressesMoveRequest": { - "id": "RegionAddressesMoveRequest", + "RolloutPlanWaveSelectorResourceHierarchySelector": { + "description": "Roll out to resources by Cloud Resource Manager resource hierarchy\nnodes such as projects, folders, orgs.", + "id": "RolloutPlanWaveSelectorResourceHierarchySelector", "properties": { - "description": { - "description": "An optional destination address description if intended to be different from the source.", - "type": "string" + "includedFolders": { + "description": "Optional. Format: \"folders/{folder_id}\"", + "items": { + "type": "string" + }, + "type": "array" }, - "destinationAddress": { - "description": "The URL of the destination address to move to. This can be a full or partial URL. For example, the following are all valid URLs to a address: - https://www.googleapis.com/compute/v1/projects/project/regions/region /addresses/address - projects/project/regions/region/addresses/address Note that destination project must be different from the source project. So /regions/region/addresses/address is not valid partial url.", + "includedOrganizations": { + "description": "Optional. Format: \"organizations/{organization_id}\"", + "items": { + "type": "string" + }, + "type": "array" + }, + "includedProjects": { + "description": "Optional. Format: \"projects/{project_id}\"", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "RolloutPlanWaveValidation": { + "description": "The validation to be performed before progressing to the next wave.", + "id": "RolloutPlanWaveValidation", + "properties": { + "timeBasedValidationMetadata": { + "$ref": "RolloutPlanWaveValidationTimeBasedValidationMetadata", + "description": "Optional. Metadata required if type = \"time\"." + }, + "type": { + "description": "Required. The type of the validation. If a type of validation is associated with\na metadata object, the appropriate metadata field mapping to the\nvalidation type must be provided in the validation message. Possible\nvalues are in quotes below alongside an explanation:\n \"manual\": The system waits for an end-user approval API before\n progressing to the next wave.\n \"time\": The system waits for a user specified duration before\n progressing to the next wave. TimeBasedValidation must be provided.", "type": "string" } }, "type": "object" }, - "RegionAutoscalerList": { - "description": "Contains a list of autoscalers.", - "id": "RegionAutoscalerList", + "RolloutPlanWaveValidationTimeBasedValidationMetadata": { + "description": "Metadata required if type = \"time\".", + "id": "RolloutPlanWaveValidationTimeBasedValidationMetadata", + "properties": { + "waitDuration": { + "description": "Optional. The duration that the system waits in between waves. This wait starts\nafter all changes in the wave are rolled out.", + "format": "google-duration", + "type": "string" + } + }, + "type": "object" + }, + "RolloutPlansListResponse": { + "description": "Contains a list of RolloutPlan resources.", + "id": "RolloutPlansListResponse", "properties": { + "etag": { + "type": "string" + }, "id": { "description": "[Output Only] Unique identifier for the resource; defined by the server.", "type": "string" }, "items": { - "description": "A list of Autoscaler resources.", + "description": "A list of RolloutPlan resources.", "items": { - "$ref": "Autoscaler" + "$ref": "RolloutPlan" }, "type": "array" }, - "kind": { - "default": "compute#regionAutoscalerList", - "description": "Type of resource.", - "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.", + "description": "[Output Only] This token allows you to get the next page of results for\nlist requests. If the number of results is larger thanmaxResults, use the nextPageToken as a value for\nthe query parameter pageToken in the next list request.\nSubsequent list requests will have their own nextPageToken to\ncontinue paging through the results.", "type": "string" }, "selfLink": { - "description": "[Output Only] Server-defined URL for this resource.", + "description": "Output only. [Output Only] Server-defined URL for this resource.", + "readOnly": true, "type": "string" }, + "unreachables": { + "description": "Output only. [Output Only] Unreachable resources.\nend_interface: MixerListResponseWithEtagBuilder", + "items": { + "type": "string" + }, + "readOnly": true, + "type": "array" + }, "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.", + "description": "[Output Only] A warning code, if applicable. For example, Compute\nEngine returns NO_RESULTS_ON_PAGE if there\nare no results in the response.", "enum": [ "CLEANUP_FAILED", "DEPRECATED_RESOURCE_USED", @@ -66030,6 +93586,7 @@ "NOT_CRITICAL_ERROR", "NO_RESULTS_ON_PAGE", "PARTIAL_SUCCESS", + "QUOTA_INFO_UNAVAILABLE", "REQUIRED_TOS_AGREEMENT", "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", "RESOURCE_NOT_DELETED", @@ -66066,46 +93623,48 @@ false, false, false, + false, false ], "enumDescriptions": [ - "Warning about failed cleanup of transient changes made by a failed operation.", + "Warning about failed cleanup of transient changes made by a failed\noperation.", "A link to a deprecated resource was created.", - "When deploying and at least one of the resources has a type marked as deprecated", + "When deploying and at least one of the resources has a type marked as\ndeprecated", "The user created a boot disk that is larger than image size.", - "When deploying and at least one of the resources has a type marked as experimental", + "When deploying and at least one of the resources has a type marked as\nexperimental", "Warning that is present in an external api call", - "Warning that value of a field has been overridden. Deprecated unused field.", + "Warning that value of a field has been overridden.\nDeprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", - "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is\nnot of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", - "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", + "Resource can't be retrieved due to list overhead quota exceed\nwhich captures the amount of resources filtered out by\nuser-defined list filter.", "A resource depends on a missing type", - "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's nextHopIp address is not assigned to an instance on the\nnetwork.", "The route's next hop instance cannot ip forward.", - "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not have an\nipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", - "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that is not on the\nsame network as the route.", "The route's next hop instance does not have a status of RUNNING.", - "Error which is not critical. We decided to continue the process despite the mentioned error.", + "Error which is not critical. We decided to continue the process despite\nthe mentioned error.", "No results are present on a particular list page.", "Success is reported, but some results may be missing due to errors", - "The user attempted to use a resource that requires a TOS they have not accepted.", + "Quota information is not available to client requests (e.g:\nregions.list).", + "The user attempted to use a resource that requires a TOS they have not\naccepted.", "Warning that a resource is in use.", - "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "One or more of the resources set to auto-delete could not be deleted\nbecause they were in use.", "When a resource schema validation is ignored.", - "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", + "Instance template used in instance group manager is valid as such, but\nits application does not make a lot of sense, because it allows only\nsingle instance in instance group.", "When undeclared properties in the schema are present", "A given scope cannot be reached." ], "type": "string" }, "data": { - "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", + "description": "[Output Only] Metadata about this warning in key:\nvalue format. For example:\n\n\"data\": [\n {\n \"key\": \"scope\",\n \"value\": \"zones/us-east1-d\"\n }", "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).", + "description": "[Output Only] A key that provides more detail on the warning being\nreturned. For example, for warnings where there are no results in a list\nrequest for a particular zone, this key might be scope and\nthe key value might be the zone name. Other examples might be a key\nindicating a deprecated resource and a suggested replacement, or a\nwarning about invalid network settings (for example, if an instance\nattempts to perform IP forwarding but is not enabled for IP forwarding).", "type": "string" }, "value": { @@ -66127,38 +93686,172 @@ }, "type": "object" }, - "RegionDiskTypeList": { - "id": "RegionDiskTypeList", + "RolloutRolloutEntity": { + "description": "Specifications of the resource to roll out.", + "id": "RolloutRolloutEntity", + "properties": { + "orchestratedEntity": { + "$ref": "RolloutRolloutEntityOrchestratedEntity", + "description": "Optional. Entity details for products using the Orchestrated Integration model." + } + }, + "type": "object" + }, + "RolloutRolloutEntityOrchestratedEntity": { + "description": "This message is used if the resource type follows the Orchestrated\nintegration model with ProgressiveRollout.", + "id": "RolloutRolloutEntityOrchestratedEntity", + "properties": { + "conflictBehavior": { + "description": "Required. Specifies the behavior of the Rollout if an out of band update is\ndetected in a project during a Rollout. It can be one of the following\nvalues:\n1) overwrite : Overwrite the local value with the rollout value.\n2) no_overwrite : Do not overwrite the local value with the rollout\nvalue.", + "type": "string" + }, + "orchestrationAction": { + "description": "Required. Orchestration action during the Rollout. It can be one of the following\nvalues:\n1) \"update\": Resources will be updated by the rollout.\n2) \"delete\": Resources will be deleted by the rollout.", + "type": "string" + }, + "orchestrationSource": { + "description": "Required. Fully qualified resource name of the resource which contains the source\nof truth of the configuration being rolled out across\nlocations/projects. For example, in the case of a global Rollout which\nis applied across regions, this contains the name of the global\nresource created by the user which contains a payload for a resource\nthat is orchestrated across regions. This follows the following format:\n//.googleapis.com/projects//locations/global//\ne.g.\n//osconfig.googleapis.com/projects/1/locations/global/policyOrchestrators/po1", + "type": "string" + } + }, + "type": "object" + }, + "RolloutWaveDetails": { + "description": "Additional metadata about the status of each wave provided by the server.", + "id": "RolloutWaveDetails", + "properties": { + "orchestratedWaveDetails": { + "$ref": "RolloutWaveDetailsOrchestratedWaveDetails", + "description": "Output only. Additional details of the wave for products using the Orchestrated\nIntegration model.", + "readOnly": true + }, + "waveDisplayName": { + "description": "Output only. Wave name.\nEx. wave1", + "readOnly": true, + "type": "string" + }, + "waveNumber": { + "description": "Output only. System generated number for the wave.", + "format": "int64", + "readOnly": true, + "type": "string" + } + }, + "type": "object" + }, + "RolloutWaveDetailsOrchestratedWaveDetails": { + "description": "Details of the wave for products using the Orchestrated integration\nmodel.", + "id": "RolloutWaveDetailsOrchestratedWaveDetails", + "properties": { + "completedResourcesCount": { + "description": "Output only. Resource completed so far.", + "format": "int64", + "readOnly": true, + "type": "string" + }, + "estimatedCompletionTime": { + "description": "Output only. Estimated timestamp at which the wave will complete. Extrapolated from\ncurrent progress.", + "readOnly": true, + "type": "string" + }, + "estimatedTotalResourcesCount": { + "description": "Output only. Estimated total count of resources.", + "format": "int64", + "readOnly": true, + "type": "string" + }, + "failedLocations": { + "description": "Output only. Locations that failed during orchestration, and ProgressiveRollout\nstopped retrying. There may be some successful resources rolled out in\nthe wave as the location may have failed later in the Rollout.", + "items": { + "type": "string" + }, + "readOnly": true, + "type": "array" + }, + "failedResourcesCount": { + "description": "Output only. Resources failed.", + "format": "int64", + "readOnly": true, + "type": "string" + }, + "locationStatus": { + "additionalProperties": { + "$ref": "RolloutWaveDetailsOrchestratedWaveDetailsLocationStatus" + }, + "description": "Output only. Status of each location in the wave. Map keys (locations) must be\nspecified like \"us-east1\" or \"asia-west1-a\".", + "readOnly": true, + "type": "object" + } + }, + "type": "object" + }, + "RolloutWaveDetailsOrchestratedWaveDetailsLocationStatus": { + "description": "Represents the status of a location in a wave.", + "id": "RolloutWaveDetailsOrchestratedWaveDetailsLocationStatus", + "properties": { + "state": { + "description": "Output only. Location state of the wave.", + "enum": [ + "STATE_FAILED", + "STATE_IN_PROGRESS", + "STATE_PENDING", + "STATE_SKIPPED", + "STATE_SUCCEEDED", + "STATE_UNSPECIFIED" + ], + "enumDescriptions": [ + "Work on the wave failed.", + "Work on the wave is in progress.", + "Work on the wave is pending.", + "Work on the wave was canceled or skipped.", + "Work on the wave succeeded.", + "Undefined default state. Should never be exposed to users." + ], + "readOnly": true, + "type": "string" + } + }, + "type": "object" + }, + "RolloutsListResponse": { + "id": "RolloutsListResponse", "properties": { + "etag": { + "type": "string" + }, "id": { "description": "[Output Only] Unique identifier for the resource; defined by the server.", "type": "string" }, "items": { - "description": "A list of DiskType resources.", + "description": "A list of Rollout resources.", "items": { - "$ref": "DiskType" + "$ref": "Rollout" }, "type": "array" }, - "kind": { - "default": "compute#regionDiskTypeList", - "description": "[Output Only] Type of resource. Always compute#regionDiskTypeList for region disk types.", - "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.", + "description": "[Output Only] This token allows you to get the next page of results for\nlist requests. If the number of results is larger thanmaxResults, use the nextPageToken as a value for\nthe query parameter pageToken in the next list request.\nSubsequent list requests will have their own nextPageToken to\ncontinue paging through the results.", "type": "string" }, "selfLink": { - "description": "[Output Only] Server-defined URL for this resource.", + "description": "Output only. [Output Only] Server-defined URL for this resource.", + "readOnly": true, "type": "string" }, + "unreachables": { + "description": "Output only. [Output Only] Unreachable resources.\nend_interface: MixerListResponseWithEtagBuilder", + "items": { + "type": "string" + }, + "readOnly": true, + "type": "array" + }, "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.", + "description": "[Output Only] A warning code, if applicable. For example, Compute\nEngine returns NO_RESULTS_ON_PAGE if there\nare no results in the response.", "enum": [ "CLEANUP_FAILED", "DEPRECATED_RESOURCE_USED", @@ -66181,6 +93874,7 @@ "NOT_CRITICAL_ERROR", "NO_RESULTS_ON_PAGE", "PARTIAL_SUCCESS", + "QUOTA_INFO_UNAVAILABLE", "REQUIRED_TOS_AGREEMENT", "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", "RESOURCE_NOT_DELETED", @@ -66217,46 +93911,48 @@ false, false, false, + false, false ], "enumDescriptions": [ - "Warning about failed cleanup of transient changes made by a failed operation.", + "Warning about failed cleanup of transient changes made by a failed\noperation.", "A link to a deprecated resource was created.", - "When deploying and at least one of the resources has a type marked as deprecated", + "When deploying and at least one of the resources has a type marked as\ndeprecated", "The user created a boot disk that is larger than image size.", - "When deploying and at least one of the resources has a type marked as experimental", + "When deploying and at least one of the resources has a type marked as\nexperimental", "Warning that is present in an external api call", - "Warning that value of a field has been overridden. Deprecated unused field.", + "Warning that value of a field has been overridden.\nDeprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", - "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is\nnot of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", - "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", + "Resource can't be retrieved due to list overhead quota exceed\nwhich captures the amount of resources filtered out by\nuser-defined list filter.", "A resource depends on a missing type", - "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's nextHopIp address is not assigned to an instance on the\nnetwork.", "The route's next hop instance cannot ip forward.", - "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not have an\nipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", - "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that is not on the\nsame network as the route.", "The route's next hop instance does not have a status of RUNNING.", - "Error which is not critical. We decided to continue the process despite the mentioned error.", + "Error which is not critical. We decided to continue the process despite\nthe mentioned error.", "No results are present on a particular list page.", "Success is reported, but some results may be missing due to errors", - "The user attempted to use a resource that requires a TOS they have not accepted.", + "Quota information is not available to client requests (e.g:\nregions.list).", + "The user attempted to use a resource that requires a TOS they have not\naccepted.", "Warning that a resource is in use.", - "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "One or more of the resources set to auto-delete could not be deleted\nbecause they were in use.", "When a resource schema validation is ignored.", - "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", + "Instance template used in instance group manager is valid as such, but\nits application does not make a lot of sense, because it allows only\nsingle instance in instance group.", "When undeclared properties in the schema are present", "A given scope cannot be reached." ], "type": "string" }, "data": { - "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", + "description": "[Output Only] Metadata about this warning in key:\nvalue format. For example:\n\n\"data\": [\n {\n \"key\": \"scope\",\n \"value\": \"zones/us-east1-d\"\n }", "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).", + "description": "[Output Only] A key that provides more detail on the warning being\nreturned. For example, for warnings where there are no results in a list\nrequest for a particular zone, this key might be scope and\nthe key value might be the zone name. Other examples might be a key\nindicating a deprecated resource and a suggested replacement, or a\nwarning about invalid network settings (for example, if an instance\nattempts to perform IP forwarding but is not enabled for IP forwarding).", "type": "string" }, "value": { @@ -66278,252 +93974,387 @@ }, "type": "object" }, - "RegionDisksAddResourcePoliciesRequest": { - "id": "RegionDisksAddResourcePoliciesRequest", - "properties": { - "resourcePolicies": { - "description": "Resource policies to be added to this disk.", - "items": { - "type": "string" - }, - "type": "array" - } - }, - "type": "object" - }, - "RegionDisksRemoveResourcePoliciesRequest": { - "id": "RegionDisksRemoveResourcePoliciesRequest", + "Route": { + "description": "Represents a Route resource.\n\nA route defines a path from VM instances in the VPC network to a specific\ndestination. This destination can be inside or outside the VPC network.\nFor more information, read theRoutes overview.", + "id": "Route", "properties": { - "resourcePolicies": { - "description": "Resource policies to be removed from this disk.", + "asPaths": { + "description": "Output only. [Output Only] AS path.", "items": { - "type": "string" + "$ref": "RouteAsPath" }, + "readOnly": true, "type": "array" - } - }, - "type": "object" - }, - "RegionDisksResizeRequest": { - "id": "RegionDisksResizeRequest", - "properties": { - "sizeGb": { - "description": "The new size of the regional persistent disk, which is specified in GB.", - "format": "int64", + }, + "creationTimestamp": { + "description": "Output only. [Output Only] Creation timestamp inRFC3339\ntext format.", + "readOnly": true, "type": "string" - } - }, - "type": "object" - }, - "RegionDisksStartAsyncReplicationRequest": { - "id": "RegionDisksStartAsyncReplicationRequest", - "properties": { - "asyncSecondaryDisk": { - "description": "The secondary disk to start asynchronous replication to. 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 /disks/disk - https://www.googleapis.com/compute/v1/projects/project/regions/region /disks/disk - projects/project/zones/zone/disks/disk - projects/project/regions/region/disks/disk - zones/zone/disks/disk - regions/region/disks/disk ", + }, + "description": { + "description": "An optional description of this resource. Provide this field when you\ncreate the resource.", "type": "string" - } - }, - "type": "object" - }, - "RegionInstanceGroupList": { - "description": "Contains a list of InstanceGroup resources.", - "id": "RegionInstanceGroupList", - "properties": { + }, + "destRange": { + "annotations": { + "required": [ + "compute.routes.insert" + ] + }, + "description": "The destination range of outgoing packets that this route applies to. Both\nIPv4 and IPv6 are supported.\nMust specify an IPv4 range (e.g. 192.0.2.0/24) or an IPv6 range in RFC 4291\nformat (e.g. 2001:db8::/32). IPv6 range will be displayed using RFC 5952\ncompressed format.", + "type": "string" + }, "id": { - "description": "[Output Only] Unique identifier for the resource; defined by the server.", + "description": "Output only. [Output Only] The unique identifier for the resource. This identifier is\ndefined by the server.", + "format": "uint64", + "readOnly": true, "type": "string" }, - "items": { - "description": "A list of InstanceGroup resources.", - "items": { - "$ref": "InstanceGroup" + "kind": { + "default": "compute#route", + "description": "Output only. [Output Only] Type of this resource. Always compute#routes for\nRoute resources.", + "readOnly": true, + "type": "string" + }, + "name": { + "annotations": { + "required": [ + "compute.routes.insert" + ] }, - "type": "array" + "description": "Name of the resource. Provided by the client when the resource is created.\nThe name must be 1-63 characters long, and comply withRFC1035.\nSpecifically, the name must be 1-63 characters long and match the regular\nexpression `[a-z]([-a-z0-9]*[a-z0-9])?`. The first character must be a\nlowercase letter, and all following characters (except for the last\ncharacter) must be a dash, lowercase letter, or digit. The last character\nmust be a lowercase letter or digit.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "type": "string" }, - "kind": { - "default": "compute#regionInstanceGroupList", - "description": "The resource type.", + "network": { + "annotations": { + "required": [ + "compute.routes.insert" + ] + }, + "description": "Fully-qualified URL of the network that this route applies to.", "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.", + "nextHopGateway": { + "description": "The URL to a gateway that should handle matching packets.\nYou can only specify the internet gateway using a full or\npartial valid URL: projects/project/global/gateways/default-internet-gateway", "type": "string" }, - "selfLink": { - "description": "[Output Only] Server-defined URL for this resource.", + "nextHopHub": { + "description": "Output only. [Output Only] The full resource name of the Network Connectivity Center hub\nthat will handle matching packets.", + "readOnly": true, "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", - "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", - "LARGE_DEPLOYMENT_WARNING", - "LIST_OVERHEAD_QUOTA_EXCEED", - "MISSING_TYPE_DEPENDENCY", - "NEXT_HOP_ADDRESS_NOT_ASSIGNED", - "NEXT_HOP_CANNOT_IP_FORWARD", - "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", - "NEXT_HOP_INSTANCE_NOT_FOUND", - "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", - "NEXT_HOP_NOT_RUNNING", - "NOT_CRITICAL_ERROR", - "NO_RESULTS_ON_PAGE", - "PARTIAL_SUCCESS", - "REQUIRED_TOS_AGREEMENT", - "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", - "RESOURCE_NOT_DELETED", - "SCHEMA_VALIDATION_IGNORED", - "SINGLE_INSTANCE_PROPERTY_TEMPLATE", - "UNDECLARED_PROPERTIES", - "UNREACHABLE" - ], - "enumDeprecated": [ - false, - false, - false, - false, - false, - false, - true, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false - ], - "enumDescriptions": [ - "Warning about failed cleanup of transient changes made by a failed operation.", - "A link to a deprecated resource was created.", - "When deploying and at least one of the resources has a type marked as deprecated", - "The user created a boot disk that is larger than image size.", - "When deploying and at least one of the resources has a type marked as experimental", - "Warning that is present in an external api call", - "Warning that value of a field has been overridden. Deprecated unused field.", - "The operation involved use of an injected kernel, which is deprecated.", - "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", - "When deploying a deployment with a exceedingly large number of resources", - "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", - "A resource depends on a missing type", - "The route's nextHopIp address is not assigned to an instance on the network.", - "The route's next hop instance cannot ip forward.", - "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", - "The route's nextHopInstance URL refers to an instance that does not exist.", - "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", - "The route's next hop instance does not have a status of RUNNING.", - "Error which is not critical. We decided to continue the process despite the mentioned error.", - "No results are present on a particular list page.", - "Success is reported, but some results may be missing due to errors", - "The user attempted to use a resource that requires a TOS they have not accepted.", - "Warning that a resource is in use.", - "One or more of the resources set to auto-delete could not be deleted because they were in use.", - "When a resource schema validation is ignored.", - "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", - "When undeclared properties in the schema are present", - "A given scope cannot be reached." - ], - "type": "string" - }, - "data": { - "description": "[Output Only] Metadata about this warning in key: value format. For example: \"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" + "nextHopIlb": { + "description": "The URL to a forwarding rule of typeloadBalancingScheme=INTERNAL that should handle matching\npackets or the IP address of the forwarding Rule.\nFor example, the following are all valid URLs:\n \n \n - https://www.googleapis.com/compute/v1/projects/project/regions/region/forwardingRules/forwardingRule \n - regions/region/forwardingRules/forwardingRule\n\n\nIf an IP address is provided, must specify an IPv4 address in dot-decimal\nnotation or an IPv6 address in RFC 4291 format. For example, the following\nare all valid IP addresses:\n \n \n - 10.128.0.56\n - 2001:db8::2d9:51:0:0\n - 2001:db8:0:0:2d9:51:0:0\n\n\nIPv6 addresses will be displayed using RFC 5952 compressed format (e.g.\n2001:db8::2d9:51:0:0). Should never be an IPv4-mapped IPv6 address.", + "type": "string" + }, + "nextHopInstance": { + "description": "The URL to an instance that should handle matching packets. You can specify\nthis as a full or partial URL.\nFor example: \nhttps://www.googleapis.com/compute/v1/projects/project/zones/zone/instances/", + "type": "string" + }, + "nextHopInterRegionCost": { + "description": "Output only. [Output only] Internal fixed region-to-region cost that Google Cloud\ncalculates based on factors such as network performance, distance, and\navailable bandwidth between regions.", + "format": "uint32", + "readOnly": true, + "type": "integer" + }, + "nextHopInterconnectAttachment": { + "description": "Output only. [Output Only] The URL to an InterconnectAttachment which is the next hop\nfor the route.\nThis field will only be populated for dynamic routes generated by\nCloud Router with a linked interconnectAttachment or the static route\ngenerated by each L2 Interconnect Attachment.", + "readOnly": true, + "type": "string" + }, + "nextHopIp": { + "description": "The network IP address of an instance that should handle matching packets.\nBoth IPv6 address and IPv4 addresses are supported.\nMust specify an IPv4 address in dot-decimal notation (e.g. 192.0.2.99) or\nan IPv6 address in RFC 4291 format (e.g. 2001:db8::2d9:51:0:0 or\n2001:db8:0:0:2d9:51:0:0). IPv6 addresses will be displayed using RFC 5952\ncompressed format (e.g. 2001:db8::2d9:51:0:0). Should never be an\nIPv4-mapped IPv6 address.", + "type": "string" + }, + "nextHopMed": { + "description": "Output only. [Output Only] Multi-Exit Discriminator, a BGP route metric that indicates\nthe desirability of a particular route in a network.", + "format": "uint32", + "readOnly": true, + "type": "integer" + }, + "nextHopNetwork": { + "description": "The URL of the local network if it should handle matching packets.", + "type": "string" + }, + "nextHopOrigin": { + "description": "Output only. [Output Only] Indicates the origin of the route. Can be IGP\n(Interior Gateway Protocol), EGP (Exterior Gateway Protocol),\nor INCOMPLETE.", + "enum": [ + "EGP", + "IGP", + "INCOMPLETE" + ], + "enumDescriptions": [ + "", + "", + "" + ], + "readOnly": true, + "type": "string" + }, + "nextHopPeering": { + "description": "Output only. [Output Only] The network peering name that should handle matching packets,\nwhich should conform to RFC1035.", + "readOnly": true, + "type": "string" + }, + "nextHopVpnTunnel": { + "description": "The URL to a VpnTunnel that should handle matching packets.", + "type": "string" + }, + "params": { + "$ref": "RouteParams", + "description": "Input only. [Input Only] Additional params passed with the request, but not persisted\nas part of resource payload." + }, + "priority": { + "annotations": { + "required": [ + "compute.routes.insert" + ] + }, + "description": "The priority of this route. Priority is used to break ties in cases\nwhere there is more than one matching route of equal prefix length. In\ncases where multiple routes have equal prefix length, the one with the\nlowest-numbered priority value wins. The default value is `1000`. The\npriority value must be from `0` to `65535`, inclusive.", + "format": "uint32", + "type": "integer" + }, + "routeStatus": { + "description": "[Output only] The status of the route. This status applies to\ndynamic routes learned by Cloud Routers. It is also applicable to routes\nundergoing migration.", + "enum": [ + "ACTIVE", + "DROPPED", + "INACTIVE", + "PENDING" + ], + "enumDescriptions": [ + "This route is processed and active.", + "The route is dropped due to the VPC exceeding the dynamic route limit.\n For dynamic route limit, please refer to the\nLearned route example", + "This route is processed but inactive due to failure from the backend. The\nbackend may have rejected the route", + "This route is being processed internally. The status will change once\nprocessed." + ], + "type": "string" + }, + "routeType": { + "description": "Output only. [Output Only] The type of this route, which can be one of the following\nvalues:\n- 'TRANSIT' for a transit route that this router learned from\nanother Cloud Router and will readvertise to one of its BGP peers \n- 'SUBNET' for a route from a subnet of the VPC \n- 'BGP' for a route learned from a BGP peer of this router \n- 'STATIC' for a static route", + "enum": [ + "BGP", + "STATIC", + "SUBNET", + "TRANSIT" + ], + "enumDescriptions": [ + "", + "", + "", + "" + ], + "readOnly": true, + "type": "string" + }, + "selfLink": { + "description": "[Output Only] Server-defined fully-qualified URL for this resource.", + "type": "string" + }, + "tags": { + "description": "A list of instance tags to which this route applies.", + "items": { + "type": "string" + }, + "type": "array" + }, + "warnings": { + "description": "Output only. [Output Only] If potential misconfigurations are detected for this\nroute, this field will be populated with warning messages.", + "items": { + "properties": { + "code": { + "description": "[Output Only] A warning code, if applicable. For example, Compute\nEngine returns NO_RESULTS_ON_PAGE if there\nare 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", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", + "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "PARTIAL_SUCCESS", + "QUOTA_INFO_UNAVAILABLE", + "REQUIRED_TOS_AGREEMENT", + "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", + "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", + "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", + "UNREACHABLE" + ], + "enumDeprecated": [ + false, + false, + false, + false, + false, + false, + true, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false + ], + "enumDescriptions": [ + "Warning about failed cleanup of transient changes made by a failed\noperation.", + "A link to a deprecated resource was created.", + "When deploying and at least one of the resources has a type marked as\ndeprecated", + "The user created a boot disk that is larger than image size.", + "When deploying and at least one of the resources has a type marked as\nexperimental", + "Warning that is present in an external api call", + "Warning that value of a field has been overridden.\nDeprecated unused field.", + "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is\nnot of type HTTP/HTTPS/HTTP2.", + "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed\nwhich captures the amount of resources filtered out by\nuser-defined list filter.", + "A resource depends on a missing type", + "The route's nextHopIp address is not assigned to an instance on the\nnetwork.", + "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an\nipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not exist.", + "The route's nextHopInstance URL refers to an instance that is not on the\nsame network as the route.", + "The route's next hop instance does not have a status of RUNNING.", + "Error which is not critical. We decided to continue the process despite\nthe mentioned error.", + "No results are present on a particular list page.", + "Success is reported, but some results may be missing due to errors", + "Quota information is not available to client requests (e.g:\nregions.list).", + "The user attempted to use a resource that requires a TOS they have not\naccepted.", + "Warning that a resource is in use.", + "One or more of the resources set to auto-delete could not be deleted\nbecause they were in use.", + "When a resource schema validation is ignored.", + "Instance template used in instance group manager is valid as such, but\nits application does not make a lot of sense, because it allows only\nsingle instance in instance group.", + "When undeclared properties in the schema are present", + "A given scope cannot be reached." + ], + "type": "string" + }, + "data": { + "description": "[Output Only] Metadata about this warning in key:\nvalue format. For example:\n\n\"data\": [\n {\n \"key\": \"scope\",\n \"value\": \"zones/us-east1-d\"\n }", + "items": { + "properties": { + "key": { + "description": "[Output Only] A key that provides more detail on the warning being\nreturned. For example, for warnings where there are no results in a list\nrequest for a particular zone, this key might be scope and\nthe key value might be the zone name. Other examples might be a key\nindicating a deprecated resource and a suggested replacement, or a\nwarning about invalid network settings (for example, if an instance\nattempts 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" + } }, - "value": { - "description": "[Output Only] A warning data value corresponding to the key.", - "type": "string" - } + "type": "object" }, - "type": "object" + "type": "array" }, - "type": "array" + "message": { + "description": "[Output Only] A human-readable description of the warning code.", + "type": "string" + } }, - "message": { - "description": "[Output Only] A human-readable description of the warning code.", - "type": "string" - } + "type": "object" }, - "type": "object" + "readOnly": true, + "type": "array" } }, "type": "object" }, - "RegionInstanceGroupManagerDeleteInstanceConfigReq": { - "description": "RegionInstanceGroupManagers.deletePerInstanceConfigs", - "id": "RegionInstanceGroupManagerDeleteInstanceConfigReq", + "RouteAsPath": { + "id": "RouteAsPath", "properties": { - "names": { - "description": "The list of instance names for which we want to delete per-instance configs on this managed instance group.", + "asLists": { + "description": "[Output Only] The AS numbers of the AS Path.", "items": { - "type": "string" + "format": "uint32", + "type": "integer" }, "type": "array" + }, + "pathSegmentType": { + "description": "[Output Only] The type of the AS Path, which can be one of the following\nvalues: \n- 'AS_SET': unordered set of autonomous systems that the route\nin has traversed \n- 'AS_SEQUENCE': ordered set of autonomous\nsystems that the route has traversed \n- 'AS_CONFED_SEQUENCE':\nordered set of Member Autonomous Systems in the local confederation that\nthe route has traversed \n- 'AS_CONFED_SET': unordered set of\nMember Autonomous Systems in the local confederation that the route has\ntraversed", + "enum": [ + "AS_CONFED_SEQUENCE", + "AS_CONFED_SET", + "AS_SEQUENCE", + "AS_SET" + ], + "enumDescriptions": [ + "", + "", + "", + "" + ], + "type": "string" } }, "type": "object" }, - "RegionInstanceGroupManagerList": { - "description": "Contains a list of managed instance groups.", - "id": "RegionInstanceGroupManagerList", + "RouteList": { + "description": "Contains a list of Route resources.", + "id": "RouteList", "properties": { "id": { "description": "[Output Only] Unique identifier for the resource; defined by the server.", "type": "string" }, "items": { - "description": "A list of InstanceGroupManager resources.", + "description": "A list of Route resources.", "items": { - "$ref": "InstanceGroupManager" + "$ref": "Route" }, "type": "array" }, "kind": { - "default": "compute#regionInstanceGroupManagerList", - "description": "[Output Only] The resource type, which is always compute#instanceGroupManagerList for a list of managed instance groups that exist in th regional scope.", + "default": "compute#routeList", + "description": "Output only. Type of resource.", + "readOnly": true, "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.", + "description": "[Output Only] This token allows you to get the next page of results for\nlist requests. If the number of results is larger thanmaxResults, use the nextPageToken as a value for\nthe query parameter pageToken in the next list request.\nSubsequent list requests will have their own nextPageToken to\ncontinue paging through the results.", "type": "string" }, "selfLink": { - "description": "[Output Only] Server-defined URL for this resource.", + "description": "Output only. [Output Only] Server-defined URL for this resource.", + "readOnly": true, "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.", + "description": "[Output Only] A warning code, if applicable. For example, Compute\nEngine returns NO_RESULTS_ON_PAGE if there\nare no results in the response.", "enum": [ "CLEANUP_FAILED", "DEPRECATED_RESOURCE_USED", @@ -66546,6 +94377,7 @@ "NOT_CRITICAL_ERROR", "NO_RESULTS_ON_PAGE", "PARTIAL_SUCCESS", + "QUOTA_INFO_UNAVAILABLE", "REQUIRED_TOS_AGREEMENT", "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", "RESOURCE_NOT_DELETED", @@ -66582,46 +94414,48 @@ false, false, false, + false, false ], "enumDescriptions": [ - "Warning about failed cleanup of transient changes made by a failed operation.", + "Warning about failed cleanup of transient changes made by a failed\noperation.", "A link to a deprecated resource was created.", - "When deploying and at least one of the resources has a type marked as deprecated", + "When deploying and at least one of the resources has a type marked as\ndeprecated", "The user created a boot disk that is larger than image size.", - "When deploying and at least one of the resources has a type marked as experimental", + "When deploying and at least one of the resources has a type marked as\nexperimental", "Warning that is present in an external api call", - "Warning that value of a field has been overridden. Deprecated unused field.", + "Warning that value of a field has been overridden.\nDeprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", - "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is\nnot of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", - "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", + "Resource can't be retrieved due to list overhead quota exceed\nwhich captures the amount of resources filtered out by\nuser-defined list filter.", "A resource depends on a missing type", - "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's nextHopIp address is not assigned to an instance on the\nnetwork.", "The route's next hop instance cannot ip forward.", - "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not have an\nipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", - "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that is not on the\nsame network as the route.", "The route's next hop instance does not have a status of RUNNING.", - "Error which is not critical. We decided to continue the process despite the mentioned error.", + "Error which is not critical. We decided to continue the process despite\nthe mentioned error.", "No results are present on a particular list page.", "Success is reported, but some results may be missing due to errors", - "The user attempted to use a resource that requires a TOS they have not accepted.", + "Quota information is not available to client requests (e.g:\nregions.list).", + "The user attempted to use a resource that requires a TOS they have not\naccepted.", "Warning that a resource is in use.", - "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "One or more of the resources set to auto-delete could not be deleted\nbecause they were in use.", "When a resource schema validation is ignored.", - "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", + "Instance template used in instance group manager is valid as such, but\nits application does not make a lot of sense, because it allows only\nsingle instance in instance group.", "When undeclared properties in the schema are present", "A given scope cannot be reached." ], "type": "string" }, "data": { - "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", + "description": "[Output Only] Metadata about this warning in key:\nvalue format. For example:\n\n\"data\": [\n {\n \"key\": \"scope\",\n \"value\": \"zones/us-east1-d\"\n }", "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).", + "description": "[Output Only] A key that provides more detail on the warning being\nreturned. For example, for warnings where there are no results in a list\nrequest for a particular zone, this key might be scope and\nthe key value might be the zone name. Other examples might be a key\nindicating a deprecated resource and a suggested replacement, or a\nwarning about invalid network settings (for example, if an instance\nattempts to perform IP forwarding but is not enabled for IP forwarding).", "type": "string" }, "value": { @@ -66643,373 +94477,237 @@ }, "type": "object" }, - "RegionInstanceGroupManagerPatchInstanceConfigReq": { - "description": "RegionInstanceGroupManagers.patchPerInstanceConfigs", - "id": "RegionInstanceGroupManagerPatchInstanceConfigReq", - "properties": { - "perInstanceConfigs": { - "description": "The list of per-instance configurations to insert or patch on this managed instance group.", - "items": { - "$ref": "PerInstanceConfig" - }, - "type": "array" - } - }, - "type": "object" - }, - "RegionInstanceGroupManagerUpdateInstanceConfigReq": { - "description": "RegionInstanceGroupManagers.updatePerInstanceConfigs", - "id": "RegionInstanceGroupManagerUpdateInstanceConfigReq", - "properties": { - "perInstanceConfigs": { - "description": "The list of per-instance configurations to insert or patch on this managed instance group.", - "items": { - "$ref": "PerInstanceConfig" - }, - "type": "array" - } - }, - "type": "object" - }, - "RegionInstanceGroupManagersAbandonInstancesRequest": { - "id": "RegionInstanceGroupManagersAbandonInstancesRequest", + "RouteParams": { + "description": "Additional route parameters.", + "id": "RouteParams", "properties": { - "instances": { - "description": "The URLs of one or more instances to abandon. This can be a full URL or a partial URL, such as zones/[ZONE]/instances/[INSTANCE_NAME].", - "items": { + "resourceManagerTags": { + "additionalProperties": { "type": "string" }, - "type": "array" + "description": "Tag keys/values directly bound to this resource.\nTag keys and values have the same definition as resource\nmanager tags. The field is allowed for INSERT\nonly. The keys/values to set on the resource should be specified in\neither ID { : } or Namespaced format\n{ : }.\nFor example the following are valid inputs:\n* {\"tagKeys/333\" : \"tagValues/444\", \"tagKeys/123\" : \"tagValues/456\"}\n* {\"123/environment\" : \"production\", \"345/abc\" : \"xyz\"}\nNote:\n* Invalid combinations of ID \u0026 namespaced format is not supported. For\n instance: {\"123/environment\" : \"tagValues/444\"} is invalid.", + "type": "object" } }, "type": "object" }, - "RegionInstanceGroupManagersApplyUpdatesRequest": { - "description": "RegionInstanceGroupManagers.applyUpdatesToInstances", - "id": "RegionInstanceGroupManagersApplyUpdatesRequest", + "RoutePolicy": { + "id": "RoutePolicy", "properties": { - "allInstances": { - "description": "Flag to update all instances instead of specified list of “instances”. If the flag is set to true then the instances may not be specified in the request.", - "type": "boolean" + "description": { + "description": "An optional description of route policy.", + "type": "string" }, - "instances": { - "description": "The list of URLs of one or more instances for which you want to apply updates. Each URL can be a full URL or a partial URL, such as zones/[ZONE]/instances/[INSTANCE_NAME].", + "fingerprint": { + "description": "A fingerprint for the Route Policy being applied to this Router, which is\nessentially a hash of the Route Policy used for optimistic locking.\nThe fingerprint is initially generated by Compute Engine and changes\nafter every request to modify or update Route Policy. You must always\nprovide an up-to-date fingerprint hash in order to update or change\nlabels.\n\nTo see the latest fingerprint, make a getRoutePolicy() request\nto retrieve a Route Policy.", + "format": "byte", + "type": "string" + }, + "name": { + "description": "Route Policy name, which must be a resource ID segment and unique\nwithin all the router's Route Policies. Name should conform to RFC1035.", + "type": "string" + }, + "terms": { + "description": "List of terms (the order in the list is not important, they are evaluated\nin order of priority). Order of policies is not retained and might change\nwhen getting policy later.", "items": { - "type": "string" + "$ref": "RoutePolicyPolicyTerm" }, "type": "array" }, - "minimalAction": { - "description": "The minimal action that you want to perform on each instance during the update: - REPLACE: At minimum, delete the instance and create it again. - RESTART: Stop the instance and start it again. - REFRESH: Do not stop the instance and limit disruption as much as possible. - NONE: Do not disrupt the instance at all. By default, the minimum action is NONE. If your update requires a more disruptive action than you set with this flag, the necessary action is performed to execute the update.", - "enum": [ - "NONE", - "REFRESH", - "REPLACE", - "RESTART" - ], - "enumDescriptions": [ - "Do not perform any action.", - "Do not stop the instance.", - "(Default.) Replace the instance according to the replacement method option.", - "Stop the instance and start it again." - ], - "type": "string" - }, - "mostDisruptiveAllowedAction": { - "description": "The most disruptive action that you want to perform on each instance during the update: - REPLACE: Delete the instance and create it again. - RESTART: Stop the instance and start it again. - REFRESH: Do not stop the instance and limit disruption as much as possible. - NONE: Do not disrupt the instance at all. By default, the most disruptive allowed action is REPLACE. If your update requires a more disruptive action than you set with this flag, the update request will fail.", + "type": { "enum": [ - "NONE", - "REFRESH", - "REPLACE", - "RESTART" + "ROUTE_POLICY_TYPE_EXPORT", + "ROUTE_POLICY_TYPE_IMPORT" ], "enumDescriptions": [ - "Do not perform any action.", - "Do not stop the instance.", - "(Default.) Replace the instance according to the replacement method option.", - "Stop the instance and start it again." + "The Route Policy is an Export Policy.", + "The Route Policy is an Import Policy." ], "type": "string" } }, "type": "object" }, - "RegionInstanceGroupManagersCreateInstancesRequest": { - "description": "RegionInstanceGroupManagers.createInstances", - "id": "RegionInstanceGroupManagersCreateInstancesRequest", + "RoutePolicyPolicyTerm": { + "id": "RoutePolicyPolicyTerm", "properties": { - "instances": { - "description": "[Required] List of specifications of per-instance configs.", + "actions": { + "description": "CEL expressions to evaluate to modify a route when this term matches.", "items": { - "$ref": "PerInstanceConfig" + "$ref": "Expr" }, "type": "array" + }, + "match": { + "$ref": "Expr", + "description": "CEL expression evaluated against a route to determine if this term\napplies. When not set, the term applies to all\nroutes." + }, + "priority": { + "description": "The evaluation priority for this term, which must be between 0\n(inclusive) and 2^31 (exclusive), and unique within the list.", + "format": "int32", + "type": "integer" } }, "type": "object" }, - "RegionInstanceGroupManagersDeleteInstancesRequest": { - "id": "RegionInstanceGroupManagersDeleteInstancesRequest", + "Router": { + "description": "Represents a Cloud Router resource.\n\nFor more information about Cloud Router, read theCloud\nRouter overview.", + "id": "Router", "properties": { - "instances": { - "description": "The URLs of one or more instances to delete. This can be a full URL or a partial URL, such as zones/[ZONE]/instances/[INSTANCE_NAME].", + "bgp": { + "$ref": "RouterBgp", + "description": "BGP information specific to this router." + }, + "bgpPeers": { + "description": "BGP information that must be configured into the routing stack to\nestablish BGP peering. This information must specify the peer ASN and\neither the interface name, IP address, or peer IP address. Please refer toRFC4273.", "items": { - "type": "string" + "$ref": "RouterBgpPeer" }, "type": "array" }, - "skipInstancesOnValidationError": { - "description": "Specifies whether the request should proceed despite the inclusion of instances that are not members of the group or that are already in the process of being deleted or abandoned. If this field is set to `false` and such an instance is specified in the request, the operation fails. The operation always fails if the request contains a malformed instance URL or a reference to an instance that exists in a zone or region other than the group's zone or region.", + "creationTimestamp": { + "description": "Output only. [Output Only] Creation timestamp inRFC3339\ntext format.", + "readOnly": true, + "type": "string" + }, + "description": { + "description": "An optional description of this resource. Provide this property when you\ncreate the resource.", + "type": "string" + }, + "encryptedInterconnectRouter": { + "description": "Indicates if a router is dedicated for use with encrypted VLAN\nattachments (interconnectAttachments).", "type": "boolean" - } - }, - "type": "object" - }, - "RegionInstanceGroupManagersListErrorsResponse": { - "id": "RegionInstanceGroupManagersListErrorsResponse", - "properties": { - "items": { - "description": "[Output Only] The list of errors of the managed instance group.", - "items": { - "$ref": "InstanceManagedByIgmError" - }, - "type": "array" }, - "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.", + "id": { + "description": "[Output Only] The unique identifier for the resource. This identifier is\ndefined by the server.", + "format": "uint64", "type": "string" - } - }, - "type": "object" - }, - "RegionInstanceGroupManagersListInstanceConfigsResp": { - "id": "RegionInstanceGroupManagersListInstanceConfigsResp", - "properties": { - "items": { - "description": "[Output Only] The list of PerInstanceConfig.", + }, + "interfaces": { + "description": "Router interfaces.\nTo create a BGP peer that uses a router interface,\nthe interface must have one of the following fields specified:\n \n - linkedVpnTunnel\n - linkedInterconnectAttachment\n - subnetwork\n\n\nYou can create a router interface without any of these fields specified.\nHowever, you cannot create a BGP peer that uses that interface.", "items": { - "$ref": "PerInstanceConfig" + "$ref": "RouterInterface" }, "type": "array" }, - "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.", + "kind": { + "default": "compute#router", + "description": "Output only. [Output Only] Type of resource. Always compute#router for\nrouters.", + "readOnly": true, "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", - "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", - "LARGE_DEPLOYMENT_WARNING", - "LIST_OVERHEAD_QUOTA_EXCEED", - "MISSING_TYPE_DEPENDENCY", - "NEXT_HOP_ADDRESS_NOT_ASSIGNED", - "NEXT_HOP_CANNOT_IP_FORWARD", - "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", - "NEXT_HOP_INSTANCE_NOT_FOUND", - "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", - "NEXT_HOP_NOT_RUNNING", - "NOT_CRITICAL_ERROR", - "NO_RESULTS_ON_PAGE", - "PARTIAL_SUCCESS", - "REQUIRED_TOS_AGREEMENT", - "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", - "RESOURCE_NOT_DELETED", - "SCHEMA_VALIDATION_IGNORED", - "SINGLE_INSTANCE_PROPERTY_TEMPLATE", - "UNDECLARED_PROPERTIES", - "UNREACHABLE" - ], - "enumDeprecated": [ - false, - false, - false, - false, - false, - false, - true, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false - ], - "enumDescriptions": [ - "Warning about failed cleanup of transient changes made by a failed operation.", - "A link to a deprecated resource was created.", - "When deploying and at least one of the resources has a type marked as deprecated", - "The user created a boot disk that is larger than image size.", - "When deploying and at least one of the resources has a type marked as experimental", - "Warning that is present in an external api call", - "Warning that value of a field has been overridden. Deprecated unused field.", - "The operation involved use of an injected kernel, which is deprecated.", - "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", - "When deploying a deployment with a exceedingly large number of resources", - "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", - "A resource depends on a missing type", - "The route's nextHopIp address is not assigned to an instance on the network.", - "The route's next hop instance cannot ip forward.", - "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", - "The route's nextHopInstance URL refers to an instance that does not exist.", - "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", - "The route's next hop instance does not have a status of RUNNING.", - "Error which is not critical. We decided to continue the process despite the mentioned error.", - "No results are present on a particular list page.", - "Success is reported, but some results may be missing due to errors", - "The user attempted to use a resource that requires a TOS they have not accepted.", - "Warning that a resource is in use.", - "One or more of the resources set to auto-delete could not be deleted because they were in use.", - "When a resource schema validation is ignored.", - "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", - "When undeclared properties in the schema are present", - "A given scope cannot be reached." - ], - "type": "string" - }, - "data": { - "description": "[Output Only] Metadata about this warning in key: value format. For example: \"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" - }, - "RegionInstanceGroupManagersListInstancesResponse": { - "id": "RegionInstanceGroupManagersListInstancesResponse", - "properties": { - "managedInstances": { - "description": "A list of managed instances.", + "md5AuthenticationKeys": { + "description": "Keys used for MD5 authentication.", "items": { - "$ref": "ManagedInstance" + "$ref": "RouterMd5AuthenticationKey" }, "type": "array" }, - "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.", + "name": { + "annotations": { + "required": [ + "compute.routers.insert" + ] + }, + "description": "Name of the resource. Provided by the client when the resource is created.\nThe name must be 1-63 characters long, and comply withRFC1035.\nSpecifically, the name must be 1-63 characters long and match the regular\nexpression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first\ncharacter must be a lowercase letter, and all following characters must\nbe a dash, lowercase letter, or digit, except the last character, which\ncannot be a dash.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", "type": "string" - } - }, - "type": "object" - }, - "RegionInstanceGroupManagersRecreateRequest": { - "id": "RegionInstanceGroupManagersRecreateRequest", - "properties": { - "instances": { - "description": "The URLs of one or more instances to recreate. This can be a full URL or a partial URL, such as zones/[ZONE]/instances/[INSTANCE_NAME].", + }, + "nats": { + "description": "A list of NAT services created in this router.", "items": { - "type": "string" + "$ref": "RouterNat" }, "type": "array" - } - }, - "type": "object" - }, - "RegionInstanceGroupManagersSetTargetPoolsRequest": { - "id": "RegionInstanceGroupManagersSetTargetPoolsRequest", - "properties": { - "fingerprint": { - "description": "Fingerprint of the target pools information, which is a hash of the contents. This field is used for optimistic locking when you update the target pool entries. This field is optional.", - "format": "byte", + }, + "nccGateway": { + "description": "URI of the ncc_gateway to which this router associated.", "type": "string" }, - "targetPools": { - "description": "The URL of all TargetPool resources to which instances in the instanceGroup field are added. The target pools automatically apply to all of the instances in the managed instance group.", - "items": { - "type": "string" + "network": { + "annotations": { + "required": [ + "compute.routers.insert", + "compute.routers.update" + ] }, - "type": "array" + "description": "URI of the network to which this router belongs.", + "type": "string" + }, + "params": { + "$ref": "RouterParams", + "description": "Input only. [Input Only] Additional params passed with the request, but not persisted\nas part of resource payload." + }, + "region": { + "description": "[Output Only] URI of the region where the router resides.\nYou must specify this field as part of the HTTP request URL. It is\nnot settable as a field in the request body.", + "type": "string" + }, + "selfLink": { + "description": "[Output Only] Server-defined URL for the resource.", + "type": "string" } }, "type": "object" }, - "RegionInstanceGroupManagersSetTemplateRequest": { - "id": "RegionInstanceGroupManagersSetTemplateRequest", + "RouterAdvertisedIpRange": { + "description": "Description-tagged IP ranges for the router to advertise.", + "id": "RouterAdvertisedIpRange", "properties": { - "instanceTemplate": { - "description": "URL of the InstanceTemplate resource from which all new instances will be created.", + "description": { + "description": "User-specified description for the IP range.", + "type": "string" + }, + "range": { + "description": "The IP range to advertise. The value must be a CIDR-formatted string.", "type": "string" } }, "type": "object" }, - "RegionInstanceGroupsListInstances": { - "id": "RegionInstanceGroupsListInstances", + "RouterAggregatedList": { + "description": "Contains a list of routers.", + "id": "RouterAggregatedList", "properties": { "id": { "description": "[Output Only] Unique identifier for the resource; defined by the server.", "type": "string" }, "items": { - "description": "A list of InstanceWithNamedPorts resources.", - "items": { - "$ref": "InstanceWithNamedPorts" + "additionalProperties": { + "$ref": "RoutersScopedList", + "description": "Name of the scope containing this set of routers." }, - "type": "array" + "description": "A list of Router resources.", + "type": "object" }, "kind": { - "default": "compute#regionInstanceGroupsListInstances", - "description": "The resource type.", + "default": "compute#routerAggregatedList", + "description": "Output only. Type of resource.", + "readOnly": true, "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.", + "description": "[Output Only] This token allows you to get the next page of results for\nlist requests. If the number of results is larger thanmaxResults, use the nextPageToken as a value for\nthe query parameter pageToken in the next list request.\nSubsequent list requests will have their own nextPageToken to\ncontinue paging through the results.", "type": "string" }, "selfLink": { - "description": "[Output Only] Server-defined URL for this resource.", + "description": "Output only. [Output Only] Server-defined URL for this resource.", + "readOnly": true, "type": "string" }, + "unreachables": { + "description": "Output only. [Output Only] Unreachable resources.", + "items": { + "type": "string" + }, + "readOnly": true, + "type": "array" + }, "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.", + "description": "[Output Only] A warning code, if applicable. For example, Compute\nEngine returns NO_RESULTS_ON_PAGE if there\nare no results in the response.", "enum": [ "CLEANUP_FAILED", "DEPRECATED_RESOURCE_USED", @@ -67032,6 +94730,7 @@ "NOT_CRITICAL_ERROR", "NO_RESULTS_ON_PAGE", "PARTIAL_SUCCESS", + "QUOTA_INFO_UNAVAILABLE", "REQUIRED_TOS_AGREEMENT", "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", "RESOURCE_NOT_DELETED", @@ -67068,46 +94767,48 @@ false, false, false, + false, false ], "enumDescriptions": [ - "Warning about failed cleanup of transient changes made by a failed operation.", + "Warning about failed cleanup of transient changes made by a failed\noperation.", "A link to a deprecated resource was created.", - "When deploying and at least one of the resources has a type marked as deprecated", + "When deploying and at least one of the resources has a type marked as\ndeprecated", "The user created a boot disk that is larger than image size.", - "When deploying and at least one of the resources has a type marked as experimental", + "When deploying and at least one of the resources has a type marked as\nexperimental", "Warning that is present in an external api call", - "Warning that value of a field has been overridden. Deprecated unused field.", + "Warning that value of a field has been overridden.\nDeprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", - "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is\nnot of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", - "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", + "Resource can't be retrieved due to list overhead quota exceed\nwhich captures the amount of resources filtered out by\nuser-defined list filter.", "A resource depends on a missing type", - "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's nextHopIp address is not assigned to an instance on the\nnetwork.", "The route's next hop instance cannot ip forward.", - "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not have an\nipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", - "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that is not on the\nsame network as the route.", "The route's next hop instance does not have a status of RUNNING.", - "Error which is not critical. We decided to continue the process despite the mentioned error.", + "Error which is not critical. We decided to continue the process despite\nthe mentioned error.", "No results are present on a particular list page.", "Success is reported, but some results may be missing due to errors", - "The user attempted to use a resource that requires a TOS they have not accepted.", + "Quota information is not available to client requests (e.g:\nregions.list).", + "The user attempted to use a resource that requires a TOS they have not\naccepted.", "Warning that a resource is in use.", - "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "One or more of the resources set to auto-delete could not be deleted\nbecause they were in use.", "When a resource schema validation is ignored.", - "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", + "Instance template used in instance group manager is valid as such, but\nits application does not make a lot of sense, because it allows only\nsingle instance in instance group.", "When undeclared properties in the schema are present", "A given scope cannot be reached." ], "type": "string" }, "data": { - "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", + "description": "[Output Only] Metadata about this warning in key:\nvalue format. For example:\n\n\"data\": [\n {\n \"key\": \"scope\",\n \"value\": \"zones/us-east1-d\"\n }", "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).", + "description": "[Output Only] A key that provides more detail on the warning being\nreturned. For example, for warnings where there are no results in a list\nrequest for a particular zone, this key might be scope and\nthe key value might be the zone name. Other examples might be a key\nindicating a deprecated resource and a suggested replacement, or a\nwarning about invalid network settings (for example, if an instance\nattempts to perform IP forwarding but is not enabled for IP forwarding).", "type": "string" }, "value": { @@ -67129,80 +94830,366 @@ }, "type": "object" }, - "RegionInstanceGroupsListInstancesRequest": { - "id": "RegionInstanceGroupsListInstancesRequest", + "RouterBgp": { + "id": "RouterBgp", "properties": { - "instanceState": { - "description": "Instances in which state should be returned. Valid options are: 'ALL', 'RUNNING'. By default, it lists all instances.", + "advertiseMode": { + "description": "User-specified flag to indicate which mode to use for advertisement.\nThe options are DEFAULT or CUSTOM.", "enum": [ - "ALL", - "RUNNING" + "CUSTOM", + "DEFAULT" ], "enumDescriptions": [ - "Matches any status of the instances, running, non-running and others.", - "Instance is in RUNNING state if it is running." + "", + "" ], "type": "string" }, - "portName": { - "description": "Name of port user is interested in. It is optional. If it is set, only information about this ports will be returned. If it is not set, all the named ports will be returned. Always lists all instances.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "advertisedGroups": { + "description": "User-specified list of prefix groups to advertise in custom mode.\nThis field can only be populated if advertise_mode is CUSTOM and\nis advertised to all peers of the router.\nThese groups will be advertised in addition to any specified prefixes.\nLeave this field blank to advertise no custom groups.", + "items": { + "enum": [ + "ALL_SUBNETS" + ], + "enumDescriptions": [ + "Advertise all available subnets (including peer VPC subnets)." + ], + "type": "string" + }, + "type": "array" + }, + "advertisedIpRanges": { + "description": "User-specified list of individual IP ranges to advertise in custom mode.\nThis field can only be populated if advertise_mode is CUSTOM and\nis advertised to all peers of the router.\nThese IP ranges will be advertised in addition to any specified groups.\nLeave this field blank to advertise no custom IP ranges.", + "items": { + "$ref": "RouterAdvertisedIpRange" + }, + "type": "array" + }, + "asn": { + "description": "Local BGP Autonomous System Number (ASN).\nMust be anRFC6996 private ASN, either 16-bit or 32-bit. The\nvalue will be fixed for this router resource. All VPN tunnels that link\nto this router will have the same local ASN.", + "format": "uint32", + "type": "integer" + }, + "identifierRange": { + "description": "Explicitly specifies a range of valid BGP Identifiers for this Router. It\nis provided as a link-local IPv4 range (from 169.254.0.0/16), of size at\nleast /30, even if the BGP sessions are over IPv6. It must not overlap\nwith any IPv4 BGP session ranges.\n\n\nOther vendors commonly call this \"router ID\".", "type": "string" + }, + "keepaliveInterval": { + "description": "The interval in seconds between BGP keepalive messages that are\nsent to the peer.\n\n\nHold time is three times the interval at which keepalive messages are\nsent, and the hold time is the maximum number of seconds allowed to\nelapse between successive keepalive messages that BGP receives from a\npeer.\n\n\nBGP will use the smaller of either the local hold time value or the\npeer's hold time value as the hold time for the BGP connection between\nthe two peers.\n\n\nIf set, this value must be between 20 and 60. The default is 20.", + "format": "uint32", + "type": "integer" } }, "type": "object" }, - "RegionInstanceGroupsSetNamedPortsRequest": { - "id": "RegionInstanceGroupsSetNamedPortsRequest", + "RouterBgpPeer": { + "id": "RouterBgpPeer", "properties": { - "fingerprint": { - "description": "The fingerprint of the named ports information for this instance group. Use this optional property to prevent conflicts when multiple users change the named ports settings concurrently. Obtain the fingerprint with the instanceGroups.get method. Then, include the fingerprint in your request to ensure that you do not overwrite changes that were applied from another concurrent request.", - "format": "byte", + "advertiseMode": { + "description": "User-specified flag to indicate which mode to use for advertisement.", + "enum": [ + "CUSTOM", + "DEFAULT" + ], + "enumDescriptions": [ + "", + "" + ], "type": "string" }, - "namedPorts": { - "description": "The list of named ports to set for this instance group.", + "advertisedGroups": { + "description": "User-specified list of prefix groups to advertise in custom mode,\nwhich currently supports the following option:\n \n - ALL_SUBNETS: Advertises all of the router's own VPC subnets. This\n excludes any routes learned for subnets that use\n VPC Network Peering.\n\n\nNote that this field can only be populated if advertise_mode is CUSTOM\nand overrides the list defined for the router (in the \"bgp\" message).\nThese groups are advertised in addition to any specified prefixes.\nLeave this field blank to advertise no custom groups.", "items": { - "$ref": "NamedPort" + "enum": [ + "ALL_SUBNETS" + ], + "enumDescriptions": [ + "Advertise all available subnets (including peer VPC subnets)." + ], + "type": "string" + }, + "type": "array" + }, + "advertisedIpRanges": { + "description": "User-specified list of individual IP ranges to advertise in custom mode.\nThis field can only be populated if advertise_mode is CUSTOM and\noverrides the list defined for the router (in the \"bgp\" message).\nThese IP ranges are advertised in addition to any specified groups.\nLeave this field blank to advertise no custom IP ranges.", + "items": { + "$ref": "RouterAdvertisedIpRange" + }, + "type": "array" + }, + "advertisedRoutePriority": { + "description": "The priority of routes advertised to this BGP peer. Where there is more\nthan one matching route of maximum length, the routes with the lowest\npriority value win.", + "format": "uint32", + "type": "integer" + }, + "bfd": { + "$ref": "RouterBgpPeerBfd", + "description": "BFD configuration for the BGP peering." + }, + "customLearnedIpRanges": { + "description": "A list of user-defined custom learned route IP address ranges for a BGP\nsession.", + "items": { + "$ref": "RouterBgpPeerCustomLearnedIpRange" + }, + "type": "array" + }, + "customLearnedRoutePriority": { + "description": "The user-defined custom learned route priority for a BGP session. This\nvalue is applied to all custom learned route ranges for the session.\nYou can choose a value from `0` to `65335`. If you don't provide a\nvalue, Google Cloud assigns a priority of `100` to the ranges.", + "format": "int32", + "type": "integer" + }, + "enable": { + "description": "The status of the BGP peer connection.\n\n\nIf set to FALSE, any active session with the peer is terminated and\nall associated routing information is removed. If set to TRUE, the\npeer connection can be established with routing information. The default\nis TRUE.", + "enum": [ + "FALSE", + "TRUE" + ], + "enumDescriptions": [ + "", + "" + ], + "type": "string" + }, + "enableIpv4": { + "description": "Enable IPv4 traffic over BGP Peer. It is enabled by default if\nthe peerIpAddress is version 4.", + "type": "boolean" + }, + "enableIpv6": { + "description": "Enable IPv6 traffic over BGP Peer. It is enabled by default if the\npeerIpAddress is version 6.", + "type": "boolean" + }, + "exportPolicies": { + "description": "List of export policies applied to this peer, in the order they must be\nevaluated. The name must correspond to an existing policy that has\nROUTE_POLICY_TYPE_EXPORT type.", + "items": { + "type": "string" + }, + "type": "array" + }, + "importPolicies": { + "description": "List of import policies applied to this peer, in the order they must be\nevaluated. The name must correspond to an existing policy that has\nROUTE_POLICY_TYPE_IMPORT type.", + "items": { + "type": "string" }, "type": "array" + }, + "interfaceName": { + "description": "Name of the interface the BGP peer is associated with.", + "type": "string" + }, + "ipAddress": { + "description": "IP address of the interface inside Google Cloud Platform.", + "type": "string" + }, + "ipv4NexthopAddress": { + "description": "IPv4 address of the interface inside Google Cloud Platform.", + "type": "string" + }, + "ipv6NexthopAddress": { + "description": "IPv6 address of the interface inside Google Cloud Platform.", + "type": "string" + }, + "managementType": { + "description": "Output only. [Output Only] The resource that configures and manages this BGP peer.\n \n - MANAGED_BY_USER is the default value and can be managed by you\n or other users\n - MANAGED_BY_ATTACHMENT is a BGP peer that is configured and managed\n by Cloud Interconnect, specifically by an InterconnectAttachment of type\n PARTNER. Google automatically creates, updates, and deletes this type of\n BGP peer when the PARTNER InterconnectAttachment is created, updated,\n or deleted.", + "enum": [ + "MANAGED_BY_ATTACHMENT", + "MANAGED_BY_USER" + ], + "enumDescriptions": [ + "The BGP peer is automatically created for PARTNER type\nInterconnectAttachment; Google will automatically create/delete\nthis BGP peer when the PARTNER InterconnectAttachment is\ncreated/deleted, and Google will update the ipAddress and\npeerIpAddress when the PARTNER InterconnectAttachment is provisioned.\nThis type of BGP peer cannot be created or deleted, but can be\nmodified for all fields except for name, ipAddress and peerIpAddress.", + "Default value, the BGP peer is manually created and managed by user." + ], + "readOnly": true, + "type": "string" + }, + "md5AuthenticationKeyName": { + "description": "Present if MD5 authentication is enabled for the peering. Must be the\nname of one of the entries in the Router.md5_authentication_keys. The\nfield must comply with RFC1035.", + "type": "string" + }, + "name": { + "annotations": { + "required": [ + "compute.routers.insert" + ] + }, + "description": "Name of this BGP peer.\nThe name must be 1-63 characters long, and comply withRFC1035. Specifically, the name must be 1-63\ncharacters long and match the regular expression\n`[a-z]([-a-z0-9]*[a-z0-9])?` which means the first character must be a\nlowercase letter, and all following characters must be a dash, lowercase\nletter, or digit, except the last character, which cannot be a dash.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "type": "string" + }, + "peerAsn": { + "annotations": { + "required": [ + "compute.routers.insert" + ] + }, + "description": "Peer BGP Autonomous System Number (ASN). Each BGP interface may use\na different value.", + "format": "uint32", + "type": "integer" + }, + "peerIpAddress": { + "description": "IP address of the BGP interface outside Google Cloud Platform.", + "type": "string" + }, + "peerIpv4NexthopAddress": { + "description": "IPv4 address of the BGP interface outside Google Cloud Platform.", + "type": "string" + }, + "peerIpv6NexthopAddress": { + "description": "IPv6 address of the BGP interface outside Google Cloud Platform.", + "type": "string" + }, + "routerApplianceInstance": { + "description": "URI of the VM instance that is used as third-party router\nappliances such as Next Gen Firewalls, Virtual Routers, or Router\nAppliances. The VM instance must be located in zones contained in the\nsame region as this Cloud Router.\nThe VM instance is the peer side of the BGP session.", + "type": "string" } }, "type": "object" }, - "RegionList": { - "description": "Contains a list of region resources.", - "id": "RegionList", + "RouterBgpPeerBfd": { + "id": "RouterBgpPeerBfd", + "properties": { + "minReceiveInterval": { + "description": "The minimum interval, in milliseconds, between BFD control packets\nreceived from the peer router. The actual value is negotiated between\nthe two routers and is equal to the greater of this value and the\ntransmit interval of the other router.\n\n\nIf set, this value must be between 1000 and 30000.\n\n\nThe default is 1000.", + "format": "uint32", + "type": "integer" + }, + "minTransmitInterval": { + "description": "The minimum interval, in milliseconds, between BFD control packets\ntransmitted to the peer router. The actual value is negotiated between\nthe two routers and is equal to the greater of this value and the\ncorresponding receive interval of the other router.\n\n\nIf set, this value must be between 1000 and 30000.\n\n\nThe default is 1000.", + "format": "uint32", + "type": "integer" + }, + "multiplier": { + "description": "The number of consecutive BFD packets that must be missed\nbefore BFD declares that a peer is unavailable.\n\n\nIf set, the value must be a value between 5 and 16.\n\n\nThe default is 5.", + "format": "uint32", + "type": "integer" + }, + "sessionInitializationMode": { + "description": "The BFD session initialization mode for this BGP peer.\n\n\nIf set to ACTIVE, the Cloud Router will initiate the BFD session for\nthis BGP peer. If set to PASSIVE, the Cloud Router will wait for the\npeer router to initiate the BFD session for this BGP peer. If set to\nDISABLED, BFD is disabled for this BGP peer. The default is DISABLED.", + "enum": [ + "ACTIVE", + "DISABLED", + "PASSIVE" + ], + "enumDescriptions": [ + "", + "", + "" + ], + "type": "string" + } + }, + "type": "object" + }, + "RouterBgpPeerCustomLearnedIpRange": { + "id": "RouterBgpPeerCustomLearnedIpRange", + "properties": { + "range": { + "description": "The custom learned route IP address range. Must be a valid\nCIDR-formatted prefix. If an IP address is provided without a subnet\nmask, it is interpreted as, for IPv4, a `/32` singular IP address\nrange, and, for IPv6, `/128`.", + "type": "string" + } + }, + "type": "object" + }, + "RouterInterface": { + "id": "RouterInterface", + "properties": { + "ipRange": { + "description": "IP address and range of the interface.\n \n - For Internet Protocol version 4 (IPv4), the IP range must be in theRFC3927 link-local IP address space. The value must\n be a CIDR-formatted string, for example, 169.254.0.1/30.\n Note: Do not truncate the IP address, as it represents the IP address of\n the interface. \n - For Internet Protocol version 6 (IPv6), the value\n must be a unique local address (ULA) range from fdff:1::/64\n with a mask length of 126 or less. This value should be a CIDR-formatted\n string, for example, fdff:1::1/112. Within the router's\n VPC, this IPv6 prefix will be reserved exclusively for this connection\n and cannot be used for any other purpose.", + "type": "string" + }, + "ipVersion": { + "description": "IP version of this interface.", + "enum": [ + "IPV4", + "IPV6" + ], + "enumDescriptions": [ + "", + "" + ], + "type": "string" + }, + "linkedInterconnectAttachment": { + "description": "URI of the linked Interconnect attachment. It must be in the same region\nas the router. Each interface can have one linked resource, which can be\na VPN tunnel, an Interconnect attachment, or a subnetwork.", + "type": "string" + }, + "linkedVpnTunnel": { + "description": "URI of the linked VPN tunnel, which must be in the same region as the\nrouter. Each interface can have one linked resource, which can be\na VPN tunnel, an Interconnect attachment, or a subnetwork.", + "type": "string" + }, + "managementType": { + "description": "Output only. [Output Only] The resource that configures and manages this interface.\n \n - MANAGED_BY_USER is the default value and can be managed directly\n by users.\n - MANAGED_BY_ATTACHMENT is an interface that is configured and\n managed by Cloud Interconnect, specifically, by an InterconnectAttachment\n of type PARTNER. Google automatically creates, updates, and deletes\n this type of interface when the PARTNER InterconnectAttachment is\n created, updated, or deleted.", + "enum": [ + "MANAGED_BY_ATTACHMENT", + "MANAGED_BY_USER" + ], + "enumDescriptions": [ + "The interface is automatically created for PARTNER type\nInterconnectAttachment, Google will automatically create/update/delete\nthis interface when the PARTNER InterconnectAttachment is\ncreated/provisioned/deleted.\nThis type of interface cannot be manually managed by user.", + "Default value, the interface is manually created and managed by user." + ], + "readOnly": true, + "type": "string" + }, + "name": { + "annotations": { + "required": [ + "compute.routers.insert" + ] + }, + "description": "Name of this interface entry.\nThe name must be 1-63 characters long, and comply withRFC1035. Specifically, the name must be 1-63\ncharacters long and match the regular expression\n`[a-z]([-a-z0-9]*[a-z0-9])?` which means the first character must be a\nlowercase letter, and all following characters must be a dash, lowercase\nletter, or digit, except the last character, which cannot be a dash.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "type": "string" + }, + "privateIpAddress": { + "description": "The regional private internal IP address that is used to establish\nBGP sessions to a VM instance acting as a third-party\nRouter Appliance, such as a Next Gen Firewall, a Virtual Router, or\nan SD-WAN VM.", + "type": "string" + }, + "redundantInterface": { + "description": "Name of the interface that will be redundant with the current interface\nyou are creating. The redundantInterface must belong to the same Cloud\nRouter as the interface here. To establish the BGP session to a Router\nAppliance VM, you must create two BGP peers. The two BGP peers must be\nattached to two separate interfaces that are redundant with each other.\nThe redundant_interface must be 1-63 characters long, and comply withRFC1035. Specifically, the redundant_interface must\nbe 1-63 characters long and match the regular expression\n`[a-z]([-a-z0-9]*[a-z0-9])?` which means the first character must be a\nlowercase letter, and all following characters must be a dash, lowercase\nletter, or digit, except the last character, which cannot be a dash.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "type": "string" + }, + "subnetwork": { + "description": "The URI of the subnetwork resource that this interface belongs to, which\nmust be in the same region as the Cloud Router.\nWhen you establish a BGP session to a VM instance using this interface,\nthe VM instance must belong to the same subnetwork as the subnetwork\nspecified here.", + "type": "string" + } + }, + "type": "object" + }, + "RouterList": { + "description": "Contains a list of Router resources.", + "id": "RouterList", "properties": { "id": { "description": "[Output Only] Unique identifier for the resource; defined by the server.", "type": "string" }, "items": { - "description": "A list of Region resources.", + "description": "A list of Router resources.", "items": { - "$ref": "Region" + "$ref": "Router" }, "type": "array" }, "kind": { - "default": "compute#regionList", - "description": "[Output Only] Type of resource. Always compute#regionList for lists of regions.", + "default": "compute#routerList", + "description": "Output only. [Output Only] Type of resource. Always compute#router for\nrouters.", + "readOnly": true, "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.", + "description": "[Output Only] This token allows you to get the next page of results for\nlist requests. If the number of results is larger thanmaxResults, use the nextPageToken as a value for\nthe query parameter pageToken in the next list request.\nSubsequent list requests will have their own nextPageToken to\ncontinue paging through the results.", "type": "string" }, "selfLink": { - "description": "[Output Only] Server-defined URL for this resource.", + "description": "Output only. [Output Only] Server-defined URL for this resource.", + "readOnly": true, "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.", + "description": "[Output Only] A warning code, if applicable. For example, Compute\nEngine returns NO_RESULTS_ON_PAGE if there\nare no results in the response.", "enum": [ "CLEANUP_FAILED", "DEPRECATED_RESOURCE_USED", @@ -67225,6 +95212,7 @@ "NOT_CRITICAL_ERROR", "NO_RESULTS_ON_PAGE", "PARTIAL_SUCCESS", + "QUOTA_INFO_UNAVAILABLE", "REQUIRED_TOS_AGREEMENT", "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", "RESOURCE_NOT_DELETED", @@ -67261,46 +95249,48 @@ false, false, false, + false, false ], "enumDescriptions": [ - "Warning about failed cleanup of transient changes made by a failed operation.", + "Warning about failed cleanup of transient changes made by a failed\noperation.", "A link to a deprecated resource was created.", - "When deploying and at least one of the resources has a type marked as deprecated", + "When deploying and at least one of the resources has a type marked as\ndeprecated", "The user created a boot disk that is larger than image size.", - "When deploying and at least one of the resources has a type marked as experimental", + "When deploying and at least one of the resources has a type marked as\nexperimental", "Warning that is present in an external api call", - "Warning that value of a field has been overridden. Deprecated unused field.", + "Warning that value of a field has been overridden.\nDeprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", - "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is\nnot of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", - "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", + "Resource can't be retrieved due to list overhead quota exceed\nwhich captures the amount of resources filtered out by\nuser-defined list filter.", "A resource depends on a missing type", - "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's nextHopIp address is not assigned to an instance on the\nnetwork.", "The route's next hop instance cannot ip forward.", - "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not have an\nipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", - "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that is not on the\nsame network as the route.", "The route's next hop instance does not have a status of RUNNING.", - "Error which is not critical. We decided to continue the process despite the mentioned error.", + "Error which is not critical. We decided to continue the process despite\nthe mentioned error.", "No results are present on a particular list page.", "Success is reported, but some results may be missing due to errors", - "The user attempted to use a resource that requires a TOS they have not accepted.", + "Quota information is not available to client requests (e.g:\nregions.list).", + "The user attempted to use a resource that requires a TOS they have not\naccepted.", "Warning that a resource is in use.", - "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "One or more of the resources set to auto-delete could not be deleted\nbecause they were in use.", "When a resource schema validation is ignored.", - "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", + "Instance template used in instance group manager is valid as such, but\nits application does not make a lot of sense, because it allows only\nsingle instance in instance group.", "When undeclared properties in the schema are present", "A given scope cannot be reached." ], "type": "string" }, "data": { - "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", + "description": "[Output Only] Metadata about this warning in key:\nvalue format. For example:\n\n\"data\": [\n {\n \"key\": \"scope\",\n \"value\": \"zones/us-east1-d\"\n }", "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).", + "description": "[Output Only] A key that provides more detail on the warning being\nreturned. For example, for warnings where there are no results in a list\nrequest for a particular zone, this key might be scope and\nthe key value might be the zone name. Other examples might be a key\nindicating a deprecated resource and a suggested replacement, or a\nwarning about invalid network settings (for example, if an instance\nattempts to perform IP forwarding but is not enabled for IP forwarding).", "type": "string" }, "value": { @@ -67322,630 +95312,716 @@ }, "type": "object" }, - "RegionNetworkEndpointGroupsAttachEndpointsRequest": { - "id": "RegionNetworkEndpointGroupsAttachEndpointsRequest", + "RouterMd5AuthenticationKey": { + "id": "RouterMd5AuthenticationKey", + "properties": { + "key": { + "annotations": { + "required": [ + "compute.routers.insert" + ] + }, + "description": "[Input only] Value of the key.\n\nFor patch and update calls, it can be skipped to\ncopy the value from the previous configuration. This is allowed if the\nkey with the same name existed before the operation. Maximum length is 80\ncharacters. Can only contain printable ASCII characters.", + "type": "string" + }, + "name": { + "annotations": { + "required": [ + "compute.routers.insert", + "compute.routers.update" + ] + }, + "description": "Name used to identify the key.\n\nMust be unique within a router. Must be referenced by exactly\none bgpPeer. Must comply withRFC1035.", + "type": "string" + } + }, + "type": "object" + }, + "RouterNat": { + "description": "Represents a Nat resource. It enables the VMs within the specified\nsubnetworks to access Internet without external IP addresses. It specifies\na list of subnetworks (and the ranges within) that want to use NAT.\nCustomers can also provide the external IPs that would be used for NAT. GCP\nwould auto-allocate ephemeral IPs if no external IPs are provided.", + "id": "RouterNat", + "properties": { + "autoNetworkTier": { + "description": "The network tier to use when automatically reserving NAT IP addresses.\nMust be one of: PREMIUM, STANDARD.\nIf not specified, then the current \nproject-level default tier is used.", + "enum": [ + "FIXED_STANDARD", + "PREMIUM", + "STANDARD", + "STANDARD_OVERRIDES_FIXED_STANDARD" + ], + "enumDescriptions": [ + "Public internet quality with fixed bandwidth.", + "High quality, Google-grade network tier, support for all networking\nproducts.", + "Public internet quality, only limited support for other networking\nproducts.", + "(Output only) Temporary tier for FIXED_STANDARD when fixed standard tier\nis expired or not configured." + ], + "type": "string" + }, + "drainNatIps": { + "description": "A list of URLs of the IP resources to be drained. These IPs\nmust be valid static external IPs that have been assigned to the NAT.\nThese IPs should be used for updating/patching a NAT only.", + "items": { + "type": "string" + }, + "type": "array" + }, + "effectiveTcpTimeWaitTimeoutSec": { + "description": "Output only. Effective timeout (in seconds) for TCP connections that are in TIME_WAIT\nstate. This value is equal to tcp_time_wait_timeout_sec.\nIf tcp_time_wait_timeout_sec isn't set, the effective timeout is 30s or\n120s. The field is output only.", + "format": "int32", + "readOnly": true, + "type": "integer" + }, + "enableDynamicPortAllocation": { + "description": "Enable Dynamic Port Allocation.\n\n\nIf not specified, it is disabled by default.\n\n\nIf set to true,\n \n - Dynamic Port Allocation will be enabled on this NAT\n config.\n - enableEndpointIndependentMapping cannot be set to true.\n - If minPorts is set, minPortsPerVm must be set to a\n power of two greater than or equal to 32. If minPortsPerVm is not set, a\n minimum of 32 ports will be allocated to a VM from this NAT\n config.", + "type": "boolean" + }, + "enableEndpointIndependentMapping": { + "type": "boolean" + }, + "endpointTypes": { + "description": "List of NAT-ted endpoint types supported by the Nat Gateway. If the list\nis empty, then it will be equivalent to include ENDPOINT_TYPE_VM", + "items": { + "enum": [ + "ENDPOINT_TYPE_MANAGED_PROXY_LB", + "ENDPOINT_TYPE_SWG", + "ENDPOINT_TYPE_VM" + ], + "enumDescriptions": [ + "This is used for regional Application Load Balancers (internal and\nexternal) and regional proxy Network Load Balancers (internal and\nexternal) endpoints.", + "This is used for Secure Web Gateway endpoints.", + "This is the default." + ], + "type": "string" + }, + "type": "array" + }, + "icmpIdleTimeoutSec": { + "description": "Timeout (in seconds) for ICMP connections. Defaults to 30s if not set.", + "format": "int32", + "type": "integer" + }, + "logConfig": { + "$ref": "RouterNatLogConfig", + "description": "Configure logging on this NAT." + }, + "maxPortsPerVm": { + "description": "Maximum number of ports allocated to a VM from this NAT config when\nDynamic Port Allocation is enabled.\n\n\nIf Dynamic Port Allocation is not enabled, this field has no effect.\n\n\nIf Dynamic Port Allocation is enabled, and this field is set, it must be\nset to a power of two greater than minPortsPerVm, or 64 if minPortsPerVm\nis not set.\n\n\nIf Dynamic Port Allocation is enabled and this field is not set,\na maximum of 65536 ports will be allocated to a VM from this NAT\nconfig.", + "format": "int32", + "type": "integer" + }, + "minPortsPerVm": { + "description": "Minimum number of ports allocated to a VM from this NAT config. If not\nset, a default number of ports is allocated to a VM. This is rounded\nup to the nearest power of 2. For example, if the value of this field is\n50, at least 64 ports are allocated to a VM.", + "format": "int32", + "type": "integer" + }, + "name": { + "description": "Unique name of this Nat service.\nThe name must be 1-63 characters long and comply withRFC1035.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "type": "string" + }, + "nat64Subnetworks": { + "description": "List of Subnetwork resources whose traffic should be translated by NAT64\nGateway. It is used only when LIST_OF_IPV6_SUBNETWORKS is\nselected for the SubnetworkIpRangeToNat64Option above.", + "items": { + "$ref": "RouterNatSubnetworkToNat64" + }, + "type": "array" + }, + "natIpAllocateOption": { + "description": "Specify the NatIpAllocateOption, which can take one of the following\nvalues: \n \n - MANUAL_ONLY: Uses only Nat IP addresses provided by\n customers. When there are not enough specified Nat IPs, the Nat service\n fails for new VMs.\n - AUTO_ONLY: Nat IPs are allocated by Google Cloud Platform; customers\n can't specify any Nat IPs. When choosing AUTO_ONLY, then nat_ip should\n be empty.", + "enum": [ + "AUTO_ONLY", + "MANUAL_ONLY" + ], + "enumDescriptions": [ + "Nat IPs are allocated by GCP; customers can not specify any Nat IPs.", + "Only use Nat IPs provided by customers. When specified Nat IPs are not\nenough then the Nat service fails for new VMs." + ], + "type": "string" + }, + "natIps": { + "description": "A list of URLs of the IP resources used for this Nat service. These IP\naddresses must be valid static external IP addresses assigned to the\nproject.", + "items": { + "type": "string" + }, + "type": "array" + }, + "rules": { + "description": "A list of rules associated with this NAT.", + "items": { + "$ref": "RouterNatRule" + }, + "type": "array" + }, + "sourceSubnetworkIpRangesToNat": { + "description": "Specify the Nat option, which can take one of the following values:\n \n - ALL_SUBNETWORKS_ALL_IP_RANGES: All of the IP ranges in every\n Subnetwork are allowed to Nat.\n - ALL_SUBNETWORKS_ALL_PRIMARY_IP_RANGES: All of the primary IP ranges\n in every Subnetwork are allowed to Nat.\n - LIST_OF_SUBNETWORKS: A list of Subnetworks are allowed to Nat\n (specified in the field subnetwork below)\n\n\nThe default is SUBNETWORK_IP_RANGE_TO_NAT_OPTION_UNSPECIFIED.\nNote that if this field contains ALL_SUBNETWORKS_ALL_IP_RANGES then there\nshould not be any other Router.Nat section in any Router for this network\nin this region.", + "enum": [ + "ALL_SUBNETWORKS_ALL_IP_RANGES", + "ALL_SUBNETWORKS_ALL_PRIMARY_IP_RANGES", + "LIST_OF_SUBNETWORKS" + ], + "enumDescriptions": [ + "All the IP ranges in every Subnetwork are allowed to Nat.", + "All the primary IP ranges in every Subnetwork are allowed to Nat.", + "A list of Subnetworks are allowed to Nat (specified in the field\nsubnetwork below)" + ], + "type": "string" + }, + "sourceSubnetworkIpRangesToNat64": { + "description": "Specify the Nat option for NAT64, which can take one of the following\nvalues: \n \n - ALL_IPV6_SUBNETWORKS: All of the IP ranges in\n every Subnetwork are allowed to Nat.\n - LIST_OF_IPV6_SUBNETWORKS: A list of Subnetworks are allowed to Nat\n (specified in the field nat64_subnetwork below)\n\n\nThe default is NAT64_OPTION_UNSPECIFIED.\nNote that if this field contains NAT64_ALL_V6_SUBNETWORKS no other\nRouter.Nat section in this region can also enable NAT64 for any\nSubnetworks in this network. Other Router.Nat sections can still be\npresent to enable NAT44 only.", + "enum": [ + "ALL_IPV6_SUBNETWORKS", + "LIST_OF_IPV6_SUBNETWORKS" + ], + "enumDescriptions": [ + "NAT64 is enabled for all the IPv6 subnet ranges.\nIn dual stack subnets, NAT64 will only be enabled for IPv6-only VMs.", + "NAT64 is enabled for a list of IPv6 subnet ranges.\nIn dual stack subnets, NAT64 will only be enabled for IPv6-only VMs.\nIf this option is used, the nat64_subnetworks field must be specified." + ], + "type": "string" + }, + "subnetworks": { + "description": "A list of Subnetwork resources whose traffic should be translated by NAT\nGateway. It is used only when LIST_OF_SUBNETWORKS is selected for the\nSubnetworkIpRangeToNatOption above.", + "items": { + "$ref": "RouterNatSubnetworkToNat" + }, + "type": "array" + }, + "tcpEstablishedIdleTimeoutSec": { + "description": "Timeout (in seconds) for TCP established connections. Defaults to 1200s\nif not set.", + "format": "int32", + "type": "integer" + }, + "tcpTimeWaitTimeoutSec": { + "description": "Timeout (in seconds) for TCP connections that are in TIME_WAIT state.\nDefaults to 120s if not set.", + "format": "int32", + "type": "integer" + }, + "tcpTransitoryIdleTimeoutSec": { + "description": "Timeout (in seconds) for TCP transitory connections. Defaults to 30s if\nnot set.", + "format": "int32", + "type": "integer" + }, + "type": { + "description": "Indicates whether this NAT is used for public or private IP\ntranslation. If unspecified, it defaults to PUBLIC.", + "enum": [ + "PRIVATE", + "PUBLIC" + ], + "enumDescriptions": [ + "NAT used for private IP translation.", + "NAT used for public IP translation.\nThis is the default." + ], + "type": "string" + }, + "udpIdleTimeoutSec": { + "description": "Timeout (in seconds) for UDP connections. Defaults to 30s if not set.", + "format": "int32", + "type": "integer" + } + }, + "type": "object" + }, + "RouterNatLogConfig": { + "description": "Configuration of logging on a NAT.", + "id": "RouterNatLogConfig", + "properties": { + "enable": { + "description": "Indicates whether or not to export logs. This is false by default.", + "type": "boolean" + }, + "filter": { + "description": "Specify the desired filtering of logs on this NAT. If unspecified,\nlogs are exported for all connections handled by this NAT.\nThis option can take one of the following values:\n \n - ERRORS_ONLY: Export logs only for connection failures.\n - TRANSLATIONS_ONLY: Export logs only for successful\n connections.\n - ALL: Export logs for all connections, successful and\n unsuccessful.", + "enum": [ + "ALL", + "ERRORS_ONLY", + "TRANSLATIONS_ONLY" + ], + "enumDescriptions": [ + "Export logs for all (successful and unsuccessful) connections.", + "Export logs for connection failures only.", + "Export logs for successful connections only." + ], + "type": "string" + } + }, + "type": "object" + }, + "RouterNatRule": { + "id": "RouterNatRule", + "properties": { + "action": { + "$ref": "RouterNatRuleAction", + "description": "The action to be enforced for traffic that matches this rule." + }, + "description": { + "description": "An optional description of this rule.", + "type": "string" + }, + "match": { + "description": "CEL expression that specifies the match condition that egress traffic\nfrom a VM is evaluated against. If it evaluates to true, the\ncorresponding `action` is enforced.\n\nThe following examples are valid match expressions for public NAT:\n\n`inIpRange(destination.ip, '1.1.0.0/16') || inIpRange(destination.ip,\n '2.2.0.0/16')`\n\n`destination.ip == '1.1.0.1' || destination.ip == '8.8.8.8'`\n\nThe following example is a valid match expression for private NAT:\n\n`nexthop.hub ==\n'//networkconnectivity.googleapis.com/projects/my-project/locations/global/hubs/hub-1'`", + "type": "string" + }, + "ruleNumber": { + "description": "An integer uniquely identifying a rule in the list. The rule number\nmust be a positive value between 0 and 65000, and\nmust be unique among rules within a NAT.", + "format": "uint32", + "type": "integer" + } + }, + "type": "object" + }, + "RouterNatRuleAction": { + "id": "RouterNatRuleAction", "properties": { - "networkEndpoints": { - "description": "The list of network endpoints to be attached.", + "sourceNatActiveIps": { + "description": "A list of URLs of the IP resources used for this NAT rule. These IP\naddresses must be valid static external IP addresses assigned to the\nproject.\nThis field is used for public NAT.", "items": { - "$ref": "NetworkEndpoint" + "type": "string" }, "type": "array" - } - }, - "type": "object" - }, - "RegionNetworkEndpointGroupsDetachEndpointsRequest": { - "id": "RegionNetworkEndpointGroupsDetachEndpointsRequest", - "properties": { - "networkEndpoints": { - "description": "The list of network endpoints to be detached.", + }, + "sourceNatActiveRanges": { + "description": "A list of URLs of the subnetworks used as source ranges for this\nNAT Rule. These subnetworks must have purpose set to PRIVATE_NAT.\nThis field is used for private NAT.", "items": { - "$ref": "NetworkEndpoint" + "type": "string" }, "type": "array" - } - }, - "type": "object" - }, - "RegionNetworkFirewallPoliciesGetEffectiveFirewallsResponse": { - "id": "RegionNetworkFirewallPoliciesGetEffectiveFirewallsResponse", - "properties": { - "firewallPolicys": { - "description": "Effective firewalls from firewall policy.", + }, + "sourceNatDrainIps": { + "description": "A list of URLs of the IP resources to be drained. These IPs\nmust be valid static external IPs that have been assigned to the NAT.\nThese IPs should be used for updating/patching a NAT rule only.\nThis field is used for public NAT.", "items": { - "$ref": "RegionNetworkFirewallPoliciesGetEffectiveFirewallsResponseEffectiveFirewallPolicy" + "type": "string" }, "type": "array" }, - "firewalls": { - "description": "Effective firewalls on the network.", + "sourceNatDrainRanges": { + "description": "A list of URLs of subnetworks representing source ranges to be\ndrained. This is only supported on patch/update, and these\nsubnetworks must have previously been used as active ranges in this\nNAT Rule.\nThis field is used for private NAT.", "items": { - "$ref": "Firewall" + "type": "string" }, "type": "array" } }, "type": "object" }, - "RegionNetworkFirewallPoliciesGetEffectiveFirewallsResponseEffectiveFirewallPolicy": { - "id": "RegionNetworkFirewallPoliciesGetEffectiveFirewallsResponseEffectiveFirewallPolicy", + "RouterNatSubnetworkToNat": { + "description": "Defines the IP ranges that want to use NAT for a subnetwork.", + "id": "RouterNatSubnetworkToNat", "properties": { - "displayName": { - "description": "[Output Only] The display name of the firewall policy.", - "type": "string" - }, "name": { - "description": "[Output Only] The name of the firewall policy.", + "description": "URL for the subnetwork resource that will use NAT.", "type": "string" }, - "rules": { - "description": "The rules that apply to the network.", + "secondaryIpRangeNames": { + "description": "A list of the secondary ranges of the Subnetwork that are allowed to\nuse NAT. This can be populated only if \"LIST_OF_SECONDARY_IP_RANGES\"\nis one of the values in source_ip_ranges_to_nat.", "items": { - "$ref": "FirewallPolicyRule" + "type": "string" }, "type": "array" }, - "type": { - "description": "[Output Only] The type of the firewall policy. Can be one of HIERARCHY, NETWORK, NETWORK_REGIONAL, SYSTEM_GLOBAL, SYSTEM_REGIONAL.", - "enum": [ - "HIERARCHY", - "NETWORK", - "NETWORK_REGIONAL", - "UNSPECIFIED" - ], - "enumDescriptions": [ - "", - "", - "", - "" - ], - "type": "string" + "sourceIpRangesToNat": { + "description": "Specify the options for NAT ranges in the Subnetwork. All\noptions of a single value are valid except\nNAT_IP_RANGE_OPTION_UNSPECIFIED.\nThe only valid option with multiple values is: [\"PRIMARY_IP_RANGE\",\n\"LIST_OF_SECONDARY_IP_RANGES\"]\nDefault: [ALL_IP_RANGES]", + "items": { + "enum": [ + "ALL_IP_RANGES", + "LIST_OF_SECONDARY_IP_RANGES", + "PRIMARY_IP_RANGE" + ], + "enumDescriptions": [ + "The primary and all the secondary ranges are allowed to Nat.", + "A list of secondary ranges are allowed to Nat.", + "The primary range is allowed to Nat." + ], + "type": "string" + }, + "type": "array" } }, "type": "object" }, - "RegionSetLabelsRequest": { - "id": "RegionSetLabelsRequest", + "RouterNatSubnetworkToNat64": { + "description": "Specifies a subnetwork to enable NAT64.", + "id": "RouterNatSubnetworkToNat64", "properties": { - "labelFingerprint": { - "description": "The fingerprint of the previous set of labels for this resource, used to detect conflicts. The fingerprint is initially generated by Compute Engine and changes after every request to modify or update labels. You must always provide an up-to-date fingerprint hash in order to update or change labels. Make a get() request to the resource to get the latest fingerprint.", - "format": "byte", + "name": { + "description": "URL for the subnetwork resource that will use NAT64.", "type": "string" - }, - "labels": { + } + }, + "type": "object" + }, + "RouterParams": { + "description": "Additional router parameters.", + "id": "RouterParams", + "properties": { + "resourceManagerTags": { "additionalProperties": { "type": "string" }, - "description": "The labels to set for this resource.", + "description": "Tag keys/values directly bound to this resource.\nThe field is allowed for INSERT\nonly. The keys/values to set on the resource should be specified in\neither ID { : } or Namespaced format\n{ : }.\nFor example the following are valid inputs:\n* {\"tagKeys/333\" : \"tagValues/444\", \"tagKeys/123\" : \"tagValues/456\"}\n* {\"123/environment\" : \"production\", \"345/abc\" : \"xyz\"}\nNote:\n* Invalid combinations of ID \u0026 namespaced format is not supported. For\n instance: {\"123/environment\" : \"tagValues/444\"} is invalid.\n* Inconsistent format is not supported. For instance:\n {\"tagKeys/333\" : \"tagValues/444\", \"123/env\" : \"prod\"} is invalid.", "type": "object" } }, "type": "object" }, - "RegionSetPolicyRequest": { - "id": "RegionSetPolicyRequest", + "RouterStatus": { + "id": "RouterStatus", "properties": { - "bindings": { - "description": "Flatten Policy to create a backwacd compatible wire-format. Deprecated. Use 'policy' to specify bindings.", + "bestRoutes": { + "description": "A list of the best dynamic routes for this Cloud Router's Virtual Private\nCloud (VPC) network in the same region as this Cloud Router.\n\nLists all of the best routes per prefix that are programmed into this\nregion's VPC data plane.\n\nWhen global dynamic routing mode is turned on in the VPC network, this list\ncan include cross-region dynamic routes from Cloud Routers in other\nregions.", "items": { - "$ref": "Binding" + "$ref": "Route" }, "type": "array" }, - "etag": { - "description": "Flatten Policy to create a backward compatible wire-format. Deprecated. Use 'policy' to specify the etag.", - "format": "byte", - "type": "string" + "bestRoutesForRouter": { + "description": "A list of the best BGP routes learned by this Cloud Router.\n\nIt is possible that routes listed might not be programmed into the data\nplane, if the Google Cloud control plane finds a more optimal route for a\nprefix than a route learned by this Cloud Router.", + "items": { + "$ref": "Route" + }, + "type": "array" }, - "policy": { - "$ref": "Policy", - "description": "REQUIRED: The complete policy to be applied to the 'resource'. The size of the policy is limited to a few 10s of KB. An empty policy is in general a valid policy but certain services (like Projects) might reject them." - } - }, - "type": "object" - }, - "RegionTargetHttpsProxiesSetSslCertificatesRequest": { - "id": "RegionTargetHttpsProxiesSetSslCertificatesRequest", - "properties": { - "sslCertificates": { - "description": "New set of SslCertificate resources to associate with this TargetHttpsProxy resource.", + "bgpPeerStatus": { "items": { - "type": "string" + "$ref": "RouterStatusBgpPeerStatus" }, "type": "array" - } - }, - "type": "object" - }, - "RegionUrlMapsValidateRequest": { - "id": "RegionUrlMapsValidateRequest", - "properties": { - "resource": { - "$ref": "UrlMap", - "description": "Content of the UrlMap to be validated." - } - }, - "type": "object" - }, - "RequestMirrorPolicy": { - "description": "A policy that specifies how requests intended for the route's backends are shadowed to a separate mirrored backend service. The load balancer doesn't wait for responses from the shadow service. Before sending traffic to the shadow service, the host or authority header is suffixed with -shadow.", - "id": "RequestMirrorPolicy", - "properties": { - "backendService": { - "description": "The full or partial URL to the BackendService resource being mirrored to. The backend service configured for a mirroring policy must reference backends that are of the same type as the original backend service matched in the URL map. Serverless NEG backends are not currently supported as a mirrored backend service. ", + }, + "natStatus": { + "items": { + "$ref": "RouterStatusNatStatus" + }, + "type": "array" + }, + "nccGateway": { + "description": "URI of the ncc_gateway to which this router associated.", + "type": "string" + }, + "network": { + "description": "URI of the network to which this router belongs.", "type": "string" } }, "type": "object" }, - "Reservation": { - "description": "Represents a reservation resource. A reservation ensures that capacity is held in a specific zone even if the reserved VMs are not running. For more information, read Reserving zonal resources.", - "id": "Reservation", + "RouterStatusBgpPeerStatus": { + "id": "RouterStatusBgpPeerStatus", "properties": { - "aggregateReservation": { - "$ref": "AllocationAggregateReservation", - "description": "Reservation for aggregated resources, providing shape flexibility." + "advertisedRoutes": { + "description": "Routes that were advertised to the remote BGP peer", + "items": { + "$ref": "Route" + }, + "type": "array" }, - "commitment": { - "description": "[Output Only] Full or partial URL to a parent commitment. This field displays for reservations that are tied to a commitment.", - "type": "string" + "bfdStatus": { + "$ref": "BfdStatus" }, - "creationTimestamp": { - "description": "[Output Only] Creation timestamp in RFC3339 text format.", + "enableIpv4": { + "description": "Output only. Enable IPv4 traffic over BGP Peer.\nIt is enabled by default if the peerIpAddress is version 4.", + "readOnly": true, + "type": "boolean" + }, + "enableIpv6": { + "description": "Output only. Enable IPv6 traffic over BGP Peer.\nIt is enabled by default if the peerIpAddress is version 6.", + "readOnly": true, + "type": "boolean" + }, + "ipAddress": { + "description": "Output only. IP address of the local BGP interface.", + "readOnly": true, "type": "string" }, - "description": { - "description": "An optional description of this resource. Provide this property when you create the resource.", + "ipv4NexthopAddress": { + "description": "Output only. IPv4 address of the local BGP interface.", + "readOnly": true, "type": "string" }, - "id": { - "description": "[Output Only] The unique identifier for the resource. This identifier is defined by the server.", - "format": "uint64", + "ipv6NexthopAddress": { + "description": "Output only. IPv6 address of the local BGP interface.", + "readOnly": true, "type": "string" }, - "kind": { - "default": "compute#reservation", - "description": "[Output Only] Type of the resource. Always compute#reservations for reservations.", + "linkedVpnTunnel": { + "description": "Output only. URL of the VPN tunnel that this BGP peer controls.", + "readOnly": true, "type": "string" }, + "md5AuthEnabled": { + "description": "Informs whether MD5 authentication is enabled on this BGP peer.", + "type": "boolean" + }, "name": { - "annotations": { - "required": [ - "compute.instances.insert" - ] - }, - "description": "The name of the resource, provided by the client when initially creating the resource. The resource 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])?", + "description": "Output only. Name of this BGP peer. Unique within the Routers resource.", + "readOnly": true, "type": "string" }, - "resourcePolicies": { - "additionalProperties": { - "type": "string" - }, - "description": "Resource policies to be added to this reservation. The key is defined by user, and the value is resource policy url. This is to define placement policy with reservation.", - "type": "object" - }, - "resourceStatus": { - "$ref": "AllocationResourceStatus", - "description": "[Output Only] Status information for Reservation resource." + "numLearnedRoutes": { + "description": "Output only. Number of routes learned from the remote BGP Peer.", + "format": "uint32", + "readOnly": true, + "type": "integer" }, - "satisfiesPzs": { - "description": "[Output Only] Reserved for future use.", - "type": "boolean" + "peerIpAddress": { + "description": "Output only. IP address of the remote BGP interface.", + "readOnly": true, + "type": "string" }, - "selfLink": { - "description": "[Output Only] Server-defined fully-qualified URL for this resource.", + "peerIpv4NexthopAddress": { + "description": "Output only. IPv4 address of the remote BGP interface.", + "readOnly": true, "type": "string" }, - "shareSettings": { - "$ref": "ShareSettings", - "description": "Specify share-settings to create a shared reservation. This property is optional. For more information about the syntax and options for this field and its subfields, see the guide for creating a shared reservation." + "peerIpv6NexthopAddress": { + "description": "Output only. IPv6 address of the remote BGP interface.", + "readOnly": true, + "type": "string" }, - "specificReservation": { - "$ref": "AllocationSpecificSKUReservation", - "description": "Reservation for instances with specific machine shapes." + "routerApplianceInstance": { + "description": "Output only. [Output only] URI of the VM instance that is used as third-party router\nappliances such as Next Gen Firewalls, Virtual Routers, or Router\nAppliances.\nThe VM instance is the peer side of the BGP session.", + "readOnly": true, + "type": "string" }, - "specificReservationRequired": { - "description": "Indicates whether the reservation can be consumed by VMs with affinity for \"any\" reservation. If the field is set, then only VMs that target the reservation by name can consume from this reservation.", - "type": "boolean" + "state": { + "description": "Output only. The state of the BGP session. For a list of possible values for this\nfield, seeBGP session states.", + "readOnly": true, + "type": "string" }, "status": { - "description": "[Output Only] The status of the reservation.", + "description": "Output only. Status of the BGP peer: {UP, DOWN}", "enum": [ - "CREATING", - "DELETING", - "INVALID", - "READY", - "UPDATING" + "DOWN", + "UNKNOWN", + "UP" ], "enumDescriptions": [ - "Resources are being allocated for the reservation.", - "Reservation is currently being deleted.", "", - "Reservation has allocated all its resources.", - "Reservation is currently being resized." + "", + "" ], + "readOnly": true, "type": "string" }, - "zone": { - "description": "Zone in which the reservation resides. A zone must be provided if the reservation is created within a commitment.", - "type": "string" - } - }, - "type": "object" - }, - "ReservationAffinity": { - "description": "Specifies the reservations that this instance can consume from.", - "id": "ReservationAffinity", - "properties": { - "consumeReservationType": { - "description": "Specifies the type of reservation from which this instance can consume resources: ANY_RESERVATION (default), SPECIFIC_RESERVATION, or NO_RESERVATION. See Consuming reserved instances for examples.", + "statusReason": { + "description": "Indicates why particular status was returned.", "enum": [ - "ANY_RESERVATION", - "NO_RESERVATION", - "SPECIFIC_RESERVATION", - "UNSPECIFIED" + "IPV4_PEER_ON_IPV6_ONLY_CONNECTION", + "IPV6_PEER_ON_IPV4_ONLY_CONNECTION", + "MD5_AUTH_INTERNAL_PROBLEM", + "STATUS_REASON_UNSPECIFIED" ], "enumDescriptions": [ - "Consume any allocation available.", - "Do not consume from any allocated capacity.", - "Must consume from a specific reservation. Must specify key value fields for specifying the reservations.", + "BGP peer disabled because it requires IPv4 but the underlying\nconnection is IPv6-only.", + "BGP peer disabled because it requires IPv6 but the underlying\nconnection is IPv4-only.", + "Indicates internal problems with configuration of MD5 authentication.\nThis particular reason can only be returned when md5AuthEnabled is true\nand status is DOWN.", "" ], "type": "string" }, - "key": { - "description": "Corresponds to the label key of a reservation resource. To target a SPECIFIC_RESERVATION by name, specify googleapis.com/reservation-name as the key and specify the name of your reservation as its value.", + "uptime": { + "description": "Output only. Time this session has been up.\nFormat:\n 14 years, 51 weeks, 6 days, 23 hours, 59 minutes, 59 seconds", + "readOnly": true, "type": "string" }, - "values": { - "description": "Corresponds to the label values of a reservation resource. This can be either a name to a reservation in the same project or \"projects/different-project/reservations/some-reservation-name\" to target a shared reservation in the same zone but in a different project.", - "items": { - "type": "string" - }, - "type": "array" + "uptimeSeconds": { + "description": "Output only. Time this session has been up, in seconds.\nFormat:\n 145", + "readOnly": true, + "type": "string" } }, "type": "object" }, - "ReservationAggregatedList": { - "description": "Contains a list of reservations.", - "id": "ReservationAggregatedList", + "RouterStatusNatStatus": { + "description": "Status of a NAT contained in this router.", + "id": "RouterStatusNatStatus", "properties": { - "id": { - "description": "[Output Only] Unique identifier for the resource; defined by the server.", - "type": "string" + "autoAllocatedNatIps": { + "description": "Output only. A list of IPs auto-allocated for NAT. Example: [\"1.1.1.1\", \"129.2.16.89\"]", + "items": { + "type": "string" + }, + "readOnly": true, + "type": "array" }, - "items": { - "additionalProperties": { - "$ref": "ReservationsScopedList", - "description": "Name of the scope containing this set of reservations." + "drainAutoAllocatedNatIps": { + "description": "Output only. A list of IPs auto-allocated for NAT that are in drain mode.\nExample: [\"1.1.1.1\", \"179.12.26.133\"].", + "items": { + "type": "string" }, - "description": "A list of Allocation resources.", - "type": "object" + "readOnly": true, + "type": "array" }, - "kind": { - "default": "compute#reservationAggregatedList", - "description": "Type of resource.", - "type": "string" + "drainUserAllocatedNatIps": { + "description": "Output only. A list of IPs user-allocated for NAT that are in drain mode.\nExample: [\"1.1.1.1\", \"179.12.26.133\"].", + "items": { + "type": "string" + }, + "readOnly": true, + "type": "array" }, - "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" + "minExtraNatIpsNeeded": { + "description": "Output only. The number of extra IPs to allocate. This will be greater than 0 only if\nuser-specified IPs are NOT enough to allow all configured VMs to use NAT.\nThis value is meaningful only when auto-allocation of NAT IPs is *not*\nused.", + "format": "int32", + "readOnly": true, + "type": "integer" }, - "selfLink": { - "description": "[Output Only] Server-defined URL for this resource.", + "name": { + "description": "Output only. Unique name of this NAT.", + "readOnly": true, "type": "string" }, - "unreachables": { - "description": "[Output Only] Unreachable resources.", + "numVmEndpointsWithNatMappings": { + "description": "Output only. Number of VM endpoints (i.e., Nics) that can use NAT.", + "format": "int32", + "readOnly": true, + "type": "integer" + }, + "ruleStatus": { + "description": "Status of rules in this NAT.", + "items": { + "$ref": "RouterStatusNatStatusNatRuleStatus" + }, + "type": "array" + }, + "userAllocatedNatIpResources": { + "description": "Output only. A list of fully qualified URLs of reserved IP address resources.", "items": { "type": "string" }, + "readOnly": true, "type": "array" }, - "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", - "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", - "LARGE_DEPLOYMENT_WARNING", - "LIST_OVERHEAD_QUOTA_EXCEED", - "MISSING_TYPE_DEPENDENCY", - "NEXT_HOP_ADDRESS_NOT_ASSIGNED", - "NEXT_HOP_CANNOT_IP_FORWARD", - "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", - "NEXT_HOP_INSTANCE_NOT_FOUND", - "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", - "NEXT_HOP_NOT_RUNNING", - "NOT_CRITICAL_ERROR", - "NO_RESULTS_ON_PAGE", - "PARTIAL_SUCCESS", - "REQUIRED_TOS_AGREEMENT", - "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", - "RESOURCE_NOT_DELETED", - "SCHEMA_VALIDATION_IGNORED", - "SINGLE_INSTANCE_PROPERTY_TEMPLATE", - "UNDECLARED_PROPERTIES", - "UNREACHABLE" - ], - "enumDeprecated": [ - false, - false, - false, - false, - false, - false, - true, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false - ], - "enumDescriptions": [ - "Warning about failed cleanup of transient changes made by a failed operation.", - "A link to a deprecated resource was created.", - "When deploying and at least one of the resources has a type marked as deprecated", - "The user created a boot disk that is larger than image size.", - "When deploying and at least one of the resources has a type marked as experimental", - "Warning that is present in an external api call", - "Warning that value of a field has been overridden. Deprecated unused field.", - "The operation involved use of an injected kernel, which is deprecated.", - "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", - "When deploying a deployment with a exceedingly large number of resources", - "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", - "A resource depends on a missing type", - "The route's nextHopIp address is not assigned to an instance on the network.", - "The route's next hop instance cannot ip forward.", - "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", - "The route's nextHopInstance URL refers to an instance that does not exist.", - "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", - "The route's next hop instance does not have a status of RUNNING.", - "Error which is not critical. We decided to continue the process despite the mentioned error.", - "No results are present on a particular list page.", - "Success is reported, but some results may be missing due to errors", - "The user attempted to use a resource that requires a TOS they have not accepted.", - "Warning that a resource is in use.", - "One or more of the resources set to auto-delete could not be deleted because they were in use.", - "When a resource schema validation is ignored.", - "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", - "When undeclared properties in the schema are present", - "A given scope cannot be reached." - ], - "type": "string" - }, - "data": { - "description": "[Output Only] Metadata about this warning in key: value format. For example: \"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" - } + "userAllocatedNatIps": { + "description": "Output only. A list of IPs user-allocated for NAT.\nThey will be raw IP strings like \"179.12.26.133\".", + "items": { + "type": "string" }, - "type": "object" + "readOnly": true, + "type": "array" + } + }, + "type": "object" + }, + "RouterStatusNatStatusNatRuleStatus": { + "description": "Status of a NAT Rule contained in this NAT.", + "id": "RouterStatusNatStatusNatRuleStatus", + "properties": { + "activeNatIps": { + "description": "Output only. A list of active IPs for NAT.\nExample: [\"1.1.1.1\", \"179.12.26.133\"].", + "items": { + "type": "string" + }, + "readOnly": true, + "type": "array" + }, + "drainNatIps": { + "description": "Output only. A list of IPs for NAT that are in drain mode.\nExample: [\"1.1.1.1\", \"179.12.26.133\"].", + "items": { + "type": "string" + }, + "readOnly": true, + "type": "array" + }, + "minExtraIpsNeeded": { + "description": "Output only. The number of extra IPs to allocate. This will be greater than 0 only\nif the existing IPs in this NAT Rule are NOT enough to allow all\nconfigured VMs to use NAT.", + "format": "int32", + "readOnly": true, + "type": "integer" + }, + "numVmEndpointsWithNatMappings": { + "description": "Output only. Number of VM endpoints (i.e., NICs) that have NAT Mappings from this\nNAT Rule.", + "format": "int32", + "readOnly": true, + "type": "integer" + }, + "ruleNumber": { + "description": "Output only. Rule number of the rule.", + "format": "int32", + "readOnly": true, + "type": "integer" + } + }, + "type": "object" + }, + "RouterStatusResponse": { + "id": "RouterStatusResponse", + "properties": { + "kind": { + "default": "compute#routerStatusResponse", + "description": "Output only. Type of resource.", + "readOnly": true, + "type": "string" + }, + "result": { + "$ref": "RouterStatus" + } + }, + "type": "object" + }, + "RoutersGetNamedSetResponse": { + "id": "RoutersGetNamedSetResponse", + "properties": { + "etag": { + "description": "end_interface: MixerGetResponseWithEtagBuilder", + "type": "string" + }, + "resource": { + "$ref": "NamedSet" } }, "type": "object" }, - "ReservationList": { - "id": "ReservationList", + "RoutersGetRoutePolicyResponse": { + "id": "RoutersGetRoutePolicyResponse", "properties": { - "id": { - "description": "[Output Only] The unique identifier for the resource. This identifier is defined by the server.", + "resource": { + "$ref": "RoutePolicy" + } + }, + "type": "object" + }, + "RoutersListBgpRoutes": { + "id": "RoutersListBgpRoutes", + "properties": { + "etag": { "type": "string" }, - "items": { - "description": "[Output Only] A list of Allocation resources.", - "items": { - "$ref": "Reservation" - }, - "type": "array" + "id": { + "description": "[Output Only] The unique identifier for the resource. This identifier is\ndefined by the server.", + "type": "string" }, "kind": { - "default": "compute#reservationList", - "description": "[Output Only] Type of resource.Always compute#reservationsList for listsof reservations", + "default": "compute#routersListBgpRoutes", + "description": "Output only. [Output Only] Type of resource. Alwayscompute#routersListBgpRoutes for lists of bgp routes.", + "readOnly": true, "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.", + "description": "[Output Only] This token allows you to get the next page of results for\nlist requests. If the number of results is larger thanmaxResults, use the nextPageToken as a value for\nthe query parameter pageToken in the next list request.\nSubsequent list requests will have their own nextPageToken to\ncontinue paging through the results.", "type": "string" }, + "result": { + "description": "[Output Only] A list of bgp routes.", + "items": { + "$ref": "BgpRoute" + }, + "type": "array" + }, "selfLink": { - "description": "[Output Only] Server-defined URL for this resource.", + "description": "Output only. [Output Only] Server-defined URL for this resource.", + "readOnly": true, "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", - "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", - "LARGE_DEPLOYMENT_WARNING", - "LIST_OVERHEAD_QUOTA_EXCEED", - "MISSING_TYPE_DEPENDENCY", - "NEXT_HOP_ADDRESS_NOT_ASSIGNED", - "NEXT_HOP_CANNOT_IP_FORWARD", - "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", - "NEXT_HOP_INSTANCE_NOT_FOUND", - "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", - "NEXT_HOP_NOT_RUNNING", - "NOT_CRITICAL_ERROR", - "NO_RESULTS_ON_PAGE", - "PARTIAL_SUCCESS", - "REQUIRED_TOS_AGREEMENT", - "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", - "RESOURCE_NOT_DELETED", - "SCHEMA_VALIDATION_IGNORED", - "SINGLE_INSTANCE_PROPERTY_TEMPLATE", - "UNDECLARED_PROPERTIES", - "UNREACHABLE" - ], - "enumDeprecated": [ - false, - false, - false, - false, - false, - false, - true, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false - ], - "enumDescriptions": [ - "Warning about failed cleanup of transient changes made by a failed operation.", - "A link to a deprecated resource was created.", - "When deploying and at least one of the resources has a type marked as deprecated", - "The user created a boot disk that is larger than image size.", - "When deploying and at least one of the resources has a type marked as experimental", - "Warning that is present in an external api call", - "Warning that value of a field has been overridden. Deprecated unused field.", - "The operation involved use of an injected kernel, which is deprecated.", - "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", - "When deploying a deployment with a exceedingly large number of resources", - "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", - "A resource depends on a missing type", - "The route's nextHopIp address is not assigned to an instance on the network.", - "The route's next hop instance cannot ip forward.", - "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", - "The route's nextHopInstance URL refers to an instance that does not exist.", - "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", - "The route's next hop instance does not have a status of RUNNING.", - "Error which is not critical. We decided to continue the process despite the mentioned error.", - "No results are present on a particular list page.", - "Success is reported, but some results may be missing due to errors", - "The user attempted to use a resource that requires a TOS they have not accepted.", - "Warning that a resource is in use.", - "One or more of the resources set to auto-delete could not be deleted because they were in use.", - "When a resource schema validation is ignored.", - "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", - "When undeclared properties in the schema are present", - "A given scope cannot be reached." - ], - "type": "string" - }, - "data": { - "description": "[Output Only] Metadata about this warning in key: value format. For example: \"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" - }, - "ReservationsResizeRequest": { - "id": "ReservationsResizeRequest", - "properties": { - "specificSkuCount": { - "description": "Number of allocated resources can be resized with minimum = 1 and maximum = 1000.", - "format": "int64", - "type": "string" - } - }, - "type": "object" - }, - "ReservationsScopedList": { - "id": "ReservationsScopedList", - "properties": { - "reservations": { - "description": "A list of reservations contained in this scope.", + "unreachables": { + "description": "Output only. [Output Only] Unreachable resources.", "items": { - "$ref": "Reservation" + "type": "string" }, + "readOnly": true, "type": "array" }, "warning": { - "description": "Informational warning which replaces the list of reservations when the list is empty.", + "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.", + "description": "[Output Only] A warning code, if applicable. For example, Compute\nEngine returns NO_RESULTS_ON_PAGE if there\nare no results in the response.", "enum": [ "CLEANUP_FAILED", "DEPRECATED_RESOURCE_USED", @@ -67968,6 +96044,7 @@ "NOT_CRITICAL_ERROR", "NO_RESULTS_ON_PAGE", "PARTIAL_SUCCESS", + "QUOTA_INFO_UNAVAILABLE", "REQUIRED_TOS_AGREEMENT", "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", "RESOURCE_NOT_DELETED", @@ -68004,46 +96081,48 @@ false, false, false, + false, false ], "enumDescriptions": [ - "Warning about failed cleanup of transient changes made by a failed operation.", + "Warning about failed cleanup of transient changes made by a failed\noperation.", "A link to a deprecated resource was created.", - "When deploying and at least one of the resources has a type marked as deprecated", + "When deploying and at least one of the resources has a type marked as\ndeprecated", "The user created a boot disk that is larger than image size.", - "When deploying and at least one of the resources has a type marked as experimental", + "When deploying and at least one of the resources has a type marked as\nexperimental", "Warning that is present in an external api call", - "Warning that value of a field has been overridden. Deprecated unused field.", + "Warning that value of a field has been overridden.\nDeprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", - "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is\nnot of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", - "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", + "Resource can't be retrieved due to list overhead quota exceed\nwhich captures the amount of resources filtered out by\nuser-defined list filter.", "A resource depends on a missing type", - "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's nextHopIp address is not assigned to an instance on the\nnetwork.", "The route's next hop instance cannot ip forward.", - "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not have an\nipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", - "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that is not on the\nsame network as the route.", "The route's next hop instance does not have a status of RUNNING.", - "Error which is not critical. We decided to continue the process despite the mentioned error.", + "Error which is not critical. We decided to continue the process despite\nthe mentioned error.", "No results are present on a particular list page.", "Success is reported, but some results may be missing due to errors", - "The user attempted to use a resource that requires a TOS they have not accepted.", + "Quota information is not available to client requests (e.g:\nregions.list).", + "The user attempted to use a resource that requires a TOS they have not\naccepted.", "Warning that a resource is in use.", - "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "One or more of the resources set to auto-delete could not be deleted\nbecause they were in use.", "When a resource schema validation is ignored.", - "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", + "Instance template used in instance group manager is valid as such, but\nits application does not make a lot of sense, because it allows only\nsingle instance in instance group.", "When undeclared properties in the schema are present", "A given scope cannot be reached." ], "type": "string" }, "data": { - "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", + "description": "[Output Only] Metadata about this warning in key:\nvalue format. For example:\n\n\"data\": [\n {\n \"key\": \"scope\",\n \"value\": \"zones/us-east1-d\"\n }", "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).", + "description": "[Output Only] A key that provides more detail on the warning being\nreturned. For example, for warnings where there are no results in a list\nrequest for a particular zone, this key might be scope and\nthe key value might be the zone name. Other examples might be a key\nindicating a deprecated resource and a suggested replacement, or a\nwarning about invalid network settings (for example, if an instance\nattempts to perform IP forwarding but is not enabled for IP forwarding).", "type": "string" }, "value": { @@ -68065,65 +96144,51 @@ }, "type": "object" }, - "ResourceCommitment": { - "description": "Commitment for a particular resource (a Commitment is composed of one or more of these).", - "id": "ResourceCommitment", + "RoutersListNamedSets": { + "id": "RoutersListNamedSets", "properties": { - "acceleratorType": { - "description": "Name of the accelerator type resource. Applicable only when the type is ACCELERATOR.", + "etag": { "type": "string" }, - "amount": { - "description": "The amount of the resource purchased (in a type-dependent unit, such as bytes). For vCPUs, this can just be an integer. For memory, this must be provided in MB. Memory must be a multiple of 256 MB, with up to 6.5GB of memory per every vCPU.", - "format": "int64", + "id": { + "description": "[Output Only] The unique identifier for the resource. This identifier is\ndefined by the server.", "type": "string" }, - "type": { - "description": "Type of resource for which this commitment applies. Possible values are VCPU, MEMORY, LOCAL_SSD, and ACCELERATOR.", - "enum": [ - "ACCELERATOR", - "LOCAL_SSD", - "MEMORY", - "UNSPECIFIED", - "VCPU" - ], - "enumDescriptions": [ - "", - "", - "", - "", - "" - ], + "kind": { + "default": "compute#routersListNamedSets", + "description": "Output only. [Output Only] Type of resource. Alwayscompute#routersListNamedSets for lists of named sets.", + "readOnly": true, "type": "string" - } - }, - "type": "object" - }, - "ResourceGroupReference": { - "id": "ResourceGroupReference", - "properties": { - "group": { - "description": "A URI referencing one of the instance groups or network endpoint groups listed in the backend service.", + }, + "nextPageToken": { + "description": "[Output Only] This token allows you to get the next page of results for\nlist requests. If the number of results is larger thanmaxResults, use the nextPageToken as a value for\nthe query parameter pageToken in the next list request.\nSubsequent list requests will have their own nextPageToken to\ncontinue paging through the results.", "type": "string" - } - }, - "type": "object" - }, - "ResourcePoliciesScopedList": { - "id": "ResourcePoliciesScopedList", - "properties": { - "resourcePolicies": { - "description": "A list of resourcePolicies contained in this scope.", + }, + "result": { + "description": "[Output Only] A list of named sets.", "items": { - "$ref": "ResourcePolicy" + "$ref": "NamedSet" }, "type": "array" }, + "selfLink": { + "description": "Output only. [Output Only] Server-defined URL for this resource.", + "readOnly": true, + "type": "string" + }, + "unreachables": { + "description": "Output only. [Output Only] Unreachable resources.", + "items": { + "type": "string" + }, + "readOnly": true, + "type": "array" + }, "warning": { - "description": "Informational warning which replaces the list of resourcePolicies when the list is empty.", + "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.", + "description": "[Output Only] A warning code, if applicable. For example, Compute\nEngine returns NO_RESULTS_ON_PAGE if there\nare no results in the response.", "enum": [ "CLEANUP_FAILED", "DEPRECATED_RESOURCE_USED", @@ -68146,6 +96211,7 @@ "NOT_CRITICAL_ERROR", "NO_RESULTS_ON_PAGE", "PARTIAL_SUCCESS", + "QUOTA_INFO_UNAVAILABLE", "REQUIRED_TOS_AGREEMENT", "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", "RESOURCE_NOT_DELETED", @@ -68182,46 +96248,48 @@ false, false, false, + false, false ], "enumDescriptions": [ - "Warning about failed cleanup of transient changes made by a failed operation.", + "Warning about failed cleanup of transient changes made by a failed\noperation.", "A link to a deprecated resource was created.", - "When deploying and at least one of the resources has a type marked as deprecated", + "When deploying and at least one of the resources has a type marked as\ndeprecated", "The user created a boot disk that is larger than image size.", - "When deploying and at least one of the resources has a type marked as experimental", + "When deploying and at least one of the resources has a type marked as\nexperimental", "Warning that is present in an external api call", - "Warning that value of a field has been overridden. Deprecated unused field.", + "Warning that value of a field has been overridden.\nDeprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", - "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is\nnot of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", - "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", + "Resource can't be retrieved due to list overhead quota exceed\nwhich captures the amount of resources filtered out by\nuser-defined list filter.", "A resource depends on a missing type", - "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's nextHopIp address is not assigned to an instance on the\nnetwork.", "The route's next hop instance cannot ip forward.", - "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not have an\nipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", - "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that is not on the\nsame network as the route.", "The route's next hop instance does not have a status of RUNNING.", - "Error which is not critical. We decided to continue the process despite the mentioned error.", + "Error which is not critical. We decided to continue the process despite\nthe mentioned error.", "No results are present on a particular list page.", "Success is reported, but some results may be missing due to errors", - "The user attempted to use a resource that requires a TOS they have not accepted.", + "Quota information is not available to client requests (e.g:\nregions.list).", + "The user attempted to use a resource that requires a TOS they have not\naccepted.", "Warning that a resource is in use.", - "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "One or more of the resources set to auto-delete could not be deleted\nbecause they were in use.", "When a resource schema validation is ignored.", - "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", + "Instance template used in instance group manager is valid as such, but\nits application does not make a lot of sense, because it allows only\nsingle instance in instance group.", "When undeclared properties in the schema are present", "A given scope cannot be reached." ], "type": "string" }, "data": { - "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", + "description": "[Output Only] Metadata about this warning in key:\nvalue format. For example:\n\n\"data\": [\n {\n \"key\": \"scope\",\n \"value\": \"zones/us-east1-d\"\n }", "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).", + "description": "[Output Only] A key that provides more detail on the warning being\nreturned. For example, for warnings where there are no results in a list\nrequest for a particular zone, this key might be scope and\nthe key value might be the zone name. Other examples might be a key\nindicating a deprecated resource and a suggested replacement, or a\nwarning about invalid network settings (for example, if an instance\nattempts to perform IP forwarding but is not enabled for IP forwarding).", "type": "string" }, "value": { @@ -68243,129 +96311,51 @@ }, "type": "object" }, - "ResourcePolicy": { - "description": "Represents a Resource Policy resource. You can use resource policies to schedule actions for some Compute Engine resources. For example, you can use them to schedule persistent disk snapshots.", - "id": "ResourcePolicy", - "properties": { - "creationTimestamp": { - "description": "[Output Only] Creation timestamp in RFC3339 text format.", - "type": "string" - }, - "description": { - "type": "string" - }, - "diskConsistencyGroupPolicy": { - "$ref": "ResourcePolicyDiskConsistencyGroupPolicy", - "description": "Resource policy for disk consistency groups." - }, - "groupPlacementPolicy": { - "$ref": "ResourcePolicyGroupPlacementPolicy", - "description": "Resource policy for instances for placement configuration." - }, - "id": { - "description": "[Output Only] The unique identifier for the resource. This identifier is defined by the server.", - "format": "uint64", - "type": "string" - }, - "instanceSchedulePolicy": { - "$ref": "ResourcePolicyInstanceSchedulePolicy", - "description": "Resource policy for scheduling instance operations." - }, - "kind": { - "default": "compute#resourcePolicy", - "description": "[Output Only] Type of the resource. Always compute#resource_policies for resource policies.", - "type": "string" - }, - "name": { - "annotations": { - "required": [ - "compute.instances.insert" - ] - }, - "description": "The name of the resource, provided by the client when initially creating the resource. The resource 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" - }, - "region": { - "type": "string" - }, - "resourceStatus": { - "$ref": "ResourcePolicyResourceStatus", - "description": "[Output Only] The system status of the resource policy." - }, - "selfLink": { - "description": "[Output Only] Server-defined fully-qualified URL for this resource.", - "type": "string" - }, - "snapshotSchedulePolicy": { - "$ref": "ResourcePolicySnapshotSchedulePolicy", - "description": "Resource policy for persistent disks for creating snapshots." - }, - "status": { - "description": "[Output Only] The status of resource policy creation.", - "enum": [ - "CREATING", - "DELETING", - "EXPIRED", - "INVALID", - "READY" - ], - "enumDescriptions": [ - "Resource policy is being created.", - "Resource policy is being deleted.", - "Resource policy is expired and will not run again.", - "", - "Resource policy is ready to be used." - ], - "type": "string" - } - }, - "type": "object" - }, - "ResourcePolicyAggregatedList": { - "description": "Contains a list of resourcePolicies.", - "id": "ResourcePolicyAggregatedList", + "RoutersListRoutePolicies": { + "id": "RoutersListRoutePolicies", "properties": { "etag": { "type": "string" }, "id": { - "description": "[Output Only] Unique identifier for the resource; defined by the server.", + "description": "[Output Only] The unique identifier for the resource. This identifier is\ndefined by the server.", "type": "string" }, - "items": { - "additionalProperties": { - "$ref": "ResourcePoliciesScopedList", - "description": "Name of the scope containing this set of resourcePolicies." - }, - "description": "A list of ResourcePolicy resources.", - "type": "object" - }, "kind": { - "default": "compute#resourcePolicyAggregatedList", - "description": "Type of resource.", + "default": "compute#routersListRoutePolicies", + "description": "Output only. [Output Only] Type of resource. Alwayscompute#routersListRoutePolicies for lists of route policies.", + "readOnly": true, "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.", + "description": "[Output Only] This token allows you to get the next page of results for\nlist requests. If the number of results is larger thanmaxResults, use the nextPageToken as a value for\nthe query parameter pageToken in the next list request.\nSubsequent list requests will have their own nextPageToken to\ncontinue paging through the results.", "type": "string" }, + "result": { + "description": "[Output Only] A list of route policies.", + "items": { + "$ref": "RoutePolicy" + }, + "type": "array" + }, "selfLink": { - "description": "[Output Only] Server-defined URL for this resource.", + "description": "Output only. [Output Only] Server-defined URL for this resource.", + "readOnly": true, "type": "string" }, "unreachables": { - "description": "[Output Only] Unreachable resources.", + "description": "Output only. [Output Only] Unreachable resources.", "items": { "type": "string" }, + "readOnly": true, "type": "array" }, "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.", + "description": "[Output Only] A warning code, if applicable. For example, Compute\nEngine returns NO_RESULTS_ON_PAGE if there\nare no results in the response.", "enum": [ "CLEANUP_FAILED", "DEPRECATED_RESOURCE_USED", @@ -68388,6 +96378,7 @@ "NOT_CRITICAL_ERROR", "NO_RESULTS_ON_PAGE", "PARTIAL_SUCCESS", + "QUOTA_INFO_UNAVAILABLE", "REQUIRED_TOS_AGREEMENT", "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", "RESOURCE_NOT_DELETED", @@ -68424,46 +96415,48 @@ false, false, false, + false, false ], "enumDescriptions": [ - "Warning about failed cleanup of transient changes made by a failed operation.", + "Warning about failed cleanup of transient changes made by a failed\noperation.", "A link to a deprecated resource was created.", - "When deploying and at least one of the resources has a type marked as deprecated", + "When deploying and at least one of the resources has a type marked as\ndeprecated", "The user created a boot disk that is larger than image size.", - "When deploying and at least one of the resources has a type marked as experimental", + "When deploying and at least one of the resources has a type marked as\nexperimental", "Warning that is present in an external api call", - "Warning that value of a field has been overridden. Deprecated unused field.", + "Warning that value of a field has been overridden.\nDeprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", - "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is\nnot of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", - "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", + "Resource can't be retrieved due to list overhead quota exceed\nwhich captures the amount of resources filtered out by\nuser-defined list filter.", "A resource depends on a missing type", - "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's nextHopIp address is not assigned to an instance on the\nnetwork.", "The route's next hop instance cannot ip forward.", - "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not have an\nipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", - "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that is not on the\nsame network as the route.", "The route's next hop instance does not have a status of RUNNING.", - "Error which is not critical. We decided to continue the process despite the mentioned error.", + "Error which is not critical. We decided to continue the process despite\nthe mentioned error.", "No results are present on a particular list page.", "Success is reported, but some results may be missing due to errors", - "The user attempted to use a resource that requires a TOS they have not accepted.", + "Quota information is not available to client requests (e.g:\nregions.list).", + "The user attempted to use a resource that requires a TOS they have not\naccepted.", "Warning that a resource is in use.", - "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "One or more of the resources set to auto-delete could not be deleted\nbecause they were in use.", "When a resource schema validation is ignored.", - "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", + "Instance template used in instance group manager is valid as such, but\nits application does not make a lot of sense, because it allows only\nsingle instance in instance group.", "When undeclared properties in the schema are present", "A given scope cannot be reached." ], "type": "string" }, "data": { - "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", + "description": "[Output Only] Metadata about this warning in key:\nvalue format. For example:\n\n\"data\": [\n {\n \"key\": \"scope\",\n \"value\": \"zones/us-east1-d\"\n }", "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).", + "description": "[Output Only] A key that provides more detail on the warning being\nreturned. For example, for warnings where there are no results in a list\nrequest for a particular zone, this key might be scope and\nthe key value might be the zone name. Other examples might be a key\nindicating a deprecated resource and a suggested replacement, or a\nwarning about invalid network settings (for example, if an instance\nattempts to perform IP forwarding but is not enabled for IP forwarding).", "type": "string" }, "value": { @@ -68485,154 +96478,31 @@ }, "type": "object" }, - "ResourcePolicyDailyCycle": { - "description": "Time window specified for daily operations.", - "id": "ResourcePolicyDailyCycle", - "properties": { - "daysInCycle": { - "description": "Defines a schedule with units measured in days. The value determines how many days pass between the start of each cycle.", - "format": "int32", - "type": "integer" - }, - "duration": { - "description": "[Output only] A predetermined duration for the window, automatically chosen to be the smallest possible in the given scenario.", - "type": "string" - }, - "startTime": { - "description": "Start time of the window. This must be in UTC format that resolves to one of 00:00, 04:00, 08:00, 12:00, 16:00, or 20:00. For example, both 13:00-5 and 08:00 are valid.", - "type": "string" - } - }, - "type": "object" - }, - "ResourcePolicyDiskConsistencyGroupPolicy": { - "description": "Resource policy for disk consistency groups.", - "id": "ResourcePolicyDiskConsistencyGroupPolicy", - "properties": {}, - "type": "object" - }, - "ResourcePolicyGroupPlacementPolicy": { - "description": "A GroupPlacementPolicy specifies resource placement configuration. It specifies the failure bucket separation", - "id": "ResourcePolicyGroupPlacementPolicy", - "properties": { - "availabilityDomainCount": { - "description": "The number of availability domains to spread instances across. If two instances are in different availability domain, they are not in the same low latency network.", - "format": "int32", - "type": "integer" - }, - "collocation": { - "description": "Specifies network collocation", - "enum": [ - "COLLOCATED", - "UNSPECIFIED_COLLOCATION" - ], - "enumDescriptions": [ - "", - "" - ], - "type": "string" - }, - "vmCount": { - "description": "Number of VMs in this placement group. Google does not recommend that you use this field unless you use a compact policy and you want your policy to work only if it contains this exact number of VMs.", - "format": "int32", - "type": "integer" - } - }, - "type": "object" - }, - "ResourcePolicyHourlyCycle": { - "description": "Time window specified for hourly operations.", - "id": "ResourcePolicyHourlyCycle", - "properties": { - "duration": { - "description": "[Output only] Duration of the time window, automatically chosen to be smallest possible in the given scenario.", - "type": "string" - }, - "hoursInCycle": { - "description": "Defines a schedule with units measured in hours. The value determines how many hours pass between the start of each cycle.", - "format": "int32", - "type": "integer" - }, - "startTime": { - "description": "Time within the window to start the operations. It must be in format \"HH:MM\", where HH : [00-23] and MM : [00-00] GMT.", - "type": "string" - } - }, - "type": "object" - }, - "ResourcePolicyInstanceSchedulePolicy": { - "description": "An InstanceSchedulePolicy specifies when and how frequent certain operations are performed on the instance.", - "id": "ResourcePolicyInstanceSchedulePolicy", - "properties": { - "expirationTime": { - "description": "The expiration time of the schedule. The timestamp is an RFC3339 string.", - "type": "string" - }, - "startTime": { - "description": "The start time of the schedule. The timestamp is an RFC3339 string.", - "type": "string" - }, - "timeZone": { - "description": "Specifies the time zone to be used in interpreting Schedule.schedule. The value of this field must be a time zone name from the tz database: https://wikipedia.org/wiki/Tz_database.", - "type": "string" - }, - "vmStartSchedule": { - "$ref": "ResourcePolicyInstanceSchedulePolicySchedule", - "description": "Specifies the schedule for starting instances." - }, - "vmStopSchedule": { - "$ref": "ResourcePolicyInstanceSchedulePolicySchedule", - "description": "Specifies the schedule for stopping instances." - } - }, - "type": "object" - }, - "ResourcePolicyInstanceSchedulePolicySchedule": { - "description": "Schedule for an instance operation.", - "id": "ResourcePolicyInstanceSchedulePolicySchedule", + "RoutersPreviewResponse": { + "id": "RoutersPreviewResponse", "properties": { - "schedule": { - "description": "Specifies the frequency for the operation, using the unix-cron format.", - "type": "string" + "resource": { + "$ref": "Router", + "description": "Preview of given router." } }, "type": "object" }, - "ResourcePolicyList": { - "id": "ResourcePolicyList", + "RoutersScopedList": { + "id": "RoutersScopedList", "properties": { - "etag": { - "type": "string" - }, - "id": { - "description": "[Output Only] The unique identifier for the resource. This identifier is defined by the server.", - "type": "string" - }, - "items": { - "description": "[Output Only] A list of ResourcePolicy resources.", + "routers": { + "description": "A list of routers contained in this scope.", "items": { - "$ref": "ResourcePolicy" + "$ref": "Router" }, "type": "array" }, - "kind": { - "default": "compute#resourcePolicyList", - "description": "[Output Only] Type of resource.Always compute#resourcePoliciesList for listsof resourcePolicies", - "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" - }, - "selfLink": { - "description": "[Output Only] Server-defined URL for this resource.", - "type": "string" - }, "warning": { - "description": "[Output Only] Informational warning message.", + "description": "Informational warning which replaces the list of routers when\nthe list is empty.", "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.", + "description": "[Output Only] A warning code, if applicable. For example, Compute\nEngine returns NO_RESULTS_ON_PAGE if there\nare no results in the response.", "enum": [ "CLEANUP_FAILED", "DEPRECATED_RESOURCE_USED", @@ -68655,6 +96525,7 @@ "NOT_CRITICAL_ERROR", "NO_RESULTS_ON_PAGE", "PARTIAL_SUCCESS", + "QUOTA_INFO_UNAVAILABLE", "REQUIRED_TOS_AGREEMENT", "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", "RESOURCE_NOT_DELETED", @@ -68691,46 +96562,48 @@ false, false, false, + false, false ], "enumDescriptions": [ - "Warning about failed cleanup of transient changes made by a failed operation.", + "Warning about failed cleanup of transient changes made by a failed\noperation.", "A link to a deprecated resource was created.", - "When deploying and at least one of the resources has a type marked as deprecated", + "When deploying and at least one of the resources has a type marked as\ndeprecated", "The user created a boot disk that is larger than image size.", - "When deploying and at least one of the resources has a type marked as experimental", + "When deploying and at least one of the resources has a type marked as\nexperimental", "Warning that is present in an external api call", - "Warning that value of a field has been overridden. Deprecated unused field.", + "Warning that value of a field has been overridden.\nDeprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", - "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is\nnot of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", - "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", + "Resource can't be retrieved due to list overhead quota exceed\nwhich captures the amount of resources filtered out by\nuser-defined list filter.", "A resource depends on a missing type", - "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's nextHopIp address is not assigned to an instance on the\nnetwork.", "The route's next hop instance cannot ip forward.", - "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not have an\nipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", - "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that is not on the\nsame network as the route.", "The route's next hop instance does not have a status of RUNNING.", - "Error which is not critical. We decided to continue the process despite the mentioned error.", + "Error which is not critical. We decided to continue the process despite\nthe mentioned error.", "No results are present on a particular list page.", "Success is reported, but some results may be missing due to errors", - "The user attempted to use a resource that requires a TOS they have not accepted.", + "Quota information is not available to client requests (e.g:\nregions.list).", + "The user attempted to use a resource that requires a TOS they have not\naccepted.", "Warning that a resource is in use.", - "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "One or more of the resources set to auto-delete could not be deleted\nbecause they were in use.", "When a resource schema validation is ignored.", - "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", + "Instance template used in instance group manager is valid as such, but\nits application does not make a lot of sense, because it allows only\nsingle instance in instance group.", "When undeclared properties in the schema are present", "A given scope cannot be reached." ], "type": "string" }, "data": { - "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", + "description": "[Output Only] Metadata about this warning in key:\nvalue format. For example:\n\n\"data\": [\n {\n \"key\": \"scope\",\n \"value\": \"zones/us-east1-d\"\n }", "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).", + "description": "[Output Only] A key that provides more detail on the warning being\nreturned. For example, for warnings where there are no results in a list\nrequest for a particular zone, this key might be scope and\nthe key value might be the zone name. Other examples might be a key\nindicating a deprecated resource and a suggested replacement, or a\nwarning about invalid network settings (for example, if an instance\nattempts to perform IP forwarding but is not enabled for IP forwarding).", "type": "string" }, "value": { @@ -68752,524 +96625,464 @@ }, "type": "object" }, - "ResourcePolicyResourceStatus": { - "description": "Contains output only fields. Use this sub-message for all output fields set on ResourcePolicy. The internal structure of this \"status\" field should mimic the structure of ResourcePolicy proto specification.", - "id": "ResourcePolicyResourceStatus", - "properties": { - "instanceSchedulePolicy": { - "$ref": "ResourcePolicyResourceStatusInstanceSchedulePolicyStatus", - "description": "[Output Only] Specifies a set of output values reffering to the instance_schedule_policy system status. This field should have the same name as corresponding policy field." - } - }, - "type": "object" - }, - "ResourcePolicyResourceStatusInstanceSchedulePolicyStatus": { - "id": "ResourcePolicyResourceStatusInstanceSchedulePolicyStatus", + "SSLHealthCheck": { + "id": "SSLHealthCheck", "properties": { - "lastRunStartTime": { - "description": "[Output Only] The last time the schedule successfully ran. The timestamp is an RFC3339 string.", - "type": "string" + "port": { + "description": "The TCP port number to which the health check prober sends packets. The\ndefault value is 443. Valid values are 1 through65535.", + "format": "int32", + "type": "integer" }, - "nextRunStartTime": { - "description": "[Output Only] The next time the schedule is planned to run. The actual time might be slightly different. The timestamp is an RFC3339 string.", + "portName": { + "description": "Not supported.", "type": "string" - } - }, - "type": "object" - }, - "ResourcePolicySnapshotSchedulePolicy": { - "description": "A snapshot schedule policy specifies when and how frequently snapshots are to be created for the target disk. Also specifies how many and how long these scheduled snapshots should be retained.", - "id": "ResourcePolicySnapshotSchedulePolicy", - "properties": { - "retentionPolicy": { - "$ref": "ResourcePolicySnapshotSchedulePolicyRetentionPolicy", - "description": "Retention policy applied to snapshots created by this resource policy." - }, - "schedule": { - "$ref": "ResourcePolicySnapshotSchedulePolicySchedule", - "description": "A Vm Maintenance Policy specifies what kind of infrastructure maintenance we are allowed to perform on this VM and when. Schedule that is applied to disks covered by this policy." }, - "snapshotProperties": { - "$ref": "ResourcePolicySnapshotSchedulePolicySnapshotProperties", - "description": "Properties with which snapshots are created such as labels, encryption keys." - } - }, - "type": "object" - }, - "ResourcePolicySnapshotSchedulePolicyRetentionPolicy": { - "description": "Policy for retention of scheduled snapshots.", - "id": "ResourcePolicySnapshotSchedulePolicyRetentionPolicy", - "properties": { - "maxRetentionDays": { - "description": "Maximum age of the snapshot that is allowed to be kept.", - "format": "int32", - "type": "integer" + "portSpecification": { + "description": "Specifies how a port is selected for health checking. Can be one of the\nfollowing values: \nUSE_FIXED_PORT: Specifies a port number explicitly using theport field in the health check. Supported by backend services\nfor passthrough load balancers and backend services for proxy load\nbalancers. Not supported by target pools. The health check supports all\nbackends supported by the backend service provided the backend can be\nhealth checked. For example, GCE_VM_IP network endpoint\ngroups, GCE_VM_IP_PORT network endpoint groups, and instance\ngroup backends. \n USE_NAMED_PORT: Not supported. \nUSE_SERVING_PORT: Provides an indirect method of specifying\nthe health check port by referring to the backend service. Only supported\nby backend services for proxy load balancers. Not supported by target\npools. Not supported by backend services for passthrough load balancers.\nSupports all backends that can be health checked; for example,GCE_VM_IP_PORT network endpoint groups and instance group\nbackends.\n\nFor GCE_VM_IP_PORT network endpoint group backends, the health\ncheck uses the port number specified for each endpoint in the network\nendpoint group. For instance group backends, the health check uses the\nport number determined by looking up the backend service's named port in\nthe instance group's list of named ports.", + "enum": [ + "USE_FIXED_PORT", + "USE_NAMED_PORT", + "USE_SERVING_PORT" + ], + "enumDescriptions": [ + "The port number in the health check's port is used for health\nchecking. Applies to network endpoint group and instance group backends.", + "Not supported.", + "For network endpoint group backends, the health check uses the port number\nspecified on each endpoint in the network endpoint group. For instance\ngroup backends, the health check uses the port number specified for the\nbackend service's named port defined in the instance group's named ports." + ], + "type": "string" }, - "onSourceDiskDelete": { - "description": "Specifies the behavior to apply to scheduled snapshots when the source disk is deleted.", + "proxyHeader": { + "description": "Specifies the type of proxy header to append before sending data to the\nbackend, either NONE or PROXY_V1. The default\nis NONE.", "enum": [ - "APPLY_RETENTION_POLICY", - "KEEP_AUTO_SNAPSHOTS", - "UNSPECIFIED_ON_SOURCE_DISK_DELETE" + "NONE", + "PROXY_V1" ], "enumDescriptions": [ - "", "", "" ], "type": "string" - } - }, - "type": "object" - }, - "ResourcePolicySnapshotSchedulePolicySchedule": { - "description": "A schedule for disks where the schedueled operations are performed.", - "id": "ResourcePolicySnapshotSchedulePolicySchedule", - "properties": { - "dailySchedule": { - "$ref": "ResourcePolicyDailyCycle" }, - "hourlySchedule": { - "$ref": "ResourcePolicyHourlyCycle" + "request": { + "description": "Instructs the health check prober to send this exact ASCII string, up to\n1024 bytes in length, after establishing the TCP connection and SSL\nhandshake.", + "type": "string" }, - "weeklySchedule": { - "$ref": "ResourcePolicyWeeklyCycle" + "response": { + "description": "Creates a content-based SSL health check. In addition to establishing a\nTCP connection and the TLS handshake, you can configure the health check to\npass only when the backend sends this exact response ASCII string, up to\n1024 bytes in length. For details, see:\nhttps://cloud.google.com/load-balancing/docs/health-check-concepts#criteria-protocol-ssl-tcp", + "type": "string" } }, "type": "object" }, - "ResourcePolicySnapshotSchedulePolicySnapshotProperties": { - "description": "Specified snapshot properties for scheduled snapshots created by this policy.", - "id": "ResourcePolicySnapshotSchedulePolicySnapshotProperties", + "SavedAttachedDisk": { + "description": "DEPRECATED: Please use compute#savedDisk instead.\nAn instance-attached disk resource.", + "id": "SavedAttachedDisk", "properties": { - "chainName": { - "description": "Chain name that the snapshot is created in.", - "type": "string" + "autoDelete": { + "description": "Specifies whether the disk will be auto-deleted when the instance is\ndeleted (but not when the disk is detached from the instance).", + "type": "boolean" }, - "guestFlush": { - "description": "Indication to perform a 'guest aware' snapshot.", + "boot": { + "description": "Indicates that this is a boot disk. The virtual machine will use the first\npartition of the disk for its root filesystem.", "type": "boolean" }, - "labels": { - "additionalProperties": { - "type": "string" - }, - "description": "Labels to apply to scheduled snapshots. These can be later modified by the setLabels method. Label values may be empty.", - "type": "object" + "deviceName": { + "description": "Specifies the name of the disk attached to the source instance.", + "type": "string" }, - "storageLocations": { - "description": "Cloud Storage bucket storage location of the auto snapshot (regional or multi-regional).", + "diskEncryptionKey": { + "$ref": "CustomerEncryptionKey", + "description": "The encryption key for the disk." + }, + "diskSizeGb": { + "description": "The size of the disk in base-2 GB.", + "format": "int64", + "type": "string" + }, + "diskType": { + "description": "Output only. [Output Only] URL of the disk type resource. For example:projects/project/zones/zone/diskTypes/pd-standard or\npd-ssd", + "readOnly": true, + "type": "string" + }, + "guestOsFeatures": { + "description": "A list of features to enable on the guest operating system. Applicable only\nfor bootable images. Read\nEnabling guest operating system features to see a list of available\noptions.", "items": { - "type": "string" + "$ref": "GuestOsFeature" }, "type": "array" - } - }, - "type": "object" - }, - "ResourcePolicyWeeklyCycle": { - "description": "Time window specified for weekly operations.", - "id": "ResourcePolicyWeeklyCycle", - "properties": { - "dayOfWeeks": { - "description": "Up to 7 intervals/windows, one for each day of the week.", + }, + "index": { + "description": "Output only. Specifies zero-based index of the disk that is attached to the source\ninstance.", + "format": "int32", + "readOnly": true, + "type": "integer" + }, + "interface": { + "description": "Specifies the disk interface to use for attaching this disk, which is\neither SCSI or NVME.", + "enum": [ + "NVME", + "SCSI" + ], + "enumDescriptions": [ + "", + "" + ], + "type": "string" + }, + "kind": { + "default": "compute#savedAttachedDisk", + "description": "Output only. [Output Only] Type of the resource. Alwayscompute#attachedDisk for attached disks.", + "readOnly": true, + "type": "string" + }, + "licenses": { + "description": "Output only. [Output Only] Any valid publicly visible licenses.", "items": { - "$ref": "ResourcePolicyWeeklyCycleDayOfWeek" + "type": "string" }, + "readOnly": true, "type": "array" - } - }, - "type": "object" - }, - "ResourcePolicyWeeklyCycleDayOfWeek": { - "id": "ResourcePolicyWeeklyCycleDayOfWeek", - "properties": { - "day": { - "description": "Defines a schedule that runs on specific days of the week. Specify one or more days. The following options are available: MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, SUNDAY.", + }, + "mode": { + "description": "The mode in which this disk is attached to the source instance, eitherREAD_WRITE or READ_ONLY.", "enum": [ - "FRIDAY", - "INVALID", - "MONDAY", - "SATURDAY", - "SUNDAY", - "THURSDAY", - "TUESDAY", - "WEDNESDAY" + "READ_ONLY", + "READ_WRITE" ], "enumDescriptions": [ - "", - "", - "", - "", - "", - "", - "", - "" + "Attaches this disk in read-only mode. Multiple virtual machines can use\na disk in read-only mode at a time.", + "*[Default]* Attaches this disk in read-write mode. Only one\nvirtual machine at a time can be attached to a disk in read-write mode." ], "type": "string" }, - "duration": { - "description": "[Output only] Duration of the time window, automatically chosen to be smallest possible in the given scenario.", + "source": { + "description": "Specifies a URL of the disk attached to the source instance.", "type": "string" }, - "startTime": { - "description": "Time within the window to start the operations. It must be in format \"HH:MM\", where HH : [00-23] and MM : [00-00] GMT.", + "storageBytes": { + "description": "Output only. [Output Only] A size of the storage used by the disk's snapshot by this\nmachine image.", + "format": "int64", + "readOnly": true, "type": "string" - } - }, - "type": "object" - }, - "ResourceStatus": { - "description": "Contains output only fields. Use this sub-message for actual values set on Instance attributes as compared to the value requested by the user (intent) in their instance CRUD calls.", - "id": "ResourceStatus", - "properties": { - "physicalHost": { - "description": "[Output Only] An opaque ID of the host on which the VM is running.", + }, + "storageBytesStatus": { + "description": "Output only. [Output Only] An indicator whether storageBytes is in a\nstable state or it is being adjusted as a result of shared storage\nreallocation. This status can either be UPDATING, meaning\nthe size of the snapshot is being updated, or UP_TO_DATE,\nmeaning the size of the snapshot is up-to-date.", + "enum": [ + "UPDATING", + "UP_TO_DATE" + ], + "enumDescriptions": [ + "", + "" + ], + "readOnly": true, "type": "string" }, - "upcomingMaintenance": { - "$ref": "UpcomingMaintenance" + "type": { + "description": "Specifies the type of the attached disk, either SCRATCH orPERSISTENT.", + "enum": [ + "PERSISTENT", + "SCRATCH" + ], + "enumDescriptions": [ + "", + "" + ], + "type": "string" } }, "type": "object" }, - "Route": { - "description": "Represents a Route resource. A route defines a path from VM instances in the VPC network to a specific destination. This destination can be inside or outside the VPC network. For more information, read the Routes overview.", - "id": "Route", + "SavedDisk": { + "description": "An instance-attached disk resource.", + "id": "SavedDisk", "properties": { - "asPaths": { - "description": "[Output Only] AS path.", - "items": { - "$ref": "RouteAsPath" - }, - "type": "array" - }, - "creationTimestamp": { - "description": "[Output Only] Creation timestamp in RFC3339 text format.", + "architecture": { + "description": "Output only. [Output Only] The architecture of the attached disk.", + "enum": [ + "ARCHITECTURE_UNSPECIFIED", + "ARM64", + "X86_64" + ], + "enumDescriptions": [ + "Default value indicating Architecture is not set.", + "Machines with architecture ARM64", + "Machines with architecture X86_64" + ], + "readOnly": true, "type": "string" }, - "description": { - "description": "An optional description of this resource. Provide this field when you create the resource.", + "kind": { + "default": "compute#savedDisk", + "description": "Output only. [Output Only] Type of the resource. Always compute#savedDisk\nfor attached disks.", + "readOnly": true, "type": "string" }, - "destRange": { - "annotations": { - "required": [ - "compute.routes.insert" - ] - }, - "description": "The destination range of outgoing packets that this route applies to. Both IPv4 and IPv6 are supported. Must specify an IPv4 range (e.g. 192.0.2.0/24) or an IPv6 range in RFC 4291 format (e.g. 2001:db8::/32). IPv6 range will be displayed using RFC 5952 compressed format.", + "sourceDisk": { + "description": "Output only. Specifies a URL of the disk attached to the source instance.", + "readOnly": true, "type": "string" }, - "id": { - "description": "[Output Only] The unique identifier for the resource. This identifier is defined by the server.", - "format": "uint64", + "storageBytes": { + "description": "Output only. [Output Only] Size of the individual disk snapshot used by this machine\nimage.", + "format": "int64", + "readOnly": true, "type": "string" }, - "kind": { - "default": "compute#route", - "description": "[Output Only] Type of this resource. Always compute#routes for Route resources.", + "storageBytesStatus": { + "description": "Output only. [Output Only] An indicator whether storageBytes is in a\nstable state or it is being adjusted as a result of shared storage\nreallocation. This status can either be UPDATING, meaning\nthe size of the snapshot is being updated, or UP_TO_DATE,\nmeaning the size of the snapshot is up-to-date.", + "enum": [ + "UPDATING", + "UP_TO_DATE" + ], + "enumDescriptions": [ + "", + "" + ], + "readOnly": true, "type": "string" - }, - "name": { - "annotations": { - "required": [ - "compute.routes.insert" - ] - }, - "description": "Name of the resource. Provided by the client when the resource is created. The name must be 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters long and match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?`. The first character must be a lowercase letter, and all following characters (except for the last character) must be a dash, lowercase letter, or digit. The last character must be a lowercase letter or digit.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + } + }, + "type": "object" + }, + "ScalingScheduleStatus": { + "id": "ScalingScheduleStatus", + "properties": { + "lastStartTime": { + "description": "[Output Only] The last time the scaling schedule became active.\nNote: this is a timestamp when a schedule actually became active, not when\nit was planned to do so.\nThe timestamp is in RFC3339\ntext format.", "type": "string" }, - "network": { - "annotations": { - "required": [ - "compute.routes.insert" - ] - }, - "description": "Fully-qualified URL of the network that this route applies to.", + "nextStartTime": { + "description": "[Output Only] The next time the scaling schedule is to become active.\nNote: this is a timestamp when a schedule is planned to run, but the actual\ntime might be slightly different.\nThe timestamp is in RFC3339\ntext format.", "type": "string" }, - "nextHopGateway": { - "description": "The URL to a gateway that should handle matching packets. You can only specify the internet gateway using a full or partial valid URL: projects/ project/global/gateways/default-internet-gateway", + "state": { + "description": "[Output Only] The current state of a scaling schedule.", + "enum": [ + "ACTIVE", + "DISABLED", + "OBSOLETE", + "READY" + ], + "enumDescriptions": [ + "The current autoscaling recommendation is influenced by this scaling\nschedule.", + "This scaling schedule has been disabled by the user.", + "This scaling schedule will never become active again.", + "The current autoscaling recommendation is not influenced by this scaling\nschedule." + ], "type": "string" + } + }, + "type": "object" + }, + "Scheduling": { + "description": "Sets the scheduling options for an Instance.", + "id": "Scheduling", + "properties": { + "automaticRestart": { + "description": "Specifies whether the instance should be automatically restarted if it is\nterminated by Compute Engine (not terminated by a user). You can only set\nthe automatic restart option for standard instances.Preemptible instances\ncannot be automatically restarted.\n\nBy default, this is set to true so an instance is\nautomatically restarted if it is terminated by Compute Engine.", + "type": "boolean" }, - "nextHopHub": { - "description": "[Output Only] The full resource name of the Network Connectivity Center hub that will handle matching packets.", - "type": "string" + "availabilityDomain": { + "description": "Specifies the availability domain to place the instance in. The value\nmust be a number between 1 and the number of availability domains\nspecified in the spread placement policy attached to the instance.", + "format": "int32", + "type": "integer" }, - "nextHopIlb": { - "description": "The URL to a forwarding rule of type loadBalancingScheme=INTERNAL that should handle matching packets or the IP address of the forwarding Rule. For example, the following are all valid URLs: - 10.128.0.56 - https://www.googleapis.com/compute/v1/projects/project/regions/region /forwardingRules/forwardingRule - regions/region/forwardingRules/forwardingRule ", - "type": "string" + "hostErrorTimeoutSeconds": { + "description": "Specify the time in seconds for host error detection, the value must be\nwithin the range of [90, 330] with the increment of 30, if unset, the\ndefault behavior of host error recovery will be used.", + "format": "int32", + "type": "integer" }, - "nextHopInstance": { - "description": "The URL to an instance that should handle matching packets. You can specify this as a full or partial URL. For example: https://www.googleapis.com/compute/v1/projects/project/zones/zone/instances/", + "instanceTerminationAction": { + "description": "Specifies the termination action for the instance.", + "enum": [ + "DELETE", + "INSTANCE_TERMINATION_ACTION_UNSPECIFIED", + "STOP" + ], + "enumDescriptions": [ + "Delete the VM.", + "Default value. This value is unused.", + "Stop the VM without storing in-memory content. default action." + ], "type": "string" }, - "nextHopIp": { - "description": "The network IP address of an instance that should handle matching packets. Both IPv6 address and IPv4 addresses are supported. Must specify an IPv4 address in dot-decimal notation (e.g. 192.0.2.99) or an IPv6 address in RFC 4291 format (e.g. 2001:db8::2d9:51:0:0 or 2001:db8:0:0:2d9:51:0:0). IPv6 addresses will be displayed using RFC 5952 compressed format (e.g. 2001:db8::2d9:51:0:0). Should never be an IPv4-mapped IPv6 address.", - "type": "string" + "localSsdRecoveryTimeout": { + "$ref": "Duration", + "description": "Specifies the maximum amount of time a Local Ssd Vm should wait while\nrecovery of the Local Ssd state is attempted. Its value should be in\nbetween 0 and 168 hours with hour granularity and the default value being 1\nhour." }, - "nextHopNetwork": { - "description": "The URL of the local network if it should handle matching packets.", + "locationHint": { + "description": "An opaque location hint used to place the instance close to other\nresources.\nThis field is for use by internal tools that use the public API.", "type": "string" }, - "nextHopPeering": { - "description": "[Output Only] The network peering name that should handle matching packets, which should conform to RFC1035.", - "type": "string" + "maxRunDuration": { + "$ref": "Duration", + "description": "Specifies the max run duration for the given instance. If specified,\nthe instance termination action will be performed at the end of the run\nduration." }, - "nextHopVpnTunnel": { - "description": "The URL to a VpnTunnel that should handle matching packets.", - "type": "string" + "minNodeCpus": { + "description": "The minimum number of virtual CPUs this instance will consume when running\non a sole-tenant node.", + "format": "int32", + "type": "integer" }, - "priority": { - "annotations": { - "required": [ - "compute.routes.insert" - ] + "nodeAffinities": { + "description": "A set of node affinity and anti-affinity configurations. Refer toConfiguring node\naffinity for more information.\nOverrides reservationAffinity.", + "items": { + "$ref": "SchedulingNodeAffinity" }, - "description": "The priority of this route. Priority is used to break ties in cases where there is more than one matching route of equal prefix length. In cases where multiple routes have equal prefix length, the one with the lowest-numbered priority value wins. The default value is `1000`. The priority value must be from `0` to `65535`, inclusive.", - "format": "uint32", - "type": "integer" + "type": "array" }, - "routeStatus": { - "description": "[Output only] The status of the route.", + "onHostMaintenance": { + "description": "Defines the maintenance behavior for this instance. For standard instances,\nthe default behavior is MIGRATE. Forpreemptible instances,\nthe default and only possible behavior is TERMINATE. For more\ninformation, see\n Set\n VM host maintenance policy.", "enum": [ - "ACTIVE", - "DROPPED", - "INACTIVE", - "PENDING" + "MIGRATE", + "TERMINATE" ], "enumDescriptions": [ - "This route is processed and active.", - "The route is dropped due to the VPC exceeding the dynamic route limit. For dynamic route limit, please refer to the Learned route example", - "This route is processed but inactive due to failure from the backend. The backend may have rejected the route", - "This route is being processed internally. The status will change once processed." + "*[Default]* Allows Compute Engine to automatically migrate instances\nout of the way of maintenance events.", + "Tells Compute Engine to terminate and (optionally) restart the instance\naway from the maintenance activity. If you would like your instance to be\nrestarted, set the automaticRestart flag to true. Your\ninstance may be restarted more than once, and it may be restarted outside\nthe window of maintenance events." ], "type": "string" }, - "routeType": { - "description": "[Output Only] The type of this route, which can be one of the following values: - 'TRANSIT' for a transit route that this router learned from another Cloud Router and will readvertise to one of its BGP peers - 'SUBNET' for a route from a subnet of the VPC - 'BGP' for a route learned from a BGP peer of this router - 'STATIC' for a static route", + "onInstanceStopAction": { + "$ref": "SchedulingOnInstanceStopAction" + }, + "preemptible": { + "description": "Defines whether the instance is preemptible. This can only be set during\ninstance creation or while the instance isstopped and\ntherefore, in a `TERMINATED` state. SeeInstance Life\nCycle for more information on the possible instance states.", + "type": "boolean" + }, + "provisioningModel": { + "description": "Specifies the provisioning model of the instance.", "enum": [ - "BGP", - "STATIC", - "SUBNET", - "TRANSIT" + "FLEX_START", + "RESERVATION_BOUND", + "SPOT", + "STANDARD" ], "enumDescriptions": [ - "", - "", - "", - "" + "Instance is provisioned using the Flex Start provisioning model and\nhas a limited runtime.", + "Bound to the lifecycle of the reservation in which it is provisioned.", + "Heavily discounted, no guaranteed runtime.", + "Standard provisioning with user controlled runtime, no discounts." ], "type": "string" }, - "selfLink": { - "description": "[Output Only] Server-defined fully-qualified URL for this resource.", - "type": "string" - }, - "tags": { - "annotations": { - "required": [ - "compute.routes.insert" - ] - }, - "description": "A list of instance tags to which this route applies.", - "items": { - "type": "string" - }, - "type": "array" + "skipGuestOsShutdown": { + "description": "Default is false and there will be 120 seconds between GCE ACPI G2 Soft\nOff and ACPI G3 Mechanical\nOff for Standard VMs and 30 seconds for Spot VMs.", + "type": "boolean" }, - "warnings": { - "description": "[Output Only] If potential misconfigurations are detected for this route, this field will be populated with warning messages.", - "items": { - "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", - "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", - "LARGE_DEPLOYMENT_WARNING", - "LIST_OVERHEAD_QUOTA_EXCEED", - "MISSING_TYPE_DEPENDENCY", - "NEXT_HOP_ADDRESS_NOT_ASSIGNED", - "NEXT_HOP_CANNOT_IP_FORWARD", - "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", - "NEXT_HOP_INSTANCE_NOT_FOUND", - "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", - "NEXT_HOP_NOT_RUNNING", - "NOT_CRITICAL_ERROR", - "NO_RESULTS_ON_PAGE", - "PARTIAL_SUCCESS", - "REQUIRED_TOS_AGREEMENT", - "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", - "RESOURCE_NOT_DELETED", - "SCHEMA_VALIDATION_IGNORED", - "SINGLE_INSTANCE_PROPERTY_TEMPLATE", - "UNDECLARED_PROPERTIES", - "UNREACHABLE" - ], - "enumDeprecated": [ - false, - false, - false, - false, - false, - false, - true, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false - ], - "enumDescriptions": [ - "Warning about failed cleanup of transient changes made by a failed operation.", - "A link to a deprecated resource was created.", - "When deploying and at least one of the resources has a type marked as deprecated", - "The user created a boot disk that is larger than image size.", - "When deploying and at least one of the resources has a type marked as experimental", - "Warning that is present in an external api call", - "Warning that value of a field has been overridden. Deprecated unused field.", - "The operation involved use of an injected kernel, which is deprecated.", - "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", - "When deploying a deployment with a exceedingly large number of resources", - "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", - "A resource depends on a missing type", - "The route's nextHopIp address is not assigned to an instance on the network.", - "The route's next hop instance cannot ip forward.", - "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", - "The route's nextHopInstance URL refers to an instance that does not exist.", - "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", - "The route's next hop instance does not have a status of RUNNING.", - "Error which is not critical. We decided to continue the process despite the mentioned error.", - "No results are present on a particular list page.", - "Success is reported, but some results may be missing due to errors", - "The user attempted to use a resource that requires a TOS they have not accepted.", - "Warning that a resource is in use.", - "One or more of the resources set to auto-delete could not be deleted because they were in use.", - "When a resource schema validation is ignored.", - "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", - "When undeclared properties in the schema are present", - "A given scope cannot be reached." - ], - "type": "string" - }, - "data": { - "description": "[Output Only] Metadata about this warning in key: value format. For example: \"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": "array" + "terminationTime": { + "description": "Specifies the timestamp, when the instance will be terminated, inRFC3339 text format. If specified, the instance\ntermination action will be performed at the termination time.", + "type": "string" } }, "type": "object" }, - "RouteAsPath": { - "id": "RouteAsPath", + "SchedulingNodeAffinity": { + "description": "Node Affinity: the configuration of desired nodes onto which this Instance\n could be scheduled.", + "id": "SchedulingNodeAffinity", "properties": { - "asLists": { - "description": "[Output Only] The AS numbers of the AS Path.", - "items": { - "format": "uint32", - "type": "integer" - }, - "type": "array" + "key": { + "description": "Corresponds to the label key of Node resource.", + "type": "string" }, - "pathSegmentType": { - "description": "[Output Only] The type of the AS Path, which can be one of the following values: - 'AS_SET': unordered set of autonomous systems that the route in has traversed - 'AS_SEQUENCE': ordered set of autonomous systems that the route has traversed - 'AS_CONFED_SEQUENCE': ordered set of Member Autonomous Systems in the local confederation that the route has traversed - 'AS_CONFED_SET': unordered set of Member Autonomous Systems in the local confederation that the route has traversed ", + "operator": { + "description": "Defines the operation of node selection. Valid operators areIN for affinity and NOT_IN for anti-affinity.", "enum": [ - "AS_CONFED_SEQUENCE", - "AS_CONFED_SET", - "AS_SEQUENCE", - "AS_SET" + "IN", + "NOT_IN", + "OPERATOR_UNSPECIFIED" ], "enumDescriptions": [ - "", - "", - "", + "Requires Compute Engine to seek for matched nodes.", + "Requires Compute Engine to avoid certain nodes.", "" ], "type": "string" + }, + "values": { + "description": "Corresponds to the label values of Node resource.", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "SchedulingOnInstanceStopAction": { + "description": "Defines the behaviour for instances with the instance_termination_actionSTOP.", + "id": "SchedulingOnInstanceStopAction", + "properties": { + "discardLocalSsd": { + "description": "If true, the contents of any attached Local SSD disks will be discarded\nelse, the Local SSD data will be preserved when the instance is stopped\nat the end of the run duration/termination time.", + "type": "boolean" + } + }, + "type": "object" + }, + "Screenshot": { + "description": "An instance's screenshot.", + "id": "Screenshot", + "properties": { + "contents": { + "description": "[Output Only] The Base64-encoded screenshot data.", + "type": "string" + }, + "kind": { + "default": "compute#screenshot", + "description": "Output only. [Output Only] Type of the resource. Always compute#screenshot\nfor the screenshots.", + "readOnly": true, + "type": "string" } }, "type": "object" }, - "RouteList": { - "description": "Contains a list of Route resources.", - "id": "RouteList", + "SecurityPoliciesAggregatedList": { + "id": "SecurityPoliciesAggregatedList", "properties": { + "etag": { + "type": "string" + }, "id": { "description": "[Output Only] Unique identifier for the resource; defined by the server.", "type": "string" }, "items": { - "description": "A list of Route resources.", - "items": { - "$ref": "Route" + "additionalProperties": { + "$ref": "SecurityPoliciesScopedList", + "description": "Name of the scope containing this set of security policies." }, - "type": "array" + "description": "A list of SecurityPoliciesScopedList resources.", + "type": "object" }, "kind": { - "default": "compute#routeList", - "description": "Type of resource.", + "default": "compute#securityPoliciesAggregatedList", + "description": "Output only. [Output Only] Type of resource. Alwayscompute#securityPolicyAggregatedList for lists of Security\nPolicies.", + "readOnly": true, "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.", + "description": "[Output Only] This token allows you to get the next page of results for\nlist requests. If the number of results is larger thanmaxResults, use the nextPageToken as a value for\nthe query parameter pageToken in the next list request.\nSubsequent list requests will have their own nextPageToken to\ncontinue paging through the results.", "type": "string" }, "selfLink": { - "description": "[Output Only] Server-defined URL for this resource.", + "description": "Output only. [Output Only] Server-defined URL for this resource.", + "readOnly": true, "type": "string" }, + "unreachables": { + "description": "Output only. [Output Only] Unreachable resources.", + "items": { + "type": "string" + }, + "readOnly": true, + "type": "array" + }, "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.", + "description": "[Output Only] A warning code, if applicable. For example, Compute\nEngine returns NO_RESULTS_ON_PAGE if there\nare no results in the response.", "enum": [ "CLEANUP_FAILED", "DEPRECATED_RESOURCE_USED", @@ -69292,6 +97105,7 @@ "NOT_CRITICAL_ERROR", "NO_RESULTS_ON_PAGE", "PARTIAL_SUCCESS", + "QUOTA_INFO_UNAVAILABLE", "REQUIRED_TOS_AGREEMENT", "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", "RESOURCE_NOT_DELETED", @@ -69328,46 +97142,48 @@ false, false, false, + false, false ], "enumDescriptions": [ - "Warning about failed cleanup of transient changes made by a failed operation.", + "Warning about failed cleanup of transient changes made by a failed\noperation.", "A link to a deprecated resource was created.", - "When deploying and at least one of the resources has a type marked as deprecated", + "When deploying and at least one of the resources has a type marked as\ndeprecated", "The user created a boot disk that is larger than image size.", - "When deploying and at least one of the resources has a type marked as experimental", + "When deploying and at least one of the resources has a type marked as\nexperimental", "Warning that is present in an external api call", - "Warning that value of a field has been overridden. Deprecated unused field.", + "Warning that value of a field has been overridden.\nDeprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", - "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is\nnot of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", - "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", + "Resource can't be retrieved due to list overhead quota exceed\nwhich captures the amount of resources filtered out by\nuser-defined list filter.", "A resource depends on a missing type", - "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's nextHopIp address is not assigned to an instance on the\nnetwork.", "The route's next hop instance cannot ip forward.", - "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not have an\nipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", - "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that is not on the\nsame network as the route.", "The route's next hop instance does not have a status of RUNNING.", - "Error which is not critical. We decided to continue the process despite the mentioned error.", + "Error which is not critical. We decided to continue the process despite\nthe mentioned error.", "No results are present on a particular list page.", "Success is reported, but some results may be missing due to errors", - "The user attempted to use a resource that requires a TOS they have not accepted.", + "Quota information is not available to client requests (e.g:\nregions.list).", + "The user attempted to use a resource that requires a TOS they have not\naccepted.", "Warning that a resource is in use.", - "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "One or more of the resources set to auto-delete could not be deleted\nbecause they were in use.", "When a resource schema validation is ignored.", - "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", + "Instance template used in instance group manager is valid as such, but\nits application does not make a lot of sense, because it allows only\nsingle instance in instance group.", "When undeclared properties in the schema are present", "A given scope cannot be reached." ], "type": "string" }, "data": { - "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", + "description": "[Output Only] Metadata about this warning in key:\nvalue format. For example:\n\n\"data\": [\n {\n \"key\": \"scope\",\n \"value\": \"zones/us-east1-d\"\n }", "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).", + "description": "[Output Only] A key that provides more detail on the warning being\nreturned. For example, for warnings where there are no results in a list\nrequest for a particular zone, this key might be scope and\nthe key value might be the zone name. Other examples might be a key\nindicating a deprecated resource and a suggested replacement, or a\nwarning about invalid network settings (for example, if an instance\nattempts to perform IP forwarding but is not enabled for IP forwarding).", "type": "string" }, "value": { @@ -69389,151 +97205,30 @@ }, "type": "object" }, - "Router": { - "description": "Represents a Cloud Router resource. For more information about Cloud Router, read the Cloud Router overview.", - "id": "Router", - "properties": { - "bgp": { - "$ref": "RouterBgp", - "description": "BGP information specific to this router." - }, - "bgpPeers": { - "description": "BGP information that must be configured into the routing stack to establish BGP peering. This information must specify the peer ASN and either the interface name, IP address, or peer IP address. Please refer to RFC4273.", - "items": { - "$ref": "RouterBgpPeer" - }, - "type": "array" - }, - "creationTimestamp": { - "description": "[Output Only] Creation timestamp in RFC3339 text format.", - "type": "string" - }, - "description": { - "description": "An optional description of this resource. Provide this property when you create the resource.", - "type": "string" - }, - "encryptedInterconnectRouter": { - "description": "Indicates if a router is dedicated for use with encrypted VLAN attachments (interconnectAttachments).", - "type": "boolean" - }, - "id": { - "description": "[Output Only] The unique identifier for the resource. This identifier is defined by the server.", - "format": "uint64", - "type": "string" - }, - "interfaces": { - "description": "Router interfaces. To create a BGP peer that uses a router interface, the interface must have one of the following fields specified: - linkedVpnTunnel - linkedInterconnectAttachment - subnetwork You can create a router interface without any of these fields specified. However, you cannot create a BGP peer that uses that interface.", - "items": { - "$ref": "RouterInterface" - }, - "type": "array" - }, - "kind": { - "default": "compute#router", - "description": "[Output Only] Type of resource. Always compute#router for routers.", - "type": "string" - }, - "md5AuthenticationKeys": { - "description": "Keys used for MD5 authentication.", - "items": { - "$ref": "RouterMd5AuthenticationKey" - }, - "type": "array" - }, - "name": { - "annotations": { - "required": [ - "compute.routers.insert" - ] - }, - "description": "Name of the resource. Provided by the client when the resource is created. The name must be 1-63 characters long, and comply with RFC1035. 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" - }, - "nats": { - "description": "A list of NAT services created in this router.", - "items": { - "$ref": "RouterNat" - }, - "type": "array" - }, - "network": { - "annotations": { - "required": [ - "compute.routers.insert", - "compute.routers.update" - ] - }, - "description": "URI of the network to which this router belongs.", - "type": "string" - }, - "region": { - "description": "[Output Only] URI of the region where the router resides. You must specify this field as part of the HTTP request URL. It is not settable as a field in the request body.", - "type": "string" - }, - "selfLink": { - "description": "[Output Only] Server-defined URL for the resource.", - "type": "string" - } - }, - "type": "object" - }, - "RouterAdvertisedIpRange": { - "description": "Description-tagged IP ranges for the router to advertise.", - "id": "RouterAdvertisedIpRange", + "SecurityPoliciesListPreconfiguredExpressionSetsResponse": { + "id": "SecurityPoliciesListPreconfiguredExpressionSetsResponse", "properties": { - "description": { - "description": "User-specified description for the IP range.", - "type": "string" - }, - "range": { - "description": "The IP range to advertise. The value must be a CIDR-formatted string.", - "type": "string" + "preconfiguredExpressionSets": { + "$ref": "SecurityPoliciesWafConfig" } }, "type": "object" }, - "RouterAggregatedList": { - "description": "Contains a list of routers.", - "id": "RouterAggregatedList", + "SecurityPoliciesScopedList": { + "id": "SecurityPoliciesScopedList", "properties": { - "id": { - "description": "[Output Only] Unique identifier for the resource; defined by the server.", - "type": "string" - }, - "items": { - "additionalProperties": { - "$ref": "RoutersScopedList", - "description": "Name of the scope containing this set of routers." - }, - "description": "A list of Router resources.", - "type": "object" - }, - "kind": { - "default": "compute#routerAggregatedList", - "description": "Type of resource.", - "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" - }, - "selfLink": { - "description": "[Output Only] Server-defined URL for this resource.", - "type": "string" - }, - "unreachables": { - "description": "[Output Only] Unreachable resources.", + "securityPolicies": { + "description": "A list of SecurityPolicies contained in this scope.", "items": { - "type": "string" + "$ref": "SecurityPolicy" }, "type": "array" }, "warning": { - "description": "[Output Only] Informational warning message.", + "description": "Informational warning which replaces the list of\nsecurity policies when the list is empty.", "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.", + "description": "[Output Only] A warning code, if applicable. For example, Compute\nEngine returns NO_RESULTS_ON_PAGE if there\nare no results in the response.", "enum": [ "CLEANUP_FAILED", "DEPRECATED_RESOURCE_USED", @@ -69556,6 +97251,7 @@ "NOT_CRITICAL_ERROR", "NO_RESULTS_ON_PAGE", "PARTIAL_SUCCESS", + "QUOTA_INFO_UNAVAILABLE", "REQUIRED_TOS_AGREEMENT", "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", "RESOURCE_NOT_DELETED", @@ -69592,46 +97288,48 @@ false, false, false, + false, false ], "enumDescriptions": [ - "Warning about failed cleanup of transient changes made by a failed operation.", + "Warning about failed cleanup of transient changes made by a failed\noperation.", "A link to a deprecated resource was created.", - "When deploying and at least one of the resources has a type marked as deprecated", + "When deploying and at least one of the resources has a type marked as\ndeprecated", "The user created a boot disk that is larger than image size.", - "When deploying and at least one of the resources has a type marked as experimental", + "When deploying and at least one of the resources has a type marked as\nexperimental", "Warning that is present in an external api call", - "Warning that value of a field has been overridden. Deprecated unused field.", + "Warning that value of a field has been overridden.\nDeprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", - "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is\nnot of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", - "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", + "Resource can't be retrieved due to list overhead quota exceed\nwhich captures the amount of resources filtered out by\nuser-defined list filter.", "A resource depends on a missing type", - "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's nextHopIp address is not assigned to an instance on the\nnetwork.", "The route's next hop instance cannot ip forward.", - "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not have an\nipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", - "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that is not on the\nsame network as the route.", "The route's next hop instance does not have a status of RUNNING.", - "Error which is not critical. We decided to continue the process despite the mentioned error.", + "Error which is not critical. We decided to continue the process despite\nthe mentioned error.", "No results are present on a particular list page.", "Success is reported, but some results may be missing due to errors", - "The user attempted to use a resource that requires a TOS they have not accepted.", + "Quota information is not available to client requests (e.g:\nregions.list).", + "The user attempted to use a resource that requires a TOS they have not\naccepted.", "Warning that a resource is in use.", - "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "One or more of the resources set to auto-delete could not be deleted\nbecause they were in use.", "When a resource schema validation is ignored.", - "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", + "Instance template used in instance group manager is valid as such, but\nits application does not make a lot of sense, because it allows only\nsingle instance in instance group.", "When undeclared properties in the schema are present", "A given scope cannot be reached." ], "type": "string" }, "data": { - "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", + "description": "[Output Only] Metadata about this warning in key:\nvalue format. For example:\n\n\"data\": [\n {\n \"key\": \"scope\",\n \"value\": \"zones/us-east1-d\"\n }", "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).", + "description": "[Output Only] A key that provides more detail on the warning being\nreturned. For example, for warnings where there are no results in a list\nrequest for a particular zone, this key might be scope and\nthe key value might be the zone name. Other examples might be a key\nindicating a deprecated resource and a suggested replacement, or a\nwarning about invalid network settings (for example, if an instance\nattempts to perform IP forwarding but is not enabled for IP forwarding).", "type": "string" }, "value": { @@ -69653,243 +97351,260 @@ }, "type": "object" }, - "RouterBgp": { - "id": "RouterBgp", + "SecurityPoliciesWafConfig": { + "id": "SecurityPoliciesWafConfig", "properties": { - "advertiseMode": { - "description": "User-specified flag to indicate which mode to use for advertisement. The options are DEFAULT or CUSTOM.", - "enum": [ - "CUSTOM", - "DEFAULT" - ], - "enumDescriptions": [ - "", - "" - ], - "type": "string" + "wafRules": { + "$ref": "PreconfiguredWafSet" + } + }, + "type": "object" + }, + "SecurityPolicy": { + "description": "Represents a Google Cloud Armor security policy resource.\n\nOnly external backend services that use load balancers can\nreference a security policy. For more information, see\nGoogle Cloud Armor security policy overview.", + "id": "SecurityPolicy", + "properties": { + "adaptiveProtectionConfig": { + "$ref": "SecurityPolicyAdaptiveProtectionConfig" }, - "advertisedGroups": { - "description": "User-specified list of prefix groups to advertise in custom mode. This field can only be populated if advertise_mode is CUSTOM and is advertised to all peers of the router. These groups will be advertised in addition to any specified prefixes. Leave this field blank to advertise no custom groups.", - "items": { - "enum": [ - "ALL_SUBNETS" - ], - "enumDescriptions": [ - "Advertise all available subnets (including peer VPC subnets)." - ], - "type": "string" - }, - "type": "array" + "advancedOptionsConfig": { + "$ref": "SecurityPolicyAdvancedOptionsConfig" }, - "advertisedIpRanges": { - "description": "User-specified list of individual IP ranges to advertise in custom mode. This field can only be populated if advertise_mode is CUSTOM and is advertised to all peers of the router. These IP ranges will be advertised in addition to any specified groups. Leave this field blank to advertise no custom IP ranges.", + "associations": { + "description": "A list of associations that belong to this policy.", "items": { - "$ref": "RouterAdvertisedIpRange" + "$ref": "SecurityPolicyAssociation" }, "type": "array" }, - "asn": { - "description": "Local BGP Autonomous System Number (ASN). Must be an RFC6996 private ASN, either 16-bit or 32-bit. The value will be fixed for this router resource. All VPN tunnels that link to this router will have the same local ASN.", - "format": "uint32", - "type": "integer" + "creationTimestamp": { + "description": "Output only. [Output Only] Creation timestamp inRFC3339\ntext format.", + "readOnly": true, + "type": "string" }, - "identifierRange": { - "description": "Explicitly specifies a range of valid BGP Identifiers for this Router. It is provided as a link-local IPv4 range (from 169.254.0.0/16), of size at least /30, even if the BGP sessions are over IPv6. It must not overlap with any IPv4 BGP session ranges. Other vendors commonly call this \"router ID\".", + "ddosProtectionConfig": { + "$ref": "SecurityPolicyDdosProtectionConfig" + }, + "description": { + "description": "An optional description of this resource. Provide this property when you\ncreate the resource.", "type": "string" }, - "keepaliveInterval": { - "description": "The interval in seconds between BGP keepalive messages that are sent to the peer. Hold time is three times the interval at which keepalive messages are sent, and the hold time is the maximum number of seconds allowed to elapse between successive keepalive messages that BGP receives from a peer. BGP will use the smaller of either the local hold time value or the peer's hold time value as the hold time for the BGP connection between the two peers. If set, this value must be between 20 and 60. The default is 20.", - "format": "uint32", - "type": "integer" - } - }, - "type": "object" - }, - "RouterBgpPeer": { - "id": "RouterBgpPeer", - "properties": { - "advertiseMode": { - "description": "User-specified flag to indicate which mode to use for advertisement.", - "enum": [ - "CUSTOM", - "DEFAULT" - ], - "enumDescriptions": [ - "", - "" - ], + "fingerprint": { + "description": "Specifies a fingerprint for this resource, which is essentially a hash of\nthe metadata's contents and used for optimistic locking. The\nfingerprint is initially generated by Compute Engine and changes after\nevery request to modify or update metadata. You must always provide an\nup-to-date fingerprint hash in order to update or change metadata,\notherwise the request will fail with error412 conditionNotMet.\n\nTo see the latest fingerprint, make get() request to the\nsecurity policy.", + "format": "byte", "type": "string" }, - "advertisedGroups": { - "description": "User-specified list of prefix groups to advertise in custom mode, which currently supports the following option: - ALL_SUBNETS: Advertises all of the router's own VPC subnets. This excludes any routes learned for subnets that use VPC Network Peering. Note that this field can only be populated if advertise_mode is CUSTOM and overrides the list defined for the router (in the \"bgp\" message). These groups are advertised in addition to any specified prefixes. Leave this field blank to advertise no custom groups.", - "items": { - "enum": [ - "ALL_SUBNETS" - ], - "enumDescriptions": [ - "Advertise all available subnets (including peer VPC subnets)." - ], + "id": { + "description": "Output only. [Output Only] The unique identifier for the resource. This identifier is\ndefined by the server.", + "format": "uint64", + "readOnly": true, + "type": "string" + }, + "kind": { + "default": "compute#securityPolicy", + "description": "Output only. [Output only] Type of the resource. Alwayscompute#securityPolicyfor security policies", + "readOnly": true, + "type": "string" + }, + "labelFingerprint": { + "description": "A fingerprint for the labels being applied to this security policy, which\nis essentially a hash of the labels set used for optimistic locking. The\nfingerprint is initially generated by Compute Engine and changes after\nevery request to modify or update labels. You must always provide an\nup-to-date fingerprint hash in order to update or change labels.\n\nTo see the latest fingerprint, make get() request to the\nsecurity policy.", + "format": "byte", + "type": "string" + }, + "labels": { + "additionalProperties": { "type": "string" }, - "type": "array" + "description": "Labels for this resource. These can only be added or modified by thesetLabels method. Each label key/value pair must comply withRFC1035.\nLabel values may be empty.", + "type": "object" }, - "advertisedIpRanges": { - "description": "User-specified list of individual IP ranges to advertise in custom mode. This field can only be populated if advertise_mode is CUSTOM and overrides the list defined for the router (in the \"bgp\" message). These IP ranges are advertised in addition to any specified groups. Leave this field blank to advertise no custom IP ranges.", - "items": { - "$ref": "RouterAdvertisedIpRange" - }, - "type": "array" + "name": { + "description": "Name of the resource. Provided by the client when the resource is created.\nThe name must be 1-63 characters long, and comply withRFC1035.\nSpecifically, the name must be 1-63 characters long and match the regular\nexpression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first\ncharacter must be a lowercase letter, and all following characters must\nbe a dash, lowercase letter, or digit, except the last character, which\ncannot be a dash.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "type": "string" }, - "advertisedRoutePriority": { - "description": "The priority of routes advertised to this BGP peer. Where there is more than one matching route of maximum length, the routes with the lowest priority value win.", - "format": "uint32", - "type": "integer" + "parent": { + "description": "Output only. [Output Only] The parent of the security policy.", + "readOnly": true, + "type": "string" }, - "bfd": { - "$ref": "RouterBgpPeerBfd", - "description": "BFD configuration for the BGP peering." + "recaptchaOptionsConfig": { + "$ref": "SecurityPolicyRecaptchaOptionsConfig" }, - "customLearnedIpRanges": { - "description": "A list of user-defined custom learned route IP address ranges for a BGP session.", + "region": { + "description": "Output only. [Output Only] URL of the region where the regional security policy\nresides. This field is not applicable to global security policies.", + "readOnly": true, + "type": "string" + }, + "rules": { + "description": "A list of rules that belong to this policy.\nThere must always be a default rule which is a rule with priority\n2147483647 and match all condition (for the match condition this means\nmatch \"*\" for srcIpRanges and for the networkMatch condition every field\nmust be either match \"*\" or not set). If no rules are provided when\ncreating a security policy, a default rule with action \"allow\" will be\nadded.", "items": { - "$ref": "RouterBgpPeerCustomLearnedIpRange" + "$ref": "SecurityPolicyRule" }, "type": "array" }, - "customLearnedRoutePriority": { - "description": "The user-defined custom learned route priority for a BGP session. This value is applied to all custom learned route ranges for the session. You can choose a value from `0` to `65335`. If you don't provide a value, Google Cloud assigns a priority of `100` to the ranges.", - "format": "int32", - "type": "integer" + "selfLink": { + "description": "Output only. [Output Only] Server-defined URL for the resource.", + "readOnly": true, + "type": "string" }, - "enable": { - "description": "The status of the BGP peer connection. If set to FALSE, any active session with the peer is terminated and all associated routing information is removed. If set to TRUE, the peer connection can be established with routing information. The default is TRUE.", + "shortName": { + "description": "User-provided name of the organization security policy. The name should be\nunique in the organization in which the security policy is created. This\nshould only be used when SecurityPolicyType is CLOUD_ARMOR.\nThe name must be 1-63 characters long, and comply with\nhttps://www.ietf.org/rfc/rfc1035.txt. Specifically, the name must be 1-63\ncharacters long and match the regular expression\n`[a-z]([-a-z0-9]*[a-z0-9])?` which means the first character must be a\nlowercase letter, and all following characters must be a dash, lowercase\nletter, or digit, except the last character, which cannot be a dash.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "type": "string" + }, + "type": { + "description": "The type indicates the intended use of the security policy.\n \n - CLOUD_ARMOR: Cloud Armor backend security policies can\n be configured to filter incoming HTTP requests targeting backend services.\n They filter requests before they hit the origin servers.\n - CLOUD_ARMOR_EDGE: Cloud Armor edge security policies can\n be configured to filter incoming HTTP requests targeting backend services\n (including Cloud CDN-enabled) as well as backend buckets (Cloud Storage).\n They filter requests before the request is served from Google's cache.\n - CLOUD_ARMOR_INTERNAL_SERVICE (preview only): Cloud Armor\n internal service policies can be configured to filter HTTP requests\n targeting services managed by Traffic Director in a service mesh. They\n filter requests before the request is served from the application.\n\n- CLOUD_ARMOR_NETWORK: Cloud Armor network policies\ncan be configured to filter packets targeting network load balancing\nresources such as backend services, target pools, target instances, and\ninstances with external IPs. They filter requests before the request is\nserved from the application.\n\n\nThis field can be set only at resource creation time.", "enum": [ - "FALSE", - "TRUE" + "CLOUD_ARMOR", + "CLOUD_ARMOR_EDGE", + "CLOUD_ARMOR_NETWORK" ], "enumDescriptions": [ + "", "", "" ], "type": "string" }, - "enableIpv4": { - "description": "Enable IPv4 traffic over BGP Peer. It is enabled by default if the peerIpAddress is version 4.", - "type": "boolean" - }, - "enableIpv6": { - "description": "Enable IPv6 traffic over BGP Peer. It is enabled by default if the peerIpAddress is version 6.", - "type": "boolean" - }, - "exportPolicies": { - "description": "List of export policies applied to this peer, in the order they must be evaluated. The name must correspond to an existing policy that has ROUTE_POLICY_TYPE_EXPORT type. Note that Route Policies are currently available in preview. Please use Beta API to use Route Policies.", + "userDefinedFields": { + "description": "Definitions of user-defined fields for CLOUD_ARMOR_NETWORK policies. A\nuser-defined field consists of up to 4 bytes extracted from a fixed offset\nin the packet, relative to the IPv4, IPv6, TCP, or UDP header, with an\noptional mask to select certain bits. Rules may then specify matching\nvalues for these fields.\n\nExample:\n\n userDefinedFields:\n - name: \"ipv4_fragment_offset\"\n base: IPV4\n offset: 6\n size: 2\n mask: \"0x1fff\"", "items": { - "type": "string" + "$ref": "SecurityPolicyUserDefinedField" }, "type": "array" + } + }, + "type": "object" + }, + "SecurityPolicyAdaptiveProtectionConfig": { + "description": "Configuration options for Cloud Armor Adaptive Protection (CAAP).", + "id": "SecurityPolicyAdaptiveProtectionConfig", + "properties": { + "layer7DdosDefenseConfig": { + "$ref": "SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfig", + "description": "If set to true, enables Cloud Armor Machine Learning." + } + }, + "type": "object" + }, + "SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfig": { + "description": "Configuration options for L7 DDoS detection.\nThis field is only supported in Global Security Policies of type\nCLOUD_ARMOR.", + "id": "SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfig", + "properties": { + "enable": { + "description": "If set to true, enables CAAP for L7 DDoS detection.\nThis field is only supported in Global Security Policies of type\nCLOUD_ARMOR.", + "type": "boolean" }, - "importPolicies": { - "description": "List of import policies applied to this peer, in the order they must be evaluated. The name must correspond to an existing policy that has ROUTE_POLICY_TYPE_IMPORT type. Note that Route Policies are currently available in preview. Please use Beta API to use Route Policies.", + "ruleVisibility": { + "description": "Rule visibility can be one of the following:\nSTANDARD - opaque rules. (default)\nPREMIUM - transparent rules.\nThis field is only supported in Global Security Policies of type\nCLOUD_ARMOR.", + "enum": [ + "PREMIUM", + "STANDARD" + ], + "enumDescriptions": [ + "", + "" + ], + "type": "string" + }, + "thresholdConfigs": { + "description": "Configuration options for layer7 adaptive protection for various\ncustomizable thresholds.", "items": { - "type": "string" + "$ref": "SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigThresholdConfig" }, "type": "array" + } + }, + "type": "object" + }, + "SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigThresholdConfig": { + "id": "SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigThresholdConfig", + "properties": { + "autoDeployConfidenceThreshold": { + "format": "float", + "type": "number" }, - "interfaceName": { - "description": "Name of the interface the BGP peer is associated with.", - "type": "string" + "autoDeployExpirationSec": { + "format": "int32", + "type": "integer" }, - "ipAddress": { - "description": "IP address of the interface inside Google Cloud Platform.", - "type": "string" + "autoDeployImpactedBaselineThreshold": { + "format": "float", + "type": "number" }, - "ipv4NexthopAddress": { - "description": "IPv4 address of the interface inside Google Cloud Platform.", - "type": "string" + "autoDeployLoadThreshold": { + "format": "float", + "type": "number" }, - "ipv6NexthopAddress": { - "description": "IPv6 address of the interface inside Google Cloud Platform.", - "type": "string" + "detectionAbsoluteQps": { + "format": "float", + "type": "number" }, - "managementType": { - "description": "[Output Only] The resource that configures and manages this BGP peer. - MANAGED_BY_USER is the default value and can be managed by you or other users - MANAGED_BY_ATTACHMENT is a BGP peer that is configured and managed by Cloud Interconnect, specifically by an InterconnectAttachment of type PARTNER. Google automatically creates, updates, and deletes this type of BGP peer when the PARTNER InterconnectAttachment is created, updated, or deleted. ", - "enum": [ - "MANAGED_BY_ATTACHMENT", - "MANAGED_BY_USER" - ], - "enumDescriptions": [ - "The BGP peer is automatically created for PARTNER type InterconnectAttachment; Google will automatically create/delete this BGP peer when the PARTNER InterconnectAttachment is created/deleted, and Google will update the ipAddress and peerIpAddress when the PARTNER InterconnectAttachment is provisioned. This type of BGP peer cannot be created or deleted, but can be modified for all fields except for name, ipAddress and peerIpAddress.", - "Default value, the BGP peer is manually created and managed by user." - ], - "type": "string" + "detectionLoadThreshold": { + "format": "float", + "type": "number" }, - "md5AuthenticationKeyName": { - "description": "Present if MD5 authentication is enabled for the peering. Must be the name of one of the entries in the Router.md5_authentication_keys. The field must comply with RFC1035.", - "type": "string" + "detectionRelativeToBaselineQps": { + "format": "float", + "type": "number" }, "name": { - "annotations": { - "required": [ - "compute.routers.insert" - ] - }, - "description": "Name of this BGP peer. The name must be 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters long and match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash.", + "description": "The name must be 1-63 characters long, and comply withRFC1035.\nThe name must be unique within the security policy.", "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", "type": "string" }, - "peerAsn": { - "annotations": { - "required": [ - "compute.routers.insert" - ] + "trafficGranularityConfigs": { + "description": "Configuration options for enabling Adaptive Protection to operate\non specified granular traffic units.", + "items": { + "$ref": "SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigThresholdConfigTrafficGranularityConfig" }, - "description": "Peer BGP Autonomous System Number (ASN). Each BGP interface may use a different value.", - "format": "uint32", - "type": "integer" - }, - "peerIpAddress": { - "description": "IP address of the BGP interface outside Google Cloud Platform.", - "type": "string" - }, - "peerIpv4NexthopAddress": { - "description": "IPv4 address of the BGP interface outside Google Cloud Platform.", - "type": "string" + "type": "array" + } + }, + "type": "object" + }, + "SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigThresholdConfigTrafficGranularityConfig": { + "description": "Configurations to specifc granular traffic units processed by\nAdaptive Protection.", + "id": "SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigThresholdConfigTrafficGranularityConfig", + "properties": { + "enableEachUniqueValue": { + "description": "If enabled, traffic matching each unique value for the specified\ntype constitutes a separate traffic unit.\nIt can only be set to true if `value` is empty.", + "type": "boolean" }, - "peerIpv6NexthopAddress": { - "description": "IPv6 address of the BGP interface outside Google Cloud Platform.", + "type": { + "description": "Type of this configuration.", + "enum": [ + "HTTP_HEADER_HOST", + "HTTP_PATH", + "UNSPECIFIED_TYPE" + ], + "enumDescriptions": [ + "", + "", + "" + ], "type": "string" }, - "routerApplianceInstance": { - "description": "URI of the VM instance that is used as third-party router appliances such as Next Gen Firewalls, Virtual Routers, or Router Appliances. The VM instance must be located in zones contained in the same region as this Cloud Router. The VM instance is the peer side of the BGP session.", + "value": { + "description": "Requests that match this value constitute a granular traffic unit.", "type": "string" } }, "type": "object" }, - "RouterBgpPeerBfd": { - "id": "RouterBgpPeerBfd", + "SecurityPolicyAdvancedOptionsConfig": { + "id": "SecurityPolicyAdvancedOptionsConfig", "properties": { - "minReceiveInterval": { - "description": "The minimum interval, in milliseconds, between BFD control packets received from the peer router. The actual value is negotiated between the two routers and is equal to the greater of this value and the transmit interval of the other router. If set, this value must be between 1000 and 30000. The default is 1000.", - "format": "uint32", - "type": "integer" - }, - "minTransmitInterval": { - "description": "The minimum interval, in milliseconds, between BFD control packets transmitted to the peer router. The actual value is negotiated between the two routers and is equal to the greater of this value and the corresponding receive interval of the other router. If set, this value must be between 1000 and 30000. The default is 1000.", - "format": "uint32", - "type": "integer" - }, - "multiplier": { - "description": "The number of consecutive BFD packets that must be missed before BFD declares that a peer is unavailable. If set, the value must be a value between 5 and 16. The default is 5.", - "format": "uint32", - "type": "integer" + "jsonCustomConfig": { + "$ref": "SecurityPolicyAdvancedOptionsConfigJsonCustomConfig", + "description": "Custom configuration to apply the JSON parsing. Only applicable when\njson_parsing is set to STANDARD." }, - "sessionInitializationMode": { - "description": "The BFD session initialization mode for this BGP peer. If set to ACTIVE, the Cloud Router will initiate the BFD session for this BGP peer. If set to PASSIVE, the Cloud Router will wait for the peer router to initiate the BFD session for this BGP peer. If set to DISABLED, BFD is disabled for this BGP peer. The default is DISABLED.", + "jsonParsing": { "enum": [ - "ACTIVE", "DISABLED", - "PASSIVE" + "STANDARD", + "STANDARD_WITH_GRAPHQL" ], "enumDescriptions": [ "", @@ -69897,118 +97612,166 @@ "" ], "type": "string" - } - }, - "type": "object" - }, - "RouterBgpPeerCustomLearnedIpRange": { - "id": "RouterBgpPeerCustomLearnedIpRange", - "properties": { - "range": { - "description": "The custom learned route IP address range. Must be a valid CIDR-formatted prefix. If an IP address is provided without a subnet mask, it is interpreted as, for IPv4, a `/32` singular IP address range, and, for IPv6, `/128`.", + }, + "logLevel": { + "enum": [ + "NORMAL", + "VERBOSE" + ], + "enumDescriptions": [ + "", + "" + ], + "type": "string" + }, + "requestBodyInspectionSize": { + "description": "The maximum request size chosen by the customer with Waf enabled.\nValues supported are \"8KB\", \"16KB, \"32KB\", \"48KB\" and \"64KB\".\nValues are case insensitive.", + "type": "string" + }, + "userIpRequestHeaders": { + "description": "An optional list of case-insensitive request header names to use for\nresolving the callers client IP address.", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "SecurityPolicyAdvancedOptionsConfigJsonCustomConfig": { + "id": "SecurityPolicyAdvancedOptionsConfigJsonCustomConfig", + "properties": { + "contentTypes": { + "description": "A list of custom Content-Type header values to apply the JSON parsing.\n\nAs per RFC 1341, a Content-Type header value has the following format:\n\nContent-Type := type \"/\" subtype *[\";\" parameter]\n\nWhen configuring a custom Content-Type header value, only the\ntype/subtype needs to be specified, and the parameters should be\nexcluded.", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "SecurityPolicyAssociation": { + "id": "SecurityPolicyAssociation", + "properties": { + "attachmentId": { + "description": "The resource that the security policy is attached to.", + "type": "string" + }, + "displayName": { + "deprecated": true, + "description": "Output only. [Output Only] The display name of the security policy of the association.", + "readOnly": true, + "type": "string" + }, + "excludedFolders": { + "description": "A list of folders to exclude from the security policy.", + "items": { + "type": "string" + }, + "type": "array" + }, + "excludedProjects": { + "description": "A list of projects to exclude from the security policy.", + "items": { + "type": "string" + }, + "type": "array" + }, + "name": { + "description": "The name for an association.", + "type": "string" + }, + "securityPolicyId": { + "description": "Output only. [Output Only] The security policy ID of the association.", + "readOnly": true, + "type": "string" + }, + "shortName": { + "description": "Output only. [Output Only] The short name of the security policy of the association.", + "readOnly": true, "type": "string" } }, "type": "object" }, - "RouterInterface": { - "id": "RouterInterface", + "SecurityPolicyDdosProtectionConfig": { + "id": "SecurityPolicyDdosProtectionConfig", "properties": { - "ipRange": { - "description": "IP address and range of the interface. - For Internet Protocol version 4 (IPv4), the IP range must be in the RFC3927 link-local IP address space. The value must be a CIDR-formatted string, for example, 169.254.0.1/30. Note: Do not truncate the IP address, as it represents the IP address of the interface. - For Internet Protocol version 6 (IPv6), the value must be a unique local address (ULA) range from fdff:1::/64 with a mask length of 126 or less. This value should be a CIDR-formatted string, for example, fc00:0:1:1::1/112. Within the router's VPC, this IPv6 prefix will be reserved exclusively for this connection and cannot be used for any other purpose. ", - "type": "string" - }, - "ipVersion": { - "description": "IP version of this interface.", + "ddosAdaptiveProtection": { "enum": [ - "IPV4", - "IPV6" + "DDOS_ADAPTIVE_PROTECTION_UNSPECIFIED", + "DISABLED", + "ENABLED", + "PREVIEW", + "UNSPECIFIED_ADAPTIVE_PROTECTION" + ], + "enumDeprecated": [ + false, + false, + false, + false, + true ], "enumDescriptions": [ + "", + "", + "", "", "" ], "type": "string" }, - "linkedInterconnectAttachment": { - "description": "URI of the linked Interconnect attachment. It must be in the same region as the router. Each interface can have one linked resource, which can be a VPN tunnel, an Interconnect attachment, or a subnetwork.", - "type": "string" - }, - "linkedVpnTunnel": { - "description": "URI of the linked VPN tunnel, which must be in the same region as the router. Each interface can have one linked resource, which can be a VPN tunnel, an Interconnect attachment, or a subnetwork.", - "type": "string" + "ddosImpactedBaselineThreshold": { + "description": "DDoS Protection for Network Load Balancers (and VMs with public IPs)\nbuilds DDoS mitigations that minimize collateral damage. It quantifies\nthis as the fraction of a non-abuse baseline that's inadvertently\nblocked.\n\nRules whose collateral damage exceeds ddosImpactedBaselineThreshold will\nnot be deployed. Using a lower value will prioritize keeping collateral\ndamage low, possibly at the cost of its effectiveness in rate limiting\nsome or all of the attack. It should typically be unset, so Advanced DDoS\n(and Adaptive Protection) uses the best mitigation it can find. Setting\nthe threshold is advised if there are logs for false positive detections\nwith high collateral damage, and will cause Advanced DDoS to attempt to\nfind a less aggressive rule that satisfies the constraint. If a suitable\nrule cannot be found, the system falls back to either no mitigation for\nsmaller attacks or broader network throttles for larger ones.", + "format": "float", + "type": "number" }, - "managementType": { - "description": "[Output Only] The resource that configures and manages this interface. - MANAGED_BY_USER is the default value and can be managed directly by users. - MANAGED_BY_ATTACHMENT is an interface that is configured and managed by Cloud Interconnect, specifically, by an InterconnectAttachment of type PARTNER. Google automatically creates, updates, and deletes this type of interface when the PARTNER InterconnectAttachment is created, updated, or deleted. ", + "ddosProtection": { "enum": [ - "MANAGED_BY_ATTACHMENT", - "MANAGED_BY_USER" + "ADVANCED", + "ADVANCED_PREVIEW", + "STANDARD" ], "enumDescriptions": [ - "The interface is automatically created for PARTNER type InterconnectAttachment, Google will automatically create/update/delete this interface when the PARTNER InterconnectAttachment is created/provisioned/deleted. This type of interface cannot be manually managed by user.", - "Default value, the interface is manually created and managed by user." + "", + "", + "" ], "type": "string" - }, - "name": { - "annotations": { - "required": [ - "compute.routers.insert" - ] - }, - "description": "Name of this interface entry. 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" - }, - "privateIpAddress": { - "description": "The regional private internal IP address that is used to establish BGP sessions to a VM instance acting as a third-party Router Appliance, such as a Next Gen Firewall, a Virtual Router, or an SD-WAN VM.", - "type": "string" - }, - "redundantInterface": { - "description": "Name of the interface that will be redundant with the current interface you are creating. The redundantInterface must belong to the same Cloud Router as the interface here. To establish the BGP session to a Router Appliance VM, you must create two BGP peers. The two BGP peers must be attached to two separate interfaces that are redundant with each other. The redundant_interface must be 1-63 characters long, and comply with RFC1035. Specifically, the redundant_interface 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" - }, - "subnetwork": { - "description": "The URI of the subnetwork resource that this interface belongs to, which must be in the same region as the Cloud Router. When you establish a BGP session to a VM instance using this interface, the VM instance must belong to the same subnetwork as the subnetwork specified here.", - "type": "string" } }, "type": "object" }, - "RouterList": { - "description": "Contains a list of Router resources.", - "id": "RouterList", + "SecurityPolicyList": { + "id": "SecurityPolicyList", "properties": { "id": { "description": "[Output Only] Unique identifier for the resource; defined by the server.", "type": "string" }, "items": { - "description": "A list of Router resources.", + "description": "A list of SecurityPolicy resources.", "items": { - "$ref": "Router" + "$ref": "SecurityPolicy" }, "type": "array" }, "kind": { - "default": "compute#routerList", - "description": "[Output Only] Type of resource. Always compute#router for routers.", + "default": "compute#securityPolicyList", + "description": "Output only. [Output Only] Type of resource. Alwayscompute#securityPolicyList for listsof securityPolicies", + "readOnly": true, "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" - }, - "selfLink": { - "description": "[Output Only] Server-defined URL for this resource.", + "description": "[Output Only] This token allows you to get the next page of results for\nlist requests. If the number of results is larger thanmaxResults, use the nextPageToken as a value for\nthe query parameter pageToken in the next list request.\nSubsequent list requests will have their own nextPageToken to\ncontinue paging through the results.", "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.", + "description": "[Output Only] A warning code, if applicable. For example, Compute\nEngine returns NO_RESULTS_ON_PAGE if there\nare no results in the response.", "enum": [ "CLEANUP_FAILED", "DEPRECATED_RESOURCE_USED", @@ -70031,6 +97794,7 @@ "NOT_CRITICAL_ERROR", "NO_RESULTS_ON_PAGE", "PARTIAL_SUCCESS", + "QUOTA_INFO_UNAVAILABLE", "REQUIRED_TOS_AGREEMENT", "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", "RESOURCE_NOT_DELETED", @@ -70067,46 +97831,48 @@ false, false, false, + false, false ], "enumDescriptions": [ - "Warning about failed cleanup of transient changes made by a failed operation.", + "Warning about failed cleanup of transient changes made by a failed\noperation.", "A link to a deprecated resource was created.", - "When deploying and at least one of the resources has a type marked as deprecated", + "When deploying and at least one of the resources has a type marked as\ndeprecated", "The user created a boot disk that is larger than image size.", - "When deploying and at least one of the resources has a type marked as experimental", + "When deploying and at least one of the resources has a type marked as\nexperimental", "Warning that is present in an external api call", - "Warning that value of a field has been overridden. Deprecated unused field.", + "Warning that value of a field has been overridden.\nDeprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", - "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is\nnot of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", - "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", + "Resource can't be retrieved due to list overhead quota exceed\nwhich captures the amount of resources filtered out by\nuser-defined list filter.", "A resource depends on a missing type", - "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's nextHopIp address is not assigned to an instance on the\nnetwork.", "The route's next hop instance cannot ip forward.", - "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not have an\nipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", - "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that is not on the\nsame network as the route.", "The route's next hop instance does not have a status of RUNNING.", - "Error which is not critical. We decided to continue the process despite the mentioned error.", + "Error which is not critical. We decided to continue the process despite\nthe mentioned error.", "No results are present on a particular list page.", "Success is reported, but some results may be missing due to errors", - "The user attempted to use a resource that requires a TOS they have not accepted.", + "Quota information is not available to client requests (e.g:\nregions.list).", + "The user attempted to use a resource that requires a TOS they have not\naccepted.", "Warning that a resource is in use.", - "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "One or more of the resources set to auto-delete could not be deleted\nbecause they were in use.", "When a resource schema validation is ignored.", - "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", + "Instance template used in instance group manager is valid as such, but\nits application does not make a lot of sense, because it allows only\nsingle instance in instance group.", "When undeclared properties in the schema are present", "A given scope cannot be reached." ], "type": "string" }, "data": { - "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", + "description": "[Output Only] Metadata about this warning in key:\nvalue format. For example:\n\n\"data\": [\n {\n \"key\": \"scope\",\n \"value\": \"zones/us-east1-d\"\n }", "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).", + "description": "[Output Only] A key that provides more detail on the warning being\nreturned. For example, for warnings where there are no results in a list\nrequest for a particular zone, this key might be scope and\nthe key value might be the zone name. Other examples might be a key\nindicating a deprecated resource and a suggested replacement, or a\nwarning about invalid network settings (for example, if an instance\nattempts to perform IP forwarding but is not enabled for IP forwarding).", "type": "string" }, "value": { @@ -70128,298 +97894,141 @@ }, "type": "object" }, - "RouterMd5AuthenticationKey": { - "id": "RouterMd5AuthenticationKey", + "SecurityPolicyRecaptchaOptionsConfig": { + "id": "SecurityPolicyRecaptchaOptionsConfig", "properties": { - "key": { - "annotations": { - "required": [ - "compute.routers.insert" - ] - }, - "description": "[Input only] Value of the key. For patch and update calls, it can be skipped to copy the value from the previous configuration. This is allowed if the key with the same name existed before the operation. Maximum length is 80 characters. Can only contain printable ASCII characters.", - "type": "string" - }, - "name": { - "annotations": { - "required": [ - "compute.routers.insert", - "compute.routers.update" - ] - }, - "description": "Name used to identify the key. Must be unique within a router. Must be referenced by exactly one bgpPeer. Must comply with RFC1035.", + "redirectSiteKey": { + "description": "An optional field to supply a reCAPTCHA site key to be used for all the\nrules using the redirect action with the type of GOOGLE_RECAPTCHA under\nthe security policy. The specified site key needs to be created from the\nreCAPTCHA API. The user is responsible for the validity of the specified\nsite key. If not specified, a Google-managed site key is used.\nThis field is only supported in Global Security Policies of type\nCLOUD_ARMOR.", "type": "string" } }, "type": "object" }, - "RouterNat": { - "description": "Represents a Nat resource. It enables the VMs within the specified subnetworks to access Internet without external IP addresses. It specifies a list of subnetworks (and the ranges within) that want to use NAT. Customers can also provide the external IPs that would be used for NAT. GCP would auto-allocate ephemeral IPs if no external IPs are provided.", - "id": "RouterNat", + "SecurityPolicyReference": { + "id": "SecurityPolicyReference", "properties": { - "autoNetworkTier": { - "description": "The network tier to use when automatically reserving NAT IP addresses. Must be one of: PREMIUM, STANDARD. If not specified, then the current project-level default tier is used.", - "enum": [ - "FIXED_STANDARD", - "PREMIUM", - "STANDARD", - "STANDARD_OVERRIDES_FIXED_STANDARD" - ], - "enumDescriptions": [ - "Public internet quality with fixed bandwidth.", - "High quality, Google-grade network tier, support for all networking products.", - "Public internet quality, only limited support for other networking products.", - "(Output only) Temporary tier for FIXED_STANDARD when fixed standard tier is expired or not configured." - ], + "securityPolicy": { "type": "string" - }, - "drainNatIps": { - "description": "A list of URLs of the IP resources to be drained. These IPs must be valid static external IPs that have been assigned to the NAT. These IPs should be used for updating/patching a NAT only.", - "items": { - "type": "string" - }, - "type": "array" - }, - "enableDynamicPortAllocation": { - "description": "Enable Dynamic Port Allocation. If not specified, it is disabled by default. If set to true, - Dynamic Port Allocation will be enabled on this NAT config. - enableEndpointIndependentMapping cannot be set to true. - If minPorts is set, minPortsPerVm must be set to a power of two greater than or equal to 32. If minPortsPerVm is not set, a minimum of 32 ports will be allocated to a VM from this NAT config. ", - "type": "boolean" - }, - "enableEndpointIndependentMapping": { - "type": "boolean" - }, - "endpointTypes": { - "description": "List of NAT-ted endpoint types supported by the Nat Gateway. If the list is empty, then it will be equivalent to include ENDPOINT_TYPE_VM", - "items": { - "enum": [ - "ENDPOINT_TYPE_MANAGED_PROXY_LB", - "ENDPOINT_TYPE_SWG", - "ENDPOINT_TYPE_VM" - ], - "enumDescriptions": [ - "This is used for regional Application Load Balancers (internal and external) and regional proxy Network Load Balancers (internal and external) endpoints.", - "This is used for Secure Web Gateway endpoints.", - "This is the default." - ], - "type": "string" - }, - "type": "array" - }, - "icmpIdleTimeoutSec": { - "description": "Timeout (in seconds) for ICMP connections. Defaults to 30s if not set.", - "format": "int32", - "type": "integer" - }, - "logConfig": { - "$ref": "RouterNatLogConfig", - "description": "Configure logging on this NAT." - }, - "maxPortsPerVm": { - "description": "Maximum number of ports allocated to a VM from this NAT config when Dynamic Port Allocation is enabled. If Dynamic Port Allocation is not enabled, this field has no effect. If Dynamic Port Allocation is enabled, and this field is set, it must be set to a power of two greater than minPortsPerVm, or 64 if minPortsPerVm is not set. If Dynamic Port Allocation is enabled and this field is not set, a maximum of 65536 ports will be allocated to a VM from this NAT config.", - "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 is rounded up to the nearest power of 2. For example, if the value of this field is 50, at least 64 ports are allocated to a VM.", - "format": "int32", - "type": "integer" - }, - "name": { - "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])?", + } + }, + "type": "object" + }, + "SecurityPolicyRule": { + "description": "Represents a rule that describes one or more match conditions along with\nthe action to be taken when traffic matches this condition (allow or deny).", + "id": "SecurityPolicyRule", + "properties": { + "action": { + "description": "The Action to perform when the rule is matched.\nThe following are the valid actions:\n \n - allow: allow access to target.\n - deny(STATUS): deny access to target, returns the\n HTTP response code specified. Valid values for `STATUS`\n are 403, 404, and 502.\n - rate_based_ban: limit client traffic to the configured\n threshold and ban the client if the traffic exceeds the threshold.\n Configure parameters for this action in RateLimitOptions. Requires\n rate_limit_options to be set.\n - redirect: redirect to a different target. This can\n either be an internal reCAPTCHA redirect, or an external URL-based\n redirect via a 302 response. Parameters for this action can be configured\n via redirectOptions. This action is only supported in Global Security\n Policies of type CLOUD_ARMOR.\n - throttle: limit\n client traffic to the configured threshold. Configure parameters for this\n action in rateLimitOptions. Requires rate_limit_options to be set for\n this.\n - fairshare (preview only): when traffic reaches the\n threshold limit, requests from the clients matching this rule begin to be\n rate-limited using the Fair Share algorithm. This action is only allowed\n in security policies of type `CLOUD_ARMOR_INTERNAL_SERVICE`.", "type": "string" }, - "natIpAllocateOption": { - "description": "Specify the NatIpAllocateOption, which can take one of the following values: - MANUAL_ONLY: Uses only Nat IP addresses provided by customers. When there are not enough specified Nat IPs, the Nat service fails for new VMs. - AUTO_ONLY: Nat IPs are allocated by Google Cloud Platform; customers can't specify any Nat IPs. When choosing AUTO_ONLY, then nat_ip should be empty. ", - "enum": [ - "AUTO_ONLY", - "MANUAL_ONLY" - ], - "enumDescriptions": [ - "Nat IPs are allocated by GCP; customers can not specify any Nat IPs.", - "Only use Nat IPs provided by customers. When specified Nat IPs are not enough then the Nat service fails for new VMs." - ], + "description": { + "description": "An optional description of this resource. Provide this property when you\ncreate the resource.", "type": "string" }, - "natIps": { - "description": "A list of URLs of the IP resources used for this Nat service. These IP addresses must be valid static external IP addresses assigned to the project.", - "items": { - "type": "string" - }, - "type": "array" - }, - "rules": { - "description": "A list of rules associated with this NAT.", - "items": { - "$ref": "RouterNatRule" - }, - "type": "array" + "headerAction": { + "$ref": "SecurityPolicyRuleHttpHeaderAction", + "description": "Optional, additional actions that are performed on headers.\nThis field is only supported in Global Security Policies of type\nCLOUD_ARMOR." }, - "sourceSubnetworkIpRangesToNat": { - "description": "Specify the Nat option, which can take one of the following values: - ALL_SUBNETWORKS_ALL_IP_RANGES: All of the IP ranges in every Subnetwork are allowed to Nat. - ALL_SUBNETWORKS_ALL_PRIMARY_IP_RANGES: All of the primary IP ranges in every Subnetwork are allowed to Nat. - LIST_OF_SUBNETWORKS: A list of Subnetworks are allowed to Nat (specified in the field subnetwork below) The default is SUBNETWORK_IP_RANGE_TO_NAT_OPTION_UNSPECIFIED. Note that if this field contains ALL_SUBNETWORKS_ALL_IP_RANGES then there should not be any other Router.Nat section in any Router for this network in this region.", - "enum": [ - "ALL_SUBNETWORKS_ALL_IP_RANGES", - "ALL_SUBNETWORKS_ALL_PRIMARY_IP_RANGES", - "LIST_OF_SUBNETWORKS" - ], - "enumDescriptions": [ - "All the IP ranges in every Subnetwork are allowed to Nat.", - "All the primary IP ranges in every Subnetwork are allowed to Nat.", - "A list of Subnetworks are allowed to Nat (specified in the field subnetwork below)" - ], + "kind": { + "default": "compute#securityPolicyRule", + "description": "Output only. [Output only] Type of the resource. Alwayscompute#securityPolicyRule for security policy rules", + "readOnly": true, "type": "string" }, - "subnetworks": { - "description": "A list of Subnetwork resources whose traffic should be translated by NAT Gateway. It is used only when LIST_OF_SUBNETWORKS is selected for the SubnetworkIpRangeToNatOption above.", - "items": { - "$ref": "RouterNatSubnetworkToNat" - }, - "type": "array" + "match": { + "$ref": "SecurityPolicyRuleMatcher", + "description": "A match condition that incoming traffic is evaluated against.\nIf it evaluates to true, the corresponding 'action' is enforced." }, - "tcpEstablishedIdleTimeoutSec": { - "description": "Timeout (in seconds) for TCP established connections. Defaults to 1200s if not set.", - "format": "int32", - "type": "integer" + "networkMatch": { + "$ref": "SecurityPolicyRuleNetworkMatcher", + "description": "A match condition that incoming packets are evaluated against for\nCLOUD_ARMOR_NETWORK security policies. If it matches, the corresponding\n'action' is enforced.\n\nThe match criteria for a rule consists of built-in match fields (like\n'srcIpRanges') and potentially multiple user-defined match fields\n('userDefinedFields').\n\nField values may be extracted directly from the packet or derived from it\n(e.g. 'srcRegionCodes'). Some fields may not be present in every packet\n(e.g. 'srcPorts'). A user-defined field is only present if the base\nheader is found in the packet and the entire field is in bounds.\n\nEach match field may specify which values can match it, listing one or\nmore ranges, prefixes, or exact values that are considered a match for\nthe field. A field value must be present in order to match a specified\nmatch field. If no match values are specified for a match field, then any\nfield value is considered to match it, and it's not required to be\npresent. For strings specifying '*' is also equivalent to match all.\n\nFor a packet to match a rule, all specified match fields must match the\ncorresponding field values derived from the packet.\n\nExample:\n\nnetworkMatch:\n srcIpRanges:\n - \"192.0.2.0/24\"\n - \"198.51.100.0/24\"\n userDefinedFields:\n - name: \"ipv4_fragment_offset\"\n values:\n - \"1-0x1fff\"\n\nThe above match condition matches packets with a source IP in\n192.0.2.0/24 or 198.51.100.0/24 and a user-defined field named\n\"ipv4_fragment_offset\" with a value between 1 and 0x1fff inclusive." }, - "tcpTimeWaitTimeoutSec": { - "description": "Timeout (in seconds) for TCP connections that are in TIME_WAIT state. Defaults to 120s if not set.", - "format": "int32", - "type": "integer" + "preconfiguredWafConfig": { + "$ref": "SecurityPolicyRulePreconfiguredWafConfig", + "description": "Preconfigured WAF configuration to be applied for the rule. If the rule\ndoes not evaluate preconfigured WAF rules, i.e., if\nevaluatePreconfiguredWaf() is not used, this field will have no effect." }, - "tcpTransitoryIdleTimeoutSec": { - "description": "Timeout (in seconds) for TCP transitory connections. Defaults to 30s if not set.", + "preview": { + "description": "If set to true, the specified action is not enforced.", + "type": "boolean" + }, + "priority": { + "description": "An integer indicating the priority of a rule in the list. The priority\nmust be a positive value between 0 and 2147483647.\nRules are evaluated from highest to lowest priority where 0 is the\nhighest priority and 2147483647 is the lowest priority.", "format": "int32", "type": "integer" }, - "type": { - "description": "Indicates whether this NAT is used for public or private IP translation. If unspecified, it defaults to PUBLIC.", - "enum": [ - "PRIVATE", - "PUBLIC" - ], - "enumDescriptions": [ - "NAT used for private IP translation.", - "NAT used for public IP translation. This is the default." - ], - "type": "string" + "rateLimitOptions": { + "$ref": "SecurityPolicyRuleRateLimitOptions", + "description": "Must be specified if the action is \"rate_based_ban\" or \"throttle\" or\n\"fairshare\". Cannot be specified for any other actions." }, - "udpIdleTimeoutSec": { - "description": "Timeout (in seconds) for UDP connections. Defaults to 30s if not set.", - "format": "int32", - "type": "integer" + "redirectOptions": { + "$ref": "SecurityPolicyRuleRedirectOptions", + "description": "Parameters defining the redirect action. Cannot be specified for any\nother actions.\nThis field is only supported in Global Security Policies of type\nCLOUD_ARMOR." } }, "type": "object" }, - "RouterNatLogConfig": { - "description": "Configuration of logging on a NAT.", - "id": "RouterNatLogConfig", + "SecurityPolicyRuleHttpHeaderAction": { + "id": "SecurityPolicyRuleHttpHeaderAction", "properties": { - "enable": { - "description": "Indicates whether or not to export logs. This is false by default.", - "type": "boolean" - }, - "filter": { - "description": "Specify the desired filtering of logs on this NAT. If unspecified, logs are exported for all connections handled by this NAT. This option can take one of the following values: - ERRORS_ONLY: Export logs only for connection failures. - TRANSLATIONS_ONLY: Export logs only for successful connections. - ALL: Export logs for all connections, successful and unsuccessful. ", - "enum": [ - "ALL", - "ERRORS_ONLY", - "TRANSLATIONS_ONLY" - ], - "enumDescriptions": [ - "Export logs for all (successful and unsuccessful) connections.", - "Export logs for connection failures only.", - "Export logs for successful connections only." - ], - "type": "string" + "requestHeadersToAdds": { + "description": "The list of request headers to add or overwrite if they're already\npresent.", + "items": { + "$ref": "SecurityPolicyRuleHttpHeaderActionHttpHeaderOption" + }, + "type": "array" } }, "type": "object" }, - "RouterNatRule": { - "id": "RouterNatRule", + "SecurityPolicyRuleHttpHeaderActionHttpHeaderOption": { + "id": "SecurityPolicyRuleHttpHeaderActionHttpHeaderOption", "properties": { - "action": { - "$ref": "RouterNatRuleAction", - "description": "The action to be enforced for traffic that matches this rule." - }, - "description": { - "description": "An optional description of this rule.", + "headerName": { + "description": "The name of the header to set.", "type": "string" }, - "match": { - "description": "CEL expression that specifies the match condition that egress traffic from a VM is evaluated against. If it evaluates to true, the corresponding `action` is enforced. The following examples are valid match expressions for public NAT: \"inIpRange(destination.ip, '1.1.0.0/16') || inIpRange(destination.ip, '2.2.0.0/16')\" \"destination.ip == '1.1.0.1' || destination.ip == '8.8.8.8'\" The following example is a valid match expression for private NAT: \"nexthop.hub == '//networkconnectivity.googleapis.com/projects/my-project/locations/global/hubs/hub-1'\"", + "headerValue": { + "description": "The value to set the named header to.", "type": "string" - }, - "ruleNumber": { - "description": "An integer uniquely identifying a rule in the list. The rule number must be a positive value between 0 and 65000, and must be unique among rules within a NAT.", - "format": "uint32", - "type": "integer" } }, "type": "object" }, - "RouterNatRuleAction": { - "id": "RouterNatRuleAction", + "SecurityPolicyRuleMatcher": { + "description": "Represents a match condition that incoming traffic is evaluated against.\nExactly one field must be specified.", + "id": "SecurityPolicyRuleMatcher", "properties": { - "sourceNatActiveIps": { - "description": "A list of URLs of the IP resources used for this NAT rule. These IP addresses must be valid static external IP addresses assigned to the project. This field is used for public NAT.", - "items": { - "type": "string" - }, - "type": "array" + "config": { + "$ref": "SecurityPolicyRuleMatcherConfig", + "description": "The configuration options available when specifying versioned_expr.\nThis field must be specified if versioned_expr is specified and cannot\nbe specified if versioned_expr is not specified." }, - "sourceNatActiveRanges": { - "description": "A list of URLs of the subnetworks used as source ranges for this NAT Rule. These subnetworks must have purpose set to PRIVATE_NAT. This field is used for private NAT.", - "items": { - "type": "string" - }, - "type": "array" + "expr": { + "$ref": "Expr", + "description": "User defined CEVAL expression.\nA CEVAL expression is used to specify match criteria such as origin.ip,\nsource.region_code and contents in the request header.\nExpressions containing `evaluateThreatIntelligence` require a Cloud\nArmor Enterprise subscription and are not supported in Edge Policies\nnor in Regional Policies. Expressions containing\n`evaluatePreconfiguredExpr('sourceiplist-*')` require a Cloud Armor\nEnterprise subscription and are only supported in Global Security\nPolicies." }, - "sourceNatDrainIps": { - "description": "A list of URLs of the IP resources to be drained. These IPs must be valid static external IPs that have been assigned to the NAT. These IPs should be used for updating/patching a NAT rule only. This field is used for public NAT.", - "items": { - "type": "string" - }, - "type": "array" + "exprOptions": { + "$ref": "SecurityPolicyRuleMatcherExprOptions", + "description": "The configuration options available when specifying a user defined\nCEVAL expression (i.e., 'expr')." }, - "sourceNatDrainRanges": { - "description": "A list of URLs of subnetworks representing source ranges to be drained. This is only supported on patch/update, and these subnetworks must have previously been used as active ranges in this NAT Rule. This field is used for private NAT.", - "items": { - "type": "string" - }, - "type": "array" + "versionedExpr": { + "description": "Preconfigured versioned expression.\nIf this field is specified, config must also be specified.\nAvailable preconfigured expressions along with their requirements are:\nSRC_IPS_V1 - must specify the corresponding src_ip_range field in\nconfig.", + "enum": [ + "SRC_IPS_V1" + ], + "enumDescriptions": [ + "Matches the source IP address of a request to the IP ranges supplied\nin config." + ], + "type": "string" } }, "type": "object" }, - "RouterNatSubnetworkToNat": { - "description": "Defines the IP ranges that want to use NAT for a subnetwork.", - "id": "RouterNatSubnetworkToNat", + "SecurityPolicyRuleMatcherConfig": { + "id": "SecurityPolicyRuleMatcherConfig", "properties": { - "name": { - "description": "URL for the subnetwork resource that will use NAT.", - "type": "string" - }, - "secondaryIpRangeNames": { - "description": "A list of the secondary ranges of the Subnetwork that are allowed to use NAT. This can be populated only if \"LIST_OF_SECONDARY_IP_RANGES\" is one of the values in source_ip_ranges_to_nat.", - "items": { - "type": "string" - }, - "type": "array" - }, - "sourceIpRangesToNat": { - "description": "Specify the options for NAT ranges in the Subnetwork. All options of a single value are valid except NAT_IP_RANGE_OPTION_UNSPECIFIED. The only valid option with multiple values is: [\"PRIMARY_IP_RANGE\", \"LIST_OF_SECONDARY_IP_RANGES\"] Default: [ALL_IP_RANGES]", + "srcIpRanges": { + "description": "CIDR IP address range.\nMaximum number of src_ip_ranges allowed is 10.", "items": { - "enum": [ - "ALL_IP_RANGES", - "LIST_OF_SECONDARY_IP_RANGES", - "PRIMARY_IP_RANGE" - ], - "enumDescriptions": [ - "The primary and all the secondary ranges are allowed to Nat.", - "A list of secondary ranges are allowed to Nat.", - "The primary range is allowed to Nat." - ], "type": "string" }, "type": "array" @@ -70427,628 +98036,343 @@ }, "type": "object" }, - "RouterStatus": { - "id": "RouterStatus", + "SecurityPolicyRuleMatcherExprOptions": { + "id": "SecurityPolicyRuleMatcherExprOptions", "properties": { - "bestRoutes": { - "description": "Best routes for this router's network.", - "items": { - "$ref": "Route" - }, - "type": "array" - }, - "bestRoutesForRouter": { - "description": "Best routes learned by this router.", - "items": { - "$ref": "Route" - }, - "type": "array" - }, - "bgpPeerStatus": { - "items": { - "$ref": "RouterStatusBgpPeerStatus" - }, - "type": "array" - }, - "natStatus": { - "items": { - "$ref": "RouterStatusNatStatus" - }, - "type": "array" - }, - "network": { - "description": "URI of the network to which this router belongs.", - "type": "string" + "recaptchaOptions": { + "$ref": "SecurityPolicyRuleMatcherExprOptionsRecaptchaOptions", + "description": "reCAPTCHA configuration options to be applied for the rule. If the\nrule does not evaluate reCAPTCHA tokens, this field has no effect." } }, "type": "object" }, - "RouterStatusBgpPeerStatus": { - "id": "RouterStatusBgpPeerStatus", + "SecurityPolicyRuleMatcherExprOptionsRecaptchaOptions": { + "id": "SecurityPolicyRuleMatcherExprOptionsRecaptchaOptions", "properties": { - "advertisedRoutes": { - "description": "Routes that were advertised to the remote BGP peer", + "actionTokenSiteKeys": { + "description": "A list of site keys to be used during the validation of reCAPTCHA\naction-tokens. The provided site keys need to be created from\nreCAPTCHA API under the same project where the security policy is\ncreated.", "items": { - "$ref": "Route" + "type": "string" }, "type": "array" }, - "bfdStatus": { - "$ref": "BfdStatus" - }, - "enableIpv4": { - "description": "Enable IPv4 traffic over BGP Peer. It is enabled by default if the peerIpAddress is version 4.", - "type": "boolean" - }, - "enableIpv6": { - "description": "Enable IPv6 traffic over BGP Peer. It is enabled by default if the peerIpAddress is version 6.", - "type": "boolean" - }, - "ipAddress": { - "description": "IP address of the local BGP interface.", - "type": "string" - }, - "ipv4NexthopAddress": { - "description": "IPv4 address of the local BGP interface.", - "type": "string" - }, - "ipv6NexthopAddress": { - "description": "IPv6 address of the local BGP interface.", - "type": "string" - }, - "linkedVpnTunnel": { - "description": "URL of the VPN tunnel that this BGP peer controls.", - "type": "string" - }, - "md5AuthEnabled": { - "description": "Informs whether MD5 authentication is enabled on this BGP peer.", - "type": "boolean" - }, - "name": { - "description": "Name of this BGP peer. Unique within the Routers resource.", - "type": "string" - }, - "numLearnedRoutes": { - "description": "Number of routes learned from the remote BGP Peer.", - "format": "uint32", - "type": "integer" - }, - "peerIpAddress": { - "description": "IP address of the remote BGP interface.", - "type": "string" - }, - "peerIpv4NexthopAddress": { - "description": "IPv4 address of the remote BGP interface.", - "type": "string" - }, - "peerIpv6NexthopAddress": { - "description": "IPv6 address of the remote BGP interface.", - "type": "string" - }, - "routerApplianceInstance": { - "description": "[Output only] URI of the VM instance that is used as third-party router appliances such as Next Gen Firewalls, Virtual Routers, or Router Appliances. The VM instance is the peer side of the BGP session.", - "type": "string" - }, - "state": { - "description": "The state of the BGP session. For a list of possible values for this field, see BGP session states.", - "type": "string" - }, - "status": { - "description": "Status of the BGP peer: {UP, DOWN}", - "enum": [ - "DOWN", - "UNKNOWN", - "UP" - ], - "enumDescriptions": [ - "", - "", - "" - ], - "type": "string" - }, - "statusReason": { - "description": "Indicates why particular status was returned.", - "enum": [ - "IPV4_PEER_ON_IPV6_ONLY_CONNECTION", - "IPV6_PEER_ON_IPV4_ONLY_CONNECTION", - "MD5_AUTH_INTERNAL_PROBLEM", - "STATUS_REASON_UNSPECIFIED" - ], - "enumDescriptions": [ - "BGP peer disabled because it requires IPv4 but the underlying connection is IPv6-only.", - "BGP peer disabled because it requires IPv6 but the underlying connection is IPv4-only.", - "Indicates internal problems with configuration of MD5 authentication. This particular reason can only be returned when md5AuthEnabled is true and status is DOWN.", - "" - ], - "type": "string" - }, - "uptime": { - "description": "Time this session has been up. Format: 14 years, 51 weeks, 6 days, 23 hours, 59 minutes, 59 seconds", - "type": "string" - }, - "uptimeSeconds": { - "description": "Time this session has been up, in seconds. Format: 145", - "type": "string" + "sessionTokenSiteKeys": { + "description": "A list of site keys to be used during the validation of reCAPTCHA\nsession-tokens. The provided site keys need to be created from\nreCAPTCHA API under the same project where the security policy is\ncreated.", + "items": { + "type": "string" + }, + "type": "array" } }, "type": "object" }, - "RouterStatusNatStatus": { - "description": "Status of a NAT contained in this router.", - "id": "RouterStatusNatStatus", + "SecurityPolicyRuleNetworkMatcher": { + "description": "Represents a match condition that incoming network traffic is evaluated\nagainst.", + "id": "SecurityPolicyRuleNetworkMatcher", "properties": { - "autoAllocatedNatIps": { - "description": "A list of IPs auto-allocated for NAT. Example: [\"1.1.1.1\", \"129.2.16.89\"]", + "destIpRanges": { + "description": "Destination IPv4/IPv6 addresses or CIDR prefixes, in standard text\nformat.", "items": { "type": "string" }, "type": "array" }, - "drainAutoAllocatedNatIps": { - "description": "A list of IPs auto-allocated for NAT that are in drain mode. Example: [\"1.1.1.1\", \"179.12.26.133\"].", + "destPorts": { + "description": "Destination port numbers for TCP/UDP/SCTP. Each element can be a 16-bit\nunsigned decimal number (e.g. \"80\") or range (e.g. \"0-1023\").", "items": { "type": "string" }, "type": "array" }, - "drainUserAllocatedNatIps": { - "description": "A list of IPs user-allocated for NAT that are in drain mode. Example: [\"1.1.1.1\", \"179.12.26.133\"].", + "ipProtocols": { + "description": "IPv4 protocol / IPv6 next header (after extension headers). Each\nelement can be an 8-bit unsigned decimal number (e.g. \"6\"), range (e.g.\n\"253-254\"), or one of the following protocol names: \"tcp\", \"udp\",\n\"icmp\", \"esp\", \"ah\", \"ipip\", or \"sctp\".", "items": { "type": "string" }, "type": "array" }, - "minExtraNatIpsNeeded": { - "description": "The number of extra IPs to allocate. This will be greater than 0 only if user-specified IPs are NOT enough to allow all configured VMs to use NAT. This value is meaningful only when auto-allocation of NAT IPs is *not* used.", - "format": "int32", - "type": "integer" - }, - "name": { - "description": "Unique name of this NAT.", - "type": "string" - }, - "numVmEndpointsWithNatMappings": { - "description": "Number of VM endpoints (i.e., Nics) that can use NAT.", - "format": "int32", - "type": "integer" - }, - "ruleStatus": { - "description": "Status of rules in this NAT.", + "srcAsns": { + "description": "BGP Autonomous System Number associated with the source IP address.", "items": { - "$ref": "RouterStatusNatStatusNatRuleStatus" + "format": "uint32", + "type": "integer" }, "type": "array" }, - "userAllocatedNatIpResources": { - "description": "A list of fully qualified URLs of reserved IP address resources.", + "srcIpRanges": { + "description": "Source IPv4/IPv6 addresses or CIDR prefixes, in standard text format.", "items": { "type": "string" }, "type": "array" }, - "userAllocatedNatIps": { - "description": "A list of IPs user-allocated for NAT. They will be raw IP strings like \"179.12.26.133\".", + "srcPorts": { + "description": "Source port numbers for TCP/UDP/SCTP. Each element can be a 16-bit\nunsigned decimal number (e.g. \"80\") or range (e.g. \"0-1023\").", "items": { "type": "string" }, "type": "array" - } - }, - "type": "object" - }, - "RouterStatusNatStatusNatRuleStatus": { - "description": "Status of a NAT Rule contained in this NAT.", - "id": "RouterStatusNatStatusNatRuleStatus", - "properties": { - "activeNatIps": { - "description": "A list of active IPs for NAT. Example: [\"1.1.1.1\", \"179.12.26.133\"].", + }, + "srcRegionCodes": { + "description": "Two-letter ISO 3166-1 alpha-2 country code associated with the source\nIP address.", "items": { "type": "string" }, "type": "array" }, - "drainNatIps": { - "description": "A list of IPs for NAT that are in drain mode. Example: [\"1.1.1.1\", \"179.12.26.133\"].", + "userDefinedFields": { + "description": "User-defined fields. Each element names a defined field and lists the\nmatching values for that field.", "items": { - "type": "string" + "$ref": "SecurityPolicyRuleNetworkMatcherUserDefinedFieldMatch" }, "type": "array" - }, - "minExtraIpsNeeded": { - "description": "The number of extra IPs to allocate. This will be greater than 0 only if the existing IPs in this NAT Rule are NOT enough to allow all configured VMs to use NAT.", - "format": "int32", - "type": "integer" - }, - "numVmEndpointsWithNatMappings": { - "description": "Number of VM endpoints (i.e., NICs) that have NAT Mappings from this NAT Rule.", - "format": "int32", - "type": "integer" - }, - "ruleNumber": { - "description": "Rule number of the rule.", - "format": "int32", - "type": "integer" } }, "type": "object" }, - "RouterStatusResponse": { - "id": "RouterStatusResponse", + "SecurityPolicyRuleNetworkMatcherUserDefinedFieldMatch": { + "id": "SecurityPolicyRuleNetworkMatcherUserDefinedFieldMatch", "properties": { - "kind": { - "default": "compute#routerStatusResponse", - "description": "Type of resource.", + "name": { + "description": "Name of the user-defined field, as given in the definition.", "type": "string" }, - "result": { - "$ref": "RouterStatus" - } - }, - "type": "object" - }, - "RoutersPreviewResponse": { - "id": "RoutersPreviewResponse", - "properties": { - "resource": { - "$ref": "Router", - "description": "Preview of given router." + "values": { + "description": "Matching values of the field. Each element can be a 32-bit unsigned\ndecimal or hexadecimal (starting with \"0x\") number (e.g. \"64\") or\nrange (e.g. \"0x400-0x7ff\").", + "items": { + "type": "string" + }, + "type": "array" } }, "type": "object" }, - "RoutersScopedList": { - "id": "RoutersScopedList", + "SecurityPolicyRulePreconfiguredWafConfig": { + "id": "SecurityPolicyRulePreconfiguredWafConfig", "properties": { - "routers": { - "description": "A list of routers contained in this scope.", + "exclusions": { + "description": "A list of exclusions to apply during preconfigured WAF evaluation.", "items": { - "$ref": "Router" + "$ref": "SecurityPolicyRulePreconfiguredWafConfigExclusion" }, "type": "array" - }, - "warning": { - "description": "Informational warning which replaces the list of routers when the list is empty.", - "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", - "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", - "LARGE_DEPLOYMENT_WARNING", - "LIST_OVERHEAD_QUOTA_EXCEED", - "MISSING_TYPE_DEPENDENCY", - "NEXT_HOP_ADDRESS_NOT_ASSIGNED", - "NEXT_HOP_CANNOT_IP_FORWARD", - "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", - "NEXT_HOP_INSTANCE_NOT_FOUND", - "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", - "NEXT_HOP_NOT_RUNNING", - "NOT_CRITICAL_ERROR", - "NO_RESULTS_ON_PAGE", - "PARTIAL_SUCCESS", - "REQUIRED_TOS_AGREEMENT", - "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", - "RESOURCE_NOT_DELETED", - "SCHEMA_VALIDATION_IGNORED", - "SINGLE_INSTANCE_PROPERTY_TEMPLATE", - "UNDECLARED_PROPERTIES", - "UNREACHABLE" - ], - "enumDeprecated": [ - false, - false, - false, - false, - false, - false, - true, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false - ], - "enumDescriptions": [ - "Warning about failed cleanup of transient changes made by a failed operation.", - "A link to a deprecated resource was created.", - "When deploying and at least one of the resources has a type marked as deprecated", - "The user created a boot disk that is larger than image size.", - "When deploying and at least one of the resources has a type marked as experimental", - "Warning that is present in an external api call", - "Warning that value of a field has been overridden. Deprecated unused field.", - "The operation involved use of an injected kernel, which is deprecated.", - "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", - "When deploying a deployment with a exceedingly large number of resources", - "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", - "A resource depends on a missing type", - "The route's nextHopIp address is not assigned to an instance on the network.", - "The route's next hop instance cannot ip forward.", - "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", - "The route's nextHopInstance URL refers to an instance that does not exist.", - "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", - "The route's next hop instance does not have a status of RUNNING.", - "Error which is not critical. We decided to continue the process despite the mentioned error.", - "No results are present on a particular list page.", - "Success is reported, but some results may be missing due to errors", - "The user attempted to use a resource that requires a TOS they have not accepted.", - "Warning that a resource is in use.", - "One or more of the resources set to auto-delete could not be deleted because they were in use.", - "When a resource schema validation is ignored.", - "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", - "When undeclared properties in the schema are present", - "A given scope cannot be reached." - ], - "type": "string" - }, - "data": { - "description": "[Output Only] Metadata about this warning in key: value format. For example: \"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" }, - "Rule": { - "description": "This is deprecated and has no effect. Do not use.", - "id": "Rule", + "SecurityPolicyRulePreconfiguredWafConfigExclusion": { + "id": "SecurityPolicyRulePreconfiguredWafConfigExclusion", "properties": { - "action": { - "description": "This is deprecated and has no effect. Do not use.", - "enum": [ - "ALLOW", - "ALLOW_WITH_LOG", - "DENY", - "DENY_WITH_LOG", - "LOG", - "NO_ACTION" - ], - "enumDescriptions": [ - "This is deprecated and has no effect. Do not use.", - "This is deprecated and has no effect. Do not use.", - "This is deprecated and has no effect. Do not use.", - "This is deprecated and has no effect. Do not use.", - "This is deprecated and has no effect. Do not use.", - "This is deprecated and has no effect. Do not use." - ], - "type": "string" - }, - "conditions": { - "description": "This is deprecated and has no effect. Do not use.", + "requestCookiesToExclude": { + "description": "A list of request cookie names whose value will be excluded from\ninspection during preconfigured WAF evaluation.", "items": { - "$ref": "Condition" + "$ref": "SecurityPolicyRulePreconfiguredWafConfigExclusionFieldParams" }, "type": "array" }, - "description": { - "description": "This is deprecated and has no effect. Do not use.", - "type": "string" - }, - "ins": { - "description": "This is deprecated and has no effect. Do not use.", + "requestHeadersToExclude": { + "description": "A list of request header names whose value will be excluded from\ninspection during preconfigured WAF evaluation.", "items": { - "type": "string" + "$ref": "SecurityPolicyRulePreconfiguredWafConfigExclusionFieldParams" }, "type": "array" }, - "logConfigs": { - "description": "This is deprecated and has no effect. Do not use.", + "requestQueryParamsToExclude": { + "description": "A list of request query parameter names whose value will be excluded\nfrom inspection during preconfigured WAF evaluation. Note that the\nparameter can be in the query string or in the POST body.", "items": { - "$ref": "LogConfig" + "$ref": "SecurityPolicyRulePreconfiguredWafConfigExclusionFieldParams" }, "type": "array" }, - "notIns": { - "description": "This is deprecated and has no effect. Do not use.", + "requestUrisToExclude": { + "description": "A list of request URIs from the request line to be excluded from\ninspection during preconfigured WAF evaluation. When specifying this\nfield, the query or fragment part should be excluded.", "items": { - "type": "string" + "$ref": "SecurityPolicyRulePreconfiguredWafConfigExclusionFieldParams" }, "type": "array" }, - "permissions": { - "description": "This is deprecated and has no effect. Do not use.", + "targetRuleIds": { + "description": "A list of target rule IDs under the WAF rule set to apply the\npreconfigured WAF exclusion. If omitted, it refers to all the rule\nIDs under the WAF rule set.", "items": { "type": "string" }, "type": "array" + }, + "targetRuleSet": { + "description": "Target WAF rule set to apply the preconfigured WAF exclusion.", + "type": "string" } }, "type": "object" }, - "SSLHealthCheck": { - "id": "SSLHealthCheck", + "SecurityPolicyRulePreconfiguredWafConfigExclusionFieldParams": { + "id": "SecurityPolicyRulePreconfiguredWafConfigExclusionFieldParams", "properties": { - "port": { - "description": "The TCP port number to which the health check prober sends packets. The default value is 443. Valid values are 1 through 65535.", - "format": "int32", - "type": "integer" - }, - "portName": { - "description": "Not supported.", - "type": "string" - }, - "portSpecification": { - "description": "Specifies how a port is selected for health checking. Can be one of the following values: USE_FIXED_PORT: Specifies a port number explicitly using the port field in the health check. Supported by backend services for passthrough load balancers and backend services for proxy load balancers. Not supported by target pools. The health check supports all backends supported by the backend service provided the backend can be health checked. For example, GCE_VM_IP network endpoint groups, GCE_VM_IP_PORT network endpoint groups, and instance group backends. USE_NAMED_PORT: Not supported. USE_SERVING_PORT: Provides an indirect method of specifying the health check port by referring to the backend service. Only supported by backend services for proxy load balancers. Not supported by target pools. Not supported by backend services for passthrough load balancers. Supports all backends that can be health checked; for example, GCE_VM_IP_PORT network endpoint groups and instance group backends. For GCE_VM_IP_PORT network endpoint group backends, the health check uses the port number specified for each endpoint in the network endpoint group. For instance group backends, the health check uses the port number determined by looking up the backend service's named port in the instance group's list of named ports.", - "enum": [ - "USE_FIXED_PORT", - "USE_NAMED_PORT", - "USE_SERVING_PORT" - ], - "enumDescriptions": [ - "The port number in the health check's port is used for health checking. Applies to network endpoint group and instance group backends.", - "Not supported.", - "For network endpoint group backends, the health check uses the port number specified on each endpoint in the network endpoint group. For instance group backends, the health check uses the port number specified for the backend service's named port defined in the instance group's named ports." - ], - "type": "string" - }, - "proxyHeader": { - "description": "Specifies the type of proxy header to append before sending data to the backend, either NONE or PROXY_V1. The default is NONE.", + "op": { + "description": "The match operator for the field.", "enum": [ - "NONE", - "PROXY_V1" + "CONTAINS", + "ENDS_WITH", + "EQUALS", + "EQUALS_ANY", + "STARTS_WITH" ], "enumDescriptions": [ - "", - "" + "The operator matches if the field value contains the specified\nvalue.", + "The operator matches if the field value ends with the specified\nvalue.", + "The operator matches if the field value equals the specified\nvalue.", + "The operator matches if the field value is any value.", + "The operator matches if the field value starts with the specified\nvalue." ], "type": "string" }, - "request": { - "description": "Instructs the health check prober to send this exact ASCII string, up to 1024 bytes in length, after establishing the TCP connection and SSL handshake.", - "type": "string" - }, - "response": { - "description": "Creates a content-based SSL health check. In addition to establishing a TCP connection and the TLS handshake, you can configure the health check to pass only when the backend sends this exact response ASCII string, up to 1024 bytes in length. For details, see: https://cloud.google.com/load-balancing/docs/health-check-concepts#criteria-protocol-ssl-tcp", + "val": { + "description": "The value of the field.", "type": "string" } }, "type": "object" }, - "SavedAttachedDisk": { - "description": "DEPRECATED: Please use compute#savedDisk instead. An instance-attached disk resource.", - "id": "SavedAttachedDisk", + "SecurityPolicyRuleRateLimitOptions": { + "id": "SecurityPolicyRuleRateLimitOptions", "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" - }, - "boot": { - "description": "Indicates that this is a boot disk. The virtual machine will use the first partition of the disk for its root filesystem.", - "type": "boolean" - }, - "deviceName": { - "description": "Specifies the name of the disk attached to the source instance.", - "type": "string" - }, - "diskEncryptionKey": { - "$ref": "CustomerEncryptionKey", - "description": "The encryption key for the disk." + "banDurationSec": { + "description": "Can only be specified if the action for the rule is\n\"rate_based_ban\". If specified, determines the time (in seconds)\nthe traffic will continue to be banned by the rate limit after the\nrate falls below the threshold.", + "format": "int32", + "type": "integer" }, - "diskSizeGb": { - "description": "The size of the disk in base-2 GB.", - "format": "int64", - "type": "string" + "banThreshold": { + "$ref": "SecurityPolicyRuleRateLimitOptionsThreshold", + "description": "Can only be specified if the action for the rule is\n\"rate_based_ban\". If specified, the key will be banned for the\nconfigured 'ban_duration_sec' when the number of requests that exceed\nthe 'rate_limit_threshold' also exceed this 'ban_threshold'." }, - "diskType": { - "description": "[Output Only] URL of the disk type resource. For example: projects/project /zones/zone/diskTypes/pd-standard or pd-ssd", + "conformAction": { + "description": "Action to take for requests that are under the configured rate limit\nthreshold. Valid option is \"allow\" only.", "type": "string" }, - "guestOsFeatures": { - "description": "A list of features to enable on the guest operating system. Applicable only for bootable images. Read Enabling guest operating system features to see a list of available options.", - "items": { - "$ref": "GuestOsFeature" - }, - "type": "array" - }, - "index": { - "description": "Specifies zero-based index of the disk that is attached to the source instance.", - "format": "int32", - "type": "integer" - }, - "interface": { - "description": "Specifies the disk interface to use for attaching this disk, which is either SCSI or NVME.", + "enforceOnKey": { + "description": "Determines the key to enforce the rate_limit_threshold on. Possible\nvalues are:\n \n - ALL: A single rate limit threshold is applied to all\n the requests matching this rule. This is the default value if\n \"enforceOnKey\" is not configured.\n - IP: The source IP address of\n the request is the key. Each IP has this limit enforced\n separately.\n - HTTP_HEADER: The value of the HTTP\n header whose name is configured under \"enforceOnKeyName\". The key\n value is truncated to the first 128 bytes of the header value. If no\n such header is present in the request, the key type defaults toALL.\n - XFF_IP: The first IP address (i.e. the\n originating client IP address) specified in the list of IPs under\n X-Forwarded-For HTTP header. If no such header is present or the value\n is not a valid IP, the key defaults to the source IP address of\n the request i.e. key type IP.\n - HTTP_COOKIE: The value of the HTTP\n cookie whose name is configured under \"enforceOnKeyName\". The key\n value is truncated to the first 128 bytes of the cookie value. If no\n such cookie is present in the request, the key type defaults toALL.\n - HTTP_PATH: The URL path of the HTTP request. The key\n value is truncated to the first 128 bytes. \n - SNI: Server name indication in the TLS session of the\n HTTPS request. The key value is truncated to the first 128 bytes. The\n key type defaults to ALL on a HTTP session. \n - REGION_CODE: The country/region from which the request\n originates. \n - TLS_JA3_FINGERPRINT: JA3 TLS/SSL fingerprint if the\n client connects using HTTPS, HTTP/2 or HTTP/3. If not available, the\n key type defaults to ALL. \n - USER_IP: The IP address of the originating client,\n which is resolved based on \"userIpRequestHeaders\" configured with the\n security policy. If there is no \"userIpRequestHeaders\" configuration or\n an IP address cannot be resolved from it, the key type defaults toIP. \n\n- TLS_JA4_FINGERPRINT: JA4 TLS/SSL fingerprint if the\nclient connects using HTTPS, HTTP/2 or HTTP/3. If not available, the\nkey type defaults to ALL. \nFor \"fairshare\" action, this value is limited to ALL i.e. a single rate\nlimit threshold is enforced for all the requests matching the rule.", "enum": [ - "NVME", - "SCSI" + "ALL", + "HTTP_COOKIE", + "HTTP_HEADER", + "HTTP_PATH", + "IP", + "REGION_CODE", + "SNI", + "TLS_JA3_FINGERPRINT", + "TLS_JA4_FINGERPRINT", + "USER_IP", + "XFF_IP" ], "enumDescriptions": [ + "", + "", + "", + "", + "", + "", + "", + "", + "", "", "" ], "type": "string" }, - "kind": { - "default": "compute#savedAttachedDisk", - "description": "[Output Only] Type of the resource. Always compute#attachedDisk for attached disks.", - "type": "string" - }, - "licenses": { - "description": "[Output Only] Any valid publicly visible licenses.", + "enforceOnKeyConfigs": { + "description": "If specified, any combination of values of\nenforce_on_key_type/enforce_on_key_name is treated as the key on which\nratelimit threshold/action is enforced. You can specify up to 3\nenforce_on_key_configs. If enforce_on_key_configs is specified,\nenforce_on_key must not be specified.", "items": { - "type": "string" + "$ref": "SecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfig" }, "type": "array" }, - "mode": { - "description": "The mode in which this disk is attached to the source instance, either READ_WRITE or READ_ONLY.", - "enum": [ - "READ_ONLY", - "READ_WRITE" - ], - "enumDescriptions": [ - "Attaches this disk in read-only mode. Multiple virtual machines can use a disk in read-only mode at a time.", - "*[Default]* Attaches this disk in read-write mode. Only one virtual machine at a time can be attached to a disk in read-write mode." - ], + "enforceOnKeyName": { + "description": "Rate limit key name applicable only for the following key types:\nHTTP_HEADER -- Name of the HTTP header whose value is taken as the key\nvalue.\nHTTP_COOKIE -- Name of the HTTP cookie whose value is taken as the key\nvalue.", "type": "string" }, - "source": { - "description": "Specifies a URL of the disk attached to the source instance.", + "exceedAction": { + "description": "Action to take for requests that are above the configured rate limit\nthreshold, to either deny with a specified HTTP response code, or\nredirect to a different endpoint.\nValid options are `deny(STATUS)`, where valid values for\n`STATUS` are 403, 404, 429, and 502, and\n`redirect`, where the redirect parameters come from\n`exceedRedirectOptions` below.\nThe `redirect` action is only supported in Global Security Policies of\ntype CLOUD_ARMOR.", "type": "string" }, - "storageBytes": { - "description": "[Output Only] A size of the storage used by the disk's snapshot by this machine image.", - "format": "int64", + "exceedRedirectOptions": { + "$ref": "SecurityPolicyRuleRedirectOptions", + "description": "Parameters defining the redirect action that is used as the exceed\naction. Cannot be specified if the exceed action is not redirect.\nThis field is only supported in Global Security Policies of type\nCLOUD_ARMOR." + }, + "rateLimitThreshold": { + "$ref": "SecurityPolicyRuleRateLimitOptionsThreshold", + "description": "Threshold at which to begin ratelimiting." + } + }, + "type": "object" + }, + "SecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfig": { + "id": "SecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfig", + "properties": { + "enforceOnKeyName": { + "description": "Rate limit key name applicable only for the following key types:\nHTTP_HEADER -- Name of the HTTP header whose value is taken as the\nkey value. HTTP_COOKIE -- Name of the HTTP cookie whose value is\ntaken as the key value.", "type": "string" }, - "storageBytesStatus": { - "description": "[Output Only] An indicator whether storageBytes is in a stable state or it is being adjusted as a result of shared storage reallocation. This status can either be UPDATING, meaning the size of the snapshot is being updated, or UP_TO_DATE, meaning the size of the snapshot is up-to-date.", + "enforceOnKeyType": { + "description": "Determines the key to enforce the rate_limit_threshold on. Possible\nvalues are:\n \n - ALL: A single rate limit threshold is applied to all\n the requests matching this rule. This is the default value if\n \"enforceOnKeyConfigs\" is not configured.\n - IP: The source IP address of\n the request is the key. Each IP has this limit enforced\n separately.\n - HTTP_HEADER: The value of the HTTP\n header whose name is configured under \"enforceOnKeyName\". The key\n value is truncated to the first 128 bytes of the header value. If no\n such header is present in the request, the key type defaults toALL.\n - XFF_IP: The first IP address (i.e. the\n originating client IP address) specified in the list of IPs under\n X-Forwarded-For HTTP header. If no such header is present or the\n value is not a valid IP, the key defaults to the source IP address of\n the request i.e. key type IP.\n - HTTP_COOKIE: The value of the HTTP\n cookie whose name is configured under \"enforceOnKeyName\". The key\n value is truncated to the first 128 bytes of the cookie value. If no\n such cookie is present in the request, the key type defaults toALL.\n - HTTP_PATH: The URL path of the HTTP request. The key\n value is truncated to the first 128 bytes. \n - SNI: Server name indication in the TLS session of\n the HTTPS request. The key value is truncated to the first 128 bytes.\n The key type defaults to ALL on a HTTP session. \n - REGION_CODE: The country/region from which the\n request originates. \n - TLS_JA3_FINGERPRINT: JA3 TLS/SSL fingerprint if the\n client connects using HTTPS, HTTP/2 or HTTP/3. If not available, the\n key type defaults to ALL. \n - USER_IP: The IP address of the originating client,\n which is resolved based on \"userIpRequestHeaders\" configured with the\n security policy. If there is no \"userIpRequestHeaders\" configuration\n or an IP address cannot be resolved from it, the key type defaults toIP. \n\n- TLS_JA4_FINGERPRINT: JA4 TLS/SSL fingerprint if the\nclient connects using HTTPS, HTTP/2 or HTTP/3. If not available, the\nkey type defaults to ALL.", "enum": [ - "UPDATING", - "UP_TO_DATE" + "ALL", + "HTTP_COOKIE", + "HTTP_HEADER", + "HTTP_PATH", + "IP", + "REGION_CODE", + "SNI", + "TLS_JA3_FINGERPRINT", + "TLS_JA4_FINGERPRINT", + "USER_IP", + "XFF_IP" ], "enumDescriptions": [ + "", + "", + "", + "", + "", + "", + "", + "", + "", "", "" ], "type": "string" + } + }, + "type": "object" + }, + "SecurityPolicyRuleRateLimitOptionsThreshold": { + "id": "SecurityPolicyRuleRateLimitOptionsThreshold", + "properties": { + "count": { + "description": "Number of HTTP(S) requests for calculating the threshold.", + "format": "int32", + "type": "integer" + }, + "intervalSec": { + "description": "Interval over which the threshold is computed.", + "format": "int32", + "type": "integer" + } + }, + "type": "object" + }, + "SecurityPolicyRuleRedirectOptions": { + "id": "SecurityPolicyRuleRedirectOptions", + "properties": { + "target": { + "description": "Target for the redirect action. This is required if the type is\nEXTERNAL_302 and cannot be specified for GOOGLE_RECAPTCHA.", + "type": "string" }, "type": { - "description": "Specifies the type of the attached disk, either SCRATCH or PERSISTENT.", + "description": "Type of the redirect action. Possible values are:\n \n - GOOGLE_RECAPTCHA: redirect to reCAPTCHA for manual\n challenge assessment.\n - EXTERNAL_302: redirect to a different URL via a 302\n response.", "enum": [ - "PERSISTENT", - "SCRATCH" + "EXTERNAL_302", + "GOOGLE_RECAPTCHA" ], "enumDescriptions": [ "", @@ -71059,247 +98383,323 @@ }, "type": "object" }, - "SavedDisk": { - "description": "An instance-attached disk resource.", - "id": "SavedDisk", + "SecurityPolicyUserDefinedField": { + "id": "SecurityPolicyUserDefinedField", "properties": { - "architecture": { - "description": "[Output Only] The architecture of the attached disk.", + "base": { + "description": "The base relative to which 'offset' is measured. Possible values are:\n \n - IPV4: Points to the beginning of the IPv4 header.\n - IPV6: Points to the beginning of the IPv6 header.\n - TCP: Points to the beginning of the TCP header, skipping\n over any IPv4 options or IPv6 extension headers. Not present for\n non-first fragments.\n - UDP: Points to the beginning of the UDP header, skipping\n over any IPv4 options or IPv6 extension headers. Not present for\n non-first fragments.\n\n\nrequired", "enum": [ - "ARCHITECTURE_UNSPECIFIED", - "ARM64", - "X86_64" + "IPV4", + "IPV6", + "TCP", + "UDP" ], "enumDescriptions": [ - "Default value indicating Architecture is not set.", - "Machines with architecture ARM64", - "Machines with architecture X86_64" + "", + "", + "", + "" ], "type": "string" }, - "kind": { - "default": "compute#savedDisk", - "description": "[Output Only] Type of the resource. Always compute#savedDisk for attached disks.", + "mask": { + "description": "If specified, apply this mask (bitwise AND) to the field to ignore bits\nbefore matching. Encoded as a hexadecimal number (starting with \"0x\").\nThe last byte of the field (in network byte order) corresponds to the\nleast significant byte of the mask.", "type": "string" }, - "sourceDisk": { - "description": "Specifies a URL of the disk attached to the source instance.", + "name": { + "description": "The name of this field. Must be unique within the policy.", "type": "string" }, - "storageBytes": { - "description": "[Output Only] Size of the individual disk snapshot used by this machine image.", - "format": "int64", - "type": "string" + "offset": { + "description": "Offset of the first byte of the field (in network byte order) relative to\n'base'.", + "format": "int32", + "type": "integer" }, - "storageBytesStatus": { - "description": "[Output Only] An indicator whether storageBytes is in a stable state or it is being adjusted as a result of shared storage reallocation. This status can either be UPDATING, meaning the size of the snapshot is being updated, or UP_TO_DATE, meaning the size of the snapshot is up-to-date.", - "enum": [ - "UPDATING", - "UP_TO_DATE" - ], - "enumDescriptions": [ - "", - "" - ], + "size": { + "description": "Size of the field in bytes. Valid values: 1-4.", + "format": "int32", + "type": "integer" + } + }, + "type": "object" + }, + "SecuritySettings": { + "description": "The authentication and authorization settings for a BackendService.", + "id": "SecuritySettings", + "properties": { + "awsV4Authentication": { + "$ref": "AWSV4Signature", + "description": "The configuration needed to generate a signature for access to private\nstorage buckets that support AWS's Signature Version 4 for authentication.\nAllowed only for INTERNET_IP_PORT and INTERNET_FQDN_PORT NEG backends." + }, + "clientTlsPolicy": { + "description": "Optional. A URL referring to a networksecurity.ClientTlsPolicy resource\nthat describes how clients should authenticate with this service's\nbackends.\n\n clientTlsPolicy only applies to a globalBackendService with the loadBalancingScheme set\nto INTERNAL_SELF_MANAGED.\n\n If left blank, communications are not encrypted.", "type": "string" + }, + "subjectAltNames": { + "description": "Optional. A list of Subject Alternative Names (SANs) that the client\nverifies during a mutual TLS handshake with an server/endpoint for thisBackendService. When the server presents its X.509 certificate\nto the client, the client inspects the certificate'ssubjectAltName field. If the field contains one of the\nspecified values, the communication continues. Otherwise, it fails. This\nadditional check enables the client to verify that the server is authorized\nto run the requested service.\n\n Note that the contents of the server\ncertificate's subjectAltName field are configured by the\nPublic Key Infrastructure which provisions server identities.\n\n Only applies to a global BackendService withloadBalancingScheme set to INTERNAL_SELF_MANAGED.\nOnly applies when BackendService has an attachedclientTlsPolicy with clientCertificate (mTLS\nmode).", + "items": { + "type": "string" + }, + "type": "array" } }, "type": "object" }, - "ScalingScheduleStatus": { - "id": "ScalingScheduleStatus", + "SerialPortOutput": { + "description": "An instance serial console output.", + "id": "SerialPortOutput", "properties": { - "lastStartTime": { - "description": "[Output Only] The last time the scaling schedule became active. Note: this is a timestamp when a schedule actually became active, not when it was planned to do so. The timestamp is in RFC3339 text format.", + "contents": { + "description": "[Output Only] The contents of the console output.", "type": "string" }, - "nextStartTime": { - "description": "[Output Only] The next time the scaling schedule is to become active. Note: this is a timestamp when a schedule is planned to run, but the actual time might be slightly different. The timestamp is in RFC3339 text format.", + "kind": { + "default": "compute#serialPortOutput", + "description": "Output only. [Output Only] Type of the resource. Alwayscompute#serialPortOutput for serial port output.", + "readOnly": true, "type": "string" }, - "state": { - "description": "[Output Only] The current state of a scaling schedule.", + "next": { + "description": "[Output Only] The position of the next byte of content, regardless of\nwhether the content exists, following the output returned in the `contents`\nproperty. Use this value in the next request as the start\nparameter.", + "format": "int64", + "type": "string" + }, + "selfLink": { + "description": "Output only. [Output Only] Server-defined URL for this resource.", + "readOnly": true, + "type": "string" + }, + "start": { + "description": "The starting byte position of the output that was returned.\nThis should match the start parameter sent with the request.\nIf the serial console output exceeds the size of the buffer (1 MB), older\noutput is overwritten by newer content. The output start value will\nindicate the byte position of the output that was returned, which might be\ndifferent than the `start` value that was specified in the request.", + "format": "int64", + "type": "string" + } + }, + "type": "object" + }, + "ServerBinding": { + "id": "ServerBinding", + "properties": { + "type": { "enum": [ - "ACTIVE", - "DISABLED", - "OBSOLETE", - "READY" + "RESTART_NODE_ON_ANY_SERVER", + "RESTART_NODE_ON_MINIMAL_SERVERS", + "SERVER_BINDING_TYPE_UNSPECIFIED" ], "enumDescriptions": [ - "The current autoscaling recommendation is influenced by this scaling schedule.", - "This scaling schedule has been disabled by the user.", - "This scaling schedule will never become active again.", - "The current autoscaling recommendation is not influenced by this scaling schedule." + "Node may associate with any physical server over its lifetime.", + "Node may associate with minimal physical servers over its lifetime.", + "" ], "type": "string" } }, "type": "object" }, - "Scheduling": { - "description": "Sets the scheduling options for an Instance.", - "id": "Scheduling", + "ServiceAccount": { + "description": "A service account.", + "id": "ServiceAccount", + "properties": { + "email": { + "description": "Email address of the service account.", + "type": "string" + }, + "scopes": { + "description": "The list of scopes to be made available for this service account.", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "ServiceAttachment": { + "description": "Represents a ServiceAttachment resource.\n\nA service attachment represents a service that a producer has exposed.\nIt encapsulates the load balancer which fronts the service runs and\na list of NAT IP ranges that the producers uses to represent\nthe consumers connecting to the service.", + "id": "ServiceAttachment", "properties": { - "automaticRestart": { - "description": "Specifies whether the instance should be automatically restarted if it is terminated by Compute Engine (not terminated by a user). You can only set the automatic restart option for standard instances. Preemptible instances cannot be automatically restarted. By default, this is set to true so an instance is automatically restarted if it is terminated by Compute Engine.", - "type": "boolean" + "connectedEndpoints": { + "description": "Output only. [Output Only] An array of connections for all the consumers connected to\nthis service attachment.", + "items": { + "$ref": "ServiceAttachmentConnectedEndpoint" + }, + "readOnly": true, + "type": "array" }, - "instanceTerminationAction": { - "description": "Specifies the termination action for the instance.", + "connectionPreference": { + "description": "The connection preference of service attachment. The value can be set\nto ACCEPT_AUTOMATIC. An ACCEPT_AUTOMATIC\nservice attachment is one that always accepts the connection from consumer\nforwarding rules.", "enum": [ - "DELETE", - "INSTANCE_TERMINATION_ACTION_UNSPECIFIED", - "STOP" + "ACCEPT_AUTOMATIC", + "ACCEPT_MANUAL", + "CONNECTION_PREFERENCE_UNSPECIFIED" ], "enumDescriptions": [ - "Delete the VM.", - "Default value. This value is unused.", - "Stop the VM without storing in-memory content. default action." + "", + "", + "" ], "type": "string" }, - "localSsdRecoveryTimeout": { - "$ref": "Duration", - "description": "Specifies the maximum amount of time a Local Ssd Vm should wait while recovery of the Local Ssd state is attempted. Its value should be in between 0 and 168 hours with hour granularity and the default value being 1 hour." + "consumerAcceptLists": { + "description": "Specifies which consumer projects or networks are allowed to connect to the\nservice attachment. Each project or network has a connection limit. A given\nservice attachment can manage connections at either the project or network\nlevel. Therefore, both the accept and reject lists for a given service\nattachment must contain either only projects or only networks or only\nendpoints.", + "items": { + "$ref": "ServiceAttachmentConsumerProjectLimit" + }, + "type": "array" }, - "locationHint": { - "description": "An opaque location hint used to place the instance close to other resources. This field is for use by internal tools that use the public API.", + "consumerRejectLists": { + "description": "Specifies a list of projects or networks that are not allowed to connect to\nthis service attachment. The project can be specified using its project ID\nor project number and the network can be specified using its URL. A given\nservice attachment can manage connections at either the project or network\nlevel. Therefore, both the reject and accept lists for a given service\nattachment must contain either only projects or only networks.", + "items": { + "type": "string" + }, + "type": "array" + }, + "creationTimestamp": { + "description": "Output only. [Output Only] Creation timestamp inRFC3339\ntext format.", + "readOnly": true, "type": "string" }, - "minNodeCpus": { - "description": "The minimum number of virtual CPUs this instance will consume when running on a sole-tenant node.", - "format": "int32", - "type": "integer" + "description": { + "description": "An optional description of this resource. Provide this property when you\ncreate the resource.", + "type": "string" }, - "nodeAffinities": { - "description": "A set of node affinity and anti-affinity configurations. Refer to Configuring node affinity for more information. Overrides reservationAffinity.", + "domainNames": { + "description": "If specified, the domain name will be used during the integration between\nthe PSC connected endpoints and the Cloud DNS. For example, this is a valid\ndomain name: \"p.mycompany.com.\". Current max number of domain names\nsupported is 1.", "items": { - "$ref": "SchedulingNodeAffinity" + "type": "string" }, "type": "array" }, - "onHostMaintenance": { - "description": "Defines the maintenance behavior for this instance. For standard instances, the default behavior is MIGRATE. For preemptible instances, the default and only possible behavior is TERMINATE. For more information, see Set VM host maintenance policy.", - "enum": [ - "MIGRATE", - "TERMINATE" - ], - "enumDescriptions": [ - "*[Default]* Allows Compute Engine to automatically migrate instances out of the way of maintenance events.", - "Tells Compute Engine to terminate and (optionally) restart the instance away from the maintenance activity. If you would like your instance to be restarted, set the automaticRestart flag to true. Your instance may be restarted more than once, and it may be restarted outside the window of maintenance events." - ], - "type": "string" - }, - "preemptible": { - "description": "Defines whether the instance is preemptible. This can only be set during instance creation or while the instance is stopped and therefore, in a `TERMINATED` state. See Instance Life Cycle for more information on the possible instance states.", + "enableProxyProtocol": { + "description": "If true, enable the proxy protocol which is for supplying client TCP/IP\naddress data in TCP connections that traverse proxies on their way to\ndestination servers.", "type": "boolean" }, - "provisioningModel": { - "description": "Specifies the provisioning model of the instance.", - "enum": [ - "SPOT", - "STANDARD" - ], - "enumDescriptions": [ - "Heavily discounted, no guaranteed runtime.", - "Standard provisioning with user controlled runtime, no discounts." - ], + "fingerprint": { + "description": "Fingerprint of this resource. A hash of the contents stored in this object.\nThis field is used in optimistic locking. This field will be ignored when\ninserting a ServiceAttachment. An up-to-date fingerprint must\nbe provided in order to patch/update the ServiceAttachment; otherwise, the\nrequest will fail with error 412 conditionNotMet. To see the\nlatest fingerprint, make a get() request to retrieve the\nServiceAttachment.", + "format": "byte", "type": "string" - } - }, - "type": "object" - }, - "SchedulingNodeAffinity": { - "description": "Node Affinity: the configuration of desired nodes onto which this Instance could be scheduled.", - "id": "SchedulingNodeAffinity", - "properties": { - "key": { - "description": "Corresponds to the label key of Node resource.", + }, + "id": { + "description": "Output only. [Output Only] The unique identifier for the resource type. The server\ngenerates this identifier.", + "format": "uint64", + "readOnly": true, "type": "string" }, - "operator": { - "description": "Defines the operation of node selection. Valid operators are IN for affinity and NOT_IN for anti-affinity.", - "enum": [ - "IN", - "NOT_IN", - "OPERATOR_UNSPECIFIED" - ], - "enumDescriptions": [ - "Requires Compute Engine to seek for matched nodes.", - "Requires Compute Engine to avoid certain nodes.", - "" - ], + "kind": { + "default": "compute#serviceAttachment", + "description": "Output only. [Output Only] Type of the resource. Alwayscompute#serviceAttachment for service attachments.", + "readOnly": true, "type": "string" }, - "values": { - "description": "Corresponds to the label values of Node resource.", + "metadata": { + "additionalProperties": { + "type": "string" + }, + "description": "Metadata of the service attachment.", + "type": "object" + }, + "name": { + "annotations": { + "required": [ + "compute.serviceAttachments.insert" + ] + }, + "description": "Name of the resource. Provided by the client when the resource is created.\nThe name must be 1-63 characters long, and comply withRFC1035.\nSpecifically, the name must be 1-63 characters long and match the regular\nexpression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first\ncharacter must be a lowercase letter, and all following characters must\nbe a dash, lowercase letter, or digit, except the last character, which\ncannot be a dash.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "type": "string" + }, + "natIpsPerEndpoint": { + "description": "The number of NAT IP addresses to be allocated per connected endpoint.\nIf not specified, the default value is 1.", + "format": "uint32", + "type": "integer" + }, + "natSubnets": { + "description": "An array of URLs where each entry is the URL of a subnet provided\nby the service producer to use for NAT in this service attachment.", "items": { "type": "string" }, "type": "array" - } - }, - "type": "object" - }, - "Screenshot": { - "description": "An instance's screenshot.", - "id": "Screenshot", - "properties": { - "contents": { - "description": "[Output Only] The Base64-encoded screenshot data.", + }, + "producerForwardingRule": { + "deprecated": true, + "description": "The URL of a forwarding rule with loadBalancingScheme INTERNAL* that is\nserving the endpoint identified by this service attachment.", "type": "string" }, - "kind": { - "default": "compute#screenshot", - "description": "[Output Only] Type of the resource. Always compute#screenshot for the screenshots.", + "propagatedConnectionLimit": { + "description": "The number of consumer spokes that connected Private Service Connect\nendpoints can be propagated to through Network Connectivity Center. This\nlimit lets the service producer limit how many propagated Private Service\nConnect connections can be established to this service attachment from a\nsingle consumer.\n\nIf the connection preference of the service attachment is ACCEPT_MANUAL,\nthe limit applies to each project or network that is listed in the consumer\naccept list. If the connection preference of the service attachment is\nACCEPT_AUTOMATIC, the limit applies to each project that contains a\nconnected endpoint.\n\nIf unspecified, the default propagated connection limit is 250.", + "format": "uint32", + "type": "integer" + }, + "pscServiceAttachmentId": { + "$ref": "Uint128", + "description": "Output only. [Output Only] An 128-bit global unique ID of the PSC service attachment.", + "readOnly": true + }, + "reconcileConnections": { + "description": "This flag determines whether a consumer accept/reject list change can\nreconcile the statuses of existing ACCEPTED or REJECTED PSC endpoints.\n \n \n - If false, connection policy update will only affect existing PENDING\n PSC endpoints. Existing ACCEPTED/REJECTED endpoints will remain untouched\n regardless how the connection policy is modified . \n - If true,\n update will affect both PENDING and ACCEPTED/REJECTED PSC endpoints. For\n example, an ACCEPTED PSC endpoint will be moved to REJECTED if its project\n is added to the reject list.\n\n\nFor newly created service attachment, this boolean defaults to false.", + "type": "boolean" + }, + "region": { + "description": "Output only. [Output Only] URL of the region where the service attachment resides.\nThis field applies only to the region resource. You must specify this\nfield as part of the HTTP request URL. It is not settable as a field in\nthe request body.", + "readOnly": true, + "type": "string" + }, + "selfLink": { + "description": "Output only. [Output Only] Server-defined URL for the resource.", + "readOnly": true, + "type": "string" + }, + "targetService": { + "description": "The URL of a service serving the endpoint identified by this service\nattachment.", "type": "string" } }, "type": "object" }, - "SecurityPoliciesAggregatedList": { - "id": "SecurityPoliciesAggregatedList", + "ServiceAttachmentAggregatedList": { + "description": "Contains a list of ServiceAttachmentsScopedList.", + "id": "ServiceAttachmentAggregatedList", "properties": { - "etag": { - "type": "string" - }, "id": { "description": "[Output Only] Unique identifier for the resource; defined by the server.", "type": "string" }, "items": { "additionalProperties": { - "$ref": "SecurityPoliciesScopedList", - "description": "Name of the scope containing this set of security policies." + "$ref": "ServiceAttachmentsScopedList", + "description": "Name of the scope containing this set of ServiceAttachments." }, - "description": "A list of SecurityPoliciesScopedList resources.", + "description": "A list of ServiceAttachmentsScopedList resources.", "type": "object" }, "kind": { - "default": "compute#securityPoliciesAggregatedList", - "description": "[Output Only] Type of resource. Always compute#securityPolicyAggregatedList for lists of Security Policies.", + "default": "compute#serviceAttachmentAggregatedList", + "description": "Output only. Type of resource.", + "readOnly": true, "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.", + "description": "[Output Only] This token allows you to get the next page of results for\nlist requests. If the number of results is larger thanmaxResults, use the nextPageToken as a value for\nthe query parameter pageToken in the next list request.\nSubsequent list requests will have their own nextPageToken to\ncontinue paging through the results.", "type": "string" }, "selfLink": { - "description": "[Output Only] Server-defined URL for this resource.", + "description": "Output only. [Output Only] Server-defined URL for this resource.", + "readOnly": true, "type": "string" }, "unreachables": { - "description": "[Output Only] Unreachable resources.", + "description": "Output only. [Output Only] Unreachable resources.", "items": { "type": "string" }, + "readOnly": true, "type": "array" }, "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.", + "description": "[Output Only] A warning code, if applicable. For example, Compute\nEngine returns NO_RESULTS_ON_PAGE if there\nare no results in the response.", "enum": [ "CLEANUP_FAILED", "DEPRECATED_RESOURCE_USED", @@ -71322,6 +98722,7 @@ "NOT_CRITICAL_ERROR", "NO_RESULTS_ON_PAGE", "PARTIAL_SUCCESS", + "QUOTA_INFO_UNAVAILABLE", "REQUIRED_TOS_AGREEMENT", "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", "RESOURCE_NOT_DELETED", @@ -71358,46 +98759,48 @@ false, false, false, + false, false ], "enumDescriptions": [ - "Warning about failed cleanup of transient changes made by a failed operation.", + "Warning about failed cleanup of transient changes made by a failed\noperation.", "A link to a deprecated resource was created.", - "When deploying and at least one of the resources has a type marked as deprecated", + "When deploying and at least one of the resources has a type marked as\ndeprecated", "The user created a boot disk that is larger than image size.", - "When deploying and at least one of the resources has a type marked as experimental", + "When deploying and at least one of the resources has a type marked as\nexperimental", "Warning that is present in an external api call", - "Warning that value of a field has been overridden. Deprecated unused field.", + "Warning that value of a field has been overridden.\nDeprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", - "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is\nnot of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", - "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", + "Resource can't be retrieved due to list overhead quota exceed\nwhich captures the amount of resources filtered out by\nuser-defined list filter.", "A resource depends on a missing type", - "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's nextHopIp address is not assigned to an instance on the\nnetwork.", "The route's next hop instance cannot ip forward.", - "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not have an\nipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", - "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that is not on the\nsame network as the route.", "The route's next hop instance does not have a status of RUNNING.", - "Error which is not critical. We decided to continue the process despite the mentioned error.", + "Error which is not critical. We decided to continue the process despite\nthe mentioned error.", "No results are present on a particular list page.", "Success is reported, but some results may be missing due to errors", - "The user attempted to use a resource that requires a TOS they have not accepted.", + "Quota information is not available to client requests (e.g:\nregions.list).", + "The user attempted to use a resource that requires a TOS they have not\naccepted.", "Warning that a resource is in use.", - "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "One or more of the resources set to auto-delete could not be deleted\nbecause they were in use.", "When a resource schema validation is ignored.", - "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", + "Instance template used in instance group manager is valid as such, but\nits application does not make a lot of sense, because it allows only\nsingle instance in instance group.", "When undeclared properties in the schema are present", "A given scope cannot be reached." ], "type": "string" }, "data": { - "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", + "description": "[Output Only] Metadata about this warning in key:\nvalue format. For example:\n\n\"data\": [\n {\n \"key\": \"scope\",\n \"value\": \"zones/us-east1-d\"\n }", "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).", + "description": "[Output Only] A key that provides more detail on the warning being\nreturned. For example, for warnings where there are no results in a list\nrequest for a particular zone, this key might be scope and\nthe key value might be the zone name. Other examples might be a key\nindicating a deprecated resource and a suggested replacement, or a\nwarning about invalid network settings (for example, if an instance\nattempts to perform IP forwarding but is not enabled for IP forwarding).", "type": "string" }, "value": { @@ -71419,30 +98822,118 @@ }, "type": "object" }, - "SecurityPoliciesListPreconfiguredExpressionSetsResponse": { - "id": "SecurityPoliciesListPreconfiguredExpressionSetsResponse", + "ServiceAttachmentConnectedEndpoint": { + "description": "[Output Only] A connection connected to this service attachment.", + "id": "ServiceAttachmentConnectedEndpoint", "properties": { - "preconfiguredExpressionSets": { - "$ref": "SecurityPoliciesWafConfig" + "consumerNetwork": { + "description": "The url of the consumer network.", + "type": "string" + }, + "endpoint": { + "description": "The url of a connected endpoint.", + "type": "string" + }, + "endpointWithId": { + "description": "The url of a connected endpoint with resource id.", + "type": "string" + }, + "natIps": { + "description": "NAT IPs of the connected PSC endpoint and those of other endpoints\npropagated from it.", + "items": { + "type": "string" + }, + "type": "array" + }, + "propagatedConnectionCount": { + "description": "The number of consumer Network Connectivity Center spokes that the\nconnected Private Service Connect endpoint has propagated to.", + "format": "uint32", + "type": "integer" + }, + "pscConnectionId": { + "description": "The PSC connection id of the connected endpoint.", + "format": "uint64", + "type": "string" + }, + "status": { + "description": "The status of a connected endpoint to this service attachment.", + "enum": [ + "ACCEPTED", + "CLOSED", + "NEEDS_ATTENTION", + "PENDING", + "REJECTED", + "STATUS_UNSPECIFIED" + ], + "enumDescriptions": [ + "The connection has been accepted by the producer.", + "The connection has been closed by the producer.", + "The connection has been accepted by the producer, but the producer\nneeds to take further action before the forwarding rule can serve\ntraffic.", + "The connection is pending acceptance by the producer.", + "The consumer is still connected but not using the connection.", + "" + ], + "type": "string" } }, "type": "object" }, - "SecurityPoliciesScopedList": { - "id": "SecurityPoliciesScopedList", + "ServiceAttachmentConsumerProjectLimit": { + "id": "ServiceAttachmentConsumerProjectLimit", "properties": { - "securityPolicies": { - "description": "A list of SecurityPolicies contained in this scope.", + "connectionLimit": { + "description": "The value of the limit to set. For endpoint_url, the limit should be no\nmore than 1.", + "format": "uint32", + "type": "integer" + }, + "endpointUrl": { + "description": "The URL for the PSC endpoint to accept", + "type": "string" + }, + "networkUrl": { + "description": "The network URL for the network to set the limit for.", + "type": "string" + }, + "projectIdOrNum": { + "description": "The project id or number for the project to set the limit for.", + "type": "string" + } + }, + "type": "object" + }, + "ServiceAttachmentList": { + "id": "ServiceAttachmentList", + "properties": { + "id": { + "description": "[Output Only] Unique identifier for the resource; defined by the server.", + "type": "string" + }, + "items": { + "description": "A list of ServiceAttachment resources.", "items": { - "$ref": "SecurityPolicy" + "$ref": "ServiceAttachment" }, "type": "array" }, + "kind": { + "default": "compute#serviceAttachmentList", + "description": "Output only. [Output Only] Type of the resource. Alwayscompute#serviceAttachment for service attachments.", + "readOnly": true, + "type": "string" + }, + "nextPageToken": { + "description": "[Output Only] This token allows you to get the next page of results for\nlist requests. If the number of results is larger thanmaxResults, use the nextPageToken as a value for\nthe query parameter pageToken in the next list request.\nSubsequent list requests will have their own nextPageToken to\ncontinue paging through the results.", + "type": "string" + }, + "selfLink": { + "description": "[Output Only] Server-defined URL for this resource.", + "type": "string" + }, "warning": { - "description": "Informational warning which replaces the list of security policies when the list is empty.", + "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.", + "description": "[Output Only] A warning code, if applicable. For example, Compute\nEngine returns NO_RESULTS_ON_PAGE if there\nare no results in the response.", "enum": [ "CLEANUP_FAILED", "DEPRECATED_RESOURCE_USED", @@ -71465,6 +98956,7 @@ "NOT_CRITICAL_ERROR", "NO_RESULTS_ON_PAGE", "PARTIAL_SUCCESS", + "QUOTA_INFO_UNAVAILABLE", "REQUIRED_TOS_AGREEMENT", "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", "RESOURCE_NOT_DELETED", @@ -71501,338 +98993,84 @@ false, false, false, + false, false ], "enumDescriptions": [ - "Warning about failed cleanup of transient changes made by a failed operation.", + "Warning about failed cleanup of transient changes made by a failed\noperation.", "A link to a deprecated resource was created.", - "When deploying and at least one of the resources has a type marked as deprecated", + "When deploying and at least one of the resources has a type marked as\ndeprecated", "The user created a boot disk that is larger than image size.", - "When deploying and at least one of the resources has a type marked as experimental", + "When deploying and at least one of the resources has a type marked as\nexperimental", "Warning that is present in an external api call", - "Warning that value of a field has been overridden. Deprecated unused field.", + "Warning that value of a field has been overridden.\nDeprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", - "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is\nnot of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", - "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", + "Resource can't be retrieved due to list overhead quota exceed\nwhich captures the amount of resources filtered out by\nuser-defined list filter.", "A resource depends on a missing type", - "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's nextHopIp address is not assigned to an instance on the\nnetwork.", "The route's next hop instance cannot ip forward.", - "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not have an\nipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", - "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that is not on the\nsame network as the route.", "The route's next hop instance does not have a status of RUNNING.", - "Error which is not critical. We decided to continue the process despite the mentioned error.", + "Error which is not critical. We decided to continue the process despite\nthe mentioned error.", "No results are present on a particular list page.", "Success is reported, but some results may be missing due to errors", - "The user attempted to use a resource that requires a TOS they have not accepted.", + "Quota information is not available to client requests (e.g:\nregions.list).", + "The user attempted to use a resource that requires a TOS they have not\naccepted.", "Warning that a resource is in use.", - "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "One or more of the resources set to auto-delete could not be deleted\nbecause they were in use.", "When a resource schema validation is ignored.", - "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", + "Instance template used in instance group manager is valid as such, but\nits application does not make a lot of sense, because it allows only\nsingle instance in instance group.", "When undeclared properties in the schema are present", "A given scope cannot be reached." ], "type": "string" }, "data": { - "description": "[Output Only] Metadata about this warning in key: value format. For example: \"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" - }, - "SecurityPoliciesWafConfig": { - "id": "SecurityPoliciesWafConfig", - "properties": { - "wafRules": { - "$ref": "PreconfiguredWafSet" - } - }, - "type": "object" - }, - "SecurityPolicy": { - "description": "Represents a Google Cloud Armor security policy resource. Only external backend services that use load balancers can reference a security policy. For more information, see Google Cloud Armor security policy overview.", - "id": "SecurityPolicy", - "properties": { - "adaptiveProtectionConfig": { - "$ref": "SecurityPolicyAdaptiveProtectionConfig" - }, - "advancedOptionsConfig": { - "$ref": "SecurityPolicyAdvancedOptionsConfig" - }, - "creationTimestamp": { - "description": "[Output Only] Creation timestamp in RFC3339 text format.", - "type": "string" - }, - "ddosProtectionConfig": { - "$ref": "SecurityPolicyDdosProtectionConfig" - }, - "description": { - "description": "An optional description of this resource. Provide this property when you create the resource.", - "type": "string" - }, - "fingerprint": { - "description": "Specifies a fingerprint for this resource, which is essentially a hash of the metadata's contents and used for optimistic locking. The fingerprint is initially generated by Compute Engine and changes after every request to modify or update metadata. You must always provide an up-to-date fingerprint hash in order to update or change metadata, otherwise the request will fail with error 412 conditionNotMet. To see the latest fingerprint, make get() request to the security policy.", - "format": "byte", - "type": "string" - }, - "id": { - "description": "[Output Only] The unique identifier for the resource. This identifier is defined by the server.", - "format": "uint64", - "type": "string" - }, - "kind": { - "default": "compute#securityPolicy", - "description": "[Output only] Type of the resource. Always compute#securityPolicyfor security policies", - "type": "string" - }, - "labelFingerprint": { - "description": "A fingerprint for the labels being applied to this security policy, which is essentially a hash of the labels set used for optimistic locking. The fingerprint is initially generated by Compute Engine and changes after every request to modify or update labels. You must always provide an up-to-date fingerprint hash in order to update or change labels. To see the latest fingerprint, make get() request to the security policy.", - "format": "byte", - "type": "string" - }, - "labels": { - "additionalProperties": { - "type": "string" - }, - "description": "Labels for this resource. These can only be added or modified by the setLabels method. Each label key/value pair must comply with RFC1035. Label values may be empty.", - "type": "object" - }, - "name": { - "description": "Name of the resource. Provided by the client when the resource is created. The name must be 1-63 characters long, and comply with RFC1035. 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" - }, - "recaptchaOptionsConfig": { - "$ref": "SecurityPolicyRecaptchaOptionsConfig" - }, - "region": { - "description": "[Output Only] URL of the region where the regional security policy resides. This field is not applicable to global security policies.", - "type": "string" - }, - "rules": { - "description": "A list of rules that belong to this policy. There must always be a default rule which is a rule with priority 2147483647 and match all condition (for the match condition this means match \"*\" for srcIpRanges and for the networkMatch condition every field must be either match \"*\" or not set). If no rules are provided when creating a security policy, a default rule with action \"allow\" will be added.", - "items": { - "$ref": "SecurityPolicyRule" - }, - "type": "array" - }, - "selfLink": { - "description": "[Output Only] Server-defined URL for the resource.", - "type": "string" - }, - "type": { - "description": "The type indicates the intended use of the security policy. - CLOUD_ARMOR: Cloud Armor backend security policies can be configured to filter incoming HTTP requests targeting backend services. They filter requests before they hit the origin servers. - CLOUD_ARMOR_EDGE: Cloud Armor edge security policies can be configured to filter incoming HTTP requests targeting backend services (including Cloud CDN-enabled) as well as backend buckets (Cloud Storage). They filter requests before the request is served from Google's cache. - CLOUD_ARMOR_INTERNAL_SERVICE: Cloud Armor internal service policies can be configured to filter HTTP requests targeting services managed by Traffic Director in a service mesh. They filter requests before the request is served from the application. - CLOUD_ARMOR_NETWORK: Cloud Armor network policies can be configured to filter packets targeting network load balancing resources such as backend services, target pools, target instances, and instances with external IPs. They filter requests before the request is served from the application. This field can be set only at resource creation time.", - "enum": [ - "CLOUD_ARMOR", - "CLOUD_ARMOR_EDGE", - "CLOUD_ARMOR_NETWORK" - ], - "enumDescriptions": [ - "", - "", - "" - ], - "type": "string" - }, - "userDefinedFields": { - "description": "Definitions of user-defined fields for CLOUD_ARMOR_NETWORK policies. A user-defined field consists of up to 4 bytes extracted from a fixed offset in the packet, relative to the IPv4, IPv6, TCP, or UDP header, with an optional mask to select certain bits. Rules may then specify matching values for these fields. Example: userDefinedFields: - name: \"ipv4_fragment_offset\" base: IPV4 offset: 6 size: 2 mask: \"0x1fff\"", - "items": { - "$ref": "SecurityPolicyUserDefinedField" - }, - "type": "array" - } - }, - "type": "object" - }, - "SecurityPolicyAdaptiveProtectionConfig": { - "description": "Configuration options for Cloud Armor Adaptive Protection (CAAP).", - "id": "SecurityPolicyAdaptiveProtectionConfig", - "properties": { - "layer7DdosDefenseConfig": { - "$ref": "SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfig", - "description": "If set to true, enables Cloud Armor Machine Learning." - } - }, - "type": "object" - }, - "SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfig": { - "description": "Configuration options for L7 DDoS detection. This field is only supported in Global Security Policies of type CLOUD_ARMOR.", - "id": "SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfig", - "properties": { - "enable": { - "description": "If set to true, enables CAAP for L7 DDoS detection. This field is only supported in Global Security Policies of type CLOUD_ARMOR.", - "type": "boolean" - }, - "ruleVisibility": { - "description": "Rule visibility can be one of the following: STANDARD - opaque rules. (default) PREMIUM - transparent rules. This field is only supported in Global Security Policies of type CLOUD_ARMOR.", - "enum": [ - "PREMIUM", - "STANDARD" - ], - "enumDescriptions": [ - "", - "" - ], - "type": "string" - }, - "thresholdConfigs": { - "description": "Configuration options for layer7 adaptive protection for various customizable thresholds.", - "items": { - "$ref": "SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigThresholdConfig" - }, - "type": "array" - } - }, - "type": "object" - }, - "SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigThresholdConfig": { - "id": "SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigThresholdConfig", - "properties": { - "autoDeployConfidenceThreshold": { - "format": "float", - "type": "number" - }, - "autoDeployExpirationSec": { - "format": "int32", - "type": "integer" - }, - "autoDeployImpactedBaselineThreshold": { - "format": "float", - "type": "number" - }, - "autoDeployLoadThreshold": { - "format": "float", - "type": "number" - }, - "name": { - "description": "The name must be 1-63 characters long, and comply with RFC1035. The name must be unique within the security policy.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "type": "string" - } - }, - "type": "object" - }, - "SecurityPolicyAdvancedOptionsConfig": { - "id": "SecurityPolicyAdvancedOptionsConfig", - "properties": { - "jsonCustomConfig": { - "$ref": "SecurityPolicyAdvancedOptionsConfigJsonCustomConfig", - "description": "Custom configuration to apply the JSON parsing. Only applicable when json_parsing is set to STANDARD." - }, - "jsonParsing": { - "enum": [ - "DISABLED", - "STANDARD", - "STANDARD_WITH_GRAPHQL" - ], - "enumDescriptions": [ - "", - "", - "" - ], - "type": "string" - }, - "logLevel": { - "enum": [ - "NORMAL", - "VERBOSE" - ], - "enumDescriptions": [ - "", - "" - ], - "type": "string" - }, - "userIpRequestHeaders": { - "description": "An optional list of case-insensitive request header names to use for resolving the callers client IP address.", - "items": { - "type": "string" - }, - "type": "array" - } - }, - "type": "object" - }, - "SecurityPolicyAdvancedOptionsConfigJsonCustomConfig": { - "id": "SecurityPolicyAdvancedOptionsConfigJsonCustomConfig", - "properties": { - "contentTypes": { - "description": "A list of custom Content-Type header values to apply the JSON parsing. As per RFC 1341, a Content-Type header value has the following format: Content-Type := type \"/\" subtype *[\";\" parameter] When configuring a custom Content-Type header value, only the type/subtype needs to be specified, and the parameters should be excluded.", - "items": { - "type": "string" + "description": "[Output Only] Metadata about this warning in key:\nvalue format. For example:\n\n\"data\": [\n {\n \"key\": \"scope\",\n \"value\": \"zones/us-east1-d\"\n }", + "items": { + "properties": { + "key": { + "description": "[Output Only] A key that provides more detail on the warning being\nreturned. For example, for warnings where there are no results in a list\nrequest for a particular zone, this key might be scope and\nthe key value might be the zone name. Other examples might be a key\nindicating a deprecated resource and a suggested replacement, or a\nwarning about invalid network settings (for example, if an instance\nattempts 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": "array" - } - }, - "type": "object" - }, - "SecurityPolicyDdosProtectionConfig": { - "id": "SecurityPolicyDdosProtectionConfig", - "properties": { - "ddosProtection": { - "enum": [ - "ADVANCED", - "STANDARD" - ], - "enumDescriptions": [ - "", - "" - ], - "type": "string" + "type": "object" } }, "type": "object" }, - "SecurityPolicyList": { - "id": "SecurityPolicyList", + "ServiceAttachmentsScopedList": { + "id": "ServiceAttachmentsScopedList", "properties": { - "id": { - "description": "[Output Only] Unique identifier for the resource; defined by the server.", - "type": "string" - }, - "items": { - "description": "A list of SecurityPolicy resources.", + "serviceAttachments": { + "description": "A list of ServiceAttachments contained in this scope.", "items": { - "$ref": "SecurityPolicy" + "$ref": "ServiceAttachment" }, "type": "array" }, - "kind": { - "default": "compute#securityPolicyList", - "description": "[Output Only] Type of resource. Always compute#securityPolicyList for listsof securityPolicies", - "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" - }, "warning": { - "description": "[Output Only] Informational warning message.", + "description": "Informational warning which replaces the list of\nservice attachments when the list is empty.", "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.", + "description": "[Output Only] A warning code, if applicable. For example, Compute\nEngine returns NO_RESULTS_ON_PAGE if there\nare no results in the response.", "enum": [ "CLEANUP_FAILED", "DEPRECATED_RESOURCE_USED", @@ -71855,6 +99093,7 @@ "NOT_CRITICAL_ERROR", "NO_RESULTS_ON_PAGE", "PARTIAL_SUCCESS", + "QUOTA_INFO_UNAVAILABLE", "REQUIRED_TOS_AGREEMENT", "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", "RESOURCE_NOT_DELETED", @@ -71891,46 +99130,48 @@ false, false, false, + false, false ], "enumDescriptions": [ - "Warning about failed cleanup of transient changes made by a failed operation.", + "Warning about failed cleanup of transient changes made by a failed\noperation.", "A link to a deprecated resource was created.", - "When deploying and at least one of the resources has a type marked as deprecated", + "When deploying and at least one of the resources has a type marked as\ndeprecated", "The user created a boot disk that is larger than image size.", - "When deploying and at least one of the resources has a type marked as experimental", + "When deploying and at least one of the resources has a type marked as\nexperimental", "Warning that is present in an external api call", - "Warning that value of a field has been overridden. Deprecated unused field.", + "Warning that value of a field has been overridden.\nDeprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", - "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is\nnot of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", - "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", + "Resource can't be retrieved due to list overhead quota exceed\nwhich captures the amount of resources filtered out by\nuser-defined list filter.", "A resource depends on a missing type", - "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's nextHopIp address is not assigned to an instance on the\nnetwork.", "The route's next hop instance cannot ip forward.", - "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not have an\nipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", - "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that is not on the\nsame network as the route.", "The route's next hop instance does not have a status of RUNNING.", - "Error which is not critical. We decided to continue the process despite the mentioned error.", + "Error which is not critical. We decided to continue the process despite\nthe mentioned error.", "No results are present on a particular list page.", "Success is reported, but some results may be missing due to errors", - "The user attempted to use a resource that requires a TOS they have not accepted.", + "Quota information is not available to client requests (e.g:\nregions.list).", + "The user attempted to use a resource that requires a TOS they have not\naccepted.", "Warning that a resource is in use.", - "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "One or more of the resources set to auto-delete could not be deleted\nbecause they were in use.", "When a resource schema validation is ignored.", - "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", + "Instance template used in instance group manager is valid as such, but\nits application does not make a lot of sense, because it allows only\nsingle instance in instance group.", "When undeclared properties in the schema are present", "A given scope cannot be reached." ], "type": "string" }, "data": { - "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", + "description": "[Output Only] Metadata about this warning in key:\nvalue format. For example:\n\n\"data\": [\n {\n \"key\": \"scope\",\n \"value\": \"zones/us-east1-d\"\n }", "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).", + "description": "[Output Only] A key that provides more detail on the warning being\nreturned. For example, for warnings where there are no results in a list\nrequest for a particular zone, this key might be scope and\nthe key value might be the zone name. Other examples might be a key\nindicating a deprecated resource and a suggested replacement, or a\nwarning about invalid network settings (for example, if an instance\nattempts to perform IP forwarding but is not enabled for IP forwarding).", "type": "string" }, "value": { @@ -71952,740 +99193,959 @@ }, "type": "object" }, - "SecurityPolicyRecaptchaOptionsConfig": { - "id": "SecurityPolicyRecaptchaOptionsConfig", + "SetCommonInstanceMetadataOperationMetadata": { + "id": "SetCommonInstanceMetadataOperationMetadata", "properties": { - "redirectSiteKey": { - "description": "An optional field to supply a reCAPTCHA site key to be used for all the rules using the redirect action with the type of GOOGLE_RECAPTCHA under the security policy. The specified site key needs to be created from the reCAPTCHA API. The user is responsible for the validity of the specified site key. If not specified, a Google-managed site key is used. This field is only supported in Global Security Policies of type CLOUD_ARMOR.", + "clientOperationId": { + "description": "[Output Only] The client operation id.", "type": "string" + }, + "perLocationOperations": { + "additionalProperties": { + "$ref": "SetCommonInstanceMetadataOperationMetadataPerLocationOperationInfo" + }, + "description": "[Output Only] Status information per location (location name is key).\nExample key: zones/us-central1-a", + "type": "object" } }, "type": "object" }, - "SecurityPolicyReference": { - "id": "SecurityPolicyReference", + "SetCommonInstanceMetadataOperationMetadataPerLocationOperationInfo": { + "id": "SetCommonInstanceMetadataOperationMetadataPerLocationOperationInfo", "properties": { - "securityPolicy": { + "error": { + "$ref": "Status", + "description": "[Output Only] If state is `ABANDONED` or `FAILED`, this field is\npopulated." + }, + "state": { + "description": "[Output Only] Status of the action, which can be one of the following:\n`PROPAGATING`, `PROPAGATED`, `ABANDONED`, `FAILED`, or `DONE`.", + "enum": [ + "ABANDONED", + "DONE", + "FAILED", + "PROPAGATED", + "PROPAGATING", + "UNSPECIFIED" + ], + "enumDescriptions": [ + "Operation not tracked in this location e.g. zone is marked as DOWN.", + "Operation has completed successfully.", + "Operation is in an error state.", + "Operation is confirmed to be in the location.", + "Operation is not yet confirmed to have been created in the location.", + "" + ], "type": "string" } }, "type": "object" }, - "SecurityPolicyRule": { - "description": "Represents a rule that describes one or more match conditions along with the action to be taken when traffic matches this condition (allow or deny).", - "id": "SecurityPolicyRule", + "ShareSettings": { + "description": "The share setting for reservations and sole tenancy node groups.", + "id": "ShareSettings", "properties": { - "action": { - "description": "The Action to perform when the rule is matched. The following are the valid actions: - allow: allow access to target. - deny(STATUS): deny access to target, returns the HTTP response code specified. Valid values for `STATUS` are 403, 404, and 502. - rate_based_ban: limit client traffic to the configured threshold and ban the client if the traffic exceeds the threshold. Configure parameters for this action in RateLimitOptions. Requires rate_limit_options to be set. - redirect: redirect to a different target. This can either be an internal reCAPTCHA redirect, or an external URL-based redirect via a 302 response. Parameters for this action can be configured via redirectOptions. This action is only supported in Global Security Policies of type CLOUD_ARMOR. - throttle: limit client traffic to the configured threshold. Configure parameters for this action in rateLimitOptions. Requires rate_limit_options to be set for this. ", - "type": "string" - }, - "description": { - "description": "An optional description of this resource. Provide this property when you create the resource.", - "type": "string" - }, - "headerAction": { - "$ref": "SecurityPolicyRuleHttpHeaderAction", - "description": "Optional, additional actions that are performed on headers. This field is only supported in Global Security Policies of type CLOUD_ARMOR." + "projectMap": { + "additionalProperties": { + "$ref": "ShareSettingsProjectConfig" + }, + "description": "A map of project id and project config. This is only valid when\nshare_type's value is SPECIFIC_PROJECTS.", + "type": "object" }, - "kind": { - "default": "compute#securityPolicyRule", - "description": "[Output only] Type of the resource. Always compute#securityPolicyRule for security policy rules", + "shareType": { + "description": "Type of sharing for this shared-reservation", + "enum": [ + "LOCAL", + "ORGANIZATION", + "SHARE_TYPE_UNSPECIFIED", + "SPECIFIC_PROJECTS" + ], + "enumDescriptions": [ + "Default value.", + "Shared-reservation is open to entire Organization", + "Default value. This value is unused.", + "Shared-reservation is open to specific projects" + ], "type": "string" - }, - "match": { - "$ref": "SecurityPolicyRuleMatcher", - "description": "A match condition that incoming traffic is evaluated against. If it evaluates to true, the corresponding 'action' is enforced." - }, - "networkMatch": { - "$ref": "SecurityPolicyRuleNetworkMatcher", - "description": "A match condition that incoming packets are evaluated against for CLOUD_ARMOR_NETWORK security policies. If it matches, the corresponding 'action' is enforced. The match criteria for a rule consists of built-in match fields (like 'srcIpRanges') and potentially multiple user-defined match fields ('userDefinedFields'). Field values may be extracted directly from the packet or derived from it (e.g. 'srcRegionCodes'). Some fields may not be present in every packet (e.g. 'srcPorts'). A user-defined field is only present if the base header is found in the packet and the entire field is in bounds. Each match field may specify which values can match it, listing one or more ranges, prefixes, or exact values that are considered a match for the field. A field value must be present in order to match a specified match field. If no match values are specified for a match field, then any field value is considered to match it, and it's not required to be present. For strings specifying '*' is also equivalent to match all. For a packet to match a rule, all specified match fields must match the corresponding field values derived from the packet. Example: networkMatch: srcIpRanges: - \"192.0.2.0/24\" - \"198.51.100.0/24\" userDefinedFields: - name: \"ipv4_fragment_offset\" values: - \"1-0x1fff\" The above match condition matches packets with a source IP in 192.0.2.0/24 or 198.51.100.0/24 and a user-defined field named \"ipv4_fragment_offset\" with a value between 1 and 0x1fff inclusive." - }, - "preconfiguredWafConfig": { - "$ref": "SecurityPolicyRulePreconfiguredWafConfig", - "description": "Preconfigured WAF configuration to be applied for the rule. If the rule does not evaluate preconfigured WAF rules, i.e., if evaluatePreconfiguredWaf() is not used, this field will have no effect." - }, - "preview": { - "description": "If set to true, the specified action is not enforced.", - "type": "boolean" - }, - "priority": { - "description": "An integer indicating the priority of a rule in the list. The priority must be a positive value between 0 and 2147483647. Rules are evaluated from highest to lowest priority where 0 is the highest priority and 2147483647 is the lowest priority.", - "format": "int32", - "type": "integer" - }, - "rateLimitOptions": { - "$ref": "SecurityPolicyRuleRateLimitOptions", - "description": "Must be specified if the action is \"rate_based_ban\" or \"throttle\". Cannot be specified for any other actions." - }, - "redirectOptions": { - "$ref": "SecurityPolicyRuleRedirectOptions", - "description": "Parameters defining the redirect action. Cannot be specified for any other actions. This field is only supported in Global Security Policies of type CLOUD_ARMOR." } }, "type": "object" }, - "SecurityPolicyRuleHttpHeaderAction": { - "id": "SecurityPolicyRuleHttpHeaderAction", + "ShareSettingsProjectConfig": { + "description": "Config for each project in the share settings.", + "id": "ShareSettingsProjectConfig", "properties": { - "requestHeadersToAdds": { - "description": "The list of request headers to add or overwrite if they're already present.", - "items": { - "$ref": "SecurityPolicyRuleHttpHeaderActionHttpHeaderOption" - }, - "type": "array" + "projectId": { + "description": "The project ID, should be same as the key of this project config in the\nparent map.", + "type": "string" } }, "type": "object" }, - "SecurityPolicyRuleHttpHeaderActionHttpHeaderOption": { - "id": "SecurityPolicyRuleHttpHeaderActionHttpHeaderOption", + "ShieldedInstanceConfig": { + "description": "A set of Shielded Instance options.", + "id": "ShieldedInstanceConfig", "properties": { - "headerName": { - "description": "The name of the header to set.", - "type": "string" + "enableIntegrityMonitoring": { + "description": "Defines whether the instance has integrity monitoring enabled.Enabled by\ndefault.", + "type": "boolean" }, - "headerValue": { - "description": "The value to set the named header to.", - "type": "string" + "enableSecureBoot": { + "description": "Defines whether the instance has Secure Boot enabled.Disabled by\ndefault.", + "type": "boolean" + }, + "enableVtpm": { + "description": "Defines whether the instance has the vTPM enabled.Enabled by\ndefault.", + "type": "boolean" } }, "type": "object" }, - "SecurityPolicyRuleMatcher": { - "description": "Represents a match condition that incoming traffic is evaluated against. Exactly one field must be specified.", - "id": "SecurityPolicyRuleMatcher", + "ShieldedInstanceIdentity": { + "description": "A Shielded Instance Identity.", + "id": "ShieldedInstanceIdentity", "properties": { - "config": { - "$ref": "SecurityPolicyRuleMatcherConfig", - "description": "The configuration options available when specifying versioned_expr. This field must be specified if versioned_expr is specified and cannot be specified if versioned_expr is not specified." + "eccP256EncryptionKey": { + "$ref": "ShieldedInstanceIdentityEntry", + "description": "An Endorsement Key (EK) made by the ECC P256 algorithm\nissued to the Shielded Instance's vTPM." }, - "expr": { - "$ref": "Expr", - "description": "User defined CEVAL expression. A CEVAL expression is used to specify match criteria such as origin.ip, source.region_code and contents in the request header. Expressions containing `evaluateThreatIntelligence` require Cloud Armor Managed Protection Plus tier and are not supported in Edge Policies nor in Regional Policies. Expressions containing `evaluatePreconfiguredExpr('sourceiplist-*')` require Cloud Armor Managed Protection Plus tier and are only supported in Global Security Policies." + "eccP256SigningKey": { + "$ref": "ShieldedInstanceIdentityEntry", + "description": "An Attestation Key (AK) made by the ECC P256 algorithm\nissued to the Shielded Instance's vTPM." }, - "exprOptions": { - "$ref": "SecurityPolicyRuleMatcherExprOptions", - "description": "The configuration options available when specifying a user defined CEVAL expression (i.e., 'expr')." + "encryptionKey": { + "$ref": "ShieldedInstanceIdentityEntry", + "description": "An Endorsement Key (EK) made by the RSA 2048 algorithm\nissued to the Shielded Instance's vTPM." }, - "versionedExpr": { - "description": "Preconfigured versioned expression. If this field is specified, config must also be specified. Available preconfigured expressions along with their requirements are: SRC_IPS_V1 - must specify the corresponding src_ip_range field in config.", - "enum": [ - "SRC_IPS_V1" - ], - "enumDescriptions": [ - "Matches the source IP address of a request to the IP ranges supplied in config." - ], + "kind": { + "default": "compute#shieldedInstanceIdentity", + "description": "Output only. [Output Only] Type of the resource. Alwayscompute#shieldedInstanceIdentity for shielded Instance\nidentity entry.", + "readOnly": true, "type": "string" + }, + "signingKey": { + "$ref": "ShieldedInstanceIdentityEntry", + "description": "An Attestation Key (AK) made by the RSA 2048 algorithm\nissued to the Shielded Instance's vTPM." } }, "type": "object" }, - "SecurityPolicyRuleMatcherConfig": { - "id": "SecurityPolicyRuleMatcherConfig", + "ShieldedInstanceIdentityEntry": { + "description": "A Shielded Instance Identity Entry.", + "id": "ShieldedInstanceIdentityEntry", "properties": { - "srcIpRanges": { - "description": "CIDR IP address range. Maximum number of src_ip_ranges allowed is 10.", - "items": { - "type": "string" - }, - "type": "array" + "ekCert": { + "description": "A PEM-encoded X.509 certificate. This field can be empty.", + "type": "string" + }, + "ekPub": { + "description": "A PEM-encoded public key.", + "type": "string" } }, "type": "object" }, - "SecurityPolicyRuleMatcherExprOptions": { - "id": "SecurityPolicyRuleMatcherExprOptions", + "ShieldedInstanceIntegrityPolicy": { + "description": "The policy describes the baseline against which\nInstance boot integrity is measured.", + "id": "ShieldedInstanceIntegrityPolicy", "properties": { - "recaptchaOptions": { - "$ref": "SecurityPolicyRuleMatcherExprOptionsRecaptchaOptions", - "description": "reCAPTCHA configuration options to be applied for the rule. If the rule does not evaluate reCAPTCHA tokens, this field has no effect." + "updateAutoLearnPolicy": { + "description": "Updates the integrity policy baseline using the\nmeasurements from the VM instance's most recent boot.", + "type": "boolean" } }, "type": "object" }, - "SecurityPolicyRuleMatcherExprOptionsRecaptchaOptions": { - "id": "SecurityPolicyRuleMatcherExprOptionsRecaptchaOptions", + "SignedUrlKey": { + "description": "Represents a customer-supplied Signing Key used by Cloud CDN Signed URLs", + "id": "SignedUrlKey", "properties": { - "actionTokenSiteKeys": { - "description": "A list of site keys to be used during the validation of reCAPTCHA action-tokens. The provided site keys need to be created from reCAPTCHA API under the same project where the security policy is created.", - "items": { - "type": "string" - }, - "type": "array" + "keyName": { + "description": "Name of the key. The name must be 1-63 characters long, and comply withRFC1035.\nSpecifically, the name must be 1-63 characters long and match the regular\nexpression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first\ncharacter must be a lowercase letter, and all following characters must\nbe a dash, lowercase letter, or digit, except the last character, which\ncannot be a dash.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "type": "string" }, - "sessionTokenSiteKeys": { - "description": "A list of site keys to be used during the validation of reCAPTCHA session-tokens. The provided site keys need to be created from reCAPTCHA API under the same project where the security policy is created.", - "items": { - "type": "string" - }, - "type": "array" + "keyValue": { + "description": "128-bit key value used for signing the URL. The key value must be a validRFC\n4648 Section 5 base64url encoded string.", + "type": "string" } }, "type": "object" }, - "SecurityPolicyRuleNetworkMatcher": { - "description": "Represents a match condition that incoming network traffic is evaluated against.", - "id": "SecurityPolicyRuleNetworkMatcher", + "Snapshot": { + "description": "Represents a Persistent Disk Snapshot resource.\n\nYou can use snapshots to back up data on a regular interval. For more\ninformation, read Creating\npersistent disk snapshots.", + "id": "Snapshot", "properties": { - "destIpRanges": { - "description": "Destination IPv4/IPv6 addresses or CIDR prefixes, in standard text format.", - "items": { - "type": "string" - }, - "type": "array" + "architecture": { + "description": "Output only. [Output Only] The architecture of the snapshot. Valid values are\nARM64 or X86_64.", + "enum": [ + "ARCHITECTURE_UNSPECIFIED", + "ARM64", + "X86_64" + ], + "enumDescriptions": [ + "Default value indicating Architecture is not set.", + "Machines with architecture ARM64", + "Machines with architecture X86_64" + ], + "readOnly": true, + "type": "string" }, - "destPorts": { - "description": "Destination port numbers for TCP/UDP/SCTP. Each element can be a 16-bit unsigned decimal number (e.g. \"80\") or range (e.g. \"0-1023\").", - "items": { - "type": "string" - }, - "type": "array" + "autoCreated": { + "description": "Output only. [Output Only] Set to true if snapshots are automatically created by\napplying resource policy on the target disk.", + "readOnly": true, + "type": "boolean" }, - "ipProtocols": { - "description": "IPv4 protocol / IPv6 next header (after extension headers). Each element can be an 8-bit unsigned decimal number (e.g. \"6\"), range (e.g. \"253-254\"), or one of the following protocol names: \"tcp\", \"udp\", \"icmp\", \"esp\", \"ah\", \"ipip\", or \"sctp\".", - "items": { - "type": "string" - }, - "type": "array" + "chainName": { + "description": "Creates the new snapshot in the snapshot chain labeled with the\nspecified name. The chain name must be 1-63 characters long and comply\nwith RFC1035. This is an uncommon option only for advanced service\nowners who needs to create separate snapshot chains, for example,\nfor chargeback tracking. When you describe your snapshot resource, this\nfield is visible only if it has a non-empty value.", + "type": "string" }, - "srcAsns": { - "description": "BGP Autonomous System Number associated with the source IP address.", + "creationSizeBytes": { + "description": "Output only. [Output Only] Size in bytes of the snapshot at creation time.", + "format": "int64", + "readOnly": true, + "type": "string" + }, + "creationTimestamp": { + "description": "Output only. [Output Only] Creation timestamp inRFC3339\ntext format.", + "readOnly": true, + "type": "string" + }, + "description": { + "description": "An optional description of this resource. Provide this property when you\ncreate the resource.", + "type": "string" + }, + "diskSizeGb": { + "description": "Output only. [Output Only] Size of the source disk, specified in GB.", + "format": "int64", + "readOnly": true, + "type": "string" + }, + "downloadBytes": { + "description": "Output only. [Output Only] Number of bytes downloaded to restore a snapshot to a disk.", + "format": "int64", + "readOnly": true, + "type": "string" + }, + "enableConfidentialCompute": { + "description": "Output only. Whether this snapshot is created from a confidential compute mode disk.\n[Output Only]: This field is not set by user, but from source disk.", + "readOnly": true, + "type": "boolean" + }, + "guestFlush": { + "description": "[Input Only] Whether to attempt an application consistent snapshot by\ninforming the OS to prepare for the snapshot process.", + "type": "boolean" + }, + "guestOsFeatures": { + "description": "Output only. [Output Only] A list of features to enable on the guest operating system.\nApplicable only for bootable images. Read \nEnabling guest operating system features to see a list of available\noptions.", "items": { - "format": "uint32", - "type": "integer" + "$ref": "GuestOsFeature" }, + "readOnly": true, "type": "array" }, - "srcIpRanges": { - "description": "Source IPv4/IPv6 addresses or CIDR prefixes, in standard text format.", - "items": { + "id": { + "description": "Output only. [Output Only] The unique identifier for the resource. This identifier is\ndefined by the server.", + "format": "uint64", + "readOnly": true, + "type": "string" + }, + "kind": { + "default": "compute#snapshot", + "description": "Output only. [Output Only] Type of the resource. Always compute#snapshot\nfor Snapshot resources.", + "readOnly": true, + "type": "string" + }, + "labelFingerprint": { + "description": "A fingerprint for the labels being applied to this snapshot, which is\nessentially a hash of the labels set used for optimistic locking. The\nfingerprint is initially generated by Compute Engine and changes after\nevery request to modify or update labels. You must always provide an\nup-to-date fingerprint hash in order to update or change labels,\notherwise the request will fail with error412 conditionNotMet.\n\nTo see the latest fingerprint, make a get() request to\nretrieve a snapshot.", + "format": "byte", + "type": "string" + }, + "labels": { + "additionalProperties": { "type": "string" }, - "type": "array" + "description": "Labels to apply to this snapshot. These can be later modified by\nthe setLabels method.\nLabel values may be empty.", + "type": "object" }, - "srcPorts": { - "description": "Source port numbers for TCP/UDP/SCTP. Each element can be a 16-bit unsigned decimal number (e.g. \"80\") or range (e.g. \"0-1023\").", + "licenseCodes": { + "description": "Output only. [Output Only] Integer license codes indicating which licenses are attached\nto this snapshot.", "items": { + "format": "int64", "type": "string" }, + "readOnly": true, "type": "array" }, - "srcRegionCodes": { - "description": "Two-letter ISO 3166-1 alpha-2 country code associated with the source IP address.", + "licenses": { + "description": "Output only. [Output Only] A list of public visible licenses that apply to this\nsnapshot. This can be because the original image had licenses attached\n(such as a Windows image).", "items": { "type": "string" }, + "readOnly": true, "type": "array" }, - "userDefinedFields": { - "description": "User-defined fields. Each element names a defined field and lists the matching values for that field.", - "items": { - "$ref": "SecurityPolicyRuleNetworkMatcherUserDefinedFieldMatch" - }, - "type": "array" - } - }, - "type": "object" - }, - "SecurityPolicyRuleNetworkMatcherUserDefinedFieldMatch": { - "id": "SecurityPolicyRuleNetworkMatcherUserDefinedFieldMatch", - "properties": { - "name": { - "description": "Name of the user-defined field, as given in the definition.", + "locationHint": { + "description": "An opaque location hint used to place the snapshot close to other\nresources.\nThis field is for use by internal tools that use the public API.", "type": "string" }, - "values": { - "description": "Matching values of the field. Each element can be a 32-bit unsigned decimal or hexadecimal (starting with \"0x\") number (e.g. \"64\") or range (e.g. \"0x400-0x7ff\").", - "items": { - "type": "string" - }, - "type": "array" - } - }, - "type": "object" - }, - "SecurityPolicyRulePreconfiguredWafConfig": { - "id": "SecurityPolicyRulePreconfiguredWafConfig", - "properties": { - "exclusions": { - "description": "A list of exclusions to apply during preconfigured WAF evaluation.", - "items": { - "$ref": "SecurityPolicyRulePreconfiguredWafConfigExclusion" - }, - "type": "array" - } - }, - "type": "object" - }, - "SecurityPolicyRulePreconfiguredWafConfigExclusion": { - "id": "SecurityPolicyRulePreconfiguredWafConfigExclusion", - "properties": { - "requestCookiesToExclude": { - "description": "A list of request cookie names whose value will be excluded from inspection during preconfigured WAF evaluation.", - "items": { - "$ref": "SecurityPolicyRulePreconfiguredWafConfigExclusionFieldParams" + "name": { + "annotations": { + "required": [ + "compute.disks.createSnapshot", + "compute.snapshots.insert" + ] }, - "type": "array" + "description": "Name of the resource; provided by the client when the resource is created.\nThe name must be 1-63 characters long, and comply withRFC1035.\nSpecifically, the name must be 1-63 characters long and match the regular\nexpression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first\ncharacter must be a lowercase letter, and all following characters must be\na dash, lowercase letter, or digit, except the last character, which cannot\nbe a dash.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "type": "string" }, - "requestHeadersToExclude": { - "description": "A list of request header names whose value will be excluded from inspection during preconfigured WAF evaluation.", - "items": { - "$ref": "SecurityPolicyRulePreconfiguredWafConfigExclusionFieldParams" - }, - "type": "array" + "params": { + "$ref": "SnapshotParams", + "description": "Input only. [Input Only] Additional params passed with the request, but not persisted\nas part of resource payload." }, - "requestQueryParamsToExclude": { - "description": "A list of request query parameter names whose value will be excluded from inspection during preconfigured WAF evaluation. Note that the parameter can be in the query string or in the POST body.", - "items": { - "$ref": "SecurityPolicyRulePreconfiguredWafConfigExclusionFieldParams" - }, - "type": "array" + "region": { + "description": "Output only. [Output Only] URL of the region where the snapshot resides. Only applicable\nfor regional snapshots.", + "readOnly": true, + "type": "string" + }, + "satisfiesPzi": { + "description": "Output only. Reserved for future use.", + "readOnly": true, + "type": "boolean" + }, + "satisfiesPzs": { + "description": "Output only. [Output Only] Reserved for future use.", + "readOnly": true, + "type": "boolean" + }, + "selfLink": { + "description": "Output only. [Output Only] Server-defined URL for the resource.", + "readOnly": true, + "type": "string" + }, + "snapshotEncryptionKey": { + "$ref": "CustomerEncryptionKey", + "description": "Encrypts the snapshot using acustomer-supplied\nencryption key.\n\nAfter you encrypt a snapshot using a customer-supplied key, you must\nprovide the same key if you use the snapshot later. For example, you must\nprovide the encryption key when you create a disk from the encrypted\nsnapshot in a future request.\n\nCustomer-supplied encryption keys do not protect access to metadata\nof the snapshot.\n\nIf you do not provide an encryption key when creating the snapshot, then\nthe snapshot will be encrypted using an automatically generated key and you\ndo not need to provide a key to use the snapshot later." + }, + "snapshotGroupId": { + "description": "Output only. [Output Only] The unique ID of the snapshot group that this snapshot\nbelongs to. The usage of snapshot group feature is restricted.", + "readOnly": true, + "type": "string" + }, + "snapshotGroupName": { + "description": "Output only. [Output only] The snapshot group that this snapshot belongs to. The usage\nof snapshot group feature is restricted.", + "readOnly": true, + "type": "string" + }, + "snapshotType": { + "description": "Indicates the type of the snapshot.", + "enum": [ + "ARCHIVE", + "STANDARD" + ], + "enumDescriptions": [ + "", + "" + ], + "type": "string" + }, + "sourceDisk": { + "description": "The source disk used to create this snapshot.", + "type": "string" + }, + "sourceDiskEncryptionKey": { + "$ref": "CustomerEncryptionKey", + "description": "The customer-supplied\nencryption key of the source disk. Required if the source disk is\nprotected by a customer-supplied encryption key." + }, + "sourceDiskForRecoveryCheckpoint": { + "description": "The source disk whose recovery checkpoint will be used to create this\nsnapshot.", + "type": "string" + }, + "sourceDiskId": { + "description": "Output only. [Output Only] The ID value of the disk used to create this snapshot. This\nvalue may be used to determine whether the snapshot was taken from the\ncurrent or a previous instance of a given disk name.", + "readOnly": true, + "type": "string" + }, + "sourceInstantSnapshot": { + "description": "The source instant snapshot used to create this snapshot. You can provide\nthis as a partial or full URL to the resource. For example, the following\nare valid values:\n \n \n - https://www.googleapis.com/compute/v1/projects/project/zones/zone/instantSnapshots/instantSnapshot\n - projects/project/zones/zone/instantSnapshots/instantSnapshot \n - zones/zone/instantSnapshots/instantSnapshot", + "type": "string" + }, + "sourceInstantSnapshotEncryptionKey": { + "$ref": "CustomerEncryptionKey", + "description": "Customer provided encryption key when creating Snapshot from Instant\nSnapshot." + }, + "sourceInstantSnapshotId": { + "description": "Output only. [Output Only] The unique ID of the instant snapshot used to create this\nsnapshot. This value identifies the exact instant snapshot that was used to\ncreate this snapshot. For example, if you created the snapshot from an\ninstant snapshot that was later deleted and recreated under the same name,\nthe source instant snapshot ID would identify the exact instant snapshot\nthat was used.", + "readOnly": true, + "type": "string" + }, + "sourceSnapshotSchedulePolicy": { + "description": "Output only. [Output Only] URL of the resource policy which created this\nscheduled snapshot.", + "readOnly": true, + "type": "string" + }, + "sourceSnapshotSchedulePolicyId": { + "description": "Output only. [Output Only] ID of the resource policy which created this\nscheduled snapshot.", + "readOnly": true, + "type": "string" + }, + "status": { + "description": "Output only. [Output Only] The status of the snapshot. This can beCREATING, DELETING, FAILED,READY, or UPLOADING.", + "enum": [ + "CREATING", + "DELETING", + "FAILED", + "READY", + "UPLOADING" + ], + "enumDescriptions": [ + "Snapshot creation is in progress.", + "Snapshot is currently being deleted.", + "Snapshot creation failed.", + "Snapshot has been created successfully.", + "Snapshot is being uploaded." + ], + "readOnly": true, + "type": "string" + }, + "storageBytes": { + "description": "Output only. [Output Only] A size of the storage used by the snapshot. As snapshots\nshare storage, this number is expected to change with snapshot\ncreation/deletion.", + "format": "int64", + "readOnly": true, + "type": "string" }, - "requestUrisToExclude": { - "description": "A list of request URIs from the request line to be excluded from inspection during preconfigured WAF evaluation. When specifying this field, the query or fragment part should be excluded.", - "items": { - "$ref": "SecurityPolicyRulePreconfiguredWafConfigExclusionFieldParams" - }, - "type": "array" + "storageBytesStatus": { + "description": "Output only. [Deprecated] Instead, check the storageBytes field. After\nsnapshot creation, the storageBytesStatus field is alwaysUP_TO_DATE.\n[Output Only] An indicator whether storageBytes is in a\nstable state or it is being adjusted as a result of shared storage\nreallocation. This status can either be unset, meaning the snapshot is\nbeing created, or UP_TO_DATE, meaning the size of the snapshot\nis up-to-date.", + "enum": [ + "UPDATING", + "UP_TO_DATE" + ], + "enumDescriptions": [ + "", + "" + ], + "readOnly": true, + "type": "string" }, - "targetRuleIds": { - "description": "A list of target rule IDs under the WAF rule set to apply the preconfigured WAF exclusion. If omitted, it refers to all the rule IDs under the WAF rule set.", + "storageLocations": { + "description": "Cloud Storage bucket storage location of the snapshot (regional or\nmulti-regional).", "items": { "type": "string" }, "type": "array" - }, - "targetRuleSet": { - "description": "Target WAF rule set to apply the preconfigured WAF exclusion.", - "type": "string" } }, "type": "object" }, - "SecurityPolicyRulePreconfiguredWafConfigExclusionFieldParams": { - "id": "SecurityPolicyRulePreconfiguredWafConfigExclusionFieldParams", + "SnapshotGroupParameters": { + "id": "SnapshotGroupParameters", "properties": { - "op": { - "description": "The match operator for the field.", - "enum": [ - "CONTAINS", - "ENDS_WITH", - "EQUALS", - "EQUALS_ANY", - "STARTS_WITH" - ], - "enumDescriptions": [ - "The operator matches if the field value contains the specified value.", - "The operator matches if the field value ends with the specified value.", - "The operator matches if the field value equals the specified value.", - "The operator matches if the field value is any value.", - "The operator matches if the field value starts with the specified value." - ], + "replicaZones": { + "description": "URLs of the zones where disks should be replicated to. Only applicable\nfor regional resources.", + "items": { + "type": "string" + }, + "type": "array" + }, + "sourceSnapshotGroup": { + "description": "The source snapshot group used to create disks. You can provide this as a\npartial or full URL to the resource. For example, the following are valid\nvalues:\n \n \n - https://www.googleapis.com/compute/v1/projects/project/global/snapshotGroups/snapshotGroup \n - projects/project/global/snapshotGroups/snapshotGroup\n - global/snapshotGroups/snapshotGroup", "type": "string" }, - "val": { - "description": "The value of the field.", + "type": { + "description": "URL of the disk type resource describing which disk type to use to create\ndisks. Provide this when creating the disk. For example:projects/project/zones/zone/diskTypes/pd-ssd. See Persistent disk\ntypes.", "type": "string" } }, "type": "object" }, - "SecurityPolicyRuleRateLimitOptions": { - "id": "SecurityPolicyRuleRateLimitOptions", + "SnapshotList": { + "description": "Contains a list of Snapshot resources.", + "id": "SnapshotList", "properties": { - "banDurationSec": { - "description": "Can only be specified if the action for the rule is \"rate_based_ban\". If specified, determines the time (in seconds) the traffic will continue to be banned by the rate limit after the rate falls below the threshold.", - "format": "int32", - "type": "integer" - }, - "banThreshold": { - "$ref": "SecurityPolicyRuleRateLimitOptionsThreshold", - "description": "Can only be specified if the action for the rule is \"rate_based_ban\". If specified, the key will be banned for the configured 'ban_duration_sec' when the number of requests that exceed the 'rate_limit_threshold' also exceed this 'ban_threshold'." - }, - "conformAction": { - "description": "Action to take for requests that are under the configured rate limit threshold. Valid option is \"allow\" only.", - "type": "string" - }, - "enforceOnKey": { - "description": "Determines the key to enforce the rate_limit_threshold on. Possible values are: - ALL: A single rate limit threshold is applied to all the requests matching this rule. This is the default value if \"enforceOnKey\" is not configured. - IP: The source IP address of the request is the key. Each IP has this limit enforced separately. - HTTP_HEADER: The value of the HTTP header whose name is configured under \"enforceOnKeyName\". The key value is truncated to the first 128 bytes of the header value. If no such header is present in the request, the key type defaults to ALL. - XFF_IP: The first IP address (i.e. the originating client IP address) specified in the list of IPs under X-Forwarded-For HTTP header. If no such header is present or the value is not a valid IP, the key defaults to the source IP address of the request i.e. key type IP. - HTTP_COOKIE: The value of the HTTP cookie whose name is configured under \"enforceOnKeyName\". The key value is truncated to the first 128 bytes of the cookie value. If no such cookie is present in the request, the key type defaults to ALL. - HTTP_PATH: The URL path of the HTTP request. The key value is truncated to the first 128 bytes. - SNI: Server name indication in the TLS session of the HTTPS request. The key value is truncated to the first 128 bytes. The key type defaults to ALL on a HTTP session. - REGION_CODE: The country/region from which the request originates. - TLS_JA3_FINGERPRINT: JA3 TLS/SSL fingerprint if the client connects using HTTPS, HTTP/2 or HTTP/3. If not available, the key type defaults to ALL. - USER_IP: The IP address of the originating client, which is resolved based on \"userIpRequestHeaders\" configured with the security policy. If there is no \"userIpRequestHeaders\" configuration or an IP address cannot be resolved from it, the key type defaults to IP. ", - "enum": [ - "ALL", - "HTTP_COOKIE", - "HTTP_HEADER", - "HTTP_PATH", - "IP", - "REGION_CODE", - "SNI", - "TLS_JA3_FINGERPRINT", - "USER_IP", - "XFF_IP" - ], - "enumDescriptions": [ - "", - "", - "", - "", - "", - "", - "", - "", - "", - "" - ], + "id": { + "description": "[Output Only] Unique identifier for the resource; defined by the server.", "type": "string" }, - "enforceOnKeyConfigs": { - "description": "If specified, any combination of values of enforce_on_key_type/enforce_on_key_name is treated as the key on which ratelimit threshold/action is enforced. You can specify up to 3 enforce_on_key_configs. If enforce_on_key_configs is specified, enforce_on_key must not be specified.", + "items": { + "description": "A list of Snapshot resources.", "items": { - "$ref": "SecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfig" + "$ref": "Snapshot" }, "type": "array" }, - "enforceOnKeyName": { - "description": "Rate limit key name applicable only for the following key types: HTTP_HEADER -- Name of the HTTP header whose value is taken as the key value. HTTP_COOKIE -- Name of the HTTP cookie whose value is taken as the key value.", + "kind": { + "default": "compute#snapshotList", + "description": "Output only. Type of resource.", + "readOnly": true, "type": "string" }, - "exceedAction": { - "description": "Action to take for requests that are above the configured rate limit threshold, to either deny with a specified HTTP response code, or redirect to a different endpoint. Valid options are `deny(STATUS)`, where valid values for `STATUS` are 403, 404, 429, and 502, and `redirect`, where the redirect parameters come from `exceedRedirectOptions` below. The `redirect` action is only supported in Global Security Policies of type CLOUD_ARMOR.", + "nextPageToken": { + "description": "[Output Only] This token allows you to get the next page of results for\nlist requests. If the number of results is larger thanmaxResults, use the nextPageToken as a value for\nthe query parameter pageToken in the next list request.\nSubsequent list requests will have their own nextPageToken to\ncontinue paging through the results.", "type": "string" }, - "exceedRedirectOptions": { - "$ref": "SecurityPolicyRuleRedirectOptions", - "description": "Parameters defining the redirect action that is used as the exceed action. Cannot be specified if the exceed action is not redirect. This field is only supported in Global Security Policies of type CLOUD_ARMOR." + "selfLink": { + "description": "Output only. [Output Only] Server-defined URL for this resource.", + "readOnly": true, + "type": "string" }, - "rateLimitThreshold": { - "$ref": "SecurityPolicyRuleRateLimitOptionsThreshold", - "description": "Threshold at which to begin ratelimiting." + "warning": { + "description": "[Output Only] Informational warning message.", + "properties": { + "code": { + "description": "[Output Only] A warning code, if applicable. For example, Compute\nEngine returns NO_RESULTS_ON_PAGE if there\nare 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", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", + "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "PARTIAL_SUCCESS", + "QUOTA_INFO_UNAVAILABLE", + "REQUIRED_TOS_AGREEMENT", + "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", + "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", + "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", + "UNREACHABLE" + ], + "enumDeprecated": [ + false, + false, + false, + false, + false, + false, + true, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false + ], + "enumDescriptions": [ + "Warning about failed cleanup of transient changes made by a failed\noperation.", + "A link to a deprecated resource was created.", + "When deploying and at least one of the resources has a type marked as\ndeprecated", + "The user created a boot disk that is larger than image size.", + "When deploying and at least one of the resources has a type marked as\nexperimental", + "Warning that is present in an external api call", + "Warning that value of a field has been overridden.\nDeprecated unused field.", + "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is\nnot of type HTTP/HTTPS/HTTP2.", + "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed\nwhich captures the amount of resources filtered out by\nuser-defined list filter.", + "A resource depends on a missing type", + "The route's nextHopIp address is not assigned to an instance on the\nnetwork.", + "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an\nipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not exist.", + "The route's nextHopInstance URL refers to an instance that is not on the\nsame network as the route.", + "The route's next hop instance does not have a status of RUNNING.", + "Error which is not critical. We decided to continue the process despite\nthe mentioned error.", + "No results are present on a particular list page.", + "Success is reported, but some results may be missing due to errors", + "Quota information is not available to client requests (e.g:\nregions.list).", + "The user attempted to use a resource that requires a TOS they have not\naccepted.", + "Warning that a resource is in use.", + "One or more of the resources set to auto-delete could not be deleted\nbecause they were in use.", + "When a resource schema validation is ignored.", + "Instance template used in instance group manager is valid as such, but\nits application does not make a lot of sense, because it allows only\nsingle instance in instance group.", + "When undeclared properties in the schema are present", + "A given scope cannot be reached." + ], + "type": "string" + }, + "data": { + "description": "[Output Only] Metadata about this warning in key:\nvalue format. For example:\n\n\"data\": [\n {\n \"key\": \"scope\",\n \"value\": \"zones/us-east1-d\"\n }", + "items": { + "properties": { + "key": { + "description": "[Output Only] A key that provides more detail on the warning being\nreturned. For example, for warnings where there are no results in a list\nrequest for a particular zone, this key might be scope and\nthe key value might be the zone name. Other examples might be a key\nindicating a deprecated resource and a suggested replacement, or a\nwarning about invalid network settings (for example, if an instance\nattempts 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" }, - "SecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfig": { - "id": "SecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfig", + "SnapshotParams": { + "description": "Additional snapshot params.", + "id": "SnapshotParams", "properties": { - "enforceOnKeyName": { - "description": "Rate limit key name applicable only for the following key types: HTTP_HEADER -- Name of the HTTP header whose value is taken as the key value. HTTP_COOKIE -- Name of the HTTP cookie whose value is taken as the key value.", - "type": "string" - }, - "enforceOnKeyType": { - "description": "Determines the key to enforce the rate_limit_threshold on. Possible values are: - ALL: A single rate limit threshold is applied to all the requests matching this rule. This is the default value if \"enforceOnKeyConfigs\" is not configured. - IP: The source IP address of the request is the key. Each IP has this limit enforced separately. - HTTP_HEADER: The value of the HTTP header whose name is configured under \"enforceOnKeyName\". The key value is truncated to the first 128 bytes of the header value. If no such header is present in the request, the key type defaults to ALL. - XFF_IP: The first IP address (i.e. the originating client IP address) specified in the list of IPs under X-Forwarded-For HTTP header. If no such header is present or the value is not a valid IP, the key defaults to the source IP address of the request i.e. key type IP. - HTTP_COOKIE: The value of the HTTP cookie whose name is configured under \"enforceOnKeyName\". The key value is truncated to the first 128 bytes of the cookie value. If no such cookie is present in the request, the key type defaults to ALL. - HTTP_PATH: The URL path of the HTTP request. The key value is truncated to the first 128 bytes. - SNI: Server name indication in the TLS session of the HTTPS request. The key value is truncated to the first 128 bytes. The key type defaults to ALL on a HTTP session. - REGION_CODE: The country/region from which the request originates. - TLS_JA3_FINGERPRINT: JA3 TLS/SSL fingerprint if the client connects using HTTPS, HTTP/2 or HTTP/3. If not available, the key type defaults to ALL. - USER_IP: The IP address of the originating client, which is resolved based on \"userIpRequestHeaders\" configured with the security policy. If there is no \"userIpRequestHeaders\" configuration or an IP address cannot be resolved from it, the key type defaults to IP. ", - "enum": [ - "ALL", - "HTTP_COOKIE", - "HTTP_HEADER", - "HTTP_PATH", - "IP", - "REGION_CODE", - "SNI", - "TLS_JA3_FINGERPRINT", - "USER_IP", - "XFF_IP" - ], - "enumDescriptions": [ - "", - "", - "", - "", - "", - "", - "", - "", - "", - "" - ], - "type": "string" + "resourceManagerTags": { + "additionalProperties": { + "type": "string" + }, + "description": "Input only. Resource manager tags to be bound to the snapshot. Tag keys and values have\nthe same definition as resource\nmanager tags. Keys and values can be either in numeric format,\nsuch as `tagKeys/{tag_key_id}` and `tagValues/{tag_value_id}` or in\nnamespaced format such as `{org_id|project_id}/{tag_key_short_name}` and\n`{tag_value_short_name}`. The field is ignored (both PUT \u0026\nPATCH) when empty.", + "type": "object" } }, "type": "object" }, - "SecurityPolicyRuleRateLimitOptionsThreshold": { - "id": "SecurityPolicyRuleRateLimitOptionsThreshold", + "SnapshotSettings": { + "id": "SnapshotSettings", "properties": { - "count": { - "description": "Number of HTTP(S) requests for calculating the threshold.", - "format": "int32", - "type": "integer" + "accessLocation": { + "$ref": "SnapshotSettingsAccessLocation", + "description": "(Regional snapshots use only)Policy of which location is allowed to access\nsnapshot." }, - "intervalSec": { - "description": "Interval over which the threshold is computed.", - "format": "int32", - "type": "integer" + "storageLocation": { + "$ref": "SnapshotSettingsStorageLocationSettings", + "description": "Policy of which storage location is going to be resolved, and additional\ndata that particularizes how the policy is going to be carried out." } }, "type": "object" }, - "SecurityPolicyRuleRedirectOptions": { - "id": "SecurityPolicyRuleRedirectOptions", + "SnapshotSettingsAccessLocation": { + "id": "SnapshotSettingsAccessLocation", "properties": { - "target": { - "description": "Target for the redirect action. This is required if the type is EXTERNAL_302 and cannot be specified for GOOGLE_RECAPTCHA.", - "type": "string" + "locations": { + "additionalProperties": { + "$ref": "SnapshotSettingsAccessLocationAccessLocationPreference" + }, + "description": "List of regions that can restore a regional\n snapshot from the current region", + "type": "object" }, - "type": { - "description": "Type of the redirect action.", + "policy": { + "description": "Policy of which location is allowed to access snapshot.", "enum": [ - "EXTERNAL_302", - "GOOGLE_RECAPTCHA" + "ALL_REGIONS", + "POLICY_UNSPECIFIED", + "SPECIFIC_REGIONS" ], "enumDescriptions": [ + "Any regions will be able to access the source location.", "", - "" + "Only allowlisted regions will be able to restore region scoped\nsnapshots" ], "type": "string" } }, "type": "object" }, - "SecurityPolicyUserDefinedField": { - "id": "SecurityPolicyUserDefinedField", + "SnapshotSettingsAccessLocationAccessLocationPreference": { + "description": "A structure for specifying an allowed target region.", + "id": "SnapshotSettingsAccessLocationAccessLocationPreference", "properties": { - "base": { - "description": "The base relative to which 'offset' is measured. Possible values are: - IPV4: Points to the beginning of the IPv4 header. - IPV6: Points to the beginning of the IPv6 header. - TCP: Points to the beginning of the TCP header, skipping over any IPv4 options or IPv6 extension headers. Not present for non-first fragments. - UDP: Points to the beginning of the UDP header, skipping over any IPv4 options or IPv6 extension headers. Not present for non-first fragments. required", + "region": { + "description": "Accessible region name", + "type": "string" + } + }, + "type": "object" + }, + "SnapshotSettingsStorageLocationSettings": { + "id": "SnapshotSettingsStorageLocationSettings", + "properties": { + "locations": { + "additionalProperties": { + "$ref": "SnapshotSettingsStorageLocationSettingsStorageLocationPreference" + }, + "description": "When the policy is SPECIFIC_LOCATIONS, snapshots will be stored\nin the locations listed in this field. Keys are Cloud Storage bucket\nlocations. Only one location can be specified.", + "type": "object" + }, + "policy": { + "description": "The chosen location policy.", "enum": [ - "IPV4", - "IPV6", - "TCP", - "UDP" + "LOCAL_REGION", + "NEAREST_MULTI_REGION", + "SPECIFIC_LOCATIONS", + "STORAGE_LOCATION_POLICY_UNSPECIFIED" ], "enumDescriptions": [ - "", - "", - "", + "Store snapshot in the same region as with the originating disk.\nNo additional parameters are needed.", + "Store snapshot in the nearest multi region Cloud Storage bucket,\nrelative to the originating disk. No additional parameters are needed.", + "Store snapshot in the specific locations, as specified by the user.\nThe list of regions to store must be defined under the `locations`\nfield.", "" ], "type": "string" - }, - "mask": { - "description": "If specified, apply this mask (bitwise AND) to the field to ignore bits before matching. Encoded as a hexadecimal number (starting with \"0x\"). The last byte of the field (in network byte order) corresponds to the least significant byte of the mask.", - "type": "string" - }, - "name": { - "description": "The name of this field. Must be unique within the policy.", - "type": "string" - }, - "offset": { - "description": "Offset of the first byte of the field (in network byte order) relative to 'base'.", - "format": "int32", - "type": "integer" - }, - "size": { - "description": "Size of the field in bytes. Valid values: 1-4.", - "format": "int32", - "type": "integer" } }, "type": "object" }, - "SecuritySettings": { - "description": "The authentication and authorization settings for a BackendService.", - "id": "SecuritySettings", + "SnapshotSettingsStorageLocationSettingsStorageLocationPreference": { + "description": "A structure for specifying storage locations.", + "id": "SnapshotSettingsStorageLocationSettingsStorageLocationPreference", "properties": { - "awsV4Authentication": { - "$ref": "AWSV4Signature", - "description": "The configuration needed to generate a signature for access to private storage buckets that support AWS's Signature Version 4 for authentication. Allowed only for INTERNET_IP_PORT and INTERNET_FQDN_PORT NEG backends." - }, - "clientTlsPolicy": { - "description": "Optional. A URL referring to a networksecurity.ClientTlsPolicy resource that describes how clients should authenticate with this service's backends. clientTlsPolicy only applies to a global BackendService with the loadBalancingScheme set to INTERNAL_SELF_MANAGED. If left blank, communications are not encrypted.", + "name": { + "description": "Name of the location. It should be one of the Cloud Storage buckets.\nOnly one location can be specified.", "type": "string" - }, - "subjectAltNames": { - "description": "Optional. A list of Subject Alternative Names (SANs) that the client verifies during a mutual TLS handshake with an server/endpoint for this BackendService. When the server presents its X.509 certificate to the client, the client inspects the certificate's subjectAltName field. If the field contains one of the specified values, the communication continues. Otherwise, it fails. This additional check enables the client to verify that the server is authorized to run the requested service. Note that the contents of the server certificate's subjectAltName field are configured by the Public Key Infrastructure which provisions server identities. Only applies to a global BackendService with loadBalancingScheme set to INTERNAL_SELF_MANAGED. Only applies when BackendService has an attached clientTlsPolicy with clientCertificate (mTLS mode).", - "items": { - "type": "string" - }, - "type": "array" } }, "type": "object" }, - "SerialPortOutput": { - "description": "An instance serial console output.", - "id": "SerialPortOutput", + "SnapshotUpdateKmsKeyRequest": { + "id": "SnapshotUpdateKmsKeyRequest", "properties": { - "contents": { - "description": "[Output Only] The contents of the console output.", - "type": "string" - }, - "kind": { - "default": "compute#serialPortOutput", - "description": "[Output Only] Type of the resource. Always compute#serialPortOutput for serial port output.", - "type": "string" - }, - "next": { - "description": "[Output Only] The position of the next byte of content, regardless of whether the content exists, following the output returned in the `contents` property. Use this value in the next request as the start parameter.", - "format": "int64", - "type": "string" - }, - "selfLink": { - "description": "[Output Only] Server-defined URL for this resource.", - "type": "string" - }, - "start": { - "description": "The starting byte position of the output that was returned. This should match the start parameter sent with the request. If the serial console output exceeds the size of the buffer (1 MB), older output is overwritten by newer content. The output start value will indicate the byte position of the output that was returned, which might be different than the `start` value that was specified in the request.", - "format": "int64", + "kmsKeyName": { + "description": "Optional. The new KMS key to replace the current one on the snapshot. If empty, the\nsnapshot will be re-encrypted using the primary version of the snapshot's\ncurrent KMS key.\n\nThe KMS key can be provided in the following formats:\n \n \n - projects/project_id/locations/region/keyRings/key_ring/cryptoKeys/key", "type": "string" } }, "type": "object" }, - "ServerBinding": { - "id": "ServerBinding", + "SourceDiskEncryptionKey": { + "id": "SourceDiskEncryptionKey", "properties": { - "type": { - "enum": [ - "RESTART_NODE_ON_ANY_SERVER", - "RESTART_NODE_ON_MINIMAL_SERVERS", - "SERVER_BINDING_TYPE_UNSPECIFIED" - ], - "enumDescriptions": [ - "Node may associate with any physical server over its lifetime.", - "Node may associate with minimal physical servers over its lifetime.", - "" - ], + "diskEncryptionKey": { + "$ref": "CustomerEncryptionKey", + "description": "Thecustomer-supplied\nencryption key of the source disk. Required if the source disk is\nprotected by a customer-supplied encryption key." + }, + "sourceDisk": { + "description": "URL of the disk attached to the source instance. This can be a full or\nvalid partial URL. For example, the following are valid values:\n \n \n - https://www.googleapis.com/compute/v1/projects/project/zones/zone/disks/disk \n - projects/project/zones/zone/disks/disk \n - zones/zone/disks/disk", "type": "string" } }, "type": "object" }, - "ServiceAccount": { - "description": "A service account.", - "id": "ServiceAccount", + "SourceInstanceParams": { + "description": "A specification of the parameters to use when creating the instance template\nfrom a source instance.", + "id": "SourceInstanceParams", "properties": { - "email": { - "description": "Email address of the service account.", - "type": "string" - }, - "scopes": { - "description": "The list of scopes to be made available for this service account.", + "diskConfigs": { + "description": "Attached disks configuration. If not provided, defaults are applied:\nFor boot disk and any other R/W disks, the source images for each disk\nwill be used. For read-only disks, they will be attached in read-only\nmode. Local SSD disks will be created as blank volumes.", "items": { - "type": "string" + "$ref": "DiskInstantiationConfig" }, "type": "array" } }, "type": "object" }, - "ServiceAttachment": { - "description": "Represents a ServiceAttachment resource. A service attachment represents a service that a producer has exposed. It encapsulates the load balancer which fronts the service runs and a list of NAT IP ranges that the producers uses to represent the consumers connecting to the service.", - "id": "ServiceAttachment", + "SourceInstanceProperties": { + "description": "DEPRECATED: Please use compute#instanceProperties instead.\nNew properties will not be added to this field.", + "id": "SourceInstanceProperties", "properties": { - "connectedEndpoints": { - "description": "[Output Only] An array of connections for all the consumers connected to this service attachment.", + "canIpForward": { + "description": "Enables instances created based on this machine image to send packets with\nsource IP addresses other than their own and receive packets with\ndestination IP addresses other than their own. If these instances will be\nused as an IP gateway or it will be set as the next-hop in a Route\nresource, specify true. If unsure, leave this set tofalse. See theEnable IP forwarding\ndocumentation for more information.", + "type": "boolean" + }, + "deletionProtection": { + "description": "Whether the instance created from this machine image should be protected\nagainst deletion.", + "type": "boolean" + }, + "description": { + "description": "An optional text description for the instances that are created from this\nmachine image.", + "type": "string" + }, + "disks": { + "description": "An array of disks that are associated with the instances that are created\nfrom this machine image.", "items": { - "$ref": "ServiceAttachmentConnectedEndpoint" + "$ref": "SavedAttachedDisk" }, "type": "array" }, - "connectionPreference": { - "description": "The connection preference of service attachment. The value can be set to ACCEPT_AUTOMATIC. An ACCEPT_AUTOMATIC service attachment is one that always accepts the connection from consumer forwarding rules.", + "guestAccelerators": { + "description": "A list of guest accelerator cards' type and count to use for instances\ncreated from this machine image.", + "items": { + "$ref": "AcceleratorConfig" + }, + "type": "array" + }, + "keyRevocationActionType": { + "description": "KeyRevocationActionType of the instance. Supported options are \"STOP\" and\n\"NONE\". The default value is \"NONE\" if it is not specified.", "enum": [ - "ACCEPT_AUTOMATIC", - "ACCEPT_MANUAL", - "CONNECTION_PREFERENCE_UNSPECIFIED" + "KEY_REVOCATION_ACTION_TYPE_UNSPECIFIED", + "NONE", + "STOP" ], "enumDescriptions": [ - "", - "", - "" + "Default value. This value is unused.", + "Indicates user chose no operation.", + "Indicates user chose to opt for VM shutdown on key revocation." ], "type": "string" }, - "consumerAcceptLists": { - "description": "Specifies which consumer projects or networks are allowed to connect to the service attachment. Each project or network has a connection limit. A given service attachment can manage connections at either the project or network level. Therefore, both the accept and reject lists for a given service attachment must contain either only projects or only networks.", - "items": { - "$ref": "ServiceAttachmentConsumerProjectLimit" + "labels": { + "additionalProperties": { + "type": "string" }, - "type": "array" + "description": "Labels to apply to instances that are created from this machine image.", + "type": "object" }, - "consumerRejectLists": { - "description": "Specifies a list of projects or networks that are not allowed to connect to this service attachment. The project can be specified using its project ID or project number and the network can be specified using its URL. A given service attachment can manage connections at either the project or network level. Therefore, both the reject and accept lists for a given service attachment must contain either only projects or only networks.", + "machineType": { + "description": "The machine type to use for instances that are created from this machine\nimage.", + "type": "string" + }, + "metadata": { + "$ref": "Metadata", + "description": "The metadata key/value pairs to assign to instances that are created from\nthis machine image. These pairs can consist of custom metadata or\npredefined keys. SeeProject and\ninstance metadata for more information." + }, + "minCpuPlatform": { + "description": "Minimum cpu/platform to be used by instances created from this machine\nimage. The instance may be scheduled on the specified or newer\ncpu/platform. Applicable values are the friendly names of CPU platforms,\nsuch as minCpuPlatform: \"Intel Haswell\" orminCpuPlatform: \"Intel Sandy Bridge\". For more\ninformation, read Specifying a\nMinimum CPU Platform.", + "type": "string" + }, + "networkInterfaces": { + "description": "An array of network access configurations for this interface.", "items": { - "type": "string" + "$ref": "NetworkInterface" }, "type": "array" }, - "creationTimestamp": { - "description": "[Output Only] Creation timestamp in RFC3339 text format.", + "postKeyRevocationActionType": { + "description": "PostKeyRevocationActionType of the instance.", + "enum": [ + "NOOP", + "POST_KEY_REVOCATION_ACTION_TYPE_UNSPECIFIED", + "SHUTDOWN" + ], + "enumDescriptions": [ + "Indicates user chose no operation.", + "Default value. This value is unused.", + "Indicates user chose to opt for VM shutdown on key revocation." + ], "type": "string" }, - "description": { - "description": "An optional description of this resource. Provide this property when you create the resource.", - "type": "string" + "scheduling": { + "$ref": "Scheduling", + "description": "Specifies the scheduling options for the instances that are created from\nthis machine image." }, - "domainNames": { - "description": "If specified, the domain name will be used during the integration between the PSC connected endpoints and the Cloud DNS. For example, this is a valid domain name: \"p.mycompany.com.\". Current max number of domain names supported is 1.", + "serviceAccounts": { + "description": "A list of service accounts with specified scopes. Access tokens for these\nservice accounts are available to the instances that are created from this\nmachine image. Use metadata queries to obtain the access tokens for these\ninstances.", "items": { - "type": "string" + "$ref": "ServiceAccount" }, "type": "array" }, - "enableProxyProtocol": { - "description": "If true, enable the proxy protocol which is for supplying client TCP/IP address data in TCP connections that traverse proxies on their way to destination servers.", - "type": "boolean" + "tags": { + "$ref": "Tags", + "description": "A list of tags to apply to the instances that are created from this machine\nimage. The tags identify valid sources or targets for network firewalls.\nThe setTags method can modify this list of tags. Each tag within the list\nmust comply withRFC1035." + } + }, + "type": "object" + }, + "SslCertificate": { + "description": "Represents an SSL certificate resource.\n\nGoogle Compute Engine has two SSL certificate resources:\n\n* [Global](/compute/docs/reference/rest/v1/sslCertificates)\n* [Regional](/compute/docs/reference/rest/v1/regionSslCertificates)\n\n\nThe global SSL certificates (sslCertificates) are used by:\n \n - Global external Application Load Balancers\n - Classic Application Load Balancers\n - Proxy Network Load Balancers (with target SSL proxies)\n\n\n\nThe regional SSL certificates (regionSslCertificates) are used\nby:\n \n - Regional external Application Load Balancers\n - Regional internal Application Load Balancers\n\n\n\nOptionally, certificate file contents that you upload can contain a set of up\nto five PEM-encoded certificates.\nThe API call creates an object (sslCertificate) that holds this data.\nYou can use SSL keys and certificates to secure connections to a load\nbalancer.\nFor more information, read \nCreating and using SSL certificates,SSL certificates\nquotas and limits, and\nTroubleshooting SSL certificates.", + "id": "SslCertificate", + "properties": { + "certificate": { + "description": "A value read into memory from a certificate file. The certificate file must\nbe in PEM format. The certificate chain must be no greater than 5 certs\nlong. The chain must include at least one intermediate cert.", + "type": "string" }, - "fingerprint": { - "description": "Fingerprint of this resource. A hash of the contents stored in this object. This field is used in optimistic locking. This field will be ignored when inserting a ServiceAttachment. An up-to-date fingerprint must be provided in order to patch/update the ServiceAttachment; otherwise, the request will fail with error 412 conditionNotMet. To see the latest fingerprint, make a get() request to retrieve the ServiceAttachment.", - "format": "byte", + "creationTimestamp": { + "description": "[Output Only] Creation timestamp inRFC3339\ntext format.", + "type": "string" + }, + "description": { + "description": "An optional description of this resource. Provide this property when you\ncreate the resource.", + "type": "string" + }, + "expireTime": { + "description": "Output only. [Output Only] Expire time of the certificate. RFC3339", + "readOnly": true, "type": "string" }, "id": { - "description": "[Output Only] The unique identifier for the resource type. The server generates this identifier.", + "description": "[Output Only] The unique identifier for the resource. This identifier is\ndefined by the server.", "format": "uint64", "type": "string" }, "kind": { - "default": "compute#serviceAttachment", - "description": "[Output Only] Type of the resource. Always compute#serviceAttachment for service attachments.", - "type": "string" - }, - "name": { - "annotations": { - "required": [ - "compute.serviceAttachments.insert" - ] - }, - "description": "Name of the resource. Provided by the client when the resource is created. The name must be 1-63 characters long, and comply with RFC1035. 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])?", + "default": "compute#sslCertificate", + "description": "Output only. [Output Only] Type of the resource. Alwayscompute#sslCertificate for SSL certificates.", + "readOnly": true, "type": "string" }, - "natSubnets": { - "description": "An array of URLs where each entry is the URL of a subnet provided by the service producer to use for NAT in this service attachment.", - "items": { - "type": "string" - }, - "type": "array" + "managed": { + "$ref": "SslCertificateManagedSslCertificate", + "description": "Configuration and status of a managed SSL certificate." }, - "producerForwardingRule": { - "deprecated": true, - "description": "The URL of a forwarding rule with loadBalancingScheme INTERNAL* that is serving the endpoint identified by this service attachment.", + "name": { + "description": "Name of the resource. Provided by the client when the resource is created.\nThe name must be 1-63 characters long, and comply withRFC1035.\nSpecifically, the name must be 1-63 characters long and match the regular\nexpression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first\ncharacter must be a lowercase letter, and all following characters must\nbe a dash, lowercase letter, or digit, except the last character, which\ncannot be a dash.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", "type": "string" }, - "pscServiceAttachmentId": { - "$ref": "Uint128", - "description": "[Output Only] An 128-bit global unique ID of the PSC service attachment." - }, - "reconcileConnections": { - "description": "This flag determines whether a consumer accept/reject list change can reconcile the statuses of existing ACCEPTED or REJECTED PSC endpoints. - If false, connection policy update will only affect existing PENDING PSC endpoints. Existing ACCEPTED/REJECTED endpoints will remain untouched regardless how the connection policy is modified . - If true, update will affect both PENDING and ACCEPTED/REJECTED PSC endpoints. For example, an ACCEPTED PSC endpoint will be moved to REJECTED if its project is added to the reject list. For newly created service attachment, this boolean defaults to false.", - "type": "boolean" + "privateKey": { + "description": "A value read into memory from a write-only private key file. The private\nkey file must be in PEM format. For security, only insert\nrequests include this field.", + "type": "string" }, "region": { - "description": "[Output Only] URL of the region where the service attachment resides. This field applies only to the region resource. You must specify this field as part of the HTTP request URL. It is not settable as a field in the request body.", + "description": "Output only. [Output Only] URL of the region where the regional SSL Certificate\nresides. This field is not applicable to global SSL Certificate.", + "readOnly": true, "type": "string" }, "selfLink": { - "description": "[Output Only] Server-defined URL for the resource.", + "description": "[Output only] Server-defined URL for the resource.", "type": "string" }, - "targetService": { - "description": "The URL of a service serving the endpoint identified by this service attachment.", + "selfManaged": { + "$ref": "SslCertificateSelfManagedSslCertificate", + "description": "Configuration and status of a self-managed SSL certificate." + }, + "subjectAlternativeNames": { + "description": "Output only. [Output Only] Domains associated with the certificate via Subject\nAlternative Name.", + "items": { + "type": "string" + }, + "readOnly": true, + "type": "array" + }, + "type": { + "description": "(Optional) Specifies the type of SSL certificate, either \"SELF_MANAGED\" or\n\"MANAGED\". If not specified, the certificate is self-managed and the fieldscertificate and private_key are used.", + "enum": [ + "MANAGED", + "SELF_MANAGED", + "TYPE_UNSPECIFIED" + ], + "enumDescriptions": [ + "Google-managed SSLCertificate.", + "Certificate uploaded by user.", + "" + ], "type": "string" } }, "type": "object" }, - "ServiceAttachmentAggregatedList": { - "description": "Contains a list of ServiceAttachmentsScopedList.", - "id": "ServiceAttachmentAggregatedList", + "SslCertificateAggregatedList": { + "id": "SslCertificateAggregatedList", "properties": { "id": { "description": "[Output Only] Unique identifier for the resource; defined by the server.", @@ -72693,37 +100153,40 @@ }, "items": { "additionalProperties": { - "$ref": "ServiceAttachmentsScopedList", - "description": "Name of the scope containing this set of ServiceAttachments." + "$ref": "SslCertificatesScopedList", + "description": "Name of the scope containing this set of SslCertificates." }, - "description": "A list of ServiceAttachmentsScopedList resources.", + "description": "A list of SslCertificatesScopedList resources.", "type": "object" }, "kind": { - "default": "compute#serviceAttachmentAggregatedList", - "description": "Type of resource.", + "default": "compute#sslCertificateAggregatedList", + "description": "Output only. [Output Only] Type of resource. Alwayscompute#sslCertificateAggregatedList for lists of SSL\nCertificates.", + "readOnly": true, "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.", + "description": "[Output Only] This token allows you to get the next page of results for\nlist requests. If the number of results is larger thanmaxResults, use the nextPageToken as a value for\nthe query parameter pageToken in the next list request.\nSubsequent list requests will have their own nextPageToken to\ncontinue paging through the results.", "type": "string" }, "selfLink": { - "description": "[Output Only] Server-defined URL for this resource.", + "description": "Output only. [Output Only] Server-defined URL for this resource.", + "readOnly": true, "type": "string" }, "unreachables": { - "description": "[Output Only] Unreachable resources.", + "description": "Output only. [Output Only] Unreachable resources.", "items": { "type": "string" }, + "readOnly": true, "type": "array" }, "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.", + "description": "[Output Only] A warning code, if applicable. For example, Compute\nEngine returns NO_RESULTS_ON_PAGE if there\nare no results in the response.", "enum": [ "CLEANUP_FAILED", "DEPRECATED_RESOURCE_USED", @@ -72746,6 +100209,7 @@ "NOT_CRITICAL_ERROR", "NO_RESULTS_ON_PAGE", "PARTIAL_SUCCESS", + "QUOTA_INFO_UNAVAILABLE", "REQUIRED_TOS_AGREEMENT", "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", "RESOURCE_NOT_DELETED", @@ -72782,46 +100246,48 @@ false, false, false, + false, false ], "enumDescriptions": [ - "Warning about failed cleanup of transient changes made by a failed operation.", + "Warning about failed cleanup of transient changes made by a failed\noperation.", "A link to a deprecated resource was created.", - "When deploying and at least one of the resources has a type marked as deprecated", + "When deploying and at least one of the resources has a type marked as\ndeprecated", "The user created a boot disk that is larger than image size.", - "When deploying and at least one of the resources has a type marked as experimental", + "When deploying and at least one of the resources has a type marked as\nexperimental", "Warning that is present in an external api call", - "Warning that value of a field has been overridden. Deprecated unused field.", + "Warning that value of a field has been overridden.\nDeprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", - "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is\nnot of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", - "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", + "Resource can't be retrieved due to list overhead quota exceed\nwhich captures the amount of resources filtered out by\nuser-defined list filter.", "A resource depends on a missing type", - "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's nextHopIp address is not assigned to an instance on the\nnetwork.", "The route's next hop instance cannot ip forward.", - "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not have an\nipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", - "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that is not on the\nsame network as the route.", "The route's next hop instance does not have a status of RUNNING.", - "Error which is not critical. We decided to continue the process despite the mentioned error.", + "Error which is not critical. We decided to continue the process despite\nthe mentioned error.", "No results are present on a particular list page.", "Success is reported, but some results may be missing due to errors", - "The user attempted to use a resource that requires a TOS they have not accepted.", + "Quota information is not available to client requests (e.g:\nregions.list).", + "The user attempted to use a resource that requires a TOS they have not\naccepted.", "Warning that a resource is in use.", - "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "One or more of the resources set to auto-delete could not be deleted\nbecause they were in use.", "When a resource schema validation is ignored.", - "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", + "Instance template used in instance group manager is valid as such, but\nits application does not make a lot of sense, because it allows only\nsingle instance in instance group.", "When undeclared properties in the schema are present", "A given scope cannot be reached." ], "type": "string" }, "data": { - "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", + "description": "[Output Only] Metadata about this warning in key:\nvalue format. For example:\n\n\"data\": [\n {\n \"key\": \"scope\",\n \"value\": \"zones/us-east1-d\"\n }", "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).", + "description": "[Output Only] A key that provides more detail on the warning being\nreturned. For example, for warnings where there are no results in a list\nrequest for a particular zone, this key might be scope and\nthe key value might be the zone name. Other examples might be a key\nindicating a deprecated resource and a suggested replacement, or a\nwarning about invalid network settings (for example, if an instance\nattempts to perform IP forwarding but is not enabled for IP forwarding).", "type": "string" }, "value": { @@ -72843,97 +100309,581 @@ }, "type": "object" }, - "ServiceAttachmentConnectedEndpoint": { - "description": "[Output Only] A connection connected to this service attachment.", - "id": "ServiceAttachmentConnectedEndpoint", + "SslCertificateList": { + "description": "Contains a list of SslCertificate resources.", + "id": "SslCertificateList", "properties": { - "consumerNetwork": { - "description": "The url of the consumer network.", + "id": { + "description": "[Output Only] Unique identifier for the resource; defined by the server.", "type": "string" }, - "endpoint": { - "description": "The url of a connected endpoint.", + "items": { + "description": "A list of SslCertificate resources.", + "items": { + "$ref": "SslCertificate" + }, + "type": "array" + }, + "kind": { + "default": "compute#sslCertificateList", + "description": "Output only. Type of resource.", + "readOnly": true, "type": "string" }, - "pscConnectionId": { - "description": "The PSC connection id of the connected endpoint.", - "format": "uint64", + "nextPageToken": { + "description": "[Output Only] This token allows you to get the next page of results for\nlist requests. If the number of results is larger thanmaxResults, use the nextPageToken as a value for\nthe query parameter pageToken in the next list request.\nSubsequent list requests will have their own nextPageToken to\ncontinue paging through the results.", + "type": "string" + }, + "selfLink": { + "description": "Output only. [Output Only] Server-defined URL for this resource.", + "readOnly": true, "type": "string" }, + "warning": { + "description": "[Output Only] Informational warning message.", + "properties": { + "code": { + "description": "[Output Only] A warning code, if applicable. For example, Compute\nEngine returns NO_RESULTS_ON_PAGE if there\nare 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", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", + "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "PARTIAL_SUCCESS", + "QUOTA_INFO_UNAVAILABLE", + "REQUIRED_TOS_AGREEMENT", + "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", + "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", + "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", + "UNREACHABLE" + ], + "enumDeprecated": [ + false, + false, + false, + false, + false, + false, + true, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false + ], + "enumDescriptions": [ + "Warning about failed cleanup of transient changes made by a failed\noperation.", + "A link to a deprecated resource was created.", + "When deploying and at least one of the resources has a type marked as\ndeprecated", + "The user created a boot disk that is larger than image size.", + "When deploying and at least one of the resources has a type marked as\nexperimental", + "Warning that is present in an external api call", + "Warning that value of a field has been overridden.\nDeprecated unused field.", + "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is\nnot of type HTTP/HTTPS/HTTP2.", + "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed\nwhich captures the amount of resources filtered out by\nuser-defined list filter.", + "A resource depends on a missing type", + "The route's nextHopIp address is not assigned to an instance on the\nnetwork.", + "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an\nipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not exist.", + "The route's nextHopInstance URL refers to an instance that is not on the\nsame network as the route.", + "The route's next hop instance does not have a status of RUNNING.", + "Error which is not critical. We decided to continue the process despite\nthe mentioned error.", + "No results are present on a particular list page.", + "Success is reported, but some results may be missing due to errors", + "Quota information is not available to client requests (e.g:\nregions.list).", + "The user attempted to use a resource that requires a TOS they have not\naccepted.", + "Warning that a resource is in use.", + "One or more of the resources set to auto-delete could not be deleted\nbecause they were in use.", + "When a resource schema validation is ignored.", + "Instance template used in instance group manager is valid as such, but\nits application does not make a lot of sense, because it allows only\nsingle instance in instance group.", + "When undeclared properties in the schema are present", + "A given scope cannot be reached." + ], + "type": "string" + }, + "data": { + "description": "[Output Only] Metadata about this warning in key:\nvalue format. For example:\n\n\"data\": [\n {\n \"key\": \"scope\",\n \"value\": \"zones/us-east1-d\"\n }", + "items": { + "properties": { + "key": { + "description": "[Output Only] A key that provides more detail on the warning being\nreturned. For example, for warnings where there are no results in a list\nrequest for a particular zone, this key might be scope and\nthe key value might be the zone name. Other examples might be a key\nindicating a deprecated resource and a suggested replacement, or a\nwarning about invalid network settings (for example, if an instance\nattempts 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" + }, + "SslCertificateManagedSslCertificate": { + "description": "Configuration and status of a managed SSL certificate.", + "id": "SslCertificateManagedSslCertificate", + "properties": { + "domainStatus": { + "additionalProperties": { + "enum": [ + "ACTIVE", + "DOMAIN_STATUS_UNSPECIFIED", + "FAILED_CAA_CHECKING", + "FAILED_CAA_FORBIDDEN", + "FAILED_NOT_VISIBLE", + "FAILED_RATE_LIMITED", + "PROVISIONING" + ], + "enumDescriptions": [ + "A managed certificate can be provisioned, no issues for this domain.", + "", + "Failed to check CAA records for the domain.", + "Certificate issuance forbidden by an explicit CAA record for the\ndomain.", + "There seems to be problem with the user's DNS or load balancer\nconfiguration for this domain.", + "Reached rate-limit for certificates per top-level private domain.", + "Certificate provisioning for this domain is under way. GCP will\nattempt to provision the first certificate." + ], + "type": "string" + }, + "description": "Output only. [Output only] Detailed statuses of the domains specified for managed\ncertificate resource.", + "readOnly": true, + "type": "object" + }, + "domains": { + "description": "The domains for which a managed SSL certificate will be generated. Each\nGoogle-managed SSL certificate supports up to the [maximum number of\ndomains per Google-managed SSL\ncertificate](/load-balancing/docs/quotas#ssl_certificates).", + "items": { + "type": "string" + }, + "type": "array" + }, "status": { - "description": "The status of a connected endpoint to this service attachment.", + "description": "Output only. [Output only] Status of the managed certificate resource.", "enum": [ - "ACCEPTED", - "CLOSED", - "NEEDS_ATTENTION", - "PENDING", - "REJECTED", - "STATUS_UNSPECIFIED" + "ACTIVE", + "MANAGED_CERTIFICATE_STATUS_UNSPECIFIED", + "PROVISIONING", + "PROVISIONING_FAILED", + "PROVISIONING_FAILED_PERMANENTLY", + "RENEWAL_FAILED" ], "enumDescriptions": [ - "The connection has been accepted by the producer.", - "The connection has been closed by the producer.", - "The connection has been accepted by the producer, but the producer needs to take further action before the forwarding rule can serve traffic.", - "The connection is pending acceptance by the producer.", - "The consumer is still connected but not using the connection.", - "" + "The certificate management is working, and a certificate has been\nprovisioned.", + "", + "The certificate management is working. GCP will attempt to provision\nthe first certificate.", + "Certificate provisioning failed due to an issue with the DNS\nor load balancing configuration.\nFor details of which domain failed, consult domain_status field.", + "Certificate provisioning failed due to an issue with the DNS\nor load balancing configuration. It won't be retried. To try again\ndelete and create a new managed SslCertificate resource.\nFor details of which domain failed, consult domain_status field.", + "Renewal of the certificate has failed due to an issue with the DNS\nor load balancing configuration. The existing cert is still serving;\nhowever, it will expire shortly. To provision a renewed certificate,\ndelete and create a new managed SslCertificate resource.\nFor details on which domain failed, consult domain_status field." ], + "readOnly": true, "type": "string" } }, "type": "object" }, - "ServiceAttachmentConsumerProjectLimit": { - "id": "ServiceAttachmentConsumerProjectLimit", + "SslCertificateSelfManagedSslCertificate": { + "description": "Configuration and status of a self-managed SSL certificate.", + "id": "SslCertificateSelfManagedSslCertificate", "properties": { - "connectionLimit": { - "description": "The value of the limit to set.", - "format": "uint32", - "type": "integer" + "certificate": { + "description": "A local certificate file. The certificate must be in\nPEM format. The certificate chain must be no greater than 5 certs\nlong. The chain must include at least one intermediate cert.", + "type": "string" }, - "networkUrl": { - "description": "The network URL for the network to set the limit for.", + "privateKey": { + "description": "A write-only private key in PEM format. Only insert\nrequests will include this field.", "type": "string" + } + }, + "type": "object" + }, + "SslCertificatesScopedList": { + "id": "SslCertificatesScopedList", + "properties": { + "sslCertificates": { + "description": "List of SslCertificates contained in this scope.", + "items": { + "$ref": "SslCertificate" + }, + "type": "array" }, - "projectIdOrNum": { - "description": "The project id or number for the project to set the limit for.", + "warning": { + "description": "Informational warning which replaces the list of\nbackend services when the list is empty.", + "properties": { + "code": { + "description": "[Output Only] A warning code, if applicable. For example, Compute\nEngine returns NO_RESULTS_ON_PAGE if there\nare 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", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", + "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "PARTIAL_SUCCESS", + "QUOTA_INFO_UNAVAILABLE", + "REQUIRED_TOS_AGREEMENT", + "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", + "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", + "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", + "UNREACHABLE" + ], + "enumDeprecated": [ + false, + false, + false, + false, + false, + false, + true, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false + ], + "enumDescriptions": [ + "Warning about failed cleanup of transient changes made by a failed\noperation.", + "A link to a deprecated resource was created.", + "When deploying and at least one of the resources has a type marked as\ndeprecated", + "The user created a boot disk that is larger than image size.", + "When deploying and at least one of the resources has a type marked as\nexperimental", + "Warning that is present in an external api call", + "Warning that value of a field has been overridden.\nDeprecated unused field.", + "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is\nnot of type HTTP/HTTPS/HTTP2.", + "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed\nwhich captures the amount of resources filtered out by\nuser-defined list filter.", + "A resource depends on a missing type", + "The route's nextHopIp address is not assigned to an instance on the\nnetwork.", + "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an\nipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not exist.", + "The route's nextHopInstance URL refers to an instance that is not on the\nsame network as the route.", + "The route's next hop instance does not have a status of RUNNING.", + "Error which is not critical. We decided to continue the process despite\nthe mentioned error.", + "No results are present on a particular list page.", + "Success is reported, but some results may be missing due to errors", + "Quota information is not available to client requests (e.g:\nregions.list).", + "The user attempted to use a resource that requires a TOS they have not\naccepted.", + "Warning that a resource is in use.", + "One or more of the resources set to auto-delete could not be deleted\nbecause they were in use.", + "When a resource schema validation is ignored.", + "Instance template used in instance group manager is valid as such, but\nits application does not make a lot of sense, because it allows only\nsingle instance in instance group.", + "When undeclared properties in the schema are present", + "A given scope cannot be reached." + ], + "type": "string" + }, + "data": { + "description": "[Output Only] Metadata about this warning in key:\nvalue format. For example:\n\n\"data\": [\n {\n \"key\": \"scope\",\n \"value\": \"zones/us-east1-d\"\n }", + "items": { + "properties": { + "key": { + "description": "[Output Only] A key that provides more detail on the warning being\nreturned. For example, for warnings where there are no results in a list\nrequest for a particular zone, this key might be scope and\nthe key value might be the zone name. Other examples might be a key\nindicating a deprecated resource and a suggested replacement, or a\nwarning about invalid network settings (for example, if an instance\nattempts 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" + }, + "SslPoliciesAggregatedList": { + "id": "SslPoliciesAggregatedList", + "properties": { + "etag": { + "type": "string" + }, + "id": { + "description": "[Output Only] Unique identifier for the resource; defined by the server.", + "type": "string" + }, + "items": { + "additionalProperties": { + "$ref": "SslPoliciesScopedList", + "description": "Name of the scope containing this set of SSL policies." + }, + "description": "A list of SslPoliciesScopedList resources.", + "type": "object" + }, + "kind": { + "default": "compute#sslPoliciesAggregatedList", + "description": "Output only. [Output Only] Type of resource. Alwayscompute#sslPolicyAggregatedList for lists of SSL Policies.", + "readOnly": true, + "type": "string" + }, + "nextPageToken": { + "description": "[Output Only] This token allows you to get the next page of results for\nlist requests. If the number of results is larger thanmaxResults, use the nextPageToken as a value for\nthe query parameter pageToken in the next list request.\nSubsequent list requests will have their own nextPageToken to\ncontinue paging through the results.", + "type": "string" + }, + "selfLink": { + "description": "Output only. [Output Only] Server-defined URL for this resource.", + "readOnly": true, "type": "string" + }, + "unreachables": { + "description": "Output only. [Output Only] Unreachable resources.", + "items": { + "type": "string" + }, + "readOnly": true, + "type": "array" + }, + "warning": { + "description": "[Output Only] Informational warning message.", + "properties": { + "code": { + "description": "[Output Only] A warning code, if applicable. For example, Compute\nEngine returns NO_RESULTS_ON_PAGE if there\nare 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", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", + "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "PARTIAL_SUCCESS", + "QUOTA_INFO_UNAVAILABLE", + "REQUIRED_TOS_AGREEMENT", + "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", + "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", + "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", + "UNREACHABLE" + ], + "enumDeprecated": [ + false, + false, + false, + false, + false, + false, + true, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false + ], + "enumDescriptions": [ + "Warning about failed cleanup of transient changes made by a failed\noperation.", + "A link to a deprecated resource was created.", + "When deploying and at least one of the resources has a type marked as\ndeprecated", + "The user created a boot disk that is larger than image size.", + "When deploying and at least one of the resources has a type marked as\nexperimental", + "Warning that is present in an external api call", + "Warning that value of a field has been overridden.\nDeprecated unused field.", + "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is\nnot of type HTTP/HTTPS/HTTP2.", + "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed\nwhich captures the amount of resources filtered out by\nuser-defined list filter.", + "A resource depends on a missing type", + "The route's nextHopIp address is not assigned to an instance on the\nnetwork.", + "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an\nipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not exist.", + "The route's nextHopInstance URL refers to an instance that is not on the\nsame network as the route.", + "The route's next hop instance does not have a status of RUNNING.", + "Error which is not critical. We decided to continue the process despite\nthe mentioned error.", + "No results are present on a particular list page.", + "Success is reported, but some results may be missing due to errors", + "Quota information is not available to client requests (e.g:\nregions.list).", + "The user attempted to use a resource that requires a TOS they have not\naccepted.", + "Warning that a resource is in use.", + "One or more of the resources set to auto-delete could not be deleted\nbecause they were in use.", + "When a resource schema validation is ignored.", + "Instance template used in instance group manager is valid as such, but\nits application does not make a lot of sense, because it allows only\nsingle instance in instance group.", + "When undeclared properties in the schema are present", + "A given scope cannot be reached." + ], + "type": "string" + }, + "data": { + "description": "[Output Only] Metadata about this warning in key:\nvalue format. For example:\n\n\"data\": [\n {\n \"key\": \"scope\",\n \"value\": \"zones/us-east1-d\"\n }", + "items": { + "properties": { + "key": { + "description": "[Output Only] A key that provides more detail on the warning being\nreturned. For example, for warnings where there are no results in a list\nrequest for a particular zone, this key might be scope and\nthe key value might be the zone name. Other examples might be a key\nindicating a deprecated resource and a suggested replacement, or a\nwarning about invalid network settings (for example, if an instance\nattempts 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" }, - "ServiceAttachmentList": { - "id": "ServiceAttachmentList", + "SslPoliciesList": { + "id": "SslPoliciesList", "properties": { "id": { - "description": "[Output Only] Unique identifier for the resource; defined by the server.", + "description": "Output only. [Output Only] Unique identifier for the resource; defined by the server.", + "readOnly": true, "type": "string" }, "items": { - "description": "A list of ServiceAttachment resources.", + "description": "Output only. A list of SslPolicy resources.", "items": { - "$ref": "ServiceAttachment" + "$ref": "SslPolicy" }, + "readOnly": true, "type": "array" }, "kind": { - "default": "compute#serviceAttachmentList", - "description": "[Output Only] Type of the resource. Always compute#serviceAttachment for service attachments.", + "default": "compute#sslPoliciesList", + "description": "Output only. [Output Only] Type of the resource. Alwayscompute#sslPoliciesList for lists of sslPolicies.", + "readOnly": true, "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.", + "description": "Output only. [Output Only] This token allows you to get the next page of results for\nlist requests. If the number of results is larger thanmaxResults, use the nextPageToken as a value for\nthe query parameter pageToken in the next list request.\nSubsequent list requests will have their own nextPageToken to\ncontinue paging through the results.", + "readOnly": true, "type": "string" }, "selfLink": { - "description": "[Output Only] Server-defined URL for this resource.", + "description": "Output only. [Output Only] Server-defined URL for this resource.", + "readOnly": true, "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.", + "description": "[Output Only] A warning code, if applicable. For example, Compute\nEngine returns NO_RESULTS_ON_PAGE if there\nare no results in the response.", "enum": [ "CLEANUP_FAILED", "DEPRECATED_RESOURCE_USED", @@ -72956,6 +100906,7 @@ "NOT_CRITICAL_ERROR", "NO_RESULTS_ON_PAGE", "PARTIAL_SUCCESS", + "QUOTA_INFO_UNAVAILABLE", "REQUIRED_TOS_AGREEMENT", "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", "RESOURCE_NOT_DELETED", @@ -72992,46 +100943,48 @@ false, false, false, + false, false ], "enumDescriptions": [ - "Warning about failed cleanup of transient changes made by a failed operation.", + "Warning about failed cleanup of transient changes made by a failed\noperation.", "A link to a deprecated resource was created.", - "When deploying and at least one of the resources has a type marked as deprecated", + "When deploying and at least one of the resources has a type marked as\ndeprecated", "The user created a boot disk that is larger than image size.", - "When deploying and at least one of the resources has a type marked as experimental", + "When deploying and at least one of the resources has a type marked as\nexperimental", "Warning that is present in an external api call", - "Warning that value of a field has been overridden. Deprecated unused field.", + "Warning that value of a field has been overridden.\nDeprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", - "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is\nnot of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", - "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", + "Resource can't be retrieved due to list overhead quota exceed\nwhich captures the amount of resources filtered out by\nuser-defined list filter.", "A resource depends on a missing type", - "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's nextHopIp address is not assigned to an instance on the\nnetwork.", "The route's next hop instance cannot ip forward.", - "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not have an\nipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", - "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that is not on the\nsame network as the route.", "The route's next hop instance does not have a status of RUNNING.", - "Error which is not critical. We decided to continue the process despite the mentioned error.", + "Error which is not critical. We decided to continue the process despite\nthe mentioned error.", "No results are present on a particular list page.", "Success is reported, but some results may be missing due to errors", - "The user attempted to use a resource that requires a TOS they have not accepted.", + "Quota information is not available to client requests (e.g:\nregions.list).", + "The user attempted to use a resource that requires a TOS they have not\naccepted.", "Warning that a resource is in use.", - "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "One or more of the resources set to auto-delete could not be deleted\nbecause they were in use.", "When a resource schema validation is ignored.", - "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", + "Instance template used in instance group manager is valid as such, but\nits application does not make a lot of sense, because it allows only\nsingle instance in instance group.", "When undeclared properties in the schema are present", "A given scope cannot be reached." ], "type": "string" }, "data": { - "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", + "description": "[Output Only] Metadata about this warning in key:\nvalue format. For example:\n\n\"data\": [\n {\n \"key\": \"scope\",\n \"value\": \"zones/us-east1-d\"\n }", "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).", + "description": "[Output Only] A key that provides more detail on the warning being\nreturned. For example, for warnings where there are no results in a list\nrequest for a particular zone, this key might be scope and\nthe key value might be the zone name. Other examples might be a key\nindicating a deprecated resource and a suggested replacement, or a\nwarning about invalid network settings (for example, if an instance\nattempts to perform IP forwarding but is not enabled for IP forwarding).", "type": "string" }, "value": { @@ -73053,21 +101006,33 @@ }, "type": "object" }, - "ServiceAttachmentsScopedList": { - "id": "ServiceAttachmentsScopedList", + "SslPoliciesListAvailableFeaturesResponse": { + "id": "SslPoliciesListAvailableFeaturesResponse", "properties": { - "serviceAttachments": { - "description": "A list of ServiceAttachments contained in this scope.", + "features": { "items": { - "$ref": "ServiceAttachment" + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "SslPoliciesScopedList": { + "id": "SslPoliciesScopedList", + "properties": { + "sslPolicies": { + "description": "A list of SslPolicies contained in this scope.", + "items": { + "$ref": "SslPolicy" }, "type": "array" }, "warning": { - "description": "Informational warning which replaces the list of service attachments when the list is empty.", + "description": "Informational warning which replaces the list of\nSSL policies when the list is empty.", "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.", + "description": "[Output Only] A warning code, if applicable. For example, Compute\nEngine returns NO_RESULTS_ON_PAGE if there\nare no results in the response.", "enum": [ "CLEANUP_FAILED", "DEPRECATED_RESOURCE_USED", @@ -73090,6 +101055,7 @@ "NOT_CRITICAL_ERROR", "NO_RESULTS_ON_PAGE", "PARTIAL_SUCCESS", + "QUOTA_INFO_UNAVAILABLE", "REQUIRED_TOS_AGREEMENT", "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", "RESOURCE_NOT_DELETED", @@ -73126,46 +101092,48 @@ false, false, false, + false, false ], "enumDescriptions": [ - "Warning about failed cleanup of transient changes made by a failed operation.", + "Warning about failed cleanup of transient changes made by a failed\noperation.", "A link to a deprecated resource was created.", - "When deploying and at least one of the resources has a type marked as deprecated", + "When deploying and at least one of the resources has a type marked as\ndeprecated", "The user created a boot disk that is larger than image size.", - "When deploying and at least one of the resources has a type marked as experimental", + "When deploying and at least one of the resources has a type marked as\nexperimental", "Warning that is present in an external api call", - "Warning that value of a field has been overridden. Deprecated unused field.", + "Warning that value of a field has been overridden.\nDeprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", - "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is\nnot of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", - "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", + "Resource can't be retrieved due to list overhead quota exceed\nwhich captures the amount of resources filtered out by\nuser-defined list filter.", "A resource depends on a missing type", - "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's nextHopIp address is not assigned to an instance on the\nnetwork.", "The route's next hop instance cannot ip forward.", - "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not have an\nipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", - "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that is not on the\nsame network as the route.", "The route's next hop instance does not have a status of RUNNING.", - "Error which is not critical. We decided to continue the process despite the mentioned error.", + "Error which is not critical. We decided to continue the process despite\nthe mentioned error.", "No results are present on a particular list page.", "Success is reported, but some results may be missing due to errors", - "The user attempted to use a resource that requires a TOS they have not accepted.", + "Quota information is not available to client requests (e.g:\nregions.list).", + "The user attempted to use a resource that requires a TOS they have not\naccepted.", "Warning that a resource is in use.", - "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "One or more of the resources set to auto-delete could not be deleted\nbecause they were in use.", "When a resource schema validation is ignored.", - "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", + "Instance template used in instance group manager is valid as such, but\nits application does not make a lot of sense, because it allows only\nsingle instance in instance group.", "When undeclared properties in the schema are present", "A given scope cannot be reached." ], "type": "string" }, "data": { - "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", + "description": "[Output Only] Metadata about this warning in key:\nvalue format. For example:\n\n\"data\": [\n {\n \"key\": \"scope\",\n \"value\": \"zones/us-east1-d\"\n }", "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).", + "description": "[Output Only] A key that provides more detail on the warning being\nreturned. For example, for warnings where there are no results in a list\nrequest for a particular zone, this key might be scope and\nthe key value might be the zone name. Other examples might be a key\nindicating a deprecated resource and a suggested replacement, or a\nwarning about invalid network settings (for example, if an instance\nattempts to perform IP forwarding but is not enabled for IP forwarding).", "type": "string" }, "value": { @@ -73187,247 +101155,401 @@ }, "type": "object" }, - "SetCommonInstanceMetadataOperationMetadata": { - "id": "SetCommonInstanceMetadataOperationMetadata", + "SslPolicy": { + "description": "Represents an SSL Policy resource.\n\nUse SSL policies to control SSL features, such as versions and cipher\nsuites, that are offered by Application Load Balancers and proxy Network Load\nBalancers. For more information, read \nSSL policies overview.", + "id": "SslPolicy", "properties": { - "clientOperationId": { - "description": "[Output Only] The client operation id.", + "creationTimestamp": { + "description": "Output only. [Output Only] Creation timestamp inRFC3339\ntext format.", + "readOnly": true, "type": "string" }, - "perLocationOperations": { - "additionalProperties": { - "$ref": "SetCommonInstanceMetadataOperationMetadataPerLocationOperationInfo" + "customFeatures": { + "description": "A list of features enabled when the selected profile is CUSTOM. The\n method returns the set of features that can be\nspecified in this list. This field must be empty if the profile is notCUSTOM.", + "items": { + "type": "string" }, - "description": "[Output Only] Status information per location (location name is key). Example key: zones/us-central1-a", - "type": "object" - } - }, - "type": "object" - }, - "SetCommonInstanceMetadataOperationMetadataPerLocationOperationInfo": { - "id": "SetCommonInstanceMetadataOperationMetadataPerLocationOperationInfo", - "properties": { - "error": { - "$ref": "Status", - "description": "[Output Only] If state is `ABANDONED` or `FAILED`, this field is populated." + "type": "array" }, - "state": { - "description": "[Output Only] Status of the action, which can be one of the following: `PROPAGATING`, `PROPAGATED`, `ABANDONED`, `FAILED`, or `DONE`.", + "description": { + "description": "An optional description of this resource. Provide this property when you\ncreate the resource.", + "type": "string" + }, + "enabledFeatures": { + "description": "Output only. [Output Only] The list of features enabled in the SSL policy.", + "items": { + "type": "string" + }, + "readOnly": true, + "type": "array" + }, + "fingerprint": { + "description": "Fingerprint of this resource. A hash of the contents stored in this object.\nThis field is used in optimistic locking. This field will be ignored when\ninserting a SslPolicy. An up-to-date fingerprint must be\nprovided in order to update the SslPolicy, otherwise the\nrequest will fail with error 412 conditionNotMet.\n\nTo see the latest fingerprint, make a get() request to\nretrieve an SslPolicy.", + "format": "byte", + "type": "string" + }, + "id": { + "description": "Output only. [Output Only] The unique identifier for the resource. This identifier is\ndefined by the server.", + "format": "uint64", + "readOnly": true, + "type": "string" + }, + "kind": { + "default": "compute#sslPolicy", + "description": "Output only. [Output only] Type of the resource. Alwayscompute#sslPolicyfor SSL policies.", + "readOnly": true, + "type": "string" + }, + "minTlsVersion": { + "description": "The minimum version of SSL protocol that can be used by the clients to\nestablish a connection with the load balancer. This can be one ofTLS_1_0, TLS_1_1, TLS_1_2,TLS_1_3. When set to TLS_1_3, the profile field\nmust be set to RESTRICTED.", "enum": [ - "ABANDONED", - "DONE", - "FAILED", - "PROPAGATED", - "PROPAGATING", - "UNSPECIFIED" + "TLS_1_0", + "TLS_1_1", + "TLS_1_2", + "TLS_1_3" ], "enumDescriptions": [ - "Operation not tracked in this location e.g. zone is marked as DOWN.", - "Operation has completed successfully.", - "Operation is in an error state.", - "Operation is confirmed to be in the location.", - "Operation is not yet confirmed to have been created in the location.", - "" + "TLS 1.0", + "TLS 1.1", + "TLS 1.2", + "TLS 1.3" ], "type": "string" - } - }, - "type": "object" - }, - "ShareSettings": { - "description": "The share setting for reservations and sole tenancy node groups.", - "id": "ShareSettings", - "properties": { - "projectMap": { - "additionalProperties": { - "$ref": "ShareSettingsProjectConfig" - }, - "description": "A map of project id and project config. This is only valid when share_type's value is SPECIFIC_PROJECTS.", - "type": "object" }, - "shareType": { - "description": "Type of sharing for this shared-reservation", + "name": { + "description": "Name of the resource. The name must be 1-63 characters long, and comply\nwith RFC1035. Specifically, the name must be 1-63 characters\nlong and match the regular expression\n`[a-z]([-a-z0-9]*[a-z0-9])?` which means the first character\nmust be a lowercase letter, and all following characters must be a dash,\nlowercase letter, or digit, except the last character, which cannot be a\ndash.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "type": "string" + }, + "postQuantumKeyExchange": { + "description": "One of DEFAULT, ENABLED, orDEFERRED. Controls whether the load balancer negotiates\nX25519MLKEM768 key exchange when clients advertise support for it. When set\nto DEFAULT, or if no SSL Policy is attached to the target\nproxy, the load balancer disallows X25519MLKEM768 key exchange before\nOctober 2026, and allows it afterward. When set to ENABLED,\nthe load balancer allows X25519MLKEM768 key exchange. When set toDEFERRED, the load balancer disallows X25519MLKEM768 key\nexchange until October 2027, and allows it afterward.", "enum": [ - "LOCAL", - "ORGANIZATION", - "SHARE_TYPE_UNSPECIFIED", - "SPECIFIC_PROJECTS" + "DEFAULT", + "DEFERRED", + "ENABLED" ], "enumDescriptions": [ - "Default value.", - "Shared-reservation is open to entire Organization", - "Default value. This value is unused.", - "Shared-reservation is open to specific projects" + "Default behavior: disabled until October 2026, enabled afterward.", + "Disabled until October 2027, enabled afterward.", + "Enabled now." + ], + "type": "string" + }, + "profile": { + "description": "Profile specifies the set of SSL features that can be used by the load\nbalancer when negotiating SSL with clients. This can be one ofCOMPATIBLE, MODERN, RESTRICTED,FIPS_202205, or CUSTOM. If usingCUSTOM, the set of SSL features to enable must be specified in\nthe customFeatures field. If using FIPS_202205,\nthe min_tls_version field must be set to TLS_1_2.", + "enum": [ + "COMPATIBLE", + "CUSTOM", + "FIPS_202205", + "MODERN", + "RESTRICTED" ], + "enumDescriptions": [ + "Compatible profile. Allows the broadset set of clients, even those which\nsupport only out-of-date SSL features to negotiate with the load\nbalancer.", + "Custom profile. Allow only the set of allowed SSL features specified in\nthe customFeatures field.", + "FIPS compatible profile. Supports a reduced set of SSL features,\nintended to meet FIPS 140-3 compliance requirements.", + "Modern profile. Supports a wide set of SSL features, allowing modern\nclients to negotiate SSL with the load balancer.", + "Restricted profile. Supports a reduced set of SSL features, intended to\nmeet stricter compliance requirements." + ], + "type": "string" + }, + "region": { + "description": "Output only. [Output Only] URL of the region where the regional SSL policy\nresides. This field is not applicable to global SSL policies.", + "readOnly": true, + "type": "string" + }, + "selfLink": { + "description": "Output only. [Output Only] Server-defined URL for the resource.", + "readOnly": true, "type": "string" + }, + "warnings": { + "description": "Output only. [Output Only] If potential misconfigurations are detected for this\nSSL policy, this field will be populated with warning messages.", + "items": { + "properties": { + "code": { + "description": "[Output Only] A warning code, if applicable. For example, Compute\nEngine returns NO_RESULTS_ON_PAGE if there\nare 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", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", + "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "PARTIAL_SUCCESS", + "QUOTA_INFO_UNAVAILABLE", + "REQUIRED_TOS_AGREEMENT", + "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", + "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", + "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", + "UNREACHABLE" + ], + "enumDeprecated": [ + false, + false, + false, + false, + false, + false, + true, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false + ], + "enumDescriptions": [ + "Warning about failed cleanup of transient changes made by a failed\noperation.", + "A link to a deprecated resource was created.", + "When deploying and at least one of the resources has a type marked as\ndeprecated", + "The user created a boot disk that is larger than image size.", + "When deploying and at least one of the resources has a type marked as\nexperimental", + "Warning that is present in an external api call", + "Warning that value of a field has been overridden.\nDeprecated unused field.", + "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is\nnot of type HTTP/HTTPS/HTTP2.", + "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed\nwhich captures the amount of resources filtered out by\nuser-defined list filter.", + "A resource depends on a missing type", + "The route's nextHopIp address is not assigned to an instance on the\nnetwork.", + "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an\nipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not exist.", + "The route's nextHopInstance URL refers to an instance that is not on the\nsame network as the route.", + "The route's next hop instance does not have a status of RUNNING.", + "Error which is not critical. We decided to continue the process despite\nthe mentioned error.", + "No results are present on a particular list page.", + "Success is reported, but some results may be missing due to errors", + "Quota information is not available to client requests (e.g:\nregions.list).", + "The user attempted to use a resource that requires a TOS they have not\naccepted.", + "Warning that a resource is in use.", + "One or more of the resources set to auto-delete could not be deleted\nbecause they were in use.", + "When a resource schema validation is ignored.", + "Instance template used in instance group manager is valid as such, but\nits application does not make a lot of sense, because it allows only\nsingle instance in instance group.", + "When undeclared properties in the schema are present", + "A given scope cannot be reached." + ], + "type": "string" + }, + "data": { + "description": "[Output Only] Metadata about this warning in key:\nvalue format. For example:\n\n\"data\": [\n {\n \"key\": \"scope\",\n \"value\": \"zones/us-east1-d\"\n }", + "items": { + "properties": { + "key": { + "description": "[Output Only] A key that provides more detail on the warning being\nreturned. For example, for warnings where there are no results in a list\nrequest for a particular zone, this key might be scope and\nthe key value might be the zone name. Other examples might be a key\nindicating a deprecated resource and a suggested replacement, or a\nwarning about invalid network settings (for example, if an instance\nattempts 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" + }, + "readOnly": true, + "type": "array" } }, "type": "object" }, - "ShareSettingsProjectConfig": { - "description": "Config for each project in the share settings.", - "id": "ShareSettingsProjectConfig", + "SslPolicyReference": { + "id": "SslPolicyReference", "properties": { - "projectId": { - "description": "The project ID, should be same as the key of this project config in the parent map.", + "sslPolicy": { "type": "string" } }, "type": "object" }, - "ShieldedInstanceConfig": { - "description": "A set of Shielded Instance options.", - "id": "ShieldedInstanceConfig", + "StatefulPolicy": { + "id": "StatefulPolicy", "properties": { - "enableIntegrityMonitoring": { - "description": "Defines whether the instance has integrity monitoring enabled. Enabled by default.", - "type": "boolean" - }, - "enableSecureBoot": { - "description": "Defines whether the instance has Secure Boot enabled. Disabled by default.", - "type": "boolean" - }, - "enableVtpm": { - "description": "Defines whether the instance has the vTPM enabled. Enabled by default.", - "type": "boolean" + "preservedState": { + "$ref": "StatefulPolicyPreservedState" } }, "type": "object" }, - "ShieldedInstanceIdentity": { - "description": "A Shielded Instance Identity.", - "id": "ShieldedInstanceIdentity", + "StatefulPolicyPreservedState": { + "description": "Configuration of preserved resources.", + "id": "StatefulPolicyPreservedState", "properties": { - "encryptionKey": { - "$ref": "ShieldedInstanceIdentityEntry", - "description": "An Endorsement Key (EK) made by the RSA 2048 algorithm issued to the Shielded Instance's vTPM." + "disks": { + "additionalProperties": { + "$ref": "StatefulPolicyPreservedStateDiskDevice" + }, + "description": "Disks created on the instances that will be preserved on instance\ndelete, update, etc. This map is keyed with the device names of\nthe disks.", + "type": "object" }, - "kind": { - "default": "compute#shieldedInstanceIdentity", - "description": "[Output Only] Type of the resource. Always compute#shieldedInstanceIdentity for shielded Instance identity entry.", - "type": "string" + "externalIPs": { + "additionalProperties": { + "$ref": "StatefulPolicyPreservedStateNetworkIp" + }, + "description": "External network IPs assigned to the instances that will be preserved on\ninstance delete, update, etc. This map is keyed with the network\ninterface name.", + "type": "object" }, - "signingKey": { - "$ref": "ShieldedInstanceIdentityEntry", - "description": "An Attestation Key (AK) made by the RSA 2048 algorithm issued to the Shielded Instance's vTPM." + "internalIPs": { + "additionalProperties": { + "$ref": "StatefulPolicyPreservedStateNetworkIp" + }, + "description": "Internal network IPs assigned to the instances that will be preserved on\ninstance delete, update, etc. This map is keyed with the network\ninterface name.", + "type": "object" } }, "type": "object" }, - "ShieldedInstanceIdentityEntry": { - "description": "A Shielded Instance Identity Entry.", - "id": "ShieldedInstanceIdentityEntry", + "StatefulPolicyPreservedStateDiskDevice": { + "id": "StatefulPolicyPreservedStateDiskDevice", "properties": { - "ekCert": { - "description": "A PEM-encoded X.509 certificate. This field can be empty.", - "type": "string" - }, - "ekPub": { - "description": "A PEM-encoded public key.", + "autoDelete": { + "description": "These stateful disks will never be deleted during autohealing,\nupdate or VM instance recreate operations.\nThis flag is used to configure if the disk should be deleted after it\nis no longer used by the group, e.g. when the given instance or\nthe whole group is deleted. Note: disks attached inREAD_ONLY mode cannot be auto-deleted.", + "enum": [ + "NEVER", + "ON_PERMANENT_INSTANCE_DELETION" + ], + "enumDescriptions": [ + "", + "" + ], "type": "string" } }, "type": "object" }, - "ShieldedInstanceIntegrityPolicy": { - "description": "The policy describes the baseline against which Instance boot integrity is measured.", - "id": "ShieldedInstanceIntegrityPolicy", + "StatefulPolicyPreservedStateNetworkIp": { + "id": "StatefulPolicyPreservedStateNetworkIp", "properties": { - "updateAutoLearnPolicy": { - "description": "Updates the integrity policy baseline using the measurements from the VM instance's most recent boot.", - "type": "boolean" + "autoDelete": { + "description": "These stateful IPs will never be released during autohealing,\nupdate or VM instance recreate operations.\nThis flag is used to configure if the IP reservation should be deleted\nafter it is no longer used by the group, e.g. when the given instance\nor the whole group is deleted.", + "enum": [ + "NEVER", + "ON_PERMANENT_INSTANCE_DELETION" + ], + "enumDescriptions": [ + "", + "" + ], + "type": "string" } }, "type": "object" }, - "SignedUrlKey": { - "description": "Represents a customer-supplied Signing Key used by Cloud CDN Signed URLs", - "id": "SignedUrlKey", + "Status": { + "description": "The `Status` type defines a logical error model that is suitable for\ndifferent programming environments, including REST APIs and RPC APIs. It is\nused by [gRPC](https://github.com/grpc). Each `Status` message contains\nthree pieces of data: error code, error message, and error details.\n\nYou can find out more about this error model and how to work with it in the\n[API Design Guide](https://cloud.google.com/apis/design/errors).", + "id": "Status", "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" + "code": { + "description": "The status code, which should be an enum value of google.rpc.Code.", + "format": "int32", + "type": "integer" }, - "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.", + "details": { + "description": "A list of messages that carry the error details. There is a common set of\nmessage types for APIs to use.", + "items": { + "additionalProperties": { + "description": "Properties of the object. Contains field @type with type URL.", + "type": "any" + }, + "format": "google.protobuf.Any", + "type": "object" + }, + "type": "array" + }, + "message": { + "description": "A developer-facing error message, which should be in English. Any\nuser-facing error message should be localized and sent in the\ngoogle.rpc.Status.details field, or localized by the client.", "type": "string" } }, "type": "object" }, - "Snapshot": { - "description": "Represents a Persistent Disk Snapshot resource. You can use snapshots to back up data on a regular interval. For more information, read Creating persistent disk snapshots.", - "id": "Snapshot", + "StoragePool": { + "description": "Represents a zonal storage pool resource.", + "id": "StoragePool", "properties": { - "architecture": { - "description": "[Output Only] The architecture of the snapshot. Valid values are ARM64 or X86_64.", + "capacityProvisioningType": { + "description": "Provisioning type of the byte capacity of the pool.", "enum": [ - "ARCHITECTURE_UNSPECIFIED", - "ARM64", - "X86_64" + "ADVANCED", + "STANDARD", + "UNSPECIFIED" ], "enumDescriptions": [ - "Default value indicating Architecture is not set.", - "Machines with architecture ARM64", - "Machines with architecture X86_64" + "Advanced provisioning \"thinly\" allocates the related resource.", + "Standard provisioning allocates the related resource for the pool\ndisks' exclusive use.", + "" ], "type": "string" }, - "autoCreated": { - "description": "[Output Only] Set to true if snapshots are automatically created by applying resource policy on the target disk.", - "type": "boolean" - }, - "chainName": { - "description": "Creates the new snapshot in the snapshot chain labeled with the specified name. The chain name must be 1-63 characters long and comply with RFC1035. This is an uncommon option only for advanced service owners who needs to create separate snapshot chains, for example, for chargeback tracking. When you describe your snapshot resource, this field is visible only if it has a non-empty value.", - "type": "string" - }, - "creationSizeBytes": { - "description": "[Output Only] Size in bytes of the snapshot at creation time.", - "format": "int64", - "type": "string" - }, "creationTimestamp": { - "description": "[Output Only] Creation timestamp in RFC3339 text format.", + "description": "Output only. [Output Only] Creation timestamp inRFC3339\ntext format.", + "readOnly": true, "type": "string" }, "description": { - "description": "An optional description of this resource. Provide this property when you create the resource.", - "type": "string" - }, - "diskSizeGb": { - "description": "[Output Only] Size of the source disk, specified in GB.", - "format": "int64", - "type": "string" - }, - "downloadBytes": { - "description": "[Output Only] Number of bytes downloaded to restore a snapshot to a disk.", - "format": "int64", + "description": "An optional description of this resource. Provide this property when you\ncreate the resource.", "type": "string" }, - "enableConfidentialCompute": { - "description": "Whether this snapshot is created from a confidential compute mode disk. [Output Only]: This field is not set by user, but from source disk.", - "type": "boolean" - }, - "guestOsFeatures": { - "description": "[Output Only] A list of features to enable on the guest operating system. Applicable only for bootable images. Read Enabling guest operating system features to see a list of available options.", - "items": { - "$ref": "GuestOsFeature" - }, - "type": "array" + "exapoolProvisionedCapacityGb": { + "$ref": "StoragePoolExapoolProvisionedCapacityGb", + "description": "Output only. [Output Only] Provisioned capacities for each SKU for this Exapool in GiB", + "readOnly": true }, "id": { - "description": "[Output Only] The unique identifier for the resource. This identifier is defined by the server.", + "description": "Output only. [Output Only] The unique identifier for the resource. This identifier is\ndefined by the server.", "format": "uint64", + "readOnly": true, "type": "string" }, "kind": { - "default": "compute#snapshot", - "description": "[Output Only] Type of the resource. Always compute#snapshot for Snapshot resources.", + "default": "compute#storagePool", + "description": "Output only. [Output Only] Type of the resource. Always compute#storagePool\nfor storage pools.", + "readOnly": true, "type": "string" }, "labelFingerprint": { - "description": "A fingerprint for the labels being applied to this snapshot, which is essentially a hash of the labels set used for optimistic locking. The fingerprint is initially generated by Compute Engine and changes after every request to modify or update labels. You must always provide an up-to-date fingerprint hash in order to update or change labels, otherwise the request will fail with error 412 conditionNotMet. To see the latest fingerprint, make a get() request to retrieve a snapshot.", + "description": "A fingerprint for the labels being applied to this storage pool, which is\nessentially a hash of the labels set used for optimistic locking. The\nfingerprint is initially generated by Compute Engine and changes after\nevery request to modify or update labels. You must always provide an\nup-to-date fingerprint hash in order to update or change labels,\notherwise the request will fail with error412 conditionNotMet.\n\nTo see the latest fingerprint, make a get() request to\nretrieve a storage pool.", "format": "byte", "type": "string" }, @@ -73435,182 +101557,152 @@ "additionalProperties": { "type": "string" }, - "description": "Labels to apply to this snapshot. These can be later modified by the setLabels method. Label values may be empty.", + "description": "Labels to apply to this storage pool. These can be later modified by\nthe setLabels method.", "type": "object" }, - "licenseCodes": { - "description": "[Output Only] Integer license codes indicating which licenses are attached to this snapshot.", - "items": { - "format": "int64", - "type": "string" - }, - "type": "array" - }, - "licenses": { - "description": "[Output Only] A list of public visible licenses that apply to this snapshot. This can be because the original image had licenses attached (such as a Windows image).", - "items": { - "type": "string" - }, - "type": "array" - }, - "locationHint": { - "description": "An opaque location hint used to place the snapshot close to other resources. This field is for use by internal tools that use the public API.", - "type": "string" - }, "name": { "annotations": { "required": [ - "compute.disks.createSnapshot", - "compute.snapshots.insert" + "compute.storagePools.insert" ] }, - "description": "Name of the resource; provided by the client when the resource is created. The name must be 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters long and match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash.", + "description": "Name of the resource. Provided by the client when the resource is created.\nThe name must be 1-63 characters long, and comply withRFC1035.\nSpecifically, the name must be 1-63 characters long and match the regular\nexpression `[a-z]([-a-z0-9]*[a-z0-9])?`\nwhich means the first character must be a lowercase letter, and all\nfollowing characters must be a dash, lowercase letter, or digit, except\nthe last character, which cannot be a dash.", "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", "type": "string" }, - "satisfiesPzi": { - "description": "Output only. Reserved for future use.", - "readOnly": true, - "type": "boolean" - }, - "satisfiesPzs": { - "description": "[Output Only] Reserved for future use.", - "type": "boolean" - }, - "selfLink": { - "description": "[Output Only] Server-defined URL for the resource.", - "type": "string" - }, - "snapshotEncryptionKey": { - "$ref": "CustomerEncryptionKey", - "description": "Encrypts the snapshot using a customer-supplied encryption key. After you encrypt a snapshot using a customer-supplied key, you must provide the same key if you use the snapshot later. For example, you must provide the encryption key when you create a disk from the encrypted snapshot in a future request. Customer-supplied encryption keys do not protect access to metadata of the snapshot. If you do not provide an encryption key when creating the snapshot, then the snapshot will be encrypted using an automatically generated key and you do not need to provide a key to use the snapshot later." + "params": { + "$ref": "StoragePoolParams", + "description": "Input only. Additional params passed with the request, but not persisted\nas part of resource payload." }, - "snapshotType": { - "description": "Indicates the type of the snapshot.", + "performanceProvisioningType": { + "description": "Provisioning type of the performance-related parameters of the pool,\nsuch as throughput and IOPS.", "enum": [ - "ARCHIVE", - "STANDARD" + "ADVANCED", + "STANDARD", + "UNSPECIFIED" ], "enumDescriptions": [ - "", + "Advanced provisioning \"thinly\" allocates the related resource.", + "Standard provisioning allocates the related resource for the pool\ndisks' exclusive use.", "" ], "type": "string" }, - "sourceDisk": { - "description": "The source disk used to create this snapshot.", - "type": "string" - }, - "sourceDiskEncryptionKey": { - "$ref": "CustomerEncryptionKey", - "description": "The customer-supplied encryption key of the source disk. Required if the source disk is protected by a customer-supplied encryption key." - }, - "sourceDiskForRecoveryCheckpoint": { - "description": "The source disk whose recovery checkpoint will be used to create this snapshot.", + "poolProvisionedCapacityGb": { + "annotations": { + "required": [ + "compute.storagePools.insert" + ] + }, + "description": "Size of the storage pool in GiB. For more information about the size\nlimits, see https://cloud.google.com/compute/docs/disks/storage-pools.", + "format": "int64", "type": "string" }, - "sourceDiskId": { - "description": "[Output Only] The ID value of the disk used to create this snapshot. This value may be used to determine whether the snapshot was taken from the current or a previous instance of a given disk name.", + "poolProvisionedIops": { + "description": "Provisioned IOPS of the storage pool. Only relevant if the storage pool\ntype is hyperdisk-balanced.", + "format": "int64", "type": "string" }, - "sourceInstantSnapshot": { - "description": "The source instant snapshot used to create this snapshot. 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 /instantSnapshots/instantSnapshot - projects/project/zones/zone/instantSnapshots/instantSnapshot - zones/zone/instantSnapshots/instantSnapshot ", + "poolProvisionedThroughput": { + "description": "Provisioned throughput of the storage pool in MiB/s. Only relevant if the\nstorage pool type is hyperdisk-balanced or hyperdisk-throughput.", + "format": "int64", "type": "string" }, - "sourceInstantSnapshotEncryptionKey": { - "$ref": "CustomerEncryptionKey", - "description": "Customer provided encryption key when creating Snapshot from Instant Snapshot." - }, - "sourceInstantSnapshotId": { - "description": "[Output Only] The unique ID of the instant snapshot used to create this snapshot. This value identifies the exact instant snapshot that was used to create this persistent disk. For example, if you created the persistent disk from an instant snapshot that was later deleted and recreated under the same name, the source instant snapshot ID would identify the exact instant snapshot that was used.", - "type": "string" + "resourceStatus": { + "$ref": "StoragePoolResourceStatus", + "description": "Output only. [Output Only] Status information for the storage pool resource.", + "readOnly": true }, - "sourceSnapshotSchedulePolicy": { - "description": "[Output Only] URL of the resource policy which created this scheduled snapshot.", + "selfLink": { + "description": "Output only. [Output Only] Server-defined fully-qualified URL for this resource.", + "readOnly": true, "type": "string" }, - "sourceSnapshotSchedulePolicyId": { - "description": "[Output Only] ID of the resource policy which created this scheduled snapshot.", + "selfLinkWithId": { + "description": "Output only. [Output Only] Server-defined URL for this resource's resource id.", + "readOnly": true, "type": "string" }, - "status": { - "description": "[Output Only] The status of the snapshot. This can be CREATING, DELETING, FAILED, READY, or UPLOADING.", + "state": { + "description": "Output only. [Output Only] The status of storage pool creation.\n \n \n - CREATING: Storage pool is provisioning.\n storagePool.\n - FAILED: Storage pool creation failed.\n - READY: Storage pool is ready for use.\n - DELETING: Storage pool is deleting.", "enum": [ "CREATING", "DELETING", "FAILED", - "READY", - "UPLOADING" + "READY" ], "enumDescriptions": [ - "Snapshot creation is in progress.", - "Snapshot is currently being deleted.", - "Snapshot creation failed.", - "Snapshot has been created successfully.", - "Snapshot is being uploaded." + "StoragePool is provisioning", + "StoragePool is deleting.", + "StoragePool creation failed.", + "StoragePool is ready for use." ], + "readOnly": true, "type": "string" }, - "storageBytes": { - "description": "[Output Only] A size of the storage used by the snapshot. As snapshots share storage, this number is expected to change with snapshot creation/deletion.", - "format": "int64", - "type": "string" + "status": { + "$ref": "StoragePoolResourceStatus", + "description": "Output only. [Output Only] Status information for the storage pool resource.", + "readOnly": true }, - "storageBytesStatus": { - "description": "[Output Only] An indicator whether storageBytes is in a stable state or it is being adjusted as a result of shared storage reallocation. This status can either be UPDATING, meaning the size of the snapshot is being updated, or UP_TO_DATE, meaning the size of the snapshot is up-to-date.", - "enum": [ - "UPDATING", - "UP_TO_DATE" - ], - "enumDescriptions": [ - "", - "" - ], + "storagePoolType": { + "description": "Type of the storage pool.", "type": "string" }, - "storageLocations": { - "description": "Cloud Storage bucket storage location of the snapshot (regional or multi-regional).", - "items": { - "type": "string" - }, - "type": "array" + "zone": { + "description": "Output only. [Output Only] URL of the zone where the storage pool resides.\nYou must specify this field as part of the HTTP request URL. It is\nnot settable as a field in the request body.", + "readOnly": true, + "type": "string" } }, "type": "object" }, - "SnapshotList": { - "description": "Contains a list of Snapshot resources.", - "id": "SnapshotList", + "StoragePoolAggregatedList": { + "id": "StoragePoolAggregatedList", "properties": { + "etag": { + "type": "string" + }, "id": { "description": "[Output Only] Unique identifier for the resource; defined by the server.", "type": "string" }, "items": { - "description": "A list of Snapshot resources.", - "items": { - "$ref": "Snapshot" + "additionalProperties": { + "$ref": "StoragePoolsScopedList", + "description": "[Output Only] Name of the scope containing this set of storage pool." }, - "type": "array" + "description": "A list of StoragePoolsScopedList resources.", + "type": "object" }, "kind": { - "default": "compute#snapshotList", - "description": "Type of resource.", + "default": "compute#storagePoolAggregatedList", + "description": "Output only. [Output Only] Type of resource. Alwayscompute#storagePoolAggregatedList for aggregated lists of\nstorage pools.", + "readOnly": true, "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.", + "description": "[Output Only] This token allows you to get the next page of results for\nlist requests. If the number of results is larger thanmaxResults, use the nextPageToken as a value for\nthe query parameter pageToken in the next list request.\nSubsequent list requests will have their own nextPageToken to\ncontinue paging through the results.", "type": "string" }, "selfLink": { - "description": "[Output Only] Server-defined URL for this resource.", + "description": "Output only. [Output Only] Server-defined URL for this resource.", + "readOnly": true, "type": "string" }, + "unreachables": { + "description": "Output only. [Output Only] Unreachable resources.", + "items": { + "type": "string" + }, + "readOnly": true, + "type": "array" + }, "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.", + "description": "[Output Only] A warning code, if applicable. For example, Compute\nEngine returns NO_RESULTS_ON_PAGE if there\nare no results in the response.", "enum": [ "CLEANUP_FAILED", "DEPRECATED_RESOURCE_USED", @@ -73633,6 +101725,7 @@ "NOT_CRITICAL_ERROR", "NO_RESULTS_ON_PAGE", "PARTIAL_SUCCESS", + "QUOTA_INFO_UNAVAILABLE", "REQUIRED_TOS_AGREEMENT", "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", "RESOURCE_NOT_DELETED", @@ -73669,46 +101762,48 @@ false, false, false, + false, false ], "enumDescriptions": [ - "Warning about failed cleanup of transient changes made by a failed operation.", + "Warning about failed cleanup of transient changes made by a failed\noperation.", "A link to a deprecated resource was created.", - "When deploying and at least one of the resources has a type marked as deprecated", + "When deploying and at least one of the resources has a type marked as\ndeprecated", "The user created a boot disk that is larger than image size.", - "When deploying and at least one of the resources has a type marked as experimental", + "When deploying and at least one of the resources has a type marked as\nexperimental", "Warning that is present in an external api call", - "Warning that value of a field has been overridden. Deprecated unused field.", + "Warning that value of a field has been overridden.\nDeprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", - "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is\nnot of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", - "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", + "Resource can't be retrieved due to list overhead quota exceed\nwhich captures the amount of resources filtered out by\nuser-defined list filter.", "A resource depends on a missing type", - "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's nextHopIp address is not assigned to an instance on the\nnetwork.", "The route's next hop instance cannot ip forward.", - "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not have an\nipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", - "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that is not on the\nsame network as the route.", "The route's next hop instance does not have a status of RUNNING.", - "Error which is not critical. We decided to continue the process despite the mentioned error.", + "Error which is not critical. We decided to continue the process despite\nthe mentioned error.", "No results are present on a particular list page.", "Success is reported, but some results may be missing due to errors", - "The user attempted to use a resource that requires a TOS they have not accepted.", + "Quota information is not available to client requests (e.g:\nregions.list).", + "The user attempted to use a resource that requires a TOS they have not\naccepted.", "Warning that a resource is in use.", - "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "One or more of the resources set to auto-delete could not be deleted\nbecause they were in use.", "When a resource schema validation is ignored.", - "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", + "Instance template used in instance group manager is valid as such, but\nits application does not make a lot of sense, because it allows only\nsingle instance in instance group.", "When undeclared properties in the schema are present", "A given scope cannot be reached." ], "type": "string" }, "data": { - "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", + "description": "[Output Only] Metadata about this warning in key:\nvalue format. For example:\n\n\"data\": [\n {\n \"key\": \"scope\",\n \"value\": \"zones/us-east1-d\"\n }", "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).", + "description": "[Output Only] A key that provides more detail on the warning being\nreturned. For example, for warnings where there are no results in a list\nrequest for a particular zone, this key might be scope and\nthe key value might be the zone name. Other examples might be a key\nindicating a deprecated resource and a suggested replacement, or a\nwarning about invalid network settings (for example, if an instance\nattempts to perform IP forwarding but is not enabled for IP forwarding).", "type": "string" }, "value": { @@ -73730,291 +101825,161 @@ }, "type": "object" }, - "SnapshotSettings": { - "id": "SnapshotSettings", - "properties": { - "storageLocation": { - "$ref": "SnapshotSettingsStorageLocationSettings", - "description": "Policy of which storage location is going to be resolved, and additional data that particularizes how the policy is going to be carried out." - } - }, - "type": "object" - }, - "SnapshotSettingsStorageLocationSettings": { - "id": "SnapshotSettingsStorageLocationSettings", + "StoragePoolDisk": { + "id": "StoragePoolDisk", "properties": { - "locations": { - "additionalProperties": { - "$ref": "SnapshotSettingsStorageLocationSettingsStorageLocationPreference" + "attachedInstances": { + "description": "Output only. [Output Only] Instances this disk is attached to.", + "items": { + "type": "string" }, - "description": "When the policy is SPECIFIC_LOCATIONS, snapshots will be stored in the locations listed in this field. Keys are Cloud Storage bucket locations. Only one location can be specified.", - "type": "object" + "readOnly": true, + "type": "array" }, - "policy": { - "description": "The chosen location policy.", - "enum": [ - "LOCAL_REGION", - "NEAREST_MULTI_REGION", - "SPECIFIC_LOCATIONS", - "STORAGE_LOCATION_POLICY_UNSPECIFIED" - ], - "enumDescriptions": [ - "Store snapshot in the same region as with the originating disk. No additional parameters are needed.", - "Store snapshot in the nearest multi region Cloud Storage bucket, relative to the originating disk. No additional parameters are needed.", - "Store snapshot in the specific locations, as specified by the user. The list of regions to store must be defined under the `locations` field.", - "" - ], + "creationTimestamp": { + "description": "Output only. [Output Only] Creation timestamp inRFC3339\ntext format.", + "readOnly": true, "type": "string" - } - }, - "type": "object" - }, - "SnapshotSettingsStorageLocationSettingsStorageLocationPreference": { - "description": "A structure for specifying storage locations.", - "id": "SnapshotSettingsStorageLocationSettingsStorageLocationPreference", - "properties": { - "name": { - "description": "Name of the location. It should be one of the Cloud Storage buckets. Only one location can be specified.", + }, + "disk": { + "description": "Output only. [Output Only] The URL of the disk.", + "readOnly": true, "type": "string" - } - }, - "type": "object" - }, - "SourceDiskEncryptionKey": { - "id": "SourceDiskEncryptionKey", - "properties": { - "diskEncryptionKey": { - "$ref": "CustomerEncryptionKey", - "description": "The customer-supplied encryption key of the source disk. Required if the source disk is protected by a customer-supplied encryption key." }, - "sourceDisk": { - "description": "URL of the disk attached to the source instance. This can be a full or valid partial URL. For example, the following are valid values: - https://www.googleapis.com/compute/v1/projects/project/zones/zone /disks/disk - projects/project/zones/zone/disks/disk - zones/zone/disks/disk ", + "name": { + "description": "Output only. [Output Only] The name of the disk.", + "readOnly": true, "type": "string" - } - }, - "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, the source images for each disk will be used. 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" - }, - "SourceInstanceProperties": { - "description": "DEPRECATED: Please use compute#instanceProperties instead. New properties will not be added to this field.", - "id": "SourceInstanceProperties", - "properties": { - "canIpForward": { - "description": "Enables instances created based on this machine image to send packets with source IP addresses other than their own and receive packets with destination IP addresses other than their own. If these instances will be used as an IP gateway or it will be set as the next-hop in a Route resource, specify true. If unsure, leave this set to false. See the Enable IP forwarding documentation for more information.", - "type": "boolean" }, - "deletionProtection": { - "description": "Whether the instance created from this machine image should be protected against deletion.", - "type": "boolean" + "provisionedIops": { + "description": "Output only. [Output Only] The number of IOPS provisioned for the disk.", + "format": "int64", + "readOnly": true, + "type": "string" }, - "description": { - "description": "An optional text description for the instances that are created from this machine image.", + "provisionedThroughput": { + "description": "Output only. [Output Only] The throughput provisioned for the disk.", + "format": "int64", + "readOnly": true, "type": "string" }, - "disks": { - "description": "An array of disks that are associated with the instances that are created from this machine image.", + "resourcePolicies": { + "description": "Output only. [Output Only] Resource policies applied to disk for automatic snapshot\ncreations.", "items": { - "$ref": "SavedAttachedDisk" + "type": "string" }, + "readOnly": true, "type": "array" }, - "guestAccelerators": { - "description": "A list of guest accelerator cards' type and count to use for instances created from this machine image.", - "items": { - "$ref": "AcceleratorConfig" - }, - "type": "array" + "sizeGb": { + "description": "Output only. [Output Only] The disk size, in GB.", + "format": "int64", + "readOnly": true, + "type": "string" }, - "keyRevocationActionType": { - "description": "KeyRevocationActionType of the instance. Supported options are \"STOP\" and \"NONE\". The default value is \"NONE\" if it is not specified.", + "status": { + "description": "Output only. [Output Only] The disk status.", "enum": [ - "KEY_REVOCATION_ACTION_TYPE_UNSPECIFIED", - "NONE", - "STOP" + "CREATING", + "DELETING", + "FAILED", + "READY", + "RESTORING", + "UNAVAILABLE" ], "enumDescriptions": [ - "Default value. This value is unused.", - "Indicates user chose no operation.", - "Indicates user chose to opt for VM shutdown on key revocation." + "Disk is provisioning", + "Disk is deleting.", + "Disk creation failed.", + "Disk is ready for use.", + "Source data is being copied into the disk.", + "Disk is currently unavailable and cannot be accessed, attached or\ndetached." ], + "readOnly": true, "type": "string" }, - "labels": { - "additionalProperties": { - "type": "string" - }, - "description": "Labels to apply to instances that are created from this machine image.", - "type": "object" - }, - "machineType": { - "description": "The machine type to use for instances that are created from this machine image.", + "type": { + "description": "Output only. [Output Only] The disk type.", + "readOnly": true, "type": "string" }, - "metadata": { - "$ref": "Metadata", - "description": "The metadata key/value pairs to assign to instances that are created from this machine image. These pairs can consist of custom metadata or predefined keys. See Project and instance metadata for more information." - }, - "minCpuPlatform": { - "description": "Minimum cpu/platform to be used by instances created from this machine image. The instance may be scheduled on the specified or newer cpu/platform. Applicable values are the friendly names of CPU platforms, such as minCpuPlatform: \"Intel Haswell\" or minCpuPlatform: \"Intel Sandy Bridge\". For more information, read Specifying a Minimum CPU Platform.", + "usedBytes": { + "description": "Output only. [Output Only] Amount of disk space used.", + "format": "int64", + "readOnly": true, "type": "string" - }, - "networkInterfaces": { - "description": "An array of network access configurations for this interface.", - "items": { - "$ref": "NetworkInterface" - }, - "type": "array" - }, - "scheduling": { - "$ref": "Scheduling", - "description": "Specifies the scheduling options for the instances that are created from this machine image." - }, - "serviceAccounts": { - "description": "A list of service accounts with specified scopes. Access tokens for these service accounts are available to the instances that are created from this machine image. Use metadata queries to obtain the access tokens for these instances.", - "items": { - "$ref": "ServiceAccount" - }, - "type": "array" - }, - "tags": { - "$ref": "Tags", - "description": "A list of tags to apply to the instances that are created from this machine image. The tags identify valid sources or targets for network firewalls. The setTags method can modify this list of tags. Each tag within the list must comply with RFC1035." } }, "type": "object" }, - "SslCertificate": { - "description": "Represents an SSL certificate resource. Google Compute Engine has two SSL certificate resources: * [Global](/compute/docs/reference/rest/v1/sslCertificates) * [Regional](/compute/docs/reference/rest/v1/regionSslCertificates) The global SSL certificates (sslCertificates) are used by: - Global external Application Load Balancers - Classic Application Load Balancers - Proxy Network Load Balancers (with target SSL proxies) The regional SSL certificates (regionSslCertificates) are used by: - Regional external Application Load Balancers - Regional internal Application Load Balancers Optionally, certificate file contents that you upload can contain a set of up to five PEM-encoded certificates. The API call creates an object (sslCertificate) that holds this data. You can use SSL keys and certificates to secure connections to a load balancer. For more information, read Creating and using SSL certificates, SSL certificates quotas and limits, and Troubleshooting SSL certificates.", - "id": "SslCertificate", + "StoragePoolExapoolProvisionedCapacityGb": { + "description": "Exapool provisioned capacities for each SKU type", + "id": "StoragePoolExapoolProvisionedCapacityGb", "properties": { - "certificate": { - "description": "A value read into memory from a certificate file. The certificate file must be in PEM format. The certificate chain must be no greater than 5 certs long. The chain must include at least one intermediate cert.", - "type": "string" - }, - "creationTimestamp": { - "description": "[Output Only] Creation timestamp in RFC3339 text format.", - "type": "string" - }, - "description": { - "description": "An optional description of this resource. Provide this property when you create the resource.", - "type": "string" - }, - "expireTime": { - "description": "[Output Only] Expire time of the certificate. RFC3339", - "type": "string" - }, - "id": { - "description": "[Output Only] The unique identifier for the resource. This identifier is defined by the server.", - "format": "uint64", - "type": "string" - }, - "kind": { - "default": "compute#sslCertificate", - "description": "[Output Only] Type of the resource. Always compute#sslCertificate for SSL certificates.", - "type": "string" - }, - "managed": { - "$ref": "SslCertificateManagedSslCertificate", - "description": "Configuration and status of a managed SSL certificate." - }, - "name": { - "description": "Name of the resource. Provided by the client when the resource is created. The name must be 1-63 characters long, and comply with RFC1035. 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" - }, - "privateKey": { - "description": "A value read into memory from a write-only private key file. The private key file must be in PEM format. For security, only insert requests include this field.", - "type": "string" - }, - "region": { - "description": "[Output Only] URL of the region where the regional SSL Certificate resides. This field is not applicable to global SSL Certificate.", + "capacityOptimized": { + "description": "Size, in GiB, of provisioned capacity-optimized capacity for this Exapool", + "format": "int64", "type": "string" }, - "selfLink": { - "description": "[Output only] Server-defined URL for the resource.", + "readOptimized": { + "description": "Size, in GiB, of provisioned read-optimized capacity for this Exapool", + "format": "int64", "type": "string" }, - "selfManaged": { - "$ref": "SslCertificateSelfManagedSslCertificate", - "description": "Configuration and status of a self-managed SSL certificate." - }, - "subjectAlternativeNames": { - "description": "[Output Only] Domains associated with the certificate via Subject Alternative Name.", - "items": { - "type": "string" - }, - "type": "array" - }, - "type": { - "description": "(Optional) Specifies the type of SSL certificate, either \"SELF_MANAGED\" or \"MANAGED\". If not specified, the certificate is self-managed and the fields certificate and private_key are used.", - "enum": [ - "MANAGED", - "SELF_MANAGED", - "TYPE_UNSPECIFIED" - ], - "enumDescriptions": [ - "Google-managed SSLCertificate.", - "Certificate uploaded by user.", - "" - ], + "writeOptimized": { + "description": "Size, in GiB, of provisioned write-optimized capacity for this Exapool", + "format": "int64", "type": "string" } }, "type": "object" }, - "SslCertificateAggregatedList": { - "id": "SslCertificateAggregatedList", + "StoragePoolList": { + "description": "A list of StoragePool resources.", + "id": "StoragePoolList", "properties": { + "etag": { + "type": "string" + }, "id": { "description": "[Output Only] Unique identifier for the resource; defined by the server.", "type": "string" }, "items": { - "additionalProperties": { - "$ref": "SslCertificatesScopedList", - "description": "Name of the scope containing this set of SslCertificates." + "description": "A list of StoragePool resources.", + "items": { + "$ref": "StoragePool" }, - "description": "A list of SslCertificatesScopedList resources.", - "type": "object" + "type": "array" }, "kind": { - "default": "compute#sslCertificateAggregatedList", - "description": "[Output Only] Type of resource. Always compute#sslCertificateAggregatedList for lists of SSL Certificates.", + "default": "compute#storagePoolList", + "description": "Output only. [Output Only] Type of resource. Always compute#storagePoolList\nfor lists of storagePools.", + "readOnly": true, "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.", + "description": "[Output Only] This token allows you to get the next page of results for\nlist requests. If the number of results is larger thanmaxResults, use the nextPageToken as a value for\nthe query parameter pageToken in the next list request.\nSubsequent list requests will have their own nextPageToken to\ncontinue paging through the results.", "type": "string" }, "selfLink": { - "description": "[Output Only] Server-defined URL for this resource.", + "description": "Output only. [Output Only] Server-defined URL for this resource.", + "readOnly": true, "type": "string" }, "unreachables": { - "description": "[Output Only] Unreachable resources.", + "description": "Output only. [Output Only] Unreachable resources.\nend_interface: MixerListResponseWithEtagBuilder", "items": { "type": "string" }, + "readOnly": true, "type": "array" }, "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.", + "description": "[Output Only] A warning code, if applicable. For example, Compute\nEngine returns NO_RESULTS_ON_PAGE if there\nare no results in the response.", "enum": [ "CLEANUP_FAILED", "DEPRECATED_RESOURCE_USED", @@ -74037,6 +102002,7 @@ "NOT_CRITICAL_ERROR", "NO_RESULTS_ON_PAGE", "PARTIAL_SUCCESS", + "QUOTA_INFO_UNAVAILABLE", "REQUIRED_TOS_AGREEMENT", "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", "RESOURCE_NOT_DELETED", @@ -74073,46 +102039,48 @@ false, false, false, + false, false ], "enumDescriptions": [ - "Warning about failed cleanup of transient changes made by a failed operation.", + "Warning about failed cleanup of transient changes made by a failed\noperation.", "A link to a deprecated resource was created.", - "When deploying and at least one of the resources has a type marked as deprecated", + "When deploying and at least one of the resources has a type marked as\ndeprecated", "The user created a boot disk that is larger than image size.", - "When deploying and at least one of the resources has a type marked as experimental", + "When deploying and at least one of the resources has a type marked as\nexperimental", "Warning that is present in an external api call", - "Warning that value of a field has been overridden. Deprecated unused field.", + "Warning that value of a field has been overridden.\nDeprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", - "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is\nnot of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", - "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", + "Resource can't be retrieved due to list overhead quota exceed\nwhich captures the amount of resources filtered out by\nuser-defined list filter.", "A resource depends on a missing type", - "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's nextHopIp address is not assigned to an instance on the\nnetwork.", "The route's next hop instance cannot ip forward.", - "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not have an\nipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", - "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that is not on the\nsame network as the route.", "The route's next hop instance does not have a status of RUNNING.", - "Error which is not critical. We decided to continue the process despite the mentioned error.", + "Error which is not critical. We decided to continue the process despite\nthe mentioned error.", "No results are present on a particular list page.", "Success is reported, but some results may be missing due to errors", - "The user attempted to use a resource that requires a TOS they have not accepted.", + "Quota information is not available to client requests (e.g:\nregions.list).", + "The user attempted to use a resource that requires a TOS they have not\naccepted.", "Warning that a resource is in use.", - "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "One or more of the resources set to auto-delete could not be deleted\nbecause they were in use.", "When a resource schema validation is ignored.", - "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", + "Instance template used in instance group manager is valid as such, but\nits application does not make a lot of sense, because it allows only\nsingle instance in instance group.", "When undeclared properties in the schema are present", "A given scope cannot be reached." ], "type": "string" }, "data": { - "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", + "description": "[Output Only] Metadata about this warning in key:\nvalue format. For example:\n\n\"data\": [\n {\n \"key\": \"scope\",\n \"value\": \"zones/us-east1-d\"\n }", "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).", + "description": "[Output Only] A key that provides more detail on the warning being\nreturned. For example, for warnings where there are no results in a list\nrequest for a particular zone, this key might be scope and\nthe key value might be the zone name. Other examples might be a key\nindicating a deprecated resource and a suggested replacement, or a\nwarning about invalid network settings (for example, if an instance\nattempts to perform IP forwarding but is not enabled for IP forwarding).", "type": "string" }, "value": { @@ -74134,39 +102102,53 @@ }, "type": "object" }, - "SslCertificateList": { - "description": "Contains a list of SslCertificate resources.", - "id": "SslCertificateList", + "StoragePoolListDisks": { + "id": "StoragePoolListDisks", "properties": { + "etag": { + "type": "string" + }, "id": { - "description": "[Output Only] Unique identifier for the resource; defined by the server.", + "description": "Output only. [Output Only] Unique identifier for the resource; defined by the server.", + "readOnly": true, "type": "string" }, "items": { - "description": "A list of SslCertificate resources.", + "description": "A list of StoragePoolDisk resources.", "items": { - "$ref": "SslCertificate" + "$ref": "StoragePoolDisk" }, "type": "array" }, "kind": { - "default": "compute#sslCertificateList", - "description": "Type of resource.", + "default": "compute#storagePoolListDisks", + "description": "Output only. [Output Only] Type of resource. Alwayscompute#storagePoolListDisks for lists of disks in a\nstoragePool.", + "readOnly": true, "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.", + "description": "Output only. [Output Only] This token allows you to get the next page of results for\nlist requests. If the number of results is larger thanmaxResults, use the nextPageToken as a value for\nthe query parameter pageToken in the next list request.\nSubsequent list requests will have their own nextPageToken to\ncontinue paging through the results.", + "readOnly": true, "type": "string" }, "selfLink": { - "description": "[Output Only] Server-defined URL for this resource.", + "description": "Output only. [Output Only] Server-defined URL for this resource.", + "readOnly": true, "type": "string" }, + "unreachables": { + "description": "Output only. [Output Only] Unreachable resources.\nend_interface: MixerListResponseWithEtagBuilder", + "items": { + "type": "string" + }, + "readOnly": true, + "type": "array" + }, "warning": { - "description": "[Output Only] Informational warning message.", + "description": "Output only. [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.", + "description": "[Output Only] A warning code, if applicable. For example, Compute\nEngine returns NO_RESULTS_ON_PAGE if there\nare no results in the response.", "enum": [ "CLEANUP_FAILED", "DEPRECATED_RESOURCE_USED", @@ -74189,6 +102171,7 @@ "NOT_CRITICAL_ERROR", "NO_RESULTS_ON_PAGE", "PARTIAL_SUCCESS", + "QUOTA_INFO_UNAVAILABLE", "REQUIRED_TOS_AGREEMENT", "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", "RESOURCE_NOT_DELETED", @@ -74225,46 +102208,48 @@ false, false, false, + false, false ], "enumDescriptions": [ - "Warning about failed cleanup of transient changes made by a failed operation.", + "Warning about failed cleanup of transient changes made by a failed\noperation.", "A link to a deprecated resource was created.", - "When deploying and at least one of the resources has a type marked as deprecated", + "When deploying and at least one of the resources has a type marked as\ndeprecated", "The user created a boot disk that is larger than image size.", - "When deploying and at least one of the resources has a type marked as experimental", + "When deploying and at least one of the resources has a type marked as\nexperimental", "Warning that is present in an external api call", - "Warning that value of a field has been overridden. Deprecated unused field.", + "Warning that value of a field has been overridden.\nDeprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", - "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is\nnot of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", - "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", + "Resource can't be retrieved due to list overhead quota exceed\nwhich captures the amount of resources filtered out by\nuser-defined list filter.", "A resource depends on a missing type", - "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's nextHopIp address is not assigned to an instance on the\nnetwork.", "The route's next hop instance cannot ip forward.", - "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not have an\nipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", - "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that is not on the\nsame network as the route.", "The route's next hop instance does not have a status of RUNNING.", - "Error which is not critical. We decided to continue the process despite the mentioned error.", + "Error which is not critical. We decided to continue the process despite\nthe mentioned error.", "No results are present on a particular list page.", "Success is reported, but some results may be missing due to errors", - "The user attempted to use a resource that requires a TOS they have not accepted.", + "Quota information is not available to client requests (e.g:\nregions.list).", + "The user attempted to use a resource that requires a TOS they have not\naccepted.", "Warning that a resource is in use.", - "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "One or more of the resources set to auto-delete could not be deleted\nbecause they were in use.", "When a resource schema validation is ignored.", - "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", + "Instance template used in instance group manager is valid as such, but\nits application does not make a lot of sense, because it allows only\nsingle instance in instance group.", "When undeclared properties in the schema are present", "A given scope cannot be reached." ], "type": "string" }, "data": { - "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", + "description": "[Output Only] Metadata about this warning in key:\nvalue format. For example:\n\n\"data\": [\n {\n \"key\": \"scope\",\n \"value\": \"zones/us-east1-d\"\n }", "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).", + "description": "[Output Only] A key that provides more detail on the warning being\nreturned. For example, for warnings where there are no results in a list\nrequest for a particular zone, this key might be scope and\nthe key value might be the zone name. Other examples might be a key\nindicating a deprecated resource and a suggested replacement, or a\nwarning about invalid network settings (for example, if an instance\nattempts to perform IP forwarding but is not enabled for IP forwarding).", "type": "string" }, "value": { @@ -74281,262 +102266,231 @@ "type": "string" } }, + "readOnly": true, "type": "object" } }, "type": "object" }, - "SslCertificateManagedSslCertificate": { - "description": "Configuration and status of a managed SSL certificate.", - "id": "SslCertificateManagedSslCertificate", + "StoragePoolParams": { + "description": "Additional storage pool params.", + "id": "StoragePoolParams", "properties": { - "domainStatus": { + "resourceManagerTags": { "additionalProperties": { - "enum": [ - "ACTIVE", - "DOMAIN_STATUS_UNSPECIFIED", - "FAILED_CAA_CHECKING", - "FAILED_CAA_FORBIDDEN", - "FAILED_NOT_VISIBLE", - "FAILED_RATE_LIMITED", - "PROVISIONING" - ], - "enumDescriptions": [ - "A managed certificate can be provisioned, no issues for this domain.", - "", - "Failed to check CAA records for the domain.", - "Certificate issuance forbidden by an explicit CAA record for the domain.", - "There seems to be problem with the user's DNS or load balancer configuration for this domain.", - "Reached rate-limit for certificates per top-level private domain.", - "Certificate provisioning for this domain is under way. GCP will attempt to provision the first certificate." - ], "type": "string" }, - "description": "[Output only] Detailed statuses of the domains specified for managed certificate resource.", + "description": "Input only. Resource manager tags to be bound to the storage pool. Tag keys and values\nhave the same definition as resource\nmanager tags. Keys and values can be either in numeric format,\nsuch as `tagKeys/{tag_key_id}` and `tagValues/{tag_value_id}` or in\nnamespaced format such as `{org_id|project_id}/{tag_key_short_name}` and\n`{tag_value_short_name}`. The field is ignored (both PUT \u0026\nPATCH) when empty.", "type": "object" + } + }, + "type": "object" + }, + "StoragePoolResourceStatus": { + "description": "[Output Only] Contains output only fields.", + "id": "StoragePoolResourceStatus", + "properties": { + "diskCount": { + "description": "[Output Only] Number of disks used.", + "format": "int64", + "type": "string" }, - "domains": { - "description": "The domains for which a managed SSL certificate will be generated. Each Google-managed SSL certificate supports up to the [maximum number of domains per Google-managed SSL certificate](/load-balancing/docs/quotas#ssl_certificates).", - "items": { - "type": "string" - }, - "type": "array" + "exapoolMaxReadIops": { + "description": "Output only. [Output Only] Maximum allowed read IOPS for this Exapool.", + "format": "int64", + "readOnly": true, + "type": "string" }, - "status": { - "description": "[Output only] Status of the managed certificate resource.", - "enum": [ - "ACTIVE", - "MANAGED_CERTIFICATE_STATUS_UNSPECIFIED", - "PROVISIONING", - "PROVISIONING_FAILED", - "PROVISIONING_FAILED_PERMANENTLY", - "RENEWAL_FAILED" - ], - "enumDescriptions": [ - "The certificate management is working, and a certificate has been provisioned.", - "", - "The certificate management is working. GCP will attempt to provision the first certificate.", - "Certificate provisioning failed due to an issue with the DNS or load balancing configuration. For details of which domain failed, consult domain_status field.", - "Certificate provisioning failed due to an issue with the DNS or load balancing configuration. It won't be retried. To try again delete and create a new managed SslCertificate resource. For details of which domain failed, consult domain_status field.", - "Renewal of the certificate has failed due to an issue with the DNS or load balancing configuration. The existing cert is still serving; however, it will expire shortly. To provision a renewed certificate, delete and create a new managed SslCertificate resource. For details on which domain failed, consult domain_status field." - ], + "exapoolMaxReadThroughput": { + "description": "Output only. [Output Only] Maximum allowed read throughput in MiB/s for\nthis Exapool.", + "format": "int64", + "readOnly": true, + "type": "string" + }, + "exapoolMaxWriteIops": { + "description": "Output only. [Output Only] Maximum allowed write IOPS for this Exapool.", + "format": "int64", + "readOnly": true, + "type": "string" + }, + "exapoolMaxWriteThroughput": { + "description": "Output only. [Output Only] Maximum allowed write throughput in MiB/s\nfor this Exapool.", + "format": "int64", + "readOnly": true, + "type": "string" + }, + "lastResizeTimestamp": { + "description": "Output only. [Output Only] Timestamp of the last successful resize inRFC3339 text format.", + "readOnly": true, + "type": "string" + }, + "maxTotalProvisionedDiskCapacityGb": { + "description": "[Output Only] Maximum allowed aggregate disk size in GiB.", + "format": "int64", + "type": "string" + }, + "poolUsedCapacityBytes": { + "description": "[Output Only] Space used by data stored in disks within the storage pool\n(in bytes). This will reflect the total number of bytes written to the\ndisks in the pool, in contrast to the capacity of those disks.", + "format": "int64", + "type": "string" + }, + "poolUsedIops": { + "description": "[Output Only] Sum of all the disks' provisioned IOPS, minus some amount\nthat is allowed per disk that is not counted towards pool's IOPS\ncapacity. For more information, see\nhttps://cloud.google.com/compute/docs/disks/storage-pools.", + "format": "int64", + "type": "string" + }, + "poolUsedThroughput": { + "description": "[Output Only] Sum of all the disks' provisioned throughput in MiB/s.", + "format": "int64", + "type": "string" + }, + "poolUserWrittenBytes": { + "description": "[Output Only] Amount of data written into the pool, before it is\ncompacted.", + "format": "int64", + "type": "string" + }, + "totalProvisionedDiskCapacityGb": { + "description": "[Output Only] Sum of all the disks' provisioned capacity (in GiB) in\nthis storage pool. A disk's provisioned capacity is the same as its total\ncapacity.", + "format": "int64", + "type": "string" + }, + "totalProvisionedDiskIops": { + "description": "[Output Only] Sum of all the disks' provisioned IOPS.", + "format": "int64", + "type": "string" + }, + "totalProvisionedDiskThroughput": { + "description": "[Output Only] Sum of all the disks' provisioned throughput in MiB/s,\nminus some amount that is allowed per disk that is not counted towards\npool's throughput capacity.", + "format": "int64", "type": "string" } }, "type": "object" }, - "SslCertificateSelfManagedSslCertificate": { - "description": "Configuration and status of a self-managed SSL certificate.", - "id": "SslCertificateSelfManagedSslCertificate", + "StoragePoolType": { + "id": "StoragePoolType", "properties": { - "certificate": { - "description": "A local certificate file. The certificate must be in PEM format. The certificate chain must be no greater than 5 certs long. The chain must include at least one intermediate cert.", + "creationTimestamp": { + "description": "[Output Only] Creation timestamp inRFC3339\ntext format.", "type": "string" }, - "privateKey": { - "description": "A write-only private key in PEM format. Only insert requests will include this field.", + "deprecated": { + "$ref": "DeprecationStatus", + "description": "[Output Only] The deprecation status associated with this storage pool\ntype." + }, + "description": { + "description": "[Output Only] An optional description of this resource.", + "type": "string" + }, + "id": { + "description": "[Output Only] The unique identifier for the resource. This identifier is\ndefined by the server.", + "format": "uint64", + "type": "string" + }, + "kind": { + "default": "compute#storagePoolType", + "description": "Output only. [Output Only] Type of the resource. Alwayscompute#storagePoolType for storage pool types.", + "readOnly": true, + "type": "string" + }, + "maxPoolProvisionedCapacityGb": { + "description": "[Output Only] Maximum storage pool size in GB.", + "format": "int64", + "type": "string" + }, + "maxPoolProvisionedIops": { + "description": "[Output Only] Maximum provisioned IOPS.", + "format": "int64", + "type": "string" + }, + "maxPoolProvisionedThroughput": { + "description": "[Output Only] Maximum provisioned throughput.", + "format": "int64", + "type": "string" + }, + "minPoolProvisionedCapacityGb": { + "description": "[Output Only] Minimum storage pool size in GB.", + "format": "int64", + "type": "string" + }, + "minPoolProvisionedIops": { + "description": "[Output Only] Minimum provisioned IOPS.", + "format": "int64", + "type": "string" + }, + "minPoolProvisionedThroughput": { + "description": "[Output Only] Minimum provisioned throughput.", + "format": "int64", + "type": "string" + }, + "minSizeGb": { + "description": "[Deprecated] This field is deprecated. Use minPoolProvisionedCapacityGb\ninstead.", + "format": "int64", + "type": "string" + }, + "name": { + "description": "[Output Only] Name of the resource.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "type": "string" + }, + "selfLink": { + "description": "[Output Only] Server-defined URL for the resource.", + "type": "string" + }, + "selfLinkWithId": { + "description": "Output only. [Output Only] Server-defined URL for this resource with the resource id.", + "readOnly": true, "type": "string" - } - }, - "type": "object" - }, - "SslCertificatesScopedList": { - "id": "SslCertificatesScopedList", - "properties": { - "sslCertificates": { - "description": "List of SslCertificates contained in this scope.", + }, + "supportedDiskTypes": { + "description": "[Output Only] The list of disk types supported in this storage pool type.", "items": { - "$ref": "SslCertificate" + "type": "string" }, "type": "array" }, - "warning": { - "description": "Informational warning which replaces the list of backend services when the list is empty.", - "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", - "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", - "LARGE_DEPLOYMENT_WARNING", - "LIST_OVERHEAD_QUOTA_EXCEED", - "MISSING_TYPE_DEPENDENCY", - "NEXT_HOP_ADDRESS_NOT_ASSIGNED", - "NEXT_HOP_CANNOT_IP_FORWARD", - "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", - "NEXT_HOP_INSTANCE_NOT_FOUND", - "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", - "NEXT_HOP_NOT_RUNNING", - "NOT_CRITICAL_ERROR", - "NO_RESULTS_ON_PAGE", - "PARTIAL_SUCCESS", - "REQUIRED_TOS_AGREEMENT", - "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", - "RESOURCE_NOT_DELETED", - "SCHEMA_VALIDATION_IGNORED", - "SINGLE_INSTANCE_PROPERTY_TEMPLATE", - "UNDECLARED_PROPERTIES", - "UNREACHABLE" - ], - "enumDeprecated": [ - false, - false, - false, - false, - false, - false, - true, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false - ], - "enumDescriptions": [ - "Warning about failed cleanup of transient changes made by a failed operation.", - "A link to a deprecated resource was created.", - "When deploying and at least one of the resources has a type marked as deprecated", - "The user created a boot disk that is larger than image size.", - "When deploying and at least one of the resources has a type marked as experimental", - "Warning that is present in an external api call", - "Warning that value of a field has been overridden. Deprecated unused field.", - "The operation involved use of an injected kernel, which is deprecated.", - "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", - "When deploying a deployment with a exceedingly large number of resources", - "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", - "A resource depends on a missing type", - "The route's nextHopIp address is not assigned to an instance on the network.", - "The route's next hop instance cannot ip forward.", - "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", - "The route's nextHopInstance URL refers to an instance that does not exist.", - "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", - "The route's next hop instance does not have a status of RUNNING.", - "Error which is not critical. We decided to continue the process despite the mentioned error.", - "No results are present on a particular list page.", - "Success is reported, but some results may be missing due to errors", - "The user attempted to use a resource that requires a TOS they have not accepted.", - "Warning that a resource is in use.", - "One or more of the resources set to auto-delete could not be deleted because they were in use.", - "When a resource schema validation is ignored.", - "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", - "When undeclared properties in the schema are present", - "A given scope cannot be reached." - ], - "type": "string" - }, - "data": { - "description": "[Output Only] Metadata about this warning in key: value format. For example: \"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" + "zone": { + "description": "[Output Only] URL of the zone where the storage pool type resides.\nYou must specify this field as part of the HTTP request URL. It is\nnot settable as a field in the request body.", + "type": "string" } }, "type": "object" }, - "SslPoliciesAggregatedList": { - "id": "SslPoliciesAggregatedList", + "StoragePoolTypeAggregatedList": { + "id": "StoragePoolTypeAggregatedList", "properties": { - "etag": { - "type": "string" - }, "id": { "description": "[Output Only] Unique identifier for the resource; defined by the server.", "type": "string" }, "items": { "additionalProperties": { - "$ref": "SslPoliciesScopedList", - "description": "Name of the scope containing this set of SSL policies." + "$ref": "StoragePoolTypesScopedList", + "description": "[Output Only] Name of the scope containing this set of storage pool types." }, - "description": "A list of SslPoliciesScopedList resources.", + "description": "A list of StoragePoolTypesScopedList resources.", "type": "object" }, "kind": { - "default": "compute#sslPoliciesAggregatedList", - "description": "[Output Only] Type of resource. Always compute#sslPolicyAggregatedList for lists of SSL Policies.", + "default": "compute#storagePoolTypeAggregatedList", + "description": "Output only. [Output Only] Type of resource. Alwayscompute#storagePoolTypeAggregatedList.", + "readOnly": true, "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.", + "description": "[Output Only] This token allows you to get the next page of results for\nlist requests. If the number of results is larger thanmaxResults, use the nextPageToken as a value for\nthe query parameter pageToken in the next list request.\nSubsequent list requests will have their own nextPageToken to\ncontinue paging through the results.", "type": "string" }, "selfLink": { - "description": "[Output Only] Server-defined URL for this resource.", + "description": "Output only. [Output Only] Server-defined URL for this resource.", + "readOnly": true, "type": "string" }, - "unreachables": { - "description": "[Output Only] Unreachable resources.", - "items": { - "type": "string" - }, - "type": "array" - }, "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.", + "description": "[Output Only] A warning code, if applicable. For example, Compute\nEngine returns NO_RESULTS_ON_PAGE if there\nare no results in the response.", "enum": [ "CLEANUP_FAILED", "DEPRECATED_RESOURCE_USED", @@ -74559,6 +102513,7 @@ "NOT_CRITICAL_ERROR", "NO_RESULTS_ON_PAGE", "PARTIAL_SUCCESS", + "QUOTA_INFO_UNAVAILABLE", "REQUIRED_TOS_AGREEMENT", "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", "RESOURCE_NOT_DELETED", @@ -74595,46 +102550,48 @@ false, false, false, + false, false ], "enumDescriptions": [ - "Warning about failed cleanup of transient changes made by a failed operation.", + "Warning about failed cleanup of transient changes made by a failed\noperation.", "A link to a deprecated resource was created.", - "When deploying and at least one of the resources has a type marked as deprecated", + "When deploying and at least one of the resources has a type marked as\ndeprecated", "The user created a boot disk that is larger than image size.", - "When deploying and at least one of the resources has a type marked as experimental", + "When deploying and at least one of the resources has a type marked as\nexperimental", "Warning that is present in an external api call", - "Warning that value of a field has been overridden. Deprecated unused field.", + "Warning that value of a field has been overridden.\nDeprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", - "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is\nnot of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", - "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", + "Resource can't be retrieved due to list overhead quota exceed\nwhich captures the amount of resources filtered out by\nuser-defined list filter.", "A resource depends on a missing type", - "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's nextHopIp address is not assigned to an instance on the\nnetwork.", "The route's next hop instance cannot ip forward.", - "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not have an\nipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", - "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that is not on the\nsame network as the route.", "The route's next hop instance does not have a status of RUNNING.", - "Error which is not critical. We decided to continue the process despite the mentioned error.", + "Error which is not critical. We decided to continue the process despite\nthe mentioned error.", "No results are present on a particular list page.", "Success is reported, but some results may be missing due to errors", - "The user attempted to use a resource that requires a TOS they have not accepted.", + "Quota information is not available to client requests (e.g:\nregions.list).", + "The user attempted to use a resource that requires a TOS they have not\naccepted.", "Warning that a resource is in use.", - "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "One or more of the resources set to auto-delete could not be deleted\nbecause they were in use.", "When a resource schema validation is ignored.", - "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", + "Instance template used in instance group manager is valid as such, but\nits application does not make a lot of sense, because it allows only\nsingle instance in instance group.", "When undeclared properties in the schema are present", "A given scope cannot be reached." ], "type": "string" }, "data": { - "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", + "description": "[Output Only] Metadata about this warning in key:\nvalue format. For example:\n\n\"data\": [\n {\n \"key\": \"scope\",\n \"value\": \"zones/us-east1-d\"\n }", "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).", + "description": "[Output Only] A key that provides more detail on the warning being\nreturned. For example, for warnings where there are no results in a list\nrequest for a particular zone, this key might be scope and\nthe key value might be the zone name. Other examples might be a key\nindicating a deprecated resource and a suggested replacement, or a\nwarning about invalid network settings (for example, if an instance\nattempts to perform IP forwarding but is not enabled for IP forwarding).", "type": "string" }, "value": { @@ -74656,38 +102613,41 @@ }, "type": "object" }, - "SslPoliciesList": { - "id": "SslPoliciesList", + "StoragePoolTypeList": { + "description": "Contains a list of storage pool types.", + "id": "StoragePoolTypeList", "properties": { "id": { "description": "[Output Only] Unique identifier for the resource; defined by the server.", "type": "string" }, "items": { - "description": "A list of SslPolicy resources.", + "description": "A list of StoragePoolType resources.", "items": { - "$ref": "SslPolicy" + "$ref": "StoragePoolType" }, "type": "array" }, "kind": { - "default": "compute#sslPoliciesList", - "description": "[Output Only] Type of the resource. Always compute#sslPoliciesList for lists of sslPolicies.", + "default": "compute#storagePoolTypeList", + "description": "Output only. [Output Only] Type of resource. Alwayscompute#storagePoolTypeList for storage pool types.", + "readOnly": true, "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.", + "description": "[Output Only] This token allows you to get the next page of results for\nlist requests. If the number of results is larger thanmaxResults, use the nextPageToken as a value for\nthe query parameter pageToken in the next list request.\nSubsequent list requests will have their own nextPageToken to\ncontinue paging through the results.", "type": "string" }, "selfLink": { - "description": "[Output Only] Server-defined URL for this resource.", + "description": "Output only. [Output Only] Server-defined URL for this resource.", + "readOnly": true, "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.", + "description": "[Output Only] A warning code, if applicable. For example, Compute\nEngine returns NO_RESULTS_ON_PAGE if there\nare no results in the response.", "enum": [ "CLEANUP_FAILED", "DEPRECATED_RESOURCE_USED", @@ -74710,6 +102670,7 @@ "NOT_CRITICAL_ERROR", "NO_RESULTS_ON_PAGE", "PARTIAL_SUCCESS", + "QUOTA_INFO_UNAVAILABLE", "REQUIRED_TOS_AGREEMENT", "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", "RESOURCE_NOT_DELETED", @@ -74746,46 +102707,48 @@ false, false, false, + false, false ], "enumDescriptions": [ - "Warning about failed cleanup of transient changes made by a failed operation.", + "Warning about failed cleanup of transient changes made by a failed\noperation.", "A link to a deprecated resource was created.", - "When deploying and at least one of the resources has a type marked as deprecated", + "When deploying and at least one of the resources has a type marked as\ndeprecated", "The user created a boot disk that is larger than image size.", - "When deploying and at least one of the resources has a type marked as experimental", + "When deploying and at least one of the resources has a type marked as\nexperimental", "Warning that is present in an external api call", - "Warning that value of a field has been overridden. Deprecated unused field.", + "Warning that value of a field has been overridden.\nDeprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", - "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is\nnot of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", - "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", + "Resource can't be retrieved due to list overhead quota exceed\nwhich captures the amount of resources filtered out by\nuser-defined list filter.", "A resource depends on a missing type", - "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's nextHopIp address is not assigned to an instance on the\nnetwork.", "The route's next hop instance cannot ip forward.", - "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not have an\nipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", - "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that is not on the\nsame network as the route.", "The route's next hop instance does not have a status of RUNNING.", - "Error which is not critical. We decided to continue the process despite the mentioned error.", + "Error which is not critical. We decided to continue the process despite\nthe mentioned error.", "No results are present on a particular list page.", "Success is reported, but some results may be missing due to errors", - "The user attempted to use a resource that requires a TOS they have not accepted.", + "Quota information is not available to client requests (e.g:\nregions.list).", + "The user attempted to use a resource that requires a TOS they have not\naccepted.", "Warning that a resource is in use.", - "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "One or more of the resources set to auto-delete could not be deleted\nbecause they were in use.", "When a resource schema validation is ignored.", - "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", + "Instance template used in instance group manager is valid as such, but\nits application does not make a lot of sense, because it allows only\nsingle instance in instance group.", "When undeclared properties in the schema are present", "A given scope cannot be reached." ], "type": "string" }, "data": { - "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", + "description": "[Output Only] Metadata about this warning in key:\nvalue format. For example:\n\n\"data\": [\n {\n \"key\": \"scope\",\n \"value\": \"zones/us-east1-d\"\n }", "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).", + "description": "[Output Only] A key that provides more detail on the warning being\nreturned. For example, for warnings where there are no results in a list\nrequest for a particular zone, this key might be scope and\nthe key value might be the zone name. Other examples might be a key\nindicating a deprecated resource and a suggested replacement, or a\nwarning about invalid network settings (for example, if an instance\nattempts to perform IP forwarding but is not enabled for IP forwarding).", "type": "string" }, "value": { @@ -74807,33 +102770,21 @@ }, "type": "object" }, - "SslPoliciesListAvailableFeaturesResponse": { - "id": "SslPoliciesListAvailableFeaturesResponse", - "properties": { - "features": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "type": "object" - }, - "SslPoliciesScopedList": { - "id": "SslPoliciesScopedList", + "StoragePoolTypesScopedList": { + "id": "StoragePoolTypesScopedList", "properties": { - "sslPolicies": { - "description": "A list of SslPolicies contained in this scope.", + "storagePoolTypes": { + "description": "[Output Only] A list of storage pool types contained in this scope.", "items": { - "$ref": "SslPolicy" + "$ref": "StoragePoolType" }, "type": "array" }, "warning": { - "description": "Informational warning which replaces the list of SSL policies when the list is empty.", + "description": "[Output Only] Informational warning which replaces the list of storage pool\ntypes when the list is empty.", "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.", + "description": "[Output Only] A warning code, if applicable. For example, Compute\nEngine returns NO_RESULTS_ON_PAGE if there\nare no results in the response.", "enum": [ "CLEANUP_FAILED", "DEPRECATED_RESOURCE_USED", @@ -74856,6 +102807,7 @@ "NOT_CRITICAL_ERROR", "NO_RESULTS_ON_PAGE", "PARTIAL_SUCCESS", + "QUOTA_INFO_UNAVAILABLE", "REQUIRED_TOS_AGREEMENT", "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", "RESOURCE_NOT_DELETED", @@ -74892,561 +102844,84 @@ false, false, false, + false, false ], "enumDescriptions": [ - "Warning about failed cleanup of transient changes made by a failed operation.", + "Warning about failed cleanup of transient changes made by a failed\noperation.", "A link to a deprecated resource was created.", - "When deploying and at least one of the resources has a type marked as deprecated", + "When deploying and at least one of the resources has a type marked as\ndeprecated", "The user created a boot disk that is larger than image size.", - "When deploying and at least one of the resources has a type marked as experimental", + "When deploying and at least one of the resources has a type marked as\nexperimental", "Warning that is present in an external api call", - "Warning that value of a field has been overridden. Deprecated unused field.", + "Warning that value of a field has been overridden.\nDeprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", - "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is\nnot of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", - "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", + "Resource can't be retrieved due to list overhead quota exceed\nwhich captures the amount of resources filtered out by\nuser-defined list filter.", "A resource depends on a missing type", - "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's nextHopIp address is not assigned to an instance on the\nnetwork.", "The route's next hop instance cannot ip forward.", - "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not have an\nipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", - "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that is not on the\nsame network as the route.", "The route's next hop instance does not have a status of RUNNING.", - "Error which is not critical. We decided to continue the process despite the mentioned error.", + "Error which is not critical. We decided to continue the process despite\nthe mentioned error.", "No results are present on a particular list page.", "Success is reported, but some results may be missing due to errors", - "The user attempted to use a resource that requires a TOS they have not accepted.", + "Quota information is not available to client requests (e.g:\nregions.list).", + "The user attempted to use a resource that requires a TOS they have not\naccepted.", "Warning that a resource is in use.", - "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "One or more of the resources set to auto-delete could not be deleted\nbecause they were in use.", "When a resource schema validation is ignored.", - "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", + "Instance template used in instance group manager is valid as such, but\nits application does not make a lot of sense, because it allows only\nsingle instance in instance group.", "When undeclared properties in the schema are present", "A given scope cannot be reached." ], "type": "string" }, "data": { - "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", + "description": "[Output Only] Metadata about this warning in key:\nvalue format. For example:\n\n\"data\": [\n {\n \"key\": \"scope\",\n \"value\": \"zones/us-east1-d\"\n }", "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).", + "description": "[Output Only] A key that provides more detail on the warning being\nreturned. For example, for warnings where there are no results in a list\nrequest for a particular zone, this key might be scope and\nthe key value might be the zone name. Other examples might be a key\nindicating a deprecated resource and a suggested replacement, or a\nwarning about invalid network settings (for example, if an instance\nattempts 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" - }, - "SslPolicy": { - "description": "Represents an SSL Policy resource. Use SSL policies to control SSL features, such as versions and cipher suites, that are offered by Application Load Balancers and proxy Network Load Balancers. For more information, read SSL policies overview.", - "id": "SslPolicy", - "properties": { - "creationTimestamp": { - "description": "[Output Only] Creation timestamp in RFC3339 text format.", - "type": "string" - }, - "customFeatures": { - "description": "A list of features enabled when the selected profile is CUSTOM. The method returns the set of features that can be specified in this list. This field must be empty if the profile is not CUSTOM.", - "items": { - "type": "string" - }, - "type": "array" - }, - "description": { - "description": "An optional description of this resource. Provide this property when you create the resource.", - "type": "string" - }, - "enabledFeatures": { - "description": "[Output Only] The list of features enabled in the SSL policy.", - "items": { - "type": "string" - }, - "type": "array" - }, - "fingerprint": { - "description": "Fingerprint of this resource. A hash of the contents stored in this object. This field is used in optimistic locking. This field will be ignored when inserting a SslPolicy. An up-to-date fingerprint must be provided in order to update the SslPolicy, otherwise the request will fail with error 412 conditionNotMet. To see the latest fingerprint, make a get() request to retrieve an SslPolicy.", - "format": "byte", - "type": "string" - }, - "id": { - "description": "[Output Only] The unique identifier for the resource. This identifier is defined by the server.", - "format": "uint64", - "type": "string" - }, - "kind": { - "default": "compute#sslPolicy", - "description": "[Output only] Type of the resource. Always compute#sslPolicyfor SSL policies.", - "type": "string" - }, - "minTlsVersion": { - "description": "The minimum version of SSL protocol that can be used by the clients to establish a connection with the load balancer. This can be one of TLS_1_0, TLS_1_1, TLS_1_2.", - "enum": [ - "TLS_1_0", - "TLS_1_1", - "TLS_1_2" - ], - "enumDescriptions": [ - "TLS 1.0", - "TLS 1.1", - "TLS 1.2" - ], - "type": "string" - }, - "name": { - "description": "Name of the resource. 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" - }, - "profile": { - "description": "Profile specifies the set of SSL features that can be used by the load balancer when negotiating SSL with clients. This can be one of COMPATIBLE, MODERN, RESTRICTED, or CUSTOM. If using CUSTOM, the set of SSL features to enable must be specified in the customFeatures field.", - "enum": [ - "COMPATIBLE", - "CUSTOM", - "MODERN", - "RESTRICTED" - ], - "enumDescriptions": [ - "Compatible profile. Allows the broadset set of clients, even those which support only out-of-date SSL features to negotiate with the load balancer.", - "Custom profile. Allow only the set of allowed SSL features specified in the customFeatures field.", - "Modern profile. Supports a wide set of SSL features, allowing modern clients to negotiate SSL with the load balancer.", - "Restricted profile. Supports a reduced set of SSL features, intended to meet stricter compliance requirements." - ], - "type": "string" - }, - "region": { - "description": "[Output Only] URL of the region where the regional SSL policy resides. This field is not applicable to global SSL policies.", - "type": "string" - }, - "selfLink": { - "description": "[Output Only] Server-defined URL for the resource.", - "type": "string" - }, - "warnings": { - "description": "[Output Only] If potential misconfigurations are detected for this SSL policy, this field will be populated with warning messages.", - "items": { - "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", - "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", - "LARGE_DEPLOYMENT_WARNING", - "LIST_OVERHEAD_QUOTA_EXCEED", - "MISSING_TYPE_DEPENDENCY", - "NEXT_HOP_ADDRESS_NOT_ASSIGNED", - "NEXT_HOP_CANNOT_IP_FORWARD", - "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", - "NEXT_HOP_INSTANCE_NOT_FOUND", - "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", - "NEXT_HOP_NOT_RUNNING", - "NOT_CRITICAL_ERROR", - "NO_RESULTS_ON_PAGE", - "PARTIAL_SUCCESS", - "REQUIRED_TOS_AGREEMENT", - "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", - "RESOURCE_NOT_DELETED", - "SCHEMA_VALIDATION_IGNORED", - "SINGLE_INSTANCE_PROPERTY_TEMPLATE", - "UNDECLARED_PROPERTIES", - "UNREACHABLE" - ], - "enumDeprecated": [ - false, - false, - false, - false, - false, - false, - true, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false - ], - "enumDescriptions": [ - "Warning about failed cleanup of transient changes made by a failed operation.", - "A link to a deprecated resource was created.", - "When deploying and at least one of the resources has a type marked as deprecated", - "The user created a boot disk that is larger than image size.", - "When deploying and at least one of the resources has a type marked as experimental", - "Warning that is present in an external api call", - "Warning that value of a field has been overridden. Deprecated unused field.", - "The operation involved use of an injected kernel, which is deprecated.", - "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", - "When deploying a deployment with a exceedingly large number of resources", - "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", - "A resource depends on a missing type", - "The route's nextHopIp address is not assigned to an instance on the network.", - "The route's next hop instance cannot ip forward.", - "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", - "The route's nextHopInstance URL refers to an instance that does not exist.", - "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", - "The route's next hop instance does not have a status of RUNNING.", - "Error which is not critical. We decided to continue the process despite the mentioned error.", - "No results are present on a particular list page.", - "Success is reported, but some results may be missing due to errors", - "The user attempted to use a resource that requires a TOS they have not accepted.", - "Warning that a resource is in use.", - "One or more of the resources set to auto-delete could not be deleted because they were in use.", - "When a resource schema validation is ignored.", - "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", - "When undeclared properties in the schema are present", - "A given scope cannot be reached." - ], - "type": "string" - }, - "data": { - "description": "[Output Only] Metadata about this warning in key: value format. For example: \"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": "array" - } - }, - "type": "object" - }, - "SslPolicyReference": { - "id": "SslPolicyReference", - "properties": { - "sslPolicy": { - "description": "URL of the SSL policy resource. Set this to empty string to clear any existing SSL policy associated with the target proxy resource.", - "type": "string" - } - }, - "type": "object" - }, - "StatefulPolicy": { - "id": "StatefulPolicy", - "properties": { - "preservedState": { - "$ref": "StatefulPolicyPreservedState" - } - }, - "type": "object" - }, - "StatefulPolicyPreservedState": { - "description": "Configuration of preserved resources.", - "id": "StatefulPolicyPreservedState", - "properties": { - "disks": { - "additionalProperties": { - "$ref": "StatefulPolicyPreservedStateDiskDevice" - }, - "description": "Disks created on the instances that will be preserved on instance delete, update, etc. This map is keyed with the device names of the disks.", - "type": "object" - }, - "externalIPs": { - "additionalProperties": { - "$ref": "StatefulPolicyPreservedStateNetworkIp" - }, - "description": "External network IPs assigned to the instances that will be preserved on instance delete, update, etc. This map is keyed with the network interface name.", - "type": "object" - }, - "internalIPs": { - "additionalProperties": { - "$ref": "StatefulPolicyPreservedStateNetworkIp" - }, - "description": "Internal network IPs assigned to the instances that will be preserved on instance delete, update, etc. This map is keyed with the network interface name.", - "type": "object" - } - }, - "type": "object" - }, - "StatefulPolicyPreservedStateDiskDevice": { - "id": "StatefulPolicyPreservedStateDiskDevice", - "properties": { - "autoDelete": { - "description": "These stateful disks will never be deleted during autohealing, update or VM instance recreate operations. This flag is used to configure if the disk should be deleted after it is no longer used by the group, e.g. when the given instance or the whole group is deleted. Note: disks attached in READ_ONLY mode cannot be auto-deleted.", - "enum": [ - "NEVER", - "ON_PERMANENT_INSTANCE_DELETION" - ], - "enumDescriptions": [ - "", - "" - ], - "type": "string" - } - }, - "type": "object" - }, - "StatefulPolicyPreservedStateNetworkIp": { - "id": "StatefulPolicyPreservedStateNetworkIp", - "properties": { - "autoDelete": { - "description": "These stateful IPs will never be released during autohealing, update or VM instance recreate operations. This flag is used to configure if the IP reservation should be deleted after it is no longer used by the group, e.g. when the given instance or the whole group is deleted.", - "enum": [ - "NEVER", - "ON_PERMANENT_INSTANCE_DELETION" - ], - "enumDescriptions": [ - "", - "" - ], - "type": "string" - } - }, - "type": "object" - }, - "Status": { - "description": "The `Status` type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by [gRPC](https://github.com/grpc). Each `Status` message contains three pieces of data: error code, error message, and error details. You can find out more about this error model and how to work with it in the [API Design Guide](https://cloud.google.com/apis/design/errors).", - "id": "Status", - "properties": { - "code": { - "description": "The status code, which should be an enum value of google.rpc.Code.", - "format": "int32", - "type": "integer" - }, - "details": { - "description": "A list of messages that carry the error details. There is a common set of message types for APIs to use.", - "items": { - "additionalProperties": { - "description": "Properties of the object. Contains field @type with type URL.", - "type": "any" - }, - "type": "object" - }, - "type": "array" - }, - "message": { - "description": "A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the google.rpc.Status.details field, or localized by the client.", - "type": "string" - } - }, - "type": "object" - }, - "StoragePool": { - "description": "Represents a zonal storage pool resource.", - "id": "StoragePool", - "properties": { - "capacityProvisioningType": { - "description": "Provisioning type of the byte capacity of the pool.", - "enum": [ - "ADVANCED", - "STANDARD", - "UNSPECIFIED" - ], - "enumDescriptions": [ - "Advanced provisioning \"thinly\" allocates the related resource.", - "Standard provisioning allocates the related resource for the pool disks' exclusive use.", - "" - ], - "type": "string" - }, - "creationTimestamp": { - "description": "[Output Only] Creation timestamp in RFC3339 text format.", - "type": "string" - }, - "description": { - "description": "An optional description of this resource. Provide this property when you create the resource.", - "type": "string" - }, - "id": { - "description": "[Output Only] The unique identifier for the resource. This identifier is defined by the server.", - "format": "uint64", - "type": "string" - }, - "kind": { - "default": "compute#storagePool", - "description": "[Output Only] Type of the resource. Always compute#storagePool for storage pools.", - "type": "string" - }, - "labelFingerprint": { - "description": "A fingerprint for the labels being applied to this storage pool, which is essentially a hash of the labels set used for optimistic locking. The fingerprint is initially generated by Compute Engine and changes after every request to modify or update labels. You must always provide an up-to-date fingerprint hash in order to update or change labels, otherwise the request will fail with error 412 conditionNotMet. To see the latest fingerprint, make a get() request to retrieve a storage pool.", - "format": "byte", - "type": "string" - }, - "labels": { - "additionalProperties": { - "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "message": { + "description": "[Output Only] A human-readable description of the warning code.", + "type": "string" + } }, - "description": "Labels to apply to this storage pool. These can be later modified by the setLabels method.", "type": "object" - }, - "name": { - "annotations": { - "required": [ - "compute.storagePools.insert" - ] - }, - "description": "Name of the resource. Provided by the client when the resource is created. The name must be 1-63 characters long, and comply with RFC1035. 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" - }, - "performanceProvisioningType": { - "description": "Provisioning type of the performance-related parameters of the pool, such as throughput and IOPS.", - "enum": [ - "ADVANCED", - "STANDARD", - "UNSPECIFIED" - ], - "enumDescriptions": [ - "Advanced provisioning \"thinly\" allocates the related resource.", - "Standard provisioning allocates the related resource for the pool disks' exclusive use.", - "" - ], - "type": "string" - }, - "poolProvisionedCapacityGb": { - "description": "Size, in GiB, of the storage pool.", - "format": "int64", - "type": "string" - }, - "poolProvisionedIops": { - "description": "Provisioned IOPS of the storage pool. Only relevant if the storage pool type is hyperdisk-balanced.", - "format": "int64", - "type": "string" - }, - "poolProvisionedThroughput": { - "description": "Provisioned throughput of the storage pool. Only relevant if the storage pool type is hyperdisk-balanced or hyperdisk-throughput.", - "format": "int64", - "type": "string" - }, - "resourceStatus": { - "$ref": "StoragePoolResourceStatus", - "description": "[Output Only] Status information for the storage pool resource." - }, - "selfLink": { - "description": "[Output Only] Server-defined fully-qualified URL for this resource.", - "type": "string" - }, - "selfLinkWithId": { - "description": "[Output Only] Server-defined URL for this resource's resource id.", - "type": "string" - }, - "state": { - "description": "[Output Only] The status of storage pool creation. - CREATING: Storage pool is provisioning. storagePool. - FAILED: Storage pool creation failed. - READY: Storage pool is ready for use. - DELETING: Storage pool is deleting. ", - "enum": [ - "CREATING", - "DELETING", - "FAILED", - "READY" - ], - "enumDescriptions": [ - "StoragePool is provisioning", - "StoragePool is deleting.", - "StoragePool creation failed.", - "StoragePool is ready for use." - ], - "type": "string" - }, - "status": { - "$ref": "StoragePoolResourceStatus", - "description": "[Output Only] Status information for the storage pool resource." - }, - "storagePoolType": { - "description": "Type of the storage pool.", - "type": "string" - }, - "zone": { - "description": "[Output Only] URL of the zone where the storage pool resides. You must specify this field as part of the HTTP request URL. It is not settable as a field in the request body.", - "type": "string" } }, "type": "object" }, - "StoragePoolAggregatedList": { - "id": "StoragePoolAggregatedList", + "StoragePoolsScopedList": { + "id": "StoragePoolsScopedList", "properties": { - "etag": { - "type": "string" - }, - "id": { - "description": "[Output Only] Unique identifier for the resource; defined by the server.", - "type": "string" - }, - "items": { - "additionalProperties": { - "$ref": "StoragePoolsScopedList", - "description": "[Output Only] Name of the scope containing this set of storage pool." - }, - "description": "A list of StoragePoolsScopedList resources.", - "type": "object" - }, - "kind": { - "default": "compute#storagePoolAggregatedList", - "description": "[Output Only] Type of resource. Always compute#storagePoolAggregatedList for aggregated lists of storage pools.", - "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" - }, - "selfLink": { - "description": "[Output Only] Server-defined URL for this resource.", - "type": "string" - }, - "unreachables": { - "description": "[Output Only] Unreachable resources.", + "storagePools": { + "description": "[Output Only] A list of storage pool contained in this scope.", "items": { - "type": "string" + "$ref": "StoragePool" }, "type": "array" }, "warning": { - "description": "[Output Only] Informational warning message.", + "description": "[Output Only] Informational warning which replaces the list of storage pool\nwhen the list is empty.", "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.", + "description": "[Output Only] A warning code, if applicable. For example, Compute\nEngine returns NO_RESULTS_ON_PAGE if there\nare no results in the response.", "enum": [ "CLEANUP_FAILED", "DEPRECATED_RESOURCE_USED", @@ -75469,6 +102944,7 @@ "NOT_CRITICAL_ERROR", "NO_RESULTS_ON_PAGE", "PARTIAL_SUCCESS", + "QUOTA_INFO_UNAVAILABLE", "REQUIRED_TOS_AGREEMENT", "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", "RESOURCE_NOT_DELETED", @@ -75505,46 +102981,48 @@ false, false, false, + false, false ], "enumDescriptions": [ - "Warning about failed cleanup of transient changes made by a failed operation.", + "Warning about failed cleanup of transient changes made by a failed\noperation.", "A link to a deprecated resource was created.", - "When deploying and at least one of the resources has a type marked as deprecated", + "When deploying and at least one of the resources has a type marked as\ndeprecated", "The user created a boot disk that is larger than image size.", - "When deploying and at least one of the resources has a type marked as experimental", + "When deploying and at least one of the resources has a type marked as\nexperimental", "Warning that is present in an external api call", - "Warning that value of a field has been overridden. Deprecated unused field.", + "Warning that value of a field has been overridden.\nDeprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", - "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is\nnot of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", - "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", + "Resource can't be retrieved due to list overhead quota exceed\nwhich captures the amount of resources filtered out by\nuser-defined list filter.", "A resource depends on a missing type", - "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's nextHopIp address is not assigned to an instance on the\nnetwork.", "The route's next hop instance cannot ip forward.", - "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not have an\nipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", - "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that is not on the\nsame network as the route.", "The route's next hop instance does not have a status of RUNNING.", - "Error which is not critical. We decided to continue the process despite the mentioned error.", + "Error which is not critical. We decided to continue the process despite\nthe mentioned error.", "No results are present on a particular list page.", "Success is reported, but some results may be missing due to errors", - "The user attempted to use a resource that requires a TOS they have not accepted.", + "Quota information is not available to client requests (e.g:\nregions.list).", + "The user attempted to use a resource that requires a TOS they have not\naccepted.", "Warning that a resource is in use.", - "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "One or more of the resources set to auto-delete could not be deleted\nbecause they were in use.", "When a resource schema validation is ignored.", - "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", + "Instance template used in instance group manager is valid as such, but\nits application does not make a lot of sense, because it allows only\nsingle instance in instance group.", "When undeclared properties in the schema are present", "A given scope cannot be reached." ], "type": "string" }, "data": { - "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", + "description": "[Output Only] Metadata about this warning in key:\nvalue format. For example:\n\n\"data\": [\n {\n \"key\": \"scope\",\n \"value\": \"zones/us-east1-d\"\n }", "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).", + "description": "[Output Only] A key that provides more detail on the warning being\nreturned. For example, for warnings where there are no results in a list\nrequest for a particular zone, this key might be scope and\nthe key value might be the zone name. Other examples might be a key\nindicating a deprecated resource and a suggested replacement, or a\nwarning about invalid network settings (for example, if an instance\nattempts to perform IP forwarding but is not enabled for IP forwarding).", "type": "string" }, "value": { @@ -75566,125 +103044,290 @@ }, "type": "object" }, - "StoragePoolDisk": { - "id": "StoragePoolDisk", + "Subnetwork": { + "description": "Represents a Subnetwork resource.\n\nA subnetwork (also known as a subnet) is a logical partition of a Virtual\nPrivate Cloud network with one primary IP range and zero or more secondary\nIP ranges. For more information, read\nVirtual Private Cloud (VPC) Network.", + "id": "Subnetwork", "properties": { - "attachedInstances": { - "description": "[Output Only] Instances this disk is attached to.", - "items": { - "type": "string" - }, - "type": "array" + "allowSubnetCidrRoutesOverlap": { + "description": "Whether this subnetwork's ranges can conflict with existing custom routes.\nSetting this to true allows this subnetwork's primary and secondary ranges\nto overlap with (and contain) custom routes that have already been\nconfigured on the corresponding network.\n\nFor example if a static route has range 10.1.0.0/16, a subnet\nrange 10.0.0.0/8 could only be created if allow_conflicting_routes=true.\n\nOverlapping is only allowed on subnetwork operations; routes\nwhose ranges conflict with this subnetwork's ranges won't be allowed unless\nroute.allow_conflicting_subnetworks is set to true.\n\nTypically packets destined to IPs within the subnetwork (which may contain\nprivate/sensitive data) are prevented from leaving the virtual network.\nSetting this field to true will disable this feature.\n\nThe default value is false and applies to all existing subnetworks and\nautomatically created subnetworks.", + "type": "boolean" }, "creationTimestamp": { - "description": "[Output Only] Creation timestamp in RFC3339 text format.", + "description": "Output only. [Output Only] Creation timestamp inRFC3339\ntext format.", + "readOnly": true, "type": "string" }, - "disk": { - "description": "[Output Only] The URL of the disk.", + "description": { + "description": "An optional description of this resource. Provide this property when you\ncreate the resource. This field can be set only at resource creation time.", "type": "string" }, + "enableFlowLogs": { + "description": "Whether to enable flow logging for this subnetwork. If this field is not\nexplicitly set, it will not appear in get listings. If not set\nthe default behavior is determined by the org policy, if there is no org\npolicy specified, then it will default to disabled. This field isn't\nsupported if the subnet purpose field is set toREGIONAL_MANAGED_PROXY. It is recommended to uselogConfig.enable field instead.", + "type": "boolean" + }, + "externalIpv6Prefix": { + "description": "The external IPv6 address range that is owned by this\nsubnetwork.", + "type": "string" + }, + "fingerprint": { + "description": "Fingerprint of this resource. A hash of the contents stored in this object.\nThis field is used in optimistic locking. This field will be ignored when\ninserting a Subnetwork. An up-to-date fingerprint must be\nprovided in order to update the Subnetwork, otherwise the\nrequest will fail with error 412 conditionNotMet.\n\nTo see the latest fingerprint, make a get() request to\nretrieve a Subnetwork.", + "format": "byte", + "type": "string" + }, + "gatewayAddress": { + "description": "Output only. [Output Only] The gateway address for default routes to reach destination\naddresses outside this subnetwork.", + "readOnly": true, + "type": "string" + }, + "id": { + "description": "Output only. [Output Only] The unique identifier for the resource. This identifier is\ndefined by the server.", + "format": "uint64", + "readOnly": true, + "type": "string" + }, + "internalIpv6Prefix": { + "description": "The internal IPv6 address range that is owned by this\nsubnetwork.", + "type": "string" + }, + "ipCidrRange": { + "description": "The range of internal addresses that are owned by this subnetwork.\nProvide this property when you create the subnetwork. For example,10.0.0.0/8 or 100.64.0.0/10. Ranges must\nbe unique and non-overlapping within a network. Only IPv4 is supported.\nThis field is set at resource creation time. The range can be any range\nlisted in theValid\nranges list. The range can be expanded after creation usingexpandIpCidrRange.", + "type": "string" + }, + "ipCollection": { + "description": "Reference to the source of IP, like a PublicDelegatedPrefix\n(PDP) for BYOIP. The PDP must be a sub-PDP in\nEXTERNAL_IPV6_SUBNETWORK_CREATION or INTERNAL_IPV6_SUBNETWORK_CREATION\nmode.\n\nUse one of the following formats to specify a sub-PDP when creating a dual\nstack or IPv6-only subnetwork with external access using BYOIP:\n \n - \n Full resource URL, as inhttps://www.googleapis.com/compute/v1/projects/projectId/regions/region/publicDelegatedPrefixes/sub-pdp-name\n - \n Partial URL, as in\n \n \n - projects/projectId/regions/region/publicDelegatedPrefixes/sub-pdp-name\n - regions/region/publicDelegatedPrefixes/sub-pdp-name", + "type": "string" + }, + "ipv6AccessType": { + "description": "The access type of IPv6 address this subnet holds. It's immutable and can\nonly be specified during creation or the first time the subnet is updated\ninto IPV4_IPV6 dual stack.", + "enum": [ + "EXTERNAL", + "INTERNAL" + ], + "enumDescriptions": [ + "VMs on this subnet will be assigned IPv6 addresses that are accessible\nvia the Internet, as well as the VPC network.", + "VMs on this subnet will be assigned IPv6 addresses that are only\naccessible over the VPC network." + ], + "type": "string" + }, + "ipv6CidrRange": { + "description": "Output only. [Output Only] This field is for internal use.", + "readOnly": true, + "type": "string" + }, + "ipv6GceEndpoint": { + "description": "Output only. [Output Only] Possible endpoints of this subnetwork. It can be one of the\nfollowing:\n \n - VM_ONLY: The subnetwork can be used for creating instances and\n IPv6 addresses with VM endpoint type. Such a subnetwork gets external IPv6\n ranges from a public delegated prefix and cannot be used to create NetLb.\n - VM_AND_FR: The subnetwork can be used for creating both VM\n instances and Forwarding Rules. It can also be used to reserve IPv6\n addresses with both VM and FR endpoint types. Such a subnetwork gets its\n IPv6 range from Google IP Pool directly.", + "enum": [ + "VM_AND_FR", + "VM_ONLY" + ], + "enumDescriptions": [ + "", + "" + ], + "readOnly": true, + "type": "string" + }, + "kind": { + "default": "compute#subnetwork", + "description": "Output only. [Output Only] Type of the resource. Always compute#subnetwork\nfor Subnetwork resources.", + "readOnly": true, + "type": "string" + }, + "logConfig": { + "$ref": "SubnetworkLogConfig", + "description": "This field denotes the VPC flow logging options for this subnetwork.\nIf logging is enabled, logs are exported to Cloud Logging." + }, "name": { - "description": "[Output Only] The name of the disk.", + "description": "The name of the resource, provided by the client when initially creating\nthe resource. The name must be 1-63 characters long, and comply withRFC1035.\nSpecifically, the name must be 1-63 characters long and match the regular\nexpression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first\ncharacter must be a lowercase letter, and all following characters must\nbe a dash, lowercase letter, or digit, except the last character, which\ncannot be a dash.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", "type": "string" }, - "provisionedIops": { - "description": "[Output Only] The number of IOPS provisioned for the disk.", - "format": "int64", + "network": { + "description": "The URL of the network to which this subnetwork belongs, provided by the\nclient when initially creating the subnetwork. This field can be set only\nat resource creation time.", "type": "string" }, - "provisionedThroughput": { - "description": "[Output Only] The throughput provisioned for the disk.", - "format": "int64", + "params": { + "$ref": "SubnetworkParams", + "description": "Input only. [Input Only] Additional params passed with the request, but not persisted\nas part of resource payload." + }, + "privateIpGoogleAccess": { + "description": "Whether the VMs in this subnet can access Google services without assigned\nexternal IP addresses. This field can be both set at resource creation\ntime and updated using setPrivateIpGoogleAccess.", + "type": "boolean" + }, + "privateIpv6GoogleAccess": { + "description": "This field is for internal use.\n\nThis field can be both set at resource creation time and updated usingpatch.", + "enum": [ + "DISABLE_GOOGLE_ACCESS", + "ENABLE_BIDIRECTIONAL_ACCESS_TO_GOOGLE", + "ENABLE_OUTBOUND_VM_ACCESS_TO_GOOGLE" + ], + "enumDescriptions": [ + "Disable private IPv6 access to/from Google services.", + "Bidirectional private IPv6 access to/from Google services.", + "Outbound private IPv6 access from VMs in this subnet to Google services." + ], "type": "string" }, - "resourcePolicies": { - "description": "[Output Only] Resource policies applied to disk for automatic snapshot creations.", + "purpose": { + "enum": [ + "GLOBAL_MANAGED_PROXY", + "INTERNAL_HTTPS_LOAD_BALANCER", + "PEER_MIGRATION", + "PRIVATE", + "PRIVATE_NAT", + "PRIVATE_RFC_1918", + "PRIVATE_SERVICE_CONNECT", + "REGIONAL_MANAGED_PROXY" + ], + "enumDescriptions": [ + "Subnet reserved for Global Envoy-based Load Balancing.", + "Subnet reserved for Internal HTTP(S) Load Balancing. This is a legacy\npurpose, please use REGIONAL_MANAGED_PROXY instead.", + "Subnetwork will be used for Migration from one peered VPC to another.\n(a transient state of subnetwork\nwhile migrating resources from one project to another).", + "Regular user created or automatically created subnet.", + "Subnetwork used as source range for Private NAT Gateways.", + "Regular user created or automatically created subnet.", + "Subnetworks created for Private Service Connect in the producer network.", + "Subnetwork used for Regional Envoy-based Load Balancing." + ], + "type": "string" + }, + "region": { + "description": "URL of the region where the Subnetwork resides. This\nfield can be set only at resource creation time.", + "type": "string" + }, + "reservedInternalRange": { + "description": "The URL of the reserved internal range.", + "type": "string" + }, + "resolveSubnetMask": { + "description": "Configures subnet mask resolution for this subnetwork.", + "enum": [ + "ARP_ALL_RANGES", + "ARP_PRIMARY_RANGE" + ], + "enumDescriptions": [ + "All ranges assigned to the VM NIC will respond to ARP.", + "Only the primary range of the VM NIC will respond to ARP." + ], + "type": "string" + }, + "role": { + "description": "The role of subnetwork. Currently, this field is only used when\npurpose is set to GLOBAL_MANAGED_PROXY orREGIONAL_MANAGED_PROXY. The value can be set toACTIVE or BACKUP. An ACTIVE\nsubnetwork is one that is currently being used for Envoy-based load\nbalancers in a region. A BACKUP subnetwork is one that is\nready to be promoted to ACTIVE or is currently draining.\nThis field can be updated with a patch request.", + "enum": [ + "ACTIVE", + "BACKUP" + ], + "enumDescriptions": [ + "The ACTIVE subnet that is currently used.", + "The BACKUP subnet that could be promoted to ACTIVE." + ], + "type": "string" + }, + "secondaryIpRanges": { + "description": "An array of configurations for secondary IP ranges for VM instances\ncontained in this subnetwork. The primary IP of such VM must belong to the\nprimary ipCidrRange of the subnetwork. The alias IPs may belong to either\nprimary or secondary ranges. This field can be updated with apatch request. Supports both IPv4 and IPv6 ranges.", "items": { - "type": "string" + "$ref": "SubnetworkSecondaryRange" }, "type": "array" }, - "sizeGb": { - "description": "[Output Only] The disk size, in GB.", - "format": "int64", + "selfLink": { + "description": "[Output Only] Server-defined URL for the resource.", "type": "string" }, - "status": { - "description": "[Output Only] The disk status.", + "stackType": { + "description": "The stack type for the subnet. If set to IPV4_ONLY, new VMs\nin the subnet are assigned IPv4 addresses only. If set toIPV4_IPV6, new VMs in the subnet can be assigned both IPv4 and\nIPv6 addresses. If not specified, IPV4_ONLY is used.\n\nThis field can be both set at resource creation time and updated usingpatch.", "enum": [ - "CREATING", - "DELETING", - "FAILED", - "READY", - "RESTORING", - "UNAVAILABLE" + "IPV4_IPV6", + "IPV4_ONLY", + "IPV6_ONLY" ], "enumDescriptions": [ - "Disk is provisioning", - "Disk is deleting.", - "Disk creation failed.", - "Disk is ready for use.", - "Source data is being copied into the disk.", - "Disk is currently unavailable and cannot be accessed, attached or detached." + "New VMs in this subnet can have both IPv4 and IPv6 addresses.", + "New VMs in this subnet will only be assigned IPv4 addresses.", + "New VMs in this subnet will only be assigned IPv6 addresses." ], "type": "string" }, - "type": { - "description": "[Output Only] The disk type.", + "state": { + "description": "Output only. [Output Only] The state of the subnetwork, which can be one of the\nfollowing values:READY: Subnetwork is created and ready to useDRAINING: only applicable to subnetworks that have the\npurpose set to INTERNAL_HTTPS_LOAD_BALANCER and indicates that\nconnections to the load balancer are being drained. A subnetwork that is\ndraining cannot be used or modified until it reaches a status ofREADY", + "enum": [ + "DRAINING", + "READY" + ], + "enumDescriptions": [ + "Subnetwork is being drained.", + "Subnetwork is ready for use." + ], + "readOnly": true, "type": "string" }, - "usedBytes": { - "description": "[Output Only] Amount of disk space used.", - "format": "int64", - "type": "string" + "systemReservedExternalIpv6Ranges": { + "description": "Output only. [Output Only] The array of external IPv6 network ranges reserved from\nthe subnetwork's external IPv6 range for system use.", + "items": { + "type": "string" + }, + "readOnly": true, + "type": "array" + }, + "systemReservedInternalIpv6Ranges": { + "description": "Output only. [Output Only] The array of internal IPv6 network ranges reserved from\nthe subnetwork's internal IPv6 range for system use.", + "items": { + "type": "string" + }, + "readOnly": true, + "type": "array" + }, + "utilizationDetails": { + "$ref": "SubnetworkUtilizationDetails", + "description": "Output only. [Output Only] The current IP utilization of all subnetwork ranges. Contains\nthe total number of allocated and free IPs in each range.", + "readOnly": true } }, "type": "object" }, - "StoragePoolList": { - "description": "A list of StoragePool resources.", - "id": "StoragePoolList", + "SubnetworkAggregatedList": { + "id": "SubnetworkAggregatedList", "properties": { - "etag": { - "type": "string" - }, "id": { "description": "[Output Only] Unique identifier for the resource; defined by the server.", "type": "string" }, "items": { - "description": "A list of StoragePool resources.", - "items": { - "$ref": "StoragePool" + "additionalProperties": { + "$ref": "SubnetworksScopedList", + "description": "Name of the scope containing this set of Subnetworks." }, - "type": "array" + "description": "A list of SubnetworksScopedList resources.", + "type": "object" }, "kind": { - "default": "compute#storagePoolList", - "description": "[Output Only] Type of resource. Always compute#storagePoolList for lists of storagePools.", + "default": "compute#subnetworkAggregatedList", + "description": "Output only. [Output Only] Type of resource. Alwayscompute#subnetworkAggregatedList for aggregated lists of\nsubnetworks.", + "readOnly": true, "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.", + "description": "[Output Only] This token allows you to get the next page of results for\nlist requests. If the number of results is larger thanmaxResults, use the nextPageToken as a value for\nthe query parameter pageToken in the next list request.\nSubsequent list requests will have their own nextPageToken to\ncontinue paging through the results.", "type": "string" }, "selfLink": { - "description": "[Output Only] Server-defined URL for this resource.", + "description": "Output only. [Output Only] Server-defined URL for this resource.", + "readOnly": true, "type": "string" }, "unreachables": { - "description": "[Output Only] Unreachable resources. end_interface: MixerListResponseWithEtagBuilder", + "description": "Output only. [Output Only] Unreachable resources.", "items": { "type": "string" }, + "readOnly": true, "type": "array" }, "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.", + "description": "[Output Only] A warning code, if applicable. For example, Compute\nEngine returns NO_RESULTS_ON_PAGE if there\nare no results in the response.", "enum": [ "CLEANUP_FAILED", "DEPRECATED_RESOURCE_USED", @@ -75707,6 +103350,7 @@ "NOT_CRITICAL_ERROR", "NO_RESULTS_ON_PAGE", "PARTIAL_SUCCESS", + "QUOTA_INFO_UNAVAILABLE", "REQUIRED_TOS_AGREEMENT", "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", "RESOURCE_NOT_DELETED", @@ -75743,46 +103387,48 @@ false, false, false, + false, false ], "enumDescriptions": [ - "Warning about failed cleanup of transient changes made by a failed operation.", + "Warning about failed cleanup of transient changes made by a failed\noperation.", "A link to a deprecated resource was created.", - "When deploying and at least one of the resources has a type marked as deprecated", + "When deploying and at least one of the resources has a type marked as\ndeprecated", "The user created a boot disk that is larger than image size.", - "When deploying and at least one of the resources has a type marked as experimental", + "When deploying and at least one of the resources has a type marked as\nexperimental", "Warning that is present in an external api call", - "Warning that value of a field has been overridden. Deprecated unused field.", + "Warning that value of a field has been overridden.\nDeprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", - "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is\nnot of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", - "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", + "Resource can't be retrieved due to list overhead quota exceed\nwhich captures the amount of resources filtered out by\nuser-defined list filter.", "A resource depends on a missing type", - "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's nextHopIp address is not assigned to an instance on the\nnetwork.", "The route's next hop instance cannot ip forward.", - "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not have an\nipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", - "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that is not on the\nsame network as the route.", "The route's next hop instance does not have a status of RUNNING.", - "Error which is not critical. We decided to continue the process despite the mentioned error.", + "Error which is not critical. We decided to continue the process despite\nthe mentioned error.", "No results are present on a particular list page.", "Success is reported, but some results may be missing due to errors", - "The user attempted to use a resource that requires a TOS they have not accepted.", + "Quota information is not available to client requests (e.g:\nregions.list).", + "The user attempted to use a resource that requires a TOS they have not\naccepted.", "Warning that a resource is in use.", - "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "One or more of the resources set to auto-delete could not be deleted\nbecause they were in use.", "When a resource schema validation is ignored.", - "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", + "Instance template used in instance group manager is valid as such, but\nits application does not make a lot of sense, because it allows only\nsingle instance in instance group.", "When undeclared properties in the schema are present", "A given scope cannot be reached." ], "type": "string" }, "data": { - "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", + "description": "[Output Only] Metadata about this warning in key:\nvalue format. For example:\n\n\"data\": [\n {\n \"key\": \"scope\",\n \"value\": \"zones/us-east1-d\"\n }", "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).", + "description": "[Output Only] A key that provides more detail on the warning being\nreturned. For example, for warnings where there are no results in a list\nrequest for a particular zone, this key might be scope and\nthe key value might be the zone name. Other examples might be a key\nindicating a deprecated resource and a suggested replacement, or a\nwarning about invalid network settings (for example, if an instance\nattempts to perform IP forwarding but is not enabled for IP forwarding).", "type": "string" }, "value": { @@ -75804,48 +103450,41 @@ }, "type": "object" }, - "StoragePoolListDisks": { - "id": "StoragePoolListDisks", + "SubnetworkList": { + "description": "Contains a list of Subnetwork resources.", + "id": "SubnetworkList", "properties": { - "etag": { - "type": "string" - }, "id": { "description": "[Output Only] Unique identifier for the resource; defined by the server.", "type": "string" }, "items": { - "description": "A list of StoragePoolDisk resources.", + "description": "A list of Subnetwork resources.", "items": { - "$ref": "StoragePoolDisk" + "$ref": "Subnetwork" }, "type": "array" }, "kind": { - "default": "compute#storagePoolListDisks", - "description": "[Output Only] Type of resource. Always compute#storagePoolListDisks for lists of disks in a storagePool.", + "default": "compute#subnetworkList", + "description": "Output only. [Output Only] Type of resource. Always compute#subnetworkList\nfor lists of subnetworks.", + "readOnly": true, "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.", + "description": "[Output Only] This token allows you to get the next page of results for\nlist requests. If the number of results is larger thanmaxResults, use the nextPageToken as a value for\nthe query parameter pageToken in the next list request.\nSubsequent list requests will have their own nextPageToken to\ncontinue paging through the results.", "type": "string" }, "selfLink": { - "description": "[Output Only] Server-defined URL for this resource.", + "description": "Output only. [Output Only] Server-defined URL for this resource.", + "readOnly": true, "type": "string" }, - "unreachables": { - "description": "[Output Only] Unreachable resources. end_interface: MixerListResponseWithEtagBuilder", - "items": { - "type": "string" - }, - "type": "array" - }, "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.", + "description": "[Output Only] A warning code, if applicable. For example, Compute\nEngine returns NO_RESULTS_ON_PAGE if there\nare no results in the response.", "enum": [ "CLEANUP_FAILED", "DEPRECATED_RESOURCE_USED", @@ -75868,6 +103507,7 @@ "NOT_CRITICAL_ERROR", "NO_RESULTS_ON_PAGE", "PARTIAL_SUCCESS", + "QUOTA_INFO_UNAVAILABLE", "REQUIRED_TOS_AGREEMENT", "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", "RESOURCE_NOT_DELETED", @@ -75904,46 +103544,48 @@ false, false, false, + false, false ], "enumDescriptions": [ - "Warning about failed cleanup of transient changes made by a failed operation.", + "Warning about failed cleanup of transient changes made by a failed\noperation.", "A link to a deprecated resource was created.", - "When deploying and at least one of the resources has a type marked as deprecated", + "When deploying and at least one of the resources has a type marked as\ndeprecated", "The user created a boot disk that is larger than image size.", - "When deploying and at least one of the resources has a type marked as experimental", + "When deploying and at least one of the resources has a type marked as\nexperimental", "Warning that is present in an external api call", - "Warning that value of a field has been overridden. Deprecated unused field.", + "Warning that value of a field has been overridden.\nDeprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", - "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is\nnot of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", - "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", + "Resource can't be retrieved due to list overhead quota exceed\nwhich captures the amount of resources filtered out by\nuser-defined list filter.", "A resource depends on a missing type", - "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's nextHopIp address is not assigned to an instance on the\nnetwork.", "The route's next hop instance cannot ip forward.", - "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not have an\nipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", - "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that is not on the\nsame network as the route.", "The route's next hop instance does not have a status of RUNNING.", - "Error which is not critical. We decided to continue the process despite the mentioned error.", + "Error which is not critical. We decided to continue the process despite\nthe mentioned error.", "No results are present on a particular list page.", "Success is reported, but some results may be missing due to errors", - "The user attempted to use a resource that requires a TOS they have not accepted.", + "Quota information is not available to client requests (e.g:\nregions.list).", + "The user attempted to use a resource that requires a TOS they have not\naccepted.", "Warning that a resource is in use.", - "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "One or more of the resources set to auto-delete could not be deleted\nbecause they were in use.", "When a resource schema validation is ignored.", - "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", + "Instance template used in instance group manager is valid as such, but\nits application does not make a lot of sense, because it allows only\nsingle instance in instance group.", "When undeclared properties in the schema are present", "A given scope cannot be reached." ], "type": "string" }, "data": { - "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", + "description": "[Output Only] Metadata about this warning in key:\nvalue format. For example:\n\n\"data\": [\n {\n \"key\": \"scope\",\n \"value\": \"zones/us-east1-d\"\n }", "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).", + "description": "[Output Only] A key that provides more detail on the warning being\nreturned. For example, for warnings where there are no results in a list\nrequest for a particular zone, this key might be scope and\nthe key value might be the zone name. Other examples might be a key\nindicating a deprecated resource and a suggested replacement, or a\nwarning about invalid network settings (for example, if an instance\nattempts to perform IP forwarding but is not enabled for IP forwarding).", "type": "string" }, "value": { @@ -75965,182 +103607,200 @@ }, "type": "object" }, - "StoragePoolResourceStatus": { - "description": "[Output Only] Contains output only fields.", - "id": "StoragePoolResourceStatus", + "SubnetworkLogConfig": { + "description": "The available logging options for this subnetwork.", + "id": "SubnetworkLogConfig", "properties": { - "diskCount": { - "description": "[Output Only] Number of disks used.", - "format": "int64", - "type": "string" - }, - "lastResizeTimestamp": { - "description": "[Output Only] Timestamp of the last successful resize in RFC3339 text format.", - "type": "string" - }, - "maxTotalProvisionedDiskCapacityGb": { - "description": "[Output Only] Maximum allowed aggregate disk size in gigabytes.", - "format": "int64", - "type": "string" - }, - "poolUsedCapacityBytes": { - "description": "[Output Only] Space used by data stored in disks within the storage pool (in bytes). This will reflect the total number of bytes written to the disks in the pool, in contrast to the capacity of those disks.", - "format": "int64", - "type": "string" - }, - "poolUsedIops": { - "description": "Sum of all the disks' provisioned IOPS, minus some amount that is allowed per disk that is not counted towards pool's IOPS capacity.", - "format": "int64", + "aggregationInterval": { + "description": "Can only be specified if VPC flow logging for this subnetwork is enabled.\nToggles the aggregation interval for collecting flow logs. Increasing the\ninterval time will reduce the amount of generated flow logs for long\nlasting connections. Default is an interval of 5 seconds per connection.", + "enum": [ + "INTERVAL_10_MIN", + "INTERVAL_15_MIN", + "INTERVAL_1_MIN", + "INTERVAL_30_SEC", + "INTERVAL_5_MIN", + "INTERVAL_5_SEC" + ], + "enumDescriptions": [ + "", + "", + "", + "", + "", + "" + ], "type": "string" }, - "poolUsedThroughput": { - "description": "[Output Only] Sum of all the disks' provisioned throughput in MB/s.", - "format": "int64", - "type": "string" + "enable": { + "description": "Whether to enable flow logging for this subnetwork. If this field is not\nexplicitly set, it will not appear in get listings. If not\nset the default behavior is determined by the org policy, if there is no\norg policy specified, then it will default to disabled.\nFlow logging isn't supported if the subnet purpose field is\nset to REGIONAL_MANAGED_PROXY.", + "type": "boolean" }, - "poolUserWrittenBytes": { - "description": "[Output Only] Amount of data written into the pool, before it is compacted.", - "format": "int64", + "filterExpr": { + "description": "Can only be specified if VPC flow logs for this subnetwork is enabled.\nThe filter expression is used to define which VPC flow logs should be\nexported to Cloud Logging.", "type": "string" }, - "totalProvisionedDiskCapacityGb": { - "description": "[Output Only] Sum of all the capacity provisioned in disks in this storage pool. A disk's provisioned capacity is the same as its total capacity.", - "format": "int64", - "type": "string" + "flowSampling": { + "description": "Can only be specified if VPC flow logging for this subnetwork is enabled.\nThe value of the field must be in [0, 1]. Set the sampling rate of VPC\nflow logs within the subnetwork where 1.0 means all collected logs are\nreported and 0.0 means no logs are reported. Default is 0.5 unless\notherwise specified by the org policy, which means half of all collected\nlogs are reported.", + "format": "float", + "type": "number" }, - "totalProvisionedDiskIops": { - "description": "[Output Only] Sum of all the disks' provisioned IOPS.", - "format": "int64", + "metadata": { + "description": "Can only be specified if VPC flow logs for this subnetwork is enabled.\nConfigures whether all, none or a subset of metadata fields should be\nadded to the reported VPC flow logs. Default isEXCLUDE_ALL_METADATA.", + "enum": [ + "CUSTOM_METADATA", + "EXCLUDE_ALL_METADATA", + "INCLUDE_ALL_METADATA" + ], + "enumDescriptions": [ + "", + "", + "" + ], "type": "string" }, - "totalProvisionedDiskThroughput": { - "description": "[Output Only] Sum of all the disks' provisioned throughput in MB/s, minus some amount that is allowed per disk that is not counted towards pool's throughput capacity.", - "format": "int64", - "type": "string" + "metadataFields": { + "description": "Can only be specified if VPC flow logs for this subnetwork is enabled and\n\"metadata\" was set to CUSTOM_METADATA.", + "items": { + "type": "string" + }, + "type": "array" } }, "type": "object" }, - "StoragePoolType": { - "id": "StoragePoolType", + "SubnetworkParams": { + "description": "Additional subnetwork parameters.", + "id": "SubnetworkParams", "properties": { - "creationTimestamp": { - "description": "[Output Only] Creation timestamp in RFC3339 text format.", - "type": "string" - }, - "deprecated": { - "$ref": "DeprecationStatus", - "description": "[Output Only] The deprecation status associated with this storage pool type." - }, - "description": { - "description": "[Output Only] An optional description of this resource.", - "type": "string" - }, - "id": { - "description": "[Output Only] The unique identifier for the resource. This identifier is defined by the server.", - "format": "uint64", - "type": "string" - }, - "kind": { - "default": "compute#storagePoolType", - "description": "[Output Only] Type of the resource. Always compute#storagePoolType for storage pool types.", - "type": "string" - }, - "maxPoolProvisionedCapacityGb": { - "description": "[Output Only] Maximum storage pool size in GB.", - "format": "int64", - "type": "string" - }, - "maxPoolProvisionedIops": { - "description": "[Output Only] Maximum provisioned IOPS.", - "format": "int64", - "type": "string" - }, - "maxPoolProvisionedThroughput": { - "description": "[Output Only] Maximum provisioned throughput.", - "format": "int64", - "type": "string" - }, - "minPoolProvisionedCapacityGb": { - "description": "[Output Only] Minimum storage pool size in GB.", - "format": "int64", - "type": "string" - }, - "minPoolProvisionedIops": { - "description": "[Output Only] Minimum provisioned IOPS.", - "format": "int64", + "resourceManagerTags": { + "additionalProperties": { + "type": "string" + }, + "description": "Tag keys/values directly bound to this resource.\nTag keys and values have the same definition as resource\nmanager tags. The field is allowed for INSERT\nonly. The keys/values to set on the resource should be specified in\neither ID { : } or Namespaced format\n{ : }.\nFor example the following are valid inputs:\n* {\"tagKeys/333\" : \"tagValues/444\", \"tagKeys/123\" : \"tagValues/456\"}\n* {\"123/environment\" : \"production\", \"345/abc\" : \"xyz\"}\nNote:\n* Invalid combinations of ID \u0026 namespaced format is not supported. For\n instance: {\"123/environment\" : \"tagValues/444\"} is invalid.", + "type": "object" + } + }, + "type": "object" + }, + "SubnetworkSecondaryRange": { + "description": "Represents a secondary IP range of a subnetwork.", + "id": "SubnetworkSecondaryRange", + "properties": { + "ipCidrRange": { + "description": "The range of IP addresses belonging to this subnetwork secondary range.\nProvide this property when you create the subnetwork. Ranges must be\nunique and non-overlapping with all primary and secondary IP ranges\nwithin a network. Both IPv4 and IPv6 ranges are supported. For IPv4,\nthe range can be any range listed in theValid\nranges list.\n\nFor IPv6:\nThe range must have a /64 prefix length.\nThe range must be omitted, for auto-allocation from Google-defined ULA\nIPv6 range.\nFor BYOGUA internal IPv6 secondary range, the range may be specified\nalong with the `ipCollection` field.\nIf an `ipCollection` is specified, the requested ip_cidr_range must lie\nwithin the range of the PDP referenced by the `ipCollection` field for\nallocation.\nIf `ipCollection` field is specified, but ip_cidr_range is not,\nthe range is auto-allocated from the PDP referenced by the `ipCollection`\nfield.", "type": "string" }, - "minPoolProvisionedThroughput": { - "description": "[Output Only] Minimum provisioned throughput.", - "format": "int64", + "ipCollection": { + "description": "Reference to a Public Delegated Prefix (PDP) for BYOIP.\nThis field should be specified for configuring BYOGUA internal IPv6\nsecondary range.\nWhen specified along with the ip_cidr_range, the ip_cidr_range must lie\nwithin the PDP referenced by the `ipCollection` field.\nWhen specified without the ip_cidr_range, the range is auto-allocated\nfrom the PDP referenced by the `ipCollection` field.", "type": "string" }, - "minSizeGb": { - "description": "[Deprecated] This field is deprecated. Use minPoolProvisionedCapacityGb instead.", - "format": "int64", + "ipVersion": { + "enum": [ + "IPV4", + "IPV6", + "IP_VERSION_UNSPECIFIED" + ], + "enumDescriptions": [ + "", + "", + "Treated as IPV4 for backward-compatibility." + ], "type": "string" }, - "name": { - "description": "[Output Only] Name of the resource.", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "rangeName": { + "description": "The name associated with this subnetwork secondary range, used when adding\nan alias IP/IPv6 range to a VM instance.\nThe name must be 1-63 characters long, and comply withRFC1035.\nThe name must be unique within the subnetwork.", "type": "string" }, - "selfLink": { - "description": "[Output Only] Server-defined URL for the resource.", + "reservedInternalRange": { + "description": "The URL of the reserved internal range. Only IPv4 is supported.", "type": "string" + } + }, + "type": "object" + }, + "SubnetworkUtilizationDetails": { + "description": "The current IP utilization of all subnetwork ranges. Contains the total\nnumber of allocated and free IPs in each range.", + "id": "SubnetworkUtilizationDetails", + "properties": { + "externalIpv6InstanceUtilization": { + "$ref": "SubnetworkUtilizationDetailsIPV6Utilization", + "description": "Utilizations of external IPV6 IP range." }, - "selfLinkWithId": { - "description": "[Output Only] Server-defined URL for this resource with the resource id.", - "type": "string" + "externalIpv6LbUtilization": { + "$ref": "SubnetworkUtilizationDetailsIPV6Utilization", + "description": "Utilizations of external IPV6 IP range for NetLB." }, - "supportedDiskTypes": { - "description": "[Output Only] The list of disk types supported in this storage pool type.", + "internalIpv6Utilization": { + "$ref": "SubnetworkUtilizationDetailsIPV6Utilization", + "description": "Utilizations of internal IPV6 IP range." + }, + "ipv4Utilizations": { + "description": "Utilizations of all IPV4 IP ranges. For primary ranges, the range name\nwill be empty.", "items": { - "type": "string" + "$ref": "SubnetworkUtilizationDetailsIPV4Utilization" }, "type": "array" - }, - "zone": { - "description": "[Output Only] URL of the zone where the storage pool type resides. You must specify this field as part of the HTTP request URL. It is not settable as a field in the request body.", - "type": "string" } }, "type": "object" }, - "StoragePoolTypeAggregatedList": { - "id": "StoragePoolTypeAggregatedList", + "SubnetworkUtilizationDetailsIPV4Utilization": { + "description": "The IPV4 utilization of a single IP range.", + "id": "SubnetworkUtilizationDetailsIPV4Utilization", "properties": { - "id": { - "description": "[Output Only] Unique identifier for the resource; defined by the server.", + "rangeName": { + "description": "Will be set for secondary range. Empty for primary IPv4 range.", "type": "string" }, - "items": { - "additionalProperties": { - "$ref": "StoragePoolTypesScopedList", - "description": "[Output Only] Name of the scope containing this set of storage pool types." - }, - "description": "A list of StoragePoolTypesScopedList resources.", - "type": "object" - }, - "kind": { - "default": "compute#storagePoolTypeAggregatedList", - "description": "[Output Only] Type of resource. Always compute#storagePoolTypeAggregatedList .", + "totalAllocatedIp": { + "format": "int64", "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.", + "totalFreeIp": { + "format": "int64", "type": "string" + } + }, + "type": "object" + }, + "SubnetworkUtilizationDetailsIPV6Utilization": { + "description": "The IPV6 utilization of a single IP range.", + "id": "SubnetworkUtilizationDetailsIPV6Utilization", + "properties": { + "totalAllocatedIp": { + "$ref": "Uint128" }, - "selfLink": { - "description": "[Output Only] Server-defined URL for this resource.", + "totalFreeIp": { + "$ref": "Uint128" + } + }, + "type": "object" + }, + "SubnetworksExpandIpCidrRangeRequest": { + "id": "SubnetworksExpandIpCidrRangeRequest", + "properties": { + "ipCidrRange": { + "description": "The IP (in CIDR format or netmask) of internal addresses that are legal on\nthis Subnetwork. This range should be disjoint from other subnetworks\nwithin this network. This range can only be larger than (i.e. a superset\nof) the range previously defined before the update.", "type": "string" + } + }, + "type": "object" + }, + "SubnetworksScopedList": { + "id": "SubnetworksScopedList", + "properties": { + "subnetworks": { + "description": "A list of subnetworks contained in this scope.", + "items": { + "$ref": "Subnetwork" + }, + "type": "array" }, "warning": { - "description": "[Output Only] Informational warning message.", + "description": "An informational warning that appears when the list of addresses\nis empty.", "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.", + "description": "[Output Only] A warning code, if applicable. For example, Compute\nEngine returns NO_RESULTS_ON_PAGE if there\nare no results in the response.", "enum": [ "CLEANUP_FAILED", "DEPRECATED_RESOURCE_USED", @@ -76163,6 +103823,7 @@ "NOT_CRITICAL_ERROR", "NO_RESULTS_ON_PAGE", "PARTIAL_SUCCESS", + "QUOTA_INFO_UNAVAILABLE", "REQUIRED_TOS_AGREEMENT", "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", "RESOURCE_NOT_DELETED", @@ -76199,46 +103860,48 @@ false, false, false, + false, false ], "enumDescriptions": [ - "Warning about failed cleanup of transient changes made by a failed operation.", + "Warning about failed cleanup of transient changes made by a failed\noperation.", "A link to a deprecated resource was created.", - "When deploying and at least one of the resources has a type marked as deprecated", + "When deploying and at least one of the resources has a type marked as\ndeprecated", "The user created a boot disk that is larger than image size.", - "When deploying and at least one of the resources has a type marked as experimental", + "When deploying and at least one of the resources has a type marked as\nexperimental", "Warning that is present in an external api call", - "Warning that value of a field has been overridden. Deprecated unused field.", + "Warning that value of a field has been overridden.\nDeprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", - "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is\nnot of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", - "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", + "Resource can't be retrieved due to list overhead quota exceed\nwhich captures the amount of resources filtered out by\nuser-defined list filter.", "A resource depends on a missing type", - "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's nextHopIp address is not assigned to an instance on the\nnetwork.", "The route's next hop instance cannot ip forward.", - "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not have an\nipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", - "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that is not on the\nsame network as the route.", "The route's next hop instance does not have a status of RUNNING.", - "Error which is not critical. We decided to continue the process despite the mentioned error.", + "Error which is not critical. We decided to continue the process despite\nthe mentioned error.", "No results are present on a particular list page.", "Success is reported, but some results may be missing due to errors", - "The user attempted to use a resource that requires a TOS they have not accepted.", + "Quota information is not available to client requests (e.g:\nregions.list).", + "The user attempted to use a resource that requires a TOS they have not\naccepted.", "Warning that a resource is in use.", - "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "One or more of the resources set to auto-delete could not be deleted\nbecause they were in use.", "When a resource schema validation is ignored.", - "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", + "Instance template used in instance group manager is valid as such, but\nits application does not make a lot of sense, because it allows only\nsingle instance in instance group.", "When undeclared properties in the schema are present", "A given scope cannot be reached." ], "type": "string" }, "data": { - "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", + "description": "[Output Only] Metadata about this warning in key:\nvalue format. For example:\n\n\"data\": [\n {\n \"key\": \"scope\",\n \"value\": \"zones/us-east1-d\"\n }", "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).", + "description": "[Output Only] A key that provides more detail on the warning being\nreturned. For example, for warnings where there are no results in a list\nrequest for a particular zone, this key might be scope and\nthe key value might be the zone name. Other examples might be a key\nindicating a deprecated resource and a suggested replacement, or a\nwarning about invalid network settings (for example, if an instance\nattempts to perform IP forwarding but is not enabled for IP forwarding).", "type": "string" }, "value": { @@ -76260,39 +103923,18 @@ }, "type": "object" }, - "StoragePoolTypeList": { - "description": "Contains a list of storage pool types.", - "id": "StoragePoolTypeList", + "SubnetworksScopedWarning": { + "id": "SubnetworksScopedWarning", "properties": { - "id": { - "description": "[Output Only] Unique identifier for the resource; defined by the server.", - "type": "string" - }, - "items": { - "description": "A list of StoragePoolType resources.", - "items": { - "$ref": "StoragePoolType" - }, - "type": "array" - }, - "kind": { - "default": "compute#storagePoolTypeList", - "description": "[Output Only] Type of resource. Always compute#storagePoolTypeList for storage pool types.", - "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" - }, - "selfLink": { - "description": "[Output Only] Server-defined URL for this resource.", + "scopeName": { + "description": "Name of the scope containing this set of Subnetworks.", "type": "string" }, "warning": { - "description": "[Output Only] Informational warning message.", + "description": "An informational warning about unreachable scope", "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.", + "description": "[Output Only] A warning code, if applicable. For example, Compute\nEngine returns NO_RESULTS_ON_PAGE if there\nare no results in the response.", "enum": [ "CLEANUP_FAILED", "DEPRECATED_RESOURCE_USED", @@ -76315,6 +103957,7 @@ "NOT_CRITICAL_ERROR", "NO_RESULTS_ON_PAGE", "PARTIAL_SUCCESS", + "QUOTA_INFO_UNAVAILABLE", "REQUIRED_TOS_AGREEMENT", "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", "RESOURCE_NOT_DELETED", @@ -76351,46 +103994,48 @@ false, false, false, + false, false ], "enumDescriptions": [ - "Warning about failed cleanup of transient changes made by a failed operation.", + "Warning about failed cleanup of transient changes made by a failed\noperation.", "A link to a deprecated resource was created.", - "When deploying and at least one of the resources has a type marked as deprecated", + "When deploying and at least one of the resources has a type marked as\ndeprecated", "The user created a boot disk that is larger than image size.", - "When deploying and at least one of the resources has a type marked as experimental", + "When deploying and at least one of the resources has a type marked as\nexperimental", "Warning that is present in an external api call", - "Warning that value of a field has been overridden. Deprecated unused field.", + "Warning that value of a field has been overridden.\nDeprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", - "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is\nnot of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", - "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", + "Resource can't be retrieved due to list overhead quota exceed\nwhich captures the amount of resources filtered out by\nuser-defined list filter.", "A resource depends on a missing type", - "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's nextHopIp address is not assigned to an instance on the\nnetwork.", "The route's next hop instance cannot ip forward.", - "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not have an\nipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", - "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that is not on the\nsame network as the route.", "The route's next hop instance does not have a status of RUNNING.", - "Error which is not critical. We decided to continue the process despite the mentioned error.", + "Error which is not critical. We decided to continue the process despite\nthe mentioned error.", "No results are present on a particular list page.", "Success is reported, but some results may be missing due to errors", - "The user attempted to use a resource that requires a TOS they have not accepted.", + "Quota information is not available to client requests (e.g:\nregions.list).", + "The user attempted to use a resource that requires a TOS they have not\naccepted.", "Warning that a resource is in use.", - "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "One or more of the resources set to auto-delete could not be deleted\nbecause they were in use.", "When a resource schema validation is ignored.", - "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", + "Instance template used in instance group manager is valid as such, but\nits application does not make a lot of sense, because it allows only\nsingle instance in instance group.", "When undeclared properties in the schema are present", "A given scope cannot be reached." ], "type": "string" }, "data": { - "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", + "description": "[Output Only] Metadata about this warning in key:\nvalue format. For example:\n\n\"data\": [\n {\n \"key\": \"scope\",\n \"value\": \"zones/us-east1-d\"\n }", "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).", + "description": "[Output Only] A key that provides more detail on the warning being\nreturned. For example, for warnings where there are no results in a list\nrequest for a particular zone, this key might be scope and\nthe key value might be the zone name. Other examples might be a key\nindicating a deprecated resource and a suggested replacement, or a\nwarning about invalid network settings (for example, if an instance\nattempts to perform IP forwarding but is not enabled for IP forwarding).", "type": "string" }, "value": { @@ -76412,21 +104057,196 @@ }, "type": "object" }, - "StoragePoolTypesScopedList": { - "id": "StoragePoolTypesScopedList", + "SubnetworksSetPrivateIpGoogleAccessRequest": { + "id": "SubnetworksSetPrivateIpGoogleAccessRequest", "properties": { - "storagePoolTypes": { - "description": "[Output Only] A list of storage pool types contained in this scope.", + "privateIpGoogleAccess": { + "type": "boolean" + } + }, + "type": "object" + }, + "Subsetting": { + "description": "Subsetting configuration for this BackendService.\nCurrently this is applicable only for Internal TCP/UDP load balancing,\nInternal HTTP(S) load balancing and Traffic Director.", + "id": "Subsetting", + "properties": { + "policy": { + "enum": [ + "CONSISTENT_HASH_SUBSETTING", + "NONE" + ], + "enumDescriptions": [ + "Subsetting based on consistent hashing.\n\nFor Traffic Director, the number of backends per backend group\n(the subset size) is based on the `subset_size` parameter.\n\nFor Internal HTTP(S) load balancing, the number of backends per backend\ngroup (the subset size) is dynamically adjusted in two cases:\n- As the number of proxy instances participating in Internal HTTP(S) load\n balancing increases, the subset size decreases.\n- When the total number of backends in a network exceeds the capacity of\n a single proxy instance, subset sizes are reduced automatically for\n each service that has backend subsetting enabled.", + "No Subsetting.\n\nClients may open connections and send traffic to all backends of this\nbackend service. This can lead to performance issues if there is\nsubstantial imbalance in the count of clients and backends." + ], + "type": "string" + } + }, + "type": "object" + }, + "TCPHealthCheck": { + "id": "TCPHealthCheck", + "properties": { + "port": { + "description": "The TCP port number to which the health check prober sends packets. The\ndefault value is 80. Valid values are 1 through65535.", + "format": "int32", + "type": "integer" + }, + "portName": { + "description": "Not supported.", + "type": "string" + }, + "portSpecification": { + "description": "Specifies how a port is selected for health checking. Can be one of the\nfollowing values: \nUSE_FIXED_PORT: Specifies a port number explicitly using theport field in the health check. Supported by backend services\nfor passthrough load balancers and backend services for proxy load\nbalancers. Not supported by target pools. The health check supports all\nbackends supported by the backend service provided the backend can be\nhealth checked. For example, GCE_VM_IP network endpoint\ngroups, GCE_VM_IP_PORT network endpoint groups, and instance\ngroup backends. \nUSE_NAMED_PORT: Not supported. \nUSE_SERVING_PORT: Provides an indirect method of specifying\nthe health check port by referring to the backend service. Only supported\nby backend services for proxy load balancers. Not supported by target\npools. Not supported by backend services for passthrough load balancers.\nSupports all backends that can be health checked; for example,GCE_VM_IP_PORT network endpoint groups and instance group\nbackends.\n\nFor GCE_VM_IP_PORT network endpoint group backends, the health\ncheck uses the port number specified for each endpoint in the network\nendpoint group. For instance group backends, the health check uses the\nport number determined by looking up the backend service's named port in\nthe instance group's list of named ports.", + "enum": [ + "USE_FIXED_PORT", + "USE_NAMED_PORT", + "USE_SERVING_PORT" + ], + "enumDescriptions": [ + "The port number in the health check's port is used for health\nchecking. Applies to network endpoint group and instance group backends.", + "Not supported.", + "For network endpoint group backends, the health check uses the port number\nspecified on each endpoint in the network endpoint group. For instance\ngroup backends, the health check uses the port number specified for the\nbackend service's named port defined in the instance group's named ports." + ], + "type": "string" + }, + "proxyHeader": { + "description": "Specifies the type of proxy header to append before sending data to the\nbackend, either NONE or PROXY_V1. The default\nis NONE.", + "enum": [ + "NONE", + "PROXY_V1" + ], + "enumDescriptions": [ + "", + "" + ], + "type": "string" + }, + "request": { + "description": "Instructs the health check prober to send this exact ASCII string, up to\n1024 bytes in length, after establishing the TCP connection.", + "type": "string" + }, + "response": { + "description": "Creates a content-based TCP health check. In addition to establishing a\nTCP connection, you can configure the health check to pass only when the\nbackend sends this exact response ASCII string, up to 1024 bytes in length.\nFor details, see:\nhttps://cloud.google.com/load-balancing/docs/health-check-concepts#criteria-protocol-ssl-tcp", + "type": "string" + } + }, + "type": "object" + }, + "Tags": { + "description": "A set of instance tags.", + "id": "Tags", + "properties": { + "fingerprint": { + "description": "Specifies a fingerprint for this request, which is essentially a hash of\nthe tags' contents and used for optimistic locking. The\nfingerprint is initially generated by Compute Engine and changes after\nevery request to modify or update tags. You must always provide an\nup-to-date fingerprint hash in order to update or change tags.\n\nTo see the latest fingerprint, make get() request to the\ninstance.", + "format": "byte", + "type": "string" + }, + "items": { + "description": "An array of tags. Each tag must be 1-63 characters long, and comply\nwith RFC1035.", "items": { - "$ref": "StoragePoolType" + "type": "string" + }, + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "type": "array" + } + }, + "type": "object" + }, + "TargetGrpcProxy": { + "description": "Represents a Target gRPC Proxy resource.\n\nA target gRPC proxy is a component of load balancers intended for\nload balancing gRPC traffic. Only global forwarding rules with load balancing\nscheme INTERNAL_SELF_MANAGED can reference a target gRPC proxy. The target\ngRPC Proxy references a URL map that specifies how traffic is routed to\ngRPC backend services.", + "id": "TargetGrpcProxy", + "properties": { + "creationTimestamp": { + "description": "Output only. [Output Only] Creation timestamp inRFC3339\ntext format.", + "readOnly": true, + "type": "string" + }, + "description": { + "description": "An optional description of this resource. Provide this property when you\ncreate the resource.", + "type": "string" + }, + "fingerprint": { + "description": "Fingerprint of this resource. A hash of the contents stored in this object.\nThis field is used in optimistic locking. This field will be ignored when\ninserting a TargetGrpcProxy. An up-to-date fingerprint must\nbe provided in order to patch/update the TargetGrpcProxy; otherwise, the\nrequest will fail with error 412 conditionNotMet. To see the\nlatest fingerprint, make a get() request to retrieve the\nTargetGrpcProxy.", + "format": "byte", + "type": "string" + }, + "id": { + "description": "Output only. [Output Only] The unique identifier for the resource type. The server\ngenerates this identifier.", + "format": "uint64", + "readOnly": true, + "type": "string" + }, + "kind": { + "default": "compute#targetGrpcProxy", + "description": "Output only. [Output Only] Type of the resource. Alwayscompute#targetGrpcProxy for target grpc proxies.", + "readOnly": true, + "type": "string" + }, + "name": { + "annotations": { + "required": [ + "compute.targetGrpcProxies.insert" + ] + }, + "description": "Name of the resource. Provided by the client when the resource is created.\nThe name must be 1-63 characters long, and comply withRFC1035.\nSpecifically, the name must be 1-63 characters long and match the regular\nexpression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first\ncharacter must be a lowercase letter, and all following characters must\nbe a dash, lowercase letter, or digit, except the last character, which\ncannot be a dash.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "type": "string" + }, + "selfLink": { + "description": "Output only. [Output Only] Server-defined URL for the resource.", + "readOnly": true, + "type": "string" + }, + "selfLinkWithId": { + "description": "Output only. [Output Only] Server-defined URL with id for the resource.", + "readOnly": true, + "type": "string" + }, + "urlMap": { + "description": "URL to the UrlMap resource that defines the mapping from URL to the\nBackendService. The protocol field in the BackendService must be set to\nGRPC.", + "type": "string" + }, + "validateForProxyless": { + "description": "If true, indicates that the BackendServices referenced by the urlMap may be\naccessed by gRPC applications without using a sidecar proxy. This will\nenable configuration checks on urlMap and its referenced BackendServices to\nnot allow unsupported features. A gRPC application must use\n\"xds:///\" scheme in the target URI of the service it is\nconnecting to.\nIf false, indicates that the BackendServices referenced by the urlMap will\nbe accessed by gRPC applications via a sidecar proxy. In this case, a gRPC\napplication must not use \"xds:///\" scheme in the target URI of\nthe service it is connecting to", + "type": "boolean" + } + }, + "type": "object" + }, + "TargetGrpcProxyList": { + "id": "TargetGrpcProxyList", + "properties": { + "id": { + "description": "[Output Only] Unique identifier for the resource; defined by the server.", + "type": "string" + }, + "items": { + "description": "A list of TargetGrpcProxy resources.", + "items": { + "$ref": "TargetGrpcProxy" }, "type": "array" }, + "kind": { + "default": "compute#targetGrpcProxyList", + "description": "Output only. [Output Only] Type of the resource. Alwayscompute#targetGrpcProxy for target grpc proxies.", + "readOnly": true, + "type": "string" + }, + "nextPageToken": { + "description": "[Output Only] This token allows you to get the next page of results for\nlist requests. If the number of results is larger thanmaxResults, use the nextPageToken as a value for\nthe query parameter pageToken in the next list request.\nSubsequent list requests will have their own nextPageToken to\ncontinue paging through the results.", + "type": "string" + }, + "selfLink": { + "description": "[Output Only] Server-defined URL for this resource.", + "type": "string" + }, "warning": { - "description": "[Output Only] Informational warning which replaces the list of storage pool types when the list is empty.", + "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.", + "description": "[Output Only] A warning code, if applicable. For example, Compute\nEngine returns NO_RESULTS_ON_PAGE if there\nare no results in the response.", "enum": [ "CLEANUP_FAILED", "DEPRECATED_RESOURCE_USED", @@ -76449,6 +104269,7 @@ "NOT_CRITICAL_ERROR", "NO_RESULTS_ON_PAGE", "PARTIAL_SUCCESS", + "QUOTA_INFO_UNAVAILABLE", "REQUIRED_TOS_AGREEMENT", "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", "RESOURCE_NOT_DELETED", @@ -76485,46 +104306,48 @@ false, false, false, + false, false ], "enumDescriptions": [ - "Warning about failed cleanup of transient changes made by a failed operation.", + "Warning about failed cleanup of transient changes made by a failed\noperation.", "A link to a deprecated resource was created.", - "When deploying and at least one of the resources has a type marked as deprecated", + "When deploying and at least one of the resources has a type marked as\ndeprecated", "The user created a boot disk that is larger than image size.", - "When deploying and at least one of the resources has a type marked as experimental", + "When deploying and at least one of the resources has a type marked as\nexperimental", "Warning that is present in an external api call", - "Warning that value of a field has been overridden. Deprecated unused field.", + "Warning that value of a field has been overridden.\nDeprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", - "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is\nnot of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", - "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", + "Resource can't be retrieved due to list overhead quota exceed\nwhich captures the amount of resources filtered out by\nuser-defined list filter.", "A resource depends on a missing type", - "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's nextHopIp address is not assigned to an instance on the\nnetwork.", "The route's next hop instance cannot ip forward.", - "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not have an\nipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", - "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that is not on the\nsame network as the route.", "The route's next hop instance does not have a status of RUNNING.", - "Error which is not critical. We decided to continue the process despite the mentioned error.", + "Error which is not critical. We decided to continue the process despite\nthe mentioned error.", "No results are present on a particular list page.", "Success is reported, but some results may be missing due to errors", - "The user attempted to use a resource that requires a TOS they have not accepted.", + "Quota information is not available to client requests (e.g:\nregions.list).", + "The user attempted to use a resource that requires a TOS they have not\naccepted.", "Warning that a resource is in use.", - "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "One or more of the resources set to auto-delete could not be deleted\nbecause they were in use.", "When a resource schema validation is ignored.", - "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", + "Instance template used in instance group manager is valid as such, but\nits application does not make a lot of sense, because it allows only\nsingle instance in instance group.", "When undeclared properties in the schema are present", "A given scope cannot be reached." ], "type": "string" }, "data": { - "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", + "description": "[Output Only] Metadata about this warning in key:\nvalue format. For example:\n\n\"data\": [\n {\n \"key\": \"scope\",\n \"value\": \"zones/us-east1-d\"\n }", "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).", + "description": "[Output Only] A key that provides more detail on the warning being\nreturned. For example, for warnings where there are no results in a list\nrequest for a particular zone, this key might be scope and\nthe key value might be the zone name. Other examples might be a key\nindicating a deprecated resource and a suggested replacement, or a\nwarning about invalid network settings (for example, if an instance\nattempts to perform IP forwarding but is not enabled for IP forwarding).", "type": "string" }, "value": { @@ -76546,21 +104369,21 @@ }, "type": "object" }, - "StoragePoolsScopedList": { - "id": "StoragePoolsScopedList", + "TargetHttpProxiesScopedList": { + "id": "TargetHttpProxiesScopedList", "properties": { - "storagePools": { - "description": "[Output Only] A list of storage pool contained in this scope.", + "targetHttpProxies": { + "description": "A list of TargetHttpProxies contained in this scope.", "items": { - "$ref": "StoragePool" + "$ref": "TargetHttpProxy" }, "type": "array" }, "warning": { - "description": "[Output Only] Informational warning which replaces the list of storage pool when the list is empty.", + "description": "Informational warning which replaces the list of\nbackend services when the list is empty.", "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.", + "description": "[Output Only] A warning code, if applicable. For example, Compute\nEngine returns NO_RESULTS_ON_PAGE if there\nare no results in the response.", "enum": [ "CLEANUP_FAILED", "DEPRECATED_RESOURCE_USED", @@ -76583,6 +104406,7 @@ "NOT_CRITICAL_ERROR", "NO_RESULTS_ON_PAGE", "PARTIAL_SUCCESS", + "QUOTA_INFO_UNAVAILABLE", "REQUIRED_TOS_AGREEMENT", "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", "RESOURCE_NOT_DELETED", @@ -76619,46 +104443,48 @@ false, false, false, + false, false ], "enumDescriptions": [ - "Warning about failed cleanup of transient changes made by a failed operation.", + "Warning about failed cleanup of transient changes made by a failed\noperation.", "A link to a deprecated resource was created.", - "When deploying and at least one of the resources has a type marked as deprecated", + "When deploying and at least one of the resources has a type marked as\ndeprecated", "The user created a boot disk that is larger than image size.", - "When deploying and at least one of the resources has a type marked as experimental", + "When deploying and at least one of the resources has a type marked as\nexperimental", "Warning that is present in an external api call", - "Warning that value of a field has been overridden. Deprecated unused field.", + "Warning that value of a field has been overridden.\nDeprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", - "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is\nnot of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", - "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", + "Resource can't be retrieved due to list overhead quota exceed\nwhich captures the amount of resources filtered out by\nuser-defined list filter.", "A resource depends on a missing type", - "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's nextHopIp address is not assigned to an instance on the\nnetwork.", "The route's next hop instance cannot ip forward.", - "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not have an\nipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", - "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that is not on the\nsame network as the route.", "The route's next hop instance does not have a status of RUNNING.", - "Error which is not critical. We decided to continue the process despite the mentioned error.", + "Error which is not critical. We decided to continue the process despite\nthe mentioned error.", "No results are present on a particular list page.", "Success is reported, but some results may be missing due to errors", - "The user attempted to use a resource that requires a TOS they have not accepted.", + "Quota information is not available to client requests (e.g:\nregions.list).", + "The user attempted to use a resource that requires a TOS they have not\naccepted.", "Warning that a resource is in use.", - "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "One or more of the resources set to auto-delete could not be deleted\nbecause they were in use.", "When a resource schema validation is ignored.", - "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", + "Instance template used in instance group manager is valid as such, but\nits application does not make a lot of sense, because it allows only\nsingle instance in instance group.", "When undeclared properties in the schema are present", "A given scope cannot be reached." ], "type": "string" }, "data": { - "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", + "description": "[Output Only] Metadata about this warning in key:\nvalue format. For example:\n\n\"data\": [\n {\n \"key\": \"scope\",\n \"value\": \"zones/us-east1-d\"\n }", "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).", + "description": "[Output Only] A key that provides more detail on the warning being\nreturned. For example, for warnings where there are no results in a list\nrequest for a particular zone, this key might be scope and\nthe key value might be the zone name. Other examples might be a key\nindicating a deprecated resource and a suggested replacement, or a\nwarning about invalid network settings (for example, if an instance\nattempts to perform IP forwarding but is not enabled for IP forwarding).", "type": "string" }, "value": { @@ -76680,372 +104506,141 @@ }, "type": "object" }, - "Subnetwork": { - "description": "Represents a Subnetwork resource. A subnetwork (also known as a subnet) is a logical partition of a Virtual Private Cloud network with one primary IP range and zero or more secondary IP ranges. For more information, read Virtual Private Cloud (VPC) Network.", - "id": "Subnetwork", + "TargetHttpProxy": { + "description": "Represents a Target HTTP Proxy resource.\n\nGoogle Compute Engine has two Target HTTP Proxy resources:\n\n* [Global](/compute/docs/reference/rest/v1/targetHttpProxies)\n* [Regional](/compute/docs/reference/rest/v1/regionTargetHttpProxies)\n\nA target HTTP proxy is a component of Google Cloud HTTP load balancers.\n\n* targetHttpProxies are used by global external Application Load Balancers,\n classic Application Load Balancers, cross-region internal Application Load\n Balancers, and Traffic Director.\n* regionTargetHttpProxies are used by regional internal Application Load\n Balancers and regional external Application Load Balancers.\n\nForwarding rules reference a target HTTP proxy, and the target proxy\nthen references a URL map. For more information, readUsing Target Proxies\nand \nForwarding rule concepts.", + "id": "TargetHttpProxy", "properties": { "creationTimestamp": { - "description": "[Output Only] Creation timestamp in RFC3339 text format.", + "description": "Output only. [Output Only] Creation timestamp inRFC3339\ntext format.", + "readOnly": true, "type": "string" }, "description": { - "description": "An optional description of this resource. Provide this property when you create the resource. This field can be set only at resource creation time.", - "type": "string" - }, - "enableFlowLogs": { - "description": "Whether to enable flow logging for this subnetwork. If this field is not explicitly set, it will not appear in get listings. If not set the default behavior is determined by the org policy, if there is no org policy specified, then it will default to disabled. This field isn't supported if the subnet purpose field is set to REGIONAL_MANAGED_PROXY.", - "type": "boolean" - }, - "externalIpv6Prefix": { - "description": "The external IPv6 address range that is owned by this subnetwork.", + "description": "An optional description of this resource. Provide this property when you\ncreate the resource.", "type": "string" }, "fingerprint": { - "description": "Fingerprint of this resource. A hash of the contents stored in this object. This field is used in optimistic locking. This field will be ignored when inserting a Subnetwork. An up-to-date fingerprint must be provided in order to update the Subnetwork, otherwise the request will fail with error 412 conditionNotMet. To see the latest fingerprint, make a get() request to retrieve a Subnetwork.", + "description": "Fingerprint of this resource. A hash of the contents stored in this object.\nThis field is used in optimistic locking. This field will be ignored when\ninserting a TargetHttpProxy. An up-to-date fingerprint must\nbe provided in order to patch/update the TargetHttpProxy; otherwise, the\nrequest will fail with error 412 conditionNotMet. To see the\nlatest fingerprint, make a get() request to retrieve the\nTargetHttpProxy.", "format": "byte", "type": "string" }, - "gatewayAddress": { - "description": "[Output Only] The gateway address for default routes to reach destination addresses outside this subnetwork.", - "type": "string" + "httpKeepAliveTimeoutSec": { + "description": "Specifies how long to keep a connection open, after completing a response,\nwhile there is no matching traffic (in seconds). If an HTTP keep-alive is\nnot specified, a default value (610 seconds) will be used.\n\nFor global external Application Load Balancers, the minimum allowed value\nis 5 seconds and the maximum allowed value is 1200 seconds.\n\nFor classic Application Load Balancers, this option is not supported.", + "format": "int32", + "type": "integer" }, "id": { - "description": "[Output Only] The unique identifier for the resource. This identifier is defined by the server.", + "description": "[Output Only] The unique identifier for the resource. This identifier is\ndefined by the server.", "format": "uint64", "type": "string" }, - "internalIpv6Prefix": { - "description": "[Output Only] The internal IPv6 address range that is assigned to this subnetwork.", - "type": "string" - }, - "ipCidrRange": { - "description": "The range of internal addresses that are owned by this subnetwork. Provide this property when you create the subnetwork. For example, 10.0.0.0/8 or 100.64.0.0/10. Ranges must be unique and non-overlapping within a network. Only IPv4 is supported. This field is set at resource creation time. The range can be any range listed in the Valid ranges list. The range can be expanded after creation using expandIpCidrRange.", - "type": "string" - }, - "ipv6AccessType": { - "description": "The access type of IPv6 address this subnet holds. It's immutable and can only be specified during creation or the first time the subnet is updated into IPV4_IPV6 dual stack.", - "enum": [ - "EXTERNAL", - "INTERNAL" - ], - "enumDescriptions": [ - "VMs on this subnet will be assigned IPv6 addresses that are accessible via the Internet, as well as the VPC network.", - "VMs on this subnet will be assigned IPv6 addresses that are only accessible over the VPC network." - ], - "type": "string" - }, - "ipv6CidrRange": { - "description": "[Output Only] This field is for internal use.", - "type": "string" - }, "kind": { - "default": "compute#subnetwork", - "description": "[Output Only] Type of the resource. Always compute#subnetwork for Subnetwork resources.", + "default": "compute#targetHttpProxy", + "description": "Output only. [Output Only] Type of resource. Always compute#targetHttpProxy\nfor target HTTP proxies.", + "readOnly": true, "type": "string" }, - "logConfig": { - "$ref": "SubnetworkLogConfig", - "description": "This field denotes the VPC flow logging options for this subnetwork. If logging is enabled, logs are exported to Cloud Logging." - }, "name": { - "description": "The name of the resource, provided by the client when initially creating the resource. The name must be 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters long and match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash.", + "description": "Name of the resource. Provided by the client when the resource is created.\nThe name must be 1-63 characters long, and comply withRFC1035.\nSpecifically, the name must be 1-63 characters long and match the regular\nexpression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first\ncharacter must be a lowercase letter, and all following characters must\nbe a dash, lowercase letter, or digit, except the last character, which\ncannot be a dash.", "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", "type": "string" }, - "network": { - "description": "The URL of the network to which this subnetwork belongs, provided by the client when initially creating the subnetwork. This field can be set only at resource creation time.", - "type": "string" - }, - "privateIpGoogleAccess": { - "description": "Whether the VMs in this subnet can access Google services without assigned external IP addresses. This field can be both set at resource creation time and updated using setPrivateIpGoogleAccess.", + "proxyBind": { + "description": "This field only applies when the forwarding rule that references this\ntarget proxy has a loadBalancingScheme set toINTERNAL_SELF_MANAGED.\n\nWhen this field is set to true, Envoy proxies set up inbound\ntraffic interception and bind to the IP address and port specified in the\nforwarding rule. This is generally useful when using Traffic Director to\nconfigure Envoy as a gateway or middle proxy (in other words, not a\nsidecar proxy). The Envoy proxy listens for inbound requests and handles\nrequests when it receives them.\n\nThe default is false.", "type": "boolean" }, - "privateIpv6GoogleAccess": { - "description": "This field is for internal use. This field can be both set at resource creation time and updated using patch.", - "enum": [ - "DISABLE_GOOGLE_ACCESS", - "ENABLE_BIDIRECTIONAL_ACCESS_TO_GOOGLE", - "ENABLE_OUTBOUND_VM_ACCESS_TO_GOOGLE" - ], - "enumDescriptions": [ - "Disable private IPv6 access to/from Google services.", - "Bidirectional private IPv6 access to/from Google services.", - "Outbound private IPv6 access from VMs in this subnet to Google services." - ], - "type": "string" - }, - "purpose": { - "description": "The purpose of the resource. This field can be either PRIVATE, GLOBAL_MANAGED_PROXY, REGIONAL_MANAGED_PROXY, PRIVATE_SERVICE_CONNECT, or PRIVATE is the default purpose for user-created subnets or subnets that are automatically created in auto mode networks. Subnets with purpose set to GLOBAL_MANAGED_PROXY or REGIONAL_MANAGED_PROXY are user-created subnetworks that are reserved for Envoy-based load balancers. A subnet with purpose set to PRIVATE_SERVICE_CONNECT is used to publish services using Private Service Connect. If unspecified, the subnet purpose defaults to PRIVATE. The enableFlowLogs field isn't supported if the subnet purpose field is set to GLOBAL_MANAGED_PROXY or REGIONAL_MANAGED_PROXY.", - "enum": [ - "GLOBAL_MANAGED_PROXY", - "INTERNAL_HTTPS_LOAD_BALANCER", - "PRIVATE", - "PRIVATE_NAT", - "PRIVATE_RFC_1918", - "PRIVATE_SERVICE_CONNECT", - "REGIONAL_MANAGED_PROXY" - ], - "enumDescriptions": [ - "Subnet reserved for Global Envoy-based Load Balancing.", - "Subnet reserved for Internal HTTP(S) Load Balancing. This is a legacy purpose, please use REGIONAL_MANAGED_PROXY instead.", - "Regular user created or automatically created subnet.", - "Subnetwork used as source range for Private NAT Gateways.", - "Regular user created or automatically created subnet.", - "Subnetworks created for Private Service Connect in the producer network.", - "Subnetwork used for Regional Envoy-based Load Balancing." - ], - "type": "string" - }, "region": { - "description": "URL of the region where the Subnetwork resides. This field can be set only at resource creation time.", - "type": "string" - }, - "reservedInternalRange": { - "description": "The URL of the reserved internal range.", - "type": "string" - }, - "role": { - "description": "The role of subnetwork. Currently, this field is only used when purpose is set to GLOBAL_MANAGED_PROXY or REGIONAL_MANAGED_PROXY. The value can be set to ACTIVE or BACKUP. An ACTIVE subnetwork is one that is currently being used for Envoy-based load balancers in a region. A BACKUP subnetwork is one that is ready to be promoted to ACTIVE or is currently draining. This field can be updated with a patch request.", - "enum": [ - "ACTIVE", - "BACKUP" - ], - "enumDescriptions": [ - "The ACTIVE subnet that is currently used.", - "The BACKUP subnet that could be promoted to ACTIVE." - ], + "description": "Output only. [Output Only] URL of the region where the regional Target HTTP Proxy\nresides. This field is not applicable to global Target HTTP Proxies.", + "readOnly": true, "type": "string" }, - "secondaryIpRanges": { - "description": "An array of configurations for secondary IP ranges for VM instances contained in this subnetwork. The primary IP of such VM must belong to the primary ipCidrRange of the subnetwork. The alias IPs may belong to either primary or secondary ranges. This field can be updated with a patch request.", - "items": { - "$ref": "SubnetworkSecondaryRange" - }, - "type": "array" - }, "selfLink": { "description": "[Output Only] Server-defined URL for the resource.", "type": "string" - }, - "stackType": { - "description": "The stack type for the subnet. If set to IPV4_ONLY, new VMs in the subnet are assigned IPv4 addresses only. If set to IPV4_IPV6, new VMs in the subnet can be assigned both IPv4 and IPv6 addresses. If not specified, IPV4_ONLY is used. This field can be both set at resource creation time and updated using patch.", - "enum": [ - "IPV4_IPV6", - "IPV4_ONLY" - ], - "enumDescriptions": [ - "New VMs in this subnet can have both IPv4 and IPv6 addresses.", - "New VMs in this subnet will only be assigned IPv4 addresses." - ], - "type": "string" - }, - "state": { - "description": "[Output Only] The state of the subnetwork, which can be one of the following values: READY: Subnetwork is created and ready to use DRAINING: only applicable to subnetworks that have the purpose set to INTERNAL_HTTPS_LOAD_BALANCER and indicates that connections to the load balancer are being drained. A subnetwork that is draining cannot be used or modified until it reaches a status of READY", - "enum": [ - "DRAINING", - "READY" - ], - "enumDescriptions": [ - "Subnetwork is being drained.", - "Subnetwork is ready for use." - ], - "type": "string" - } - }, - "type": "object" - }, - "SubnetworkAggregatedList": { - "id": "SubnetworkAggregatedList", - "properties": { - "id": { - "description": "[Output Only] Unique identifier for the resource; defined by the server.", - "type": "string" - }, - "items": { - "additionalProperties": { - "$ref": "SubnetworksScopedList", - "description": "Name of the scope containing this set of Subnetworks." - }, - "description": "A list of SubnetworksScopedList resources.", - "type": "object" - }, - "kind": { - "default": "compute#subnetworkAggregatedList", - "description": "[Output Only] Type of resource. Always compute#subnetworkAggregatedList for aggregated lists of subnetworks.", - "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" - }, - "selfLink": { - "description": "[Output Only] Server-defined URL for this resource.", - "type": "string" - }, - "unreachables": { - "description": "[Output Only] Unreachable resources.", - "items": { - "type": "string" - }, - "type": "array" - }, - "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", - "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", - "LARGE_DEPLOYMENT_WARNING", - "LIST_OVERHEAD_QUOTA_EXCEED", - "MISSING_TYPE_DEPENDENCY", - "NEXT_HOP_ADDRESS_NOT_ASSIGNED", - "NEXT_HOP_CANNOT_IP_FORWARD", - "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", - "NEXT_HOP_INSTANCE_NOT_FOUND", - "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", - "NEXT_HOP_NOT_RUNNING", - "NOT_CRITICAL_ERROR", - "NO_RESULTS_ON_PAGE", - "PARTIAL_SUCCESS", - "REQUIRED_TOS_AGREEMENT", - "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", - "RESOURCE_NOT_DELETED", - "SCHEMA_VALIDATION_IGNORED", - "SINGLE_INSTANCE_PROPERTY_TEMPLATE", - "UNDECLARED_PROPERTIES", - "UNREACHABLE" - ], - "enumDeprecated": [ - false, - false, - false, - false, - false, - false, - true, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false - ], - "enumDescriptions": [ - "Warning about failed cleanup of transient changes made by a failed operation.", - "A link to a deprecated resource was created.", - "When deploying and at least one of the resources has a type marked as deprecated", - "The user created a boot disk that is larger than image size.", - "When deploying and at least one of the resources has a type marked as experimental", - "Warning that is present in an external api call", - "Warning that value of a field has been overridden. Deprecated unused field.", - "The operation involved use of an injected kernel, which is deprecated.", - "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", - "When deploying a deployment with a exceedingly large number of resources", - "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", - "A resource depends on a missing type", - "The route's nextHopIp address is not assigned to an instance on the network.", - "The route's next hop instance cannot ip forward.", - "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", - "The route's nextHopInstance URL refers to an instance that does not exist.", - "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", - "The route's next hop instance does not have a status of RUNNING.", - "Error which is not critical. We decided to continue the process despite the mentioned error.", - "No results are present on a particular list page.", - "Success is reported, but some results may be missing due to errors", - "The user attempted to use a resource that requires a TOS they have not accepted.", - "Warning that a resource is in use.", - "One or more of the resources set to auto-delete could not be deleted because they were in use.", - "When a resource schema validation is ignored.", - "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", - "When undeclared properties in the schema are present", - "A given scope cannot be reached." - ], - "type": "string" - }, - "data": { - "description": "[Output Only] Metadata about this warning in key: value format. For example: \"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" - } + }, + "urlMap": { + "description": "URL to the UrlMap resource that defines the mapping from URL to\nthe BackendService.", + "type": "string" + } + }, + "type": "object" + }, + "TargetHttpProxyAggregatedList": { + "id": "TargetHttpProxyAggregatedList", + "properties": { + "id": { + "description": "[Output Only] Unique identifier for the resource; defined by the server.", + "type": "string" + }, + "items": { + "additionalProperties": { + "$ref": "TargetHttpProxiesScopedList", + "description": "Name of the scope containing this set of TargetHttpProxies." }, + "description": "A list of TargetHttpProxiesScopedList resources.", "type": "object" + }, + "kind": { + "default": "compute#targetHttpProxyAggregatedList", + "description": "Output only. [Output Only] Type of resource. Alwayscompute#targetHttpProxyAggregatedList for lists of Target HTTP\nProxies.", + "readOnly": true, + "type": "string" + }, + "nextPageToken": { + "description": "[Output Only] This token allows you to get the next page of results for\nlist requests. If the number of results is larger thanmaxResults, use the nextPageToken as a value for\nthe query parameter pageToken in the next list request.\nSubsequent list requests will have their own nextPageToken to\ncontinue paging through the results.", + "type": "string" + }, + "selfLink": { + "description": "Output only. [Output Only] Server-defined URL for this resource.", + "readOnly": true, + "type": "string" + }, + "unreachables": { + "description": "Output only. [Output Only] Unreachable resources.", + "items": { + "type": "string" + }, + "readOnly": true, + "type": "array" } }, "type": "object" }, - "SubnetworkList": { - "description": "Contains a list of Subnetwork resources.", - "id": "SubnetworkList", + "TargetHttpProxyList": { + "description": "A list of TargetHttpProxy resources.", + "id": "TargetHttpProxyList", "properties": { "id": { "description": "[Output Only] Unique identifier for the resource; defined by the server.", "type": "string" }, "items": { - "description": "A list of Subnetwork resources.", + "description": "A list of TargetHttpProxy resources.", "items": { - "$ref": "Subnetwork" + "$ref": "TargetHttpProxy" }, "type": "array" }, "kind": { - "default": "compute#subnetworkList", - "description": "[Output Only] Type of resource. Always compute#subnetworkList for lists of subnetworks.", + "default": "compute#targetHttpProxyList", + "description": "Output only. Type of resource. Always compute#targetHttpProxyList for lists\nof target HTTP proxies.", + "readOnly": true, "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.", + "description": "[Output Only] This token allows you to get the next page of results for\nlist requests. If the number of results is larger thanmaxResults, use the nextPageToken as a value for\nthe query parameter pageToken in the next list request.\nSubsequent list requests will have their own nextPageToken to\ncontinue paging through the results.", "type": "string" }, "selfLink": { - "description": "[Output Only] Server-defined URL for this resource.", + "description": "Output only. [Output Only] Server-defined URL for this resource.", + "readOnly": true, "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.", + "description": "[Output Only] A warning code, if applicable. For example, Compute\nEngine returns NO_RESULTS_ON_PAGE if there\nare no results in the response.", "enum": [ "CLEANUP_FAILED", "DEPRECATED_RESOURCE_USED", @@ -77068,6 +104663,7 @@ "NOT_CRITICAL_ERROR", "NO_RESULTS_ON_PAGE", "PARTIAL_SUCCESS", + "QUOTA_INFO_UNAVAILABLE", "REQUIRED_TOS_AGREEMENT", "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", "RESOURCE_NOT_DELETED", @@ -77104,46 +104700,48 @@ false, false, false, + false, false ], "enumDescriptions": [ - "Warning about failed cleanup of transient changes made by a failed operation.", + "Warning about failed cleanup of transient changes made by a failed\noperation.", "A link to a deprecated resource was created.", - "When deploying and at least one of the resources has a type marked as deprecated", + "When deploying and at least one of the resources has a type marked as\ndeprecated", "The user created a boot disk that is larger than image size.", - "When deploying and at least one of the resources has a type marked as experimental", + "When deploying and at least one of the resources has a type marked as\nexperimental", "Warning that is present in an external api call", - "Warning that value of a field has been overridden. Deprecated unused field.", + "Warning that value of a field has been overridden.\nDeprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", - "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is\nnot of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", - "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", + "Resource can't be retrieved due to list overhead quota exceed\nwhich captures the amount of resources filtered out by\nuser-defined list filter.", "A resource depends on a missing type", - "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's nextHopIp address is not assigned to an instance on the\nnetwork.", "The route's next hop instance cannot ip forward.", - "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not have an\nipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", - "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that is not on the\nsame network as the route.", "The route's next hop instance does not have a status of RUNNING.", - "Error which is not critical. We decided to continue the process despite the mentioned error.", + "Error which is not critical. We decided to continue the process despite\nthe mentioned error.", "No results are present on a particular list page.", "Success is reported, but some results may be missing due to errors", - "The user attempted to use a resource that requires a TOS they have not accepted.", + "Quota information is not available to client requests (e.g:\nregions.list).", + "The user attempted to use a resource that requires a TOS they have not\naccepted.", "Warning that a resource is in use.", - "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "One or more of the resources set to auto-delete could not be deleted\nbecause they were in use.", "When a resource schema validation is ignored.", - "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", + "Instance template used in instance group manager is valid as such, but\nits application does not make a lot of sense, because it allows only\nsingle instance in instance group.", "When undeclared properties in the schema are present", "A given scope cannot be reached." ], "type": "string" }, "data": { - "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", + "description": "[Output Only] Metadata about this warning in key:\nvalue format. For example:\n\n\"data\": [\n {\n \"key\": \"scope\",\n \"value\": \"zones/us-east1-d\"\n }", "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).", + "description": "[Output Only] A key that provides more detail on the warning being\nreturned. For example, for warnings where there are no results in a list\nrequest for a particular zone, this key might be scope and\nthe key value might be the zone name. Other examples might be a key\nindicating a deprecated resource and a suggested replacement, or a\nwarning about invalid network settings (for example, if an instance\nattempts to perform IP forwarding but is not enabled for IP forwarding).", "type": "string" }, "value": { @@ -77165,111 +104763,21 @@ }, "type": "object" }, - "SubnetworkLogConfig": { - "description": "The available logging options for this subnetwork.", - "id": "SubnetworkLogConfig", - "properties": { - "aggregationInterval": { - "description": "Can only be specified if VPC flow logging for this subnetwork is enabled. Toggles the aggregation interval for collecting flow logs. Increasing the interval time will reduce the amount of generated flow logs for long lasting connections. Default is an interval of 5 seconds per connection.", - "enum": [ - "INTERVAL_10_MIN", - "INTERVAL_15_MIN", - "INTERVAL_1_MIN", - "INTERVAL_30_SEC", - "INTERVAL_5_MIN", - "INTERVAL_5_SEC" - ], - "enumDescriptions": [ - "", - "", - "", - "", - "", - "" - ], - "type": "string" - }, - "enable": { - "description": "Whether to enable flow logging for this subnetwork. If this field is not explicitly set, it will not appear in get listings. If not set the default behavior is determined by the org policy, if there is no org policy specified, then it will default to disabled. Flow logging isn't supported if the subnet purpose field is set to REGIONAL_MANAGED_PROXY.", - "type": "boolean" - }, - "filterExpr": { - "description": "Can only be specified if VPC flow logs for this subnetwork is enabled. The filter expression is used to define which VPC flow logs should be exported to Cloud Logging.", - "type": "string" - }, - "flowSampling": { - "description": "Can only be specified if VPC flow logging for this subnetwork is enabled. The value of the field must be in [0, 1]. Set the sampling rate of VPC flow logs within the subnetwork where 1.0 means all collected logs are reported and 0.0 means no logs are reported. Default is 0.5 unless otherwise specified by the org policy, which means half of all collected logs are reported.", - "format": "float", - "type": "number" - }, - "metadata": { - "description": "Can only be specified if VPC flow logs for this subnetwork is enabled. Configures whether all, none or a subset of metadata fields should be added to the reported VPC flow logs. Default is EXCLUDE_ALL_METADATA.", - "enum": [ - "CUSTOM_METADATA", - "EXCLUDE_ALL_METADATA", - "INCLUDE_ALL_METADATA" - ], - "enumDescriptions": [ - "", - "", - "" - ], - "type": "string" - }, - "metadataFields": { - "description": "Can only be specified if VPC flow logs for this subnetwork is enabled and \"metadata\" was set to CUSTOM_METADATA.", - "items": { - "type": "string" - }, - "type": "array" - } - }, - "type": "object" - }, - "SubnetworkSecondaryRange": { - "description": "Represents a secondary IP range of a subnetwork.", - "id": "SubnetworkSecondaryRange", - "properties": { - "ipCidrRange": { - "description": "The range of IP addresses belonging to this subnetwork secondary range. Provide this property when you create the subnetwork. Ranges must be unique and non-overlapping with all primary and secondary IP ranges within a network. Only IPv4 is supported. The range can be any range listed in the Valid ranges list.", - "type": "string" - }, - "rangeName": { - "description": "The name associated with this subnetwork secondary range, used when adding an alias IP range to a VM instance. The name must be 1-63 characters long, and comply with RFC1035. The name must be unique within the subnetwork.", - "type": "string" - }, - "reservedInternalRange": { - "description": "The URL of the reserved internal range.", - "type": "string" - } - }, - "type": "object" - }, - "SubnetworksExpandIpCidrRangeRequest": { - "id": "SubnetworksExpandIpCidrRangeRequest", - "properties": { - "ipCidrRange": { - "description": "The IP (in CIDR format or netmask) of internal addresses that are legal on this Subnetwork. This range should be disjoint from other subnetworks within this network. This range can only be larger than (i.e. a superset of) the range previously defined before the update.", - "type": "string" - } - }, - "type": "object" - }, - "SubnetworksScopedList": { - "id": "SubnetworksScopedList", + "TargetHttpsProxiesScopedList": { + "id": "TargetHttpsProxiesScopedList", "properties": { - "subnetworks": { - "description": "A list of subnetworks contained in this scope.", + "targetHttpsProxies": { + "description": "A list of TargetHttpsProxies contained in this scope.", "items": { - "$ref": "Subnetwork" + "$ref": "TargetHttpsProxy" }, "type": "array" }, "warning": { - "description": "An informational warning that appears when the list of addresses is empty.", + "description": "Informational warning which replaces the list of\nbackend services when the list is empty.", "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.", + "description": "[Output Only] A warning code, if applicable. For example, Compute\nEngine returns NO_RESULTS_ON_PAGE if there\nare no results in the response.", "enum": [ "CLEANUP_FAILED", "DEPRECATED_RESOURCE_USED", @@ -77292,6 +104800,7 @@ "NOT_CRITICAL_ERROR", "NO_RESULTS_ON_PAGE", "PARTIAL_SUCCESS", + "QUOTA_INFO_UNAVAILABLE", "REQUIRED_TOS_AGREEMENT", "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", "RESOURCE_NOT_DELETED", @@ -77328,46 +104837,48 @@ false, false, false, + false, false ], "enumDescriptions": [ - "Warning about failed cleanup of transient changes made by a failed operation.", + "Warning about failed cleanup of transient changes made by a failed\noperation.", "A link to a deprecated resource was created.", - "When deploying and at least one of the resources has a type marked as deprecated", + "When deploying and at least one of the resources has a type marked as\ndeprecated", "The user created a boot disk that is larger than image size.", - "When deploying and at least one of the resources has a type marked as experimental", + "When deploying and at least one of the resources has a type marked as\nexperimental", "Warning that is present in an external api call", - "Warning that value of a field has been overridden. Deprecated unused field.", + "Warning that value of a field has been overridden.\nDeprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", - "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is\nnot of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", - "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", + "Resource can't be retrieved due to list overhead quota exceed\nwhich captures the amount of resources filtered out by\nuser-defined list filter.", "A resource depends on a missing type", - "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's nextHopIp address is not assigned to an instance on the\nnetwork.", "The route's next hop instance cannot ip forward.", - "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not have an\nipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", - "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that is not on the\nsame network as the route.", "The route's next hop instance does not have a status of RUNNING.", - "Error which is not critical. We decided to continue the process despite the mentioned error.", + "Error which is not critical. We decided to continue the process despite\nthe mentioned error.", "No results are present on a particular list page.", "Success is reported, but some results may be missing due to errors", - "The user attempted to use a resource that requires a TOS they have not accepted.", + "Quota information is not available to client requests (e.g:\nregions.list).", + "The user attempted to use a resource that requires a TOS they have not\naccepted.", "Warning that a resource is in use.", - "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "One or more of the resources set to auto-delete could not be deleted\nbecause they were in use.", "When a resource schema validation is ignored.", - "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", + "Instance template used in instance group manager is valid as such, but\nits application does not make a lot of sense, because it allows only\nsingle instance in instance group.", "When undeclared properties in the schema are present", "A given scope cannot be reached." ], "type": "string" }, "data": { - "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", + "description": "[Output Only] Metadata about this warning in key:\nvalue format. For example:\n\n\"data\": [\n {\n \"key\": \"scope\",\n \"value\": \"zones/us-east1-d\"\n }", "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).", + "description": "[Output Only] A key that provides more detail on the warning being\nreturned. For example, for warnings where there are no results in a list\nrequest for a particular zone, this key might be scope and\nthe key value might be the zone name. Other examples might be a key\nindicating a deprecated resource and a suggested replacement, or a\nwarning about invalid network settings (for example, if an instance\nattempts to perform IP forwarding but is not enabled for IP forwarding).", "type": "string" }, "value": { @@ -77389,190 +104900,204 @@ }, "type": "object" }, - "SubnetworksSetPrivateIpGoogleAccessRequest": { - "id": "SubnetworksSetPrivateIpGoogleAccessRequest", - "properties": { - "privateIpGoogleAccess": { - "type": "boolean" - } - }, - "type": "object" - }, - "Subsetting": { - "description": "Subsetting configuration for this BackendService. Currently this is applicable only for Internal TCP/UDP load balancing, Internal HTTP(S) load balancing and Traffic Director.", - "id": "Subsetting", + "TargetHttpsProxiesSetCertificateMapRequest": { + "id": "TargetHttpsProxiesSetCertificateMapRequest", "properties": { - "policy": { - "enum": [ - "CONSISTENT_HASH_SUBSETTING", - "NONE" - ], - "enumDescriptions": [ - "Subsetting based on consistent hashing. For Traffic Director, the number of backends per backend group (the subset size) is based on the `subset_size` parameter. For Internal HTTP(S) load balancing, the number of backends per backend group (the subset size) is dynamically adjusted in two cases: - As the number of proxy instances participating in Internal HTTP(S) load balancing increases, the subset size decreases. - When the total number of backends in a network exceeds the capacity of a single proxy instance, subset sizes are reduced automatically for each service that has backend subsetting enabled.", - "No Subsetting. Clients may open connections and send traffic to all backends of this backend service. This can lead to performance issues if there is substantial imbalance in the count of clients and backends." - ], + "certificateMap": { + "description": "URL of the Certificate Map to associate with this TargetHttpsProxy.\n\n Accepted format is//certificatemanager.googleapis.com/projects/{project}/locations/{location}/certificateMaps/{resourceName}.", "type": "string" } }, "type": "object" }, - "TCPHealthCheck": { - "id": "TCPHealthCheck", + "TargetHttpsProxiesSetQuicOverrideRequest": { + "id": "TargetHttpsProxiesSetQuicOverrideRequest", "properties": { - "port": { - "description": "The TCP port number to which the health check prober sends packets. The default value is 80. Valid values are 1 through 65535.", - "format": "int32", - "type": "integer" - }, - "portName": { - "description": "Not supported.", - "type": "string" - }, - "portSpecification": { - "description": "Specifies how a port is selected for health checking. Can be one of the following values: USE_FIXED_PORT: Specifies a port number explicitly using the port field in the health check. Supported by backend services for passthrough load balancers and backend services for proxy load balancers. Not supported by target pools. The health check supports all backends supported by the backend service provided the backend can be health checked. For example, GCE_VM_IP network endpoint groups, GCE_VM_IP_PORT network endpoint groups, and instance group backends. USE_NAMED_PORT: Not supported. USE_SERVING_PORT: Provides an indirect method of specifying the health check port by referring to the backend service. Only supported by backend services for proxy load balancers. Not supported by target pools. Not supported by backend services for passthrough load balancers. Supports all backends that can be health checked; for example, GCE_VM_IP_PORT network endpoint groups and instance group backends. For GCE_VM_IP_PORT network endpoint group backends, the health check uses the port number specified for each endpoint in the network endpoint group. For instance group backends, the health check uses the port number determined by looking up the backend service's named port in the instance group's list of named ports.", - "enum": [ - "USE_FIXED_PORT", - "USE_NAMED_PORT", - "USE_SERVING_PORT" - ], - "enumDescriptions": [ - "The port number in the health check's port is used for health checking. Applies to network endpoint group and instance group backends.", - "Not supported.", - "For network endpoint group backends, the health check uses the port number specified on each endpoint in the network endpoint group. For instance group backends, the health check uses the port number specified for the backend service's named port defined in the instance group's named ports." - ], - "type": "string" - }, - "proxyHeader": { - "description": "Specifies the type of proxy header to append before sending data to the backend, either NONE or PROXY_V1. The default is NONE.", + "quicOverride": { + "description": "QUIC policy for the TargetHttpsProxy resource.", "enum": [ - "NONE", - "PROXY_V1" + "DISABLE", + "ENABLE", + "NONE" ], "enumDescriptions": [ - "", - "" + "The load balancer will not attempt to negotiate QUIC with clients.", + "The load balancer will attempt to negotiate QUIC with clients.", + "No overrides to the default QUIC policy. This option is implicit if\nno QUIC override has been specified in the request." ], "type": "string" - }, - "request": { - "description": "Instructs the health check prober to send this exact ASCII string, up to 1024 bytes in length, after establishing the TCP connection.", - "type": "string" - }, - "response": { - "description": "Creates a content-based TCP health check. In addition to establishing a TCP connection, you can configure the health check to pass only when the backend sends this exact response ASCII string, up to 1024 bytes in length. For details, see: https://cloud.google.com/load-balancing/docs/health-check-concepts#criteria-protocol-ssl-tcp", - "type": "string" } }, "type": "object" }, - "Tags": { - "description": "A set of instance tags.", - "id": "Tags", + "TargetHttpsProxiesSetSslCertificatesRequest": { + "id": "TargetHttpsProxiesSetSslCertificatesRequest", "properties": { - "fingerprint": { - "description": "Specifies a fingerprint for this request, which is essentially a hash of the tags' contents and used for optimistic locking. The fingerprint is initially generated by Compute Engine and changes after every request to modify or update tags. You must always provide an up-to-date fingerprint hash in order to update or change tags. To see the latest fingerprint, make get() request to the instance.", - "format": "byte", - "type": "string" - }, - "items": { - "description": "An array of tags. Each tag must be 1-63 characters long, and comply with RFC1035.", + "sslCertificates": { + "description": "New set of SslCertificate resources to associate\nwith this TargetHttpsProxy resource. At least one SSL\ncertificate must be specified. Currently, you may specify up to 15 SSL\ncertificates.", "items": { "type": "string" }, - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", "type": "array" } }, "type": "object" }, - "TargetGrpcProxy": { - "description": "Represents a Target gRPC Proxy resource. A target gRPC proxy is a component of load balancers intended for load balancing gRPC traffic. Only global forwarding rules with load balancing scheme INTERNAL_SELF_MANAGED can reference a target gRPC proxy. The target gRPC Proxy references a URL map that specifies how traffic is routed to gRPC backend services.", - "id": "TargetGrpcProxy", + "TargetHttpsProxy": { + "description": "Represents a Target HTTPS Proxy resource.\n\nGoogle Compute Engine has two Target HTTPS Proxy resources:\n\n* [Global](/compute/docs/reference/rest/v1/targetHttpsProxies)\n* [Regional](/compute/docs/reference/rest/v1/regionTargetHttpsProxies)\n\nA target HTTPS proxy is a component of Google Cloud HTTPS load balancers.\n\n* targetHttpsProxies are used by global external Application Load Balancers,\n classic Application Load Balancers, cross-region internal Application Load\n Balancers, and Traffic Director.\n* regionTargetHttpsProxies are used by regional internal Application Load\n Balancers and regional external Application Load Balancers.\n\nForwarding rules reference a target HTTPS proxy, and the target proxy\nthen references a URL map. For more information, readUsing Target Proxies\nand \nForwarding rule concepts.", + "id": "TargetHttpsProxy", "properties": { + "authorizationPolicy": { + "description": "Optional. A URL referring to a networksecurity.AuthorizationPolicy resource\nthat describes how the proxy should authorize inbound traffic. If left\nblank, access will not be restricted by an authorization policy.\n\n Refer to the AuthorizationPolicy resource for additional\ndetails.\n\n authorizationPolicy only applies to a globalTargetHttpsProxy attached toglobalForwardingRules with theloadBalancingScheme set to INTERNAL_SELF_MANAGED.\n\n Note: This field currently has no impact.", + "type": "string" + }, + "certificateMap": { + "description": "URL of a certificate map that identifies a certificate map associated with\nthe given target proxy.\nThis field can only be set for Global external Application Load Balancer or\nClassic Application Load Balancer. For other products use Certificate\nManager Certificates instead.\n\nIf set, sslCertificates will be ignored.\n\n Accepted format is//certificatemanager.googleapis.com/projects/{project}/locations/{location}/certificateMaps/{resourceName}.", + "type": "string" + }, "creationTimestamp": { - "description": "[Output Only] Creation timestamp in RFC3339 text format.", + "description": "Output only. [Output Only] Creation timestamp inRFC3339\ntext format.", + "readOnly": true, "type": "string" }, "description": { - "description": "An optional description of this resource. Provide this property when you create the resource.", + "description": "An optional description of this resource. Provide this property when you\ncreate the resource.", "type": "string" }, "fingerprint": { - "description": "Fingerprint of this resource. A hash of the contents stored in this object. This field is used in optimistic locking. This field will be ignored when inserting a TargetGrpcProxy. An up-to-date fingerprint must be provided in order to patch/update the TargetGrpcProxy; otherwise, the request will fail with error 412 conditionNotMet. To see the latest fingerprint, make a get() request to retrieve the TargetGrpcProxy.", + "description": "Fingerprint of this resource. A hash of the contents stored in this object.\nThis field is used in optimistic locking. This field will be ignored when\ninserting a TargetHttpsProxy. An up-to-date fingerprint must\nbe provided in order to patch the TargetHttpsProxy; otherwise, the request\nwill fail with error 412 conditionNotMet. To see the latest\nfingerprint, make a get() request to retrieve the\nTargetHttpsProxy.", "format": "byte", "type": "string" }, + "httpKeepAliveTimeoutSec": { + "description": "Specifies how long to keep a connection open, after completing a response,\nwhile there is no matching traffic (in seconds). If an HTTP keep-alive is\nnot specified, a default value (610 seconds) will be used.\n\nFor global external Application Load Balancers, the minimum allowed value\nis 5 seconds and the maximum allowed value is 1200 seconds.\n\nFor classic Application Load Balancers, this option is not supported.", + "format": "int32", + "type": "integer" + }, "id": { - "description": "[Output Only] The unique identifier for the resource type. The server generates this identifier.", + "description": "[Output Only] The unique identifier for the resource. This identifier is\ndefined by the server.", "format": "uint64", "type": "string" }, "kind": { - "default": "compute#targetGrpcProxy", - "description": "[Output Only] Type of the resource. Always compute#targetGrpcProxy for target grpc proxies.", + "default": "compute#targetHttpsProxy", + "description": "Output only. [Output Only] Type of resource. Alwayscompute#targetHttpsProxy for target HTTPS proxies.", + "readOnly": true, "type": "string" }, "name": { - "annotations": { - "required": [ - "compute.targetGrpcProxies.insert" - ] - }, - "description": "Name of the resource. Provided by the client when the resource is created. The name must be 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters long and match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash.", + "description": "Name of the resource. Provided by the client when the resource is created.\nThe name must be 1-63 characters long, and comply withRFC1035.\nSpecifically, the name must be 1-63 characters long and match the regular\nexpression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first\ncharacter must be a lowercase letter, and all following characters must\nbe a dash, lowercase letter, or digit, except the last character, which\ncannot be a dash.", "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", "type": "string" }, + "proxyBind": { + "description": "This field only applies when the forwarding rule that references this\ntarget proxy has a loadBalancingScheme set toINTERNAL_SELF_MANAGED.\n\nWhen this field is set to true, Envoy proxies set up inbound\ntraffic interception and bind to the IP address and port specified in the\nforwarding rule. This is generally useful when using Traffic Director to\nconfigure Envoy as a gateway or middle proxy (in other words, not a\nsidecar proxy). The Envoy proxy listens for inbound requests and handles\nrequests when it receives them.\n\nThe default is false.", + "type": "boolean" + }, + "quicOverride": { + "description": "Specifies the QUIC override policy for this TargetHttpsProxy resource. This\nsetting determines whether the load balancer attempts to negotiate QUIC\nwith clients.\nYou can specify NONE, ENABLE, orDISABLE.\n \n - When quic-override is set to NONE,\n Google manages whether QUIC is used.\n - When quic-override is set to ENABLE, the\n load balancer uses QUIC when possible.\n - When quic-override is set to DISABLE, the\n load balancer doesn't use QUIC.\n - If the quic-override flag is not specified,NONE is implied.", + "enum": [ + "DISABLE", + "ENABLE", + "NONE" + ], + "enumDescriptions": [ + "The load balancer will not attempt to negotiate QUIC with clients.", + "The load balancer will attempt to negotiate QUIC with clients.", + "No overrides to the default QUIC policy. This option is implicit if\nno QUIC override has been specified in the request." + ], + "type": "string" + }, + "region": { + "description": "Output only. [Output Only] URL of the region where the regional TargetHttpsProxy\nresides. This field is not applicable to global TargetHttpsProxies.", + "readOnly": true, + "type": "string" + }, "selfLink": { "description": "[Output Only] Server-defined URL for the resource.", "type": "string" }, - "selfLinkWithId": { - "description": "[Output Only] Server-defined URL with id for the resource.", + "serverTlsPolicy": { + "description": "Optional. A URL referring to a networksecurity.ServerTlsPolicy resource\nthat describes how the proxy should authenticate inbound traffic.\n\n serverTlsPolicy only applies to a globalTargetHttpsProxy attached toglobalForwardingRules with theloadBalancingScheme set to INTERNAL_SELF_MANAGED\nor EXTERNAL orEXTERNAL_MANAGED or INTERNAL_MANAGED.\nIt also applies to a regional TargetHttpsProxy attached to\nregional forwardingRules with theloadBalancingScheme set to EXTERNAL_MANAGED orINTERNAL_MANAGED. For details whichServerTlsPolicy resources are accepted withINTERNAL_SELF_MANAGED and which with EXTERNAL,INTERNAL_MANAGED, EXTERNAL_MANAGEDloadBalancingScheme consult ServerTlsPolicy\ndocumentation.\n\n If left blank, communications are not encrypted.", "type": "string" }, - "urlMap": { - "description": "URL to the UrlMap resource that defines the mapping from URL to the BackendService. The protocol field in the BackendService must be set to GRPC.", + "sslCertificates": { + "description": "URLs to SslCertificate resources that are used to authenticate\nconnections between users and the load balancer. At least one SSL\ncertificate must be specified. SslCertificates do not apply when the load\nbalancing scheme is set to INTERNAL_SELF_MANAGED.\n\nThe URLs should refer to a SSL Certificate resource or Certificate Manager\nCertificate resource. Mixing Classic Certificates and Certificate Manager\nCertificates is not allowed. Certificate Manager Certificates must include\nthe certificatemanager API namespace. Using Certificate Manager\nCertificates in this field is not supported by Global external Application\nLoad Balancer or Classic Application Load Balancer, use certificate_map\ninstead.\n\nCurrently, you may specify up to 15 Classic SSL Certificates or up to 100\nCertificate Manager Certificates.\n\nCertificate Manager Certificates accepted formats are:\n \n - //certificatemanager.googleapis.com/projects/{project}/locations/{location}/certificates/{resourceName}.\n - https://certificatemanager.googleapis.com/v1alpha1/projects/{project}/locations/{location}/certificates/{resourceName}.", + "items": { + "type": "string" + }, + "type": "array" + }, + "sslPolicy": { + "description": "URL of SslPolicy resource that will be associated with the TargetHttpsProxy\nresource. If not set, the TargetHttpsProxy resource has no\nSSL policy configured.", "type": "string" }, - "validateForProxyless": { - "description": "If true, indicates that the BackendServices referenced by the urlMap may be accessed by gRPC applications without using a sidecar proxy. This will enable configuration checks on urlMap and its referenced BackendServices to not allow unsupported features. A gRPC application must use \"xds:///\" scheme in the target URI of the service it is connecting to. If false, indicates that the BackendServices referenced by the urlMap will be accessed by gRPC applications via a sidecar proxy. In this case, a gRPC application must not use \"xds:///\" scheme in the target URI of the service it is connecting to", - "type": "boolean" + "tlsEarlyData": { + "description": "Specifies whether TLS 1.3 0-RTT Data (\"Early Data\") should be accepted\nfor this service. Early Data allows a TLS resumption handshake to include\nthe initial application payload (a HTTP request) alongside the handshake,\nreducing the effective round trips to \"zero\". This applies to TLS 1.3\nconnections over TCP (HTTP/2) as well as over UDP (QUIC/h3).\n\n\nThis can improve application performance, especially on networks where\ninterruptions may be common, such as on mobile.\n\n\nRequests with Early Data will have the \"Early-Data\" HTTP header set on\nthe request, with a value of \"1\", to allow the backend to determine whether\nEarly Data was included.\n\n\nNote: TLS Early Data may allow requests to be replayed, as the data is\nsent to the backend before the handshake has fully completed. Applications\nthat allow idempotent HTTP methods to make non-idempotent changes, such as\na GET request updating a database, should not accept Early Data on those\nrequests, and reject requests with the \"Early-Data: 1\" HTTP header by\nreturning a HTTP 425 (Too Early) status code, in order to remain RFC\ncompliant.\n\n\nThe default value is DISABLED.", + "enum": [ + "DISABLED", + "PERMISSIVE", + "STRICT", + "UNRESTRICTED" + ], + "enumDescriptions": [ + "TLS 1.3 Early Data is not advertised, and any (invalid) attempts to send\nEarly Data will be rejected by closing the connection.", + "This enables TLS 1.3 0-RTT, and only allows Early Data to be included on\nrequests with safe HTTP methods (GET, HEAD, OPTIONS, TRACE). This mode\ndoes not enforce any other limitations for requests with Early Data. The\napplication owner should validate that Early Data is acceptable for a\ngiven request path.", + "This enables TLS 1.3 0-RTT, and only allows Early Data to be included on\nrequests with safe HTTP methods (GET, HEAD, OPTIONS, TRACE) without query\nparameters. Requests that send Early Data with non-idempotent HTTP\nmethods or with query parameters will be rejected with a HTTP 425.", + "This enables TLS 1.3 Early Data for requests with any HTTP method\nincluding non-idempotent methods list POST. This mode does not enforce\nany other limitations. This may be valuable for gRPC use cases. However,\nwe do not recommend this method unless you have evaluated your security\nstance and mitigated the risk of replay attacks using other mechanisms." + ], + "type": "string" + }, + "urlMap": { + "description": "A fully-qualified or valid partial URL to the UrlMap resource that defines\nthe mapping from URL to the BackendService. For example, the following are\nall valid URLs for specifying a URL map:\n \n - https://www.googleapis.compute/v1/projects/project/global/urlMaps/url-map \n - projects/project/global/urlMaps/url-map \n - global/urlMaps/url-map", + "type": "string" } }, "type": "object" }, - "TargetGrpcProxyList": { - "id": "TargetGrpcProxyList", + "TargetHttpsProxyAggregatedList": { + "id": "TargetHttpsProxyAggregatedList", "properties": { "id": { "description": "[Output Only] Unique identifier for the resource; defined by the server.", "type": "string" }, "items": { - "description": "A list of TargetGrpcProxy resources.", - "items": { - "$ref": "TargetGrpcProxy" + "additionalProperties": { + "$ref": "TargetHttpsProxiesScopedList", + "description": "Name of the scope containing this set of TargetHttpsProxies." }, - "type": "array" + "description": "A list of TargetHttpsProxiesScopedList resources.", + "type": "object" }, "kind": { - "default": "compute#targetGrpcProxyList", - "description": "[Output Only] Type of the resource. Always compute#targetGrpcProxy for target grpc proxies.", + "default": "compute#targetHttpsProxyAggregatedList", + "description": "Output only. [Output Only] Type of resource. Alwayscompute#targetHttpsProxyAggregatedList for lists of Target\nHTTP Proxies.", + "readOnly": true, "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.", + "description": "[Output Only] This token allows you to get the next page of results for\nlist requests. If the number of results is larger thanmaxResults, use the nextPageToken as a value for\nthe query parameter pageToken in the next list request.\nSubsequent list requests will have their own nextPageToken to\ncontinue paging through the results.", "type": "string" }, "selfLink": { - "description": "[Output Only] Server-defined URL for this resource.", + "description": "Output only. [Output Only] Server-defined URL for this resource.", + "readOnly": true, "type": "string" }, + "unreachables": { + "description": "Output only. [Output Only] Unreachable resources.", + "items": { + "type": "string" + }, + "readOnly": true, + "type": "array" + }, "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.", + "description": "[Output Only] A warning code, if applicable. For example, Compute\nEngine returns NO_RESULTS_ON_PAGE if there\nare no results in the response.", "enum": [ "CLEANUP_FAILED", "DEPRECATED_RESOURCE_USED", @@ -77595,6 +105120,7 @@ "NOT_CRITICAL_ERROR", "NO_RESULTS_ON_PAGE", "PARTIAL_SUCCESS", + "QUOTA_INFO_UNAVAILABLE", "REQUIRED_TOS_AGREEMENT", "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", "RESOURCE_NOT_DELETED", @@ -77631,46 +105157,48 @@ false, false, false, + false, false ], "enumDescriptions": [ - "Warning about failed cleanup of transient changes made by a failed operation.", + "Warning about failed cleanup of transient changes made by a failed\noperation.", "A link to a deprecated resource was created.", - "When deploying and at least one of the resources has a type marked as deprecated", + "When deploying and at least one of the resources has a type marked as\ndeprecated", "The user created a boot disk that is larger than image size.", - "When deploying and at least one of the resources has a type marked as experimental", + "When deploying and at least one of the resources has a type marked as\nexperimental", "Warning that is present in an external api call", - "Warning that value of a field has been overridden. Deprecated unused field.", + "Warning that value of a field has been overridden.\nDeprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", - "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is\nnot of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", - "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", + "Resource can't be retrieved due to list overhead quota exceed\nwhich captures the amount of resources filtered out by\nuser-defined list filter.", "A resource depends on a missing type", - "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's nextHopIp address is not assigned to an instance on the\nnetwork.", "The route's next hop instance cannot ip forward.", - "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not have an\nipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", - "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that is not on the\nsame network as the route.", "The route's next hop instance does not have a status of RUNNING.", - "Error which is not critical. We decided to continue the process despite the mentioned error.", + "Error which is not critical. We decided to continue the process despite\nthe mentioned error.", "No results are present on a particular list page.", "Success is reported, but some results may be missing due to errors", - "The user attempted to use a resource that requires a TOS they have not accepted.", + "Quota information is not available to client requests (e.g:\nregions.list).", + "The user attempted to use a resource that requires a TOS they have not\naccepted.", "Warning that a resource is in use.", - "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "One or more of the resources set to auto-delete could not be deleted\nbecause they were in use.", "When a resource schema validation is ignored.", - "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", + "Instance template used in instance group manager is valid as such, but\nits application does not make a lot of sense, because it allows only\nsingle instance in instance group.", "When undeclared properties in the schema are present", "A given scope cannot be reached." ], "type": "string" }, "data": { - "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", + "description": "[Output Only] Metadata about this warning in key:\nvalue format. For example:\n\n\"data\": [\n {\n \"key\": \"scope\",\n \"value\": \"zones/us-east1-d\"\n }", "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).", + "description": "[Output Only] A key that provides more detail on the warning being\nreturned. For example, for warnings where there are no results in a list\nrequest for a particular zone, this key might be scope and\nthe key value might be the zone name. Other examples might be a key\nindicating a deprecated resource and a suggested replacement, or a\nwarning about invalid network settings (for example, if an instance\nattempts to perform IP forwarding but is not enabled for IP forwarding).", "type": "string" }, "value": { @@ -77692,21 +105220,41 @@ }, "type": "object" }, - "TargetHttpProxiesScopedList": { - "id": "TargetHttpProxiesScopedList", + "TargetHttpsProxyList": { + "description": "Contains a list of TargetHttpsProxy resources.", + "id": "TargetHttpsProxyList", "properties": { - "targetHttpProxies": { - "description": "A list of TargetHttpProxies contained in this scope.", + "id": { + "description": "[Output Only] Unique identifier for the resource; defined by the server.", + "type": "string" + }, + "items": { + "description": "A list of TargetHttpsProxy resources.", "items": { - "$ref": "TargetHttpProxy" + "$ref": "TargetHttpsProxy" }, "type": "array" }, + "kind": { + "default": "compute#targetHttpsProxyList", + "description": "Output only. Type of resource. Always compute#targetHttpsProxyList for\nlists of target HTTPS proxies.", + "readOnly": true, + "type": "string" + }, + "nextPageToken": { + "description": "[Output Only] This token allows you to get the next page of results for\nlist requests. If the number of results is larger thanmaxResults, use the nextPageToken as a value for\nthe query parameter pageToken in the next list request.\nSubsequent list requests will have their own nextPageToken to\ncontinue paging through the results.", + "type": "string" + }, + "selfLink": { + "description": "Output only. [Output Only] Server-defined URL for this resource.", + "readOnly": true, + "type": "string" + }, "warning": { - "description": "Informational warning which replaces the list of backend services when the list is empty.", + "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.", + "description": "[Output Only] A warning code, if applicable. For example, Compute\nEngine returns NO_RESULTS_ON_PAGE if there\nare no results in the response.", "enum": [ "CLEANUP_FAILED", "DEPRECATED_RESOURCE_USED", @@ -77729,6 +105277,7 @@ "NOT_CRITICAL_ERROR", "NO_RESULTS_ON_PAGE", "PARTIAL_SUCCESS", + "QUOTA_INFO_UNAVAILABLE", "REQUIRED_TOS_AGREEMENT", "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", "RESOURCE_NOT_DELETED", @@ -77765,46 +105314,48 @@ false, false, false, + false, false ], "enumDescriptions": [ - "Warning about failed cleanup of transient changes made by a failed operation.", + "Warning about failed cleanup of transient changes made by a failed\noperation.", "A link to a deprecated resource was created.", - "When deploying and at least one of the resources has a type marked as deprecated", + "When deploying and at least one of the resources has a type marked as\ndeprecated", "The user created a boot disk that is larger than image size.", - "When deploying and at least one of the resources has a type marked as experimental", + "When deploying and at least one of the resources has a type marked as\nexperimental", "Warning that is present in an external api call", - "Warning that value of a field has been overridden. Deprecated unused field.", + "Warning that value of a field has been overridden.\nDeprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", - "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is\nnot of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", - "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", + "Resource can't be retrieved due to list overhead quota exceed\nwhich captures the amount of resources filtered out by\nuser-defined list filter.", "A resource depends on a missing type", - "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's nextHopIp address is not assigned to an instance on the\nnetwork.", "The route's next hop instance cannot ip forward.", - "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not have an\nipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", - "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that is not on the\nsame network as the route.", "The route's next hop instance does not have a status of RUNNING.", - "Error which is not critical. We decided to continue the process despite the mentioned error.", + "Error which is not critical. We decided to continue the process despite\nthe mentioned error.", "No results are present on a particular list page.", "Success is reported, but some results may be missing due to errors", - "The user attempted to use a resource that requires a TOS they have not accepted.", + "Quota information is not available to client requests (e.g:\nregions.list).", + "The user attempted to use a resource that requires a TOS they have not\naccepted.", "Warning that a resource is in use.", - "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "One or more of the resources set to auto-delete could not be deleted\nbecause they were in use.", "When a resource schema validation is ignored.", - "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", + "Instance template used in instance group manager is valid as such, but\nits application does not make a lot of sense, because it allows only\nsingle instance in instance group.", "When undeclared properties in the schema are present", "A given scope cannot be reached." ], "type": "string" }, "data": { - "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", + "description": "[Output Only] Metadata about this warning in key:\nvalue format. For example:\n\n\"data\": [\n {\n \"key\": \"scope\",\n \"value\": \"zones/us-east1-d\"\n }", "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).", + "description": "[Output Only] A key that provides more detail on the warning being\nreturned. For example, for warnings where there are no results in a list\nrequest for a particular zone, this key might be scope and\nthe key value might be the zone name. Other examples might be a key\nindicating a deprecated resource and a suggested replacement, or a\nwarning about invalid network settings (for example, if an instance\nattempts to perform IP forwarding but is not enabled for IP forwarding).", "type": "string" }, "value": { @@ -77826,64 +105377,71 @@ }, "type": "object" }, - "TargetHttpProxy": { - "description": "Represents a Target HTTP Proxy resource. Google Compute Engine has two Target HTTP Proxy resources: * [Global](/compute/docs/reference/rest/v1/targetHttpProxies) * [Regional](/compute/docs/reference/rest/v1/regionTargetHttpProxies) A target HTTP proxy is a component of Google Cloud HTTP load balancers. * targetHttpProxies are used by global external Application Load Balancers, classic Application Load Balancers, cross-region internal Application Load Balancers, and Traffic Director. * regionTargetHttpProxies are used by regional internal Application Load Balancers and regional external Application Load Balancers. Forwarding rules reference a target HTTP proxy, and the target proxy then references a URL map. For more information, read Using Target Proxies and Forwarding rule concepts.", - "id": "TargetHttpProxy", + "TargetInstance": { + "description": "Represents a Target Instance resource.\n\nYou can use a target instance to handle traffic for one or more forwarding\nrules, which is ideal for forwarding protocol traffic that is managed by a\nsingle source. For example, ESP, AH, TCP, or UDP.\nFor more information, readTarget\ninstances.", + "id": "TargetInstance", "properties": { "creationTimestamp": { - "description": "[Output Only] Creation timestamp in RFC3339 text format.", + "description": "Output only. [Output Only] Creation timestamp inRFC3339\ntext format.", + "readOnly": true, "type": "string" }, "description": { - "description": "An optional description of this resource. Provide this property when you create the resource.", - "type": "string" - }, - "fingerprint": { - "description": "Fingerprint of this resource. A hash of the contents stored in this object. This field is used in optimistic locking. This field will be ignored when inserting a TargetHttpProxy. An up-to-date fingerprint must be provided in order to patch/update the TargetHttpProxy; otherwise, the request will fail with error 412 conditionNotMet. To see the latest fingerprint, make a get() request to retrieve the TargetHttpProxy.", - "format": "byte", + "description": "An optional description of this resource. Provide this property when you\ncreate the resource.", "type": "string" }, - "httpKeepAliveTimeoutSec": { - "description": "Specifies how long to keep a connection open, after completing a response, while there is no matching traffic (in seconds). If an HTTP keep-alive is not specified, a default value (610 seconds) will be used. For global external Application Load Balancers, the minimum allowed value is 5 seconds and the maximum allowed value is 1200 seconds. For classic Application Load Balancers, this option is not supported.", - "format": "int32", - "type": "integer" - }, "id": { - "description": "[Output Only] The unique identifier for the resource. This identifier is defined by the server.", + "description": "[Output Only] The unique identifier for the resource. This identifier is\ndefined by the server.", "format": "uint64", "type": "string" }, + "instance": { + "description": "A URL to the virtual machine instance that handles traffic for this target\ninstance. When creating a target instance, you can provide the\nfully-qualified URL or a valid partial URL to the desired virtual machine.\nFor example, the following are all valid URLs:\n \n - https://www.googleapis.com/compute/v1/projects/project/zones/zone/instances/instance \n - projects/project/zones/zone/instances/instance \n - zones/zone/instances/instance", + "type": "string" + }, "kind": { - "default": "compute#targetHttpProxy", - "description": "[Output Only] Type of resource. Always compute#targetHttpProxy for target HTTP proxies.", + "default": "compute#targetInstance", + "description": "Output only. [Output Only] The type of the resource. Alwayscompute#targetInstance for target instances.", + "readOnly": true, "type": "string" }, "name": { - "description": "Name of the resource. Provided by the client when the resource is created. The name must be 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters long and match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash.", + "description": "Name of the resource. Provided by the client when the resource is created.\nThe name must be 1-63 characters long, and comply withRFC1035.\nSpecifically, the name must be 1-63 characters long and match the regular\nexpression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first\ncharacter must be a lowercase letter, and all following characters must\nbe a dash, lowercase letter, or digit, except the last character, which\ncannot be a dash.", "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", "type": "string" }, - "proxyBind": { - "description": "This field only applies when the forwarding rule that references this target proxy has a loadBalancingScheme set to INTERNAL_SELF_MANAGED. When this field is set to true, Envoy proxies set up inbound traffic interception and bind to the IP address and port specified in the forwarding rule. This is generally useful when using Traffic Director to configure Envoy as a gateway or middle proxy (in other words, not a sidecar proxy). The Envoy proxy listens for inbound requests and handles requests when it receives them. The default is false.", - "type": "boolean" + "natPolicy": { + "description": "Must have a value of NO_NAT.\nProtocol forwarding delivers packets while preserving the destination IP\naddress of the forwarding rule referencing the target instance.", + "enum": [ + "NO_NAT" + ], + "enumDescriptions": [ + "No NAT performed." + ], + "type": "string" }, - "region": { - "description": "[Output Only] URL of the region where the regional Target HTTP Proxy resides. This field is not applicable to global Target HTTP Proxies.", + "network": { + "description": "The URL of the network this target instance uses to forward traffic.\nIf not specified, the traffic will be forwarded to the network that\nthe default network interface belongs to.", + "type": "string" + }, + "securityPolicy": { + "description": "[Output Only] The resource URL for the security policy associated with this\ntarget instance.", "type": "string" }, "selfLink": { "description": "[Output Only] Server-defined URL for the resource.", "type": "string" }, - "urlMap": { - "description": "URL to the UrlMap resource that defines the mapping from URL to the BackendService.", + "zone": { + "description": "Output only. [Output Only] URL of the zone where the target instance resides.\nYou must specify this field as part of the HTTP request URL. It is\nnot settable as a field in the request body.", + "readOnly": true, "type": "string" } }, "type": "object" }, - "TargetHttpProxyAggregatedList": { - "id": "TargetHttpProxyAggregatedList", + "TargetInstanceAggregatedList": { + "id": "TargetInstanceAggregatedList", "properties": { "id": { "description": "[Output Only] Unique identifier for the resource; defined by the server.", @@ -77891,68 +105449,197 @@ }, "items": { "additionalProperties": { - "$ref": "TargetHttpProxiesScopedList", - "description": "Name of the scope containing this set of TargetHttpProxies." + "$ref": "TargetInstancesScopedList", + "description": "Name of the scope containing this set of target instances." }, - "description": "A list of TargetHttpProxiesScopedList resources.", + "description": "A list of TargetInstance resources.", "type": "object" }, "kind": { - "default": "compute#targetHttpProxyAggregatedList", - "description": "[Output Only] Type of resource. Always compute#targetHttpProxyAggregatedList for lists of Target HTTP Proxies.", + "default": "compute#targetInstanceAggregatedList", + "description": "Output only. Type of resource.", + "readOnly": true, "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.", + "description": "[Output Only] This token allows you to get the next page of results for\nlist requests. If the number of results is larger thanmaxResults, use the nextPageToken as a value for\nthe query parameter pageToken in the next list request.\nSubsequent list requests will have their own nextPageToken to\ncontinue paging through the results.", "type": "string" }, "selfLink": { - "description": "[Output Only] Server-defined URL for this resource.", + "description": "Output only. [Output Only] Server-defined URL for this resource.", + "readOnly": true, "type": "string" }, "unreachables": { - "description": "[Output Only] Unreachable resources.", + "description": "Output only. [Output Only] Unreachable resources.", "items": { "type": "string" }, + "readOnly": true, "type": "array" + }, + "warning": { + "description": "[Output Only] Informational warning message.", + "properties": { + "code": { + "description": "[Output Only] A warning code, if applicable. For example, Compute\nEngine returns NO_RESULTS_ON_PAGE if there\nare 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", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", + "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "PARTIAL_SUCCESS", + "QUOTA_INFO_UNAVAILABLE", + "REQUIRED_TOS_AGREEMENT", + "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", + "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", + "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", + "UNREACHABLE" + ], + "enumDeprecated": [ + false, + false, + false, + false, + false, + false, + true, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false + ], + "enumDescriptions": [ + "Warning about failed cleanup of transient changes made by a failed\noperation.", + "A link to a deprecated resource was created.", + "When deploying and at least one of the resources has a type marked as\ndeprecated", + "The user created a boot disk that is larger than image size.", + "When deploying and at least one of the resources has a type marked as\nexperimental", + "Warning that is present in an external api call", + "Warning that value of a field has been overridden.\nDeprecated unused field.", + "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is\nnot of type HTTP/HTTPS/HTTP2.", + "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed\nwhich captures the amount of resources filtered out by\nuser-defined list filter.", + "A resource depends on a missing type", + "The route's nextHopIp address is not assigned to an instance on the\nnetwork.", + "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an\nipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not exist.", + "The route's nextHopInstance URL refers to an instance that is not on the\nsame network as the route.", + "The route's next hop instance does not have a status of RUNNING.", + "Error which is not critical. We decided to continue the process despite\nthe mentioned error.", + "No results are present on a particular list page.", + "Success is reported, but some results may be missing due to errors", + "Quota information is not available to client requests (e.g:\nregions.list).", + "The user attempted to use a resource that requires a TOS they have not\naccepted.", + "Warning that a resource is in use.", + "One or more of the resources set to auto-delete could not be deleted\nbecause they were in use.", + "When a resource schema validation is ignored.", + "Instance template used in instance group manager is valid as such, but\nits application does not make a lot of sense, because it allows only\nsingle instance in instance group.", + "When undeclared properties in the schema are present", + "A given scope cannot be reached." + ], + "type": "string" + }, + "data": { + "description": "[Output Only] Metadata about this warning in key:\nvalue format. For example:\n\n\"data\": [\n {\n \"key\": \"scope\",\n \"value\": \"zones/us-east1-d\"\n }", + "items": { + "properties": { + "key": { + "description": "[Output Only] A key that provides more detail on the warning being\nreturned. For example, for warnings where there are no results in a list\nrequest for a particular zone, this key might be scope and\nthe key value might be the zone name. Other examples might be a key\nindicating a deprecated resource and a suggested replacement, or a\nwarning about invalid network settings (for example, if an instance\nattempts 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" }, - "TargetHttpProxyList": { - "description": "A list of TargetHttpProxy resources.", - "id": "TargetHttpProxyList", + "TargetInstanceList": { + "description": "Contains a list of TargetInstance resources.", + "id": "TargetInstanceList", "properties": { "id": { "description": "[Output Only] Unique identifier for the resource; defined by the server.", "type": "string" }, "items": { - "description": "A list of TargetHttpProxy resources.", + "description": "A list of TargetInstance resources.", "items": { - "$ref": "TargetHttpProxy" + "$ref": "TargetInstance" }, "type": "array" }, "kind": { - "default": "compute#targetHttpProxyList", - "description": "Type of resource. Always compute#targetHttpProxyList for lists of target HTTP proxies.", + "default": "compute#targetInstanceList", + "description": "Output only. Type of resource.", + "readOnly": true, "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.", + "description": "[Output Only] This token allows you to get the next page of results for\nlist requests. If the number of results is larger thanmaxResults, use the nextPageToken as a value for\nthe query parameter pageToken in the next list request.\nSubsequent list requests will have their own nextPageToken to\ncontinue paging through the results.", "type": "string" }, "selfLink": { - "description": "[Output Only] Server-defined URL for this resource.", + "description": "Output only. [Output Only] Server-defined URL for this resource.", + "readOnly": true, "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.", + "description": "[Output Only] A warning code, if applicable. For example, Compute\nEngine returns NO_RESULTS_ON_PAGE if there\nare no results in the response.", "enum": [ "CLEANUP_FAILED", "DEPRECATED_RESOURCE_USED", @@ -77975,6 +105662,7 @@ "NOT_CRITICAL_ERROR", "NO_RESULTS_ON_PAGE", "PARTIAL_SUCCESS", + "QUOTA_INFO_UNAVAILABLE", "REQUIRED_TOS_AGREEMENT", "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", "RESOURCE_NOT_DELETED", @@ -78011,46 +105699,48 @@ false, false, false, + false, false ], "enumDescriptions": [ - "Warning about failed cleanup of transient changes made by a failed operation.", + "Warning about failed cleanup of transient changes made by a failed\noperation.", "A link to a deprecated resource was created.", - "When deploying and at least one of the resources has a type marked as deprecated", + "When deploying and at least one of the resources has a type marked as\ndeprecated", "The user created a boot disk that is larger than image size.", - "When deploying and at least one of the resources has a type marked as experimental", + "When deploying and at least one of the resources has a type marked as\nexperimental", "Warning that is present in an external api call", - "Warning that value of a field has been overridden. Deprecated unused field.", + "Warning that value of a field has been overridden.\nDeprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", - "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is\nnot of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", - "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", + "Resource can't be retrieved due to list overhead quota exceed\nwhich captures the amount of resources filtered out by\nuser-defined list filter.", "A resource depends on a missing type", - "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's nextHopIp address is not assigned to an instance on the\nnetwork.", "The route's next hop instance cannot ip forward.", - "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not have an\nipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", - "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that is not on the\nsame network as the route.", "The route's next hop instance does not have a status of RUNNING.", - "Error which is not critical. We decided to continue the process despite the mentioned error.", + "Error which is not critical. We decided to continue the process despite\nthe mentioned error.", "No results are present on a particular list page.", "Success is reported, but some results may be missing due to errors", - "The user attempted to use a resource that requires a TOS they have not accepted.", + "Quota information is not available to client requests (e.g:\nregions.list).", + "The user attempted to use a resource that requires a TOS they have not\naccepted.", "Warning that a resource is in use.", - "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "One or more of the resources set to auto-delete could not be deleted\nbecause they were in use.", "When a resource schema validation is ignored.", - "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", + "Instance template used in instance group manager is valid as such, but\nits application does not make a lot of sense, because it allows only\nsingle instance in instance group.", "When undeclared properties in the schema are present", "A given scope cannot be reached." ], "type": "string" }, "data": { - "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", + "description": "[Output Only] Metadata about this warning in key:\nvalue format. For example:\n\n\"data\": [\n {\n \"key\": \"scope\",\n \"value\": \"zones/us-east1-d\"\n }", "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).", + "description": "[Output Only] A key that provides more detail on the warning being\nreturned. For example, for warnings where there are no results in a list\nrequest for a particular zone, this key might be scope and\nthe key value might be the zone name. Other examples might be a key\nindicating a deprecated resource and a suggested replacement, or a\nwarning about invalid network settings (for example, if an instance\nattempts to perform IP forwarding but is not enabled for IP forwarding).", "type": "string" }, "value": { @@ -78072,21 +105762,21 @@ }, "type": "object" }, - "TargetHttpsProxiesScopedList": { - "id": "TargetHttpsProxiesScopedList", + "TargetInstancesScopedList": { + "id": "TargetInstancesScopedList", "properties": { - "targetHttpsProxies": { - "description": "A list of TargetHttpsProxies contained in this scope.", + "targetInstances": { + "description": "A list of target instances contained in this scope.", "items": { - "$ref": "TargetHttpsProxy" + "$ref": "TargetInstance" }, "type": "array" }, "warning": { - "description": "Informational warning which replaces the list of backend services when the list is empty.", + "description": "Informational warning which replaces the list of addresses when\nthe list is empty.", "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.", + "description": "[Output Only] A warning code, if applicable. For example, Compute\nEngine returns NO_RESULTS_ON_PAGE if there\nare no results in the response.", "enum": [ "CLEANUP_FAILED", "DEPRECATED_RESOURCE_USED", @@ -78109,6 +105799,7 @@ "NOT_CRITICAL_ERROR", "NO_RESULTS_ON_PAGE", "PARTIAL_SUCCESS", + "QUOTA_INFO_UNAVAILABLE", "REQUIRED_TOS_AGREEMENT", "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", "RESOURCE_NOT_DELETED", @@ -78145,46 +105836,48 @@ false, false, false, + false, false ], "enumDescriptions": [ - "Warning about failed cleanup of transient changes made by a failed operation.", + "Warning about failed cleanup of transient changes made by a failed\noperation.", "A link to a deprecated resource was created.", - "When deploying and at least one of the resources has a type marked as deprecated", + "When deploying and at least one of the resources has a type marked as\ndeprecated", "The user created a boot disk that is larger than image size.", - "When deploying and at least one of the resources has a type marked as experimental", + "When deploying and at least one of the resources has a type marked as\nexperimental", "Warning that is present in an external api call", - "Warning that value of a field has been overridden. Deprecated unused field.", + "Warning that value of a field has been overridden.\nDeprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", - "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is\nnot of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", - "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", + "Resource can't be retrieved due to list overhead quota exceed\nwhich captures the amount of resources filtered out by\nuser-defined list filter.", "A resource depends on a missing type", - "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's nextHopIp address is not assigned to an instance on the\nnetwork.", "The route's next hop instance cannot ip forward.", - "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not have an\nipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", - "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that is not on the\nsame network as the route.", "The route's next hop instance does not have a status of RUNNING.", - "Error which is not critical. We decided to continue the process despite the mentioned error.", + "Error which is not critical. We decided to continue the process despite\nthe mentioned error.", "No results are present on a particular list page.", "Success is reported, but some results may be missing due to errors", - "The user attempted to use a resource that requires a TOS they have not accepted.", + "Quota information is not available to client requests (e.g:\nregions.list).", + "The user attempted to use a resource that requires a TOS they have not\naccepted.", "Warning that a resource is in use.", - "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "One or more of the resources set to auto-delete could not be deleted\nbecause they were in use.", "When a resource schema validation is ignored.", - "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", + "Instance template used in instance group manager is valid as such, but\nits application does not make a lot of sense, because it allows only\nsingle instance in instance group.", "When undeclared properties in the schema are present", "A given scope cannot be reached." ], "type": "string" }, "data": { - "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", + "description": "[Output Only] Metadata about this warning in key:\nvalue format. For example:\n\n\"data\": [\n {\n \"key\": \"scope\",\n \"value\": \"zones/us-east1-d\"\n }", "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).", + "description": "[Output Only] A key that provides more detail on the warning being\nreturned. For example, for warnings where there are no results in a list\nrequest for a particular zone, this key might be scope and\nthe key value might be the zone name. Other examples might be a key\nindicating a deprecated resource and a suggested replacement, or a\nwarning about invalid network settings (for example, if an instance\nattempts to perform IP forwarding but is not enabled for IP forwarding).", "type": "string" }, "value": { @@ -78206,144 +105899,102 @@ }, "type": "object" }, - "TargetHttpsProxiesSetCertificateMapRequest": { - "id": "TargetHttpsProxiesSetCertificateMapRequest", - "properties": { - "certificateMap": { - "description": "URL of the Certificate Map to associate with this TargetHttpsProxy. Accepted format is //certificatemanager.googleapis.com/projects/{project }/locations/{location}/certificateMaps/{resourceName}.", - "type": "string" - } - }, - "type": "object" - }, - "TargetHttpsProxiesSetQuicOverrideRequest": { - "id": "TargetHttpsProxiesSetQuicOverrideRequest", - "properties": { - "quicOverride": { - "description": "QUIC policy for the TargetHttpsProxy resource.", - "enum": [ - "DISABLE", - "ENABLE", - "NONE" - ], - "enumDescriptions": [ - "The load balancer will not attempt to negotiate QUIC with clients.", - "The load balancer will attempt to negotiate QUIC with clients.", - "No overrides to the default QUIC policy. This option is implicit if no QUIC override has been specified in the request." - ], - "type": "string" - } - }, - "type": "object" - }, - "TargetHttpsProxiesSetSslCertificatesRequest": { - "id": "TargetHttpsProxiesSetSslCertificatesRequest", - "properties": { - "sslCertificates": { - "description": "New set of SslCertificate resources to associate with this TargetHttpsProxy resource. At least one SSL certificate must be specified. Currently, you may specify up to 15 SSL certificates.", - "items": { - "type": "string" - }, - "type": "array" - } - }, - "type": "object" - }, - "TargetHttpsProxy": { - "description": "Represents a Target HTTPS Proxy resource. Google Compute Engine has two Target HTTPS Proxy resources: * [Global](/compute/docs/reference/rest/v1/targetHttpsProxies) * [Regional](/compute/docs/reference/rest/v1/regionTargetHttpsProxies) A target HTTPS proxy is a component of GCP HTTPS load balancers. * targetHttpProxies are used by global external Application Load Balancers, classic Application Load Balancers, cross-region internal Application Load Balancers, and Traffic Director. * regionTargetHttpProxies are used by regional internal Application Load Balancers and regional external Application Load Balancers. Forwarding rules reference a target HTTPS proxy, and the target proxy then references a URL map. For more information, read Using Target Proxies and Forwarding rule concepts.", - "id": "TargetHttpsProxy", + "TargetPool": { + "description": "Represents a Target Pool resource.\n\nTarget pools are used with external passthrough Network Load Balancers.\nA target pool references member instances, an associated legacy\nHttpHealthCheck resource, and, optionally, a backup target pool.\nFor more information, readUsing target pools.", + "id": "TargetPool", "properties": { - "authorizationPolicy": { - "description": "Optional. A URL referring to a networksecurity.AuthorizationPolicy resource that describes how the proxy should authorize inbound traffic. If left blank, access will not be restricted by an authorization policy. Refer to the AuthorizationPolicy resource for additional details. authorizationPolicy only applies to a global TargetHttpsProxy attached to globalForwardingRules with the loadBalancingScheme set to INTERNAL_SELF_MANAGED. Note: This field currently has no impact.", - "type": "string" - }, - "certificateMap": { - "description": "URL of a certificate map that identifies a certificate map associated with the given target proxy. This field can only be set for global target proxies. If set, sslCertificates will be ignored. Accepted format is //certificatemanager.googleapis.com/projects/{project }/locations/{location}/certificateMaps/{resourceName}.", + "backupPool": { + "description": "The server-defined URL for the resource. This field is applicable only when\nthe containing target pool is serving a forwarding rule as the primary\npool, and its failoverRatio field is properly set to a value\nbetween [0, 1].backupPool and failoverRatio together define\nthe fallback behavior of the primary target pool: if the ratio of the\nhealthy instances in the primary pool is at or belowfailoverRatio, traffic arriving at the load-balanced\nIP will be directed to the backup pool.\n\nIn case where failoverRatio and backupPool\nare not set, or all the instances in the backup pool are unhealthy,\nthe traffic will be directed back to the primary pool in the \"force\"\nmode, where traffic will be spread to the healthy instances with the\nbest effort, or to all instances when no instance is healthy.", "type": "string" }, "creationTimestamp": { - "description": "[Output Only] Creation timestamp in RFC3339 text format.", + "description": "Output only. [Output Only] Creation timestamp inRFC3339\ntext format.", + "readOnly": true, "type": "string" }, "description": { - "description": "An optional description of this resource. Provide this property when you create the resource.", + "description": "An optional description of this resource. Provide this property when you\ncreate the resource.", "type": "string" }, - "fingerprint": { - "description": "Fingerprint of this resource. A hash of the contents stored in this object. This field is used in optimistic locking. This field will be ignored when inserting a TargetHttpsProxy. An up-to-date fingerprint must be provided in order to patch the TargetHttpsProxy; otherwise, the request will fail with error 412 conditionNotMet. To see the latest fingerprint, make a get() request to retrieve the TargetHttpsProxy.", - "format": "byte", - "type": "string" + "failoverRatio": { + "description": "This field is applicable only when the containing target pool is serving a\nforwarding rule as the primary pool (i.e., not as a backup pool to some\nother target pool). The value of the field must be in [0, 1].\n\nIf set, backupPool must also be set. They together define\nthe fallback behavior of the primary target pool: if the ratio of the\nhealthy instances in the primary pool is at or below this number,\ntraffic arriving at the load-balanced IP will be directed to the\nbackup pool.\n\nIn case where failoverRatio is not set or all the\ninstances in the backup pool are unhealthy, the traffic will be\ndirected back to the primary pool in the \"force\" mode, where traffic\nwill be spread to the healthy instances with the\nbest effort, or to all instances when no instance is healthy.", + "format": "float", + "type": "number" }, - "httpKeepAliveTimeoutSec": { - "description": "Specifies how long to keep a connection open, after completing a response, while there is no matching traffic (in seconds). If an HTTP keep-alive is not specified, a default value (610 seconds) will be used. For global external Application Load Balancers, the minimum allowed value is 5 seconds and the maximum allowed value is 1200 seconds. For classic Application Load Balancers, this option is not supported.", - "format": "int32", - "type": "integer" + "healthChecks": { + "description": "The URL of the HttpHealthCheck resource. A member instance in this\npool is considered healthy if and only if the health checks pass.\nOnly legacy HttpHealthChecks are supported. Only one health check may be\nspecified.", + "items": { + "type": "string" + }, + "type": "array" }, "id": { - "description": "[Output Only] The unique identifier for the resource. This identifier is defined by the server.", + "description": "[Output Only] The unique identifier for the resource. This identifier is\ndefined by the server.", "format": "uint64", "type": "string" }, + "instances": { + "description": "A list of resource URLs to the virtual machine instances serving this pool.\nThey must live in zones contained in the same region as this pool.", + "items": { + "type": "string" + }, + "type": "array" + }, "kind": { - "default": "compute#targetHttpsProxy", - "description": "[Output Only] Type of resource. Always compute#targetHttpsProxy for target HTTPS proxies.", + "default": "compute#targetPool", + "description": "Output only. [Output Only] Type of the resource. Always compute#targetPool\nfor target pools.", + "readOnly": true, "type": "string" }, "name": { - "description": "Name of the resource. Provided by the client when the resource is created. The name must be 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters long and match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash.", + "description": "Name of the resource. Provided by the client when the resource is created.\nThe name must be 1-63 characters long, and comply withRFC1035.\nSpecifically, the name must be 1-63 characters long and match the regular\nexpression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first\ncharacter must be a lowercase letter, and all following characters must\nbe a dash, lowercase letter, or digit, except the last character, which\ncannot be a dash.", "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", "type": "string" }, - "proxyBind": { - "description": "This field only applies when the forwarding rule that references this target proxy has a loadBalancingScheme set to INTERNAL_SELF_MANAGED. When this field is set to true, Envoy proxies set up inbound traffic interception and bind to the IP address and port specified in the forwarding rule. This is generally useful when using Traffic Director to configure Envoy as a gateway or middle proxy (in other words, not a sidecar proxy). The Envoy proxy listens for inbound requests and handles requests when it receives them. The default is false.", - "type": "boolean" - }, - "quicOverride": { - "description": "Specifies the QUIC override policy for this TargetHttpsProxy resource. This setting determines whether the load balancer attempts to negotiate QUIC with clients. You can specify NONE, ENABLE, or DISABLE. - When quic-override is set to NONE, Google manages whether QUIC is used. - When quic-override is set to ENABLE, the load balancer uses QUIC when possible. - When quic-override is set to DISABLE, the load balancer doesn't use QUIC. - If the quic-override flag is not specified, NONE is implied. ", - "enum": [ - "DISABLE", - "ENABLE", - "NONE" - ], - "enumDescriptions": [ - "The load balancer will not attempt to negotiate QUIC with clients.", - "The load balancer will attempt to negotiate QUIC with clients.", - "No overrides to the default QUIC policy. This option is implicit if no QUIC override has been specified in the request." - ], + "region": { + "description": "Output only. [Output Only] URL of the region where the target pool resides.", + "readOnly": true, "type": "string" }, - "region": { - "description": "[Output Only] URL of the region where the regional TargetHttpsProxy resides. This field is not applicable to global TargetHttpsProxies.", + "securityPolicy": { + "description": "[Output Only] The resource URL for the security policy associated with this\ntarget pool.", "type": "string" }, "selfLink": { "description": "[Output Only] Server-defined URL for the resource.", "type": "string" }, - "serverTlsPolicy": { - "description": "Optional. A URL referring to a networksecurity.ServerTlsPolicy resource that describes how the proxy should authenticate inbound traffic. serverTlsPolicy only applies to a global TargetHttpsProxy attached to globalForwardingRules with the loadBalancingScheme set to INTERNAL_SELF_MANAGED or EXTERNAL or EXTERNAL_MANAGED. For details which ServerTlsPolicy resources are accepted with INTERNAL_SELF_MANAGED and which with EXTERNAL, EXTERNAL_MANAGED loadBalancingScheme consult ServerTlsPolicy documentation. If left blank, communications are not encrypted.", - "type": "string" - }, - "sslCertificates": { - "description": "URLs to SslCertificate resources that are used to authenticate connections between users and the load balancer. At least one SSL certificate must be specified. Currently, you may specify up to 15 SSL certificates. sslCertificates do not apply when the load balancing scheme is set to INTERNAL_SELF_MANAGED.", - "items": { - "type": "string" - }, - "type": "array" - }, - "sslPolicy": { - "description": "URL of SslPolicy resource that will be associated with the TargetHttpsProxy resource. If not set, the TargetHttpsProxy resource has no SSL policy configured.", - "type": "string" - }, - "urlMap": { - "description": "A fully-qualified or valid partial URL to the UrlMap resource that defines the mapping from URL to the BackendService. For example, the following are all valid URLs for specifying a URL map: - https://www.googleapis.compute/v1/projects/project/global/urlMaps/ url-map - projects/project/global/urlMaps/url-map - global/urlMaps/url-map ", + "sessionAffinity": { + "description": "Session affinity option, must be one of the following values: \nNONE: Connections from the same client IP may go to any\n instance in the pool. \nCLIENT_IP: Connections from the same client IP will go\n to the same instance in\n the pool while that instance remains healthy. \nCLIENT_IP_PROTO: Connections from the same client IP\n with the same IP protocol will go to the same instance in the\n pool while that instance remains healthy.", + "enum": [ + "CLIENT_IP", + "CLIENT_IP_NO_DESTINATION", + "CLIENT_IP_PORT_PROTO", + "CLIENT_IP_PROTO", + "GENERATED_COOKIE", + "HEADER_FIELD", + "HTTP_COOKIE", + "NONE", + "STRONG_COOKIE_AFFINITY" + ], + "enumDescriptions": [ + "2-tuple hash on packet's source and destination IP addresses. Connections\nfrom the same source IP address to the same destination IP address will be\nserved by the same backend VM while that VM remains healthy.", + "1-tuple hash only on packet's source IP address. Connections from the\nsame source IP address will be served by the same backend VM while that VM\nremains healthy. This option can only be used for Internal TCP/UDP\nLoad Balancing.", + "5-tuple hash on packet's source and destination IP addresses, IP protocol,\nand source and destination ports. Connections for the same IP protocol\nfrom the same source IP address and port to the same destination IP address\nand port will be served by the same backend VM while that VM remains\nhealthy. This option cannot be used for HTTP(S) load balancing.", + "3-tuple hash on packet's source and destination IP addresses, and IP\nprotocol. Connections for the same IP protocol from the same source IP\naddress to the same destination IP address will be served by the same\nbackend VM while that VM remains healthy. This option cannot be used for\nHTTP(S) load balancing.", + "Hash based on a cookie generated by the L7 loadbalancer.\nOnly valid for HTTP(S) load balancing.", + "The hash is based on a user specified header field.", + "The hash is based on a user provided cookie.", + "No session affinity. Connections from the same client IP may go\nto any instance in the pool.", + "Strong cookie-based affinity. Connections bearing the same cookie will be\nserved by the same backend VM while that VM remains healthy, as long as the\ncookie has not expired." + ], "type": "string" } }, "type": "object" }, - "TargetHttpsProxyAggregatedList": { - "id": "TargetHttpsProxyAggregatedList", + "TargetPoolAggregatedList": { + "id": "TargetPoolAggregatedList", "properties": { "id": { "description": "[Output Only] Unique identifier for the resource; defined by the server.", @@ -78351,37 +106002,40 @@ }, "items": { "additionalProperties": { - "$ref": "TargetHttpsProxiesScopedList", - "description": "Name of the scope containing this set of TargetHttpsProxies." + "$ref": "TargetPoolsScopedList", + "description": "Name of the scope containing this set of target pools." }, - "description": "A list of TargetHttpsProxiesScopedList resources.", + "description": "A list of TargetPool resources.", "type": "object" }, "kind": { - "default": "compute#targetHttpsProxyAggregatedList", - "description": "[Output Only] Type of resource. Always compute#targetHttpsProxyAggregatedList for lists of Target HTTP Proxies.", + "default": "compute#targetPoolAggregatedList", + "description": "Output only. [Output Only] Type of resource. Alwayscompute#targetPoolAggregatedList for aggregated lists of\ntarget pools.", + "readOnly": true, "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.", + "description": "[Output Only] This token allows you to get the next page of results for\nlist requests. If the number of results is larger thanmaxResults, use the nextPageToken as a value for\nthe query parameter pageToken in the next list request.\nSubsequent list requests will have their own nextPageToken to\ncontinue paging through the results.", "type": "string" }, "selfLink": { - "description": "[Output Only] Server-defined URL for this resource.", + "description": "Output only. [Output Only] Server-defined URL for this resource.", + "readOnly": true, "type": "string" }, "unreachables": { - "description": "[Output Only] Unreachable resources.", + "description": "Output only. [Output Only] Unreachable resources.", "items": { "type": "string" }, + "readOnly": true, "type": "array" }, "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.", + "description": "[Output Only] A warning code, if applicable. For example, Compute\nEngine returns NO_RESULTS_ON_PAGE if there\nare no results in the response.", "enum": [ "CLEANUP_FAILED", "DEPRECATED_RESOURCE_USED", @@ -78404,6 +106058,7 @@ "NOT_CRITICAL_ERROR", "NO_RESULTS_ON_PAGE", "PARTIAL_SUCCESS", + "QUOTA_INFO_UNAVAILABLE", "REQUIRED_TOS_AGREEMENT", "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", "RESOURCE_NOT_DELETED", @@ -78440,46 +106095,48 @@ false, false, false, + false, false ], "enumDescriptions": [ - "Warning about failed cleanup of transient changes made by a failed operation.", + "Warning about failed cleanup of transient changes made by a failed\noperation.", "A link to a deprecated resource was created.", - "When deploying and at least one of the resources has a type marked as deprecated", + "When deploying and at least one of the resources has a type marked as\ndeprecated", "The user created a boot disk that is larger than image size.", - "When deploying and at least one of the resources has a type marked as experimental", + "When deploying and at least one of the resources has a type marked as\nexperimental", "Warning that is present in an external api call", - "Warning that value of a field has been overridden. Deprecated unused field.", + "Warning that value of a field has been overridden.\nDeprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", - "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is\nnot of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", - "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", + "Resource can't be retrieved due to list overhead quota exceed\nwhich captures the amount of resources filtered out by\nuser-defined list filter.", "A resource depends on a missing type", - "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's nextHopIp address is not assigned to an instance on the\nnetwork.", "The route's next hop instance cannot ip forward.", - "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not have an\nipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", - "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that is not on the\nsame network as the route.", "The route's next hop instance does not have a status of RUNNING.", - "Error which is not critical. We decided to continue the process despite the mentioned error.", + "Error which is not critical. We decided to continue the process despite\nthe mentioned error.", "No results are present on a particular list page.", "Success is reported, but some results may be missing due to errors", - "The user attempted to use a resource that requires a TOS they have not accepted.", + "Quota information is not available to client requests (e.g:\nregions.list).", + "The user attempted to use a resource that requires a TOS they have not\naccepted.", "Warning that a resource is in use.", - "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "One or more of the resources set to auto-delete could not be deleted\nbecause they were in use.", "When a resource schema validation is ignored.", - "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", + "Instance template used in instance group manager is valid as such, but\nits application does not make a lot of sense, because it allows only\nsingle instance in instance group.", "When undeclared properties in the schema are present", "A given scope cannot be reached." ], "type": "string" }, "data": { - "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", + "description": "[Output Only] Metadata about this warning in key:\nvalue format. For example:\n\n\"data\": [\n {\n \"key\": \"scope\",\n \"value\": \"zones/us-east1-d\"\n }", "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).", + "description": "[Output Only] A key that provides more detail on the warning being\nreturned. For example, for warnings where there are no results in a list\nrequest for a particular zone, this key might be scope and\nthe key value might be the zone name. Other examples might be a key\nindicating a deprecated resource and a suggested replacement, or a\nwarning about invalid network settings (for example, if an instance\nattempts to perform IP forwarding but is not enabled for IP forwarding).", "type": "string" }, "value": { @@ -78501,39 +106158,59 @@ }, "type": "object" }, - "TargetHttpsProxyList": { - "description": "Contains a list of TargetHttpsProxy resources.", - "id": "TargetHttpsProxyList", + "TargetPoolInstanceHealth": { + "id": "TargetPoolInstanceHealth", + "properties": { + "healthStatus": { + "items": { + "$ref": "HealthStatus" + }, + "type": "array" + }, + "kind": { + "default": "compute#targetPoolInstanceHealth", + "description": "Output only. [Output Only] Type of resource. Alwayscompute#targetPoolInstanceHealth when checking the health of\nan instance.", + "readOnly": true, + "type": "string" + } + }, + "type": "object" + }, + "TargetPoolList": { + "description": "Contains a list of TargetPool resources.", + "id": "TargetPoolList", "properties": { "id": { "description": "[Output Only] Unique identifier for the resource; defined by the server.", "type": "string" }, "items": { - "description": "A list of TargetHttpsProxy resources.", + "description": "A list of TargetPool resources.", "items": { - "$ref": "TargetHttpsProxy" + "$ref": "TargetPool" }, "type": "array" }, "kind": { - "default": "compute#targetHttpsProxyList", - "description": "Type of resource. Always compute#targetHttpsProxyList for lists of target HTTPS proxies.", + "default": "compute#targetPoolList", + "description": "Output only. [Output Only] Type of resource. Always compute#targetPoolList\nfor lists of target pools.", + "readOnly": true, "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.", + "description": "[Output Only] This token allows you to get the next page of results for\nlist requests. If the number of results is larger thanmaxResults, use the nextPageToken as a value for\nthe query parameter pageToken in the next list request.\nSubsequent list requests will have their own nextPageToken to\ncontinue paging through the results.", "type": "string" }, "selfLink": { - "description": "[Output Only] Server-defined URL for this resource.", + "description": "Output only. [Output Only] Server-defined URL for this resource.", + "readOnly": true, "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.", + "description": "[Output Only] A warning code, if applicable. For example, Compute\nEngine returns NO_RESULTS_ON_PAGE if there\nare no results in the response.", "enum": [ "CLEANUP_FAILED", "DEPRECATED_RESOURCE_USED", @@ -78556,6 +106233,7 @@ "NOT_CRITICAL_ERROR", "NO_RESULTS_ON_PAGE", "PARTIAL_SUCCESS", + "QUOTA_INFO_UNAVAILABLE", "REQUIRED_TOS_AGREEMENT", "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", "RESOURCE_NOT_DELETED", @@ -78592,46 +106270,48 @@ false, false, false, + false, false ], "enumDescriptions": [ - "Warning about failed cleanup of transient changes made by a failed operation.", + "Warning about failed cleanup of transient changes made by a failed\noperation.", "A link to a deprecated resource was created.", - "When deploying and at least one of the resources has a type marked as deprecated", + "When deploying and at least one of the resources has a type marked as\ndeprecated", "The user created a boot disk that is larger than image size.", - "When deploying and at least one of the resources has a type marked as experimental", + "When deploying and at least one of the resources has a type marked as\nexperimental", "Warning that is present in an external api call", - "Warning that value of a field has been overridden. Deprecated unused field.", + "Warning that value of a field has been overridden.\nDeprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", - "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is\nnot of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", - "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", + "Resource can't be retrieved due to list overhead quota exceed\nwhich captures the amount of resources filtered out by\nuser-defined list filter.", "A resource depends on a missing type", - "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's nextHopIp address is not assigned to an instance on the\nnetwork.", "The route's next hop instance cannot ip forward.", - "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not have an\nipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", - "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that is not on the\nsame network as the route.", "The route's next hop instance does not have a status of RUNNING.", - "Error which is not critical. We decided to continue the process despite the mentioned error.", + "Error which is not critical. We decided to continue the process despite\nthe mentioned error.", "No results are present on a particular list page.", "Success is reported, but some results may be missing due to errors", - "The user attempted to use a resource that requires a TOS they have not accepted.", + "Quota information is not available to client requests (e.g:\nregions.list).", + "The user attempted to use a resource that requires a TOS they have not\naccepted.", "Warning that a resource is in use.", - "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "One or more of the resources set to auto-delete could not be deleted\nbecause they were in use.", "When a resource schema validation is ignored.", - "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", + "Instance template used in instance group manager is valid as such, but\nits application does not make a lot of sense, because it allows only\nsingle instance in instance group.", "When undeclared properties in the schema are present", "A given scope cannot be reached." ], "type": "string" }, "data": { - "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", + "description": "[Output Only] Metadata about this warning in key:\nvalue format. For example:\n\n\"data\": [\n {\n \"key\": \"scope\",\n \"value\": \"zones/us-east1-d\"\n }", "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).", + "description": "[Output Only] A key that provides more detail on the warning being\nreturned. For example, for warnings where there are no results in a list\nrequest for a particular zone, this key might be scope and\nthe key value might be the zone name. Other examples might be a key\nindicating a deprecated resource and a suggested replacement, or a\nwarning about invalid network settings (for example, if an instance\nattempts to perform IP forwarding but is not enabled for IP forwarding).", "type": "string" }, "value": { @@ -78653,106 +106333,73 @@ }, "type": "object" }, - "TargetInstance": { - "description": "Represents a Target Instance resource. You can use a target instance to handle traffic for one or more forwarding rules, which is ideal for forwarding protocol traffic that is managed by a single source. For example, ESP, AH, TCP, or UDP. For more information, read Target instances.", - "id": "TargetInstance", + "TargetPoolsAddHealthCheckRequest": { + "id": "TargetPoolsAddHealthCheckRequest", "properties": { - "creationTimestamp": { - "description": "[Output Only] Creation timestamp in RFC3339 text format.", - "type": "string" - }, - "description": { - "description": "An optional description of this resource. Provide this property when you create the resource.", - "type": "string" - }, - "id": { - "description": "[Output Only] The unique identifier for the resource. This identifier is defined by the server.", - "format": "uint64", - "type": "string" - }, - "instance": { - "description": "A URL to the virtual machine instance that handles traffic for this target instance. When creating a target instance, you can provide the fully-qualified URL or a valid partial URL to the desired virtual machine. For example, the following are all valid URLs: - https://www.googleapis.com/compute/v1/projects/project/zones/zone /instances/instance - projects/project/zones/zone/instances/instance - zones/zone/instances/instance ", - "type": "string" - }, - "kind": { - "default": "compute#targetInstance", - "description": "[Output Only] The type of the resource. Always compute#targetInstance for target instances.", - "type": "string" - }, - "name": { - "description": "Name of the resource. Provided by the client when the resource is created. The name must be 1-63 characters long, and comply with RFC1035. 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" - }, - "natPolicy": { - "description": "Must have a value of NO_NAT. Protocol forwarding delivers packets while preserving the destination IP address of the forwarding rule referencing the target instance.", - "enum": [ - "NO_NAT" - ], - "enumDescriptions": [ - "No NAT performed." - ], - "type": "string" - }, - "network": { - "description": "The URL of the network this target instance uses to forward traffic. If not specified, the traffic will be forwarded to the network that the default network interface belongs to.", - "type": "string" - }, - "securityPolicy": { - "description": "[Output Only] The resource URL for the security policy associated with this target instance.", - "type": "string" - }, - "selfLink": { - "description": "[Output Only] Server-defined URL for the resource.", - "type": "string" - }, - "zone": { - "description": "[Output Only] URL of the zone where the target instance resides. You must specify this field as part of the HTTP request URL. It is not settable as a field in the request body.", - "type": "string" + "healthChecks": { + "description": "The HttpHealthCheck to add to the target pool.", + "items": { + "$ref": "HealthCheckReference" + }, + "type": "array" } }, "type": "object" }, - "TargetInstanceAggregatedList": { - "id": "TargetInstanceAggregatedList", + "TargetPoolsAddInstanceRequest": { + "id": "TargetPoolsAddInstanceRequest", "properties": { - "id": { - "description": "[Output Only] Unique identifier for the resource; defined by the server.", - "type": "string" - }, - "items": { - "additionalProperties": { - "$ref": "TargetInstancesScopedList", - "description": "Name of the scope containing this set of target instances." + "instances": { + "description": "A full or partial URL to an instance to add to this target pool. This can\nbe a full or partial URL. For example, the following are valid URLs: \n \n - https://www.googleapis.com/compute/v1/projects/project-id/zones/zone/instances/instance-name \n - projects/project-id/zones/zone/instances/instance-name \n - zones/zone/instances/instance-name", + "items": { + "$ref": "InstanceReference" }, - "description": "A list of TargetInstance resources.", - "type": "object" - }, - "kind": { - "default": "compute#targetInstanceAggregatedList", - "description": "Type of resource.", - "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" - }, - "selfLink": { - "description": "[Output Only] Server-defined URL for this resource.", - "type": "string" - }, - "unreachables": { - "description": "[Output Only] Unreachable resources.", + "type": "array" + } + }, + "type": "object" + }, + "TargetPoolsRemoveHealthCheckRequest": { + "id": "TargetPoolsRemoveHealthCheckRequest", + "properties": { + "healthChecks": { + "description": "Health check URL to be removed. This can be a full or valid partial URL.\nFor example, the following are valid URLs:\n \n - https://www.googleapis.com/compute/beta/projects/project/global/httpHealthChecks/health-check \n - projects/project/global/httpHealthChecks/health-check\n - global/httpHealthChecks/health-check", "items": { - "type": "string" + "$ref": "HealthCheckReference" + }, + "type": "array" + } + }, + "type": "object" + }, + "TargetPoolsRemoveInstanceRequest": { + "id": "TargetPoolsRemoveInstanceRequest", + "properties": { + "instances": { + "description": "URLs of the instances to be removed from target pool.", + "items": { + "$ref": "InstanceReference" + }, + "type": "array" + } + }, + "type": "object" + }, + "TargetPoolsScopedList": { + "id": "TargetPoolsScopedList", + "properties": { + "targetPools": { + "description": "A list of target pools contained in this scope.", + "items": { + "$ref": "TargetPool" }, "type": "array" }, "warning": { - "description": "[Output Only] Informational warning message.", + "description": "Informational warning which replaces the list of addresses when\nthe list is empty.", "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.", + "description": "[Output Only] A warning code, if applicable. For example, Compute\nEngine returns NO_RESULTS_ON_PAGE if there\nare no results in the response.", "enum": [ "CLEANUP_FAILED", "DEPRECATED_RESOURCE_USED", @@ -78775,6 +106422,7 @@ "NOT_CRITICAL_ERROR", "NO_RESULTS_ON_PAGE", "PARTIAL_SUCCESS", + "QUOTA_INFO_UNAVAILABLE", "REQUIRED_TOS_AGREEMENT", "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", "RESOURCE_NOT_DELETED", @@ -78811,46 +106459,48 @@ false, false, false, + false, false ], "enumDescriptions": [ - "Warning about failed cleanup of transient changes made by a failed operation.", + "Warning about failed cleanup of transient changes made by a failed\noperation.", "A link to a deprecated resource was created.", - "When deploying and at least one of the resources has a type marked as deprecated", + "When deploying and at least one of the resources has a type marked as\ndeprecated", "The user created a boot disk that is larger than image size.", - "When deploying and at least one of the resources has a type marked as experimental", + "When deploying and at least one of the resources has a type marked as\nexperimental", "Warning that is present in an external api call", - "Warning that value of a field has been overridden. Deprecated unused field.", + "Warning that value of a field has been overridden.\nDeprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", - "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is\nnot of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", - "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", + "Resource can't be retrieved due to list overhead quota exceed\nwhich captures the amount of resources filtered out by\nuser-defined list filter.", "A resource depends on a missing type", - "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's nextHopIp address is not assigned to an instance on the\nnetwork.", "The route's next hop instance cannot ip forward.", - "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not have an\nipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", - "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that is not on the\nsame network as the route.", "The route's next hop instance does not have a status of RUNNING.", - "Error which is not critical. We decided to continue the process despite the mentioned error.", + "Error which is not critical. We decided to continue the process despite\nthe mentioned error.", "No results are present on a particular list page.", "Success is reported, but some results may be missing due to errors", - "The user attempted to use a resource that requires a TOS they have not accepted.", + "Quota information is not available to client requests (e.g:\nregions.list).", + "The user attempted to use a resource that requires a TOS they have not\naccepted.", "Warning that a resource is in use.", - "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "One or more of the resources set to auto-delete could not be deleted\nbecause they were in use.", "When a resource schema validation is ignored.", - "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", + "Instance template used in instance group manager is valid as such, but\nits application does not make a lot of sense, because it allows only\nsingle instance in instance group.", "When undeclared properties in the schema are present", "A given scope cannot be reached." ], "type": "string" }, "data": { - "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", + "description": "[Output Only] Metadata about this warning in key:\nvalue format. For example:\n\n\"data\": [\n {\n \"key\": \"scope\",\n \"value\": \"zones/us-east1-d\"\n }", "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).", + "description": "[Output Only] A key that provides more detail on the warning being\nreturned. For example, for warnings where there are no results in a list\nrequest for a particular zone, this key might be scope and\nthe key value might be the zone name. Other examples might be a key\nindicating a deprecated resource and a suggested replacement, or a\nwarning about invalid network settings (for example, if an instance\nattempts to perform IP forwarding but is not enabled for IP forwarding).", "type": "string" }, "value": { @@ -78867,44 +106517,173 @@ "type": "string" } }, - "type": "object" + "type": "object" + } + }, + "type": "object" + }, + "TargetReference": { + "id": "TargetReference", + "properties": { + "target": { + "type": "string" + } + }, + "type": "object" + }, + "TargetSslProxiesSetBackendServiceRequest": { + "id": "TargetSslProxiesSetBackendServiceRequest", + "properties": { + "service": { + "description": "The URL of the new BackendService resource for the targetSslProxy.", + "type": "string" + } + }, + "type": "object" + }, + "TargetSslProxiesSetCertificateMapRequest": { + "id": "TargetSslProxiesSetCertificateMapRequest", + "properties": { + "certificateMap": { + "description": "URL of the Certificate Map to associate with this TargetSslProxy.\n\n Accepted format is//certificatemanager.googleapis.com/projects/{project}/locations/{location}/certificateMaps/{resourceName}.", + "type": "string" + } + }, + "type": "object" + }, + "TargetSslProxiesSetProxyHeaderRequest": { + "id": "TargetSslProxiesSetProxyHeaderRequest", + "properties": { + "proxyHeader": { + "description": "The new type of proxy header to append before sending data to the\nbackend. NONE or PROXY_V1 are allowed.", + "enum": [ + "NONE", + "PROXY_V1" + ], + "enumDescriptions": [ + "", + "" + ], + "type": "string" + } + }, + "type": "object" + }, + "TargetSslProxiesSetSslCertificatesRequest": { + "id": "TargetSslProxiesSetSslCertificatesRequest", + "properties": { + "sslCertificates": { + "description": "New set of URLs to SslCertificate resources to associate with this\nTargetSslProxy. At least one SSL certificate must be specified.\nCurrently, you may specify up to 15 SSL certificates.", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "TargetSslProxy": { + "description": "Represents a Target SSL Proxy resource.\n\nA target SSL proxy is a component of a Proxy Network Load Balancer.\nThe forwarding rule references the target SSL proxy, and the target proxy\nthen references a backend service. For more information, readProxy Network\nLoad Balancer overview.", + "id": "TargetSslProxy", + "properties": { + "certificateMap": { + "description": "URL of a certificate map that identifies a certificate map associated with\nthe given target proxy.\nThis field can only be set for global target proxies.\nIf set, sslCertificates will be ignored.\n\n Accepted format is//certificatemanager.googleapis.com/projects/{project}/locations/{location}/certificateMaps/{resourceName}.", + "type": "string" + }, + "creationTimestamp": { + "description": "Output only. [Output Only] Creation timestamp inRFC3339\ntext format.", + "readOnly": true, + "type": "string" + }, + "description": { + "description": "An optional description of this resource. Provide this property when you\ncreate the resource.", + "type": "string" + }, + "id": { + "description": "[Output Only] The unique identifier for the resource. This identifier is\ndefined by the server.", + "format": "uint64", + "type": "string" + }, + "kind": { + "default": "compute#targetSslProxy", + "description": "Output only. [Output Only] Type of the resource. Alwayscompute#targetSslProxy for target SSL proxies.", + "readOnly": true, + "type": "string" + }, + "name": { + "description": "Name of the resource. Provided by the client when the resource is created.\nThe name must be 1-63 characters long, and comply withRFC1035.\nSpecifically, the name must be 1-63 characters long and match the regular\nexpression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first\ncharacter must be a lowercase letter, and all following characters must\nbe a dash, lowercase letter, or digit, except the last character, which\ncannot be a dash.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "type": "string" + }, + "proxyHeader": { + "description": "Specifies the type of proxy header to append before sending data to the\nbackend, either NONE or PROXY_V1. The default\nis NONE.", + "enum": [ + "NONE", + "PROXY_V1" + ], + "enumDescriptions": [ + "", + "" + ], + "type": "string" + }, + "selfLink": { + "description": "[Output Only] Server-defined URL for the resource.", + "type": "string" + }, + "service": { + "description": "URL to the BackendService resource.", + "type": "string" + }, + "sslCertificates": { + "description": "URLs to SslCertificate resources that are used to\nauthenticate connections to Backends. At least one SSL certificate\nmust be specified. Currently, you may specify up to 15 SSL certificates.\nsslCertificates do not apply when the load balancing scheme is set to\nINTERNAL_SELF_MANAGED.", + "items": { + "type": "string" + }, + "type": "array" + }, + "sslPolicy": { + "description": "URL of SslPolicy resource that will be associated with the TargetSslProxy\nresource. If not set, the TargetSslProxy resource will not have any\nSSL policy configured.", + "type": "string" } }, "type": "object" }, - "TargetInstanceList": { - "description": "Contains a list of TargetInstance resources.", - "id": "TargetInstanceList", + "TargetSslProxyList": { + "description": "Contains a list of TargetSslProxy resources.", + "id": "TargetSslProxyList", "properties": { "id": { "description": "[Output Only] Unique identifier for the resource; defined by the server.", "type": "string" }, "items": { - "description": "A list of TargetInstance resources.", + "description": "A list of TargetSslProxy resources.", "items": { - "$ref": "TargetInstance" + "$ref": "TargetSslProxy" }, "type": "array" }, "kind": { - "default": "compute#targetInstanceList", - "description": "Type of resource.", + "default": "compute#targetSslProxyList", + "description": "Output only. Type of resource.", + "readOnly": true, "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.", + "description": "[Output Only] This token allows you to get the next page of results for\nlist requests. If the number of results is larger thanmaxResults, use the nextPageToken as a value for\nthe query parameter pageToken in the next list request.\nSubsequent list requests will have their own nextPageToken to\ncontinue paging through the results.", "type": "string" }, "selfLink": { - "description": "[Output Only] Server-defined URL for this resource.", + "description": "Output only. [Output Only] Server-defined URL for this resource.", + "readOnly": true, "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.", + "description": "[Output Only] A warning code, if applicable. For example, Compute\nEngine returns NO_RESULTS_ON_PAGE if there\nare no results in the response.", "enum": [ "CLEANUP_FAILED", "DEPRECATED_RESOURCE_USED", @@ -78927,6 +106706,7 @@ "NOT_CRITICAL_ERROR", "NO_RESULTS_ON_PAGE", "PARTIAL_SUCCESS", + "QUOTA_INFO_UNAVAILABLE", "REQUIRED_TOS_AGREEMENT", "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", "RESOURCE_NOT_DELETED", @@ -78963,46 +106743,48 @@ false, false, false, + false, false ], "enumDescriptions": [ - "Warning about failed cleanup of transient changes made by a failed operation.", + "Warning about failed cleanup of transient changes made by a failed\noperation.", "A link to a deprecated resource was created.", - "When deploying and at least one of the resources has a type marked as deprecated", + "When deploying and at least one of the resources has a type marked as\ndeprecated", "The user created a boot disk that is larger than image size.", - "When deploying and at least one of the resources has a type marked as experimental", + "When deploying and at least one of the resources has a type marked as\nexperimental", "Warning that is present in an external api call", - "Warning that value of a field has been overridden. Deprecated unused field.", + "Warning that value of a field has been overridden.\nDeprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", - "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is\nnot of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", - "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", + "Resource can't be retrieved due to list overhead quota exceed\nwhich captures the amount of resources filtered out by\nuser-defined list filter.", "A resource depends on a missing type", - "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's nextHopIp address is not assigned to an instance on the\nnetwork.", "The route's next hop instance cannot ip forward.", - "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not have an\nipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", - "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that is not on the\nsame network as the route.", "The route's next hop instance does not have a status of RUNNING.", - "Error which is not critical. We decided to continue the process despite the mentioned error.", + "Error which is not critical. We decided to continue the process despite\nthe mentioned error.", "No results are present on a particular list page.", "Success is reported, but some results may be missing due to errors", - "The user attempted to use a resource that requires a TOS they have not accepted.", + "Quota information is not available to client requests (e.g:\nregions.list).", + "The user attempted to use a resource that requires a TOS they have not\naccepted.", "Warning that a resource is in use.", - "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "One or more of the resources set to auto-delete could not be deleted\nbecause they were in use.", "When a resource schema validation is ignored.", - "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", + "Instance template used in instance group manager is valid as such, but\nits application does not make a lot of sense, because it allows only\nsingle instance in instance group.", "When undeclared properties in the schema are present", "A given scope cannot be reached." ], "type": "string" }, "data": { - "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", + "description": "[Output Only] Metadata about this warning in key:\nvalue format. For example:\n\n\"data\": [\n {\n \"key\": \"scope\",\n \"value\": \"zones/us-east1-d\"\n }", "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).", + "description": "[Output Only] A key that provides more detail on the warning being\nreturned. For example, for warnings where there are no results in a list\nrequest for a particular zone, this key might be scope and\nthe key value might be the zone name. Other examples might be a key\nindicating a deprecated resource and a suggested replacement, or a\nwarning about invalid network settings (for example, if an instance\nattempts to perform IP forwarding but is not enabled for IP forwarding).", "type": "string" }, "value": { @@ -79024,21 +106806,21 @@ }, "type": "object" }, - "TargetInstancesScopedList": { - "id": "TargetInstancesScopedList", + "TargetTcpProxiesScopedList": { + "id": "TargetTcpProxiesScopedList", "properties": { - "targetInstances": { - "description": "A list of target instances contained in this scope.", + "targetTcpProxies": { + "description": "A list of TargetTcpProxies contained in this scope.", "items": { - "$ref": "TargetInstance" + "$ref": "TargetTcpProxy" }, "type": "array" }, "warning": { - "description": "Informational warning which replaces the list of addresses when the list is empty.", + "description": "Informational warning which replaces the list of\nbackend services when the list is empty.", "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.", + "description": "[Output Only] A warning code, if applicable. For example, Compute\nEngine returns NO_RESULTS_ON_PAGE if there\nare no results in the response.", "enum": [ "CLEANUP_FAILED", "DEPRECATED_RESOURCE_USED", @@ -79061,6 +106843,7 @@ "NOT_CRITICAL_ERROR", "NO_RESULTS_ON_PAGE", "PARTIAL_SUCCESS", + "QUOTA_INFO_UNAVAILABLE", "REQUIRED_TOS_AGREEMENT", "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", "RESOURCE_NOT_DELETED", @@ -79097,46 +106880,48 @@ false, false, false, + false, false ], "enumDescriptions": [ - "Warning about failed cleanup of transient changes made by a failed operation.", + "Warning about failed cleanup of transient changes made by a failed\noperation.", "A link to a deprecated resource was created.", - "When deploying and at least one of the resources has a type marked as deprecated", + "When deploying and at least one of the resources has a type marked as\ndeprecated", "The user created a boot disk that is larger than image size.", - "When deploying and at least one of the resources has a type marked as experimental", + "When deploying and at least one of the resources has a type marked as\nexperimental", "Warning that is present in an external api call", - "Warning that value of a field has been overridden. Deprecated unused field.", + "Warning that value of a field has been overridden.\nDeprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", - "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is\nnot of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", - "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", + "Resource can't be retrieved due to list overhead quota exceed\nwhich captures the amount of resources filtered out by\nuser-defined list filter.", "A resource depends on a missing type", - "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's nextHopIp address is not assigned to an instance on the\nnetwork.", "The route's next hop instance cannot ip forward.", - "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not have an\nipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", - "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that is not on the\nsame network as the route.", "The route's next hop instance does not have a status of RUNNING.", - "Error which is not critical. We decided to continue the process despite the mentioned error.", + "Error which is not critical. We decided to continue the process despite\nthe mentioned error.", "No results are present on a particular list page.", "Success is reported, but some results may be missing due to errors", - "The user attempted to use a resource that requires a TOS they have not accepted.", + "Quota information is not available to client requests (e.g:\nregions.list).", + "The user attempted to use a resource that requires a TOS they have not\naccepted.", "Warning that a resource is in use.", - "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "One or more of the resources set to auto-delete could not be deleted\nbecause they were in use.", "When a resource schema validation is ignored.", - "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", + "Instance template used in instance group manager is valid as such, but\nits application does not make a lot of sense, because it allows only\nsingle instance in instance group.", "When undeclared properties in the schema are present", "A given scope cannot be reached." ], "type": "string" }, "data": { - "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", + "description": "[Output Only] Metadata about this warning in key:\nvalue format. For example:\n\n\"data\": [\n {\n \"key\": \"scope\",\n \"value\": \"zones/us-east1-d\"\n }", "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).", + "description": "[Output Only] A key that provides more detail on the warning being\nreturned. For example, for warnings where there are no results in a list\nrequest for a particular zone, this key might be scope and\nthe key value might be the zone name. Other examples might be a key\nindicating a deprecated resource and a suggested replacement, or a\nwarning about invalid network settings (for example, if an instance\nattempts to perform IP forwarding but is not enabled for IP forwarding).", "type": "string" }, "value": { @@ -79158,97 +106943,113 @@ }, "type": "object" }, - "TargetPool": { - "description": "Represents a Target Pool resource. Target pools are used with external passthrough Network Load Balancers. A target pool references member instances, an associated legacy HttpHealthCheck resource, and, optionally, a backup target pool. For more information, read Using target pools.", - "id": "TargetPool", + "TargetTcpProxiesSetBackendServiceRequest": { + "id": "TargetTcpProxiesSetBackendServiceRequest", "properties": { - "backupPool": { - "description": "The server-defined URL for the resource. This field is applicable only when the containing target pool is serving a forwarding rule as the primary pool, and its failoverRatio field is properly set to a value between [0, 1]. backupPool and failoverRatio together define the fallback behavior of the primary target pool: if the ratio of the healthy instances in the primary pool is at or below failoverRatio, traffic arriving at the load-balanced IP will be directed to the backup pool. In case where failoverRatio and backupPool are not set, or all the instances in the backup pool are unhealthy, the traffic will be directed back to the primary pool in the \"force\" mode, where traffic will be spread to the healthy instances with the best effort, or to all instances when no instance is healthy.", + "service": { + "description": "The URL of the new BackendService resource for the targetTcpProxy.", "type": "string" - }, + } + }, + "type": "object" + }, + "TargetTcpProxiesSetProxyHeaderRequest": { + "id": "TargetTcpProxiesSetProxyHeaderRequest", + "properties": { + "proxyHeader": { + "description": "The new type of proxy header to append before sending data to the\nbackend. NONE or PROXY_V1 are allowed.", + "enum": [ + "NONE", + "PROXY_V1" + ], + "enumDescriptions": [ + "", + "" + ], + "type": "string" + } + }, + "type": "object" + }, + "TargetTcpProxy": { + "description": "Represents a Target TCP Proxy resource.\n\nA target TCP proxy is a component of a Proxy Network Load Balancer.\nThe forwarding rule references the target TCP proxy, and the target proxy\nthen references a backend service. For more information, readProxy Network\nLoad Balancer overview.", + "id": "TargetTcpProxy", + "properties": { "creationTimestamp": { - "description": "[Output Only] Creation timestamp in RFC3339 text format.", + "description": "Output only. [Output Only] Creation timestamp inRFC3339\ntext format.", + "readOnly": true, "type": "string" }, "description": { - "description": "An optional description of this resource. Provide this property when you create the resource.", + "description": "An optional description of this resource. Provide this property when you\ncreate the resource.", "type": "string" }, - "failoverRatio": { - "description": "This field is applicable only when the containing target pool is serving a forwarding rule as the primary pool (i.e., not as a backup pool to some other target pool). The value of the field must be in [0, 1]. If set, backupPool must also be set. They together define the fallback behavior of the primary target pool: if the ratio of the healthy instances in the primary pool is at or below this number, traffic arriving at the load-balanced IP will be directed to the backup pool. In case where failoverRatio is not set or all the instances in the backup pool are unhealthy, the traffic will be directed back to the primary pool in the \"force\" mode, where traffic will be spread to the healthy instances with the best effort, or to all instances when no instance is healthy.", - "format": "float", - "type": "number" - }, - "healthChecks": { - "description": "The URL of the HttpHealthCheck resource. A member instance in this pool is considered healthy if and only if the health checks pass. Only legacy HttpHealthChecks are supported. Only one health check may be specified.", - "items": { - "type": "string" - }, - "type": "array" - }, "id": { - "description": "[Output Only] The unique identifier for the resource. This identifier is defined by the server.", + "description": "[Output Only] The unique identifier for the resource. This identifier is\ndefined by the server.", "format": "uint64", "type": "string" }, - "instances": { - "description": "A list of resource URLs to the virtual machine instances serving this pool. They must live in zones contained in the same region as this pool.", - "items": { - "type": "string" - }, - "type": "array" - }, "kind": { - "default": "compute#targetPool", - "description": "[Output Only] Type of the resource. Always compute#targetPool for target pools.", + "default": "compute#targetTcpProxy", + "description": "Output only. [Output Only] Type of the resource. Alwayscompute#targetTcpProxy for target TCP proxies.", + "readOnly": true, + "type": "string" + }, + "loadBalancingScheme": { + "description": "Specifies the type of load balancing scheme used by this target proxy.", + "enum": [ + "EXTERNAL", + "EXTERNAL_MANAGED", + "INTERNAL_MANAGED", + "LOAD_BALANCING_SCHEME_UNSPECIFIED" + ], + "enumDescriptions": [ + "", + "", + "", + "" + ], "type": "string" }, "name": { - "description": "Name of the resource. Provided by the client when the resource is created. The name must be 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters long and match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash.", + "description": "Name of the resource. Provided by the client when the resource is created.\nThe name must be 1-63 characters long, and comply withRFC1035.\nSpecifically, the name must be 1-63 characters long and match the regular\nexpression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first\ncharacter must be a lowercase letter, and all following characters must\nbe a dash, lowercase letter, or digit, except the last character, which\ncannot be a dash.", "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", "type": "string" }, - "region": { - "description": "[Output Only] URL of the region where the target pool resides.", + "proxyBind": { + "description": "This field only applies when the forwarding rule that references this\ntarget proxy has a loadBalancingScheme set toINTERNAL_SELF_MANAGED.\n\nWhen this field is set to true, Envoy proxies set up inbound\ntraffic interception and bind to the IP address and port specified in the\nforwarding rule. This is generally useful when using Traffic Director to\nconfigure Envoy as a gateway or middle proxy (in other words, not a\nsidecar proxy). The Envoy proxy listens for inbound requests and handles\nrequests when it receives them.\n\nThe default is false.", + "type": "boolean" + }, + "proxyHeader": { + "description": "Specifies the type of proxy header to append before sending data to the\nbackend, either NONE or PROXY_V1. The default\nis NONE.", + "enum": [ + "NONE", + "PROXY_V1" + ], + "enumDescriptions": [ + "", + "" + ], "type": "string" }, - "securityPolicy": { - "description": "[Output Only] The resource URL for the security policy associated with this target pool.", + "region": { + "description": "Output only. [Output Only] URL of the region where the regional TCP proxy resides.\nThis field is not applicable to global TCP proxy.", + "readOnly": true, "type": "string" }, "selfLink": { "description": "[Output Only] Server-defined URL for the resource.", "type": "string" }, - "sessionAffinity": { - "description": "Session affinity option, must be one of the following values: NONE: Connections from the same client IP may go to any instance in the pool. CLIENT_IP: Connections from the same client IP will go to the same instance in the pool while that instance remains healthy. CLIENT_IP_PROTO: Connections from the same client IP with the same IP protocol will go to the same instance in the pool while that instance remains healthy.", - "enum": [ - "CLIENT_IP", - "CLIENT_IP_NO_DESTINATION", - "CLIENT_IP_PORT_PROTO", - "CLIENT_IP_PROTO", - "GENERATED_COOKIE", - "HEADER_FIELD", - "HTTP_COOKIE", - "NONE" - ], - "enumDescriptions": [ - "2-tuple hash on packet's source and destination IP addresses. Connections from the same source IP address to the same destination IP address will be served by the same backend VM while that VM remains healthy.", - "1-tuple hash only on packet's source IP address. Connections from the same source IP address will be served by the same backend VM while that VM remains healthy. This option can only be used for Internal TCP/UDP Load Balancing.", - "5-tuple hash on packet's source and destination IP addresses, IP protocol, and source and destination ports. Connections for the same IP protocol from the same source IP address and port to the same destination IP address and port will be served by the same backend VM while that VM remains healthy. This option cannot be used for HTTP(S) load balancing.", - "3-tuple hash on packet's source and destination IP addresses, and IP protocol. Connections for the same IP protocol from the same source IP address to the same destination IP address will be served by the same backend VM while that VM remains healthy. This option cannot be used for HTTP(S) load balancing.", - "Hash based on a cookie generated by the L7 loadbalancer. Only valid for HTTP(S) load balancing.", - "The hash is based on a user specified header field.", - "The hash is based on a user provided cookie.", - "No session affinity. Connections from the same client IP may go to any instance in the pool." - ], + "service": { + "description": "URL to the BackendService resource.", "type": "string" } }, "type": "object" }, - "TargetPoolAggregatedList": { - "id": "TargetPoolAggregatedList", + "TargetTcpProxyAggregatedList": { + "id": "TargetTcpProxyAggregatedList", "properties": { "id": { "description": "[Output Only] Unique identifier for the resource; defined by the server.", @@ -79256,37 +107057,40 @@ }, "items": { "additionalProperties": { - "$ref": "TargetPoolsScopedList", - "description": "Name of the scope containing this set of target pools." + "$ref": "TargetTcpProxiesScopedList", + "description": "Name of the scope containing this set of TargetTcpProxies." }, - "description": "A list of TargetPool resources.", + "description": "A list of TargetTcpProxiesScopedList resources.", "type": "object" }, "kind": { - "default": "compute#targetPoolAggregatedList", - "description": "[Output Only] Type of resource. Always compute#targetPoolAggregatedList for aggregated lists of target pools.", + "default": "compute#targetTcpProxyAggregatedList", + "description": "Output only. [Output Only] Type of resource. Alwayscompute#targetTcpProxyAggregatedList for lists of Target\nTCP Proxies.", + "readOnly": true, "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.", + "description": "[Output Only] This token allows you to get the next page of results for\nlist requests. If the number of results is larger thanmaxResults, use the nextPageToken as a value for\nthe query parameter pageToken in the next list request.\nSubsequent list requests will have their own nextPageToken to\ncontinue paging through the results.", "type": "string" }, "selfLink": { - "description": "[Output Only] Server-defined URL for this resource.", + "description": "Output only. [Output Only] Server-defined URL for this resource.", + "readOnly": true, "type": "string" }, "unreachables": { - "description": "[Output Only] Unreachable resources.", + "description": "Output only. [Output Only] Unreachable resources.", "items": { "type": "string" }, + "readOnly": true, "type": "array" }, "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.", + "description": "[Output Only] A warning code, if applicable. For example, Compute\nEngine returns NO_RESULTS_ON_PAGE if there\nare no results in the response.", "enum": [ "CLEANUP_FAILED", "DEPRECATED_RESOURCE_USED", @@ -79309,6 +107113,7 @@ "NOT_CRITICAL_ERROR", "NO_RESULTS_ON_PAGE", "PARTIAL_SUCCESS", + "QUOTA_INFO_UNAVAILABLE", "REQUIRED_TOS_AGREEMENT", "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", "RESOURCE_NOT_DELETED", @@ -79345,46 +107150,48 @@ false, false, false, + false, false ], "enumDescriptions": [ - "Warning about failed cleanup of transient changes made by a failed operation.", + "Warning about failed cleanup of transient changes made by a failed\noperation.", "A link to a deprecated resource was created.", - "When deploying and at least one of the resources has a type marked as deprecated", + "When deploying and at least one of the resources has a type marked as\ndeprecated", "The user created a boot disk that is larger than image size.", - "When deploying and at least one of the resources has a type marked as experimental", + "When deploying and at least one of the resources has a type marked as\nexperimental", "Warning that is present in an external api call", - "Warning that value of a field has been overridden. Deprecated unused field.", + "Warning that value of a field has been overridden.\nDeprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", - "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is\nnot of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", - "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", + "Resource can't be retrieved due to list overhead quota exceed\nwhich captures the amount of resources filtered out by\nuser-defined list filter.", "A resource depends on a missing type", - "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's nextHopIp address is not assigned to an instance on the\nnetwork.", "The route's next hop instance cannot ip forward.", - "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not have an\nipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", - "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that is not on the\nsame network as the route.", "The route's next hop instance does not have a status of RUNNING.", - "Error which is not critical. We decided to continue the process despite the mentioned error.", + "Error which is not critical. We decided to continue the process despite\nthe mentioned error.", "No results are present on a particular list page.", "Success is reported, but some results may be missing due to errors", - "The user attempted to use a resource that requires a TOS they have not accepted.", + "Quota information is not available to client requests (e.g:\nregions.list).", + "The user attempted to use a resource that requires a TOS they have not\naccepted.", "Warning that a resource is in use.", - "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "One or more of the resources set to auto-delete could not be deleted\nbecause they were in use.", "When a resource schema validation is ignored.", - "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", + "Instance template used in instance group manager is valid as such, but\nits application does not make a lot of sense, because it allows only\nsingle instance in instance group.", "When undeclared properties in the schema are present", "A given scope cannot be reached." ], "type": "string" }, "data": { - "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", + "description": "[Output Only] Metadata about this warning in key:\nvalue format. For example:\n\n\"data\": [\n {\n \"key\": \"scope\",\n \"value\": \"zones/us-east1-d\"\n }", "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).", + "description": "[Output Only] A key that provides more detail on the warning being\nreturned. For example, for warnings where there are no results in a list\nrequest for a particular zone, this key might be scope and\nthe key value might be the zone name. Other examples might be a key\nindicating a deprecated resource and a suggested replacement, or a\nwarning about invalid network settings (for example, if an instance\nattempts to perform IP forwarding but is not enabled for IP forwarding).", "type": "string" }, "value": { @@ -79406,56 +107213,41 @@ }, "type": "object" }, - "TargetPoolInstanceHealth": { - "id": "TargetPoolInstanceHealth", - "properties": { - "healthStatus": { - "items": { - "$ref": "HealthStatus" - }, - "type": "array" - }, - "kind": { - "default": "compute#targetPoolInstanceHealth", - "description": "[Output Only] Type of resource. Always compute#targetPoolInstanceHealth when checking the health of an instance.", - "type": "string" - } - }, - "type": "object" - }, - "TargetPoolList": { - "description": "Contains a list of TargetPool resources.", - "id": "TargetPoolList", + "TargetTcpProxyList": { + "description": "Contains a list of TargetTcpProxy resources.", + "id": "TargetTcpProxyList", "properties": { "id": { "description": "[Output Only] Unique identifier for the resource; defined by the server.", "type": "string" }, "items": { - "description": "A list of TargetPool resources.", + "description": "A list of TargetTcpProxy resources.", "items": { - "$ref": "TargetPool" + "$ref": "TargetTcpProxy" }, "type": "array" }, "kind": { - "default": "compute#targetPoolList", - "description": "[Output Only] Type of resource. Always compute#targetPoolList for lists of target pools.", + "default": "compute#targetTcpProxyList", + "description": "Output only. Type of resource.", + "readOnly": true, "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.", + "description": "[Output Only] This token allows you to get the next page of results for\nlist requests. If the number of results is larger thanmaxResults, use the nextPageToken as a value for\nthe query parameter pageToken in the next list request.\nSubsequent list requests will have their own nextPageToken to\ncontinue paging through the results.", "type": "string" }, "selfLink": { - "description": "[Output Only] Server-defined URL for this resource.", + "description": "Output only. [Output Only] Server-defined URL for this resource.", + "readOnly": true, "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.", + "description": "[Output Only] A warning code, if applicable. For example, Compute\nEngine returns NO_RESULTS_ON_PAGE if there\nare no results in the response.", "enum": [ "CLEANUP_FAILED", "DEPRECATED_RESOURCE_USED", @@ -79478,6 +107270,7 @@ "NOT_CRITICAL_ERROR", "NO_RESULTS_ON_PAGE", "PARTIAL_SUCCESS", + "QUOTA_INFO_UNAVAILABLE", "REQUIRED_TOS_AGREEMENT", "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", "RESOURCE_NOT_DELETED", @@ -79514,232 +107307,48 @@ false, false, false, - false - ], - "enumDescriptions": [ - "Warning about failed cleanup of transient changes made by a failed operation.", - "A link to a deprecated resource was created.", - "When deploying and at least one of the resources has a type marked as deprecated", - "The user created a boot disk that is larger than image size.", - "When deploying and at least one of the resources has a type marked as experimental", - "Warning that is present in an external api call", - "Warning that value of a field has been overridden. Deprecated unused field.", - "The operation involved use of an injected kernel, which is deprecated.", - "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", - "When deploying a deployment with a exceedingly large number of resources", - "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", - "A resource depends on a missing type", - "The route's nextHopIp address is not assigned to an instance on the network.", - "The route's next hop instance cannot ip forward.", - "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", - "The route's nextHopInstance URL refers to an instance that does not exist.", - "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", - "The route's next hop instance does not have a status of RUNNING.", - "Error which is not critical. We decided to continue the process despite the mentioned error.", - "No results are present on a particular list page.", - "Success is reported, but some results may be missing due to errors", - "The user attempted to use a resource that requires a TOS they have not accepted.", - "Warning that a resource is in use.", - "One or more of the resources set to auto-delete could not be deleted because they were in use.", - "When a resource schema validation is ignored.", - "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", - "When undeclared properties in the schema are present", - "A given scope cannot be reached." - ], - "type": "string" - }, - "data": { - "description": "[Output Only] Metadata about this warning in key: value format. For example: \"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" - }, - "TargetPoolsAddHealthCheckRequest": { - "id": "TargetPoolsAddHealthCheckRequest", - "properties": { - "healthChecks": { - "description": "The HttpHealthCheck to add to the target pool.", - "items": { - "$ref": "HealthCheckReference" - }, - "type": "array" - } - }, - "type": "object" - }, - "TargetPoolsAddInstanceRequest": { - "id": "TargetPoolsAddInstanceRequest", - "properties": { - "instances": { - "description": "A full or partial URL to an instance to add to this target pool. This can be a full or partial URL. For example, the following are valid URLs: - https://www.googleapis.com/compute/v1/projects/project-id/zones/zone /instances/instance-name - projects/project-id/zones/zone/instances/instance-name - zones/zone/instances/instance-name ", - "items": { - "$ref": "InstanceReference" - }, - "type": "array" - } - }, - "type": "object" - }, - "TargetPoolsRemoveHealthCheckRequest": { - "id": "TargetPoolsRemoveHealthCheckRequest", - "properties": { - "healthChecks": { - "description": "Health check URL to be removed. This can be a full or valid partial URL. For example, the following are valid URLs: - https://www.googleapis.com/compute/beta/projects/project /global/httpHealthChecks/health-check - projects/project/global/httpHealthChecks/health-check - global/httpHealthChecks/health-check ", - "items": { - "$ref": "HealthCheckReference" - }, - "type": "array" - } - }, - "type": "object" - }, - "TargetPoolsRemoveInstanceRequest": { - "id": "TargetPoolsRemoveInstanceRequest", - "properties": { - "instances": { - "description": "URLs of the instances to be removed from target pool.", - "items": { - "$ref": "InstanceReference" - }, - "type": "array" - } - }, - "type": "object" - }, - "TargetPoolsScopedList": { - "id": "TargetPoolsScopedList", - "properties": { - "targetPools": { - "description": "A list of target pools contained in this scope.", - "items": { - "$ref": "TargetPool" - }, - "type": "array" - }, - "warning": { - "description": "Informational warning which replaces the list of addresses when the list is empty.", - "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", - "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", - "LARGE_DEPLOYMENT_WARNING", - "LIST_OVERHEAD_QUOTA_EXCEED", - "MISSING_TYPE_DEPENDENCY", - "NEXT_HOP_ADDRESS_NOT_ASSIGNED", - "NEXT_HOP_CANNOT_IP_FORWARD", - "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", - "NEXT_HOP_INSTANCE_NOT_FOUND", - "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", - "NEXT_HOP_NOT_RUNNING", - "NOT_CRITICAL_ERROR", - "NO_RESULTS_ON_PAGE", - "PARTIAL_SUCCESS", - "REQUIRED_TOS_AGREEMENT", - "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", - "RESOURCE_NOT_DELETED", - "SCHEMA_VALIDATION_IGNORED", - "SINGLE_INSTANCE_PROPERTY_TEMPLATE", - "UNDECLARED_PROPERTIES", - "UNREACHABLE" - ], - "enumDeprecated": [ - false, - false, - false, - false, - false, - false, - true, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, false, false ], "enumDescriptions": [ - "Warning about failed cleanup of transient changes made by a failed operation.", + "Warning about failed cleanup of transient changes made by a failed\noperation.", "A link to a deprecated resource was created.", - "When deploying and at least one of the resources has a type marked as deprecated", + "When deploying and at least one of the resources has a type marked as\ndeprecated", "The user created a boot disk that is larger than image size.", - "When deploying and at least one of the resources has a type marked as experimental", + "When deploying and at least one of the resources has a type marked as\nexperimental", "Warning that is present in an external api call", - "Warning that value of a field has been overridden. Deprecated unused field.", + "Warning that value of a field has been overridden.\nDeprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", - "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is\nnot of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", - "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", + "Resource can't be retrieved due to list overhead quota exceed\nwhich captures the amount of resources filtered out by\nuser-defined list filter.", "A resource depends on a missing type", - "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's nextHopIp address is not assigned to an instance on the\nnetwork.", "The route's next hop instance cannot ip forward.", - "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not have an\nipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", - "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that is not on the\nsame network as the route.", "The route's next hop instance does not have a status of RUNNING.", - "Error which is not critical. We decided to continue the process despite the mentioned error.", + "Error which is not critical. We decided to continue the process despite\nthe mentioned error.", "No results are present on a particular list page.", "Success is reported, but some results may be missing due to errors", - "The user attempted to use a resource that requires a TOS they have not accepted.", + "Quota information is not available to client requests (e.g:\nregions.list).", + "The user attempted to use a resource that requires a TOS they have not\naccepted.", "Warning that a resource is in use.", - "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "One or more of the resources set to auto-delete could not be deleted\nbecause they were in use.", "When a resource schema validation is ignored.", - "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", + "Instance template used in instance group manager is valid as such, but\nits application does not make a lot of sense, because it allows only\nsingle instance in instance group.", "When undeclared properties in the schema are present", "A given scope cannot be reached." ], "type": "string" }, "data": { - "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", + "description": "[Output Only] Metadata about this warning in key:\nvalue format. For example:\n\n\"data\": [\n {\n \"key\": \"scope\",\n \"value\": \"zones/us-east1-d\"\n }", "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).", + "description": "[Output Only] A key that provides more detail on the warning being\nreturned. For example, for warnings where there are no results in a list\nrequest for a particular zone, this key might be scope and\nthe key value might be the zone name. Other examples might be a key\nindicating a deprecated resource and a suggested replacement, or a\nwarning about invalid network settings (for example, if an instance\nattempts to perform IP forwarding but is not enabled for IP forwarding).", "type": "string" }, "value": { @@ -79761,164 +107370,149 @@ }, "type": "object" }, - "TargetReference": { - "id": "TargetReference", - "properties": { - "target": { - "type": "string" - } - }, - "type": "object" - }, - "TargetSslProxiesSetBackendServiceRequest": { - "id": "TargetSslProxiesSetBackendServiceRequest", - "properties": { - "service": { - "description": "The URL of the new BackendService resource for the targetSslProxy.", - "type": "string" - } - }, - "type": "object" - }, - "TargetSslProxiesSetCertificateMapRequest": { - "id": "TargetSslProxiesSetCertificateMapRequest", + "TargetVpnGateway": { + "description": "Represents a Target VPN Gateway resource.\n\nThe target VPN gateway resource represents a Classic Cloud VPN gateway.\nFor more information, read thethe\nCloud VPN Overview.", + "id": "TargetVpnGateway", "properties": { - "certificateMap": { - "description": "URL of the Certificate Map to associate with this TargetSslProxy. Accepted format is //certificatemanager.googleapis.com/projects/{project }/locations/{location}/certificateMaps/{resourceName}.", + "creationTimestamp": { + "description": "Output only. [Output Only] Creation timestamp inRFC3339\ntext format.", + "readOnly": true, "type": "string" - } - }, - "type": "object" - }, - "TargetSslProxiesSetProxyHeaderRequest": { - "id": "TargetSslProxiesSetProxyHeaderRequest", - "properties": { - "proxyHeader": { - "description": "The new type of proxy header to append before sending data to the backend. NONE or PROXY_V1 are allowed.", - "enum": [ - "NONE", - "PROXY_V1" - ], - "enumDescriptions": [ - "", - "" - ], + }, + "description": { + "description": "An optional description of this resource. Provide this property when you\ncreate the resource.", "type": "string" - } - }, - "type": "object" - }, - "TargetSslProxiesSetSslCertificatesRequest": { - "id": "TargetSslProxiesSetSslCertificatesRequest", - "properties": { - "sslCertificates": { - "description": "New set of URLs to SslCertificate resources to associate with this TargetSslProxy. At least one SSL certificate must be specified. Currently, you may specify up to 15 SSL certificates.", + }, + "forwardingRules": { + "description": "[Output Only] A list of URLs to the ForwardingRule resources.\nForwardingRules are created usingcompute.forwardingRules.insert and associated with a VPN\ngateway.", "items": { "type": "string" }, "type": "array" - } - }, - "type": "object" - }, - "TargetSslProxy": { - "description": "Represents a Target SSL Proxy resource. A target SSL proxy is a component of a Proxy Network Load Balancer. The forwarding rule references the target SSL proxy, and the target proxy then references a backend service. For more information, read Proxy Network Load Balancer overview.", - "id": "TargetSslProxy", - "properties": { - "certificateMap": { - "description": "URL of a certificate map that identifies a certificate map associated with the given target proxy. This field can only be set for global target proxies. If set, sslCertificates will be ignored. Accepted format is //certificatemanager.googleapis.com/projects/{project }/locations/{location}/certificateMaps/{resourceName}.", - "type": "string" - }, - "creationTimestamp": { - "description": "[Output Only] Creation timestamp in RFC3339 text format.", - "type": "string" - }, - "description": { - "description": "An optional description of this resource. Provide this property when you create the resource.", - "type": "string" }, "id": { - "description": "[Output Only] The unique identifier for the resource. This identifier is defined by the server.", + "description": "[Output Only] The unique identifier for the resource. This identifier is\ndefined by the server.", "format": "uint64", "type": "string" }, "kind": { - "default": "compute#targetSslProxy", - "description": "[Output Only] Type of the resource. Always compute#targetSslProxy for target SSL proxies.", + "default": "compute#targetVpnGateway", + "description": "Output only. [Output Only] Type of resource. Alwayscompute#targetVpnGateway for target VPN gateways.", + "readOnly": true, + "type": "string" + }, + "labelFingerprint": { + "description": "A fingerprint for the labels being applied to this TargetVpnGateway, which\nis essentially a hash of the labels set used for optimistic locking. The\nfingerprint is initially generated by Compute Engine and changes after\nevery request to modify or update labels. You must always provide an\nup-to-date fingerprint hash in order to update or change labels,\notherwise the request will fail with error412 conditionNotMet.\n\nTo see the latest fingerprint, make a get() request to\nretrieve a TargetVpnGateway.", + "format": "byte", "type": "string" }, + "labels": { + "additionalProperties": { + "type": "string" + }, + "description": "Labels for this resource. These can only be added or modified by thesetLabels method. Each label key/value pair must comply withRFC1035.\nLabel values may be empty.", + "type": "object" + }, "name": { - "description": "Name of the resource. Provided by the client when the resource is created. The name must be 1-63 characters long, and comply with RFC1035. 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.", + "annotations": { + "required": [ + "compute.targetVpnGateways.insert" + ] + }, + "description": "Name of the resource. Provided by the client when the resource is created.\nThe name must be 1-63 characters long, and comply withRFC1035.\nSpecifically, the name must be 1-63 characters long and match the regular\nexpression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first\ncharacter must be a lowercase letter, and all following characters must\nbe a dash, lowercase letter, or digit, except the last character, which\ncannot be a dash.", "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", "type": "string" }, - "proxyHeader": { - "description": "Specifies the type of proxy header to append before sending data to the backend, either NONE or PROXY_V1. The default is NONE.", - "enum": [ - "NONE", - "PROXY_V1" - ], - "enumDescriptions": [ - "", - "" - ], + "network": { + "annotations": { + "required": [ + "compute.targetVpnGateways.insert" + ] + }, + "description": "URL of the network to which this VPN gateway is attached. Provided by the\nclient when the VPN gateway is created.", + "type": "string" + }, + "params": { + "$ref": "TargetVpnGatewayParams", + "description": "Input only. [Input Only] Additional params passed with the request, but not persisted\nas part of resource payload." + }, + "region": { + "description": "[Output Only] URL of the region where the target VPN gateway resides.\nYou must specify this field as part of the HTTP request URL. It is\nnot settable as a field in the request body.", "type": "string" }, "selfLink": { "description": "[Output Only] Server-defined URL for the resource.", "type": "string" }, - "service": { - "description": "URL to the BackendService resource.", + "status": { + "description": "[Output Only] The status of the VPN gateway,\nwhich can be one of the following: CREATING, READY, FAILED, or DELETING.", + "enum": [ + "CREATING", + "DELETING", + "FAILED", + "READY" + ], + "enumDescriptions": [ + "", + "", + "", + "" + ], "type": "string" }, - "sslCertificates": { - "description": "URLs to SslCertificate resources that are used to authenticate connections to Backends. At least one SSL certificate must be specified. Currently, you may specify up to 15 SSL certificates. sslCertificates do not apply when the load balancing scheme is set to INTERNAL_SELF_MANAGED.", + "tunnels": { + "description": "[Output Only] A list of URLs to VpnTunnel resources. VpnTunnels are\ncreated using the compute.vpntunnels.insert method and\nassociated with a VPN gateway.", "items": { "type": "string" }, "type": "array" - }, - "sslPolicy": { - "description": "URL of SslPolicy resource that will be associated with the TargetSslProxy resource. If not set, the TargetSslProxy resource will not have any SSL policy configured.", - "type": "string" } }, "type": "object" }, - "TargetSslProxyList": { - "description": "Contains a list of TargetSslProxy resources.", - "id": "TargetSslProxyList", + "TargetVpnGatewayAggregatedList": { + "id": "TargetVpnGatewayAggregatedList", "properties": { "id": { "description": "[Output Only] Unique identifier for the resource; defined by the server.", "type": "string" }, "items": { - "description": "A list of TargetSslProxy resources.", - "items": { - "$ref": "TargetSslProxy" + "additionalProperties": { + "$ref": "TargetVpnGatewaysScopedList", + "description": "[Output Only] Name of the scope containing this set of target VPN gateways." }, - "type": "array" + "description": "A list of TargetVpnGateway resources.", + "type": "object" }, "kind": { - "default": "compute#targetSslProxyList", - "description": "Type of resource.", + "default": "compute#targetVpnGatewayAggregatedList", + "description": "Output only. [Output Only] Type of resource. Alwayscompute#targetVpnGateway for target VPN gateways.", + "readOnly": true, "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.", + "description": "[Output Only] This token allows you to get the next page of results for\nlist requests. If the number of results is larger thanmaxResults, use the nextPageToken as a value for\nthe query parameter pageToken in the next list request.\nSubsequent list requests will have their own nextPageToken to\ncontinue paging through the results.", "type": "string" }, "selfLink": { - "description": "[Output Only] Server-defined URL for this resource.", + "description": "Output only. [Output Only] Server-defined URL for this resource.", + "readOnly": true, "type": "string" }, + "unreachables": { + "description": "Output only. [Output Only] Unreachable resources.", + "items": { + "type": "string" + }, + "readOnly": true, + "type": "array" + }, "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.", + "description": "[Output Only] A warning code, if applicable. For example, Compute\nEngine returns NO_RESULTS_ON_PAGE if there\nare no results in the response.", "enum": [ "CLEANUP_FAILED", "DEPRECATED_RESOURCE_USED", @@ -79941,6 +107535,7 @@ "NOT_CRITICAL_ERROR", "NO_RESULTS_ON_PAGE", "PARTIAL_SUCCESS", + "QUOTA_INFO_UNAVAILABLE", "REQUIRED_TOS_AGREEMENT", "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", "RESOURCE_NOT_DELETED", @@ -79977,46 +107572,48 @@ false, false, false, + false, false ], "enumDescriptions": [ - "Warning about failed cleanup of transient changes made by a failed operation.", + "Warning about failed cleanup of transient changes made by a failed\noperation.", "A link to a deprecated resource was created.", - "When deploying and at least one of the resources has a type marked as deprecated", + "When deploying and at least one of the resources has a type marked as\ndeprecated", "The user created a boot disk that is larger than image size.", - "When deploying and at least one of the resources has a type marked as experimental", + "When deploying and at least one of the resources has a type marked as\nexperimental", "Warning that is present in an external api call", - "Warning that value of a field has been overridden. Deprecated unused field.", + "Warning that value of a field has been overridden.\nDeprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", - "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is\nnot of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", - "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", + "Resource can't be retrieved due to list overhead quota exceed\nwhich captures the amount of resources filtered out by\nuser-defined list filter.", "A resource depends on a missing type", - "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's nextHopIp address is not assigned to an instance on the\nnetwork.", "The route's next hop instance cannot ip forward.", - "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not have an\nipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", - "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that is not on the\nsame network as the route.", "The route's next hop instance does not have a status of RUNNING.", - "Error which is not critical. We decided to continue the process despite the mentioned error.", + "Error which is not critical. We decided to continue the process despite\nthe mentioned error.", "No results are present on a particular list page.", "Success is reported, but some results may be missing due to errors", - "The user attempted to use a resource that requires a TOS they have not accepted.", + "Quota information is not available to client requests (e.g:\nregions.list).", + "The user attempted to use a resource that requires a TOS they have not\naccepted.", "Warning that a resource is in use.", - "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "One or more of the resources set to auto-delete could not be deleted\nbecause they were in use.", "When a resource schema validation is ignored.", - "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", + "Instance template used in instance group manager is valid as such, but\nits application does not make a lot of sense, because it allows only\nsingle instance in instance group.", "When undeclared properties in the schema are present", "A given scope cannot be reached." ], "type": "string" }, "data": { - "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", + "description": "[Output Only] Metadata about this warning in key:\nvalue format. For example:\n\n\"data\": [\n {\n \"key\": \"scope\",\n \"value\": \"zones/us-east1-d\"\n }", "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).", + "description": "[Output Only] A key that provides more detail on the warning being\nreturned. For example, for warnings where there are no results in a list\nrequest for a particular zone, this key might be scope and\nthe key value might be the zone name. Other examples might be a key\nindicating a deprecated resource and a suggested replacement, or a\nwarning about invalid network settings (for example, if an instance\nattempts to perform IP forwarding but is not enabled for IP forwarding).", "type": "string" }, "value": { @@ -80038,21 +107635,41 @@ }, "type": "object" }, - "TargetTcpProxiesScopedList": { - "id": "TargetTcpProxiesScopedList", + "TargetVpnGatewayList": { + "description": "Contains a list of TargetVpnGateway resources.", + "id": "TargetVpnGatewayList", "properties": { - "targetTcpProxies": { - "description": "A list of TargetTcpProxies contained in this scope.", + "id": { + "description": "[Output Only] Unique identifier for the resource; defined by the server.", + "type": "string" + }, + "items": { + "description": "A list of TargetVpnGateway resources.", "items": { - "$ref": "TargetTcpProxy" + "$ref": "TargetVpnGateway" }, "type": "array" }, + "kind": { + "default": "compute#targetVpnGatewayList", + "description": "Output only. [Output Only] Type of resource. Alwayscompute#targetVpnGateway for target VPN gateways.", + "readOnly": true, + "type": "string" + }, + "nextPageToken": { + "description": "[Output Only] This token allows you to get the next page of results for\nlist requests. If the number of results is larger thanmaxResults, use the nextPageToken as a value for\nthe query parameter pageToken in the next list request.\nSubsequent list requests will have their own nextPageToken to\ncontinue paging through the results.", + "type": "string" + }, + "selfLink": { + "description": "Output only. [Output Only] Server-defined URL for this resource.", + "readOnly": true, + "type": "string" + }, "warning": { - "description": "Informational warning which replaces the list of backend services when the list is empty.", + "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.", + "description": "[Output Only] A warning code, if applicable. For example, Compute\nEngine returns NO_RESULTS_ON_PAGE if there\nare no results in the response.", "enum": [ "CLEANUP_FAILED", "DEPRECATED_RESOURCE_USED", @@ -80075,6 +107692,7 @@ "NOT_CRITICAL_ERROR", "NO_RESULTS_ON_PAGE", "PARTIAL_SUCCESS", + "QUOTA_INFO_UNAVAILABLE", "REQUIRED_TOS_AGREEMENT", "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", "RESOURCE_NOT_DELETED", @@ -80111,46 +107729,48 @@ false, false, false, + false, false ], "enumDescriptions": [ - "Warning about failed cleanup of transient changes made by a failed operation.", + "Warning about failed cleanup of transient changes made by a failed\noperation.", "A link to a deprecated resource was created.", - "When deploying and at least one of the resources has a type marked as deprecated", + "When deploying and at least one of the resources has a type marked as\ndeprecated", "The user created a boot disk that is larger than image size.", - "When deploying and at least one of the resources has a type marked as experimental", + "When deploying and at least one of the resources has a type marked as\nexperimental", "Warning that is present in an external api call", - "Warning that value of a field has been overridden. Deprecated unused field.", + "Warning that value of a field has been overridden.\nDeprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", - "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is\nnot of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", - "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", + "Resource can't be retrieved due to list overhead quota exceed\nwhich captures the amount of resources filtered out by\nuser-defined list filter.", "A resource depends on a missing type", - "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's nextHopIp address is not assigned to an instance on the\nnetwork.", "The route's next hop instance cannot ip forward.", - "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not have an\nipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", - "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that is not on the\nsame network as the route.", "The route's next hop instance does not have a status of RUNNING.", - "Error which is not critical. We decided to continue the process despite the mentioned error.", + "Error which is not critical. We decided to continue the process despite\nthe mentioned error.", "No results are present on a particular list page.", "Success is reported, but some results may be missing due to errors", - "The user attempted to use a resource that requires a TOS they have not accepted.", + "Quota information is not available to client requests (e.g:\nregions.list).", + "The user attempted to use a resource that requires a TOS they have not\naccepted.", "Warning that a resource is in use.", - "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "One or more of the resources set to auto-delete could not be deleted\nbecause they were in use.", "When a resource schema validation is ignored.", - "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", + "Instance template used in instance group manager is valid as such, but\nits application does not make a lot of sense, because it allows only\nsingle instance in instance group.", "When undeclared properties in the schema are present", "A given scope cannot be reached." ], "type": "string" }, "data": { - "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", + "description": "[Output Only] Metadata about this warning in key:\nvalue format. For example:\n\n\"data\": [\n {\n \"key\": \"scope\",\n \"value\": \"zones/us-east1-d\"\n }", "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).", + "description": "[Output Only] A key that provides more detail on the warning being\nreturned. For example, for warnings where there are no results in a list\nrequest for a particular zone, this key might be scope and\nthe key value might be the zone name. Other examples might be a key\nindicating a deprecated resource and a suggested replacement, or a\nwarning about invalid network settings (for example, if an instance\nattempts to perform IP forwarding but is not enabled for IP forwarding).", "type": "string" }, "value": { @@ -80172,132 +107792,34 @@ }, "type": "object" }, - "TargetTcpProxiesSetBackendServiceRequest": { - "id": "TargetTcpProxiesSetBackendServiceRequest", - "properties": { - "service": { - "description": "The URL of the new BackendService resource for the targetTcpProxy.", - "type": "string" - } - }, - "type": "object" - }, - "TargetTcpProxiesSetProxyHeaderRequest": { - "id": "TargetTcpProxiesSetProxyHeaderRequest", - "properties": { - "proxyHeader": { - "description": "The new type of proxy header to append before sending data to the backend. NONE or PROXY_V1 are allowed.", - "enum": [ - "NONE", - "PROXY_V1" - ], - "enumDescriptions": [ - "", - "" - ], - "type": "string" - } - }, - "type": "object" - }, - "TargetTcpProxy": { - "description": "Represents a Target TCP Proxy resource. A target TCP proxy is a component of a Proxy Network Load Balancer. The forwarding rule references the target TCP proxy, and the target proxy then references a backend service. For more information, read Proxy Network Load Balancer overview.", - "id": "TargetTcpProxy", + "TargetVpnGatewayParams": { + "id": "TargetVpnGatewayParams", "properties": { - "creationTimestamp": { - "description": "[Output Only] Creation timestamp in RFC3339 text format.", - "type": "string" - }, - "description": { - "description": "An optional description of this resource. Provide this property when you create the resource.", - "type": "string" - }, - "id": { - "description": "[Output Only] The unique identifier for the resource. This identifier is defined by the server.", - "format": "uint64", - "type": "string" - }, - "kind": { - "default": "compute#targetTcpProxy", - "description": "[Output Only] Type of the resource. Always compute#targetTcpProxy for target TCP proxies.", - "type": "string" - }, - "name": { - "description": "Name of the resource. Provided by the client when the resource is created. The name must be 1-63 characters long, and comply with RFC1035. 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" - }, - "proxyBind": { - "description": "This field only applies when the forwarding rule that references this target proxy has a loadBalancingScheme set to INTERNAL_SELF_MANAGED. When this field is set to true, Envoy proxies set up inbound traffic interception and bind to the IP address and port specified in the forwarding rule. This is generally useful when using Traffic Director to configure Envoy as a gateway or middle proxy (in other words, not a sidecar proxy). The Envoy proxy listens for inbound requests and handles requests when it receives them. The default is false.", - "type": "boolean" - }, - "proxyHeader": { - "description": "Specifies the type of proxy header to append before sending data to the backend, either NONE or PROXY_V1. The default is NONE.", - "enum": [ - "NONE", - "PROXY_V1" - ], - "enumDescriptions": [ - "", - "" - ], - "type": "string" - }, - "region": { - "description": "[Output Only] URL of the region where the regional TCP proxy resides. This field is not applicable to global TCP proxy.", - "type": "string" - }, - "selfLink": { - "description": "[Output Only] Server-defined URL for the resource.", - "type": "string" - }, - "service": { - "description": "URL to the BackendService resource.", - "type": "string" + "resourceManagerTags": { + "additionalProperties": { + "type": "string" + }, + "description": "Tag keys/values directly bound to this resource.\nTag keys and values have the same definition as resource\nmanager tags. The field is allowed for INSERT\nonly. The keys/values to set on the resource should be specified in\neither ID { : } or Namespaced format\n{ : }.\nFor example the following are valid inputs:\n* {\"tagKeys/333\" : \"tagValues/444\", \"tagKeys/123\" : \"tagValues/456\"}\n* {\"123/environment\" : \"production\", \"345/abc\" : \"xyz\"}\nNote:\n* Invalid combinations of ID \u0026 namespaced format is not supported. For\n instance: {\"123/environment\" : \"tagValues/444\"} is invalid.\n* Inconsistent format is not supported. For instance:\n {\"tagKeys/333\" : \"tagValues/444\", \"123/env\" : \"prod\"} is invalid.", + "type": "object" } }, "type": "object" }, - "TargetTcpProxyAggregatedList": { - "id": "TargetTcpProxyAggregatedList", + "TargetVpnGatewaysScopedList": { + "id": "TargetVpnGatewaysScopedList", "properties": { - "id": { - "description": "[Output Only] Unique identifier for the resource; defined by the server.", - "type": "string" - }, - "items": { - "additionalProperties": { - "$ref": "TargetTcpProxiesScopedList", - "description": "Name of the scope containing this set of TargetTcpProxies." - }, - "description": "A list of TargetTcpProxiesScopedList resources.", - "type": "object" - }, - "kind": { - "default": "compute#targetTcpProxyAggregatedList", - "description": "[Output Only] Type of resource. Always compute#targetTcpProxyAggregatedList for lists of Target TCP Proxies.", - "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" - }, - "selfLink": { - "description": "[Output Only] Server-defined URL for this resource.", - "type": "string" - }, - "unreachables": { - "description": "[Output Only] Unreachable resources.", + "targetVpnGateways": { + "description": "[Output Only] A list of target VPN gateways contained in this scope.", "items": { - "type": "string" + "$ref": "TargetVpnGateway" }, "type": "array" }, "warning": { - "description": "[Output Only] Informational warning message.", + "description": "[Output Only] Informational warning which replaces the list of addresses\nwhen the list is empty.", "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.", + "description": "[Output Only] A warning code, if applicable. For example, Compute\nEngine returns NO_RESULTS_ON_PAGE if there\nare no results in the response.", "enum": [ "CLEANUP_FAILED", "DEPRECATED_RESOURCE_USED", @@ -80320,6 +107842,7 @@ "NOT_CRITICAL_ERROR", "NO_RESULTS_ON_PAGE", "PARTIAL_SUCCESS", + "QUOTA_INFO_UNAVAILABLE", "REQUIRED_TOS_AGREEMENT", "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", "RESOURCE_NOT_DELETED", @@ -80356,46 +107879,48 @@ false, false, false, + false, false ], "enumDescriptions": [ - "Warning about failed cleanup of transient changes made by a failed operation.", + "Warning about failed cleanup of transient changes made by a failed\noperation.", "A link to a deprecated resource was created.", - "When deploying and at least one of the resources has a type marked as deprecated", + "When deploying and at least one of the resources has a type marked as\ndeprecated", "The user created a boot disk that is larger than image size.", - "When deploying and at least one of the resources has a type marked as experimental", + "When deploying and at least one of the resources has a type marked as\nexperimental", "Warning that is present in an external api call", - "Warning that value of a field has been overridden. Deprecated unused field.", + "Warning that value of a field has been overridden.\nDeprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", - "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is\nnot of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", - "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", + "Resource can't be retrieved due to list overhead quota exceed\nwhich captures the amount of resources filtered out by\nuser-defined list filter.", "A resource depends on a missing type", - "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's nextHopIp address is not assigned to an instance on the\nnetwork.", "The route's next hop instance cannot ip forward.", - "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not have an\nipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", - "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that is not on the\nsame network as the route.", "The route's next hop instance does not have a status of RUNNING.", - "Error which is not critical. We decided to continue the process despite the mentioned error.", + "Error which is not critical. We decided to continue the process despite\nthe mentioned error.", "No results are present on a particular list page.", "Success is reported, but some results may be missing due to errors", - "The user attempted to use a resource that requires a TOS they have not accepted.", + "Quota information is not available to client requests (e.g:\nregions.list).", + "The user attempted to use a resource that requires a TOS they have not\naccepted.", "Warning that a resource is in use.", - "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "One or more of the resources set to auto-delete could not be deleted\nbecause they were in use.", "When a resource schema validation is ignored.", - "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", + "Instance template used in instance group manager is valid as such, but\nits application does not make a lot of sense, because it allows only\nsingle instance in instance group.", "When undeclared properties in the schema are present", "A given scope cannot be reached." ], "type": "string" }, "data": { - "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", + "description": "[Output Only] Metadata about this warning in key:\nvalue format. For example:\n\n\"data\": [\n {\n \"key\": \"scope\",\n \"value\": \"zones/us-east1-d\"\n }", "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).", + "description": "[Output Only] A key that provides more detail on the warning being\nreturned. For example, for warnings where there are no results in a list\nrequest for a particular zone, this key might be scope and\nthe key value might be the zone name. Other examples might be a key\nindicating a deprecated resource and a suggested replacement, or a\nwarning about invalid network settings (for example, if an instance\nattempts to perform IP forwarding but is not enabled for IP forwarding).", "type": "string" }, "value": { @@ -80417,292 +107942,331 @@ }, "type": "object" }, - "TargetTcpProxyList": { - "description": "Contains a list of TargetTcpProxy resources.", - "id": "TargetTcpProxyList", + "TestFailure": { + "id": "TestFailure", "properties": { - "id": { - "description": "[Output Only] Unique identifier for the resource; defined by the server.", + "actualOutputUrl": { + "description": "The actual output URL evaluated by a load balancer containing the scheme,\nhost, path and query parameters.", "type": "string" }, - "items": { - "description": "A list of TargetTcpProxy resources.", + "actualRedirectResponseCode": { + "description": "Actual HTTP status code for rule with `urlRedirect`\ncalculated by load balancer", + "format": "int32", + "type": "integer" + }, + "actualService": { + "description": "BackendService or BackendBucket returned by load\nbalancer.", + "type": "string" + }, + "expectedOutputUrl": { + "description": "The expected output URL evaluated by a load balancer containing the scheme,\nhost, path and query parameters.", + "type": "string" + }, + "expectedRedirectResponseCode": { + "description": "Expected HTTP status code for rule with `urlRedirect`\ncalculated by load balancer", + "format": "int32", + "type": "integer" + }, + "expectedService": { + "description": "Expected BackendService or BackendBucket resource\nthe given URL should be mapped to.", + "type": "string" + }, + "headers": { + "description": "HTTP headers of the request.", "items": { - "$ref": "TargetTcpProxy" + "$ref": "UrlMapTestHeader" }, "type": "array" }, - "kind": { - "default": "compute#targetTcpProxyList", - "description": "Type of resource.", + "host": { + "description": "Host portion of the URL.", "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.", + "path": { + "description": "Path portion including query parameters in the URL.", + "type": "string" + } + }, + "type": "object" + }, + "TestPermissionsRequest": { + "id": "TestPermissionsRequest", + "properties": { + "permissions": { + "description": "The set of permissions to check for the 'resource'. Permissions with\nwildcards (such as '*' or 'storage.*') are not allowed.", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "TestPermissionsResponse": { + "id": "TestPermissionsResponse", + "properties": { + "permissions": { + "description": "A subset of `TestPermissionsRequest.permissions` that the caller is\nallowed.", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "TimeZone": { + "description": "Represents a time zone from the\n[IANA Time Zone Database](https://www.iana.org/time-zones).", + "id": "TimeZone", + "properties": { + "id": { + "description": "IANA Time Zone Database time zone. For example \"America/New_York\".", "type": "string" }, - "selfLink": { - "description": "[Output Only] Server-defined URL for this resource.", + "version": { + "description": "Optional. IANA Time Zone Database version number. For example \"2019a\".", + "type": "string" + } + }, + "type": "object" + }, + "Uint128": { + "id": "Uint128", + "properties": { + "high": { + "format": "uint64", "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", - "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", - "LARGE_DEPLOYMENT_WARNING", - "LIST_OVERHEAD_QUOTA_EXCEED", - "MISSING_TYPE_DEPENDENCY", - "NEXT_HOP_ADDRESS_NOT_ASSIGNED", - "NEXT_HOP_CANNOT_IP_FORWARD", - "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", - "NEXT_HOP_INSTANCE_NOT_FOUND", - "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", - "NEXT_HOP_NOT_RUNNING", - "NOT_CRITICAL_ERROR", - "NO_RESULTS_ON_PAGE", - "PARTIAL_SUCCESS", - "REQUIRED_TOS_AGREEMENT", - "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", - "RESOURCE_NOT_DELETED", - "SCHEMA_VALIDATION_IGNORED", - "SINGLE_INSTANCE_PROPERTY_TEMPLATE", - "UNDECLARED_PROPERTIES", - "UNREACHABLE" - ], - "enumDeprecated": [ - false, - false, - false, - false, - false, - false, - true, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false - ], - "enumDescriptions": [ - "Warning about failed cleanup of transient changes made by a failed operation.", - "A link to a deprecated resource was created.", - "When deploying and at least one of the resources has a type marked as deprecated", - "The user created a boot disk that is larger than image size.", - "When deploying and at least one of the resources has a type marked as experimental", - "Warning that is present in an external api call", - "Warning that value of a field has been overridden. Deprecated unused field.", - "The operation involved use of an injected kernel, which is deprecated.", - "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", - "When deploying a deployment with a exceedingly large number of resources", - "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", - "A resource depends on a missing type", - "The route's nextHopIp address is not assigned to an instance on the network.", - "The route's next hop instance cannot ip forward.", - "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", - "The route's nextHopInstance URL refers to an instance that does not exist.", - "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", - "The route's next hop instance does not have a status of RUNNING.", - "Error which is not critical. We decided to continue the process despite the mentioned error.", - "No results are present on a particular list page.", - "Success is reported, but some results may be missing due to errors", - "The user attempted to use a resource that requires a TOS they have not accepted.", - "Warning that a resource is in use.", - "One or more of the resources set to auto-delete could not be deleted because they were in use.", - "When a resource schema validation is ignored.", - "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", - "When undeclared properties in the schema are present", - "A given scope cannot be reached." - ], - "type": "string" - }, - "data": { - "description": "[Output Only] Metadata about this warning in key: value format. For example: \"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" - } + "low": { + "format": "uint64", + "type": "string" + } + }, + "type": "object" + }, + "UpcomingMaintenance": { + "description": "Upcoming Maintenance notification information.", + "id": "UpcomingMaintenance", + "properties": { + "canReschedule": { + "description": "Indicates if the maintenance can be customer triggered.", + "type": "boolean" + }, + "latestWindowStartTime": { + "description": "The latest time for the planned maintenance window to start.\nThis timestamp value is in RFC3339 text format.", + "type": "string" + }, + "maintenanceOnShutdown": { + "description": "Indicates whether the UpcomingMaintenance will be triggered on VM shutdown.", + "type": "boolean" + }, + "maintenanceReasons": { + "description": "The reasons for the maintenance. Only valid for vms.", + "items": { + "enum": [ + "FAILURE_DISK", + "FAILURE_GPU", + "FAILURE_GPU_MULTIPLE_FAULTY_HOSTS_CUSTOMER_REPORTED", + "FAILURE_GPU_NVLINK_SWITCH_CUSTOMER_REPORTED", + "FAILURE_GPU_TEMPERATURE", + "FAILURE_GPU_XID", + "FAILURE_INFRA", + "FAILURE_INTERFACE", + "FAILURE_MEMORY", + "FAILURE_NETWORK", + "FAILURE_NVLINK", + "FAILURE_REDUNDANT_HARDWARE_FAULT", + "FAILURE_TPU", + "INFRASTRUCTURE_RELOCATION", + "MAINTENANCE_REASON_UNKNOWN", + "PLANNED_NETWORK_UPDATE", + "PLANNED_UPDATE" + ], + "enumDescriptions": [ + "Maintenance due to disk errors.", + "Maintenance due to GPU errors.", + "Maintenance due to customer reported multiple faulty hosts via R\u0026R\nSubblock API.", + "Maintenance due to customer reported NVLink switch failure via R\u0026R\nSubblock API.", + "Maintenance due to high GPU temperature.", + "Maintenance due to GPU xid failure.", + "Maintenance due to infrastructure errors.", + "Maintenance due to interface errors.", + "Maintenance due to memory errors.", + "Maintenance due to network errors.", + "Maintenance due to NVLink failure.", + "Maintenance due to redundant hardware fault.", + "Maintenance due to TPU errors.", + "Maintenance due to infrastructure relocation.", + "Unknown maintenance reason. Do not use this value.", + "Maintenance due to planned network update.", + "Maintenance due to planned update to the instance." + ], + "type": "string" }, - "type": "object" + "type": "array" + }, + "maintenanceStatus": { + "enum": [ + "ONGOING", + "PENDING", + "UNKNOWN" + ], + "enumDescriptions": [ + "There is ongoing maintenance on this VM.", + "There is pending maintenance.", + "Unknown maintenance status. Do not use this value." + ], + "type": "string" + }, + "type": { + "description": "Defines the type of maintenance.", + "enum": [ + "MULTIPLE", + "SCHEDULED", + "UNKNOWN_TYPE", + "UNSCHEDULED" + ], + "enumDescriptions": [ + "Multiple maintenance types in one window.\nThis is only intended to be used for groups.", + "Scheduled maintenance (e.g. maintenance after uptime guarantee is\ncomplete).", + "No type specified. Do not use this value.", + "Unscheduled maintenance (e.g. emergency maintenance during\nuptime guarantee)." + ], + "type": "string" + }, + "windowEndTime": { + "description": "The time by which the maintenance disruption will be completed.\nThis timestamp value is in RFC3339 text format.", + "type": "string" + }, + "windowStartTime": { + "description": "The current start time of the maintenance window.\nThis timestamp value is in RFC3339 text format.", + "type": "string" } }, "type": "object" }, - "TargetVpnGateway": { - "description": "Represents a Target VPN Gateway resource. The target VPN gateway resource represents a Classic Cloud VPN gateway. For more information, read the the Cloud VPN Overview.", - "id": "TargetVpnGateway", + "UrlMap": { + "description": "Represents a URL Map resource.\n\nCompute Engine has two URL Map resources:\n\n* [Global](/compute/docs/reference/rest/v1/urlMaps)\n* [Regional](/compute/docs/reference/rest/v1/regionUrlMaps)\n\nA URL map resource is a component of certain types of cloud load balancers\nand Traffic Director:\n\n* urlMaps are used by global external Application Load\nBalancers, classic Application Load Balancers, and cross-region internal\nApplication Load Balancers.\n* regionUrlMaps are used by internal Application Load Balancers,\nregional external Application Load Balancers and regional internal\nApplication Load Balancers.\n\nFor a list of supported URL map features by the load balancer type, see the\nLoad balancing features: Routing and traffic management table.\n\nFor a list of supported URL map features for Traffic Director, see the\nTraffic Director features: Routing and traffic management table.\n\nThis resource defines mappings from hostnames and URL paths to either a\nbackend service or a backend bucket.\n\nTo use the global urlMaps resource, the backend service must\nhave a loadBalancingScheme of either EXTERNAL,EXTERNAL_MANAGED, or INTERNAL_SELF_MANAGED. To use\nthe regionUrlMaps resource, the backend service must have aloadBalancingScheme of INTERNAL_MANAGED. For more\ninformation, read URL\nMap Concepts.", + "id": "UrlMap", "properties": { "creationTimestamp": { - "description": "[Output Only] Creation timestamp in RFC3339 text format.", + "description": "Output only. [Output Only] Creation timestamp inRFC3339\ntext format.", + "readOnly": true, "type": "string" }, + "defaultCustomErrorResponsePolicy": { + "$ref": "CustomErrorResponsePolicy", + "description": "defaultCustomErrorResponsePolicy specifies how the Load\nBalancer returns error responses when BackendServiceorBackendBucket responds with an error. \n\nThis policy takes\neffect at the load balancer level and applies only when no policy has been\ndefined for the error code at lower levels like PathMatcher, RouteRule and\nPathRule within this UrlMap. \n\nFor example, consider a UrlMap with the\nfollowing configuration:\n \n \n - defaultCustomErrorResponsePolicy containing policies for\n responding to 5xx and 4xx errors\n - A PathMatcher configured for *.example.com has\n defaultCustomErrorResponsePolicy for 4xx.\n\nIf a request for http://www.example.com/ encounters a404, the policy inpathMatcher.defaultCustomErrorResponsePolicy will be enforced.\nWhen the request for http://www.example.com/ encounters a502, the policy inUrlMap.defaultCustomErrorResponsePolicy will be enforced. When\na request that does not match any host in *.example.com such\nas http://www.myotherexample.com/, encounters a404, UrlMap.defaultCustomErrorResponsePolicy\ntakes effect. \n\nWhen used in conjunction withdefaultRouteAction.retryPolicy, retries take precedence. Only\nonce all retries are exhausted, thedefaultCustomErrorResponsePolicy is applied. While attempting\na retry, if load balancer is successful in reaching the\nservice, the defaultCustomErrorResponsePolicy is ignored and\nthe response from the service is returned to the client.\n\ndefaultCustomErrorResponsePolicy is supported only for\nglobal external Application Load Balancers." + }, + "defaultRouteAction": { + "$ref": "HttpRouteAction", + "description": "defaultRouteAction takes effect when none of the \nhostRules match. The load balancer performs advanced routing\nactions, such as URL rewrites and header transformations, before forwarding\nthe request to the selected backend.\n\n\nOnly one of defaultUrlRedirect, defaultService\nor defaultRouteAction.weightedBackendService can be set.\n\n\n URL maps for classic Application Load Balancers only support\nthe urlRewrite action within defaultRouteAction.\n\n\ndefaultRouteAction has no effect when the URL map is bound\nto a target gRPC proxy that has the validateForProxyless field\nset to true." + }, + "defaultService": { + "description": "The full or partial URL of the defaultService resource to\nwhich traffic is directed if none of the hostRules match.\nIf defaultRouteAction is also specified, advanced\nrouting actions, such as URL rewrites, take effect before sending the\nrequest to the backend.\n\n\nOnly one of defaultUrlRedirect, defaultService\nor defaultRouteAction.weightedBackendService can be set.\n\n\ndefaultService has no effect when the URL map is bound\nto a target gRPC proxy that has the validateForProxyless field\nset to true.", + "type": "string" + }, + "defaultUrlRedirect": { + "$ref": "HttpRedirectAction", + "description": "When none of the specified hostRules match, the request\nis redirected to a URL specified by defaultUrlRedirect.\n\n\nOnly one of defaultUrlRedirect, defaultService\nor defaultRouteAction.weightedBackendService can be set.\n\n\nNot supported when the URL map is bound to a target gRPC proxy." + }, "description": { - "description": "An optional description of this resource. Provide this property when you create the resource.", + "description": "An optional description of this resource. Provide this property when you\ncreate the resource.", "type": "string" }, - "forwardingRules": { - "description": "[Output Only] A list of URLs to the ForwardingRule resources. ForwardingRules are created using compute.forwardingRules.insert and associated with a VPN gateway.", + "fingerprint": { + "description": "Fingerprint of this resource. A hash of the contents stored in this object.\nThis field is used in optimistic locking. This field is ignored when\ninserting a UrlMap. An up-to-date fingerprint must be provided\nin order to update the UrlMap, otherwise the request will\nfail with error 412 conditionNotMet.\n\nTo see the latest fingerprint, make a get() request to\nretrieve a UrlMap.", + "format": "byte", + "type": "string" + }, + "headerAction": { + "$ref": "HttpHeaderAction", + "description": "Specifies changes to request and response headers that need to take effect\nfor the selected backendService.\n\nThe headerAction specified here take effect afterheaderAction specified under pathMatcher.\n\nheaderAction is not supported for load balancers\nthat have\ntheir loadBalancingScheme set to EXTERNAL.\n\nNot supported when the URL map is bound to a target gRPC proxy that\nhas validateForProxyless field set to true." + }, + "hostRules": { + "description": "The list of host rules to use against the URL.", "items": { - "type": "string" + "$ref": "HostRule" }, "type": "array" }, "id": { - "description": "[Output Only] The unique identifier for the resource. This identifier is defined by the server.", + "description": "[Output Only] The unique identifier for the resource. This identifier is\ndefined by the server.", "format": "uint64", "type": "string" }, "kind": { - "default": "compute#targetVpnGateway", - "description": "[Output Only] Type of resource. Always compute#targetVpnGateway for target VPN gateways.", - "type": "string" - }, - "labelFingerprint": { - "description": "A fingerprint for the labels being applied to this TargetVpnGateway, which is essentially a hash of the labels set used for optimistic locking. The fingerprint is initially generated by Compute Engine and changes after every request to modify or update labels. You must always provide an up-to-date fingerprint hash in order to update or change labels, otherwise the request will fail with error 412 conditionNotMet. To see the latest fingerprint, make a get() request to retrieve a TargetVpnGateway.", - "format": "byte", + "default": "compute#urlMap", + "description": "Output only. [Output Only] Type of the resource. Always compute#urlMaps for\nurl maps.", + "readOnly": true, "type": "string" }, - "labels": { - "additionalProperties": { - "type": "string" - }, - "description": "Labels for this resource. These can only be added or modified by the setLabels method. Each label key/value pair must comply with RFC1035. Label values may be empty.", - "type": "object" - }, "name": { - "annotations": { - "required": [ - "compute.targetVpnGateways.insert" - ] - }, - "description": "Name of the resource. Provided by the client when the resource is created. The name must be 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters long and match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash.", + "description": "Name of the resource. Provided by the client when the resource is created.\nThe name must be 1-63 characters long, and comply withRFC1035.\nSpecifically, the name must be 1-63 characters long and match the regular\nexpression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first\ncharacter must be a lowercase letter, and all following characters must\nbe a dash, lowercase letter, or digit, except the last character, which\ncannot be a dash.", "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", "type": "string" }, - "network": { - "annotations": { - "required": [ - "compute.targetVpnGateways.insert" - ] + "pathMatchers": { + "description": "The list of named PathMatchers to use against the URL.", + "items": { + "$ref": "PathMatcher" }, - "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": "array" }, "region": { - "description": "[Output Only] URL of the region where the target VPN gateway resides. You must specify this field as part of the HTTP request URL. It is not settable as a field in the request body.", + "description": "Output only. [Output Only] URL of the region where the regional URL map resides.\nThis field is not applicable to global URL maps.\nYou must specify this field as part of the HTTP request URL. It is\nnot settable as a field in the request body.", + "readOnly": true, "type": "string" }, "selfLink": { "description": "[Output Only] Server-defined URL for the resource.", "type": "string" }, - "status": { - "description": "[Output Only] The status of the VPN gateway, which can be one of the following: CREATING, READY, FAILED, or DELETING.", - "enum": [ - "CREATING", - "DELETING", - "FAILED", - "READY" - ], - "enumDescriptions": [ - "", - "", - "", - "" - ], - "type": "string" - }, - "tunnels": { - "description": "[Output Only] A list of URLs to VpnTunnel resources. VpnTunnels are created using the compute.vpntunnels.insert method and associated with a VPN gateway.", + "tests": { + "description": "The list of expected URL mapping tests. Request to update theUrlMap succeeds only if all test cases pass. You can specify a\nmaximum of 100 tests per UrlMap.\n\nNot supported when the URL map is bound to a target gRPC proxy that\nhas validateForProxyless field set to true.", "items": { - "type": "string" + "$ref": "UrlMapTest" }, "type": "array" } }, "type": "object" }, - "TargetVpnGatewayAggregatedList": { - "id": "TargetVpnGatewayAggregatedList", + "UrlMapList": { + "description": "Contains a list of UrlMap resources.", + "id": "UrlMapList", "properties": { "id": { "description": "[Output Only] Unique identifier for the resource; defined by the server.", "type": "string" }, "items": { - "additionalProperties": { - "$ref": "TargetVpnGatewaysScopedList", - "description": "[Output Only] Name of the scope containing this set of target VPN gateways." + "description": "A list of UrlMap resources.", + "items": { + "$ref": "UrlMap" }, - "description": "A list of TargetVpnGateway resources.", - "type": "object" + "type": "array" }, "kind": { - "default": "compute#targetVpnGatewayAggregatedList", - "description": "[Output Only] Type of resource. Always compute#targetVpnGateway for target VPN gateways.", + "default": "compute#urlMapList", + "description": "Output only. Type of resource.", + "readOnly": true, "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.", + "description": "[Output Only] This token allows you to get the next page of results for\nlist requests. If the number of results is larger thanmaxResults, use the nextPageToken as a value for\nthe query parameter pageToken in the next list request.\nSubsequent list requests will have their own nextPageToken to\ncontinue paging through the results.", "type": "string" }, "selfLink": { - "description": "[Output Only] Server-defined URL for this resource.", + "description": "Output only. [Output Only] Server-defined URL for this resource.", + "readOnly": true, "type": "string" }, - "unreachables": { - "description": "[Output Only] Unreachable resources.", - "items": { - "type": "string" - }, - "type": "array" - }, "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.", + "description": "[Output Only] A warning code, if applicable. For example, Compute\nEngine returns NO_RESULTS_ON_PAGE if there\nare no results in the response.", "enum": [ "CLEANUP_FAILED", "DEPRECATED_RESOURCE_USED", @@ -80725,6 +108289,7 @@ "NOT_CRITICAL_ERROR", "NO_RESULTS_ON_PAGE", "PARTIAL_SUCCESS", + "QUOTA_INFO_UNAVAILABLE", "REQUIRED_TOS_AGREEMENT", "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", "RESOURCE_NOT_DELETED", @@ -80761,46 +108326,48 @@ false, false, false, + false, false ], "enumDescriptions": [ - "Warning about failed cleanup of transient changes made by a failed operation.", + "Warning about failed cleanup of transient changes made by a failed\noperation.", "A link to a deprecated resource was created.", - "When deploying and at least one of the resources has a type marked as deprecated", + "When deploying and at least one of the resources has a type marked as\ndeprecated", "The user created a boot disk that is larger than image size.", - "When deploying and at least one of the resources has a type marked as experimental", + "When deploying and at least one of the resources has a type marked as\nexperimental", "Warning that is present in an external api call", - "Warning that value of a field has been overridden. Deprecated unused field.", + "Warning that value of a field has been overridden.\nDeprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", - "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is\nnot of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", - "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", + "Resource can't be retrieved due to list overhead quota exceed\nwhich captures the amount of resources filtered out by\nuser-defined list filter.", "A resource depends on a missing type", - "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's nextHopIp address is not assigned to an instance on the\nnetwork.", "The route's next hop instance cannot ip forward.", - "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not have an\nipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", - "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that is not on the\nsame network as the route.", "The route's next hop instance does not have a status of RUNNING.", - "Error which is not critical. We decided to continue the process despite the mentioned error.", + "Error which is not critical. We decided to continue the process despite\nthe mentioned error.", "No results are present on a particular list page.", "Success is reported, but some results may be missing due to errors", - "The user attempted to use a resource that requires a TOS they have not accepted.", + "Quota information is not available to client requests (e.g:\nregions.list).", + "The user attempted to use a resource that requires a TOS they have not\naccepted.", "Warning that a resource is in use.", - "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "One or more of the resources set to auto-delete could not be deleted\nbecause they were in use.", "When a resource schema validation is ignored.", - "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", + "Instance template used in instance group manager is valid as such, but\nits application does not make a lot of sense, because it allows only\nsingle instance in instance group.", "When undeclared properties in the schema are present", "A given scope cannot be reached." ], "type": "string" }, "data": { - "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", + "description": "[Output Only] Metadata about this warning in key:\nvalue format. For example:\n\n\"data\": [\n {\n \"key\": \"scope\",\n \"value\": \"zones/us-east1-d\"\n }", "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).", + "description": "[Output Only] A key that provides more detail on the warning being\nreturned. For example, for warnings where there are no results in a list\nrequest for a particular zone, this key might be scope and\nthe key value might be the zone name. Other examples might be a key\nindicating a deprecated resource and a suggested replacement, or a\nwarning about invalid network settings (for example, if an instance\nattempts to perform IP forwarding but is not enabled for IP forwarding).", "type": "string" }, "value": { @@ -80817,44 +108384,144 @@ "type": "string" } }, - "type": "object" + "type": "object" + } + }, + "type": "object" + }, + "UrlMapReference": { + "id": "UrlMapReference", + "properties": { + "urlMap": { + "type": "string" + } + }, + "type": "object" + }, + "UrlMapTest": { + "description": "Message for the expected URL mappings.", + "id": "UrlMapTest", + "properties": { + "description": { + "description": "Description of this test case.", + "type": "string" + }, + "expectedOutputUrl": { + "description": "The expected output URL evaluated by the load balancer\ncontaining the scheme, host, path and query parameters.\n\nFor rules that forward requests to backends, the test passes only whenexpectedOutputUrl matches the request forwarded by\nthe load balancer to backends. For rules with urlRewrite,\nthe test verifies that the forwarded request matcheshostRewrite and pathPrefixRewrite in theurlRewrite action. When service is specified,expectedOutputUrl`s scheme is ignored.\n\nFor rules with urlRedirect, the test passes only ifexpectedOutputUrl matches the URL in the load balancer's\nredirect response. If urlRedirect specifieshttps_redirect, the test passes only if the scheme inexpectedOutputUrl is also set to HTTPS.\nIf urlRedirect specifies strip_query, the test\npasses only if expectedOutputUrl does not contain any query\nparameters. \n\nexpectedOutputUrl is optional whenservice is specified.", + "type": "string" + }, + "expectedRedirectResponseCode": { + "description": "For rules with urlRedirect, the test passes only ifexpectedRedirectResponseCode matches the HTTP status code in\nload balancer's redirect response.\n\nexpectedRedirectResponseCode cannot be set whenservice is set.", + "format": "int32", + "type": "integer" + }, + "headers": { + "description": "HTTP headers for this request. If headers contains\na host header, then host must also match the header value.", + "items": { + "$ref": "UrlMapTestHeader" + }, + "type": "array" + }, + "host": { + "description": "Host portion of the URL. If headers contains a host header,\nthen host must also match the header value.", + "type": "string" + }, + "path": { + "description": "Path portion of the URL.", + "type": "string" + }, + "service": { + "description": "Expected BackendService or BackendBucket resource\nthe given URL should be mapped to. \n\nThe service field cannot\nbe set if expectedRedirectResponseCode is set.", + "type": "string" } }, "type": "object" }, - "TargetVpnGatewayList": { - "description": "Contains a list of TargetVpnGateway resources.", - "id": "TargetVpnGatewayList", + "UrlMapTestHeader": { + "description": "HTTP headers used in UrlMapTests.", + "id": "UrlMapTestHeader", + "properties": { + "name": { + "description": "Header name.", + "type": "string" + }, + "value": { + "description": "Header value.", + "type": "string" + } + }, + "type": "object" + }, + "UrlMapValidationResult": { + "description": "Message representing the validation result for a UrlMap.", + "id": "UrlMapValidationResult", + "properties": { + "loadErrors": { + "items": { + "type": "string" + }, + "type": "array" + }, + "loadSucceeded": { + "description": "Whether the given UrlMap can be successfully loaded.\nIf false, 'loadErrors' indicates the reasons.", + "type": "boolean" + }, + "testFailures": { + "items": { + "$ref": "TestFailure" + }, + "type": "array" + }, + "testPassed": { + "description": "If successfully loaded, this field indicates whether the test passed.\nIf false, 'testFailures's indicate the reason of failure.", + "type": "boolean" + } + }, + "type": "object" + }, + "UrlMapsAggregatedList": { + "id": "UrlMapsAggregatedList", "properties": { "id": { "description": "[Output Only] Unique identifier for the resource; defined by the server.", "type": "string" }, "items": { - "description": "A list of TargetVpnGateway resources.", - "items": { - "$ref": "TargetVpnGateway" + "additionalProperties": { + "$ref": "UrlMapsScopedList", + "description": "Name of the scope containing this set of UrlMaps." }, - "type": "array" + "description": "A list of UrlMapsScopedList resources.", + "type": "object" }, "kind": { - "default": "compute#targetVpnGatewayList", - "description": "[Output Only] Type of resource. Always compute#targetVpnGateway for target VPN gateways.", + "default": "compute#urlMapsAggregatedList", + "description": "Output only. Type of resource.", + "readOnly": true, "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.", + "description": "[Output Only] This token allows you to get the next page of results for\nlist requests. If the number of results is larger thanmaxResults, use the nextPageToken as a value for\nthe query parameter pageToken in the next list request.\nSubsequent list requests will have their own nextPageToken to\ncontinue paging through the results.", "type": "string" }, "selfLink": { - "description": "[Output Only] Server-defined URL for this resource.", + "description": "Output only. [Output Only] Server-defined URL for this resource.", + "readOnly": true, "type": "string" }, + "unreachables": { + "description": "Output only. [Output Only] Unreachable resources.", + "items": { + "type": "string" + }, + "readOnly": true, + "type": "array" + }, "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.", + "description": "[Output Only] A warning code, if applicable. For example, Compute\nEngine returns NO_RESULTS_ON_PAGE if there\nare no results in the response.", "enum": [ "CLEANUP_FAILED", "DEPRECATED_RESOURCE_USED", @@ -80877,6 +108544,7 @@ "NOT_CRITICAL_ERROR", "NO_RESULTS_ON_PAGE", "PARTIAL_SUCCESS", + "QUOTA_INFO_UNAVAILABLE", "REQUIRED_TOS_AGREEMENT", "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", "RESOURCE_NOT_DELETED", @@ -80913,46 +108581,48 @@ false, false, false, + false, false ], "enumDescriptions": [ - "Warning about failed cleanup of transient changes made by a failed operation.", + "Warning about failed cleanup of transient changes made by a failed\noperation.", "A link to a deprecated resource was created.", - "When deploying and at least one of the resources has a type marked as deprecated", + "When deploying and at least one of the resources has a type marked as\ndeprecated", "The user created a boot disk that is larger than image size.", - "When deploying and at least one of the resources has a type marked as experimental", + "When deploying and at least one of the resources has a type marked as\nexperimental", "Warning that is present in an external api call", - "Warning that value of a field has been overridden. Deprecated unused field.", + "Warning that value of a field has been overridden.\nDeprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", - "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is\nnot of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", - "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", + "Resource can't be retrieved due to list overhead quota exceed\nwhich captures the amount of resources filtered out by\nuser-defined list filter.", "A resource depends on a missing type", - "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's nextHopIp address is not assigned to an instance on the\nnetwork.", "The route's next hop instance cannot ip forward.", - "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not have an\nipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", - "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that is not on the\nsame network as the route.", "The route's next hop instance does not have a status of RUNNING.", - "Error which is not critical. We decided to continue the process despite the mentioned error.", + "Error which is not critical. We decided to continue the process despite\nthe mentioned error.", "No results are present on a particular list page.", "Success is reported, but some results may be missing due to errors", - "The user attempted to use a resource that requires a TOS they have not accepted.", + "Quota information is not available to client requests (e.g:\nregions.list).", + "The user attempted to use a resource that requires a TOS they have not\naccepted.", "Warning that a resource is in use.", - "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "One or more of the resources set to auto-delete could not be deleted\nbecause they were in use.", "When a resource schema validation is ignored.", - "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", + "Instance template used in instance group manager is valid as such, but\nits application does not make a lot of sense, because it allows only\nsingle instance in instance group.", "When undeclared properties in the schema are present", "A given scope cannot be reached." ], "type": "string" }, "data": { - "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", + "description": "[Output Only] Metadata about this warning in key:\nvalue format. For example:\n\n\"data\": [\n {\n \"key\": \"scope\",\n \"value\": \"zones/us-east1-d\"\n }", "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).", + "description": "[Output Only] A key that provides more detail on the warning being\nreturned. For example, for warnings where there are no results in a list\nrequest for a particular zone, this key might be scope and\nthe key value might be the zone name. Other examples might be a key\nindicating a deprecated resource and a suggested replacement, or a\nwarning about invalid network settings (for example, if an instance\nattempts to perform IP forwarding but is not enabled for IP forwarding).", "type": "string" }, "value": { @@ -80974,21 +108644,21 @@ }, "type": "object" }, - "TargetVpnGatewaysScopedList": { - "id": "TargetVpnGatewaysScopedList", + "UrlMapsScopedList": { + "id": "UrlMapsScopedList", "properties": { - "targetVpnGateways": { - "description": "[Output Only] A list of target VPN gateways contained in this scope.", + "urlMaps": { + "description": "A list of UrlMaps contained in this scope.", "items": { - "$ref": "TargetVpnGateway" + "$ref": "UrlMap" }, "type": "array" }, "warning": { - "description": "[Output Only] Informational warning which replaces the list of addresses when the list is empty.", + "description": "Informational warning which replaces the list of\nbackend services when the list is empty.", "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.", + "description": "[Output Only] A warning code, if applicable. For example, Compute\nEngine returns NO_RESULTS_ON_PAGE if there\nare no results in the response.", "enum": [ "CLEANUP_FAILED", "DEPRECATED_RESOURCE_USED", @@ -81011,6 +108681,7 @@ "NOT_CRITICAL_ERROR", "NO_RESULTS_ON_PAGE", "PARTIAL_SUCCESS", + "QUOTA_INFO_UNAVAILABLE", "REQUIRED_TOS_AGREEMENT", "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", "RESOURCE_NOT_DELETED", @@ -81047,46 +108718,48 @@ false, false, false, + false, false ], "enumDescriptions": [ - "Warning about failed cleanup of transient changes made by a failed operation.", + "Warning about failed cleanup of transient changes made by a failed\noperation.", "A link to a deprecated resource was created.", - "When deploying and at least one of the resources has a type marked as deprecated", + "When deploying and at least one of the resources has a type marked as\ndeprecated", "The user created a boot disk that is larger than image size.", - "When deploying and at least one of the resources has a type marked as experimental", + "When deploying and at least one of the resources has a type marked as\nexperimental", "Warning that is present in an external api call", - "Warning that value of a field has been overridden. Deprecated unused field.", + "Warning that value of a field has been overridden.\nDeprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", - "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is\nnot of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", - "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", + "Resource can't be retrieved due to list overhead quota exceed\nwhich captures the amount of resources filtered out by\nuser-defined list filter.", "A resource depends on a missing type", - "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's nextHopIp address is not assigned to an instance on the\nnetwork.", "The route's next hop instance cannot ip forward.", - "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not have an\nipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", - "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that is not on the\nsame network as the route.", "The route's next hop instance does not have a status of RUNNING.", - "Error which is not critical. We decided to continue the process despite the mentioned error.", + "Error which is not critical. We decided to continue the process despite\nthe mentioned error.", "No results are present on a particular list page.", "Success is reported, but some results may be missing due to errors", - "The user attempted to use a resource that requires a TOS they have not accepted.", + "Quota information is not available to client requests (e.g:\nregions.list).", + "The user attempted to use a resource that requires a TOS they have not\naccepted.", "Warning that a resource is in use.", - "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "One or more of the resources set to auto-delete could not be deleted\nbecause they were in use.", "When a resource schema validation is ignored.", - "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", + "Instance template used in instance group manager is valid as such, but\nits application does not make a lot of sense, because it allows only\nsingle instance in instance group.", "When undeclared properties in the schema are present", "A given scope cannot be reached." ], "type": "string" }, "data": { - "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", + "description": "[Output Only] Metadata about this warning in key:\nvalue format. For example:\n\n\"data\": [\n {\n \"key\": \"scope\",\n \"value\": \"zones/us-east1-d\"\n }", "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).", + "description": "[Output Only] A key that provides more detail on the warning being\nreturned. For example, for warnings where there are no results in a list\nrequest for a particular zone, this key might be scope and\nthe key value might be the zone name. Other examples might be a key\nindicating a deprecated resource and a suggested replacement, or a\nwarning about invalid network settings (for example, if an instance\nattempts to perform IP forwarding but is not enabled for IP forwarding).", "type": "string" }, "value": { @@ -81108,256 +108781,223 @@ }, "type": "object" }, - "TestFailure": { - "id": "TestFailure", - "properties": { - "actualOutputUrl": { - "description": "The actual output URL evaluated by a load balancer containing the scheme, host, path and query parameters.", - "type": "string" - }, - "actualRedirectResponseCode": { - "description": "Actual HTTP status code for rule with `urlRedirect` calculated by load balancer", - "format": "int32", - "type": "integer" - }, - "actualService": { - "description": "BackendService or BackendBucket returned by load balancer.", - "type": "string" - }, - "expectedOutputUrl": { - "description": "The expected output URL evaluated by a load balancer containing the scheme, host, path and query parameters.", - "type": "string" - }, - "expectedRedirectResponseCode": { - "description": "Expected HTTP status code for rule with `urlRedirect` calculated by load balancer", - "format": "int32", - "type": "integer" - }, - "expectedService": { - "description": "Expected BackendService or BackendBucket resource the given URL should be mapped to.", - "type": "string" - }, - "headers": { - "description": "HTTP headers of the request.", - "items": { - "$ref": "UrlMapTestHeader" - }, - "type": "array" - }, - "host": { - "description": "Host portion of the URL.", - "type": "string" - }, - "path": { - "description": "Path portion including query parameters in the URL.", - "type": "string" - } - }, - "type": "object" - }, - "TestPermissionsRequest": { - "id": "TestPermissionsRequest", + "UrlMapsValidateRequest": { + "id": "UrlMapsValidateRequest", "properties": { - "permissions": { - "description": "The set of permissions to check for the 'resource'. Permissions with wildcards (such as '*' or 'storage.*') are not allowed.", + "loadBalancingSchemes": { + "description": "Specifies the load balancer type(s) this validation request is for. UseEXTERNAL_MANAGED for global external Application Load\nBalancers and regional external Application Load Balancers.\nUse EXTERNAL for classic Application Load Balancers.\n\nUse INTERNAL_MANAGED for internal Application Load Balancers. For more\ninformation, refer to Choosing\na load balancer.\n\nIf unspecified, the load balancing scheme will be inferred from the backend\nservice resources this URL map references. If that can not be inferred (for\nexample, this URL map only references backend buckets, or this Url map is\nfor rewrites and redirects only and doesn't reference any backends),EXTERNAL will be used as the default type.\n\nIf specified, the scheme(s) must not conflict with the load balancing\nscheme of the backend service resources this Url map references.", "items": { + "enum": [ + "EXTERNAL", + "EXTERNAL_MANAGED", + "LOAD_BALANCING_SCHEME_UNSPECIFIED" + ], + "enumDescriptions": [ + "Signifies that this will be used for classic Application Load Balancers.", + "Signifies that this will be used for Envoy-based global external\nApplication Load Balancers.", + "If unspecified, the validation will try to infer the scheme from the\nbackend service resources this Url map references. If the inference is not\npossible, EXTERNAL will be used as the default type." + ], "type": "string" }, "type": "array" + }, + "resource": { + "$ref": "UrlMap", + "description": "Content of the UrlMap to be validated." } }, "type": "object" }, - "TestPermissionsResponse": { - "id": "TestPermissionsResponse", + "UrlMapsValidateResponse": { + "id": "UrlMapsValidateResponse", "properties": { - "permissions": { - "description": "A subset of `TestPermissionsRequest.permissions` that the caller is allowed.", - "items": { - "type": "string" - }, - "type": "array" + "result": { + "$ref": "UrlMapValidationResult" } }, "type": "object" }, - "Uint128": { - "id": "Uint128", + "UrlRewrite": { + "description": "The spec for modifying the path before sending the request to the matched\nbackend service.", + "id": "UrlRewrite", "properties": { - "high": { - "format": "uint64", + "hostRewrite": { + "description": "Before forwarding the request to the selected service, the request's\nhost header is replaced with contents of hostRewrite.\n\nThe value must be from 1 to 255 characters.", "type": "string" }, - "low": { - "format": "uint64", + "pathPrefixRewrite": { + "description": "Before forwarding the request to the selected backend service, the\nmatching portion of the request's path is replaced bypathPrefixRewrite.\n\nThe value must be from 1 to 1024 characters.", + "type": "string" + }, + "pathTemplateRewrite": { + "description": "If specified, the pattern rewrites the URL path (based on the :path\nheader) using the HTTP template syntax. \n\nA corresponding\npath_template_match must be specified. Any template variables must exist in\nthe path_template_match field. \n \n \n - -At least one variable must be specified in the path_template_match\n field \n - You can omit variables from the rewritten URL\n - The * and ** operators cannot be matched\n unless they have a corresponding variable name - e.g.\n {format=*} or {var=**}.\n\nFor example, a path_template_match of /static/{format=**}\ncould be rewritten as /static/content/{format} to prefix/content to the URL. Variables can also be re-ordered in a\nrewrite, so that /{country}/{format}/{suffix=**} can be\nrewritten as /content/{format}/{country}/{suffix}. \n\nAt least\none non-empty routeRules[].matchRules[].path_template_match is\nrequired. \n\nOnly one of path_prefix_rewrite orpath_template_rewrite may be specified.", "type": "string" } }, "type": "object" }, - "UpcomingMaintenance": { - "description": "Upcoming Maintenance notification information.", - "id": "UpcomingMaintenance", + "UsableSubnetwork": { + "description": "Subnetwork which the current user has compute.subnetworks.use permission on.", + "id": "UsableSubnetwork", "properties": { - "canReschedule": { - "description": "Indicates if the maintenance can be customer triggered.", - "type": "boolean" + "externalIpv6Prefix": { + "description": "Output only. [Output Only] The external IPv6 address range that is assigned to this\nsubnetwork.", + "readOnly": true, + "type": "string" }, - "latestWindowStartTime": { - "description": "The latest time for the planned maintenance window to start. This timestamp value is in RFC3339 text format.", + "internalIpv6Prefix": { + "description": "Output only. [Output Only] The internal IPv6 address range that is assigned to this\nsubnetwork.", + "readOnly": true, "type": "string" }, - "maintenanceStatus": { - "enum": [ - "ONGOING", - "PENDING", - "UNKNOWN" - ], - "enumDescriptions": [ - "There is ongoing maintenance on this VM.", - "There is pending maintenance.", - "Unknown maintenance status. Do not use this value." - ], + "ipCidrRange": { + "description": "The range of internal addresses that are owned by this subnetwork.", "type": "string" }, - "type": { - "description": "Defines the type of maintenance.", + "ipv6AccessType": { + "description": "The access type of IPv6 address this subnet holds. It's immutable and can\nonly be specified during creation or the first time the subnet is updated\ninto IPV4_IPV6 dual stack.", "enum": [ - "SCHEDULED", - "UNKNOWN_TYPE", - "UNSCHEDULED" + "EXTERNAL", + "INTERNAL" ], "enumDescriptions": [ - "Scheduled maintenance (e.g. maintenance after uptime guarantee is complete).", - "No type specified. Do not use this value.", - "Unscheduled maintenance (e.g. emergency maintenance during uptime guarantee)." + "VMs on this subnet will be assigned IPv6 addresses that are accessible\nvia the Internet, as well as the VPC network.", + "VMs on this subnet will be assigned IPv6 addresses that are only\naccessible over the VPC network." ], "type": "string" }, - "windowEndTime": { - "description": "The time by which the maintenance disruption will be completed. This timestamp value is in RFC3339 text format.", - "type": "string" - }, - "windowStartTime": { - "description": "The current start time of the maintenance window. This timestamp value is in RFC3339 text format.", - "type": "string" - } - }, - "type": "object" - }, - "UrlMap": { - "description": "Represents a URL Map resource. Compute Engine has two URL Map resources: * [Global](/compute/docs/reference/rest/v1/urlMaps) * [Regional](/compute/docs/reference/rest/v1/regionUrlMaps) A URL map resource is a component of certain types of cloud load balancers and Traffic Director: * urlMaps are used by global external Application Load Balancers, classic Application Load Balancers, and cross-region internal Application Load Balancers. * regionUrlMaps are used by internal Application Load Balancers, regional external Application Load Balancers and regional internal Application Load Balancers. For a list of supported URL map features by the load balancer type, see the Load balancing features: Routing and traffic management table. For a list of supported URL map features for Traffic Director, see the Traffic Director features: Routing and traffic management table. This resource defines mappings from hostnames and URL paths to either a backend service or a backend bucket. To use the global urlMaps resource, the backend service must have a loadBalancingScheme of either EXTERNAL or INTERNAL_SELF_MANAGED. To use the regionUrlMaps resource, the backend service must have a loadBalancingScheme of INTERNAL_MANAGED. For more information, read URL Map Concepts.", - "id": "UrlMap", - "properties": { - "creationTimestamp": { - "description": "[Output Only] Creation timestamp in RFC3339 text format.", - "type": "string" - }, - "defaultRouteAction": { - "$ref": "HttpRouteAction", - "description": "defaultRouteAction takes effect when none of the hostRules match. The load balancer performs advanced routing actions, such as URL rewrites and header transformations, before forwarding the request to the selected backend. If defaultRouteAction specifies any weightedBackendServices, defaultService must not be set. Conversely if defaultService is set, defaultRouteAction cannot contain any weightedBackendServices. Only one of defaultRouteAction or defaultUrlRedirect must be set. URL maps for classic Application Load Balancers only support the urlRewrite action within defaultRouteAction. defaultRouteAction has no effect when the URL map is bound to a target gRPC proxy that has the validateForProxyless field set to true." - }, - "defaultService": { - "description": "The full or partial URL of the defaultService resource to which traffic is directed if none of the hostRules match. If defaultRouteAction is also specified, advanced routing actions, such as URL rewrites, take effect before sending the request to the backend. However, if defaultService is specified, defaultRouteAction cannot contain any weightedBackendServices. Conversely, if routeAction specifies any weightedBackendServices, service must not be specified. If defaultService is specified, then set either defaultUrlRedirect , or defaultRouteAction.weightedBackendService Don't set both. defaultService has no effect when the URL map is bound to a target gRPC proxy that has the validateForProxyless field set to true.", + "network": { + "description": "Network URL.", "type": "string" }, - "defaultUrlRedirect": { - "$ref": "HttpRedirectAction", - "description": "When none of the specified hostRules match, the request is redirected to a URL specified by defaultUrlRedirect. If defaultUrlRedirect is specified, defaultService or defaultRouteAction must not be set. Not supported when the URL map is bound to a target gRPC proxy." - }, - "description": { - "description": "An optional description of this resource. Provide this property when you create the resource.", + "purpose": { + "enum": [ + "GLOBAL_MANAGED_PROXY", + "INTERNAL_HTTPS_LOAD_BALANCER", + "PEER_MIGRATION", + "PRIVATE", + "PRIVATE_NAT", + "PRIVATE_RFC_1918", + "PRIVATE_SERVICE_CONNECT", + "REGIONAL_MANAGED_PROXY" + ], + "enumDescriptions": [ + "Subnet reserved for Global Envoy-based Load Balancing.", + "Subnet reserved for Internal HTTP(S) Load Balancing. This is a legacy\npurpose, please use REGIONAL_MANAGED_PROXY instead.", + "Subnetwork will be used for Migration from one peered VPC to another.\n(a transient state of subnetwork\nwhile migrating resources from one project to another).", + "Regular user created or automatically created subnet.", + "Subnetwork used as source range for Private NAT Gateways.", + "Regular user created or automatically created subnet.", + "Subnetworks created for Private Service Connect in the producer network.", + "Subnetwork used for Regional Envoy-based Load Balancing." + ], "type": "string" }, - "fingerprint": { - "description": "Fingerprint of this resource. A hash of the contents stored in this object. This field is used in optimistic locking. This field is ignored when inserting a UrlMap. An up-to-date fingerprint must be provided in order to update the UrlMap, otherwise the request will fail with error 412 conditionNotMet. To see the latest fingerprint, make a get() request to retrieve a UrlMap.", - "format": "byte", + "role": { + "description": "The role of subnetwork. Currently, this field is only used when\npurpose is set to GLOBAL_MANAGED_PROXY orREGIONAL_MANAGED_PROXY. The value can be set toACTIVE or BACKUP. An ACTIVE\nsubnetwork is one that is currently being used for Envoy-based load\nbalancers in a region. A BACKUP subnetwork is one that is\nready to be promoted to ACTIVE or is currently draining.\nThis field can be updated with a patch request.", + "enum": [ + "ACTIVE", + "BACKUP" + ], + "enumDescriptions": [ + "The ACTIVE subnet that is currently used.", + "The BACKUP subnet that could be promoted to ACTIVE." + ], "type": "string" }, - "headerAction": { - "$ref": "HttpHeaderAction", - "description": "Specifies changes to request and response headers that need to take effect for the selected backendService. The headerAction specified here take effect after headerAction specified under pathMatcher. headerAction is not supported for load balancers that have their loadBalancingScheme set to EXTERNAL. Not supported when the URL map is bound to a target gRPC proxy that has validateForProxyless field set to true." - }, - "hostRules": { - "description": "The list of host rules to use against the URL.", + "secondaryIpRanges": { + "description": "Secondary IP ranges.", "items": { - "$ref": "HostRule" + "$ref": "UsableSubnetworkSecondaryRange" }, "type": "array" }, - "id": { - "description": "[Output Only] The unique identifier for the resource. This identifier is defined by the server.", - "format": "uint64", - "type": "string" - }, - "kind": { - "default": "compute#urlMap", - "description": "[Output Only] Type of the resource. Always compute#urlMaps for url maps.", + "stackType": { + "description": "The stack type for the subnet. If set to IPV4_ONLY, new VMs\nin the subnet are assigned IPv4 addresses only. If set toIPV4_IPV6, new VMs in the subnet can be assigned both IPv4 and\nIPv6 addresses. If not specified, IPV4_ONLY is used.\n\nThis field can be both set at resource creation time and updated usingpatch.", + "enum": [ + "IPV4_IPV6", + "IPV4_ONLY", + "IPV6_ONLY" + ], + "enumDescriptions": [ + "New VMs in this subnet can have both IPv4 and IPv6 addresses.", + "New VMs in this subnet will only be assigned IPv4 addresses.", + "New VMs in this subnet will only be assigned IPv6 addresses." + ], "type": "string" }, - "name": { - "description": "Name of the resource. Provided by the client when the resource is created. The name must be 1-63 characters long, and comply with RFC1035. 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])?", + "subnetwork": { + "description": "Subnetwork URL.", "type": "string" - }, - "pathMatchers": { - "description": "The list of named PathMatchers to use against the URL.", - "items": { - "$ref": "PathMatcher" - }, - "type": "array" - }, - "region": { - "description": "[Output Only] URL of the region where the regional URL map resides. This field is not applicable to global URL maps. You must specify this field as part of the HTTP request URL. It is not settable as a field in the request body.", + } + }, + "type": "object" + }, + "UsableSubnetworkSecondaryRange": { + "description": "Secondary IP range of a usable subnetwork.", + "id": "UsableSubnetworkSecondaryRange", + "properties": { + "ipCidrRange": { + "description": "The range of IP addresses belonging to this subnetwork secondary range.\nCan be Ipv4 or Ipv6 range.", "type": "string" }, - "selfLink": { - "description": "[Output Only] Server-defined URL for the resource.", + "rangeName": { + "description": "The name associated with this subnetwork secondary range, used when adding\nan alias IP range to a VM instance.\nThe name must be 1-63 characters long, and comply withRFC1035.\nThe name must be unique within the subnetwork.", "type": "string" - }, - "tests": { - "description": "The list of expected URL mapping tests. Request to update the UrlMap succeeds only if all test cases pass. You can specify a maximum of 100 tests per UrlMap. Not supported when the URL map is bound to a target gRPC proxy that has validateForProxyless field set to true.", - "items": { - "$ref": "UrlMapTest" - }, - "type": "array" } }, "type": "object" }, - "UrlMapList": { - "description": "Contains a list of UrlMap resources.", - "id": "UrlMapList", + "UsableSubnetworksAggregatedList": { + "id": "UsableSubnetworksAggregatedList", "properties": { "id": { - "description": "[Output Only] Unique identifier for the resource; defined by the server.", + "description": "[Output Only] The unique identifier for the resource. This identifier is\ndefined by the server.", "type": "string" }, "items": { - "description": "A list of UrlMap resources.", + "description": "[Output] A list of usable subnetwork URLs.", "items": { - "$ref": "UrlMap" + "$ref": "UsableSubnetwork" }, "type": "array" }, "kind": { - "default": "compute#urlMapList", - "description": "Type of resource.", + "default": "compute#usableSubnetworksAggregatedList", + "description": "Output only. [Output Only] Type of resource. Alwayscompute#usableSubnetworksAggregatedList for aggregated lists\nof usable subnetworks.", + "readOnly": true, "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.", + "description": "[Output Only] This token allows you to get the next page of results for\nlist requests. If the number of results is larger thanmaxResults, use the nextPageToken as a value for\nthe query parameter pageToken in the next list request.\nSubsequent list requests will have their own nextPageToken to\ncontinue paging through the results.\nIn special cases listUsable may return 0 subnetworks andnextPageToken which still should be used to get the\nnext page of results.", "type": "string" }, + "scopedWarnings": { + "description": "Output only. [Output Only] Informational warning messages for failures encountered from\nscopes.", + "items": { + "$ref": "SubnetworksScopedWarning" + }, + "readOnly": true, + "type": "array" + }, "selfLink": { - "description": "[Output Only] Server-defined URL for this resource.", + "description": "Output only. [Output Only] Server-defined URL for this resource.", + "readOnly": true, "type": "string" }, + "unreachables": { + "description": "Output only. [Output Only] Unreachable resources.", + "items": { + "type": "string" + }, + "readOnly": true, + "type": "array" + }, "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.", + "description": "[Output Only] A warning code, if applicable. For example, Compute\nEngine returns NO_RESULTS_ON_PAGE if there\nare no results in the response.", "enum": [ "CLEANUP_FAILED", "DEPRECATED_RESOURCE_USED", @@ -81380,6 +109020,7 @@ "NOT_CRITICAL_ERROR", "NO_RESULTS_ON_PAGE", "PARTIAL_SUCCESS", + "QUOTA_INFO_UNAVAILABLE", "REQUIRED_TOS_AGREEMENT", "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", "RESOURCE_NOT_DELETED", @@ -81416,46 +109057,48 @@ false, false, false, + false, false ], "enumDescriptions": [ - "Warning about failed cleanup of transient changes made by a failed operation.", + "Warning about failed cleanup of transient changes made by a failed\noperation.", "A link to a deprecated resource was created.", - "When deploying and at least one of the resources has a type marked as deprecated", + "When deploying and at least one of the resources has a type marked as\ndeprecated", "The user created a boot disk that is larger than image size.", - "When deploying and at least one of the resources has a type marked as experimental", + "When deploying and at least one of the resources has a type marked as\nexperimental", "Warning that is present in an external api call", - "Warning that value of a field has been overridden. Deprecated unused field.", + "Warning that value of a field has been overridden.\nDeprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", - "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is\nnot of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", - "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", + "Resource can't be retrieved due to list overhead quota exceed\nwhich captures the amount of resources filtered out by\nuser-defined list filter.", "A resource depends on a missing type", - "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's nextHopIp address is not assigned to an instance on the\nnetwork.", "The route's next hop instance cannot ip forward.", - "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not have an\nipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", - "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that is not on the\nsame network as the route.", "The route's next hop instance does not have a status of RUNNING.", - "Error which is not critical. We decided to continue the process despite the mentioned error.", + "Error which is not critical. We decided to continue the process despite\nthe mentioned error.", "No results are present on a particular list page.", "Success is reported, but some results may be missing due to errors", - "The user attempted to use a resource that requires a TOS they have not accepted.", + "Quota information is not available to client requests (e.g:\nregions.list).", + "The user attempted to use a resource that requires a TOS they have not\naccepted.", "Warning that a resource is in use.", - "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "One or more of the resources set to auto-delete could not be deleted\nbecause they were in use.", "When a resource schema validation is ignored.", - "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", + "Instance template used in instance group manager is valid as such, but\nits application does not make a lot of sense, because it allows only\nsingle instance in instance group.", "When undeclared properties in the schema are present", "A given scope cannot be reached." ], "type": "string" }, "data": { - "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", + "description": "[Output Only] Metadata about this warning in key:\nvalue format. For example:\n\n\"data\": [\n {\n \"key\": \"scope\",\n \"value\": \"zones/us-east1-d\"\n }", "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).", + "description": "[Output Only] A key that provides more detail on the warning being\nreturned. For example, for warnings where there are no results in a list\nrequest for a particular zone, this key might be scope and\nthe key value might be the zone name. Other examples might be a key\nindicating a deprecated resource and a suggested replacement, or a\nwarning about invalid network settings (for example, if an instance\nattempts to perform IP forwarding but is not enabled for IP forwarding).", "type": "string" }, "value": { @@ -81477,136 +109120,169 @@ }, "type": "object" }, - "UrlMapReference": { - "id": "UrlMapReference", + "UsageExportLocation": { + "description": "The location in Cloud Storage and naming method of the daily usage\nreport. Contains bucket_name and report_name prefix.", + "id": "UsageExportLocation", "properties": { - "urlMap": { + "bucketName": { + "description": "The name of an existing bucket in Cloud Storage where the usage report\nobject is stored. The Google Service Account is granted write access to\nthis bucket. This can either be the bucket name by itself, such asexample-bucket, or the bucket name with gs://\nor https://storage.googleapis.com/ in front of it, such\nas gs://example-bucket.", + "type": "string" + }, + "reportNamePrefix": { + "description": "An optional prefix for the name of the usage report object stored inbucketName. If not supplied, defaults tousage_gce. The report is stored as a CSV file namedreport_name_prefix_gce_YYYYMMDD.csv whereYYYYMMDD is the day of the usage according to Pacific Time.\nIf you supply a prefix, it should conform to Cloud Storageobject naming\nconventions.", "type": "string" } }, "type": "object" }, - "UrlMapTest": { - "description": "Message for the expected URL mappings.", - "id": "UrlMapTest", + "VmEndpointNatMappings": { + "description": "Contain information of Nat mapping for a VM endpoint (i.e., NIC).", + "id": "VmEndpointNatMappings", "properties": { - "description": { - "description": "Description of this test case.", - "type": "string" - }, - "expectedOutputUrl": { - "description": "The expected output URL evaluated by the load balancer containing the scheme, host, path and query parameters. For rules that forward requests to backends, the test passes only when expectedOutputUrl matches the request forwarded by the load balancer to backends. For rules with urlRewrite, the test verifies that the forwarded request matches hostRewrite and pathPrefixRewrite in the urlRewrite action. When service is specified, expectedOutputUrl`s scheme is ignored. For rules with urlRedirect, the test passes only if expectedOutputUrl matches the URL in the load balancer's redirect response. If urlRedirect specifies https_redirect, the test passes only if the scheme in expectedOutputUrl is also set to HTTPS. If urlRedirect specifies strip_query, the test passes only if expectedOutputUrl does not contain any query parameters. expectedOutputUrl is optional when service is specified.", + "instanceName": { + "description": "Output only. Name of the VM instance which the endpoint belongs to", + "readOnly": true, "type": "string" }, - "expectedRedirectResponseCode": { - "description": "For rules with urlRedirect, the test passes only if expectedRedirectResponseCode matches the HTTP status code in load balancer's redirect response. expectedRedirectResponseCode cannot be set when service is set.", - "format": "int32", - "type": "integer" - }, - "headers": { - "description": "HTTP headers for this request. If headers contains a host header, then host must also match the header value.", + "interfaceNatMappings": { "items": { - "$ref": "UrlMapTestHeader" + "$ref": "VmEndpointNatMappingsInterfaceNatMappings" }, + "readOnly": true, "type": "array" - }, - "host": { - "description": "Host portion of the URL. If headers contains a host header, then host must also match the header value.", - "type": "string" - }, - "path": { - "description": "Path portion of the URL.", - "type": "string" - }, - "service": { - "description": "Expected BackendService or BackendBucket resource the given URL should be mapped to. The service field cannot be set if expectedRedirectResponseCode is set.", - "type": "string" } }, "type": "object" }, - "UrlMapTestHeader": { - "description": "HTTP headers used in UrlMapTests.", - "id": "UrlMapTestHeader", + "VmEndpointNatMappingsInterfaceNatMappings": { + "description": "Contain information of Nat mapping for an interface of this endpoint.", + "id": "VmEndpointNatMappingsInterfaceNatMappings", "properties": { - "name": { - "description": "Header name.", + "drainNatIpPortRanges": { + "description": "Output only. List of all drain IP:port-range mappings assigned to this interface.\nThese ranges are inclusive, that is, both the first and the last\nports can be used for NAT. Example: [\"2.2.2.2:12345-12355\",\n\"1.1.1.1:2234-2234\"].", + "items": { + "type": "string" + }, + "readOnly": true, + "type": "array" + }, + "natIpPortRanges": { + "description": "Output only. A list of all IP:port-range mappings assigned to this interface.\nThese ranges are inclusive, that is, both the first and the last\nports can be used for NAT. Example: [\"2.2.2.2:12345-12355\",\n\"1.1.1.1:2234-2234\"].", + "items": { + "type": "string" + }, + "readOnly": true, + "type": "array" + }, + "numTotalDrainNatPorts": { + "description": "Output only. Total number of drain ports across all NAT IPs allocated to this\ninterface. It equals to the aggregated port number in the field\ndrain_nat_ip_port_ranges.", + "format": "int32", + "readOnly": true, + "type": "integer" + }, + "numTotalNatPorts": { + "description": "Output only. Total number of ports across all NAT IPs allocated to this interface.\nIt equals to the aggregated port number in the field nat_ip_port_ranges.", + "format": "int32", + "readOnly": true, + "type": "integer" + }, + "ruleMappings": { + "description": "Output only. Information about mappings provided by rules in this NAT.", + "items": { + "$ref": "VmEndpointNatMappingsInterfaceNatMappingsNatRuleMappings" + }, + "readOnly": true, + "type": "array" + }, + "sourceAliasIpRange": { + "description": "Output only. Alias IP range for this interface endpoint.\nIt will be a private (RFC 1918) IP range.\nExamples: \"10.33.4.55/32\", or \"192.168.5.0/24\".", + "readOnly": true, "type": "string" }, - "value": { - "description": "Header value.", + "sourceVirtualIp": { + "description": "Output only. Primary IP of the VM for this NIC.", + "readOnly": true, "type": "string" } }, "type": "object" }, - "UrlMapValidationResult": { - "description": "Message representing the validation result for a UrlMap.", - "id": "UrlMapValidationResult", + "VmEndpointNatMappingsInterfaceNatMappingsNatRuleMappings": { + "description": "Contains information of NAT Mappings provided by a NAT Rule.", + "id": "VmEndpointNatMappingsInterfaceNatMappingsNatRuleMappings", "properties": { - "loadErrors": { + "drainNatIpPortRanges": { + "description": "Output only. List of all drain IP:port-range mappings assigned to this interface\nby this rule.\nThese ranges are inclusive, that is, both the first and the last\nports can be used for NAT. Example: [\"2.2.2.2:12345-12355\",\n\"1.1.1.1:2234-2234\"].", "items": { "type": "string" }, + "readOnly": true, "type": "array" }, - "loadSucceeded": { - "description": "Whether the given UrlMap can be successfully loaded. If false, 'loadErrors' indicates the reasons.", - "type": "boolean" - }, - "testFailures": { + "natIpPortRanges": { + "description": "Output only. A list of all IP:port-range mappings assigned to this interface by this\nrule.\nThese ranges are inclusive, that is, both the first and the last\nports can be used for NAT. Example: [\"2.2.2.2:12345-12355\",\n\"1.1.1.1:2234-2234\"].", "items": { - "$ref": "TestFailure" + "type": "string" }, + "readOnly": true, "type": "array" }, - "testPassed": { - "description": "If successfully loaded, this field indicates whether the test passed. If false, 'testFailures's indicate the reason of failure.", - "type": "boolean" + "numTotalDrainNatPorts": { + "description": "Output only. Total number of drain ports across all NAT IPs allocated to this\ninterface by this rule.\nIt equals the aggregated port number in the field\ndrain_nat_ip_port_ranges.", + "format": "int32", + "readOnly": true, + "type": "integer" + }, + "numTotalNatPorts": { + "description": "Output only. Total number of ports across all NAT IPs allocated to this interface\nby this rule.\nIt equals the aggregated port number in the field nat_ip_port_ranges.", + "format": "int32", + "readOnly": true, + "type": "integer" + }, + "ruleNumber": { + "description": "Output only. Rule number of the NAT Rule.", + "format": "int32", + "readOnly": true, + "type": "integer" } }, "type": "object" }, - "UrlMapsAggregatedList": { - "id": "UrlMapsAggregatedList", + "VmEndpointNatMappingsList": { + "description": "Contains a list of VmEndpointNatMappings.", + "id": "VmEndpointNatMappingsList", "properties": { "id": { - "description": "[Output Only] Unique identifier for the resource; defined by the server.", + "description": "[Output Only] The unique identifier for the resource. This identifier is\ndefined by the server.", "type": "string" }, - "items": { - "additionalProperties": { - "$ref": "UrlMapsScopedList", - "description": "Name of the scope containing this set of UrlMaps." - }, - "description": "A list of UrlMapsScopedList resources.", - "type": "object" - }, "kind": { - "default": "compute#urlMapsAggregatedList", - "description": "Type of resource.", + "default": "compute#vmEndpointNatMappingsList", + "description": "Output only. [Output Only] Type of resource. Alwayscompute#vmEndpointNatMappingsList for lists of Nat mappings of\nVM endpoints.", + "readOnly": true, "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" - }, - "selfLink": { - "description": "[Output Only] Server-defined URL for this resource.", + "description": "[Output Only] This token allows you to get the next page of results for\nlist requests. If the number of results is larger thanmaxResults, use the nextPageToken as a value for\nthe query parameter pageToken in the next list request.\nSubsequent list requests will have their own nextPageToken to\ncontinue paging through the results.", "type": "string" }, - "unreachables": { - "description": "[Output Only] Unreachable resources.", + "result": { + "description": "[Output Only] A list of Nat mapping information of VM endpoints.", "items": { - "type": "string" + "$ref": "VmEndpointNatMappings" }, "type": "array" }, + "selfLink": { + "description": "Output only. [Output Only] Server-defined URL for this resource.", + "readOnly": true, + "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.", + "description": "[Output Only] A warning code, if applicable. For example, Compute\nEngine returns NO_RESULTS_ON_PAGE if there\nare no results in the response.", "enum": [ "CLEANUP_FAILED", "DEPRECATED_RESOURCE_USED", @@ -81629,6 +109305,7 @@ "NOT_CRITICAL_ERROR", "NO_RESULTS_ON_PAGE", "PARTIAL_SUCCESS", + "QUOTA_INFO_UNAVAILABLE", "REQUIRED_TOS_AGREEMENT", "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", "RESOURCE_NOT_DELETED", @@ -81665,46 +109342,48 @@ false, false, false, + false, false ], "enumDescriptions": [ - "Warning about failed cleanup of transient changes made by a failed operation.", + "Warning about failed cleanup of transient changes made by a failed\noperation.", "A link to a deprecated resource was created.", - "When deploying and at least one of the resources has a type marked as deprecated", + "When deploying and at least one of the resources has a type marked as\ndeprecated", "The user created a boot disk that is larger than image size.", - "When deploying and at least one of the resources has a type marked as experimental", + "When deploying and at least one of the resources has a type marked as\nexperimental", "Warning that is present in an external api call", - "Warning that value of a field has been overridden. Deprecated unused field.", + "Warning that value of a field has been overridden.\nDeprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", - "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is\nnot of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", - "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", + "Resource can't be retrieved due to list overhead quota exceed\nwhich captures the amount of resources filtered out by\nuser-defined list filter.", "A resource depends on a missing type", - "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's nextHopIp address is not assigned to an instance on the\nnetwork.", "The route's next hop instance cannot ip forward.", - "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not have an\nipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", - "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that is not on the\nsame network as the route.", "The route's next hop instance does not have a status of RUNNING.", - "Error which is not critical. We decided to continue the process despite the mentioned error.", + "Error which is not critical. We decided to continue the process despite\nthe mentioned error.", "No results are present on a particular list page.", "Success is reported, but some results may be missing due to errors", - "The user attempted to use a resource that requires a TOS they have not accepted.", + "Quota information is not available to client requests (e.g:\nregions.list).", + "The user attempted to use a resource that requires a TOS they have not\naccepted.", "Warning that a resource is in use.", - "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "One or more of the resources set to auto-delete could not be deleted\nbecause they were in use.", "When a resource schema validation is ignored.", - "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", + "Instance template used in instance group manager is valid as such, but\nits application does not make a lot of sense, because it allows only\nsingle instance in instance group.", "When undeclared properties in the schema are present", "A given scope cannot be reached." ], "type": "string" }, "data": { - "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", + "description": "[Output Only] Metadata about this warning in key:\nvalue format. For example:\n\n\"data\": [\n {\n \"key\": \"scope\",\n \"value\": \"zones/us-east1-d\"\n }", "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).", + "description": "[Output Only] A key that provides more detail on the warning being\nreturned. For example, for warnings where there are no results in a list\nrequest for a particular zone, this key might be scope and\nthe key value might be the zone name. Other examples might be a key\nindicating a deprecated resource and a suggested replacement, or a\nwarning about invalid network settings (for example, if an instance\nattempts to perform IP forwarding but is not enabled for IP forwarding).", "type": "string" }, "value": { @@ -81726,21 +109405,21 @@ }, "type": "object" }, - "UrlMapsScopedList": { - "id": "UrlMapsScopedList", + "VmExtensionPoliciesScopedList": { + "id": "VmExtensionPoliciesScopedList", "properties": { - "urlMaps": { - "description": "A list of UrlMaps contained in this scope.", + "vmExtensionPolicies": { + "description": "List of VmExtensionPolicy resources contained in this scope.", "items": { - "$ref": "UrlMap" + "$ref": "VmExtensionPolicy" }, "type": "array" }, "warning": { - "description": "Informational warning which replaces the list of backend services when the list is empty.", + "description": "Informational warning which replaces the list of\nbackend services when the list is empty.", "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.", + "description": "[Output Only] A warning code, if applicable. For example, Compute\nEngine returns NO_RESULTS_ON_PAGE if there\nare no results in the response.", "enum": [ "CLEANUP_FAILED", "DEPRECATED_RESOURCE_USED", @@ -81763,6 +109442,7 @@ "NOT_CRITICAL_ERROR", "NO_RESULTS_ON_PAGE", "PARTIAL_SUCCESS", + "QUOTA_INFO_UNAVAILABLE", "REQUIRED_TOS_AGREEMENT", "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", "RESOURCE_NOT_DELETED", @@ -81799,46 +109479,48 @@ false, false, false, + false, false ], "enumDescriptions": [ - "Warning about failed cleanup of transient changes made by a failed operation.", + "Warning about failed cleanup of transient changes made by a failed\noperation.", "A link to a deprecated resource was created.", - "When deploying and at least one of the resources has a type marked as deprecated", + "When deploying and at least one of the resources has a type marked as\ndeprecated", "The user created a boot disk that is larger than image size.", - "When deploying and at least one of the resources has a type marked as experimental", + "When deploying and at least one of the resources has a type marked as\nexperimental", "Warning that is present in an external api call", - "Warning that value of a field has been overridden. Deprecated unused field.", + "Warning that value of a field has been overridden.\nDeprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", - "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is\nnot of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", - "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", + "Resource can't be retrieved due to list overhead quota exceed\nwhich captures the amount of resources filtered out by\nuser-defined list filter.", "A resource depends on a missing type", - "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's nextHopIp address is not assigned to an instance on the\nnetwork.", "The route's next hop instance cannot ip forward.", - "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not have an\nipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", - "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that is not on the\nsame network as the route.", "The route's next hop instance does not have a status of RUNNING.", - "Error which is not critical. We decided to continue the process despite the mentioned error.", + "Error which is not critical. We decided to continue the process despite\nthe mentioned error.", "No results are present on a particular list page.", "Success is reported, but some results may be missing due to errors", - "The user attempted to use a resource that requires a TOS they have not accepted.", + "Quota information is not available to client requests (e.g:\nregions.list).", + "The user attempted to use a resource that requires a TOS they have not\naccepted.", "Warning that a resource is in use.", - "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "One or more of the resources set to auto-delete could not be deleted\nbecause they were in use.", "When a resource schema validation is ignored.", - "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", + "Instance template used in instance group manager is valid as such, but\nits application does not make a lot of sense, because it allows only\nsingle instance in instance group.", "When undeclared properties in the schema are present", "A given scope cannot be reached." ], "type": "string" }, "data": { - "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", + "description": "[Output Only] Metadata about this warning in key:\nvalue format. For example:\n\n\"data\": [\n {\n \"key\": \"scope\",\n \"value\": \"zones/us-east1-d\"\n }", "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).", + "description": "[Output Only] A key that provides more detail on the warning being\nreturned. For example, for warnings where there are no results in a list\nrequest for a particular zone, this key might be scope and\nthe key value might be the zone name. Other examples might be a key\nindicating a deprecated resource and a suggested replacement, or a\nwarning about invalid network settings (for example, if an instance\nattempts to perform IP forwarding but is not enabled for IP forwarding).", "type": "string" }, "value": { @@ -81860,200 +109542,150 @@ }, "type": "object" }, - "UrlMapsValidateRequest": { - "id": "UrlMapsValidateRequest", + "VmExtensionPolicy": { + "description": "Represents a VM extension policy.", + "id": "VmExtensionPolicy", "properties": { - "loadBalancingSchemes": { - "description": "Specifies the load balancer type(s) this validation request is for. Use EXTERNAL_MANAGED for global external Application Load Balancers and regional external Application Load Balancers. Use EXTERNAL for classic Application Load Balancers. Use INTERNAL_MANAGED for internal Application Load Balancers. For more information, refer to Choosing a load balancer. If unspecified, the load balancing scheme will be inferred from the backend service resources this URL map references. If that can not be inferred (for example, this URL map only references backend buckets, or this Url map is for rewrites and redirects only and doesn't reference any backends), EXTERNAL will be used as the default type. If specified, the scheme(s) must not conflict with the load balancing scheme of the backend service resources this Url map references.", - "items": { - "enum": [ - "EXTERNAL", - "EXTERNAL_MANAGED", - "LOAD_BALANCING_SCHEME_UNSPECIFIED" - ], - "enumDescriptions": [ - "Signifies that this will be used for classic Application Load Balancers.", - "Signifies that this will be used for Envoy-based global external Application Load Balancers.", - "If unspecified, the validation will try to infer the scheme from the backend service resources this Url map references. If the inference is not possible, EXTERNAL will be used as the default type." - ], - "type": "string" - }, - "type": "array" - }, - "resource": { - "$ref": "UrlMap", - "description": "Content of the UrlMap to be validated." - } - }, - "type": "object" - }, - "UrlMapsValidateResponse": { - "id": "UrlMapsValidateResponse", - "properties": { - "result": { - "$ref": "UrlMapValidationResult" - } - }, - "type": "object" - }, - "UrlRewrite": { - "description": "The spec for modifying the path before sending the request to the matched backend service.", - "id": "UrlRewrite", - "properties": { - "hostRewrite": { - "description": "Before forwarding the request to the selected service, the request's host header is replaced with contents of hostRewrite. The value must be from 1 to 255 characters.", + "creationTimestamp": { + "description": "Output only. [Output Only] Creation timestamp inRFC3339\ntext format.", + "readOnly": true, "type": "string" }, - "pathPrefixRewrite": { - "description": "Before forwarding the request to the selected backend service, the matching portion of the request's path is replaced by pathPrefixRewrite. The value must be from 1 to 1024 characters.", + "description": { + "description": "An optional description of this resource.", "type": "string" }, - "pathTemplateRewrite": { - "description": " If specified, the pattern rewrites the URL path (based on the :path header) using the HTTP template syntax. A corresponding path_template_match must be specified. Any template variables must exist in the path_template_match field. - -At least one variable must be specified in the path_template_match field - You can omit variables from the rewritten URL - The * and ** operators cannot be matched unless they have a corresponding variable name - e.g. {format=*} or {var=**}. For example, a path_template_match of /static/{format=**} could be rewritten as /static/content/{format} to prefix /content to the URL. Variables can also be re-ordered in a rewrite, so that /{country}/{format}/{suffix=**} can be rewritten as /content/{format}/{country}/{suffix}. At least one non-empty routeRules[].matchRules[].path_template_match is required. Only one of path_prefix_rewrite or path_template_rewrite may be specified.", - "type": "string" - } - }, - "type": "object" - }, - "UsableSubnetwork": { - "description": "Subnetwork which the current user has compute.subnetworks.use permission on.", - "id": "UsableSubnetwork", - "properties": { - "externalIpv6Prefix": { - "description": "[Output Only] The external IPv6 address range that is assigned to this subnetwork.", - "type": "string" + "extensionPolicies": { + "additionalProperties": { + "$ref": "VmExtensionPolicyExtensionPolicy" + }, + "description": "Required. A map of extension names (for example, \"ops-agent\") to their corresponding\npolicy configurations.", + "type": "object" }, - "internalIpv6Prefix": { - "description": "[Output Only] The internal IPv6 address range that is assigned to this subnetwork.", + "globalResourceLink": { + "description": "Optional. Output only. [Output Only] Link to the global policy that manages this zone policy, if\napplicable.", + "readOnly": true, "type": "string" }, - "ipCidrRange": { - "description": "The range of internal addresses that are owned by this subnetwork.", + "id": { + "description": "Output only. [Output Only] The unique identifier for the resource. This identifier is\ndefined by the server.", + "format": "uint64", + "readOnly": true, "type": "string" }, - "ipv6AccessType": { - "description": "The access type of IPv6 address this subnet holds. It's immutable and can only be specified during creation or the first time the subnet is updated into IPV4_IPV6 dual stack.", - "enum": [ - "EXTERNAL", - "INTERNAL" - ], - "enumDescriptions": [ - "VMs on this subnet will be assigned IPv6 addresses that are accessible via the Internet, as well as the VPC network.", - "VMs on this subnet will be assigned IPv6 addresses that are only accessible over the VPC network." - ], - "type": "string" + "instanceSelectors": { + "description": "Optional. Selectors to target VMs for this policy. VMs are selected if they match\n*any* of the provided selectors (logical OR). If this list is empty, the\npolicy applies to all VMs.", + "items": { + "$ref": "VmExtensionPolicyInstanceSelector" + }, + "type": "array" }, - "network": { - "description": "Network URL.", + "kind": { + "default": "compute#vmExtensionPolicy", + "description": "Output only. [Output Only] Type of the resource. Alwayscompute#vmExtensionPolicy.", + "readOnly": true, "type": "string" }, - "purpose": { - "description": "The purpose of the resource. This field can be either PRIVATE, GLOBAL_MANAGED_PROXY, REGIONAL_MANAGED_PROXY, PRIVATE_SERVICE_CONNECT, or PRIVATE is the default purpose for user-created subnets or subnets that are automatically created in auto mode networks. Subnets with purpose set to GLOBAL_MANAGED_PROXY or REGIONAL_MANAGED_PROXY are user-created subnetworks that are reserved for Envoy-based load balancers. A subnet with purpose set to PRIVATE_SERVICE_CONNECT is used to publish services using Private Service Connect. If unspecified, the subnet purpose defaults to PRIVATE. The enableFlowLogs field isn't supported if the subnet purpose field is set to GLOBAL_MANAGED_PROXY or REGIONAL_MANAGED_PROXY.", - "enum": [ - "GLOBAL_MANAGED_PROXY", - "INTERNAL_HTTPS_LOAD_BALANCER", - "PRIVATE", - "PRIVATE_NAT", - "PRIVATE_RFC_1918", - "PRIVATE_SERVICE_CONNECT", - "REGIONAL_MANAGED_PROXY" - ], - "enumDescriptions": [ - "Subnet reserved for Global Envoy-based Load Balancing.", - "Subnet reserved for Internal HTTP(S) Load Balancing. This is a legacy purpose, please use REGIONAL_MANAGED_PROXY instead.", - "Regular user created or automatically created subnet.", - "Subnetwork used as source range for Private NAT Gateways.", - "Regular user created or automatically created subnet.", - "Subnetworks created for Private Service Connect in the producer network.", - "Subnetwork used for Regional Envoy-based Load Balancing." - ], + "managedByGlobal": { + "description": "Optional. Output only. [Output Only] Indicates if this policy is managed by a global policy.", + "readOnly": true, + "type": "boolean" + }, + "name": { + "annotations": { + "required": [ + "compute.zoneVmExtensionPolicies.insert" + ] + }, + "description": "Name of the resource. Provided by the client when the resource is created.\nThe name must be 1-63 characters long, and comply withRFC1035.\nSpecifically, the name must be 1-63 characters long and match the regular\nexpression `[a-z]([-a-z0-9]*[a-z0-9])?`\nwhich means the first character must be a lowercase letter, and all\nfollowing characters must be a dash, lowercase letter, or digit, except\nthe last character, which cannot be a dash.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", "type": "string" }, - "role": { - "description": "The role of subnetwork. Currently, this field is only used when purpose is set to GLOBAL_MANAGED_PROXY or REGIONAL_MANAGED_PROXY. The value can be set to ACTIVE or BACKUP. An ACTIVE subnetwork is one that is currently being used for Envoy-based load balancers in a region. A BACKUP subnetwork is one that is ready to be promoted to ACTIVE or is currently draining. This field can be updated with a patch request.", - "enum": [ - "ACTIVE", - "BACKUP" - ], - "enumDescriptions": [ - "The ACTIVE subnet that is currently used.", - "The BACKUP subnet that could be promoted to ACTIVE." - ], + "priority": { + "description": "Optional. Priority of this policy. Used to resolve conflicts when multiple policies\napply to the same extension.\nThe policy priority is an integer from 0 to 65535, inclusive. Lower\nintegers indicate higher priorities. If you do not specify a priority when\ncreating a rule, it is assigned a priority of 1000. If priorities are\nequal, the policy with the most recent creation timestamp takes precedence.", + "format": "int32", + "type": "integer" + }, + "selfLink": { + "description": "Output only. [Output Only] Server-defined fully-qualified URL for this resource.", + "readOnly": true, "type": "string" }, - "secondaryIpRanges": { - "description": "Secondary IP ranges.", - "items": { - "$ref": "UsableSubnetworkSecondaryRange" - }, - "type": "array" + "selfLinkWithId": { + "description": "Output only. [Output Only] Server-defined URL for this resource's resource id.", + "readOnly": true, + "type": "string" }, - "stackType": { - "description": "The stack type for the subnet. If set to IPV4_ONLY, new VMs in the subnet are assigned IPv4 addresses only. If set to IPV4_IPV6, new VMs in the subnet can be assigned both IPv4 and IPv6 addresses. If not specified, IPV4_ONLY is used. This field can be both set at resource creation time and updated using patch.", + "state": { + "description": "Optional. Output only. [Output Only] Current state of the policy: ACTIVE or DELETING.", "enum": [ - "IPV4_IPV6", - "IPV4_ONLY" + "ACTIVE", + "DELETING", + "STATE_UNSPECIFIED" ], "enumDescriptions": [ - "New VMs in this subnet can have both IPv4 and IPv6 addresses.", - "New VMs in this subnet will only be assigned IPv4 addresses." + "The policy is active and applied to matching VMs.\nNewly created VMs that match the policy will also receive the\nextension policy.", + "The policy is in the process of being deleted. After the extension is\nremoved from all matching VMs, the policy will be deleted.", + "Default value. Do not use." ], + "readOnly": true, "type": "string" }, - "subnetwork": { - "description": "Subnetwork URL.", + "updateTimestamp": { + "description": "Output only. [Output Only] Update timestamp inRFC3339\ntext format.", + "readOnly": true, "type": "string" } }, "type": "object" }, - "UsableSubnetworkSecondaryRange": { - "description": "Secondary IP range of a usable subnetwork.", - "id": "UsableSubnetworkSecondaryRange", + "VmExtensionPolicyAggregatedListResponse": { + "description": "Response for the aggregated list of VM extension policies.", + "id": "VmExtensionPolicyAggregatedListResponse", "properties": { - "ipCidrRange": { - "description": "The range of IP addresses belonging to this subnetwork secondary range.", + "etag": { "type": "string" }, - "rangeName": { - "description": "The name associated with this subnetwork secondary range, used when adding an alias IP range to a VM instance. The name must be 1-63 characters long, and comply with RFC1035. The name must be unique within the subnetwork.", - "type": "string" - } - }, - "type": "object" - }, - "UsableSubnetworksAggregatedList": { - "id": "UsableSubnetworksAggregatedList", - "properties": { "id": { - "description": "[Output Only] The unique identifier for the resource. This identifier is defined by the server.", + "description": "[Output Only] Unique identifier for the resource; defined by the server.", "type": "string" }, "items": { - "description": "[Output] A list of usable subnetwork URLs.", - "items": { - "$ref": "UsableSubnetwork" + "additionalProperties": { + "$ref": "VmExtensionPoliciesScopedList", + "description": "Name of the scope containing this set of VmExtensionPolicies." }, - "type": "array" + "description": "A list of VmExtensionPoliciesScopedList resources.", + "type": "object" }, "kind": { - "default": "compute#usableSubnetworksAggregatedList", - "description": "[Output Only] Type of resource. Always compute#usableSubnetworksAggregatedList for aggregated lists of usable subnetworks.", + "default": "compute#VmExtensionPolicyAggregatedList", + "description": "Output only. [Output Only] Type of resource. Alwayscompute#VmExtensionPolicyAggregatedList for lists of\nVmExtensionPolicies.", + "readOnly": true, "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. In special cases listUsable may return 0 subnetworks and nextPageToken which still should be used to get the next page of results.", + "description": "[Output Only] This token allows you to get the next page of results for\nlist requests. If the number of results is larger thanmaxResults, use the nextPageToken as a value for\nthe query parameter pageToken in the next list request.\nSubsequent list requests will have their own nextPageToken to\ncontinue paging through the results.", "type": "string" }, "selfLink": { - "description": "[Output Only] Server-defined URL for this resource.", + "description": "Output only. [Output Only] Server-defined URL for this resource.", + "readOnly": true, "type": "string" }, + "unreachables": { + "description": "Output only. [Output Only] Unreachable resources.", + "items": { + "type": "string" + }, + "readOnly": true, + "type": "array" + }, "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.", + "description": "[Output Only] A warning code, if applicable. For example, Compute\nEngine returns NO_RESULTS_ON_PAGE if there\nare no results in the response.", "enum": [ "CLEANUP_FAILED", "DEPRECATED_RESOURCE_USED", @@ -82076,6 +109708,7 @@ "NOT_CRITICAL_ERROR", "NO_RESULTS_ON_PAGE", "PARTIAL_SUCCESS", + "QUOTA_INFO_UNAVAILABLE", "REQUIRED_TOS_AGREEMENT", "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", "RESOURCE_NOT_DELETED", @@ -82112,46 +109745,48 @@ false, false, false, + false, false ], "enumDescriptions": [ - "Warning about failed cleanup of transient changes made by a failed operation.", + "Warning about failed cleanup of transient changes made by a failed\noperation.", "A link to a deprecated resource was created.", - "When deploying and at least one of the resources has a type marked as deprecated", + "When deploying and at least one of the resources has a type marked as\ndeprecated", "The user created a boot disk that is larger than image size.", - "When deploying and at least one of the resources has a type marked as experimental", + "When deploying and at least one of the resources has a type marked as\nexperimental", "Warning that is present in an external api call", - "Warning that value of a field has been overridden. Deprecated unused field.", + "Warning that value of a field has been overridden.\nDeprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", - "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is\nnot of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", - "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", + "Resource can't be retrieved due to list overhead quota exceed\nwhich captures the amount of resources filtered out by\nuser-defined list filter.", "A resource depends on a missing type", - "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's nextHopIp address is not assigned to an instance on the\nnetwork.", "The route's next hop instance cannot ip forward.", - "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not have an\nipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", - "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that is not on the\nsame network as the route.", "The route's next hop instance does not have a status of RUNNING.", - "Error which is not critical. We decided to continue the process despite the mentioned error.", + "Error which is not critical. We decided to continue the process despite\nthe mentioned error.", "No results are present on a particular list page.", "Success is reported, but some results may be missing due to errors", - "The user attempted to use a resource that requires a TOS they have not accepted.", + "Quota information is not available to client requests (e.g:\nregions.list).", + "The user attempted to use a resource that requires a TOS they have not\naccepted.", "Warning that a resource is in use.", - "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "One or more of the resources set to auto-delete could not be deleted\nbecause they were in use.", "When a resource schema validation is ignored.", - "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", + "Instance template used in instance group manager is valid as such, but\nits application does not make a lot of sense, because it allows only\nsingle instance in instance group.", "When undeclared properties in the schema are present", "A given scope cannot be reached." ], "type": "string" }, "data": { - "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", + "description": "[Output Only] Metadata about this warning in key:\nvalue format. For example:\n\n\"data\": [\n {\n \"key\": \"scope\",\n \"value\": \"zones/us-east1-d\"\n }", "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).", + "description": "[Output Only] A key that provides more detail on the warning being\nreturned. For example, for warnings where there are no results in a list\nrequest for a particular zone, this key might be scope and\nthe key value might be the zone name. Other examples might be a key\nindicating a deprecated resource and a suggested replacement, or a\nwarning about invalid network settings (for example, if an instance\nattempts to perform IP forwarding but is not enabled for IP forwarding).", "type": "string" }, "value": { @@ -82173,153 +109808,96 @@ }, "type": "object" }, - "UsageExportLocation": { - "description": "The location in Cloud Storage and naming method of the daily usage report. Contains bucket_name and report_name prefix.", - "id": "UsageExportLocation", + "VmExtensionPolicyExtensionPolicy": { + "description": "Configuration for a specific VM extension.", + "id": "VmExtensionPolicyExtensionPolicy", "properties": { - "bucketName": { - "description": "The name of an existing bucket in Cloud Storage where the usage report object is stored. The Google Service Account is granted write access to this bucket. This can either be the bucket name by itself, such as example-bucket, or the bucket name with gs:// or https://storage.googleapis.com/ in front of it, such as gs://example-bucket.", + "pinnedVersion": { + "description": "Optional. The specific version of the extension to install. If not set, the latest\nversion is used.", "type": "string" }, - "reportNamePrefix": { - "description": "An optional prefix for the name of the usage report object stored in bucketName. If not supplied, defaults to usage_gce. The report is stored as a CSV file named report_name_prefix_gce_YYYYMMDD.csv where YYYYMMDD is the day of the usage according to Pacific Time. If you supply a prefix, it should conform to Cloud Storage object naming conventions.", + "stringConfig": { + "description": "Optional. String-based configuration data for the extension.", "type": "string" } }, "type": "object" }, - "VmEndpointNatMappings": { - "description": "Contain information of Nat mapping for a VM endpoint (i.e., NIC).", - "id": "VmEndpointNatMappings", + "VmExtensionPolicyInstanceSelector": { + "description": "Defines how to select VMs to apply a zone VM extension policy.", + "id": "VmExtensionPolicyInstanceSelector", "properties": { - "instanceName": { - "description": "Name of the VM instance which the endpoint belongs to", - "type": "string" - }, - "interfaceNatMappings": { - "items": { - "$ref": "VmEndpointNatMappingsInterfaceNatMappings" - }, - "type": "array" + "labelSelector": { + "$ref": "VmExtensionPolicyLabelSelector", + "description": "Optional. LabelSelector selects VMs based on their labels." } }, "type": "object" }, - "VmEndpointNatMappingsInterfaceNatMappings": { - "description": "Contain information of Nat mapping for an interface of this endpoint.", - "id": "VmEndpointNatMappingsInterfaceNatMappings", + "VmExtensionPolicyLabelSelector": { + "description": "A LabelSelector is applied to a VM only if it matches all the specified\nlabels.", + "id": "VmExtensionPolicyLabelSelector", "properties": { - "drainNatIpPortRanges": { - "description": "List of all drain 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" - }, - "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": { + "inclusionLabels": { + "additionalProperties": { "type": "string" }, - "type": "array" - }, - "numTotalDrainNatPorts": { - "description": "Total number of drain ports across all NAT IPs allocated to this interface. It equals to the aggregated port number in the field drain_nat_ip_port_ranges.", - "format": "int32", - "type": "integer" - }, - "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" - }, - "ruleMappings": { - "description": "Information about mappings provided by rules in this NAT.", - "items": { - "$ref": "VmEndpointNatMappingsInterfaceNatMappingsNatRuleMappings" - }, - "type": "array" - }, - "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" + "description": "Optional. A map of key-value pairs representing VM labels.\nVMs must have all of the labels specified in this map to be selected\n(logical AND).\n\ne.g. If the `inclusion_labels` are {(\"key1\", \"value1\"), (\"key2\",\n\"value2\")}, the VM labels must contain both (\"key1\", \"value1\") and\n(\"key2\", \"value2\") to be selected. If the VM labels are (\"key1\",\n\"value1\") and (\"something\", \"else\"), it will not be selected.\n\nIf the map is empty, it's considered a match.", + "type": "object" } }, "type": "object" }, - "VmEndpointNatMappingsInterfaceNatMappingsNatRuleMappings": { - "description": "Contains information of NAT Mappings provided by a NAT Rule.", - "id": "VmEndpointNatMappingsInterfaceNatMappingsNatRuleMappings", + "VmExtensionPolicyList": { + "id": "VmExtensionPolicyList", "properties": { - "drainNatIpPortRanges": { - "description": "List of all drain IP:port-range mappings assigned to this interface by this rule. 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" + "etag": { + "description": "Output only. [Output Only] Fingerprint of this resource. A hash of the contents stored\nin this object. This field is used in optimistic locking. This field will\nbe ignored when inserting a VmExtensionPolicy. An up-to-date\nfingerprint must be provided in order to update the VmExtensionPolicy.\n\nTo see the latest value of the fingerprint, make a get() request to\nretrieve a VmExtensionPolicy.", + "readOnly": true, + "type": "string" }, - "natIpPortRanges": { - "description": "A list of all IP:port-range mappings assigned to this interface by this rule. 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\"].", + "id": { + "description": "Output only. [Output Only] Unique identifier for the resource; defined by the server.", + "readOnly": true, + "type": "string" + }, + "items": { + "description": "Output only. [Output Only] A list of VM extension policy resources.", "items": { - "type": "string" + "$ref": "VmExtensionPolicy" }, + "readOnly": true, "type": "array" }, - "numTotalDrainNatPorts": { - "description": "Total number of drain ports across all NAT IPs allocated to this interface by this rule. It equals the aggregated port number in the field drain_nat_ip_port_ranges.", - "format": "int32", - "type": "integer" - }, - "numTotalNatPorts": { - "description": "Total number of ports across all NAT IPs allocated to this interface by this rule. It equals the aggregated port number in the field nat_ip_port_ranges.", - "format": "int32", - "type": "integer" - }, - "ruleNumber": { - "description": "Rule number of the NAT Rule.", - "format": "int32", - "type": "integer" - } - }, - "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.", + "default": "compute#vmExtensionPolicyList", + "description": "Output only. Type of resource.", + "readOnly": true, "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.", + "description": "Output only. [Output Only] This token allows you to get the next page of results for\nlist requests. If the number of results is larger thanmaxResults, use the nextPageToken as a value for\nthe query parameter pageToken in the next list request.\nSubsequent list requests will have their own nextPageToken to\ncontinue paging through the results.", + "readOnly": true, "type": "string" }, - "result": { - "description": "[Output Only] A list of Nat mapping information of VM endpoints.", + "selfLink": { + "description": "Output only. [Output Only] Server-defined URL for this resource.", + "readOnly": true, + "type": "string" + }, + "unreachables": { + "description": "Output only. [Output Only] Unreachable resources.", "items": { - "$ref": "VmEndpointNatMappings" + "type": "string" }, + "readOnly": true, "type": "array" }, - "selfLink": { - "description": "[Output Only] Server-defined URL for this resource.", - "type": "string" - }, "warning": { - "description": "[Output Only] Informational warning message.", + "description": "Output only. [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.", + "description": "[Output Only] A warning code, if applicable. For example, Compute\nEngine returns NO_RESULTS_ON_PAGE if there\nare no results in the response.", "enum": [ "CLEANUP_FAILED", "DEPRECATED_RESOURCE_USED", @@ -82342,6 +109920,7 @@ "NOT_CRITICAL_ERROR", "NO_RESULTS_ON_PAGE", "PARTIAL_SUCCESS", + "QUOTA_INFO_UNAVAILABLE", "REQUIRED_TOS_AGREEMENT", "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", "RESOURCE_NOT_DELETED", @@ -82378,46 +109957,48 @@ false, false, false, + false, false ], "enumDescriptions": [ - "Warning about failed cleanup of transient changes made by a failed operation.", + "Warning about failed cleanup of transient changes made by a failed\noperation.", "A link to a deprecated resource was created.", - "When deploying and at least one of the resources has a type marked as deprecated", + "When deploying and at least one of the resources has a type marked as\ndeprecated", "The user created a boot disk that is larger than image size.", - "When deploying and at least one of the resources has a type marked as experimental", + "When deploying and at least one of the resources has a type marked as\nexperimental", "Warning that is present in an external api call", - "Warning that value of a field has been overridden. Deprecated unused field.", + "Warning that value of a field has been overridden.\nDeprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", - "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is\nnot of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", - "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", + "Resource can't be retrieved due to list overhead quota exceed\nwhich captures the amount of resources filtered out by\nuser-defined list filter.", "A resource depends on a missing type", - "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's nextHopIp address is not assigned to an instance on the\nnetwork.", "The route's next hop instance cannot ip forward.", - "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not have an\nipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", - "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that is not on the\nsame network as the route.", "The route's next hop instance does not have a status of RUNNING.", - "Error which is not critical. We decided to continue the process despite the mentioned error.", + "Error which is not critical. We decided to continue the process despite\nthe mentioned error.", "No results are present on a particular list page.", "Success is reported, but some results may be missing due to errors", - "The user attempted to use a resource that requires a TOS they have not accepted.", + "Quota information is not available to client requests (e.g:\nregions.list).", + "The user attempted to use a resource that requires a TOS they have not\naccepted.", "Warning that a resource is in use.", - "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "One or more of the resources set to auto-delete could not be deleted\nbecause they were in use.", "When a resource schema validation is ignored.", - "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", + "Instance template used in instance group manager is valid as such, but\nits application does not make a lot of sense, because it allows only\nsingle instance in instance group.", "When undeclared properties in the schema are present", "A given scope cannot be reached." ], "type": "string" }, "data": { - "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", + "description": "[Output Only] Metadata about this warning in key:\nvalue format. For example:\n\n\"data\": [\n {\n \"key\": \"scope\",\n \"value\": \"zones/us-east1-d\"\n }", "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).", + "description": "[Output Only] A key that provides more detail on the warning being\nreturned. For example, for warnings where there are no results in a list\nrequest for a particular zone, this key might be scope and\nthe key value might be the zone name. Other examples might be a key\nindicating a deprecated resource and a suggested replacement, or a\nwarning about invalid network settings (for example, if an instance\nattempts to perform IP forwarding but is not enabled for IP forwarding).", "type": "string" }, "value": { @@ -82434,25 +110015,27 @@ "type": "string" } }, + "readOnly": true, "type": "object" } }, "type": "object" }, "VpnGateway": { - "description": "Represents a HA VPN gateway. HA VPN is a high-availability (HA) Cloud VPN solution that lets you securely connect your on-premises network to your Google Cloud Virtual Private Cloud network through an IPsec VPN connection in a single region. For more information about Cloud HA VPN solutions, see Cloud VPN topologies .", + "description": "Represents a HA VPN gateway.\n\nHA VPN is a high-availability (HA) Cloud VPN solution that lets you securely\nconnect your on-premises network to your Google Cloud Virtual Private Cloud\nnetwork through an IPsec VPN connection in a single region.\nFor more information about Cloud HA VPN solutions, see\nCloud VPN topologies .", "id": "VpnGateway", "properties": { "creationTimestamp": { - "description": "[Output Only] Creation timestamp in RFC3339 text format.", + "description": "Output only. [Output Only] Creation timestamp inRFC3339\ntext format.", + "readOnly": true, "type": "string" }, "description": { - "description": "An optional description of this resource. Provide this property when you create the resource.", + "description": "An optional description of this resource. Provide this property when you\ncreate the resource.", "type": "string" }, "gatewayIpVersion": { - "description": "The IP family of the gateway IPs for the HA-VPN gateway interfaces. If not specified, IPV4 will be used.", + "description": "The IP family of the gateway IPs for the HA-VPN gateway interfaces. If not\nspecified, IPV4 will be used.", "enum": [ "IPV4", "IPV6" @@ -82464,17 +110047,19 @@ "type": "string" }, "id": { - "description": "[Output Only] The unique identifier for the resource. This identifier is defined by the server.", + "description": "Output only. [Output Only] The unique identifier for the resource. This identifier is\ndefined by the server.", "format": "uint64", + "readOnly": true, "type": "string" }, "kind": { "default": "compute#vpnGateway", - "description": "[Output Only] Type of resource. Always compute#vpnGateway for VPN gateways.", + "description": "Output only. [Output Only] Type of resource. Always compute#vpnGateway for\nVPN gateways.", + "readOnly": true, "type": "string" }, "labelFingerprint": { - "description": "A fingerprint for the labels being applied to this VpnGateway, which is essentially a hash of the labels set used for optimistic locking. The fingerprint is initially generated by Compute Engine and changes after every request to modify or update labels. You must always provide an up-to-date fingerprint hash in order to update or change labels, otherwise the request will fail with error 412 conditionNotMet. To see the latest fingerprint, make a get() request to retrieve a VpnGateway.", + "description": "A fingerprint for the labels being applied to this VpnGateway, which\nis essentially a hash of the labels set used for optimistic locking. The\nfingerprint is initially generated by Compute Engine and changes after\nevery request to modify or update labels. You must always provide an\nup-to-date fingerprint hash in order to update or change labels,\notherwise the request will fail with error412 conditionNotMet.\n\nTo see the latest fingerprint, make a get() request to\nretrieve a VpnGateway.", "format": "byte", "type": "string" }, @@ -82482,7 +110067,7 @@ "additionalProperties": { "type": "string" }, - "description": "Labels for this resource. These can only be added or modified by the setLabels method. Each label key/value pair must comply with RFC1035. Label values may be empty.", + "description": "Labels for this resource. These can only be added or modified by thesetLabels method. Each label key/value pair must comply withRFC1035.\nLabel values may be empty.", "type": "object" }, "name": { @@ -82491,7 +110076,7 @@ "compute.vpnGateways.insert" ] }, - "description": "Name of the resource. Provided by the client when the resource is created. The name must be 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters long and match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash.", + "description": "Name of the resource. Provided by the client when the resource is created.\nThe name must be 1-63 characters long, and comply withRFC1035.\nSpecifically, the name must be 1-63 characters long and match the regular\nexpression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first\ncharacter must be a lowercase letter, and all following characters must\nbe a dash, lowercase letter, or digit, except the last character, which\ncannot be a dash.", "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", "type": "string" }, @@ -82501,26 +110086,34 @@ "compute.vpnGateways.insert" ] }, - "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\nclient when the VPN gateway is created.", "type": "string" }, + "params": { + "$ref": "VpnGatewayParams", + "description": "Input only. [Input Only] Additional params passed with the request, but not persisted\nas part of resource payload." + }, "region": { - "description": "[Output Only] URL of the region where the VPN gateway resides.", + "description": "Output only. [Output Only] URL of the region where the VPN gateway resides.", + "readOnly": true, "type": "string" }, "selfLink": { - "description": "[Output Only] Server-defined URL for the resource.", + "description": "Output only. [Output Only] Server-defined URL for the resource.", + "readOnly": true, "type": "string" }, "stackType": { - "description": "The stack type for this VPN gateway to identify the IP protocols that are enabled. Possible values are: IPV4_ONLY, IPV4_IPV6. If not specified, IPV4_ONLY will be used.", + "description": "The stack type for this VPN gateway to identify the IP protocols that are\nenabled. Possible values are: IPV4_ONLY,IPV4_IPV6, IPV6_ONLY. If not specified,IPV4_ONLY is used if the gateway IP version isIPV4, or IPV4_IPV6 if the gateway IP version isIPV6.", "enum": [ "IPV4_IPV6", - "IPV4_ONLY" + "IPV4_ONLY", + "IPV6_ONLY" ], "enumDescriptions": [ "Enable VPN gateway with both IPv4 and IPv6 protocols.", - "Enable VPN gateway with only IPv4 protocol." + "Enable VPN gateway with only IPv4 protocol.", + "Enable VPN gateway with only IPv6 protocol." ], "type": "string" }, @@ -82551,29 +110144,189 @@ }, "kind": { "default": "compute#vpnGatewayAggregatedList", - "description": "[Output Only] Type of resource. Always compute#vpnGateway for VPN gateways.", + "description": "Output only. [Output Only] Type of resource. Always compute#vpnGateway for\nVPN gateways.", + "readOnly": true, "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.", + "description": "[Output Only] This token allows you to get the next page of results for\nlist requests. If the number of results is larger thanmaxResults, use the nextPageToken as a value for\nthe query parameter pageToken in the next list request.\nSubsequent list requests will have their own nextPageToken to\ncontinue paging through the results.", "type": "string" }, "selfLink": { - "description": "[Output Only] Server-defined URL for this resource.", + "description": "Output only. [Output Only] Server-defined URL for this resource.", + "readOnly": true, "type": "string" }, "unreachables": { - "description": "[Output Only] Unreachable resources.", + "description": "Output only. [Output Only] Unreachable resources.", "items": { "type": "string" }, + "readOnly": true, + "type": "array" + }, + "warning": { + "description": "[Output Only] Informational warning message.", + "properties": { + "code": { + "description": "[Output Only] A warning code, if applicable. For example, Compute\nEngine returns NO_RESULTS_ON_PAGE if there\nare 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", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", + "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "PARTIAL_SUCCESS", + "QUOTA_INFO_UNAVAILABLE", + "REQUIRED_TOS_AGREEMENT", + "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", + "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", + "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", + "UNREACHABLE" + ], + "enumDeprecated": [ + false, + false, + false, + false, + false, + false, + true, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false + ], + "enumDescriptions": [ + "Warning about failed cleanup of transient changes made by a failed\noperation.", + "A link to a deprecated resource was created.", + "When deploying and at least one of the resources has a type marked as\ndeprecated", + "The user created a boot disk that is larger than image size.", + "When deploying and at least one of the resources has a type marked as\nexperimental", + "Warning that is present in an external api call", + "Warning that value of a field has been overridden.\nDeprecated unused field.", + "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is\nnot of type HTTP/HTTPS/HTTP2.", + "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed\nwhich captures the amount of resources filtered out by\nuser-defined list filter.", + "A resource depends on a missing type", + "The route's nextHopIp address is not assigned to an instance on the\nnetwork.", + "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an\nipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not exist.", + "The route's nextHopInstance URL refers to an instance that is not on the\nsame network as the route.", + "The route's next hop instance does not have a status of RUNNING.", + "Error which is not critical. We decided to continue the process despite\nthe mentioned error.", + "No results are present on a particular list page.", + "Success is reported, but some results may be missing due to errors", + "Quota information is not available to client requests (e.g:\nregions.list).", + "The user attempted to use a resource that requires a TOS they have not\naccepted.", + "Warning that a resource is in use.", + "One or more of the resources set to auto-delete could not be deleted\nbecause they were in use.", + "When a resource schema validation is ignored.", + "Instance template used in instance group manager is valid as such, but\nits application does not make a lot of sense, because it allows only\nsingle instance in instance group.", + "When undeclared properties in the schema are present", + "A given scope cannot be reached." + ], + "type": "string" + }, + "data": { + "description": "[Output Only] Metadata about this warning in key:\nvalue format. For example:\n\n\"data\": [\n {\n \"key\": \"scope\",\n \"value\": \"zones/us-east1-d\"\n }", + "items": { + "properties": { + "key": { + "description": "[Output Only] A key that provides more detail on the warning being\nreturned. For example, for warnings where there are no results in a list\nrequest for a particular zone, this key might be scope and\nthe key value might be the zone name. Other examples might be a key\nindicating a deprecated resource and a suggested replacement, or a\nwarning about invalid network settings (for example, if an instance\nattempts 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" + }, + "VpnGatewayList": { + "description": "Contains a list of VpnGateway resources.", + "id": "VpnGatewayList", + "properties": { + "id": { + "description": "[Output Only] Unique identifier for the resource; defined by the server.", + "type": "string" + }, + "items": { + "description": "A list of VpnGateway resources.", + "items": { + "$ref": "VpnGateway" + }, "type": "array" }, + "kind": { + "default": "compute#vpnGatewayList", + "description": "Output only. [Output Only] Type of resource. Always compute#vpnGateway for\nVPN gateways.", + "readOnly": true, + "type": "string" + }, + "nextPageToken": { + "description": "[Output Only] This token allows you to get the next page of results for\nlist requests. If the number of results is larger thanmaxResults, use the nextPageToken as a value for\nthe query parameter pageToken in the next list request.\nSubsequent list requests will have their own nextPageToken to\ncontinue paging through the results.", + "type": "string" + }, + "selfLink": { + "description": "Output only. [Output Only] Server-defined URL for this resource.", + "readOnly": true, + "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.", + "description": "[Output Only] A warning code, if applicable. For example, Compute\nEngine returns NO_RESULTS_ON_PAGE if there\nare no results in the response.", "enum": [ "CLEANUP_FAILED", "DEPRECATED_RESOURCE_USED", @@ -82596,6 +110349,7 @@ "NOT_CRITICAL_ERROR", "NO_RESULTS_ON_PAGE", "PARTIAL_SUCCESS", + "QUOTA_INFO_UNAVAILABLE", "REQUIRED_TOS_AGREEMENT", "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", "RESOURCE_NOT_DELETED", @@ -82632,46 +110386,48 @@ false, false, false, + false, false ], "enumDescriptions": [ - "Warning about failed cleanup of transient changes made by a failed operation.", + "Warning about failed cleanup of transient changes made by a failed\noperation.", "A link to a deprecated resource was created.", - "When deploying and at least one of the resources has a type marked as deprecated", + "When deploying and at least one of the resources has a type marked as\ndeprecated", "The user created a boot disk that is larger than image size.", - "When deploying and at least one of the resources has a type marked as experimental", + "When deploying and at least one of the resources has a type marked as\nexperimental", "Warning that is present in an external api call", - "Warning that value of a field has been overridden. Deprecated unused field.", + "Warning that value of a field has been overridden.\nDeprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", - "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is\nnot of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", - "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", + "Resource can't be retrieved due to list overhead quota exceed\nwhich captures the amount of resources filtered out by\nuser-defined list filter.", "A resource depends on a missing type", - "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's nextHopIp address is not assigned to an instance on the\nnetwork.", "The route's next hop instance cannot ip forward.", - "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not have an\nipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", - "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that is not on the\nsame network as the route.", "The route's next hop instance does not have a status of RUNNING.", - "Error which is not critical. We decided to continue the process despite the mentioned error.", + "Error which is not critical. We decided to continue the process despite\nthe mentioned error.", "No results are present on a particular list page.", "Success is reported, but some results may be missing due to errors", - "The user attempted to use a resource that requires a TOS they have not accepted.", + "Quota information is not available to client requests (e.g:\nregions.list).", + "The user attempted to use a resource that requires a TOS they have not\naccepted.", "Warning that a resource is in use.", - "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "One or more of the resources set to auto-delete could not be deleted\nbecause they were in use.", "When a resource schema validation is ignored.", - "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", + "Instance template used in instance group manager is valid as such, but\nits application does not make a lot of sense, because it allows only\nsingle instance in instance group.", "When undeclared properties in the schema are present", "A given scope cannot be reached." ], "type": "string" }, "data": { - "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", + "description": "[Output Only] Metadata about this warning in key:\nvalue format. For example:\n\n\"data\": [\n {\n \"key\": \"scope\",\n \"value\": \"zones/us-east1-d\"\n }", "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).", + "description": "[Output Only] A key that provides more detail on the warning being\nreturned. For example, for warnings where there are no results in a list\nrequest for a particular zone, this key might be scope and\nthe key value might be the zone name. Other examples might be a key\nindicating a deprecated resource and a suggested replacement, or a\nwarning about invalid network settings (for example, if an instance\nattempts to perform IP forwarding but is not enabled for IP forwarding).", "type": "string" }, "value": { @@ -82693,153 +110449,14 @@ }, "type": "object" }, - "VpnGatewayList": { - "description": "Contains a list of VpnGateway resources.", - "id": "VpnGatewayList", + "VpnGatewayParams": { + "id": "VpnGatewayParams", "properties": { - "id": { - "description": "[Output Only] Unique identifier for the resource; defined by the server.", - "type": "string" - }, - "items": { - "description": "A list of VpnGateway resources.", - "items": { - "$ref": "VpnGateway" - }, - "type": "array" - }, - "kind": { - "default": "compute#vpnGatewayList", - "description": "[Output Only] Type of resource. Always compute#vpnGateway for VPN gateways.", - "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" - }, - "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", - "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", - "LARGE_DEPLOYMENT_WARNING", - "LIST_OVERHEAD_QUOTA_EXCEED", - "MISSING_TYPE_DEPENDENCY", - "NEXT_HOP_ADDRESS_NOT_ASSIGNED", - "NEXT_HOP_CANNOT_IP_FORWARD", - "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", - "NEXT_HOP_INSTANCE_NOT_FOUND", - "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", - "NEXT_HOP_NOT_RUNNING", - "NOT_CRITICAL_ERROR", - "NO_RESULTS_ON_PAGE", - "PARTIAL_SUCCESS", - "REQUIRED_TOS_AGREEMENT", - "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", - "RESOURCE_NOT_DELETED", - "SCHEMA_VALIDATION_IGNORED", - "SINGLE_INSTANCE_PROPERTY_TEMPLATE", - "UNDECLARED_PROPERTIES", - "UNREACHABLE" - ], - "enumDeprecated": [ - false, - false, - false, - false, - false, - false, - true, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false - ], - "enumDescriptions": [ - "Warning about failed cleanup of transient changes made by a failed operation.", - "A link to a deprecated resource was created.", - "When deploying and at least one of the resources has a type marked as deprecated", - "The user created a boot disk that is larger than image size.", - "When deploying and at least one of the resources has a type marked as experimental", - "Warning that is present in an external api call", - "Warning that value of a field has been overridden. Deprecated unused field.", - "The operation involved use of an injected kernel, which is deprecated.", - "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", - "When deploying a deployment with a exceedingly large number of resources", - "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", - "A resource depends on a missing type", - "The route's nextHopIp address is not assigned to an instance on the network.", - "The route's next hop instance cannot ip forward.", - "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", - "The route's nextHopInstance URL refers to an instance that does not exist.", - "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", - "The route's next hop instance does not have a status of RUNNING.", - "Error which is not critical. We decided to continue the process despite the mentioned error.", - "No results are present on a particular list page.", - "Success is reported, but some results may be missing due to errors", - "The user attempted to use a resource that requires a TOS they have not accepted.", - "Warning that a resource is in use.", - "One or more of the resources set to auto-delete could not be deleted because they were in use.", - "When a resource schema validation is ignored.", - "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", - "When undeclared properties in the schema are present", - "A given scope cannot be reached." - ], - "type": "string" - }, - "data": { - "description": "[Output Only] Metadata about this warning in key: value format. For example: \"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" - } + "resourceManagerTags": { + "additionalProperties": { + "type": "string" }, + "description": "Tag keys/values directly bound to this resource.\nTag keys and values have the same definition as resource\nmanager tags. The field is allowed for INSERT\nonly. The keys/values to set on the resource should be specified in\neither ID { : } or Namespaced format\n{ : }.\nFor example the following are valid inputs:\n* {\"tagKeys/333\" : \"tagValues/444\", \"tagKeys/123\" : \"tagValues/456\"}\n* {\"123/environment\" : \"production\", \"345/abc\" : \"xyz\"}\nNote:\n* Invalid combinations of ID \u0026 namespaced format is not supported. For\n instance: {\"123/environment\" : \"tagValues/444\"} is invalid.\n* Inconsistent format is not supported. For instance:\n {\"tagKeys/333\" : \"tagValues/444\", \"123/env\" : \"prod\"} is invalid.", "type": "object" } }, @@ -82849,33 +110466,34 @@ "id": "VpnGatewayStatus", "properties": { "vpnConnections": { - "description": "List of VPN connection for this VpnGateway.", + "description": "Output only. List of VPN connection for this VpnGateway.", "items": { "$ref": "VpnGatewayStatusVpnConnection" }, + "readOnly": true, "type": "array" } }, "type": "object" }, "VpnGatewayStatusHighAvailabilityRequirementState": { - "description": "Describes the high availability requirement state for the VPN connection between this Cloud VPN gateway and a peer gateway.", + "description": "Describes the high availability requirement state for the VPN connection\nbetween this Cloud VPN gateway and a peer gateway.", "id": "VpnGatewayStatusHighAvailabilityRequirementState", "properties": { "state": { - "description": "Indicates the high availability requirement state for the VPN connection. Valid values are CONNECTION_REDUNDANCY_MET, CONNECTION_REDUNDANCY_NOT_MET.", + "description": "Indicates the high availability requirement state for the VPN connection.\nValid values are CONNECTION_REDUNDANCY_MET,CONNECTION_REDUNDANCY_NOT_MET.", "enum": [ "CONNECTION_REDUNDANCY_MET", "CONNECTION_REDUNDANCY_NOT_MET" ], "enumDescriptions": [ - "VPN tunnels are configured with adequate redundancy from Cloud VPN gateway to the peer VPN gateway. For both GCP-to-non-GCP and GCP-to-GCP connections, the adequate redundancy is a pre-requirement for users to get 99.99% availability on GCP side; please note that for any connection, end-to-end 99.99% availability is subject to proper configuration on the peer VPN gateway.", - "VPN tunnels are not configured with adequate redundancy from the Cloud VPN gateway to the peer gateway" + "VPN tunnels are configured with adequate redundancy from Cloud VPN\ngateway to the peer VPN gateway. For both GCP-to-non-GCP and GCP-to-GCP\nconnections, the adequate redundancy is a pre-requirement for users to\nget 99.99% availability on GCP side; please note that for any\nconnection, end-to-end 99.99% availability is subject to proper\nconfiguration on the peer VPN gateway.", + "VPN tunnels are not configured with adequate redundancy from the Cloud\nVPN gateway to the peer gateway" ], "type": "string" }, "unsatisfiedReason": { - "description": "Indicates the reason why the VPN connection does not meet the high availability redundancy criteria/requirement. Valid values is INCOMPLETE_TUNNELS_COVERAGE.", + "description": "Indicates the reason why the VPN connection does not meet the high\navailability redundancy criteria/requirement.\nValid values is INCOMPLETE_TUNNELS_COVERAGE.", "enum": [ "INCOMPLETE_TUNNELS_COVERAGE" ], @@ -82892,32 +110510,37 @@ "id": "VpnGatewayStatusTunnel", "properties": { "localGatewayInterface": { - "description": "The VPN gateway interface this VPN tunnel is associated with.", + "description": "Output only. The VPN gateway interface this VPN tunnel is associated with.", "format": "uint32", + "readOnly": true, "type": "integer" }, "peerGatewayInterface": { - "description": "The peer gateway interface this VPN tunnel is connected to, the peer gateway could either be an external VPN gateway or a Google Cloud VPN gateway.", + "description": "Output only. The peer gateway interface this VPN tunnel is connected to, the peer\ngateway could either be an external VPN gateway or a Google Cloud\nVPN gateway.", "format": "uint32", + "readOnly": true, "type": "integer" }, "tunnelUrl": { - "description": "URL reference to the VPN tunnel.", + "description": "Output only. URL reference to the VPN tunnel.", + "readOnly": true, "type": "string" } }, "type": "object" }, "VpnGatewayStatusVpnConnection": { - "description": "A VPN connection contains all VPN tunnels connected from this VpnGateway to the same peer gateway. The peer gateway could either be an external VPN gateway or a Google Cloud VPN gateway.", + "description": "A VPN connection contains all VPN tunnels connected from this VpnGateway\nto the same peer gateway. The peer gateway could either be an external VPN\ngateway or a Google Cloud VPN gateway.", "id": "VpnGatewayStatusVpnConnection", "properties": { "peerExternalGateway": { - "description": "URL reference to the peer external VPN gateways to which the VPN tunnels in this VPN connection are connected. This field is mutually exclusive with peer_gcp_gateway.", + "description": "Output only. URL reference to the peer external VPN gateways to which the VPN tunnels\nin this VPN connection are connected.\nThis field is mutually exclusive with peer_gcp_gateway.", + "readOnly": true, "type": "string" }, "peerGcpGateway": { - "description": "URL reference to the peer side VPN gateways to which the VPN tunnels in this VPN connection are connected. This field is mutually exclusive with peer_gcp_gateway.", + "description": "Output only. URL reference to the peer side VPN gateways to which the VPN tunnels in\nthis VPN connection are connected.\nThis field is mutually exclusive with peer_gcp_gateway.", + "readOnly": true, "type": "string" }, "state": { @@ -82939,20 +110562,23 @@ "id": "VpnGatewayVpnGatewayInterface", "properties": { "id": { - "description": "[Output Only] Numeric identifier for this VPN interface associated with the VPN gateway.", + "description": "Output only. [Output Only] Numeric identifier for this VPN interface associated with\nthe VPN gateway.", "format": "uint32", + "readOnly": true, "type": "integer" }, "interconnectAttachment": { - "description": "URL of the VLAN attachment (interconnectAttachment) resource for this VPN gateway interface. When the value of this field is present, the VPN gateway is used for HA VPN over Cloud Interconnect; all egress or ingress traffic for this VPN gateway interface goes through the specified VLAN attachment resource.", + "description": "URL of the VLAN attachment (interconnectAttachment) resource for this\nVPN gateway interface. When the value of this field is present, the VPN\ngateway is used for HA VPN over Cloud Interconnect; all egress\nor ingress traffic for this VPN gateway interface goes through the\nspecified VLAN attachment resource.", "type": "string" }, "ipAddress": { - "description": "[Output Only] IP address for this VPN interface associated with the VPN gateway. The IP address could be either a regional external IP address or a regional internal IP address. The two IP addresses for a VPN gateway must be all regional external or regional internal IP addresses. There cannot be a mix of regional external IP addresses and regional internal IP addresses. For HA VPN over Cloud Interconnect, the IP addresses for both interfaces could either be regional internal IP addresses or regional external IP addresses. For regular (non HA VPN over Cloud Interconnect) HA VPN tunnels, the IP address must be a regional external IP address.", + "description": "Output only. [Output Only] IP address for this VPN interface associated with the VPN\ngateway.\nThe IP address could be either a regional external IP address or\na regional internal IP address. The two IP addresses for a VPN gateway\nmust be all regional external or regional internal IP addresses. There\ncannot be a mix of regional external IP addresses and regional internal\nIP addresses. For HA VPN over Cloud Interconnect, the IP addresses\nfor both interfaces could either be regional internal IP addresses or\nregional external IP addresses. For regular (non HA VPN over Cloud\nInterconnect) HA VPN tunnels, the IP address must be a regional external\nIP address.", + "readOnly": true, "type": "string" }, "ipv6Address": { - "description": "[Output Only] IPv6 address for this VPN interface associated with the VPN gateway. The IPv6 address must be a regional external IPv6 address. The format is RFC 5952 format (e.g. 2001:db8::2d9:51:0:0).", + "description": "Output only. [Output Only] IPv6 address for this VPN interface associated with the VPN\ngateway.\nThe IPv6 address must be a regional external IPv6 address. The format is\nRFC 5952 format (e.g. 2001:db8::2d9:51:0:0).", + "readOnly": true, "type": "string" } }, @@ -82978,10 +110604,10 @@ "type": "array" }, "warning": { - "description": "[Output Only] Informational warning which replaces the list of addresses when the list is empty.", + "description": "[Output Only] Informational warning which replaces the list of addresses\nwhen the list is empty.", "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.", + "description": "[Output Only] A warning code, if applicable. For example, Compute\nEngine returns NO_RESULTS_ON_PAGE if there\nare no results in the response.", "enum": [ "CLEANUP_FAILED", "DEPRECATED_RESOURCE_USED", @@ -83004,6 +110630,7 @@ "NOT_CRITICAL_ERROR", "NO_RESULTS_ON_PAGE", "PARTIAL_SUCCESS", + "QUOTA_INFO_UNAVAILABLE", "REQUIRED_TOS_AGREEMENT", "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", "RESOURCE_NOT_DELETED", @@ -83040,46 +110667,48 @@ false, false, false, + false, false ], "enumDescriptions": [ - "Warning about failed cleanup of transient changes made by a failed operation.", + "Warning about failed cleanup of transient changes made by a failed\noperation.", "A link to a deprecated resource was created.", - "When deploying and at least one of the resources has a type marked as deprecated", + "When deploying and at least one of the resources has a type marked as\ndeprecated", "The user created a boot disk that is larger than image size.", - "When deploying and at least one of the resources has a type marked as experimental", + "When deploying and at least one of the resources has a type marked as\nexperimental", "Warning that is present in an external api call", - "Warning that value of a field has been overridden. Deprecated unused field.", + "Warning that value of a field has been overridden.\nDeprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", - "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is\nnot of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", - "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", + "Resource can't be retrieved due to list overhead quota exceed\nwhich captures the amount of resources filtered out by\nuser-defined list filter.", "A resource depends on a missing type", - "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's nextHopIp address is not assigned to an instance on the\nnetwork.", "The route's next hop instance cannot ip forward.", - "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not have an\nipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", - "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that is not on the\nsame network as the route.", "The route's next hop instance does not have a status of RUNNING.", - "Error which is not critical. We decided to continue the process despite the mentioned error.", + "Error which is not critical. We decided to continue the process despite\nthe mentioned error.", "No results are present on a particular list page.", "Success is reported, but some results may be missing due to errors", - "The user attempted to use a resource that requires a TOS they have not accepted.", + "Quota information is not available to client requests (e.g:\nregions.list).", + "The user attempted to use a resource that requires a TOS they have not\naccepted.", "Warning that a resource is in use.", - "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "One or more of the resources set to auto-delete could not be deleted\nbecause they were in use.", "When a resource schema validation is ignored.", - "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", + "Instance template used in instance group manager is valid as such, but\nits application does not make a lot of sense, because it allows only\nsingle instance in instance group.", "When undeclared properties in the schema are present", "A given scope cannot be reached." ], "type": "string" }, "data": { - "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", + "description": "[Output Only] Metadata about this warning in key:\nvalue format. For example:\n\n\"data\": [\n {\n \"key\": \"scope\",\n \"value\": \"zones/us-east1-d\"\n }", "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).", + "description": "[Output Only] A key that provides more detail on the warning being\nreturned. For example, for warnings where there are no results in a list\nrequest for a particular zone, this key might be scope and\nthe key value might be the zone name. Other examples might be a key\nindicating a deprecated resource and a suggested replacement, or a\nwarning about invalid network settings (for example, if an instance\nattempts to perform IP forwarding but is not enabled for IP forwarding).", "type": "string" }, "value": { @@ -83102,15 +110731,20 @@ "type": "object" }, "VpnTunnel": { - "description": "Represents a Cloud VPN Tunnel resource. For more information about VPN, read the the Cloud VPN Overview.", + "description": "Represents a Cloud VPN Tunnel resource.\n\nFor more information about VPN, read the\nthe Cloud VPN Overview.", "id": "VpnTunnel", "properties": { + "cipherSuite": { + "$ref": "VpnTunnelCipherSuite", + "description": "User specified list of ciphers to use for the phase 1 and phase 2 of the\nIKE protocol." + }, "creationTimestamp": { - "description": "[Output Only] Creation timestamp in RFC3339 text format.", + "description": "Output only. [Output Only] Creation timestamp inRFC3339\ntext format.", + "readOnly": true, "type": "string" }, "description": { - "description": "An optional description of this resource. Provide this property when you create the resource.", + "description": "An optional description of this resource. Provide this property when you\ncreate the resource.", "type": "string" }, "detailedStatus": { @@ -83118,22 +110752,23 @@ "type": "string" }, "id": { - "description": "[Output Only] The unique identifier for the resource. This identifier is defined by the server.", + "description": "[Output Only] The unique identifier for the resource. This identifier is\ndefined by the server.", "format": "uint64", "type": "string" }, "ikeVersion": { - "description": "IKE protocol version to use when establishing the VPN tunnel with the peer VPN gateway. Acceptable IKE versions are 1 or 2. The default version is 2.", + "description": "IKE protocol version to use when establishing the VPN tunnel with the peer\nVPN gateway. Acceptable IKE versions are 1 or 2.\nThe default version is 2.", "format": "int32", "type": "integer" }, "kind": { "default": "compute#vpnTunnel", - "description": "[Output Only] Type of resource. Always compute#vpnTunnel for VPN tunnels.", + "description": "Output only. [Output Only] Type of resource. Always compute#vpnTunnel for\nVPN tunnels.", + "readOnly": true, "type": "string" }, "labelFingerprint": { - "description": "A fingerprint for the labels being applied to this VpnTunnel, which is essentially a hash of the labels set used for optimistic locking. The fingerprint is initially generated by Compute Engine and changes after every request to modify or update labels. You must always provide an up-to-date fingerprint hash in order to update or change labels, otherwise the request will fail with error 412 conditionNotMet. To see the latest fingerprint, make a get() request to retrieve a VpnTunnel.", + "description": "A fingerprint for the labels being applied to this VpnTunnel, which is\nessentially a hash of the labels set used for optimistic locking. The\nfingerprint is initially generated by Compute Engine and changes after\nevery request to modify or update labels. You must always provide an\nup-to-date fingerprint hash in order to update or change labels,\notherwise the request will fail with error412 conditionNotMet.\n\nTo see the latest fingerprint, make a get() request to\nretrieve a VpnTunnel.", "format": "byte", "type": "string" }, @@ -83141,11 +110776,11 @@ "additionalProperties": { "type": "string" }, - "description": "Labels for this resource. These can only be added or modified by the setLabels method. Each label key/value pair must comply with RFC1035. Label values may be empty.", + "description": "Labels for this resource. These can only be added or modified by thesetLabels method. Each label key/value pair must comply withRFC1035.\nLabel values may be empty.", "type": "object" }, "localTrafficSelector": { - "description": "Local traffic selector to use when establishing the VPN tunnel with the peer VPN gateway. The value should be a CIDR formatted string, for example: 192.168.0.0/16. The ranges must be disjoint. Only IPv4 is supported.", + "description": "Local traffic selector to use when establishing the VPN tunnel with the\npeer VPN gateway. The value should be a CIDR formatted string, for\nexample: 192.168.0.0/16. The ranges must be disjoint.\nOnly IPv4 is supported for Classic VPN tunnels. This field is output only\nfor HA VPN tunnels.", "items": { "type": "string" }, @@ -83157,33 +110792,37 @@ "compute.vpnTunnels.insert" ] }, - "description": "Name of the resource. Provided by the client when the resource is created. The name must be 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters long and match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash.", + "description": "Name of the resource. Provided by the client when the resource is created.\nThe name must be 1-63 characters long, and comply withRFC1035.\nSpecifically, the name must be 1-63 characters long and match the regular\nexpression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first\ncharacter must be a lowercase letter, and all following characters must\nbe a dash, lowercase letter, or digit, except the last character, which\ncannot be a dash.", "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", "type": "string" }, + "params": { + "$ref": "VpnTunnelParams", + "description": "Input only. [Input Only] Additional params passed with the request, but not persisted\nas part of resource payload." + }, "peerExternalGateway": { - "description": "URL of the peer side external VPN gateway to which this VPN tunnel is connected. Provided by the client when the VPN tunnel is created. This field is exclusive with the field peerGcpGateway.", + "description": "URL of the peer side external VPN gateway to which this VPN tunnel is\nconnected.\nProvided by the client when the VPN tunnel is created.\nThis field is exclusive with the field peerGcpGateway.", "type": "string" }, "peerExternalGatewayInterface": { - "description": "The interface ID of the external VPN gateway to which this VPN tunnel is connected. Provided by the client when the VPN tunnel is created. Possible values are: `0`, `1`, `2`, `3`. The number of IDs in use depends on the external VPN gateway redundancy type.", + "description": "The interface ID of the external VPN gateway to which this VPN tunnel is\nconnected. Provided by the client when the VPN tunnel is created.\nPossible values are: `0`, `1`, `2`, `3`. The number of IDs in use\ndepends on the external VPN gateway redundancy type.", "format": "int32", "type": "integer" }, "peerGcpGateway": { - "description": "URL of the peer side HA VPN gateway to which this VPN tunnel is connected. Provided by the client when the VPN tunnel is created. This field can be used when creating highly available VPN from VPC network to VPC network, the field is exclusive with the field peerExternalGateway. If provided, the VPN tunnel will automatically use the same vpnGatewayInterface ID in the peer Google Cloud VPN gateway.", + "description": "URL of the peer side HA VPN gateway to which this VPN tunnel\nis connected. Provided by the client when the VPN tunnel is created.\nThis field can be used when creating highly available VPN from VPC network\nto VPC network, the field is exclusive with the field peerExternalGateway.\nIf provided, the VPN tunnel will automatically use the same\nvpnGatewayInterface ID in the peer Google Cloud VPN gateway.", "type": "string" }, "peerIp": { - "description": "IP address of the peer VPN gateway. Only IPv4 is supported.", + "description": "IP address of the peer VPN gateway. Only IPv4 is supported. This field can\nbe set only for Classic VPN tunnels.", "type": "string" }, "region": { - "description": "[Output Only] URL of the region where the VPN tunnel resides. You must specify this field as part of the HTTP request URL. It is not settable as a field in the request body.", + "description": "[Output Only] URL of the region where the VPN tunnel resides.\nYou must specify this field as part of the HTTP request URL. It is\nnot settable as a field in the request body.", "type": "string" }, "remoteTrafficSelector": { - "description": "Remote traffic selectors to use when establishing the VPN tunnel with the peer VPN gateway. The value should be a CIDR formatted string, for example: 192.168.0.0/16. The ranges should be disjoint. Only IPv4 is supported.", + "description": "Remote traffic selectors to use when establishing the VPN tunnel with\nthe peer VPN gateway. The value should be a CIDR formatted string,\nfor example: 192.168.0.0/16. The ranges should be disjoint. Only IPv4 is\nsupported for Classic VPN tunnels. This field is output only for HA VPN\ntunnels.", "items": { "type": "string" }, @@ -83198,7 +110837,7 @@ "type": "string" }, "sharedSecret": { - "description": "Shared secret used to set the secure session between the Cloud VPN gateway and the peer VPN gateway.", + "description": "Shared secret used to set the secure session between the Cloud VPN gateway\nand the peer VPN gateway.", "type": "string" }, "sharedSecretHash": { @@ -83206,7 +110845,7 @@ "type": "string" }, "status": { - "description": "[Output Only] The status of the VPN tunnel, which can be one of the following: - PROVISIONING: Resource is being allocated for the VPN tunnel. - WAITING_FOR_FULL_CONFIG: Waiting to receive all VPN-related configs from the user. Network, TargetVpnGateway, VpnTunnel, ForwardingRule, and Route resources are needed to setup the VPN tunnel. - FIRST_HANDSHAKE: Successful first handshake with the peer VPN. - ESTABLISHED: Secure session is successfully established with the peer VPN. - NETWORK_ERROR: Deprecated, replaced by NO_INCOMING_PACKETS - AUTHORIZATION_ERROR: Auth error (for example, bad shared secret). - NEGOTIATION_FAILURE: Handshake failed. - DEPROVISIONING: Resources are being deallocated for the VPN tunnel. - FAILED: Tunnel creation has failed and the tunnel is not ready to be used. - NO_INCOMING_PACKETS: No incoming packets from peer. - REJECTED: Tunnel configuration was rejected, can be result of being denied access. - ALLOCATING_RESOURCES: Cloud VPN is in the process of allocating all required resources. - STOPPED: Tunnel is stopped due to its Forwarding Rules being deleted for Classic VPN tunnels or the project is in frozen state. - PEER_IDENTITY_MISMATCH: Peer identity does not match peer IP, probably behind NAT. - TS_NARROWING_NOT_ALLOWED: Traffic selector narrowing not allowed for an HA-VPN tunnel. ", + "description": "[Output Only] The status of the VPN tunnel, which can be one of the\nfollowing:\n \n - PROVISIONING: Resource is being allocated for the VPN tunnel.\n - WAITING_FOR_FULL_CONFIG: Waiting to receive all VPN-related configs\n from\n the user. Network, TargetVpnGateway, VpnTunnel, ForwardingRule, and Route\n resources are needed to setup the VPN tunnel.\n - FIRST_HANDSHAKE: Successful first handshake with the peer VPN.\n - ESTABLISHED: Secure session is successfully established with the peer\n VPN. \n - NETWORK_ERROR: Deprecated, replaced by\n NO_INCOMING_PACKETS \n - AUTHORIZATION_ERROR: Auth error (for example,\n bad shared secret). \n - NEGOTIATION_FAILURE: Handshake failed.\n - DEPROVISIONING: Resources are being deallocated for the VPN\n tunnel. \n - FAILED: Tunnel creation has failed and the tunnel is not\n ready to be used. \n - NO_INCOMING_PACKETS: No incoming packets from\n peer. \n - REJECTED: Tunnel configuration was rejected, can be result\n of being denied access. \n - ALLOCATING_RESOURCES: Cloud VPN is in the\n process of allocating all required resources.\n - STOPPED: Tunnel is stopped due to its Forwarding Rules being deleted\n for Classic VPN tunnels or the project is in frozen state.\n - PEER_IDENTITY_MISMATCH: Peer identity does not match peer IP,\n probably behind NAT. \n - TS_NARROWING_NOT_ALLOWED: Traffic selector\n narrowing not allowed for an HA-VPN tunnel.", "enum": [ "ALLOCATING_RESOURCES", "AUTHORIZATION_ERROR", @@ -83223,7 +110862,7 @@ "WAITING_FOR_FULL_CONFIG" ], "enumDescriptions": [ - "Cloud VPN is in the process of allocating all required resources (specifically, a borg task).", + "Cloud VPN is in the process of allocating all required resources\n(specifically, a borg task).", "Auth error (e.g. bad shared secret).", "Resources is being deallocated for the VPN tunnel.", "Secure session is successfully established with peer VPN.", @@ -83235,20 +110874,20 @@ "Resource is being allocated for the VPN tunnel.", "Tunnel configuration was rejected, can be result of being denylisted.", "Tunnel is stopped due to its Forwarding Rules being deleted.", - "Waiting to receive all VPN-related configs from user. Network, TargetVpnGateway, VpnTunnel, ForwardingRule and Route resources are needed to setup VPN tunnel." + "Waiting to receive all VPN-related configs from user. Network,\nTargetVpnGateway, VpnTunnel, ForwardingRule and Route resources are\nneeded to setup VPN tunnel." ], "type": "string" }, "targetVpnGateway": { - "description": "URL of the Target VPN gateway with which this VPN tunnel is associated. Provided by the client when the VPN tunnel is created.", + "description": "URL of the Target VPN gateway with which this VPN tunnel is associated.\nProvided by the client when the VPN tunnel is created.\nThis field can be set only for Classic VPN tunnels.", "type": "string" }, "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 High Availability VPN gateway resource is created.", + "description": "URL of the VPN gateway with which this VPN tunnel is associated.\nProvided by the client when the VPN tunnel is created. This must be\nused (instead of target_vpn_gateway) if a High Availability VPN gateway\nresource is created.", "type": "string" }, "vpnGatewayInterface": { - "description": "The interface ID of the VPN gateway with which this VPN tunnel is associated. Possible values are: `0`, `1`.", + "description": "The interface ID of the VPN gateway with which this VPN tunnel is\nassociated.\nPossible values are: `0`, `1`.", "format": "int32", "type": "integer" } @@ -83272,29 +110911,32 @@ }, "kind": { "default": "compute#vpnTunnelAggregatedList", - "description": "[Output Only] Type of resource. Always compute#vpnTunnel for VPN tunnels.", + "description": "Output only. [Output Only] Type of resource. Always compute#vpnTunnel for\nVPN tunnels.", + "readOnly": true, "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.", + "description": "[Output Only] This token allows you to get the next page of results for\nlist requests. If the number of results is larger thanmaxResults, use the nextPageToken as a value for\nthe query parameter pageToken in the next list request.\nSubsequent list requests will have their own nextPageToken to\ncontinue paging through the results.", "type": "string" }, "selfLink": { - "description": "[Output Only] Server-defined URL for this resource.", + "description": "Output only. [Output Only] Server-defined URL for this resource.", + "readOnly": true, "type": "string" }, "unreachables": { - "description": "[Output Only] Unreachable resources.", + "description": "Output only. [Output Only] Unreachable resources.", "items": { "type": "string" }, + "readOnly": true, "type": "array" }, "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.", + "description": "[Output Only] A warning code, if applicable. For example, Compute\nEngine returns NO_RESULTS_ON_PAGE if there\nare no results in the response.", "enum": [ "CLEANUP_FAILED", "DEPRECATED_RESOURCE_USED", @@ -83317,6 +110959,7 @@ "NOT_CRITICAL_ERROR", "NO_RESULTS_ON_PAGE", "PARTIAL_SUCCESS", + "QUOTA_INFO_UNAVAILABLE", "REQUIRED_TOS_AGREEMENT", "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", "RESOURCE_NOT_DELETED", @@ -83353,46 +110996,48 @@ false, false, false, + false, false ], "enumDescriptions": [ - "Warning about failed cleanup of transient changes made by a failed operation.", + "Warning about failed cleanup of transient changes made by a failed\noperation.", "A link to a deprecated resource was created.", - "When deploying and at least one of the resources has a type marked as deprecated", + "When deploying and at least one of the resources has a type marked as\ndeprecated", "The user created a boot disk that is larger than image size.", - "When deploying and at least one of the resources has a type marked as experimental", + "When deploying and at least one of the resources has a type marked as\nexperimental", "Warning that is present in an external api call", - "Warning that value of a field has been overridden. Deprecated unused field.", + "Warning that value of a field has been overridden.\nDeprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", - "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is\nnot of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", - "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", + "Resource can't be retrieved due to list overhead quota exceed\nwhich captures the amount of resources filtered out by\nuser-defined list filter.", "A resource depends on a missing type", - "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's nextHopIp address is not assigned to an instance on the\nnetwork.", "The route's next hop instance cannot ip forward.", - "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not have an\nipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", - "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that is not on the\nsame network as the route.", "The route's next hop instance does not have a status of RUNNING.", - "Error which is not critical. We decided to continue the process despite the mentioned error.", + "Error which is not critical. We decided to continue the process despite\nthe mentioned error.", "No results are present on a particular list page.", "Success is reported, but some results may be missing due to errors", - "The user attempted to use a resource that requires a TOS they have not accepted.", + "Quota information is not available to client requests (e.g:\nregions.list).", + "The user attempted to use a resource that requires a TOS they have not\naccepted.", "Warning that a resource is in use.", - "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "One or more of the resources set to auto-delete could not be deleted\nbecause they were in use.", "When a resource schema validation is ignored.", - "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", + "Instance template used in instance group manager is valid as such, but\nits application does not make a lot of sense, because it allows only\nsingle instance in instance group.", "When undeclared properties in the schema are present", "A given scope cannot be reached." ], "type": "string" }, "data": { - "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", + "description": "[Output Only] Metadata about this warning in key:\nvalue format. For example:\n\n\"data\": [\n {\n \"key\": \"scope\",\n \"value\": \"zones/us-east1-d\"\n }", "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).", + "description": "[Output Only] A key that provides more detail on the warning being\nreturned. For example, for warnings where there are no results in a list\nrequest for a particular zone, this key might be scope and\nthe key value might be the zone name. Other examples might be a key\nindicating a deprecated resource and a suggested replacement, or a\nwarning about invalid network settings (for example, if an instance\nattempts to perform IP forwarding but is not enabled for IP forwarding).", "type": "string" }, "value": { @@ -83414,6 +111059,18 @@ }, "type": "object" }, + "VpnTunnelCipherSuite": { + "id": "VpnTunnelCipherSuite", + "properties": { + "phase1": { + "$ref": "VpnTunnelPhase1Algorithms" + }, + "phase2": { + "$ref": "VpnTunnelPhase2Algorithms" + } + }, + "type": "object" + }, "VpnTunnelList": { "description": "Contains a list of VpnTunnel resources.", "id": "VpnTunnelList", @@ -83431,22 +111088,24 @@ }, "kind": { "default": "compute#vpnTunnelList", - "description": "[Output Only] Type of resource. Always compute#vpnTunnel for VPN tunnels.", + "description": "Output only. [Output Only] Type of resource. Always compute#vpnTunnel for\nVPN tunnels.", + "readOnly": true, "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.", + "description": "[Output Only] This token allows you to get the next page of results for\nlist requests. If the number of results is larger thanmaxResults, use the nextPageToken as a value for\nthe query parameter pageToken in the next list request.\nSubsequent list requests will have their own nextPageToken to\ncontinue paging through the results.", "type": "string" }, "selfLink": { - "description": "[Output Only] Server-defined URL for this resource.", + "description": "Output only. [Output Only] Server-defined URL for this resource.", + "readOnly": true, "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.", + "description": "[Output Only] A warning code, if applicable. For example, Compute\nEngine returns NO_RESULTS_ON_PAGE if there\nare no results in the response.", "enum": [ "CLEANUP_FAILED", "DEPRECATED_RESOURCE_USED", @@ -83469,6 +111128,7 @@ "NOT_CRITICAL_ERROR", "NO_RESULTS_ON_PAGE", "PARTIAL_SUCCESS", + "QUOTA_INFO_UNAVAILABLE", "REQUIRED_TOS_AGREEMENT", "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", "RESOURCE_NOT_DELETED", @@ -83505,46 +111165,252 @@ false, false, false, + false, + false + ], + "enumDescriptions": [ + "Warning about failed cleanup of transient changes made by a failed\noperation.", + "A link to a deprecated resource was created.", + "When deploying and at least one of the resources has a type marked as\ndeprecated", + "The user created a boot disk that is larger than image size.", + "When deploying and at least one of the resources has a type marked as\nexperimental", + "Warning that is present in an external api call", + "Warning that value of a field has been overridden.\nDeprecated unused field.", + "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is\nnot of type HTTP/HTTPS/HTTP2.", + "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed\nwhich captures the amount of resources filtered out by\nuser-defined list filter.", + "A resource depends on a missing type", + "The route's nextHopIp address is not assigned to an instance on the\nnetwork.", + "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an\nipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not exist.", + "The route's nextHopInstance URL refers to an instance that is not on the\nsame network as the route.", + "The route's next hop instance does not have a status of RUNNING.", + "Error which is not critical. We decided to continue the process despite\nthe mentioned error.", + "No results are present on a particular list page.", + "Success is reported, but some results may be missing due to errors", + "Quota information is not available to client requests (e.g:\nregions.list).", + "The user attempted to use a resource that requires a TOS they have not\naccepted.", + "Warning that a resource is in use.", + "One or more of the resources set to auto-delete could not be deleted\nbecause they were in use.", + "When a resource schema validation is ignored.", + "Instance template used in instance group manager is valid as such, but\nits application does not make a lot of sense, because it allows only\nsingle instance in instance group.", + "When undeclared properties in the schema are present", + "A given scope cannot be reached." + ], + "type": "string" + }, + "data": { + "description": "[Output Only] Metadata about this warning in key:\nvalue format. For example:\n\n\"data\": [\n {\n \"key\": \"scope\",\n \"value\": \"zones/us-east1-d\"\n }", + "items": { + "properties": { + "key": { + "description": "[Output Only] A key that provides more detail on the warning being\nreturned. For example, for warnings where there are no results in a list\nrequest for a particular zone, this key might be scope and\nthe key value might be the zone name. Other examples might be a key\nindicating a deprecated resource and a suggested replacement, or a\nwarning about invalid network settings (for example, if an instance\nattempts 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" + }, + "VpnTunnelParams": { + "id": "VpnTunnelParams", + "properties": { + "resourceManagerTags": { + "additionalProperties": { + "type": "string" + }, + "description": "Tag keys/values directly bound to this resource.\nTag keys and values have the same definition as resource\nmanager tags. The field is allowed for INSERT\nonly. The keys/values to set on the resource should be specified in\neither ID { : } or Namespaced format\n{ : }.\nFor example the following are valid inputs:\n* {\"tagKeys/333\" : \"tagValues/444\", \"tagKeys/123\" : \"tagValues/456\"}\n* {\"123/environment\" : \"production\", \"345/abc\" : \"xyz\"}\nNote:\n* Invalid combinations of ID \u0026 namespaced format is not supported. For\n instance: {\"123/environment\" : \"tagValues/444\"} is invalid.\n* Inconsistent format is not supported. For instance:\n {\"tagKeys/333\" : \"tagValues/444\", \"123/env\" : \"prod\"} is invalid.", + "type": "object" + } + }, + "type": "object" + }, + "VpnTunnelPhase1Algorithms": { + "id": "VpnTunnelPhase1Algorithms", + "properties": { + "dh": { + "items": { + "type": "string" + }, + "type": "array" + }, + "encryption": { + "items": { + "type": "string" + }, + "type": "array" + }, + "integrity": { + "items": { + "type": "string" + }, + "type": "array" + }, + "prf": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "VpnTunnelPhase2Algorithms": { + "id": "VpnTunnelPhase2Algorithms", + "properties": { + "encryption": { + "items": { + "type": "string" + }, + "type": "array" + }, + "integrity": { + "items": { + "type": "string" + }, + "type": "array" + }, + "pfs": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "VpnTunnelsScopedList": { + "id": "VpnTunnelsScopedList", + "properties": { + "vpnTunnels": { + "description": "A list of VPN tunnels contained in this scope.", + "items": { + "$ref": "VpnTunnel" + }, + "type": "array" + }, + "warning": { + "description": "Informational warning which replaces the list of addresses when\nthe list is empty.", + "properties": { + "code": { + "description": "[Output Only] A warning code, if applicable. For example, Compute\nEngine returns NO_RESULTS_ON_PAGE if there\nare 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", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", + "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "PARTIAL_SUCCESS", + "QUOTA_INFO_UNAVAILABLE", + "REQUIRED_TOS_AGREEMENT", + "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", + "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", + "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", + "UNREACHABLE" + ], + "enumDeprecated": [ + false, + false, + false, + false, + false, + false, + true, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, false ], "enumDescriptions": [ - "Warning about failed cleanup of transient changes made by a failed operation.", + "Warning about failed cleanup of transient changes made by a failed\noperation.", "A link to a deprecated resource was created.", - "When deploying and at least one of the resources has a type marked as deprecated", + "When deploying and at least one of the resources has a type marked as\ndeprecated", "The user created a boot disk that is larger than image size.", - "When deploying and at least one of the resources has a type marked as experimental", + "When deploying and at least one of the resources has a type marked as\nexperimental", "Warning that is present in an external api call", - "Warning that value of a field has been overridden. Deprecated unused field.", + "Warning that value of a field has been overridden.\nDeprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", - "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is\nnot of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", - "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", + "Resource can't be retrieved due to list overhead quota exceed\nwhich captures the amount of resources filtered out by\nuser-defined list filter.", "A resource depends on a missing type", - "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's nextHopIp address is not assigned to an instance on the\nnetwork.", "The route's next hop instance cannot ip forward.", - "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not have an\nipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", - "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that is not on the\nsame network as the route.", "The route's next hop instance does not have a status of RUNNING.", - "Error which is not critical. We decided to continue the process despite the mentioned error.", + "Error which is not critical. We decided to continue the process despite\nthe mentioned error.", "No results are present on a particular list page.", "Success is reported, but some results may be missing due to errors", - "The user attempted to use a resource that requires a TOS they have not accepted.", + "Quota information is not available to client requests (e.g:\nregions.list).", + "The user attempted to use a resource that requires a TOS they have not\naccepted.", "Warning that a resource is in use.", - "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "One or more of the resources set to auto-delete could not be deleted\nbecause they were in use.", "When a resource schema validation is ignored.", - "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", + "Instance template used in instance group manager is valid as such, but\nits application does not make a lot of sense, because it allows only\nsingle instance in instance group.", "When undeclared properties in the schema are present", "A given scope cannot be reached." ], "type": "string" }, "data": { - "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", + "description": "[Output Only] Metadata about this warning in key:\nvalue format. For example:\n\n\"data\": [\n {\n \"key\": \"scope\",\n \"value\": \"zones/us-east1-d\"\n }", "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).", + "description": "[Output Only] A key that provides more detail on the warning being\nreturned. For example, for warnings where there are no results in a list\nrequest for a particular zone, this key might be scope and\nthe key value might be the zone name. Other examples might be a key\nindicating a deprecated resource and a suggested replacement, or a\nwarning about invalid network settings (for example, if an instance\nattempts to perform IP forwarding but is not enabled for IP forwarding).", "type": "string" }, "value": { @@ -83566,21 +111432,260 @@ }, "type": "object" }, - "VpnTunnelsScopedList": { - "id": "VpnTunnelsScopedList", + "WafExpressionSet": { + "id": "WafExpressionSet", "properties": { - "vpnTunnels": { - "description": "A list of VPN tunnels contained in this scope.", + "aliases": { + "description": "A list of alternate IDs. The format should be:\n- E.g. XSS-stable\nGeneric suffix like \"stable\" is particularly useful if a policy\nlikes to avail newer set of expressions without having to change\nthe policy.\nA given alias name can't be used for more than one entity set.", "items": { - "$ref": "VpnTunnel" + "type": "string" }, "type": "array" }, + "expressions": { + "description": "List of available expressions.", + "items": { + "$ref": "WafExpressionSetExpression" + }, + "type": "array" + }, + "id": { + "description": "Google specified expression set ID. The format should be:\n- E.g. XSS-20170329\nrequired", + "type": "string" + } + }, + "type": "object" + }, + "WafExpressionSetExpression": { + "id": "WafExpressionSetExpression", + "properties": { + "id": { + "description": "Expression ID should uniquely identify the origin of the expression.\nE.g. owasp-crs-v020901-id973337 identifies Owasp core rule set\nversion 2.9.1 rule id 973337.\nThe ID could be used to determine the individual attack definition\nthat has been detected. It could also be used to exclude it from\nthe policy in case of false positive.\nrequired", + "type": "string" + }, + "sensitivity": { + "description": "The sensitivity value associated with the WAF rule ID. This corresponds\nto the ModSecurity paranoia level, ranging from 1 to 4. 0 is reserved for\nopt-in only rules.", + "format": "int32", + "type": "integer" + } + }, + "type": "object" + }, + "WeightedBackendService": { + "description": "In contrast to a single BackendService in \nHttpRouteAction to which all matching traffic is directed to,WeightedBackendService allows traffic to be split across\nmultiple backend services. The volume of traffic for each\nbackend service is proportional to the weight specified\nin each WeightedBackendService", + "id": "WeightedBackendService", + "properties": { + "backendService": { + "description": "The full or partial URL to the default BackendService\nresource. Before\nforwarding the request to backendService, the load balancer\napplies any relevant headerActions specified as part of thisbackendServiceWeight.", + "type": "string" + }, + "headerAction": { + "$ref": "HttpHeaderAction", + "description": "Specifies changes to request and response headers that need to take\neffect for the selected backendService.\n\nheaderAction specified here take effect beforeheaderAction in the enclosing HttpRouteRule,PathMatcher and UrlMap.\n\nheaderAction is not supported for load balancers that have\ntheir loadBalancingScheme set to EXTERNAL.\n\nNot supported when the URL map is bound to a target gRPC proxy that\nhas validateForProxyless field set to true." + }, + "weight": { + "description": "Specifies the fraction of traffic sent to a backend service,\ncomputed asweight / (sum of all weightedBackendService weights in routeAction).\n\nThe selection of a backend service is determined only for new traffic.\nOnce a user's request has been directed to a backend service,\nsubsequent requests are sent to the same backend service as\ndetermined by the backend service's session affinity policy.\nDon't configure session affinity if you're using weighted traffic\nsplitting. If you do, the weighted traffic splitting configuration takes\nprecedence.\n\nThe value must be from 0 to 1000.", + "format": "uint32", + "type": "integer" + } + }, + "type": "object" + }, + "Wire": { + "description": "A pseudowire that connects two Interconnect connections.", + "id": "Wire", + "properties": { + "adminEnabled": { + "description": "Output only. [Output Only] Indicates whether the wire is enabled.\nWhen false, the wire is disabled. When true and when the wire group of\nthe wire is also enabled, the wire is enabled. Defaults to true.", + "readOnly": true, + "type": "boolean" + }, + "endpoints": { + "description": "Output only. Wire endpoints are specific Interconnect connections.", + "items": { + "$ref": "WireEndpoint" + }, + "readOnly": true, + "type": "array" + }, + "label": { + "description": "Output only. [Output Only] A label that identifies the wire. The format of this label\ncombines the existing labels of the wire group endpoints and Interconnect\nconnections used by this wire in alphabetical order as follows:\n`ENDPOINT_A+CONNECTION_A1,ENDPOINT_B+CONNECTION_B1`, where:\n \n - ENDPOINT_A and ENDPOINT_B: are the labels\n that you entered as map keys when you specified the wire group endpoint\n objects.\n - CONNECTION_A1 and CONNECTION_B1: are the\n labels that you entered as map keys when you specified the wire group\n Interconnect objects.", + "readOnly": true, + "type": "string" + }, + "wireProperties": { + "$ref": "WireProperties", + "description": "Output only. [Output Only] Properties of the wire.", + "readOnly": true + } + }, + "type": "object" + }, + "WireEndpoint": { + "description": "Wire endpoints are specific Interconnect connections.", + "id": "WireEndpoint", + "properties": { + "interconnect": { + "readOnly": true, + "type": "string" + }, + "vlanTag": { + "format": "int32", + "readOnly": true, + "type": "integer" + } + }, + "type": "object" + }, + "WireGroup": { + "description": "A resource that represents a group of redundant wires.", + "id": "WireGroup", + "properties": { + "adminEnabled": { + "description": "Indicates whether the wires in the wire group are enabled. When false, the\nwires in the wire group are disabled. When true and when\nthere is simultaneously no wire-specific override of `adminEnabled` to\nfalse, a given wire is enabled. Defaults to true.", + "type": "boolean" + }, + "creationTimestamp": { + "description": "Output only. [Output Only] Creation timestamp inRFC3339\ntext format.", + "readOnly": true, + "type": "string" + }, + "description": { + "description": "An optional description of the wire group.", + "type": "string" + }, + "endpoints": { + "additionalProperties": { + "$ref": "WireGroupEndpoint" + }, + "description": "A map that contains the logical endpoints of the wire group. Specify\nkey-value pairs for the map as follows:\n \n - Key: an RFC1035 user-specified label.\n - Value: an Endpoint object.", + "type": "object" + }, + "id": { + "description": "Output only. [Output Only] The unique identifier for the resource type. The server\ngenerates this identifier.", + "format": "uint64", + "readOnly": true, + "type": "string" + }, + "kind": { + "default": "compute#wireGroup", + "description": "Output only. [Output Only] Type of the resource. Alwayscompute#wireGroups for wire groups.", + "readOnly": true, + "type": "string" + }, + "name": { + "description": "Name of the resource. Provided by the client when the resource is created.\nThe name must be 1-63 characters long, and comply withRFC1035.\nSpecifically, the name must be 1-63 characters long and match the regular\nexpression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first\ncharacter must be a lowercase letter, and all following characters must\nbe a dash, lowercase letter, or digit, except the last character, which\ncannot be a dash.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "type": "string" + }, + "reconciling": { + "description": "Output only. [Output Only] Indicates whether there are wire changes yet to be processed.", + "readOnly": true, + "type": "boolean" + }, + "selfLink": { + "description": "Output only. [Output Only] Server-defined URL for the resource.", + "readOnly": true, + "type": "string" + }, + "topology": { + "$ref": "WireGroupTopology", + "description": "Output only. Topology details for the wire group configuration.", + "readOnly": true + }, + "wireProperties": { + "$ref": "WireProperties", + "description": "Properties for all wires in the wire group." + }, + "wires": { + "description": "Output only. The single/redundant wire(s) managed by the wire group.", + "items": { + "$ref": "Wire" + }, + "readOnly": true, + "type": "array" + } + }, + "type": "object" + }, + "WireGroupEndpoint": { + "description": "A logical endpoint for the wire group. An endpoint represents a metro that\ncontains redundant Interconnect connections. A wire group is created\nbetween two endpoints.", + "id": "WireGroupEndpoint", + "properties": { + "interconnects": { + "additionalProperties": { + "$ref": "WireGroupEndpointInterconnect" + }, + "description": "A map that contains the redundant Interconnect connections. Specify\nkey-value pairs for the map as follows:\n \n - Key: an RFC1035 user-specified label.\n - Value: an Interconnect object.", + "type": "object" + } + }, + "type": "object" + }, + "WireGroupEndpointInterconnect": { + "description": "The redundant Interconnect connections for this endpoint.", + "id": "WireGroupEndpointInterconnect", + "properties": { + "interconnect": { + "description": "Required. An Interconnect connection. You can specify the connection as\na partial or full URL. If the connection is in a different project from\nthe cross-site network, use a format that specifies the project. See\nthe following examples of partial and full URLs:\n \n \n \n global/interconnects/NAME\n \n \n projects/PROJECT_ID/global/interconnects/NAME\n \n - \n https://compute.googleapis.com/compute/projects/PROJECT_ID/global/interconnects/NAME", + "type": "string" + }, + "vlanTags": { + "description": "Required. To configure the wire group for VLAN mode, enter a VLAN tag,\nwhich is a number from `2` to `4093`. You can autoallocate a tag by\nentering `0`. To configure the wire group for port mode, enter `-1`.\nReview the following guidelines:\n \n - A VLAN tag must be unique for an Interconnect connection across all\n attachments and wire groups.\n - Both endpoints of a wire must use the same VLAN tag value.\n - Single wire and redundant type wire groups must have only one\n VLAN tag.\n - Port mode pseudowires must have a single VLAN tag with a value of\n `-1` for both endpoints.\n - Box and cross type wire groups must have two VLAN tags. The first\n is for the same-zone pseudowire, and the second is for the cross-zone\n pseudowire.", + "items": { + "format": "int32", + "type": "integer" + }, + "type": "array" + } + }, + "type": "object" + }, + "WireGroupList": { + "description": "Response for the list request.", + "id": "WireGroupList", + "properties": { + "etag": { + "type": "string" + }, + "id": { + "description": "[Output Only] Unique identifier for the resource; defined by the server.", + "type": "string" + }, + "items": { + "description": "A list of wire group resources.", + "items": { + "$ref": "WireGroup" + }, + "type": "array" + }, + "kind": { + "default": "compute#wireGroup", + "description": "Output only. [Output Only] Type of the resource. Alwayscompute#wireGroups for wire groups.", + "readOnly": true, + "type": "string" + }, + "nextPageToken": { + "description": "[Output Only] This token allows you to get the next page of results for\nlist requests. If the number of results is larger thanmaxResults, use the nextPageToken as a value for\nthe query parameter pageToken in the next list request.\nSubsequent list requests will have their own nextPageToken to\ncontinue paging through the results.", + "type": "string" + }, + "selfLink": { + "description": "[Output Only] Server-defined URL for this resource.", + "type": "string" + }, + "unreachables": { + "description": "Output only. [Output Only] Unreachable resources.\nend_interface: MixerListResponseWithEtagBuilder", + "items": { + "type": "string" + }, + "readOnly": true, + "type": "array" + }, "warning": { - "description": "Informational warning which replaces the list of addresses when the list is empty.", + "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.", + "description": "[Output Only] A warning code, if applicable. For example, Compute\nEngine returns NO_RESULTS_ON_PAGE if there\nare no results in the response.", "enum": [ "CLEANUP_FAILED", "DEPRECATED_RESOURCE_USED", @@ -83603,6 +111708,7 @@ "NOT_CRITICAL_ERROR", "NO_RESULTS_ON_PAGE", "PARTIAL_SUCCESS", + "QUOTA_INFO_UNAVAILABLE", "REQUIRED_TOS_AGREEMENT", "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", "RESOURCE_NOT_DELETED", @@ -83639,46 +111745,48 @@ false, false, false, + false, false ], "enumDescriptions": [ - "Warning about failed cleanup of transient changes made by a failed operation.", + "Warning about failed cleanup of transient changes made by a failed\noperation.", "A link to a deprecated resource was created.", - "When deploying and at least one of the resources has a type marked as deprecated", + "When deploying and at least one of the resources has a type marked as\ndeprecated", "The user created a boot disk that is larger than image size.", - "When deploying and at least one of the resources has a type marked as experimental", + "When deploying and at least one of the resources has a type marked as\nexperimental", "Warning that is present in an external api call", - "Warning that value of a field has been overridden. Deprecated unused field.", + "Warning that value of a field has been overridden.\nDeprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", - "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is\nnot of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", - "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", + "Resource can't be retrieved due to list overhead quota exceed\nwhich captures the amount of resources filtered out by\nuser-defined list filter.", "A resource depends on a missing type", - "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's nextHopIp address is not assigned to an instance on the\nnetwork.", "The route's next hop instance cannot ip forward.", - "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not have an\nipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", - "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that is not on the\nsame network as the route.", "The route's next hop instance does not have a status of RUNNING.", - "Error which is not critical. We decided to continue the process despite the mentioned error.", + "Error which is not critical. We decided to continue the process despite\nthe mentioned error.", "No results are present on a particular list page.", "Success is reported, but some results may be missing due to errors", - "The user attempted to use a resource that requires a TOS they have not accepted.", + "Quota information is not available to client requests (e.g:\nregions.list).", + "The user attempted to use a resource that requires a TOS they have not\naccepted.", "Warning that a resource is in use.", - "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "One or more of the resources set to auto-delete could not be deleted\nbecause they were in use.", "When a resource schema validation is ignored.", - "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", + "Instance template used in instance group manager is valid as such, but\nits application does not make a lot of sense, because it allows only\nsingle instance in instance group.", "When undeclared properties in the schema are present", "A given scope cannot be reached." ], "type": "string" }, "data": { - "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", + "description": "[Output Only] Metadata about this warning in key:\nvalue format. For example:\n\n\"data\": [\n {\n \"key\": \"scope\",\n \"value\": \"zones/us-east1-d\"\n }", "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).", + "description": "[Output Only] A key that provides more detail on the warning being\nreturned. For example, for warnings where there are no results in a list\nrequest for a particular zone, this key might be scope and\nthe key value might be the zone name. Other examples might be a key\nindicating a deprecated resource and a suggested replacement, or a\nwarning about invalid network settings (for example, if an instance\nattempts to perform IP forwarding but is not enabled for IP forwarding).", "type": "string" }, "value": { @@ -83700,61 +111808,82 @@ }, "type": "object" }, - "WafExpressionSet": { - "id": "WafExpressionSet", + "WireGroupTopology": { + "description": "Topology details for the wire group.", + "id": "WireGroupTopology", "properties": { - "aliases": { - "description": "A list of alternate IDs. The format should be: - E.g. XSS-stable Generic suffix like \"stable\" is particularly useful if a policy likes to avail newer set of expressions without having to change the policy. A given alias name can't be used for more than one entity set.", + "endpoints": { + "description": "Output only. Topology details for all endpoints in the wire group.", "items": { - "type": "string" - }, - "type": "array" - }, - "expressions": { - "description": "List of available expressions.", - "items": { - "$ref": "WafExpressionSetExpression" + "$ref": "WireGroupTopologyEndpoint" }, + "readOnly": true, "type": "array" + } + }, + "type": "object" + }, + "WireGroupTopologyEndpoint": { + "description": "Topology details for a single wire group endpoint.", + "id": "WireGroupTopologyEndpoint", + "properties": { + "city": { + "description": "Output only. The InterconnectLocation.city (metropolitan area designator) that all\ninterconnects are located in.", + "readOnly": true, + "type": "string" }, - "id": { - "description": "Google specified expression set ID. The format should be: - E.g. XSS-20170329 required", + "label": { + "description": "Output only. Endpoint label from the wire group.", + "readOnly": true, "type": "string" } }, "type": "object" }, - "WafExpressionSetExpression": { - "id": "WafExpressionSetExpression", + "WireProperties": { + "description": "The properties of a wire.", + "id": "WireProperties", "properties": { - "id": { - "description": "Expression ID should uniquely identify the origin of the expression. E.g. owasp-crs-v020901-id973337 identifies Owasp core rule set version 2.9.1 rule id 973337. The ID could be used to determine the individual attack definition that has been detected. It could also be used to exclude it from the policy in case of false positive. required", + "bandwidthAllocation": { + "description": "The configuration of the bandwidth allocation, one of the following:\n \n - ALLOCATE_PER_WIRE: configures a separate unmetered bandwidth allocation\n (and associated charges) for each wire in the group.\n - SHARED_WITH_WIRE_GROUP: this is the default behavior, which configures\n one unmetered bandwidth allocation for the wire group. The unmetered\n bandwidth is divided equally across each wire in the group, but dynamic\n throttling reallocates unused unmetered bandwidth from unused or underused\n wires to other wires in the group.", + "enum": [ + "ALLOCATE_PER_WIRE", + "SHARED_WITH_WIRE_GROUP" + ], + "enumDescriptions": [ + "Configures a separate unmetered bandwidth allocation (and associated\ncharges) for each wire in the group.", + "This is the default behavior. Configures one unmetered bandwidth\nallocation for the wire group. The unmetered bandwidth is divided equally\nacross each wire in the group, but dynamic throttling reallocates unused\nunmetered bandwidth from unused or underused wires to other wires in the\ngroup." + ], "type": "string" }, - "sensitivity": { - "description": "The sensitivity value associated with the WAF rule ID. This corresponds to the ModSecurity paranoia level, ranging from 1 to 4. 0 is reserved for opt-in only rules.", - "format": "int32", - "type": "integer" + "bandwidthUnmetered": { + "description": "The unmetered bandwidth in Gigabits per second, using decimal units. `10`\nis 10 Gbps, `100` is 100 Gbps. The bandwidth must be greater than 0.", + "format": "int64", + "type": "string" + }, + "faultResponse": { + "description": "Response when a fault is detected in a pseudowire:\n \n - NONE: default.\n - DISABLE_PORT: set the port line protocol down when inline probes\n detect a fault. This setting is only permitted on port mode\n pseudowires.", + "enum": [ + "DISABLE_PORT", + "NONE" + ], + "enumDescriptions": [ + "Set the port line protocol down when inline probes detect a fault. This\nsetting is only permitted on port mode pseudowires.", + "Default." + ], + "type": "string" } }, "type": "object" }, - "WeightedBackendService": { - "description": "In contrast to a single BackendService in HttpRouteAction to which all matching traffic is directed to, WeightedBackendService allows traffic to be split across multiple backend services. The volume of traffic for each backend service is proportional to the weight specified in each WeightedBackendService", - "id": "WeightedBackendService", + "WorkloadIdentityConfig": { + "id": "WorkloadIdentityConfig", "properties": { - "backendService": { - "description": "The full or partial URL to the default BackendService resource. Before forwarding the request to backendService, the load balancer applies any relevant headerActions specified as part of this backendServiceWeight.", + "identity": { "type": "string" }, - "headerAction": { - "$ref": "HttpHeaderAction", - "description": "Specifies changes to request and response headers that need to take effect for the selected backendService. headerAction specified here take effect before headerAction in the enclosing HttpRouteRule, PathMatcher and UrlMap. headerAction is not supported for load balancers that have their loadBalancingScheme set to EXTERNAL. Not supported when the URL map is bound to a target gRPC proxy that has validateForProxyless field set to true." - }, - "weight": { - "description": "Specifies the fraction of traffic sent to a backend service, computed as weight / (sum of all weightedBackendService weights in routeAction) . The selection of a backend service is determined only for new traffic. Once a user's request has been directed to a backend service, subsequent requests are sent to the same backend service as determined by the backend service's session affinity policy. The value must be from 0 to 1000.", - "format": "uint32", - "type": "integer" + "identityCertificateEnabled": { + "type": "boolean" } }, "type": "object" @@ -83775,22 +111904,24 @@ }, "kind": { "default": "compute#xpnHostList", - "description": "[Output Only] Type of resource. Always compute#xpnHostList for lists of shared VPC hosts.", + "description": "Output only. [Output Only] Type of resource. Always compute#xpnHostList for\nlists of shared VPC hosts.", + "readOnly": true, "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.", + "description": "[Output Only] This token allows you to get the next page of results for\nlist requests. If the number of results is larger thanmaxResults, use the nextPageToken as a value for\nthe query parameter pageToken in the next list request.\nSubsequent list requests will have their own nextPageToken to\ncontinue paging through the results.", "type": "string" }, "selfLink": { - "description": "[Output Only] Server-defined URL for this resource.", + "description": "Output only. [Output Only] Server-defined URL for this resource.", + "readOnly": true, "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.", + "description": "[Output Only] A warning code, if applicable. For example, Compute\nEngine returns NO_RESULTS_ON_PAGE if there\nare no results in the response.", "enum": [ "CLEANUP_FAILED", "DEPRECATED_RESOURCE_USED", @@ -83813,6 +111944,7 @@ "NOT_CRITICAL_ERROR", "NO_RESULTS_ON_PAGE", "PARTIAL_SUCCESS", + "QUOTA_INFO_UNAVAILABLE", "REQUIRED_TOS_AGREEMENT", "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", "RESOURCE_NOT_DELETED", @@ -83849,46 +111981,48 @@ false, false, false, + false, false ], "enumDescriptions": [ - "Warning about failed cleanup of transient changes made by a failed operation.", + "Warning about failed cleanup of transient changes made by a failed\noperation.", "A link to a deprecated resource was created.", - "When deploying and at least one of the resources has a type marked as deprecated", + "When deploying and at least one of the resources has a type marked as\ndeprecated", "The user created a boot disk that is larger than image size.", - "When deploying and at least one of the resources has a type marked as experimental", + "When deploying and at least one of the resources has a type marked as\nexperimental", "Warning that is present in an external api call", - "Warning that value of a field has been overridden. Deprecated unused field.", + "Warning that value of a field has been overridden.\nDeprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", - "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is\nnot of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", - "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", + "Resource can't be retrieved due to list overhead quota exceed\nwhich captures the amount of resources filtered out by\nuser-defined list filter.", "A resource depends on a missing type", - "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's nextHopIp address is not assigned to an instance on the\nnetwork.", "The route's next hop instance cannot ip forward.", - "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not have an\nipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", - "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that is not on the\nsame network as the route.", "The route's next hop instance does not have a status of RUNNING.", - "Error which is not critical. We decided to continue the process despite the mentioned error.", + "Error which is not critical. We decided to continue the process despite\nthe mentioned error.", "No results are present on a particular list page.", "Success is reported, but some results may be missing due to errors", - "The user attempted to use a resource that requires a TOS they have not accepted.", + "Quota information is not available to client requests (e.g:\nregions.list).", + "The user attempted to use a resource that requires a TOS they have not\naccepted.", "Warning that a resource is in use.", - "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "One or more of the resources set to auto-delete could not be deleted\nbecause they were in use.", "When a resource schema validation is ignored.", - "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", + "Instance template used in instance group manager is valid as such, but\nits application does not make a lot of sense, because it allows only\nsingle instance in instance group.", "When undeclared properties in the schema are present", "A given scope cannot be reached." ], "type": "string" }, "data": { - "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", + "description": "[Output Only] Metadata about this warning in key:\nvalue format. For example:\n\n\"data\": [\n {\n \"key\": \"scope\",\n \"value\": \"zones/us-east1-d\"\n }", "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).", + "description": "[Output Only] A key that provides more detail on the warning being\nreturned. For example, for warnings where there are no results in a list\nrequest for a particular zone, this key might be scope and\nthe key value might be the zone name. Other examples might be a key\nindicating a deprecated resource and a suggested replacement, or a\nwarning about invalid network settings (for example, if an instance\nattempts to perform IP forwarding but is not enabled for IP forwarding).", "type": "string" }, "value": { @@ -83915,7 +112049,7 @@ "id": "XpnResourceId", "properties": { "id": { - "description": "The ID of the service resource. In the case of projects, this field supports project id (e.g., my-project-123) and project number (e.g. 12345678).", + "description": "The ID of the service resource. In the case of projects, this field\nsupports project id (e.g., my-project-123) and project number\n(e.g. 12345678).", "type": "string" }, "type": { @@ -83934,7 +112068,7 @@ "type": "object" }, "Zone": { - "description": "Represents a Zone resource. A zone is a deployment area. These deployment areas are subsets of a region. For example the zone us-east1-a is located in the us-east1 region. For more information, read Regions and Zones.", + "description": "Represents a Zone resource.\n\nA zone is a deployment area. These deployment areas are subsets of a region.\nFor example the zone us-east1-b is located in theus-east1 region. For more information, readRegions and\nZones.", "id": "Zone", "properties": { "availableCpuPlatforms": { @@ -83945,7 +112079,7 @@ "type": "array" }, "creationTimestamp": { - "description": "[Output Only] Creation timestamp in RFC3339 text format.", + "description": "[Output Only] Creation timestamp inRFC3339\ntext format.", "type": "string" }, "deprecated": { @@ -83957,13 +112091,14 @@ "type": "string" }, "id": { - "description": "[Output Only] The unique identifier for the resource. This identifier is defined by the server.", + "description": "[Output Only] The unique identifier for the resource. This identifier is\ndefined by the server.", "format": "uint64", "type": "string" }, "kind": { "default": "compute#zone", - "description": "[Output Only] Type of the resource. Always compute#zone for zones.", + "description": "Output only. [Output Only] Type of the resource. Always compute#zone for\nzones.", + "readOnly": true, "type": "string" }, "name": { @@ -83974,12 +112109,16 @@ "description": "[Output Only] Full URL reference to the region which hosts the zone.", "type": "string" }, + "resourceStatus": { + "$ref": "ZoneResourceStatus", + "readOnly": true + }, "selfLink": { "description": "[Output Only] Server-defined URL for the resource.", "type": "string" }, "status": { - "description": "[Output Only] Status of the zone, either UP or DOWN.", + "description": "[Output Only] Status of the zone, either UP orDOWN.", "enum": [ "DOWN", "UP" @@ -83991,7 +112130,8 @@ "type": "string" }, "supportsPzs": { - "description": "[Output Only] Reserved for future use.", + "description": "Output only. [Output Only] Reserved for future use.", + "readOnly": true, "type": "boolean" } }, @@ -84014,22 +112154,24 @@ }, "kind": { "default": "compute#zoneList", - "description": "Type of resource.", + "description": "Output only. Type of resource.", + "readOnly": true, "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.", + "description": "[Output Only] This token allows you to get the next page of results for\nlist requests. If the number of results is larger thanmaxResults, use the nextPageToken as a value for\nthe query parameter pageToken in the next list request.\nSubsequent list requests will have their own nextPageToken to\ncontinue paging through the results.", "type": "string" }, "selfLink": { - "description": "[Output Only] Server-defined URL for this resource.", + "description": "Output only. [Output Only] Server-defined URL for this resource.", + "readOnly": true, "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.", + "description": "[Output Only] A warning code, if applicable. For example, Compute\nEngine returns NO_RESULTS_ON_PAGE if there\nare no results in the response.", "enum": [ "CLEANUP_FAILED", "DEPRECATED_RESOURCE_USED", @@ -84052,6 +112194,7 @@ "NOT_CRITICAL_ERROR", "NO_RESULTS_ON_PAGE", "PARTIAL_SUCCESS", + "QUOTA_INFO_UNAVAILABLE", "REQUIRED_TOS_AGREEMENT", "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", "RESOURCE_NOT_DELETED", @@ -84088,46 +112231,48 @@ false, false, false, + false, false ], "enumDescriptions": [ - "Warning about failed cleanup of transient changes made by a failed operation.", + "Warning about failed cleanup of transient changes made by a failed\noperation.", "A link to a deprecated resource was created.", - "When deploying and at least one of the resources has a type marked as deprecated", + "When deploying and at least one of the resources has a type marked as\ndeprecated", "The user created a boot disk that is larger than image size.", - "When deploying and at least one of the resources has a type marked as experimental", + "When deploying and at least one of the resources has a type marked as\nexperimental", "Warning that is present in an external api call", - "Warning that value of a field has been overridden. Deprecated unused field.", + "Warning that value of a field has been overridden.\nDeprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", - "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is\nnot of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", - "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", + "Resource can't be retrieved due to list overhead quota exceed\nwhich captures the amount of resources filtered out by\nuser-defined list filter.", "A resource depends on a missing type", - "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's nextHopIp address is not assigned to an instance on the\nnetwork.", "The route's next hop instance cannot ip forward.", - "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not have an\nipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", - "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that is not on the\nsame network as the route.", "The route's next hop instance does not have a status of RUNNING.", - "Error which is not critical. We decided to continue the process despite the mentioned error.", + "Error which is not critical. We decided to continue the process despite\nthe mentioned error.", "No results are present on a particular list page.", "Success is reported, but some results may be missing due to errors", - "The user attempted to use a resource that requires a TOS they have not accepted.", + "Quota information is not available to client requests (e.g:\nregions.list).", + "The user attempted to use a resource that requires a TOS they have not\naccepted.", "Warning that a resource is in use.", - "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "One or more of the resources set to auto-delete could not be deleted\nbecause they were in use.", "When a resource schema validation is ignored.", - "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", + "Instance template used in instance group manager is valid as such, but\nits application does not make a lot of sense, because it allows only\nsingle instance in instance group.", "When undeclared properties in the schema are present", "A given scope cannot be reached." ], "type": "string" }, "data": { - "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", + "description": "[Output Only] Metadata about this warning in key:\nvalue format. For example:\n\n\"data\": [\n {\n \"key\": \"scope\",\n \"value\": \"zones/us-east1-d\"\n }", "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).", + "description": "[Output Only] A key that provides more detail on the warning being\nreturned. For example, for warnings where there are no results in a list\nrequest for a particular zone, this key might be scope and\nthe key value might be the zone name. Other examples might be a key\nindicating a deprecated resource and a suggested replacement, or a\nwarning about invalid network settings (for example, if an instance\nattempts to perform IP forwarding but is not enabled for IP forwarding).", "type": "string" }, "value": { @@ -84149,11 +112294,25 @@ }, "type": "object" }, + "ZoneResourceStatus": { + "id": "ZoneResourceStatus", + "properties": { + "upcomingMaintenances": { + "description": "Output only. [Output Only] The upcoming maintenance schedule.", + "items": { + "$ref": "PeriodicPartialMaintenanceSchedule" + }, + "readOnly": true, + "type": "array" + } + }, + "type": "object" + }, "ZoneSetLabelsRequest": { "id": "ZoneSetLabelsRequest", "properties": { "labelFingerprint": { - "description": "The fingerprint of the previous set of labels for this resource, used to detect conflicts. The fingerprint is initially generated by Compute Engine and changes after every request to modify or update labels. You must always provide an up-to-date fingerprint hash in order to update or change labels. Make a get() request to the resource to get the latest fingerprint.", + "description": "The fingerprint of the previous set of labels for this resource,\nused to detect conflicts. The fingerprint is initially generated by Compute\nEngine and changes after every request to modify or update labels. You must\nalways provide an up-to-date fingerprint hash in order to update or change\nlabels. Make a get() request to the resource to get the latest\nfingerprint.", "format": "byte", "type": "string" }, @@ -84167,30 +112326,53 @@ }, "type": "object" }, + "ZoneSetNestedPolicyRequest": { + "id": "ZoneSetNestedPolicyRequest", + "properties": { + "bindings": { + "description": "Flatten Policy to create a backwacd compatible wire-format.\nDeprecated. Use 'policy' to specify bindings.", + "items": { + "$ref": "Binding" + }, + "type": "array" + }, + "etag": { + "description": "Flatten Policy to create a backward compatible wire-format.\nDeprecated. Use 'policy' to specify the etag.", + "format": "byte", + "type": "string" + }, + "policy": { + "$ref": "Policy", + "description": "REQUIRED: The complete policy to be applied to the 'resource'. The size of\nthe policy is limited to a few 10s of KB. An empty policy is in general a\nvalid policy but certain services (like Projects) might reject them." + } + }, + "type": "object" + }, "ZoneSetPolicyRequest": { "id": "ZoneSetPolicyRequest", "properties": { "bindings": { - "description": "Flatten Policy to create a backwacd compatible wire-format. Deprecated. Use 'policy' to specify bindings.", + "description": "Flatten Policy to create a backwacd compatible wire-format.\nDeprecated. Use 'policy' to specify bindings.", "items": { "$ref": "Binding" }, "type": "array" }, "etag": { - "description": "Flatten Policy to create a backward compatible wire-format. Deprecated. Use 'policy' to specify the etag.", + "description": "Flatten Policy to create a backward compatible wire-format.\nDeprecated. Use 'policy' to specify the etag.", "format": "byte", "type": "string" }, "policy": { "$ref": "Policy", - "description": "REQUIRED: The complete policy to be applied to the 'resource'. The size of the policy is limited to a few 10s of KB. An empty policy is in general a valid policy but certain services (like Projects) might reject them." + "description": "REQUIRED: The complete policy to be applied to the 'resource'. The size of\nthe policy is limited to a few 10s of KB. An empty policy is in general a\nvalid policy but certain services (like Projects) might reject them." } }, "type": "object" } }, "servicePath": "compute/v1/", + "serviceVersion": "v1", "title": "Compute Engine API", "version": "v1" } \ No newline at end of file diff --git a/vendor/google.golang.org/api/compute/v1/compute-gen.go b/vendor/google.golang.org/api/compute/v1/compute-gen.go index a9a05148d..0f1b99c48 100644 --- a/vendor/google.golang.org/api/compute/v1/compute-gen.go +++ b/vendor/google.golang.org/api/compute/v1/compute-gen.go @@ -1,4 +1,4 @@ -// Copyright 2024 Google LLC. +// Copyright 2026 Google LLC. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. @@ -62,11 +62,13 @@ import ( "errors" "fmt" "io" + "log/slog" "net/http" "net/url" "strconv" "strings" + "github.com/googleapis/gax-go/v2/internallog" googleapi "google.golang.org/api/googleapi" internal "google.golang.org/api/internal" gensupport "google.golang.org/api/internal/gensupport" @@ -90,6 +92,7 @@ var _ = strings.Replace var _ = context.Canceled var _ = internaloption.WithDefaultEndpoint var _ = internal.Version +var _ = internallog.New const apiId = "compute:v1" const apiName = "compute" @@ -137,47 +140,33 @@ func NewService(ctx context.Context, opts ...option.ClientOption) (*Service, err opts = append(opts, internaloption.WithDefaultEndpoint(basePath)) opts = append(opts, internaloption.WithDefaultEndpointTemplate(basePathTemplate)) opts = append(opts, internaloption.WithDefaultMTLSEndpoint(mtlsBasePath)) + opts = append(opts, internaloption.EnableNewAuthLibrary()) client, endpoint, err := htransport.NewClient(ctx, opts...) if err != nil { return nil, err } - s, err := New(client) - if err != nil { - return nil, err - } - if endpoint != "" { - s.BasePath = endpoint - } - return s, nil -} - -// New creates a new Service. It uses the provided http.Client for requests. -// -// Deprecated: please use NewService instead. -// To provide a custom HTTP client, use option.WithHTTPClient. -// If you are using google.golang.org/api/googleapis/transport.APIKey, use option.WithAPIKey with NewService instead. -func New(client *http.Client) (*Service, error) { - if client == nil { - return nil, errors.New("client is nil") - } - s := &Service{client: client, BasePath: basePath} + s := &Service{client: client, BasePath: basePath, logger: internaloption.GetLogger(opts)} s.AcceleratorTypes = NewAcceleratorTypesService(s) s.Addresses = NewAddressesService(s) + s.Advice = NewAdviceService(s) s.Autoscalers = NewAutoscalersService(s) s.BackendBuckets = NewBackendBucketsService(s) s.BackendServices = NewBackendServicesService(s) + s.CrossSiteNetworks = NewCrossSiteNetworksService(s) s.DiskTypes = NewDiskTypesService(s) s.Disks = NewDisksService(s) s.ExternalVpnGateways = NewExternalVpnGatewaysService(s) s.FirewallPolicies = NewFirewallPoliciesService(s) s.Firewalls = NewFirewallsService(s) s.ForwardingRules = NewForwardingRulesService(s) + s.FutureReservations = NewFutureReservationsService(s) s.GlobalAddresses = NewGlobalAddressesService(s) s.GlobalForwardingRules = NewGlobalForwardingRulesService(s) s.GlobalNetworkEndpointGroups = NewGlobalNetworkEndpointGroupsService(s) s.GlobalOperations = NewGlobalOperationsService(s) s.GlobalOrganizationOperations = NewGlobalOrganizationOperationsService(s) s.GlobalPublicDelegatedPrefixes = NewGlobalPublicDelegatedPrefixesService(s) + s.GlobalVmExtensionPolicies = NewGlobalVmExtensionPoliciesService(s) s.HealthChecks = NewHealthChecksService(s) s.HttpHealthChecks = NewHttpHealthChecksService(s) s.HttpsHealthChecks = NewHttpsHealthChecksService(s) @@ -189,8 +178,11 @@ func New(client *http.Client) (*Service, error) { s.InstanceSettings = NewInstanceSettingsService(s) s.InstanceTemplates = NewInstanceTemplatesService(s) s.Instances = NewInstancesService(s) + s.InstantSnapshotGroups = NewInstantSnapshotGroupsService(s) s.InstantSnapshots = NewInstantSnapshotsService(s) + s.InterconnectAttachmentGroups = NewInterconnectAttachmentGroupsService(s) s.InterconnectAttachments = NewInterconnectAttachmentsService(s) + s.InterconnectGroups = NewInterconnectGroupsService(s) s.InterconnectLocations = NewInterconnectLocationsService(s) s.InterconnectRemoteLocations = NewInterconnectRemoteLocationsService(s) s.Interconnects = NewInterconnectsService(s) @@ -202,31 +194,42 @@ func New(client *http.Client) (*Service, error) { s.NetworkEdgeSecurityServices = NewNetworkEdgeSecurityServicesService(s) s.NetworkEndpointGroups = NewNetworkEndpointGroupsService(s) s.NetworkFirewallPolicies = NewNetworkFirewallPoliciesService(s) + s.NetworkProfiles = NewNetworkProfilesService(s) s.Networks = NewNetworksService(s) s.NodeGroups = NewNodeGroupsService(s) s.NodeTemplates = NewNodeTemplatesService(s) s.NodeTypes = NewNodeTypesService(s) + s.OrganizationSecurityPolicies = NewOrganizationSecurityPoliciesService(s) s.PacketMirrorings = NewPacketMirroringsService(s) + s.PreviewFeatures = NewPreviewFeaturesService(s) s.Projects = NewProjectsService(s) s.PublicAdvertisedPrefixes = NewPublicAdvertisedPrefixesService(s) s.PublicDelegatedPrefixes = NewPublicDelegatedPrefixesService(s) s.RegionAutoscalers = NewRegionAutoscalersService(s) + s.RegionBackendBuckets = NewRegionBackendBucketsService(s) s.RegionBackendServices = NewRegionBackendServicesService(s) s.RegionCommitments = NewRegionCommitmentsService(s) + s.RegionCompositeHealthChecks = NewRegionCompositeHealthChecksService(s) s.RegionDiskTypes = NewRegionDiskTypesService(s) s.RegionDisks = NewRegionDisksService(s) + s.RegionHealthAggregationPolicies = NewRegionHealthAggregationPoliciesService(s) s.RegionHealthCheckServices = NewRegionHealthCheckServicesService(s) s.RegionHealthChecks = NewRegionHealthChecksService(s) + s.RegionHealthSources = NewRegionHealthSourcesService(s) + s.RegionInstanceGroupManagerResizeRequests = NewRegionInstanceGroupManagerResizeRequestsService(s) s.RegionInstanceGroupManagers = NewRegionInstanceGroupManagersService(s) s.RegionInstanceGroups = NewRegionInstanceGroupsService(s) s.RegionInstanceTemplates = NewRegionInstanceTemplatesService(s) s.RegionInstances = NewRegionInstancesService(s) + s.RegionInstantSnapshotGroups = NewRegionInstantSnapshotGroupsService(s) s.RegionInstantSnapshots = NewRegionInstantSnapshotsService(s) s.RegionNetworkEndpointGroups = NewRegionNetworkEndpointGroupsService(s) s.RegionNetworkFirewallPolicies = NewRegionNetworkFirewallPoliciesService(s) s.RegionNotificationEndpoints = NewRegionNotificationEndpointsService(s) s.RegionOperations = NewRegionOperationsService(s) s.RegionSecurityPolicies = NewRegionSecurityPoliciesService(s) + s.RegionSnapshotSettings = NewRegionSnapshotSettingsService(s) + s.RegionSnapshots = NewRegionSnapshotsService(s) s.RegionSslCertificates = NewRegionSslCertificatesService(s) s.RegionSslPolicies = NewRegionSslPoliciesService(s) s.RegionTargetHttpProxies = NewRegionTargetHttpProxiesService(s) @@ -235,8 +238,13 @@ func New(client *http.Client) (*Service, error) { s.RegionUrlMaps = NewRegionUrlMapsService(s) s.RegionZones = NewRegionZonesService(s) s.Regions = NewRegionsService(s) + s.ReservationBlocks = NewReservationBlocksService(s) + s.ReservationSlots = NewReservationSlotsService(s) + s.ReservationSubBlocks = NewReservationSubBlocksService(s) s.Reservations = NewReservationsService(s) s.ResourcePolicies = NewResourcePoliciesService(s) + s.RolloutPlans = NewRolloutPlansService(s) + s.Rollouts = NewRolloutsService(s) s.Routers = NewRoutersService(s) s.Routes = NewRoutesService(s) s.SecurityPolicies = NewSecurityPoliciesService(s) @@ -259,13 +267,31 @@ func New(client *http.Client) (*Service, error) { s.UrlMaps = NewUrlMapsService(s) s.VpnGateways = NewVpnGatewaysService(s) s.VpnTunnels = NewVpnTunnelsService(s) + s.WireGroups = NewWireGroupsService(s) s.ZoneOperations = NewZoneOperationsService(s) + s.ZoneVmExtensionPolicies = NewZoneVmExtensionPoliciesService(s) s.Zones = NewZonesService(s) + if endpoint != "" { + s.BasePath = endpoint + } return s, nil } +// New creates a new Service. It uses the provided http.Client for requests. +// +// Deprecated: please use NewService instead. +// To provide a custom HTTP client, use option.WithHTTPClient. +// If you are using google.golang.org/api/googleapis/transport.APIKey, use option.WithAPIKey with NewService instead. +func New(client *http.Client) (*Service, error) { + if client == nil { + return nil, errors.New("client is nil") + } + return NewService(context.TODO(), option.WithHTTPClient(client)) +} + type Service struct { client *http.Client + logger *slog.Logger BasePath string // API endpoint base URL UserAgent string // optional additional User-Agent fragment @@ -273,12 +299,16 @@ type Service struct { Addresses *AddressesService + Advice *AdviceService + Autoscalers *AutoscalersService BackendBuckets *BackendBucketsService BackendServices *BackendServicesService + CrossSiteNetworks *CrossSiteNetworksService + DiskTypes *DiskTypesService Disks *DisksService @@ -291,6 +321,8 @@ type Service struct { ForwardingRules *ForwardingRulesService + FutureReservations *FutureReservationsService + GlobalAddresses *GlobalAddressesService GlobalForwardingRules *GlobalForwardingRulesService @@ -303,6 +335,8 @@ type Service struct { GlobalPublicDelegatedPrefixes *GlobalPublicDelegatedPrefixesService + GlobalVmExtensionPolicies *GlobalVmExtensionPoliciesService + HealthChecks *HealthChecksService HttpHealthChecks *HttpHealthChecksService @@ -325,10 +359,16 @@ type Service struct { Instances *InstancesService + InstantSnapshotGroups *InstantSnapshotGroupsService + InstantSnapshots *InstantSnapshotsService + InterconnectAttachmentGroups *InterconnectAttachmentGroupsService + InterconnectAttachments *InterconnectAttachmentsService + InterconnectGroups *InterconnectGroupsService + InterconnectLocations *InterconnectLocationsService InterconnectRemoteLocations *InterconnectRemoteLocationsService @@ -351,6 +391,8 @@ type Service struct { NetworkFirewallPolicies *NetworkFirewallPoliciesService + NetworkProfiles *NetworkProfilesService + Networks *NetworksService NodeGroups *NodeGroupsService @@ -359,8 +401,12 @@ type Service struct { NodeTypes *NodeTypesService + OrganizationSecurityPolicies *OrganizationSecurityPoliciesService + PacketMirrorings *PacketMirroringsService + PreviewFeatures *PreviewFeaturesService + Projects *ProjectsService PublicAdvertisedPrefixes *PublicAdvertisedPrefixesService @@ -369,18 +415,28 @@ type Service struct { RegionAutoscalers *RegionAutoscalersService + RegionBackendBuckets *RegionBackendBucketsService + RegionBackendServices *RegionBackendServicesService RegionCommitments *RegionCommitmentsService + RegionCompositeHealthChecks *RegionCompositeHealthChecksService + RegionDiskTypes *RegionDiskTypesService RegionDisks *RegionDisksService + RegionHealthAggregationPolicies *RegionHealthAggregationPoliciesService + RegionHealthCheckServices *RegionHealthCheckServicesService RegionHealthChecks *RegionHealthChecksService + RegionHealthSources *RegionHealthSourcesService + + RegionInstanceGroupManagerResizeRequests *RegionInstanceGroupManagerResizeRequestsService + RegionInstanceGroupManagers *RegionInstanceGroupManagersService RegionInstanceGroups *RegionInstanceGroupsService @@ -389,6 +445,8 @@ type Service struct { RegionInstances *RegionInstancesService + RegionInstantSnapshotGroups *RegionInstantSnapshotGroupsService + RegionInstantSnapshots *RegionInstantSnapshotsService RegionNetworkEndpointGroups *RegionNetworkEndpointGroupsService @@ -401,6 +459,10 @@ type Service struct { RegionSecurityPolicies *RegionSecurityPoliciesService + RegionSnapshotSettings *RegionSnapshotSettingsService + + RegionSnapshots *RegionSnapshotsService + RegionSslCertificates *RegionSslCertificatesService RegionSslPolicies *RegionSslPoliciesService @@ -417,10 +479,20 @@ type Service struct { Regions *RegionsService + ReservationBlocks *ReservationBlocksService + + ReservationSlots *ReservationSlotsService + + ReservationSubBlocks *ReservationSubBlocksService + Reservations *ReservationsService ResourcePolicies *ResourcePoliciesService + RolloutPlans *RolloutPlansService + + Rollouts *RolloutsService + Routers *RoutersService Routes *RoutesService @@ -465,8 +537,12 @@ type Service struct { VpnTunnels *VpnTunnelsService + WireGroups *WireGroupsService + ZoneOperations *ZoneOperationsService + ZoneVmExtensionPolicies *ZoneVmExtensionPoliciesService + Zones *ZonesService } @@ -495,6 +571,15 @@ type AddressesService struct { s *Service } +func NewAdviceService(s *Service) *AdviceService { + rs := &AdviceService{s: s} + return rs +} + +type AdviceService struct { + s *Service +} + func NewAutoscalersService(s *Service) *AutoscalersService { rs := &AutoscalersService{s: s} return rs @@ -522,6 +607,15 @@ type BackendServicesService struct { s *Service } +func NewCrossSiteNetworksService(s *Service) *CrossSiteNetworksService { + rs := &CrossSiteNetworksService{s: s} + return rs +} + +type CrossSiteNetworksService struct { + s *Service +} + func NewDiskTypesService(s *Service) *DiskTypesService { rs := &DiskTypesService{s: s} return rs @@ -576,6 +670,15 @@ type ForwardingRulesService struct { s *Service } +func NewFutureReservationsService(s *Service) *FutureReservationsService { + rs := &FutureReservationsService{s: s} + return rs +} + +type FutureReservationsService struct { + s *Service +} + func NewGlobalAddressesService(s *Service) *GlobalAddressesService { rs := &GlobalAddressesService{s: s} return rs @@ -630,6 +733,15 @@ type GlobalPublicDelegatedPrefixesService struct { s *Service } +func NewGlobalVmExtensionPoliciesService(s *Service) *GlobalVmExtensionPoliciesService { + rs := &GlobalVmExtensionPoliciesService{s: s} + return rs +} + +type GlobalVmExtensionPoliciesService struct { + s *Service +} + func NewHealthChecksService(s *Service) *HealthChecksService { rs := &HealthChecksService{s: s} return rs @@ -729,6 +841,15 @@ type InstancesService struct { s *Service } +func NewInstantSnapshotGroupsService(s *Service) *InstantSnapshotGroupsService { + rs := &InstantSnapshotGroupsService{s: s} + return rs +} + +type InstantSnapshotGroupsService struct { + s *Service +} + func NewInstantSnapshotsService(s *Service) *InstantSnapshotsService { rs := &InstantSnapshotsService{s: s} return rs @@ -738,6 +859,15 @@ type InstantSnapshotsService struct { s *Service } +func NewInterconnectAttachmentGroupsService(s *Service) *InterconnectAttachmentGroupsService { + rs := &InterconnectAttachmentGroupsService{s: s} + return rs +} + +type InterconnectAttachmentGroupsService struct { + s *Service +} + func NewInterconnectAttachmentsService(s *Service) *InterconnectAttachmentsService { rs := &InterconnectAttachmentsService{s: s} return rs @@ -747,6 +877,15 @@ type InterconnectAttachmentsService struct { s *Service } +func NewInterconnectGroupsService(s *Service) *InterconnectGroupsService { + rs := &InterconnectGroupsService{s: s} + return rs +} + +type InterconnectGroupsService struct { + s *Service +} + func NewInterconnectLocationsService(s *Service) *InterconnectLocationsService { rs := &InterconnectLocationsService{s: s} return rs @@ -846,6 +985,15 @@ type NetworkFirewallPoliciesService struct { s *Service } +func NewNetworkProfilesService(s *Service) *NetworkProfilesService { + rs := &NetworkProfilesService{s: s} + return rs +} + +type NetworkProfilesService struct { + s *Service +} + func NewNetworksService(s *Service) *NetworksService { rs := &NetworksService{s: s} return rs @@ -882,6 +1030,15 @@ type NodeTypesService struct { s *Service } +func NewOrganizationSecurityPoliciesService(s *Service) *OrganizationSecurityPoliciesService { + rs := &OrganizationSecurityPoliciesService{s: s} + return rs +} + +type OrganizationSecurityPoliciesService struct { + s *Service +} + func NewPacketMirroringsService(s *Service) *PacketMirroringsService { rs := &PacketMirroringsService{s: s} return rs @@ -891,6 +1048,15 @@ type PacketMirroringsService struct { s *Service } +func NewPreviewFeaturesService(s *Service) *PreviewFeaturesService { + rs := &PreviewFeaturesService{s: s} + return rs +} + +type PreviewFeaturesService struct { + s *Service +} + func NewProjectsService(s *Service) *ProjectsService { rs := &ProjectsService{s: s} return rs @@ -927,6 +1093,15 @@ type RegionAutoscalersService struct { s *Service } +func NewRegionBackendBucketsService(s *Service) *RegionBackendBucketsService { + rs := &RegionBackendBucketsService{s: s} + return rs +} + +type RegionBackendBucketsService struct { + s *Service +} + func NewRegionBackendServicesService(s *Service) *RegionBackendServicesService { rs := &RegionBackendServicesService{s: s} return rs @@ -945,6 +1120,15 @@ type RegionCommitmentsService struct { s *Service } +func NewRegionCompositeHealthChecksService(s *Service) *RegionCompositeHealthChecksService { + rs := &RegionCompositeHealthChecksService{s: s} + return rs +} + +type RegionCompositeHealthChecksService struct { + s *Service +} + func NewRegionDiskTypesService(s *Service) *RegionDiskTypesService { rs := &RegionDiskTypesService{s: s} return rs @@ -963,6 +1147,15 @@ type RegionDisksService struct { s *Service } +func NewRegionHealthAggregationPoliciesService(s *Service) *RegionHealthAggregationPoliciesService { + rs := &RegionHealthAggregationPoliciesService{s: s} + return rs +} + +type RegionHealthAggregationPoliciesService struct { + s *Service +} + func NewRegionHealthCheckServicesService(s *Service) *RegionHealthCheckServicesService { rs := &RegionHealthCheckServicesService{s: s} return rs @@ -981,6 +1174,24 @@ type RegionHealthChecksService struct { s *Service } +func NewRegionHealthSourcesService(s *Service) *RegionHealthSourcesService { + rs := &RegionHealthSourcesService{s: s} + return rs +} + +type RegionHealthSourcesService struct { + s *Service +} + +func NewRegionInstanceGroupManagerResizeRequestsService(s *Service) *RegionInstanceGroupManagerResizeRequestsService { + rs := &RegionInstanceGroupManagerResizeRequestsService{s: s} + return rs +} + +type RegionInstanceGroupManagerResizeRequestsService struct { + s *Service +} + func NewRegionInstanceGroupManagersService(s *Service) *RegionInstanceGroupManagersService { rs := &RegionInstanceGroupManagersService{s: s} return rs @@ -1017,6 +1228,15 @@ type RegionInstancesService struct { s *Service } +func NewRegionInstantSnapshotGroupsService(s *Service) *RegionInstantSnapshotGroupsService { + rs := &RegionInstantSnapshotGroupsService{s: s} + return rs +} + +type RegionInstantSnapshotGroupsService struct { + s *Service +} + func NewRegionInstantSnapshotsService(s *Service) *RegionInstantSnapshotsService { rs := &RegionInstantSnapshotsService{s: s} return rs @@ -1071,6 +1291,24 @@ type RegionSecurityPoliciesService struct { s *Service } +func NewRegionSnapshotSettingsService(s *Service) *RegionSnapshotSettingsService { + rs := &RegionSnapshotSettingsService{s: s} + return rs +} + +type RegionSnapshotSettingsService struct { + s *Service +} + +func NewRegionSnapshotsService(s *Service) *RegionSnapshotsService { + rs := &RegionSnapshotsService{s: s} + return rs +} + +type RegionSnapshotsService struct { + s *Service +} + func NewRegionSslCertificatesService(s *Service) *RegionSslCertificatesService { rs := &RegionSslCertificatesService{s: s} return rs @@ -1143,6 +1381,33 @@ type RegionsService struct { s *Service } +func NewReservationBlocksService(s *Service) *ReservationBlocksService { + rs := &ReservationBlocksService{s: s} + return rs +} + +type ReservationBlocksService struct { + s *Service +} + +func NewReservationSlotsService(s *Service) *ReservationSlotsService { + rs := &ReservationSlotsService{s: s} + return rs +} + +type ReservationSlotsService struct { + s *Service +} + +func NewReservationSubBlocksService(s *Service) *ReservationSubBlocksService { + rs := &ReservationSubBlocksService{s: s} + return rs +} + +type ReservationSubBlocksService struct { + s *Service +} + func NewReservationsService(s *Service) *ReservationsService { rs := &ReservationsService{s: s} return rs @@ -1161,6 +1426,24 @@ type ResourcePoliciesService struct { s *Service } +func NewRolloutPlansService(s *Service) *RolloutPlansService { + rs := &RolloutPlansService{s: s} + return rs +} + +type RolloutPlansService struct { + s *Service +} + +func NewRolloutsService(s *Service) *RolloutsService { + rs := &RolloutsService{s: s} + return rs +} + +type RolloutsService struct { + s *Service +} + func NewRoutersService(s *Service) *RoutersService { rs := &RoutersService{s: s} return rs @@ -1359,6 +1642,15 @@ type VpnTunnelsService struct { s *Service } +func NewWireGroupsService(s *Service) *WireGroupsService { + rs := &WireGroupsService{s: s} + return rs +} + +type WireGroupsService struct { + s *Service +} + func NewZoneOperationsService(s *Service) *ZoneOperationsService { rs := &ZoneOperationsService{s: s} return rs @@ -1368,6 +1660,15 @@ type ZoneOperationsService struct { s *Service } +func NewZoneVmExtensionPoliciesService(s *Service) *ZoneVmExtensionPoliciesService { + rs := &ZoneVmExtensionPoliciesService{s: s} + return rs +} + +type ZoneVmExtensionPoliciesService struct { + s *Service +} + func NewZonesService(s *Service) *ZonesService { rs := &ZonesService{s: s} return rs @@ -1378,24 +1679,35 @@ type ZonesService struct { } // AWSV4Signature: Contains the configurations necessary to generate a -// signature for access to private storage buckets that support Signature -// Version 4 for authentication. The service name for generating the -// authentication header will always default to 's3'. +// signature for access to +// private storage buckets that support Signature Version 4 for +// authentication. +// The service name for generating the authentication header will always +// default +// to 's3'. type AWSV4Signature struct { // AccessKey: The access key used for s3 bucket authentication. Required for - // updating or creating a backend that uses AWS v4 signature authentication, - // but will not be returned as part of the configuration when queried with a - // REST API GET request. @InputOnly + // updating or + // creating a backend that uses AWS v4 signature authentication, but will + // not + // be returned as part of the configuration when queried with a REST API + // GET + // request. + // + // @InputOnly AccessKey string `json:"accessKey,omitempty"` // AccessKeyId: The identifier of an access key used for s3 bucket // authentication. AccessKeyId string `json:"accessKeyId,omitempty"` // AccessKeyVersion: The optional version identifier for the access key. You - // can use this to keep track of different iterations of your access key. + // can use this to + // keep track of different iterations of your access key. AccessKeyVersion string `json:"accessKeyVersion,omitempty"` // OriginRegion: The name of the cloud region of your origin. This is a - // free-form field with the name of the region your cloud uses to host your - // origin. For example, "us-east-1" for AWS or "us-ashburn-1" for OCI. + // free-form field with + // the name of the region your cloud uses to host your origin. For + // example, + // "us-east-1" for AWS or "us-ashburn-1" for OCI. OriginRegion string `json:"originRegion,omitempty"` // ForceSendFields is a list of field names (e.g. "AccessKey") to // unconditionally include in API requests. By default, fields with empty or @@ -1410,22 +1722,27 @@ type AWSV4Signature struct { NullFields []string `json:"-"` } -func (s *AWSV4Signature) MarshalJSON() ([]byte, error) { +func (s AWSV4Signature) MarshalJSON() ([]byte, error) { type NoMethod AWSV4Signature - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } // AcceleratorConfig: A specification of the type and number of accelerator -// cards attached to the instance. +// cards attached to the +// instance. type AcceleratorConfig struct { // AcceleratorCount: The number of the guest accelerator cards exposed to this // instance. AcceleratorCount int64 `json:"acceleratorCount,omitempty"` // AcceleratorType: Full or partial URL of the accelerator type resource to - // attach to this instance. For example: - // projects/my-project/zones/us-central1-c/acceleratorTypes/nvidia-tesla-p100 - // If you are creating an instance template, specify only the accelerator name. - // See GPUs on Compute Engine for a full list of accelerator types. + // attach to this + // instance. For + // example:projects/my-project/zones/us-central1-c/acceleratorTypes/nvidia-tesla + // -p100 + // If you are creating an instance template, specify only the + // accelerator name. + // See GPUs on Compute Engine + // for a full list of accelerator types. AcceleratorType string `json:"acceleratorType,omitempty"` // ForceSendFields is a list of field names (e.g. "AcceleratorCount") to // unconditionally include in API requests. By default, fields with empty or @@ -1440,40 +1757,130 @@ type AcceleratorConfig struct { NullFields []string `json:"-"` } -func (s *AcceleratorConfig) MarshalJSON() ([]byte, error) { +func (s AcceleratorConfig) MarshalJSON() ([]byte, error) { type NoMethod AcceleratorConfig - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +// AcceleratorTopologiesInfo: Info for accelerator topologies within a densely +// packed reservation. +type AcceleratorTopologiesInfo struct { + // AcceleratorTopologyInfos: Info for each accelerator topology. + AcceleratorTopologyInfos []*AcceleratorTopologiesInfoAcceleratorTopologyInfo `json:"acceleratorTopologyInfos,omitempty"` + // ForceSendFields is a list of field names (e.g. "AcceleratorTopologyInfos") + // to unconditionally include in API requests. By default, fields with empty or + // default values are omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + ForceSendFields []string `json:"-"` + // NullFields is a list of field names (e.g. "AcceleratorTopologyInfos") to + // include in API requests with the JSON null value. By default, fields with + // empty values are omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s AcceleratorTopologiesInfo) MarshalJSON() ([]byte, error) { + type NoMethod AcceleratorTopologiesInfo + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +// AcceleratorTopologiesInfoAcceleratorTopologyInfo: Info for a slice of a +// given topology. +type AcceleratorTopologiesInfoAcceleratorTopologyInfo struct { + // AcceleratorTopology: The accelerator topology. + AcceleratorTopology string `json:"acceleratorTopology,omitempty"` + // InfoPerTopologyStates: Info for each topology state. + InfoPerTopologyStates []*AcceleratorTopologiesInfoAcceleratorTopologyInfoInfoPerTopologyState `json:"infoPerTopologyStates,omitempty"` + // ForceSendFields is a list of field names (e.g. "AcceleratorTopology") to + // unconditionally include in API requests. By default, fields with empty or + // default values are omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + ForceSendFields []string `json:"-"` + // NullFields is a list of field names (e.g. "AcceleratorTopology") to include + // in API requests with the JSON null value. By default, fields with empty + // values are omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s AcceleratorTopologiesInfoAcceleratorTopologyInfo) MarshalJSON() ([]byte, error) { + type NoMethod AcceleratorTopologiesInfoAcceleratorTopologyInfo + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +// AcceleratorTopologiesInfoAcceleratorTopologyInfoInfoPerTopologyState: Info +// for each topology state. +type AcceleratorTopologiesInfoAcceleratorTopologyInfoInfoPerTopologyState struct { + // Count: The number of accelerator topologies in this state. + Count int64 `json:"count,omitempty"` + // State: The state of the accelerator topology. + // + // Possible values: + // "AVAILABLE" - The accelerator topology is available. + // "DEGRADED" - The accelerator topology is degraded. The underlying capacity + // is not in a + // healthy state and is not available. + // "RUNNING" - The accelerator topology is running. If there are both running + // and + // degraded hosts within a topology, DEGRADED state will be returned. + // "TOPOLOGY_STATE_UNSPECIFIED" - The state of the topology is unspecified. + // "UNHEALTHY" - This value has been deprecated and is no longer used. + State string `json:"state,omitempty"` + // ForceSendFields is a list of field names (e.g. "Count") to unconditionally + // include in API requests. By default, fields with empty or default values are + // omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + ForceSendFields []string `json:"-"` + // NullFields is a list of field names (e.g. "Count") to include in API + // requests with the JSON null value. By default, fields with empty values are + // omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s AcceleratorTopologiesInfoAcceleratorTopologyInfoInfoPerTopologyState) MarshalJSON() ([]byte, error) { + type NoMethod AcceleratorTopologiesInfoAcceleratorTopologyInfoInfoPerTopologyState + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -// AcceleratorType: Represents an Accelerator Type resource. Google Cloud -// Platform provides graphics processing units (accelerators) that you can add -// to VM instances to improve or accelerate performance when working with -// intensive workloads. For more information, read GPUs on Compute Engine. +// AcceleratorType: Represents an Accelerator Type resource. +// +// Google Cloud Platform provides graphics processing units (accelerators) +// that +// you can add to VM instances to improve or accelerate performance when +// working +// with intensive workloads. For more information, readGPUs on Compute Engine. type AcceleratorType struct { - // CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text format. + // CreationTimestamp: [Output Only] Creation timestamp inRFC3339 text format. CreationTimestamp string `json:"creationTimestamp,omitempty"` // Deprecated -- [Output Only] The deprecation status associated with this // accelerator type. Deprecated *DeprecationStatus `json:"deprecated,omitempty"` // Description: [Output Only] An optional textual description of the resource. Description string `json:"description,omitempty"` - // Id: [Output Only] The unique identifier for the resource. This identifier is + // Id: [Output Only] The unique identifier for the resource. This identifier + // is // defined by the server. Id uint64 `json:"id,omitempty,string"` - // Kind: [Output Only] The type of the resource. Always compute#acceleratorType - // for accelerator types. + // Kind: Output only. [Output Only] The type of the resource. + // Alwayscompute#acceleratorType for accelerator types. Kind string `json:"kind,omitempty"` // MaximumCardsPerInstance: [Output Only] Maximum number of accelerator cards // allowed per instance. MaximumCardsPerInstance int64 `json:"maximumCardsPerInstance,omitempty"` // Name: [Output Only] Name of the resource. Name string `json:"name,omitempty"` - // SelfLink: [Output Only] Server-defined, fully qualified URL for this - // resource. + // SelfLink: Output only. [Output Only] Server-defined, fully qualified URL for + // this resource. SelfLink string `json:"selfLink,omitempty"` - // Zone: [Output Only] The name of the zone where the accelerator type resides, - // such as us-central1-a. You must specify this field as part of the HTTP - // request URL. It is not settable as a field in the request body. + // Zone: [Output Only] The name of the zone where the accelerator type + // resides, + // such as us-central1-a. + // You must specify this field as part of the HTTP request URL. It is + // not settable as a field in the request body. Zone string `json:"zone,omitempty"` // ServerResponse contains the HTTP response code and headers from the server. @@ -1491,9 +1898,9 @@ type AcceleratorType struct { NullFields []string `json:"-"` } -func (s *AcceleratorType) MarshalJSON() ([]byte, error) { +func (s AcceleratorType) MarshalJSON() ([]byte, error) { type NoMethod AcceleratorType - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } type AcceleratorTypeAggregatedList struct { @@ -1501,19 +1908,22 @@ type AcceleratorTypeAggregatedList struct { Id string `json:"id,omitempty"` // Items: A list of AcceleratorTypesScopedList resources. Items map[string]AcceleratorTypesScopedList `json:"items,omitempty"` - // Kind: [Output Only] Type of resource. Always - // compute#acceleratorTypeAggregatedList for aggregated lists of accelerator - // types. + // Kind: Output only. [Output Only] Type of resource. + // Alwayscompute#acceleratorTypeAggregatedList for aggregated lists + // of + // accelerator types. 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. + // results for + // list requests. If the number of results is larger thanmaxResults, 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"` - // SelfLink: [Output Only] Server-defined URL for this resource. + // SelfLink: Output only. [Output Only] Server-defined URL for this resource. SelfLink string `json:"selfLink,omitempty"` - // Unreachables: [Output Only] Unreachable resources. + // Unreachables: Output only. [Output Only] Unreachable resources. Unreachables []string `json:"unreachables,omitempty"` // Warning: [Output Only] Informational warning message. Warning *AcceleratorTypeAggregatedListWarning `json:"warning,omitempty"` @@ -1533,76 +1943,98 @@ type AcceleratorTypeAggregatedList struct { NullFields []string `json:"-"` } -func (s *AcceleratorTypeAggregatedList) MarshalJSON() ([]byte, error) { +func (s AcceleratorTypeAggregatedList) MarshalJSON() ([]byte, error) { type NoMethod AcceleratorTypeAggregatedList - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } // AcceleratorTypeAggregatedListWarning: [Output Only] Informational warning // message. type AcceleratorTypeAggregatedListWarning 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. + // 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" - Warning about failed cleanup of transient changes made - // by a failed operation. + // by a failed + // operation. // "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was created. // "DEPRECATED_TYPE_USED" - When deploying and at least one of the resources - // has a type marked as deprecated + // has a type marked as + // deprecated // "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk that is // larger than image size. // "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the - // resources has a type marked as experimental + // resources has a type marked as + // experimental // "EXTERNAL_API_WARNING" - Warning that is present in an external api call // "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been - // overridden. Deprecated unused field. + // overridden. + // Deprecated unused field. // "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an injected // kernel, which is deprecated. // "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB" - A WEIGHTED_MAGLEV backend - // service is associated with a health check that is not of type - // HTTP/HTTPS/HTTP2. + // service is associated with a health check that is + // not of type HTTP/HTTPS/HTTP2. // "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a // exceedingly large number of resources // "LIST_OVERHEAD_QUOTA_EXCEED" - Resource can't be retrieved due to list - // overhead quota exceed which captures the amount of resources filtered out by + // overhead quota exceed + // which captures the amount of resources filtered out by // user-defined list filter. // "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is not - // assigned to an instance on the network. + // assigned to an instance on the + // network. // "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot ip // forward. // "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE" - The route's nextHopInstance - // URL refers to an instance that does not have an ipv6 interface on the same - // network as the route. + // URL refers to an instance that does not have an + // ipv6 interface on the same network as the route. // "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL refers to // an instance that does not exist. // "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance URL - // refers to an instance that is not on the same network as the route. + // refers to an instance that is not on the + // same network as the route. // "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not have a // status of RUNNING. // "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to continue - // the process despite the mentioned error. + // the process despite + // the mentioned error. // "NO_RESULTS_ON_PAGE" - No results are present on a particular list page. // "PARTIAL_SUCCESS" - Success is reported, but some results may be missing // due to errors + // "QUOTA_INFO_UNAVAILABLE" - Quota information is not available to client + // requests (e.g: + // regions.list). // "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource that - // requires a TOS they have not accepted. + // requires a TOS they have not + // accepted. // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a resource is // in use. // "RESOURCE_NOT_DELETED" - One or more of the resources set to auto-delete - // could not be deleted because they were in use. + // could not be deleted + // because they were in use. // "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is // ignored. // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in instance - // group manager is valid as such, but its application does not make a lot of - // sense, because it allows only single instance in instance group. + // group manager is valid as such, but + // its application does not make a lot of sense, because it allows only + // single instance in instance group. // "UNDECLARED_PROPERTIES" - When undeclared properties in the schema are // present // "UNREACHABLE" - A given scope cannot be reached. 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: [Output Only] Metadata about this warning in key: + // value format. For example: + // + // "data": [ + // { + // "key": "scope", + // "value": "zones/us-east1-d" + // } Data []*AcceleratorTypeAggregatedListWarningData `json:"data,omitempty"` // Message: [Output Only] A human-readable description of the warning code. Message string `json:"message,omitempty"` @@ -1619,19 +2051,22 @@ type AcceleratorTypeAggregatedListWarning struct { NullFields []string `json:"-"` } -func (s *AcceleratorTypeAggregatedListWarning) MarshalJSON() ([]byte, error) { +func (s AcceleratorTypeAggregatedListWarning) MarshalJSON() ([]byte, error) { type NoMethod AcceleratorTypeAggregatedListWarning - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } type AcceleratorTypeAggregatedListWarningData 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: [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"` @@ -1648,9 +2083,9 @@ type AcceleratorTypeAggregatedListWarningData struct { NullFields []string `json:"-"` } -func (s *AcceleratorTypeAggregatedListWarningData) MarshalJSON() ([]byte, error) { +func (s AcceleratorTypeAggregatedListWarningData) MarshalJSON() ([]byte, error) { type NoMethod AcceleratorTypeAggregatedListWarningData - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } // AcceleratorTypeList: Contains a list of accelerator types. @@ -1659,16 +2094,18 @@ type AcceleratorTypeList struct { Id string `json:"id,omitempty"` // Items: A list of AcceleratorType resources. Items []*AcceleratorType `json:"items,omitempty"` - // Kind: [Output Only] Type of resource. Always compute#acceleratorTypeList for - // lists of accelerator types. + // Kind: Output only. [Output Only] Type of resource. + // Alwayscompute#acceleratorTypeList for lists of accelerator types. 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. + // results for + // list requests. If the number of results is larger thanmaxResults, 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"` - // SelfLink: [Output Only] Server-defined URL for this resource. + // SelfLink: Output only. [Output Only] Server-defined URL for this resource. SelfLink string `json:"selfLink,omitempty"` // Warning: [Output Only] Informational warning message. Warning *AcceleratorTypeListWarning `json:"warning,omitempty"` @@ -1688,75 +2125,97 @@ type AcceleratorTypeList struct { NullFields []string `json:"-"` } -func (s *AcceleratorTypeList) MarshalJSON() ([]byte, error) { +func (s AcceleratorTypeList) MarshalJSON() ([]byte, error) { type NoMethod AcceleratorTypeList - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } // AcceleratorTypeListWarning: [Output Only] Informational warning message. type AcceleratorTypeListWarning 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. + // 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" - Warning about failed cleanup of transient changes made - // by a failed operation. + // by a failed + // operation. // "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was created. // "DEPRECATED_TYPE_USED" - When deploying and at least one of the resources - // has a type marked as deprecated + // has a type marked as + // deprecated // "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk that is // larger than image size. // "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the - // resources has a type marked as experimental + // resources has a type marked as + // experimental // "EXTERNAL_API_WARNING" - Warning that is present in an external api call // "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been - // overridden. Deprecated unused field. + // overridden. + // Deprecated unused field. // "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an injected // kernel, which is deprecated. // "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB" - A WEIGHTED_MAGLEV backend - // service is associated with a health check that is not of type - // HTTP/HTTPS/HTTP2. + // service is associated with a health check that is + // not of type HTTP/HTTPS/HTTP2. // "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a // exceedingly large number of resources // "LIST_OVERHEAD_QUOTA_EXCEED" - Resource can't be retrieved due to list - // overhead quota exceed which captures the amount of resources filtered out by + // overhead quota exceed + // which captures the amount of resources filtered out by // user-defined list filter. // "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is not - // assigned to an instance on the network. + // assigned to an instance on the + // network. // "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot ip // forward. // "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE" - The route's nextHopInstance - // URL refers to an instance that does not have an ipv6 interface on the same - // network as the route. + // URL refers to an instance that does not have an + // ipv6 interface on the same network as the route. // "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL refers to // an instance that does not exist. // "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance URL - // refers to an instance that is not on the same network as the route. + // refers to an instance that is not on the + // same network as the route. // "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not have a // status of RUNNING. // "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to continue - // the process despite the mentioned error. + // the process despite + // the mentioned error. // "NO_RESULTS_ON_PAGE" - No results are present on a particular list page. // "PARTIAL_SUCCESS" - Success is reported, but some results may be missing // due to errors + // "QUOTA_INFO_UNAVAILABLE" - Quota information is not available to client + // requests (e.g: + // regions.list). // "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource that - // requires a TOS they have not accepted. + // requires a TOS they have not + // accepted. // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a resource is // in use. // "RESOURCE_NOT_DELETED" - One or more of the resources set to auto-delete - // could not be deleted because they were in use. + // could not be deleted + // because they were in use. // "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is // ignored. // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in instance - // group manager is valid as such, but its application does not make a lot of - // sense, because it allows only single instance in instance group. + // group manager is valid as such, but + // its application does not make a lot of sense, because it allows only + // single instance in instance group. // "UNDECLARED_PROPERTIES" - When undeclared properties in the schema are // present // "UNREACHABLE" - A given scope cannot be reached. 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: [Output Only] Metadata about this warning in key: + // value format. For example: + // + // "data": [ + // { + // "key": "scope", + // "value": "zones/us-east1-d" + // } Data []*AcceleratorTypeListWarningData `json:"data,omitempty"` // Message: [Output Only] A human-readable description of the warning code. Message string `json:"message,omitempty"` @@ -1773,19 +2232,22 @@ type AcceleratorTypeListWarning struct { NullFields []string `json:"-"` } -func (s *AcceleratorTypeListWarning) MarshalJSON() ([]byte, error) { +func (s AcceleratorTypeListWarning) MarshalJSON() ([]byte, error) { type NoMethod AcceleratorTypeListWarning - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } type AcceleratorTypeListWarningData 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: [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"` @@ -1802,9 +2264,9 @@ type AcceleratorTypeListWarningData struct { NullFields []string `json:"-"` } -func (s *AcceleratorTypeListWarningData) MarshalJSON() ([]byte, error) { +func (s AcceleratorTypeListWarningData) MarshalJSON() ([]byte, error) { type NoMethod AcceleratorTypeListWarningData - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } type AcceleratorTypesScopedList struct { @@ -1812,7 +2274,8 @@ type AcceleratorTypesScopedList struct { // this scope. AcceleratorTypes []*AcceleratorType `json:"acceleratorTypes,omitempty"` // Warning: [Output Only] An informational warning that appears when the - // accelerator types list is empty. + // accelerator + // types list is empty. Warning *AcceleratorTypesScopedListWarning `json:"warning,omitempty"` // ForceSendFields is a list of field names (e.g. "AcceleratorTypes") to // unconditionally include in API requests. By default, fields with empty or @@ -1827,76 +2290,99 @@ type AcceleratorTypesScopedList struct { NullFields []string `json:"-"` } -func (s *AcceleratorTypesScopedList) MarshalJSON() ([]byte, error) { +func (s AcceleratorTypesScopedList) MarshalJSON() ([]byte, error) { type NoMethod AcceleratorTypesScopedList - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } // AcceleratorTypesScopedListWarning: [Output Only] An informational warning -// that appears when the accelerator types list is empty. +// that appears when the accelerator +// types list is empty. type AcceleratorTypesScopedListWarning 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. + // 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" - Warning about failed cleanup of transient changes made - // by a failed operation. + // by a failed + // operation. // "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was created. // "DEPRECATED_TYPE_USED" - When deploying and at least one of the resources - // has a type marked as deprecated + // has a type marked as + // deprecated // "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk that is // larger than image size. // "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the - // resources has a type marked as experimental + // resources has a type marked as + // experimental // "EXTERNAL_API_WARNING" - Warning that is present in an external api call // "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been - // overridden. Deprecated unused field. + // overridden. + // Deprecated unused field. // "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an injected // kernel, which is deprecated. // "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB" - A WEIGHTED_MAGLEV backend - // service is associated with a health check that is not of type - // HTTP/HTTPS/HTTP2. + // service is associated with a health check that is + // not of type HTTP/HTTPS/HTTP2. // "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a // exceedingly large number of resources // "LIST_OVERHEAD_QUOTA_EXCEED" - Resource can't be retrieved due to list - // overhead quota exceed which captures the amount of resources filtered out by + // overhead quota exceed + // which captures the amount of resources filtered out by // user-defined list filter. // "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is not - // assigned to an instance on the network. + // assigned to an instance on the + // network. // "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot ip // forward. // "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE" - The route's nextHopInstance - // URL refers to an instance that does not have an ipv6 interface on the same - // network as the route. + // URL refers to an instance that does not have an + // ipv6 interface on the same network as the route. // "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL refers to // an instance that does not exist. // "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance URL - // refers to an instance that is not on the same network as the route. + // refers to an instance that is not on the + // same network as the route. // "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not have a // status of RUNNING. // "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to continue - // the process despite the mentioned error. + // the process despite + // the mentioned error. // "NO_RESULTS_ON_PAGE" - No results are present on a particular list page. // "PARTIAL_SUCCESS" - Success is reported, but some results may be missing // due to errors + // "QUOTA_INFO_UNAVAILABLE" - Quota information is not available to client + // requests (e.g: + // regions.list). // "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource that - // requires a TOS they have not accepted. + // requires a TOS they have not + // accepted. // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a resource is // in use. // "RESOURCE_NOT_DELETED" - One or more of the resources set to auto-delete - // could not be deleted because they were in use. + // could not be deleted + // because they were in use. // "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is // ignored. // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in instance - // group manager is valid as such, but its application does not make a lot of - // sense, because it allows only single instance in instance group. + // group manager is valid as such, but + // its application does not make a lot of sense, because it allows only + // single instance in instance group. // "UNDECLARED_PROPERTIES" - When undeclared properties in the schema are // present // "UNREACHABLE" - A given scope cannot be reached. 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: [Output Only] Metadata about this warning in key: + // value format. For example: + // + // "data": [ + // { + // "key": "scope", + // "value": "zones/us-east1-d" + // } Data []*AcceleratorTypesScopedListWarningData `json:"data,omitempty"` // Message: [Output Only] A human-readable description of the warning code. Message string `json:"message,omitempty"` @@ -1913,19 +2399,22 @@ type AcceleratorTypesScopedListWarning struct { NullFields []string `json:"-"` } -func (s *AcceleratorTypesScopedListWarning) MarshalJSON() ([]byte, error) { +func (s AcceleratorTypesScopedListWarning) MarshalJSON() ([]byte, error) { type NoMethod AcceleratorTypesScopedListWarning - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } type AcceleratorTypesScopedListWarningData 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: [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"` @@ -1942,70 +2431,95 @@ type AcceleratorTypesScopedListWarningData struct { NullFields []string `json:"-"` } -func (s *AcceleratorTypesScopedListWarningData) MarshalJSON() ([]byte, error) { +func (s AcceleratorTypesScopedListWarningData) MarshalJSON() ([]byte, error) { type NoMethod AcceleratorTypesScopedListWarningData - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } // AccessConfig: An access configuration attached to an instance's network -// interface. Only one access config per instance is supported. +// interface. +// Only one access config per instance is supported. type AccessConfig struct { - // ExternalIpv6: Applies to ipv6AccessConfigs only. The first IPv6 address of - // the external IPv6 range associated with this instance, prefix length is - // stored in externalIpv6PrefixLength in ipv6AccessConfig. To use a static - // external IP address, it must be unused and in the same region as the - // instance's zone. If not specified, Google Cloud will automatically assign an - // external IPv6 address from the instance's subnetwork. + // ExternalIpv6: Applies to ipv6AccessConfigs only. + // The first IPv6 address of the external IPv6 range associated + // with this instance, prefix length is stored inexternalIpv6PrefixLength in + // ipv6AccessConfig. To + // use a static external IP address, it must be unused and in the same + // region + // as the instance's zone. If not specified, Google Cloud will + // automatically + // assign an external IPv6 address from the instance's subnetwork. ExternalIpv6 string `json:"externalIpv6,omitempty"` // ExternalIpv6PrefixLength: Applies to ipv6AccessConfigs only. The prefix - // length of the external IPv6 range. + // length of the + // external IPv6 range. ExternalIpv6PrefixLength int64 `json:"externalIpv6PrefixLength,omitempty"` - // Kind: [Output Only] Type of the resource. Always compute#accessConfig for - // access configs. + // Kind: Output only. [Output Only] Type of the resource. + // Alwayscompute#accessConfig for access configs. Kind string `json:"kind,omitempty"` - // Name: The name of this access configuration. In accessConfigs (IPv4), the - // default and recommended name is External NAT, but you can use any arbitrary - // string, such as My external IP or Network Access. In ipv6AccessConfigs, the + // Name: The name of this access configuration. In accessConfigs + // (IPv4), the default and recommended name is External NAT, but + // you can use any arbitrary string, such as My external IP orNetwork Access. + // In ipv6AccessConfigs, the // recommend name is External IPv6. Name string `json:"name,omitempty"` - // NatIP: Applies to accessConfigs (IPv4) only. An external IP address - // associated with this instance. Specify an unused static external IP address - // available to the project or leave this field undefined to use an IP from a - // shared ephemeral IP address pool. If you specify a static external IP - // address, it must live in the same region as the zone of the instance. + // NatIP: Applies to accessConfigs (IPv4) only. Anexternal IP + // address associated with this instance. Specify an unused static + // external IP address available to the project or leave this field + // undefined + // to use an IP from a shared ephemeral IP address pool. If you specify + // a + // static external IP address, it must live in the same region as the zone + // of + // the instance. NatIP string `json:"natIP,omitempty"` // NetworkTier: This signifies the networking tier used for configuring this - // access configuration and can only take the following values: PREMIUM, - // STANDARD. If an AccessConfig is specified without a valid external IP - // address, an ephemeral IP will be created with this networkTier. If an - // AccessConfig with a valid external IP address is specified, it must match - // that of the networkTier associated with the Address resource owning that IP. + // access + // configuration and can only take the following values: PREMIUM,STANDARD. + // + // If an AccessConfig is specified without a valid external IP address, + // an + // ephemeral IP will be created with this networkTier. + // + // If an AccessConfig with a valid external IP address is specified, it + // must + // match that of the networkTier associated with the Address resource + // owning + // that IP. // // Possible values: // "FIXED_STANDARD" - Public internet quality with fixed bandwidth. // "PREMIUM" - High quality, Google-grade network tier, support for all - // networking products. + // networking + // products. // "STANDARD" - Public internet quality, only limited support for other - // networking products. + // networking + // products. // "STANDARD_OVERRIDES_FIXED_STANDARD" - (Output only) Temporary tier for - // FIXED_STANDARD when fixed standard tier is expired or not configured. + // FIXED_STANDARD when fixed standard tier + // is expired or not configured. NetworkTier string `json:"networkTier,omitempty"` - // PublicPtrDomainName: The DNS domain name for the public PTR record. You can - // set this field only if the `setPublicPtr` field is enabled in accessConfig. - // If this field is unspecified in ipv6AccessConfig, a default PTR record will - // be created for first IP in associated external IPv6 range. + // PublicPtrDomainName: The DNS domain name for the public PTR record. + // + // You can set this field only if the `setPublicPtr` field is enabled + // inaccessConfig. If this field is unspecified inipv6AccessConfig, a default + // PTR record will be created for + // first IP in associated external IPv6 range. PublicPtrDomainName string `json:"publicPtrDomainName,omitempty"` - // SecurityPolicy: [Output Only] The resource URL for the security policy - // associated with this access config. + // SecurityPolicy: The resource URL for the security policy associated with + // this access + // config. SecurityPolicy string `json:"securityPolicy,omitempty"` // SetPublicPtr: Specifies whether a public DNS 'PTR' record should be created - // to map the external IP address of the instance to a DNS domain name. This - // field is not used in ipv6AccessConfig. A default PTR record will be created - // if the VM has external IPv6 range associated. + // to map the + // external IP address of the instance to a DNS domain name. + // + // This field is not used in ipv6AccessConfig. A default PTR + // record will be created if the VM has external IPv6 range associated. SetPublicPtr bool `json:"setPublicPtr,omitempty"` - // Type: The type of configuration. In accessConfigs (IPv4), the default and - // only option is ONE_TO_ONE_NAT. In ipv6AccessConfigs, the default and only - // option is DIRECT_IPV6. + // Type: The type of configuration. In accessConfigs (IPv4), the + // default and only option is ONE_TO_ONE_NAT. Inipv6AccessConfigs, the default + // and only option isDIRECT_IPV6. // // Possible values: // "DIRECT_IPV6" @@ -2024,145 +2538,228 @@ type AccessConfig struct { NullFields []string `json:"-"` } -func (s *AccessConfig) MarshalJSON() ([]byte, error) { +func (s AccessConfig) MarshalJSON() ([]byte, error) { type NoMethod AccessConfig - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -// Address: Represents an IP Address resource. Google Compute Engine has two IP -// Address resources: * Global (external and internal) -// (https://cloud.google.com/compute/docs/reference/rest/v1/globalAddresses) * -// Regional (external and internal) -// (https://cloud.google.com/compute/docs/reference/rest/v1/addresses) For more -// information, see Reserving a static external IP address. +// Address: Represents an IP Address resource. +// +// Google Compute Engine has two IP Address resources: +// +// * Global (external and +// internal) +// (https://cloud.google.com/compute/docs/reference/rest/v1/globalAddresses) +// * Regional (external and +// internal) +// (https://cloud.google.com/compute/docs/reference/rest/v1/addresses) +// +// For more information, see +// Reserving a static external IP address. type Address struct { // Address: The static IP address represented by this resource. Address string `json:"address,omitempty"` - // AddressType: The type of address to reserve, either INTERNAL or EXTERNAL. If + // AddressType: The type of address to reserve, either INTERNAL orEXTERNAL. If // unspecified, defaults to EXTERNAL. // // Possible values: // "EXTERNAL" - A publicly visible external IP address. // "INTERNAL" - A private network IP address, for use with an Instance or - // Internal Load Balancer forwarding rule. + // Internal Load + // Balancer forwarding rule. // "UNSPECIFIED_TYPE" AddressType string `json:"addressType,omitempty"` - // CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text format. + // CreationTimestamp: Output only. [Output Only] Creation timestamp + // inRFC3339 + // text format. CreationTimestamp string `json:"creationTimestamp,omitempty"` // Description: An optional description of this resource. Provide this field - // when you create the resource. + // when you + // create the resource. Description string `json:"description,omitempty"` - // Id: [Output Only] The unique identifier for the resource. This identifier is + // Id: Output only. [Output Only] The unique identifier for the resource. This + // identifier is // defined by the server. Id uint64 `json:"id,omitempty,string"` + // IpCollection: Reference to the source of IP addresses. + // + // It supports the following cases: + // + // - + // Case 1: PublicDelegatedPrefix (PDP) for BYOIP external IPv4 + // addresses. The PDP must support enhanced IPv4 allocations. + // - + // Case 2: Internal Range for global internal addresses. + // + // + // + // Use one of the following formats to specify the resource: + // + // For a Public Delegated Prefix: + // + // - + // Full resource + // URL:https://www.googleapis.com/compute/v1/projects/projectId/regions/region/p + // ublicDelegatedPrefixes/pdp + // - Partial URL: + // - projects/projectId/regions/region/publicDelegatedPrefixes/pdp-name + // - regions/region/publicDelegatedPrefixes/pdp-name + // + // + // + // For an Internal Range: + // + // - Full + // URL:https://networkconnectivity.googleapis.com/v1/projects/project/locations/ + // global/internalRanges/internal-range + // - Partial + // URL:projects/project/locations/global/internalRanges/internal-range + IpCollection string `json:"ipCollection,omitempty"` // IpVersion: The IP version that will be used by this address. Valid options - // are IPV4 or IPV6. + // areIPV4 or IPV6. // // Possible values: // "IPV4" // "IPV6" // "UNSPECIFIED_VERSION" IpVersion string `json:"ipVersion,omitempty"` - // Ipv6EndpointType: The endpoint type of this address, which should be VM or - // NETLB. This is used for deciding which type of endpoint this address can be - // used after the external IPv6 address reservation. + // Ipv6EndpointType: The endpoint type of this address, which should be VM + // or NETLB. This is used for deciding which type of endpoint + // this address can be used after the external IPv6 address reservation. // // Possible values: // "NETLB" - Reserved IPv6 address can be used on network load balancer. // "VM" - Reserved IPv6 address can be used on VM. Ipv6EndpointType string `json:"ipv6EndpointType,omitempty"` - // Kind: [Output Only] Type of the resource. Always compute#address for + // Kind: Output only. [Output Only] Type of the resource. Always + // compute#address for // addresses. Kind string `json:"kind,omitempty"` // LabelFingerprint: A fingerprint for the labels being applied to this - // Address, which is essentially a hash of the labels set used for optimistic - // locking. The fingerprint is initially generated by Compute Engine and - // changes after every request to modify or update labels. You must always - // provide an up-to-date fingerprint hash in order to update or change labels, - // otherwise the request will fail with error 412 conditionNotMet. To see the - // latest fingerprint, make a get() request to retrieve an Address. + // Address, which is + // essentially a hash of the labels set used for optimistic locking. + // The + // fingerprint is initially generated by Compute Engine and changes after + // every request to modify or update labels. You must always provide + // an + // up-to-date fingerprint hash in order to update or change labels, + // otherwise the request will fail with error412 conditionNotMet. + // + // To see the latest fingerprint, make a get() request to + // retrieve an Address. LabelFingerprint string `json:"labelFingerprint,omitempty"` - // Labels: Labels for this resource. These can only be added or modified by the - // setLabels method. Each label key/value pair must comply with RFC1035. Label - // values may be empty. + // Labels: Labels for this resource. These can only be added or modified by + // thesetLabels method. Each label key/value pair must comply + // withRFC1035. + // Label values may be empty. Labels map[string]string `json:"labels,omitempty"` // Name: Name of the resource. Provided by the client when the resource is - // created. The name must be 1-63 characters long, and comply with RFC1035. - // Specifically, the name must be 1-63 characters long and match the regular - // expression `[a-z]([-a-z0-9]*[a-z0-9])?`. The first character must be a - // lowercase letter, and all following characters (except for the last - // character) must be a dash, lowercase letter, or digit. The last character - // must be a lowercase letter or digit. + // created. + // The name must be 1-63 characters long, and comply withRFC1035. + // Specifically, the name must be 1-63 characters long and match the + // regular + // expression `[a-z]([-a-z0-9]*[a-z0-9])?`. The first character + // must be a lowercase letter, and all following characters (except for + // the + // last character) must be a dash, lowercase letter, or digit. The + // last + // character must be a lowercase letter or digit. Name string `json:"name,omitempty"` // Network: The URL of the network in which to reserve the address. This field - // can only be used with INTERNAL type with the VPC_PEERING purpose. + // can + // only be used with INTERNAL type with theVPC_PEERING purpose. Network string `json:"network,omitempty"` // NetworkTier: This signifies the networking tier used for configuring this - // address and can only take the following values: PREMIUM or STANDARD. - // Internal IP addresses are always Premium Tier; global external IP addresses - // are always Premium Tier; regional external IP addresses can be either - // Standard or Premium Tier. If this field is not specified, it is assumed to - // be PREMIUM. + // address and + // can only take the following values: PREMIUM orSTANDARD. Internal IP + // addresses are always Premium Tier; + // global external IP addresses are always Premium Tier; regional external + // IP + // addresses can be either Standard or Premium Tier. + // + // If this field is not specified, it is assumed to be PREMIUM. // // Possible values: // "FIXED_STANDARD" - Public internet quality with fixed bandwidth. // "PREMIUM" - High quality, Google-grade network tier, support for all - // networking products. + // networking + // products. // "STANDARD" - Public internet quality, only limited support for other - // networking products. + // networking + // products. // "STANDARD_OVERRIDES_FIXED_STANDARD" - (Output only) Temporary tier for - // FIXED_STANDARD when fixed standard tier is expired or not configured. + // FIXED_STANDARD when fixed standard tier + // is expired or not configured. NetworkTier string `json:"networkTier,omitempty"` // PrefixLength: The prefix length if the resource represents an IP range. PrefixLength int64 `json:"prefixLength,omitempty"` // Purpose: The purpose of this resource, which can be one of the following - // values: - GCE_ENDPOINT for addresses that are used by VM instances, alias IP - // ranges, load balancers, and similar resources. - DNS_RESOLVER for a DNS - // resolver address in a subnetwork for a Cloud DNS inbound forwarder IP - // addresses (regional internal IP address in a subnet of a VPC network) - - // VPC_PEERING for global internal IP addresses used for private services - // access allocated ranges. - NAT_AUTO for the regional external IP addresses - // used by Cloud NAT when allocating addresses using automatic NAT IP address - // allocation. - IPSEC_INTERCONNECT for addresses created from a private IP - // range that are reserved for a VLAN attachment in an *HA VPN over Cloud - // Interconnect* configuration. These addresses are regional resources. - - // `SHARED_LOADBALANCER_VIP` for an internal IP address that is assigned to - // multiple internal forwarding rules. - `PRIVATE_SERVICE_CONNECT` for a - // private network address that is used to configure Private Service Connect. - // Only global internal addresses can use this purpose. + // values: + // + // + // - GCE_ENDPOINT for addresses that are used by VM + // instances, alias IP ranges, load balancers, and similar resources. + // - DNS_RESOLVER for a DNS resolver address in a subnetwork + // for a Cloud DNS inbound + // forwarder IP addresses (regional internal IP address in a subnet of + // a VPC network) + // - VPC_PEERING for global internal IP addresses used for + // + // private services access allocated ranges. + // - NAT_AUTO for the regional external IP addresses used by + // Cloud NAT when allocating addresses using + // + // automatic NAT IP address allocation. + // - IPSEC_INTERCONNECT for addresses created from a private + // IP range that are reserved for a VLAN attachment in an + // *HA VPN over Cloud Interconnect* configuration. These addresses + // are regional resources. + // - `SHARED_LOADBALANCER_VIP` for an internal IP address that is + // assigned + // to multiple internal forwarding rules. + // - `PRIVATE_SERVICE_CONNECT` for a private network address that is + // used to configure Private Service Connect. Only global internal + // addresses + // can use this purpose. // // Possible values: // "DNS_RESOLVER" - DNS resolver address in the subnetwork. // "GCE_ENDPOINT" - VM internal/alias IP, Internal LB service IP, etc. // "IPSEC_INTERCONNECT" - A regional internal IP address range reserved for - // the VLAN attachment that is used in HA VPN over Cloud Interconnect. This - // regional internal IP address range must not overlap with any IP address - // range of subnet/route in the VPC network and its peering networks. After the - // VLAN attachment is created with the reserved IP address range, when creating - // a new VPN gateway, its interface IP address is allocated from the associated - // VLAN attachment’s IP address range. + // the VLAN attachment + // that is used in HA VPN over Cloud Interconnect. This regional + // internal IP address range must not overlap with any IP address range + // of subnet/route in the VPC network and its peering networks. After the + // VLAN attachment is created with the reserved IP address range, when + // creating a new VPN gateway, its interface IP address is allocated + // from the associated VLAN attachment’s IP address range. // "NAT_AUTO" - External IP automatically reserved for Cloud NAT. // "PRIVATE_SERVICE_CONNECT" - A private network IP address that can be used - // to configure Private Service Connect. This purpose can be specified only for - // GLOBAL addresses of Type INTERNAL + // to configure Private + // Service Connect. This purpose can be specified only forGLOBAL addresses of + // Type INTERNAL // "SERVERLESS" - A regional internal IP address range reserved for // Serverless. // "SHARED_LOADBALANCER_VIP" - A private network IP address that can be - // shared by multiple Internal Load Balancer forwarding rules. + // shared by multiple Internal + // Load Balancer forwarding rules. // "VPC_PEERING" - IP range for peer networks. Purpose string `json:"purpose,omitempty"` - // Region: [Output Only] The URL of the region where a regional address - // resides. For regional addresses, you must specify the region as a path - // parameter in the HTTP request URL. *This field is not applicable to global + // Region: Output only. [Output Only] The URL of the region where a regional + // address resides. + // For regional addresses, you must specify the region as a path parameter + // in + // the HTTP request URL. *This field is not applicable to global // addresses.* Region string `json:"region,omitempty"` // SelfLink: [Output Only] Server-defined URL for the resource. SelfLink string `json:"selfLink,omitempty"` - // Status: [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. + // Status: Output only. [Output Only] The status of the address, which can be + // one ofRESERVING, 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. // // Possible values: // "IN_USE" - Address is being used by another resource and is not available. @@ -2170,9 +2767,10 @@ type Address struct { // "RESERVING" - Address is being reserved. Status string `json:"status,omitempty"` // Subnetwork: The URL of the subnetwork in which to reserve the address. If an - // IP address is specified, it must be within the subnetwork's IP range. This - // field can only be used with INTERNAL type with a GCE_ENDPOINT or - // DNS_RESOLVER purpose. + // IP address + // is specified, it must be within the subnetwork's IP range. This field + // can + // only be used with INTERNAL type with aGCE_ENDPOINT or DNS_RESOLVER purpose. Subnetwork string `json:"subnetwork,omitempty"` // Users: [Output Only] The URLs of the resources that are using this address. Users []string `json:"users,omitempty"` @@ -2192,9 +2790,9 @@ type Address struct { NullFields []string `json:"-"` } -func (s *Address) MarshalJSON() ([]byte, error) { +func (s Address) MarshalJSON() ([]byte, error) { type NoMethod Address - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } type AddressAggregatedList struct { @@ -2202,18 +2800,21 @@ type AddressAggregatedList struct { Id string `json:"id,omitempty"` // Items: A list of AddressesScopedList resources. Items map[string]AddressesScopedList `json:"items,omitempty"` - // Kind: [Output Only] Type of resource. Always compute#addressAggregatedList - // for aggregated lists of addresses. + // Kind: Output only. [Output Only] Type of resource. + // Alwayscompute#addressAggregatedList for aggregated lists of + // addresses. 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. + // results for + // list requests. If the number of results is larger thanmaxResults, 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"` - // SelfLink: [Output Only] Server-defined URL for this resource. + // SelfLink: Output only. [Output Only] Server-defined URL for this resource. SelfLink string `json:"selfLink,omitempty"` - // Unreachables: [Output Only] Unreachable resources. + // Unreachables: Output only. [Output Only] Unreachable resources. Unreachables []string `json:"unreachables,omitempty"` // Warning: [Output Only] Informational warning message. Warning *AddressAggregatedListWarning `json:"warning,omitempty"` @@ -2233,75 +2834,97 @@ type AddressAggregatedList struct { NullFields []string `json:"-"` } -func (s *AddressAggregatedList) MarshalJSON() ([]byte, error) { +func (s AddressAggregatedList) MarshalJSON() ([]byte, error) { type NoMethod AddressAggregatedList - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } // AddressAggregatedListWarning: [Output Only] Informational warning message. type AddressAggregatedListWarning 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. + // 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" - Warning about failed cleanup of transient changes made - // by a failed operation. + // by a failed + // operation. // "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was created. // "DEPRECATED_TYPE_USED" - When deploying and at least one of the resources - // has a type marked as deprecated + // has a type marked as + // deprecated // "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk that is // larger than image size. // "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the - // resources has a type marked as experimental + // resources has a type marked as + // experimental // "EXTERNAL_API_WARNING" - Warning that is present in an external api call // "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been - // overridden. Deprecated unused field. + // overridden. + // Deprecated unused field. // "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an injected // kernel, which is deprecated. // "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB" - A WEIGHTED_MAGLEV backend - // service is associated with a health check that is not of type - // HTTP/HTTPS/HTTP2. + // service is associated with a health check that is + // not of type HTTP/HTTPS/HTTP2. // "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a // exceedingly large number of resources // "LIST_OVERHEAD_QUOTA_EXCEED" - Resource can't be retrieved due to list - // overhead quota exceed which captures the amount of resources filtered out by + // overhead quota exceed + // which captures the amount of resources filtered out by // user-defined list filter. // "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is not - // assigned to an instance on the network. + // assigned to an instance on the + // network. // "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot ip // forward. // "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE" - The route's nextHopInstance - // URL refers to an instance that does not have an ipv6 interface on the same - // network as the route. + // URL refers to an instance that does not have an + // ipv6 interface on the same network as the route. // "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL refers to // an instance that does not exist. // "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance URL - // refers to an instance that is not on the same network as the route. + // refers to an instance that is not on the + // same network as the route. // "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not have a // status of RUNNING. // "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to continue - // the process despite the mentioned error. + // the process despite + // the mentioned error. // "NO_RESULTS_ON_PAGE" - No results are present on a particular list page. // "PARTIAL_SUCCESS" - Success is reported, but some results may be missing // due to errors + // "QUOTA_INFO_UNAVAILABLE" - Quota information is not available to client + // requests (e.g: + // regions.list). // "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource that - // requires a TOS they have not accepted. + // requires a TOS they have not + // accepted. // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a resource is // in use. // "RESOURCE_NOT_DELETED" - One or more of the resources set to auto-delete - // could not be deleted because they were in use. + // could not be deleted + // because they were in use. // "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is // ignored. // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in instance - // group manager is valid as such, but its application does not make a lot of - // sense, because it allows only single instance in instance group. + // group manager is valid as such, but + // its application does not make a lot of sense, because it allows only + // single instance in instance group. // "UNDECLARED_PROPERTIES" - When undeclared properties in the schema are // present // "UNREACHABLE" - A given scope cannot be reached. 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: [Output Only] Metadata about this warning in key: + // value format. For example: + // + // "data": [ + // { + // "key": "scope", + // "value": "zones/us-east1-d" + // } Data []*AddressAggregatedListWarningData `json:"data,omitempty"` // Message: [Output Only] A human-readable description of the warning code. Message string `json:"message,omitempty"` @@ -2318,19 +2941,22 @@ type AddressAggregatedListWarning struct { NullFields []string `json:"-"` } -func (s *AddressAggregatedListWarning) MarshalJSON() ([]byte, error) { +func (s AddressAggregatedListWarning) MarshalJSON() ([]byte, error) { type NoMethod AddressAggregatedListWarning - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } type AddressAggregatedListWarningData 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: [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"` @@ -2347,9 +2973,9 @@ type AddressAggregatedListWarningData struct { NullFields []string `json:"-"` } -func (s *AddressAggregatedListWarningData) MarshalJSON() ([]byte, error) { +func (s AddressAggregatedListWarningData) MarshalJSON() ([]byte, error) { type NoMethod AddressAggregatedListWarningData - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } // AddressList: Contains a list of addresses. @@ -2358,16 +2984,19 @@ type AddressList struct { Id string `json:"id,omitempty"` // Items: A list of Address resources. Items []*Address `json:"items,omitempty"` - // Kind: [Output Only] Type of resource. Always compute#addressList for lists - // of addresses. + // Kind: Output only. [Output Only] Type of resource. Always + // compute#addressList for + // lists of addresses. 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. + // results for + // list requests. If the number of results is larger thanmaxResults, 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"` - // SelfLink: [Output Only] Server-defined URL for this resource. + // SelfLink: Output only. [Output Only] Server-defined URL for this resource. SelfLink string `json:"selfLink,omitempty"` // Warning: [Output Only] Informational warning message. Warning *AddressListWarning `json:"warning,omitempty"` @@ -2387,75 +3016,97 @@ type AddressList struct { NullFields []string `json:"-"` } -func (s *AddressList) MarshalJSON() ([]byte, error) { +func (s AddressList) MarshalJSON() ([]byte, error) { type NoMethod AddressList - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } // AddressListWarning: [Output Only] Informational warning message. type AddressListWarning 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. + // 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" - Warning about failed cleanup of transient changes made - // by a failed operation. + // by a failed + // operation. // "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was created. // "DEPRECATED_TYPE_USED" - When deploying and at least one of the resources - // has a type marked as deprecated + // has a type marked as + // deprecated // "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk that is // larger than image size. // "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the - // resources has a type marked as experimental + // resources has a type marked as + // experimental // "EXTERNAL_API_WARNING" - Warning that is present in an external api call // "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been - // overridden. Deprecated unused field. + // overridden. + // Deprecated unused field. // "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an injected // kernel, which is deprecated. // "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB" - A WEIGHTED_MAGLEV backend - // service is associated with a health check that is not of type - // HTTP/HTTPS/HTTP2. + // service is associated with a health check that is + // not of type HTTP/HTTPS/HTTP2. // "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a // exceedingly large number of resources // "LIST_OVERHEAD_QUOTA_EXCEED" - Resource can't be retrieved due to list - // overhead quota exceed which captures the amount of resources filtered out by + // overhead quota exceed + // which captures the amount of resources filtered out by // user-defined list filter. // "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is not - // assigned to an instance on the network. + // assigned to an instance on the + // network. // "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot ip // forward. // "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE" - The route's nextHopInstance - // URL refers to an instance that does not have an ipv6 interface on the same - // network as the route. + // URL refers to an instance that does not have an + // ipv6 interface on the same network as the route. // "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL refers to // an instance that does not exist. // "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance URL - // refers to an instance that is not on the same network as the route. + // refers to an instance that is not on the + // same network as the route. // "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not have a // status of RUNNING. // "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to continue - // the process despite the mentioned error. + // the process despite + // the mentioned error. // "NO_RESULTS_ON_PAGE" - No results are present on a particular list page. // "PARTIAL_SUCCESS" - Success is reported, but some results may be missing // due to errors + // "QUOTA_INFO_UNAVAILABLE" - Quota information is not available to client + // requests (e.g: + // regions.list). // "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource that - // requires a TOS they have not accepted. + // requires a TOS they have not + // accepted. // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a resource is // in use. // "RESOURCE_NOT_DELETED" - One or more of the resources set to auto-delete - // could not be deleted because they were in use. + // could not be deleted + // because they were in use. // "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is // ignored. // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in instance - // group manager is valid as such, but its application does not make a lot of - // sense, because it allows only single instance in instance group. + // group manager is valid as such, but + // its application does not make a lot of sense, because it allows only + // single instance in instance group. // "UNDECLARED_PROPERTIES" - When undeclared properties in the schema are // present // "UNREACHABLE" - A given scope cannot be reached. 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: [Output Only] Metadata about this warning in key: + // value format. For example: + // + // "data": [ + // { + // "key": "scope", + // "value": "zones/us-east1-d" + // } Data []*AddressListWarningData `json:"data,omitempty"` // Message: [Output Only] A human-readable description of the warning code. Message string `json:"message,omitempty"` @@ -2472,19 +3123,22 @@ type AddressListWarning struct { NullFields []string `json:"-"` } -func (s *AddressListWarning) MarshalJSON() ([]byte, error) { +func (s AddressListWarning) MarshalJSON() ([]byte, error) { type NoMethod AddressListWarning - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } type AddressListWarningData 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: [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"` @@ -2501,16 +3155,17 @@ type AddressListWarningData struct { NullFields []string `json:"-"` } -func (s *AddressListWarningData) MarshalJSON() ([]byte, error) { +func (s AddressListWarningData) MarshalJSON() ([]byte, error) { type NoMethod AddressListWarningData - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } type AddressesScopedList struct { // Addresses: [Output Only] A list of addresses contained in this scope. Addresses []*Address `json:"addresses,omitempty"` // Warning: [Output Only] Informational warning which replaces the list of - // addresses when the list is empty. + // addresses + // when the list is empty. Warning *AddressesScopedListWarning `json:"warning,omitempty"` // ForceSendFields is a list of field names (e.g. "Addresses") to // unconditionally include in API requests. By default, fields with empty or @@ -2525,76 +3180,99 @@ type AddressesScopedList struct { NullFields []string `json:"-"` } -func (s *AddressesScopedList) MarshalJSON() ([]byte, error) { +func (s AddressesScopedList) MarshalJSON() ([]byte, error) { type NoMethod AddressesScopedList - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } // AddressesScopedListWarning: [Output Only] Informational warning which -// replaces the list of addresses when the list is empty. +// replaces the list of addresses +// when the list is empty. type AddressesScopedListWarning 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. + // 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" - Warning about failed cleanup of transient changes made - // by a failed operation. + // by a failed + // operation. // "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was created. // "DEPRECATED_TYPE_USED" - When deploying and at least one of the resources - // has a type marked as deprecated + // has a type marked as + // deprecated // "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk that is // larger than image size. // "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the - // resources has a type marked as experimental + // resources has a type marked as + // experimental // "EXTERNAL_API_WARNING" - Warning that is present in an external api call // "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been - // overridden. Deprecated unused field. + // overridden. + // Deprecated unused field. // "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an injected // kernel, which is deprecated. // "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB" - A WEIGHTED_MAGLEV backend - // service is associated with a health check that is not of type - // HTTP/HTTPS/HTTP2. + // service is associated with a health check that is + // not of type HTTP/HTTPS/HTTP2. // "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a // exceedingly large number of resources // "LIST_OVERHEAD_QUOTA_EXCEED" - Resource can't be retrieved due to list - // overhead quota exceed which captures the amount of resources filtered out by + // overhead quota exceed + // which captures the amount of resources filtered out by // user-defined list filter. // "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is not - // assigned to an instance on the network. + // assigned to an instance on the + // network. // "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot ip // forward. // "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE" - The route's nextHopInstance - // URL refers to an instance that does not have an ipv6 interface on the same - // network as the route. + // URL refers to an instance that does not have an + // ipv6 interface on the same network as the route. // "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL refers to // an instance that does not exist. // "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance URL - // refers to an instance that is not on the same network as the route. + // refers to an instance that is not on the + // same network as the route. // "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not have a // status of RUNNING. // "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to continue - // the process despite the mentioned error. + // the process despite + // the mentioned error. // "NO_RESULTS_ON_PAGE" - No results are present on a particular list page. // "PARTIAL_SUCCESS" - Success is reported, but some results may be missing // due to errors + // "QUOTA_INFO_UNAVAILABLE" - Quota information is not available to client + // requests (e.g: + // regions.list). // "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource that - // requires a TOS they have not accepted. + // requires a TOS they have not + // accepted. // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a resource is // in use. // "RESOURCE_NOT_DELETED" - One or more of the resources set to auto-delete - // could not be deleted because they were in use. + // could not be deleted + // because they were in use. // "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is // ignored. // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in instance - // group manager is valid as such, but its application does not make a lot of - // sense, because it allows only single instance in instance group. + // group manager is valid as such, but + // its application does not make a lot of sense, because it allows only + // single instance in instance group. // "UNDECLARED_PROPERTIES" - When undeclared properties in the schema are // present // "UNREACHABLE" - A given scope cannot be reached. 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: [Output Only] Metadata about this warning in key: + // value format. For example: + // + // "data": [ + // { + // "key": "scope", + // "value": "zones/us-east1-d" + // } Data []*AddressesScopedListWarningData `json:"data,omitempty"` // Message: [Output Only] A human-readable description of the warning code. Message string `json:"message,omitempty"` @@ -2611,19 +3289,22 @@ type AddressesScopedListWarning struct { NullFields []string `json:"-"` } -func (s *AddressesScopedListWarning) MarshalJSON() ([]byte, error) { +func (s AddressesScopedListWarning) MarshalJSON() ([]byte, error) { type NoMethod AddressesScopedListWarning - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } type AddressesScopedListWarningData 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: [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"` @@ -2640,16 +3321,19 @@ type AddressesScopedListWarningData struct { NullFields []string `json:"-"` } -func (s *AddressesScopedListWarningData) MarshalJSON() ([]byte, error) { +func (s AddressesScopedListWarningData) MarshalJSON() ([]byte, error) { type NoMethod AddressesScopedListWarningData - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } // AdvancedMachineFeatures: Specifies options for controlling advanced machine -// features. Options that would traditionally be configured in a BIOS belong -// here. Features that require operating system support may have corresponding -// entries in the GuestOsFeatures of an Image (e.g., whether or not the OS in -// the Image supports nested virtualization being enabled or disabled). +// features. +// Options that would traditionally be configured in a BIOS belong +// here. Features that require operating system support may have +// corresponding entries in the GuestOsFeatures of anImage (e.g., whether or +// not the OS in theImage supports nested virtualization being enabled +// or +// disabled). type AdvancedMachineFeatures struct { // EnableNestedVirtualization: Whether to enable nested virtualization or not // (default is false). @@ -2657,15 +3341,35 @@ type AdvancedMachineFeatures struct { // EnableUefiNetworking: Whether to enable UEFI networking for instance // creation. EnableUefiNetworking bool `json:"enableUefiNetworking,omitempty"` + // PerformanceMonitoringUnit: Type of Performance Monitoring Unit requested on + // instance. + // + // Possible values: + // "ARCHITECTURAL" - Architecturally defined non-LLC events. + // "ENHANCED" - Most documented core/L2 and LLC events. + // "PERFORMANCE_MONITORING_UNIT_UNSPECIFIED" + // "STANDARD" - Most documented core/L2 events. + PerformanceMonitoringUnit string `json:"performanceMonitoringUnit,omitempty"` // ThreadsPerCore: The number of threads per physical core. To disable - // simultaneous multithreading (SMT) set this to 1. If unset, the maximum - // number of threads supported per core by the underlying processor is assumed. + // simultaneous + // multithreading (SMT) set this to 1. If unset, the maximum number + // of threads supported per core by the underlying processor is + // assumed. ThreadsPerCore int64 `json:"threadsPerCore,omitempty"` + // TurboMode: Turbo frequency mode to use for the instance. + // Supported modes include: + // * ALL_CORE_MAX + // + // Using empty string or not setting this field will use the + // platform-specific + // default turbo mode. + TurboMode string `json:"turboMode,omitempty"` // VisibleCoreCount: The number of physical cores to expose to an instance. - // Multiply by the number of threads per core to compute the total number of - // virtual CPUs to expose to the instance. If unset, the number of cores is - // inferred from the instance's nominal CPU count and the underlying platform's - // SMT width. + // Multiply by + // the number of threads per core to compute the total number of virtual + // CPUs to expose to the instance. If unset, the number of cores is + // inferred from the instance's nominal CPU count and the underlying + // platform's SMT width. VisibleCoreCount int64 `json:"visibleCoreCount,omitempty"` // ForceSendFields is a list of field names (e.g. "EnableNestedVirtualization") // to unconditionally include in API requests. By default, fields with empty or @@ -2680,22 +3384,24 @@ type AdvancedMachineFeatures struct { NullFields []string `json:"-"` } -func (s *AdvancedMachineFeatures) MarshalJSON() ([]byte, error) { +func (s AdvancedMachineFeatures) MarshalJSON() ([]byte, error) { type NoMethod AdvancedMachineFeatures - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } // AliasIpRange: An alias IP range attached to an instance's network interface. type AliasIpRange struct { // IpCidrRange: The IP alias ranges to allocate for this interface. This IP - // CIDR range must belong to the specified subnetwork and cannot contain IP - // addresses reserved by system or used by other network interfaces. This range - // may be a single IP address (such as 10.2.3.4), a netmask (such as /24) or a - // CIDR-formatted string (such as 10.1.2.0/24). + // CIDR range + // must belong to the specified subnetwork and cannot contain IP + // addresses + // reserved by system or used by other network interfaces. This range may be + // a single IP address (such as 10.2.3.4), a netmask (such as/24) or a + // CIDR-formatted string (such as10.1.2.0/24). IpCidrRange string `json:"ipCidrRange,omitempty"` // SubnetworkRangeName: The name of a subnetwork secondary IP range from which - // to allocate an IP alias range. If not specified, the primary range of the - // subnetwork is used. + // to allocate an IP + // alias range. If not specified, the primary range of the subnetwork is used. SubnetworkRangeName string `json:"subnetworkRangeName,omitempty"` // ForceSendFields is a list of field names (e.g. "IpCidrRange") to // unconditionally include in API requests. By default, fields with empty or @@ -2710,36 +3416,46 @@ type AliasIpRange struct { NullFields []string `json:"-"` } -func (s *AliasIpRange) MarshalJSON() ([]byte, error) { +func (s AliasIpRange) MarshalJSON() ([]byte, error) { type NoMethod AliasIpRange - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } // AllocationAggregateReservation: This reservation type is specified by total -// resource amounts (e.g. total count of CPUs) and can account for multiple -// instance SKUs. In other words, one can create instances of varying shapes -// against this reservation. +// resource amounts (e.g. total +// count of CPUs) and can account for multiple instance SKUs. In other +// words, +// one can create instances of varying shapes against this reservation. type AllocationAggregateReservation struct { - // InUseResources: [Output only] List of resources currently in use. + // InUseResources: Output only. [Output only] List of resources currently in + // use. InUseResources []*AllocationAggregateReservationReservedResourceInfo `json:"inUseResources,omitempty"` // ReservedResources: List of reserved resources (CPUs, memory, accelerators). ReservedResources []*AllocationAggregateReservationReservedResourceInfo `json:"reservedResources,omitempty"` // VmFamily: The VM family that all instances scheduled against this - // reservation must belong to. + // reservation must + // belong to. // // Possible values: + // "VM_FAMILY_CLOUD_TPU_DEVICE_CT3" // "VM_FAMILY_CLOUD_TPU_LITE_DEVICE_CT5L" // "VM_FAMILY_CLOUD_TPU_LITE_POD_SLICE_CT5LP" + // "VM_FAMILY_CLOUD_TPU_LITE_POD_SLICE_CT6E" + // "VM_FAMILY_CLOUD_TPU_POD_SLICE_CT3P" // "VM_FAMILY_CLOUD_TPU_POD_SLICE_CT4P" + // "VM_FAMILY_CLOUD_TPU_POD_SLICE_CT5P" + // "VM_FAMILY_CLOUD_TPU_POD_SLICE_TPU7X" VmFamily string `json:"vmFamily,omitempty"` // WorkloadType: The workload type of the instances that will target this // reservation. // // Possible values: // "BATCH" - Reserved resources will be optimized for BATCH workloads, such - // as ML training. + // as ML + // training. // "SERVING" - Reserved resources will be optimized for SERVING workloads, - // such as ML inference. + // such as ML + // inference. // "UNSPECIFIED" WorkloadType string `json:"workloadType,omitempty"` // ForceSendFields is a list of field names (e.g. "InUseResources") to @@ -2755,9 +3471,9 @@ type AllocationAggregateReservation struct { NullFields []string `json:"-"` } -func (s *AllocationAggregateReservation) MarshalJSON() ([]byte, error) { +func (s AllocationAggregateReservation) MarshalJSON() ([]byte, error) { type NoMethod AllocationAggregateReservation - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } type AllocationAggregateReservationReservedResourceInfo struct { @@ -2776,15 +3492,16 @@ type AllocationAggregateReservationReservedResourceInfo struct { NullFields []string `json:"-"` } -func (s *AllocationAggregateReservationReservedResourceInfo) MarshalJSON() ([]byte, error) { +func (s AllocationAggregateReservationReservedResourceInfo) MarshalJSON() ([]byte, error) { type NoMethod AllocationAggregateReservationReservedResourceInfo - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } type AllocationAggregateReservationReservedResourceInfoAccelerator struct { // AcceleratorCount: Number of accelerators of specified type. AcceleratorCount int64 `json:"acceleratorCount,omitempty"` - // AcceleratorType: Full or partial URL to accelerator type. e.g. + // AcceleratorType: Full or partial URL to accelerator type. + // e.g. // "projects/{PROJECT}/zones/{ZONE}/acceleratorTypes/ct4l" AcceleratorType string `json:"acceleratorType,omitempty"` // ForceSendFields is a list of field names (e.g. "AcceleratorCount") to @@ -2800,31 +3517,98 @@ type AllocationAggregateReservationReservedResourceInfoAccelerator struct { NullFields []string `json:"-"` } -func (s *AllocationAggregateReservationReservedResourceInfoAccelerator) MarshalJSON() ([]byte, error) { +func (s AllocationAggregateReservationReservedResourceInfoAccelerator) MarshalJSON() ([]byte, error) { type NoMethod AllocationAggregateReservationReservedResourceInfoAccelerator - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +type AllocationReservationSharingPolicy struct { + // ServiceShareType: Sharing config for all Google Cloud services. + // + // Possible values: + // "ALLOW_ALL" - Allow all Google Cloud managed services to share + // reservations. + // "DISALLOW_ALL" - [Default] Disallow sharing with all Google Cloud + // services. + // "SERVICE_SHARE_TYPE_UNSPECIFIED" + ServiceShareType string `json:"serviceShareType,omitempty"` + // ForceSendFields is a list of field names (e.g. "ServiceShareType") to + // unconditionally include in API requests. By default, fields with empty or + // default values are omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + ForceSendFields []string `json:"-"` + // NullFields is a list of field names (e.g. "ServiceShareType") to include in + // API requests with the JSON null value. By default, fields with empty values + // are omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s AllocationReservationSharingPolicy) MarshalJSON() ([]byte, error) { + type NoMethod AllocationReservationSharingPolicy + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } // AllocationResourceStatus: [Output Only] Contains output only fields. type AllocationResourceStatus struct { + // HealthInfo: [Output only] Health information for the reservation. + HealthInfo *AllocationResourceStatusHealthInfo `json:"healthInfo,omitempty"` + // ReservationBlockCount: The number of reservation blocks associated with this + // reservation. + ReservationBlockCount int64 `json:"reservationBlockCount,omitempty"` + // ReservationMaintenance: Maintenance information for this reservation + ReservationMaintenance *GroupMaintenanceInfo `json:"reservationMaintenance,omitempty"` // SpecificSkuAllocation: Allocation Properties of this reservation. SpecificSkuAllocation *AllocationResourceStatusSpecificSKUAllocation `json:"specificSkuAllocation,omitempty"` - // ForceSendFields is a list of field names (e.g. "SpecificSkuAllocation") to + // ForceSendFields is a list of field names (e.g. "HealthInfo") to // unconditionally include in API requests. By default, fields with empty or // default values are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. ForceSendFields []string `json:"-"` - // NullFields is a list of field names (e.g. "SpecificSkuAllocation") to - // include in API requests with the JSON null value. By default, fields with - // empty values are omitted from API requests. See + // NullFields is a list of field names (e.g. "HealthInfo") to include in API + // requests with the JSON null value. By default, fields with empty values are + // omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } -func (s *AllocationResourceStatus) MarshalJSON() ([]byte, error) { +func (s AllocationResourceStatus) MarshalJSON() ([]byte, error) { type NoMethod AllocationResourceStatus - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +// AllocationResourceStatusHealthInfo: Health information for the reservation. +type AllocationResourceStatusHealthInfo struct { + // DegradedBlockCount: The number of reservation blocks that are degraded. + DegradedBlockCount int64 `json:"degradedBlockCount,omitempty"` + // HealthStatus: The health status of the reservation. + // + // Possible values: + // "DEGRADED" - The reservation is degraded. + // "HEALTHY" - The reservation is healthy. + // "HEALTH_STATUS_UNSPECIFIED" - The health status of the reservation is + // unspecified. + HealthStatus string `json:"healthStatus,omitempty"` + // HealthyBlockCount: The number of reservation blocks that are healthy. + HealthyBlockCount int64 `json:"healthyBlockCount,omitempty"` + // ForceSendFields is a list of field names (e.g. "DegradedBlockCount") to + // unconditionally include in API requests. By default, fields with empty or + // default values are omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + ForceSendFields []string `json:"-"` + // NullFields is a list of field names (e.g. "DegradedBlockCount") to include + // in API requests with the JSON null value. By default, fields with empty + // values are omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s AllocationResourceStatusHealthInfo) MarshalJSON() ([]byte, error) { + type NoMethod AllocationResourceStatusHealthInfo + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } // AllocationResourceStatusSpecificSKUAllocation: Contains Properties set for @@ -2833,6 +3617,10 @@ type AllocationResourceStatusSpecificSKUAllocation struct { // SourceInstanceTemplateId: ID of the instance template used to populate // reservation properties. SourceInstanceTemplateId string `json:"sourceInstanceTemplateId,omitempty"` + // Utilizations: Per service utilization breakdown. The Key is the Google Cloud + // managed + // service name. + Utilizations map[string]string `json:"utilizations,omitempty"` // ForceSendFields is a list of field names (e.g. "SourceInstanceTemplateId") // to unconditionally include in API requests. By default, fields with empty or // default values are omitted from API requests. See @@ -2846,17 +3634,18 @@ type AllocationResourceStatusSpecificSKUAllocation struct { NullFields []string `json:"-"` } -func (s *AllocationResourceStatusSpecificSKUAllocation) MarshalJSON() ([]byte, error) { +func (s AllocationResourceStatusSpecificSKUAllocation) MarshalJSON() ([]byte, error) { type NoMethod AllocationResourceStatusSpecificSKUAllocation - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } type AllocationSpecificSKUAllocationAllocatedInstancePropertiesReservedDisk struct { // DiskSizeGb: Specifies the size of the disk in base-2 GB. DiskSizeGb int64 `json:"diskSizeGb,omitempty,string"` // Interface: Specifies the disk interface to use for attaching this disk, - // which is either SCSI or NVME. The default is SCSI. For performance - // characteristics of SCSI over NVMe, see Local SSD performance. + // which is + // either SCSI or NVME. The default isSCSI. + // For performance characteristics of SCSI over NVMe, seeLocal SSD performance. // // Possible values: // "NVME" @@ -2875,25 +3664,29 @@ type AllocationSpecificSKUAllocationAllocatedInstancePropertiesReservedDisk stru NullFields []string `json:"-"` } -func (s *AllocationSpecificSKUAllocationAllocatedInstancePropertiesReservedDisk) MarshalJSON() ([]byte, error) { +func (s AllocationSpecificSKUAllocationAllocatedInstancePropertiesReservedDisk) MarshalJSON() ([]byte, error) { type NoMethod AllocationSpecificSKUAllocationAllocatedInstancePropertiesReservedDisk - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } // AllocationSpecificSKUAllocationReservedInstanceProperties: Properties of the -// SKU instances being reserved. Next ID: 9 +// SKU instances being reserved. +// Next ID: 10 type AllocationSpecificSKUAllocationReservedInstanceProperties struct { // GuestAccelerators: Specifies accelerator type and count. GuestAccelerators []*AcceleratorConfig `json:"guestAccelerators,omitempty"` // LocalSsds: Specifies amount of local ssd to reserve with each instance. The - // type of disk is local-ssd. + // type + // of disk is local-ssd. LocalSsds []*AllocationSpecificSKUAllocationAllocatedInstancePropertiesReservedDisk `json:"localSsds,omitempty"` // LocationHint: An opaque location hint used to place the allocation close to - // other resources. This field is for use by internal tools that use the public - // API. + // other + // resources. + // This field is for use by internal tools that use the public API. LocationHint string `json:"locationHint,omitempty"` // MachineType: Specifies type of machine (name only) which has fixed number of - // vCPUs and fixed amount of memory. This also includes specifying custom + // vCPUs + // and fixed amount of memory. This also includes specifying custom // machine type following custom-NUMBER_OF_CPUS-AMOUNT_OF_MEMORY pattern. MachineType string `json:"machineType,omitempty"` // MinCpuPlatform: Minimum cpu platform the reservation. @@ -2911,31 +3704,39 @@ type AllocationSpecificSKUAllocationReservedInstanceProperties struct { NullFields []string `json:"-"` } -func (s *AllocationSpecificSKUAllocationReservedInstanceProperties) MarshalJSON() ([]byte, error) { +func (s AllocationSpecificSKUAllocationReservedInstanceProperties) MarshalJSON() ([]byte, error) { type NoMethod AllocationSpecificSKUAllocationReservedInstanceProperties - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } // AllocationSpecificSKUReservation: This reservation type allows to pre -// allocate specific instance configuration. +// allocate specific instance +// +// configuration. type AllocationSpecificSKUReservation struct { - // AssuredCount: [Output Only] Indicates how many instances are actually usable - // currently. + // AssuredCount: Output only. [Output Only] Indicates how many instances are + // actually usable currently. AssuredCount int64 `json:"assuredCount,omitempty,string"` // Count: Specifies the number of resources that are allocated. Count int64 `json:"count,omitempty,string"` - // InUseCount: [Output Only] Indicates how many instances are in use. + // InUseCount: Output only. [Output Only] Indicates how many instances are in + // use. InUseCount int64 `json:"inUseCount,omitempty,string"` // InstanceProperties: The instance properties for the reservation. InstanceProperties *AllocationSpecificSKUAllocationReservedInstanceProperties `json:"instanceProperties,omitempty"` // SourceInstanceTemplate: Specifies the instance template to create the - // reservation. If you use this field, you must exclude the instanceProperties - // field. This field is optional, and it can be a full or partial URL. For - // example, the following are all valid URLs to an instance template: - - // https://www.googleapis.com/compute/v1/projects/project - // /global/instanceTemplates/instanceTemplate - - // projects/project/global/instanceTemplates/instanceTemplate - - // global/instanceTemplates/instanceTemplate + // reservation. If you use + // this field, you must exclude the instanceProperties field. + // + // This field is optional, and it can be a full or partial URL. For + // example, + // the following are all valid URLs to an instance template: + // + // + // - + // https://www.googleapis.com/compute/v1/projects/project/global/instanceTemplates/instanceTemplate + // - projects/project/global/instanceTemplates/instanceTemplate + // - global/instanceTemplates/instanceTemplate SourceInstanceTemplate string `json:"sourceInstanceTemplate,omitempty"` // ForceSendFields is a list of field names (e.g. "AssuredCount") to // unconditionally include in API requests. By default, fields with empty or @@ -2950,15 +3751,16 @@ type AllocationSpecificSKUReservation struct { NullFields []string `json:"-"` } -func (s *AllocationSpecificSKUReservation) MarshalJSON() ([]byte, error) { +func (s AllocationSpecificSKUReservation) MarshalJSON() ([]byte, error) { type NoMethod AllocationSpecificSKUReservation - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } // AttachedDisk: An instance-attached disk resource. type AttachedDisk struct { - // Architecture: [Output Only] The architecture of the attached disk. Valid - // values are ARM64 or X86_64. + // Architecture: Output only. [Output Only] The architecture of the attached + // disk. Valid values are ARM64 + // or X86_64. // // Possible values: // "ARCHITECTURE_UNSPECIFIED" - Default value indicating Architecture is not @@ -2967,100 +3769,147 @@ type AttachedDisk struct { // "X86_64" - Machines with architecture X86_64 Architecture string `json:"architecture,omitempty"` // AutoDelete: Specifies whether the disk will be auto-deleted when the - // instance is deleted (but not when the disk is detached from the instance). + // instance is + // deleted (but not when the disk is detached from the instance). AutoDelete bool `json:"autoDelete,omitempty"` // Boot: Indicates that this is a boot disk. The virtual machine will use the - // first partition of the disk for its root filesystem. + // first + // partition of the disk for its root filesystem. Boot bool `json:"boot,omitempty"` // DeviceName: Specifies a unique device name of your choice that is reflected - // into the /dev/disk/by-id/google-* tree of a Linux operating system running - // within the instance. This name can be used to reference the device for - // mounting, resizing, and so on, from within the instance. If not specified, - // the server chooses a default device name to apply to this disk, in the form - // persistent-disk-x, where x is a number assigned by Google Compute Engine. - // This field is only applicable for persistent disks. + // into the/dev/disk/by-id/google-* tree of a Linux operating system + // running within the instance. This name can be used to reference the + // device + // for mounting, resizing, and so on, from within the instance. + // + // If not specified, the server chooses a default device name to apply to + // this + // disk, in the form persistent-disk-x, where x is a number + // assigned by Google Compute Engine. This field is only applicable + // for + // persistent disks. DeviceName string `json:"deviceName,omitempty"` - // DiskEncryptionKey: Encrypts or decrypts a disk using a customer-supplied - // encryption key. If you are creating a new disk, this field encrypts the new - // disk using an encryption key that you provide. If you are attaching an - // existing disk that is already encrypted, this field decrypts the disk using - // the customer-supplied encryption key. If you encrypt a disk using a - // customer-supplied key, you must provide the same key again when you attempt - // to use this resource at a later time. For example, you must provide the key - // when you create a snapshot or an image from the disk or when you attach the - // disk to a virtual machine instance. If you do not provide an encryption key, - // then the disk will be encrypted using an automatically generated key and you - // do not need to provide a key to use the disk later. Instance templates do - // not store customer-supplied encryption keys, so you cannot use your own keys - // to encrypt disks in a managed instance group. + // DiskEncryptionKey: Encrypts or decrypts a disk using + // acustomer-supplied + // encryption key. + // + // If you are creating a new disk, this field encrypts the new disk using + // an encryption key that you provide. If you are attaching an existing + // disk that is already encrypted, this field decrypts the disk using + // the customer-supplied encryption key. + // + // If you encrypt a disk using a customer-supplied key, you must provide + // the + // same key again when you attempt to use this resource at a later time. + // For + // example, you must provide the key when you create a snapshot or an + // image + // from the disk or when you attach the disk to a virtual machine instance. + // + // If you do not provide an encryption key, then the disk will be + // encrypted + // using an automatically generated key and you do not need to provide a key + // to use the disk later. + // + // Note: + // + // Instance templates do not storecustomer-supplied + // encryption keys, so you cannot use your own keys to encrypt disks in + // amanaged instance group. + // + // You cannot create VMs that have disks with customer-supplied keys using + // the bulk + // insert method. DiskEncryptionKey *CustomerEncryptionKey `json:"diskEncryptionKey,omitempty"` // DiskSizeGb: The size of the disk in GB. DiskSizeGb int64 `json:"diskSizeGb,omitempty,string"` // ForceAttach: [Input Only] Whether to force attach the regional disk even if - // it's currently attached to another instance. If you try to force attach a - // zonal disk to an instance, you will receive an error. + // it's + // currently attached to another instance. If you try to force attach a + // zonal + // disk to an instance, you will receive an error. ForceAttach bool `json:"forceAttach,omitempty"` // GuestOsFeatures: A list of features to enable on the guest operating system. - // Applicable only for bootable images. Read Enabling guest operating system - // features to see a list of available options. + // Applicable + // only for bootable images. Read + // Enabling guest operating system features to see a list of available + // options. GuestOsFeatures []*GuestOsFeature `json:"guestOsFeatures,omitempty"` - // Index: [Output Only] A zero-based index to this disk, where 0 is reserved - // for the boot disk. If you have many disks attached to an instance, each disk - // would have a unique index number. + // Index: Output only. [Output Only] A zero-based index to this disk, where 0 + // is reserved for the + // boot disk. If you have many disks attached to an instance, each + // disk would have a unique index number. Index int64 `json:"index,omitempty"` // InitializeParams: [Input Only] Specifies the parameters for a new disk that - // will be created alongside the new instance. Use initialization parameters to - // create boot disks or local SSDs attached to the new instance. This property - // is mutually exclusive with the source property; you can only define one or - // the other, but not both. + // will be created + // alongside the new instance. Use initialization parameters to create + // boot + // disks or local SSDs attached to the new instance. + // + // This property is mutually exclusive with the source property; + // you can only define one or the other, but not both. InitializeParams *AttachedDiskInitializeParams `json:"initializeParams,omitempty"` // Interface: Specifies the disk interface to use for attaching this disk, - // which is either SCSI or NVME. For most machine types, the default is SCSI. - // Local SSDs can use either NVME or SCSI. In certain configurations, - // persistent disks can use NVMe. For more information, see About persistent - // disks. + // which is + // either SCSI or NVME. For most machine types, the + // default is SCSI. Local SSDs can use either NVME or SCSI. + // In certain configurations, persistent disks can use NVMe. For + // more + // information, seeAbout + // persistent disks. // // Possible values: // "NVME" // "SCSI" Interface string `json:"interface,omitempty"` - // Kind: [Output Only] Type of the resource. Always compute#attachedDisk for - // attached disks. + // Kind: Output only. [Output Only] Type of the resource. + // Alwayscompute#attachedDisk for attached disks. Kind string `json:"kind,omitempty"` - // Licenses: [Output Only] Any valid publicly visible licenses. + // Licenses: Output only. [Output Only] Any valid publicly visible licenses. Licenses []string `json:"licenses,omitempty"` - // Mode: The mode in which to attach this disk, either READ_WRITE or READ_ONLY. - // If not specified, the default is to attach the disk in READ_WRITE mode. + // Mode: The mode in which to attach this disk, either READ_WRITE orREAD_ONLY. + // If not specified, the default is to attach the disk + // in READ_WRITE mode. // // Possible values: // "READ_ONLY" - Attaches this disk in read-only mode. Multiple virtual - // machines can use a disk in read-only mode at a time. - // "READ_WRITE" - *[Default]* Attaches this disk in read-write mode. Only one + // machines can use + // a disk in read-only mode at a time. + // "READ_WRITE" - *[Default]* Attaches this disk in read-write mode. Only + // one // virtual machine at a time can be attached to a disk in read-write mode. Mode string `json:"mode,omitempty"` - // SavedState: For LocalSSD disks on VM Instances in STOPPED or SUSPENDED - // state, this field is set to PRESERVED if the LocalSSD data has been saved to - // a persistent location by customer request. (see the discard_local_ssd option - // on Stop/Suspend). Read-only in the api. + // SavedState: Output only. For LocalSSD disks on VM Instances in STOPPED or + // SUSPENDED state, this + // field is set to PRESERVED if the LocalSSD data has been saved + // to a persistent location by customer request. (see the + // discard_local_ssd option on Stop/Suspend). + // Read-only in the api. // // Possible values: // "DISK_SAVED_STATE_UNSPECIFIED" - *[Default]* Disk state has not been // preserved. // "PRESERVED" - Disk state has been preserved. SavedState string `json:"savedState,omitempty"` - // ShieldedInstanceInitialState: [Output Only] shielded vm initial state stored - // on disk + // ShieldedInstanceInitialState: Output only. [Output Only] shielded vm initial + // state stored on disk ShieldedInstanceInitialState *InitialStateConfig `json:"shieldedInstanceInitialState,omitempty"` - // Source: Specifies a valid partial or full URL to an existing Persistent Disk - // resource. When creating a new instance, one of initializeParams.sourceImage - // or initializeParams.sourceSnapshot or disks.source is required except for - // local SSD. If desired, you can also attach existing non-root persistent - // disks using this property. This field is only applicable for persistent - // disks. Note that for InstanceTemplate, specify the disk name for zonal disk, + // Source: Specifies a valid partial or full URL to an existing Persistent + // Disk + // resource. When creating a new instance boot disk, one + // ofinitializeParams.sourceImage orinitializeParams.sourceSnapshot or + // disks.source + // is required. + // + // If desired, you can also attach existing non-root persistent disks + // using + // this property. This field is only applicable for persistent disks. + // + // Note that for InstanceTemplate, specify the disk name for zonal disk, // and the URL for regional disk. Source string `json:"source,omitempty"` - // Type: Specifies the type of the disk, either SCRATCH or PERSISTENT. If not - // specified, the default is PERSISTENT. + // Type: Specifies the type of the disk, either SCRATCH orPERSISTENT. If not + // specified, the default isPERSISTENT. // // Possible values: // "PERSISTENT" @@ -3079,20 +3928,26 @@ type AttachedDisk struct { NullFields []string `json:"-"` } -func (s *AttachedDisk) MarshalJSON() ([]byte, error) { +func (s AttachedDisk) MarshalJSON() ([]byte, error) { type NoMethod AttachedDisk - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } // AttachedDiskInitializeParams: [Input Only] Specifies the parameters for a -// new disk that will be created alongside the new instance. Use initialization -// parameters to create boot disks or local SSDs attached to the new instance. -// This field is persisted and returned for instanceTemplate and not returned -// in the context of instance. This property is mutually exclusive with the -// source property; you can only define one or the other, but not both. +// new disk that will be created +// alongside the new instance. Use initialization parameters to create +// boot +// disks or local SSDs attached to the new instance. +// +// This field is persisted and returned for instanceTemplate and not +// returned +// in the context of instance. +// +// This property is mutually exclusive with the source property; +// you can only define one or the other, but not both. type AttachedDiskInitializeParams struct { - // Architecture: The architecture of the attached disk. Valid values are arm64 - // or x86_64. + // Architecture: The architecture of the attached disk. Valid values are + // arm64 or x86_64. // // Possible values: // "ARCHITECTURE_UNSPECIFIED" - Default value indicating Architecture is not @@ -3104,108 +3959,156 @@ type AttachedDiskInitializeParams struct { // the disk. Description string `json:"description,omitempty"` // DiskName: Specifies the disk name. If not specified, the default is to use - // the name of the instance. If a disk with the same name already exists in the - // given region, the existing disk is attached to the new instance and the new - // disk is not created. + // the name + // of the instance. If a disk with the same name already exists in the + // given + // region, the existing disk is attached to the new instance and the + // new disk is not created. DiskName string `json:"diskName,omitempty"` // DiskSizeGb: Specifies the size of the disk in base-2 GB. The size must be at - // least 10 GB. If you specify a sourceImage, which is required for boot disks, - // the default size is the size of the sourceImage. If you do not specify a - // sourceImage, the default disk size is 500 GB. - DiskSizeGb int64 `json:"diskSizeGb,omitempty,string"` - // DiskType: Specifies the disk type to use to create the instance. If not - // specified, the default is pd-standard, specified using the full URL. For - // example: https://www.googleapis.com/compute/v1/projects/project/zones/zone - // /diskTypes/pd-standard For a full list of acceptable values, see Persistent - // disk types. If you specify this field when creating a VM, you can provide - // either the full or partial URL. For example, the following values are valid: - // - https://www.googleapis.com/compute/v1/projects/project/zones/zone - // /diskTypes/diskType - projects/project/zones/zone/diskTypes/diskType - - // zones/zone/diskTypes/diskType If you specify this field when creating or - // updating an instance template or all-instances configuration, specify the - // type of the disk, not the URL. For example: pd-standard. - DiskType string `json:"diskType,omitempty"` + // least + // 10 GB. If you specify a sourceImage, which is required for + // boot disks, the default size is the size of the sourceImage. + // If you do not specify a sourceImage, the default disk size + // is 500 GB. + DiskSizeGb int64 `json:"diskSizeGb,omitempty,string"` + DiskType string `json:"diskType,omitempty"` // EnableConfidentialCompute: Whether this disk is using confidential compute // mode. EnableConfidentialCompute bool `json:"enableConfidentialCompute,omitempty"` - // Labels: Labels to apply to this disk. These can be later modified by the - // disks.setLabels method. This field is only applicable for persistent disks. + // Labels: Labels to apply to this disk. These can be later modified by + // thedisks.setLabels method. This field is only applicable for + // persistent disks. Labels map[string]string `json:"labels,omitempty"` // Licenses: A list of publicly visible licenses. Reserved for Google's use. Licenses []string `json:"licenses,omitempty"` // OnUpdateAction: Specifies which action to take on instance update with this - // disk. Default is to use the existing disk. + // disk. Default + // is to use the existing disk. // // Possible values: // "RECREATE_DISK" - Always recreate the disk. // "RECREATE_DISK_IF_SOURCE_CHANGED" - Recreate the disk if source (image, - // snapshot) of this disk is different from source of existing disk. + // snapshot) of this disk is different + // from source of existing disk. // "USE_EXISTING_DISK" - Use the existing disk, this is the default // behaviour. OnUpdateAction string `json:"onUpdateAction,omitempty"` // ProvisionedIops: Indicates how many IOPS to provision for the disk. This - // sets the number of I/O operations per second that the disk can handle. - // Values must be between 10,000 and 120,000. For more details, see the Extreme - // persistent disk documentation. + // sets the number + // of I/O operations per second that the disk can handle. Values must + // be + // between 10,000 and 120,000. For more details, see theExtreme persistent + // disk documentation. ProvisionedIops int64 `json:"provisionedIops,omitempty,string"` // ProvisionedThroughput: Indicates how much throughput to provision for the - // disk. This sets the number of throughput mb per second that the disk can - // handle. Values must greater than or equal to 1. + // disk. This sets the + // number of throughput mb per second that the disk can handle. Values + // must + // greater than or equal to 1. ProvisionedThroughput int64 `json:"provisionedThroughput,omitempty,string"` // ReplicaZones: Required for each regional disk associated with the instance. - // Specify the URLs of the zones where the disk should be replicated to. You - // must provide exactly two replica zones, and one zone must be the same as the - // instance zone. + // Specify + // the URLs of the zones where the disk should be replicated to. + // You must provide exactly two replica zones, and one zone must be the same + // as the instance zone. ReplicaZones []string `json:"replicaZones,omitempty"` - // ResourceManagerTags: Resource manager tags to be bound to the disk. Tag keys - // and values have the same definition as resource manager tags. Keys must be - // in the format `tagKeys/{tag_key_id}`, and values are in the format - // `tagValues/456`. The field is ignored (both PUT & PATCH) when empty. + // ResourceManagerTags: Input only. Resource manager tags to be bound to the + // disk. Tag keys and values + // have the same definition as resource + // manager tags. Keys and values can be either in numeric format, + // such as `tagKeys/{tag_key_id}` and `tagValues/{tag_value_id}` or + // in + // namespaced format such as `{org_id|project_id}/{tag_key_short_name}` + // and + // `{tag_value_short_name}`. The field is ignored (both PUT & PATCH) + // when + // empty. ResourceManagerTags map[string]string `json:"resourceManagerTags,omitempty"` // ResourcePolicies: Resource policies applied to this disk for automatic - // snapshot creations. Specified using the full or partial URL. For instance - // template, specify only the resource policy name. + // snapshot creations. + // Specified using the full or partial URL. For instance template, specify + // only the resource policy name. ResourcePolicies []string `json:"resourcePolicies,omitempty"` // SourceImage: The source image to create this disk. When creating a new - // instance, one of initializeParams.sourceImage or - // initializeParams.sourceSnapshot or disks.source is required except for local - // SSD. To create a disk with one of the public operating system images, - // specify the image by its family name. For example, specify family/debian-9 - // to use the latest Debian 9 image: - // projects/debian-cloud/global/images/family/debian-9 Alternatively, use a - // specific version of a public operating system image: - // projects/debian-cloud/global/images/debian-9-stretch-vYYYYMMDD To create a - // disk with a custom image that you created, specify the image name in the - // following format: global/images/my-custom-image You can also specify a - // custom image by its image family, which returns the latest version of the - // image in that family. Replace the image name with family/family-name: - // global/images/family/my-image-family If the source image is deleted later, - // this field will not be set. + // instance boot + // disk, one of initializeParams.sourceImage orinitializeParams.sourceSnapshot + // or disks.source + // is required. + // + // To create a disk with one of the public operating system + // images, specify the image by its family name. For example, + // specifyfamily/debian-9 to use the latest Debian 9 + // image: + // + // projects/debian-cloud/global/images/family/debian-9 + // + // + // Alternatively, use a specific version of a public operating system + // image: + // + // projects/debian-cloud/global/images/debian-9-stretch-vYYYYMMDD + // + // + // To create a disk with a custom image that you created, specify the + // image name in the following format: + // + // global/images/my-custom-image + // + // + // You can also specify a custom image by its image family, which returns + // the latest version of the image in that family. Replace the image name + // with family/family-name: + // + // global/images/family/my-image-family + // + // + // If the source image is deleted later, this field will not be set. SourceImage string `json:"sourceImage,omitempty"` - // SourceImageEncryptionKey: The customer-supplied encryption key of the source - // image. Required if the source image is protected by a customer-supplied - // encryption key. InstanceTemplate and InstancePropertiesPatch do not store - // customer-supplied encryption keys, so you cannot create disks for instances - // in a managed instance group if the source images are encrypted with your own - // keys. + // SourceImageEncryptionKey: Thecustomer-supplied + // encryption key of the source image. Required if the source image + // is + // protected by a customer-supplied encryption key. + // + // InstanceTemplate and InstancePropertiesPatch do not + // storecustomer-supplied + // encryption keys, so you cannot create disks for instances in a managed + // instance group if the + // source images are encrypted with your own keys. SourceImageEncryptionKey *CustomerEncryptionKey `json:"sourceImageEncryptionKey,omitempty"` // SourceSnapshot: The source snapshot to create this disk. When creating a new - // instance, one of initializeParams.sourceSnapshot or - // initializeParams.sourceImage or disks.source is required except for local - // SSD. To create a disk with a snapshot that you created, specify the snapshot - // name in the following format: global/snapshots/my-backup If the source - // snapshot is deleted later, this field will not be set. + // instance + // boot disk, one of initializeParams.sourceSnapshot + // orinitializeParams.sourceImage or disks.source + // is required. + // + // To create a disk with a snapshot that you created, specify the + // snapshot name in the following format: + // + // global/snapshots/my-backup + // + // + // If the source snapshot is deleted later, this field will not be set. + // + // Note: You cannot create VMs in bulk using a snapshot as the source. Use + // an image instead when you create VMs using + // the bulk + // insert method. SourceSnapshot string `json:"sourceSnapshot,omitempty"` - // SourceSnapshotEncryptionKey: The customer-supplied encryption key of the - // source snapshot. + // SourceSnapshotEncryptionKey: Thecustomer-supplied + // encryption key of the source snapshot. SourceSnapshotEncryptionKey *CustomerEncryptionKey `json:"sourceSnapshotEncryptionKey,omitempty"` // StoragePool: The storage pool in which the new disk is created. 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 - // /storagePools/storagePool - - // projects/project/zones/zone/storagePools/storagePool - - // zones/zone/storagePools/storagePool + // 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/storagePools/storagePool + // - projects/project/zones/zone/storagePools/storagePool + // - zones/zone/storagePools/storagePool StoragePool string `json:"storagePool,omitempty"` // ForceSendFields is a list of field names (e.g. "Architecture") to // unconditionally include in API requests. By default, fields with empty or @@ -3220,35 +4123,74 @@ type AttachedDiskInitializeParams struct { NullFields []string `json:"-"` } -func (s *AttachedDiskInitializeParams) MarshalJSON() ([]byte, error) { +func (s AttachedDiskInitializeParams) MarshalJSON() ([]byte, error) { type NoMethod AttachedDiskInitializeParams - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) -} - -// AuditConfig: Specifies the audit configuration for a service. The -// configuration determines which permission types are logged, and what -// identities, if any, are exempted from logging. An AuditConfig must have one -// or more AuditLogConfigs. If there are AuditConfigs for both `allServices` -// and a specific service, the union of the two AuditConfigs is used for that -// service: the log_types specified in each AuditConfig are enabled, and the -// exempted_members in each AuditLogConfig are exempted. Example Policy with -// multiple AuditConfigs: { "audit_configs": [ { "service": "allServices", -// "audit_log_configs": [ { "log_type": "DATA_READ", "exempted_members": [ -// "user:jose@example.com" ] }, { "log_type": "DATA_WRITE" }, { "log_type": -// "ADMIN_READ" } ] }, { "service": "sampleservice.googleapis.com", -// "audit_log_configs": [ { "log_type": "DATA_READ" }, { "log_type": -// "DATA_WRITE", "exempted_members": [ "user:aliya@example.com" ] } ] } ] } For -// sampleservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ -// logging. It also exempts jose@example.com from DATA_READ logging, and -// aliya@example.com from DATA_WRITE logging. + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +// AuditConfig: Specifies the audit configuration for a service. +// The configuration determines which permission types are logged, and +// what +// identities, if any, are exempted from logging. +// An AuditConfig must have one or more AuditLogConfigs. +// +// If there are AuditConfigs for both `allServices` and a specific service, +// the union of the two AuditConfigs is used for that service: the +// log_types +// specified in each AuditConfig are enabled, and the exempted_members in +// each +// AuditLogConfig are exempted. +// +// Example Policy with multiple AuditConfigs: +// +// { +// "audit_configs": [ +// { +// "service": "allServices", +// "audit_log_configs": [ +// { +// "log_type": "DATA_READ", +// "exempted_members": [ +// "user:jose@example.com" +// ] +// }, +// { +// "log_type": "DATA_WRITE" +// }, +// { +// "log_type": "ADMIN_READ" +// } +// ] +// }, +// { +// "service": "sampleservice.googleapis.com", +// "audit_log_configs": [ +// { +// "log_type": "DATA_READ" +// }, +// { +// "log_type": "DATA_WRITE", +// "exempted_members": [ +// "user:aliya@example.com" +// ] +// } +// ] +// } +// ] +// } +// +// For sampleservice, this policy enables DATA_READ, DATA_WRITE and +// ADMIN_READ +// logging. It also exempts `jose@example.com` from DATA_READ logging, +// and +// `aliya@example.com` from DATA_WRITE logging. type AuditConfig struct { // AuditLogConfigs: The configuration for logging of each type of permission. AuditLogConfigs []*AuditLogConfig `json:"auditLogConfigs,omitempty"` - // ExemptedMembers: This is deprecated and has no effect. Do not use. - ExemptedMembers []string `json:"exemptedMembers,omitempty"` - // Service: Specifies a service that will be enabled for audit logging. For - // example, `storage.googleapis.com`, `cloudsql.googleapis.com`. `allServices` - // is a special value that covers all services. + // Service: Specifies a service that will be enabled for audit logging. + // For example, `storage.googleapis.com`, + // `cloudsql.googleapis.com`. + // `allServices` is a special value that covers all services. Service string `json:"service,omitempty"` // ForceSendFields is a list of field names (e.g. "AuditLogConfigs") to // unconditionally include in API requests. By default, fields with empty or @@ -3263,22 +4205,38 @@ type AuditConfig struct { NullFields []string `json:"-"` } -func (s *AuditConfig) MarshalJSON() ([]byte, error) { +func (s AuditConfig) MarshalJSON() ([]byte, error) { type NoMethod AuditConfig - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } // AuditLogConfig: Provides the configuration for logging a type of -// permissions. Example: { "audit_log_configs": [ { "log_type": "DATA_READ", -// "exempted_members": [ "user:jose@example.com" ] }, { "log_type": -// "DATA_WRITE" } ] } This enables 'DATA_READ' and 'DATA_WRITE' logging, while -// exempting jose@example.com from DATA_READ logging. +// permissions. +// Example: +// +// { +// "audit_log_configs": [ +// { +// "log_type": "DATA_READ", +// "exempted_members": [ +// "user:jose@example.com" +// ] +// }, +// { +// "log_type": "DATA_WRITE" +// } +// ] +// } +// +// This enables 'DATA_READ' and 'DATA_WRITE' logging, while +// exempting +// jose@example.com from DATA_READ logging. type AuditLogConfig struct { // ExemptedMembers: Specifies the identities that do not cause logging for this - // type of permission. Follows the same format of Binding.members. + // type of + // permission. + // Follows the same format of Binding.members. ExemptedMembers []string `json:"exemptedMembers,omitempty"` - // IgnoreChildExemptions: This is deprecated and has no effect. Do not use. - IgnoreChildExemptions bool `json:"ignoreChildExemptions,omitempty"` // LogType: The log type that this config enables. // // Possible values: @@ -3300,97 +4258,99 @@ type AuditLogConfig struct { NullFields []string `json:"-"` } -func (s *AuditLogConfig) MarshalJSON() ([]byte, error) { +func (s AuditLogConfig) MarshalJSON() ([]byte, error) { type NoMethod AuditLogConfig - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -// AuthorizationLoggingOptions: This is deprecated and has no effect. Do not -// use. -type AuthorizationLoggingOptions struct { - // PermissionType: This is deprecated and has no effect. Do not use. - // - // Possible values: - // "ADMIN_READ" - This is deprecated and has no effect. Do not use. - // "ADMIN_WRITE" - This is deprecated and has no effect. Do not use. - // "DATA_READ" - This is deprecated and has no effect. Do not use. - // "DATA_WRITE" - This is deprecated and has no effect. Do not use. - // "PERMISSION_TYPE_UNSPECIFIED" - This is deprecated and has no effect. Do - // not use. - PermissionType string `json:"permissionType,omitempty"` - // ForceSendFields is a list of field names (e.g. "PermissionType") to - // unconditionally include in API requests. By default, fields with empty or - // default values are omitted from API requests. See - // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more - // details. - ForceSendFields []string `json:"-"` - // NullFields is a list of field names (e.g. "PermissionType") to include in - // API requests with the JSON null value. By default, fields with empty values - // are omitted from API requests. See - // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. - NullFields []string `json:"-"` -} - -func (s *AuthorizationLoggingOptions) MarshalJSON() ([]byte, error) { - type NoMethod AuthorizationLoggingOptions - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) -} - -// Autoscaler: Represents an Autoscaler resource. Google Compute Engine has two -// Autoscaler resources: * Zonal (/compute/docs/reference/rest/v1/autoscalers) -// * Regional (/compute/docs/reference/rest/v1/regionAutoscalers) Use -// autoscalers to automatically add or delete instances from a managed instance -// group according to your defined autoscaling policy. For more information, -// read Autoscaling Groups of Instances. For zonal managed instance groups -// resource, use the autoscaler resource. For regional managed instance groups, -// use the regionAutoscalers resource. +// Autoscaler: Represents an Autoscaler resource. +// +// Google Compute Engine has two Autoscaler resources: +// +// * Zonal (/compute/docs/reference/rest/v1/autoscalers) +// * Regional (/compute/docs/reference/rest/v1/regionAutoscalers) +// +// Use autoscalers to automatically add or delete instances from a +// managed instance group according to your defined autoscaling policy. +// For more information, read Autoscaling Groups of Instances. +// +// For zonal managed instance groups resource, use the +// autoscaler +// resource. +// +// For regional managed instance groups, use theregionAutoscalers resource. type Autoscaler struct { // AutoscalingPolicy: The configuration parameters for the autoscaling - // algorithm. You can define one or more signals for an autoscaler: - // cpuUtilization, customMetricUtilizations, and loadBalancingUtilization. If - // none of these are specified, the default will be to autoscale based on - // cpuUtilization to 0.6 or 60%. + // algorithm. You can define + // one or more signals for an autoscaler: + // cpuUtilization,customMetricUtilizations, andloadBalancingUtilization. + // + // If none of these are specified, the default will be to autoscale based + // oncpuUtilization to 0.6 or 60%. AutoscalingPolicy *AutoscalingPolicy `json:"autoscalingPolicy,omitempty"` - // CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text format. + // CreationTimestamp: Output only. [Output Only] Creation timestamp + // inRFC3339 + // text format. CreationTimestamp string `json:"creationTimestamp,omitempty"` // Description: An optional description of this resource. Provide this property - // when you create the resource. + // when you + // create the resource. Description string `json:"description,omitempty"` - // Id: [Output Only] The unique identifier for the resource. This identifier is + // Id: Output only. [Output Only] The unique identifier for the resource. This + // identifier is // defined by the server. Id uint64 `json:"id,omitempty,string"` - // Kind: [Output Only] Type of the resource. Always compute#autoscaler for - // autoscalers. + // Kind: Output only. [Output Only] Type of the resource. Always + // compute#autoscaler + // for autoscalers. Kind string `json:"kind,omitempty"` // Name: Name of the resource. Provided by the client when the resource is - // created. The name must be 1-63 characters long, and comply with RFC1035. - // 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. + // created. + // The name must be 1-63 characters long, and comply withRFC1035. + // 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. Name string `json:"name,omitempty"` - // RecommendedSize: [Output Only] Target recommended MIG size (number of - // instances) computed by autoscaler. Autoscaler calculates the recommended MIG - // size even when the autoscaling policy mode is different from ON. This field - // is empty when autoscaler is not connected to an existing managed instance - // group or autoscaler did not generate its prediction. + // RecommendedSize: Output only. [Output Only] Target recommended MIG size + // (number of instances) computed by + // autoscaler. Autoscaler calculates the recommended MIG size even when + // the + // autoscaling policy mode is different from ON. This field is empty + // when + // autoscaler is not connected to an existing managed instance group + // or + // autoscaler did not generate its prediction. RecommendedSize int64 `json:"recommendedSize,omitempty"` - // Region: [Output Only] URL of the region where the instance group resides - // (for autoscalers living in regional scope). + // Region: Output only. [Output Only] URL of theregion + // where the instance group resides (for autoscalers living in regional + // scope). Region string `json:"region,omitempty"` - // ScalingScheduleStatus: [Output Only] Status information of existing scaling - // schedules. + // ScalingScheduleStatus: Output only. [Output Only] Status information of + // existing scaling schedules. ScalingScheduleStatus map[string]ScalingScheduleStatus `json:"scalingScheduleStatus,omitempty"` // SelfLink: [Output Only] Server-defined URL for the resource. SelfLink string `json:"selfLink,omitempty"` // Status: [Output Only] The status of the autoscaler configuration. Current - // set of possible values: - PENDING: Autoscaler backend hasn't read - // new/updated configuration. - DELETING: Configuration is being deleted. - - // ACTIVE: Configuration is acknowledged to be effective. Some warnings might - // be present in the statusDetails field. - ERROR: Configuration has errors. - // Actionable for users. Details are present in the statusDetails field. New - // values might be added in the future. + // set of + // possible values: + // + // - PENDING: + // Autoscaler backend hasn't read new/updated configuration. + // - DELETING: + // Configuration is being deleted. + // - ACTIVE: + // Configuration is acknowledged to be effective. Some warnings might + // be present in the statusDetails field. + // - ERROR: + // Configuration has errors. Actionable for users. Details are present in + // the statusDetails field. + // + // + // New values might be added in the future. // // Possible values: // "ACTIVE" - Configuration is acknowledged to be effective @@ -3399,14 +4359,18 @@ type Autoscaler struct { // "PENDING" - Autoscaler backend hasn't read new/updated configuration Status string `json:"status,omitempty"` // StatusDetails: [Output Only] Human-readable details about the current state - // of the autoscaler. Read the documentation for Commonly returned status - // messages for examples of status messages you might encounter. + // of the + // autoscaler. Read the documentation forCommonly + // returned status messages for examples of status messages you + // might + // encounter. StatusDetails []*AutoscalerStatusDetails `json:"statusDetails,omitempty"` // Target: URL of the managed instance group that this autoscaler will scale. - // This field is required when creating an autoscaler. + // This + // field is required when creating an autoscaler. Target string `json:"target,omitempty"` - // Zone: [Output Only] URL of the zone where the instance group resides (for - // autoscalers living in zonal scope). + // Zone: Output only. [Output Only] URL of thezone + // where the instance group resides (for autoscalers living in zonal scope). Zone string `json:"zone,omitempty"` // ServerResponse contains the HTTP response code and headers from the server. @@ -3424,9 +4388,9 @@ type Autoscaler struct { NullFields []string `json:"-"` } -func (s *Autoscaler) MarshalJSON() ([]byte, error) { +func (s Autoscaler) MarshalJSON() ([]byte, error) { type NoMethod Autoscaler - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } type AutoscalerAggregatedList struct { @@ -3434,19 +4398,23 @@ type AutoscalerAggregatedList struct { Id string `json:"id,omitempty"` // Items: A list of AutoscalersScopedList resources. Items map[string]AutoscalersScopedList `json:"items,omitempty"` - // Kind: [Output Only] Type of resource. Always - // compute#autoscalerAggregatedList for aggregated lists of autoscalers. + // Kind: Output only. [Output Only] Type of resource. + // Alwayscompute#autoscalerAggregatedList for aggregated lists of + // autoscalers. 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. + // results for + // list requests. If the number of results is larger thanmaxResults, 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"` - // SelfLink: [Output Only] Server-defined URL for this resource. + // SelfLink: Output only. [Output Only] Server-defined URL for this resource. SelfLink string `json:"selfLink,omitempty"` - // Unreachables: [Output Only] Unreachable resources. end_interface: - // MixerListResponseWithEtagBuilder + // Unreachables: Output only. [Output Only] Unreachable + // resources. + // end_interface: MixerListResponseWithEtagBuilder Unreachables []string `json:"unreachables,omitempty"` // Warning: [Output Only] Informational warning message. Warning *AutoscalerAggregatedListWarning `json:"warning,omitempty"` @@ -3466,76 +4434,98 @@ type AutoscalerAggregatedList struct { NullFields []string `json:"-"` } -func (s *AutoscalerAggregatedList) MarshalJSON() ([]byte, error) { +func (s AutoscalerAggregatedList) MarshalJSON() ([]byte, error) { type NoMethod AutoscalerAggregatedList - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } // AutoscalerAggregatedListWarning: [Output Only] Informational warning // message. type AutoscalerAggregatedListWarning 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. + // 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" - Warning about failed cleanup of transient changes made - // by a failed operation. + // by a failed + // operation. // "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was created. // "DEPRECATED_TYPE_USED" - When deploying and at least one of the resources - // has a type marked as deprecated + // has a type marked as + // deprecated // "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk that is // larger than image size. // "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the - // resources has a type marked as experimental + // resources has a type marked as + // experimental // "EXTERNAL_API_WARNING" - Warning that is present in an external api call // "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been - // overridden. Deprecated unused field. + // overridden. + // Deprecated unused field. // "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an injected // kernel, which is deprecated. // "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB" - A WEIGHTED_MAGLEV backend - // service is associated with a health check that is not of type - // HTTP/HTTPS/HTTP2. + // service is associated with a health check that is + // not of type HTTP/HTTPS/HTTP2. // "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a // exceedingly large number of resources // "LIST_OVERHEAD_QUOTA_EXCEED" - Resource can't be retrieved due to list - // overhead quota exceed which captures the amount of resources filtered out by + // overhead quota exceed + // which captures the amount of resources filtered out by // user-defined list filter. // "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is not - // assigned to an instance on the network. + // assigned to an instance on the + // network. // "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot ip // forward. // "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE" - The route's nextHopInstance - // URL refers to an instance that does not have an ipv6 interface on the same - // network as the route. + // URL refers to an instance that does not have an + // ipv6 interface on the same network as the route. // "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL refers to // an instance that does not exist. // "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance URL - // refers to an instance that is not on the same network as the route. + // refers to an instance that is not on the + // same network as the route. // "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not have a // status of RUNNING. // "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to continue - // the process despite the mentioned error. + // the process despite + // the mentioned error. // "NO_RESULTS_ON_PAGE" - No results are present on a particular list page. // "PARTIAL_SUCCESS" - Success is reported, but some results may be missing // due to errors + // "QUOTA_INFO_UNAVAILABLE" - Quota information is not available to client + // requests (e.g: + // regions.list). // "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource that - // requires a TOS they have not accepted. + // requires a TOS they have not + // accepted. // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a resource is // in use. // "RESOURCE_NOT_DELETED" - One or more of the resources set to auto-delete - // could not be deleted because they were in use. + // could not be deleted + // because they were in use. // "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is // ignored. // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in instance - // group manager is valid as such, but its application does not make a lot of - // sense, because it allows only single instance in instance group. + // group manager is valid as such, but + // its application does not make a lot of sense, because it allows only + // single instance in instance group. // "UNDECLARED_PROPERTIES" - When undeclared properties in the schema are // present // "UNREACHABLE" - A given scope cannot be reached. 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: [Output Only] Metadata about this warning in key: + // value format. For example: + // + // "data": [ + // { + // "key": "scope", + // "value": "zones/us-east1-d" + // } Data []*AutoscalerAggregatedListWarningData `json:"data,omitempty"` // Message: [Output Only] A human-readable description of the warning code. Message string `json:"message,omitempty"` @@ -3552,19 +4542,22 @@ type AutoscalerAggregatedListWarning struct { NullFields []string `json:"-"` } -func (s *AutoscalerAggregatedListWarning) MarshalJSON() ([]byte, error) { +func (s AutoscalerAggregatedListWarning) MarshalJSON() ([]byte, error) { type NoMethod AutoscalerAggregatedListWarning - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } type AutoscalerAggregatedListWarningData 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: [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"` @@ -3581,9 +4574,9 @@ type AutoscalerAggregatedListWarningData struct { NullFields []string `json:"-"` } -func (s *AutoscalerAggregatedListWarningData) MarshalJSON() ([]byte, error) { +func (s AutoscalerAggregatedListWarningData) MarshalJSON() ([]byte, error) { type NoMethod AutoscalerAggregatedListWarningData - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } // AutoscalerList: Contains a list of Autoscaler resources. @@ -3592,16 +4585,19 @@ type AutoscalerList struct { Id string `json:"id,omitempty"` // Items: A list of Autoscaler resources. Items []*Autoscaler `json:"items,omitempty"` - // Kind: [Output Only] Type of resource. Always compute#autoscalerList for - // lists of autoscalers. + // Kind: Output only. [Output Only] Type of resource. Always + // compute#autoscalerList + // for lists of autoscalers. 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. + // results for + // list requests. If the number of results is larger thanmaxResults, 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"` - // SelfLink: [Output Only] Server-defined URL for this resource. + // SelfLink: Output only. [Output Only] Server-defined URL for this resource. SelfLink string `json:"selfLink,omitempty"` // Warning: [Output Only] Informational warning message. Warning *AutoscalerListWarning `json:"warning,omitempty"` @@ -3621,75 +4617,97 @@ type AutoscalerList struct { NullFields []string `json:"-"` } -func (s *AutoscalerList) MarshalJSON() ([]byte, error) { +func (s AutoscalerList) MarshalJSON() ([]byte, error) { type NoMethod AutoscalerList - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } // AutoscalerListWarning: [Output Only] Informational warning message. type AutoscalerListWarning 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. + // 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" - Warning about failed cleanup of transient changes made - // by a failed operation. + // by a failed + // operation. // "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was created. // "DEPRECATED_TYPE_USED" - When deploying and at least one of the resources - // has a type marked as deprecated + // has a type marked as + // deprecated // "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk that is // larger than image size. // "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the - // resources has a type marked as experimental + // resources has a type marked as + // experimental // "EXTERNAL_API_WARNING" - Warning that is present in an external api call // "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been - // overridden. Deprecated unused field. + // overridden. + // Deprecated unused field. // "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an injected // kernel, which is deprecated. // "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB" - A WEIGHTED_MAGLEV backend - // service is associated with a health check that is not of type - // HTTP/HTTPS/HTTP2. + // service is associated with a health check that is + // not of type HTTP/HTTPS/HTTP2. // "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a // exceedingly large number of resources // "LIST_OVERHEAD_QUOTA_EXCEED" - Resource can't be retrieved due to list - // overhead quota exceed which captures the amount of resources filtered out by + // overhead quota exceed + // which captures the amount of resources filtered out by // user-defined list filter. // "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is not - // assigned to an instance on the network. + // assigned to an instance on the + // network. // "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot ip // forward. // "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE" - The route's nextHopInstance - // URL refers to an instance that does not have an ipv6 interface on the same - // network as the route. + // URL refers to an instance that does not have an + // ipv6 interface on the same network as the route. // "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL refers to // an instance that does not exist. // "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance URL - // refers to an instance that is not on the same network as the route. + // refers to an instance that is not on the + // same network as the route. // "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not have a // status of RUNNING. // "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to continue - // the process despite the mentioned error. + // the process despite + // the mentioned error. // "NO_RESULTS_ON_PAGE" - No results are present on a particular list page. // "PARTIAL_SUCCESS" - Success is reported, but some results may be missing // due to errors + // "QUOTA_INFO_UNAVAILABLE" - Quota information is not available to client + // requests (e.g: + // regions.list). // "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource that - // requires a TOS they have not accepted. + // requires a TOS they have not + // accepted. // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a resource is // in use. // "RESOURCE_NOT_DELETED" - One or more of the resources set to auto-delete - // could not be deleted because they were in use. + // could not be deleted + // because they were in use. // "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is // ignored. // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in instance - // group manager is valid as such, but its application does not make a lot of - // sense, because it allows only single instance in instance group. + // group manager is valid as such, but + // its application does not make a lot of sense, because it allows only + // single instance in instance group. // "UNDECLARED_PROPERTIES" - When undeclared properties in the schema are // present // "UNREACHABLE" - A given scope cannot be reached. 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: [Output Only] Metadata about this warning in key: + // value format. For example: + // + // "data": [ + // { + // "key": "scope", + // "value": "zones/us-east1-d" + // } Data []*AutoscalerListWarningData `json:"data,omitempty"` // Message: [Output Only] A human-readable description of the warning code. Message string `json:"message,omitempty"` @@ -3706,19 +4724,22 @@ type AutoscalerListWarning struct { NullFields []string `json:"-"` } -func (s *AutoscalerListWarning) MarshalJSON() ([]byte, error) { +func (s AutoscalerListWarning) MarshalJSON() ([]byte, error) { type NoMethod AutoscalerListWarning - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } type AutoscalerListWarningData 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: [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"` @@ -3735,48 +4756,73 @@ type AutoscalerListWarningData struct { NullFields []string `json:"-"` } -func (s *AutoscalerListWarningData) MarshalJSON() ([]byte, error) { +func (s AutoscalerListWarningData) MarshalJSON() ([]byte, error) { type NoMethod AutoscalerListWarningData - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } type AutoscalerStatusDetails struct { // Message: The status message. Message string `json:"message,omitempty"` // Type: The type of error, warning, or notice returned. Current set of - // possible values: - ALL_INSTANCES_UNHEALTHY (WARNING): All instances in the - // instance group are unhealthy (not in RUNNING state). - - // BACKEND_SERVICE_DOES_NOT_EXIST (ERROR): There is no backend service attached - // to the instance group. - CAPPED_AT_MAX_NUM_REPLICAS (WARNING): Autoscaler - // recommends a size greater than maxNumReplicas. - - // CUSTOM_METRIC_DATA_POINTS_TOO_SPARSE (WARNING): The custom metric samples - // are not exported often enough to be a credible base for autoscaling. - - // CUSTOM_METRIC_INVALID (ERROR): The custom metric that was specified does not - // exist or does not have the necessary labels. - MIN_EQUALS_MAX (WARNING): The - // minNumReplicas is equal to maxNumReplicas. This means the autoscaler cannot - // add or remove instances from the instance group. - - // MISSING_CUSTOM_METRIC_DATA_POINTS (WARNING): The autoscaler did not receive - // any data from the custom metric configured for autoscaling. - - // MISSING_LOAD_BALANCING_DATA_POINTS (WARNING): The autoscaler is configured - // to scale based on a load balancing signal but the instance group has not - // received any requests from the load balancer. - MODE_OFF (WARNING): - // Autoscaling is turned off. The number of instances in the group won't change - // automatically. The autoscaling configuration is preserved. - MODE_ONLY_UP - // (WARNING): Autoscaling is in the "Autoscale only out" mode. The autoscaler - // can add instances but not remove any. - MORE_THAN_ONE_BACKEND_SERVICE - // (ERROR): The instance group cannot be autoscaled because it has more than - // one backend service attached to it. - NOT_ENOUGH_QUOTA_AVAILABLE (ERROR): - // There is insufficient quota for the necessary resources, such as CPU or - // number of instances. - REGION_RESOURCE_STOCKOUT (ERROR): Shown only for - // regional autoscalers: there is a resource stockout in the chosen region. - - // SCALING_TARGET_DOES_NOT_EXIST (ERROR): The target to be scaled does not - // exist. - UNSUPPORTED_MAX_RATE_LOAD_BALANCING_CONFIGURATION (ERROR): - // Autoscaling does not work with an HTTP/S load balancer that has been - // configured for maxRate. - ZONE_RESOURCE_STOCKOUT (ERROR): For zonal - // autoscalers: there is a resource stockout in the chosen zone. For regional - // autoscalers: in at least one of the zones you're using there is a resource - // stockout. New values might be added in the future. Some of the values might - // not be available in all API versions. + // possible + // values: + // + // - ALL_INSTANCES_UNHEALTHY (WARNING): + // All instances in the instance group are unhealthy (not in RUNNING + // state). + // - BACKEND_SERVICE_DOES_NOT_EXIST (ERROR): + // There is no backend service attached to the instance group. + // - CAPPED_AT_MAX_NUM_REPLICAS (WARNING): + // Autoscaler recommends a size greater than maxNumReplicas. + // - CUSTOM_METRIC_DATA_POINTS_TOO_SPARSE (WARNING): + // The custom metric samples are not exported often enough to be + // a credible base for autoscaling. + // - CUSTOM_METRIC_INVALID (ERROR): + // The custom metric that was specified does not exist or does not have + // the necessary labels. + // - MIN_EQUALS_MAX (WARNING): + // The minNumReplicas is equal to maxNumReplicas. This means the + // autoscaler cannot add or remove instances from the instance group. + // - MISSING_CUSTOM_METRIC_DATA_POINTS (WARNING): + // The autoscaler did not receive any data from the custom metric + // configured for autoscaling. + // - MISSING_LOAD_BALANCING_DATA_POINTS (WARNING): + // The autoscaler is configured to scale based on a load balancing signal + // but the instance group has not received any requests from the load + // balancer. + // - MODE_OFF (WARNING): + // Autoscaling is turned off. The number of instances in the group won't + // change automatically. The autoscaling configuration is preserved. + // - MODE_ONLY_UP (WARNING): + // Autoscaling is in the "Autoscale only out" mode. The autoscaler can + // add + // instances but not remove any. + // - MORE_THAN_ONE_BACKEND_SERVICE (ERROR): + // The instance group cannot be autoscaled because it has more than one + // backend service attached to it. + // - NOT_ENOUGH_QUOTA_AVAILABLE (ERROR): + // There is insufficient quota for the necessary resources, such as CPU + // or + // number of instances. + // - REGION_RESOURCE_STOCKOUT (ERROR): + // Shown only for regional autoscalers: there is a resource stockout in + // the chosen region. + // - SCALING_TARGET_DOES_NOT_EXIST (ERROR): + // The target to be scaled does not exist. + // - UNSUPPORTED_MAX_RATE_LOAD_BALANCING_CONFIGURATION + // (ERROR): Autoscaling does not work with an HTTP/S load balancer that + // has been configured for maxRate. + // - ZONE_RESOURCE_STOCKOUT (ERROR): + // For zonal autoscalers: there is a resource stockout in the chosen + // zone. + // For regional autoscalers: in at least one of the zones you're using + // there is a resource stockout. + // + // + // New values might be added in the future. Some of the values might not + // be + // available in all API versions. // // Possible values: // "ALL_INSTANCES_UNHEALTHY" - All instances in the instance group are @@ -3786,42 +4832,58 @@ type AutoscalerStatusDetails struct { // "CAPPED_AT_MAX_NUM_REPLICAS" - Autoscaler recommends a size greater than // maxNumReplicas. // "CUSTOM_METRIC_DATA_POINTS_TOO_SPARSE" - The custom metric samples are not - // exported often enough to be a credible base for autoscaling. + // exported often enough to be a credible + // base for autoscaling. // "CUSTOM_METRIC_INVALID" - The custom metric that was specified does not - // exist or does not have the necessary labels. + // exist or does not have the + // necessary labels. // "MIN_EQUALS_MAX" - The minNumReplicas is equal to maxNumReplicas. This - // means the autoscaler cannot add or remove instances from the instance group. + // means the autoscaler + // cannot add or remove instances from the instance group. // "MISSING_CUSTOM_METRIC_DATA_POINTS" - The autoscaler did not receive any - // data from the custom metric configured for autoscaling. + // data from the custom metric configured + // for autoscaling. // "MISSING_LOAD_BALANCING_DATA_POINTS" - The autoscaler is configured to - // scale based on a load balancing signal but the instance group has not - // received any requests from the load balancer. + // scale based on a load balancing signal + // but the instance group has not received any requests from the load + // balancer. // "MODE_OFF" - Autoscaling is turned off. The number of instances in the - // group won't change automatically. The autoscaling configuration is - // preserved. + // group won't + // change automatically. The autoscaling configuration is preserved. // "MODE_ONLY_SCALE_OUT" - Autoscaling is in the "Autoscale only scale out" - // mode. Instances in the group will be only added. - // "MODE_ONLY_UP" - Autoscaling is in the "Autoscale only out" mode. + // mode. // Instances in the group will be only added. + // "MODE_ONLY_UP" - Autoscaling is in the "Autoscale only out" mode. + // Instances in the group + // will be only added. // "MORE_THAN_ONE_BACKEND_SERVICE" - The instance group cannot be autoscaled - // because it has more than one backend service attached to it. + // because it has more than one + // backend service attached to it. // "NOT_ENOUGH_QUOTA_AVAILABLE" - There is insufficient quota for the - // necessary resources, such as CPU or number of instances. + // necessary resources, such as CPU or + // number of instances. // "REGION_RESOURCE_STOCKOUT" - Showed only for regional autoscalers: there - // is a resource stockout in the chosen region. + // is a resource stockout in + // the chosen region. // "SCALING_TARGET_DOES_NOT_EXIST" - The target to be scaled does not exist. // "SCHEDULED_INSTANCES_GREATER_THAN_AUTOSCALER_MAX" - For some scaling - // schedules minRequiredReplicas is greater than maxNumReplicas. Autoscaler - // always recommends at most maxNumReplicas instances. + // schedules minRequiredReplicas is greater than + // maxNumReplicas. Autoscaler always recommends at most + // maxNumReplicas + // instances. // "SCHEDULED_INSTANCES_LESS_THAN_AUTOSCALER_MIN" - For some scaling - // schedules minRequiredReplicas is less than minNumReplicas. Autoscaler always - // recommends at least minNumReplicas instances. + // schedules minRequiredReplicas is less than + // minNumReplicas. Autoscaler always recommends at least + // minNumReplicas + // instances. // "UNKNOWN" // "UNSUPPORTED_MAX_RATE_LOAD_BALANCING_CONFIGURATION" - Autoscaling does not - // work with an HTTP/S load balancer that has been configured for maxRate. + // work with an HTTP/S load balancer that has been + // configured for maxRate. // "ZONE_RESOURCE_STOCKOUT" - For zonal autoscalers: there is a resource - // stockout in the chosen zone. For regional autoscalers: in at least one of - // the zones you're using there is a resource stockout. + // stockout in the chosen zone. + // For regional autoscalers: in at least one of the zones you're using there + // is a resource stockout. Type string `json:"type,omitempty"` // ForceSendFields is a list of field names (e.g. "Message") to unconditionally // include in API requests. By default, fields with empty or default values are @@ -3836,16 +4898,17 @@ type AutoscalerStatusDetails struct { NullFields []string `json:"-"` } -func (s *AutoscalerStatusDetails) MarshalJSON() ([]byte, error) { +func (s AutoscalerStatusDetails) MarshalJSON() ([]byte, error) { type NoMethod AutoscalerStatusDetails - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } type AutoscalersScopedList struct { // Autoscalers: [Output Only] A list of autoscalers contained in this scope. Autoscalers []*Autoscaler `json:"autoscalers,omitempty"` // Warning: [Output Only] Informational warning which replaces the list of - // autoscalers when the list is empty. + // autoscalers + // when the list is empty. Warning *AutoscalersScopedListWarning `json:"warning,omitempty"` // ForceSendFields is a list of field names (e.g. "Autoscalers") to // unconditionally include in API requests. By default, fields with empty or @@ -3860,76 +4923,99 @@ type AutoscalersScopedList struct { NullFields []string `json:"-"` } -func (s *AutoscalersScopedList) MarshalJSON() ([]byte, error) { +func (s AutoscalersScopedList) MarshalJSON() ([]byte, error) { type NoMethod AutoscalersScopedList - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } // AutoscalersScopedListWarning: [Output Only] Informational warning which -// replaces the list of autoscalers when the list is empty. +// replaces the list of autoscalers +// when the list is empty. type AutoscalersScopedListWarning 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. + // 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" - Warning about failed cleanup of transient changes made - // by a failed operation. + // by a failed + // operation. // "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was created. // "DEPRECATED_TYPE_USED" - When deploying and at least one of the resources - // has a type marked as deprecated + // has a type marked as + // deprecated // "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk that is // larger than image size. // "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the - // resources has a type marked as experimental + // resources has a type marked as + // experimental // "EXTERNAL_API_WARNING" - Warning that is present in an external api call // "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been - // overridden. Deprecated unused field. + // overridden. + // Deprecated unused field. // "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an injected // kernel, which is deprecated. // "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB" - A WEIGHTED_MAGLEV backend - // service is associated with a health check that is not of type - // HTTP/HTTPS/HTTP2. + // service is associated with a health check that is + // not of type HTTP/HTTPS/HTTP2. // "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a // exceedingly large number of resources // "LIST_OVERHEAD_QUOTA_EXCEED" - Resource can't be retrieved due to list - // overhead quota exceed which captures the amount of resources filtered out by + // overhead quota exceed + // which captures the amount of resources filtered out by // user-defined list filter. // "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is not - // assigned to an instance on the network. + // assigned to an instance on the + // network. // "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot ip // forward. // "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE" - The route's nextHopInstance - // URL refers to an instance that does not have an ipv6 interface on the same - // network as the route. + // URL refers to an instance that does not have an + // ipv6 interface on the same network as the route. // "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL refers to // an instance that does not exist. // "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance URL - // refers to an instance that is not on the same network as the route. + // refers to an instance that is not on the + // same network as the route. // "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not have a // status of RUNNING. // "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to continue - // the process despite the mentioned error. + // the process despite + // the mentioned error. // "NO_RESULTS_ON_PAGE" - No results are present on a particular list page. // "PARTIAL_SUCCESS" - Success is reported, but some results may be missing // due to errors + // "QUOTA_INFO_UNAVAILABLE" - Quota information is not available to client + // requests (e.g: + // regions.list). // "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource that - // requires a TOS they have not accepted. + // requires a TOS they have not + // accepted. // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a resource is // in use. // "RESOURCE_NOT_DELETED" - One or more of the resources set to auto-delete - // could not be deleted because they were in use. + // could not be deleted + // because they were in use. // "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is // ignored. // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in instance - // group manager is valid as such, but its application does not make a lot of - // sense, because it allows only single instance in instance group. + // group manager is valid as such, but + // its application does not make a lot of sense, because it allows only + // single instance in instance group. // "UNDECLARED_PROPERTIES" - When undeclared properties in the schema are // present // "UNREACHABLE" - A given scope cannot be reached. 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: [Output Only] Metadata about this warning in key: + // value format. For example: + // + // "data": [ + // { + // "key": "scope", + // "value": "zones/us-east1-d" + // } Data []*AutoscalersScopedListWarningData `json:"data,omitempty"` // Message: [Output Only] A human-readable description of the warning code. Message string `json:"message,omitempty"` @@ -3946,19 +5032,22 @@ type AutoscalersScopedListWarning struct { NullFields []string `json:"-"` } -func (s *AutoscalersScopedListWarning) MarshalJSON() ([]byte, error) { +func (s AutoscalersScopedListWarning) MarshalJSON() ([]byte, error) { type NoMethod AutoscalersScopedListWarning - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } type AutoscalersScopedListWarningData 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: [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"` @@ -3975,27 +5064,37 @@ type AutoscalersScopedListWarningData struct { NullFields []string `json:"-"` } -func (s *AutoscalersScopedListWarningData) MarshalJSON() ([]byte, error) { +func (s AutoscalersScopedListWarningData) MarshalJSON() ([]byte, error) { type NoMethod AutoscalersScopedListWarningData - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } // AutoscalingPolicy: Cloud Autoscaler policy. type AutoscalingPolicy struct { // CoolDownPeriodSec: The number of seconds that your application takes to - // initialize on a VM instance. This is referred to as the initialization - // period (/compute/docs/autoscaler#cool_down_period). Specifying an accurate - // initialization period improves autoscaler decisions. For example, when - // scaling out, the autoscaler ignores data from VMs that are still - // initializing because those VMs might not yet represent normal usage of your - // application. The default initialization period is 60 seconds. Initialization - // periods might vary because of numerous factors. We recommend that you test - // how long your application takes to initialize. To do this, create a VM and - // time your application's startup process. + // initialize on a VM + // instance. This is referred to as the + // initialization period + // (/compute/docs/autoscaler#cool_down_period). + // Specifying an accurate initialization period improves + // autoscaler decisions. For example, when scaling out, the autoscaler + // ignores + // data from VMs that are still initializing because those VMs might not + // yet + // represent normal usage of your application. The default + // initialization + // period is 60 seconds. + // + // Initialization periods might vary because of numerous + // factors. We recommend that you test how long your application takes + // to + // initialize. To do this, create a VM and time your application's + // startup + // process. CoolDownPeriodSec int64 `json:"coolDownPeriodSec,omitempty"` // CpuUtilization: Defines the CPU utilization policy that allows the - // autoscaler to scale based on the average CPU utilization of a managed - // instance group. + // autoscaler to scale + // based on the average CPU utilization of a managed instance group. CpuUtilization *AutoscalingPolicyCpuUtilization `json:"cpuUtilization,omitempty"` // CustomMetricUtilizations: Configuration parameters of autoscaling based on a // custom metric. @@ -4004,36 +5103,63 @@ type AutoscalingPolicy struct { // load balancer. LoadBalancingUtilization *AutoscalingPolicyLoadBalancingUtilization `json:"loadBalancingUtilization,omitempty"` // MaxNumReplicas: The maximum number of instances that the autoscaler can - // scale out to. This is required when creating or updating an autoscaler. The - // maximum number of replicas must not be lower than minimal number of - // replicas. + // scale out to. This + // is required when creating or updating an autoscaler. The maximum number + // of replicas must not be lower than minimal number of replicas. MaxNumReplicas int64 `json:"maxNumReplicas,omitempty"` // MinNumReplicas: The minimum number of replicas that the autoscaler can scale - // in to. This cannot be less than 0. If not provided, autoscaler chooses a + // in to. + // This cannot be less than 0. If not provided, autoscaler chooses a // default value depending on maximum number of instances allowed. MinNumReplicas int64 `json:"minNumReplicas,omitempty"` - // Mode: Defines the operating mode for this policy. The following modes are - // available: - OFF: Disables the autoscaler but maintains its configuration. - - // ONLY_SCALE_OUT: Restricts the autoscaler to add VM instances only. - ON: - // Enables all autoscaler activities according to its policy. For more - // information, see "Turning off or restricting an autoscaler" + // Mode: Defines the operating mode for this policy. + // The following modes are available: + // + // - OFF: Disables the autoscaler but maintains its + // configuration. + // - ONLY_SCALE_OUT: Restricts the autoscaler to add + // VM instances only. + // - ON: Enables all autoscaler activities according to its + // policy. + // + // + // For more information, see + // "Turning off or restricting an autoscaler" // // Possible values: - // "OFF" - Do not automatically scale the MIG in or out. The recommended_size - // field contains the size of MIG that would be set if the actuation mode was - // enabled. + // "OFF" - Do not automatically scale the MIG in or out. + // The recommended_size field contains the size of MIG that would be set if + // the actuation mode was enabled. // "ON" - Automatically scale the MIG in and out according to the policy. // "ONLY_SCALE_OUT" - Automatically create VMs according to the policy, but - // do not scale the MIG in. + // do not scale + // the MIG in. // "ONLY_UP" - Automatically create VMs according to the policy, but do not - // scale the MIG in. + // scale + // the MIG in. + // It's recommended to use ONLY_SCALE_OUT instead of ONLY_UP. Mode string `json:"mode,omitempty"` ScaleInControl *AutoscalingPolicyScaleInControl `json:"scaleInControl,omitempty"` // ScalingSchedules: Scaling schedules defined for an autoscaler. Multiple - // schedules can be set on an autoscaler, and they can overlap. During - // overlapping periods the greatest min_required_replicas of all scaling - // schedules is applied. Up to 128 scaling schedules are allowed. + // schedules + // can be set on an autoscaler, and they can overlap. During + // overlapping + // periods the greatest min_required_replicas of all scaling schedules + // is + // applied. Up to 128 scaling schedules are allowed. ScalingSchedules map[string]AutoscalingPolicyScalingSchedule `json:"scalingSchedules,omitempty"` + // StabilizationPeriodSec: The number of seconds that autoscaler waits for load + // stabilization before + // making scale-in decisions. This is referred to as the + // stabilization period (/compute/docs/autoscaler#stabilization_period). + // This might appear as a delay in scaling in but it is an important + // mechanism + // for your application to not have fluctuating size due to short term + // load + // fluctuations. + // + // The default stabilization period is 600 seconds. + StabilizationPeriodSec int64 `json:"stabilizationPeriodSec,omitempty"` // ForceSendFields is a list of field names (e.g. "CoolDownPeriodSec") to // unconditionally include in API requests. By default, fields with empty or // default values are omitted from API requests. See @@ -4047,35 +5173,47 @@ type AutoscalingPolicy struct { NullFields []string `json:"-"` } -func (s *AutoscalingPolicy) MarshalJSON() ([]byte, error) { +func (s AutoscalingPolicy) MarshalJSON() ([]byte, error) { type NoMethod AutoscalingPolicy - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } // AutoscalingPolicyCpuUtilization: CPU utilization policy. type AutoscalingPolicyCpuUtilization struct { // PredictiveMethod: Indicates whether predictive autoscaling based on CPU - // metric is enabled. Valid values are: * NONE (default). No predictive method - // is used. The autoscaler scales the group to meet current demand based on - // real-time metrics. * OPTIMIZE_AVAILABILITY. Predictive autoscaling improves - // availability by monitoring daily and weekly load patterns and scaling out - // ahead of anticipated demand. + // metric is enabled. + // Valid values are: + // + // * NONE (default). No predictive method is used. The autoscaler scales + // the + // group to meet current demand based on real-time metrics. + // * OPTIMIZE_AVAILABILITY. Predictive autoscaling improves availability + // by + // monitoring daily and weekly load patterns and scaling out ahead + // of + // anticipated demand. // // Possible values: // "NONE" - No predictive method is used. The autoscaler scales the group to - // meet current demand based on real-time metrics + // meet + // current demand based on real-time metrics // "OPTIMIZE_AVAILABILITY" - Predictive autoscaling improves availability by - // monitoring daily and weekly load patterns and scaling out ahead of - // anticipated demand. + // monitoring daily and + // weekly load patterns and scaling out ahead of anticipated demand. PredictiveMethod string `json:"predictiveMethod,omitempty"` // UtilizationTarget: The target CPU utilization that the autoscaler maintains. - // Must be a float value in the range (0, 1]. If not specified, the default is - // 0.6. If the CPU level is below the target utilization, the autoscaler scales - // in the number of instances until it reaches the minimum number of instances - // you specified or until the average CPU of your instances reaches the target - // utilization. If the average CPU is above the target utilization, the - // autoscaler scales out until it reaches the maximum number of instances you - // specified or until the average utilization reaches the target utilization. + // Must be + // a float value in the range (0, 1]. If not specified, the default is0.6. + // + // If the CPU level is below the target utilization, the autoscaler scales + // in the number of instances until it reaches the minimum number of + // instances you specified or until the average CPU of your instances + // reaches the target utilization. + // + // If the average CPU is above the target utilization, the autoscaler + // scales out until it reaches the maximum number of instances you + // specified or until the average utilization reaches the target + // utilization. UtilizationTarget float64 `json:"utilizationTarget,omitempty"` // ForceSendFields is a list of field names (e.g. "PredictiveMethod") to // unconditionally include in API requests. By default, fields with empty or @@ -4090,9 +5228,9 @@ type AutoscalingPolicyCpuUtilization struct { NullFields []string `json:"-"` } -func (s *AutoscalingPolicyCpuUtilization) MarshalJSON() ([]byte, error) { +func (s AutoscalingPolicyCpuUtilization) MarshalJSON() ([]byte, error) { type NoMethod AutoscalingPolicyCpuUtilization - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } func (s *AutoscalingPolicyCpuUtilization) UnmarshalJSON(data []byte) error { @@ -4111,65 +5249,103 @@ func (s *AutoscalingPolicyCpuUtilization) UnmarshalJSON(data []byte) error { // AutoscalingPolicyCustomMetricUtilization: Custom utilization metric policy. type AutoscalingPolicyCustomMetricUtilization struct { - // Filter: A filter string, compatible with a Stackdriver Monitoring filter - // string for TimeSeries.list API call. This filter is used to select a - // specific TimeSeries for the purpose of autoscaling and to determine whether - // the metric is exporting per-instance or per-group data. For the filter to be - // valid for autoscaling purposes, the following rules apply: - You can only - // use the AND operator for joining selectors. - You can only use direct - // equality comparison operator (=) without any functions for each selector. - - // You can specify the metric in both the filter string and in the metric - // field. However, if specified in both places, the metric must be identical. - - // The monitored resource type determines what kind of values are expected for - // the metric. If it is a gce_instance, the autoscaler expects the metric to - // include a separate TimeSeries for each instance in a group. In such a case, - // you cannot filter on resource labels. If the resource type is any other - // value, the autoscaler expects this metric to contain values that apply to - // the entire autoscaled instance group and resource label filtering can be - // performed to point autoscaler at the correct TimeSeries to scale upon. This - // is called a *per-group metric* for the purpose of autoscaling. If not - // specified, the type defaults to gce_instance. Try to provide a filter that - // is selective enough to pick just one TimeSeries for the autoscaled group or - // for each of the instances (if you are using gce_instance resource type). If - // multiple TimeSeries are returned upon the query execution, the autoscaler - // will sum their respective values to obtain its scaling value. + // Filter: A filter string, compatible with a Stackdriver Monitoringfilter + // string forTimeSeries.list API call. This filter is + // used to select a specific TimeSeries for the purpose of autoscaling and + // to determine whether the metric is exporting per-instance or + // per-group data. + // + // For the filter to be valid for autoscaling purposes, the following + // rules + // apply: + // + // + // - You can only use the AND operator for joining + // selectors. + // - You can only use direct equality comparison operator + // (=) without any functions for each selector. + // - You can specify the metric in both the filter string and in the + // metric field. However, if specified in both places, the metric must + // be identical. + // - The monitored resource type + // determines what kind of values are expected for the metric. If it is + // a gce_instance, the autoscaler expects the metric to + // include a separate TimeSeries for each instance in a group. In such + // a + // case, you cannot filter on resource labels. + // + // + // If the resource type is any other value, the autoscaler expects + // this metric to contain values that apply to the entire autoscaled + // instance group and resource label filtering can be performed to + // point autoscaler at the correct TimeSeries to scale upon. This is + // called a *per-group metric* for the purpose of autoscaling. + // + // If not specified, the type defaults to + // gce_instance. + // + // + // + // Try to provide a filter that is selective enough to pick just one + // TimeSeries for the autoscaled group or for each of the instances (if you + // are using gce_instance resource type). If multiple + // TimeSeries are returned upon the query execution, the autoscaler will + // sum + // their respective values to obtain its scaling value. Filter string `json:"filter,omitempty"` // Metric: The identifier (type) of the Stackdriver Monitoring metric. The - // metric cannot have negative values. The metric must have a value type of - // INT64 or DOUBLE. + // metric + // cannot have negative values. + // + // The metric must have a value type of INT64 orDOUBLE. Metric string `json:"metric,omitempty"` // SingleInstanceAssignment: If scaling is based on a per-group metric value - // that represents the total amount of work to be done or resource usage, set - // this value to an amount assigned for a single instance of the scaled group. - // Autoscaler keeps the number of instances proportional to the value of this - // metric. The metric itself does not change value due to group resizing. A - // good metric to use with the target is for example - // pubsub.googleapis.com/subscription/num_undelivered_messages or a custom - // metric exporting the total number of requests coming to your instances. A - // bad example would be a metric exporting an average or median latency, since - // this value can't include a chunk assignable to a single instance, it could - // be better used with utilization_target instead. + // that represents the + // total amount of work to be done or resource usage, set this value to + // an + // amount assigned for a single instance of the scaled group. Autoscaler + // keeps the number of instances proportional to the value of this + // metric. The metric itself does not change value due to group + // resizing. + // + // A good metric to use with the target is for + // examplepubsub.googleapis.com/subscription/num_undelivered_messages + // or a custom metric exporting the total number of requests coming to + // your instances. + // + // A bad example would be a metric exporting an average or median + // latency, + // since this value can't include a chunk assignable to a single instance, + // it could be better used with utilization_target instead. SingleInstanceAssignment float64 `json:"singleInstanceAssignment,omitempty"` // UtilizationTarget: The target value of the metric that autoscaler maintains. - // This must be a positive value. A utilization metric scales number of virtual - // machines handling requests to increase or decrease proportionally to the - // metric. For example, a good metric to use as a utilization_target is - // https://www.googleapis.com/compute/v1/instance/network/received_bytes_count. - // The autoscaler works to keep this value constant for each of the instances. + // This + // must be a positive value. A utilization metric scales number of + // virtual machines handling requests to increase or decrease + // proportionally to the metric. + // + // For example, a good metric to use as a utilization_target + // ishttps://www.googleapis.com/compute/v1/instance/network/received_bytes_count + // . + // The autoscaler works to keep this value constant for each of the + // instances. UtilizationTarget float64 `json:"utilizationTarget,omitempty"` // UtilizationTargetType: Defines how target utilization value is expressed for - // a Stackdriver Monitoring metric. Either GAUGE, DELTA_PER_SECOND, or - // DELTA_PER_MINUTE. + // a Stackdriver + // Monitoring metric. Either GAUGE,DELTA_PER_SECOND, or DELTA_PER_MINUTE. // // Possible values: // "DELTA_PER_MINUTE" - Sets the utilization target value for a cumulative or - // delta metric, expressed as the rate of growth per minute. + // delta metric, + // expressed as the rate of growth per minute. // "DELTA_PER_SECOND" - Sets the utilization target value for a cumulative or - // delta metric, expressed as the rate of growth per second. + // delta metric, + // expressed as the rate of growth per second. // "GAUGE" - Sets the utilization target value for a gauge metric. The - // autoscaler will collect the average utilization of the virtual machines from - // the last couple of minutes, and compare the value to the utilization target - // value to perform autoscaling. + // autoscaler + // will collect the average utilization of the virtual machines from the + // last couple of minutes, and compare the value to the utilization + // target value to perform autoscaling. UtilizationTargetType string `json:"utilizationTargetType,omitempty"` // ForceSendFields is a list of field names (e.g. "Filter") to unconditionally // include in API requests. By default, fields with empty or default values are @@ -4184,9 +5360,9 @@ type AutoscalingPolicyCustomMetricUtilization struct { NullFields []string `json:"-"` } -func (s *AutoscalingPolicyCustomMetricUtilization) MarshalJSON() ([]byte, error) { +func (s AutoscalingPolicyCustomMetricUtilization) MarshalJSON() ([]byte, error) { type NoMethod AutoscalingPolicyCustomMetricUtilization - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } func (s *AutoscalingPolicyCustomMetricUtilization) UnmarshalJSON(data []byte) error { @@ -4209,8 +5385,10 @@ func (s *AutoscalingPolicyCustomMetricUtilization) UnmarshalJSON(data []byte) er // autoscaling based on load balancing. type AutoscalingPolicyLoadBalancingUtilization struct { // UtilizationTarget: Fraction of backend capacity utilization (set in HTTP(S) - // load balancing configuration) that the autoscaler maintains. Must be a - // positive float value. If not defined, the default is 0.8. + // load balancing + // configuration) that the autoscaler maintains. Must be a positive + // float + // value. If not defined, the default is 0.8. UtilizationTarget float64 `json:"utilizationTarget,omitempty"` // ForceSendFields is a list of field names (e.g. "UtilizationTarget") to // unconditionally include in API requests. By default, fields with empty or @@ -4225,9 +5403,9 @@ type AutoscalingPolicyLoadBalancingUtilization struct { NullFields []string `json:"-"` } -func (s *AutoscalingPolicyLoadBalancingUtilization) MarshalJSON() ([]byte, error) { +func (s AutoscalingPolicyLoadBalancingUtilization) MarshalJSON() ([]byte, error) { type NoMethod AutoscalingPolicyLoadBalancingUtilization - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } func (s *AutoscalingPolicyLoadBalancingUtilization) UnmarshalJSON(data []byte) error { @@ -4245,16 +5423,21 @@ func (s *AutoscalingPolicyLoadBalancingUtilization) UnmarshalJSON(data []byte) e } // AutoscalingPolicyScaleInControl: Configuration that allows for slower scale -// in so that even if Autoscaler recommends an abrupt scale in of a MIG, it -// will be throttled as specified by the parameters below. +// in so that even if Autoscaler +// recommends an abrupt scale in of a MIG, it will be throttled as specified +// by the parameters below. type AutoscalingPolicyScaleInControl struct { // MaxScaledInReplicas: Maximum allowed number (or %) of VMs that can be - // deducted from the peak recommendation during the window autoscaler looks at - // when computing recommendations. Possibly all these VMs can be deleted at - // once so user service needs to be prepared to lose that many VMs in one step. + // deducted from the peak + // recommendation during the window autoscaler looks at when + // computing + // recommendations. Possibly all these VMs can be deleted at once so + // user + // service needs to be prepared to lose that many VMs in one step. MaxScaledInReplicas *FixedOrPercent `json:"maxScaledInReplicas,omitempty"` // TimeWindowSec: How far back autoscaling looks when computing recommendations - // to include directives regarding slower scale in, as described above. + // to + // include directives regarding slower scale in, as described above. TimeWindowSec int64 `json:"timeWindowSec,omitempty"` // ForceSendFields is a list of field names (e.g. "MaxScaledInReplicas") to // unconditionally include in API requests. By default, fields with empty or @@ -4269,44 +5452,51 @@ type AutoscalingPolicyScaleInControl struct { NullFields []string `json:"-"` } -func (s *AutoscalingPolicyScaleInControl) MarshalJSON() ([]byte, error) { +func (s AutoscalingPolicyScaleInControl) MarshalJSON() ([]byte, error) { type NoMethod AutoscalingPolicyScaleInControl - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } // AutoscalingPolicyScalingSchedule: Scaling based on user-defined schedule. -// The message describes a single scaling schedule. A scaling schedule changes -// the minimum number of VM instances an autoscaler can recommend, which can -// trigger scaling out. +// The message describes a single +// scaling schedule. A scaling schedule changes the minimum number of +// VM +// instances an autoscaler can recommend, which can trigger scaling out. type AutoscalingPolicyScalingSchedule struct { // Description: A description of a scaling schedule. Description string `json:"description,omitempty"` // Disabled: A boolean value that specifies whether a scaling schedule can - // influence autoscaler recommendations. If set to true, then a scaling - // schedule has no effect. This field is optional, and its value is false by - // default. + // influence + // autoscaler recommendations. If set to true, then a scaling schedule has + // no effect. This field is optional, and its value is false by default. Disabled bool `json:"disabled,omitempty"` - // DurationSec: The duration of time intervals, in seconds, for which this - // scaling schedule is to run. The minimum allowed value is 300. This field is - // required. + // DurationSec: The duration of time intervals, in seconds, for which + // this + // scaling schedule is to run. The minimum allowed value is 300. + // This field is required. DurationSec int64 `json:"durationSec,omitempty"` // MinRequiredReplicas: The minimum number of VM instances that the autoscaler - // will recommend in time intervals starting according to schedule. This field - // is required. + // will + // recommend in time intervals starting according to schedule. This field + // is + // required. MinRequiredReplicas int64 `json:"minRequiredReplicas,omitempty"` - // Schedule: The start timestamps of time intervals when this scaling schedule - // is to provide a scaling signal. This field uses the extended cron format - // (with an optional year field). The expression can describe a single - // timestamp if the optional year is set, in which case the scaling schedule - // runs once. The schedule is interpreted with respect to time_zone. This field - // is required. Note: These timestamps only describe when autoscaler starts - // providing the scaling signal. The VMs need additional time to become - // serving. + // Schedule: The start timestamps of time intervals when this scaling + // schedule is to provide a scaling signal. This field uses the extended + // cron format (with an optional year field). The expression can describe + // a + // single timestamp if the optional year is set, in which case the + // scaling + // schedule runs once. The schedule is interpreted with respect to + // time_zone. This field is required. Note: These timestamps only describe + // when autoscaler starts providing the scaling signal. The VMs + // need additional time to become serving. Schedule string `json:"schedule,omitempty"` - // TimeZone: The time zone to use when interpreting the schedule. The value of - // this field must be a time zone name from the tz database: - // https://en.wikipedia.org/wiki/Tz_database. This field is assigned a default - // value of "UTC" if left empty. + // TimeZone: The time zone to use when interpreting the schedule. + // The value of this field must be a time zone name from the tz + // database: + // https://en.wikipedia.org/wiki/Tz_database. This field is assigned a + // default value of "UTC" if left empty. TimeZone string `json:"timeZone,omitempty"` // ForceSendFields is a list of field names (e.g. "Description") to // unconditionally include in API requests. By default, fields with empty or @@ -4321,91 +5511,166 @@ type AutoscalingPolicyScalingSchedule struct { NullFields []string `json:"-"` } -func (s *AutoscalingPolicyScalingSchedule) MarshalJSON() ([]byte, error) { +func (s AutoscalingPolicyScalingSchedule) MarshalJSON() ([]byte, error) { type NoMethod AutoscalingPolicyScalingSchedule - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } // Backend: Message containing information of one individual backend. type Backend struct { // BalancingMode: Specifies how to determine whether the backend of a load - // balancer can handle additional traffic or is fully loaded. For usage - // guidelines, see Connection balancing mode. Backends must use compatible - // balancing modes. For more information, see Supported balancing modes and - // target capacity settings and Restrictions and guidance for instance groups. - // Note: Currently, if you use the API to configure incompatible balancing - // modes, the configuration might be accepted even though it has no impact and - // is ignored. Specifically, Backend.maxUtilization is ignored when - // Backend.balancingMode is RATE. In the future, this incompatible combination + // balancer can + // handle additional traffic or is fully loaded. For usage guidelines, + // see + // Connection balancing mode. + // + // Backends must use compatible balancing modes. For more information, + // see + // Supported balancing modes and target capacity settings and + // Restrictions and guidance for instance groups. + // + // Note: Currently, if you use the API to configure incompatible + // balancing + // modes, the configuration might be accepted even though it has no impact + // and is ignored. Specifically, Backend.maxUtilization is ignored + // when + // Backend.balancingMode is RATE. In the future, this incompatible + // combination // will be rejected. // // Possible values: // "CONNECTION" - Balance based on the number of simultaneous connections. + // "CUSTOM_METRICS" - Based on custom defined and reported metrics. + // "IN_FLIGHT" - Balance based on the number of in-flight requests. // "RATE" - Balance based on requests per second (RPS). // "UTILIZATION" - Balance based on the backend utilization. BalancingMode string `json:"balancingMode,omitempty"` // CapacityScaler: A multiplier applied to the backend's target capacity of its - // balancing mode. The default value is 1, which means the group serves up to - // 100% of its configured capacity (depending on balancingMode). A setting of 0 - // means the group is completely drained, offering 0% of its available - // capacity. The valid ranges are 0.0 and [0.1,1.0]. You cannot configure a - // setting larger than 0 and smaller than 0.1. You cannot configure a setting - // of 0 when there is only one backend attached to the backend service. Not - // available with backends that don't support using a balancingMode. This - // includes backends such as global internet NEGs, regional serverless NEGs, - // and PSC NEGs. + // balancing + // mode. + // The default value is 1, which means the group serves up to + // 100% of its configured capacity (depending onbalancingMode). A setting of 0 + // means the group is + // completely drained, offering 0% of its available capacity. The valid + // ranges + // are 0.0 and [0.1,1.0]. + // You cannot configure a setting larger than 0 and smaller than0.1. + // You cannot configure a setting of 0 when there is only one + // backend attached to the backend service. + // + // Not available with backends that don't support using abalancingMode. This + // includes backends such as global + // internet NEGs, regional serverless NEGs, and PSC NEGs. CapacityScaler float64 `json:"capacityScaler,omitempty"` + // CustomMetrics: List of custom metrics that are used for + // CUSTOM_METRICS + // BalancingMode. + CustomMetrics []*BackendCustomMetric `json:"customMetrics,omitempty"` // Description: An optional description of this resource. Provide this property - // when you create the resource. + // when you + // create the resource. Description string `json:"description,omitempty"` // Failover: This field designates whether this is a failover backend. More - // than one failover backend can be configured for a given BackendService. + // than one + // failover backend can be configured for a given BackendService. Failover bool `json:"failover,omitempty"` - // Group: The fully-qualified URL of an instance group or network endpoint - // group (NEG) resource. To determine what types of backends a load balancer - // supports, see the Backend services overview - // (https://cloud.google.com/load-balancing/docs/backend-service#backends). You - // must use the *fully-qualified* URL (starting with - // https://www.googleapis.com/) to specify the instance group or NEG. Partial - // URLs are not supported. + // Group: The fully-qualified URL of aninstance + // group or network endpoint + // group (NEG) resource. To determine what types of backends a load + // balancer supports, see the Backend services + // overview + // (https://cloud.google.com/load-balancing/docs/backend-service#backends). + // + // You must use the *fully-qualified* URL (starting + // withhttps://www.googleapis.com/) to specify the instance group + // or NEG. Partial URLs are not supported. + // + // If haPolicy is specified, backends must refer to NEG resources of + // type + // GCE_VM_IP. Group string `json:"group,omitempty"` // MaxConnections: Defines a target maximum number of simultaneous connections. - // For usage guidelines, see Connection balancing mode and Utilization - // balancing mode. Not available if the backend's balancingMode is RATE. + // For usage + // guidelines, seeConnection + // balancing mode and Utilization + // balancing mode. Not available if the backend'sbalancingMode is RATE. MaxConnections int64 `json:"maxConnections,omitempty"` // MaxConnectionsPerEndpoint: Defines a target maximum number of simultaneous - // connections. For usage guidelines, see Connection balancing mode and - // Utilization balancing mode. Not available if the backend's balancingMode is - // RATE. + // connections. For usage + // guidelines, seeConnection + // balancing mode and Utilization + // balancing mode. + // + // Not available if the backend's balancingMode isRATE. MaxConnectionsPerEndpoint int64 `json:"maxConnectionsPerEndpoint,omitempty"` // MaxConnectionsPerInstance: Defines a target maximum number of simultaneous - // connections. For usage guidelines, see Connection balancing mode and - // Utilization balancing mode. Not available if the backend's balancingMode is - // RATE. + // connections. + // For usage guidelines, seeConnection + // balancing mode and Utilization + // balancing mode. + // + // Not available if the backend's balancingMode isRATE. MaxConnectionsPerInstance int64 `json:"maxConnectionsPerInstance,omitempty"` - // MaxRate: Defines a maximum number of HTTP requests per second (RPS). For - // usage guidelines, see Rate balancing mode and Utilization balancing mode. - // Not available if the backend's balancingMode is CONNECTION. + // MaxInFlightRequests: Defines a maximum number of in-flight requests for the + // whole NEG or + // instance group. Not available if backend's balancingMode isRATE or + // CONNECTION. + MaxInFlightRequests int64 `json:"maxInFlightRequests,omitempty"` + // MaxInFlightRequestsPerEndpoint: Defines a maximum number of in-flight + // requests for a single endpoint. + // Not available if backend's balancingMode is RATE + // or CONNECTION. + MaxInFlightRequestsPerEndpoint int64 `json:"maxInFlightRequestsPerEndpoint,omitempty"` + // MaxInFlightRequestsPerInstance: Defines a maximum number of in-flight + // requests for a single VM. + // Not available if backend's balancingMode is RATE + // or CONNECTION. + MaxInFlightRequestsPerInstance int64 `json:"maxInFlightRequestsPerInstance,omitempty"` + // MaxRate: Defines a maximum number of HTTP requests per second (RPS). + // For + // usage guidelines, seeRate + // balancing mode and Utilization + // balancing mode. + // + // Not available if the backend's balancingMode isCONNECTION. MaxRate int64 `json:"maxRate,omitempty"` // MaxRatePerEndpoint: Defines a maximum target for requests per second (RPS). - // For usage guidelines, see Rate balancing mode and Utilization balancing - // mode. Not available if the backend's balancingMode is CONNECTION. + // For usage + // guidelines, seeRate + // balancing mode and Utilization + // balancing mode. + // + // Not available if the backend's balancingMode isCONNECTION. MaxRatePerEndpoint float64 `json:"maxRatePerEndpoint,omitempty"` // MaxRatePerInstance: Defines a maximum target for requests per second (RPS). - // For usage guidelines, see Rate balancing mode and Utilization balancing - // mode. Not available if the backend's balancingMode is CONNECTION. + // For usage + // guidelines, seeRate + // balancing mode and Utilization + // balancing mode. + // + // Not available if the backend's balancingMode isCONNECTION. MaxRatePerInstance float64 `json:"maxRatePerInstance,omitempty"` - // MaxUtilization: Optional parameter to define a target capacity for the - // UTILIZATION balancing mode. The valid range is [0.0, 1.0]. For usage - // guidelines, see Utilization balancing mode. + // MaxUtilization: Optional parameter to define a target capacity for + // theUTILIZATION balancing mode. The valid range is[0.0, 1.0]. + // + // For usage guidelines, seeUtilization + // balancing mode. MaxUtilization float64 `json:"maxUtilization,omitempty"` + // OrchestrationInfo: Information about the resource or system that manages the + // backend. + OrchestrationInfo *BackendBackendOrchestrationInfo `json:"orchestrationInfo,omitempty"` // Preference: This field indicates whether this backend should be fully - // utilized before sending traffic to backends with default preference. The - // possible values are: - PREFERRED: Backends with this preference level will - // be filled up to their capacity limits first, based on RTT. - DEFAULT: If - // preferred backends don't have enough capacity, backends in this layer would - // be used and traffic would be assigned based on the load balancing algorithm - // you use. This is the default + // utilized before + // sending traffic to backends with default preference. The possible + // values + // are: + // + // - PREFERRED: Backends with this preference level will be + // filled up to their capacity limits first, based on RTT. + // - DEFAULT: If preferred backends don't have enough + // capacity, backends in this layer would be used and traffic would be + // assigned based on the load balancing algorithm you use. This is the + // default // // Possible values: // "DEFAULT" - No preference. @@ -4413,6 +5678,13 @@ type Backend struct { // DEFAULT value // "PREFERRED" - Traffic will be sent to this backend first. Preference string `json:"preference,omitempty"` + // Possible values: + // "LONG" - Most of the requests are expected to take more than multiple + // seconds to + // finish. + // "SHORT" - Most requests are expected to finish with a sub-second latency. + // "TRAFFIC_DURATION_UNSPECIFIED" - Traffic duration is unspecified. + TrafficDuration string `json:"trafficDuration,omitempty"` // ForceSendFields is a list of field names (e.g. "BalancingMode") to // unconditionally include in API requests. By default, fields with empty or // default values are omitted from API requests. See @@ -4426,9 +5698,9 @@ type Backend struct { NullFields []string `json:"-"` } -func (s *Backend) MarshalJSON() ([]byte, error) { +func (s Backend) MarshalJSON() ([]byte, error) { type NoMethod Backend - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } func (s *Backend) UnmarshalJSON(data []byte) error { @@ -4451,50 +5723,115 @@ func (s *Backend) UnmarshalJSON(data []byte) error { return nil } -// BackendBucket: Represents a Cloud Storage Bucket resource. This Cloud -// Storage bucket resource is referenced by a URL map of a load balancer. For -// more information, read Backend Buckets. +// BackendBackendOrchestrationInfo: A message containing information about the +// resource or system that manages +// the backend. +type BackendBackendOrchestrationInfo struct { + // ResourceUri: The URI of the resource or system that manages the backend. + ResourceUri string `json:"resourceUri,omitempty"` + // ForceSendFields is a list of field names (e.g. "ResourceUri") to + // unconditionally include in API requests. By default, fields with empty or + // default values are omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + ForceSendFields []string `json:"-"` + // NullFields is a list of field names (e.g. "ResourceUri") to include in API + // requests with the JSON null value. By default, fields with empty values are + // omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s BackendBackendOrchestrationInfo) MarshalJSON() ([]byte, error) { + type NoMethod BackendBackendOrchestrationInfo + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +// BackendBucket: Represents a Cloud Storage Bucket resource. +// +// This Cloud Storage bucket resource is referenced by a URL map of a +// load +// balancer. For more information, readBackend Buckets. type BackendBucket struct { // BucketName: Cloud Storage bucket name. BucketName string `json:"bucketName,omitempty"` // CdnPolicy: Cloud CDN configuration for this BackendBucket. CdnPolicy *BackendBucketCdnPolicy `json:"cdnPolicy,omitempty"` // CompressionMode: Compress text responses using Brotli or gzip compression, - // based on the client's Accept-Encoding header. + // based on + // the client's Accept-Encoding header. // // Possible values: // "AUTOMATIC" - Automatically uses the best compression based on the - // Accept-Encoding header sent by the client. - // "DISABLED" - Disables compression. Existing compressed responses cached by + // Accept-Encoding + // header sent by the client. + // "DISABLED" - Disables compression. Existing compressed responses cached + // by // Cloud CDN will not be served to clients. CompressionMode string `json:"compressionMode,omitempty"` - // CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text format. + // CreationTimestamp: [Output Only] Creation timestamp inRFC3339 + // text format. CreationTimestamp string `json:"creationTimestamp,omitempty"` // CustomResponseHeaders: Headers that the Application Load Balancer should add // to proxied responses. CustomResponseHeaders []string `json:"customResponseHeaders,omitempty"` // Description: An optional textual description of the resource; provided by - // the client when the resource is created. + // the client + // when the resource is created. Description string `json:"description,omitempty"` // EdgeSecurityPolicy: [Output Only] The resource URL for the edge security - // policy associated with this backend bucket. + // policy associated with + // this backend bucket. EdgeSecurityPolicy string `json:"edgeSecurityPolicy,omitempty"` // EnableCdn: If true, enable Cloud CDN for this BackendBucket. EnableCdn bool `json:"enableCdn,omitempty"` // Id: [Output Only] Unique identifier for the resource; defined by the server. Id uint64 `json:"id,omitempty,string"` - // Kind: Type of the resource. + // Kind: Output only. Type of the resource. Kind string `json:"kind,omitempty"` + // LoadBalancingScheme: The value can only be INTERNAL_MANAGED for cross-region + // internal layer 7 + // load balancer. + // + // If loadBalancingScheme is not specified, the backend bucket can be used + // by + // classic global external load balancers, or global application external + // load + // balancers, or both. + // + // Possible values: + // "EXTERNAL_MANAGED" - Signifies that this will be used for regional + // external Application Load + // Balancers. + // "INTERNAL_MANAGED" - Signifies that this will be used for internal + // Application Load Balancers. + LoadBalancingScheme string `json:"loadBalancingScheme,omitempty"` // Name: Name of the resource. Provided by the client when the resource is - // created. The name must be 1-63 characters long, and comply with RFC1035. - // 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. + // created. + // The name must be 1-63 characters long, and comply withRFC1035. + // 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. Name string `json:"name,omitempty"` + // Params: Input only. [Input Only] Additional params passed with the request, + // but not persisted + // as part of resource payload. + Params *BackendBucketParams `json:"params,omitempty"` + // Region: Output only. [Output Only] URL of the region where the regional + // backend bucket + // resides. This field is not applicable to global backend buckets. + // You must specify this field as part of the HTTP request URL. It is + // not settable as a field in the request body. + Region string `json:"region,omitempty"` // SelfLink: [Output Only] Server-defined URL for the resource. SelfLink string `json:"selfLink,omitempty"` + // UsedBy: Output only. [Output Only] List of resources referencing that + // backend bucket. + UsedBy []*BackendBucketUsedBy `json:"usedBy,omitempty"` // ServerResponse contains the HTTP response code and headers from the server. googleapi.ServerResponse `json:"-"` @@ -4511,121 +5848,350 @@ type BackendBucket struct { NullFields []string `json:"-"` } -func (s *BackendBucket) MarshalJSON() ([]byte, error) { +func (s BackendBucket) MarshalJSON() ([]byte, error) { type NoMethod BackendBucket - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +type BackendBucketAggregatedList struct { + // Id: [Output Only] Unique identifier for the resource; defined by the server. + Id string `json:"id,omitempty"` + // Items: A list of BackendBucketsScopedList resources. + Items map[string]BackendBucketsScopedList `json:"items,omitempty"` + // Kind: Output only. Type of resource. + 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 thanmaxResults, 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"` + // SelfLink: Output only. [Output Only] Server-defined URL for this resource. + SelfLink string `json:"selfLink,omitempty"` + // Warning: [Output Only] Informational warning message. + Warning *BackendBucketAggregatedListWarning `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 or default values are + // omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + 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. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s BackendBucketAggregatedList) MarshalJSON() ([]byte, error) { + type NoMethod BackendBucketAggregatedList + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +// BackendBucketAggregatedListWarning: [Output Only] Informational warning +// message. +type BackendBucketAggregatedListWarning 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" - Warning about failed cleanup of transient changes made + // by a failed + // operation. + // "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was created. + // "DEPRECATED_TYPE_USED" - When deploying and at least one of the resources + // has a type marked as + // deprecated + // "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk that is + // larger than image size. + // "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the + // resources has a type marked as + // experimental + // "EXTERNAL_API_WARNING" - Warning that is present in an external api call + // "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been + // overridden. + // Deprecated unused field. + // "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an injected + // kernel, which is deprecated. + // "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB" - A WEIGHTED_MAGLEV backend + // service is associated with a health check that is + // not of type HTTP/HTTPS/HTTP2. + // "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a + // exceedingly large number of resources + // "LIST_OVERHEAD_QUOTA_EXCEED" - Resource can't be retrieved due to list + // overhead quota exceed + // which captures the amount of resources filtered out by + // user-defined list filter. + // "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type + // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is not + // assigned to an instance on the + // network. + // "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot ip + // forward. + // "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE" - The route's nextHopInstance + // URL refers to an instance that does not have an + // ipv6 interface on the same network as the route. + // "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL refers to + // an instance that does not exist. + // "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance URL + // refers to an instance that is not on the + // same network as the route. + // "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not have a + // status of RUNNING. + // "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to continue + // the process despite + // the mentioned error. + // "NO_RESULTS_ON_PAGE" - No results are present on a particular list page. + // "PARTIAL_SUCCESS" - Success is reported, but some results may be missing + // due to errors + // "QUOTA_INFO_UNAVAILABLE" - Quota information is not available to client + // requests (e.g: + // regions.list). + // "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource that + // requires a TOS they have not + // accepted. + // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a resource is + // in use. + // "RESOURCE_NOT_DELETED" - One or more of the resources set to auto-delete + // could not be deleted + // because they were in use. + // "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is + // ignored. + // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in instance + // group manager is valid as such, but + // its application does not make a lot of sense, because it allows only + // single instance in instance group. + // "UNDECLARED_PROPERTIES" - When undeclared properties in the schema are + // present + // "UNREACHABLE" - A given scope cannot be reached. + 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 []*BackendBucketAggregatedListWarningData `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 or default values are + // omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + 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. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s BackendBucketAggregatedListWarning) MarshalJSON() ([]byte, error) { + type NoMethod BackendBucketAggregatedListWarning + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +type BackendBucketAggregatedListWarningData 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 or default values are + // omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + 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. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s BackendBucketAggregatedListWarningData) MarshalJSON() ([]byte, error) { + type NoMethod BackendBucketAggregatedListWarningData + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } // BackendBucketCdnPolicy: Message containing Cloud CDN configuration for a // backend bucket. type BackendBucketCdnPolicy struct { // BypassCacheOnRequestHeaders: Bypass the cache when the specified request - // headers are matched - e.g. Pragma or Authorization headers. Up to 5 headers - // can be specified. The cache is bypassed for all cdnPolicy.cacheMode - // settings. + // headers are matched - e.g. + // Pragma or Authorization headers. Up to 5 headers can be specified. + // The cache is bypassed for all cdnPolicy.cacheMode settings. BypassCacheOnRequestHeaders []*BackendBucketCdnPolicyBypassCacheOnRequestHeader `json:"bypassCacheOnRequestHeaders,omitempty"` // CacheKeyPolicy: The CacheKeyPolicy for this CdnPolicy. CacheKeyPolicy *BackendBucketCdnPolicyCacheKeyPolicy `json:"cacheKeyPolicy,omitempty"` - // CacheMode: Specifies the cache setting for all responses from this backend. - // The possible values are: USE_ORIGIN_HEADERS Requires the origin to set valid - // caching headers to cache content. Responses without these headers will not - // be cached at Google's edge, and will require a full trip to the origin on - // every request, potentially impacting performance and increasing load on the - // origin server. FORCE_CACHE_ALL Cache all content, ignoring any "private", - // "no-store" or "no-cache" directives in Cache-Control response headers. - // Warning: this may result in Cloud CDN caching private, per-user (user - // identifiable) content. CACHE_ALL_STATIC Automatically cache static content, - // including common image formats, media (video and audio), and web assets - // (JavaScript and CSS). Requests and responses that are marked as uncacheable, - // as well as dynamic content (including HTML), will not be cached. + // CacheMode: Specifies the cache setting for all responses from this + // backend. + // The possible values are:USE_ORIGIN_HEADERS Requires the origin to set valid + // caching + // headers to cache content. Responses without these headers will not be + // cached at Google's edge, and will require a full trip to the origin on + // every request, potentially impacting performance and increasing load on + // the origin server.FORCE_CACHE_ALL Cache all content, ignoring any + // "private", + // "no-store" or "no-cache" directives in Cache-Control response + // headers. + // Warning: this may result in Cloud CDN caching private, + // per-user (user identifiable) content.CACHE_ALL_STATIC Automatically cache + // static content, + // including common image formats, media (video and audio), and web + // assets + // (JavaScript and CSS). Requests and responses that are marked as + // uncacheable, as well as dynamic content (including HTML), will not + // be + // cached. + // + // If no value is provided for cdnPolicy.cacheMode, it defaults + // to CACHE_ALL_STATIC. // // Possible values: // "CACHE_ALL_STATIC" - Automatically cache static content, including common - // image formats, media (video and audio), and web assets (JavaScript and CSS). - // Requests and responses that are marked as uncacheable, as well as dynamic - // content (including HTML), will not be cached. + // image formats, + // media (video and audio), and web assets (JavaScript and CSS). + // Requests and responses that are marked as uncacheable, as well as + // dynamic content (including HTML), will not be cached. // "FORCE_CACHE_ALL" - Cache all content, ignoring any "private", "no-store" - // or "no-cache" directives in Cache-Control response headers. Warning: this - // may result in Cloud CDN caching private, per-user (user identifiable) - // content. + // or "no-cache" + // directives in Cache-Control response headers. + // Warning: this may result in Cloud CDN caching private, + // per-user (user identifiable) content. // "INVALID_CACHE_MODE" // "USE_ORIGIN_HEADERS" - Requires the origin to set valid caching headers to - // cache content. Responses without these headers will not be cached at - // Google's edge, and will require a full trip to the origin on every request, - // potentially impacting performance and increasing load on the origin server. + // cache content. + // Responses without these headers will not be cached at Google's edge, + // and will require a full trip to the origin on every request, + // potentially impacting performance and increasing load on the + // origin server. CacheMode string `json:"cacheMode,omitempty"` // ClientTtl: Specifies a separate client (e.g. browser client) maximum TTL. - // This is used to clamp the max-age (or Expires) value sent to the client. - // With FORCE_CACHE_ALL, the lesser of client_ttl and default_ttl is used for - // the response max-age directive, along with a "public" directive. For - // cacheable content in CACHE_ALL_STATIC mode, client_ttl clamps the max-age - // from the origin (if specified), or else sets the response max-age directive - // to the lesser of the client_ttl and default_ttl, and also ensures a "public" - // cache-control directive is present. If a client TTL is not specified, a - // default value (1 hour) will be used. The maximum allowed value is - // 31,622,400s (1 year). + // This is + // used to clamp the max-age (or Expires) value sent to the client. + // With + // FORCE_CACHE_ALL, the lesser of client_ttl and default_ttl is used for + // the + // response max-age directive, along with a "public" directive. For + // cacheable content in CACHE_ALL_STATIC mode, client_ttl clamps the + // max-age + // from the origin (if specified), or else sets the response max-age + // directive to the lesser of the client_ttl and default_ttl, and also + // ensures a "public" cache-control directive is present. + // If a client TTL is not specified, a default value (1 hour) will be used. + // The maximum allowed value is 31,622,400s (1 year). ClientTtl int64 `json:"clientTtl,omitempty"` // DefaultTtl: Specifies the default TTL for cached content served by this - // origin for responses that do not have an existing valid TTL (max-age or - // s-max-age). Setting a TTL of "0" means "always revalidate". The value of - // defaultTTL cannot be set to a value greater than that of maxTTL, but can be - // equal. When the cacheMode is set to FORCE_CACHE_ALL, the defaultTTL will - // overwrite the TTL set in all responses. The maximum allowed value is - // 31,622,400s (1 year), noting that infrequently accessed objects may be + // origin for + // responses that do not have an existing valid TTL (max-age or + // s-maxage). + // Setting a TTL of "0" means "always revalidate". + // The value of defaultTTL cannot be set to a value greater than that + // of + // maxTTL, but can be equal. + // When the cacheMode is set to FORCE_CACHE_ALL, the defaultTTL + // will overwrite the TTL set in all responses. The maximum allowed value + // is + // 31,622,400s (1 year), noting that infrequently accessed objects may + // be // evicted from the cache before the defined TTL. DefaultTtl int64 `json:"defaultTtl,omitempty"` - // MaxTtl: Specifies the maximum allowed TTL for cached content served by this - // origin. Cache directives that attempt to set a max-age or s-maxage higher - // than this, or an Expires header more than maxTTL seconds in the future will - // be capped at the value of maxTTL, as if it were the value of an s-maxage - // Cache-Control directive. Headers sent to the client will not be modified. - // Setting a TTL of "0" means "always revalidate". The maximum allowed value is - // 31,622,400s (1 year), noting that infrequently accessed objects may be - // evicted from the cache before the defined TTL. + // MaxTtl: Specifies the maximum allowed TTL for cached content served by + // this + // origin. + // Cache directives that attempt to set a max-age or s-maxage higher than + // this, or an Expires header more than maxTTL seconds in the future will + // be capped at the value of maxTTL, as if it were the value of an + // s-maxage Cache-Control directive. + // Headers sent to the client will not be modified. + // Setting a TTL of "0" means "always revalidate". + // The maximum allowed value is 31,622,400s (1 year), noting that + // infrequently accessed objects may be evicted from the cache before + // the defined TTL. MaxTtl int64 `json:"maxTtl,omitempty"` // NegativeCaching: Negative caching allows per-status code TTLs to be set, in - // order to apply fine-grained caching for common errors or redirects. This can - // reduce the load on your origin and improve end-user experience by reducing - // response latency. When the cache mode is set to CACHE_ALL_STATIC or - // USE_ORIGIN_HEADERS, negative caching applies to responses with the specified - // response code that lack any Cache-Control, Expires, or Pragma: no-cache - // directives. When the cache mode is set to FORCE_CACHE_ALL, negative caching - // applies to all responses with the specified response code, and override any - // caching headers. By default, Cloud CDN will apply the following default TTLs - // to these status codes: HTTP 300 (Multiple Choice), 301, 308 (Permanent - // Redirects): 10m HTTP 404 (Not Found), 410 (Gone), 451 (Unavailable For Legal - // Reasons): 120s HTTP 405 (Method Not Found), 421 (Misdirected Request), 501 - // (Not Implemented): 60s. These defaults can be overridden in - // negative_caching_policy. + // order + // to apply fine-grained caching for common errors or redirects. + // This can reduce the load on your origin and improve end-user + // experience by reducing response latency. + // When the cache mode is set to CACHE_ALL_STATIC or + // USE_ORIGIN_HEADERS, + // negative caching applies to responses with the specified response code + // that lack any Cache-Control, Expires, or Pragma: no-cache directives. + // When the cache mode is set to FORCE_CACHE_ALL, negative caching applies + // to all responses with the specified response code, and override any + // caching headers. + // By default, Cloud CDN will apply the following default TTLs to these + // status codes: + // HTTP 300 (Multiple Choice), 301, 308 (Permanent Redirects): 10m + // HTTP 404 (Not Found), 410 (Gone), + // 451 (Unavailable For Legal Reasons): 120s + // HTTP 405 (Method Not Found), 501 (Not Implemented): 60s. + // These defaults can be overridden in negative_caching_policy. NegativeCaching bool `json:"negativeCaching,omitempty"` - // NegativeCachingPolicy: Sets a cache TTL for the specified HTTP status code. - // negative_caching must be enabled to configure negative_caching_policy. - // Omitting the policy and leaving negative_caching enabled will use Cloud - // CDN's default cache TTLs. Note that when specifying an explicit - // negative_caching_policy, you should take care to specify a cache TTL for all - // response codes that you wish to cache. Cloud CDN will not apply any default + // NegativeCachingPolicy: Sets a cache TTL for the specified HTTP status + // code. + // negative_caching must be enabled to configure + // negative_caching_policy. + // Omitting the policy and leaving negative_caching enabled will use + // Cloud CDN's default cache TTLs. + // Note that when specifying an explicit negative_caching_policy, you + // should take care to specify a cache TTL for all response codes + // that you wish to cache. Cloud CDN will not apply any default // negative caching when a policy exists. NegativeCachingPolicy []*BackendBucketCdnPolicyNegativeCachingPolicy `json:"negativeCachingPolicy,omitempty"` // RequestCoalescing: If true then Cloud CDN will combine multiple concurrent - // cache fill requests into a small number of requests to the origin. + // cache fill + // requests into a small number of requests to the origin. RequestCoalescing bool `json:"requestCoalescing,omitempty"` // ServeWhileStale: Serve existing content from the cache (if available) when - // revalidating content with the origin, or when an error is encountered when - // refreshing the cache. This setting defines the default "max-stale" duration - // for any cached responses that do not specify a max-stale directive. Stale - // responses that exceed the TTL configured here will not be served. The - // default limit (max-stale) is 86400s (1 day), which will allow stale content - // to be served up to this limit beyond the max-age (or s-max-age) of a cached - // response. The maximum allowed value is 604800 (1 week). Set this to zero (0) - // to disable serve-while-stale. + // revalidating + // content with the origin, or when an error is encountered when refreshing + // the cache. + // This setting defines the default "max-stale" duration for any + // cached + // responses that do not specify a max-stale directive. Stale responses + // that + // exceed the TTL configured here will not be served. The default + // limit + // (max-stale) is 86400s (1 day), which will allow stale content to be + // served up to this limit beyond the max-age (or s-maxage) of a + // cached + // response. + // The maximum allowed value is 604800 (1 week). + // Set this to zero (0) to disable serve-while-stale. ServeWhileStale int64 `json:"serveWhileStale,omitempty"` // SignedUrlCacheMaxAgeSec: Maximum number of seconds the response to a signed - // URL request will be considered fresh. After this time period, the response - // will be revalidated before being served. Defaults to 1hr (3600s). When - // serving responses to signed URL requests, Cloud CDN will internally behave - // 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. + // URL request will be + // considered fresh. After this time period, the response will be + // revalidated before being served. Defaults to 1hr (3600s). When + // serving + // responses to signed URL requests, Cloud CDN will internally behave 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 for signing request URLs. SignedUrlKeyNames []string `json:"signedUrlKeyNames,omitempty"` @@ -4642,18 +6208,18 @@ type BackendBucketCdnPolicy struct { NullFields []string `json:"-"` } -func (s *BackendBucketCdnPolicy) MarshalJSON() ([]byte, error) { +func (s BackendBucketCdnPolicy) MarshalJSON() ([]byte, error) { type NoMethod BackendBucketCdnPolicy - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } // BackendBucketCdnPolicyBypassCacheOnRequestHeader: Bypass the cache when the -// specified request headers are present, e.g. Pragma or Authorization headers. -// Values are case insensitive. The presence of such a header overrides the -// cache_mode setting. +// specified request headers are present, +// e.g. Pragma or Authorization headers. Values are case insensitive. +// The presence of such a header overrides the cache_mode setting. type BackendBucketCdnPolicyBypassCacheOnRequestHeader struct { - // HeaderName: The header field name to match on when bypassing cache. Values - // are case-insensitive. + // HeaderName: The header field name to match on when bypassing cache. + // Values are case-insensitive. HeaderName string `json:"headerName,omitempty"` // ForceSendFields is a list of field names (e.g. "HeaderName") to // unconditionally include in API requests. By default, fields with empty or @@ -4668,20 +6234,22 @@ type BackendBucketCdnPolicyBypassCacheOnRequestHeader struct { NullFields []string `json:"-"` } -func (s *BackendBucketCdnPolicyBypassCacheOnRequestHeader) MarshalJSON() ([]byte, error) { +func (s BackendBucketCdnPolicyBypassCacheOnRequestHeader) MarshalJSON() ([]byte, error) { type NoMethod BackendBucketCdnPolicyBypassCacheOnRequestHeader - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } // BackendBucketCdnPolicyCacheKeyPolicy: Message containing what to include in -// the cache key for a request for Cloud CDN. +// the cache key for a request for +// Cloud CDN. type BackendBucketCdnPolicyCacheKeyPolicy struct { // IncludeHttpHeaders: Allows HTTP request headers (by name) to be used in the // cache key. IncludeHttpHeaders []string `json:"includeHttpHeaders,omitempty"` // QueryStringWhitelist: Names of query string parameters to include in cache - // keys. Default parameters are always included. '&' and '=' will be percent - // encoded and not treated as delimiters. + // keys. Default + // parameters are always included. '&' and '=' will be percent encoded + // and not treated as delimiters. QueryStringWhitelist []string `json:"queryStringWhitelist,omitempty"` // ForceSendFields is a list of field names (e.g. "IncludeHttpHeaders") to // unconditionally include in API requests. By default, fields with empty or @@ -4696,22 +6264,27 @@ type BackendBucketCdnPolicyCacheKeyPolicy struct { NullFields []string `json:"-"` } -func (s *BackendBucketCdnPolicyCacheKeyPolicy) MarshalJSON() ([]byte, error) { +func (s BackendBucketCdnPolicyCacheKeyPolicy) MarshalJSON() ([]byte, error) { type NoMethod BackendBucketCdnPolicyCacheKeyPolicy - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } // BackendBucketCdnPolicyNegativeCachingPolicy: Specify CDN TTLs for response // error codes. type BackendBucketCdnPolicyNegativeCachingPolicy struct { - // Code: The HTTP status code to define a TTL against. Only HTTP status codes - // 300, 301, 302, 307, 308, 404, 405, 410, 421, 451 and 501 are can be - // specified as values, and you cannot specify a status code more than once. + // Code: The HTTP status code to define a TTL against. Only HTTP status + // codes + // 300, 301, 302, 307, 308, 404, 405, 410, 421, 451 and 501 can be + // specified as values, and you cannot specify a status code more than + // once. Code int64 `json:"code,omitempty"` - // Ttl: The TTL (in seconds) for which to cache responses with the - // corresponding status code. The maximum allowed value is 1800s (30 minutes), - // noting that infrequently accessed objects may be evicted from the cache - // before the defined TTL. + // Ttl: The TTL (in seconds) for which to cache responses with + // the + // corresponding status code. + // The maximum allowed value is 1800s (30 minutes), noting that + // infrequently accessed objects may be evicted from the cache before + // the + // defined TTL. Ttl int64 `json:"ttl,omitempty"` // ForceSendFields is a list of field names (e.g. "Code") to unconditionally // include in API requests. By default, fields with empty or default values are @@ -4726,9 +6299,9 @@ type BackendBucketCdnPolicyNegativeCachingPolicy struct { NullFields []string `json:"-"` } -func (s *BackendBucketCdnPolicyNegativeCachingPolicy) MarshalJSON() ([]byte, error) { +func (s BackendBucketCdnPolicyNegativeCachingPolicy) MarshalJSON() ([]byte, error) { type NoMethod BackendBucketCdnPolicyNegativeCachingPolicy - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } // BackendBucketList: Contains a list of BackendBucket resources. @@ -4737,15 +6310,17 @@ type BackendBucketList struct { Id string `json:"id,omitempty"` // Items: A list of BackendBucket resources. Items []*BackendBucket `json:"items,omitempty"` - // Kind: Type of resource. + // Kind: Output only. Type of resource. 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. + // results for + // list requests. If the number of results is larger thanmaxResults, 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"` - // SelfLink: [Output Only] Server-defined URL for this resource. + // SelfLink: Output only. [Output Only] Server-defined URL for this resource. SelfLink string `json:"selfLink,omitempty"` // Warning: [Output Only] Informational warning message. Warning *BackendBucketListWarning `json:"warning,omitempty"` @@ -4765,75 +6340,97 @@ type BackendBucketList struct { NullFields []string `json:"-"` } -func (s *BackendBucketList) MarshalJSON() ([]byte, error) { +func (s BackendBucketList) MarshalJSON() ([]byte, error) { type NoMethod BackendBucketList - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } // BackendBucketListWarning: [Output Only] Informational warning message. type BackendBucketListWarning 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. + // 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" - Warning about failed cleanup of transient changes made - // by a failed operation. + // by a failed + // operation. // "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was created. // "DEPRECATED_TYPE_USED" - When deploying and at least one of the resources - // has a type marked as deprecated + // has a type marked as + // deprecated // "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk that is // larger than image size. // "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the - // resources has a type marked as experimental + // resources has a type marked as + // experimental // "EXTERNAL_API_WARNING" - Warning that is present in an external api call // "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been - // overridden. Deprecated unused field. + // overridden. + // Deprecated unused field. // "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an injected // kernel, which is deprecated. // "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB" - A WEIGHTED_MAGLEV backend - // service is associated with a health check that is not of type - // HTTP/HTTPS/HTTP2. + // service is associated with a health check that is + // not of type HTTP/HTTPS/HTTP2. // "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a // exceedingly large number of resources // "LIST_OVERHEAD_QUOTA_EXCEED" - Resource can't be retrieved due to list - // overhead quota exceed which captures the amount of resources filtered out by + // overhead quota exceed + // which captures the amount of resources filtered out by // user-defined list filter. // "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is not - // assigned to an instance on the network. + // assigned to an instance on the + // network. // "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot ip // forward. // "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE" - The route's nextHopInstance - // URL refers to an instance that does not have an ipv6 interface on the same - // network as the route. + // URL refers to an instance that does not have an + // ipv6 interface on the same network as the route. // "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL refers to // an instance that does not exist. // "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance URL - // refers to an instance that is not on the same network as the route. + // refers to an instance that is not on the + // same network as the route. // "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not have a // status of RUNNING. // "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to continue - // the process despite the mentioned error. + // the process despite + // the mentioned error. // "NO_RESULTS_ON_PAGE" - No results are present on a particular list page. // "PARTIAL_SUCCESS" - Success is reported, but some results may be missing // due to errors + // "QUOTA_INFO_UNAVAILABLE" - Quota information is not available to client + // requests (e.g: + // regions.list). // "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource that - // requires a TOS they have not accepted. + // requires a TOS they have not + // accepted. // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a resource is // in use. // "RESOURCE_NOT_DELETED" - One or more of the resources set to auto-delete - // could not be deleted because they were in use. + // could not be deleted + // because they were in use. // "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is // ignored. // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in instance - // group manager is valid as such, but its application does not make a lot of - // sense, because it allows only single instance in instance group. + // group manager is valid as such, but + // its application does not make a lot of sense, because it allows only + // single instance in instance group. // "UNDECLARED_PROPERTIES" - When undeclared properties in the schema are // present // "UNREACHABLE" - A given scope cannot be reached. 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: [Output Only] Metadata about this warning in key: + // value format. For example: + // + // "data": [ + // { + // "key": "scope", + // "value": "zones/us-east1-d" + // } Data []*BackendBucketListWarningData `json:"data,omitempty"` // Message: [Output Only] A human-readable description of the warning code. Message string `json:"message,omitempty"` @@ -4850,19 +6447,22 @@ type BackendBucketListWarning struct { NullFields []string `json:"-"` } -func (s *BackendBucketListWarning) MarshalJSON() ([]byte, error) { +func (s BackendBucketListWarning) MarshalJSON() ([]byte, error) { type NoMethod BackendBucketListWarning - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } type BackendBucketListWarningData 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: [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"` @@ -4879,392 +6479,32 @@ type BackendBucketListWarningData struct { NullFields []string `json:"-"` } -func (s *BackendBucketListWarningData) MarshalJSON() ([]byte, error) { +func (s BackendBucketListWarningData) MarshalJSON() ([]byte, error) { type NoMethod BackendBucketListWarningData - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) -} - -// BackendService: Represents a Backend Service resource. A backend service -// defines how Google Cloud load balancers distribute traffic. The backend -// service configuration contains a set of values, such as the protocol used to -// connect to backends, various distribution and session settings, health -// checks, and timeouts. These settings provide fine-grained control over how -// your load balancer behaves. Most of the settings have default values that -// allow for easy configuration if you need to get started quickly. Backend -// services in Google Compute Engine can be either regionally or globally -// scoped. * Global -// (https://cloud.google.com/compute/docs/reference/rest/v1/backendServices) * -// Regional -// (https://cloud.google.com/compute/docs/reference/rest/v1/regionBackendServices) -// For more information, see Backend Services. -type BackendService struct { - // AffinityCookieTtlSec: Lifetime of cookies in seconds. This setting is - // applicable to Application Load Balancers and Traffic Director and requires - // GENERATED_COOKIE or HTTP_COOKIE session affinity. If set to 0, the cookie is - // non-persistent and lasts only until the end of the browser session (or - // equivalent). The maximum allowed value is two weeks (1,209,600). Not - // supported when the backend service is referenced by a URL map that is bound - // to target gRPC proxy that has validateForProxyless field set to true. - AffinityCookieTtlSec int64 `json:"affinityCookieTtlSec,omitempty"` - // Backends: The list of backends that serve this BackendService. - Backends []*Backend `json:"backends,omitempty"` - // CdnPolicy: Cloud CDN configuration for this BackendService. Only available - // for specified load balancer types. - CdnPolicy *BackendServiceCdnPolicy `json:"cdnPolicy,omitempty"` - CircuitBreakers *CircuitBreakers `json:"circuitBreakers,omitempty"` - // CompressionMode: Compress text responses using Brotli or gzip compression, - // based on the client's Accept-Encoding header. - // - // Possible values: - // "AUTOMATIC" - Automatically uses the best compression based on the - // Accept-Encoding header sent by the client. - // "DISABLED" - Disables compression. Existing compressed responses cached by - // Cloud CDN will not be served to clients. - CompressionMode string `json:"compressionMode,omitempty"` - ConnectionDraining *ConnectionDraining `json:"connectionDraining,omitempty"` - // ConnectionTrackingPolicy: Connection Tracking configuration for this - // BackendService. Connection tracking policy settings are only available for - // external passthrough Network Load Balancers and internal passthrough Network - // Load Balancers. - ConnectionTrackingPolicy *BackendServiceConnectionTrackingPolicy `json:"connectionTrackingPolicy,omitempty"` - // ConsistentHash: Consistent Hash-based load balancing can be used to provide - // soft session affinity based on HTTP headers, cookies or other properties. - // This load balancing policy is applicable only for HTTP connections. The - // affinity to a particular destination host will be lost when one or more - // hosts are added/removed from the destination service. This field specifies - // parameters that control consistent hashing. This field is only applicable - // when localityLbPolicy is set to MAGLEV or RING_HASH. This field is - // applicable to either: - A regional backend service with the service_protocol - // set to HTTP, HTTPS, or HTTP2, and load_balancing_scheme set to - // INTERNAL_MANAGED. - A global backend service with the load_balancing_scheme - // set to INTERNAL_SELF_MANAGED. - ConsistentHash *ConsistentHashLoadBalancerSettings `json:"consistentHash,omitempty"` - // CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text format. - CreationTimestamp string `json:"creationTimestamp,omitempty"` - // CustomRequestHeaders: Headers that the load balancer adds to proxied - // requests. See Creating custom headers - // (https://cloud.google.com/load-balancing/docs/custom-headers). - CustomRequestHeaders []string `json:"customRequestHeaders,omitempty"` - // CustomResponseHeaders: Headers that the load balancer adds to proxied - // responses. See Creating custom headers - // (https://cloud.google.com/load-balancing/docs/custom-headers). - CustomResponseHeaders []string `json:"customResponseHeaders,omitempty"` - // Description: An optional description of this resource. Provide this property - // when you create the resource. - Description string `json:"description,omitempty"` - // EdgeSecurityPolicy: [Output Only] The resource URL for the edge security - // policy associated with this backend service. - EdgeSecurityPolicy string `json:"edgeSecurityPolicy,omitempty"` - // EnableCDN: If true, enables Cloud CDN for the backend service of a global - // external Application Load Balancer. - EnableCDN bool `json:"enableCDN,omitempty"` - // FailoverPolicy: Requires at least one backend instance group to be defined - // as a backup (failover) backend. For load balancers that have configurable - // failover: Internal passthrough Network Load Balancers - // (https://cloud.google.com/load-balancing/docs/internal/failover-overview) - // and external passthrough Network Load Balancers - // (https://cloud.google.com/load-balancing/docs/network/networklb-failover-overview). - FailoverPolicy *BackendServiceFailoverPolicy `json:"failoverPolicy,omitempty"` - // Fingerprint: Fingerprint of this resource. A hash of the contents stored in - // this object. This field is used in optimistic locking. This field will be - // ignored when inserting a BackendService. An up-to-date fingerprint must be - // provided in order to update the BackendService, otherwise the request will - // fail with error 412 conditionNotMet. To see the latest fingerprint, make a - // get() request to retrieve a BackendService. - Fingerprint string `json:"fingerprint,omitempty"` - // HealthChecks: The list of URLs to the healthChecks, httpHealthChecks - // (legacy), or httpsHealthChecks (legacy) resource for health checking this - // backend service. Not all backend services support legacy health checks. See - // Load balancer guide. Currently, at most one health check can be specified - // for each backend service. Backend services with instance group or zonal NEG - // backends must have a health check. Backend services with internet or - // serverless NEG backends must not have a health check. - HealthChecks []string `json:"healthChecks,omitempty"` - // Iap: The configurations for Identity-Aware Proxy on this resource. Not - // available for internal passthrough Network Load Balancers and external - // passthrough Network Load Balancers. - Iap *BackendServiceIAP `json:"iap,omitempty"` - // Id: [Output Only] The unique identifier for the resource. This identifier is - // defined by the server. - Id uint64 `json:"id,omitempty,string"` - // Kind: [Output Only] Type of resource. Always compute#backendService for - // backend services. - Kind string `json:"kind,omitempty"` - // LoadBalancingScheme: Specifies the load balancer type. A backend service - // created for one type of load balancer cannot be used with another. For more - // information, refer to Choosing a load balancer. - // - // Possible values: - // "EXTERNAL" - Signifies that this will be used for classic Application Load - // Balancers, global external proxy Network Load Balancers, or external - // passthrough Network Load Balancers. - // "EXTERNAL_MANAGED" - Signifies that this will be used for global external - // Application Load Balancers, regional external Application Load Balancers, or - // regional external proxy Network Load Balancers. - // "INTERNAL" - Signifies that this will be used for internal passthrough - // Network Load Balancers. - // "INTERNAL_MANAGED" - Signifies that this will be used for internal - // Application Load Balancers. - // "INTERNAL_SELF_MANAGED" - Signifies that this will be used by Traffic - // Director. - // "INVALID_LOAD_BALANCING_SCHEME" - LoadBalancingScheme string `json:"loadBalancingScheme,omitempty"` - // LocalityLbPolicies: A list of locality load-balancing policies to be used in - // order of preference. When you use localityLbPolicies, you must set at least - // one value for either the localityLbPolicies[].policy or the - // localityLbPolicies[].customPolicy field. localityLbPolicies overrides any - // value set in the localityLbPolicy field. For an example of how to use this - // field, see Define a list of preferred policies. Caution: This field and its - // children are intended for use in a service mesh that includes gRPC clients - // only. Envoy proxies can't use backend services that have this configuration. - LocalityLbPolicies []*BackendServiceLocalityLoadBalancingPolicyConfig `json:"localityLbPolicies,omitempty"` - // LocalityLbPolicy: The load balancing algorithm used within the scope of the - // locality. The possible values are: - ROUND_ROBIN: This is a simple policy in - // which each healthy backend is selected in round robin order. This is the - // default. - LEAST_REQUEST: An O(1) algorithm which selects two random healthy - // hosts and picks the host which has fewer active requests. - RING_HASH: The - // ring/modulo hash load balancer implements consistent hashing to backends. - // The algorithm has the property that the addition/removal of a host from a - // set of N hosts only affects 1/N of the requests. - RANDOM: The load balancer - // selects a random healthy host. - ORIGINAL_DESTINATION: Backend host is - // selected based on the client connection metadata, i.e., connections are - // opened to the same address as the destination address of the incoming - // connection before the connection was redirected to the load balancer. - - // MAGLEV: used as a drop in replacement for the ring hash load balancer. - // Maglev is not as stable as ring hash but has faster table lookup build times - // and host selection times. For more information about Maglev, see - // https://ai.google/research/pubs/pub44824 This field is applicable to either: - // - A regional backend service with the service_protocol set to HTTP, HTTPS, - // or HTTP2, and load_balancing_scheme set to INTERNAL_MANAGED. - A global - // backend service with the load_balancing_scheme set to INTERNAL_SELF_MANAGED, - // INTERNAL_MANAGED, or EXTERNAL_MANAGED. If sessionAffinity is not NONE, and - // this field is not set to MAGLEV or RING_HASH, session affinity settings will - // not take effect. Only ROUND_ROBIN and RING_HASH are supported when the - // backend service is referenced by a URL map that is bound to target gRPC - // proxy that has validateForProxyless field set to true. - // - // Possible values: - // "INVALID_LB_POLICY" - // "LEAST_REQUEST" - An O(1) algorithm which selects two random healthy hosts - // and picks the host which has fewer active requests. - // "MAGLEV" - This algorithm implements consistent hashing to backends. - // Maglev can be used as a drop in replacement for the ring hash load balancer. - // Maglev is not as stable as ring hash but has faster table lookup build times - // and host selection times. For more information about Maglev, see - // https://ai.google/research/pubs/pub44824 - // "ORIGINAL_DESTINATION" - Backend host is selected based on the client - // connection metadata, i.e., connections are opened to the same address as the - // destination address of the incoming connection before the connection was - // redirected to the load balancer. - // "RANDOM" - The load balancer selects a random healthy host. - // "RING_HASH" - The ring/modulo hash load balancer implements consistent - // hashing to backends. The algorithm has the property that the - // addition/removal of a host from a set of N hosts only affects 1/N of the - // requests. - // "ROUND_ROBIN" - This is a simple policy in which each healthy backend is - // selected in round robin order. This is the default. - // "WEIGHTED_MAGLEV" - Per-instance weighted Load Balancing via health check - // reported weights. If set, the Backend Service must configure a non legacy - // HTTP-based Health Check, and health check replies are expected to contain - // non-standard HTTP response header field X-Load-Balancing-Endpoint-Weight to - // specify the per-instance weights. If set, Load Balancing is weighted based - // on the per-instance weights reported in the last processed health check - // replies, as long as every instance either reported a valid weight or had - // UNAVAILABLE_WEIGHT. Otherwise, Load Balancing remains equal-weight. This - // option is only supported in Network Load Balancing. - LocalityLbPolicy string `json:"localityLbPolicy,omitempty"` - // LogConfig: This field denotes the logging options for the load balancer - // traffic served by this backend service. If logging is enabled, logs will be - // exported to Stackdriver. - LogConfig *BackendServiceLogConfig `json:"logConfig,omitempty"` - // MaxStreamDuration: Specifies the default maximum duration (timeout) for - // streams to this service. Duration is computed from the beginning of the - // stream until the response has been completely processed, including all - // retries. A stream that does not complete in this duration is closed. If not - // specified, there will be no timeout limit, i.e. the maximum duration is - // infinite. This value can be overridden in the PathMatcher configuration of - // the UrlMap that references this backend service. This field is only allowed - // when the loadBalancingScheme of the backend service is - // INTERNAL_SELF_MANAGED. - MaxStreamDuration *Duration `json:"maxStreamDuration,omitempty"` - // Metadatas: Deployment metadata associated with the resource to be set by a - // GKE hub controller and read by the backend RCTH - Metadatas map[string]string `json:"metadatas,omitempty"` - // Name: Name of the resource. Provided by the client when the resource is - // created. The name must be 1-63 characters long, and comply with RFC1035. - // 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. - Name string `json:"name,omitempty"` - // Network: The URL of the network to which this backend service belongs. This - // field can only be specified when the load balancing scheme is set to - // INTERNAL. - Network string `json:"network,omitempty"` - // OutlierDetection: Settings controlling the ejection of unhealthy backend - // endpoints from the load balancing pool of each individual proxy instance - // that processes the traffic for the given backend service. If not set, this - // feature is considered disabled. Results of the outlier detection algorithm - // (ejection of endpoints from the load balancing pool and returning them back - // to the pool) are executed independently by each proxy instance of the load - // balancer. In most cases, more than one proxy instance handles the traffic - // received by a backend service. Thus, it is possible that an unhealthy - // endpoint is detected and ejected by only some of the proxies, and while this - // happens, other proxies may continue to send requests to the same unhealthy - // endpoint until they detect and eject the unhealthy endpoint. Applicable - // backend endpoints can be: - VM instances in an Instance Group - Endpoints in - // a Zonal NEG (GCE_VM_IP, GCE_VM_IP_PORT) - Endpoints in a Hybrid Connectivity - // NEG (NON_GCP_PRIVATE_IP_PORT) - Serverless NEGs, that resolve to Cloud Run, - // App Engine, or Cloud Functions Services - Private Service Connect NEGs, that - // resolve to Google-managed regional API endpoints or managed services - // published using Private Service Connect Applicable backend service types can - // be: - A global backend service with the loadBalancingScheme set to - // INTERNAL_SELF_MANAGED or EXTERNAL_MANAGED. - A regional backend service with - // the serviceProtocol set to HTTP, HTTPS, or HTTP2, and loadBalancingScheme - // set to INTERNAL_MANAGED or EXTERNAL_MANAGED. Not supported for Serverless - // NEGs. Not supported when the backend service is referenced by a URL map that - // is bound to target gRPC proxy that has validateForProxyless field set to - // true. - OutlierDetection *OutlierDetection `json:"outlierDetection,omitempty"` - // Port: Deprecated in favor of portName. The TCP port to connect on the - // backend. The default value is 80. For internal passthrough Network Load - // Balancers and external passthrough Network Load Balancers, omit port. - Port int64 `json:"port,omitempty"` - // PortName: A named port on a backend instance group representing the port for - // communication to the backend VMs in that group. The named port must be - // defined on each backend instance group - // (https://cloud.google.com/load-balancing/docs/backend-service#named_ports). - // This parameter has no meaning if the backends are NEGs. For internal - // passthrough Network Load Balancers and external passthrough Network Load - // Balancers, omit port_name. - PortName string `json:"portName,omitempty"` - // Protocol: The protocol this BackendService uses to communicate with - // backends. Possible values are HTTP, HTTPS, HTTP2, TCP, SSL, UDP or GRPC. - // depending on the chosen load balancer or Traffic Director configuration. - // Refer to the documentation for the load balancers or for Traffic Director - // for more information. Must be set to GRPC when the backend service is - // referenced by a URL map that is bound to target gRPC proxy. - // - // Possible values: - // "GRPC" - gRPC (available for Traffic Director). - // "HTTP" - // "HTTP2" - HTTP/2 with SSL. - // "HTTPS" - // "SSL" - TCP proxying with SSL. - // "TCP" - TCP proxying or TCP pass-through. - // "UDP" - UDP. - // "UNSPECIFIED" - If a Backend Service has UNSPECIFIED as its protocol, it - // can be used with any L3/L4 Forwarding Rules. - Protocol string `json:"protocol,omitempty"` - // Region: [Output Only] URL of the region where the regional backend service - // resides. This field is not applicable to global backend services. You must - // specify this field as part of the HTTP request URL. It is not settable as a - // field in the request body. - Region string `json:"region,omitempty"` - // SecurityPolicy: [Output Only] The resource URL for the security policy - // associated with this backend service. - SecurityPolicy string `json:"securityPolicy,omitempty"` - // SecuritySettings: This field specifies the security settings that apply to - // this backend service. This field is applicable to a global backend service - // with the load_balancing_scheme set to INTERNAL_SELF_MANAGED. - SecuritySettings *SecuritySettings `json:"securitySettings,omitempty"` - // SelfLink: [Output Only] Server-defined URL for the resource. - SelfLink string `json:"selfLink,omitempty"` - // ServiceBindings: URLs of networkservices.ServiceBinding resources. Can only - // be set if load balancing scheme is INTERNAL_SELF_MANAGED. If set, lists of - // backends and health checks must be both empty. - ServiceBindings []string `json:"serviceBindings,omitempty"` - // ServiceLbPolicy: URL to networkservices.ServiceLbPolicy resource. Can only - // be set if load balancing scheme is EXTERNAL, EXTERNAL_MANAGED, - // INTERNAL_MANAGED or INTERNAL_SELF_MANAGED and the scope is global. - ServiceLbPolicy string `json:"serviceLbPolicy,omitempty"` - // SessionAffinity: Type of session affinity to use. The default is NONE. Only - // NONE and HEADER_FIELD are supported when the backend service is referenced - // by a URL map that is bound to target gRPC proxy that has - // validateForProxyless field set to true. For more details, see: Session - // Affinity - // (https://cloud.google.com/load-balancing/docs/backend-service#session_affinity). - // - // Possible values: - // "CLIENT_IP" - 2-tuple hash on packet's source and destination IP - // addresses. Connections from the same source IP address to the same - // destination IP address will be served by the same backend VM while that VM - // remains healthy. - // "CLIENT_IP_NO_DESTINATION" - 1-tuple hash only on packet's source IP - // address. Connections from the same source IP address will be served by the - // same backend VM while that VM remains healthy. This option can only be used - // for Internal TCP/UDP Load Balancing. - // "CLIENT_IP_PORT_PROTO" - 5-tuple hash on packet's source and destination - // IP addresses, IP protocol, and source and destination ports. Connections for - // the same IP protocol from the same source IP address and port to the same - // destination IP address and port will be served by the same backend VM while - // that VM remains healthy. This option cannot be used for HTTP(S) load - // balancing. - // "CLIENT_IP_PROTO" - 3-tuple hash on packet's source and destination IP - // addresses, and IP protocol. Connections for the same IP protocol from the - // same source IP address to the same destination IP address will be served by - // the same backend VM while that VM remains healthy. This option cannot be - // used for HTTP(S) load balancing. - // "GENERATED_COOKIE" - Hash based on a cookie generated by the L7 - // loadbalancer. Only valid for HTTP(S) load balancing. - // "HEADER_FIELD" - The hash is based on a user specified header field. - // "HTTP_COOKIE" - The hash is based on a user provided cookie. - // "NONE" - No session affinity. Connections from the same client IP may go - // to any instance in the pool. - SessionAffinity string `json:"sessionAffinity,omitempty"` - Subsetting *Subsetting `json:"subsetting,omitempty"` - // TimeoutSec: The backend service timeout has a different meaning depending on - // the type of load balancer. For more information see, Backend service - // settings. The default is 30 seconds. The full range of timeout values - // allowed goes from 1 through 2,147,483,647 seconds. This value can be - // overridden in the PathMatcher configuration of the UrlMap that references - // this backend service. Not supported when the backend service is referenced - // by a URL map that is bound to target gRPC proxy that has - // validateForProxyless field set to true. Instead, use maxStreamDuration. - TimeoutSec int64 `json:"timeoutSec,omitempty"` - UsedBy []*BackendServiceUsedBy `json:"usedBy,omitempty"` - - // ServerResponse contains the HTTP response code and headers from the server. - googleapi.ServerResponse `json:"-"` - // ForceSendFields is a list of field names (e.g. "AffinityCookieTtlSec") to - // unconditionally include in API requests. By default, fields with empty or - // default values are omitted from API requests. See - // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more - // details. - ForceSendFields []string `json:"-"` - // NullFields is a list of field names (e.g. "AffinityCookieTtlSec") to include - // in API requests with the JSON null value. By default, fields with empty - // values are omitted from API requests. See - // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. - NullFields []string `json:"-"` + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -func (s *BackendService) MarshalJSON() ([]byte, error) { - type NoMethod BackendService - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) -} - -// BackendServiceAggregatedList: Contains a list of BackendServicesScopedList. -type BackendServiceAggregatedList struct { +type BackendBucketListUsable struct { // Id: [Output Only] Unique identifier for the resource; defined by the server. Id string `json:"id,omitempty"` - // Items: A list of BackendServicesScopedList resources. - Items map[string]BackendServicesScopedList `json:"items,omitempty"` - // Kind: Type of resource. + // Items: A list of BackendBucket resources. + Items []*BackendBucket `json:"items,omitempty"` + // Kind: Output only. [Output Only] Type of resource. + // Alwayscompute#usableBackendBucketList for lists of usable backend + // buckets. 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. + // results for + // list requests. If the number of results is larger thanmaxResults, 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"` - // SelfLink: [Output Only] Server-defined URL for this resource. + // SelfLink: Output only. [Output Only] Server-defined URL for this resource. SelfLink string `json:"selfLink,omitempty"` - // Unreachables: [Output Only] Unreachable resources. - Unreachables []string `json:"unreachables,omitempty"` // Warning: [Output Only] Informational warning message. - Warning *BackendServiceAggregatedListWarning `json:"warning,omitempty"` + Warning *BackendBucketListUsableWarning `json:"warning,omitempty"` // ServerResponse contains the HTTP response code and headers from the server. googleapi.ServerResponse `json:"-"` @@ -5281,77 +6521,98 @@ type BackendServiceAggregatedList struct { NullFields []string `json:"-"` } -func (s *BackendServiceAggregatedList) MarshalJSON() ([]byte, error) { - type NoMethod BackendServiceAggregatedList - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s BackendBucketListUsable) MarshalJSON() ([]byte, error) { + type NoMethod BackendBucketListUsable + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -// BackendServiceAggregatedListWarning: [Output Only] Informational warning -// message. -type BackendServiceAggregatedListWarning 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. +// BackendBucketListUsableWarning: [Output Only] Informational warning message. +type BackendBucketListUsableWarning 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" - Warning about failed cleanup of transient changes made - // by a failed operation. + // by a failed + // operation. // "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was created. // "DEPRECATED_TYPE_USED" - When deploying and at least one of the resources - // has a type marked as deprecated + // has a type marked as + // deprecated // "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk that is // larger than image size. // "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the - // resources has a type marked as experimental + // resources has a type marked as + // experimental // "EXTERNAL_API_WARNING" - Warning that is present in an external api call // "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been - // overridden. Deprecated unused field. + // overridden. + // Deprecated unused field. // "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an injected // kernel, which is deprecated. // "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB" - A WEIGHTED_MAGLEV backend - // service is associated with a health check that is not of type - // HTTP/HTTPS/HTTP2. + // service is associated with a health check that is + // not of type HTTP/HTTPS/HTTP2. // "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a // exceedingly large number of resources // "LIST_OVERHEAD_QUOTA_EXCEED" - Resource can't be retrieved due to list - // overhead quota exceed which captures the amount of resources filtered out by + // overhead quota exceed + // which captures the amount of resources filtered out by // user-defined list filter. // "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is not - // assigned to an instance on the network. + // assigned to an instance on the + // network. // "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot ip // forward. // "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE" - The route's nextHopInstance - // URL refers to an instance that does not have an ipv6 interface on the same - // network as the route. + // URL refers to an instance that does not have an + // ipv6 interface on the same network as the route. // "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL refers to // an instance that does not exist. // "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance URL - // refers to an instance that is not on the same network as the route. + // refers to an instance that is not on the + // same network as the route. // "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not have a // status of RUNNING. // "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to continue - // the process despite the mentioned error. + // the process despite + // the mentioned error. // "NO_RESULTS_ON_PAGE" - No results are present on a particular list page. // "PARTIAL_SUCCESS" - Success is reported, but some results may be missing // due to errors + // "QUOTA_INFO_UNAVAILABLE" - Quota information is not available to client + // requests (e.g: + // regions.list). // "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource that - // requires a TOS they have not accepted. + // requires a TOS they have not + // accepted. // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a resource is // in use. // "RESOURCE_NOT_DELETED" - One or more of the resources set to auto-delete - // could not be deleted because they were in use. + // could not be deleted + // because they were in use. // "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is // ignored. // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in instance - // group manager is valid as such, but its application does not make a lot of - // sense, because it allows only single instance in instance group. + // group manager is valid as such, but + // its application does not make a lot of sense, because it allows only + // single instance in instance group. // "UNDECLARED_PROPERTIES" - When undeclared properties in the schema are // present // "UNREACHABLE" - A given scope cannot be reached. 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 []*BackendServiceAggregatedListWarningData `json:"data,omitempty"` + // Data: [Output Only] Metadata about this warning in key: + // value format. For example: + // + // "data": [ + // { + // "key": "scope", + // "value": "zones/us-east1-d" + // } + Data []*BackendBucketListUsableWarningData `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 @@ -5367,19 +6628,22 @@ type BackendServiceAggregatedListWarning struct { NullFields []string `json:"-"` } -func (s *BackendServiceAggregatedListWarning) MarshalJSON() ([]byte, error) { - type NoMethod BackendServiceAggregatedListWarning - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s BackendBucketListUsableWarning) MarshalJSON() ([]byte, error) { + type NoMethod BackendBucketListUsableWarning + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -type BackendServiceAggregatedListWarningData 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). +type BackendBucketListUsableWarningData 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"` @@ -5396,180 +6660,182 @@ type BackendServiceAggregatedListWarningData struct { NullFields []string `json:"-"` } -func (s *BackendServiceAggregatedListWarningData) MarshalJSON() ([]byte, error) { - type NoMethod BackendServiceAggregatedListWarningData - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s BackendBucketListUsableWarningData) MarshalJSON() ([]byte, error) { + type NoMethod BackendBucketListUsableWarningData + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -// BackendServiceCdnPolicy: Message containing Cloud CDN configuration for a -// backend service. -type BackendServiceCdnPolicy struct { - // BypassCacheOnRequestHeaders: Bypass the cache when the specified request - // headers are matched - e.g. Pragma or Authorization headers. Up to 5 headers - // can be specified. The cache is bypassed for all cdnPolicy.cacheMode - // settings. - BypassCacheOnRequestHeaders []*BackendServiceCdnPolicyBypassCacheOnRequestHeader `json:"bypassCacheOnRequestHeaders,omitempty"` - // CacheKeyPolicy: The CacheKeyPolicy for this CdnPolicy. - CacheKeyPolicy *CacheKeyPolicy `json:"cacheKeyPolicy,omitempty"` - // CacheMode: Specifies the cache setting for all responses from this backend. - // The possible values are: USE_ORIGIN_HEADERS Requires the origin to set valid - // caching headers to cache content. Responses without these headers will not - // be cached at Google's edge, and will require a full trip to the origin on - // every request, potentially impacting performance and increasing load on the - // origin server. FORCE_CACHE_ALL Cache all content, ignoring any "private", - // "no-store" or "no-cache" directives in Cache-Control response headers. - // Warning: this may result in Cloud CDN caching private, per-user (user - // identifiable) content. CACHE_ALL_STATIC Automatically cache static content, - // including common image formats, media (video and audio), and web assets - // (JavaScript and CSS). Requests and responses that are marked as uncacheable, - // as well as dynamic content (including HTML), will not be cached. - // - // Possible values: - // "CACHE_ALL_STATIC" - Automatically cache static content, including common - // image formats, media (video and audio), and web assets (JavaScript and CSS). - // Requests and responses that are marked as uncacheable, as well as dynamic - // content (including HTML), will not be cached. - // "FORCE_CACHE_ALL" - Cache all content, ignoring any "private", "no-store" - // or "no-cache" directives in Cache-Control response headers. Warning: this - // may result in Cloud CDN caching private, per-user (user identifiable) - // content. - // "INVALID_CACHE_MODE" - // "USE_ORIGIN_HEADERS" - Requires the origin to set valid caching headers to - // cache content. Responses without these headers will not be cached at - // Google's edge, and will require a full trip to the origin on every request, - // potentially impacting performance and increasing load on the origin server. - CacheMode string `json:"cacheMode,omitempty"` - // ClientTtl: Specifies a separate client (e.g. browser client) maximum TTL. - // This is used to clamp the max-age (or Expires) value sent to the client. - // With FORCE_CACHE_ALL, the lesser of client_ttl and default_ttl is used for - // the response max-age directive, along with a "public" directive. For - // cacheable content in CACHE_ALL_STATIC mode, client_ttl clamps the max-age - // from the origin (if specified), or else sets the response max-age directive - // to the lesser of the client_ttl and default_ttl, and also ensures a "public" - // cache-control directive is present. If a client TTL is not specified, a - // default value (1 hour) will be used. The maximum allowed value is - // 31,622,400s (1 year). - ClientTtl int64 `json:"clientTtl,omitempty"` - // DefaultTtl: Specifies the default TTL for cached content served by this - // origin for responses that do not have an existing valid TTL (max-age or - // s-max-age). Setting a TTL of "0" means "always revalidate". The value of - // defaultTTL cannot be set to a value greater than that of maxTTL, but can be - // equal. When the cacheMode is set to FORCE_CACHE_ALL, the defaultTTL will - // overwrite the TTL set in all responses. The maximum allowed value is - // 31,622,400s (1 year), noting that infrequently accessed objects may be - // evicted from the cache before the defined TTL. - DefaultTtl int64 `json:"defaultTtl,omitempty"` - // MaxTtl: Specifies the maximum allowed TTL for cached content served by this - // origin. Cache directives that attempt to set a max-age or s-maxage higher - // than this, or an Expires header more than maxTTL seconds in the future will - // be capped at the value of maxTTL, as if it were the value of an s-maxage - // Cache-Control directive. Headers sent to the client will not be modified. - // Setting a TTL of "0" means "always revalidate". The maximum allowed value is - // 31,622,400s (1 year), noting that infrequently accessed objects may be - // evicted from the cache before the defined TTL. - MaxTtl int64 `json:"maxTtl,omitempty"` - // NegativeCaching: Negative caching allows per-status code TTLs to be set, in - // order to apply fine-grained caching for common errors or redirects. This can - // reduce the load on your origin and improve end-user experience by reducing - // response latency. When the cache mode is set to CACHE_ALL_STATIC or - // USE_ORIGIN_HEADERS, negative caching applies to responses with the specified - // response code that lack any Cache-Control, Expires, or Pragma: no-cache - // directives. When the cache mode is set to FORCE_CACHE_ALL, negative caching - // applies to all responses with the specified response code, and override any - // caching headers. By default, Cloud CDN will apply the following default TTLs - // to these status codes: HTTP 300 (Multiple Choice), 301, 308 (Permanent - // Redirects): 10m HTTP 404 (Not Found), 410 (Gone), 451 (Unavailable For Legal - // Reasons): 120s HTTP 405 (Method Not Found), 421 (Misdirected Request), 501 - // (Not Implemented): 60s. These defaults can be overridden in - // negative_caching_policy. - NegativeCaching bool `json:"negativeCaching,omitempty"` - // NegativeCachingPolicy: Sets a cache TTL for the specified HTTP status code. - // negative_caching must be enabled to configure negative_caching_policy. - // Omitting the policy and leaving negative_caching enabled will use Cloud - // CDN's default cache TTLs. Note that when specifying an explicit - // negative_caching_policy, you should take care to specify a cache TTL for all - // response codes that you wish to cache. Cloud CDN will not apply any default - // negative caching when a policy exists. - NegativeCachingPolicy []*BackendServiceCdnPolicyNegativeCachingPolicy `json:"negativeCachingPolicy,omitempty"` - // RequestCoalescing: If true then Cloud CDN will combine multiple concurrent - // cache fill requests into a small number of requests to the origin. - RequestCoalescing bool `json:"requestCoalescing,omitempty"` - // ServeWhileStale: Serve existing content from the cache (if available) when - // revalidating content with the origin, or when an error is encountered when - // refreshing the cache. This setting defines the default "max-stale" duration - // for any cached responses that do not specify a max-stale directive. Stale - // responses that exceed the TTL configured here will not be served. The - // default limit (max-stale) is 86400s (1 day), which will allow stale content - // to be served up to this limit beyond the max-age (or s-max-age) of a cached - // response. The maximum allowed value is 604800 (1 week). Set this to zero (0) - // to disable serve-while-stale. - ServeWhileStale int64 `json:"serveWhileStale,omitempty"` - // SignedUrlCacheMaxAgeSec: Maximum number of seconds the response to a signed - // URL request will be considered fresh. After this time period, the response - // will be revalidated before being served. Defaults to 1hr (3600s). When - // serving responses to signed URL requests, Cloud CDN will internally behave - // 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 for signing request URLs. - SignedUrlKeyNames []string `json:"signedUrlKeyNames,omitempty"` - // ForceSendFields is a list of field names (e.g. - // "BypassCacheOnRequestHeaders") to unconditionally include in API requests. - // By default, fields with empty or default values are omitted from API - // requests. See https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields - // for more details. +// BackendBucketParams: Additional Backend Bucket parameters. +type BackendBucketParams struct { + // ResourceManagerTags: Tag keys/values directly bound to this resource. + // Tag keys and values have the same definition as resource + // manager tags. The field is allowed for INSERT + // only. The keys/values to set on the resource should be specified in + // either ID { : } or Namespaced format + // { : }. + // For example the following are valid inputs: + // * {"tagKeys/333" : "tagValues/444", "tagKeys/123" : "tagValues/456"} + // * {"123/environment" : "production", "345/abc" : "xyz"} + // Note: + // * Invalid combinations of ID & namespaced format is not supported. For + // instance: {"123/environment" : "tagValues/444"} is invalid. + ResourceManagerTags map[string]string `json:"resourceManagerTags,omitempty"` + // ForceSendFields is a list of field names (e.g. "ResourceManagerTags") to + // unconditionally include in API requests. By default, fields with empty or + // default values are omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. ForceSendFields []string `json:"-"` - // NullFields is a list of field names (e.g. "BypassCacheOnRequestHeaders") to - // include in API requests with the JSON null value. By default, fields with - // empty values are omitted from API requests. See + // NullFields is a list of field names (e.g. "ResourceManagerTags") to include + // in API requests with the JSON null value. By default, fields with empty + // values are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } -func (s *BackendServiceCdnPolicy) MarshalJSON() ([]byte, error) { - type NoMethod BackendServiceCdnPolicy - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s BackendBucketParams) MarshalJSON() ([]byte, error) { + type NoMethod BackendBucketParams + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -// BackendServiceCdnPolicyBypassCacheOnRequestHeader: Bypass the cache when the -// specified request headers are present, e.g. Pragma or Authorization headers. -// Values are case insensitive. The presence of such a header overrides the -// cache_mode setting. -type BackendServiceCdnPolicyBypassCacheOnRequestHeader struct { - // HeaderName: The header field name to match on when bypassing cache. Values - // are case-insensitive. - HeaderName string `json:"headerName,omitempty"` - // ForceSendFields is a list of field names (e.g. "HeaderName") to +type BackendBucketUsedBy struct { + // Reference: Output only. [Output Only] Server-defined URL for UrlMaps + // referencing that + // BackendBucket. + Reference string `json:"reference,omitempty"` + // ForceSendFields is a list of field names (e.g. "Reference") to // unconditionally include in API requests. By default, fields with empty or // default values are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. ForceSendFields []string `json:"-"` - // NullFields is a list of field names (e.g. "HeaderName") to include in API + // NullFields is a list of field names (e.g. "Reference") to include in API // requests with the JSON null value. By default, fields with empty values are // omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } -func (s *BackendServiceCdnPolicyBypassCacheOnRequestHeader) MarshalJSON() ([]byte, error) { - type NoMethod BackendServiceCdnPolicyBypassCacheOnRequestHeader - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s BackendBucketUsedBy) MarshalJSON() ([]byte, error) { + type NoMethod BackendBucketUsedBy + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -// BackendServiceCdnPolicyNegativeCachingPolicy: Specify CDN TTLs for response -// error codes. -type BackendServiceCdnPolicyNegativeCachingPolicy struct { - // Code: The HTTP status code to define a TTL against. Only HTTP status codes - // 300, 301, 302, 307, 308, 404, 405, 410, 421, 451 and 501 are can be - // specified as values, and you cannot specify a status code more than once. - Code int64 `json:"code,omitempty"` - // Ttl: The TTL (in seconds) for which to cache responses with the - // corresponding status code. The maximum allowed value is 1800s (30 minutes), - // noting that infrequently accessed objects may be evicted from the cache - // before the defined TTL. - Ttl int64 `json:"ttl,omitempty"` +type BackendBucketsScopedList struct { + // BackendBuckets: A list of BackendBuckets contained in this scope. + BackendBuckets []*BackendBucket `json:"backendBuckets,omitempty"` + // Warning: Informational warning which replaces the list of + // backend services when the list is empty. + Warning *BackendBucketsScopedListWarning `json:"warning,omitempty"` + // ForceSendFields is a list of field names (e.g. "BackendBuckets") to + // unconditionally include in API requests. By default, fields with empty or + // default values are omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + ForceSendFields []string `json:"-"` + // NullFields is a list of field names (e.g. "BackendBuckets") to include in + // API requests with the JSON null value. By default, fields with empty values + // are omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s BackendBucketsScopedList) MarshalJSON() ([]byte, error) { + type NoMethod BackendBucketsScopedList + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +// BackendBucketsScopedListWarning: Informational warning which replaces the +// list of +// backend services when the list is empty. +type BackendBucketsScopedListWarning 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" - Warning about failed cleanup of transient changes made + // by a failed + // operation. + // "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was created. + // "DEPRECATED_TYPE_USED" - When deploying and at least one of the resources + // has a type marked as + // deprecated + // "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk that is + // larger than image size. + // "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the + // resources has a type marked as + // experimental + // "EXTERNAL_API_WARNING" - Warning that is present in an external api call + // "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been + // overridden. + // Deprecated unused field. + // "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an injected + // kernel, which is deprecated. + // "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB" - A WEIGHTED_MAGLEV backend + // service is associated with a health check that is + // not of type HTTP/HTTPS/HTTP2. + // "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a + // exceedingly large number of resources + // "LIST_OVERHEAD_QUOTA_EXCEED" - Resource can't be retrieved due to list + // overhead quota exceed + // which captures the amount of resources filtered out by + // user-defined list filter. + // "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type + // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is not + // assigned to an instance on the + // network. + // "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot ip + // forward. + // "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE" - The route's nextHopInstance + // URL refers to an instance that does not have an + // ipv6 interface on the same network as the route. + // "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL refers to + // an instance that does not exist. + // "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance URL + // refers to an instance that is not on the + // same network as the route. + // "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not have a + // status of RUNNING. + // "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to continue + // the process despite + // the mentioned error. + // "NO_RESULTS_ON_PAGE" - No results are present on a particular list page. + // "PARTIAL_SUCCESS" - Success is reported, but some results may be missing + // due to errors + // "QUOTA_INFO_UNAVAILABLE" - Quota information is not available to client + // requests (e.g: + // regions.list). + // "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource that + // requires a TOS they have not + // accepted. + // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a resource is + // in use. + // "RESOURCE_NOT_DELETED" - One or more of the resources set to auto-delete + // could not be deleted + // because they were in use. + // "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is + // ignored. + // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in instance + // group manager is valid as such, but + // its application does not make a lot of sense, because it allows only + // single instance in instance group. + // "UNDECLARED_PROPERTIES" - When undeclared properties in the schema are + // present + // "UNREACHABLE" - A given scope cannot be reached. + 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 []*BackendBucketsScopedListWarningData `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 or default values are // omitted from API requests. See @@ -5583,236 +6849,899 @@ type BackendServiceCdnPolicyNegativeCachingPolicy struct { NullFields []string `json:"-"` } -func (s *BackendServiceCdnPolicyNegativeCachingPolicy) MarshalJSON() ([]byte, error) { - type NoMethod BackendServiceCdnPolicyNegativeCachingPolicy - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s BackendBucketsScopedListWarning) MarshalJSON() ([]byte, error) { + type NoMethod BackendBucketsScopedListWarning + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -// BackendServiceConnectionTrackingPolicy: Connection Tracking configuration -// for this BackendService. -type BackendServiceConnectionTrackingPolicy struct { - // ConnectionPersistenceOnUnhealthyBackends: Specifies connection persistence - // when backends are unhealthy. The default value is DEFAULT_FOR_PROTOCOL. If - // set to DEFAULT_FOR_PROTOCOL, the existing connections persist on unhealthy - // backends only for connection-oriented protocols (TCP and SCTP) and only if - // the Tracking Mode is PER_CONNECTION (default tracking mode) or the Session - // Affinity is configured for 5-tuple. They do not persist for UDP. If set to - // NEVER_PERSIST, after a backend becomes unhealthy, the existing connections - // on the unhealthy backend are never persisted on the unhealthy backend. They - // are always diverted to newly selected healthy backends (unless all backends - // are unhealthy). If set to ALWAYS_PERSIST, existing connections always - // persist on unhealthy backends regardless of protocol and session affinity. - // It is generally not recommended to use this mode overriding the default. For - // more details, see Connection Persistence for Network Load Balancing - // (https://cloud.google.com/load-balancing/docs/network/networklb-backend-service#connection-persistence) - // and Connection Persistence for Internal TCP/UDP Load Balancing - // (https://cloud.google.com/load-balancing/docs/internal#connection-persistence). - // - // Possible values: - // "ALWAYS_PERSIST" - // "DEFAULT_FOR_PROTOCOL" - // "NEVER_PERSIST" - ConnectionPersistenceOnUnhealthyBackends string `json:"connectionPersistenceOnUnhealthyBackends,omitempty"` - // EnableStrongAffinity: Enable Strong Session Affinity for external - // passthrough Network Load Balancers. This option is not available publicly. - EnableStrongAffinity bool `json:"enableStrongAffinity,omitempty"` - // IdleTimeoutSec: Specifies how long to keep a Connection Tracking entry while - // there is no matching traffic (in seconds). For internal passthrough Network - // Load Balancers: - The minimum (default) is 10 minutes and the maximum is 16 - // hours. - It can be set only if Connection Tracking is less than 5-tuple - // (i.e. Session Affinity is CLIENT_IP_NO_DESTINATION, CLIENT_IP or - // CLIENT_IP_PROTO, and Tracking Mode is PER_SESSION). For external passthrough - // Network Load Balancers the default is 60 seconds. This option is not - // available publicly. - IdleTimeoutSec int64 `json:"idleTimeoutSec,omitempty"` - // TrackingMode: Specifies the key used for connection tracking. There are two - // options: - PER_CONNECTION: This is the default mode. The Connection Tracking - // is performed as per the Connection Key (default Hash Method) for the - // specific protocol. - PER_SESSION: The Connection Tracking is performed as - // per the configured Session Affinity. It matches the configured Session - // Affinity. For more details, see Tracking Mode for Network Load Balancing - // (https://cloud.google.com/load-balancing/docs/network/networklb-backend-service#tracking-mode) - // and Tracking Mode for Internal TCP/UDP Load Balancing - // (https://cloud.google.com/load-balancing/docs/internal#tracking-mode). - // - // Possible values: - // "INVALID_TRACKING_MODE" - // "PER_CONNECTION" - // "PER_SESSION" - TrackingMode string `json:"trackingMode,omitempty"` - // ForceSendFields is a list of field names (e.g. - // "ConnectionPersistenceOnUnhealthyBackends") to unconditionally include in - // API requests. By default, fields with empty or default values are omitted - // from API requests. See +type BackendBucketsScopedListWarningData 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 or default values are + // omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. ForceSendFields []string `json:"-"` - // NullFields is a list of field names (e.g. - // "ConnectionPersistenceOnUnhealthyBackends") to include in API requests with - // the JSON null value. By default, fields with empty values are omitted from - // API requests. See https://pkg.go.dev/google.golang.org/api#hdr-NullFields - // for more details. + // 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. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } -func (s *BackendServiceConnectionTrackingPolicy) MarshalJSON() ([]byte, error) { - type NoMethod BackendServiceConnectionTrackingPolicy - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s BackendBucketsScopedListWarningData) MarshalJSON() ([]byte, error) { + type NoMethod BackendBucketsScopedListWarningData + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -// BackendServiceFailoverPolicy: For load balancers that have configurable -// failover: Internal passthrough Network Load Balancers -// (https://cloud.google.com/load-balancing/docs/internal/failover-overview) -// and external passthrough Network Load Balancers -// (https://cloud.google.com/load-balancing/docs/network/networklb-failover-overview). -// On failover or failback, this field indicates whether connection draining -// will be honored. Google Cloud has a fixed connection draining timeout of 10 -// minutes. A setting of true terminates existing TCP connections to the active -// pool during failover and failback, immediately draining traffic. A setting -// of false allows existing TCP connections to persist, even on VMs no longer -// in the active pool, for up to the duration of the connection draining -// timeout (10 minutes). -type BackendServiceFailoverPolicy struct { - // DisableConnectionDrainOnFailover: This can be set to true only if the - // protocol is TCP. The default is false. - DisableConnectionDrainOnFailover bool `json:"disableConnectionDrainOnFailover,omitempty"` - // DropTrafficIfUnhealthy: If set to true, connections to the load balancer are - // dropped when all primary and all backup backend VMs are unhealthy.If set to - // false, connections are distributed among all primary VMs when all primary - // and all backup backend VMs are unhealthy. For load balancers that have - // configurable failover: Internal passthrough Network Load Balancers - // (https://cloud.google.com/load-balancing/docs/internal/failover-overview) - // and external passthrough Network Load Balancers - // (https://cloud.google.com/load-balancing/docs/network/networklb-failover-overview). - // The default is false. - DropTrafficIfUnhealthy bool `json:"dropTrafficIfUnhealthy,omitempty"` - // FailoverRatio: The value of the field must be in the range [0, 1]. If the - // value is 0, the load balancer performs a failover when the number of healthy - // primary VMs equals zero. For all other values, the load balancer performs a - // failover when the total number of healthy primary VMs is less than this - // ratio. For load balancers that have configurable failover: Internal TCP/UDP - // Load Balancing - // (https://cloud.google.com/load-balancing/docs/internal/failover-overview) - // and external TCP/UDP Load Balancing - // (https://cloud.google.com/load-balancing/docs/network/networklb-failover-overview). - FailoverRatio float64 `json:"failoverRatio,omitempty"` - // ForceSendFields is a list of field names (e.g. - // "DisableConnectionDrainOnFailover") to unconditionally include in API - // requests. By default, fields with empty or default values are omitted from - // API requests. See +// BackendCustomMetric: Custom Metrics are used for CUSTOM_METRICS +// balancing_mode. +type BackendCustomMetric struct { + // DryRun: If true, the metric data is collected and reported to + // Cloud + // Monitoring, but is not used for load balancing. + DryRun bool `json:"dryRun,omitempty"` + // MaxUtilization: Optional parameter to define a target utilization for the + // Custom Metrics + // balancing mode. The valid range is [0.0, 1.0]. + MaxUtilization float64 `json:"maxUtilization,omitempty"` + // Name: Name of a custom utilization signal. The name must be 1-64 + // characters + // long and match the regular expression + // `[a-z]([-_.a-z0-9]*[a-z0-9])?` which means that the + // first character must be a lowercase letter, and all following + // characters must be a dash, period, underscore, lowercase letter, or + // digit, except the last character, which cannot be a dash, period, + // or + // underscore. For usage guidelines, see Custom Metrics balancing mode. + // This + // field can only be used for a global or regional backend service with + // the + // loadBalancingScheme set to EXTERNAL_MANAGED,INTERNAL_MANAGED + // INTERNAL_SELF_MANAGED. + Name string `json:"name,omitempty"` + // ForceSendFields is a list of field names (e.g. "DryRun") to unconditionally + // include in API requests. By default, fields with empty or default values are + // omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. ForceSendFields []string `json:"-"` - // NullFields is a list of field names (e.g. - // "DisableConnectionDrainOnFailover") to include in API requests with the JSON - // null value. By default, fields with empty values are omitted from API - // requests. See https://pkg.go.dev/google.golang.org/api#hdr-NullFields for - // more details. + // NullFields is a list of field names (e.g. "DryRun") to include in API + // requests with the JSON null value. By default, fields with empty values are + // omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } -func (s *BackendServiceFailoverPolicy) MarshalJSON() ([]byte, error) { - type NoMethod BackendServiceFailoverPolicy - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s BackendCustomMetric) MarshalJSON() ([]byte, error) { + type NoMethod BackendCustomMetric + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -func (s *BackendServiceFailoverPolicy) UnmarshalJSON(data []byte) error { - type NoMethod BackendServiceFailoverPolicy +func (s *BackendCustomMetric) UnmarshalJSON(data []byte) error { + type NoMethod BackendCustomMetric var s1 struct { - FailoverRatio gensupport.JSONFloat64 `json:"failoverRatio"` + MaxUtilization gensupport.JSONFloat64 `json:"maxUtilization"` *NoMethod } s1.NoMethod = (*NoMethod)(s) if err := json.Unmarshal(data, &s1); err != nil { return err } - s.FailoverRatio = float64(s1.FailoverRatio) + s.MaxUtilization = float64(s1.MaxUtilization) return nil } -type BackendServiceGroupHealth struct { - // Annotations: Metadata defined as annotations on the network endpoint group. - Annotations map[string]string `json:"annotations,omitempty"` - // HealthStatus: Health state of the backend instances or endpoints in - // requested instance or network endpoint group, determined based on configured - // health checks. - HealthStatus []*HealthStatus `json:"healthStatus,omitempty"` - // Kind: [Output Only] Type of resource. Always - // compute#backendServiceGroupHealth for the health of backend services. +// BackendService: Represents a Backend Service resource. +// +// A backend service defines how Google Cloud load balancers distribute +// traffic. +// The backend service configuration contains a set of values, such as +// the +// protocol used to connect to backends, various distribution and +// session +// settings, health checks, and timeouts. These settings provide +// fine-grained +// control over how your load balancer behaves. Most of the settings +// have +// default values that allow for easy configuration if you need to get +// started +// quickly. +// +// Backend services in Google Compute Engine can be either regionally +// or +// globally scoped. +// +// * Global +// (https://cloud.google.com/compute/docs/reference/rest/v1/backendServices) +// * Regional +// (https://cloud.google.com/compute/docs/reference/rest/v1/regionBackendServices) +// +// For more information, seeBackend +// Services. +type BackendService struct { + // AffinityCookieTtlSec: Lifetime of cookies in seconds. This setting is + // applicable to Application + // Load Balancers and Traffic Director and requires + // GENERATED_COOKIE or HTTP_COOKIE session affinity. + // + // If set to 0, the cookie is non-persistent and lasts only until + // the end of the browser session (or equivalent). The maximum allowed value + // is two weeks (1,209,600). + // + // Not supported when the backend service is referenced by a URL map that + // is + // bound to target gRPC proxy that has validateForProxyless field set to true. + AffinityCookieTtlSec int64 `json:"affinityCookieTtlSec,omitempty"` + // Backends: The list of backends that serve this BackendService. + Backends []*Backend `json:"backends,omitempty"` + // CdnPolicy: Cloud CDN configuration for this BackendService. Only available + // for + // specified load balancer types. + CdnPolicy *BackendServiceCdnPolicy `json:"cdnPolicy,omitempty"` + CircuitBreakers *CircuitBreakers `json:"circuitBreakers,omitempty"` + // CompressionMode: Compress text responses using Brotli or gzip compression, + // based on + // the client's Accept-Encoding header. + // + // Possible values: + // "AUTOMATIC" - Automatically uses the best compression based on the + // Accept-Encoding + // header sent by the client. + // "DISABLED" - Disables compression. Existing compressed responses cached + // by + // Cloud CDN will not be served to clients. + CompressionMode string `json:"compressionMode,omitempty"` + // ConnectionDraining: connectionDraining cannot be specified with haPolicy. + ConnectionDraining *ConnectionDraining `json:"connectionDraining,omitempty"` + // ConnectionTrackingPolicy: Connection Tracking configuration for this + // BackendService. Connection + // tracking policy settings are only available for external passthrough + // Network Load Balancers and internal passthrough Network Load + // Balancers. + // + // connectionTrackingPolicy cannot be specified with haPolicy. + ConnectionTrackingPolicy *BackendServiceConnectionTrackingPolicy `json:"connectionTrackingPolicy,omitempty"` + // ConsistentHash: Consistent Hash-based load balancing can be used to provide + // soft session + // affinity based on HTTP headers, cookies or other properties. This + // load + // balancing policy is applicable only for HTTP connections. The affinity to + // a + // particular destination host will be lost when one or more hosts + // are + // added/removed from the destination service. This field specifies + // parameters + // that control consistent hashing. This field is only applicable + // whenlocalityLbPolicy is set to MAGLEV orRING_HASH. + // + // This field is applicable to either: + // + // - A regional backend service with the service protocol set to HTTP, + // HTTPS, HTTP2 or H2C, and load_balancing_scheme set to + // INTERNAL_MANAGED. + // - A global backend service with the + // load_balancing_scheme set to INTERNAL_SELF_MANAGED. + ConsistentHash *ConsistentHashLoadBalancerSettings `json:"consistentHash,omitempty"` + // CreationTimestamp: Output only. [Output Only] Creation timestamp + // inRFC3339 + // text format. + CreationTimestamp string `json:"creationTimestamp,omitempty"` + // CustomMetrics: List of custom metrics that are used for + // theWEIGHTED_ROUND_ROBIN locality_lb_policy. + CustomMetrics []*BackendServiceCustomMetric `json:"customMetrics,omitempty"` + // CustomRequestHeaders: Headers that the load balancer adds to proxied + // requests. See Creating + // custom + // headers (https://cloud.google.com/load-balancing/docs/custom-headers). + CustomRequestHeaders []string `json:"customRequestHeaders,omitempty"` + // CustomResponseHeaders: Headers that the load balancer adds to proxied + // responses. See Creating + // custom + // headers (https://cloud.google.com/load-balancing/docs/custom-headers). + CustomResponseHeaders []string `json:"customResponseHeaders,omitempty"` + // Description: An optional description of this resource. Provide this property + // when you + // create the resource. + Description string `json:"description,omitempty"` + // EdgeSecurityPolicy: [Output Only] The resource URL for the edge security + // policy associated with + // this backend service. + EdgeSecurityPolicy string `json:"edgeSecurityPolicy,omitempty"` + // EnableCDN: If true, enables Cloud CDN for the backend service of a + // global external Application Load Balancer. + EnableCDN bool `json:"enableCDN,omitempty"` + // ExternalManagedMigrationState: Specifies the canary migration state. + // Possible values are PREPARE, + // TEST_BY_PERCENTAGE, and TEST_ALL_TRAFFIC. + // + // To begin the migration from EXTERNAL to EXTERNAL_MANAGED, the state must + // be + // changed to PREPARE. The state must be changed to TEST_ALL_TRAFFIC before + // the loadBalancingScheme can be changed to EXTERNAL_MANAGED. Optionally, + // the + // TEST_BY_PERCENTAGE state can be used to migrate traffic by percentage + // using + // externalManagedMigrationTestingPercentage. + // + // Rolling back a migration requires the states to be set in reverse order. + // So + // changing the scheme from EXTERNAL_MANAGED to EXTERNAL requires the state + // to + // be set to TEST_ALL_TRAFFIC at the same time. Optionally, + // the + // TEST_BY_PERCENTAGE state can be used to migrate some traffic back + // to + // EXTERNAL or PREPARE can be used to migrate all traffic back to EXTERNAL. + // + // Possible values: + // "PREPARE" + // "TEST_ALL_TRAFFIC" + // "TEST_BY_PERCENTAGE" + ExternalManagedMigrationState string `json:"externalManagedMigrationState,omitempty"` + // ExternalManagedMigrationTestingPercentage: Determines the fraction of + // requests that should be processed by the Global + // external Application Load Balancer. + // + // The value of this field must be in the range [0, 100]. + // + // Session affinity options will slightly affect this routing behavior, + // for + // more details, see:Session + // Affinity. + // + // This value can only be set if the loadBalancingScheme in the + // BackendService + // is set to EXTERNAL (when using the classic Application Load Balancer) + // and + // the migration state is TEST_BY_PERCENTAGE. + ExternalManagedMigrationTestingPercentage float64 `json:"externalManagedMigrationTestingPercentage,omitempty"` + // FailoverPolicy: Requires at least one backend instance group to be + // defined + // as a backup (failover) backend. + // For load balancers that have configurable failover: + // Internal passthrough Network Load + // Balancers + // (https://cloud.google.com/load-balancing/docs/internal/failover-overview) + // and external passthrough Network Load + // Balancers + // (https://cloud.google.com/load-balancing/docs/network/networklb-failover-overview). + // + // failoverPolicy cannot be specified with haPolicy. + FailoverPolicy *BackendServiceFailoverPolicy `json:"failoverPolicy,omitempty"` + // Fingerprint: Fingerprint of this resource. A hash of the contents stored in + // this object. + // This field is used in optimistic locking. This field will be ignored + // when + // inserting a BackendService. An up-to-date fingerprint must be provided + // in + // order to update the BackendService, otherwise the request will + // fail with error 412 conditionNotMet. + // + // To see the latest fingerprint, make a get() request to + // retrieve a BackendService. + Fingerprint string `json:"fingerprint,omitempty"` + // HaPolicy: Configures self-managed High Availability (HA) for External and + // Internal + // Protocol Forwarding. + // + // The backends of this regional backend service must only specify + // zonal + // network endpoint groups (NEGs) of type GCE_VM_IP. + // + // When haPolicy is set for an Internal Passthrough Network Load Balancer, + // the + // regional backend service must set the network field. All zonal NEGs + // must + // belong to the same network. However, individual NEGs can + // belong to different subnetworks of that network. + // + // When haPolicy is specified, the set of attached network endpoints across + // all backends comprise an High Availability domain from which one endpoint + // is selected as the active endpoint (the leader) that receives + // all + // traffic. + // + // haPolicy can be added only at backend service creation time. Once set up, + // it cannot be deleted. + // + // Note that haPolicy is not for load balancing, and therefore cannot + // be + // specified with sessionAffinity, connectionTrackingPolicy, + // and + // failoverPolicy. + // + // haPolicy requires customers to be responsible for tracking backend + // endpoint health and electing a leader among the healthy + // endpoints. + // Therefore, haPolicy cannot be specified with healthChecks. + // + // haPolicy can only be specified for External Passthrough Network + // Load + // Balancers and Internal Passthrough Network Load Balancers. + HaPolicy *BackendServiceHAPolicy `json:"haPolicy,omitempty"` + // HealthChecks: The list of URLs to the healthChecks, httpHealthChecks + // (legacy), or + // httpsHealthChecks (legacy) resource for health checking this + // backend + // service. Not all backend services support legacy health checks. See + // Load balancer guide. Currently, at most one health check can be + // specified for each backend service. Backend services with + // instance group or zonal NEG backends must have a health check + // unless + // haPolicy is specified. Backend services with internet or serverless + // NEG + // backends must not have a health check. + // + // healthChecks[] cannot be specified with haPolicy. + HealthChecks []string `json:"healthChecks,omitempty"` + // Iap: The configurations for Identity-Aware Proxy on this resource. + // Not available for internal passthrough Network Load Balancers and + // external + // passthrough Network Load Balancers. + Iap *BackendServiceIAP `json:"iap,omitempty"` + // Id: [Output Only] The unique identifier for the resource. This identifier + // is + // defined by the server. + Id uint64 `json:"id,omitempty,string"` + // IpAddressSelectionPolicy: Specifies a preference for traffic sent from the + // proxy to the backend (or + // from the client to the backend for proxyless gRPC). + // The possible values are: + // + // - IPV4_ONLY: Only send IPv4 traffic to the backends of the + // backend service (Instance Group, Managed Instance Group, Network + // Endpoint + // Group), regardless of traffic from the client to the proxy. Only IPv4 + // health checks are used to check the health of the backends. This is the + // default setting. + // - PREFER_IPV6: Prioritize the connection to the endpoint's + // IPv6 address over its IPv4 address (provided there is a healthy IPv6 + // address). + // - IPV6_ONLY: Only send IPv6 traffic to the backends of the + // backend service (Instance Group, Managed Instance Group, Network + // Endpoint + // Group), regardless of traffic from the client to the proxy. Only IPv6 + // health checks are used to check the health of the backends. + // + // + // + // This field is applicable to either: + // + // - Advanced global external Application Load Balancer (load balancing + // scheme EXTERNAL_MANAGED), + // - Regional external Application Load + // Balancer, + // - Internal proxy Network Load Balancer (load balancing + // scheme INTERNAL_MANAGED), + // - Regional internal Application Load + // Balancer (load balancing scheme INTERNAL_MANAGED), + // - Traffic + // Director with Envoy proxies and proxyless gRPC (load balancing scheme + // INTERNAL_SELF_MANAGED). + // + // Possible values: + // "IPV4_ONLY" - Only send IPv4 traffic to the backends of the Backend + // Service + // (Instance Group, Managed Instance Group, Network Endpoint Group) + // regardless of traffic from the client to the proxy. + // Only IPv4 health-checks are used to check the health of the backends. + // This is the default setting. + // "IPV6_ONLY" - Only send IPv6 traffic to the backends of the Backend + // Service + // (Instance Group, Managed Instance Group, Network Endpoint Group) + // regardless of traffic from the client to the proxy. Only IPv6 + // health-checks are used to check the health of the backends. + // "IP_ADDRESS_SELECTION_POLICY_UNSPECIFIED" - Unspecified IP address + // selection policy. + // "PREFER_IPV6" - Prioritize the connection to the endpoints IPv6 + // address + // over its IPv4 address (provided there is a healthy IPv6 address). + IpAddressSelectionPolicy string `json:"ipAddressSelectionPolicy,omitempty"` + // Kind: Output only. [Output Only] Type of resource. Always + // compute#backendService + // for backend services. Kind string `json:"kind,omitempty"` + // LoadBalancingScheme: Specifies the load balancer type. A backend + // service + // created for one type of load balancer cannot be used with another. + // For more information, refer toChoosing + // a load balancer. + // + // Possible values: + // "EXTERNAL" - Signifies that this will be used for classic Application Load + // Balancers, + // global external proxy Network Load Balancers, + // or external passthrough Network Load Balancers. + // "EXTERNAL_MANAGED" - Signifies that this will be used for global external + // Application Load + // Balancers, regional external Application Load Balancers, or + // regional + // external proxy Network Load Balancers. + // "INTERNAL" - Signifies that this will be used for internal passthrough + // Network Load + // Balancers. + // "INTERNAL_MANAGED" - Signifies that this will be used for internal + // Application Load Balancers. + // "INTERNAL_SELF_MANAGED" - Signifies that this will be used by Traffic + // Director. + // "INVALID_LOAD_BALANCING_SCHEME" + LoadBalancingScheme string `json:"loadBalancingScheme,omitempty"` + // LocalityLbPolicies: A list of locality load-balancing policies to be used in + // order of + // preference. When you use localityLbPolicies, you must set at least one + // value for either the localityLbPolicies[].policy or + // the + // localityLbPolicies[].customPolicy field. localityLbPolicies overrides + // any + // value set in the localityLbPolicy field. + // + // For an example of how to use this field, seeDefine + // a list of preferred policies. + // + // Caution: This field and its children are intended for use in a service + // mesh + // that includes gRPC clients only. Envoy proxies can't use backend + // services + // that have this configuration. + LocalityLbPolicies []*BackendServiceLocalityLoadBalancingPolicyConfig `json:"localityLbPolicies,omitempty"` + // LocalityLbPolicy: The load balancing algorithm used within the scope of the + // locality. The + // possible values are: + // + // - ROUND_ROBIN: This is a simple policy in which each healthy + // backend is selected in round robin order. This is the default. + // - LEAST_REQUEST: An O(1) algorithm which + // selects two random healthy hosts and picks the host which has fewer + // active + // requests. + // - RING_HASH: The ring/modulo hash load balancer implements + // consistent hashing to backends. The algorithm has the property that the + // addition/removal of a host from a set of N hosts only affects 1/N of the + // requests. + // - RANDOM: The load balancer selects a random healthy + // host. + // - ORIGINAL_DESTINATION: Backend host is selected + // based on the client connection metadata, i.e., connections are opened to + // the same address as the destination address of the incoming connection + // before the connection was redirected to the load balancer. + // - MAGLEV: used as a drop in replacement for the ring hash + // load balancer. Maglev is not as stable as ring hash but has faster table + // lookup build times and host selection times. For more information about + // Maglev, see Maglev: + // A Fast and Reliable Software Network Load Balancer. + // - WEIGHTED_ROUND_ROBIN: Per-endpoint Weighted Round Robin + // Load Balancing using weights computed from Backend reported Custom + // Metrics. + // If set, the Backend Service responses are expected to contain + // non-standard + // HTTP response header field Endpoint-Load-Metrics. The reported + // metrics to use for computing the weights are specified via + // thecustomMetrics field. + // + // This field is applicable to either: + // - A regional backend service with the service protocol set to HTTP, + // HTTPS, HTTP2 or H2C, and load_balancing_scheme set to + // INTERNAL_MANAGED. + // - A global backend service with the + // load_balancing_scheme set to INTERNAL_SELF_MANAGED, INTERNAL_MANAGED, + // or + // EXTERNAL_MANAGED. + // + // + // If sessionAffinity is not configured—that is, if session + // affinity remains at the default value of NONE—then the + // default value for localityLbPolicy + // is ROUND_ROBIN. If session affinity is set to a value other + // than NONE, + // then the default value for localityLbPolicy isMAGLEV. + // + // Only ROUND_ROBIN and RING_HASH are supported + // when the backend service is referenced by a URL map that is bound to + // target gRPC proxy that has validateForProxyless field set to true. + // + // localityLbPolicy cannot be specified with haPolicy. + // + // Possible values: + // "INVALID_LB_POLICY" + // "LEAST_REQUEST" - An O(1) algorithm which selects two random healthy hosts + // and + // picks the host which has fewer active requests. + // "MAGLEV" - This algorithm implements consistent hashing to backends. + // Maglev can be + // used as a drop in replacement for the ring hash load balancer. Maglev is + // not as stable as ring hash but has faster table lookup build times and + // host selection times. For more information about Maglev, seeMaglev: + // A Fast and Reliable Software Network Load Balancer. + // "ORIGINAL_DESTINATION" - Backend host is selected based on the client + // connection metadata, i.e., + // connections are opened to the same address as the destination address of + // the incoming connection before the connection was redirected to the + // load + // balancer. + // "RANDOM" - The load balancer selects a random healthy host. + // "RING_HASH" - The ring/modulo hash load balancer implements consistent + // hashing to + // backends. The algorithm has the property that the addition/removal + // of a host from a set of N hosts only affects 1/N of the requests. + // "ROUND_ROBIN" - This is a simple policy in which each healthy backend is + // selected + // in round robin order. This is the default. + // "WEIGHTED_GCP_RENDEZVOUS" - Per-instance weighted Load Balancing via + // health check reported weights. + // In internal passthrough network load balancing, it is weighted + // rendezvous hashing. + // This option is only supported in internal passthrough network + // load + // balancing. + // "WEIGHTED_MAGLEV" - Per-instance weighted Load Balancing via health check + // reported weights. + // If set, the Backend Service must configure a non legacy HTTP-based + // Health + // Check, and health check replies are expected to contain non-standard + // HTTP + // response header field X-Load-Balancing-Endpoint-Weight to specify + // the + // per-instance weights. + // If set, Load Balancing is weighted based on the + // per-instance weights reported in the last processed health check replies, + // as long as every instance either reported a valid weight or + // had + // UNAVAILABLE_WEIGHT. Otherwise, Load Balancing remains equal-weight. + // This option is only supported in Network Load Balancing. + // "WEIGHTED_ROUND_ROBIN" - Per-endpoint weighted round-robin Load Balancing + // using weights computed + // from Backend reported Custom Metrics. If set, the Backend Service + // responses are expected to contain non-standard HTTP response header + // field + // Endpoint-Load-Metrics. The reported metrics + // to use for computing the weights are specified via the + // customMetrics fields. + LocalityLbPolicy string `json:"localityLbPolicy,omitempty"` + // LogConfig: This field denotes the logging options for the load balancer + // traffic served + // by this backend service. If logging is enabled, logs will be exported + // to + // Stackdriver. + LogConfig *BackendServiceLogConfig `json:"logConfig,omitempty"` + // MaxStreamDuration: Specifies the default maximum duration (timeout) for + // streams to this + // service. Duration is computed from the beginning of the stream until + // the + // response has been completely processed, including all retries. A stream + // that does not complete in this duration is closed. + // + // If not specified, there will be no timeout limit, i.e. the maximum + // duration is infinite. + // + // This value can be overridden in the PathMatcher configuration of the + // UrlMap that references this backend service. + // + // This field is only allowed when the loadBalancingScheme of + // the backend service is INTERNAL_SELF_MANAGED. + MaxStreamDuration *Duration `json:"maxStreamDuration,omitempty"` + // Metadatas: Deployment metadata associated with the resource to be set by a + // GKE hub + // controller and read by the backend RCTH + Metadatas map[string]string `json:"metadatas,omitempty"` + // Name: Name of the resource. Provided by the client when the resource is + // created. + // The name must be 1-63 characters long, and comply withRFC1035. + // 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. + Name string `json:"name,omitempty"` + // Network: The URL of the network to which this backend service belongs. + // + // This field must be set for Internal Passthrough Network Load Balancers + // when + // the haPolicy is enabled, and for External Passthrough Network Load + // Balancers when the haPolicy fastIpMove is enabled. + // + // This field can only be specified when the load balancing scheme is set + // toINTERNAL, or when the load balancing scheme is set toEXTERNAL and haPolicy + // fastIpMove is enabled. + Network string `json:"network,omitempty"` + // NetworkPassThroughLbTrafficPolicy: Configures traffic steering properties of + // internal passthrough Network + // Load Balancers. + // + // networkPassThroughLbTrafficPolicy cannot be specified with haPolicy. + NetworkPassThroughLbTrafficPolicy *BackendServiceNetworkPassThroughLbTrafficPolicy `json:"networkPassThroughLbTrafficPolicy,omitempty"` + // OrchestrationInfo: Information about the resource or system that manages the + // backend service. + OrchestrationInfo *BackendServiceOrchestrationInfo `json:"orchestrationInfo,omitempty"` + // OutlierDetection: Settings controlling the ejection of unhealthy backend + // endpoints from the + // load balancing pool of each individual proxy instance that processes + // the + // traffic for the given backend service. If not set, this feature + // is + // considered disabled. + // + // Results of the outlier detection algorithm (ejection of endpoints from + // the + // load balancing pool and returning them back to the pool) are + // executed + // independently by each proxy instance of the load balancer. In most + // cases, + // more than one proxy instance handles the traffic received by a + // backend + // service. Thus, it is possible that an unhealthy endpoint is detected + // and + // ejected by only some of the proxies, and while this happens, other + // proxies + // may continue to send requests to the same unhealthy endpoint until + // they + // detect and eject the unhealthy endpoint. + // + // Applicable backend endpoints can be: + // + // - VM instances in an Instance Group + // - Endpoints in a Zonal NEG (GCE_VM_IP, GCE_VM_IP_PORT) + // - Endpoints in a Hybrid Connectivity NEG (NON_GCP_PRIVATE_IP_PORT) + // - Serverless NEGs, that resolve to Cloud Run, App Engine, or Cloud + // Functions Services + // - Private Service Connect NEGs, that resolve to + // Google-managed regional API endpoints or managed services published + // using + // Private Service Connect + // + // + // + // Applicable backend service types can be: + // + // - A global backend service with the loadBalancingScheme set to + // INTERNAL_SELF_MANAGED or EXTERNAL_MANAGED. + // - A regional backend + // service with the service protocol set to HTTP, HTTPS, HTTP2 or H2C, and + // loadBalancingScheme set to INTERNAL_MANAGED or EXTERNAL_MANAGED. Not + // supported for Serverless NEGs. + // + // + // + // Not supported when the backend service is referenced by a URL map that + // is + // bound to target gRPC proxy that has validateForProxyless field set to true. + OutlierDetection *OutlierDetection `json:"outlierDetection,omitempty"` + // Params: Input only. [Input Only] Additional params passed with the request, + // but not persisted + // as part of resource payload. + Params *BackendServiceParams `json:"params,omitempty"` + // Port: Deprecated in favor of portName. The TCP port to connect on + // the backend. The default value is 80. + // For internal passthrough Network Load Balancers and external + // passthrough + // Network Load Balancers, omit port. + Port int64 `json:"port,omitempty"` + // PortName: A named port on a backend instance group representing the port + // for + // communication to the backend VMs in that group. The + // named port must be defined on each backend instance + // group + // (https://cloud.google.com/load-balancing/docs/backend-service#named_ports). + // This parameter has no meaning if the backends are NEGs. For + // internal + // passthrough Network Load Balancers and external passthrough Network + // Load + // Balancers, omit port_name. + PortName string `json:"portName,omitempty"` + // Protocol: The protocol this BackendService uses to communicate + // with backends. + // + // Possible values are HTTP, HTTPS, HTTP2, H2C, TCP, SSL, UDP or + // GRPC. + // depending on the chosen load balancer or Traffic Director + // configuration. + // Refer to the documentation for the load balancers or for Traffic + // Director + // for more information. + // + // Must be set to GRPC when the backend service is referenced by a URL map + // that is bound to target gRPC proxy. + // + // Possible values: + // "GRPC" - gRPC (available for Traffic Director). + // "H2C" - HTTP2 over cleartext + // "HTTP" + // "HTTP2" - HTTP/2 with SSL. + // "HTTPS" + // "SSL" - TCP proxying with SSL. + // "TCP" - TCP proxying or TCP pass-through. + // "UDP" - UDP. + // "UNSPECIFIED" - If a Backend Service has UNSPECIFIED as its protocol, it + // can be used with + // any L3/L4 Forwarding Rules. + Protocol string `json:"protocol,omitempty"` + // Region: Output only. [Output Only] URL of the region where the regional + // backend service + // resides. This field is not applicable to global backend services. + // You must specify this field as part of the HTTP request URL. It is + // not settable as a field in the request body. + Region string `json:"region,omitempty"` + // SecurityPolicy: [Output Only] The resource URL for the security policy + // associated with this + // backend service. + SecurityPolicy string `json:"securityPolicy,omitempty"` + // SecuritySettings: This field specifies the security settings that apply to + // this backend + // service. This field is applicable to a global backend service with + // the + // load_balancing_scheme set to INTERNAL_SELF_MANAGED. + SecuritySettings *SecuritySettings `json:"securitySettings,omitempty"` + // SelfLink: [Output Only] Server-defined URL for the resource. + SelfLink string `json:"selfLink,omitempty"` + // ServiceBindings: URLs of networkservices.ServiceBinding resources. + // + // Can only be set if load balancing scheme is INTERNAL_SELF_MANAGED. + // If set, lists of backends and health checks must be both empty. + ServiceBindings []string `json:"serviceBindings,omitempty"` + // ServiceLbPolicy: URL to networkservices.ServiceLbPolicy resource. + // + // Can only be set if load balancing scheme is + // EXTERNAL_MANAGED, + // INTERNAL_MANAGED or INTERNAL_SELF_MANAGED and the scope is global. + ServiceLbPolicy string `json:"serviceLbPolicy,omitempty"` + // SessionAffinity: Type of session affinity to use. The default is NONE. + // + // Only NONE and HEADER_FIELD are supported + // when the backend service is referenced by a URL map that is bound to + // target gRPC proxy that has validateForProxyless field set to true. + // + // For more details, see: + // Session + // Affinity + // (https://cloud.google.com/load-balancing/docs/backend-service#session_affinity). + // + // sessionAffinity cannot be specified with haPolicy. + // + // Possible values: + // "CLIENT_IP" - 2-tuple hash on packet's source and destination IP + // addresses. Connections + // from the same source IP address to the same destination IP address will + // be + // served by the same backend VM while that VM remains healthy. + // "CLIENT_IP_NO_DESTINATION" - 1-tuple hash only on packet's source IP + // address. Connections from the + // same source IP address will be served by the same backend VM while that + // VM + // remains healthy. This option can only be used for Internal TCP/UDP + // Load Balancing. + // "CLIENT_IP_PORT_PROTO" - 5-tuple hash on packet's source and destination + // IP addresses, IP protocol, + // and source and destination ports. Connections for the same IP protocol + // from the same source IP address and port to the same destination IP + // address + // and port will be served by the same backend VM while that VM + // remains + // healthy. This option cannot be used for HTTP(S) load balancing. + // "CLIENT_IP_PROTO" - 3-tuple hash on packet's source and destination IP + // addresses, and IP + // protocol. Connections for the same IP protocol from the same source + // IP + // address to the same destination IP address will be served by the + // same + // backend VM while that VM remains healthy. This option cannot be used + // for + // HTTP(S) load balancing. + // "GENERATED_COOKIE" - Hash based on a cookie generated by the L7 + // loadbalancer. + // Only valid for HTTP(S) load balancing. + // "HEADER_FIELD" - The hash is based on a user specified header field. + // "HTTP_COOKIE" - The hash is based on a user provided cookie. + // "NONE" - No session affinity. Connections from the same client IP may + // go + // to any instance in the pool. + // "STRONG_COOKIE_AFFINITY" - Strong cookie-based affinity. Connections + // bearing the same cookie will be + // served by the same backend VM while that VM remains healthy, as long as + // the + // cookie has not expired. + SessionAffinity string `json:"sessionAffinity,omitempty"` + // StrongSessionAffinityCookie: Describes the HTTP cookie used for stateful + // session affinity. This field is + // applicable and required if the sessionAffinity is set + // toSTRONG_COOKIE_AFFINITY. + StrongSessionAffinityCookie *BackendServiceHttpCookie `json:"strongSessionAffinityCookie,omitempty"` + // Subsetting: subsetting cannot be specified with haPolicy. + Subsetting *Subsetting `json:"subsetting,omitempty"` + // TimeoutSec: The backend service timeout has a different meaning depending on + // the + // type of load balancer. For more information see, + // Backend service settings. + // The default is 30 seconds. + // The full range of timeout values allowed goes from 1 + // through 2,147,483,647 seconds. + // + // This value can be overridden in the PathMatcher configuration of the + // UrlMap that references this backend service. + // + // Not supported when the backend service is referenced by a URL map that + // is + // bound to target gRPC proxy that has validateForProxyless field set to + // true. + // Instead, use maxStreamDuration. + TimeoutSec int64 `json:"timeoutSec,omitempty"` + // TlsSettings: Configuration for Backend Authenticated TLS and mTLS. May only + // be specified + // when the backend protocol is SSL, HTTPS or HTTP2. + TlsSettings *BackendServiceTlsSettings `json:"tlsSettings,omitempty"` + // UsedBy: Output only. [Output Only] List of resources referencing given + // backend service. + UsedBy []*BackendServiceUsedBy `json:"usedBy,omitempty"` // ServerResponse contains the HTTP response code and headers from the server. googleapi.ServerResponse `json:"-"` - // ForceSendFields is a list of field names (e.g. "Annotations") to + // ForceSendFields is a list of field names (e.g. "AffinityCookieTtlSec") to // unconditionally include in API requests. By default, fields with empty or // default values are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. ForceSendFields []string `json:"-"` - // NullFields is a list of field names (e.g. "Annotations") to include in API - // requests with the JSON null value. By default, fields with empty values are - // omitted from API requests. See + // NullFields is a list of field names (e.g. "AffinityCookieTtlSec") to include + // in API requests with the JSON null value. By default, fields with empty + // values are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } -func (s *BackendServiceGroupHealth) MarshalJSON() ([]byte, error) { - type NoMethod BackendServiceGroupHealth - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) -} - -// BackendServiceIAP: Identity-Aware Proxy -type BackendServiceIAP struct { - // Enabled: Whether the serving infrastructure will authenticate and authorize - // all incoming requests. - Enabled bool `json:"enabled,omitempty"` - // Oauth2ClientId: OAuth2 client ID to use for the authentication flow. - Oauth2ClientId string `json:"oauth2ClientId,omitempty"` - // Oauth2ClientSecret: OAuth2 client secret to use for the authentication flow. - // For security reasons, this value cannot be retrieved via the API. Instead, - // the SHA-256 hash of the value is returned in the oauth2ClientSecretSha256 - // field. @InputOnly - Oauth2ClientSecret string `json:"oauth2ClientSecret,omitempty"` - // Oauth2ClientSecretSha256: [Output Only] SHA256 hash value for the field - // oauth2_client_secret above. - Oauth2ClientSecretSha256 string `json:"oauth2ClientSecretSha256,omitempty"` - // ForceSendFields is a list of field names (e.g. "Enabled") to unconditionally - // include in API requests. By default, fields with empty or default values are - // omitted from API requests. See - // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more - // details. - ForceSendFields []string `json:"-"` - // NullFields is a list of field names (e.g. "Enabled") to include in API - // requests with the JSON null value. By default, fields with empty values are - // omitted from API requests. See - // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. - NullFields []string `json:"-"` +func (s BackendService) MarshalJSON() ([]byte, error) { + type NoMethod BackendService + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -func (s *BackendServiceIAP) MarshalJSON() ([]byte, error) { - type NoMethod BackendServiceIAP - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s *BackendService) UnmarshalJSON(data []byte) error { + type NoMethod BackendService + var s1 struct { + ExternalManagedMigrationTestingPercentage gensupport.JSONFloat64 `json:"externalManagedMigrationTestingPercentage"` + *NoMethod + } + s1.NoMethod = (*NoMethod)(s) + if err := json.Unmarshal(data, &s1); err != nil { + return err + } + s.ExternalManagedMigrationTestingPercentage = float64(s1.ExternalManagedMigrationTestingPercentage) + return nil } -// BackendServiceList: Contains a list of BackendService resources. -type BackendServiceList struct { +// BackendServiceAggregatedList: Contains a list of BackendServicesScopedList. +type BackendServiceAggregatedList struct { // Id: [Output Only] Unique identifier for the resource; defined by the server. Id string `json:"id,omitempty"` - // Items: A list of BackendService resources. - Items []*BackendService `json:"items,omitempty"` - // Kind: [Output Only] Type of resource. Always compute#backendServiceList for - // lists of backend services. + // Items: A list of BackendServicesScopedList resources. + Items map[string]BackendServicesScopedList `json:"items,omitempty"` + // Kind: Output only. Type of resource. 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. + // results for + // list requests. If the number of results is larger thanmaxResults, 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"` - // SelfLink: [Output Only] Server-defined URL for this resource. + // SelfLink: Output only. [Output Only] Server-defined URL for this resource. SelfLink string `json:"selfLink,omitempty"` + // Unreachables: Output only. [Output Only] Unreachable resources. + Unreachables []string `json:"unreachables,omitempty"` // Warning: [Output Only] Informational warning message. - Warning *BackendServiceListWarning `json:"warning,omitempty"` + Warning *BackendServiceAggregatedListWarning `json:"warning,omitempty"` // ServerResponse contains the HTTP response code and headers from the server. googleapi.ServerResponse `json:"-"` @@ -5829,76 +7758,99 @@ type BackendServiceList struct { NullFields []string `json:"-"` } -func (s *BackendServiceList) MarshalJSON() ([]byte, error) { - type NoMethod BackendServiceList - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s BackendServiceAggregatedList) MarshalJSON() ([]byte, error) { + type NoMethod BackendServiceAggregatedList + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -// BackendServiceListWarning: [Output Only] Informational warning message. -type BackendServiceListWarning 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. +// BackendServiceAggregatedListWarning: [Output Only] Informational warning +// message. +type BackendServiceAggregatedListWarning 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" - Warning about failed cleanup of transient changes made - // by a failed operation. + // by a failed + // operation. // "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was created. // "DEPRECATED_TYPE_USED" - When deploying and at least one of the resources - // has a type marked as deprecated + // has a type marked as + // deprecated // "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk that is // larger than image size. // "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the - // resources has a type marked as experimental + // resources has a type marked as + // experimental // "EXTERNAL_API_WARNING" - Warning that is present in an external api call // "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been - // overridden. Deprecated unused field. + // overridden. + // Deprecated unused field. // "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an injected // kernel, which is deprecated. // "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB" - A WEIGHTED_MAGLEV backend - // service is associated with a health check that is not of type - // HTTP/HTTPS/HTTP2. + // service is associated with a health check that is + // not of type HTTP/HTTPS/HTTP2. // "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a // exceedingly large number of resources // "LIST_OVERHEAD_QUOTA_EXCEED" - Resource can't be retrieved due to list - // overhead quota exceed which captures the amount of resources filtered out by + // overhead quota exceed + // which captures the amount of resources filtered out by // user-defined list filter. // "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is not - // assigned to an instance on the network. + // assigned to an instance on the + // network. // "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot ip // forward. // "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE" - The route's nextHopInstance - // URL refers to an instance that does not have an ipv6 interface on the same - // network as the route. + // URL refers to an instance that does not have an + // ipv6 interface on the same network as the route. // "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL refers to // an instance that does not exist. // "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance URL - // refers to an instance that is not on the same network as the route. + // refers to an instance that is not on the + // same network as the route. // "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not have a // status of RUNNING. // "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to continue - // the process despite the mentioned error. + // the process despite + // the mentioned error. // "NO_RESULTS_ON_PAGE" - No results are present on a particular list page. // "PARTIAL_SUCCESS" - Success is reported, but some results may be missing // due to errors + // "QUOTA_INFO_UNAVAILABLE" - Quota information is not available to client + // requests (e.g: + // regions.list). // "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource that - // requires a TOS they have not accepted. + // requires a TOS they have not + // accepted. // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a resource is // in use. // "RESOURCE_NOT_DELETED" - One or more of the resources set to auto-delete - // could not be deleted because they were in use. + // could not be deleted + // because they were in use. // "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is // ignored. // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in instance - // group manager is valid as such, but its application does not make a lot of - // sense, because it allows only single instance in instance group. + // group manager is valid as such, but + // its application does not make a lot of sense, because it allows only + // single instance in instance group. // "UNDECLARED_PROPERTIES" - When undeclared properties in the schema are // present // "UNREACHABLE" - A given scope cannot be reached. 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 []*BackendServiceListWarningData `json:"data,omitempty"` + // Data: [Output Only] Metadata about this warning in key: + // value format. For example: + // + // "data": [ + // { + // "key": "scope", + // "value": "zones/us-east1-d" + // } + Data []*BackendServiceAggregatedListWarningData `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 @@ -5914,19 +7866,22 @@ type BackendServiceListWarning struct { NullFields []string `json:"-"` } -func (s *BackendServiceListWarning) MarshalJSON() ([]byte, error) { - type NoMethod BackendServiceListWarning - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s BackendServiceAggregatedListWarning) MarshalJSON() ([]byte, error) { + type NoMethod BackendServiceAggregatedListWarning + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -type BackendServiceListWarningData 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). +type BackendServiceAggregatedListWarningData 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"` @@ -5943,471 +7898,894 @@ type BackendServiceListWarningData struct { NullFields []string `json:"-"` } -func (s *BackendServiceListWarningData) MarshalJSON() ([]byte, error) { - type NoMethod BackendServiceListWarningData - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s BackendServiceAggregatedListWarningData) MarshalJSON() ([]byte, error) { + type NoMethod BackendServiceAggregatedListWarningData + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -// BackendServiceListUsable: Contains a list of usable BackendService -// resources. -type BackendServiceListUsable struct { - // Id: [Output Only] Unique identifier for the resource; defined by the server. - Id string `json:"id,omitempty"` - // Items: A list of BackendService resources. - Items []*BackendService `json:"items,omitempty"` - // Kind: [Output Only] Type of resource. Always - // compute#usableBackendServiceList for lists of usable backend services. - 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"` - // SelfLink: [Output Only] Server-defined URL for this resource. - SelfLink string `json:"selfLink,omitempty"` - // Warning: [Output Only] Informational warning message. - Warning *BackendServiceListUsableWarning `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 or default values are - // omitted from API requests. See - // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more - // details. +// BackendServiceCdnPolicy: Message containing Cloud CDN configuration for a +// backend service. +type BackendServiceCdnPolicy struct { + // BypassCacheOnRequestHeaders: Bypass the cache when the specified request + // headers are matched - e.g. + // Pragma or Authorization headers. Up to 5 headers can be specified. + // The cache is bypassed for all cdnPolicy.cacheMode settings. + BypassCacheOnRequestHeaders []*BackendServiceCdnPolicyBypassCacheOnRequestHeader `json:"bypassCacheOnRequestHeaders,omitempty"` + // CacheKeyPolicy: The CacheKeyPolicy for this CdnPolicy. + CacheKeyPolicy *CacheKeyPolicy `json:"cacheKeyPolicy,omitempty"` + // CacheMode: Specifies the cache setting for all responses from this + // backend. + // The possible values are:USE_ORIGIN_HEADERS Requires the origin to set valid + // caching + // headers to cache content. Responses without these headers will not be + // cached at Google's edge, and will require a full trip to the origin on + // every request, potentially impacting performance and increasing load on + // the origin server.FORCE_CACHE_ALL Cache all content, ignoring any + // "private", + // "no-store" or "no-cache" directives in Cache-Control response + // headers. + // Warning: this may result in Cloud CDN caching private, + // per-user (user identifiable) content.CACHE_ALL_STATIC Automatically cache + // static content, + // including common image formats, media (video and audio), and web + // assets + // (JavaScript and CSS). Requests and responses that are marked as + // uncacheable, as well as dynamic content (including HTML), will not + // be + // cached. + // + // If no value is provided for cdnPolicy.cacheMode, it defaults + // to CACHE_ALL_STATIC. + // + // Possible values: + // "CACHE_ALL_STATIC" - Automatically cache static content, including common + // image formats, + // media (video and audio), and web assets (JavaScript and CSS). + // Requests and responses that are marked as uncacheable, as well as + // dynamic content (including HTML), will not be cached. + // "FORCE_CACHE_ALL" - Cache all content, ignoring any "private", "no-store" + // or "no-cache" + // directives in Cache-Control response headers. + // Warning: this may result in Cloud CDN caching private, + // per-user (user identifiable) content. + // "INVALID_CACHE_MODE" + // "USE_ORIGIN_HEADERS" - Requires the origin to set valid caching headers to + // cache content. + // Responses without these headers will not be cached at Google's edge, + // and will require a full trip to the origin on every request, + // potentially impacting performance and increasing load on the + // origin server. + CacheMode string `json:"cacheMode,omitempty"` + // ClientTtl: Specifies a separate client (e.g. browser client) maximum TTL. + // This is + // used to clamp the max-age (or Expires) value sent to the client. + // With + // FORCE_CACHE_ALL, the lesser of client_ttl and default_ttl is used for + // the + // response max-age directive, along with a "public" directive. For + // cacheable content in CACHE_ALL_STATIC mode, client_ttl clamps the + // max-age + // from the origin (if specified), or else sets the response max-age + // directive to the lesser of the client_ttl and default_ttl, and also + // ensures a "public" cache-control directive is present. + // If a client TTL is not specified, a default value (1 hour) will be used. + // The maximum allowed value is 31,622,400s (1 year). + ClientTtl int64 `json:"clientTtl,omitempty"` + // DefaultTtl: Specifies the default TTL for cached content served by this + // origin for + // responses that do not have an existing valid TTL (max-age or + // s-maxage). + // Setting a TTL of "0" means "always revalidate". + // The value of defaultTTL cannot be set to a value greater than that + // of + // maxTTL, but can be equal. + // When the cacheMode is set to FORCE_CACHE_ALL, the defaultTTL + // will overwrite the TTL set in all responses. The maximum allowed value + // is + // 31,622,400s (1 year), noting that infrequently accessed objects may + // be + // evicted from the cache before the defined TTL. + DefaultTtl int64 `json:"defaultTtl,omitempty"` + // MaxTtl: Specifies the maximum allowed TTL for cached content served by + // this + // origin. + // Cache directives that attempt to set a max-age or s-maxage higher than + // this, or an Expires header more than maxTTL seconds in the future will + // be capped at the value of maxTTL, as if it were the value of an + // s-maxage Cache-Control directive. + // Headers sent to the client will not be modified. + // Setting a TTL of "0" means "always revalidate". + // The maximum allowed value is 31,622,400s (1 year), noting that + // infrequently accessed objects may be evicted from the cache before + // the defined TTL. + MaxTtl int64 `json:"maxTtl,omitempty"` + // NegativeCaching: Negative caching allows per-status code TTLs to be set, in + // order + // to apply fine-grained caching for common errors or redirects. + // This can reduce the load on your origin and improve end-user + // experience by reducing response latency. + // When the cache mode is set to CACHE_ALL_STATIC or + // USE_ORIGIN_HEADERS, + // negative caching applies to responses with the specified response code + // that lack any Cache-Control, Expires, or Pragma: no-cache directives. + // When the cache mode is set to FORCE_CACHE_ALL, negative caching applies + // to all responses with the specified response code, and override any + // caching headers. + // By default, Cloud CDN will apply the following default TTLs to these + // status codes: + // HTTP 300 (Multiple Choice), 301, 308 (Permanent Redirects): 10m + // HTTP 404 (Not Found), 410 (Gone), + // 451 (Unavailable For Legal Reasons): 120s + // HTTP 405 (Method Not Found), 501 (Not Implemented): 60s. + // These defaults can be overridden in negative_caching_policy. + NegativeCaching bool `json:"negativeCaching,omitempty"` + // NegativeCachingPolicy: Sets a cache TTL for the specified HTTP status + // code. + // negative_caching must be enabled to configure + // negative_caching_policy. + // Omitting the policy and leaving negative_caching enabled will use + // Cloud CDN's default cache TTLs. + // Note that when specifying an explicit negative_caching_policy, you + // should take care to specify a cache TTL for all response codes + // that you wish to cache. Cloud CDN will not apply any default + // negative caching when a policy exists. + NegativeCachingPolicy []*BackendServiceCdnPolicyNegativeCachingPolicy `json:"negativeCachingPolicy,omitempty"` + // RequestCoalescing: If true then Cloud CDN will combine multiple concurrent + // cache fill + // requests into a small number of requests to the origin. + RequestCoalescing bool `json:"requestCoalescing,omitempty"` + // ServeWhileStale: Serve existing content from the cache (if available) when + // revalidating + // content with the origin, or when an error is encountered when refreshing + // the cache. + // This setting defines the default "max-stale" duration for any + // cached + // responses that do not specify a max-stale directive. Stale responses + // that + // exceed the TTL configured here will not be served. The default + // limit + // (max-stale) is 86400s (1 day), which will allow stale content to be + // served up to this limit beyond the max-age (or s-maxage) of a + // cached + // response. + // The maximum allowed value is 604800 (1 week). + // Set this to zero (0) to disable serve-while-stale. + ServeWhileStale int64 `json:"serveWhileStale,omitempty"` + // SignedUrlCacheMaxAgeSec: Maximum number of seconds the response to a signed + // URL request will be + // considered fresh. After this time period, the response will be + // revalidated before being served. Defaults to 1hr (3600s). When + // serving + // responses to signed URL requests, Cloud CDN will internally behave 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 for signing request URLs. + SignedUrlKeyNames []string `json:"signedUrlKeyNames,omitempty"` + // ForceSendFields is a list of field names (e.g. + // "BypassCacheOnRequestHeaders") to unconditionally include in API requests. + // By default, fields with empty or default values are omitted from API + // requests. See https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields + // for more details. 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. See + // NullFields is a list of field names (e.g. "BypassCacheOnRequestHeaders") to + // include in API requests with the JSON null value. By default, fields with + // empty values are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } -func (s *BackendServiceListUsable) MarshalJSON() ([]byte, error) { - type NoMethod BackendServiceListUsable - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s BackendServiceCdnPolicy) MarshalJSON() ([]byte, error) { + type NoMethod BackendServiceCdnPolicy + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -// BackendServiceListUsableWarning: [Output Only] Informational warning -// message. -type BackendServiceListUsableWarning 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" - Warning about failed cleanup of transient changes made - // by a failed operation. - // "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was created. - // "DEPRECATED_TYPE_USED" - When deploying and at least one of the resources - // has a type marked as deprecated - // "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk that is - // larger than image size. - // "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the - // resources has a type marked as experimental - // "EXTERNAL_API_WARNING" - Warning that is present in an external api call - // "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been - // overridden. Deprecated unused field. - // "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an injected - // kernel, which is deprecated. - // "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB" - A WEIGHTED_MAGLEV backend - // service is associated with a health check that is not of type - // HTTP/HTTPS/HTTP2. - // "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a - // exceedingly large number of resources - // "LIST_OVERHEAD_QUOTA_EXCEED" - Resource can't be retrieved due to list - // overhead quota exceed which captures the amount of resources filtered out by - // user-defined list filter. - // "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type - // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is not - // assigned to an instance on the network. - // "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot ip - // forward. - // "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE" - The route's nextHopInstance - // URL refers to an instance that does not have an ipv6 interface on the same - // network as the route. - // "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL refers to - // an instance that does not exist. - // "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance URL - // refers to an instance that is not on the same network as the route. - // "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not have a - // status of RUNNING. - // "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to continue - // the process despite the mentioned error. - // "NO_RESULTS_ON_PAGE" - No results are present on a particular list page. - // "PARTIAL_SUCCESS" - Success is reported, but some results may be missing - // due to errors - // "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource that - // requires a TOS they have not accepted. - // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a resource is - // in use. - // "RESOURCE_NOT_DELETED" - One or more of the resources set to auto-delete - // could not be deleted because they were in use. - // "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is - // ignored. - // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in instance - // group manager is valid as such, but its application does not make a lot of - // sense, because it allows only single instance in instance group. - // "UNDECLARED_PROPERTIES" - When undeclared properties in the schema are - // present - // "UNREACHABLE" - A given scope cannot be reached. - 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 []*BackendServiceListUsableWarningData `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 or default values are - // omitted from API requests. See +// BackendServiceCdnPolicyBypassCacheOnRequestHeader: Bypass the cache when the +// specified request headers are present, +// e.g. Pragma or Authorization headers. Values are case insensitive. +// The presence of such a header overrides the cache_mode setting. +type BackendServiceCdnPolicyBypassCacheOnRequestHeader struct { + // HeaderName: The header field name to match on when bypassing cache. + // Values are case-insensitive. + HeaderName string `json:"headerName,omitempty"` + // ForceSendFields is a list of field names (e.g. "HeaderName") to + // unconditionally include in API requests. By default, fields with empty or + // default values are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. 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. See + // NullFields is a list of field names (e.g. "HeaderName") to include in API + // requests with the JSON null value. By default, fields with empty values are + // omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } -func (s *BackendServiceListUsableWarning) MarshalJSON() ([]byte, error) { - type NoMethod BackendServiceListUsableWarning - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s BackendServiceCdnPolicyBypassCacheOnRequestHeader) MarshalJSON() ([]byte, error) { + type NoMethod BackendServiceCdnPolicyBypassCacheOnRequestHeader + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -type BackendServiceListUsableWarningData 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 +// BackendServiceCdnPolicyNegativeCachingPolicy: Specify CDN TTLs for response +// error codes. +type BackendServiceCdnPolicyNegativeCachingPolicy struct { + // Code: The HTTP status code to define a TTL against. Only HTTP status + // codes + // 300, 301, 302, 307, 308, 404, 405, 410, 421, 451 and 501 can be + // specified as values, and you cannot specify a status code more than + // once. + Code int64 `json:"code,omitempty"` + // Ttl: The TTL (in seconds) for which to cache responses with + // the + // corresponding status code. + // The maximum allowed value is 1800s (30 minutes), noting that + // infrequently accessed objects may be evicted from the cache before + // the + // defined TTL. + Ttl int64 `json:"ttl,omitempty"` + // ForceSendFields is a list of field names (e.g. "Code") to unconditionally // include in API requests. By default, fields with empty or default values are // omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. ForceSendFields []string `json:"-"` - // NullFields is a list of field names (e.g. "Key") to include in API requests + // 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. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } -func (s *BackendServiceListUsableWarningData) MarshalJSON() ([]byte, error) { - type NoMethod BackendServiceListUsableWarningData - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s BackendServiceCdnPolicyNegativeCachingPolicy) MarshalJSON() ([]byte, error) { + type NoMethod BackendServiceCdnPolicyNegativeCachingPolicy + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -// BackendServiceLocalityLoadBalancingPolicyConfig: Container for either a -// built-in LB policy supported by gRPC or Envoy or a custom one implemented by -// the end user. -type BackendServiceLocalityLoadBalancingPolicyConfig struct { - CustomPolicy *BackendServiceLocalityLoadBalancingPolicyConfigCustomPolicy `json:"customPolicy,omitempty"` - Policy *BackendServiceLocalityLoadBalancingPolicyConfigPolicy `json:"policy,omitempty"` - // ForceSendFields is a list of field names (e.g. "CustomPolicy") to - // unconditionally include in API requests. By default, fields with empty or - // default values are omitted from API requests. See +// BackendServiceConnectionTrackingPolicy: Connection Tracking configuration +// for this BackendService. +type BackendServiceConnectionTrackingPolicy struct { + // ConnectionPersistenceOnUnhealthyBackends: Specifies connection persistence + // when backends are unhealthy. The default + // value is DEFAULT_FOR_PROTOCOL. + // + // If set to DEFAULT_FOR_PROTOCOL, the existing connections + // persist on unhealthy backends only for connection-oriented protocols + // (TCP and SCTP) and only if the Tracking Mode isPER_CONNECTION (default + // tracking mode) or the Session + // Affinity is configured for 5-tuple. They do not persist forUDP. + // + // If set to NEVER_PERSIST, after a backend becomes unhealthy, + // the existing connections on the unhealthy backend are never persisted on + // the unhealthy backend. They are always diverted to newly selected + // healthy + // backends (unless all backends are unhealthy). + // + // If set to ALWAYS_PERSIST, existing connections always + // persist on unhealthy backends regardless of protocol and session + // affinity. It is generally not recommended to use this mode overriding + // the + // default. + // + // For more details, see Connection Persistence for Network Load + // Balancing + // (https://cloud.google.com/load-balancing/docs/network/networklb-backend-service#connection-persistence) + // and Connection Persistence for Internal TCP/UDP Load + // Balancing + // (https://cloud.google.com/load-balancing/docs/internal#connection-persistence). + // + // Possible values: + // "ALWAYS_PERSIST" + // "DEFAULT_FOR_PROTOCOL" + // "NEVER_PERSIST" + ConnectionPersistenceOnUnhealthyBackends string `json:"connectionPersistenceOnUnhealthyBackends,omitempty"` + // EnableStrongAffinity: Enable Strong Session Affinity for external + // passthrough Network Load + // Balancers. This option is not available publicly. + EnableStrongAffinity bool `json:"enableStrongAffinity,omitempty"` + // IdleTimeoutSec: Specifies how long to keep a Connection Tracking entry while + // there is no + // matching traffic (in seconds). + // + // For internal passthrough Network Load Balancers: + // + // - The minimum (default) is 10 minutes and the maximum is 16 hours. + // - It can be set only if Connection Tracking is less than 5-tuple + // (i.e. Session Affinity is CLIENT_IP_NO_DESTINATION,CLIENT_IP or + // CLIENT_IP_PROTO, and Tracking + // Mode is PER_SESSION). + // + // + // + // For external passthrough Network Load Balancers the default is 60 + // seconds. This option is not available publicly. + IdleTimeoutSec int64 `json:"idleTimeoutSec,omitempty"` + // TrackingMode: Specifies the key used for connection tracking. There are + // two + // options: + // + // - PER_CONNECTION: This is the default mode. The Connection + // Tracking is performed as per the Connection Key (default Hash Method) + // for + // the specific protocol. + // - PER_SESSION: The Connection Tracking is performed as per + // the configured Session Affinity. It matches the configured Session + // Affinity. + // + // + // + // For more details, see Tracking Mode for Network Load + // Balancing + // (https://cloud.google.com/load-balancing/docs/network/networklb-backend-service#tracking-mode) + // and Tracking Mode for Internal TCP/UDP Load + // Balancing + // (https://cloud.google.com/load-balancing/docs/internal#tracking-mode). + // + // Possible values: + // "INVALID_TRACKING_MODE" + // "PER_CONNECTION" + // "PER_SESSION" + TrackingMode string `json:"trackingMode,omitempty"` + // ForceSendFields is a list of field names (e.g. + // "ConnectionPersistenceOnUnhealthyBackends") to unconditionally include in + // API requests. By default, fields with empty or default values are omitted + // from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. ForceSendFields []string `json:"-"` - // NullFields is a list of field names (e.g. "CustomPolicy") to include in API - // requests with the JSON null value. By default, fields with empty values are - // omitted from API requests. See - // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + // NullFields is a list of field names (e.g. + // "ConnectionPersistenceOnUnhealthyBackends") to include in API requests with + // the JSON null value. By default, fields with empty values are omitted from + // API requests. See https://pkg.go.dev/google.golang.org/api#hdr-NullFields + // for more details. NullFields []string `json:"-"` } -func (s *BackendServiceLocalityLoadBalancingPolicyConfig) MarshalJSON() ([]byte, error) { - type NoMethod BackendServiceLocalityLoadBalancingPolicyConfig - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) -} - -// BackendServiceLocalityLoadBalancingPolicyConfigCustomPolicy: The -// configuration for a custom policy implemented by the user and deployed with -// the client. -type BackendServiceLocalityLoadBalancingPolicyConfigCustomPolicy struct { - // Data: An optional, arbitrary JSON object with configuration data, understood - // by a locally installed custom policy implementation. - Data string `json:"data,omitempty"` - // Name: Identifies the custom policy. The value should match the name of a - // custom implementation registered on the gRPC clients. It should follow - // protocol buffer message naming conventions and include the full path (for - // example, myorg.CustomLbPolicy). The maximum length is 256 characters. Do not - // specify the same custom policy more than once for a backend. If you do, the - // configuration is rejected. For an example of how to use this field, see Use - // a custom policy. +func (s BackendServiceConnectionTrackingPolicy) MarshalJSON() ([]byte, error) { + type NoMethod BackendServiceConnectionTrackingPolicy + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +// BackendServiceCustomMetric: Custom Metrics are used for +// WEIGHTED_ROUND_ROBIN +// locality_lb_policy. +type BackendServiceCustomMetric struct { + // DryRun: If true, the metric data is not used for load balancing. + DryRun bool `json:"dryRun,omitempty"` + // Name: Name of a custom utilization signal. The name must be 1-64 + // characters + // long and match the regular expression + // `[a-z]([-_.a-z0-9]*[a-z0-9])?` which means that the + // first character must be a lowercase letter, and all following + // characters must be a dash, period, underscore, lowercase letter, or + // digit, except the last character, which cannot be a dash, period, + // or + // underscore. For usage guidelines, see Custom Metrics balancing mode. + // This + // field can only be used for a global or regional backend service with + // the + // loadBalancingScheme set to EXTERNAL_MANAGED,INTERNAL_MANAGED + // INTERNAL_SELF_MANAGED. Name string `json:"name,omitempty"` - // ForceSendFields is a list of field names (e.g. "Data") to unconditionally + // ForceSendFields is a list of field names (e.g. "DryRun") to unconditionally // include in API requests. By default, fields with empty or default values are // omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. ForceSendFields []string `json:"-"` - // NullFields is a list of field names (e.g. "Data") to include in API requests - // with the JSON null value. By default, fields with empty values are omitted - // from API requests. See + // NullFields is a list of field names (e.g. "DryRun") to include in API + // requests with the JSON null value. By default, fields with empty values are + // omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } -func (s *BackendServiceLocalityLoadBalancingPolicyConfigCustomPolicy) MarshalJSON() ([]byte, error) { - type NoMethod BackendServiceLocalityLoadBalancingPolicyConfigCustomPolicy - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s BackendServiceCustomMetric) MarshalJSON() ([]byte, error) { + type NoMethod BackendServiceCustomMetric + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -// BackendServiceLocalityLoadBalancingPolicyConfigPolicy: The configuration for -// a built-in load balancing policy. -type BackendServiceLocalityLoadBalancingPolicyConfigPolicy struct { - // Name: The name of a locality load-balancing policy. Valid values include - // ROUND_ROBIN and, for Java clients, LEAST_REQUEST. For information about - // these values, see the description of localityLbPolicy. Do not specify the - // same policy more than once for a backend. If you do, the configuration is - // rejected. +// BackendServiceFailoverPolicy: For load balancers that have +// configurable +// failover: +// Internal passthrough Network Load +// Balancers +// (https://cloud.google.com/load-balancing/docs/internal/failover-overview) +// and external passthrough +// Network Load +// Balancers +// (https://cloud.google.com/load-balancing/docs/network/networklb-failover-overview). +// On failover or failback, this field indicates whether connection +// draining +// will be honored. Google Cloud has a fixed connection draining timeout of +// 10 minutes. A setting of true terminates existing TCP +// connections to the active pool during failover and failback, +// immediately +// draining traffic. A setting of false allows existing TCP +// connections to persist, even on VMs no longer in the active pool, for up +// to the duration of the connection draining timeout (10 minutes). +type BackendServiceFailoverPolicy struct { + // DisableConnectionDrainOnFailover: This can be set to true if the protocol + // isTCP, UDP, or UNSPECIFIED. // - // Possible values: - // "INVALID_LB_POLICY" - // "LEAST_REQUEST" - An O(1) algorithm which selects two random healthy hosts - // and picks the host which has fewer active requests. - // "MAGLEV" - This algorithm implements consistent hashing to backends. - // Maglev can be used as a drop in replacement for the ring hash load balancer. - // Maglev is not as stable as ring hash but has faster table lookup build times - // and host selection times. For more information about Maglev, see - // https://ai.google/research/pubs/pub44824 - // "ORIGINAL_DESTINATION" - Backend host is selected based on the client - // connection metadata, i.e., connections are opened to the same address as the - // destination address of the incoming connection before the connection was - // redirected to the load balancer. - // "RANDOM" - The load balancer selects a random healthy host. - // "RING_HASH" - The ring/modulo hash load balancer implements consistent - // hashing to backends. The algorithm has the property that the - // addition/removal of a host from a set of N hosts only affects 1/N of the - // requests. - // "ROUND_ROBIN" - This is a simple policy in which each healthy backend is - // selected in round robin order. This is the default. - // "WEIGHTED_MAGLEV" - Per-instance weighted Load Balancing via health check - // reported weights. If set, the Backend Service must configure a non legacy - // HTTP-based Health Check, and health check replies are expected to contain - // non-standard HTTP response header field X-Load-Balancing-Endpoint-Weight to - // specify the per-instance weights. If set, Load Balancing is weighted based - // on the per-instance weights reported in the last processed health check - // replies, as long as every instance either reported a valid weight or had - // UNAVAILABLE_WEIGHT. Otherwise, Load Balancing remains equal-weight. This - // option is only supported in Network Load Balancing. - Name string `json:"name,omitempty"` - // ForceSendFields is a list of field names (e.g. "Name") to unconditionally - // include in API requests. By default, fields with empty or default values are - // omitted from API requests. See + // The default is false. + DisableConnectionDrainOnFailover bool `json:"disableConnectionDrainOnFailover,omitempty"` + // DropTrafficIfUnhealthy: If set to true, connections to the + // load balancer are dropped when all primary and all backup backend VMs + // are + // unhealthy.If set to false, connections are distributed + // among all primary VMs when all primary and all backup backend VMs are + // unhealthy. + // For load balancers that have configurable + // failover: + // Internal passthrough + // Network Load + // Balancers + // (https://cloud.google.com/load-balancing/docs/internal/failover-overview) + // and external passthrough + // Network Load + // Balancers + // (https://cloud.google.com/load-balancing/docs/network/networklb-failover-overview). + // The default is false. + DropTrafficIfUnhealthy bool `json:"dropTrafficIfUnhealthy,omitempty"` + // FailoverRatio: The value of the field must be in the range[0, 1]. If the + // value is 0, the load balancer performs a + // failover when the number of healthy primary VMs equals zero. + // For all other values, the load balancer performs a failover when the + // total number of healthy primary VMs is less than this ratio. + // For load balancers that have configurable + // failover: + // Internal TCP/UDP Load + // Balancing + // (https://cloud.google.com/load-balancing/docs/internal/failover-overview) + // and external TCP/UDP Load + // Balancing + // (https://cloud.google.com/load-balancing/docs/network/networklb-failover-overview). + FailoverRatio float64 `json:"failoverRatio,omitempty"` + // ForceSendFields is a list of field names (e.g. + // "DisableConnectionDrainOnFailover") to unconditionally include in API + // requests. By default, fields with empty or default values are omitted from + // API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. ForceSendFields []string `json:"-"` - // NullFields is a list of field names (e.g. "Name") to include in API requests - // with the JSON null value. By default, fields with empty values are omitted - // from API requests. See + // NullFields is a list of field names (e.g. + // "DisableConnectionDrainOnFailover") to include in API requests with the JSON + // null value. By default, fields with empty values are omitted from API + // requests. See https://pkg.go.dev/google.golang.org/api#hdr-NullFields for + // more details. + NullFields []string `json:"-"` +} + +func (s BackendServiceFailoverPolicy) MarshalJSON() ([]byte, error) { + type NoMethod BackendServiceFailoverPolicy + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +func (s *BackendServiceFailoverPolicy) UnmarshalJSON(data []byte) error { + type NoMethod BackendServiceFailoverPolicy + var s1 struct { + FailoverRatio gensupport.JSONFloat64 `json:"failoverRatio"` + *NoMethod + } + s1.NoMethod = (*NoMethod)(s) + if err := json.Unmarshal(data, &s1); err != nil { + return err + } + s.FailoverRatio = float64(s1.FailoverRatio) + return nil +} + +type BackendServiceGroupHealth struct { + // Annotations: Metadata defined as annotations on the network endpoint group. + Annotations map[string]string `json:"annotations,omitempty"` + // HealthStatus: Health state of the backend instances or endpoints in + // requested instance or + // network endpoint group, determined based on configured health checks. + HealthStatus []*HealthStatus `json:"healthStatus,omitempty"` + // Kind: Output only. [Output Only] Type of resource. + // Alwayscompute#backendServiceGroupHealth for the health of backend + // services. + Kind string `json:"kind,omitempty"` + + // ServerResponse contains the HTTP response code and headers from the server. + googleapi.ServerResponse `json:"-"` + // ForceSendFields is a list of field names (e.g. "Annotations") to + // unconditionally include in API requests. By default, fields with empty or + // default values are omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + ForceSendFields []string `json:"-"` + // NullFields is a list of field names (e.g. "Annotations") to include in API + // requests with the JSON null value. By default, fields with empty values are + // omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } -func (s *BackendServiceLocalityLoadBalancingPolicyConfigPolicy) MarshalJSON() ([]byte, error) { - type NoMethod BackendServiceLocalityLoadBalancingPolicyConfigPolicy - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s BackendServiceGroupHealth) MarshalJSON() ([]byte, error) { + type NoMethod BackendServiceGroupHealth + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -// BackendServiceLogConfig: The available logging options for the load balancer -// traffic served by this backend service. -type BackendServiceLogConfig struct { - // Enable: Denotes whether to enable logging for the load balancer traffic - // served by this backend service. The default value is false. - Enable bool `json:"enable,omitempty"` - // OptionalFields: This field can only be specified if logging is enabled for - // this backend service and "logConfig.optionalMode" was set to CUSTOM. - // Contains a list of optional fields you want to include in the logs. For - // example: serverInstance, serverGkeDetails.cluster, - // serverGkeDetails.pod.podNamespace - OptionalFields []string `json:"optionalFields,omitempty"` - // OptionalMode: This field can only be specified if logging is enabled for - // this backend service. Configures whether all, none or a subset of optional - // fields should be added to the reported logs. One of [INCLUDE_ALL_OPTIONAL, - // EXCLUDE_ALL_OPTIONAL, CUSTOM]. Default is EXCLUDE_ALL_OPTIONAL. +type BackendServiceHAPolicy struct { + // FastIPMove: Specifies whether fast IP move is enabled, and if so, the + // mechanism to + // achieve it. + // + // Supported values are: + // + // - DISABLED: Fast IP Move is disabled. You can only use the + // haPolicy.leader API to update the leader. + // - >GARP_RA: Provides a method to very quickly define a new network + // endpoint as the leader. This method is faster than updating the leader + // using the haPolicy.leader API. Fast IP move works as follows: The VM + // hosting the network endpoint that should become the new leader sends + // either a Gratuitous ARP (GARP) packet (IPv4) or an ICMPv6 Router + // Advertisement(RA) packet (IPv6). Google Cloud immediately but + // temporarily associates the forwarding rule IP address with that VM, and + // both new and in-flight packets are quickly delivered to that VM. + // + // + // + // Note the important properties of the Fast IP Move functionality: + // + // - The GARP/RA-initiated re-routing stays active for approximately 20 + // minutes. After triggering fast failover, you must also + // appropriately set the haPolicy.leader. + // - The new leader instance should continue to send GARP/RA packets + // periodically every 10 seconds until at least 10 minutes after updating + // the haPolicy.leader (but stop immediately if it is no longer the + // leader). + // - After triggering a fast failover, we recommend that you wait at least + // 3 seconds before sending another GARP/RA packet from a different VM + // instance to avoid race conditions. + // - Don't send GARP/RA packets from different VM + // instances at the same time. If multiple instances continue to send + // GARP/RA packets, traffic might be routed to different destinations in an + // alternating order. This condition ceases when a single instance + // issues a GARP/RA packet. + // - The GARP/RA request always takes priority over the leader API. + // Using the haPolicy.leader API to change the leader to a different + // instance will have no effect until the GARP/RA request becomes + // inactive. + // - The GARP/RA packets should follow the GARP/RA + // Packet Specifications.. + // - When multiple forwarding rules refer to a regional backend service, + // you need only send a GARP or RA packet for a single forwarding rule + // virtual IP. The virtual IPs for all forwarding rules targeting the same + // backend service will also be moved to the sender of the GARP or RA + // packet. + // + // + // + // The following are the Fast IP Move limitations (that is, when fastIPMove + // is not DISABLED): + // + // - Multiple forwarding rules cannot use the same IP address if one of + // them refers to a regional backend service with fastIPMove. + // - The regional backend service must set the network field, and all + // NEGs must belong to that network. However, individual + // NEGs can belong to different subnetworks of that network. + // - The maximum number of network endpoints across all backends of a + // backend service with fastIPMove is 32. + // - The maximum number of backend services with fastIPMove that can have + // the same network endpoint attached to one of its backends is 64. + // - The maximum number of backend services with fastIPMove in a VPC in a + // region is 64. + // - The network endpoints that are attached to a backend of a backend + // service with fastIPMove cannot resolve to Gen3+ machines for IPv6. + // - Traffic directed to the leader by a static route next hop will not be + // redirected to a new leader by fast failover. Such traffic will only be + // redirected once an haPolicy.leader update has taken effect. Only traffic + // to the forwarding rule's virtual IP will be redirected to a new leader + // by + // fast failover. + // + // + // haPolicy.fastIPMove can be set only at backend service creation time. + // Once set, it cannot be updated. + // + // By default, fastIpMove is set to DISABLED. // // Possible values: - // "CUSTOM" - A subset of optional fields. - // "EXCLUDE_ALL_OPTIONAL" - None optional fields. - // "INCLUDE_ALL_OPTIONAL" - All optional fields. - OptionalMode string `json:"optionalMode,omitempty"` - // SampleRate: This field can only be specified if logging is enabled for this - // backend service. The value of the field must be in [0, 1]. This configures - // the sampling rate of requests to the load balancer where 1.0 means all - // logged requests are reported and 0.0 means no logged requests are reported. - // The default value is 1.0. - SampleRate float64 `json:"sampleRate,omitempty"` - // ForceSendFields is a list of field names (e.g. "Enable") to unconditionally - // include in API requests. By default, fields with empty or default values are - // omitted from API requests. See + // "DISABLED" + // "GARP_RA" + FastIPMove string `json:"fastIPMove,omitempty"` + // Leader: Selects one of the network endpoints attached to the backend NEGs + // of + // this service as the active endpoint (the leader) that receives + // all + // traffic. + // + // When the leader changes, there is no connection draining to persist + // existing connections on the old leader. + // + // You are responsible for selecting a suitable endpoint as the + // leader. For example, preferring a healthy endpoint over unhealthy ones. + // Note that this service does not track backend endpoint health, and + // selects the configured leader unconditionally. + Leader *BackendServiceHAPolicyLeader `json:"leader,omitempty"` + // ForceSendFields is a list of field names (e.g. "FastIPMove") to + // unconditionally include in API requests. By default, fields with empty or + // default values are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. ForceSendFields []string `json:"-"` - // NullFields is a list of field names (e.g. "Enable") to include in API + // NullFields is a list of field names (e.g. "FastIPMove") to include in API // requests with the JSON null value. By default, fields with empty values are // omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } -func (s *BackendServiceLogConfig) MarshalJSON() ([]byte, error) { - type NoMethod BackendServiceLogConfig - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) -} - -func (s *BackendServiceLogConfig) UnmarshalJSON(data []byte) error { - type NoMethod BackendServiceLogConfig - var s1 struct { - SampleRate gensupport.JSONFloat64 `json:"sampleRate"` - *NoMethod - } - s1.NoMethod = (*NoMethod)(s) - if err := json.Unmarshal(data, &s1); err != nil { - return err - } - s.SampleRate = float64(s1.SampleRate) - return nil +func (s BackendServiceHAPolicy) MarshalJSON() ([]byte, error) { + type NoMethod BackendServiceHAPolicy + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -type BackendServiceReference struct { - BackendService string `json:"backendService,omitempty"` - // ForceSendFields is a list of field names (e.g. "BackendService") to +type BackendServiceHAPolicyLeader struct { + // BackendGroup: A fully-qualified URL (starting with + // https://www.googleapis.com/) + // of the zonal Network Endpoint Group (NEG) with `GCE_VM_IP` endpoints + // that the leader is attached to. + // + // The leader's backendGroup must already be specified as a backend of + // this backend service. Removing a backend that is designated as the + // leader's backendGroup is not permitted. + BackendGroup string `json:"backendGroup,omitempty"` + // NetworkEndpoint: The network endpoint within the leader.backendGroup that + // is + // designated as the leader. + // + // This network endpoint cannot be detached from the NEG specified in + // the haPolicy.leader.backendGroup until the leader is updated with + // another network endpoint, or the leader is removed from the haPolicy. + NetworkEndpoint *BackendServiceHAPolicyLeaderNetworkEndpoint `json:"networkEndpoint,omitempty"` + // ForceSendFields is a list of field names (e.g. "BackendGroup") to // unconditionally include in API requests. By default, fields with empty or // default values are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. ForceSendFields []string `json:"-"` - // NullFields is a list of field names (e.g. "BackendService") to include in - // API requests with the JSON null value. By default, fields with empty values - // are omitted from API requests. See + // NullFields is a list of field names (e.g. "BackendGroup") to include in API + // requests with the JSON null value. By default, fields with empty values are + // omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } -func (s *BackendServiceReference) MarshalJSON() ([]byte, error) { - type NoMethod BackendServiceReference - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s BackendServiceHAPolicyLeader) MarshalJSON() ([]byte, error) { + type NoMethod BackendServiceHAPolicyLeader + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -type BackendServiceUsedBy struct { - Reference string `json:"reference,omitempty"` - // ForceSendFields is a list of field names (e.g. "Reference") to +type BackendServiceHAPolicyLeaderNetworkEndpoint struct { + // Instance: The name of the VM instance of the leader network endpoint. + // The + // instance must already be attached to the NEG specified in + // the + // haPolicy.leader.backendGroup. + // + // The name must be 1-63 characters long, and comply with + // RFC1035. + // Authorization requires the following IAM permission on the + // specified resource instance: compute.instances.use + Instance string `json:"instance,omitempty"` + // ForceSendFields is a list of field names (e.g. "Instance") to // unconditionally include in API requests. By default, fields with empty or // default values are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. ForceSendFields []string `json:"-"` - // NullFields is a list of field names (e.g. "Reference") to include in API + // NullFields is a list of field names (e.g. "Instance") to include in API // requests with the JSON null value. By default, fields with empty values are // omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } -func (s *BackendServiceUsedBy) MarshalJSON() ([]byte, error) { - type NoMethod BackendServiceUsedBy - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s BackendServiceHAPolicyLeaderNetworkEndpoint) MarshalJSON() ([]byte, error) { + type NoMethod BackendServiceHAPolicyLeaderNetworkEndpoint + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -type BackendServicesScopedList struct { - // BackendServices: A list of BackendServices contained in this scope. - BackendServices []*BackendService `json:"backendServices,omitempty"` - // Warning: Informational warning which replaces the list of backend services - // when the list is empty. - Warning *BackendServicesScopedListWarning `json:"warning,omitempty"` - // ForceSendFields is a list of field names (e.g. "BackendServices") to - // unconditionally include in API requests. By default, fields with empty or - // default values are omitted from API requests. See +// BackendServiceHttpCookie: The HTTP cookie used for stateful session +// affinity. +type BackendServiceHttpCookie struct { + // Name: Name of the cookie. + Name string `json:"name,omitempty"` + // Path: Path to set for the cookie. + Path string `json:"path,omitempty"` + // Ttl: Lifetime of the cookie. + Ttl *Duration `json:"ttl,omitempty"` + // ForceSendFields is a list of field names (e.g. "Name") to unconditionally + // include in API requests. By default, fields with empty or default values are + // omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. ForceSendFields []string `json:"-"` - // NullFields is a list of field names (e.g. "BackendServices") to include in - // API requests with the JSON null value. By default, fields with empty values - // are omitted from API requests. See + // NullFields is a list of field names (e.g. "Name") to include in API requests + // with the JSON null value. By default, fields with empty values are omitted + // from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } -func (s *BackendServicesScopedList) MarshalJSON() ([]byte, error) { - type NoMethod BackendServicesScopedList - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s BackendServiceHttpCookie) MarshalJSON() ([]byte, error) { + type NoMethod BackendServiceHttpCookie + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -// BackendServicesScopedListWarning: Informational warning which replaces the -// list of backend services when the list is empty. -type BackendServicesScopedListWarning 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. +// BackendServiceIAP: Identity-Aware Proxy +type BackendServiceIAP struct { + // Enabled: Whether the serving infrastructure will authenticate and authorize + // all + // incoming requests. + Enabled bool `json:"enabled,omitempty"` + // Oauth2ClientId: OAuth2 client ID to use for the authentication flow. + Oauth2ClientId string `json:"oauth2ClientId,omitempty"` + // Oauth2ClientSecret: OAuth2 client secret to use for the authentication + // flow. + // For security reasons, this value cannot be retrieved via the API. + // Instead, the SHA-256 hash of the value is returned in + // the + // oauth2ClientSecretSha256 field. + // + // @InputOnly + Oauth2ClientSecret string `json:"oauth2ClientSecret,omitempty"` + // Oauth2ClientSecretSha256: Output only. [Output Only] SHA256 hash value for + // the field oauth2_client_secret above. + Oauth2ClientSecretSha256 string `json:"oauth2ClientSecretSha256,omitempty"` + // ForceSendFields is a list of field names (e.g. "Enabled") to unconditionally + // include in API requests. By default, fields with empty or default values are + // omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + ForceSendFields []string `json:"-"` + // NullFields is a list of field names (e.g. "Enabled") to include in API + // requests with the JSON null value. By default, fields with empty values are + // omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s BackendServiceIAP) MarshalJSON() ([]byte, error) { + type NoMethod BackendServiceIAP + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +// BackendServiceList: Contains a list of BackendService resources. +type BackendServiceList struct { + // Id: [Output Only] Unique identifier for the resource; defined by the server. + Id string `json:"id,omitempty"` + // Items: A list of BackendService resources. + Items []*BackendService `json:"items,omitempty"` + // Kind: Output only. [Output Only] Type of resource. + // Alwayscompute#backendServiceList for lists of backend services. + 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 thanmaxResults, 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"` + // SelfLink: Output only. [Output Only] Server-defined URL for this resource. + SelfLink string `json:"selfLink,omitempty"` + // Warning: [Output Only] Informational warning message. + Warning *BackendServiceListWarning `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 or default values are + // omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + 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. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s BackendServiceList) MarshalJSON() ([]byte, error) { + type NoMethod BackendServiceList + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +// BackendServiceListWarning: [Output Only] Informational warning message. +type BackendServiceListWarning 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" - Warning about failed cleanup of transient changes made - // by a failed operation. + // by a failed + // operation. // "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was created. // "DEPRECATED_TYPE_USED" - When deploying and at least one of the resources - // has a type marked as deprecated + // has a type marked as + // deprecated // "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk that is // larger than image size. // "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the - // resources has a type marked as experimental + // resources has a type marked as + // experimental // "EXTERNAL_API_WARNING" - Warning that is present in an external api call // "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been - // overridden. Deprecated unused field. + // overridden. + // Deprecated unused field. // "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an injected // kernel, which is deprecated. // "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB" - A WEIGHTED_MAGLEV backend - // service is associated with a health check that is not of type - // HTTP/HTTPS/HTTP2. + // service is associated with a health check that is + // not of type HTTP/HTTPS/HTTP2. // "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a // exceedingly large number of resources // "LIST_OVERHEAD_QUOTA_EXCEED" - Resource can't be retrieved due to list - // overhead quota exceed which captures the amount of resources filtered out by + // overhead quota exceed + // which captures the amount of resources filtered out by // user-defined list filter. // "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is not - // assigned to an instance on the network. + // assigned to an instance on the + // network. // "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot ip // forward. // "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE" - The route's nextHopInstance - // URL refers to an instance that does not have an ipv6 interface on the same - // network as the route. + // URL refers to an instance that does not have an + // ipv6 interface on the same network as the route. // "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL refers to // an instance that does not exist. // "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance URL - // refers to an instance that is not on the same network as the route. + // refers to an instance that is not on the + // same network as the route. // "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not have a // status of RUNNING. // "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to continue - // the process despite the mentioned error. + // the process despite + // the mentioned error. // "NO_RESULTS_ON_PAGE" - No results are present on a particular list page. // "PARTIAL_SUCCESS" - Success is reported, but some results may be missing // due to errors + // "QUOTA_INFO_UNAVAILABLE" - Quota information is not available to client + // requests (e.g: + // regions.list). // "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource that - // requires a TOS they have not accepted. + // requires a TOS they have not + // accepted. // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a resource is // in use. // "RESOURCE_NOT_DELETED" - One or more of the resources set to auto-delete - // could not be deleted because they were in use. + // could not be deleted + // because they were in use. // "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is // ignored. // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in instance - // group manager is valid as such, but its application does not make a lot of - // sense, because it allows only single instance in instance group. + // group manager is valid as such, but + // its application does not make a lot of sense, because it allows only + // single instance in instance group. // "UNDECLARED_PROPERTIES" - When undeclared properties in the schema are // present // "UNREACHABLE" - A given scope cannot be reached. 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 []*BackendServicesScopedListWarningData `json:"data,omitempty"` + // Data: [Output Only] Metadata about this warning in key: + // value format. For example: + // + // "data": [ + // { + // "key": "scope", + // "value": "zones/us-east1-d" + // } + Data []*BackendServiceListWarningData `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 @@ -6423,19 +8801,22 @@ type BackendServicesScopedListWarning struct { NullFields []string `json:"-"` } -func (s *BackendServicesScopedListWarning) MarshalJSON() ([]byte, error) { - type NoMethod BackendServicesScopedListWarning - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s BackendServiceListWarning) MarshalJSON() ([]byte, error) { + type NoMethod BackendServiceListWarning + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -type BackendServicesScopedListWarningData 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). +type BackendServiceListWarningData 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"` @@ -6452,1118 +8833,829 @@ type BackendServicesScopedListWarningData struct { NullFields []string `json:"-"` } -func (s *BackendServicesScopedListWarningData) MarshalJSON() ([]byte, error) { - type NoMethod BackendServicesScopedListWarningData - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s BackendServiceListWarningData) MarshalJSON() ([]byte, error) { + type NoMethod BackendServiceListWarningData + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -type BfdPacket struct { - // AuthenticationPresent: The Authentication Present bit of the BFD packet. - // This is specified in section 4.1 of RFC5880 - AuthenticationPresent bool `json:"authenticationPresent,omitempty"` - // ControlPlaneIndependent: The Control Plane Independent bit of the BFD - // packet. This is specified in section 4.1 of RFC5880 - ControlPlaneIndependent bool `json:"controlPlaneIndependent,omitempty"` - // Demand: The demand bit of the BFD packet. This is specified in section 4.1 - // of RFC5880 - Demand bool `json:"demand,omitempty"` - // Diagnostic: The diagnostic code specifies the local system's reason for the - // last change in session state. This allows remote systems to determine the - // reason that the previous session failed, for example. These diagnostic codes - // are specified in section 4.1 of RFC5880 - // - // Possible values: - // "ADMINISTRATIVELY_DOWN" - // "CONCATENATED_PATH_DOWN" - // "CONTROL_DETECTION_TIME_EXPIRED" - // "DIAGNOSTIC_UNSPECIFIED" - // "ECHO_FUNCTION_FAILED" - // "FORWARDING_PLANE_RESET" - // "NEIGHBOR_SIGNALED_SESSION_DOWN" - // "NO_DIAGNOSTIC" - // "PATH_DOWN" - // "REVERSE_CONCATENATED_PATH_DOWN" - Diagnostic string `json:"diagnostic,omitempty"` - // Final: The Final bit of the BFD packet. This is specified in section 4.1 of - // RFC5880 - Final bool `json:"final,omitempty"` - // Length: The length of the BFD Control packet in bytes. This is specified in - // section 4.1 of RFC5880 - Length int64 `json:"length,omitempty"` - // MinEchoRxIntervalMs: The Required Min Echo RX Interval value in the BFD - // packet. This is specified in section 4.1 of RFC5880 - MinEchoRxIntervalMs int64 `json:"minEchoRxIntervalMs,omitempty"` - // MinRxIntervalMs: The Required Min RX Interval value in the BFD packet. This - // is specified in section 4.1 of RFC5880 - MinRxIntervalMs int64 `json:"minRxIntervalMs,omitempty"` - // MinTxIntervalMs: The Desired Min TX Interval value in the BFD packet. This - // is specified in section 4.1 of RFC5880 - MinTxIntervalMs int64 `json:"minTxIntervalMs,omitempty"` - // Multiplier: The detection time multiplier of the BFD packet. This is - // specified in section 4.1 of RFC5880 - Multiplier int64 `json:"multiplier,omitempty"` - // Multipoint: The multipoint bit of the BFD packet. This is specified in - // section 4.1 of RFC5880 - Multipoint bool `json:"multipoint,omitempty"` - // MyDiscriminator: The My Discriminator value in the BFD packet. This is - // specified in section 4.1 of RFC5880 - MyDiscriminator int64 `json:"myDiscriminator,omitempty"` - // Poll: The Poll bit of the BFD packet. This is specified in section 4.1 of - // RFC5880 - Poll bool `json:"poll,omitempty"` - // State: The current BFD session state as seen by the transmitting system. - // These states are specified in section 4.1 of RFC5880 - // - // Possible values: - // "ADMIN_DOWN" - // "DOWN" - // "INIT" - // "STATE_UNSPECIFIED" - // "UP" - State string `json:"state,omitempty"` - // Version: The version number of the BFD protocol, as specified in section 4.1 - // of RFC5880. - Version int64 `json:"version,omitempty"` - // YourDiscriminator: The Your Discriminator value in the BFD packet. This is - // specified in section 4.1 of RFC5880 - YourDiscriminator int64 `json:"yourDiscriminator,omitempty"` - // ForceSendFields is a list of field names (e.g. "AuthenticationPresent") to - // unconditionally include in API requests. By default, fields with empty or - // default values are omitted from API requests. See +// BackendServiceListUsable: Contains a list of usable BackendService +// resources. +type BackendServiceListUsable struct { + // Id: [Output Only] Unique identifier for the resource; defined by the server. + Id string `json:"id,omitempty"` + // Items: A list of BackendService resources. + Items []*BackendService `json:"items,omitempty"` + // Kind: Output only. [Output Only] Type of resource. + // Alwayscompute#usableBackendServiceList for lists of usable backend + // services. + 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 thanmaxResults, 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"` + // SelfLink: Output only. [Output Only] Server-defined URL for this resource. + SelfLink string `json:"selfLink,omitempty"` + // Warning: [Output Only] Informational warning message. + Warning *BackendServiceListUsableWarning `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 or default values are + // omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. ForceSendFields []string `json:"-"` - // NullFields is a list of field names (e.g. "AuthenticationPresent") to - // include in API requests with the JSON null value. By default, fields with - // empty values are omitted from API requests. See + // 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. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } -func (s *BfdPacket) MarshalJSON() ([]byte, error) { - type NoMethod BfdPacket - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s BackendServiceListUsable) MarshalJSON() ([]byte, error) { + type NoMethod BackendServiceListUsable + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -// BfdStatus: Next free: 15 -type BfdStatus struct { - // BfdSessionInitializationMode: The BFD session initialization mode for this - // BGP peer. If set to ACTIVE, the Cloud Router will initiate the BFD session - // for this BGP peer. If set to PASSIVE, the Cloud Router will wait for the - // peer router to initiate the BFD session for this BGP peer. If set to - // DISABLED, BFD is disabled for this BGP peer. - // - // Possible values: - // "ACTIVE" - // "DISABLED" - // "PASSIVE" - BfdSessionInitializationMode string `json:"bfdSessionInitializationMode,omitempty"` - // ConfigUpdateTimestampMicros: Unix timestamp of the most recent config - // update. - ConfigUpdateTimestampMicros int64 `json:"configUpdateTimestampMicros,omitempty,string"` - // ControlPacketCounts: Control packet counts for the current BFD session. - ControlPacketCounts *BfdStatusPacketCounts `json:"controlPacketCounts,omitempty"` - // ControlPacketIntervals: Inter-packet time interval statistics for control - // packets. - ControlPacketIntervals []*PacketIntervals `json:"controlPacketIntervals,omitempty"` - // LocalDiagnostic: The diagnostic code specifies the local system's reason for - // the last change in session state. This allows remote systems to determine - // the reason that the previous session failed, for example. These diagnostic - // codes are specified in section 4.1 of RFC5880 +// BackendServiceListUsableWarning: [Output Only] Informational warning +// message. +type BackendServiceListUsableWarning 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: - // "ADMINISTRATIVELY_DOWN" - // "CONCATENATED_PATH_DOWN" - // "CONTROL_DETECTION_TIME_EXPIRED" - // "DIAGNOSTIC_UNSPECIFIED" - // "ECHO_FUNCTION_FAILED" - // "FORWARDING_PLANE_RESET" - // "NEIGHBOR_SIGNALED_SESSION_DOWN" - // "NO_DIAGNOSTIC" - // "PATH_DOWN" - // "REVERSE_CONCATENATED_PATH_DOWN" - LocalDiagnostic string `json:"localDiagnostic,omitempty"` - // LocalState: The current BFD session state as seen by the transmitting - // system. These states are specified in section 4.1 of RFC5880 + // "CLEANUP_FAILED" - Warning about failed cleanup of transient changes made + // by a failed + // operation. + // "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was created. + // "DEPRECATED_TYPE_USED" - When deploying and at least one of the resources + // has a type marked as + // deprecated + // "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk that is + // larger than image size. + // "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the + // resources has a type marked as + // experimental + // "EXTERNAL_API_WARNING" - Warning that is present in an external api call + // "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been + // overridden. + // Deprecated unused field. + // "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an injected + // kernel, which is deprecated. + // "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB" - A WEIGHTED_MAGLEV backend + // service is associated with a health check that is + // not of type HTTP/HTTPS/HTTP2. + // "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a + // exceedingly large number of resources + // "LIST_OVERHEAD_QUOTA_EXCEED" - Resource can't be retrieved due to list + // overhead quota exceed + // which captures the amount of resources filtered out by + // user-defined list filter. + // "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type + // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is not + // assigned to an instance on the + // network. + // "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot ip + // forward. + // "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE" - The route's nextHopInstance + // URL refers to an instance that does not have an + // ipv6 interface on the same network as the route. + // "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL refers to + // an instance that does not exist. + // "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance URL + // refers to an instance that is not on the + // same network as the route. + // "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not have a + // status of RUNNING. + // "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to continue + // the process despite + // the mentioned error. + // "NO_RESULTS_ON_PAGE" - No results are present on a particular list page. + // "PARTIAL_SUCCESS" - Success is reported, but some results may be missing + // due to errors + // "QUOTA_INFO_UNAVAILABLE" - Quota information is not available to client + // requests (e.g: + // regions.list). + // "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource that + // requires a TOS they have not + // accepted. + // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a resource is + // in use. + // "RESOURCE_NOT_DELETED" - One or more of the resources set to auto-delete + // could not be deleted + // because they were in use. + // "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is + // ignored. + // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in instance + // group manager is valid as such, but + // its application does not make a lot of sense, because it allows only + // single instance in instance group. + // "UNDECLARED_PROPERTIES" - When undeclared properties in the schema are + // present + // "UNREACHABLE" - A given scope cannot be reached. + Code string `json:"code,omitempty"` + // Data: [Output Only] Metadata about this warning in key: + // value format. For example: // - // Possible values: - // "ADMIN_DOWN" - // "DOWN" - // "INIT" - // "STATE_UNSPECIFIED" - // "UP" - LocalState string `json:"localState,omitempty"` - // NegotiatedLocalControlTxIntervalMs: Negotiated transmit interval for control - // packets. - NegotiatedLocalControlTxIntervalMs int64 `json:"negotiatedLocalControlTxIntervalMs,omitempty"` - // RxPacket: The most recent Rx control packet for this BFD session. - RxPacket *BfdPacket `json:"rxPacket,omitempty"` - // TxPacket: The most recent Tx control packet for this BFD session. - TxPacket *BfdPacket `json:"txPacket,omitempty"` - // UptimeMs: Session uptime in milliseconds. Value will be 0 if session is not - // up. - UptimeMs int64 `json:"uptimeMs,omitempty,string"` - // ForceSendFields is a list of field names (e.g. - // "BfdSessionInitializationMode") to unconditionally include in API requests. - // By default, fields with empty or default values are omitted from API - // requests. See https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields - // for more details. + // "data": [ + // { + // "key": "scope", + // "value": "zones/us-east1-d" + // } + Data []*BackendServiceListUsableWarningData `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 or default values are + // omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. ForceSendFields []string `json:"-"` - // NullFields is a list of field names (e.g. "BfdSessionInitializationMode") to - // include in API requests with the JSON null value. By default, fields with - // empty values are omitted from API requests. See + // 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. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } -func (s *BfdStatus) MarshalJSON() ([]byte, error) { - type NoMethod BfdStatus - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s BackendServiceListUsableWarning) MarshalJSON() ([]byte, error) { + type NoMethod BackendServiceListUsableWarning + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -type BfdStatusPacketCounts struct { - // NumRx: Number of packets received since the beginning of the current BFD - // session. - NumRx int64 `json:"numRx,omitempty"` - // NumRxRejected: Number of packets received that were rejected because of - // errors since the beginning of the current BFD session. - NumRxRejected int64 `json:"numRxRejected,omitempty"` - // NumRxSuccessful: Number of packets received that were successfully processed - // since the beginning of the current BFD session. - NumRxSuccessful int64 `json:"numRxSuccessful,omitempty"` - // NumTx: Number of packets transmitted since the beginning of the current BFD - // session. - NumTx int64 `json:"numTx,omitempty"` - // ForceSendFields is a list of field names (e.g. "NumRx") to unconditionally +type BackendServiceListUsableWarningData 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 or default values are // omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. ForceSendFields []string `json:"-"` - // NullFields is a list of field names (e.g. "NumRx") to include in API - // requests with the JSON null value. By default, fields with empty values are - // omitted from API requests. See + // 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. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } -func (s *BfdStatusPacketCounts) MarshalJSON() ([]byte, error) { - type NoMethod BfdStatusPacketCounts - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s BackendServiceListUsableWarningData) MarshalJSON() ([]byte, error) { + type NoMethod BackendServiceListUsableWarningData + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -// Binding: Associates `members`, or principals, with a `role`. -type Binding struct { - // BindingId: This is deprecated and has no effect. Do not use. - BindingId string `json:"bindingId,omitempty"` - // Condition: The condition that is associated with this binding. If the - // condition evaluates to `true`, then this binding applies to the current - // request. If the condition evaluates to `false`, then this binding does not - // apply to the current request. However, a different role binding might grant - // the same role to one or more of the principals in this binding. To learn - // which resources support conditions in their IAM policies, see the IAM - // documentation - // (https://cloud.google.com/iam/help/conditions/resource-policies). - Condition *Expr `json:"condition,omitempty"` - // Members: Specifies the principals requesting access for a Google Cloud - // resource. `members` can have the following values: * `allUsers`: A special - // identifier that represents anyone who is on the internet; with or without a - // Google account. * `allAuthenticatedUsers`: A special identifier that - // represents anyone who is authenticated with a Google account or a service - // account. Does not include identities that come from external identity - // providers (IdPs) through identity federation. * `user:{emailid}`: An email - // address that represents a specific Google account. For example, - // `alice@example.com` . * `serviceAccount:{emailid}`: An email address that - // represents a Google service account. For example, - // `my-other-app@appspot.gserviceaccount.com`. * - // `serviceAccount:{projectid}.svc.id.goog[{namespace}/{kubernetes-sa}]`: An - // identifier for a Kubernetes service account - // (https://cloud.google.com/kubernetes-engine/docs/how-to/kubernetes-service-accounts). - // For example, `my-project.svc.id.goog[my-namespace/my-kubernetes-sa]`. * - // `group:{emailid}`: An email address that represents a Google group. For - // example, `admins@example.com`. * `domain:{domain}`: The G Suite domain - // (primary) that represents all the users of that domain. For example, - // `google.com` or `example.com`. * - // `principal://iam.googleapis.com/locations/global/workforcePools/{pool_id}/sub - // ject/{subject_attribute_value}`: A single identity in a workforce identity - // pool. * - // `principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id}/ - // group/{group_id}`: All workforce identities in a group. * - // `principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id}/ - // attribute.{attribute_name}/{attribute_value}`: All workforce identities with - // a specific attribute value. * - // `principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id}/ - // *`: All identities in a workforce identity pool. * - // `principal://iam.googleapis.com/projects/{project_number}/locations/global/wo - // rkloadIdentityPools/{pool_id}/subject/{subject_attribute_value}`: A single - // identity in a workload identity pool. * - // `principalSet://iam.googleapis.com/projects/{project_number}/locations/global - // /workloadIdentityPools/{pool_id}/group/{group_id}`: A workload identity pool - // group. * - // `principalSet://iam.googleapis.com/projects/{project_number}/locations/global - // /workloadIdentityPools/{pool_id}/attribute.{attribute_name}/{attribute_value} - // `: All identities in a workload identity pool with a certain attribute. * - // `principalSet://iam.googleapis.com/projects/{project_number}/locations/global - // /workloadIdentityPools/{pool_id}/*`: All identities in a workload identity - // pool. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus - // unique identifier) representing a user that has been recently deleted. For - // example, `alice@example.com?uid=123456789012345678901`. If the user is - // recovered, this value reverts to `user:{emailid}` and the recovered user - // retains the role in the binding. * - // `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus - // unique identifier) representing a service account that has been recently - // deleted. For example, - // `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the - // service account is undeleted, this value reverts to - // `serviceAccount:{emailid}` and the undeleted service account retains the - // role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email - // address (plus unique identifier) representing a Google group that has been - // recently deleted. For example, - // `admins@example.com?uid=123456789012345678901`. If the group is recovered, - // this value reverts to `group:{emailid}` and the recovered group retains the - // role in the binding. * - // `deleted:principal://iam.googleapis.com/locations/global/workforcePools/{pool - // _id}/subject/{subject_attribute_value}`: Deleted single identity in a - // workforce identity pool. For example, - // `deleted:principal://iam.googleapis.com/locations/global/workforcePools/my-po - // ol-id/subject/my-subject-attribute-value`. - Members []string `json:"members,omitempty"` - // Role: Role that is assigned to the list of `members`, or principals. For - // example, `roles/viewer`, `roles/editor`, or `roles/owner`. For an overview - // of the IAM roles and permissions, see the IAM documentation - // (https://cloud.google.com/iam/docs/roles-overview). For a list of the - // available pre-defined roles, see here - // (https://cloud.google.com/iam/docs/understanding-roles). - Role string `json:"role,omitempty"` - // ForceSendFields is a list of field names (e.g. "BindingId") to +// BackendServiceLocalityLoadBalancingPolicyConfig: Container for either a +// built-in LB policy supported by gRPC or Envoy or +// a custom one implemented by the end user. +type BackendServiceLocalityLoadBalancingPolicyConfig struct { + CustomPolicy *BackendServiceLocalityLoadBalancingPolicyConfigCustomPolicy `json:"customPolicy,omitempty"` + Policy *BackendServiceLocalityLoadBalancingPolicyConfigPolicy `json:"policy,omitempty"` + // ForceSendFields is a list of field names (e.g. "CustomPolicy") to // unconditionally include in API requests. By default, fields with empty or // default values are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. ForceSendFields []string `json:"-"` - // NullFields is a list of field names (e.g. "BindingId") to include in API + // NullFields is a list of field names (e.g. "CustomPolicy") to include in API // requests with the JSON null value. By default, fields with empty values are // omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } -func (s *Binding) MarshalJSON() ([]byte, error) { - type NoMethod Binding - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s BackendServiceLocalityLoadBalancingPolicyConfig) MarshalJSON() ([]byte, error) { + type NoMethod BackendServiceLocalityLoadBalancingPolicyConfig + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -// BulkInsertDiskResource: A transient resource used in -// compute.disks.bulkInsert and compute.regionDisks.bulkInsert. It is only used -// to process requests and is not persisted. -type BulkInsertDiskResource struct { - // SourceConsistencyGroupPolicy: The URL of the DiskConsistencyGroupPolicy for - // the group of disks to clone. This may be a full or partial URL, such as: - - // https://www.googleapis.com/compute/v1/projects/project/regions/region - // /resourcePolicies/resourcePolicy - - // projects/project/regions/region/resourcePolicies/resourcePolicy - - // regions/region/resourcePolicies/resourcePolicy - SourceConsistencyGroupPolicy string `json:"sourceConsistencyGroupPolicy,omitempty"` - // ForceSendFields is a list of field names (e.g. - // "SourceConsistencyGroupPolicy") to unconditionally include in API requests. - // By default, fields with empty or default values are omitted from API - // requests. See https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields - // for more details. +// BackendServiceLocalityLoadBalancingPolicyConfigCustomPolicy: The +// configuration for a custom policy implemented by the user and +// deployed with the client. +type BackendServiceLocalityLoadBalancingPolicyConfigCustomPolicy struct { + // Data: An optional, arbitrary JSON object with configuration data, + // understood + // by a locally installed custom policy implementation. + Data string `json:"data,omitempty"` + // Name: Identifies the custom policy. + // + // The value should match the name of a custom implementation registered + // on the gRPC clients. It should follow protocol buffer message + // naming + // conventions and include the full path (for example, + // myorg.CustomLbPolicy). The maximum length is 256 characters. + // + // Do not specify the same custom policy more than once for a + // backend. If you do, the configuration is rejected. + // + // For an example of how to use this field, seeUse + // a custom policy. + Name string `json:"name,omitempty"` + // ForceSendFields is a list of field names (e.g. "Data") to unconditionally + // include in API requests. By default, fields with empty or default values are + // omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. ForceSendFields []string `json:"-"` - // NullFields is a list of field names (e.g. "SourceConsistencyGroupPolicy") to - // include in API requests with the JSON null value. By default, fields with - // empty values are omitted from API requests. See + // NullFields is a list of field names (e.g. "Data") to include in API requests + // with the JSON null value. By default, fields with empty values are omitted + // from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } -func (s *BulkInsertDiskResource) MarshalJSON() ([]byte, error) { - type NoMethod BulkInsertDiskResource - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s BackendServiceLocalityLoadBalancingPolicyConfigCustomPolicy) MarshalJSON() ([]byte, error) { + type NoMethod BackendServiceLocalityLoadBalancingPolicyConfigCustomPolicy + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -// BulkInsertInstanceResource: A transient resource used in -// compute.instances.bulkInsert and compute.regionInstances.bulkInsert . This -// resource is not persisted anywhere, it is used only for processing the -// requests. -type BulkInsertInstanceResource struct { - // Count: The maximum number of instances to create. - Count int64 `json:"count,omitempty,string"` - // InstanceProperties: The instance properties defining the VM instances to be - // created. Required if sourceInstanceTemplate is not provided. - InstanceProperties *InstanceProperties `json:"instanceProperties,omitempty"` - // LocationPolicy: Policy for chosing target zone. For more information, see - // Create VMs in bulk . - LocationPolicy *LocationPolicy `json:"locationPolicy,omitempty"` - // MinCount: The minimum number of instances to create. If no min_count is - // specified then count is used as the default value. If min_count instances - // cannot be created, then no instances will be created and instances already - // created will be deleted. - MinCount int64 `json:"minCount,omitempty,string"` - // NamePattern: The string pattern used for the names of the VMs. Either - // name_pattern or per_instance_properties must be set. The pattern must - // contain one continuous sequence of placeholder hash characters (#) with each - // character corresponding to one digit of the generated instance name. - // Example: a name_pattern of inst-#### generates instance names such as - // inst-0001 and inst-0002. If existing instances in the same project and zone - // have names that match the name pattern then the generated instance numbers - // start after the biggest existing number. For example, if there exists an - // instance with name inst-0050, then instance names generated using the - // pattern inst-#### begin with inst-0051. The name pattern placeholder #...# - // can contain up to 18 characters. - NamePattern string `json:"namePattern,omitempty"` - // PerInstanceProperties: Per-instance properties to be set on individual - // instances. Keys of this map specify requested instance names. Can be empty - // if name_pattern is used. - PerInstanceProperties map[string]BulkInsertInstanceResourcePerInstanceProperties `json:"perInstanceProperties,omitempty"` - // SourceInstanceTemplate: Specifies the instance template from which to create - // instances. You may combine sourceInstanceTemplate with instanceProperties to - // override specific values from an existing instance template. Bulk API - // follows the semantics of JSON Merge Patch described by RFC 7396. It can be a - // full or partial URL. For example, the following are all valid URLs to an - // instance template: - https://www.googleapis.com/compute/v1/projects/project - // /global/instanceTemplates/instanceTemplate - - // projects/project/global/instanceTemplates/instanceTemplate - - // global/instanceTemplates/instanceTemplate This field is optional. - SourceInstanceTemplate string `json:"sourceInstanceTemplate,omitempty"` - // ForceSendFields is a list of field names (e.g. "Count") to unconditionally +// BackendServiceLocalityLoadBalancingPolicyConfigPolicy: The configuration for +// a built-in load balancing policy. +type BackendServiceLocalityLoadBalancingPolicyConfigPolicy struct { + // Name: The name of a locality load-balancing policy. Valid values + // include + // ROUND_ROBIN and, for Java clients, LEAST_REQUEST. For information + // about these values, see the description of localityLbPolicy. + // + // Do not specify the same policy more than once for a + // backend. If you do, the configuration is rejected. + // + // Possible values: + // "INVALID_LB_POLICY" + // "LEAST_REQUEST" - An O(1) algorithm which selects two random healthy hosts + // and + // picks the host which has fewer active requests. + // "MAGLEV" - This algorithm implements consistent hashing to backends. + // Maglev can be + // used as a drop in replacement for the ring hash load balancer. Maglev is + // not as stable as ring hash but has faster table lookup build times and + // host selection times. For more information about Maglev, seeMaglev: + // A Fast and Reliable Software Network Load Balancer. + // "ORIGINAL_DESTINATION" - Backend host is selected based on the client + // connection metadata, i.e., + // connections are opened to the same address as the destination address of + // the incoming connection before the connection was redirected to the + // load + // balancer. + // "RANDOM" - The load balancer selects a random healthy host. + // "RING_HASH" - The ring/modulo hash load balancer implements consistent + // hashing to + // backends. The algorithm has the property that the addition/removal + // of a host from a set of N hosts only affects 1/N of the requests. + // "ROUND_ROBIN" - This is a simple policy in which each healthy backend is + // selected + // in round robin order. This is the default. + // "WEIGHTED_GCP_RENDEZVOUS" - Per-instance weighted Load Balancing via + // health check reported weights. + // In internal passthrough network load balancing, it is weighted + // rendezvous hashing. + // This option is only supported in internal passthrough network + // load + // balancing. + // "WEIGHTED_MAGLEV" - Per-instance weighted Load Balancing via health check + // reported weights. + // If set, the Backend Service must configure a non legacy HTTP-based + // Health + // Check, and health check replies are expected to contain non-standard + // HTTP + // response header field X-Load-Balancing-Endpoint-Weight to specify + // the + // per-instance weights. + // If set, Load Balancing is weighted based on the + // per-instance weights reported in the last processed health check replies, + // as long as every instance either reported a valid weight or + // had + // UNAVAILABLE_WEIGHT. Otherwise, Load Balancing remains equal-weight. + // This option is only supported in Network Load Balancing. + // "WEIGHTED_ROUND_ROBIN" - Per-endpoint weighted round-robin Load Balancing + // using weights computed + // from Backend reported Custom Metrics. If set, the Backend Service + // responses are expected to contain non-standard HTTP response header + // field + // Endpoint-Load-Metrics. The reported metrics + // to use for computing the weights are specified via the + // customMetrics fields. + Name string `json:"name,omitempty"` + // ForceSendFields is a list of field names (e.g. "Name") to unconditionally // include in API requests. By default, fields with empty or default values are // omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. ForceSendFields []string `json:"-"` - // NullFields is a list of field names (e.g. "Count") to include in API - // requests with the JSON null value. By default, fields with empty values are - // omitted from API requests. See - // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. - NullFields []string `json:"-"` -} - -func (s *BulkInsertInstanceResource) MarshalJSON() ([]byte, error) { - type NoMethod BulkInsertInstanceResource - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) -} - -// BulkInsertInstanceResourcePerInstanceProperties: Per-instance properties to -// be set on individual instances. To be extended in the future. -type BulkInsertInstanceResourcePerInstanceProperties struct { - // Hostname: Specifies the hostname of the instance. More details in: - // https://cloud.google.com/compute/docs/instances/custom-hostname-vm#naming_convention - Hostname string `json:"hostname,omitempty"` - // Name: This field is only temporary. It will be removed. Do not use it. - Name string `json:"name,omitempty"` - // ForceSendFields is a list of field names (e.g. "Hostname") to - // unconditionally include in API requests. By default, fields with empty or - // default values are omitted from API requests. See - // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more - // details. - ForceSendFields []string `json:"-"` - // NullFields is a list of field names (e.g. "Hostname") to include in API - // requests with the JSON null value. By default, fields with empty values are - // omitted from API requests. See + // NullFields is a list of field names (e.g. "Name") to include in API requests + // with the JSON null value. By default, fields with empty values are omitted + // from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } -func (s *BulkInsertInstanceResourcePerInstanceProperties) MarshalJSON() ([]byte, error) { - type NoMethod BulkInsertInstanceResourcePerInstanceProperties - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s BackendServiceLocalityLoadBalancingPolicyConfigPolicy) MarshalJSON() ([]byte, error) { + type NoMethod BackendServiceLocalityLoadBalancingPolicyConfigPolicy + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -type BulkInsertOperationStatus struct { - // CreatedVmCount: [Output Only] Count of VMs successfully created so far. - CreatedVmCount int64 `json:"createdVmCount,omitempty"` - // DeletedVmCount: [Output Only] Count of VMs that got deleted during rollback. - DeletedVmCount int64 `json:"deletedVmCount,omitempty"` - // FailedToCreateVmCount: [Output Only] Count of VMs that started creating but - // encountered an error. - FailedToCreateVmCount int64 `json:"failedToCreateVmCount,omitempty"` - // Status: [Output Only] Creation status of BulkInsert operation - information - // if the flow is rolling forward or rolling back. +// BackendServiceLogConfig: The available logging options for the load balancer +// traffic served by this +// backend service. +type BackendServiceLogConfig struct { + // Enable: Denotes whether to enable logging for the load balancer + // traffic served by this backend service. The default value is false. + Enable bool `json:"enable,omitempty"` + // LoggingHttpRequestHeaders: The list of request headers that will be logged + // to Stackdriver. + LoggingHttpRequestHeaders []*BackendServiceLogConfigLoggingHttpHeader `json:"loggingHttpRequestHeaders,omitempty"` + // LoggingHttpResponseHeaders: The list of response headers that will be logged + // to Stackdriver. + LoggingHttpResponseHeaders []*BackendServiceLogConfigLoggingHttpHeader `json:"loggingHttpResponseHeaders,omitempty"` + // OptionalFields: This field can only be specified if logging is enabled for + // this backend + // service and "logConfig.optionalMode" was set to CUSTOM. Contains a list + // of optional fields you want to include in the logs. For + // example: + // serverInstance, serverGkeDetails.cluster, + // serverGkeDetails.pod.podNamespace + OptionalFields []string `json:"optionalFields,omitempty"` + // OptionalMode: This field can only be specified if logging is enabled for + // this backend + // service. Configures whether all, none or a subset of optional fields + // should be added to the reported logs. One of + // [INCLUDE_ALL_OPTIONAL, + // EXCLUDE_ALL_OPTIONAL, CUSTOM]. Default is EXCLUDE_ALL_OPTIONAL. // // Possible values: - // "CREATING" - Rolling forward - creating VMs. - // "DONE" - Done - // "ROLLING_BACK" - Rolling back - cleaning up after an error. - // "STATUS_UNSPECIFIED" - Status string `json:"status,omitempty"` - // TargetVmCount: [Output Only] Count of VMs originally planned to be created. - TargetVmCount int64 `json:"targetVmCount,omitempty"` - // ForceSendFields is a list of field names (e.g. "CreatedVmCount") to - // unconditionally include in API requests. By default, fields with empty or - // default values are omitted from API requests. See - // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more - // details. - ForceSendFields []string `json:"-"` - // NullFields is a list of field names (e.g. "CreatedVmCount") to include in - // API requests with the JSON null value. By default, fields with empty values - // are omitted from API requests. See - // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. - NullFields []string `json:"-"` -} - -func (s *BulkInsertOperationStatus) MarshalJSON() ([]byte, error) { - type NoMethod BulkInsertOperationStatus - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) -} - -type CacheInvalidationRule struct { - // Host: If set, this invalidation rule will only apply to requests with a Host - // header matching host. - Host string `json:"host,omitempty"` - Path string `json:"path,omitempty"` - // ForceSendFields is a list of field names (e.g. "Host") to unconditionally + // "CUSTOM" - A subset of optional fields. + // "EXCLUDE_ALL_OPTIONAL" - None optional fields. + // "INCLUDE_ALL_OPTIONAL" - All optional fields. + OptionalMode string `json:"optionalMode,omitempty"` + // SampleRate: This field can only be specified if logging is enabled for this + // backend + // service. The value of the field must be in [0, 1]. This configures + // the + // sampling rate of requests to the load balancer where 1.0 means all + // logged + // requests are reported and 0.0 means no logged requests are reported. + // The + // default value is 1.0. + SampleRate float64 `json:"sampleRate,omitempty"` + // ForceSendFields is a list of field names (e.g. "Enable") to unconditionally // include in API requests. By default, fields with empty or default values are // omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. ForceSendFields []string `json:"-"` - // NullFields is a list of field names (e.g. "Host") to include in API requests - // with the JSON null value. By default, fields with empty values are omitted - // from API requests. See + // NullFields is a list of field names (e.g. "Enable") to include in API + // requests with the JSON null value. By default, fields with empty values are + // omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } -func (s *CacheInvalidationRule) MarshalJSON() ([]byte, error) { - type NoMethod CacheInvalidationRule - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s BackendServiceLogConfig) MarshalJSON() ([]byte, error) { + type NoMethod BackendServiceLogConfig + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -// CacheKeyPolicy: Message containing what to include in the cache key for a -// request for Cloud CDN. -type CacheKeyPolicy struct { - // IncludeHost: If true, requests to different hosts will be cached separately. - IncludeHost bool `json:"includeHost,omitempty"` - // IncludeHttpHeaders: Allows HTTP request headers (by name) to be used in the - // cache key. - IncludeHttpHeaders []string `json:"includeHttpHeaders,omitempty"` - // IncludeNamedCookies: Allows HTTP cookies (by name) to be used in the cache - // key. The name=value pair will be used in the cache key Cloud CDN generates. - IncludeNamedCookies []string `json:"includeNamedCookies,omitempty"` - // IncludeProtocol: If true, http and https requests will be cached separately. - IncludeProtocol bool `json:"includeProtocol,omitempty"` - // IncludeQueryString: If true, include query string parameters in the cache - // key according to query_string_whitelist and query_string_blacklist. If - // neither is set, the entire query string will be included. If false, the - // query string will be excluded from the cache key entirely. - IncludeQueryString bool `json:"includeQueryString,omitempty"` - // QueryStringBlacklist: Names of query string parameters to exclude in cache - // keys. All other parameters will be included. Either specify - // query_string_whitelist or query_string_blacklist, not both. '&' and '=' will - // be percent encoded and not treated as delimiters. - QueryStringBlacklist []string `json:"queryStringBlacklist,omitempty"` - // QueryStringWhitelist: Names of query string parameters to include in cache - // keys. All other parameters will be excluded. Either specify - // query_string_whitelist or query_string_blacklist, not both. '&' and '=' will - // be percent encoded and not treated as delimiters. - QueryStringWhitelist []string `json:"queryStringWhitelist,omitempty"` - // ForceSendFields is a list of field names (e.g. "IncludeHost") to +func (s *BackendServiceLogConfig) UnmarshalJSON(data []byte) error { + type NoMethod BackendServiceLogConfig + var s1 struct { + SampleRate gensupport.JSONFloat64 `json:"sampleRate"` + *NoMethod + } + s1.NoMethod = (*NoMethod)(s) + if err := json.Unmarshal(data, &s1); err != nil { + return err + } + s.SampleRate = float64(s1.SampleRate) + return nil +} + +// BackendServiceLogConfigLoggingHttpHeader: Determines which HTTP headers will +// be logged to Stackdriver. +type BackendServiceLogConfigLoggingHttpHeader struct { + // HeaderName: The name of the header to be logged. + HeaderName string `json:"headerName,omitempty"` + // ForceSendFields is a list of field names (e.g. "HeaderName") to // unconditionally include in API requests. By default, fields with empty or // default values are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. ForceSendFields []string `json:"-"` - // NullFields is a list of field names (e.g. "IncludeHost") to include in API + // NullFields is a list of field names (e.g. "HeaderName") to include in API // requests with the JSON null value. By default, fields with empty values are // omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } -func (s *CacheKeyPolicy) MarshalJSON() ([]byte, error) { - type NoMethod CacheKeyPolicy - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s BackendServiceLogConfigLoggingHttpHeader) MarshalJSON() ([]byte, error) { + type NoMethod BackendServiceLogConfigLoggingHttpHeader + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -// CircuitBreakers: Settings controlling the volume of requests, connections -// and retries to this backend service. -type CircuitBreakers struct { - // MaxConnections: The maximum number of connections to the backend service. If - // not specified, there is no limit. Not supported when the backend service is - // referenced by a URL map that is bound to target gRPC proxy that has - // validateForProxyless field set to true. - MaxConnections int64 `json:"maxConnections,omitempty"` - // MaxPendingRequests: The maximum number of pending requests allowed to the - // backend service. If not specified, there is no limit. Not supported when the - // backend service is referenced by a URL map that is bound to target gRPC - // proxy that has validateForProxyless field set to true. - MaxPendingRequests int64 `json:"maxPendingRequests,omitempty"` - // MaxRequests: The maximum number of parallel requests that allowed to the - // backend service. If not specified, there is no limit. - MaxRequests int64 `json:"maxRequests,omitempty"` - // MaxRequestsPerConnection: Maximum requests for a single connection to the - // backend service. This parameter is respected by both the HTTP/1.1 and HTTP/2 - // implementations. If not specified, there is no limit. Setting this parameter - // to 1 will effectively disable keep alive. Not supported when the backend - // service is referenced by a URL map that is bound to target gRPC proxy that - // has validateForProxyless field set to true. - MaxRequestsPerConnection int64 `json:"maxRequestsPerConnection,omitempty"` - // MaxRetries: The maximum number of parallel retries allowed to the backend - // cluster. If not specified, the default is 1. Not supported when the backend - // service is referenced by a URL map that is bound to target gRPC proxy that - // has validateForProxyless field set to true. - MaxRetries int64 `json:"maxRetries,omitempty"` - // ForceSendFields is a list of field names (e.g. "MaxConnections") to +type BackendServiceNetworkPassThroughLbTrafficPolicy struct { + // ZonalAffinity: When configured, new connections are load balanced across + // healthy backend + // endpoints in the local zone. + ZonalAffinity *BackendServiceNetworkPassThroughLbTrafficPolicyZonalAffinity `json:"zonalAffinity,omitempty"` + // ForceSendFields is a list of field names (e.g. "ZonalAffinity") to // unconditionally include in API requests. By default, fields with empty or // default values are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. ForceSendFields []string `json:"-"` - // NullFields is a list of field names (e.g. "MaxConnections") to include in - // API requests with the JSON null value. By default, fields with empty values - // are omitted from API requests. See + // NullFields is a list of field names (e.g. "ZonalAffinity") to include in API + // requests with the JSON null value. By default, fields with empty values are + // omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } -func (s *CircuitBreakers) MarshalJSON() ([]byte, error) { - type NoMethod CircuitBreakers - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s BackendServiceNetworkPassThroughLbTrafficPolicy) MarshalJSON() ([]byte, error) { + type NoMethod BackendServiceNetworkPassThroughLbTrafficPolicy + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -// Commitment: Represents a regional Commitment resource. Creating a commitment -// resource means that you are purchasing a committed use contract with an -// explicit start and end time. You can create commitments based on vCPUs and -// memory usage and receive discounted rates. For full details, read Signing Up -// for Committed Use Discounts. -type Commitment struct { - // AutoRenew: Specifies whether to enable automatic renewal for the commitment. - // The default value is false if not specified. The field can be updated until - // the day of the commitment expiration at 12:00am PST. If the field is set to - // true, the commitment will be automatically renewed for either one or three - // years according to the terms of the existing commitment. - AutoRenew bool `json:"autoRenew,omitempty"` - // Category: The category of the commitment. Category MACHINE specifies - // commitments composed of machine resources such as VCPU or MEMORY, listed in - // resources. Category LICENSE specifies commitments composed of software - // licenses, listed in licenseResources. Note that only MACHINE commitments - // should have a Type specified. - // - // Possible values: - // "CATEGORY_UNSPECIFIED" - // "LICENSE" - // "MACHINE" - Category string `json:"category,omitempty"` - // CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text format. - CreationTimestamp string `json:"creationTimestamp,omitempty"` - // Description: An optional description of this resource. Provide this property - // when you create the resource. - Description string `json:"description,omitempty"` - // EndTimestamp: [Output Only] Commitment end time in RFC3339 text format. - EndTimestamp string `json:"endTimestamp,omitempty"` - // ExistingReservations: Specifies the already existing reservations to attach - // to the Commitment. This field is optional, and it can be a full or partial - // URL. For example, the following are valid URLs to an reservation: - - // https://www.googleapis.com/compute/v1/projects/project/zones/zone - // /reservations/reservation - - // projects/project/zones/zone/reservations/reservation - ExistingReservations []string `json:"existingReservations,omitempty"` - // Id: [Output Only] The unique identifier for the resource. This identifier is - // defined by the server. - Id uint64 `json:"id,omitempty,string"` - // Kind: [Output Only] Type of the resource. Always compute#commitment for - // commitments. - Kind string `json:"kind,omitempty"` - // LicenseResource: The license specification required as part of a license - // commitment. - LicenseResource *LicenseResourceCommitment `json:"licenseResource,omitempty"` - // MergeSourceCommitments: List of source commitments to be merged into a new - // commitment. - MergeSourceCommitments []string `json:"mergeSourceCommitments,omitempty"` - // Name: Name of the resource. Provided by the client when the resource is - // created. The name must be 1-63 characters long, and comply with RFC1035. - // 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. - Name string `json:"name,omitempty"` - // Plan: The plan for this commitment, which determines duration and discount - // rate. The currently supported plans are TWELVE_MONTH (1 year), and - // THIRTY_SIX_MONTH (3 years). - // - // Possible values: - // "INVALID" - // "THIRTY_SIX_MONTH" - // "TWELVE_MONTH" - Plan string `json:"plan,omitempty"` - // Region: [Output Only] URL of the region where this commitment may be used. - Region string `json:"region,omitempty"` - // Reservations: List of create-on-create reservations for this commitment. - Reservations []*Reservation `json:"reservations,omitempty"` - // Resources: A list of commitment amounts for particular resources. Note that - // VCPU and MEMORY resource commitments must occur together. - Resources []*ResourceCommitment `json:"resources,omitempty"` - // SelfLink: [Output Only] Server-defined URL for the resource. - SelfLink string `json:"selfLink,omitempty"` - // SplitSourceCommitment: Source commitment to be split into a new commitment. - SplitSourceCommitment string `json:"splitSourceCommitment,omitempty"` - // StartTimestamp: [Output Only] Commitment start time in RFC3339 text format. - StartTimestamp string `json:"startTimestamp,omitempty"` - // Status: [Output Only] Status of the commitment with regards to eventual - // expiration (each commitment has an end date defined). One of the following - // values: NOT_YET_ACTIVE, ACTIVE, EXPIRED. +type BackendServiceNetworkPassThroughLbTrafficPolicyZonalAffinity struct { + // Spillover: This field indicates whether zonal affinity is enabled or not. + // The + // possible values are: // - // Possible values: - // "ACTIVE" - // "CANCELLED" - Deprecate CANCELED status. Will use separate status to - // differentiate cancel by mergeCud or manual cancellation. - // "CREATING" - // "EXPIRED" - // "NOT_YET_ACTIVE" - Status string `json:"status,omitempty"` - // StatusMessage: [Output Only] An optional, human-readable explanation of the - // status. - StatusMessage string `json:"statusMessage,omitempty"` - // Type: The type of commitment, which affects the discount rate and the - // eligible resources. Type MEMORY_OPTIMIZED specifies a commitment that will - // only apply to memory optimized machines. Type ACCELERATOR_OPTIMIZED - // specifies a commitment that will only apply to accelerator optimized - // machines. + // - ZONAL_AFFINITY_DISABLED: Default Value. Zonal Affinity + // is disabled. The load balancer distributes new connections to all + // healthy backend endpoints across all zones. + // - ZONAL_AFFINITY_STAY_WITHIN_ZONE: Zonal Affinity is + // enabled. The load balancer distributes new connections to all healthy + // backend endpoints in the local zone only. If there are no healthy + // backend endpoints in the local zone, the load balancer distributes + // new connections to all backend endpoints in the local zone. + // - ZONAL_AFFINITY_SPILL_CROSS_ZONE: Zonal Affinity is + // enabled. The load balancer distributes new connections to all healthy + // backend endpoints in the local zone only. If there aren't enough + // healthy backend endpoints in the local zone, the load balancer + // distributes new connections to all healthy backend endpoints across all + // zones. // // Possible values: - // "ACCELERATOR_OPTIMIZED" - // "ACCELERATOR_OPTIMIZED_A3" - // "ACCELERATOR_OPTIMIZED_A3_MEGA" - // "COMPUTE_OPTIMIZED" - // "COMPUTE_OPTIMIZED_C2D" - // "COMPUTE_OPTIMIZED_C3" - // "COMPUTE_OPTIMIZED_C3D" - // "COMPUTE_OPTIMIZED_H3" - // "GENERAL_PURPOSE" - // "GENERAL_PURPOSE_E2" - // "GENERAL_PURPOSE_N2" - // "GENERAL_PURPOSE_N2D" - // "GENERAL_PURPOSE_N4" - // "GENERAL_PURPOSE_T2D" - // "GRAPHICS_OPTIMIZED" - // "MEMORY_OPTIMIZED" - // "MEMORY_OPTIMIZED_M3" - // "STORAGE_OPTIMIZED_Z3" - // "TYPE_UNSPECIFIED" - Type string `json:"type,omitempty"` - - // ServerResponse contains the HTTP response code and headers from the server. - googleapi.ServerResponse `json:"-"` - // ForceSendFields is a list of field names (e.g. "AutoRenew") to + // "ZONAL_AFFINITY_DISABLED" + // "ZONAL_AFFINITY_SPILL_CROSS_ZONE" + // "ZONAL_AFFINITY_STAY_WITHIN_ZONE" + Spillover string `json:"spillover,omitempty"` + // SpilloverRatio: The value of the field must be in [0, 1]. When the ratio of + // the count + // of healthy backend endpoints in a zone to the count of backend + // endpoints in that same zone is equal to or above this threshold, the + // load balancer distributes new connections to all healthy endpoints in + // the local zone only. When the ratio of the count of healthy + // backend + // endpoints in a zone to the count of backend endpoints in that same + // zone is below this threshold, the load balancer distributes all + // new + // connections to all healthy endpoints across all zones. + SpilloverRatio float64 `json:"spilloverRatio,omitempty"` + // ForceSendFields is a list of field names (e.g. "Spillover") to // unconditionally include in API requests. By default, fields with empty or // default values are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. ForceSendFields []string `json:"-"` - // NullFields is a list of field names (e.g. "AutoRenew") to include in API + // NullFields is a list of field names (e.g. "Spillover") to include in API // requests with the JSON null value. By default, fields with empty values are // omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } -func (s *Commitment) MarshalJSON() ([]byte, error) { - type NoMethod Commitment - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s BackendServiceNetworkPassThroughLbTrafficPolicyZonalAffinity) MarshalJSON() ([]byte, error) { + type NoMethod BackendServiceNetworkPassThroughLbTrafficPolicyZonalAffinity + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -type CommitmentAggregatedList struct { - // Id: [Output Only] Unique identifier for the resource; defined by the server. - Id string `json:"id,omitempty"` - // Items: A list of CommitmentsScopedList resources. - Items map[string]CommitmentsScopedList `json:"items,omitempty"` - // Kind: [Output Only] Type of resource. Always - // compute#commitmentAggregatedList for aggregated lists of commitments. - 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"` - // SelfLink: [Output Only] Server-defined URL for this resource. - SelfLink string `json:"selfLink,omitempty"` - // Unreachables: [Output Only] Unreachable resources. - Unreachables []string `json:"unreachables,omitempty"` - // Warning: [Output Only] Informational warning message. - Warning *CommitmentAggregatedListWarning `json:"warning,omitempty"` +func (s *BackendServiceNetworkPassThroughLbTrafficPolicyZonalAffinity) UnmarshalJSON(data []byte) error { + type NoMethod BackendServiceNetworkPassThroughLbTrafficPolicyZonalAffinity + var s1 struct { + SpilloverRatio gensupport.JSONFloat64 `json:"spilloverRatio"` + *NoMethod + } + s1.NoMethod = (*NoMethod)(s) + if err := json.Unmarshal(data, &s1); err != nil { + return err + } + s.SpilloverRatio = float64(s1.SpilloverRatio) + return nil +} - // 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 or default values are - // omitted from API requests. See +// BackendServiceOrchestrationInfo: A message containing information about the +// resource or system that manages +// the backend service. +type BackendServiceOrchestrationInfo struct { + // ResourceUri: The resource URI of the resource or system that manages the + // backend + // service. + ResourceUri string `json:"resourceUri,omitempty"` + // ForceSendFields is a list of field names (e.g. "ResourceUri") to + // unconditionally include in API requests. By default, fields with empty or + // default values are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. 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. See + // NullFields is a list of field names (e.g. "ResourceUri") to include in API + // requests with the JSON null value. By default, fields with empty values are + // omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } -func (s *CommitmentAggregatedList) MarshalJSON() ([]byte, error) { - type NoMethod CommitmentAggregatedList - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s BackendServiceOrchestrationInfo) MarshalJSON() ([]byte, error) { + type NoMethod BackendServiceOrchestrationInfo + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -// CommitmentAggregatedListWarning: [Output Only] Informational warning -// message. -type CommitmentAggregatedListWarning 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" - Warning about failed cleanup of transient changes made - // by a failed operation. - // "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was created. - // "DEPRECATED_TYPE_USED" - When deploying and at least one of the resources - // has a type marked as deprecated - // "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk that is - // larger than image size. - // "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the - // resources has a type marked as experimental - // "EXTERNAL_API_WARNING" - Warning that is present in an external api call - // "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been - // overridden. Deprecated unused field. - // "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an injected - // kernel, which is deprecated. - // "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB" - A WEIGHTED_MAGLEV backend - // service is associated with a health check that is not of type - // HTTP/HTTPS/HTTP2. - // "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a - // exceedingly large number of resources - // "LIST_OVERHEAD_QUOTA_EXCEED" - Resource can't be retrieved due to list - // overhead quota exceed which captures the amount of resources filtered out by - // user-defined list filter. - // "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type - // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is not - // assigned to an instance on the network. - // "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot ip - // forward. - // "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE" - The route's nextHopInstance - // URL refers to an instance that does not have an ipv6 interface on the same - // network as the route. - // "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL refers to - // an instance that does not exist. - // "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance URL - // refers to an instance that is not on the same network as the route. - // "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not have a - // status of RUNNING. - // "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to continue - // the process despite the mentioned error. - // "NO_RESULTS_ON_PAGE" - No results are present on a particular list page. - // "PARTIAL_SUCCESS" - Success is reported, but some results may be missing - // due to errors - // "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource that - // requires a TOS they have not accepted. - // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a resource is - // in use. - // "RESOURCE_NOT_DELETED" - One or more of the resources set to auto-delete - // could not be deleted because they were in use. - // "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is - // ignored. - // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in instance - // group manager is valid as such, but its application does not make a lot of - // sense, because it allows only single instance in instance group. - // "UNDECLARED_PROPERTIES" - When undeclared properties in the schema are - // present - // "UNREACHABLE" - A given scope cannot be reached. - 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 []*CommitmentAggregatedListWarningData `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 or default values are - // omitted from API requests. See +// BackendServiceParams: Additional Backend Service parameters. +type BackendServiceParams struct { + // ResourceManagerTags: Tag keys/values directly bound to this resource. + // Tag keys and values have the same definition as resource + // manager tags. The field is allowed for INSERT + // only. The keys/values to set on the resource should be specified in + // either ID { : } or Namespaced format + // { : }. + // For example the following are valid inputs: + // * {"tagKeys/333" : "tagValues/444", "tagKeys/123" : "tagValues/456"} + // * {"123/environment" : "production", "345/abc" : "xyz"} + // Note: + // * Invalid combinations of ID & namespaced format is not supported. For + // instance: {"123/environment" : "tagValues/444"} is invalid. + ResourceManagerTags map[string]string `json:"resourceManagerTags,omitempty"` + // ForceSendFields is a list of field names (e.g. "ResourceManagerTags") to + // unconditionally include in API requests. By default, fields with empty or + // default values are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. 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. See + // NullFields is a list of field names (e.g. "ResourceManagerTags") to include + // in API requests with the JSON null value. By default, fields with empty + // values are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } -func (s *CommitmentAggregatedListWarning) MarshalJSON() ([]byte, error) { - type NoMethod CommitmentAggregatedListWarning - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s BackendServiceParams) MarshalJSON() ([]byte, error) { + type NoMethod BackendServiceParams + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -type CommitmentAggregatedListWarningData 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 or default values are - // omitted from API requests. See +type BackendServiceReference struct { + BackendService string `json:"backendService,omitempty"` + // ForceSendFields is a list of field names (e.g. "BackendService") to + // unconditionally include in API requests. By default, fields with empty or + // default values are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. 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. See + // NullFields is a list of field names (e.g. "BackendService") to include in + // API requests with the JSON null value. By default, fields with empty values + // are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } -func (s *CommitmentAggregatedListWarningData) MarshalJSON() ([]byte, error) { - type NoMethod CommitmentAggregatedListWarningData - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) -} - -// CommitmentList: Contains a list of Commitment resources. -type CommitmentList struct { - // Id: [Output Only] Unique identifier for the resource; defined by the server. - Id string `json:"id,omitempty"` - // Items: A list of Commitment resources. - Items []*Commitment `json:"items,omitempty"` - // Kind: [Output Only] Type of resource. Always compute#commitmentList for - // lists of commitments. - 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"` - // SelfLink: [Output Only] Server-defined URL for this resource. - SelfLink string `json:"selfLink,omitempty"` - // Warning: [Output Only] Informational warning message. - Warning *CommitmentListWarning `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 or default values are - // omitted from API requests. See +func (s BackendServiceReference) MarshalJSON() ([]byte, error) { + type NoMethod BackendServiceReference + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +type BackendServiceTlsSettings struct { + // AuthenticationConfig: Reference to the BackendAuthenticationConfig resource + // from the + // networksecurity.googleapis.com namespace. Can be used in authenticating + // TLS connections to the backend, as specified by the + // authenticationMode + // field. Can only be specified if authenticationMode is not NONE. + AuthenticationConfig string `json:"authenticationConfig,omitempty"` + // Sni: Server Name Indication - see RFC3546 section 3.1. If set, the + // load + // balancer sends this string as the SNI hostname in the TLS connection to + // the backend, and requires that this string match a Subject Alternative + // Name (SAN) in the backend's server certificate. With a Regional Internet + // NEG backend, if the SNI is specified here, the load balancer uses + // it + // regardless of whether the Regional Internet NEG is specified with FQDN or + // IP address and port. When both sni and subjectAltNames[] are specified, + // the load balancer matches the backend certificate's SAN only + // to + // subjectAltNames[]. + Sni string `json:"sni,omitempty"` + // SubjectAltNames: A list of Subject Alternative Names (SANs) that the Load + // Balancer + // verifies during a TLS handshake with the backend. When the server + // presents its X.509 certificate to the Load Balancer, the Load + // Balancer + // inspects the certificate's SAN field, and requires that at least one + // SAN + // match one of the subjectAltNames in the list. This field is limited to + // 5 + // entries. When both sni and subjectAltNames[] are specified, the + // load + // balancer matches the backend certificate's SAN only to subjectAltNames[]. + SubjectAltNames []*BackendServiceTlsSettingsSubjectAltName `json:"subjectAltNames,omitempty"` + // ForceSendFields is a list of field names (e.g. "AuthenticationConfig") to + // unconditionally include in API requests. By default, fields with empty or + // default values are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. 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. See + // NullFields is a list of field names (e.g. "AuthenticationConfig") to include + // in API requests with the JSON null value. By default, fields with empty + // values are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } -func (s *CommitmentList) MarshalJSON() ([]byte, error) { - type NoMethod CommitmentList - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s BackendServiceTlsSettings) MarshalJSON() ([]byte, error) { + type NoMethod BackendServiceTlsSettings + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -// CommitmentListWarning: [Output Only] Informational warning message. -type CommitmentListWarning 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" - Warning about failed cleanup of transient changes made - // by a failed operation. - // "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was created. - // "DEPRECATED_TYPE_USED" - When deploying and at least one of the resources - // has a type marked as deprecated - // "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk that is - // larger than image size. - // "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the - // resources has a type marked as experimental - // "EXTERNAL_API_WARNING" - Warning that is present in an external api call - // "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been - // overridden. Deprecated unused field. - // "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an injected - // kernel, which is deprecated. - // "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB" - A WEIGHTED_MAGLEV backend - // service is associated with a health check that is not of type - // HTTP/HTTPS/HTTP2. - // "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a - // exceedingly large number of resources - // "LIST_OVERHEAD_QUOTA_EXCEED" - Resource can't be retrieved due to list - // overhead quota exceed which captures the amount of resources filtered out by - // user-defined list filter. - // "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type - // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is not - // assigned to an instance on the network. - // "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot ip - // forward. - // "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE" - The route's nextHopInstance - // URL refers to an instance that does not have an ipv6 interface on the same - // network as the route. - // "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL refers to - // an instance that does not exist. - // "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance URL - // refers to an instance that is not on the same network as the route. - // "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not have a - // status of RUNNING. - // "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to continue - // the process despite the mentioned error. - // "NO_RESULTS_ON_PAGE" - No results are present on a particular list page. - // "PARTIAL_SUCCESS" - Success is reported, but some results may be missing - // due to errors - // "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource that - // requires a TOS they have not accepted. - // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a resource is - // in use. - // "RESOURCE_NOT_DELETED" - One or more of the resources set to auto-delete - // could not be deleted because they were in use. - // "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is - // ignored. - // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in instance - // group manager is valid as such, but its application does not make a lot of - // sense, because it allows only single instance in instance group. - // "UNDECLARED_PROPERTIES" - When undeclared properties in the schema are - // present - // "UNREACHABLE" - A given scope cannot be reached. - 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 []*CommitmentListWarningData `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 +// BackendServiceTlsSettingsSubjectAltName: A Subject Alternative Name that the +// load balancer matches against the SAN +// field in the TLS certificate provided by the backend, specified as either +// a DNS name or a URI, in accordance with RFC 5280 4.2.1.6 +type BackendServiceTlsSettingsSubjectAltName struct { + // DnsName: The SAN specified as a DNS Name. + DnsName string `json:"dnsName,omitempty"` + // UniformResourceIdentifier: The SAN specified as a URI. + UniformResourceIdentifier string `json:"uniformResourceIdentifier,omitempty"` + // ForceSendFields is a list of field names (e.g. "DnsName") to unconditionally // include in API requests. By default, fields with empty or default values are // omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. 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. See + // NullFields is a list of field names (e.g. "DnsName") to include in API + // requests with the JSON null value. By default, fields with empty values are + // omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } -func (s *CommitmentListWarning) MarshalJSON() ([]byte, error) { - type NoMethod CommitmentListWarning - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s BackendServiceTlsSettingsSubjectAltName) MarshalJSON() ([]byte, error) { + type NoMethod BackendServiceTlsSettingsSubjectAltName + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -type CommitmentListWarningData 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 or default values are - // omitted from API requests. See +type BackendServiceUsedBy struct { + // Reference: Output only. [Output Only] Server-defined URL for resources + // referencing given + // BackendService like UrlMaps, TargetTcpProxies, TargetSslProxies + // and ForwardingRule. + Reference string `json:"reference,omitempty"` + // ForceSendFields is a list of field names (e.g. "Reference") to + // unconditionally include in API requests. By default, fields with empty or + // default values are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. 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. See + // NullFields is a list of field names (e.g. "Reference") to include in API + // requests with the JSON null value. By default, fields with empty values are + // omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } -func (s *CommitmentListWarningData) MarshalJSON() ([]byte, error) { - type NoMethod CommitmentListWarningData - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s BackendServiceUsedBy) MarshalJSON() ([]byte, error) { + type NoMethod BackendServiceUsedBy + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -type CommitmentsScopedList struct { - // Commitments: [Output Only] A list of commitments contained in this scope. - Commitments []*Commitment `json:"commitments,omitempty"` - // Warning: [Output Only] Informational warning which replaces the list of - // commitments when the list is empty. - Warning *CommitmentsScopedListWarning `json:"warning,omitempty"` - // ForceSendFields is a list of field names (e.g. "Commitments") to +type BackendServicesScopedList struct { + // BackendServices: A list of BackendServices contained in this scope. + BackendServices []*BackendService `json:"backendServices,omitempty"` + // Warning: Informational warning which replaces the list of + // backend services when the list is empty. + Warning *BackendServicesScopedListWarning `json:"warning,omitempty"` + // ForceSendFields is a list of field names (e.g. "BackendServices") to // unconditionally include in API requests. By default, fields with empty or // default values are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. ForceSendFields []string `json:"-"` - // NullFields is a list of field names (e.g. "Commitments") to include in API - // requests with the JSON null value. By default, fields with empty values are - // omitted from API requests. See + // NullFields is a list of field names (e.g. "BackendServices") to include in + // API requests with the JSON null value. By default, fields with empty values + // are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } -func (s *CommitmentsScopedList) MarshalJSON() ([]byte, error) { - type NoMethod CommitmentsScopedList - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s BackendServicesScopedList) MarshalJSON() ([]byte, error) { + type NoMethod BackendServicesScopedList + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -// CommitmentsScopedListWarning: [Output Only] Informational warning which -// replaces the list of commitments when the list is empty. -type CommitmentsScopedListWarning 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. +// BackendServicesScopedListWarning: Informational warning which replaces the +// list of +// backend services when the list is empty. +type BackendServicesScopedListWarning 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" - Warning about failed cleanup of transient changes made - // by a failed operation. + // by a failed + // operation. // "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was created. // "DEPRECATED_TYPE_USED" - When deploying and at least one of the resources - // has a type marked as deprecated + // has a type marked as + // deprecated // "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk that is // larger than image size. // "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the - // resources has a type marked as experimental + // resources has a type marked as + // experimental // "EXTERNAL_API_WARNING" - Warning that is present in an external api call // "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been - // overridden. Deprecated unused field. + // overridden. + // Deprecated unused field. // "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an injected // kernel, which is deprecated. // "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB" - A WEIGHTED_MAGLEV backend - // service is associated with a health check that is not of type - // HTTP/HTTPS/HTTP2. + // service is associated with a health check that is + // not of type HTTP/HTTPS/HTTP2. // "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a // exceedingly large number of resources // "LIST_OVERHEAD_QUOTA_EXCEED" - Resource can't be retrieved due to list - // overhead quota exceed which captures the amount of resources filtered out by + // overhead quota exceed + // which captures the amount of resources filtered out by // user-defined list filter. // "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is not - // assigned to an instance on the network. + // assigned to an instance on the + // network. // "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot ip // forward. // "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE" - The route's nextHopInstance - // URL refers to an instance that does not have an ipv6 interface on the same - // network as the route. + // URL refers to an instance that does not have an + // ipv6 interface on the same network as the route. // "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL refers to // an instance that does not exist. // "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance URL - // refers to an instance that is not on the same network as the route. + // refers to an instance that is not on the + // same network as the route. // "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not have a // status of RUNNING. // "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to continue - // the process despite the mentioned error. + // the process despite + // the mentioned error. // "NO_RESULTS_ON_PAGE" - No results are present on a particular list page. // "PARTIAL_SUCCESS" - Success is reported, but some results may be missing // due to errors + // "QUOTA_INFO_UNAVAILABLE" - Quota information is not available to client + // requests (e.g: + // regions.list). // "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource that - // requires a TOS they have not accepted. + // requires a TOS they have not + // accepted. // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a resource is // in use. // "RESOURCE_NOT_DELETED" - One or more of the resources set to auto-delete - // could not be deleted because they were in use. + // could not be deleted + // because they were in use. // "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is // ignored. // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in instance - // group manager is valid as such, but its application does not make a lot of - // sense, because it allows only single instance in instance group. + // group manager is valid as such, but + // its application does not make a lot of sense, because it allows only + // single instance in instance group. // "UNDECLARED_PROPERTIES" - When undeclared properties in the schema are // present // "UNREACHABLE" - A given scope cannot be reached. 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 []*CommitmentsScopedListWarningData `json:"data,omitempty"` + // Data: [Output Only] Metadata about this warning in key: + // value format. For example: + // + // "data": [ + // { + // "key": "scope", + // "value": "zones/us-east1-d" + // } + Data []*BackendServicesScopedListWarningData `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 @@ -7579,19 +9671,22 @@ type CommitmentsScopedListWarning struct { NullFields []string `json:"-"` } -func (s *CommitmentsScopedListWarning) MarshalJSON() ([]byte, error) { - type NoMethod CommitmentsScopedListWarning - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s BackendServicesScopedListWarning) MarshalJSON() ([]byte, error) { + type NoMethod BackendServicesScopedListWarning + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -type CommitmentsScopedListWarningData 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). +type BackendServicesScopedListWarningData 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"` @@ -7608,657 +9703,1570 @@ type CommitmentsScopedListWarningData struct { NullFields []string `json:"-"` } -func (s *CommitmentsScopedListWarningData) MarshalJSON() ([]byte, error) { - type NoMethod CommitmentsScopedListWarningData - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s BackendServicesScopedListWarningData) MarshalJSON() ([]byte, error) { + type NoMethod BackendServicesScopedListWarningData + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -// Condition: This is deprecated and has no effect. Do not use. -type Condition struct { - // Iam: This is deprecated and has no effect. Do not use. - // - // Possible values: - // "APPROVER" - This is deprecated and has no effect. Do not use. - // "ATTRIBUTION" - This is deprecated and has no effect. Do not use. - // "AUTHORITY" - This is deprecated and has no effect. Do not use. - // "CREDENTIALS_TYPE" - This is deprecated and has no effect. Do not use. - // "CREDS_ASSERTION" - This is deprecated and has no effect. Do not use. - // "JUSTIFICATION_TYPE" - This is deprecated and has no effect. Do not use. - // "NO_ATTR" - This is deprecated and has no effect. Do not use. - // "SECURITY_REALM" - This is deprecated and has no effect. Do not use. - Iam string `json:"iam,omitempty"` - // Op: This is deprecated and has no effect. Do not use. - // - // Possible values: - // "DISCHARGED" - This is deprecated and has no effect. Do not use. - // "EQUALS" - This is deprecated and has no effect. Do not use. - // "IN" - This is deprecated and has no effect. Do not use. - // "NOT_EQUALS" - This is deprecated and has no effect. Do not use. - // "NOT_IN" - This is deprecated and has no effect. Do not use. - // "NO_OP" - This is deprecated and has no effect. Do not use. - Op string `json:"op,omitempty"` - // Svc: This is deprecated and has no effect. Do not use. - Svc string `json:"svc,omitempty"` - // Sys: This is deprecated and has no effect. Do not use. - // - // Possible values: - // "IP" - This is deprecated and has no effect. Do not use. - // "NAME" - This is deprecated and has no effect. Do not use. - // "NO_ATTR" - This is deprecated and has no effect. Do not use. - // "REGION" - This is deprecated and has no effect. Do not use. - // "SERVICE" - This is deprecated and has no effect. Do not use. - Sys string `json:"sys,omitempty"` - // Values: This is deprecated and has no effect. Do not use. - Values []string `json:"values,omitempty"` - // ForceSendFields is a list of field names (e.g. "Iam") to unconditionally +type BfdPacket struct { + // AuthenticationPresent: The Authentication Present bit of the BFD packet. + // This is specified in + // section 4.1 ofRFC5880 + AuthenticationPresent bool `json:"authenticationPresent,omitempty"` + // ControlPlaneIndependent: The Control Plane Independent bit of the BFD + // packet. This is specified in + // section 4.1 ofRFC5880 + ControlPlaneIndependent bool `json:"controlPlaneIndependent,omitempty"` + // Demand: The demand bit of the BFD packet. This is specified in section 4.1 + // ofRFC5880 + Demand bool `json:"demand,omitempty"` + // Diagnostic: The diagnostic code specifies the local system's reason for the + // last change + // in session state. This allows remote systems to determine the reason + // that + // the previous session failed, for example. These diagnostic codes + // are + // specified in section 4.1 ofRFC5880 + // + // Possible values: + // "ADMINISTRATIVELY_DOWN" + // "CONCATENATED_PATH_DOWN" + // "CONTROL_DETECTION_TIME_EXPIRED" + // "DIAGNOSTIC_UNSPECIFIED" + // "ECHO_FUNCTION_FAILED" + // "FORWARDING_PLANE_RESET" + // "NEIGHBOR_SIGNALED_SESSION_DOWN" + // "NO_DIAGNOSTIC" + // "PATH_DOWN" + // "REVERSE_CONCATENATED_PATH_DOWN" + Diagnostic string `json:"diagnostic,omitempty"` + // Final: The Final bit of the BFD packet. This is specified in section 4.1 + // ofRFC5880 + Final bool `json:"final,omitempty"` + // Length: The length of the BFD Control packet in bytes. This is specified in + // section + // 4.1 ofRFC5880 + Length int64 `json:"length,omitempty"` + // MinEchoRxIntervalMs: The Required Min Echo RX Interval value in the BFD + // packet. This is + // specified in section 4.1 ofRFC5880 + MinEchoRxIntervalMs int64 `json:"minEchoRxIntervalMs,omitempty"` + // MinRxIntervalMs: The Required Min RX Interval value in the BFD packet. This + // is specified in + // section 4.1 ofRFC5880 + MinRxIntervalMs int64 `json:"minRxIntervalMs,omitempty"` + // MinTxIntervalMs: The Desired Min TX Interval value in the BFD packet. This + // is specified in + // section 4.1 ofRFC5880 + MinTxIntervalMs int64 `json:"minTxIntervalMs,omitempty"` + // Multiplier: The detection time multiplier of the BFD packet. This is + // specified in + // section 4.1 ofRFC5880 + Multiplier int64 `json:"multiplier,omitempty"` + // Multipoint: The multipoint bit of the BFD packet. This is specified in + // section 4.1 ofRFC5880 + Multipoint bool `json:"multipoint,omitempty"` + // MyDiscriminator: The My Discriminator value in the BFD packet. This is + // specified in section + // 4.1 ofRFC5880 + MyDiscriminator int64 `json:"myDiscriminator,omitempty"` + // Poll: The Poll bit of the BFD packet. This is specified in section 4.1 + // ofRFC5880 + Poll bool `json:"poll,omitempty"` + // State: The current BFD session state as seen by the transmitting system. + // These + // states are specified in section 4.1 ofRFC5880 + // + // Possible values: + // "ADMIN_DOWN" + // "DOWN" + // "INIT" + // "STATE_UNSPECIFIED" + // "UP" + State string `json:"state,omitempty"` + // Version: The version number of the BFD protocol, as specified in section 4.1 + // ofRFC5880. + Version int64 `json:"version,omitempty"` + // YourDiscriminator: The Your Discriminator value in the BFD packet. This is + // specified in + // section 4.1 ofRFC5880 + YourDiscriminator int64 `json:"yourDiscriminator,omitempty"` + // ForceSendFields is a list of field names (e.g. "AuthenticationPresent") to + // unconditionally include in API requests. By default, fields with empty or + // default values are omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + ForceSendFields []string `json:"-"` + // NullFields is a list of field names (e.g. "AuthenticationPresent") to + // include in API requests with the JSON null value. By default, fields with + // empty values are omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s BfdPacket) MarshalJSON() ([]byte, error) { + type NoMethod BfdPacket + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +// BfdStatus: Next free: 15 +type BfdStatus struct { + // BfdSessionInitializationMode: The BFD session initialization mode for this + // BGP peer. + // If set to ACTIVE, the Cloud Router will initiate the BFD session for + // this BGP peer. If set to PASSIVE, the Cloud Router will wait for the + // peer router to initiate the BFD session for this BGP peer. If set + // to + // DISABLED, BFD is disabled for this BGP peer. + // + // Possible values: + // "ACTIVE" + // "DISABLED" + // "PASSIVE" + BfdSessionInitializationMode string `json:"bfdSessionInitializationMode,omitempty"` + // ConfigUpdateTimestampMicros: Unix timestamp of the most recent config + // update. + ConfigUpdateTimestampMicros int64 `json:"configUpdateTimestampMicros,omitempty,string"` + // ControlPacketCounts: Control packet counts for the current BFD session. + ControlPacketCounts *BfdStatusPacketCounts `json:"controlPacketCounts,omitempty"` + // ControlPacketIntervals: Inter-packet time interval statistics for control + // packets. + ControlPacketIntervals []*PacketIntervals `json:"controlPacketIntervals,omitempty"` + // LocalDiagnostic: The diagnostic code specifies the local system's reason for + // the last change + // in session state. This allows remote systems to determine the reason + // that + // the previous session failed, for example. These diagnostic codes + // are + // specified in section 4.1 ofRFC5880 + // + // Possible values: + // "ADMINISTRATIVELY_DOWN" + // "CONCATENATED_PATH_DOWN" + // "CONTROL_DETECTION_TIME_EXPIRED" + // "DIAGNOSTIC_UNSPECIFIED" + // "ECHO_FUNCTION_FAILED" + // "FORWARDING_PLANE_RESET" + // "NEIGHBOR_SIGNALED_SESSION_DOWN" + // "NO_DIAGNOSTIC" + // "PATH_DOWN" + // "REVERSE_CONCATENATED_PATH_DOWN" + LocalDiagnostic string `json:"localDiagnostic,omitempty"` + // LocalState: The current BFD session state as seen by the transmitting + // system. These + // states are specified in section 4.1 ofRFC5880 + // + // Possible values: + // "ADMIN_DOWN" + // "DOWN" + // "INIT" + // "STATE_UNSPECIFIED" + // "UP" + LocalState string `json:"localState,omitempty"` + // NegotiatedLocalControlTxIntervalMs: Negotiated transmit interval for control + // packets. + NegotiatedLocalControlTxIntervalMs int64 `json:"negotiatedLocalControlTxIntervalMs,omitempty"` + // RxPacket: The most recent Rx control packet for this BFD session. + RxPacket *BfdPacket `json:"rxPacket,omitempty"` + // TxPacket: The most recent Tx control packet for this BFD session. + TxPacket *BfdPacket `json:"txPacket,omitempty"` + // UptimeMs: Session uptime in milliseconds. Value will be 0 if session is not + // up. + UptimeMs int64 `json:"uptimeMs,omitempty,string"` + // ForceSendFields is a list of field names (e.g. + // "BfdSessionInitializationMode") to unconditionally include in API requests. + // By default, fields with empty or default values are omitted from API + // requests. See https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields + // for more details. + ForceSendFields []string `json:"-"` + // NullFields is a list of field names (e.g. "BfdSessionInitializationMode") to + // include in API requests with the JSON null value. By default, fields with + // empty values are omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s BfdStatus) MarshalJSON() ([]byte, error) { + type NoMethod BfdStatus + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +type BfdStatusPacketCounts struct { + // NumRx: Number of packets received since the beginning of the current + // BFD + // session. + NumRx int64 `json:"numRx,omitempty"` + // NumRxRejected: Number of packets received that were rejected because of + // errors since the + // beginning of the current BFD session. + NumRxRejected int64 `json:"numRxRejected,omitempty"` + // NumRxSuccessful: Number of packets received that were successfully processed + // since the + // beginning of the current BFD session. + NumRxSuccessful int64 `json:"numRxSuccessful,omitempty"` + // NumTx: Number of packets transmitted since the beginning of the current + // BFD + // session. + NumTx int64 `json:"numTx,omitempty"` + // ForceSendFields is a list of field names (e.g. "NumRx") to unconditionally + // include in API requests. By default, fields with empty or default values are + // omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + ForceSendFields []string `json:"-"` + // NullFields is a list of field names (e.g. "NumRx") to include in API + // requests with the JSON null value. By default, fields with empty values are + // omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s BfdStatusPacketCounts) MarshalJSON() ([]byte, error) { + type NoMethod BfdStatusPacketCounts + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +type BgpRoute struct { + // AsPaths: Output only. [Output only] AS-PATH for the route + AsPaths []*BgpRouteAsPath `json:"asPaths,omitempty"` + // Communities: Output only. [Output only] BGP communities in human-readable + // A:B format. + Communities []string `json:"communities,omitempty"` + // Destination: Output only. [Output only] Destination IP range for the route, + // in human-readable CIDR + // format + Destination *BgpRouteNetworkLayerReachabilityInformation `json:"destination,omitempty"` + // Med: Output only. [Output only] BGP multi-exit discriminator + Med int64 `json:"med,omitempty"` + // Origin: Output only. [Output only] BGP origin (EGP, IGP or INCOMPLETE) + // + // Possible values: + // "BGP_ORIGIN_EGP" + // "BGP_ORIGIN_IGP" + // "BGP_ORIGIN_INCOMPLETE" + Origin string `json:"origin,omitempty"` + // ForceSendFields is a list of field names (e.g. "AsPaths") to unconditionally + // include in API requests. By default, fields with empty or default values are + // omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + ForceSendFields []string `json:"-"` + // NullFields is a list of field names (e.g. "AsPaths") to include in API + // requests with the JSON null value. By default, fields with empty values are + // omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s BgpRoute) MarshalJSON() ([]byte, error) { + type NoMethod BgpRoute + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +type BgpRouteAsPath struct { + // Asns: Output only. [Output only] ASNs in the path segment. When type is + // SEQUENCE, these are + // ordered. + Asns []int64 `json:"asns,omitempty"` + // Asns32: Output only. [Output only] ASNs in the path segment. This field is + // for better + // support of 32 bit ASNs as the other asns field suffers from overflow + // when + // the ASN is larger. When type is SEQUENCE, these are ordered. + Asns32 []int64 `json:"asns32,omitempty"` + // Type: Output only. [Output only] Type of AS-PATH segment (SEQUENCE or SET) + // + // Possible values: + // "AS_PATH_TYPE_SEQUENCE" + // "AS_PATH_TYPE_SET" + Type string `json:"type,omitempty"` + // ForceSendFields is a list of field names (e.g. "Asns") to unconditionally // include in API requests. By default, fields with empty or default values are // omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. ForceSendFields []string `json:"-"` - // NullFields is a list of field names (e.g. "Iam") to include in API requests + // NullFields is a list of field names (e.g. "Asns") to include in API requests // with the JSON null value. By default, fields with empty values are omitted // from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } -func (s *Condition) MarshalJSON() ([]byte, error) { - type NoMethod Condition - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s BgpRouteAsPath) MarshalJSON() ([]byte, error) { + type NoMethod BgpRouteAsPath + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -// ConfidentialInstanceConfig: A set of Confidential Instance options. -type ConfidentialInstanceConfig struct { - // EnableConfidentialCompute: Defines whether the instance should have - // confidential compute enabled. - EnableConfidentialCompute bool `json:"enableConfidentialCompute,omitempty"` - // ForceSendFields is a list of field names (e.g. "EnableConfidentialCompute") - // to unconditionally include in API requests. By default, fields with empty or - // default values are omitted from API requests. See +// BgpRouteNetworkLayerReachabilityInformation: Network Layer Reachability +// Information (NLRI) for a route. +type BgpRouteNetworkLayerReachabilityInformation struct { + // PathId: If the BGP session supports multiple paths (RFC 7911), the + // path + // identifier for this route. + PathId int64 `json:"pathId,omitempty"` + // Prefix: Human readable CIDR notation for a prefix. E.g. 10.42.0.0/16. + Prefix string `json:"prefix,omitempty"` + // ForceSendFields is a list of field names (e.g. "PathId") to unconditionally + // include in API requests. By default, fields with empty or default values are + // omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. ForceSendFields []string `json:"-"` - // NullFields is a list of field names (e.g. "EnableConfidentialCompute") to - // include in API requests with the JSON null value. By default, fields with - // empty values are omitted from API requests. See + // NullFields is a list of field names (e.g. "PathId") to include in API + // requests with the JSON null value. By default, fields with empty values are + // omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } -func (s *ConfidentialInstanceConfig) MarshalJSON() ([]byte, error) { - type NoMethod ConfidentialInstanceConfig - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s BgpRouteNetworkLayerReachabilityInformation) MarshalJSON() ([]byte, error) { + type NoMethod BgpRouteNetworkLayerReachabilityInformation + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -// ConnectionDraining: Message containing connection draining configuration. -type ConnectionDraining struct { - // DrainingTimeoutSec: Configures a duration timeout for existing requests on a - // removed backend instance. For supported load balancers and protocols, as - // described in Enabling connection draining. - DrainingTimeoutSec int64 `json:"drainingTimeoutSec,omitempty"` - // ForceSendFields is a list of field names (e.g. "DrainingTimeoutSec") to +// Binding: Associates `members`, or principals, with a `role`. +type Binding struct { + // Condition: The condition that is associated with this binding. + // + // If the condition evaluates to `true`, then this binding applies to + // the + // current request. + // + // If the condition evaluates to `false`, then this binding does not apply + // to + // the current request. However, a different role binding might grant the + // same + // role to one or more of the principals in this binding. + // + // To learn which resources support conditions in their IAM policies, see + // the + // IAM + // documentation + // (https://cloud.google.com/iam/help/conditions/resource-policies). + Condition *Expr `json:"condition,omitempty"` + // Members: Specifies the principals requesting access for a Google Cloud + // resource. + // `members` can have the following values: + // + // * `allUsers`: A special identifier that represents anyone who is + // on the internet; with or without a Google account. + // + // * `allAuthenticatedUsers`: A special identifier that represents anyone + // who is authenticated with a Google account or a service account. + // Does not include identities that come from external identity providers + // (IdPs) through identity federation. + // + // * `user:{emailid}`: An email address that represents a specific Google + // account. For example, `alice@example.com` . + // + // + // * `serviceAccount:{emailid}`: An email address that represents a Google + // service account. For example, + // `my-other-app@appspot.gserviceaccount.com`. + // + // * `serviceAccount:{projectid}.svc.id.goog[{namespace}/{kubernetes-sa}]`: An + // identifier for a + // Kubernetes service + // account + // (https://cloud.google.com/kubernetes-engine/docs/how-to/kubernetes-service-accounts). + // For example, `my-project.svc.id.goog[my-namespace/my-kubernetes-sa]`. + // + // * `group:{emailid}`: An email address that represents a Google group. + // For example, `admins@example.com`. + // + // + // * `domain:{domain}`: The G Suite domain (primary) that represents all the + // users of that domain. For example, `google.com` or `example.com`. + // + // + // + // + // * + // `principal://iam.googleapis.com/locations/global/workforcePools/{pool_id}/sub + // ject/{subject_attribute_value}`: + // A single identity in a workforce identity pool. + // + // * + // `principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id}/ + // group/{group_id}`: + // All workforce identities in a group. + // + // * + // `principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id}/ + // attribute.{attribute_name}/{attribute_value}`: + // All workforce identities with a specific attribute value. + // + // * + // `principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id}/ + // *`: + // All identities in a workforce identity pool. + // + // * + // `principal://iam.googleapis.com/projects/{project_number}/locations/global/wo + // rkloadIdentityPools/{pool_id}/subject/{subject_attribute_value}`: + // A single identity in a workload identity pool. + // + // * + // `principalSet://iam.googleapis.com/projects/{project_number}/locations/global + // /workloadIdentityPools/{pool_id}/group/{group_id}`: + // A workload identity pool group. + // + // * + // `principalSet://iam.googleapis.com/projects/{project_number}/locations/global + // /workloadIdentityPools/{pool_id}/attribute.{attribute_name}/{attribute_value} + // `: + // All identities in a workload identity pool with a certain attribute. + // + // * + // `principalSet://iam.googleapis.com/projects/{project_number}/locations/global + // /workloadIdentityPools/{pool_id}/*`: + // All identities in a workload identity pool. + // + // * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique + // identifier) representing a user that has been recently deleted. For + // example, `alice@example.com?uid=123456789012345678901`. If the user is + // recovered, this value reverts to `user:{emailid}` and the recovered user + // retains the role in the binding. + // + // * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus + // unique identifier) representing a service account that has been recently + // deleted. For example, + // `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. + // If the service account is undeleted, this value reverts to + // `serviceAccount:{emailid}` and the undeleted service account retains the + // role in the binding. + // + // * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique + // identifier) representing a Google group that has been recently + // deleted. For example, `admins@example.com?uid=123456789012345678901`. If + // the group is recovered, this value reverts to `group:{emailid}` and the + // recovered group retains the role in the binding. + // + // * + // `deleted:principal://iam.googleapis.com/locations/global/workforcePools/{pool + // _id}/subject/{subject_attribute_value}`: + // Deleted single identity in a workforce identity pool. For example, + // + // `deleted:principal://iam.googleapis.com/locations/global/workforcePools/my-po + // ol-id/subject/my-subject-attribute-value`. + Members []string `json:"members,omitempty"` + // Role: Role that is assigned to the list of `members`, or principals. + // For example, `roles/viewer`, `roles/editor`, or `roles/owner`. + // + // For an overview of the IAM roles and permissions, see the + // IAM documentation (https://cloud.google.com/iam/docs/roles-overview). For + // a list of the available pre-defined roles, see + // here (https://cloud.google.com/iam/docs/understanding-roles). + Role string `json:"role,omitempty"` + // ForceSendFields is a list of field names (e.g. "Condition") to // unconditionally include in API requests. By default, fields with empty or // default values are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. ForceSendFields []string `json:"-"` - // NullFields is a list of field names (e.g. "DrainingTimeoutSec") to include - // in API requests with the JSON null value. By default, fields with empty - // values are omitted from API requests. See + // NullFields is a list of field names (e.g. "Condition") to include in API + // requests with the JSON null value. By default, fields with empty values are + // omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } -func (s *ConnectionDraining) MarshalJSON() ([]byte, error) { - type NoMethod ConnectionDraining - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s Binding) MarshalJSON() ([]byte, error) { + type NoMethod Binding + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -// ConsistentHashLoadBalancerSettings: This message defines settings for a -// consistent hash style load balancer. -type ConsistentHashLoadBalancerSettings struct { - // HttpCookie: Hash is based on HTTP Cookie. This field describes a HTTP cookie - // that will be used as the hash key for the consistent hash load balancer. If - // the cookie is not present, it will be generated. This field is applicable if - // the sessionAffinity is set to HTTP_COOKIE. Not supported when the backend - // service is referenced by a URL map that is bound to target gRPC proxy that - // has validateForProxyless field set to true. - HttpCookie *ConsistentHashLoadBalancerSettingsHttpCookie `json:"httpCookie,omitempty"` - // HttpHeaderName: The hash based on the value of the specified header field. - // This field is applicable if the sessionAffinity is set to HEADER_FIELD. - HttpHeaderName string `json:"httpHeaderName,omitempty"` - // MinimumRingSize: The minimum number of virtual nodes to use for the hash - // ring. Defaults to 1024. Larger ring sizes result in more granular load - // distributions. If the number of hosts in the load balancing pool is larger - // than the ring size, each host will be assigned a single virtual node. - MinimumRingSize int64 `json:"minimumRingSize,omitempty,string"` - // ForceSendFields is a list of field names (e.g. "HttpCookie") to - // unconditionally include in API requests. By default, fields with empty or - // default values are omitted from API requests. See +// BulkInsertDiskResource: A transient resource used in +// compute.disks.bulkInsert and +// compute.regionDisks.bulkInsert. It is only used to process +// requests and is not persisted. +type BulkInsertDiskResource struct { + // InstantSnapshotGroupParameters: The parameters for the instant snapshot + // group. + InstantSnapshotGroupParameters *InstantSnapshotGroupParameters `json:"instantSnapshotGroupParameters,omitempty"` + // SnapshotGroupParameters: The parameters for the snapshot group. The usage of + // snapshot group feature + // is restricted. + SnapshotGroupParameters *SnapshotGroupParameters `json:"snapshotGroupParameters,omitempty"` + // SourceConsistencyGroupPolicy: The URL of the DiskConsistencyGroupPolicy for + // the group of disks to clone. + // This may be a full or partial URL, such as: + // + // + // - + // + // https://www.googleapis.com/compute/v1/projects/project/regions/region/resourcePolicies/resourcePolicy + // + // - + // projects/project/regions/region/resourcePolicies/resourcePolicy + // + // - + // regions/region/resourcePolicies/resourcePolicy + SourceConsistencyGroupPolicy string `json:"sourceConsistencyGroupPolicy,omitempty"` + // ForceSendFields is a list of field names (e.g. + // "InstantSnapshotGroupParameters") to unconditionally include in API + // requests. By default, fields with empty or default values are omitted from + // API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. ForceSendFields []string `json:"-"` - // NullFields is a list of field names (e.g. "HttpCookie") to include in API + // NullFields is a list of field names (e.g. "InstantSnapshotGroupParameters") + // to include in API requests with the JSON null value. By default, fields with + // empty values are omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s BulkInsertDiskResource) MarshalJSON() ([]byte, error) { + type NoMethod BulkInsertDiskResource + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +// BulkInsertInstanceResource: A transient resource used in +// compute.instances.bulkInsert and +// compute.regionInstances.bulkInsert . This resource is not +// persisted +// anywhere, it is used only for processing the requests. +type BulkInsertInstanceResource struct { + // Count: The maximum number of instances to create. + Count int64 `json:"count,omitempty,string"` + // InstanceFlexibilityPolicy: A flexible specification of machine type of + // instances to create. + InstanceFlexibilityPolicy *InstanceFlexibilityPolicy `json:"instanceFlexibilityPolicy,omitempty"` + // InstanceProperties: The instance properties defining the VM instances to be + // created. Required + // if sourceInstanceTemplate is not provided. + InstanceProperties *InstanceProperties `json:"instanceProperties,omitempty"` + // LocationPolicy: Policy for choosing target zone. For more information, + // seeCreate VMs in + // bulk. + LocationPolicy *LocationPolicy `json:"locationPolicy,omitempty"` + // MinCount: The minimum number of instances to create. If no min_count + // is + // specified then count is used as the default value. Ifmin_count instances + // cannot be created, then no instances will + // be created and instances already created will be deleted. + MinCount int64 `json:"minCount,omitempty,string"` + // NamePattern: The string pattern used for the names of the VMs. + // Either name_pattern or per_instance_properties + // must be set. The pattern must contain one continuous sequence of + // placeholder hash characters (#) with each character corresponding to + // one + // digit of the generated instance name. Example: a name_pattern + // of inst-#### generates instance names such asinst-0001 and inst-0002. If + // existing instances + // in the same project and zone have names that match the name pattern + // then the generated instance numbers start after the biggest + // existing number. For example, if there exists an instance with + // nameinst-0050, then instance names generated using the patterninst-#### + // begin with inst-0051. The name pattern + // placeholder #...# can contain up to 18 characters. + NamePattern string `json:"namePattern,omitempty"` + // PerInstanceProperties: Per-instance properties to be set on individual + // instances. + // Keys of this map specify requested instance names. + // Can be empty if name_pattern is used. + PerInstanceProperties map[string]BulkInsertInstanceResourcePerInstanceProperties `json:"perInstanceProperties,omitempty"` + // SourceInstanceTemplate: Specifies the instance template from which to create + // instances. You may + // combine sourceInstanceTemplate withinstanceProperties to override specific + // values from an + // existing instance template. Bulk API follows the semantics of JSON + // Merge + // Patch described by RFC + // 7396. + // + // It can be a full or partial URL. For example, the following are + // all valid URLs to an instance template: + // + // + // - + // https://www.googleapis.com/compute/v1/projects/project/global/instanceTemplates/instanceTemplate + // - projects/project/global/instanceTemplates/instanceTemplate + // - global/instanceTemplates/instanceTemplate + // + // + // + // This field is optional. + SourceInstanceTemplate string `json:"sourceInstanceTemplate,omitempty"` + // ForceSendFields is a list of field names (e.g. "Count") to unconditionally + // include in API requests. By default, fields with empty or default values are + // omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + ForceSendFields []string `json:"-"` + // NullFields is a list of field names (e.g. "Count") to include in API // requests with the JSON null value. By default, fields with empty values are // omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } -func (s *ConsistentHashLoadBalancerSettings) MarshalJSON() ([]byte, error) { - type NoMethod ConsistentHashLoadBalancerSettings - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s BulkInsertInstanceResource) MarshalJSON() ([]byte, error) { + type NoMethod BulkInsertInstanceResource + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -// ConsistentHashLoadBalancerSettingsHttpCookie: The information about the HTTP -// Cookie on which the hash function is based for load balancing policies that -// use a consistent hash. -type ConsistentHashLoadBalancerSettingsHttpCookie struct { - // Name: Name of the cookie. +// BulkInsertInstanceResourcePerInstanceProperties: Per-instance properties to +// be set on individual instances. +// To be extended in the future. +type BulkInsertInstanceResourcePerInstanceProperties struct { + // Hostname: Specifies the hostname of the instance. More details + // in: + // https://cloud.google.com/compute/docs/instances/custom-hostname-vm#naming_convention + Hostname string `json:"hostname,omitempty"` + // Name: Output only. This field is only temporary. It will be removed. Do not + // use it. Name string `json:"name,omitempty"` - // Path: Path to set for the cookie. - Path string `json:"path,omitempty"` - // Ttl: Lifetime of the cookie. - Ttl *Duration `json:"ttl,omitempty"` - // ForceSendFields is a list of field names (e.g. "Name") to unconditionally - // include in API requests. By default, fields with empty or default values are + // ForceSendFields is a list of field names (e.g. "Hostname") to + // unconditionally include in API requests. By default, fields with empty or + // default values are omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + ForceSendFields []string `json:"-"` + // NullFields is a list of field names (e.g. "Hostname") to include in API + // requests with the JSON null value. By default, fields with empty values are // omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s BulkInsertInstanceResourcePerInstanceProperties) MarshalJSON() ([]byte, error) { + type NoMethod BulkInsertInstanceResourcePerInstanceProperties + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +type BulkInsertOperationStatus struct { + // CreatedVmCount: [Output Only] Count of VMs successfully created so far. + CreatedVmCount int64 `json:"createdVmCount,omitempty"` + // DeletedVmCount: [Output Only] Count of VMs that got deleted during rollback. + DeletedVmCount int64 `json:"deletedVmCount,omitempty"` + // FailedToCreateVmCount: [Output Only] Count of VMs that started creating but + // encountered an + // error. + FailedToCreateVmCount int64 `json:"failedToCreateVmCount,omitempty"` + // Status: [Output Only] Creation status of BulkInsert operation - + // information + // if the flow is rolling forward or rolling back. + // + // Possible values: + // "CREATING" - Rolling forward - creating VMs. + // "DONE" - Done + // "ROLLING_BACK" - Rolling back - cleaning up after an error. + // "STATUS_UNSPECIFIED" + Status string `json:"status,omitempty"` + // TargetVmCount: [Output Only] Count of VMs originally planned to be created. + TargetVmCount int64 `json:"targetVmCount,omitempty"` + // ForceSendFields is a list of field names (e.g. "CreatedVmCount") to + // unconditionally include in API requests. By default, fields with empty or + // default values are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. ForceSendFields []string `json:"-"` - // NullFields is a list of field names (e.g. "Name") to include in API requests - // with the JSON null value. By default, fields with empty values are omitted - // from API requests. See + // NullFields is a list of field names (e.g. "CreatedVmCount") to include in + // API requests with the JSON null value. By default, fields with empty values + // are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } -func (s *ConsistentHashLoadBalancerSettingsHttpCookie) MarshalJSON() ([]byte, error) { - type NoMethod ConsistentHashLoadBalancerSettingsHttpCookie - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s BulkInsertOperationStatus) MarshalJSON() ([]byte, error) { + type NoMethod BulkInsertOperationStatus + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -// CorsPolicy: The specification for allowing client-side cross-origin -// requests. For more information about the W3C recommendation for cross-origin -// resource sharing (CORS), see Fetch API Living Standard. -type CorsPolicy struct { - // AllowCredentials: In response to a preflight request, setting this to true - // indicates that the actual request can include user credentials. This field - // translates to the Access-Control-Allow-Credentials header. Default is false. - AllowCredentials bool `json:"allowCredentials,omitempty"` - // AllowHeaders: Specifies the content for the Access-Control-Allow-Headers - // header. - AllowHeaders []string `json:"allowHeaders,omitempty"` - // AllowMethods: Specifies the content for the Access-Control-Allow-Methods - // header. - AllowMethods []string `json:"allowMethods,omitempty"` - // AllowOriginRegexes: Specifies a regular expression that matches allowed - // origins. For more information, see regular expression syntax . An origin is - // allowed if it matches either an item in allowOrigins or an item in - // allowOriginRegexes. Regular expressions can only be used when the - // loadBalancingScheme is set to INTERNAL_SELF_MANAGED. - AllowOriginRegexes []string `json:"allowOriginRegexes,omitempty"` - // AllowOrigins: Specifies the list of origins that is allowed to do CORS - // requests. An origin is allowed if it matches either an item in allowOrigins - // or an item in allowOriginRegexes. - AllowOrigins []string `json:"allowOrigins,omitempty"` - // Disabled: If true, disables the CORS policy. The default value is false, - // which indicates that the CORS policy is in effect. - Disabled bool `json:"disabled,omitempty"` - // ExposeHeaders: Specifies the content for the Access-Control-Expose-Headers - // header. - ExposeHeaders []string `json:"exposeHeaders,omitempty"` - // MaxAge: Specifies how long results of a preflight request can be cached in - // seconds. This field translates to the Access-Control-Max-Age header. - MaxAge int64 `json:"maxAge,omitempty"` - // ForceSendFields is a list of field names (e.g. "AllowCredentials") to +type BulkSetLabelsRequest struct { + // LabelFingerprint: The fingerprint of the previous set of labels for this + // resource, + // used to detect conflicts. The fingerprint is initially generated by + // Compute + // Engine and changes after every request to modify or update labels. You + // may + // optionally provide an up-to-date fingerprint hash in order to update + // or + // change labels. Make a get() request to the resource to get the + // latest fingerprint. + LabelFingerprint string `json:"labelFingerprint,omitempty"` + // Labels: The labels to set for this resource. + Labels map[string]string `json:"labels,omitempty"` + // ForceSendFields is a list of field names (e.g. "LabelFingerprint") to // unconditionally include in API requests. By default, fields with empty or // default values are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. ForceSendFields []string `json:"-"` - // NullFields is a list of field names (e.g. "AllowCredentials") to include in + // NullFields is a list of field names (e.g. "LabelFingerprint") to include in // API requests with the JSON null value. By default, fields with empty values // are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } -func (s *CorsPolicy) MarshalJSON() ([]byte, error) { - type NoMethod CorsPolicy - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s BulkSetLabelsRequest) MarshalJSON() ([]byte, error) { + type NoMethod BulkSetLabelsRequest + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -type CustomerEncryptionKey struct { - // KmsKeyName: The name of the encryption key that is stored in Google Cloud - // KMS. For example: "kmsKeyName": - // "projects/kms_project_id/locations/region/keyRings/ - // key_region/cryptoKeys/key The fully-qualifed key name may be returned for - // resource GET requests. For example: "kmsKeyName": - // "projects/kms_project_id/locations/region/keyRings/ - // key_region/cryptoKeys/key /cryptoKeyVersions/1 - KmsKeyName string `json:"kmsKeyName,omitempty"` - // KmsKeyServiceAccount: The service account being used for the encryption - // request for the given KMS key. If absent, the Compute Engine default service - // account is used. For example: "kmsKeyServiceAccount": - // "name@project_id.iam.gserviceaccount.com/ - KmsKeyServiceAccount string `json:"kmsKeyServiceAccount,omitempty"` - // RawKey: Specifies a 256-bit customer-supplied encryption key, encoded in RFC - // 4648 base64 to either encrypt or decrypt this resource. You can provide - // either the rawKey or the rsaEncryptedKey. For example: "rawKey": - // "SGVsbG8gZnJvbSBHb29nbGUgQ2xvdWQgUGxhdGZvcm0=" - RawKey string `json:"rawKey,omitempty"` - // RsaEncryptedKey: Specifies an RFC 4648 base64 encoded, RSA-wrapped 2048-bit - // customer-supplied encryption key to either encrypt or decrypt this resource. - // You can provide either the rawKey or the rsaEncryptedKey. For example: - // "rsaEncryptedKey": - // "ieCx/NcW06PcT7Ep1X6LUTc/hLvUDYyzSZPPVCVPTVEohpeHASqC8uw5TzyO9U+Fka9JFH - // z0mBibXUInrC/jEk014kCK/NPjYgEMOyssZ4ZINPKxlUh2zn1bV+MCaTICrdmuSBTWlUUiFoD - // D6PYznLwh8ZNdaheCeZ8ewEXgFQ8V+sDroLaN3Xs3MDTXQEMMoNUXMCZEIpg9Vtp9x2oe==" The - // key must meet the following requirements before you can provide it to - // Compute Engine: 1. The key is wrapped using a RSA public key certificate - // provided by Google. 2. After being wrapped, the key must be encoded in RFC - // 4648 base64 encoding. Gets the RSA public key certificate provided by Google - // at: https://cloud-certs.storage.googleapis.com/google-cloud-csek-ingress.pem - RsaEncryptedKey string `json:"rsaEncryptedKey,omitempty"` - // Sha256: [Output only] The RFC 4648 base64 encoded SHA-256 hash of the - // customer-supplied encryption key that protects this resource. - Sha256 string `json:"sha256,omitempty"` - // ForceSendFields is a list of field names (e.g. "KmsKeyName") to +type BulkZoneSetLabelsRequest struct { + Requests []*BulkSetLabelsRequest `json:"requests,omitempty"` + // ForceSendFields is a list of field names (e.g. "Requests") to // unconditionally include in API requests. By default, fields with empty or // default values are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. ForceSendFields []string `json:"-"` - // NullFields is a list of field names (e.g. "KmsKeyName") to include in API + // NullFields is a list of field names (e.g. "Requests") to include in API // requests with the JSON null value. By default, fields with empty values are // omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } -func (s *CustomerEncryptionKey) MarshalJSON() ([]byte, error) { - type NoMethod CustomerEncryptionKey - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s BulkZoneSetLabelsRequest) MarshalJSON() ([]byte, error) { + type NoMethod BulkZoneSetLabelsRequest + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -type CustomerEncryptionKeyProtectedDisk struct { - // DiskEncryptionKey: Decrypts data associated with the disk with a - // customer-supplied encryption key. - DiskEncryptionKey *CustomerEncryptionKey `json:"diskEncryptionKey,omitempty"` - // Source: Specifies a valid partial or full URL to an existing Persistent Disk - // resource. This field is only applicable for persistent disks. For example: - // "source": "/compute/v1/projects/project_id/zones/zone/disks/ disk_name - Source string `json:"source,omitempty"` - // ForceSendFields is a list of field names (e.g. "DiskEncryptionKey") to +type BundledLocalSsds struct { + // DefaultInterface: The default disk interface if the interface is not + // specified. + DefaultInterface string `json:"defaultInterface,omitempty"` + // PartitionCount: The number of partitions. + PartitionCount int64 `json:"partitionCount,omitempty"` + // ForceSendFields is a list of field names (e.g. "DefaultInterface") to // unconditionally include in API requests. By default, fields with empty or // default values are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. ForceSendFields []string `json:"-"` - // NullFields is a list of field names (e.g. "DiskEncryptionKey") to include in + // NullFields is a list of field names (e.g. "DefaultInterface") to include in // API requests with the JSON null value. By default, fields with empty values // are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } -func (s *CustomerEncryptionKeyProtectedDisk) MarshalJSON() ([]byte, error) { - type NoMethod CustomerEncryptionKeyProtectedDisk - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s BundledLocalSsds) MarshalJSON() ([]byte, error) { + type NoMethod BundledLocalSsds + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -// DeprecationStatus: Deprecation status for a public resource. -type DeprecationStatus struct { - // Deleted: An optional RFC3339 timestamp on or after which the state of this - // resource is intended to change to DELETED. This is only informational and - // the status will not change unless the client explicitly changes it. - Deleted string `json:"deleted,omitempty"` - // Deprecated -- An optional RFC3339 timestamp on or after which the state of - // this resource is intended to change to DEPRECATED. This is only - // informational and the status will not change unless the client explicitly - // changes it. - Deprecated string `json:"deprecated,omitempty"` - // Obsolete: An optional RFC3339 timestamp on or after which the state of this - // resource is intended to change to OBSOLETE. This is only informational and - // the status will not change unless the client explicitly changes it. - Obsolete string `json:"obsolete,omitempty"` - // Replacement: The URL of the suggested replacement for a deprecated resource. - // The suggested replacement resource must be the same kind of resource as the - // deprecated resource. - Replacement string `json:"replacement,omitempty"` - // State: The deprecation state of this resource. This can be ACTIVE, - // DEPRECATED, OBSOLETE, or DELETED. Operations which communicate the end of - // life date for an image, can use ACTIVE. Operations which create a new - // resource using a DEPRECATED resource will return successfully, but with a - // warning indicating the deprecated resource and recommending its replacement. - // Operations which use OBSOLETE or DELETED resources will be rejected and - // result in an error. +type CacheInvalidationRule struct { + // CacheTags: A list of cache tags used to identify cached objects. // - // Possible values: - // "ACTIVE" - // "DELETED" - // "DEPRECATED" - // "OBSOLETE" - State string `json:"state,omitempty"` - // ForceSendFields is a list of field names (e.g. "Deleted") to unconditionally - // include in API requests. By default, fields with empty or default values are + // + // - Cache tags are specified when the response is first cached, by setting + // the `Cache-Tag` response header at the origin. + // - Multiple cache tags in the same invalidation request are treated as + // Boolean `OR` - for example, `tag1 OR tag2 OR tag3`. + // - If other fields are also specified, these are treated as Boolean `AND` + // with any tags. + // + // + // Up to 10 tags can be specified in a single invalidation request. + CacheTags []string `json:"cacheTags,omitempty"` + // Host: If set, this invalidation rule will only apply to requests with a + // Host + // header matching host. + Host string `json:"host,omitempty"` + Path string `json:"path,omitempty"` + // ForceSendFields is a list of field names (e.g. "CacheTags") to + // unconditionally include in API requests. By default, fields with empty or + // default values are omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + ForceSendFields []string `json:"-"` + // NullFields is a list of field names (e.g. "CacheTags") to include in API + // requests with the JSON null value. By default, fields with empty values are // omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s CacheInvalidationRule) MarshalJSON() ([]byte, error) { + type NoMethod CacheInvalidationRule + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +// CacheKeyPolicy: Message containing what to include in the cache key for a +// request for Cloud +// CDN. +type CacheKeyPolicy struct { + // IncludeHost: If true, requests to different hosts will be cached separately. + IncludeHost bool `json:"includeHost,omitempty"` + // IncludeHttpHeaders: Allows HTTP request headers (by name) to be used in the + // cache key. + IncludeHttpHeaders []string `json:"includeHttpHeaders,omitempty"` + // IncludeNamedCookies: Allows HTTP cookies (by name) to be used in the cache + // key. + // The name=value pair will be used in the cache key Cloud CDN generates. + IncludeNamedCookies []string `json:"includeNamedCookies,omitempty"` + // IncludeProtocol: If true, http and https requests will be cached separately. + IncludeProtocol bool `json:"includeProtocol,omitempty"` + // IncludeQueryString: If true, include query string parameters in the cache + // key according to + // query_string_whitelist and query_string_blacklist. If neither is set, + // the + // entire query string will be included. If false, the query string will + // be + // excluded from the cache key entirely. + IncludeQueryString bool `json:"includeQueryString,omitempty"` + // QueryStringBlacklist: Names of query string parameters to exclude in cache + // keys. All other + // parameters will be included. Either specify query_string_whitelist + // or + // query_string_blacklist, not both. '&' and '=' will be percent encoded + // and + // not treated as delimiters. + QueryStringBlacklist []string `json:"queryStringBlacklist,omitempty"` + // QueryStringWhitelist: Names of query string parameters to include in cache + // keys. All other + // parameters will be excluded. Either specify query_string_whitelist + // or + // query_string_blacklist, not both. '&' and '=' will be percent encoded + // and + // not treated as delimiters. + QueryStringWhitelist []string `json:"queryStringWhitelist,omitempty"` + // ForceSendFields is a list of field names (e.g. "IncludeHost") to + // unconditionally include in API requests. By default, fields with empty or + // default values are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. ForceSendFields []string `json:"-"` - // NullFields is a list of field names (e.g. "Deleted") to include in API + // NullFields is a list of field names (e.g. "IncludeHost") to include in API // requests with the JSON null value. By default, fields with empty values are // omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } -func (s *DeprecationStatus) MarshalJSON() ([]byte, error) { - type NoMethod DeprecationStatus - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) -} - -// Disk: Represents a Persistent Disk resource. Google Compute Engine has two -// Disk resources: * Zonal (/compute/docs/reference/rest/v1/disks) * Regional -// (/compute/docs/reference/rest/v1/regionDisks) Persistent disks are required -// for running your VM instances. Create both boot and non-boot (data) -// persistent disks. For more information, read Persistent Disks. For more -// storage options, read Storage options. The disks resource represents a zonal -// persistent disk. For more information, read Zonal persistent disks. The -// regionDisks resource represents a regional persistent disk. For more -// information, read Regional resources. -type Disk struct { - // Architecture: The architecture of the disk. Valid values are ARM64 or - // X86_64. +func (s CacheKeyPolicy) MarshalJSON() ([]byte, error) { + type NoMethod CacheKeyPolicy + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +// CachePolicy: Message containing CachePolicy configuration for URL Map's +// Route Action. +type CachePolicy struct { + // CacheBypassRequestHeaderNames: Bypass the cache when the specified request + // headers are matched by name, + // e.g. Pragma or Authorization headers. Values are case-insensitive. Up to + // 5 + // header names can be specified. The cache is bypassed for all + // `cacheMode` + // values. + CacheBypassRequestHeaderNames []string `json:"cacheBypassRequestHeaderNames,omitempty"` + // CacheKeyPolicy: The cache key configuration. If not specified, the default + // behavior depends + // on the backend type: for Backend Services, the complete request URI is + // used; for Backend Buckets, the request URI is used without the protocol + // or + // host, and only query parameters known to Cloud Storage are included. + CacheKeyPolicy *CachePolicyCacheKeyPolicy `json:"cacheKeyPolicy,omitempty"` + // CacheMode: Specifies the cache setting for all responses from this route. If + // not + // specified, Cloud CDN uses `CACHE_ALL_STATIC` mode. // // Possible values: - // "ARCHITECTURE_UNSPECIFIED" - Default value indicating Architecture is not - // set. - // "ARM64" - Machines with architecture ARM64 - // "X86_64" - Machines with architecture X86_64 - Architecture string `json:"architecture,omitempty"` - // AsyncPrimaryDisk: Disk asynchronously replicated into this disk. - AsyncPrimaryDisk *DiskAsyncReplication `json:"asyncPrimaryDisk,omitempty"` - // AsyncSecondaryDisks: [Output Only] A list of disks this disk is - // asynchronously replicated to. - AsyncSecondaryDisks map[string]DiskAsyncReplicationList `json:"asyncSecondaryDisks,omitempty"` - // CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text format. - CreationTimestamp string `json:"creationTimestamp,omitempty"` - // Description: An optional description of this resource. Provide this property - // when you create the resource. - Description string `json:"description,omitempty"` - // DiskEncryptionKey: Encrypts the disk using a customer-supplied encryption - // key or a customer-managed encryption key. Encryption keys do not protect - // access to metadata of the disk. After you encrypt a disk with a - // customer-supplied key, you must provide the same key if you use the disk - // later. For example, to create a disk snapshot, to create a disk image, to - // create a machine image, or to attach the disk to a virtual machine. After - // you encrypt a disk with a customer-managed key, the - // diskEncryptionKey.kmsKeyName is set to a key *version* name once the disk is - // created. The disk is encrypted with this version of the key. In the - // response, diskEncryptionKey.kmsKeyName appears in the following format: - // "diskEncryptionKey.kmsKeyName": - // "projects/kms_project_id/locations/region/keyRings/ - // key_region/cryptoKeys/key /cryptoKeysVersions/version If you do not provide - // an encryption key when creating the disk, then the disk is encrypted using - // an automatically generated key and you don't need to provide a key to use - // the disk later. - DiskEncryptionKey *CustomerEncryptionKey `json:"diskEncryptionKey,omitempty"` - // EnableConfidentialCompute: Whether this disk is using confidential compute + // "CACHE_ALL_STATIC" - Automatically cache static content, including common + // image formats, + // media (video and audio), and web assets (JavaScript and CSS). + // Requests and responses that are marked as uncacheable, as well as + // dynamic content (including HTML), will not be cached. + // "FORCE_CACHE_ALL" - Cache all content, ignoring any "private", "no-store" + // or "no-cache" + // directives in Cache-Control response headers. + // Warning: this may result in Cloud CDN caching private, + // per-user (user identifiable) content. + // "USE_ORIGIN_HEADERS" - Requires the origin to set valid caching headers to + // cache content. + // Responses without these headers will not be cached at the edge, and + // will + // require a full trip to the origin on every request, potentially + // impacting + // performance and increasing load on the origin server. + CacheMode string `json:"cacheMode,omitempty"` + // ClientTtl: Specifies a separate client (e.g. browser client) maximum TTL for + // cached + // content. This is used to clamp the max-age (or Expires) value sent to + // the + // client. With `FORCE_CACHE_ALL`, the lesser of `clientTtl` and + // `defaultTtl` + // is used for the response max-age directive, along with a "public" + // directive. For cacheable content in `CACHE_ALL_STATIC` mode, + // `clientTtl` + // clamps the max-age from the origin (if specified), or else sets the + // response max-age directive to the lesser of the `clientTtl` + // and + // `defaultTtl`, and also ensures a "public" cache-control directive + // is + // present. The maximum allowed value is 31,622,400s (1 year). If + // not + // specified, Cloud CDN uses 3600s (1 hour) for `CACHE_ALL_STATIC` mode. + // Cannot exceed `maxTtl`. Cannot be specified when `cacheMode` + // is + // `USE_ORIGIN_HEADERS`. + ClientTtl *Duration `json:"clientTtl,omitempty"` + // DefaultTtl: Specifies the default TTL for cached content for responses that + // do not have + // an existing valid TTL (max-age or s-maxage). Setting a TTL of "0" + // means + // "always revalidate". The value of `defaultTtl` cannot be set to a + // value + // greater than that of `maxTtl`. When the `cacheMode` is set + // to + // `FORCE_CACHE_ALL`, the `defaultTtl` will overwrite the TTL set in + // all + // responses. The maximum allowed value is 31,622,400s (1 year). + // Infrequently + // accessed objects may be evicted from the cache before the defined TTL. + // If + // not specified, Cloud CDN uses 3600s (1 hour) for `CACHE_ALL_STATIC` + // and + // `FORCE_CACHE_ALL` modes. Cannot be specified when `cacheMode` + // is + // `USE_ORIGIN_HEADERS`. + DefaultTtl *Duration `json:"defaultTtl,omitempty"` + // MaxTtl: Specifies the maximum allowed TTL for cached content. Cache + // directives that + // attempt to set a max-age or s-maxage higher than this, or an Expires + // header + // more than `maxTtl` seconds in the future will be capped at the value + // of + // `maxTtl`, as if it were the value of an s-maxage Cache-Control + // directive. + // Headers sent to the client will not be modified. Setting a TTL of "0" + // means + // "always revalidate". The maximum allowed value is 31,622,400s (1 + // year). + // Infrequently accessed objects may be evicted from the cache before + // the + // defined TTL. If not specified, Cloud CDN uses 86400s (1 day) + // for + // `CACHE_ALL_STATIC` mode. Can be specified only for `CACHE_ALL_STATIC` + // cache // mode. - EnableConfidentialCompute bool `json:"enableConfidentialCompute,omitempty"` - // GuestOsFeatures: A list of features to enable on the guest operating system. - // Applicable only for bootable images. Read Enabling guest operating system - // features to see a list of available options. - GuestOsFeatures []*GuestOsFeature `json:"guestOsFeatures,omitempty"` - // Id: [Output Only] The unique identifier for the resource. This identifier is + MaxTtl *Duration `json:"maxTtl,omitempty"` + // NegativeCaching: Negative caching allows per-status code TTLs to be set, in + // order + // to apply fine-grained caching for common errors or redirects. + // This can reduce the load on your origin and improve end-user + // experience by reducing response latency. + // When the `cacheMode` is set to `CACHE_ALL_STATIC` or + // `USE_ORIGIN_HEADERS`, negative caching applies to responses with + // the specified response code that lack any Cache-Control, Expires, or + // Pragma: no-cache directives. When the `cacheMode` is set + // to + // `FORCE_CACHE_ALL`, negative caching applies to all responses + // with the specified response code, and overrides any caching headers. + // By + // default, Cloud CDN applies the following TTLs to these HTTP status codes: + // + // * 300 (Multiple Choice), 301, 308 (Permanent Redirects): 10m + // * 404 (Not Found), 410 (Gone), 451 (Unavailable For Legal Reasons): 120s + // * 405 (Method Not Found), 501 (Not Implemented): 60s + // + // These defaults can be overridden in `negativeCachingPolicy`. + // If not specified, Cloud CDN applies negative caching by default. + NegativeCaching bool `json:"negativeCaching,omitempty"` + // NegativeCachingPolicy: Sets a cache TTL for the specified HTTP status + // code. + // `negativeCaching` must be enabled to configure + // `negativeCachingPolicy`. + // Omitting the policy and leaving `negativeCaching` enabled will use + // Cloud + // CDN's default cache TTLs. Note that when specifying an + // explicit + // `negativeCachingPolicy`, you should take care to specify a cache TTL for + // all response codes that you wish to cache. Cloud CDN will not apply + // any + // default negative caching when a policy exists. + NegativeCachingPolicy []*CachePolicyNegativeCachingPolicy `json:"negativeCachingPolicy,omitempty"` + // RequestCoalescing: If true then Cloud CDN will combine multiple concurrent + // cache fill + // requests into a small number of requests to the origin. If not + // specified, + // Cloud CDN applies request coalescing by default. + RequestCoalescing bool `json:"requestCoalescing,omitempty"` + // ServeWhileStale: Serve existing content from the cache (if available) when + // revalidating + // content with the origin, or when an error is encountered when refreshing + // the cache. + // This setting defines the default "max-stale" duration for any + // cached + // responses that do not specify a max-stale directive. Stale responses + // that + // exceed the TTL configured here will not be served. The default + // limit + // (max-stale) is 86400s (1 day), which will allow stale content to be + // served up to this limit beyond the max-age (or s-maxage) of a + // cached + // response. + // The maximum allowed value is 604800 (1 week). + // Set this to zero (0) to disable serve-while-stale. + ServeWhileStale *Duration `json:"serveWhileStale,omitempty"` + // ForceSendFields is a list of field names (e.g. + // "CacheBypassRequestHeaderNames") to unconditionally include in API requests. + // By default, fields with empty or default values are omitted from API + // requests. See https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields + // for more details. + ForceSendFields []string `json:"-"` + // NullFields is a list of field names (e.g. "CacheBypassRequestHeaderNames") + // to include in API requests with the JSON null value. By default, fields with + // empty values are omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s CachePolicy) MarshalJSON() ([]byte, error) { + type NoMethod CachePolicy + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +// CachePolicyCacheKeyPolicy: Message containing what to include in the cache +// key for a request for Cache +// Policy defined on Route Action. +type CachePolicyCacheKeyPolicy struct { + // ExcludedQueryParameters: Names of query string parameters to exclude in + // cache keys. All other + // parameters will be included. Either specify `excludedQueryParameters` + // or `includedQueryParameters`, not both. '&' and '=' will be percent + // encoded and not treated as delimiters. + // + // Note: This field applies to routes that use backend services. Attempting + // to set it on a route that points exclusively to Backend Buckets will + // result in a configuration error. For routes that point to a Backend + // Bucket, use `includedQueryParameters` to define which parameters should + // be part of the cache key. + ExcludedQueryParameters []string `json:"excludedQueryParameters,omitempty"` + // IncludeHost: If true, requests to different hosts will be cached + // separately. + // + // Note: This setting is only applicable to routes that use a Backend + // Service. It does not affect requests served by a Backend Bucket, as the + // host is never included in a Backend Bucket's cache key. Attempting to set + // it on a route that points exclusively to Backend Buckets will result in + // a + // configuration error. + IncludeHost bool `json:"includeHost,omitempty"` + // IncludeProtocol: If true, http and https requests will be cached + // separately. + // + // Note: This setting is only applicable to routes that use a Backend + // Service. It does not affect requests served by a Backend Bucket, as + // the + // protocol is never included in a Backend Bucket's cache key. Attempting + // to + // set on a route that points exclusively to Backend Buckets will result in + // a configuration error. + IncludeProtocol bool `json:"includeProtocol,omitempty"` + // IncludeQueryString: If true, include query string parameters in the cache + // key according to + // `includedQueryParameters` and `excludedQueryParameters`. If neither + // is set, the entire query string will be included. If false, the query + // string will be excluded from the cache key entirely. + // + // Note: This field applies to routes that use backend services. Attempting + // to set it on a route that points exclusively to Backend Buckets will + // result in a configuration error. For routes that point to a Backend + // Bucket, use `includedQueryParameters` to define which parameters should + // be part of the cache key. + IncludeQueryString bool `json:"includeQueryString,omitempty"` + // IncludedCookieNames: Allows HTTP cookies (by name) to be used in the cache + // key. + // The name=value pair will be used in the cache key Cloud CDN + // generates. + // + // Note: This setting is only applicable to routes that use a Backend + // Service. It does not affect requests served by a Backend Bucket. + // Attempting to set it on a route that points exclusively to Backend + // Buckets will result in a configuration error. Up to 5 cookie names can + // be + // specified. + IncludedCookieNames []string `json:"includedCookieNames,omitempty"` + // IncludedHeaderNames: Allows HTTP request headers (by name) to be used in the + // cache key. + IncludedHeaderNames []string `json:"includedHeaderNames,omitempty"` + // IncludedQueryParameters: Names of query string parameters to include in + // cache keys. All other + // parameters will be excluded. Either specify `includedQueryParameters` + // or `excludedQueryParameters`, not both. '&' and '=' will be percent + // encoded and not treated as delimiters. + IncludedQueryParameters []string `json:"includedQueryParameters,omitempty"` + // ForceSendFields is a list of field names (e.g. "ExcludedQueryParameters") to + // unconditionally include in API requests. By default, fields with empty or + // default values are omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + ForceSendFields []string `json:"-"` + // NullFields is a list of field names (e.g. "ExcludedQueryParameters") to + // include in API requests with the JSON null value. By default, fields with + // empty values are omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s CachePolicyCacheKeyPolicy) MarshalJSON() ([]byte, error) { + type NoMethod CachePolicyCacheKeyPolicy + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +// CachePolicyNegativeCachingPolicy: Specify CDN TTLs for response error codes. +type CachePolicyNegativeCachingPolicy struct { + // Code: The HTTP status code to define a TTL against. Only HTTP status + // codes + // 300, 301, 302, 307, 308, 404, 405, 410, 421, 451 and 501 can be + // specified as values, and you cannot specify a status code more than + // once. + Code int64 `json:"code,omitempty"` + // Ttl: The TTL (in seconds) for which to cache responses with + // the + // corresponding status code. + // The maximum allowed value is 1800s (30 minutes). Infrequently + // accessed + // objects may be evicted from the cache before the defined TTL. + Ttl *Duration `json:"ttl,omitempty"` + // ForceSendFields is a list of field names (e.g. "Code") to unconditionally + // include in API requests. By default, fields with empty or default values are + // omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + 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. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s CachePolicyNegativeCachingPolicy) MarshalJSON() ([]byte, error) { + type NoMethod CachePolicyNegativeCachingPolicy + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +// CalendarModeAdviceRequest: A request to recommend the best way to consume +// the specified resources in the +// future. +type CalendarModeAdviceRequest struct { + // FutureResourcesSpecs: Specification of resources to create in the + // future. + // The key of the map is an arbitrary string specified by the caller. + // Value of the map is a specification of required resources and + // their + // constraints. Currently only one value is allowed in this map. + FutureResourcesSpecs map[string]FutureResourcesSpec `json:"futureResourcesSpecs,omitempty"` + // ForceSendFields is a list of field names (e.g. "FutureResourcesSpecs") to + // unconditionally include in API requests. By default, fields with empty or + // default values are omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + ForceSendFields []string `json:"-"` + // NullFields is a list of field names (e.g. "FutureResourcesSpecs") to include + // in API requests with the JSON null value. By default, fields with empty + // values are omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s CalendarModeAdviceRequest) MarshalJSON() ([]byte, error) { + type NoMethod CalendarModeAdviceRequest + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +// CalendarModeAdviceResponse: A response containing the recommended way of +// creating the specified resources +// in the future. It contains (will contain) multiple recommendations that +// can +// be analyzed by the customer and the best one can be picked. +type CalendarModeAdviceResponse struct { + // Recommendations: Recommendations where, how and when to create the requested + // resources + // in order to maximize their obtainability and minimize cost. + Recommendations []*CalendarModeRecommendation `json:"recommendations,omitempty"` + + // ServerResponse contains the HTTP response code and headers from the server. + googleapi.ServerResponse `json:"-"` + // ForceSendFields is a list of field names (e.g. "Recommendations") to + // unconditionally include in API requests. By default, fields with empty or + // default values are omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + ForceSendFields []string `json:"-"` + // NullFields is a list of field names (e.g. "Recommendations") to include in + // API requests with the JSON null value. By default, fields with empty values + // are omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s CalendarModeAdviceResponse) MarshalJSON() ([]byte, error) { + type NoMethod CalendarModeAdviceResponse + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +// CalendarModeRecommendation: A single recommendation to create requested +// resources. Contains detailed +// recommendations for every future resources specification specified +// in +// CalendarModeAdviceRequest. +type CalendarModeRecommendation struct { + // RecommendationsPerSpec: Recommendations for every future resource + // specification passed in + // CalendarModeAdviceRequest. Keys of the map correspond to keys + // specified in the request. + RecommendationsPerSpec map[string]FutureResourcesRecommendation `json:"recommendationsPerSpec,omitempty"` + // ForceSendFields is a list of field names (e.g. "RecommendationsPerSpec") to + // unconditionally include in API requests. By default, fields with empty or + // default values are omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + ForceSendFields []string `json:"-"` + // NullFields is a list of field names (e.g. "RecommendationsPerSpec") to + // include in API requests with the JSON null value. By default, fields with + // empty values are omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s CalendarModeRecommendation) MarshalJSON() ([]byte, error) { + type NoMethod CalendarModeRecommendation + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +// CircuitBreakers: Settings controlling the volume of requests, connections +// and retries to this +// backend service. +type CircuitBreakers struct { + // MaxConnections: The maximum number of connections to the backend service. If + // not specified, + // there is no limit. + // + // Not supported when the backend service is referenced by a URL map that + // is + // bound to target gRPC proxy that has validateForProxyless field set to true. + MaxConnections int64 `json:"maxConnections,omitempty"` + // MaxPendingRequests: The maximum number of pending requests allowed to the + // backend service. If + // not specified, there is no limit. + // + // Not supported when the backend service is referenced by a URL map that + // is + // bound to target gRPC proxy that has validateForProxyless field set to true. + MaxPendingRequests int64 `json:"maxPendingRequests,omitempty"` + // MaxRequests: The maximum number of parallel requests that allowed to the + // backend + // service. If not specified, there is no limit. + MaxRequests int64 `json:"maxRequests,omitempty"` + // MaxRequestsPerConnection: Maximum requests for a single connection to the + // backend service. + // This parameter is respected by both the HTTP/1.1 and HTTP/2 + // implementations. If not specified, there is no limit. Setting this + // parameter to 1 will effectively disable keep alive. + // + // Not supported when the backend service is referenced by a URL map that + // is + // bound to target gRPC proxy that has validateForProxyless field set to true. + MaxRequestsPerConnection int64 `json:"maxRequestsPerConnection,omitempty"` + // MaxRetries: The maximum number of parallel retries allowed to the backend + // cluster. If + // not specified, the default is 1. + // + // Not supported when the backend service is referenced by a URL map that + // is + // bound to target gRPC proxy that has validateForProxyless field set to true. + MaxRetries int64 `json:"maxRetries,omitempty"` + // ForceSendFields is a list of field names (e.g. "MaxConnections") to + // unconditionally include in API requests. By default, fields with empty or + // default values are omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + ForceSendFields []string `json:"-"` + // NullFields is a list of field names (e.g. "MaxConnections") to include in + // API requests with the JSON null value. By default, fields with empty values + // are omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s CircuitBreakers) MarshalJSON() ([]byte, error) { + type NoMethod CircuitBreakers + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +// Commitment: Represents a regional resource-based commitment +// resource. +// +// Creating this commitment resource means that you are purchasing +// a +// resource-based committed use contract, with an explicit start and end +// time. +// You can purchase resource-based commitments for both hardware and +// software +// resources. For more information, read +// Resource-based committed use discounts +type Commitment struct { + // AutoRenew: Specifies whether to automatically renew the commitment at the + // end of its + // current term. The default value is false. If you set the field + // to true, each time your commitment reaches the end of its + // term, Compute Engine automatically renews it for another term. You + // can + // update this field anytime before the commitment expires. For example, if + // the commitment is set to expire at 12 AM UTC-8 on January 3, 2027, you + // can + // update this field until 11:59 PM UTC-8 on January 2, 2027. + AutoRenew bool `json:"autoRenew,omitempty"` + // Category: The category of the commitment; specifies whether the commitment + // is for + // hardware or software resources. Category MACHINE specifies + // that you are committing to hardware machine resources such asVCPU or MEMORY, + // listed in resources. + // Category LICENSE specifies that you are committing to software + // licenses, listed in licenseResources. + // Note that if you specify MACHINE commitments, then you must + // also specify a type to indicate the machine series of the + // hardware resource that you are committing to. + // + // Possible values: + // "CATEGORY_UNSPECIFIED" + // "LICENSE" + // "MACHINE" + Category string `json:"category,omitempty"` + // CreationTimestamp: Output only. [Output Only] Creation timestamp + // inRFC3339 + // text format. + CreationTimestamp string `json:"creationTimestamp,omitempty"` + // CustomEndTimestamp: [Input Only] Optional, specifies the requested + // commitment end time inRFC3339 text format. Use this option when the + // desired + // commitment's end date is later than the start date + term duration. + CustomEndTimestamp string `json:"customEndTimestamp,omitempty"` + // Description: An optional description of the commitment. You can provide this + // property + // when you create the resource. + Description string `json:"description,omitempty"` + // EndTimestamp: Output only. [Output Only] Commitment end time inRFC3339 + // text format. + EndTimestamp string `json:"endTimestamp,omitempty"` + ExistingReservations []string `json:"existingReservations,omitempty"` + // Id: Output only. [Output Only] The unique identifier for the resource. This + // identifier is // defined by the server. Id uint64 `json:"id,omitempty,string"` - // Kind: [Output Only] Type of the resource. Always compute#disk for disks. + // Kind: Output only. [Output Only] Type of the resource. Always + // compute#commitment + // for commitments. Kind string `json:"kind,omitempty"` - // LabelFingerprint: A fingerprint for the labels being applied to this disk, - // which is essentially a hash of the labels set used for optimistic locking. - // The fingerprint is initially generated by Compute Engine and changes after - // every request to modify or update labels. You must always provide an - // up-to-date fingerprint hash in order to update or change labels, otherwise - // the request will fail with error 412 conditionNotMet. To see the latest - // fingerprint, make a get() request to retrieve a disk. - LabelFingerprint string `json:"labelFingerprint,omitempty"` - // Labels: Labels to apply to this disk. These can be later modified by the - // setLabels method. - Labels map[string]string `json:"labels,omitempty"` - // LastAttachTimestamp: [Output Only] Last attach timestamp in RFC3339 text - // format. - LastAttachTimestamp string `json:"lastAttachTimestamp,omitempty"` - // LastDetachTimestamp: [Output Only] Last detach timestamp in RFC3339 text - // format. - LastDetachTimestamp string `json:"lastDetachTimestamp,omitempty"` - // LicenseCodes: Integer license codes indicating which licenses are attached - // to this disk. - LicenseCodes googleapi.Int64s `json:"licenseCodes,omitempty"` - // Licenses: A list of publicly visible licenses. Reserved for Google's use. - Licenses []string `json:"licenses,omitempty"` - // LocationHint: An opaque location hint used to place the disk close to other - // resources. This field is for use by internal tools that use the public API. - LocationHint string `json:"locationHint,omitempty"` - // Name: Name of the resource. Provided by the client when the resource is - // created. The name must be 1-63 characters long, and comply with RFC1035. - // 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. + // LicenseResource: The license specification required as part of a license + // commitment. + LicenseResource *LicenseResourceCommitment `json:"licenseResource,omitempty"` + // MergeSourceCommitments: The list of source commitments that you are merging + // to create the new + // merged commitment. For more information, see + // Merging commitments. + MergeSourceCommitments []string `json:"mergeSourceCommitments,omitempty"` + // Name: Name of the commitment. You must specify a name when you purchase + // the + // commitment. The name must be 1-63 characters long, and comply + // withRFC1035. + // 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. Name string `json:"name,omitempty"` - // Options: Internal use only. - Options string `json:"options,omitempty"` - // Params: Input only. [Input Only] Additional params passed with the request, - // but not persisted as part of resource payload. - Params *DiskParams `json:"params,omitempty"` - // PhysicalBlockSizeBytes: Physical block size of the persistent disk, in - // bytes. If not present in a request, a default value is used. The currently - // supported size is 4096, other sizes may be added in the future. If an - // unsupported value is requested, the error message will list the supported - // values for the caller's project. - PhysicalBlockSizeBytes int64 `json:"physicalBlockSizeBytes,omitempty,string"` - // ProvisionedIops: Indicates how many IOPS to provision for the disk. This - // sets the number of I/O operations per second that the disk can handle. - // Values must be between 10,000 and 120,000. For more details, see the Extreme - // persistent disk documentation. - ProvisionedIops int64 `json:"provisionedIops,omitempty,string"` - // ProvisionedThroughput: Indicates how much throughput to provision for the - // disk. This sets the number of throughput mb per second that the disk can - // handle. Values must be greater than or equal to 1. - ProvisionedThroughput int64 `json:"provisionedThroughput,omitempty,string"` - // Region: [Output Only] URL of the region where the disk resides. Only - // applicable for regional resources. You must specify this field as part of - // the HTTP request URL. It is not settable as a field in the request body. + // Params: Input only. Additional params passed with the request, but not + // persisted + // as part of resource payload. + Params *CommitmentParams `json:"params,omitempty"` + // Plan: The minimum time duration that you commit to purchasing resources. + // The plan that you choose determines the preset term length of the + // commitment (which is 1 year or 3 years) and affects the discount rate + // that + // you receive for your resources. Committing to a longer time + // duration + // typically gives you a higher discount rate. The supported values for + // this + // field are TWELVE_MONTH (1 year), andTHIRTY_SIX_MONTH (3 years). + // + // Possible values: + // "INVALID" + // "THIRTY_SIX_MONTH" + // "TWELVE_MONTH" + Plan string `json:"plan,omitempty"` + // Region: Output only. [Output Only] URL of the region where the commitment + // and committed + // resources are located. Region string `json:"region,omitempty"` - // ReplicaZones: URLs of the zones where the disk should be replicated to. Only - // applicable for regional resources. - ReplicaZones []string `json:"replicaZones,omitempty"` - // ResourcePolicies: Resource policies applied to this disk for automatic - // snapshot creations. - ResourcePolicies []string `json:"resourcePolicies,omitempty"` - // ResourceStatus: [Output Only] Status information for the disk resource. - ResourceStatus *DiskResourceStatus `json:"resourceStatus,omitempty"` - // SatisfiesPzi: Output only. Reserved for future use. - SatisfiesPzi bool `json:"satisfiesPzi,omitempty"` - // SatisfiesPzs: [Output Only] Reserved for future use. - SatisfiesPzs bool `json:"satisfiesPzs,omitempty"` - // SelfLink: [Output Only] Server-defined fully-qualified URL for this + // Reservations: The list of new reservations that you want to create and + // attach to this + // commitment. + // + // You must attach reservations to your commitment if your commitment + // specifies any GPUs or Local SSD disks. For more information, see + // Attach reservations to resource-based commitments. + // + // Specify this property only if you want to create new + // reservations to attach. To attach existing reservations, specify + // theexistingReservations property instead. + Reservations []*Reservation `json:"reservations,omitempty"` + // ResourceStatus: Output only. [Output Only] Status information for Commitment // resource. + ResourceStatus *CommitmentResourceStatus `json:"resourceStatus,omitempty"` + // Resources: The list of all the hardware resources, with their types and + // amounts, that + // you want to commit to. Specify as a separate entry in the list for + // each + // individual resource type. + Resources []*ResourceCommitment `json:"resources,omitempty"` + // SelfLink: Output only. [Output Only] Server-defined URL for the resource. SelfLink string `json:"selfLink,omitempty"` - // SizeGb: Size, in GB, of the persistent disk. You can specify this field when - // creating a persistent disk using the sourceImage, sourceSnapshot, or - // sourceDisk parameter, or specify it alone to create an empty persistent - // disk. If you specify this field along with a source, the value of sizeGb - // must not be less than the size of the source. Acceptable values are greater - // than 0. - SizeGb int64 `json:"sizeGb,omitempty,string"` - // SourceConsistencyGroupPolicy: [Output Only] URL of the - // DiskConsistencyGroupPolicy for a secondary disk that was created using a - // consistency group. - SourceConsistencyGroupPolicy string `json:"sourceConsistencyGroupPolicy,omitempty"` - // SourceConsistencyGroupPolicyId: [Output Only] ID of the - // DiskConsistencyGroupPolicy for a secondary disk that was created using a - // consistency group. - SourceConsistencyGroupPolicyId string `json:"sourceConsistencyGroupPolicyId,omitempty"` - // SourceDisk: The source disk used to create this disk. 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 - // /disks/disk - - // https://www.googleapis.com/compute/v1/projects/project/regions/region - // /disks/disk - projects/project/zones/zone/disks/disk - - // projects/project/regions/region/disks/disk - zones/zone/disks/disk - - // regions/region/disks/disk - SourceDisk string `json:"sourceDisk,omitempty"` - // SourceDiskId: [Output Only] The unique ID of the disk used to create this - // disk. This value identifies the exact disk that was used to create this - // persistent disk. For example, if you created the persistent disk from a disk - // that was later deleted and recreated under the same name, the source disk ID - // would identify the exact version of the disk that was used. - SourceDiskId string `json:"sourceDiskId,omitempty"` - // SourceImage: The source image used to create this disk. If the source image - // is deleted, this field will not be set. To create a disk with one of the - // public operating system images, specify the image by its family name. For - // example, specify family/debian-9 to use the latest Debian 9 image: - // projects/debian-cloud/global/images/family/debian-9 Alternatively, use a - // specific version of a public operating system image: - // projects/debian-cloud/global/images/debian-9-stretch-vYYYYMMDD To create a - // disk with a custom image that you created, specify the image name in the - // following format: global/images/my-custom-image You can also specify a - // custom image by its image family, which returns the latest version of the - // image in that family. Replace the image name with family/family-name: - // global/images/family/my-image-family - SourceImage string `json:"sourceImage,omitempty"` - // SourceImageEncryptionKey: The customer-supplied encryption key of the source - // image. Required if the source image is protected by a customer-supplied - // encryption key. - SourceImageEncryptionKey *CustomerEncryptionKey `json:"sourceImageEncryptionKey,omitempty"` - // SourceImageId: [Output Only] The ID value of the image used to create this - // disk. This value identifies the exact image that was used to create this - // persistent disk. For example, if you created the persistent disk from an - // image that was later deleted and recreated under the same name, the source - // image ID would identify the exact version of the image that was used. - SourceImageId string `json:"sourceImageId,omitempty"` - // SourceInstantSnapshot: The source instant snapshot used to create this disk. - // 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 - // /instantSnapshots/instantSnapshot - - // projects/project/zones/zone/instantSnapshots/instantSnapshot - - // zones/zone/instantSnapshots/instantSnapshot - SourceInstantSnapshot string `json:"sourceInstantSnapshot,omitempty"` - // SourceInstantSnapshotId: [Output Only] The unique ID of the instant snapshot - // used to create this disk. This value identifies the exact instant snapshot - // that was used to create this persistent disk. For example, if you created - // the persistent disk from an instant snapshot that was later deleted and - // recreated under the same name, the source instant snapshot ID would identify - // the exact version of the instant snapshot that was used. - SourceInstantSnapshotId string `json:"sourceInstantSnapshotId,omitempty"` - // SourceSnapshot: The source snapshot used to create this disk. 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 - // /global/snapshots/snapshot - projects/project/global/snapshots/snapshot - - // global/snapshots/snapshot - SourceSnapshot string `json:"sourceSnapshot,omitempty"` - // SourceSnapshotEncryptionKey: The customer-supplied encryption key of the - // source snapshot. Required if the source snapshot is protected by a - // customer-supplied encryption key. - SourceSnapshotEncryptionKey *CustomerEncryptionKey `json:"sourceSnapshotEncryptionKey,omitempty"` - // SourceSnapshotId: [Output Only] The unique ID of the snapshot used to create - // this disk. This value identifies the exact snapshot that was used to create - // this persistent disk. For example, if you created the persistent disk from a - // snapshot that was later deleted and recreated under the same name, the - // source snapshot ID would identify the exact version of the snapshot that was - // used. - SourceSnapshotId string `json:"sourceSnapshotId,omitempty"` - // SourceStorageObject: The full Google Cloud Storage URI where the disk image - // is stored. This file must be a gzip-compressed tarball whose name ends in - // .tar.gz or virtual machine disk whose name ends in vmdk. Valid URIs may - // start with gs:// or https://storage.googleapis.com/. This flag is not - // optimized for creating multiple disks from a source storage object. To - // create many disks from a source storage object, use gcloud compute images - // import instead. - SourceStorageObject string `json:"sourceStorageObject,omitempty"` - // Status: [Output Only] The status of disk creation. - CREATING: Disk is - // provisioning. - RESTORING: Source data is being copied into the disk. - - // FAILED: Disk creation failed. - READY: Disk is ready for use. - DELETING: - // Disk is deleting. + // SplitSourceCommitment: The source commitment from which you are transferring + // resources to create + // the new split commitment. For more information, see + // Split commitments. + SplitSourceCommitment string `json:"splitSourceCommitment,omitempty"` + // StartTimestamp: Output only. [Output Only] Commitment start time + // inRFC3339 + // text format. + StartTimestamp string `json:"startTimestamp,omitempty"` + // Status: Output only. [Output Only] Status of the commitment with regards to + // eventual expiration + // (each commitment has an end date defined). Status can be one of + // the + // following values: NOT_YET_ACTIVE, ACTIVE, orEXPIRED. // // Possible values: - // "CREATING" - Disk is provisioning - // "DELETING" - Disk is deleting. - // "FAILED" - Disk creation failed. - // "READY" - Disk is ready for use. - // "RESTORING" - Source data is being copied into the disk. - // "UNAVAILABLE" - Disk is currently unavailable and cannot be accessed, - // attached or detached. + // "ACTIVE" + // "CANCELLED" - Deprecate CANCELED status. Will use separate status to + // differentiate + // cancel by mergeCud or manual cancellation. + // "CREATING" + // "EXPIRED" + // "NOT_YET_ACTIVE" Status string `json:"status,omitempty"` - // StoragePool: The storage pool in which the new disk is created. 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 - // /storagePools/storagePool - - // projects/project/zones/zone/storagePools/storagePool - - // zones/zone/storagePools/storagePool - StoragePool string `json:"storagePool,omitempty"` - // Type: URL of the disk type resource describing which disk type to use to - // create the disk. Provide this when creating the disk. For example: - // projects/project /zones/zone/diskTypes/pd-ssd . See Persistent disk types. + // StatusMessage: Output only. [Output Only] An optional, human-readable + // explanation of the status. + StatusMessage string `json:"statusMessage,omitempty"` + // Type: The type of commitment; specifies the + // machine series for which you want to commit to purchasing resources. + // The choice of machine series affects the discount rate and the + // eligible + // resource types. + // + // The type must be one of the following:ACCELERATOR_OPTIMIZED, + // ACCELERATOR_OPTIMIZED_A3,ACCELERATOR_OPTIMIZED_A3_MEGA,COMPUTE_OPTIMIZED, + // COMPUTE_OPTIMIZED_C2D, + // COMPUTE_OPTIMIZED_C3, COMPUTE_OPTIMIZED_C3D,COMPUTE_OPTIMIZED_H3, + // GENERAL_PURPOSE,GENERAL_PURPOSE_C4, GENERAL_PURPOSE_E2,GENERAL_PURPOSE_N2, + // GENERAL_PURPOSE_N2D,GENERAL_PURPOSE_N4, + // GENERAL_PURPOSE_T2D,GRAPHICS_OPTIMIZED, + // GRAPHICS_OPTIMIZED_G4,GRAPHICS_OPTIMIZED_G4_VGPU,MEMORY_OPTIMIZED, + // MEMORY_OPTIMIZED_M3,MEMORY_OPTIMIZED_X4, STORAGE_OPTIMIZED_Z3. For + // example, type MEMORY_OPTIMIZED specifies a commitment that + // applies only to eligible resources of memory optimized M1 and M2 + // machine + // series. Type GENERAL_PURPOSE specifies a commitment that + // applies only to eligible resources of general purpose N1 machine series. + // + // Possible values: + // "ACCELERATOR_OPTIMIZED" + // "ACCELERATOR_OPTIMIZED_A3" + // "ACCELERATOR_OPTIMIZED_A3_MEGA" + // "ACCELERATOR_OPTIMIZED_A3_ULTRA" + // "ACCELERATOR_OPTIMIZED_A4" + // "COMPUTE_OPTIMIZED" + // "COMPUTE_OPTIMIZED_C2D" + // "COMPUTE_OPTIMIZED_C3" + // "COMPUTE_OPTIMIZED_C3D" + // "COMPUTE_OPTIMIZED_H3" + // "COMPUTE_OPTIMIZED_H4D" + // "GENERAL_PURPOSE" + // "GENERAL_PURPOSE_C4" + // "GENERAL_PURPOSE_C4A" + // "GENERAL_PURPOSE_C4D" + // "GENERAL_PURPOSE_E2" + // "GENERAL_PURPOSE_N2" + // "GENERAL_PURPOSE_N2D" + // "GENERAL_PURPOSE_N4" + // "GENERAL_PURPOSE_N4A" + // "GENERAL_PURPOSE_N4D" + // "GENERAL_PURPOSE_T2D" + // "GRAPHICS_OPTIMIZED" + // "GRAPHICS_OPTIMIZED_G4" + // "GRAPHICS_OPTIMIZED_G4_VGPU" + // "MEMORY_OPTIMIZED" + // "MEMORY_OPTIMIZED_M3" + // "MEMORY_OPTIMIZED_M4" + // "MEMORY_OPTIMIZED_M4_6TB" + // "MEMORY_OPTIMIZED_X4_1440_24T" - CUD bucket for X4 machine with 1440 vCPUs + // and 24TB of memory. + // "MEMORY_OPTIMIZED_X4_16TB" + // "MEMORY_OPTIMIZED_X4_1920_32T" - CUD bucket for X4 machine with 1920 vCPUs + // and 32TB of memory. + // "MEMORY_OPTIMIZED_X4_24TB" + // "MEMORY_OPTIMIZED_X4_32TB" + // "MEMORY_OPTIMIZED_X4_480_6T" - CUD bucket for X4 machine with 480 vCPUs + // and 6TB of memory. + // "MEMORY_OPTIMIZED_X4_480_8T" - CUD bucket for X4 machine with 480 vCPUs + // and 8TB of memory. + // "MEMORY_OPTIMIZED_X4_960_12T" - CUD bucket for X4 machine with 960 vCPUs + // and 12TB of memory. + // "MEMORY_OPTIMIZED_X4_960_16T" - CUD bucket for X4 machine with 960 vCPUs + // and 16TB of memory. + // "STORAGE_OPTIMIZED_Z3" + // "TYPE_UNSPECIFIED" - Note for internal users: When adding a new enum Type + // for v1, make sure + // to also add it in the comment for the `optional Type type` definition. + // This ensures that the public documentation displays the new enum Type. Type string `json:"type,omitempty"` - // Users: [Output Only] Links to the users of the disk (attached instances) in - // form: projects/project/zones/zone/instances/instance - Users []string `json:"users,omitempty"` - // Zone: [Output Only] URL of the zone where the disk resides. You must specify - // this field as part of the HTTP request URL. It is not settable as a field in - // the request body. - Zone string `json:"zone,omitempty"` // ServerResponse contains the HTTP response code and headers from the server. googleapi.ServerResponse `json:"-"` - // ForceSendFields is a list of field names (e.g. "Architecture") to + // ForceSendFields is a list of field names (e.g. "AutoRenew") to // unconditionally include in API requests. By default, fields with empty or // default values are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. ForceSendFields []string `json:"-"` - // NullFields is a list of field names (e.g. "Architecture") to include in API + // NullFields is a list of field names (e.g. "AutoRenew") to include in API // requests with the JSON null value. By default, fields with empty values are // omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } -func (s *Disk) MarshalJSON() ([]byte, error) { - type NoMethod Disk - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s Commitment) MarshalJSON() ([]byte, error) { + type NoMethod Commitment + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -type DiskAggregatedList struct { +type CommitmentAggregatedList struct { // Id: [Output Only] Unique identifier for the resource; defined by the server. Id string `json:"id,omitempty"` - // Items: A list of DisksScopedList resources. - Items map[string]DisksScopedList `json:"items,omitempty"` - // Kind: [Output Only] Type of resource. Always compute#diskAggregatedList for - // aggregated lists of persistent disks. + // Items: A list of CommitmentsScopedList resources. + Items map[string]CommitmentsScopedList `json:"items,omitempty"` + // Kind: Output only. [Output Only] Type of resource. + // Alwayscompute#commitmentAggregatedList for aggregated lists of + // commitments. 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. + // results for + // list requests. If the number of results is larger thanmaxResults, 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"` - // SelfLink: [Output Only] Server-defined URL for this resource. + // SelfLink: Output only. [Output Only] Server-defined URL for this resource. SelfLink string `json:"selfLink,omitempty"` - // Unreachables: [Output Only] Unreachable resources. + // Unreachables: Output only. [Output Only] Unreachable resources. Unreachables []string `json:"unreachables,omitempty"` // Warning: [Output Only] Informational warning message. - Warning *DiskAggregatedListWarning `json:"warning,omitempty"` + Warning *CommitmentAggregatedListWarning `json:"warning,omitempty"` // ServerResponse contains the HTTP response code and headers from the server. googleapi.ServerResponse `json:"-"` @@ -8275,76 +11283,99 @@ type DiskAggregatedList struct { NullFields []string `json:"-"` } -func (s *DiskAggregatedList) MarshalJSON() ([]byte, error) { - type NoMethod DiskAggregatedList - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s CommitmentAggregatedList) MarshalJSON() ([]byte, error) { + type NoMethod CommitmentAggregatedList + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -// DiskAggregatedListWarning: [Output Only] Informational warning message. -type DiskAggregatedListWarning 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. +// CommitmentAggregatedListWarning: [Output Only] Informational warning +// message. +type CommitmentAggregatedListWarning 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" - Warning about failed cleanup of transient changes made - // by a failed operation. + // by a failed + // operation. // "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was created. // "DEPRECATED_TYPE_USED" - When deploying and at least one of the resources - // has a type marked as deprecated + // has a type marked as + // deprecated // "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk that is // larger than image size. // "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the - // resources has a type marked as experimental + // resources has a type marked as + // experimental // "EXTERNAL_API_WARNING" - Warning that is present in an external api call // "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been - // overridden. Deprecated unused field. + // overridden. + // Deprecated unused field. // "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an injected // kernel, which is deprecated. // "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB" - A WEIGHTED_MAGLEV backend - // service is associated with a health check that is not of type - // HTTP/HTTPS/HTTP2. + // service is associated with a health check that is + // not of type HTTP/HTTPS/HTTP2. // "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a // exceedingly large number of resources // "LIST_OVERHEAD_QUOTA_EXCEED" - Resource can't be retrieved due to list - // overhead quota exceed which captures the amount of resources filtered out by + // overhead quota exceed + // which captures the amount of resources filtered out by // user-defined list filter. // "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is not - // assigned to an instance on the network. + // assigned to an instance on the + // network. // "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot ip // forward. // "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE" - The route's nextHopInstance - // URL refers to an instance that does not have an ipv6 interface on the same - // network as the route. + // URL refers to an instance that does not have an + // ipv6 interface on the same network as the route. // "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL refers to // an instance that does not exist. // "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance URL - // refers to an instance that is not on the same network as the route. + // refers to an instance that is not on the + // same network as the route. // "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not have a // status of RUNNING. // "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to continue - // the process despite the mentioned error. + // the process despite + // the mentioned error. // "NO_RESULTS_ON_PAGE" - No results are present on a particular list page. // "PARTIAL_SUCCESS" - Success is reported, but some results may be missing // due to errors + // "QUOTA_INFO_UNAVAILABLE" - Quota information is not available to client + // requests (e.g: + // regions.list). // "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource that - // requires a TOS they have not accepted. + // requires a TOS they have not + // accepted. // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a resource is // in use. // "RESOURCE_NOT_DELETED" - One or more of the resources set to auto-delete - // could not be deleted because they were in use. + // could not be deleted + // because they were in use. // "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is // ignored. // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in instance - // group manager is valid as such, but its application does not make a lot of - // sense, because it allows only single instance in instance group. + // group manager is valid as such, but + // its application does not make a lot of sense, because it allows only + // single instance in instance group. // "UNDECLARED_PROPERTIES" - When undeclared properties in the schema are // present // "UNREACHABLE" - A given scope cannot be reached. 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 []*DiskAggregatedListWarningData `json:"data,omitempty"` + // Data: [Output Only] Metadata about this warning in key: + // value format. For example: + // + // "data": [ + // { + // "key": "scope", + // "value": "zones/us-east1-d" + // } + Data []*CommitmentAggregatedListWarningData `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 @@ -8360,19 +11391,22 @@ type DiskAggregatedListWarning struct { NullFields []string `json:"-"` } -func (s *DiskAggregatedListWarning) MarshalJSON() ([]byte, error) { - type NoMethod DiskAggregatedListWarning - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s CommitmentAggregatedListWarning) MarshalJSON() ([]byte, error) { + type NoMethod CommitmentAggregatedListWarning + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -type DiskAggregatedListWarningData 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). +type CommitmentAggregatedListWarningData 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"` @@ -8389,153 +11423,33 @@ type DiskAggregatedListWarningData struct { NullFields []string `json:"-"` } -func (s *DiskAggregatedListWarningData) MarshalJSON() ([]byte, error) { - type NoMethod DiskAggregatedListWarningData - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) -} - -type DiskAsyncReplication struct { - // ConsistencyGroupPolicy: [Output Only] URL of the DiskConsistencyGroupPolicy - // if replication was started on the disk as a member of a group. - ConsistencyGroupPolicy string `json:"consistencyGroupPolicy,omitempty"` - // ConsistencyGroupPolicyId: [Output Only] ID of the DiskConsistencyGroupPolicy - // if replication was started on the disk as a member of a group. - ConsistencyGroupPolicyId string `json:"consistencyGroupPolicyId,omitempty"` - // Disk: The other disk asynchronously replicated to or from the current disk. - // 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 - // /disks/disk - projects/project/zones/zone/disks/disk - zones/zone/disks/disk - Disk string `json:"disk,omitempty"` - // DiskId: [Output Only] The unique ID of the other disk asynchronously - // replicated to or from the current disk. This value identifies the exact disk - // that was used to create this replication. For example, if you started - // replicating the persistent disk from a disk that was later deleted and - // recreated under the same name, the disk ID would identify the exact version - // of the disk that was used. - DiskId string `json:"diskId,omitempty"` - // ForceSendFields is a list of field names (e.g. "ConsistencyGroupPolicy") to - // unconditionally include in API requests. By default, fields with empty or - // default values are omitted from API requests. See - // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more - // details. - ForceSendFields []string `json:"-"` - // NullFields is a list of field names (e.g. "ConsistencyGroupPolicy") to - // include in API requests with the JSON null value. By default, fields with - // empty values are omitted from API requests. See - // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. - NullFields []string `json:"-"` -} - -func (s *DiskAsyncReplication) MarshalJSON() ([]byte, error) { - type NoMethod DiskAsyncReplication - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) -} - -type DiskAsyncReplicationList struct { - AsyncReplicationDisk *DiskAsyncReplication `json:"asyncReplicationDisk,omitempty"` - // ForceSendFields is a list of field names (e.g. "AsyncReplicationDisk") to - // unconditionally include in API requests. By default, fields with empty or - // default values are omitted from API requests. See - // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more - // details. - ForceSendFields []string `json:"-"` - // NullFields is a list of field names (e.g. "AsyncReplicationDisk") to include - // in API requests with the JSON null value. By default, fields with empty - // values are omitted from API requests. See - // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. - NullFields []string `json:"-"` -} - -func (s *DiskAsyncReplicationList) MarshalJSON() ([]byte, error) { - type NoMethod DiskAsyncReplicationList - return gensupport.MarshalJSON(NoMethod(*s), 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" - Attach the existing disk in read-only mode. The - // request will fail if the disk was attached in read-write mode on the source - // instance. Applicable to: read-only disks. - // "BLANK" - Create a blank disk. The disk will be created unformatted. - // Applicable to: additional read-write disks, local SSDs. - // "CUSTOM_IMAGE" - Use the custom image specified in the custom_image field. - // Applicable to: boot disk, additional read-write disks. - // "DEFAULT" - Use the default instantiation option for the corresponding - // type of disk. 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. - // "DO_NOT_INCLUDE" - Do not include the disk in the instance template. - // Applicable to: additional read-write disks, local SSDs, read-only disks. - // "SOURCE_IMAGE" - Use the same source image used for creation of the source - // instance's corresponding disk. The request will fail if the source VM's disk - // was created from a snapshot. Applicable to: boot disk, additional read-write - // disks. - // "SOURCE_IMAGE_FAMILY" - Use the same source image family used for creation - // of the source instance's corresponding disk. The request will fail if the - // source image of the source disk does not belong to any image family. - // Applicable to: boot disk, additional read-write disks. - 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 or - // default values are omitted from API requests. See - // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more - // details. - 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. See - // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. - NullFields []string `json:"-"` -} - -func (s *DiskInstantiationConfig) MarshalJSON() ([]byte, error) { - type NoMethod DiskInstantiationConfig - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s CommitmentAggregatedListWarningData) MarshalJSON() ([]byte, error) { + type NoMethod CommitmentAggregatedListWarningData + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -// DiskList: A list of Disk resources. -type DiskList struct { +// CommitmentList: Contains a list of Commitment resources. +type CommitmentList struct { // Id: [Output Only] Unique identifier for the resource; defined by the server. Id string `json:"id,omitempty"` - // Items: A list of Disk resources. - Items []*Disk `json:"items,omitempty"` - // Kind: [Output Only] Type of resource. Always compute#diskList for lists of - // disks. + // Items: A list of Commitment resources. + Items []*Commitment `json:"items,omitempty"` + // Kind: Output only. [Output Only] Type of resource. Always + // compute#commitmentList + // for lists of commitments. 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. + // results for + // list requests. If the number of results is larger thanmaxResults, 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"` - // SelfLink: [Output Only] Server-defined URL for this resource. + // SelfLink: Output only. [Output Only] Server-defined URL for this resource. SelfLink string `json:"selfLink,omitempty"` // Warning: [Output Only] Informational warning message. - Warning *DiskListWarning `json:"warning,omitempty"` + Warning *CommitmentListWarning `json:"warning,omitempty"` // ServerResponse contains the HTTP response code and headers from the server. googleapi.ServerResponse `json:"-"` @@ -8552,76 +11466,98 @@ type DiskList struct { NullFields []string `json:"-"` } -func (s *DiskList) MarshalJSON() ([]byte, error) { - type NoMethod DiskList - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s CommitmentList) MarshalJSON() ([]byte, error) { + type NoMethod CommitmentList + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -// DiskListWarning: [Output Only] Informational warning message. -type DiskListWarning 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. +// CommitmentListWarning: [Output Only] Informational warning message. +type CommitmentListWarning 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" - Warning about failed cleanup of transient changes made - // by a failed operation. + // by a failed + // operation. // "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was created. // "DEPRECATED_TYPE_USED" - When deploying and at least one of the resources - // has a type marked as deprecated + // has a type marked as + // deprecated // "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk that is // larger than image size. // "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the - // resources has a type marked as experimental + // resources has a type marked as + // experimental // "EXTERNAL_API_WARNING" - Warning that is present in an external api call // "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been - // overridden. Deprecated unused field. + // overridden. + // Deprecated unused field. // "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an injected // kernel, which is deprecated. // "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB" - A WEIGHTED_MAGLEV backend - // service is associated with a health check that is not of type - // HTTP/HTTPS/HTTP2. + // service is associated with a health check that is + // not of type HTTP/HTTPS/HTTP2. // "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a // exceedingly large number of resources // "LIST_OVERHEAD_QUOTA_EXCEED" - Resource can't be retrieved due to list - // overhead quota exceed which captures the amount of resources filtered out by + // overhead quota exceed + // which captures the amount of resources filtered out by // user-defined list filter. // "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is not - // assigned to an instance on the network. + // assigned to an instance on the + // network. // "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot ip // forward. // "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE" - The route's nextHopInstance - // URL refers to an instance that does not have an ipv6 interface on the same - // network as the route. + // URL refers to an instance that does not have an + // ipv6 interface on the same network as the route. // "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL refers to // an instance that does not exist. // "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance URL - // refers to an instance that is not on the same network as the route. + // refers to an instance that is not on the + // same network as the route. // "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not have a // status of RUNNING. // "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to continue - // the process despite the mentioned error. + // the process despite + // the mentioned error. // "NO_RESULTS_ON_PAGE" - No results are present on a particular list page. // "PARTIAL_SUCCESS" - Success is reported, but some results may be missing // due to errors + // "QUOTA_INFO_UNAVAILABLE" - Quota information is not available to client + // requests (e.g: + // regions.list). // "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource that - // requires a TOS they have not accepted. + // requires a TOS they have not + // accepted. // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a resource is // in use. // "RESOURCE_NOT_DELETED" - One or more of the resources set to auto-delete - // could not be deleted because they were in use. + // could not be deleted + // because they were in use. // "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is // ignored. // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in instance - // group manager is valid as such, but its application does not make a lot of - // sense, because it allows only single instance in instance group. + // group manager is valid as such, but + // its application does not make a lot of sense, because it allows only + // single instance in instance group. // "UNDECLARED_PROPERTIES" - When undeclared properties in the schema are // present // "UNREACHABLE" - A given scope cannot be reached. 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 []*DiskListWarningData `json:"data,omitempty"` + // Data: [Output Only] Metadata about this warning in key: + // value format. For example: + // + // "data": [ + // { + // "key": "scope", + // "value": "zones/us-east1-d" + // } + Data []*CommitmentListWarningData `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 @@ -8637,19 +11573,22 @@ type DiskListWarning struct { NullFields []string `json:"-"` } -func (s *DiskListWarning) MarshalJSON() ([]byte, error) { - type NoMethod DiskListWarning - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s CommitmentListWarning) MarshalJSON() ([]byte, error) { + type NoMethod CommitmentListWarning + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -type DiskListWarningData 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). +type CommitmentListWarningData 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"` @@ -8666,46 +11605,23 @@ type DiskListWarningData struct { NullFields []string `json:"-"` } -func (s *DiskListWarningData) MarshalJSON() ([]byte, error) { - type NoMethod DiskListWarningData - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) -} - -type DiskMoveRequest struct { - // DestinationZone: The URL of the destination zone to move the disk. This can - // be a full or partial URL. For example, the following are all valid URLs to a - // zone: - https://www.googleapis.com/compute/v1/projects/project/zones/zone - - // projects/project/zones/zone - zones/zone - DestinationZone string `json:"destinationZone,omitempty"` - // TargetDisk: The URL of the target disk to move. This can be a full or - // partial URL. For example, the following are all valid URLs to a disk: - - // https://www.googleapis.com/compute/v1/projects/project/zones/zone - // /disks/disk - projects/project/zones/zone/disks/disk - zones/zone/disks/disk - TargetDisk string `json:"targetDisk,omitempty"` - // ForceSendFields is a list of field names (e.g. "DestinationZone") to - // unconditionally include in API requests. By default, fields with empty or - // default values are omitted from API requests. See - // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more - // details. - ForceSendFields []string `json:"-"` - // NullFields is a list of field names (e.g. "DestinationZone") to include in - // API requests with the JSON null value. By default, fields with empty values - // are omitted from API requests. See - // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. - NullFields []string `json:"-"` -} - -func (s *DiskMoveRequest) MarshalJSON() ([]byte, error) { - type NoMethod DiskMoveRequest - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) -} - -// DiskParams: Additional disk params. -type DiskParams struct { - // ResourceManagerTags: Resource manager tags to be bound to the disk. Tag keys - // and values have the same definition as resource manager tags. Keys must be - // in the format `tagKeys/{tag_key_id}`, and values are in the format - // `tagValues/456`. The field is ignored (both PUT & PATCH) when empty. +func (s CommitmentListWarningData) MarshalJSON() ([]byte, error) { + type NoMethod CommitmentListWarningData + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +// CommitmentParams: Additional commitment params. +type CommitmentParams struct { + // ResourceManagerTags: Input only. Resource manager tags to be bound to the + // commitment. Tag keys and + // values have the same definition as resource + // manager tags. Keys and values can be either in numeric format, + // such as `tagKeys/{tag_key_id}` and `tagValues/{tag_value_id}` or + // in + // namespaced format such as `{org_id|project_id}/{tag_key_short_name}` + // and + // `{tag_value_short_name}`. The field is ignored (both PUT & + // PATCH) when empty. ResourceManagerTags map[string]string `json:"resourceManagerTags,omitempty"` // ForceSendFields is a list of field names (e.g. "ResourceManagerTags") to // unconditionally include in API requests. By default, fields with empty or @@ -8720,227 +11636,153 @@ type DiskParams struct { NullFields []string `json:"-"` } -func (s *DiskParams) MarshalJSON() ([]byte, error) { - type NoMethod DiskParams - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s CommitmentParams) MarshalJSON() ([]byte, error) { + type NoMethod CommitmentParams + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -type DiskResourceStatus struct { - AsyncPrimaryDisk *DiskResourceStatusAsyncReplicationStatus `json:"asyncPrimaryDisk,omitempty"` - // AsyncSecondaryDisks: Key: disk, value: AsyncReplicationStatus message - AsyncSecondaryDisks map[string]DiskResourceStatusAsyncReplicationStatus `json:"asyncSecondaryDisks,omitempty"` - // ForceSendFields is a list of field names (e.g. "AsyncPrimaryDisk") to - // unconditionally include in API requests. By default, fields with empty or - // default values are omitted from API requests. See +// CommitmentResourceStatus: [Output Only] Contains output only fields. +type CommitmentResourceStatus struct { + // CustomTermEligibilityEndTimestamp: Output only. [Output Only] Indicates the + // end time of customer's eligibility to send + // custom term requests in RFC3339 text format. Term extension requests + // that + // (not the end time in the request) after this time will be rejected. + CustomTermEligibilityEndTimestamp string `json:"customTermEligibilityEndTimestamp,omitempty"` + // ForceSendFields is a list of field names (e.g. + // "CustomTermEligibilityEndTimestamp") to unconditionally include in API + // requests. By default, fields with empty or default values are omitted from + // API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. ForceSendFields []string `json:"-"` - // NullFields is a list of field names (e.g. "AsyncPrimaryDisk") to include in - // API requests with the JSON null value. By default, fields with empty values - // are omitted from API requests. See - // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + // NullFields is a list of field names (e.g. + // "CustomTermEligibilityEndTimestamp") to include in API requests with the + // JSON null value. By default, fields with empty values are omitted from API + // requests. See https://pkg.go.dev/google.golang.org/api#hdr-NullFields for + // more details. NullFields []string `json:"-"` } -func (s *DiskResourceStatus) MarshalJSON() ([]byte, error) { - type NoMethod DiskResourceStatus - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s CommitmentResourceStatus) MarshalJSON() ([]byte, error) { + type NoMethod CommitmentResourceStatus + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -type DiskResourceStatusAsyncReplicationStatus struct { - // Possible values: - // "ACTIVE" - Replication is active. - // "CREATED" - Secondary disk is created and is waiting for replication to - // start. - // "STARTING" - Replication is starting. - // "STATE_UNSPECIFIED" - // "STOPPED" - Replication is stopped. - // "STOPPING" - Replication is stopping. - State string `json:"state,omitempty"` - // ForceSendFields is a list of field names (e.g. "State") to unconditionally - // include in API requests. By default, fields with empty or default values are - // omitted from API requests. See +type CommitmentsScopedList struct { + // Commitments: [Output Only] The list of commitments contained in this scope. + Commitments []*Commitment `json:"commitments,omitempty"` + // Warning: [Output Only] Informational warning which replaces the list of + // commitments + // when the list is empty. + Warning *CommitmentsScopedListWarning `json:"warning,omitempty"` + // ForceSendFields is a list of field names (e.g. "Commitments") to + // unconditionally include in API requests. By default, fields with empty or + // default values are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. ForceSendFields []string `json:"-"` - // NullFields is a list of field names (e.g. "State") to include in API + // NullFields is a list of field names (e.g. "Commitments") to include in API // requests with the JSON null value. By default, fields with empty values are // omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } -func (s *DiskResourceStatusAsyncReplicationStatus) MarshalJSON() ([]byte, error) { - type NoMethod DiskResourceStatusAsyncReplicationStatus - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) -} - -// DiskType: Represents a Disk Type resource. Google Compute Engine has two -// Disk Type resources: * Regional -// (/compute/docs/reference/rest/v1/regionDiskTypes) * Zonal -// (/compute/docs/reference/rest/v1/diskTypes) You can choose from a variety of -// disk types based on your needs. For more information, read Storage options. -// The diskTypes resource represents disk types for a zonal persistent disk. -// For more information, read Zonal persistent disks. The regionDiskTypes -// resource represents disk types for a regional persistent disk. For more -// information, read Regional persistent disks. -type DiskType struct { - // CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text format. - CreationTimestamp string `json:"creationTimestamp,omitempty"` - // DefaultDiskSizeGb: [Output Only] Server-defined default disk size in GB. - DefaultDiskSizeGb int64 `json:"defaultDiskSizeGb,omitempty,string"` - // Deprecated -- [Output Only] The deprecation status associated with this disk - // type. - Deprecated *DeprecationStatus `json:"deprecated,omitempty"` - // Description: [Output Only] An optional description of this resource. - Description string `json:"description,omitempty"` - // Id: [Output Only] The unique identifier for the resource. This identifier is - // defined by the server. - Id uint64 `json:"id,omitempty,string"` - // Kind: [Output Only] Type of the resource. Always compute#diskType for disk - // types. - Kind string `json:"kind,omitempty"` - // Name: [Output Only] Name of the resource. - Name string `json:"name,omitempty"` - // Region: [Output Only] URL of the region where the disk type resides. Only - // applicable for regional resources. You must specify this field as part of - // the HTTP request URL. It is not settable as a field in the request body. - Region string `json:"region,omitempty"` - // SelfLink: [Output Only] Server-defined URL for the resource. - SelfLink string `json:"selfLink,omitempty"` - // ValidDiskSize: [Output Only] An optional textual description of the valid - // disk size, such as "10GB-10TB". - ValidDiskSize string `json:"validDiskSize,omitempty"` - // Zone: [Output Only] URL of the zone where the disk type resides. You must - // specify this field as part of the HTTP request URL. It is not settable as a - // field in the request body. - Zone string `json:"zone,omitempty"` +func (s CommitmentsScopedList) MarshalJSON() ([]byte, error) { + type NoMethod CommitmentsScopedList + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} - // ServerResponse contains the HTTP response code and headers from the server. - googleapi.ServerResponse `json:"-"` - // ForceSendFields is a list of field names (e.g. "CreationTimestamp") to - // unconditionally include in API requests. By default, fields with empty or - // default values are omitted from API requests. See - // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more - // details. - ForceSendFields []string `json:"-"` - // NullFields is a list of field names (e.g. "CreationTimestamp") to include in - // API requests with the JSON null value. By default, fields with empty values - // are omitted from API requests. See - // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. - NullFields []string `json:"-"` -} - -func (s *DiskType) MarshalJSON() ([]byte, error) { - type NoMethod DiskType - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) -} - -type DiskTypeAggregatedList struct { - // Id: [Output Only] Unique identifier for the resource; defined by the server. - Id string `json:"id,omitempty"` - // Items: A list of DiskTypesScopedList resources. - Items map[string]DiskTypesScopedList `json:"items,omitempty"` - // Kind: [Output Only] Type of resource. Always compute#diskTypeAggregatedList. - 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"` - // SelfLink: [Output Only] Server-defined URL for this resource. - SelfLink string `json:"selfLink,omitempty"` - // Unreachables: [Output Only] Unreachable resources. - Unreachables []string `json:"unreachables,omitempty"` - // Warning: [Output Only] Informational warning message. - Warning *DiskTypeAggregatedListWarning `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 or default values are - // omitted from API requests. See - // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more - // details. - 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. See - // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. - NullFields []string `json:"-"` -} - -func (s *DiskTypeAggregatedList) MarshalJSON() ([]byte, error) { - type NoMethod DiskTypeAggregatedList - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) -} - -// DiskTypeAggregatedListWarning: [Output Only] Informational warning message. -type DiskTypeAggregatedListWarning 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. +// CommitmentsScopedListWarning: [Output Only] Informational warning which +// replaces the list of commitments +// when the list is empty. +type CommitmentsScopedListWarning 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" - Warning about failed cleanup of transient changes made - // by a failed operation. + // by a failed + // operation. // "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was created. // "DEPRECATED_TYPE_USED" - When deploying and at least one of the resources - // has a type marked as deprecated + // has a type marked as + // deprecated // "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk that is // larger than image size. // "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the - // resources has a type marked as experimental + // resources has a type marked as + // experimental // "EXTERNAL_API_WARNING" - Warning that is present in an external api call // "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been - // overridden. Deprecated unused field. + // overridden. + // Deprecated unused field. // "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an injected // kernel, which is deprecated. // "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB" - A WEIGHTED_MAGLEV backend - // service is associated with a health check that is not of type - // HTTP/HTTPS/HTTP2. + // service is associated with a health check that is + // not of type HTTP/HTTPS/HTTP2. // "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a // exceedingly large number of resources // "LIST_OVERHEAD_QUOTA_EXCEED" - Resource can't be retrieved due to list - // overhead quota exceed which captures the amount of resources filtered out by + // overhead quota exceed + // which captures the amount of resources filtered out by // user-defined list filter. // "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is not - // assigned to an instance on the network. + // assigned to an instance on the + // network. // "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot ip // forward. // "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE" - The route's nextHopInstance - // URL refers to an instance that does not have an ipv6 interface on the same - // network as the route. + // URL refers to an instance that does not have an + // ipv6 interface on the same network as the route. // "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL refers to // an instance that does not exist. // "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance URL - // refers to an instance that is not on the same network as the route. + // refers to an instance that is not on the + // same network as the route. // "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not have a // status of RUNNING. // "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to continue - // the process despite the mentioned error. + // the process despite + // the mentioned error. // "NO_RESULTS_ON_PAGE" - No results are present on a particular list page. // "PARTIAL_SUCCESS" - Success is reported, but some results may be missing // due to errors + // "QUOTA_INFO_UNAVAILABLE" - Quota information is not available to client + // requests (e.g: + // regions.list). // "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource that - // requires a TOS they have not accepted. + // requires a TOS they have not + // accepted. // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a resource is // in use. // "RESOURCE_NOT_DELETED" - One or more of the resources set to auto-delete - // could not be deleted because they were in use. + // could not be deleted + // because they were in use. // "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is // ignored. // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in instance - // group manager is valid as such, but its application does not make a lot of - // sense, because it allows only single instance in instance group. + // group manager is valid as such, but + // its application does not make a lot of sense, because it allows only + // single instance in instance group. // "UNDECLARED_PROPERTIES" - When undeclared properties in the schema are // present // "UNREACHABLE" - A given scope cannot be reached. 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 []*DiskTypeAggregatedListWarningData `json:"data,omitempty"` + // Data: [Output Only] Metadata about this warning in key: + // value format. For example: + // + // "data": [ + // { + // "key": "scope", + // "value": "zones/us-east1-d" + // } + Data []*CommitmentsScopedListWarningData `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 @@ -8956,19 +11798,22 @@ type DiskTypeAggregatedListWarning struct { NullFields []string `json:"-"` } -func (s *DiskTypeAggregatedListWarning) MarshalJSON() ([]byte, error) { - type NoMethod DiskTypeAggregatedListWarning - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s CommitmentsScopedListWarning) MarshalJSON() ([]byte, error) { + type NoMethod CommitmentsScopedListWarning + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -type DiskTypeAggregatedListWarningData 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). +type CommitmentsScopedListWarningData 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"` @@ -8985,30 +11830,126 @@ type DiskTypeAggregatedListWarningData struct { NullFields []string `json:"-"` } -func (s *DiskTypeAggregatedListWarningData) MarshalJSON() ([]byte, error) { - type NoMethod DiskTypeAggregatedListWarningData - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s CommitmentsScopedListWarningData) MarshalJSON() ([]byte, error) { + type NoMethod CommitmentsScopedListWarningData + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -// DiskTypeList: Contains a list of disk types. -type DiskTypeList struct { +// CompositeHealthCheck: Represents a composite health check. +// +// A composite health check resource specifies the health source resources +// and +// the health destination resource to which the aggregated health result +// from +// the health source resources is delivered. +type CompositeHealthCheck struct { + // CreationTimestamp: Output only. [Output Only] Creation timestamp + // inRFC3339 + // text format. + CreationTimestamp string `json:"creationTimestamp,omitempty"` + // Description: An optional description of this resource. Provide this property + // when you + // create the resource. + Description string `json:"description,omitempty"` + // Fingerprint: Fingerprint of this resource. A hash of the contents stored in + // this object. + // This field is used in optimistic locking. This field will be ignored + // when + // inserting a CompositeHealthCheck. An up-to-date fingerprint + // must be provided in order to patch the CompositeHealthCheck; Otherwise, + // the request will fail with error 412 conditionNotMet. To see + // the latest fingerprint, make a get() request to retrieve + // the + // CompositeHealthCheck. + Fingerprint string `json:"fingerprint,omitempty"` + // HealthDestination: URL to the destination resource. Must be set. Must be + // aForwardingRule. The ForwardingRule must have + // load balancing scheme INTERNAL orINTERNAL_MANAGED and must be regional and + // in the same region + // as the CompositeHealthCheck (cross-region deployment forINTERNAL_MANAGED is + // not supported). Can be mutated. + HealthDestination string `json:"healthDestination,omitempty"` + // HealthSources: URLs to the HealthSource resources whose results are + // AND'ed. + // I.e. he aggregated result is is HEALTHY only if all sources + // are HEALTHY. Must have at least 1. Must not have more than 10. + // Must be regional and in the same region as theCompositeHealthCheck. Can be + // mutated. + HealthSources []string `json:"healthSources,omitempty"` + // Id: Output only. [Output Only] A unique identifier for this resource type. + // The server + // generates this identifier. + Id uint64 `json:"id,omitempty,string"` + // Kind: Output only. [Output Only] Type of the resource. + // Alwayscompute#compositeHealthCheck for composite health checks. + Kind string `json:"kind,omitempty"` + // Name: Name of the resource. Provided by the client when the resource is + // created. + // The name must be 1-63 characters long, and comply withRFC1035. + // 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. + Name string `json:"name,omitempty"` + // Region: Output only. [Output Only] URL of the region where the composite + // health check resides. + // This field applies only to the regional resource. You must specify + // this + // field as part of the HTTP request URL. It is not settable as a field in + // the request body. + Region string `json:"region,omitempty"` + // SelfLink: Output only. [Output Only] Server-defined URL for the resource. + SelfLink string `json:"selfLink,omitempty"` + // SelfLinkWithId: Output only. [Output Only] Server-defined URL with id for + // the resource. + SelfLinkWithId string `json:"selfLinkWithId,omitempty"` + + // ServerResponse contains the HTTP response code and headers from the server. + googleapi.ServerResponse `json:"-"` + // ForceSendFields is a list of field names (e.g. "CreationTimestamp") to + // unconditionally include in API requests. By default, fields with empty or + // default values are omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + ForceSendFields []string `json:"-"` + // NullFields is a list of field names (e.g. "CreationTimestamp") to include in + // API requests with the JSON null value. By default, fields with empty values + // are omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s CompositeHealthCheck) MarshalJSON() ([]byte, error) { + type NoMethod CompositeHealthCheck + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +// CompositeHealthCheckAggregatedList: Contains a list of +// CompositeHealthChecksScopedList. +type CompositeHealthCheckAggregatedList struct { // Id: [Output Only] Unique identifier for the resource; defined by the server. Id string `json:"id,omitempty"` - // Items: A list of DiskType resources. - Items []*DiskType `json:"items,omitempty"` - // Kind: [Output Only] Type of resource. Always compute#diskTypeList for disk - // types. + // Items: A list of CompositeHealthChecksScopedList resources. + Items map[string]CompositeHealthChecksScopedList `json:"items,omitempty"` + // Kind: Output only. Type of resource. 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. + // results for + // list requests. If the number of results is larger thanmaxResults, 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"` - // SelfLink: [Output Only] Server-defined URL for this resource. + // SelfLink: Output only. [Output Only] Server-defined URL for this resource. SelfLink string `json:"selfLink,omitempty"` + // Unreachables: Output only. [Output Only] Unreachable resources. + Unreachables []string `json:"unreachables,omitempty"` // Warning: [Output Only] Informational warning message. - Warning *DiskTypeListWarning `json:"warning,omitempty"` + Warning *CompositeHealthCheckAggregatedListWarning `json:"warning,omitempty"` // ServerResponse contains the HTTP response code and headers from the server. googleapi.ServerResponse `json:"-"` @@ -9025,76 +11966,99 @@ type DiskTypeList struct { NullFields []string `json:"-"` } -func (s *DiskTypeList) MarshalJSON() ([]byte, error) { - type NoMethod DiskTypeList - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s CompositeHealthCheckAggregatedList) MarshalJSON() ([]byte, error) { + type NoMethod CompositeHealthCheckAggregatedList + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -// DiskTypeListWarning: [Output Only] Informational warning message. -type DiskTypeListWarning 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. +// CompositeHealthCheckAggregatedListWarning: [Output Only] Informational +// warning message. +type CompositeHealthCheckAggregatedListWarning 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" - Warning about failed cleanup of transient changes made - // by a failed operation. + // by a failed + // operation. // "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was created. // "DEPRECATED_TYPE_USED" - When deploying and at least one of the resources - // has a type marked as deprecated + // has a type marked as + // deprecated // "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk that is // larger than image size. // "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the - // resources has a type marked as experimental + // resources has a type marked as + // experimental // "EXTERNAL_API_WARNING" - Warning that is present in an external api call // "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been - // overridden. Deprecated unused field. + // overridden. + // Deprecated unused field. // "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an injected // kernel, which is deprecated. // "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB" - A WEIGHTED_MAGLEV backend - // service is associated with a health check that is not of type - // HTTP/HTTPS/HTTP2. + // service is associated with a health check that is + // not of type HTTP/HTTPS/HTTP2. // "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a // exceedingly large number of resources // "LIST_OVERHEAD_QUOTA_EXCEED" - Resource can't be retrieved due to list - // overhead quota exceed which captures the amount of resources filtered out by + // overhead quota exceed + // which captures the amount of resources filtered out by // user-defined list filter. // "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is not - // assigned to an instance on the network. + // assigned to an instance on the + // network. // "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot ip // forward. // "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE" - The route's nextHopInstance - // URL refers to an instance that does not have an ipv6 interface on the same - // network as the route. + // URL refers to an instance that does not have an + // ipv6 interface on the same network as the route. // "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL refers to // an instance that does not exist. // "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance URL - // refers to an instance that is not on the same network as the route. + // refers to an instance that is not on the + // same network as the route. // "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not have a // status of RUNNING. // "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to continue - // the process despite the mentioned error. + // the process despite + // the mentioned error. // "NO_RESULTS_ON_PAGE" - No results are present on a particular list page. // "PARTIAL_SUCCESS" - Success is reported, but some results may be missing // due to errors + // "QUOTA_INFO_UNAVAILABLE" - Quota information is not available to client + // requests (e.g: + // regions.list). // "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource that - // requires a TOS they have not accepted. + // requires a TOS they have not + // accepted. // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a resource is // in use. // "RESOURCE_NOT_DELETED" - One or more of the resources set to auto-delete - // could not be deleted because they were in use. + // could not be deleted + // because they were in use. // "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is // ignored. // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in instance - // group manager is valid as such, but its application does not make a lot of - // sense, because it allows only single instance in instance group. + // group manager is valid as such, but + // its application does not make a lot of sense, because it allows only + // single instance in instance group. // "UNDECLARED_PROPERTIES" - When undeclared properties in the schema are // present // "UNREACHABLE" - A given scope cannot be reached. 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 []*DiskTypeListWarningData `json:"data,omitempty"` + // Data: [Output Only] Metadata about this warning in key: + // value format. For example: + // + // "data": [ + // { + // "key": "scope", + // "value": "zones/us-east1-d" + // } + Data []*CompositeHealthCheckAggregatedListWarningData `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 @@ -9110,19 +12074,22 @@ type DiskTypeListWarning struct { NullFields []string `json:"-"` } -func (s *DiskTypeListWarning) MarshalJSON() ([]byte, error) { - type NoMethod DiskTypeListWarning - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s CompositeHealthCheckAggregatedListWarning) MarshalJSON() ([]byte, error) { + type NoMethod CompositeHealthCheckAggregatedListWarning + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -type DiskTypeListWarningData 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). +type CompositeHealthCheckAggregatedListWarningData 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"` @@ -9139,101 +12106,177 @@ type DiskTypeListWarningData struct { NullFields []string `json:"-"` } -func (s *DiskTypeListWarningData) MarshalJSON() ([]byte, error) { - type NoMethod DiskTypeListWarningData - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s CompositeHealthCheckAggregatedListWarningData) MarshalJSON() ([]byte, error) { + type NoMethod CompositeHealthCheckAggregatedListWarningData + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -type DiskTypesScopedList struct { - // DiskTypes: [Output Only] A list of disk types contained in this scope. - DiskTypes []*DiskType `json:"diskTypes,omitempty"` - // Warning: [Output Only] Informational warning which replaces the list of disk - // types when the list is empty. - Warning *DiskTypesScopedListWarning `json:"warning,omitempty"` - // ForceSendFields is a list of field names (e.g. "DiskTypes") to +// CompositeHealthCheckHealth: Response message for +// RegionCompositeHealthChecks.GetHealth +type CompositeHealthCheckHealth struct { + // HealthSources: Health sources and their corresponding health states. + HealthSources []*CompositeHealthChecksGetHealthResponseHealthSourceHealth `json:"healthSources,omitempty"` + // HealthState: Health state of the CompositeHealthCheck. + // + // Possible values: + // "HEALTHY" + // "UNHEALTHY" + // "UNKNOWN" + HealthState string `json:"healthState,omitempty"` + // Kind: Output only. [Output Only] Type of resource. + // Alwayscompute#compositeHealthCheckHealth for the health of + // composite health checks. + Kind string `json:"kind,omitempty"` + + // ServerResponse contains the HTTP response code and headers from the server. + googleapi.ServerResponse `json:"-"` + // ForceSendFields is a list of field names (e.g. "HealthSources") to // unconditionally include in API requests. By default, fields with empty or // default values are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. ForceSendFields []string `json:"-"` - // NullFields is a list of field names (e.g. "DiskTypes") to include in API + // NullFields is a list of field names (e.g. "HealthSources") to include in API // requests with the JSON null value. By default, fields with empty values are // omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } -func (s *DiskTypesScopedList) MarshalJSON() ([]byte, error) { - type NoMethod DiskTypesScopedList - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s CompositeHealthCheckHealth) MarshalJSON() ([]byte, error) { + type NoMethod CompositeHealthCheckHealth + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -// DiskTypesScopedListWarning: [Output Only] Informational warning which -// replaces the list of disk types when the list is empty. -type DiskTypesScopedListWarning 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. +type CompositeHealthCheckList struct { + // Id: [Output Only] Unique identifier for the resource; defined by the server. + Id string `json:"id,omitempty"` + // Items: A list of CompositeHealthCheck resources. + Items []*CompositeHealthCheck `json:"items,omitempty"` + // Kind: Output only. [Output Only] Type of the resource. + // Alwayscompute#compositeHealthCheck for composite health checks. + 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 thanmaxResults, 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"` + // SelfLink: [Output Only] Server-defined URL for this resource. + SelfLink string `json:"selfLink,omitempty"` + // Warning: [Output Only] Informational warning message. + Warning *CompositeHealthCheckListWarning `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 or default values are + // omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + 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. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s CompositeHealthCheckList) MarshalJSON() ([]byte, error) { + type NoMethod CompositeHealthCheckList + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +// CompositeHealthCheckListWarning: [Output Only] Informational warning +// message. +type CompositeHealthCheckListWarning 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" - Warning about failed cleanup of transient changes made - // by a failed operation. + // by a failed + // operation. // "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was created. // "DEPRECATED_TYPE_USED" - When deploying and at least one of the resources - // has a type marked as deprecated + // has a type marked as + // deprecated // "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk that is // larger than image size. // "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the - // resources has a type marked as experimental + // resources has a type marked as + // experimental // "EXTERNAL_API_WARNING" - Warning that is present in an external api call // "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been - // overridden. Deprecated unused field. + // overridden. + // Deprecated unused field. // "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an injected // kernel, which is deprecated. // "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB" - A WEIGHTED_MAGLEV backend - // service is associated with a health check that is not of type - // HTTP/HTTPS/HTTP2. + // service is associated with a health check that is + // not of type HTTP/HTTPS/HTTP2. // "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a // exceedingly large number of resources // "LIST_OVERHEAD_QUOTA_EXCEED" - Resource can't be retrieved due to list - // overhead quota exceed which captures the amount of resources filtered out by + // overhead quota exceed + // which captures the amount of resources filtered out by // user-defined list filter. // "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is not - // assigned to an instance on the network. + // assigned to an instance on the + // network. // "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot ip // forward. // "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE" - The route's nextHopInstance - // URL refers to an instance that does not have an ipv6 interface on the same - // network as the route. + // URL refers to an instance that does not have an + // ipv6 interface on the same network as the route. // "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL refers to // an instance that does not exist. // "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance URL - // refers to an instance that is not on the same network as the route. + // refers to an instance that is not on the + // same network as the route. // "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not have a // status of RUNNING. // "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to continue - // the process despite the mentioned error. + // the process despite + // the mentioned error. // "NO_RESULTS_ON_PAGE" - No results are present on a particular list page. // "PARTIAL_SUCCESS" - Success is reported, but some results may be missing // due to errors + // "QUOTA_INFO_UNAVAILABLE" - Quota information is not available to client + // requests (e.g: + // regions.list). // "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource that - // requires a TOS they have not accepted. + // requires a TOS they have not + // accepted. // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a resource is // in use. // "RESOURCE_NOT_DELETED" - One or more of the resources set to auto-delete - // could not be deleted because they were in use. + // could not be deleted + // because they were in use. // "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is // ignored. // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in instance - // group manager is valid as such, but its application does not make a lot of - // sense, because it allows only single instance in instance group. + // group manager is valid as such, but + // its application does not make a lot of sense, because it allows only + // single instance in instance group. // "UNDECLARED_PROPERTIES" - When undeclared properties in the schema are // present // "UNREACHABLE" - A given scope cannot be reached. 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 []*DiskTypesScopedListWarningData `json:"data,omitempty"` + // Data: [Output Only] Metadata about this warning in key: + // value format. For example: + // + // "data": [ + // { + // "key": "scope", + // "value": "zones/us-east1-d" + // } + Data []*CompositeHealthCheckListWarningData `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 @@ -9249,19 +12292,22 @@ type DiskTypesScopedListWarning struct { NullFields []string `json:"-"` } -func (s *DiskTypesScopedListWarning) MarshalJSON() ([]byte, error) { - type NoMethod DiskTypesScopedListWarning - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s CompositeHealthCheckListWarning) MarshalJSON() ([]byte, error) { + type NoMethod CompositeHealthCheckListWarning + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -type DiskTypesScopedListWarningData 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). +type CompositeHealthCheckListWarningData 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"` @@ -9278,165 +12324,154 @@ type DiskTypesScopedListWarningData struct { NullFields []string `json:"-"` } -func (s *DiskTypesScopedListWarningData) MarshalJSON() ([]byte, error) { - type NoMethod DiskTypesScopedListWarningData - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) -} - -type DisksAddResourcePoliciesRequest struct { - // ResourcePolicies: Full or relative path to the resource policy to be added - // to this disk. You can only specify one resource policy. - ResourcePolicies []string `json:"resourcePolicies,omitempty"` - // ForceSendFields is a list of field names (e.g. "ResourcePolicies") to - // unconditionally include in API requests. By default, fields with empty or - // default values are omitted from API requests. See - // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more - // details. - ForceSendFields []string `json:"-"` - // NullFields is a list of field names (e.g. "ResourcePolicies") to include in - // API requests with the JSON null value. By default, fields with empty values - // are omitted from API requests. See - // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. - NullFields []string `json:"-"` -} - -func (s *DisksAddResourcePoliciesRequest) MarshalJSON() ([]byte, error) { - type NoMethod DisksAddResourcePoliciesRequest - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s CompositeHealthCheckListWarningData) MarshalJSON() ([]byte, error) { + type NoMethod CompositeHealthCheckListWarningData + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -type DisksRemoveResourcePoliciesRequest struct { - // ResourcePolicies: Resource policies to be removed from this disk. - ResourcePolicies []string `json:"resourcePolicies,omitempty"` - // ForceSendFields is a list of field names (e.g. "ResourcePolicies") to +type CompositeHealthChecksGetHealthResponseHealthSourceHealth struct { + // HealthState: Health state of the associated HealthSource resource. + // + // Possible values: + // "HEALTHY" + // "UNHEALTHY" + // "UNKNOWN" + HealthState string `json:"healthState,omitempty"` + // Source: Fully qualified URL of the associated HealthSource resource. + Source string `json:"source,omitempty"` + // ForceSendFields is a list of field names (e.g. "HealthState") to // unconditionally include in API requests. By default, fields with empty or // default values are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. ForceSendFields []string `json:"-"` - // NullFields is a list of field names (e.g. "ResourcePolicies") to include in - // API requests with the JSON null value. By default, fields with empty values - // are omitted from API requests. See - // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. - NullFields []string `json:"-"` -} - -func (s *DisksRemoveResourcePoliciesRequest) MarshalJSON() ([]byte, error) { - type NoMethod DisksRemoveResourcePoliciesRequest - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) -} - -type DisksResizeRequest struct { - // SizeGb: The new size of the persistent disk, which is specified in GB. - SizeGb int64 `json:"sizeGb,omitempty,string"` - // ForceSendFields is a list of field names (e.g. "SizeGb") to unconditionally - // include in API requests. By default, fields with empty or default values are - // omitted from API requests. See - // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more - // details. - ForceSendFields []string `json:"-"` - // NullFields is a list of field names (e.g. "SizeGb") to include in API + // NullFields is a list of field names (e.g. "HealthState") to include in API // requests with the JSON null value. By default, fields with empty values are // omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } -func (s *DisksResizeRequest) MarshalJSON() ([]byte, error) { - type NoMethod DisksResizeRequest - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s CompositeHealthChecksGetHealthResponseHealthSourceHealth) MarshalJSON() ([]byte, error) { + type NoMethod CompositeHealthChecksGetHealthResponseHealthSourceHealth + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -type DisksScopedList struct { - // Disks: [Output Only] A list of disks contained in this scope. - Disks []*Disk `json:"disks,omitempty"` - // Warning: [Output Only] Informational warning which replaces the list of - // disks when the list is empty. - Warning *DisksScopedListWarning `json:"warning,omitempty"` - // ForceSendFields is a list of field names (e.g. "Disks") to unconditionally - // include in API requests. By default, fields with empty or default values are - // omitted from API requests. See +type CompositeHealthChecksScopedList struct { + // CompositeHealthChecks: A list of CompositeHealthChecks contained in this + // scope. + CompositeHealthChecks []*CompositeHealthCheck `json:"compositeHealthChecks,omitempty"` + // Warning: Informational warning which replaces the list of composite health + // checks + // when the list is empty. + Warning *CompositeHealthChecksScopedListWarning `json:"warning,omitempty"` + // ForceSendFields is a list of field names (e.g. "CompositeHealthChecks") to + // unconditionally include in API requests. By default, fields with empty or + // default values are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. ForceSendFields []string `json:"-"` - // NullFields is a list of field names (e.g. "Disks") to include in API - // requests with the JSON null value. By default, fields with empty values are - // omitted from API requests. See + // NullFields is a list of field names (e.g. "CompositeHealthChecks") to + // include in API requests with the JSON null value. By default, fields with + // empty values are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } -func (s *DisksScopedList) MarshalJSON() ([]byte, error) { - type NoMethod DisksScopedList - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s CompositeHealthChecksScopedList) MarshalJSON() ([]byte, error) { + type NoMethod CompositeHealthChecksScopedList + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -// DisksScopedListWarning: [Output Only] Informational warning which replaces -// the list of disks when the list is empty. -type DisksScopedListWarning 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. +// CompositeHealthChecksScopedListWarning: Informational warning which replaces +// the list of composite health checks +// when the list is empty. +type CompositeHealthChecksScopedListWarning 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" - Warning about failed cleanup of transient changes made - // by a failed operation. + // by a failed + // operation. // "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was created. // "DEPRECATED_TYPE_USED" - When deploying and at least one of the resources - // has a type marked as deprecated + // has a type marked as + // deprecated // "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk that is // larger than image size. // "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the - // resources has a type marked as experimental + // resources has a type marked as + // experimental // "EXTERNAL_API_WARNING" - Warning that is present in an external api call // "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been - // overridden. Deprecated unused field. + // overridden. + // Deprecated unused field. // "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an injected // kernel, which is deprecated. // "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB" - A WEIGHTED_MAGLEV backend - // service is associated with a health check that is not of type - // HTTP/HTTPS/HTTP2. + // service is associated with a health check that is + // not of type HTTP/HTTPS/HTTP2. // "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a // exceedingly large number of resources // "LIST_OVERHEAD_QUOTA_EXCEED" - Resource can't be retrieved due to list - // overhead quota exceed which captures the amount of resources filtered out by + // overhead quota exceed + // which captures the amount of resources filtered out by // user-defined list filter. // "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is not - // assigned to an instance on the network. + // assigned to an instance on the + // network. // "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot ip // forward. // "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE" - The route's nextHopInstance - // URL refers to an instance that does not have an ipv6 interface on the same - // network as the route. + // URL refers to an instance that does not have an + // ipv6 interface on the same network as the route. // "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL refers to // an instance that does not exist. // "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance URL - // refers to an instance that is not on the same network as the route. + // refers to an instance that is not on the + // same network as the route. // "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not have a // status of RUNNING. // "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to continue - // the process despite the mentioned error. + // the process despite + // the mentioned error. // "NO_RESULTS_ON_PAGE" - No results are present on a particular list page. // "PARTIAL_SUCCESS" - Success is reported, but some results may be missing // due to errors + // "QUOTA_INFO_UNAVAILABLE" - Quota information is not available to client + // requests (e.g: + // regions.list). // "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource that - // requires a TOS they have not accepted. + // requires a TOS they have not + // accepted. // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a resource is // in use. // "RESOURCE_NOT_DELETED" - One or more of the resources set to auto-delete - // could not be deleted because they were in use. + // could not be deleted + // because they were in use. // "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is // ignored. // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in instance - // group manager is valid as such, but its application does not make a lot of - // sense, because it allows only single instance in instance group. + // group manager is valid as such, but + // its application does not make a lot of sense, because it allows only + // single instance in instance group. // "UNDECLARED_PROPERTIES" - When undeclared properties in the schema are // present // "UNREACHABLE" - A given scope cannot be reached. 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 []*DisksScopedListWarningData `json:"data,omitempty"` + // Data: [Output Only] Metadata about this warning in key: + // value format. For example: + // + // "data": [ + // { + // "key": "scope", + // "value": "zones/us-east1-d" + // } + Data []*CompositeHealthChecksScopedListWarningData `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 @@ -9452,19 +12487,22 @@ type DisksScopedListWarning struct { NullFields []string `json:"-"` } -func (s *DisksScopedListWarning) MarshalJSON() ([]byte, error) { - type NoMethod DisksScopedListWarning - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s CompositeHealthChecksScopedListWarning) MarshalJSON() ([]byte, error) { + type NoMethod CompositeHealthChecksScopedListWarning + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -type DisksScopedListWarningData 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). +type CompositeHealthChecksScopedListWarningData 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"` @@ -9481,382 +12519,400 @@ type DisksScopedListWarningData struct { NullFields []string `json:"-"` } -func (s *DisksScopedListWarningData) MarshalJSON() ([]byte, error) { - type NoMethod DisksScopedListWarningData - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) -} - -type DisksStartAsyncReplicationRequest struct { - // AsyncSecondaryDisk: The secondary disk to start asynchronous replication to. - // 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 - // /disks/disk - - // https://www.googleapis.com/compute/v1/projects/project/regions/region - // /disks/disk - projects/project/zones/zone/disks/disk - - // projects/project/regions/region/disks/disk - zones/zone/disks/disk - - // regions/region/disks/disk - AsyncSecondaryDisk string `json:"asyncSecondaryDisk,omitempty"` - // ForceSendFields is a list of field names (e.g. "AsyncSecondaryDisk") to - // unconditionally include in API requests. By default, fields with empty or - // default values are omitted from API requests. See - // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more - // details. - ForceSendFields []string `json:"-"` - // NullFields is a list of field names (e.g. "AsyncSecondaryDisk") to include - // in API requests with the JSON null value. By default, fields with empty - // values are omitted from API requests. See - // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. - NullFields []string `json:"-"` -} - -func (s *DisksStartAsyncReplicationRequest) MarshalJSON() ([]byte, error) { - type NoMethod DisksStartAsyncReplicationRequest - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s CompositeHealthChecksScopedListWarningData) MarshalJSON() ([]byte, error) { + type NoMethod CompositeHealthChecksScopedListWarningData + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -// DisksStopGroupAsyncReplicationResource: A transient resource used in -// compute.disks.stopGroupAsyncReplication and -// compute.regionDisks.stopGroupAsyncReplication. It is only used to process -// requests and is not persisted. -type DisksStopGroupAsyncReplicationResource struct { - // ResourcePolicy: The URL of the DiskConsistencyGroupPolicy for the group of - // disks to stop. This may be a full or partial URL, such as: - - // https://www.googleapis.com/compute/v1/projects/project/regions/region - // /resourcePolicies/resourcePolicy - - // projects/project/regions/region/resourcePolicies/resourcePolicy - - // regions/region/resourcePolicies/resourcePolicy - ResourcePolicy string `json:"resourcePolicy,omitempty"` - // ForceSendFields is a list of field names (e.g. "ResourcePolicy") to - // unconditionally include in API requests. By default, fields with empty or +// ConfidentialInstanceConfig: A set of Confidential Instance options. +type ConfidentialInstanceConfig struct { + // ConfidentialInstanceType: Defines the type of technology used by the + // confidential instance. + // + // Possible values: + // "CCA" - Arm Confidential Compute Architecture. + // "CONFIDENTIAL_INSTANCE_TYPE_UNSPECIFIED" - No type specified. Do not use + // this value. + // "SEV" - AMD Secure Encrypted Virtualization. + // "SEV_SNP" - AMD Secure Encrypted Virtualization - Secure Nested Paging. + // "TDX" - Intel Trust Domain eXtension. + ConfidentialInstanceType string `json:"confidentialInstanceType,omitempty"` + // EnableConfidentialCompute: Defines whether the instance should have + // confidential compute enabled. + EnableConfidentialCompute bool `json:"enableConfidentialCompute,omitempty"` + // ForceSendFields is a list of field names (e.g. "ConfidentialInstanceType") + // to unconditionally include in API requests. By default, fields with empty or // default values are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. ForceSendFields []string `json:"-"` - // NullFields is a list of field names (e.g. "ResourcePolicy") to include in - // API requests with the JSON null value. By default, fields with empty values - // are omitted from API requests. See + // NullFields is a list of field names (e.g. "ConfidentialInstanceType") to + // include in API requests with the JSON null value. By default, fields with + // empty values are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } -func (s *DisksStopGroupAsyncReplicationResource) MarshalJSON() ([]byte, error) { - type NoMethod DisksStopGroupAsyncReplicationResource - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s ConfidentialInstanceConfig) MarshalJSON() ([]byte, error) { + type NoMethod ConfidentialInstanceConfig + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -// DisplayDevice: A set of Display Device options -type DisplayDevice struct { - // EnableDisplay: Defines whether the instance has Display enabled. - EnableDisplay bool `json:"enableDisplay,omitempty"` - // ForceSendFields is a list of field names (e.g. "EnableDisplay") to +// ConnectionDraining: Message containing connection draining configuration. +type ConnectionDraining struct { + // DrainingTimeoutSec: Configures a duration timeout for existing requests on a + // removed backend + // instance. For supported load balancers and protocols, as described + // inEnabling + // connection draining. + DrainingTimeoutSec int64 `json:"drainingTimeoutSec,omitempty"` + // ForceSendFields is a list of field names (e.g. "DrainingTimeoutSec") to // unconditionally include in API requests. By default, fields with empty or // default values are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. ForceSendFields []string `json:"-"` - // NullFields is a list of field names (e.g. "EnableDisplay") to include in API - // requests with the JSON null value. By default, fields with empty values are - // omitted from API requests. See + // NullFields is a list of field names (e.g. "DrainingTimeoutSec") to include + // in API requests with the JSON null value. By default, fields with empty + // values are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } -func (s *DisplayDevice) MarshalJSON() ([]byte, error) { - type NoMethod DisplayDevice - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s ConnectionDraining) MarshalJSON() ([]byte, error) { + type NoMethod ConnectionDraining + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -type DistributionPolicy struct { - // TargetShape: The distribution shape to which the group converges either - // proactively or on resize events (depending on the value set in - // updatePolicy.instanceRedistributionType). +// ConsistentHashLoadBalancerSettings: This message defines settings for a +// consistent hash style load balancer. +type ConsistentHashLoadBalancerSettings struct { + // HttpCookie: Hash is based on HTTP Cookie. This field describes a HTTP cookie + // that will + // be used as the hash key for the consistent hash load balancer. If the + // cookie is not present, it will be generated. This field is applicable if + // the sessionAffinity is set to HTTP_COOKIE. // - // Possible values: - // "ANY" - The group picks zones for creating VM instances to fulfill the - // requested number of VMs within present resource constraints and to maximize - // utilization of unused zonal reservations. Recommended for batch workloads - // that do not require high availability. - // "ANY_SINGLE_ZONE" - The group creates all VM instances within a single - // zone. The zone is selected based on the present resource constraints and to - // maximize utilization of unused zonal reservations. Recommended for batch - // workloads with heavy interprocess communication. - // "BALANCED" - The group prioritizes acquisition of resources, scheduling - // VMs in zones where resources are available while distributing VMs as evenly - // as possible across selected zones to minimize the impact of zonal failure. - // Recommended for highly available serving workloads. - // "EVEN" - The group schedules VM instance creation and deletion to achieve - // and maintain an even number of managed instances across the selected zones. - // The distribution is even when the number of managed instances does not - // differ by more than 1 between any two zones. Recommended for highly - // available serving workloads. - TargetShape string `json:"targetShape,omitempty"` - // Zones: Zones where the regional managed instance group will create and - // manage its instances. - Zones []*DistributionPolicyZoneConfiguration `json:"zones,omitempty"` - // ForceSendFields is a list of field names (e.g. "TargetShape") to + // Not supported when the backend service is referenced by a URL map that + // is + // bound to target gRPC proxy that has validateForProxyless field set to true. + HttpCookie *ConsistentHashLoadBalancerSettingsHttpCookie `json:"httpCookie,omitempty"` + // HttpHeaderName: The hash based on the value of the specified header field. + // This field is + // applicable if the sessionAffinity is set toHEADER_FIELD. + HttpHeaderName string `json:"httpHeaderName,omitempty"` + // MinimumRingSize: The minimum number of virtual nodes to use for the hash + // ring. Defaults to + // 1024. Larger ring sizes result in more granular load distributions. If + // the + // number of hosts in the load balancing pool is larger than the ring + // size, + // each host will be assigned a single virtual node. + MinimumRingSize int64 `json:"minimumRingSize,omitempty,string"` + // ForceSendFields is a list of field names (e.g. "HttpCookie") to // unconditionally include in API requests. By default, fields with empty or // default values are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. ForceSendFields []string `json:"-"` - // NullFields is a list of field names (e.g. "TargetShape") to include in API + // NullFields is a list of field names (e.g. "HttpCookie") to include in API // requests with the JSON null value. By default, fields with empty values are // omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } -func (s *DistributionPolicy) MarshalJSON() ([]byte, error) { - type NoMethod DistributionPolicy - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s ConsistentHashLoadBalancerSettings) MarshalJSON() ([]byte, error) { + type NoMethod ConsistentHashLoadBalancerSettings + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -type DistributionPolicyZoneConfiguration struct { - // Zone: The URL of the zone. The zone must exist in the region where the - // managed instance group is located. - Zone string `json:"zone,omitempty"` - // ForceSendFields is a list of field names (e.g. "Zone") to unconditionally +// ConsistentHashLoadBalancerSettingsHttpCookie: The information about the HTTP +// Cookie on which the hash function is based +// for load balancing policies that use a consistent hash. +type ConsistentHashLoadBalancerSettingsHttpCookie struct { + // Name: Name of the cookie. + Name string `json:"name,omitempty"` + // Path: Path to set for the cookie. + Path string `json:"path,omitempty"` + // Ttl: Lifetime of the cookie. + Ttl *Duration `json:"ttl,omitempty"` + // ForceSendFields is a list of field names (e.g. "Name") to unconditionally // include in API requests. By default, fields with empty or default values are // omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. ForceSendFields []string `json:"-"` - // NullFields is a list of field names (e.g. "Zone") to include in API requests + // NullFields is a list of field names (e.g. "Name") to include in API requests // with the JSON null value. By default, fields with empty values are omitted // from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } -func (s *DistributionPolicyZoneConfiguration) MarshalJSON() ([]byte, error) { - type NoMethod DistributionPolicyZoneConfiguration - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s ConsistentHashLoadBalancerSettingsHttpCookie) MarshalJSON() ([]byte, error) { + type NoMethod ConsistentHashLoadBalancerSettingsHttpCookie + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -// Duration: A Duration represents a fixed-length span of time represented as a -// count of seconds and fractions of seconds at nanosecond resolution. It is -// independent of any calendar and concepts like "day" or "month". Range is -// approximately 10,000 years. -type Duration struct { - // Nanos: Span of time that's a fraction of a second at nanosecond resolution. - // Durations less than one second are represented with a 0 `seconds` field and - // a positive `nanos` field. Must be from 0 to 999,999,999 inclusive. - Nanos int64 `json:"nanos,omitempty"` - // Seconds: Span of time at a resolution of a second. Must be from 0 to - // 315,576,000,000 inclusive. Note: these bounds are computed from: 60 sec/min - // * 60 min/hr * 24 hr/day * 365.25 days/year * 10000 years - Seconds int64 `json:"seconds,omitempty,string"` - // ForceSendFields is a list of field names (e.g. "Nanos") to unconditionally - // include in API requests. By default, fields with empty or default values are - // omitted from API requests. See +// CorsPolicy: The specification for allowing client-side cross-origin +// requests. For more +// information about the W3C recommendation for cross-origin resource +// sharing +// (CORS), see Fetch API Living +// Standard. +type CorsPolicy struct { + // AllowCredentials: In response to a preflight request, setting this to + // true + // indicates that + // the actual request can include user credentials. This field translates + // to + // the Access-Control-Allow-Credentials header. + // + // Default is false. + AllowCredentials bool `json:"allowCredentials,omitempty"` + // AllowHeaders: Specifies the content for the + // Access-Control-Allow-Headers + // header. + AllowHeaders []string `json:"allowHeaders,omitempty"` + // AllowMethods: Specifies the content for the + // Access-Control-Allow-Methods + // header. + AllowMethods []string `json:"allowMethods,omitempty"` + // AllowOriginRegexes: Specifies a regular expression that matches allowed + // origins. For + // more information, see regular expression syntax. + // + // An origin is allowed if it matches either an item inallowOrigins or an item + // inallowOriginRegexes. + // + // Regular expressions can only be used when the loadBalancingScheme is + // set to INTERNAL_SELF_MANAGED. + AllowOriginRegexes []string `json:"allowOriginRegexes,omitempty"` + // AllowOrigins: Specifies the list of origins that is allowed to do CORS + // requests. + // + // An origin is allowed if it matches either an item inallowOrigins or an item + // inallowOriginRegexes. + AllowOrigins []string `json:"allowOrigins,omitempty"` + // Disabled: If true, disables the CORS policy. + // The default value is false, which indicates that the CORS + // policy is in effect. + Disabled bool `json:"disabled,omitempty"` + // ExposeHeaders: Specifies the content for the + // Access-Control-Expose-Headers + // header. + ExposeHeaders []string `json:"exposeHeaders,omitempty"` + // MaxAge: Specifies how long results of a preflight request can be cached + // in + // seconds. This field translates to the Access-Control-Max-Age + // header. + MaxAge int64 `json:"maxAge,omitempty"` + // ForceSendFields is a list of field names (e.g. "AllowCredentials") to + // unconditionally include in API requests. By default, fields with empty or + // default values are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. ForceSendFields []string `json:"-"` - // NullFields is a list of field names (e.g. "Nanos") to include in API - // requests with the JSON null value. By default, fields with empty values are - // omitted from API requests. See + // NullFields is a list of field names (e.g. "AllowCredentials") to include in + // API requests with the JSON null value. By default, fields with empty values + // are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } -func (s *Duration) MarshalJSON() ([]byte, error) { - type NoMethod Duration - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) -} - -// ErrorInfo: Describes the cause of the error with structured details. Example -// of an error when contacting the "pubsub.googleapis.com" API when it is not -// enabled: { "reason": "API_DISABLED" "domain": "googleapis.com" "metadata": { -// "resource": "projects/123", "service": "pubsub.googleapis.com" } } This -// response indicates that the pubsub.googleapis.com API is not enabled. -// Example of an error that is returned when attempting to create a Spanner -// instance in a region that is out of stock: { "reason": "STOCKOUT" "domain": -// "spanner.googleapis.com", "metadata": { "availableRegions": -// "us-central1,us-east2" } } -type ErrorInfo struct { - // Domain: The logical grouping to which the "reason" belongs. The error domain - // is typically the registered service name of the tool or product that - // generates the error. Example: "pubsub.googleapis.com". If the error is - // generated by some common infrastructure, the error domain must be a globally - // unique value that identifies the infrastructure. For Google API - // infrastructure, the error domain is "googleapis.com". - Domain string `json:"domain,omitempty"` - // Metadatas: Additional structured details about this error. Keys must match - // /a-z+/ but should ideally be lowerCamelCase. Also they must be limited to 64 - // characters in length. When identifying the current value of an exceeded - // limit, the units should be contained in the key, not the value. For example, - // rather than {"instanceLimit": "100/request"}, should be returned as, - // {"instanceLimitPerRequest": "100"}, if the client exceeds the number of - // instances that can be created in a single (batch) request. - Metadatas map[string]string `json:"metadatas,omitempty"` - // Reason: The reason of the error. This is a constant value that identifies - // the proximate cause of the error. Error reasons are unique within a - // particular domain of errors. This should be at most 63 characters and match - // a regular expression of `A-Z+[A-Z0-9]`, which represents UPPER_SNAKE_CASE. - Reason string `json:"reason,omitempty"` - // ForceSendFields is a list of field names (e.g. "Domain") to unconditionally - // include in API requests. By default, fields with empty or default values are - // omitted from API requests. See - // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more - // details. - ForceSendFields []string `json:"-"` - // NullFields is a list of field names (e.g. "Domain") to include in API - // requests with the JSON null value. By default, fields with empty values are - // omitted from API requests. See - // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. - NullFields []string `json:"-"` +func (s CorsPolicy) MarshalJSON() ([]byte, error) { + type NoMethod CorsPolicy + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -func (s *ErrorInfo) MarshalJSON() ([]byte, error) { - type NoMethod ErrorInfo - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) -} +// CrossSiteNetwork: A resource that represents a cross-site network. +// +// You can use cross-site networks to connect your on-premises networks to +// each other through Interconnect connections. +type CrossSiteNetwork struct { + // CreationTimestamp: Output only. [Output Only] Creation timestamp + // inRFC3339 + // text format. + CreationTimestamp string `json:"creationTimestamp,omitempty"` + // Description: An optional description of the cross-site network. + Description string `json:"description,omitempty"` + // Id: Output only. [Output Only] The unique identifier for the resource type. + // The server + // generates this identifier. + Id uint64 `json:"id,omitempty,string"` + // Kind: Output only. [Output Only] Type of the resource. + // Alwayscompute#crossSiteNetwork for cross-site networks. + Kind string `json:"kind,omitempty"` + // Name: Name of the resource. Provided by the client when the resource is + // created. + // The name must be 1-63 characters long, and comply withRFC1035. + // 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. + Name string `json:"name,omitempty"` + // SelfLink: Output only. [Output Only] Server-defined URL for the resource. + SelfLink string `json:"selfLink,omitempty"` -type ExchangedPeeringRoute struct { - // DestRange: The destination range of the route. - DestRange string `json:"destRange,omitempty"` - // Imported: True if the peering route has been imported from a peer. The - // actual import happens if the field networkPeering.importCustomRoutes is true - // for this network, and networkPeering.exportCustomRoutes is true for the peer - // network, and the import does not result in a route conflict. - Imported bool `json:"imported,omitempty"` - // NextHopRegion: The region of peering route next hop, only applies to dynamic - // routes. - NextHopRegion string `json:"nextHopRegion,omitempty"` - // Priority: The priority of the peering route. - Priority int64 `json:"priority,omitempty"` - // Type: The type of the peering route. - // - // Possible values: - // "DYNAMIC_PEERING_ROUTE" - For routes exported from local network. - // "STATIC_PEERING_ROUTE" - The peering route. - // "SUBNET_PEERING_ROUTE" - The peering route corresponding to subnetwork - // range. - Type string `json:"type,omitempty"` - // ForceSendFields is a list of field names (e.g. "DestRange") to + // ServerResponse contains the HTTP response code and headers from the server. + googleapi.ServerResponse `json:"-"` + // ForceSendFields is a list of field names (e.g. "CreationTimestamp") to // unconditionally include in API requests. By default, fields with empty or // default values are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. ForceSendFields []string `json:"-"` - // NullFields is a list of field names (e.g. "DestRange") to include in API - // requests with the JSON null value. By default, fields with empty values are - // omitted from API requests. See + // NullFields is a list of field names (e.g. "CreationTimestamp") to include in + // API requests with the JSON null value. By default, fields with empty values + // are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } -func (s *ExchangedPeeringRoute) MarshalJSON() ([]byte, error) { - type NoMethod ExchangedPeeringRoute - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s CrossSiteNetwork) MarshalJSON() ([]byte, error) { + type NoMethod CrossSiteNetwork + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -type ExchangedPeeringRoutesList struct { +// CrossSiteNetworkList: Response to the list request that contains a list of +// cross-site networks. +type CrossSiteNetworkList struct { + Etag string `json:"etag,omitempty"` // Id: [Output Only] Unique identifier for the resource; defined by the server. Id string `json:"id,omitempty"` - // Items: A list of ExchangedPeeringRoute resources. - Items []*ExchangedPeeringRoute `json:"items,omitempty"` - // Kind: [Output Only] Type of resource. Always - // compute#exchangedPeeringRoutesList for exchanged peering routes lists. + // Items: A list of CrossSiteNetwork resources. + Items []*CrossSiteNetwork `json:"items,omitempty"` + // Kind: Output only. [Output Only] Type of the resource. + // Alwayscompute#crossSiteNetwork for cross-site networks. 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. + // results for + // list requests. If the number of results is larger thanmaxResults, 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"` // SelfLink: [Output Only] Server-defined URL for this resource. SelfLink string `json:"selfLink,omitempty"` + // Unreachables: Output only. [Output Only] Unreachable + // resources. + // end_interface: MixerListResponseWithEtagBuilder + Unreachables []string `json:"unreachables,omitempty"` // Warning: [Output Only] Informational warning message. - Warning *ExchangedPeeringRoutesListWarning `json:"warning,omitempty"` + Warning *CrossSiteNetworkListWarning `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 + // ForceSendFields is a list of field names (e.g. "Etag") to unconditionally // include in API requests. By default, fields with empty or default values are // omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. ForceSendFields []string `json:"-"` - // NullFields is a list of field names (e.g. "Id") to include in API requests + // NullFields is a list of field names (e.g. "Etag") to include in API requests // with the JSON null value. By default, fields with empty values are omitted // from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } -func (s *ExchangedPeeringRoutesList) MarshalJSON() ([]byte, error) { - type NoMethod ExchangedPeeringRoutesList - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s CrossSiteNetworkList) MarshalJSON() ([]byte, error) { + type NoMethod CrossSiteNetworkList + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -// ExchangedPeeringRoutesListWarning: [Output Only] Informational warning -// message. -type ExchangedPeeringRoutesListWarning 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. +// CrossSiteNetworkListWarning: [Output Only] Informational warning message. +type CrossSiteNetworkListWarning 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" - Warning about failed cleanup of transient changes made - // by a failed operation. + // by a failed + // operation. // "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was created. // "DEPRECATED_TYPE_USED" - When deploying and at least one of the resources - // has a type marked as deprecated + // has a type marked as + // deprecated // "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk that is // larger than image size. // "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the - // resources has a type marked as experimental + // resources has a type marked as + // experimental // "EXTERNAL_API_WARNING" - Warning that is present in an external api call // "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been - // overridden. Deprecated unused field. + // overridden. + // Deprecated unused field. // "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an injected // kernel, which is deprecated. // "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB" - A WEIGHTED_MAGLEV backend - // service is associated with a health check that is not of type - // HTTP/HTTPS/HTTP2. + // service is associated with a health check that is + // not of type HTTP/HTTPS/HTTP2. // "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a // exceedingly large number of resources // "LIST_OVERHEAD_QUOTA_EXCEED" - Resource can't be retrieved due to list - // overhead quota exceed which captures the amount of resources filtered out by + // overhead quota exceed + // which captures the amount of resources filtered out by // user-defined list filter. // "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is not - // assigned to an instance on the network. + // assigned to an instance on the + // network. // "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot ip // forward. // "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE" - The route's nextHopInstance - // URL refers to an instance that does not have an ipv6 interface on the same - // network as the route. + // URL refers to an instance that does not have an + // ipv6 interface on the same network as the route. // "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL refers to // an instance that does not exist. // "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance URL - // refers to an instance that is not on the same network as the route. + // refers to an instance that is not on the + // same network as the route. // "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not have a // status of RUNNING. // "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to continue - // the process despite the mentioned error. + // the process despite + // the mentioned error. // "NO_RESULTS_ON_PAGE" - No results are present on a particular list page. // "PARTIAL_SUCCESS" - Success is reported, but some results may be missing // due to errors + // "QUOTA_INFO_UNAVAILABLE" - Quota information is not available to client + // requests (e.g: + // regions.list). // "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource that - // requires a TOS they have not accepted. + // requires a TOS they have not + // accepted. // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a resource is // in use. // "RESOURCE_NOT_DELETED" - One or more of the resources set to auto-delete - // could not be deleted because they were in use. + // could not be deleted + // because they were in use. // "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is // ignored. // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in instance - // group manager is valid as such, but its application does not make a lot of - // sense, because it allows only single instance in instance group. + // group manager is valid as such, but + // its application does not make a lot of sense, because it allows only + // single instance in instance group. // "UNDECLARED_PROPERTIES" - When undeclared properties in the schema are // present // "UNREACHABLE" - A given scope cannot be reached. 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 []*ExchangedPeeringRoutesListWarningData `json:"data,omitempty"` + // Data: [Output Only] Metadata about this warning in key: + // value format. For example: + // + // "data": [ + // { + // "key": "scope", + // "value": "zones/us-east1-d" + // } + Data []*CrossSiteNetworkListWarningData `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 @@ -9872,19 +12928,22 @@ type ExchangedPeeringRoutesListWarning struct { NullFields []string `json:"-"` } -func (s *ExchangedPeeringRoutesListWarning) MarshalJSON() ([]byte, error) { - type NoMethod ExchangedPeeringRoutesListWarning - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s CrossSiteNetworkListWarning) MarshalJSON() ([]byte, error) { + type NoMethod CrossSiteNetworkListWarning + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -type ExchangedPeeringRoutesListWarningData 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). +type CrossSiteNetworkListWarningData 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"` @@ -9901,590 +12960,912 @@ type ExchangedPeeringRoutesListWarningData struct { NullFields []string `json:"-"` } -func (s *ExchangedPeeringRoutesListWarningData) MarshalJSON() ([]byte, error) { - type NoMethod ExchangedPeeringRoutesListWarningData - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s CrossSiteNetworkListWarningData) MarshalJSON() ([]byte, error) { + type NoMethod CrossSiteNetworkListWarningData + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -// Expr: Represents a textual expression in the Common Expression Language -// (CEL) syntax. CEL is a C-like expression language. The syntax and semantics -// of CEL are documented at https://github.com/google/cel-spec. Example -// (Comparison): title: "Summary size limit" description: "Determines if a -// summary is less than 100 chars" expression: "document.summary.size() < 100" -// Example (Equality): title: "Requestor is owner" description: "Determines if -// requestor is the document owner" expression: "document.owner == -// request.auth.claims.email" Example (Logic): title: "Public documents" -// description: "Determine whether the document should be publicly visible" -// expression: "document.type != 'private' && document.type != 'internal'" -// Example (Data Manipulation): title: "Notification string" description: -// "Create a notification string with a timestamp." expression: "'New message -// received at ' + string(document.create_time)" The exact variables and -// functions that may be referenced within an expression are determined by the -// service that evaluates it. See the service documentation for additional -// information. -type Expr struct { - // Description: Optional. Description of the expression. This is a longer text - // which describes the expression, e.g. when hovered over it in a UI. - Description string `json:"description,omitempty"` - // Expression: Textual representation of an expression in Common Expression - // Language syntax. - Expression string `json:"expression,omitempty"` - // Location: Optional. String indicating the location of the expression for - // error reporting, e.g. a file name and a position in the file. - Location string `json:"location,omitempty"` - // Title: Optional. Title for the expression, i.e. a short string describing - // its purpose. This can be used e.g. in UIs which allow to enter the - // expression. - Title string `json:"title,omitempty"` - // ForceSendFields is a list of field names (e.g. "Description") to +// CustomErrorResponsePolicy: Specifies the custom error response policy that +// must be applied when the +// backend service or backend bucket responds with an error. +type CustomErrorResponsePolicy struct { + // ErrorResponseRules: Specifies rules for returning error responses. + // + // In a given policy, if you specify rules for both a range of error codes + // as well as rules for specific error codes then rules with specific + // error + // codes have a higher priority. For example, assume that you configure a + // rule + // for 401 (Un-authorized) code, and another for all 4 series + // error codes (4XX). If the backend service returns a401, then the rule for + // 401 will be applied. + // However if the backend service returns a 403, the rule for4xx takes effect. + ErrorResponseRules []*CustomErrorResponsePolicyCustomErrorResponseRule `json:"errorResponseRules,omitempty"` + // ErrorService: The full or partial URL to the BackendBucket resource + // that + // contains the custom error content. Examples are: + // + // + // - + // https://www.googleapis.com/compute/v1/projects/project/global/backendBuckets/myBackendBucket + // - compute/v1/projects/project/global/backendBuckets/myBackendBucket + // - global/backendBuckets/myBackendBucket + // + // If errorService is not specified at lower levels likepathMatcher, pathRule + // and routeRule, + // an errorService specified at a higher level in theUrlMap will be used. + // IfUrlMap.defaultCustomErrorResponsePolicy contains one or + // moreerrorResponseRules[], it must specifyerrorService. + // + // If load balancer cannot reach + // the backendBucket, a simple Not Found Error will + // be returned, with the original response code (oroverrideResponseCode if + // configured). + // + // errorService is not supported for internal or regionalHTTP/HTTPS load + // balancers. + ErrorService string `json:"errorService,omitempty"` + // ForceSendFields is a list of field names (e.g. "ErrorResponseRules") to // unconditionally include in API requests. By default, fields with empty or // default values are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. ForceSendFields []string `json:"-"` - // NullFields is a list of field names (e.g. "Description") to include in API - // requests with the JSON null value. By default, fields with empty values are - // omitted from API requests. See + // NullFields is a list of field names (e.g. "ErrorResponseRules") to include + // in API requests with the JSON null value. By default, fields with empty + // values are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } -func (s *Expr) MarshalJSON() ([]byte, error) { - type NoMethod Expr - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s CustomErrorResponsePolicy) MarshalJSON() ([]byte, error) { + type NoMethod CustomErrorResponsePolicy + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -// ExternalVpnGateway: Represents an external VPN gateway. External VPN gateway -// is the on-premises VPN gateway(s) or another cloud provider's VPN gateway -// that connects to your Google Cloud VPN gateway. To create a highly available -// VPN from Google Cloud Platform to your VPN gateway or another cloud -// provider's VPN gateway, you must create a external VPN gateway resource with -// information about the other gateway. For more information about using -// external VPN gateways, see Creating an HA VPN gateway and tunnel pair to a -// peer VPN. -type ExternalVpnGateway struct { - // CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text format. - CreationTimestamp string `json:"creationTimestamp,omitempty"` - // Description: An optional description of this resource. Provide this property - // when you create the resource. - Description string `json:"description,omitempty"` - // Id: [Output Only] The unique identifier for the resource. This identifier is - // defined by the server. - Id *uint64 `json:"id,omitempty,string"` - // Interfaces: A list of interfaces for this external VPN gateway. If your - // peer-side gateway is an on-premises gateway and non-AWS cloud providers' - // gateway, at most two interfaces can be provided for an external VPN gateway. - // If your peer side is an AWS virtual private gateway, four interfaces should - // be provided for an external VPN gateway. - Interfaces []*ExternalVpnGatewayInterface `json:"interfaces,omitempty"` - // Kind: [Output Only] Type of the resource. Always compute#externalVpnGateway - // for externalVpnGateways. - Kind string `json:"kind,omitempty"` - // LabelFingerprint: A fingerprint for the labels being applied to this - // ExternalVpnGateway, which is essentially a hash of the labels set used for - // optimistic locking. The fingerprint is initially generated by Compute Engine - // and changes after every request to modify or update labels. You must always - // provide an up-to-date fingerprint hash in order to update or change labels, - // otherwise the request will fail with error 412 conditionNotMet. To see the - // latest fingerprint, make a get() request to retrieve an ExternalVpnGateway. - LabelFingerprint string `json:"labelFingerprint,omitempty"` - // Labels: Labels for this resource. These can only be added or modified by the - // setLabels method. Each label key/value pair must comply with RFC1035. Label - // values may be empty. - Labels map[string]string `json:"labels,omitempty"` - // Name: Name of the resource. Provided by the client when the resource is - // created. The name must be 1-63 characters long, and comply with RFC1035. - // 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. - Name string `json:"name,omitempty"` - // RedundancyType: Indicates the user-supplied redundancy type of this external - // VPN gateway. +// CustomErrorResponsePolicyCustomErrorResponseRule: Specifies the mapping +// between the response code that will be returned along +// with the custom error content and the response code returned by the +// backend +// service. +type CustomErrorResponsePolicyCustomErrorResponseRule struct { + // MatchResponseCodes: Valid values include: // - // Possible values: - // "FOUR_IPS_REDUNDANCY" - The external VPN gateway has four public IP - // addresses; at the time of writing this API, the AWS virtual private gateway - // is an example which has four public IP addresses for high availability - // connections; there should be two VPN connections in the AWS virtual private - // gateway , each AWS VPN connection has two public IP addresses; please make - // sure to put two public IP addresses from one AWS VPN connection into - // interfaces 0 and 1 of this external VPN gateway, and put the other two - // public IP addresses from another AWS VPN connection into interfaces 2 and 3 - // of this external VPN gateway. When displaying highly available configuration - // status for the VPN tunnels connected to FOUR_IPS_REDUNDANCY external VPN - // gateway, Google will always detect whether interfaces 0 and 1 are connected - // on one interface of HA Cloud VPN gateway, and detect whether interfaces 2 - // and 3 are connected to another interface of the HA Cloud VPN gateway. - // "SINGLE_IP_INTERNALLY_REDUNDANT" - The external VPN gateway has only one - // public IP address which internally provide redundancy or failover. - // "TWO_IPS_REDUNDANCY" - The external VPN gateway has two public IP - // addresses which are redundant with each other, the following two types of - // setup on your on-premises side would have this type of redundancy: (1) Two - // separate on-premises gateways, each with one public IP address, the two - // on-premises gateways are redundant with each other. (2) A single on-premise - // gateway with two public IP addresses that are redundant with eatch other. - RedundancyType string `json:"redundancyType,omitempty"` - // SelfLink: [Output Only] Server-defined URL for the resource. - SelfLink string `json:"selfLink,omitempty"` - - // ServerResponse contains the HTTP response code and headers from the server. - googleapi.ServerResponse `json:"-"` - // ForceSendFields is a list of field names (e.g. "CreationTimestamp") to + // + // - A number between 400 and 599: For example + // 401 or 503, in which case the load balancer + // applies the policy if the error code exactly matches this value. + // - 5xx: Load Balancer will apply the policy if the + // backend service responds with any response code in the range of + // 500 to 599. + // - 4xx: Load + // Balancer will apply the policy if the backend service responds with + // any + // response code in the range of 400 to + // 499. + // + // Values must be unique within matchResponseCodes and across + // allerrorResponseRules ofCustomErrorResponsePolicy. + MatchResponseCodes []string `json:"matchResponseCodes,omitempty"` + // OverrideResponseCode: The HTTP status code returned with the response + // containing the custom + // error content. If overrideResponseCode is not supplied, the + // same response code returned by the original backend bucket or + // backend + // service is returned to the client. + OverrideResponseCode int64 `json:"overrideResponseCode,omitempty"` + // Path: The full path to a file within backendBucket . For + // example:/errors/defaultError.html + // + // path must start + // with a leading slash. path cannot have trailing slashes. + // + // If the file is not available in backendBucket or the + // load balancer cannot reach the BackendBucket, a simpleNot Found Error is + // returned to the client. + // + // The value must + // be from 1 to 1024 characters + Path string `json:"path,omitempty"` + // ForceSendFields is a list of field names (e.g. "MatchResponseCodes") to // unconditionally include in API requests. By default, fields with empty or // default values are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. ForceSendFields []string `json:"-"` - // NullFields is a list of field names (e.g. "CreationTimestamp") to include in - // API requests with the JSON null value. By default, fields with empty values - // are omitted from API requests. See + // NullFields is a list of field names (e.g. "MatchResponseCodes") to include + // in API requests with the JSON null value. By default, fields with empty + // values are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } -func (s *ExternalVpnGateway) MarshalJSON() ([]byte, error) { - type NoMethod ExternalVpnGateway - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s CustomErrorResponsePolicyCustomErrorResponseRule) MarshalJSON() ([]byte, error) { + type NoMethod CustomErrorResponsePolicyCustomErrorResponseRule + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -// ExternalVpnGatewayInterface: The interface for the external VPN gateway. -type ExternalVpnGatewayInterface struct { - // Id: The numeric ID of this interface. The allowed input values for this id - // for different redundancy types of external VPN gateway: - - // SINGLE_IP_INTERNALLY_REDUNDANT - 0 - TWO_IPS_REDUNDANCY - 0, 1 - - // FOUR_IPS_REDUNDANCY - 0, 1, 2, 3 - Id int64 `json:"id,omitempty"` - // IpAddress: IP address of the interface in the external VPN gateway. Only - // IPv4 is supported. This IP address can be either from your on-premise - // gateway or another Cloud provider's VPN gateway, it cannot be an IP address - // from Google Compute Engine. - IpAddress string `json:"ipAddress,omitempty"` - // Ipv6Address: IPv6 address of the interface in the external VPN gateway. This - // IPv6 address can be either from your on-premise gateway or another Cloud - // provider's VPN gateway, it cannot be an IP address from Google Compute - // Engine. Must specify an IPv6 address (not IPV4-mapped) using any format - // described in RFC 4291 (e.g. 2001:db8:0:0:2d9:51:0:0). The output format is - // RFC 5952 format (e.g. 2001:db8::2d9:51:0:0). - Ipv6Address string `json:"ipv6Address,omitempty"` - // ForceSendFields is a list of field names (e.g. "Id") to unconditionally - // include in API requests. By default, fields with empty or default values are - // omitted from API requests. See +type CustomerEncryptionKey struct { + // KmsKeyName: The name of the encryption key that is stored in Google Cloud + // KMS. + // For example: + // + // "kmsKeyName": + // "projects/kms_project_id/locations/region/keyRings/ + // key_region/cryptoKeys/key + // + // The fully-qualifed key name may be returned for resource GET requests. For + // + // example: + // + // "kmsKeyName": + // "projects/kms_project_id/locations/region/keyRings/ + // key_region/cryptoKeys/key + // /cryptoKeyVersions/1 + KmsKeyName string `json:"kmsKeyName,omitempty"` + // KmsKeyServiceAccount: The service account being used for the encryption + // request for the given KMS + // key. If absent, the Compute Engine default service account is used. + // For example: + // + // "kmsKeyServiceAccount": "name@project_id.iam.gserviceaccount.com/ + KmsKeyServiceAccount string `json:"kmsKeyServiceAccount,omitempty"` + // RawKey: Specifies a 256-bit customer-supplied + // encryption key, encoded in RFC + // 4648 base64 to either encrypt or decrypt this resource. You can + // provide either the rawKey or thersaEncryptedKey. + // For example: + // + // "rawKey": + // "SGVsbG8gZnJvbSBHb29nbGUgQ2xvdWQgUGxhdGZvcm0=" + RawKey string `json:"rawKey,omitempty"` + // RsaEncryptedKey: Specifies an RFC 4648 base64 encoded, RSA-wrapped + // 2048-bit + // customer-supplied encryption key to either encrypt or decrypt this + // resource. You can provide either the rawKey or thersaEncryptedKey. + // For + // example: + // + // "rsaEncryptedKey": + // "ieCx/NcW06PcT7Ep1X6LUTc/hLvUDYyzSZPPVCVPTVEohpeHASqC8uw5TzyO9U+Fka9JFH + // z0mBibXUInrC/jEk014kCK/NPjYgEMOyssZ4ZINPKxlUh2zn1bV+MCaTICrdmuSBTWlUUiFoD + // D6PYznLwh8ZNdaheCeZ8ewEXgFQ8V+sDroLaN3Xs3MDTXQEMMoNUXMCZEIpg9Vtp9x2oe==" + // + // The key must meet the following requirements before you can provide it to + // + // Compute Engine: + // + // 1. The key is wrapped using a RSA public key certificate provided by + // Google. + // 2. After being wrapped, the key must be encoded in RFC 4648 base64 + // encoding. + // + // Gets the RSA public key certificate provided by Google at: + // + // + // + // https://cloud-certs.storage.googleapis.com/google-cloud-csek-ingress.pem + RsaEncryptedKey string `json:"rsaEncryptedKey,omitempty"` + // Sha256: [Output only] TheRFC + // 4648 base64 encoded SHA-256 hash of the customer-supplied + // encryption key that protects this resource. + Sha256 string `json:"sha256,omitempty"` + // ForceSendFields is a list of field names (e.g. "KmsKeyName") to + // unconditionally include in API requests. By default, fields with empty or + // default values are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. 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. See + // NullFields is a list of field names (e.g. "KmsKeyName") to include in API + // requests with the JSON null value. By default, fields with empty values are + // omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } -func (s *ExternalVpnGatewayInterface) MarshalJSON() ([]byte, error) { - type NoMethod ExternalVpnGatewayInterface - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s CustomerEncryptionKey) MarshalJSON() ([]byte, error) { + type NoMethod CustomerEncryptionKey + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -// ExternalVpnGatewayList: Response to the list request, and contains a list of -// externalVpnGateways. -type ExternalVpnGatewayList struct { - Etag string `json:"etag,omitempty"` - // Id: [Output Only] Unique identifier for the resource; defined by the server. - Id string `json:"id,omitempty"` - // Items: A list of ExternalVpnGateway resources. - Items []*ExternalVpnGateway `json:"items,omitempty"` - // Kind: [Output Only] Type of resource. Always compute#externalVpnGatewayList - // for lists of externalVpnGateways. - 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"` - // SelfLink: [Output Only] Server-defined URL for this resource. - SelfLink string `json:"selfLink,omitempty"` - // Warning: [Output Only] Informational warning message. - Warning *ExternalVpnGatewayListWarning `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. "Etag") to unconditionally - // include in API requests. By default, fields with empty or default values are - // omitted from API requests. See +type CustomerEncryptionKeyProtectedDisk struct { + // DiskEncryptionKey: Decrypts data associated with the disk with + // acustomer-supplied + // encryption key. + DiskEncryptionKey *CustomerEncryptionKey `json:"diskEncryptionKey,omitempty"` + // Source: Specifies a valid partial or full URL to an existing Persistent + // Disk + // resource. This field is only applicable for persistent disks. + // For example: + // + // "source": "/compute/v1/projects/project_id/zones/zone/disks/ + // disk_name + Source string `json:"source,omitempty"` + // ForceSendFields is a list of field names (e.g. "DiskEncryptionKey") to + // unconditionally include in API requests. By default, fields with empty or + // default values are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. ForceSendFields []string `json:"-"` - // NullFields is a list of field names (e.g. "Etag") to include in API requests - // with the JSON null value. By default, fields with empty values are omitted - // from API requests. See + // NullFields is a list of field names (e.g. "DiskEncryptionKey") to include in + // API requests with the JSON null value. By default, fields with empty values + // are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } -func (s *ExternalVpnGatewayList) MarshalJSON() ([]byte, error) { - type NoMethod ExternalVpnGatewayList - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s CustomerEncryptionKeyProtectedDisk) MarshalJSON() ([]byte, error) { + type NoMethod CustomerEncryptionKeyProtectedDisk + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -// ExternalVpnGatewayListWarning: [Output Only] Informational warning message. -type ExternalVpnGatewayListWarning 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" - Warning about failed cleanup of transient changes made - // by a failed operation. - // "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was created. - // "DEPRECATED_TYPE_USED" - When deploying and at least one of the resources - // has a type marked as deprecated - // "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk that is - // larger than image size. - // "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the - // resources has a type marked as experimental - // "EXTERNAL_API_WARNING" - Warning that is present in an external api call - // "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been - // overridden. Deprecated unused field. - // "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an injected - // kernel, which is deprecated. - // "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB" - A WEIGHTED_MAGLEV backend - // service is associated with a health check that is not of type - // HTTP/HTTPS/HTTP2. - // "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a - // exceedingly large number of resources - // "LIST_OVERHEAD_QUOTA_EXCEED" - Resource can't be retrieved due to list - // overhead quota exceed which captures the amount of resources filtered out by - // user-defined list filter. - // "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type - // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is not - // assigned to an instance on the network. - // "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot ip - // forward. - // "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE" - The route's nextHopInstance - // URL refers to an instance that does not have an ipv6 interface on the same - // network as the route. - // "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL refers to - // an instance that does not exist. - // "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance URL - // refers to an instance that is not on the same network as the route. - // "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not have a - // status of RUNNING. - // "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to continue - // the process despite the mentioned error. - // "NO_RESULTS_ON_PAGE" - No results are present on a particular list page. - // "PARTIAL_SUCCESS" - Success is reported, but some results may be missing - // due to errors - // "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource that - // requires a TOS they have not accepted. - // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a resource is - // in use. - // "RESOURCE_NOT_DELETED" - One or more of the resources set to auto-delete - // could not be deleted because they were in use. - // "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is - // ignored. - // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in instance - // group manager is valid as such, but its application does not make a lot of - // sense, because it allows only single instance in instance group. - // "UNDECLARED_PROPERTIES" - When undeclared properties in the schema are - // present - // "UNREACHABLE" - A given scope cannot be reached. - 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 []*ExternalVpnGatewayListWarningData `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 +// Date: Represents a whole or partial calendar date, such as a birthday. The +// time of +// day and time zone are either specified elsewhere or are insignificant. +// The +// date is relative to the Gregorian Calendar. This can represent one of +// the +// following: +// +// - A full date, with non-zero year, month, and day values. +// - A month and day, with a zero year (for example, an anniversary). +// - A year on its own, with a zero month and a zero day. +// - A year and month, with a zero day (for example, a credit card expiration +// date). +// +// Related types: +// +// * google.type.TimeOfDay +// * google.type.DateTime +// * google.protobuf.Timestamp +type Date struct { + // Day: Day of a month. Must be from 1 to 31 and valid for the year and month, + // or 0 + // to specify a year by itself or a year and month where the day + // isn't + // significant. + Day int64 `json:"day,omitempty"` + // Month: Month of a year. Must be from 1 to 12, or 0 to specify a year without + // a + // month and day. + Month int64 `json:"month,omitempty"` + // Year: Year of the date. Must be from 1 to 9999, or 0 to specify a date + // without + // a year. + Year int64 `json:"year,omitempty"` + // ForceSendFields is a list of field names (e.g. "Day") to unconditionally // include in API requests. By default, fields with empty or default values are // omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. ForceSendFields []string `json:"-"` - // NullFields is a list of field names (e.g. "Code") to include in API requests + // NullFields is a list of field names (e.g. "Day") to include in API requests // with the JSON null value. By default, fields with empty values are omitted // from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } -func (s *ExternalVpnGatewayListWarning) MarshalJSON() ([]byte, error) { - type NoMethod ExternalVpnGatewayListWarning - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s Date) MarshalJSON() ([]byte, error) { + type NoMethod Date + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -type ExternalVpnGatewayListWarningData 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 +// DateTime: Represents civil time (or occasionally physical time). +// +// This type can represent a civil time in one of a few possible ways: +// +// - When utc_offset is set and time_zone is unset: a civil time on a +// +// calendar +// +// day with a particular offset from UTC. +// * When time_zone is set and utc_offset is unset: a civil time on a +// +// calendar +// +// day in a particular time zone. +// * When neither time_zone nor utc_offset is set: a civil time on a calendar +// day in local time. +// +// The date is relative to the Proleptic Gregorian Calendar. +// +// If year, month, or day are 0, the DateTime is considered not to have +// a +// specific year, month, or day respectively. +// +// This type may also be used to represent a physical time if all the date +// and +// time fields are set and either case of the `time_offset` oneof is +// set. +// Consider using `Timestamp` message for physical time instead. If your +// use +// case also would like to store the user's timezone, that can be done +// in +// another field. +// +// This type is more flexible than some applications may want. Make sure +// to +// document and validate your application's limitations. +type DateTime struct { + // Day: Optional. Day of month. Must be from 1 to 31 and valid for the year + // and + // month, or 0 if specifying a datetime without a day. + Day int64 `json:"day,omitempty"` + // Hours: Optional. Hours of day in 24 hour format. Should be from 0 to 23, + // defaults + // to 0 (midnight). An API may choose to allow the value "24:00:00" + // for + // scenarios like business closing time. + Hours int64 `json:"hours,omitempty"` + // Minutes: Optional. Minutes of hour of day. Must be from 0 to 59, defaults to + // 0. + Minutes int64 `json:"minutes,omitempty"` + // Month: Optional. Month of year. Must be from 1 to 12, or 0 if specifying + // a + // datetime without a month. + Month int64 `json:"month,omitempty"` + // Nanos: Optional. Fractions of seconds in nanoseconds. Must be from 0 + // to + // 999,999,999, defaults to 0. + Nanos int64 `json:"nanos,omitempty"` + // Seconds: Optional. Seconds of minutes of the time. Must normally be from 0 + // to 59, + // defaults to 0. An API may allow the value 60 if it allows leap-seconds. + Seconds int64 `json:"seconds,omitempty"` + // TimeZone: Time zone. + TimeZone *TimeZone `json:"timeZone,omitempty"` + // UtcOffset: UTC offset. Must be whole seconds, between -18 hours and +18 + // hours. + // For example, a UTC offset of -4:00 would be represented as + // { seconds: -14400 }. + UtcOffset string `json:"utcOffset,omitempty"` + // Year: Optional. Year of date. Must be from 1 to 9999, or 0 if specifying + // a + // datetime without a year. + Year int64 `json:"year,omitempty"` + // ForceSendFields is a list of field names (e.g. "Day") to unconditionally // include in API requests. By default, fields with empty or default values are // omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. ForceSendFields []string `json:"-"` - // NullFields is a list of field names (e.g. "Key") to include in API requests + // NullFields is a list of field names (e.g. "Day") to include in API requests // with the JSON null value. By default, fields with empty values are omitted // from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } -func (s *ExternalVpnGatewayListWarningData) MarshalJSON() ([]byte, error) { - type NoMethod ExternalVpnGatewayListWarningData - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s DateTime) MarshalJSON() ([]byte, error) { + type NoMethod DateTime + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -type FileContentBuffer struct { - // Content: The raw content in the secure keys file. - Content string `json:"content,omitempty"` - // FileType: The file type of source file. +// DeprecationStatus: Deprecation status for a public resource. +type DeprecationStatus struct { + // Deleted: An optional RFC3339 timestamp on or after which the state of + // this + // resource is intended to change to DELETED. This is only + // informational and the status will not change unless the client + // explicitly + // changes it. + Deleted string `json:"deleted,omitempty"` + // Deprecated -- An optional RFC3339 timestamp on or after which the state of + // this + // resource is intended to change to DEPRECATED. This is only + // informational and the status will not change unless the client + // explicitly + // changes it. + Deprecated string `json:"deprecated,omitempty"` + // Obsolete: An optional RFC3339 timestamp on or after which the state of + // this + // resource is intended to change to OBSOLETE. This is only + // informational and the status will not change unless the client + // explicitly + // changes it. + Obsolete string `json:"obsolete,omitempty"` + // Replacement: The URL of the suggested replacement for a deprecated + // resource. + // The suggested replacement resource must be the same kind of resource as + // the + // deprecated resource. + Replacement string `json:"replacement,omitempty"` + // State: The deprecation state of this resource. This can be + // ACTIVE,DEPRECATED, OBSOLETE, or DELETED. + // Operations which communicate the end of life date for an image, can + // useACTIVE. Operations which create a new resource using aDEPRECATED resource + // will return successfully, but with a + // warning indicating the deprecated resource and recommending its + // replacement. Operations which use OBSOLETE orDELETED resources will be + // rejected and result in an error. // // Possible values: - // "BIN" - // "UNDEFINED" - // "X509" - FileType string `json:"fileType,omitempty"` - // ForceSendFields is a list of field names (e.g. "Content") to unconditionally + // "ACTIVE" + // "DELETED" + // "DEPRECATED" + // "OBSOLETE" + State string `json:"state,omitempty"` + // ForceSendFields is a list of field names (e.g. "Deleted") to unconditionally // include in API requests. By default, fields with empty or default values are // omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. ForceSendFields []string `json:"-"` - // NullFields is a list of field names (e.g. "Content") to include in API + // NullFields is a list of field names (e.g. "Deleted") to include in API // requests with the JSON null value. By default, fields with empty values are // omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } -func (s *FileContentBuffer) MarshalJSON() ([]byte, error) { - type NoMethod FileContentBuffer - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s DeprecationStatus) MarshalJSON() ([]byte, error) { + type NoMethod DeprecationStatus + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -// Firewall: Represents a Firewall Rule resource. Firewall rules allow or deny -// ingress traffic to, and egress traffic from your instances. For more -// information, read Firewall rules. -type Firewall struct { - // Allowed: The list of ALLOW rules specified by this firewall. Each rule - // specifies a protocol and port-range tuple that describes a permitted - // connection. - Allowed []*FirewallAllowed `json:"allowed,omitempty"` - // CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text format. +// Disk: Represents a Persistent Disk resource. +// +// Google Compute Engine has two Disk resources: +// +// * Zonal (/compute/docs/reference/rest/v1/disks) +// * Regional (/compute/docs/reference/rest/v1/regionDisks) +// +// Persistent disks are required for running your VM instances. +// Create both boot and non-boot (data) persistent disks. For more +// information, +// read Persistent Disks. For more +// storage options, read Storage options. +// +// The disks resource represents a zonal persistent disk. +// For more information, readZonal persistent disks. +// +// The regionDisks resource represents a +// regional persistent disk. For more information, read +// Regional resources. +type Disk struct { + // AccessMode: The access mode of the disk. + // + // + // - READ_WRITE_SINGLE: The default AccessMode, means the + // disk can be attached to single instance in RW mode. + // - READ_WRITE_MANY: The AccessMode means the disk can be + // attached to multiple instances in RW mode. + // - READ_ONLY_MANY: The AccessMode means the disk can be + // attached to multiple instances in RO mode. + // + // + // The AccessMode is only valid for Hyperdisk disk types. + // + // Possible values: + // "READ_ONLY_MANY" - The AccessMode means the disk can be attached to + // multiple instances in RO + // mode. + // "READ_WRITE_MANY" - The AccessMode means the disk can be attached to + // multiple instances in RW + // mode. + // "READ_WRITE_SINGLE" - The default AccessMode, means the disk can be + // attached to single instance + // in RW mode. + AccessMode string `json:"accessMode,omitempty"` + // Architecture: The architecture of the disk. Valid values are + // ARM64 or X86_64. + // + // Possible values: + // "ARCHITECTURE_UNSPECIFIED" - Default value indicating Architecture is not + // set. + // "ARM64" - Machines with architecture ARM64 + // "X86_64" - Machines with architecture X86_64 + Architecture string `json:"architecture,omitempty"` + // AsyncPrimaryDisk: Disk asynchronously replicated into this disk. + AsyncPrimaryDisk *DiskAsyncReplication `json:"asyncPrimaryDisk,omitempty"` + // AsyncSecondaryDisks: Output only. [Output Only] A list of disks this disk is + // asynchronously replicated to. + AsyncSecondaryDisks map[string]DiskAsyncReplicationList `json:"asyncSecondaryDisks,omitempty"` + // CreationTimestamp: Output only. [Output Only] Creation timestamp + // inRFC3339 + // text format. CreationTimestamp string `json:"creationTimestamp,omitempty"` - // Denied: The list of DENY rules specified by this firewall. Each rule - // specifies a protocol and port-range tuple that describes a denied - // connection. - Denied []*FirewallDenied `json:"denied,omitempty"` - // Description: An optional description of this resource. Provide this field - // when you create the resource. + // Description: An optional description of this resource. Provide this property + // when you + // create the resource. Description string `json:"description,omitempty"` - // DestinationRanges: If destination ranges are specified, the firewall rule - // applies only to traffic that has destination IP address in these ranges. - // These ranges must be expressed in CIDR format. Both IPv4 and IPv6 are - // supported. - DestinationRanges []string `json:"destinationRanges,omitempty"` - // Direction: Direction of traffic to which this firewall applies, either - // `INGRESS` or `EGRESS`. The default is `INGRESS`. For `EGRESS` traffic, you - // cannot specify the sourceTags fields. + // DiskEncryptionKey: Encrypts the disk using a + // customer-supplied encryption key or a + // customer-managed encryption key. // - // Possible values: - // "EGRESS" - Indicates that firewall should apply to outgoing traffic. - // "INGRESS" - Indicates that firewall should apply to incoming traffic. - Direction string `json:"direction,omitempty"` - // Disabled: Denotes whether the firewall rule is disabled. When set to true, - // the firewall rule is not enforced and the network behaves as if it did not - // exist. If this is unspecified, the firewall rule will be enabled. - Disabled bool `json:"disabled,omitempty"` - // Id: [Output Only] The unique identifier for the resource. This identifier is + // Encryption keys do not protect access to metadata of the disk. + // + // After you encrypt a disk with a customer-supplied key, you must provide + // the + // same key if you use the disk later. For example, to create a disk + // snapshot, + // to create a disk image, to create a machine image, or to attach the disk + // to + // a virtual machine. + // + // After you encrypt a disk with a customer-managed key, + // thediskEncryptionKey.kmsKeyName is set to a key *version* + // name once the disk is created. The disk is encrypted with this version + // of + // the key. In the response, diskEncryptionKey.kmsKeyName appears + // in the following + // format: + // + // "diskEncryptionKey.kmsKeyName": + // "projects/kms_project_id/locations/region/keyRings/ + // key_region/cryptoKeys/key + // /cryptoKeysVersions/version + // + // If you do not provide an encryption key when creating the disk, then the + // + // disk is encrypted using an automatically generated key and you don't need + // + // to provide a key to use the disk later. + DiskEncryptionKey *CustomerEncryptionKey `json:"diskEncryptionKey,omitempty"` + // EnableConfidentialCompute: Whether this disk is using confidential compute + // mode. + EnableConfidentialCompute bool `json:"enableConfidentialCompute,omitempty"` + // GuestOsFeatures: A list of features to enable on the guest operating system. + // Applicable + // only for bootable images. Read + // Enabling guest operating system features to see a list of available + // options. + GuestOsFeatures []*GuestOsFeature `json:"guestOsFeatures,omitempty"` + // Id: Output only. [Output Only] The unique identifier for the resource. This + // identifier is // defined by the server. Id uint64 `json:"id,omitempty,string"` - // Kind: [Output Only] Type of the resource. Always compute#firewall for - // firewall rules. + // Kind: Output only. [Output Only] Type of the resource. Always compute#disk + // for + // disks. Kind string `json:"kind,omitempty"` - // LogConfig: This field denotes the logging options for a particular firewall - // rule. If logging is enabled, logs will be exported to Cloud Logging. - LogConfig *FirewallLogConfig `json:"logConfig,omitempty"` - // Name: Name of the resource; provided by the client when the resource is - // created. The name must be 1-63 characters long, and comply with RFC1035. - // Specifically, the name must be 1-63 characters long and match the regular - // expression `[a-z]([-a-z0-9]*[a-z0-9])?`. The first character must be a - // lowercase letter, and all following characters (except for the last - // character) must be a dash, lowercase letter, or digit. The last character - // must be a lowercase letter or digit. + // LabelFingerprint: A fingerprint for the labels being applied to this disk, + // which is + // essentially a hash of the labels set used for optimistic locking. + // The + // fingerprint is initially generated by Compute Engine and changes after + // every request to modify or update labels. You must always provide + // an + // up-to-date fingerprint hash in order to update or change labels, + // otherwise the request will fail with error412 conditionNotMet. + // + // To see the latest fingerprint, make a get() request to + // retrieve a disk. + LabelFingerprint string `json:"labelFingerprint,omitempty"` + // Labels: Labels to apply to this disk. These can be later modified by + // the setLabels method. + Labels map[string]string `json:"labels,omitempty"` + // LastAttachTimestamp: Output only. [Output Only] Last attach timestamp + // inRFC3339 + // text format. + LastAttachTimestamp string `json:"lastAttachTimestamp,omitempty"` + // LastDetachTimestamp: Output only. [Output Only] Last detach timestamp + // inRFC3339 + // text format. + LastDetachTimestamp string `json:"lastDetachTimestamp,omitempty"` + // LicenseCodes: Integer license codes indicating which licenses are attached + // to this disk. + LicenseCodes googleapi.Int64s `json:"licenseCodes,omitempty"` + // Licenses: A list of publicly visible licenses. Reserved for Google's use. + Licenses []string `json:"licenses,omitempty"` + // LocationHint: An opaque location hint used to place the disk close to other + // resources. + // This field is for use by internal tools that use the public API. + LocationHint string `json:"locationHint,omitempty"` + // Name: Name of the resource. Provided by the client when the resource is + // created. + // The name must be 1-63 characters long, and comply withRFC1035. + // 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. Name string `json:"name,omitempty"` - // Network: URL of the network resource for this firewall rule. If not - // specified when creating a firewall rule, the default network is used: - // global/networks/default If you choose to specify this field, you can specify - // the network as a full or partial URL. For example, the following are all - // valid URLs: - - // https://www.googleapis.com/compute/v1/projects/myproject/global/networks/my-network - // - projects/myproject/global/networks/my-network - global/networks/default - Network string `json:"network,omitempty"` - // Priority: Priority for this rule. This is an integer between `0` and - // `65535`, both inclusive. The default value is `1000`. Relative priorities - // determine which rule takes effect if multiple rules apply. Lower values - // indicate higher priority. For example, a rule with priority `0` has higher - // precedence than a rule with priority `1`. DENY rules take precedence over - // ALLOW rules if they have equal priority. Note that VPC networks have implied - // rules with a priority of `65535`. To avoid conflicts with the implied rules, - // use a priority number less than `65535`. - Priority int64 `json:"priority,omitempty"` - // SelfLink: [Output Only] Server-defined URL for the resource. + // Options: Internal use only. + Options string `json:"options,omitempty"` + // Params: Input only. [Input Only] Additional params passed with the request, + // but not persisted + // as part of resource payload. + Params *DiskParams `json:"params,omitempty"` + // PhysicalBlockSizeBytes: Physical block size of the persistent disk, in + // bytes. + // If not present in a request, a default value is used. + // The currently supported size is 4096, other sizes may be added in + // the future. + // If an unsupported value is requested, the error message will list + // the supported values for the caller's project. + PhysicalBlockSizeBytes int64 `json:"physicalBlockSizeBytes,omitempty,string"` + // ProvisionedIops: Indicates how many IOPS to provision for the disk. This + // sets the number + // of I/O operations per second that the disk can handle. Values must + // be + // between 10,000 and 120,000. For more details, see theExtreme persistent + // disk documentation. + ProvisionedIops int64 `json:"provisionedIops,omitempty,string"` + // ProvisionedThroughput: Indicates how much throughput to provision for the + // disk. This sets the + // number of throughput mb per second that the disk can handle. Values must + // be + // greater than or equal to 1. + ProvisionedThroughput int64 `json:"provisionedThroughput,omitempty,string"` + // Region: Output only. [Output Only] URL of the region where the disk resides. + // Only applicable for + // regional resources. + // You must specify this field as part of the HTTP request URL. It is + // not settable as a field in the request body. + Region string `json:"region,omitempty"` + // ReplicaZones: URLs of the zones where the disk should be replicated to. Only + // applicable + // for regional resources. + ReplicaZones []string `json:"replicaZones,omitempty"` + // ResourcePolicies: Resource policies applied to this disk for automatic + // snapshot creations. + ResourcePolicies []string `json:"resourcePolicies,omitempty"` + // ResourceStatus: Output only. [Output Only] Status information for the disk + // resource. + ResourceStatus *DiskResourceStatus `json:"resourceStatus,omitempty"` + // SatisfiesPzi: Output only. Reserved for future use. + SatisfiesPzi bool `json:"satisfiesPzi,omitempty"` + // SatisfiesPzs: Output only. [Output Only] Reserved for future use. + SatisfiesPzs bool `json:"satisfiesPzs,omitempty"` + // SelfLink: Output only. [Output Only] Server-defined fully-qualified URL for + // this resource. SelfLink string `json:"selfLink,omitempty"` - // SourceRanges: If source ranges are specified, the firewall rule applies only - // to traffic that has a source IP address in these ranges. These ranges must - // be expressed in CIDR format. One or both of sourceRanges and sourceTags may - // be set. If both fields are set, the rule applies to traffic that has a - // source IP address within sourceRanges OR a source IP from a resource with a - // matching tag listed in the sourceTags field. The connection does not need to - // match both fields for the rule to apply. Both IPv4 and IPv6 are supported. - SourceRanges []string `json:"sourceRanges,omitempty"` - // SourceServiceAccounts: If source service accounts are specified, the - // firewall rules apply only to traffic originating from an instance with a - // service account in this list. Source service accounts cannot be used to - // control traffic to an instance's external IP address because service - // accounts are associated with an instance, not an IP address. sourceRanges - // can be set at the same time as sourceServiceAccounts. If both are set, the - // firewall applies to traffic that has a source IP address within the - // sourceRanges OR a source IP that belongs to an instance with service account - // listed in sourceServiceAccount. The connection does not need to match both - // fields for the firewall to apply. sourceServiceAccounts cannot be used at - // the same time as sourceTags or targetTags. - SourceServiceAccounts []string `json:"sourceServiceAccounts,omitempty"` - // SourceTags: If source tags are specified, the firewall rule applies only to - // traffic with source IPs that match the primary network interfaces of VM - // instances that have the tag and are in the same VPC network. Source tags - // cannot be used to control traffic to an instance's external IP address, it - // only applies to traffic between instances in the same virtual network. - // Because tags are associated with instances, not IP addresses. One or both of - // sourceRanges and sourceTags may be set. If both fields are set, the firewall - // applies to traffic that has a source IP address within sourceRanges OR a - // source IP from a resource with a matching tag listed in the sourceTags - // field. The connection does not need to match both fields for the firewall to - // apply. - SourceTags []string `json:"sourceTags,omitempty"` - // TargetServiceAccounts: A list of service accounts indicating sets of - // instances located in the network that may make network connections as - // specified in allowed[]. targetServiceAccounts cannot be used at the same - // time as targetTags or sourceTags. If neither targetServiceAccounts nor - // targetTags are specified, the firewall rule applies to all instances on the - // specified network. - TargetServiceAccounts []string `json:"targetServiceAccounts,omitempty"` - // TargetTags: A list of tags that controls which instances the firewall rule - // applies to. If targetTags are specified, then the firewall rule applies only - // to instances in the VPC network that have one of those tags. If no - // targetTags are specified, the firewall rule applies to all instances on the - // specified network. - TargetTags []string `json:"targetTags,omitempty"` + // SizeGb: Size, in GB, of the persistent disk. You can specify + // this field when creating a persistent disk using thesourceImage, + // sourceSnapshot, orsourceDisk parameter, or specify it alone to create an + // empty + // persistent disk. + // + // If you specify this field along with a source, the value ofsizeGb must not + // be less than the size of the + // source. + // Acceptable values are greater than 0. + SizeGb int64 `json:"sizeGb,omitempty,string"` + // SourceConsistencyGroupPolicy: Output only. [Output Only] URL of the + // DiskConsistencyGroupPolicy for a secondary disk + // that was created using a consistency group. + SourceConsistencyGroupPolicy string `json:"sourceConsistencyGroupPolicy,omitempty"` + // SourceConsistencyGroupPolicyId: Output only. [Output Only] ID of the + // DiskConsistencyGroupPolicy for a secondary disk + // that was created using a consistency group. + SourceConsistencyGroupPolicyId string `json:"sourceConsistencyGroupPolicyId,omitempty"` + // SourceDisk: The source disk used to create this disk. 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/disks/disk + // + // - + // + // https://www.googleapis.com/compute/v1/projects/project/regions/region/disks/disk + // + // - + // projects/project/zones/zone/disks/disk + // + // - + // projects/project/regions/region/disks/disk + // + // - + // zones/zone/disks/disk + // + // - + // regions/region/disks/disk + SourceDisk string `json:"sourceDisk,omitempty"` + // SourceDiskId: Output only. [Output Only] The unique ID of the disk used to + // create this disk. This + // value identifies the exact disk that was used to create this + // persistent + // disk. For example, if you created the persistent disk from a disk that + // was later deleted and recreated under the same name, the source disk + // ID + // would identify the exact version of the disk that was used. + SourceDiskId string `json:"sourceDiskId,omitempty"` + // SourceImage: The source image used to create this disk. If the source image + // is + // deleted, this field will not be set. + // + // To create a disk with one of the public operating system images, specify + // the image by its family name. For example, specifyfamily/debian-9 to use the + // latest Debian 9 + // image: + // + // projects/debian-cloud/global/images/family/debian-9 + // + // + // Alternatively, use a specific version of a public operating system + // image: + // + // projects/debian-cloud/global/images/debian-9-stretch-vYYYYMMDD + // + // + // To create a disk with a custom image that you created, specify the + // image name in the following format: + // + // global/images/my-custom-image + // + // + // You can also specify a custom image by its image family, which returns + // the latest version of the image in that family. Replace the image name + // with family/family-name: + // + // global/images/family/my-image-family + SourceImage string `json:"sourceImage,omitempty"` + // SourceImageEncryptionKey: Thecustomer-supplied + // encryption key of the source image. Required if the source image + // is + // protected by a customer-supplied encryption key. + SourceImageEncryptionKey *CustomerEncryptionKey `json:"sourceImageEncryptionKey,omitempty"` + // SourceImageId: Output only. [Output Only] The ID value of the image used to + // create this disk. This + // value identifies the exact image that was used to create this + // persistent + // disk. For example, if you created the persistent disk from an image that + // was later deleted and recreated under the same name, the source image + // ID + // would identify the exact version of the image that was used. + SourceImageId string `json:"sourceImageId,omitempty"` + // SourceInstantSnapshot: The source instant snapshot used to create this disk. + // 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/instantSnapshots/instantSnapshot + // - projects/project/zones/zone/instantSnapshots/instantSnapshot + // - zones/zone/instantSnapshots/instantSnapshot + SourceInstantSnapshot string `json:"sourceInstantSnapshot,omitempty"` + // SourceInstantSnapshotId: Output only. [Output Only] The unique ID of the + // instant snapshot used to create this + // disk. This value identifies the exact instant snapshot that was used + // to + // create this persistent disk. For example, if you created the persistent + // disk from an instant snapshot that was later deleted and recreated under + // the same name, the source instant snapshot ID would identify the + // exact + // version of the instant snapshot that was used. + SourceInstantSnapshotId string `json:"sourceInstantSnapshotId,omitempty"` + // SourceSnapshot: The source snapshot used to create this disk. 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/global/snapshots/snapshot + // + // - projects/project/global/snapshots/snapshot + // - global/snapshots/snapshot + SourceSnapshot string `json:"sourceSnapshot,omitempty"` + // SourceSnapshotEncryptionKey: Thecustomer-supplied + // encryption key of the source snapshot. Required if the source snapshot + // is protected by a customer-supplied encryption key. + SourceSnapshotEncryptionKey *CustomerEncryptionKey `json:"sourceSnapshotEncryptionKey,omitempty"` + // SourceSnapshotId: Output only. [Output Only] The unique ID of the snapshot + // used to create this disk. This + // value identifies the exact snapshot that was used to create this + // persistent + // disk. For example, if you created the persistent disk from a snapshot + // that + // was later deleted and recreated under the same name, the source snapshot + // ID + // would identify the exact version of the snapshot that was used. + SourceSnapshotId string `json:"sourceSnapshotId,omitempty"` + // SourceStorageObject: The full Google Cloud Storage URI where the disk image + // is stored. This file + // must be a gzip-compressed tarball whose name ends in .tar.gz or + // virtual + // machine disk whose name ends in vmdk. Valid URIs may start with gs:// + // or + // https://storage.googleapis.com/. This flag is not optimized for + // creating + // multiple disks from a source storage object. To create many disks from + // a + // source storage object, use gcloud compute images + // import instead. + SourceStorageObject string `json:"sourceStorageObject,omitempty"` + // Status: Output only. [Output Only] The status of disk creation. + // + // + // - CREATING: Disk is provisioning. + // - RESTORING: Source data is being copied into the + // disk. + // - FAILED: Disk creation failed. + // - READY: Disk is ready for use. + // - DELETING: Disk is deleting. + // + // Possible values: + // "CREATING" - Disk is provisioning + // "DELETING" - Disk is deleting. + // "FAILED" - Disk creation failed. + // "READY" - Disk is ready for use. + // "RESTORING" - Source data is being copied into the disk. + // "UNAVAILABLE" - Disk is currently unavailable and cannot be accessed, + // attached or + // detached. + Status string `json:"status,omitempty"` + // StoragePool: The storage pool in which the new disk is created. 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/storagePools/storagePool + // - projects/project/zones/zone/storagePools/storagePool + // - zones/zone/storagePools/storagePool + StoragePool string `json:"storagePool,omitempty"` + // Type: URL of the disk type resource describing which disk type to use to + // create + // the disk. Provide this when creating the disk. For + // example:projects/project/zones/zone/diskTypes/pd-ssd. See Persistent + // disk + // types. + Type string `json:"type,omitempty"` + // Users: Output only. [Output Only] Links to the users of the disk (attached + // instances) + // in form:projects/project/zones/zone/instances/instance + Users []string `json:"users,omitempty"` + // Zone: Output only. [Output Only] URL of the zone where the disk resides. + // You must specify this field as part of the HTTP request URL. It is + // not settable as a field in the request body. + Zone string `json:"zone,omitempty"` // ServerResponse contains the HTTP response code and headers from the server. googleapi.ServerResponse `json:"-"` - // ForceSendFields is a list of field names (e.g. "Allowed") to unconditionally - // include in API requests. By default, fields with empty or default values are - // omitted from API requests. See - // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more - // details. - ForceSendFields []string `json:"-"` - // NullFields is a list of field names (e.g. "Allowed") to include in API - // requests with the JSON null value. By default, fields with empty values are - // omitted from API requests. See - // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. - NullFields []string `json:"-"` -} - -func (s *Firewall) MarshalJSON() ([]byte, error) { - type NoMethod Firewall - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) -} - -type FirewallAllowed struct { - // IPProtocol: The IP protocol to which this rule applies. The protocol type is - // required when creating a firewall rule. This value can either be one of the - // following well known protocol strings (tcp, udp, icmp, esp, ah, ipip, sctp) - // or the IP protocol number. - IPProtocol string `json:"IPProtocol,omitempty"` - // Ports: An optional list of ports to which this rule applies. This field is - // only applicable for the UDP or TCP protocol. Each entry must be either an - // integer or a range. If not specified, this rule applies to connections - // through any port. Example inputs include: ["22"], ["80","443"], and - // ["12345-12349"]. - Ports []string `json:"ports,omitempty"` - // ForceSendFields is a list of field names (e.g. "IPProtocol") to - // unconditionally include in API requests. By default, fields with empty or - // default values are omitted from API requests. See - // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more - // details. - ForceSendFields []string `json:"-"` - // NullFields is a list of field names (e.g. "IPProtocol") to include in API - // requests with the JSON null value. By default, fields with empty values are - // omitted from API requests. See - // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. - NullFields []string `json:"-"` -} - -func (s *FirewallAllowed) MarshalJSON() ([]byte, error) { - type NoMethod FirewallAllowed - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) -} - -type FirewallDenied struct { - // IPProtocol: The IP protocol to which this rule applies. The protocol type is - // required when creating a firewall rule. This value can either be one of the - // following well known protocol strings (tcp, udp, icmp, esp, ah, ipip, sctp) - // or the IP protocol number. - IPProtocol string `json:"IPProtocol,omitempty"` - // Ports: An optional list of ports to which this rule applies. This field is - // only applicable for the UDP or TCP protocol. Each entry must be either an - // integer or a range. If not specified, this rule applies to connections - // through any port. Example inputs include: ["22"], ["80","443"], and - // ["12345-12349"]. - Ports []string `json:"ports,omitempty"` - // ForceSendFields is a list of field names (e.g. "IPProtocol") to + // ForceSendFields is a list of field names (e.g. "AccessMode") to // unconditionally include in API requests. By default, fields with empty or // default values are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. ForceSendFields []string `json:"-"` - // NullFields is a list of field names (e.g. "IPProtocol") to include in API + // NullFields is a list of field names (e.g. "AccessMode") to include in API // requests with the JSON null value. By default, fields with empty values are // omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } -func (s *FirewallDenied) MarshalJSON() ([]byte, error) { - type NoMethod FirewallDenied - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s Disk) MarshalJSON() ([]byte, error) { + type NoMethod Disk + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -// FirewallList: Contains a list of firewalls. -type FirewallList struct { +type DiskAggregatedList struct { // Id: [Output Only] Unique identifier for the resource; defined by the server. Id string `json:"id,omitempty"` - // Items: A list of Firewall resources. - Items []*Firewall `json:"items,omitempty"` - // Kind: [Output Only] Type of resource. Always compute#firewallList for lists - // of firewalls. + // Items: A list of DisksScopedList resources. + Items map[string]DisksScopedList `json:"items,omitempty"` + // Kind: Output only. [Output Only] Type of resource. + // Alwayscompute#diskAggregatedList for aggregated lists of persistent + // disks. 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. + // results for + // list requests. If the number of results is larger thanmaxResults, 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"` - // SelfLink: [Output Only] Server-defined URL for this resource. + // SelfLink: Output only. [Output Only] Server-defined URL for this resource. SelfLink string `json:"selfLink,omitempty"` + // Unreachables: Output only. [Output Only] Unreachable resources. + Unreachables []string `json:"unreachables,omitempty"` // Warning: [Output Only] Informational warning message. - Warning *FirewallListWarning `json:"warning,omitempty"` + Warning *DiskAggregatedListWarning `json:"warning,omitempty"` // ServerResponse contains the HTTP response code and headers from the server. googleapi.ServerResponse `json:"-"` @@ -10501,76 +13882,98 @@ type FirewallList struct { NullFields []string `json:"-"` } -func (s *FirewallList) MarshalJSON() ([]byte, error) { - type NoMethod FirewallList - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s DiskAggregatedList) MarshalJSON() ([]byte, error) { + type NoMethod DiskAggregatedList + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -// FirewallListWarning: [Output Only] Informational warning message. -type FirewallListWarning 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. +// DiskAggregatedListWarning: [Output Only] Informational warning message. +type DiskAggregatedListWarning 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" - Warning about failed cleanup of transient changes made - // by a failed operation. + // by a failed + // operation. // "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was created. // "DEPRECATED_TYPE_USED" - When deploying and at least one of the resources - // has a type marked as deprecated + // has a type marked as + // deprecated // "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk that is // larger than image size. // "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the - // resources has a type marked as experimental + // resources has a type marked as + // experimental // "EXTERNAL_API_WARNING" - Warning that is present in an external api call // "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been - // overridden. Deprecated unused field. + // overridden. + // Deprecated unused field. // "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an injected // kernel, which is deprecated. // "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB" - A WEIGHTED_MAGLEV backend - // service is associated with a health check that is not of type - // HTTP/HTTPS/HTTP2. + // service is associated with a health check that is + // not of type HTTP/HTTPS/HTTP2. // "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a // exceedingly large number of resources // "LIST_OVERHEAD_QUOTA_EXCEED" - Resource can't be retrieved due to list - // overhead quota exceed which captures the amount of resources filtered out by + // overhead quota exceed + // which captures the amount of resources filtered out by // user-defined list filter. // "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is not - // assigned to an instance on the network. + // assigned to an instance on the + // network. // "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot ip // forward. // "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE" - The route's nextHopInstance - // URL refers to an instance that does not have an ipv6 interface on the same - // network as the route. + // URL refers to an instance that does not have an + // ipv6 interface on the same network as the route. // "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL refers to // an instance that does not exist. // "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance URL - // refers to an instance that is not on the same network as the route. + // refers to an instance that is not on the + // same network as the route. // "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not have a // status of RUNNING. // "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to continue - // the process despite the mentioned error. + // the process despite + // the mentioned error. // "NO_RESULTS_ON_PAGE" - No results are present on a particular list page. // "PARTIAL_SUCCESS" - Success is reported, but some results may be missing // due to errors + // "QUOTA_INFO_UNAVAILABLE" - Quota information is not available to client + // requests (e.g: + // regions.list). // "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource that - // requires a TOS they have not accepted. + // requires a TOS they have not + // accepted. // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a resource is // in use. // "RESOURCE_NOT_DELETED" - One or more of the resources set to auto-delete - // could not be deleted because they were in use. + // could not be deleted + // because they were in use. // "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is // ignored. // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in instance - // group manager is valid as such, but its application does not make a lot of - // sense, because it allows only single instance in instance group. + // group manager is valid as such, but + // its application does not make a lot of sense, because it allows only + // single instance in instance group. // "UNDECLARED_PROPERTIES" - When undeclared properties in the schema are // present // "UNREACHABLE" - A given scope cannot be reached. 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 []*FirewallListWarningData `json:"data,omitempty"` + // Data: [Output Only] Metadata about this warning in key: + // value format. For example: + // + // "data": [ + // { + // "key": "scope", + // "value": "zones/us-east1-d" + // } + Data []*DiskAggregatedListWarningData `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 @@ -10586,19 +13989,22 @@ type FirewallListWarning struct { NullFields []string `json:"-"` } -func (s *FirewallListWarning) MarshalJSON() ([]byte, error) { - type NoMethod FirewallListWarning - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s DiskAggregatedListWarning) MarshalJSON() ([]byte, error) { + type NoMethod DiskAggregatedListWarning + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -type FirewallListWarningData 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). +type DiskAggregatedListWarningData 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"` @@ -10615,210 +14021,190 @@ type FirewallListWarningData struct { NullFields []string `json:"-"` } -func (s *FirewallListWarningData) MarshalJSON() ([]byte, error) { - type NoMethod FirewallListWarningData - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s DiskAggregatedListWarningData) MarshalJSON() ([]byte, error) { + type NoMethod DiskAggregatedListWarningData + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -// FirewallLogConfig: The available logging options for a firewall rule. -type FirewallLogConfig struct { - // Enable: This field denotes whether to enable logging for a particular - // firewall rule. - Enable bool `json:"enable,omitempty"` - // Metadata: This field can only be specified for a particular firewall rule if - // logging is enabled for that rule. This field denotes whether to include or - // exclude metadata for firewall logs. +type DiskAsyncReplication struct { + // ConsistencyGroupPolicy: Output only. [Output Only] URL of the + // DiskConsistencyGroupPolicy if replication was + // started on the disk as a member of a group. + ConsistencyGroupPolicy string `json:"consistencyGroupPolicy,omitempty"` + // ConsistencyGroupPolicyId: Output only. [Output Only] ID of the + // DiskConsistencyGroupPolicy if replication was + // started on the disk as a member of a group. + ConsistencyGroupPolicyId string `json:"consistencyGroupPolicyId,omitempty"` + // Disk: The other disk asynchronously replicated to or from the current + // disk. + // You can provide this as a partial or full URL to the resource. + // For example, the following are valid values: // - // Possible values: - // "EXCLUDE_ALL_METADATA" - // "INCLUDE_ALL_METADATA" - Metadata string `json:"metadata,omitempty"` - // ForceSendFields is a list of field names (e.g. "Enable") to unconditionally - // include in API requests. By default, fields with empty or default values are - // omitted from API requests. See + // + // - + // https://www.googleapis.com/compute/v1/projects/project/zones/zone/disks/disk + // + // - projects/project/zones/zone/disks/disk + // - zones/zone/disks/disk + Disk string `json:"disk,omitempty"` + // DiskId: Output only. [Output Only] The unique ID of the other disk + // asynchronously replicated + // to or from the current disk. This value identifies the exact disk that + // was used to create this replication. For example, if you started + // replicating the persistent disk from a disk that was later deleted + // and + // recreated under the same name, the disk ID would identify the exact + // version of the disk that was used. + DiskId string `json:"diskId,omitempty"` + // ForceSendFields is a list of field names (e.g. "ConsistencyGroupPolicy") to + // unconditionally include in API requests. By default, fields with empty or + // default values are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. ForceSendFields []string `json:"-"` - // NullFields is a list of field names (e.g. "Enable") to include in API - // requests with the JSON null value. By default, fields with empty values are - // omitted from API requests. See + // NullFields is a list of field names (e.g. "ConsistencyGroupPolicy") to + // include in API requests with the JSON null value. By default, fields with + // empty values are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } -func (s *FirewallLogConfig) MarshalJSON() ([]byte, error) { - type NoMethod FirewallLogConfig - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s DiskAsyncReplication) MarshalJSON() ([]byte, error) { + type NoMethod DiskAsyncReplication + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -type FirewallPoliciesListAssociationsResponse struct { - // Associations: A list of associations. - Associations []*FirewallPolicyAssociation `json:"associations,omitempty"` - // Kind: [Output Only] Type of firewallPolicy associations. Always - // compute#FirewallPoliciesListAssociations for lists of firewallPolicy - // associations. - Kind string `json:"kind,omitempty"` - - // ServerResponse contains the HTTP response code and headers from the server. - googleapi.ServerResponse `json:"-"` - // ForceSendFields is a list of field names (e.g. "Associations") to +type DiskAsyncReplicationList struct { + AsyncReplicationDisk *DiskAsyncReplication `json:"asyncReplicationDisk,omitempty"` + // ForceSendFields is a list of field names (e.g. "AsyncReplicationDisk") to // unconditionally include in API requests. By default, fields with empty or // default values are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. ForceSendFields []string `json:"-"` - // NullFields is a list of field names (e.g. "Associations") to include in API - // requests with the JSON null value. By default, fields with empty values are - // omitted from API requests. See + // NullFields is a list of field names (e.g. "AsyncReplicationDisk") to include + // in API requests with the JSON null value. By default, fields with empty + // values are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } -func (s *FirewallPoliciesListAssociationsResponse) MarshalJSON() ([]byte, error) { - type NoMethod FirewallPoliciesListAssociationsResponse - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s DiskAsyncReplicationList) MarshalJSON() ([]byte, error) { + type NoMethod DiskAsyncReplicationList + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -// FirewallPolicy: Represents a Firewall Policy resource. -type FirewallPolicy struct { - // Associations: A list of associations that belong to this firewall policy. - Associations []*FirewallPolicyAssociation `json:"associations,omitempty"` - // CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text format. - CreationTimestamp string `json:"creationTimestamp,omitempty"` - // Description: An optional description of this resource. Provide this property - // when you create the resource. - Description string `json:"description,omitempty"` - // DisplayName: Deprecated, please use short name instead. User-provided name - // of the Organization firewall policy. The name should be unique in the - // organization in which the firewall policy is created. This field is not - // applicable to network firewall policies. This name must be set on creation - // and cannot be changed. 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. - DisplayName string `json:"displayName,omitempty"` - // Fingerprint: Specifies a fingerprint for this resource, which is essentially - // a hash of the metadata's contents and used for optimistic locking. The - // fingerprint is initially generated by Compute Engine and changes after every - // request to modify or update metadata. You must always provide an up-to-date - // fingerprint hash in order to update or change metadata, otherwise the - // request will fail with error 412 conditionNotMet. To see the latest - // fingerprint, make get() request to the firewall policy. - Fingerprint string `json:"fingerprint,omitempty"` - // Id: [Output Only] The unique identifier for the resource. This identifier is - // defined by the server. - Id uint64 `json:"id,omitempty,string"` - // Kind: [Output only] Type of the resource. Always compute#firewallPolicyfor - // firewall policies - Kind string `json:"kind,omitempty"` - // Name: Name of the resource. For Organization Firewall Policies it's a - // [Output Only] numeric ID allocated by Google Cloud which uniquely identifies - // the Organization Firewall Policy. - Name string `json:"name,omitempty"` - // Parent: [Output Only] The parent of the firewall policy. This field is not - // applicable to network firewall policies. - Parent string `json:"parent,omitempty"` - // Region: [Output Only] URL of the region where the regional firewall policy - // resides. This field is not applicable to global firewall policies. You must - // specify this field as part of the HTTP request URL. It is not settable as a - // field in the request body. - Region string `json:"region,omitempty"` - // RuleTupleCount: [Output Only] Total count of all firewall policy rule - // tuples. A firewall policy can not exceed a set number of tuples. - RuleTupleCount int64 `json:"ruleTupleCount,omitempty"` - // Rules: A list of rules that belong to this policy. There must always be a - // default rule (rule with priority 2147483647 and match "*"). If no rules are - // provided when creating a firewall policy, a default rule with action "allow" - // will be added. - Rules []*FirewallPolicyRule `json:"rules,omitempty"` - // SelfLink: [Output Only] Server-defined URL for the resource. - SelfLink string `json:"selfLink,omitempty"` - // SelfLinkWithId: [Output Only] Server-defined URL for this resource with the - // resource id. - SelfLinkWithId string `json:"selfLinkWithId,omitempty"` - // ShortName: User-provided name of the Organization firewall policy. The name - // should be unique in the organization in which the firewall policy is - // created. This field is not applicable to network firewall policies. This - // name must be set on creation and cannot be changed. 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. - ShortName string `json:"shortName,omitempty"` - - // ServerResponse contains the HTTP response code and headers from the server. - googleapi.ServerResponse `json:"-"` - // ForceSendFields is a list of field names (e.g. "Associations") to +// 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" - Attach the existing disk in read-only mode. The + // request will fail if the + // disk was attached in read-write mode on the source instance. Applicable + // to: read-only disks. + // "BLANK" - Create a blank disk. The disk will be created unformatted. + // Applicable to: + // additional read-write disks, local SSDs. + // "CUSTOM_IMAGE" - Use the custom image specified in the custom_image field. + // Applicable to: + // boot disk, additional read-write disks. + // "DEFAULT" - Use the default instantiation option for the corresponding + // type of disk. + // 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. + // "DO_NOT_INCLUDE" - Do not include the disk in the instance template. + // Applicable to: + // additional read-write disks, local SSDs, read-only disks. + // "SOURCE_IMAGE" - Use the same source image used for creation of the source + // instance's + // corresponding disk. The request will fail if the source VM's disk + // was + // created from a snapshot. Applicable to: boot disk, additional + // read-write + // disks. + // "SOURCE_IMAGE_FAMILY" - Use the same source image family used for creation + // of the source + // instance's corresponding disk. The request will fail if the source image + // of the source disk does not belong to any image family. Applicable to: + // boot disk, additional read-write disks. + 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 or // default values are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. ForceSendFields []string `json:"-"` - // NullFields is a list of field names (e.g. "Associations") to include in API + // 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. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } -func (s *FirewallPolicy) MarshalJSON() ([]byte, error) { - type NoMethod FirewallPolicy - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) -} - -type FirewallPolicyAssociation struct { - // AttachmentTarget: The target that the firewall policy is attached to. - AttachmentTarget string `json:"attachmentTarget,omitempty"` - // DisplayName: [Output Only] Deprecated, please use short name instead. The - // display name of the firewall policy of the association. - DisplayName string `json:"displayName,omitempty"` - // FirewallPolicyId: [Output Only] The firewall policy ID of the association. - FirewallPolicyId string `json:"firewallPolicyId,omitempty"` - // Name: The name for an association. - Name string `json:"name,omitempty"` - // ShortName: [Output Only] The short name of the firewall policy of the - // association. - ShortName string `json:"shortName,omitempty"` - - // ServerResponse contains the HTTP response code and headers from the server. - googleapi.ServerResponse `json:"-"` - // ForceSendFields is a list of field names (e.g. "AttachmentTarget") to - // unconditionally include in API requests. By default, fields with empty or - // default values are omitted from API requests. See - // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more - // details. - ForceSendFields []string `json:"-"` - // NullFields is a list of field names (e.g. "AttachmentTarget") to include in - // API requests with the JSON null value. By default, fields with empty values - // are omitted from API requests. See - // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. - NullFields []string `json:"-"` -} - -func (s *FirewallPolicyAssociation) MarshalJSON() ([]byte, error) { - type NoMethod FirewallPolicyAssociation - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s DiskInstantiationConfig) MarshalJSON() ([]byte, error) { + type NoMethod DiskInstantiationConfig + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -type FirewallPolicyList struct { +// DiskList: A list of Disk resources. +type DiskList struct { // Id: [Output Only] Unique identifier for the resource; defined by the server. Id string `json:"id,omitempty"` - // Items: A list of FirewallPolicy resources. - Items []*FirewallPolicy `json:"items,omitempty"` - // Kind: [Output Only] Type of resource. Always compute#firewallPolicyList for - // listsof FirewallPolicies + // Items: A list of Disk resources. + Items []*Disk `json:"items,omitempty"` + // Kind: Output only. [Output Only] Type of resource. Always compute#diskList + // for + // lists of disks. 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. + // results for + // list requests. If the number of results is larger thanmaxResults, 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"` + // SelfLink: Output only. [Output Only] Server-defined URL for this resource. + SelfLink string `json:"selfLink,omitempty"` // Warning: [Output Only] Informational warning message. - Warning *FirewallPolicyListWarning `json:"warning,omitempty"` + Warning *DiskListWarning `json:"warning,omitempty"` // ServerResponse contains the HTTP response code and headers from the server. googleapi.ServerResponse `json:"-"` @@ -10835,76 +14221,98 @@ type FirewallPolicyList struct { NullFields []string `json:"-"` } -func (s *FirewallPolicyList) MarshalJSON() ([]byte, error) { - type NoMethod FirewallPolicyList - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s DiskList) MarshalJSON() ([]byte, error) { + type NoMethod DiskList + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -// FirewallPolicyListWarning: [Output Only] Informational warning message. -type FirewallPolicyListWarning 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. +// DiskListWarning: [Output Only] Informational warning message. +type DiskListWarning 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" - Warning about failed cleanup of transient changes made - // by a failed operation. + // by a failed + // operation. // "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was created. // "DEPRECATED_TYPE_USED" - When deploying and at least one of the resources - // has a type marked as deprecated + // has a type marked as + // deprecated // "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk that is // larger than image size. // "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the - // resources has a type marked as experimental + // resources has a type marked as + // experimental // "EXTERNAL_API_WARNING" - Warning that is present in an external api call // "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been - // overridden. Deprecated unused field. + // overridden. + // Deprecated unused field. // "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an injected // kernel, which is deprecated. // "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB" - A WEIGHTED_MAGLEV backend - // service is associated with a health check that is not of type - // HTTP/HTTPS/HTTP2. + // service is associated with a health check that is + // not of type HTTP/HTTPS/HTTP2. // "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a // exceedingly large number of resources // "LIST_OVERHEAD_QUOTA_EXCEED" - Resource can't be retrieved due to list - // overhead quota exceed which captures the amount of resources filtered out by + // overhead quota exceed + // which captures the amount of resources filtered out by // user-defined list filter. // "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is not - // assigned to an instance on the network. + // assigned to an instance on the + // network. // "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot ip // forward. // "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE" - The route's nextHopInstance - // URL refers to an instance that does not have an ipv6 interface on the same - // network as the route. + // URL refers to an instance that does not have an + // ipv6 interface on the same network as the route. // "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL refers to // an instance that does not exist. // "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance URL - // refers to an instance that is not on the same network as the route. + // refers to an instance that is not on the + // same network as the route. // "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not have a // status of RUNNING. // "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to continue - // the process despite the mentioned error. + // the process despite + // the mentioned error. // "NO_RESULTS_ON_PAGE" - No results are present on a particular list page. // "PARTIAL_SUCCESS" - Success is reported, but some results may be missing // due to errors + // "QUOTA_INFO_UNAVAILABLE" - Quota information is not available to client + // requests (e.g: + // regions.list). // "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource that - // requires a TOS they have not accepted. + // requires a TOS they have not + // accepted. // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a resource is // in use. // "RESOURCE_NOT_DELETED" - One or more of the resources set to auto-delete - // could not be deleted because they were in use. + // could not be deleted + // because they were in use. // "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is // ignored. // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in instance - // group manager is valid as such, but its application does not make a lot of - // sense, because it allows only single instance in instance group. + // group manager is valid as such, but + // its application does not make a lot of sense, because it allows only + // single instance in instance group. // "UNDECLARED_PROPERTIES" - When undeclared properties in the schema are // present // "UNREACHABLE" - A given scope cannot be reached. 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 []*FirewallPolicyListWarningData `json:"data,omitempty"` + // Data: [Output Only] Metadata about this warning in key: + // value format. For example: + // + // "data": [ + // { + // "key": "scope", + // "value": "zones/us-east1-d" + // } + Data []*DiskListWarningData `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 @@ -10920,19 +14328,22 @@ type FirewallPolicyListWarning struct { NullFields []string `json:"-"` } -func (s *FirewallPolicyListWarning) MarshalJSON() ([]byte, error) { - type NoMethod FirewallPolicyListWarning - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s DiskListWarning) MarshalJSON() ([]byte, error) { + type NoMethod DiskListWarning + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -type FirewallPolicyListWarningData 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). +type DiskListWarningData 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"` @@ -10949,593 +14360,226 @@ type FirewallPolicyListWarningData struct { NullFields []string `json:"-"` } -func (s *FirewallPolicyListWarningData) MarshalJSON() ([]byte, error) { - type NoMethod FirewallPolicyListWarningData - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s DiskListWarningData) MarshalJSON() ([]byte, error) { + type NoMethod DiskListWarningData + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -// FirewallPolicyRule: Represents a rule that describes one or more match -// conditions along with the action to be taken when traffic matches this -// condition (allow or deny). -type FirewallPolicyRule struct { - // Action: The Action to perform when the client connection triggers the rule. - // Valid actions are "allow", "deny" and "goto_next". - Action string `json:"action,omitempty"` - // Description: An optional description for this resource. - Description string `json:"description,omitempty"` - // Direction: The direction in which this rule applies. +type DiskMoveRequest struct { + // DestinationZone: The URL of the destination zone to move the disk. This can + // be a full or + // partial URL. For example, the following are all valid URLs to a zone: // - // Possible values: - // "EGRESS" - // "INGRESS" - Direction string `json:"direction,omitempty"` - // Disabled: Denotes whether the firewall policy rule is disabled. When set to - // true, the firewall policy rule is not enforced and traffic behaves as if it - // did not exist. If this is unspecified, the firewall policy rule will be - // enabled. - Disabled bool `json:"disabled,omitempty"` - // EnableLogging: Denotes whether to enable logging for a particular rule. If - // logging is enabled, logs will be exported to the configured export - // destination in Stackdriver. Logs may be exported to BigQuery or Pub/Sub. - // Note: you cannot enable logging on "goto_next" rules. - EnableLogging bool `json:"enableLogging,omitempty"` - // Kind: [Output only] Type of the resource. Always compute#firewallPolicyRule - // for firewall policy rules - Kind string `json:"kind,omitempty"` - // Match: A match condition that incoming traffic is evaluated against. If it - // evaluates to true, the corresponding 'action' is enforced. - Match *FirewallPolicyRuleMatcher `json:"match,omitempty"` - // Priority: An integer indicating the priority of a rule in the list. The - // priority must be a positive value between 0 and 2147483647. Rules are - // evaluated from highest to lowest priority where 0 is the highest priority - // and 2147483647 is the lowest prority. - Priority int64 `json:"priority,omitempty"` - // RuleName: An optional name for the rule. This field is not a unique - // identifier and can be updated. - RuleName string `json:"ruleName,omitempty"` - // RuleTupleCount: [Output Only] Calculation of the complexity of a single - // firewall policy rule. - RuleTupleCount int64 `json:"ruleTupleCount,omitempty"` - // SecurityProfileGroup: A fully-qualified URL of a SecurityProfile resource - // instance. Example: - // https://networksecurity.googleapis.com/v1/projects/{project}/locations/{location}/securityProfileGroups/my-security-profile-group - // Must be specified if action = 'apply_security_profile_group' and cannot be - // specified for other actions. - SecurityProfileGroup string `json:"securityProfileGroup,omitempty"` - // TargetResources: A list of network resource URLs to which this rule applies. - // This field allows you to control which network's VMs get this rule. If this - // field is left blank, all VMs within the organization will receive the rule. - TargetResources []string `json:"targetResources,omitempty"` - // TargetSecureTags: A list of secure tags that controls which instances the - // firewall rule applies to. If targetSecureTag are specified, then the - // firewall rule applies only to instances in the VPC network that have one of - // those EFFECTIVE secure tags, if all the target_secure_tag are in INEFFECTIVE - // state, then this rule will be ignored. targetSecureTag may not be set at the - // same time as targetServiceAccounts. If neither targetServiceAccounts nor - // targetSecureTag are specified, the firewall rule applies to all instances on - // the specified network. Maximum number of target label tags allowed is 256. - TargetSecureTags []*FirewallPolicyRuleSecureTag `json:"targetSecureTags,omitempty"` - // TargetServiceAccounts: A list of service accounts indicating the sets of - // instances that are applied with this rule. - TargetServiceAccounts []string `json:"targetServiceAccounts,omitempty"` - // TlsInspect: Boolean flag indicating if the traffic should be TLS decrypted. - // Can be set only if action = 'apply_security_profile_group' and cannot be set - // for other actions. - TlsInspect bool `json:"tlsInspect,omitempty"` - - // ServerResponse contains the HTTP response code and headers from the server. - googleapi.ServerResponse `json:"-"` - // ForceSendFields is a list of field names (e.g. "Action") to unconditionally - // include in API requests. By default, fields with empty or default values are - // omitted from API requests. See + // - https://www.googleapis.com/compute/v1/projects/project/zones/zone + // - projects/project/zones/zone + // - zones/zone + DestinationZone string `json:"destinationZone,omitempty"` + // TargetDisk: The URL of the target disk to move. This can be a full or + // partial URL. + // For example, the following are all valid URLs to a disk: + // + // - + // https://www.googleapis.com/compute/v1/projects/project/zones/zone/disks/disk + // + // - projects/project/zones/zone/disks/disk + // - zones/zone/disks/disk + TargetDisk string `json:"targetDisk,omitempty"` + // ForceSendFields is a list of field names (e.g. "DestinationZone") to + // unconditionally include in API requests. By default, fields with empty or + // default values are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. ForceSendFields []string `json:"-"` - // NullFields is a list of field names (e.g. "Action") to include in API - // requests with the JSON null value. By default, fields with empty values are - // omitted from API requests. See + // NullFields is a list of field names (e.g. "DestinationZone") to include in + // API requests with the JSON null value. By default, fields with empty values + // are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } -func (s *FirewallPolicyRule) MarshalJSON() ([]byte, error) { - type NoMethod FirewallPolicyRule - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s DiskMoveRequest) MarshalJSON() ([]byte, error) { + type NoMethod DiskMoveRequest + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -// FirewallPolicyRuleMatcher: Represents a match condition that incoming -// traffic is evaluated against. Exactly one field must be specified. -type FirewallPolicyRuleMatcher struct { - // DestAddressGroups: Address groups which should be matched against the - // traffic destination. Maximum number of destination address groups is 10. - DestAddressGroups []string `json:"destAddressGroups,omitempty"` - // DestFqdns: Fully Qualified Domain Name (FQDN) which should be matched - // against traffic destination. Maximum number of destination fqdn allowed is - // 100. - DestFqdns []string `json:"destFqdns,omitempty"` - // DestIpRanges: CIDR IP address range. Maximum number of destination CIDR IP - // ranges allowed is 5000. - DestIpRanges []string `json:"destIpRanges,omitempty"` - // DestRegionCodes: Region codes whose IP addresses will be used to match for - // destination of traffic. Should be specified as 2 letter country code defined - // as per ISO 3166 alpha-2 country codes. ex."US" Maximum number of dest region - // codes allowed is 5000. - DestRegionCodes []string `json:"destRegionCodes,omitempty"` - // DestThreatIntelligences: Names of Network Threat Intelligence lists. The IPs - // in these lists will be matched against traffic destination. - DestThreatIntelligences []string `json:"destThreatIntelligences,omitempty"` - // Layer4Configs: Pairs of IP protocols and ports that the rule should match. - Layer4Configs []*FirewallPolicyRuleMatcherLayer4Config `json:"layer4Configs,omitempty"` - // SrcAddressGroups: Address groups which should be matched against the traffic - // source. Maximum number of source address groups is 10. - SrcAddressGroups []string `json:"srcAddressGroups,omitempty"` - // SrcFqdns: Fully Qualified Domain Name (FQDN) which should be matched against - // traffic source. Maximum number of source fqdn allowed is 100. - SrcFqdns []string `json:"srcFqdns,omitempty"` - // SrcIpRanges: CIDR IP address range. Maximum number of source CIDR IP ranges - // allowed is 5000. - SrcIpRanges []string `json:"srcIpRanges,omitempty"` - // SrcRegionCodes: Region codes whose IP addresses will be used to match for - // source of traffic. Should be specified as 2 letter country code defined as - // per ISO 3166 alpha-2 country codes. ex."US" Maximum number of source region - // codes allowed is 5000. - SrcRegionCodes []string `json:"srcRegionCodes,omitempty"` - // SrcSecureTags: List of secure tag values, which should be matched at the - // source of the traffic. For INGRESS rule, if all the srcSecureTag are - // INEFFECTIVE, and there is no srcIpRange, this rule will be ignored. Maximum - // number of source tag values allowed is 256. - SrcSecureTags []*FirewallPolicyRuleSecureTag `json:"srcSecureTags,omitempty"` - // SrcThreatIntelligences: Names of Network Threat Intelligence lists. The IPs - // in these lists will be matched against traffic source. - SrcThreatIntelligences []string `json:"srcThreatIntelligences,omitempty"` - // ForceSendFields is a list of field names (e.g. "DestAddressGroups") to +// DiskParams: Additional disk params. +type DiskParams struct { + // ResourceManagerTags: Input only. Resource manager tags to be bound to the + // disk. Tag keys and values + // have the same definition as resource + // manager tags. Keys and values can be either in numeric format, + // such as `tagKeys/{tag_key_id}` and `tagValues/{tag_value_id}` or + // in + // namespaced format such as `{org_id|project_id}/{tag_key_short_name}` + // and + // `{tag_value_short_name}`. The field is ignored (both PUT & + // PATCH) when empty. + ResourceManagerTags map[string]string `json:"resourceManagerTags,omitempty"` + // ForceSendFields is a list of field names (e.g. "ResourceManagerTags") to // unconditionally include in API requests. By default, fields with empty or // default values are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. ForceSendFields []string `json:"-"` - // NullFields is a list of field names (e.g. "DestAddressGroups") to include in - // API requests with the JSON null value. By default, fields with empty values - // are omitted from API requests. See + // NullFields is a list of field names (e.g. "ResourceManagerTags") to include + // in API requests with the JSON null value. By default, fields with empty + // values are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } -func (s *FirewallPolicyRuleMatcher) MarshalJSON() ([]byte, error) { - type NoMethod FirewallPolicyRuleMatcher - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s DiskParams) MarshalJSON() ([]byte, error) { + type NoMethod DiskParams + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -type FirewallPolicyRuleMatcherLayer4Config struct { - // IpProtocol: The IP protocol to which this rule applies. The protocol type is - // required when creating a firewall rule. This value can either be one of the - // following well known protocol strings (tcp, udp, icmp, esp, ah, ipip, sctp), - // or the IP protocol number. - IpProtocol string `json:"ipProtocol,omitempty"` - // Ports: An optional list of ports to which this rule applies. This field is - // only applicable for UDP or TCP protocol. Each entry must be either an - // integer or a range. If not specified, this rule applies to connections - // through any port. Example inputs include: ["22"], ["80","443"], and - // ["12345-12349"]. - Ports []string `json:"ports,omitempty"` - // ForceSendFields is a list of field names (e.g. "IpProtocol") to +type DiskResourceStatus struct { + AsyncPrimaryDisk *DiskResourceStatusAsyncReplicationStatus `json:"asyncPrimaryDisk,omitempty"` + // AsyncSecondaryDisks: Key: disk, value: AsyncReplicationStatus message + AsyncSecondaryDisks map[string]DiskResourceStatusAsyncReplicationStatus `json:"asyncSecondaryDisks,omitempty"` + // ForceSendFields is a list of field names (e.g. "AsyncPrimaryDisk") to // unconditionally include in API requests. By default, fields with empty or // default values are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. ForceSendFields []string `json:"-"` - // NullFields is a list of field names (e.g. "IpProtocol") to include in API - // requests with the JSON null value. By default, fields with empty values are - // omitted from API requests. See + // NullFields is a list of field names (e.g. "AsyncPrimaryDisk") to include in + // API requests with the JSON null value. By default, fields with empty values + // are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } -func (s *FirewallPolicyRuleMatcherLayer4Config) MarshalJSON() ([]byte, error) { - type NoMethod FirewallPolicyRuleMatcherLayer4Config - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s DiskResourceStatus) MarshalJSON() ([]byte, error) { + type NoMethod DiskResourceStatus + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -type FirewallPolicyRuleSecureTag struct { - // Name: Name of the secure tag, created with TagManager's TagValue API. - Name string `json:"name,omitempty"` - // State: [Output Only] State of the secure tag, either `EFFECTIVE` or - // `INEFFECTIVE`. A secure tag is `INEFFECTIVE` when it is deleted or its - // network is deleted. - // +type DiskResourceStatusAsyncReplicationStatus struct { // Possible values: - // "EFFECTIVE" - // "INEFFECTIVE" + // "ACTIVE" - Replication is active. + // "CREATED" - Secondary disk is created and is waiting for replication to + // start. + // "STARTING" - Replication is starting. + // "STATE_UNSPECIFIED" + // "STOPPED" - Replication is stopped. + // "STOPPING" - Replication is stopping. State string `json:"state,omitempty"` - // ForceSendFields is a list of field names (e.g. "Name") to unconditionally + // ForceSendFields is a list of field names (e.g. "State") to unconditionally // include in API requests. By default, fields with empty or default values are // omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. ForceSendFields []string `json:"-"` - // NullFields is a list of field names (e.g. "Name") to include in API requests - // with the JSON null value. By default, fields with empty values are omitted - // from API requests. See - // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. - NullFields []string `json:"-"` -} - -func (s *FirewallPolicyRuleSecureTag) MarshalJSON() ([]byte, error) { - type NoMethod FirewallPolicyRuleSecureTag - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) -} - -// FixedOrPercent: Encapsulates numeric value that can be either absolute or -// relative. -type FixedOrPercent struct { - // Calculated: [Output Only] Absolute value of VM instances calculated based on - // the specific mode. - If the value is fixed, then the calculated value is - // equal to the fixed value. - If the value is a percent, then the calculated - // value is percent/100 * targetSize. For example, the calculated value of a - // 80% of a managed instance group with 150 instances would be (80/100 * 150) = - // 120 VM instances. If there is a remainder, the number is rounded. - Calculated int64 `json:"calculated,omitempty"` - // Fixed: Specifies a fixed number of VM instances. This must be a positive - // integer. - Fixed int64 `json:"fixed,omitempty"` - // Percent: Specifies a percentage of instances between 0 to 100%, inclusive. - // For example, specify 80 for 80%. - Percent int64 `json:"percent,omitempty"` - // ForceSendFields is a list of field names (e.g. "Calculated") to - // unconditionally include in API requests. By default, fields with empty or - // default values are omitted from API requests. See - // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more - // details. - ForceSendFields []string `json:"-"` - // NullFields is a list of field names (e.g. "Calculated") to include in API + // NullFields is a list of field names (e.g. "State") to include in API // requests with the JSON null value. By default, fields with empty values are // omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } -func (s *FixedOrPercent) MarshalJSON() ([]byte, error) { - type NoMethod FixedOrPercent - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s DiskResourceStatusAsyncReplicationStatus) MarshalJSON() ([]byte, error) { + type NoMethod DiskResourceStatusAsyncReplicationStatus + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -// ForwardingRule: Represents a Forwarding Rule resource. Forwarding rule -// resources in Google Cloud can be either regional or global in scope: * -// Global -// (https://cloud.google.com/compute/docs/reference/rest/v1/globalForwardingRules) -// * Regional -// (https://cloud.google.com/compute/docs/reference/rest/v1/forwardingRules) A -// forwarding rule and its corresponding IP address represent the frontend -// configuration of a Google Cloud load balancer. Forwarding rules can also -// reference target instances and Cloud VPN Classic gateways -// (targetVpnGateway). For more information, read Forwarding rule concepts and -// Using protocol forwarding. -type ForwardingRule struct { - // IPAddress: IP address for which this forwarding rule accepts traffic. When a - // client sends traffic to this IP address, the forwarding rule directs the - // traffic to the referenced target or backendService. While creating a - // forwarding rule, specifying an IPAddress is required under the following - // circumstances: - When the target is set to targetGrpcProxy and - // validateForProxyless is set to true, the IPAddress should be set to 0.0.0.0. - // - When the target is a Private Service Connect Google APIs bundle, you must - // specify an IPAddress. Otherwise, you can optionally specify an IP address - // that references an existing static (reserved) IP address resource. When - // omitted, Google Cloud assigns an ephemeral IP address. Use one of the - // following formats to specify an IP address while creating a forwarding rule: - // * IP address number, as in `100.1.2.3` * IPv6 address range, as in - // `2600:1234::/96` * Full resource URL, as in - // https://www.googleapis.com/compute/v1/projects/ - // project_id/regions/region/addresses/address-name * Partial URL or by name, - // as in: - projects/project_id/regions/region/addresses/address-name - - // regions/region/addresses/address-name - global/addresses/address-name - - // address-name The forwarding rule's target or backendService, and in most - // cases, also the loadBalancingScheme, determine the type of IP address that - // you can use. For detailed information, see IP address specifications - // (https://cloud.google.com/load-balancing/docs/forwarding-rule-concepts#ip_address_specifications). - // When reading an IPAddress, the API always returns the IP address number. - IPAddress string `json:"IPAddress,omitempty"` - // IPProtocol: The IP protocol to which this rule applies. For protocol - // forwarding, valid options are TCP, UDP, ESP, AH, SCTP, ICMP and L3_DEFAULT. - // The valid IP protocols are different for different load balancing products - // as described in Load balancing features - // (https://cloud.google.com/load-balancing/docs/features#protocols_from_the_load_balancer_to_the_backends). - // - // Possible values: - // "AH" - // "ESP" - // "ICMP" - // "L3_DEFAULT" - // "SCTP" - // "TCP" - // "UDP" - IPProtocol string `json:"IPProtocol,omitempty"` - // AllPorts: The ports, portRange, and allPorts fields are mutually exclusive. - // Only packets addressed to ports in the specified range will be forwarded to - // the backends configured with this forwarding rule. The allPorts field has - // the following limitations: - It requires that the forwarding rule IPProtocol - // be TCP, UDP, SCTP, or L3_DEFAULT. - It's applicable only to the following - // products: internal passthrough Network Load Balancers, backend service-based - // external passthrough Network Load Balancers, and internal and external - // protocol forwarding. - Set this field to true to allow packets addressed to - // any port or packets lacking destination port information (for example, UDP - // fragments after the first fragment) to be forwarded to the backends - // configured with this forwarding rule. The L3_DEFAULT protocol requires - // allPorts be set to true. - AllPorts bool `json:"allPorts,omitempty"` - // AllowGlobalAccess: If set to true, clients can access the internal - // passthrough Network Load Balancers, the regional internal Application Load - // Balancer, and the regional internal proxy Network Load Balancer from all - // regions. If false, only allows access from the local region the load - // balancer is located at. Note that for INTERNAL_MANAGED forwarding rules, - // this field cannot be changed after the forwarding rule is created. - AllowGlobalAccess bool `json:"allowGlobalAccess,omitempty"` - // AllowPscGlobalAccess: This is used in PSC consumer ForwardingRule to control - // whether the PSC endpoint can be accessed from another region. - AllowPscGlobalAccess bool `json:"allowPscGlobalAccess,omitempty"` - // BackendService: Identifies the backend service to which the forwarding rule - // sends traffic. Required for internal and external passthrough Network Load - // Balancers; must be omitted for all other load balancer types. - BackendService string `json:"backendService,omitempty"` - // BaseForwardingRule: [Output Only] The URL for the corresponding base - // forwarding rule. By base forwarding rule, we mean the forwarding rule that - // has the same IP address, protocol, and port settings with the current - // forwarding rule, but without sourceIPRanges specified. Always empty if the - // current forwarding rule does not have sourceIPRanges specified. - BaseForwardingRule string `json:"baseForwardingRule,omitempty"` - // CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text format. +// DiskType: Represents a Disk Type resource. +// +// Google Compute Engine has two Disk Type resources: +// +// * Regional (/compute/docs/reference/rest/v1/regionDiskTypes) +// * Zonal (/compute/docs/reference/rest/v1/diskTypes) +// +// You can choose from a variety of disk types based on your needs. +// For more information, readStorage options. +// +// The diskTypes resource represents disk types for a zonal +// persistent disk. +// For more information, readZonal persistent disks. +// +// The regionDiskTypes resource represents disk types for a +// regional persistent disk. For more information, read Regional persistent +// disks. +type DiskType struct { + // CreationTimestamp: [Output Only] Creation timestamp inRFC3339 + // text format. CreationTimestamp string `json:"creationTimestamp,omitempty"` - // Description: An optional description of this resource. Provide this property - // when you create the resource. + // DefaultDiskSizeGb: [Output Only] Server-defined default disk size in GB. + DefaultDiskSizeGb int64 `json:"defaultDiskSizeGb,omitempty,string"` + // Deprecated -- [Output Only] The deprecation status associated with this disk + // type. + Deprecated *DeprecationStatus `json:"deprecated,omitempty"` + // Description: [Output Only] An optional description of this resource. Description string `json:"description,omitempty"` - // Fingerprint: Fingerprint of this resource. A hash of the contents stored in - // this object. This field is used in optimistic locking. This field will be - // ignored when inserting a ForwardingRule. Include the fingerprint in patch - // request to ensure that you do not overwrite changes that were applied from - // another concurrent request. To see the latest fingerprint, make a get() - // request to retrieve a ForwardingRule. - Fingerprint string `json:"fingerprint,omitempty"` - // Id: [Output Only] The unique identifier for the resource. This identifier is + // Id: [Output Only] The unique identifier for the resource. This identifier + // is // defined by the server. Id uint64 `json:"id,omitempty,string"` - // IpCollection: Resource reference of a PublicDelegatedPrefix. The PDP must be - // a sub-PDP in EXTERNAL_IPV6_FORWARDING_RULE_CREATION mode. Use one of the - // following formats to specify a sub-PDP when creating an IPv6 NetLB - // forwarding rule using BYOIP: Full resource URL, as in - // https://www.googleapis.com/compute/v1/projects/project_id/regions/region - // /publicDelegatedPrefixes/sub-pdp-name Partial URL, as in: - - // projects/project_id/regions/region/publicDelegatedPrefixes/sub-pdp-name - - // regions/region/publicDelegatedPrefixes/sub-pdp-name - IpCollection string `json:"ipCollection,omitempty"` - // IpVersion: The IP Version that will be used by this forwarding rule. Valid - // options are IPV4 or IPV6. - // - // Possible values: - // "IPV4" - // "IPV6" - // "UNSPECIFIED_VERSION" - IpVersion string `json:"ipVersion,omitempty"` - // IsMirroringCollector: Indicates whether or not this load balancer can be - // used as a collector for packet mirroring. To prevent mirroring loops, - // instances behind this load balancer will not have their traffic mirrored - // even if a PacketMirroring rule applies to them. This can only be set to true - // for load balancers that have their loadBalancingScheme set to INTERNAL. - IsMirroringCollector bool `json:"isMirroringCollector,omitempty"` - // Kind: [Output Only] Type of the resource. Always compute#forwardingRule for - // forwarding rule resources. + // Kind: Output only. [Output Only] Type of the resource. Always + // compute#diskType + // for disk types. Kind string `json:"kind,omitempty"` - // LabelFingerprint: A fingerprint for the labels being applied to this - // resource, which is essentially a hash of the labels set used for optimistic - // locking. The fingerprint is initially generated by Compute Engine and - // changes after every request to modify or update labels. You must always - // provide an up-to-date fingerprint hash in order to update or change labels, - // otherwise the request will fail with error 412 conditionNotMet. To see the - // latest fingerprint, make a get() request to retrieve a ForwardingRule. - LabelFingerprint string `json:"labelFingerprint,omitempty"` - // Labels: Labels for this resource. These can only be added or modified by the - // setLabels method. Each label key/value pair must comply with RFC1035. Label - // values may be empty. - Labels map[string]string `json:"labels,omitempty"` - // LoadBalancingScheme: Specifies the forwarding rule type. For more - // information about forwarding rules, refer to Forwarding rule concepts. - // - // Possible values: - // "EXTERNAL" - // "EXTERNAL_MANAGED" - // "INTERNAL" - // "INTERNAL_MANAGED" - // "INTERNAL_SELF_MANAGED" - // "INVALID" - LoadBalancingScheme string `json:"loadBalancingScheme,omitempty"` - // MetadataFilters: Opaque filter criteria used by load balancer to restrict - // routing configuration to a limited set of xDS compliant clients. In their - // xDS requests to load balancer, xDS clients present node metadata. When there - // is a match, the relevant configuration is made available to those proxies. - // Otherwise, all the resources (e.g. TargetHttpProxy, UrlMap) referenced by - // the ForwardingRule are not visible to those proxies. For each metadataFilter - // in this list, if its filterMatchCriteria is set to MATCH_ANY, at least one - // of the filterLabels must match the corresponding label provided in the - // metadata. If its filterMatchCriteria is set to MATCH_ALL, then all of its - // filterLabels must match with corresponding labels provided in the metadata. - // If multiple metadataFilters are specified, all of them need to be satisfied - // in order to be considered a match. metadataFilters specified here will be - // applifed before those specified in the UrlMap that this ForwardingRule - // references. metadataFilters only applies to Loadbalancers that have their - // loadBalancingScheme set to INTERNAL_SELF_MANAGED. - MetadataFilters []*MetadataFilter `json:"metadataFilters,omitempty"` - // Name: Name of the resource; provided by the client when the resource is - // created. The name must be 1-63 characters long, and comply with RFC1035. - // 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. For Private Service Connect forwarding rules that forward traffic to - // Google APIs, the forwarding rule name must be a 1-20 characters string with - // lowercase letters and numbers and must start with a letter. + // Name: [Output Only] Name of the resource. Name string `json:"name,omitempty"` - // Network: This field is not used for global external load balancing. For - // internal passthrough Network Load Balancers, this field identifies the - // network that the load balanced IP should belong to for this forwarding rule. - // If the subnetwork is specified, the network of the subnetwork will be used. - // If neither subnetwork nor this field is specified, the default network will - // be used. For Private Service Connect forwarding rules that forward traffic - // to Google APIs, a network must be provided. - Network string `json:"network,omitempty"` - // NetworkTier: This signifies the networking tier used for configuring this - // load balancer and can only take the following values: PREMIUM, STANDARD. For - // regional ForwardingRule, the valid values are PREMIUM and STANDARD. For - // GlobalForwardingRule, the valid value is PREMIUM. If this field is not - // specified, it is assumed to be PREMIUM. If IPAddress is specified, this - // value must be equal to the networkTier of the Address. - // - // Possible values: - // "FIXED_STANDARD" - Public internet quality with fixed bandwidth. - // "PREMIUM" - High quality, Google-grade network tier, support for all - // networking products. - // "STANDARD" - Public internet quality, only limited support for other - // networking products. - // "STANDARD_OVERRIDES_FIXED_STANDARD" - (Output only) Temporary tier for - // FIXED_STANDARD when fixed standard tier is expired or not configured. - NetworkTier string `json:"networkTier,omitempty"` - // NoAutomateDnsZone: This is used in PSC consumer ForwardingRule to control - // whether it should try to auto-generate a DNS zone or not. Non-PSC forwarding - // rules do not use this field. Once set, this field is not mutable. - NoAutomateDnsZone bool `json:"noAutomateDnsZone,omitempty"` - // PortRange: The ports, portRange, and allPorts fields are mutually exclusive. - // Only packets addressed to ports in the specified range will be forwarded to - // the backends configured with this forwarding rule. The portRange field has - // the following limitations: - It requires that the forwarding rule IPProtocol - // be TCP, UDP, or SCTP, and - It's applicable only to the following products: - // external passthrough Network Load Balancers, internal and external proxy - // Network Load Balancers, internal and external Application Load Balancers, - // external protocol forwarding, and Classic VPN. - Some products have - // restrictions on what ports can be used. See port specifications for details. - // For external forwarding rules, two or more forwarding rules cannot use the - // same [IPAddress, IPProtocol] pair, and cannot have overlapping portRanges. - // For internal forwarding rules within the same VPC network, two or more - // forwarding rules cannot use the same [IPAddress, IPProtocol] pair, and - // cannot have overlapping portRanges. @pattern: \\d+(?:-\\d+)? - PortRange string `json:"portRange,omitempty"` - // Ports: The ports, portRange, and allPorts fields are mutually exclusive. - // Only packets addressed to ports in the specified range will be forwarded to - // the backends configured with this forwarding rule. The ports field has the - // following limitations: - It requires that the forwarding rule IPProtocol be - // TCP, UDP, or SCTP, and - It's applicable only to the following products: - // internal passthrough Network Load Balancers, backend service-based external - // passthrough Network Load Balancers, and internal protocol forwarding. - You - // can specify a list of up to five ports by number, separated by commas. The - // ports can be contiguous or discontiguous. For external forwarding rules, two - // or more forwarding rules cannot use the same [IPAddress, IPProtocol] pair if - // they share at least one port number. For internal forwarding rules within - // the same VPC network, two or more forwarding rules cannot use the same - // [IPAddress, IPProtocol] pair if they share at least one port number. - // @pattern: \\d+(?:-\\d+)? - Ports []string `json:"ports,omitempty"` - // PscConnectionId: [Output Only] The PSC connection id of the PSC forwarding - // rule. - PscConnectionId uint64 `json:"pscConnectionId,omitempty,string"` - // Possible values: - // "ACCEPTED" - The connection has been accepted by the producer. - // "CLOSED" - The connection has been closed by the producer and will not - // serve traffic going forward. - // "NEEDS_ATTENTION" - The connection has been accepted by the producer, but - // the producer needs to take further action before the forwarding rule can - // serve traffic. - // "PENDING" - The connection is pending acceptance by the producer. - // "REJECTED" - The connection has been rejected by the producer. - // "STATUS_UNSPECIFIED" - PscConnectionStatus string `json:"pscConnectionStatus,omitempty"` - // Region: [Output Only] URL of the region where the regional forwarding rule - // resides. This field is not applicable to global forwarding rules. You must - // specify this field as part of the HTTP request URL. It is not settable as a - // field in the request body. + // Region: [Output Only] URL of the region where the disk type resides. + // Only + // applicable for regional resources. + // You must specify this field as part of the HTTP request URL. It is + // not settable as a field in the request body. Region string `json:"region,omitempty"` // SelfLink: [Output Only] Server-defined URL for the resource. SelfLink string `json:"selfLink,omitempty"` - // ServiceDirectoryRegistrations: Service Directory resources to register this - // forwarding rule with. Currently, only supports a single Service Directory - // resource. - ServiceDirectoryRegistrations []*ForwardingRuleServiceDirectoryRegistration `json:"serviceDirectoryRegistrations,omitempty"` - // ServiceLabel: An optional prefix to the service name for this forwarding - // rule. If specified, the prefix is the first label of the fully qualified - // service name. The label must be 1-63 characters long, and comply with - // RFC1035. Specifically, the label must be 1-63 characters long and match the - // regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first - // character must be a lowercase letter, and all following characters must be a - // dash, lowercase letter, or digit, except the last character, which cannot be - // a dash. This field is only used for internal load balancing. - ServiceLabel string `json:"serviceLabel,omitempty"` - // ServiceName: [Output Only] The internal fully qualified service name for - // this forwarding rule. This field is only used for internal load balancing. - ServiceName string `json:"serviceName,omitempty"` - // SourceIpRanges: If not empty, this forwarding rule will only forward the - // traffic when the source IP address matches one of the IP addresses or CIDR - // ranges set here. Note that a forwarding rule can only have up to 64 source - // IP ranges, and this field can only be used with a regional forwarding rule - // whose scheme is EXTERNAL. Each source_ip_range entry should be either an IP - // address (for example, 1.2.3.4) or a CIDR range (for example, 1.2.3.0/24). - SourceIpRanges []string `json:"sourceIpRanges,omitempty"` - // Subnetwork: This field identifies the subnetwork that the load balanced IP - // should belong to for this forwarding rule, used with internal load balancers - // and external passthrough Network Load Balancers with IPv6. If the network - // specified is in auto subnet mode, this field is optional. However, a - // subnetwork must be specified if the network is in custom subnet mode or when - // creating external forwarding rule with IPv6. - Subnetwork string `json:"subnetwork,omitempty"` - // Target: The URL of the target resource to receive the matched traffic. For - // regional forwarding rules, this target must be in the same region as the - // forwarding rule. For global forwarding rules, this target must be a global - // load balancing resource. The forwarded traffic must be of a type appropriate - // to the target object. - For load balancers, see the "Target" column in Port - // specifications - // (https://cloud.google.com/load-balancing/docs/forwarding-rule-concepts#ip_address_specifications). - // - For Private Service Connect forwarding rules that forward traffic to - // Google APIs, provide the name of a supported Google API bundle: - vpc-sc - - // APIs that support VPC Service Controls. - all-apis - All supported Google - // APIs. - For Private Service Connect forwarding rules that forward traffic to - // managed services, the target must be a service attachment. The target is not - // mutable once set as a service attachment. - Target string `json:"target,omitempty"` + // ValidDiskSize: [Output Only] An optional textual description of the valid + // disk size, + // such as "10GB-10TB". + ValidDiskSize string `json:"validDiskSize,omitempty"` + // Zone: [Output Only] URL of the zone where the disk type resides. + // You must specify this field as part of the HTTP request URL. It is + // not settable as a field in the request body. + Zone string `json:"zone,omitempty"` // ServerResponse contains the HTTP response code and headers from the server. googleapi.ServerResponse `json:"-"` - // ForceSendFields is a list of field names (e.g. "IPAddress") to + // ForceSendFields is a list of field names (e.g. "CreationTimestamp") to // unconditionally include in API requests. By default, fields with empty or // default values are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. ForceSendFields []string `json:"-"` - // NullFields is a list of field names (e.g. "IPAddress") to include in API - // requests with the JSON null value. By default, fields with empty values are - // omitted from API requests. See + // NullFields is a list of field names (e.g. "CreationTimestamp") to include in + // API requests with the JSON null value. By default, fields with empty values + // are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } -func (s *ForwardingRule) MarshalJSON() ([]byte, error) { - type NoMethod ForwardingRule - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s DiskType) MarshalJSON() ([]byte, error) { + type NoMethod DiskType + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -type ForwardingRuleAggregatedList struct { +type DiskTypeAggregatedList struct { // Id: [Output Only] Unique identifier for the resource; defined by the server. Id string `json:"id,omitempty"` - // Items: A list of ForwardingRulesScopedList resources. - Items map[string]ForwardingRulesScopedList `json:"items,omitempty"` - // Kind: [Output Only] Type of resource. Always - // compute#forwardingRuleAggregatedList for lists of forwarding rules. + // Items: A list of DiskTypesScopedList resources. + Items map[string]DiskTypesScopedList `json:"items,omitempty"` + // Kind: Output only. [Output Only] Type of resource. + // Alwayscompute#diskTypeAggregatedList. 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. + // results for + // list requests. If the number of results is larger thanmaxResults, 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"` - // SelfLink: [Output Only] Server-defined URL for this resource. + // SelfLink: Output only. [Output Only] Server-defined URL for this resource. SelfLink string `json:"selfLink,omitempty"` - // Unreachables: [Output Only] Unreachable resources. + // Unreachables: Output only. [Output Only] Unreachable resources. Unreachables []string `json:"unreachables,omitempty"` // Warning: [Output Only] Informational warning message. - Warning *ForwardingRuleAggregatedListWarning `json:"warning,omitempty"` + Warning *DiskTypeAggregatedListWarning `json:"warning,omitempty"` // ServerResponse contains the HTTP response code and headers from the server. googleapi.ServerResponse `json:"-"` @@ -11552,77 +14596,98 @@ type ForwardingRuleAggregatedList struct { NullFields []string `json:"-"` } -func (s *ForwardingRuleAggregatedList) MarshalJSON() ([]byte, error) { - type NoMethod ForwardingRuleAggregatedList - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s DiskTypeAggregatedList) MarshalJSON() ([]byte, error) { + type NoMethod DiskTypeAggregatedList + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -// ForwardingRuleAggregatedListWarning: [Output Only] Informational warning -// message. -type ForwardingRuleAggregatedListWarning 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. +// DiskTypeAggregatedListWarning: [Output Only] Informational warning message. +type DiskTypeAggregatedListWarning 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" - Warning about failed cleanup of transient changes made - // by a failed operation. + // by a failed + // operation. // "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was created. // "DEPRECATED_TYPE_USED" - When deploying and at least one of the resources - // has a type marked as deprecated + // has a type marked as + // deprecated // "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk that is // larger than image size. // "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the - // resources has a type marked as experimental + // resources has a type marked as + // experimental // "EXTERNAL_API_WARNING" - Warning that is present in an external api call // "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been - // overridden. Deprecated unused field. + // overridden. + // Deprecated unused field. // "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an injected // kernel, which is deprecated. // "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB" - A WEIGHTED_MAGLEV backend - // service is associated with a health check that is not of type - // HTTP/HTTPS/HTTP2. + // service is associated with a health check that is + // not of type HTTP/HTTPS/HTTP2. // "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a // exceedingly large number of resources // "LIST_OVERHEAD_QUOTA_EXCEED" - Resource can't be retrieved due to list - // overhead quota exceed which captures the amount of resources filtered out by + // overhead quota exceed + // which captures the amount of resources filtered out by // user-defined list filter. // "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is not - // assigned to an instance on the network. + // assigned to an instance on the + // network. // "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot ip // forward. // "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE" - The route's nextHopInstance - // URL refers to an instance that does not have an ipv6 interface on the same - // network as the route. + // URL refers to an instance that does not have an + // ipv6 interface on the same network as the route. // "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL refers to // an instance that does not exist. // "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance URL - // refers to an instance that is not on the same network as the route. + // refers to an instance that is not on the + // same network as the route. // "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not have a // status of RUNNING. // "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to continue - // the process despite the mentioned error. + // the process despite + // the mentioned error. // "NO_RESULTS_ON_PAGE" - No results are present on a particular list page. // "PARTIAL_SUCCESS" - Success is reported, but some results may be missing // due to errors + // "QUOTA_INFO_UNAVAILABLE" - Quota information is not available to client + // requests (e.g: + // regions.list). // "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource that - // requires a TOS they have not accepted. + // requires a TOS they have not + // accepted. // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a resource is // in use. // "RESOURCE_NOT_DELETED" - One or more of the resources set to auto-delete - // could not be deleted because they were in use. + // could not be deleted + // because they were in use. // "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is // ignored. // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in instance - // group manager is valid as such, but its application does not make a lot of - // sense, because it allows only single instance in instance group. + // group manager is valid as such, but + // its application does not make a lot of sense, because it allows only + // single instance in instance group. // "UNDECLARED_PROPERTIES" - When undeclared properties in the schema are // present // "UNREACHABLE" - A given scope cannot be reached. 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 []*ForwardingRuleAggregatedListWarningData `json:"data,omitempty"` + // Data: [Output Only] Metadata about this warning in key: + // value format. For example: + // + // "data": [ + // { + // "key": "scope", + // "value": "zones/us-east1-d" + // } + Data []*DiskTypeAggregatedListWarningData `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 @@ -11638,19 +14703,22 @@ type ForwardingRuleAggregatedListWarning struct { NullFields []string `json:"-"` } -func (s *ForwardingRuleAggregatedListWarning) MarshalJSON() ([]byte, error) { - type NoMethod ForwardingRuleAggregatedListWarning - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s DiskTypeAggregatedListWarning) MarshalJSON() ([]byte, error) { + type NoMethod DiskTypeAggregatedListWarning + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -type ForwardingRuleAggregatedListWarningData 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). +type DiskTypeAggregatedListWarningData 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"` @@ -11667,29 +14735,33 @@ type ForwardingRuleAggregatedListWarningData struct { NullFields []string `json:"-"` } -func (s *ForwardingRuleAggregatedListWarningData) MarshalJSON() ([]byte, error) { - type NoMethod ForwardingRuleAggregatedListWarningData - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s DiskTypeAggregatedListWarningData) MarshalJSON() ([]byte, error) { + type NoMethod DiskTypeAggregatedListWarningData + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -// ForwardingRuleList: Contains a list of ForwardingRule resources. -type ForwardingRuleList struct { +// DiskTypeList: Contains a list of disk types. +type DiskTypeList struct { // Id: [Output Only] Unique identifier for the resource; defined by the server. Id string `json:"id,omitempty"` - // Items: A list of ForwardingRule resources. - Items []*ForwardingRule `json:"items,omitempty"` - // Kind: Type of resource. + // Items: A list of DiskType resources. + Items []*DiskType `json:"items,omitempty"` + // Kind: Output only. [Output Only] Type of resource. Always + // compute#diskTypeList + // for disk types. 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. + // results for + // list requests. If the number of results is larger thanmaxResults, 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"` - // SelfLink: [Output Only] Server-defined URL for this resource. + // SelfLink: Output only. [Output Only] Server-defined URL for this resource. SelfLink string `json:"selfLink,omitempty"` // Warning: [Output Only] Informational warning message. - Warning *ForwardingRuleListWarning `json:"warning,omitempty"` + Warning *DiskTypeListWarning `json:"warning,omitempty"` // ServerResponse contains the HTTP response code and headers from the server. googleapi.ServerResponse `json:"-"` @@ -11706,76 +14778,98 @@ type ForwardingRuleList struct { NullFields []string `json:"-"` } -func (s *ForwardingRuleList) MarshalJSON() ([]byte, error) { - type NoMethod ForwardingRuleList - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s DiskTypeList) MarshalJSON() ([]byte, error) { + type NoMethod DiskTypeList + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -// ForwardingRuleListWarning: [Output Only] Informational warning message. -type ForwardingRuleListWarning 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. +// DiskTypeListWarning: [Output Only] Informational warning message. +type DiskTypeListWarning 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" - Warning about failed cleanup of transient changes made - // by a failed operation. + // by a failed + // operation. // "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was created. // "DEPRECATED_TYPE_USED" - When deploying and at least one of the resources - // has a type marked as deprecated + // has a type marked as + // deprecated // "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk that is // larger than image size. // "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the - // resources has a type marked as experimental + // resources has a type marked as + // experimental // "EXTERNAL_API_WARNING" - Warning that is present in an external api call // "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been - // overridden. Deprecated unused field. + // overridden. + // Deprecated unused field. // "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an injected // kernel, which is deprecated. // "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB" - A WEIGHTED_MAGLEV backend - // service is associated with a health check that is not of type - // HTTP/HTTPS/HTTP2. + // service is associated with a health check that is + // not of type HTTP/HTTPS/HTTP2. // "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a // exceedingly large number of resources // "LIST_OVERHEAD_QUOTA_EXCEED" - Resource can't be retrieved due to list - // overhead quota exceed which captures the amount of resources filtered out by + // overhead quota exceed + // which captures the amount of resources filtered out by // user-defined list filter. // "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is not - // assigned to an instance on the network. + // assigned to an instance on the + // network. // "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot ip // forward. // "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE" - The route's nextHopInstance - // URL refers to an instance that does not have an ipv6 interface on the same - // network as the route. + // URL refers to an instance that does not have an + // ipv6 interface on the same network as the route. // "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL refers to // an instance that does not exist. // "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance URL - // refers to an instance that is not on the same network as the route. + // refers to an instance that is not on the + // same network as the route. // "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not have a // status of RUNNING. // "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to continue - // the process despite the mentioned error. + // the process despite + // the mentioned error. // "NO_RESULTS_ON_PAGE" - No results are present on a particular list page. // "PARTIAL_SUCCESS" - Success is reported, but some results may be missing // due to errors + // "QUOTA_INFO_UNAVAILABLE" - Quota information is not available to client + // requests (e.g: + // regions.list). // "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource that - // requires a TOS they have not accepted. + // requires a TOS they have not + // accepted. // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a resource is // in use. // "RESOURCE_NOT_DELETED" - One or more of the resources set to auto-delete - // could not be deleted because they were in use. + // could not be deleted + // because they were in use. // "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is // ignored. // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in instance - // group manager is valid as such, but its application does not make a lot of - // sense, because it allows only single instance in instance group. + // group manager is valid as such, but + // its application does not make a lot of sense, because it allows only + // single instance in instance group. // "UNDECLARED_PROPERTIES" - When undeclared properties in the schema are // present // "UNREACHABLE" - A given scope cannot be reached. 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 []*ForwardingRuleListWarningData `json:"data,omitempty"` + // Data: [Output Only] Metadata about this warning in key: + // value format. For example: + // + // "data": [ + // { + // "key": "scope", + // "value": "zones/us-east1-d" + // } + Data []*DiskTypeListWarningData `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 @@ -11791,19 +14885,22 @@ type ForwardingRuleListWarning struct { NullFields []string `json:"-"` } -func (s *ForwardingRuleListWarning) MarshalJSON() ([]byte, error) { - type NoMethod ForwardingRuleListWarning - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s DiskTypeListWarning) MarshalJSON() ([]byte, error) { + type NoMethod DiskTypeListWarning + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -type ForwardingRuleListWarningData 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). +type DiskTypeListWarningData 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"` @@ -11820,154 +14917,125 @@ type ForwardingRuleListWarningData struct { NullFields []string `json:"-"` } -func (s *ForwardingRuleListWarningData) MarshalJSON() ([]byte, error) { - type NoMethod ForwardingRuleListWarningData - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) -} - -type ForwardingRuleReference struct { - ForwardingRule string `json:"forwardingRule,omitempty"` - // ForceSendFields is a list of field names (e.g. "ForwardingRule") to - // unconditionally include in API requests. By default, fields with empty or - // default values are omitted from API requests. See - // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more - // details. - ForceSendFields []string `json:"-"` - // NullFields is a list of field names (e.g. "ForwardingRule") to include in - // API requests with the JSON null value. By default, fields with empty values - // are omitted from API requests. See - // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. - NullFields []string `json:"-"` -} - -func (s *ForwardingRuleReference) MarshalJSON() ([]byte, error) { - type NoMethod ForwardingRuleReference - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s DiskTypeListWarningData) MarshalJSON() ([]byte, error) { + type NoMethod DiskTypeListWarningData + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -// ForwardingRuleServiceDirectoryRegistration: Describes the auto-registration -// of the forwarding rule to Service Directory. The region and project of the -// Service Directory resource generated from this registration will be the same -// as this forwarding rule. -type ForwardingRuleServiceDirectoryRegistration struct { - // Namespace: Service Directory namespace to register the forwarding rule - // under. - Namespace string `json:"namespace,omitempty"` - // Service: Service Directory service to register the forwarding rule under. - Service string `json:"service,omitempty"` - // ServiceDirectoryRegion: [Optional] Service Directory region to register this - // global forwarding rule under. Default to "us-central1". Only used for PSC - // for Google APIs. All PSC for Google APIs forwarding rules on the same - // network should use the same Service Directory region. - ServiceDirectoryRegion string `json:"serviceDirectoryRegion,omitempty"` - // ForceSendFields is a list of field names (e.g. "Namespace") to +type DiskTypesScopedList struct { + // DiskTypes: [Output Only] A list of disk types contained in this scope. + DiskTypes []*DiskType `json:"diskTypes,omitempty"` + // Warning: [Output Only] Informational warning which replaces the list of disk + // types + // when the list is empty. + Warning *DiskTypesScopedListWarning `json:"warning,omitempty"` + // ForceSendFields is a list of field names (e.g. "DiskTypes") to // unconditionally include in API requests. By default, fields with empty or // default values are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. ForceSendFields []string `json:"-"` - // NullFields is a list of field names (e.g. "Namespace") to include in API + // NullFields is a list of field names (e.g. "DiskTypes") to include in API // requests with the JSON null value. By default, fields with empty values are // omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } -func (s *ForwardingRuleServiceDirectoryRegistration) MarshalJSON() ([]byte, error) { - type NoMethod ForwardingRuleServiceDirectoryRegistration - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s DiskTypesScopedList) MarshalJSON() ([]byte, error) { + type NoMethod DiskTypesScopedList + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -type ForwardingRulesScopedList struct { - // ForwardingRules: A list of forwarding rules contained in this scope. - ForwardingRules []*ForwardingRule `json:"forwardingRules,omitempty"` - // Warning: Informational warning which replaces the list of forwarding rules - // when the list is empty. - Warning *ForwardingRulesScopedListWarning `json:"warning,omitempty"` - // ForceSendFields is a list of field names (e.g. "ForwardingRules") to - // unconditionally include in API requests. By default, fields with empty or - // default values are omitted from API requests. See - // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more - // details. - ForceSendFields []string `json:"-"` - // NullFields is a list of field names (e.g. "ForwardingRules") to include in - // API requests with the JSON null value. By default, fields with empty values - // are omitted from API requests. See - // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. - NullFields []string `json:"-"` -} - -func (s *ForwardingRulesScopedList) MarshalJSON() ([]byte, error) { - type NoMethod ForwardingRulesScopedList - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) -} - -// ForwardingRulesScopedListWarning: Informational warning which replaces the -// list of forwarding rules when the list is empty. -type ForwardingRulesScopedListWarning 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. +// DiskTypesScopedListWarning: [Output Only] Informational warning which +// replaces the list of disk types +// when the list is empty. +type DiskTypesScopedListWarning 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" - Warning about failed cleanup of transient changes made - // by a failed operation. + // by a failed + // operation. // "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was created. // "DEPRECATED_TYPE_USED" - When deploying and at least one of the resources - // has a type marked as deprecated + // has a type marked as + // deprecated // "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk that is // larger than image size. // "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the - // resources has a type marked as experimental + // resources has a type marked as + // experimental // "EXTERNAL_API_WARNING" - Warning that is present in an external api call // "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been - // overridden. Deprecated unused field. + // overridden. + // Deprecated unused field. // "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an injected // kernel, which is deprecated. // "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB" - A WEIGHTED_MAGLEV backend - // service is associated with a health check that is not of type - // HTTP/HTTPS/HTTP2. + // service is associated with a health check that is + // not of type HTTP/HTTPS/HTTP2. // "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a // exceedingly large number of resources // "LIST_OVERHEAD_QUOTA_EXCEED" - Resource can't be retrieved due to list - // overhead quota exceed which captures the amount of resources filtered out by + // overhead quota exceed + // which captures the amount of resources filtered out by // user-defined list filter. // "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is not - // assigned to an instance on the network. + // assigned to an instance on the + // network. // "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot ip // forward. // "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE" - The route's nextHopInstance - // URL refers to an instance that does not have an ipv6 interface on the same - // network as the route. + // URL refers to an instance that does not have an + // ipv6 interface on the same network as the route. // "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL refers to // an instance that does not exist. // "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance URL - // refers to an instance that is not on the same network as the route. + // refers to an instance that is not on the + // same network as the route. // "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not have a // status of RUNNING. // "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to continue - // the process despite the mentioned error. + // the process despite + // the mentioned error. // "NO_RESULTS_ON_PAGE" - No results are present on a particular list page. // "PARTIAL_SUCCESS" - Success is reported, but some results may be missing // due to errors + // "QUOTA_INFO_UNAVAILABLE" - Quota information is not available to client + // requests (e.g: + // regions.list). // "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource that - // requires a TOS they have not accepted. + // requires a TOS they have not + // accepted. // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a resource is // in use. // "RESOURCE_NOT_DELETED" - One or more of the resources set to auto-delete - // could not be deleted because they were in use. + // could not be deleted + // because they were in use. // "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is // ignored. // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in instance - // group manager is valid as such, but its application does not make a lot of - // sense, because it allows only single instance in instance group. + // group manager is valid as such, but + // its application does not make a lot of sense, because it allows only + // single instance in instance group. // "UNDECLARED_PROPERTIES" - When undeclared properties in the schema are // present // "UNREACHABLE" - A given scope cannot be reached. 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 []*ForwardingRulesScopedListWarningData `json:"data,omitempty"` + // Data: [Output Only] Metadata about this warning in key: + // value format. For example: + // + // "data": [ + // { + // "key": "scope", + // "value": "zones/us-east1-d" + // } + Data []*DiskTypesScopedListWarningData `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 @@ -11983,19 +15051,22 @@ type ForwardingRulesScopedListWarning struct { NullFields []string `json:"-"` } -func (s *ForwardingRulesScopedListWarning) MarshalJSON() ([]byte, error) { - type NoMethod ForwardingRulesScopedListWarning - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s DiskTypesScopedListWarning) MarshalJSON() ([]byte, error) { + type NoMethod DiskTypesScopedListWarning + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -type ForwardingRulesScopedListWarningData 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). +type DiskTypesScopedListWarningData 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"` @@ -12012,783 +15083,1201 @@ type ForwardingRulesScopedListWarningData struct { NullFields []string `json:"-"` } -func (s *ForwardingRulesScopedListWarningData) MarshalJSON() ([]byte, error) { - type NoMethod ForwardingRulesScopedListWarningData - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s DiskTypesScopedListWarningData) MarshalJSON() ([]byte, error) { + type NoMethod DiskTypesScopedListWarningData + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -type GRPCHealthCheck struct { - // GrpcServiceName: The gRPC service name for the health check. This field is - // optional. The value of grpc_service_name has the following meanings by - // convention: - Empty service_name means the overall status of all services at - // the backend. - Non-empty service_name means the health of that gRPC service, - // as defined by the owner of the service. The grpc_service_name can only be - // ASCII. - GrpcServiceName string `json:"grpcServiceName,omitempty"` - // Port: The TCP port number to which the health check prober sends packets. - // Valid values are 1 through 65535. - Port int64 `json:"port,omitempty"` - // PortName: Not supported. - PortName string `json:"portName,omitempty"` - // PortSpecification: Specifies how a port is selected for health checking. Can - // be one of the following values: USE_FIXED_PORT: Specifies a port number - // explicitly using the port field in the health check. Supported by backend - // services for passthrough load balancers and backend services for proxy load - // balancers. Not supported by target pools. The health check supports all - // backends supported by the backend service provided the backend can be health - // checked. For example, GCE_VM_IP network endpoint groups, GCE_VM_IP_PORT - // network endpoint groups, and instance group backends. USE_NAMED_PORT: Not - // supported. USE_SERVING_PORT: Provides an indirect method of specifying the - // health check port by referring to the backend service. Only supported by - // backend services for proxy load balancers. Not supported by target pools. - // Not supported by backend services for passthrough load balancers. Supports - // all backends that can be health checked; for example, GCE_VM_IP_PORT network - // endpoint groups and instance group backends. For GCE_VM_IP_PORT network - // endpoint group backends, the health check uses the port number specified for - // each endpoint in the network endpoint group. For instance group backends, - // the health check uses the port number determined by looking up the backend - // service's named port in the instance group's list of named ports. +type DiskUpdateKmsKeyRequest struct { + // KmsKeyName: Optional. The new KMS key to replace the current one on the + // disk. If empty, the disk + // will be re-encrypted using the primary version of the disk's current + // KMS + // key. // - // Possible values: - // "USE_FIXED_PORT" - The port number in the health check's port is used for - // health checking. Applies to network endpoint group and instance group - // backends. - // "USE_NAMED_PORT" - Not supported. - // "USE_SERVING_PORT" - For network endpoint group backends, the health check - // uses the port number specified on each endpoint in the network endpoint - // group. For instance group backends, the health check uses the port number - // specified for the backend service's named port defined in the instance - // group's named ports. - PortSpecification string `json:"portSpecification,omitempty"` - // ForceSendFields is a list of field names (e.g. "GrpcServiceName") to + // The KMS key can be provided in the following formats: + // + // + // - + // projects/project_id/locations/location/keyRings/key_ring/cryptoKeys/key + // + // + // Where project is the project ID or + // project number. + KmsKeyName string `json:"kmsKeyName,omitempty"` + // ForceSendFields is a list of field names (e.g. "KmsKeyName") to // unconditionally include in API requests. By default, fields with empty or // default values are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. ForceSendFields []string `json:"-"` - // NullFields is a list of field names (e.g. "GrpcServiceName") to include in - // API requests with the JSON null value. By default, fields with empty values - // are omitted from API requests. See + // NullFields is a list of field names (e.g. "KmsKeyName") to include in API + // requests with the JSON null value. By default, fields with empty values are + // omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } -func (s *GRPCHealthCheck) MarshalJSON() ([]byte, error) { - type NoMethod GRPCHealthCheck - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s DiskUpdateKmsKeyRequest) MarshalJSON() ([]byte, error) { + type NoMethod DiskUpdateKmsKeyRequest + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -type GlobalAddressesMoveRequest struct { - // Description: An optional destination address description if intended to be - // different from the source. - Description string `json:"description,omitempty"` - // DestinationAddress: The URL of the destination address to move to. This can - // be a full or partial URL. For example, the following are all valid URLs to a - // address: - https://www.googleapis.com/compute/v1/projects/project - // /global/addresses/address - projects/project/global/addresses/address Note - // that destination project must be different from the source project. So - // /global/addresses/address is not valid partial url. - DestinationAddress string `json:"destinationAddress,omitempty"` - // ForceSendFields is a list of field names (e.g. "Description") to +type DisksAddResourcePoliciesRequest struct { + // ResourcePolicies: Full or relative path to the resource policy to be added + // to this disk. You + // can only specify one resource policy. + ResourcePolicies []string `json:"resourcePolicies,omitempty"` + // ForceSendFields is a list of field names (e.g. "ResourcePolicies") to // unconditionally include in API requests. By default, fields with empty or // default values are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. ForceSendFields []string `json:"-"` - // NullFields is a list of field names (e.g. "Description") to include in API - // requests with the JSON null value. By default, fields with empty values are - // omitted from API requests. See + // NullFields is a list of field names (e.g. "ResourcePolicies") to include in + // API requests with the JSON null value. By default, fields with empty values + // are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } -func (s *GlobalAddressesMoveRequest) MarshalJSON() ([]byte, error) { - type NoMethod GlobalAddressesMoveRequest - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s DisksAddResourcePoliciesRequest) MarshalJSON() ([]byte, error) { + type NoMethod DisksAddResourcePoliciesRequest + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -type GlobalNetworkEndpointGroupsAttachEndpointsRequest struct { - // NetworkEndpoints: The list of network endpoints to be attached. - NetworkEndpoints []*NetworkEndpoint `json:"networkEndpoints,omitempty"` - // ForceSendFields is a list of field names (e.g. "NetworkEndpoints") to +type DisksRemoveResourcePoliciesRequest struct { + // ResourcePolicies: Resource policies to be removed from this disk. + ResourcePolicies []string `json:"resourcePolicies,omitempty"` + // ForceSendFields is a list of field names (e.g. "ResourcePolicies") to // unconditionally include in API requests. By default, fields with empty or // default values are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. ForceSendFields []string `json:"-"` - // NullFields is a list of field names (e.g. "NetworkEndpoints") to include in + // NullFields is a list of field names (e.g. "ResourcePolicies") to include in // API requests with the JSON null value. By default, fields with empty values // are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } -func (s *GlobalNetworkEndpointGroupsAttachEndpointsRequest) MarshalJSON() ([]byte, error) { - type NoMethod GlobalNetworkEndpointGroupsAttachEndpointsRequest - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s DisksRemoveResourcePoliciesRequest) MarshalJSON() ([]byte, error) { + type NoMethod DisksRemoveResourcePoliciesRequest + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -type GlobalNetworkEndpointGroupsDetachEndpointsRequest struct { - // NetworkEndpoints: The list of network endpoints to be detached. - NetworkEndpoints []*NetworkEndpoint `json:"networkEndpoints,omitempty"` - // ForceSendFields is a list of field names (e.g. "NetworkEndpoints") to - // unconditionally include in API requests. By default, fields with empty or - // default values are omitted from API requests. See +type DisksResizeRequest struct { + // SizeGb: The new size of the persistent disk, which is specified in GB. + SizeGb int64 `json:"sizeGb,omitempty,string"` + // ForceSendFields is a list of field names (e.g. "SizeGb") to unconditionally + // include in API requests. By default, fields with empty or default values are + // omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. ForceSendFields []string `json:"-"` - // NullFields is a list of field names (e.g. "NetworkEndpoints") to include in - // API requests with the JSON null value. By default, fields with empty values - // are omitted from API requests. See + // NullFields is a list of field names (e.g. "SizeGb") to include in API + // requests with the JSON null value. By default, fields with empty values are + // omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } -func (s *GlobalNetworkEndpointGroupsDetachEndpointsRequest) MarshalJSON() ([]byte, error) { - type NoMethod GlobalNetworkEndpointGroupsDetachEndpointsRequest - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s DisksResizeRequest) MarshalJSON() ([]byte, error) { + type NoMethod DisksResizeRequest + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -type GlobalOrganizationSetPolicyRequest struct { - // Bindings: Flatten Policy to create a backward compatible wire-format. - // Deprecated. Use 'policy' to specify bindings. - Bindings []*Binding `json:"bindings,omitempty"` - // Etag: Flatten Policy to create a backward compatible wire-format. - // Deprecated. Use 'policy' to specify the etag. - Etag string `json:"etag,omitempty"` - // Policy: REQUIRED: The complete policy to be applied to the 'resource'. The - // size of the policy is limited to a few 10s of KB. An empty policy is in - // general a valid policy but certain services (like Projects) might reject - // them. - Policy *Policy `json:"policy,omitempty"` - // ForceSendFields is a list of field names (e.g. "Bindings") to - // unconditionally include in API requests. By default, fields with empty or - // default values are omitted from API requests. See +type DisksScopedList struct { + // Disks: [Output Only] A list of disks contained in this scope. + Disks []*Disk `json:"disks,omitempty"` + // Warning: [Output Only] Informational warning which replaces the list of + // disks when + // the list is empty. + Warning *DisksScopedListWarning `json:"warning,omitempty"` + // ForceSendFields is a list of field names (e.g. "Disks") to unconditionally + // include in API requests. By default, fields with empty or default values are + // omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. ForceSendFields []string `json:"-"` - // NullFields is a list of field names (e.g. "Bindings") to include in API + // NullFields is a list of field names (e.g. "Disks") to include in API // requests with the JSON null value. By default, fields with empty values are // omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } -func (s *GlobalOrganizationSetPolicyRequest) MarshalJSON() ([]byte, error) { - type NoMethod GlobalOrganizationSetPolicyRequest - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s DisksScopedList) MarshalJSON() ([]byte, error) { + type NoMethod DisksScopedList + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -type GlobalSetLabelsRequest struct { - // LabelFingerprint: The fingerprint of the previous set of labels for this - // resource, used to detect conflicts. The fingerprint is initially generated - // by Compute Engine and changes after every request to modify or update - // labels. You must always provide an up-to-date fingerprint hash when updating - // or changing labels, otherwise the request will fail with error 412 - // conditionNotMet. Make a get() request to the resource to get the latest - // fingerprint. - LabelFingerprint string `json:"labelFingerprint,omitempty"` - // Labels: A list of labels to apply for this resource. Each label must comply - // with the requirements for labels. For example, "webserver-frontend": - // "images". A label value can also be empty (e.g. "my-label": ""). - Labels map[string]string `json:"labels,omitempty"` - // ForceSendFields is a list of field names (e.g. "LabelFingerprint") to +// DisksScopedListWarning: [Output Only] Informational warning which replaces +// the list of disks when +// the list is empty. +type DisksScopedListWarning 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" - Warning about failed cleanup of transient changes made + // by a failed + // operation. + // "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was created. + // "DEPRECATED_TYPE_USED" - When deploying and at least one of the resources + // has a type marked as + // deprecated + // "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk that is + // larger than image size. + // "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the + // resources has a type marked as + // experimental + // "EXTERNAL_API_WARNING" - Warning that is present in an external api call + // "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been + // overridden. + // Deprecated unused field. + // "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an injected + // kernel, which is deprecated. + // "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB" - A WEIGHTED_MAGLEV backend + // service is associated with a health check that is + // not of type HTTP/HTTPS/HTTP2. + // "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a + // exceedingly large number of resources + // "LIST_OVERHEAD_QUOTA_EXCEED" - Resource can't be retrieved due to list + // overhead quota exceed + // which captures the amount of resources filtered out by + // user-defined list filter. + // "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type + // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is not + // assigned to an instance on the + // network. + // "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot ip + // forward. + // "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE" - The route's nextHopInstance + // URL refers to an instance that does not have an + // ipv6 interface on the same network as the route. + // "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL refers to + // an instance that does not exist. + // "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance URL + // refers to an instance that is not on the + // same network as the route. + // "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not have a + // status of RUNNING. + // "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to continue + // the process despite + // the mentioned error. + // "NO_RESULTS_ON_PAGE" - No results are present on a particular list page. + // "PARTIAL_SUCCESS" - Success is reported, but some results may be missing + // due to errors + // "QUOTA_INFO_UNAVAILABLE" - Quota information is not available to client + // requests (e.g: + // regions.list). + // "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource that + // requires a TOS they have not + // accepted. + // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a resource is + // in use. + // "RESOURCE_NOT_DELETED" - One or more of the resources set to auto-delete + // could not be deleted + // because they were in use. + // "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is + // ignored. + // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in instance + // group manager is valid as such, but + // its application does not make a lot of sense, because it allows only + // single instance in instance group. + // "UNDECLARED_PROPERTIES" - When undeclared properties in the schema are + // present + // "UNREACHABLE" - A given scope cannot be reached. + 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 []*DisksScopedListWarningData `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 or default values are + // omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + 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. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s DisksScopedListWarning) MarshalJSON() ([]byte, error) { + type NoMethod DisksScopedListWarning + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +type DisksScopedListWarningData 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 or default values are + // omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + 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. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s DisksScopedListWarningData) MarshalJSON() ([]byte, error) { + type NoMethod DisksScopedListWarningData + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +type DisksStartAsyncReplicationRequest struct { + // AsyncSecondaryDisk: The secondary disk to start asynchronous replication + // to. + // 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/disks/disk + // + // - + // + // https://www.googleapis.com/compute/v1/projects/project/regions/region/disks/disk + // + // - + // projects/project/zones/zone/disks/disk + // + // - + // projects/project/regions/region/disks/disk + // + // - + // zones/zone/disks/disk + // + // - + // regions/region/disks/disk + AsyncSecondaryDisk string `json:"asyncSecondaryDisk,omitempty"` + // ForceSendFields is a list of field names (e.g. "AsyncSecondaryDisk") to // unconditionally include in API requests. By default, fields with empty or // default values are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. ForceSendFields []string `json:"-"` - // NullFields is a list of field names (e.g. "LabelFingerprint") to include in + // NullFields is a list of field names (e.g. "AsyncSecondaryDisk") to include + // in API requests with the JSON null value. By default, fields with empty + // values are omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s DisksStartAsyncReplicationRequest) MarshalJSON() ([]byte, error) { + type NoMethod DisksStartAsyncReplicationRequest + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +// DisksStopGroupAsyncReplicationResource: A transient resource used in +// compute.disks.stopGroupAsyncReplication +// and +// compute.regionDisks.stopGroupAsyncReplication. It is only used to +// process +// requests and is not persisted. +type DisksStopGroupAsyncReplicationResource struct { + // ResourcePolicy: The URL of the DiskConsistencyGroupPolicy for the group of + // disks to stop. + // This may be a full or partial URL, such as: + // + // + // - + // + // https://www.googleapis.com/compute/v1/projects/project/regions/region/resourcePolicies/resourcePolicy + // + // - + // projects/project/regions/region/resourcePolicies/resourcePolicy + // + // - + // regions/region/resourcePolicies/resourcePolicy + ResourcePolicy string `json:"resourcePolicy,omitempty"` + // ForceSendFields is a list of field names (e.g. "ResourcePolicy") to + // unconditionally include in API requests. By default, fields with empty or + // default values are omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + ForceSendFields []string `json:"-"` + // NullFields is a list of field names (e.g. "ResourcePolicy") to include in // API requests with the JSON null value. By default, fields with empty values // are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } -func (s *GlobalSetLabelsRequest) MarshalJSON() ([]byte, error) { - type NoMethod GlobalSetLabelsRequest - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s DisksStopGroupAsyncReplicationResource) MarshalJSON() ([]byte, error) { + type NoMethod DisksStopGroupAsyncReplicationResource + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -type GlobalSetPolicyRequest struct { - // Bindings: Flatten Policy to create a backward compatible wire-format. - // Deprecated. Use 'policy' to specify bindings. - Bindings []*Binding `json:"bindings,omitempty"` - // Etag: Flatten Policy to create a backward compatible wire-format. - // Deprecated. Use 'policy' to specify the etag. - Etag string `json:"etag,omitempty"` - // Policy: REQUIRED: The complete policy to be applied to the 'resource'. The - // size of the policy is limited to a few 10s of KB. An empty policy is in - // general a valid policy but certain services (like Projects) might reject - // them. - Policy *Policy `json:"policy,omitempty"` - // ForceSendFields is a list of field names (e.g. "Bindings") to +// DisplayDevice: A set of Display Device options +type DisplayDevice struct { + // EnableDisplay: Defines whether the instance has Display enabled. + EnableDisplay bool `json:"enableDisplay,omitempty"` + // ForceSendFields is a list of field names (e.g. "EnableDisplay") to // unconditionally include in API requests. By default, fields with empty or // default values are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. ForceSendFields []string `json:"-"` - // NullFields is a list of field names (e.g. "Bindings") to include in API + // NullFields is a list of field names (e.g. "EnableDisplay") to include in API // requests with the JSON null value. By default, fields with empty values are // omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } -func (s *GlobalSetPolicyRequest) MarshalJSON() ([]byte, error) { - type NoMethod GlobalSetPolicyRequest - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s DisplayDevice) MarshalJSON() ([]byte, error) { + type NoMethod DisplayDevice + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -// GuestAttributes: A guest attributes entry. -type GuestAttributes struct { - // Kind: [Output Only] Type of the resource. Always compute#guestAttributes for - // guest attributes entry. - Kind string `json:"kind,omitempty"` - // QueryPath: The path to be queried. This can be the default namespace ('') or - // a nested namespace ('\/') or a specified key ('\/\'). - QueryPath string `json:"queryPath,omitempty"` - // QueryValue: [Output Only] The value of the requested queried path. - QueryValue *GuestAttributesValue `json:"queryValue,omitempty"` - // SelfLink: [Output Only] Server-defined URL for this resource. - SelfLink string `json:"selfLink,omitempty"` - // VariableKey: The key to search for. - VariableKey string `json:"variableKey,omitempty"` - // VariableValue: [Output Only] The value found for the requested key. - VariableValue string `json:"variableValue,omitempty"` - - // ServerResponse contains the HTTP response code and headers from the server. - googleapi.ServerResponse `json:"-"` - // ForceSendFields is a list of field names (e.g. "Kind") to unconditionally - // include in API requests. By default, fields with empty or default values are - // omitted from API requests. See +type DistributionPolicy struct { + // TargetShape: The distribution shape to which the group converges either + // proactively or + // on resize events (depending on the value set + // inupdatePolicy.instanceRedistributionType). + // + // Possible values: + // "ANY" - The group picks zones for creating VM instances to fulfill the + // requested + // number of VMs within present resource constraints and to + // maximize + // utilization of unused zonal reservations. Recommended for batch + // workloads + // that do not require high availability. + // "ANY_SINGLE_ZONE" - The group creates all VM instances within a single + // zone. The zone is + // selected based on the present resource constraints and to + // maximize + // utilization of unused zonal reservations. + // Recommended for batch workloads with heavy interprocess communication. + // "BALANCED" - The group prioritizes acquisition of resources, scheduling + // VMs in zones + // where resources are available while distributing VMs as evenly as + // possible across selected zones to minimize the impact of zonal + // failure. + // Recommended for highly available serving workloads. + // "EVEN" - The group schedules VM instance creation and deletion to achieve + // and + // maintain an even number of managed instances across the selected zones. + // The distribution is even when the number of managed instances does + // not + // differ by more than 1 between any two zones. Recommended for + // highly + // available serving workloads. + TargetShape string `json:"targetShape,omitempty"` + // Zones: Zones where the regional managed instance group will create and + // manage + // its instances. + // By default, a regional MIG doesn't automatically select an AI zone to + // create + // instances, even if an AI zone is available in the specified region. + // To + // create instances in an AI zone in the selected region, you must + // explicitly + // specify it in the distribution policy together with the other + // preferred + // zones. + Zones []*DistributionPolicyZoneConfiguration `json:"zones,omitempty"` + // ForceSendFields is a list of field names (e.g. "TargetShape") to + // unconditionally include in API requests. By default, fields with empty or + // default values are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. ForceSendFields []string `json:"-"` - // NullFields is a list of field names (e.g. "Kind") to include in API requests - // with the JSON null value. By default, fields with empty values are omitted - // from API requests. See + // NullFields is a list of field names (e.g. "TargetShape") to include in API + // requests with the JSON null value. By default, fields with empty values are + // omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } -func (s *GuestAttributes) MarshalJSON() ([]byte, error) { - type NoMethod GuestAttributes - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s DistributionPolicy) MarshalJSON() ([]byte, error) { + type NoMethod DistributionPolicy + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -// GuestAttributesEntry: A guest attributes namespace/key/value entry. -type GuestAttributesEntry struct { - // Key: Key for the guest attribute entry. - Key string `json:"key,omitempty"` - // Namespace: Namespace for the guest attribute entry. - Namespace string `json:"namespace,omitempty"` - // Value: Value for the guest attribute entry. - Value string `json:"value,omitempty"` - // ForceSendFields is a list of field names (e.g. "Key") to unconditionally +type DistributionPolicyZoneConfiguration struct { + // Zone: The URL of thezone. + // The zone must exist in the region where the managed instance group + // is + // located. + Zone string `json:"zone,omitempty"` + // ForceSendFields is a list of field names (e.g. "Zone") to unconditionally // include in API requests. By default, fields with empty or default values are // omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. ForceSendFields []string `json:"-"` - // NullFields is a list of field names (e.g. "Key") to include in API requests + // NullFields is a list of field names (e.g. "Zone") to include in API requests // with the JSON null value. By default, fields with empty values are omitted // from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } -func (s *GuestAttributesEntry) MarshalJSON() ([]byte, error) { - type NoMethod GuestAttributesEntry - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s DistributionPolicyZoneConfiguration) MarshalJSON() ([]byte, error) { + type NoMethod DistributionPolicyZoneConfiguration + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -// GuestAttributesValue: Array of guest attribute namespace/key/value tuples. -type GuestAttributesValue struct { - Items []*GuestAttributesEntry `json:"items,omitempty"` - // ForceSendFields is a list of field names (e.g. "Items") to unconditionally +// Duration: A Duration represents a fixed-length span of time represented +// as a count of seconds and fractions of seconds at nanosecond +// resolution. It is independent of any calendar and concepts like "day" +// or "month". Range is approximately 10,000 years. +type Duration struct { + // Nanos: Span of time that's a fraction of a second at nanosecond + // resolution. + // Durations less than one second are represented with a 0 + // `seconds` field and a positive `nanos` field. Must be from 0 + // to 999,999,999 inclusive. + Nanos int64 `json:"nanos,omitempty"` + // Seconds: Span of time at a resolution of a second. Must be from 0 + // to 315,576,000,000 inclusive. Note: these bounds are computed from: + // 60 sec/min * 60 min/hr * 24 hr/day * 365.25 days/year * 10000 years + Seconds int64 `json:"seconds,omitempty,string"` + // ForceSendFields is a list of field names (e.g. "Nanos") to unconditionally // include in API requests. By default, fields with empty or default values are // omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. ForceSendFields []string `json:"-"` - // NullFields is a list of field names (e.g. "Items") to include in API + // NullFields is a list of field names (e.g. "Nanos") to include in API // requests with the JSON null value. By default, fields with empty values are // omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } -func (s *GuestAttributesValue) MarshalJSON() ([]byte, error) { - type NoMethod GuestAttributesValue - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s Duration) MarshalJSON() ([]byte, error) { + type NoMethod Duration + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -// GuestOsFeature: Guest OS features. -type GuestOsFeature struct { - // Type: The ID of a supported feature. To add multiple values, use commas to - // separate values. Set to one or more of the following values: - - // VIRTIO_SCSI_MULTIQUEUE - WINDOWS - MULTI_IP_SUBNET - UEFI_COMPATIBLE - GVNIC - // - SEV_CAPABLE - SUSPEND_RESUME_COMPATIBLE - SEV_LIVE_MIGRATABLE_V2 - - // SEV_SNP_CAPABLE - TDX_CAPABLE - IDPF For more information, see Enabling - // guest operating system features. +// ErrorInfo: Describes the cause of the error with structured +// details. +// +// Example of an error when contacting the "pubsub.googleapis.com" API when +// it +// is not enabled: +// +// { "reason": "API_DISABLED" +// "domain": "googleapis.com" +// "metadata": { +// "resource": "projects/123", +// "service": "pubsub.googleapis.com" +// } +// } +// +// This response indicates that the pubsub.googleapis.com API is not +// enabled. +// +// Example of an error that is returned when attempting to create a +// Spanner +// instance in a region that is out of stock: +// +// { "reason": "STOCKOUT" +// "domain": "spanner.googleapis.com", +// "metadata": { +// "availableRegions": "us-central1,us-east2" +// } +// } +type ErrorInfo struct { + // Domain: The logical grouping to which the "reason" belongs. The error + // domain + // is typically the registered service name of the tool or product + // that + // generates the error. Example: "pubsub.googleapis.com". If the error + // is + // generated by some common infrastructure, the error domain must be a + // globally unique value that identifies the infrastructure. For Google + // API + // infrastructure, the error domain is "googleapis.com". + Domain string `json:"domain,omitempty"` + // Metadatas: Additional structured details about this error. // - // Possible values: - // "FEATURE_TYPE_UNSPECIFIED" - // "GVNIC" - // "IDPF" - // "MULTI_IP_SUBNET" - // "SECURE_BOOT" - // "SEV_CAPABLE" - // "SEV_LIVE_MIGRATABLE" - // "SEV_LIVE_MIGRATABLE_V2" - // "SEV_SNP_CAPABLE" - // "UEFI_COMPATIBLE" - // "VIRTIO_SCSI_MULTIQUEUE" - // "WINDOWS" - Type string `json:"type,omitempty"` - // ForceSendFields is a list of field names (e.g. "Type") to unconditionally + // Keys must match a regular expression of `a-z+` but should + // ideally be lowerCamelCase. Also, they must be limited to 64 characters + // in + // length. When identifying the current value of an exceeded limit, the + // units + // should be contained in the key, not the value. For example, rather + // than + // `{"instanceLimit": "100/request"}`, should be returned + // as, + // `{"instanceLimitPerRequest": "100"}`, if the client exceeds the number + // of + // instances that can be created in a single (batch) request. + Metadatas map[string]string `json:"metadatas,omitempty"` + // Reason: The reason of the error. This is a constant value that identifies + // the + // proximate cause of the error. Error reasons are unique within a + // particular + // domain of errors. This should be at most 63 characters and match a + // regular expression of `A-Z+[A-Z0-9]`, which represents + // UPPER_SNAKE_CASE. + Reason string `json:"reason,omitempty"` + // ForceSendFields is a list of field names (e.g. "Domain") to unconditionally // include in API requests. By default, fields with empty or default values are // omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. ForceSendFields []string `json:"-"` - // NullFields is a list of field names (e.g. "Type") to include in API requests - // with the JSON null value. By default, fields with empty values are omitted - // from API requests. See + // NullFields is a list of field names (e.g. "Domain") to include in API + // requests with the JSON null value. By default, fields with empty values are + // omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } -func (s *GuestOsFeature) MarshalJSON() ([]byte, error) { - type NoMethod GuestOsFeature - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s ErrorInfo) MarshalJSON() ([]byte, error) { + type NoMethod ErrorInfo + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -type HTTP2HealthCheck struct { - // Host: The value of the host header in the HTTP/2 health check request. If - // left empty (default value), the host header is set to the destination IP - // address to which health check packets are sent. The destination IP address - // depends on the type of load balancer. For details, see: - // https://cloud.google.com/load-balancing/docs/health-check-concepts#hc-packet-dest - Host string `json:"host,omitempty"` - // Port: The TCP port number to which the health check prober sends packets. - // The default value is 443. Valid values are 1 through 65535. - Port int64 `json:"port,omitempty"` - // PortName: Not supported. - PortName string `json:"portName,omitempty"` - // PortSpecification: Specifies how a port is selected for health checking. Can - // be one of the following values: USE_FIXED_PORT: Specifies a port number - // explicitly using the port field in the health check. Supported by backend - // services for passthrough load balancers and backend services for proxy load - // balancers. Not supported by target pools. The health check supports all - // backends supported by the backend service provided the backend can be health - // checked. For example, GCE_VM_IP network endpoint groups, GCE_VM_IP_PORT - // network endpoint groups, and instance group backends. USE_NAMED_PORT: Not - // supported. USE_SERVING_PORT: Provides an indirect method of specifying the - // health check port by referring to the backend service. Only supported by - // backend services for proxy load balancers. Not supported by target pools. - // Not supported by backend services for passthrough load balancers. Supports - // all backends that can be health checked; for example, GCE_VM_IP_PORT network - // endpoint groups and instance group backends. For GCE_VM_IP_PORT network - // endpoint group backends, the health check uses the port number specified for - // each endpoint in the network endpoint group. For instance group backends, - // the health check uses the port number determined by looking up the backend - // service's named port in the instance group's list of named ports. - // - // Possible values: - // "USE_FIXED_PORT" - The port number in the health check's port is used for - // health checking. Applies to network endpoint group and instance group - // backends. - // "USE_NAMED_PORT" - Not supported. - // "USE_SERVING_PORT" - For network endpoint group backends, the health check - // uses the port number specified on each endpoint in the network endpoint - // group. For instance group backends, the health check uses the port number - // specified for the backend service's named port defined in the instance - // group's named ports. - PortSpecification string `json:"portSpecification,omitempty"` - // ProxyHeader: Specifies the type of proxy header to append before sending - // data to the backend, either NONE or PROXY_V1. The default is NONE. +type ExchangedPeeringRoute struct { + // DestRange: The destination range of the route. + DestRange string `json:"destRange,omitempty"` + // Imported: True if the peering route has been imported from a peer. The + // actual import + // happens if the field networkPeering.importCustomRoutes is true + // for this network, and networkPeering.exportCustomRoutes is + // true for the peer network, and the import does not result in a + // route + // conflict. + Imported bool `json:"imported,omitempty"` + // NextHopRegion: The region of peering route next hop, only applies to dynamic + // routes. + NextHopRegion string `json:"nextHopRegion,omitempty"` + // Priority: The priority of the peering route. + Priority int64 `json:"priority,omitempty"` + // Type: The type of the peering route. // // Possible values: - // "NONE" - // "PROXY_V1" - ProxyHeader string `json:"proxyHeader,omitempty"` - // RequestPath: The request path of the HTTP/2 health check request. The - // default value is /. Must comply with RFC3986. - RequestPath string `json:"requestPath,omitempty"` - // Response: Creates a content-based HTTP/2 health check. In addition to the - // required HTTP 200 (OK) status code, you can configure the health check to - // pass only when the backend sends this specific ASCII response string within - // the first 1024 bytes of the HTTP response body. For details, see: - // https://cloud.google.com/load-balancing/docs/health-check-concepts#criteria-protocol-http - Response string `json:"response,omitempty"` - // ForceSendFields is a list of field names (e.g. "Host") to unconditionally - // include in API requests. By default, fields with empty or default values are - // omitted from API requests. See + // "DYNAMIC_PEERING_ROUTE" - For routes exported from local network. + // "STATIC_PEERING_ROUTE" - The peering route. + // "SUBNET_PEERING_ROUTE" - The peering route corresponding to subnetwork + // range. + Type string `json:"type,omitempty"` + // ForceSendFields is a list of field names (e.g. "DestRange") to + // unconditionally include in API requests. By default, fields with empty or + // default values are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. ForceSendFields []string `json:"-"` - // NullFields is a list of field names (e.g. "Host") to include in API requests - // with the JSON null value. By default, fields with empty values are omitted - // from API requests. See + // NullFields is a list of field names (e.g. "DestRange") to include in API + // requests with the JSON null value. By default, fields with empty values are + // omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } -func (s *HTTP2HealthCheck) MarshalJSON() ([]byte, error) { - type NoMethod HTTP2HealthCheck - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s ExchangedPeeringRoute) MarshalJSON() ([]byte, error) { + type NoMethod ExchangedPeeringRoute + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -type HTTPHealthCheck struct { - // Host: The value of the host header in the HTTP health check request. If left - // empty (default value), the host header is set to the destination IP address - // to which health check packets are sent. The destination IP address depends - // on the type of load balancer. For details, see: - // https://cloud.google.com/load-balancing/docs/health-check-concepts#hc-packet-dest - Host string `json:"host,omitempty"` - // Port: The TCP port number to which the health check prober sends packets. - // The default value is 80. Valid values are 1 through 65535. - Port int64 `json:"port,omitempty"` - // PortName: Not supported. - PortName string `json:"portName,omitempty"` - // PortSpecification: Specifies how a port is selected for health checking. Can - // be one of the following values: USE_FIXED_PORT: Specifies a port number - // explicitly using the port field in the health check. Supported by backend - // services for passthrough load balancers and backend services for proxy load - // balancers. Also supported in legacy HTTP health checks for target pools. The - // health check supports all backends supported by the backend service provided - // the backend can be health checked. For example, GCE_VM_IP network endpoint - // groups, GCE_VM_IP_PORT network endpoint groups, and instance group backends. - // USE_NAMED_PORT: Not supported. USE_SERVING_PORT: Provides an indirect method - // of specifying the health check port by referring to the backend service. - // Only supported by backend services for proxy load balancers. Not supported - // by target pools. Not supported by backend services for pass-through load - // balancers. Supports all backends that can be health checked; for example, - // GCE_VM_IP_PORT network endpoint groups and instance group backends. For - // GCE_VM_IP_PORT network endpoint group backends, the health check uses the - // port number specified for each endpoint in the network endpoint group. For - // instance group backends, the health check uses the port number determined by - // looking up the backend service's named port in the instance group's list of - // named ports. - // - // Possible values: - // "USE_FIXED_PORT" - The port number in the health check's port is used for - // health checking. Applies to network endpoint group and instance group - // backends. - // "USE_NAMED_PORT" - Not supported. - // "USE_SERVING_PORT" - For network endpoint group backends, the health check - // uses the port number specified on each endpoint in the network endpoint - // group. For instance group backends, the health check uses the port number - // specified for the backend service's named port defined in the instance - // group's named ports. - PortSpecification string `json:"portSpecification,omitempty"` - // ProxyHeader: Specifies the type of proxy header to append before sending - // data to the backend, either NONE or PROXY_V1. The default is NONE. - // - // Possible values: - // "NONE" - // "PROXY_V1" - ProxyHeader string `json:"proxyHeader,omitempty"` - // RequestPath: The request path of the HTTP health check request. The default - // value is /. Must comply with RFC3986. - RequestPath string `json:"requestPath,omitempty"` - // Response: Creates a content-based HTTP health check. In addition to the - // required HTTP 200 (OK) status code, you can configure the health check to - // pass only when the backend sends this specific ASCII response string within - // the first 1024 bytes of the HTTP response body. For details, see: - // https://cloud.google.com/load-balancing/docs/health-check-concepts#criteria-protocol-http - Response string `json:"response,omitempty"` - // ForceSendFields is a list of field names (e.g. "Host") to unconditionally +type ExchangedPeeringRoutesList struct { + // Id: [Output Only] Unique identifier for the resource; defined by the server. + Id string `json:"id,omitempty"` + // Items: A list of ExchangedPeeringRoute resources. + Items []*ExchangedPeeringRoute `json:"items,omitempty"` + // Kind: Output only. [Output Only] Type of resource. + // Alwayscompute#exchangedPeeringRoutesList for exchanged peering + // routes lists. + 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 thanmaxResults, 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"` + // SelfLink: Output only. [Output Only] Server-defined URL for this resource. + SelfLink string `json:"selfLink,omitempty"` + // Warning: [Output Only] Informational warning message. + Warning *ExchangedPeeringRoutesListWarning `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 or default values are // omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. ForceSendFields []string `json:"-"` - // NullFields is a list of field names (e.g. "Host") to include in API requests + // 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. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } -func (s *HTTPHealthCheck) MarshalJSON() ([]byte, error) { - type NoMethod HTTPHealthCheck - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s ExchangedPeeringRoutesList) MarshalJSON() ([]byte, error) { + type NoMethod ExchangedPeeringRoutesList + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -type HTTPSHealthCheck struct { - // Host: The value of the host header in the HTTPS health check request. If - // left empty (default value), the host header is set to the destination IP - // address to which health check packets are sent. The destination IP address - // depends on the type of load balancer. For details, see: - // https://cloud.google.com/load-balancing/docs/health-check-concepts#hc-packet-dest - Host string `json:"host,omitempty"` - // Port: The TCP port number to which the health check prober sends packets. - // The default value is 443. Valid values are 1 through 65535. - Port int64 `json:"port,omitempty"` - // PortName: Not supported. - PortName string `json:"portName,omitempty"` - // PortSpecification: Specifies how a port is selected for health checking. Can - // be one of the following values: USE_FIXED_PORT: Specifies a port number - // explicitly using the port field in the health check. Supported by backend - // services for passthrough load balancers and backend services for proxy load - // balancers. Not supported by target pools. The health check supports all - // backends supported by the backend service provided the backend can be health - // checked. For example, GCE_VM_IP network endpoint groups, GCE_VM_IP_PORT - // network endpoint groups, and instance group backends. USE_NAMED_PORT: Not - // supported. USE_SERVING_PORT: Provides an indirect method of specifying the - // health check port by referring to the backend service. Only supported by - // backend services for proxy load balancers. Not supported by target pools. - // Not supported by backend services for passthrough load balancers. Supports - // all backends that can be health checked; for example, GCE_VM_IP_PORT network - // endpoint groups and instance group backends. For GCE_VM_IP_PORT network - // endpoint group backends, the health check uses the port number specified for - // each endpoint in the network endpoint group. For instance group backends, - // the health check uses the port number determined by looking up the backend - // service's named port in the instance group's list of named ports. +// ExchangedPeeringRoutesListWarning: [Output Only] Informational warning +// message. +type ExchangedPeeringRoutesListWarning 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: - // "USE_FIXED_PORT" - The port number in the health check's port is used for - // health checking. Applies to network endpoint group and instance group - // backends. - // "USE_NAMED_PORT" - Not supported. - // "USE_SERVING_PORT" - For network endpoint group backends, the health check - // uses the port number specified on each endpoint in the network endpoint - // group. For instance group backends, the health check uses the port number - // specified for the backend service's named port defined in the instance - // group's named ports. - PortSpecification string `json:"portSpecification,omitempty"` - // ProxyHeader: Specifies the type of proxy header to append before sending - // data to the backend, either NONE or PROXY_V1. The default is NONE. + // "CLEANUP_FAILED" - Warning about failed cleanup of transient changes made + // by a failed + // operation. + // "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was created. + // "DEPRECATED_TYPE_USED" - When deploying and at least one of the resources + // has a type marked as + // deprecated + // "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk that is + // larger than image size. + // "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the + // resources has a type marked as + // experimental + // "EXTERNAL_API_WARNING" - Warning that is present in an external api call + // "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been + // overridden. + // Deprecated unused field. + // "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an injected + // kernel, which is deprecated. + // "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB" - A WEIGHTED_MAGLEV backend + // service is associated with a health check that is + // not of type HTTP/HTTPS/HTTP2. + // "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a + // exceedingly large number of resources + // "LIST_OVERHEAD_QUOTA_EXCEED" - Resource can't be retrieved due to list + // overhead quota exceed + // which captures the amount of resources filtered out by + // user-defined list filter. + // "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type + // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is not + // assigned to an instance on the + // network. + // "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot ip + // forward. + // "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE" - The route's nextHopInstance + // URL refers to an instance that does not have an + // ipv6 interface on the same network as the route. + // "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL refers to + // an instance that does not exist. + // "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance URL + // refers to an instance that is not on the + // same network as the route. + // "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not have a + // status of RUNNING. + // "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to continue + // the process despite + // the mentioned error. + // "NO_RESULTS_ON_PAGE" - No results are present on a particular list page. + // "PARTIAL_SUCCESS" - Success is reported, but some results may be missing + // due to errors + // "QUOTA_INFO_UNAVAILABLE" - Quota information is not available to client + // requests (e.g: + // regions.list). + // "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource that + // requires a TOS they have not + // accepted. + // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a resource is + // in use. + // "RESOURCE_NOT_DELETED" - One or more of the resources set to auto-delete + // could not be deleted + // because they were in use. + // "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is + // ignored. + // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in instance + // group manager is valid as such, but + // its application does not make a lot of sense, because it allows only + // single instance in instance group. + // "UNDECLARED_PROPERTIES" - When undeclared properties in the schema are + // present + // "UNREACHABLE" - A given scope cannot be reached. + Code string `json:"code,omitempty"` + // Data: [Output Only] Metadata about this warning in key: + // value format. For example: // - // Possible values: - // "NONE" - // "PROXY_V1" - ProxyHeader string `json:"proxyHeader,omitempty"` - // RequestPath: The request path of the HTTPS health check request. The default - // value is /. Must comply with RFC3986. - RequestPath string `json:"requestPath,omitempty"` - // Response: Creates a content-based HTTPS health check. In addition to the - // required HTTP 200 (OK) status code, you can configure the health check to - // pass only when the backend sends this specific ASCII response string within - // the first 1024 bytes of the HTTP response body. For details, see: - // https://cloud.google.com/load-balancing/docs/health-check-concepts#criteria-protocol-http - Response string `json:"response,omitempty"` - // ForceSendFields is a list of field names (e.g. "Host") to unconditionally + // "data": [ + // { + // "key": "scope", + // "value": "zones/us-east1-d" + // } + Data []*ExchangedPeeringRoutesListWarningData `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 or default values are // omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. ForceSendFields []string `json:"-"` - // NullFields is a list of field names (e.g. "Host") to include in API requests + // 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. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } -func (s *HTTPSHealthCheck) MarshalJSON() ([]byte, error) { - type NoMethod HTTPSHealthCheck - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) -} - -// HealthCheck: Represents a health check resource. Google Compute Engine has -// two health check resources: * Regional -// (/compute/docs/reference/rest/v1/regionHealthChecks) * Global -// (/compute/docs/reference/rest/v1/healthChecks) These health check resources -// can be used for load balancing and for autohealing VMs in a managed instance -// group (MIG). **Load balancing** Health check requirements vary depending on -// the type of load balancer. For details about the type of health check -// supported for each load balancer and corresponding backend type, see Health -// checks overview: Load balancer guide. **Autohealing in MIGs** The health -// checks that you use for autohealing VMs in a MIG can be either regional or -// global. For more information, see Set up an application health check and -// autohealing. For more information, see Health checks overview. -type HealthCheck struct { - // CheckIntervalSec: How often (in seconds) to send a health check. The default - // value is 5 seconds. - CheckIntervalSec int64 `json:"checkIntervalSec,omitempty"` - // CreationTimestamp: [Output Only] Creation timestamp in 3339 text format. +func (s ExchangedPeeringRoutesListWarning) MarshalJSON() ([]byte, error) { + type NoMethod ExchangedPeeringRoutesListWarning + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +type ExchangedPeeringRoutesListWarningData 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 or default values are + // omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + 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. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s ExchangedPeeringRoutesListWarningData) MarshalJSON() ([]byte, error) { + type NoMethod ExchangedPeeringRoutesListWarningData + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +// Expr: Represents a textual expression in the Common Expression Language +// (CEL) +// syntax. CEL is a C-like expression language. The syntax and semantics of +// CEL +// are documented at https://github.com/google/cel-spec. +// +// Example (Comparison): +// +// title: "Summary size limit" +// description: "Determines if a summary is less than 100 chars" +// expression: "document.summary.size() < 100" +// +// Example (Equality): +// +// title: "Requestor is owner" +// description: "Determines if requestor is the document owner" +// expression: "document.owner == request.auth.claims.email" +// +// Example (Logic): +// +// title: "Public documents" +// description: "Determine whether the document should be publicly +// +// visible" +// +// expression: "document.type != 'private' && document.type != +// +// 'internal'" +// +// Example (Data Manipulation): +// +// title: "Notification string" +// description: "Create a notification string with a timestamp." +// expression: "'New message received at ' + +// +// string(document.create_time)" +// +// The exact variables and functions that may be referenced within an +// expression +// are determined by the service that evaluates it. See the +// service +// documentation for additional information. +type Expr struct { + // Description: Optional. Description of the expression. This is a longer text + // which + // describes the expression, e.g. when hovered over it in a UI. + Description string `json:"description,omitempty"` + // Expression: Textual representation of an expression in Common Expression + // Language + // syntax. + Expression string `json:"expression,omitempty"` + // Location: Optional. String indicating the location of the expression for + // error + // reporting, e.g. a file name and a position in the file. + Location string `json:"location,omitempty"` + // Title: Optional. Title for the expression, i.e. a short string + // describing + // its purpose. This can be used e.g. in UIs which allow to enter + // the + // expression. + Title string `json:"title,omitempty"` + // ForceSendFields is a list of field names (e.g. "Description") to + // unconditionally include in API requests. By default, fields with empty or + // default values are omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + ForceSendFields []string `json:"-"` + // NullFields is a list of field names (e.g. "Description") to include in API + // requests with the JSON null value. By default, fields with empty values are + // omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s Expr) MarshalJSON() ([]byte, error) { + type NoMethod Expr + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +// ExternalVpnGateway: Represents an external VPN gateway. +// +// External VPN gateway is the on-premises VPN gateway(s) or another +// cloud +// provider's VPN gateway that connects to your Google Cloud VPN gateway. +// +// To create a highly available VPN from Google Cloud Platform to your +// VPN gateway or another cloud provider's VPN gateway, you must create +// a +// external VPN gateway resource with information about the other gateway. +// +// For more information about using external VPN gateways, see +// Creating an HA VPN gateway and tunnel pair to a peer VPN. +type ExternalVpnGateway struct { + // CreationTimestamp: Output only. [Output Only] Creation timestamp + // inRFC3339 + // text format. CreationTimestamp string `json:"creationTimestamp,omitempty"` // Description: An optional description of this resource. Provide this property - // when you create the resource. - Description string `json:"description,omitempty"` - GrpcHealthCheck *GRPCHealthCheck `json:"grpcHealthCheck,omitempty"` - // HealthyThreshold: A so-far unhealthy instance will be marked healthy after - // this many consecutive successes. The default value is 2. - HealthyThreshold int64 `json:"healthyThreshold,omitempty"` - Http2HealthCheck *HTTP2HealthCheck `json:"http2HealthCheck,omitempty"` - HttpHealthCheck *HTTPHealthCheck `json:"httpHealthCheck,omitempty"` - HttpsHealthCheck *HTTPSHealthCheck `json:"httpsHealthCheck,omitempty"` - // Id: [Output Only] The unique identifier for the resource. This identifier is + // when you + // create the resource. + Description string `json:"description,omitempty"` + // Id: Output only. [Output Only] The unique identifier for the resource. This + // identifier is // defined by the server. - Id uint64 `json:"id,omitempty,string"` - // Kind: Type of the resource. + Id *uint64 `json:"id,omitempty,string"` + // Interfaces: A list of interfaces for this external VPN gateway. + // + // If your peer-side gateway is an on-premises gateway and non-AWS + // cloud + // providers' gateway, at most two interfaces can be provided for an + // external + // VPN gateway. If your peer side is an AWS virtual private gateway, + // four + // interfaces should be provided for an external VPN gateway. + Interfaces []*ExternalVpnGatewayInterface `json:"interfaces,omitempty"` + // Kind: Output only. [Output Only] Type of the resource. + // Alwayscompute#externalVpnGateway for externalVpnGateways. Kind string `json:"kind,omitempty"` - // LogConfig: Configure logging on this health check. - LogConfig *HealthCheckLogConfig `json:"logConfig,omitempty"` + // LabelFingerprint: A fingerprint for the labels being applied to this + // ExternalVpnGateway, + // which is essentially a hash of the labels set used for optimistic + // locking. + // The fingerprint is initially generated by Compute Engine and changes + // after + // every request to modify or update labels. You must always provide + // an + // up-to-date fingerprint hash in order to update or change labels, + // otherwise the request will fail with error412 conditionNotMet. + // + // To see the latest fingerprint, make a get() request to + // retrieve an ExternalVpnGateway. + LabelFingerprint string `json:"labelFingerprint,omitempty"` + // Labels: Labels for this resource. These can only be added or modified by + // thesetLabels method. Each label key/value pair must comply + // withRFC1035. + // Label values may be empty. + Labels map[string]string `json:"labels,omitempty"` // Name: Name of the resource. Provided by the client when the resource is - // created. The name must be 1-63 characters long, and comply with RFC1035. For - // example, a name that is 1-63 characters long, matches the regular expression - // `[a-z]([-a-z0-9]*[a-z0-9])?`, and otherwise complies with RFC1035. This - // regular expression describes a name where the first character is a lowercase - // letter, and all following characters are a dash, lowercase letter, or digit, - // except the last character, which isn't a dash. + // created. + // The name must be 1-63 characters long, and comply withRFC1035. + // 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. Name string `json:"name,omitempty"` - // Region: [Output Only] Region where the health check resides. Not applicable - // to global health checks. - Region string `json:"region,omitempty"` - // SelfLink: [Output Only] Server-defined URL for the resource. - SelfLink string `json:"selfLink,omitempty"` - SslHealthCheck *SSLHealthCheck `json:"sslHealthCheck,omitempty"` - TcpHealthCheck *TCPHealthCheck `json:"tcpHealthCheck,omitempty"` - // TimeoutSec: How long (in seconds) to wait before claiming failure. The - // default value is 5 seconds. It is invalid for timeoutSec to have greater - // value than checkIntervalSec. - TimeoutSec int64 `json:"timeoutSec,omitempty"` - // Type: Specifies the type of the healthCheck, either TCP, SSL, HTTP, HTTPS, - // HTTP2 or GRPC. Exactly one of the protocol-specific health check fields must - // be specified, which must match type field. + // Params: Input only. [Input Only] Additional params passed with the request, + // but not persisted + // as part of resource payload. + Params *ExternalVpnGatewayParams `json:"params,omitempty"` + // RedundancyType: Indicates the user-supplied redundancy type of this external + // VPN gateway. // // Possible values: - // "GRPC" - // "HTTP" - // "HTTP2" - // "HTTPS" - // "INVALID" - // "SSL" - // "TCP" - Type string `json:"type,omitempty"` - // UnhealthyThreshold: A so-far healthy instance will be marked unhealthy after - // this many consecutive failures. The default value is 2. - UnhealthyThreshold int64 `json:"unhealthyThreshold,omitempty"` + // "FOUR_IPS_REDUNDANCY" - The external VPN gateway has four public IP + // addresses; at the time of + // writing this API, the AWS virtual private gateway is an example which + // has + // four public IP addresses for high availability connections; there should + // be two VPN connections in the AWS virtual private gateway , each AWS + // VPN + // connection has two public IP addresses; please make sure to put two + // public IP addresses from one AWS VPN connection into interfaces 0 and 1 + // of this external VPN gateway, and put the other two public IP addresses + // from another AWS VPN connection into interfaces 2 and 3 of this external + // VPN gateway. When displaying highly available configuration status + // for the VPN tunnels connected to FOUR_IPS_REDUNDANCY external VPN + // gateway, Google will always detect whether interfaces 0 and 1 are + // connected on one interface of HA Cloud VPN gateway, and detect + // whether + // interfaces 2 and 3 are connected to another interface of the HA Cloud + // VPN + // gateway. + // "SINGLE_IP_INTERNALLY_REDUNDANT" - The external VPN gateway has only one + // public IP address which internally + // provide redundancy or failover. + // "TWO_IPS_REDUNDANCY" - The external VPN gateway has two public IP + // addresses which are redundant + // with each other, the following two types of setup on your on-premises + // side would have this type of redundancy: + // (1) Two separate on-premises gateways, each with one public IP address, + // the two on-premises gateways are redundant with each other. + // (2) A single on-premise gateway with two public IP addresses that are + // redundant with eatch other. + RedundancyType string `json:"redundancyType,omitempty"` + // SelfLink: Output only. [Output Only] Server-defined URL for the resource. + SelfLink string `json:"selfLink,omitempty"` // ServerResponse contains the HTTP response code and headers from the server. googleapi.ServerResponse `json:"-"` - // ForceSendFields is a list of field names (e.g. "CheckIntervalSec") to + // ForceSendFields is a list of field names (e.g. "CreationTimestamp") to // unconditionally include in API requests. By default, fields with empty or // default values are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. ForceSendFields []string `json:"-"` - // NullFields is a list of field names (e.g. "CheckIntervalSec") to include in + // NullFields is a list of field names (e.g. "CreationTimestamp") to include in // API requests with the JSON null value. By default, fields with empty values // are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } -func (s *HealthCheck) MarshalJSON() ([]byte, error) { - type NoMethod HealthCheck - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s ExternalVpnGateway) MarshalJSON() ([]byte, error) { + type NoMethod ExternalVpnGateway + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -// HealthCheckList: Contains a list of HealthCheck resources. -type HealthCheckList struct { +// ExternalVpnGatewayInterface: The interface for the external VPN gateway. +type ExternalVpnGatewayInterface struct { + // Id: The numeric ID of this interface. + // The allowed input values for this id for different redundancy types + // of + // external VPN gateway: + // + // - SINGLE_IP_INTERNALLY_REDUNDANT - 0 + // - TWO_IPS_REDUNDANCY - 0, 1 + // - FOUR_IPS_REDUNDANCY - 0, 1, 2, 3 + Id int64 `json:"id,omitempty"` + // IpAddress: IP address of the interface in the external VPN gateway. Only + // IPv4 is + // supported. This IP address can be either from your on-premise gateway + // or + // another Cloud provider's VPN gateway, it cannot be an IP address from + // Google Compute Engine. + IpAddress string `json:"ipAddress,omitempty"` + // Ipv6Address: IPv6 address of the interface in the external VPN gateway. This + // IPv6 + // address can be either from your on-premise gateway or another + // Cloud + // provider's VPN gateway, it cannot be an IP address from Google + // Compute + // Engine. Must specify an IPv6 address (not IPV4-mapped) using any + // format + // described in RFC 4291 (e.g. 2001:db8:0:0:2d9:51:0:0). The output format + // is RFC 5952 format (e.g. 2001:db8::2d9:51:0:0). + Ipv6Address string `json:"ipv6Address,omitempty"` + // ForceSendFields is a list of field names (e.g. "Id") to unconditionally + // include in API requests. By default, fields with empty or default values are + // omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + 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. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s ExternalVpnGatewayInterface) MarshalJSON() ([]byte, error) { + type NoMethod ExternalVpnGatewayInterface + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +// ExternalVpnGatewayList: Response to the list request, and contains a list of +// externalVpnGateways. +type ExternalVpnGatewayList struct { + Etag string `json:"etag,omitempty"` // Id: [Output Only] Unique identifier for the resource; defined by the server. Id string `json:"id,omitempty"` - // Items: A list of HealthCheck resources. - Items []*HealthCheck `json:"items,omitempty"` - // Kind: Type of resource. + // Items: A list of ExternalVpnGateway resources. + Items []*ExternalVpnGateway `json:"items,omitempty"` + // Kind: Output only. [Output Only] Type of resource. Always + // compute#externalVpnGatewayList for lists of externalVpnGateways. 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. + // results for + // list requests. If the number of results is larger thanmaxResults, 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"` - // SelfLink: [Output Only] Server-defined URL for this resource. + // SelfLink: Output only. [Output Only] Server-defined URL for this resource. SelfLink string `json:"selfLink,omitempty"` // Warning: [Output Only] Informational warning message. - Warning *HealthCheckListWarning `json:"warning,omitempty"` + Warning *ExternalVpnGatewayListWarning `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 + // ForceSendFields is a list of field names (e.g. "Etag") to unconditionally // include in API requests. By default, fields with empty or default values are // omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. ForceSendFields []string `json:"-"` - // NullFields is a list of field names (e.g. "Id") to include in API requests + // NullFields is a list of field names (e.g. "Etag") to include in API requests // with the JSON null value. By default, fields with empty values are omitted // from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } -func (s *HealthCheckList) MarshalJSON() ([]byte, error) { - type NoMethod HealthCheckList - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s ExternalVpnGatewayList) MarshalJSON() ([]byte, error) { + type NoMethod ExternalVpnGatewayList + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -// HealthCheckListWarning: [Output Only] Informational warning message. -type HealthCheckListWarning 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. +// ExternalVpnGatewayListWarning: [Output Only] Informational warning message. +type ExternalVpnGatewayListWarning 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" - Warning about failed cleanup of transient changes made - // by a failed operation. + // by a failed + // operation. // "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was created. // "DEPRECATED_TYPE_USED" - When deploying and at least one of the resources - // has a type marked as deprecated + // has a type marked as + // deprecated // "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk that is // larger than image size. // "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the - // resources has a type marked as experimental + // resources has a type marked as + // experimental // "EXTERNAL_API_WARNING" - Warning that is present in an external api call // "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been - // overridden. Deprecated unused field. + // overridden. + // Deprecated unused field. // "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an injected // kernel, which is deprecated. // "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB" - A WEIGHTED_MAGLEV backend - // service is associated with a health check that is not of type - // HTTP/HTTPS/HTTP2. + // service is associated with a health check that is + // not of type HTTP/HTTPS/HTTP2. // "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a // exceedingly large number of resources // "LIST_OVERHEAD_QUOTA_EXCEED" - Resource can't be retrieved due to list - // overhead quota exceed which captures the amount of resources filtered out by + // overhead quota exceed + // which captures the amount of resources filtered out by // user-defined list filter. // "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is not - // assigned to an instance on the network. + // assigned to an instance on the + // network. // "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot ip // forward. // "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE" - The route's nextHopInstance - // URL refers to an instance that does not have an ipv6 interface on the same - // network as the route. + // URL refers to an instance that does not have an + // ipv6 interface on the same network as the route. // "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL refers to // an instance that does not exist. // "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance URL - // refers to an instance that is not on the same network as the route. + // refers to an instance that is not on the + // same network as the route. // "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not have a // status of RUNNING. // "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to continue - // the process despite the mentioned error. + // the process despite + // the mentioned error. // "NO_RESULTS_ON_PAGE" - No results are present on a particular list page. // "PARTIAL_SUCCESS" - Success is reported, but some results may be missing // due to errors + // "QUOTA_INFO_UNAVAILABLE" - Quota information is not available to client + // requests (e.g: + // regions.list). // "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource that - // requires a TOS they have not accepted. + // requires a TOS they have not + // accepted. // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a resource is // in use. // "RESOURCE_NOT_DELETED" - One or more of the resources set to auto-delete - // could not be deleted because they were in use. + // could not be deleted + // because they were in use. // "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is // ignored. // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in instance - // group manager is valid as such, but its application does not make a lot of - // sense, because it allows only single instance in instance group. + // group manager is valid as such, but + // its application does not make a lot of sense, because it allows only + // single instance in instance group. // "UNDECLARED_PROPERTIES" - When undeclared properties in the schema are // present // "UNREACHABLE" - A given scope cannot be reached. 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 []*HealthCheckListWarningData `json:"data,omitempty"` + // Data: [Output Only] Metadata about this warning in key: + // value format. For example: + // + // "data": [ + // { + // "key": "scope", + // "value": "zones/us-east1-d" + // } + Data []*ExternalVpnGatewayListWarningData `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 @@ -12804,19 +16293,22 @@ type HealthCheckListWarning struct { NullFields []string `json:"-"` } -func (s *HealthCheckListWarning) MarshalJSON() ([]byte, error) { - type NoMethod HealthCheckListWarning - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s ExternalVpnGatewayListWarning) MarshalJSON() ([]byte, error) { + type NoMethod ExternalVpnGatewayListWarning + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -type HealthCheckListWarningData 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). +type ExternalVpnGatewayListWarningData 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"` @@ -12833,201 +16325,356 @@ type HealthCheckListWarningData struct { NullFields []string `json:"-"` } -func (s *HealthCheckListWarningData) MarshalJSON() ([]byte, error) { - type NoMethod HealthCheckListWarningData - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) -} - -// HealthCheckLogConfig: Configuration of logging on a health check. If logging -// is enabled, logs will be exported to Stackdriver. -type HealthCheckLogConfig struct { - // Enable: Indicates whether or not to export logs. This is false by default, - // which means no health check logging will be done. - Enable bool `json:"enable,omitempty"` - // ForceSendFields is a list of field names (e.g. "Enable") to unconditionally - // include in API requests. By default, fields with empty or default values are - // omitted from API requests. See +func (s ExternalVpnGatewayListWarningData) MarshalJSON() ([]byte, error) { + type NoMethod ExternalVpnGatewayListWarningData + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +type ExternalVpnGatewayParams struct { + // ResourceManagerTags: Tag keys/values directly bound to this resource. + // Tag keys and values have the same definition as resource + // manager tags. The field is allowed for INSERT + // only. The keys/values to set on the resource should be specified in + // either ID { : } or Namespaced format + // { : }. + // For example the following are valid inputs: + // * {"tagKeys/333" : "tagValues/444", "tagKeys/123" : "tagValues/456"} + // * {"123/environment" : "production", "345/abc" : "xyz"} + // Note: + // * Invalid combinations of ID & namespaced format is not supported. For + // instance: {"123/environment" : "tagValues/444"} is invalid. + // * Inconsistent format is not supported. For instance: + // {"tagKeys/333" : "tagValues/444", "123/env" : "prod"} is invalid. + ResourceManagerTags map[string]string `json:"resourceManagerTags,omitempty"` + // ForceSendFields is a list of field names (e.g. "ResourceManagerTags") to + // unconditionally include in API requests. By default, fields with empty or + // default values are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. ForceSendFields []string `json:"-"` - // NullFields is a list of field names (e.g. "Enable") to include in API - // requests with the JSON null value. By default, fields with empty values are - // omitted from API requests. See + // NullFields is a list of field names (e.g. "ResourceManagerTags") to include + // in API requests with the JSON null value. By default, fields with empty + // values are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } -func (s *HealthCheckLogConfig) MarshalJSON() ([]byte, error) { - type NoMethod HealthCheckLogConfig - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s ExternalVpnGatewayParams) MarshalJSON() ([]byte, error) { + type NoMethod ExternalVpnGatewayParams + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -// HealthCheckReference: A full or valid partial URL to a health check. For -// example, the following are valid URLs: - -// https://www.googleapis.com/compute/beta/projects/project-id/global/httpHealthChecks/health-check -// - projects/project-id/global/httpHealthChecks/health-check - -// global/httpHealthChecks/health-check -type HealthCheckReference struct { - HealthCheck string `json:"healthCheck,omitempty"` - // ForceSendFields is a list of field names (e.g. "HealthCheck") to - // unconditionally include in API requests. By default, fields with empty or - // default values are omitted from API requests. See +type FileContentBuffer struct { + // Content: The raw content in the secure keys file. + Content string `json:"content,omitempty"` + // FileType: The file type of source file. + // + // Possible values: + // "BIN" + // "UNDEFINED" + // "X509" + FileType string `json:"fileType,omitempty"` + // ForceSendFields is a list of field names (e.g. "Content") to unconditionally + // include in API requests. By default, fields with empty or default values are + // omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. ForceSendFields []string `json:"-"` - // NullFields is a list of field names (e.g. "HealthCheck") to include in API + // NullFields is a list of field names (e.g. "Content") to include in API // requests with the JSON null value. By default, fields with empty values are // omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } -func (s *HealthCheckReference) MarshalJSON() ([]byte, error) { - type NoMethod HealthCheckReference - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s FileContentBuffer) MarshalJSON() ([]byte, error) { + type NoMethod FileContentBuffer + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -// HealthCheckService: Represents a Health-Check as a Service resource. -type HealthCheckService struct { - // CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text format. +// Firewall: Represents a Firewall Rule resource. +// +// Firewall rules allow or deny ingress traffic to, and egress traffic from +// your +// instances. For more information, readFirewall rules. +type Firewall struct { + // Allowed: The list of ALLOW rules specified by this firewall. Each rule + // specifies a + // protocol and port-range tuple that describes a permitted connection. + Allowed []*FirewallAllowed `json:"allowed,omitempty"` + // CreationTimestamp: Output only. [Output Only] Creation timestamp + // inRFC3339 + // text format. CreationTimestamp string `json:"creationTimestamp,omitempty"` - // Description: An optional description of this resource. Provide this property - // when you create the resource. + // Denied: The list of DENY rules specified by this firewall. Each rule + // specifies a + // protocol and port-range tuple that describes a denied connection. + Denied []*FirewallDenied `json:"denied,omitempty"` + // Description: An optional description of this resource. Provide this field + // when you + // create the resource. Description string `json:"description,omitempty"` - // Fingerprint: Fingerprint of this resource. A hash of the contents stored in - // this object. This field is used in optimistic locking. This field will be - // ignored when inserting a HealthCheckService. An up-to-date fingerprint must - // be provided in order to patch/update the HealthCheckService; Otherwise, the - // request will fail with error 412 conditionNotMet. To see the latest - // fingerprint, make a get() request to retrieve the HealthCheckService. - Fingerprint string `json:"fingerprint,omitempty"` - // HealthChecks: A list of URLs to the HealthCheck resources. Must have at - // least one HealthCheck, and not more than 10 for regional HealthCheckService, - // and not more than 1 for global HealthCheckService. HealthCheck resources - // must have portSpecification=USE_SERVING_PORT or - // portSpecification=USE_FIXED_PORT. For regional HealthCheckService, the - // HealthCheck must be regional and in the same region. For global - // HealthCheckService, HealthCheck must be global. Mix of regional and global - // HealthChecks is not supported. Multiple regional HealthChecks must belong to - // the same region. Regional HealthChecks must belong to the same region as - // zones of NetworkEndpointGroups. For global HealthCheckService using global - // INTERNET_IP_PORT NetworkEndpointGroups, the global HealthChecks must specify - // sourceRegions, and HealthChecks that specify sourceRegions can only be used - // with global INTERNET_IP_PORT NetworkEndpointGroups. - HealthChecks []string `json:"healthChecks,omitempty"` - // HealthStatusAggregationPolicy: Optional. Policy for how the results from - // multiple health checks for the same endpoint are aggregated. Defaults to - // NO_AGGREGATION if unspecified. - NO_AGGREGATION. An EndpointHealth message - // is returned for each pair in the health check service. - AND. If any health - // check of an endpoint reports UNHEALTHY, then UNHEALTHY is the HealthState of - // the endpoint. If all health checks report HEALTHY, the HealthState of the - // endpoint is HEALTHY. . This is only allowed with regional - // HealthCheckService. + // DestinationRanges: If destination ranges are specified, the firewall rule + // applies only to + // traffic that has destination IP address in these ranges. These ranges + // must + // be expressed inCIDR format. Both IPv4 and IPv6 are supported. + DestinationRanges []string `json:"destinationRanges,omitempty"` + // Direction: Direction of traffic to which this firewall applies, either + // `INGRESS` or + // `EGRESS`. The default is `INGRESS`. For `EGRESS` traffic, you cannot + // specify the sourceTags fields. // // Possible values: - // "AND" - If any backend's health check reports UNHEALTHY, then UNHEALTHY is - // the HealthState of the entire health check service. If all backend's are - // healthy, the HealthState of the health check service is HEALTHY. - // "NO_AGGREGATION" - An EndpointHealth message is returned for each backend - // in the health check service. - HealthStatusAggregationPolicy string `json:"healthStatusAggregationPolicy,omitempty"` - // Id: [Output Only] The unique identifier for the resource. This identifier is + // "EGRESS" - Indicates that firewall should apply to outgoing traffic. + // "INGRESS" - Indicates that firewall should apply to incoming traffic. + Direction string `json:"direction,omitempty"` + // Disabled: Denotes whether the firewall rule is disabled. When set to true, + // the + // firewall rule is not enforced and the network behaves as if it did + // not + // exist. If this is unspecified, the firewall rule will be enabled. + Disabled bool `json:"disabled,omitempty"` + // Id: Output only. [Output Only] The unique identifier for the resource. This + // identifier is // defined by the server. Id uint64 `json:"id,omitempty,string"` - // Kind: [Output only] Type of the resource. Always - // compute#healthCheckServicefor health check services. + // Kind: Output only. [Output Only] Type of the resource. Always + // compute#firewall + // for firewall rules. Kind string `json:"kind,omitempty"` - // Name: Name of the resource. 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. + // LogConfig: This field denotes the logging options for a particular firewall + // rule. If + // logging is enabled, logs will be exported to Cloud Logging. + LogConfig *FirewallLogConfig `json:"logConfig,omitempty"` + // Name: Name of the resource; provided by the client when the resource is + // created. + // The name must be 1-63 characters long, and comply withRFC1035. + // Specifically, the name must be 1-63 characters long and match the + // regular + // expression `[a-z]([-a-z0-9]*[a-z0-9])?`. The first character + // must be a lowercase letter, and all following characters (except for + // the + // last character) must be a dash, lowercase letter, or digit. The + // last + // character must be a lowercase letter or digit. Name string `json:"name,omitempty"` - // NetworkEndpointGroups: A list of URLs to the NetworkEndpointGroup resources. - // Must not have more than 100. For regional HealthCheckService, NEGs must be - // in zones in the region of the HealthCheckService. For global - // HealthCheckServices, the NetworkEndpointGroups must be global - // INTERNET_IP_PORT. - NetworkEndpointGroups []string `json:"networkEndpointGroups,omitempty"` - // NotificationEndpoints: A list of URLs to the NotificationEndpoint resources. - // Must not have more than 10. A list of endpoints for receiving notifications - // of change in health status. For regional HealthCheckService, - // NotificationEndpoint must be regional and in the same region. For global - // HealthCheckService, NotificationEndpoint must be global. - NotificationEndpoints []string `json:"notificationEndpoints,omitempty"` - // Region: [Output Only] URL of the region where the health check service - // resides. This field is not applicable to global health check services. You - // must specify this field as part of the HTTP request URL. It is not settable - // as a field in the request body. - Region string `json:"region,omitempty"` + // Network: URL of the network resource for this firewall rule. If + // not + // specified when creating a firewall rule, the default network + // is used: + // + // global/networks/default + // + // If you choose to specify this field, you can specify the network as a full + // + // or partial URL. For example, the following are all valid URLs: + // + // - + // + // https://www.googleapis.com/compute/v1/projects/myproject/global/networks/my-network + // + // - projects/myproject/global/networks/my-network + // - global/networks/default + Network string `json:"network,omitempty"` + // Params: Input only. [Input Only] Additional params passed with the request, + // but not persisted + // as part of resource payload. + Params *FirewallParams `json:"params,omitempty"` + // Priority: Priority for this rule. + // This is an integer between `0` and `65535`, both inclusive. + // The default value is `1000`. + // Relative priorities determine which rule takes effect if multiple + // rules + // apply. Lower values indicate higher priority. For example, a rule + // with + // priority `0` has higher precedence than a rule with priority `1`. + // DENY rules take precedence over ALLOW rules if they have equal + // priority. + // Note that VPC networks have implied + // rules with a priority of `65535`. To avoid conflicts with the implied + // rules, use a priority number less than `65535`. + Priority int64 `json:"priority,omitempty"` // SelfLink: [Output Only] Server-defined URL for the resource. SelfLink string `json:"selfLink,omitempty"` + // SourceRanges: If source ranges are specified, the firewall rule applies only + // to traffic + // that has a source IP address in these ranges. These ranges must be + // expressed inCIDR format. One or both of sourceRanges + // and sourceTags may be set. + // If both fields are set, the rule applies to traffic that has a + // source IP address within sourceRanges OR a source IP + // from a resource with a matching tag listed in thesourceTags field. The + // connection does not need to match + // both fields for the rule to + // apply. Both IPv4 and IPv6 are supported. + SourceRanges []string `json:"sourceRanges,omitempty"` + // SourceServiceAccounts: If source service accounts are specified, the + // firewall rules apply only to + // traffic originating from an instance with a service account in this + // list. + // Source service accounts cannot be used to control traffic to an + // instance's + // external IP address because service accounts are associated with + // an + // instance, not an IP address.sourceRanges can be set at the same time + // assourceServiceAccounts. + // If both are set, the firewall applies to traffic that + // has a source IP address within the sourceRanges OR a source + // IP that belongs to an instance with service account listed + // insourceServiceAccount. The connection does not need to match + // both fields for the firewall to apply.sourceServiceAccounts cannot be used + // at the same time assourceTags or targetTags. + SourceServiceAccounts []string `json:"sourceServiceAccounts,omitempty"` + // SourceTags: If source tags are specified, the firewall rule applies only to + // traffic + // with source IPs that match the primary network interfaces of VM + // instances + // that have the tag and are in the same VPC network. + // Source tags cannot be used to control traffic to an instance's external + // IP + // address, it only applies to traffic between instances in the same + // virtual + // network. Because tags are associated with instances, not IP addresses. + // One or both of sourceRanges and sourceTags may be + // set. If both fields are set, the firewall applies to traffic that has + // a + // source IP address within sourceRanges OR a source IP from a + // resource with a matching tag listed in the sourceTags + // field. The connection does not need to match both fields for the + // firewall to apply. + SourceTags []string `json:"sourceTags,omitempty"` + // TargetServiceAccounts: A list of service accounts indicating sets of + // instances located in the + // network that may make network connections as specified + // inallowed[].targetServiceAccounts cannot be used at the same time + // astargetTags or sourceTags. + // If neither targetServiceAccounts nor targetTags + // are specified, the firewall rule applies to all instances on the + // specified + // network. + TargetServiceAccounts []string `json:"targetServiceAccounts,omitempty"` + // TargetTags: A list of tags that controls which instances the firewall + // rule + // applies to. If targetTags are specified, then the firewall + // rule applies only to instances in the VPC network that have one of + // those + // tags. If no targetTags are specified, the firewall rule + // applies to all instances on the specified network. + TargetTags []string `json:"targetTags,omitempty"` // ServerResponse contains the HTTP response code and headers from the server. googleapi.ServerResponse `json:"-"` - // ForceSendFields is a list of field names (e.g. "CreationTimestamp") to + // ForceSendFields is a list of field names (e.g. "Allowed") to unconditionally + // include in API requests. By default, fields with empty or default values are + // omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + ForceSendFields []string `json:"-"` + // NullFields is a list of field names (e.g. "Allowed") to include in API + // requests with the JSON null value. By default, fields with empty values are + // omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s Firewall) MarshalJSON() ([]byte, error) { + type NoMethod Firewall + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +type FirewallAllowed struct { + // IPProtocol: The IP protocol to which this rule applies. The protocol type + // is + // required when creating a firewall rule. This value can either be one of + // the + // following well known protocol strings (tcp, udp,icmp, esp, ah, ipip,sctp) or + // the IP protocol number. + IPProtocol string `json:"IPProtocol,omitempty"` + // Ports: An optional list of ports to which this rule applies. + // This field is only applicable for the UDP or TCP protocol. + // Each entry must be either an integer or a range. + // If not specified, this rule applies to connections through any + // port. + // + // Example inputs include: ["22"], ["80","443"], + // and ["12345-12349"]. + Ports []string `json:"ports,omitempty"` + // ForceSendFields is a list of field names (e.g. "IPProtocol") to // unconditionally include in API requests. By default, fields with empty or // default values are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. ForceSendFields []string `json:"-"` - // NullFields is a list of field names (e.g. "CreationTimestamp") to include in - // API requests with the JSON null value. By default, fields with empty values - // are omitted from API requests. See + // NullFields is a list of field names (e.g. "IPProtocol") to include in API + // requests with the JSON null value. By default, fields with empty values are + // omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } -func (s *HealthCheckService) MarshalJSON() ([]byte, error) { - type NoMethod HealthCheckService - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s FirewallAllowed) MarshalJSON() ([]byte, error) { + type NoMethod FirewallAllowed + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -// HealthCheckServiceReference: A full or valid partial URL to a health check -// service. For example, the following are valid URLs: - -// https://www.googleapis.com/compute/beta/projects/project-id/regions/us-west1/healthCheckServices/health-check-service -// - -// projects/project-id/regions/us-west1/healthCheckServices/health-check-service -// - regions/us-west1/healthCheckServices/health-check-service -type HealthCheckServiceReference struct { - HealthCheckService string `json:"healthCheckService,omitempty"` - // ForceSendFields is a list of field names (e.g. "HealthCheckService") to +type FirewallDenied struct { + // IPProtocol: The IP protocol to which this rule applies. The protocol type + // is + // required when creating a firewall rule. This value can either be one of + // the + // following well known protocol strings (tcp, udp,icmp, esp, ah, ipip,sctp) or + // the IP protocol number. + IPProtocol string `json:"IPProtocol,omitempty"` + // Ports: An optional list of ports to which this rule applies. + // This field is only applicable for the UDP or TCP protocol. + // Each entry must be either an integer or a range. + // If not specified, this rule applies to connections through any + // port. + // + // Example inputs include: ["22"], ["80","443"], + // and ["12345-12349"]. + Ports []string `json:"ports,omitempty"` + // ForceSendFields is a list of field names (e.g. "IPProtocol") to // unconditionally include in API requests. By default, fields with empty or // default values are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. ForceSendFields []string `json:"-"` - // NullFields is a list of field names (e.g. "HealthCheckService") to include - // in API requests with the JSON null value. By default, fields with empty - // values are omitted from API requests. See + // NullFields is a list of field names (e.g. "IPProtocol") to include in API + // requests with the JSON null value. By default, fields with empty values are + // omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } -func (s *HealthCheckServiceReference) MarshalJSON() ([]byte, error) { - type NoMethod HealthCheckServiceReference - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s FirewallDenied) MarshalJSON() ([]byte, error) { + type NoMethod FirewallDenied + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -type HealthCheckServicesList struct { +// FirewallList: Contains a list of firewalls. +type FirewallList struct { // Id: [Output Only] Unique identifier for the resource; defined by the server. Id string `json:"id,omitempty"` - // Items: A list of HealthCheckService resources. - Items []*HealthCheckService `json:"items,omitempty"` - // Kind: [Output Only] Type of the resource. Always - // compute#healthCheckServicesList for lists of HealthCheckServices. + // Items: A list of Firewall resources. + Items []*Firewall `json:"items,omitempty"` + // Kind: Output only. [Output Only] Type of resource. Always + // compute#firewallList + // for lists of firewalls. 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. + // results for + // list requests. If the number of results is larger thanmaxResults, 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"` - // SelfLink: [Output Only] Server-defined URL for this resource. + // SelfLink: Output only. [Output Only] Server-defined URL for this resource. SelfLink string `json:"selfLink,omitempty"` // Warning: [Output Only] Informational warning message. - Warning *HealthCheckServicesListWarning `json:"warning,omitempty"` + Warning *FirewallListWarning `json:"warning,omitempty"` // ServerResponse contains the HTTP response code and headers from the server. googleapi.ServerResponse `json:"-"` @@ -13044,76 +16691,98 @@ type HealthCheckServicesList struct { NullFields []string `json:"-"` } -func (s *HealthCheckServicesList) MarshalJSON() ([]byte, error) { - type NoMethod HealthCheckServicesList - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s FirewallList) MarshalJSON() ([]byte, error) { + type NoMethod FirewallList + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -// HealthCheckServicesListWarning: [Output Only] Informational warning message. -type HealthCheckServicesListWarning 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. +// FirewallListWarning: [Output Only] Informational warning message. +type FirewallListWarning 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" - Warning about failed cleanup of transient changes made - // by a failed operation. + // by a failed + // operation. // "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was created. // "DEPRECATED_TYPE_USED" - When deploying and at least one of the resources - // has a type marked as deprecated + // has a type marked as + // deprecated // "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk that is // larger than image size. // "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the - // resources has a type marked as experimental + // resources has a type marked as + // experimental // "EXTERNAL_API_WARNING" - Warning that is present in an external api call // "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been - // overridden. Deprecated unused field. + // overridden. + // Deprecated unused field. // "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an injected // kernel, which is deprecated. // "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB" - A WEIGHTED_MAGLEV backend - // service is associated with a health check that is not of type - // HTTP/HTTPS/HTTP2. + // service is associated with a health check that is + // not of type HTTP/HTTPS/HTTP2. // "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a // exceedingly large number of resources // "LIST_OVERHEAD_QUOTA_EXCEED" - Resource can't be retrieved due to list - // overhead quota exceed which captures the amount of resources filtered out by + // overhead quota exceed + // which captures the amount of resources filtered out by // user-defined list filter. // "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is not - // assigned to an instance on the network. + // assigned to an instance on the + // network. // "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot ip // forward. // "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE" - The route's nextHopInstance - // URL refers to an instance that does not have an ipv6 interface on the same - // network as the route. + // URL refers to an instance that does not have an + // ipv6 interface on the same network as the route. // "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL refers to // an instance that does not exist. // "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance URL - // refers to an instance that is not on the same network as the route. + // refers to an instance that is not on the + // same network as the route. // "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not have a // status of RUNNING. // "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to continue - // the process despite the mentioned error. + // the process despite + // the mentioned error. // "NO_RESULTS_ON_PAGE" - No results are present on a particular list page. // "PARTIAL_SUCCESS" - Success is reported, but some results may be missing // due to errors + // "QUOTA_INFO_UNAVAILABLE" - Quota information is not available to client + // requests (e.g: + // regions.list). // "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource that - // requires a TOS they have not accepted. + // requires a TOS they have not + // accepted. // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a resource is // in use. // "RESOURCE_NOT_DELETED" - One or more of the resources set to auto-delete - // could not be deleted because they were in use. + // could not be deleted + // because they were in use. // "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is // ignored. // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in instance - // group manager is valid as such, but its application does not make a lot of - // sense, because it allows only single instance in instance group. + // group manager is valid as such, but + // its application does not make a lot of sense, because it allows only + // single instance in instance group. // "UNDECLARED_PROPERTIES" - When undeclared properties in the schema are // present // "UNREACHABLE" - A given scope cannot be reached. 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 []*HealthCheckServicesListWarningData `json:"data,omitempty"` + // Data: [Output Only] Metadata about this warning in key: + // value format. For example: + // + // "data": [ + // { + // "key": "scope", + // "value": "zones/us-east1-d" + // } + Data []*FirewallListWarningData `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 @@ -13129,19 +16798,22 @@ type HealthCheckServicesListWarning struct { NullFields []string `json:"-"` } -func (s *HealthCheckServicesListWarning) MarshalJSON() ([]byte, error) { - type NoMethod HealthCheckServicesListWarning - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s FirewallListWarning) MarshalJSON() ([]byte, error) { + type NoMethod FirewallListWarning + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -type HealthCheckServicesListWarningData 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). +type FirewallListWarningData 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"` @@ -13158,117 +16830,219 @@ type HealthCheckServicesListWarningData struct { NullFields []string `json:"-"` } -func (s *HealthCheckServicesListWarningData) MarshalJSON() ([]byte, error) { - type NoMethod HealthCheckServicesListWarningData - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s FirewallListWarningData) MarshalJSON() ([]byte, error) { + type NoMethod FirewallListWarningData + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -type HealthChecksAggregatedList struct { - // Id: [Output Only] Unique identifier for the resource; defined by the server. - Id string `json:"id,omitempty"` - // Items: A list of HealthChecksScopedList resources. - Items map[string]HealthChecksScopedList `json:"items,omitempty"` - // Kind: Type of resource. +// FirewallLogConfig: The available logging options for a firewall rule. +type FirewallLogConfig struct { + // Enable: This field denotes whether to enable logging for a particular + // firewall + // rule. + Enable bool `json:"enable,omitempty"` + // Metadata: This field can only be specified for a particular firewall rule + // if + // logging is enabled for that rule. This field denotes whether to include + // or exclude metadata for firewall logs. + // + // Possible values: + // "EXCLUDE_ALL_METADATA" + // "INCLUDE_ALL_METADATA" + Metadata string `json:"metadata,omitempty"` + // ForceSendFields is a list of field names (e.g. "Enable") to unconditionally + // include in API requests. By default, fields with empty or default values are + // omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + ForceSendFields []string `json:"-"` + // NullFields is a list of field names (e.g. "Enable") to include in API + // requests with the JSON null value. By default, fields with empty values are + // omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s FirewallLogConfig) MarshalJSON() ([]byte, error) { + type NoMethod FirewallLogConfig + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +// FirewallParams: Additional firewall parameters. +type FirewallParams struct { + // ResourceManagerTags: Tag keys/values directly bound to this resource. + // Tag keys and values have the same definition as resource + // manager tags. The field is allowed for INSERT + // only. The keys/values to set on the resource should be specified in + // either ID { : } or Namespaced format + // { : }. + // For example the following are valid inputs: + // * {"tagKeys/333" : "tagValues/444", "tagKeys/123" : "tagValues/456"} + // * {"123/environment" : "production", "345/abc" : "xyz"} + // Note: + // * Invalid combinations of ID & namespaced format is not supported. For + // instance: {"123/environment" : "tagValues/444"} is invalid. + ResourceManagerTags map[string]string `json:"resourceManagerTags,omitempty"` + // ForceSendFields is a list of field names (e.g. "ResourceManagerTags") to + // unconditionally include in API requests. By default, fields with empty or + // default values are omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + ForceSendFields []string `json:"-"` + // NullFields is a list of field names (e.g. "ResourceManagerTags") to include + // in API requests with the JSON null value. By default, fields with empty + // values are omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s FirewallParams) MarshalJSON() ([]byte, error) { + type NoMethod FirewallParams + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +type FirewallPoliciesListAssociationsResponse struct { + // Associations: A list of associations. + Associations []*FirewallPolicyAssociation `json:"associations,omitempty"` + // Kind: Output only. [Output Only] Type of firewallPolicy associations. + // Alwayscompute#FirewallPoliciesListAssociations for lists of + // firewallPolicy associations. 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"` - // SelfLink: [Output Only] Server-defined URL for this resource. - SelfLink string `json:"selfLink,omitempty"` - // Unreachables: [Output Only] Unreachable resources. - Unreachables []string `json:"unreachables,omitempty"` - // Warning: [Output Only] Informational warning message. - Warning *HealthChecksAggregatedListWarning `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 or default values are + // ForceSendFields is a list of field names (e.g. "Associations") to + // unconditionally include in API requests. By default, fields with empty or + // default values are omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + ForceSendFields []string `json:"-"` + // NullFields is a list of field names (e.g. "Associations") to include in API + // requests with the JSON null value. By default, fields with empty values are // omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s FirewallPoliciesListAssociationsResponse) MarshalJSON() ([]byte, error) { + type NoMethod FirewallPoliciesListAssociationsResponse + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +type FirewallPoliciesScopedList struct { + // FirewallPolicies: A list of firewall policies contained in this scope. + FirewallPolicies []*FirewallPolicy `json:"firewallPolicies,omitempty"` + // Warning: Informational warning which replaces the list of firewall policies + // when + // the list is empty. + Warning *FirewallPoliciesScopedListWarning `json:"warning,omitempty"` + // ForceSendFields is a list of field names (e.g. "FirewallPolicies") to + // unconditionally include in API requests. By default, fields with empty or + // default values are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. 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. See + // NullFields is a list of field names (e.g. "FirewallPolicies") to include in + // API requests with the JSON null value. By default, fields with empty values + // are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } -func (s *HealthChecksAggregatedList) MarshalJSON() ([]byte, error) { - type NoMethod HealthChecksAggregatedList - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s FirewallPoliciesScopedList) MarshalJSON() ([]byte, error) { + type NoMethod FirewallPoliciesScopedList + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -// HealthChecksAggregatedListWarning: [Output Only] Informational warning -// message. -type HealthChecksAggregatedListWarning 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. +// FirewallPoliciesScopedListWarning: Informational warning which replaces the +// list of firewall policies when +// the list is empty. +type FirewallPoliciesScopedListWarning 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" - Warning about failed cleanup of transient changes made - // by a failed operation. + // by a failed + // operation. // "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was created. // "DEPRECATED_TYPE_USED" - When deploying and at least one of the resources - // has a type marked as deprecated + // has a type marked as + // deprecated // "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk that is // larger than image size. // "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the - // resources has a type marked as experimental + // resources has a type marked as + // experimental // "EXTERNAL_API_WARNING" - Warning that is present in an external api call // "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been - // overridden. Deprecated unused field. + // overridden. + // Deprecated unused field. // "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an injected // kernel, which is deprecated. // "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB" - A WEIGHTED_MAGLEV backend - // service is associated with a health check that is not of type - // HTTP/HTTPS/HTTP2. + // service is associated with a health check that is + // not of type HTTP/HTTPS/HTTP2. // "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a // exceedingly large number of resources // "LIST_OVERHEAD_QUOTA_EXCEED" - Resource can't be retrieved due to list - // overhead quota exceed which captures the amount of resources filtered out by + // overhead quota exceed + // which captures the amount of resources filtered out by // user-defined list filter. // "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is not - // assigned to an instance on the network. + // assigned to an instance on the + // network. // "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot ip // forward. // "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE" - The route's nextHopInstance - // URL refers to an instance that does not have an ipv6 interface on the same - // network as the route. + // URL refers to an instance that does not have an + // ipv6 interface on the same network as the route. // "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL refers to // an instance that does not exist. // "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance URL - // refers to an instance that is not on the same network as the route. + // refers to an instance that is not on the + // same network as the route. // "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not have a // status of RUNNING. // "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to continue - // the process despite the mentioned error. + // the process despite + // the mentioned error. // "NO_RESULTS_ON_PAGE" - No results are present on a particular list page. // "PARTIAL_SUCCESS" - Success is reported, but some results may be missing // due to errors + // "QUOTA_INFO_UNAVAILABLE" - Quota information is not available to client + // requests (e.g: + // regions.list). // "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource that - // requires a TOS they have not accepted. + // requires a TOS they have not + // accepted. // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a resource is // in use. // "RESOURCE_NOT_DELETED" - One or more of the resources set to auto-delete - // could not be deleted because they were in use. + // could not be deleted + // because they were in use. // "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is // ignored. // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in instance - // group manager is valid as such, but its application does not make a lot of - // sense, because it allows only single instance in instance group. + // group manager is valid as such, but + // its application does not make a lot of sense, because it allows only + // single instance in instance group. // "UNDECLARED_PROPERTIES" - When undeclared properties in the schema are // present // "UNREACHABLE" - A given scope cannot be reached. 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 []*HealthChecksAggregatedListWarningData `json:"data,omitempty"` + // Data: [Output Only] Metadata about this warning in key: + // value format. For example: + // + // "data": [ + // { + // "key": "scope", + // "value": "zones/us-east1-d" + // } + Data []*FirewallPoliciesScopedListWarningData `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 @@ -13284,19 +17058,22 @@ type HealthChecksAggregatedListWarning struct { NullFields []string `json:"-"` } -func (s *HealthChecksAggregatedListWarning) MarshalJSON() ([]byte, error) { - type NoMethod HealthChecksAggregatedListWarning - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s FirewallPoliciesScopedListWarning) MarshalJSON() ([]byte, error) { + type NoMethod FirewallPoliciesScopedListWarning + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -type HealthChecksAggregatedListWarningData 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). +type FirewallPoliciesScopedListWarningData 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"` @@ -13313,101 +17090,300 @@ type HealthChecksAggregatedListWarningData struct { NullFields []string `json:"-"` } -func (s *HealthChecksAggregatedListWarningData) MarshalJSON() ([]byte, error) { - type NoMethod HealthChecksAggregatedListWarningData - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s FirewallPoliciesScopedListWarningData) MarshalJSON() ([]byte, error) { + type NoMethod FirewallPoliciesScopedListWarningData + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -type HealthChecksScopedList struct { - // HealthChecks: A list of HealthChecks contained in this scope. - HealthChecks []*HealthCheck `json:"healthChecks,omitempty"` - // Warning: Informational warning which replaces the list of backend services - // when the list is empty. - Warning *HealthChecksScopedListWarning `json:"warning,omitempty"` - // ForceSendFields is a list of field names (e.g. "HealthChecks") to - // unconditionally include in API requests. By default, fields with empty or - // default values are omitted from API requests. See +// FirewallPolicy: Represents a Firewall Policy resource. +type FirewallPolicy struct { + // Associations: A list of associations that belong to this firewall policy. + Associations []*FirewallPolicyAssociation `json:"associations,omitempty"` + // CreationTimestamp: Output only. [Output Only] Creation timestamp + // inRFC3339 + // text format. + CreationTimestamp string `json:"creationTimestamp,omitempty"` + // Description: An optional description of this resource. Provide this property + // when you + // create the resource. + Description string `json:"description,omitempty"` + // DisplayName: Deprecated, please use short name instead. User-provided name + // of the + // Organization firewall policy. The name should be unique in the + // organization + // in which the firewall policy is created. + // This field is not applicable to network firewall policies. + // This name must be set on creation and cannot be changed. + // 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. + DisplayName string `json:"displayName,omitempty"` + // Fingerprint: Specifies a fingerprint for this resource, which is essentially + // a hash of + // the metadata's contents and used for optimistic locking. The + // fingerprint is initially generated by Compute Engine and changes after + // every request to modify or update metadata. You must always provide + // an + // up-to-date fingerprint hash in order to update or change metadata, + // otherwise the request will fail with error412 conditionNotMet. + // + // To see the latest fingerprint, make get() request to the + // firewall policy. + Fingerprint string `json:"fingerprint,omitempty"` + // Id: [Output Only] The unique identifier for the resource. This identifier + // is + // defined by the server. + Id uint64 `json:"id,omitempty,string"` + // Kind: Output only. [Output only] Type of the resource. + // Alwayscompute#firewallPolicyfor firewall policies + Kind string `json:"kind,omitempty"` + // Name: Name of the resource. For Organization Firewall Policies it's + // a + // [Output Only] numeric ID allocated by Google Cloud which uniquely + // identifies the Organization Firewall Policy. + Name string `json:"name,omitempty"` + // PacketMirroringRules: A list of packet mirroring rules that belong to this + // policy. + PacketMirroringRules []*FirewallPolicyRule `json:"packetMirroringRules,omitempty"` + // Parent: Output only. [Output Only] The parent of the firewall policy. + // This field is not applicable to network firewall policies. + Parent string `json:"parent,omitempty"` + // PolicyType: The type of the firewall policy. This field can be one + // of + // VPC_POLICY, RDMA_ROCE_POLICY or ULL_POLICY. + // + // Note: if not specified then VPC_POLICY will be used. + // + // Possible values: + // "RDMA_ROCE_POLICY" + // "ULL_POLICY" + // "VPC_POLICY" + PolicyType string `json:"policyType,omitempty"` + // Region: Output only. [Output Only] URL of the region where the regional + // firewall policy resides. + // This field is not applicable to global firewall policies. + // You must specify this field as part of the HTTP request URL. It is + // not settable as a field in the request body. + Region string `json:"region,omitempty"` + // RuleTupleCount: Output only. [Output Only] Total count of all firewall + // policy rule tuples. A firewall + // policy can not exceed a set number of tuples. + RuleTupleCount int64 `json:"ruleTupleCount,omitempty"` + // Rules: A list of rules that belong to this policy. + // There must always be a default rule (rule with priority 2147483647 and + // match "*"). If no rules are provided when creating a firewall policy, + // a + // default rule with action "allow" will be added. + Rules []*FirewallPolicyRule `json:"rules,omitempty"` + // SelfLink: [Output Only] Server-defined URL for the resource. + SelfLink string `json:"selfLink,omitempty"` + // SelfLinkWithId: Output only. [Output Only] Server-defined URL for this + // resource with the resource id. + SelfLinkWithId string `json:"selfLinkWithId,omitempty"` + // ShortName: User-provided name of the Organization firewall policy. The name + // should be + // unique in the organization in which the firewall policy is created. + // This field is not applicable to network firewall policies. + // This name must be set on creation and cannot be changed. 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. + ShortName string `json:"shortName,omitempty"` + + // ServerResponse contains the HTTP response code and headers from the server. + googleapi.ServerResponse `json:"-"` + // ForceSendFields is a list of field names (e.g. "Associations") to + // unconditionally include in API requests. By default, fields with empty or + // default values are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. ForceSendFields []string `json:"-"` - // NullFields is a list of field names (e.g. "HealthChecks") to include in API + // NullFields is a list of field names (e.g. "Associations") to include in API // requests with the JSON null value. By default, fields with empty values are // omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } -func (s *HealthChecksScopedList) MarshalJSON() ([]byte, error) { - type NoMethod HealthChecksScopedList - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s FirewallPolicy) MarshalJSON() ([]byte, error) { + type NoMethod FirewallPolicy + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -// HealthChecksScopedListWarning: Informational warning which replaces the list -// of backend services when the list is empty. -type HealthChecksScopedListWarning 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. +type FirewallPolicyAssociation struct { + // AttachmentTarget: The target that the firewall policy is attached to. + AttachmentTarget string `json:"attachmentTarget,omitempty"` + // DisplayName: [Output Only] Deprecated, please use short name instead. The + // display name + // of the firewall policy of the association. + DisplayName string `json:"displayName,omitempty"` + // FirewallPolicyId: Output only. [Output Only] The firewall policy ID of the + // association. + FirewallPolicyId string `json:"firewallPolicyId,omitempty"` + // Name: The name for an association. + Name string `json:"name,omitempty"` + // ShortName: Output only. [Output Only] The short name of the firewall policy + // of the association. + ShortName string `json:"shortName,omitempty"` + + // ServerResponse contains the HTTP response code and headers from the server. + googleapi.ServerResponse `json:"-"` + // ForceSendFields is a list of field names (e.g. "AttachmentTarget") to + // unconditionally include in API requests. By default, fields with empty or + // default values are omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + ForceSendFields []string `json:"-"` + // NullFields is a list of field names (e.g. "AttachmentTarget") to include in + // API requests with the JSON null value. By default, fields with empty values + // are omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s FirewallPolicyAssociation) MarshalJSON() ([]byte, error) { + type NoMethod FirewallPolicyAssociation + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +type FirewallPolicyList struct { + // Id: [Output Only] Unique identifier for the resource; defined by the server. + Id string `json:"id,omitempty"` + // Items: A list of FirewallPolicy resources. + Items []*FirewallPolicy `json:"items,omitempty"` + // Kind: Output only. [Output Only] Type of resource. + // Alwayscompute#firewallPolicyList for listsof FirewallPolicies + 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 thanmaxResults, 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"` + // Warning: [Output Only] Informational warning message. + Warning *FirewallPolicyListWarning `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 or default values are + // omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + 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. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s FirewallPolicyList) MarshalJSON() ([]byte, error) { + type NoMethod FirewallPolicyList + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +// FirewallPolicyListWarning: [Output Only] Informational warning message. +type FirewallPolicyListWarning 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" - Warning about failed cleanup of transient changes made - // by a failed operation. + // by a failed + // operation. // "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was created. // "DEPRECATED_TYPE_USED" - When deploying and at least one of the resources - // has a type marked as deprecated + // has a type marked as + // deprecated // "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk that is // larger than image size. // "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the - // resources has a type marked as experimental + // resources has a type marked as + // experimental // "EXTERNAL_API_WARNING" - Warning that is present in an external api call // "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been - // overridden. Deprecated unused field. + // overridden. + // Deprecated unused field. // "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an injected // kernel, which is deprecated. // "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB" - A WEIGHTED_MAGLEV backend - // service is associated with a health check that is not of type - // HTTP/HTTPS/HTTP2. + // service is associated with a health check that is + // not of type HTTP/HTTPS/HTTP2. // "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a // exceedingly large number of resources // "LIST_OVERHEAD_QUOTA_EXCEED" - Resource can't be retrieved due to list - // overhead quota exceed which captures the amount of resources filtered out by + // overhead quota exceed + // which captures the amount of resources filtered out by // user-defined list filter. // "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is not - // assigned to an instance on the network. + // assigned to an instance on the + // network. // "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot ip // forward. // "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE" - The route's nextHopInstance - // URL refers to an instance that does not have an ipv6 interface on the same - // network as the route. + // URL refers to an instance that does not have an + // ipv6 interface on the same network as the route. // "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL refers to // an instance that does not exist. // "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance URL - // refers to an instance that is not on the same network as the route. + // refers to an instance that is not on the + // same network as the route. // "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not have a // status of RUNNING. // "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to continue - // the process despite the mentioned error. + // the process despite + // the mentioned error. // "NO_RESULTS_ON_PAGE" - No results are present on a particular list page. // "PARTIAL_SUCCESS" - Success is reported, but some results may be missing // due to errors + // "QUOTA_INFO_UNAVAILABLE" - Quota information is not available to client + // requests (e.g: + // regions.list). // "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource that - // requires a TOS they have not accepted. + // requires a TOS they have not + // accepted. // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a resource is // in use. // "RESOURCE_NOT_DELETED" - One or more of the resources set to auto-delete - // could not be deleted because they were in use. + // could not be deleted + // because they were in use. // "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is // ignored. // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in instance - // group manager is valid as such, but its application does not make a lot of - // sense, because it allows only single instance in instance group. + // group manager is valid as such, but + // its application does not make a lot of sense, because it allows only + // single instance in instance group. // "UNDECLARED_PROPERTIES" - When undeclared properties in the schema are // present // "UNREACHABLE" - A given scope cannot be reached. 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 []*HealthChecksScopedListWarningData `json:"data,omitempty"` + // Data: [Output Only] Metadata about this warning in key: + // value format. For example: + // + // "data": [ + // { + // "key": "scope", + // "value": "zones/us-east1-d" + // } + Data []*FirewallPolicyListWarningData `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 @@ -13423,19 +17399,22 @@ type HealthChecksScopedListWarning struct { NullFields []string `json:"-"` } -func (s *HealthChecksScopedListWarning) MarshalJSON() ([]byte, error) { - type NoMethod HealthChecksScopedListWarning - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s FirewallPolicyListWarning) MarshalJSON() ([]byte, error) { + type NoMethod FirewallPolicyListWarning + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -type HealthChecksScopedListWarningData 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). +type FirewallPolicyListWarningData 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"` @@ -13452,538 +17431,1018 @@ type HealthChecksScopedListWarningData struct { NullFields []string `json:"-"` } -func (s *HealthChecksScopedListWarningData) MarshalJSON() ([]byte, error) { - type NoMethod HealthChecksScopedListWarningData - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s FirewallPolicyListWarningData) MarshalJSON() ([]byte, error) { + type NoMethod FirewallPolicyListWarningData + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -type HealthStatus struct { - // Annotations: Metadata defined as annotations for network endpoint. - Annotations map[string]string `json:"annotations,omitempty"` - // ForwardingRule: URL of the forwarding rule associated with the health status - // of the instance. - ForwardingRule string `json:"forwardingRule,omitempty"` - // ForwardingRuleIp: A forwarding rule IP address assigned to this instance. - ForwardingRuleIp string `json:"forwardingRuleIp,omitempty"` - // HealthState: Health state of the IPv4 address of the instance. +// FirewallPolicyRule: Represents a rule that describes one or more match +// conditions along with +// the action to be taken when traffic matches this condition (allow or deny). +type FirewallPolicyRule struct { + // Action: The Action to perform when the client connection triggers the + // rule. + // Valid actions for firewall rules are: "allow", + // "deny", + // "apply_security_profile_group" and "goto_next" + // ( + // "apply_security_profile_group" can be specified only for global + // network firewall policies or hierarchical firewall policies). + // Valid actions for packet mirroring rules are: "mirror", "do_not_mirror" + // and "goto_next". + Action string `json:"action,omitempty"` + // Description: An optional description for this resource. + Description string `json:"description,omitempty"` + // Direction: The direction in which this rule applies. // // Possible values: - // "HEALTHY" - // "UNHEALTHY" - HealthState string `json:"healthState,omitempty"` - // Instance: URL of the instance resource. - Instance string `json:"instance,omitempty"` - // IpAddress: For target pool based Network Load Balancing, it indicates the - // forwarding rule's IP address assigned to this instance. For other types of - // load balancing, the field indicates VM internal ip. - IpAddress string `json:"ipAddress,omitempty"` - // Port: The named port of the instance group, not necessarily the port that is - // health-checked. - Port int64 `json:"port,omitempty"` - Weight string `json:"weight,omitempty"` - // Possible values: - // "INVALID_WEIGHT" - The response to a Health Check probe had the HTTP - // response header field X-Load-Balancing-Endpoint-Weight, but its content was - // invalid (i.e., not a non-negative single-precision floating-point number in - // decimal string representation). - // "MISSING_WEIGHT" - The response to a Health Check probe did not have the - // HTTP response header field X-Load-Balancing-Endpoint-Weight. - // "UNAVAILABLE_WEIGHT" - This is the value when the accompanied health - // status is either TIMEOUT (i.e.,the Health Check probe was not able to get a - // response in time) or UNKNOWN. For the latter, it should be typically because - // there has not been sufficient time to parse and report the weight for a new - // backend (which is with 0.0.0.0 ip address). However, it can be also due to - // an outage case for which the health status is explicitly reset to UNKNOWN. - // "WEIGHT_NONE" - This is the default value when WeightReportMode is - // DISABLE, and is also the initial value when WeightReportMode has just - // updated to ENABLE or DRY_RUN and there has not been sufficient time to parse - // and report the backend weight. - WeightError string `json:"weightError,omitempty"` - // ForceSendFields is a list of field names (e.g. "Annotations") to - // unconditionally include in API requests. By default, fields with empty or - // default values are omitted from API requests. See - // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more - // details. - ForceSendFields []string `json:"-"` - // NullFields is a list of field names (e.g. "Annotations") to include in API - // requests with the JSON null value. By default, fields with empty values are - // omitted from API requests. See - // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. - NullFields []string `json:"-"` -} - -func (s *HealthStatus) MarshalJSON() ([]byte, error) { - type NoMethod HealthStatus - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) -} - -type HealthStatusForNetworkEndpoint struct { - // BackendService: URL of the backend service associated with the health state - // of the network endpoint. - BackendService *BackendServiceReference `json:"backendService,omitempty"` - // ForwardingRule: URL of the forwarding rule associated with the health state - // of the network endpoint. - ForwardingRule *ForwardingRuleReference `json:"forwardingRule,omitempty"` - // HealthCheck: URL of the health check associated with the health state of the - // network endpoint. - HealthCheck *HealthCheckReference `json:"healthCheck,omitempty"` - // HealthCheckService: URL of the health check service associated with the - // health state of the network endpoint. - HealthCheckService *HealthCheckServiceReference `json:"healthCheckService,omitempty"` - // HealthState: Health state of the network endpoint determined based on the - // health checks configured. + // "EGRESS" + // "INGRESS" + Direction string `json:"direction,omitempty"` + // Disabled: Denotes whether the firewall policy rule is disabled. When set to + // true, + // the firewall policy rule is not enforced and traffic behaves as if it + // did + // not exist. If this is unspecified, the firewall policy rule will be + // enabled. + Disabled bool `json:"disabled,omitempty"` + // EnableLogging: Denotes whether to enable logging for a particular rule. If + // logging is + // enabled, logs will be exported to the configured export destination + // in + // Stackdriver. Logs may be exported to BigQuery or Pub/Sub. Note: you + // cannot enable logging on "goto_next" rules. + EnableLogging bool `json:"enableLogging,omitempty"` + // Kind: Output only. [Output only] Type of the resource. + // Returnscompute#firewallPolicyRule for firewall rules + // andcompute#packetMirroringRule for packet mirroring rules. + Kind string `json:"kind,omitempty"` + // Match: A match condition that incoming traffic is evaluated against. + // If it evaluates to true, the corresponding 'action' is enforced. + Match *FirewallPolicyRuleMatcher `json:"match,omitempty"` + // Priority: An integer indicating the priority of a rule in the list. The + // priority + // must be a positive value between 0 and 2147483647. + // Rules are evaluated from highest to lowest priority where 0 is the + // highest priority and 2147483647 is the lowest priority. + Priority int64 `json:"priority,omitempty"` + // RuleName: An optional name for the rule. This field is not a unique + // identifier + // and can be updated. + RuleName string `json:"ruleName,omitempty"` + // RuleTupleCount: Output only. [Output Only] Calculation of the complexity of + // a single firewall policy + // rule. + RuleTupleCount int64 `json:"ruleTupleCount,omitempty"` + // SecurityProfileGroup: A fully-qualified URL of a SecurityProfileGroup + // resource + // instance. + // Example: + // https://networksecurity.googleapis.com/v1/projects/{project}/locations/{location}/securityProfileGroups/my-security-profile-group + // Must be specified if action is one of 'apply_security_profile_group' + // or + // 'mirror'. Cannot be specified for other actions. Can be specified only + // for global network firewall policies or hierarchical firewall policies. + SecurityProfileGroup string `json:"securityProfileGroup,omitempty"` + // TargetForwardingRules: A list of forwarding rules to which this rule + // applies. + // This field allows you to control which load balancers get this rule. + // For example, the following are valid values: + // + // + // - + // https://www.googleapis.com/compute/v1/projects/project/global/forwardingRules/forwardingRule + // - + // https://www.googleapis.com/compute/v1/projects/project/regions/region/forwardingRules/forwardingRule + // - projects/project/global/ + // forwardingRules/forwardingRule + // - projects/project/regions/region/forwardingRules/ + // forwardingRule + TargetForwardingRules []string `json:"targetForwardingRules,omitempty"` + // TargetResources: A list of network resource URLs to which this rule applies. + // This field + // allows you to control which network's VMs get this rule. If this field + // is left blank, all VMs within the organization will receive the rule. + TargetResources []string `json:"targetResources,omitempty"` + // TargetSecureTags: A list of secure tags that controls which instances the + // firewall rule + // applies to. If targetSecureTag are specified, then the + // firewall rule applies only to instances in the VPC network that have one + // of those EFFECTIVE secure tags, if all the target_secure_tag are + // in + // INEFFECTIVE state, then this rule will be ignored.targetSecureTag may not be + // set at the same time astargetServiceAccounts. + // If neither targetServiceAccounts nortargetSecureTag are specified, the + // firewall rule applies + // to all instances on the specified network. + // Maximum number of target label tags allowed is 256. + TargetSecureTags []*FirewallPolicyRuleSecureTag `json:"targetSecureTags,omitempty"` + // TargetServiceAccounts: A list of service accounts indicating the sets of + // instances that are + // applied with this rule. + TargetServiceAccounts []string `json:"targetServiceAccounts,omitempty"` + // TargetType: Target types of the firewall policy rule. + // Default value is INSTANCES. // // Possible values: - // "DRAINING" - Endpoint is being drained. - // "HEALTHY" - Endpoint is healthy. - // "UNHEALTHY" - Endpoint is unhealthy. - // "UNKNOWN" - Health status of the endpoint is unknown. - HealthState string `json:"healthState,omitempty"` - // ForceSendFields is a list of field names (e.g. "BackendService") to - // unconditionally include in API requests. By default, fields with empty or - // default values are omitted from API requests. See - // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more - // details. - ForceSendFields []string `json:"-"` - // NullFields is a list of field names (e.g. "BackendService") to include in - // API requests with the JSON null value. By default, fields with empty values - // are omitted from API requests. See - // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. - NullFields []string `json:"-"` -} - -func (s *HealthStatusForNetworkEndpoint) MarshalJSON() ([]byte, error) { - type NoMethod HealthStatusForNetworkEndpoint - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) -} + // "INSTANCES" + // "INTERNAL_MANAGED_LB" + TargetType string `json:"targetType,omitempty"` + // TlsInspect: Boolean flag indicating if the traffic should be TLS + // decrypted. + // Can be set only if action = 'apply_security_profile_group' and cannot + // be set for other actions. + TlsInspect bool `json:"tlsInspect,omitempty"` -// Help: Provides links to documentation or for performing an out of band -// action. For example, if a quota check failed with an error indicating the -// calling project hasn't enabled the accessed service, this can contain a URL -// pointing directly to the right place in the developer console to flip the -// bit. -type Help struct { - // Links: URL(s) pointing to additional information on handling the current - // error. - Links []*HelpLink `json:"links,omitempty"` - // ForceSendFields is a list of field names (e.g. "Links") to unconditionally + // ServerResponse contains the HTTP response code and headers from the server. + googleapi.ServerResponse `json:"-"` + // ForceSendFields is a list of field names (e.g. "Action") to unconditionally // include in API requests. By default, fields with empty or default values are // omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. ForceSendFields []string `json:"-"` - // NullFields is a list of field names (e.g. "Links") to include in API - // requests with the JSON null value. By default, fields with empty values are - // omitted from API requests. See - // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. - NullFields []string `json:"-"` -} - -func (s *Help) MarshalJSON() ([]byte, error) { - type NoMethod Help - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) -} - -// HelpLink: Describes a URL link. -type HelpLink struct { - // Description: Describes what the link offers. - Description string `json:"description,omitempty"` - // Url: The URL of the link. - Url string `json:"url,omitempty"` - // ForceSendFields is a list of field names (e.g. "Description") to - // unconditionally include in API requests. By default, fields with empty or - // default values are omitted from API requests. See - // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more - // details. - ForceSendFields []string `json:"-"` - // NullFields is a list of field names (e.g. "Description") to include in API - // requests with the JSON null value. By default, fields with empty values are - // omitted from API requests. See - // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. - NullFields []string `json:"-"` -} - -func (s *HelpLink) MarshalJSON() ([]byte, error) { - type NoMethod HelpLink - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) -} - -// HostRule: UrlMaps A host-matching rule for a URL. If matched, will use the -// named PathMatcher to select the BackendService. -type HostRule struct { - // Description: An optional description of this resource. Provide this property - // when you create the resource. - Description string `json:"description,omitempty"` - // Hosts: The list of host patterns to match. They must be valid hostnames with - // optional port numbers in the format host:port. * matches any string of - // ([a-z0-9-.]*). In that case, * must be the first character, and if followed - // by anything, the immediate following character must be either - or .. * - // based matching is not supported when the URL map is bound to a target gRPC - // proxy that has the validateForProxyless field set to true. - Hosts []string `json:"hosts,omitempty"` - // PathMatcher: The name of the PathMatcher to use to match the path portion of - // the URL if the hostRule matches the URL's host portion. - PathMatcher string `json:"pathMatcher,omitempty"` - // ForceSendFields is a list of field names (e.g. "Description") to - // unconditionally include in API requests. By default, fields with empty or - // default values are omitted from API requests. See - // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more - // details. - ForceSendFields []string `json:"-"` - // NullFields is a list of field names (e.g. "Description") to include in API + // NullFields is a list of field names (e.g. "Action") to include in API // requests with the JSON null value. By default, fields with empty values are // omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } -func (s *HostRule) MarshalJSON() ([]byte, error) { - type NoMethod HostRule - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s FirewallPolicyRule) MarshalJSON() ([]byte, error) { + type NoMethod FirewallPolicyRule + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -// HttpFaultAbort: Specification for how requests are aborted as part of fault -// injection. -type HttpFaultAbort struct { - // HttpStatus: The HTTP status code used to abort the request. The value must - // be from 200 to 599 inclusive. For gRPC protocol, the gRPC status code is - // mapped to HTTP status code according to this mapping table. HTTP status 200 - // is mapped to gRPC status UNKNOWN. Injecting an OK status is currently not - // supported by Traffic Director. - HttpStatus int64 `json:"httpStatus,omitempty"` - // Percentage: The percentage of traffic for connections, operations, or - // requests that is aborted as part of fault injection. The value must be from - // 0.0 to 100.0 inclusive. - Percentage float64 `json:"percentage,omitempty"` - // ForceSendFields is a list of field names (e.g. "HttpStatus") to +// FirewallPolicyRuleMatcher: Represents a match condition that incoming +// traffic is evaluated against. +// Exactly one field must be specified. +type FirewallPolicyRuleMatcher struct { + // DestAddressGroups: Address groups which should be matched against the + // traffic destination. + // Maximum number of destination address groups is 10. + DestAddressGroups []string `json:"destAddressGroups,omitempty"` + // DestFqdns: Fully Qualified Domain Name (FQDN) which should be matched + // against + // traffic destination. + // Maximum number of destination fqdn allowed is 100. + DestFqdns []string `json:"destFqdns,omitempty"` + // DestIpRanges: CIDR IP address range. + // Maximum number of destination CIDR IP ranges allowed is 5000. + DestIpRanges []string `json:"destIpRanges,omitempty"` + // DestNetworkContext: Network context of the traffic destination. Allowed + // values are: + // + // + // - UNSPECIFIED + // - INTERNET + // - NON_INTERNET + // + // Possible values: + // "INTERNET" + // "INTRA_VPC" + // "NON_INTERNET" + // "UNSPECIFIED" + // "VPC_NETWORKS" + DestNetworkContext string `json:"destNetworkContext,omitempty"` + // DestNetworkType: Network type of the traffic destination. Allowed values + // are: + // + // + // - UNSPECIFIED + // - INTERNET + // - NON_INTERNET + // + // Possible values: + // "INTERNET" + // "INTRA_VPC" + // "NON_INTERNET" + // "UNSPECIFIED" + // "VPC_NETWORKS" + DestNetworkType string `json:"destNetworkType,omitempty"` + // DestRegionCodes: Region codes whose IP addresses will be used to match for + // destination + // of traffic. Should be specified as 2 letter country code defined as per + // ISO 3166 alpha-2 country codes. ex."US" + // Maximum number of dest region codes allowed is 5000. + DestRegionCodes []string `json:"destRegionCodes,omitempty"` + // DestThreatIntelligences: Names of Network Threat Intelligence lists. + // The IPs in these lists will be matched against traffic destination. + DestThreatIntelligences []string `json:"destThreatIntelligences,omitempty"` + // Layer4Configs: Pairs of IP protocols and ports that the rule should match. + Layer4Configs []*FirewallPolicyRuleMatcherLayer4Config `json:"layer4Configs,omitempty"` + // SrcAddressGroups: Address groups which should be matched against the traffic + // source. + // Maximum number of source address groups is 10. + SrcAddressGroups []string `json:"srcAddressGroups,omitempty"` + // SrcFqdns: Fully Qualified Domain Name (FQDN) which should be matched + // against + // traffic source. + // Maximum number of source fqdn allowed is 100. + SrcFqdns []string `json:"srcFqdns,omitempty"` + // SrcIpRanges: CIDR IP address range. + // Maximum number of source CIDR IP ranges allowed is 5000. + SrcIpRanges []string `json:"srcIpRanges,omitempty"` + // SrcNetworkContext: Network context of the traffic source. Allowed values + // are: + // + // + // - UNSPECIFIED + // - INTERNET + // - INTRA_VPC + // - NON_INTERNET + // - VPC_NETWORKS + // + // Possible values: + // "INTERNET" + // "INTRA_VPC" + // "NON_INTERNET" + // "UNSPECIFIED" + // "VPC_NETWORKS" + SrcNetworkContext string `json:"srcNetworkContext,omitempty"` + // SrcNetworkType: Network type of the traffic source. Allowed values are: + // + // + // - UNSPECIFIED + // - INTERNET + // - INTRA_VPC + // - NON_INTERNET + // - VPC_NETWORKS + // + // Possible values: + // "INTERNET" + // "INTRA_VPC" + // "NON_INTERNET" + // "UNSPECIFIED" + // "VPC_NETWORKS" + SrcNetworkType string `json:"srcNetworkType,omitempty"` + // SrcNetworks: Networks of the traffic source. It can be either a full or + // partial url. + SrcNetworks []string `json:"srcNetworks,omitempty"` + // SrcRegionCodes: Region codes whose IP addresses will be used to match for + // source + // of traffic. Should be specified as 2 letter country code defined as per + // ISO 3166 alpha-2 country codes. ex."US" + // Maximum number of source region codes allowed is 5000. + SrcRegionCodes []string `json:"srcRegionCodes,omitempty"` + // SrcSecureTags: List of secure tag values, which should be matched at the + // source + // of the traffic. + // For INGRESS rule, if all the srcSecureTag are INEFFECTIVE, + // and there is no srcIpRange, this rule will be ignored. + // Maximum number of source tag values allowed is 256. + SrcSecureTags []*FirewallPolicyRuleSecureTag `json:"srcSecureTags,omitempty"` + // SrcThreatIntelligences: Names of Network Threat Intelligence lists. + // The IPs in these lists will be matched against traffic source. + SrcThreatIntelligences []string `json:"srcThreatIntelligences,omitempty"` + // ForceSendFields is a list of field names (e.g. "DestAddressGroups") to // unconditionally include in API requests. By default, fields with empty or // default values are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. ForceSendFields []string `json:"-"` - // NullFields is a list of field names (e.g. "HttpStatus") to include in API - // requests with the JSON null value. By default, fields with empty values are - // omitted from API requests. See + // NullFields is a list of field names (e.g. "DestAddressGroups") to include in + // API requests with the JSON null value. By default, fields with empty values + // are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } -func (s *HttpFaultAbort) MarshalJSON() ([]byte, error) { - type NoMethod HttpFaultAbort - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) -} - -func (s *HttpFaultAbort) UnmarshalJSON(data []byte) error { - type NoMethod HttpFaultAbort - var s1 struct { - Percentage gensupport.JSONFloat64 `json:"percentage"` - *NoMethod - } - s1.NoMethod = (*NoMethod)(s) - if err := json.Unmarshal(data, &s1); err != nil { - return err - } - s.Percentage = float64(s1.Percentage) - return nil +func (s FirewallPolicyRuleMatcher) MarshalJSON() ([]byte, error) { + type NoMethod FirewallPolicyRuleMatcher + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -// HttpFaultDelay: Specifies the delay introduced by the load balancer before -// forwarding the request to the backend service as part of fault injection. -type HttpFaultDelay struct { - // FixedDelay: Specifies the value of the fixed delay interval. - FixedDelay *Duration `json:"fixedDelay,omitempty"` - // Percentage: The percentage of traffic for connections, operations, or - // requests for which a delay is introduced as part of fault injection. The - // value must be from 0.0 to 100.0 inclusive. - Percentage float64 `json:"percentage,omitempty"` - // ForceSendFields is a list of field names (e.g. "FixedDelay") to +type FirewallPolicyRuleMatcherLayer4Config struct { + // IpProtocol: The IP protocol to which this rule applies. The protocol type + // is + // required when creating a firewall rule. This value can either be + // one of the following well known protocol strings (tcp,udp, icmp, esp,ah, + // ipip, sctp), or the IP + // protocol number. + IpProtocol string `json:"ipProtocol,omitempty"` + // Ports: An optional list of ports to which this rule applies. This field + // is + // only applicable for UDP or TCP protocol. Each entry must be either + // an integer or a range. If not specified, this rule applies to + // connections through any port. + // + // Example inputs include: ["22"],["80","443"], and ["12345-12349"]. + Ports []string `json:"ports,omitempty"` + // ForceSendFields is a list of field names (e.g. "IpProtocol") to // unconditionally include in API requests. By default, fields with empty or // default values are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. ForceSendFields []string `json:"-"` - // NullFields is a list of field names (e.g. "FixedDelay") to include in API + // NullFields is a list of field names (e.g. "IpProtocol") to include in API // requests with the JSON null value. By default, fields with empty values are // omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } -func (s *HttpFaultDelay) MarshalJSON() ([]byte, error) { - type NoMethod HttpFaultDelay - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) -} - -func (s *HttpFaultDelay) UnmarshalJSON(data []byte) error { - type NoMethod HttpFaultDelay - var s1 struct { - Percentage gensupport.JSONFloat64 `json:"percentage"` - *NoMethod - } - s1.NoMethod = (*NoMethod)(s) - if err := json.Unmarshal(data, &s1); err != nil { - return err - } - s.Percentage = float64(s1.Percentage) - return nil +func (s FirewallPolicyRuleMatcherLayer4Config) MarshalJSON() ([]byte, error) { + type NoMethod FirewallPolicyRuleMatcherLayer4Config + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -// HttpFaultInjection: The specification for fault injection introduced into -// traffic to test the resiliency of clients to backend service failure. As -// part of fault injection, when clients send requests to a backend service, -// delays can be introduced by the load balancer on a percentage of requests -// before sending those request to the backend service. Similarly requests from -// clients can be aborted by the load balancer for a percentage of requests. -type HttpFaultInjection struct { - // Abort: The specification for how client requests are aborted as part of - // fault injection. - Abort *HttpFaultAbort `json:"abort,omitempty"` - // Delay: The specification for how client requests are delayed as part of - // fault injection, before being sent to a backend service. - Delay *HttpFaultDelay `json:"delay,omitempty"` - // ForceSendFields is a list of field names (e.g. "Abort") to unconditionally +type FirewallPolicyRuleSecureTag struct { + // Name: Name of the secure tag, created with TagManager's TagValue API. + Name string `json:"name,omitempty"` + // State: Output only. [Output Only] State of the secure tag, either + // `EFFECTIVE` or + // `INEFFECTIVE`. A secure tag is `INEFFECTIVE` when it is deleted + // or its network is deleted. + // + // Possible values: + // "EFFECTIVE" + // "INEFFECTIVE" + State string `json:"state,omitempty"` + // ForceSendFields is a list of field names (e.g. "Name") to unconditionally // include in API requests. By default, fields with empty or default values are // omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. ForceSendFields []string `json:"-"` - // NullFields is a list of field names (e.g. "Abort") to include in API - // requests with the JSON null value. By default, fields with empty values are - // omitted from API requests. See - // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. - NullFields []string `json:"-"` -} - -func (s *HttpFaultInjection) MarshalJSON() ([]byte, error) { - type NoMethod HttpFaultInjection - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) -} - -// HttpHeaderAction: The request and response header transformations that take -// effect before the request is passed along to the selected backendService. -type HttpHeaderAction struct { - // RequestHeadersToAdd: Headers to add to a matching request before forwarding - // the request to the backendService. - RequestHeadersToAdd []*HttpHeaderOption `json:"requestHeadersToAdd,omitempty"` - // RequestHeadersToRemove: A list of header names for headers that need to be - // removed from the request before forwarding the request to the - // backendService. - RequestHeadersToRemove []string `json:"requestHeadersToRemove,omitempty"` - // ResponseHeadersToAdd: Headers to add the response before sending the - // response back to the client. - ResponseHeadersToAdd []*HttpHeaderOption `json:"responseHeadersToAdd,omitempty"` - // ResponseHeadersToRemove: A list of header names for headers that need to be - // removed from the response before sending the response back to the client. - ResponseHeadersToRemove []string `json:"responseHeadersToRemove,omitempty"` - // ForceSendFields is a list of field names (e.g. "RequestHeadersToAdd") to - // unconditionally include in API requests. By default, fields with empty or - // default values are omitted from API requests. See - // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more - // details. - ForceSendFields []string `json:"-"` - // NullFields is a list of field names (e.g. "RequestHeadersToAdd") to include - // in API requests with the JSON null value. By default, fields with empty - // values are omitted from API requests. See + // NullFields is a list of field names (e.g. "Name") to include in API requests + // with the JSON null value. By default, fields with empty values are omitted + // from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } -func (s *HttpHeaderAction) MarshalJSON() ([]byte, error) { - type NoMethod HttpHeaderAction - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s FirewallPolicyRuleSecureTag) MarshalJSON() ([]byte, error) { + type NoMethod FirewallPolicyRuleSecureTag + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -// HttpHeaderMatch: matchRule criteria for request header matches. -type HttpHeaderMatch struct { - // ExactMatch: The value should exactly match contents of exactMatch. Only one - // of exactMatch, prefixMatch, suffixMatch, regexMatch, presentMatch or - // rangeMatch must be set. - ExactMatch string `json:"exactMatch,omitempty"` - // HeaderName: The name of the HTTP header to match. For matching against the - // HTTP request's authority, use a headerMatch with the header name - // ":authority". For matching a request's method, use the headerName ":method". - // When the URL map is bound to a target gRPC proxy that has the - // validateForProxyless field set to true, only non-binary user-specified - // custom metadata and the `content-type` header are supported. The following - // transport-level headers cannot be used in header matching rules: - // `:authority`, `:method`, `:path`, `:scheme`, `user-agent`, - // `accept-encoding`, `content-encoding`, `grpc-accept-encoding`, - // `grpc-encoding`, `grpc-previous-rpc-attempts`, `grpc-tags-bin`, - // `grpc-timeout` and `grpc-trace-bin`. - HeaderName string `json:"headerName,omitempty"` - // InvertMatch: If set to false, the headerMatch is considered a match if the - // preceding match criteria are met. If set to true, the headerMatch is - // considered a match if the preceding match criteria are NOT met. The default - // setting is false. - InvertMatch bool `json:"invertMatch,omitempty"` - // PrefixMatch: The value of the header must start with the contents of - // prefixMatch. Only one of exactMatch, prefixMatch, suffixMatch, regexMatch, - // presentMatch or rangeMatch must be set. - PrefixMatch string `json:"prefixMatch,omitempty"` - // PresentMatch: A header with the contents of headerName must exist. The match - // takes place whether or not the request's header has a value. Only one of - // exactMatch, prefixMatch, suffixMatch, regexMatch, presentMatch or rangeMatch - // must be set. - PresentMatch bool `json:"presentMatch,omitempty"` - // RangeMatch: The header value must be an integer and its value must be in the - // range specified in rangeMatch. If the header does not contain an integer, - // number or is empty, the match fails. For example for a range [-5, 0] - -3 - // will match. - 0 will not match. - 0.25 will not match. - -3someString will - // not match. Only one of exactMatch, prefixMatch, suffixMatch, regexMatch, - // presentMatch or rangeMatch must be set. rangeMatch is not supported for load - // balancers that have loadBalancingScheme set to EXTERNAL. - RangeMatch *Int64RangeMatch `json:"rangeMatch,omitempty"` - // RegexMatch: The value of the header must match the regular expression - // specified in regexMatch. For more information about regular expression - // syntax, see Syntax. For matching against a port specified in the HTTP - // request, use a headerMatch with headerName set to PORT and a regular - // expression that satisfies the RFC2616 Host header's port specifier. Only one - // of exactMatch, prefixMatch, suffixMatch, regexMatch, presentMatch or - // rangeMatch must be set. Regular expressions can only be used when the - // loadBalancingScheme is set to INTERNAL_SELF_MANAGED. - RegexMatch string `json:"regexMatch,omitempty"` - // SuffixMatch: The value of the header must end with the contents of - // suffixMatch. Only one of exactMatch, prefixMatch, suffixMatch, regexMatch, - // presentMatch or rangeMatch must be set. - SuffixMatch string `json:"suffixMatch,omitempty"` - // ForceSendFields is a list of field names (e.g. "ExactMatch") to +// FixedOrPercent: Encapsulates numeric value that can be either absolute or +// relative. +type FixedOrPercent struct { + // Calculated: Output only. Absolute value of VM instances calculated based on + // the specific mode. + // + // + // + // - If the value is fixed, then the calculated + // value is equal to the fixed value. + // - If the value is a percent, then the + // calculated + // value is percent/100 * targetSize. For example, + // the calculated value of a 80% of a managed instance group + // with 150 instances would be (80/100 * 150) = 120 VM instances. If + // there + // is a remainder, the number is rounded. + Calculated int64 `json:"calculated,omitempty"` + // Fixed: Specifies a fixed number of VM instances. This must be a positive + // integer. + Fixed int64 `json:"fixed,omitempty"` + // Percent: Specifies a percentage of instances between 0 to 100%, inclusive. + // For + // example, specify 80 for 80%. + Percent int64 `json:"percent,omitempty"` + // ForceSendFields is a list of field names (e.g. "Calculated") to // unconditionally include in API requests. By default, fields with empty or // default values are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. ForceSendFields []string `json:"-"` - // NullFields is a list of field names (e.g. "ExactMatch") to include in API + // NullFields is a list of field names (e.g. "Calculated") to include in API // requests with the JSON null value. By default, fields with empty values are // omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } -func (s *HttpHeaderMatch) MarshalJSON() ([]byte, error) { - type NoMethod HttpHeaderMatch - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s FixedOrPercent) MarshalJSON() ([]byte, error) { + type NoMethod FixedOrPercent + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -// HttpHeaderOption: Specification determining how headers are added to -// requests or responses. -type HttpHeaderOption struct { - // HeaderName: The name of the header. - HeaderName string `json:"headerName,omitempty"` - // HeaderValue: The value of the header to add. - HeaderValue string `json:"headerValue,omitempty"` - // Replace: If false, headerValue is appended to any values that already exist - // for the header. If true, headerValue is set for the header, discarding any - // values that were set for that header. The default value is false. - Replace bool `json:"replace,omitempty"` - // ForceSendFields is a list of field names (e.g. "HeaderName") to +// FlexibleTimeRange: Specifies a flexible time range with flexible start time +// and duration. +// +// It is possible to specify a contradictory time range that cannot be +// matched +// by any Interval. This causes a validation error. +type FlexibleTimeRange struct { + MaxDuration string `json:"maxDuration,omitempty"` + MinDuration string `json:"minDuration,omitempty"` + StartTimeNotEarlierThan string `json:"startTimeNotEarlierThan,omitempty"` + StartTimeNotLaterThan string `json:"startTimeNotLaterThan,omitempty"` + // ForceSendFields is a list of field names (e.g. "MaxDuration") to // unconditionally include in API requests. By default, fields with empty or // default values are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. ForceSendFields []string `json:"-"` - // NullFields is a list of field names (e.g. "HeaderName") to include in API + // NullFields is a list of field names (e.g. "MaxDuration") to include in API // requests with the JSON null value. By default, fields with empty values are // omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } -func (s *HttpHeaderOption) MarshalJSON() ([]byte, error) { - type NoMethod HttpHeaderOption - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s FlexibleTimeRange) MarshalJSON() ([]byte, error) { + type NoMethod FlexibleTimeRange + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -// HttpHealthCheck: Represents a legacy HTTP Health Check resource. Legacy HTTP -// health checks are now only required by target pool-based network load -// balancers. For all other load balancers, including backend service-based -// network load balancers, and for managed instance group auto-healing, you -// must use modern (non-legacy) health checks. For more information, see Health -// checks overview . -type HttpHealthCheck struct { - // CheckIntervalSec: How often (in seconds) to send a health check. The default - // value is 5 seconds. - CheckIntervalSec int64 `json:"checkIntervalSec,omitempty"` - // CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text format. - CreationTimestamp string `json:"creationTimestamp,omitempty"` - // Description: An optional description of this resource. Provide this property - // when you create the resource. - Description string `json:"description,omitempty"` - // HealthyThreshold: A so-far unhealthy instance will be marked healthy after - // this many consecutive successes. The default value is 2. - HealthyThreshold int64 `json:"healthyThreshold,omitempty"` - // Host: The value of the host header in the HTTP health check request. If left - // empty (default value), the public IP on behalf of which this health check is - // performed will be used. - Host string `json:"host,omitempty"` - // Id: [Output Only] The unique identifier for the resource. This identifier is - // defined by the server. - Id uint64 `json:"id,omitempty,string"` - // Kind: [Output Only] Type of the resource. Always compute#httpHealthCheck for - // HTTP health checks. - Kind string `json:"kind,omitempty"` - // Name: Name of the resource. Provided by the client when the resource is - // created. The name must be 1-63 characters long, and comply with RFC1035. - // 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. - Name string `json:"name,omitempty"` - // Port: The TCP port number for the HTTP health check request. The default - // value is 80. - Port int64 `json:"port,omitempty"` - // RequestPath: The request path of the HTTP health check request. The default - // value is /. This field does not support query parameters. Must comply with - // RFC3986. - RequestPath string `json:"requestPath,omitempty"` - // SelfLink: [Output Only] Server-defined URL for the resource. - SelfLink string `json:"selfLink,omitempty"` - // TimeoutSec: How long (in seconds) to wait before claiming failure. The - // default value is 5 seconds. It is invalid for timeoutSec to have greater - // value than checkIntervalSec. - TimeoutSec int64 `json:"timeoutSec,omitempty"` - // UnhealthyThreshold: A so-far healthy instance will be marked unhealthy after - // this many consecutive failures. The default value is 2. - UnhealthyThreshold int64 `json:"unhealthyThreshold,omitempty"` - - // ServerResponse contains the HTTP response code and headers from the server. - googleapi.ServerResponse `json:"-"` - // ForceSendFields is a list of field names (e.g. "CheckIntervalSec") to - // unconditionally include in API requests. By default, fields with empty or - // default values are omitted from API requests. See - // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more - // details. - ForceSendFields []string `json:"-"` - // NullFields is a list of field names (e.g. "CheckIntervalSec") to include in - // API requests with the JSON null value. By default, fields with empty values - // are omitted from API requests. See +// ForwardingRule: Represents a Forwarding Rule resource. +// +// Forwarding rule resources in Google Cloud can be either regional or global +// in +// scope: +// +// * Global +// (https://cloud.google.com/compute/docs/reference/rest/v1/globalForwardingRules) +// * Regional +// (https://cloud.google.com/compute/docs/reference/rest/v1/forwardingRules) +// +// A forwarding rule and its corresponding IP address represent the +// frontend +// configuration of a Google Cloud load balancer. +// Forwarding rules can also reference target instances and Cloud VPN +// Classic +// gateways (targetVpnGateway). +// +// For more information, read +// Forwarding rule concepts and +// Using protocol forwarding. +type ForwardingRule struct { + // IPAddress: IP address for which this forwarding rule accepts traffic. When a + // client + // sends traffic to this IP address, the forwarding rule directs the traffic + // to the referenced target or backendService. + // While creating a forwarding rule, specifying an IPAddress is + // required under the following circumstances: + // + // + // - When the target is set to targetGrpcProxy andvalidateForProxyless is + // set to true, theIPAddress should be set to 0.0.0.0. + // - When the target is a Private Service Connect Google APIs + // bundle, you must specify an IPAddress. + // + // + // Otherwise, you can optionally specify an IP address that references + // an + // existing static (reserved) IP address resource. When omitted, Google + // Cloud + // assigns an ephemeral IP address. + // + // Use one of the following formats to specify an IP address while creating + // a + // forwarding rule: + // + // * IP address number, as in `100.1.2.3` + // * IPv6 address range, as in `2600:1234::/96` + // * Full resource URL, as + // inhttps://www.googleapis.com/compute/v1/projects/project_id/regions/region/ad + // dresses/address-name + // * Partial URL or by name, as in: + // + // - projects/project_id/regions/region/addresses/address-name + // - regions/region/addresses/address-name + // - global/addresses/address-name + // - address-name + // + // + // + // The forwarding rule's target or backendService, + // and in most cases, also the loadBalancingScheme, determine the + // type of IP address that you can use. For detailed information, see + // IP address + // specifications + // (https://cloud.google.com/load-balancing/docs/forwarding-rule-concepts#ip_address_specifications). + // + // When reading an IPAddress, the API always returns the IP + // address number. + IPAddress string `json:"IPAddress,omitempty"` + // IPProtocol: The IP protocol to which this rule applies. + // + // For protocol forwarding, valid + // options are TCP, UDP, ESP,AH, SCTP, ICMP andL3_DEFAULT. + // + // The valid IP protocols are different for different load balancing + // products + // as described in Load balancing + // features + // (https://cloud.google.com/load-balancing/docs/features#protocols_from_the_load_balancer_to_the_backends). + // + // Possible values: + // "AH" + // "ESP" + // "ICMP" + // "L3_DEFAULT" + // "SCTP" + // "TCP" + // "UDP" + IPProtocol string `json:"IPProtocol,omitempty"` + // AllPorts: The ports, portRange, and allPorts + // fields are mutually exclusive. Only packets addressed to ports in + // the + // specified range will be forwarded to the backends configured with + // this + // forwarding rule. + // + // The allPorts field has the following limitations: + // + // - It requires that the forwarding rule IPProtocol be TCP, + // UDP, SCTP, or L3_DEFAULT. + // - It's applicable only to the following products: internal passthrough + // Network Load Balancers, backend service-based external passthrough + // Network + // Load Balancers, and internal and external protocol forwarding. + // - Set this field to true to allow packets addressed to any port or + // packets lacking destination port information (for example, UDP fragments + // after the first fragment) to be forwarded to the backends configured + // with + // this forwarding rule. The L3_DEFAULT protocol requiresallPorts be set to + // true. + AllPorts bool `json:"allPorts,omitempty"` + // AllowGlobalAccess: If set to true, clients can access the internal + // passthrough Network Load + // Balancers, the regional internal Application Load Balancer, and the + // regional internal proxy Network Load Balancer from all regions. + // If false, only allows access from the local region the load balancer + // is + // located at. Note that for INTERNAL_MANAGED forwarding rules, this + // field + // cannot be changed after the forwarding rule is created. + AllowGlobalAccess bool `json:"allowGlobalAccess,omitempty"` + // AllowPscGlobalAccess: This is used in PSC consumer ForwardingRule to control + // whether the PSC + // endpoint can be accessed from another region. + AllowPscGlobalAccess bool `json:"allowPscGlobalAccess,omitempty"` + // AttachedExtensions: Output only. [Output Only]. The extensions that are + // attached to this ForwardingRule. + AttachedExtensions []*ForwardingRuleAttachedExtension `json:"attachedExtensions,omitempty"` + // BackendService: Identifies the backend service to which the forwarding rule + // sends traffic. + // Required for internal and external passthrough Network Load Balancers; + // must be omitted for all other load balancer types. + BackendService string `json:"backendService,omitempty"` + // BaseForwardingRule: Output only. [Output Only] The URL for the corresponding + // base forwarding rule. By base + // forwarding rule, we mean the forwarding rule that has the same IP + // address, + // protocol, and port settings with the current forwarding rule, but + // without + // sourceIPRanges specified. + // Always empty if the current forwarding rule does not have + // sourceIPRanges + // specified. + BaseForwardingRule string `json:"baseForwardingRule,omitempty"` + // CreationTimestamp: Output only. [Output Only] Creation timestamp + // inRFC3339 + // text format. + CreationTimestamp string `json:"creationTimestamp,omitempty"` + // Description: An optional description of this resource. Provide this property + // when you + // create the resource. + Description string `json:"description,omitempty"` + // ExternalManagedBackendBucketMigrationState: Specifies the canary migration + // state for the backend buckets attached to + // this forwarding rule. Possible values are PREPARE, TEST_BY_PERCENTAGE, + // and + // TEST_ALL_TRAFFIC. + // + // To begin the migration from EXTERNAL to EXTERNAL_MANAGED, the state must + // be + // changed to PREPARE. The state must be changed to TEST_ALL_TRAFFIC before + // the loadBalancingScheme can be changed to EXTERNAL_MANAGED. Optionally, + // the + // TEST_BY_PERCENTAGE state can be used to migrate traffic to backend + // buckets + // attached to this forwarding rule by percentage + // using + // externalManagedBackendBucketMigrationTestingPercentage. + // + // Rolling back a migration requires the states to be set in reverse order. + // So + // changing the scheme from EXTERNAL_MANAGED to EXTERNAL requires the state + // to + // be set to TEST_ALL_TRAFFIC at the same time. Optionally, + // the + // TEST_BY_PERCENTAGE state can be used to migrate some traffic back + // to + // EXTERNAL or PREPARE can be used to migrate all traffic back to EXTERNAL. + // + // Possible values: + // "PREPARE" + // "TEST_ALL_TRAFFIC" + // "TEST_BY_PERCENTAGE" + ExternalManagedBackendBucketMigrationState string `json:"externalManagedBackendBucketMigrationState,omitempty"` + // ExternalManagedBackendBucketMigrationTestingPercentage: Determines the + // fraction of requests to backend buckets that should be + // processed by the global external Application Load Balancer. + // + // The value of this field must be in the range [0, 100]. + // + // This value can only be set if the loadBalancingScheme in the + // BackendService + // is set to EXTERNAL (when using the classic Application Load Balancer) + // and + // the migration state is TEST_BY_PERCENTAGE. + ExternalManagedBackendBucketMigrationTestingPercentage float64 `json:"externalManagedBackendBucketMigrationTestingPercentage,omitempty"` + // Fingerprint: Fingerprint of this resource. A hash of the contents stored in + // this object. + // This field is used in optimistic locking. This field will be ignored + // when + // inserting a ForwardingRule. Include the fingerprint in patch request + // to + // ensure that you do not overwrite changes that were applied from + // another + // concurrent request. + // + // To see the latest fingerprint, make a get() request to + // retrieve a ForwardingRule. + Fingerprint string `json:"fingerprint,omitempty"` + // Id: [Output Only] The unique identifier for the resource. This identifier + // is + // defined by the server. + Id uint64 `json:"id,omitempty,string"` + // IpCollection: Resource reference of a PublicDelegatedPrefix. The PDP must + // be a sub-PDP in EXTERNAL_IPV6_FORWARDING_RULE_CREATION mode. + // + // Use one of the following formats to specify a sub-PDP when creating an + // IPv6 + // NetLB forwarding rule using BYOIP: + // Full resource URL, as + // inhttps://www.googleapis.com/compute/v1/projects/project_id/regions/region/pu + // blicDelegatedPrefixes/sub-pdp-name + // Partial URL, as in: + // + // - + // projects/project_id/regions/region/publicDelegatedPrefixes/sub-pdp-name + // - regions/region/publicDelegatedPrefixes/sub-pdp-name + IpCollection string `json:"ipCollection,omitempty"` + // IpVersion: The IP Version that will be used by this forwarding rule. Valid + // options + // are IPV4 or IPV6. + // + // Possible values: + // "IPV4" + // "IPV6" + // "UNSPECIFIED_VERSION" + IpVersion string `json:"ipVersion,omitempty"` + // IsMirroringCollector: Indicates whether or not this load balancer can be + // used as a collector for + // packet mirroring. To prevent mirroring loops, instances behind this + // load balancer will not have their traffic mirrored even if aPacketMirroring + // rule applies to them. + // This can only be set to true for load balancers that have + // theirloadBalancingScheme set to INTERNAL. + IsMirroringCollector bool `json:"isMirroringCollector,omitempty"` + // Kind: Output only. [Output Only] Type of the resource. + // Alwayscompute#forwardingRule for forwarding rule resources. + Kind string `json:"kind,omitempty"` + // LabelFingerprint: A fingerprint for the labels being applied to this + // resource, which is + // essentially a hash of the labels set used for optimistic locking. + // The + // fingerprint is initially generated by Compute Engine and changes after + // every request to modify or update labels. You must always provide + // an + // up-to-date fingerprint hash in order to update or change labels, + // otherwise the request will fail with error412 conditionNotMet. + // + // To see the latest fingerprint, make a get() request to + // retrieve a ForwardingRule. + LabelFingerprint string `json:"labelFingerprint,omitempty"` + // Labels: Labels for this resource. These can only be added or modified by + // thesetLabels method. Each label key/value pair must comply + // withRFC1035. + // Label values may be empty. + Labels map[string]string `json:"labels,omitempty"` + // LoadBalancingScheme: Specifies the forwarding rule type. + // + // For more information about forwarding rules, refer to + // Forwarding rule concepts. + // + // Possible values: + // "EXTERNAL" + // "EXTERNAL_MANAGED" + // "INTERNAL" + // "INTERNAL_MANAGED" + // "INTERNAL_SELF_MANAGED" + // "INVALID" + LoadBalancingScheme string `json:"loadBalancingScheme,omitempty"` + // MetadataFilters: Opaque filter criteria used by load balancer to restrict + // routing + // configuration to a limited set of xDS + // compliant clients. In their xDS requests to load balancer, xDS + // clients + // present node + // metadata. When there is a match, the relevant configuration + // is made available to those proxies. Otherwise, all the resources + // (e.g.TargetHttpProxy, UrlMap) + // referenced by the ForwardingRule are not visible to + // those proxies. + // + // For each metadataFilter in this list, if itsfilterMatchCriteria is set to + // MATCH_ANY, at least one of thefilterLabels must match the corresponding + // label provided in + // the metadata. If its filterMatchCriteria is set to + // MATCH_ALL, then all of its filterLabels must match with + // corresponding labels provided in the metadata. If multiplemetadataFilters + // are specified, all of them need to be satisfied + // in order to be considered a match. + // + // metadataFilters specified here will be applifed before + // those specified in the UrlMap that thisForwardingRule + // references. + // + // metadataFilters only applies to Loadbalancers that have + // their loadBalancingScheme set toINTERNAL_SELF_MANAGED. + MetadataFilters []*MetadataFilter `json:"metadataFilters,omitempty"` + // Name: Name of the resource; provided by the client when the resource is + // created. + // The name must be 1-63 characters long, and comply withRFC1035. + // 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. + // + // For Private Service Connect forwarding rules that forward traffic to + // Google + // APIs, the forwarding rule name must be a 1-20 characters string + // with + // lowercase letters and numbers and must start with a letter. + Name string `json:"name,omitempty"` + // Network: This field is not used for global external load balancing. + // + // For internal passthrough Network Load Balancers, this field identifies + // the + // network that the load balanced IP should belong to for this + // forwarding + // rule. + // If the subnetwork is specified, the network of the subnetwork will be + // used. + // If neither subnetwork nor this field is specified, the default network + // will + // be used. + // + // For Private Service Connect forwarding rules that forward traffic to + // Google + // APIs, a network must be provided. + Network string `json:"network,omitempty"` + // NetworkTier: This signifies the networking tier used for configuring + // this load balancer and can only take the following values:PREMIUM, + // STANDARD. + // + // For regional ForwardingRule, the valid values are PREMIUM andSTANDARD. For + // GlobalForwardingRule, the valid value isPREMIUM. + // + // If this field is not specified, it is assumed to be PREMIUM. + // If IPAddress is specified, this value must be equal to the + // networkTier of the Address. + // + // Possible values: + // "FIXED_STANDARD" - Public internet quality with fixed bandwidth. + // "PREMIUM" - High quality, Google-grade network tier, support for all + // networking + // products. + // "STANDARD" - Public internet quality, only limited support for other + // networking + // products. + // "STANDARD_OVERRIDES_FIXED_STANDARD" - (Output only) Temporary tier for + // FIXED_STANDARD when fixed standard tier + // is expired or not configured. + NetworkTier string `json:"networkTier,omitempty"` + // NoAutomateDnsZone: This is used in PSC consumer ForwardingRule to control + // whether it should + // try to auto-generate a DNS zone or not. Non-PSC forwarding rules do not + // use + // this field. Once set, this field is not mutable. + NoAutomateDnsZone bool `json:"noAutomateDnsZone,omitempty"` + // PortRange: The ports, portRange, and allPorts + // fields are mutually exclusive. Only packets addressed to ports in + // the + // specified range will be forwarded to the backends configured with + // this + // forwarding rule. + // + // The portRange field has the following limitations: + // + // - It requires that the forwarding rule IPProtocol be TCP, + // UDP, or SCTP, and + // - It's applicable only to the following products: external passthrough + // Network Load Balancers, internal and external proxy Network Load + // Balancers, + // internal and external Application Load Balancers, external protocol + // forwarding, and Classic VPN. + // - Some products have restrictions on what ports can be used. See + // port specifications for details. + // + // + // + // For external forwarding rules, two or more forwarding rules cannot use + // the + // same [IPAddress, IPProtocol] pair, and cannot have + // overlappingportRanges. + // + // For internal forwarding rules within the same VPC network, two or + // more + // forwarding rules cannot use the same [IPAddress, IPProtocol] + // pair, and cannot have overlapping portRanges. + // + // @pattern: \\d+(?:-\\d+)? + PortRange string `json:"portRange,omitempty"` + // Ports: The ports, portRange, and allPorts + // fields are mutually exclusive. Only packets addressed to ports in + // the + // specified range will be forwarded to the backends configured with + // this + // forwarding rule. + // + // The ports field has the following limitations: + // + // - It requires that the forwarding rule IPProtocol be TCP, + // UDP, or SCTP, and + // - It's applicable only to the following products: internal passthrough + // Network Load Balancers, backend service-based external passthrough + // Network + // Load Balancers, and internal protocol forwarding. + // - You can specify a list of up to five ports by number, separated by + // commas. The ports can be contiguous or discontiguous. + // + // + // + // For external forwarding rules, two or more forwarding rules cannot use + // the + // same [IPAddress, IPProtocol] pair if they share at least one + // port number. + // + // For internal forwarding rules within the same VPC network, two or + // more + // forwarding rules cannot use the same [IPAddress, IPProtocol] + // pair if they share at least one port number. + // + // @pattern: \\d+(?:-\\d+)? + Ports []string `json:"ports,omitempty"` + // PscConnectionId: [Output Only] The PSC connection id of the PSC forwarding + // rule. + PscConnectionId uint64 `json:"pscConnectionId,omitempty,string"` + // Possible values: + // "ACCEPTED" - The connection has been accepted by the producer. + // "CLOSED" - The connection has been closed by the producer and will not + // serve traffic + // going forward. + // "NEEDS_ATTENTION" - The connection has been accepted by the producer, but + // the producer needs + // to take further action before the forwarding rule can serve traffic. + // "PENDING" - The connection is pending acceptance by the producer. + // "REJECTED" - The connection has been rejected by the producer. + // "STATUS_UNSPECIFIED" + PscConnectionStatus string `json:"pscConnectionStatus,omitempty"` + // Region: Output only. [Output Only] URL of the region where the regional + // forwarding rule resides. + // This field is not applicable to global forwarding rules. + // You must specify this field as part of the HTTP request URL. It is + // not settable as a field in the request body. + Region string `json:"region,omitempty"` + // SelfLink: [Output Only] Server-defined URL for the resource. + SelfLink string `json:"selfLink,omitempty"` + // SelfLinkWithId: Output only. [Output Only] Server-defined URL for this + // resource with the resource id. + SelfLinkWithId string `json:"selfLinkWithId,omitempty"` + // ServiceDirectoryRegistrations: Service Directory resources to register this + // forwarding rule with. + // Currently, only supports a single Service Directory resource. + ServiceDirectoryRegistrations []*ForwardingRuleServiceDirectoryRegistration `json:"serviceDirectoryRegistrations,omitempty"` + // ServiceLabel: An optional prefix to the service name for this forwarding + // rule. + // If specified, the prefix is the first label of the fully qualified + // service + // name. + // + // The label must be 1-63 characters long, and comply + // withRFC1035. + // Specifically, the label must be 1-63 characters long and match the + // regular + // expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first + // character must be a lowercase letter, and all following characters must + // be a dash, lowercase letter, or digit, except the last character, + // which + // cannot be a dash. + // + // This field is only used for internal load balancing. + ServiceLabel string `json:"serviceLabel,omitempty"` + // ServiceName: [Output Only] + // The internal fully qualified service name for this forwarding rule. + // + // This field is only used for internal load balancing. + ServiceName string `json:"serviceName,omitempty"` + // SourceIpRanges: If not empty, this forwarding rule will only forward the + // traffic when the + // source IP address matches one of the IP addresses or CIDR ranges set + // here. + // Note that a forwarding rule can only have up to 64 source IP ranges, + // and + // this field can only be used with a regional forwarding rule whose scheme + // isEXTERNAL. + // Each source_ip_range entry should be either an IP address (for + // example, 1.2.3.4) or a CIDR range (for example, 1.2.3.0/24). + SourceIpRanges []string `json:"sourceIpRanges,omitempty"` + // Subnetwork: This field identifies the subnetwork that the load balanced IP + // should + // belong to for this forwarding rule, used with internal load balancers + // and + // external passthrough Network Load Balancers with IPv6. + // + // If the network specified is in auto subnet mode, this field is + // optional. + // However, a subnetwork must be specified if the network is in custom + // subnet + // mode or when creating external forwarding rule with IPv6. + Subnetwork string `json:"subnetwork,omitempty"` + // Target: The URL of the target resource to receive the matched traffic. + // For + // regional forwarding rules, this target must be in the same region as + // the + // forwarding rule. For global forwarding rules, this target must be a + // global + // load balancing resource. + // + // The forwarded traffic must be of a type appropriate to the target object. + // + // + // - For load balancers, see the "Target" column in Port specifications + // (https://cloud.google.com/load-balancing/docs/forwarding-rule-concepts#ip_address_specifications). + // - For Private Service Connect forwarding rules that forward traffic to + // Google APIs, provide the name of a supported Google API bundle: + // + // + // - vpc-sc - APIs that support VPC Service Controls. + // - all-apis - All supported Google APIs. + // + // + // - For Private Service Connect forwarding rules that forward traffic to + // managed services, the target must be a service attachment. The target is not + // mutable once set as a service attachment. + Target string `json:"target,omitempty"` + + // ServerResponse contains the HTTP response code and headers from the server. + googleapi.ServerResponse `json:"-"` + // ForceSendFields is a list of field names (e.g. "IPAddress") to + // unconditionally include in API requests. By default, fields with empty or + // default values are omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + ForceSendFields []string `json:"-"` + // NullFields is a list of field names (e.g. "IPAddress") to include in API + // requests with the JSON null value. By default, fields with empty values are + // omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } -func (s *HttpHealthCheck) MarshalJSON() ([]byte, error) { - type NoMethod HttpHealthCheck - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s ForwardingRule) MarshalJSON() ([]byte, error) { + type NoMethod ForwardingRule + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -// HttpHealthCheckList: Contains a list of HttpHealthCheck resources. -type HttpHealthCheckList struct { +func (s *ForwardingRule) UnmarshalJSON(data []byte) error { + type NoMethod ForwardingRule + var s1 struct { + ExternalManagedBackendBucketMigrationTestingPercentage gensupport.JSONFloat64 `json:"externalManagedBackendBucketMigrationTestingPercentage"` + *NoMethod + } + s1.NoMethod = (*NoMethod)(s) + if err := json.Unmarshal(data, &s1); err != nil { + return err + } + s.ExternalManagedBackendBucketMigrationTestingPercentage = float64(s1.ExternalManagedBackendBucketMigrationTestingPercentage) + return nil +} + +type ForwardingRuleAggregatedList struct { // Id: [Output Only] Unique identifier for the resource; defined by the server. Id string `json:"id,omitempty"` - // Items: A list of HttpHealthCheck resources. - Items []*HttpHealthCheck `json:"items,omitempty"` - // Kind: Type of resource. + // Items: A list of ForwardingRulesScopedList resources. + Items map[string]ForwardingRulesScopedList `json:"items,omitempty"` + // Kind: Output only. [Output Only] Type of resource. + // Alwayscompute#forwardingRuleAggregatedList for lists of forwarding rules. 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. + // results for + // list requests. If the number of results is larger thanmaxResults, 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"` - // SelfLink: [Output Only] Server-defined URL for this resource. + // SelfLink: Output only. [Output Only] Server-defined URL for this resource. SelfLink string `json:"selfLink,omitempty"` + // Unreachables: Output only. [Output Only] Unreachable resources. + Unreachables []string `json:"unreachables,omitempty"` // Warning: [Output Only] Informational warning message. - Warning *HttpHealthCheckListWarning `json:"warning,omitempty"` + Warning *ForwardingRuleAggregatedListWarning `json:"warning,omitempty"` // ServerResponse contains the HTTP response code and headers from the server. googleapi.ServerResponse `json:"-"` @@ -14000,76 +18459,99 @@ type HttpHealthCheckList struct { NullFields []string `json:"-"` } -func (s *HttpHealthCheckList) MarshalJSON() ([]byte, error) { - type NoMethod HttpHealthCheckList - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s ForwardingRuleAggregatedList) MarshalJSON() ([]byte, error) { + type NoMethod ForwardingRuleAggregatedList + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -// HttpHealthCheckListWarning: [Output Only] Informational warning message. -type HttpHealthCheckListWarning 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. +// ForwardingRuleAggregatedListWarning: [Output Only] Informational warning +// message. +type ForwardingRuleAggregatedListWarning 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" - Warning about failed cleanup of transient changes made - // by a failed operation. + // by a failed + // operation. // "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was created. // "DEPRECATED_TYPE_USED" - When deploying and at least one of the resources - // has a type marked as deprecated + // has a type marked as + // deprecated // "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk that is // larger than image size. // "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the - // resources has a type marked as experimental + // resources has a type marked as + // experimental // "EXTERNAL_API_WARNING" - Warning that is present in an external api call // "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been - // overridden. Deprecated unused field. + // overridden. + // Deprecated unused field. // "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an injected // kernel, which is deprecated. // "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB" - A WEIGHTED_MAGLEV backend - // service is associated with a health check that is not of type - // HTTP/HTTPS/HTTP2. + // service is associated with a health check that is + // not of type HTTP/HTTPS/HTTP2. // "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a // exceedingly large number of resources // "LIST_OVERHEAD_QUOTA_EXCEED" - Resource can't be retrieved due to list - // overhead quota exceed which captures the amount of resources filtered out by + // overhead quota exceed + // which captures the amount of resources filtered out by // user-defined list filter. // "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is not - // assigned to an instance on the network. + // assigned to an instance on the + // network. // "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot ip // forward. // "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE" - The route's nextHopInstance - // URL refers to an instance that does not have an ipv6 interface on the same - // network as the route. + // URL refers to an instance that does not have an + // ipv6 interface on the same network as the route. // "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL refers to // an instance that does not exist. // "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance URL - // refers to an instance that is not on the same network as the route. + // refers to an instance that is not on the + // same network as the route. // "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not have a // status of RUNNING. // "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to continue - // the process despite the mentioned error. + // the process despite + // the mentioned error. // "NO_RESULTS_ON_PAGE" - No results are present on a particular list page. // "PARTIAL_SUCCESS" - Success is reported, but some results may be missing // due to errors + // "QUOTA_INFO_UNAVAILABLE" - Quota information is not available to client + // requests (e.g: + // regions.list). // "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource that - // requires a TOS they have not accepted. + // requires a TOS they have not + // accepted. // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a resource is // in use. // "RESOURCE_NOT_DELETED" - One or more of the resources set to auto-delete - // could not be deleted because they were in use. + // could not be deleted + // because they were in use. // "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is // ignored. // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in instance - // group manager is valid as such, but its application does not make a lot of - // sense, because it allows only single instance in instance group. + // group manager is valid as such, but + // its application does not make a lot of sense, because it allows only + // single instance in instance group. // "UNDECLARED_PROPERTIES" - When undeclared properties in the schema are // present // "UNREACHABLE" - A given scope cannot be reached. 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 []*HttpHealthCheckListWarningData `json:"data,omitempty"` + // Data: [Output Only] Metadata about this warning in key: + // value format. For example: + // + // "data": [ + // { + // "key": "scope", + // "value": "zones/us-east1-d" + // } + Data []*ForwardingRuleAggregatedListWarningData `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 @@ -14085,19 +18567,22 @@ type HttpHealthCheckListWarning struct { NullFields []string `json:"-"` } -func (s *HttpHealthCheckListWarning) MarshalJSON() ([]byte, error) { - type NoMethod HttpHealthCheckListWarning - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s ForwardingRuleAggregatedListWarning) MarshalJSON() ([]byte, error) { + type NoMethod ForwardingRuleAggregatedListWarning + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -type HttpHealthCheckListWarningData 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). +type ForwardingRuleAggregatedListWarningData 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"` @@ -14114,489 +18599,54 @@ type HttpHealthCheckListWarningData struct { NullFields []string `json:"-"` } -func (s *HttpHealthCheckListWarningData) MarshalJSON() ([]byte, error) { - type NoMethod HttpHealthCheckListWarningData - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) -} - -// HttpQueryParameterMatch: HttpRouteRuleMatch criteria for a request's query -// parameter. -type HttpQueryParameterMatch struct { - // ExactMatch: The queryParameterMatch matches if the value of the parameter - // exactly matches the contents of exactMatch. Only one of presentMatch, - // exactMatch, or regexMatch must be set. - ExactMatch string `json:"exactMatch,omitempty"` - // Name: The name of the query parameter to match. The query parameter must - // exist in the request, in the absence of which the request match fails. - Name string `json:"name,omitempty"` - // PresentMatch: Specifies that the queryParameterMatch matches if the request - // contains the query parameter, irrespective of whether the parameter has a - // value or not. Only one of presentMatch, exactMatch, or regexMatch must be - // set. - PresentMatch bool `json:"presentMatch,omitempty"` - // RegexMatch: The queryParameterMatch matches if the value of the parameter - // matches the regular expression specified by regexMatch. For more information - // about regular expression syntax, see Syntax. Only one of presentMatch, - // exactMatch, or regexMatch must be set. Regular expressions can only be used - // when the loadBalancingScheme is set to INTERNAL_SELF_MANAGED. - RegexMatch string `json:"regexMatch,omitempty"` - // ForceSendFields is a list of field names (e.g. "ExactMatch") to - // unconditionally include in API requests. By default, fields with empty or - // default values are omitted from API requests. See - // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more - // details. - ForceSendFields []string `json:"-"` - // NullFields is a list of field names (e.g. "ExactMatch") to include in API - // requests with the JSON null value. By default, fields with empty values are - // omitted from API requests. See - // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. - NullFields []string `json:"-"` -} - -func (s *HttpQueryParameterMatch) MarshalJSON() ([]byte, error) { - type NoMethod HttpQueryParameterMatch - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) -} - -// HttpRedirectAction: Specifies settings for an HTTP redirect. -type HttpRedirectAction struct { - // HostRedirect: The host that is used in the redirect response instead of the - // one that was supplied in the request. The value must be from 1 to 255 - // characters. - HostRedirect string `json:"hostRedirect,omitempty"` - // HttpsRedirect: If set to true, the URL scheme in the redirected request is - // set to HTTPS. If set to false, the URL scheme of the redirected request - // remains the same as that of the request. This must only be set for URL maps - // used in TargetHttpProxys. Setting this true for TargetHttpsProxy is not - // permitted. The default is set to false. - HttpsRedirect bool `json:"httpsRedirect,omitempty"` - // PathRedirect: The path that is used in the redirect response instead of the - // one that was supplied in the request. pathRedirect cannot be supplied - // together with prefixRedirect. Supply one alone or neither. If neither is - // supplied, the path of the original request is used for the redirect. The - // value must be from 1 to 1024 characters. - PathRedirect string `json:"pathRedirect,omitempty"` - // PrefixRedirect: The prefix that replaces the prefixMatch specified in the - // HttpRouteRuleMatch, retaining the remaining portion of the URL before - // redirecting the request. prefixRedirect cannot be supplied together with - // pathRedirect. Supply one alone or neither. If neither is supplied, the path - // of the original request is used for the redirect. The value must be from 1 - // to 1024 characters. - PrefixRedirect string `json:"prefixRedirect,omitempty"` - // RedirectResponseCode: The HTTP Status code to use for this RedirectAction. - // Supported values are: - MOVED_PERMANENTLY_DEFAULT, which is the default - // value and corresponds to 301. - FOUND, which corresponds to 302. - SEE_OTHER - // which corresponds to 303. - TEMPORARY_REDIRECT, which corresponds to 307. In - // this case, the request method is retained. - PERMANENT_REDIRECT, which - // corresponds to 308. In this case, the request method is retained. - // - // Possible values: - // "FOUND" - Http Status Code 302 - Found. - // "MOVED_PERMANENTLY_DEFAULT" - Http Status Code 301 - Moved Permanently. - // "PERMANENT_REDIRECT" - Http Status Code 308 - Permanent Redirect - // maintaining HTTP method. - // "SEE_OTHER" - Http Status Code 303 - See Other. - // "TEMPORARY_REDIRECT" - Http Status Code 307 - Temporary Redirect - // maintaining HTTP method. - RedirectResponseCode string `json:"redirectResponseCode,omitempty"` - // StripQuery: If set to true, any accompanying query portion of the original - // URL is removed before redirecting the request. If set to false, the query - // portion of the original URL is retained. The default is set to false. - StripQuery bool `json:"stripQuery,omitempty"` - // ForceSendFields is a list of field names (e.g. "HostRedirect") to - // unconditionally include in API requests. By default, fields with empty or - // default values are omitted from API requests. See - // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more - // details. - ForceSendFields []string `json:"-"` - // NullFields is a list of field names (e.g. "HostRedirect") to include in API - // requests with the JSON null value. By default, fields with empty values are - // omitted from API requests. See - // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. - NullFields []string `json:"-"` -} - -func (s *HttpRedirectAction) MarshalJSON() ([]byte, error) { - type NoMethod HttpRedirectAction - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) -} - -// HttpRetryPolicy: The retry policy associates with HttpRouteRule -type HttpRetryPolicy struct { - // NumRetries: Specifies the allowed number retries. This number must be > 0. - // If not specified, defaults to 1. - NumRetries int64 `json:"numRetries,omitempty"` - // PerTryTimeout: Specifies a non-zero timeout per retry attempt. If not - // specified, will use the timeout set in the HttpRouteAction field. If timeout - // in the HttpRouteAction field is not set, this field uses the largest timeout - // among all backend services associated with the route. Not supported when the - // URL map is bound to a target gRPC proxy that has the validateForProxyless - // field set to true. - PerTryTimeout *Duration `json:"perTryTimeout,omitempty"` - // RetryConditions: Specifies one or more conditions when this retry policy - // applies. Valid values are: - 5xx: retry is attempted if the instance or - // endpoint responds with any 5xx response code, or if the instance or endpoint - // does not respond at all. For example, disconnects, reset, read timeout, - // connection failure, and refused streams. - gateway-error: Similar to 5xx, - // but only applies to response codes 502, 503 or 504. - connect-failure: a - // retry is attempted on failures connecting to the instance or endpoint. For - // example, connection timeouts. - retriable-4xx: a retry is attempted if the - // instance or endpoint responds with a 4xx response code. The only error that - // you can retry is error code 409. - refused-stream: a retry is attempted if - // the instance or endpoint resets the stream with a REFUSED_STREAM error code. - // This reset type indicates that it is safe to retry. - cancelled: a retry is - // attempted if the gRPC status code in the response header is set to - // cancelled. - deadline-exceeded: a retry is attempted if the gRPC status code - // in the response header is set to deadline-exceeded. - internal: a retry is - // attempted if the gRPC status code in the response header is set to internal. - // - resource-exhausted: a retry is attempted if the gRPC status code in the - // response header is set to resource-exhausted. - unavailable: a retry is - // attempted if the gRPC status code in the response header is set to - // unavailable. Only the following codes are supported when the URL map is - // bound to target gRPC proxy that has validateForProxyless field set to true. - // - cancelled - deadline-exceeded - internal - resource-exhausted - - // unavailable - RetryConditions []string `json:"retryConditions,omitempty"` - // ForceSendFields is a list of field names (e.g. "NumRetries") to - // unconditionally include in API requests. By default, fields with empty or - // default values are omitted from API requests. See - // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more - // details. - ForceSendFields []string `json:"-"` - // NullFields is a list of field names (e.g. "NumRetries") to include in API - // requests with the JSON null value. By default, fields with empty values are - // omitted from API requests. See - // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. - NullFields []string `json:"-"` -} - -func (s *HttpRetryPolicy) MarshalJSON() ([]byte, error) { - type NoMethod HttpRetryPolicy - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) -} - -type HttpRouteAction struct { - // CorsPolicy: The specification for allowing client-side cross-origin - // requests. For more information about the W3C recommendation for cross-origin - // resource sharing (CORS), see Fetch API Living Standard. Not supported when - // the URL map is bound to a target gRPC proxy. - CorsPolicy *CorsPolicy `json:"corsPolicy,omitempty"` - // FaultInjectionPolicy: The specification for fault injection introduced into - // traffic to test the resiliency of clients to backend service failure. As - // part of fault injection, when clients send requests to a backend service, - // delays can be introduced by a load balancer on a percentage of requests - // before sending those requests to the backend service. Similarly requests - // from clients can be aborted by the load balancer for a percentage of - // requests. timeout and retry_policy is ignored by clients that are configured - // with a fault_injection_policy if: 1. The traffic is generated by fault - // injection AND 2. The fault injection is not a delay fault injection. Fault - // injection is not supported with the classic Application Load Balancer . To - // see which load balancers support fault injection, see Load balancing: - // Routing and traffic management features. - FaultInjectionPolicy *HttpFaultInjection `json:"faultInjectionPolicy,omitempty"` - // MaxStreamDuration: Specifies the maximum duration (timeout) for streams on - // the selected route. Unlike the timeout field where the timeout duration - // starts from the time the request has been fully processed (known as - // *end-of-stream*), the duration in this field is computed from the beginning - // of the stream until the response has been processed, including all retries. - // A stream that does not complete in this duration is closed. If not - // specified, this field uses the maximum maxStreamDuration value among all - // backend services associated with the route. This field is only allowed if - // the Url map is used with backend services with loadBalancingScheme set to - // INTERNAL_SELF_MANAGED. - MaxStreamDuration *Duration `json:"maxStreamDuration,omitempty"` - // RequestMirrorPolicy: Specifies the policy on how requests intended for the - // route's backends are shadowed to a separate mirrored backend service. The - // load balancer does not wait for responses from the shadow service. Before - // sending traffic to the shadow service, the host / authority header is - // suffixed with -shadow. Not supported when the URL map is bound to a target - // gRPC proxy that has the validateForProxyless field set to true. - RequestMirrorPolicy *RequestMirrorPolicy `json:"requestMirrorPolicy,omitempty"` - // RetryPolicy: Specifies the retry policy associated with this route. - RetryPolicy *HttpRetryPolicy `json:"retryPolicy,omitempty"` - // Timeout: Specifies the timeout for the selected route. Timeout is computed - // from the time the request has been fully processed (known as - // *end-of-stream*) up until the response has been processed. Timeout includes - // all retries. If not specified, this field uses the largest timeout among all - // backend services associated with the route. Not supported when the URL map - // is bound to a target gRPC proxy that has validateForProxyless field set to - // true. - Timeout *Duration `json:"timeout,omitempty"` - // UrlRewrite: The spec to modify the URL of the request, before forwarding the - // request to the matched service. urlRewrite is the only action supported in - // UrlMaps for classic Application Load Balancers. Not supported when the URL - // map is bound to a target gRPC proxy that has the validateForProxyless field - // set to true. - UrlRewrite *UrlRewrite `json:"urlRewrite,omitempty"` - // WeightedBackendServices: A list of weighted backend services to send traffic - // to when a route match occurs. The weights determine the fraction of traffic - // that flows to their corresponding backend service. If all traffic needs to - // go to a single backend service, there must be one weightedBackendService - // with weight set to a non-zero number. After a backend service is identified - // and before forwarding the request to the backend service, advanced routing - // actions such as URL rewrites and header transformations are applied - // depending on additional settings specified in this HttpRouteAction. - WeightedBackendServices []*WeightedBackendService `json:"weightedBackendServices,omitempty"` - // ForceSendFields is a list of field names (e.g. "CorsPolicy") to - // unconditionally include in API requests. By default, fields with empty or - // default values are omitted from API requests. See - // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more - // details. - ForceSendFields []string `json:"-"` - // NullFields is a list of field names (e.g. "CorsPolicy") to include in API - // requests with the JSON null value. By default, fields with empty values are - // omitted from API requests. See - // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. - NullFields []string `json:"-"` -} - -func (s *HttpRouteAction) MarshalJSON() ([]byte, error) { - type NoMethod HttpRouteAction - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) -} - -// HttpRouteRule: The HttpRouteRule setting specifies how to match an HTTP -// request and the corresponding routing action that load balancing proxies -// perform. -type HttpRouteRule struct { - // Description: The short description conveying the intent of this routeRule. - // The description can have a maximum length of 1024 characters. - Description string `json:"description,omitempty"` - // HeaderAction: Specifies changes to request and response headers that need to - // take effect for the selected backendService. The headerAction value - // specified here is applied before the matching pathMatchers[].headerAction - // and after - // pathMatchers[].routeRules[].routeAction.weightedBackendService.backendService - // WeightAction[].headerAction HeaderAction is not supported for load balancers - // that have their loadBalancingScheme set to EXTERNAL. Not supported when the - // URL map is bound to a target gRPC proxy that has validateForProxyless field - // set to true. - HeaderAction *HttpHeaderAction `json:"headerAction,omitempty"` - // MatchRules: The list of criteria for matching attributes of a request to - // this routeRule. This list has OR semantics: the request matches this - // routeRule when any of the matchRules are satisfied. However predicates - // within a given matchRule have AND semantics. All predicates within a - // matchRule must match for the request to match the rule. - MatchRules []*HttpRouteRuleMatch `json:"matchRules,omitempty"` - // Priority: For routeRules within a given pathMatcher, priority determines the - // order in which a load balancer interprets routeRules. RouteRules are - // evaluated in order of priority, from the lowest to highest number. The - // priority of a rule decreases as its number increases (1, 2, 3, N+1). The - // first rule that matches the request is applied. You cannot configure two or - // more routeRules with the same priority. Priority for each rule must be set - // to a number from 0 to 2147483647 inclusive. Priority numbers can have gaps, - // which enable you to add or remove rules in the future without affecting the - // rest of the rules. For example, 1, 2, 3, 4, 5, 9, 12, 16 is a valid series - // of priority numbers to which you could add rules numbered from 6 to 8, 10 to - // 11, and 13 to 15 in the future without any impact on existing rules. - Priority int64 `json:"priority,omitempty"` - // RouteAction: In response to a matching matchRule, the load balancer performs - // advanced routing actions, such as URL rewrites and header transformations, - // before forwarding the request to the selected backend. If routeAction - // specifies any weightedBackendServices, service must not be set. Conversely - // if service is set, routeAction cannot contain any weightedBackendServices. - // Only one of urlRedirect, service or routeAction.weightedBackendService must - // be set. URL maps for classic Application Load Balancers only support the - // urlRewrite action within a route rule's routeAction. - RouteAction *HttpRouteAction `json:"routeAction,omitempty"` - // Service: The full or partial URL of the backend service resource to which - // traffic is directed if this rule is matched. If routeAction is also - // specified, advanced routing actions, such as URL rewrites, take effect - // before sending the request to the backend. However, if service is specified, - // routeAction cannot contain any weightedBackendServices. Conversely, if - // routeAction specifies any weightedBackendServices, service must not be - // specified. Only one of urlRedirect, service or - // routeAction.weightedBackendService must be set. - Service string `json:"service,omitempty"` - // UrlRedirect: When this rule is matched, the request is redirected to a URL - // specified by urlRedirect. If urlRedirect is specified, service or - // routeAction must not be set. Not supported when the URL map is bound to a - // target gRPC proxy. - UrlRedirect *HttpRedirectAction `json:"urlRedirect,omitempty"` - // ForceSendFields is a list of field names (e.g. "Description") to - // unconditionally include in API requests. By default, fields with empty or - // default values are omitted from API requests. See - // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more - // details. - ForceSendFields []string `json:"-"` - // NullFields is a list of field names (e.g. "Description") to include in API - // requests with the JSON null value. By default, fields with empty values are - // omitted from API requests. See - // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. - NullFields []string `json:"-"` -} - -func (s *HttpRouteRule) MarshalJSON() ([]byte, error) { - type NoMethod HttpRouteRule - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s ForwardingRuleAggregatedListWarningData) MarshalJSON() ([]byte, error) { + type NoMethod ForwardingRuleAggregatedListWarningData + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -// HttpRouteRuleMatch: HttpRouteRuleMatch specifies a set of criteria for -// matching requests to an HttpRouteRule. All specified criteria must be -// satisfied for a match to occur. -type HttpRouteRuleMatch struct { - // FullPathMatch: For satisfying the matchRule condition, the path of the - // request must exactly match the value specified in fullPathMatch after - // removing any query parameters and anchor that may be part of the original - // URL. fullPathMatch must be from 1 to 1024 characters. Only one of - // prefixMatch, fullPathMatch or regexMatch must be specified. - FullPathMatch string `json:"fullPathMatch,omitempty"` - // HeaderMatches: Specifies a list of header match criteria, all of which must - // match corresponding headers in the request. - HeaderMatches []*HttpHeaderMatch `json:"headerMatches,omitempty"` - // IgnoreCase: Specifies that prefixMatch and fullPathMatch matches are case - // sensitive. The default value is false. ignoreCase must not be used with - // regexMatch. Not supported when the URL map is bound to a target gRPC proxy. - IgnoreCase bool `json:"ignoreCase,omitempty"` - // MetadataFilters: Opaque filter criteria used by the load balancer to - // restrict routing configuration to a limited set of xDS compliant clients. In - // their xDS requests to the load balancer, xDS clients present node metadata. - // When there is a match, the relevant routing configuration is made available - // to those proxies. For each metadataFilter in this list, if its - // filterMatchCriteria is set to MATCH_ANY, at least one of the filterLabels - // must match the corresponding label provided in the metadata. If its - // filterMatchCriteria is set to MATCH_ALL, then all of its filterLabels must - // match with corresponding labels provided in the metadata. If multiple - // metadata filters are specified, all of them need to be satisfied in order to - // be considered a match. metadataFilters specified here is applied after those - // specified in ForwardingRule that refers to the UrlMap this - // HttpRouteRuleMatch belongs to. metadataFilters only applies to load - // balancers that have loadBalancingScheme set to INTERNAL_SELF_MANAGED. Not - // supported when the URL map is bound to a target gRPC proxy that has - // validateForProxyless field set to true. - MetadataFilters []*MetadataFilter `json:"metadataFilters,omitempty"` - // PathTemplateMatch: If specified, the route is a pattern match expression - // that must match the :path header once the query string is removed. A pattern - // match allows you to match - The value must be between 1 and 1024 characters - // - The pattern must start with a leading slash ("/") - There may be no more - // than 5 operators in pattern Precisely one of prefix_match, full_path_match, - // regex_match or path_template_match must be set. - PathTemplateMatch string `json:"pathTemplateMatch,omitempty"` - // PrefixMatch: For satisfying the matchRule condition, the request's path must - // begin with the specified prefixMatch. prefixMatch must begin with a /. The - // value must be from 1 to 1024 characters. Only one of prefixMatch, - // fullPathMatch or regexMatch must be specified. - PrefixMatch string `json:"prefixMatch,omitempty"` - // QueryParameterMatches: Specifies a list of query parameter match criteria, - // all of which must match corresponding query parameters in the request. Not - // supported when the URL map is bound to a target gRPC proxy. - QueryParameterMatches []*HttpQueryParameterMatch `json:"queryParameterMatches,omitempty"` - // RegexMatch: For satisfying the matchRule condition, the path of the request - // must satisfy the regular expression specified in regexMatch after removing - // any query parameters and anchor supplied with the original URL. For more - // information about regular expression syntax, see Syntax. Only one of - // prefixMatch, fullPathMatch or regexMatch must be specified. Regular - // expressions can only be used when the loadBalancingScheme is set to - // INTERNAL_SELF_MANAGED. - RegexMatch string `json:"regexMatch,omitempty"` - // ForceSendFields is a list of field names (e.g. "FullPathMatch") to +// ForwardingRuleAttachedExtension: Reference to an extension resource that is +// attached to this ForwardingRule. +type ForwardingRuleAttachedExtension struct { + // Reference: Output only. The resource name. + Reference string `json:"reference,omitempty"` + // ForceSendFields is a list of field names (e.g. "Reference") to // unconditionally include in API requests. By default, fields with empty or // default values are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. ForceSendFields []string `json:"-"` - // NullFields is a list of field names (e.g. "FullPathMatch") to include in API + // NullFields is a list of field names (e.g. "Reference") to include in API // requests with the JSON null value. By default, fields with empty values are // omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } -func (s *HttpRouteRuleMatch) MarshalJSON() ([]byte, error) { - type NoMethod HttpRouteRuleMatch - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) -} - -// HttpsHealthCheck: Represents a legacy HTTPS Health Check resource. Legacy -// HTTPS health checks have been deprecated. If you are using a target -// pool-based network load balancer, you must use a legacy HTTP (not HTTPS) -// health check. For all other load balancers, including backend service-based -// network load balancers, and for managed instance group auto-healing, you -// must use modern (non-legacy) health checks. For more information, see Health -// checks overview . -type HttpsHealthCheck struct { - // CheckIntervalSec: How often (in seconds) to send a health check. The default - // value is 5 seconds. - CheckIntervalSec int64 `json:"checkIntervalSec,omitempty"` - // CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text format. - CreationTimestamp string `json:"creationTimestamp,omitempty"` - // Description: An optional description of this resource. Provide this property - // when you create the resource. - Description string `json:"description,omitempty"` - // HealthyThreshold: A so-far unhealthy instance will be marked healthy after - // this many consecutive successes. The default value is 2. - HealthyThreshold int64 `json:"healthyThreshold,omitempty"` - // Host: The value of the host header in the HTTPS health check request. If - // left empty (default value), the public IP on behalf of which this health - // check is performed will be used. - Host string `json:"host,omitempty"` - // Id: [Output Only] The unique identifier for the resource. This identifier is - // defined by the server. - Id uint64 `json:"id,omitempty,string"` - // Kind: Type of the resource. - Kind string `json:"kind,omitempty"` - // Name: Name of the resource. Provided by the client when the resource is - // created. The name must be 1-63 characters long, and comply with RFC1035. - // 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. - Name string `json:"name,omitempty"` - // Port: The TCP port number for the HTTPS health check request. The default - // value is 443. - Port int64 `json:"port,omitempty"` - // RequestPath: The request path of the HTTPS health check request. The default - // value is "/". Must comply with RFC3986. - RequestPath string `json:"requestPath,omitempty"` - // SelfLink: [Output Only] Server-defined URL for the resource. - SelfLink string `json:"selfLink,omitempty"` - // TimeoutSec: How long (in seconds) to wait before claiming failure. The - // default value is 5 seconds. It is invalid for timeoutSec to have a greater - // value than checkIntervalSec. - TimeoutSec int64 `json:"timeoutSec,omitempty"` - // UnhealthyThreshold: A so-far healthy instance will be marked unhealthy after - // this many consecutive failures. The default value is 2. - UnhealthyThreshold int64 `json:"unhealthyThreshold,omitempty"` - - // ServerResponse contains the HTTP response code and headers from the server. - googleapi.ServerResponse `json:"-"` - // ForceSendFields is a list of field names (e.g. "CheckIntervalSec") to - // unconditionally include in API requests. By default, fields with empty or - // default values are omitted from API requests. See - // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more - // details. - ForceSendFields []string `json:"-"` - // NullFields is a list of field names (e.g. "CheckIntervalSec") to include in - // API requests with the JSON null value. By default, fields with empty values - // are omitted from API requests. See - // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. - NullFields []string `json:"-"` -} - -func (s *HttpsHealthCheck) MarshalJSON() ([]byte, error) { - type NoMethod HttpsHealthCheck - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s ForwardingRuleAttachedExtension) MarshalJSON() ([]byte, error) { + type NoMethod ForwardingRuleAttachedExtension + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -// HttpsHealthCheckList: Contains a list of HttpsHealthCheck resources. -type HttpsHealthCheckList struct { +// ForwardingRuleList: Contains a list of ForwardingRule resources. +type ForwardingRuleList struct { // Id: [Output Only] Unique identifier for the resource; defined by the server. Id string `json:"id,omitempty"` - // Items: A list of HttpsHealthCheck resources. - Items []*HttpsHealthCheck `json:"items,omitempty"` - // Kind: Type of resource. + // Items: A list of ForwardingRule resources. + Items []*ForwardingRule `json:"items,omitempty"` + // Kind: Output only. Type of resource. 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. + // results for + // list requests. If the number of results is larger thanmaxResults, 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"` - // SelfLink: [Output Only] Server-defined URL for this resource. + // SelfLink: Output only. [Output Only] Server-defined URL for this resource. SelfLink string `json:"selfLink,omitempty"` // Warning: [Output Only] Informational warning message. - Warning *HttpsHealthCheckListWarning `json:"warning,omitempty"` + Warning *ForwardingRuleListWarning `json:"warning,omitempty"` // ServerResponse contains the HTTP response code and headers from the server. googleapi.ServerResponse `json:"-"` @@ -14613,76 +18663,98 @@ type HttpsHealthCheckList struct { NullFields []string `json:"-"` } -func (s *HttpsHealthCheckList) MarshalJSON() ([]byte, error) { - type NoMethod HttpsHealthCheckList - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s ForwardingRuleList) MarshalJSON() ([]byte, error) { + type NoMethod ForwardingRuleList + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -// HttpsHealthCheckListWarning: [Output Only] Informational warning message. -type HttpsHealthCheckListWarning 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. +// ForwardingRuleListWarning: [Output Only] Informational warning message. +type ForwardingRuleListWarning 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" - Warning about failed cleanup of transient changes made - // by a failed operation. + // by a failed + // operation. // "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was created. // "DEPRECATED_TYPE_USED" - When deploying and at least one of the resources - // has a type marked as deprecated + // has a type marked as + // deprecated // "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk that is // larger than image size. // "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the - // resources has a type marked as experimental + // resources has a type marked as + // experimental // "EXTERNAL_API_WARNING" - Warning that is present in an external api call // "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been - // overridden. Deprecated unused field. + // overridden. + // Deprecated unused field. // "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an injected // kernel, which is deprecated. // "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB" - A WEIGHTED_MAGLEV backend - // service is associated with a health check that is not of type - // HTTP/HTTPS/HTTP2. + // service is associated with a health check that is + // not of type HTTP/HTTPS/HTTP2. // "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a // exceedingly large number of resources // "LIST_OVERHEAD_QUOTA_EXCEED" - Resource can't be retrieved due to list - // overhead quota exceed which captures the amount of resources filtered out by + // overhead quota exceed + // which captures the amount of resources filtered out by // user-defined list filter. // "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is not - // assigned to an instance on the network. + // assigned to an instance on the + // network. // "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot ip // forward. // "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE" - The route's nextHopInstance - // URL refers to an instance that does not have an ipv6 interface on the same - // network as the route. + // URL refers to an instance that does not have an + // ipv6 interface on the same network as the route. // "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL refers to // an instance that does not exist. // "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance URL - // refers to an instance that is not on the same network as the route. + // refers to an instance that is not on the + // same network as the route. // "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not have a // status of RUNNING. // "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to continue - // the process despite the mentioned error. + // the process despite + // the mentioned error. // "NO_RESULTS_ON_PAGE" - No results are present on a particular list page. // "PARTIAL_SUCCESS" - Success is reported, but some results may be missing // due to errors + // "QUOTA_INFO_UNAVAILABLE" - Quota information is not available to client + // requests (e.g: + // regions.list). // "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource that - // requires a TOS they have not accepted. + // requires a TOS they have not + // accepted. // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a resource is // in use. // "RESOURCE_NOT_DELETED" - One or more of the resources set to auto-delete - // could not be deleted because they were in use. + // could not be deleted + // because they were in use. // "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is // ignored. // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in instance - // group manager is valid as such, but its application does not make a lot of - // sense, because it allows only single instance in instance group. + // group manager is valid as such, but + // its application does not make a lot of sense, because it allows only + // single instance in instance group. // "UNDECLARED_PROPERTIES" - When undeclared properties in the schema are // present // "UNREACHABLE" - A given scope cannot be reached. 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 []*HttpsHealthCheckListWarningData `json:"data,omitempty"` + // Data: [Output Only] Metadata about this warning in key: + // value format. For example: + // + // "data": [ + // { + // "key": "scope", + // "value": "zones/us-east1-d" + // } + Data []*ForwardingRuleListWarningData `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 @@ -14698,19 +18770,22 @@ type HttpsHealthCheckListWarning struct { NullFields []string `json:"-"` } -func (s *HttpsHealthCheckListWarning) MarshalJSON() ([]byte, error) { - type NoMethod HttpsHealthCheckListWarning - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s ForwardingRuleListWarning) MarshalJSON() ([]byte, error) { + type NoMethod ForwardingRuleListWarning + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -type HttpsHealthCheckListWarningData 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). +type ForwardingRuleListWarningData 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"` @@ -14727,356 +18802,179 @@ type HttpsHealthCheckListWarningData struct { NullFields []string `json:"-"` } -func (s *HttpsHealthCheckListWarningData) MarshalJSON() ([]byte, error) { - type NoMethod HttpsHealthCheckListWarningData - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s ForwardingRuleListWarningData) MarshalJSON() ([]byte, error) { + type NoMethod ForwardingRuleListWarningData + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -// Image: Represents an Image resource. You can use images to create boot disks -// for your VM instances. For more information, read Images. -type Image struct { - // Architecture: The architecture of the image. Valid values are ARM64 or - // X86_64. - // - // Possible values: - // "ARCHITECTURE_UNSPECIFIED" - Default value indicating Architecture is not - // set. - // "ARM64" - Machines with architecture ARM64 - // "X86_64" - Machines with architecture X86_64 - Architecture string `json:"architecture,omitempty"` - // ArchiveSizeBytes: Size of the image tar.gz archive stored in Google Cloud - // Storage (in bytes). - ArchiveSizeBytes int64 `json:"archiveSizeBytes,omitempty,string"` - // CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text format. - CreationTimestamp string `json:"creationTimestamp,omitempty"` - // Deprecated -- The deprecation status associated with this image. - Deprecated *DeprecationStatus `json:"deprecated,omitempty"` - // Description: An optional description of this resource. Provide this property - // when you create the resource. - Description string `json:"description,omitempty"` - // DiskSizeGb: Size of the image when restored onto a persistent disk (in GB). - DiskSizeGb int64 `json:"diskSizeGb,omitempty,string"` - // EnableConfidentialCompute: Whether this image is created from a confidential - // compute mode disk. [Output Only]: This field is not set by user, but from - // source disk. - EnableConfidentialCompute bool `json:"enableConfidentialCompute,omitempty"` - // Family: The name of the image family to which this image belongs. The image - // family name can be from a publicly managed image family provided by Compute - // Engine, or from a custom image family you create. For example, - // centos-stream-9 is a publicly available image family. For more information, - // see Image family best practices. When creating disks, you can specify an - // image family instead of a specific image name. The image family always - // returns its latest image that is not deprecated. The name of the image - // family must comply with RFC1035. - Family string `json:"family,omitempty"` - // GuestOsFeatures: A list of features to enable on the guest operating system. - // Applicable only for bootable images. To see a list of available options, see - // the guestOSfeatures[].type parameter. - GuestOsFeatures []*GuestOsFeature `json:"guestOsFeatures,omitempty"` - // Id: [Output Only] The unique identifier for the resource. This identifier is - // defined by the server. - Id uint64 `json:"id,omitempty,string"` - // ImageEncryptionKey: Encrypts the image using a customer-supplied encryption - // key. After you encrypt an image with a customer-supplied key, you must - // provide the same key if you use the image later (e.g. to create a disk from - // the image). Customer-supplied encryption keys do not protect access to - // metadata of the disk. If you do not provide an encryption key when creating - // the image, then the disk will be encrypted using an automatically generated - // key and you do not need to provide a key to use the image later. - ImageEncryptionKey *CustomerEncryptionKey `json:"imageEncryptionKey,omitempty"` - // Kind: [Output Only] Type of the resource. Always compute#image for images. - Kind string `json:"kind,omitempty"` - // LabelFingerprint: A fingerprint for the labels being applied to this image, - // which is essentially a hash of the labels used for optimistic locking. The - // fingerprint is initially generated by Compute Engine and changes after every - // request to modify or update labels. You must always provide an up-to-date - // fingerprint hash in order to update or change labels, otherwise the request - // will fail with error 412 conditionNotMet. To see the latest fingerprint, - // make a get() request to retrieve an image. - LabelFingerprint string `json:"labelFingerprint,omitempty"` - // Labels: Labels to apply to this image. These can be later modified by the - // setLabels method. - Labels map[string]string `json:"labels,omitempty"` - // LicenseCodes: Integer license codes indicating which licenses are attached - // to this image. - LicenseCodes googleapi.Int64s `json:"licenseCodes,omitempty"` - // Licenses: Any applicable license URI. - Licenses []string `json:"licenses,omitempty"` - // Name: Name of the resource; provided by the client when the resource is - // created. The name must be 1-63 characters long, and comply with RFC1035. - // 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. - Name string `json:"name,omitempty"` - // RawDisk: The parameters of the raw disk image. - RawDisk *ImageRawDisk `json:"rawDisk,omitempty"` - // SatisfiesPzi: Output only. Reserved for future use. - SatisfiesPzi bool `json:"satisfiesPzi,omitempty"` - // SatisfiesPzs: [Output Only] Reserved for future use. - SatisfiesPzs bool `json:"satisfiesPzs,omitempty"` - // SelfLink: [Output Only] Server-defined URL for the resource. - SelfLink string `json:"selfLink,omitempty"` - // ShieldedInstanceInitialState: Set the secure boot keys of shielded instance. - ShieldedInstanceInitialState *InitialStateConfig `json:"shieldedInstanceInitialState,omitempty"` - // SourceDisk: URL of the source disk used to create this image. For example, - // the following are valid values: - - // https://www.googleapis.com/compute/v1/projects/project/zones/zone - // /disks/disk - projects/project/zones/zone/disks/disk - zones/zone/disks/disk - // In order to create an image, you must provide the full or partial URL of one - // of the following: - The rawDisk.source URL - The sourceDisk URL - The - // sourceImage URL - The sourceSnapshot URL - SourceDisk string `json:"sourceDisk,omitempty"` - // SourceDiskEncryptionKey: The customer-supplied encryption key of the source - // disk. Required if the source disk is protected by a customer-supplied - // encryption key. - SourceDiskEncryptionKey *CustomerEncryptionKey `json:"sourceDiskEncryptionKey,omitempty"` - // SourceDiskId: [Output Only] The ID value of the disk used to create this - // image. This value may be used to determine whether the image was taken from - // the current or a previous instance of a given disk name. - SourceDiskId string `json:"sourceDiskId,omitempty"` - // SourceImage: URL of the source image used to create this image. The - // following are valid formats for the URL: - - // https://www.googleapis.com/compute/v1/projects/project_id/global/ - // images/image_name - projects/project_id/global/images/image_name In order to - // create an image, you must provide the full or partial URL of one of the - // following: - The rawDisk.source URL - The sourceDisk URL - The sourceImage - // URL - The sourceSnapshot URL - SourceImage string `json:"sourceImage,omitempty"` - // SourceImageEncryptionKey: The customer-supplied encryption key of the source - // image. Required if the source image is protected by a customer-supplied - // encryption key. - SourceImageEncryptionKey *CustomerEncryptionKey `json:"sourceImageEncryptionKey,omitempty"` - // SourceImageId: [Output Only] The ID value of the image used to create this - // image. This value may be used to determine whether the image was taken from - // the current or a previous instance of a given image name. - SourceImageId string `json:"sourceImageId,omitempty"` - // SourceSnapshot: URL of the source snapshot used to create this image. The - // following are valid formats for the URL: - - // https://www.googleapis.com/compute/v1/projects/project_id/global/ - // snapshots/snapshot_name - projects/project_id/global/snapshots/snapshot_name - // In order to create an image, you must provide the full or partial URL of one - // of the following: - The rawDisk.source URL - The sourceDisk URL - The - // sourceImage URL - The sourceSnapshot URL - SourceSnapshot string `json:"sourceSnapshot,omitempty"` - // SourceSnapshotEncryptionKey: The customer-supplied encryption key of the - // source snapshot. Required if the source snapshot is protected by a - // customer-supplied encryption key. - SourceSnapshotEncryptionKey *CustomerEncryptionKey `json:"sourceSnapshotEncryptionKey,omitempty"` - // SourceSnapshotId: [Output Only] The ID value of the snapshot used to create - // this image. This value may be used to determine whether the snapshot was - // taken from the current or a previous instance of a given snapshot name. - SourceSnapshotId string `json:"sourceSnapshotId,omitempty"` - // SourceType: The type of the image used to create this disk. The default and - // only valid value is RAW. - // - // Possible values: - // "RAW" (default) - SourceType string `json:"sourceType,omitempty"` - // Status: [Output Only] The status of the image. An image can be used to - // create other resources, such as instances, only after the image has been - // successfully created and the status is set to READY. Possible values are - // FAILED, PENDING, or READY. - // - // Possible values: - // "DELETING" - Image is deleting. - // "FAILED" - Image creation failed due to an error. - // "PENDING" - Image hasn't been created as yet. - // "READY" - Image has been successfully created. - Status string `json:"status,omitempty"` - // StorageLocations: Cloud Storage bucket storage location of the image - // (regional or multi-regional). - StorageLocations []string `json:"storageLocations,omitempty"` - - // ServerResponse contains the HTTP response code and headers from the server. - googleapi.ServerResponse `json:"-"` - // ForceSendFields is a list of field names (e.g. "Architecture") to +type ForwardingRuleReference struct { + ForwardingRule string `json:"forwardingRule,omitempty"` + // ForceSendFields is a list of field names (e.g. "ForwardingRule") to // unconditionally include in API requests. By default, fields with empty or // default values are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. ForceSendFields []string `json:"-"` - // NullFields is a list of field names (e.g. "Architecture") to include in API - // requests with the JSON null value. By default, fields with empty values are - // omitted from API requests. See + // NullFields is a list of field names (e.g. "ForwardingRule") to include in + // API requests with the JSON null value. By default, fields with empty values + // are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } -func (s *Image) MarshalJSON() ([]byte, error) { - type NoMethod Image - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s ForwardingRuleReference) MarshalJSON() ([]byte, error) { + type NoMethod ForwardingRuleReference + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -// ImageRawDisk: The parameters of the raw disk image. -type ImageRawDisk struct { - // ContainerType: The format used to encode and transmit the block device, - // which should be TAR. This is just a container and transmission format and - // not a runtime format. Provided by the client when the disk image is created. - // - // Possible values: - // "TAR" - ContainerType string `json:"containerType,omitempty"` - // Sha1Checksum: [Deprecated] This field is deprecated. An optional SHA1 - // checksum of the disk image before unpackaging provided by the client when - // the disk image is created. - Sha1Checksum string `json:"sha1Checksum,omitempty"` - // Source: The full Google Cloud Storage URL where the raw disk image archive - // is stored. The following are valid formats for the URL: - - // https://storage.googleapis.com/bucket_name/image_archive_name - - // https://storage.googleapis.com/bucket_name/folder_name/ image_archive_name - // In order to create an image, you must provide the full or partial URL of one - // of the following: - The rawDisk.source URL - The sourceDisk URL - The - // sourceImage URL - The sourceSnapshot URL - Source string `json:"source,omitempty"` - // ForceSendFields is a list of field names (e.g. "ContainerType") to +// ForwardingRuleServiceDirectoryRegistration: Describes the auto-registration +// of the forwarding rule to Service Directory. +// The region and project of the Service Directory resource generated from +// this registration will be the same as this forwarding rule. +type ForwardingRuleServiceDirectoryRegistration struct { + // Namespace: Service Directory namespace to register the forwarding rule + // under. + Namespace string `json:"namespace,omitempty"` + // Service: Service Directory service to register the forwarding rule under. + Service string `json:"service,omitempty"` + // ServiceDirectoryRegion: [Optional] Service Directory region to register this + // global forwarding + // rule under. Default to "us-central1". Only used for PSC for Google APIs. + // All PSC for Google APIs forwarding rules on the same network should use + // the same Service Directory region. + ServiceDirectoryRegion string `json:"serviceDirectoryRegion,omitempty"` + // ForceSendFields is a list of field names (e.g. "Namespace") to // unconditionally include in API requests. By default, fields with empty or // default values are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. ForceSendFields []string `json:"-"` - // NullFields is a list of field names (e.g. "ContainerType") to include in API - // requests with the JSON null value. By default, fields with empty values are - // omitted from API requests. See - // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. - NullFields []string `json:"-"` -} - -func (s *ImageRawDisk) MarshalJSON() ([]byte, error) { - type NoMethod ImageRawDisk - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) -} - -type ImageFamilyView struct { - // Image: The latest image that is part of the specified image family in the - // requested location, and that is not deprecated. - Image *Image `json:"image,omitempty"` - - // ServerResponse contains the HTTP response code and headers from the server. - googleapi.ServerResponse `json:"-"` - // ForceSendFields is a list of field names (e.g. "Image") to unconditionally - // include in API requests. By default, fields with empty or default values are - // omitted from API requests. See - // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more - // details. - ForceSendFields []string `json:"-"` - // NullFields is a list of field names (e.g. "Image") to include in API + // NullFields is a list of field names (e.g. "Namespace") to include in API // requests with the JSON null value. By default, fields with empty values are // omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } -func (s *ImageFamilyView) MarshalJSON() ([]byte, error) { - type NoMethod ImageFamilyView - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s ForwardingRuleServiceDirectoryRegistration) MarshalJSON() ([]byte, error) { + type NoMethod ForwardingRuleServiceDirectoryRegistration + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -// ImageList: Contains a list of images. -type ImageList struct { - // Id: [Output Only] Unique identifier for the resource; defined by the server. - Id string `json:"id,omitempty"` - // Items: A list of Image resources. - Items []*Image `json:"items,omitempty"` - // Kind: Type of resource. - 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"` - // SelfLink: [Output Only] Server-defined URL for this resource. - SelfLink string `json:"selfLink,omitempty"` - // Warning: [Output Only] Informational warning message. - Warning *ImageListWarning `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 or default values are - // omitted from API requests. See +type ForwardingRulesScopedList struct { + // ForwardingRules: A list of forwarding rules contained in this scope. + ForwardingRules []*ForwardingRule `json:"forwardingRules,omitempty"` + // Warning: Informational warning which replaces the list of forwarding rules + // when + // the list is empty. + Warning *ForwardingRulesScopedListWarning `json:"warning,omitempty"` + // ForceSendFields is a list of field names (e.g. "ForwardingRules") to + // unconditionally include in API requests. By default, fields with empty or + // default values are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. 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. See + // NullFields is a list of field names (e.g. "ForwardingRules") to include in + // API requests with the JSON null value. By default, fields with empty values + // are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } -func (s *ImageList) MarshalJSON() ([]byte, error) { - type NoMethod ImageList - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s ForwardingRulesScopedList) MarshalJSON() ([]byte, error) { + type NoMethod ForwardingRulesScopedList + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -// ImageListWarning: [Output Only] Informational warning message. -type ImageListWarning 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. +// ForwardingRulesScopedListWarning: Informational warning which replaces the +// list of forwarding rules when +// the list is empty. +type ForwardingRulesScopedListWarning 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" - Warning about failed cleanup of transient changes made - // by a failed operation. + // by a failed + // operation. // "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was created. // "DEPRECATED_TYPE_USED" - When deploying and at least one of the resources - // has a type marked as deprecated + // has a type marked as + // deprecated // "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk that is // larger than image size. // "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the - // resources has a type marked as experimental + // resources has a type marked as + // experimental // "EXTERNAL_API_WARNING" - Warning that is present in an external api call // "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been - // overridden. Deprecated unused field. + // overridden. + // Deprecated unused field. // "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an injected // kernel, which is deprecated. // "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB" - A WEIGHTED_MAGLEV backend - // service is associated with a health check that is not of type - // HTTP/HTTPS/HTTP2. + // service is associated with a health check that is + // not of type HTTP/HTTPS/HTTP2. // "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a // exceedingly large number of resources // "LIST_OVERHEAD_QUOTA_EXCEED" - Resource can't be retrieved due to list - // overhead quota exceed which captures the amount of resources filtered out by + // overhead quota exceed + // which captures the amount of resources filtered out by // user-defined list filter. // "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is not - // assigned to an instance on the network. + // assigned to an instance on the + // network. // "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot ip // forward. // "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE" - The route's nextHopInstance - // URL refers to an instance that does not have an ipv6 interface on the same - // network as the route. + // URL refers to an instance that does not have an + // ipv6 interface on the same network as the route. // "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL refers to // an instance that does not exist. // "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance URL - // refers to an instance that is not on the same network as the route. + // refers to an instance that is not on the + // same network as the route. // "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not have a // status of RUNNING. // "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to continue - // the process despite the mentioned error. + // the process despite + // the mentioned error. // "NO_RESULTS_ON_PAGE" - No results are present on a particular list page. // "PARTIAL_SUCCESS" - Success is reported, but some results may be missing // due to errors + // "QUOTA_INFO_UNAVAILABLE" - Quota information is not available to client + // requests (e.g: + // regions.list). // "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource that - // requires a TOS they have not accepted. + // requires a TOS they have not + // accepted. // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a resource is // in use. // "RESOURCE_NOT_DELETED" - One or more of the resources set to auto-delete - // could not be deleted because they were in use. + // could not be deleted + // because they were in use. // "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is // ignored. // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in instance - // group manager is valid as such, but its application does not make a lot of - // sense, because it allows only single instance in instance group. + // group manager is valid as such, but + // its application does not make a lot of sense, because it allows only + // single instance in instance group. // "UNDECLARED_PROPERTIES" - When undeclared properties in the schema are // present // "UNREACHABLE" - A given scope cannot be reached. 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 []*ImageListWarningData `json:"data,omitempty"` + // Data: [Output Only] Metadata about this warning in key: + // value format. For example: + // + // "data": [ + // { + // "key": "scope", + // "value": "zones/us-east1-d" + // } + Data []*ForwardingRulesScopedListWarningData `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 @@ -15092,19 +18990,22 @@ type ImageListWarning struct { NullFields []string `json:"-"` } -func (s *ImageListWarning) MarshalJSON() ([]byte, error) { - type NoMethod ImageListWarning - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s ForwardingRulesScopedListWarning) MarshalJSON() ([]byte, error) { + type NoMethod ForwardingRulesScopedListWarning + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -type ImageListWarningData 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). +type ForwardingRulesScopedListWarningData 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"` @@ -15121,372 +19022,705 @@ type ImageListWarningData struct { NullFields []string `json:"-"` } -func (s *ImageListWarningData) MarshalJSON() ([]byte, error) { - type NoMethod ImageListWarningData - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s ForwardingRulesScopedListWarningData) MarshalJSON() ([]byte, error) { + type NoMethod ForwardingRulesScopedListWarningData + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -// InitialStateConfig: Initial State for shielded instance, these are public -// keys which are safe to store in public -type InitialStateConfig struct { - // Dbs: The Key Database (db). - Dbs []*FileContentBuffer `json:"dbs,omitempty"` - // Dbxs: The forbidden key database (dbx). - Dbxs []*FileContentBuffer `json:"dbxs,omitempty"` - // Keks: The Key Exchange Key (KEK). - Keks []*FileContentBuffer `json:"keks,omitempty"` - // Pk: The Platform Key (PK). - Pk *FileContentBuffer `json:"pk,omitempty"` - // ForceSendFields is a list of field names (e.g. "Dbs") to unconditionally - // include in API requests. By default, fields with empty or default values are - // omitted from API requests. See +type FutureReservation struct { + // AggregateReservation: Aggregate reservation details for the future + // reservation. + AggregateReservation *AllocationAggregateReservation `json:"aggregateReservation,omitempty"` + // AutoCreatedReservationsDeleteTime: Future timestamp when the FR auto-created + // reservations will be deleted by + // Compute Engine. Format of this field must be a + // valid + // href="https://www.ietf.org/rfc/rfc3339.txt">RFC3339 value. + AutoCreatedReservationsDeleteTime string `json:"autoCreatedReservationsDeleteTime,omitempty"` + // AutoCreatedReservationsDuration: Specifies the duration of auto-created + // reservations. + // It represents relative time to future reservation start_time + // when + // auto-created reservations will be automatically deleted by Compute + // Engine. Duration time unit is represented as a count of seconds + // and fractions of seconds at nanosecond resolution. + AutoCreatedReservationsDuration *Duration `json:"autoCreatedReservationsDuration,omitempty"` + // AutoDeleteAutoCreatedReservations: Setting for enabling or disabling + // automatic deletion for auto-created + // reservation. If set to true, auto-created reservations will be + // deleted at Future Reservation's end time (default) or at user's + // defined + // timestamp if any of the + // [auto_created_reservations_delete_time, + // auto_created_reservations_duration] + // values is specified. + // For keeping auto-created reservation indefinitely, this value should be + // set + // to false. + AutoDeleteAutoCreatedReservations bool `json:"autoDeleteAutoCreatedReservations,omitempty"` + // CommitmentInfo: If not present, then FR will not deliver a new commitment or + // update an + // existing commitment. + CommitmentInfo *FutureReservationCommitmentInfo `json:"commitmentInfo,omitempty"` + // Possible values: + // "CONFIDENTIAL_COMPUTE_TYPE_TDX" - Intel Trust Domain Extensions. + // "CONFIDENTIAL_COMPUTE_TYPE_UNSPECIFIED" + ConfidentialComputeType string `json:"confidentialComputeType,omitempty"` + // CreationTimestamp: Output only. [Output Only] The creation timestamp for + // this future reservation inRFC3339 + // text format. + CreationTimestamp string `json:"creationTimestamp,omitempty"` + // DeploymentType: Type of the deployment requested as part of future + // reservation. + // + // Possible values: + // "DENSE" - The reserved capacity is made up of densely deployed reservation + // blocks. + // "DEPLOYMENT_TYPE_UNSPECIFIED" + DeploymentType string `json:"deploymentType,omitempty"` + // Description: An optional description of this resource. Provide this property + // when you + // create the future reservation. + Description string `json:"description,omitempty"` + // EnableEmergentMaintenance: Indicates if this group of VMs have emergent + // maintenance enabled. + EnableEmergentMaintenance bool `json:"enableEmergentMaintenance,omitempty"` + // Id: Output only. [Output Only] A unique identifier for this future + // reservation. The server + // defines this identifier. + Id uint64 `json:"id,omitempty,string"` + // Kind: Output only. [Output Only] Type of the resource. + // Alwayscompute#futureReservation for future reservations. + Kind string `json:"kind,omitempty"` + // Name: The name of the resource, provided by the client when initially + // creating + // the resource. The resource name must be 1-63 characters long, and + // comply + // withRFC1035. + // 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. + Name string `json:"name,omitempty"` + // NamePrefix: Name prefix for the reservations to be created at the time + // of + // delivery. The name prefix must comply with RFC1035. + // Maximum allowed length for name prefix is 20. Automatically + // created + // reservations name format will be -date-####. + NamePrefix string `json:"namePrefix,omitempty"` + // Params: Input only. Additional params passed with the request, but not + // persisted + // as part of resource payload. + Params *FutureReservationParams `json:"params,omitempty"` + // PlanningStatus: Planning state before being submitted for evaluation + // + // Possible values: + // "DRAFT" - Future Reservation is being drafted. + // "PLANNING_STATUS_UNSPECIFIED" + // "SUBMITTED" - Future Reservation has been submitted for evaluation by GCP. + PlanningStatus string `json:"planningStatus,omitempty"` + // ReservationMode: The reservation mode which determines + // reservation-termination behavior and + // expected pricing. + // + // Possible values: + // "CALENDAR" - The delivered reservations will delivered at specified start + // time and + // terminated at specified end time along with terminating the VMs running + // on it. + // "DEFAULT" - The delivered reservations do not terminate VMs at the end + // of + // reservations. This is default mode. + // "RESERVATION_MODE_UNSPECIFIED" + ReservationMode string `json:"reservationMode,omitempty"` + // ReservationName: Name of reservations where the capacity is provisioned at + // the time of + // delivery of future reservations. If the reservation with the given + // name + // does not exist already, it is created automatically at the time of + // Approval + // with INACTIVE state till specified start-time. Either provide + // the + // reservation_name or a name_prefix. + ReservationName string `json:"reservationName,omitempty"` + // SchedulingType: Maintenance information for this reservation + // + // Possible values: + // "GROUPED" - Maintenance on all reserved instances in the reservation is + // synchronized. + // "GROUP_MAINTENANCE_TYPE_UNSPECIFIED" - Unknown maintenance type. + // "INDEPENDENT" - Maintenance is not synchronized for this reservation. + // Instead, each + // instance has its own maintenance window. + SchedulingType string `json:"schedulingType,omitempty"` + // SelfLink: Output only. [Output Only] Server-defined fully-qualified URL for + // this resource. + SelfLink string `json:"selfLink,omitempty"` + // SelfLinkWithId: Output only. [Output Only] Server-defined URL for this + // resource with the resource id. + SelfLinkWithId string `json:"selfLinkWithId,omitempty"` + // ShareSettings: List of Projects/Folders to share with. + ShareSettings *ShareSettings `json:"shareSettings,omitempty"` + // SpecificReservationRequired: Indicates whether the auto-created reservation + // can be consumed by VMs with + // affinity for "any" reservation. If the field is set, then only VMs + // that + // target the reservation by name can consume from the delivered reservation. + SpecificReservationRequired bool `json:"specificReservationRequired,omitempty"` + // SpecificSkuProperties: Future Reservation configuration to indicate instance + // properties and + // total count. + SpecificSkuProperties *FutureReservationSpecificSKUProperties `json:"specificSkuProperties,omitempty"` + // Status: Output only. [Output only] Status of the Future Reservation + Status *FutureReservationStatus `json:"status,omitempty"` + // TimeWindow: Time window for this Future Reservation. + TimeWindow *FutureReservationTimeWindow `json:"timeWindow,omitempty"` + // Zone: Output only. [Output Only] URL of the Zone where this future + // reservation resides. + Zone string `json:"zone,omitempty"` + + // ServerResponse contains the HTTP response code and headers from the server. + googleapi.ServerResponse `json:"-"` + // ForceSendFields is a list of field names (e.g. "AggregateReservation") to + // unconditionally include in API requests. By default, fields with empty or + // default values are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. ForceSendFields []string `json:"-"` - // NullFields is a list of field names (e.g. "Dbs") to include in API requests - // with the JSON null value. By default, fields with empty values are omitted - // from API requests. See + // NullFields is a list of field names (e.g. "AggregateReservation") to include + // in API requests with the JSON null value. By default, fields with empty + // values are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } -func (s *InitialStateConfig) MarshalJSON() ([]byte, error) { - type NoMethod InitialStateConfig - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s FutureReservation) MarshalJSON() ([]byte, error) { + type NoMethod FutureReservation + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -// Instance: Represents an Instance resource. An instance is a virtual machine -// that is hosted on Google Cloud Platform. For more information, read Virtual -// Machine Instances. -type Instance struct { - // AdvancedMachineFeatures: Controls for advanced machine-related behavior - // features. - AdvancedMachineFeatures *AdvancedMachineFeatures `json:"advancedMachineFeatures,omitempty"` - // CanIpForward: Allows this instance to send and receive packets with - // non-matching destination or source IPs. This is required if you plan to use - // this instance to forward routes. For more information, see Enabling IP - // Forwarding . - CanIpForward bool `json:"canIpForward,omitempty"` - ConfidentialInstanceConfig *ConfidentialInstanceConfig `json:"confidentialInstanceConfig,omitempty"` - // CpuPlatform: [Output Only] The CPU platform used by this instance. - CpuPlatform string `json:"cpuPlatform,omitempty"` - // CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text format. - CreationTimestamp string `json:"creationTimestamp,omitempty"` - // DeletionProtection: Whether the resource should be protected against - // deletion. - DeletionProtection bool `json:"deletionProtection,omitempty"` - // Description: An optional description of this resource. Provide this property - // when you create the resource. - Description string `json:"description,omitempty"` - // Disks: Array of disks associated with this instance. Persistent disks must - // be created before you can assign them. - Disks []*AttachedDisk `json:"disks,omitempty"` - // DisplayDevice: Enables display device for the instance. - DisplayDevice *DisplayDevice `json:"displayDevice,omitempty"` - // Fingerprint: Specifies a fingerprint for this resource, which is essentially - // a hash of the instance's contents and used for optimistic locking. The - // fingerprint is initially generated by Compute Engine and changes after every - // request to modify or update the instance. You must always provide an - // up-to-date fingerprint hash in order to update the instance. To see the - // latest fingerprint, make get() request to the instance. - Fingerprint string `json:"fingerprint,omitempty"` - // GuestAccelerators: A list of the type and count of accelerator cards - // attached to the instance. - GuestAccelerators []*AcceleratorConfig `json:"guestAccelerators,omitempty"` - // Hostname: Specifies the hostname of the instance. The specified hostname - // must be RFC1035 compliant. If hostname is not specified, the default - // hostname is [INSTANCE_NAME].c.[PROJECT_ID].internal when using the global - // DNS, and [INSTANCE_NAME].[ZONE].c.[PROJECT_ID].internal when using zonal - // DNS. - Hostname string `json:"hostname,omitempty"` - // Id: [Output Only] The unique identifier for the resource. This identifier is - // defined by the server. - Id uint64 `json:"id,omitempty,string"` - // InstanceEncryptionKey: Encrypts suspended data for an instance with a - // customer-managed encryption key. If you are creating a new instance, this - // field will encrypt the local SSD and in-memory contents of the instance - // during the suspend operation. If you do not provide an encryption key when - // creating the instance, then the local SSD and in-memory contents will be - // encrypted using an automatically generated key during the suspend operation. - InstanceEncryptionKey *CustomerEncryptionKey `json:"instanceEncryptionKey,omitempty"` - // KeyRevocationActionType: KeyRevocationActionType of the instance. Supported - // options are "STOP" and "NONE". The default value is "NONE" if it is not - // specified. +type FutureReservationCommitmentInfo struct { + // CommitmentName: name of the commitment where capacity is being delivered to. + CommitmentName string `json:"commitmentName,omitempty"` + // CommitmentPlan: Indicates if a Commitment needs to be created as part of FR + // delivery. If + // this field is not present, then no + // commitment needs to be created. // // Possible values: - // "KEY_REVOCATION_ACTION_TYPE_UNSPECIFIED" - Default value. This value is - // unused. - // "NONE" - Indicates user chose no operation. - // "STOP" - Indicates user chose to opt for VM shutdown on key revocation. - KeyRevocationActionType string `json:"keyRevocationActionType,omitempty"` - // Kind: [Output Only] Type of the resource. Always compute#instance for - // instances. - Kind string `json:"kind,omitempty"` - // LabelFingerprint: A fingerprint for this request, which is essentially a - // hash of the label's contents and used for optimistic locking. The - // fingerprint is initially generated by Compute Engine and changes after every - // request to modify or update labels. You must always provide an up-to-date - // fingerprint hash in order to update or change labels. To see the latest - // fingerprint, make get() request to the instance. - LabelFingerprint string `json:"labelFingerprint,omitempty"` - // Labels: Labels to apply to this instance. These can be later modified by the - // setLabels method. - Labels map[string]string `json:"labels,omitempty"` - // LastStartTimestamp: [Output Only] Last start timestamp in RFC3339 text - // format. - LastStartTimestamp string `json:"lastStartTimestamp,omitempty"` - // LastStopTimestamp: [Output Only] Last stop timestamp in RFC3339 text format. - LastStopTimestamp string `json:"lastStopTimestamp,omitempty"` - // LastSuspendedTimestamp: [Output Only] Last suspended timestamp in RFC3339 - // text format. - LastSuspendedTimestamp string `json:"lastSuspendedTimestamp,omitempty"` - // MachineType: Full or partial URL of the machine type resource to use for - // this instance, in the format: zones/zone/machineTypes/machine-type. This is - // provided by the client when the instance is created. For example, the - // following is a valid partial url to a predefined machine type: - // zones/us-central1-f/machineTypes/n1-standard-1 To create a custom machine - // type, provide a URL to a machine type in the following format, where CPUS is - // 1 or an even number up to 32 (2, 4, 6, ... 24, etc), and MEMORY is the total - // memory for this instance. Memory must be a multiple of 256 MB and must be - // supplied in MB (e.g. 5 GB of memory is 5120 MB): - // zones/zone/machineTypes/custom-CPUS-MEMORY For example: - // zones/us-central1-f/machineTypes/custom-4-5120 For a full list of - // restrictions, read the Specifications for custom machine types. - MachineType string `json:"machineType,omitempty"` - // Metadata: The metadata key/value pairs assigned to this instance. This - // includes custom metadata and predefined keys. - Metadata *Metadata `json:"metadata,omitempty"` - // MinCpuPlatform: Specifies a minimum CPU platform for the VM instance. - // Applicable values are the friendly names of CPU platforms, such as - // minCpuPlatform: "Intel Haswell" or minCpuPlatform: "Intel Sandy Bridge". - MinCpuPlatform string `json:"minCpuPlatform,omitempty"` - // Name: The name of the resource, provided by the client when initially - // creating the resource. The resource 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. - Name string `json:"name,omitempty"` - // NetworkInterfaces: An array of network configurations for this instance. - // These specify how interfaces are configured to interact with other network - // services, such as connecting to the internet. Multiple interfaces are - // supported per instance. - NetworkInterfaces []*NetworkInterface `json:"networkInterfaces,omitempty"` - NetworkPerformanceConfig *NetworkPerformanceConfig `json:"networkPerformanceConfig,omitempty"` - // Params: Input only. [Input Only] Additional params passed with the request, - // but not persisted as part of resource payload. - Params *InstanceParams `json:"params,omitempty"` - // PrivateIpv6GoogleAccess: The private IPv6 google access type for the VM. If - // not specified, use INHERIT_FROM_SUBNETWORK as default. + // "INVALID" + // "THIRTY_SIX_MONTH" + // "TWELVE_MONTH" + CommitmentPlan string `json:"commitmentPlan,omitempty"` + // PreviousCommitmentTerms: Only applicable if FR is delivering to the same + // reservation. If set, all + // parent commitments will be extended to match the end date of the plan + // for + // this commitment. // // Possible values: - // "ENABLE_BIDIRECTIONAL_ACCESS_TO_GOOGLE" - Bidirectional private IPv6 - // access to/from Google services. If specified, the subnetwork who is attached - // to the instance's default network interface will be assigned an internal - // IPv6 prefix if it doesn't have before. - // "ENABLE_OUTBOUND_VM_ACCESS_TO_GOOGLE" - Outbound private IPv6 access from - // VMs in this subnet to Google services. If specified, the subnetwork who is - // attached to the instance's default network interface will be assigned an - // internal IPv6 prefix if it doesn't have before. - // "INHERIT_FROM_SUBNETWORK" - Each network interface inherits - // PrivateIpv6GoogleAccess from its subnetwork. - PrivateIpv6GoogleAccess string `json:"privateIpv6GoogleAccess,omitempty"` - // ReservationAffinity: Specifies the reservations that this instance can - // consume from. - ReservationAffinity *ReservationAffinity `json:"reservationAffinity,omitempty"` - // ResourcePolicies: Resource policies applied to this instance. - ResourcePolicies []string `json:"resourcePolicies,omitempty"` - // ResourceStatus: [Output Only] Specifies values set for instance attributes - // as compared to the values requested by user in the corresponding input only - // field. - ResourceStatus *ResourceStatus `json:"resourceStatus,omitempty"` - // SatisfiesPzi: [Output Only] Reserved for future use. - SatisfiesPzi bool `json:"satisfiesPzi,omitempty"` - // SatisfiesPzs: [Output Only] Reserved for future use. - SatisfiesPzs bool `json:"satisfiesPzs,omitempty"` - // Scheduling: Sets the scheduling options for this instance. - Scheduling *Scheduling `json:"scheduling,omitempty"` - // SelfLink: [Output Only] Server-defined URL for this resource. - SelfLink string `json:"selfLink,omitempty"` - // ServiceAccounts: A list of service accounts, with their specified scopes, - // authorized for this instance. Only one service account per VM instance is - // supported. Service accounts generate access tokens that can be accessed - // through the metadata server and used to authenticate applications on the - // instance. See Service Accounts for more information. - ServiceAccounts []*ServiceAccount `json:"serviceAccounts,omitempty"` - ShieldedInstanceConfig *ShieldedInstanceConfig `json:"shieldedInstanceConfig,omitempty"` - ShieldedInstanceIntegrityPolicy *ShieldedInstanceIntegrityPolicy `json:"shieldedInstanceIntegrityPolicy,omitempty"` - // SourceMachineImage: Source machine image - SourceMachineImage string `json:"sourceMachineImage,omitempty"` - // SourceMachineImageEncryptionKey: Source machine image encryption key when - // creating an instance from a machine image. - SourceMachineImageEncryptionKey *CustomerEncryptionKey `json:"sourceMachineImageEncryptionKey,omitempty"` - // StartRestricted: [Output Only] Whether a VM has been restricted for start - // because Compute Engine has detected suspicious activity. - StartRestricted bool `json:"startRestricted,omitempty"` - // Status: [Output Only] The status of the instance. One of the following - // values: PROVISIONING, STAGING, RUNNING, STOPPING, SUSPENDING, SUSPENDED, - // REPAIRING, and TERMINATED. For more information about the status of the - // instance, see Instance life cycle. + // "EXTEND" - All associated parent Committed Used Discount(s) end-date/term + // will be + // extended to the end-time of this future reservation. Default is to + // extend previous commitment(s) time to the end_time of the reservation. + // "PREVIOUSCOMMITMENTTERM_UNSPECIFIED" - No changes to associated parents + // Committed Used Discount(s) terms. + PreviousCommitmentTerms string `json:"previousCommitmentTerms,omitempty"` + // ForceSendFields is a list of field names (e.g. "CommitmentName") to + // unconditionally include in API requests. By default, fields with empty or + // default values are omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + ForceSendFields []string `json:"-"` + // NullFields is a list of field names (e.g. "CommitmentName") to include in + // API requests with the JSON null value. By default, fields with empty values + // are omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s FutureReservationCommitmentInfo) MarshalJSON() ([]byte, error) { + type NoMethod FutureReservationCommitmentInfo + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +// FutureReservationParams: Additional future reservation params. +type FutureReservationParams struct { + // ResourceManagerTags: Input only. Resource manager tags to be bound to the + // future reservation. Tag keys and + // values have the same definition as resource + // manager tags. Keys and values can be either in numeric format, + // such as `tagKeys/{tag_key_id}` and `tagValues/{tag_value_id}` or + // in + // namespaced format such as `{org_id|project_id}/{tag_key_short_name}` + // and + // `{tag_value_short_name}`. The field is ignored (both PUT & + // PATCH) when empty. + ResourceManagerTags map[string]string `json:"resourceManagerTags,omitempty"` + // ForceSendFields is a list of field names (e.g. "ResourceManagerTags") to + // unconditionally include in API requests. By default, fields with empty or + // default values are omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + ForceSendFields []string `json:"-"` + // NullFields is a list of field names (e.g. "ResourceManagerTags") to include + // in API requests with the JSON null value. By default, fields with empty + // values are omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s FutureReservationParams) MarshalJSON() ([]byte, error) { + type NoMethod FutureReservationParams + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +type FutureReservationSpecificSKUProperties struct { + // InstanceProperties: Properties of the SKU instances being reserved. + InstanceProperties *AllocationSpecificSKUAllocationReservedInstanceProperties `json:"instanceProperties,omitempty"` + // SourceInstanceTemplate: The instance template that will be used to populate + // the + // ReservedInstanceProperties of the future reservation + SourceInstanceTemplate string `json:"sourceInstanceTemplate,omitempty"` + // TotalCount: Total number of instances for which capacity assurance is + // requested at a + // future time period. + TotalCount int64 `json:"totalCount,omitempty,string"` + // ForceSendFields is a list of field names (e.g. "InstanceProperties") to + // unconditionally include in API requests. By default, fields with empty or + // default values are omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + ForceSendFields []string `json:"-"` + // NullFields is a list of field names (e.g. "InstanceProperties") to include + // in API requests with the JSON null value. By default, fields with empty + // values are omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s FutureReservationSpecificSKUProperties) MarshalJSON() ([]byte, error) { + type NoMethod FutureReservationSpecificSKUProperties + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +// FutureReservationStatus: [Output only] Represents status related to the +// future reservation. +type FutureReservationStatus struct { + // AmendmentStatus: Output only. [Output Only] The current status of the + // requested amendment. // // Possible values: - // "DEPROVISIONING" - The instance is halted and we are performing tear down - // tasks like network deprogramming, releasing quota, IP, tearing down disks - // etc. - // "PROVISIONING" - Resources are being allocated for the instance. - // "REPAIRING" - The instance is in repair. - // "RUNNING" - The instance is running. - // "STAGING" - All required resources have been allocated and the instance is - // being started. - // "STOPPED" - The instance has stopped successfully. - // "STOPPING" - The instance is currently stopping (either being deleted or - // killed). - // "SUSPENDED" - The instance has suspended. - // "SUSPENDING" - The instance is suspending. - // "TERMINATED" - The instance has stopped (either by explicit action or - // underlying failure). - Status string `json:"status,omitempty"` - // StatusMessage: [Output Only] An optional, human-readable explanation of the - // status. - StatusMessage string `json:"statusMessage,omitempty"` - // Tags: Tags to apply to this instance. Tags are used to identify valid - // sources or targets for network firewalls and are specified by the client - // during instance creation. The tags can be later modified by the setTags - // method. Each tag within the list must comply with RFC1035. Multiple tags can - // be specified via the 'tags.items' field. - Tags *Tags `json:"tags,omitempty"` - // Zone: [Output Only] URL of the zone where the instance resides. You must - // specify this field as part of the HTTP request URL. It is not settable as a - // field in the request body. - Zone string `json:"zone,omitempty"` + // "AMENDMENT_APPROVED" - The requested amendment to the Future Resevation + // has been approved and + // applied by GCP. + // "AMENDMENT_DECLINED" - The requested amendment to the Future Reservation + // has been declined by + // GCP and the original state was restored. + // "AMENDMENT_IN_REVIEW" - The requested amendment to the Future Reservation + // is currently being + // reviewd by GCP. + // "AMENDMENT_STATUS_UNSPECIFIED" + AmendmentStatus string `json:"amendmentStatus,omitempty"` + // AutoCreatedReservations: Output only. Fully qualified urls of the + // automatically created reservations at + // start_time. + AutoCreatedReservations []string `json:"autoCreatedReservations,omitempty"` + // ExistingMatchingUsageInfo: Output only. [Output Only] Represents the + // existing matching usage for the future + // reservation. + ExistingMatchingUsageInfo *FutureReservationStatusExistingMatchingUsageInfo `json:"existingMatchingUsageInfo,omitempty"` + // FulfilledCount: Output only. This count indicates the fulfilled capacity so + // far. This is set during + // "PROVISIONING" state. This count also includes capacity delivered as part + // of existing matching reservations. + FulfilledCount int64 `json:"fulfilledCount,omitempty,string"` + // LastKnownGoodState: Output only. [Output Only] This field represents the + // future reservation before an + // amendment was requested. If the amendment is declined, the + // Future + // Reservation will be reverted to the last known good state. The last + // known + // good state is not set when updating a future reservation whose + // Procurement Status is DRAFTING. + LastKnownGoodState *FutureReservationStatusLastKnownGoodState `json:"lastKnownGoodState,omitempty"` + // LockTime: Output only. Time when Future Reservation would become LOCKED, + // after which no + // modifications to Future Reservation will be allowed. Applicable only + // after the Future Reservation is in the APPROVED state. The lock_time is + // an RFC3339 string. The procurement_status will transition to PROCURING + // state at this time. + LockTime string `json:"lockTime,omitempty"` + // ProcurementStatus: Output only. Current state of this Future Reservation + // + // Possible values: + // "APPROVED" - Future reservation is approved by GCP. + // "CANCELLED" - Future reservation is cancelled by the customer. + // "COMMITTED" - Future reservation is committed by the customer. + // "DECLINED" - Future reservation is rejected by GCP. + // "DRAFTING" - Related status for PlanningStatus.Draft. Transitions + // to + // PENDING_APPROVAL upon user submitting FR. + // "FAILED" - Future reservation failed. No additional reservations were + // provided. + // "FAILED_PARTIALLY_FULFILLED" - Future reservation is partially fulfilled. + // Additional reservations were + // provided but did not reach total_count reserved instance slots. + // "FULFILLED" - Future reservation is fulfilled completely. + // "PENDING_AMENDMENT_APPROVAL" - An Amendment to the Future Reservation has + // been requested. If the + // Amendment is declined, the Future Reservation will be restored to the + // last known good state. + // "PENDING_APPROVAL" - Future reservation is pending approval by GCP. + // "PROCUREMENT_STATUS_UNSPECIFIED" + // "PROCURING" - Future reservation is being procured by GCP. Beyond this + // point, Future + // reservation is locked and no further modifications are allowed. + // "PROVISIONING" - Future reservation capacity is being provisioned. This + // state will be + // entered after start_time, while reservations are being created to + // provide total_count reserved instance slots. This state will not + // persist past start_time + 24h. + ProcurementStatus string `json:"procurementStatus,omitempty"` + SpecificSkuProperties *FutureReservationStatusSpecificSKUProperties `json:"specificSkuProperties,omitempty"` + // ForceSendFields is a list of field names (e.g. "AmendmentStatus") to + // unconditionally include in API requests. By default, fields with empty or + // default values are omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + ForceSendFields []string `json:"-"` + // NullFields is a list of field names (e.g. "AmendmentStatus") to include in + // API requests with the JSON null value. By default, fields with empty values + // are omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} - // ServerResponse contains the HTTP response code and headers from the server. - googleapi.ServerResponse `json:"-"` - // ForceSendFields is a list of field names (e.g. "AdvancedMachineFeatures") to +func (s FutureReservationStatus) MarshalJSON() ([]byte, error) { + type NoMethod FutureReservationStatus + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +// FutureReservationStatusExistingMatchingUsageInfo: [Output Only] Represents +// the existing matching usage for the future +// reservation. +type FutureReservationStatusExistingMatchingUsageInfo struct { + // Count: Output only. Count to represent min(FR + // total_count, + // matching_reserved_capacity+matching_unreserved_instances) + Count int64 `json:"count,omitempty,string"` + // Timestamp: Output only. Timestamp when the matching usage was calculated + Timestamp string `json:"timestamp,omitempty"` + // ForceSendFields is a list of field names (e.g. "Count") to unconditionally + // include in API requests. By default, fields with empty or default values are + // omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + ForceSendFields []string `json:"-"` + // NullFields is a list of field names (e.g. "Count") to include in API + // requests with the JSON null value. By default, fields with empty values are + // omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s FutureReservationStatusExistingMatchingUsageInfo) MarshalJSON() ([]byte, error) { + type NoMethod FutureReservationStatusExistingMatchingUsageInfo + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +// FutureReservationStatusLastKnownGoodState: The state that the future +// reservation will be reverted to should the +// amendment be declined. +type FutureReservationStatusLastKnownGoodState struct { + // Description: Output only. [Output Only] The description of the + // FutureReservation before an + // amendment was requested. + Description string `json:"description,omitempty"` + // ExistingMatchingUsageInfo: Output only. [Output Only] Represents the + // matching usage for the future + // reservation before an amendment was requested. + ExistingMatchingUsageInfo *FutureReservationStatusExistingMatchingUsageInfo `json:"existingMatchingUsageInfo,omitempty"` + FutureReservationSpecs *FutureReservationStatusLastKnownGoodStateFutureReservationSpecs `json:"futureReservationSpecs,omitempty"` + // LockTime: Output only. [Output Only] The lock time of the FutureReservation + // before an + // amendment was requested. + LockTime string `json:"lockTime,omitempty"` + // NamePrefix: Output only. [Output Only] The name prefix of the Future + // Reservation before an + // amendment was requested. + NamePrefix string `json:"namePrefix,omitempty"` + // ProcurementStatus: Output only. [Output Only] The status of the last known + // good state for the Future + // Reservation. + // + // Possible values: + // "APPROVED" - Future reservation is approved by GCP. + // "CANCELLED" - Future reservation is cancelled by the customer. + // "COMMITTED" - Future reservation is committed by the customer. + // "DECLINED" - Future reservation is rejected by GCP. + // "DRAFTING" - Related status for PlanningStatus.Draft. Transitions + // to + // PENDING_APPROVAL upon user submitting FR. + // "FAILED" - Future reservation failed. No additional reservations were + // provided. + // "FAILED_PARTIALLY_FULFILLED" - Future reservation is partially fulfilled. + // Additional reservations were + // provided but did not reach total_count reserved instance slots. + // "FULFILLED" - Future reservation is fulfilled completely. + // "PENDING_AMENDMENT_APPROVAL" - An Amendment to the Future Reservation has + // been requested. If the + // Amendment is declined, the Future Reservation will be restored to the + // last known good state. + // "PENDING_APPROVAL" - Future reservation is pending approval by GCP. + // "PROCUREMENT_STATUS_UNSPECIFIED" + // "PROCURING" - Future reservation is being procured by GCP. Beyond this + // point, Future + // reservation is locked and no further modifications are allowed. + // "PROVISIONING" - Future reservation capacity is being provisioned. This + // state will be + // entered after start_time, while reservations are being created to + // provide total_count reserved instance slots. This state will not + // persist past start_time + 24h. + ProcurementStatus string `json:"procurementStatus,omitempty"` + // ForceSendFields is a list of field names (e.g. "Description") to // unconditionally include in API requests. By default, fields with empty or // default values are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. ForceSendFields []string `json:"-"` - // NullFields is a list of field names (e.g. "AdvancedMachineFeatures") to + // NullFields is a list of field names (e.g. "Description") to include in API + // requests with the JSON null value. By default, fields with empty values are + // omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s FutureReservationStatusLastKnownGoodState) MarshalJSON() ([]byte, error) { + type NoMethod FutureReservationStatusLastKnownGoodState + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +// FutureReservationStatusLastKnownGoodStateFutureReservationSpecs: The +// properties of the last known good state for the Future Reservation. +type FutureReservationStatusLastKnownGoodStateFutureReservationSpecs struct { + // ShareSettings: Output only. [Output Only] The previous share settings of the + // Future Reservation. + ShareSettings *ShareSettings `json:"shareSettings,omitempty"` + // SpecificSkuProperties: Output only. [Output Only] The previous instance + // related properties of the + // Future Reservation. + SpecificSkuProperties *FutureReservationSpecificSKUProperties `json:"specificSkuProperties,omitempty"` + // TimeWindow: Output only. [Output Only] The previous time window of the + // Future Reservation. + TimeWindow *FutureReservationTimeWindow `json:"timeWindow,omitempty"` + // ForceSendFields is a list of field names (e.g. "ShareSettings") to + // unconditionally include in API requests. By default, fields with empty or + // default values are omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + ForceSendFields []string `json:"-"` + // NullFields is a list of field names (e.g. "ShareSettings") to include in API + // requests with the JSON null value. By default, fields with empty values are + // omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s FutureReservationStatusLastKnownGoodStateFutureReservationSpecs) MarshalJSON() ([]byte, error) { + type NoMethod FutureReservationStatusLastKnownGoodStateFutureReservationSpecs + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +// FutureReservationStatusSpecificSKUProperties: Properties to be set for the +// Future Reservation. +type FutureReservationStatusSpecificSKUProperties struct { + // SourceInstanceTemplateId: ID of the instance template used to populate the + // Future Reservation + // properties. + SourceInstanceTemplateId string `json:"sourceInstanceTemplateId,omitempty"` + // ForceSendFields is a list of field names (e.g. "SourceInstanceTemplateId") + // to unconditionally include in API requests. By default, fields with empty or + // default values are omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + ForceSendFields []string `json:"-"` + // NullFields is a list of field names (e.g. "SourceInstanceTemplateId") to // include in API requests with the JSON null value. By default, fields with // empty values are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } -func (s *Instance) MarshalJSON() ([]byte, error) { - type NoMethod Instance - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s FutureReservationStatusSpecificSKUProperties) MarshalJSON() ([]byte, error) { + type NoMethod FutureReservationStatusSpecificSKUProperties + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -type InstanceAggregatedList struct { +type FutureReservationTimeWindow struct { + Duration *Duration `json:"duration,omitempty"` + EndTime string `json:"endTime,omitempty"` + // StartTime: Start time of the Future Reservation. The start_time is an + // RFC3339 + // string. + StartTime string `json:"startTime,omitempty"` + // ForceSendFields is a list of field names (e.g. "Duration") to + // unconditionally include in API requests. By default, fields with empty or + // default values are omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + ForceSendFields []string `json:"-"` + // NullFields is a list of field names (e.g. "Duration") to include in API + // requests with the JSON null value. By default, fields with empty values are + // omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s FutureReservationTimeWindow) MarshalJSON() ([]byte, error) { + type NoMethod FutureReservationTimeWindow + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +// FutureReservationsAggregatedListResponse: Contains a list of future +// reservations. +type FutureReservationsAggregatedListResponse struct { + Etag string `json:"etag,omitempty"` // Id: [Output Only] Unique identifier for the resource; defined by the server. Id string `json:"id,omitempty"` - // Items: An object that contains a list of instances scoped by zone. - Items map[string]InstancesScopedList `json:"items,omitempty"` - // Kind: [Output Only] Type of resource. Always compute#instanceAggregatedList - // for aggregated lists of Instance resources. + // Items: A list of Future reservation resources. + Items map[string]FutureReservationsScopedList `json:"items,omitempty"` + // Kind: Output only. [Output Only] Type of resource. + // Alwayscompute#futureReservationsAggregatedListResponse for future + // resevation aggregated list response. 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. + // results for + // list requests. If the number of results is larger thanmaxResults, 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"` - // SelfLink: [Output Only] Server-defined URL for this resource. + // SelfLink: Output only. [Output Only] Server-defined URL for this resource. SelfLink string `json:"selfLink,omitempty"` - // Unreachables: [Output Only] Unreachable resources. + // Unreachables: Output only. [Output Only] Unreachable resources. Unreachables []string `json:"unreachables,omitempty"` // Warning: [Output Only] Informational warning message. - Warning *InstanceAggregatedListWarning `json:"warning,omitempty"` + Warning *FutureReservationsAggregatedListResponseWarning `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 + // ForceSendFields is a list of field names (e.g. "Etag") to unconditionally // include in API requests. By default, fields with empty or default values are // omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. ForceSendFields []string `json:"-"` - // NullFields is a list of field names (e.g. "Id") to include in API requests + // NullFields is a list of field names (e.g. "Etag") to include in API requests // with the JSON null value. By default, fields with empty values are omitted // from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } -func (s *InstanceAggregatedList) MarshalJSON() ([]byte, error) { - type NoMethod InstanceAggregatedList - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s FutureReservationsAggregatedListResponse) MarshalJSON() ([]byte, error) { + type NoMethod FutureReservationsAggregatedListResponse + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -// InstanceAggregatedListWarning: [Output Only] Informational warning message. -type InstanceAggregatedListWarning 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. +// FutureReservationsAggregatedListResponseWarning: [Output Only] Informational +// warning message. +type FutureReservationsAggregatedListResponseWarning 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" - Warning about failed cleanup of transient changes made - // by a failed operation. + // by a failed + // operation. // "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was created. // "DEPRECATED_TYPE_USED" - When deploying and at least one of the resources - // has a type marked as deprecated + // has a type marked as + // deprecated // "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk that is // larger than image size. // "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the - // resources has a type marked as experimental + // resources has a type marked as + // experimental // "EXTERNAL_API_WARNING" - Warning that is present in an external api call // "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been - // overridden. Deprecated unused field. + // overridden. + // Deprecated unused field. // "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an injected // kernel, which is deprecated. // "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB" - A WEIGHTED_MAGLEV backend - // service is associated with a health check that is not of type - // HTTP/HTTPS/HTTP2. + // service is associated with a health check that is + // not of type HTTP/HTTPS/HTTP2. // "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a // exceedingly large number of resources // "LIST_OVERHEAD_QUOTA_EXCEED" - Resource can't be retrieved due to list - // overhead quota exceed which captures the amount of resources filtered out by + // overhead quota exceed + // which captures the amount of resources filtered out by // user-defined list filter. // "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is not - // assigned to an instance on the network. + // assigned to an instance on the + // network. // "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot ip // forward. // "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE" - The route's nextHopInstance - // URL refers to an instance that does not have an ipv6 interface on the same - // network as the route. + // URL refers to an instance that does not have an + // ipv6 interface on the same network as the route. // "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL refers to // an instance that does not exist. // "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance URL - // refers to an instance that is not on the same network as the route. + // refers to an instance that is not on the + // same network as the route. // "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not have a // status of RUNNING. // "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to continue - // the process despite the mentioned error. + // the process despite + // the mentioned error. // "NO_RESULTS_ON_PAGE" - No results are present on a particular list page. // "PARTIAL_SUCCESS" - Success is reported, but some results may be missing // due to errors + // "QUOTA_INFO_UNAVAILABLE" - Quota information is not available to client + // requests (e.g: + // regions.list). // "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource that - // requires a TOS they have not accepted. + // requires a TOS they have not + // accepted. // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a resource is // in use. // "RESOURCE_NOT_DELETED" - One or more of the resources set to auto-delete - // could not be deleted because they were in use. + // could not be deleted + // because they were in use. // "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is // ignored. // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in instance - // group manager is valid as such, but its application does not make a lot of - // sense, because it allows only single instance in instance group. + // group manager is valid as such, but + // its application does not make a lot of sense, because it allows only + // single instance in instance group. // "UNDECLARED_PROPERTIES" - When undeclared properties in the schema are // present // "UNREACHABLE" - A given scope cannot be reached. 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 []*InstanceAggregatedListWarningData `json:"data,omitempty"` + // Data: [Output Only] Metadata about this warning in key: + // value format. For example: + // + // "data": [ + // { + // "key": "scope", + // "value": "zones/us-east1-d" + // } + Data []*FutureReservationsAggregatedListResponseWarningData `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 @@ -15502,19 +19736,22 @@ type InstanceAggregatedListWarning struct { NullFields []string `json:"-"` } -func (s *InstanceAggregatedListWarning) MarshalJSON() ([]byte, error) { - type NoMethod InstanceAggregatedListWarning - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s FutureReservationsAggregatedListResponseWarning) MarshalJSON() ([]byte, error) { + type NoMethod FutureReservationsAggregatedListResponseWarning + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -type InstanceAggregatedListWarningData 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). +type FutureReservationsAggregatedListResponseWarningData 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"` @@ -15531,248 +19768,147 @@ type InstanceAggregatedListWarningData struct { NullFields []string `json:"-"` } -func (s *InstanceAggregatedListWarningData) MarshalJSON() ([]byte, error) { - type NoMethod InstanceAggregatedListWarningData - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) -} - -type InstanceConsumptionData struct { - // ConsumptionInfo: Resources consumed by the instance. - ConsumptionInfo *InstanceConsumptionInfo `json:"consumptionInfo,omitempty"` - // Instance: Server-defined URL for the instance. - Instance string `json:"instance,omitempty"` - // ForceSendFields is a list of field names (e.g. "ConsumptionInfo") to - // unconditionally include in API requests. By default, fields with empty or - // default values are omitted from API requests. See - // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more - // details. - ForceSendFields []string `json:"-"` - // NullFields is a list of field names (e.g. "ConsumptionInfo") to include in - // API requests with the JSON null value. By default, fields with empty values - // are omitted from API requests. See - // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. - NullFields []string `json:"-"` +func (s FutureReservationsAggregatedListResponseWarningData) MarshalJSON() ([]byte, error) { + type NoMethod FutureReservationsAggregatedListResponseWarningData + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -func (s *InstanceConsumptionData) MarshalJSON() ([]byte, error) { - type NoMethod InstanceConsumptionData - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) -} +type FutureReservationsListResponse struct { + Etag string `json:"etag,omitempty"` + // Id: [Output Only] The unique identifier for the resource. This identifier + // is + // defined by the server. + Id string `json:"id,omitempty"` + // Items: [Output Only] A list of future reservation resources. + Items []*FutureReservation `json:"items,omitempty"` + // Kind: Output only. [Output Only] Type of + // resource.Alwayscompute#FutureReservationsListResponse for lists + // of + // reservations + 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 thanmaxResults, 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"` + // SelfLink: Output only. [Output Only] Server-defined URL for this resource. + SelfLink string `json:"selfLink,omitempty"` + // Unreachables: Output only. [Output Only] Unreachable resources. + Unreachables []string `json:"unreachables,omitempty"` + // Warning: [Output Only] Informational warning message. + Warning *FutureReservationsListResponseWarning `json:"warning,omitempty"` -type InstanceConsumptionInfo struct { - // GuestCpus: The number of virtual CPUs that are available to the instance. - GuestCpus int64 `json:"guestCpus,omitempty"` - // LocalSsdGb: The amount of local SSD storage available to the instance, - // defined in GiB. - LocalSsdGb int64 `json:"localSsdGb,omitempty"` - // MemoryMb: The amount of physical memory available to the instance, defined - // in MiB. - MemoryMb int64 `json:"memoryMb,omitempty"` - // MinNodeCpus: The minimal guaranteed number of virtual CPUs that are - // reserved. - MinNodeCpus int64 `json:"minNodeCpus,omitempty"` - // ForceSendFields is a list of field names (e.g. "GuestCpus") to - // unconditionally include in API requests. By default, fields with empty or - // default values are omitted from API requests. See + // ServerResponse contains the HTTP response code and headers from the server. + googleapi.ServerResponse `json:"-"` + // ForceSendFields is a list of field names (e.g. "Etag") to unconditionally + // include in API requests. By default, fields with empty or default values are + // omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. ForceSendFields []string `json:"-"` - // NullFields is a list of field names (e.g. "GuestCpus") to include in API - // requests with the JSON null value. By default, fields with empty values are - // omitted from API requests. See + // NullFields is a list of field names (e.g. "Etag") to include in API requests + // with the JSON null value. By default, fields with empty values are omitted + // from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } -func (s *InstanceConsumptionInfo) MarshalJSON() ([]byte, error) { - type NoMethod InstanceConsumptionInfo - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s FutureReservationsListResponse) MarshalJSON() ([]byte, error) { + type NoMethod FutureReservationsListResponse + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -// InstanceGroup: Represents an Instance Group resource. Instance Groups can be -// used to configure a target for load balancing. Instance groups can either be -// managed or unmanaged. To create managed instance groups, use the -// instanceGroupManager or regionInstanceGroupManager resource instead. Use -// zonal unmanaged instance groups if you need to apply load balancing to -// groups of heterogeneous instances or if you need to manage the instances -// yourself. You cannot create regional unmanaged instance groups. For more -// information, read Instance groups. -type InstanceGroup struct { - // CreationTimestamp: [Output Only] The creation timestamp for this instance - // group in RFC3339 text format. - CreationTimestamp string `json:"creationTimestamp,omitempty"` - // Description: An optional description of this resource. Provide this property - // when you create the resource. - Description string `json:"description,omitempty"` - // Fingerprint: [Output Only] The fingerprint of the named ports. The system - // uses this fingerprint to detect conflicts when multiple users change the - // named ports concurrently. - Fingerprint string `json:"fingerprint,omitempty"` - // Id: [Output Only] A unique identifier for this instance group, generated by - // the server. - Id uint64 `json:"id,omitempty,string"` - // Kind: [Output Only] The resource type, which is always compute#instanceGroup - // for instance groups. - Kind string `json:"kind,omitempty"` - // Name: The name of the instance group. The name must be 1-63 characters long, - // and comply with RFC1035. - Name string `json:"name,omitempty"` - // NamedPorts: Assigns a name to a port number. For example: {name: "http", - // port: 80} This allows the system to reference ports by the assigned name - // instead of a port number. Named ports can also contain multiple ports. For - // example: [{name: "app1", port: 8080}, {name: "app1", port: 8081}, {name: - // "app2", port: 8082}] Named ports apply to all instances in this instance - // group. - NamedPorts []*NamedPort `json:"namedPorts,omitempty"` - // Network: [Output Only] The URL of the network to which all instances in the - // instance group belong. If your instance has multiple network interfaces, - // then the network and subnetwork fields only refer to the network and subnet - // used by your primary interface (nic0). - Network string `json:"network,omitempty"` - // Region: [Output Only] The URL of the region where the instance group is - // located (for regional resources). - Region string `json:"region,omitempty"` - // SelfLink: [Output Only] The URL for this instance group. The server - // generates this URL. - SelfLink string `json:"selfLink,omitempty"` - // Size: [Output Only] The total number of instances in the instance group. - Size int64 `json:"size,omitempty"` - // Subnetwork: [Output Only] The URL of the subnetwork to which all instances - // in the instance group belong. If your instance has multiple network - // interfaces, then the network and subnetwork fields only refer to the network - // and subnet used by your primary interface (nic0). - Subnetwork string `json:"subnetwork,omitempty"` - // Zone: [Output Only] The URL of the zone where the instance group is located - // (for zonal resources). - Zone string `json:"zone,omitempty"` - - // ServerResponse contains the HTTP response code and headers from the server. - googleapi.ServerResponse `json:"-"` - // ForceSendFields is a list of field names (e.g. "CreationTimestamp") to - // unconditionally include in API requests. By default, fields with empty or - // default values are omitted from API requests. See - // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more - // details. - ForceSendFields []string `json:"-"` - // NullFields is a list of field names (e.g. "CreationTimestamp") to include in - // API requests with the JSON null value. By default, fields with empty values - // are omitted from API requests. See - // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. - NullFields []string `json:"-"` -} - -func (s *InstanceGroup) MarshalJSON() ([]byte, error) { - type NoMethod InstanceGroup - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) -} - -type InstanceGroupAggregatedList struct { - // Id: [Output Only] Unique identifier for the resource; defined by the server. - Id string `json:"id,omitempty"` - // Items: A list of InstanceGroupsScopedList resources. - Items map[string]InstanceGroupsScopedList `json:"items,omitempty"` - // Kind: [Output Only] The resource type, which is always - // compute#instanceGroupAggregatedList for aggregated lists of instance groups. - 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"` - // SelfLink: [Output Only] Server-defined URL for this resource. - SelfLink string `json:"selfLink,omitempty"` - // Unreachables: [Output Only] Unreachable resources. - Unreachables []string `json:"unreachables,omitempty"` - // Warning: [Output Only] Informational warning message. - Warning *InstanceGroupAggregatedListWarning `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 or default values are - // omitted from API requests. See - // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more - // details. - 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. See - // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. - NullFields []string `json:"-"` -} - -func (s *InstanceGroupAggregatedList) MarshalJSON() ([]byte, error) { - type NoMethod InstanceGroupAggregatedList - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) -} - -// InstanceGroupAggregatedListWarning: [Output Only] Informational warning +// FutureReservationsListResponseWarning: [Output Only] Informational warning // message. -type InstanceGroupAggregatedListWarning 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. +type FutureReservationsListResponseWarning 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" - Warning about failed cleanup of transient changes made - // by a failed operation. + // by a failed + // operation. // "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was created. // "DEPRECATED_TYPE_USED" - When deploying and at least one of the resources - // has a type marked as deprecated + // has a type marked as + // deprecated // "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk that is // larger than image size. // "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the - // resources has a type marked as experimental + // resources has a type marked as + // experimental // "EXTERNAL_API_WARNING" - Warning that is present in an external api call // "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been - // overridden. Deprecated unused field. + // overridden. + // Deprecated unused field. // "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an injected // kernel, which is deprecated. // "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB" - A WEIGHTED_MAGLEV backend - // service is associated with a health check that is not of type - // HTTP/HTTPS/HTTP2. + // service is associated with a health check that is + // not of type HTTP/HTTPS/HTTP2. // "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a // exceedingly large number of resources // "LIST_OVERHEAD_QUOTA_EXCEED" - Resource can't be retrieved due to list - // overhead quota exceed which captures the amount of resources filtered out by + // overhead quota exceed + // which captures the amount of resources filtered out by // user-defined list filter. // "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is not - // assigned to an instance on the network. + // assigned to an instance on the + // network. // "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot ip // forward. // "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE" - The route's nextHopInstance - // URL refers to an instance that does not have an ipv6 interface on the same - // network as the route. + // URL refers to an instance that does not have an + // ipv6 interface on the same network as the route. // "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL refers to // an instance that does not exist. // "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance URL - // refers to an instance that is not on the same network as the route. + // refers to an instance that is not on the + // same network as the route. // "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not have a // status of RUNNING. // "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to continue - // the process despite the mentioned error. + // the process despite + // the mentioned error. // "NO_RESULTS_ON_PAGE" - No results are present on a particular list page. // "PARTIAL_SUCCESS" - Success is reported, but some results may be missing // due to errors + // "QUOTA_INFO_UNAVAILABLE" - Quota information is not available to client + // requests (e.g: + // regions.list). // "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource that - // requires a TOS they have not accepted. + // requires a TOS they have not + // accepted. // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a resource is // in use. // "RESOURCE_NOT_DELETED" - One or more of the resources set to auto-delete - // could not be deleted because they were in use. + // could not be deleted + // because they were in use. // "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is // ignored. // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in instance - // group manager is valid as such, but its application does not make a lot of - // sense, because it allows only single instance in instance group. + // group manager is valid as such, but + // its application does not make a lot of sense, because it allows only + // single instance in instance group. // "UNDECLARED_PROPERTIES" - When undeclared properties in the schema are // present // "UNREACHABLE" - A given scope cannot be reached. 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 []*InstanceGroupAggregatedListWarningData `json:"data,omitempty"` + // Data: [Output Only] Metadata about this warning in key: + // value format. For example: + // + // "data": [ + // { + // "key": "scope", + // "value": "zones/us-east1-d" + // } + Data []*FutureReservationsListResponseWarningData `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 @@ -15788,19 +19924,22 @@ type InstanceGroupAggregatedListWarning struct { NullFields []string `json:"-"` } -func (s *InstanceGroupAggregatedListWarning) MarshalJSON() ([]byte, error) { - type NoMethod InstanceGroupAggregatedListWarning - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s FutureReservationsListResponseWarning) MarshalJSON() ([]byte, error) { + type NoMethod FutureReservationsListResponseWarning + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -type InstanceGroupAggregatedListWarningData 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). +type FutureReservationsListResponseWarningData 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"` @@ -15817,116 +19956,125 @@ type InstanceGroupAggregatedListWarningData struct { NullFields []string `json:"-"` } -func (s *InstanceGroupAggregatedListWarningData) MarshalJSON() ([]byte, error) { - type NoMethod InstanceGroupAggregatedListWarningData - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s FutureReservationsListResponseWarningData) MarshalJSON() ([]byte, error) { + type NoMethod FutureReservationsListResponseWarningData + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -// InstanceGroupList: A list of InstanceGroup resources. -type InstanceGroupList struct { - // Id: [Output Only] Unique identifier for the resource; defined by the server. - Id string `json:"id,omitempty"` - // Items: A list of InstanceGroup resources. - Items []*InstanceGroup `json:"items,omitempty"` - // Kind: [Output Only] The resource type, which is always - // compute#instanceGroupList for instance group lists. - 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"` - // SelfLink: [Output Only] Server-defined URL for this resource. - SelfLink string `json:"selfLink,omitempty"` - // Warning: [Output Only] Informational warning message. - Warning *InstanceGroupListWarning `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 or default values are - // omitted from API requests. See +type FutureReservationsScopedList struct { + // FutureReservations: A list of future reservations contained in this scope. + FutureReservations []*FutureReservation `json:"futureReservations,omitempty"` + // Warning: Informational warning which replaces the list of future + // reservations when + // the list is empty. + Warning *FutureReservationsScopedListWarning `json:"warning,omitempty"` + // ForceSendFields is a list of field names (e.g. "FutureReservations") to + // unconditionally include in API requests. By default, fields with empty or + // default values are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. 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. See + // NullFields is a list of field names (e.g. "FutureReservations") to include + // in API requests with the JSON null value. By default, fields with empty + // values are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } -func (s *InstanceGroupList) MarshalJSON() ([]byte, error) { - type NoMethod InstanceGroupList - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s FutureReservationsScopedList) MarshalJSON() ([]byte, error) { + type NoMethod FutureReservationsScopedList + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -// InstanceGroupListWarning: [Output Only] Informational warning message. -type InstanceGroupListWarning 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. +// FutureReservationsScopedListWarning: Informational warning which replaces +// the list of future reservations when +// the list is empty. +type FutureReservationsScopedListWarning 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" - Warning about failed cleanup of transient changes made - // by a failed operation. + // by a failed + // operation. // "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was created. // "DEPRECATED_TYPE_USED" - When deploying and at least one of the resources - // has a type marked as deprecated + // has a type marked as + // deprecated // "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk that is // larger than image size. // "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the - // resources has a type marked as experimental + // resources has a type marked as + // experimental // "EXTERNAL_API_WARNING" - Warning that is present in an external api call // "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been - // overridden. Deprecated unused field. + // overridden. + // Deprecated unused field. // "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an injected // kernel, which is deprecated. // "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB" - A WEIGHTED_MAGLEV backend - // service is associated with a health check that is not of type - // HTTP/HTTPS/HTTP2. + // service is associated with a health check that is + // not of type HTTP/HTTPS/HTTP2. // "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a // exceedingly large number of resources // "LIST_OVERHEAD_QUOTA_EXCEED" - Resource can't be retrieved due to list - // overhead quota exceed which captures the amount of resources filtered out by + // overhead quota exceed + // which captures the amount of resources filtered out by // user-defined list filter. // "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is not - // assigned to an instance on the network. + // assigned to an instance on the + // network. // "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot ip // forward. // "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE" - The route's nextHopInstance - // URL refers to an instance that does not have an ipv6 interface on the same - // network as the route. + // URL refers to an instance that does not have an + // ipv6 interface on the same network as the route. // "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL refers to // an instance that does not exist. // "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance URL - // refers to an instance that is not on the same network as the route. + // refers to an instance that is not on the + // same network as the route. // "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not have a // status of RUNNING. // "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to continue - // the process despite the mentioned error. + // the process despite + // the mentioned error. // "NO_RESULTS_ON_PAGE" - No results are present on a particular list page. // "PARTIAL_SUCCESS" - Success is reported, but some results may be missing // due to errors + // "QUOTA_INFO_UNAVAILABLE" - Quota information is not available to client + // requests (e.g: + // regions.list). // "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource that - // requires a TOS they have not accepted. + // requires a TOS they have not + // accepted. // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a resource is // in use. // "RESOURCE_NOT_DELETED" - One or more of the resources set to auto-delete - // could not be deleted because they were in use. + // could not be deleted + // because they were in use. // "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is // ignored. // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in instance - // group manager is valid as such, but its application does not make a lot of - // sense, because it allows only single instance in instance group. + // group manager is valid as such, but + // its application does not make a lot of sense, because it allows only + // single instance in instance group. // "UNDECLARED_PROPERTIES" - When undeclared properties in the schema are // present // "UNREACHABLE" - A given scope cannot be reached. 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 []*InstanceGroupListWarningData `json:"data,omitempty"` + // Data: [Output Only] Metadata about this warning in key: + // value format. For example: + // + // "data": [ + // { + // "key": "scope", + // "value": "zones/us-east1-d" + // } + Data []*FutureReservationsScopedListWarningData `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 @@ -15942,19 +20090,22 @@ type InstanceGroupListWarning struct { NullFields []string `json:"-"` } -func (s *InstanceGroupListWarning) MarshalJSON() ([]byte, error) { - type NoMethod InstanceGroupListWarning - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s FutureReservationsScopedListWarning) MarshalJSON() ([]byte, error) { + type NoMethod FutureReservationsScopedListWarning + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -type InstanceGroupListWarningData 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). +type FutureReservationsScopedListWarningData 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"` @@ -15971,1006 +20122,1008 @@ type InstanceGroupListWarningData struct { NullFields []string `json:"-"` } -func (s *InstanceGroupListWarningData) MarshalJSON() ([]byte, error) { - type NoMethod InstanceGroupListWarningData - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s FutureReservationsScopedListWarningData) MarshalJSON() ([]byte, error) { + type NoMethod FutureReservationsScopedListWarningData + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -// InstanceGroupManager: Represents a Managed Instance Group resource. An -// instance group is a collection of VM instances that you can manage as a -// single entity. For more information, read Instance groups. For zonal Managed -// Instance Group, use the instanceGroupManagers resource. For regional Managed -// Instance Group, use the regionInstanceGroupManagers resource. -type InstanceGroupManager struct { - // AllInstancesConfig: Specifies configuration that overrides the instance - // template configuration for the group. - AllInstancesConfig *InstanceGroupManagerAllInstancesConfig `json:"allInstancesConfig,omitempty"` - // AutoHealingPolicies: The autohealing policy for this managed instance group. - // You can specify only one value. - AutoHealingPolicies []*InstanceGroupManagerAutoHealingPolicy `json:"autoHealingPolicies,omitempty"` - // BaseInstanceName: The base instance name to use for instances in this group. - // The value must be 1-58 characters long. Instances are named by appending a - // hyphen and a random four-character string to the base instance name. The - // base instance name must comply with RFC1035. - BaseInstanceName string `json:"baseInstanceName,omitempty"` - // CreationTimestamp: [Output Only] The creation timestamp for this managed - // instance group in RFC3339 text format. - CreationTimestamp string `json:"creationTimestamp,omitempty"` - // CurrentActions: [Output Only] The list of instance actions and the number of - // instances in this managed instance group that are scheduled for each of - // those actions. - CurrentActions *InstanceGroupManagerActionsSummary `json:"currentActions,omitempty"` - // Description: An optional description of this resource. - Description string `json:"description,omitempty"` - // DistributionPolicy: Policy specifying the intended distribution of managed - // instances across zones in a regional managed instance group. - DistributionPolicy *DistributionPolicy `json:"distributionPolicy,omitempty"` - // Fingerprint: Fingerprint of this resource. This field may be used in - // optimistic locking. It will be ignored when inserting an - // InstanceGroupManager. An up-to-date fingerprint must be provided in order to - // update the InstanceGroupManager, otherwise the request will fail with error - // 412 conditionNotMet. To see the latest fingerprint, make a get() request to - // retrieve an InstanceGroupManager. - Fingerprint string `json:"fingerprint,omitempty"` - // Id: [Output Only] A unique identifier for this resource type. The server - // generates this identifier. - Id uint64 `json:"id,omitempty,string"` - // InstanceGroup: [Output Only] The URL of the Instance Group resource. - InstanceGroup string `json:"instanceGroup,omitempty"` - // InstanceLifecyclePolicy: The repair policy for this managed instance group. - InstanceLifecyclePolicy *InstanceGroupManagerInstanceLifecyclePolicy `json:"instanceLifecyclePolicy,omitempty"` - // InstanceTemplate: The URL of the instance template that is specified for - // this managed instance group. The group uses this template to create all new - // instances in the managed instance group. The templates for existing - // instances in the group do not change unless you run recreateInstances, run - // applyUpdatesToInstances, or set the group's updatePolicy.type to PROACTIVE. - InstanceTemplate string `json:"instanceTemplate,omitempty"` - // Kind: [Output Only] The resource type, which is always - // compute#instanceGroupManager for managed instance groups. - Kind string `json:"kind,omitempty"` - // ListManagedInstancesResults: Pagination behavior of the listManagedInstances - // API method for this managed instance group. +// FutureResourcesRecommendation: Recommendation for single resources +// specification, to be created in the +// future. +type FutureResourcesRecommendation struct { + EndTime string `json:"endTime,omitempty"` + // Location: The advised location for resource usage. When a zone, in + // format + // 'zones/'. + // If not set, it means that no location is recommended - see + // other_locations for details. + Location string `json:"location,omitempty"` + // OtherLocations: List of locations in the request scope that were + // not + // recommended. Keys of the map are zones, in format 'zones/'. + // The values are status information indicating the recommendation status. + OtherLocations map[string]FutureResourcesRecommendationOtherLocation `json:"otherLocations,omitempty"` + // RecommendationId: Unique id of the recommendation, a UUID string generated + // by the API. + RecommendationId string `json:"recommendationId,omitempty"` + // RecommendationType: Type of recommendation. Currently only + // FUTURE_RESERVATION is supported. // // Possible values: - // "PAGELESS" - (Default) Pagination is disabled for the group's - // listManagedInstances API method. maxResults and pageToken query parameters - // are ignored and all instances are returned in a single response. - // "PAGINATED" - Pagination is enabled for the group's listManagedInstances - // API method. maxResults and pageToken query parameters are respected. - ListManagedInstancesResults string `json:"listManagedInstancesResults,omitempty"` - // Name: The name of the managed instance group. The name must be 1-63 - // characters long, and comply with RFC1035. - Name string `json:"name,omitempty"` - // NamedPorts: Named ports configured for the Instance Groups complementary to - // this Instance Group Manager. - NamedPorts []*NamedPort `json:"namedPorts,omitempty"` - // Region: [Output Only] The URL of the region where the managed instance group - // resides (for regional resources). - Region string `json:"region,omitempty"` - // SelfLink: [Output Only] The URL for this managed instance group. The server - // defines this URL. - SelfLink string `json:"selfLink,omitempty"` - // StatefulPolicy: Stateful configuration for this Instanced Group Manager - StatefulPolicy *StatefulPolicy `json:"statefulPolicy,omitempty"` - // Status: [Output Only] The status of this managed instance group. - Status *InstanceGroupManagerStatus `json:"status,omitempty"` - // TargetPools: The URLs for all TargetPool resources to which instances in the - // instanceGroup field are added. The target pools automatically apply to all - // of the instances in the managed instance group. - TargetPools []string `json:"targetPools,omitempty"` - // TargetSize: The target number of running instances for this managed instance - // group. You can reduce this number by using the instanceGroupManager - // deleteInstances or abandonInstances methods. Resizing the group also changes - // this number. - TargetSize int64 `json:"targetSize,omitempty"` - // UpdatePolicy: The update policy for this managed instance group. - UpdatePolicy *InstanceGroupManagerUpdatePolicy `json:"updatePolicy,omitempty"` - // Versions: Specifies the instance templates used by this managed instance - // group to create instances. Each version is defined by an instanceTemplate - // and a name. Every version can appear at most once per instance group. This - // field overrides the top-level instanceTemplate field. Read more about the - // relationships between these fields. Exactly one version must leave the - // targetSize field unset. That version will be applied to all remaining - // instances. For more information, read about canary updates. - Versions []*InstanceGroupManagerVersion `json:"versions,omitempty"` - // Zone: [Output Only] The URL of a zone where the managed instance group is - // located (for zonal resources). - Zone string `json:"zone,omitempty"` - - // ServerResponse contains the HTTP response code and headers from the server. - googleapi.ServerResponse `json:"-"` - // ForceSendFields is a list of field names (e.g. "AllInstancesConfig") to - // unconditionally include in API requests. By default, fields with empty or - // default values are omitted from API requests. See + // "FUTURE_RESERVATION" - A Future Reservation is recommended. + // "RECOMMENDATION_TYPE_UNSPECIFIED" - Default value, unused. + RecommendationType string `json:"recommendationType,omitempty"` + StartTime string `json:"startTime,omitempty"` + // ForceSendFields is a list of field names (e.g. "EndTime") to unconditionally + // include in API requests. By default, fields with empty or default values are + // omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. ForceSendFields []string `json:"-"` - // NullFields is a list of field names (e.g. "AllInstancesConfig") to include - // in API requests with the JSON null value. By default, fields with empty - // values are omitted from API requests. See + // NullFields is a list of field names (e.g. "EndTime") to include in API + // requests with the JSON null value. By default, fields with empty values are + // omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } -func (s *InstanceGroupManager) MarshalJSON() ([]byte, error) { - type NoMethod InstanceGroupManager - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s FutureResourcesRecommendation) MarshalJSON() ([]byte, error) { + type NoMethod FutureResourcesRecommendation + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -type InstanceGroupManagerActionsSummary struct { - // Abandoning: [Output Only] The total number of instances in the managed - // instance group that are scheduled to be abandoned. Abandoning an instance - // removes it from the managed instance group without deleting it. - Abandoning int64 `json:"abandoning,omitempty"` - // Creating: [Output Only] The number of instances in the managed instance - // group that are scheduled to be created or are currently being created. If - // the group fails to create any of these instances, it tries again until it - // creates the instance successfully. If you have disabled creation retries, - // this field will not be populated; instead, the creatingWithoutRetries field - // will be populated. - Creating int64 `json:"creating,omitempty"` - // CreatingWithoutRetries: [Output Only] The number of instances that the - // managed instance group will attempt to create. The group attempts to create - // each instance only once. If the group fails to create any of these - // instances, it decreases the group's targetSize value accordingly. - CreatingWithoutRetries int64 `json:"creatingWithoutRetries,omitempty"` - // Deleting: [Output Only] The number of instances in the managed instance - // group that are scheduled to be deleted or are currently being deleted. - Deleting int64 `json:"deleting,omitempty"` - // None: [Output Only] The number of instances in the managed instance group - // that are running and have no scheduled actions. - None int64 `json:"none,omitempty"` - // Recreating: [Output Only] The number of instances in the managed instance - // group that are scheduled to be recreated or are currently being being - // recreated. Recreating an instance deletes the existing root persistent disk - // and creates a new disk from the image that is defined in the instance - // template. - Recreating int64 `json:"recreating,omitempty"` - // Refreshing: [Output Only] The number of instances in the managed instance - // group that are being reconfigured with properties that do not require a - // restart or a recreate action. For example, setting or removing target pools - // for the instance. - Refreshing int64 `json:"refreshing,omitempty"` - // Restarting: [Output Only] The number of instances in the managed instance - // group that are scheduled to be restarted or are currently being restarted. - Restarting int64 `json:"restarting,omitempty"` - // Resuming: [Output Only] The number of instances in the managed instance - // group that are scheduled to be resumed or are currently being resumed. - Resuming int64 `json:"resuming,omitempty"` - // Starting: [Output Only] The number of instances in the managed instance - // group that are scheduled to be started or are currently being started. - Starting int64 `json:"starting,omitempty"` - // Stopping: [Output Only] The number of instances in the managed instance - // group that are scheduled to be stopped or are currently being stopped. - Stopping int64 `json:"stopping,omitempty"` - // Suspending: [Output Only] The number of instances in the managed instance - // group that are scheduled to be suspended or are currently being suspended. - Suspending int64 `json:"suspending,omitempty"` - // Verifying: [Output Only] The number of instances in the managed instance - // group that are being verified. See the managedInstances[].currentAction - // property in the listManagedInstances method documentation. - Verifying int64 `json:"verifying,omitempty"` - // ForceSendFields is a list of field names (e.g. "Abandoning") to - // unconditionally include in API requests. By default, fields with empty or - // default values are omitted from API requests. See +// FutureResourcesRecommendationOtherLocation: Information about recommendation +// status for locations +// that were allowed but not used by the response. +type FutureResourcesRecommendationOtherLocation struct { + // Details: Details (human readable) describing the situation. + // For example, if status is CONDITION_NOT_MET, then + // details contain information about the parameters of the time window + // that did not meet the required conditions. + Details string `json:"details,omitempty"` + // Status: Status of recommendation in this location. + // + // Possible values: + // "CONDITIONS_NOT_MET" - The requested resources are offered in this + // location + // but the requested time window is does not meet the required conditions. + // "NOT_SUPPORTED" - The requested resources are not offered in this + // location. + // Retrying the request will not change this status. + // "NO_CAPACITY" - The requested resources are offered in this location + // and the requested time window is accepted + // but there is no capacity within the requested time window. + // "OTHER_LOCATION_STATUS_UNDEFINED" - Default value, unused. + // "RECOMMENDED" - The requested resources are offered in this location + // and it is possible to request them. However, another location + // was better and was recommended. + Status string `json:"status,omitempty"` + // ForceSendFields is a list of field names (e.g. "Details") to unconditionally + // include in API requests. By default, fields with empty or default values are + // omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. ForceSendFields []string `json:"-"` - // NullFields is a list of field names (e.g. "Abandoning") to include in API + // NullFields is a list of field names (e.g. "Details") to include in API // requests with the JSON null value. By default, fields with empty values are // omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } -func (s *InstanceGroupManagerActionsSummary) MarshalJSON() ([]byte, error) { - type NoMethod InstanceGroupManagerActionsSummary - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s FutureResourcesRecommendationOtherLocation) MarshalJSON() ([]byte, error) { + type NoMethod FutureResourcesRecommendationOtherLocation + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -type InstanceGroupManagerAggregatedList struct { - // Id: [Output Only] Unique identifier for the resource; defined by the server. - Id string `json:"id,omitempty"` - // Items: A list of InstanceGroupManagersScopedList resources. - Items map[string]InstanceGroupManagersScopedList `json:"items,omitempty"` - // Kind: [Output Only] The resource type, which is always - // compute#instanceGroupManagerAggregatedList for an aggregated list of managed - // instance groups. - 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"` - // SelfLink: [Output Only] Server-defined URL for this resource. - SelfLink string `json:"selfLink,omitempty"` - // Unreachables: [Output Only] Unreachable resources. - Unreachables []string `json:"unreachables,omitempty"` - // Warning: [Output Only] Informational warning message. - Warning *InstanceGroupManagerAggregatedListWarning `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 or default values are - // omitted from API requests. See +// FutureResourcesSpec: Specification of resources to be created at some time +// in the future within an +// optionally specified set of locations, and within the specified time range. +type FutureResourcesSpec struct { + // DeploymentType: Indicates if the reservation allocation strategy is static + // (DENSE) or + // dynamic (STANDARD). Defaults to DENSE. + // + // Possible values: + // "DENSE" - The reserved capacity is made up of densely deployed reservation + // blocks. + // "DEPLOYMENT_TYPE_UNSPECIFIED" + DeploymentType string `json:"deploymentType,omitempty"` + // LocationPolicy: Optional location policy allowing to exclude some zone(s) in + // which + // the resources must not be created. + LocationPolicy *FutureResourcesSpecLocationPolicy `json:"locationPolicy,omitempty"` + // TargetResources: Specification of the reserved resources. + TargetResources *FutureResourcesSpecTargetResources `json:"targetResources,omitempty"` + // TimeRangeSpec: Specification of a time range in which the resources may be + // created. + // The time range specifies start of resource use and planned end of + // resource + // use. + TimeRangeSpec *FlexibleTimeRange `json:"timeRangeSpec,omitempty"` + // ForceSendFields is a list of field names (e.g. "DeploymentType") to + // unconditionally include in API requests. By default, fields with empty or + // default values are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. 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. See + // NullFields is a list of field names (e.g. "DeploymentType") to include in + // API requests with the JSON null value. By default, fields with empty values + // are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } -func (s *InstanceGroupManagerAggregatedList) MarshalJSON() ([]byte, error) { - type NoMethod InstanceGroupManagerAggregatedList - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s FutureResourcesSpec) MarshalJSON() ([]byte, error) { + type NoMethod FutureResourcesSpec + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -// InstanceGroupManagerAggregatedListWarning: [Output Only] Informational -// warning message. -type InstanceGroupManagerAggregatedListWarning 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. +type FutureResourcesSpecAggregateResources struct { + // AcceleratorCount: Size of the request, in accelerator (chip) count. + AcceleratorCount int64 `json:"acceleratorCount,omitempty,string"` + // VmFamily: The VM family that all instances scheduled against this + // reservation + // must belong to. Use for TPU reservations. // // Possible values: - // "CLEANUP_FAILED" - Warning about failed cleanup of transient changes made - // by a failed operation. - // "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was created. - // "DEPRECATED_TYPE_USED" - When deploying and at least one of the resources - // has a type marked as deprecated - // "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk that is - // larger than image size. - // "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the - // resources has a type marked as experimental - // "EXTERNAL_API_WARNING" - Warning that is present in an external api call - // "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been - // overridden. Deprecated unused field. - // "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an injected - // kernel, which is deprecated. - // "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB" - A WEIGHTED_MAGLEV backend - // service is associated with a health check that is not of type - // HTTP/HTTPS/HTTP2. - // "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a - // exceedingly large number of resources - // "LIST_OVERHEAD_QUOTA_EXCEED" - Resource can't be retrieved due to list - // overhead quota exceed which captures the amount of resources filtered out by - // user-defined list filter. - // "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type - // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is not - // assigned to an instance on the network. - // "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot ip - // forward. - // "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE" - The route's nextHopInstance - // URL refers to an instance that does not have an ipv6 interface on the same - // network as the route. - // "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL refers to - // an instance that does not exist. - // "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance URL - // refers to an instance that is not on the same network as the route. - // "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not have a - // status of RUNNING. - // "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to continue - // the process despite the mentioned error. - // "NO_RESULTS_ON_PAGE" - No results are present on a particular list page. - // "PARTIAL_SUCCESS" - Success is reported, but some results may be missing - // due to errors - // "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource that - // requires a TOS they have not accepted. - // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a resource is - // in use. - // "RESOURCE_NOT_DELETED" - One or more of the resources set to auto-delete - // could not be deleted because they were in use. - // "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is - // ignored. - // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in instance - // group manager is valid as such, but its application does not make a lot of - // sense, because it allows only single instance in instance group. - // "UNDECLARED_PROPERTIES" - When undeclared properties in the schema are - // present - // "UNREACHABLE" - A given scope cannot be reached. - 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 []*InstanceGroupManagerAggregatedListWarningData `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 or default values are - // omitted from API requests. See + // "VM_FAMILY_CLOUD_TPU_DEVICE_CT3" + // "VM_FAMILY_CLOUD_TPU_LITE_DEVICE_CT5L" + // "VM_FAMILY_CLOUD_TPU_LITE_POD_SLICE_CT5LP" + // "VM_FAMILY_CLOUD_TPU_LITE_POD_SLICE_CT6E" + // "VM_FAMILY_CLOUD_TPU_POD_SLICE_CT3P" + // "VM_FAMILY_CLOUD_TPU_POD_SLICE_CT4P" + // "VM_FAMILY_CLOUD_TPU_POD_SLICE_CT5P" + // "VM_FAMILY_CLOUD_TPU_POD_SLICE_TPU7X" + VmFamily string `json:"vmFamily,omitempty"` + // WorkloadType: Workload type. Use for TPU reservations. + // + // Possible values: + // "BATCH" - Reserved resources will be optimized for BATCH workloads, such + // as ML + // training. + // "SERVING" - Reserved resources will be optimized for SERVING workloads, + // such as ML + // inference. + // "UNSPECIFIED" + WorkloadType string `json:"workloadType,omitempty"` + // ForceSendFields is a list of field names (e.g. "AcceleratorCount") to + // unconditionally include in API requests. By default, fields with empty or + // default values are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. 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. See + // NullFields is a list of field names (e.g. "AcceleratorCount") to include in + // API requests with the JSON null value. By default, fields with empty values + // are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } -func (s *InstanceGroupManagerAggregatedListWarning) MarshalJSON() ([]byte, error) { - type NoMethod InstanceGroupManagerAggregatedListWarning - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s FutureResourcesSpecAggregateResources) MarshalJSON() ([]byte, error) { + type NoMethod FutureResourcesSpecAggregateResources + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -type InstanceGroupManagerAggregatedListWarningData 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 or default values are +type FutureResourcesSpecLocalSsdPartition struct { + // DiskInterface: Disk interface. Defaults to SCSI. + // + // Possible values: + // "NVME" + // "SCSI" + DiskInterface string `json:"diskInterface,omitempty"` + // DiskSizeGb: The size of the disk in GB. + DiskSizeGb int64 `json:"diskSizeGb,omitempty,string"` + // ForceSendFields is a list of field names (e.g. "DiskInterface") to + // unconditionally include in API requests. By default, fields with empty or + // default values are omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + ForceSendFields []string `json:"-"` + // NullFields is a list of field names (e.g. "DiskInterface") to include in API + // requests with the JSON null value. By default, fields with empty values are // omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s FutureResourcesSpecLocalSsdPartition) MarshalJSON() ([]byte, error) { + type NoMethod FutureResourcesSpecLocalSsdPartition + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +// FutureResourcesSpecLocationPolicy: Specification of locations to create +// resources in. +type FutureResourcesSpecLocationPolicy struct { + // Locations: Preferences for specified locations. + // Keys of the map are locations - zones, in format of 'zones/'. + // Values are preferences for the zones. + // If a zone is not specified in this map, it is ALLOWed. + Locations map[string]FutureResourcesSpecLocationPolicyLocation `json:"locations,omitempty"` + // ForceSendFields is a list of field names (e.g. "Locations") to + // unconditionally include in API requests. By default, fields with empty or + // default values are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. 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. See + // NullFields is a list of field names (e.g. "Locations") to include in API + // requests with the JSON null value. By default, fields with empty values are + // omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } -func (s *InstanceGroupManagerAggregatedListWarningData) MarshalJSON() ([]byte, error) { - type NoMethod InstanceGroupManagerAggregatedListWarningData - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s FutureResourcesSpecLocationPolicy) MarshalJSON() ([]byte, error) { + type NoMethod FutureResourcesSpecLocationPolicy + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -type InstanceGroupManagerAllInstancesConfig struct { - // Properties: Properties to set on all instances in the group. You can add or - // modify properties using the instanceGroupManagers.patch or - // regionInstanceGroupManagers.patch. After setting allInstancesConfig on the - // group, you must update the group's instances to apply the configuration. To - // apply the configuration, set the group's updatePolicy.type field to use - // proactive updates or use the applyUpdatesToInstances method. - Properties *InstancePropertiesPatch `json:"properties,omitempty"` - // ForceSendFields is a list of field names (e.g. "Properties") to +// FutureResourcesSpecLocationPolicyLocation: Preference for a single specified +// location. +type FutureResourcesSpecLocationPolicyLocation struct { + // Preference: Preference for this location. + // + // Possible values: + // "ALLOW" - Location is allowed for use. + // "DENY" - Location is prohibited. + // "PREFERENCE_UNSPECIFIED" - Default value, unused. + Preference string `json:"preference,omitempty"` + // ForceSendFields is a list of field names (e.g. "Preference") to // unconditionally include in API requests. By default, fields with empty or // default values are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. ForceSendFields []string `json:"-"` - // NullFields is a list of field names (e.g. "Properties") to include in API + // NullFields is a list of field names (e.g. "Preference") to include in API // requests with the JSON null value. By default, fields with empty values are // omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } -func (s *InstanceGroupManagerAllInstancesConfig) MarshalJSON() ([]byte, error) { - type NoMethod InstanceGroupManagerAllInstancesConfig - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s FutureResourcesSpecLocationPolicyLocation) MarshalJSON() ([]byte, error) { + type NoMethod FutureResourcesSpecLocationPolicyLocation + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -type InstanceGroupManagerAutoHealingPolicy struct { - // HealthCheck: The URL for the health check that signals autohealing. - HealthCheck string `json:"healthCheck,omitempty"` - // InitialDelaySec: The initial delay is the number of seconds that a new VM - // takes to initialize and run its startup script. During a VM's initial delay - // period, the MIG ignores unsuccessful health checks because the VM might be - // in the startup process. This prevents the MIG from prematurely recreating a - // VM. If the health check receives a healthy response during the initial - // delay, it indicates that the startup process is complete and the VM is - // ready. The value of initial delay must be between 0 and 3600 seconds. The - // default value is 0. - InitialDelaySec int64 `json:"initialDelaySec,omitempty"` - // ForceSendFields is a list of field names (e.g. "HealthCheck") to +type FutureResourcesSpecSpecificSKUResources struct { + // InstanceCount: Size of the request, in instance count. + InstanceCount int64 `json:"instanceCount,omitempty,string"` + // LocalSsdPartitions: Local SSD partitions. You do not have to include SSD + // partitions that + // are built in the machine type. + LocalSsdPartitions []*FutureResourcesSpecLocalSsdPartition `json:"localSsdPartitions,omitempty"` + // MachineType: The machine type to use for instances that will use the + // reservation. + // This field only accepts machine type names. e.g. n2-standard-4 + // and does not accept machine type full or partial url. + // e.g. + // projects/my-l7ilb-project/zones/us-central1-a/machineTypes/n2-standard-4. + // Use for GPU reservations. + MachineType string `json:"machineType,omitempty"` + // ForceSendFields is a list of field names (e.g. "InstanceCount") to // unconditionally include in API requests. By default, fields with empty or // default values are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. ForceSendFields []string `json:"-"` - // NullFields is a list of field names (e.g. "HealthCheck") to include in API + // NullFields is a list of field names (e.g. "InstanceCount") to include in API // requests with the JSON null value. By default, fields with empty values are // omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } -func (s *InstanceGroupManagerAutoHealingPolicy) MarshalJSON() ([]byte, error) { - type NoMethod InstanceGroupManagerAutoHealingPolicy - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s FutureResourcesSpecSpecificSKUResources) MarshalJSON() ([]byte, error) { + type NoMethod FutureResourcesSpecSpecificSKUResources + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -type InstanceGroupManagerInstanceLifecyclePolicy struct { - // DefaultActionOnFailure: The action that a MIG performs on a failed or an - // unhealthy VM. A VM is marked as unhealthy when the application running on - // that VM fails a health check. Valid values are - REPAIR (default): MIG - // automatically repairs a failed or an unhealthy VM by recreating it. For more - // information, see About repairing VMs in a MIG. - DO_NOTHING: MIG does not - // repair a failed or an unhealthy VM. +// FutureResourcesSpecTargetResources: Specification of reserved resources. +type FutureResourcesSpecTargetResources struct { + AggregateResources *FutureResourcesSpecAggregateResources `json:"aggregateResources,omitempty"` + SpecificSkuResources *FutureResourcesSpecSpecificSKUResources `json:"specificSkuResources,omitempty"` + // ForceSendFields is a list of field names (e.g. "AggregateResources") to + // unconditionally include in API requests. By default, fields with empty or + // default values are omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + ForceSendFields []string `json:"-"` + // NullFields is a list of field names (e.g. "AggregateResources") to include + // in API requests with the JSON null value. By default, fields with empty + // values are omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s FutureResourcesSpecTargetResources) MarshalJSON() ([]byte, error) { + type NoMethod FutureResourcesSpecTargetResources + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +type GRPCHealthCheck struct { + // GrpcServiceName: The gRPC service name for the health check. This field is + // optional. The + // value of grpc_service_name has the following meanings by convention: // - // Possible values: - // "DO_NOTHING" - MIG does not repair a failed or an unhealthy VM. - // "REPAIR" - (Default) MIG automatically repairs a failed or an unhealthy VM - // by recreating it. For more information, see About repairing VMs in a MIG. - DefaultActionOnFailure string `json:"defaultActionOnFailure,omitempty"` - // ForceUpdateOnRepair: A bit indicating whether to forcefully apply the - // group's latest configuration when repairing a VM. Valid options are: - NO - // (default): If configuration updates are available, they are not forcefully - // applied during repair. Instead, configuration updates are applied according - // to the group's update policy. - YES: If configuration updates are available, - // they are applied during repair. + // - Empty service_name means the overall status of all services at + // the + // backend. + // + // - Non-empty service_name means the health of that gRPC service, as + // defined + // by the owner of the service. + // + // The grpc_service_name can only be ASCII. + GrpcServiceName string `json:"grpcServiceName,omitempty"` + // Port: The TCP port number to which the health check prober sends packets. + // Valid + // values are 1 through 65535. + Port int64 `json:"port,omitempty"` + // PortName: Not supported. + PortName string `json:"portName,omitempty"` + // PortSpecification: Specifies how a port is selected for health checking. Can + // be one of the + // following values: + // USE_FIXED_PORT: Specifies a port number explicitly using theport field in + // the health check. Supported by backend services + // for passthrough load balancers and backend services for proxy + // load + // balancers. Not supported by target pools. The health check supports + // all + // backends supported by the backend service provided the backend can be + // health checked. For example, GCE_VM_IP network endpoint + // groups, GCE_VM_IP_PORT network endpoint groups, and instance + // group backends. + // USE_NAMED_PORT: Not supported. + // USE_SERVING_PORT: Provides an indirect method of specifying + // the health check port by referring to the backend service. Only supported + // by backend services for proxy load balancers. Not supported by target + // pools. Not supported by backend services for passthrough load + // balancers. + // Supports all backends that can be health checked; for example,GCE_VM_IP_PORT + // network endpoint groups and instance group + // backends. + // + // For GCE_VM_IP_PORT network endpoint group backends, the health + // check uses the port number specified for each endpoint in the + // network + // endpoint group. For instance group backends, the health check uses the + // port number determined by looking up the backend service's named port in + // the instance group's list of named ports. // // Possible values: - // "NO" - // "YES" - ForceUpdateOnRepair string `json:"forceUpdateOnRepair,omitempty"` - // ForceSendFields is a list of field names (e.g. "DefaultActionOnFailure") to + // "USE_FIXED_PORT" - The port number in the health check's port is used for + // health + // checking. Applies to network endpoint group and instance group backends. + // "USE_NAMED_PORT" - Not supported. + // "USE_SERVING_PORT" - For network endpoint group backends, the health check + // uses the port number + // specified on each endpoint in the network endpoint group. For instance + // group backends, the health check uses the port number specified for + // the + // backend service's named port defined in the instance group's named ports. + PortSpecification string `json:"portSpecification,omitempty"` + // ForceSendFields is a list of field names (e.g. "GrpcServiceName") to // unconditionally include in API requests. By default, fields with empty or // default values are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. ForceSendFields []string `json:"-"` - // NullFields is a list of field names (e.g. "DefaultActionOnFailure") to - // include in API requests with the JSON null value. By default, fields with - // empty values are omitted from API requests. See + // NullFields is a list of field names (e.g. "GrpcServiceName") to include in + // API requests with the JSON null value. By default, fields with empty values + // are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } -func (s *InstanceGroupManagerInstanceLifecyclePolicy) MarshalJSON() ([]byte, error) { - type NoMethod InstanceGroupManagerInstanceLifecyclePolicy - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s GRPCHealthCheck) MarshalJSON() ([]byte, error) { + type NoMethod GRPCHealthCheck + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -// InstanceGroupManagerList: [Output Only] A list of managed instance groups. -type InstanceGroupManagerList struct { - // Id: [Output Only] Unique identifier for the resource; defined by the server. - Id string `json:"id,omitempty"` - // Items: A list of InstanceGroupManager resources. - Items []*InstanceGroupManager `json:"items,omitempty"` - // Kind: [Output Only] The resource type, which is always - // compute#instanceGroupManagerList for a list of managed instance groups. - 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"` - // SelfLink: [Output Only] Server-defined URL for this resource. - SelfLink string `json:"selfLink,omitempty"` - // Warning: [Output Only] Informational warning message. - Warning *InstanceGroupManagerListWarning `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 or default values are - // omitted from API requests. See +type GRPCTLSHealthCheck struct { + // GrpcServiceName: The gRPC service name for the health check. This field is + // optional. The + // value of grpc_service_name has the following meanings by convention: + // + // - Empty service_name means the overall status of all services at + // the + // backend. + // + // - Non-empty service_name means the health of that gRPC service, as + // defined + // by the owner of the service. + // + // The grpc_service_name can only be ASCII. + GrpcServiceName string `json:"grpcServiceName,omitempty"` + // Port: The TCP port number to which the health check prober sends packets. + // Valid + // values are 1 through 65535. + Port int64 `json:"port,omitempty"` + // PortSpecification: Specifies how a port is selected for health checking. Can + // be one of the + // following values: + // USE_FIXED_PORT: Specifies a port number explicitly using theport field in + // the health check. Supported by backend services + // for passthrough load balancers and backend services for proxy + // load + // balancers. Not supported by target pools. The health check supports + // all + // backends supported by the backend service provided the backend can be + // health checked. For example, GCE_VM_IP network endpoint + // groups, GCE_VM_IP_PORT network endpoint groups, and instance + // group backends. + // USE_NAMED_PORT: Not supported. + // USE_SERVING_PORT: Provides an indirect method of specifying + // the health check port by referring to the backend service. Only supported + // by backend services for proxy load balancers. Not supported by target + // pools. Not supported by backend services for passthrough load + // balancers. + // Supports all backends that can be health checked; for example,GCE_VM_IP_PORT + // network endpoint groups and instance group + // backends. + // + // For GCE_VM_IP_PORT network endpoint group backends, the health + // check uses the port number specified for each endpoint in the + // network + // endpoint group. For instance group backends, the health check uses the + // port number determined by looking up the backend service's named port in + // the instance group's list of named ports. + // + // Possible values: + // "USE_FIXED_PORT" - The port number in the health check's port is used for + // health + // checking. Applies to network endpoint group and instance group backends. + // "USE_NAMED_PORT" - Not supported. + // "USE_SERVING_PORT" - For network endpoint group backends, the health check + // uses the port number + // specified on each endpoint in the network endpoint group. For instance + // group backends, the health check uses the port number specified for + // the + // backend service's named port defined in the instance group's named ports. + PortSpecification string `json:"portSpecification,omitempty"` + // ForceSendFields is a list of field names (e.g. "GrpcServiceName") to + // unconditionally include in API requests. By default, fields with empty or + // default values are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. 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. See + // NullFields is a list of field names (e.g. "GrpcServiceName") to include in + // API requests with the JSON null value. By default, fields with empty values + // are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } -func (s *InstanceGroupManagerList) MarshalJSON() ([]byte, error) { - type NoMethod InstanceGroupManagerList - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s GRPCTLSHealthCheck) MarshalJSON() ([]byte, error) { + type NoMethod GRPCTLSHealthCheck + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -// InstanceGroupManagerListWarning: [Output Only] Informational warning -// message. -type InstanceGroupManagerListWarning 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" - Warning about failed cleanup of transient changes made - // by a failed operation. - // "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was created. - // "DEPRECATED_TYPE_USED" - When deploying and at least one of the resources - // has a type marked as deprecated - // "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk that is - // larger than image size. - // "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the - // resources has a type marked as experimental - // "EXTERNAL_API_WARNING" - Warning that is present in an external api call - // "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been - // overridden. Deprecated unused field. - // "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an injected - // kernel, which is deprecated. - // "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB" - A WEIGHTED_MAGLEV backend - // service is associated with a health check that is not of type - // HTTP/HTTPS/HTTP2. - // "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a - // exceedingly large number of resources - // "LIST_OVERHEAD_QUOTA_EXCEED" - Resource can't be retrieved due to list - // overhead quota exceed which captures the amount of resources filtered out by - // user-defined list filter. - // "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type - // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is not - // assigned to an instance on the network. - // "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot ip - // forward. - // "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE" - The route's nextHopInstance - // URL refers to an instance that does not have an ipv6 interface on the same - // network as the route. - // "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL refers to - // an instance that does not exist. - // "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance URL - // refers to an instance that is not on the same network as the route. - // "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not have a - // status of RUNNING. - // "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to continue - // the process despite the mentioned error. - // "NO_RESULTS_ON_PAGE" - No results are present on a particular list page. - // "PARTIAL_SUCCESS" - Success is reported, but some results may be missing - // due to errors - // "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource that - // requires a TOS they have not accepted. - // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a resource is - // in use. - // "RESOURCE_NOT_DELETED" - One or more of the resources set to auto-delete - // could not be deleted because they were in use. - // "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is - // ignored. - // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in instance - // group manager is valid as such, but its application does not make a lot of - // sense, because it allows only single instance in instance group. - // "UNDECLARED_PROPERTIES" - When undeclared properties in the schema are - // present - // "UNREACHABLE" - A given scope cannot be reached. - 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 []*InstanceGroupManagerListWarningData `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 or default values are - // omitted from API requests. See +type GetVersionOperationMetadata struct { + InlineSbomInfo *GetVersionOperationMetadataSbomInfo `json:"inlineSbomInfo,omitempty"` + // ForceSendFields is a list of field names (e.g. "InlineSbomInfo") to + // unconditionally include in API requests. By default, fields with empty or + // default values are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. 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. See + // NullFields is a list of field names (e.g. "InlineSbomInfo") to include in + // API requests with the JSON null value. By default, fields with empty values + // are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } -func (s *InstanceGroupManagerListWarning) MarshalJSON() ([]byte, error) { - type NoMethod InstanceGroupManagerListWarning - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s GetVersionOperationMetadata) MarshalJSON() ([]byte, error) { + type NoMethod GetVersionOperationMetadata + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -type InstanceGroupManagerListWarningData 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 or default values are - // omitted from API requests. See +type GetVersionOperationMetadataSbomInfo struct { + // CurrentComponentVersions: A mapping of components to their currently-applied + // versions or other + // appropriate identifiers. + CurrentComponentVersions map[string]string `json:"currentComponentVersions,omitempty"` + // TargetComponentVersions: A mapping of components to their target versions or + // other appropriate + // identifiers. + TargetComponentVersions map[string]string `json:"targetComponentVersions,omitempty"` + // ForceSendFields is a list of field names (e.g. "CurrentComponentVersions") + // to unconditionally include in API requests. By default, fields with empty or + // default values are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. 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. See + // NullFields is a list of field names (e.g. "CurrentComponentVersions") to + // include in API requests with the JSON null value. By default, fields with + // empty values are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } -func (s *InstanceGroupManagerListWarningData) MarshalJSON() ([]byte, error) { - type NoMethod InstanceGroupManagerListWarningData - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s GetVersionOperationMetadataSbomInfo) MarshalJSON() ([]byte, error) { + type NoMethod GetVersionOperationMetadataSbomInfo + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -// InstanceGroupManagerResizeRequest: InstanceGroupManagerResizeRequest -// represents a request to create a number of VMs: either immediately or by -// queuing the request for the specified time. This resize request is nested -// under InstanceGroupManager and the VMs created by this request are added to -// the owning InstanceGroupManager. -type InstanceGroupManagerResizeRequest struct { - // CreationTimestamp: [Output Only] The creation timestamp for this resize - // request in RFC3339 text format. - CreationTimestamp string `json:"creationTimestamp,omitempty"` - // Description: An optional description of this resource. +type GlobalAddressesMoveRequest struct { + // Description: An optional destination address description if intended to be + // different + // from the source. Description string `json:"description,omitempty"` - // Id: [Output Only] A unique identifier for this resource type. The server - // generates this identifier. - Id uint64 `json:"id,omitempty,string"` - // Kind: [Output Only] The resource type, which is always - // compute#instanceGroupManagerResizeRequest for resize requests. - Kind string `json:"kind,omitempty"` - // Name: The name of this resize request. The name must be 1-63 characters - // long, and comply with RFC1035. - Name string `json:"name,omitempty"` - // RequestedRunDuration: Requested run duration for instances that will be - // created by this request. At the end of the run duration instance will be - // deleted. - RequestedRunDuration *Duration `json:"requestedRunDuration,omitempty"` - // ResizeBy: The number of instances to be created by this resize request. The - // group's target size will be increased by this number. - ResizeBy int64 `json:"resizeBy,omitempty"` - // SelfLink: [Output Only] The URL for this resize request. The server defines - // this URL. - SelfLink string `json:"selfLink,omitempty"` - // SelfLinkWithId: [Output Only] Server-defined URL for this resource with the - // resource id. - SelfLinkWithId string `json:"selfLinkWithId,omitempty"` - // State: [Output only] Current state of the request. + // DestinationAddress: The URL of the destination address to move to. This can + // be a full or + // partial URL. For example, the following are all valid URLs to a address: // - // Possible values: - // "ACCEPTED" - The request was created successfully and was accepted for - // provisioning when the capacity becomes available. - // "CANCELLED" - The request is cancelled. - // "CREATING" - Resize request is being created and may still fail creation. - // "FAILED" - The request failed before or during provisioning. If the - // request fails during provisioning, any VMs that were created during - // provisioning are rolled back and removed from the MIG. - // "STATE_UNSPECIFIED" - Default value. This value should never be returned. - // "SUCCEEDED" - The request succeeded. - State string `json:"state,omitempty"` - // Status: [Output only] Status of the request. - Status *InstanceGroupManagerResizeRequestStatus `json:"status,omitempty"` - // Zone: [Output Only] The URL of a zone where the resize request is located. - // Populated only for zonal resize requests. - Zone string `json:"zone,omitempty"` + // - + // https://www.googleapis.com/compute/v1/projects/project/global/addresses/address + // + // - projects/project/global/addresses/address + // + // + // Note that destination project must be different from the source project. + // So/global/addresses/address is not valid partial url. + DestinationAddress string `json:"destinationAddress,omitempty"` + // ForceSendFields is a list of field names (e.g. "Description") to + // unconditionally include in API requests. By default, fields with empty or + // default values are omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + ForceSendFields []string `json:"-"` + // NullFields is a list of field names (e.g. "Description") to include in API + // requests with the JSON null value. By default, fields with empty values are + // omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} - // ServerResponse contains the HTTP response code and headers from the server. - googleapi.ServerResponse `json:"-"` - // ForceSendFields is a list of field names (e.g. "CreationTimestamp") to +func (s GlobalAddressesMoveRequest) MarshalJSON() ([]byte, error) { + type NoMethod GlobalAddressesMoveRequest + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +type GlobalNetworkEndpointGroupsAttachEndpointsRequest struct { + // NetworkEndpoints: The list of network endpoints to be attached. + NetworkEndpoints []*NetworkEndpoint `json:"networkEndpoints,omitempty"` + // ForceSendFields is a list of field names (e.g. "NetworkEndpoints") to // unconditionally include in API requests. By default, fields with empty or // default values are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. ForceSendFields []string `json:"-"` - // NullFields is a list of field names (e.g. "CreationTimestamp") to include in + // NullFields is a list of field names (e.g. "NetworkEndpoints") to include in // API requests with the JSON null value. By default, fields with empty values // are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } -func (s *InstanceGroupManagerResizeRequest) MarshalJSON() ([]byte, error) { - type NoMethod InstanceGroupManagerResizeRequest - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s GlobalNetworkEndpointGroupsAttachEndpointsRequest) MarshalJSON() ([]byte, error) { + type NoMethod GlobalNetworkEndpointGroupsAttachEndpointsRequest + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -type InstanceGroupManagerResizeRequestStatus struct { - // Error: [Output only] Fatal errors encountered during the queueing or - // provisioning phases of the ResizeRequest that caused the transition to the - // FAILED state. Contrary to the last_attempt errors, this field is final and - // errors are never removed from here, as the ResizeRequest is not going to - // retry. - Error *InstanceGroupManagerResizeRequestStatusError `json:"error,omitempty"` - // LastAttempt: [Output only] Information about the last attempt to fulfill the - // request. The value is temporary since the ResizeRequest can retry, as long - // as it's still active and the last attempt value can either be cleared or - // replaced with a different error. Since ResizeRequest retries infrequently, - // the value may be stale and no longer show an active problem. The value is - // cleared when ResizeRequest transitions to the final state (becomes - // inactive). If the final state is FAILED the error describing it will be - // storred in the "error" field only. - LastAttempt *InstanceGroupManagerResizeRequestStatusLastAttempt `json:"lastAttempt,omitempty"` - // ForceSendFields is a list of field names (e.g. "Error") to unconditionally - // include in API requests. By default, fields with empty or default values are - // omitted from API requests. See +type GlobalNetworkEndpointGroupsDetachEndpointsRequest struct { + // NetworkEndpoints: The list of network endpoints to be detached. + NetworkEndpoints []*NetworkEndpoint `json:"networkEndpoints,omitempty"` + // ForceSendFields is a list of field names (e.g. "NetworkEndpoints") to + // unconditionally include in API requests. By default, fields with empty or + // default values are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. ForceSendFields []string `json:"-"` - // NullFields is a list of field names (e.g. "Error") to include in API - // requests with the JSON null value. By default, fields with empty values are - // omitted from API requests. See + // NullFields is a list of field names (e.g. "NetworkEndpoints") to include in + // API requests with the JSON null value. By default, fields with empty values + // are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } -func (s *InstanceGroupManagerResizeRequestStatus) MarshalJSON() ([]byte, error) { - type NoMethod InstanceGroupManagerResizeRequestStatus - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s GlobalNetworkEndpointGroupsDetachEndpointsRequest) MarshalJSON() ([]byte, error) { + type NoMethod GlobalNetworkEndpointGroupsDetachEndpointsRequest + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -// InstanceGroupManagerResizeRequestStatusError: [Output only] Fatal errors -// encountered during the queueing or provisioning phases of the ResizeRequest -// that caused the transition to the FAILED state. Contrary to the last_attempt -// errors, this field is final and errors are never removed from here, as the -// ResizeRequest is not going to retry. -type InstanceGroupManagerResizeRequestStatusError struct { - // Errors: [Output Only] The array of errors encountered while processing this - // operation. - Errors []*InstanceGroupManagerResizeRequestStatusErrorErrors `json:"errors,omitempty"` - // ForceSendFields is a list of field names (e.g. "Errors") to unconditionally - // include in API requests. By default, fields with empty or default values are - // omitted from API requests. See +type GlobalOrganizationSetPolicyRequest struct { + // Bindings: Flatten Policy to create a backward compatible + // wire-format. + // Deprecated. Use 'policy' to specify bindings. + Bindings []*Binding `json:"bindings,omitempty"` + // Etag: Flatten Policy to create a backward compatible + // wire-format. + // Deprecated. Use 'policy' to specify the etag. + Etag string `json:"etag,omitempty"` + // Policy: REQUIRED: The complete policy to be applied to the 'resource'. The + // size of + // the policy is limited to a few 10s of KB. An empty policy is in general + // a + // valid policy but certain services (like Projects) might reject them. + Policy *Policy `json:"policy,omitempty"` + // ForceSendFields is a list of field names (e.g. "Bindings") to + // unconditionally include in API requests. By default, fields with empty or + // default values are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. ForceSendFields []string `json:"-"` - // NullFields is a list of field names (e.g. "Errors") to include in API + // NullFields is a list of field names (e.g. "Bindings") to include in API // requests with the JSON null value. By default, fields with empty values are // omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } -func (s *InstanceGroupManagerResizeRequestStatusError) MarshalJSON() ([]byte, error) { - type NoMethod InstanceGroupManagerResizeRequestStatusError - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s GlobalOrganizationSetPolicyRequest) MarshalJSON() ([]byte, error) { + type NoMethod GlobalOrganizationSetPolicyRequest + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -type InstanceGroupManagerResizeRequestStatusErrorErrors struct { - // Code: [Output Only] The error type identifier for this error. - Code string `json:"code,omitempty"` - // ErrorDetails: [Output Only] An optional list of messages that contain the - // error details. There is a set of defined message types to use for providing - // details.The syntax depends on the error code. For example, QuotaExceededInfo - // will have details when the error code is QUOTA_EXCEEDED. - ErrorDetails []*InstanceGroupManagerResizeRequestStatusErrorErrorsErrorDetails `json:"errorDetails,omitempty"` - // Location: [Output Only] Indicates the field in the request that caused the - // error. This property is optional. - Location string `json:"location,omitempty"` - // Message: [Output Only] An optional, human-readable error message. - 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 or default values are - // omitted from API requests. See +type GlobalSetLabelsRequest struct { + // LabelFingerprint: The fingerprint of the previous set of labels for this + // resource, + // used to detect conflicts. The fingerprint is initially generated by + // Compute + // Engine and changes after every request to modify or update labels. You + // must + // always provide an up-to-date fingerprint hash when updating or + // changing + // labels, otherwise the request will fail with error412 conditionNotMet. Make + // a get() request to the + // resource to get the latest fingerprint. + LabelFingerprint string `json:"labelFingerprint,omitempty"` + // Labels: A list of labels to apply for this resource. Each label must comply + // with + // the + // requirements for labels. For example,"webserver-frontend": "images". A label + // value can also be + // empty (e.g. "my-label": ""). + Labels map[string]string `json:"labels,omitempty"` + // ForceSendFields is a list of field names (e.g. "LabelFingerprint") to + // unconditionally include in API requests. By default, fields with empty or + // default values are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. 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. See + // NullFields is a list of field names (e.g. "LabelFingerprint") to include in + // API requests with the JSON null value. By default, fields with empty values + // are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } -func (s *InstanceGroupManagerResizeRequestStatusErrorErrors) MarshalJSON() ([]byte, error) { - type NoMethod InstanceGroupManagerResizeRequestStatusErrorErrors - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s GlobalSetLabelsRequest) MarshalJSON() ([]byte, error) { + type NoMethod GlobalSetLabelsRequest + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -type InstanceGroupManagerResizeRequestStatusErrorErrorsErrorDetails struct { - ErrorInfo *ErrorInfo `json:"errorInfo,omitempty"` - Help *Help `json:"help,omitempty"` - LocalizedMessage *LocalizedMessage `json:"localizedMessage,omitempty"` - QuotaInfo *QuotaExceededInfo `json:"quotaInfo,omitempty"` - // ForceSendFields is a list of field names (e.g. "ErrorInfo") to +type GlobalSetPolicyRequest struct { + // Bindings: Flatten Policy to create a backward compatible + // wire-format. + // Deprecated. Use 'policy' to specify bindings. + Bindings []*Binding `json:"bindings,omitempty"` + // Etag: Flatten Policy to create a backward compatible + // wire-format. + // Deprecated. Use 'policy' to specify the etag. + Etag string `json:"etag,omitempty"` + // Policy: REQUIRED: The complete policy to be applied to the 'resource'. The + // size of + // the policy is limited to a few 10s of KB. An empty policy is in general + // a + // valid policy but certain services (like Projects) might reject them. + Policy *Policy `json:"policy,omitempty"` + // ForceSendFields is a list of field names (e.g. "Bindings") to // unconditionally include in API requests. By default, fields with empty or // default values are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. ForceSendFields []string `json:"-"` - // NullFields is a list of field names (e.g. "ErrorInfo") to include in API + // NullFields is a list of field names (e.g. "Bindings") to include in API // requests with the JSON null value. By default, fields with empty values are // omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } -func (s *InstanceGroupManagerResizeRequestStatusErrorErrorsErrorDetails) MarshalJSON() ([]byte, error) { - type NoMethod InstanceGroupManagerResizeRequestStatusErrorErrorsErrorDetails - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s GlobalSetPolicyRequest) MarshalJSON() ([]byte, error) { + type NoMethod GlobalSetPolicyRequest + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -type InstanceGroupManagerResizeRequestStatusLastAttempt struct { - // Error: Errors that prevented the ResizeRequest to be fulfilled. - Error *InstanceGroupManagerResizeRequestStatusLastAttemptError `json:"error,omitempty"` - // ForceSendFields is a list of field names (e.g. "Error") to unconditionally - // include in API requests. By default, fields with empty or default values are - // omitted from API requests. See +// GlobalVmExtensionPolicy: Message describing GlobalVmExtensionPolicy object. +type GlobalVmExtensionPolicy struct { + // CreationTimestamp: Output only. [Output Only] Creation timestamp + // inRFC3339 + // text format. + CreationTimestamp string `json:"creationTimestamp,omitempty"` + // Description: An optional description of this resource. Provide this property + // when you + // create the resource. + Description string `json:"description,omitempty"` + // ExtensionPolicies: Required. Map from extension (eg: "cloudops") to its + // policy configuration. + // The key is the name of the extension. + ExtensionPolicies map[string]GlobalVmExtensionPolicyExtensionPolicy `json:"extensionPolicies,omitempty"` + // Id: Output only. [Output Only] The unique identifier for the resource. This + // identifier is + // defined by the server. + Id uint64 `json:"id,omitempty,string"` + // InstanceSelectors: Optional. Selector to target VMs for a policy. + // There is a logical "AND" between instance_selectors. + InstanceSelectors []*GlobalVmExtensionPolicyInstanceSelector `json:"instanceSelectors,omitempty"` + // Kind: Output only. [Output Only] Type of the resource. + // Alwayscompute#globalVmExtensionPolicy for globalVmExtensionPolicies. + Kind string `json:"kind,omitempty"` + // Name: Name of the resource. Provided by the client when the resource is + // created. + // The name must be 1-63 characters long, and comply withRFC1035. + // 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. + Name string `json:"name,omitempty"` + // Priority: Optional. Used to resolve conflicts when multiple policies are + // active for the same + // extension. Defaults to 0. + // + // Larger the number, higher the priority. When the priority is the same, + // the policy with the newer create time has higher priority. + Priority int64 `json:"priority,omitempty"` + // RolloutOperation: Required. The rollout strategy and status. + RolloutOperation *GlobalVmExtensionPolicyRolloutOperation `json:"rolloutOperation,omitempty"` + // ScopedResourceStatus: Output only. [Output Only] The scoped resource status. + // It's only for tracking the + // purging status of the policy. + // + // Possible values: + // "SCOPED_RESOURCE_STATUS_DELETING" - The zonal policies are being deleted. + // "SCOPED_RESOURCE_STATUS_UNSPECIFIED" - Default value. This value is + // unused. + ScopedResourceStatus string `json:"scopedResourceStatus,omitempty"` + // SelfLink: Output only. [Output Only] Server-defined fully-qualified URL for + // this resource. + SelfLink string `json:"selfLink,omitempty"` + // SelfLinkWithId: Output only. [Output Only] Server-defined URL for this + // resource's resource id. + SelfLinkWithId string `json:"selfLinkWithId,omitempty"` + // UpdateTimestamp: Output only. [Output Only] Update timestamp inRFC3339 + // text format. + UpdateTimestamp string `json:"updateTimestamp,omitempty"` + + // ServerResponse contains the HTTP response code and headers from the server. + googleapi.ServerResponse `json:"-"` + // ForceSendFields is a list of field names (e.g. "CreationTimestamp") to + // unconditionally include in API requests. By default, fields with empty or + // default values are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. ForceSendFields []string `json:"-"` - // NullFields is a list of field names (e.g. "Error") to include in API - // requests with the JSON null value. By default, fields with empty values are - // omitted from API requests. See + // NullFields is a list of field names (e.g. "CreationTimestamp") to include in + // API requests with the JSON null value. By default, fields with empty values + // are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } -func (s *InstanceGroupManagerResizeRequestStatusLastAttempt) MarshalJSON() ([]byte, error) { - type NoMethod InstanceGroupManagerResizeRequestStatusLastAttempt - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s GlobalVmExtensionPolicy) MarshalJSON() ([]byte, error) { + type NoMethod GlobalVmExtensionPolicy + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -// InstanceGroupManagerResizeRequestStatusLastAttemptError: Errors that -// prevented the ResizeRequest to be fulfilled. -type InstanceGroupManagerResizeRequestStatusLastAttemptError struct { - // Errors: [Output Only] The array of errors encountered while processing this - // operation. - Errors []*InstanceGroupManagerResizeRequestStatusLastAttemptErrorErrors `json:"errors,omitempty"` - // ForceSendFields is a list of field names (e.g. "Errors") to unconditionally - // include in API requests. By default, fields with empty or default values are - // omitted from API requests. See +// GlobalVmExtensionPolicyExtensionPolicy: Policy for a single extension. +type GlobalVmExtensionPolicyExtensionPolicy struct { + // PinnedVersion: Optional. The version pinning for the extension. + // If empty, the extension will be installed with the latest version + // released by the extension producer. + PinnedVersion string `json:"pinnedVersion,omitempty"` + // StringConfig: Optional. String configuration. Any string payload that the + // extension + // understands. + StringConfig string `json:"stringConfig,omitempty"` + // ForceSendFields is a list of field names (e.g. "PinnedVersion") to + // unconditionally include in API requests. By default, fields with empty or + // default values are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. ForceSendFields []string `json:"-"` - // NullFields is a list of field names (e.g. "Errors") to include in API + // NullFields is a list of field names (e.g. "PinnedVersion") to include in API // requests with the JSON null value. By default, fields with empty values are // omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } -func (s *InstanceGroupManagerResizeRequestStatusLastAttemptError) MarshalJSON() ([]byte, error) { - type NoMethod InstanceGroupManagerResizeRequestStatusLastAttemptError - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s GlobalVmExtensionPolicyExtensionPolicy) MarshalJSON() ([]byte, error) { + type NoMethod GlobalVmExtensionPolicyExtensionPolicy + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -type InstanceGroupManagerResizeRequestStatusLastAttemptErrorErrors struct { - // Code: [Output Only] The error type identifier for this error. - Code string `json:"code,omitempty"` - // ErrorDetails: [Output Only] An optional list of messages that contain the - // error details. There is a set of defined message types to use for providing - // details.The syntax depends on the error code. For example, QuotaExceededInfo - // will have details when the error code is QUOTA_EXCEEDED. - ErrorDetails []*InstanceGroupManagerResizeRequestStatusLastAttemptErrorErrorsErrorDetails `json:"errorDetails,omitempty"` - // Location: [Output Only] Indicates the field in the request that caused the - // error. This property is optional. - Location string `json:"location,omitempty"` - // Message: [Output Only] An optional, human-readable error message. - 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 or default values are - // omitted from API requests. See +// GlobalVmExtensionPolicyInstanceSelector: Selector to target VMs for a zone +// VM extension policy. +type GlobalVmExtensionPolicyInstanceSelector struct { + // LabelSelector: Optional. Labels within the LabelSelector are OR'd. + LabelSelector *GlobalVmExtensionPolicyLabelSelector `json:"labelSelector,omitempty"` + // ForceSendFields is a list of field names (e.g. "LabelSelector") to + // unconditionally include in API requests. By default, fields with empty or + // default values are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. 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. See + // NullFields is a list of field names (e.g. "LabelSelector") to include in API + // requests with the JSON null value. By default, fields with empty values are + // omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } -func (s *InstanceGroupManagerResizeRequestStatusLastAttemptErrorErrors) MarshalJSON() ([]byte, error) { - type NoMethod InstanceGroupManagerResizeRequestStatusLastAttemptErrorErrors - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s GlobalVmExtensionPolicyInstanceSelector) MarshalJSON() ([]byte, error) { + type NoMethod GlobalVmExtensionPolicyInstanceSelector + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -type InstanceGroupManagerResizeRequestStatusLastAttemptErrorErrorsErrorDetails struct { - ErrorInfo *ErrorInfo `json:"errorInfo,omitempty"` - Help *Help `json:"help,omitempty"` - LocalizedMessage *LocalizedMessage `json:"localizedMessage,omitempty"` - QuotaInfo *QuotaExceededInfo `json:"quotaInfo,omitempty"` - // ForceSendFields is a list of field names (e.g. "ErrorInfo") to +// GlobalVmExtensionPolicyLabelSelector: A LabelSelector is applicable for a VM +// only if it matches all labels in +// the LabelSelector. +type GlobalVmExtensionPolicyLabelSelector struct { + // InclusionLabels: Optional. Labels as key value pairs. + // A VM should contain all the pairs specified in this map to be + // selected; + // Labels within the LabelSelector are OR'ed. + InclusionLabels map[string]string `json:"inclusionLabels,omitempty"` + // ForceSendFields is a list of field names (e.g. "InclusionLabels") to // unconditionally include in API requests. By default, fields with empty or // default values are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. ForceSendFields []string `json:"-"` - // NullFields is a list of field names (e.g. "ErrorInfo") to include in API - // requests with the JSON null value. By default, fields with empty values are - // omitted from API requests. See + // NullFields is a list of field names (e.g. "InclusionLabels") to include in + // API requests with the JSON null value. By default, fields with empty values + // are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } -func (s *InstanceGroupManagerResizeRequestStatusLastAttemptErrorErrorsErrorDetails) MarshalJSON() ([]byte, error) { - type NoMethod InstanceGroupManagerResizeRequestStatusLastAttemptErrorErrorsErrorDetails - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s GlobalVmExtensionPolicyLabelSelector) MarshalJSON() ([]byte, error) { + type NoMethod GlobalVmExtensionPolicyLabelSelector + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -// InstanceGroupManagerResizeRequestsListResponse: [Output Only] A list of -// resize requests. -type InstanceGroupManagerResizeRequestsListResponse struct { +// GlobalVmExtensionPolicyList: Response to list global VM extension policy +// resources. +type GlobalVmExtensionPolicyList struct { + Etag string `json:"etag,omitempty"` // Id: [Output Only] Unique identifier for the resource; defined by the server. Id string `json:"id,omitempty"` - // Items: A list of resize request resources. - Items []*InstanceGroupManagerResizeRequest `json:"items,omitempty"` - // Kind: [Output Only] Type of the resource. Always - // compute#instanceGroupManagerResizeRequestList for a list of resize requests. + // Items: A list of GlobalVmExtensionPolicy resources. + Items []*GlobalVmExtensionPolicy `json:"items,omitempty"` + // Kind: Output only. Type of resource. 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. + // results for + // list requests. If the number of results is larger thanmaxResults, 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"` - // SelfLink: [Output Only] Server-defined URL for this resource. + // SelfLink: Output only. [Output Only] Server-defined URL for this resource. SelfLink string `json:"selfLink,omitempty"` + // Unreachables: Output only. [Output Only] Unreachable resources. + Unreachables []string `json:"unreachables,omitempty"` // Warning: [Output Only] Informational warning message. - Warning *InstanceGroupManagerResizeRequestsListResponseWarning `json:"warning,omitempty"` + Warning *GlobalVmExtensionPolicyListWarning `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 + // ForceSendFields is a list of field names (e.g. "Etag") to unconditionally // include in API requests. By default, fields with empty or default values are // omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. ForceSendFields []string `json:"-"` - // NullFields is a list of field names (e.g. "Id") to include in API requests + // NullFields is a list of field names (e.g. "Etag") to include in API requests // with the JSON null value. By default, fields with empty values are omitted // from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } -func (s *InstanceGroupManagerResizeRequestsListResponse) MarshalJSON() ([]byte, error) { - type NoMethod InstanceGroupManagerResizeRequestsListResponse - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s GlobalVmExtensionPolicyList) MarshalJSON() ([]byte, error) { + type NoMethod GlobalVmExtensionPolicyList + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -// InstanceGroupManagerResizeRequestsListResponseWarning: [Output Only] -// Informational warning message. -type InstanceGroupManagerResizeRequestsListResponseWarning 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. +// GlobalVmExtensionPolicyListWarning: [Output Only] Informational warning +// message. +type GlobalVmExtensionPolicyListWarning 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" - Warning about failed cleanup of transient changes made - // by a failed operation. + // by a failed + // operation. // "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was created. // "DEPRECATED_TYPE_USED" - When deploying and at least one of the resources - // has a type marked as deprecated + // has a type marked as + // deprecated // "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk that is // larger than image size. // "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the - // resources has a type marked as experimental + // resources has a type marked as + // experimental // "EXTERNAL_API_WARNING" - Warning that is present in an external api call // "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been - // overridden. Deprecated unused field. + // overridden. + // Deprecated unused field. // "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an injected // kernel, which is deprecated. // "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB" - A WEIGHTED_MAGLEV backend - // service is associated with a health check that is not of type - // HTTP/HTTPS/HTTP2. + // service is associated with a health check that is + // not of type HTTP/HTTPS/HTTP2. // "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a // exceedingly large number of resources // "LIST_OVERHEAD_QUOTA_EXCEED" - Resource can't be retrieved due to list - // overhead quota exceed which captures the amount of resources filtered out by + // overhead quota exceed + // which captures the amount of resources filtered out by // user-defined list filter. // "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is not - // assigned to an instance on the network. + // assigned to an instance on the + // network. // "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot ip // forward. // "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE" - The route's nextHopInstance - // URL refers to an instance that does not have an ipv6 interface on the same - // network as the route. + // URL refers to an instance that does not have an + // ipv6 interface on the same network as the route. // "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL refers to // an instance that does not exist. // "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance URL - // refers to an instance that is not on the same network as the route. + // refers to an instance that is not on the + // same network as the route. // "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not have a // status of RUNNING. // "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to continue - // the process despite the mentioned error. + // the process despite + // the mentioned error. // "NO_RESULTS_ON_PAGE" - No results are present on a particular list page. // "PARTIAL_SUCCESS" - Success is reported, but some results may be missing // due to errors + // "QUOTA_INFO_UNAVAILABLE" - Quota information is not available to client + // requests (e.g: + // regions.list). // "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource that - // requires a TOS they have not accepted. + // requires a TOS they have not + // accepted. // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a resource is // in use. // "RESOURCE_NOT_DELETED" - One or more of the resources set to auto-delete - // could not be deleted because they were in use. + // could not be deleted + // because they were in use. // "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is // ignored. // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in instance - // group manager is valid as such, but its application does not make a lot of - // sense, because it allows only single instance in instance group. + // group manager is valid as such, but + // its application does not make a lot of sense, because it allows only + // single instance in instance group. // "UNDECLARED_PROPERTIES" - When undeclared properties in the schema are // present // "UNREACHABLE" - A given scope cannot be reached. 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 []*InstanceGroupManagerResizeRequestsListResponseWarningData `json:"data,omitempty"` + // Data: [Output Only] Metadata about this warning in key: + // value format. For example: + // + // "data": [ + // { + // "key": "scope", + // "value": "zones/us-east1-d" + // } + Data []*GlobalVmExtensionPolicyListWarningData `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 @@ -16986,19 +21139,22 @@ type InstanceGroupManagerResizeRequestsListResponseWarning struct { NullFields []string `json:"-"` } -func (s *InstanceGroupManagerResizeRequestsListResponseWarning) MarshalJSON() ([]byte, error) { - type NoMethod InstanceGroupManagerResizeRequestsListResponseWarning - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s GlobalVmExtensionPolicyListWarning) MarshalJSON() ([]byte, error) { + type NoMethod GlobalVmExtensionPolicyListWarning + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -type InstanceGroupManagerResizeRequestsListResponseWarningData 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). +type GlobalVmExtensionPolicyListWarningData 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"` @@ -17015,613 +21171,827 @@ type InstanceGroupManagerResizeRequestsListResponseWarningData struct { NullFields []string `json:"-"` } -func (s *InstanceGroupManagerResizeRequestsListResponseWarningData) MarshalJSON() ([]byte, error) { - type NoMethod InstanceGroupManagerResizeRequestsListResponseWarningData - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s GlobalVmExtensionPolicyListWarningData) MarshalJSON() ([]byte, error) { + type NoMethod GlobalVmExtensionPolicyListWarningData + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -type InstanceGroupManagerStatus struct { - // AllInstancesConfig: [Output only] Status of all-instances configuration on - // the group. - AllInstancesConfig *InstanceGroupManagerStatusAllInstancesConfig `json:"allInstancesConfig,omitempty"` - // Autoscaler: [Output Only] The URL of the Autoscaler that targets this - // instance group manager. - Autoscaler string `json:"autoscaler,omitempty"` - // IsStable: [Output Only] A bit indicating whether the managed instance group - // is in a stable state. A stable state means that: none of the instances in - // the managed instance group is currently undergoing any type of change (for - // example, creation, restart, or deletion); no future changes are scheduled - // for instances in the managed instance group; and the managed instance group - // itself is not being modified. - IsStable bool `json:"isStable,omitempty"` - // Stateful: [Output Only] Stateful status of the given Instance Group Manager. - Stateful *InstanceGroupManagerStatusStateful `json:"stateful,omitempty"` - // VersionTarget: [Output Only] A status of consistency of Instances' versions - // with their target version specified by version field on Instance Group - // Manager. - VersionTarget *InstanceGroupManagerStatusVersionTarget `json:"versionTarget,omitempty"` - // ForceSendFields is a list of field names (e.g. "AllInstancesConfig") to +// GlobalVmExtensionPolicyRolloutOperation: Represents the rollout operation +type GlobalVmExtensionPolicyRolloutOperation struct { + // RolloutInput: Required. The rollout input which defines the rollout plan. + RolloutInput *GlobalVmExtensionPolicyRolloutOperationRolloutInput `json:"rolloutInput,omitempty"` + // RolloutStatus: Output only. [Output Only] The rollout status of the policy. + RolloutStatus *GlobalVmExtensionPolicyRolloutOperationRolloutStatus `json:"rolloutStatus,omitempty"` + // ForceSendFields is a list of field names (e.g. "RolloutInput") to // unconditionally include in API requests. By default, fields with empty or // default values are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. ForceSendFields []string `json:"-"` - // NullFields is a list of field names (e.g. "AllInstancesConfig") to include - // in API requests with the JSON null value. By default, fields with empty - // values are omitted from API requests. See + // NullFields is a list of field names (e.g. "RolloutInput") to include in API + // requests with the JSON null value. By default, fields with empty values are + // omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } -func (s *InstanceGroupManagerStatus) MarshalJSON() ([]byte, error) { - type NoMethod InstanceGroupManagerStatus - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s GlobalVmExtensionPolicyRolloutOperation) MarshalJSON() ([]byte, error) { + type NoMethod GlobalVmExtensionPolicyRolloutOperation + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -type InstanceGroupManagerStatusAllInstancesConfig struct { - // CurrentRevision: [Output Only] Current all-instances configuration revision. - // This value is in RFC3339 text format. - CurrentRevision string `json:"currentRevision,omitempty"` - // Effective: [Output Only] A bit indicating whether this configuration has - // been applied to all managed instances in the group. - Effective bool `json:"effective,omitempty"` - // ForceSendFields is a list of field names (e.g. "CurrentRevision") to +type GlobalVmExtensionPolicyRolloutOperationRolloutInput struct { + // ConflictBehavior: Optional. Specifies the behavior of the rollout if a + // conflict is detected in a + // project during a rollout. This only applies to `insert` and + // `update` + // methods. + // + // A conflict occurs in the following cases: + // + // * `insert` method: If the zonal policy already exists when the insert + // happens. + // * `update` method: If the zonal policy was modified by a zonal API call + // outside of this rollout. + // + // Possible values are the following: + // + // * "" (empty string): If a conflict occurs, the local value is not + // overwritten. This is the default behavior. + // * "overwrite": If a conflict occurs, the local value is overwritten + // with the rollout value. + ConflictBehavior string `json:"conflictBehavior,omitempty"` + // Name: Optional. The name of the rollout + // plan. + // Ex. + // projects//locations/global/rolloutPlans/. + Name string `json:"name,omitempty"` + // PredefinedRolloutPlan: Optional. Specifies the predefined rollout plan for + // the policy. Valid values + // are `SLOW_ROLLOUT` and `FAST_ROLLOUT`. The recommended value + // is + // `SLOW_ROLLOUT` for progressive rollout. For more information, see + // Rollout + // plans for global policies. + // + // Possible values: + // "FAST_ROLLOUT" + // "ROLLOUT_PLAN_UNSPECIFIED" + // "SLOW_ROLLOUT" + PredefinedRolloutPlan string `json:"predefinedRolloutPlan,omitempty"` + // RetryUuid: Optional. The UUID that identifies a policy rollout retry attempt + // for update and + // delete operations. Set this field only when retrying a rollout for + // an + // existing extension policy. + // + // * `update` method: Lets you retry policy rollout without changes. + // An error occurs if you set retry_uuid but the policy is modified. + // * `delete` method: Lets you retry policy deletion rollout if the + // previous deletion rollout is not finished and the policy is in the + // DELETING state. If you set this field when the policy is not in the + // DELETING state, an error occurs. + RetryUuid string `json:"retryUuid,omitempty"` + // ForceSendFields is a list of field names (e.g. "ConflictBehavior") to // unconditionally include in API requests. By default, fields with empty or // default values are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. ForceSendFields []string `json:"-"` - // NullFields is a list of field names (e.g. "CurrentRevision") to include in + // NullFields is a list of field names (e.g. "ConflictBehavior") to include in // API requests with the JSON null value. By default, fields with empty values // are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } -func (s *InstanceGroupManagerStatusAllInstancesConfig) MarshalJSON() ([]byte, error) { - type NoMethod InstanceGroupManagerStatusAllInstancesConfig - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s GlobalVmExtensionPolicyRolloutOperationRolloutInput) MarshalJSON() ([]byte, error) { + type NoMethod GlobalVmExtensionPolicyRolloutOperationRolloutInput + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -type InstanceGroupManagerStatusStateful struct { - // HasStatefulConfig: [Output Only] A bit indicating whether the managed - // instance group has stateful configuration, that is, if you have configured - // any items in a stateful policy or in per-instance configs. The group might - // report that it has no stateful configuration even when there is still some - // preserved state on a managed instance, for example, if you have deleted all - // PICs but not yet applied those deletions. - HasStatefulConfig bool `json:"hasStatefulConfig,omitempty"` - // PerInstanceConfigs: [Output Only] Status of per-instance configurations on - // the instances. - PerInstanceConfigs *InstanceGroupManagerStatusStatefulPerInstanceConfigs `json:"perInstanceConfigs,omitempty"` - // ForceSendFields is a list of field names (e.g. "HasStatefulConfig") to +type GlobalVmExtensionPolicyRolloutOperationRolloutStatus struct { + // CurrentRollouts: Output only. [Output Only] The current rollouts for the + // latest version of the + // resource. There should be only one current rollout, but for + // scalability, we make it repeated. + CurrentRollouts []*GlobalVmExtensionPolicyRolloutOperationRolloutStatusRolloutMetadata `json:"currentRollouts,omitempty"` + // PreviousRollout: Output only. [Output Only] The last completed rollout + // resource. This field will not + // be populated until the first rollout is completed. + PreviousRollout *GlobalVmExtensionPolicyRolloutOperationRolloutStatusRolloutMetadata `json:"previousRollout,omitempty"` + // ForceSendFields is a list of field names (e.g. "CurrentRollouts") to // unconditionally include in API requests. By default, fields with empty or // default values are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. ForceSendFields []string `json:"-"` - // NullFields is a list of field names (e.g. "HasStatefulConfig") to include in + // NullFields is a list of field names (e.g. "CurrentRollouts") to include in // API requests with the JSON null value. By default, fields with empty values // are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } -func (s *InstanceGroupManagerStatusStateful) MarshalJSON() ([]byte, error) { - type NoMethod InstanceGroupManagerStatusStateful - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s GlobalVmExtensionPolicyRolloutOperationRolloutStatus) MarshalJSON() ([]byte, error) { + type NoMethod GlobalVmExtensionPolicyRolloutOperationRolloutStatus + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -type InstanceGroupManagerStatusStatefulPerInstanceConfigs struct { - // AllEffective: A bit indicating if all of the group's per-instance - // configurations (listed in the output of a listPerInstanceConfigs API call) - // have status EFFECTIVE or there are no per-instance-configs. - AllEffective bool `json:"allEffective,omitempty"` - // ForceSendFields is a list of field names (e.g. "AllEffective") to +type GlobalVmExtensionPolicyRolloutOperationRolloutStatusRolloutMetadata struct { + // LocationRolloutStatus: Output only. [Output Only] The rollout status for + // each location. The list of the + // locations is the same as the list of locations in the rollout plan. + LocationRolloutStatus map[string]GlobalVmExtensionPolicyRolloutOperationRolloutStatusRolloutMetadataLocationRolloutStatus `json:"locationRolloutStatus,omitempty"` + // Rollout: Output only. [Output Only] The name of the rollout. + // Ex. projects//locations/global/rollouts/. + Rollout string `json:"rollout,omitempty"` + // RolloutPlan: Output only. [Output Only] The name of the rollout + // plan. + // Ex. + // projects//locations/global/rolloutPlans/. + RolloutPlan string `json:"rolloutPlan,omitempty"` + // State: Output only. [Output Only] The overall state of the rollout. + // + // Possible values: + // "STATE_CANCELLED" - Iteration was explicitly cancelled. + // "STATE_COMPLETED" - Iteration completed, with all actions being + // successful. + // "STATE_FAILED" - Iteration completed, with failures. + // "STATE_PAUSED" - The rollout is paused. + // "STATE_PROCESSING" - Iteration is in progress. + // "STATE_UNKNOWN" - Impossible to determine current state of the iteration. + // "STATE_UNSPECIFIED" - Default value. This value is unused. + State string `json:"state,omitempty"` + // ForceSendFields is a list of field names (e.g. "LocationRolloutStatus") to // unconditionally include in API requests. By default, fields with empty or // default values are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. ForceSendFields []string `json:"-"` - // NullFields is a list of field names (e.g. "AllEffective") to include in API - // requests with the JSON null value. By default, fields with empty values are - // omitted from API requests. See + // NullFields is a list of field names (e.g. "LocationRolloutStatus") to + // include in API requests with the JSON null value. By default, fields with + // empty values are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } -func (s *InstanceGroupManagerStatusStatefulPerInstanceConfigs) MarshalJSON() ([]byte, error) { - type NoMethod InstanceGroupManagerStatusStatefulPerInstanceConfigs - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s GlobalVmExtensionPolicyRolloutOperationRolloutStatusRolloutMetadata) MarshalJSON() ([]byte, error) { + type NoMethod GlobalVmExtensionPolicyRolloutOperationRolloutStatusRolloutMetadata + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -type InstanceGroupManagerStatusVersionTarget struct { - // IsReached: [Output Only] A bit indicating whether version target has been - // reached in this managed instance group, i.e. all instances are in their - // target version. Instances' target version are specified by version field on - // Instance Group Manager. - IsReached bool `json:"isReached,omitempty"` - // ForceSendFields is a list of field names (e.g. "IsReached") to - // unconditionally include in API requests. By default, fields with empty or - // default values are omitted from API requests. See +type GlobalVmExtensionPolicyRolloutOperationRolloutStatusRolloutMetadataLocationRolloutStatus struct { + // State: Output only. [Output Only] The state of the location rollout. + // + // Possible values: + // "LOCATION_ROLLOUT_STATE_COMPLETED" - The location rollout is completed. + // "LOCATION_ROLLOUT_STATE_FAILED" - The location rollout has failed. + // "LOCATION_ROLLOUT_STATE_NOT_STARTED" - The location rollout has not + // started. + // "LOCATION_ROLLOUT_STATE_SKIPPED" - The location rollout is skipped. + // "LOCATION_ROLLOUT_STATE_UNSPECIFIED" - Default value. This value is + // unused. + State string `json:"state,omitempty"` + // ForceSendFields is a list of field names (e.g. "State") to unconditionally + // include in API requests. By default, fields with empty or default values are + // omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. ForceSendFields []string `json:"-"` - // NullFields is a list of field names (e.g. "IsReached") to include in API + // NullFields is a list of field names (e.g. "State") to include in API // requests with the JSON null value. By default, fields with empty values are // omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } -func (s *InstanceGroupManagerStatusVersionTarget) MarshalJSON() ([]byte, error) { - type NoMethod InstanceGroupManagerStatusVersionTarget - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s GlobalVmExtensionPolicyRolloutOperationRolloutStatusRolloutMetadataLocationRolloutStatus) MarshalJSON() ([]byte, error) { + type NoMethod GlobalVmExtensionPolicyRolloutOperationRolloutStatusRolloutMetadataLocationRolloutStatus + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -type InstanceGroupManagerUpdatePolicy struct { - // InstanceRedistributionType: The instance redistribution policy for regional - // managed instance groups. Valid values are: - PROACTIVE (default): The group - // attempts to maintain an even distribution of VM instances across zones in - // the region. - NONE: For non-autoscaled groups, proactive redistribution is - // disabled. - // - // Possible values: - // "NONE" - No action is being proactively performed in order to bring this - // IGM to its target instance distribution. - // "PROACTIVE" - This IGM will actively converge to its target instance - // distribution. - InstanceRedistributionType string `json:"instanceRedistributionType,omitempty"` - // MaxSurge: The maximum number of instances that can be created above the - // specified targetSize during the update process. This value can be either a - // fixed number or, if the group has 10 or more instances, a percentage. If you - // set a percentage, the number of instances is rounded if necessary. The - // default value for maxSurge is a fixed value equal to the number of zones in - // which the managed instance group operates. At least one of either maxSurge - // or maxUnavailable must be greater than 0. Learn more about maxSurge. - MaxSurge *FixedOrPercent `json:"maxSurge,omitempty"` - // MaxUnavailable: The maximum number of instances that can be unavailable - // during the update process. An instance is considered available if all of the - // following conditions are satisfied: - The instance's status is RUNNING. - If - // there is a health check on the instance group, the instance's health check - // status must be HEALTHY at least once. If there is no health check on the - // group, then the instance only needs to have a status of RUNNING to be - // considered available. This value can be either a fixed number or, if the - // group has 10 or more instances, a percentage. If you set a percentage, the - // number of instances is rounded if necessary. The default value for - // maxUnavailable is a fixed value equal to the number of zones in which the - // managed instance group operates. At least one of either maxSurge or - // maxUnavailable must be greater than 0. Learn more about maxUnavailable. - MaxUnavailable *FixedOrPercent `json:"maxUnavailable,omitempty"` - // MinimalAction: Minimal action to be taken on an instance. Use this option to - // minimize disruption as much as possible or to apply a more disruptive action - // than is necessary. - To limit disruption as much as possible, set the - // minimal action to REFRESH. If your update requires a more disruptive action, - // Compute Engine performs the necessary action to execute the update. - To - // apply a more disruptive action than is strictly necessary, set the minimal - // action to RESTART or REPLACE. For example, Compute Engine does not need to - // restart a VM to change its metadata. But if your application reads instance - // metadata only when a VM is restarted, you can set the minimal action to - // RESTART in order to pick up metadata changes. - // - // Possible values: - // "NONE" - Do not perform any action. - // "REFRESH" - Do not stop the instance. - // "REPLACE" - (Default.) Replace the instance according to the replacement - // method option. - // "RESTART" - Stop the instance and start it again. - MinimalAction string `json:"minimalAction,omitempty"` - // MostDisruptiveAllowedAction: Most disruptive action that is allowed to be - // taken on an instance. You can specify either NONE to forbid any actions, - // REFRESH to avoid restarting the VM and to limit disruption as much as - // possible. RESTART to allow actions that can be applied without instance - // replacing or REPLACE to allow all possible actions. If the Updater - // determines that the minimal update action needed is more disruptive than - // most disruptive allowed action you specify it will not perform the update at - // all. - // - // Possible values: - // "NONE" - Do not perform any action. - // "REFRESH" - Do not stop the instance. - // "REPLACE" - (Default.) Replace the instance according to the replacement - // method option. - // "RESTART" - Stop the instance and start it again. - MostDisruptiveAllowedAction string `json:"mostDisruptiveAllowedAction,omitempty"` - // ReplacementMethod: What action should be used to replace instances. See - // minimal_action.REPLACE - // - // Possible values: - // "RECREATE" - Instances will be recreated (with the same name) - // "SUBSTITUTE" - Default option: instances will be deleted and created (with - // a new name) - ReplacementMethod string `json:"replacementMethod,omitempty"` - // Type: The type of update process. You can specify either PROACTIVE so that - // the MIG automatically updates VMs to the latest configurations or - // OPPORTUNISTIC so that you can select the VMs that you want to update. +// GroupMaintenanceInfo: Maintenance Info for ReservationBlocks. +type GroupMaintenanceInfo struct { + // InstanceMaintenanceOngoingCount: Describes number of instances that have + // ongoing maintenance. + InstanceMaintenanceOngoingCount int64 `json:"instanceMaintenanceOngoingCount,omitempty"` + // InstanceMaintenancePendingCount: Describes number of instances that have + // pending maintenance. + InstanceMaintenancePendingCount int64 `json:"instanceMaintenancePendingCount,omitempty"` + // MaintenanceOngoingCount: Progress for ongoing maintenance for this group of + // VMs/hosts. + // Describes number of hosts in the block that have ongoing maintenance. + MaintenanceOngoingCount int64 `json:"maintenanceOngoingCount,omitempty"` + // MaintenancePendingCount: Progress for ongoing maintenance for this group of + // VMs/hosts. + // Describes number of hosts in the block that have pending maintenance. + MaintenancePendingCount int64 `json:"maintenancePendingCount,omitempty"` + // SchedulingType: The type of maintenance for the reservation. // // Possible values: - // "OPPORTUNISTIC" - MIG will apply new configurations to existing VMs only - // when you selectively target specific or all VMs to be updated. - // "PROACTIVE" - MIG will automatically apply new configurations to all or a - // subset of existing VMs and also to new VMs that are added to the group. - Type string `json:"type,omitempty"` - // ForceSendFields is a list of field names (e.g. "InstanceRedistributionType") - // to unconditionally include in API requests. By default, fields with empty or - // default values are omitted from API requests. See + // "GROUPED" - Maintenance on all reserved instances in the reservation is + // synchronized. + // "GROUP_MAINTENANCE_TYPE_UNSPECIFIED" - Unknown maintenance type. + // "INDEPENDENT" - Maintenance is not synchronized for this reservation. + // Instead, each + // instance has its own maintenance window. + SchedulingType string `json:"schedulingType,omitempty"` + // SubblockInfraMaintenanceOngoingCount: Describes number of subblock + // Infrastructure that has ongoing maintenance. + // Here, Subblock Infrastructure Maintenance pertains to upstream + // hardware + // contained in the Subblock that is necessary for a VM Family(e.g. + // NVLink + // Domains). Not all VM Families will support this field. + SubblockInfraMaintenanceOngoingCount int64 `json:"subblockInfraMaintenanceOngoingCount,omitempty"` + // SubblockInfraMaintenancePendingCount: Describes number of subblock + // Infrastructure that has pending maintenance. + // Here, Subblock Infrastructure Maintenance pertains to upstream hardware + // contained in the Subblock that is necessary for a VM Family (e.g. NVLink + // Domains). Not all VM Families will support this field. + SubblockInfraMaintenancePendingCount int64 `json:"subblockInfraMaintenancePendingCount,omitempty"` + // UpcomingGroupMaintenance: Maintenance information on this group of VMs. + UpcomingGroupMaintenance *UpcomingMaintenance `json:"upcomingGroupMaintenance,omitempty"` + // ForceSendFields is a list of field names (e.g. + // "InstanceMaintenanceOngoingCount") to unconditionally include in API + // requests. By default, fields with empty or default values are omitted from + // API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. ForceSendFields []string `json:"-"` - // NullFields is a list of field names (e.g. "InstanceRedistributionType") to - // include in API requests with the JSON null value. By default, fields with + // NullFields is a list of field names (e.g. "InstanceMaintenanceOngoingCount") + // to include in API requests with the JSON null value. By default, fields with // empty values are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } -func (s *InstanceGroupManagerUpdatePolicy) MarshalJSON() ([]byte, error) { - type NoMethod InstanceGroupManagerUpdatePolicy - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s GroupMaintenanceInfo) MarshalJSON() ([]byte, error) { + type NoMethod GroupMaintenanceInfo + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -type InstanceGroupManagerVersion struct { - // InstanceTemplate: The URL of the instance template that is specified for - // this managed instance group. The group uses this template to create new - // instances in the managed instance group until the `targetSize` for this - // version is reached. The templates for existing instances in the group do not - // change unless you run recreateInstances, run applyUpdatesToInstances, or set - // the group's updatePolicy.type to PROACTIVE; in those cases, existing - // instances are updated until the `targetSize` for this version is reached. - InstanceTemplate string `json:"instanceTemplate,omitempty"` - // Name: Name of the version. Unique among all versions in the scope of this - // managed instance group. - Name string `json:"name,omitempty"` - // TargetSize: Specifies the intended number of instances to be created from - // the instanceTemplate. The final number of instances created from the - // template will be equal to: - If expressed as a fixed number, the minimum of - // either targetSize.fixed or instanceGroupManager.targetSize is used. - if - // expressed as a percent, the targetSize would be (targetSize.percent/100 * - // InstanceGroupManager.targetSize) If there is a remainder, the number is - // rounded. If unset, this version will update any remaining instances not - // updated by another version. Read Starting a canary update for more - // information. - TargetSize *FixedOrPercent `json:"targetSize,omitempty"` - // ForceSendFields is a list of field names (e.g. "InstanceTemplate") to - // unconditionally include in API requests. By default, fields with empty or - // default values are omitted from API requests. See +// GuestAttributes: A guest attributes entry. +type GuestAttributes struct { + // Kind: Output only. [Output Only] Type of the resource. + // Alwayscompute#guestAttributes for guest attributes entry. + Kind string `json:"kind,omitempty"` + // QueryPath: The path to be queried. This can be the default namespace ('') or + // a + // nested namespace ('\/') or a specified key + // ('\/\'). + QueryPath string `json:"queryPath,omitempty"` + // QueryValue: Output only. [Output Only] The value of the requested queried + // path. + QueryValue *GuestAttributesValue `json:"queryValue,omitempty"` + // SelfLink: Output only. [Output Only] Server-defined URL for this resource. + SelfLink string `json:"selfLink,omitempty"` + // VariableKey: The key to search for. + VariableKey string `json:"variableKey,omitempty"` + // VariableValue: Output only. [Output Only] The value found for the requested + // key. + VariableValue string `json:"variableValue,omitempty"` + + // ServerResponse contains the HTTP response code and headers from the server. + googleapi.ServerResponse `json:"-"` + // ForceSendFields is a list of field names (e.g. "Kind") to unconditionally + // include in API requests. By default, fields with empty or default values are + // omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. ForceSendFields []string `json:"-"` - // NullFields is a list of field names (e.g. "InstanceTemplate") to include in - // API requests with the JSON null value. By default, fields with empty values - // are omitted from API requests. See + // NullFields is a list of field names (e.g. "Kind") to include in API requests + // with the JSON null value. By default, fields with empty values are omitted + // from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } -func (s *InstanceGroupManagerVersion) MarshalJSON() ([]byte, error) { - type NoMethod InstanceGroupManagerVersion - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s GuestAttributes) MarshalJSON() ([]byte, error) { + type NoMethod GuestAttributes + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -type InstanceGroupManagersAbandonInstancesRequest struct { - // Instances: The URLs of one or more instances to abandon. This can be a full - // URL or a partial URL, such as zones/[ZONE]/instances/[INSTANCE_NAME]. - Instances []string `json:"instances,omitempty"` - // ForceSendFields is a list of field names (e.g. "Instances") to - // unconditionally include in API requests. By default, fields with empty or - // default values are omitted from API requests. See +// GuestAttributesEntry: A guest attributes namespace/key/value entry. +type GuestAttributesEntry struct { + // Key: Key for the guest attribute entry. + Key string `json:"key,omitempty"` + // Namespace: Namespace for the guest attribute entry. + Namespace string `json:"namespace,omitempty"` + // Value: Value for the guest attribute entry. + 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 or default values are + // omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. ForceSendFields []string `json:"-"` - // NullFields is a list of field names (e.g. "Instances") to include in API - // requests with the JSON null value. By default, fields with empty values are - // omitted from API requests. See + // 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. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } -func (s *InstanceGroupManagersAbandonInstancesRequest) MarshalJSON() ([]byte, error) { - type NoMethod InstanceGroupManagersAbandonInstancesRequest - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s GuestAttributesEntry) MarshalJSON() ([]byte, error) { + type NoMethod GuestAttributesEntry + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -// InstanceGroupManagersApplyUpdatesRequest: -// InstanceGroupManagers.applyUpdatesToInstances -type InstanceGroupManagersApplyUpdatesRequest struct { - // AllInstances: Flag to update all instances instead of specified list of - // “instances”. If the flag is set to true then the instances may not be - // specified in the request. - AllInstances bool `json:"allInstances,omitempty"` - // Instances: The list of URLs of one or more instances for which you want to - // apply updates. Each URL can be a full URL or a partial URL, such as - // zones/[ZONE]/instances/[INSTANCE_NAME]. - Instances []string `json:"instances,omitempty"` - // MinimalAction: The minimal action that you want to perform on each instance - // during the update: - REPLACE: At minimum, delete the instance and create it - // again. - RESTART: Stop the instance and start it again. - REFRESH: Do not - // stop the instance and limit disruption as much as possible. - NONE: Do not - // disrupt the instance at all. By default, the minimum action is NONE. If your - // update requires a more disruptive action than you set with this flag, the - // necessary action is performed to execute the update. - // - // Possible values: - // "NONE" - Do not perform any action. - // "REFRESH" - Do not stop the instance. - // "REPLACE" - (Default.) Replace the instance according to the replacement - // method option. - // "RESTART" - Stop the instance and start it again. - MinimalAction string `json:"minimalAction,omitempty"` - // MostDisruptiveAllowedAction: The most disruptive action that you want to - // perform on each instance during the update: - REPLACE: Delete the instance - // and create it again. - RESTART: Stop the instance and start it again. - - // REFRESH: Do not stop the instance and limit disruption as much as possible. - // - NONE: Do not disrupt the instance at all. By default, the most disruptive - // allowed action is REPLACE. If your update requires a more disruptive action - // than you set with this flag, the update request will fail. - // - // Possible values: - // "NONE" - Do not perform any action. - // "REFRESH" - Do not stop the instance. - // "REPLACE" - (Default.) Replace the instance according to the replacement - // method option. - // "RESTART" - Stop the instance and start it again. - MostDisruptiveAllowedAction string `json:"mostDisruptiveAllowedAction,omitempty"` - // ForceSendFields is a list of field names (e.g. "AllInstances") to - // unconditionally include in API requests. By default, fields with empty or - // default values are omitted from API requests. See +// GuestAttributesValue: Array of guest attribute namespace/key/value tuples. +type GuestAttributesValue struct { + Items []*GuestAttributesEntry `json:"items,omitempty"` + // ForceSendFields is a list of field names (e.g. "Items") to unconditionally + // include in API requests. By default, fields with empty or default values are + // omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. ForceSendFields []string `json:"-"` - // NullFields is a list of field names (e.g. "AllInstances") to include in API + // NullFields is a list of field names (e.g. "Items") to include in API // requests with the JSON null value. By default, fields with empty values are // omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } -func (s *InstanceGroupManagersApplyUpdatesRequest) MarshalJSON() ([]byte, error) { - type NoMethod InstanceGroupManagersApplyUpdatesRequest - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s GuestAttributesValue) MarshalJSON() ([]byte, error) { + type NoMethod GuestAttributesValue + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -// InstanceGroupManagersCreateInstancesRequest: -// InstanceGroupManagers.createInstances -type InstanceGroupManagersCreateInstancesRequest struct { - // Instances: [Required] List of specifications of per-instance configs. - Instances []*PerInstanceConfig `json:"instances,omitempty"` - // ForceSendFields is a list of field names (e.g. "Instances") to - // unconditionally include in API requests. By default, fields with empty or - // default values are omitted from API requests. See +// GuestOsFeature: Guest OS features. +type GuestOsFeature struct { + // Type: The ID of a supported feature. To add multiple values, use commas + // to + // separate values. Set to one or more of the following values: + // + // - VIRTIO_SCSI_MULTIQUEUE + // - WINDOWS + // - MULTI_IP_SUBNET + // - UEFI_COMPATIBLE + // - GVNIC + // - SEV_CAPABLE + // - SUSPEND_RESUME_COMPATIBLE + // - SEV_LIVE_MIGRATABLE_V2 + // - SEV_SNP_CAPABLE + // - TDX_CAPABLE + // - IDPF + // - SNP_SVSM_CAPABLE + // - CCA_CAPABLE + // + // + // For more information, see + // Enabling guest operating system features. + // + // Possible values: + // "BARE_METAL_LINUX_COMPATIBLE" + // "CCA_CAPABLE" + // "FEATURE_TYPE_UNSPECIFIED" + // "GVNIC" + // "IDPF" + // "MULTI_IP_SUBNET" + // "SECURE_BOOT" + // "SEV_CAPABLE" + // "SEV_LIVE_MIGRATABLE" + // "SEV_LIVE_MIGRATABLE_V2" + // "SEV_SNP_CAPABLE" + // "SNP_SVSM_CAPABLE" + // "TDX_CAPABLE" + // "UEFI_COMPATIBLE" + // "VIRTIO_SCSI_MULTIQUEUE" + // "WINDOWS" + Type string `json:"type,omitempty"` + // ForceSendFields is a list of field names (e.g. "Type") to unconditionally + // include in API requests. By default, fields with empty or default values are + // omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. ForceSendFields []string `json:"-"` - // NullFields is a list of field names (e.g. "Instances") to include in API - // requests with the JSON null value. By default, fields with empty values are - // omitted from API requests. See + // NullFields is a list of field names (e.g. "Type") to include in API requests + // with the JSON null value. By default, fields with empty values are omitted + // from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } -func (s *InstanceGroupManagersCreateInstancesRequest) MarshalJSON() ([]byte, error) { - type NoMethod InstanceGroupManagersCreateInstancesRequest - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) -} - -type InstanceGroupManagersDeleteInstancesRequest struct { - // Instances: The URLs of one or more instances to delete. This can be a full - // URL or a partial URL, such as zones/[ZONE]/instances/[INSTANCE_NAME]. Queued - // instances do not have URL and can be deleted only by name. One cannot - // specify both URLs and names in a single request. - Instances []string `json:"instances,omitempty"` - // SkipInstancesOnValidationError: Specifies whether the request should proceed - // despite the inclusion of instances that are not members of the group or that - // are already in the process of being deleted or abandoned. If this field is - // set to `false` and such an instance is specified in the request, the - // operation fails. The operation always fails if the request contains a - // malformed instance URL or a reference to an instance that exists in a zone - // or region other than the group's zone or region. - SkipInstancesOnValidationError bool `json:"skipInstancesOnValidationError,omitempty"` - // ForceSendFields is a list of field names (e.g. "Instances") to - // unconditionally include in API requests. By default, fields with empty or - // default values are omitted from API requests. See - // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more - // details. - ForceSendFields []string `json:"-"` - // NullFields is a list of field names (e.g. "Instances") to include in API - // requests with the JSON null value. By default, fields with empty values are - // omitted from API requests. See - // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. - NullFields []string `json:"-"` +func (s GuestOsFeature) MarshalJSON() ([]byte, error) { + type NoMethod GuestOsFeature + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -func (s *InstanceGroupManagersDeleteInstancesRequest) MarshalJSON() ([]byte, error) { - type NoMethod InstanceGroupManagersDeleteInstancesRequest - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) -} - -// InstanceGroupManagersDeletePerInstanceConfigsReq: -// InstanceGroupManagers.deletePerInstanceConfigs -type InstanceGroupManagersDeletePerInstanceConfigsReq struct { - // Names: The list of instance names for which we want to delete per-instance - // configs on this managed instance group. - Names []string `json:"names,omitempty"` - // ForceSendFields is a list of field names (e.g. "Names") to unconditionally +type HTTP2HealthCheck struct { + // Host: The value of the host header in the HTTP/2 health check request. If + // left + // empty (default value), the host header is set to the destination IP + // address + // to which health check packets are sent. The destination IP address + // depends + // on the type of load balancer. For details, + // see: + // https://cloud.google.com/load-balancing/docs/health-check-concepts#hc-packet-dest + Host string `json:"host,omitempty"` + // Port: The TCP port number to which the health check prober sends packets. + // The + // default value is 443. Valid values are 1 through65535. + Port int64 `json:"port,omitempty"` + // PortName: Not supported. + PortName string `json:"portName,omitempty"` + // PortSpecification: Specifies how a port is selected for health checking. Can + // be one of the + // following values: + // USE_FIXED_PORT: Specifies a port number explicitly using theport field in + // the health check. Supported by backend services + // for passthrough load balancers and backend services for proxy + // load + // balancers. Not supported by target pools. The health check supports + // all + // backends supported by the backend service provided the backend can be + // health checked. For example, GCE_VM_IP network endpoint + // groups, GCE_VM_IP_PORT network endpoint groups, and instance + // group backends. + // USE_NAMED_PORT: Not supported. + // USE_SERVING_PORT: Provides an indirect method of specifying + // the health check port by referring to the backend service. Only supported + // by backend services for proxy load balancers. Not supported by target + // pools. Not supported by backend services for passthrough load + // balancers. + // Supports all backends that can be health checked; for example,GCE_VM_IP_PORT + // network endpoint groups and instance group + // backends. + // + // For GCE_VM_IP_PORT network endpoint group backends, the health + // check uses the port number specified for each endpoint in the + // network + // endpoint group. For instance group backends, the health check uses the + // port number determined by looking up the backend service's named port in + // the instance group's list of named ports. + // + // Possible values: + // "USE_FIXED_PORT" - The port number in the health check's port is used for + // health + // checking. Applies to network endpoint group and instance group backends. + // "USE_NAMED_PORT" - Not supported. + // "USE_SERVING_PORT" - For network endpoint group backends, the health check + // uses the port number + // specified on each endpoint in the network endpoint group. For instance + // group backends, the health check uses the port number specified for + // the + // backend service's named port defined in the instance group's named ports. + PortSpecification string `json:"portSpecification,omitempty"` + // ProxyHeader: Specifies the type of proxy header to append before sending + // data to the + // backend, either NONE or PROXY_V1. The default + // is NONE. + // + // Possible values: + // "NONE" + // "PROXY_V1" + ProxyHeader string `json:"proxyHeader,omitempty"` + // RequestPath: The request path of the HTTP/2 health check request. The + // default value is/. Must comply withRFC3986. + RequestPath string `json:"requestPath,omitempty"` + // Response: Creates a content-based HTTP/2 health check. In addition to the + // required + // HTTP 200 (OK) status code, you can configure the health check to pass + // only + // when the backend sends this specific ASCII response string within the + // first + // 1024 bytes of the HTTP response body. For details, + // see: + // https://cloud.google.com/load-balancing/docs/health-check-concepts#criteria-protocol-http + Response string `json:"response,omitempty"` + // ForceSendFields is a list of field names (e.g. "Host") to unconditionally // include in API requests. By default, fields with empty or default values are // omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. ForceSendFields []string `json:"-"` - // NullFields is a list of field names (e.g. "Names") to include in API - // requests with the JSON null value. By default, fields with empty values are - // omitted from API requests. See + // NullFields is a list of field names (e.g. "Host") to include in API requests + // with the JSON null value. By default, fields with empty values are omitted + // from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } -func (s *InstanceGroupManagersDeletePerInstanceConfigsReq) MarshalJSON() ([]byte, error) { - type NoMethod InstanceGroupManagersDeletePerInstanceConfigsReq - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s HTTP2HealthCheck) MarshalJSON() ([]byte, error) { + type NoMethod HTTP2HealthCheck + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -type InstanceGroupManagersListErrorsResponse struct { - // Items: [Output Only] The list of errors of the managed instance group. - Items []*InstanceManagedByIgmError `json:"items,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"` - - // ServerResponse contains the HTTP response code and headers from the server. - googleapi.ServerResponse `json:"-"` - // ForceSendFields is a list of field names (e.g. "Items") to unconditionally +type HTTPHealthCheck struct { + // Host: The value of the host header in the HTTP health check request. If + // left + // empty (default value), the host header is set to the destination IP + // address + // to which health check packets are sent. The destination IP address + // depends + // on the type of load balancer. For details, + // see: + // https://cloud.google.com/load-balancing/docs/health-check-concepts#hc-packet-dest + Host string `json:"host,omitempty"` + // Port: The TCP port number to which the health check prober sends packets. + // The + // default value is 80. Valid values are 1 through65535. + Port int64 `json:"port,omitempty"` + // PortName: Not supported. + PortName string `json:"portName,omitempty"` + // PortSpecification: Specifies how a port is selected for health checking. Can + // be one of the + // following values: + // USE_FIXED_PORT: Specifies a port number explicitly using theport field in + // the health check. Supported by backend services + // for passthrough load balancers and backend services for proxy + // load + // balancers. Also supported in legacy HTTP health checks for target pools. + // The health check supports all backends supported by the backend + // service + // provided the backend can be health checked. For example,GCE_VM_IP network + // endpoint groups, GCE_VM_IP_PORT + // network endpoint groups, and instance group backends. + // USE_NAMED_PORT: Not supported. + // USE_SERVING_PORT: Provides an indirect method of specifying + // the health check port by referring to the backend service. Only supported + // by backend services for proxy load balancers. Not supported by target + // pools. Not supported by backend services for pass-through load + // balancers. + // Supports all backends that can be health checked; for example,GCE_VM_IP_PORT + // network endpoint groups and instance group + // backends. + // + // For GCE_VM_IP_PORT network endpoint group backends, the health + // check uses the port number specified for each endpoint in the + // network + // endpoint group. For instance group backends, the health check uses the + // port number determined by looking up the backend service's named port in + // the instance group's list of named ports. + // + // Possible values: + // "USE_FIXED_PORT" - The port number in the health check's port is used for + // health + // checking. Applies to network endpoint group and instance group backends. + // "USE_NAMED_PORT" - Not supported. + // "USE_SERVING_PORT" - For network endpoint group backends, the health check + // uses the port number + // specified on each endpoint in the network endpoint group. For instance + // group backends, the health check uses the port number specified for + // the + // backend service's named port defined in the instance group's named ports. + PortSpecification string `json:"portSpecification,omitempty"` + // ProxyHeader: Specifies the type of proxy header to append before sending + // data to the + // backend, either NONE or PROXY_V1. The default + // is NONE. + // + // Possible values: + // "NONE" + // "PROXY_V1" + ProxyHeader string `json:"proxyHeader,omitempty"` + // RequestPath: The request path of the HTTP health check request. The default + // value is/. Must comply withRFC3986. + RequestPath string `json:"requestPath,omitempty"` + // Response: Creates a content-based HTTP health check. In addition to the + // required + // HTTP 200 (OK) status code, you can configure the health check to pass + // only + // when the backend sends this specific ASCII response string within the + // first + // 1024 bytes of the HTTP response body. For details, + // see: + // https://cloud.google.com/load-balancing/docs/health-check-concepts#criteria-protocol-http + Response string `json:"response,omitempty"` + // ForceSendFields is a list of field names (e.g. "Host") to unconditionally // include in API requests. By default, fields with empty or default values are // omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. ForceSendFields []string `json:"-"` - // NullFields is a list of field names (e.g. "Items") to include in API - // requests with the JSON null value. By default, fields with empty values are - // omitted from API requests. See + // NullFields is a list of field names (e.g. "Host") to include in API requests + // with the JSON null value. By default, fields with empty values are omitted + // from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } -func (s *InstanceGroupManagersListErrorsResponse) MarshalJSON() ([]byte, error) { - type NoMethod InstanceGroupManagersListErrorsResponse - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s HTTPHealthCheck) MarshalJSON() ([]byte, error) { + type NoMethod HTTPHealthCheck + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -type InstanceGroupManagersListManagedInstancesResponse struct { - // ManagedInstances: [Output Only] The list of instances in the managed - // instance group. - ManagedInstances []*ManagedInstance `json:"managedInstances,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"` - - // ServerResponse contains the HTTP response code and headers from the server. - googleapi.ServerResponse `json:"-"` - // ForceSendFields is a list of field names (e.g. "ManagedInstances") to - // unconditionally include in API requests. By default, fields with empty or - // default values are omitted from API requests. See +type HTTPSHealthCheck struct { + // Host: The value of the host header in the HTTPS health check request. If + // left + // empty (default value), the host header is set to the destination IP + // address + // to which health check packets are sent. The destination IP address + // depends + // on the type of load balancer. For details, + // see: + // https://cloud.google.com/load-balancing/docs/health-check-concepts#hc-packet-dest + Host string `json:"host,omitempty"` + // Port: The TCP port number to which the health check prober sends packets. + // The + // default value is 443. Valid values are 1 through65535. + Port int64 `json:"port,omitempty"` + // PortName: Not supported. + PortName string `json:"portName,omitempty"` + // PortSpecification: Specifies how a port is selected for health checking. Can + // be one of the + // following values: + // USE_FIXED_PORT: Specifies a port number explicitly using theport field in + // the health check. Supported by backend services + // for passthrough load balancers and backend services for proxy + // load + // balancers. Not supported by target pools. The health check supports + // all + // backends supported by the backend service provided the backend can be + // health checked. For example, GCE_VM_IP network endpoint + // groups, GCE_VM_IP_PORT network endpoint groups, and instance + // group backends. + // USE_NAMED_PORT: Not supported. + // USE_SERVING_PORT: Provides an indirect method of specifying + // the health check port by referring to the backend service. Only supported + // by backend services for proxy load balancers. Not supported by target + // pools. Not supported by backend services for passthrough load + // balancers. + // Supports all backends that can be health checked; for example,GCE_VM_IP_PORT + // network endpoint groups and instance group + // backends. + // + // For GCE_VM_IP_PORT network endpoint group backends, the health + // check uses the port number specified for each endpoint in the + // network + // endpoint group. For instance group backends, the health check uses the + // port number determined by looking up the backend service's named port in + // the instance group's list of named ports. + // + // Possible values: + // "USE_FIXED_PORT" - The port number in the health check's port is used for + // health + // checking. Applies to network endpoint group and instance group backends. + // "USE_NAMED_PORT" - Not supported. + // "USE_SERVING_PORT" - For network endpoint group backends, the health check + // uses the port number + // specified on each endpoint in the network endpoint group. For instance + // group backends, the health check uses the port number specified for + // the + // backend service's named port defined in the instance group's named ports. + PortSpecification string `json:"portSpecification,omitempty"` + // ProxyHeader: Specifies the type of proxy header to append before sending + // data to the + // backend, either NONE or PROXY_V1. The default + // is NONE. + // + // Possible values: + // "NONE" + // "PROXY_V1" + ProxyHeader string `json:"proxyHeader,omitempty"` + // RequestPath: The request path of the HTTPS health check request. The default + // value is/. Must comply withRFC3986. + RequestPath string `json:"requestPath,omitempty"` + // Response: Creates a content-based HTTPS health check. In addition to the + // required + // HTTP 200 (OK) status code, you can configure the health check to pass + // only + // when the backend sends this specific ASCII response string within the + // first + // 1024 bytes of the HTTP response body. For details, + // see: + // https://cloud.google.com/load-balancing/docs/health-check-concepts#criteria-protocol-http + Response string `json:"response,omitempty"` + // ForceSendFields is a list of field names (e.g. "Host") to unconditionally + // include in API requests. By default, fields with empty or default values are + // omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. ForceSendFields []string `json:"-"` - // NullFields is a list of field names (e.g. "ManagedInstances") to include in - // API requests with the JSON null value. By default, fields with empty values - // are omitted from API requests. See + // NullFields is a list of field names (e.g. "Host") to include in API requests + // with the JSON null value. By default, fields with empty values are omitted + // from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } -func (s *InstanceGroupManagersListManagedInstancesResponse) MarshalJSON() ([]byte, error) { - type NoMethod InstanceGroupManagersListManagedInstancesResponse - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s HTTPSHealthCheck) MarshalJSON() ([]byte, error) { + type NoMethod HTTPSHealthCheck + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -type InstanceGroupManagersListPerInstanceConfigsResp struct { - // Items: [Output Only] The list of PerInstanceConfig. - Items []*PerInstanceConfig `json:"items,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"` - // Warning: [Output Only] Informational warning message. - Warning *InstanceGroupManagersListPerInstanceConfigsRespWarning `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. "Items") to unconditionally - // include in API requests. By default, fields with empty or default values are - // omitted from API requests. See +type HealthAggregationPoliciesScopedList struct { + // HealthAggregationPolicies: A list of HealthAggregationPolicys contained in + // this scope. + HealthAggregationPolicies []*HealthAggregationPolicy `json:"healthAggregationPolicies,omitempty"` + // Warning: Informational warning which replaces the list of health + // aggregation + // policies when the list is empty. + Warning *HealthAggregationPoliciesScopedListWarning `json:"warning,omitempty"` + // ForceSendFields is a list of field names (e.g. "HealthAggregationPolicies") + // to unconditionally include in API requests. By default, fields with empty or + // default values are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. ForceSendFields []string `json:"-"` - // NullFields is a list of field names (e.g. "Items") to include in API - // requests with the JSON null value. By default, fields with empty values are - // omitted from API requests. See + // NullFields is a list of field names (e.g. "HealthAggregationPolicies") to + // include in API requests with the JSON null value. By default, fields with + // empty values are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } -func (s *InstanceGroupManagersListPerInstanceConfigsResp) MarshalJSON() ([]byte, error) { - type NoMethod InstanceGroupManagersListPerInstanceConfigsResp - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s HealthAggregationPoliciesScopedList) MarshalJSON() ([]byte, error) { + type NoMethod HealthAggregationPoliciesScopedList + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -// InstanceGroupManagersListPerInstanceConfigsRespWarning: [Output Only] -// Informational warning message. -type InstanceGroupManagersListPerInstanceConfigsRespWarning 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. +// HealthAggregationPoliciesScopedListWarning: Informational warning which +// replaces the list of health aggregation +// policies when the list is empty. +type HealthAggregationPoliciesScopedListWarning 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" - Warning about failed cleanup of transient changes made - // by a failed operation. + // by a failed + // operation. // "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was created. // "DEPRECATED_TYPE_USED" - When deploying and at least one of the resources - // has a type marked as deprecated + // has a type marked as + // deprecated // "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk that is // larger than image size. // "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the - // resources has a type marked as experimental + // resources has a type marked as + // experimental // "EXTERNAL_API_WARNING" - Warning that is present in an external api call // "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been - // overridden. Deprecated unused field. + // overridden. + // Deprecated unused field. // "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an injected // kernel, which is deprecated. // "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB" - A WEIGHTED_MAGLEV backend - // service is associated with a health check that is not of type - // HTTP/HTTPS/HTTP2. + // service is associated with a health check that is + // not of type HTTP/HTTPS/HTTP2. // "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a // exceedingly large number of resources // "LIST_OVERHEAD_QUOTA_EXCEED" - Resource can't be retrieved due to list - // overhead quota exceed which captures the amount of resources filtered out by + // overhead quota exceed + // which captures the amount of resources filtered out by // user-defined list filter. // "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is not - // assigned to an instance on the network. + // assigned to an instance on the + // network. // "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot ip // forward. // "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE" - The route's nextHopInstance - // URL refers to an instance that does not have an ipv6 interface on the same - // network as the route. + // URL refers to an instance that does not have an + // ipv6 interface on the same network as the route. // "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL refers to // an instance that does not exist. // "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance URL - // refers to an instance that is not on the same network as the route. + // refers to an instance that is not on the + // same network as the route. // "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not have a // status of RUNNING. // "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to continue - // the process despite the mentioned error. + // the process despite + // the mentioned error. // "NO_RESULTS_ON_PAGE" - No results are present on a particular list page. // "PARTIAL_SUCCESS" - Success is reported, but some results may be missing // due to errors + // "QUOTA_INFO_UNAVAILABLE" - Quota information is not available to client + // requests (e.g: + // regions.list). // "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource that - // requires a TOS they have not accepted. + // requires a TOS they have not + // accepted. // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a resource is // in use. // "RESOURCE_NOT_DELETED" - One or more of the resources set to auto-delete - // could not be deleted because they were in use. + // could not be deleted + // because they were in use. // "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is // ignored. // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in instance - // group manager is valid as such, but its application does not make a lot of - // sense, because it allows only single instance in instance group. + // group manager is valid as such, but + // its application does not make a lot of sense, because it allows only + // single instance in instance group. // "UNDECLARED_PROPERTIES" - When undeclared properties in the schema are // present // "UNREACHABLE" - A given scope cannot be reached. 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 []*InstanceGroupManagersListPerInstanceConfigsRespWarningData `json:"data,omitempty"` + // Data: [Output Only] Metadata about this warning in key: + // value format. For example: + // + // "data": [ + // { + // "key": "scope", + // "value": "zones/us-east1-d" + // } + Data []*HealthAggregationPoliciesScopedListWarningData `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 @@ -17637,19 +22007,22 @@ type InstanceGroupManagersListPerInstanceConfigsRespWarning struct { NullFields []string `json:"-"` } -func (s *InstanceGroupManagersListPerInstanceConfigsRespWarning) MarshalJSON() ([]byte, error) { - type NoMethod InstanceGroupManagersListPerInstanceConfigsRespWarning - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s HealthAggregationPoliciesScopedListWarning) MarshalJSON() ([]byte, error) { + type NoMethod HealthAggregationPoliciesScopedListWarning + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -type InstanceGroupManagersListPerInstanceConfigsRespWarningData 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). +type HealthAggregationPoliciesScopedListWarningData 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"` @@ -17666,148 +22039,263 @@ type InstanceGroupManagersListPerInstanceConfigsRespWarningData struct { NullFields []string `json:"-"` } -func (s *InstanceGroupManagersListPerInstanceConfigsRespWarningData) MarshalJSON() ([]byte, error) { - type NoMethod InstanceGroupManagersListPerInstanceConfigsRespWarningData - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) -} - -// InstanceGroupManagersPatchPerInstanceConfigsReq: -// InstanceGroupManagers.patchPerInstanceConfigs -type InstanceGroupManagersPatchPerInstanceConfigsReq struct { - // PerInstanceConfigs: The list of per-instance configurations to insert or - // patch on this managed instance group. - PerInstanceConfigs []*PerInstanceConfig `json:"perInstanceConfigs,omitempty"` - // ForceSendFields is a list of field names (e.g. "PerInstanceConfigs") to - // unconditionally include in API requests. By default, fields with empty or - // default values are omitted from API requests. See - // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more - // details. - ForceSendFields []string `json:"-"` - // NullFields is a list of field names (e.g. "PerInstanceConfigs") to include - // in API requests with the JSON null value. By default, fields with empty - // values are omitted from API requests. See - // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. - NullFields []string `json:"-"` +func (s HealthAggregationPoliciesScopedListWarningData) MarshalJSON() ([]byte, error) { + type NoMethod HealthAggregationPoliciesScopedListWarningData + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -func (s *InstanceGroupManagersPatchPerInstanceConfigsReq) MarshalJSON() ([]byte, error) { - type NoMethod InstanceGroupManagersPatchPerInstanceConfigsReq - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) -} +// HealthAggregationPolicy: Represents a health aggregation policy. +// +// A health aggregation policy resource defines a policy to aggregate +// health. +// +// For more information, see +// Health checks overview. +type HealthAggregationPolicy struct { + // CreationTimestamp: Output only. [Output Only] Creation timestamp + // inRFC3339 + // text format. + CreationTimestamp string `json:"creationTimestamp,omitempty"` + // Description: An optional description of this resource. Provide this property + // when you + // create the resource. + Description string `json:"description,omitempty"` + // Fingerprint: Fingerprint of this resource. A hash of the contents stored in + // this object. + // This field is used in optimistic locking. This field will be ignored + // when + // inserting a HealthAggregationPolicy. An up-to-date fingerprint + // must be provided in order to patch the HealthAggregationPolicy; + // Otherwise, + // the request will fail with error 412 conditionNotMet. To see + // the latest fingerprint, make a get() request to retrieve + // the + // HealthAggregationPolicy. + Fingerprint string `json:"fingerprint,omitempty"` + // HealthyPercentThreshold: Can only be set if the policyType field + // isBACKEND_SERVICE_POLICY. Specifies the threshold (as a + // percentage) of healthy endpoints required in order to consider + // the + // aggregated health result HEALTHY. Defaults to 60. Must be in + // range [0, 100]. Not applicable if the policyType field + // isDNB_PUBLIC_IP_POLICY. Can be mutated. This field is optional, + // and will be set to the default if unspecified. Note that both this + // threshold and minHealthyThreshold must be satisfied in order + // for HEALTHY to be the aggregated result. "Endpoints" refers to + // network + // endpoints within a Network Endpoint Group or instances within an + // Instance + // Group. + HealthyPercentThreshold int64 `json:"healthyPercentThreshold,omitempty"` + // Id: Output only. [Output Only] The unique identifier for the resource. This + // identifier is + // defined by the server. + Id uint64 `json:"id,omitempty,string"` + // Kind: Output only. [Output Only] Type of the resource. + // Alwayscompute#healthAggregationPolicy for health aggregation + // policies. + Kind string `json:"kind,omitempty"` + // MinHealthyThreshold: Can only be set if the policyType field + // isBACKEND_SERVICE_POLICY. Specifies the minimum number of + // healthy endpoints required in order to consider the aggregated health + // result HEALTHY. Defaults to 1. Must be positive. Not + // applicable if the policyType field isDNB_PUBLIC_IP_POLICY. Can be mutated. + // This field is optional, + // and will be set to the default if unspecified. Note that both this + // threshold and healthyPercentThreshold must be satisfied in + // order for HEALTHY to be the aggregated result. "Endpoints" refers to + // network endpoints within a Network Endpoint Group or instances within + // an + // Instance Group. + MinHealthyThreshold int64 `json:"minHealthyThreshold,omitempty"` + // Name: Name of the resource. Provided by the client when the resource is + // created. + // The name must be 1-63 characters long, and comply withRFC1035. + // 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. + Name string `json:"name,omitempty"` + // PolicyType: Specifies the type of the healthAggregationPolicy. The only + // allowed value + // for global resources is DNS_PUBLIC_IP_POLICY. The only allowed + // value for regional resources is BACKEND_SERVICE_POLICY. Must + // be specified when the healthAggregationPolicy is created, and cannot + // be + // mutated. + // + // Possible values: + // "BACKEND_SERVICE_POLICY" + // "DNS_PUBLIC_IP_POLICY" + PolicyType string `json:"policyType,omitempty"` + // Region: Output only. [Output Only] URL of the region where the health + // aggregation policy + // resides. This field applies only to the regional resource. You must + // specify + // this field as part of the HTTP request URL. It is not settable as a field + // in the request body. + Region string `json:"region,omitempty"` + // SelfLink: Output only. [Output Only] Server-defined URL for the resource. + SelfLink string `json:"selfLink,omitempty"` + // SelfLinkWithId: Output only. [Output Only] Server-defined URL with id for + // the resource. + SelfLinkWithId string `json:"selfLinkWithId,omitempty"` -type InstanceGroupManagersRecreateInstancesRequest struct { - // Instances: The URLs of one or more instances to recreate. This can be a full - // URL or a partial URL, such as zones/[ZONE]/instances/[INSTANCE_NAME]. - Instances []string `json:"instances,omitempty"` - // ForceSendFields is a list of field names (e.g. "Instances") to + // ServerResponse contains the HTTP response code and headers from the server. + googleapi.ServerResponse `json:"-"` + // ForceSendFields is a list of field names (e.g. "CreationTimestamp") to // unconditionally include in API requests. By default, fields with empty or // default values are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. ForceSendFields []string `json:"-"` - // NullFields is a list of field names (e.g. "Instances") to include in API - // requests with the JSON null value. By default, fields with empty values are - // omitted from API requests. See + // NullFields is a list of field names (e.g. "CreationTimestamp") to include in + // API requests with the JSON null value. By default, fields with empty values + // are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } -func (s *InstanceGroupManagersRecreateInstancesRequest) MarshalJSON() ([]byte, error) { - type NoMethod InstanceGroupManagersRecreateInstancesRequest - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s HealthAggregationPolicy) MarshalJSON() ([]byte, error) { + type NoMethod HealthAggregationPolicy + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -type InstanceGroupManagersScopedList struct { - // InstanceGroupManagers: [Output Only] The list of managed instance groups - // that are contained in the specified project and zone. - InstanceGroupManagers []*InstanceGroupManager `json:"instanceGroupManagers,omitempty"` - // Warning: [Output Only] The warning that replaces the list of managed - // instance groups when the list is empty. - Warning *InstanceGroupManagersScopedListWarning `json:"warning,omitempty"` - // ForceSendFields is a list of field names (e.g. "InstanceGroupManagers") to - // unconditionally include in API requests. By default, fields with empty or - // default values are omitted from API requests. See +// HealthAggregationPolicyAggregatedList: Contains a list of +// HealthAggregationPoliciesScopedList. +type HealthAggregationPolicyAggregatedList struct { + // Id: [Output Only] Unique identifier for the resource; defined by the server. + Id string `json:"id,omitempty"` + // Items: A list of HealthAggregationPoliciesScopedList resources. + Items map[string]HealthAggregationPoliciesScopedList `json:"items,omitempty"` + // Kind: Output only. Type of resource. + 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 thanmaxResults, 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"` + // SelfLink: Output only. [Output Only] Server-defined URL for this resource. + SelfLink string `json:"selfLink,omitempty"` + // Unreachables: Output only. [Output Only] Unreachable resources. + Unreachables []string `json:"unreachables,omitempty"` + // Warning: [Output Only] Informational warning message. + Warning *HealthAggregationPolicyAggregatedListWarning `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 or default values are + // omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. ForceSendFields []string `json:"-"` - // NullFields is a list of field names (e.g. "InstanceGroupManagers") to - // include in API requests with the JSON null value. By default, fields with - // empty values are omitted from API requests. See + // 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. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } -func (s *InstanceGroupManagersScopedList) MarshalJSON() ([]byte, error) { - type NoMethod InstanceGroupManagersScopedList - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s HealthAggregationPolicyAggregatedList) MarshalJSON() ([]byte, error) { + type NoMethod HealthAggregationPolicyAggregatedList + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -// InstanceGroupManagersScopedListWarning: [Output Only] The warning that -// replaces the list of managed instance groups when the list is empty. -type InstanceGroupManagersScopedListWarning 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. +// HealthAggregationPolicyAggregatedListWarning: [Output Only] Informational +// warning message. +type HealthAggregationPolicyAggregatedListWarning 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" - Warning about failed cleanup of transient changes made - // by a failed operation. + // by a failed + // operation. // "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was created. // "DEPRECATED_TYPE_USED" - When deploying and at least one of the resources - // has a type marked as deprecated + // has a type marked as + // deprecated // "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk that is // larger than image size. // "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the - // resources has a type marked as experimental + // resources has a type marked as + // experimental // "EXTERNAL_API_WARNING" - Warning that is present in an external api call // "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been - // overridden. Deprecated unused field. + // overridden. + // Deprecated unused field. // "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an injected // kernel, which is deprecated. // "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB" - A WEIGHTED_MAGLEV backend - // service is associated with a health check that is not of type - // HTTP/HTTPS/HTTP2. + // service is associated with a health check that is + // not of type HTTP/HTTPS/HTTP2. // "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a // exceedingly large number of resources // "LIST_OVERHEAD_QUOTA_EXCEED" - Resource can't be retrieved due to list - // overhead quota exceed which captures the amount of resources filtered out by + // overhead quota exceed + // which captures the amount of resources filtered out by // user-defined list filter. // "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is not - // assigned to an instance on the network. + // assigned to an instance on the + // network. // "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot ip // forward. // "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE" - The route's nextHopInstance - // URL refers to an instance that does not have an ipv6 interface on the same - // network as the route. + // URL refers to an instance that does not have an + // ipv6 interface on the same network as the route. // "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL refers to // an instance that does not exist. // "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance URL - // refers to an instance that is not on the same network as the route. + // refers to an instance that is not on the + // same network as the route. // "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not have a // status of RUNNING. // "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to continue - // the process despite the mentioned error. + // the process despite + // the mentioned error. // "NO_RESULTS_ON_PAGE" - No results are present on a particular list page. // "PARTIAL_SUCCESS" - Success is reported, but some results may be missing // due to errors + // "QUOTA_INFO_UNAVAILABLE" - Quota information is not available to client + // requests (e.g: + // regions.list). // "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource that - // requires a TOS they have not accepted. + // requires a TOS they have not + // accepted. // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a resource is // in use. // "RESOURCE_NOT_DELETED" - One or more of the resources set to auto-delete - // could not be deleted because they were in use. + // could not be deleted + // because they were in use. // "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is // ignored. // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in instance - // group manager is valid as such, but its application does not make a lot of - // sense, because it allows only single instance in instance group. + // group manager is valid as such, but + // its application does not make a lot of sense, because it allows only + // single instance in instance group. // "UNDECLARED_PROPERTIES" - When undeclared properties in the schema are // present // "UNREACHABLE" - A given scope cannot be reached. 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 []*InstanceGroupManagersScopedListWarningData `json:"data,omitempty"` + // Data: [Output Only] Metadata about this warning in key: + // value format. For example: + // + // "data": [ + // { + // "key": "scope", + // "value": "zones/us-east1-d" + // } + Data []*HealthAggregationPolicyAggregatedListWarningData `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 @@ -17823,19 +22311,22 @@ type InstanceGroupManagersScopedListWarning struct { NullFields []string `json:"-"` } -func (s *InstanceGroupManagersScopedListWarning) MarshalJSON() ([]byte, error) { - type NoMethod InstanceGroupManagersScopedListWarning - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s HealthAggregationPolicyAggregatedListWarning) MarshalJSON() ([]byte, error) { + type NoMethod HealthAggregationPolicyAggregatedListWarning + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -type InstanceGroupManagersScopedListWarningData 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). +type HealthAggregationPolicyAggregatedListWarningData 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"` @@ -17852,131 +22343,32 @@ type InstanceGroupManagersScopedListWarningData struct { NullFields []string `json:"-"` } -func (s *InstanceGroupManagersScopedListWarningData) MarshalJSON() ([]byte, error) { - type NoMethod InstanceGroupManagersScopedListWarningData - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) -} - -type InstanceGroupManagersSetInstanceTemplateRequest struct { - // InstanceTemplate: The URL of the instance template that is specified for - // this managed instance group. The group uses this template to create all new - // instances in the managed instance group. The templates for existing - // instances in the group do not change unless you run recreateInstances, run - // applyUpdatesToInstances, or set the group's updatePolicy.type to PROACTIVE. - InstanceTemplate string `json:"instanceTemplate,omitempty"` - // ForceSendFields is a list of field names (e.g. "InstanceTemplate") to - // unconditionally include in API requests. By default, fields with empty or - // default values are omitted from API requests. See - // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more - // details. - ForceSendFields []string `json:"-"` - // NullFields is a list of field names (e.g. "InstanceTemplate") to include in - // API requests with the JSON null value. By default, fields with empty values - // are omitted from API requests. See - // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. - NullFields []string `json:"-"` -} - -func (s *InstanceGroupManagersSetInstanceTemplateRequest) MarshalJSON() ([]byte, error) { - type NoMethod InstanceGroupManagersSetInstanceTemplateRequest - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) -} - -type InstanceGroupManagersSetTargetPoolsRequest struct { - // Fingerprint: The fingerprint of the target pools information. Use this - // optional property to prevent conflicts when multiple users change the target - // pools settings concurrently. Obtain the fingerprint with the - // instanceGroupManagers.get method. Then, include the fingerprint in your - // request to ensure that you do not overwrite changes that were applied from - // another concurrent request. - Fingerprint string `json:"fingerprint,omitempty"` - // TargetPools: The list of target pool URLs that instances in this managed - // instance group belong to. The managed instance group applies these target - // pools to all of the instances in the group. Existing instances and new - // instances in the group all receive these target pool settings. - TargetPools []string `json:"targetPools,omitempty"` - // ForceSendFields is a list of field names (e.g. "Fingerprint") to - // unconditionally include in API requests. By default, fields with empty or - // default values are omitted from API requests. See - // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more - // details. - ForceSendFields []string `json:"-"` - // NullFields is a list of field names (e.g. "Fingerprint") to include in API - // requests with the JSON null value. By default, fields with empty values are - // omitted from API requests. See - // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. - NullFields []string `json:"-"` -} - -func (s *InstanceGroupManagersSetTargetPoolsRequest) MarshalJSON() ([]byte, error) { - type NoMethod InstanceGroupManagersSetTargetPoolsRequest - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) -} - -// InstanceGroupManagersUpdatePerInstanceConfigsReq: -// InstanceGroupManagers.updatePerInstanceConfigs -type InstanceGroupManagersUpdatePerInstanceConfigsReq struct { - // PerInstanceConfigs: The list of per-instance configurations to insert or - // patch on this managed instance group. - PerInstanceConfigs []*PerInstanceConfig `json:"perInstanceConfigs,omitempty"` - // ForceSendFields is a list of field names (e.g. "PerInstanceConfigs") to - // unconditionally include in API requests. By default, fields with empty or - // default values are omitted from API requests. See - // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more - // details. - ForceSendFields []string `json:"-"` - // NullFields is a list of field names (e.g. "PerInstanceConfigs") to include - // in API requests with the JSON null value. By default, fields with empty - // values are omitted from API requests. See - // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. - NullFields []string `json:"-"` -} - -func (s *InstanceGroupManagersUpdatePerInstanceConfigsReq) MarshalJSON() ([]byte, error) { - type NoMethod InstanceGroupManagersUpdatePerInstanceConfigsReq - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) -} - -type InstanceGroupsAddInstancesRequest struct { - // Instances: The list of instances to add to the instance group. - Instances []*InstanceReference `json:"instances,omitempty"` - // ForceSendFields is a list of field names (e.g. "Instances") to - // unconditionally include in API requests. By default, fields with empty or - // default values are omitted from API requests. See - // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more - // details. - ForceSendFields []string `json:"-"` - // NullFields is a list of field names (e.g. "Instances") to include in API - // requests with the JSON null value. By default, fields with empty values are - // omitted from API requests. See - // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. - NullFields []string `json:"-"` -} - -func (s *InstanceGroupsAddInstancesRequest) MarshalJSON() ([]byte, error) { - type NoMethod InstanceGroupsAddInstancesRequest - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s HealthAggregationPolicyAggregatedListWarningData) MarshalJSON() ([]byte, error) { + type NoMethod HealthAggregationPolicyAggregatedListWarningData + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -type InstanceGroupsListInstances struct { +type HealthAggregationPolicyList struct { // Id: [Output Only] Unique identifier for the resource; defined by the server. Id string `json:"id,omitempty"` - // Items: A list of InstanceWithNamedPorts resources. - Items []*InstanceWithNamedPorts `json:"items,omitempty"` - // Kind: [Output Only] The resource type, which is always - // compute#instanceGroupsListInstances for the list of instances in the - // specified instance group. + // Items: A list of HealthAggregationPolicy resources. + Items []*HealthAggregationPolicy `json:"items,omitempty"` + // Kind: Output only. [Output Only] Type of the resource. + // Alwayscompute#healthAggregationPolicy for health aggregation + // policies. 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. + // results for + // list requests. If the number of results is larger thanmaxResults, 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"` // SelfLink: [Output Only] Server-defined URL for this resource. SelfLink string `json:"selfLink,omitempty"` // Warning: [Output Only] Informational warning message. - Warning *InstanceGroupsListInstancesWarning `json:"warning,omitempty"` + Warning *HealthAggregationPolicyListWarning `json:"warning,omitempty"` // ServerResponse contains the HTTP response code and headers from the server. googleapi.ServerResponse `json:"-"` @@ -17993,77 +22385,99 @@ type InstanceGroupsListInstances struct { NullFields []string `json:"-"` } -func (s *InstanceGroupsListInstances) MarshalJSON() ([]byte, error) { - type NoMethod InstanceGroupsListInstances - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s HealthAggregationPolicyList) MarshalJSON() ([]byte, error) { + type NoMethod HealthAggregationPolicyList + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -// InstanceGroupsListInstancesWarning: [Output Only] Informational warning +// HealthAggregationPolicyListWarning: [Output Only] Informational warning // message. -type InstanceGroupsListInstancesWarning 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. +type HealthAggregationPolicyListWarning 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" - Warning about failed cleanup of transient changes made - // by a failed operation. + // by a failed + // operation. // "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was created. // "DEPRECATED_TYPE_USED" - When deploying and at least one of the resources - // has a type marked as deprecated + // has a type marked as + // deprecated // "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk that is // larger than image size. // "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the - // resources has a type marked as experimental + // resources has a type marked as + // experimental // "EXTERNAL_API_WARNING" - Warning that is present in an external api call // "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been - // overridden. Deprecated unused field. + // overridden. + // Deprecated unused field. // "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an injected // kernel, which is deprecated. // "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB" - A WEIGHTED_MAGLEV backend - // service is associated with a health check that is not of type - // HTTP/HTTPS/HTTP2. + // service is associated with a health check that is + // not of type HTTP/HTTPS/HTTP2. // "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a // exceedingly large number of resources // "LIST_OVERHEAD_QUOTA_EXCEED" - Resource can't be retrieved due to list - // overhead quota exceed which captures the amount of resources filtered out by + // overhead quota exceed + // which captures the amount of resources filtered out by // user-defined list filter. // "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is not - // assigned to an instance on the network. + // assigned to an instance on the + // network. // "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot ip // forward. // "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE" - The route's nextHopInstance - // URL refers to an instance that does not have an ipv6 interface on the same - // network as the route. + // URL refers to an instance that does not have an + // ipv6 interface on the same network as the route. // "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL refers to // an instance that does not exist. // "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance URL - // refers to an instance that is not on the same network as the route. + // refers to an instance that is not on the + // same network as the route. // "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not have a // status of RUNNING. // "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to continue - // the process despite the mentioned error. + // the process despite + // the mentioned error. // "NO_RESULTS_ON_PAGE" - No results are present on a particular list page. // "PARTIAL_SUCCESS" - Success is reported, but some results may be missing // due to errors + // "QUOTA_INFO_UNAVAILABLE" - Quota information is not available to client + // requests (e.g: + // regions.list). // "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource that - // requires a TOS they have not accepted. + // requires a TOS they have not + // accepted. // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a resource is // in use. // "RESOURCE_NOT_DELETED" - One or more of the resources set to auto-delete - // could not be deleted because they were in use. + // could not be deleted + // because they were in use. // "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is // ignored. // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in instance - // group manager is valid as such, but its application does not make a lot of - // sense, because it allows only single instance in instance group. + // group manager is valid as such, but + // its application does not make a lot of sense, because it allows only + // single instance in instance group. // "UNDECLARED_PROPERTIES" - When undeclared properties in the schema are // present // "UNREACHABLE" - A given scope cannot be reached. 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 []*InstanceGroupsListInstancesWarningData `json:"data,omitempty"` + // Data: [Output Only] Metadata about this warning in key: + // value format. For example: + // + // "data": [ + // { + // "key": "scope", + // "value": "zones/us-east1-d" + // } + Data []*HealthAggregationPolicyListWarningData `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 @@ -18079,19 +22493,22 @@ type InstanceGroupsListInstancesWarning struct { NullFields []string `json:"-"` } -func (s *InstanceGroupsListInstancesWarning) MarshalJSON() ([]byte, error) { - type NoMethod InstanceGroupsListInstancesWarning - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s HealthAggregationPolicyListWarning) MarshalJSON() ([]byte, error) { + type NoMethod HealthAggregationPolicyListWarning + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -type InstanceGroupsListInstancesWarningData 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). +type HealthAggregationPolicyListWarningData 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"` @@ -18108,152 +22525,280 @@ type InstanceGroupsListInstancesWarningData struct { NullFields []string `json:"-"` } -func (s *InstanceGroupsListInstancesWarningData) MarshalJSON() ([]byte, error) { - type NoMethod InstanceGroupsListInstancesWarningData - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s HealthAggregationPolicyListWarningData) MarshalJSON() ([]byte, error) { + type NoMethod HealthAggregationPolicyListWarningData + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -type InstanceGroupsListInstancesRequest struct { - // InstanceState: A filter for the state of the instances in the instance - // group. Valid options are ALL or RUNNING. If you do not specify this - // parameter the list includes all instances regardless of their state. +// HealthCheck: Represents a health check resource. +// +// Google Compute Engine has two health check resources: +// +// * Regional (/compute/docs/reference/rest/v1/regionHealthChecks) +// * Global (/compute/docs/reference/rest/v1/healthChecks) +// +// These health check resources can be used for load balancing and +// for +// autohealing VMs in a managed instance group (MIG). +// +// **Load balancing** +// +// Health check requirements vary depending on the type of load balancer. +// For +// details about the type of health check supported for +// each load balancer and corresponding backend type, +// see Health +// checks overview: Load balancer guide. +// +// **Autohealing in MIGs** +// +// The health checks that you use for autohealing VMs in a MIG can be +// either +// regional or global. For more information, see Set up an +// application health check and autohealing. +// +// For more information, seeHealth checks +// overview. +type HealthCheck struct { + // CheckIntervalSec: How often (in seconds) to send a health check. The default + // value is 5 + // seconds. + CheckIntervalSec int64 `json:"checkIntervalSec,omitempty"` + // CreationTimestamp: Output only. [Output Only] Creation timestamp in3339 + // text format. + CreationTimestamp string `json:"creationTimestamp,omitempty"` + // Description: An optional description of this resource. Provide this property + // when you + // create the resource. + Description string `json:"description,omitempty"` + GrpcHealthCheck *GRPCHealthCheck `json:"grpcHealthCheck,omitempty"` + GrpcTlsHealthCheck *GRPCTLSHealthCheck `json:"grpcTlsHealthCheck,omitempty"` + // HealthyThreshold: A so-far unhealthy instance will be marked healthy after + // this + // many consecutive successes. The default value is 2. + HealthyThreshold int64 `json:"healthyThreshold,omitempty"` + Http2HealthCheck *HTTP2HealthCheck `json:"http2HealthCheck,omitempty"` + HttpHealthCheck *HTTPHealthCheck `json:"httpHealthCheck,omitempty"` + HttpsHealthCheck *HTTPSHealthCheck `json:"httpsHealthCheck,omitempty"` + // Id: [Output Only] The unique identifier for the resource. This identifier + // is + // defined by the server. + Id uint64 `json:"id,omitempty,string"` + // Kind: Output only. Type of the resource. + Kind string `json:"kind,omitempty"` + // LogConfig: Configure logging on this health check. + LogConfig *HealthCheckLogConfig `json:"logConfig,omitempty"` + // Name: Name of the resource. Provided by the client when the resource is + // created. + // The name must be 1-63 characters long, and comply withRFC1035. + // For example, a name that is 1-63 characters long, matches the + // regular + // expression `[a-z]([-a-z0-9]*[a-z0-9])?`, and otherwise complies + // with + // RFC1035. This regular expression describes a name where the first + // character is a lowercase letter, and all following characters are a + // dash, + // lowercase letter, or digit, except the last character, which isn't a dash. + Name string `json:"name,omitempty"` + // Region: Output only. [Output Only] Region where the health check resides. + // Not applicable to + // global health checks. + Region string `json:"region,omitempty"` + // SelfLink: [Output Only] Server-defined URL for the resource. + SelfLink string `json:"selfLink,omitempty"` + // SourceRegions: The list of cloud regions from which health checks are + // performed. If any + // regions are specified, then exactly 3 regions should be specified. + // The + // region names must be valid names of Google Cloud regions. + // This can only be set for global health check. + // If this list is non-empty, then there are restrictions + // on what other health check fields are supported and what other resources + // can use this health check: + // + // - SSL, HTTP2, and GRPC protocols are not supported. + // - The TCP request field is not supported. + // - The proxyHeader field for HTTP, HTTPS, and TCP is not + // supported. + // - The checkIntervalSec field must be at least 30. + // - The health check cannot be used with BackendService nor with managed + // instance group auto-healing. + SourceRegions []string `json:"sourceRegions,omitempty"` + SslHealthCheck *SSLHealthCheck `json:"sslHealthCheck,omitempty"` + TcpHealthCheck *TCPHealthCheck `json:"tcpHealthCheck,omitempty"` + // TimeoutSec: How long (in seconds) to wait before claiming failure. The + // default value is + // 5 seconds. It is invalid for timeoutSec to have greater + // value than checkIntervalSec. + TimeoutSec int64 `json:"timeoutSec,omitempty"` + // Type: Specifies the type of the healthCheck, either TCP,SSL, HTTP, + // HTTPS,HTTP2 or GRPC. Exactly one of the + // protocol-specific health check fields must be specified, which must + // matchtype field. // // Possible values: - // "ALL" - Includes all instances in the generated list regardless of their - // state. - // "RUNNING" - Includes instances in the generated list only if they have a - // RUNNING state. - InstanceState string `json:"instanceState,omitempty"` - // ForceSendFields is a list of field names (e.g. "InstanceState") to - // unconditionally include in API requests. By default, fields with empty or - // default values are omitted from API requests. See - // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more - // details. - ForceSendFields []string `json:"-"` - // NullFields is a list of field names (e.g. "InstanceState") to include in API - // requests with the JSON null value. By default, fields with empty values are - // omitted from API requests. See - // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. - NullFields []string `json:"-"` -} - -func (s *InstanceGroupsListInstancesRequest) MarshalJSON() ([]byte, error) { - type NoMethod InstanceGroupsListInstancesRequest - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) -} + // "GRPC" + // "GRPC_WITH_TLS" + // "HTTP" + // "HTTP2" + // "HTTPS" + // "INVALID" + // "SSL" + // "TCP" + Type string `json:"type,omitempty"` + // UnhealthyThreshold: A so-far healthy instance will be marked unhealthy after + // this many + // consecutive failures. The default value is 2. + UnhealthyThreshold int64 `json:"unhealthyThreshold,omitempty"` -type InstanceGroupsRemoveInstancesRequest struct { - // Instances: The list of instances to remove from the instance group. - Instances []*InstanceReference `json:"instances,omitempty"` - // ForceSendFields is a list of field names (e.g. "Instances") to + // ServerResponse contains the HTTP response code and headers from the server. + googleapi.ServerResponse `json:"-"` + // ForceSendFields is a list of field names (e.g. "CheckIntervalSec") to // unconditionally include in API requests. By default, fields with empty or // default values are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. ForceSendFields []string `json:"-"` - // NullFields is a list of field names (e.g. "Instances") to include in API - // requests with the JSON null value. By default, fields with empty values are - // omitted from API requests. See + // NullFields is a list of field names (e.g. "CheckIntervalSec") to include in + // API requests with the JSON null value. By default, fields with empty values + // are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } -func (s *InstanceGroupsRemoveInstancesRequest) MarshalJSON() ([]byte, error) { - type NoMethod InstanceGroupsRemoveInstancesRequest - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s HealthCheck) MarshalJSON() ([]byte, error) { + type NoMethod HealthCheck + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -type InstanceGroupsScopedList struct { - // InstanceGroups: [Output Only] The list of instance groups that are contained - // in this scope. - InstanceGroups []*InstanceGroup `json:"instanceGroups,omitempty"` - // Warning: [Output Only] An informational warning that replaces the list of - // instance groups when the list is empty. - Warning *InstanceGroupsScopedListWarning `json:"warning,omitempty"` - // ForceSendFields is a list of field names (e.g. "InstanceGroups") to - // unconditionally include in API requests. By default, fields with empty or - // default values are omitted from API requests. See +// HealthCheckList: Contains a list of HealthCheck resources. +type HealthCheckList struct { + // Id: [Output Only] Unique identifier for the resource; defined by the server. + Id string `json:"id,omitempty"` + // Items: A list of HealthCheck resources. + Items []*HealthCheck `json:"items,omitempty"` + // Kind: Output only. Type of resource. + 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 thanmaxResults, 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"` + // SelfLink: Output only. [Output Only] Server-defined URL for this resource. + SelfLink string `json:"selfLink,omitempty"` + // Warning: [Output Only] Informational warning message. + Warning *HealthCheckListWarning `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 or default values are + // omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. ForceSendFields []string `json:"-"` - // NullFields is a list of field names (e.g. "InstanceGroups") to include in - // API requests with the JSON null value. By default, fields with empty values - // are omitted from API requests. See + // 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. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } -func (s *InstanceGroupsScopedList) MarshalJSON() ([]byte, error) { - type NoMethod InstanceGroupsScopedList - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s HealthCheckList) MarshalJSON() ([]byte, error) { + type NoMethod HealthCheckList + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -// InstanceGroupsScopedListWarning: [Output Only] An informational warning that -// replaces the list of instance groups when the list is empty. -type InstanceGroupsScopedListWarning 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. +// HealthCheckListWarning: [Output Only] Informational warning message. +type HealthCheckListWarning 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" - Warning about failed cleanup of transient changes made - // by a failed operation. + // by a failed + // operation. // "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was created. // "DEPRECATED_TYPE_USED" - When deploying and at least one of the resources - // has a type marked as deprecated + // has a type marked as + // deprecated // "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk that is // larger than image size. // "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the - // resources has a type marked as experimental + // resources has a type marked as + // experimental // "EXTERNAL_API_WARNING" - Warning that is present in an external api call // "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been - // overridden. Deprecated unused field. + // overridden. + // Deprecated unused field. // "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an injected // kernel, which is deprecated. // "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB" - A WEIGHTED_MAGLEV backend - // service is associated with a health check that is not of type - // HTTP/HTTPS/HTTP2. + // service is associated with a health check that is + // not of type HTTP/HTTPS/HTTP2. // "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a // exceedingly large number of resources // "LIST_OVERHEAD_QUOTA_EXCEED" - Resource can't be retrieved due to list - // overhead quota exceed which captures the amount of resources filtered out by + // overhead quota exceed + // which captures the amount of resources filtered out by // user-defined list filter. // "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is not - // assigned to an instance on the network. + // assigned to an instance on the + // network. // "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot ip // forward. // "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE" - The route's nextHopInstance - // URL refers to an instance that does not have an ipv6 interface on the same - // network as the route. + // URL refers to an instance that does not have an + // ipv6 interface on the same network as the route. // "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL refers to // an instance that does not exist. // "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance URL - // refers to an instance that is not on the same network as the route. + // refers to an instance that is not on the + // same network as the route. // "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not have a // status of RUNNING. // "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to continue - // the process despite the mentioned error. + // the process despite + // the mentioned error. // "NO_RESULTS_ON_PAGE" - No results are present on a particular list page. // "PARTIAL_SUCCESS" - Success is reported, but some results may be missing // due to errors + // "QUOTA_INFO_UNAVAILABLE" - Quota information is not available to client + // requests (e.g: + // regions.list). // "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource that - // requires a TOS they have not accepted. + // requires a TOS they have not + // accepted. // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a resource is // in use. // "RESOURCE_NOT_DELETED" - One or more of the resources set to auto-delete - // could not be deleted because they were in use. + // could not be deleted + // because they were in use. // "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is // ignored. // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in instance - // group manager is valid as such, but its application does not make a lot of - // sense, because it allows only single instance in instance group. + // group manager is valid as such, but + // its application does not make a lot of sense, because it allows only + // single instance in instance group. // "UNDECLARED_PROPERTIES" - When undeclared properties in the schema are // present // "UNREACHABLE" - A given scope cannot be reached. 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 []*InstanceGroupsScopedListWarningData `json:"data,omitempty"` + // Data: [Output Only] Metadata about this warning in key: + // value format. For example: + // + // "data": [ + // { + // "key": "scope", + // "value": "zones/us-east1-d" + // } + Data []*HealthCheckListWarningData `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 @@ -18269,19 +22814,22 @@ type InstanceGroupsScopedListWarning struct { NullFields []string `json:"-"` } -func (s *InstanceGroupsScopedListWarning) MarshalJSON() ([]byte, error) { - type NoMethod InstanceGroupsScopedListWarning - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s HealthCheckListWarning) MarshalJSON() ([]byte, error) { + type NoMethod HealthCheckListWarning + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -type InstanceGroupsScopedListWarningData 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). +type HealthCheckListWarningData 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"` @@ -18298,59 +22846,213 @@ type InstanceGroupsScopedListWarningData struct { NullFields []string `json:"-"` } -func (s *InstanceGroupsScopedListWarningData) MarshalJSON() ([]byte, error) { - type NoMethod InstanceGroupsScopedListWarningData - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s HealthCheckListWarningData) MarshalJSON() ([]byte, error) { + type NoMethod HealthCheckListWarningData + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -type InstanceGroupsSetNamedPortsRequest struct { - // Fingerprint: The fingerprint of the named ports information for this - // instance group. Use this optional property to prevent conflicts when - // multiple users change the named ports settings concurrently. Obtain the - // fingerprint with the instanceGroups.get method. Then, include the - // fingerprint in your request to ensure that you do not overwrite changes that - // were applied from another concurrent request. A request with an incorrect - // fingerprint will fail with error 412 conditionNotMet. - Fingerprint string `json:"fingerprint,omitempty"` - // NamedPorts: The list of named ports to set for this instance group. - NamedPorts []*NamedPort `json:"namedPorts,omitempty"` - // ForceSendFields is a list of field names (e.g. "Fingerprint") to - // unconditionally include in API requests. By default, fields with empty or - // default values are omitted from API requests. See +// HealthCheckLogConfig: Configuration of logging on a health check. If logging +// is enabled, logs +// will be exported to Stackdriver. +type HealthCheckLogConfig struct { + // Enable: Indicates whether or not to export logs. This is false by default, + // which + // means no health check logging will be done. + Enable bool `json:"enable,omitempty"` + // ForceSendFields is a list of field names (e.g. "Enable") to unconditionally + // include in API requests. By default, fields with empty or default values are + // omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. ForceSendFields []string `json:"-"` - // NullFields is a list of field names (e.g. "Fingerprint") to include in API + // NullFields is a list of field names (e.g. "Enable") to include in API // requests with the JSON null value. By default, fields with empty values are // omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } -func (s *InstanceGroupsSetNamedPortsRequest) MarshalJSON() ([]byte, error) { - type NoMethod InstanceGroupsSetNamedPortsRequest - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s HealthCheckLogConfig) MarshalJSON() ([]byte, error) { + type NoMethod HealthCheckLogConfig + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -// InstanceList: Contains a list of instances. -type InstanceList struct { - // Id: [Output Only] Unique identifier for the resource; defined by the server. - Id string `json:"id,omitempty"` - // Items: A list of Instance resources. - Items []*Instance `json:"items,omitempty"` - // Kind: [Output Only] Type of resource. Always compute#instanceList for lists - // of Instance resources. +// HealthCheckReference: A full or valid partial URL to a health check. For +// example, the following are +// valid URLs: +// +// - +// +// https://www.googleapis.com/compute/beta/projects/project-id/global/httpHealthChecks/health-check +// - projects/project-id/global/httpHealthChecks/health-check +// - global/httpHealthChecks/health-check +type HealthCheckReference struct { + HealthCheck string `json:"healthCheck,omitempty"` + // ForceSendFields is a list of field names (e.g. "HealthCheck") to + // unconditionally include in API requests. By default, fields with empty or + // default values are omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + ForceSendFields []string `json:"-"` + // NullFields is a list of field names (e.g. "HealthCheck") to include in API + // requests with the JSON null value. By default, fields with empty values are + // omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s HealthCheckReference) MarshalJSON() ([]byte, error) { + type NoMethod HealthCheckReference + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +// HealthCheckService: Represents a Health-Check as a Service resource. +type HealthCheckService struct { + // CreationTimestamp: Output only. [Output Only] Creation timestamp + // inRFC3339 + // text format. + CreationTimestamp string `json:"creationTimestamp,omitempty"` + // Description: An optional description of this resource. Provide this property + // when you + // create the resource. + Description string `json:"description,omitempty"` + // Fingerprint: Fingerprint of this resource. A hash of the contents stored in + // this object. + // This field is used in optimistic locking. This field will be ignored + // when + // inserting a HealthCheckService. An up-to-date fingerprint must + // be provided in order to patch/update the HealthCheckService; Otherwise, + // the + // request will fail with error 412 conditionNotMet. To see the + // latest fingerprint, make a get() request to retrieve the + // HealthCheckService. + Fingerprint string `json:"fingerprint,omitempty"` + // HealthChecks: A list of URLs to the HealthCheck resources. Must have + // at least one HealthCheck, and not more than 10 for + // regionalHealthCheckService, and not more than 1 for + // globalHealthCheckService.HealthCheck resources must + // haveportSpecification=USE_SERVING_PORT orportSpecification=USE_FIXED_PORT. + // For + // regional HealthCheckService, theHealthCheck must be regional and in the + // same + // region. For global HealthCheckService,HealthCheck must be global. Mix of + // regional and globalHealthChecks is not supported. Multiple + // regionalHealthChecks must belong to the same region. RegionalHealthChecks + // must belong to the same region as zones ofNetworkEndpointGroups. For + // globalHealthCheckService using globalINTERNET_IP_PORT NetworkEndpointGroups, + // the + // global HealthChecks must specify sourceRegions, + // and HealthChecks that specify sourceRegions can + // only be used with global INTERNET_IP_PORTNetworkEndpointGroups. + HealthChecks []string `json:"healthChecks,omitempty"` + // HealthStatusAggregationPolicy: Optional. Policy for how the results from + // multiple health checks + // for the same endpoint are aggregated. Defaults to NO_AGGREGATION + // if unspecified. + // + // - NO_AGGREGATION. An EndpointHealth message is + // returned for each pair in the health check + // service. + // - AND. If any health check of an endpoint reportsUNHEALTHY, then + // UNHEALTHY is theHealthState of the endpoint. If all health checks + // reportHEALTHY, the HealthState of the endpoint isHEALTHY. + // + // . + // This is only allowed with regional HealthCheckService. + // + // Possible values: + // "AND" - If any backend's health check reports UNHEALTHY, + // then UNHEALTHY is the HealthState of + // the entire health check service. If all backend's are healthy, + // the HealthState of the health check service isHEALTHY. + // "NO_AGGREGATION" - An EndpointHealth message is returned for each + // backend in the health check service. + HealthStatusAggregationPolicy string `json:"healthStatusAggregationPolicy,omitempty"` + // Id: Output only. [Output Only] The unique identifier for the resource. This + // identifier is + // defined by the server. + Id uint64 `json:"id,omitempty,string"` + // Kind: Output only. [Output only] Type of the resource. + // Alwayscompute#healthCheckServicefor health check services. + Kind string `json:"kind,omitempty"` + // Name: Name of the resource. 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. + Name string `json:"name,omitempty"` + // NetworkEndpointGroups: A list of URLs to the NetworkEndpointGroup + // resources. Must not have more than 100. For regionalHealthCheckService, + // NEGs must be in + // zones in the region of the HealthCheckService. For + // globalHealthCheckServices, the NetworkEndpointGroups + // must be global INTERNET_IP_PORT. + NetworkEndpointGroups []string `json:"networkEndpointGroups,omitempty"` + // NotificationEndpoints: A list of URLs to the NotificationEndpoint + // resources. Must not have more than 10. A list of endpoints for + // receiving notifications of change in health status. For + // regionalHealthCheckService,NotificationEndpoint must be regional and in + // the + // same region. For global HealthCheckService,NotificationEndpoint must be + // global. + NotificationEndpoints []string `json:"notificationEndpoints,omitempty"` + // Region: Output only. [Output Only] URL of the region where the health check + // service + // resides. This field is not applicable to global health check services. + // You must specify this field as part of the HTTP request URL. It is + // not settable as a field in the request body. + Region string `json:"region,omitempty"` + // SelfLink: Output only. [Output Only] Server-defined URL for the resource. + SelfLink string `json:"selfLink,omitempty"` + + // ServerResponse contains the HTTP response code and headers from the server. + googleapi.ServerResponse `json:"-"` + // ForceSendFields is a list of field names (e.g. "CreationTimestamp") to + // unconditionally include in API requests. By default, fields with empty or + // default values are omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + ForceSendFields []string `json:"-"` + // NullFields is a list of field names (e.g. "CreationTimestamp") to include in + // API requests with the JSON null value. By default, fields with empty values + // are omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s HealthCheckService) MarshalJSON() ([]byte, error) { + type NoMethod HealthCheckService + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +// HealthCheckServiceAggregatedList: Contains a list of +// HealthCheckServicesScopedList. +type HealthCheckServiceAggregatedList struct { + // Id: [Output Only] Unique identifier for the resource; defined by the server. + Id string `json:"id,omitempty"` + // Items: A list of HealthCheckServicesScopedList resources. + Items map[string]HealthCheckServicesScopedList `json:"items,omitempty"` + // Kind: Output only. Type of resource. 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. + // results for + // list requests. If the number of results is larger thanmaxResults, 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"` - // SelfLink: [Output Only] Server-defined URL for this resource. + // SelfLink: Output only. [Output Only] Server-defined URL for this resource. SelfLink string `json:"selfLink,omitempty"` + // Unreachables: Output only. [Output Only] Unreachable resources. + Unreachables []string `json:"unreachables,omitempty"` // Warning: [Output Only] Informational warning message. - Warning *InstanceListWarning `json:"warning,omitempty"` + Warning *HealthCheckServiceAggregatedListWarning `json:"warning,omitempty"` // ServerResponse contains the HTTP response code and headers from the server. googleapi.ServerResponse `json:"-"` @@ -18367,76 +23069,99 @@ type InstanceList struct { NullFields []string `json:"-"` } -func (s *InstanceList) MarshalJSON() ([]byte, error) { - type NoMethod InstanceList - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s HealthCheckServiceAggregatedList) MarshalJSON() ([]byte, error) { + type NoMethod HealthCheckServiceAggregatedList + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -// InstanceListWarning: [Output Only] Informational warning message. -type InstanceListWarning 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. +// HealthCheckServiceAggregatedListWarning: [Output Only] Informational warning +// message. +type HealthCheckServiceAggregatedListWarning 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" - Warning about failed cleanup of transient changes made - // by a failed operation. + // by a failed + // operation. // "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was created. // "DEPRECATED_TYPE_USED" - When deploying and at least one of the resources - // has a type marked as deprecated + // has a type marked as + // deprecated // "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk that is // larger than image size. // "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the - // resources has a type marked as experimental + // resources has a type marked as + // experimental // "EXTERNAL_API_WARNING" - Warning that is present in an external api call // "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been - // overridden. Deprecated unused field. + // overridden. + // Deprecated unused field. // "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an injected // kernel, which is deprecated. // "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB" - A WEIGHTED_MAGLEV backend - // service is associated with a health check that is not of type - // HTTP/HTTPS/HTTP2. + // service is associated with a health check that is + // not of type HTTP/HTTPS/HTTP2. // "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a // exceedingly large number of resources // "LIST_OVERHEAD_QUOTA_EXCEED" - Resource can't be retrieved due to list - // overhead quota exceed which captures the amount of resources filtered out by + // overhead quota exceed + // which captures the amount of resources filtered out by // user-defined list filter. // "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is not - // assigned to an instance on the network. + // assigned to an instance on the + // network. // "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot ip // forward. // "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE" - The route's nextHopInstance - // URL refers to an instance that does not have an ipv6 interface on the same - // network as the route. + // URL refers to an instance that does not have an + // ipv6 interface on the same network as the route. // "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL refers to // an instance that does not exist. // "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance URL - // refers to an instance that is not on the same network as the route. + // refers to an instance that is not on the + // same network as the route. // "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not have a // status of RUNNING. // "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to continue - // the process despite the mentioned error. + // the process despite + // the mentioned error. // "NO_RESULTS_ON_PAGE" - No results are present on a particular list page. // "PARTIAL_SUCCESS" - Success is reported, but some results may be missing // due to errors + // "QUOTA_INFO_UNAVAILABLE" - Quota information is not available to client + // requests (e.g: + // regions.list). // "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource that - // requires a TOS they have not accepted. + // requires a TOS they have not + // accepted. // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a resource is // in use. // "RESOURCE_NOT_DELETED" - One or more of the resources set to auto-delete - // could not be deleted because they were in use. + // could not be deleted + // because they were in use. // "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is // ignored. // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in instance - // group manager is valid as such, but its application does not make a lot of - // sense, because it allows only single instance in instance group. + // group manager is valid as such, but + // its application does not make a lot of sense, because it allows only + // single instance in instance group. // "UNDECLARED_PROPERTIES" - When undeclared properties in the schema are // present // "UNREACHABLE" - A given scope cannot be reached. 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 []*InstanceListWarningData `json:"data,omitempty"` + // Data: [Output Only] Metadata about this warning in key: + // value format. For example: + // + // "data": [ + // { + // "key": "scope", + // "value": "zones/us-east1-d" + // } + Data []*HealthCheckServiceAggregatedListWarningData `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 @@ -18452,19 +23177,22 @@ type InstanceListWarning struct { NullFields []string `json:"-"` } -func (s *InstanceListWarning) MarshalJSON() ([]byte, error) { - type NoMethod InstanceListWarning - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s HealthCheckServiceAggregatedListWarning) MarshalJSON() ([]byte, error) { + type NoMethod HealthCheckServiceAggregatedListWarning + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -type InstanceListWarningData 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). +type HealthCheckServiceAggregatedListWarningData 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"` @@ -18481,30 +23209,66 @@ type InstanceListWarningData struct { NullFields []string `json:"-"` } -func (s *InstanceListWarningData) MarshalJSON() ([]byte, error) { - type NoMethod InstanceListWarningData - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s HealthCheckServiceAggregatedListWarningData) MarshalJSON() ([]byte, error) { + type NoMethod HealthCheckServiceAggregatedListWarningData + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -// InstanceListReferrers: Contains a list of instance referrers. -type InstanceListReferrers struct { - // Id: [Output Only] Unique identifier for the resource; defined by the server. +// HealthCheckServiceReference: A full or valid partial URL to a health check +// service. For example, the +// following are valid URLs: +// +// - +// +// https://www.googleapis.com/compute/beta/projects/project-id/regions/us-west1/healthCheckServices/health-check-service +// +// - +// +// projects/project-id/regions/us-west1/healthCheckServices/health-check-service +// +// - regions/us-west1/healthCheckServices/health-check-service +type HealthCheckServiceReference struct { + HealthCheckService string `json:"healthCheckService,omitempty"` + // ForceSendFields is a list of field names (e.g. "HealthCheckService") to + // unconditionally include in API requests. By default, fields with empty or + // default values are omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + ForceSendFields []string `json:"-"` + // NullFields is a list of field names (e.g. "HealthCheckService") to include + // in API requests with the JSON null value. By default, fields with empty + // values are omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s HealthCheckServiceReference) MarshalJSON() ([]byte, error) { + type NoMethod HealthCheckServiceReference + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +type HealthCheckServicesList struct { + // Id: Output only. [Output Only] Unique identifier for the resource; defined + // by the server. Id string `json:"id,omitempty"` - // Items: A list of Reference resources. - Items []*Reference `json:"items,omitempty"` - // Kind: [Output Only] Type of resource. Always compute#instanceListReferrers - // for lists of Instance referrers. + // Items: Output only. A list of HealthCheckService resources. + Items []*HealthCheckService `json:"items,omitempty"` + // Kind: Output only. [Output Only] Type of the resource. + // Alwayscompute#healthCheckServicesList for lists of + // HealthCheckServices. 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: Output only. [Output Only] This token allows you to get the + // next page of results for + // list requests. If the number of results is larger thanmaxResults, 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"` - // SelfLink: [Output Only] Server-defined URL for this resource. + // SelfLink: Output only. [Output Only] Server-defined URL for this resource. SelfLink string `json:"selfLink,omitempty"` // Warning: [Output Only] Informational warning message. - Warning *InstanceListReferrersWarning `json:"warning,omitempty"` + Warning *HealthCheckServicesListWarning `json:"warning,omitempty"` // ServerResponse contains the HTTP response code and headers from the server. googleapi.ServerResponse `json:"-"` @@ -18521,76 +23285,98 @@ type InstanceListReferrers struct { NullFields []string `json:"-"` } -func (s *InstanceListReferrers) MarshalJSON() ([]byte, error) { - type NoMethod InstanceListReferrers - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s HealthCheckServicesList) MarshalJSON() ([]byte, error) { + type NoMethod HealthCheckServicesList + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -// InstanceListReferrersWarning: [Output Only] Informational warning message. -type InstanceListReferrersWarning 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. +// HealthCheckServicesListWarning: [Output Only] Informational warning message. +type HealthCheckServicesListWarning 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" - Warning about failed cleanup of transient changes made - // by a failed operation. + // by a failed + // operation. // "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was created. // "DEPRECATED_TYPE_USED" - When deploying and at least one of the resources - // has a type marked as deprecated + // has a type marked as + // deprecated // "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk that is // larger than image size. // "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the - // resources has a type marked as experimental + // resources has a type marked as + // experimental // "EXTERNAL_API_WARNING" - Warning that is present in an external api call // "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been - // overridden. Deprecated unused field. + // overridden. + // Deprecated unused field. // "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an injected // kernel, which is deprecated. // "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB" - A WEIGHTED_MAGLEV backend - // service is associated with a health check that is not of type - // HTTP/HTTPS/HTTP2. + // service is associated with a health check that is + // not of type HTTP/HTTPS/HTTP2. // "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a // exceedingly large number of resources // "LIST_OVERHEAD_QUOTA_EXCEED" - Resource can't be retrieved due to list - // overhead quota exceed which captures the amount of resources filtered out by + // overhead quota exceed + // which captures the amount of resources filtered out by // user-defined list filter. // "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is not - // assigned to an instance on the network. + // assigned to an instance on the + // network. // "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot ip // forward. // "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE" - The route's nextHopInstance - // URL refers to an instance that does not have an ipv6 interface on the same - // network as the route. + // URL refers to an instance that does not have an + // ipv6 interface on the same network as the route. // "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL refers to // an instance that does not exist. // "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance URL - // refers to an instance that is not on the same network as the route. + // refers to an instance that is not on the + // same network as the route. // "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not have a // status of RUNNING. // "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to continue - // the process despite the mentioned error. + // the process despite + // the mentioned error. // "NO_RESULTS_ON_PAGE" - No results are present on a particular list page. // "PARTIAL_SUCCESS" - Success is reported, but some results may be missing // due to errors + // "QUOTA_INFO_UNAVAILABLE" - Quota information is not available to client + // requests (e.g: + // regions.list). // "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource that - // requires a TOS they have not accepted. + // requires a TOS they have not + // accepted. // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a resource is // in use. // "RESOURCE_NOT_DELETED" - One or more of the resources set to auto-delete - // could not be deleted because they were in use. + // could not be deleted + // because they were in use. // "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is // ignored. // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in instance - // group manager is valid as such, but its application does not make a lot of - // sense, because it allows only single instance in instance group. + // group manager is valid as such, but + // its application does not make a lot of sense, because it allows only + // single instance in instance group. // "UNDECLARED_PROPERTIES" - When undeclared properties in the schema are // present // "UNREACHABLE" - A given scope cannot be reached. 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 []*InstanceListReferrersWarningData `json:"data,omitempty"` + // Data: [Output Only] Metadata about this warning in key: + // value format. For example: + // + // "data": [ + // { + // "key": "scope", + // "value": "zones/us-east1-d" + // } + Data []*HealthCheckServicesListWarningData `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 @@ -18606,19 +23392,22 @@ type InstanceListReferrersWarning struct { NullFields []string `json:"-"` } -func (s *InstanceListReferrersWarning) MarshalJSON() ([]byte, error) { - type NoMethod InstanceListReferrersWarning - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s HealthCheckServicesListWarning) MarshalJSON() ([]byte, error) { + type NoMethod HealthCheckServicesListWarning + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -type InstanceListReferrersWarningData 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). +type HealthCheckServicesListWarningData 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"` @@ -18635,589 +23424,124 @@ type InstanceListReferrersWarningData struct { NullFields []string `json:"-"` } -func (s *InstanceListReferrersWarningData) MarshalJSON() ([]byte, error) { - type NoMethod InstanceListReferrersWarningData - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) -} - -type InstanceManagedByIgmError struct { - // Error: [Output Only] Contents of the error. - Error *InstanceManagedByIgmErrorManagedInstanceError `json:"error,omitempty"` - // InstanceActionDetails: [Output Only] Details of the instance action that - // triggered this error. May be null, if the error was not caused by an action - // on an instance. This field is optional. - InstanceActionDetails *InstanceManagedByIgmErrorInstanceActionDetails `json:"instanceActionDetails,omitempty"` - // Timestamp: [Output Only] The time that this error occurred. This value is in - // RFC3339 text format. - Timestamp string `json:"timestamp,omitempty"` - // ForceSendFields is a list of field names (e.g. "Error") to unconditionally - // include in API requests. By default, fields with empty or default values are - // omitted from API requests. See - // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more - // details. - ForceSendFields []string `json:"-"` - // NullFields is a list of field names (e.g. "Error") to include in API - // requests with the JSON null value. By default, fields with empty values are - // omitted from API requests. See - // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. - NullFields []string `json:"-"` -} - -func (s *InstanceManagedByIgmError) MarshalJSON() ([]byte, error) { - type NoMethod InstanceManagedByIgmError - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) -} - -type InstanceManagedByIgmErrorInstanceActionDetails struct { - // Action: [Output Only] Action that managed instance group was executing on - // the instance when the error occurred. Possible values: - // - // Possible values: - // "ABANDONING" - The managed instance group is abandoning this instance. The - // instance will be removed from the instance group and from any target pools - // that are associated with this group. - // "CREATING" - The managed instance group is creating this instance. If the - // group fails to create this instance, it will try again until it is - // successful. - // "CREATING_WITHOUT_RETRIES" - The managed instance group is attempting to - // create this instance only once. If the group fails to create this instance, - // it does not try again and the group's targetSize value is decreased. - // "DELETING" - The managed instance group is permanently deleting this - // instance. - // "NONE" - The managed instance group has not scheduled any actions for this - // instance. - // "RECREATING" - The managed instance group is recreating this instance. - // "REFRESHING" - The managed instance group is applying configuration - // changes to the instance without stopping it. For example, the group can - // update the target pool list for an instance without stopping that instance. - // "RESTARTING" - The managed instance group is restarting this instance. - // "RESUMING" - The managed instance group is resuming this instance. - // "STARTING" - The managed instance group is starting this instance. - // "STOPPING" - The managed instance group is stopping this instance. - // "SUSPENDING" - The managed instance group is suspending this instance. - // "VERIFYING" - The managed instance group is verifying this already created - // instance. Verification happens every time the instance is (re)created or - // restarted and consists of: 1. Waiting until health check specified as part - // of this managed instance group's autohealing policy reports HEALTHY. Note: - // Applies only if autohealing policy has a health check specified 2. Waiting - // for addition verification steps performed as post-instance creation (subject - // to future extensions). - Action string `json:"action,omitempty"` - // Instance: [Output Only] The URL of the instance. The URL can be set even if - // the instance has not yet been created. - Instance string `json:"instance,omitempty"` - // Version: [Output Only] Version this instance was created from, or was being - // created from, but the creation failed. Corresponds to one of the versions - // that were set on the Instance Group Manager resource at the time this - // instance was being created. - Version *ManagedInstanceVersion `json:"version,omitempty"` - // ForceSendFields is a list of field names (e.g. "Action") to unconditionally - // include in API requests. By default, fields with empty or default values are - // omitted from API requests. See - // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more - // details. - ForceSendFields []string `json:"-"` - // NullFields is a list of field names (e.g. "Action") to include in API - // requests with the JSON null value. By default, fields with empty values are - // omitted from API requests. See - // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. - NullFields []string `json:"-"` -} - -func (s *InstanceManagedByIgmErrorInstanceActionDetails) MarshalJSON() ([]byte, error) { - type NoMethod InstanceManagedByIgmErrorInstanceActionDetails - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) -} - -type InstanceManagedByIgmErrorManagedInstanceError struct { - // Code: [Output Only] Error code. - Code string `json:"code,omitempty"` - // Message: [Output Only] Error message. - 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 or default values are - // omitted from API requests. See - // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more - // details. - 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. See - // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. - NullFields []string `json:"-"` -} - -func (s *InstanceManagedByIgmErrorManagedInstanceError) MarshalJSON() ([]byte, error) { - type NoMethod InstanceManagedByIgmErrorManagedInstanceError - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) -} - -type InstanceMoveRequest struct { - // DestinationZone: The URL of the destination zone to move the instance. This - // can be a full or partial URL. For example, the following are all valid URLs - // to a zone: - - // https://www.googleapis.com/compute/v1/projects/project/zones/zone - - // projects/project/zones/zone - zones/zone - DestinationZone string `json:"destinationZone,omitempty"` - // TargetInstance: The URL of the target instance to move. This can be a full - // or partial URL. For example, the following are all valid URLs to an - // instance: - - // https://www.googleapis.com/compute/v1/projects/project/zones/zone - // /instances/instance - projects/project/zones/zone/instances/instance - - // zones/zone/instances/instance - TargetInstance string `json:"targetInstance,omitempty"` - // ForceSendFields is a list of field names (e.g. "DestinationZone") to - // unconditionally include in API requests. By default, fields with empty or - // default values are omitted from API requests. See - // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more - // details. - ForceSendFields []string `json:"-"` - // NullFields is a list of field names (e.g. "DestinationZone") to include in - // API requests with the JSON null value. By default, fields with empty values - // are omitted from API requests. See - // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. - NullFields []string `json:"-"` -} - -func (s *InstanceMoveRequest) MarshalJSON() ([]byte, error) { - type NoMethod InstanceMoveRequest - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) -} - -// InstanceParams: Additional instance params. -type InstanceParams struct { - // ResourceManagerTags: Resource manager tags to be bound to the instance. Tag - // keys and values have the same definition as resource manager tags. Keys must - // be in the format `tagKeys/{tag_key_id}`, and values are in the format - // `tagValues/456`. The field is ignored (both PUT & PATCH) when empty. - ResourceManagerTags map[string]string `json:"resourceManagerTags,omitempty"` - // ForceSendFields is a list of field names (e.g. "ResourceManagerTags") to - // unconditionally include in API requests. By default, fields with empty or - // default values are omitted from API requests. See - // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more - // details. - ForceSendFields []string `json:"-"` - // NullFields is a list of field names (e.g. "ResourceManagerTags") to include - // in API requests with the JSON null value. By default, fields with empty - // values are omitted from API requests. See - // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. - NullFields []string `json:"-"` -} - -func (s *InstanceParams) MarshalJSON() ([]byte, error) { - type NoMethod InstanceParams - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) -} - -type InstanceProperties struct { - // AdvancedMachineFeatures: Controls for advanced machine-related behavior - // features. Note that for MachineImage, this is not supported yet. - AdvancedMachineFeatures *AdvancedMachineFeatures `json:"advancedMachineFeatures,omitempty"` - // CanIpForward: Enables instances created based on these properties to send - // packets with source IP addresses other than their own and receive packets - // with destination IP addresses other than their own. If these instances will - // be used as an IP gateway or it will be set as the next-hop in a Route - // resource, specify true. If unsure, leave this set to false. See the Enable - // IP forwarding documentation for more information. - CanIpForward bool `json:"canIpForward,omitempty"` - // ConfidentialInstanceConfig: Specifies the Confidential Instance options. - // Note that for MachineImage, this is not supported yet. - ConfidentialInstanceConfig *ConfidentialInstanceConfig `json:"confidentialInstanceConfig,omitempty"` - // Description: An optional text description for the instances that are created - // from these properties. - Description string `json:"description,omitempty"` - // Disks: An array of disks that are associated with the instances that are - // created from these properties. - Disks []*AttachedDisk `json:"disks,omitempty"` - // GuestAccelerators: A list of guest accelerator cards' type and count to use - // for instances created from these properties. - GuestAccelerators []*AcceleratorConfig `json:"guestAccelerators,omitempty"` - // KeyRevocationActionType: KeyRevocationActionType of the instance. Supported - // options are "STOP" and "NONE". The default value is "NONE" if it is not - // specified. - // - // Possible values: - // "KEY_REVOCATION_ACTION_TYPE_UNSPECIFIED" - Default value. This value is - // unused. - // "NONE" - Indicates user chose no operation. - // "STOP" - Indicates user chose to opt for VM shutdown on key revocation. - KeyRevocationActionType string `json:"keyRevocationActionType,omitempty"` - // Labels: Labels to apply to instances that are created from these properties. - Labels map[string]string `json:"labels,omitempty"` - // MachineType: The machine type to use for instances that are created from - // these properties. - MachineType string `json:"machineType,omitempty"` - // Metadata: The metadata key/value pairs to assign to instances that are - // created from these properties. These pairs can consist of custom metadata or - // predefined keys. See Project and instance metadata for more information. - Metadata *Metadata `json:"metadata,omitempty"` - // MinCpuPlatform: Minimum cpu/platform to be used by instances. The instance - // may be scheduled on the specified or newer cpu/platform. Applicable values - // are the friendly names of CPU platforms, such as minCpuPlatform: "Intel - // Haswell" or minCpuPlatform: "Intel Sandy Bridge". For more information, read - // Specifying a Minimum CPU Platform. - MinCpuPlatform string `json:"minCpuPlatform,omitempty"` - // NetworkInterfaces: An array of network access configurations for this - // interface. - NetworkInterfaces []*NetworkInterface `json:"networkInterfaces,omitempty"` - // NetworkPerformanceConfig: Note that for MachineImage, this is not supported - // yet. - NetworkPerformanceConfig *NetworkPerformanceConfig `json:"networkPerformanceConfig,omitempty"` - // PrivateIpv6GoogleAccess: The private IPv6 google access type for VMs. If not - // specified, use INHERIT_FROM_SUBNETWORK as default. Note that for - // MachineImage, this is not supported yet. - // - // Possible values: - // "ENABLE_BIDIRECTIONAL_ACCESS_TO_GOOGLE" - Bidirectional private IPv6 - // access to/from Google services. If specified, the subnetwork who is attached - // to the instance's default network interface will be assigned an internal - // IPv6 prefix if it doesn't have before. - // "ENABLE_OUTBOUND_VM_ACCESS_TO_GOOGLE" - Outbound private IPv6 access from - // VMs in this subnet to Google services. If specified, the subnetwork who is - // attached to the instance's default network interface will be assigned an - // internal IPv6 prefix if it doesn't have before. - // "INHERIT_FROM_SUBNETWORK" - Each network interface inherits - // PrivateIpv6GoogleAccess from its subnetwork. - PrivateIpv6GoogleAccess string `json:"privateIpv6GoogleAccess,omitempty"` - // ReservationAffinity: Specifies the reservations that instances can consume - // from. Note that for MachineImage, this is not supported yet. - ReservationAffinity *ReservationAffinity `json:"reservationAffinity,omitempty"` - // ResourceManagerTags: Resource manager tags to be bound to the instance. Tag - // keys and values have the same definition as resource manager tags. Keys must - // be in the format `tagKeys/{tag_key_id}`, and values are in the format - // `tagValues/456`. The field is ignored (both PUT & PATCH) when empty. - ResourceManagerTags map[string]string `json:"resourceManagerTags,omitempty"` - // ResourcePolicies: Resource policies (names, not URLs) applied to instances - // created from these properties. Note that for MachineImage, this is not - // supported yet. - ResourcePolicies []string `json:"resourcePolicies,omitempty"` - // Scheduling: Specifies the scheduling options for the instances that are - // created from these properties. - Scheduling *Scheduling `json:"scheduling,omitempty"` - // ServiceAccounts: A list of service accounts with specified scopes. Access - // tokens for these service accounts are available to the instances that are - // created from these properties. Use metadata queries to obtain the access - // tokens for these instances. - ServiceAccounts []*ServiceAccount `json:"serviceAccounts,omitempty"` - // ShieldedInstanceConfig: Note that for MachineImage, this is not supported - // yet. - ShieldedInstanceConfig *ShieldedInstanceConfig `json:"shieldedInstanceConfig,omitempty"` - // Tags: A list of tags to apply to the instances that are created from these - // properties. The tags identify valid sources or targets for network - // firewalls. The setTags method can modify this list of tags. Each tag within - // the list must comply with RFC1035. - Tags *Tags `json:"tags,omitempty"` - // ForceSendFields is a list of field names (e.g. "AdvancedMachineFeatures") to - // unconditionally include in API requests. By default, fields with empty or - // default values are omitted from API requests. See - // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more - // details. - ForceSendFields []string `json:"-"` - // NullFields is a list of field names (e.g. "AdvancedMachineFeatures") to - // include in API requests with the JSON null value. By default, fields with - // empty values are omitted from API requests. See - // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. - NullFields []string `json:"-"` -} - -func (s *InstanceProperties) MarshalJSON() ([]byte, error) { - type NoMethod InstanceProperties - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) -} - -// InstancePropertiesPatch: Represents the change that you want to make to the -// instance properties. -type InstancePropertiesPatch struct { - // Labels: The label key-value pairs that you want to patch onto the instance. - Labels map[string]string `json:"labels,omitempty"` - // Metadata: The metadata key-value pairs that you want to patch onto the - // instance. For more information, see Project and instance metadata. - Metadata map[string]string `json:"metadata,omitempty"` - // ForceSendFields is a list of field names (e.g. "Labels") to unconditionally - // include in API requests. By default, fields with empty or default values are - // omitted from API requests. See - // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more - // details. - ForceSendFields []string `json:"-"` - // NullFields is a list of field names (e.g. "Labels") to include in API - // requests with the JSON null value. By default, fields with empty values are - // omitted from API requests. See - // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. - NullFields []string `json:"-"` -} - -func (s *InstancePropertiesPatch) MarshalJSON() ([]byte, error) { - type NoMethod InstancePropertiesPatch - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) -} - -type InstanceReference struct { - // Instance: The URL for a specific instance. @required - // compute.instancegroups.addInstances/removeInstances - Instance string `json:"instance,omitempty"` - // ForceSendFields is a list of field names (e.g. "Instance") to - // unconditionally include in API requests. By default, fields with empty or - // default values are omitted from API requests. See - // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more - // details. - ForceSendFields []string `json:"-"` - // NullFields is a list of field names (e.g. "Instance") to include in API - // requests with the JSON null value. By default, fields with empty values are - // omitted from API requests. See - // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. - NullFields []string `json:"-"` -} - -func (s *InstanceReference) MarshalJSON() ([]byte, error) { - type NoMethod InstanceReference - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s HealthCheckServicesListWarningData) MarshalJSON() ([]byte, error) { + type NoMethod HealthCheckServicesListWarningData + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -// InstanceSettings: Represents a Instance Settings resource. You can use -// instance settings to configure default settings for Compute Engine VM -// instances. For example, you can use it to configure default machine type of -// Compute Engine VM instances. -type InstanceSettings struct { - // Fingerprint: Specifies a fingerprint for instance settings, which is - // essentially a hash of the instance settings resource's contents and used for - // optimistic locking. The fingerprint is initially generated by Compute Engine - // and changes after every request to modify or update the instance settings - // resource. You must always provide an up-to-date fingerprint hash in order to - // update or change the resource, otherwise the request will fail with error - // 412 conditionNotMet. To see the latest fingerprint, make a get() request to - // retrieve the resource. - Fingerprint string `json:"fingerprint,omitempty"` - // Kind: [Output Only] Type of the resource. Always compute#instance_settings - // for instance settings. - Kind string `json:"kind,omitempty"` - // Metadata: The metadata key/value pairs assigned to all the instances in the - // corresponding scope. - Metadata *InstanceSettingsMetadata `json:"metadata,omitempty"` - // Zone: [Output Only] URL of the zone where the resource resides You must - // specify this field as part of the HTTP request URL. It is not settable as a - // field in the request body. - Zone string `json:"zone,omitempty"` - - // ServerResponse contains the HTTP response code and headers from the server. - googleapi.ServerResponse `json:"-"` - // ForceSendFields is a list of field names (e.g. "Fingerprint") to +type HealthCheckServicesScopedList struct { + // Resources: A list of HealthCheckServices contained in this scope. + Resources []*HealthCheckService `json:"resources,omitempty"` + // Warning: Informational warning which replaces the list of + // backend services when the list is empty. + Warning *HealthCheckServicesScopedListWarning `json:"warning,omitempty"` + // ForceSendFields is a list of field names (e.g. "Resources") to // unconditionally include in API requests. By default, fields with empty or // default values are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. ForceSendFields []string `json:"-"` - // NullFields is a list of field names (e.g. "Fingerprint") to include in API - // requests with the JSON null value. By default, fields with empty values are - // omitted from API requests. See - // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. - NullFields []string `json:"-"` -} - -func (s *InstanceSettings) MarshalJSON() ([]byte, error) { - type NoMethod InstanceSettings - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) -} - -type InstanceSettingsMetadata struct { - // Items: A metadata key/value items map. The total size of all keys and values - // must be less than 512KB. - Items map[string]string `json:"items,omitempty"` - // Kind: [Output Only] Type of the resource. Always compute#metadata for - // metadata. - Kind string `json:"kind,omitempty"` - // ForceSendFields is a list of field names (e.g. "Items") to unconditionally - // include in API requests. By default, fields with empty or default values are - // omitted from API requests. See - // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more - // details. - ForceSendFields []string `json:"-"` - // NullFields is a list of field names (e.g. "Items") to include in API + // NullFields is a list of field names (e.g. "Resources") to include in API // requests with the JSON null value. By default, fields with empty values are // omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } -func (s *InstanceSettingsMetadata) MarshalJSON() ([]byte, error) { - type NoMethod InstanceSettingsMetadata - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) -} - -// InstanceTemplate: Represents an Instance Template resource. Google Compute -// Engine has two Instance Template resources: * Global -// (/compute/docs/reference/rest/v1/instanceTemplates) * Regional -// (/compute/docs/reference/rest/v1/regionInstanceTemplates) You can reuse a -// global instance template in different regions whereas you can use a regional -// instance template in a specified region only. If you want to reduce -// cross-region dependency or achieve data residency, use a regional instance -// template. To create VMs, managed instance groups, and reservations, you can -// use either global or regional instance templates. For more information, read -// Instance Templates. -type InstanceTemplate struct { - // CreationTimestamp: [Output Only] The creation timestamp for this instance - // template in RFC3339 text format. - CreationTimestamp string `json:"creationTimestamp,omitempty"` - // Description: An optional description of this resource. Provide this property - // when you create the resource. - Description string `json:"description,omitempty"` - // Id: [Output Only] A unique identifier for this instance template. The server - // defines this identifier. - Id uint64 `json:"id,omitempty,string"` - // Kind: [Output Only] The resource type, which is always - // compute#instanceTemplate for instance templates. - Kind string `json:"kind,omitempty"` - // Name: Name of the resource; provided by the client when the resource is - // created. The name must be 1-63 characters long, and comply with RFC1035. - // 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. - Name string `json:"name,omitempty"` - // Properties: The instance properties for this instance template. - Properties *InstanceProperties `json:"properties,omitempty"` - // Region: [Output Only] URL of the region where the instance template resides. - // Only applicable for regional resources. - Region string `json:"region,omitempty"` - // SelfLink: [Output Only] The URL for this instance template. The server - // defines this URL. - 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 server. - googleapi.ServerResponse `json:"-"` - // ForceSendFields is a list of field names (e.g. "CreationTimestamp") to - // unconditionally include in API requests. By default, fields with empty or - // default values are omitted from API requests. See - // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more - // details. - ForceSendFields []string `json:"-"` - // NullFields is a list of field names (e.g. "CreationTimestamp") to include in - // API requests with the JSON null value. By default, fields with empty values - // are omitted from API requests. See - // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. - NullFields []string `json:"-"` -} - -func (s *InstanceTemplate) MarshalJSON() ([]byte, error) { - type NoMethod InstanceTemplate - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) -} - -// InstanceTemplateAggregatedList: Contains a list of -// InstanceTemplatesScopedList. -type InstanceTemplateAggregatedList struct { - // Id: [Output Only] Unique identifier for the resource; defined by the server. - Id string `json:"id,omitempty"` - // Items: A list of InstanceTemplatesScopedList resources. - Items map[string]InstanceTemplatesScopedList `json:"items,omitempty"` - // Kind: Type of resource. - 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"` - // SelfLink: [Output Only] Server-defined URL for this resource. - SelfLink string `json:"selfLink,omitempty"` - // Warning: [Output Only] Informational warning message. - Warning *InstanceTemplateAggregatedListWarning `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 or default values are - // omitted from API requests. See - // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more - // details. - 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. See - // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. - NullFields []string `json:"-"` -} - -func (s *InstanceTemplateAggregatedList) MarshalJSON() ([]byte, error) { - type NoMethod InstanceTemplateAggregatedList - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s HealthCheckServicesScopedList) MarshalJSON() ([]byte, error) { + type NoMethod HealthCheckServicesScopedList + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -// InstanceTemplateAggregatedListWarning: [Output Only] Informational warning -// message. -type InstanceTemplateAggregatedListWarning 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. +// HealthCheckServicesScopedListWarning: Informational warning which replaces +// the list of +// backend services when the list is empty. +type HealthCheckServicesScopedListWarning 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" - Warning about failed cleanup of transient changes made - // by a failed operation. + // by a failed + // operation. // "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was created. // "DEPRECATED_TYPE_USED" - When deploying and at least one of the resources - // has a type marked as deprecated + // has a type marked as + // deprecated // "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk that is // larger than image size. // "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the - // resources has a type marked as experimental + // resources has a type marked as + // experimental // "EXTERNAL_API_WARNING" - Warning that is present in an external api call // "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been - // overridden. Deprecated unused field. + // overridden. + // Deprecated unused field. // "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an injected // kernel, which is deprecated. // "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB" - A WEIGHTED_MAGLEV backend - // service is associated with a health check that is not of type - // HTTP/HTTPS/HTTP2. + // service is associated with a health check that is + // not of type HTTP/HTTPS/HTTP2. // "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a // exceedingly large number of resources // "LIST_OVERHEAD_QUOTA_EXCEED" - Resource can't be retrieved due to list - // overhead quota exceed which captures the amount of resources filtered out by + // overhead quota exceed + // which captures the amount of resources filtered out by // user-defined list filter. // "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is not - // assigned to an instance on the network. + // assigned to an instance on the + // network. // "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot ip // forward. // "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE" - The route's nextHopInstance - // URL refers to an instance that does not have an ipv6 interface on the same - // network as the route. + // URL refers to an instance that does not have an + // ipv6 interface on the same network as the route. // "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL refers to // an instance that does not exist. // "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance URL - // refers to an instance that is not on the same network as the route. + // refers to an instance that is not on the + // same network as the route. // "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not have a // status of RUNNING. // "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to continue - // the process despite the mentioned error. + // the process despite + // the mentioned error. // "NO_RESULTS_ON_PAGE" - No results are present on a particular list page. // "PARTIAL_SUCCESS" - Success is reported, but some results may be missing // due to errors + // "QUOTA_INFO_UNAVAILABLE" - Quota information is not available to client + // requests (e.g: + // regions.list). // "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource that - // requires a TOS they have not accepted. + // requires a TOS they have not + // accepted. // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a resource is // in use. // "RESOURCE_NOT_DELETED" - One or more of the resources set to auto-delete - // could not be deleted because they were in use. + // could not be deleted + // because they were in use. // "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is // ignored. // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in instance - // group manager is valid as such, but its application does not make a lot of - // sense, because it allows only single instance in instance group. + // group manager is valid as such, but + // its application does not make a lot of sense, because it allows only + // single instance in instance group. // "UNDECLARED_PROPERTIES" - When undeclared properties in the schema are // present // "UNREACHABLE" - A given scope cannot be reached. 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 []*InstanceTemplateAggregatedListWarningData `json:"data,omitempty"` + // Data: [Output Only] Metadata about this warning in key: + // value format. For example: + // + // "data": [ + // { + // "key": "scope", + // "value": "zones/us-east1-d" + // } + Data []*HealthCheckServicesScopedListWarningData `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 @@ -19233,19 +23557,22 @@ type InstanceTemplateAggregatedListWarning struct { NullFields []string `json:"-"` } -func (s *InstanceTemplateAggregatedListWarning) MarshalJSON() ([]byte, error) { - type NoMethod InstanceTemplateAggregatedListWarning - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s HealthCheckServicesScopedListWarning) MarshalJSON() ([]byte, error) { + type NoMethod HealthCheckServicesScopedListWarning + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -type InstanceTemplateAggregatedListWarningData 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). +type HealthCheckServicesScopedListWarningData 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"` @@ -19262,30 +23589,32 @@ type InstanceTemplateAggregatedListWarningData struct { NullFields []string `json:"-"` } -func (s *InstanceTemplateAggregatedListWarningData) MarshalJSON() ([]byte, error) { - type NoMethod InstanceTemplateAggregatedListWarningData - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s HealthCheckServicesScopedListWarningData) MarshalJSON() ([]byte, error) { + type NoMethod HealthCheckServicesScopedListWarningData + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -// InstanceTemplateList: A list of instance templates. -type InstanceTemplateList struct { +type HealthChecksAggregatedList struct { // Id: [Output Only] Unique identifier for the resource; defined by the server. Id string `json:"id,omitempty"` - // Items: A list of InstanceTemplate resources. - Items []*InstanceTemplate `json:"items,omitempty"` - // Kind: [Output Only] The resource type, which is always - // compute#instanceTemplatesListResponse for instance template lists. + // Items: A list of HealthChecksScopedList resources. + Items map[string]HealthChecksScopedList `json:"items,omitempty"` + // Kind: Output only. Type of resource. 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. + // results for + // list requests. If the number of results is larger thanmaxResults, 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"` - // SelfLink: [Output Only] Server-defined URL for this resource. + // SelfLink: Output only. [Output Only] Server-defined URL for this resource. SelfLink string `json:"selfLink,omitempty"` + // Unreachables: Output only. [Output Only] Unreachable resources. + Unreachables []string `json:"unreachables,omitempty"` // Warning: [Output Only] Informational warning message. - Warning *InstanceTemplateListWarning `json:"warning,omitempty"` + Warning *HealthChecksAggregatedListWarning `json:"warning,omitempty"` // ServerResponse contains the HTTP response code and headers from the server. googleapi.ServerResponse `json:"-"` @@ -19302,77 +23631,100 @@ type InstanceTemplateList struct { NullFields []string `json:"-"` } -func (s *InstanceTemplateList) MarshalJSON() ([]byte, error) { - type NoMethod InstanceTemplateList - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s HealthChecksAggregatedList) MarshalJSON() ([]byte, error) { + type NoMethod HealthChecksAggregatedList + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -// InstanceTemplateListWarning: [Output Only] Informational warning message. -type InstanceTemplateListWarning 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. +// HealthChecksAggregatedListWarning: [Output Only] Informational warning +// message. +type HealthChecksAggregatedListWarning 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" - Warning about failed cleanup of transient changes made - // by a failed operation. + // by a failed + // operation. // "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was created. // "DEPRECATED_TYPE_USED" - When deploying and at least one of the resources - // has a type marked as deprecated + // has a type marked as + // deprecated // "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk that is // larger than image size. // "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the - // resources has a type marked as experimental + // resources has a type marked as + // experimental // "EXTERNAL_API_WARNING" - Warning that is present in an external api call // "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been - // overridden. Deprecated unused field. + // overridden. + // Deprecated unused field. // "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an injected // kernel, which is deprecated. // "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB" - A WEIGHTED_MAGLEV backend - // service is associated with a health check that is not of type - // HTTP/HTTPS/HTTP2. + // service is associated with a health check that is + // not of type HTTP/HTTPS/HTTP2. // "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a // exceedingly large number of resources // "LIST_OVERHEAD_QUOTA_EXCEED" - Resource can't be retrieved due to list - // overhead quota exceed which captures the amount of resources filtered out by + // overhead quota exceed + // which captures the amount of resources filtered out by // user-defined list filter. // "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is not - // assigned to an instance on the network. + // assigned to an instance on the + // network. // "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot ip // forward. // "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE" - The route's nextHopInstance - // URL refers to an instance that does not have an ipv6 interface on the same - // network as the route. + // URL refers to an instance that does not have an + // ipv6 interface on the same network as the route. // "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL refers to // an instance that does not exist. // "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance URL - // refers to an instance that is not on the same network as the route. + // refers to an instance that is not on the + // same network as the route. // "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not have a // status of RUNNING. // "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to continue - // the process despite the mentioned error. + // the process despite + // the mentioned error. // "NO_RESULTS_ON_PAGE" - No results are present on a particular list page. // "PARTIAL_SUCCESS" - Success is reported, but some results may be missing // due to errors + // "QUOTA_INFO_UNAVAILABLE" - Quota information is not available to client + // requests (e.g: + // regions.list). // "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource that - // requires a TOS they have not accepted. + // requires a TOS they have not + // accepted. // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a resource is // in use. // "RESOURCE_NOT_DELETED" - One or more of the resources set to auto-delete - // could not be deleted because they were in use. + // could not be deleted + // because they were in use. // "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is // ignored. // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in instance - // group manager is valid as such, but its application does not make a lot of - // sense, because it allows only single instance in instance group. + // group manager is valid as such, but + // its application does not make a lot of sense, because it allows only + // single instance in instance group. // "UNDECLARED_PROPERTIES" - When undeclared properties in the schema are // present // "UNREACHABLE" - A given scope cannot be reached. 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 []*InstanceTemplateListWarningData `json:"data,omitempty"` - // Message: [Output Only] A human-readable description of the warning code. + // Data: [Output Only] Metadata about this warning in key: + // value format. For example: + // + // "data": [ + // { + // "key": "scope", + // "value": "zones/us-east1-d" + // } + Data []*HealthChecksAggregatedListWarningData `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 or default values are @@ -19387,19 +23739,22 @@ type InstanceTemplateListWarning struct { NullFields []string `json:"-"` } -func (s *InstanceTemplateListWarning) MarshalJSON() ([]byte, error) { - type NoMethod InstanceTemplateListWarning - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s HealthChecksAggregatedListWarning) MarshalJSON() ([]byte, error) { + type NoMethod HealthChecksAggregatedListWarning + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -type InstanceTemplateListWarningData 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). +type HealthChecksAggregatedListWarningData 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"` @@ -19416,102 +23771,124 @@ type InstanceTemplateListWarningData struct { NullFields []string `json:"-"` } -func (s *InstanceTemplateListWarningData) MarshalJSON() ([]byte, error) { - type NoMethod InstanceTemplateListWarningData - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s HealthChecksAggregatedListWarningData) MarshalJSON() ([]byte, error) { + type NoMethod HealthChecksAggregatedListWarningData + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -type InstanceTemplatesScopedList struct { - // InstanceTemplates: [Output Only] A list of instance templates that are - // contained within the specified project and zone. - InstanceTemplates []*InstanceTemplate `json:"instanceTemplates,omitempty"` - // Warning: [Output Only] An informational warning that replaces the list of - // instance templates when the list is empty. - Warning *InstanceTemplatesScopedListWarning `json:"warning,omitempty"` - // ForceSendFields is a list of field names (e.g. "InstanceTemplates") to +type HealthChecksScopedList struct { + // HealthChecks: A list of HealthChecks contained in this scope. + HealthChecks []*HealthCheck `json:"healthChecks,omitempty"` + // Warning: Informational warning which replaces the list of + // backend services when the list is empty. + Warning *HealthChecksScopedListWarning `json:"warning,omitempty"` + // ForceSendFields is a list of field names (e.g. "HealthChecks") to // unconditionally include in API requests. By default, fields with empty or // default values are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. ForceSendFields []string `json:"-"` - // NullFields is a list of field names (e.g. "InstanceTemplates") to include in - // API requests with the JSON null value. By default, fields with empty values - // are omitted from API requests. See + // NullFields is a list of field names (e.g. "HealthChecks") to include in API + // requests with the JSON null value. By default, fields with empty values are + // omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } -func (s *InstanceTemplatesScopedList) MarshalJSON() ([]byte, error) { - type NoMethod InstanceTemplatesScopedList - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s HealthChecksScopedList) MarshalJSON() ([]byte, error) { + type NoMethod HealthChecksScopedList + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -// InstanceTemplatesScopedListWarning: [Output Only] An informational warning -// that replaces the list of instance templates when the list is empty. -type InstanceTemplatesScopedListWarning 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. +// HealthChecksScopedListWarning: Informational warning which replaces the list +// of +// backend services when the list is empty. +type HealthChecksScopedListWarning 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" - Warning about failed cleanup of transient changes made - // by a failed operation. + // by a failed + // operation. // "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was created. // "DEPRECATED_TYPE_USED" - When deploying and at least one of the resources - // has a type marked as deprecated + // has a type marked as + // deprecated // "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk that is // larger than image size. // "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the - // resources has a type marked as experimental + // resources has a type marked as + // experimental // "EXTERNAL_API_WARNING" - Warning that is present in an external api call // "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been - // overridden. Deprecated unused field. + // overridden. + // Deprecated unused field. // "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an injected // kernel, which is deprecated. // "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB" - A WEIGHTED_MAGLEV backend - // service is associated with a health check that is not of type - // HTTP/HTTPS/HTTP2. + // service is associated with a health check that is + // not of type HTTP/HTTPS/HTTP2. // "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a // exceedingly large number of resources // "LIST_OVERHEAD_QUOTA_EXCEED" - Resource can't be retrieved due to list - // overhead quota exceed which captures the amount of resources filtered out by + // overhead quota exceed + // which captures the amount of resources filtered out by // user-defined list filter. // "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is not - // assigned to an instance on the network. + // assigned to an instance on the + // network. // "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot ip // forward. // "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE" - The route's nextHopInstance - // URL refers to an instance that does not have an ipv6 interface on the same - // network as the route. + // URL refers to an instance that does not have an + // ipv6 interface on the same network as the route. // "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL refers to // an instance that does not exist. // "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance URL - // refers to an instance that is not on the same network as the route. + // refers to an instance that is not on the + // same network as the route. // "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not have a // status of RUNNING. // "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to continue - // the process despite the mentioned error. + // the process despite + // the mentioned error. // "NO_RESULTS_ON_PAGE" - No results are present on a particular list page. // "PARTIAL_SUCCESS" - Success is reported, but some results may be missing // due to errors + // "QUOTA_INFO_UNAVAILABLE" - Quota information is not available to client + // requests (e.g: + // regions.list). // "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource that - // requires a TOS they have not accepted. + // requires a TOS they have not + // accepted. // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a resource is // in use. // "RESOURCE_NOT_DELETED" - One or more of the resources set to auto-delete - // could not be deleted because they were in use. + // could not be deleted + // because they were in use. // "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is // ignored. // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in instance - // group manager is valid as such, but its application does not make a lot of - // sense, because it allows only single instance in instance group. + // group manager is valid as such, but + // its application does not make a lot of sense, because it allows only + // single instance in instance group. // "UNDECLARED_PROPERTIES" - When undeclared properties in the schema are // present // "UNREACHABLE" - A given scope cannot be reached. 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 []*InstanceTemplatesScopedListWarningData `json:"data,omitempty"` + // Data: [Output Only] Metadata about this warning in key: + // value format. For example: + // + // "data": [ + // { + // "key": "scope", + // "value": "zones/us-east1-d" + // } + Data []*HealthChecksScopedListWarningData `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 @@ -19527,19 +23904,22 @@ type InstanceTemplatesScopedListWarning struct { NullFields []string `json:"-"` } -func (s *InstanceTemplatesScopedListWarning) MarshalJSON() ([]byte, error) { - type NoMethod InstanceTemplatesScopedListWarning - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s HealthChecksScopedListWarning) MarshalJSON() ([]byte, error) { + type NoMethod HealthChecksScopedListWarning + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -type InstanceTemplatesScopedListWarningData 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). +type HealthChecksScopedListWarningData 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"` @@ -19556,271 +23936,243 @@ type InstanceTemplatesScopedListWarningData struct { NullFields []string `json:"-"` } -func (s *InstanceTemplatesScopedListWarningData) MarshalJSON() ([]byte, error) { - type NoMethod InstanceTemplatesScopedListWarningData - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s HealthChecksScopedListWarningData) MarshalJSON() ([]byte, error) { + type NoMethod HealthChecksScopedListWarningData + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -type InstanceWithNamedPorts struct { - // Instance: [Output Only] The URL of the instance. - Instance string `json:"instance,omitempty"` - // NamedPorts: [Output Only] The named ports that belong to this instance - // group. - NamedPorts []*NamedPort `json:"namedPorts,omitempty"` - // Status: [Output Only] The status of the instance. +// HealthSource: Represents a health source. +// +// A health source resource specifies the source resources and the +// health +// aggregation policy applied to the source resources to determine +// the +// aggregated health status. +type HealthSource struct { + // CreationTimestamp: Output only. [Output Only] Creation timestamp + // inRFC3339 + // text format. + CreationTimestamp string `json:"creationTimestamp,omitempty"` + // Description: An optional description of this resource. Provide this property + // when you + // create the resource. + Description string `json:"description,omitempty"` + // Fingerprint: Fingerprint of this resource. A hash of the contents stored in + // this object. + // This field is used in optimistic locking. This field will be ignored + // when + // inserting a HealthSource. An up-to-date fingerprint + // must be provided in order to patch the HealthSource; Otherwise, the + // request + // will fail with error 412 conditionNotMet. To see the latest + // fingerprint, make a get() request to retrieve the + // HealthSource. + Fingerprint string `json:"fingerprint,omitempty"` + // HealthAggregationPolicy: URL to the HealthAggregationPolicy resource. Must + // be set. Must + // be regional and in the same region as the HealthSource. Can be + // mutated. + HealthAggregationPolicy string `json:"healthAggregationPolicy,omitempty"` + // Id: Output only. [Output Only] A unique identifier for this resource type. + // The server + // generates this identifier. + Id uint64 `json:"id,omitempty,string"` + // Kind: Output only. [Output Only] Type of the resource. + // Alwayscompute#healthSource for health sources. + Kind string `json:"kind,omitempty"` + // Name: Name of the resource. Provided by the client when the resource is + // created. + // The name must be 1-63 characters long, and comply withRFC1035. + // 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. + Name string `json:"name,omitempty"` + // Region: Output only. [Output Only] URL of the region where the health source + // resides. + // This field applies only to the regional resource. You must specify + // this + // field as part of the HTTP request URL. It is not settable as a field in + // the request body. + Region string `json:"region,omitempty"` + // SelfLink: Output only. [Output Only] Server-defined URL for the resource. + SelfLink string `json:"selfLink,omitempty"` + // SelfLinkWithId: Output only. [Output Only] Server-defined URL with id for + // the resource. + SelfLinkWithId string `json:"selfLinkWithId,omitempty"` + // SourceType: Specifies the type of the HealthSource. The only allowed + // value + // is BACKEND_SERVICE. Must be specified when theHealthSource is created, and + // cannot be mutated. // // Possible values: - // "DEPROVISIONING" - The instance is halted and we are performing tear down - // tasks like network deprogramming, releasing quota, IP, tearing down disks - // etc. - // "PROVISIONING" - Resources are being allocated for the instance. - // "REPAIRING" - The instance is in repair. - // "RUNNING" - The instance is running. - // "STAGING" - All required resources have been allocated and the instance is - // being started. - // "STOPPED" - The instance has stopped successfully. - // "STOPPING" - The instance is currently stopping (either being deleted or - // killed). - // "SUSPENDED" - The instance has suspended. - // "SUSPENDING" - The instance is suspending. - // "TERMINATED" - The instance has stopped (either by explicit action or - // underlying failure). - Status string `json:"status,omitempty"` - // ForceSendFields is a list of field names (e.g. "Instance") to - // unconditionally include in API requests. By default, fields with empty or - // default values are omitted from API requests. See - // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more - // details. - ForceSendFields []string `json:"-"` - // NullFields is a list of field names (e.g. "Instance") to include in API - // requests with the JSON null value. By default, fields with empty values are - // omitted from API requests. See - // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. - NullFields []string `json:"-"` -} - -func (s *InstanceWithNamedPorts) MarshalJSON() ([]byte, error) { - type NoMethod InstanceWithNamedPorts - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) -} - -type InstancesAddResourcePoliciesRequest struct { - // ResourcePolicies: Resource policies to be added to this instance. - ResourcePolicies []string `json:"resourcePolicies,omitempty"` - // ForceSendFields is a list of field names (e.g. "ResourcePolicies") to - // unconditionally include in API requests. By default, fields with empty or - // default values are omitted from API requests. See - // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more - // details. - ForceSendFields []string `json:"-"` - // NullFields is a list of field names (e.g. "ResourcePolicies") to include in - // API requests with the JSON null value. By default, fields with empty values - // are omitted from API requests. See - // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. - NullFields []string `json:"-"` -} - -func (s *InstancesAddResourcePoliciesRequest) MarshalJSON() ([]byte, error) { - type NoMethod InstancesAddResourcePoliciesRequest - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) -} + // "BACKEND_SERVICE" + SourceType string `json:"sourceType,omitempty"` + // Sources: URLs to the source resources. Must be size 1. Must be + // aBackendService if + // the sourceType is BACKEND_SERVICE. TheBackendService must have load + // balancing schemeINTERNAL or INTERNAL_MANAGED and must be regional + // and in the same region as the HealthSource (cross-region + // deployment for INTERNAL_MANAGED is not supported). TheBackendService may use + // only IGs, MIGs, or NEGs of typeGCE_VM_IP or GCE_VM_IP_PORT. + // TheBackendService may not use haPolicy. Can be + // mutated. + Sources []string `json:"sources,omitempty"` -type InstancesBulkInsertOperationMetadata struct { - // PerLocationStatus: Status information per location (location name is key). - // Example key: zones/us-central1-a - PerLocationStatus map[string]BulkInsertOperationStatus `json:"perLocationStatus,omitempty"` - // ForceSendFields is a list of field names (e.g. "PerLocationStatus") to + // ServerResponse contains the HTTP response code and headers from the server. + googleapi.ServerResponse `json:"-"` + // ForceSendFields is a list of field names (e.g. "CreationTimestamp") to // unconditionally include in API requests. By default, fields with empty or // default values are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. ForceSendFields []string `json:"-"` - // NullFields is a list of field names (e.g. "PerLocationStatus") to include in + // NullFields is a list of field names (e.g. "CreationTimestamp") to include in // API requests with the JSON null value. By default, fields with empty values // are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } -func (s *InstancesBulkInsertOperationMetadata) MarshalJSON() ([]byte, error) { - type NoMethod InstancesBulkInsertOperationMetadata - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s HealthSource) MarshalJSON() ([]byte, error) { + type NoMethod HealthSource + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -type InstancesGetEffectiveFirewallsResponse struct { - // FirewallPolicys: Effective firewalls from firewall policies. - FirewallPolicys []*InstancesGetEffectiveFirewallsResponseEffectiveFirewallPolicy `json:"firewallPolicys,omitempty"` - // Firewalls: Effective firewalls on the instance. - Firewalls []*Firewall `json:"firewalls,omitempty"` +// HealthSourceAggregatedList: Contains a list of HealthSourcesScopedList. +type HealthSourceAggregatedList struct { + // Id: [Output Only] Unique identifier for the resource; defined by the server. + Id string `json:"id,omitempty"` + // Items: A list of HealthSourcesScopedList resources. + Items map[string]HealthSourcesScopedList `json:"items,omitempty"` + // Kind: Output only. Type of resource. + 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 thanmaxResults, 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"` + // SelfLink: Output only. [Output Only] Server-defined URL for this resource. + SelfLink string `json:"selfLink,omitempty"` + // Unreachables: Output only. [Output Only] Unreachable resources. + Unreachables []string `json:"unreachables,omitempty"` + // Warning: [Output Only] Informational warning message. + Warning *HealthSourceAggregatedListWarning `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. "FirewallPolicys") to - // unconditionally include in API requests. By default, fields with empty or - // default values are omitted from API requests. See - // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more - // details. - ForceSendFields []string `json:"-"` - // NullFields is a list of field names (e.g. "FirewallPolicys") to include in - // API requests with the JSON null value. By default, fields with empty values - // are omitted from API requests. See - // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. - NullFields []string `json:"-"` -} - -func (s *InstancesGetEffectiveFirewallsResponse) MarshalJSON() ([]byte, error) { - type NoMethod InstancesGetEffectiveFirewallsResponse - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) -} - -type InstancesGetEffectiveFirewallsResponseEffectiveFirewallPolicy struct { - // DisplayName: [Output Only] Deprecated, please use short name instead. The - // display name of the firewall policy. - DisplayName string `json:"displayName,omitempty"` - // Name: [Output Only] The name of the firewall policy. - Name string `json:"name,omitempty"` - // Rules: The rules that apply to the network. - Rules []*FirewallPolicyRule `json:"rules,omitempty"` - // ShortName: [Output Only] The short name of the firewall policy. - ShortName string `json:"shortName,omitempty"` - // Type: [Output Only] The type of the firewall policy. Can be one of - // HIERARCHY, NETWORK, NETWORK_REGIONAL, SYSTEM_GLOBAL, SYSTEM_REGIONAL. - // - // Possible values: - // "HIERARCHY" - // "NETWORK" - // "NETWORK_REGIONAL" - // "UNSPECIFIED" - Type string `json:"type,omitempty"` - // ForceSendFields is a list of field names (e.g. "DisplayName") to - // unconditionally include in API requests. By default, fields with empty or - // default values are omitted from API requests. See - // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more - // details. - ForceSendFields []string `json:"-"` - // NullFields is a list of field names (e.g. "DisplayName") to include in API - // requests with the JSON null value. By default, fields with empty values are + // ForceSendFields is a list of field names (e.g. "Id") to unconditionally + // include in API requests. By default, fields with empty or default values are // omitted from API requests. See - // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. - NullFields []string `json:"-"` -} - -func (s *InstancesGetEffectiveFirewallsResponseEffectiveFirewallPolicy) MarshalJSON() ([]byte, error) { - type NoMethod InstancesGetEffectiveFirewallsResponseEffectiveFirewallPolicy - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) -} - -type InstancesRemoveResourcePoliciesRequest struct { - // ResourcePolicies: Resource policies to be removed from this instance. - ResourcePolicies []string `json:"resourcePolicies,omitempty"` - // ForceSendFields is a list of field names (e.g. "ResourcePolicies") to - // unconditionally include in API requests. By default, fields with empty or - // default values are omitted from API requests. See - // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more - // details. - ForceSendFields []string `json:"-"` - // NullFields is a list of field names (e.g. "ResourcePolicies") to include in - // API requests with the JSON null value. By default, fields with empty values - // are omitted from API requests. See - // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. - NullFields []string `json:"-"` -} - -func (s *InstancesRemoveResourcePoliciesRequest) MarshalJSON() ([]byte, error) { - type NoMethod InstancesRemoveResourcePoliciesRequest - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) -} - -type InstancesScopedList struct { - // Instances: [Output Only] A list of instances contained in this scope. - Instances []*Instance `json:"instances,omitempty"` - // Warning: [Output Only] Informational warning which replaces the list of - // instances when the list is empty. - Warning *InstancesScopedListWarning `json:"warning,omitempty"` - // ForceSendFields is a list of field names (e.g. "Instances") to - // unconditionally include in API requests. By default, fields with empty or - // default values are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. ForceSendFields []string `json:"-"` - // NullFields is a list of field names (e.g. "Instances") to include in API - // requests with the JSON null value. By default, fields with empty values are - // omitted from API requests. See + // 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. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } -func (s *InstancesScopedList) MarshalJSON() ([]byte, error) { - type NoMethod InstancesScopedList - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s HealthSourceAggregatedList) MarshalJSON() ([]byte, error) { + type NoMethod HealthSourceAggregatedList + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -// InstancesScopedListWarning: [Output Only] Informational warning which -// replaces the list of instances when the list is empty. -type InstancesScopedListWarning 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. +// HealthSourceAggregatedListWarning: [Output Only] Informational warning +// message. +type HealthSourceAggregatedListWarning 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" - Warning about failed cleanup of transient changes made - // by a failed operation. + // by a failed + // operation. // "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was created. // "DEPRECATED_TYPE_USED" - When deploying and at least one of the resources - // has a type marked as deprecated + // has a type marked as + // deprecated // "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk that is // larger than image size. // "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the - // resources has a type marked as experimental + // resources has a type marked as + // experimental // "EXTERNAL_API_WARNING" - Warning that is present in an external api call // "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been - // overridden. Deprecated unused field. + // overridden. + // Deprecated unused field. // "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an injected // kernel, which is deprecated. // "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB" - A WEIGHTED_MAGLEV backend - // service is associated with a health check that is not of type - // HTTP/HTTPS/HTTP2. + // service is associated with a health check that is + // not of type HTTP/HTTPS/HTTP2. // "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a // exceedingly large number of resources // "LIST_OVERHEAD_QUOTA_EXCEED" - Resource can't be retrieved due to list - // overhead quota exceed which captures the amount of resources filtered out by + // overhead quota exceed + // which captures the amount of resources filtered out by // user-defined list filter. // "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is not - // assigned to an instance on the network. + // assigned to an instance on the + // network. // "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot ip // forward. // "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE" - The route's nextHopInstance - // URL refers to an instance that does not have an ipv6 interface on the same - // network as the route. + // URL refers to an instance that does not have an + // ipv6 interface on the same network as the route. // "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL refers to // an instance that does not exist. // "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance URL - // refers to an instance that is not on the same network as the route. + // refers to an instance that is not on the + // same network as the route. // "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not have a // status of RUNNING. // "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to continue - // the process despite the mentioned error. + // the process despite + // the mentioned error. // "NO_RESULTS_ON_PAGE" - No results are present on a particular list page. // "PARTIAL_SUCCESS" - Success is reported, but some results may be missing // due to errors + // "QUOTA_INFO_UNAVAILABLE" - Quota information is not available to client + // requests (e.g: + // regions.list). // "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource that - // requires a TOS they have not accepted. + // requires a TOS they have not + // accepted. // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a resource is // in use. // "RESOURCE_NOT_DELETED" - One or more of the resources set to auto-delete - // could not be deleted because they were in use. + // could not be deleted + // because they were in use. // "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is // ignored. // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in instance - // group manager is valid as such, but its application does not make a lot of - // sense, because it allows only single instance in instance group. + // group manager is valid as such, but + // its application does not make a lot of sense, because it allows only + // single instance in instance group. // "UNDECLARED_PROPERTIES" - When undeclared properties in the schema are // present // "UNREACHABLE" - A given scope cannot be reached. 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 []*InstancesScopedListWarningData `json:"data,omitempty"` + // Data: [Output Only] Metadata about this warning in key: + // value format. For example: + // + // "data": [ + // { + // "key": "scope", + // "value": "zones/us-east1-d" + // } + Data []*HealthSourceAggregatedListWarningData `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 @@ -19836,19 +24188,22 @@ type InstancesScopedListWarning struct { NullFields []string `json:"-"` } -func (s *InstancesScopedListWarning) MarshalJSON() ([]byte, error) { - type NoMethod InstancesScopedListWarning - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s HealthSourceAggregatedListWarning) MarshalJSON() ([]byte, error) { + type NoMethod HealthSourceAggregatedListWarning + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -type InstancesScopedListWarningData 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). +type HealthSourceAggregatedListWarningData 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"` @@ -19865,333 +24220,66 @@ type InstancesScopedListWarningData struct { NullFields []string `json:"-"` } -func (s *InstancesScopedListWarningData) MarshalJSON() ([]byte, error) { - type NoMethod InstancesScopedListWarningData - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) -} - -type InstancesSetLabelsRequest struct { - // LabelFingerprint: Fingerprint of the previous set of labels for this - // resource, used to prevent conflicts. Provide the latest fingerprint value - // when making a request to add or change labels. - LabelFingerprint string `json:"labelFingerprint,omitempty"` - Labels map[string]string `json:"labels,omitempty"` - // ForceSendFields is a list of field names (e.g. "LabelFingerprint") to - // unconditionally include in API requests. By default, fields with empty or - // default values are omitted from API requests. See - // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more - // details. - ForceSendFields []string `json:"-"` - // NullFields is a list of field names (e.g. "LabelFingerprint") to include in - // API requests with the JSON null value. By default, fields with empty values - // are omitted from API requests. See - // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. - NullFields []string `json:"-"` -} - -func (s *InstancesSetLabelsRequest) MarshalJSON() ([]byte, error) { - type NoMethod InstancesSetLabelsRequest - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) -} - -type InstancesSetMachineResourcesRequest struct { - // GuestAccelerators: A list of the type and count of accelerator cards - // attached to the instance. - GuestAccelerators []*AcceleratorConfig `json:"guestAccelerators,omitempty"` - // ForceSendFields is a list of field names (e.g. "GuestAccelerators") to - // unconditionally include in API requests. By default, fields with empty or - // default values are omitted from API requests. See - // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more - // details. - ForceSendFields []string `json:"-"` - // NullFields is a list of field names (e.g. "GuestAccelerators") to include in - // API requests with the JSON null value. By default, fields with empty values - // are omitted from API requests. See - // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. - NullFields []string `json:"-"` -} - -func (s *InstancesSetMachineResourcesRequest) MarshalJSON() ([]byte, error) { - type NoMethod InstancesSetMachineResourcesRequest - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) -} - -type InstancesSetMachineTypeRequest struct { - // MachineType: Full or partial URL of the machine type resource. See Machine - // Types for a full list of machine types. For example: - // zones/us-central1-f/machineTypes/n1-standard-1 - MachineType string `json:"machineType,omitempty"` - // ForceSendFields is a list of field names (e.g. "MachineType") to - // unconditionally include in API requests. By default, fields with empty or - // default values are omitted from API requests. See - // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more - // details. - ForceSendFields []string `json:"-"` - // NullFields is a list of field names (e.g. "MachineType") to include in API - // requests with the JSON null value. By default, fields with empty values are - // omitted from API requests. See - // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. - NullFields []string `json:"-"` -} - -func (s *InstancesSetMachineTypeRequest) MarshalJSON() ([]byte, error) { - type NoMethod InstancesSetMachineTypeRequest - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) -} - -type InstancesSetMinCpuPlatformRequest struct { - // MinCpuPlatform: Minimum cpu/platform this instance should be started at. - MinCpuPlatform string `json:"minCpuPlatform,omitempty"` - // ForceSendFields is a list of field names (e.g. "MinCpuPlatform") to - // unconditionally include in API requests. By default, fields with empty or - // default values are omitted from API requests. See - // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more - // details. - ForceSendFields []string `json:"-"` - // NullFields is a list of field names (e.g. "MinCpuPlatform") to include in - // API requests with the JSON null value. By default, fields with empty values - // are omitted from API requests. See - // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. - NullFields []string `json:"-"` -} - -func (s *InstancesSetMinCpuPlatformRequest) MarshalJSON() ([]byte, error) { - type NoMethod InstancesSetMinCpuPlatformRequest - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) -} - -type InstancesSetNameRequest struct { - // CurrentName: The current name of this resource, used to prevent conflicts. - // Provide the latest name when making a request to change name. - CurrentName string `json:"currentName,omitempty"` - // Name: The name to be applied to the instance. Needs to be RFC 1035 - // compliant. - Name string `json:"name,omitempty"` - // ForceSendFields is a list of field names (e.g. "CurrentName") to - // unconditionally include in API requests. By default, fields with empty or - // default values are omitted from API requests. See - // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more - // details. - ForceSendFields []string `json:"-"` - // NullFields is a list of field names (e.g. "CurrentName") to include in API - // requests with the JSON null value. By default, fields with empty values are - // omitted from API requests. See - // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. - NullFields []string `json:"-"` -} - -func (s *InstancesSetNameRequest) MarshalJSON() ([]byte, error) { - type NoMethod InstancesSetNameRequest - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) -} - -type InstancesSetSecurityPolicyRequest struct { - // NetworkInterfaces: The network interfaces that the security policy will be - // applied to. Network interfaces use the nicN naming format. You can only set - // a security policy for network interfaces with an access config. - NetworkInterfaces []string `json:"networkInterfaces,omitempty"` - // SecurityPolicy: A full or partial URL to a security policy to add to this - // instance. If this field is set to an empty string it will remove the - // associated security policy. - SecurityPolicy string `json:"securityPolicy,omitempty"` - // ForceSendFields is a list of field names (e.g. "NetworkInterfaces") to - // unconditionally include in API requests. By default, fields with empty or - // default values are omitted from API requests. See - // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more - // details. - ForceSendFields []string `json:"-"` - // NullFields is a list of field names (e.g. "NetworkInterfaces") to include in - // API requests with the JSON null value. By default, fields with empty values - // are omitted from API requests. See - // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. - NullFields []string `json:"-"` -} - -func (s *InstancesSetSecurityPolicyRequest) MarshalJSON() ([]byte, error) { - type NoMethod InstancesSetSecurityPolicyRequest - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) -} - -type InstancesSetServiceAccountRequest struct { - // Email: Email address of the service account. - Email string `json:"email,omitempty"` - // Scopes: The list of scopes to be made available for this service account. - Scopes []string `json:"scopes,omitempty"` - // ForceSendFields is a list of field names (e.g. "Email") to unconditionally - // include in API requests. By default, fields with empty or default values are - // omitted from API requests. See - // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more - // details. - ForceSendFields []string `json:"-"` - // NullFields is a list of field names (e.g. "Email") to include in API - // requests with the JSON null value. By default, fields with empty values are - // omitted from API requests. See - // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. - NullFields []string `json:"-"` -} - -func (s *InstancesSetServiceAccountRequest) MarshalJSON() ([]byte, error) { - type NoMethod InstancesSetServiceAccountRequest - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) -} - -type InstancesStartWithEncryptionKeyRequest struct { - // Disks: Array of disks associated with this instance that are protected with - // a customer-supplied encryption key. In order to start the instance, the disk - // url and its corresponding key must be provided. If the disk is not protected - // with a customer-supplied encryption key it should not be specified. - Disks []*CustomerEncryptionKeyProtectedDisk `json:"disks,omitempty"` - // ForceSendFields is a list of field names (e.g. "Disks") to unconditionally - // include in API requests. By default, fields with empty or default values are - // omitted from API requests. See - // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more - // details. - ForceSendFields []string `json:"-"` - // NullFields is a list of field names (e.g. "Disks") to include in API - // requests with the JSON null value. By default, fields with empty values are - // omitted from API requests. See - // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. - NullFields []string `json:"-"` -} - -func (s *InstancesStartWithEncryptionKeyRequest) MarshalJSON() ([]byte, error) { - type NoMethod InstancesStartWithEncryptionKeyRequest - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s HealthSourceAggregatedListWarningData) MarshalJSON() ([]byte, error) { + type NoMethod HealthSourceAggregatedListWarningData + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -// InstantSnapshot: Represents a InstantSnapshot resource. You can use instant -// snapshots to create disk rollback points quickly.. -type InstantSnapshot struct { - // Architecture: [Output Only] The architecture of the instant snapshot. Valid - // values are ARM64 or X86_64. +// HealthSourceHealth: Response message for RegionHealthSources.GetHealth +type HealthSourceHealth struct { + // HealthState: Health state of the HealthSource. // // Possible values: - // "ARCHITECTURE_UNSPECIFIED" - Default value indicating Architecture is not - // set. - // "ARM64" - Machines with architecture ARM64 - // "X86_64" - Machines with architecture X86_64 - Architecture string `json:"architecture,omitempty"` - // CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text format. - CreationTimestamp string `json:"creationTimestamp,omitempty"` - // Description: An optional description of this resource. Provide this property - // when you create the resource. - Description string `json:"description,omitempty"` - // DiskSizeGb: [Output Only] Size of the source disk, specified in GB. - DiskSizeGb int64 `json:"diskSizeGb,omitempty,string"` - // Id: [Output Only] The unique identifier for the resource. This identifier is - // defined by the server. - Id uint64 `json:"id,omitempty,string"` - // Kind: [Output Only] Type of the resource. Always compute#instantSnapshot for - // InstantSnapshot resources. + // "HEALTHY" + // "UNHEALTHY" + // "UNKNOWN" + HealthState string `json:"healthState,omitempty"` + // Kind: Output only. [Output Only] Type of resource. + // Alwayscompute#healthSourceHealth for the health of health sources. Kind string `json:"kind,omitempty"` - // LabelFingerprint: A fingerprint for the labels being applied to this - // InstantSnapshot, which is essentially a hash of the labels set used for - // optimistic locking. The fingerprint is initially generated by Compute Engine - // and changes after every request to modify or update labels. You must always - // provide an up-to-date fingerprint hash in order to update or change labels, - // otherwise the request will fail with error 412 conditionNotMet. To see the - // latest fingerprint, make a get() request to retrieve a InstantSnapshot. - LabelFingerprint string `json:"labelFingerprint,omitempty"` - // Labels: Labels to apply to this InstantSnapshot. These can be later modified - // by the setLabels method. Label values may be empty. - Labels map[string]string `json:"labels,omitempty"` - // Name: Name of the resource; provided by the client when the resource is - // created. The name must be 1-63 characters long, and comply with RFC1035. - // 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. - Name string `json:"name,omitempty"` - // Region: [Output Only] URL of the region where the instant snapshot resides. - // You must specify this field as part of the HTTP request URL. It is not - // settable as a field in the request body. - Region string `json:"region,omitempty"` - // ResourceStatus: [Output Only] Status information for the instant snapshot - // resource. - ResourceStatus *InstantSnapshotResourceStatus `json:"resourceStatus,omitempty"` - // SatisfiesPzi: Output only. Reserved for future use. - SatisfiesPzi bool `json:"satisfiesPzi,omitempty"` - // SatisfiesPzs: [Output Only] Reserved for future use. - SatisfiesPzs bool `json:"satisfiesPzs,omitempty"` - // SelfLink: [Output Only] Server-defined URL for the resource. - SelfLink string `json:"selfLink,omitempty"` - // SelfLinkWithId: [Output Only] Server-defined URL for this resource's - // resource id. - SelfLinkWithId string `json:"selfLinkWithId,omitempty"` - // SourceDisk: URL of the source disk used to create this instant snapshot. - // Note that the source disk must be in the same zone/region as the instant - // snapshot to be created. This can be a full or valid partial URL. For - // example, the following are valid values: - - // https://www.googleapis.com/compute/v1/projects/project/zones/zone - // /disks/disk - - // https://www.googleapis.com/compute/v1/projects/project/regions/region - // /disks/disk - projects/project/zones/zone/disks/disk - - // projects/project/regions/region/disks/disk - zones/zone/disks/disk - - // regions/region/disks/disk - SourceDisk string `json:"sourceDisk,omitempty"` - // SourceDiskId: [Output Only] The ID value of the disk used to create this - // InstantSnapshot. This value may be used to determine whether the - // InstantSnapshot was taken from the current or a previous instance of a given - // disk name. - SourceDiskId string `json:"sourceDiskId,omitempty"` - // Status: [Output Only] The status of the instantSnapshot. This can be - // CREATING, DELETING, FAILED, or READY. - // - // Possible values: - // "CREATING" - InstantSnapshot creation is in progress. - // "DELETING" - InstantSnapshot is currently being deleted. - // "FAILED" - InstantSnapshot creation failed. - // "READY" - InstantSnapshot has been created successfully. - // "UNAVAILABLE" - InstantSnapshot is currently unavailable and cannot be - // used for Disk restoration - Status string `json:"status,omitempty"` - // Zone: [Output Only] URL of the zone where the instant snapshot resides. You - // must specify this field as part of the HTTP request URL. It is not settable - // as a field in the request body. - Zone string `json:"zone,omitempty"` + // Sources: Health state details of the sources. + Sources []*HealthSourcesGetHealthResponseSourceInfo `json:"sources,omitempty"` // ServerResponse contains the HTTP response code and headers from the server. googleapi.ServerResponse `json:"-"` - // ForceSendFields is a list of field names (e.g. "Architecture") to + // ForceSendFields is a list of field names (e.g. "HealthState") to // unconditionally include in API requests. By default, fields with empty or // default values are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. ForceSendFields []string `json:"-"` - // NullFields is a list of field names (e.g. "Architecture") to include in API + // NullFields is a list of field names (e.g. "HealthState") to include in API // requests with the JSON null value. By default, fields with empty values are // omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } -func (s *InstantSnapshot) MarshalJSON() ([]byte, error) { - type NoMethod InstantSnapshot - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s HealthSourceHealth) MarshalJSON() ([]byte, error) { + type NoMethod HealthSourceHealth + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -type InstantSnapshotAggregatedList struct { +type HealthSourceList struct { // Id: [Output Only] Unique identifier for the resource; defined by the server. Id string `json:"id,omitempty"` - // Items: A list of InstantSnapshotsScopedList resources. - Items map[string]InstantSnapshotsScopedList `json:"items,omitempty"` - // Kind: [Output Only] Type of resource. Always - // compute#instantSnapshotAggregatedList for aggregated lists of - // instantSnapshots. + // Items: A list of HealthSource resources. + Items []*HealthSource `json:"items,omitempty"` + // Kind: Output only. [Output Only] Type of the resource. + // Alwayscompute#healthSource for health sources. 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. + // results for + // list requests. If the number of results is larger thanmaxResults, 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"` // SelfLink: [Output Only] Server-defined URL for this resource. SelfLink string `json:"selfLink,omitempty"` - // Unreachables: [Output Only] Unreachable resources. - Unreachables []string `json:"unreachables,omitempty"` // Warning: [Output Only] Informational warning message. - Warning *InstantSnapshotAggregatedListWarning `json:"warning,omitempty"` + Warning *HealthSourceListWarning `json:"warning,omitempty"` // ServerResponse contains the HTTP response code and headers from the server. googleapi.ServerResponse `json:"-"` @@ -20208,77 +24296,98 @@ type InstantSnapshotAggregatedList struct { NullFields []string `json:"-"` } -func (s *InstantSnapshotAggregatedList) MarshalJSON() ([]byte, error) { - type NoMethod InstantSnapshotAggregatedList - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s HealthSourceList) MarshalJSON() ([]byte, error) { + type NoMethod HealthSourceList + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -// InstantSnapshotAggregatedListWarning: [Output Only] Informational warning -// message. -type InstantSnapshotAggregatedListWarning 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. +// HealthSourceListWarning: [Output Only] Informational warning message. +type HealthSourceListWarning 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" - Warning about failed cleanup of transient changes made - // by a failed operation. + // by a failed + // operation. // "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was created. // "DEPRECATED_TYPE_USED" - When deploying and at least one of the resources - // has a type marked as deprecated + // has a type marked as + // deprecated // "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk that is // larger than image size. // "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the - // resources has a type marked as experimental + // resources has a type marked as + // experimental // "EXTERNAL_API_WARNING" - Warning that is present in an external api call // "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been - // overridden. Deprecated unused field. + // overridden. + // Deprecated unused field. // "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an injected // kernel, which is deprecated. // "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB" - A WEIGHTED_MAGLEV backend - // service is associated with a health check that is not of type - // HTTP/HTTPS/HTTP2. + // service is associated with a health check that is + // not of type HTTP/HTTPS/HTTP2. // "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a // exceedingly large number of resources // "LIST_OVERHEAD_QUOTA_EXCEED" - Resource can't be retrieved due to list - // overhead quota exceed which captures the amount of resources filtered out by + // overhead quota exceed + // which captures the amount of resources filtered out by // user-defined list filter. // "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is not - // assigned to an instance on the network. + // assigned to an instance on the + // network. // "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot ip // forward. // "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE" - The route's nextHopInstance - // URL refers to an instance that does not have an ipv6 interface on the same - // network as the route. + // URL refers to an instance that does not have an + // ipv6 interface on the same network as the route. // "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL refers to // an instance that does not exist. // "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance URL - // refers to an instance that is not on the same network as the route. + // refers to an instance that is not on the + // same network as the route. // "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not have a // status of RUNNING. // "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to continue - // the process despite the mentioned error. + // the process despite + // the mentioned error. // "NO_RESULTS_ON_PAGE" - No results are present on a particular list page. // "PARTIAL_SUCCESS" - Success is reported, but some results may be missing // due to errors + // "QUOTA_INFO_UNAVAILABLE" - Quota information is not available to client + // requests (e.g: + // regions.list). // "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource that - // requires a TOS they have not accepted. + // requires a TOS they have not + // accepted. // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a resource is // in use. // "RESOURCE_NOT_DELETED" - One or more of the resources set to auto-delete - // could not be deleted because they were in use. + // could not be deleted + // because they were in use. // "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is // ignored. // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in instance - // group manager is valid as such, but its application does not make a lot of - // sense, because it allows only single instance in instance group. + // group manager is valid as such, but + // its application does not make a lot of sense, because it allows only + // single instance in instance group. // "UNDECLARED_PROPERTIES" - When undeclared properties in the schema are // present // "UNREACHABLE" - A given scope cannot be reached. 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 []*InstantSnapshotAggregatedListWarningData `json:"data,omitempty"` + // Data: [Output Only] Metadata about this warning in key: + // value format. For example: + // + // "data": [ + // { + // "key": "scope", + // "value": "zones/us-east1-d" + // } + Data []*HealthSourceListWarningData `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 @@ -20294,19 +24403,22 @@ type InstantSnapshotAggregatedListWarning struct { NullFields []string `json:"-"` } -func (s *InstantSnapshotAggregatedListWarning) MarshalJSON() ([]byte, error) { - type NoMethod InstantSnapshotAggregatedListWarning - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s HealthSourceListWarning) MarshalJSON() ([]byte, error) { + type NoMethod HealthSourceListWarning + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -type InstantSnapshotAggregatedListWarningData 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). +type HealthSourceListWarningData 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"` @@ -20323,115 +24435,187 @@ type InstantSnapshotAggregatedListWarningData struct { NullFields []string `json:"-"` } -func (s *InstantSnapshotAggregatedListWarningData) MarshalJSON() ([]byte, error) { - type NoMethod InstantSnapshotAggregatedListWarningData - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s HealthSourceListWarningData) MarshalJSON() ([]byte, error) { + type NoMethod HealthSourceListWarningData + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -// InstantSnapshotList: Contains a list of InstantSnapshot resources. -type InstantSnapshotList struct { - // Id: [Output Only] Unique identifier for the resource; defined by the server. - Id string `json:"id,omitempty"` - // Items: A list of InstantSnapshot resources. - Items []*InstantSnapshot `json:"items,omitempty"` - // Kind: Type of resource. - 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"` - // SelfLink: [Output Only] Server-defined URL for this resource. - SelfLink string `json:"selfLink,omitempty"` - // Warning: [Output Only] Informational warning message. - Warning *InstantSnapshotListWarning `json:"warning,omitempty"` +type HealthSourcesGetHealthResponseSourceInfo struct { + // Backends: Represents an instance group or network endpoint group behind the + // source + // backend service. Only used if the sourceType of the regionHealthSource + // is BACKEND_SERVICE. + Backends []*HealthSourcesGetHealthResponseSourceInfoBackendInfo `json:"backends,omitempty"` + // ForwardingRule: Fully qualified URL of the forwarding rule associated with + // the source + // resource if it is a L4ILB backend service. + ForwardingRule string `json:"forwardingRule,omitempty"` + // Source: Fully qualified URL of the associated source resource. This is + // always a + // backend service URL. + Source string `json:"source,omitempty"` + // ForceSendFields is a list of field names (e.g. "Backends") to + // unconditionally include in API requests. By default, fields with empty or + // default values are omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + ForceSendFields []string `json:"-"` + // NullFields is a list of field names (e.g. "Backends") to include in API + // requests with the JSON null value. By default, fields with empty values are + // omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} - // 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 or default values are +func (s HealthSourcesGetHealthResponseSourceInfo) MarshalJSON() ([]byte, error) { + type NoMethod HealthSourcesGetHealthResponseSourceInfo + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +type HealthSourcesGetHealthResponseSourceInfoBackendInfo struct { + // EndpointCount: Total number of endpoints when determining the health of + // the + // regionHealthSource. + EndpointCount int64 `json:"endpointCount,omitempty"` + // Group: Fully qualified URL of an instance group or network endpoint + // group + // behind the source backend service. + Group string `json:"group,omitempty"` + // HealthyEndpointCount: Number of endpoints considered healthy when + // determining health of the + // regionHealthSource. + HealthyEndpointCount int64 `json:"healthyEndpointCount,omitempty"` + // ForceSendFields is a list of field names (e.g. "EndpointCount") to + // unconditionally include in API requests. By default, fields with empty or + // default values are omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + ForceSendFields []string `json:"-"` + // NullFields is a list of field names (e.g. "EndpointCount") to include in API + // requests with the JSON null value. By default, fields with empty values are // omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s HealthSourcesGetHealthResponseSourceInfoBackendInfo) MarshalJSON() ([]byte, error) { + type NoMethod HealthSourcesGetHealthResponseSourceInfoBackendInfo + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +type HealthSourcesScopedList struct { + // HealthSources: A list of HealthSources contained in this scope. + HealthSources []*HealthSource `json:"healthSources,omitempty"` + // Warning: Informational warning which replaces the list of + // health sources when the list is empty. + Warning *HealthSourcesScopedListWarning `json:"warning,omitempty"` + // ForceSendFields is a list of field names (e.g. "HealthSources") to + // unconditionally include in API requests. By default, fields with empty or + // default values are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. 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. See + // NullFields is a list of field names (e.g. "HealthSources") to include in API + // requests with the JSON null value. By default, fields with empty values are + // omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } -func (s *InstantSnapshotList) MarshalJSON() ([]byte, error) { - type NoMethod InstantSnapshotList - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s HealthSourcesScopedList) MarshalJSON() ([]byte, error) { + type NoMethod HealthSourcesScopedList + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -// InstantSnapshotListWarning: [Output Only] Informational warning message. -type InstantSnapshotListWarning 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. +// HealthSourcesScopedListWarning: Informational warning which replaces the +// list of +// health sources when the list is empty. +type HealthSourcesScopedListWarning 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" - Warning about failed cleanup of transient changes made - // by a failed operation. + // by a failed + // operation. // "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was created. // "DEPRECATED_TYPE_USED" - When deploying and at least one of the resources - // has a type marked as deprecated + // has a type marked as + // deprecated // "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk that is // larger than image size. // "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the - // resources has a type marked as experimental + // resources has a type marked as + // experimental // "EXTERNAL_API_WARNING" - Warning that is present in an external api call // "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been - // overridden. Deprecated unused field. + // overridden. + // Deprecated unused field. // "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an injected // kernel, which is deprecated. // "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB" - A WEIGHTED_MAGLEV backend - // service is associated with a health check that is not of type - // HTTP/HTTPS/HTTP2. + // service is associated with a health check that is + // not of type HTTP/HTTPS/HTTP2. // "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a // exceedingly large number of resources // "LIST_OVERHEAD_QUOTA_EXCEED" - Resource can't be retrieved due to list - // overhead quota exceed which captures the amount of resources filtered out by + // overhead quota exceed + // which captures the amount of resources filtered out by // user-defined list filter. // "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is not - // assigned to an instance on the network. + // assigned to an instance on the + // network. // "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot ip // forward. // "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE" - The route's nextHopInstance - // URL refers to an instance that does not have an ipv6 interface on the same - // network as the route. + // URL refers to an instance that does not have an + // ipv6 interface on the same network as the route. // "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL refers to // an instance that does not exist. // "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance URL - // refers to an instance that is not on the same network as the route. + // refers to an instance that is not on the + // same network as the route. // "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not have a // status of RUNNING. // "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to continue - // the process despite the mentioned error. + // the process despite + // the mentioned error. // "NO_RESULTS_ON_PAGE" - No results are present on a particular list page. // "PARTIAL_SUCCESS" - Success is reported, but some results may be missing // due to errors + // "QUOTA_INFO_UNAVAILABLE" - Quota information is not available to client + // requests (e.g: + // regions.list). // "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource that - // requires a TOS they have not accepted. + // requires a TOS they have not + // accepted. // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a resource is // in use. // "RESOURCE_NOT_DELETED" - One or more of the resources set to auto-delete - // could not be deleted because they were in use. + // could not be deleted + // because they were in use. // "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is // ignored. // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in instance - // group manager is valid as such, but its application does not make a lot of - // sense, because it allows only single instance in instance group. + // group manager is valid as such, but + // its application does not make a lot of sense, because it allows only + // single instance in instance group. // "UNDECLARED_PROPERTIES" - When undeclared properties in the schema are // present // "UNREACHABLE" - A given scope cannot be reached. 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 []*InstantSnapshotListWarningData `json:"data,omitempty"` + // Data: [Output Only] Metadata about this warning in key: + // value format. For example: + // + // "data": [ + // { + // "key": "scope", + // "value": "zones/us-east1-d" + // } + Data []*HealthSourcesScopedListWarningData `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 @@ -20447,19 +24631,22 @@ type InstantSnapshotListWarning struct { NullFields []string `json:"-"` } -func (s *InstantSnapshotListWarning) MarshalJSON() ([]byte, error) { - type NoMethod InstantSnapshotListWarning - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s HealthSourcesScopedListWarning) MarshalJSON() ([]byte, error) { + type NoMethod HealthSourcesScopedListWarning + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -type InstantSnapshotListWarningData 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). +type HealthSourcesScopedListWarningData 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"` @@ -20476,123 +24663,769 @@ type InstantSnapshotListWarningData struct { NullFields []string `json:"-"` } -func (s *InstantSnapshotListWarningData) MarshalJSON() ([]byte, error) { - type NoMethod InstantSnapshotListWarningData - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s HealthSourcesScopedListWarningData) MarshalJSON() ([]byte, error) { + type NoMethod HealthSourcesScopedListWarningData + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -type InstantSnapshotResourceStatus struct { - // StorageSizeBytes: [Output Only] The storage size of this instant snapshot. - StorageSizeBytes int64 `json:"storageSizeBytes,omitempty,string"` - // ForceSendFields is a list of field names (e.g. "StorageSizeBytes") to +type HealthStatus struct { + // Annotations: Metadata defined as annotations for network endpoint. + Annotations map[string]string `json:"annotations,omitempty"` + // ForwardingRule: URL of the forwarding rule associated with the health status + // of the + // instance. + ForwardingRule string `json:"forwardingRule,omitempty"` + // ForwardingRuleIp: A forwarding rule IP address assigned to this instance. + ForwardingRuleIp string `json:"forwardingRuleIp,omitempty"` + // HealthState: Health state of the IPv4 address of the instance. + // + // Possible values: + // "HEALTHY" + // "UNHEALTHY" + HealthState string `json:"healthState,omitempty"` + // Instance: URL of the instance resource. + Instance string `json:"instance,omitempty"` + // IpAddress: For target pool based Network Load Balancing, it indicates the + // forwarding + // rule's IP address assigned to this instance. For other types of + // load + // balancing, the field indicates VM internal ip. + IpAddress string `json:"ipAddress,omitempty"` + Ipv6Address string `json:"ipv6Address,omitempty"` + // Ipv6HealthState: Health state of the IPv6 address of the instance. + // + // Possible values: + // "HEALTHY" + // "UNHEALTHY" + Ipv6HealthState string `json:"ipv6HealthState,omitempty"` + // Port: The named port of the instance group, not necessarily the port that + // is + // health-checked. + Port int64 `json:"port,omitempty"` + Weight string `json:"weight,omitempty"` + // Possible values: + // "INVALID_WEIGHT" - The response to a Health Check probe had the HTTP + // response header field + // X-Load-Balancing-Endpoint-Weight, but its content was invalid (i.e., not + // a non-negative single-precision floating-point number in decimal + // string + // representation). + // "MISSING_WEIGHT" - The response to a Health Check probe did not have the + // HTTP response + // header field X-Load-Balancing-Endpoint-Weight. + // "UNAVAILABLE_WEIGHT" - This is the value when the accompanied health + // status is either TIMEOUT + // (i.e.,the Health Check probe was not able to get a response in time) + // or + // UNKNOWN. For the latter, it should be typically because there has not + // been sufficient time to parse and report the weight for a new backend + // (which is with 0.0.0.0 ip address). However, it can be also due to an + // outage case for which the health status is explicitly reset to UNKNOWN. + // "WEIGHT_NONE" - This is the default value when WeightReportMode is + // DISABLE, + // and is also the initial value when WeightReportMode has just updated + // to + // ENABLE or DRY_RUN and there has not been + // sufficient time to parse and report the backend weight. + WeightError string `json:"weightError,omitempty"` + // ForceSendFields is a list of field names (e.g. "Annotations") to // unconditionally include in API requests. By default, fields with empty or // default values are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. ForceSendFields []string `json:"-"` - // NullFields is a list of field names (e.g. "StorageSizeBytes") to include in + // NullFields is a list of field names (e.g. "Annotations") to include in API + // requests with the JSON null value. By default, fields with empty values are + // omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s HealthStatus) MarshalJSON() ([]byte, error) { + type NoMethod HealthStatus + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +type HealthStatusForNetworkEndpoint struct { + // BackendService: URL of the backend service associated with the health state + // of the network + // endpoint. + BackendService *BackendServiceReference `json:"backendService,omitempty"` + // ForwardingRule: URL of the forwarding rule associated with the health state + // of the network + // endpoint. + ForwardingRule *ForwardingRuleReference `json:"forwardingRule,omitempty"` + // HealthCheck: URL of the health check associated with the health state of the + // network + // endpoint. + HealthCheck *HealthCheckReference `json:"healthCheck,omitempty"` + // HealthCheckService: URL of the health check service associated with the + // health state of the + // network endpoint. + HealthCheckService *HealthCheckServiceReference `json:"healthCheckService,omitempty"` + // HealthState: Health state of the network endpoint determined based on the + // health checks + // configured. + // + // Possible values: + // "DRAINING" - Endpoint is being drained. + // "HEALTHY" - Endpoint is healthy. + // "UNHEALTHY" - Endpoint is unhealthy. + // "UNKNOWN" - Health status of the endpoint is unknown. + HealthState string `json:"healthState,omitempty"` + // Ipv6HealthState: Health state of the ipv6 network endpoint determined based + // on the health + // checks configured. + // + // Possible values: + // "DRAINING" - Endpoint is being drained. + // "HEALTHY" - Endpoint is healthy. + // "UNHEALTHY" - Endpoint is unhealthy. + // "UNKNOWN" - Health status of the endpoint is unknown. + Ipv6HealthState string `json:"ipv6HealthState,omitempty"` + // ForceSendFields is a list of field names (e.g. "BackendService") to + // unconditionally include in API requests. By default, fields with empty or + // default values are omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + ForceSendFields []string `json:"-"` + // NullFields is a list of field names (e.g. "BackendService") to include in // API requests with the JSON null value. By default, fields with empty values // are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } -func (s *InstantSnapshotResourceStatus) MarshalJSON() ([]byte, error) { - type NoMethod InstantSnapshotResourceStatus - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s HealthStatusForNetworkEndpoint) MarshalJSON() ([]byte, error) { + type NoMethod HealthStatusForNetworkEndpoint + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -type InstantSnapshotsScopedList struct { - // InstantSnapshots: [Output Only] A list of instantSnapshots contained in this - // scope. - InstantSnapshots []*InstantSnapshot `json:"instantSnapshots,omitempty"` - // Warning: [Output Only] Informational warning which replaces the list of - // instantSnapshots when the list is empty. - Warning *InstantSnapshotsScopedListWarning `json:"warning,omitempty"` - // ForceSendFields is a list of field names (e.g. "InstantSnapshots") to +// Help: Provides links to documentation or for performing an out of band +// action. +// +// For example, if a quota check failed with an error indicating the +// calling +// project hasn't enabled the accessed service, this can contain a URL +// pointing +// directly to the right place in the developer console to flip the bit. +type Help struct { + // Links: URL(s) pointing to additional information on handling the current + // error. + Links []*HelpLink `json:"links,omitempty"` + // ForceSendFields is a list of field names (e.g. "Links") to unconditionally + // include in API requests. By default, fields with empty or default values are + // omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + ForceSendFields []string `json:"-"` + // NullFields is a list of field names (e.g. "Links") to include in API + // requests with the JSON null value. By default, fields with empty values are + // omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s Help) MarshalJSON() ([]byte, error) { + type NoMethod Help + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +// HelpLink: Describes a URL link. +type HelpLink struct { + // Description: Describes what the link offers. + Description string `json:"description,omitempty"` + // Url: The URL of the link. + Url string `json:"url,omitempty"` + // ForceSendFields is a list of field names (e.g. "Description") to // unconditionally include in API requests. By default, fields with empty or // default values are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. ForceSendFields []string `json:"-"` - // NullFields is a list of field names (e.g. "InstantSnapshots") to include in + // NullFields is a list of field names (e.g. "Description") to include in API + // requests with the JSON null value. By default, fields with empty values are + // omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s HelpLink) MarshalJSON() ([]byte, error) { + type NoMethod HelpLink + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +// HostRule: UrlMaps +// A host-matching rule for a URL. If matched, will use the namedPathMatcher to +// select the BackendService. +type HostRule struct { + // Description: An optional description of this resource. Provide this property + // when you + // create the resource. + Description string `json:"description,omitempty"` + // Hosts: The list of host patterns to match. They must be valid hostnames + // with + // optional port numbers in the format host:port.* matches any string of + // ([a-z0-9-.]*). In + // that case, * must be the first character, and if followed by + // anything, the immediate following character must be either - + // or .. + // + // * based matching is not supported when the URL map is bound + // to a target gRPC proxy that has the validateForProxyless field + // set to true. + Hosts []string `json:"hosts,omitempty"` + // PathMatcher: The name of the PathMatcher to use to match the path portion + // of the URL if the hostRule matches the URL's host portion. + PathMatcher string `json:"pathMatcher,omitempty"` + // ForceSendFields is a list of field names (e.g. "Description") to + // unconditionally include in API requests. By default, fields with empty or + // default values are omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + ForceSendFields []string `json:"-"` + // NullFields is a list of field names (e.g. "Description") to include in API + // requests with the JSON null value. By default, fields with empty values are + // omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s HostRule) MarshalJSON() ([]byte, error) { + type NoMethod HostRule + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +// HttpFaultAbort: Specification for how requests are aborted as part of fault +// injection. +type HttpFaultAbort struct { + // HttpStatus: The HTTP status code used to abort the request. + // + // The value must be from 200 to 599 inclusive. + // + // For gRPC protocol, the gRPC status code is mapped to HTTP status + // code + // according to this + // mapping table. HTTP status 200 is mapped to gRPC status + // UNKNOWN. Injecting an OK status is currently not supported by + // Traffic Director. + HttpStatus int64 `json:"httpStatus,omitempty"` + // Percentage: The percentage of traffic for connections, operations, or + // requests + // that is aborted as part of fault injection. + // + // The value must be from 0.0 to 100.0 inclusive. + Percentage float64 `json:"percentage,omitempty"` + // ForceSendFields is a list of field names (e.g. "HttpStatus") to + // unconditionally include in API requests. By default, fields with empty or + // default values are omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + ForceSendFields []string `json:"-"` + // NullFields is a list of field names (e.g. "HttpStatus") to include in API + // requests with the JSON null value. By default, fields with empty values are + // omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s HttpFaultAbort) MarshalJSON() ([]byte, error) { + type NoMethod HttpFaultAbort + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +func (s *HttpFaultAbort) UnmarshalJSON(data []byte) error { + type NoMethod HttpFaultAbort + var s1 struct { + Percentage gensupport.JSONFloat64 `json:"percentage"` + *NoMethod + } + s1.NoMethod = (*NoMethod)(s) + if err := json.Unmarshal(data, &s1); err != nil { + return err + } + s.Percentage = float64(s1.Percentage) + return nil +} + +// HttpFaultDelay: Specifies the delay introduced by the load balancer before +// forwarding the +// request to the backend service as part of fault injection. +type HttpFaultDelay struct { + // FixedDelay: Specifies the value of the fixed delay interval. + FixedDelay *Duration `json:"fixedDelay,omitempty"` + // Percentage: The percentage of traffic for connections, operations, or + // requests for + // which a delay is introduced as part of fault injection. + // + // The value must be from 0.0 to 100.0 inclusive. + Percentage float64 `json:"percentage,omitempty"` + // ForceSendFields is a list of field names (e.g. "FixedDelay") to + // unconditionally include in API requests. By default, fields with empty or + // default values are omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + ForceSendFields []string `json:"-"` + // NullFields is a list of field names (e.g. "FixedDelay") to include in API + // requests with the JSON null value. By default, fields with empty values are + // omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s HttpFaultDelay) MarshalJSON() ([]byte, error) { + type NoMethod HttpFaultDelay + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +func (s *HttpFaultDelay) UnmarshalJSON(data []byte) error { + type NoMethod HttpFaultDelay + var s1 struct { + Percentage gensupport.JSONFloat64 `json:"percentage"` + *NoMethod + } + s1.NoMethod = (*NoMethod)(s) + if err := json.Unmarshal(data, &s1); err != nil { + return err + } + s.Percentage = float64(s1.Percentage) + return nil +} + +// HttpFaultInjection: The specification for fault injection introduced into +// traffic to test +// the resiliency of clients to backend service failure. As part of +// fault +// injection, when clients send requests to a backend service, delays can +// be +// introduced by the load balancer on a percentage of requests before +// sending +// those request to the backend service. Similarly requests from clients can +// be +// aborted by the load balancer for a percentage of requests. +type HttpFaultInjection struct { + // Abort: The specification for how client requests are aborted as part of + // fault + // injection. + Abort *HttpFaultAbort `json:"abort,omitempty"` + // Delay: The specification for how client requests are delayed as part of + // fault + // injection, before being sent to a backend service. + Delay *HttpFaultDelay `json:"delay,omitempty"` + // ForceSendFields is a list of field names (e.g. "Abort") to unconditionally + // include in API requests. By default, fields with empty or default values are + // omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + ForceSendFields []string `json:"-"` + // NullFields is a list of field names (e.g. "Abort") to include in API + // requests with the JSON null value. By default, fields with empty values are + // omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s HttpFaultInjection) MarshalJSON() ([]byte, error) { + type NoMethod HttpFaultInjection + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +// HttpHeaderAction: The request and response header transformations that take +// effect before +// the request is passed along to the selected backendService. +type HttpHeaderAction struct { + // RequestHeadersToAdd: Headers to add to a matching request before forwarding + // the request to thebackendService. + RequestHeadersToAdd []*HttpHeaderOption `json:"requestHeadersToAdd,omitempty"` + // RequestHeadersToRemove: A list of header names for headers that need to be + // removed from the + // request before forwarding the request to the backendService. + RequestHeadersToRemove []string `json:"requestHeadersToRemove,omitempty"` + // ResponseHeadersToAdd: Headers to add the response before sending the + // response back to the + // client. + ResponseHeadersToAdd []*HttpHeaderOption `json:"responseHeadersToAdd,omitempty"` + // ResponseHeadersToRemove: A list of header names for headers that need to be + // removed from the + // response before sending the response back to the client. + ResponseHeadersToRemove []string `json:"responseHeadersToRemove,omitempty"` + // ForceSendFields is a list of field names (e.g. "RequestHeadersToAdd") to + // unconditionally include in API requests. By default, fields with empty or + // default values are omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + ForceSendFields []string `json:"-"` + // NullFields is a list of field names (e.g. "RequestHeadersToAdd") to include + // in API requests with the JSON null value. By default, fields with empty + // values are omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s HttpHeaderAction) MarshalJSON() ([]byte, error) { + type NoMethod HttpHeaderAction + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +// HttpHeaderMatch: matchRule criteria for request header matches. +type HttpHeaderMatch struct { + // ExactMatch: The value should exactly match contents of exactMatch. + // + // Only one of exactMatch, prefixMatch,suffixMatch, regexMatch,presentMatch or + // rangeMatch must be set. + ExactMatch string `json:"exactMatch,omitempty"` + // HeaderName: The name of the HTTP header to match. + // + // For matching against the HTTP request's authority, use a headerMatch + // with the header name ":authority". + // + // For matching a request's method, use the headerName ":method". + // + // When the URL map is bound to a target gRPC proxy that has + // the validateForProxyless field set to true, only + // non-binary + // user-specified custom metadata and the `content-type` header are + // supported. + // The following transport-level headers cannot be used in header + // matching + // rules: + // `:authority`, `:method`, `:path`, `:scheme`, + // `user-agent`, + // `accept-encoding`, `content-encoding`, + // `grpc-accept-encoding`, + // `grpc-encoding`, `grpc-previous-rpc-attempts`, + // `grpc-tags-bin`, + // `grpc-timeout` and `grpc-trace-bin`. + HeaderName string `json:"headerName,omitempty"` + // InvertMatch: If set to false, the headerMatch is considered a + // match if the preceding match criteria are met. If set to true, + // the headerMatch is considered a match if the preceding + // match criteria are NOT met. + // + // The default setting is false. + InvertMatch bool `json:"invertMatch,omitempty"` + // PrefixMatch: The value of the header must start with the contents + // ofprefixMatch. + // + // Only one of exactMatch, prefixMatch,suffixMatch, regexMatch,presentMatch or + // rangeMatch must be set. + PrefixMatch string `json:"prefixMatch,omitempty"` + // PresentMatch: A header with the contents of headerName must exist. The + // match takes place whether or not the request's header has a value. + // + // Only one of exactMatch, prefixMatch,suffixMatch, regexMatch,presentMatch or + // rangeMatch must be set. + PresentMatch bool `json:"presentMatch,omitempty"` + // RangeMatch: The header value must be an integer and its value must be in the + // range + // specified in rangeMatch. If the header does not contain an + // integer, number or is empty, the match fails. + // + // For example for a range [-5, 0] + // + // + // - -3 will match. + // - 0 will not match. + // - 0.25 will not match. + // - -3someString will not match. + // + // Only one of exactMatch, prefixMatch,suffixMatch, regexMatch,presentMatch or + // rangeMatch must be set. + // + // rangeMatch is not supported for load balancers + // that have loadBalancingScheme set to EXTERNAL. + RangeMatch *Int64RangeMatch `json:"rangeMatch,omitempty"` + // RegexMatch: The value of the header must match the regular expression + // specified inregexMatch. + // For more information about regular expression syntax, see Syntax. + // + // For matching against a port specified in the HTTP request, use a + // headerMatch with headerName set to PORT and a regular expression + // that + // satisfies the RFC2616 Host header's port specifier. + // + // Only one of exactMatch, prefixMatch,suffixMatch, regexMatch,presentMatch or + // rangeMatch must be set. + // + // Regular expressions can only be used when the loadBalancingScheme is + // set to INTERNAL_SELF_MANAGED, EXTERNAL_MANAGED + // (regional scope) or INTERNAL_MANAGED. + RegexMatch string `json:"regexMatch,omitempty"` + // SuffixMatch: The value of the header must end with the contents + // ofsuffixMatch. + // + // Only one of exactMatch, prefixMatch,suffixMatch, regexMatch,presentMatch or + // rangeMatch must be set. + SuffixMatch string `json:"suffixMatch,omitempty"` + // ForceSendFields is a list of field names (e.g. "ExactMatch") to + // unconditionally include in API requests. By default, fields with empty or + // default values are omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + ForceSendFields []string `json:"-"` + // NullFields is a list of field names (e.g. "ExactMatch") to include in API + // requests with the JSON null value. By default, fields with empty values are + // omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s HttpHeaderMatch) MarshalJSON() ([]byte, error) { + type NoMethod HttpHeaderMatch + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +// HttpHeaderOption: Specification determining how headers are added to +// requests or responses. +type HttpHeaderOption struct { + // HeaderName: The name of the header. + HeaderName string `json:"headerName,omitempty"` + // HeaderValue: The value of the header to add. + HeaderValue string `json:"headerValue,omitempty"` + // Replace: If false, headerValue is appended to any values + // that already + // exist for the header. If true, headerValue is set for the + // header, discarding any values that were set for that header. + // + // The default value is true, + // unless a variable is present in headerValue, + // in which case the default value is false. + // . + Replace bool `json:"replace,omitempty"` + // ForceSendFields is a list of field names (e.g. "HeaderName") to + // unconditionally include in API requests. By default, fields with empty or + // default values are omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + ForceSendFields []string `json:"-"` + // NullFields is a list of field names (e.g. "HeaderName") to include in API + // requests with the JSON null value. By default, fields with empty values are + // omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s HttpHeaderOption) MarshalJSON() ([]byte, error) { + type NoMethod HttpHeaderOption + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +// HttpHealthCheck: Represents a legacy HTTP Health Check resource. +// +// Legacy HTTP health checks are now only required by target pool-based +// network +// load balancers. For all other load balancers, including backend +// service-based +// network load balancers, and for managed instance group auto-healing, you +// must +// use modern (non-legacy) health checks. +// +// For more information, seeHealth checks +// overview. +type HttpHealthCheck struct { + // CheckIntervalSec: How often (in seconds) to send a health check. The default + // value is5 seconds. + CheckIntervalSec int64 `json:"checkIntervalSec,omitempty"` + // CreationTimestamp: [Output Only] Creation timestamp inRFC3339 + // text format. + CreationTimestamp string `json:"creationTimestamp,omitempty"` + // Description: An optional description of this resource. Provide this property + // when you + // create the resource. + Description string `json:"description,omitempty"` + // HealthyThreshold: A so-far unhealthy instance will be marked healthy after + // this + // many consecutive successes. The default value is 2. + HealthyThreshold int64 `json:"healthyThreshold,omitempty"` + // Host: The value of the host header in the HTTP health check request. If + // left + // empty (default value), the public IP on behalf of which this health check + // is performed will be used. + Host string `json:"host,omitempty"` + // Id: [Output Only] The unique identifier for the resource. This identifier + // is + // defined by the server. + Id uint64 `json:"id,omitempty,string"` + // Kind: Output only. [Output Only] Type of the resource. + // Alwayscompute#httpHealthCheck for HTTP health checks. + Kind string `json:"kind,omitempty"` + // Name: Name of the resource. Provided by the client when the resource is + // created. + // The name must be 1-63 characters long, and comply withRFC1035. + // 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. + Name string `json:"name,omitempty"` + // Port: The TCP port number for the HTTP health check request. The default + // value is80. + Port int64 `json:"port,omitempty"` + // RequestPath: The request path of the HTTP health check request. The default + // value is/. This field does not support query + // parameters. Must comply withRFC3986. + RequestPath string `json:"requestPath,omitempty"` + // SelfLink: [Output Only] Server-defined URL for the resource. + SelfLink string `json:"selfLink,omitempty"` + // TimeoutSec: How long (in seconds) to wait before claiming failure. The + // default value is5 seconds. It is invalid for timeoutSec to have + // greater value than checkIntervalSec. + TimeoutSec int64 `json:"timeoutSec,omitempty"` + // UnhealthyThreshold: A so-far healthy instance will be marked unhealthy after + // this + // many consecutive failures. The default value is 2. + UnhealthyThreshold int64 `json:"unhealthyThreshold,omitempty"` + + // ServerResponse contains the HTTP response code and headers from the server. + googleapi.ServerResponse `json:"-"` + // ForceSendFields is a list of field names (e.g. "CheckIntervalSec") to + // unconditionally include in API requests. By default, fields with empty or + // default values are omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + ForceSendFields []string `json:"-"` + // NullFields is a list of field names (e.g. "CheckIntervalSec") to include in // API requests with the JSON null value. By default, fields with empty values // are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } -func (s *InstantSnapshotsScopedList) MarshalJSON() ([]byte, error) { - type NoMethod InstantSnapshotsScopedList - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s HttpHealthCheck) MarshalJSON() ([]byte, error) { + type NoMethod HttpHealthCheck + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -// InstantSnapshotsScopedListWarning: [Output Only] Informational warning which -// replaces the list of instantSnapshots when the list is empty. -type InstantSnapshotsScopedListWarning 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. +// HttpHealthCheckList: Contains a list of HttpHealthCheck resources. +type HttpHealthCheckList struct { + // Id: [Output Only] Unique identifier for the resource; defined by the server. + Id string `json:"id,omitempty"` + // Items: A list of HttpHealthCheck resources. + Items []*HttpHealthCheck `json:"items,omitempty"` + // Kind: Output only. Type of resource. + 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 thanmaxResults, 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"` + // SelfLink: Output only. [Output Only] Server-defined URL for this resource. + SelfLink string `json:"selfLink,omitempty"` + // Warning: [Output Only] Informational warning message. + Warning *HttpHealthCheckListWarning `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 or default values are + // omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + 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. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s HttpHealthCheckList) MarshalJSON() ([]byte, error) { + type NoMethod HttpHealthCheckList + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +// HttpHealthCheckListWarning: [Output Only] Informational warning message. +type HttpHealthCheckListWarning 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" - Warning about failed cleanup of transient changes made - // by a failed operation. + // by a failed + // operation. // "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was created. // "DEPRECATED_TYPE_USED" - When deploying and at least one of the resources - // has a type marked as deprecated + // has a type marked as + // deprecated // "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk that is // larger than image size. // "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the - // resources has a type marked as experimental + // resources has a type marked as + // experimental // "EXTERNAL_API_WARNING" - Warning that is present in an external api call // "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been - // overridden. Deprecated unused field. + // overridden. + // Deprecated unused field. // "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an injected // kernel, which is deprecated. // "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB" - A WEIGHTED_MAGLEV backend - // service is associated with a health check that is not of type - // HTTP/HTTPS/HTTP2. + // service is associated with a health check that is + // not of type HTTP/HTTPS/HTTP2. // "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a // exceedingly large number of resources // "LIST_OVERHEAD_QUOTA_EXCEED" - Resource can't be retrieved due to list - // overhead quota exceed which captures the amount of resources filtered out by + // overhead quota exceed + // which captures the amount of resources filtered out by // user-defined list filter. // "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is not - // assigned to an instance on the network. + // assigned to an instance on the + // network. // "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot ip // forward. // "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE" - The route's nextHopInstance - // URL refers to an instance that does not have an ipv6 interface on the same - // network as the route. + // URL refers to an instance that does not have an + // ipv6 interface on the same network as the route. // "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL refers to // an instance that does not exist. // "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance URL - // refers to an instance that is not on the same network as the route. + // refers to an instance that is not on the + // same network as the route. // "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not have a // status of RUNNING. // "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to continue - // the process despite the mentioned error. + // the process despite + // the mentioned error. // "NO_RESULTS_ON_PAGE" - No results are present on a particular list page. // "PARTIAL_SUCCESS" - Success is reported, but some results may be missing // due to errors + // "QUOTA_INFO_UNAVAILABLE" - Quota information is not available to client + // requests (e.g: + // regions.list). // "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource that - // requires a TOS they have not accepted. + // requires a TOS they have not + // accepted. // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a resource is // in use. // "RESOURCE_NOT_DELETED" - One or more of the resources set to auto-delete - // could not be deleted because they were in use. + // could not be deleted + // because they were in use. // "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is // ignored. // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in instance - // group manager is valid as such, but its application does not make a lot of - // sense, because it allows only single instance in instance group. + // group manager is valid as such, but + // its application does not make a lot of sense, because it allows only + // single instance in instance group. // "UNDECLARED_PROPERTIES" - When undeclared properties in the schema are // present // "UNREACHABLE" - A given scope cannot be reached. 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 []*InstantSnapshotsScopedListWarningData `json:"data,omitempty"` + // Data: [Output Only] Metadata about this warning in key: + // value format. For example: + // + // "data": [ + // { + // "key": "scope", + // "value": "zones/us-east1-d" + // } + Data []*HttpHealthCheckListWarningData `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 @@ -20608,19 +25441,22 @@ type InstantSnapshotsScopedListWarning struct { NullFields []string `json:"-"` } -func (s *InstantSnapshotsScopedListWarning) MarshalJSON() ([]byte, error) { - type NoMethod InstantSnapshotsScopedListWarning - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s HttpHealthCheckListWarning) MarshalJSON() ([]byte, error) { + type NoMethod HttpHealthCheckListWarning + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -type InstantSnapshotsScopedListWarningData 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). +type HttpHealthCheckListWarningData 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"` @@ -20637,766 +25473,742 @@ type InstantSnapshotsScopedListWarningData struct { NullFields []string `json:"-"` } -func (s *InstantSnapshotsScopedListWarningData) MarshalJSON() ([]byte, error) { - type NoMethod InstantSnapshotsScopedListWarningData - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s HttpHealthCheckListWarningData) MarshalJSON() ([]byte, error) { + type NoMethod HttpHealthCheckListWarningData + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -// Int64RangeMatch: HttpRouteRuleMatch criteria for field values that must stay -// within the specified integer range. -type Int64RangeMatch struct { - // RangeEnd: The end of the range (exclusive) in signed long integer format. - RangeEnd int64 `json:"rangeEnd,omitempty,string"` - // RangeStart: The start of the range (inclusive) in signed long integer - // format. - RangeStart int64 `json:"rangeStart,omitempty,string"` - // ForceSendFields is a list of field names (e.g. "RangeEnd") to +// HttpQueryParameterMatch: HttpRouteRuleMatch criteria for a request's query +// parameter. +type HttpQueryParameterMatch struct { + // ExactMatch: The queryParameterMatch matches if the value of the + // parameter exactly matches the contents of exactMatch. + // + // Only one of presentMatch, exactMatch, orregexMatch must be set. + ExactMatch string `json:"exactMatch,omitempty"` + // Name: The name of the query parameter to match. The query parameter must + // exist in + // the request, in the absence of which the request match fails. + Name string `json:"name,omitempty"` + // PresentMatch: Specifies that the queryParameterMatch matches if the + // request contains the query parameter, irrespective of whether the + // parameter has a value or not. + // + // Only one of presentMatch, exactMatch, orregexMatch must be set. + PresentMatch bool `json:"presentMatch,omitempty"` + // RegexMatch: The queryParameterMatch matches if the value of the + // parameter matches the regular expression specified byregexMatch. For + // more information about regular expression syntax, see Syntax. + // + // Only one of presentMatch, exactMatch, orregexMatch must be set. + // + // Regular expressions can only be used when the loadBalancingScheme is + // set to INTERNAL_SELF_MANAGED, EXTERNAL_MANAGED + // (regional scope) or INTERNAL_MANAGED. + RegexMatch string `json:"regexMatch,omitempty"` + // ForceSendFields is a list of field names (e.g. "ExactMatch") to // unconditionally include in API requests. By default, fields with empty or // default values are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. ForceSendFields []string `json:"-"` - // NullFields is a list of field names (e.g. "RangeEnd") to include in API + // NullFields is a list of field names (e.g. "ExactMatch") to include in API // requests with the JSON null value. By default, fields with empty values are // omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } -func (s *Int64RangeMatch) MarshalJSON() ([]byte, error) { - type NoMethod Int64RangeMatch - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s HttpQueryParameterMatch) MarshalJSON() ([]byte, error) { + type NoMethod HttpQueryParameterMatch + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -// Interconnect: Represents an Interconnect resource. An Interconnect resource -// is a dedicated connection between the Google Cloud network and your -// on-premises network. For more information, read the Dedicated Interconnect -// Overview. -type Interconnect struct { - // AdminEnabled: Administrative status of the interconnect. When this is set to - // true, the Interconnect is functional and can carry traffic. When set to - // false, no packets can be carried over the interconnect and no BGP routes are - // exchanged over it. By default, the status is set to true. - AdminEnabled bool `json:"adminEnabled,omitempty"` - // AvailableFeatures: [Output only] List of features available for this - // Interconnect connection, which can take one of the following values: - - // MACSEC If present then the Interconnect connection is provisioned on MACsec - // capable hardware ports. If not present then the Interconnect connection is - // provisioned on non-MACsec capable ports and MACsec isn't supported and - // enabling MACsec fails. +// HttpRedirectAction: Specifies settings for an HTTP redirect. +type HttpRedirectAction struct { + // HostRedirect: The host that is used in the redirect response instead of the + // one that + // was supplied in the request. // - // Possible values: - // "IF_MACSEC" - Media Access Control security (MACsec) - AvailableFeatures []string `json:"availableFeatures,omitempty"` - // CircuitInfos: [Output Only] A list of CircuitInfo objects, that describe the - // individual circuits in this LAG. - CircuitInfos []*InterconnectCircuitInfo `json:"circuitInfos,omitempty"` - // CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text format. - CreationTimestamp string `json:"creationTimestamp,omitempty"` - // CustomerName: Customer name, to put in the Letter of Authorization as the - // party authorized to request a crossconnect. - CustomerName string `json:"customerName,omitempty"` - // Description: An optional description of this resource. Provide this property - // when you create the resource. - Description string `json:"description,omitempty"` - // ExpectedOutages: [Output Only] A list of outages expected for this - // Interconnect. - ExpectedOutages []*InterconnectOutageNotification `json:"expectedOutages,omitempty"` - // GoogleIpAddress: [Output Only] IP address configured on the Google side of - // the Interconnect link. This can be used only for ping tests. - GoogleIpAddress string `json:"googleIpAddress,omitempty"` - // GoogleReferenceId: [Output Only] Google reference ID to be used when raising - // support tickets with Google or otherwise to debug backend connectivity - // issues. - GoogleReferenceId string `json:"googleReferenceId,omitempty"` - // Id: [Output Only] The unique identifier for the resource. This identifier is - // defined by the server. - Id uint64 `json:"id,omitempty,string"` - // InterconnectAttachments: [Output Only] A list of the URLs of all - // InterconnectAttachments configured to use this Interconnect. - InterconnectAttachments []string `json:"interconnectAttachments,omitempty"` - // InterconnectType: Type of interconnect, which can take one of the following - // values: - PARTNER: A partner-managed interconnection shared between - // customers though a partner. - DEDICATED: A dedicated physical - // interconnection with the customer. Note that a value IT_PRIVATE has been - // deprecated in favor of DEDICATED. + // The value must be from 1 to 255 + // characters. + HostRedirect string `json:"hostRedirect,omitempty"` + // HttpsRedirect: If set to true, the URL scheme in the redirected request + // is + // set to HTTPS. + // If set to false, the URL scheme of the redirected request + // remains the same as that of the request. // - // Possible values: - // "DEDICATED" - A dedicated physical interconnection with the customer. - // "IT_PRIVATE" - [Deprecated] A private, physical interconnection with the - // customer. - // "PARTNER" - A partner-managed interconnection shared between customers via - // partner. - InterconnectType string `json:"interconnectType,omitempty"` - // Kind: [Output Only] Type of the resource. Always compute#interconnect for - // interconnects. - Kind string `json:"kind,omitempty"` - // LabelFingerprint: A fingerprint for the labels being applied to this - // Interconnect, which is essentially a hash of the labels set used for - // optimistic locking. The fingerprint is initially generated by Compute Engine - // and changes after every request to modify or update labels. You must always - // provide an up-to-date fingerprint hash in order to update or change labels, - // otherwise the request will fail with error 412 conditionNotMet. To see the - // latest fingerprint, make a get() request to retrieve an Interconnect. - LabelFingerprint string `json:"labelFingerprint,omitempty"` - // Labels: Labels for this resource. These can only be added or modified by the - // setLabels method. Each label key/value pair must comply with RFC1035. Label - // values may be empty. - Labels map[string]string `json:"labels,omitempty"` - // LinkType: Type of link requested, which can take one of the following - // values: - LINK_TYPE_ETHERNET_10G_LR: A 10G Ethernet with LR optics - - // LINK_TYPE_ETHERNET_100G_LR: A 100G Ethernet with LR optics. Note that this - // field indicates the speed of each of the links in the bundle, not the speed - // of the entire bundle. + // This must only be set for URL maps used inTargetHttpProxys. Setting this + // true forTargetHttpsProxy is not permitted. // - // Possible values: - // "LINK_TYPE_ETHERNET_100G_LR" - 100G Ethernet, LR Optics. - // "LINK_TYPE_ETHERNET_10G_LR" - 10G Ethernet, LR Optics. [(rate_bps) = - // 10000000000]; - LinkType string `json:"linkType,omitempty"` - // Location: URL of the InterconnectLocation object that represents where this - // connection is to be provisioned. - Location string `json:"location,omitempty"` - // Macsec: Configuration that enables Media Access Control security (MACsec) on - // the Cloud Interconnect connection between Google and your on-premises - // router. - Macsec *InterconnectMacsec `json:"macsec,omitempty"` - // MacsecEnabled: Enable or disable MACsec on this Interconnect connection. - // MACsec enablement fails if the MACsec object is not specified. - MacsecEnabled bool `json:"macsecEnabled,omitempty"` - // Name: Name of the resource. Provided by the client when the resource is - // created. The name must be 1-63 characters long, and comply with RFC1035. - // 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. - Name string `json:"name,omitempty"` - // NocContactEmail: Email address to contact the customer NOC for operations - // and maintenance notifications regarding this Interconnect. If specified, - // this will be used for notifications in addition to all other forms - // described, such as Cloud Monitoring logs alerting and Cloud Notifications. - // This field is required for users who sign up for Cloud Interconnect using - // workforce identity federation. - NocContactEmail string `json:"nocContactEmail,omitempty"` - // OperationalStatus: [Output Only] The current status of this Interconnect's - // functionality, which can take one of the following values: - OS_ACTIVE: A - // valid Interconnect, which is turned up and is ready to use. Attachments may - // be provisioned on this Interconnect. - OS_UNPROVISIONED: An Interconnect - // that has not completed turnup. No attachments may be provisioned on this - // Interconnect. - OS_UNDER_MAINTENANCE: An Interconnect that is undergoing - // internal maintenance. No attachments may be provisioned or updated on this - // Interconnect. + // The default is set to false. + HttpsRedirect bool `json:"httpsRedirect,omitempty"` + // PathRedirect: The path that is used in the redirect response instead of the + // one + // that was supplied in the request. // - // Possible values: - // "OS_ACTIVE" - The interconnect is valid, turned up, and ready to use. - // Attachments may be provisioned on this interconnect. - // "OS_UNPROVISIONED" - The interconnect has not completed turnup. No - // attachments may be provisioned on this interconnect. - OperationalStatus string `json:"operationalStatus,omitempty"` - // PeerIpAddress: [Output Only] IP address configured on the customer side of - // the Interconnect link. The customer should configure this IP address during - // turnup when prompted by Google NOC. This can be used only for ping tests. - PeerIpAddress string `json:"peerIpAddress,omitempty"` - // ProvisionedLinkCount: [Output Only] Number of links actually provisioned in - // this interconnect. - ProvisionedLinkCount int64 `json:"provisionedLinkCount,omitempty"` - // RemoteLocation: Indicates that this is a Cross-Cloud Interconnect. This - // field specifies the location outside of Google's network that the - // interconnect is connected to. - RemoteLocation string `json:"remoteLocation,omitempty"` - // RequestedFeatures: Optional. List of features requested for this - // Interconnect connection, which can take one of the following values: - - // MACSEC If specified then the connection is created on MACsec capable - // hardware ports. If not specified, the default value is false, which - // allocates non-MACsec capable ports first if available. This parameter can be - // provided only with Interconnect INSERT. It isn't valid for Interconnect - // PATCH. + // pathRedirect cannot be supplied together withprefixRedirect. Supply one + // alone or neither. If neither is + // supplied, the path of the original request is used for the redirect. // - // Possible values: - // "IF_MACSEC" - Media Access Control security (MACsec) - RequestedFeatures []string `json:"requestedFeatures,omitempty"` - // RequestedLinkCount: Target number of physical links in the link bundle, as - // requested by the customer. - RequestedLinkCount int64 `json:"requestedLinkCount,omitempty"` - // SatisfiesPzs: [Output Only] Reserved for future use. - SatisfiesPzs bool `json:"satisfiesPzs,omitempty"` - // SelfLink: [Output Only] Server-defined URL for the resource. - SelfLink string `json:"selfLink,omitempty"` - // State: [Output Only] The current state of Interconnect functionality, which - // can take one of the following values: - ACTIVE: The Interconnect is valid, - // turned up and ready to use. Attachments may be provisioned on this - // Interconnect. - UNPROVISIONED: The Interconnect has not completed turnup. No - // attachments may be provisioned on this Interconnect. - UNDER_MAINTENANCE: - // The Interconnect is undergoing internal maintenance. No attachments may be - // provisioned or updated on this Interconnect. + // The value must be from 1 to 1024 characters. + PathRedirect string `json:"pathRedirect,omitempty"` + // PrefixRedirect: The prefix that replaces the prefixMatch specified in + // the HttpRouteRuleMatch, retaining the remaining portion + // of the URL before redirecting the request. + // + // prefixRedirect cannot be supplied together withpathRedirect. Supply one + // alone or neither. If neither is + // supplied, the path of the original request is used for the redirect. + // + // The value must be from 1 to 1024 characters. + PrefixRedirect string `json:"prefixRedirect,omitempty"` + // RedirectResponseCode: The HTTP Status code to use for this + // RedirectAction. + // + // Supported values are: + // + // - MOVED_PERMANENTLY_DEFAULT, which is the default value and corresponds + // to 301. + // - FOUND, which corresponds to 302. + // - SEE_OTHER which corresponds to 303. + // - TEMPORARY_REDIRECT, which corresponds to 307. In this case, the + // request + // method is retained. + // - PERMANENT_REDIRECT, which corresponds to 308. In this case, the + // request + // method is retained. // // Possible values: - // "ACTIVE" - The interconnect is valid, turned up, and ready to use. - // Attachments may be provisioned on this interconnect. - // "UNPROVISIONED" - The interconnect has not completed turnup. No - // attachments may be provisioned on this interconnect. - State string `json:"state,omitempty"` - - // ServerResponse contains the HTTP response code and headers from the server. - googleapi.ServerResponse `json:"-"` - // ForceSendFields is a list of field names (e.g. "AdminEnabled") to + // "FOUND" - Http Status Code 302 - Found. + // "MOVED_PERMANENTLY_DEFAULT" - Http Status Code 301 - Moved Permanently. + // "PERMANENT_REDIRECT" - Http Status Code 308 - Permanent Redirect + // maintaining HTTP method. + // "SEE_OTHER" - Http Status Code 303 - See Other. + // "TEMPORARY_REDIRECT" - Http Status Code 307 - Temporary Redirect + // maintaining HTTP method. + RedirectResponseCode string `json:"redirectResponseCode,omitempty"` + // StripQuery: If set to true, any accompanying query portion of the + // original + // URL is + // removed before redirecting the request. If set to false, the + // query portion of the original URL is retained. + // + // The default is set to false. + StripQuery bool `json:"stripQuery,omitempty"` + // ForceSendFields is a list of field names (e.g. "HostRedirect") to // unconditionally include in API requests. By default, fields with empty or // default values are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. ForceSendFields []string `json:"-"` - // NullFields is a list of field names (e.g. "AdminEnabled") to include in API + // NullFields is a list of field names (e.g. "HostRedirect") to include in API // requests with the JSON null value. By default, fields with empty values are // omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } -func (s *Interconnect) MarshalJSON() ([]byte, error) { - type NoMethod Interconnect - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s HttpRedirectAction) MarshalJSON() ([]byte, error) { + type NoMethod HttpRedirectAction + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -// InterconnectAttachment: Represents an Interconnect Attachment (VLAN) -// resource. You can use Interconnect attachments (VLANS) to connect your -// Virtual Private Cloud networks to your on-premises networks through an -// Interconnect. For more information, read Creating VLAN Attachments. -type InterconnectAttachment struct { - // AdminEnabled: Determines whether this Attachment will carry packets. Not - // present for PARTNER_PROVIDER. - AdminEnabled bool `json:"adminEnabled,omitempty"` - // Bandwidth: Provisioned bandwidth capacity for the interconnect attachment. - // For attachments of type DEDICATED, the user can set the bandwidth. For - // attachments of type PARTNER, the Google Partner that is operating the - // interconnect must set the bandwidth. Output only for PARTNER type, mutable - // for PARTNER_PROVIDER and DEDICATED, and can take one of the following - // values: - BPS_50M: 50 Mbit/s - BPS_100M: 100 Mbit/s - BPS_200M: 200 Mbit/s - - // BPS_300M: 300 Mbit/s - BPS_400M: 400 Mbit/s - BPS_500M: 500 Mbit/s - BPS_1G: - // 1 Gbit/s - BPS_2G: 2 Gbit/s - BPS_5G: 5 Gbit/s - BPS_10G: 10 Gbit/s - - // BPS_20G: 20 Gbit/s - BPS_50G: 50 Gbit/s - // - // Possible values: - // "BPS_100M" - 100 Mbit/s - // "BPS_10G" - 10 Gbit/s - // "BPS_1G" - 1 Gbit/s - // "BPS_200M" - 200 Mbit/s - // "BPS_20G" - 20 Gbit/s - // "BPS_2G" - 2 Gbit/s - // "BPS_300M" - 300 Mbit/s - // "BPS_400M" - 400 Mbit/s - // "BPS_500M" - 500 Mbit/s - // "BPS_50G" - 50 Gbit/s - // "BPS_50M" - 50 Mbit/s - // "BPS_5G" - 5 Gbit/s - Bandwidth string `json:"bandwidth,omitempty"` - // CandidateIpv6Subnets: This field is not available. - CandidateIpv6Subnets []string `json:"candidateIpv6Subnets,omitempty"` - // CandidateSubnets: Up to 16 candidate prefixes that can be used to restrict - // the allocation of cloudRouterIpAddress and customerRouterIpAddress for this - // attachment. All prefixes must be within link-local address space - // (169.254.0.0/16) and must be /29 or shorter (/28, /27, etc). Google will - // attempt to select an unused /29 from the supplied candidate prefix(es). The - // request will fail if all possible /29s are in use on Google's edge. If not - // supplied, Google will randomly select an unused /29 from all of link-local - // space. - CandidateSubnets []string `json:"candidateSubnets,omitempty"` - // CloudRouterIpAddress: [Output Only] IPv4 address + prefix length to be - // configured on Cloud Router Interface for this interconnect attachment. - CloudRouterIpAddress string `json:"cloudRouterIpAddress,omitempty"` - // CloudRouterIpv6Address: [Output Only] IPv6 address + prefix length to be - // configured on Cloud Router Interface for this interconnect attachment. - CloudRouterIpv6Address string `json:"cloudRouterIpv6Address,omitempty"` - // CloudRouterIpv6InterfaceId: This field is not available. - CloudRouterIpv6InterfaceId string `json:"cloudRouterIpv6InterfaceId,omitempty"` - // ConfigurationConstraints: [Output Only] Constraints for this attachment, if - // any. The attachment does not work if these constraints are not met. - ConfigurationConstraints *InterconnectAttachmentConfigurationConstraints `json:"configurationConstraints,omitempty"` - // CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text format. - CreationTimestamp string `json:"creationTimestamp,omitempty"` - // CustomerRouterIpAddress: [Output Only] IPv4 address + prefix length to be - // configured on the customer router subinterface for this interconnect - // attachment. - CustomerRouterIpAddress string `json:"customerRouterIpAddress,omitempty"` - // CustomerRouterIpv6Address: [Output Only] IPv6 address + prefix length to be - // configured on the customer router subinterface for this interconnect - // attachment. - CustomerRouterIpv6Address string `json:"customerRouterIpv6Address,omitempty"` - // CustomerRouterIpv6InterfaceId: This field is not available. - CustomerRouterIpv6InterfaceId string `json:"customerRouterIpv6InterfaceId,omitempty"` - // DataplaneVersion: [Output Only] Dataplane version for this - // InterconnectAttachment. This field is only present for Dataplane version 2 - // and higher. Absence of this field in the API output indicates that the - // Dataplane is version 1. - DataplaneVersion int64 `json:"dataplaneVersion,omitempty"` - // Description: An optional description of this resource. - Description string `json:"description,omitempty"` - // EdgeAvailabilityDomain: Desired availability domain for the attachment. Only - // available for type PARTNER, at creation time, and can take one of the - // following values: - AVAILABILITY_DOMAIN_ANY - AVAILABILITY_DOMAIN_1 - - // AVAILABILITY_DOMAIN_2 For improved reliability, customers should configure a - // pair of attachments, one per availability domain. The selected availability - // domain will be provided to the Partner via the pairing key, so that the - // provisioned circuit will lie in the specified domain. If not specified, the - // value will default to AVAILABILITY_DOMAIN_ANY. - // - // Possible values: - // "AVAILABILITY_DOMAIN_1" - // "AVAILABILITY_DOMAIN_2" - // "AVAILABILITY_DOMAIN_ANY" - EdgeAvailabilityDomain string `json:"edgeAvailabilityDomain,omitempty"` - // Encryption: Indicates the user-supplied encryption option of this VLAN - // attachment (interconnectAttachment). Can only be specified at attachment - // creation for PARTNER or DEDICATED attachments. Possible values are: - NONE - - // This is the default value, which means that the VLAN attachment carries - // unencrypted traffic. VMs are able to send traffic to, or receive traffic - // from, such a VLAN attachment. - IPSEC - The VLAN attachment carries only - // encrypted traffic that is encrypted by an IPsec device, such as an HA VPN - // gateway or third-party IPsec VPN. VMs cannot directly send traffic to, or - // receive traffic from, such a VLAN attachment. To use *HA VPN over Cloud - // Interconnect*, the VLAN attachment must be created with this option. +// HttpRetryPolicy: The retry policy associates with HttpRouteRule +type HttpRetryPolicy struct { + // NumRetries: Specifies the allowed number retries. This number must be > + // 0. + // If not specified, defaults to 1. + NumRetries int64 `json:"numRetries,omitempty"` + // PerTryTimeout: Specifies a non-zero timeout per retry attempt. // - // Possible values: - // "IPSEC" - The interconnect attachment will carry only encrypted traffic - // that is encrypted by an IPsec device such as HA VPN gateway; VMs cannot - // directly send traffic to or receive traffic from such an interconnect - // attachment. To use HA VPN over Cloud Interconnect, the interconnect - // attachment must be created with this option. - // "NONE" - This is the default value, which means the Interconnect - // Attachment will carry unencrypted traffic. VMs will be able to send traffic - // to or receive traffic from such interconnect attachment. - Encryption string `json:"encryption,omitempty"` - // GoogleReferenceId: [Output Only] Google reference ID, to be used when - // raising support tickets with Google or otherwise to debug backend - // connectivity issues. [Deprecated] This field is not used. - GoogleReferenceId string `json:"googleReferenceId,omitempty"` - // Id: [Output Only] The unique identifier for the resource. This identifier is - // defined by the server. - Id uint64 `json:"id,omitempty,string"` - // Interconnect: URL of the underlying Interconnect object that this - // attachment's traffic will traverse through. - Interconnect string `json:"interconnect,omitempty"` - // IpsecInternalAddresses: A list of URLs of addresses that have been reserved - // for the VLAN attachment. Used only for the VLAN attachment that has the - // encryption option as IPSEC. The addresses must be regional internal IP - // address ranges. When creating an HA VPN gateway over the VLAN attachment, if - // the attachment is configured to use a regional internal IP address, then the - // VPN gateway's IP address is allocated from the IP address range specified - // here. For example, if the HA VPN gateway's interface 0 is paired to this - // VLAN attachment, then a regional internal IP address for the VPN gateway - // interface 0 will be allocated from the IP address specified for this VLAN - // attachment. If this field is not specified when creating the VLAN - // attachment, then later on when creating an HA VPN gateway on this VLAN - // attachment, the HA VPN gateway's IP address is allocated from the regional - // external IP address pool. - IpsecInternalAddresses []string `json:"ipsecInternalAddresses,omitempty"` - // Kind: [Output Only] Type of the resource. Always - // compute#interconnectAttachment for interconnect attachments. - Kind string `json:"kind,omitempty"` - // LabelFingerprint: A fingerprint for the labels being applied to this - // InterconnectAttachment, which is essentially a hash of the labels set used - // for optimistic locking. The fingerprint is initially generated by Compute - // Engine and changes after every request to modify or update labels. You must - // always provide an up-to-date fingerprint hash in order to update or change - // labels, otherwise the request will fail with error 412 conditionNotMet. To - // see the latest fingerprint, make a get() request to retrieve an - // InterconnectAttachment. - LabelFingerprint string `json:"labelFingerprint,omitempty"` - // Labels: Labels for this resource. These can only be added or modified by the - // setLabels method. Each label key/value pair must comply with RFC1035. Label - // values may be empty. - Labels map[string]string `json:"labels,omitempty"` - // Mtu: Maximum Transmission Unit (MTU), in bytes, of packets passing through - // this interconnect attachment. Only 1440 and 1500 are allowed. If not - // specified, the value will default to 1440. - Mtu int64 `json:"mtu,omitempty"` - // Name: Name of the resource. Provided by the client when the resource is - // created. The name must be 1-63 characters long, and comply with RFC1035. - // 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. - Name string `json:"name,omitempty"` - // OperationalStatus: [Output Only] The current status of whether or not this - // interconnect attachment is functional, which can take one of the following - // values: - OS_ACTIVE: The attachment has been turned up and is ready to use. - // - OS_UNPROVISIONED: The attachment is not ready to use yet, because turnup - // is not complete. + // If not specified, will use the timeout set in theHttpRouteAction field. + // If timeout in the HttpRouteAction field is not set, this field + // uses the largest timeout + // among all backend services associated with the route. // - // Possible values: - // "OS_ACTIVE" - Indicates that attachment has been turned up and is ready to - // use. - // "OS_UNPROVISIONED" - Indicates that attachment is not ready to use yet, - // because turnup is not complete. - OperationalStatus string `json:"operationalStatus,omitempty"` - // PairingKey: [Output only for type PARTNER. Input only for PARTNER_PROVIDER. - // Not present for DEDICATED]. The opaque identifier of a PARTNER attachment - // used to initiate provisioning with a selected partner. Of the form - // "XXXXX/region/domain" - PairingKey string `json:"pairingKey,omitempty"` - // PartnerAsn: Optional BGP ASN for the router supplied by a Layer 3 Partner if - // they configured BGP on behalf of the customer. Output only for PARTNER type, - // input only for PARTNER_PROVIDER, not available for DEDICATED. - PartnerAsn int64 `json:"partnerAsn,omitempty,string"` - // PartnerMetadata: Informational metadata about Partner attachments from - // Partners to display to customers. Output only for PARTNER type, mutable for - // PARTNER_PROVIDER, not available for DEDICATED. - PartnerMetadata *InterconnectAttachmentPartnerMetadata `json:"partnerMetadata,omitempty"` - // PrivateInterconnectInfo: [Output Only] Information specific to an - // InterconnectAttachment. This property is populated if the interconnect that - // this is attached to is of type DEDICATED. - PrivateInterconnectInfo *InterconnectAttachmentPrivateInfo `json:"privateInterconnectInfo,omitempty"` - // Region: [Output Only] URL of the region where the regional interconnect - // attachment resides. You must specify this field as part of the HTTP request - // URL. It is not settable as a field in the request body. - Region string `json:"region,omitempty"` - // RemoteService: [Output Only] If the attachment is on a Cross-Cloud - // Interconnect connection, this field contains the interconnect's remote - // location service provider. Example values: "Amazon Web Services" "Microsoft - // Azure". The field is set only for attachments on Cross-Cloud Interconnect - // connections. Its value is copied from the InterconnectRemoteLocation - // remoteService field. - RemoteService string `json:"remoteService,omitempty"` - // Router: URL of the Cloud Router to be used for dynamic routing. This router - // must be in the same region as this InterconnectAttachment. The - // InterconnectAttachment will automatically connect the Interconnect to the - // network & region within which the Cloud Router is configured. - Router string `json:"router,omitempty"` - // SatisfiesPzs: [Output Only] Reserved for future use. - SatisfiesPzs bool `json:"satisfiesPzs,omitempty"` - // SelfLink: [Output Only] Server-defined URL for the resource. - SelfLink string `json:"selfLink,omitempty"` - // StackType: The stack type for this interconnect attachment to identify - // whether the IPv6 feature is enabled or not. If not specified, IPV4_ONLY will - // be used. This field can be both set at interconnect attachments creation and - // update interconnect attachment operations. + // Not supported when the URL map is bound to a target gRPC proxy that + // has the validateForProxyless field set to true. + PerTryTimeout *Duration `json:"perTryTimeout,omitempty"` + // RetryConditions: Specifies one or more conditions when this retry policy + // applies. Valid + // values are: // - // Possible values: - // "IPV4_IPV6" - The interconnect attachment can have both IPv4 and IPv6 - // addresses. - // "IPV4_ONLY" - The interconnect attachment will only be assigned IPv4 - // addresses. - StackType string `json:"stackType,omitempty"` - // State: [Output Only] The current state of this attachment's functionality. - // Enum values ACTIVE and UNPROVISIONED are shared by DEDICATED/PRIVATE, - // PARTNER, and PARTNER_PROVIDER interconnect attachments, while enum values - // PENDING_PARTNER, PARTNER_REQUEST_RECEIVED, and PENDING_CUSTOMER are used for - // only PARTNER and PARTNER_PROVIDER interconnect attachments. This state can - // take one of the following values: - ACTIVE: The attachment has been turned - // up and is ready to use. - UNPROVISIONED: The attachment is not ready to use - // yet, because turnup is not complete. - PENDING_PARTNER: A newly-created - // PARTNER attachment that has not yet been configured on the Partner side. - - // PARTNER_REQUEST_RECEIVED: A PARTNER attachment is in the process of - // provisioning after a PARTNER_PROVIDER attachment was created that references - // it. - PENDING_CUSTOMER: A PARTNER or PARTNER_PROVIDER attachment that is - // waiting for a customer to activate it. - DEFUNCT: The attachment was deleted - // externally and is no longer functional. This could be because the associated - // Interconnect was removed, or because the other side of a Partner attachment - // was deleted. + // - 5xx: retry is attempted if the instance or endpoint + // responds with any 5xx response code, or if the instance or + // endpoint does not respond at all. For example, disconnects, reset, read + // timeout, connection failure, and refused streams. + // - gateway-error: Similar to 5xx, but only + // applies to response codes 502, 503 or504. + // - connect-failure: a retry is attempted on failures + // connecting to the instance or endpoint. For example, connection + // timeouts. + // - retriable-4xx: a retry is attempted if the instance + // or endpoint responds with a 4xx response code. + // The only error that you can retry is error code 409. + // - refused-stream: a retry is attempted if the instance + // or endpoint resets the stream with a REFUSED_STREAM error + // code. This reset type indicates that it is safe to retry. + // - cancelled: a retry is attempted if the gRPC status + // code in the response header is set to cancelled. + // - deadline-exceeded: a retry is attempted if the gRPC + // status code in the response header is set todeadline-exceeded. + // - internal: a retry is attempted if the gRPC + // status code in the response header is set tointernal. + // - resource-exhausted: a retry is attempted if the gRPC + // status code in the response header is set toresource-exhausted. + // - unavailable: a retry is attempted if the gRPC + // status code in the response header is set tounavailable. // - // Possible values: - // "ACTIVE" - Indicates that attachment has been turned up and is ready to - // use. - // "DEFUNCT" - The attachment was deleted externally and is no longer - // functional. This could be because the associated Interconnect was wiped out, - // or because the other side of a Partner attachment was deleted. - // "PARTNER_REQUEST_RECEIVED" - A PARTNER attachment is in the process of - // provisioning after a PARTNER_PROVIDER attachment was created that references - // it. - // "PENDING_CUSTOMER" - PARTNER or PARTNER_PROVIDER attachment that is - // waiting for the customer to activate. - // "PENDING_PARTNER" - A newly created PARTNER attachment that has not yet - // been configured on the Partner side. - // "STATE_UNSPECIFIED" - // "UNPROVISIONED" - Indicates that attachment is not ready to use yet, - // because turnup is not complete. - State string `json:"state,omitempty"` - // SubnetLength: Length of the IPv4 subnet mask. Allowed values: - 29 (default) - // - 30 The default value is 29, except for Cross-Cloud Interconnect - // connections that use an InterconnectRemoteLocation with a - // constraints.subnetLengthRange.min equal to 30. For example, connections that - // use an Azure remote location fall into this category. In these cases, the - // default value is 30, and requesting 29 returns an error. Where both 29 and - // 30 are allowed, 29 is preferred, because it gives Google Cloud Support more - // debugging visibility. - SubnetLength int64 `json:"subnetLength,omitempty"` - // Type: The type of interconnect attachment this is, which can take one of the - // following values: - DEDICATED: an attachment to a Dedicated Interconnect. - - // PARTNER: an attachment to a Partner Interconnect, created by the customer. - - // PARTNER_PROVIDER: an attachment to a Partner Interconnect, created by the - // partner. + // Only the following codes are supported when the URL map is bound to + // target gRPC proxy that has validateForProxyless field set to true. // - // Possible values: - // "DEDICATED" - Attachment to a dedicated interconnect. - // "PARTNER" - Attachment to a partner interconnect, created by the customer. - // "PARTNER_PROVIDER" - Attachment to a partner interconnect, created by the - // partner. - Type string `json:"type,omitempty"` - // VlanTag8021q: The IEEE 802.1Q VLAN tag for this attachment, in the range - // 2-4093. Only specified at creation time. - VlanTag8021q int64 `json:"vlanTag8021q,omitempty"` - - // ServerResponse contains the HTTP response code and headers from the server. - googleapi.ServerResponse `json:"-"` - // ForceSendFields is a list of field names (e.g. "AdminEnabled") to + // - cancelled + // - deadline-exceeded + // - internal + // - resource-exhausted + // - unavailable + RetryConditions []string `json:"retryConditions,omitempty"` + // ForceSendFields is a list of field names (e.g. "NumRetries") to // unconditionally include in API requests. By default, fields with empty or // default values are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. ForceSendFields []string `json:"-"` - // NullFields is a list of field names (e.g. "AdminEnabled") to include in API + // NullFields is a list of field names (e.g. "NumRetries") to include in API // requests with the JSON null value. By default, fields with empty values are // omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } -func (s *InterconnectAttachment) MarshalJSON() ([]byte, error) { - type NoMethod InterconnectAttachment - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) -} - -type InterconnectAttachmentAggregatedList struct { - // Id: [Output Only] Unique identifier for the resource; defined by the server. - Id string `json:"id,omitempty"` - // Items: A list of InterconnectAttachmentsScopedList resources. - Items map[string]InterconnectAttachmentsScopedList `json:"items,omitempty"` - // Kind: [Output Only] Type of resource. Always - // compute#interconnectAttachmentAggregatedList for aggregated lists of - // interconnect attachments. - 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"` - // SelfLink: [Output Only] Server-defined URL for this resource. - SelfLink string `json:"selfLink,omitempty"` - // Unreachables: [Output Only] Unreachable resources. - Unreachables []string `json:"unreachables,omitempty"` - // Warning: [Output Only] Informational warning message. - Warning *InterconnectAttachmentAggregatedListWarning `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 or default values are - // omitted from API requests. See - // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more - // details. - 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. See - // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. - NullFields []string `json:"-"` -} - -func (s *InterconnectAttachmentAggregatedList) MarshalJSON() ([]byte, error) { - type NoMethod InterconnectAttachmentAggregatedList - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s HttpRetryPolicy) MarshalJSON() ([]byte, error) { + type NoMethod HttpRetryPolicy + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -// InterconnectAttachmentAggregatedListWarning: [Output Only] Informational -// warning message. -type InterconnectAttachmentAggregatedListWarning 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. +type HttpRouteAction struct { + // CachePolicy: Specifies the cache policy configuration for matched traffic. + // Available + // only for Global `EXTERNAL_MANAGED` load balancer schemes. At least + // one + // property must be specified. This policy cannot be specified if any + // target + // backend has Identity-Aware Proxy enabled. + CachePolicy *CachePolicy `json:"cachePolicy,omitempty"` + // CorsPolicy: The specification for allowing client-side cross-origin + // requests. For more + // information about the W3C recommendation for cross-origin resource + // sharing + // (CORS), see Fetch API Living + // Standard. // - // Possible values: - // "CLEANUP_FAILED" - Warning about failed cleanup of transient changes made - // by a failed operation. - // "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was created. - // "DEPRECATED_TYPE_USED" - When deploying and at least one of the resources - // has a type marked as deprecated - // "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk that is - // larger than image size. - // "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the - // resources has a type marked as experimental - // "EXTERNAL_API_WARNING" - Warning that is present in an external api call - // "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been - // overridden. Deprecated unused field. - // "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an injected - // kernel, which is deprecated. - // "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB" - A WEIGHTED_MAGLEV backend - // service is associated with a health check that is not of type - // HTTP/HTTPS/HTTP2. - // "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a - // exceedingly large number of resources - // "LIST_OVERHEAD_QUOTA_EXCEED" - Resource can't be retrieved due to list - // overhead quota exceed which captures the amount of resources filtered out by - // user-defined list filter. - // "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type - // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is not - // assigned to an instance on the network. - // "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot ip - // forward. - // "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE" - The route's nextHopInstance - // URL refers to an instance that does not have an ipv6 interface on the same - // network as the route. - // "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL refers to - // an instance that does not exist. - // "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance URL - // refers to an instance that is not on the same network as the route. - // "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not have a - // status of RUNNING. - // "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to continue - // the process despite the mentioned error. - // "NO_RESULTS_ON_PAGE" - No results are present on a particular list page. - // "PARTIAL_SUCCESS" - Success is reported, but some results may be missing - // due to errors - // "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource that - // requires a TOS they have not accepted. - // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a resource is - // in use. - // "RESOURCE_NOT_DELETED" - One or more of the resources set to auto-delete - // could not be deleted because they were in use. - // "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is - // ignored. - // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in instance - // group manager is valid as such, but its application does not make a lot of - // sense, because it allows only single instance in instance group. - // "UNDECLARED_PROPERTIES" - When undeclared properties in the schema are - // present - // "UNREACHABLE" - A given scope cannot be reached. - 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 []*InterconnectAttachmentAggregatedListWarningData `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 or default values are - // omitted from API requests. See + // Not supported when the URL map is bound to a target gRPC proxy. + CorsPolicy *CorsPolicy `json:"corsPolicy,omitempty"` + // FaultInjectionPolicy: The specification for fault injection introduced into + // traffic to test + // the resiliency of clients to backend service failure. As part of + // fault + // injection, when clients send requests to a backend service, delays can + // be + // introduced by a load balancer on a percentage of requests before + // sending + // those requests to the backend service. Similarly requests from clients + // can + // be aborted by the load balancer for a percentage of requests.timeout and + // retry_policy is ignored by clients + // that are configured with a fault_injection_policy if: + // 1. The traffic is generated by fault injection AND + // 2. The fault injection is not a delay fault injection. + // Fault injection is not supported with the classic Application Load + // Balancer + // . To see which load balancers support fault injection, + // see Load + // balancing: Routing and traffic management features. + FaultInjectionPolicy *HttpFaultInjection `json:"faultInjectionPolicy,omitempty"` + // MaxStreamDuration: Specifies the maximum duration (timeout) for streams on + // the selected route. + // Unlike the timeout field where the timeout duration starts + // from the time the request has been fully processed (known + // as*end-of-stream*), + // the duration in this field is computed from the beginning of the + // stream + // until the response has been processed, including all retries. A + // stream that does not complete in this duration is closed. + // + // If not specified, this field uses the maximummaxStreamDuration value among + // all backend services associated + // with the route. + // + // This field is only allowed if the Url map is used with backend services + // with loadBalancingScheme set toINTERNAL_SELF_MANAGED. + MaxStreamDuration *Duration `json:"maxStreamDuration,omitempty"` + // RequestMirrorPolicy: Specifies the policy on how requests intended for the + // route's backends + // are shadowed to a separate mirrored backend service. The load balancer + // does + // not wait for responses from the shadow service. Before sending traffic + // to the shadow service, the host / authority header is suffixed + // with-shadow. + // + // Not supported when the URL map is bound to a target gRPC proxy that + // has the validateForProxyless field set to true. + RequestMirrorPolicy *RequestMirrorPolicy `json:"requestMirrorPolicy,omitempty"` + // RetryPolicy: Specifies the retry policy associated with this route. + RetryPolicy *HttpRetryPolicy `json:"retryPolicy,omitempty"` + // Timeout: Specifies the timeout for the selected route. Timeout is computed + // from the + // time the request has been fully processed (known as *end-of-stream*) + // up until the response has been processed. Timeout includes + // all retries. + // + // If not specified, this field uses the largest timeout among all + // backend + // services associated with the route. + // + // Not supported when the URL map is bound to a target gRPC proxy that + // has validateForProxyless field set to true. + Timeout *Duration `json:"timeout,omitempty"` + // UrlRewrite: The spec to modify the URL of the request, before forwarding the + // request + // to the matched service. + // + // urlRewrite is the only action supported in UrlMaps + // for classic Application Load Balancers. + // + // Not supported when the URL map is bound to a target gRPC proxy that + // has the validateForProxyless field set to true. + UrlRewrite *UrlRewrite `json:"urlRewrite,omitempty"` + // WeightedBackendServices: A list of weighted backend services to send traffic + // to when a route match + // occurs. The weights determine the fraction of traffic that flows to + // their corresponding backend service. If all traffic needs to + // go to a single backend service, there must be oneweightedBackendService with + // weight set to a non-zero number. + // + // After a backend service is identified and before forwarding + // the request to + // the backend service, advanced routing actions such as URL rewrites + // and + // header transformations are applied depending on additional + // settings + // specified in this HttpRouteAction. + WeightedBackendServices []*WeightedBackendService `json:"weightedBackendServices,omitempty"` + // ForceSendFields is a list of field names (e.g. "CachePolicy") to + // unconditionally include in API requests. By default, fields with empty or + // default values are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. 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. See + // NullFields is a list of field names (e.g. "CachePolicy") to include in API + // requests with the JSON null value. By default, fields with empty values are + // omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } -func (s *InterconnectAttachmentAggregatedListWarning) MarshalJSON() ([]byte, error) { - type NoMethod InterconnectAttachmentAggregatedListWarning - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s HttpRouteAction) MarshalJSON() ([]byte, error) { + type NoMethod HttpRouteAction + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -type InterconnectAttachmentAggregatedListWarningData 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 or default values are - // omitted from API requests. See +// HttpRouteRule: The HttpRouteRule setting specifies how to match an HTTP +// request +// and the corresponding routing action that load balancing proxies perform. +type HttpRouteRule struct { + // CustomErrorResponsePolicy: customErrorResponsePolicy specifies how the + // Load + // Balancer returns error responses when BackendServiceorBackendBucket responds + // with an error. + // + // If a policy for an + // error code is not configured for the RouteRule, a policy for + // the error code configured inpathMatcher.defaultCustomErrorResponsePolicy is + // applied. If + // one is not specified inpathMatcher.defaultCustomErrorResponsePolicy, the + // policy + // configured in UrlMap.defaultCustomErrorResponsePolicy takes + // effect. + // + // For example, consider a UrlMap with the following configuration: + // + // + // - UrlMap.defaultCustomErrorResponsePolicy are configured + // with policies for 5xx and 4xx errors + // - A RouteRule for /coming_soon/ is configured for the + // error code 404. + // + // If the request is for www.myotherdomain.com and a404 is encountered, the + // policy underUrlMap.defaultCustomErrorResponsePolicy takes effect. If a404 + // response is encountered for the requestwww.example.com/current_events/, the + // pathMatcher's policy + // takes effect. If however, the request forwww.example.com/coming_soon/ + // encounters a 404, + // the policy in RouteRule.customErrorResponsePolicy takes + // effect. If any of the requests in this example encounter a 500 + // error code, the policy atUrlMap.defaultCustomErrorResponsePolicy takes + // effect. + // + // When + // used in conjunction withrouteRules.routeAction.retryPolicy, retries + // take + // precedence. Only once all retries are exhausted, + // thecustomErrorResponsePolicy is applied. While attempting + // a retry, if load balancer is successful in reaching the + // service, the customErrorResponsePolicy is ignored and + // the response from the service is returned to the + // client. + // + // customErrorResponsePolicy is supported only for + // global external Application Load Balancers. + CustomErrorResponsePolicy *CustomErrorResponsePolicy `json:"customErrorResponsePolicy,omitempty"` + // Description: The short description conveying the intent of this + // routeRule. + // + // + // The description can have a maximum length of 1024 characters. + Description string `json:"description,omitempty"` + // HeaderAction: Specifies changes to request and response headers that need to + // take effect + // for the selected backendService. + // + // The headerAction value specified here is applied before the + // matching pathMatchers[].headerAction and + // afterpathMatchers[].routeRules[].routeAction.weightedBackendService.backendSe + // rviceWeightAction[].headerAction + // + // HeaderAction is not supported for load balancers + // that have + // their loadBalancingScheme set to EXTERNAL. + // + // Not supported when the URL map is bound to a target gRPC proxy that + // has validateForProxyless field set to true. + HeaderAction *HttpHeaderAction `json:"headerAction,omitempty"` + // MatchRules: The list of criteria for matching attributes of a request to + // thisrouteRule. This list has OR semantics: the request matches + // this routeRule when any of thematchRules are satisfied. However predicates + // within + // a given matchRule have AND semantics. All predicates + // within a matchRule must match for the request to + // match the rule. + MatchRules []*HttpRouteRuleMatch `json:"matchRules,omitempty"` + // Priority: For routeRules within a given pathMatcher, + // priority determines the order in which a load balancer interpretsrouteRules. + // RouteRules are evaluated in order + // of priority, from the lowest to highest number. The priority of a + // rule decreases as its number increases (1, 2, 3, N+1). The first rule + // that matches the request is applied. + // + // + // You cannot configure two or more routeRules with the same priority. + // Priority for each rule must be set to a number from 0 to + // 2147483647 + // inclusive. + // + // + // Priority numbers can have gaps, which enable you to add or remove rules + // in the future without affecting the rest of the rules. For example, 1, 2, + // 3, 4, 5, 9, 12, 16 is a valid series of priority numbers to which you + // could add rules numbered from 6 to 8, 10 to 11, and 13 to 15 in the + // future + // without any impact on existing rules. + Priority int64 `json:"priority,omitempty"` + // RouteAction: In response to a matching matchRule, the load balancer + // performs advanced routing actions, such as URL rewrites and + // header + // transformations, before forwarding the request to the selected + // backend. + // + // + // Only one of urlRedirect, service orrouteAction.weightedBackendService can be + // set. + // + // + // URL maps for classic Application Load Balancers only support + // the urlRewrite action within a route rule'srouteAction. + RouteAction *HttpRouteAction `json:"routeAction,omitempty"` + // Service: The full or partial URL of the backend service resource to which + // traffic + // is directed if this rule is matched. If routeAction is + // also specified, advanced routing actions, such as URL rewrites, + // take effect before sending the request to the backend. + // + // + // Only one of urlRedirect, service orrouteAction.weightedBackendService can be + // set. + Service string `json:"service,omitempty"` + // UrlRedirect: When this rule is matched, the request is redirected to a + // URL + // specified by urlRedirect. + // + // + // Only one of urlRedirect, service orrouteAction.weightedBackendService can be + // set. + // + // + // Not supported when the URL map is bound to a target gRPC proxy. + UrlRedirect *HttpRedirectAction `json:"urlRedirect,omitempty"` + // ForceSendFields is a list of field names (e.g. "CustomErrorResponsePolicy") + // to unconditionally include in API requests. By default, fields with empty or + // default values are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. 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. See + // NullFields is a list of field names (e.g. "CustomErrorResponsePolicy") to + // include in API requests with the JSON null value. By default, fields with + // empty values are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } -func (s *InterconnectAttachmentAggregatedListWarningData) MarshalJSON() ([]byte, error) { - type NoMethod InterconnectAttachmentAggregatedListWarningData - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s HttpRouteRule) MarshalJSON() ([]byte, error) { + type NoMethod HttpRouteRule + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -type InterconnectAttachmentConfigurationConstraints struct { - // BgpMd5: [Output Only] Whether the attachment's BGP session - // requires/allows/disallows BGP MD5 authentication. This can take one of the - // following values: MD5_OPTIONAL, MD5_REQUIRED, MD5_UNSUPPORTED. For example, - // a Cross-Cloud Interconnect connection to a remote cloud provider that - // requires BGP MD5 authentication has the interconnectRemoteLocation - // attachment_configuration_constraints.bgp_md5 field set to MD5_REQUIRED, and - // that property is propagated to the attachment. Similarly, if BGP MD5 is - // MD5_UNSUPPORTED, an error is returned if MD5 is requested. +// HttpRouteRuleMatch: HttpRouteRuleMatch specifies a set of criteria for +// matching +// requests to an HttpRouteRule. All specified criteria must +// be satisfied for a match to occur. +type HttpRouteRuleMatch struct { + // FullPathMatch: For satisfying the matchRule condition, the path of + // the + // request must exactly match the value specified infullPathMatch after + // removing any query parameters and anchor + // that may be part of the original URL. // - // Possible values: - // "MD5_OPTIONAL" - MD5_OPTIONAL: BGP MD5 authentication is supported and can - // optionally be configured. - // "MD5_REQUIRED" - MD5_REQUIRED: BGP MD5 authentication must be configured. - // "MD5_UNSUPPORTED" - MD5_UNSUPPORTED: BGP MD5 authentication must not be - // configured - BgpMd5 string `json:"bgpMd5,omitempty"` - // BgpPeerAsnRanges: [Output Only] List of ASN ranges that the remote location - // is known to support. Formatted as an array of inclusive ranges {min: - // min-value, max: max-value}. For example, [{min: 123, max: 123}, {min: 64512, - // max: 65534}] allows the peer ASN to be 123 or anything in the range - // 64512-65534. This field is only advisory. Although the API accepts other - // ranges, these are the ranges that we recommend. - BgpPeerAsnRanges []*InterconnectAttachmentConfigurationConstraintsBgpPeerASNRange `json:"bgpPeerAsnRanges,omitempty"` - // ForceSendFields is a list of field names (e.g. "BgpMd5") to unconditionally - // include in API requests. By default, fields with empty or default values are - // omitted from API requests. See + // fullPathMatch must be from 1 to 1024 characters. + // + // Only one of prefixMatch, fullPathMatch,regexMatch or path_template_match + // must be + // specified. + FullPathMatch string `json:"fullPathMatch,omitempty"` + // HeaderMatches: Specifies a list of header match criteria, all of which must + // match + // corresponding headers in the request. + HeaderMatches []*HttpHeaderMatch `json:"headerMatches,omitempty"` + // IgnoreCase: Specifies that prefixMatch and fullPathMatch + // matches are case sensitive. + // + // The default value is false. + // + // ignoreCase must not be used with regexMatch. + // + // Not supported when the URL map is bound to a target gRPC proxy. + IgnoreCase bool `json:"ignoreCase,omitempty"` + // MetadataFilters: Opaque filter criteria used by the load balancer to + // restrict routing + // configuration to a limited set of xDS + // compliant clients. In their xDS requests to the load balancer, xDS + // clients + // present node + // metadata. When there is a match, the relevant routing configuration + // is made available to those proxies. + // + // For each metadataFilter in this list, if itsfilterMatchCriteria is set to + // MATCH_ANY, at least one of thefilterLabels must match the corresponding + // label provided in + // the metadata. If its filterMatchCriteria is set to + // MATCH_ALL, then all of its filterLabels must match with + // corresponding labels provided in the metadata. If multiple + // metadata filters are specified, all of them need to be + // satisfied in order to be considered a match. + // + // metadataFilters specified here is applied after those + // specified in ForwardingRule that refers to theUrlMap this HttpRouteRuleMatch + // belongs to. + // + // metadataFilters only applies to load balancers that haveloadBalancingScheme + // set toINTERNAL_SELF_MANAGED. + // + // Not supported when the URL map is bound to a target gRPC proxy that + // has validateForProxyless field set to true. + MetadataFilters []*MetadataFilter `json:"metadataFilters,omitempty"` + // PathTemplateMatch: If specified, this field defines a path template pattern + // that must match + // the :path header after the query string is removed. + // + // A path template pattern can include variables and wildcards. + // Variables are enclosed in curly braces, for example{variable_name}. + // Wildcards include * that + // matches a single path segment, and ** that matches zero or + // more path segments. The pattern must follow these rules: + // + // + // - The value must be between 1 and 1024 characters. + // - The pattern must start with a leading slash ("/"). + // - No more than 5 operators (variables or wildcards) may appear in + // the pattern. + // + // Precisely one ofprefixMatch, fullPathMatch,regexMatch, or pathTemplateMatch + // must be + // set. + PathTemplateMatch string `json:"pathTemplateMatch,omitempty"` + // PrefixMatch: For satisfying the matchRule condition, the request's + // path must begin with the specified prefixMatch.prefixMatch must begin with a + // /. + // + // The value must be from 1 to 1024 characters. + // + // The * character inside a prefix match is + // treated as a literal character, not as a wildcard. + // + // Only one of prefixMatch, fullPathMatch,regexMatch or path_template_match can + // be + // used within a matchRule. + PrefixMatch string `json:"prefixMatch,omitempty"` + // QueryParameterMatches: Specifies a list of query parameter match criteria, + // all of which must + // match corresponding query parameters in the request. + // + // Not supported when the URL map is bound to a target gRPC proxy. + QueryParameterMatches []*HttpQueryParameterMatch `json:"queryParameterMatches,omitempty"` + // RegexMatch: For satisfying the matchRule condition, the path of the + // request must satisfy the regular expression specified inregexMatch after + // removing any query parameters and anchor + // supplied with the original URL. For + // more information about regular expression syntax, see Syntax. + // + // Only one of prefixMatch, fullPathMatch,regexMatch or path_template_match + // must be + // specified. + // + // Regular expressions can only be used when the loadBalancingScheme is + // set to INTERNAL_SELF_MANAGED, EXTERNAL_MANAGED + // (regional scope) or INTERNAL_MANAGED. + RegexMatch string `json:"regexMatch,omitempty"` + // ForceSendFields is a list of field names (e.g. "FullPathMatch") to + // unconditionally include in API requests. By default, fields with empty or + // default values are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. ForceSendFields []string `json:"-"` - // NullFields is a list of field names (e.g. "BgpMd5") to include in API + // NullFields is a list of field names (e.g. "FullPathMatch") to include in API // requests with the JSON null value. By default, fields with empty values are // omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } -func (s *InterconnectAttachmentConfigurationConstraints) MarshalJSON() ([]byte, error) { - type NoMethod InterconnectAttachmentConfigurationConstraints - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s HttpRouteRuleMatch) MarshalJSON() ([]byte, error) { + type NoMethod HttpRouteRuleMatch + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -type InterconnectAttachmentConfigurationConstraintsBgpPeerASNRange struct { - Max int64 `json:"max,omitempty"` - Min int64 `json:"min,omitempty"` - // ForceSendFields is a list of field names (e.g. "Max") to unconditionally - // include in API requests. By default, fields with empty or default values are - // omitted from API requests. See +// HttpsHealthCheck: Represents a legacy HTTPS Health Check resource. +// +// Legacy HTTPS health checks have been deprecated. If you are using a +// target +// pool-based network load balancer, you must use a legacy HTTP (not +// HTTPS) +// health check. For all other load balancers, including backend +// service-based +// network load balancers, and for managed instance group auto-healing, you +// must +// use modern (non-legacy) health checks. +// +// For more information, seeHealth checks +// overview. +type HttpsHealthCheck struct { + // CheckIntervalSec: How often (in seconds) to send a health check. The default + // value is 5 + // seconds. + CheckIntervalSec int64 `json:"checkIntervalSec,omitempty"` + // CreationTimestamp: [Output Only] Creation timestamp inRFC3339 + // text format. + CreationTimestamp string `json:"creationTimestamp,omitempty"` + // Description: An optional description of this resource. Provide this property + // when you + // create the resource. + Description string `json:"description,omitempty"` + // HealthyThreshold: A so-far unhealthy instance will be marked healthy after + // this + // many consecutive successes. The default value is 2. + HealthyThreshold int64 `json:"healthyThreshold,omitempty"` + // Host: The value of the host header in the HTTPS health check request. If + // left + // empty (default value), the public IP on behalf of which this health check + // is performed will be used. + Host string `json:"host,omitempty"` + // Id: [Output Only] The unique identifier for the resource. This identifier + // is + // defined by the server. + Id uint64 `json:"id,omitempty,string"` + // Kind: Output only. Type of the resource. + Kind string `json:"kind,omitempty"` + // Name: Name of the resource. Provided by the client when the resource is + // created. + // The name must be 1-63 characters long, and comply withRFC1035. + // 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. + Name string `json:"name,omitempty"` + // Port: The TCP port number for the HTTPS health check request. The default + // value + // is 443. + Port int64 `json:"port,omitempty"` + // RequestPath: The request path of the HTTPS health check request. The default + // value is + // "/". Must comply withRFC3986. + RequestPath string `json:"requestPath,omitempty"` + // SelfLink: [Output Only] Server-defined URL for the resource. + SelfLink string `json:"selfLink,omitempty"` + // TimeoutSec: How long (in seconds) to wait before claiming failure. The + // default value is + // 5 seconds. It is invalid for timeoutSec to have a greater value + // than + // checkIntervalSec. + TimeoutSec int64 `json:"timeoutSec,omitempty"` + // UnhealthyThreshold: A so-far healthy instance will be marked unhealthy after + // this + // many consecutive failures. The default value is 2. + UnhealthyThreshold int64 `json:"unhealthyThreshold,omitempty"` + + // ServerResponse contains the HTTP response code and headers from the server. + googleapi.ServerResponse `json:"-"` + // ForceSendFields is a list of field names (e.g. "CheckIntervalSec") to + // unconditionally include in API requests. By default, fields with empty or + // default values are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. ForceSendFields []string `json:"-"` - // NullFields is a list of field names (e.g. "Max") to include in API requests - // with the JSON null value. By default, fields with empty values are omitted - // from API requests. See + // NullFields is a list of field names (e.g. "CheckIntervalSec") to include in + // API requests with the JSON null value. By default, fields with empty values + // are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } -func (s *InterconnectAttachmentConfigurationConstraintsBgpPeerASNRange) MarshalJSON() ([]byte, error) { - type NoMethod InterconnectAttachmentConfigurationConstraintsBgpPeerASNRange - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s HttpsHealthCheck) MarshalJSON() ([]byte, error) { + type NoMethod HttpsHealthCheck + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -// InterconnectAttachmentList: Response to the list request, and contains a -// list of interconnect attachments. -type InterconnectAttachmentList struct { +// HttpsHealthCheckList: Contains a list of HttpsHealthCheck resources. +type HttpsHealthCheckList struct { // Id: [Output Only] Unique identifier for the resource; defined by the server. Id string `json:"id,omitempty"` - // Items: A list of InterconnectAttachment resources. - Items []*InterconnectAttachment `json:"items,omitempty"` - // Kind: [Output Only] Type of resource. Always - // compute#interconnectAttachmentList for lists of interconnect attachments. + // Items: A list of HttpsHealthCheck resources. + Items []*HttpsHealthCheck `json:"items,omitempty"` + // Kind: Output only. Type of resource. 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. + // results for + // list requests. If the number of results is larger thanmaxResults, 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"` - // SelfLink: [Output Only] Server-defined URL for this resource. + // SelfLink: Output only. [Output Only] Server-defined URL for this resource. SelfLink string `json:"selfLink,omitempty"` // Warning: [Output Only] Informational warning message. - Warning *InterconnectAttachmentListWarning `json:"warning,omitempty"` + Warning *HttpsHealthCheckListWarning `json:"warning,omitempty"` // ServerResponse contains the HTTP response code and headers from the server. googleapi.ServerResponse `json:"-"` @@ -21413,77 +26225,98 @@ type InterconnectAttachmentList struct { NullFields []string `json:"-"` } -func (s *InterconnectAttachmentList) MarshalJSON() ([]byte, error) { - type NoMethod InterconnectAttachmentList - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s HttpsHealthCheckList) MarshalJSON() ([]byte, error) { + type NoMethod HttpsHealthCheckList + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -// InterconnectAttachmentListWarning: [Output Only] Informational warning -// message. -type InterconnectAttachmentListWarning 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. +// HttpsHealthCheckListWarning: [Output Only] Informational warning message. +type HttpsHealthCheckListWarning 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" - Warning about failed cleanup of transient changes made - // by a failed operation. + // by a failed + // operation. // "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was created. // "DEPRECATED_TYPE_USED" - When deploying and at least one of the resources - // has a type marked as deprecated + // has a type marked as + // deprecated // "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk that is // larger than image size. // "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the - // resources has a type marked as experimental + // resources has a type marked as + // experimental // "EXTERNAL_API_WARNING" - Warning that is present in an external api call // "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been - // overridden. Deprecated unused field. + // overridden. + // Deprecated unused field. // "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an injected // kernel, which is deprecated. // "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB" - A WEIGHTED_MAGLEV backend - // service is associated with a health check that is not of type - // HTTP/HTTPS/HTTP2. + // service is associated with a health check that is + // not of type HTTP/HTTPS/HTTP2. // "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a // exceedingly large number of resources // "LIST_OVERHEAD_QUOTA_EXCEED" - Resource can't be retrieved due to list - // overhead quota exceed which captures the amount of resources filtered out by + // overhead quota exceed + // which captures the amount of resources filtered out by // user-defined list filter. // "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is not - // assigned to an instance on the network. + // assigned to an instance on the + // network. // "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot ip // forward. // "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE" - The route's nextHopInstance - // URL refers to an instance that does not have an ipv6 interface on the same - // network as the route. + // URL refers to an instance that does not have an + // ipv6 interface on the same network as the route. // "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL refers to // an instance that does not exist. // "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance URL - // refers to an instance that is not on the same network as the route. + // refers to an instance that is not on the + // same network as the route. // "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not have a // status of RUNNING. // "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to continue - // the process despite the mentioned error. + // the process despite + // the mentioned error. // "NO_RESULTS_ON_PAGE" - No results are present on a particular list page. // "PARTIAL_SUCCESS" - Success is reported, but some results may be missing // due to errors + // "QUOTA_INFO_UNAVAILABLE" - Quota information is not available to client + // requests (e.g: + // regions.list). // "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource that - // requires a TOS they have not accepted. + // requires a TOS they have not + // accepted. // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a resource is // in use. // "RESOURCE_NOT_DELETED" - One or more of the resources set to auto-delete - // could not be deleted because they were in use. + // could not be deleted + // because they were in use. // "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is // ignored. // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in instance - // group manager is valid as such, but its application does not make a lot of - // sense, because it allows only single instance in instance group. + // group manager is valid as such, but + // its application does not make a lot of sense, because it allows only + // single instance in instance group. // "UNDECLARED_PROPERTIES" - When undeclared properties in the schema are // present // "UNREACHABLE" - A given scope cannot be reached. 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 []*InterconnectAttachmentListWarningData `json:"data,omitempty"` + // Data: [Output Only] Metadata about this warning in key: + // value format. For example: + // + // "data": [ + // { + // "key": "scope", + // "value": "zones/us-east1-d" + // } + Data []*HttpsHealthCheckListWarningData `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 @@ -21499,19 +26332,22 @@ type InterconnectAttachmentListWarning struct { NullFields []string `json:"-"` } -func (s *InterconnectAttachmentListWarning) MarshalJSON() ([]byte, error) { - type NoMethod InterconnectAttachmentListWarning - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s HttpsHealthCheckListWarning) MarshalJSON() ([]byte, error) { + type NoMethod HttpsHealthCheckListWarning + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -type InterconnectAttachmentListWarningData 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). +type HttpsHealthCheckListWarningData 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"` @@ -21528,160 +26364,477 @@ type InterconnectAttachmentListWarningData struct { NullFields []string `json:"-"` } -func (s *InterconnectAttachmentListWarningData) MarshalJSON() ([]byte, error) { - type NoMethod InterconnectAttachmentListWarningData - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s HttpsHealthCheckListWarningData) MarshalJSON() ([]byte, error) { + type NoMethod HttpsHealthCheckListWarningData + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -// InterconnectAttachmentPartnerMetadata: Informational metadata about Partner -// attachments from Partners to display to customers. These fields are -// propagated from PARTNER_PROVIDER attachments to their corresponding PARTNER -// attachments. -type InterconnectAttachmentPartnerMetadata struct { - // InterconnectName: Plain text name of the Interconnect this attachment is - // connected to, as displayed in the Partner's portal. For instance "Chicago - // 1". This value may be validated to match approved Partner values. - InterconnectName string `json:"interconnectName,omitempty"` - // PartnerName: Plain text name of the Partner providing this attachment. This - // value may be validated to match approved Partner values. - PartnerName string `json:"partnerName,omitempty"` - // PortalUrl: URL of the Partner's portal for this Attachment. Partners may - // customise this to be a deep link to the specific resource on the Partner - // portal. This value may be validated to match approved Partner values. - PortalUrl string `json:"portalUrl,omitempty"` - // ForceSendFields is a list of field names (e.g. "InterconnectName") to - // unconditionally include in API requests. By default, fields with empty or - // default values are omitted from API requests. See +// Image: Represents an Image resource. +// +// You can use images to create boot disks for your VM instances. +// For more information, read Images. +type Image struct { + // Architecture: The architecture of the image. Valid values are + // ARM64 or X86_64. + // + // Possible values: + // "ARCHITECTURE_UNSPECIFIED" - Default value indicating Architecture is not + // set. + // "ARM64" - Machines with architecture ARM64 + // "X86_64" - Machines with architecture X86_64 + Architecture string `json:"architecture,omitempty"` + // ArchiveSizeBytes: Size of the image tar.gz archive stored in Google + // Cloud + // Storage (in bytes). + ArchiveSizeBytes int64 `json:"archiveSizeBytes,omitempty,string"` + // CreationTimestamp: Output only. [Output Only] Creation timestamp + // inRFC3339 + // text format. + CreationTimestamp string `json:"creationTimestamp,omitempty"` + // Deprecated -- Output only. The deprecation status associated with this + // image. + Deprecated *DeprecationStatus `json:"deprecated,omitempty"` + // Description: An optional description of this resource. Provide this property + // when you + // create the resource. + Description string `json:"description,omitempty"` + // DiskSizeGb: Size of the image when restored onto a persistent disk (in GB). + DiskSizeGb int64 `json:"diskSizeGb,omitempty,string"` + // EnableConfidentialCompute: Output only. Whether this image is created from a + // confidential compute mode disk. + // [Output Only]: This field is not set by user, but from source disk. + EnableConfidentialCompute bool `json:"enableConfidentialCompute,omitempty"` + // Family: The name of the image family to which this image belongs. The + // image + // family name can be from a publicly managed image family provided by + // Compute Engine, or from a custom image family you create. For + // example,centos-stream-9 is a publicly available image family. + // For more information, see Image + // family best practices. + // + // When creating disks, you can specify an image family instead of a + // specific + // image name. The image family always returns its latest image that is + // not + // deprecated. The name of the image family must comply with RFC1035. + Family string `json:"family,omitempty"` + // GuestOsFeatures: A list of features to enable on the guest operating system. + // Applicable + // only for bootable images. To see a list of available options, see + // theguestOSfeatures[].type parameter. + GuestOsFeatures []*GuestOsFeature `json:"guestOsFeatures,omitempty"` + // Id: Output only. [Output Only] The unique identifier for the resource. This + // identifier is + // defined by the server. + Id uint64 `json:"id,omitempty,string"` + // ImageEncryptionKey: Encrypts the image using acustomer-supplied + // encryption key. + // + // After you encrypt an image with a customer-supplied key, you must + // provide + // the same key if you use the image later (e.g. to create a disk from + // the image). + // + // Customer-supplied encryption keys do not protect access to metadata + // of the disk. + // + // If you do not provide an encryption key when creating the image, then + // the + // disk will be encrypted using an automatically generated key and you do + // not + // need to provide a key to use the image later. + ImageEncryptionKey *CustomerEncryptionKey `json:"imageEncryptionKey,omitempty"` + // Kind: Output only. [Output Only] Type of the resource. Always compute#image + // for + // images. + Kind string `json:"kind,omitempty"` + // LabelFingerprint: A fingerprint for the labels being applied to this image, + // which is + // essentially a hash of the labels used for optimistic locking. + // The + // fingerprint is initially generated by Compute Engine and changes after + // every request to modify or update labels. You must always provide + // an + // up-to-date fingerprint hash in order to update or change labels, + // otherwise the request will fail with error412 conditionNotMet. + // + // To see the latest fingerprint, make a get() request to + // retrieve an image. + LabelFingerprint string `json:"labelFingerprint,omitempty"` + // Labels: Labels to apply to this image. These can be later modified by + // the setLabels method. + Labels map[string]string `json:"labels,omitempty"` + // LicenseCodes: Integer license codes indicating which licenses are attached + // to this image. + LicenseCodes googleapi.Int64s `json:"licenseCodes,omitempty"` + // Licenses: Any applicable license URI. + Licenses []string `json:"licenses,omitempty"` + // Name: Name of the resource; provided by the client when the resource is + // created. + // The name must be 1-63 characters long, and comply withRFC1035. + // 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. + Name string `json:"name,omitempty"` + // Params: Input only. [Input Only] Additional params passed with the request, + // but not persisted + // as part of resource payload. + Params *ImageParams `json:"params,omitempty"` + // RawDisk: The parameters of the raw disk image. + RawDisk *ImageRawDisk `json:"rawDisk,omitempty"` + // SatisfiesPzi: Output only. Reserved for future use. + SatisfiesPzi bool `json:"satisfiesPzi,omitempty"` + // SatisfiesPzs: Output only. [Output Only] Reserved for future use. + SatisfiesPzs bool `json:"satisfiesPzs,omitempty"` + // SelfLink: Output only. [Output Only] Server-defined URL for the resource. + SelfLink string `json:"selfLink,omitempty"` + // ShieldedInstanceInitialState: Set the secure boot keys of shielded instance. + ShieldedInstanceInitialState *InitialStateConfig `json:"shieldedInstanceInitialState,omitempty"` + // SourceDisk: URL of the source disk used to create this image. + // For example, the following are valid values: + // + // - + // https://www.googleapis.com/compute/v1/projects/project/zones/zone/disks/disk + // + // - projects/project/zones/zone/disks/disk + // - zones/zone/disks/disk + // + // + // + // In order to create an image, you must provide the full or partial URL of + // one of the following: + // + // - The rawDisk.source URL + // - The sourceDisk URL + // - The sourceImage URL + // - The sourceSnapshot URL + SourceDisk string `json:"sourceDisk,omitempty"` + // SourceDiskEncryptionKey: Thecustomer-supplied + // encryption key of the source disk. Required if the source disk is + // protected by a customer-supplied encryption key. + SourceDiskEncryptionKey *CustomerEncryptionKey `json:"sourceDiskEncryptionKey,omitempty"` + // SourceDiskId: Output only. [Output Only] + // The ID value of the disk used to create this image. This value may be + // used + // to determine whether the image was taken from the current or a + // previous + // instance of a given disk name. + SourceDiskId string `json:"sourceDiskId,omitempty"` + // SourceImage: URL of the source image used to create this image. + // The following are valid formats for the URL: + // + // - https://www.googleapis.com/compute/v1/projects/project_id/global/ + // images/image_name + // - projects/project_id/global/images/image_name + // + // + // + // In order to create an image, you must provide the full or partial URL of + // one of the following: + // + // - The rawDisk.source URL + // - The sourceDisk URL + // - The sourceImage URL + // - The sourceSnapshot URL + SourceImage string `json:"sourceImage,omitempty"` + // SourceImageEncryptionKey: The customer-supplied encryption key of the source + // image. Required if the + // source image is protected by a customer-supplied encryption key. + SourceImageEncryptionKey *CustomerEncryptionKey `json:"sourceImageEncryptionKey,omitempty"` + // SourceImageId: Output only. [Output Only] + // The ID value of the image used to create this image. This value may be + // used + // to determine whether the image was taken from the current or a + // previous + // instance of a given image name. + SourceImageId string `json:"sourceImageId,omitempty"` + // SourceSnapshot: URL of the source snapshot used to create this image. + // The following are valid formats for the URL: + // + // - https://www.googleapis.com/compute/v1/projects/project_id/global/ + // snapshots/snapshot_name + // - projects/project_id/global/snapshots/snapshot_name + // + // + // + // In order to create an image, you must provide the full or partial URL of + // one of the following: + // + // - The rawDisk.source URL + // - The sourceDisk URL + // - The sourceImage URL + // - The sourceSnapshot URL + SourceSnapshot string `json:"sourceSnapshot,omitempty"` + // SourceSnapshotEncryptionKey: The customer-supplied encryption key of the + // source snapshot. Required if + // the source snapshot is protected by a customer-supplied encryption key. + SourceSnapshotEncryptionKey *CustomerEncryptionKey `json:"sourceSnapshotEncryptionKey,omitempty"` + // SourceSnapshotId: Output only. [Output Only] + // The ID value of the snapshot used to create this image. This value may + // be + // used to determine whether the snapshot was taken from the current or + // a + // previous instance of a given snapshot name. + SourceSnapshotId string `json:"sourceSnapshotId,omitempty"` + // SourceType: The type of the image used to create this disk. The + // default and only valid value is RAW. + // + // Possible values: + // "RAW" (default) + SourceType string `json:"sourceType,omitempty"` + // Status: Output only. [Output Only] The status of the image. An image can be + // used to create other + // resources, such as instances, only after the image has been + // successfully + // created and the status is set to READY. Possible + // values are FAILED, PENDING, orREADY. + // + // Possible values: + // "DELETING" - Image is deleting. + // "FAILED" - Image creation failed due to an error. + // "PENDING" - Image hasn't been created as yet. + // "READY" - Image has been successfully created. + Status string `json:"status,omitempty"` + // StorageLocations: Cloud Storage bucket storage location of the image + // (regional or + // multi-regional). + StorageLocations []string `json:"storageLocations,omitempty"` + + // ServerResponse contains the HTTP response code and headers from the server. + googleapi.ServerResponse `json:"-"` + // ForceSendFields is a list of field names (e.g. "Architecture") to + // unconditionally include in API requests. By default, fields with empty or + // default values are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. ForceSendFields []string `json:"-"` - // NullFields is a list of field names (e.g. "InterconnectName") to include in - // API requests with the JSON null value. By default, fields with empty values - // are omitted from API requests. See + // NullFields is a list of field names (e.g. "Architecture") to include in API + // requests with the JSON null value. By default, fields with empty values are + // omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } -func (s *InterconnectAttachmentPartnerMetadata) MarshalJSON() ([]byte, error) { - type NoMethod InterconnectAttachmentPartnerMetadata - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s Image) MarshalJSON() ([]byte, error) { + type NoMethod Image + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -// InterconnectAttachmentPrivateInfo: Information for an interconnect -// attachment when this belongs to an interconnect of type DEDICATED. -type InterconnectAttachmentPrivateInfo struct { - // Tag8021q: [Output Only] 802.1q encapsulation tag to be used for traffic - // between Google and the customer, going to and from this network and region. - Tag8021q int64 `json:"tag8021q,omitempty"` - // ForceSendFields is a list of field names (e.g. "Tag8021q") to +// ImageRawDisk: The parameters of the raw disk image. +type ImageRawDisk struct { + // ContainerType: The format used to encode and transmit the block device, + // which should beTAR. This is just a container and transmission format and + // not + // a runtime format. Provided by the client when the disk image is created. + // + // Possible values: + // "TAR" + ContainerType string `json:"containerType,omitempty"` + // Sha1Checksum: [Deprecated] This field is deprecated. + // An optional SHA1 checksum of the disk image before unpackaging provided + // by the client when the disk image is created. + Sha1Checksum string `json:"sha1Checksum,omitempty"` + // Source: The full Google Cloud Storage URL or Artifact Registry path where + // the raw + // disk image archive is stored. + // The following are valid formats: + // + // - https://storage.googleapis.com/bucket_name/image_archive_name + // - + // https://storage.googleapis.com/bucket_name/folder_name/image_archive_name + // - + // projects/project/locations/location/repositories/repo/packages/package/versio + // ns/version_id + // - + // projects/project/locations/location/repositories/repo/packages/package/versio + // ns/version_id@dirsum_sha256:hex_value + // + // + // + // In order to create an image, you must provide the full or partial URL of + // one of the following: + // + // - The rawDisk.source URL + // - The sourceDisk URL + // - The sourceImage URL + // - The sourceSnapshot URL + Source string `json:"source,omitempty"` + // ForceSendFields is a list of field names (e.g. "ContainerType") to // unconditionally include in API requests. By default, fields with empty or // default values are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. ForceSendFields []string `json:"-"` - // NullFields is a list of field names (e.g. "Tag8021q") to include in API + // NullFields is a list of field names (e.g. "ContainerType") to include in API // requests with the JSON null value. By default, fields with empty values are // omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } -func (s *InterconnectAttachmentPrivateInfo) MarshalJSON() ([]byte, error) { - type NoMethod InterconnectAttachmentPrivateInfo - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s ImageRawDisk) MarshalJSON() ([]byte, error) { + type NoMethod ImageRawDisk + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -type InterconnectAttachmentsScopedList struct { - // InterconnectAttachments: A list of interconnect attachments contained in - // this scope. - InterconnectAttachments []*InterconnectAttachment `json:"interconnectAttachments,omitempty"` - // Warning: Informational warning which replaces the list of addresses when the - // list is empty. - Warning *InterconnectAttachmentsScopedListWarning `json:"warning,omitempty"` - // ForceSendFields is a list of field names (e.g. "InterconnectAttachments") to - // unconditionally include in API requests. By default, fields with empty or - // default values are omitted from API requests. See +type ImageFamilyView struct { + // Image: The latest image that is part of the specified image family in + // the + // requested location, and that is not deprecated. + Image *Image `json:"image,omitempty"` + + // ServerResponse contains the HTTP response code and headers from the server. + googleapi.ServerResponse `json:"-"` + // ForceSendFields is a list of field names (e.g. "Image") to unconditionally + // include in API requests. By default, fields with empty or default values are + // omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. ForceSendFields []string `json:"-"` - // NullFields is a list of field names (e.g. "InterconnectAttachments") to - // include in API requests with the JSON null value. By default, fields with - // empty values are omitted from API requests. See + // NullFields is a list of field names (e.g. "Image") to include in API + // requests with the JSON null value. By default, fields with empty values are + // omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } -func (s *InterconnectAttachmentsScopedList) MarshalJSON() ([]byte, error) { - type NoMethod InterconnectAttachmentsScopedList - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s ImageFamilyView) MarshalJSON() ([]byte, error) { + type NoMethod ImageFamilyView + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -// InterconnectAttachmentsScopedListWarning: Informational warning which -// replaces the list of addresses when the list is empty. -type InterconnectAttachmentsScopedListWarning 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. +// ImageList: Contains a list of images. +type ImageList struct { + // Id: [Output Only] Unique identifier for the resource; defined by the server. + Id string `json:"id,omitempty"` + // Items: A list of Image resources. + Items []*Image `json:"items,omitempty"` + // Kind: Output only. Type of resource. + 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 thanmaxResults, 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"` + // SelfLink: Output only. [Output Only] Server-defined URL for this resource. + SelfLink string `json:"selfLink,omitempty"` + // Warning: [Output Only] Informational warning message. + Warning *ImageListWarning `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 or default values are + // omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + 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. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s ImageList) MarshalJSON() ([]byte, error) { + type NoMethod ImageList + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +// ImageListWarning: [Output Only] Informational warning message. +type ImageListWarning 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" - Warning about failed cleanup of transient changes made - // by a failed operation. + // by a failed + // operation. // "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was created. // "DEPRECATED_TYPE_USED" - When deploying and at least one of the resources - // has a type marked as deprecated + // has a type marked as + // deprecated // "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk that is // larger than image size. // "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the - // resources has a type marked as experimental + // resources has a type marked as + // experimental // "EXTERNAL_API_WARNING" - Warning that is present in an external api call // "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been - // overridden. Deprecated unused field. + // overridden. + // Deprecated unused field. // "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an injected // kernel, which is deprecated. // "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB" - A WEIGHTED_MAGLEV backend - // service is associated with a health check that is not of type - // HTTP/HTTPS/HTTP2. + // service is associated with a health check that is + // not of type HTTP/HTTPS/HTTP2. // "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a // exceedingly large number of resources // "LIST_OVERHEAD_QUOTA_EXCEED" - Resource can't be retrieved due to list - // overhead quota exceed which captures the amount of resources filtered out by + // overhead quota exceed + // which captures the amount of resources filtered out by // user-defined list filter. // "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is not - // assigned to an instance on the network. + // assigned to an instance on the + // network. // "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot ip // forward. // "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE" - The route's nextHopInstance - // URL refers to an instance that does not have an ipv6 interface on the same - // network as the route. + // URL refers to an instance that does not have an + // ipv6 interface on the same network as the route. // "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL refers to // an instance that does not exist. // "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance URL - // refers to an instance that is not on the same network as the route. + // refers to an instance that is not on the + // same network as the route. // "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not have a // status of RUNNING. // "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to continue - // the process despite the mentioned error. + // the process despite + // the mentioned error. // "NO_RESULTS_ON_PAGE" - No results are present on a particular list page. // "PARTIAL_SUCCESS" - Success is reported, but some results may be missing // due to errors + // "QUOTA_INFO_UNAVAILABLE" - Quota information is not available to client + // requests (e.g: + // regions.list). // "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource that - // requires a TOS they have not accepted. + // requires a TOS they have not + // accepted. // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a resource is // in use. // "RESOURCE_NOT_DELETED" - One or more of the resources set to auto-delete - // could not be deleted because they were in use. + // could not be deleted + // because they were in use. // "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is // ignored. // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in instance - // group manager is valid as such, but its application does not make a lot of - // sense, because it allows only single instance in instance group. + // group manager is valid as such, but + // its application does not make a lot of sense, because it allows only + // single instance in instance group. // "UNDECLARED_PROPERTIES" - When undeclared properties in the schema are // present // "UNREACHABLE" - A given scope cannot be reached. 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 []*InterconnectAttachmentsScopedListWarningData `json:"data,omitempty"` + // Data: [Output Only] Metadata about this warning in key: + // value format. For example: + // + // "data": [ + // { + // "key": "scope", + // "value": "zones/us-east1-d" + // } + Data []*ImageListWarningData `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 @@ -21697,19 +26850,22 @@ type InterconnectAttachmentsScopedListWarning struct { NullFields []string `json:"-"` } -func (s *InterconnectAttachmentsScopedListWarning) MarshalJSON() ([]byte, error) { - type NoMethod InterconnectAttachmentsScopedListWarning - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s ImageListWarning) MarshalJSON() ([]byte, error) { + type NoMethod ImageListWarning + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -type InterconnectAttachmentsScopedListWarningData 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). +type ImageListWarningData 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"` @@ -21726,298 +26882,835 @@ type InterconnectAttachmentsScopedListWarningData struct { NullFields []string `json:"-"` } -func (s *InterconnectAttachmentsScopedListWarningData) MarshalJSON() ([]byte, error) { - type NoMethod InterconnectAttachmentsScopedListWarningData - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) -} - -// InterconnectCircuitInfo: Describes a single physical circuit between the -// Customer and Google. CircuitInfo objects are created by Google, so all -// fields are output only. -type InterconnectCircuitInfo struct { - // CustomerDemarcId: Customer-side demarc ID for this circuit. - CustomerDemarcId string `json:"customerDemarcId,omitempty"` - // GoogleCircuitId: Google-assigned unique ID for this circuit. Assigned at - // circuit turn-up. - GoogleCircuitId string `json:"googleCircuitId,omitempty"` - // GoogleDemarcId: Google-side demarc ID for this circuit. Assigned at circuit - // turn-up and provided by Google to the customer in the LOA. - GoogleDemarcId string `json:"googleDemarcId,omitempty"` - // ForceSendFields is a list of field names (e.g. "CustomerDemarcId") to +func (s ImageListWarningData) MarshalJSON() ([]byte, error) { + type NoMethod ImageListWarningData + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +// ImageParams: Additional image params. +type ImageParams struct { + // ResourceManagerTags: Input only. Resource manager tags to be bound to the + // image. Tag keys and values have + // the same definition as resource + // manager tags. Keys and values can be either in numeric format, + // such as `tagKeys/{tag_key_id}` and `tagValues/{tag_value_id}` or + // in + // namespaced format such as `{org_id|project_id}/{tag_key_short_name}` + // and + // `{tag_value_short_name}`. The field is ignored (both PUT & + // PATCH) when empty. + ResourceManagerTags map[string]string `json:"resourceManagerTags,omitempty"` + // ForceSendFields is a list of field names (e.g. "ResourceManagerTags") to // unconditionally include in API requests. By default, fields with empty or // default values are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. ForceSendFields []string `json:"-"` - // NullFields is a list of field names (e.g. "CustomerDemarcId") to include in - // API requests with the JSON null value. By default, fields with empty values - // are omitted from API requests. See + // NullFields is a list of field names (e.g. "ResourceManagerTags") to include + // in API requests with the JSON null value. By default, fields with empty + // values are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } -func (s *InterconnectCircuitInfo) MarshalJSON() ([]byte, error) { - type NoMethod InterconnectCircuitInfo - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s ImageParams) MarshalJSON() ([]byte, error) { + type NoMethod ImageParams + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -// InterconnectDiagnostics: Diagnostics information about the Interconnect -// connection, which contains detailed and current technical information about -// Google's side of the connection. -type InterconnectDiagnostics struct { - // ArpCaches: A list of InterconnectDiagnostics.ARPEntry objects, describing - // individual neighbors currently seen by the Google router in the ARP cache - // for the Interconnect. This will be empty when the Interconnect is not - // bundled. - ArpCaches []*InterconnectDiagnosticsARPEntry `json:"arpCaches,omitempty"` - // BundleAggregationType: The aggregation type of the bundle interface. - // - // Possible values: - // "BUNDLE_AGGREGATION_TYPE_LACP" - LACP is enabled. - // "BUNDLE_AGGREGATION_TYPE_STATIC" - LACP is disabled. - BundleAggregationType string `json:"bundleAggregationType,omitempty"` - // BundleOperationalStatus: The operational status of the bundle interface. - // - // Possible values: - // "BUNDLE_OPERATIONAL_STATUS_DOWN" - If bundleAggregationType is LACP: LACP - // is not established and/or all links in the bundle have DOWN operational - // status. If bundleAggregationType is STATIC: one or more links in the bundle - // has DOWN operational status. - // "BUNDLE_OPERATIONAL_STATUS_UP" - If bundleAggregationType is LACP: LACP is - // established and at least one link in the bundle has UP operational status. - // If bundleAggregationType is STATIC: all links in the bundle (typically just - // one) have UP operational status. - BundleOperationalStatus string `json:"bundleOperationalStatus,omitempty"` - // Links: A list of InterconnectDiagnostics.LinkStatus objects, describing the - // status for each link on the Interconnect. - Links []*InterconnectDiagnosticsLinkStatus `json:"links,omitempty"` - // MacAddress: The MAC address of the Interconnect's bundle interface. - MacAddress string `json:"macAddress,omitempty"` - // ForceSendFields is a list of field names (e.g. "ArpCaches") to - // unconditionally include in API requests. By default, fields with empty or - // default values are omitted from API requests. See - // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more - // details. - ForceSendFields []string `json:"-"` - // NullFields is a list of field names (e.g. "ArpCaches") to include in API - // requests with the JSON null value. By default, fields with empty values are +// InitialStateConfig: Initial State for shielded instance, +// these are public keys which are safe to store in public +type InitialStateConfig struct { + // Dbs: The Key Database (db). + Dbs []*FileContentBuffer `json:"dbs,omitempty"` + // Dbxs: The forbidden key database (dbx). + Dbxs []*FileContentBuffer `json:"dbxs,omitempty"` + // Keks: The Key Exchange Key (KEK). + Keks []*FileContentBuffer `json:"keks,omitempty"` + // Pk: The Platform Key (PK). + Pk *FileContentBuffer `json:"pk,omitempty"` + // ForceSendFields is a list of field names (e.g. "Dbs") to unconditionally + // include in API requests. By default, fields with empty or default values are // omitted from API requests. See - // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. - NullFields []string `json:"-"` -} - -func (s *InterconnectDiagnostics) MarshalJSON() ([]byte, error) { - type NoMethod InterconnectDiagnostics - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) -} - -// InterconnectDiagnosticsARPEntry: Describing the ARP neighbor entries seen on -// this link -type InterconnectDiagnosticsARPEntry struct { - // IpAddress: The IP address of this ARP neighbor. - IpAddress string `json:"ipAddress,omitempty"` - // MacAddress: The MAC address of this ARP neighbor. - MacAddress string `json:"macAddress,omitempty"` - // ForceSendFields is a list of field names (e.g. "IpAddress") to - // unconditionally include in API requests. By default, fields with empty or - // default values are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. ForceSendFields []string `json:"-"` - // NullFields is a list of field names (e.g. "IpAddress") to include in API - // requests with the JSON null value. By default, fields with empty values are - // omitted from API requests. See + // NullFields is a list of field names (e.g. "Dbs") to include in API requests + // with the JSON null value. By default, fields with empty values are omitted + // from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } -func (s *InterconnectDiagnosticsARPEntry) MarshalJSON() ([]byte, error) { - type NoMethod InterconnectDiagnosticsARPEntry - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s InitialStateConfig) MarshalJSON() ([]byte, error) { + type NoMethod InitialStateConfig + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -type InterconnectDiagnosticsLinkLACPStatus struct { - // GoogleSystemId: System ID of the port on Google's side of the LACP exchange. - GoogleSystemId string `json:"googleSystemId,omitempty"` - // NeighborSystemId: System ID of the port on the neighbor's side of the LACP - // exchange. - NeighborSystemId string `json:"neighborSystemId,omitempty"` - // State: The state of a LACP link, which can take one of the following values: - // - ACTIVE: The link is configured and active within the bundle. - DETACHED: - // The link is not configured within the bundle. This means that the rest of - // the object should be empty. +// Instance: Represents an Instance resource. +// +// An instance is a virtual machine that is hosted on Google Cloud +// Platform. +// For more information, readVirtual Machine Instances. +type Instance struct { + // AdvancedMachineFeatures: Controls for advanced machine-related behavior + // features. + AdvancedMachineFeatures *AdvancedMachineFeatures `json:"advancedMachineFeatures,omitempty"` + // CanIpForward: Allows this instance to send and receive packets with + // non-matching + // destination or source IPs. This is required if you plan to use this + // instance to forward routes. For more information, seeEnabling IP Forwarding. + CanIpForward bool `json:"canIpForward,omitempty"` + ConfidentialInstanceConfig *ConfidentialInstanceConfig `json:"confidentialInstanceConfig,omitempty"` + // CpuPlatform: Output only. [Output Only] The CPU platform used by this + // instance. + CpuPlatform string `json:"cpuPlatform,omitempty"` + // CreationTimestamp: Output only. [Output Only] Creation timestamp inRFC3339 + // text format. + CreationTimestamp string `json:"creationTimestamp,omitempty"` + // DeletionProtection: Whether the resource should be protected against + // deletion. + DeletionProtection bool `json:"deletionProtection,omitempty"` + // Description: An optional description of this resource. Provide this property + // when you + // create the resource. + Description string `json:"description,omitempty"` + // Disks: Array of disks associated with this instance. Persistent disks must + // be + // created before you can assign them. + Disks []*AttachedDisk `json:"disks,omitempty"` + // DisplayDevice: Enables display device for the instance. + DisplayDevice *DisplayDevice `json:"displayDevice,omitempty"` + // Fingerprint: Specifies a fingerprint for this resource, which is essentially + // a hash of + // the instance's contents and used for optimistic locking. The + // fingerprint is initially generated by Compute Engine and changes after + // every request to modify or update the instance. You must always provide + // an + // up-to-date fingerprint hash in order to update the instance. + // + // To see the latest fingerprint, make get() request to the + // instance. + Fingerprint string `json:"fingerprint,omitempty"` + // GuestAccelerators: A list of the type and count of accelerator cards + // attached to the instance. + GuestAccelerators []*AcceleratorConfig `json:"guestAccelerators,omitempty"` + // Hostname: Specifies the hostname of the instance. The specified hostname + // must be + // RFC1035 compliant. If hostname is not specified, the default hostname + // is + // [INSTANCE_NAME].c.[PROJECT_ID].internal when using the global DNS, + // and + // [INSTANCE_NAME].[ZONE].c.[PROJECT_ID].internal when using zonal DNS. + Hostname string `json:"hostname,omitempty"` + // Id: Output only. [Output Only] The unique identifier for the resource. This + // identifier is + // defined by the server. + Id uint64 `json:"id,omitempty,string"` + // InstanceEncryptionKey: Encrypts suspended data for an instance with + // acustomer-managed + // encryption key. + // + // If you are creating a new instance, this field will encrypt the local + // SSD + // and in-memory contents of the instance during the suspend operation. + // + // If you do not provide an encryption key when creating the instance, then + // the local SSD and in-memory contents will be encrypted using + // an automatically generated key during the suspend operation. + InstanceEncryptionKey *CustomerEncryptionKey `json:"instanceEncryptionKey,omitempty"` + // KeyRevocationActionType: KeyRevocationActionType of the instance. Supported + // options are "STOP" and + // "NONE". The default value is "NONE" if it is not specified. // // Possible values: - // "ACTIVE" - The link is configured and active within the bundle. - // "DETACHED" - The link is not configured within the bundle, this means the - // rest of the object should be empty. - State string `json:"state,omitempty"` - // ForceSendFields is a list of field names (e.g. "GoogleSystemId") to + // "KEY_REVOCATION_ACTION_TYPE_UNSPECIFIED" - Default value. This value is + // unused. + // "NONE" - Indicates user chose no operation. + // "STOP" - Indicates user chose to opt for VM shutdown on key revocation. + KeyRevocationActionType string `json:"keyRevocationActionType,omitempty"` + // Kind: Output only. [Output Only] Type of the resource. Always + // compute#instance + // for instances. + Kind string `json:"kind,omitempty"` + // LabelFingerprint: A fingerprint for this request, which is essentially a + // hash of + // the label's contents and used for optimistic locking. The + // fingerprint is initially generated by Compute Engine and changes after + // every request to modify or update labels. You must always provide + // an + // up-to-date fingerprint hash in order to update or change labels. + // + // To see the latest fingerprint, make get() request to the + // instance. + LabelFingerprint string `json:"labelFingerprint,omitempty"` + // Labels: Labels to apply to this instance. These can be later modified by + // the setLabels method. + Labels map[string]string `json:"labels,omitempty"` + // LastStartTimestamp: Output only. [Output Only] Last start timestamp + // inRFC3339 text format. + LastStartTimestamp string `json:"lastStartTimestamp,omitempty"` + // LastStopTimestamp: Output only. [Output Only] Last stop timestamp inRFC3339 + // text format. + LastStopTimestamp string `json:"lastStopTimestamp,omitempty"` + // LastSuspendedTimestamp: Output only. [Output Only] Last suspended timestamp + // inRFC3339 text format. + LastSuspendedTimestamp string `json:"lastSuspendedTimestamp,omitempty"` + // LocalSsdEncryptionMode: Specifies which method should be used for encrypting + // the + // Local SSDs attached to the VM. + // + // Possible values: + // "EPHEMERAL_KEY_ENCRYPTION" - The given VM will opt-in for using ephemeral + // key for + // encryption of Local SSDs. + // The Local SSDs will not be able to recover data in case of VM + // crash. + // "LOCAL_SSD_ENCRYPTION_MODE_UNSPECIFIED" - The given VM will be encrypted + // using keys managed by the cloud + // infrastructure and the keys will be deleted when the VM is + // deleted. + // "STANDARD_ENCRYPTION" - The given VM will be encrypted using keys managed + // by the cloud + // infrastructure and the keys will be deleted when the VM is + // deleted. + LocalSsdEncryptionMode string `json:"localSsdEncryptionMode,omitempty"` + // MachineType: Full or partial URL of the machine type resource to use for + // this instance, + // in the format:zones/zone/machineTypes/machine-type. This is provided by the + // client + // when the instance is created. For example, the following is a valid + // partial + // url to a predefined + // machine type: + // + // zones/us-central1-f/machineTypes/n1-standard-1 + // + // + // To create acustom + // machine type, provide a URL to a machine type in the following format, + // where CPUS is 1 or an even number up to 32 (2, + // 4, 6, ... 24, etc), and MEMORY is the total + // memory for this instance. Memory must be a multiple of 256 MB and must + // be supplied in MB (e.g. 5 GB of memory is 5120 + // MB): + // + // zones/zone/machineTypes/custom-CPUS-MEMORY + // + // + // For example: zones/us-central1-f/machineTypes/custom-4-5120 + // For a full list of restrictions, read theSpecifications + // for custom machine types. + MachineType string `json:"machineType,omitempty"` + // Metadata: The metadata key/value pairs assigned + // to this instance. This includes metadata keys that were explicitly + // defined + // for the instance. + Metadata *Metadata `json:"metadata,omitempty"` + // MinCpuPlatform: Specifies aminimum CPU + // platform for the VM instance. Applicable values are the friendly names + // of CPU platforms, such as minCpuPlatform: "Intel + // Haswell" or minCpuPlatform: "Intel Sandy + // Bridge". + MinCpuPlatform string `json:"minCpuPlatform,omitempty"` + // Name: The name of the resource, provided by the client when initially + // creating + // the resource. The resource name must be 1-63 characters long, and + // comply + // withRFC1035. + // 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. + Name string `json:"name,omitempty"` + // NetworkInterfaces: An array of network configurations for this instance. + // These specify how + // interfaces are configured to interact with other network services, such + // as + // connecting to the internet. Multiple interfaces are supported + // per instance. + NetworkInterfaces []*NetworkInterface `json:"networkInterfaces,omitempty"` + NetworkPerformanceConfig *NetworkPerformanceConfig `json:"networkPerformanceConfig,omitempty"` + // Params: Input only. [Input Only] Additional params passed with the request, + // but not persisted + // as part of resource payload. + Params *InstanceParams `json:"params,omitempty"` + // PrivateIpv6GoogleAccess: The private IPv6 google access type for the VM. + // If not specified, use INHERIT_FROM_SUBNETWORK as default. + // + // Possible values: + // "ENABLE_BIDIRECTIONAL_ACCESS_TO_GOOGLE" - Bidirectional private IPv6 + // access to/from Google services. If + // specified, the subnetwork who is attached to the instance's default + // network + // interface will be assigned an internal IPv6 prefix if it doesn't + // have + // before. + // "ENABLE_OUTBOUND_VM_ACCESS_TO_GOOGLE" - Outbound private IPv6 access from + // VMs in this subnet to Google services. If + // specified, the subnetwork who is attached to the instance's default + // network + // interface will be assigned an internal IPv6 prefix if it doesn't + // have + // before. + // "INHERIT_FROM_SUBNETWORK" - Each network interface inherits + // PrivateIpv6GoogleAccess from its + // subnetwork. + PrivateIpv6GoogleAccess string `json:"privateIpv6GoogleAccess,omitempty"` + // ReservationAffinity: Specifies the reservations that this instance can + // consume from. + ReservationAffinity *ReservationAffinity `json:"reservationAffinity,omitempty"` + // ResourcePolicies: Resource policies applied to this instance. + ResourcePolicies []string `json:"resourcePolicies,omitempty"` + // ResourceStatus: Output only. [Output Only] Specifies values set for instance + // attributes as + // compared to the values requested by user in the corresponding input + // only + // field. + ResourceStatus *ResourceStatus `json:"resourceStatus,omitempty"` + // SatisfiesPzi: Output only. [Output Only] Reserved for future use. + SatisfiesPzi bool `json:"satisfiesPzi,omitempty"` + // SatisfiesPzs: Output only. [Output Only] Reserved for future use. + SatisfiesPzs bool `json:"satisfiesPzs,omitempty"` + // Scheduling: Sets the scheduling options for this instance. + Scheduling *Scheduling `json:"scheduling,omitempty"` + // SelfLink: Output only. [Output Only] Server-defined URL for this resource. + SelfLink string `json:"selfLink,omitempty"` + // ServiceAccounts: A list of service accounts, with their specified scopes, + // authorized for + // this instance. Only one service account per VM instance is + // supported. + // + // Service accounts generate access tokens that can be accessed + // through the metadata server and used to authenticate applications on + // the + // instance. SeeService Accounts + // for more information. + ServiceAccounts []*ServiceAccount `json:"serviceAccounts,omitempty"` + ShieldedInstanceConfig *ShieldedInstanceConfig `json:"shieldedInstanceConfig,omitempty"` + ShieldedInstanceIntegrityPolicy *ShieldedInstanceIntegrityPolicy `json:"shieldedInstanceIntegrityPolicy,omitempty"` + // SourceMachineImage: Source machine image + SourceMachineImage string `json:"sourceMachineImage,omitempty"` + // SourceMachineImageEncryptionKey: Source machine image encryption key when + // creating an instance from a + // machine image. + SourceMachineImageEncryptionKey *CustomerEncryptionKey `json:"sourceMachineImageEncryptionKey,omitempty"` + // StartRestricted: Output only. [Output Only] Whether a VM has been restricted + // for start because Compute + // Engine has detected suspicious activity. + StartRestricted bool `json:"startRestricted,omitempty"` + // Status: Output only. [Output Only] The status of the instance. One of + // the + // following values: PROVISIONING, STAGING,RUNNING, STOPPING, + // SUSPENDING,SUSPENDED, REPAIRING, andTERMINATED. For more information about + // the status of the + // instance, see + // Instance life cycle. + // + // Possible values: + // "DEPROVISIONING" - The instance is halted and we are performing tear down + // tasks like network + // deprogramming, releasing quota, IP, tearing down disks etc. + // "PENDING" - For Flex Start provisioning instance is waiting for available + // capacity + // from Dynamic Workload Scheduler (DWS). + // "PROVISIONING" - Resources are being allocated for the instance. + // "REPAIRING" - The instance is in repair. + // "RUNNING" - The instance is running. + // "STAGING" - All required resources have been allocated and the instance + // is being started. + // "STOPPED" - The instance has stopped successfully. + // "STOPPING" - The instance is currently stopping (either being deleted or + // killed). + // "SUSPENDED" - The instance has suspended. + // "SUSPENDING" - The instance is suspending. + // "TERMINATED" - The instance has stopped (either by explicit action or + // underlying + // failure). + Status string `json:"status,omitempty"` + // StatusMessage: Output only. [Output Only] An optional, human-readable + // explanation of the status. + StatusMessage string `json:"statusMessage,omitempty"` + // Tags: Tags to apply to this instance. Tags are used to identify + // valid + // sources or targets for network firewalls and are specified by the + // client + // during instance creation. The tags can be later modified by the + // setTags + // method. Each tag within the list must comply withRFC1035. + // Multiple tags can be specified via the 'tags.items' field. + Tags *Tags `json:"tags,omitempty"` + WorkloadIdentityConfig *WorkloadIdentityConfig `json:"workloadIdentityConfig,omitempty"` + // Zone: Output only. [Output Only] URL of the zone where the instance + // resides. + // You must specify this field as part of the HTTP request URL. It is + // not settable as a field in the request body. + Zone string `json:"zone,omitempty"` + + // ServerResponse contains the HTTP response code and headers from the server. + googleapi.ServerResponse `json:"-"` + // ForceSendFields is a list of field names (e.g. "AdvancedMachineFeatures") to // unconditionally include in API requests. By default, fields with empty or // default values are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. ForceSendFields []string `json:"-"` - // NullFields is a list of field names (e.g. "GoogleSystemId") to include in - // API requests with the JSON null value. By default, fields with empty values - // are omitted from API requests. See + // NullFields is a list of field names (e.g. "AdvancedMachineFeatures") to + // include in API requests with the JSON null value. By default, fields with + // empty values are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } -func (s *InterconnectDiagnosticsLinkLACPStatus) MarshalJSON() ([]byte, error) { - type NoMethod InterconnectDiagnosticsLinkLACPStatus - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s Instance) MarshalJSON() ([]byte, error) { + type NoMethod Instance + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -type InterconnectDiagnosticsLinkOpticalPower struct { - // State: The status of the current value when compared to the warning and - // alarm levels for the receiving or transmitting transceiver. Possible states - // include: - OK: The value has not crossed a warning threshold. - LOW_WARNING: - // The value has crossed below the low warning threshold. - HIGH_WARNING: The - // value has crossed above the high warning threshold. - LOW_ALARM: The value - // has crossed below the low alarm threshold. - HIGH_ALARM: The value has - // crossed above the high alarm threshold. - // - // Possible values: - // "HIGH_ALARM" - The value has crossed above the high alarm threshold. - // "HIGH_WARNING" - The value of the current optical power has crossed above - // the high warning threshold. - // "LOW_ALARM" - The value of the current optical power has crossed below the - // low alarm threshold. - // "LOW_WARNING" - The value of the current optical power has crossed below - // the low warning threshold. - // "OK" - The value of the current optical power has not crossed a warning - // threshold. - State string `json:"state,omitempty"` - // Value: Value of the current receiving or transmitting optical power, read in - // dBm. Take a known good optical value, give it a 10% margin and trigger - // warnings relative to that value. In general, a -7dBm warning and a -11dBm - // alarm are good optical value estimates for most links. - Value float64 `json:"value,omitempty"` - // ForceSendFields is a list of field names (e.g. "State") to unconditionally +type InstanceAggregatedList struct { + // Id: [Output Only] Unique identifier for the resource; defined by the server. + Id string `json:"id,omitempty"` + // Items: An object that contains a list of instances scoped by zone. + Items map[string]InstancesScopedList `json:"items,omitempty"` + // Kind: Output only. [Output Only] Type of resource. + // Alwayscompute#instanceAggregatedList for aggregated lists of + // Instance resources. + 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 thanmaxResults, 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"` + // SelfLink: Output only. [Output Only] Server-defined URL for this resource. + SelfLink string `json:"selfLink,omitempty"` + // Unreachables: Output only. [Output Only] Unreachable resources. + Unreachables []string `json:"unreachables,omitempty"` + // Warning: [Output Only] Informational warning message. + Warning *InstanceAggregatedListWarning `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 or default values are // omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. ForceSendFields []string `json:"-"` - // NullFields is a list of field names (e.g. "State") to include in API - // requests with the JSON null value. By default, fields with empty values are - // omitted from API requests. See + // 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. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } -func (s *InterconnectDiagnosticsLinkOpticalPower) MarshalJSON() ([]byte, error) { - type NoMethod InterconnectDiagnosticsLinkOpticalPower - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) -} - -func (s *InterconnectDiagnosticsLinkOpticalPower) UnmarshalJSON(data []byte) error { - type NoMethod InterconnectDiagnosticsLinkOpticalPower - var s1 struct { - Value gensupport.JSONFloat64 `json:"value"` - *NoMethod - } - s1.NoMethod = (*NoMethod)(s) - if err := json.Unmarshal(data, &s1); err != nil { - return err - } - s.Value = float64(s1.Value) - return nil +func (s InstanceAggregatedList) MarshalJSON() ([]byte, error) { + type NoMethod InstanceAggregatedList + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -type InterconnectDiagnosticsLinkStatus struct { - // ArpCaches: A list of InterconnectDiagnostics.ARPEntry objects, describing - // the ARP neighbor entries seen on this link. This will be empty if the link - // is bundled - ArpCaches []*InterconnectDiagnosticsARPEntry `json:"arpCaches,omitempty"` - // CircuitId: The unique ID for this link assigned during turn up by Google. - CircuitId string `json:"circuitId,omitempty"` - // GoogleDemarc: The Demarc address assigned by Google and provided in the LoA. - GoogleDemarc string `json:"googleDemarc,omitempty"` - LacpStatus *InterconnectDiagnosticsLinkLACPStatus `json:"lacpStatus,omitempty"` - // Macsec: Describes the status of MACsec encryption on this link. - Macsec *InterconnectDiagnosticsMacsecStatus `json:"macsec,omitempty"` - // OperationalStatus: The operational status of the link. +// InstanceAggregatedListWarning: [Output Only] Informational warning message. +type InstanceAggregatedListWarning 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: - // "LINK_OPERATIONAL_STATUS_DOWN" - The interface is unable to communicate - // with the remote end. - // "LINK_OPERATIONAL_STATUS_UP" - The interface has low level communication - // with the remote end. - OperationalStatus string `json:"operationalStatus,omitempty"` - // ReceivingOpticalPower: An InterconnectDiagnostics.LinkOpticalPower object, - // describing the current value and status of the received light level. - ReceivingOpticalPower *InterconnectDiagnosticsLinkOpticalPower `json:"receivingOpticalPower,omitempty"` - // TransmittingOpticalPower: An InterconnectDiagnostics.LinkOpticalPower - // object, describing the current value and status of the transmitted light - // level. - TransmittingOpticalPower *InterconnectDiagnosticsLinkOpticalPower `json:"transmittingOpticalPower,omitempty"` - // ForceSendFields is a list of field names (e.g. "ArpCaches") to - // unconditionally include in API requests. By default, fields with empty or - // default values are omitted from API requests. See - // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more - // details. - ForceSendFields []string `json:"-"` - // NullFields is a list of field names (e.g. "ArpCaches") to include in API - // requests with the JSON null value. By default, fields with empty values are + // "CLEANUP_FAILED" - Warning about failed cleanup of transient changes made + // by a failed + // operation. + // "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was created. + // "DEPRECATED_TYPE_USED" - When deploying and at least one of the resources + // has a type marked as + // deprecated + // "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk that is + // larger than image size. + // "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the + // resources has a type marked as + // experimental + // "EXTERNAL_API_WARNING" - Warning that is present in an external api call + // "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been + // overridden. + // Deprecated unused field. + // "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an injected + // kernel, which is deprecated. + // "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB" - A WEIGHTED_MAGLEV backend + // service is associated with a health check that is + // not of type HTTP/HTTPS/HTTP2. + // "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a + // exceedingly large number of resources + // "LIST_OVERHEAD_QUOTA_EXCEED" - Resource can't be retrieved due to list + // overhead quota exceed + // which captures the amount of resources filtered out by + // user-defined list filter. + // "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type + // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is not + // assigned to an instance on the + // network. + // "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot ip + // forward. + // "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE" - The route's nextHopInstance + // URL refers to an instance that does not have an + // ipv6 interface on the same network as the route. + // "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL refers to + // an instance that does not exist. + // "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance URL + // refers to an instance that is not on the + // same network as the route. + // "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not have a + // status of RUNNING. + // "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to continue + // the process despite + // the mentioned error. + // "NO_RESULTS_ON_PAGE" - No results are present on a particular list page. + // "PARTIAL_SUCCESS" - Success is reported, but some results may be missing + // due to errors + // "QUOTA_INFO_UNAVAILABLE" - Quota information is not available to client + // requests (e.g: + // regions.list). + // "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource that + // requires a TOS they have not + // accepted. + // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a resource is + // in use. + // "RESOURCE_NOT_DELETED" - One or more of the resources set to auto-delete + // could not be deleted + // because they were in use. + // "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is + // ignored. + // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in instance + // group manager is valid as such, but + // its application does not make a lot of sense, because it allows only + // single instance in instance group. + // "UNDECLARED_PROPERTIES" - When undeclared properties in the schema are + // present + // "UNREACHABLE" - A given scope cannot be reached. + 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 []*InstanceAggregatedListWarningData `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 or default values are // omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + 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. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } -func (s *InterconnectDiagnosticsLinkStatus) MarshalJSON() ([]byte, error) { - type NoMethod InterconnectDiagnosticsLinkStatus - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s InstanceAggregatedListWarning) MarshalJSON() ([]byte, error) { + type NoMethod InstanceAggregatedListWarning + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -// InterconnectDiagnosticsMacsecStatus: Describes the status of MACsec -// encryption on the link. -type InterconnectDiagnosticsMacsecStatus struct { - // Ckn: Indicates the Connectivity Association Key Name (CKN) currently being - // used if MACsec is operational. - Ckn string `json:"ckn,omitempty"` - // Operational: Indicates whether or not MACsec is operational on this link. - Operational bool `json:"operational,omitempty"` - // ForceSendFields is a list of field names (e.g. "Ckn") to unconditionally +type InstanceAggregatedListWarningData 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 or default values are // omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. ForceSendFields []string `json:"-"` - // NullFields is a list of field names (e.g. "Ckn") to include in API requests + // 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. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } -func (s *InterconnectDiagnosticsMacsecStatus) MarshalJSON() ([]byte, error) { - type NoMethod InterconnectDiagnosticsMacsecStatus - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s InstanceAggregatedListWarningData) MarshalJSON() ([]byte, error) { + type NoMethod InstanceAggregatedListWarningData + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -// InterconnectList: Response to the list request, and contains a list of -// interconnects. -type InterconnectList struct { - // Id: [Output Only] Unique identifier for the resource; defined by the server. +type InstanceConsumptionData struct { + // ConsumptionInfo: Output only. Resources consumed by the instance. + ConsumptionInfo *InstanceConsumptionInfo `json:"consumptionInfo,omitempty"` + // Instance: Output only. Server-defined URL for the instance. + Instance string `json:"instance,omitempty"` + // ForceSendFields is a list of field names (e.g. "ConsumptionInfo") to + // unconditionally include in API requests. By default, fields with empty or + // default values are omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + ForceSendFields []string `json:"-"` + // NullFields is a list of field names (e.g. "ConsumptionInfo") to include in + // API requests with the JSON null value. By default, fields with empty values + // are omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s InstanceConsumptionData) MarshalJSON() ([]byte, error) { + type NoMethod InstanceConsumptionData + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +type InstanceConsumptionInfo struct { + // GuestCpus: Output only. The number of virtual CPUs that are available to the + // instance. + GuestCpus int64 `json:"guestCpus,omitempty"` + // LocalSsdGb: Output only. The amount of local SSD storage available to the + // instance, + // defined in GiB. + LocalSsdGb int64 `json:"localSsdGb,omitempty"` + // MemoryMb: Output only. The amount of physical memory available to the + // instance, + // defined in MiB. + MemoryMb int64 `json:"memoryMb,omitempty"` + // MinNodeCpus: Output only. The minimal guaranteed number of virtual CPUs that + // are reserved. + MinNodeCpus int64 `json:"minNodeCpus,omitempty"` + // ForceSendFields is a list of field names (e.g. "GuestCpus") to + // unconditionally include in API requests. By default, fields with empty or + // default values are omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + ForceSendFields []string `json:"-"` + // NullFields is a list of field names (e.g. "GuestCpus") to include in API + // requests with the JSON null value. By default, fields with empty values are + // omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s InstanceConsumptionInfo) MarshalJSON() ([]byte, error) { + type NoMethod InstanceConsumptionInfo + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +// InstanceFlexibilityPolicy: A flexible specification of machine types for +// instances to create. +type InstanceFlexibilityPolicy struct { + // InstanceSelections: Specification of alternative, flexible instance + // subsets. + // One of them will be selected to create the instances + // based on various criteria, like: + // - ranks, + // - location policy, + // - current capacity, + // - available reservations (you can specify affinity in + // InstanceProperties), + // - SWAN/GOOSE limitations. + // Key is an arbitrary, unique RFC1035 string that identifies the + // instance + // selection. + InstanceSelections map[string]InstanceFlexibilityPolicyInstanceSelection `json:"instanceSelections,omitempty"` + // ForceSendFields is a list of field names (e.g. "InstanceSelections") to + // unconditionally include in API requests. By default, fields with empty or + // default values are omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + ForceSendFields []string `json:"-"` + // NullFields is a list of field names (e.g. "InstanceSelections") to include + // in API requests with the JSON null value. By default, fields with empty + // values are omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s InstanceFlexibilityPolicy) MarshalJSON() ([]byte, error) { + type NoMethod InstanceFlexibilityPolicy + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +// InstanceFlexibilityPolicyInstanceSelection: Specification of machine type to +// use. Every position inside this message +// is an alternative. +// The count specified in the shape flexibility must not exceed the number +// of entries in per_instance_properties or the capacity of the +// name_pattern, if used. +type InstanceFlexibilityPolicyInstanceSelection struct { + // Disks: Disks to be attached to the instances created from in this + // selection. + // They override the disks specified in the instance properties. + Disks []*AttachedDisk `json:"disks,omitempty"` + // MachineTypes: Alternative machine types to use for instances that are + // created from + // these properties. This field only accepts a machine type names, for + // example `n2-standard-4` and not URLs or partial URLs. + MachineTypes []string `json:"machineTypes,omitempty"` + // Rank: Rank when prioritizing the shape flexibilities. + // The instance selections with rank are considered + // first, in the ascending order of the rank. + // If not set, defaults to 0. + Rank int64 `json:"rank,omitempty,string"` + // ForceSendFields is a list of field names (e.g. "Disks") to unconditionally + // include in API requests. By default, fields with empty or default values are + // omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + ForceSendFields []string `json:"-"` + // NullFields is a list of field names (e.g. "Disks") to include in API + // requests with the JSON null value. By default, fields with empty values are + // omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s InstanceFlexibilityPolicyInstanceSelection) MarshalJSON() ([]byte, error) { + type NoMethod InstanceFlexibilityPolicyInstanceSelection + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +// InstanceGroup: Represents an Instance Group resource. +// +// Instance Groups can be used to configure a target +// forload +// balancing. +// +// Instance groups can either be managed or unmanaged. +// +// To create +// managed instance groups, use the instanceGroupManager +// orregionInstanceGroupManager resource instead. +// +// Use zonal unmanaged instance groups if you need to applyload +// balancing to groups of heterogeneous instances or if you need to manage +// the instances yourself. You cannot create regional unmanaged instance +// groups. +// +// For more information, readInstance +// groups. +type InstanceGroup struct { + // CreationTimestamp: Output only. [Output Only] The creation timestamp for + // this instance group inRFC3339 + // text format. + CreationTimestamp string `json:"creationTimestamp,omitempty"` + // Description: An optional description of this resource. Provide this property + // when you + // create the resource. + Description string `json:"description,omitempty"` + // Fingerprint: Output only. [Output Only] The fingerprint of the named ports. + // The system + // uses this fingerprint to detect conflicts when multiple users change + // the + // named ports concurrently. + Fingerprint string `json:"fingerprint,omitempty"` + // Id: Output only. [Output Only] A unique identifier for this instance group, + // generated + // by the server. + Id uint64 `json:"id,omitempty,string"` + // Kind: Output only. [Output Only] The resource type, which is + // alwayscompute#instanceGroup for instance groups. + Kind string `json:"kind,omitempty"` + // Name: The name of the instance group. The name must be 1-63 characters + // long, and comply withRFC1035. + Name string `json:"name,omitempty"` + // NamedPorts: Optional. Assigns a name to a port number. For example:{name: + // "http", port: 80} + // + // This + // allows the system to reference ports by the assigned name instead of a + // port number. Named ports can also contain multiple ports. For + // example:[{name: "app1", port: 8080}, {name: + // "app1", port: 8081}, {name: "app2", port: + // 8082}] + // + // Named ports apply to all instances in this instance group. + NamedPorts []*NamedPort `json:"namedPorts,omitempty"` + // Network: [Output Only] The URL of the network to which all instances in + // the + // instance group belong. If your instance has multiple network + // interfaces, + // then the network and subnetwork fields only refer to the + // network and subnet used by your primary interface (nic0). + Network string `json:"network,omitempty"` + // Region: Output only. [Output Only] The URL of theregion + // where the instance group is located (for regional resources). + Region string `json:"region,omitempty"` + // SelfLink: Output only. [Output Only] The URL for this instance group. The + // server generates + // this URL. + SelfLink string `json:"selfLink,omitempty"` + // Size: Output only. [Output Only] The total number of instances in the + // instance group. + Size int64 `json:"size,omitempty"` + // Subnetwork: Output only. [Output Only] The URL of the subnetwork to which + // all instances in the + // instance group belong. If your instance has multiple network + // interfaces, + // then the network and subnetwork fields only refer to the + // network and subnet used by your primary interface (nic0). + Subnetwork string `json:"subnetwork,omitempty"` + // Zone: Output only. [Output Only] The URL of thezone + // where the instance group is located (for zonal resources). + Zone string `json:"zone,omitempty"` + + // ServerResponse contains the HTTP response code and headers from the server. + googleapi.ServerResponse `json:"-"` + // ForceSendFields is a list of field names (e.g. "CreationTimestamp") to + // unconditionally include in API requests. By default, fields with empty or + // default values are omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + ForceSendFields []string `json:"-"` + // NullFields is a list of field names (e.g. "CreationTimestamp") to include in + // API requests with the JSON null value. By default, fields with empty values + // are omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s InstanceGroup) MarshalJSON() ([]byte, error) { + type NoMethod InstanceGroup + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +type InstanceGroupAggregatedList struct { + // Id: Output only. [Output Only] Unique identifier for the resource; defined + // by the server. Id string `json:"id,omitempty"` - // Items: A list of Interconnect resources. - Items []*Interconnect `json:"items,omitempty"` - // Kind: [Output Only] Type of resource. Always compute#interconnectList for - // lists of interconnects. + // Items: A list of InstanceGroupsScopedList resources. + Items map[string]InstanceGroupsScopedList `json:"items,omitempty"` + // Kind: Output only. [Output Only] The resource type, which is + // alwayscompute#instanceGroupAggregatedList for aggregated lists of + // instance groups. 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: Output only. [Output Only] This token allows you to get the + // next page of results for + // list requests. If the number of results is larger thanmaxResults, 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"` - // SelfLink: [Output Only] Server-defined URL for this resource. + // SelfLink: Output only. [Output Only] Server-defined URL for this resource. SelfLink string `json:"selfLink,omitempty"` - // Warning: [Output Only] Informational warning message. - Warning *InterconnectListWarning `json:"warning,omitempty"` + // Unreachables: Output only. [Output Only] Unreachable resources. + Unreachables []string `json:"unreachables,omitempty"` + // Warning: Output only. [Output Only] Informational warning message. + Warning *InstanceGroupAggregatedListWarning `json:"warning,omitempty"` // ServerResponse contains the HTTP response code and headers from the server. googleapi.ServerResponse `json:"-"` @@ -22034,76 +27727,99 @@ type InterconnectList struct { NullFields []string `json:"-"` } -func (s *InterconnectList) MarshalJSON() ([]byte, error) { - type NoMethod InterconnectList - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s InstanceGroupAggregatedList) MarshalJSON() ([]byte, error) { + type NoMethod InstanceGroupAggregatedList + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -// InterconnectListWarning: [Output Only] Informational warning message. -type InterconnectListWarning 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. +// InstanceGroupAggregatedListWarning: Output only. [Output Only] Informational +// warning message. +type InstanceGroupAggregatedListWarning 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" - Warning about failed cleanup of transient changes made - // by a failed operation. + // by a failed + // operation. // "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was created. // "DEPRECATED_TYPE_USED" - When deploying and at least one of the resources - // has a type marked as deprecated + // has a type marked as + // deprecated // "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk that is // larger than image size. // "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the - // resources has a type marked as experimental + // resources has a type marked as + // experimental // "EXTERNAL_API_WARNING" - Warning that is present in an external api call // "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been - // overridden. Deprecated unused field. + // overridden. + // Deprecated unused field. // "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an injected // kernel, which is deprecated. // "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB" - A WEIGHTED_MAGLEV backend - // service is associated with a health check that is not of type - // HTTP/HTTPS/HTTP2. + // service is associated with a health check that is + // not of type HTTP/HTTPS/HTTP2. // "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a // exceedingly large number of resources // "LIST_OVERHEAD_QUOTA_EXCEED" - Resource can't be retrieved due to list - // overhead quota exceed which captures the amount of resources filtered out by + // overhead quota exceed + // which captures the amount of resources filtered out by // user-defined list filter. // "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is not - // assigned to an instance on the network. + // assigned to an instance on the + // network. // "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot ip // forward. // "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE" - The route's nextHopInstance - // URL refers to an instance that does not have an ipv6 interface on the same - // network as the route. + // URL refers to an instance that does not have an + // ipv6 interface on the same network as the route. // "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL refers to // an instance that does not exist. // "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance URL - // refers to an instance that is not on the same network as the route. + // refers to an instance that is not on the + // same network as the route. // "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not have a // status of RUNNING. // "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to continue - // the process despite the mentioned error. + // the process despite + // the mentioned error. // "NO_RESULTS_ON_PAGE" - No results are present on a particular list page. // "PARTIAL_SUCCESS" - Success is reported, but some results may be missing // due to errors + // "QUOTA_INFO_UNAVAILABLE" - Quota information is not available to client + // requests (e.g: + // regions.list). // "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource that - // requires a TOS they have not accepted. + // requires a TOS they have not + // accepted. // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a resource is // in use. // "RESOURCE_NOT_DELETED" - One or more of the resources set to auto-delete - // could not be deleted because they were in use. + // could not be deleted + // because they were in use. // "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is // ignored. // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in instance - // group manager is valid as such, but its application does not make a lot of - // sense, because it allows only single instance in instance group. + // group manager is valid as such, but + // its application does not make a lot of sense, because it allows only + // single instance in instance group. // "UNDECLARED_PROPERTIES" - When undeclared properties in the schema are // present // "UNREACHABLE" - A given scope cannot be reached. 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 []*InterconnectListWarningData `json:"data,omitempty"` + // Data: [Output Only] Metadata about this warning in key: + // value format. For example: + // + // "data": [ + // { + // "key": "scope", + // "value": "zones/us-east1-d" + // } + Data []*InstanceGroupAggregatedListWarningData `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 @@ -22119,19 +27835,22 @@ type InterconnectListWarning struct { NullFields []string `json:"-"` } -func (s *InterconnectListWarning) MarshalJSON() ([]byte, error) { - type NoMethod InterconnectListWarning - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s InstanceGroupAggregatedListWarning) MarshalJSON() ([]byte, error) { + type NoMethod InstanceGroupAggregatedListWarning + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -type InterconnectListWarningData 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). +type InstanceGroupAggregatedListWarningData 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"` @@ -22148,140 +27867,33 @@ type InterconnectListWarningData struct { NullFields []string `json:"-"` } -func (s *InterconnectListWarningData) MarshalJSON() ([]byte, error) { - type NoMethod InterconnectListWarningData - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) -} - -// InterconnectLocation: Represents an Interconnect Attachment (VLAN) Location -// resource. You can use this resource to find location details about an -// Interconnect attachment (VLAN). For more information about interconnect -// attachments, read Creating VLAN Attachments. -type InterconnectLocation struct { - // Address: [Output Only] The postal address of the Point of Presence, each - // line in the address is separated by a newline character. - Address string `json:"address,omitempty"` - // AvailabilityZone: [Output Only] Availability zone for this - // InterconnectLocation. Within a metropolitan area (metro), maintenance will - // not be simultaneously scheduled in more than one availability zone. Example: - // "zone1" or "zone2". - AvailabilityZone string `json:"availabilityZone,omitempty"` - // AvailableFeatures: [Output only] List of features available at this - // InterconnectLocation, which can take one of the following values: - MACSEC - // - // Possible values: - // "IF_MACSEC" - Media Access Control security (MACsec) - AvailableFeatures []string `json:"availableFeatures,omitempty"` - // AvailableLinkTypes: [Output only] List of link types available at this - // InterconnectLocation, which can take one of the following values: - - // LINK_TYPE_ETHERNET_10G_LR - LINK_TYPE_ETHERNET_100G_LR - // - // Possible values: - // "LINK_TYPE_ETHERNET_100G_LR" - 100G Ethernet, LR Optics. - // "LINK_TYPE_ETHERNET_10G_LR" - 10G Ethernet, LR Optics. [(rate_bps) = - // 10000000000]; - AvailableLinkTypes []string `json:"availableLinkTypes,omitempty"` - // City: [Output Only] Metropolitan area designator that indicates which city - // an interconnect is located. For example: "Chicago, IL", "Amsterdam, - // Netherlands". - City string `json:"city,omitempty"` - // Continent: [Output Only] Continent for this location, which can take one of - // the following values: - AFRICA - ASIA_PAC - EUROPE - NORTH_AMERICA - - // SOUTH_AMERICA - // - // Possible values: - // "AFRICA" - // "ASIA_PAC" - // "C_AFRICA" - // "C_ASIA_PAC" - // "C_EUROPE" - // "C_NORTH_AMERICA" - // "C_SOUTH_AMERICA" - // "EUROPE" - // "NORTH_AMERICA" - // "SOUTH_AMERICA" - Continent string `json:"continent,omitempty"` - // CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text format. - CreationTimestamp string `json:"creationTimestamp,omitempty"` - // Description: [Output Only] An optional description of the resource. - Description string `json:"description,omitempty"` - // FacilityProvider: [Output Only] The name of the provider for this facility - // (e.g., EQUINIX). - FacilityProvider string `json:"facilityProvider,omitempty"` - // FacilityProviderFacilityId: [Output Only] A provider-assigned Identifier for - // this facility (e.g., Ashburn-DC1). - FacilityProviderFacilityId string `json:"facilityProviderFacilityId,omitempty"` - // Id: [Output Only] The unique identifier for the resource. This identifier is - // defined by the server. - Id uint64 `json:"id,omitempty,string"` - // Kind: [Output Only] Type of the resource. Always - // compute#interconnectLocation for interconnect locations. - Kind string `json:"kind,omitempty"` - // Name: [Output Only] Name of the resource. - Name string `json:"name,omitempty"` - // PeeringdbFacilityId: [Output Only] The peeringdb identifier for this - // facility (corresponding with a netfac type in peeringdb). - PeeringdbFacilityId string `json:"peeringdbFacilityId,omitempty"` - // RegionInfos: [Output Only] A list of InterconnectLocation.RegionInfo - // objects, that describe parameters pertaining to the relation between this - // InterconnectLocation and various Google Cloud regions. - RegionInfos []*InterconnectLocationRegionInfo `json:"regionInfos,omitempty"` - // SelfLink: [Output Only] Server-defined URL for the resource. - SelfLink string `json:"selfLink,omitempty"` - // Status: [Output Only] The status of this InterconnectLocation, which can - // take one of the following values: - CLOSED: The InterconnectLocation is - // closed and is unavailable for provisioning new Interconnects. - AVAILABLE: - // The InterconnectLocation is available for provisioning new Interconnects. - // - // Possible values: - // "AVAILABLE" - The InterconnectLocation is available for provisioning new - // Interconnects. - // "CLOSED" - The InterconnectLocation is closed for provisioning new - // Interconnects. - Status string `json:"status,omitempty"` - // SupportsPzs: [Output Only] Reserved for future use. - SupportsPzs bool `json:"supportsPzs,omitempty"` - - // ServerResponse contains the HTTP response code and headers from the server. - googleapi.ServerResponse `json:"-"` - // ForceSendFields is a list of field names (e.g. "Address") to unconditionally - // include in API requests. By default, fields with empty or default values are - // omitted from API requests. See - // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more - // details. - ForceSendFields []string `json:"-"` - // NullFields is a list of field names (e.g. "Address") to include in API - // requests with the JSON null value. By default, fields with empty values are - // omitted from API requests. See - // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. - NullFields []string `json:"-"` -} - -func (s *InterconnectLocation) MarshalJSON() ([]byte, error) { - type NoMethod InterconnectLocation - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s InstanceGroupAggregatedListWarningData) MarshalJSON() ([]byte, error) { + type NoMethod InstanceGroupAggregatedListWarningData + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -// InterconnectLocationList: Response to the list request, and contains a list -// of interconnect locations. -type InterconnectLocationList struct { - // Id: [Output Only] Unique identifier for the resource; defined by the server. +// InstanceGroupList: A list of InstanceGroup resources. +type InstanceGroupList struct { + // Id: Output only. [Output Only] Unique identifier for the resource; defined + // by the server. Id string `json:"id,omitempty"` - // Items: A list of InterconnectLocation resources. - Items []*InterconnectLocation `json:"items,omitempty"` - // Kind: [Output Only] Type of resource. Always - // compute#interconnectLocationList for lists of interconnect locations. + // Items: A list of InstanceGroup resources. + Items []*InstanceGroup `json:"items,omitempty"` + // Kind: Output only. [Output Only] The resource type, which is + // alwayscompute#instanceGroupList for instance group lists. 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: Output only. [Output Only] This token allows you to get the + // next page of results for + // list requests. If the number of results is larger thanmaxResults, 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"` - // SelfLink: [Output Only] Server-defined URL for this resource. + // SelfLink: Output only. [Output Only] Server-defined URL for this resource. SelfLink string `json:"selfLink,omitempty"` - // Warning: [Output Only] Informational warning message. - Warning *InterconnectLocationListWarning `json:"warning,omitempty"` + // Warning: Output only. [Output Only] Informational warning message. + Warning *InstanceGroupListWarning `json:"warning,omitempty"` // ServerResponse contains the HTTP response code and headers from the server. googleapi.ServerResponse `json:"-"` @@ -22298,77 +27910,99 @@ type InterconnectLocationList struct { NullFields []string `json:"-"` } -func (s *InterconnectLocationList) MarshalJSON() ([]byte, error) { - type NoMethod InterconnectLocationList - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s InstanceGroupList) MarshalJSON() ([]byte, error) { + type NoMethod InstanceGroupList + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -// InterconnectLocationListWarning: [Output Only] Informational warning +// InstanceGroupListWarning: Output only. [Output Only] Informational warning // message. -type InterconnectLocationListWarning 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. +type InstanceGroupListWarning 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" - Warning about failed cleanup of transient changes made - // by a failed operation. + // by a failed + // operation. // "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was created. // "DEPRECATED_TYPE_USED" - When deploying and at least one of the resources - // has a type marked as deprecated + // has a type marked as + // deprecated // "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk that is // larger than image size. // "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the - // resources has a type marked as experimental + // resources has a type marked as + // experimental // "EXTERNAL_API_WARNING" - Warning that is present in an external api call // "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been - // overridden. Deprecated unused field. + // overridden. + // Deprecated unused field. // "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an injected // kernel, which is deprecated. // "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB" - A WEIGHTED_MAGLEV backend - // service is associated with a health check that is not of type - // HTTP/HTTPS/HTTP2. + // service is associated with a health check that is + // not of type HTTP/HTTPS/HTTP2. // "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a // exceedingly large number of resources // "LIST_OVERHEAD_QUOTA_EXCEED" - Resource can't be retrieved due to list - // overhead quota exceed which captures the amount of resources filtered out by + // overhead quota exceed + // which captures the amount of resources filtered out by // user-defined list filter. // "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is not - // assigned to an instance on the network. + // assigned to an instance on the + // network. // "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot ip // forward. // "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE" - The route's nextHopInstance - // URL refers to an instance that does not have an ipv6 interface on the same - // network as the route. + // URL refers to an instance that does not have an + // ipv6 interface on the same network as the route. // "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL refers to // an instance that does not exist. // "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance URL - // refers to an instance that is not on the same network as the route. + // refers to an instance that is not on the + // same network as the route. // "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not have a // status of RUNNING. // "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to continue - // the process despite the mentioned error. + // the process despite + // the mentioned error. // "NO_RESULTS_ON_PAGE" - No results are present on a particular list page. // "PARTIAL_SUCCESS" - Success is reported, but some results may be missing // due to errors + // "QUOTA_INFO_UNAVAILABLE" - Quota information is not available to client + // requests (e.g: + // regions.list). // "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource that - // requires a TOS they have not accepted. + // requires a TOS they have not + // accepted. // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a resource is // in use. // "RESOURCE_NOT_DELETED" - One or more of the resources set to auto-delete - // could not be deleted because they were in use. + // could not be deleted + // because they were in use. // "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is // ignored. // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in instance - // group manager is valid as such, but its application does not make a lot of - // sense, because it allows only single instance in instance group. + // group manager is valid as such, but + // its application does not make a lot of sense, because it allows only + // single instance in instance group. // "UNDECLARED_PROPERTIES" - When undeclared properties in the schema are // present // "UNREACHABLE" - A given scope cannot be reached. 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 []*InterconnectLocationListWarningData `json:"data,omitempty"` + // Data: [Output Only] Metadata about this warning in key: + // value format. For example: + // + // "data": [ + // { + // "key": "scope", + // "value": "zones/us-east1-d" + // } + Data []*InstanceGroupListWarningData `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 @@ -22384,19 +28018,22 @@ type InterconnectLocationListWarning struct { NullFields []string `json:"-"` } -func (s *InterconnectLocationListWarning) MarshalJSON() ([]byte, error) { - type NoMethod InterconnectLocationListWarning - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s InstanceGroupListWarning) MarshalJSON() ([]byte, error) { + type NoMethod InstanceGroupListWarning + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -type InterconnectLocationListWarningData 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). +type InstanceGroupListWarningData 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"` @@ -22413,554 +28050,438 @@ type InterconnectLocationListWarningData struct { NullFields []string `json:"-"` } -func (s *InterconnectLocationListWarningData) MarshalJSON() ([]byte, error) { - type NoMethod InterconnectLocationListWarningData - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s InstanceGroupListWarningData) MarshalJSON() ([]byte, error) { + type NoMethod InstanceGroupListWarningData + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -// InterconnectLocationRegionInfo: Information about any potential -// InterconnectAttachments between an Interconnect at a specific -// InterconnectLocation, and a specific Cloud Region. -type InterconnectLocationRegionInfo struct { - // ExpectedRttMs: Expected round-trip time in milliseconds, from this - // InterconnectLocation to a VM in this region. - ExpectedRttMs int64 `json:"expectedRttMs,omitempty,string"` - // LocationPresence: Identifies the network presence of this location. +// InstanceGroupManager: Represents a Managed Instance Group resource. +// +// An instance group is a collection of VM instances that you can manage as +// a +// single entity. For more information, readInstance groups. +// +// For zonal Managed Instance Group, use the +// instanceGroupManagers +// resource. +// +// For regional Managed Instance Group, use theregionInstanceGroupManagers +// resource. +type InstanceGroupManager struct { + // AllInstancesConfig: Specifies configuration that overrides the instance + // template configuration + // for the group. + AllInstancesConfig *InstanceGroupManagerAllInstancesConfig `json:"allInstancesConfig,omitempty"` + // AutoHealingPolicies: The autohealing policy for this managed instance group. + // You can specify + // only one value. + AutoHealingPolicies []*InstanceGroupManagerAutoHealingPolicy `json:"autoHealingPolicies,omitempty"` + // BaseInstanceName: The base instance name is a prefix that you want to attach + // to the names of + // all VMs in a MIG. The maximum character length is 58 and the name + // must + // comply with RFC1035 format. + // + // When a VM is created in the group, the MIG appends a hyphen and a + // random + // four-character string to the base instance name. If you want the MIG + // to + // assign sequential numbers instead of a random string, then end the + // base + // instance name with a hyphen followed by one or more hash symbols. The + // hash + // symbols indicate the number of digits. For example, a base instance name + // of + // "vm-###" results in "vm-001" as a VM name. + // @pattern + // a-z (([-a-z0-9]{0,57})|([-a-z0-9]{0,51}-#{1,10}(\\[[0-9]{1,10}\\])?)) + BaseInstanceName string `json:"baseInstanceName,omitempty"` + // CreationTimestamp: Output only. The creation timestamp for this managed + // instance group inRFC3339 + // text format. + CreationTimestamp string `json:"creationTimestamp,omitempty"` + // CurrentActions: Output only. The list of instance actions and the number of + // instances + // in this managed instance group that are scheduled for each of those + // actions. + CurrentActions *InstanceGroupManagerActionsSummary `json:"currentActions,omitempty"` + // Description: An optional description of this resource. + Description string `json:"description,omitempty"` + // DistributionPolicy: Policy specifying the intended distribution of managed + // instances across + // zones in a regional managed instance group. + DistributionPolicy *DistributionPolicy `json:"distributionPolicy,omitempty"` + // Fingerprint: Fingerprint of this resource. This field may be used in + // optimistic locking. + // It will be ignored when inserting an InstanceGroupManager. An + // up-to-date + // fingerprint must be provided in order to update the + // InstanceGroupManager, + // otherwise the request will fail with error412 conditionNotMet. + // + // To see the latest fingerprint, make a get() request to + // retrieve an InstanceGroupManager. + Fingerprint string `json:"fingerprint,omitempty"` + // Id: Output only. A unique identifier for this resource type. The + // server + // generates this identifier. + Id uint64 `json:"id,omitempty,string"` + // InstanceFlexibilityPolicy: Instance flexibility allowing MIG to create VMs + // from multiple + // types of machines. + // Instance flexibility configuration on MIG overrides instance + // template configuration. + InstanceFlexibilityPolicy *InstanceGroupManagerInstanceFlexibilityPolicy `json:"instanceFlexibilityPolicy,omitempty"` + // InstanceGroup: Output only. The URL of the Instance Group resource. + InstanceGroup string `json:"instanceGroup,omitempty"` + // InstanceLifecyclePolicy: The repair policy for this managed instance group. + InstanceLifecyclePolicy *InstanceGroupManagerInstanceLifecyclePolicy `json:"instanceLifecyclePolicy,omitempty"` + // InstanceTemplate: The URL of the instance template that is specified for + // this managed + // instance group. The group uses this template to create all new instances + // in the managed instance group. The templates for existing instances in + // the + // group do not change unless you run recreateInstances, + // runapplyUpdatesToInstances, or set the group'supdatePolicy.type to + // PROACTIVE. + InstanceTemplate string `json:"instanceTemplate,omitempty"` + // Kind: Output only. The resource type, which is + // alwayscompute#instanceGroupManager for managed instance groups. + Kind string `json:"kind,omitempty"` + // ListManagedInstancesResults: Pagination behavior of the listManagedInstances + // API method for + // this managed instance group. // // Possible values: - // "GLOBAL" - This region is not in any common network presence with this - // InterconnectLocation. - // "LOCAL_REGION" - This region shares the same regional network presence as - // this InterconnectLocation. - // "LP_GLOBAL" - [Deprecated] This region is not in any common network - // presence with this InterconnectLocation. - // "LP_LOCAL_REGION" - [Deprecated] This region shares the same regional - // network presence as this InterconnectLocation. - LocationPresence string `json:"locationPresence,omitempty"` - // Region: URL for the region of this location. + // "PAGELESS" - (Default) Pagination is disabled for the + // group'slistManagedInstances API method. maxResults + // and pageToken query parameters are ignored and all + // instances are returned in a single response. + // "PAGINATED" - Pagination is enabled for the group's + // listManagedInstances + // API method. maxResults and pageToken query + // parameters are respected. + ListManagedInstancesResults string `json:"listManagedInstancesResults,omitempty"` + // Name: The name of the managed instance group. The name must be 1-63 + // characters + // long, and comply withRFC1035. + Name string `json:"name,omitempty"` + // NamedPorts: [Output Only] Named ports configured on the Instance Groups + // complementary + // to this Instance Group Manager. + NamedPorts []*NamedPort `json:"namedPorts,omitempty"` + // Region: Output only. [Output Only] The URL of theregion + // where the managed instance group resides (for regional resources). Region string `json:"region,omitempty"` - // ForceSendFields is a list of field names (e.g. "ExpectedRttMs") to - // unconditionally include in API requests. By default, fields with empty or - // default values are omitted from API requests. See - // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more - // details. - ForceSendFields []string `json:"-"` - // NullFields is a list of field names (e.g. "ExpectedRttMs") to include in API - // requests with the JSON null value. By default, fields with empty values are - // omitted from API requests. See - // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. - NullFields []string `json:"-"` -} - -func (s *InterconnectLocationRegionInfo) MarshalJSON() ([]byte, error) { - type NoMethod InterconnectLocationRegionInfo - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) -} + // ResourcePolicies: Resource policies for this managed instance group. + ResourcePolicies *InstanceGroupManagerResourcePolicies `json:"resourcePolicies,omitempty"` + // SatisfiesPzi: Output only. Reserved for future use. + SatisfiesPzi bool `json:"satisfiesPzi,omitempty"` + // SatisfiesPzs: Output only. Reserved for future use. + SatisfiesPzs bool `json:"satisfiesPzs,omitempty"` + // SelfLink: Output only. The URL for this managed instance group. The server + // defines + // this URL. + SelfLink string `json:"selfLink,omitempty"` + // StandbyPolicy: Standby policy for stopped and suspended instances. + StandbyPolicy *InstanceGroupManagerStandbyPolicy `json:"standbyPolicy,omitempty"` + // StatefulPolicy: Stateful configuration for this Instanced Group Manager + StatefulPolicy *StatefulPolicy `json:"statefulPolicy,omitempty"` + // Status: Output only. The status of this managed instance group. + Status *InstanceGroupManagerStatus `json:"status,omitempty"` + // TargetPools: The URLs for all TargetPool resources to which instances in + // theinstanceGroup field are added. The target pools automatically + // apply to all of the instances in the managed instance group. + TargetPools []string `json:"targetPools,omitempty"` + // TargetSize: The target number of running instances for this managed instance + // group. + // You can reduce this number by using the instanceGroupManager + // deleteInstances or abandonInstances methods. Resizing the group also + // changes this number. + TargetSize int64 `json:"targetSize,omitempty"` + // TargetSizePolicy: The policy that specifies how the MIG creates its VMs to + // achieve the target + // size. + TargetSizePolicy *InstanceGroupManagerTargetSizePolicy `json:"targetSizePolicy,omitempty"` + // TargetStoppedSize: The target number of stopped instances for this managed + // instance group. + // This number changes when you: + // + // - Stop instance using the stopInstances + // method or start instances using the startInstances + // method. + // - Manually change the targetStoppedSize using the update + // method. + TargetStoppedSize int64 `json:"targetStoppedSize,omitempty"` + // TargetSuspendedSize: The target number of suspended instances for this + // managed instance group. + // This number changes when you: + // + // - Suspend instance using the suspendInstances + // method or resume instances using the resumeInstances + // method. + // - Manually change the targetSuspendedSize using the update + // method. + TargetSuspendedSize int64 `json:"targetSuspendedSize,omitempty"` + // UpdatePolicy: The update policy for this managed instance group. + UpdatePolicy *InstanceGroupManagerUpdatePolicy `json:"updatePolicy,omitempty"` + // Versions: Specifies the instance templates used by this managed instance + // group to + // create instances. + // + // Each version is defined by an instanceTemplate and aname. Every version can + // appear at most once per instance + // group. This field overrides the top-level instanceTemplate + // field. Read more about therelationships + // between these fields. Exactly one version must leave thetargetSize field + // unset. That version will be applied to all + // remaining instances. For more information, read aboutcanary + // updates. + Versions []*InstanceGroupManagerVersion `json:"versions,omitempty"` + // Zone: Output only. The URL of azone + // where the managed instance group is located (for zonal resources). + Zone string `json:"zone,omitempty"` -// InterconnectMacsec: Configuration information for enabling Media Access -// Control security (MACsec) on this Cloud Interconnect connection between -// Google and your on-premises router. -type InterconnectMacsec struct { - // FailOpen: If set to true, the Interconnect connection is configured with a - // should-secure MACsec security policy, that allows the Google router to - // fallback to cleartext traffic if the MKA session cannot be established. By - // default, the Interconnect connection is configured with a must-secure - // security policy that drops all traffic if the MKA session cannot be - // established with your router. - FailOpen bool `json:"failOpen,omitempty"` - // PreSharedKeys: Required. A keychain placeholder describing a set of named - // key objects along with their start times. A MACsec CKN/CAK is generated for - // each key in the key chain. Google router automatically picks the key with - // the most recent startTime when establishing or re-establishing a MACsec - // secure link. - PreSharedKeys []*InterconnectMacsecPreSharedKey `json:"preSharedKeys,omitempty"` - // ForceSendFields is a list of field names (e.g. "FailOpen") to + // ServerResponse contains the HTTP response code and headers from the server. + googleapi.ServerResponse `json:"-"` + // ForceSendFields is a list of field names (e.g. "AllInstancesConfig") to // unconditionally include in API requests. By default, fields with empty or // default values are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. ForceSendFields []string `json:"-"` - // NullFields is a list of field names (e.g. "FailOpen") to include in API - // requests with the JSON null value. By default, fields with empty values are - // omitted from API requests. See + // NullFields is a list of field names (e.g. "AllInstancesConfig") to include + // in API requests with the JSON null value. By default, fields with empty + // values are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } -func (s *InterconnectMacsec) MarshalJSON() ([]byte, error) { - type NoMethod InterconnectMacsec - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s InstanceGroupManager) MarshalJSON() ([]byte, error) { + type NoMethod InstanceGroupManager + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -// InterconnectMacsecConfig: MACsec configuration information for the -// Interconnect connection. Contains the generated Connectivity Association Key -// Name (CKN) and the key (CAK) for this Interconnect connection. -type InterconnectMacsecConfig struct { - // PreSharedKeys: A keychain placeholder describing a set of named key objects - // along with their start times. A MACsec CKN/CAK is generated for each key in - // the key chain. Google router automatically picks the key with the most - // recent startTime when establishing or re-establishing a MACsec secure link. - PreSharedKeys []*InterconnectMacsecConfigPreSharedKey `json:"preSharedKeys,omitempty"` - // ForceSendFields is a list of field names (e.g. "PreSharedKeys") to +type InstanceGroupManagerActionsSummary struct { + // Abandoning: Output only. The total number of instances in the managed + // instance group + // that are scheduled to be abandoned. Abandoning an instance removes it + // from the managed instance group without deleting it. + Abandoning int64 `json:"abandoning,omitempty"` + // Creating: Output only. The number of instances in the managed instance group + // that + // are scheduled to be created or are currently being created. If the + // group + // fails to create any of these instances, it tries again until it creates + // the instance successfully. + // + // If you have disabled creation retries, this field will not be + // populated; + // instead, the creatingWithoutRetries field will be populated. + Creating int64 `json:"creating,omitempty"` + // CreatingWithoutRetries: Output only. The number of instances that the + // managed instance group + // will attempt to create. The group attempts to create each instance + // only once. If the group fails to create any of these instances, it + // decreases the group's targetSize value accordingly. + CreatingWithoutRetries int64 `json:"creatingWithoutRetries,omitempty"` + // Deleting: Output only. The number of instances in the managed instance group + // that + // are scheduled to be deleted or are currently being deleted. + Deleting int64 `json:"deleting,omitempty"` + // None: Output only. The number of instances in the managed instance group + // that + // are running and have no scheduled actions. + None int64 `json:"none,omitempty"` + // Recreating: Output only. The number of instances in the managed instance + // group that + // are scheduled to be recreated or are currently being being + // recreated. + // Recreating an instance deletes the existing root persistent disk + // and creates a new disk from the image that is defined in the + // instance template. + Recreating int64 `json:"recreating,omitempty"` + // Refreshing: Output only. The number of instances in the managed instance + // group that + // are being reconfigured with properties that do not require a restart + // or a recreate action. For example, setting or removing target + // pools for the instance. + Refreshing int64 `json:"refreshing,omitempty"` + // Restarting: Output only. The number of instances in the managed instance + // group that + // are scheduled to be restarted or are currently being restarted. + Restarting int64 `json:"restarting,omitempty"` + // Resuming: Output only. The number of instances in the managed instance group + // that + // are scheduled to be resumed or are currently being resumed. + Resuming int64 `json:"resuming,omitempty"` + // Starting: Output only. The number of instances in the managed instance group + // that + // are scheduled to be started or are currently being started. + Starting int64 `json:"starting,omitempty"` + // Stopping: Output only. The number of instances in the managed instance group + // that + // are scheduled to be stopped or are currently being stopped. + Stopping int64 `json:"stopping,omitempty"` + // Suspending: Output only. The number of instances in the managed instance + // group that + // are scheduled to be suspended or are currently being suspended. + Suspending int64 `json:"suspending,omitempty"` + // Verifying: Output only. The number of instances in the managed instance + // group that + // are being verified. See the managedInstances[].currentAction + // property in the listManagedInstances method documentation. + Verifying int64 `json:"verifying,omitempty"` + // ForceSendFields is a list of field names (e.g. "Abandoning") to // unconditionally include in API requests. By default, fields with empty or // default values are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. ForceSendFields []string `json:"-"` - // NullFields is a list of field names (e.g. "PreSharedKeys") to include in API + // NullFields is a list of field names (e.g. "Abandoning") to include in API // requests with the JSON null value. By default, fields with empty values are // omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } -func (s *InterconnectMacsecConfig) MarshalJSON() ([]byte, error) { - type NoMethod InterconnectMacsecConfig - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) -} - -// InterconnectMacsecConfigPreSharedKey: Describes a pre-shared key used to -// setup MACsec in static connectivity association key (CAK) mode. -type InterconnectMacsecConfigPreSharedKey struct { - // Cak: An auto-generated Connectivity Association Key (CAK) for this key. - Cak string `json:"cak,omitempty"` - // Ckn: An auto-generated Connectivity Association Key Name (CKN) for this key. - Ckn string `json:"ckn,omitempty"` - // Name: User provided name for this pre-shared key. - Name string `json:"name,omitempty"` - // StartTime: User provided timestamp on or after which this key is valid. - StartTime string `json:"startTime,omitempty"` - // ForceSendFields is a list of field names (e.g. "Cak") to unconditionally - // include in API requests. By default, fields with empty or default values are - // omitted from API requests. See - // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more - // details. - ForceSendFields []string `json:"-"` - // NullFields is a list of field names (e.g. "Cak") to include in API requests - // with the JSON null value. By default, fields with empty values are omitted - // from API requests. See - // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. - NullFields []string `json:"-"` +func (s InstanceGroupManagerActionsSummary) MarshalJSON() ([]byte, error) { + type NoMethod InstanceGroupManagerActionsSummary + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -func (s *InterconnectMacsecConfigPreSharedKey) MarshalJSON() ([]byte, error) { - type NoMethod InterconnectMacsecConfigPreSharedKey - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) -} +type InstanceGroupManagerAggregatedList struct { + // Id: Output only. Unique identifier for the resource; defined by the server. + Id string `json:"id,omitempty"` + // Items: A list of InstanceGroupManagersScopedList resources. + Items map[string]InstanceGroupManagersScopedList `json:"items,omitempty"` + // Kind: Output only. The resource type, which is + // alwayscompute#instanceGroupManagerAggregatedList for an aggregated + // list of managed instance groups. + 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 thanmaxResults, 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"` + // SelfLink: Output only. Server-defined URL for this resource. + SelfLink string `json:"selfLink,omitempty"` + // Unreachables: Output only. Unreachable resources. + Unreachables []string `json:"unreachables,omitempty"` + // Warning: Output only. Informational warning message. + Warning *InstanceGroupManagerAggregatedListWarning `json:"warning,omitempty"` -// InterconnectMacsecPreSharedKey: Describes a pre-shared key used to setup -// MACsec in static connectivity association key (CAK) mode. -type InterconnectMacsecPreSharedKey struct { - // Name: Required. A name for this pre-shared 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. - Name string `json:"name,omitempty"` - // StartTime: A RFC3339 timestamp on or after which the key is valid. startTime - // can be in the future. If the keychain has a single key, startTime can be - // omitted. If the keychain has multiple keys, startTime is mandatory for each - // key. The start times of keys must be in increasing order. The start times of - // two consecutive keys must be at least 6 hours apart. - StartTime string `json:"startTime,omitempty"` - // ForceSendFields is a list of field names (e.g. "Name") to unconditionally + // 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 or default values are // omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. ForceSendFields []string `json:"-"` - // NullFields is a list of field names (e.g. "Name") to include in API requests + // 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. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } -func (s *InterconnectMacsecPreSharedKey) MarshalJSON() ([]byte, error) { - type NoMethod InterconnectMacsecPreSharedKey - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s InstanceGroupManagerAggregatedList) MarshalJSON() ([]byte, error) { + type NoMethod InstanceGroupManagerAggregatedList + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -// InterconnectOutageNotification: Description of a planned outage on this -// Interconnect. -type InterconnectOutageNotification struct { - // AffectedCircuits: If issue_type is IT_PARTIAL_OUTAGE, a list of the - // Google-side circuit IDs that will be affected. - AffectedCircuits []string `json:"affectedCircuits,omitempty"` - // Description: A description about the purpose of the outage. - Description string `json:"description,omitempty"` - // EndTime: Scheduled end time for the outage (milliseconds since Unix epoch). - EndTime int64 `json:"endTime,omitempty,string"` - // IssueType: Form this outage is expected to take, which can take one of the - // following values: - OUTAGE: The Interconnect may be completely out of - // service for some or all of the specified window. - PARTIAL_OUTAGE: Some - // circuits comprising the Interconnect as a whole should remain up, but with - // reduced bandwidth. Note that the versions of this enum prefixed with "IT_" - // have been deprecated in favor of the unprefixed values. - // - // Possible values: - // "IT_OUTAGE" - [Deprecated] The Interconnect may be completely out of - // service for some or all of the specified window. - // "IT_PARTIAL_OUTAGE" - [Deprecated] Some circuits comprising the - // Interconnect will be out of service during the expected window. The - // interconnect as a whole should remain up, albeit with reduced bandwidth. - // "OUTAGE" - The Interconnect may be completely out of service for some or - // all of the specified window. - // "PARTIAL_OUTAGE" - Some circuits comprising the Interconnect will be out - // of service during the expected window. The interconnect as a whole should - // remain up, albeit with reduced bandwidth. - IssueType string `json:"issueType,omitempty"` - // Name: Unique identifier for this outage notification. - Name string `json:"name,omitempty"` - // Source: The party that generated this notification, which can take the - // following value: - GOOGLE: this notification as generated by Google. Note - // that the value of NSRC_GOOGLE has been deprecated in favor of GOOGLE. - // - // Possible values: - // "GOOGLE" - This notification was generated by Google. - // "NSRC_GOOGLE" - [Deprecated] This notification was generated by Google. - Source string `json:"source,omitempty"` - // StartTime: Scheduled start time for the outage (milliseconds since Unix - // epoch). - StartTime int64 `json:"startTime,omitempty,string"` - // State: State of this notification, which can take one of the following - // values: - ACTIVE: This outage notification is active. The event could be in - // the past, present, or future. See start_time and end_time for scheduling. - - // CANCELLED: The outage associated with this notification was cancelled before - // the outage was due to start. - COMPLETED: The outage associated with this - // notification is complete. Note that the versions of this enum prefixed with - // "NS_" have been deprecated in favor of the unprefixed values. - // - // Possible values: - // "ACTIVE" - This outage notification is active. The event could be in the - // future, present, or past. See start_time and end_time for scheduling. - // "CANCELLED" - The outage associated with this notification was cancelled - // before the outage was due to start. - // "COMPLETED" - The outage associated with this notification is complete. - // "NS_ACTIVE" - [Deprecated] This outage notification is active. The event - // could be in the future, present, or past. See start_time and end_time for - // scheduling. - // "NS_CANCELED" - [Deprecated] The outage associated with this notification - // was canceled before the outage was due to start. - State string `json:"state,omitempty"` - // ForceSendFields is a list of field names (e.g. "AffectedCircuits") to - // unconditionally include in API requests. By default, fields with empty or - // default values are omitted from API requests. See - // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more - // details. - ForceSendFields []string `json:"-"` - // NullFields is a list of field names (e.g. "AffectedCircuits") to include in - // API requests with the JSON null value. By default, fields with empty values - // are omitted from API requests. See - // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. - NullFields []string `json:"-"` -} - -func (s *InterconnectOutageNotification) MarshalJSON() ([]byte, error) { - type NoMethod InterconnectOutageNotification - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) -} - -// InterconnectRemoteLocation: Represents a Cross-Cloud Interconnect Remote -// Location resource. You can use this resource to find remote location details -// about an Interconnect attachment (VLAN). -type InterconnectRemoteLocation struct { - // Address: [Output Only] The postal address of the Point of Presence, each - // line in the address is separated by a newline character. - Address string `json:"address,omitempty"` - // AttachmentConfigurationConstraints: [Output Only] Subset of fields from - // InterconnectAttachment's |configurationConstraints| field that apply to all - // attachments for this remote location. - AttachmentConfigurationConstraints *InterconnectAttachmentConfigurationConstraints `json:"attachmentConfigurationConstraints,omitempty"` - // City: [Output Only] Metropolitan area designator that indicates which city - // an interconnect is located. For example: "Chicago, IL", "Amsterdam, - // Netherlands". - City string `json:"city,omitempty"` - // Constraints: [Output Only] Constraints on the parameters for creating - // Cross-Cloud Interconnect and associated InterconnectAttachments. - Constraints *InterconnectRemoteLocationConstraints `json:"constraints,omitempty"` - // Continent: [Output Only] Continent for this location, which can take one of - // the following values: - AFRICA - ASIA_PAC - EUROPE - NORTH_AMERICA - - // SOUTH_AMERICA - // - // Possible values: - // "AFRICA" - // "ASIA_PAC" - // "EUROPE" - // "NORTH_AMERICA" - // "SOUTH_AMERICA" - Continent string `json:"continent,omitempty"` - // CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text format. - CreationTimestamp string `json:"creationTimestamp,omitempty"` - // Description: [Output Only] An optional description of the resource. - Description string `json:"description,omitempty"` - // FacilityProvider: [Output Only] The name of the provider for this facility - // (e.g., EQUINIX). - FacilityProvider string `json:"facilityProvider,omitempty"` - // FacilityProviderFacilityId: [Output Only] A provider-assigned Identifier for - // this facility (e.g., Ashburn-DC1). - FacilityProviderFacilityId string `json:"facilityProviderFacilityId,omitempty"` - // Id: [Output Only] The unique identifier for the resource. This identifier is - // defined by the server. - Id uint64 `json:"id,omitempty,string"` - // Kind: [Output Only] Type of the resource. Always - // compute#interconnectRemoteLocation for interconnect remote locations. - Kind string `json:"kind,omitempty"` - // Lacp: [Output Only] Link Aggregation Control Protocol (LACP) constraints, - // which can take one of the following values: LACP_SUPPORTED, LACP_UNSUPPORTED - // - // Possible values: - // "LACP_SUPPORTED" - LACP_SUPPORTED: LACP is supported, and enabled by - // default on the Cross-Cloud Interconnect. - // "LACP_UNSUPPORTED" - LACP_UNSUPPORTED: LACP is not supported and is not be - // enabled on this port. GetDiagnostics shows bundleAggregationType as - // "static". GCP does not support LAGs without LACP, so requestedLinkCount must - // be 1. - Lacp string `json:"lacp,omitempty"` - // MaxLagSize100Gbps: [Output Only] The maximum number of 100 Gbps ports - // supported in a link aggregation group (LAG). When linkType is 100 Gbps, - // requestedLinkCount cannot exceed max_lag_size_100_gbps. - MaxLagSize100Gbps int64 `json:"maxLagSize100Gbps,omitempty"` - // MaxLagSize10Gbps: [Output Only] The maximum number of 10 Gbps ports - // supported in a link aggregation group (LAG). When linkType is 10 Gbps, - // requestedLinkCount cannot exceed max_lag_size_10_gbps. - MaxLagSize10Gbps int64 `json:"maxLagSize10Gbps,omitempty"` - // Name: [Output Only] Name of the resource. - Name string `json:"name,omitempty"` - // PeeringdbFacilityId: [Output Only] The peeringdb identifier for this - // facility (corresponding with a netfac type in peeringdb). - PeeringdbFacilityId string `json:"peeringdbFacilityId,omitempty"` - // PermittedConnections: [Output Only] Permitted connections. - PermittedConnections []*InterconnectRemoteLocationPermittedConnections `json:"permittedConnections,omitempty"` - // RemoteService: [Output Only] Indicates the service provider present at the - // remote location. Example values: "Amazon Web Services", "Microsoft Azure". - RemoteService string `json:"remoteService,omitempty"` - // SelfLink: [Output Only] Server-defined URL for the resource. - SelfLink string `json:"selfLink,omitempty"` - // Status: [Output Only] The status of this InterconnectRemoteLocation, which - // can take one of the following values: - CLOSED: The - // InterconnectRemoteLocation is closed and is unavailable for provisioning new - // Cross-Cloud Interconnects. - AVAILABLE: The InterconnectRemoteLocation is - // available for provisioning new Cross-Cloud Interconnects. - // - // Possible values: - // "AVAILABLE" - The InterconnectRemoteLocation is available for provisioning - // new Cross-Cloud Interconnects. - // "CLOSED" - The InterconnectRemoteLocation is closed for provisioning new - // Cross-Cloud Interconnects. - Status string `json:"status,omitempty"` - - // ServerResponse contains the HTTP response code and headers from the server. - googleapi.ServerResponse `json:"-"` - // ForceSendFields is a list of field names (e.g. "Address") to unconditionally - // include in API requests. By default, fields with empty or default values are - // omitted from API requests. See - // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more - // details. - ForceSendFields []string `json:"-"` - // NullFields is a list of field names (e.g. "Address") to include in API - // requests with the JSON null value. By default, fields with empty values are - // omitted from API requests. See - // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. - NullFields []string `json:"-"` -} - -func (s *InterconnectRemoteLocation) MarshalJSON() ([]byte, error) { - type NoMethod InterconnectRemoteLocation - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) -} - -type InterconnectRemoteLocationConstraints struct { - // PortPairRemoteLocation: [Output Only] Port pair remote location constraints, - // which can take one of the following values: - // PORT_PAIR_UNCONSTRAINED_REMOTE_LOCATION, PORT_PAIR_MATCHING_REMOTE_LOCATION. - // Google Cloud API refers only to individual ports, but the UI uses this field - // when ordering a pair of ports, to prevent users from accidentally ordering - // something that is incompatible with their cloud provider. Specifically, when - // ordering a redundant pair of Cross-Cloud Interconnect ports, and one of them - // uses a remote location with portPairMatchingRemoteLocation set to matching, - // the UI requires that both ports use the same remote location. - // - // Possible values: - // "PORT_PAIR_MATCHING_REMOTE_LOCATION" - If - // PORT_PAIR_MATCHING_REMOTE_LOCATION, the remote cloud provider allocates - // ports in pairs, and the user should choose the same remote location for both - // ports. - // "PORT_PAIR_UNCONSTRAINED_REMOTE_LOCATION" - If - // PORT_PAIR_UNCONSTRAINED_REMOTE_LOCATION, a user may opt to provision a - // redundant pair of Cross-Cloud Interconnects using two different remote - // locations in the same city. - PortPairRemoteLocation string `json:"portPairRemoteLocation,omitempty"` - // PortPairVlan: [Output Only] Port pair VLAN constraints, which can take one - // of the following values: PORT_PAIR_UNCONSTRAINED_VLAN, - // PORT_PAIR_MATCHING_VLAN - // - // Possible values: - // "PORT_PAIR_MATCHING_VLAN" - If PORT_PAIR_MATCHING_VLAN, the Interconnect - // for this attachment is part of a pair of ports that should have matching - // VLAN allocations. This occurs with Cross-Cloud Interconnect to Azure remote - // locations. While GCP's API does not explicitly group pairs of ports, the UI - // uses this field to ensure matching VLAN ids when configuring a redundant - // VLAN pair. - // "PORT_PAIR_UNCONSTRAINED_VLAN" - PORT_PAIR_UNCONSTRAINED_VLAN means there - // is no constraint. - PortPairVlan string `json:"portPairVlan,omitempty"` - // SubnetLengthRange: [Output Only] [min-length, max-length] The minimum and - // maximum value (inclusive) for the IPv4 subnet length. For example, an - // interconnectRemoteLocation for Azure has {min: 30, max: 30} because Azure - // requires /30 subnets. This range specifies the values supported by both - // cloud providers. Interconnect currently supports /29 and /30 IPv4 subnet - // lengths. If a remote cloud has no constraint on IPv4 subnet length, the - // range would thus be {min: 29, max: 30}. - SubnetLengthRange *InterconnectRemoteLocationConstraintsSubnetLengthRange `json:"subnetLengthRange,omitempty"` - // ForceSendFields is a list of field names (e.g. "PortPairRemoteLocation") to - // unconditionally include in API requests. By default, fields with empty or - // default values are omitted from API requests. See - // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more - // details. - ForceSendFields []string `json:"-"` - // NullFields is a list of field names (e.g. "PortPairRemoteLocation") to - // include in API requests with the JSON null value. By default, fields with - // empty values are omitted from API requests. See - // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. - NullFields []string `json:"-"` -} - -func (s *InterconnectRemoteLocationConstraints) MarshalJSON() ([]byte, error) { - type NoMethod InterconnectRemoteLocationConstraints - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) -} - -type InterconnectRemoteLocationConstraintsSubnetLengthRange struct { - Max int64 `json:"max,omitempty"` - Min int64 `json:"min,omitempty"` - // ForceSendFields is a list of field names (e.g. "Max") to unconditionally - // include in API requests. By default, fields with empty or default values are - // omitted from API requests. See - // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more - // details. - ForceSendFields []string `json:"-"` - // NullFields is a list of field names (e.g. "Max") to include in API requests - // with the JSON null value. By default, fields with empty values are omitted - // from API requests. See - // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. - NullFields []string `json:"-"` -} - -func (s *InterconnectRemoteLocationConstraintsSubnetLengthRange) MarshalJSON() ([]byte, error) { - type NoMethod InterconnectRemoteLocationConstraintsSubnetLengthRange - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) -} - -// InterconnectRemoteLocationList: Response to the list request, and contains a -// list of interconnect remote locations. -type InterconnectRemoteLocationList struct { - // Id: [Output Only] Unique identifier for the resource; defined by the server. - Id string `json:"id,omitempty"` - // Items: A list of InterconnectRemoteLocation resources. - Items []*InterconnectRemoteLocation `json:"items,omitempty"` - // Kind: [Output Only] Type of resource. Always - // compute#interconnectRemoteLocationList for lists of interconnect remote - // locations. - Kind string `json:"kind,omitempty"` - // NextPageToken: [Output Only] This token lets you 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"` - // SelfLink: [Output Only] Server-defined URL for this resource. - SelfLink string `json:"selfLink,omitempty"` - // Warning: [Output Only] Informational warning message. - Warning *InterconnectRemoteLocationListWarning `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 or default values are - // omitted from API requests. See - // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more - // details. - 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. See - // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. - NullFields []string `json:"-"` -} - -func (s *InterconnectRemoteLocationList) MarshalJSON() ([]byte, error) { - type NoMethod InterconnectRemoteLocationList - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) -} - -// InterconnectRemoteLocationListWarning: [Output Only] Informational warning -// message. -type InterconnectRemoteLocationListWarning 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. +// InstanceGroupManagerAggregatedListWarning: Output only. Informational +// warning message. +type InstanceGroupManagerAggregatedListWarning 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" - Warning about failed cleanup of transient changes made - // by a failed operation. + // by a failed + // operation. // "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was created. // "DEPRECATED_TYPE_USED" - When deploying and at least one of the resources - // has a type marked as deprecated + // has a type marked as + // deprecated // "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk that is // larger than image size. // "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the - // resources has a type marked as experimental + // resources has a type marked as + // experimental // "EXTERNAL_API_WARNING" - Warning that is present in an external api call // "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been - // overridden. Deprecated unused field. + // overridden. + // Deprecated unused field. // "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an injected // kernel, which is deprecated. // "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB" - A WEIGHTED_MAGLEV backend - // service is associated with a health check that is not of type - // HTTP/HTTPS/HTTP2. + // service is associated with a health check that is + // not of type HTTP/HTTPS/HTTP2. // "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a // exceedingly large number of resources // "LIST_OVERHEAD_QUOTA_EXCEED" - Resource can't be retrieved due to list - // overhead quota exceed which captures the amount of resources filtered out by + // overhead quota exceed + // which captures the amount of resources filtered out by // user-defined list filter. // "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is not - // assigned to an instance on the network. + // assigned to an instance on the + // network. // "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot ip // forward. // "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE" - The route's nextHopInstance - // URL refers to an instance that does not have an ipv6 interface on the same - // network as the route. + // URL refers to an instance that does not have an + // ipv6 interface on the same network as the route. // "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL refers to // an instance that does not exist. // "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance URL - // refers to an instance that is not on the same network as the route. + // refers to an instance that is not on the + // same network as the route. // "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not have a // status of RUNNING. // "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to continue - // the process despite the mentioned error. + // the process despite + // the mentioned error. // "NO_RESULTS_ON_PAGE" - No results are present on a particular list page. // "PARTIAL_SUCCESS" - Success is reported, but some results may be missing // due to errors + // "QUOTA_INFO_UNAVAILABLE" - Quota information is not available to client + // requests (e.g: + // regions.list). // "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource that - // requires a TOS they have not accepted. + // requires a TOS they have not + // accepted. // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a resource is // in use. // "RESOURCE_NOT_DELETED" - One or more of the resources set to auto-delete - // could not be deleted because they were in use. + // could not be deleted + // because they were in use. // "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is // ignored. // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in instance - // group manager is valid as such, but its application does not make a lot of - // sense, because it allows only single instance in instance group. + // group manager is valid as such, but + // its application does not make a lot of sense, because it allows only + // single instance in instance group. // "UNDECLARED_PROPERTIES" - When undeclared properties in the schema are // present // "UNREACHABLE" - A given scope cannot be reached. 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 []*InterconnectRemoteLocationListWarningData `json:"data,omitempty"` + // Data: [Output Only] Metadata about this warning in key: + // value format. For example: + // + // "data": [ + // { + // "key": "scope", + // "value": "zones/us-east1-d" + // } + Data []*InstanceGroupManagerAggregatedListWarningData `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 @@ -22976,19 +28497,22 @@ type InterconnectRemoteLocationListWarning struct { NullFields []string `json:"-"` } -func (s *InterconnectRemoteLocationListWarning) MarshalJSON() ([]byte, error) { - type NoMethod InterconnectRemoteLocationListWarning - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s InstanceGroupManagerAggregatedListWarning) MarshalJSON() ([]byte, error) { + type NoMethod InstanceGroupManagerAggregatedListWarning + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -type InterconnectRemoteLocationListWarningData 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). +type InstanceGroupManagerAggregatedListWarningData 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"` @@ -23005,287 +28529,258 @@ type InterconnectRemoteLocationListWarningData struct { NullFields []string `json:"-"` } -func (s *InterconnectRemoteLocationListWarningData) MarshalJSON() ([]byte, error) { - type NoMethod InterconnectRemoteLocationListWarningData - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s InstanceGroupManagerAggregatedListWarningData) MarshalJSON() ([]byte, error) { + type NoMethod InstanceGroupManagerAggregatedListWarningData + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -type InterconnectRemoteLocationPermittedConnections struct { - // InterconnectLocation: [Output Only] URL of an Interconnect location that is - // permitted to connect to this Interconnect remote location. - InterconnectLocation string `json:"interconnectLocation,omitempty"` - // ForceSendFields is a list of field names (e.g. "InterconnectLocation") to +type InstanceGroupManagerAllInstancesConfig struct { + // Properties: Properties to set on all instances in the group. + // + // You can add or modify properties using theinstanceGroupManagers.patch + // orregionInstanceGroupManagers.patch. After settingallInstancesConfig on the + // group, you must update the group's + // instances to apply the configuration. To apply the configuration, set + // the + // group's updatePolicy.type field to use proactive updates or + // use the applyUpdatesToInstances method. + Properties *InstancePropertiesPatch `json:"properties,omitempty"` + // ForceSendFields is a list of field names (e.g. "Properties") to // unconditionally include in API requests. By default, fields with empty or // default values are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. ForceSendFields []string `json:"-"` - // NullFields is a list of field names (e.g. "InterconnectLocation") to include - // in API requests with the JSON null value. By default, fields with empty - // values are omitted from API requests. See - // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. - NullFields []string `json:"-"` -} - -func (s *InterconnectRemoteLocationPermittedConnections) MarshalJSON() ([]byte, error) { - type NoMethod InterconnectRemoteLocationPermittedConnections - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) -} - -// InterconnectsGetDiagnosticsResponse: Response for the -// InterconnectsGetDiagnosticsRequest. -type InterconnectsGetDiagnosticsResponse struct { - Result *InterconnectDiagnostics `json:"result,omitempty"` - - // ServerResponse contains the HTTP response code and headers from the server. - googleapi.ServerResponse `json:"-"` - // ForceSendFields is a list of field names (e.g. "Result") to unconditionally - // include in API requests. By default, fields with empty or default values are - // omitted from API requests. See - // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more - // details. - ForceSendFields []string `json:"-"` - // NullFields is a list of field names (e.g. "Result") to include in API + // NullFields is a list of field names (e.g. "Properties") to include in API // requests with the JSON null value. By default, fields with empty values are // omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } -func (s *InterconnectsGetDiagnosticsResponse) MarshalJSON() ([]byte, error) { - type NoMethod InterconnectsGetDiagnosticsResponse - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) -} - -// InterconnectsGetMacsecConfigResponse: Response for the -// InterconnectsGetMacsecConfigRequest. -type InterconnectsGetMacsecConfigResponse struct { - // Etag: end_interface: MixerGetResponseWithEtagBuilder - Etag string `json:"etag,omitempty"` - Result *InterconnectMacsecConfig `json:"result,omitempty"` - - // ServerResponse contains the HTTP response code and headers from the server. - googleapi.ServerResponse `json:"-"` - // ForceSendFields is a list of field names (e.g. "Etag") to unconditionally - // include in API requests. By default, fields with empty or default values are - // omitted from API requests. See - // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more - // details. - ForceSendFields []string `json:"-"` - // NullFields is a list of field names (e.g. "Etag") to include in API requests - // with the JSON null value. By default, fields with empty values are omitted - // from API requests. See - // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. - NullFields []string `json:"-"` -} - -func (s *InterconnectsGetMacsecConfigResponse) MarshalJSON() ([]byte, error) { - type NoMethod InterconnectsGetMacsecConfigResponse - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s InstanceGroupManagerAllInstancesConfig) MarshalJSON() ([]byte, error) { + type NoMethod InstanceGroupManagerAllInstancesConfig + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -// License: Represents a License resource. A License represents billing and -// aggregate usage data for public and marketplace images. *Caution* This -// resource is intended for use only by third-party partners who are creating -// Cloud Marketplace images. -type License struct { - // ChargesUseFee: [Output Only] Deprecated. This field no longer reflects - // whether a license charges a usage fee. - ChargesUseFee bool `json:"chargesUseFee,omitempty"` - // CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text format. - CreationTimestamp string `json:"creationTimestamp,omitempty"` - // Description: An optional textual description of the resource; provided by - // the client when the resource is created. - Description string `json:"description,omitempty"` - // Id: [Output Only] The unique identifier for the resource. This identifier is - // defined by the server. - Id uint64 `json:"id,omitempty,string"` - // Kind: [Output Only] Type of resource. Always compute#license for licenses. - Kind string `json:"kind,omitempty"` - // LicenseCode: [Output Only] The unique code used to attach this license to - // images, snapshots, and disks. - LicenseCode uint64 `json:"licenseCode,omitempty,string"` - // Name: Name of the resource. The name must be 1-63 characters long and comply - // with RFC1035. - Name string `json:"name,omitempty"` - ResourceRequirements *LicenseResourceRequirements `json:"resourceRequirements,omitempty"` - // SelfLink: [Output Only] Server-defined URL for the resource. - SelfLink string `json:"selfLink,omitempty"` - // Transferable: If false, licenses will not be copied from the source resource - // when creating an image from a disk, disk from snapshot, or snapshot from - // disk. - Transferable bool `json:"transferable,omitempty"` - - // ServerResponse contains the HTTP response code and headers from the server. - googleapi.ServerResponse `json:"-"` - // ForceSendFields is a list of field names (e.g. "ChargesUseFee") to +type InstanceGroupManagerAutoHealingPolicy struct { + // HealthCheck: The URL for the health check that signals autohealing. + HealthCheck string `json:"healthCheck,omitempty"` + // InitialDelaySec: The initial delay is the number of seconds that a new VM + // takes to + // initialize and run its startup script. During a VM's initial delay + // period, the MIG ignores unsuccessful health checks because the VM might + // be in the startup process. This prevents the MIG from prematurely + // recreating a VM. If the health check receives a healthy response during + // the initial delay, it indicates that the startup process is complete and + // the VM is ready. The value of initial delay must be between 0 and + // 3600 + // seconds. The default value is 0. + InitialDelaySec int64 `json:"initialDelaySec,omitempty"` + // ForceSendFields is a list of field names (e.g. "HealthCheck") to // unconditionally include in API requests. By default, fields with empty or // default values are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. ForceSendFields []string `json:"-"` - // NullFields is a list of field names (e.g. "ChargesUseFee") to include in API + // NullFields is a list of field names (e.g. "HealthCheck") to include in API // requests with the JSON null value. By default, fields with empty values are // omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } -func (s *License) MarshalJSON() ([]byte, error) { - type NoMethod License - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s InstanceGroupManagerAutoHealingPolicy) MarshalJSON() ([]byte, error) { + type NoMethod InstanceGroupManagerAutoHealingPolicy + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -// LicenseCode: Represents a License Code resource. A License Code is a unique -// identifier used to represent a license resource. *Caution* This resource is -// intended for use only by third-party partners who are creating Cloud -// Marketplace images. -type LicenseCode struct { - // CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text format. - CreationTimestamp string `json:"creationTimestamp,omitempty"` - // Description: [Output Only] Description of this License Code. - Description string `json:"description,omitempty"` - // Id: [Output Only] The unique identifier for the resource. This identifier is - // defined by the server. - Id uint64 `json:"id,omitempty,string"` - // Kind: [Output Only] Type of resource. Always compute#licenseCode for - // licenses. - Kind string `json:"kind,omitempty"` - // LicenseAlias: [Output Only] URL and description aliases of Licenses with the - // same License Code. - LicenseAlias []*LicenseCodeLicenseAlias `json:"licenseAlias,omitempty"` - // Name: [Output Only] Name of the resource. The name is 1-20 characters long - // and must be a valid 64 bit integer. - Name string `json:"name,omitempty"` - // SelfLink: [Output Only] Server-defined URL for the resource. - SelfLink string `json:"selfLink,omitempty"` - // State: [Output Only] Current state of this License Code. - // - // Possible values: - // "DISABLED" - Machines are not allowed to attach boot disks with this - // License Code. Requests to create new resources with this license will be - // rejected. - // "ENABLED" - Use is allowed for anyone with USE_READ_ONLY access to this - // License Code. - // "RESTRICTED" - Use of this license is limited to a project whitelist. - // "STATE_UNSPECIFIED" - // "TERMINATED" - Reserved state. - State string `json:"state,omitempty"` - // Transferable: [Output Only] If true, the license will remain attached when - // creating images or snapshots from disks. Otherwise, the license is not - // transferred. - Transferable bool `json:"transferable,omitempty"` - - // ServerResponse contains the HTTP response code and headers from the server. - googleapi.ServerResponse `json:"-"` - // ForceSendFields is a list of field names (e.g. "CreationTimestamp") to +type InstanceGroupManagerInstanceFlexibilityPolicy struct { + // InstanceSelections: Named instance selections configuring properties that + // the group will use + // when creating new VMs. + InstanceSelections map[string]InstanceGroupManagerInstanceFlexibilityPolicyInstanceSelection `json:"instanceSelections,omitempty"` + // ForceSendFields is a list of field names (e.g. "InstanceSelections") to // unconditionally include in API requests. By default, fields with empty or // default values are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. ForceSendFields []string `json:"-"` - // NullFields is a list of field names (e.g. "CreationTimestamp") to include in - // API requests with the JSON null value. By default, fields with empty values - // are omitted from API requests. See + // NullFields is a list of field names (e.g. "InstanceSelections") to include + // in API requests with the JSON null value. By default, fields with empty + // values are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } -func (s *LicenseCode) MarshalJSON() ([]byte, error) { - type NoMethod LicenseCode - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s InstanceGroupManagerInstanceFlexibilityPolicy) MarshalJSON() ([]byte, error) { + type NoMethod InstanceGroupManagerInstanceFlexibilityPolicy + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -type LicenseCodeLicenseAlias struct { - // Description: [Output Only] Description of this License Code. - Description string `json:"description,omitempty"` - // SelfLink: [Output Only] URL of license corresponding to this License Code. - SelfLink string `json:"selfLink,omitempty"` - // ForceSendFields is a list of field names (e.g. "Description") to +type InstanceGroupManagerInstanceFlexibilityPolicyInstanceSelection struct { + // MachineTypes: Full machine-type names, e.g. "n1-standard-16". + MachineTypes []string `json:"machineTypes,omitempty"` + // Rank: Preference of this instance selection. Lower number means + // higher + // preference. MIG will first try to create a VM based on the machine-type + // with lowest rank and fallback to next rank based on availability. + // Machine types and instance selections with the same rank have the + // same + // preference. + Rank int64 `json:"rank,omitempty"` + // ForceSendFields is a list of field names (e.g. "MachineTypes") to // unconditionally include in API requests. By default, fields with empty or // default values are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. ForceSendFields []string `json:"-"` - // NullFields is a list of field names (e.g. "Description") to include in API + // NullFields is a list of field names (e.g. "MachineTypes") to include in API // requests with the JSON null value. By default, fields with empty values are // omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } -func (s *LicenseCodeLicenseAlias) MarshalJSON() ([]byte, error) { - type NoMethod LicenseCodeLicenseAlias - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s InstanceGroupManagerInstanceFlexibilityPolicyInstanceSelection) MarshalJSON() ([]byte, error) { + type NoMethod InstanceGroupManagerInstanceFlexibilityPolicyInstanceSelection + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -// LicenseResourceCommitment: Commitment for a particular license resource. -type LicenseResourceCommitment struct { - // Amount: The number of licenses purchased. - Amount int64 `json:"amount,omitempty,string"` - // CoresPerLicense: Specifies the core range of the instance for which this - // license applies. - CoresPerLicense string `json:"coresPerLicense,omitempty"` - // License: Any applicable license URI. - License string `json:"license,omitempty"` - // ForceSendFields is a list of field names (e.g. "Amount") to unconditionally - // include in API requests. By default, fields with empty or default values are - // omitted from API requests. See +type InstanceGroupManagerInstanceLifecyclePolicy struct { + // DefaultActionOnFailure: The action that a MIG performs on a failed VM. If + // the value of the + // onFailedHealthCheck field is `DEFAULT_ACTION`, then the same action + // also + // applies to the VMs on which your application fails a health check. + // Valid values are + // + // - REPAIR (default): MIG automatically repairs a failed VM + // by recreating it. For more information, see About + // repairing VMs in a MIG. + // - DO_NOTHING: MIG does not repair a failed VM. + // + // Possible values: + // "DO_NOTHING" - MIG does not repair a failed VM. + // "REPAIR" - (default): MIG automatically repairs a failed VM by recreating + // it. + // For more information, see About + // repairing VMs in a MIG. + DefaultActionOnFailure string `json:"defaultActionOnFailure,omitempty"` + // ForceUpdateOnRepair: A bit indicating whether to forcefully apply the + // group's latest + // configuration when repairing a VM. Valid options are: + // + // + // + // - NO (default): If configuration updates are available, they are not + // forcefully applied during repair. Instead, configuration updates are + // applied according to the group's update policy. + // + // - YES: If configuration updates are available, they are applied + // during repair. + // + // Possible values: + // "NO" + // "YES" + ForceUpdateOnRepair string `json:"forceUpdateOnRepair,omitempty"` + // OnFailedHealthCheck: The action that a MIG performs on an unhealthy VM. A VM + // is marked as + // unhealthy when the application running on that VM fails a health + // check. + // Valid values are: + // + // - DEFAULT_ACTION (default): MIG uses the same action + // configured for instanceLifecyclePolicy.defaultActionOnFailure field. + // - REPAIR: MIG automatically repairs an unhealthy VM by + // recreating it. + // - DO_NOTHING: MIG doesn't repair an unhealthy VM. + // For more information, see + // About repairing VMs in a MIG. + // + // Possible values: + // "DEFAULT_ACTION" - (Default) MIG uses the same action configured + // for + // instanceLifecyclePolicy.defaultActionOnFailure field. + // "DO_NOTHING" - MIG doesn't repair an unhealthy VM. + // "REPAIR" - MIG automatically repairs an unhealthy VM by recreating it. + OnFailedHealthCheck string `json:"onFailedHealthCheck,omitempty"` + // OnRepair: Configuration for VM repairs in the MIG. + OnRepair *InstanceGroupManagerInstanceLifecyclePolicyOnRepair `json:"onRepair,omitempty"` + // ForceSendFields is a list of field names (e.g. "DefaultActionOnFailure") to + // unconditionally include in API requests. By default, fields with empty or + // default values are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. ForceSendFields []string `json:"-"` - // NullFields is a list of field names (e.g. "Amount") to include in API - // requests with the JSON null value. By default, fields with empty values are - // omitted from API requests. See + // NullFields is a list of field names (e.g. "DefaultActionOnFailure") to + // include in API requests with the JSON null value. By default, fields with + // empty values are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } -func (s *LicenseResourceCommitment) MarshalJSON() ([]byte, error) { - type NoMethod LicenseResourceCommitment - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s InstanceGroupManagerInstanceLifecyclePolicy) MarshalJSON() ([]byte, error) { + type NoMethod InstanceGroupManagerInstanceLifecyclePolicy + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -type LicenseResourceRequirements struct { - // MinGuestCpuCount: Minimum number of guest cpus required to use the Instance. - // Enforced at Instance creation and Instance start. - MinGuestCpuCount int64 `json:"minGuestCpuCount,omitempty"` - // MinMemoryMb: Minimum memory required to use the Instance. Enforced at - // Instance creation and Instance start. - MinMemoryMb int64 `json:"minMemoryMb,omitempty"` - // ForceSendFields is a list of field names (e.g. "MinGuestCpuCount") to +// InstanceGroupManagerInstanceLifecyclePolicyOnRepair: Configuration for VM +// repairs in the MIG. +type InstanceGroupManagerInstanceLifecyclePolicyOnRepair struct { + // AllowChangingZone: Specifies whether the MIG can change a VM's zone during a + // repair. + // Valid values are: + // + // - NO (default): MIG cannot change a VM's zone during a + // repair. + // - YES: MIG can select a different zone for the VM during + // a repair. + // + // Possible values: + // "NO" - [Default] MIG cannot change a VM's zone during a repair. + // "YES" - MIG can select a different zone for the VM during a repair. + AllowChangingZone string `json:"allowChangingZone,omitempty"` + // ForceSendFields is a list of field names (e.g. "AllowChangingZone") to // unconditionally include in API requests. By default, fields with empty or // default values are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. ForceSendFields []string `json:"-"` - // NullFields is a list of field names (e.g. "MinGuestCpuCount") to include in + // NullFields is a list of field names (e.g. "AllowChangingZone") to include in // API requests with the JSON null value. By default, fields with empty values // are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } -func (s *LicenseResourceRequirements) MarshalJSON() ([]byte, error) { - type NoMethod LicenseResourceRequirements - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s InstanceGroupManagerInstanceLifecyclePolicyOnRepair) MarshalJSON() ([]byte, error) { + type NoMethod InstanceGroupManagerInstanceLifecyclePolicyOnRepair + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -type LicensesListResponse struct { - // Id: [Output Only] Unique identifier for the resource; defined by the server. +// InstanceGroupManagerList: [Output Only] A list of managed instance groups. +type InstanceGroupManagerList struct { + // Id: Output only. Unique identifier for the resource; defined by the server. Id string `json:"id,omitempty"` - // Items: A list of License resources. - Items []*License `json:"items,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. + // Items: A list of InstanceGroupManager resources. + Items []*InstanceGroupManager `json:"items,omitempty"` + // Kind: Output only. The resource type, which is always + // compute#instanceGroupManagerList for a + // list of managed instance groups. + 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 thanmaxResults, 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"` - // SelfLink: [Output Only] Server-defined URL for this resource. + // SelfLink: Output only. Server-defined URL for this resource. SelfLink string `json:"selfLink,omitempty"` - // Warning: [Output Only] Informational warning message. - Warning *LicensesListResponseWarning `json:"warning,omitempty"` + // Warning: Output only. Informational warning message. + Warning *InstanceGroupManagerListWarning `json:"warning,omitempty"` // ServerResponse contains the HTTP response code and headers from the server. googleapi.ServerResponse `json:"-"` @@ -23302,76 +28797,98 @@ type LicensesListResponse struct { NullFields []string `json:"-"` } -func (s *LicensesListResponse) MarshalJSON() ([]byte, error) { - type NoMethod LicensesListResponse - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s InstanceGroupManagerList) MarshalJSON() ([]byte, error) { + type NoMethod InstanceGroupManagerList + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -// LicensesListResponseWarning: [Output Only] Informational warning message. -type LicensesListResponseWarning 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. +// InstanceGroupManagerListWarning: Output only. Informational warning message. +type InstanceGroupManagerListWarning 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" - Warning about failed cleanup of transient changes made - // by a failed operation. + // by a failed + // operation. // "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was created. // "DEPRECATED_TYPE_USED" - When deploying and at least one of the resources - // has a type marked as deprecated + // has a type marked as + // deprecated // "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk that is // larger than image size. // "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the - // resources has a type marked as experimental + // resources has a type marked as + // experimental // "EXTERNAL_API_WARNING" - Warning that is present in an external api call // "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been - // overridden. Deprecated unused field. + // overridden. + // Deprecated unused field. // "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an injected // kernel, which is deprecated. // "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB" - A WEIGHTED_MAGLEV backend - // service is associated with a health check that is not of type - // HTTP/HTTPS/HTTP2. + // service is associated with a health check that is + // not of type HTTP/HTTPS/HTTP2. // "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a // exceedingly large number of resources // "LIST_OVERHEAD_QUOTA_EXCEED" - Resource can't be retrieved due to list - // overhead quota exceed which captures the amount of resources filtered out by + // overhead quota exceed + // which captures the amount of resources filtered out by // user-defined list filter. // "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is not - // assigned to an instance on the network. + // assigned to an instance on the + // network. // "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot ip // forward. // "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE" - The route's nextHopInstance - // URL refers to an instance that does not have an ipv6 interface on the same - // network as the route. + // URL refers to an instance that does not have an + // ipv6 interface on the same network as the route. // "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL refers to // an instance that does not exist. // "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance URL - // refers to an instance that is not on the same network as the route. + // refers to an instance that is not on the + // same network as the route. // "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not have a // status of RUNNING. // "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to continue - // the process despite the mentioned error. + // the process despite + // the mentioned error. // "NO_RESULTS_ON_PAGE" - No results are present on a particular list page. // "PARTIAL_SUCCESS" - Success is reported, but some results may be missing // due to errors + // "QUOTA_INFO_UNAVAILABLE" - Quota information is not available to client + // requests (e.g: + // regions.list). // "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource that - // requires a TOS they have not accepted. + // requires a TOS they have not + // accepted. // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a resource is // in use. // "RESOURCE_NOT_DELETED" - One or more of the resources set to auto-delete - // could not be deleted because they were in use. + // could not be deleted + // because they were in use. // "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is // ignored. // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in instance - // group manager is valid as such, but its application does not make a lot of - // sense, because it allows only single instance in instance group. + // group manager is valid as such, but + // its application does not make a lot of sense, because it allows only + // single instance in instance group. // "UNDECLARED_PROPERTIES" - When undeclared properties in the schema are // present // "UNREACHABLE" - A given scope cannot be reached. 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 []*LicensesListResponseWarningData `json:"data,omitempty"` + // Data: [Output Only] Metadata about this warning in key: + // value format. For example: + // + // "data": [ + // { + // "key": "scope", + // "value": "zones/us-east1-d" + // } + Data []*InstanceGroupManagerListWarningData `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 @@ -23387,19 +28904,22 @@ type LicensesListResponseWarning struct { NullFields []string `json:"-"` } -func (s *LicensesListResponseWarning) MarshalJSON() ([]byte, error) { - type NoMethod LicensesListResponseWarning - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s InstanceGroupManagerListWarning) MarshalJSON() ([]byte, error) { + type NoMethod InstanceGroupManagerListWarning + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -type LicensesListResponseWarningData 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). +type InstanceGroupManagerListWarningData 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"` @@ -23416,417 +28936,364 @@ type LicensesListResponseWarningData struct { NullFields []string `json:"-"` } -func (s *LicensesListResponseWarningData) MarshalJSON() ([]byte, error) { - type NoMethod LicensesListResponseWarningData - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s InstanceGroupManagerListWarningData) MarshalJSON() ([]byte, error) { + type NoMethod InstanceGroupManagerListWarningData + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -type LocalDisk struct { - // DiskCount: Specifies the number of such disks. - DiskCount int64 `json:"diskCount,omitempty"` - // DiskSizeGb: Specifies the size of the disk in base-2 GB. - DiskSizeGb int64 `json:"diskSizeGb,omitempty"` - // DiskType: Specifies the desired disk type on the node. This disk type must - // be a local storage type (e.g.: local-ssd). Note that for nodeTemplates, this - // should be the name of the disk type and not its URL. - DiskType string `json:"diskType,omitempty"` - // ForceSendFields is a list of field names (e.g. "DiskCount") to +// InstanceGroupManagerResizeRequest: InstanceGroupManagerResizeRequest +// represents a request to create +// a number of VMs: either immediately or by queuing the request for +// the +// specified time. This resize request is nested under InstanceGroupManager +// and the VMs created by this request are added to the +// owning +// InstanceGroupManager. +type InstanceGroupManagerResizeRequest struct { + // CreationTimestamp: Output only. The creation timestamp for this resize + // request inRFC3339 + // text format. + CreationTimestamp string `json:"creationTimestamp,omitempty"` + // Description: An optional description of this resource. + Description string `json:"description,omitempty"` + // Id: Output only. A unique identifier for this resource type. The server + // generates this + // identifier. + Id uint64 `json:"id,omitempty,string"` + // Instances: The names of instances to be created by this resize request. The + // number of + // names specified determines the number of instances to create. The + // group's + // target size will be increased by this number. This field cannot be + // used + // together with 'resize_by'. + Instances []*PerInstanceConfig `json:"instances,omitempty"` + // Kind: Output only. The resource type, which is + // alwayscompute#instanceGroupManagerResizeRequest for resize requests. + Kind string `json:"kind,omitempty"` + // Name: The name of this resize request. The name must be 1-63 + // characters + // long, and comply withRFC1035. + Name string `json:"name,omitempty"` + // Region: Output only. The URL of a region + // where the resize request is located. Populated only for regional + // resize + // requests. + Region string `json:"region,omitempty"` + // RequestedRunDuration: Requested run duration for instances that will be + // created by this request. + // At the end of the run duration instance will be deleted. + RequestedRunDuration *Duration `json:"requestedRunDuration,omitempty"` + // ResizeBy: The number of instances to be created by this resize request. The + // group's + // target size will be increased by this number. This field cannot be + // used + // together with 'instances'. + ResizeBy int64 `json:"resizeBy,omitempty"` + // SelfLink: Output only. The URL for this resize request. The server defines + // this URL. + SelfLink string `json:"selfLink,omitempty"` + // SelfLinkWithId: Output only. Server-defined URL for this resource with the + // resource id. + SelfLinkWithId string `json:"selfLinkWithId,omitempty"` + // State: Output only. Current state of the request. + // + // Possible values: + // "ACCEPTED" - The request was created successfully and was accepted for + // provisioning + // when the capacity becomes available. + // "CANCELLED" - The request is cancelled. + // "CREATING" - Resize request is being created and may still fail creation. + // "FAILED" - The request failed before or during provisioning. If the + // request fails + // during provisioning, any VMs that were created during provisioning + // are + // rolled back and removed from the MIG. + // "STATE_UNSPECIFIED" - Default value. This value should never be returned. + // "SUCCEEDED" - The request succeeded. + State string `json:"state,omitempty"` + // Status: Output only. Status of the request. + Status *InstanceGroupManagerResizeRequestStatus `json:"status,omitempty"` + // Zone: Output only. The URL of a zone + // where the resize request is located. Populated only for zonal + // resize + // requests. + Zone string `json:"zone,omitempty"` + + // ServerResponse contains the HTTP response code and headers from the server. + googleapi.ServerResponse `json:"-"` + // ForceSendFields is a list of field names (e.g. "CreationTimestamp") to // unconditionally include in API requests. By default, fields with empty or // default values are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. ForceSendFields []string `json:"-"` - // NullFields is a list of field names (e.g. "DiskCount") to include in API - // requests with the JSON null value. By default, fields with empty values are - // omitted from API requests. See + // NullFields is a list of field names (e.g. "CreationTimestamp") to include in + // API requests with the JSON null value. By default, fields with empty values + // are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } -func (s *LocalDisk) MarshalJSON() ([]byte, error) { - type NoMethod LocalDisk - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s InstanceGroupManagerResizeRequest) MarshalJSON() ([]byte, error) { + type NoMethod InstanceGroupManagerResizeRequest + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -// LocalizedMessage: Provides a localized error message that is safe to return -// to the user which can be attached to an RPC error. -type LocalizedMessage struct { - // Locale: The locale used following the specification defined at - // https://www.rfc-editor.org/rfc/bcp/bcp47.txt. Examples are: "en-US", - // "fr-CH", "es-MX" - Locale string `json:"locale,omitempty"` - // Message: The localized error message in the above locale. - Message string `json:"message,omitempty"` - // ForceSendFields is a list of field names (e.g. "Locale") to unconditionally +type InstanceGroupManagerResizeRequestStatus struct { + // Error: Output only. Fatal errors encountered during the queueing or + // provisioning phases of + // the ResizeRequest that caused the transition to the FAILED state. + // Contrary to the last_attempt errors, this field is final and errors + // are + // never removed from here, as the ResizeRequest is not going to retry. + Error *InstanceGroupManagerResizeRequestStatusError `json:"error,omitempty"` + // LastAttempt: Output only. Information about the last attempt to fulfill the + // request. The value is + // temporary since the ResizeRequest can retry, as long as it's still + // active + // and the last attempt value can either be cleared or replaced with + // a + // different error. Since ResizeRequest retries infrequently, the value may + // be stale and no longer show an active problem. The value is cleared + // when + // ResizeRequest transitions to the final state (becomes inactive). If + // the + // final state is FAILED the error describing it will be stored in the + // "error" field only. + LastAttempt *InstanceGroupManagerResizeRequestStatusLastAttempt `json:"lastAttempt,omitempty"` + // ForceSendFields is a list of field names (e.g. "Error") to unconditionally // include in API requests. By default, fields with empty or default values are // omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. ForceSendFields []string `json:"-"` - // NullFields is a list of field names (e.g. "Locale") to include in API + // NullFields is a list of field names (e.g. "Error") to include in API // requests with the JSON null value. By default, fields with empty values are // omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } -func (s *LocalizedMessage) MarshalJSON() ([]byte, error) { - type NoMethod LocalizedMessage - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s InstanceGroupManagerResizeRequestStatus) MarshalJSON() ([]byte, error) { + type NoMethod InstanceGroupManagerResizeRequestStatus + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -// LocationPolicy: Configuration for location policy among multiple possible -// locations (e.g. preferences for zone selection among zones in a single -// region). -type LocationPolicy struct { - // Locations: Location configurations mapped by location name. Currently only - // zone names are supported and must be represented as valid internal URLs, - // such as zones/us-central1-a. - Locations map[string]LocationPolicyLocation `json:"locations,omitempty"` - // TargetShape: Strategy for distributing VMs across zones in a region. - // - // Possible values: - // "ANY" - GCE picks zones for creating VM instances to fulfill the requested - // number of VMs within present resource constraints and to maximize - // utilization of unused zonal reservations. Recommended for batch workloads - // that do not require high availability. - // "ANY_SINGLE_ZONE" - GCE always selects a single zone for all the VMs, - // optimizing for resource quotas, available reservations and general capacity. - // Recommended for batch workloads that cannot tollerate distribution over - // multiple zones. This the default shape in Bulk Insert and Capacity Advisor - // APIs. - // "BALANCED" - GCE prioritizes acquisition of resources, scheduling VMs in - // zones where resources are available while distributing VMs as evenly as - // possible across allowed zones to minimize the impact of zonal failure. - // Recommended for highly available serving workloads. - TargetShape string `json:"targetShape,omitempty"` - // ForceSendFields is a list of field names (e.g. "Locations") to - // unconditionally include in API requests. By default, fields with empty or - // default values are omitted from API requests. See +// InstanceGroupManagerResizeRequestStatusError: Output only. Fatal errors +// encountered during the queueing or provisioning phases of +// the ResizeRequest that caused the transition to the FAILED state. +// Contrary to the last_attempt errors, this field is final and errors +// are +// never removed from here, as the ResizeRequest is not going to retry. +type InstanceGroupManagerResizeRequestStatusError struct { + // Errors: [Output Only] The array of errors encountered while processing + // this + // operation. + Errors []*InstanceGroupManagerResizeRequestStatusErrorErrors `json:"errors,omitempty"` + // ForceSendFields is a list of field names (e.g. "Errors") to unconditionally + // include in API requests. By default, fields with empty or default values are + // omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. ForceSendFields []string `json:"-"` - // NullFields is a list of field names (e.g. "Locations") to include in API + // NullFields is a list of field names (e.g. "Errors") to include in API // requests with the JSON null value. By default, fields with empty values are // omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } -func (s *LocationPolicy) MarshalJSON() ([]byte, error) { - type NoMethod LocationPolicy - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s InstanceGroupManagerResizeRequestStatusError) MarshalJSON() ([]byte, error) { + type NoMethod InstanceGroupManagerResizeRequestStatusError + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -type LocationPolicyLocation struct { - // Constraints: Constraints that the caller requires on the result distribution - // in this zone. - Constraints *LocationPolicyLocationConstraints `json:"constraints,omitempty"` - // Preference: Preference for a given location. Set to either ALLOW or DENY. - // - // Possible values: - // "ALLOW" - Location is allowed for use. - // "DENY" - Location is prohibited. - // "PREFERENCE_UNSPECIFIED" - Default value, unused. - Preference string `json:"preference,omitempty"` - // ForceSendFields is a list of field names (e.g. "Constraints") to - // unconditionally include in API requests. By default, fields with empty or - // default values are omitted from API requests. See +type InstanceGroupManagerResizeRequestStatusErrorErrors struct { + // Code: [Output Only] The error type identifier for this error. + Code string `json:"code,omitempty"` + // ErrorDetails: [Output Only] An optional list of messages that contain the + // error + // details. There is a set of defined message types to use for + // providing + // details.The syntax depends on the error code. For example, + // QuotaExceededInfo will have details when the error code is + // QUOTA_EXCEEDED. + ErrorDetails []*InstanceGroupManagerResizeRequestStatusErrorErrorsErrorDetails `json:"errorDetails,omitempty"` + // Location: [Output Only] Indicates the field in the request that caused the + // error. + // This property is optional. + Location string `json:"location,omitempty"` + // Message: [Output Only] An optional, human-readable error message. + 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 or default values are + // omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. ForceSendFields []string `json:"-"` - // NullFields is a list of field names (e.g. "Constraints") to include in API - // requests with the JSON null value. By default, fields with empty values are - // omitted from API requests. See + // 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. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } -func (s *LocationPolicyLocation) MarshalJSON() ([]byte, error) { - type NoMethod LocationPolicyLocation - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s InstanceGroupManagerResizeRequestStatusErrorErrors) MarshalJSON() ([]byte, error) { + type NoMethod InstanceGroupManagerResizeRequestStatusErrorErrors + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -// LocationPolicyLocationConstraints: Per-zone constraints on location policy -// for this zone. -type LocationPolicyLocationConstraints struct { - // MaxCount: Maximum number of items that are allowed to be placed in this - // zone. The value must be non-negative. - MaxCount int64 `json:"maxCount,omitempty"` - // ForceSendFields is a list of field names (e.g. "MaxCount") to +type InstanceGroupManagerResizeRequestStatusErrorErrorsErrorDetails struct { + ErrorInfo *ErrorInfo `json:"errorInfo,omitempty"` + Help *Help `json:"help,omitempty"` + LocalizedMessage *LocalizedMessage `json:"localizedMessage,omitempty"` + QuotaInfo *QuotaExceededInfo `json:"quotaInfo,omitempty"` + // ForceSendFields is a list of field names (e.g. "ErrorInfo") to // unconditionally include in API requests. By default, fields with empty or // default values are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. ForceSendFields []string `json:"-"` - // NullFields is a list of field names (e.g. "MaxCount") to include in API + // NullFields is a list of field names (e.g. "ErrorInfo") to include in API // requests with the JSON null value. By default, fields with empty values are // omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } -func (s *LocationPolicyLocationConstraints) MarshalJSON() ([]byte, error) { - type NoMethod LocationPolicyLocationConstraints - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s InstanceGroupManagerResizeRequestStatusErrorErrorsErrorDetails) MarshalJSON() ([]byte, error) { + type NoMethod InstanceGroupManagerResizeRequestStatusErrorErrorsErrorDetails + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -// LogConfig: This is deprecated and has no effect. Do not use. -type LogConfig struct { - // CloudAudit: This is deprecated and has no effect. Do not use. - CloudAudit *LogConfigCloudAuditOptions `json:"cloudAudit,omitempty"` - // Counter: This is deprecated and has no effect. Do not use. - Counter *LogConfigCounterOptions `json:"counter,omitempty"` - // DataAccess: This is deprecated and has no effect. Do not use. - DataAccess *LogConfigDataAccessOptions `json:"dataAccess,omitempty"` - // ForceSendFields is a list of field names (e.g. "CloudAudit") to - // unconditionally include in API requests. By default, fields with empty or - // default values are omitted from API requests. See +type InstanceGroupManagerResizeRequestStatusLastAttempt struct { + // Error: Output only. Errors that prevented the ResizeRequest to be fulfilled. + Error *InstanceGroupManagerResizeRequestStatusLastAttemptError `json:"error,omitempty"` + // ForceSendFields is a list of field names (e.g. "Error") to unconditionally + // include in API requests. By default, fields with empty or default values are + // omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. ForceSendFields []string `json:"-"` - // NullFields is a list of field names (e.g. "CloudAudit") to include in API + // NullFields is a list of field names (e.g. "Error") to include in API // requests with the JSON null value. By default, fields with empty values are // omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } -func (s *LogConfig) MarshalJSON() ([]byte, error) { - type NoMethod LogConfig - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) -} - -// LogConfigCloudAuditOptions: This is deprecated and has no effect. Do not -// use. -type LogConfigCloudAuditOptions struct { - // AuthorizationLoggingOptions: This is deprecated and has no effect. Do not - // use. - AuthorizationLoggingOptions *AuthorizationLoggingOptions `json:"authorizationLoggingOptions,omitempty"` - // LogName: This is deprecated and has no effect. Do not use. - // - // Possible values: - // "ADMIN_ACTIVITY" - This is deprecated and has no effect. Do not use. - // "DATA_ACCESS" - This is deprecated and has no effect. Do not use. - // "UNSPECIFIED_LOG_NAME" - This is deprecated and has no effect. Do not use. - LogName string `json:"logName,omitempty"` - // ForceSendFields is a list of field names (e.g. - // "AuthorizationLoggingOptions") to unconditionally include in API requests. - // By default, fields with empty or default values are omitted from API - // requests. See https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields - // for more details. - ForceSendFields []string `json:"-"` - // NullFields is a list of field names (e.g. "AuthorizationLoggingOptions") to - // include in API requests with the JSON null value. By default, fields with - // empty values are omitted from API requests. See - // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. - NullFields []string `json:"-"` -} - -func (s *LogConfigCloudAuditOptions) MarshalJSON() ([]byte, error) { - type NoMethod LogConfigCloudAuditOptions - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s InstanceGroupManagerResizeRequestStatusLastAttempt) MarshalJSON() ([]byte, error) { + type NoMethod InstanceGroupManagerResizeRequestStatusLastAttempt + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -// LogConfigCounterOptions: This is deprecated and has no effect. Do not use. -type LogConfigCounterOptions struct { - // CustomFields: This is deprecated and has no effect. Do not use. - CustomFields []*LogConfigCounterOptionsCustomField `json:"customFields,omitempty"` - // Field: This is deprecated and has no effect. Do not use. - Field string `json:"field,omitempty"` - // Metric: This is deprecated and has no effect. Do not use. - Metric string `json:"metric,omitempty"` - // ForceSendFields is a list of field names (e.g. "CustomFields") to - // unconditionally include in API requests. By default, fields with empty or - // default values are omitted from API requests. See +// InstanceGroupManagerResizeRequestStatusLastAttemptError: Output only. Errors +// that prevented the ResizeRequest to be fulfilled. +type InstanceGroupManagerResizeRequestStatusLastAttemptError struct { + // Errors: [Output Only] The array of errors encountered while processing + // this + // operation. + Errors []*InstanceGroupManagerResizeRequestStatusLastAttemptErrorErrors `json:"errors,omitempty"` + // ForceSendFields is a list of field names (e.g. "Errors") to unconditionally + // include in API requests. By default, fields with empty or default values are + // omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. ForceSendFields []string `json:"-"` - // NullFields is a list of field names (e.g. "CustomFields") to include in API + // NullFields is a list of field names (e.g. "Errors") to include in API // requests with the JSON null value. By default, fields with empty values are // omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } -func (s *LogConfigCounterOptions) MarshalJSON() ([]byte, error) { - type NoMethod LogConfigCounterOptions - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s InstanceGroupManagerResizeRequestStatusLastAttemptError) MarshalJSON() ([]byte, error) { + type NoMethod InstanceGroupManagerResizeRequestStatusLastAttemptError + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -// LogConfigCounterOptionsCustomField: This is deprecated and has no effect. Do -// not use. -type LogConfigCounterOptionsCustomField struct { - // Name: This is deprecated and has no effect. Do not use. - Name string `json:"name,omitempty"` - // Value: This is deprecated and has no effect. Do not use. - Value string `json:"value,omitempty"` - // ForceSendFields is a list of field names (e.g. "Name") to unconditionally +type InstanceGroupManagerResizeRequestStatusLastAttemptErrorErrors struct { + // Code: [Output Only] The error type identifier for this error. + Code string `json:"code,omitempty"` + // ErrorDetails: [Output Only] An optional list of messages that contain the + // error + // details. There is a set of defined message types to use for + // providing + // details.The syntax depends on the error code. For example, + // QuotaExceededInfo will have details when the error code is + // QUOTA_EXCEEDED. + ErrorDetails []*InstanceGroupManagerResizeRequestStatusLastAttemptErrorErrorsErrorDetails `json:"errorDetails,omitempty"` + // Location: [Output Only] Indicates the field in the request that caused the + // error. + // This property is optional. + Location string `json:"location,omitempty"` + // Message: [Output Only] An optional, human-readable error message. + 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 or default values are // omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. ForceSendFields []string `json:"-"` - // NullFields is a list of field names (e.g. "Name") to include in API requests + // 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. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } -func (s *LogConfigCounterOptionsCustomField) MarshalJSON() ([]byte, error) { - type NoMethod LogConfigCounterOptionsCustomField - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) -} - -// LogConfigDataAccessOptions: This is deprecated and has no effect. Do not -// use. -type LogConfigDataAccessOptions struct { - // LogMode: This is deprecated and has no effect. Do not use. - // - // Possible values: - // "LOG_FAIL_CLOSED" - This is deprecated and has no effect. Do not use. - // "LOG_MODE_UNSPECIFIED" - This is deprecated and has no effect. Do not use. - LogMode string `json:"logMode,omitempty"` - // ForceSendFields is a list of field names (e.g. "LogMode") to unconditionally - // include in API requests. By default, fields with empty or default values are - // omitted from API requests. See - // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more - // details. - ForceSendFields []string `json:"-"` - // NullFields is a list of field names (e.g. "LogMode") to include in API - // requests with the JSON null value. By default, fields with empty values are - // omitted from API requests. See - // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. - NullFields []string `json:"-"` -} - -func (s *LogConfigDataAccessOptions) MarshalJSON() ([]byte, error) { - type NoMethod LogConfigDataAccessOptions - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s InstanceGroupManagerResizeRequestStatusLastAttemptErrorErrors) MarshalJSON() ([]byte, error) { + type NoMethod InstanceGroupManagerResizeRequestStatusLastAttemptErrorErrors + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -// MachineImage: Represents a machine image resource. A machine image is a -// Compute Engine resource that stores all the configuration, metadata, -// permissions, and data from one or more disks required to create a Virtual -// machine (VM) instance. For more information, see Machine images. -type MachineImage struct { - // CreationTimestamp: [Output Only] The creation timestamp for this machine - // image in RFC3339 text format. - CreationTimestamp string `json:"creationTimestamp,omitempty"` - // Description: An optional description of this resource. Provide this property - // when you create the resource. - Description string `json:"description,omitempty"` - // GuestFlush: [Input Only] Whether to attempt an application consistent - // machine image by informing the OS to prepare for the snapshot process. - GuestFlush bool `json:"guestFlush,omitempty"` - // Id: [Output Only] A unique identifier for this machine image. The server - // defines this identifier. - Id uint64 `json:"id,omitempty,string"` - // InstanceProperties: [Output Only] Properties of source instance - InstanceProperties *InstanceProperties `json:"instanceProperties,omitempty"` - // Kind: [Output Only] The resource type, which is always compute#machineImage - // for machine image. - Kind string `json:"kind,omitempty"` - // MachineImageEncryptionKey: Encrypts the machine image using a - // customer-supplied encryption key. After you encrypt a machine image using a - // customer-supplied key, you must provide the same key if you use the machine - // image later. For example, you must provide the encryption key when you - // create an instance from the encrypted machine image in a future request. - // Customer-supplied encryption keys do not protect access to metadata of the - // machine image. If you do not provide an encryption key when creating the - // machine image, then the machine image will be encrypted using an - // automatically generated key and you do not need to provide a key to use the - // machine image later. - MachineImageEncryptionKey *CustomerEncryptionKey `json:"machineImageEncryptionKey,omitempty"` - // Name: Name of the resource; provided by the client when the resource is - // created. The name must be 1-63 characters long, and comply with RFC1035. - // 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. - Name string `json:"name,omitempty"` - // SatisfiesPzi: Output only. Reserved for future use. - SatisfiesPzi bool `json:"satisfiesPzi,omitempty"` - // SatisfiesPzs: [Output Only] Reserved for future use. - SatisfiesPzs bool `json:"satisfiesPzs,omitempty"` - // SavedDisks: An array of Machine Image specific properties for disks attached - // to the source instance - SavedDisks []*SavedDisk `json:"savedDisks,omitempty"` - // SelfLink: [Output Only] The URL for this machine image. The server defines - // this URL. - SelfLink string `json:"selfLink,omitempty"` - // SourceDiskEncryptionKeys: [Input Only] The customer-supplied encryption key - // of the disks attached to the source instance. Required if the source disk is - // protected by a customer-supplied encryption key. - SourceDiskEncryptionKeys []*SourceDiskEncryptionKey `json:"sourceDiskEncryptionKeys,omitempty"` - // SourceInstance: The source instance used to create the machine image. 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"` - // SourceInstanceProperties: [Output Only] DEPRECATED: Please use - // instance_properties instead for source instance related properties. New - // properties will not be added to this field. - SourceInstanceProperties *SourceInstanceProperties `json:"sourceInstanceProperties,omitempty"` - // Status: [Output Only] The status of the machine image. One of the following - // values: INVALID, CREATING, READY, DELETING, and UPLOADING. - // - // Possible values: - // "CREATING" - // "DELETING" - // "INVALID" - // "READY" - // "UPLOADING" - Status string `json:"status,omitempty"` - // StorageLocations: The regional or multi-regional Cloud Storage bucket - // location where the machine image is stored. - StorageLocations []string `json:"storageLocations,omitempty"` - // TotalStorageBytes: [Output Only] Total size of the storage used by the - // machine image. - TotalStorageBytes int64 `json:"totalStorageBytes,omitempty,string"` - - // ServerResponse contains the HTTP response code and headers from the server. - googleapi.ServerResponse `json:"-"` - // ForceSendFields is a list of field names (e.g. "CreationTimestamp") to +type InstanceGroupManagerResizeRequestStatusLastAttemptErrorErrorsErrorDetails struct { + ErrorInfo *ErrorInfo `json:"errorInfo,omitempty"` + Help *Help `json:"help,omitempty"` + LocalizedMessage *LocalizedMessage `json:"localizedMessage,omitempty"` + QuotaInfo *QuotaExceededInfo `json:"quotaInfo,omitempty"` + // ForceSendFields is a list of field names (e.g. "ErrorInfo") to // unconditionally include in API requests. By default, fields with empty or // default values are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. ForceSendFields []string `json:"-"` - // NullFields is a list of field names (e.g. "CreationTimestamp") to include in - // API requests with the JSON null value. By default, fields with empty values - // are omitted from API requests. See + // NullFields is a list of field names (e.g. "ErrorInfo") to include in API + // requests with the JSON null value. By default, fields with empty values are + // omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } -func (s *MachineImage) MarshalJSON() ([]byte, error) { - type NoMethod MachineImage - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s InstanceGroupManagerResizeRequestStatusLastAttemptErrorErrorsErrorDetails) MarshalJSON() ([]byte, error) { + type NoMethod InstanceGroupManagerResizeRequestStatusLastAttemptErrorErrorsErrorDetails + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -// MachineImageList: A list of machine images. -type MachineImageList struct { - // Id: [Output Only] Unique identifier for the resource; defined by the server. +// InstanceGroupManagerResizeRequestsListResponse: [Output Only] A list of +// resize requests. +type InstanceGroupManagerResizeRequestsListResponse struct { + // Id: Output only. Unique identifier for the resource; defined by the server. Id string `json:"id,omitempty"` - // Items: A list of MachineImage resources. - Items []*MachineImage `json:"items,omitempty"` - // Kind: [Output Only] The resource type, which is always - // compute#machineImagesListResponse for machine image lists. + // Items: A list of resize request resources. + Items []*InstanceGroupManagerResizeRequest `json:"items,omitempty"` + // Kind: Output only. Type of the resource. + // Alwayscompute#instanceGroupManagerResizeRequestList for + // a list of resize requests. 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: 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 thenextPageToken as + // a value for the query parameterpageToken in the next list + // request. + // Subsequent list requests will have their own nextPageToken to + // continue paging through the results. NextPageToken string `json:"nextPageToken,omitempty"` - // SelfLink: [Output Only] Server-defined URL for this resource. + // SelfLink: Output only. Server-defined URL for this resource. SelfLink string `json:"selfLink,omitempty"` - // Warning: [Output Only] Informational warning message. - Warning *MachineImageListWarning `json:"warning,omitempty"` + // Warning: Output only. Informational warning message. + Warning *InstanceGroupManagerResizeRequestsListResponseWarning `json:"warning,omitempty"` // ServerResponse contains the HTTP response code and headers from the server. googleapi.ServerResponse `json:"-"` @@ -23843,76 +29310,99 @@ type MachineImageList struct { NullFields []string `json:"-"` } -func (s *MachineImageList) MarshalJSON() ([]byte, error) { - type NoMethod MachineImageList - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s InstanceGroupManagerResizeRequestsListResponse) MarshalJSON() ([]byte, error) { + type NoMethod InstanceGroupManagerResizeRequestsListResponse + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -// MachineImageListWarning: [Output Only] Informational warning message. -type MachineImageListWarning 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. +// InstanceGroupManagerResizeRequestsListResponseWarning: Output only. +// Informational warning message. +type InstanceGroupManagerResizeRequestsListResponseWarning 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" - Warning about failed cleanup of transient changes made - // by a failed operation. + // by a failed + // operation. // "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was created. // "DEPRECATED_TYPE_USED" - When deploying and at least one of the resources - // has a type marked as deprecated + // has a type marked as + // deprecated // "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk that is // larger than image size. // "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the - // resources has a type marked as experimental + // resources has a type marked as + // experimental // "EXTERNAL_API_WARNING" - Warning that is present in an external api call // "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been - // overridden. Deprecated unused field. + // overridden. + // Deprecated unused field. // "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an injected // kernel, which is deprecated. // "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB" - A WEIGHTED_MAGLEV backend - // service is associated with a health check that is not of type - // HTTP/HTTPS/HTTP2. + // service is associated with a health check that is + // not of type HTTP/HTTPS/HTTP2. // "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a // exceedingly large number of resources // "LIST_OVERHEAD_QUOTA_EXCEED" - Resource can't be retrieved due to list - // overhead quota exceed which captures the amount of resources filtered out by + // overhead quota exceed + // which captures the amount of resources filtered out by // user-defined list filter. // "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is not - // assigned to an instance on the network. + // assigned to an instance on the + // network. // "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot ip // forward. // "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE" - The route's nextHopInstance - // URL refers to an instance that does not have an ipv6 interface on the same - // network as the route. + // URL refers to an instance that does not have an + // ipv6 interface on the same network as the route. // "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL refers to // an instance that does not exist. // "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance URL - // refers to an instance that is not on the same network as the route. + // refers to an instance that is not on the + // same network as the route. // "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not have a // status of RUNNING. // "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to continue - // the process despite the mentioned error. + // the process despite + // the mentioned error. // "NO_RESULTS_ON_PAGE" - No results are present on a particular list page. // "PARTIAL_SUCCESS" - Success is reported, but some results may be missing // due to errors + // "QUOTA_INFO_UNAVAILABLE" - Quota information is not available to client + // requests (e.g: + // regions.list). // "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource that - // requires a TOS they have not accepted. + // requires a TOS they have not + // accepted. // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a resource is // in use. // "RESOURCE_NOT_DELETED" - One or more of the resources set to auto-delete - // could not be deleted because they were in use. + // could not be deleted + // because they were in use. // "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is // ignored. // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in instance - // group manager is valid as such, but its application does not make a lot of - // sense, because it allows only single instance in instance group. + // group manager is valid as such, but + // its application does not make a lot of sense, because it allows only + // single instance in instance group. // "UNDECLARED_PROPERTIES" - When undeclared properties in the schema are // present // "UNREACHABLE" - A given scope cannot be reached. 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 []*MachineImageListWarningData `json:"data,omitempty"` + // Data: [Output Only] Metadata about this warning in key: + // value format. For example: + // + // "data": [ + // { + // "key": "scope", + // "value": "zones/us-east1-d" + // } + Data []*InstanceGroupManagerResizeRequestsListResponseWarningData `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 @@ -23928,19 +29418,22 @@ type MachineImageListWarning struct { NullFields []string `json:"-"` } -func (s *MachineImageListWarning) MarshalJSON() ([]byte, error) { - type NoMethod MachineImageListWarning - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s InstanceGroupManagerResizeRequestsListResponseWarning) MarshalJSON() ([]byte, error) { + type NoMethod InstanceGroupManagerResizeRequestsListResponseWarning + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -type MachineImageListWarningData 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). +type InstanceGroupManagerResizeRequestsListResponseWarningData 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"` @@ -23957,830 +29450,823 @@ type MachineImageListWarningData struct { NullFields []string `json:"-"` } -func (s *MachineImageListWarningData) MarshalJSON() ([]byte, error) { - type NoMethod MachineImageListWarningData - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s InstanceGroupManagerResizeRequestsListResponseWarningData) MarshalJSON() ([]byte, error) { + type NoMethod InstanceGroupManagerResizeRequestsListResponseWarningData + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -// MachineType: Represents a Machine Type resource. You can use specific -// machine types for your VM instances based on performance and pricing -// requirements. For more information, read Machine Types. -type MachineType struct { - // Accelerators: [Output Only] A list of accelerator configurations assigned to - // this machine type. - Accelerators []*MachineTypeAccelerators `json:"accelerators,omitempty"` - // CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text format. - CreationTimestamp string `json:"creationTimestamp,omitempty"` - // Deprecated -- [Output Only] The deprecation status associated with this - // machine type. Only applicable if the machine type is unavailable. - Deprecated *DeprecationStatus `json:"deprecated,omitempty"` - // Description: [Output Only] An optional textual description of the resource. - Description string `json:"description,omitempty"` - // GuestCpus: [Output Only] The number of virtual CPUs that are available to - // the instance. - GuestCpus int64 `json:"guestCpus,omitempty"` - // Id: [Output Only] The unique identifier for the resource. This identifier is - // defined by the server. - Id uint64 `json:"id,omitempty,string"` - // ImageSpaceGb: [Deprecated] This property is deprecated and will never be - // populated with any relevant values. - ImageSpaceGb int64 `json:"imageSpaceGb,omitempty"` - // IsSharedCpu: [Output Only] Whether this machine type has a shared CPU. See - // Shared-core machine types for more information. - IsSharedCpu bool `json:"isSharedCpu,omitempty"` - // Kind: [Output Only] The type of the resource. Always compute#machineType for - // machine types. - Kind string `json:"kind,omitempty"` - // MaximumPersistentDisks: [Output Only] Maximum persistent disks allowed. - MaximumPersistentDisks int64 `json:"maximumPersistentDisks,omitempty"` - // MaximumPersistentDisksSizeGb: [Output Only] Maximum total persistent disks - // size (GB) allowed. - MaximumPersistentDisksSizeGb int64 `json:"maximumPersistentDisksSizeGb,omitempty,string"` - // MemoryMb: [Output Only] The amount of physical memory available to the - // instance, defined in MB. - MemoryMb int64 `json:"memoryMb,omitempty"` - // Name: [Output Only] Name of the resource. - Name string `json:"name,omitempty"` - // ScratchDisks: [Output Only] A list of extended scratch disks assigned to the - // instance. - ScratchDisks []*MachineTypeScratchDisks `json:"scratchDisks,omitempty"` - // SelfLink: [Output Only] Server-defined URL for the resource. - SelfLink string `json:"selfLink,omitempty"` - // Zone: [Output Only] The name of the zone where the machine type resides, - // such as us-central1-a. - Zone string `json:"zone,omitempty"` - - // ServerResponse contains the HTTP response code and headers from the server. - googleapi.ServerResponse `json:"-"` - // ForceSendFields is a list of field names (e.g. "Accelerators") to +type InstanceGroupManagerResourcePolicies struct { + // WorkloadPolicy: The URL of the workload policy that is specified for this + // managed + // instance group. + // It can be a full or partial URL. For example, the following are + // all valid URLs to a workload policy: + // + // + // - + // https://www.googleapis.com/compute/v1/projects/project/regions/region/resourcePolicies/resourcePolicy + // - projects/project/regions/region/resourcePolicies/resourcePolicy + // - regions/region/resourcePolicies/resourcePolicy + WorkloadPolicy string `json:"workloadPolicy,omitempty"` + // ForceSendFields is a list of field names (e.g. "WorkloadPolicy") to // unconditionally include in API requests. By default, fields with empty or // default values are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. ForceSendFields []string `json:"-"` - // NullFields is a list of field names (e.g. "Accelerators") to include in API - // requests with the JSON null value. By default, fields with empty values are - // omitted from API requests. See + // NullFields is a list of field names (e.g. "WorkloadPolicy") to include in + // API requests with the JSON null value. By default, fields with empty values + // are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } -func (s *MachineType) MarshalJSON() ([]byte, error) { - type NoMethod MachineType - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s InstanceGroupManagerResourcePolicies) MarshalJSON() ([]byte, error) { + type NoMethod InstanceGroupManagerResourcePolicies + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -type MachineTypeAccelerators struct { - // GuestAcceleratorCount: Number of accelerator cards exposed to the guest. - GuestAcceleratorCount int64 `json:"guestAcceleratorCount,omitempty"` - // GuestAcceleratorType: The accelerator type resource name, not a full URL, - // e.g. nvidia-tesla-t4. - GuestAcceleratorType string `json:"guestAcceleratorType,omitempty"` - // ForceSendFields is a list of field names (e.g. "GuestAcceleratorCount") to +type InstanceGroupManagerStandbyPolicy struct { + // InitialDelaySec: Specifies the number of seconds that the MIG should wait to + // suspend or + // stop a VM after that VM was created. The initial delay gives + // the + // initialization script the time to prepare your VM for a quick scale out. + // The value of initial delay must be between 0 and 3600 seconds. The + // default value is 0. + InitialDelaySec int64 `json:"initialDelaySec,omitempty"` + // Mode: Defines how a MIG resumes or starts VMs from a standby pool when + // the + // group scales out. The default mode is `MANUAL`. + // + // Possible values: + // "MANUAL" - MIG does not automatically resume or start VMs in the standby + // pool when + // the group scales out. + // "SCALE_OUT_POOL" - MIG automatically resumes or starts VMs in the standby + // pool when the + // group scales out, and replenishes the standby pool afterwards. + Mode string `json:"mode,omitempty"` + // ForceSendFields is a list of field names (e.g. "InitialDelaySec") to // unconditionally include in API requests. By default, fields with empty or // default values are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. ForceSendFields []string `json:"-"` - // NullFields is a list of field names (e.g. "GuestAcceleratorCount") to - // include in API requests with the JSON null value. By default, fields with - // empty values are omitted from API requests. See + // NullFields is a list of field names (e.g. "InitialDelaySec") to include in + // API requests with the JSON null value. By default, fields with empty values + // are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } -func (s *MachineTypeAccelerators) MarshalJSON() ([]byte, error) { - type NoMethod MachineTypeAccelerators - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s InstanceGroupManagerStandbyPolicy) MarshalJSON() ([]byte, error) { + type NoMethod InstanceGroupManagerStandbyPolicy + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -type MachineTypeScratchDisks struct { - // DiskGb: Size of the scratch disk, defined in GB. - DiskGb int64 `json:"diskGb,omitempty"` - // ForceSendFields is a list of field names (e.g. "DiskGb") to unconditionally - // include in API requests. By default, fields with empty or default values are - // omitted from API requests. See +type InstanceGroupManagerStatus struct { + // AllInstancesConfig: Output only. Status of all-instances configuration on + // the group. + AllInstancesConfig *InstanceGroupManagerStatusAllInstancesConfig `json:"allInstancesConfig,omitempty"` + // AppliedAcceleratorTopologies: Output only. The accelerator topology applied + // to this MIG. + // Currently only one accelerator topology is supported. + AppliedAcceleratorTopologies []*InstanceGroupManagerStatusAcceleratorTopology `json:"appliedAcceleratorTopologies,omitempty"` + // Autoscaler: Output only. The URL of theAutoscaler + // that targets this instance group manager. + Autoscaler string `json:"autoscaler,omitempty"` + // BulkInstanceOperation: Output only. The status of bulk instance operation. + BulkInstanceOperation *InstanceGroupManagerStatusBulkInstanceOperation `json:"bulkInstanceOperation,omitempty"` + // CurrentInstanceStatuses: Output only. The list of instance statuses and the + // number of instances + // in this managed instance group that have the status. Currently only + // shown + // for TPU MIGs + CurrentInstanceStatuses *InstanceGroupManagerStatusInstanceStatusSummary `json:"currentInstanceStatuses,omitempty"` + // IsStable: Output only. A bit indicating whether the managed instance group + // is in a + // stable state. A stable state means that: none of the instances in + // the + // managed instance group is currently undergoing any type of change + // (for + // example, creation, restart, or deletion); no future changes are + // scheduled + // for instances in the managed instance group; and the managed instance + // group itself is not being modified. + IsStable bool `json:"isStable,omitempty"` + // Stateful: Output only. Stateful status of the given Instance Group Manager. + Stateful *InstanceGroupManagerStatusStateful `json:"stateful,omitempty"` + // VersionTarget: Output only. A status of consistency of Instances' versions + // with their + // target version specified by version field on Instance Group + // Manager. + VersionTarget *InstanceGroupManagerStatusVersionTarget `json:"versionTarget,omitempty"` + // ForceSendFields is a list of field names (e.g. "AllInstancesConfig") to + // unconditionally include in API requests. By default, fields with empty or + // default values are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. ForceSendFields []string `json:"-"` - // NullFields is a list of field names (e.g. "DiskGb") to include in API - // requests with the JSON null value. By default, fields with empty values are - // omitted from API requests. See + // NullFields is a list of field names (e.g. "AllInstancesConfig") to include + // in API requests with the JSON null value. By default, fields with empty + // values are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } -func (s *MachineTypeScratchDisks) MarshalJSON() ([]byte, error) { - type NoMethod MachineTypeScratchDisks - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s InstanceGroupManagerStatus) MarshalJSON() ([]byte, error) { + type NoMethod InstanceGroupManagerStatus + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -type MachineTypeAggregatedList struct { - // Id: [Output Only] Unique identifier for the resource; defined by the server. - Id string `json:"id,omitempty"` - // Items: A list of MachineTypesScopedList resources. - Items map[string]MachineTypesScopedList `json:"items,omitempty"` - // Kind: [Output Only] Type of resource. Always - // compute#machineTypeAggregatedList for aggregated lists of machine types. - 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"` - // SelfLink: [Output Only] Server-defined URL for this resource. - SelfLink string `json:"selfLink,omitempty"` - // Unreachables: [Output Only] Unreachable resources. - Unreachables []string `json:"unreachables,omitempty"` - // Warning: [Output Only] Informational warning message. - Warning *MachineTypeAggregatedListWarning `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 or default values are - // omitted from API requests. See +type InstanceGroupManagerStatusAcceleratorTopology struct { + // AcceleratorTopology: Output only. Topology in the format of: "16x16", + // "4x4x4", etc. + // The value is the same as configured in the WorkloadPolicy. + AcceleratorTopology string `json:"acceleratorTopology,omitempty"` + // State: Output only. The state of the accelerator topology. + // + // Possible values: + // "ACTIVATING" - The accelerator topology is being activated. + // "ACTIVE" - The accelerator topology is active. + // "DEACTIVATING" - The accelerator topology is being deactivated. + // "FAILED" - The accelerator topology failed. + // "INCOMPLETE" - The configuration is incomplete and the accelerator + // topology cannot + // be activated due to insufficient number of running VMs. + // "REACTIVATING" - The accelerator topology is being reactivated. + State string `json:"state,omitempty"` + // StateDetails: Output only. The result of the latest accelerator topology + // state + // check. + StateDetails *InstanceGroupManagerStatusAcceleratorTopologyAcceleratorTopologyStateDetails `json:"stateDetails,omitempty"` + // ForceSendFields is a list of field names (e.g. "AcceleratorTopology") to + // unconditionally include in API requests. By default, fields with empty or + // default values are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. 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. See + // NullFields is a list of field names (e.g. "AcceleratorTopology") to include + // in API requests with the JSON null value. By default, fields with empty + // values are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } -func (s *MachineTypeAggregatedList) MarshalJSON() ([]byte, error) { - type NoMethod MachineTypeAggregatedList - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s InstanceGroupManagerStatusAcceleratorTopology) MarshalJSON() ([]byte, error) { + type NoMethod InstanceGroupManagerStatusAcceleratorTopology + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -// MachineTypeAggregatedListWarning: [Output Only] Informational warning -// message. -type MachineTypeAggregatedListWarning 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" - Warning about failed cleanup of transient changes made - // by a failed operation. - // "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was created. - // "DEPRECATED_TYPE_USED" - When deploying and at least one of the resources - // has a type marked as deprecated - // "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk that is - // larger than image size. - // "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the - // resources has a type marked as experimental - // "EXTERNAL_API_WARNING" - Warning that is present in an external api call - // "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been - // overridden. Deprecated unused field. - // "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an injected - // kernel, which is deprecated. - // "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB" - A WEIGHTED_MAGLEV backend - // service is associated with a health check that is not of type - // HTTP/HTTPS/HTTP2. - // "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a - // exceedingly large number of resources - // "LIST_OVERHEAD_QUOTA_EXCEED" - Resource can't be retrieved due to list - // overhead quota exceed which captures the amount of resources filtered out by - // user-defined list filter. - // "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type - // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is not - // assigned to an instance on the network. - // "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot ip - // forward. - // "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE" - The route's nextHopInstance - // URL refers to an instance that does not have an ipv6 interface on the same - // network as the route. - // "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL refers to - // an instance that does not exist. - // "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance URL - // refers to an instance that is not on the same network as the route. - // "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not have a - // status of RUNNING. - // "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to continue - // the process despite the mentioned error. - // "NO_RESULTS_ON_PAGE" - No results are present on a particular list page. - // "PARTIAL_SUCCESS" - Success is reported, but some results may be missing - // due to errors - // "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource that - // requires a TOS they have not accepted. - // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a resource is - // in use. - // "RESOURCE_NOT_DELETED" - One or more of the resources set to auto-delete - // could not be deleted because they were in use. - // "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is - // ignored. - // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in instance - // group manager is valid as such, but its application does not make a lot of - // sense, because it allows only single instance in instance group. - // "UNDECLARED_PROPERTIES" - When undeclared properties in the schema are - // present - // "UNREACHABLE" - A given scope cannot be reached. - 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 []*MachineTypeAggregatedListWarningData `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 +type InstanceGroupManagerStatusAcceleratorTopologyAcceleratorTopologyStateDetails struct { + // Error: Output only. Encountered errors. + Error *InstanceGroupManagerStatusAcceleratorTopologyAcceleratorTopologyStateDetailsError `json:"error,omitempty"` + // Timestamp: Output only. Timestamp is shown only if there is an error. The + // field + // has // RFC3339 // + // text format. + Timestamp string `json:"timestamp,omitempty"` + // ForceSendFields is a list of field names (e.g. "Error") to unconditionally // include in API requests. By default, fields with empty or default values are // omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. 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. See + // NullFields is a list of field names (e.g. "Error") to include in API + // requests with the JSON null value. By default, fields with empty values are + // omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } -func (s *MachineTypeAggregatedListWarning) MarshalJSON() ([]byte, error) { - type NoMethod MachineTypeAggregatedListWarning - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s InstanceGroupManagerStatusAcceleratorTopologyAcceleratorTopologyStateDetails) MarshalJSON() ([]byte, error) { + type NoMethod InstanceGroupManagerStatusAcceleratorTopologyAcceleratorTopologyStateDetails + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -type MachineTypeAggregatedListWarningData 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 +// InstanceGroupManagerStatusAcceleratorTopologyAcceleratorTopologyStateDetailsE +// rror: Output only. Encountered errors. +type InstanceGroupManagerStatusAcceleratorTopologyAcceleratorTopologyStateDetailsError struct { + // Errors: [Output Only] The array of errors encountered while processing + // this + // operation. + Errors []*InstanceGroupManagerStatusAcceleratorTopologyAcceleratorTopologyStateDetailsErrorErrors `json:"errors,omitempty"` + // ForceSendFields is a list of field names (e.g. "Errors") to unconditionally // include in API requests. By default, fields with empty or default values are // omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. 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. See + // NullFields is a list of field names (e.g. "Errors") to include in API + // requests with the JSON null value. By default, fields with empty values are + // omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } -func (s *MachineTypeAggregatedListWarningData) MarshalJSON() ([]byte, error) { - type NoMethod MachineTypeAggregatedListWarningData - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s InstanceGroupManagerStatusAcceleratorTopologyAcceleratorTopologyStateDetailsError) MarshalJSON() ([]byte, error) { + type NoMethod InstanceGroupManagerStatusAcceleratorTopologyAcceleratorTopologyStateDetailsError + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -// MachineTypeList: Contains a list of machine types. -type MachineTypeList struct { - // Id: [Output Only] Unique identifier for the resource; defined by the server. - Id string `json:"id,omitempty"` - // Items: A list of MachineType resources. - Items []*MachineType `json:"items,omitempty"` - // Kind: [Output Only] Type of resource. Always compute#machineTypeList for - // lists of machine types. - 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"` - // SelfLink: [Output Only] Server-defined URL for this resource. - SelfLink string `json:"selfLink,omitempty"` - // Warning: [Output Only] Informational warning message. - Warning *MachineTypeListWarning `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 +type InstanceGroupManagerStatusAcceleratorTopologyAcceleratorTopologyStateDetailsErrorErrors struct { + // Code: [Output Only] The error type identifier for this error. + Code string `json:"code,omitempty"` + // ErrorDetails: [Output Only] An optional list of messages that contain the + // error + // details. There is a set of defined message types to use for + // providing + // details.The syntax depends on the error code. For example, + // QuotaExceededInfo will have details when the error code is + // QUOTA_EXCEEDED. + ErrorDetails []*InstanceGroupManagerStatusAcceleratorTopologyAcceleratorTopologyStateDetailsErrorErrorsErrorDetails `json:"errorDetails,omitempty"` + // Location: [Output Only] Indicates the field in the request that caused the + // error. + // This property is optional. + Location string `json:"location,omitempty"` + // Message: [Output Only] An optional, human-readable error message. + 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 or default values are // omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. ForceSendFields []string `json:"-"` - // NullFields is a list of field names (e.g. "Id") to include in API requests + // 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. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } -func (s *MachineTypeList) MarshalJSON() ([]byte, error) { - type NoMethod MachineTypeList - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s InstanceGroupManagerStatusAcceleratorTopologyAcceleratorTopologyStateDetailsErrorErrors) MarshalJSON() ([]byte, error) { + type NoMethod InstanceGroupManagerStatusAcceleratorTopologyAcceleratorTopologyStateDetailsErrorErrors + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -// MachineTypeListWarning: [Output Only] Informational warning message. -type MachineTypeListWarning 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" - Warning about failed cleanup of transient changes made - // by a failed operation. - // "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was created. - // "DEPRECATED_TYPE_USED" - When deploying and at least one of the resources - // has a type marked as deprecated - // "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk that is - // larger than image size. - // "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the - // resources has a type marked as experimental - // "EXTERNAL_API_WARNING" - Warning that is present in an external api call - // "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been - // overridden. Deprecated unused field. - // "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an injected - // kernel, which is deprecated. - // "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB" - A WEIGHTED_MAGLEV backend - // service is associated with a health check that is not of type - // HTTP/HTTPS/HTTP2. - // "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a - // exceedingly large number of resources - // "LIST_OVERHEAD_QUOTA_EXCEED" - Resource can't be retrieved due to list - // overhead quota exceed which captures the amount of resources filtered out by - // user-defined list filter. - // "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type - // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is not - // assigned to an instance on the network. - // "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot ip - // forward. - // "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE" - The route's nextHopInstance - // URL refers to an instance that does not have an ipv6 interface on the same - // network as the route. - // "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL refers to - // an instance that does not exist. - // "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance URL - // refers to an instance that is not on the same network as the route. - // "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not have a - // status of RUNNING. - // "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to continue - // the process despite the mentioned error. - // "NO_RESULTS_ON_PAGE" - No results are present on a particular list page. - // "PARTIAL_SUCCESS" - Success is reported, but some results may be missing - // due to errors - // "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource that - // requires a TOS they have not accepted. - // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a resource is - // in use. - // "RESOURCE_NOT_DELETED" - One or more of the resources set to auto-delete - // could not be deleted because they were in use. - // "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is - // ignored. - // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in instance - // group manager is valid as such, but its application does not make a lot of - // sense, because it allows only single instance in instance group. - // "UNDECLARED_PROPERTIES" - When undeclared properties in the schema are - // present - // "UNREACHABLE" - A given scope cannot be reached. - 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 []*MachineTypeListWarningData `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 or default values are - // omitted from API requests. See +type InstanceGroupManagerStatusAcceleratorTopologyAcceleratorTopologyStateDetailsErrorErrorsErrorDetails struct { + ErrorInfo *ErrorInfo `json:"errorInfo,omitempty"` + Help *Help `json:"help,omitempty"` + LocalizedMessage *LocalizedMessage `json:"localizedMessage,omitempty"` + QuotaInfo *QuotaExceededInfo `json:"quotaInfo,omitempty"` + // ForceSendFields is a list of field names (e.g. "ErrorInfo") to + // unconditionally include in API requests. By default, fields with empty or + // default values are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. 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. See + // NullFields is a list of field names (e.g. "ErrorInfo") to include in API + // requests with the JSON null value. By default, fields with empty values are + // omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } -func (s *MachineTypeListWarning) MarshalJSON() ([]byte, error) { - type NoMethod MachineTypeListWarning - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s InstanceGroupManagerStatusAcceleratorTopologyAcceleratorTopologyStateDetailsErrorErrorsErrorDetails) MarshalJSON() ([]byte, error) { + type NoMethod InstanceGroupManagerStatusAcceleratorTopologyAcceleratorTopologyStateDetailsErrorErrorsErrorDetails + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -type MachineTypeListWarningData 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 or default values are - // omitted from API requests. See +type InstanceGroupManagerStatusAllInstancesConfig struct { + // CurrentRevision: Output only. Current all-instances configuration + // revision. + // This value is in RFC3339 text format. + CurrentRevision string `json:"currentRevision,omitempty"` + // Effective: Output only. A bit indicating whether this configuration has + // been applied to all managed instances in the group. + Effective bool `json:"effective,omitempty"` + // ForceSendFields is a list of field names (e.g. "CurrentRevision") to + // unconditionally include in API requests. By default, fields with empty or + // default values are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. 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. See + // NullFields is a list of field names (e.g. "CurrentRevision") to include in + // API requests with the JSON null value. By default, fields with empty values + // are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } -func (s *MachineTypeListWarningData) MarshalJSON() ([]byte, error) { - type NoMethod MachineTypeListWarningData - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) -} - -type MachineTypesScopedList struct { - // MachineTypes: [Output Only] A list of machine types contained in this scope. - MachineTypes []*MachineType `json:"machineTypes,omitempty"` - // Warning: [Output Only] An informational warning that appears when the - // machine types list is empty. - Warning *MachineTypesScopedListWarning `json:"warning,omitempty"` - // ForceSendFields is a list of field names (e.g. "MachineTypes") to +func (s InstanceGroupManagerStatusAllInstancesConfig) MarshalJSON() ([]byte, error) { + type NoMethod InstanceGroupManagerStatusAllInstancesConfig + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +// InstanceGroupManagerStatusBulkInstanceOperation: Bulk instance operation is +// the creation of VMs in a MIG when the +// targetSizePolicy.mode is set to BULK. +type InstanceGroupManagerStatusBulkInstanceOperation struct { + // InProgress: Output only. Informs whether bulk instance operation is in + // progress. + InProgress bool `json:"inProgress,omitempty"` + // LastProgressCheck: Output only. Information from the last progress check of + // bulk instance + // operation. + LastProgressCheck *InstanceGroupManagerStatusBulkInstanceOperationLastProgressCheck `json:"lastProgressCheck,omitempty"` + // ForceSendFields is a list of field names (e.g. "InProgress") to // unconditionally include in API requests. By default, fields with empty or // default values are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. ForceSendFields []string `json:"-"` - // NullFields is a list of field names (e.g. "MachineTypes") to include in API + // NullFields is a list of field names (e.g. "InProgress") to include in API // requests with the JSON null value. By default, fields with empty values are // omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } -func (s *MachineTypesScopedList) MarshalJSON() ([]byte, error) { - type NoMethod MachineTypesScopedList - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s InstanceGroupManagerStatusBulkInstanceOperation) MarshalJSON() ([]byte, error) { + type NoMethod InstanceGroupManagerStatusBulkInstanceOperation + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -// MachineTypesScopedListWarning: [Output Only] An informational warning that -// appears when the machine types list is empty. -type MachineTypesScopedListWarning 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" - Warning about failed cleanup of transient changes made - // by a failed operation. - // "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was created. - // "DEPRECATED_TYPE_USED" - When deploying and at least one of the resources - // has a type marked as deprecated - // "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk that is - // larger than image size. - // "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the - // resources has a type marked as experimental - // "EXTERNAL_API_WARNING" - Warning that is present in an external api call - // "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been - // overridden. Deprecated unused field. - // "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an injected - // kernel, which is deprecated. - // "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB" - A WEIGHTED_MAGLEV backend - // service is associated with a health check that is not of type - // HTTP/HTTPS/HTTP2. - // "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a - // exceedingly large number of resources - // "LIST_OVERHEAD_QUOTA_EXCEED" - Resource can't be retrieved due to list - // overhead quota exceed which captures the amount of resources filtered out by - // user-defined list filter. - // "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type - // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is not - // assigned to an instance on the network. - // "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot ip - // forward. - // "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE" - The route's nextHopInstance - // URL refers to an instance that does not have an ipv6 interface on the same - // network as the route. - // "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL refers to - // an instance that does not exist. - // "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance URL - // refers to an instance that is not on the same network as the route. - // "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not have a - // status of RUNNING. - // "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to continue - // the process despite the mentioned error. - // "NO_RESULTS_ON_PAGE" - No results are present on a particular list page. - // "PARTIAL_SUCCESS" - Success is reported, but some results may be missing - // due to errors - // "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource that - // requires a TOS they have not accepted. - // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a resource is - // in use. - // "RESOURCE_NOT_DELETED" - One or more of the resources set to auto-delete - // could not be deleted because they were in use. - // "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is - // ignored. - // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in instance - // group manager is valid as such, but its application does not make a lot of - // sense, because it allows only single instance in instance group. - // "UNDECLARED_PROPERTIES" - When undeclared properties in the schema are - // present - // "UNREACHABLE" - A given scope cannot be reached. - 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 []*MachineTypesScopedListWarningData `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 +type InstanceGroupManagerStatusBulkInstanceOperationLastProgressCheck struct { + // Error: Output only. Errors encountered during bulk instance operation. + Error *InstanceGroupManagerStatusBulkInstanceOperationLastProgressCheckError `json:"error,omitempty"` + // Timestamp: Output only. Timestamp of the last progress check of bulk + // instance + // operation. Timestamp is in RFC3339 text format. + Timestamp string `json:"timestamp,omitempty"` + // ForceSendFields is a list of field names (e.g. "Error") to unconditionally // include in API requests. By default, fields with empty or default values are // omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. 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. See + // NullFields is a list of field names (e.g. "Error") to include in API + // requests with the JSON null value. By default, fields with empty values are + // omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } -func (s *MachineTypesScopedListWarning) MarshalJSON() ([]byte, error) { - type NoMethod MachineTypesScopedListWarning - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s InstanceGroupManagerStatusBulkInstanceOperationLastProgressCheck) MarshalJSON() ([]byte, error) { + type NoMethod InstanceGroupManagerStatusBulkInstanceOperationLastProgressCheck + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -type MachineTypesScopedListWarningData 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 +// InstanceGroupManagerStatusBulkInstanceOperationLastProgressCheckError: +// Output only. Errors encountered during bulk instance operation. +type InstanceGroupManagerStatusBulkInstanceOperationLastProgressCheckError struct { + // Errors: [Output Only] The array of errors encountered while processing + // this + // operation. + Errors []*InstanceGroupManagerStatusBulkInstanceOperationLastProgressCheckErrorErrors `json:"errors,omitempty"` + // ForceSendFields is a list of field names (e.g. "Errors") to unconditionally // include in API requests. By default, fields with empty or default values are // omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. ForceSendFields []string `json:"-"` - // NullFields is a list of field names (e.g. "Key") to include in API requests + // NullFields is a list of field names (e.g. "Errors") to include in API + // requests with the JSON null value. By default, fields with empty values are + // omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s InstanceGroupManagerStatusBulkInstanceOperationLastProgressCheckError) MarshalJSON() ([]byte, error) { + type NoMethod InstanceGroupManagerStatusBulkInstanceOperationLastProgressCheckError + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +type InstanceGroupManagerStatusBulkInstanceOperationLastProgressCheckErrorErrors struct { + // Code: [Output Only] The error type identifier for this error. + Code string `json:"code,omitempty"` + // ErrorDetails: [Output Only] An optional list of messages that contain the + // error + // details. There is a set of defined message types to use for + // providing + // details.The syntax depends on the error code. For example, + // QuotaExceededInfo will have details when the error code is + // QUOTA_EXCEEDED. + ErrorDetails []*InstanceGroupManagerStatusBulkInstanceOperationLastProgressCheckErrorErrorsErrorDetails `json:"errorDetails,omitempty"` + // Location: [Output Only] Indicates the field in the request that caused the + // error. + // This property is optional. + Location string `json:"location,omitempty"` + // Message: [Output Only] An optional, human-readable error message. + 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 or default values are + // omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + 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. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } -func (s *MachineTypesScopedListWarningData) MarshalJSON() ([]byte, error) { - type NoMethod MachineTypesScopedListWarningData - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s InstanceGroupManagerStatusBulkInstanceOperationLastProgressCheckErrorErrors) MarshalJSON() ([]byte, error) { + type NoMethod InstanceGroupManagerStatusBulkInstanceOperationLastProgressCheckErrorErrors + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -// ManagedInstance: A Managed Instance resource. -type ManagedInstance struct { - // CurrentAction: [Output Only] The current action that the managed instance - // group has scheduled for the instance. Possible values: - NONE The instance - // is running, and the managed instance group does not have any scheduled - // actions for this instance. - CREATING The managed instance group is creating - // this instance. If the group fails to create this instance, it will try again - // until it is successful. - CREATING_WITHOUT_RETRIES The managed instance - // group is attempting to create this instance only once. If the group fails to - // create this instance, it does not try again and the group's targetSize value - // is decreased instead. - RECREATING The managed instance group is recreating - // this instance. - DELETING The managed instance group is permanently deleting - // this instance. - ABANDONING The managed instance group is abandoning this - // instance. The instance will be removed from the instance group and from any - // target pools that are associated with this group. - RESTARTING The managed - // instance group is restarting the instance. - REFRESHING The managed instance - // group is applying configuration changes to the instance without stopping it. - // For example, the group can update the target pool list for an instance - // without stopping that instance. - VERIFYING The managed instance group has - // created the instance and it is in the process of being verified. - // - // Possible values: - // "ABANDONING" - The managed instance group is abandoning this instance. The - // instance will be removed from the instance group and from any target pools - // that are associated with this group. - // "CREATING" - The managed instance group is creating this instance. If the - // group fails to create this instance, it will try again until it is - // successful. - // "CREATING_WITHOUT_RETRIES" - The managed instance group is attempting to - // create this instance only once. If the group fails to create this instance, - // it does not try again and the group's targetSize value is decreased. - // "DELETING" - The managed instance group is permanently deleting this - // instance. - // "NONE" - The managed instance group has not scheduled any actions for this - // instance. - // "RECREATING" - The managed instance group is recreating this instance. - // "REFRESHING" - The managed instance group is applying configuration - // changes to the instance without stopping it. For example, the group can - // update the target pool list for an instance without stopping that instance. - // "RESTARTING" - The managed instance group is restarting this instance. - // "RESUMING" - The managed instance group is resuming this instance. - // "STARTING" - The managed instance group is starting this instance. - // "STOPPING" - The managed instance group is stopping this instance. - // "SUSPENDING" - The managed instance group is suspending this instance. - // "VERIFYING" - The managed instance group is verifying this already created - // instance. Verification happens every time the instance is (re)created or - // restarted and consists of: 1. Waiting until health check specified as part - // of this managed instance group's autohealing policy reports HEALTHY. Note: - // Applies only if autohealing policy has a health check specified 2. Waiting - // for addition verification steps performed as post-instance creation (subject - // to future extensions). - CurrentAction string `json:"currentAction,omitempty"` - // Id: [Output only] The unique identifier for this resource. This field is - // empty when instance does not exist. - Id uint64 `json:"id,omitempty,string"` - // Instance: [Output Only] The URL of the instance. The URL can exist even if - // the instance has not yet been created. - Instance string `json:"instance,omitempty"` - // InstanceHealth: [Output Only] Health state of the instance per health-check. - InstanceHealth []*ManagedInstanceInstanceHealth `json:"instanceHealth,omitempty"` - // InstanceStatus: [Output Only] The status of the instance. This field is - // empty when the instance does not exist. - // - // Possible values: - // "DEPROVISIONING" - The instance is halted and we are performing tear down - // tasks like network deprogramming, releasing quota, IP, tearing down disks - // etc. - // "PROVISIONING" - Resources are being allocated for the instance. - // "REPAIRING" - The instance is in repair. - // "RUNNING" - The instance is running. - // "STAGING" - All required resources have been allocated and the instance is - // being started. - // "STOPPED" - The instance has stopped successfully. - // "STOPPING" - The instance is currently stopping (either being deleted or - // killed). - // "SUSPENDED" - The instance has suspended. - // "SUSPENDING" - The instance is suspending. - // "TERMINATED" - The instance has stopped (either by explicit action or - // underlying failure). - InstanceStatus string `json:"instanceStatus,omitempty"` - // LastAttempt: [Output Only] Information about the last attempt to create or - // delete the instance. - LastAttempt *ManagedInstanceLastAttempt `json:"lastAttempt,omitempty"` - // Name: [Output Only] The name of the instance. The name always exists even if - // the instance has not yet been created. - Name string `json:"name,omitempty"` - // PreservedStateFromConfig: [Output Only] Preserved state applied from - // per-instance config for this instance. - PreservedStateFromConfig *PreservedState `json:"preservedStateFromConfig,omitempty"` - // PreservedStateFromPolicy: [Output Only] Preserved state generated based on - // stateful policy for this instance. - PreservedStateFromPolicy *PreservedState `json:"preservedStateFromPolicy,omitempty"` - // Version: [Output Only] Intended version of this instance. - Version *ManagedInstanceVersion `json:"version,omitempty"` - // ForceSendFields is a list of field names (e.g. "CurrentAction") to +type InstanceGroupManagerStatusBulkInstanceOperationLastProgressCheckErrorErrorsErrorDetails struct { + ErrorInfo *ErrorInfo `json:"errorInfo,omitempty"` + Help *Help `json:"help,omitempty"` + LocalizedMessage *LocalizedMessage `json:"localizedMessage,omitempty"` + QuotaInfo *QuotaExceededInfo `json:"quotaInfo,omitempty"` + // ForceSendFields is a list of field names (e.g. "ErrorInfo") to // unconditionally include in API requests. By default, fields with empty or // default values are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. ForceSendFields []string `json:"-"` - // NullFields is a list of field names (e.g. "CurrentAction") to include in API + // NullFields is a list of field names (e.g. "ErrorInfo") to include in API // requests with the JSON null value. By default, fields with empty values are // omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } -func (s *ManagedInstance) MarshalJSON() ([]byte, error) { - type NoMethod ManagedInstance - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s InstanceGroupManagerStatusBulkInstanceOperationLastProgressCheckErrorErrorsErrorDetails) MarshalJSON() ([]byte, error) { + type NoMethod InstanceGroupManagerStatusBulkInstanceOperationLastProgressCheckErrorErrorsErrorDetails + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +// InstanceGroupManagerStatusInstanceStatusSummary: The list of instance +// statuses and the number of instances in this managed +// instance group that have the status. For more information about how +// to +// interpret each status check the instance lifecycle documentation. +// Currently only shown for TPU MIGs. +type InstanceGroupManagerStatusInstanceStatusSummary struct { + // Deprovisioning: Output only. The number of instances in the managed instance + // group + // that have DEPROVISIONING status. + Deprovisioning int64 `json:"deprovisioning,omitempty"` + // NonExistent: Output only. The number of instances that have not been created + // yet or + // have been deleted. Includes only instances that would be shown in + // the + // listManagedInstances method and not all instances that have been + // deleted in the lifetime of the MIG. + // Does not include FlexStart instances that are waiting for the + // resources + // availability, they are considered as 'pending'. + NonExistent int64 `json:"nonExistent,omitempty"` + // Pending: Output only. The number of instances in the managed instance + // group + // that have PENDING status, that is FlexStart instances that are waiting + // for resources. Instances that do not exist because of the other reasons + // are counted as 'non_existent'. + Pending int64 `json:"pending,omitempty"` + // PendingStop: Output only. The number of instances in the managed instance + // group + // that have PENDING_STOP status. + PendingStop int64 `json:"pendingStop,omitempty"` + // Provisioning: Output only. The number of instances in the managed instance + // group + // that have PROVISIONING status. + Provisioning int64 `json:"provisioning,omitempty"` + // Repairing: Output only. The number of instances in the managed instance + // group + // that have REPAIRING status. + Repairing int64 `json:"repairing,omitempty"` + // Running: Output only. The number of instances in the managed instance + // group + // that have RUNNING status. + Running int64 `json:"running,omitempty"` + // Staging: Output only. The number of instances in the managed instance + // group + // that have STAGING status. + Staging int64 `json:"staging,omitempty"` + // Stopped: Output only. The number of instances in the managed instance + // group + // that have STOPPED status. + Stopped int64 `json:"stopped,omitempty"` + // Stopping: Output only. The number of instances in the managed instance + // group + // that have STOPPING status. + Stopping int64 `json:"stopping,omitempty"` + // Suspended: Output only. The number of instances in the managed instance + // group + // that have SUSPENDED status. + Suspended int64 `json:"suspended,omitempty"` + // Suspending: Output only. The number of instances in the managed instance + // group + // that have SUSPENDING status. + Suspending int64 `json:"suspending,omitempty"` + // Terminated: Output only. The number of instances in the managed instance + // group + // that have TERMINATED status. + Terminated int64 `json:"terminated,omitempty"` + // ForceSendFields is a list of field names (e.g. "Deprovisioning") to + // unconditionally include in API requests. By default, fields with empty or + // default values are omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + ForceSendFields []string `json:"-"` + // NullFields is a list of field names (e.g. "Deprovisioning") to include in + // API requests with the JSON null value. By default, fields with empty values + // are omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` } -type ManagedInstanceInstanceHealth struct { - // DetailedHealthState: [Output Only] The current detailed instance health - // state. - // - // Possible values: - // "DRAINING" - The instance is being drained. The existing connections to - // the instance have time to complete, but the new ones are being refused. - // "HEALTHY" - The instance is reachable i.e. a connection to the application - // health checking endpoint can be established, and conforms to the - // requirements defined by the health check. - // "TIMEOUT" - The instance is unreachable i.e. a connection to the - // application health checking endpoint cannot be established, or the server - // does not respond within the specified timeout. - // "UNHEALTHY" - The instance is reachable, but does not conform to the - // requirements defined by the health check. - // "UNKNOWN" - The health checking system is aware of the instance but its - // health is not known at the moment. - DetailedHealthState string `json:"detailedHealthState,omitempty"` - // HealthCheck: [Output Only] The URL for the health check that verifies - // whether the instance is healthy. - HealthCheck string `json:"healthCheck,omitempty"` - // ForceSendFields is a list of field names (e.g. "DetailedHealthState") to +func (s InstanceGroupManagerStatusInstanceStatusSummary) MarshalJSON() ([]byte, error) { + type NoMethod InstanceGroupManagerStatusInstanceStatusSummary + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +type InstanceGroupManagerStatusStateful struct { + // HasStatefulConfig: Output only. A bit indicating whether the managed + // instance group + // has stateful configuration, that is, if you have configured any items + // in a stateful policy or in per-instance configs. + // The group might report that it has no stateful configuration even when + // there is still some preserved state on a managed instance, for example, + // if you have deleted all PICs but not yet applied those deletions. + HasStatefulConfig bool `json:"hasStatefulConfig,omitempty"` + // PerInstanceConfigs: Output only. Status of per-instance configurations on + // the instances. + PerInstanceConfigs *InstanceGroupManagerStatusStatefulPerInstanceConfigs `json:"perInstanceConfigs,omitempty"` + // ForceSendFields is a list of field names (e.g. "HasStatefulConfig") to // unconditionally include in API requests. By default, fields with empty or // default values are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. ForceSendFields []string `json:"-"` - // NullFields is a list of field names (e.g. "DetailedHealthState") to include - // in API requests with the JSON null value. By default, fields with empty - // values are omitted from API requests. See + // NullFields is a list of field names (e.g. "HasStatefulConfig") to include in + // API requests with the JSON null value. By default, fields with empty values + // are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } -func (s *ManagedInstanceInstanceHealth) MarshalJSON() ([]byte, error) { - type NoMethod ManagedInstanceInstanceHealth - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s InstanceGroupManagerStatusStateful) MarshalJSON() ([]byte, error) { + type NoMethod InstanceGroupManagerStatusStateful + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -type ManagedInstanceLastAttempt struct { - // Errors: [Output Only] Encountered errors during the last attempt to create - // or delete the instance. - Errors *ManagedInstanceLastAttemptErrors `json:"errors,omitempty"` - // ForceSendFields is a list of field names (e.g. "Errors") to unconditionally - // include in API requests. By default, fields with empty or default values are - // omitted from API requests. See +type InstanceGroupManagerStatusStatefulPerInstanceConfigs struct { + // AllEffective: Output only. A bit indicating if all of the group's + // per-instance configurations + // (listed in the output of a listPerInstanceConfigs API call) have + // status EFFECTIVE or there are no per-instance-configs. + AllEffective bool `json:"allEffective,omitempty"` + // ForceSendFields is a list of field names (e.g. "AllEffective") to + // unconditionally include in API requests. By default, fields with empty or + // default values are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. ForceSendFields []string `json:"-"` - // NullFields is a list of field names (e.g. "Errors") to include in API + // NullFields is a list of field names (e.g. "AllEffective") to include in API // requests with the JSON null value. By default, fields with empty values are // omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } -func (s *ManagedInstanceLastAttempt) MarshalJSON() ([]byte, error) { - type NoMethod ManagedInstanceLastAttempt - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s InstanceGroupManagerStatusStatefulPerInstanceConfigs) MarshalJSON() ([]byte, error) { + type NoMethod InstanceGroupManagerStatusStatefulPerInstanceConfigs + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -// ManagedInstanceLastAttemptErrors: [Output Only] Encountered errors during -// the last attempt to create or delete the instance. -type ManagedInstanceLastAttemptErrors struct { - // Errors: [Output Only] The array of errors encountered while processing this - // operation. - Errors []*ManagedInstanceLastAttemptErrorsErrors `json:"errors,omitempty"` - // ForceSendFields is a list of field names (e.g. "Errors") to unconditionally - // include in API requests. By default, fields with empty or default values are - // omitted from API requests. See +type InstanceGroupManagerStatusVersionTarget struct { + // IsReached: Output only. A bit indicating whether version target has been + // reached + // in this managed instance group, i.e. all instances are in their + // target + // version. Instances' target version are specified byversion field on Instance + // Group Manager. + IsReached bool `json:"isReached,omitempty"` + // ForceSendFields is a list of field names (e.g. "IsReached") to + // unconditionally include in API requests. By default, fields with empty or + // default values are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. ForceSendFields []string `json:"-"` - // NullFields is a list of field names (e.g. "Errors") to include in API + // NullFields is a list of field names (e.g. "IsReached") to include in API // requests with the JSON null value. By default, fields with empty values are // omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } -func (s *ManagedInstanceLastAttemptErrors) MarshalJSON() ([]byte, error) { - type NoMethod ManagedInstanceLastAttemptErrors - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s InstanceGroupManagerStatusVersionTarget) MarshalJSON() ([]byte, error) { + type NoMethod InstanceGroupManagerStatusVersionTarget + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -type ManagedInstanceLastAttemptErrorsErrors struct { - // Code: [Output Only] The error type identifier for this error. - Code string `json:"code,omitempty"` - // ErrorDetails: [Output Only] An optional list of messages that contain the - // error details. There is a set of defined message types to use for providing - // details.The syntax depends on the error code. For example, QuotaExceededInfo - // will have details when the error code is QUOTA_EXCEEDED. - ErrorDetails []*ManagedInstanceLastAttemptErrorsErrorsErrorDetails `json:"errorDetails,omitempty"` - // Location: [Output Only] Indicates the field in the request that caused the - // error. This property is optional. - Location string `json:"location,omitempty"` - // Message: [Output Only] An optional, human-readable error message. - Message string `json:"message,omitempty"` - // ForceSendFields is a list of field names (e.g. "Code") to unconditionally +type InstanceGroupManagerTargetSizePolicy struct { + // Mode: The mode of target size policy based on which the MIG creates its + // VMs + // individually or all at once. + // + // Possible values: + // "BULK" - The mode in which the MIG creates VMs all at once. In this mode, + // if the + // MIG is unable to create even one VM, the MIG waits until all VMs can + // be + // created at the same time. + // "INDIVIDUAL" - The mode in which the MIG creates VMs individually. In this + // mode, if + // the MIG is unable to create a VM, the MIG will continue to create the + // other VMs in the group. This is the default mode. + // "UNSPECIFIED_MODE" - If mode is unspecified, MIG will behave as in the + // default `INDIVIDUAL` + // mode. + Mode string `json:"mode,omitempty"` + // ForceSendFields is a list of field names (e.g. "Mode") to unconditionally // include in API requests. By default, fields with empty or default values are // omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. ForceSendFields []string `json:"-"` - // NullFields is a list of field names (e.g. "Code") to include in API requests + // NullFields is a list of field names (e.g. "Mode") to include in API requests // with the JSON null value. By default, fields with empty values are omitted // from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } -func (s *ManagedInstanceLastAttemptErrorsErrors) MarshalJSON() ([]byte, error) { - type NoMethod ManagedInstanceLastAttemptErrorsErrors - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s InstanceGroupManagerTargetSizePolicy) MarshalJSON() ([]byte, error) { + type NoMethod InstanceGroupManagerTargetSizePolicy + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -type ManagedInstanceLastAttemptErrorsErrorsErrorDetails struct { - ErrorInfo *ErrorInfo `json:"errorInfo,omitempty"` - Help *Help `json:"help,omitempty"` - LocalizedMessage *LocalizedMessage `json:"localizedMessage,omitempty"` - QuotaInfo *QuotaExceededInfo `json:"quotaInfo,omitempty"` - // ForceSendFields is a list of field names (e.g. "ErrorInfo") to - // unconditionally include in API requests. By default, fields with empty or +type InstanceGroupManagerUpdatePolicy struct { + // InstanceRedistributionType: The + // instance redistribution policy for regional managed instance groups. + // Valid values are: + // + // - PROACTIVE (default): The group attempts to maintain an + // even distribution of VM instances across zones in the region. + // - NONE: For non-autoscaled groups, proactive + // redistribution is disabled. + // + // Possible values: + // "NONE" - No action is being proactively performed in order to bring this + // IGM + // to its target instance distribution. + // "PROACTIVE" - This IGM will actively converge to its target instance + // distribution. + InstanceRedistributionType string `json:"instanceRedistributionType,omitempty"` + // MaxSurge: The maximum number of instances that can be created above the + // specifiedtargetSize during the update process. This value can be + // either a fixed number or, if the group has 10 or more instances, + // a + // percentage. If you set a percentage, the number of instances is rounded + // if necessary. The default value for maxSurge is a fixed + // value equal to the number of zones in which the managed instance + // group + // operates. + // + // At least one of either maxSurge ormaxUnavailable must be greater than 0. + // Learn more about maxSurge. + MaxSurge *FixedOrPercent `json:"maxSurge,omitempty"` + // MaxUnavailable: The maximum number of instances that can be unavailable + // during the update + // process. An instance is considered available if all of the + // following + // conditions are satisfied: + // + // + // + // - The instance's status is + // RUNNING. + // - If there is a health + // check on the instance group, the instance's health check status + // must be HEALTHY at least once. If there is no health check + // on the group, then the instance only needs to have a status of + // RUNNING to be considered available. + // + // + // This value can be either a fixed number or, if the group has 10 or + // more + // instances, a percentage. If you set a percentage, the number of instances + // is rounded if necessary. The default value formaxUnavailable is a fixed + // value equal to the number of zones + // in which the managed instance group operates. + // + // At least one of either maxSurge ormaxUnavailable must be greater than 0. + // Learn more about maxUnavailable. + MaxUnavailable *FixedOrPercent `json:"maxUnavailable,omitempty"` + // MinimalAction: Minimal action to be taken on an instance. Use this option to + // minimize + // disruption as much as possible or to apply a more disruptive action than + // is necessary. + // + // - To limit disruption as much as possible, set the minimal action + // toREFRESH. If your update requires a more disruptive action, + // Compute Engine performs the necessary action to execute the update. + // - To apply a more disruptive action than is strictly necessary, set the + // minimal action to RESTART or REPLACE. For + // example, Compute Engine does not need to restart a VM to change its + // metadata. But if your application reads instance metadata only when a VM + // is restarted, you can set the minimal action to RESTART in + // order to pick up metadata changes. + // + // Possible values: + // "NONE" - Do not perform any action. + // "REFRESH" - Do not stop the instance. + // "REPLACE" - (Default.) Replace the instance according to the replacement + // method + // option. + // "RESTART" - Stop the instance and start it again. + MinimalAction string `json:"minimalAction,omitempty"` + // MostDisruptiveAllowedAction: Most disruptive action that is allowed to be + // taken on an instance. + // You can specify either NONE to forbid any actions,REFRESH to avoid + // restarting the VM and to limit disruption + // as much as possible. RESTART to allow actions that can be + // applied without instance replacing or REPLACE to allow all + // possible actions. If the Updater determines that the minimal update + // action needed is more disruptive than most disruptive allowed action + // you + // specify it will not perform the update at all. + // + // Possible values: + // "NONE" - Do not perform any action. + // "REFRESH" - Do not stop the instance. + // "REPLACE" - (Default.) Replace the instance according to the replacement + // method + // option. + // "RESTART" - Stop the instance and start it again. + MostDisruptiveAllowedAction string `json:"mostDisruptiveAllowedAction,omitempty"` + // ReplacementMethod: What action should be used to replace instances. + // See minimal_action.REPLACE + // + // Possible values: + // "RECREATE" - Instances will be recreated (with the same name) + // "SUBSTITUTE" - Default option: instances will be deleted and created (with + // a new name) + ReplacementMethod string `json:"replacementMethod,omitempty"` + // Type: The type + // of update process. You can specify either PROACTIVE so + // that the MIG automatically updates VMs to the latest configurations + // orOPPORTUNISTIC so that you can select the VMs that you want + // to update. + // + // Possible values: + // "OPPORTUNISTIC" - MIG will apply new configurations + // to existing VMs only when you selectively target specific or all VMs to + // be updated. + // "PROACTIVE" - MIG will automatically apply new configurations + // to all or a subset of existing VMs and also to new VMs that are added + // to the group. + Type string `json:"type,omitempty"` + // ForceSendFields is a list of field names (e.g. "InstanceRedistributionType") + // to unconditionally include in API requests. By default, fields with empty or // default values are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. ForceSendFields []string `json:"-"` - // NullFields is a list of field names (e.g. "ErrorInfo") to include in API - // requests with the JSON null value. By default, fields with empty values are - // omitted from API requests. See + // NullFields is a list of field names (e.g. "InstanceRedistributionType") to + // include in API requests with the JSON null value. By default, fields with + // empty values are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } -func (s *ManagedInstanceLastAttemptErrorsErrorsErrorDetails) MarshalJSON() ([]byte, error) { - type NoMethod ManagedInstanceLastAttemptErrorsErrorsErrorDetails - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s InstanceGroupManagerUpdatePolicy) MarshalJSON() ([]byte, error) { + type NoMethod InstanceGroupManagerUpdatePolicy + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -type ManagedInstanceVersion struct { - // InstanceTemplate: [Output Only] The intended template of the instance. This - // field is empty when current_action is one of { DELETING, ABANDONING }. +type InstanceGroupManagerVersion struct { + // InstanceTemplate: The URL of the instance template that is specified for + // this managed + // instance group. The group uses this template to create new instances in + // the managed instance group until the `targetSize` for this version + // is + // reached. The templates for existing instances in the group do not + // change + // unless you run recreateInstances, runapplyUpdatesToInstances, or set the + // group'supdatePolicy.type to PROACTIVE; in those cases, + // existing instances are updated until the `targetSize` for this version + // is + // reached. InstanceTemplate string `json:"instanceTemplate,omitempty"` - // Name: [Output Only] Name of the version. + // Name: Name of the version. Unique among all versions in the scope of + // this + // managed instance group. Name string `json:"name,omitempty"` + // TargetSize: Specifies the intended number of instances to be created from + // theinstanceTemplate. The final number of instances created + // from the template will be equal to: + // + // + // - If expressed as a fixed number, the minimum of either + // targetSize.fixed or + // instanceGroupManager.targetSize is used. + // - if expressed as a percent, the targetSize + // would be (targetSize.percent/100 * + // InstanceGroupManager.targetSize) If there is a remainder, the + // number is rounded. + // + // If unset, this version will update any remaining instances not + // updated by another version. ReadStarting + // a canary update for more information. + TargetSize *FixedOrPercent `json:"targetSize,omitempty"` // ForceSendFields is a list of field names (e.g. "InstanceTemplate") to // unconditionally include in API requests. By default, fields with empty or // default values are omitted from API requests. See @@ -24794,547 +30280,392 @@ type ManagedInstanceVersion struct { NullFields []string `json:"-"` } -func (s *ManagedInstanceVersion) MarshalJSON() ([]byte, error) { - type NoMethod ManagedInstanceVersion - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s InstanceGroupManagerVersion) MarshalJSON() ([]byte, error) { + type NoMethod InstanceGroupManagerVersion + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -// Metadata: A metadata key/value entry. -type Metadata struct { - // Fingerprint: Specifies a fingerprint for this request, which is essentially - // a hash of the metadata's contents and used for optimistic locking. The - // fingerprint is initially generated by Compute Engine and changes after every - // request to modify or update metadata. You must always provide an up-to-date - // fingerprint hash in order to update or change metadata, otherwise the - // request will fail with error 412 conditionNotMet. To see the latest - // fingerprint, make a get() request to retrieve the resource. - Fingerprint string `json:"fingerprint,omitempty"` - // Items: Array of key/value pairs. The total size of all keys and values must - // be less than 512 KB. - Items []*MetadataItems `json:"items,omitempty"` - // Kind: [Output Only] Type of the resource. Always compute#metadata for - // metadata. - Kind string `json:"kind,omitempty"` - // ForceSendFields is a list of field names (e.g. "Fingerprint") to +type InstanceGroupManagersAbandonInstancesRequest struct { + // Instances: The URLs of one or more instances to abandon. This can be a full + // URL or + // a partial URL, such as zones/[ZONE]/instances/[INSTANCE_NAME]. + Instances []string `json:"instances,omitempty"` + // ForceSendFields is a list of field names (e.g. "Instances") to // unconditionally include in API requests. By default, fields with empty or // default values are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. ForceSendFields []string `json:"-"` - // NullFields is a list of field names (e.g. "Fingerprint") to include in API + // NullFields is a list of field names (e.g. "Instances") to include in API // requests with the JSON null value. By default, fields with empty values are // omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } -func (s *Metadata) MarshalJSON() ([]byte, error) { - type NoMethod Metadata - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s InstanceGroupManagersAbandonInstancesRequest) MarshalJSON() ([]byte, error) { + type NoMethod InstanceGroupManagersAbandonInstancesRequest + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -// MetadataItems: Metadata -type MetadataItems struct { - // Key: Key for the metadata entry. Keys must conform to the following regexp: - // [a-zA-Z0-9-_]+, and be less than 128 bytes in length. This is reflected as - // part of a URL in the metadata server. Additionally, to avoid ambiguity, keys - // must not conflict with any other metadata keys for the project. - Key string `json:"key,omitempty"` - // Value: Value for the metadata entry. These are free-form strings, and only - // have meaning as interpreted by the image running in the instance. The only - // restriction placed on values is that their size must be less than or equal - // to 262144 bytes (256 KiB). - 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 or default values are - // omitted from API requests. See +// InstanceGroupManagersApplyUpdatesRequest: +// InstanceGroupManagers.applyUpdatesToInstances +type InstanceGroupManagersApplyUpdatesRequest struct { + // AllInstances: Flag to update all instances instead of specified list of + // “instances”. + // If the flag is set to true then the instances may not be specified + // in the request. + AllInstances bool `json:"allInstances,omitempty"` + // Instances: The list of URLs of one or more instances for which you want to + // apply + // updates. Each URL can be a full URL or a partial URL, such + // aszones/[ZONE]/instances/[INSTANCE_NAME]. + Instances []string `json:"instances,omitempty"` + // MinimalAction: The minimal action that you want to perform on each instance + // during the + // update: + // + // + // - REPLACE: At minimum, delete the instance and create it + // again. + // - RESTART: Stop the instance and start it + // again. + // - REFRESH: Do not stop the instance and limit + // disruption as much as possible. + // - NONE: Do not + // disrupt the instance at all. + // + // + // By default, the minimum action is NONE. If your update + // requires a more disruptive action than you set with this flag, the + // necessary action is performed to execute the update. + // + // Possible values: + // "NONE" - Do not perform any action. + // "REFRESH" - Do not stop the instance. + // "REPLACE" - (Default.) Replace the instance according to the replacement + // method + // option. + // "RESTART" - Stop the instance and start it again. + MinimalAction string `json:"minimalAction,omitempty"` + // MostDisruptiveAllowedAction: The most disruptive action that you want to + // perform on each instance during + // the update: + // + // + // - REPLACE: Delete the instance and create it again. + // - RESTART: Stop the instance and start it again. + // - REFRESH: Do not stop the instance and limit disruption + // as much as possible. + // - NONE: Do not disrupt the + // instance at all. + // + // + // By default, the most disruptive allowed action is REPLACE. If + // your update requires a more disruptive action than you set with this + // flag, + // the update request will fail. + // + // Possible values: + // "NONE" - Do not perform any action. + // "REFRESH" - Do not stop the instance. + // "REPLACE" - (Default.) Replace the instance according to the replacement + // method + // option. + // "RESTART" - Stop the instance and start it again. + MostDisruptiveAllowedAction string `json:"mostDisruptiveAllowedAction,omitempty"` + // ForceSendFields is a list of field names (e.g. "AllInstances") to + // unconditionally include in API requests. By default, fields with empty or + // default values are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. 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. See + // NullFields is a list of field names (e.g. "AllInstances") to include in API + // requests with the JSON null value. By default, fields with empty values are + // omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } -func (s *MetadataItems) MarshalJSON() ([]byte, error) { - type NoMethod MetadataItems - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s InstanceGroupManagersApplyUpdatesRequest) MarshalJSON() ([]byte, error) { + type NoMethod InstanceGroupManagersApplyUpdatesRequest + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -// MetadataFilter: Opaque filter criteria used by load balancers to restrict -// routing configuration to a limited set of load balancing proxies. Proxies -// and sidecars involved in load balancing would typically present metadata to -// the load balancers that need to match criteria specified here. If a match -// takes place, the relevant configuration is made available to those proxies. -// For each metadataFilter in this list, if its filterMatchCriteria is set to -// MATCH_ANY, at least one of the filterLabels must match the corresponding -// label provided in the metadata. If its filterMatchCriteria is set to -// MATCH_ALL, then all of its filterLabels must match with corresponding labels -// provided in the metadata. An example for using metadataFilters would be: if -// load balancing involves Envoys, they receive routing configuration when -// values in metadataFilters match values supplied in of their XDS requests to -// loadbalancers. -type MetadataFilter struct { - // FilterLabels: The list of label value pairs that must match labels in the - // provided metadata based on filterMatchCriteria This list must not be empty - // and can have at the most 64 entries. - FilterLabels []*MetadataFilterLabelMatch `json:"filterLabels,omitempty"` - // FilterMatchCriteria: Specifies how individual filter label matches within - // the list of filterLabels and contributes toward the overall metadataFilter - // match. Supported values are: - MATCH_ANY: at least one of the filterLabels - // must have a matching label in the provided metadata. - MATCH_ALL: all - // filterLabels must have matching labels in the provided metadata. - // - // Possible values: - // "MATCH_ALL" - Specifies that all filterLabels must match for the - // metadataFilter to be considered a match. - // "MATCH_ANY" - Specifies that any filterLabel must match for the - // metadataFilter to be considered a match. - // "NOT_SET" - Indicates that the match criteria was not set. A - // metadataFilter must never be created with this value. - FilterMatchCriteria string `json:"filterMatchCriteria,omitempty"` - // ForceSendFields is a list of field names (e.g. "FilterLabels") to +// InstanceGroupManagersCreateInstancesRequest: +// InstanceGroupManagers.createInstances +type InstanceGroupManagersCreateInstancesRequest struct { + // Instances: [Required] List of specifications of per-instance configs. + Instances []*PerInstanceConfig `json:"instances,omitempty"` + // ForceSendFields is a list of field names (e.g. "Instances") to // unconditionally include in API requests. By default, fields with empty or // default values are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. ForceSendFields []string `json:"-"` - // NullFields is a list of field names (e.g. "FilterLabels") to include in API + // NullFields is a list of field names (e.g. "Instances") to include in API // requests with the JSON null value. By default, fields with empty values are // omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } -func (s *MetadataFilter) MarshalJSON() ([]byte, error) { - type NoMethod MetadataFilter - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s InstanceGroupManagersCreateInstancesRequest) MarshalJSON() ([]byte, error) { + type NoMethod InstanceGroupManagersCreateInstancesRequest + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -// MetadataFilterLabelMatch: MetadataFilter label name value pairs that are -// expected to match corresponding labels presented as metadata to the load -// balancer. -type MetadataFilterLabelMatch struct { - // Name: Name of metadata label. The name can have a maximum length of 1024 - // characters and must be at least 1 character long. - Name string `json:"name,omitempty"` - // Value: The value of the label must match the specified value. value can have - // a maximum length of 1024 characters. - Value string `json:"value,omitempty"` - // ForceSendFields is a list of field names (e.g. "Name") to unconditionally - // include in API requests. By default, fields with empty or default values are - // omitted from API requests. See +type InstanceGroupManagersDeleteInstancesRequest struct { + // Instances: The URLs of one or more instances to delete. This can be a full + // URL or + // a partial URL, such as zones/[ZONE]/instances/[INSTANCE_NAME]. + // Queued instances do not have URL and can be deleted only by name. + // One cannot specify both URLs and names in a single request. + Instances []string `json:"instances,omitempty"` + // SkipInstancesOnValidationError: Specifies whether the request should proceed + // despite the inclusion of + // instances that are not members of the group or that are already in + // the + // process of being deleted or abandoned. If this field is set to `false` + // and + // such an instance is specified in the request, the operation fails. + // The + // operation always fails if the request contains a malformed instance URL or + // a reference to an instance that exists in a zone or region other than + // the + // group's zone or region. + SkipInstancesOnValidationError bool `json:"skipInstancesOnValidationError,omitempty"` + // ForceSendFields is a list of field names (e.g. "Instances") to + // unconditionally include in API requests. By default, fields with empty or + // default values are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. ForceSendFields []string `json:"-"` - // NullFields is a list of field names (e.g. "Name") to include in API requests - // with the JSON null value. By default, fields with empty values are omitted - // from API requests. See + // NullFields is a list of field names (e.g. "Instances") to include in API + // requests with the JSON null value. By default, fields with empty values are + // omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } -func (s *MetadataFilterLabelMatch) MarshalJSON() ([]byte, error) { - type NoMethod MetadataFilterLabelMatch - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s InstanceGroupManagersDeleteInstancesRequest) MarshalJSON() ([]byte, error) { + type NoMethod InstanceGroupManagersDeleteInstancesRequest + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -// NamedPort: The named port. For example: <"http", 80>. -type NamedPort struct { - // Name: The name for this named port. The name must be 1-63 characters long, - // and comply with RFC1035. - Name string `json:"name,omitempty"` - // Port: The port number, which can be a value between 1 and 65535. - Port int64 `json:"port,omitempty"` - // ForceSendFields is a list of field names (e.g. "Name") to unconditionally +// InstanceGroupManagersDeletePerInstanceConfigsReq: +// InstanceGroupManagers.deletePerInstanceConfigs +type InstanceGroupManagersDeletePerInstanceConfigsReq struct { + // Names: The list of instance names for which we want to delete per-instance + // configs + // on this managed instance group. + Names []string `json:"names,omitempty"` + // ForceSendFields is a list of field names (e.g. "Names") to unconditionally // include in API requests. By default, fields with empty or default values are // omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. ForceSendFields []string `json:"-"` - // NullFields is a list of field names (e.g. "Name") to include in API requests - // with the JSON null value. By default, fields with empty values are omitted - // from API requests. See + // NullFields is a list of field names (e.g. "Names") to include in API + // requests with the JSON null value. By default, fields with empty values are + // omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } -func (s *NamedPort) MarshalJSON() ([]byte, error) { - type NoMethod NamedPort - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s InstanceGroupManagersDeletePerInstanceConfigsReq) MarshalJSON() ([]byte, error) { + type NoMethod InstanceGroupManagersDeletePerInstanceConfigsReq + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -// NatIpInfo: Contains NAT IP information of a NAT config (i.e. usage status, -// mode). -type NatIpInfo struct { - // NatIpInfoMappings: A list of all NAT IPs assigned to this NAT config. - NatIpInfoMappings []*NatIpInfoNatIpInfoMapping `json:"natIpInfoMappings,omitempty"` - // NatName: Name of the NAT config which the NAT IP belongs to. - NatName string `json:"natName,omitempty"` - // ForceSendFields is a list of field names (e.g. "NatIpInfoMappings") to - // unconditionally include in API requests. By default, fields with empty or - // default values are omitted from API requests. See +type InstanceGroupManagersListErrorsResponse struct { + // Items: Output only. [Output Only] The list of errors of the managed instance + // group. + Items []*InstanceManagedByIgmError `json:"items,omitempty"` + // NextPageToken: Output only. [Output Only] This token allows you to get the + // next page of results for + // list requests. If the number of results is larger thanmaxResults, 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"` + + // ServerResponse contains the HTTP response code and headers from the server. + googleapi.ServerResponse `json:"-"` + // ForceSendFields is a list of field names (e.g. "Items") to unconditionally + // include in API requests. By default, fields with empty or default values are + // omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. ForceSendFields []string `json:"-"` - // NullFields is a list of field names (e.g. "NatIpInfoMappings") to include in - // API requests with the JSON null value. By default, fields with empty values - // are omitted from API requests. See + // NullFields is a list of field names (e.g. "Items") to include in API + // requests with the JSON null value. By default, fields with empty values are + // omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } -func (s *NatIpInfo) MarshalJSON() ([]byte, error) { - type NoMethod NatIpInfo - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s InstanceGroupManagersListErrorsResponse) MarshalJSON() ([]byte, error) { + type NoMethod InstanceGroupManagersListErrorsResponse + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -// NatIpInfoNatIpInfoMapping: Contains information of a NAT IP. -type NatIpInfoNatIpInfoMapping struct { - // Mode: Specifies whether NAT IP is auto or manual. - // - // Possible values: - // "AUTO" - // "MANUAL" - Mode string `json:"mode,omitempty"` - // NatIp: NAT IP address. For example: 203.0.113.11. - NatIp string `json:"natIp,omitempty"` - // Usage: Specifies whether NAT IP is currently serving at least one endpoint - // or not. - // - // Possible values: - // "IN_USE" - // "UNUSED" - Usage string `json:"usage,omitempty"` - // ForceSendFields is a list of field names (e.g. "Mode") to unconditionally - // include in API requests. By default, fields with empty or default values are - // omitted from API requests. See +type InstanceGroupManagersListManagedInstancesResponse struct { + // ManagedInstances: Output only. [Output Only] The list of instances in the + // managed instance group. + ManagedInstances []*ManagedInstance `json:"managedInstances,omitempty"` + // NextPageToken: Output only. [Output Only] This token allows you to get the + // next page of results for + // list requests. If the number of results is larger thanmaxResults, 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"` + + // ServerResponse contains the HTTP response code and headers from the server. + googleapi.ServerResponse `json:"-"` + // ForceSendFields is a list of field names (e.g. "ManagedInstances") to + // unconditionally include in API requests. By default, fields with empty or + // default values are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. ForceSendFields []string `json:"-"` - // NullFields is a list of field names (e.g. "Mode") to include in API requests - // with the JSON null value. By default, fields with empty values are omitted - // from API requests. See + // NullFields is a list of field names (e.g. "ManagedInstances") to include in + // API requests with the JSON null value. By default, fields with empty values + // are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } -func (s *NatIpInfoNatIpInfoMapping) MarshalJSON() ([]byte, error) { - type NoMethod NatIpInfoNatIpInfoMapping - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s InstanceGroupManagersListManagedInstancesResponse) MarshalJSON() ([]byte, error) { + type NoMethod InstanceGroupManagersListManagedInstancesResponse + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -type NatIpInfoResponse struct { - // Result: [Output Only] A list of NAT IP information. - Result []*NatIpInfo `json:"result,omitempty"` +type InstanceGroupManagersListPerInstanceConfigsResp struct { + // Items: Output only. [Output Only] The list of PerInstanceConfig. + Items []*PerInstanceConfig `json:"items,omitempty"` + // NextPageToken: Output only. [Output Only] This token allows you to get the + // next page of results for + // list requests. If the number of results is larger thanmaxResults, 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"` + // Warning: Output only. [Output Only] Informational warning message. + Warning *InstanceGroupManagersListPerInstanceConfigsRespWarning `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. "Result") to unconditionally + // ForceSendFields is a list of field names (e.g. "Items") to unconditionally // include in API requests. By default, fields with empty or default values are // omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. ForceSendFields []string `json:"-"` - // NullFields is a list of field names (e.g. "Result") to include in API + // NullFields is a list of field names (e.g. "Items") to include in API // requests with the JSON null value. By default, fields with empty values are // omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } -func (s *NatIpInfoResponse) MarshalJSON() ([]byte, error) { - type NoMethod NatIpInfoResponse - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s InstanceGroupManagersListPerInstanceConfigsResp) MarshalJSON() ([]byte, error) { + type NoMethod InstanceGroupManagersListPerInstanceConfigsResp + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -// Network: Represents a VPC Network resource. Networks connect resources to -// each other and to the internet. For more information, read Virtual Private -// Cloud (VPC) Network. -type Network struct { - // IPv4Range: Deprecated in favor of subnet mode networks. The range of - // internal addresses that are legal on this network. This range is a CIDR - // specification, for example: 192.168.0.0/16. Provided by the client when the - // network is created. - IPv4Range string `json:"IPv4Range,omitempty"` - // AutoCreateSubnetworks: Must be set to create a VPC network. If not set, a - // legacy network is created. When set to true, the VPC network is created in - // auto mode. When set to false, the VPC network is created in custom mode. An - // auto mode VPC network starts with one subnet per region. Each subnet has a - // predetermined range as described in Auto mode VPC network IP ranges. For - // custom mode VPC networks, you can add subnets using the subnetworks insert - // method. - AutoCreateSubnetworks bool `json:"autoCreateSubnetworks,omitempty"` - // CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text format. - CreationTimestamp string `json:"creationTimestamp,omitempty"` - // Description: An optional description of this resource. Provide this field - // when you create the resource. - Description string `json:"description,omitempty"` - // EnableUlaInternalIpv6: Enable ULA internal ipv6 on this network. Enabling - // this feature will assign a /48 from google defined ULA prefix fd20::/20. . - EnableUlaInternalIpv6 bool `json:"enableUlaInternalIpv6,omitempty"` - // FirewallPolicy: [Output Only] URL of the firewall policy the network is - // associated with. - FirewallPolicy string `json:"firewallPolicy,omitempty"` - // GatewayIPv4: [Output Only] The gateway address for default routing out of - // the network, selected by Google Cloud. - GatewayIPv4 string `json:"gatewayIPv4,omitempty"` - // Id: [Output Only] The unique identifier for the resource. This identifier is - // defined by the server. - Id uint64 `json:"id,omitempty,string"` - // InternalIpv6Range: When enabling ula internal ipv6, caller optionally can - // specify the /48 range they want from the google defined ULA prefix - // fd20::/20. The input must be a valid /48 ULA IPv6 address and must be within - // the fd20::/20. Operation will fail if the speficied /48 is already in used - // by another resource. If the field is not speficied, then a /48 range will be - // randomly allocated from fd20::/20 and returned via this field. . - InternalIpv6Range string `json:"internalIpv6Range,omitempty"` - // Kind: [Output Only] Type of the resource. Always compute#network for - // networks. - Kind string `json:"kind,omitempty"` - // Mtu: Maximum Transmission Unit in bytes. The minimum value for this field is - // 1300 and the maximum value is 8896. The suggested value is 1500, which is - // the default MTU used on the Internet, or 8896 if you want to use Jumbo - // frames. If unspecified, the value defaults to 1460. - Mtu int64 `json:"mtu,omitempty"` - // Name: Name of the resource. Provided by the client when the resource is - // created. The name must be 1-63 characters long, and comply with RFC1035. - // Specifically, the name must be 1-63 characters long and match the regular - // expression `[a-z]([-a-z0-9]*[a-z0-9])?`. The first character must be a - // lowercase letter, and all following characters (except for the last - // character) must be a dash, lowercase letter, or digit. The last character - // must be a lowercase letter or digit. - Name string `json:"name,omitempty"` - // NetworkFirewallPolicyEnforcementOrder: The network firewall policy - // enforcement order. Can be either AFTER_CLASSIC_FIREWALL or - // BEFORE_CLASSIC_FIREWALL. Defaults to AFTER_CLASSIC_FIREWALL if the field is - // not specified. - // - // Possible values: - // "AFTER_CLASSIC_FIREWALL" - // "BEFORE_CLASSIC_FIREWALL" - NetworkFirewallPolicyEnforcementOrder string `json:"networkFirewallPolicyEnforcementOrder,omitempty"` - // Peerings: [Output Only] A list of network peerings for the resource. - Peerings []*NetworkPeering `json:"peerings,omitempty"` - // RoutingConfig: The network-level routing configuration for this network. - // Used by Cloud Router to determine what type of network-wide routing behavior - // to enforce. - RoutingConfig *NetworkRoutingConfig `json:"routingConfig,omitempty"` - // SelfLink: [Output Only] Server-defined URL for the resource. - SelfLink string `json:"selfLink,omitempty"` - // SelfLinkWithId: [Output Only] Server-defined URL for this resource with the - // resource id. - SelfLinkWithId string `json:"selfLinkWithId,omitempty"` - // Subnetworks: [Output Only] Server-defined fully-qualified URLs for all - // subnetworks in this VPC network. - Subnetworks []string `json:"subnetworks,omitempty"` - - // ServerResponse contains the HTTP response code and headers from the server. - googleapi.ServerResponse `json:"-"` - // ForceSendFields is a list of field names (e.g. "IPv4Range") to - // unconditionally include in API requests. By default, fields with empty or - // default values are omitted from API requests. See - // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more - // details. - ForceSendFields []string `json:"-"` - // NullFields is a list of field names (e.g. "IPv4Range") to include in API - // requests with the JSON null value. By default, fields with empty values are - // omitted from API requests. See - // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. - NullFields []string `json:"-"` -} - -func (s *Network) MarshalJSON() ([]byte, error) { - type NoMethod Network - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) -} - -// NetworkAttachment: NetworkAttachments A network attachment resource ... -type NetworkAttachment struct { - // ConnectionEndpoints: [Output Only] An array of connections for all the - // producers connected to this network attachment. - ConnectionEndpoints []*NetworkAttachmentConnectedEndpoint `json:"connectionEndpoints,omitempty"` - // Possible values: - // "ACCEPT_AUTOMATIC" - // "ACCEPT_MANUAL" - // "INVALID" - ConnectionPreference string `json:"connectionPreference,omitempty"` - // CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text format. - CreationTimestamp string `json:"creationTimestamp,omitempty"` - // Description: An optional description of this resource. Provide this property - // when you create the resource. - Description string `json:"description,omitempty"` - // Fingerprint: Fingerprint of this resource. A hash of the contents stored in - // this object. This field is used in optimistic locking. An up-to-date - // fingerprint must be provided in order to patch. - Fingerprint string `json:"fingerprint,omitempty"` - // Id: [Output Only] The unique identifier for the resource type. The server - // generates this identifier. - Id uint64 `json:"id,omitempty,string"` - // Kind: [Output Only] Type of the resource. - Kind string `json:"kind,omitempty"` - // Name: Name of the resource. Provided by the client when the resource is - // created. The name must be 1-63 characters long, and comply with RFC1035. - // 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. - Name string `json:"name,omitempty"` - // Network: [Output Only] The URL of the network which the Network Attachment - // belongs to. Practically it is inferred by fetching the network of the first - // subnetwork associated. Because it is required that all the subnetworks must - // be from the same network, it is assured that the Network Attachment belongs - // to the same network as all the subnetworks. - Network string `json:"network,omitempty"` - // ProducerAcceptLists: Projects that are allowed to connect to this network - // attachment. The project can be specified using its id or number. - ProducerAcceptLists []string `json:"producerAcceptLists,omitempty"` - // ProducerRejectLists: Projects that are not allowed to connect to this - // network attachment. The project can be specified using its id or number. - ProducerRejectLists []string `json:"producerRejectLists,omitempty"` - // Region: [Output Only] URL of the region where the network attachment - // resides. This field applies only to the region resource. You must specify - // this field as part of the HTTP request URL. It is not settable as a field in - // the request body. - Region string `json:"region,omitempty"` - // SelfLink: [Output Only] Server-defined URL for the resource. - SelfLink string `json:"selfLink,omitempty"` - // SelfLinkWithId: [Output Only] Server-defined URL for this resource's - // resource id. - SelfLinkWithId string `json:"selfLinkWithId,omitempty"` - // Subnetworks: An array of URLs where each entry is the URL of a subnet - // provided by the service consumer to use for endpoints in the producers that - // connect to this network attachment. - Subnetworks []string `json:"subnetworks,omitempty"` - - // ServerResponse contains the HTTP response code and headers from the server. - googleapi.ServerResponse `json:"-"` - // ForceSendFields is a list of field names (e.g. "ConnectionEndpoints") to - // unconditionally include in API requests. By default, fields with empty or - // default values are omitted from API requests. See - // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more - // details. - ForceSendFields []string `json:"-"` - // NullFields is a list of field names (e.g. "ConnectionEndpoints") to include - // in API requests with the JSON null value. By default, fields with empty - // values are omitted from API requests. See - // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. - NullFields []string `json:"-"` -} - -func (s *NetworkAttachment) MarshalJSON() ([]byte, error) { - type NoMethod NetworkAttachment - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) -} - -// NetworkAttachmentAggregatedList: Contains a list of -// NetworkAttachmentsScopedList. -type NetworkAttachmentAggregatedList struct { - // Id: [Output Only] Unique identifier for the resource; defined by the server. - Id string `json:"id,omitempty"` - // Items: A list of NetworkAttachmentsScopedList resources. - Items map[string]NetworkAttachmentsScopedList `json:"items,omitempty"` - 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"` - // SelfLink: [Output Only] Server-defined URL for this resource. - SelfLink string `json:"selfLink,omitempty"` - // Warning: [Output Only] Informational warning message. - Warning *NetworkAttachmentAggregatedListWarning `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 or default values are - // omitted from API requests. See - // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more - // details. - 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. See - // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. - NullFields []string `json:"-"` -} - -func (s *NetworkAttachmentAggregatedList) MarshalJSON() ([]byte, error) { - type NoMethod NetworkAttachmentAggregatedList - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) -} - -// NetworkAttachmentAggregatedListWarning: [Output Only] Informational warning -// message. -type NetworkAttachmentAggregatedListWarning 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. +// InstanceGroupManagersListPerInstanceConfigsRespWarning: Output only. [Output +// Only] Informational warning message. +type InstanceGroupManagersListPerInstanceConfigsRespWarning 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" - Warning about failed cleanup of transient changes made - // by a failed operation. + // by a failed + // operation. // "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was created. // "DEPRECATED_TYPE_USED" - When deploying and at least one of the resources - // has a type marked as deprecated + // has a type marked as + // deprecated // "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk that is // larger than image size. // "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the - // resources has a type marked as experimental + // resources has a type marked as + // experimental // "EXTERNAL_API_WARNING" - Warning that is present in an external api call // "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been - // overridden. Deprecated unused field. + // overridden. + // Deprecated unused field. // "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an injected // kernel, which is deprecated. // "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB" - A WEIGHTED_MAGLEV backend - // service is associated with a health check that is not of type - // HTTP/HTTPS/HTTP2. + // service is associated with a health check that is + // not of type HTTP/HTTPS/HTTP2. // "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a // exceedingly large number of resources // "LIST_OVERHEAD_QUOTA_EXCEED" - Resource can't be retrieved due to list - // overhead quota exceed which captures the amount of resources filtered out by + // overhead quota exceed + // which captures the amount of resources filtered out by // user-defined list filter. // "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is not - // assigned to an instance on the network. + // assigned to an instance on the + // network. // "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot ip // forward. // "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE" - The route's nextHopInstance - // URL refers to an instance that does not have an ipv6 interface on the same - // network as the route. + // URL refers to an instance that does not have an + // ipv6 interface on the same network as the route. // "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL refers to // an instance that does not exist. // "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance URL - // refers to an instance that is not on the same network as the route. + // refers to an instance that is not on the + // same network as the route. // "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not have a // status of RUNNING. // "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to continue - // the process despite the mentioned error. + // the process despite + // the mentioned error. // "NO_RESULTS_ON_PAGE" - No results are present on a particular list page. // "PARTIAL_SUCCESS" - Success is reported, but some results may be missing // due to errors + // "QUOTA_INFO_UNAVAILABLE" - Quota information is not available to client + // requests (e.g: + // regions.list). // "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource that - // requires a TOS they have not accepted. + // requires a TOS they have not + // accepted. // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a resource is // in use. // "RESOURCE_NOT_DELETED" - One or more of the resources set to auto-delete - // could not be deleted because they were in use. + // could not be deleted + // because they were in use. // "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is // ignored. // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in instance - // group manager is valid as such, but its application does not make a lot of - // sense, because it allows only single instance in instance group. + // group manager is valid as such, but + // its application does not make a lot of sense, because it allows only + // single instance in instance group. // "UNDECLARED_PROPERTIES" - When undeclared properties in the schema are // present // "UNREACHABLE" - A given scope cannot be reached. 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 []*NetworkAttachmentAggregatedListWarningData `json:"data,omitempty"` + // Data: [Output Only] Metadata about this warning in key: + // value format. For example: + // + // "data": [ + // { + // "key": "scope", + // "value": "zones/us-east1-d" + // } + Data []*InstanceGroupManagersListPerInstanceConfigsRespWarningData `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 @@ -25350,19 +30681,22 @@ type NetworkAttachmentAggregatedListWarning struct { NullFields []string `json:"-"` } -func (s *NetworkAttachmentAggregatedListWarning) MarshalJSON() ([]byte, error) { - type NoMethod NetworkAttachmentAggregatedListWarning - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s InstanceGroupManagersListPerInstanceConfigsRespWarning) MarshalJSON() ([]byte, error) { + type NoMethod InstanceGroupManagersListPerInstanceConfigsRespWarning + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -type NetworkAttachmentAggregatedListWarningData 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). +type InstanceGroupManagersListPerInstanceConfigsRespWarningData 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"` @@ -25379,166 +30713,198 @@ type NetworkAttachmentAggregatedListWarningData struct { NullFields []string `json:"-"` } -func (s *NetworkAttachmentAggregatedListWarningData) MarshalJSON() ([]byte, error) { - type NoMethod NetworkAttachmentAggregatedListWarningData - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s InstanceGroupManagersListPerInstanceConfigsRespWarningData) MarshalJSON() ([]byte, error) { + type NoMethod InstanceGroupManagersListPerInstanceConfigsRespWarningData + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -// NetworkAttachmentConnectedEndpoint: [Output Only] A connection connected to -// this network attachment. -type NetworkAttachmentConnectedEndpoint struct { - // IpAddress: The IPv4 address assigned to the producer instance network - // interface. This value will be a range in case of Serverless. - IpAddress string `json:"ipAddress,omitempty"` - // Ipv6Address: The IPv6 address assigned to the producer instance network - // interface. This is only assigned when the stack types of both the instance - // network interface and the consumer subnet are IPv4_IPv6. - Ipv6Address string `json:"ipv6Address,omitempty"` - // ProjectIdOrNum: The project id or number of the interface to which the IP - // was assigned. - ProjectIdOrNum string `json:"projectIdOrNum,omitempty"` - // SecondaryIpCidrRanges: Alias IP ranges from the same subnetwork. - SecondaryIpCidrRanges []string `json:"secondaryIpCidrRanges,omitempty"` - // Status: The status of a connected endpoint to this network attachment. - // - // Possible values: - // "ACCEPTED" - The consumer allows traffic from the producer to reach its - // VPC. - // "CLOSED" - The consumer network attachment no longer exists. - // "NEEDS_ATTENTION" - The consumer needs to take further action before - // traffic can be served. - // "PENDING" - The consumer neither allows nor prohibits traffic from the - // producer to reach its VPC. - // "REJECTED" - The consumer prohibits traffic from the producer to reach its - // VPC. - // "STATUS_UNSPECIFIED" - Status string `json:"status,omitempty"` - // Subnetwork: The subnetwork used to assign the IP to the producer instance - // network interface. - Subnetwork string `json:"subnetwork,omitempty"` - // SubnetworkCidrRange: [Output Only] The CIDR range of the subnet from which - // the IPv4 internal IP was allocated from. - SubnetworkCidrRange string `json:"subnetworkCidrRange,omitempty"` - // ForceSendFields is a list of field names (e.g. "IpAddress") to +// InstanceGroupManagersPatchPerInstanceConfigsReq: +// InstanceGroupManagers.patchPerInstanceConfigs +type InstanceGroupManagersPatchPerInstanceConfigsReq struct { + // PerInstanceConfigs: The list of per-instance configurations to insert or + // patch on this managed + // instance group. + PerInstanceConfigs []*PerInstanceConfig `json:"perInstanceConfigs,omitempty"` + // ForceSendFields is a list of field names (e.g. "PerInstanceConfigs") to // unconditionally include in API requests. By default, fields with empty or // default values are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. ForceSendFields []string `json:"-"` - // NullFields is a list of field names (e.g. "IpAddress") to include in API + // NullFields is a list of field names (e.g. "PerInstanceConfigs") to include + // in API requests with the JSON null value. By default, fields with empty + // values are omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s InstanceGroupManagersPatchPerInstanceConfigsReq) MarshalJSON() ([]byte, error) { + type NoMethod InstanceGroupManagersPatchPerInstanceConfigsReq + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +type InstanceGroupManagersRecreateInstancesRequest struct { + // Instances: The URLs of one or more instances to recreate. This can be a full + // URL or + // a partial URL, such as zones/[ZONE]/instances/[INSTANCE_NAME]. + Instances []string `json:"instances,omitempty"` + // ForceSendFields is a list of field names (e.g. "Instances") to + // unconditionally include in API requests. By default, fields with empty or + // default values are omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + ForceSendFields []string `json:"-"` + // NullFields is a list of field names (e.g. "Instances") to include in API // requests with the JSON null value. By default, fields with empty values are // omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } -func (s *NetworkAttachmentConnectedEndpoint) MarshalJSON() ([]byte, error) { - type NoMethod NetworkAttachmentConnectedEndpoint - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s InstanceGroupManagersRecreateInstancesRequest) MarshalJSON() ([]byte, error) { + type NoMethod InstanceGroupManagersRecreateInstancesRequest + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -type NetworkAttachmentList struct { - // Id: [Output Only] Unique identifier for the resource; defined by the server. - Id string `json:"id,omitempty"` - // Items: A list of NetworkAttachment resources. - Items []*NetworkAttachment `json:"items,omitempty"` - 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"` - // SelfLink: [Output Only] Server-defined URL for this resource. - SelfLink string `json:"selfLink,omitempty"` - // Warning: [Output Only] Informational warning message. - Warning *NetworkAttachmentListWarning `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 or default values are +type InstanceGroupManagersResumeInstancesRequest struct { + // Instances: The URLs of one or more instances to resume. This can be a full + // URL or + // a partial URL, such as zones/[ZONE]/instances/[INSTANCE_NAME]. + Instances []string `json:"instances,omitempty"` + // ForceSendFields is a list of field names (e.g. "Instances") to + // unconditionally include in API requests. By default, fields with empty or + // default values are omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + ForceSendFields []string `json:"-"` + // NullFields is a list of field names (e.g. "Instances") to include in API + // requests with the JSON null value. By default, fields with empty values are // omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s InstanceGroupManagersResumeInstancesRequest) MarshalJSON() ([]byte, error) { + type NoMethod InstanceGroupManagersResumeInstancesRequest + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +type InstanceGroupManagersScopedList struct { + // InstanceGroupManagers: Output only. The list of managed instance groups that + // are contained in the specified + // project and zone. + InstanceGroupManagers []*InstanceGroupManager `json:"instanceGroupManagers,omitempty"` + // Warning: Output only. The warning that replaces the list of managed instance + // groups when the list + // is empty. + Warning *InstanceGroupManagersScopedListWarning `json:"warning,omitempty"` + // ForceSendFields is a list of field names (e.g. "InstanceGroupManagers") to + // unconditionally include in API requests. By default, fields with empty or + // default values are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. 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. See + // NullFields is a list of field names (e.g. "InstanceGroupManagers") to + // include in API requests with the JSON null value. By default, fields with + // empty values are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } -func (s *NetworkAttachmentList) MarshalJSON() ([]byte, error) { - type NoMethod NetworkAttachmentList - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s InstanceGroupManagersScopedList) MarshalJSON() ([]byte, error) { + type NoMethod InstanceGroupManagersScopedList + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -// NetworkAttachmentListWarning: [Output Only] Informational warning message. -type NetworkAttachmentListWarning 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. +// InstanceGroupManagersScopedListWarning: Output only. The warning that +// replaces the list of managed instance groups when the list +// is empty. +type InstanceGroupManagersScopedListWarning 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" - Warning about failed cleanup of transient changes made - // by a failed operation. + // by a failed + // operation. // "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was created. // "DEPRECATED_TYPE_USED" - When deploying and at least one of the resources - // has a type marked as deprecated + // has a type marked as + // deprecated // "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk that is // larger than image size. // "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the - // resources has a type marked as experimental + // resources has a type marked as + // experimental // "EXTERNAL_API_WARNING" - Warning that is present in an external api call // "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been - // overridden. Deprecated unused field. + // overridden. + // Deprecated unused field. // "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an injected // kernel, which is deprecated. // "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB" - A WEIGHTED_MAGLEV backend - // service is associated with a health check that is not of type - // HTTP/HTTPS/HTTP2. + // service is associated with a health check that is + // not of type HTTP/HTTPS/HTTP2. // "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a // exceedingly large number of resources // "LIST_OVERHEAD_QUOTA_EXCEED" - Resource can't be retrieved due to list - // overhead quota exceed which captures the amount of resources filtered out by + // overhead quota exceed + // which captures the amount of resources filtered out by // user-defined list filter. // "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is not - // assigned to an instance on the network. + // assigned to an instance on the + // network. // "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot ip // forward. // "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE" - The route's nextHopInstance - // URL refers to an instance that does not have an ipv6 interface on the same - // network as the route. + // URL refers to an instance that does not have an + // ipv6 interface on the same network as the route. // "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL refers to // an instance that does not exist. // "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance URL - // refers to an instance that is not on the same network as the route. + // refers to an instance that is not on the + // same network as the route. // "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not have a // status of RUNNING. // "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to continue - // the process despite the mentioned error. + // the process despite + // the mentioned error. // "NO_RESULTS_ON_PAGE" - No results are present on a particular list page. // "PARTIAL_SUCCESS" - Success is reported, but some results may be missing // due to errors + // "QUOTA_INFO_UNAVAILABLE" - Quota information is not available to client + // requests (e.g: + // regions.list). // "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource that - // requires a TOS they have not accepted. + // requires a TOS they have not + // accepted. // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a resource is // in use. // "RESOURCE_NOT_DELETED" - One or more of the resources set to auto-delete - // could not be deleted because they were in use. + // could not be deleted + // because they were in use. // "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is // ignored. // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in instance - // group manager is valid as such, but its application does not make a lot of - // sense, because it allows only single instance in instance group. + // group manager is valid as such, but + // its application does not make a lot of sense, because it allows only + // single instance in instance group. // "UNDECLARED_PROPERTIES" - When undeclared properties in the schema are // present // "UNREACHABLE" - A given scope cannot be reached. 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 []*NetworkAttachmentListWarningData `json:"data,omitempty"` + // Data: [Output Only] Metadata about this warning in key: + // value format. For example: + // + // "data": [ + // { + // "key": "scope", + // "value": "zones/us-east1-d" + // } + Data []*InstanceGroupManagersScopedListWarningData `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 @@ -25554,19 +30920,22 @@ type NetworkAttachmentListWarning struct { NullFields []string `json:"-"` } -func (s *NetworkAttachmentListWarning) MarshalJSON() ([]byte, error) { - type NoMethod NetworkAttachmentListWarning - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s InstanceGroupManagersScopedListWarning) MarshalJSON() ([]byte, error) { + type NoMethod InstanceGroupManagersScopedListWarning + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -type NetworkAttachmentListWarningData 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). +type InstanceGroupManagersScopedListWarningData 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"` @@ -25583,322 +30952,329 @@ type NetworkAttachmentListWarningData struct { NullFields []string `json:"-"` } -func (s *NetworkAttachmentListWarningData) MarshalJSON() ([]byte, error) { - type NoMethod NetworkAttachmentListWarningData - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s InstanceGroupManagersScopedListWarningData) MarshalJSON() ([]byte, error) { + type NoMethod InstanceGroupManagersScopedListWarningData + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -type NetworkAttachmentsScopedList struct { - // NetworkAttachments: A list of NetworkAttachments contained in this scope. - NetworkAttachments []*NetworkAttachment `json:"networkAttachments,omitempty"` - // Warning: Informational warning which replaces the list of network - // attachments when the list is empty. - Warning *NetworkAttachmentsScopedListWarning `json:"warning,omitempty"` - // ForceSendFields is a list of field names (e.g. "NetworkAttachments") to +type InstanceGroupManagersSetInstanceTemplateRequest struct { + // InstanceTemplate: The URL of the instance template that is specified for + // this managed + // instance group. The group uses this template to create all new instances + // in the managed instance group. The templates for existing instances in + // the + // group do not change unless you run recreateInstances, + // runapplyUpdatesToInstances, or set the group'supdatePolicy.type to + // PROACTIVE. + InstanceTemplate string `json:"instanceTemplate,omitempty"` + // ForceSendFields is a list of field names (e.g. "InstanceTemplate") to // unconditionally include in API requests. By default, fields with empty or // default values are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. ForceSendFields []string `json:"-"` - // NullFields is a list of field names (e.g. "NetworkAttachments") to include - // in API requests with the JSON null value. By default, fields with empty - // values are omitted from API requests. See + // NullFields is a list of field names (e.g. "InstanceTemplate") to include in + // API requests with the JSON null value. By default, fields with empty values + // are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } -func (s *NetworkAttachmentsScopedList) MarshalJSON() ([]byte, error) { - type NoMethod NetworkAttachmentsScopedList - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s InstanceGroupManagersSetInstanceTemplateRequest) MarshalJSON() ([]byte, error) { + type NoMethod InstanceGroupManagersSetInstanceTemplateRequest + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -// NetworkAttachmentsScopedListWarning: Informational warning which replaces -// the list of network attachments when the list is empty. -type NetworkAttachmentsScopedListWarning 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" - Warning about failed cleanup of transient changes made - // by a failed operation. - // "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was created. - // "DEPRECATED_TYPE_USED" - When deploying and at least one of the resources - // has a type marked as deprecated - // "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk that is - // larger than image size. - // "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the - // resources has a type marked as experimental - // "EXTERNAL_API_WARNING" - Warning that is present in an external api call - // "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been - // overridden. Deprecated unused field. - // "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an injected - // kernel, which is deprecated. - // "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB" - A WEIGHTED_MAGLEV backend - // service is associated with a health check that is not of type - // HTTP/HTTPS/HTTP2. - // "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a - // exceedingly large number of resources - // "LIST_OVERHEAD_QUOTA_EXCEED" - Resource can't be retrieved due to list - // overhead quota exceed which captures the amount of resources filtered out by - // user-defined list filter. - // "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type - // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is not - // assigned to an instance on the network. - // "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot ip - // forward. - // "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE" - The route's nextHopInstance - // URL refers to an instance that does not have an ipv6 interface on the same - // network as the route. - // "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL refers to - // an instance that does not exist. - // "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance URL - // refers to an instance that is not on the same network as the route. - // "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not have a - // status of RUNNING. - // "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to continue - // the process despite the mentioned error. - // "NO_RESULTS_ON_PAGE" - No results are present on a particular list page. - // "PARTIAL_SUCCESS" - Success is reported, but some results may be missing - // due to errors - // "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource that - // requires a TOS they have not accepted. - // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a resource is - // in use. - // "RESOURCE_NOT_DELETED" - One or more of the resources set to auto-delete - // could not be deleted because they were in use. - // "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is - // ignored. - // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in instance - // group manager is valid as such, but its application does not make a lot of - // sense, because it allows only single instance in instance group. - // "UNDECLARED_PROPERTIES" - When undeclared properties in the schema are - // present - // "UNREACHABLE" - A given scope cannot be reached. - 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 []*NetworkAttachmentsScopedListWarningData `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 or default values are +type InstanceGroupManagersSetTargetPoolsRequest struct { + // Fingerprint: The fingerprint of the target pools information. Use this + // optional + // property to prevent conflicts when multiple users change the target + // pools + // settings concurrently. Obtain the fingerprint with + // theinstanceGroupManagers.get + // method. Then, include the fingerprint in your request to ensure that you + // do not overwrite changes that were applied from another + // concurrent request. + Fingerprint string `json:"fingerprint,omitempty"` + // TargetPools: The list of target pool URLs that instances in this managed + // instance group + // belong to. The managed instance group applies these target pools to all + // of the instances in the group. Existing instances and new instances in + // the + // group all receive these target pool settings. + TargetPools []string `json:"targetPools,omitempty"` + // ForceSendFields is a list of field names (e.g. "Fingerprint") to + // unconditionally include in API requests. By default, fields with empty or + // default values are omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + ForceSendFields []string `json:"-"` + // NullFields is a list of field names (e.g. "Fingerprint") to include in API + // requests with the JSON null value. By default, fields with empty values are // omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s InstanceGroupManagersSetTargetPoolsRequest) MarshalJSON() ([]byte, error) { + type NoMethod InstanceGroupManagersSetTargetPoolsRequest + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +type InstanceGroupManagersStartInstancesRequest struct { + // Instances: The URLs of one or more instances to start. This can be a full + // URL or + // a partial URL, such as zones/[ZONE]/instances/[INSTANCE_NAME]. + Instances []string `json:"instances,omitempty"` + // ForceSendFields is a list of field names (e.g. "Instances") to + // unconditionally include in API requests. By default, fields with empty or + // default values are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. 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. See + // NullFields is a list of field names (e.g. "Instances") to include in API + // requests with the JSON null value. By default, fields with empty values are + // omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } -func (s *NetworkAttachmentsScopedListWarning) MarshalJSON() ([]byte, error) { - type NoMethod NetworkAttachmentsScopedListWarning - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s InstanceGroupManagersStartInstancesRequest) MarshalJSON() ([]byte, error) { + type NoMethod InstanceGroupManagersStartInstancesRequest + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -type NetworkAttachmentsScopedListWarningData 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 or default values are +type InstanceGroupManagersStopInstancesRequest struct { + // ForceStop: If this flag is set to true, the Instance Group Manager will + // proceed to + // stop the instances, skipping initialization on them. + ForceStop bool `json:"forceStop,omitempty"` + // Instances: The URLs of one or more instances to stop. This can be a full URL + // or + // a partial URL, such as zones/[ZONE]/instances/[INSTANCE_NAME]. + Instances []string `json:"instances,omitempty"` + // ForceSendFields is a list of field names (e.g. "ForceStop") to + // unconditionally include in API requests. By default, fields with empty or + // default values are omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + ForceSendFields []string `json:"-"` + // NullFields is a list of field names (e.g. "ForceStop") to include in API + // requests with the JSON null value. By default, fields with empty values are // omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s InstanceGroupManagersStopInstancesRequest) MarshalJSON() ([]byte, error) { + type NoMethod InstanceGroupManagersStopInstancesRequest + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +type InstanceGroupManagersSuspendInstancesRequest struct { + // ForceSuspend: If this flag is set to true, the Instance Group Manager will + // proceed to + // suspend the instances, skipping initialization on them. + ForceSuspend bool `json:"forceSuspend,omitempty"` + // Instances: The URLs of one or more instances to suspend. This can be a full + // URL or + // a partial URL, such as zones/[ZONE]/instances/[INSTANCE_NAME]. + Instances []string `json:"instances,omitempty"` + // ForceSendFields is a list of field names (e.g. "ForceSuspend") to + // unconditionally include in API requests. By default, fields with empty or + // default values are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. 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. See + // NullFields is a list of field names (e.g. "ForceSuspend") to include in API + // requests with the JSON null value. By default, fields with empty values are + // omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } -func (s *NetworkAttachmentsScopedListWarningData) MarshalJSON() ([]byte, error) { - type NoMethod NetworkAttachmentsScopedListWarningData - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s InstanceGroupManagersSuspendInstancesRequest) MarshalJSON() ([]byte, error) { + type NoMethod InstanceGroupManagersSuspendInstancesRequest + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -// NetworkEdgeSecurityService: Represents a Google Cloud Armor network edge -// security service resource. -type NetworkEdgeSecurityService struct { - // CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text format. - CreationTimestamp string `json:"creationTimestamp,omitempty"` - // Description: An optional description of this resource. Provide this property - // when you create the resource. - Description string `json:"description,omitempty"` - // Fingerprint: Fingerprint of this resource. A hash of the contents stored in - // this object. This field is used in optimistic locking. This field will be - // ignored when inserting a NetworkEdgeSecurityService. An up-to-date - // fingerprint must be provided in order to update the - // NetworkEdgeSecurityService, otherwise the request will fail with error 412 - // conditionNotMet. To see the latest fingerprint, make a get() request to - // retrieve a NetworkEdgeSecurityService. - Fingerprint string `json:"fingerprint,omitempty"` - // Id: [Output Only] The unique identifier for the resource. This identifier is - // defined by the server. - Id uint64 `json:"id,omitempty,string"` - // Kind: [Output only] Type of the resource. Always - // compute#networkEdgeSecurityService for NetworkEdgeSecurityServices - Kind string `json:"kind,omitempty"` - // Name: Name of the resource. Provided by the client when the resource is - // created. The name must be 1-63 characters long, and comply with RFC1035. - // 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. - Name string `json:"name,omitempty"` - // Region: [Output Only] URL of the region where the resource resides. You must - // specify this field as part of the HTTP request URL. It is not settable as a - // field in the request body. - Region string `json:"region,omitempty"` - // SecurityPolicy: The resource URL for the network edge security service - // associated with this network edge security service. - SecurityPolicy string `json:"securityPolicy,omitempty"` - // SelfLink: [Output Only] Server-defined URL for the resource. - SelfLink string `json:"selfLink,omitempty"` - // SelfLinkWithId: [Output Only] Server-defined URL for this resource with the - // resource id. - SelfLinkWithId string `json:"selfLinkWithId,omitempty"` +// InstanceGroupManagersUpdatePerInstanceConfigsReq: +// InstanceGroupManagers.updatePerInstanceConfigs +type InstanceGroupManagersUpdatePerInstanceConfigsReq struct { + // PerInstanceConfigs: The list of per-instance configurations to insert or + // patch on this managed + // instance group. + PerInstanceConfigs []*PerInstanceConfig `json:"perInstanceConfigs,omitempty"` + // ForceSendFields is a list of field names (e.g. "PerInstanceConfigs") to + // unconditionally include in API requests. By default, fields with empty or + // default values are omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + ForceSendFields []string `json:"-"` + // NullFields is a list of field names (e.g. "PerInstanceConfigs") to include + // in API requests with the JSON null value. By default, fields with empty + // values are omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} - // ServerResponse contains the HTTP response code and headers from the server. - googleapi.ServerResponse `json:"-"` - // ForceSendFields is a list of field names (e.g. "CreationTimestamp") to +func (s InstanceGroupManagersUpdatePerInstanceConfigsReq) MarshalJSON() ([]byte, error) { + type NoMethod InstanceGroupManagersUpdatePerInstanceConfigsReq + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +type InstanceGroupsAddInstancesRequest struct { + // Instances: The list of instances to add to the instance group. + Instances []*InstanceReference `json:"instances,omitempty"` + // ForceSendFields is a list of field names (e.g. "Instances") to // unconditionally include in API requests. By default, fields with empty or // default values are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. ForceSendFields []string `json:"-"` - // NullFields is a list of field names (e.g. "CreationTimestamp") to include in - // API requests with the JSON null value. By default, fields with empty values - // are omitted from API requests. See + // NullFields is a list of field names (e.g. "Instances") to include in API + // requests with the JSON null value. By default, fields with empty values are + // omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } -func (s *NetworkEdgeSecurityService) MarshalJSON() ([]byte, error) { - type NoMethod NetworkEdgeSecurityService - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s InstanceGroupsAddInstancesRequest) MarshalJSON() ([]byte, error) { + type NoMethod InstanceGroupsAddInstancesRequest + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -type NetworkEdgeSecurityServiceAggregatedList struct { - Etag string `json:"etag,omitempty"` - // Id: [Output Only] Unique identifier for the resource; defined by the server. +type InstanceGroupsListInstances struct { + // Id: Output only. [Output Only] Unique identifier for the resource; defined + // by the server. Id string `json:"id,omitempty"` - // Items: A list of NetworkEdgeSecurityServicesScopedList resources. - Items map[string]NetworkEdgeSecurityServicesScopedList `json:"items,omitempty"` - // Kind: [Output Only] Type of resource. Always - // compute#networkEdgeSecurityServiceAggregatedList for lists of Network Edge - // Security Services. + // Items: A list of InstanceWithNamedPorts resources. + Items []*InstanceWithNamedPorts `json:"items,omitempty"` + // Kind: Output only. [Output Only] The resource type, which is + // alwayscompute#instanceGroupsListInstances for the list of instances + // in the specified instance group. 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: Output only. [Output Only] This token allows you to get the + // next page of results for + // list requests. If the number of results is larger thanmaxResults, 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"` - // SelfLink: [Output Only] Server-defined URL for this resource. + // SelfLink: Output only. [Output Only] Server-defined URL for this resource. SelfLink string `json:"selfLink,omitempty"` - // Unreachables: [Output Only] Unreachable resources. - Unreachables []string `json:"unreachables,omitempty"` - // Warning: [Output Only] Informational warning message. - Warning *NetworkEdgeSecurityServiceAggregatedListWarning `json:"warning,omitempty"` + // Warning: Output only. [Output Only] Informational warning message. + Warning *InstanceGroupsListInstancesWarning `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. "Etag") to unconditionally + // ForceSendFields is a list of field names (e.g. "Id") to unconditionally // include in API requests. By default, fields with empty or default values are // omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. ForceSendFields []string `json:"-"` - // NullFields is a list of field names (e.g. "Etag") to include in API requests + // 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. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } -func (s *NetworkEdgeSecurityServiceAggregatedList) MarshalJSON() ([]byte, error) { - type NoMethod NetworkEdgeSecurityServiceAggregatedList - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s InstanceGroupsListInstances) MarshalJSON() ([]byte, error) { + type NoMethod InstanceGroupsListInstances + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -// NetworkEdgeSecurityServiceAggregatedListWarning: [Output Only] Informational +// InstanceGroupsListInstancesWarning: Output only. [Output Only] Informational // warning message. -type NetworkEdgeSecurityServiceAggregatedListWarning 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. +type InstanceGroupsListInstancesWarning 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" - Warning about failed cleanup of transient changes made - // by a failed operation. + // by a failed + // operation. // "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was created. // "DEPRECATED_TYPE_USED" - When deploying and at least one of the resources - // has a type marked as deprecated + // has a type marked as + // deprecated // "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk that is // larger than image size. // "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the - // resources has a type marked as experimental + // resources has a type marked as + // experimental // "EXTERNAL_API_WARNING" - Warning that is present in an external api call // "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been - // overridden. Deprecated unused field. + // overridden. + // Deprecated unused field. // "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an injected // kernel, which is deprecated. // "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB" - A WEIGHTED_MAGLEV backend - // service is associated with a health check that is not of type - // HTTP/HTTPS/HTTP2. + // service is associated with a health check that is + // not of type HTTP/HTTPS/HTTP2. // "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a // exceedingly large number of resources // "LIST_OVERHEAD_QUOTA_EXCEED" - Resource can't be retrieved due to list - // overhead quota exceed which captures the amount of resources filtered out by + // overhead quota exceed + // which captures the amount of resources filtered out by // user-defined list filter. // "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is not - // assigned to an instance on the network. + // assigned to an instance on the + // network. // "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot ip // forward. // "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE" - The route's nextHopInstance - // URL refers to an instance that does not have an ipv6 interface on the same - // network as the route. + // URL refers to an instance that does not have an + // ipv6 interface on the same network as the route. // "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL refers to // an instance that does not exist. // "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance URL - // refers to an instance that is not on the same network as the route. + // refers to an instance that is not on the + // same network as the route. // "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not have a // status of RUNNING. // "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to continue - // the process despite the mentioned error. + // the process despite + // the mentioned error. // "NO_RESULTS_ON_PAGE" - No results are present on a particular list page. // "PARTIAL_SUCCESS" - Success is reported, but some results may be missing // due to errors + // "QUOTA_INFO_UNAVAILABLE" - Quota information is not available to client + // requests (e.g: + // regions.list). // "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource that - // requires a TOS they have not accepted. + // requires a TOS they have not + // accepted. // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a resource is // in use. // "RESOURCE_NOT_DELETED" - One or more of the resources set to auto-delete - // could not be deleted because they were in use. + // could not be deleted + // because they were in use. // "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is // ignored. // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in instance - // group manager is valid as such, but its application does not make a lot of - // sense, because it allows only single instance in instance group. + // group manager is valid as such, but + // its application does not make a lot of sense, because it allows only + // single instance in instance group. // "UNDECLARED_PROPERTIES" - When undeclared properties in the schema are // present // "UNREACHABLE" - A given scope cannot be reached. 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 []*NetworkEdgeSecurityServiceAggregatedListWarningData `json:"data,omitempty"` + // Data: [Output Only] Metadata about this warning in key: + // value format. For example: + // + // "data": [ + // { + // "key": "scope", + // "value": "zones/us-east1-d" + // } + Data []*InstanceGroupsListInstancesWarningData `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 @@ -25914,19 +31290,22 @@ type NetworkEdgeSecurityServiceAggregatedListWarning struct { NullFields []string `json:"-"` } -func (s *NetworkEdgeSecurityServiceAggregatedListWarning) MarshalJSON() ([]byte, error) { - type NoMethod NetworkEdgeSecurityServiceAggregatedListWarning - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s InstanceGroupsListInstancesWarning) MarshalJSON() ([]byte, error) { + type NoMethod InstanceGroupsListInstancesWarning + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -type NetworkEdgeSecurityServiceAggregatedListWarningData 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). +type InstanceGroupsListInstancesWarningData 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"` @@ -25943,102 +31322,178 @@ type NetworkEdgeSecurityServiceAggregatedListWarningData struct { NullFields []string `json:"-"` } -func (s *NetworkEdgeSecurityServiceAggregatedListWarningData) MarshalJSON() ([]byte, error) { - type NoMethod NetworkEdgeSecurityServiceAggregatedListWarningData - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s InstanceGroupsListInstancesWarningData) MarshalJSON() ([]byte, error) { + type NoMethod InstanceGroupsListInstancesWarningData + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -type NetworkEdgeSecurityServicesScopedList struct { - // NetworkEdgeSecurityServices: A list of NetworkEdgeSecurityServices contained - // in this scope. - NetworkEdgeSecurityServices []*NetworkEdgeSecurityService `json:"networkEdgeSecurityServices,omitempty"` - // Warning: Informational warning which replaces the list of security policies - // when the list is empty. - Warning *NetworkEdgeSecurityServicesScopedListWarning `json:"warning,omitempty"` - // ForceSendFields is a list of field names (e.g. - // "NetworkEdgeSecurityServices") to unconditionally include in API requests. - // By default, fields with empty or default values are omitted from API - // requests. See https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields - // for more details. +type InstanceGroupsListInstancesRequest struct { + // InstanceState: A filter for the state of the instances in the instance + // group. Valid + // options are ALL or RUNNING. If you do not specify + // this parameter the list includes all instances regardless of their state. + // + // Possible values: + // "ALL" - Includes all instances in the generated list regardless of their + // state. + // "RUNNING" - Includes instances in the generated list only if they have a + // RUNNING + // state. + InstanceState string `json:"instanceState,omitempty"` + // ForceSendFields is a list of field names (e.g. "InstanceState") to + // unconditionally include in API requests. By default, fields with empty or + // default values are omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. ForceSendFields []string `json:"-"` - // NullFields is a list of field names (e.g. "NetworkEdgeSecurityServices") to - // include in API requests with the JSON null value. By default, fields with - // empty values are omitted from API requests. See + // NullFields is a list of field names (e.g. "InstanceState") to include in API + // requests with the JSON null value. By default, fields with empty values are + // omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } -func (s *NetworkEdgeSecurityServicesScopedList) MarshalJSON() ([]byte, error) { - type NoMethod NetworkEdgeSecurityServicesScopedList - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s InstanceGroupsListInstancesRequest) MarshalJSON() ([]byte, error) { + type NoMethod InstanceGroupsListInstancesRequest + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -// NetworkEdgeSecurityServicesScopedListWarning: Informational warning which -// replaces the list of security policies when the list is empty. -type NetworkEdgeSecurityServicesScopedListWarning 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: +type InstanceGroupsRemoveInstancesRequest struct { + // Instances: The list of instances to remove from the instance group. + Instances []*InstanceReference `json:"instances,omitempty"` + // ForceSendFields is a list of field names (e.g. "Instances") to + // unconditionally include in API requests. By default, fields with empty or + // default values are omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + ForceSendFields []string `json:"-"` + // NullFields is a list of field names (e.g. "Instances") to include in API + // requests with the JSON null value. By default, fields with empty values are + // omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s InstanceGroupsRemoveInstancesRequest) MarshalJSON() ([]byte, error) { + type NoMethod InstanceGroupsRemoveInstancesRequest + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +type InstanceGroupsScopedList struct { + // InstanceGroups: Output only. [Output Only] The list ofinstance + // groups that are contained in this scope. + InstanceGroups []*InstanceGroup `json:"instanceGroups,omitempty"` + // Warning: Output only. [Output Only] An informational warning that replaces + // the list of + // instance groups when the list is empty. + Warning *InstanceGroupsScopedListWarning `json:"warning,omitempty"` + // ForceSendFields is a list of field names (e.g. "InstanceGroups") to + // unconditionally include in API requests. By default, fields with empty or + // default values are omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + ForceSendFields []string `json:"-"` + // NullFields is a list of field names (e.g. "InstanceGroups") to include in + // API requests with the JSON null value. By default, fields with empty values + // are omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s InstanceGroupsScopedList) MarshalJSON() ([]byte, error) { + type NoMethod InstanceGroupsScopedList + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +// InstanceGroupsScopedListWarning: Output only. [Output Only] An informational +// warning that replaces the list of +// instance groups when the list is empty. +type InstanceGroupsScopedListWarning 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" - Warning about failed cleanup of transient changes made - // by a failed operation. + // by a failed + // operation. // "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was created. // "DEPRECATED_TYPE_USED" - When deploying and at least one of the resources - // has a type marked as deprecated + // has a type marked as + // deprecated // "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk that is // larger than image size. // "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the - // resources has a type marked as experimental + // resources has a type marked as + // experimental // "EXTERNAL_API_WARNING" - Warning that is present in an external api call // "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been - // overridden. Deprecated unused field. + // overridden. + // Deprecated unused field. // "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an injected // kernel, which is deprecated. // "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB" - A WEIGHTED_MAGLEV backend - // service is associated with a health check that is not of type - // HTTP/HTTPS/HTTP2. + // service is associated with a health check that is + // not of type HTTP/HTTPS/HTTP2. // "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a // exceedingly large number of resources // "LIST_OVERHEAD_QUOTA_EXCEED" - Resource can't be retrieved due to list - // overhead quota exceed which captures the amount of resources filtered out by + // overhead quota exceed + // which captures the amount of resources filtered out by // user-defined list filter. // "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is not - // assigned to an instance on the network. + // assigned to an instance on the + // network. // "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot ip // forward. // "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE" - The route's nextHopInstance - // URL refers to an instance that does not have an ipv6 interface on the same - // network as the route. + // URL refers to an instance that does not have an + // ipv6 interface on the same network as the route. // "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL refers to // an instance that does not exist. // "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance URL - // refers to an instance that is not on the same network as the route. + // refers to an instance that is not on the + // same network as the route. // "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not have a // status of RUNNING. // "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to continue - // the process despite the mentioned error. + // the process despite + // the mentioned error. // "NO_RESULTS_ON_PAGE" - No results are present on a particular list page. // "PARTIAL_SUCCESS" - Success is reported, but some results may be missing // due to errors + // "QUOTA_INFO_UNAVAILABLE" - Quota information is not available to client + // requests (e.g: + // regions.list). // "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource that - // requires a TOS they have not accepted. + // requires a TOS they have not + // accepted. // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a resource is // in use. // "RESOURCE_NOT_DELETED" - One or more of the resources set to auto-delete - // could not be deleted because they were in use. + // could not be deleted + // because they were in use. // "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is // ignored. // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in instance - // group manager is valid as such, but its application does not make a lot of - // sense, because it allows only single instance in instance group. + // group manager is valid as such, but + // its application does not make a lot of sense, because it allows only + // single instance in instance group. // "UNDECLARED_PROPERTIES" - When undeclared properties in the schema are // present // "UNREACHABLE" - A given scope cannot be reached. 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 []*NetworkEdgeSecurityServicesScopedListWarningData `json:"data,omitempty"` + // Data: [Output Only] Metadata about this warning in key: + // value format. For example: + // + // "data": [ + // { + // "key": "scope", + // "value": "zones/us-east1-d" + // } + Data []*InstanceGroupsScopedListWarningData `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 @@ -26054,19 +31509,22 @@ type NetworkEdgeSecurityServicesScopedListWarning struct { NullFields []string `json:"-"` } -func (s *NetworkEdgeSecurityServicesScopedListWarning) MarshalJSON() ([]byte, error) { - type NoMethod NetworkEdgeSecurityServicesScopedListWarning - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s InstanceGroupsScopedListWarning) MarshalJSON() ([]byte, error) { + type NoMethod InstanceGroupsScopedListWarning + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -type NetworkEdgeSecurityServicesScopedListWarningData 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). +type InstanceGroupsScopedListWarningData 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"` @@ -26083,185 +31541,66 @@ type NetworkEdgeSecurityServicesScopedListWarningData struct { NullFields []string `json:"-"` } -func (s *NetworkEdgeSecurityServicesScopedListWarningData) MarshalJSON() ([]byte, error) { - type NoMethod NetworkEdgeSecurityServicesScopedListWarningData - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) -} - -// NetworkEndpoint: The network endpoint. -type NetworkEndpoint struct { - // Annotations: Metadata defined as annotations on the network endpoint. - Annotations map[string]string `json:"annotations,omitempty"` - // Fqdn: Optional fully qualified domain name of network endpoint. This can - // only be specified when NetworkEndpointGroup.network_endpoint_type is - // NON_GCP_FQDN_PORT. - Fqdn string `json:"fqdn,omitempty"` - // Instance: The name or a URL of VM instance of this network endpoint. This - // field is required for network endpoints of type GCE_VM_IP and - // GCE_VM_IP_PORT. The instance must be in the same zone of network endpoint - // group (for zonal NEGs) or in the zone within the region of the NEG (for - // regional NEGs). If the ipAddress is specified, it must belongs to the VM - // instance. The name must be 1-63 characters long, and comply with RFC1035 or - // be a valid URL pointing to an existing instance. - Instance string `json:"instance,omitempty"` - // IpAddress: Optional IPv4 address of network endpoint. The IP address must - // belong to a VM in Compute Engine (either the primary IP or as part of an - // aliased IP range). If the IP address is not specified, then the primary IP - // address for the VM instance in the network that the network endpoint group - // belongs to will be used. This field is redundant and need not be set for - // network endpoints of type GCE_VM_IP. If set, it must be set to the primary - // internal IP address of the attached VM instance that matches the subnetwork - // of the NEG. The primary internal IP address from any NIC of a multi-NIC VM - // instance can be added to a NEG as long as it matches the NEG subnetwork. - IpAddress string `json:"ipAddress,omitempty"` - // Port: Optional port number of network endpoint. If not specified, the - // defaultPort for the network endpoint group will be used. This field can not - // be set for network endpoints of type GCE_VM_IP. - Port int64 `json:"port,omitempty"` - // ForceSendFields is a list of field names (e.g. "Annotations") to - // unconditionally include in API requests. By default, fields with empty or - // default values are omitted from API requests. See - // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more - // details. - ForceSendFields []string `json:"-"` - // NullFields is a list of field names (e.g. "Annotations") to include in API - // requests with the JSON null value. By default, fields with empty values are - // omitted from API requests. See - // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. - NullFields []string `json:"-"` -} - -func (s *NetworkEndpoint) MarshalJSON() ([]byte, error) { - type NoMethod NetworkEndpoint - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s InstanceGroupsScopedListWarningData) MarshalJSON() ([]byte, error) { + type NoMethod InstanceGroupsScopedListWarningData + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -// NetworkEndpointGroup: Represents a collection of network endpoints. A -// network endpoint group (NEG) defines how a set of endpoints should be -// reached, whether they are reachable, and where they are located. For more -// information about using NEGs for different use cases, see Network endpoint -// groups overview. -type NetworkEndpointGroup struct { - // Annotations: Metadata defined as annotations on the network endpoint group. - Annotations map[string]string `json:"annotations,omitempty"` - // AppEngine: Only valid when networkEndpointType is SERVERLESS. Only one of - // cloudRun, appEngine or cloudFunction may be set. - AppEngine *NetworkEndpointGroupAppEngine `json:"appEngine,omitempty"` - // CloudFunction: Only valid when networkEndpointType is SERVERLESS. Only one - // of cloudRun, appEngine or cloudFunction may be set. - CloudFunction *NetworkEndpointGroupCloudFunction `json:"cloudFunction,omitempty"` - // CloudRun: Only valid when networkEndpointType is SERVERLESS. Only one of - // cloudRun, appEngine or cloudFunction may be set. - CloudRun *NetworkEndpointGroupCloudRun `json:"cloudRun,omitempty"` - // CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text format. - CreationTimestamp string `json:"creationTimestamp,omitempty"` - // DefaultPort: The default port used if the port number is not specified in - // the network endpoint. If the network endpoint type is either GCE_VM_IP, - // SERVERLESS or PRIVATE_SERVICE_CONNECT, this field must not be specified. - DefaultPort int64 `json:"defaultPort,omitempty"` - // Description: An optional description of this resource. Provide this property - // when you create the resource. - Description string `json:"description,omitempty"` - // Id: [Output Only] The unique identifier for the resource. This identifier is - // defined by the server. - Id uint64 `json:"id,omitempty,string"` - // Kind: [Output Only] Type of the resource. Always - // compute#networkEndpointGroup for network endpoint group. - Kind string `json:"kind,omitempty"` - // Name: Name of the resource; provided by the client when the resource is - // created. The name must be 1-63 characters long, and comply with RFC1035. - // 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. - Name string `json:"name,omitempty"` - // Network: The URL of the network to which all network endpoints in the NEG - // belong. Uses default project network if unspecified. - Network string `json:"network,omitempty"` - // NetworkEndpointType: Type of network endpoints in this network endpoint - // group. Can be one of GCE_VM_IP, GCE_VM_IP_PORT, NON_GCP_PRIVATE_IP_PORT, - // INTERNET_FQDN_PORT, INTERNET_IP_PORT, SERVERLESS, PRIVATE_SERVICE_CONNECT, - // GCE_VM_IP_PORTMAP. - // - // Possible values: - // "GCE_VM_IP" - The network endpoint is represented by an IP address. - // "GCE_VM_IP_PORT" - The network endpoint is represented by IP address and - // port pair. - // "INTERNET_FQDN_PORT" - The network endpoint is represented by fully - // qualified domain name and port. - // "INTERNET_IP_PORT" - The network endpoint is represented by an internet IP - // address and port. - // "NON_GCP_PRIVATE_IP_PORT" - The network endpoint is represented by an IP - // address and port. The endpoint belongs to a VM or pod running in a - // customer's on-premises. - // "PRIVATE_SERVICE_CONNECT" - The network endpoint is either public Google - // APIs or services exposed by other GCP Project with a Service Attachment. The - // connection is set up by private service connect - // "SERVERLESS" - The network endpoint is handled by specified serverless - // infrastructure. - NetworkEndpointType string `json:"networkEndpointType,omitempty"` - PscData *NetworkEndpointGroupPscData `json:"pscData,omitempty"` - // PscTargetService: The target service url used to set up private service - // connection to a Google API or a PSC Producer Service Attachment. An example - // value is: asia-northeast3-cloudkms.googleapis.com - PscTargetService string `json:"pscTargetService,omitempty"` - // Region: [Output Only] The URL of the region where the network endpoint group - // is located. - Region string `json:"region,omitempty"` - // SelfLink: [Output Only] Server-defined URL for the resource. - SelfLink string `json:"selfLink,omitempty"` - // Size: [Output only] Number of network endpoints in the network endpoint - // group. - Size int64 `json:"size,omitempty"` - // Subnetwork: Optional URL of the subnetwork to which all network endpoints in - // the NEG belong. - Subnetwork string `json:"subnetwork,omitempty"` - // Zone: [Output Only] The URL of the zone where the network endpoint group is - // located. - Zone string `json:"zone,omitempty"` - - // ServerResponse contains the HTTP response code and headers from the server. - googleapi.ServerResponse `json:"-"` - // ForceSendFields is a list of field names (e.g. "Annotations") to +type InstanceGroupsSetNamedPortsRequest struct { + // Fingerprint: The fingerprint of the named ports information for this + // instance group. + // Use this optional property to prevent conflicts when multiple users + // change + // the named ports settings concurrently. Obtain the fingerprint with + // theinstanceGroups.get + // method. Then, include the fingerprint in your request to ensure that you + // do not overwrite changes that were applied from another concurrent + // request. + // A request with an incorrect fingerprint will fail with error412 + // conditionNotMet. + Fingerprint string `json:"fingerprint,omitempty"` + // NamedPorts: The list of named ports to set for this instance group. + NamedPorts []*NamedPort `json:"namedPorts,omitempty"` + // ForceSendFields is a list of field names (e.g. "Fingerprint") to // unconditionally include in API requests. By default, fields with empty or // default values are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. ForceSendFields []string `json:"-"` - // NullFields is a list of field names (e.g. "Annotations") to include in API + // NullFields is a list of field names (e.g. "Fingerprint") to include in API // requests with the JSON null value. By default, fields with empty values are // omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } -func (s *NetworkEndpointGroup) MarshalJSON() ([]byte, error) { - type NoMethod NetworkEndpointGroup - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s InstanceGroupsSetNamedPortsRequest) MarshalJSON() ([]byte, error) { + type NoMethod InstanceGroupsSetNamedPortsRequest + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -type NetworkEndpointGroupAggregatedList struct { +// InstanceList: Contains a list of instances. +type InstanceList struct { // Id: [Output Only] Unique identifier for the resource; defined by the server. Id string `json:"id,omitempty"` - // Items: A list of NetworkEndpointGroupsScopedList resources. - Items map[string]NetworkEndpointGroupsScopedList `json:"items,omitempty"` - // Kind: [Output Only] The resource type, which is always - // compute#networkEndpointGroupAggregatedList for aggregated lists of network - // endpoint groups. + // Items: A list of Instance resources. + Items []*Instance `json:"items,omitempty"` + // Kind: Output only. [Output Only] Type of resource. Always + // compute#instanceList + // for lists of Instance resources. 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. + // results for + // list requests. If the number of results is larger thanmaxResults, 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"` - // SelfLink: [Output Only] Server-defined URL for this resource. + // SelfLink: Output only. [Output Only] Server-defined URL for this resource. SelfLink string `json:"selfLink,omitempty"` - // Unreachables: [Output Only] Unreachable resources. - Unreachables []string `json:"unreachables,omitempty"` // Warning: [Output Only] Informational warning message. - Warning *NetworkEndpointGroupAggregatedListWarning `json:"warning,omitempty"` + Warning *InstanceListWarning `json:"warning,omitempty"` // ServerResponse contains the HTTP response code and headers from the server. googleapi.ServerResponse `json:"-"` @@ -26278,77 +31617,98 @@ type NetworkEndpointGroupAggregatedList struct { NullFields []string `json:"-"` } -func (s *NetworkEndpointGroupAggregatedList) MarshalJSON() ([]byte, error) { - type NoMethod NetworkEndpointGroupAggregatedList - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s InstanceList) MarshalJSON() ([]byte, error) { + type NoMethod InstanceList + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -// NetworkEndpointGroupAggregatedListWarning: [Output Only] Informational -// warning message. -type NetworkEndpointGroupAggregatedListWarning 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. +// InstanceListWarning: [Output Only] Informational warning message. +type InstanceListWarning 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" - Warning about failed cleanup of transient changes made - // by a failed operation. + // by a failed + // operation. // "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was created. // "DEPRECATED_TYPE_USED" - When deploying and at least one of the resources - // has a type marked as deprecated + // has a type marked as + // deprecated // "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk that is // larger than image size. // "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the - // resources has a type marked as experimental + // resources has a type marked as + // experimental // "EXTERNAL_API_WARNING" - Warning that is present in an external api call // "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been - // overridden. Deprecated unused field. + // overridden. + // Deprecated unused field. // "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an injected // kernel, which is deprecated. // "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB" - A WEIGHTED_MAGLEV backend - // service is associated with a health check that is not of type - // HTTP/HTTPS/HTTP2. + // service is associated with a health check that is + // not of type HTTP/HTTPS/HTTP2. // "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a // exceedingly large number of resources // "LIST_OVERHEAD_QUOTA_EXCEED" - Resource can't be retrieved due to list - // overhead quota exceed which captures the amount of resources filtered out by + // overhead quota exceed + // which captures the amount of resources filtered out by // user-defined list filter. // "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is not - // assigned to an instance on the network. + // assigned to an instance on the + // network. // "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot ip // forward. // "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE" - The route's nextHopInstance - // URL refers to an instance that does not have an ipv6 interface on the same - // network as the route. + // URL refers to an instance that does not have an + // ipv6 interface on the same network as the route. // "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL refers to // an instance that does not exist. // "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance URL - // refers to an instance that is not on the same network as the route. + // refers to an instance that is not on the + // same network as the route. // "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not have a // status of RUNNING. // "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to continue - // the process despite the mentioned error. + // the process despite + // the mentioned error. // "NO_RESULTS_ON_PAGE" - No results are present on a particular list page. // "PARTIAL_SUCCESS" - Success is reported, but some results may be missing // due to errors + // "QUOTA_INFO_UNAVAILABLE" - Quota information is not available to client + // requests (e.g: + // regions.list). // "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource that - // requires a TOS they have not accepted. + // requires a TOS they have not + // accepted. // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a resource is // in use. // "RESOURCE_NOT_DELETED" - One or more of the resources set to auto-delete - // could not be deleted because they were in use. + // could not be deleted + // because they were in use. // "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is // ignored. // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in instance - // group manager is valid as such, but its application does not make a lot of - // sense, because it allows only single instance in instance group. + // group manager is valid as such, but + // its application does not make a lot of sense, because it allows only + // single instance in instance group. // "UNDECLARED_PROPERTIES" - When undeclared properties in the schema are // present // "UNREACHABLE" - A given scope cannot be reached. 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 []*NetworkEndpointGroupAggregatedListWarningData `json:"data,omitempty"` + // Data: [Output Only] Metadata about this warning in key: + // value format. For example: + // + // "data": [ + // { + // "key": "scope", + // "value": "zones/us-east1-d" + // } + Data []*InstanceListWarningData `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 @@ -26364,19 +31724,22 @@ type NetworkEndpointGroupAggregatedListWarning struct { NullFields []string `json:"-"` } -func (s *NetworkEndpointGroupAggregatedListWarning) MarshalJSON() ([]byte, error) { - type NoMethod NetworkEndpointGroupAggregatedListWarning - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s InstanceListWarning) MarshalJSON() ([]byte, error) { + type NoMethod InstanceListWarning + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -type NetworkEndpointGroupAggregatedListWarningData 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). +type InstanceListWarningData 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"` @@ -26393,145 +31756,32 @@ type NetworkEndpointGroupAggregatedListWarningData struct { NullFields []string `json:"-"` } -func (s *NetworkEndpointGroupAggregatedListWarningData) MarshalJSON() ([]byte, error) { - type NoMethod NetworkEndpointGroupAggregatedListWarningData - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) -} - -// NetworkEndpointGroupAppEngine: Configuration for an App Engine network -// endpoint group (NEG). The service is optional, may be provided explicitly or -// in the URL mask. The version is optional and can only be provided explicitly -// or in the URL mask when service is present. Note: App Engine service must be -// in the same project and located in the same region as the Serverless NEG. -type NetworkEndpointGroupAppEngine struct { - // Service: Optional serving service. The service name is case-sensitive and - // must be 1-63 characters long. Example value: default, my-service. - Service string `json:"service,omitempty"` - // UrlMask: An URL mask is one of the main components of the Cloud Function. A - // template to parse service and version fields from a request URL. URL mask - // allows for routing to multiple App Engine services without having to create - // multiple Network Endpoint Groups and backend services. For example, the - // request URLs foo1-dot-appname.appspot.com/v1 and - // foo1-dot-appname.appspot.com/v2 can be backed by the same Serverless NEG - // with URL mask -dot-appname.appspot.com/. The URL mask will - // parse them to { service = "foo1", version = "v1" } and { service = "foo1", - // version = "v2" } respectively. - UrlMask string `json:"urlMask,omitempty"` - // Version: Optional serving version. The version name is case-sensitive and - // must be 1-100 characters long. Example value: v1, v2. - Version string `json:"version,omitempty"` - // ForceSendFields is a list of field names (e.g. "Service") to unconditionally - // include in API requests. By default, fields with empty or default values are - // omitted from API requests. See - // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more - // details. - ForceSendFields []string `json:"-"` - // NullFields is a list of field names (e.g. "Service") to include in API - // requests with the JSON null value. By default, fields with empty values are - // omitted from API requests. See - // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. - NullFields []string `json:"-"` -} - -func (s *NetworkEndpointGroupAppEngine) MarshalJSON() ([]byte, error) { - type NoMethod NetworkEndpointGroupAppEngine - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) -} - -// NetworkEndpointGroupCloudFunction: Configuration for a Cloud Function -// network endpoint group (NEG). The function must be provided explicitly or in -// the URL mask. Note: Cloud Function must be in the same project and located -// in the same region as the Serverless NEG. -type NetworkEndpointGroupCloudFunction struct { - // Function: A user-defined name of the Cloud Function. The function name is - // case-sensitive and must be 1-63 characters long. Example value: func1. - Function string `json:"function,omitempty"` - // UrlMask: An URL mask is one of the main components of the Cloud Function. A - // template to parse function field from a request URL. URL mask allows for - // routing to multiple Cloud Functions without having to create multiple - // Network Endpoint Groups and backend services. For example, request URLs - // mydomain.com/function1 and mydomain.com/function2 can be backed by the same - // Serverless NEG with URL mask /. The URL mask will parse them to { - // function = "function1" } and { function = "function2" } respectively. - UrlMask string `json:"urlMask,omitempty"` - // ForceSendFields is a list of field names (e.g. "Function") to - // unconditionally include in API requests. By default, fields with empty or - // default values are omitted from API requests. See - // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more - // details. - ForceSendFields []string `json:"-"` - // NullFields is a list of field names (e.g. "Function") to include in API - // requests with the JSON null value. By default, fields with empty values are - // omitted from API requests. See - // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. - NullFields []string `json:"-"` -} - -func (s *NetworkEndpointGroupCloudFunction) MarshalJSON() ([]byte, error) { - type NoMethod NetworkEndpointGroupCloudFunction - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) -} - -// NetworkEndpointGroupCloudRun: Configuration for a Cloud Run network endpoint -// group (NEG). The service must be provided explicitly or in the URL mask. The -// tag is optional, may be provided explicitly or in the URL mask. Note: Cloud -// Run service must be in the same project and located in the same region as -// the Serverless NEG. -type NetworkEndpointGroupCloudRun struct { - // Service: Cloud Run service is the main resource of Cloud Run. The service - // must be 1-63 characters long, and comply with RFC1035. Example value: - // "run-service". - Service string `json:"service,omitempty"` - // Tag: Optional Cloud Run tag represents the "named-revision" to provide - // additional fine-grained traffic routing information. The tag must be 1-63 - // characters long, and comply with RFC1035. Example value: "revision-0010". - Tag string `json:"tag,omitempty"` - // UrlMask: An URL mask is one of the main components of the Cloud Function. A - // template to parse and fields from a request URL. URL mask - // allows for routing to multiple Run services without having to create - // multiple network endpoint groups and backend services. For example, request - // URLs foo1.domain.com/bar1 and foo1.domain.com/bar2 can be backed by the same - // Serverless Network Endpoint Group (NEG) with URL mask - // .domain.com/. The URL mask will parse them to { - // service="bar1", tag="foo1" } and { service="bar2", tag="foo2" } - // respectively. - UrlMask string `json:"urlMask,omitempty"` - // ForceSendFields is a list of field names (e.g. "Service") to unconditionally - // include in API requests. By default, fields with empty or default values are - // omitted from API requests. See - // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more - // details. - ForceSendFields []string `json:"-"` - // NullFields is a list of field names (e.g. "Service") to include in API - // requests with the JSON null value. By default, fields with empty values are - // omitted from API requests. See - // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. - NullFields []string `json:"-"` -} - -func (s *NetworkEndpointGroupCloudRun) MarshalJSON() ([]byte, error) { - type NoMethod NetworkEndpointGroupCloudRun - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s InstanceListWarningData) MarshalJSON() ([]byte, error) { + type NoMethod InstanceListWarningData + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -type NetworkEndpointGroupList struct { +// InstanceListReferrers: Contains a list of instance referrers. +type InstanceListReferrers struct { // Id: [Output Only] Unique identifier for the resource; defined by the server. Id string `json:"id,omitempty"` - // Items: A list of NetworkEndpointGroup resources. - Items []*NetworkEndpointGroup `json:"items,omitempty"` - // Kind: [Output Only] The resource type, which is always - // compute#networkEndpointGroupList for network endpoint group lists. + // Items: A list of Reference resources. + Items []*Reference `json:"items,omitempty"` + // Kind: Output only. [Output Only] Type of resource. + // Alwayscompute#instanceListReferrers for lists of Instance referrers. 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. + // results for + // list requests. If the number of results is larger thanmaxResults, 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"` - // SelfLink: [Output Only] Server-defined URL for this resource. + // SelfLink: Output only. [Output Only] Server-defined URL for this resource. SelfLink string `json:"selfLink,omitempty"` // Warning: [Output Only] Informational warning message. - Warning *NetworkEndpointGroupListWarning `json:"warning,omitempty"` + Warning *InstanceListReferrersWarning `json:"warning,omitempty"` // ServerResponse contains the HTTP response code and headers from the server. googleapi.ServerResponse `json:"-"` @@ -26548,77 +31798,98 @@ type NetworkEndpointGroupList struct { NullFields []string `json:"-"` } -func (s *NetworkEndpointGroupList) MarshalJSON() ([]byte, error) { - type NoMethod NetworkEndpointGroupList - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s InstanceListReferrers) MarshalJSON() ([]byte, error) { + type NoMethod InstanceListReferrers + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -// NetworkEndpointGroupListWarning: [Output Only] Informational warning -// message. -type NetworkEndpointGroupListWarning 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. +// InstanceListReferrersWarning: [Output Only] Informational warning message. +type InstanceListReferrersWarning 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" - Warning about failed cleanup of transient changes made - // by a failed operation. + // by a failed + // operation. // "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was created. // "DEPRECATED_TYPE_USED" - When deploying and at least one of the resources - // has a type marked as deprecated + // has a type marked as + // deprecated // "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk that is // larger than image size. // "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the - // resources has a type marked as experimental + // resources has a type marked as + // experimental // "EXTERNAL_API_WARNING" - Warning that is present in an external api call // "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been - // overridden. Deprecated unused field. + // overridden. + // Deprecated unused field. // "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an injected // kernel, which is deprecated. // "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB" - A WEIGHTED_MAGLEV backend - // service is associated with a health check that is not of type - // HTTP/HTTPS/HTTP2. + // service is associated with a health check that is + // not of type HTTP/HTTPS/HTTP2. // "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a // exceedingly large number of resources // "LIST_OVERHEAD_QUOTA_EXCEED" - Resource can't be retrieved due to list - // overhead quota exceed which captures the amount of resources filtered out by + // overhead quota exceed + // which captures the amount of resources filtered out by // user-defined list filter. // "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is not - // assigned to an instance on the network. + // assigned to an instance on the + // network. // "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot ip // forward. // "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE" - The route's nextHopInstance - // URL refers to an instance that does not have an ipv6 interface on the same - // network as the route. + // URL refers to an instance that does not have an + // ipv6 interface on the same network as the route. // "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL refers to // an instance that does not exist. // "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance URL - // refers to an instance that is not on the same network as the route. + // refers to an instance that is not on the + // same network as the route. // "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not have a // status of RUNNING. // "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to continue - // the process despite the mentioned error. + // the process despite + // the mentioned error. // "NO_RESULTS_ON_PAGE" - No results are present on a particular list page. // "PARTIAL_SUCCESS" - Success is reported, but some results may be missing // due to errors + // "QUOTA_INFO_UNAVAILABLE" - Quota information is not available to client + // requests (e.g: + // regions.list). // "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource that - // requires a TOS they have not accepted. + // requires a TOS they have not + // accepted. // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a resource is // in use. // "RESOURCE_NOT_DELETED" - One or more of the resources set to auto-delete - // could not be deleted because they were in use. + // could not be deleted + // because they were in use. // "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is // ignored. // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in instance - // group manager is valid as such, but its application does not make a lot of - // sense, because it allows only single instance in instance group. + // group manager is valid as such, but + // its application does not make a lot of sense, because it allows only + // single instance in instance group. // "UNDECLARED_PROPERTIES" - When undeclared properties in the schema are // present // "UNREACHABLE" - A given scope cannot be reached. 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 []*NetworkEndpointGroupListWarningData `json:"data,omitempty"` + // Data: [Output Only] Metadata about this warning in key: + // value format. For example: + // + // "data": [ + // { + // "key": "scope", + // "value": "zones/us-east1-d" + // } + Data []*InstanceListReferrersWarningData `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 @@ -26634,19 +31905,22 @@ type NetworkEndpointGroupListWarning struct { NullFields []string `json:"-"` } -func (s *NetworkEndpointGroupListWarning) MarshalJSON() ([]byte, error) { - type NoMethod NetworkEndpointGroupListWarning - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s InstanceListReferrersWarning) MarshalJSON() ([]byte, error) { + type NoMethod InstanceListReferrersWarning + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -type NetworkEndpointGroupListWarningData 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). +type InstanceListReferrersWarningData 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"` @@ -26663,228 +31937,118 @@ type NetworkEndpointGroupListWarningData struct { NullFields []string `json:"-"` } -func (s *NetworkEndpointGroupListWarningData) MarshalJSON() ([]byte, error) { - type NoMethod NetworkEndpointGroupListWarningData - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) -} - -// NetworkEndpointGroupPscData: All data that is specifically relevant to only -// network endpoint groups of type PRIVATE_SERVICE_CONNECT. -type NetworkEndpointGroupPscData struct { - // ConsumerPscAddress: [Output Only] Address allocated from given subnetwork - // for PSC. This IP address acts as a VIP for a PSC NEG, allowing it to act as - // an endpoint in L7 PSC-XLB. - ConsumerPscAddress string `json:"consumerPscAddress,omitempty"` - // PscConnectionId: [Output Only] The PSC connection id of the PSC Network - // Endpoint Group Consumer. - PscConnectionId uint64 `json:"pscConnectionId,omitempty,string"` - // PscConnectionStatus: [Output Only] The connection status of the PSC - // Forwarding Rule. - // - // Possible values: - // "ACCEPTED" - The connection has been accepted by the producer. - // "CLOSED" - The connection has been closed by the producer and will not - // serve traffic going forward. - // "NEEDS_ATTENTION" - The connection has been accepted by the producer, but - // the producer needs to take further action before the forwarding rule can - // serve traffic. - // "PENDING" - The connection is pending acceptance by the producer. - // "REJECTED" - The connection has been rejected by the producer. - // "STATUS_UNSPECIFIED" - PscConnectionStatus string `json:"pscConnectionStatus,omitempty"` - // ForceSendFields is a list of field names (e.g. "ConsumerPscAddress") to - // unconditionally include in API requests. By default, fields with empty or - // default values are omitted from API requests. See - // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more - // details. - ForceSendFields []string `json:"-"` - // NullFields is a list of field names (e.g. "ConsumerPscAddress") to include - // in API requests with the JSON null value. By default, fields with empty - // values are omitted from API requests. See - // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. - NullFields []string `json:"-"` -} - -func (s *NetworkEndpointGroupPscData) MarshalJSON() ([]byte, error) { - type NoMethod NetworkEndpointGroupPscData - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) -} - -type NetworkEndpointGroupsAttachEndpointsRequest struct { - // NetworkEndpoints: The list of network endpoints to be attached. - NetworkEndpoints []*NetworkEndpoint `json:"networkEndpoints,omitempty"` - // ForceSendFields is a list of field names (e.g. "NetworkEndpoints") to - // unconditionally include in API requests. By default, fields with empty or - // default values are omitted from API requests. See - // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more - // details. - ForceSendFields []string `json:"-"` - // NullFields is a list of field names (e.g. "NetworkEndpoints") to include in - // API requests with the JSON null value. By default, fields with empty values - // are omitted from API requests. See - // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. - NullFields []string `json:"-"` -} - -func (s *NetworkEndpointGroupsAttachEndpointsRequest) MarshalJSON() ([]byte, error) { - type NoMethod NetworkEndpointGroupsAttachEndpointsRequest - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) -} - -type NetworkEndpointGroupsDetachEndpointsRequest struct { - // NetworkEndpoints: The list of network endpoints to be detached. - NetworkEndpoints []*NetworkEndpoint `json:"networkEndpoints,omitempty"` - // ForceSendFields is a list of field names (e.g. "NetworkEndpoints") to - // unconditionally include in API requests. By default, fields with empty or - // default values are omitted from API requests. See - // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more - // details. - ForceSendFields []string `json:"-"` - // NullFields is a list of field names (e.g. "NetworkEndpoints") to include in - // API requests with the JSON null value. By default, fields with empty values - // are omitted from API requests. See - // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. - NullFields []string `json:"-"` -} - -func (s *NetworkEndpointGroupsDetachEndpointsRequest) MarshalJSON() ([]byte, error) { - type NoMethod NetworkEndpointGroupsDetachEndpointsRequest - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s InstanceListReferrersWarningData) MarshalJSON() ([]byte, error) { + type NoMethod InstanceListReferrersWarningData + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -type NetworkEndpointGroupsListEndpointsRequest struct { - // HealthStatus: Optional query parameter for showing the health status of each - // network endpoint. Valid options are SKIP or SHOW. If you don't specify this - // parameter, the health status of network endpoints will not be provided. - // - // Possible values: - // "SHOW" - Show the health status for each network endpoint. Impacts latency - // of the call. - // "SKIP" - Health status for network endpoints will not be provided. - HealthStatus string `json:"healthStatus,omitempty"` - // ForceSendFields is a list of field names (e.g. "HealthStatus") to - // unconditionally include in API requests. By default, fields with empty or - // default values are omitted from API requests. See +type InstanceManagedByIgmError struct { + // Error: Output only. Contents of the error. + Error *InstanceManagedByIgmErrorManagedInstanceError `json:"error,omitempty"` + // InstanceActionDetails: Output only. Details of the instance action that + // triggered this error. + // May be null, if the error was not caused by an action on an instance. + // This field is optional. + InstanceActionDetails *InstanceManagedByIgmErrorInstanceActionDetails `json:"instanceActionDetails,omitempty"` + // Timestamp: Output only. The time that this error occurred. This value is in + // RFC3339 text format. + Timestamp string `json:"timestamp,omitempty"` + // ForceSendFields is a list of field names (e.g. "Error") to unconditionally + // include in API requests. By default, fields with empty or default values are + // omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. ForceSendFields []string `json:"-"` - // NullFields is a list of field names (e.g. "HealthStatus") to include in API + // NullFields is a list of field names (e.g. "Error") to include in API // requests with the JSON null value. By default, fields with empty values are // omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } -func (s *NetworkEndpointGroupsListEndpointsRequest) MarshalJSON() ([]byte, error) { - type NoMethod NetworkEndpointGroupsListEndpointsRequest - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s InstanceManagedByIgmError) MarshalJSON() ([]byte, error) { + type NoMethod InstanceManagedByIgmError + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -type NetworkEndpointGroupsListNetworkEndpoints struct { - // Id: [Output Only] Unique identifier for the resource; defined by the server. - Id string `json:"id,omitempty"` - // Items: A list of NetworkEndpointWithHealthStatus resources. - Items []*NetworkEndpointWithHealthStatus `json:"items,omitempty"` - // Kind: [Output Only] The resource type, which is always - // compute#networkEndpointGroupsListNetworkEndpoints for the list of network - // endpoints in the specified network endpoint group. - 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"` - // Warning: [Output Only] Informational warning message. - Warning *NetworkEndpointGroupsListNetworkEndpointsWarning `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 +type InstanceManagedByIgmErrorInstanceActionDetails struct { + // Action: Output only. Action that managed instance group was executing on the + // instance when the + // error occurred. Possible values: + // + // Possible values: + // "ABANDONING" - The managed instance group is abandoning this instance. The + // instance + // will be removed from the instance group and from any target pools that + // are associated with this group. + // "CREATING" - The managed instance group is creating this instance. If the + // group + // fails to create this instance, it will try again until it is + // successful. + // "CREATING_WITHOUT_RETRIES" - The managed instance group is attempting to + // create this instance + // only once. If the group fails to create this instance, it does + // not try again and the group's targetSize value is + // decreased. + // "DELETING" - The managed instance group is permanently deleting this + // instance. + // "NONE" - The managed instance group has not scheduled any actions for + // this + // instance. + // "RECREATING" - The managed instance group is recreating this instance. + // "REFRESHING" - The managed instance group is applying configuration + // changes to the + // instance without stopping it. For example, the group can update the + // target pool list for an instance without stopping that instance. + // "RESTARTING" - The managed instance group is restarting this instance. + // "RESUMING" - The managed instance group is resuming this instance. + // "STARTING" - The managed instance group is starting this instance. + // "STOPPING" - The managed instance group is stopping this instance. + // "SUSPENDING" - The managed instance group is suspending this instance. + // "VERIFYING" - The managed instance group is verifying this already created + // instance. + // Verification happens every time the instance is (re)created or restarted + // and consists of: + // 1. Waiting until health check specified as part of this managed instance + // group's autohealing policy reports HEALTHY. + // Note: Applies only if autohealing policy has a health check specified + // 2. Waiting for addition verification steps performed as post-instance + // creation (subject to future extensions). + Action string `json:"action,omitempty"` + // Instance: Output only. The URL of the instance. The URL can be set even if + // the instance has not + // yet been created. + Instance string `json:"instance,omitempty"` + // Version: Output only. Version this instance was created from, or was + // being + // created from, but the creation failed. Corresponds to one of the + // versions + // that were set on the Instance Group Manager resource at the time + // this + // instance was being created. + Version *ManagedInstanceVersion `json:"version,omitempty"` + // ForceSendFields is a list of field names (e.g. "Action") to unconditionally // include in API requests. By default, fields with empty or default values are // omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. 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. See + // NullFields is a list of field names (e.g. "Action") to include in API + // requests with the JSON null value. By default, fields with empty values are + // omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } -func (s *NetworkEndpointGroupsListNetworkEndpoints) MarshalJSON() ([]byte, error) { - type NoMethod NetworkEndpointGroupsListNetworkEndpoints - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s InstanceManagedByIgmErrorInstanceActionDetails) MarshalJSON() ([]byte, error) { + type NoMethod InstanceManagedByIgmErrorInstanceActionDetails + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -// NetworkEndpointGroupsListNetworkEndpointsWarning: [Output Only] -// Informational warning message. -type NetworkEndpointGroupsListNetworkEndpointsWarning 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" - Warning about failed cleanup of transient changes made - // by a failed operation. - // "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was created. - // "DEPRECATED_TYPE_USED" - When deploying and at least one of the resources - // has a type marked as deprecated - // "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk that is - // larger than image size. - // "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the - // resources has a type marked as experimental - // "EXTERNAL_API_WARNING" - Warning that is present in an external api call - // "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been - // overridden. Deprecated unused field. - // "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an injected - // kernel, which is deprecated. - // "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB" - A WEIGHTED_MAGLEV backend - // service is associated with a health check that is not of type - // HTTP/HTTPS/HTTP2. - // "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a - // exceedingly large number of resources - // "LIST_OVERHEAD_QUOTA_EXCEED" - Resource can't be retrieved due to list - // overhead quota exceed which captures the amount of resources filtered out by - // user-defined list filter. - // "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type - // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is not - // assigned to an instance on the network. - // "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot ip - // forward. - // "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE" - The route's nextHopInstance - // URL refers to an instance that does not have an ipv6 interface on the same - // network as the route. - // "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL refers to - // an instance that does not exist. - // "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance URL - // refers to an instance that is not on the same network as the route. - // "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not have a - // status of RUNNING. - // "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to continue - // the process despite the mentioned error. - // "NO_RESULTS_ON_PAGE" - No results are present on a particular list page. - // "PARTIAL_SUCCESS" - Success is reported, but some results may be missing - // due to errors - // "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource that - // requires a TOS they have not accepted. - // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a resource is - // in use. - // "RESOURCE_NOT_DELETED" - One or more of the resources set to auto-delete - // could not be deleted because they were in use. - // "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is - // ignored. - // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in instance - // group manager is valid as such, but its application does not make a lot of - // sense, because it allows only single instance in instance group. - // "UNDECLARED_PROPERTIES" - When undeclared properties in the schema are - // present - // "UNREACHABLE" - A given scope cannot be reached. +type InstanceManagedByIgmErrorManagedInstanceError struct { + // Code: Output only. Error code. 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 []*NetworkEndpointGroupsListNetworkEndpointsWarningData `json:"data,omitempty"` - // Message: [Output Only] A human-readable description of the warning code. + // Message: Output only. Error message. 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 or default values are @@ -26899,335 +32063,504 @@ type NetworkEndpointGroupsListNetworkEndpointsWarning struct { NullFields []string `json:"-"` } -func (s *NetworkEndpointGroupsListNetworkEndpointsWarning) MarshalJSON() ([]byte, error) { - type NoMethod NetworkEndpointGroupsListNetworkEndpointsWarning - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s InstanceManagedByIgmErrorManagedInstanceError) MarshalJSON() ([]byte, error) { + type NoMethod InstanceManagedByIgmErrorManagedInstanceError + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -type NetworkEndpointGroupsListNetworkEndpointsWarningData 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 or default values are - // omitted from API requests. See +type InstanceMoveRequest struct { + // DestinationZone: The URL of the destination zone to move the instance. This + // can be a full or + // partial URL. For example, the following are all valid URLs to a zone: + // + // - https://www.googleapis.com/compute/v1/projects/project/zones/zone + // - projects/project/zones/zone + // - zones/zone + DestinationZone string `json:"destinationZone,omitempty"` + // TargetInstance: The URL of the target instance to move. This can be a full + // or partial URL. + // For example, the following are all valid URLs to an instance: + // + // - + // https://www.googleapis.com/compute/v1/projects/project/zones/zone/instances/instance + // + // - projects/project/zones/zone/instances/instance + // - zones/zone/instances/instance + TargetInstance string `json:"targetInstance,omitempty"` + // ForceSendFields is a list of field names (e.g. "DestinationZone") to + // unconditionally include in API requests. By default, fields with empty or + // default values are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. 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. See + // NullFields is a list of field names (e.g. "DestinationZone") to include in + // API requests with the JSON null value. By default, fields with empty values + // are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } -func (s *NetworkEndpointGroupsListNetworkEndpointsWarningData) MarshalJSON() ([]byte, error) { - type NoMethod NetworkEndpointGroupsListNetworkEndpointsWarningData - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s InstanceMoveRequest) MarshalJSON() ([]byte, error) { + type NoMethod InstanceMoveRequest + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -type NetworkEndpointGroupsScopedList struct { - // NetworkEndpointGroups: [Output Only] The list of network endpoint groups - // that are contained in this scope. - NetworkEndpointGroups []*NetworkEndpointGroup `json:"networkEndpointGroups,omitempty"` - // Warning: [Output Only] An informational warning that replaces the list of - // network endpoint groups when the list is empty. - Warning *NetworkEndpointGroupsScopedListWarning `json:"warning,omitempty"` - // ForceSendFields is a list of field names (e.g. "NetworkEndpointGroups") to +// InstanceParams: Additional instance params. +type InstanceParams struct { + // RequestValidForDuration: Relative deadline for waiting for capacity. + // Relevant only for + // Instances.Insert API. + RequestValidForDuration *Duration `json:"requestValidForDuration,omitempty"` + // ResourceManagerTags: Input only. Resource manager tags to be bound to the + // instance. Tag keys and values + // have the same definition as resource + // manager tags. Keys and values can be either in numeric format, + // such as `tagKeys/{tag_key_id}` and `tagValues/{tag_value_id}` or + // in + // namespaced format such as `{org_id|project_id}/{tag_key_short_name}` + // and + // `{tag_value_short_name}`. The field is ignored (both PUT & + // PATCH) when empty. + ResourceManagerTags map[string]string `json:"resourceManagerTags,omitempty"` + // ForceSendFields is a list of field names (e.g. "RequestValidForDuration") to // unconditionally include in API requests. By default, fields with empty or // default values are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. ForceSendFields []string `json:"-"` - // NullFields is a list of field names (e.g. "NetworkEndpointGroups") to + // NullFields is a list of field names (e.g. "RequestValidForDuration") to // include in API requests with the JSON null value. By default, fields with // empty values are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } -func (s *NetworkEndpointGroupsScopedList) MarshalJSON() ([]byte, error) { - type NoMethod NetworkEndpointGroupsScopedList - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s InstanceParams) MarshalJSON() ([]byte, error) { + type NoMethod InstanceParams + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -// NetworkEndpointGroupsScopedListWarning: [Output Only] An informational -// warning that replaces the list of network endpoint groups when the list is -// empty. -type NetworkEndpointGroupsScopedListWarning 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. +type InstanceProperties struct { + // AdvancedMachineFeatures: Controls for advanced machine-related behavior + // features. + // Note that for MachineImage, this is not supported yet. + AdvancedMachineFeatures *AdvancedMachineFeatures `json:"advancedMachineFeatures,omitempty"` + // CanIpForward: Enables instances created based on these properties to send + // packets with + // source IP addresses other than their own and receive packets + // with + // destination IP addresses other than their own. If these instances will + // be + // used as an IP gateway or it will be set as the next-hop in a Route + // resource, specify true. If unsure, leave this set tofalse. See theEnable IP + // forwarding + // documentation for more information. + CanIpForward bool `json:"canIpForward,omitempty"` + // ConfidentialInstanceConfig: Specifies the Confidential Instance + // options. + // Note that for MachineImage, this is not supported yet. + ConfidentialInstanceConfig *ConfidentialInstanceConfig `json:"confidentialInstanceConfig,omitempty"` + // Description: An optional text description for the instances that are created + // from these + // properties. + Description string `json:"description,omitempty"` + // Disks: An array of disks that are associated with the instances that are + // created + // from these properties. + Disks []*AttachedDisk `json:"disks,omitempty"` + // GuestAccelerators: A list of guest accelerator cards' type and count to use + // for instances + // created from these properties. + GuestAccelerators []*AcceleratorConfig `json:"guestAccelerators,omitempty"` + // KeyRevocationActionType: KeyRevocationActionType of the instance. Supported + // options are "STOP" and + // "NONE". The default value is "NONE" if it is not specified. // // Possible values: - // "CLEANUP_FAILED" - Warning about failed cleanup of transient changes made - // by a failed operation. - // "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was created. - // "DEPRECATED_TYPE_USED" - When deploying and at least one of the resources - // has a type marked as deprecated - // "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk that is - // larger than image size. - // "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the - // resources has a type marked as experimental - // "EXTERNAL_API_WARNING" - Warning that is present in an external api call - // "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been - // overridden. Deprecated unused field. - // "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an injected - // kernel, which is deprecated. - // "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB" - A WEIGHTED_MAGLEV backend - // service is associated with a health check that is not of type - // HTTP/HTTPS/HTTP2. - // "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a - // exceedingly large number of resources - // "LIST_OVERHEAD_QUOTA_EXCEED" - Resource can't be retrieved due to list - // overhead quota exceed which captures the amount of resources filtered out by - // user-defined list filter. - // "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type - // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is not - // assigned to an instance on the network. - // "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot ip - // forward. - // "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE" - The route's nextHopInstance - // URL refers to an instance that does not have an ipv6 interface on the same - // network as the route. - // "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL refers to - // an instance that does not exist. - // "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance URL - // refers to an instance that is not on the same network as the route. - // "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not have a - // status of RUNNING. - // "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to continue - // the process despite the mentioned error. - // "NO_RESULTS_ON_PAGE" - No results are present on a particular list page. - // "PARTIAL_SUCCESS" - Success is reported, but some results may be missing - // due to errors - // "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource that - // requires a TOS they have not accepted. - // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a resource is - // in use. - // "RESOURCE_NOT_DELETED" - One or more of the resources set to auto-delete - // could not be deleted because they were in use. - // "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is - // ignored. - // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in instance - // group manager is valid as such, but its application does not make a lot of - // sense, because it allows only single instance in instance group. - // "UNDECLARED_PROPERTIES" - When undeclared properties in the schema are - // present - // "UNREACHABLE" - A given scope cannot be reached. - 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 []*NetworkEndpointGroupsScopedListWarningData `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 + // "KEY_REVOCATION_ACTION_TYPE_UNSPECIFIED" - Default value. This value is + // unused. + // "NONE" - Indicates user chose no operation. + // "STOP" - Indicates user chose to opt for VM shutdown on key revocation. + KeyRevocationActionType string `json:"keyRevocationActionType,omitempty"` + // Labels: Labels to apply to instances that are created from these properties. + Labels map[string]string `json:"labels,omitempty"` + // LocalSsdEncryptionMode: Specifies which method should be used for encrypting + // the + // Local SSDs attached to the VM. + // + // Possible values: + // "EPHEMERAL_KEY_ENCRYPTION" - The given VM will opt-in for using ephemeral + // key for + // encryption of Local SSDs. + // The Local SSDs will not be able to recover data in case of VM + // crash. + // "LOCAL_SSD_ENCRYPTION_MODE_UNSPECIFIED" - The given VM will be encrypted + // using keys managed by the cloud + // infrastructure and the keys will be deleted when the VM is + // deleted. + // "STANDARD_ENCRYPTION" - The given VM will be encrypted using keys managed + // by the cloud + // infrastructure and the keys will be deleted when the VM is + // deleted. + LocalSsdEncryptionMode string `json:"localSsdEncryptionMode,omitempty"` + // MachineType: The machine type to use for instances that are created from + // these + // properties. + // This field only accepts a machine type name, for example `n2-standard-4`. + // If you use the machine type full or partial URL, for + // example + // `projects/my-l7ilb-project/zones/us-central1-a/machineTypes/n2-standard-4`, + // the request will result in an `INTERNAL_ERROR`. + MachineType string `json:"machineType,omitempty"` + // Metadata: The metadata key/value pairs to assign to instances that are + // created from + // these properties. These pairs can consist of custom metadata or + // predefined + // keys. SeeProject and + // instance metadata for more information. + Metadata *Metadata `json:"metadata,omitempty"` + // MinCpuPlatform: Minimum cpu/platform to be used by instances. The instance + // may be + // scheduled on the specified or newer cpu/platform. Applicable values are + // the + // friendly names of CPU platforms, such asminCpuPlatform: "Intel Haswell" + // orminCpuPlatform: "Intel Sandy Bridge". For more + // information, read Specifying a + // Minimum CPU Platform. + MinCpuPlatform string `json:"minCpuPlatform,omitempty"` + // NetworkInterfaces: An array of network access configurations for this + // interface. + NetworkInterfaces []*NetworkInterface `json:"networkInterfaces,omitempty"` + // NetworkPerformanceConfig: Note that for MachineImage, this is not supported + // yet. + NetworkPerformanceConfig *NetworkPerformanceConfig `json:"networkPerformanceConfig,omitempty"` + // PrivateIpv6GoogleAccess: The private IPv6 google access type for VMs. + // If not specified, use INHERIT_FROM_SUBNETWORK as default. + // Note that for MachineImage, this is not supported yet. + // + // Possible values: + // "ENABLE_BIDIRECTIONAL_ACCESS_TO_GOOGLE" - Bidirectional private IPv6 + // access to/from Google services. If + // specified, the subnetwork who is attached to the instance's default + // network + // interface will be assigned an internal IPv6 prefix if it doesn't + // have + // before. + // "ENABLE_OUTBOUND_VM_ACCESS_TO_GOOGLE" - Outbound private IPv6 access from + // VMs in this subnet to Google services. If + // specified, the subnetwork who is attached to the instance's default + // network + // interface will be assigned an internal IPv6 prefix if it doesn't + // have + // before. + // "INHERIT_FROM_SUBNETWORK" - Each network interface inherits + // PrivateIpv6GoogleAccess from its + // subnetwork. + PrivateIpv6GoogleAccess string `json:"privateIpv6GoogleAccess,omitempty"` + // ReservationAffinity: Specifies the reservations that instances can consume + // from. + // Note that for MachineImage, this is not supported yet. + ReservationAffinity *ReservationAffinity `json:"reservationAffinity,omitempty"` + // ResourceManagerTags: Input only. Resource manager tags to be bound to the + // instance. Tag keys and values + // have the same definition as resource + // manager tags. Keys and values can be either in numeric format, + // such as `tagKeys/{tag_key_id}` and `tagValues/{tag_value_id}` or + // in + // namespaced format such as `{org_id|project_id}/{tag_key_short_name}` + // and + // `{tag_value_short_name}`. The field is ignored (both PUT & + // PATCH) when empty. + ResourceManagerTags map[string]string `json:"resourceManagerTags,omitempty"` + // ResourcePolicies: Resource policies (names, not URLs) applied to instances + // created from + // these properties. + // Note that for MachineImage, this is not supported yet. + ResourcePolicies []string `json:"resourcePolicies,omitempty"` + // Scheduling: Specifies the scheduling options for the instances that are + // created from + // these properties. + Scheduling *Scheduling `json:"scheduling,omitempty"` + // ServiceAccounts: A list of service accounts with specified scopes. Access + // tokens for these + // service accounts are available to the instances that are created from + // these properties. Use metadata queries to obtain the access tokens for + // these instances. + ServiceAccounts []*ServiceAccount `json:"serviceAccounts,omitempty"` + // ShieldedInstanceConfig: Note that for MachineImage, this is not supported + // yet. + ShieldedInstanceConfig *ShieldedInstanceConfig `json:"shieldedInstanceConfig,omitempty"` + // Tags: A list of tags to apply to the instances that are created from + // these + // properties. The tags identify valid sources or targets for + // network + // firewalls. The setTags method can modify this list of tags. Each tag + // within + // the list must comply with RFC1035. + Tags *Tags `json:"tags,omitempty"` + WorkloadIdentityConfig *WorkloadIdentityConfig `json:"workloadIdentityConfig,omitempty"` + // ForceSendFields is a list of field names (e.g. "AdvancedMachineFeatures") to + // unconditionally include in API requests. By default, fields with empty or + // default values are omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + ForceSendFields []string `json:"-"` + // NullFields is a list of field names (e.g. "AdvancedMachineFeatures") to + // include in API requests with the JSON null value. By default, fields with + // empty values are omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s InstanceProperties) MarshalJSON() ([]byte, error) { + type NoMethod InstanceProperties + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +// InstancePropertiesPatch: Represents the change that you want to make to the +// instance properties. +type InstancePropertiesPatch struct { + // Labels: The label key-value pairs that you want to patch onto the instance. + Labels map[string]string `json:"labels,omitempty"` + // Metadata: The metadata key-value pairs that you want to patch onto the + // instance. For + // more information, see Project and + // instance metadata. + Metadata map[string]string `json:"metadata,omitempty"` + // ForceSendFields is a list of field names (e.g. "Labels") to unconditionally // include in API requests. By default, fields with empty or default values are // omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. 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. See + // NullFields is a list of field names (e.g. "Labels") to include in API + // requests with the JSON null value. By default, fields with empty values are + // omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } -func (s *NetworkEndpointGroupsScopedListWarning) MarshalJSON() ([]byte, error) { - type NoMethod NetworkEndpointGroupsScopedListWarning - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s InstancePropertiesPatch) MarshalJSON() ([]byte, error) { + type NoMethod InstancePropertiesPatch + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -type NetworkEndpointGroupsScopedListWarningData 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 or default values are +type InstanceReference struct { + // Instance: The URL for a specific instance. + // @required compute.instancegroups.addInstances/removeInstances + Instance string `json:"instance,omitempty"` + // ForceSendFields is a list of field names (e.g. "Instance") to + // unconditionally include in API requests. By default, fields with empty or + // default values are omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + ForceSendFields []string `json:"-"` + // NullFields is a list of field names (e.g. "Instance") to include in API + // requests with the JSON null value. By default, fields with empty values are // omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s InstanceReference) MarshalJSON() ([]byte, error) { + type NoMethod InstanceReference + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +// InstanceSettings: Represents a Instance Settings resource. You can use +// instance settings to +// configure default settings for Compute Engine VM instances. For example, +// you +// can use it to configure default machine type of Compute Engine VM instances. +type InstanceSettings struct { + // Fingerprint: Specifies a fingerprint for instance settings, which is + // essentially a hash + // of the instance settings resource's contents and used for + // optimistic + // locking. The fingerprint is initially generated by Compute Engine + // and + // changes after every request to modify or update the instance + // settings + // resource. You must always provide an up-to-date fingerprint hash in order + // to update or change the resource, otherwise the request will fail with + // error 412 conditionNotMet. + // + // To see the latest fingerprint, make a get() request to + // retrieve the resource. + Fingerprint string `json:"fingerprint,omitempty"` + // Kind: Output only. [Output Only] Type of the resource. + // Alwayscompute#instance_settings for instance settings. + Kind string `json:"kind,omitempty"` + // Metadata: The metadata key/value pairs assigned to all the instances in + // the + // corresponding scope. + Metadata *InstanceSettingsMetadata `json:"metadata,omitempty"` + // Zone: Output only. [Output Only] URL of the zone where the resource + // resides + // You must specify this field as part of the HTTP request URL. It is + // not + // settable as a field in the request body. + Zone string `json:"zone,omitempty"` + + // ServerResponse contains the HTTP response code and headers from the server. + googleapi.ServerResponse `json:"-"` + // ForceSendFields is a list of field names (e.g. "Fingerprint") to + // unconditionally include in API requests. By default, fields with empty or + // default values are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. 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. See + // NullFields is a list of field names (e.g. "Fingerprint") to include in API + // requests with the JSON null value. By default, fields with empty values are + // omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } -func (s *NetworkEndpointGroupsScopedListWarningData) MarshalJSON() ([]byte, error) { - type NoMethod NetworkEndpointGroupsScopedListWarningData - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s InstanceSettings) MarshalJSON() ([]byte, error) { + type NoMethod InstanceSettings + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -type NetworkEndpointWithHealthStatus struct { - // Healths: [Output only] The health status of network endpoint; - Healths []*HealthStatusForNetworkEndpoint `json:"healths,omitempty"` - // NetworkEndpoint: [Output only] The network endpoint; - NetworkEndpoint *NetworkEndpoint `json:"networkEndpoint,omitempty"` - // ForceSendFields is a list of field names (e.g. "Healths") to unconditionally +type InstanceSettingsMetadata struct { + // Items: A metadata key/value items map. + // The total size of all keys and values must be less than 512KB. + Items map[string]string `json:"items,omitempty"` + // Kind: Output only. [Output Only] Type of the resource. Always + // compute#metadata + // for metadata. + Kind string `json:"kind,omitempty"` + // ForceSendFields is a list of field names (e.g. "Items") to unconditionally // include in API requests. By default, fields with empty or default values are // omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. ForceSendFields []string `json:"-"` - // NullFields is a list of field names (e.g. "Healths") to include in API + // NullFields is a list of field names (e.g. "Items") to include in API // requests with the JSON null value. By default, fields with empty values are // omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } -func (s *NetworkEndpointWithHealthStatus) MarshalJSON() ([]byte, error) { - type NoMethod NetworkEndpointWithHealthStatus - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s InstanceSettingsMetadata) MarshalJSON() ([]byte, error) { + type NoMethod InstanceSettingsMetadata + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -// NetworkInterface: A network interface resource attached to an instance. -type NetworkInterface struct { - // AccessConfigs: An array of configurations for this interface. Currently, - // only one access config, ONE_TO_ONE_NAT, is supported. If there are no - // accessConfigs specified, then this instance will have no external internet - // access. - AccessConfigs []*AccessConfig `json:"accessConfigs,omitempty"` - // AliasIpRanges: An array of alias IP ranges for this network interface. You - // can only specify this field for network interfaces in VPC networks. - AliasIpRanges []*AliasIpRange `json:"aliasIpRanges,omitempty"` - // Fingerprint: Fingerprint hash of contents stored in this network interface. - // This field will be ignored when inserting an Instance or adding a - // NetworkInterface. An up-to-date fingerprint must be provided in order to - // update the NetworkInterface. The request will fail with error 400 Bad - // Request if the fingerprint is not provided, or 412 Precondition Failed if - // the fingerprint is out of date. - Fingerprint string `json:"fingerprint,omitempty"` - // InternalIpv6PrefixLength: The prefix length of the primary internal IPv6 - // range. - InternalIpv6PrefixLength int64 `json:"internalIpv6PrefixLength,omitempty"` - // Ipv6AccessConfigs: An array of IPv6 access configurations for this - // interface. Currently, only one IPv6 access config, DIRECT_IPV6, is - // supported. If there is no ipv6AccessConfig specified, then this instance - // will have no external IPv6 Internet access. - Ipv6AccessConfigs []*AccessConfig `json:"ipv6AccessConfigs,omitempty"` - // Ipv6AccessType: [Output Only] One of EXTERNAL, INTERNAL to indicate whether - // the IP can be accessed from the Internet. This field is always inherited - // from its subnetwork. Valid only if stackType is IPV4_IPV6. - // - // Possible values: - // "EXTERNAL" - This network interface can have external IPv6. - // "INTERNAL" - This network interface can have internal IPv6. - Ipv6AccessType string `json:"ipv6AccessType,omitempty"` - // Ipv6Address: An IPv6 internal network address for this network interface. To - // use a static internal IP address, it must be unused and in the same region - // as the instance's zone. If not specified, Google Cloud will automatically - // assign an internal IPv6 address from the instance's subnetwork. - Ipv6Address string `json:"ipv6Address,omitempty"` - // Kind: [Output Only] Type of the resource. Always compute#networkInterface - // for network interfaces. +// InstanceTemplate: Represents an Instance Template resource. +// +// Google Compute Engine has two Instance Template resources: +// +// * Global (/compute/docs/reference/rest/v1/instanceTemplates) +// * Regional (/compute/docs/reference/rest/v1/regionInstanceTemplates) +// +// You can reuse a global instance template in +// different regions whereas you can use a regional instance template in +// a +// specified region only. If you want to reduce cross-region dependency +// or +// achieve data residency, use a regional instance template. +// +// To create VMs, managed instance groups, and reservations, you can use +// either +// global or regional instance templates. +// +// For more information, readInstance Templates. +type InstanceTemplate struct { + // CreationTimestamp: Output only. [Output Only] The creation timestamp for + // this instance template inRFC3339 + // text format. + CreationTimestamp string `json:"creationTimestamp,omitempty"` + // Description: An optional description of this resource. Provide this property + // when you + // create the resource. + Description string `json:"description,omitempty"` + // Id: Output only. [Output Only] A unique identifier for this instance + // template. The server + // defines this identifier. + Id uint64 `json:"id,omitempty,string"` + // Kind: Output only. [Output Only] The resource type, which is + // alwayscompute#instanceTemplate for instance templates. Kind string `json:"kind,omitempty"` - // Name: [Output Only] The name of the network interface, which is generated by - // the server. For a VM, the network interface uses the nicN naming format. - // Where N is a value between 0 and 7. The default interface value is nic0. + // Name: Name of the resource; provided by the client when the resource is + // created. + // The name must be 1-63 characters long, and comply withRFC1035. + // 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. Name string `json:"name,omitempty"` - // Network: URL of the VPC network resource for this instance. When creating an - // instance, if neither the network nor the subnetwork is specified, the - // default network global/networks/default is used. If the selected project - // doesn't have the default network, you must specify a network or subnet. If - // the network is not specified but the subnetwork is specified, the network is - // inferred. If you specify this property, you can specify the network as a - // full or partial URL. For example, the following are all valid URLs: - - // https://www.googleapis.com/compute/v1/projects/project/global/networks/ - // network - projects/project/global/networks/network - global/networks/default - Network string `json:"network,omitempty"` - // NetworkAttachment: The URL of the network attachment that this interface - // should connect to in the following format: - // projects/{project_number}/regions/{region_name}/networkAttachments/{network_a - // ttachment_name}. - NetworkAttachment string `json:"networkAttachment,omitempty"` - // NetworkIP: An IPv4 internal IP address to assign to the instance for this - // network interface. If not specified by the user, an unused internal IP is - // assigned by the system. - NetworkIP string `json:"networkIP,omitempty"` - // NicType: The type of vNIC to be used on this interface. This may be gVNIC or - // VirtioNet. + // Properties: The instance properties for this instance template. + Properties *InstanceProperties `json:"properties,omitempty"` + // Region: Output only. [Output Only] URL of the region where the instance + // template resides. Only + // applicable for regional resources. + Region string `json:"region,omitempty"` + // SelfLink: Output only. [Output Only] The URL for this instance template. The + // server defines this + // URL. + 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: // - // Possible values: - // "GVNIC" - GVNIC - // "UNSPECIFIED_NIC_TYPE" - No type specified. - // "VIRTIO_NET" - VIRTIO - NicType string `json:"nicType,omitempty"` - // QueueCount: The networking queue count that's specified by users for the - // network interface. Both Rx and Tx queues will be set to this number. It'll - // be empty if not specified by the users. - QueueCount int64 `json:"queueCount,omitempty"` - // StackType: The stack type for this network interface. To assign only IPv4 - // addresses, use IPV4_ONLY. To assign both IPv4 and IPv6 addresses, use - // IPV4_IPV6. If not specified, IPV4_ONLY is used. This field can be both set - // at instance creation and update network interface operations. // - // Possible values: - // "IPV4_IPV6" - The network interface can have both IPv4 and IPv6 addresses. - // "IPV4_ONLY" - The network interface will be assigned IPv4 address. - StackType string `json:"stackType,omitempty"` - // Subnetwork: The URL of the Subnetwork resource for this instance. If the - // network resource is in legacy mode, do not specify this field. If the - // network is in auto subnet mode, specifying the subnetwork is optional. If - // the network is in custom subnet mode, specifying the subnetwork is required. - // If you specify this field, you can specify the subnetwork as a full or - // partial URL. For example, the following are all valid URLs: - - // https://www.googleapis.com/compute/v1/projects/project/regions/region - // /subnetworks/subnetwork - regions/region/subnetworks/subnetwork - Subnetwork string `json:"subnetwork,omitempty"` - // ForceSendFields is a list of field names (e.g. "AccessConfigs") to + // - + // 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 server. + googleapi.ServerResponse `json:"-"` + // ForceSendFields is a list of field names (e.g. "CreationTimestamp") to // unconditionally include in API requests. By default, fields with empty or // default values are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. ForceSendFields []string `json:"-"` - // NullFields is a list of field names (e.g. "AccessConfigs") to include in API - // requests with the JSON null value. By default, fields with empty values are - // omitted from API requests. See + // NullFields is a list of field names (e.g. "CreationTimestamp") to include in + // API requests with the JSON null value. By default, fields with empty values + // are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } -func (s *NetworkInterface) MarshalJSON() ([]byte, error) { - type NoMethod NetworkInterface - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s InstanceTemplate) MarshalJSON() ([]byte, error) { + type NoMethod InstanceTemplate + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -// NetworkList: Contains a list of networks. -type NetworkList struct { +// InstanceTemplateAggregatedList: Contains a list of +// InstanceTemplatesScopedList. +type InstanceTemplateAggregatedList struct { // Id: [Output Only] Unique identifier for the resource; defined by the server. Id string `json:"id,omitempty"` - // Items: A list of Network resources. - Items []*Network `json:"items,omitempty"` - // Kind: [Output Only] Type of resource. Always compute#networkList for lists - // of networks. + // Items: A list of InstanceTemplatesScopedList resources. + Items map[string]InstanceTemplatesScopedList `json:"items,omitempty"` + // Kind: Output only. Type of resource. 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. + // results for + // list requests. If the number of results is larger thanmaxResults, 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"` - // SelfLink: [Output Only] Server-defined URL for this resource. + // SelfLink: Output only. [Output Only] Server-defined URL for this resource. SelfLink string `json:"selfLink,omitempty"` // Warning: [Output Only] Informational warning message. - Warning *NetworkListWarning `json:"warning,omitempty"` + Warning *InstanceTemplateAggregatedListWarning `json:"warning,omitempty"` // ServerResponse contains the HTTP response code and headers from the server. googleapi.ServerResponse `json:"-"` @@ -27244,76 +32577,99 @@ type NetworkList struct { NullFields []string `json:"-"` } -func (s *NetworkList) MarshalJSON() ([]byte, error) { - type NoMethod NetworkList - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s InstanceTemplateAggregatedList) MarshalJSON() ([]byte, error) { + type NoMethod InstanceTemplateAggregatedList + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -// NetworkListWarning: [Output Only] Informational warning message. -type NetworkListWarning 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. +// InstanceTemplateAggregatedListWarning: [Output Only] Informational warning +// message. +type InstanceTemplateAggregatedListWarning 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" - Warning about failed cleanup of transient changes made - // by a failed operation. + // by a failed + // operation. // "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was created. // "DEPRECATED_TYPE_USED" - When deploying and at least one of the resources - // has a type marked as deprecated + // has a type marked as + // deprecated // "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk that is // larger than image size. // "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the - // resources has a type marked as experimental + // resources has a type marked as + // experimental // "EXTERNAL_API_WARNING" - Warning that is present in an external api call // "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been - // overridden. Deprecated unused field. + // overridden. + // Deprecated unused field. // "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an injected // kernel, which is deprecated. // "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB" - A WEIGHTED_MAGLEV backend - // service is associated with a health check that is not of type - // HTTP/HTTPS/HTTP2. + // service is associated with a health check that is + // not of type HTTP/HTTPS/HTTP2. // "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a // exceedingly large number of resources // "LIST_OVERHEAD_QUOTA_EXCEED" - Resource can't be retrieved due to list - // overhead quota exceed which captures the amount of resources filtered out by + // overhead quota exceed + // which captures the amount of resources filtered out by // user-defined list filter. // "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is not - // assigned to an instance on the network. + // assigned to an instance on the + // network. // "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot ip // forward. // "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE" - The route's nextHopInstance - // URL refers to an instance that does not have an ipv6 interface on the same - // network as the route. + // URL refers to an instance that does not have an + // ipv6 interface on the same network as the route. // "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL refers to // an instance that does not exist. // "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance URL - // refers to an instance that is not on the same network as the route. + // refers to an instance that is not on the + // same network as the route. // "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not have a // status of RUNNING. // "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to continue - // the process despite the mentioned error. + // the process despite + // the mentioned error. // "NO_RESULTS_ON_PAGE" - No results are present on a particular list page. // "PARTIAL_SUCCESS" - Success is reported, but some results may be missing // due to errors + // "QUOTA_INFO_UNAVAILABLE" - Quota information is not available to client + // requests (e.g: + // regions.list). // "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource that - // requires a TOS they have not accepted. + // requires a TOS they have not + // accepted. // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a resource is // in use. // "RESOURCE_NOT_DELETED" - One or more of the resources set to auto-delete - // could not be deleted because they were in use. + // could not be deleted + // because they were in use. // "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is // ignored. // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in instance - // group manager is valid as such, but its application does not make a lot of - // sense, because it allows only single instance in instance group. + // group manager is valid as such, but + // its application does not make a lot of sense, because it allows only + // single instance in instance group. // "UNDECLARED_PROPERTIES" - When undeclared properties in the schema are // present // "UNREACHABLE" - A given scope cannot be reached. 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 []*NetworkListWarningData `json:"data,omitempty"` + // Data: [Output Only] Metadata about this warning in key: + // value format. For example: + // + // "data": [ + // { + // "key": "scope", + // "value": "zones/us-east1-d" + // } + Data []*InstanceTemplateAggregatedListWarningData `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 @@ -27329,19 +32685,22 @@ type NetworkListWarning struct { NullFields []string `json:"-"` } -func (s *NetworkListWarning) MarshalJSON() ([]byte, error) { - type NoMethod NetworkListWarning - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s InstanceTemplateAggregatedListWarning) MarshalJSON() ([]byte, error) { + type NoMethod InstanceTemplateAggregatedListWarning + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -type NetworkListWarningData 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). +type InstanceTemplateAggregatedListWarningData 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"` @@ -27358,506 +32717,309 @@ type NetworkListWarningData struct { NullFields []string `json:"-"` } -func (s *NetworkListWarningData) MarshalJSON() ([]byte, error) { - type NoMethod NetworkListWarningData - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) -} - -// NetworkPeering: A network peering attached to a network resource. The -// message includes the peering name, peer network, peering state, and a flag -// indicating whether Google Compute Engine should automatically create routes -// for the peering. -type NetworkPeering struct { - // AutoCreateRoutes: This field will be deprecated soon. Use the - // exchange_subnet_routes field instead. Indicates whether full mesh - // connectivity is created and managed automatically between peered networks. - // Currently this field should always be true since Google Compute Engine will - // automatically create and manage subnetwork routes between two networks when - // peering state is ACTIVE. - AutoCreateRoutes bool `json:"autoCreateRoutes,omitempty"` - // ExchangeSubnetRoutes: Indicates whether full mesh connectivity is created - // and managed automatically between peered networks. Currently this field - // should always be true since Google Compute Engine will automatically create - // and manage subnetwork routes between two networks when peering state is - // ACTIVE. - ExchangeSubnetRoutes bool `json:"exchangeSubnetRoutes,omitempty"` - // ExportCustomRoutes: Whether to export the custom routes to peer network. The - // default value is false. - ExportCustomRoutes bool `json:"exportCustomRoutes,omitempty"` - // ExportSubnetRoutesWithPublicIp: Whether subnet routes with public IP range - // are exported. The default value is true, all subnet routes are exported. - // IPv4 special-use ranges are always exported to peers and are not controlled - // by this field. - ExportSubnetRoutesWithPublicIp bool `json:"exportSubnetRoutesWithPublicIp,omitempty"` - // ImportCustomRoutes: Whether to import the custom routes from peer network. - // The default value is false. - ImportCustomRoutes bool `json:"importCustomRoutes,omitempty"` - // ImportSubnetRoutesWithPublicIp: Whether subnet routes with public IP range - // are imported. The default value is false. IPv4 special-use ranges are always - // imported from peers and are not controlled by this field. - ImportSubnetRoutesWithPublicIp bool `json:"importSubnetRoutesWithPublicIp,omitempty"` - // Name: Name of this peering. Provided by the client when the peering is - // created. The name must comply with RFC1035. Specifically, the name must be - // 1-63 characters long and match regular expression - // `[a-z]([-a-z0-9]*[a-z0-9])?`. The first character must be a lowercase - // letter, and all the following characters must be a dash, lowercase letter, - // or digit, except the last character, which cannot be a dash. - Name string `json:"name,omitempty"` - // Network: The URL of the peer network. It can be either full URL or partial - // URL. The peer network may belong to a different project. If the partial URL - // does not contain project, it is assumed that the peer network is in the same - // project as the current network. - Network string `json:"network,omitempty"` - // PeerMtu: Maximum Transmission Unit in bytes. - PeerMtu int64 `json:"peerMtu,omitempty"` - // StackType: Which IP version(s) of traffic and routes are allowed to be - // imported or exported between peer networks. The default value is IPV4_ONLY. - // - // Possible values: - // "IPV4_IPV6" - This Peering will allow IPv4 traffic and routes to be - // exchanged. Additionally if the matching peering is IPV4_IPV6, IPv6 traffic - // and routes will be exchanged as well. - // "IPV4_ONLY" - This Peering will only allow IPv4 traffic and routes to be - // exchanged, even if the matching peering is IPV4_IPV6. - StackType string `json:"stackType,omitempty"` - // State: [Output Only] State for the peering, either `ACTIVE` or `INACTIVE`. - // The peering is `ACTIVE` when there's a matching configuration in the peer - // network. - // - // Possible values: - // "ACTIVE" - Matching configuration exists on the peer. - // "INACTIVE" - There is no matching configuration on the peer, including the - // case when peer does not exist. - State string `json:"state,omitempty"` - // StateDetails: [Output Only] Details about the current state of the peering. - StateDetails string `json:"stateDetails,omitempty"` - // ForceSendFields is a list of field names (e.g. "AutoCreateRoutes") to - // unconditionally include in API requests. By default, fields with empty or - // default values are omitted from API requests. See - // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more - // details. - ForceSendFields []string `json:"-"` - // NullFields is a list of field names (e.g. "AutoCreateRoutes") to include in - // API requests with the JSON null value. By default, fields with empty values - // are omitted from API requests. See - // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. - NullFields []string `json:"-"` +func (s InstanceTemplateAggregatedListWarningData) MarshalJSON() ([]byte, error) { + type NoMethod InstanceTemplateAggregatedListWarningData + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -func (s *NetworkPeering) MarshalJSON() ([]byte, error) { - type NoMethod NetworkPeering - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) -} +// InstanceTemplateList: A list of instance templates. +type InstanceTemplateList struct { + // Id: [Output Only] Unique identifier for the resource; defined by the server. + Id string `json:"id,omitempty"` + // Items: A list of InstanceTemplate resources. + Items []*InstanceTemplate `json:"items,omitempty"` + // Kind: Output only. [Output Only] The resource type, which is + // alwayscompute#instanceTemplatesListResponse for instance template + // lists. + 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 thanmaxResults, 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"` + // SelfLink: Output only. [Output Only] Server-defined URL for this resource. + SelfLink string `json:"selfLink,omitempty"` + // Warning: [Output Only] Informational warning message. + Warning *InstanceTemplateListWarning `json:"warning,omitempty"` -type NetworkPerformanceConfig struct { - // Possible values: - // "DEFAULT" - // "TIER_1" - TotalEgressBandwidthTier string `json:"totalEgressBandwidthTier,omitempty"` - // ForceSendFields is a list of field names (e.g. "TotalEgressBandwidthTier") - // to unconditionally include in API requests. By default, fields with empty or - // default values are omitted from API requests. See + // 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 or default values are + // omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. ForceSendFields []string `json:"-"` - // NullFields is a list of field names (e.g. "TotalEgressBandwidthTier") to - // include in API requests with the JSON null value. By default, fields with - // empty values are omitted from API requests. See + // 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. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } -func (s *NetworkPerformanceConfig) MarshalJSON() ([]byte, error) { - type NoMethod NetworkPerformanceConfig - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s InstanceTemplateList) MarshalJSON() ([]byte, error) { + type NoMethod InstanceTemplateList + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -// NetworkRoutingConfig: A routing configuration attached to a network -// resource. The message includes the list of routers associated with the -// network, and a flag indicating the type of routing behavior to enforce -// network-wide. -type NetworkRoutingConfig struct { - // RoutingMode: The network-wide routing mode to use. If set to REGIONAL, this - // network's Cloud Routers will only advertise routes with subnets of this - // network in the same region as the router. If set to GLOBAL, this network's - // Cloud Routers will advertise routes with all subnets of this network, across - // regions. +// InstanceTemplateListWarning: [Output Only] Informational warning message. +type InstanceTemplateListWarning 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: - // "GLOBAL" - // "REGIONAL" - RoutingMode string `json:"routingMode,omitempty"` - // ForceSendFields is a list of field names (e.g. "RoutingMode") to - // unconditionally include in API requests. By default, fields with empty or - // default values are omitted from API requests. See + // "CLEANUP_FAILED" - Warning about failed cleanup of transient changes made + // by a failed + // operation. + // "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was created. + // "DEPRECATED_TYPE_USED" - When deploying and at least one of the resources + // has a type marked as + // deprecated + // "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk that is + // larger than image size. + // "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the + // resources has a type marked as + // experimental + // "EXTERNAL_API_WARNING" - Warning that is present in an external api call + // "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been + // overridden. + // Deprecated unused field. + // "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an injected + // kernel, which is deprecated. + // "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB" - A WEIGHTED_MAGLEV backend + // service is associated with a health check that is + // not of type HTTP/HTTPS/HTTP2. + // "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a + // exceedingly large number of resources + // "LIST_OVERHEAD_QUOTA_EXCEED" - Resource can't be retrieved due to list + // overhead quota exceed + // which captures the amount of resources filtered out by + // user-defined list filter. + // "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type + // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is not + // assigned to an instance on the + // network. + // "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot ip + // forward. + // "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE" - The route's nextHopInstance + // URL refers to an instance that does not have an + // ipv6 interface on the same network as the route. + // "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL refers to + // an instance that does not exist. + // "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance URL + // refers to an instance that is not on the + // same network as the route. + // "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not have a + // status of RUNNING. + // "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to continue + // the process despite + // the mentioned error. + // "NO_RESULTS_ON_PAGE" - No results are present on a particular list page. + // "PARTIAL_SUCCESS" - Success is reported, but some results may be missing + // due to errors + // "QUOTA_INFO_UNAVAILABLE" - Quota information is not available to client + // requests (e.g: + // regions.list). + // "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource that + // requires a TOS they have not + // accepted. + // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a resource is + // in use. + // "RESOURCE_NOT_DELETED" - One or more of the resources set to auto-delete + // could not be deleted + // because they were in use. + // "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is + // ignored. + // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in instance + // group manager is valid as such, but + // its application does not make a lot of sense, because it allows only + // single instance in instance group. + // "UNDECLARED_PROPERTIES" - When undeclared properties in the schema are + // present + // "UNREACHABLE" - A given scope cannot be reached. + 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 []*InstanceTemplateListWarningData `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 or default values are + // omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. ForceSendFields []string `json:"-"` - // NullFields is a list of field names (e.g. "RoutingMode") to include in API - // requests with the JSON null value. By default, fields with empty values are - // omitted from API requests. See + // 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. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } -func (s *NetworkRoutingConfig) MarshalJSON() ([]byte, error) { - type NoMethod NetworkRoutingConfig - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s InstanceTemplateListWarning) MarshalJSON() ([]byte, error) { + type NoMethod InstanceTemplateListWarning + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -type NetworksAddPeeringRequest struct { - // AutoCreateRoutes: This field will be deprecated soon. Use - // exchange_subnet_routes in network_peering instead. Indicates whether full - // mesh connectivity is created and managed automatically between peered - // networks. Currently this field should always be true since Google Compute - // Engine will automatically create and manage subnetwork routes between two - // networks when peering state is ACTIVE. - AutoCreateRoutes bool `json:"autoCreateRoutes,omitempty"` - // Name: Name of the peering, which should conform to RFC1035. - Name string `json:"name,omitempty"` - // NetworkPeering: Network peering parameters. In order to specify route - // policies for peering using import and export custom routes, you must specify - // all peering related parameters (name, peer network, exchange_subnet_routes) - // in the network_peering field. The corresponding fields in - // NetworksAddPeeringRequest will be deprecated soon. - NetworkPeering *NetworkPeering `json:"networkPeering,omitempty"` - // PeerNetwork: URL of the peer network. It can be either full URL or partial - // URL. The peer network may belong to a different project. If the partial URL - // does not contain project, it is assumed that the peer network is in the same - // project as the current network. - PeerNetwork string `json:"peerNetwork,omitempty"` - // ForceSendFields is a list of field names (e.g. "AutoCreateRoutes") to - // unconditionally include in API requests. By default, fields with empty or - // default values are omitted from API requests. See +type InstanceTemplateListWarningData 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 or default values are + // omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. ForceSendFields []string `json:"-"` - // NullFields is a list of field names (e.g. "AutoCreateRoutes") to include in - // API requests with the JSON null value. By default, fields with empty values - // are omitted from API requests. See + // 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. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } -func (s *NetworksAddPeeringRequest) MarshalJSON() ([]byte, error) { - type NoMethod NetworksAddPeeringRequest - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s InstanceTemplateListWarningData) MarshalJSON() ([]byte, error) { + type NoMethod InstanceTemplateListWarningData + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -type NetworksGetEffectiveFirewallsResponse struct { - // FirewallPolicys: Effective firewalls from firewall policy. - FirewallPolicys []*NetworksGetEffectiveFirewallsResponseEffectiveFirewallPolicy `json:"firewallPolicys,omitempty"` - // Firewalls: Effective firewalls on the network. - Firewalls []*Firewall `json:"firewalls,omitempty"` - - // ServerResponse contains the HTTP response code and headers from the server. - googleapi.ServerResponse `json:"-"` - // ForceSendFields is a list of field names (e.g. "FirewallPolicys") to +type InstanceTemplatesScopedList struct { + // InstanceTemplates: [Output Only] A list of instance templates that are + // contained within + // the specified project and zone. + InstanceTemplates []*InstanceTemplate `json:"instanceTemplates,omitempty"` + // Warning: [Output Only] An informational warning that replaces the list of + // instance + // templates when the list is empty. + Warning *InstanceTemplatesScopedListWarning `json:"warning,omitempty"` + // ForceSendFields is a list of field names (e.g. "InstanceTemplates") to // unconditionally include in API requests. By default, fields with empty or // default values are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. ForceSendFields []string `json:"-"` - // NullFields is a list of field names (e.g. "FirewallPolicys") to include in + // NullFields is a list of field names (e.g. "InstanceTemplates") to include in // API requests with the JSON null value. By default, fields with empty values // are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } -func (s *NetworksGetEffectiveFirewallsResponse) MarshalJSON() ([]byte, error) { - type NoMethod NetworksGetEffectiveFirewallsResponse - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s InstanceTemplatesScopedList) MarshalJSON() ([]byte, error) { + type NoMethod InstanceTemplatesScopedList + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -type NetworksGetEffectiveFirewallsResponseEffectiveFirewallPolicy struct { - // DisplayName: [Output Only] Deprecated, please use short name instead. The - // display name of the firewall policy. - DisplayName string `json:"displayName,omitempty"` - // Name: [Output Only] The name of the firewall policy. - Name string `json:"name,omitempty"` - // Rules: The rules that apply to the network. - Rules []*FirewallPolicyRule `json:"rules,omitempty"` - // ShortName: [Output Only] The short name of the firewall policy. - ShortName string `json:"shortName,omitempty"` - // Type: [Output Only] The type of the firewall policy. - // - // Possible values: - // "HIERARCHY" - // "NETWORK" - // "UNSPECIFIED" - Type string `json:"type,omitempty"` - // ForceSendFields is a list of field names (e.g. "DisplayName") to - // unconditionally include in API requests. By default, fields with empty or - // default values are omitted from API requests. See - // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more - // details. - ForceSendFields []string `json:"-"` - // NullFields is a list of field names (e.g. "DisplayName") to include in API - // requests with the JSON null value. By default, fields with empty values are - // omitted from API requests. See - // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. - NullFields []string `json:"-"` -} - -func (s *NetworksGetEffectiveFirewallsResponseEffectiveFirewallPolicy) MarshalJSON() ([]byte, error) { - type NoMethod NetworksGetEffectiveFirewallsResponseEffectiveFirewallPolicy - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) -} - -type NetworksRemovePeeringRequest struct { - // Name: Name of the peering, which should conform to RFC1035. - Name string `json:"name,omitempty"` - // ForceSendFields is a list of field names (e.g. "Name") to unconditionally - // include in API requests. By default, fields with empty or default values are - // omitted from API requests. See - // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more - // details. - ForceSendFields []string `json:"-"` - // NullFields is a list of field names (e.g. "Name") to include in API requests - // with the JSON null value. By default, fields with empty values are omitted - // from API requests. See - // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. - NullFields []string `json:"-"` -} - -func (s *NetworksRemovePeeringRequest) MarshalJSON() ([]byte, error) { - type NoMethod NetworksRemovePeeringRequest - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) -} - -type NetworksUpdatePeeringRequest struct { - NetworkPeering *NetworkPeering `json:"networkPeering,omitempty"` - // ForceSendFields is a list of field names (e.g. "NetworkPeering") to - // unconditionally include in API requests. By default, fields with empty or - // default values are omitted from API requests. See - // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more - // details. - ForceSendFields []string `json:"-"` - // NullFields is a list of field names (e.g. "NetworkPeering") to include in - // API requests with the JSON null value. By default, fields with empty values - // are omitted from API requests. See - // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. - NullFields []string `json:"-"` -} - -func (s *NetworksUpdatePeeringRequest) MarshalJSON() ([]byte, error) { - type NoMethod NetworksUpdatePeeringRequest - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) -} - -// NodeGroup: Represents a sole-tenant Node Group resource. A sole-tenant node -// is a physical server that is dedicated to hosting VM instances only for your -// specific project. Use sole-tenant nodes to keep your instances physically -// separated from instances in other projects, or to group your instances -// together on the same host hardware. For more information, read Sole-tenant -// nodes. -type NodeGroup struct { - // AutoscalingPolicy: Specifies how autoscaling should behave. - AutoscalingPolicy *NodeGroupAutoscalingPolicy `json:"autoscalingPolicy,omitempty"` - // CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text format. - CreationTimestamp string `json:"creationTimestamp,omitempty"` - // Description: An optional description of this resource. Provide this property - // when you create the resource. - Description string `json:"description,omitempty"` - Fingerprint string `json:"fingerprint,omitempty"` - // Id: [Output Only] The unique identifier for the resource. This identifier is - // defined by the server. - Id uint64 `json:"id,omitempty,string"` - // Kind: [Output Only] The type of the resource. Always compute#nodeGroup for - // node group. - Kind string `json:"kind,omitempty"` - // LocationHint: An opaque location hint used to place the Node close to other - // resources. This field is for use by internal tools that use the public API. - // The location hint here on the NodeGroup overrides any location_hint present - // in the NodeTemplate. - LocationHint string `json:"locationHint,omitempty"` - // MaintenanceInterval: Specifies the frequency of planned maintenance events. - // The accepted values are: `AS_NEEDED` and `RECURRENT`. - // - // Possible values: - // "AS_NEEDED" - VMs are eligible to receive infrastructure and hypervisor - // updates as they become available. This may result in more maintenance - // operations (live migrations or terminations) for the VM than the PERIODIC - // and RECURRENT options. - // "RECURRENT" - VMs receive infrastructure and hypervisor updates on a - // periodic basis, minimizing the number of maintenance operations (live - // migrations or terminations) on an individual VM. This may mean a VM will - // take longer to receive an update than if it was configured for AS_NEEDED. - // Security updates will still be applied as soon as they are available. - // RECURRENT is used for GEN3 and Slice of Hardware VMs. - MaintenanceInterval string `json:"maintenanceInterval,omitempty"` - // MaintenancePolicy: Specifies how to handle instances when a node in the - // group undergoes maintenance. Set to one of: DEFAULT, RESTART_IN_PLACE, or - // MIGRATE_WITHIN_NODE_GROUP. The default value is DEFAULT. For more - // information, see Maintenance policies. - // - // Possible values: - // "DEFAULT" - Allow the node and corresponding instances to retain default - // maintenance behavior. - // "MAINTENANCE_POLICY_UNSPECIFIED" - // "MIGRATE_WITHIN_NODE_GROUP" - When maintenance must be done on a node, the - // instances on that node will be moved to other nodes in the group. Instances - // with onHostMaintenance = MIGRATE will live migrate to their destinations - // while instances with onHostMaintenance = TERMINATE will terminate and then - // restart on their destination nodes if automaticRestart = true. - // "RESTART_IN_PLACE" - Instances in this group will restart on the same node - // when maintenance has completed. Instances must have onHostMaintenance = - // TERMINATE, and they will only restart if automaticRestart = true. - MaintenancePolicy string `json:"maintenancePolicy,omitempty"` - MaintenanceWindow *NodeGroupMaintenanceWindow `json:"maintenanceWindow,omitempty"` - // Name: The name of the resource, provided by the client when initially - // creating the resource. The resource 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. - Name string `json:"name,omitempty"` - // NodeTemplate: URL of the node template to create the node group from. - NodeTemplate string `json:"nodeTemplate,omitempty"` - // SelfLink: [Output Only] Server-defined URL for the resource. - SelfLink string `json:"selfLink,omitempty"` - // ShareSettings: Share-settings for the node group - ShareSettings *ShareSettings `json:"shareSettings,omitempty"` - // Size: [Output Only] The total number of nodes in the node group. - Size int64 `json:"size,omitempty"` - // Possible values: - // "CREATING" - // "DELETING" - // "INVALID" - // "READY" - Status string `json:"status,omitempty"` - // Zone: [Output Only] The name of the zone where the node group resides, such - // as us-central1-a. - Zone string `json:"zone,omitempty"` - - // ServerResponse contains the HTTP response code and headers from the server. - googleapi.ServerResponse `json:"-"` - // ForceSendFields is a list of field names (e.g. "AutoscalingPolicy") to - // unconditionally include in API requests. By default, fields with empty or - // default values are omitted from API requests. See - // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more - // details. - ForceSendFields []string `json:"-"` - // NullFields is a list of field names (e.g. "AutoscalingPolicy") to include in - // API requests with the JSON null value. By default, fields with empty values - // are omitted from API requests. See - // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. - NullFields []string `json:"-"` -} - -func (s *NodeGroup) MarshalJSON() ([]byte, error) { - type NoMethod NodeGroup - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) -} - -type NodeGroupAggregatedList struct { - // Id: [Output Only] Unique identifier for the resource; defined by the server. - Id string `json:"id,omitempty"` - // Items: A list of NodeGroupsScopedList resources. - Items map[string]NodeGroupsScopedList `json:"items,omitempty"` - // Kind: [Output Only] Type of resource.Always compute#nodeGroupAggregatedList - // for aggregated lists of node groups. - 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"` - // SelfLink: [Output Only] Server-defined URL for this resource. - SelfLink string `json:"selfLink,omitempty"` - // Unreachables: [Output Only] Unreachable resources. - Unreachables []string `json:"unreachables,omitempty"` - // Warning: [Output Only] Informational warning message. - Warning *NodeGroupAggregatedListWarning `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 or default values are - // omitted from API requests. See - // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more - // details. - 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. See - // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. - NullFields []string `json:"-"` -} - -func (s *NodeGroupAggregatedList) MarshalJSON() ([]byte, error) { - type NoMethod NodeGroupAggregatedList - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) -} - -// NodeGroupAggregatedListWarning: [Output Only] Informational warning message. -type NodeGroupAggregatedListWarning 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. +// InstanceTemplatesScopedListWarning: [Output Only] An informational warning +// that replaces the list of instance +// templates when the list is empty. +type InstanceTemplatesScopedListWarning 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" - Warning about failed cleanup of transient changes made - // by a failed operation. + // by a failed + // operation. // "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was created. // "DEPRECATED_TYPE_USED" - When deploying and at least one of the resources - // has a type marked as deprecated + // has a type marked as + // deprecated // "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk that is // larger than image size. // "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the - // resources has a type marked as experimental + // resources has a type marked as + // experimental // "EXTERNAL_API_WARNING" - Warning that is present in an external api call // "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been - // overridden. Deprecated unused field. + // overridden. + // Deprecated unused field. // "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an injected // kernel, which is deprecated. // "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB" - A WEIGHTED_MAGLEV backend - // service is associated with a health check that is not of type - // HTTP/HTTPS/HTTP2. + // service is associated with a health check that is + // not of type HTTP/HTTPS/HTTP2. // "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a // exceedingly large number of resources // "LIST_OVERHEAD_QUOTA_EXCEED" - Resource can't be retrieved due to list - // overhead quota exceed which captures the amount of resources filtered out by + // overhead quota exceed + // which captures the amount of resources filtered out by // user-defined list filter. // "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is not - // assigned to an instance on the network. + // assigned to an instance on the + // network. // "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot ip // forward. // "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE" - The route's nextHopInstance - // URL refers to an instance that does not have an ipv6 interface on the same - // network as the route. + // URL refers to an instance that does not have an + // ipv6 interface on the same network as the route. // "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL refers to // an instance that does not exist. // "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance URL - // refers to an instance that is not on the same network as the route. + // refers to an instance that is not on the + // same network as the route. // "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not have a // status of RUNNING. // "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to continue - // the process despite the mentioned error. + // the process despite + // the mentioned error. // "NO_RESULTS_ON_PAGE" - No results are present on a particular list page. // "PARTIAL_SUCCESS" - Success is reported, but some results may be missing // due to errors + // "QUOTA_INFO_UNAVAILABLE" - Quota information is not available to client + // requests (e.g: + // regions.list). // "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource that - // requires a TOS they have not accepted. + // requires a TOS they have not + // accepted. // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a resource is // in use. // "RESOURCE_NOT_DELETED" - One or more of the resources set to auto-delete - // could not be deleted because they were in use. + // could not be deleted + // because they were in use. // "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is // ignored. // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in instance - // group manager is valid as such, but its application does not make a lot of - // sense, because it allows only single instance in instance group. + // group manager is valid as such, but + // its application does not make a lot of sense, because it allows only + // single instance in instance group. // "UNDECLARED_PROPERTIES" - When undeclared properties in the schema are // present // "UNREACHABLE" - A given scope cannot be reached. 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 []*NodeGroupAggregatedListWarningData `json:"data,omitempty"` + // Data: [Output Only] Metadata about this warning in key: + // value format. For example: + // + // "data": [ + // { + // "key": "scope", + // "value": "zones/us-east1-d" + // } + Data []*InstanceTemplatesScopedListWarningData `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 @@ -27873,19 +33035,22 @@ type NodeGroupAggregatedListWarning struct { NullFields []string `json:"-"` } -func (s *NodeGroupAggregatedListWarning) MarshalJSON() ([]byte, error) { - type NoMethod NodeGroupAggregatedListWarning - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s InstanceTemplatesScopedListWarning) MarshalJSON() ([]byte, error) { + type NoMethod InstanceTemplatesScopedListWarning + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -type NodeGroupAggregatedListWarningData 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). +type InstanceTemplatesScopedListWarningData 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"` @@ -27902,434 +33067,370 @@ type NodeGroupAggregatedListWarningData struct { NullFields []string `json:"-"` } -func (s *NodeGroupAggregatedListWarningData) MarshalJSON() ([]byte, error) { - type NoMethod NodeGroupAggregatedListWarningData - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s InstanceTemplatesScopedListWarningData) MarshalJSON() ([]byte, error) { + type NoMethod InstanceTemplatesScopedListWarningData + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -type NodeGroupAutoscalingPolicy struct { - // MaxNodes: The maximum number of nodes that the group should have. Must be - // set if autoscaling is enabled. Maximum value allowed is 100. - MaxNodes int64 `json:"maxNodes,omitempty"` - // MinNodes: The minimum number of nodes that the group should have. - MinNodes int64 `json:"minNodes,omitempty"` - // Mode: The autoscaling mode. Set to one of: ON, OFF, or ONLY_SCALE_OUT. For - // more information, see Autoscaler modes. +type InstanceWithNamedPorts struct { + // Instance: Output only. [Output Only] The URL of the instance. + Instance string `json:"instance,omitempty"` + // NamedPorts: Output only. [Output Only] The named ports that belong to this + // instance group. + NamedPorts []*NamedPort `json:"namedPorts,omitempty"` + // Status: Output only. [Output Only] The status of the instance. // // Possible values: - // "MODE_UNSPECIFIED" - // "OFF" - Autoscaling is disabled. - // "ON" - Autocaling is fully enabled. - // "ONLY_SCALE_OUT" - Autoscaling will only scale out and will not remove - // nodes. - Mode string `json:"mode,omitempty"` - // ForceSendFields is a list of field names (e.g. "MaxNodes") to + // "DEPROVISIONING" - The instance is halted and we are performing tear down + // tasks like network + // deprogramming, releasing quota, IP, tearing down disks etc. + // "PENDING" - For Flex Start provisioning instance is waiting for available + // capacity + // from Dynamic Workload Scheduler (DWS). + // "PROVISIONING" - Resources are being allocated for the instance. + // "REPAIRING" - The instance is in repair. + // "RUNNING" - The instance is running. + // "STAGING" - All required resources have been allocated and the instance + // is being started. + // "STOPPED" - The instance has stopped successfully. + // "STOPPING" - The instance is currently stopping (either being deleted or + // killed). + // "SUSPENDED" - The instance has suspended. + // "SUSPENDING" - The instance is suspending. + // "TERMINATED" - The instance has stopped (either by explicit action or + // underlying + // failure). + Status string `json:"status,omitempty"` + // ForceSendFields is a list of field names (e.g. "Instance") to // unconditionally include in API requests. By default, fields with empty or // default values are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. ForceSendFields []string `json:"-"` - // NullFields is a list of field names (e.g. "MaxNodes") to include in API + // NullFields is a list of field names (e.g. "Instance") to include in API // requests with the JSON null value. By default, fields with empty values are // omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } -func (s *NodeGroupAutoscalingPolicy) MarshalJSON() ([]byte, error) { - type NoMethod NodeGroupAutoscalingPolicy - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s InstanceWithNamedPorts) MarshalJSON() ([]byte, error) { + type NoMethod InstanceWithNamedPorts + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -// NodeGroupList: Contains a list of nodeGroups. -type NodeGroupList struct { - // Id: [Output Only] Unique identifier for the resource; defined by the server. - Id string `json:"id,omitempty"` - // Items: A list of NodeGroup resources. - Items []*NodeGroup `json:"items,omitempty"` - // Kind: [Output Only] Type of resource.Always compute#nodeGroupList for lists - // of node groups. - 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"` - // SelfLink: [Output Only] Server-defined URL for this resource. - SelfLink string `json:"selfLink,omitempty"` - // Warning: [Output Only] Informational warning message. - Warning *NodeGroupListWarning `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 or default values are - // omitted from API requests. See +type InstancesAddResourcePoliciesRequest struct { + // ResourcePolicies: Resource policies to be added to this instance. + ResourcePolicies []string `json:"resourcePolicies,omitempty"` + // ForceSendFields is a list of field names (e.g. "ResourcePolicies") to + // unconditionally include in API requests. By default, fields with empty or + // default values are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. 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. See + // NullFields is a list of field names (e.g. "ResourcePolicies") to include in + // API requests with the JSON null value. By default, fields with empty values + // are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } -func (s *NodeGroupList) MarshalJSON() ([]byte, error) { - type NoMethod NodeGroupList - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s InstancesAddResourcePoliciesRequest) MarshalJSON() ([]byte, error) { + type NoMethod InstancesAddResourcePoliciesRequest + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -// NodeGroupListWarning: [Output Only] Informational warning message. -type NodeGroupListWarning 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" - Warning about failed cleanup of transient changes made - // by a failed operation. - // "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was created. - // "DEPRECATED_TYPE_USED" - When deploying and at least one of the resources - // has a type marked as deprecated - // "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk that is - // larger than image size. - // "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the - // resources has a type marked as experimental - // "EXTERNAL_API_WARNING" - Warning that is present in an external api call - // "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been - // overridden. Deprecated unused field. - // "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an injected - // kernel, which is deprecated. - // "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB" - A WEIGHTED_MAGLEV backend - // service is associated with a health check that is not of type - // HTTP/HTTPS/HTTP2. - // "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a - // exceedingly large number of resources - // "LIST_OVERHEAD_QUOTA_EXCEED" - Resource can't be retrieved due to list - // overhead quota exceed which captures the amount of resources filtered out by - // user-defined list filter. - // "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type - // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is not - // assigned to an instance on the network. - // "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot ip - // forward. - // "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE" - The route's nextHopInstance - // URL refers to an instance that does not have an ipv6 interface on the same - // network as the route. - // "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL refers to - // an instance that does not exist. - // "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance URL - // refers to an instance that is not on the same network as the route. - // "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not have a - // status of RUNNING. - // "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to continue - // the process despite the mentioned error. - // "NO_RESULTS_ON_PAGE" - No results are present on a particular list page. - // "PARTIAL_SUCCESS" - Success is reported, but some results may be missing - // due to errors - // "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource that - // requires a TOS they have not accepted. - // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a resource is - // in use. - // "RESOURCE_NOT_DELETED" - One or more of the resources set to auto-delete - // could not be deleted because they were in use. - // "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is - // ignored. - // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in instance - // group manager is valid as such, but its application does not make a lot of - // sense, because it allows only single instance in instance group. - // "UNDECLARED_PROPERTIES" - When undeclared properties in the schema are - // present - // "UNREACHABLE" - A given scope cannot be reached. - 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 []*NodeGroupListWarningData `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 or default values are - // omitted from API requests. See +type InstancesBulkInsertOperationMetadata struct { + // PerLocationStatus: Status information per location (location name is + // key). + // Example key: zones/us-central1-a + PerLocationStatus map[string]BulkInsertOperationStatus `json:"perLocationStatus,omitempty"` + // ForceSendFields is a list of field names (e.g. "PerLocationStatus") to + // unconditionally include in API requests. By default, fields with empty or + // default values are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. 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. See + // NullFields is a list of field names (e.g. "PerLocationStatus") to include in + // API requests with the JSON null value. By default, fields with empty values + // are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } -func (s *NodeGroupListWarning) MarshalJSON() ([]byte, error) { - type NoMethod NodeGroupListWarning - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s InstancesBulkInsertOperationMetadata) MarshalJSON() ([]byte, error) { + type NoMethod InstancesBulkInsertOperationMetadata + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -type NodeGroupListWarningData 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 or default values are - // omitted from API requests. See +type InstancesGetEffectiveFirewallsResponse struct { + // FirewallPolicys: [Output Only] Effective firewalls from firewall policies. + FirewallPolicys []*InstancesGetEffectiveFirewallsResponseEffectiveFirewallPolicy `json:"firewallPolicys,omitempty"` + // Firewalls: Effective firewalls on the instance. + Firewalls []*Firewall `json:"firewalls,omitempty"` + + // ServerResponse contains the HTTP response code and headers from the server. + googleapi.ServerResponse `json:"-"` + // ForceSendFields is a list of field names (e.g. "FirewallPolicys") to + // unconditionally include in API requests. By default, fields with empty or + // default values are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. 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. See + // NullFields is a list of field names (e.g. "FirewallPolicys") to include in + // API requests with the JSON null value. By default, fields with empty values + // are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } -func (s *NodeGroupListWarningData) MarshalJSON() ([]byte, error) { - type NoMethod NodeGroupListWarningData - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s InstancesGetEffectiveFirewallsResponse) MarshalJSON() ([]byte, error) { + type NoMethod InstancesGetEffectiveFirewallsResponse + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -// NodeGroupMaintenanceWindow: Time window specified for daily maintenance -// operations. GCE's internal maintenance will be performed within this window. -type NodeGroupMaintenanceWindow struct { - // MaintenanceDuration: [Output only] A predetermined duration for the window, - // automatically chosen to be the smallest possible in the given scenario. - MaintenanceDuration *Duration `json:"maintenanceDuration,omitempty"` - // StartTime: Start time of the window. This must be in UTC format that - // resolves to one of 00:00, 04:00, 08:00, 12:00, 16:00, or 20:00. For example, - // both 13:00-5 and 08:00 are valid. - StartTime string `json:"startTime,omitempty"` - // ForceSendFields is a list of field names (e.g. "MaintenanceDuration") to +type InstancesGetEffectiveFirewallsResponseEffectiveFirewallPolicy struct { + // DisplayName: Output only. [Output Only] Deprecated, please use short name + // instead. The display name + // of the firewall policy. + DisplayName string `json:"displayName,omitempty"` + // Name: Output only. [Output Only] The name of the firewall policy. + Name string `json:"name,omitempty"` + // PacketMirroringRules: Output only. [Output Only] The packet mirroring rules + // that apply to the instance. + PacketMirroringRules []*FirewallPolicyRule `json:"packetMirroringRules,omitempty"` + // Priority: Output only. [Output only] Priority of firewall policy + // association. Not applicable for + // type=HIERARCHY. + Priority int64 `json:"priority,omitempty"` + // Rules: [Output Only] The rules that apply to the instance. Only rules + // that + // target the specific VM instance are returned if target service accounts + // or target secure tags are specified in the rules. + Rules []*FirewallPolicyRule `json:"rules,omitempty"` + // ShortName: Output only. [Output Only] The short name of the firewall policy. + ShortName string `json:"shortName,omitempty"` + // Type: Output only. [Output Only] The type of the firewall policy. Can be one + // of HIERARCHY, + // NETWORK, NETWORK_REGIONAL, SYSTEM_GLOBAL, SYSTEM_REGIONAL. + // + // Possible values: + // "HIERARCHY" + // "NETWORK" + // "NETWORK_REGIONAL" + // "SYSTEM_GLOBAL" + // "SYSTEM_REGIONAL" + // "UNSPECIFIED" + Type string `json:"type,omitempty"` + // ForceSendFields is a list of field names (e.g. "DisplayName") to // unconditionally include in API requests. By default, fields with empty or // default values are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. ForceSendFields []string `json:"-"` - // NullFields is a list of field names (e.g. "MaintenanceDuration") to include - // in API requests with the JSON null value. By default, fields with empty - // values are omitted from API requests. See + // NullFields is a list of field names (e.g. "DisplayName") to include in API + // requests with the JSON null value. By default, fields with empty values are + // omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } -func (s *NodeGroupMaintenanceWindow) MarshalJSON() ([]byte, error) { - type NoMethod NodeGroupMaintenanceWindow - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s InstancesGetEffectiveFirewallsResponseEffectiveFirewallPolicy) MarshalJSON() ([]byte, error) { + type NoMethod InstancesGetEffectiveFirewallsResponseEffectiveFirewallPolicy + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -type NodeGroupNode struct { - // Accelerators: Accelerators for this node. - Accelerators []*AcceleratorConfig `json:"accelerators,omitempty"` - // ConsumedResources: Node resources that are reserved by all instances. - ConsumedResources *InstanceConsumptionInfo `json:"consumedResources,omitempty"` - // CpuOvercommitType: CPU overcommit. - // - // Possible values: - // "CPU_OVERCOMMIT_TYPE_UNSPECIFIED" - // "ENABLED" - // "NONE" - CpuOvercommitType string `json:"cpuOvercommitType,omitempty"` - // Disks: Local disk configurations. - Disks []*LocalDisk `json:"disks,omitempty"` - // InstanceConsumptionData: Instance data that shows consumed resources on the - // node. - InstanceConsumptionData []*InstanceConsumptionData `json:"instanceConsumptionData,omitempty"` - // Instances: Instances scheduled on this node. - Instances []string `json:"instances,omitempty"` - // Name: The name of the node. - Name string `json:"name,omitempty"` - // NodeType: The type of this node. - NodeType string `json:"nodeType,omitempty"` - // SatisfiesPzs: [Output Only] Reserved for future use. - SatisfiesPzs bool `json:"satisfiesPzs,omitempty"` - // ServerBinding: Binding properties for the physical server. - ServerBinding *ServerBinding `json:"serverBinding,omitempty"` - // ServerId: Server ID associated with this node. - ServerId string `json:"serverId,omitempty"` - // Possible values: - // "CREATING" - // "DELETING" - // "INVALID" - // "READY" - // "REPAIRING" - Status string `json:"status,omitempty"` - // TotalResources: Total amount of available resources on the node. - TotalResources *InstanceConsumptionInfo `json:"totalResources,omitempty"` - // UpcomingMaintenance: [Output Only] The information about an upcoming - // maintenance event. - UpcomingMaintenance *UpcomingMaintenance `json:"upcomingMaintenance,omitempty"` - // ForceSendFields is a list of field names (e.g. "Accelerators") to +type InstancesRemoveResourcePoliciesRequest struct { + // ResourcePolicies: Resource policies to be removed from this instance. + ResourcePolicies []string `json:"resourcePolicies,omitempty"` + // ForceSendFields is a list of field names (e.g. "ResourcePolicies") to // unconditionally include in API requests. By default, fields with empty or // default values are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. ForceSendFields []string `json:"-"` - // NullFields is a list of field names (e.g. "Accelerators") to include in API - // requests with the JSON null value. By default, fields with empty values are - // omitted from API requests. See + // NullFields is a list of field names (e.g. "ResourcePolicies") to include in + // API requests with the JSON null value. By default, fields with empty values + // are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } -func (s *NodeGroupNode) MarshalJSON() ([]byte, error) { - type NoMethod NodeGroupNode - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s InstancesRemoveResourcePoliciesRequest) MarshalJSON() ([]byte, error) { + type NoMethod InstancesRemoveResourcePoliciesRequest + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -type NodeGroupsAddNodesRequest struct { - // AdditionalNodeCount: Count of additional nodes to be added to the node - // group. - AdditionalNodeCount int64 `json:"additionalNodeCount,omitempty"` - // ForceSendFields is a list of field names (e.g. "AdditionalNodeCount") to +type InstancesReportHostAsFaultyRequest struct { + // DisruptionSchedule: The disruption schedule for the VM. Required field, only + // allows IMMEDIATE. + // + // Possible values: + // "DISRUPTION_SCHEDULE_UNSPECIFIED" - Not used. Required as per aip/126. + // "FUTURE" - Delay disruption for caller control. Will be default soon. + // "IMMEDIATE" - Default value. Disrupt the VM immediately. + DisruptionSchedule string `json:"disruptionSchedule,omitempty"` + FaultReasons []*InstancesReportHostAsFaultyRequestFaultReason `json:"faultReasons,omitempty"` + // ForceSendFields is a list of field names (e.g. "DisruptionSchedule") to // unconditionally include in API requests. By default, fields with empty or // default values are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. ForceSendFields []string `json:"-"` - // NullFields is a list of field names (e.g. "AdditionalNodeCount") to include + // NullFields is a list of field names (e.g. "DisruptionSchedule") to include // in API requests with the JSON null value. By default, fields with empty // values are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } -func (s *NodeGroupsAddNodesRequest) MarshalJSON() ([]byte, error) { - type NoMethod NodeGroupsAddNodesRequest - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s InstancesReportHostAsFaultyRequest) MarshalJSON() ([]byte, error) { + type NoMethod InstancesReportHostAsFaultyRequest + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -type NodeGroupsDeleteNodesRequest struct { - // Nodes: Names of the nodes to delete. - Nodes []string `json:"nodes,omitempty"` - // ForceSendFields is a list of field names (e.g. "Nodes") to unconditionally - // include in API requests. By default, fields with empty or default values are - // omitted from API requests. See +type InstancesReportHostAsFaultyRequestFaultReason struct { + // Possible values: + // "BEHAVIOR_UNSPECIFIED" - Public reportable behaviors + // "CHIP_ERROR" - Any GPU or TPU errors or faults where the accelerator + // becomes unusable + // "PERFORMANCE" + // "SILENT_DATA_CORRUPTION" + // "UNRECOVERABLE_GPU_ERROR" - Unrecoverable GPU error identified by an XID + Behavior string `json:"behavior,omitempty"` + Description string `json:"description,omitempty"` + // ForceSendFields is a list of field names (e.g. "Behavior") to + // unconditionally include in API requests. By default, fields with empty or + // default values are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. ForceSendFields []string `json:"-"` - // NullFields is a list of field names (e.g. "Nodes") to include in API + // NullFields is a list of field names (e.g. "Behavior") to include in API // requests with the JSON null value. By default, fields with empty values are // omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } -func (s *NodeGroupsDeleteNodesRequest) MarshalJSON() ([]byte, error) { - type NoMethod NodeGroupsDeleteNodesRequest - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s InstancesReportHostAsFaultyRequestFaultReason) MarshalJSON() ([]byte, error) { + type NoMethod InstancesReportHostAsFaultyRequestFaultReason + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -type NodeGroupsListNodes struct { - // Id: [Output Only] Unique identifier for the resource; defined by the server. - Id string `json:"id,omitempty"` - // Items: A list of Node resources. - Items []*NodeGroupNode `json:"items,omitempty"` - // Kind: [Output Only] The resource type, which is always - // compute.nodeGroupsListNodes for the list of nodes in the specified node - // group. - 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"` - // SelfLink: [Output Only] Server-defined URL for this resource. - SelfLink string `json:"selfLink,omitempty"` - // Warning: [Output Only] Informational warning message. - Warning *NodeGroupsListNodesWarning `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 or default values are - // omitted from API requests. See +type InstancesScopedList struct { + // Instances: [Output Only] A list of instances contained in this scope. + Instances []*Instance `json:"instances,omitempty"` + // Warning: [Output Only] Informational warning which replaces the list of + // instances + // when the list is empty. + Warning *InstancesScopedListWarning `json:"warning,omitempty"` + // ForceSendFields is a list of field names (e.g. "Instances") to + // unconditionally include in API requests. By default, fields with empty or + // default values are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. 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. See + // NullFields is a list of field names (e.g. "Instances") to include in API + // requests with the JSON null value. By default, fields with empty values are + // omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } -func (s *NodeGroupsListNodes) MarshalJSON() ([]byte, error) { - type NoMethod NodeGroupsListNodes - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s InstancesScopedList) MarshalJSON() ([]byte, error) { + type NoMethod InstancesScopedList + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -// NodeGroupsListNodesWarning: [Output Only] Informational warning message. -type NodeGroupsListNodesWarning 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. +// InstancesScopedListWarning: [Output Only] Informational warning which +// replaces the list of instances +// when the list is empty. +type InstancesScopedListWarning 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" - Warning about failed cleanup of transient changes made - // by a failed operation. + // by a failed + // operation. // "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was created. // "DEPRECATED_TYPE_USED" - When deploying and at least one of the resources - // has a type marked as deprecated + // has a type marked as + // deprecated // "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk that is // larger than image size. // "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the - // resources has a type marked as experimental + // resources has a type marked as + // experimental // "EXTERNAL_API_WARNING" - Warning that is present in an external api call // "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been - // overridden. Deprecated unused field. + // overridden. + // Deprecated unused field. // "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an injected // kernel, which is deprecated. // "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB" - A WEIGHTED_MAGLEV backend - // service is associated with a health check that is not of type - // HTTP/HTTPS/HTTP2. + // service is associated with a health check that is + // not of type HTTP/HTTPS/HTTP2. // "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a // exceedingly large number of resources // "LIST_OVERHEAD_QUOTA_EXCEED" - Resource can't be retrieved due to list - // overhead quota exceed which captures the amount of resources filtered out by + // overhead quota exceed + // which captures the amount of resources filtered out by // user-defined list filter. // "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is not - // assigned to an instance on the network. + // assigned to an instance on the + // network. // "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot ip // forward. // "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE" - The route's nextHopInstance - // URL refers to an instance that does not have an ipv6 interface on the same - // network as the route. + // URL refers to an instance that does not have an + // ipv6 interface on the same network as the route. // "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL refers to // an instance that does not exist. // "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance URL - // refers to an instance that is not on the same network as the route. + // refers to an instance that is not on the + // same network as the route. // "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not have a // status of RUNNING. // "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to continue - // the process despite the mentioned error. + // the process despite + // the mentioned error. // "NO_RESULTS_ON_PAGE" - No results are present on a particular list page. // "PARTIAL_SUCCESS" - Success is reported, but some results may be missing // due to errors + // "QUOTA_INFO_UNAVAILABLE" - Quota information is not available to client + // requests (e.g: + // regions.list). // "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource that - // requires a TOS they have not accepted. + // requires a TOS they have not + // accepted. // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a resource is // in use. // "RESOURCE_NOT_DELETED" - One or more of the resources set to auto-delete - // could not be deleted because they were in use. + // could not be deleted + // because they were in use. // "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is // ignored. // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in instance - // group manager is valid as such, but its application does not make a lot of - // sense, because it allows only single instance in instance group. + // group manager is valid as such, but + // its application does not make a lot of sense, because it allows only + // single instance in instance group. // "UNDECLARED_PROPERTIES" - When undeclared properties in the schema are // present // "UNREACHABLE" - A given scope cannot be reached. 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 []*NodeGroupsListNodesWarningData `json:"data,omitempty"` + // Data: [Output Only] Metadata about this warning in key: + // value format. For example: + // + // "data": [ + // { + // "key": "scope", + // "value": "zones/us-east1-d" + // } + Data []*InstancesScopedListWarningData `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 @@ -28345,19 +33446,22 @@ type NodeGroupsListNodesWarning struct { NullFields []string `json:"-"` } -func (s *NodeGroupsListNodesWarning) MarshalJSON() ([]byte, error) { - type NoMethod NodeGroupsListNodesWarning - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s InstancesScopedListWarning) MarshalJSON() ([]byte, error) { + type NoMethod InstancesScopedListWarning + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -type NodeGroupsListNodesWarningData 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). +type InstancesScopedListWarningData 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"` @@ -28374,321 +33478,403 @@ type NodeGroupsListNodesWarningData struct { NullFields []string `json:"-"` } -func (s *NodeGroupsListNodesWarningData) MarshalJSON() ([]byte, error) { - type NoMethod NodeGroupsListNodesWarningData - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s InstancesScopedListWarningData) MarshalJSON() ([]byte, error) { + type NoMethod InstancesScopedListWarningData + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -type NodeGroupsPerformMaintenanceRequest struct { - // Nodes: [Required] List of nodes affected by the call. - Nodes []string `json:"nodes,omitempty"` - // StartTime: The start time of the schedule. The timestamp is an RFC3339 - // string. - StartTime string `json:"startTime,omitempty"` - // ForceSendFields is a list of field names (e.g. "Nodes") to unconditionally - // include in API requests. By default, fields with empty or default values are - // omitted from API requests. See +type InstancesSetLabelsRequest struct { + // LabelFingerprint: Fingerprint of the previous set of labels for this + // resource, + // used to prevent conflicts. Provide the latest fingerprint value when + // making + // a request to add or change labels. + LabelFingerprint string `json:"labelFingerprint,omitempty"` + Labels map[string]string `json:"labels,omitempty"` + // ForceSendFields is a list of field names (e.g. "LabelFingerprint") to + // unconditionally include in API requests. By default, fields with empty or + // default values are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. ForceSendFields []string `json:"-"` - // NullFields is a list of field names (e.g. "Nodes") to include in API - // requests with the JSON null value. By default, fields with empty values are - // omitted from API requests. See + // NullFields is a list of field names (e.g. "LabelFingerprint") to include in + // API requests with the JSON null value. By default, fields with empty values + // are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } -func (s *NodeGroupsPerformMaintenanceRequest) MarshalJSON() ([]byte, error) { - type NoMethod NodeGroupsPerformMaintenanceRequest - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s InstancesSetLabelsRequest) MarshalJSON() ([]byte, error) { + type NoMethod InstancesSetLabelsRequest + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -type NodeGroupsScopedList struct { - // NodeGroups: [Output Only] A list of node groups contained in this scope. - NodeGroups []*NodeGroup `json:"nodeGroups,omitempty"` - // Warning: [Output Only] An informational warning that appears when the - // nodeGroup list is empty. - Warning *NodeGroupsScopedListWarning `json:"warning,omitempty"` - // ForceSendFields is a list of field names (e.g. "NodeGroups") to +type InstancesSetMachineResourcesRequest struct { + // GuestAccelerators: A list of the type and count of accelerator cards + // attached to the instance. + GuestAccelerators []*AcceleratorConfig `json:"guestAccelerators,omitempty"` + // ForceSendFields is a list of field names (e.g. "GuestAccelerators") to // unconditionally include in API requests. By default, fields with empty or // default values are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. ForceSendFields []string `json:"-"` - // NullFields is a list of field names (e.g. "NodeGroups") to include in API + // NullFields is a list of field names (e.g. "GuestAccelerators") to include in + // API requests with the JSON null value. By default, fields with empty values + // are omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s InstancesSetMachineResourcesRequest) MarshalJSON() ([]byte, error) { + type NoMethod InstancesSetMachineResourcesRequest + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +type InstancesSetMachineTypeRequest struct { + // MachineType: Full or partial URL of the machine type resource. See Machine + // Types for a full list of + // machine types. For example:zones/us-central1-f/machineTypes/n1-standard-1 + MachineType string `json:"machineType,omitempty"` + // ForceSendFields is a list of field names (e.g. "MachineType") to + // unconditionally include in API requests. By default, fields with empty or + // default values are omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + ForceSendFields []string `json:"-"` + // NullFields is a list of field names (e.g. "MachineType") to include in API // requests with the JSON null value. By default, fields with empty values are // omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } -func (s *NodeGroupsScopedList) MarshalJSON() ([]byte, error) { - type NoMethod NodeGroupsScopedList - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s InstancesSetMachineTypeRequest) MarshalJSON() ([]byte, error) { + type NoMethod InstancesSetMachineTypeRequest + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -// NodeGroupsScopedListWarning: [Output Only] An informational warning that -// appears when the nodeGroup list is empty. -type NodeGroupsScopedListWarning 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" - Warning about failed cleanup of transient changes made - // by a failed operation. - // "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was created. - // "DEPRECATED_TYPE_USED" - When deploying and at least one of the resources - // has a type marked as deprecated - // "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk that is - // larger than image size. - // "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the - // resources has a type marked as experimental - // "EXTERNAL_API_WARNING" - Warning that is present in an external api call - // "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been - // overridden. Deprecated unused field. - // "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an injected - // kernel, which is deprecated. - // "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB" - A WEIGHTED_MAGLEV backend - // service is associated with a health check that is not of type - // HTTP/HTTPS/HTTP2. - // "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a - // exceedingly large number of resources - // "LIST_OVERHEAD_QUOTA_EXCEED" - Resource can't be retrieved due to list - // overhead quota exceed which captures the amount of resources filtered out by - // user-defined list filter. - // "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type - // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is not - // assigned to an instance on the network. - // "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot ip - // forward. - // "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE" - The route's nextHopInstance - // URL refers to an instance that does not have an ipv6 interface on the same - // network as the route. - // "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL refers to - // an instance that does not exist. - // "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance URL - // refers to an instance that is not on the same network as the route. - // "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not have a - // status of RUNNING. - // "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to continue - // the process despite the mentioned error. - // "NO_RESULTS_ON_PAGE" - No results are present on a particular list page. - // "PARTIAL_SUCCESS" - Success is reported, but some results may be missing - // due to errors - // "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource that - // requires a TOS they have not accepted. - // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a resource is - // in use. - // "RESOURCE_NOT_DELETED" - One or more of the resources set to auto-delete - // could not be deleted because they were in use. - // "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is - // ignored. - // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in instance - // group manager is valid as such, but its application does not make a lot of - // sense, because it allows only single instance in instance group. - // "UNDECLARED_PROPERTIES" - When undeclared properties in the schema are - // present - // "UNREACHABLE" - A given scope cannot be reached. - 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 []*NodeGroupsScopedListWarningData `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 or default values are - // omitted from API requests. See +type InstancesSetMinCpuPlatformRequest struct { + // MinCpuPlatform: Minimum cpu/platform this instance should be started at. + MinCpuPlatform string `json:"minCpuPlatform,omitempty"` + // ForceSendFields is a list of field names (e.g. "MinCpuPlatform") to + // unconditionally include in API requests. By default, fields with empty or + // default values are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. 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. See + // NullFields is a list of field names (e.g. "MinCpuPlatform") to include in + // API requests with the JSON null value. By default, fields with empty values + // are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } -func (s *NodeGroupsScopedListWarning) MarshalJSON() ([]byte, error) { - type NoMethod NodeGroupsScopedListWarning - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s InstancesSetMinCpuPlatformRequest) MarshalJSON() ([]byte, error) { + type NoMethod InstancesSetMinCpuPlatformRequest + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -type NodeGroupsScopedListWarningData 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 or default values are - // omitted from API requests. See +type InstancesSetNameRequest struct { + // CurrentName: The current name of this resource, used to prevent conflicts. + // Provide the + // latest name when making a request to change name. + CurrentName string `json:"currentName,omitempty"` + // Name: The name to be applied to the instance. Needs to be RFC 1035 + // compliant. + Name string `json:"name,omitempty"` + // ForceSendFields is a list of field names (e.g. "CurrentName") to + // unconditionally include in API requests. By default, fields with empty or + // default values are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. 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. See + // NullFields is a list of field names (e.g. "CurrentName") to include in API + // requests with the JSON null value. By default, fields with empty values are + // omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } -func (s *NodeGroupsScopedListWarningData) MarshalJSON() ([]byte, error) { - type NoMethod NodeGroupsScopedListWarningData - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s InstancesSetNameRequest) MarshalJSON() ([]byte, error) { + type NoMethod InstancesSetNameRequest + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -type NodeGroupsSetNodeTemplateRequest struct { - // NodeTemplate: Full or partial URL of the node template resource to be - // updated for this node group. - NodeTemplate string `json:"nodeTemplate,omitempty"` - // ForceSendFields is a list of field names (e.g. "NodeTemplate") to +type InstancesSetSecurityPolicyRequest struct { + // NetworkInterfaces: The network interfaces that the security policy will be + // applied to. Network + // interfaces use the nicN naming format. You can only set a + // security policy for network interfaces with an access config. + NetworkInterfaces []string `json:"networkInterfaces,omitempty"` + // SecurityPolicy: A full or partial URL to a security policy to add to this + // instance. + // If this field is set to an empty string it will remove the + // associated + // security policy. + SecurityPolicy string `json:"securityPolicy,omitempty"` + // ForceSendFields is a list of field names (e.g. "NetworkInterfaces") to // unconditionally include in API requests. By default, fields with empty or // default values are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. ForceSendFields []string `json:"-"` - // NullFields is a list of field names (e.g. "NodeTemplate") to include in API + // NullFields is a list of field names (e.g. "NetworkInterfaces") to include in + // API requests with the JSON null value. By default, fields with empty values + // are omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s InstancesSetSecurityPolicyRequest) MarshalJSON() ([]byte, error) { + type NoMethod InstancesSetSecurityPolicyRequest + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +type InstancesSetServiceAccountRequest struct { + // Email: Email address of the service account. + Email string `json:"email,omitempty"` + // Scopes: The list of scopes to be made available for this service account. + Scopes []string `json:"scopes,omitempty"` + // ForceSendFields is a list of field names (e.g. "Email") to unconditionally + // include in API requests. By default, fields with empty or default values are + // omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + ForceSendFields []string `json:"-"` + // NullFields is a list of field names (e.g. "Email") to include in API // requests with the JSON null value. By default, fields with empty values are // omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } -func (s *NodeGroupsSetNodeTemplateRequest) MarshalJSON() ([]byte, error) { - type NoMethod NodeGroupsSetNodeTemplateRequest - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s InstancesSetServiceAccountRequest) MarshalJSON() ([]byte, error) { + type NoMethod InstancesSetServiceAccountRequest + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -type NodeGroupsSimulateMaintenanceEventRequest struct { - // Nodes: Names of the nodes to go under maintenance simulation. - Nodes []string `json:"nodes,omitempty"` - // ForceSendFields is a list of field names (e.g. "Nodes") to unconditionally +type InstancesStartWithEncryptionKeyRequest struct { + // Disks: Array of disks associated with this instance that are protected with + // acustomer-supplied + // encryption key. + // + // In order to start the instance, the disk url and its corresponding key + // must + // be provided. + // + // If the disk is not protected with a customer-supplied encryption key + // it + // should not be specified. + Disks []*CustomerEncryptionKeyProtectedDisk `json:"disks,omitempty"` + // ForceSendFields is a list of field names (e.g. "Disks") to unconditionally // include in API requests. By default, fields with empty or default values are // omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. ForceSendFields []string `json:"-"` - // NullFields is a list of field names (e.g. "Nodes") to include in API + // NullFields is a list of field names (e.g. "Disks") to include in API // requests with the JSON null value. By default, fields with empty values are // omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } -func (s *NodeGroupsSimulateMaintenanceEventRequest) MarshalJSON() ([]byte, error) { - type NoMethod NodeGroupsSimulateMaintenanceEventRequest - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s InstancesStartWithEncryptionKeyRequest) MarshalJSON() ([]byte, error) { + type NoMethod InstancesStartWithEncryptionKeyRequest + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -// NodeTemplate: Represent a sole-tenant Node Template resource. You can use a -// template to define properties for nodes in a node group. For more -// information, read Creating node groups and instances. -type NodeTemplate struct { - Accelerators []*AcceleratorConfig `json:"accelerators,omitempty"` - // CpuOvercommitType: CPU overcommit. +// InstantSnapshot: Represents a InstantSnapshot resource. +// +// You can use instant snapshots to create disk rollback points quickly.. +type InstantSnapshot struct { + // Architecture: Output only. [Output Only] The architecture of the instant + // snapshot. Valid values are + // ARM64 or X86_64. // // Possible values: - // "CPU_OVERCOMMIT_TYPE_UNSPECIFIED" - // "ENABLED" - // "NONE" - CpuOvercommitType string `json:"cpuOvercommitType,omitempty"` - // CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text format. + // "ARCHITECTURE_UNSPECIFIED" - Default value indicating Architecture is not + // set. + // "ARM64" - Machines with architecture ARM64 + // "X86_64" - Machines with architecture X86_64 + Architecture string `json:"architecture,omitempty"` + // CreationTimestamp: Output only. [Output Only] Creation timestamp + // inRFC3339 + // text format. CreationTimestamp string `json:"creationTimestamp,omitempty"` // Description: An optional description of this resource. Provide this property - // when you create the resource. - Description string `json:"description,omitempty"` - Disks []*LocalDisk `json:"disks,omitempty"` - // Id: [Output Only] The unique identifier for the resource. This identifier is + // when you + // create the resource. + Description string `json:"description,omitempty"` + // DiskSizeGb: Output only. [Output Only] Size of the source disk, specified in + // GB. + DiskSizeGb int64 `json:"diskSizeGb,omitempty,string"` + // Id: Output only. [Output Only] The unique identifier for the resource. This + // identifier is // defined by the server. Id uint64 `json:"id,omitempty,string"` - // Kind: [Output Only] The type of the resource. Always compute#nodeTemplate - // for node templates. + // Kind: Output only. [Output Only] Type of the resource. + // Alwayscompute#instantSnapshot for InstantSnapshot resources. Kind string `json:"kind,omitempty"` - // Name: The name of the resource, provided by the client when initially - // creating the resource. The resource 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. + // LabelFingerprint: A fingerprint for the labels being applied to this + // InstantSnapshot, which + // is essentially a hash of the labels set used for optimistic locking. + // The + // fingerprint is initially generated by Compute Engine and changes after + // every request to modify or update labels. You must always provide + // an + // up-to-date fingerprint hash in order to update or change labels, + // otherwise the request will fail with error412 conditionNotMet. + // + // To see the latest fingerprint, make a get() request to + // retrieve a InstantSnapshot. + LabelFingerprint string `json:"labelFingerprint,omitempty"` + // Labels: Labels to apply to this InstantSnapshot. These can be later modified + // by + // the setLabels method. + // Label values may be empty. + Labels map[string]string `json:"labels,omitempty"` + // Name: Name of the resource; provided by the client when the resource is + // created. + // The name must be 1-63 characters long, and comply withRFC1035. + // 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. Name string `json:"name,omitempty"` - // NodeAffinityLabels: Labels to use for node affinity, which will be used in - // instance scheduling. - NodeAffinityLabels map[string]string `json:"nodeAffinityLabels,omitempty"` - // NodeType: The node type to use for nodes group that are created from this - // template. - NodeType string `json:"nodeType,omitempty"` - // NodeTypeFlexibility: Do not use. Instead, use the node_type property. - NodeTypeFlexibility *NodeTemplateNodeTypeFlexibility `json:"nodeTypeFlexibility,omitempty"` - // Region: [Output Only] The name of the region where the node template - // resides, such as us-central1. + // Params: Input only. Additional params passed with the request, but not + // persisted + // as part of resource payload. + Params *InstantSnapshotParams `json:"params,omitempty"` + // Region: Output only. [Output Only] URL of the region where the instant + // snapshot resides. + // You must specify this field as part of the HTTP request URL. It is + // not settable as a field in the request body. Region string `json:"region,omitempty"` - // SelfLink: [Output Only] Server-defined URL for the resource. + // ResourceStatus: Output only. [Output Only] Status information for the + // instant snapshot resource. + ResourceStatus *InstantSnapshotResourceStatus `json:"resourceStatus,omitempty"` + // SatisfiesPzi: Output only. Reserved for future use. + SatisfiesPzi bool `json:"satisfiesPzi,omitempty"` + // SatisfiesPzs: Output only. [Output Only] Reserved for future use. + SatisfiesPzs bool `json:"satisfiesPzs,omitempty"` + // SelfLink: Output only. [Output Only] Server-defined URL for the resource. SelfLink string `json:"selfLink,omitempty"` - // ServerBinding: Sets the binding properties for the physical server. Valid - // values include: - *[Default]* RESTART_NODE_ON_ANY_SERVER: Restarts VMs on - // any available physical server - RESTART_NODE_ON_MINIMAL_SERVER: Restarts VMs - // on the same physical server whenever possible See Sole-tenant node options - // for more information. - ServerBinding *ServerBinding `json:"serverBinding,omitempty"` - // Status: [Output Only] The status of the node template. One of the following - // values: CREATING, READY, and DELETING. + // SelfLinkWithId: Output only. [Output Only] Server-defined URL for this + // resource's resource id. + SelfLinkWithId string `json:"selfLinkWithId,omitempty"` + // SourceDisk: URL of the source disk used to create this instant + // snapshot. + // Note that the source disk must be in the same zone/region as the + // instant snapshot to be created. This can be a full or valid partial URL. + // For example, the following are valid values: + // + // + // - + // + // https://www.googleapis.com/compute/v1/projects/project/zones/zone/disks/disk + // + // - + // + // https://www.googleapis.com/compute/v1/projects/project/regions/region/disks/disk + // + // - + // projects/project/zones/zone/disks/disk + // + // - + // projects/project/regions/region/disks/disk + // + // - + // zones/zone/disks/disk + // + // - + // regions/region/disks/disk + SourceDisk string `json:"sourceDisk,omitempty"` + // SourceDiskId: Output only. [Output Only] The ID value of the disk used to + // create this InstantSnapshot. + // This value may be used to determine whether the InstantSnapshot + // was taken from the current or a previous instance of a given disk name. + SourceDiskId string `json:"sourceDiskId,omitempty"` + // SourceInstantSnapshotGroup: Output only. [Output Only] URL of the source + // instant snapshot this instant snapshot is + // part of. Note that the source instant snapshot group must be in the + // same + // zone/region as the instant snapshot to be created. This can be a full + // or + // valid partial URL. + SourceInstantSnapshotGroup string `json:"sourceInstantSnapshotGroup,omitempty"` + // SourceInstantSnapshotGroupId: Output only. [Output Only] The ID value of the + // source instant snapshot group this + // InstantSnapshot is part of. This value may be used to determine whether + // the + // InstantSnapshot was created as part of an InstantSnapshotGroup creation. + SourceInstantSnapshotGroupId string `json:"sourceInstantSnapshotGroupId,omitempty"` + // Status: Output only. [Output Only] The status of the instantSnapshot. This + // can beCREATING, DELETING, FAILED, orREADY. // // Possible values: - // "CREATING" - Resources are being allocated. - // "DELETING" - The node template is currently being deleted. - // "INVALID" - Invalid status. - // "READY" - The node template is ready. + // "CREATING" - InstantSnapshot creation is in progress. + // "DELETING" - InstantSnapshot is currently being deleted. + // "FAILED" - InstantSnapshot creation failed. + // "READY" - InstantSnapshot has been created successfully. + // "UNAVAILABLE" - InstantSnapshot is currently unavailable and cannot be + // used for + // Disk restoration Status string `json:"status,omitempty"` - // StatusMessage: [Output Only] An optional, human-readable explanation of the - // status. - StatusMessage string `json:"statusMessage,omitempty"` + // Zone: Output only. [Output Only] URL of the zone where the instant snapshot + // resides. + // You must specify this field as part of the HTTP request URL. It is + // not settable as a field in the request body. + Zone string `json:"zone,omitempty"` // ServerResponse contains the HTTP response code and headers from the server. googleapi.ServerResponse `json:"-"` - // ForceSendFields is a list of field names (e.g. "Accelerators") to + // ForceSendFields is a list of field names (e.g. "Architecture") to // unconditionally include in API requests. By default, fields with empty or // default values are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. ForceSendFields []string `json:"-"` - // NullFields is a list of field names (e.g. "Accelerators") to include in API + // NullFields is a list of field names (e.g. "Architecture") to include in API // requests with the JSON null value. By default, fields with empty values are // omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } -func (s *NodeTemplate) MarshalJSON() ([]byte, error) { - type NoMethod NodeTemplate - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s InstantSnapshot) MarshalJSON() ([]byte, error) { + type NoMethod InstantSnapshot + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -type NodeTemplateAggregatedList struct { +type InstantSnapshotAggregatedList struct { // Id: [Output Only] Unique identifier for the resource; defined by the server. Id string `json:"id,omitempty"` - // Items: A list of NodeTemplatesScopedList resources. - Items map[string]NodeTemplatesScopedList `json:"items,omitempty"` - // Kind: [Output Only] Type of resource.Always - // compute#nodeTemplateAggregatedList for aggregated lists of node templates. + // Items: A list of InstantSnapshotsScopedList resources. + Items map[string]InstantSnapshotsScopedList `json:"items,omitempty"` + // Kind: Output only. [Output Only] Type of resource. + // Alwayscompute#instantSnapshotAggregatedList for aggregated lists + // of + // instantSnapshots. 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. + // results for + // list requests. If the number of results is larger thanmaxResults, 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"` - // SelfLink: [Output Only] Server-defined URL for this resource. + // SelfLink: Output only. [Output Only] Server-defined URL for this resource. SelfLink string `json:"selfLink,omitempty"` - // Unreachables: [Output Only] Unreachable resources. + // Unreachables: Output only. [Output Only] Unreachable resources. Unreachables []string `json:"unreachables,omitempty"` // Warning: [Output Only] Informational warning message. - Warning *NodeTemplateAggregatedListWarning `json:"warning,omitempty"` + Warning *InstantSnapshotAggregatedListWarning `json:"warning,omitempty"` // ServerResponse contains the HTTP response code and headers from the server. googleapi.ServerResponse `json:"-"` @@ -28705,77 +33891,99 @@ type NodeTemplateAggregatedList struct { NullFields []string `json:"-"` } -func (s *NodeTemplateAggregatedList) MarshalJSON() ([]byte, error) { - type NoMethod NodeTemplateAggregatedList - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s InstantSnapshotAggregatedList) MarshalJSON() ([]byte, error) { + type NoMethod InstantSnapshotAggregatedList + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -// NodeTemplateAggregatedListWarning: [Output Only] Informational warning +// InstantSnapshotAggregatedListWarning: [Output Only] Informational warning // message. -type NodeTemplateAggregatedListWarning 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. +type InstantSnapshotAggregatedListWarning 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" - Warning about failed cleanup of transient changes made - // by a failed operation. + // by a failed + // operation. // "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was created. // "DEPRECATED_TYPE_USED" - When deploying and at least one of the resources - // has a type marked as deprecated + // has a type marked as + // deprecated // "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk that is // larger than image size. // "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the - // resources has a type marked as experimental + // resources has a type marked as + // experimental // "EXTERNAL_API_WARNING" - Warning that is present in an external api call // "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been - // overridden. Deprecated unused field. + // overridden. + // Deprecated unused field. // "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an injected // kernel, which is deprecated. // "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB" - A WEIGHTED_MAGLEV backend - // service is associated with a health check that is not of type - // HTTP/HTTPS/HTTP2. + // service is associated with a health check that is + // not of type HTTP/HTTPS/HTTP2. // "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a // exceedingly large number of resources // "LIST_OVERHEAD_QUOTA_EXCEED" - Resource can't be retrieved due to list - // overhead quota exceed which captures the amount of resources filtered out by + // overhead quota exceed + // which captures the amount of resources filtered out by // user-defined list filter. // "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is not - // assigned to an instance on the network. + // assigned to an instance on the + // network. // "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot ip // forward. // "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE" - The route's nextHopInstance - // URL refers to an instance that does not have an ipv6 interface on the same - // network as the route. + // URL refers to an instance that does not have an + // ipv6 interface on the same network as the route. // "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL refers to // an instance that does not exist. // "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance URL - // refers to an instance that is not on the same network as the route. + // refers to an instance that is not on the + // same network as the route. // "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not have a // status of RUNNING. // "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to continue - // the process despite the mentioned error. + // the process despite + // the mentioned error. // "NO_RESULTS_ON_PAGE" - No results are present on a particular list page. // "PARTIAL_SUCCESS" - Success is reported, but some results may be missing // due to errors + // "QUOTA_INFO_UNAVAILABLE" - Quota information is not available to client + // requests (e.g: + // regions.list). // "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource that - // requires a TOS they have not accepted. + // requires a TOS they have not + // accepted. // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a resource is // in use. // "RESOURCE_NOT_DELETED" - One or more of the resources set to auto-delete - // could not be deleted because they were in use. + // could not be deleted + // because they were in use. // "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is // ignored. // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in instance - // group manager is valid as such, but its application does not make a lot of - // sense, because it allows only single instance in instance group. + // group manager is valid as such, but + // its application does not make a lot of sense, because it allows only + // single instance in instance group. // "UNDECLARED_PROPERTIES" - When undeclared properties in the schema are // present // "UNREACHABLE" - A given scope cannot be reached. 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 []*NodeTemplateAggregatedListWarningData `json:"data,omitempty"` + // Data: [Output Only] Metadata about this warning in key: + // value format. For example: + // + // "data": [ + // { + // "key": "scope", + // "value": "zones/us-east1-d" + // } + Data []*InstantSnapshotAggregatedListWarningData `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 @@ -28791,19 +33999,22 @@ type NodeTemplateAggregatedListWarning struct { NullFields []string `json:"-"` } -func (s *NodeTemplateAggregatedListWarning) MarshalJSON() ([]byte, error) { - type NoMethod NodeTemplateAggregatedListWarning - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s InstantSnapshotAggregatedListWarning) MarshalJSON() ([]byte, error) { + type NoMethod InstantSnapshotAggregatedListWarning + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -type NodeTemplateAggregatedListWarningData 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). +type InstantSnapshotAggregatedListWarningData 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"` @@ -28820,278 +34031,298 @@ type NodeTemplateAggregatedListWarningData struct { NullFields []string `json:"-"` } -func (s *NodeTemplateAggregatedListWarningData) MarshalJSON() ([]byte, error) { - type NoMethod NodeTemplateAggregatedListWarningData - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s InstantSnapshotAggregatedListWarningData) MarshalJSON() ([]byte, error) { + type NoMethod InstantSnapshotAggregatedListWarningData + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -// NodeTemplateList: Contains a list of node templates. -type NodeTemplateList struct { - // Id: [Output Only] Unique identifier for the resource; defined by the server. - Id string `json:"id,omitempty"` - // Items: A list of NodeTemplate resources. - Items []*NodeTemplate `json:"items,omitempty"` - // Kind: [Output Only] Type of resource.Always compute#nodeTemplateList for - // lists of node templates. +// InstantSnapshotGroup: Represents an InstantSnapshotGroup resource. +// +// An instant snapshot group is a set of instant snapshots that represents +// a +// point in time state of a consistency group. +type InstantSnapshotGroup struct { + // CreationTimestamp: Output only. [Output Only] Creation timestamp + // inRFC3339 + // text format. + CreationTimestamp string `json:"creationTimestamp,omitempty"` + // Description: Optional. An optional description of this resource. Provide + // this property when you + // create the resource. + Description string `json:"description,omitempty"` + // Id: Output only. [Output Only] The unique identifier for the resource. This + // identifier is + // defined by the server. + Id uint64 `json:"id,omitempty,string"` + // Kind: Output only. [Output Only] Type of the resource. + // Alwayscompute#instantSnapshotGroup for InstantSnapshotGroup + // resources. 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"` - // SelfLink: [Output Only] Server-defined URL for this resource. + // Name: Identifier. Name of the resource; provided by the client when the + // resource is created. + // The name must be 1-63 characters long, and comply withRFC1035. + // 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. + Name string `json:"name,omitempty"` + // Region: Output only. [Output Only] URL of the region where the instant + // snapshot group resides. + // You must specify this field as part of the HTTP request URL. It is + // not settable as a field in the request body. + Region string `json:"region,omitempty"` + ResourceStatus *InstantSnapshotGroupResourceStatus `json:"resourceStatus,omitempty"` + // SelfLink: Output only. [Output Only] Server-defined URL for the resource. SelfLink string `json:"selfLink,omitempty"` - // Warning: [Output Only] Informational warning message. - Warning *NodeTemplateListWarning `json:"warning,omitempty"` + // SelfLinkWithId: Output only. [Output Only] Server-defined URL for this + // resource's resource id. + SelfLinkWithId string `json:"selfLinkWithId,omitempty"` + SourceConsistencyGroup string `json:"sourceConsistencyGroup,omitempty"` + // Status: Output only. [Output Only] + // + // Possible values: + // "CREATING" + // "DELETING" + // "FAILED" + // "INVALID" + // "READY" + // "UNKNOWN" + Status string `json:"status,omitempty"` + // Zone: Output only. [Output Only] URL of the zone where the instant snapshot + // group resides. + // You must specify this field as part of the HTTP request URL. It is + // not settable as a field in the request body. + Zone string `json:"zone,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 or default values are - // omitted from API requests. See + // ForceSendFields is a list of field names (e.g. "CreationTimestamp") to + // unconditionally include in API requests. By default, fields with empty or + // default values are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. 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. See + // NullFields is a list of field names (e.g. "CreationTimestamp") to include in + // API requests with the JSON null value. By default, fields with empty values + // are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } -func (s *NodeTemplateList) MarshalJSON() ([]byte, error) { - type NoMethod NodeTemplateList - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s InstantSnapshotGroup) MarshalJSON() ([]byte, error) { + type NoMethod InstantSnapshotGroup + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -// NodeTemplateListWarning: [Output Only] Informational warning message. -type NodeTemplateListWarning 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. +type InstantSnapshotGroupParameters struct { + // SourceInstantSnapshotGroup: The source instant snapshot group used to create + // disks. You can provide + // this as a partial or full URL to the resource. For example, the + // following + // are valid values: // - // Possible values: - // "CLEANUP_FAILED" - Warning about failed cleanup of transient changes made - // by a failed operation. - // "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was created. - // "DEPRECATED_TYPE_USED" - When deploying and at least one of the resources - // has a type marked as deprecated - // "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk that is - // larger than image size. - // "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the - // resources has a type marked as experimental - // "EXTERNAL_API_WARNING" - Warning that is present in an external api call - // "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been - // overridden. Deprecated unused field. - // "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an injected - // kernel, which is deprecated. - // "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB" - A WEIGHTED_MAGLEV backend - // service is associated with a health check that is not of type - // HTTP/HTTPS/HTTP2. - // "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a - // exceedingly large number of resources - // "LIST_OVERHEAD_QUOTA_EXCEED" - Resource can't be retrieved due to list - // overhead quota exceed which captures the amount of resources filtered out by - // user-defined list filter. - // "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type - // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is not - // assigned to an instance on the network. - // "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot ip - // forward. - // "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE" - The route's nextHopInstance - // URL refers to an instance that does not have an ipv6 interface on the same - // network as the route. - // "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL refers to - // an instance that does not exist. - // "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance URL - // refers to an instance that is not on the same network as the route. - // "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not have a - // status of RUNNING. - // "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to continue - // the process despite the mentioned error. - // "NO_RESULTS_ON_PAGE" - No results are present on a particular list page. - // "PARTIAL_SUCCESS" - Success is reported, but some results may be missing - // due to errors - // "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource that - // requires a TOS they have not accepted. - // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a resource is - // in use. - // "RESOURCE_NOT_DELETED" - One or more of the resources set to auto-delete - // could not be deleted because they were in use. - // "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is - // ignored. - // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in instance - // group manager is valid as such, but its application does not make a lot of - // sense, because it allows only single instance in instance group. - // "UNDECLARED_PROPERTIES" - When undeclared properties in the schema are - // present - // "UNREACHABLE" - A given scope cannot be reached. - 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 []*NodeTemplateListWarningData `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 or default values are - // omitted from API requests. See + // + // - + // https://www.googleapis.com/compute/v1/projects/project/zones/zone/instantSnapshotGroups/instantSnapshotGroup + // - + // projects/project/zones/zone/instantSnapshotGroups/instantSnapshotGroup + // - zones/zone/instantSnapshotGroups/instantSnapshotGroup + SourceInstantSnapshotGroup string `json:"sourceInstantSnapshotGroup,omitempty"` + // ForceSendFields is a list of field names (e.g. "SourceInstantSnapshotGroup") + // to unconditionally include in API requests. By default, fields with empty or + // default values are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. 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. See + // NullFields is a list of field names (e.g. "SourceInstantSnapshotGroup") to + // include in API requests with the JSON null value. By default, fields with + // empty values are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } -func (s *NodeTemplateListWarning) MarshalJSON() ([]byte, error) { - type NoMethod NodeTemplateListWarning - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s InstantSnapshotGroupParameters) MarshalJSON() ([]byte, error) { + type NoMethod InstantSnapshotGroupParameters + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -type NodeTemplateListWarningData 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 or default values are - // omitted from API requests. See +type InstantSnapshotGroupResourceStatus struct { + // ConsistencyMembershipResolutionTime: Output only. [Output Only] + ConsistencyMembershipResolutionTime string `json:"consistencyMembershipResolutionTime,omitempty"` + // SourceInfo: Output only. [Output Only] + SourceInfo *InstantSnapshotGroupSourceInfo `json:"sourceInfo,omitempty"` + // ForceSendFields is a list of field names (e.g. + // "ConsistencyMembershipResolutionTime") to unconditionally include in API + // requests. By default, fields with empty or default values are omitted from + // API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. 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. See - // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + // NullFields is a list of field names (e.g. + // "ConsistencyMembershipResolutionTime") to include in API requests with the + // JSON null value. By default, fields with empty values are omitted from API + // requests. See https://pkg.go.dev/google.golang.org/api#hdr-NullFields for + // more details. NullFields []string `json:"-"` } -func (s *NodeTemplateListWarningData) MarshalJSON() ([]byte, error) { - type NoMethod NodeTemplateListWarningData - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s InstantSnapshotGroupResourceStatus) MarshalJSON() ([]byte, error) { + type NoMethod InstantSnapshotGroupResourceStatus + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -type NodeTemplateNodeTypeFlexibility struct { - Cpus string `json:"cpus,omitempty"` - LocalSsd string `json:"localSsd,omitempty"` - Memory string `json:"memory,omitempty"` - // ForceSendFields is a list of field names (e.g. "Cpus") to unconditionally - // include in API requests. By default, fields with empty or default values are - // omitted from API requests. See +type InstantSnapshotGroupSourceInfo struct { + ConsistencyGroup string `json:"consistencyGroup,omitempty"` + ConsistencyGroupId string `json:"consistencyGroupId,omitempty"` + // ForceSendFields is a list of field names (e.g. "ConsistencyGroup") to + // unconditionally include in API requests. By default, fields with empty or + // default values are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. ForceSendFields []string `json:"-"` - // NullFields is a list of field names (e.g. "Cpus") to include in API requests - // with the JSON null value. By default, fields with empty values are omitted - // from API requests. See + // NullFields is a list of field names (e.g. "ConsistencyGroup") to include in + // API requests with the JSON null value. By default, fields with empty values + // are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } -func (s *NodeTemplateNodeTypeFlexibility) MarshalJSON() ([]byte, error) { - type NoMethod NodeTemplateNodeTypeFlexibility - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s InstantSnapshotGroupSourceInfo) MarshalJSON() ([]byte, error) { + type NoMethod InstantSnapshotGroupSourceInfo + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -type NodeTemplatesScopedList struct { - // NodeTemplates: [Output Only] A list of node templates contained in this - // scope. - NodeTemplates []*NodeTemplate `json:"nodeTemplates,omitempty"` - // Warning: [Output Only] An informational warning that appears when the node - // templates list is empty. - Warning *NodeTemplatesScopedListWarning `json:"warning,omitempty"` - // ForceSendFields is a list of field names (e.g. "NodeTemplates") to - // unconditionally include in API requests. By default, fields with empty or - // default values are omitted from API requests. See +// InstantSnapshotList: Contains a list of InstantSnapshot resources. +type InstantSnapshotList struct { + // Id: [Output Only] Unique identifier for the resource; defined by the server. + Id string `json:"id,omitempty"` + // Items: A list of InstantSnapshot resources. + Items []*InstantSnapshot `json:"items,omitempty"` + // Kind: Output only. Type of resource. + 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 thanmaxResults, 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"` + // SelfLink: Output only. [Output Only] Server-defined URL for this resource. + SelfLink string `json:"selfLink,omitempty"` + // Warning: [Output Only] Informational warning message. + Warning *InstantSnapshotListWarning `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 or default values are + // omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. ForceSendFields []string `json:"-"` - // NullFields is a list of field names (e.g. "NodeTemplates") to include in API - // requests with the JSON null value. By default, fields with empty values are - // omitted from API requests. See + // 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. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } -func (s *NodeTemplatesScopedList) MarshalJSON() ([]byte, error) { - type NoMethod NodeTemplatesScopedList - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s InstantSnapshotList) MarshalJSON() ([]byte, error) { + type NoMethod InstantSnapshotList + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -// NodeTemplatesScopedListWarning: [Output Only] An informational warning that -// appears when the node templates list is empty. -type NodeTemplatesScopedListWarning 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. +// InstantSnapshotListWarning: [Output Only] Informational warning message. +type InstantSnapshotListWarning 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" - Warning about failed cleanup of transient changes made - // by a failed operation. + // by a failed + // operation. // "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was created. // "DEPRECATED_TYPE_USED" - When deploying and at least one of the resources - // has a type marked as deprecated + // has a type marked as + // deprecated // "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk that is // larger than image size. // "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the - // resources has a type marked as experimental + // resources has a type marked as + // experimental // "EXTERNAL_API_WARNING" - Warning that is present in an external api call // "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been - // overridden. Deprecated unused field. + // overridden. + // Deprecated unused field. // "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an injected // kernel, which is deprecated. // "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB" - A WEIGHTED_MAGLEV backend - // service is associated with a health check that is not of type - // HTTP/HTTPS/HTTP2. + // service is associated with a health check that is + // not of type HTTP/HTTPS/HTTP2. // "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a // exceedingly large number of resources // "LIST_OVERHEAD_QUOTA_EXCEED" - Resource can't be retrieved due to list - // overhead quota exceed which captures the amount of resources filtered out by + // overhead quota exceed + // which captures the amount of resources filtered out by // user-defined list filter. // "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is not - // assigned to an instance on the network. + // assigned to an instance on the + // network. // "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot ip // forward. // "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE" - The route's nextHopInstance - // URL refers to an instance that does not have an ipv6 interface on the same - // network as the route. + // URL refers to an instance that does not have an + // ipv6 interface on the same network as the route. // "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL refers to // an instance that does not exist. // "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance URL - // refers to an instance that is not on the same network as the route. + // refers to an instance that is not on the + // same network as the route. // "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not have a // status of RUNNING. // "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to continue - // the process despite the mentioned error. + // the process despite + // the mentioned error. // "NO_RESULTS_ON_PAGE" - No results are present on a particular list page. // "PARTIAL_SUCCESS" - Success is reported, but some results may be missing // due to errors + // "QUOTA_INFO_UNAVAILABLE" - Quota information is not available to client + // requests (e.g: + // regions.list). // "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource that - // requires a TOS they have not accepted. + // requires a TOS they have not + // accepted. // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a resource is // in use. // "RESOURCE_NOT_DELETED" - One or more of the resources set to auto-delete - // could not be deleted because they were in use. + // could not be deleted + // because they were in use. // "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is // ignored. // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in instance - // group manager is valid as such, but its application does not make a lot of - // sense, because it allows only single instance in instance group. + // group manager is valid as such, but + // its application does not make a lot of sense, because it allows only + // single instance in instance group. // "UNDECLARED_PROPERTIES" - When undeclared properties in the schema are // present // "UNREACHABLE" - A given scope cannot be reached. 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 []*NodeTemplatesScopedListWarningData `json:"data,omitempty"` + // Data: [Output Only] Metadata about this warning in key: + // value format. For example: + // + // "data": [ + // { + // "key": "scope", + // "value": "zones/us-east1-d" + // } + Data []*InstantSnapshotListWarningData `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 @@ -29107,19 +34338,22 @@ type NodeTemplatesScopedListWarning struct { NullFields []string `json:"-"` } -func (s *NodeTemplatesScopedListWarning) MarshalJSON() ([]byte, error) { - type NoMethod NodeTemplatesScopedListWarning - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s InstantSnapshotListWarning) MarshalJSON() ([]byte, error) { + type NoMethod InstantSnapshotListWarning + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -type NodeTemplatesScopedListWarningData 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). +type InstantSnapshotListWarningData 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"` @@ -29136,175 +34370,178 @@ type NodeTemplatesScopedListWarningData struct { NullFields []string `json:"-"` } -func (s *NodeTemplatesScopedListWarningData) MarshalJSON() ([]byte, error) { - type NoMethod NodeTemplatesScopedListWarningData - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s InstantSnapshotListWarningData) MarshalJSON() ([]byte, error) { + type NoMethod InstantSnapshotListWarningData + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +// InstantSnapshotParams: Additional instant snapshot params. +type InstantSnapshotParams struct { + // ResourceManagerTags: Input only. Resource manager tags to be bound to the + // instant snapshot. Tag keys and + // values have the same definition as resource + // manager tags. Keys and values can be either in numeric format, + // such as `tagKeys/{tag_key_id}` and `tagValues/{tag_value_id}` or + // in + // namespaced format such as `{org_id|project_id}/{tag_key_short_name}` + // and + // `{tag_value_short_name}`. The field is ignored (both PUT & + // PATCH) when empty. + ResourceManagerTags map[string]string `json:"resourceManagerTags,omitempty"` + // ForceSendFields is a list of field names (e.g. "ResourceManagerTags") to + // unconditionally include in API requests. By default, fields with empty or + // default values are omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + ForceSendFields []string `json:"-"` + // NullFields is a list of field names (e.g. "ResourceManagerTags") to include + // in API requests with the JSON null value. By default, fields with empty + // values are omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` } -// NodeType: Represent a sole-tenant Node Type resource. Each node within a -// node group must have a node type. A node type specifies the total amount of -// cores and memory for that node. Currently, the only available node type is -// n1-node-96-624 node type that has 96 vCPUs and 624 GB of memory, available -// in multiple zones. For more information read Node types. -type NodeType struct { - // CpuPlatform: [Output Only] The CPU platform used by this node type. - CpuPlatform string `json:"cpuPlatform,omitempty"` - // CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text format. - CreationTimestamp string `json:"creationTimestamp,omitempty"` - // Deprecated -- [Output Only] The deprecation status associated with this node - // type. - Deprecated *DeprecationStatus `json:"deprecated,omitempty"` - // Description: [Output Only] An optional textual description of the resource. - Description string `json:"description,omitempty"` - // GuestCpus: [Output Only] The number of virtual CPUs that are available to - // the node type. - GuestCpus int64 `json:"guestCpus,omitempty"` - // Id: [Output Only] The unique identifier for the resource. This identifier is - // defined by the server. - Id uint64 `json:"id,omitempty,string"` - // Kind: [Output Only] The type of the resource. Always compute#nodeType for - // node types. - Kind string `json:"kind,omitempty"` - // LocalSsdGb: [Output Only] Local SSD available to the node type, defined in - // GB. - LocalSsdGb int64 `json:"localSsdGb,omitempty"` - // MemoryMb: [Output Only] The amount of physical memory available to the node - // type, defined in MB. - MemoryMb int64 `json:"memoryMb,omitempty"` - // Name: [Output Only] Name of the resource. - Name string `json:"name,omitempty"` - // SelfLink: [Output Only] Server-defined URL for the resource. - SelfLink string `json:"selfLink,omitempty"` - // Zone: [Output Only] The name of the zone where the node type resides, such - // as us-central1-a. - Zone string `json:"zone,omitempty"` +func (s InstantSnapshotParams) MarshalJSON() ([]byte, error) { + type NoMethod InstantSnapshotParams + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} - // ServerResponse contains the HTTP response code and headers from the server. - googleapi.ServerResponse `json:"-"` - // ForceSendFields is a list of field names (e.g. "CpuPlatform") to +type InstantSnapshotResourceStatus struct { + // StorageSizeBytes: [Output Only] The storage size of this instant snapshot. + StorageSizeBytes int64 `json:"storageSizeBytes,omitempty,string"` + // ForceSendFields is a list of field names (e.g. "StorageSizeBytes") to // unconditionally include in API requests. By default, fields with empty or // default values are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. ForceSendFields []string `json:"-"` - // NullFields is a list of field names (e.g. "CpuPlatform") to include in API - // requests with the JSON null value. By default, fields with empty values are - // omitted from API requests. See + // NullFields is a list of field names (e.g. "StorageSizeBytes") to include in + // API requests with the JSON null value. By default, fields with empty values + // are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } -func (s *NodeType) MarshalJSON() ([]byte, error) { - type NoMethod NodeType - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s InstantSnapshotResourceStatus) MarshalJSON() ([]byte, error) { + type NoMethod InstantSnapshotResourceStatus + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -type NodeTypeAggregatedList struct { - // Id: [Output Only] Unique identifier for the resource; defined by the server. - Id string `json:"id,omitempty"` - // Items: A list of NodeTypesScopedList resources. - Items map[string]NodeTypesScopedList `json:"items,omitempty"` - // Kind: [Output Only] Type of resource.Always compute#nodeTypeAggregatedList - // for aggregated lists of node types. - 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"` - // SelfLink: [Output Only] Server-defined URL for this resource. - SelfLink string `json:"selfLink,omitempty"` - // Unreachables: [Output Only] Unreachable resources. - Unreachables []string `json:"unreachables,omitempty"` - // Warning: [Output Only] Informational warning message. - Warning *NodeTypeAggregatedListWarning `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 or default values are - // omitted from API requests. See +type InstantSnapshotsScopedList struct { + // InstantSnapshots: [Output Only] A list of instantSnapshots contained in this + // scope. + InstantSnapshots []*InstantSnapshot `json:"instantSnapshots,omitempty"` + // Warning: [Output Only] Informational warning which replaces the list + // of + // instantSnapshots when the list is empty. + Warning *InstantSnapshotsScopedListWarning `json:"warning,omitempty"` + // ForceSendFields is a list of field names (e.g. "InstantSnapshots") to + // unconditionally include in API requests. By default, fields with empty or + // default values are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. 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. See + // NullFields is a list of field names (e.g. "InstantSnapshots") to include in + // API requests with the JSON null value. By default, fields with empty values + // are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } -func (s *NodeTypeAggregatedList) MarshalJSON() ([]byte, error) { - type NoMethod NodeTypeAggregatedList - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s InstantSnapshotsScopedList) MarshalJSON() ([]byte, error) { + type NoMethod InstantSnapshotsScopedList + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -// NodeTypeAggregatedListWarning: [Output Only] Informational warning message. -type NodeTypeAggregatedListWarning 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. +// InstantSnapshotsScopedListWarning: [Output Only] Informational warning which +// replaces the list of +// instantSnapshots when the list is empty. +type InstantSnapshotsScopedListWarning 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" - Warning about failed cleanup of transient changes made - // by a failed operation. + // by a failed + // operation. // "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was created. // "DEPRECATED_TYPE_USED" - When deploying and at least one of the resources - // has a type marked as deprecated + // has a type marked as + // deprecated // "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk that is // larger than image size. // "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the - // resources has a type marked as experimental + // resources has a type marked as + // experimental // "EXTERNAL_API_WARNING" - Warning that is present in an external api call // "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been - // overridden. Deprecated unused field. + // overridden. + // Deprecated unused field. // "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an injected // kernel, which is deprecated. // "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB" - A WEIGHTED_MAGLEV backend - // service is associated with a health check that is not of type - // HTTP/HTTPS/HTTP2. + // service is associated with a health check that is + // not of type HTTP/HTTPS/HTTP2. // "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a // exceedingly large number of resources // "LIST_OVERHEAD_QUOTA_EXCEED" - Resource can't be retrieved due to list - // overhead quota exceed which captures the amount of resources filtered out by + // overhead quota exceed + // which captures the amount of resources filtered out by // user-defined list filter. // "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is not - // assigned to an instance on the network. + // assigned to an instance on the + // network. // "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot ip // forward. // "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE" - The route's nextHopInstance - // URL refers to an instance that does not have an ipv6 interface on the same - // network as the route. + // URL refers to an instance that does not have an + // ipv6 interface on the same network as the route. // "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL refers to // an instance that does not exist. // "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance URL - // refers to an instance that is not on the same network as the route. + // refers to an instance that is not on the + // same network as the route. // "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not have a // status of RUNNING. // "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to continue - // the process despite the mentioned error. + // the process despite + // the mentioned error. // "NO_RESULTS_ON_PAGE" - No results are present on a particular list page. // "PARTIAL_SUCCESS" - Success is reported, but some results may be missing // due to errors + // "QUOTA_INFO_UNAVAILABLE" - Quota information is not available to client + // requests (e.g: + // regions.list). // "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource that - // requires a TOS they have not accepted. + // requires a TOS they have not + // accepted. // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a resource is // in use. // "RESOURCE_NOT_DELETED" - One or more of the resources set to auto-delete - // could not be deleted because they were in use. + // could not be deleted + // because they were in use. // "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is // ignored. // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in instance - // group manager is valid as such, but its application does not make a lot of - // sense, because it allows only single instance in instance group. + // group manager is valid as such, but + // its application does not make a lot of sense, because it allows only + // single instance in instance group. // "UNDECLARED_PROPERTIES" - When undeclared properties in the schema are // present // "UNREACHABLE" - A given scope cannot be reached. 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 []*NodeTypeAggregatedListWarningData `json:"data,omitempty"` + // Data: [Output Only] Metadata about this warning in key: + // value format. For example: + // + // "data": [ + // { + // "key": "scope", + // "value": "zones/us-east1-d" + // } + Data []*InstantSnapshotsScopedListWarningData `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 @@ -29320,19 +34557,22 @@ type NodeTypeAggregatedListWarning struct { NullFields []string `json:"-"` } -func (s *NodeTypeAggregatedListWarning) MarshalJSON() ([]byte, error) { - type NoMethod NodeTypeAggregatedListWarning - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s InstantSnapshotsScopedListWarning) MarshalJSON() ([]byte, error) { + type NoMethod InstantSnapshotsScopedListWarning + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -type NodeTypeAggregatedListWarningData 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). +type InstantSnapshotsScopedListWarningData 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"` @@ -29349,419 +34589,933 @@ type NodeTypeAggregatedListWarningData struct { NullFields []string `json:"-"` } -func (s *NodeTypeAggregatedListWarningData) MarshalJSON() ([]byte, error) { - type NoMethod NodeTypeAggregatedListWarningData - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s InstantSnapshotsScopedListWarningData) MarshalJSON() ([]byte, error) { + type NoMethod InstantSnapshotsScopedListWarningData + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -// NodeTypeList: Contains a list of node types. -type NodeTypeList struct { - // Id: [Output Only] Unique identifier for the resource; defined by the server. - Id string `json:"id,omitempty"` - // Items: A list of NodeType resources. - Items []*NodeType `json:"items,omitempty"` - // Kind: [Output Only] Type of resource.Always compute#nodeTypeList for lists - // of node types. - 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"` - // SelfLink: [Output Only] Server-defined URL for this resource. - SelfLink string `json:"selfLink,omitempty"` - // Warning: [Output Only] Informational warning message. - Warning *NodeTypeListWarning `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 or default values are - // omitted from API requests. See +// Int64RangeMatch: HttpRouteRuleMatch criteria for field values that must +// stay +// within the specified integer range. +type Int64RangeMatch struct { + // RangeEnd: The end of the range (exclusive) in signed long integer format. + RangeEnd int64 `json:"rangeEnd,omitempty,string"` + // RangeStart: The start of the range (inclusive) in signed long integer + // format. + RangeStart int64 `json:"rangeStart,omitempty,string"` + // ForceSendFields is a list of field names (e.g. "RangeEnd") to + // unconditionally include in API requests. By default, fields with empty or + // default values are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. 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. See + // NullFields is a list of field names (e.g. "RangeEnd") to include in API + // requests with the JSON null value. By default, fields with empty values are + // omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } -func (s *NodeTypeList) MarshalJSON() ([]byte, error) { - type NoMethod NodeTypeList - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s Int64RangeMatch) MarshalJSON() ([]byte, error) { + type NoMethod Int64RangeMatch + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -// NodeTypeListWarning: [Output Only] Informational warning message. -type NodeTypeListWarning 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. +// Interconnect: Represents an Interconnect resource. +// +// An Interconnect resource is a dedicated connection between the Google +// Cloud network and your on-premises network. For more information, read +// the +// Dedicated Interconnect Overview. +type Interconnect struct { + // AaiEnabled: Enable or disable the application awareness feature on this + // Cloud + // Interconnect. + AaiEnabled bool `json:"aaiEnabled,omitempty"` + // AdminEnabled: Administrative status of the interconnect. When this is set to + // true, the + // Interconnect is functional and can carry traffic. + // When set to false, no packets can be carried over the interconnect and + // no BGP routes are exchanged over it. By default, the status is set to true. + AdminEnabled bool `json:"adminEnabled,omitempty"` + // ApplicationAwareInterconnect: Configuration information for application + // awareness on this Cloud + // Interconnect. + ApplicationAwareInterconnect *InterconnectApplicationAwareInterconnect `json:"applicationAwareInterconnect,omitempty"` + // AvailableFeatures: [Output only] List of features available for this + // Interconnect connection, + // which can take one of the following values: + // + // - IF_MACSEC: If present, then the Interconnect connection is + // provisioned on MACsec capable hardware ports. If not present, then the + // Interconnect connection is provisioned on non-MACsec capable ports. Any + // attempt to enable MACsec will fail. + // - IF_CROSS_SITE_NETWORK: If present, then the Interconnect connection is + // provisioned exclusively for Cross-Site Networking. Any attempt to + // configure + // VLAN attachments will fail. If not present, then the Interconnect + // connection is not provisioned for Cross-Site Networking. Any attempt to + // use + // it for Cross-Site Networking will fail. // // Possible values: - // "CLEANUP_FAILED" - Warning about failed cleanup of transient changes made - // by a failed operation. - // "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was created. - // "DEPRECATED_TYPE_USED" - When deploying and at least one of the resources - // has a type marked as deprecated - // "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk that is - // larger than image size. - // "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the - // resources has a type marked as experimental - // "EXTERNAL_API_WARNING" - Warning that is present in an external api call - // "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been - // overridden. Deprecated unused field. - // "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an injected - // kernel, which is deprecated. - // "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB" - A WEIGHTED_MAGLEV backend - // service is associated with a health check that is not of type - // HTTP/HTTPS/HTTP2. - // "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a - // exceedingly large number of resources - // "LIST_OVERHEAD_QUOTA_EXCEED" - Resource can't be retrieved due to list - // overhead quota exceed which captures the amount of resources filtered out by - // user-defined list filter. - // "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type - // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is not - // assigned to an instance on the network. - // "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot ip - // forward. - // "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE" - The route's nextHopInstance - // URL refers to an instance that does not have an ipv6 interface on the same - // network as the route. - // "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL refers to - // an instance that does not exist. - // "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance URL - // refers to an instance that is not on the same network as the route. - // "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not have a - // status of RUNNING. - // "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to continue - // the process despite the mentioned error. - // "NO_RESULTS_ON_PAGE" - No results are present on a particular list page. - // "PARTIAL_SUCCESS" - Success is reported, but some results may be missing - // due to errors - // "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource that - // requires a TOS they have not accepted. - // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a resource is - // in use. - // "RESOURCE_NOT_DELETED" - One or more of the resources set to auto-delete - // could not be deleted because they were in use. - // "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is - // ignored. - // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in instance - // group manager is valid as such, but its application does not make a lot of - // sense, because it allows only single instance in instance group. - // "UNDECLARED_PROPERTIES" - When undeclared properties in the schema are - // present - // "UNREACHABLE" - A given scope cannot be reached. - 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 []*NodeTypeListWarningData `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 or default values are - // omitted from API requests. See + // "IF_CROSS_SITE_NETWORK" - Cross-Site Networking + // "IF_L2_FORWARDING" - L2 Interconnect Attachment Forwarding + // "IF_MACSEC" - Media Access Control security (MACsec) + AvailableFeatures []string `json:"availableFeatures,omitempty"` + // CircuitInfos: Output only. [Output Only] A list of CircuitInfo objects, that + // describe the individual + // circuits in this LAG. + CircuitInfos []*InterconnectCircuitInfo `json:"circuitInfos,omitempty"` + // CreationTimestamp: Output only. [Output Only] Creation timestamp + // inRFC3339 + // text format. + CreationTimestamp string `json:"creationTimestamp,omitempty"` + // CustomerName: Customer name, to put in the Letter of Authorization as the + // party + // authorized to request a crossconnect. + CustomerName string `json:"customerName,omitempty"` + // Description: An optional description of this resource. Provide this property + // when you + // create the resource. + Description string `json:"description,omitempty"` + // EffectiveLocation: Output only. URL of the InterconnectLocation object that + // represents where + // this connection is to be provisioned. By default it will be the same as + // the + // location field. + EffectiveLocation string `json:"effectiveLocation,omitempty"` + // ExpectedOutages: Output only. [Output Only] A list of outages expected for + // this Interconnect. + ExpectedOutages []*InterconnectOutageNotification `json:"expectedOutages,omitempty"` + // GoogleIpAddress: Output only. [Output Only] IP address configured on the + // Google side of the Interconnect + // link. This can be used only for ping tests. + GoogleIpAddress string `json:"googleIpAddress,omitempty"` + // GoogleReferenceId: Output only. [Output Only] Google reference ID to be used + // when raising support tickets + // with Google or otherwise to debug backend connectivity issues. + GoogleReferenceId string `json:"googleReferenceId,omitempty"` + // Id: Output only. [Output Only] The unique identifier for the resource. This + // identifier is + // defined by the server. + Id uint64 `json:"id,omitempty,string"` + // InterconnectAttachments: Output only. [Output Only] A list of the URLs of + // all InterconnectAttachments configured + // to use this Interconnect. + InterconnectAttachments []string `json:"interconnectAttachments,omitempty"` + // InterconnectGroups: Output only. [Output Only] URLs of InterconnectGroups + // that include this Interconnect. + // Order is arbitrary and items are unique. + InterconnectGroups []string `json:"interconnectGroups,omitempty"` + // InterconnectType: Type of interconnect, which can take one of the following + // values: + // + // - PARTNER: A partner-managed interconnection shared between customers + // though a partner. + // - DEDICATED: A dedicated physical interconnection with the + // customer. + // + // + // Note that a value IT_PRIVATE has been deprecated in favor of DEDICATED. + // + // Possible values: + // "DEDICATED" - A dedicated physical interconnection with the customer. + // "IT_PRIVATE" - [Deprecated] A private, physical interconnection with the + // customer. + // "PARTNER" - A partner-managed interconnection shared between customers via + // partner. + InterconnectType string `json:"interconnectType,omitempty"` + // Kind: Output only. [Output Only] Type of the resource. + // Alwayscompute#interconnect for interconnects. + Kind string `json:"kind,omitempty"` + // LabelFingerprint: A fingerprint for the labels being applied to this + // Interconnect, which + // is essentially a hash of the labels set used for optimistic locking. + // The + // fingerprint is initially generated by Compute Engine and changes after + // every request to modify or update labels. You must always provide + // an + // up-to-date fingerprint hash in order to update or change labels, + // otherwise the request will fail with error412 conditionNotMet. + // + // To see the latest fingerprint, make a get() request to + // retrieve an Interconnect. + LabelFingerprint string `json:"labelFingerprint,omitempty"` + // Labels: Labels for this resource. These can only be added or modified by + // thesetLabels method. Each label key/value pair must comply + // withRFC1035. + // Label values may be empty. + Labels map[string]string `json:"labels,omitempty"` + // LinkType: Type of link requested, which can take one of the following + // values: + // + // - LINK_TYPE_ETHERNET_10G_LR: A 10G Ethernet with LR optics + // - LINK_TYPE_ETHERNET_100G_LR: A 100G Ethernet with LR optics. + // - LINK_TYPE_ETHERNET_400G_LR4: A 400G Ethernet with LR4 optics. + // + // + // Note that this field indicates the speed of each of + // the links in the bundle, not the speed of the entire bundle. + // + // Possible values: + // "LINK_TYPE_ETHERNET_100G_LR" - 100G Ethernet, LR Optics. + // "LINK_TYPE_ETHERNET_10G_LR" - 10G Ethernet, LR Optics. + // [(rate_bps) = 10000000000]; + // "LINK_TYPE_ETHERNET_400G_LR4" - 400G Ethernet, LR4 Optics. + LinkType string `json:"linkType,omitempty"` + // Location: URL of the InterconnectLocation object that represents where + // this + // connection is to be provisioned. + Location string `json:"location,omitempty"` + // Macsec: Configuration that enables Media Access Control security (MACsec) on + // the + // Cloud Interconnect connection between Google and your on-premises router. + Macsec *InterconnectMacsec `json:"macsec,omitempty"` + // MacsecEnabled: Enable or disable MACsec on this Interconnect connection. + // MACsec enablement + // fails if the MACsec object is not specified. + MacsecEnabled bool `json:"macsecEnabled,omitempty"` + // Name: Name of the resource. Provided by the client when the resource is + // created. + // The name must be 1-63 characters long, and comply withRFC1035. + // 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. + Name string `json:"name,omitempty"` + // NocContactEmail: Email address to contact the customer NOC for operations + // and maintenance + // notifications regarding this Interconnect. If specified, this will be + // used + // for notifications in addition to all other forms described, such as + // Cloud Monitoring logs alerting and Cloud Notifications. This field + // is + // required for users who sign up for Cloud Interconnect using + // workforce identity federation. + NocContactEmail string `json:"nocContactEmail,omitempty"` + // OperationalStatus: Output only. [Output Only] The current status of this + // Interconnect's functionality, + // which can take one of the following values: + // + // - OS_ACTIVE: A valid Interconnect, which is turned up and is ready to + // use. Attachments may be provisioned on this Interconnect. + // + // - OS_UNPROVISIONED: An Interconnect that has not completed turnup. + // No + // attachments may be provisioned on this Interconnect. + // - OS_UNDER_MAINTENANCE: An Interconnect that is undergoing + // internal + // maintenance. No attachments may be provisioned or updated on + // this + // Interconnect. + // + // Possible values: + // "OS_ACTIVE" - The interconnect is valid, turned up, and ready to use. + // Attachments may + // be provisioned on this interconnect. + // "OS_UNPROVISIONED" - The interconnect has not completed turnup. No + // attachments may be + // provisioned on this interconnect. + OperationalStatus string `json:"operationalStatus,omitempty"` + // Params: Input only. [Input Only] Additional params passed with the request, + // but not persisted + // as part of resource payload. + Params *InterconnectParams `json:"params,omitempty"` + // PeerIpAddress: Output only. [Output Only] IP address configured on the + // customer side of the + // Interconnect link. The customer should configure this IP address + // during + // turnup when prompted by Google NOC. This can be used only for ping tests. + PeerIpAddress string `json:"peerIpAddress,omitempty"` + // ProvisionedLinkCount: Output only. [Output Only] Number of links actually + // provisioned in this interconnect. + ProvisionedLinkCount int64 `json:"provisionedLinkCount,omitempty"` + // RemoteLocation: Indicates that this is a Cross-Cloud Interconnect. This + // field specifies the + // location outside of Google's network that the interconnect is connected to. + RemoteLocation string `json:"remoteLocation,omitempty"` + // RequestedFeatures: Optional. This parameter can be provided only with + // Interconnect INSERT. It + // isn't valid for Interconnect PATCH. List of features requested for + // this + // Interconnect connection, which can take one of the following values: + // + // - IF_MACSEC: If specified, then the connection is created on MACsec + // capable hardware ports. If not specified, non-MACsec capable ports will + // also be considered. + // - IF_CROSS_SITE_NETWORK: If specified, then the connection is created + // exclusively for Cross-Site Networking. The connection can not be used + // for + // Cross-Site Networking unless this feature is specified. + // + // Possible values: + // "IF_CROSS_SITE_NETWORK" - Cross-Site Networking + // "IF_L2_FORWARDING" - L2 Interconnect Attachment Forwarding + // "IF_MACSEC" - Media Access Control security (MACsec) + RequestedFeatures []string `json:"requestedFeatures,omitempty"` + // RequestedLinkCount: Target number of physical links in the link bundle, as + // requested by the + // customer. + RequestedLinkCount int64 `json:"requestedLinkCount,omitempty"` + // SatisfiesPzs: Output only. [Output Only] Reserved for future use. + SatisfiesPzs bool `json:"satisfiesPzs,omitempty"` + // SelfLink: Output only. [Output Only] Server-defined URL for the resource. + SelfLink string `json:"selfLink,omitempty"` + // State: Output only. [Output Only] The current state of Interconnect + // functionality, which can + // take one of the following values: + // + // - ACTIVE: The Interconnect is valid, turned up and ready to use. + // Attachments may be provisioned on this Interconnect. + // - UNPROVISIONED: The Interconnect has not completed turnup. No + // attachments may be provisioned on this Interconnect. + // - UNDER_MAINTENANCE: The Interconnect is undergoing internal + // maintenance. + // No attachments may be provisioned or updated on this + // Interconnect. + // + // Possible values: + // "ACTIVE" - The interconnect is valid, turned up, and ready to use. + // Attachments may + // be provisioned on this interconnect. + // "UNPROVISIONED" - The interconnect has not completed turnup. No + // attachments may be + // provisioned on this interconnect. + State string `json:"state,omitempty"` + // Subzone: To be deprecated. + // + // Possible values: + // "SUBZONE_A" - Subzone A. + // "SUBZONE_B" - Subzone B. + Subzone string `json:"subzone,omitempty"` + // WireGroups: Output only. [Output Only] A list of the URLs of all + // CrossSiteNetwork WireGroups + // configured to use this Interconnect. The Interconnect cannot be deleted + // if + // this list is non-empty. + WireGroups []string `json:"wireGroups,omitempty"` + + // ServerResponse contains the HTTP response code and headers from the server. + googleapi.ServerResponse `json:"-"` + // ForceSendFields is a list of field names (e.g. "AaiEnabled") to + // unconditionally include in API requests. By default, fields with empty or + // default values are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. 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. See + // NullFields is a list of field names (e.g. "AaiEnabled") to include in API + // requests with the JSON null value. By default, fields with empty values are + // omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } -func (s *NodeTypeListWarning) MarshalJSON() ([]byte, error) { - type NoMethod NodeTypeListWarning - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s Interconnect) MarshalJSON() ([]byte, error) { + type NoMethod Interconnect + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -type NodeTypeListWarningData 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 or default values are - // omitted from API requests. See +// InterconnectApplicationAwareInterconnect: Configuration information for +// application awareness on this Cloud +// Interconnect. +type InterconnectApplicationAwareInterconnect struct { + BandwidthPercentagePolicy *InterconnectApplicationAwareInterconnectBandwidthPercentagePolicy `json:"bandwidthPercentagePolicy,omitempty"` + // ProfileDescription: Description for the application awareness profile on + // this Cloud + // Interconnect. + ProfileDescription string `json:"profileDescription,omitempty"` + // ShapeAveragePercentages: Optional field to specify a list of shape average + // percentages to be + // applied in conjunction with StrictPriorityPolicy + // or + // BandwidthPercentagePolicy. + ShapeAveragePercentages []*InterconnectApplicationAwareInterconnectBandwidthPercentage `json:"shapeAveragePercentages,omitempty"` + StrictPriorityPolicy *InterconnectApplicationAwareInterconnectStrictPriorityPolicy `json:"strictPriorityPolicy,omitempty"` + // ForceSendFields is a list of field names (e.g. "BandwidthPercentagePolicy") + // to unconditionally include in API requests. By default, fields with empty or + // default values are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. 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. See + // NullFields is a list of field names (e.g. "BandwidthPercentagePolicy") to + // include in API requests with the JSON null value. By default, fields with + // empty values are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } -func (s *NodeTypeListWarningData) MarshalJSON() ([]byte, error) { - type NoMethod NodeTypeListWarningData - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s InterconnectApplicationAwareInterconnect) MarshalJSON() ([]byte, error) { + type NoMethod InterconnectApplicationAwareInterconnect + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -type NodeTypesScopedList struct { - // NodeTypes: [Output Only] A list of node types contained in this scope. - NodeTypes []*NodeType `json:"nodeTypes,omitempty"` - // Warning: [Output Only] An informational warning that appears when the node - // types list is empty. - Warning *NodeTypesScopedListWarning `json:"warning,omitempty"` - // ForceSendFields is a list of field names (e.g. "NodeTypes") to +// InterconnectApplicationAwareInterconnectBandwidthPercentage: Specify +// bandwidth percentages [1-100] for various traffic classes +// in +// BandwidthPercentagePolicy. The sum of all percentages must equal 100. +// All traffic classes must have a percentage value specified. +type InterconnectApplicationAwareInterconnectBandwidthPercentage struct { + // Percentage: Bandwidth percentage for a specific traffic class. + Percentage int64 `json:"percentage,omitempty"` + // TrafficClass: TrafficClass whose bandwidth percentage is being specified. + // + // Possible values: + // "TC1" - Traffic Class 1, corresponding to DSCP ranges (0-7) 000xxx. + // "TC2" - Traffic Class 2, corresponding to DSCP ranges (8-15) 001xxx. + // "TC3" - Traffic Class 3, corresponding to DSCP ranges (16-23) 010xxx. + // "TC4" - Traffic Class 4, corresponding to DSCP ranges (24-31) 011xxx. + // "TC5" - Traffic Class 5, corresponding to DSCP ranges (32-47) 10xxxx. + // "TC6" - Traffic Class 6, corresponding to DSCP ranges (48-63) 11xxxx. + TrafficClass string `json:"trafficClass,omitempty"` + // ForceSendFields is a list of field names (e.g. "Percentage") to // unconditionally include in API requests. By default, fields with empty or // default values are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. ForceSendFields []string `json:"-"` - // NullFields is a list of field names (e.g. "NodeTypes") to include in API + // NullFields is a list of field names (e.g. "Percentage") to include in API // requests with the JSON null value. By default, fields with empty values are // omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } -func (s *NodeTypesScopedList) MarshalJSON() ([]byte, error) { - type NoMethod NodeTypesScopedList - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s InterconnectApplicationAwareInterconnectBandwidthPercentage) MarshalJSON() ([]byte, error) { + type NoMethod InterconnectApplicationAwareInterconnectBandwidthPercentage + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -// NodeTypesScopedListWarning: [Output Only] An informational warning that -// appears when the node types list is empty. -type NodeTypesScopedListWarning 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" - Warning about failed cleanup of transient changes made - // by a failed operation. - // "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was created. - // "DEPRECATED_TYPE_USED" - When deploying and at least one of the resources - // has a type marked as deprecated - // "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk that is - // larger than image size. - // "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the - // resources has a type marked as experimental - // "EXTERNAL_API_WARNING" - Warning that is present in an external api call - // "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been - // overridden. Deprecated unused field. - // "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an injected - // kernel, which is deprecated. - // "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB" - A WEIGHTED_MAGLEV backend - // service is associated with a health check that is not of type - // HTTP/HTTPS/HTTP2. - // "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a - // exceedingly large number of resources - // "LIST_OVERHEAD_QUOTA_EXCEED" - Resource can't be retrieved due to list - // overhead quota exceed which captures the amount of resources filtered out by - // user-defined list filter. - // "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type - // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is not - // assigned to an instance on the network. - // "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot ip - // forward. - // "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE" - The route's nextHopInstance - // URL refers to an instance that does not have an ipv6 interface on the same - // network as the route. - // "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL refers to - // an instance that does not exist. - // "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance URL - // refers to an instance that is not on the same network as the route. - // "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not have a - // status of RUNNING. - // "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to continue - // the process despite the mentioned error. - // "NO_RESULTS_ON_PAGE" - No results are present on a particular list page. - // "PARTIAL_SUCCESS" - Success is reported, but some results may be missing - // due to errors - // "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource that - // requires a TOS they have not accepted. - // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a resource is - // in use. - // "RESOURCE_NOT_DELETED" - One or more of the resources set to auto-delete - // could not be deleted because they were in use. - // "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is - // ignored. - // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in instance - // group manager is valid as such, but its application does not make a lot of - // sense, because it allows only single instance in instance group. - // "UNDECLARED_PROPERTIES" - When undeclared properties in the schema are - // present - // "UNREACHABLE" - A given scope cannot be reached. - 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 []*NodeTypesScopedListWarningData `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 or default values are - // omitted from API requests. See +type InterconnectApplicationAwareInterconnectBandwidthPercentagePolicy struct { + // BandwidthPercentages: Specify bandwidth percentages for various traffic + // classes for queuing + // type Bandwidth Percent. + BandwidthPercentages []*InterconnectApplicationAwareInterconnectBandwidthPercentage `json:"bandwidthPercentages,omitempty"` + // ForceSendFields is a list of field names (e.g. "BandwidthPercentages") to + // unconditionally include in API requests. By default, fields with empty or + // default values are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. 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. See + // NullFields is a list of field names (e.g. "BandwidthPercentages") to include + // in API requests with the JSON null value. By default, fields with empty + // values are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } -func (s *NodeTypesScopedListWarning) MarshalJSON() ([]byte, error) { - type NoMethod NodeTypesScopedListWarning - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) -} - -type NodeTypesScopedListWarningData 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 or default values are - // omitted from API requests. See - // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more - // details. - 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. See - // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. - NullFields []string `json:"-"` +func (s InterconnectApplicationAwareInterconnectBandwidthPercentagePolicy) MarshalJSON() ([]byte, error) { + type NoMethod InterconnectApplicationAwareInterconnectBandwidthPercentagePolicy + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -func (s *NodeTypesScopedListWarningData) MarshalJSON() ([]byte, error) { - type NoMethod NodeTypesScopedListWarningData - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +// InterconnectApplicationAwareInterconnectStrictPriorityPolicy: Specify +// configuration for StrictPriorityPolicy. +type InterconnectApplicationAwareInterconnectStrictPriorityPolicy struct { } -// NotificationEndpoint: Represents a notification endpoint. A notification -// endpoint resource defines an endpoint to receive notifications when there -// are status changes detected by the associated health check service. For more -// information, see Health checks overview. -type NotificationEndpoint struct { - // CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text format. +// InterconnectAttachment: Represents an Interconnect Attachment (VLAN) +// resource. +// +// You can use Interconnect attachments (VLANS) to connect your Virtual +// Private +// Cloud networks to your on-premises networks through an Interconnect. +// For more information, read +// Creating VLAN Attachments. +type InterconnectAttachment struct { + // AdminEnabled: Determines whether this Attachment will carry packets. + // Not present for PARTNER_PROVIDER. + AdminEnabled bool `json:"adminEnabled,omitempty"` + // AttachmentGroup: Output only. [Output Only] URL of the AttachmentGroup that + // includes this Attachment. + AttachmentGroup string `json:"attachmentGroup,omitempty"` + // Bandwidth: Provisioned bandwidth capacity for the interconnect attachment. + // For + // attachments of type DEDICATED, the user can set the bandwidth. + // For attachments of type PARTNER, the Google Partner that is operating + // the interconnect must set the bandwidth. + // Output only for PARTNER type, mutable for PARTNER_PROVIDER and + // DEDICATED, + // and can take one of the following values: + // + // - BPS_50M: 50 Mbit/s + // - BPS_100M: 100 Mbit/s + // - BPS_200M: 200 Mbit/s + // - BPS_300M: 300 Mbit/s + // - BPS_400M: 400 Mbit/s + // - BPS_500M: 500 Mbit/s + // - BPS_1G: 1 Gbit/s + // - BPS_2G: 2 Gbit/s + // - BPS_5G: 5 Gbit/s + // - BPS_10G: 10 Gbit/s + // - BPS_20G: 20 Gbit/s + // - BPS_50G: 50 Gbit/s + // - BPS_100G: 100 Gbit/s + // - BPS_400G: 400 Gbit/s + // + // Possible values: + // "BPS_100G" - 100 Gbit/s + // "BPS_100M" - 100 Mbit/s + // "BPS_10G" - 10 Gbit/s + // "BPS_1G" - 1 Gbit/s + // "BPS_200M" - 200 Mbit/s + // "BPS_20G" - 20 Gbit/s + // "BPS_2G" - 2 Gbit/s + // "BPS_300M" - 300 Mbit/s + // "BPS_400G" - 400 Gbit/s + // "BPS_400M" - 400 Mbit/s + // "BPS_500M" - 500 Mbit/s + // "BPS_50G" - 50 Gbit/s + // "BPS_50M" - 50 Mbit/s + // "BPS_5G" - 5 Gbit/s + Bandwidth string `json:"bandwidth,omitempty"` + // CandidateCloudRouterIpAddress: Single IPv4 address + prefix length to be + // configured on the cloud router + // interface for this interconnect attachment. + // + // - Both candidate_cloud_router_ip_address and + // candidate_customer_router_ip_address fields must be set or both must be + // unset. + // - Prefix length of both candidate_cloud_router_ip_address and + // candidate_customer_router_ip_address must be the same. + // - Max prefix length is 31. + CandidateCloudRouterIpAddress string `json:"candidateCloudRouterIpAddress,omitempty"` + // CandidateCloudRouterIpv6Address: Single IPv6 address + prefix length to be + // configured on the cloud router + // interface for this interconnect attachment. + // + // - Both candidate_cloud_router_ipv6_address and + // candidate_customer_router_ipv6_address fields must be set or both must + // be + // unset. + // - Prefix length of both candidate_cloud_router_ipv6_address and + // candidate_customer_router_ipv6_address must be the same. + // - Max prefix length is 126. + CandidateCloudRouterIpv6Address string `json:"candidateCloudRouterIpv6Address,omitempty"` + // CandidateCustomerRouterIpAddress: Single IPv4 address + prefix length to be + // configured on the customer router + // interface for this interconnect attachment. + CandidateCustomerRouterIpAddress string `json:"candidateCustomerRouterIpAddress,omitempty"` + // CandidateCustomerRouterIpv6Address: Single IPv6 address + prefix length to + // be configured on the customer router + // interface for this interconnect attachment. + CandidateCustomerRouterIpv6Address string `json:"candidateCustomerRouterIpv6Address,omitempty"` + // CandidateIpv6Subnets: This field is not available. + CandidateIpv6Subnets []string `json:"candidateIpv6Subnets,omitempty"` + // CandidateSubnets: Input only. Up to 16 candidate prefixes that can be used + // to restrict the allocation + // of cloudRouterIpAddress and customerRouterIpAddress for this attachment. + // All prefixes must be within link-local address space (169.254.0.0/16) + // and + // must be /29 or shorter (/28, /27, etc). Google will attempt to select + // an + // unused /29 from the supplied candidate prefix(es). The request will fail + // if + // all possible /29s are in use on Google's edge. If not supplied, Google + // will + // randomly select an unused /29 from all of link-local space. + CandidateSubnets []string `json:"candidateSubnets,omitempty"` + // CloudRouterIpAddress: Output only. [Output Only] IPv4 address + prefix + // length to be configured on Cloud Router + // Interface for this interconnect attachment. + CloudRouterIpAddress string `json:"cloudRouterIpAddress,omitempty"` + // CloudRouterIpv6Address: Output only. [Output Only] IPv6 address + prefix + // length to be configured on Cloud + // Router Interface for this interconnect attachment. + CloudRouterIpv6Address string `json:"cloudRouterIpv6Address,omitempty"` + // CloudRouterIpv6InterfaceId: This field is not available. + CloudRouterIpv6InterfaceId string `json:"cloudRouterIpv6InterfaceId,omitempty"` + // ConfigurationConstraints: Output only. [Output Only] Constraints for this + // attachment, if any. The attachment does + // not work if these constraints are not met. + ConfigurationConstraints *InterconnectAttachmentConfigurationConstraints `json:"configurationConstraints,omitempty"` + // CreationTimestamp: Output only. [Output Only] Creation timestamp + // inRFC3339 + // text format. CreationTimestamp string `json:"creationTimestamp,omitempty"` - // Description: An optional description of this resource. Provide this property - // when you create the resource. + // CustomerRouterIpAddress: Output only. [Output Only] IPv4 address + prefix + // length to be configured on the customer + // router subinterface for this interconnect attachment. + CustomerRouterIpAddress string `json:"customerRouterIpAddress,omitempty"` + // CustomerRouterIpv6Address: Output only. [Output Only] IPv6 address + prefix + // length to be configured on the + // customer router subinterface for this interconnect attachment. + CustomerRouterIpv6Address string `json:"customerRouterIpv6Address,omitempty"` + // CustomerRouterIpv6InterfaceId: This field is not available. + CustomerRouterIpv6InterfaceId string `json:"customerRouterIpv6InterfaceId,omitempty"` + // DataplaneVersion: Output only. [Output Only] Dataplane version for this + // InterconnectAttachment. This + // field is only present for Dataplane version 2 and higher. Absence of + // this + // field in the API output indicates that the Dataplane is version 1. + DataplaneVersion int64 `json:"dataplaneVersion,omitempty"` + // Description: An optional description of this resource. Description string `json:"description,omitempty"` - // GrpcSettings: Settings of the gRPC notification endpoint including the - // endpoint URL and the retry duration. - GrpcSettings *NotificationEndpointGrpcSettings `json:"grpcSettings,omitempty"` - // Id: [Output Only] A unique identifier for this resource type. The server - // generates this identifier. + // EdgeAvailabilityDomain: Input only. Desired availability domain for the + // attachment. Only available for type + // PARTNER, at creation time, and can take one of the following values: + // + // - AVAILABILITY_DOMAIN_ANY + // - AVAILABILITY_DOMAIN_1 + // - AVAILABILITY_DOMAIN_2 + // + // + // For improved reliability, customers should configure a pair of + // attachments, + // one per availability domain. The selected availability domain will + // be + // provided to the Partner via the pairing key, so that the provisioned + // circuit will lie in the specified domain. If not specified, the value + // will + // default to AVAILABILITY_DOMAIN_ANY. + // + // Possible values: + // "AVAILABILITY_DOMAIN_1" + // "AVAILABILITY_DOMAIN_2" + // "AVAILABILITY_DOMAIN_ANY" + EdgeAvailabilityDomain string `json:"edgeAvailabilityDomain,omitempty"` + // Encryption: Indicates the user-supplied encryption option of this VLAN + // attachment + // (interconnectAttachment). Can only be specified at attachment creation + // for PARTNER or DEDICATED attachments. + // Possible values are: + // + // - NONE - This is the default value, which means that the + // VLAN attachment carries unencrypted traffic. VMs are able to send + // traffic to, or receive traffic from, such a VLAN attachment. + // - IPSEC - The VLAN attachment carries only encrypted + // traffic that is encrypted by an IPsec device, such as an HA VPN gateway + // or + // third-party IPsec VPN. VMs cannot directly send traffic to, or receive + // traffic from, such a VLAN attachment. To use *HA VPN over Cloud + // Interconnect*, the VLAN attachment must be created with this + // option. + // + // Possible values: + // "IPSEC" - The interconnect attachment will carry only encrypted traffic + // that is + // encrypted by an IPsec device such as HA VPN gateway; + // VMs cannot directly send traffic to or receive traffic from such + // an + // interconnect attachment. To use HA VPN over Cloud Interconnect, + // the interconnect attachment must be created with this option. + // "NONE" - This is the default value, which means the Interconnect + // Attachment will + // carry unencrypted traffic. VMs will be able to send traffic to or + // receive + // traffic from such interconnect attachment. + Encryption string `json:"encryption,omitempty"` + // GoogleReferenceId: Output only. [Output Only] Google reference ID, to be + // used when raising support tickets + // with Google or otherwise to debug backend connectivity issues. + // [Deprecated] This field is not used. + GoogleReferenceId string `json:"googleReferenceId,omitempty"` + // Id: Output only. [Output Only] The unique identifier for the resource. This + // identifier is + // defined by the server. Id uint64 `json:"id,omitempty,string"` - // Kind: [Output Only] Type of the resource. Always - // compute#notificationEndpoint for notification endpoints. + // Interconnect: URL of the underlying Interconnect object that this + // attachment's traffic + // will traverse through. + Interconnect string `json:"interconnect,omitempty"` + // IpsecInternalAddresses: A list of URLs of addresses that have been reserved + // for the VLAN + // attachment. Used only for the VLAN attachment that has the encryption + // option as IPSEC. The addresses must be regional internal IP address + // ranges. + // When creating an HA VPN gateway over the VLAN attachment, if the + // attachment + // is configured to use a regional internal IP address, then the VPN + // gateway's + // IP address is allocated from the IP address range specified here. + // For + // example, if the HA VPN gateway's interface 0 is paired to this + // VLAN + // attachment, then a regional internal IP address for the VPN + // gateway + // interface 0 will be allocated from the IP address specified for this + // VLAN attachment. + // If this field is not specified when creating the VLAN attachment, then + // later on when creating an HA VPN gateway on this VLAN attachment, the HA + // VPN gateway's IP address is allocated from the regional external IP + // address + // pool. + IpsecInternalAddresses []string `json:"ipsecInternalAddresses,omitempty"` + // Kind: Output only. [Output Only] Type of the resource. + // Alwayscompute#interconnectAttachment for interconnect attachments. Kind string `json:"kind,omitempty"` + // L2Forwarding: L2 Interconnect Attachment related config. This field is + // required if the + // type is L2_DEDICATED. + // + // The configuration specifies how VLAN tags (like dot1q, qinq, or + // dot1ad) + // within L2 packets are mapped to the destination appliances IP addresses. + // The packet is then encapsulated with the appliance IP address and sent + // to + // the edge appliance. + L2Forwarding *InterconnectAttachmentL2Forwarding `json:"l2Forwarding,omitempty"` + // LabelFingerprint: A fingerprint for the labels being applied to this + // InterconnectAttachment, + // which is essentially a hash of the labels set used for optimistic + // locking. + // The fingerprint is initially generated by Compute Engine and changes + // after + // every request to modify or update labels. You must always provide + // an + // up-to-date fingerprint hash in order to update or change labels, + // otherwise the request will fail with error412 conditionNotMet. + // + // To see the latest fingerprint, make a get() request to + // retrieve an InterconnectAttachment. + LabelFingerprint string `json:"labelFingerprint,omitempty"` + // Labels: Labels for this resource. These can only be added or modified by + // thesetLabels method. Each label key/value pair must comply + // withRFC1035. + // Label values may be empty. + Labels map[string]string `json:"labels,omitempty"` + // Mtu: Maximum Transmission Unit (MTU), in bytes, of packets passing through + // this + // interconnect attachment. + // Valid values are 1440, 1460, 1500, and 8896. If not specified, + // the value will default to 1440. + Mtu int64 `json:"mtu,omitempty"` // Name: Name of the resource. Provided by the client when the resource is - // created. The name must be 1-63 characters long, and comply with RFC1035. - // 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. + // created. + // The name must be 1-63 characters long, and comply withRFC1035. + // 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. Name string `json:"name,omitempty"` - // Region: [Output Only] URL of the region where the notification endpoint - // resides. This field applies only to the regional resource. You must specify - // this field as part of the HTTP request URL. It is not settable as a field in - // the request body. + // OperationalStatus: Output only. [Output Only] The current status of whether + // or not this interconnect + // attachment is functional, which can take one of the following values: + // + // - OS_ACTIVE: The attachment has been turned up and is ready to + // use. + // - OS_UNPROVISIONED: The attachment is not ready to use yet, + // because turnup is not complete. + // + // Possible values: + // "OS_ACTIVE" - Indicates that attachment has been turned up and is ready + // to + // use. + // "OS_UNPROVISIONED" - Indicates that attachment is not ready to use yet, + // because + // turnup is not complete. + OperationalStatus string `json:"operationalStatus,omitempty"` + // PairingKey: [Output only for type PARTNER. Input only for PARTNER_PROVIDER. + // Not + // present for DEDICATED]. + // The opaque identifier of a PARTNER attachment used to initiate + // provisioning with a selected partner. + // Of the form "XXXXX/region/domain" + PairingKey string `json:"pairingKey,omitempty"` + // Params: Input only. [Input Only] Additional params passed with the request, + // but not persisted + // as part of resource payload. + Params *InterconnectAttachmentParams `json:"params,omitempty"` + // PartnerAsn: Optional BGP ASN for the router supplied by a Layer 3 Partner if + // they + // configured BGP on behalf of the customer. + // Output only for PARTNER type, input only for PARTNER_PROVIDER, not + // available for DEDICATED. + PartnerAsn int64 `json:"partnerAsn,omitempty,string"` + // PartnerMetadata: Informational metadata about Partner attachments from + // Partners to display + // to customers. + // Output only for PARTNER type, mutable for PARTNER_PROVIDER, not + // available for DEDICATED. + PartnerMetadata *InterconnectAttachmentPartnerMetadata `json:"partnerMetadata,omitempty"` + // PrivateInterconnectInfo: Output only. [Output Only] Information specific to + // an InterconnectAttachment. + // This property is populated if the interconnect that + // this is attached to is of type DEDICATED. + PrivateInterconnectInfo *InterconnectAttachmentPrivateInfo `json:"privateInterconnectInfo,omitempty"` + // Region: Output only. [Output Only] URL of the region where the regional + // interconnect attachment + // resides. + // You must specify this field as part of the HTTP request URL. It is + // not settable as a field in the request body. Region string `json:"region,omitempty"` - // SelfLink: [Output Only] Server-defined URL for the resource. + // RemoteService: Output only. [Output Only] + // If the attachment is on a Cross-Cloud Interconnect connection, this + // field + // contains the interconnect's remote location service provider. + // Example + // values: "Amazon Web Services" "Microsoft Azure". + // + // The field is set only for attachments on Cross-Cloud + // Interconnect + // connections. Its value is copied from the + // InterconnectRemoteLocation + // remoteService field. + RemoteService string `json:"remoteService,omitempty"` + // Router: URL of the Cloud Router to be used for dynamic routing. This router + // must be + // in the same region as this InterconnectAttachment. + // The + // InterconnectAttachment will automatically connect the Interconnect to + // the + // network & region within which the Cloud Router is configured. + Router string `json:"router,omitempty"` + // SatisfiesPzs: Output only. [Output Only] Reserved for future use. + SatisfiesPzs bool `json:"satisfiesPzs,omitempty"` + // SelfLink: Output only. [Output Only] Server-defined URL for the resource. SelfLink string `json:"selfLink,omitempty"` + // StackType: The stack type for this interconnect attachment to identify + // whether the + // IPv6 feature is enabled or not. If not specified, IPV4_ONLY + // will be used. + // + // This field can be both set at interconnect attachments creation and + // update interconnect attachment operations. + // + // Possible values: + // "IPV4_IPV6" - The interconnect attachment can have both IPv4 and IPv6 + // addresses. + // "IPV4_ONLY" - The interconnect attachment will only be assigned IPv4 + // addresses. + StackType string `json:"stackType,omitempty"` + // State: Output only. [Output Only] The current state of this attachment's + // functionality. + // Enum values ACTIVE and UNPROVISIONED are shared by + // DEDICATED/PRIVATE, + // PARTNER, and PARTNER_PROVIDER interconnect attachments, while enum + // values + // PENDING_PARTNER, PARTNER_REQUEST_RECEIVED, and PENDING_CUSTOMER are used + // for only PARTNER and PARTNER_PROVIDER interconnect attachments. + // This state can take one of the following values: + // + // - ACTIVE: The attachment has been turned up and is ready to use. + // - UNPROVISIONED: The attachment is not ready to use yet, because turnup + // is not complete. + // - PENDING_PARTNER: A newly-created PARTNER attachment that has not yet + // been configured on the Partner side. + // - PARTNER_REQUEST_RECEIVED: A PARTNER attachment is in the process of + // provisioning after a PARTNER_PROVIDER attachment was created that + // references it. + // - PENDING_CUSTOMER: A PARTNER or PARTNER_PROVIDER + // attachment that is waiting for a customer to activate it. + // - DEFUNCT: + // The attachment was deleted externally and is no longer functional. This + // could be because the associated Interconnect was removed, or because the + // other side of a Partner attachment was deleted. + // + // Possible values: + // "ACTIVE" - Indicates that attachment has been turned up and is ready to + // use. + // "DEFUNCT" - The attachment was deleted externally and is no longer + // functional. + // This could be because the associated Interconnect was wiped out, + // or because the other side of a Partner attachment was deleted. + // "PARTNER_REQUEST_RECEIVED" - A PARTNER attachment is in the process of + // provisioning after a + // PARTNER_PROVIDER attachment was created that references it. + // "PENDING_CUSTOMER" - PARTNER or PARTNER_PROVIDER attachment that is + // waiting for the customer + // to activate. + // "PENDING_PARTNER" - A newly created PARTNER attachment that has not yet + // been configured on + // the Partner side. + // "STATE_UNSPECIFIED" + // "UNPROVISIONED" - Indicates that attachment is not ready to use yet, + // because turnup is not + // complete. + State string `json:"state,omitempty"` + // SubnetLength: Input only. Length of the IPv4 subnet mask. + // Allowed values: + // + // + // - 29 (default) + // - 30 + // + // The default value is 29, except for Cross-Cloud Interconnect + // connections that use an InterconnectRemoteLocation with + // a + // constraints.subnetLengthRange.min equal to 30. For example, + // connections that use an Azure remote location fall into this + // category. In these cases, the default value is 30, and requesting + // 29 returns an error. + // + // Where both 29 and 30 are allowed, 29 is preferred, because it gives + // Google Cloud Support more debugging visibility. + SubnetLength int64 `json:"subnetLength,omitempty"` + // Type: The type of interconnect attachment this is, which can take one of + // the + // following values: + // + // - DEDICATED: an attachment to a Dedicated Interconnect. + // - PARTNER: an attachment to a Partner Interconnect, created by the + // customer. + // - PARTNER_PROVIDER: an attachment to a Partner Interconnect, created by + // the partner. + // + // - L2_DEDICATED: a L2 attachment to a Dedicated Interconnect. + // + // Possible values: + // "DEDICATED" - Attachment to a dedicated interconnect. + // "L2_DEDICATED" - Attachment to a dedicated interconnect, forwarding L2 + // packets. + // "PARTNER" - Attachment to a partner interconnect, created by the customer. + // "PARTNER_PROVIDER" - Attachment to a partner interconnect, created by the + // partner. + Type string `json:"type,omitempty"` + // VlanTag8021q: The IEEE 802.1Q VLAN tag for this attachment, in the range + // 2-4093. + // Only specified at creation time. + VlanTag8021q int64 `json:"vlanTag8021q,omitempty"` // ServerResponse contains the HTTP response code and headers from the server. googleapi.ServerResponse `json:"-"` - // ForceSendFields is a list of field names (e.g. "CreationTimestamp") to - // unconditionally include in API requests. By default, fields with empty or - // default values are omitted from API requests. See - // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more - // details. - ForceSendFields []string `json:"-"` - // NullFields is a list of field names (e.g. "CreationTimestamp") to include in - // API requests with the JSON null value. By default, fields with empty values - // are omitted from API requests. See - // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. - NullFields []string `json:"-"` -} - -func (s *NotificationEndpoint) MarshalJSON() ([]byte, error) { - type NoMethod NotificationEndpoint - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) -} - -// NotificationEndpointGrpcSettings: Represents a gRPC setting that describes -// one gRPC notification endpoint and the retry duration attempting to send -// notification to this endpoint. -type NotificationEndpointGrpcSettings struct { - // Authority: Optional. If specified, this field is used to set the authority - // header by the sender of notifications. See - // https://tools.ietf.org/html/rfc7540#section-8.1.2.3 - Authority string `json:"authority,omitempty"` - // Endpoint: Endpoint to which gRPC notifications are sent. This must be a - // valid gRPCLB DNS name. - Endpoint string `json:"endpoint,omitempty"` - // PayloadName: Optional. If specified, this field is used to populate the - // "name" field in gRPC requests. - PayloadName string `json:"payloadName,omitempty"` - // ResendInterval: Optional. This field is used to configure how often to send - // a full update of all non-healthy backends. If unspecified, full updates are - // not sent. If specified, must be in the range between 600 seconds to 3600 - // seconds. Nanos are disallowed. Can only be set for regional notification - // endpoints. - ResendInterval *Duration `json:"resendInterval,omitempty"` - // RetryDurationSec: How much time (in seconds) is spent attempting - // notification retries until a successful response is received. Default is - // 30s. Limit is 20m (1200s). Must be a positive number. - RetryDurationSec int64 `json:"retryDurationSec,omitempty"` - // ForceSendFields is a list of field names (e.g. "Authority") to + // ForceSendFields is a list of field names (e.g. "AdminEnabled") to // unconditionally include in API requests. By default, fields with empty or // default values are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. ForceSendFields []string `json:"-"` - // NullFields is a list of field names (e.g. "Authority") to include in API + // NullFields is a list of field names (e.g. "AdminEnabled") to include in API // requests with the JSON null value. By default, fields with empty values are // omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } -func (s *NotificationEndpointGrpcSettings) MarshalJSON() ([]byte, error) { - type NoMethod NotificationEndpointGrpcSettings - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s InterconnectAttachment) MarshalJSON() ([]byte, error) { + type NoMethod InterconnectAttachment + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -type NotificationEndpointList struct { +type InterconnectAttachmentAggregatedList struct { // Id: [Output Only] Unique identifier for the resource; defined by the server. Id string `json:"id,omitempty"` - // Items: A list of NotificationEndpoint resources. - Items []*NotificationEndpoint `json:"items,omitempty"` - // Kind: [Output Only] Type of the resource. Always - // compute#notificationEndpoint for notification endpoints. + // Items: A list of InterconnectAttachmentsScopedList resources. + Items map[string]InterconnectAttachmentsScopedList `json:"items,omitempty"` + // Kind: Output only. [Output Only] Type of resource. + // Alwayscompute#interconnectAttachmentAggregatedList for aggregated + // lists of interconnect attachments. 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. + // results for + // list requests. If the number of results is larger thanmaxResults, 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"` - // SelfLink: [Output Only] Server-defined URL for this resource. + // SelfLink: Output only. [Output Only] Server-defined URL for this resource. SelfLink string `json:"selfLink,omitempty"` + // Unreachables: Output only. [Output Only] Unreachable resources. + Unreachables []string `json:"unreachables,omitempty"` // Warning: [Output Only] Informational warning message. - Warning *NotificationEndpointListWarning `json:"warning,omitempty"` + Warning *InterconnectAttachmentAggregatedListWarning `json:"warning,omitempty"` // ServerResponse contains the HTTP response code and headers from the server. googleapi.ServerResponse `json:"-"` @@ -29778,77 +35532,99 @@ type NotificationEndpointList struct { NullFields []string `json:"-"` } -func (s *NotificationEndpointList) MarshalJSON() ([]byte, error) { - type NoMethod NotificationEndpointList - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s InterconnectAttachmentAggregatedList) MarshalJSON() ([]byte, error) { + type NoMethod InterconnectAttachmentAggregatedList + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -// NotificationEndpointListWarning: [Output Only] Informational warning -// message. -type NotificationEndpointListWarning 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. +// InterconnectAttachmentAggregatedListWarning: [Output Only] Informational +// warning message. +type InterconnectAttachmentAggregatedListWarning 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" - Warning about failed cleanup of transient changes made - // by a failed operation. + // by a failed + // operation. // "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was created. // "DEPRECATED_TYPE_USED" - When deploying and at least one of the resources - // has a type marked as deprecated + // has a type marked as + // deprecated // "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk that is // larger than image size. // "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the - // resources has a type marked as experimental + // resources has a type marked as + // experimental // "EXTERNAL_API_WARNING" - Warning that is present in an external api call // "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been - // overridden. Deprecated unused field. + // overridden. + // Deprecated unused field. // "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an injected // kernel, which is deprecated. // "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB" - A WEIGHTED_MAGLEV backend - // service is associated with a health check that is not of type - // HTTP/HTTPS/HTTP2. + // service is associated with a health check that is + // not of type HTTP/HTTPS/HTTP2. // "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a // exceedingly large number of resources // "LIST_OVERHEAD_QUOTA_EXCEED" - Resource can't be retrieved due to list - // overhead quota exceed which captures the amount of resources filtered out by + // overhead quota exceed + // which captures the amount of resources filtered out by // user-defined list filter. // "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is not - // assigned to an instance on the network. + // assigned to an instance on the + // network. // "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot ip // forward. // "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE" - The route's nextHopInstance - // URL refers to an instance that does not have an ipv6 interface on the same - // network as the route. + // URL refers to an instance that does not have an + // ipv6 interface on the same network as the route. // "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL refers to // an instance that does not exist. // "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance URL - // refers to an instance that is not on the same network as the route. + // refers to an instance that is not on the + // same network as the route. // "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not have a // status of RUNNING. // "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to continue - // the process despite the mentioned error. + // the process despite + // the mentioned error. // "NO_RESULTS_ON_PAGE" - No results are present on a particular list page. // "PARTIAL_SUCCESS" - Success is reported, but some results may be missing // due to errors + // "QUOTA_INFO_UNAVAILABLE" - Quota information is not available to client + // requests (e.g: + // regions.list). // "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource that - // requires a TOS they have not accepted. + // requires a TOS they have not + // accepted. // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a resource is // in use. // "RESOURCE_NOT_DELETED" - One or more of the resources set to auto-delete - // could not be deleted because they were in use. + // could not be deleted + // because they were in use. // "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is // ignored. // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in instance - // group manager is valid as such, but its application does not make a lot of - // sense, because it allows only single instance in instance group. + // group manager is valid as such, but + // its application does not make a lot of sense, because it allows only + // single instance in instance group. // "UNDECLARED_PROPERTIES" - When undeclared properties in the schema are // present // "UNREACHABLE" - A given scope cannot be reached. 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 []*NotificationEndpointListWarningData `json:"data,omitempty"` + // Data: [Output Only] Metadata about this warning in key: + // value format. For example: + // + // "data": [ + // { + // "key": "scope", + // "value": "zones/us-east1-d" + // } + Data []*InterconnectAttachmentAggregatedListWarningData `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 @@ -29864,19 +35640,22 @@ type NotificationEndpointListWarning struct { NullFields []string `json:"-"` } -func (s *NotificationEndpointListWarning) MarshalJSON() ([]byte, error) { - type NoMethod NotificationEndpointListWarning - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s InterconnectAttachmentAggregatedListWarning) MarshalJSON() ([]byte, error) { + type NoMethod InterconnectAttachmentAggregatedListWarning + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -type NotificationEndpointListWarningData 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). +type InterconnectAttachmentAggregatedListWarningData 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"` @@ -29893,428 +35672,624 @@ type NotificationEndpointListWarningData struct { NullFields []string `json:"-"` } -func (s *NotificationEndpointListWarningData) MarshalJSON() ([]byte, error) { - type NoMethod NotificationEndpointListWarningData - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) -} - -// Operation: Represents an Operation resource. Google Compute Engine has three -// Operation resources: * Global -// (/compute/docs/reference/rest/v1/globalOperations) * Regional -// (/compute/docs/reference/rest/v1/regionOperations) * Zonal -// (/compute/docs/reference/rest/v1/zoneOperations) You can use an operation -// resource to manage asynchronous API requests. For more information, read -// Handling API responses. Operations can be global, regional or zonal. - For -// global operations, use the `globalOperations` resource. - For regional -// operations, use the `regionOperations` resource. - For zonal operations, use -// the `zoneOperations` resource. For more information, read Global, Regional, -// and Zonal Resources. Note that completed Operation resources have a limited -// retention period. -type Operation struct { - // ClientOperationId: [Output Only] The value of `requestId` if you provided it - // in the request. Not present otherwise. - ClientOperationId string `json:"clientOperationId,omitempty"` - // CreationTimestamp: [Deprecated] This field is deprecated. - CreationTimestamp string `json:"creationTimestamp,omitempty"` - // Description: [Output Only] A textual description of the operation, which is - // set when the operation is created. - Description string `json:"description,omitempty"` - // EndTime: [Output Only] The time that this operation was completed. This - // value is in RFC3339 text format. - EndTime string `json:"endTime,omitempty"` - // Error: [Output Only] If errors are generated during processing of the - // operation, this field will be populated. - Error *OperationError `json:"error,omitempty"` - // HttpErrorMessage: [Output Only] If the operation fails, this field contains - // the HTTP error message that was returned, such as `NOT FOUND`. - HttpErrorMessage string `json:"httpErrorMessage,omitempty"` - // HttpErrorStatusCode: [Output Only] If the operation fails, this field - // contains the HTTP error status code that was returned. For example, a `404` - // means the resource was not found. - HttpErrorStatusCode int64 `json:"httpErrorStatusCode,omitempty"` - // Id: [Output Only] The unique identifier for the operation. This identifier - // is defined by the server. - Id uint64 `json:"id,omitempty,string"` - // InsertTime: [Output Only] The time that this operation was requested. This - // value is in RFC3339 text format. - InsertTime string `json:"insertTime,omitempty"` - InstancesBulkInsertOperationMetadata *InstancesBulkInsertOperationMetadata `json:"instancesBulkInsertOperationMetadata,omitempty"` - // Kind: [Output Only] Type of the resource. Always `compute#operation` for - // Operation resources. - Kind string `json:"kind,omitempty"` - // Name: [Output Only] Name of the operation. - Name string `json:"name,omitempty"` - // OperationGroupId: [Output Only] An ID that represents a group of operations, - // such as when a group of operations results from a `bulkInsert` API request. - OperationGroupId string `json:"operationGroupId,omitempty"` - // OperationType: [Output Only] The type of operation, such as `insert`, - // `update`, or `delete`, and so on. - OperationType string `json:"operationType,omitempty"` - // Progress: [Output Only] An optional progress indicator that ranges from 0 to - // 100. There is no requirement that this be linear or support any granularity - // of operations. This should not be used to guess when the operation will be - // complete. This number should monotonically increase as the operation - // progresses. - Progress int64 `json:"progress,omitempty"` - // Region: [Output Only] The URL of the region where the operation resides. - // Only applicable when performing regional operations. - Region string `json:"region,omitempty"` - // SelfLink: [Output Only] Server-defined URL for the resource. - SelfLink string `json:"selfLink,omitempty"` - // SetCommonInstanceMetadataOperationMetadata: [Output Only] If the operation - // is for projects.setCommonInstanceMetadata, this field will contain - // information on all underlying zonal actions and their state. - SetCommonInstanceMetadataOperationMetadata *SetCommonInstanceMetadataOperationMetadata `json:"setCommonInstanceMetadataOperationMetadata,omitempty"` - // StartTime: [Output Only] The time that this operation was started by the - // server. This value is in RFC3339 text format. - StartTime string `json:"startTime,omitempty"` - // Status: [Output Only] The status of the operation, which can be one of the - // following: `PENDING`, `RUNNING`, or `DONE`. +func (s InterconnectAttachmentAggregatedListWarningData) MarshalJSON() ([]byte, error) { + type NoMethod InterconnectAttachmentAggregatedListWarningData + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +type InterconnectAttachmentConfigurationConstraints struct { + // BgpMd5: Output only. [Output Only] Whether the attachment's BGP + // session + // requires/allows/disallows BGP MD5 authentication. This can take one of + // the following values: MD5_OPTIONAL, MD5_REQUIRED, MD5_UNSUPPORTED. + // + // For example, a Cross-Cloud Interconnect connection to a remote + // cloud + // provider that requires BGP MD5 authentication has + // the + // interconnectRemoteLocation + // attachment_configuration_constraints.bgp_md5 + // field set to MD5_REQUIRED, and that property is propagated to + // the + // attachment. Similarly, if BGP MD5 is MD5_UNSUPPORTED, an error is + // returned if MD5 is requested. // // Possible values: - // "DONE" - // "PENDING" - // "RUNNING" - Status string `json:"status,omitempty"` - // StatusMessage: [Output Only] An optional textual description of the current - // status of the operation. - StatusMessage string `json:"statusMessage,omitempty"` - // TargetId: [Output Only] The unique target ID, which identifies a specific - // incarnation of the target resource. - TargetId uint64 `json:"targetId,omitempty,string"` - // TargetLink: [Output Only] The URL of the resource that the operation - // modifies. For operations related to creating a snapshot, this points to the - // persistent disk that the snapshot was created from. - TargetLink string `json:"targetLink,omitempty"` - // User: [Output Only] User who requested the operation, for example: - // `user@example.com` or `alice_smith_identifier - // (global/workforcePools/example-com-us-employees)`. - User string `json:"user,omitempty"` - // Warnings: [Output Only] If warning messages are generated during processing - // of the operation, this field will be populated. - Warnings []*OperationWarnings `json:"warnings,omitempty"` - // Zone: [Output Only] The URL of the zone where the operation resides. Only - // applicable when performing per-zone operations. - Zone string `json:"zone,omitempty"` + // "MD5_OPTIONAL" - MD5_OPTIONAL: BGP MD5 authentication is supported and can + // optionally be + // configured. + // "MD5_REQUIRED" - MD5_REQUIRED: BGP MD5 authentication must be configured. + // "MD5_UNSUPPORTED" - MD5_UNSUPPORTED: BGP MD5 authentication must not be + // configured + BgpMd5 string `json:"bgpMd5,omitempty"` + // BgpPeerAsnRanges: Output only. [Output Only] List of ASN ranges that the + // remote location is known to + // support. Formatted as an array of inclusive ranges {min: min-value, + // max: + // max-value}. For example, [{min: 123, max: 123}, {min: 64512, max: + // 65534}] + // allows the peer ASN to be 123 or anything in the range 64512-65534. + // + // This field is only advisory. Although the API accepts other ranges, + // these + // are the ranges that we recommend. + BgpPeerAsnRanges []*InterconnectAttachmentConfigurationConstraintsBgpPeerASNRange `json:"bgpPeerAsnRanges,omitempty"` + // ForceSendFields is a list of field names (e.g. "BgpMd5") to unconditionally + // include in API requests. By default, fields with empty or default values are + // omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + ForceSendFields []string `json:"-"` + // NullFields is a list of field names (e.g. "BgpMd5") to include in API + // requests with the JSON null value. By default, fields with empty values are + // omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s InterconnectAttachmentConfigurationConstraints) MarshalJSON() ([]byte, error) { + type NoMethod InterconnectAttachmentConfigurationConstraints + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +type InterconnectAttachmentConfigurationConstraintsBgpPeerASNRange struct { + Max int64 `json:"max,omitempty"` + Min int64 `json:"min,omitempty"` + // ForceSendFields is a list of field names (e.g. "Max") to unconditionally + // include in API requests. By default, fields with empty or default values are + // omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + ForceSendFields []string `json:"-"` + // NullFields is a list of field names (e.g. "Max") to include in API requests + // with the JSON null value. By default, fields with empty values are omitted + // from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s InterconnectAttachmentConfigurationConstraintsBgpPeerASNRange) MarshalJSON() ([]byte, error) { + type NoMethod InterconnectAttachmentConfigurationConstraintsBgpPeerASNRange + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +// InterconnectAttachmentGroup: An interconnect attachment group resource +// allows customers to create, +// analyze, and expand highly available deployments. +type InterconnectAttachmentGroup struct { + // Attachments: Attachments in the AttachmentGroup. Keys are arbitrary + // user-specified + // strings. Users are encouraged, but not required, to use their + // preferred + // format for resource links as keys. + // Note that there are add-members and remove-members methods in gcloud. + // The size of this map is limited by an "Attachments per group" quota. + Attachments map[string]InterconnectAttachmentGroupAttachment `json:"attachments,omitempty"` + Configured *InterconnectAttachmentGroupConfigured `json:"configured,omitempty"` + // CreationTimestamp: Output only. [Output Only] Creation timestamp + // inRFC3339 + // text format. + CreationTimestamp string `json:"creationTimestamp,omitempty"` + // Description: An optional description of this resource. Provide this property + // when you + // create the resource. + Description string `json:"description,omitempty"` + // Etag: Opaque system-generated token that uniquely identifies the + // configuration. + // If provided when patching a configuration in update mode, the provided + // token must match the current token or the update is rejected. This + // provides + // a reliable means of doing read-modify-write (optimistic locking) + // as + // described byAIP 154. + Etag string `json:"etag,omitempty"` + // Id: Output only. [Output Only] The unique identifier for the resource type. + // The server + // generates this identifier. + Id uint64 `json:"id,omitempty,string"` + Intent *InterconnectAttachmentGroupIntent `json:"intent,omitempty"` + // InterconnectGroup: The URL of an InterconnectGroup that groups these + // Attachments' + // Interconnects. Customers do not need to set this unless directed by + // Google Support. + InterconnectGroup string `json:"interconnectGroup,omitempty"` + // Kind: Output only. [Output Only] Type of the resource. + // Always + // compute#interconnectAttachmentGroup. + Kind string `json:"kind,omitempty"` + LogicalStructure *InterconnectAttachmentGroupLogicalStructure `json:"logicalStructure,omitempty"` + // Name: Name of the resource. Provided by the client when the resource is + // created. + // The name must be 1-63 characters long, and comply withRFC1035. + // 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. + Name string `json:"name,omitempty"` + // SelfLink: Output only. [Output Only] Server-defined URL for the resource. + SelfLink string `json:"selfLink,omitempty"` // ServerResponse contains the HTTP response code and headers from the server. googleapi.ServerResponse `json:"-"` - // ForceSendFields is a list of field names (e.g. "ClientOperationId") to + // ForceSendFields is a list of field names (e.g. "Attachments") to // unconditionally include in API requests. By default, fields with empty or // default values are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. ForceSendFields []string `json:"-"` - // NullFields is a list of field names (e.g. "ClientOperationId") to include in + // NullFields is a list of field names (e.g. "Attachments") to include in API + // requests with the JSON null value. By default, fields with empty values are + // omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s InterconnectAttachmentGroup) MarshalJSON() ([]byte, error) { + type NoMethod InterconnectAttachmentGroup + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +// InterconnectAttachmentGroupAttachment: An Attachment in this +// AttachmentGroup. +type InterconnectAttachmentGroupAttachment struct { + Attachment string `json:"attachment,omitempty"` + // ForceSendFields is a list of field names (e.g. "Attachment") to + // unconditionally include in API requests. By default, fields with empty or + // default values are omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + ForceSendFields []string `json:"-"` + // NullFields is a list of field names (e.g. "Attachment") to include in API + // requests with the JSON null value. By default, fields with empty values are + // omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s InterconnectAttachmentGroupAttachment) MarshalJSON() ([]byte, error) { + type NoMethod InterconnectAttachmentGroupAttachment + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +// InterconnectAttachmentGroupConfigured: [Output Only] The redundancy this +// group is configured to support. The way a +// user queries what SLA their Attachment gets is by looking at this field +// of +// the Attachment's AttachmentGroup. +type InterconnectAttachmentGroupConfigured struct { + AvailabilitySla *InterconnectAttachmentGroupConfiguredAvailabilitySLA `json:"availabilitySla,omitempty"` + // ForceSendFields is a list of field names (e.g. "AvailabilitySla") to + // unconditionally include in API requests. By default, fields with empty or + // default values are omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + ForceSendFields []string `json:"-"` + // NullFields is a list of field names (e.g. "AvailabilitySla") to include in // API requests with the JSON null value. By default, fields with empty values // are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } -func (s *Operation) MarshalJSON() ([]byte, error) { - type NoMethod Operation - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s InterconnectAttachmentGroupConfigured) MarshalJSON() ([]byte, error) { + type NoMethod InterconnectAttachmentGroupConfigured + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -// OperationError: [Output Only] If errors are generated during processing of -// the operation, this field will be populated. -type OperationError struct { - // Errors: [Output Only] The array of errors encountered while processing this - // operation. - Errors []*OperationErrorErrors `json:"errors,omitempty"` - // ForceSendFields is a list of field names (e.g. "Errors") to unconditionally +// InterconnectAttachmentGroupConfiguredAvailabilitySLA: [Output Only] Which +// SLA this group is configured to support, and why this +// group does or does not meet that SLA's requirements. +type InterconnectAttachmentGroupConfiguredAvailabilitySLA struct { + // Possible values: + // "EFFECTIVE_SLA_UNSPECIFIED" + // "NO_SLA" + // "PRODUCTION_CRITICAL" + // "PRODUCTION_NON_CRITICAL" + EffectiveSla string `json:"effectiveSla,omitempty"` + IntendedSlaBlockers []*InterconnectAttachmentGroupConfiguredAvailabilitySLAIntendedSlaBlockers `json:"intendedSlaBlockers,omitempty"` + // ForceSendFields is a list of field names (e.g. "EffectiveSla") to + // unconditionally include in API requests. By default, fields with empty or + // default values are omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + ForceSendFields []string `json:"-"` + // NullFields is a list of field names (e.g. "EffectiveSla") to include in API + // requests with the JSON null value. By default, fields with empty values are + // omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s InterconnectAttachmentGroupConfiguredAvailabilitySLA) MarshalJSON() ([]byte, error) { + type NoMethod InterconnectAttachmentGroupConfiguredAvailabilitySLA + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +// InterconnectAttachmentGroupConfiguredAvailabilitySLAIntendedSlaBlockers: +// [Output Only] Reasons why configuration.availabilitySLA.sla differs +// from +// intent.availabilitySLA. This list is empty if and only if those are +// the +// same. +type InterconnectAttachmentGroupConfiguredAvailabilitySLAIntendedSlaBlockers struct { + // Attachments: Output only. [Output Only] URLs of any particular Attachments + // to explain this + // blocker in more detail. + Attachments []string `json:"attachments,omitempty"` + // Possible values: + // "BLOCKER_TYPE_UNSPECIFIED" + // "INCOMPATIBLE_METROS" + // "INCOMPATIBLE_REGIONS" + // "MISSING_GLOBAL_ROUTING" + // "NO_ATTACHMENTS" + // "NO_ATTACHMENTS_IN_METRO_AND_ZONE" + // "OTHER" + BlockerType string `json:"blockerType,omitempty"` + // DocumentationLink: Output only. [Output Only] The url of Google Cloud public + // documentation explaining + // this requirement. This is set for every type of requirement. + DocumentationLink string `json:"documentationLink,omitempty"` + // Explanation: Output only. [Output Only] A human-readable explanation of this + // requirement and + // why it's not met. This is set for every type of requirement. + Explanation string `json:"explanation,omitempty"` + // Metros: Output only. [Output Only] Metros used to explain this blocker in + // more detail. + // These are three-letter lowercase strings like "iad". This will be set + // for some blockers (like NO_ATTACHMENTS_IN_METRO_AND_ZONE) but does + // not apply to others. + Metros []string `json:"metros,omitempty"` + // Regions: Output only. [Output Only] Regions used to explain this blocker in + // more + // detail. These are region names formatted like "us-central1". This + // will be set for some blockers (like INCOMPATIBLE_REGIONS) but does + // not apply to others. + Regions []string `json:"regions,omitempty"` + // Zones: Output only. [Output Only] Zones used to explain this blocker in more + // detail. + // Format is "zone1" and/or "zone2". This will be set for some blockers + // (like MISSING_ZONE) but does not apply to others. + Zones []string `json:"zones,omitempty"` + // ForceSendFields is a list of field names (e.g. "Attachments") to + // unconditionally include in API requests. By default, fields with empty or + // default values are omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + ForceSendFields []string `json:"-"` + // NullFields is a list of field names (e.g. "Attachments") to include in API + // requests with the JSON null value. By default, fields with empty values are + // omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s InterconnectAttachmentGroupConfiguredAvailabilitySLAIntendedSlaBlockers) MarshalJSON() ([]byte, error) { + type NoMethod InterconnectAttachmentGroupConfiguredAvailabilitySLAIntendedSlaBlockers + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +// InterconnectAttachmentGroupIntent: The user's intent for this +// AttachmentGroup. This is the only required field +// besides the name that must be specified on group creation. +type InterconnectAttachmentGroupIntent struct { + // Possible values: + // "AVAILABILITY_SLA_UNSPECIFIED" + // "NO_SLA" + // "PRODUCTION_CRITICAL" + // "PRODUCTION_NON_CRITICAL" + AvailabilitySla string `json:"availabilitySla,omitempty"` + // ForceSendFields is a list of field names (e.g. "AvailabilitySla") to + // unconditionally include in API requests. By default, fields with empty or + // default values are omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + ForceSendFields []string `json:"-"` + // NullFields is a list of field names (e.g. "AvailabilitySla") to include in + // API requests with the JSON null value. By default, fields with empty values + // are omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s InterconnectAttachmentGroupIntent) MarshalJSON() ([]byte, error) { + type NoMethod InterconnectAttachmentGroupIntent + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +// InterconnectAttachmentGroupLogicalStructure: [Output Only] An analysis of +// the logical layout of Attachments in this +// group. Every Attachment in the group is shown once in this structure. +type InterconnectAttachmentGroupLogicalStructure struct { + Regions []*InterconnectAttachmentGroupLogicalStructureRegion `json:"regions,omitempty"` + // ForceSendFields is a list of field names (e.g. "Regions") to unconditionally // include in API requests. By default, fields with empty or default values are // omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. ForceSendFields []string `json:"-"` - // NullFields is a list of field names (e.g. "Errors") to include in API + // NullFields is a list of field names (e.g. "Regions") to include in API // requests with the JSON null value. By default, fields with empty values are // omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } -func (s *OperationError) MarshalJSON() ([]byte, error) { - type NoMethod OperationError - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s InterconnectAttachmentGroupLogicalStructure) MarshalJSON() ([]byte, error) { + type NoMethod InterconnectAttachmentGroupLogicalStructure + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -type OperationErrorErrors struct { - // Code: [Output Only] The error type identifier for this error. - Code string `json:"code,omitempty"` - // ErrorDetails: [Output Only] An optional list of messages that contain the - // error details. There is a set of defined message types to use for providing - // details.The syntax depends on the error code. For example, QuotaExceededInfo - // will have details when the error code is QUOTA_EXCEEDED. - ErrorDetails []*OperationErrorErrorsErrorDetails `json:"errorDetails,omitempty"` - // Location: [Output Only] Indicates the field in the request that caused the - // error. This property is optional. - Location string `json:"location,omitempty"` - // Message: [Output Only] An optional, human-readable error message. - Message string `json:"message,omitempty"` - // ForceSendFields is a list of field names (e.g. "Code") to unconditionally +// InterconnectAttachmentGroupLogicalStructureRegion: [Output Only] The regions +// Attachments in this group are in. +type InterconnectAttachmentGroupLogicalStructureRegion struct { + Metros []*InterconnectAttachmentGroupLogicalStructureRegionMetro `json:"metros,omitempty"` + // Region: Output only. [Output Only] The name of a region, like "us-central1". + Region string `json:"region,omitempty"` + // ForceSendFields is a list of field names (e.g. "Metros") to unconditionally // include in API requests. By default, fields with empty or default values are // omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. 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. See + // NullFields is a list of field names (e.g. "Metros") to include in API + // requests with the JSON null value. By default, fields with empty values are + // omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } -func (s *OperationErrorErrors) MarshalJSON() ([]byte, error) { - type NoMethod OperationErrorErrors - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s InterconnectAttachmentGroupLogicalStructureRegion) MarshalJSON() ([]byte, error) { + type NoMethod InterconnectAttachmentGroupLogicalStructureRegion + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -type OperationErrorErrorsErrorDetails struct { - ErrorInfo *ErrorInfo `json:"errorInfo,omitempty"` - Help *Help `json:"help,omitempty"` - LocalizedMessage *LocalizedMessage `json:"localizedMessage,omitempty"` - QuotaInfo *QuotaExceededInfo `json:"quotaInfo,omitempty"` - // ForceSendFields is a list of field names (e.g. "ErrorInfo") to +// InterconnectAttachmentGroupLogicalStructureRegionMetro: [Output Only] The +// metros of Attachments in this group in this region. +type InterconnectAttachmentGroupLogicalStructureRegionMetro struct { + Facilities []*InterconnectAttachmentGroupLogicalStructureRegionMetroFacility `json:"facilities,omitempty"` + // Metro: Output only. [Output Only] The name of the metro, as a three-letter + // lowercase + // string like "iad". This is the first component of the location of + // an + // Interconnect. + Metro string `json:"metro,omitempty"` + // ForceSendFields is a list of field names (e.g. "Facilities") to // unconditionally include in API requests. By default, fields with empty or // default values are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. ForceSendFields []string `json:"-"` - // NullFields is a list of field names (e.g. "ErrorInfo") to include in API + // NullFields is a list of field names (e.g. "Facilities") to include in API // requests with the JSON null value. By default, fields with empty values are // omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } -func (s *OperationErrorErrorsErrorDetails) MarshalJSON() ([]byte, error) { - type NoMethod OperationErrorErrorsErrorDetails - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s InterconnectAttachmentGroupLogicalStructureRegionMetro) MarshalJSON() ([]byte, error) { + type NoMethod InterconnectAttachmentGroupLogicalStructureRegionMetro + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -type OperationWarnings 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" - Warning about failed cleanup of transient changes made - // by a failed operation. - // "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was created. - // "DEPRECATED_TYPE_USED" - When deploying and at least one of the resources - // has a type marked as deprecated - // "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk that is - // larger than image size. - // "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the - // resources has a type marked as experimental - // "EXTERNAL_API_WARNING" - Warning that is present in an external api call - // "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been - // overridden. Deprecated unused field. - // "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an injected - // kernel, which is deprecated. - // "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB" - A WEIGHTED_MAGLEV backend - // service is associated with a health check that is not of type - // HTTP/HTTPS/HTTP2. - // "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a - // exceedingly large number of resources - // "LIST_OVERHEAD_QUOTA_EXCEED" - Resource can't be retrieved due to list - // overhead quota exceed which captures the amount of resources filtered out by - // user-defined list filter. - // "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type - // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is not - // assigned to an instance on the network. - // "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot ip - // forward. - // "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE" - The route's nextHopInstance - // URL refers to an instance that does not have an ipv6 interface on the same - // network as the route. - // "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL refers to - // an instance that does not exist. - // "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance URL - // refers to an instance that is not on the same network as the route. - // "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not have a - // status of RUNNING. - // "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to continue - // the process despite the mentioned error. - // "NO_RESULTS_ON_PAGE" - No results are present on a particular list page. - // "PARTIAL_SUCCESS" - Success is reported, but some results may be missing - // due to errors - // "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource that - // requires a TOS they have not accepted. - // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a resource is - // in use. - // "RESOURCE_NOT_DELETED" - One or more of the resources set to auto-delete - // could not be deleted because they were in use. - // "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is - // ignored. - // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in instance - // group manager is valid as such, but its application does not make a lot of - // sense, because it allows only single instance in instance group. - // "UNDECLARED_PROPERTIES" - When undeclared properties in the schema are - // present - // "UNREACHABLE" - A given scope cannot be reached. - 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 []*OperationWarningsData `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 or default values are +// InterconnectAttachmentGroupLogicalStructureRegionMetroFacility: [Output +// Only] The facilities used for this group's Attachments' +// Interconnects. +type InterconnectAttachmentGroupLogicalStructureRegionMetroFacility struct { + // Facility: Output only. [Output Only] The name of a facility, like + // "iad-1234". + Facility string `json:"facility,omitempty"` + Zones []*InterconnectAttachmentGroupLogicalStructureRegionMetroFacilityZone `json:"zones,omitempty"` + // ForceSendFields is a list of field names (e.g. "Facility") to + // unconditionally include in API requests. By default, fields with empty or + // default values are omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + ForceSendFields []string `json:"-"` + // NullFields is a list of field names (e.g. "Facility") to include in API + // requests with the JSON null value. By default, fields with empty values are // omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s InterconnectAttachmentGroupLogicalStructureRegionMetroFacility) MarshalJSON() ([]byte, error) { + type NoMethod InterconnectAttachmentGroupLogicalStructureRegionMetroFacility + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +// InterconnectAttachmentGroupLogicalStructureRegionMetroFacilityZone: [Output +// Only] The zones that Attachments in this group are present +// in, in the given facilities. This is inherited from their +// Interconnects. +type InterconnectAttachmentGroupLogicalStructureRegionMetroFacilityZone struct { + // Attachments: Output only. [Output Only] URLs of Attachments in the given + // zone, to the given + // region, on Interconnects in the given facility and metro. Every + // Attachment in the AG has such an entry. + Attachments []string `json:"attachments,omitempty"` + // Zone: Output only. [Output Only] The name of a zone, either "zone1" or + // "zone2". + Zone string `json:"zone,omitempty"` + // ForceSendFields is a list of field names (e.g. "Attachments") to + // unconditionally include in API requests. By default, fields with empty or + // default values are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. 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. See + // NullFields is a list of field names (e.g. "Attachments") to include in API + // requests with the JSON null value. By default, fields with empty values are + // omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } -func (s *OperationWarnings) MarshalJSON() ([]byte, error) { - type NoMethod OperationWarnings - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s InterconnectAttachmentGroupLogicalStructureRegionMetroFacilityZone) MarshalJSON() ([]byte, error) { + type NoMethod InterconnectAttachmentGroupLogicalStructureRegionMetroFacilityZone + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -type OperationWarningsData 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 +// InterconnectAttachmentGroupsGetOperationalStatusResponse: Response for the +// InterconnectAttachmentGroupsGetOperationalStatusResponse. +type InterconnectAttachmentGroupsGetOperationalStatusResponse struct { + Etag string `json:"etag,omitempty"` + Result *InterconnectAttachmentGroupsOperationalStatus `json:"result,omitempty"` + + // ServerResponse contains the HTTP response code and headers from the server. + googleapi.ServerResponse `json:"-"` + // ForceSendFields is a list of field names (e.g. "Etag") to unconditionally // include in API requests. By default, fields with empty or default values are // omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. ForceSendFields []string `json:"-"` - // NullFields is a list of field names (e.g. "Key") to include in API requests + // NullFields is a list of field names (e.g. "Etag") to include in API requests // with the JSON null value. By default, fields with empty values are omitted // from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } -func (s *OperationWarningsData) MarshalJSON() ([]byte, error) { - type NoMethod OperationWarningsData - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s InterconnectAttachmentGroupsGetOperationalStatusResponse) MarshalJSON() ([]byte, error) { + type NoMethod InterconnectAttachmentGroupsGetOperationalStatusResponse + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -type OperationAggregatedList struct { - // Id: [Output Only] The unique identifier for the resource. This identifier is - // defined by the server. +type InterconnectAttachmentGroupsListResponse struct { + Etag string `json:"etag,omitempty"` + // Id: [Output Only] Unique identifier for the resource; defined by the server. Id string `json:"id,omitempty"` - // Items: [Output Only] A map of scoped operation lists. - Items map[string]OperationsScopedList `json:"items,omitempty"` - // Kind: [Output Only] Type of resource. Always - // `compute#operationAggregatedList` for aggregated lists of operations. - Kind string `json:"kind,omitempty"` + // Items: A list of InterconnectAttachmentGroup resources. + Items []*InterconnectAttachmentGroup `json:"items,omitempty"` + 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. + // results for + // list requests. If the number of results is larger thanmaxResults, 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"` // SelfLink: [Output Only] Server-defined URL for this resource. SelfLink string `json:"selfLink,omitempty"` - // Unreachables: [Output Only] Unreachable resources. + // Unreachables: Output only. [Output Only] Unreachable + // resources. + // end_interface: + // MixerListResponseWithEtagBuilder Unreachables []string `json:"unreachables,omitempty"` // Warning: [Output Only] Informational warning message. - Warning *OperationAggregatedListWarning `json:"warning,omitempty"` + Warning *InterconnectAttachmentGroupsListResponseWarning `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 + // ForceSendFields is a list of field names (e.g. "Etag") to unconditionally // include in API requests. By default, fields with empty or default values are // omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. ForceSendFields []string `json:"-"` - // NullFields is a list of field names (e.g. "Id") to include in API requests + // NullFields is a list of field names (e.g. "Etag") to include in API requests // with the JSON null value. By default, fields with empty values are omitted // from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } -func (s *OperationAggregatedList) MarshalJSON() ([]byte, error) { - type NoMethod OperationAggregatedList - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s InterconnectAttachmentGroupsListResponse) MarshalJSON() ([]byte, error) { + type NoMethod InterconnectAttachmentGroupsListResponse + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -// OperationAggregatedListWarning: [Output Only] Informational warning message. -type OperationAggregatedListWarning 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. +// InterconnectAttachmentGroupsListResponseWarning: [Output Only] Informational +// warning message. +type InterconnectAttachmentGroupsListResponseWarning 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" - Warning about failed cleanup of transient changes made - // by a failed operation. + // by a failed + // operation. // "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was created. // "DEPRECATED_TYPE_USED" - When deploying and at least one of the resources - // has a type marked as deprecated + // has a type marked as + // deprecated // "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk that is // larger than image size. // "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the - // resources has a type marked as experimental + // resources has a type marked as + // experimental // "EXTERNAL_API_WARNING" - Warning that is present in an external api call // "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been - // overridden. Deprecated unused field. + // overridden. + // Deprecated unused field. // "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an injected // kernel, which is deprecated. // "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB" - A WEIGHTED_MAGLEV backend - // service is associated with a health check that is not of type - // HTTP/HTTPS/HTTP2. + // service is associated with a health check that is + // not of type HTTP/HTTPS/HTTP2. // "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a // exceedingly large number of resources // "LIST_OVERHEAD_QUOTA_EXCEED" - Resource can't be retrieved due to list - // overhead quota exceed which captures the amount of resources filtered out by + // overhead quota exceed + // which captures the amount of resources filtered out by // user-defined list filter. // "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is not - // assigned to an instance on the network. + // assigned to an instance on the + // network. // "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot ip // forward. // "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE" - The route's nextHopInstance - // URL refers to an instance that does not have an ipv6 interface on the same - // network as the route. + // URL refers to an instance that does not have an + // ipv6 interface on the same network as the route. // "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL refers to // an instance that does not exist. // "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance URL - // refers to an instance that is not on the same network as the route. + // refers to an instance that is not on the + // same network as the route. // "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not have a // status of RUNNING. // "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to continue - // the process despite the mentioned error. + // the process despite + // the mentioned error. // "NO_RESULTS_ON_PAGE" - No results are present on a particular list page. // "PARTIAL_SUCCESS" - Success is reported, but some results may be missing // due to errors + // "QUOTA_INFO_UNAVAILABLE" - Quota information is not available to client + // requests (e.g: + // regions.list). // "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource that - // requires a TOS they have not accepted. + // requires a TOS they have not + // accepted. // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a resource is // in use. // "RESOURCE_NOT_DELETED" - One or more of the resources set to auto-delete - // could not be deleted because they were in use. + // could not be deleted + // because they were in use. // "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is // ignored. // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in instance - // group manager is valid as such, but its application does not make a lot of - // sense, because it allows only single instance in instance group. + // group manager is valid as such, but + // its application does not make a lot of sense, because it allows only + // single instance in instance group. // "UNDECLARED_PROPERTIES" - When undeclared properties in the schema are // present // "UNREACHABLE" - A given scope cannot be reached. 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 []*OperationAggregatedListWarningData `json:"data,omitempty"` + // Data: [Output Only] Metadata about this warning in key: + // value format. For example: + // + // "data": [ + // { + // "key": "scope", + // "value": "zones/us-east1-d" + // } + Data []*InterconnectAttachmentGroupsListResponseWarningData `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 @@ -30330,19 +36305,22 @@ type OperationAggregatedListWarning struct { NullFields []string `json:"-"` } -func (s *OperationAggregatedListWarning) MarshalJSON() ([]byte, error) { - type NoMethod OperationAggregatedListWarning - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s InterconnectAttachmentGroupsListResponseWarning) MarshalJSON() ([]byte, error) { + type NoMethod InterconnectAttachmentGroupsListResponseWarning + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -type OperationAggregatedListWarningData 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). +type InterconnectAttachmentGroupsListResponseWarningData 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"` @@ -30359,256 +36337,397 @@ type OperationAggregatedListWarningData struct { NullFields []string `json:"-"` } -func (s *OperationAggregatedListWarningData) MarshalJSON() ([]byte, error) { - type NoMethod OperationAggregatedListWarningData - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s InterconnectAttachmentGroupsListResponseWarningData) MarshalJSON() ([]byte, error) { + type NoMethod InterconnectAttachmentGroupsListResponseWarningData + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -// OperationList: Contains a list of Operation resources. -type OperationList struct { - // Id: [Output Only] The unique identifier for the resource. This identifier is - // defined by the server. - Id string `json:"id,omitempty"` - // Items: [Output Only] A list of Operation resources. - Items []*Operation `json:"items,omitempty"` - // Kind: [Output Only] Type of resource. Always `compute#operations` for - // Operations resource. - 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"` - // SelfLink: [Output Only] Server-defined URL for this resource. - SelfLink string `json:"selfLink,omitempty"` - // Warning: [Output Only] Informational warning message. - Warning *OperationListWarning `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 or default values are - // omitted from API requests. See +type InterconnectAttachmentGroupsOperationalStatus struct { + AttachmentStatuses []*InterconnectAttachmentGroupsOperationalStatusAttachmentStatus `json:"attachmentStatuses,omitempty"` + Configured *InterconnectAttachmentGroupConfigured `json:"configured,omitempty"` + // GroupStatus: Output only. Summarizes the status of the group. + // + // Possible values: + // "DEGRADED" + // "FULLY_DOWN" + // "FULLY_UP" + // "UNSPECIFIED" + GroupStatus string `json:"groupStatus,omitempty"` + Intent *InterconnectAttachmentGroupIntent `json:"intent,omitempty"` + // Operational: Output only. The operational state of the group, including only + // active Attachments. + Operational *InterconnectAttachmentGroupConfigured `json:"operational,omitempty"` + // ForceSendFields is a list of field names (e.g. "AttachmentStatuses") to + // unconditionally include in API requests. By default, fields with empty or + // default values are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. 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. See + // NullFields is a list of field names (e.g. "AttachmentStatuses") to include + // in API requests with the JSON null value. By default, fields with empty + // values are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } -func (s *OperationList) MarshalJSON() ([]byte, error) { - type NoMethod OperationList - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s InterconnectAttachmentGroupsOperationalStatus) MarshalJSON() ([]byte, error) { + type NoMethod InterconnectAttachmentGroupsOperationalStatus + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -// OperationListWarning: [Output Only] Informational warning message. -type OperationListWarning 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. +// InterconnectAttachmentGroupsOperationalStatusAttachmentStatus: The status of +// one Attachment in the group. List order is arbitrary. +type InterconnectAttachmentGroupsOperationalStatusAttachmentStatus struct { + // AdminEnabled: Output only. Whether this Attachment is enabled. This becomes + // false when the customer + // drains their Attachment. + AdminEnabled bool `json:"adminEnabled,omitempty"` + // Attachment: Output only. The URL of the Attachment being described. + Attachment string `json:"attachment,omitempty"` + // IsActive: Output only. Whether this Attachment is participating in the + // redundant configuration. + // This will be ACTIVE if and only if the status below is CONNECTION_UP. + // Any INACTIVE Attachments are excluded from the analysis that + // generates + // operational.availabilitySLA. // // Possible values: - // "CLEANUP_FAILED" - Warning about failed cleanup of transient changes made - // by a failed operation. - // "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was created. - // "DEPRECATED_TYPE_USED" - When deploying and at least one of the resources - // has a type marked as deprecated - // "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk that is - // larger than image size. - // "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the - // resources has a type marked as experimental - // "EXTERNAL_API_WARNING" - Warning that is present in an external api call - // "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been - // overridden. Deprecated unused field. - // "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an injected - // kernel, which is deprecated. - // "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB" - A WEIGHTED_MAGLEV backend - // service is associated with a health check that is not of type - // HTTP/HTTPS/HTTP2. - // "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a - // exceedingly large number of resources - // "LIST_OVERHEAD_QUOTA_EXCEED" - Resource can't be retrieved due to list - // overhead quota exceed which captures the amount of resources filtered out by - // user-defined list filter. - // "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type - // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is not - // assigned to an instance on the network. - // "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot ip - // forward. - // "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE" - The route's nextHopInstance - // URL refers to an instance that does not have an ipv6 interface on the same - // network as the route. - // "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL refers to - // an instance that does not exist. - // "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance URL - // refers to an instance that is not on the same network as the route. - // "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not have a - // status of RUNNING. - // "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to continue - // the process despite the mentioned error. - // "NO_RESULTS_ON_PAGE" - No results are present on a particular list page. - // "PARTIAL_SUCCESS" - Success is reported, but some results may be missing - // due to errors - // "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource that - // requires a TOS they have not accepted. - // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a resource is - // in use. - // "RESOURCE_NOT_DELETED" - One or more of the resources set to auto-delete - // could not be deleted because they were in use. - // "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is - // ignored. - // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in instance - // group manager is valid as such, but its application does not make a lot of - // sense, because it allows only single instance in instance group. - // "UNDECLARED_PROPERTIES" - When undeclared properties in the schema are - // present - // "UNREACHABLE" - A given scope cannot be reached. - 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 []*OperationListWarningData `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 or default values are + // "ACTIVE" + // "INACTIVE" + // "UNSPECIFIED" + IsActive string `json:"isActive,omitempty"` + // Status: Output only. Whether this Attachment is active, and if so, whether + // BGP is up. + // + // Possible values: + // "ATTACHMENT_STATUS_UNKNOWN" + // "CONNECTION_DISABLED" + // "CONNECTION_DOWN" + // "CONNECTION_UP" + // "DEFUNCT" + // "IPSEC_CONFIGURATION_NEEDED_STATUS" + // "IPSEC_READY_TO_RESUME_FLOW_STATUS" + // "IPV4_DOWN_IPV6_UP" + // "IPV4_UP_IPV6_DOWN" + // "PARTNER_REQUEST_RECEIVED" + // "PENDING_CUSTOMER" + // "PENDING_PARTNER" + // "PROVISIONED" + // "ROUTER_CONFIGURATION_BROKEN" + // "UNPROVISIONED" + Status string `json:"status,omitempty"` + // ForceSendFields is a list of field names (e.g. "AdminEnabled") to + // unconditionally include in API requests. By default, fields with empty or + // default values are omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + ForceSendFields []string `json:"-"` + // NullFields is a list of field names (e.g. "AdminEnabled") to include in API + // requests with the JSON null value. By default, fields with empty values are // omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s InterconnectAttachmentGroupsOperationalStatusAttachmentStatus) MarshalJSON() ([]byte, error) { + type NoMethod InterconnectAttachmentGroupsOperationalStatusAttachmentStatus + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +// InterconnectAttachmentL2Forwarding: L2 Interconnect Attachment related +// configuration. +type InterconnectAttachmentL2Forwarding struct { + // ApplianceMappings: Optional. A map of VLAN tags to appliances and optional + // inner mapping + // rules. If VLANs are not explicitly mapped to any appliance, + // the + // defaultApplianceIpAddress is used. + // + // Each VLAN tag can be a single number or a range of numbers in the range + // of 1 to 4094, e.g., "1" or "4001-4094". Non-empty and non-overlapping + // VLAN tag ranges are enforced, and violating operations will be + // rejected. + // + // The VLAN tags in the Ethernet header must use an ethertype value of + // 0x88A8 or 0x8100. + ApplianceMappings map[string]InterconnectAttachmentL2ForwardingApplianceMapping `json:"applianceMappings,omitempty"` + // DefaultApplianceIpAddress: Optional. A single IPv4 or IPv6 address used as + // the default destination + // IP when there is no VLAN mapping result found. + // + // Unset field (null-value) indicates the unmatched packet should be + // dropped. + DefaultApplianceIpAddress string `json:"defaultApplianceIpAddress,omitempty"` + // GeneveHeader: Optional. It represents the structure of a Geneve (Generic + // Network + // Virtualization Encapsulation) header, as defined in RFC8926. It encapsulates + // packets from various + // protocols (e.g., Ethernet, IPv4, IPv6) for use in network + // virtualization + // environments. + GeneveHeader *InterconnectAttachmentL2ForwardingGeneveHeader `json:"geneveHeader,omitempty"` + // Network: Required. Resource URL of the network to which this attachment + // belongs. + Network string `json:"network,omitempty"` + // TunnelEndpointIpAddress: Required. A single IPv4 or IPv6 address. This + // address will be used as the + // source IP address for packets sent to the appliances, and must be used + // as + // the destination IP address for packets that should be sent out through + // this attachment. + TunnelEndpointIpAddress string `json:"tunnelEndpointIpAddress,omitempty"` + // ForceSendFields is a list of field names (e.g. "ApplianceMappings") to + // unconditionally include in API requests. By default, fields with empty or + // default values are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. 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. See + // NullFields is a list of field names (e.g. "ApplianceMappings") to include in + // API requests with the JSON null value. By default, fields with empty values + // are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } -func (s *OperationListWarning) MarshalJSON() ([]byte, error) { - type NoMethod OperationListWarning - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s InterconnectAttachmentL2Forwarding) MarshalJSON() ([]byte, error) { + type NoMethod InterconnectAttachmentL2Forwarding + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -type OperationListWarningData 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 +// InterconnectAttachmentL2ForwardingApplianceMapping: Two-level +// VLAN-to-Appliance mapping rule. +type InterconnectAttachmentL2ForwardingApplianceMapping struct { + // ApplianceIpAddress: Optional. A single IPv4 or IPv6 address used as the + // destination IP + // address for ingress packets that match on a VLAN tag, but do not match + // a more specific inner VLAN tag. + // + // Unset field (null-value) indicates both VLAN tags are required to be + // mapped. Otherwise, defaultApplianceIpAddress is used. + ApplianceIpAddress string `json:"applianceIpAddress,omitempty"` + // InnerVlanToApplianceMappings: Optional. Used to match against the inner VLAN + // when the packet + // contains two VLAN tags. + // + // A list of mapping rules from inner VLAN tags to IP addresses. If the + // inner VLAN is not explicitly mapped to an IP address range, + // the + // applianceIpAddress is used. + InnerVlanToApplianceMappings []*InterconnectAttachmentL2ForwardingApplianceMappingInnerVlanToApplianceMapping `json:"innerVlanToApplianceMappings,omitempty"` + // Name: Optional. The name of this appliance mapping rule. + Name string `json:"name,omitempty"` + // ForceSendFields is a list of field names (e.g. "ApplianceIpAddress") to + // unconditionally include in API requests. By default, fields with empty or + // default values are omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + ForceSendFields []string `json:"-"` + // NullFields is a list of field names (e.g. "ApplianceIpAddress") to include + // in API requests with the JSON null value. By default, fields with empty + // values are omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s InterconnectAttachmentL2ForwardingApplianceMapping) MarshalJSON() ([]byte, error) { + type NoMethod InterconnectAttachmentL2ForwardingApplianceMapping + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +// InterconnectAttachmentL2ForwardingApplianceMappingInnerVlanToApplianceMapping +// : The inner VLAN-to-Appliance mapping. +type InterconnectAttachmentL2ForwardingApplianceMappingInnerVlanToApplianceMapping struct { + // InnerApplianceIpAddress: Required in this object. A single IPv4 or IPv6 + // address used as the + // destination IP address for ingress packets that match on both VLAN + // tags. + InnerApplianceIpAddress string `json:"innerApplianceIpAddress,omitempty"` + // InnerVlanTags: Required in this object. Used to match the inner VLAN tag on + // the + // packet. Each entry can be a single number or a range of numbers in + // the range of 1 to 4094, e.g., ["1", "4001-4094"] is valid. Non-empty + // and Non-overlapping VLAN tag ranges are enforced, and violating + // operations will be rejected. + // + // The inner VLAN tags must have an ethertype value of 0x8100. + InnerVlanTags []string `json:"innerVlanTags,omitempty"` + // ForceSendFields is a list of field names (e.g. "InnerApplianceIpAddress") to + // unconditionally include in API requests. By default, fields with empty or + // default values are omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + ForceSendFields []string `json:"-"` + // NullFields is a list of field names (e.g. "InnerApplianceIpAddress") to + // include in API requests with the JSON null value. By default, fields with + // empty values are omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s InterconnectAttachmentL2ForwardingApplianceMappingInnerVlanToApplianceMapping) MarshalJSON() ([]byte, error) { + type NoMethod InterconnectAttachmentL2ForwardingApplianceMappingInnerVlanToApplianceMapping + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +// InterconnectAttachmentL2ForwardingGeneveHeader: GeneveHeader related +// configurations. +type InterconnectAttachmentL2ForwardingGeneveHeader struct { + // Vni: Optional. VNI is a 24-bit unique virtual network identifier, from 0 + // to + // 16,777,215. + Vni int64 `json:"vni,omitempty"` + // ForceSendFields is a list of field names (e.g. "Vni") to unconditionally // include in API requests. By default, fields with empty or default values are // omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. ForceSendFields []string `json:"-"` - // NullFields is a list of field names (e.g. "Key") to include in API requests + // NullFields is a list of field names (e.g. "Vni") to include in API requests // with the JSON null value. By default, fields with empty values are omitted // from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } -func (s *OperationListWarningData) MarshalJSON() ([]byte, error) { - type NoMethod OperationListWarningData - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s InterconnectAttachmentL2ForwardingGeneveHeader) MarshalJSON() ([]byte, error) { + type NoMethod InterconnectAttachmentL2ForwardingGeneveHeader + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -type OperationsScopedList struct { - // Operations: [Output Only] A list of operations contained in this scope. - Operations []*Operation `json:"operations,omitempty"` - // Warning: [Output Only] Informational warning which replaces the list of - // operations when the list is empty. - Warning *OperationsScopedListWarning `json:"warning,omitempty"` - // ForceSendFields is a list of field names (e.g. "Operations") to - // unconditionally include in API requests. By default, fields with empty or - // default values are omitted from API requests. See +// InterconnectAttachmentList: Response to the list request, and contains a +// list of interconnect +// attachments. +type InterconnectAttachmentList struct { + // Id: [Output Only] Unique identifier for the resource; defined by the server. + Id string `json:"id,omitempty"` + // Items: A list of InterconnectAttachment resources. + Items []*InterconnectAttachment `json:"items,omitempty"` + // Kind: Output only. [Output Only] Type of resource. + // Alwayscompute#interconnectAttachmentList for lists of + // interconnect + // attachments. + 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 thanmaxResults, 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"` + // SelfLink: Output only. [Output Only] Server-defined URL for this resource. + SelfLink string `json:"selfLink,omitempty"` + // Warning: [Output Only] Informational warning message. + Warning *InterconnectAttachmentListWarning `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 or default values are + // omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. ForceSendFields []string `json:"-"` - // NullFields is a list of field names (e.g. "Operations") to include in API - // requests with the JSON null value. By default, fields with empty values are - // omitted from API requests. See + // 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. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } -func (s *OperationsScopedList) MarshalJSON() ([]byte, error) { - type NoMethod OperationsScopedList - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s InterconnectAttachmentList) MarshalJSON() ([]byte, error) { + type NoMethod InterconnectAttachmentList + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -// OperationsScopedListWarning: [Output Only] Informational warning which -// replaces the list of operations when the list is empty. -type OperationsScopedListWarning 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. +// InterconnectAttachmentListWarning: [Output Only] Informational warning +// message. +type InterconnectAttachmentListWarning 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" - Warning about failed cleanup of transient changes made - // by a failed operation. + // by a failed + // operation. // "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was created. // "DEPRECATED_TYPE_USED" - When deploying and at least one of the resources - // has a type marked as deprecated + // has a type marked as + // deprecated // "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk that is // larger than image size. // "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the - // resources has a type marked as experimental + // resources has a type marked as + // experimental // "EXTERNAL_API_WARNING" - Warning that is present in an external api call // "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been - // overridden. Deprecated unused field. + // overridden. + // Deprecated unused field. // "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an injected // kernel, which is deprecated. // "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB" - A WEIGHTED_MAGLEV backend - // service is associated with a health check that is not of type - // HTTP/HTTPS/HTTP2. + // service is associated with a health check that is + // not of type HTTP/HTTPS/HTTP2. // "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a // exceedingly large number of resources // "LIST_OVERHEAD_QUOTA_EXCEED" - Resource can't be retrieved due to list - // overhead quota exceed which captures the amount of resources filtered out by + // overhead quota exceed + // which captures the amount of resources filtered out by // user-defined list filter. // "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is not - // assigned to an instance on the network. + // assigned to an instance on the + // network. // "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot ip // forward. // "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE" - The route's nextHopInstance - // URL refers to an instance that does not have an ipv6 interface on the same - // network as the route. + // URL refers to an instance that does not have an + // ipv6 interface on the same network as the route. // "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL refers to // an instance that does not exist. // "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance URL - // refers to an instance that is not on the same network as the route. + // refers to an instance that is not on the + // same network as the route. // "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not have a // status of RUNNING. // "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to continue - // the process despite the mentioned error. + // the process despite + // the mentioned error. // "NO_RESULTS_ON_PAGE" - No results are present on a particular list page. // "PARTIAL_SUCCESS" - Success is reported, but some results may be missing // due to errors + // "QUOTA_INFO_UNAVAILABLE" - Quota information is not available to client + // requests (e.g: + // regions.list). // "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource that - // requires a TOS they have not accepted. + // requires a TOS they have not + // accepted. // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a resource is // in use. // "RESOURCE_NOT_DELETED" - One or more of the resources set to auto-delete - // could not be deleted because they were in use. + // could not be deleted + // because they were in use. // "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is // ignored. // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in instance - // group manager is valid as such, but its application does not make a lot of - // sense, because it allows only single instance in instance group. + // group manager is valid as such, but + // its application does not make a lot of sense, because it allows only + // single instance in instance group. // "UNDECLARED_PROPERTIES" - When undeclared properties in the schema are // present // "UNREACHABLE" - A given scope cannot be reached. 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 []*OperationsScopedListWarningData `json:"data,omitempty"` + // Data: [Output Only] Metadata about this warning in key: + // value format. For example: + // + // "data": [ + // { + // "key": "scope", + // "value": "zones/us-east1-d" + // } + Data []*InterconnectAttachmentListWarningData `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 @@ -30624,19 +36743,22 @@ type OperationsScopedListWarning struct { NullFields []string `json:"-"` } -func (s *OperationsScopedListWarning) MarshalJSON() ([]byte, error) { - type NoMethod OperationsScopedListWarning - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s InterconnectAttachmentListWarning) MarshalJSON() ([]byte, error) { + type NoMethod InterconnectAttachmentListWarning + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -type OperationsScopedListWarningData 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). +type InterconnectAttachmentListWarningData 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"` @@ -30653,329 +36775,222 @@ type OperationsScopedListWarningData struct { NullFields []string `json:"-"` } -func (s *OperationsScopedListWarningData) MarshalJSON() ([]byte, error) { - type NoMethod OperationsScopedListWarningData - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) -} - -// OutlierDetection: Settings controlling the eviction of unhealthy hosts from -// the load balancing pool for the backend service. -type OutlierDetection struct { - // BaseEjectionTime: The base time that a backend endpoint is ejected for. - // Defaults to 30000ms or 30s. After a backend endpoint is returned back to the - // load balancing pool, it can be ejected again in another ejection analysis. - // Thus, the total ejection time is equal to the base ejection time multiplied - // by the number of times the backend endpoint has been ejected. Defaults to - // 30000ms or 30s. - BaseEjectionTime *Duration `json:"baseEjectionTime,omitempty"` - // ConsecutiveErrors: Number of consecutive errors before a backend endpoint is - // ejected from the load balancing pool. When the backend endpoint is accessed - // over HTTP, a 5xx return code qualifies as an error. Defaults to 5. - ConsecutiveErrors int64 `json:"consecutiveErrors,omitempty"` - // ConsecutiveGatewayFailure: The number of consecutive gateway failures (502, - // 503, 504 status or connection errors that are mapped to one of those status - // codes) before a consecutive gateway failure ejection occurs. Defaults to 3. - ConsecutiveGatewayFailure int64 `json:"consecutiveGatewayFailure,omitempty"` - // EnforcingConsecutiveErrors: The percentage chance that a backend endpoint - // will be ejected when an outlier status is detected through consecutive 5xx. - // This setting can be used to disable ejection or to ramp it up slowly. - // Defaults to 0. - EnforcingConsecutiveErrors int64 `json:"enforcingConsecutiveErrors,omitempty"` - // EnforcingConsecutiveGatewayFailure: The percentage chance that a backend - // endpoint will be ejected when an outlier status is detected through - // consecutive gateway failures. This setting can be used to disable ejection - // or to ramp it up slowly. Defaults to 100. - EnforcingConsecutiveGatewayFailure int64 `json:"enforcingConsecutiveGatewayFailure,omitempty"` - // EnforcingSuccessRate: The percentage chance that a backend endpoint will be - // ejected when an outlier status is detected through success rate statistics. - // This setting can be used to disable ejection or to ramp it up slowly. - // Defaults to 100. Not supported when the backend service uses Serverless NEG. - EnforcingSuccessRate int64 `json:"enforcingSuccessRate,omitempty"` - // Interval: Time interval between ejection analysis sweeps. This can result in - // both new ejections and backend endpoints being returned to service. The - // interval is equal to the number of seconds as defined in - // outlierDetection.interval.seconds plus the number of nanoseconds as defined - // in outlierDetection.interval.nanos. Defaults to 1 second. - Interval *Duration `json:"interval,omitempty"` - // MaxEjectionPercent: Maximum percentage of backend endpoints in the load - // balancing pool for the backend service that can be ejected if the ejection - // conditions are met. Defaults to 50%. - MaxEjectionPercent int64 `json:"maxEjectionPercent,omitempty"` - // SuccessRateMinimumHosts: The number of backend endpoints in the load - // balancing pool that must have enough request volume to detect success rate - // outliers. If the number of backend endpoints is fewer than this setting, - // outlier detection via success rate statistics is not performed for any - // backend endpoint in the load balancing pool. Defaults to 5. Not supported - // when the backend service uses Serverless NEG. - SuccessRateMinimumHosts int64 `json:"successRateMinimumHosts,omitempty"` - // SuccessRateRequestVolume: The minimum number of total requests that must be - // collected in one interval (as defined by the interval duration above) to - // include this backend endpoint in success rate based outlier detection. If - // the volume is lower than this setting, outlier detection via success rate - // statistics is not performed for that backend endpoint. Defaults to 100. Not - // supported when the backend service uses Serverless NEG. - SuccessRateRequestVolume int64 `json:"successRateRequestVolume,omitempty"` - // SuccessRateStdevFactor: This factor is used to determine the ejection - // threshold for success rate outlier ejection. The ejection threshold is the - // difference between the mean success rate, and the product of this factor and - // the standard deviation of the mean success rate: mean - (stdev * - // successRateStdevFactor). This factor is divided by a thousand to get a - // double. That is, if the desired factor is 1.9, the runtime value should be - // 1900. Defaults to 1900. Not supported when the backend service uses - // Serverless NEG. - SuccessRateStdevFactor int64 `json:"successRateStdevFactor,omitempty"` - // ForceSendFields is a list of field names (e.g. "BaseEjectionTime") to +func (s InterconnectAttachmentListWarningData) MarshalJSON() ([]byte, error) { + type NoMethod InterconnectAttachmentListWarningData + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +// InterconnectAttachmentParams: Additional interconnect attachment parameters. +type InterconnectAttachmentParams struct { + // ResourceManagerTags: Tag keys/values directly bound to this resource. + // Tag keys and values have the same definition as resource + // manager tags. The field is allowed for INSERT + // only. The keys/values to set on the resource should be specified in + // either ID { : } or Namespaced format + // { : }. + // For example the following are valid inputs: + // * {"tagKeys/333" : "tagValues/444", "tagKeys/123" : "tagValues/456"} + // * {"123/environment" : "production", "345/abc" : "xyz"} + // Note: + // * Invalid combinations of ID & namespaced format is not supported. For + // instance: {"123/environment" : "tagValues/444"} is invalid. + // * Inconsistent format is not supported. For instance: + // {"tagKeys/333" : "tagValues/444", "123/env" : "prod"} is invalid. + ResourceManagerTags map[string]string `json:"resourceManagerTags,omitempty"` + // ForceSendFields is a list of field names (e.g. "ResourceManagerTags") to // unconditionally include in API requests. By default, fields with empty or // default values are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. ForceSendFields []string `json:"-"` - // NullFields is a list of field names (e.g. "BaseEjectionTime") to include in - // API requests with the JSON null value. By default, fields with empty values - // are omitted from API requests. See + // NullFields is a list of field names (e.g. "ResourceManagerTags") to include + // in API requests with the JSON null value. By default, fields with empty + // values are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } -func (s *OutlierDetection) MarshalJSON() ([]byte, error) { - type NoMethod OutlierDetection - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s InterconnectAttachmentParams) MarshalJSON() ([]byte, error) { + type NoMethod InterconnectAttachmentParams + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -// PacketIntervals: Next free: 7 -type PacketIntervals struct { - // AvgMs: Average observed inter-packet interval in milliseconds. - AvgMs int64 `json:"avgMs,omitempty,string"` - // Duration: From how long ago in the past these intervals were observed. - // - // Possible values: - // "DURATION_UNSPECIFIED" - // "HOUR" - // "MAX" - From BfdSession object creation time. - // "MINUTE" - Duration string `json:"duration,omitempty"` - // MaxMs: Maximum observed inter-packet interval in milliseconds. - MaxMs int64 `json:"maxMs,omitempty,string"` - // MinMs: Minimum observed inter-packet interval in milliseconds. - MinMs int64 `json:"minMs,omitempty,string"` - // NumIntervals: Number of inter-packet intervals from which these statistics - // were derived. - NumIntervals int64 `json:"numIntervals,omitempty,string"` - // Type: The type of packets for which inter-packet intervals were computed. - // - // Possible values: - // "LOOPBACK" - Only applies to Echo packets. This shows the intervals - // between sending and receiving the same packet. - // "RECEIVE" - Intervals between received packets. - // "TRANSMIT" - Intervals between transmitted packets. - // "TYPE_UNSPECIFIED" - Type string `json:"type,omitempty"` - // ForceSendFields is a list of field names (e.g. "AvgMs") to unconditionally - // include in API requests. By default, fields with empty or default values are - // omitted from API requests. See +// InterconnectAttachmentPartnerMetadata: Informational metadata about Partner +// attachments from Partners to display +// to customers. These fields are propagated from PARTNER_PROVIDER +// attachments to their corresponding PARTNER attachments. +type InterconnectAttachmentPartnerMetadata struct { + // InterconnectName: Plain text name of the Interconnect this attachment is + // connected to, as + // displayed in the Partner's portal. For instance "Chicago 1". + // This value may be validated to match approved Partner values. + InterconnectName string `json:"interconnectName,omitempty"` + // PartnerName: Plain text name of the Partner providing this attachment. + // This value may be validated to match approved Partner values. + PartnerName string `json:"partnerName,omitempty"` + // PortalUrl: URL of the Partner's portal for this Attachment. Partners may + // customise + // this to be a deep link to the specific resource on the Partner portal. + // This value may be validated to match approved Partner values. + PortalUrl string `json:"portalUrl,omitempty"` + // ForceSendFields is a list of field names (e.g. "InterconnectName") to + // unconditionally include in API requests. By default, fields with empty or + // default values are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. ForceSendFields []string `json:"-"` - // NullFields is a list of field names (e.g. "AvgMs") to include in API - // requests with the JSON null value. By default, fields with empty values are - // omitted from API requests. See + // NullFields is a list of field names (e.g. "InterconnectName") to include in + // API requests with the JSON null value. By default, fields with empty values + // are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } -func (s *PacketIntervals) MarshalJSON() ([]byte, error) { - type NoMethod PacketIntervals - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s InterconnectAttachmentPartnerMetadata) MarshalJSON() ([]byte, error) { + type NoMethod InterconnectAttachmentPartnerMetadata + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -// PacketMirroring: Represents a Packet Mirroring resource. Packet Mirroring -// clones the traffic of specified instances in your Virtual Private Cloud -// (VPC) network and forwards it to a collector destination, such as an -// instance group of an internal TCP/UDP load balancer, for analysis or -// examination. For more information about setting up Packet Mirroring, see -// Using Packet Mirroring. -type PacketMirroring struct { - // CollectorIlb: The Forwarding Rule resource of type - // loadBalancingScheme=INTERNAL that will be used as collector for mirrored - // traffic. The specified forwarding rule must have isMirroringCollector set to - // true. - CollectorIlb *PacketMirroringForwardingRuleInfo `json:"collectorIlb,omitempty"` - // CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text format. - CreationTimestamp string `json:"creationTimestamp,omitempty"` - // Description: An optional description of this resource. Provide this property - // when you create the resource. - Description string `json:"description,omitempty"` - // Enable: Indicates whether or not this packet mirroring takes effect. If set - // to FALSE, this packet mirroring policy will not be enforced on the network. - // The default is TRUE. - // - // Possible values: - // "FALSE" - // "TRUE" - Enable string `json:"enable,omitempty"` - // Filter: Filter for mirrored traffic. If unspecified, all IPv4 traffic is - // mirrored. - Filter *PacketMirroringFilter `json:"filter,omitempty"` - // Id: [Output Only] The unique identifier for the resource. This identifier is - // defined by the server. - Id uint64 `json:"id,omitempty,string"` - // Kind: [Output Only] Type of the resource. Always compute#packetMirroring for - // packet mirrorings. - Kind string `json:"kind,omitempty"` - // MirroredResources: PacketMirroring mirroredResourceInfos. - // MirroredResourceInfo specifies a set of mirrored VM instances, subnetworks - // and/or tags for which traffic from/to all VM instances will be mirrored. - MirroredResources *PacketMirroringMirroredResourceInfo `json:"mirroredResources,omitempty"` - // Name: Name of the resource; provided by the client when the resource is - // created. The name must be 1-63 characters long, and comply with RFC1035. - // 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. - Name string `json:"name,omitempty"` - // Network: Specifies the mirrored VPC network. Only packets in this network - // will be mirrored. All mirrored VMs should have a NIC in the given network. - // All mirrored subnetworks should belong to the given network. - Network *PacketMirroringNetworkInfo `json:"network,omitempty"` - // Priority: The priority of applying this configuration. Priority is used to - // break ties in cases where there is more than one matching rule. In the case - // of two rules that apply for a given Instance, the one with the - // lowest-numbered priority value wins. Default value is 1000. Valid range is 0 - // through 65535. - Priority int64 `json:"priority,omitempty"` - // Region: [Output Only] URI of the region where the packetMirroring resides. - Region string `json:"region,omitempty"` - // SelfLink: [Output Only] Server-defined URL for the resource. - SelfLink string `json:"selfLink,omitempty"` - - // ServerResponse contains the HTTP response code and headers from the server. - googleapi.ServerResponse `json:"-"` - // ForceSendFields is a list of field names (e.g. "CollectorIlb") to +// InterconnectAttachmentPrivateInfo: Information for an interconnect +// attachment when this belongs to an +// interconnect of type DEDICATED. +type InterconnectAttachmentPrivateInfo struct { + // Tag8021q: [Output Only] 802.1q encapsulation tag to be used for traffic + // between + // Google and the customer, going to and from this network and region. + Tag8021q int64 `json:"tag8021q,omitempty"` + // ForceSendFields is a list of field names (e.g. "Tag8021q") to // unconditionally include in API requests. By default, fields with empty or // default values are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. ForceSendFields []string `json:"-"` - // NullFields is a list of field names (e.g. "CollectorIlb") to include in API + // NullFields is a list of field names (e.g. "Tag8021q") to include in API // requests with the JSON null value. By default, fields with empty values are // omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } -func (s *PacketMirroring) MarshalJSON() ([]byte, error) { - type NoMethod PacketMirroring - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s InterconnectAttachmentPrivateInfo) MarshalJSON() ([]byte, error) { + type NoMethod InterconnectAttachmentPrivateInfo + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -// PacketMirroringAggregatedList: Contains a list of packetMirrorings. -type PacketMirroringAggregatedList struct { - // Id: [Output Only] Unique identifier for the resource; defined by the server. - Id string `json:"id,omitempty"` - // Items: A list of PacketMirroring resources. - Items map[string]PacketMirroringsScopedList `json:"items,omitempty"` - // Kind: Type of resource. - 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"` - // SelfLink: [Output Only] Server-defined URL for this resource. - SelfLink string `json:"selfLink,omitempty"` - // Unreachables: [Output Only] Unreachable resources. - Unreachables []string `json:"unreachables,omitempty"` - // Warning: [Output Only] Informational warning message. - Warning *PacketMirroringAggregatedListWarning `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 or default values are - // omitted from API requests. See +type InterconnectAttachmentsScopedList struct { + // InterconnectAttachments: A list of interconnect attachments contained in + // this scope. + InterconnectAttachments []*InterconnectAttachment `json:"interconnectAttachments,omitempty"` + // Warning: Informational warning which replaces the list of addresses when + // the list is empty. + Warning *InterconnectAttachmentsScopedListWarning `json:"warning,omitempty"` + // ForceSendFields is a list of field names (e.g. "InterconnectAttachments") to + // unconditionally include in API requests. By default, fields with empty or + // default values are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. 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. See + // NullFields is a list of field names (e.g. "InterconnectAttachments") to + // include in API requests with the JSON null value. By default, fields with + // empty values are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } -func (s *PacketMirroringAggregatedList) MarshalJSON() ([]byte, error) { - type NoMethod PacketMirroringAggregatedList - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s InterconnectAttachmentsScopedList) MarshalJSON() ([]byte, error) { + type NoMethod InterconnectAttachmentsScopedList + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -// PacketMirroringAggregatedListWarning: [Output Only] Informational warning -// message. -type PacketMirroringAggregatedListWarning 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. +// InterconnectAttachmentsScopedListWarning: Informational warning which +// replaces the list of addresses when +// the list is empty. +type InterconnectAttachmentsScopedListWarning 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" - Warning about failed cleanup of transient changes made - // by a failed operation. + // by a failed + // operation. // "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was created. // "DEPRECATED_TYPE_USED" - When deploying and at least one of the resources - // has a type marked as deprecated + // has a type marked as + // deprecated // "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk that is // larger than image size. // "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the - // resources has a type marked as experimental + // resources has a type marked as + // experimental // "EXTERNAL_API_WARNING" - Warning that is present in an external api call // "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been - // overridden. Deprecated unused field. + // overridden. + // Deprecated unused field. // "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an injected // kernel, which is deprecated. // "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB" - A WEIGHTED_MAGLEV backend - // service is associated with a health check that is not of type - // HTTP/HTTPS/HTTP2. + // service is associated with a health check that is + // not of type HTTP/HTTPS/HTTP2. // "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a // exceedingly large number of resources // "LIST_OVERHEAD_QUOTA_EXCEED" - Resource can't be retrieved due to list - // overhead quota exceed which captures the amount of resources filtered out by + // overhead quota exceed + // which captures the amount of resources filtered out by // user-defined list filter. // "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is not - // assigned to an instance on the network. + // assigned to an instance on the + // network. // "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot ip // forward. // "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE" - The route's nextHopInstance - // URL refers to an instance that does not have an ipv6 interface on the same - // network as the route. + // URL refers to an instance that does not have an + // ipv6 interface on the same network as the route. // "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL refers to // an instance that does not exist. // "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance URL - // refers to an instance that is not on the same network as the route. + // refers to an instance that is not on the + // same network as the route. // "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not have a // status of RUNNING. // "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to continue - // the process despite the mentioned error. + // the process despite + // the mentioned error. // "NO_RESULTS_ON_PAGE" - No results are present on a particular list page. // "PARTIAL_SUCCESS" - Success is reported, but some results may be missing // due to errors + // "QUOTA_INFO_UNAVAILABLE" - Quota information is not available to client + // requests (e.g: + // regions.list). // "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource that - // requires a TOS they have not accepted. + // requires a TOS they have not + // accepted. // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a resource is // in use. // "RESOURCE_NOT_DELETED" - One or more of the resources set to auto-delete - // could not be deleted because they were in use. + // could not be deleted + // because they were in use. // "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is // ignored. // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in instance - // group manager is valid as such, but its application does not make a lot of - // sense, because it allows only single instance in instance group. + // group manager is valid as such, but + // its application does not make a lot of sense, because it allows only + // single instance in instance group. // "UNDECLARED_PROPERTIES" - When undeclared properties in the schema are // present // "UNREACHABLE" - A given scope cannot be reached. 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 []*PacketMirroringAggregatedListWarningData `json:"data,omitempty"` + // Data: [Output Only] Metadata about this warning in key: + // value format. For example: + // + // "data": [ + // { + // "key": "scope", + // "value": "zones/us-east1-d" + // } + Data []*InterconnectAttachmentsScopedListWarningData `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 @@ -30991,19 +37006,22 @@ type PacketMirroringAggregatedListWarning struct { NullFields []string `json:"-"` } -func (s *PacketMirroringAggregatedListWarning) MarshalJSON() ([]byte, error) { - type NoMethod PacketMirroringAggregatedListWarning - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s InterconnectAttachmentsScopedListWarning) MarshalJSON() ([]byte, error) { + type NoMethod InterconnectAttachmentsScopedListWarning + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -type PacketMirroringAggregatedListWarningData 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). +type InterconnectAttachmentsScopedListWarningData 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"` @@ -31020,1366 +37038,984 @@ type PacketMirroringAggregatedListWarningData struct { NullFields []string `json:"-"` } -func (s *PacketMirroringAggregatedListWarningData) MarshalJSON() ([]byte, error) { - type NoMethod PacketMirroringAggregatedListWarningData - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s InterconnectAttachmentsScopedListWarningData) MarshalJSON() ([]byte, error) { + type NoMethod InterconnectAttachmentsScopedListWarningData + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -type PacketMirroringFilter struct { - // IPProtocols: Protocols that apply as filter on mirrored traffic. If no - // protocols are specified, all traffic that matches the specified CIDR ranges - // is mirrored. If neither cidrRanges nor IPProtocols is specified, all IPv4 - // traffic is mirrored. - IPProtocols []string `json:"IPProtocols,omitempty"` - // CidrRanges: One or more IPv4 or IPv6 CIDR ranges that apply as filters on - // the source (ingress) or destination (egress) IP in the IP header. If no - // ranges are specified, all IPv4 traffic that matches the specified - // IPProtocols is mirrored. If neither cidrRanges nor IPProtocols is specified, - // all IPv4 traffic is mirrored. To mirror all IPv4 and IPv6 traffic, use - // "0.0.0.0/0,::/0". - CidrRanges []string `json:"cidrRanges,omitempty"` - // Direction: Direction of traffic to mirror, either INGRESS, EGRESS, or BOTH. - // The default is BOTH. +// InterconnectCircuitInfo: Describes a single physical circuit between the +// Customer and Google. +// CircuitInfo objects are created by Google, so all fields are output only. +type InterconnectCircuitInfo struct { + // CustomerDemarcId: Customer-side demarc ID for this circuit. + CustomerDemarcId string `json:"customerDemarcId,omitempty"` + // GoogleCircuitId: Google-assigned unique ID for this circuit. Assigned at + // circuit turn-up. + GoogleCircuitId string `json:"googleCircuitId,omitempty"` + // GoogleDemarcId: Google-side demarc ID for this circuit. Assigned at circuit + // turn-up and + // provided by Google to the customer in the LOA. + GoogleDemarcId string `json:"googleDemarcId,omitempty"` + // ForceSendFields is a list of field names (e.g. "CustomerDemarcId") to + // unconditionally include in API requests. By default, fields with empty or + // default values are omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + ForceSendFields []string `json:"-"` + // NullFields is a list of field names (e.g. "CustomerDemarcId") to include in + // API requests with the JSON null value. By default, fields with empty values + // are omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s InterconnectCircuitInfo) MarshalJSON() ([]byte, error) { + type NoMethod InterconnectCircuitInfo + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +// InterconnectDiagnostics: Diagnostics information about the Interconnect +// connection, which contains +// detailed and current technical information about Google's side of +// the +// connection. +type InterconnectDiagnostics struct { + // ArpCaches: A list of InterconnectDiagnostics.ARPEntry objects, + // describing individual neighbors currently seen by the Google router in + // the ARP cache for the Interconnect. + // This will be empty when the Interconnect is not bundled. + ArpCaches []*InterconnectDiagnosticsARPEntry `json:"arpCaches,omitempty"` + // BundleAggregationType: The aggregation type of the bundle interface. // // Possible values: - // "BOTH" - Default, both directions are mirrored. - // "EGRESS" - Only egress traffic is mirrored. - // "INGRESS" - Only ingress traffic is mirrored. - Direction string `json:"direction,omitempty"` - // ForceSendFields is a list of field names (e.g. "IPProtocols") to + // "BUNDLE_AGGREGATION_TYPE_LACP" - LACP is enabled. + // "BUNDLE_AGGREGATION_TYPE_STATIC" - LACP is disabled. + BundleAggregationType string `json:"bundleAggregationType,omitempty"` + // BundleOperationalStatus: The operational status of the bundle interface. + // + // Possible values: + // "BUNDLE_OPERATIONAL_STATUS_DOWN" - If bundleAggregationType is LACP: LACP + // is not established and/or all + // links in the bundle have DOWN operational status. If + // bundleAggregationType is STATIC: one or more links in the bundle has + // DOWN operational status. + // "BUNDLE_OPERATIONAL_STATUS_UP" - If bundleAggregationType is LACP: LACP is + // established and at least one + // link in the bundle has UP operational status. If bundleAggregationType + // is STATIC: all links in the bundle (typically just one) have UP + // operational status. + BundleOperationalStatus string `json:"bundleOperationalStatus,omitempty"` + // Links: A list of InterconnectDiagnostics.LinkStatus objects, + // describing the status for each link on the Interconnect. + Links []*InterconnectDiagnosticsLinkStatus `json:"links,omitempty"` + // MacAddress: The MAC address of the Interconnect's bundle interface. + MacAddress string `json:"macAddress,omitempty"` + // ForceSendFields is a list of field names (e.g. "ArpCaches") to // unconditionally include in API requests. By default, fields with empty or // default values are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. ForceSendFields []string `json:"-"` - // NullFields is a list of field names (e.g. "IPProtocols") to include in API + // NullFields is a list of field names (e.g. "ArpCaches") to include in API // requests with the JSON null value. By default, fields with empty values are // omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } -func (s *PacketMirroringFilter) MarshalJSON() ([]byte, error) { - type NoMethod PacketMirroringFilter - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s InterconnectDiagnostics) MarshalJSON() ([]byte, error) { + type NoMethod InterconnectDiagnostics + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -type PacketMirroringForwardingRuleInfo struct { - // CanonicalUrl: [Output Only] Unique identifier for the forwarding rule; - // defined by the server. - CanonicalUrl string `json:"canonicalUrl,omitempty"` - // Url: Resource URL to the forwarding rule representing the ILB configured as - // destination of the mirrored traffic. - Url string `json:"url,omitempty"` - // ForceSendFields is a list of field names (e.g. "CanonicalUrl") to +// InterconnectDiagnosticsARPEntry: Describing the ARP neighbor entries seen on +// this link +type InterconnectDiagnosticsARPEntry struct { + // IpAddress: The IP address of this ARP neighbor. + IpAddress string `json:"ipAddress,omitempty"` + // MacAddress: The MAC address of this ARP neighbor. + MacAddress string `json:"macAddress,omitempty"` + // ForceSendFields is a list of field names (e.g. "IpAddress") to // unconditionally include in API requests. By default, fields with empty or // default values are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. ForceSendFields []string `json:"-"` - // NullFields is a list of field names (e.g. "CanonicalUrl") to include in API + // NullFields is a list of field names (e.g. "IpAddress") to include in API // requests with the JSON null value. By default, fields with empty values are // omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } -func (s *PacketMirroringForwardingRuleInfo) MarshalJSON() ([]byte, error) { - type NoMethod PacketMirroringForwardingRuleInfo - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s InterconnectDiagnosticsARPEntry) MarshalJSON() ([]byte, error) { + type NoMethod InterconnectDiagnosticsARPEntry + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -// PacketMirroringList: Contains a list of PacketMirroring resources. -type PacketMirroringList struct { - // Id: [Output Only] Unique identifier for the resource; defined by the server. - Id string `json:"id,omitempty"` - // Items: A list of PacketMirroring resources. - Items []*PacketMirroring `json:"items,omitempty"` - // Kind: [Output Only] Type of resource. Always compute#packetMirroring for - // packetMirrorings. - 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"` - // SelfLink: [Output Only] Server-defined URL for this resource. - SelfLink string `json:"selfLink,omitempty"` - // Warning: [Output Only] Informational warning message. - Warning *PacketMirroringListWarning `json:"warning,omitempty"` +type InterconnectDiagnosticsLinkLACPStatus struct { + // GoogleSystemId: System ID of the port on Google's side of the LACP exchange. + GoogleSystemId string `json:"googleSystemId,omitempty"` + // NeighborSystemId: System ID of the port on the neighbor's side of the LACP + // exchange. + NeighborSystemId string `json:"neighborSystemId,omitempty"` + // State: The state of a LACP link, which can take one of the following + // values: + // + // - ACTIVE: The link is configured and active within the bundle. + // - DETACHED: The link is not configured within the bundle. This means + // that the rest of the object should be empty. + // + // Possible values: + // "ACTIVE" - The link is configured and active within the bundle. + // "DETACHED" - The link is not configured within the bundle, this means the + // rest of + // the object should be empty. + State string `json:"state,omitempty"` + // ForceSendFields is a list of field names (e.g. "GoogleSystemId") to + // unconditionally include in API requests. By default, fields with empty or + // default values are omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + ForceSendFields []string `json:"-"` + // NullFields is a list of field names (e.g. "GoogleSystemId") to include in + // API requests with the JSON null value. By default, fields with empty values + // are omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} - // 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 +func (s InterconnectDiagnosticsLinkLACPStatus) MarshalJSON() ([]byte, error) { + type NoMethod InterconnectDiagnosticsLinkLACPStatus + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +type InterconnectDiagnosticsLinkOpticalPower struct { + // State: The status of the current value when compared to the warning and + // alarm + // levels for the receiving or transmitting transceiver. Possible + // states + // include: + // + // + // - OK: The value has not crossed a warning threshold. + // - LOW_WARNING: The value has crossed below the low + // warning threshold. + // - HIGH_WARNING: The value has + // crossed above the high warning threshold. + // - LOW_ALARM: The value has crossed below the low alarm + // threshold. + // - HIGH_ALARM: The value has crossed above the high alarm + // threshold. + // + // Possible values: + // "HIGH_ALARM" - The value has crossed above the high alarm threshold. + // "HIGH_WARNING" - The value of the current optical power has crossed above + // the high + // warning threshold. + // "LOW_ALARM" - The value of the current optical power has crossed below the + // low alarm + // threshold. + // "LOW_WARNING" - The value of the current optical power has crossed below + // the low + // warning threshold. + // "OK" - The value of the current optical power has not crossed a + // warning + // threshold. + State string `json:"state,omitempty"` + // Value: Value of the current receiving or transmitting optical power, read + // in + // dBm. Take a known good optical value, give it a 10% margin and + // trigger + // warnings relative to that value. In general, a -7dBm warning and a + // -11dBm + // alarm are good optical value estimates for most links. + Value float64 `json:"value,omitempty"` + // ForceSendFields is a list of field names (e.g. "State") to unconditionally // include in API requests. By default, fields with empty or default values are // omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. 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. See + // NullFields is a list of field names (e.g. "State") to include in API + // requests with the JSON null value. By default, fields with empty values are + // omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } -func (s *PacketMirroringList) MarshalJSON() ([]byte, error) { - type NoMethod PacketMirroringList - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s InterconnectDiagnosticsLinkOpticalPower) MarshalJSON() ([]byte, error) { + type NoMethod InterconnectDiagnosticsLinkOpticalPower + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -// PacketMirroringListWarning: [Output Only] Informational warning message. -type PacketMirroringListWarning 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. +func (s *InterconnectDiagnosticsLinkOpticalPower) UnmarshalJSON(data []byte) error { + type NoMethod InterconnectDiagnosticsLinkOpticalPower + var s1 struct { + Value gensupport.JSONFloat64 `json:"value"` + *NoMethod + } + s1.NoMethod = (*NoMethod)(s) + if err := json.Unmarshal(data, &s1); err != nil { + return err + } + s.Value = float64(s1.Value) + return nil +} + +type InterconnectDiagnosticsLinkStatus struct { + // ArpCaches: A list of InterconnectDiagnostics.ARPEntry objects, + // describing the ARP neighbor entries seen on this link. + // This will be empty if the link is bundled + ArpCaches []*InterconnectDiagnosticsARPEntry `json:"arpCaches,omitempty"` + // CircuitId: The unique ID for this link assigned during turn up by Google. + CircuitId string `json:"circuitId,omitempty"` + // GoogleDemarc: The Demarc address assigned by Google and provided in the LoA. + GoogleDemarc string `json:"googleDemarc,omitempty"` + LacpStatus *InterconnectDiagnosticsLinkLACPStatus `json:"lacpStatus,omitempty"` + // Macsec: Describes the status of MACsec encryption on this link. + Macsec *InterconnectDiagnosticsMacsecStatus `json:"macsec,omitempty"` + // OperationalStatus: The operational status of the link. // // Possible values: - // "CLEANUP_FAILED" - Warning about failed cleanup of transient changes made - // by a failed operation. - // "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was created. - // "DEPRECATED_TYPE_USED" - When deploying and at least one of the resources - // has a type marked as deprecated - // "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk that is - // larger than image size. - // "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the - // resources has a type marked as experimental - // "EXTERNAL_API_WARNING" - Warning that is present in an external api call - // "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been - // overridden. Deprecated unused field. - // "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an injected - // kernel, which is deprecated. - // "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB" - A WEIGHTED_MAGLEV backend - // service is associated with a health check that is not of type - // HTTP/HTTPS/HTTP2. - // "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a - // exceedingly large number of resources - // "LIST_OVERHEAD_QUOTA_EXCEED" - Resource can't be retrieved due to list - // overhead quota exceed which captures the amount of resources filtered out by - // user-defined list filter. - // "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type - // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is not - // assigned to an instance on the network. - // "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot ip - // forward. - // "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE" - The route's nextHopInstance - // URL refers to an instance that does not have an ipv6 interface on the same - // network as the route. - // "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL refers to - // an instance that does not exist. - // "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance URL - // refers to an instance that is not on the same network as the route. - // "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not have a - // status of RUNNING. - // "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to continue - // the process despite the mentioned error. - // "NO_RESULTS_ON_PAGE" - No results are present on a particular list page. - // "PARTIAL_SUCCESS" - Success is reported, but some results may be missing - // due to errors - // "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource that - // requires a TOS they have not accepted. - // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a resource is - // in use. - // "RESOURCE_NOT_DELETED" - One or more of the resources set to auto-delete - // could not be deleted because they were in use. - // "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is - // ignored. - // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in instance - // group manager is valid as such, but its application does not make a lot of - // sense, because it allows only single instance in instance group. - // "UNDECLARED_PROPERTIES" - When undeclared properties in the schema are - // present - // "UNREACHABLE" - A given scope cannot be reached. - 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 []*PacketMirroringListWarningData `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 or default values are - // omitted from API requests. See + // "LINK_OPERATIONAL_STATUS_DOWN" - The interface is unable to communicate + // with the remote end. + // "LINK_OPERATIONAL_STATUS_UP" - The interface has low level communication + // with the remote end. + OperationalStatus string `json:"operationalStatus,omitempty"` + // ReceivingOpticalPower: An InterconnectDiagnostics.LinkOpticalPower + // object, + // describing the current value and status of the received light level. + ReceivingOpticalPower *InterconnectDiagnosticsLinkOpticalPower `json:"receivingOpticalPower,omitempty"` + // TransmittingOpticalPower: An InterconnectDiagnostics.LinkOpticalPower + // object, + // describing the current value and status of the transmitted light level. + TransmittingOpticalPower *InterconnectDiagnosticsLinkOpticalPower `json:"transmittingOpticalPower,omitempty"` + // ForceSendFields is a list of field names (e.g. "ArpCaches") to + // unconditionally include in API requests. By default, fields with empty or + // default values are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. 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. See + // NullFields is a list of field names (e.g. "ArpCaches") to include in API + // requests with the JSON null value. By default, fields with empty values are + // omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } -func (s *PacketMirroringListWarning) MarshalJSON() ([]byte, error) { - type NoMethod PacketMirroringListWarning - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s InterconnectDiagnosticsLinkStatus) MarshalJSON() ([]byte, error) { + type NoMethod InterconnectDiagnosticsLinkStatus + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -type PacketMirroringListWarningData 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 +// InterconnectDiagnosticsMacsecStatus: Describes the status of MACsec +// encryption on the link. +type InterconnectDiagnosticsMacsecStatus struct { + // Ckn: Indicates the Connectivity Association Key Name (CKN) + // currently being used if MACsec is operational. + Ckn string `json:"ckn,omitempty"` + // Operational: Indicates whether or not MACsec is operational on this link. + Operational bool `json:"operational,omitempty"` + // ForceSendFields is a list of field names (e.g. "Ckn") to unconditionally // include in API requests. By default, fields with empty or default values are // omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. ForceSendFields []string `json:"-"` - // NullFields is a list of field names (e.g. "Key") to include in API requests + // NullFields is a list of field names (e.g. "Ckn") to include in API requests // with the JSON null value. By default, fields with empty values are omitted // from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } -func (s *PacketMirroringListWarningData) MarshalJSON() ([]byte, error) { - type NoMethod PacketMirroringListWarningData - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s InterconnectDiagnosticsMacsecStatus) MarshalJSON() ([]byte, error) { + type NoMethod InterconnectDiagnosticsMacsecStatus + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -type PacketMirroringMirroredResourceInfo struct { - // Instances: A set of virtual machine instances that are being mirrored. They - // must live in zones contained in the same region as this packetMirroring. - // Note that this config will apply only to those network interfaces of the - // Instances that belong to the network specified in this packetMirroring. You - // may specify a maximum of 50 Instances. - Instances []*PacketMirroringMirroredResourceInfoInstanceInfo `json:"instances,omitempty"` - // Subnetworks: A set of subnetworks for which traffic from/to all VM instances - // will be mirrored. They must live in the same region as this packetMirroring. - // You may specify a maximum of 5 subnetworks. - Subnetworks []*PacketMirroringMirroredResourceInfoSubnetInfo `json:"subnetworks,omitempty"` - // Tags: A set of mirrored tags. Traffic from/to all VM instances that have one - // or more of these tags will be mirrored. - Tags []string `json:"tags,omitempty"` - // ForceSendFields is a list of field names (e.g. "Instances") to +// InterconnectGroup: An interconnect group resource allows customers to +// create, analyze, and +// expand their redundant connections. +type InterconnectGroup struct { + Configured *InterconnectGroupConfigured `json:"configured,omitempty"` + // CreationTimestamp: Output only. [Output Only] Creation timestamp + // inRFC3339 + // text format. + CreationTimestamp string `json:"creationTimestamp,omitempty"` + // Description: An optional description of this resource. Provide this property + // when you + // create the resource. + Description string `json:"description,omitempty"` + // Etag: Opaque system-generated token that uniquely identifies the + // configuration. + // If provided when patching a configuration in update mode, the provided + // token must match the current token or the update is rejected. This + // provides + // a reliable means of doing read-modify-write (optimistic locking) + // as + // described by AIP 154. + Etag string `json:"etag,omitempty"` + // Id: Output only. [Output Only] The unique identifier for the resource type. + // The server + // generates this identifier. + Id uint64 `json:"id,omitempty,string"` + Intent *InterconnectGroupIntent `json:"intent,omitempty"` + // Interconnects: Interconnects in the InterconnectGroup. Keys are arbitrary + // user-specified + // strings. Users are encouraged, but not required, to use their + // preferred + // format for resource links as keys. + // Note that there are add-members and remove-members methods in gcloud. + // The size of this map is limited by an "Interconnects per group" quota. + Interconnects map[string]InterconnectGroupInterconnect `json:"interconnects,omitempty"` + // Kind: Output only. [Output Only] Type of the resource. Always + // compute#InterconnectGroup + Kind string `json:"kind,omitempty"` + // Name: Name of the resource. Provided by the client when the resource is + // created. + // The name must be 1-63 characters long, and comply withRFC1035. + // 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. + Name string `json:"name,omitempty"` + PhysicalStructure *InterconnectGroupPhysicalStructure `json:"physicalStructure,omitempty"` + // SelfLink: Output only. [Output Only] Server-defined URL for the resource. + SelfLink string `json:"selfLink,omitempty"` + + // ServerResponse contains the HTTP response code and headers from the server. + googleapi.ServerResponse `json:"-"` + // ForceSendFields is a list of field names (e.g. "Configured") to // unconditionally include in API requests. By default, fields with empty or // default values are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. ForceSendFields []string `json:"-"` - // NullFields is a list of field names (e.g. "Instances") to include in API + // NullFields is a list of field names (e.g. "Configured") to include in API // requests with the JSON null value. By default, fields with empty values are // omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } -func (s *PacketMirroringMirroredResourceInfo) MarshalJSON() ([]byte, error) { - type NoMethod PacketMirroringMirroredResourceInfo - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s InterconnectGroup) MarshalJSON() ([]byte, error) { + type NoMethod InterconnectGroup + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -type PacketMirroringMirroredResourceInfoInstanceInfo struct { - // CanonicalUrl: [Output Only] Unique identifier for the instance; defined by - // the server. - CanonicalUrl string `json:"canonicalUrl,omitempty"` - // Url: Resource URL to the virtual machine instance which is being mirrored. - Url string `json:"url,omitempty"` - // ForceSendFields is a list of field names (e.g. "CanonicalUrl") to +// InterconnectGroupConfigured: [Output Only] The status of the group as +// configured. This has the same +// structure as the operational field reported by the OperationalStatus +// method, but does not take into account the operational status of +// each +// resource. +type InterconnectGroupConfigured struct { + TopologyCapability *InterconnectGroupConfiguredTopologyCapability `json:"topologyCapability,omitempty"` + // ForceSendFields is a list of field names (e.g. "TopologyCapability") to // unconditionally include in API requests. By default, fields with empty or // default values are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. ForceSendFields []string `json:"-"` - // NullFields is a list of field names (e.g. "CanonicalUrl") to include in API - // requests with the JSON null value. By default, fields with empty values are - // omitted from API requests. See + // NullFields is a list of field names (e.g. "TopologyCapability") to include + // in API requests with the JSON null value. By default, fields with empty + // values are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } -func (s *PacketMirroringMirroredResourceInfoInstanceInfo) MarshalJSON() ([]byte, error) { - type NoMethod PacketMirroringMirroredResourceInfoInstanceInfo - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s InterconnectGroupConfigured) MarshalJSON() ([]byte, error) { + type NoMethod InterconnectGroupConfigured + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -type PacketMirroringMirroredResourceInfoSubnetInfo struct { - // CanonicalUrl: [Output Only] Unique identifier for the subnetwork; defined by - // the server. - CanonicalUrl string `json:"canonicalUrl,omitempty"` - // Url: Resource URL to the subnetwork for which traffic from/to all VM - // instances will be mirrored. - Url string `json:"url,omitempty"` - // ForceSendFields is a list of field names (e.g. "CanonicalUrl") to - // unconditionally include in API requests. By default, fields with empty or +// InterconnectGroupConfiguredTopologyCapability: [Output Only] How reliable +// this topology is configured to be, and why +// this group does or does not meet the requirements for the +// intended +// capability. +type InterconnectGroupConfiguredTopologyCapability struct { + IntendedCapabilityBlockers []*InterconnectGroupConfiguredTopologyCapabilityIntendedCapabilityBlockers `json:"intendedCapabilityBlockers,omitempty"` + // Possible values: + // "NO_SLA" + // "PRODUCTION_CRITICAL" + // "PRODUCTION_NON_CRITICAL" + // "UNSPECIFIED" + SupportedSla string `json:"supportedSla,omitempty"` + // ForceSendFields is a list of field names (e.g. "IntendedCapabilityBlockers") + // to unconditionally include in API requests. By default, fields with empty or // default values are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. ForceSendFields []string `json:"-"` - // NullFields is a list of field names (e.g. "CanonicalUrl") to include in API - // requests with the JSON null value. By default, fields with empty values are - // omitted from API requests. See + // NullFields is a list of field names (e.g. "IntendedCapabilityBlockers") to + // include in API requests with the JSON null value. By default, fields with + // empty values are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } -func (s *PacketMirroringMirroredResourceInfoSubnetInfo) MarshalJSON() ([]byte, error) { - type NoMethod PacketMirroringMirroredResourceInfoSubnetInfo - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s InterconnectGroupConfiguredTopologyCapability) MarshalJSON() ([]byte, error) { + type NoMethod InterconnectGroupConfiguredTopologyCapability + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -type PacketMirroringNetworkInfo struct { - // CanonicalUrl: [Output Only] Unique identifier for the network; defined by - // the server. - CanonicalUrl string `json:"canonicalUrl,omitempty"` - // Url: URL of the network resource. - Url string `json:"url,omitempty"` - // ForceSendFields is a list of field names (e.g. "CanonicalUrl") to +// InterconnectGroupConfiguredTopologyCapabilityIntendedCapabilityBlockers: +// [Output Only] Reasons why configuration.topologyCapability.sla differs +// from intent.topologyCapability. This list is empty if and only if those +// are the same. +type InterconnectGroupConfiguredTopologyCapabilityIntendedCapabilityBlockers struct { + // Possible values: + // "INCOMPATIBLE_METROS" + // "NOT_AVAILABLE" + // "NO_INTERCONNECTS" + // "NO_INTERCONNECTS_IN_METRO_AND_ZONE" + // "OTHER" + // "UNSPECIFIED" + BlockerType string `json:"blockerType,omitempty"` + // DocumentationLink: Output only. [Output Only] The url of Google Cloud public + // documentation explaining + // this requirement. This is set for every type of requirement. + DocumentationLink string `json:"documentationLink,omitempty"` + // Explanation: Output only. [Output Only] A human-readable explanation of this + // requirement and + // why it's not met. This is set for every type of requirement. + Explanation string `json:"explanation,omitempty"` + // Facilities: Output only. [Output Only] Facilities used to explain this + // blocker in more detail. + // Like physicalStructure.metros.facilities.facility, this is a numeric + // string like "5467". + Facilities []string `json:"facilities,omitempty"` + // Interconnects: Output only. [Output Only] Interconnects used to explain this + // blocker in more + // detail. + Interconnects []string `json:"interconnects,omitempty"` + // Metros: Output only. [Output Only] Metros used to explain this blocker in + // more detail. + // These are three-letter lowercase strings like "iad". A blocker + // like + // INCOMPATIBLE_METROS will specify the problematic metros in this + // field. + Metros []string `json:"metros,omitempty"` + // Zones: Output only. [Output Only] Zones used to explain this blocker in more + // detail. + // Zone names are "zone1" and/or "zone2". + Zones []string `json:"zones,omitempty"` + // ForceSendFields is a list of field names (e.g. "BlockerType") to // unconditionally include in API requests. By default, fields with empty or // default values are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. ForceSendFields []string `json:"-"` - // NullFields is a list of field names (e.g. "CanonicalUrl") to include in API + // NullFields is a list of field names (e.g. "BlockerType") to include in API // requests with the JSON null value. By default, fields with empty values are // omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } -func (s *PacketMirroringNetworkInfo) MarshalJSON() ([]byte, error) { - type NoMethod PacketMirroringNetworkInfo - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s InterconnectGroupConfiguredTopologyCapabilityIntendedCapabilityBlockers) MarshalJSON() ([]byte, error) { + type NoMethod InterconnectGroupConfiguredTopologyCapabilityIntendedCapabilityBlockers + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -type PacketMirroringsScopedList struct { - // PacketMirrorings: A list of packetMirrorings contained in this scope. - PacketMirrorings []*PacketMirroring `json:"packetMirrorings,omitempty"` - // Warning: Informational warning which replaces the list of packetMirrorings - // when the list is empty. - Warning *PacketMirroringsScopedListWarning `json:"warning,omitempty"` - // ForceSendFields is a list of field names (e.g. "PacketMirrorings") to +// InterconnectGroupIntent: The user's intent for this group. This is the only +// required field besides +// the name that must be specified on group creation. +type InterconnectGroupIntent struct { + // Possible values: + // "NO_SLA" + // "PRODUCTION_CRITICAL" + // "PRODUCTION_NON_CRITICAL" + // "UNSPECIFIED" + TopologyCapability string `json:"topologyCapability,omitempty"` + // ForceSendFields is a list of field names (e.g. "TopologyCapability") to // unconditionally include in API requests. By default, fields with empty or // default values are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. ForceSendFields []string `json:"-"` - // NullFields is a list of field names (e.g. "PacketMirrorings") to include in - // API requests with the JSON null value. By default, fields with empty values - // are omitted from API requests. See + // NullFields is a list of field names (e.g. "TopologyCapability") to include + // in API requests with the JSON null value. By default, fields with empty + // values are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } -func (s *PacketMirroringsScopedList) MarshalJSON() ([]byte, error) { - type NoMethod PacketMirroringsScopedList - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s InterconnectGroupIntent) MarshalJSON() ([]byte, error) { + type NoMethod InterconnectGroupIntent + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -// PacketMirroringsScopedListWarning: Informational warning which replaces the -// list of packetMirrorings when the list is empty. -type PacketMirroringsScopedListWarning 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" - Warning about failed cleanup of transient changes made - // by a failed operation. - // "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was created. - // "DEPRECATED_TYPE_USED" - When deploying and at least one of the resources - // has a type marked as deprecated - // "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk that is - // larger than image size. - // "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the - // resources has a type marked as experimental - // "EXTERNAL_API_WARNING" - Warning that is present in an external api call - // "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been - // overridden. Deprecated unused field. - // "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an injected - // kernel, which is deprecated. - // "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB" - A WEIGHTED_MAGLEV backend - // service is associated with a health check that is not of type - // HTTP/HTTPS/HTTP2. - // "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a - // exceedingly large number of resources - // "LIST_OVERHEAD_QUOTA_EXCEED" - Resource can't be retrieved due to list - // overhead quota exceed which captures the amount of resources filtered out by - // user-defined list filter. - // "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type - // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is not - // assigned to an instance on the network. - // "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot ip - // forward. - // "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE" - The route's nextHopInstance - // URL refers to an instance that does not have an ipv6 interface on the same - // network as the route. - // "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL refers to - // an instance that does not exist. - // "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance URL - // refers to an instance that is not on the same network as the route. - // "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not have a - // status of RUNNING. - // "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to continue - // the process despite the mentioned error. - // "NO_RESULTS_ON_PAGE" - No results are present on a particular list page. - // "PARTIAL_SUCCESS" - Success is reported, but some results may be missing - // due to errors - // "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource that - // requires a TOS they have not accepted. - // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a resource is - // in use. - // "RESOURCE_NOT_DELETED" - One or more of the resources set to auto-delete - // could not be deleted because they were in use. - // "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is - // ignored. - // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in instance - // group manager is valid as such, but its application does not make a lot of - // sense, because it allows only single instance in instance group. - // "UNDECLARED_PROPERTIES" - When undeclared properties in the schema are - // present - // "UNREACHABLE" - A given scope cannot be reached. - 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 []*PacketMirroringsScopedListWarningData `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 or default values are - // omitted from API requests. See - // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more - // details. - 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. See - // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. - NullFields []string `json:"-"` -} - -func (s *PacketMirroringsScopedListWarning) MarshalJSON() ([]byte, error) { - type NoMethod PacketMirroringsScopedListWarning - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) -} - -type PacketMirroringsScopedListWarningData 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 or default values are - // omitted from API requests. See - // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more - // details. - 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. See - // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. - NullFields []string `json:"-"` -} - -func (s *PacketMirroringsScopedListWarningData) MarshalJSON() ([]byte, error) { - type NoMethod PacketMirroringsScopedListWarningData - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) -} - -// PathMatcher: A matcher for the path portion of the URL. The BackendService -// from the longest-matched rule will serve the URL. If no rule was matched, -// the default service is used. -type PathMatcher struct { - // DefaultRouteAction: defaultRouteAction takes effect when none of the - // pathRules or routeRules match. The load balancer performs advanced routing - // actions, such as URL rewrites and header transformations, before forwarding - // the request to the selected backend. If defaultRouteAction specifies any - // weightedBackendServices, defaultService must not be set. Conversely if - // defaultService is set, defaultRouteAction cannot contain any - // weightedBackendServices. If defaultRouteAction is specified, don't set - // defaultUrlRedirect. If defaultRouteAction.weightedBackendServices is - // specified, don't set defaultService. URL maps for classic Application Load - // Balancers only support the urlRewrite action within a path matcher's - // defaultRouteAction. - DefaultRouteAction *HttpRouteAction `json:"defaultRouteAction,omitempty"` - // DefaultService: The full or partial URL to the BackendService resource. This - // URL is used if none of the pathRules or routeRules defined by this - // PathMatcher are matched. For example, the following are all valid URLs to a - // BackendService resource: - - // https://www.googleapis.com/compute/v1/projects/project - // /global/backendServices/backendService - - // compute/v1/projects/project/global/backendServices/backendService - - // global/backendServices/backendService If defaultRouteAction is also - // specified, advanced routing actions, such as URL rewrites, take effect - // before sending the request to the backend. However, if defaultService is - // specified, defaultRouteAction cannot contain any weightedBackendServices. - // Conversely, if defaultRouteAction specifies any weightedBackendServices, - // defaultService must not be specified. If defaultService is specified, then - // set either defaultUrlRedirect or defaultRouteAction.weightedBackendService. - // Don't set both. Authorization requires one or more of the following Google - // IAM permissions on the specified resource default_service: - - // compute.backendBuckets.use - compute.backendServices.use - DefaultService string `json:"defaultService,omitempty"` - // DefaultUrlRedirect: When none of the specified pathRules or routeRules - // match, the request is redirected to a URL specified by defaultUrlRedirect. - // If defaultUrlRedirect is specified, then set either defaultService or - // defaultRouteAction. Don't set both. Not supported when the URL map is bound - // to a target gRPC proxy. - DefaultUrlRedirect *HttpRedirectAction `json:"defaultUrlRedirect,omitempty"` - // Description: An optional description of this resource. Provide this property - // when you create the resource. - Description string `json:"description,omitempty"` - // HeaderAction: Specifies changes to request and response headers that need to - // take effect for the selected backend service. HeaderAction specified here - // are applied after the matching HttpRouteRule HeaderAction and before the - // HeaderAction in the UrlMap HeaderAction is not supported for load balancers - // that have their loadBalancingScheme set to EXTERNAL. Not supported when the - // URL map is bound to a target gRPC proxy that has validateForProxyless field - // set to true. - HeaderAction *HttpHeaderAction `json:"headerAction,omitempty"` - // Name: The name to which this PathMatcher is referred by the HostRule. - Name string `json:"name,omitempty"` - // PathRules: The list of path rules. Use this list instead of routeRules when - // routing based on simple path matching is all that's required. The order by - // which path rules are specified does not matter. Matches are always done on - // the longest-path-first basis. For example: a pathRule with a path /a/b/c/* - // will match before /a/b/* irrespective of the order in which those paths - // appear in this list. Within a given pathMatcher, only one of pathRules or - // routeRules must be set. - PathRules []*PathRule `json:"pathRules,omitempty"` - // RouteRules: The list of HTTP route rules. Use this list instead of pathRules - // when advanced route matching and routing actions are desired. routeRules are - // evaluated in order of priority, from the lowest to highest number. Within a - // given pathMatcher, you can set only one of pathRules or routeRules. - RouteRules []*HttpRouteRule `json:"routeRules,omitempty"` - // ForceSendFields is a list of field names (e.g. "DefaultRouteAction") to +// InterconnectGroupInterconnect: An Interconnect in this InterconnectGroup. +type InterconnectGroupInterconnect struct { + // Interconnect: The URL of an Interconnect in this group. All Interconnects in + // the group + // are unique. + Interconnect string `json:"interconnect,omitempty"` + // ForceSendFields is a list of field names (e.g. "Interconnect") to // unconditionally include in API requests. By default, fields with empty or // default values are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. ForceSendFields []string `json:"-"` - // NullFields is a list of field names (e.g. "DefaultRouteAction") to include - // in API requests with the JSON null value. By default, fields with empty - // values are omitted from API requests. See + // NullFields is a list of field names (e.g. "Interconnect") to include in API + // requests with the JSON null value. By default, fields with empty values are + // omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } -func (s *PathMatcher) MarshalJSON() ([]byte, error) { - type NoMethod PathMatcher - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s InterconnectGroupInterconnect) MarshalJSON() ([]byte, error) { + type NoMethod InterconnectGroupInterconnect + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -// PathRule: A path-matching rule for a URL. If matched, will use the specified -// BackendService to handle the traffic arriving at this URL. -type PathRule struct { - // Paths: The list of path patterns to match. Each must start with / and the - // only place a * is allowed is at the end following a /. The string fed to the - // path matcher does not include any text after the first ? or #, and those - // chars are not allowed here. - Paths []string `json:"paths,omitempty"` - // RouteAction: In response to a matching path, the load balancer performs - // advanced routing actions, such as URL rewrites and header transformations, - // before forwarding the request to the selected backend. If routeAction - // specifies any weightedBackendServices, service must not be set. Conversely - // if service is set, routeAction cannot contain any weightedBackendServices. - // Only one of routeAction or urlRedirect must be set. URL maps for classic - // Application Load Balancers only support the urlRewrite action within a path - // rule's routeAction. - RouteAction *HttpRouteAction `json:"routeAction,omitempty"` - // Service: The full or partial URL of the backend service resource to which - // traffic is directed if this rule is matched. If routeAction is also - // specified, advanced routing actions, such as URL rewrites, take effect - // before sending the request to the backend. However, if service is specified, - // routeAction cannot contain any weightedBackendServices. Conversely, if - // routeAction specifies any weightedBackendServices, service must not be - // specified. Only one of urlRedirect, service or - // routeAction.weightedBackendService must be set. - Service string `json:"service,omitempty"` - // UrlRedirect: When a path pattern is matched, the request is redirected to a - // URL specified by urlRedirect. If urlRedirect is specified, service or - // routeAction must not be set. Not supported when the URL map is bound to a - // target gRPC proxy. - UrlRedirect *HttpRedirectAction `json:"urlRedirect,omitempty"` - // ForceSendFields is a list of field names (e.g. "Paths") to unconditionally +// InterconnectGroupPhysicalStructure: [Output Only] An analysis of the +// physical layout of Interconnects in this +// group. Every Interconnect in the group is shown once in this structure. +type InterconnectGroupPhysicalStructure struct { + Metros []*InterconnectGroupPhysicalStructureMetros `json:"metros,omitempty"` + // ForceSendFields is a list of field names (e.g. "Metros") to unconditionally // include in API requests. By default, fields with empty or default values are // omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. ForceSendFields []string `json:"-"` - // NullFields is a list of field names (e.g. "Paths") to include in API + // NullFields is a list of field names (e.g. "Metros") to include in API // requests with the JSON null value. By default, fields with empty values are // omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } -func (s *PathRule) MarshalJSON() ([]byte, error) { - type NoMethod PathRule - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s InterconnectGroupPhysicalStructure) MarshalJSON() ([]byte, error) { + type NoMethod InterconnectGroupPhysicalStructure + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -type PerInstanceConfig struct { - // Fingerprint: Fingerprint of this per-instance config. This field can be used - // in optimistic locking. It is ignored when inserting a per-instance config. - // An up-to-date fingerprint must be provided in order to update an existing - // per-instance configuration or the field needs to be unset. - Fingerprint string `json:"fingerprint,omitempty"` - // Name: The name of a per-instance configuration and its corresponding - // instance. Serves as a merge key during UpdatePerInstanceConfigs operations, - // that is, if a per-instance configuration with the same name exists then it - // will be updated, otherwise a new one will be created for the VM instance - // with the same name. An attempt to create a per-instance configconfiguration - // for a VM instance that either doesn't exist or is not part of the group will - // result in an error. - Name string `json:"name,omitempty"` - // PreservedState: The intended preserved state for the given instance. Does - // not contain preserved state generated from a stateful policy. - PreservedState *PreservedState `json:"preservedState,omitempty"` - // Status: The status of applying this per-instance configuration on the - // corresponding managed instance. - // - // Possible values: - // "APPLYING" - The per-instance configuration is being applied to the - // instance, but is not yet effective, possibly waiting for the instance to, - // for example, REFRESH. - // "DELETING" - The per-instance configuration deletion is being applied on - // the instance, possibly waiting for the instance to, for example, REFRESH. - // "EFFECTIVE" - The per-instance configuration is effective on the instance, - // meaning that all disks, ips and metadata specified in this configuration are - // attached or set on the instance. - // "NONE" - *[Default]* The default status, when no per-instance - // configuration exists. - // "UNAPPLIED" - The per-instance configuration is set on an instance but not - // been applied yet. - // "UNAPPLIED_DELETION" - The per-instance configuration has been deleted, - // but the deletion is not yet applied. - Status string `json:"status,omitempty"` - // ForceSendFields is a list of field names (e.g. "Fingerprint") to +// InterconnectGroupPhysicalStructureMetros: [Output Only] The metros +// Interconnects in this group are in. +type InterconnectGroupPhysicalStructureMetros struct { + Facilities []*InterconnectGroupPhysicalStructureMetrosFacilities `json:"facilities,omitempty"` + // Metro: Output only. [Output Only] The name of the metro, as a three-letter + // lowercase string + // like "iad". This is the first component of the location of + // Interconnects underneath this. + Metro string `json:"metro,omitempty"` + // ForceSendFields is a list of field names (e.g. "Facilities") to // unconditionally include in API requests. By default, fields with empty or // default values are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. ForceSendFields []string `json:"-"` - // NullFields is a list of field names (e.g. "Fingerprint") to include in API + // NullFields is a list of field names (e.g. "Facilities") to include in API // requests with the JSON null value. By default, fields with empty values are // omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } -func (s *PerInstanceConfig) MarshalJSON() ([]byte, error) { - type NoMethod PerInstanceConfig - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s InterconnectGroupPhysicalStructureMetros) MarshalJSON() ([]byte, error) { + type NoMethod InterconnectGroupPhysicalStructureMetros + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -// Policy: An Identity and Access Management (IAM) policy, which specifies -// access controls for Google Cloud resources. A `Policy` is a collection of -// `bindings`. A `binding` binds one or more `members`, or principals, to a -// single `role`. Principals can be user accounts, service accounts, Google -// groups, and domains (such as G Suite). A `role` is a named list of -// permissions; each `role` can be an IAM predefined role or a user-created -// custom role. For some types of Google Cloud resources, a `binding` can also -// specify a `condition`, which is a logical expression that allows access to a -// resource only if the expression evaluates to `true`. A condition can add -// constraints based on attributes of the request, the resource, or both. To -// learn which resources support conditions in their IAM policies, see the IAM -// documentation -// (https://cloud.google.com/iam/help/conditions/resource-policies). **JSON -// example:** ``` { "bindings": [ { "role": -// "roles/resourcemanager.organizationAdmin", "members": [ -// "user:mike@example.com", "group:admins@example.com", "domain:google.com", -// "serviceAccount:my-project-id@appspot.gserviceaccount.com" ] }, { "role": -// "roles/resourcemanager.organizationViewer", "members": [ -// "user:eve@example.com" ], "condition": { "title": "expirable access", -// "description": "Does not grant access after Sep 2020", "expression": -// "request.time < timestamp('2020-10-01T00:00:00.000Z')", } } ], "etag": -// "BwWWja0YfJA=", "version": 3 } ``` **YAML example:** ``` bindings: - -// members: - user:mike@example.com - group:admins@example.com - -// domain:google.com - serviceAccount:my-project-id@appspot.gserviceaccount.com -// role: roles/resourcemanager.organizationAdmin - members: - -// user:eve@example.com role: roles/resourcemanager.organizationViewer -// condition: title: expirable access description: Does not grant access after -// Sep 2020 expression: request.time < timestamp('2020-10-01T00:00:00.000Z') -// etag: BwWWja0YfJA= version: 3 ``` For a description of IAM and its features, -// see the IAM documentation (https://cloud.google.com/iam/docs/). -type Policy struct { - // AuditConfigs: Specifies cloud audit logging configuration for this policy. - AuditConfigs []*AuditConfig `json:"auditConfigs,omitempty"` - // Bindings: Associates a list of `members`, or principals, with a `role`. - // Optionally, may specify a `condition` that determines how and when the - // `bindings` are applied. Each of the `bindings` must contain at least one - // principal. The `bindings` in a `Policy` can refer to up to 1,500 principals; - // up to 250 of these principals can be Google groups. Each occurrence of a - // principal counts towards these limits. For example, if the `bindings` grant - // 50 different roles to `user:alice@example.com`, and not to any other - // principal, then you can add another 1,450 principals to the `bindings` in - // the `Policy`. - Bindings []*Binding `json:"bindings,omitempty"` - // Etag: `etag` is used for optimistic concurrency control as a way to help - // prevent simultaneous updates of a policy from overwriting each other. It is - // strongly suggested that systems make use of the `etag` in the - // read-modify-write cycle to perform policy updates in order to avoid race - // conditions: An `etag` is returned in the response to `getIamPolicy`, and - // systems are expected to put that etag in the request to `setIamPolicy` to - // ensure that their change will be applied to the same version of the policy. - // **Important:** If you use IAM Conditions, you must include the `etag` field - // whenever you call `setIamPolicy`. If you omit this field, then IAM allows - // you to overwrite a version `3` policy with a version `1` policy, and all of - // the conditions in the version `3` policy are lost. - Etag string `json:"etag,omitempty"` - // Rules: This is deprecated and has no effect. Do not use. - Rules []*Rule `json:"rules,omitempty"` - // Version: Specifies the format of the policy. Valid values are `0`, `1`, and - // `3`. Requests that specify an invalid value are rejected. Any operation that - // affects conditional role bindings must specify version `3`. This requirement - // applies to the following operations: * Getting a policy that includes a - // conditional role binding * Adding a conditional role binding to a policy * - // Changing a conditional role binding in a policy * Removing any role binding, - // with or without a condition, from a policy that includes conditions - // **Important:** If you use IAM Conditions, you must include the `etag` field - // whenever you call `setIamPolicy`. If you omit this field, then IAM allows - // you to overwrite a version `3` policy with a version `1` policy, and all of - // the conditions in the version `3` policy are lost. If a policy does not - // include any conditions, operations on that policy may specify any valid - // version or leave the field unset. To learn which resources support - // conditions in their IAM policies, see the IAM documentation - // (https://cloud.google.com/iam/help/conditions/resource-policies). - Version int64 `json:"version,omitempty"` - - // ServerResponse contains the HTTP response code and headers from the server. - googleapi.ServerResponse `json:"-"` - // ForceSendFields is a list of field names (e.g. "AuditConfigs") to +// InterconnectGroupPhysicalStructureMetrosFacilities: [Output Only] The +// facilities Interconnects in this metro are present +// in. +type InterconnectGroupPhysicalStructureMetrosFacilities struct { + // Facility: Output only. [Output Only] The ID of this facility, as a numeric + // string like + // "5467". This is the third component of the location of Interconnects + // in this facility. + Facility string `json:"facility,omitempty"` + Zones []*InterconnectGroupPhysicalStructureMetrosFacilitiesZones `json:"zones,omitempty"` + // ForceSendFields is a list of field names (e.g. "Facility") to // unconditionally include in API requests. By default, fields with empty or // default values are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. ForceSendFields []string `json:"-"` - // NullFields is a list of field names (e.g. "AuditConfigs") to include in API + // NullFields is a list of field names (e.g. "Facility") to include in API // requests with the JSON null value. By default, fields with empty values are // omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } -func (s *Policy) MarshalJSON() ([]byte, error) { - type NoMethod Policy - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s InterconnectGroupPhysicalStructureMetrosFacilities) MarshalJSON() ([]byte, error) { + type NoMethod InterconnectGroupPhysicalStructureMetrosFacilities + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -type PreconfiguredWafSet struct { - // ExpressionSets: List of entities that are currently supported for WAF rules. - ExpressionSets []*WafExpressionSet `json:"expressionSets,omitempty"` - // ForceSendFields is a list of field names (e.g. "ExpressionSets") to +// InterconnectGroupPhysicalStructureMetrosFacilitiesZones: [Output Only] The +// zones that Interconnects in this facility are +// present in. +type InterconnectGroupPhysicalStructureMetrosFacilitiesZones struct { + // Interconnects: Output only. [Output Only] URLs of Interconnects in this + // redundancy group in the + // given metro, facility, and zone. + Interconnects []string `json:"interconnects,omitempty"` + // Zone: Output only. [Output Only] The name of the zone, either "zone1" or + // "zone2". + // This is the second component of the location of Interconnects in + // this facility. + Zone string `json:"zone,omitempty"` + // ForceSendFields is a list of field names (e.g. "Interconnects") to // unconditionally include in API requests. By default, fields with empty or // default values are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. ForceSendFields []string `json:"-"` - // NullFields is a list of field names (e.g. "ExpressionSets") to include in - // API requests with the JSON null value. By default, fields with empty values - // are omitted from API requests. See - // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. - NullFields []string `json:"-"` -} - -func (s *PreconfiguredWafSet) MarshalJSON() ([]byte, error) { - type NoMethod PreconfiguredWafSet - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) -} - -// PreservedState: Preserved state for a given instance. -type PreservedState struct { - // Disks: Preserved disks defined for this instance. This map is keyed with the - // device names of the disks. - Disks map[string]PreservedStatePreservedDisk `json:"disks,omitempty"` - // ExternalIPs: Preserved external IPs defined for this instance. This map is - // keyed with the name of the network interface. - ExternalIPs map[string]PreservedStatePreservedNetworkIp `json:"externalIPs,omitempty"` - // InternalIPs: Preserved internal IPs defined for this instance. This map is - // keyed with the name of the network interface. - InternalIPs map[string]PreservedStatePreservedNetworkIp `json:"internalIPs,omitempty"` - // Metadata: Preserved metadata defined for this instance. - Metadata map[string]string `json:"metadata,omitempty"` - // ForceSendFields is a list of field names (e.g. "Disks") to unconditionally - // include in API requests. By default, fields with empty or default values are - // omitted from API requests. See - // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more - // details. - ForceSendFields []string `json:"-"` - // NullFields is a list of field names (e.g. "Disks") to include in API + // NullFields is a list of field names (e.g. "Interconnects") to include in API // requests with the JSON null value. By default, fields with empty values are // omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } -func (s *PreservedState) MarshalJSON() ([]byte, error) { - type NoMethod PreservedState - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s InterconnectGroupPhysicalStructureMetrosFacilitiesZones) MarshalJSON() ([]byte, error) { + type NoMethod InterconnectGroupPhysicalStructureMetrosFacilitiesZones + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -type PreservedStatePreservedDisk struct { - // AutoDelete: These stateful disks will never be deleted during autohealing, - // update, instance recreate operations. This flag is used to configure if the - // disk should be deleted after it is no longer used by the group, e.g. when - // the given instance or the whole MIG is deleted. Note: disks attached in - // READ_ONLY mode cannot be auto-deleted. - // - // Possible values: - // "NEVER" - // "ON_PERMANENT_INSTANCE_DELETION" - AutoDelete string `json:"autoDelete,omitempty"` - // Mode: The mode in which to attach this disk, either READ_WRITE or READ_ONLY. - // If not specified, the default is to attach the disk in READ_WRITE mode. +type InterconnectGroupsCreateMembers struct { + // IntentMismatchBehavior: How to behave when + // configured.topologyCapability.supportedSLA would not + // equal intent.topologyCapability after this call. // // Possible values: - // "READ_ONLY" - Attaches this disk in read-only mode. Multiple VM instances - // can use a disk in READ_ONLY mode at a time. - // "READ_WRITE" - *[Default]* Attaches this disk in READ_WRITE mode. Only one - // VM instance at a time can be attached to a disk in READ_WRITE mode. - Mode string `json:"mode,omitempty"` - // Source: The URL of the disk resource that is stateful and should be attached - // to the VM instance. - Source string `json:"source,omitempty"` - // ForceSendFields is a list of field names (e.g. "AutoDelete") to + // "CREATE" + // "REJECT" + // "UNSPECIFIED" + IntentMismatchBehavior string `json:"intentMismatchBehavior,omitempty"` + Interconnects []*InterconnectGroupsCreateMembersInterconnectInput `json:"interconnects,omitempty"` + // TemplateInterconnect: Parameters for the Interconnects to create. + TemplateInterconnect *InterconnectGroupsCreateMembersInterconnectInput `json:"templateInterconnect,omitempty"` + // ForceSendFields is a list of field names (e.g. "IntentMismatchBehavior") to // unconditionally include in API requests. By default, fields with empty or // default values are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. 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. See + // NullFields is a list of field names (e.g. "IntentMismatchBehavior") to + // include in API requests with the JSON null value. By default, fields with + // empty values are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } -func (s *PreservedStatePreservedDisk) MarshalJSON() ([]byte, error) { - type NoMethod PreservedStatePreservedDisk - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s InterconnectGroupsCreateMembers) MarshalJSON() ([]byte, error) { + type NoMethod InterconnectGroupsCreateMembers + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -type PreservedStatePreservedNetworkIp struct { - // AutoDelete: These stateful IPs will never be released during autohealing, - // update or VM instance recreate operations. This flag is used to configure if - // the IP reservation should be deleted after it is no longer used by the - // group, e.g. when the given instance or the whole group is deleted. +type InterconnectGroupsCreateMembersInterconnectInput struct { + // AdminEnabled: Administrative status of the interconnect. When this is set to + // true, the + // Interconnect is functional and can carry traffic. + // When set to false, no packets can be carried over the interconnect and + // no BGP routes are exchanged over it. By default, the status is set to + // true. + AdminEnabled bool `json:"adminEnabled,omitempty"` + // CustomerName: Customer name, to put in the Letter of Authorization as the + // party + // authorized to request a crossconnect. + CustomerName string `json:"customerName,omitempty"` + // Description: An optional description of this resource. Provide this property + // when you + // create the resource. + Description string `json:"description,omitempty"` + // Facility: A zone-free location to use for all Interconnects created in this + // call, + // like "iad-1234". + Facility string `json:"facility,omitempty"` + // InterconnectType: Type of interconnect, which can take one of the following + // values: // - // Possible values: - // "NEVER" - // "ON_PERMANENT_INSTANCE_DELETION" - AutoDelete string `json:"autoDelete,omitempty"` - // IpAddress: Ip address representation - IpAddress *PreservedStatePreservedNetworkIpIpAddress `json:"ipAddress,omitempty"` - // ForceSendFields is a list of field names (e.g. "AutoDelete") to - // unconditionally include in API requests. By default, fields with empty or - // default values are omitted from API requests. See - // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more - // details. - 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. See - // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. - NullFields []string `json:"-"` -} - -func (s *PreservedStatePreservedNetworkIp) MarshalJSON() ([]byte, error) { - type NoMethod PreservedStatePreservedNetworkIp - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) -} - -type PreservedStatePreservedNetworkIpIpAddress struct { - // Address: The URL of the reservation for this IP address. - Address string `json:"address,omitempty"` - // Literal: An IPv4 internal network address to assign to the instance for this - // network interface. - Literal string `json:"literal,omitempty"` - // ForceSendFields is a list of field names (e.g. "Address") to unconditionally - // include in API requests. By default, fields with empty or default values are - // omitted from API requests. See - // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more - // details. - ForceSendFields []string `json:"-"` - // NullFields is a list of field names (e.g. "Address") to include in API - // requests with the JSON null value. By default, fields with empty values are - // omitted from API requests. See - // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. - NullFields []string `json:"-"` -} - -func (s *PreservedStatePreservedNetworkIpIpAddress) MarshalJSON() ([]byte, error) { - type NoMethod PreservedStatePreservedNetworkIpIpAddress - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) -} - -// Project: Represents a Project resource. A project is used to organize -// resources in a Google Cloud Platform environment. For more information, read -// about the Resource Hierarchy. -type Project struct { - // CloudArmorTier: [Output Only] The Cloud Armor tier for this project. It can - // be one of the following values: CA_STANDARD, CA_ENTERPRISE_PAYGO. If this - // field is not specified, it is assumed to be CA_STANDARD. + // - PARTNER: A partner-managed interconnection shared between + // customers though a partner. + // - DEDICATED: A dedicated physical + // interconnection with the customer. + // + // Note that a value IT_PRIVATE + // has been deprecated in favor of DEDICATED. // // Possible values: - // "CA_ENTERPRISE_ANNUAL" - Enterprise tier protection billed annually. - // "CA_ENTERPRISE_PAYGO" - Enterprise tier protection billed monthly. - // "CA_STANDARD" - Standard protection. - CloudArmorTier string `json:"cloudArmorTier,omitempty"` - // CommonInstanceMetadata: Metadata key/value pairs available to all instances - // contained in this project. See Custom metadata for more information. - CommonInstanceMetadata *Metadata `json:"commonInstanceMetadata,omitempty"` - // CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text format. - CreationTimestamp string `json:"creationTimestamp,omitempty"` - // DefaultNetworkTier: This signifies the default network tier used for - // configuring resources of the project and can only take the following values: - // PREMIUM, STANDARD. Initially the default network tier is PREMIUM. + // "DEDICATED" - A dedicated physical interconnection with the customer. + // "IT_PRIVATE" - [Deprecated] A private, physical interconnection with the + // customer. + // "PARTNER" - A partner-managed interconnection shared between customers via + // partner. + InterconnectType string `json:"interconnectType,omitempty"` + // LinkType: Type of link requested, which can take one of the following + // values: + // + // - LINK_TYPE_ETHERNET_10G_LR: A 10G Ethernet with LR optics + // - LINK_TYPE_ETHERNET_100G_LR: A 100G Ethernet with LR optics. + // - LINK_TYPE_ETHERNET_400G_LR4: A 400G Ethernet with LR4 + // optics. + // + // Note that this field indicates the speed of each of the + // links in the bundle, not the speed of the entire bundle. // // Possible values: - // "FIXED_STANDARD" - Public internet quality with fixed bandwidth. - // "PREMIUM" - High quality, Google-grade network tier, support for all - // networking products. - // "STANDARD" - Public internet quality, only limited support for other - // networking products. - // "STANDARD_OVERRIDES_FIXED_STANDARD" - (Output only) Temporary tier for - // FIXED_STANDARD when fixed standard tier is expired or not configured. - DefaultNetworkTier string `json:"defaultNetworkTier,omitempty"` - // DefaultServiceAccount: [Output Only] Default service account used by VMs - // running in this project. - DefaultServiceAccount string `json:"defaultServiceAccount,omitempty"` - // Description: An optional textual description of the resource. - Description string `json:"description,omitempty"` - // EnabledFeatures: Restricted features enabled for use on this project. - EnabledFeatures []string `json:"enabledFeatures,omitempty"` - // Id: [Output Only] The unique identifier for the resource. This identifier is - // defined by the server. This is *not* the project ID, and is just a unique ID - // used by Compute Engine to identify resources. - Id uint64 `json:"id,omitempty,string"` - // Kind: [Output Only] Type of the resource. Always compute#project for - // projects. - Kind string `json:"kind,omitempty"` - // Name: The project ID. For example: my-example-project. Use the project ID to - // make requests to Compute Engine. + // "LINK_TYPE_ETHERNET_100G_LR" - 100G Ethernet, LR Optics. + // "LINK_TYPE_ETHERNET_10G_LR" - 10G Ethernet, LR Optics. + // [(rate_bps) = 10000000000]; + // "LINK_TYPE_ETHERNET_400G_LR4" - 400G Ethernet, LR4 Optics. + LinkType string `json:"linkType,omitempty"` + // Name: Name of the Interconnects to be created. This must be specified on + // the + // template and/or on each individual interconnect. The name, if not + // empty, + // must be 1-63 characters long, and comply with RFC1035. + // Specifically, any nonempty 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. Name string `json:"name,omitempty"` - // Quotas: [Output Only] Quotas assigned to this project. - Quotas []*Quota `json:"quotas,omitempty"` - // SelfLink: [Output Only] Server-defined URL for the resource. - SelfLink string `json:"selfLink,omitempty"` - // UsageExportLocation: The naming prefix for daily usage reports and the - // Google Cloud Storage bucket where they are stored. - UsageExportLocation *UsageExportLocation `json:"usageExportLocation,omitempty"` - // VmDnsSetting: [Output Only] Default internal DNS setting used by VMs running - // in this project. + // NocContactEmail: Email address to contact the customer NOC for operations + // and maintenance + // notifications regarding this Interconnect. If specified, this will be + // used for notifications in addition to all other forms described, such + // as + // Cloud Monitoring logs alerting and Cloud Notifications. This field + // is + // required for users who sign up for Cloud Interconnect using + // workforce identity federation. + NocContactEmail string `json:"nocContactEmail,omitempty"` + // RemoteLocation: Indicates that this is a Cross-Cloud Interconnect. This + // field specifies + // the location outside of Google's network that the interconnect is + // connected to. + RemoteLocation string `json:"remoteLocation,omitempty"` + // RequestedFeatures: Optional. List of features requested for this + // Interconnect connection, + // which can take one of the following values: // - // Possible values: - // "GLOBAL_DEFAULT" - // "UNSPECIFIED_VM_DNS_SETTING" - // "ZONAL_DEFAULT" - // "ZONAL_ONLY" - VmDnsSetting string `json:"vmDnsSetting,omitempty"` - // XpnProjectStatus: [Output Only] The role this project has in a shared VPC - // configuration. Currently, only projects with the host role, which is - // specified by the value HOST, are differentiated. + // - IF_MACSEC: If specified, then the connection is created on MACsec + // capable hardware ports. If not specified, non-MACsec capable ports will + // also be considered. + // - IF_CROSS_SITE_NETWORK: If specified, then the connection is created + // exclusively for Cross-Site Networking. The connection can not be used + // for + // Cross-Site Networking unless this feature is specified. // // Possible values: - // "HOST" - // "UNSPECIFIED_XPN_PROJECT_STATUS" - XpnProjectStatus string `json:"xpnProjectStatus,omitempty"` - - // ServerResponse contains the HTTP response code and headers from the server. - googleapi.ServerResponse `json:"-"` - // ForceSendFields is a list of field names (e.g. "CloudArmorTier") to - // unconditionally include in API requests. By default, fields with empty or - // default values are omitted from API requests. See - // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more - // details. - ForceSendFields []string `json:"-"` - // NullFields is a list of field names (e.g. "CloudArmorTier") to include in - // API requests with the JSON null value. By default, fields with empty values - // are omitted from API requests. See - // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. - NullFields []string `json:"-"` -} - -func (s *Project) MarshalJSON() ([]byte, error) { - type NoMethod Project - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) -} - -type ProjectsDisableXpnResourceRequest struct { - // XpnResource: Service resource (a.k.a service project) ID. - XpnResource *XpnResourceId `json:"xpnResource,omitempty"` - // ForceSendFields is a list of field names (e.g. "XpnResource") to + // "IF_CROSS_SITE_NETWORK" - Cross-Site Networking + // "IF_L2_FORWARDING" - L2 Interconnect Attachment Forwarding + // "IF_MACSEC" - Media Access Control security (MACsec) + RequestedFeatures []string `json:"requestedFeatures,omitempty"` + // RequestedLinkCount: Target number of physical links in the link bundle, as + // requested by the + // customer. + RequestedLinkCount int64 `json:"requestedLinkCount,omitempty"` + // ForceSendFields is a list of field names (e.g. "AdminEnabled") to // unconditionally include in API requests. By default, fields with empty or // default values are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. ForceSendFields []string `json:"-"` - // NullFields is a list of field names (e.g. "XpnResource") to include in API + // NullFields is a list of field names (e.g. "AdminEnabled") to include in API // requests with the JSON null value. By default, fields with empty values are // omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } -func (s *ProjectsDisableXpnResourceRequest) MarshalJSON() ([]byte, error) { - type NoMethod ProjectsDisableXpnResourceRequest - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s InterconnectGroupsCreateMembersInterconnectInput) MarshalJSON() ([]byte, error) { + type NoMethod InterconnectGroupsCreateMembersInterconnectInput + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -type ProjectsEnableXpnResourceRequest struct { - // XpnResource: Service resource (a.k.a service project) ID. - XpnResource *XpnResourceId `json:"xpnResource,omitempty"` - // ForceSendFields is a list of field names (e.g. "XpnResource") to - // unconditionally include in API requests. By default, fields with empty or - // default values are omitted from API requests. See +type InterconnectGroupsCreateMembersRequest struct { + Request *InterconnectGroupsCreateMembers `json:"request,omitempty"` + // ForceSendFields is a list of field names (e.g. "Request") to unconditionally + // include in API requests. By default, fields with empty or default values are + // omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. ForceSendFields []string `json:"-"` - // NullFields is a list of field names (e.g. "XpnResource") to include in API + // NullFields is a list of field names (e.g. "Request") to include in API // requests with the JSON null value. By default, fields with empty values are // omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } -func (s *ProjectsEnableXpnResourceRequest) MarshalJSON() ([]byte, error) { - type NoMethod ProjectsEnableXpnResourceRequest - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s InterconnectGroupsCreateMembersRequest) MarshalJSON() ([]byte, error) { + type NoMethod InterconnectGroupsCreateMembersRequest + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -type ProjectsGetXpnResources struct { - // Kind: [Output Only] Type of resource. Always compute#projectsGetXpnResources - // for lists of service resources (a.k.a service projects) - 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"` - // Resources: Service resources (a.k.a service projects) attached to this - // project as their shared VPC host. - Resources []*XpnResourceId `json:"resources,omitempty"` +// InterconnectGroupsGetOperationalStatusResponse: Response for the +// InterconnectGroupsGetOperationalStatusResponse. +type InterconnectGroupsGetOperationalStatusResponse struct { + Etag string `json:"etag,omitempty"` + Result *InterconnectGroupsOperationalStatus `json:"result,omitempty"` // ServerResponse contains the HTTP response code and headers from the server. googleapi.ServerResponse `json:"-"` - // ForceSendFields is a list of field names (e.g. "Kind") to unconditionally + // ForceSendFields is a list of field names (e.g. "Etag") to unconditionally // include in API requests. By default, fields with empty or default values are // omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. ForceSendFields []string `json:"-"` - // NullFields is a list of field names (e.g. "Kind") to include in API requests + // NullFields is a list of field names (e.g. "Etag") to include in API requests // with the JSON null value. By default, fields with empty values are omitted // from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } -func (s *ProjectsGetXpnResources) MarshalJSON() ([]byte, error) { - type NoMethod ProjectsGetXpnResources - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) -} - -type ProjectsListXpnHostsRequest struct { - // Organization: Optional organization ID managed by Cloud Resource Manager, - // for which to list shared VPC host projects. If not specified, the - // organization will be inferred from the project. - Organization string `json:"organization,omitempty"` - // ForceSendFields is a list of field names (e.g. "Organization") to - // unconditionally include in API requests. By default, fields with empty or - // default values are omitted from API requests. See - // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more - // details. - ForceSendFields []string `json:"-"` - // NullFields is a list of field names (e.g. "Organization") to include in API - // requests with the JSON null value. By default, fields with empty values are - // omitted from API requests. See - // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. - NullFields []string `json:"-"` -} - -func (s *ProjectsListXpnHostsRequest) MarshalJSON() ([]byte, error) { - type NoMethod ProjectsListXpnHostsRequest - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) -} - -type ProjectsSetCloudArmorTierRequest struct { - // CloudArmorTier: Managed protection tier to be set. - // - // Possible values: - // "CA_ENTERPRISE_ANNUAL" - Enterprise tier protection billed annually. - // "CA_ENTERPRISE_PAYGO" - Enterprise tier protection billed monthly. - // "CA_STANDARD" - Standard protection. - CloudArmorTier string `json:"cloudArmorTier,omitempty"` - // ForceSendFields is a list of field names (e.g. "CloudArmorTier") to - // unconditionally include in API requests. By default, fields with empty or - // default values are omitted from API requests. See - // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more - // details. - ForceSendFields []string `json:"-"` - // NullFields is a list of field names (e.g. "CloudArmorTier") to include in - // API requests with the JSON null value. By default, fields with empty values - // are omitted from API requests. See - // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. - NullFields []string `json:"-"` -} - -func (s *ProjectsSetCloudArmorTierRequest) MarshalJSON() ([]byte, error) { - type NoMethod ProjectsSetCloudArmorTierRequest - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) -} - -type ProjectsSetDefaultNetworkTierRequest struct { - // NetworkTier: Default network tier to be set. - // - // Possible values: - // "FIXED_STANDARD" - Public internet quality with fixed bandwidth. - // "PREMIUM" - High quality, Google-grade network tier, support for all - // networking products. - // "STANDARD" - Public internet quality, only limited support for other - // networking products. - // "STANDARD_OVERRIDES_FIXED_STANDARD" - (Output only) Temporary tier for - // FIXED_STANDARD when fixed standard tier is expired or not configured. - NetworkTier string `json:"networkTier,omitempty"` - // ForceSendFields is a list of field names (e.g. "NetworkTier") to - // unconditionally include in API requests. By default, fields with empty or - // default values are omitted from API requests. See - // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more - // details. - ForceSendFields []string `json:"-"` - // NullFields is a list of field names (e.g. "NetworkTier") to include in API - // requests with the JSON null value. By default, fields with empty values are - // omitted from API requests. See - // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. - NullFields []string `json:"-"` -} - -func (s *ProjectsSetDefaultNetworkTierRequest) MarshalJSON() ([]byte, error) { - type NoMethod ProjectsSetDefaultNetworkTierRequest - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) -} - -// PublicAdvertisedPrefix: A public advertised prefix represents an aggregated -// IP prefix or netblock which customers bring to cloud. The IP prefix is a -// single unit of route advertisement and is announced globally to the -// internet. -type PublicAdvertisedPrefix struct { - // ByoipApiVersion: [Output Only] The version of BYOIP API. - // - // Possible values: - // "V1" - This public advertised prefix can be used to create both regional - // and global public delegated prefixes. It usually takes 4 weeks to create or - // delete a public delegated prefix. The BGP status cannot be changed. - // "V2" - This public advertised prefix can only be used to create regional - // public delegated prefixes. Public delegated prefix creation and deletion - // takes minutes and the BGP status can be modified. - ByoipApiVersion string `json:"byoipApiVersion,omitempty"` - // CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text format. - CreationTimestamp string `json:"creationTimestamp,omitempty"` - // Description: An optional description of this resource. Provide this property - // when you create the resource. - Description string `json:"description,omitempty"` - // DnsVerificationIp: The address to be used for reverse DNS verification. - DnsVerificationIp string `json:"dnsVerificationIp,omitempty"` - // Fingerprint: Fingerprint of this resource. A hash of the contents stored in - // this object. This field is used in optimistic locking. This field will be - // ignored when inserting a new PublicAdvertisedPrefix. An up-to-date - // fingerprint must be provided in order to update the PublicAdvertisedPrefix, - // otherwise the request will fail with error 412 conditionNotMet. To see the - // latest fingerprint, make a get() request to retrieve a - // PublicAdvertisedPrefix. - Fingerprint string `json:"fingerprint,omitempty"` - // Id: [Output Only] The unique identifier for the resource type. The server - // generates this identifier. - Id uint64 `json:"id,omitempty,string"` - // IpCidrRange: The address range, in CIDR format, represented by this public - // advertised prefix. - IpCidrRange string `json:"ipCidrRange,omitempty"` - // Kind: [Output Only] Type of the resource. Always - // compute#publicAdvertisedPrefix for public advertised prefixes. - Kind string `json:"kind,omitempty"` - // Name: Name of the resource. Provided by the client when the resource is - // created. The name must be 1-63 characters long, and comply with RFC1035. - // 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. - Name string `json:"name,omitempty"` - // PdpScope: Specifies how child public delegated prefix will be scoped. It - // could be one of following values: - `REGIONAL`: The public delegated prefix - // is regional only. The provisioning will take a few minutes. - `GLOBAL`: The - // public delegated prefix is global only. The provisioning will take ~4 weeks. - // - `GLOBAL_AND_REGIONAL` [output only]: The public delegated prefixes is - // BYOIP V1 legacy prefix. This is output only value and no longer supported in - // BYOIP V2. - // - // Possible values: - // "GLOBAL" - The public delegated prefix is global only. The provisioning - // will take ~4 weeks. - // "GLOBAL_AND_REGIONAL" - The public delegated prefixes is BYOIP V1 legacy - // prefix. This is output only value and no longer supported in BYOIP V2. - // "REGIONAL" - The public delegated prefix is regional only. The - // provisioning will take a few minutes. - PdpScope string `json:"pdpScope,omitempty"` - // PublicDelegatedPrefixs: [Output Only] The list of public delegated prefixes - // that exist for this public advertised prefix. - PublicDelegatedPrefixs []*PublicAdvertisedPrefixPublicDelegatedPrefix `json:"publicDelegatedPrefixs,omitempty"` - // SelfLink: [Output Only] Server-defined URL for the resource. - SelfLink string `json:"selfLink,omitempty"` - // SharedSecret: [Output Only] The shared secret to be used for reverse DNS - // verification. - SharedSecret string `json:"sharedSecret,omitempty"` - // Status: The status of the public advertised prefix. Possible values include: - // - `INITIAL`: RPKI validation is complete. - `PTR_CONFIGURED`: User has - // configured the PTR. - `VALIDATED`: Reverse DNS lookup is successful. - - // `REVERSE_DNS_LOOKUP_FAILED`: Reverse DNS lookup failed. - - // `PREFIX_CONFIGURATION_IN_PROGRESS`: The prefix is being configured. - - // `PREFIX_CONFIGURATION_COMPLETE`: The prefix is fully configured. - - // `PREFIX_REMOVAL_IN_PROGRESS`: The prefix is being removed. - // - // Possible values: - // "ANNOUNCED_TO_INTERNET" - The prefix is announced to Internet. - // "INITIAL" - RPKI validation is complete. - // "PREFIX_CONFIGURATION_COMPLETE" - The prefix is fully configured. - // "PREFIX_CONFIGURATION_IN_PROGRESS" - The prefix is being configured. - // "PREFIX_REMOVAL_IN_PROGRESS" - The prefix is being removed. - // "PTR_CONFIGURED" - User has configured the PTR. - // "READY_TO_ANNOUNCE" - The prefix is currently withdrawn but ready to be - // announced. - // "REVERSE_DNS_LOOKUP_FAILED" - Reverse DNS lookup failed. - // "VALIDATED" - Reverse DNS lookup is successful. - Status string `json:"status,omitempty"` - - // ServerResponse contains the HTTP response code and headers from the server. - googleapi.ServerResponse `json:"-"` - // ForceSendFields is a list of field names (e.g. "ByoipApiVersion") to - // unconditionally include in API requests. By default, fields with empty or - // default values are omitted from API requests. See - // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more - // details. - ForceSendFields []string `json:"-"` - // NullFields is a list of field names (e.g. "ByoipApiVersion") to include in - // API requests with the JSON null value. By default, fields with empty values - // are omitted from API requests. See - // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. - NullFields []string `json:"-"` -} - -func (s *PublicAdvertisedPrefix) MarshalJSON() ([]byte, error) { - type NoMethod PublicAdvertisedPrefix - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s InterconnectGroupsGetOperationalStatusResponse) MarshalJSON() ([]byte, error) { + type NoMethod InterconnectGroupsGetOperationalStatusResponse + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -type PublicAdvertisedPrefixList struct { +type InterconnectGroupsListResponse struct { + Etag string `json:"etag,omitempty"` // Id: [Output Only] Unique identifier for the resource; defined by the server. Id string `json:"id,omitempty"` - // Items: A list of PublicAdvertisedPrefix resources. - Items []*PublicAdvertisedPrefix `json:"items,omitempty"` - // Kind: [Output Only] Type of the resource. Always - // compute#publicAdvertisedPrefix for public advertised prefixes. - Kind string `json:"kind,omitempty"` + // Items: A list of InterconnectGroup resources. + Items []*InterconnectGroup `json:"items,omitempty"` + 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. + // results for + // list requests. If the number of results is larger thanmaxResults, 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"` // SelfLink: [Output Only] Server-defined URL for this resource. SelfLink string `json:"selfLink,omitempty"` + // Unreachables: Output only. [Output Only] Unreachable + // resources. + // end_interface: MixerListResponseWithEtagBuilder + Unreachables []string `json:"unreachables,omitempty"` // Warning: [Output Only] Informational warning message. - Warning *PublicAdvertisedPrefixListWarning `json:"warning,omitempty"` + Warning *InterconnectGroupsListResponseWarning `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 + // ForceSendFields is a list of field names (e.g. "Etag") to unconditionally // include in API requests. By default, fields with empty or default values are // omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. ForceSendFields []string `json:"-"` - // NullFields is a list of field names (e.g. "Id") to include in API requests + // NullFields is a list of field names (e.g. "Etag") to include in API requests // with the JSON null value. By default, fields with empty values are omitted // from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } -func (s *PublicAdvertisedPrefixList) MarshalJSON() ([]byte, error) { - type NoMethod PublicAdvertisedPrefixList - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s InterconnectGroupsListResponse) MarshalJSON() ([]byte, error) { + type NoMethod InterconnectGroupsListResponse + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -// PublicAdvertisedPrefixListWarning: [Output Only] Informational warning +// InterconnectGroupsListResponseWarning: [Output Only] Informational warning // message. -type PublicAdvertisedPrefixListWarning 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. +type InterconnectGroupsListResponseWarning 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" - Warning about failed cleanup of transient changes made - // by a failed operation. + // by a failed + // operation. // "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was created. // "DEPRECATED_TYPE_USED" - When deploying and at least one of the resources - // has a type marked as deprecated + // has a type marked as + // deprecated // "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk that is // larger than image size. // "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the - // resources has a type marked as experimental + // resources has a type marked as + // experimental // "EXTERNAL_API_WARNING" - Warning that is present in an external api call // "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been - // overridden. Deprecated unused field. + // overridden. + // Deprecated unused field. // "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an injected // kernel, which is deprecated. // "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB" - A WEIGHTED_MAGLEV backend - // service is associated with a health check that is not of type - // HTTP/HTTPS/HTTP2. + // service is associated with a health check that is + // not of type HTTP/HTTPS/HTTP2. // "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a // exceedingly large number of resources // "LIST_OVERHEAD_QUOTA_EXCEED" - Resource can't be retrieved due to list - // overhead quota exceed which captures the amount of resources filtered out by + // overhead quota exceed + // which captures the amount of resources filtered out by // user-defined list filter. // "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is not - // assigned to an instance on the network. + // assigned to an instance on the + // network. // "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot ip // forward. // "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE" - The route's nextHopInstance - // URL refers to an instance that does not have an ipv6 interface on the same - // network as the route. + // URL refers to an instance that does not have an + // ipv6 interface on the same network as the route. // "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL refers to // an instance that does not exist. // "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance URL - // refers to an instance that is not on the same network as the route. + // refers to an instance that is not on the + // same network as the route. // "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not have a // status of RUNNING. // "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to continue - // the process despite the mentioned error. + // the process despite + // the mentioned error. // "NO_RESULTS_ON_PAGE" - No results are present on a particular list page. // "PARTIAL_SUCCESS" - Success is reported, but some results may be missing // due to errors + // "QUOTA_INFO_UNAVAILABLE" - Quota information is not available to client + // requests (e.g: + // regions.list). // "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource that - // requires a TOS they have not accepted. + // requires a TOS they have not + // accepted. // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a resource is // in use. // "RESOURCE_NOT_DELETED" - One or more of the resources set to auto-delete - // could not be deleted because they were in use. + // could not be deleted + // because they were in use. // "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is // ignored. // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in instance - // group manager is valid as such, but its application does not make a lot of - // sense, because it allows only single instance in instance group. + // group manager is valid as such, but + // its application does not make a lot of sense, because it allows only + // single instance in instance group. // "UNDECLARED_PROPERTIES" - When undeclared properties in the schema are // present // "UNREACHABLE" - A given scope cannot be reached. 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 []*PublicAdvertisedPrefixListWarningData `json:"data,omitempty"` + // Data: [Output Only] Metadata about this warning in key: + // value format. For example: + // + // "data": [ + // { + // "key": "scope", + // "value": "zones/us-east1-d" + // } + Data []*InterconnectGroupsListResponseWarningData `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 @@ -32395,19 +38031,22 @@ type PublicAdvertisedPrefixListWarning struct { NullFields []string `json:"-"` } -func (s *PublicAdvertisedPrefixListWarning) MarshalJSON() ([]byte, error) { - type NoMethod PublicAdvertisedPrefixListWarning - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s InterconnectGroupsListResponseWarning) MarshalJSON() ([]byte, error) { + type NoMethod InterconnectGroupsListResponseWarning + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -type PublicAdvertisedPrefixListWarningData 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). +type InterconnectGroupsListResponseWarningData 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"` @@ -32424,179 +38063,108 @@ type PublicAdvertisedPrefixListWarningData struct { NullFields []string `json:"-"` } -func (s *PublicAdvertisedPrefixListWarningData) MarshalJSON() ([]byte, error) { - type NoMethod PublicAdvertisedPrefixListWarningData - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s InterconnectGroupsListResponseWarningData) MarshalJSON() ([]byte, error) { + type NoMethod InterconnectGroupsListResponseWarningData + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -// PublicAdvertisedPrefixPublicDelegatedPrefix: Represents a CIDR range which -// can be used to assign addresses. -type PublicAdvertisedPrefixPublicDelegatedPrefix struct { - // IpRange: The IP address range of the public delegated prefix - IpRange string `json:"ipRange,omitempty"` - // Name: The name of the public delegated prefix - Name string `json:"name,omitempty"` - // Project: The project number of the public delegated prefix - Project string `json:"project,omitempty"` - // Region: The region of the public delegated prefix if it is regional. If - // absent, the prefix is global. - Region string `json:"region,omitempty"` - // Status: The status of the public delegated prefix. Possible values are: - // INITIALIZING: The public delegated prefix is being initialized and addresses - // cannot be created yet. ANNOUNCED: The public delegated prefix is active. - Status string `json:"status,omitempty"` - // ForceSendFields is a list of field names (e.g. "IpRange") to unconditionally - // include in API requests. By default, fields with empty or default values are - // omitted from API requests. See +// InterconnectGroupsOperationalStatus: Request to get the status of the +// interconnect group with extra detail. +type InterconnectGroupsOperationalStatus struct { + // Configured: Output only. The configuration analysis, as returned by Get. + Configured *InterconnectGroupConfigured `json:"configured,omitempty"` + // GroupStatus: Output only. Summarizes the status of the group. + // + // Possible values: + // "DEGRADED" + // "FULLY_DOWN" + // "FULLY_UP" + // "GROUPS_STATUS_UNSPECIFIED" + GroupStatus string `json:"groupStatus,omitempty"` + // Intent: Output only. The intent of the resource, as returned by Get. + Intent *InterconnectGroupIntent `json:"intent,omitempty"` + InterconnectStatuses []*InterconnectGroupsOperationalStatusInterconnectStatus `json:"interconnectStatuses,omitempty"` + // Operational: Output only. The operational state of the group, including only + // active Interconnects. + Operational *InterconnectGroupConfigured `json:"operational,omitempty"` + // ForceSendFields is a list of field names (e.g. "Configured") to + // unconditionally include in API requests. By default, fields with empty or + // default values are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. ForceSendFields []string `json:"-"` - // NullFields is a list of field names (e.g. "IpRange") to include in API + // NullFields is a list of field names (e.g. "Configured") to include in API // requests with the JSON null value. By default, fields with empty values are // omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } -func (s *PublicAdvertisedPrefixPublicDelegatedPrefix) MarshalJSON() ([]byte, error) { - type NoMethod PublicAdvertisedPrefixPublicDelegatedPrefix - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s InterconnectGroupsOperationalStatus) MarshalJSON() ([]byte, error) { + type NoMethod InterconnectGroupsOperationalStatus + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -// PublicDelegatedPrefix: A PublicDelegatedPrefix resource represents an IP -// block within a PublicAdvertisedPrefix that is configured within a single -// cloud scope (global or region). IPs in the block can be allocated to -// resources within that scope. Public delegated prefixes may be further broken -// up into smaller IP blocks in the same scope as the parent block. -type PublicDelegatedPrefix struct { - // AllocatablePrefixLength: The allocatable prefix length supported by this - // public delegated prefix. This field is optional and cannot be set for - // prefixes in DELEGATION mode. It cannot be set for IPv4 prefixes either, and - // it always defaults to 32. - AllocatablePrefixLength int64 `json:"allocatablePrefixLength,omitempty"` - // ByoipApiVersion: [Output Only] The version of BYOIP API. - // - // Possible values: - // "V1" - This public delegated prefix usually takes 4 weeks to delete, and - // the BGP status cannot be changed. Announce and Withdraw APIs can not be used - // on this prefix. - // "V2" - This public delegated prefix takes minutes to delete. Announce and - // Withdraw APIs can be used on this prefix to change the BGP status. - ByoipApiVersion string `json:"byoipApiVersion,omitempty"` - // CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text format. - CreationTimestamp string `json:"creationTimestamp,omitempty"` - // Description: An optional description of this resource. Provide this property - // when you create the resource. - Description string `json:"description,omitempty"` - // Fingerprint: Fingerprint of this resource. A hash of the contents stored in - // this object. This field is used in optimistic locking. This field will be - // ignored when inserting a new PublicDelegatedPrefix. An up-to-date - // fingerprint must be provided in order to update the PublicDelegatedPrefix, - // otherwise the request will fail with error 412 conditionNotMet. To see the - // latest fingerprint, make a get() request to retrieve a - // PublicDelegatedPrefix. - Fingerprint string `json:"fingerprint,omitempty"` - // Id: [Output Only] The unique identifier for the resource type. The server - // generates this identifier. - Id uint64 `json:"id,omitempty,string"` - // IpCidrRange: The IP address range, in CIDR format, represented by this - // public delegated prefix. - IpCidrRange string `json:"ipCidrRange,omitempty"` - // IsLiveMigration: If true, the prefix will be live migrated. - IsLiveMigration bool `json:"isLiveMigration,omitempty"` - // Kind: [Output Only] Type of the resource. Always - // compute#publicDelegatedPrefix for public delegated prefixes. - Kind string `json:"kind,omitempty"` - // Mode: The public delegated prefix mode for IPv6 only. - // - // Possible values: - // "DELEGATION" - The public delegated prefix is used for further - // sub-delegation only. Such prefixes cannot set allocatablePrefixLength. - // "EXTERNAL_IPV6_FORWARDING_RULE_CREATION" - The public delegated prefix is - // used for creating forwarding rules only. Such prefixes cannot set - // publicDelegatedSubPrefixes. - Mode string `json:"mode,omitempty"` - // Name: Name of the resource. Provided by the client when the resource is - // created. The name must be 1-63 characters long, and comply with RFC1035. - // 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. - Name string `json:"name,omitempty"` - // ParentPrefix: The URL of parent prefix. Either PublicAdvertisedPrefix or - // PublicDelegatedPrefix. - ParentPrefix string `json:"parentPrefix,omitempty"` - // PublicDelegatedSubPrefixs: The list of sub public delegated prefixes that - // exist for this public delegated prefix. - PublicDelegatedSubPrefixs []*PublicDelegatedPrefixPublicDelegatedSubPrefix `json:"publicDelegatedSubPrefixs,omitempty"` - // Region: [Output Only] URL of the region where the public delegated prefix - // resides. This field applies only to the region resource. You must specify - // this field as part of the HTTP request URL. It is not settable as a field in - // the request body. - Region string `json:"region,omitempty"` - // SelfLink: [Output Only] Server-defined URL for the resource. - SelfLink string `json:"selfLink,omitempty"` - // Status: [Output Only] The status of the public delegated prefix, which can - // be one of following values: - `INITIALIZING` The public delegated prefix is - // being initialized and addresses cannot be created yet. - `READY_TO_ANNOUNCE` - // The public delegated prefix is a live migration prefix and is active. - - // `ANNOUNCED` The public delegated prefix is active. - `DELETING` The public - // delegated prefix is being deprovsioned. +// InterconnectGroupsOperationalStatusInterconnectStatus: The status of one +// Interconnect in the group. The order is arbitrary. +type InterconnectGroupsOperationalStatusInterconnectStatus struct { + // AdminEnabled: Output only. Whether the Interconnect is enabled. + AdminEnabled bool `json:"adminEnabled,omitempty"` + // Diagnostics: Output only. The diagnostics of the Interconnect, as returned + // by the existing + // get-diagnostics method. + Diagnostics *InterconnectDiagnostics `json:"diagnostics,omitempty"` + // Interconnect: Output only. The URL of the Interconnect being described. + Interconnect string `json:"interconnect,omitempty"` + // IsActive: Output only. Whether this interconnect is participating in the + // redundant + // configuration. // // Possible values: - // "ANNOUNCED" - The public delegated prefix is active. - // "ANNOUNCED_TO_GOOGLE" - The prefix is announced within Google network. - // "ANNOUNCED_TO_INTERNET" - The prefix is announced to Internet and within - // Google. - // "DELETING" - The public delegated prefix is being deprovsioned. - // "INITIALIZING" - The public delegated prefix is being initialized and - // addresses cannot be created yet. - // "READY_TO_ANNOUNCE" - The public delegated prefix is currently withdrawn - // but ready to be announced. - Status string `json:"status,omitempty"` - - // ServerResponse contains the HTTP response code and headers from the server. - googleapi.ServerResponse `json:"-"` - // ForceSendFields is a list of field names (e.g. "AllocatablePrefixLength") to + // "ACTIVE" + // "INACTIVE" + // "IS_ACTIVE_UNSPECIFIED" + IsActive string `json:"isActive,omitempty"` + // ForceSendFields is a list of field names (e.g. "AdminEnabled") to // unconditionally include in API requests. By default, fields with empty or // default values are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. ForceSendFields []string `json:"-"` - // NullFields is a list of field names (e.g. "AllocatablePrefixLength") to - // include in API requests with the JSON null value. By default, fields with - // empty values are omitted from API requests. See + // NullFields is a list of field names (e.g. "AdminEnabled") to include in API + // requests with the JSON null value. By default, fields with empty values are + // omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } -func (s *PublicDelegatedPrefix) MarshalJSON() ([]byte, error) { - type NoMethod PublicDelegatedPrefix - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s InterconnectGroupsOperationalStatusInterconnectStatus) MarshalJSON() ([]byte, error) { + type NoMethod InterconnectGroupsOperationalStatusInterconnectStatus + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -type PublicDelegatedPrefixAggregatedList struct { +// InterconnectList: Response to the list request, and contains a list of +// interconnects. +type InterconnectList struct { // Id: [Output Only] Unique identifier for the resource; defined by the server. Id string `json:"id,omitempty"` - // Items: A list of PublicDelegatedPrefixesScopedList resources. - Items map[string]PublicDelegatedPrefixesScopedList `json:"items,omitempty"` - // Kind: [Output Only] Type of the resource. Always - // compute#publicDelegatedPrefixAggregatedList for aggregated lists of public - // delegated prefixes. + // Items: A list of Interconnect resources. + Items []*Interconnect `json:"items,omitempty"` + // Kind: Output only. [Output Only] Type of resource. + // Alwayscompute#interconnectList for lists of interconnects. 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. + // results for + // list requests. If the number of results is larger thanmaxResults, 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"` - // SelfLink: [Output Only] Server-defined URL for this resource. + // SelfLink: Output only. [Output Only] Server-defined URL for this resource. SelfLink string `json:"selfLink,omitempty"` - // Unreachables: [Output Only] Unreachable resources. - Unreachables []string `json:"unreachables,omitempty"` // Warning: [Output Only] Informational warning message. - Warning *PublicDelegatedPrefixAggregatedListWarning `json:"warning,omitempty"` + Warning *InterconnectListWarning `json:"warning,omitempty"` // ServerResponse contains the HTTP response code and headers from the server. googleapi.ServerResponse `json:"-"` @@ -32613,77 +38181,98 @@ type PublicDelegatedPrefixAggregatedList struct { NullFields []string `json:"-"` } -func (s *PublicDelegatedPrefixAggregatedList) MarshalJSON() ([]byte, error) { - type NoMethod PublicDelegatedPrefixAggregatedList - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s InterconnectList) MarshalJSON() ([]byte, error) { + type NoMethod InterconnectList + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -// PublicDelegatedPrefixAggregatedListWarning: [Output Only] Informational -// warning message. -type PublicDelegatedPrefixAggregatedListWarning 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. +// InterconnectListWarning: [Output Only] Informational warning message. +type InterconnectListWarning 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" - Warning about failed cleanup of transient changes made - // by a failed operation. + // by a failed + // operation. // "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was created. // "DEPRECATED_TYPE_USED" - When deploying and at least one of the resources - // has a type marked as deprecated + // has a type marked as + // deprecated // "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk that is // larger than image size. // "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the - // resources has a type marked as experimental + // resources has a type marked as + // experimental // "EXTERNAL_API_WARNING" - Warning that is present in an external api call // "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been - // overridden. Deprecated unused field. + // overridden. + // Deprecated unused field. // "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an injected // kernel, which is deprecated. // "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB" - A WEIGHTED_MAGLEV backend - // service is associated with a health check that is not of type - // HTTP/HTTPS/HTTP2. + // service is associated with a health check that is + // not of type HTTP/HTTPS/HTTP2. // "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a // exceedingly large number of resources // "LIST_OVERHEAD_QUOTA_EXCEED" - Resource can't be retrieved due to list - // overhead quota exceed which captures the amount of resources filtered out by + // overhead quota exceed + // which captures the amount of resources filtered out by // user-defined list filter. // "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is not - // assigned to an instance on the network. + // assigned to an instance on the + // network. // "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot ip // forward. // "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE" - The route's nextHopInstance - // URL refers to an instance that does not have an ipv6 interface on the same - // network as the route. + // URL refers to an instance that does not have an + // ipv6 interface on the same network as the route. // "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL refers to // an instance that does not exist. // "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance URL - // refers to an instance that is not on the same network as the route. + // refers to an instance that is not on the + // same network as the route. // "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not have a // status of RUNNING. // "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to continue - // the process despite the mentioned error. + // the process despite + // the mentioned error. // "NO_RESULTS_ON_PAGE" - No results are present on a particular list page. // "PARTIAL_SUCCESS" - Success is reported, but some results may be missing // due to errors + // "QUOTA_INFO_UNAVAILABLE" - Quota information is not available to client + // requests (e.g: + // regions.list). // "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource that - // requires a TOS they have not accepted. + // requires a TOS they have not + // accepted. // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a resource is // in use. // "RESOURCE_NOT_DELETED" - One or more of the resources set to auto-delete - // could not be deleted because they were in use. + // could not be deleted + // because they were in use. // "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is // ignored. // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in instance - // group manager is valid as such, but its application does not make a lot of - // sense, because it allows only single instance in instance group. + // group manager is valid as such, but + // its application does not make a lot of sense, because it allows only + // single instance in instance group. // "UNDECLARED_PROPERTIES" - When undeclared properties in the schema are // present // "UNREACHABLE" - A given scope cannot be reached. 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 []*PublicDelegatedPrefixAggregatedListWarningData `json:"data,omitempty"` + // Data: [Output Only] Metadata about this warning in key: + // value format. For example: + // + // "data": [ + // { + // "key": "scope", + // "value": "zones/us-east1-d" + // } + Data []*InterconnectListWarningData `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 @@ -32699,19 +38288,22 @@ type PublicDelegatedPrefixAggregatedListWarning struct { NullFields []string `json:"-"` } -func (s *PublicDelegatedPrefixAggregatedListWarning) MarshalJSON() ([]byte, error) { - type NoMethod PublicDelegatedPrefixAggregatedListWarning - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s InterconnectListWarning) MarshalJSON() ([]byte, error) { + type NoMethod InterconnectListWarning + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -type PublicDelegatedPrefixAggregatedListWarningData 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). +type InterconnectListWarningData 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"` @@ -32728,29 +38320,220 @@ type PublicDelegatedPrefixAggregatedListWarningData struct { NullFields []string `json:"-"` } -func (s *PublicDelegatedPrefixAggregatedListWarningData) MarshalJSON() ([]byte, error) { - type NoMethod PublicDelegatedPrefixAggregatedListWarningData - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s InterconnectListWarningData) MarshalJSON() ([]byte, error) { + type NoMethod InterconnectListWarningData + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -type PublicDelegatedPrefixList struct { +// InterconnectLocation: Represents an Interconnect Attachment (VLAN) Location +// resource. +// +// You can use this resource to find location details about an +// Interconnect +// attachment (VLAN). For more information about interconnect attachments, +// read +// Creating VLAN Attachments. +type InterconnectLocation struct { + // Address: Output only. [Output Only] The postal address of the Point of + // Presence, each line in + // the address is separated by a newline character. + Address string `json:"address,omitempty"` + // AvailabilityZone: [Output Only] Availability zone for this + // InterconnectLocation. Within a + // metropolitan area (metro), maintenance will not be simultaneously + // scheduled + // in more than one availability zone. Example: "zone1" or "zone2". + AvailabilityZone string `json:"availabilityZone,omitempty"` + // AvailableFeatures: [Output only] List of features available at this + // InterconnectLocation, + // which can take one of the following values: + // + // - IF_MACSEC + // - IF_CROSS_SITE_NETWORK + // + // Possible values: + // "IF_CROSS_SITE_NETWORK" - Cross-Site Networking + // "IF_L2_FORWARDING" - L2 Interconnect Attachment Forwarding + // "IF_MACSEC" - Media Access Control security (MACsec) + AvailableFeatures []string `json:"availableFeatures,omitempty"` + // AvailableLinkTypes: [Output only] List of link types available at this + // InterconnectLocation, + // which can take one of the following values: + // + // - LINK_TYPE_ETHERNET_10G_LR + // - LINK_TYPE_ETHERNET_100G_LR + // - LINK_TYPE_ETHERNET_400G_LR4 + // + // Possible values: + // "LINK_TYPE_ETHERNET_100G_LR" - 100G Ethernet, LR Optics. + // "LINK_TYPE_ETHERNET_10G_LR" - 10G Ethernet, LR Optics. + // [(rate_bps) = 10000000000]; + // "LINK_TYPE_ETHERNET_400G_LR4" - 400G Ethernet, LR4 Optics. + AvailableLinkTypes []string `json:"availableLinkTypes,omitempty"` + // City: [Output Only] Metropolitan area designator that indicates which city + // an + // interconnect is located. + // For example: "Chicago, IL", "Amsterdam, Netherlands". + City string `json:"city,omitempty"` + // Continent: [Output Only] Continent for this location, which can take one of + // the + // following values: + // + // - AFRICA + // - ASIA_PAC + // - EUROPE + // - NORTH_AMERICA + // - SOUTH_AMERICA + // + // Possible values: + // "AFRICA" + // "ASIA_PAC" + // "C_AFRICA" + // "C_ASIA_PAC" + // "C_EUROPE" + // "C_NORTH_AMERICA" + // "C_SOUTH_AMERICA" + // "EUROPE" + // "NORTH_AMERICA" + // "SOUTH_AMERICA" + Continent string `json:"continent,omitempty"` + // CreationTimestamp: Output only. [Output Only] Creation timestamp + // inRFC3339 + // text format. + CreationTimestamp string `json:"creationTimestamp,omitempty"` + // CrossSiteInterconnectInfos: [Output Only] A list of + // InterconnectLocation.CrossSiteInterconnectInfo + // objects, that describe where Cross-Site Interconnect wires may connect + // to + // from this location and associated connection parameters. + // Cross-Site + // Interconnect isn't allowed to locations which are not listed. + CrossSiteInterconnectInfos []*InterconnectLocationCrossSiteInterconnectInfo `json:"crossSiteInterconnectInfos,omitempty"` + // Description: Output only. [Output Only] An optional description of the + // resource. + Description string `json:"description,omitempty"` + // FacilityProvider: Output only. [Output Only] The name of the provider for + // this facility (e.g., EQUINIX). + FacilityProvider string `json:"facilityProvider,omitempty"` + // FacilityProviderFacilityId: Output only. [Output Only] A provider-assigned + // Identifier for this facility (e.g., + // Ashburn-DC1). + FacilityProviderFacilityId string `json:"facilityProviderFacilityId,omitempty"` + // Id: Output only. [Output Only] The unique identifier for the resource. This + // identifier is + // defined by the server. + Id uint64 `json:"id,omitempty,string"` + // Kind: Output only. [Output Only] Type of the resource. + // Alwayscompute#interconnectLocation for interconnect locations. + Kind string `json:"kind,omitempty"` + // Name: Output only. [Output Only] Name of the resource. + Name string `json:"name,omitempty"` + // PeeringdbFacilityId: Output only. [Output Only] The peeringdb identifier for + // this facility (corresponding + // with a netfac type in peeringdb). + PeeringdbFacilityId string `json:"peeringdbFacilityId,omitempty"` + // RegionInfos: Output only. [Output Only] A list of + // InterconnectLocation.RegionInfo objects, that + // describe parameters pertaining to the relation between + // this + // InterconnectLocation and various Google Cloud regions. + RegionInfos []*InterconnectLocationRegionInfo `json:"regionInfos,omitempty"` + // SelfLink: Output only. [Output Only] Server-defined URL for the resource. + SelfLink string `json:"selfLink,omitempty"` + // SingleRegionProductionCriticalPeerLocations: Output only. [Output Only] URLs + // of the other locations that can pair up with this + // location to support Single-Region 99.99% SLA. E.g. iad-zone1-1 + // and + // iad-zone2-5467 are Single-Region 99.99% peer locations of each other. + SingleRegionProductionCriticalPeerLocations []string `json:"singleRegionProductionCriticalPeerLocations,omitempty"` + // Status: [Output Only] The status of this InterconnectLocation, which can + // take one + // of the following values: + // + // - CLOSED: The InterconnectLocation is closed and is unavailable for + // provisioning new Interconnects. + // - AVAILABLE: The InterconnectLocation is available for provisioning new + // Interconnects. + // + // Possible values: + // "AVAILABLE" - The InterconnectLocation is available for provisioning new + // Interconnects. + // "CLOSED" - The InterconnectLocation is closed for provisioning new + // Interconnects. + Status string `json:"status,omitempty"` + // SupportsPzs: Output only. [Output Only] Reserved for future use. + SupportsPzs bool `json:"supportsPzs,omitempty"` + + // ServerResponse contains the HTTP response code and headers from the server. + googleapi.ServerResponse `json:"-"` + // ForceSendFields is a list of field names (e.g. "Address") to unconditionally + // include in API requests. By default, fields with empty or default values are + // omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + ForceSendFields []string `json:"-"` + // NullFields is a list of field names (e.g. "Address") to include in API + // requests with the JSON null value. By default, fields with empty values are + // omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s InterconnectLocation) MarshalJSON() ([]byte, error) { + type NoMethod InterconnectLocation + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +// InterconnectLocationCrossSiteInterconnectInfo: Information about Cross-Site +// Interconnect wires which may be created +// between the containing location and another remote location. +type InterconnectLocationCrossSiteInterconnectInfo struct { + // City: Output only. The remote location for Cross-Site Interconnect wires. + // This specifies an + // InterconnectLocation city (metropolitan area designator), which itself + // may match multiple InterconnectLocations. + City string `json:"city,omitempty"` + // ForceSendFields is a list of field names (e.g. "City") to unconditionally + // include in API requests. By default, fields with empty or default values are + // omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + ForceSendFields []string `json:"-"` + // NullFields is a list of field names (e.g. "City") to include in API requests + // with the JSON null value. By default, fields with empty values are omitted + // from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s InterconnectLocationCrossSiteInterconnectInfo) MarshalJSON() ([]byte, error) { + type NoMethod InterconnectLocationCrossSiteInterconnectInfo + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +// InterconnectLocationList: Response to the list request, and contains a list +// of interconnect locations. +type InterconnectLocationList struct { // Id: [Output Only] Unique identifier for the resource; defined by the server. Id string `json:"id,omitempty"` - // Items: A list of PublicDelegatedPrefix resources. - Items []*PublicDelegatedPrefix `json:"items,omitempty"` - // Kind: [Output Only] Type of the resource. Always - // compute#publicDelegatedPrefixList for public delegated prefixes. + // Items: A list of InterconnectLocation resources. + Items []*InterconnectLocation `json:"items,omitempty"` + // Kind: Output only. [Output Only] Type of resource. + // Alwayscompute#interconnectLocationList for lists of interconnect + // locations. 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. + // results for + // list requests. If the number of results is larger thanmaxResults, 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"` - // SelfLink: [Output Only] Server-defined URL for this resource. + // SelfLink: Output only. [Output Only] Server-defined URL for this resource. SelfLink string `json:"selfLink,omitempty"` // Warning: [Output Only] Informational warning message. - Warning *PublicDelegatedPrefixListWarning `json:"warning,omitempty"` + Warning *InterconnectLocationListWarning `json:"warning,omitempty"` // ServerResponse contains the HTTP response code and headers from the server. googleapi.ServerResponse `json:"-"` @@ -32767,77 +38550,99 @@ type PublicDelegatedPrefixList struct { NullFields []string `json:"-"` } -func (s *PublicDelegatedPrefixList) MarshalJSON() ([]byte, error) { - type NoMethod PublicDelegatedPrefixList - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s InterconnectLocationList) MarshalJSON() ([]byte, error) { + type NoMethod InterconnectLocationList + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -// PublicDelegatedPrefixListWarning: [Output Only] Informational warning +// InterconnectLocationListWarning: [Output Only] Informational warning // message. -type PublicDelegatedPrefixListWarning 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. +type InterconnectLocationListWarning 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" - Warning about failed cleanup of transient changes made - // by a failed operation. + // by a failed + // operation. // "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was created. // "DEPRECATED_TYPE_USED" - When deploying and at least one of the resources - // has a type marked as deprecated + // has a type marked as + // deprecated // "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk that is // larger than image size. // "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the - // resources has a type marked as experimental + // resources has a type marked as + // experimental // "EXTERNAL_API_WARNING" - Warning that is present in an external api call // "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been - // overridden. Deprecated unused field. + // overridden. + // Deprecated unused field. // "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an injected // kernel, which is deprecated. // "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB" - A WEIGHTED_MAGLEV backend - // service is associated with a health check that is not of type - // HTTP/HTTPS/HTTP2. + // service is associated with a health check that is + // not of type HTTP/HTTPS/HTTP2. // "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a // exceedingly large number of resources // "LIST_OVERHEAD_QUOTA_EXCEED" - Resource can't be retrieved due to list - // overhead quota exceed which captures the amount of resources filtered out by + // overhead quota exceed + // which captures the amount of resources filtered out by // user-defined list filter. // "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is not - // assigned to an instance on the network. + // assigned to an instance on the + // network. // "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot ip // forward. // "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE" - The route's nextHopInstance - // URL refers to an instance that does not have an ipv6 interface on the same - // network as the route. + // URL refers to an instance that does not have an + // ipv6 interface on the same network as the route. // "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL refers to // an instance that does not exist. // "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance URL - // refers to an instance that is not on the same network as the route. + // refers to an instance that is not on the + // same network as the route. // "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not have a // status of RUNNING. // "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to continue - // the process despite the mentioned error. + // the process despite + // the mentioned error. // "NO_RESULTS_ON_PAGE" - No results are present on a particular list page. // "PARTIAL_SUCCESS" - Success is reported, but some results may be missing // due to errors + // "QUOTA_INFO_UNAVAILABLE" - Quota information is not available to client + // requests (e.g: + // regions.list). // "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource that - // requires a TOS they have not accepted. + // requires a TOS they have not + // accepted. // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a resource is // in use. // "RESOURCE_NOT_DELETED" - One or more of the resources set to auto-delete - // could not be deleted because they were in use. + // could not be deleted + // because they were in use. // "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is // ignored. // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in instance - // group manager is valid as such, but its application does not make a lot of - // sense, because it allows only single instance in instance group. + // group manager is valid as such, but + // its application does not make a lot of sense, because it allows only + // single instance in instance group. // "UNDECLARED_PROPERTIES" - When undeclared properties in the schema are // present // "UNREACHABLE" - A given scope cannot be reached. 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 []*PublicDelegatedPrefixListWarningData `json:"data,omitempty"` + // Data: [Output Only] Metadata about this warning in key: + // value format. For example: + // + // "data": [ + // { + // "key": "scope", + // "value": "zones/us-east1-d" + // } + Data []*InterconnectLocationListWarningData `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 @@ -32853,19 +38658,22 @@ type PublicDelegatedPrefixListWarning struct { NullFields []string `json:"-"` } -func (s *PublicDelegatedPrefixListWarning) MarshalJSON() ([]byte, error) { - type NoMethod PublicDelegatedPrefixListWarning - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s InterconnectLocationListWarning) MarshalJSON() ([]byte, error) { + type NoMethod InterconnectLocationListWarning + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -type PublicDelegatedPrefixListWarningData 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). +type InterconnectLocationListWarningData 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"` @@ -32882,298 +38690,15391 @@ type PublicDelegatedPrefixListWarningData struct { NullFields []string `json:"-"` } -func (s *PublicDelegatedPrefixListWarningData) MarshalJSON() ([]byte, error) { - type NoMethod PublicDelegatedPrefixListWarningData - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s InterconnectLocationListWarningData) MarshalJSON() ([]byte, error) { + type NoMethod InterconnectLocationListWarningData + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -// PublicDelegatedPrefixPublicDelegatedSubPrefix: Represents a sub -// PublicDelegatedPrefix. -type PublicDelegatedPrefixPublicDelegatedSubPrefix struct { - // AllocatablePrefixLength: The allocatable prefix length supported by this - // PublicDelegatedSubPrefix. - AllocatablePrefixLength int64 `json:"allocatablePrefixLength,omitempty"` - // DelegateeProject: Name of the project scoping this PublicDelegatedSubPrefix. - DelegateeProject string `json:"delegateeProject,omitempty"` - // Description: An optional description of this resource. Provide this property - // when you create the resource. - Description string `json:"description,omitempty"` - // IpCidrRange: The IP address range, in CIDR format, represented by this sub - // public delegated prefix. - IpCidrRange string `json:"ipCidrRange,omitempty"` - // IsAddress: Whether the sub prefix is delegated to create Address resources - // in the delegatee project. - IsAddress bool `json:"isAddress,omitempty"` - // Mode: The PublicDelegatedSubPrefix mode for IPv6 only. +// InterconnectLocationRegionInfo: Information about any potential +// InterconnectAttachments between an +// Interconnect at a specific InterconnectLocation, and a specific +// Cloud +// Region. +type InterconnectLocationRegionInfo struct { + // ExpectedRttMs: Output only. Expected round-trip time in milliseconds, from + // this InterconnectLocation + // to a VM in this region. + ExpectedRttMs int64 `json:"expectedRttMs,omitempty,string"` + // L2ForwardingEnabled: Output only. Identifies whether L2 Interconnect + // Attachments can be created in this + // region for interconnects that are in this location. + L2ForwardingEnabled bool `json:"l2ForwardingEnabled,omitempty"` + // LocationPresence: Output only. Identifies the network presence of this + // location. // // Possible values: - // "DELEGATION" - The public delegated prefix is used for further - // sub-delegation only. Such prefixes cannot set allocatablePrefixLength. - // "EXTERNAL_IPV6_FORWARDING_RULE_CREATION" - The public delegated prefix is - // used for creating forwarding rules only. Such prefixes cannot set - // publicDelegatedSubPrefixes. - Mode string `json:"mode,omitempty"` - // Name: The name of the sub public delegated prefix. - Name string `json:"name,omitempty"` - // Region: [Output Only] The region of the sub public delegated prefix if it is - // regional. If absent, the sub prefix is global. + // "GLOBAL" - This region is not in any common network presence with + // this + // InterconnectLocation. + // "LOCAL_REGION" - This region shares the same regional network presence as + // this + // InterconnectLocation. + // "LP_GLOBAL" - [Deprecated] This region is not in any common network + // presence with + // this InterconnectLocation. + // "LP_LOCAL_REGION" - [Deprecated] This region shares the same regional + // network presence as + // this InterconnectLocation. + LocationPresence string `json:"locationPresence,omitempty"` + // Region: Output only. URL for the region of this location. Region string `json:"region,omitempty"` - // Status: [Output Only] The status of the sub public delegated prefix. - // - // Possible values: - // "ACTIVE" - // "INACTIVE" - Status string `json:"status,omitempty"` - // ForceSendFields is a list of field names (e.g. "AllocatablePrefixLength") to + // ForceSendFields is a list of field names (e.g. "ExpectedRttMs") to // unconditionally include in API requests. By default, fields with empty or // default values are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. ForceSendFields []string `json:"-"` - // NullFields is a list of field names (e.g. "AllocatablePrefixLength") to - // include in API requests with the JSON null value. By default, fields with - // empty values are omitted from API requests. See + // NullFields is a list of field names (e.g. "ExpectedRttMs") to include in API + // requests with the JSON null value. By default, fields with empty values are + // omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } -func (s *PublicDelegatedPrefixPublicDelegatedSubPrefix) MarshalJSON() ([]byte, error) { - type NoMethod PublicDelegatedPrefixPublicDelegatedSubPrefix - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s InterconnectLocationRegionInfo) MarshalJSON() ([]byte, error) { + type NoMethod InterconnectLocationRegionInfo + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -type PublicDelegatedPrefixesScopedList struct { - // PublicDelegatedPrefixes: [Output Only] A list of PublicDelegatedPrefixes - // contained in this scope. - PublicDelegatedPrefixes []*PublicDelegatedPrefix `json:"publicDelegatedPrefixes,omitempty"` - // Warning: [Output Only] Informational warning which replaces the list of - // public delegated prefixes when the list is empty. - Warning *PublicDelegatedPrefixesScopedListWarning `json:"warning,omitempty"` - // ForceSendFields is a list of field names (e.g. "PublicDelegatedPrefixes") to +// InterconnectMacsec: Configuration information for enabling Media Access +// Control security +// (MACsec) on this Cloud Interconnect connection between Google and +// your +// on-premises router. +type InterconnectMacsec struct { + // FailOpen: If set to true, the Interconnect connection is configured with + // ashould-secure MACsec security policy, that allows the Google + // router to fallback to cleartext traffic if the MKA session cannot + // be + // established. By default, the Interconnect connection is configured with + // amust-secure security policy that drops all traffic if the + // MKA session cannot be established with your router. + FailOpen bool `json:"failOpen,omitempty"` + // PreSharedKeys: Required. A keychain placeholder describing a set of named + // key objects + // along with their start times. A MACsec CKN/CAK is generated for each + // key in the key chain. Google router automatically picks the key with + // the most recent startTime when establishing or re-establishing a + // MACsec + // secure link. + PreSharedKeys []*InterconnectMacsecPreSharedKey `json:"preSharedKeys,omitempty"` + // ForceSendFields is a list of field names (e.g. "FailOpen") to // unconditionally include in API requests. By default, fields with empty or // default values are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. ForceSendFields []string `json:"-"` - // NullFields is a list of field names (e.g. "PublicDelegatedPrefixes") to - // include in API requests with the JSON null value. By default, fields with - // empty values are omitted from API requests. See + // NullFields is a list of field names (e.g. "FailOpen") to include in API + // requests with the JSON null value. By default, fields with empty values are + // omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } -func (s *PublicDelegatedPrefixesScopedList) MarshalJSON() ([]byte, error) { - type NoMethod PublicDelegatedPrefixesScopedList - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s InterconnectMacsec) MarshalJSON() ([]byte, error) { + type NoMethod InterconnectMacsec + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -// PublicDelegatedPrefixesScopedListWarning: [Output Only] Informational -// warning which replaces the list of public delegated prefixes when the list -// is empty. -type PublicDelegatedPrefixesScopedListWarning 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" - Warning about failed cleanup of transient changes made - // by a failed operation. - // "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was created. - // "DEPRECATED_TYPE_USED" - When deploying and at least one of the resources - // has a type marked as deprecated - // "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk that is - // larger than image size. - // "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the - // resources has a type marked as experimental - // "EXTERNAL_API_WARNING" - Warning that is present in an external api call - // "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been - // overridden. Deprecated unused field. - // "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an injected - // kernel, which is deprecated. - // "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB" - A WEIGHTED_MAGLEV backend - // service is associated with a health check that is not of type - // HTTP/HTTPS/HTTP2. - // "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a - // exceedingly large number of resources - // "LIST_OVERHEAD_QUOTA_EXCEED" - Resource can't be retrieved due to list - // overhead quota exceed which captures the amount of resources filtered out by - // user-defined list filter. - // "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type - // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is not - // assigned to an instance on the network. - // "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot ip - // forward. - // "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE" - The route's nextHopInstance - // URL refers to an instance that does not have an ipv6 interface on the same - // network as the route. - // "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL refers to - // an instance that does not exist. - // "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance URL - // refers to an instance that is not on the same network as the route. - // "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not have a - // status of RUNNING. - // "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to continue - // the process despite the mentioned error. - // "NO_RESULTS_ON_PAGE" - No results are present on a particular list page. - // "PARTIAL_SUCCESS" - Success is reported, but some results may be missing - // due to errors - // "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource that - // requires a TOS they have not accepted. - // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a resource is - // in use. - // "RESOURCE_NOT_DELETED" - One or more of the resources set to auto-delete - // could not be deleted because they were in use. - // "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is - // ignored. - // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in instance - // group manager is valid as such, but its application does not make a lot of - // sense, because it allows only single instance in instance group. - // "UNDECLARED_PROPERTIES" - When undeclared properties in the schema are - // present - // "UNREACHABLE" - A given scope cannot be reached. - 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 []*PublicDelegatedPrefixesScopedListWarningData `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 +// InterconnectMacsecConfig: MACsec configuration information for the +// Interconnect connection. Contains +// the generated Connectivity Association Key Name (CKN) and the key (CAK) +// for +// this Interconnect connection. +type InterconnectMacsecConfig struct { + // PreSharedKeys: A keychain placeholder describing a set of named key + // objects + // along with their start times. A MACsec CKN/CAK is generated for each key + // in + // the key chain. Google router automatically picks the key with the + // most + // recent startTime when establishing or re-establishing a MACsec secure link. + PreSharedKeys []*InterconnectMacsecConfigPreSharedKey `json:"preSharedKeys,omitempty"` + // ForceSendFields is a list of field names (e.g. "PreSharedKeys") to + // unconditionally include in API requests. By default, fields with empty or + // default values are omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + ForceSendFields []string `json:"-"` + // NullFields is a list of field names (e.g. "PreSharedKeys") to include in API + // requests with the JSON null value. By default, fields with empty values are + // omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s InterconnectMacsecConfig) MarshalJSON() ([]byte, error) { + type NoMethod InterconnectMacsecConfig + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +// InterconnectMacsecConfigPreSharedKey: Describes a pre-shared key used to +// setup MACsec in static connectivity +// association key (CAK) mode. +type InterconnectMacsecConfigPreSharedKey struct { + // Cak: An auto-generated Connectivity Association Key (CAK) for this key. + Cak string `json:"cak,omitempty"` + // Ckn: An auto-generated Connectivity Association Key Name (CKN) for this key. + Ckn string `json:"ckn,omitempty"` + // Name: User provided name for this pre-shared key. + Name string `json:"name,omitempty"` + // StartTime: User provided timestamp on or after which this key is valid. + StartTime string `json:"startTime,omitempty"` + // ForceSendFields is a list of field names (e.g. "Cak") to unconditionally // include in API requests. By default, fields with empty or default values are // omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. ForceSendFields []string `json:"-"` - // NullFields is a list of field names (e.g. "Code") to include in API requests + // NullFields is a list of field names (e.g. "Cak") to include in API requests // with the JSON null value. By default, fields with empty values are omitted // from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } -func (s *PublicDelegatedPrefixesScopedListWarning) MarshalJSON() ([]byte, error) { - type NoMethod PublicDelegatedPrefixesScopedListWarning - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s InterconnectMacsecConfigPreSharedKey) MarshalJSON() ([]byte, error) { + type NoMethod InterconnectMacsecConfigPreSharedKey + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -type PublicDelegatedPrefixesScopedListWarningData 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 +// InterconnectMacsecPreSharedKey: Describes a pre-shared key used to setup +// MACsec in static connectivity +// association key (CAK) mode. +type InterconnectMacsecPreSharedKey struct { + // Name: Required. A name for this pre-shared key. + // The name must be 1-63 characters long, and comply withRFC1035. 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. + Name string `json:"name,omitempty"` + // StartTime: A RFC3339 timestamp on or after which the key is + // valid. startTime can be in the future. If the keychain has a single + // key, startTime can be omitted. If the keychain has multiple keys, + // startTime is mandatory for each key. The start times of keys must be + // in + // increasing order. The start times of two consecutive keys must be + // at least 6 hours apart. + StartTime string `json:"startTime,omitempty"` + // ForceSendFields is a list of field names (e.g. "Name") to unconditionally // include in API requests. By default, fields with empty or default values are // omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. ForceSendFields []string `json:"-"` - // NullFields is a list of field names (e.g. "Key") to include in API requests + // NullFields is a list of field names (e.g. "Name") to include in API requests // with the JSON null value. By default, fields with empty values are omitted // from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } -func (s *PublicDelegatedPrefixesScopedListWarningData) MarshalJSON() ([]byte, error) { - type NoMethod PublicDelegatedPrefixesScopedListWarningData - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s InterconnectMacsecPreSharedKey) MarshalJSON() ([]byte, error) { + type NoMethod InterconnectMacsecPreSharedKey + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -// Quota: A quotas entry. -type Quota struct { - // Limit: [Output Only] Quota limit for this metric. - Limit float64 `json:"limit,omitempty"` - // Metric: [Output Only] Name of the quota metric. +// InterconnectOutageNotification: Description of a planned outage on this +// Interconnect. +type InterconnectOutageNotification struct { + // AffectedCircuits: If issue_type is IT_PARTIAL_OUTAGE, a list of the + // Google-side circuit + // IDs that will be affected. + AffectedCircuits []string `json:"affectedCircuits,omitempty"` + // Description: A description about the purpose of the outage. + Description string `json:"description,omitempty"` + // EndTime: Scheduled end time for the outage (milliseconds since Unix + // epoch). + EndTime int64 `json:"endTime,omitempty,string"` + // IssueType: Form this outage is expected to take, which can take one of the + // following + // values: + // + // - OUTAGE: The Interconnect may be completely out of service for + // some or all of the specified window. + // - PARTIAL_OUTAGE: Some circuits comprising the Interconnect as a whole + // should remain up, but with reduced bandwidth. + // + // + // Note that the versions of this enum prefixed with "IT_" have been + // deprecated in favor of the unprefixed values. // // Possible values: - // "A2_CPUS" - // "AFFINITY_GROUPS" - // "AUTOSCALERS" - // "BACKEND_BUCKETS" - // "BACKEND_SERVICES" - // "C2D_CPUS" - // "C2_CPUS" - // "C3_CPUS" - // "COMMITMENTS" - // "COMMITTED_A2_CPUS" - // "COMMITTED_C2D_CPUS" - // "COMMITTED_C2_CPUS" - // "COMMITTED_C3_CPUS" - // "COMMITTED_CPUS" - // "COMMITTED_E2_CPUS" - // "COMMITTED_LICENSES" - // "COMMITTED_LOCAL_SSD_TOTAL_GB" - // "COMMITTED_M3_CPUS" - // "COMMITTED_MEMORY_OPTIMIZED_CPUS" - // "COMMITTED_N2A_CPUS" - // "COMMITTED_N2D_CPUS" - // "COMMITTED_N2_CPUS" - // "COMMITTED_NVIDIA_A100_80GB_GPUS" - // "COMMITTED_NVIDIA_A100_GPUS" - // "COMMITTED_NVIDIA_H100_GPUS" - // "COMMITTED_NVIDIA_K80_GPUS" - // "COMMITTED_NVIDIA_L4_GPUS" - // "COMMITTED_NVIDIA_P100_GPUS" - // "COMMITTED_NVIDIA_P4_GPUS" - // "COMMITTED_NVIDIA_T4_GPUS" - // "COMMITTED_NVIDIA_V100_GPUS" - // "COMMITTED_T2A_CPUS" - // "COMMITTED_T2D_CPUS" - // "COMMITTED_Z3_CPUS" - // "CPUS" - Guest CPUs - // "CPUS_ALL_REGIONS" - // "DISKS_TOTAL_GB" - // "E2_CPUS" - // "EXTERNAL_MANAGED_FORWARDING_RULES" - // "EXTERNAL_NETWORK_LB_FORWARDING_RULES" - // "EXTERNAL_PROTOCOL_FORWARDING_RULES" - // "EXTERNAL_VPN_GATEWAYS" - // "FIREWALLS" - // "FORWARDING_RULES" - // "GLOBAL_EXTERNAL_MANAGED_BACKEND_SERVICES" - // "GLOBAL_EXTERNAL_MANAGED_FORWARDING_RULES" - // "GLOBAL_EXTERNAL_PROXY_LB_BACKEND_SERVICES" - // "GLOBAL_INTERNAL_ADDRESSES" - // "GLOBAL_INTERNAL_MANAGED_BACKEND_SERVICES" - // "GLOBAL_INTERNAL_TRAFFIC_DIRECTOR_BACKEND_SERVICES" - // "GPUS_ALL_REGIONS" - // "HDB_TOTAL_GB" - // "HDB_TOTAL_IOPS" - // "HDB_TOTAL_THROUGHPUT" - // "HEALTH_CHECKS" - // "IMAGES" - // "INSTANCES" - // "INSTANCE_GROUPS" - // "INSTANCE_GROUP_MANAGERS" - // "INSTANCE_TEMPLATES" - // "INTERCONNECTS" - // "INTERCONNECT_ATTACHMENTS_PER_REGION" - // "INTERCONNECT_ATTACHMENTS_TOTAL_MBPS" - // "INTERCONNECT_TOTAL_GBPS" - // "INTERNAL_ADDRESSES" - // "INTERNAL_TRAFFIC_DIRECTOR_FORWARDING_RULES" - // "IN_PLACE_SNAPSHOTS" - // "IN_USE_ADDRESSES" - // "IN_USE_BACKUP_SCHEDULES" - // "IN_USE_SNAPSHOT_SCHEDULES" - // "LOCAL_SSD_TOTAL_GB" - // "M1_CPUS" - // "M2_CPUS" - // "M3_CPUS" - // "MACHINE_IMAGES" - // "N2A_CPUS" - // "N2D_CPUS" - // "N2_CPUS" - // "NETWORKS" - // "NETWORK_ATTACHMENTS" - // "NETWORK_ENDPOINT_GROUPS" - // "NETWORK_FIREWALL_POLICIES" - // "NET_LB_SECURITY_POLICIES_PER_REGION" - // "NET_LB_SECURITY_POLICY_RULES_PER_REGION" + // "IT_OUTAGE" - [Deprecated] The Interconnect may be completely out of + // service for some + // or all of the specified window. + // "IT_PARTIAL_OUTAGE" - [Deprecated] Some circuits comprising the + // Interconnect will be out of + // service during the expected window. The interconnect as a whole + // should + // remain up, albeit with reduced bandwidth. + // "OUTAGE" - The Interconnect may be completely out of service for some or + // all of + // the specified window. + // "PARTIAL_OUTAGE" - Some circuits comprising the Interconnect will be out + // of service during + // the expected window. The interconnect as a whole should remain + // up, albeit with reduced bandwidth. + IssueType string `json:"issueType,omitempty"` + // Name: Unique identifier for this outage notification. + Name string `json:"name,omitempty"` + // Source: The party that generated this notification, which can take the + // following + // value: + // + // - GOOGLE: this notification as generated by Google. + // + // + // Note that the value of NSRC_GOOGLE has been deprecated in favor of + // GOOGLE. + // + // Possible values: + // "GOOGLE" - This notification was generated by Google. + // "NSRC_GOOGLE" - [Deprecated] This notification was generated by Google. + Source string `json:"source,omitempty"` + // StartTime: Scheduled start time for the outage (milliseconds since + // Unix + // epoch). + StartTime int64 `json:"startTime,omitempty,string"` + // State: State of this notification, which can take one of the following + // values: + // + // - ACTIVE: This outage notification is active. The event could be in + // the past, present, or future. See start_time and end_time for + // scheduling. + // - CANCELLED: The outage associated with this notification was cancelled + // before the outage was due to start. + // - COMPLETED: The outage associated with this notification is + // complete. + // + // + // Note that the versions of this enum prefixed with "NS_" have been + // deprecated in favor of the unprefixed values. + // + // Possible values: + // "ACTIVE" - This outage notification is active. The event could be in the + // future, + // present, or past. See start_time and end_time for scheduling. + // "CANCELLED" - The outage associated with this notification was cancelled + // before the + // outage was due to start. + // "COMPLETED" - The outage associated with this notification is complete. + // "NS_ACTIVE" - [Deprecated] This outage notification is active. The event + // could be in + // the future, present, or past. See start_time and end_time for + // scheduling. + // "NS_CANCELED" - [Deprecated] The outage associated with this notification + // was canceled + // before the outage was due to start. + State string `json:"state,omitempty"` + // ForceSendFields is a list of field names (e.g. "AffectedCircuits") to + // unconditionally include in API requests. By default, fields with empty or + // default values are omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + ForceSendFields []string `json:"-"` + // NullFields is a list of field names (e.g. "AffectedCircuits") to include in + // API requests with the JSON null value. By default, fields with empty values + // are omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s InterconnectOutageNotification) MarshalJSON() ([]byte, error) { + type NoMethod InterconnectOutageNotification + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +// InterconnectParams: Additional interconnect parameters. +type InterconnectParams struct { + // ResourceManagerTags: Tag keys/values directly bound to this resource. + // Tag keys and values have the same definition as resource + // manager tags. The field is allowed for INSERT + // only. The keys/values to set on the resource should be specified in + // either ID { : } or Namespaced format + // { : }. + // For example the following are valid inputs: + // * {"tagKeys/333" : "tagValues/444", "tagKeys/123" : "tagValues/456"} + // * {"123/environment" : "production", "345/abc" : "xyz"} + // Note: + // * Invalid combinations of ID & namespaced format is not supported. For + // instance: {"123/environment" : "tagValues/444"} is invalid. + // * Inconsistent format is not supported. For instance: + // {"tagKeys/333" : "tagValues/444", "123/env" : "prod"} is invalid. + ResourceManagerTags map[string]string `json:"resourceManagerTags,omitempty"` + // ForceSendFields is a list of field names (e.g. "ResourceManagerTags") to + // unconditionally include in API requests. By default, fields with empty or + // default values are omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + ForceSendFields []string `json:"-"` + // NullFields is a list of field names (e.g. "ResourceManagerTags") to include + // in API requests with the JSON null value. By default, fields with empty + // values are omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s InterconnectParams) MarshalJSON() ([]byte, error) { + type NoMethod InterconnectParams + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +// InterconnectRemoteLocation: Represents a Cross-Cloud Interconnect Remote +// Location resource. +// +// You can use this resource to find remote location details about +// an +// Interconnect attachment (VLAN). +type InterconnectRemoteLocation struct { + // Address: Output only. [Output Only] The postal address of the Point of + // Presence, each line in + // the address is separated by a newline character. + Address string `json:"address,omitempty"` + // AttachmentConfigurationConstraints: Output only. [Output Only] Subset of + // fields from InterconnectAttachment's + // |configurationConstraints| field that apply to all attachments for + // this + // remote location. + AttachmentConfigurationConstraints *InterconnectAttachmentConfigurationConstraints `json:"attachmentConfigurationConstraints,omitempty"` + // City: Output only. [Output Only] Metropolitan area designator that indicates + // which city an + // interconnect is located. + // For example: "Chicago, IL", "Amsterdam, Netherlands". + City string `json:"city,omitempty"` + // Constraints: Output only. [Output Only] Constraints on the parameters for + // creating Cross-Cloud + // Interconnect and associated InterconnectAttachments. + Constraints *InterconnectRemoteLocationConstraints `json:"constraints,omitempty"` + // Continent: Output only. [Output Only] Continent for this location, which can + // take one of the + // following values: + // + // - AFRICA + // - ASIA_PAC + // - EUROPE + // - NORTH_AMERICA + // - SOUTH_AMERICA + // + // Possible values: + // "AFRICA" + // "ASIA_PAC" + // "EUROPE" + // "NORTH_AMERICA" + // "SOUTH_AMERICA" + Continent string `json:"continent,omitempty"` + // CreationTimestamp: Output only. [Output Only] Creation timestamp + // inRFC3339 + // text format. + CreationTimestamp string `json:"creationTimestamp,omitempty"` + // Description: Output only. [Output Only] An optional description of the + // resource. + Description string `json:"description,omitempty"` + // FacilityProvider: Output only. [Output Only] The name of the provider for + // this facility (e.g., EQUINIX). + FacilityProvider string `json:"facilityProvider,omitempty"` + // FacilityProviderFacilityId: Output only. [Output Only] A provider-assigned + // Identifier for this facility (e.g., + // Ashburn-DC1). + FacilityProviderFacilityId string `json:"facilityProviderFacilityId,omitempty"` + // Id: Output only. [Output Only] The unique identifier for the resource. This + // identifier is + // defined by the server. + Id uint64 `json:"id,omitempty,string"` + // Kind: Output only. [Output Only] Type of the resource. + // Alwayscompute#interconnectRemoteLocation for interconnect remote + // locations. + Kind string `json:"kind,omitempty"` + // Lacp: Output only. [Output Only] Link Aggregation Control Protocol (LACP) + // constraints, which + // can take one of the following values: LACP_SUPPORTED, LACP_UNSUPPORTED + // + // Possible values: + // "LACP_SUPPORTED" - LACP_SUPPORTED: LACP is supported, and enabled by + // default on + // the Cross-Cloud Interconnect. + // "LACP_UNSUPPORTED" - LACP_UNSUPPORTED: LACP is not supported and is not be + // enabled on this + // port. GetDiagnostics shows bundleAggregationType as "static". GCP does + // not support LAGs without LACP, so requestedLinkCount must be 1. + Lacp string `json:"lacp,omitempty"` + // MaxLagSize100Gbps: Output only. [Output Only] + // The maximum number of 100 Gbps ports supported in a link aggregation + // group + // (LAG). When linkType is 100 Gbps, requestedLinkCount cannot + // exceed + // max_lag_size_100_gbps. + MaxLagSize100Gbps int64 `json:"maxLagSize100Gbps,omitempty"` + // MaxLagSize10Gbps: Output only. [Output Only] + // The maximum number of 10 Gbps ports supported in a link aggregation + // group + // (LAG). When linkType is 10 Gbps, requestedLinkCount cannot + // exceed + // max_lag_size_10_gbps. + MaxLagSize10Gbps int64 `json:"maxLagSize10Gbps,omitempty"` + // MaxLagSize400Gbps: Output only. [Output Only] + // The maximum number of 400 Gbps ports supported in a link aggregation + // group + // (LAG). When linkType is 400 Gbps, requestedLinkCount cannot + // exceed + // max_lag_size_400_gbps. + MaxLagSize400Gbps int64 `json:"maxLagSize400Gbps,omitempty"` + // Name: Output only. [Output Only] Name of the resource. + Name string `json:"name,omitempty"` + // PeeringdbFacilityId: Output only. [Output Only] The peeringdb identifier for + // this facility (corresponding + // with a netfac type in peeringdb). + PeeringdbFacilityId string `json:"peeringdbFacilityId,omitempty"` + // PermittedConnections: Output only. [Output Only] Permitted connections. + PermittedConnections []*InterconnectRemoteLocationPermittedConnections `json:"permittedConnections,omitempty"` + // RemoteService: Output only. [Output Only] Indicates the service provider + // present at the remote + // location. Example values: "Amazon Web Services", "Microsoft Azure". + RemoteService string `json:"remoteService,omitempty"` + // SelfLink: Output only. [Output Only] Server-defined URL for the resource. + SelfLink string `json:"selfLink,omitempty"` + // Status: Output only. [Output Only] The status of this + // InterconnectRemoteLocation, which can take + // one of the following values: + // + // - CLOSED: The InterconnectRemoteLocation is closed and is unavailable + // for provisioning new Cross-Cloud Interconnects. + // - AVAILABLE: The + // InterconnectRemoteLocation is available for provisioning new + // Cross-Cloud Interconnects. + // + // Possible values: + // "AVAILABLE" - The InterconnectRemoteLocation is available for provisioning + // new + // Cross-Cloud Interconnects. + // "CLOSED" - The InterconnectRemoteLocation is closed for provisioning + // new + // Cross-Cloud Interconnects. + Status string `json:"status,omitempty"` + + // ServerResponse contains the HTTP response code and headers from the server. + googleapi.ServerResponse `json:"-"` + // ForceSendFields is a list of field names (e.g. "Address") to unconditionally + // include in API requests. By default, fields with empty or default values are + // omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + ForceSendFields []string `json:"-"` + // NullFields is a list of field names (e.g. "Address") to include in API + // requests with the JSON null value. By default, fields with empty values are + // omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s InterconnectRemoteLocation) MarshalJSON() ([]byte, error) { + type NoMethod InterconnectRemoteLocation + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +type InterconnectRemoteLocationConstraints struct { + // PortPairRemoteLocation: Output only. [Output Only] Port pair remote location + // constraints, which can take one + // of the following values: + // PORT_PAIR_UNCONSTRAINED_REMOTE_LOCATION, + // PORT_PAIR_MATCHING_REMOTE_LOCATION. + // + // Google Cloud API refers only to individual ports, but the UI uses this + // field when ordering a pair of ports, to prevent users from + // accidentally + // ordering something that is incompatible with their cloud + // provider. + // Specifically, when ordering a redundant pair of Cross-Cloud + // Interconnect + // ports, and one of them uses a remote location + // with + // portPairMatchingRemoteLocation set to matching, the UI requires that + // both ports use the same remote location. + // + // Possible values: + // "PORT_PAIR_MATCHING_REMOTE_LOCATION" - If + // PORT_PAIR_MATCHING_REMOTE_LOCATION, the remote cloud provider + // allocates ports in pairs, and the user should choose the same + // remote + // location for both ports. + // "PORT_PAIR_UNCONSTRAINED_REMOTE_LOCATION" - If + // PORT_PAIR_UNCONSTRAINED_REMOTE_LOCATION, a user may opt to provision + // a redundant pair of Cross-Cloud Interconnects using two different + // remote locations in the same city. + PortPairRemoteLocation string `json:"portPairRemoteLocation,omitempty"` + // PortPairVlan: Output only. [Output Only] Port pair VLAN constraints, which + // can take one of the + // following values: PORT_PAIR_UNCONSTRAINED_VLAN, PORT_PAIR_MATCHING_VLAN + // + // Possible values: + // "PORT_PAIR_MATCHING_VLAN" - If PORT_PAIR_MATCHING_VLAN, the Interconnect + // for this attachment is + // part of a pair of ports that should have matching VLAN allocations. + // This occurs with Cross-Cloud Interconnect to Azure remote locations. + // While GCP's API does not explicitly group pairs of ports, the UI uses + // this field to ensure matching VLAN ids when configuring a redundant + // VLAN pair. + // "PORT_PAIR_UNCONSTRAINED_VLAN" - PORT_PAIR_UNCONSTRAINED_VLAN means there + // is no constraint. + PortPairVlan string `json:"portPairVlan,omitempty"` + // SubnetLengthRange: Output only. [Output Only] + // + // [min-length, max-length] + // + // The minimum and maximum value (inclusive) for the IPv4 subnet + // length. + // + // For example, an interconnectRemoteLocation for Azure has {min: + // 30, + // max: + // 30} because Azure requires /30 subnets. + // + // This range specifies the values supported by both cloud + // providers. + // Interconnect currently supports /29 and /30 IPv4 subnet lengths. If a + // remote cloud has no constraint on IPv4 subnet length, the range would + // thus be {min: 29, max: 30}. + SubnetLengthRange *InterconnectRemoteLocationConstraintsSubnetLengthRange `json:"subnetLengthRange,omitempty"` + // ForceSendFields is a list of field names (e.g. "PortPairRemoteLocation") to + // unconditionally include in API requests. By default, fields with empty or + // default values are omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + ForceSendFields []string `json:"-"` + // NullFields is a list of field names (e.g. "PortPairRemoteLocation") to + // include in API requests with the JSON null value. By default, fields with + // empty values are omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s InterconnectRemoteLocationConstraints) MarshalJSON() ([]byte, error) { + type NoMethod InterconnectRemoteLocationConstraints + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +type InterconnectRemoteLocationConstraintsSubnetLengthRange struct { + Max int64 `json:"max,omitempty"` + Min int64 `json:"min,omitempty"` + // ForceSendFields is a list of field names (e.g. "Max") to unconditionally + // include in API requests. By default, fields with empty or default values are + // omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + ForceSendFields []string `json:"-"` + // NullFields is a list of field names (e.g. "Max") to include in API requests + // with the JSON null value. By default, fields with empty values are omitted + // from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s InterconnectRemoteLocationConstraintsSubnetLengthRange) MarshalJSON() ([]byte, error) { + type NoMethod InterconnectRemoteLocationConstraintsSubnetLengthRange + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +// InterconnectRemoteLocationList: Response to the list request, and contains a +// list of interconnect remote +// locations. +type InterconnectRemoteLocationList struct { + // Id: [Output Only] Unique identifier for the resource; defined by the server. + Id string `json:"id,omitempty"` + // Items: A list of InterconnectRemoteLocation resources. + Items []*InterconnectRemoteLocation `json:"items,omitempty"` + // Kind: Output only. [Output Only] Type of resource. + // Alwayscompute#interconnectRemoteLocationList for lists of + // interconnect remote locations. + Kind string `json:"kind,omitempty"` + // NextPageToken: [Output Only] This token lets you get the next page of + // results for + // list requests. If the number of results is larger thanmaxResults, 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"` + // SelfLink: Output only. [Output Only] Server-defined URL for this resource. + SelfLink string `json:"selfLink,omitempty"` + // Warning: [Output Only] Informational warning message. + Warning *InterconnectRemoteLocationListWarning `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 or default values are + // omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + 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. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s InterconnectRemoteLocationList) MarshalJSON() ([]byte, error) { + type NoMethod InterconnectRemoteLocationList + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +// InterconnectRemoteLocationListWarning: [Output Only] Informational warning +// message. +type InterconnectRemoteLocationListWarning 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" - Warning about failed cleanup of transient changes made + // by a failed + // operation. + // "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was created. + // "DEPRECATED_TYPE_USED" - When deploying and at least one of the resources + // has a type marked as + // deprecated + // "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk that is + // larger than image size. + // "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the + // resources has a type marked as + // experimental + // "EXTERNAL_API_WARNING" - Warning that is present in an external api call + // "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been + // overridden. + // Deprecated unused field. + // "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an injected + // kernel, which is deprecated. + // "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB" - A WEIGHTED_MAGLEV backend + // service is associated with a health check that is + // not of type HTTP/HTTPS/HTTP2. + // "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a + // exceedingly large number of resources + // "LIST_OVERHEAD_QUOTA_EXCEED" - Resource can't be retrieved due to list + // overhead quota exceed + // which captures the amount of resources filtered out by + // user-defined list filter. + // "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type + // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is not + // assigned to an instance on the + // network. + // "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot ip + // forward. + // "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE" - The route's nextHopInstance + // URL refers to an instance that does not have an + // ipv6 interface on the same network as the route. + // "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL refers to + // an instance that does not exist. + // "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance URL + // refers to an instance that is not on the + // same network as the route. + // "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not have a + // status of RUNNING. + // "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to continue + // the process despite + // the mentioned error. + // "NO_RESULTS_ON_PAGE" - No results are present on a particular list page. + // "PARTIAL_SUCCESS" - Success is reported, but some results may be missing + // due to errors + // "QUOTA_INFO_UNAVAILABLE" - Quota information is not available to client + // requests (e.g: + // regions.list). + // "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource that + // requires a TOS they have not + // accepted. + // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a resource is + // in use. + // "RESOURCE_NOT_DELETED" - One or more of the resources set to auto-delete + // could not be deleted + // because they were in use. + // "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is + // ignored. + // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in instance + // group manager is valid as such, but + // its application does not make a lot of sense, because it allows only + // single instance in instance group. + // "UNDECLARED_PROPERTIES" - When undeclared properties in the schema are + // present + // "UNREACHABLE" - A given scope cannot be reached. + 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 []*InterconnectRemoteLocationListWarningData `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 or default values are + // omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + 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. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s InterconnectRemoteLocationListWarning) MarshalJSON() ([]byte, error) { + type NoMethod InterconnectRemoteLocationListWarning + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +type InterconnectRemoteLocationListWarningData 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 or default values are + // omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + 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. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s InterconnectRemoteLocationListWarningData) MarshalJSON() ([]byte, error) { + type NoMethod InterconnectRemoteLocationListWarningData + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +type InterconnectRemoteLocationPermittedConnections struct { + // InterconnectLocation: Output only. [Output Only] URL of an Interconnect + // location that is permitted to + // connect to this Interconnect remote location. + InterconnectLocation string `json:"interconnectLocation,omitempty"` + // ForceSendFields is a list of field names (e.g. "InterconnectLocation") to + // unconditionally include in API requests. By default, fields with empty or + // default values are omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + ForceSendFields []string `json:"-"` + // NullFields is a list of field names (e.g. "InterconnectLocation") to include + // in API requests with the JSON null value. By default, fields with empty + // values are omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s InterconnectRemoteLocationPermittedConnections) MarshalJSON() ([]byte, error) { + type NoMethod InterconnectRemoteLocationPermittedConnections + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +// InterconnectsGetDiagnosticsResponse: Response for the +// InterconnectsGetDiagnosticsRequest. +type InterconnectsGetDiagnosticsResponse struct { + Result *InterconnectDiagnostics `json:"result,omitempty"` + + // ServerResponse contains the HTTP response code and headers from the server. + googleapi.ServerResponse `json:"-"` + // ForceSendFields is a list of field names (e.g. "Result") to unconditionally + // include in API requests. By default, fields with empty or default values are + // omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + ForceSendFields []string `json:"-"` + // NullFields is a list of field names (e.g. "Result") to include in API + // requests with the JSON null value. By default, fields with empty values are + // omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s InterconnectsGetDiagnosticsResponse) MarshalJSON() ([]byte, error) { + type NoMethod InterconnectsGetDiagnosticsResponse + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +// InterconnectsGetMacsecConfigResponse: Response for the +// InterconnectsGetMacsecConfigRequest. +type InterconnectsGetMacsecConfigResponse struct { + // Etag: end_interface: MixerGetResponseWithEtagBuilder + Etag string `json:"etag,omitempty"` + Result *InterconnectMacsecConfig `json:"result,omitempty"` + + // ServerResponse contains the HTTP response code and headers from the server. + googleapi.ServerResponse `json:"-"` + // ForceSendFields is a list of field names (e.g. "Etag") to unconditionally + // include in API requests. By default, fields with empty or default values are + // omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + ForceSendFields []string `json:"-"` + // NullFields is a list of field names (e.g. "Etag") to include in API requests + // with the JSON null value. By default, fields with empty values are omitted + // from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s InterconnectsGetMacsecConfigResponse) MarshalJSON() ([]byte, error) { + type NoMethod InterconnectsGetMacsecConfigResponse + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +// License: Represents a License resource. +// +// A License represents billing and aggregate usage data forpublic +// andmarketplace images. +// +// *Caution* This resource is intended for +// +// use only by third-party partners who are creatingCloud Marketplace +// images. +type License struct { + // AllowedReplacementLicenses: Specifies licenseCodes of licenses that can + // replace this license. Note: + // such replacements are allowed even if removable_from_disk is false. + AllowedReplacementLicenses []string `json:"allowedReplacementLicenses,omitempty"` + // AppendableToDisk: If true, this license can be appended to an existing + // disk's set of + // licenses. + AppendableToDisk bool `json:"appendableToDisk,omitempty"` + // ChargesUseFee: [Output Only] Deprecated. This field no longer reflects + // whether a license + // charges a usage fee. + ChargesUseFee bool `json:"chargesUseFee,omitempty"` + // CreationTimestamp: Output only. [Output Only] Creation timestamp + // inRFC3339 + // text format. + CreationTimestamp string `json:"creationTimestamp,omitempty"` + // Description: An optional textual description of the resource; provided by + // the client + // when the resource is created. + Description string `json:"description,omitempty"` + // Id: [Output Only] The unique identifier for the resource. This identifier + // is + // defined by the server. + Id uint64 `json:"id,omitempty,string"` + // IncompatibleLicenses: Specifies licenseCodes of licenses that are + // incompatible with this license. + // If a license is incompatible with this license, it cannot be attached to + // the same disk or image. + IncompatibleLicenses []string `json:"incompatibleLicenses,omitempty"` + // Kind: Output only. [Output Only] Type of resource. Always compute#license + // for + // licenses. + Kind string `json:"kind,omitempty"` + // LicenseCode: [Output Only] The unique code used to attach this license to + // images, + // snapshots, and disks. + LicenseCode uint64 `json:"licenseCode,omitempty,string"` + // MinimumRetention: If set, this license will be unable to be removed or + // replaced once attached + // to a disk until the minimum_retention period has passed. + MinimumRetention *Duration `json:"minimumRetention,omitempty"` + // MultiTenantOnly: If true, this license can only be used on VMs on multi + // tenant nodes. + MultiTenantOnly bool `json:"multiTenantOnly,omitempty"` + // Name: Name of the resource. The name must be 1-63 characters long and + // comply withRFC1035. + Name string `json:"name,omitempty"` + // OsLicense: If true, indicates this is an OS license. Only one OS license can + // be + // attached to a disk or image at a time. + OsLicense bool `json:"osLicense,omitempty"` + // Params: Input only. Additional params passed with the request, but not + // persisted + // as part of resource payload. + Params *LicenseParams `json:"params,omitempty"` + // RemovableFromDisk: If true, this license can be removed from a disk's set of + // licenses, with no + // replacement license needed. + RemovableFromDisk bool `json:"removableFromDisk,omitempty"` + // RequiredCoattachedLicenses: Specifies the set of permissible coattached + // licenseCodes of licenses that + // satisfy the coattachment requirement of this license. At least one + // license + // from the set must be attached to the same disk or image as this license. + RequiredCoattachedLicenses []string `json:"requiredCoattachedLicenses,omitempty"` + // ResourceRequirements: [Input Only] Deprecated. + ResourceRequirements *LicenseResourceRequirements `json:"resourceRequirements,omitempty"` + // SelfLink: Output only. [Output Only] Server-defined URL for the resource. + SelfLink string `json:"selfLink,omitempty"` + // SelfLinkWithId: Output only. [Output Only] Server-defined URL for this + // resource with the resource id. + SelfLinkWithId string `json:"selfLinkWithId,omitempty"` + // SoleTenantOnly: If true, this license can only be used on VMs on sole tenant + // nodes. + SoleTenantOnly bool `json:"soleTenantOnly,omitempty"` + // Transferable: If false, licenses will not be copied from the source resource + // when + // creating an image from a disk, disk from snapshot, or snapshot from disk. + Transferable bool `json:"transferable,omitempty"` + // UpdateTimestamp: Output only. [Output Only] Last update timestamp + // inRFC3339 + // text format. + UpdateTimestamp string `json:"updateTimestamp,omitempty"` + + // ServerResponse contains the HTTP response code and headers from the server. + googleapi.ServerResponse `json:"-"` + // ForceSendFields is a list of field names (e.g. "AllowedReplacementLicenses") + // to unconditionally include in API requests. By default, fields with empty or + // default values are omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + ForceSendFields []string `json:"-"` + // NullFields is a list of field names (e.g. "AllowedReplacementLicenses") to + // include in API requests with the JSON null value. By default, fields with + // empty values are omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s License) MarshalJSON() ([]byte, error) { + type NoMethod License + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +// LicenseCode: Represents a License Code resource. +// +// A License Code is a unique identifier used to represent alicense +// resource. +// +// *Caution* This resource is intended for +// +// use only by third-party partners who are creatingCloud Marketplace +// images. +type LicenseCode struct { + // AllowedReplacementLicenses: Specifies licenseCodes of licenses that can + // replace this license. Note: + // such replacements are allowed even if removable_from_disk is false. + AllowedReplacementLicenses []string `json:"allowedReplacementLicenses,omitempty"` + // AppendableToDisk: If true, this license can be appended to an existing + // disk's set of + // licenses. + AppendableToDisk bool `json:"appendableToDisk,omitempty"` + // CreationTimestamp: Output only. [Output Only] Creation timestamp + // inRFC3339 + // text format. + CreationTimestamp string `json:"creationTimestamp,omitempty"` + // Description: Output only. [Output Only] Description of this License Code. + Description string `json:"description,omitempty"` + // Id: Output only. [Output Only] The unique identifier for the resource. This + // identifier is + // defined by the server. + Id uint64 `json:"id,omitempty,string"` + // IncompatibleLicenses: Specifies licenseCodes of licenses that are + // incompatible with this license. + // If a license is incompatible with this license, it cannot be attached to + // the same disk or image. + IncompatibleLicenses []string `json:"incompatibleLicenses,omitempty"` + // Kind: Output only. [Output Only] Type of resource. Always + // compute#licenseCode for + // licenses. + Kind string `json:"kind,omitempty"` + // LicenseAlias: [Output Only] URL and description aliases of Licenses with the + // same + // License Code. + LicenseAlias []*LicenseCodeLicenseAlias `json:"licenseAlias,omitempty"` + // MinimumRetention: If set, this license will be unable to be removed or + // replaced once attached + // to a disk until the minimum_retention period has passed. + MinimumRetention *Duration `json:"minimumRetention,omitempty"` + // MultiTenantOnly: If true, this license can only be used on VMs on multi + // tenant nodes. + MultiTenantOnly bool `json:"multiTenantOnly,omitempty"` + // Name: Output only. [Output Only] Name of the resource. The name is 1-20 + // characters long and + // must be a valid 64 bit integer. + Name string `json:"name,omitempty"` + // OsLicense: If true, indicates this is an OS license. Only one OS license can + // be + // attached to a disk or image at a time. + OsLicense bool `json:"osLicense,omitempty"` + // RemovableFromDisk: If true, this license can be removed from a disk's set of + // licenses, with no + // replacement license needed. + RemovableFromDisk bool `json:"removableFromDisk,omitempty"` + // RequiredCoattachedLicenses: Specifies the set of permissible coattached + // licenseCodes of licenses that + // satisfy the coattachment requirement of this license. At least one + // license + // from the set must be attached to the same disk or image as this license. + RequiredCoattachedLicenses []string `json:"requiredCoattachedLicenses,omitempty"` + // SelfLink: Output only. [Output Only] Server-defined URL for the resource. + SelfLink string `json:"selfLink,omitempty"` + // SoleTenantOnly: If true, this license can only be used on VMs on sole tenant + // nodes. + SoleTenantOnly bool `json:"soleTenantOnly,omitempty"` + // State: Output only. [Output Only] Current state of this License Code. + // + // Possible values: + // "DISABLED" - Machines are not allowed to attach boot disks with this + // License Code. + // Requests to create new resources with this license will be rejected. + // "ENABLED" - Use is allowed for anyone with USE_READ_ONLY access to this + // License Code. + // "RESTRICTED" - Use of this license is limited to a project whitelist. + // "STATE_UNSPECIFIED" + // "TERMINATED" - Reserved state. + State string `json:"state,omitempty"` + // Transferable: Output only. [Output Only] If true, the license will remain + // attached when creating + // images or snapshots from disks. Otherwise, the license is not transferred. + Transferable bool `json:"transferable,omitempty"` + // UpdateTimestamp: Output only. [Output Only] Last update timestamp + // inRFC3339 + // text format. + UpdateTimestamp string `json:"updateTimestamp,omitempty"` + + // ServerResponse contains the HTTP response code and headers from the server. + googleapi.ServerResponse `json:"-"` + // ForceSendFields is a list of field names (e.g. "AllowedReplacementLicenses") + // to unconditionally include in API requests. By default, fields with empty or + // default values are omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + ForceSendFields []string `json:"-"` + // NullFields is a list of field names (e.g. "AllowedReplacementLicenses") to + // include in API requests with the JSON null value. By default, fields with + // empty values are omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s LicenseCode) MarshalJSON() ([]byte, error) { + type NoMethod LicenseCode + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +type LicenseCodeLicenseAlias struct { + // Description: Output only. [Output Only] Description of this License Code. + Description string `json:"description,omitempty"` + // SelfLink: Output only. [Output Only] URL of license corresponding to this + // License Code. + SelfLink string `json:"selfLink,omitempty"` + // ForceSendFields is a list of field names (e.g. "Description") to + // unconditionally include in API requests. By default, fields with empty or + // default values are omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + ForceSendFields []string `json:"-"` + // NullFields is a list of field names (e.g. "Description") to include in API + // requests with the JSON null value. By default, fields with empty values are + // omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s LicenseCodeLicenseAlias) MarshalJSON() ([]byte, error) { + type NoMethod LicenseCodeLicenseAlias + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +// LicenseParams: Additional license params. +type LicenseParams struct { + // ResourceManagerTags: Input only. Resource manager tags to be bound to the + // license. Tag keys and values + // have the same definition as resource + // manager tags. Keys and values can be either in numeric format, + // such as `tagKeys/{tag_key_id}` and `tagValues/{tag_value_id}` or + // in + // namespaced format such as `{org_id|project_id}/{tag_key_short_name}` + // and + // `{tag_value_short_name}`. The field is ignored (both PUT & + // PATCH) when empty. + ResourceManagerTags map[string]string `json:"resourceManagerTags,omitempty"` + // ForceSendFields is a list of field names (e.g. "ResourceManagerTags") to + // unconditionally include in API requests. By default, fields with empty or + // default values are omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + ForceSendFields []string `json:"-"` + // NullFields is a list of field names (e.g. "ResourceManagerTags") to include + // in API requests with the JSON null value. By default, fields with empty + // values are omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s LicenseParams) MarshalJSON() ([]byte, error) { + type NoMethod LicenseParams + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +// LicenseResourceCommitment: Commitment for a particular license resource. +type LicenseResourceCommitment struct { + // Amount: The number of licenses you plan to purchase. + Amount int64 `json:"amount,omitempty,string"` + // CoresPerLicense: The number of cores per license. + CoresPerLicense string `json:"coresPerLicense,omitempty"` + // License: The applicable license URI. + License string `json:"license,omitempty"` + // ForceSendFields is a list of field names (e.g. "Amount") to unconditionally + // include in API requests. By default, fields with empty or default values are + // omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + ForceSendFields []string `json:"-"` + // NullFields is a list of field names (e.g. "Amount") to include in API + // requests with the JSON null value. By default, fields with empty values are + // omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s LicenseResourceCommitment) MarshalJSON() ([]byte, error) { + type NoMethod LicenseResourceCommitment + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +type LicenseResourceRequirements struct { + // MinGuestCpuCount: [Input Only] Deprecated. This field no longer reflects the + // minimum number + // of guest cpus required to use the Instance. + MinGuestCpuCount int64 `json:"minGuestCpuCount,omitempty"` + // MinMemoryMb: [Input Only] Deprecated. This field no longer reflects the + // minimum memory + // required to use the Instance. + MinMemoryMb int64 `json:"minMemoryMb,omitempty"` + // ForceSendFields is a list of field names (e.g. "MinGuestCpuCount") to + // unconditionally include in API requests. By default, fields with empty or + // default values are omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + ForceSendFields []string `json:"-"` + // NullFields is a list of field names (e.g. "MinGuestCpuCount") to include in + // API requests with the JSON null value. By default, fields with empty values + // are omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s LicenseResourceRequirements) MarshalJSON() ([]byte, error) { + type NoMethod LicenseResourceRequirements + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +type LicensesListResponse struct { + // Id: [Output Only] Unique identifier for the resource; defined by the server. + Id string `json:"id,omitempty"` + // Items: A list of License resources. + Items []*License `json:"items,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 thanmaxResults, 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"` + // SelfLink: Output only. [Output Only] Server-defined URL for this resource. + SelfLink string `json:"selfLink,omitempty"` + // Warning: [Output Only] Informational warning message. + Warning *LicensesListResponseWarning `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 or default values are + // omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + 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. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s LicensesListResponse) MarshalJSON() ([]byte, error) { + type NoMethod LicensesListResponse + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +// LicensesListResponseWarning: [Output Only] Informational warning message. +type LicensesListResponseWarning 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" - Warning about failed cleanup of transient changes made + // by a failed + // operation. + // "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was created. + // "DEPRECATED_TYPE_USED" - When deploying and at least one of the resources + // has a type marked as + // deprecated + // "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk that is + // larger than image size. + // "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the + // resources has a type marked as + // experimental + // "EXTERNAL_API_WARNING" - Warning that is present in an external api call + // "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been + // overridden. + // Deprecated unused field. + // "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an injected + // kernel, which is deprecated. + // "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB" - A WEIGHTED_MAGLEV backend + // service is associated with a health check that is + // not of type HTTP/HTTPS/HTTP2. + // "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a + // exceedingly large number of resources + // "LIST_OVERHEAD_QUOTA_EXCEED" - Resource can't be retrieved due to list + // overhead quota exceed + // which captures the amount of resources filtered out by + // user-defined list filter. + // "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type + // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is not + // assigned to an instance on the + // network. + // "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot ip + // forward. + // "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE" - The route's nextHopInstance + // URL refers to an instance that does not have an + // ipv6 interface on the same network as the route. + // "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL refers to + // an instance that does not exist. + // "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance URL + // refers to an instance that is not on the + // same network as the route. + // "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not have a + // status of RUNNING. + // "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to continue + // the process despite + // the mentioned error. + // "NO_RESULTS_ON_PAGE" - No results are present on a particular list page. + // "PARTIAL_SUCCESS" - Success is reported, but some results may be missing + // due to errors + // "QUOTA_INFO_UNAVAILABLE" - Quota information is not available to client + // requests (e.g: + // regions.list). + // "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource that + // requires a TOS they have not + // accepted. + // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a resource is + // in use. + // "RESOURCE_NOT_DELETED" - One or more of the resources set to auto-delete + // could not be deleted + // because they were in use. + // "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is + // ignored. + // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in instance + // group manager is valid as such, but + // its application does not make a lot of sense, because it allows only + // single instance in instance group. + // "UNDECLARED_PROPERTIES" - When undeclared properties in the schema are + // present + // "UNREACHABLE" - A given scope cannot be reached. + 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 []*LicensesListResponseWarningData `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 or default values are + // omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + 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. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s LicensesListResponseWarning) MarshalJSON() ([]byte, error) { + type NoMethod LicensesListResponseWarning + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +type LicensesListResponseWarningData 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 or default values are + // omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + 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. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s LicensesListResponseWarningData) MarshalJSON() ([]byte, error) { + type NoMethod LicensesListResponseWarningData + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +// ListInstantSnapshotGroups: Contains a list of InstantSnapshotGroup +// resources. +type ListInstantSnapshotGroups struct { + Etag string `json:"etag,omitempty"` + // Id: [Output Only] Unique identifier for the resource; defined by the server. + Id string `json:"id,omitempty"` + // Items: A list of InstantSnapshotGroup resources. + Items []*InstantSnapshotGroup `json:"items,omitempty"` + // Kind: Output only. Type of resource. + 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 thanmaxResults, 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"` + // SelfLink: Output only. [Output Only] Server-defined URL for this resource. + SelfLink string `json:"selfLink,omitempty"` + // Unreachables: Output only. [Output Only] Unreachable + // resources. + // end_interface: MixerListResponseWithEtagBuilder + Unreachables []string `json:"unreachables,omitempty"` + // Warning: [Output Only] Informational warning message. + Warning *ListInstantSnapshotGroupsWarning `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. "Etag") to unconditionally + // include in API requests. By default, fields with empty or default values are + // omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + ForceSendFields []string `json:"-"` + // NullFields is a list of field names (e.g. "Etag") to include in API requests + // with the JSON null value. By default, fields with empty values are omitted + // from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s ListInstantSnapshotGroups) MarshalJSON() ([]byte, error) { + type NoMethod ListInstantSnapshotGroups + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +// ListInstantSnapshotGroupsWarning: [Output Only] Informational warning +// message. +type ListInstantSnapshotGroupsWarning 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" - Warning about failed cleanup of transient changes made + // by a failed + // operation. + // "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was created. + // "DEPRECATED_TYPE_USED" - When deploying and at least one of the resources + // has a type marked as + // deprecated + // "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk that is + // larger than image size. + // "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the + // resources has a type marked as + // experimental + // "EXTERNAL_API_WARNING" - Warning that is present in an external api call + // "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been + // overridden. + // Deprecated unused field. + // "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an injected + // kernel, which is deprecated. + // "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB" - A WEIGHTED_MAGLEV backend + // service is associated with a health check that is + // not of type HTTP/HTTPS/HTTP2. + // "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a + // exceedingly large number of resources + // "LIST_OVERHEAD_QUOTA_EXCEED" - Resource can't be retrieved due to list + // overhead quota exceed + // which captures the amount of resources filtered out by + // user-defined list filter. + // "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type + // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is not + // assigned to an instance on the + // network. + // "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot ip + // forward. + // "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE" - The route's nextHopInstance + // URL refers to an instance that does not have an + // ipv6 interface on the same network as the route. + // "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL refers to + // an instance that does not exist. + // "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance URL + // refers to an instance that is not on the + // same network as the route. + // "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not have a + // status of RUNNING. + // "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to continue + // the process despite + // the mentioned error. + // "NO_RESULTS_ON_PAGE" - No results are present on a particular list page. + // "PARTIAL_SUCCESS" - Success is reported, but some results may be missing + // due to errors + // "QUOTA_INFO_UNAVAILABLE" - Quota information is not available to client + // requests (e.g: + // regions.list). + // "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource that + // requires a TOS they have not + // accepted. + // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a resource is + // in use. + // "RESOURCE_NOT_DELETED" - One or more of the resources set to auto-delete + // could not be deleted + // because they were in use. + // "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is + // ignored. + // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in instance + // group manager is valid as such, but + // its application does not make a lot of sense, because it allows only + // single instance in instance group. + // "UNDECLARED_PROPERTIES" - When undeclared properties in the schema are + // present + // "UNREACHABLE" - A given scope cannot be reached. + 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 []*ListInstantSnapshotGroupsWarningData `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 or default values are + // omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + 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. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s ListInstantSnapshotGroupsWarning) MarshalJSON() ([]byte, error) { + type NoMethod ListInstantSnapshotGroupsWarning + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +type ListInstantSnapshotGroupsWarningData 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 or default values are + // omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + 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. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s ListInstantSnapshotGroupsWarningData) MarshalJSON() ([]byte, error) { + type NoMethod ListInstantSnapshotGroupsWarningData + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +type LocalDisk struct { + // DiskCount: Specifies the number of such disks. + DiskCount int64 `json:"diskCount,omitempty"` + // DiskSizeGb: Specifies the size of the disk in base-2 GB. + DiskSizeGb int64 `json:"diskSizeGb,omitempty"` + // DiskType: Specifies the desired disk type on the node. This disk type must + // be a + // local storage type (e.g.: local-ssd). + // Note that for nodeTemplates, this should be the name of the disk type + // and + // not its URL. + DiskType string `json:"diskType,omitempty"` + // ForceSendFields is a list of field names (e.g. "DiskCount") to + // unconditionally include in API requests. By default, fields with empty or + // default values are omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + ForceSendFields []string `json:"-"` + // NullFields is a list of field names (e.g. "DiskCount") to include in API + // requests with the JSON null value. By default, fields with empty values are + // omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s LocalDisk) MarshalJSON() ([]byte, error) { + type NoMethod LocalDisk + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +// LocalizedMessage: Provides a localized error message that is safe to return +// to the user +// which can be attached to an RPC error. +type LocalizedMessage struct { + // Locale: The locale used following the specification defined + // at + // https://www.rfc-editor.org/rfc/bcp/bcp47.txt. + // Examples are: "en-US", "fr-CH", "es-MX" + Locale string `json:"locale,omitempty"` + // Message: The localized error message in the above locale. + Message string `json:"message,omitempty"` + // ForceSendFields is a list of field names (e.g. "Locale") to unconditionally + // include in API requests. By default, fields with empty or default values are + // omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + ForceSendFields []string `json:"-"` + // NullFields is a list of field names (e.g. "Locale") to include in API + // requests with the JSON null value. By default, fields with empty values are + // omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s LocalizedMessage) MarshalJSON() ([]byte, error) { + type NoMethod LocalizedMessage + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +// LocationPolicy: Configuration for location policy among multiple possible +// locations +// (e.g. preferences for zone selection among zones in a single region). +type LocationPolicy struct { + // Locations: Location configurations mapped by location name. + // Currently only zone names are supported and must be represented as + // valid + // internal URLs, such as zones/us-central1-a. + // The bulkInsert operation doesn't create instances in an AI zone, even if + // an AI zone is available in the specified region. For example, if you set + // a + // DENY preference for us-central1-a, Compute Engine will + // consider + // us-central1-b and us-central1-c for instance creation, but + // not + // us-central1-ai1a. Also, you can't use the locations[] configuration to + // allow instance creation in an AI zone. To include an AI zone in + // bulkInsert + // operations, use the locationPolicy.zones[] field. + Locations map[string]LocationPolicyLocation `json:"locations,omitempty"` + // TargetShape: Strategy for distributing VMs across zones in a region. + // + // Possible values: + // "ANY" - GCE picks zones for creating VM instances to fulfill the + // requested + // number of VMs within present resource constraints and to + // maximize + // utilization of unused zonal reservations. Recommended for batch + // workloads + // that do not require high availability. + // "ANY_SINGLE_ZONE" - GCE always selects a single zone for all the VMs, + // optimizing for resource + // quotas, available reservations and general capacity. Recommended for + // batch workloads that cannot tollerate distribution over multiple zones. + // This the default shape in Bulk Insert and Capacity Advisor APIs. + // "BALANCED" - GCE prioritizes acquisition of resources, scheduling VMs in + // zones + // where resources are available while distributing VMs as evenly as + // possible across allowed zones to minimize the impact of zonal + // failure. + // Recommended for highly available serving workloads. + TargetShape string `json:"targetShape,omitempty"` + // Zones: The bulkInsert operation applies any preferences set in the + // locations + // field to the specific zones listed in the zones field if the same zones + // are specified in both fields. + Zones []*LocationPolicyZoneConfiguration `json:"zones,omitempty"` + // ForceSendFields is a list of field names (e.g. "Locations") to + // unconditionally include in API requests. By default, fields with empty or + // default values are omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + ForceSendFields []string `json:"-"` + // NullFields is a list of field names (e.g. "Locations") to include in API + // requests with the JSON null value. By default, fields with empty values are + // omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s LocationPolicy) MarshalJSON() ([]byte, error) { + type NoMethod LocationPolicy + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +type LocationPolicyLocation struct { + // Constraints: Constraints that the caller requires on the result + // distribution + // in this zone. + Constraints *LocationPolicyLocationConstraints `json:"constraints,omitempty"` + // Preference: Preference for a given location. Set to either ALLOW orDENY. + // + // Possible values: + // "ALLOW" - Location is allowed for use. + // "DENY" - Location is prohibited. + // "PREFERENCE_UNSPECIFIED" - Default value, unused. + Preference string `json:"preference,omitempty"` + // ForceSendFields is a list of field names (e.g. "Constraints") to + // unconditionally include in API requests. By default, fields with empty or + // default values are omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + ForceSendFields []string `json:"-"` + // NullFields is a list of field names (e.g. "Constraints") to include in API + // requests with the JSON null value. By default, fields with empty values are + // omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s LocationPolicyLocation) MarshalJSON() ([]byte, error) { + type NoMethod LocationPolicyLocation + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +// LocationPolicyLocationConstraints: Per-zone constraints on location policy +// for this zone. +type LocationPolicyLocationConstraints struct { + // MaxCount: Maximum number of items that are allowed to be placed in this + // zone. + // The value must be non-negative. + MaxCount int64 `json:"maxCount,omitempty"` + // ForceSendFields is a list of field names (e.g. "MaxCount") to + // unconditionally include in API requests. By default, fields with empty or + // default values are omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + ForceSendFields []string `json:"-"` + // NullFields is a list of field names (e.g. "MaxCount") to include in API + // requests with the JSON null value. By default, fields with empty values are + // omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s LocationPolicyLocationConstraints) MarshalJSON() ([]byte, error) { + type NoMethod LocationPolicyLocationConstraints + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +type LocationPolicyZoneConfiguration struct { + // Zone: The URL of the zone. + // The zone must exist in the region where the request is called. + // Zones must be represented as valid partial URLs, + // such as zones/us-central1-a. + Zone string `json:"zone,omitempty"` + // ForceSendFields is a list of field names (e.g. "Zone") to unconditionally + // include in API requests. By default, fields with empty or default values are + // omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + ForceSendFields []string `json:"-"` + // NullFields is a list of field names (e.g. "Zone") to include in API requests + // with the JSON null value. By default, fields with empty values are omitted + // from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s LocationPolicyZoneConfiguration) MarshalJSON() ([]byte, error) { + type NoMethod LocationPolicyZoneConfiguration + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +// MachineImage: Represents a machine image resource. +// +// A machine image is a Compute Engine resource that stores all +// the +// configuration, metadata, permissions, and data from one or more +// disks +// required to create a Virtual machine (VM) instance. For more information, +// seeMachine images. +type MachineImage struct { + // CreationTimestamp: Output only. [Output Only] The creation timestamp for + // this machine image inRFC3339 + // text format. + CreationTimestamp string `json:"creationTimestamp,omitempty"` + // Description: An optional description of this resource. Provide this property + // when you + // create the resource. + Description string `json:"description,omitempty"` + // GuestFlush: [Input Only] Whether to attempt an application consistent + // machine image by + // informing the OS to prepare for the snapshot process. + GuestFlush bool `json:"guestFlush,omitempty"` + // Id: Output only. [Output Only] A unique identifier for this machine image. + // The server + // defines this identifier. + Id uint64 `json:"id,omitempty,string"` + // InstanceProperties: [Output Only] Properties of source instance + InstanceProperties *InstanceProperties `json:"instanceProperties,omitempty"` + // Kind: Output only. [Output Only] The resource type, which is + // alwayscompute#machineImage for machine image. + Kind string `json:"kind,omitempty"` + // LabelFingerprint: A fingerprint for the labels being applied to this machine + // image, which is + // essentially a hash of the labels set used for optimistic locking. + // The + // fingerprint is initially generated by Compute Engine and changes after + // every request to modify or update labels. You must always provide + // an + // up-to-date fingerprint hash in order to update or change labels. + // + // To see the latest fingerprint, make get() request to the + // machine image. + LabelFingerprint string `json:"labelFingerprint,omitempty"` + // Labels: Labels to apply to this machine image. These can be later modified + // by + // the setLabels method. + Labels map[string]string `json:"labels,omitempty"` + // MachineImageEncryptionKey: Encrypts the machine image using + // acustomer-supplied + // encryption key. + // + // After you encrypt a machine image using a customer-supplied key, you + // must + // provide the same key if you use the machine image later. For example, + // you + // must provide the encryption key when you create an instance from + // the + // encrypted machine image in a future request. + // + // Customer-supplied encryption keys do not protect access to metadata of + // the + // machine image. + // + // If you do not provide an encryption key when creating the machine + // image, + // then the machine image will be encrypted using an automatically + // generated + // key and you do not need to provide a key to use the machine image later. + MachineImageEncryptionKey *CustomerEncryptionKey `json:"machineImageEncryptionKey,omitempty"` + // Name: Name of the resource; provided by the client when the resource is + // created. + // The name must be 1-63 characters long, and comply withRFC1035. + // 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. + Name string `json:"name,omitempty"` + // Params: Input only. [Input Only] Additional parameters that are passed in + // the request, but are + // not persisted in the resource. + Params *MachineImageParams `json:"params,omitempty"` + // SatisfiesPzi: Output only. Reserved for future use. + SatisfiesPzi bool `json:"satisfiesPzi,omitempty"` + // SatisfiesPzs: Output only. [Output Only] Reserved for future use. + SatisfiesPzs bool `json:"satisfiesPzs,omitempty"` + // SavedDisks: Output only. An array of Machine Image specific properties for + // disks attached to the + // source instance + SavedDisks []*SavedDisk `json:"savedDisks,omitempty"` + // SelfLink: Output only. [Output Only] The URL for this machine image. The + // server defines this URL. + SelfLink string `json:"selfLink,omitempty"` + // SourceDiskEncryptionKeys: [Input Only] Thecustomer-supplied + // encryption key of the disks attached to the source instance. Required + // if the source disk is protected by a customer-supplied encryption key. + SourceDiskEncryptionKeys []*SourceDiskEncryptionKey `json:"sourceDiskEncryptionKeys,omitempty"` + // SourceInstance: The source instance used to create the machine image. 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"` + // SourceInstanceProperties: Output only. [Output Only] DEPRECATED: Please use + // instance_properties + // instead for source instance related properties. New properties will not + // be + // added to this field. + SourceInstanceProperties *SourceInstanceProperties `json:"sourceInstanceProperties,omitempty"` + // Status: Output only. [Output Only] The status of the machine image. One of + // the following values:INVALID, CREATING, READY,DELETING, and UPLOADING. + // + // Possible values: + // "CREATING" + // "DELETING" + // "INVALID" + // "READY" + // "UPLOADING" + Status string `json:"status,omitempty"` + // StorageLocations: The regional or multi-regional Cloud Storage bucket + // location where themachine image is + // stored. + StorageLocations []string `json:"storageLocations,omitempty"` + // TotalStorageBytes: Output only. [Output Only] Total size of the storage used + // by the machine image. + TotalStorageBytes int64 `json:"totalStorageBytes,omitempty,string"` + + // ServerResponse contains the HTTP response code and headers from the server. + googleapi.ServerResponse `json:"-"` + // ForceSendFields is a list of field names (e.g. "CreationTimestamp") to + // unconditionally include in API requests. By default, fields with empty or + // default values are omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + ForceSendFields []string `json:"-"` + // NullFields is a list of field names (e.g. "CreationTimestamp") to include in + // API requests with the JSON null value. By default, fields with empty values + // are omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s MachineImage) MarshalJSON() ([]byte, error) { + type NoMethod MachineImage + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +// MachineImageList: A list of machine images. +type MachineImageList struct { + // Id: [Output Only] Unique identifier for the resource; defined by the server. + Id string `json:"id,omitempty"` + // Items: A list of MachineImage resources. + Items []*MachineImage `json:"items,omitempty"` + // Kind: Output only. [Output Only] The resource type, which is + // alwayscompute#machineImagesListResponse for machine image lists. + 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 thanmaxResults, 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"` + // SelfLink: Output only. [Output Only] Server-defined URL for this resource. + SelfLink string `json:"selfLink,omitempty"` + // Warning: [Output Only] Informational warning message. + Warning *MachineImageListWarning `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 or default values are + // omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + 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. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s MachineImageList) MarshalJSON() ([]byte, error) { + type NoMethod MachineImageList + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +// MachineImageListWarning: [Output Only] Informational warning message. +type MachineImageListWarning 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" - Warning about failed cleanup of transient changes made + // by a failed + // operation. + // "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was created. + // "DEPRECATED_TYPE_USED" - When deploying and at least one of the resources + // has a type marked as + // deprecated + // "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk that is + // larger than image size. + // "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the + // resources has a type marked as + // experimental + // "EXTERNAL_API_WARNING" - Warning that is present in an external api call + // "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been + // overridden. + // Deprecated unused field. + // "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an injected + // kernel, which is deprecated. + // "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB" - A WEIGHTED_MAGLEV backend + // service is associated with a health check that is + // not of type HTTP/HTTPS/HTTP2. + // "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a + // exceedingly large number of resources + // "LIST_OVERHEAD_QUOTA_EXCEED" - Resource can't be retrieved due to list + // overhead quota exceed + // which captures the amount of resources filtered out by + // user-defined list filter. + // "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type + // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is not + // assigned to an instance on the + // network. + // "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot ip + // forward. + // "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE" - The route's nextHopInstance + // URL refers to an instance that does not have an + // ipv6 interface on the same network as the route. + // "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL refers to + // an instance that does not exist. + // "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance URL + // refers to an instance that is not on the + // same network as the route. + // "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not have a + // status of RUNNING. + // "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to continue + // the process despite + // the mentioned error. + // "NO_RESULTS_ON_PAGE" - No results are present on a particular list page. + // "PARTIAL_SUCCESS" - Success is reported, but some results may be missing + // due to errors + // "QUOTA_INFO_UNAVAILABLE" - Quota information is not available to client + // requests (e.g: + // regions.list). + // "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource that + // requires a TOS they have not + // accepted. + // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a resource is + // in use. + // "RESOURCE_NOT_DELETED" - One or more of the resources set to auto-delete + // could not be deleted + // because they were in use. + // "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is + // ignored. + // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in instance + // group manager is valid as such, but + // its application does not make a lot of sense, because it allows only + // single instance in instance group. + // "UNDECLARED_PROPERTIES" - When undeclared properties in the schema are + // present + // "UNREACHABLE" - A given scope cannot be reached. + 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 []*MachineImageListWarningData `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 or default values are + // omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + 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. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s MachineImageListWarning) MarshalJSON() ([]byte, error) { + type NoMethod MachineImageListWarning + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +type MachineImageListWarningData 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 or default values are + // omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + 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. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s MachineImageListWarningData) MarshalJSON() ([]byte, error) { + type NoMethod MachineImageListWarningData + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +// MachineImageParams: Machine Image parameters +type MachineImageParams struct { + // ResourceManagerTags: Input only. Resource manager tags to be bound to the + // machine image. Tag keys and values + // have the same definition as resource + // manager tags. Keys and values can be either in numeric format, + // such as `tagKeys/{tag_key_id}` and `tagValues/{tag_value_id}` or + // in + // namespaced format such as `{org_id|project_id}/{tag_key_short_name}` + // and + // `{tag_value_short_name}`. The field is ignored (both PUT & + // PATCH) when empty. + ResourceManagerTags map[string]string `json:"resourceManagerTags,omitempty"` + // ForceSendFields is a list of field names (e.g. "ResourceManagerTags") to + // unconditionally include in API requests. By default, fields with empty or + // default values are omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + ForceSendFields []string `json:"-"` + // NullFields is a list of field names (e.g. "ResourceManagerTags") to include + // in API requests with the JSON null value. By default, fields with empty + // values are omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s MachineImageParams) MarshalJSON() ([]byte, error) { + type NoMethod MachineImageParams + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +// MachineType: Represents a Machine Type resource. +// +// You can use specific machine types for your VM instances based on +// performance +// and pricing requirements. For more information, readMachine Types. +type MachineType struct { + // Accelerators: [Output Only] A list of accelerator configurations assigned to + // this + // machine type. + Accelerators []*MachineTypeAccelerators `json:"accelerators,omitempty"` + // Architecture: [Output Only] The architecture of the machine type. + // + // Possible values: + // "ARCHITECTURE_UNSPECIFIED" - Default value indicating Architecture is not + // set. + // "ARM64" - Machines with architecture ARM64 + // "X86_64" - Machines with architecture X86_64 + Architecture string `json:"architecture,omitempty"` + // BundledLocalSsds: [Output Only] The configuration of bundled local SSD for + // the machine type. + BundledLocalSsds *BundledLocalSsds `json:"bundledLocalSsds,omitempty"` + // CreationTimestamp: [Output Only] Creation timestamp inRFC3339 + // text format. + CreationTimestamp string `json:"creationTimestamp,omitempty"` + // Deprecated -- [Output Only] The deprecation status associated with this + // machine type. + // Only applicable if the machine type is unavailable. + Deprecated *DeprecationStatus `json:"deprecated,omitempty"` + // Description: [Output Only] An optional textual description of the resource. + Description string `json:"description,omitempty"` + // GuestCpus: [Output Only] The number of virtual CPUs that are available to + // the + // instance. + GuestCpus int64 `json:"guestCpus,omitempty"` + // Id: [Output Only] The unique identifier for the resource. This identifier + // is + // defined by the server. + Id uint64 `json:"id,omitempty,string"` + // ImageSpaceGb: [Deprecated] This property is deprecated and will never be + // populated with + // any relevant values. + ImageSpaceGb int64 `json:"imageSpaceGb,omitempty"` + // IsSharedCpu: [Output Only] Whether this machine type has a shared CPU. + // SeeShared-core machine + // types for more information. + IsSharedCpu bool `json:"isSharedCpu,omitempty"` + // Kind: Output only. [Output Only] The type of the resource. + // Alwayscompute#machineType for machine types. + Kind string `json:"kind,omitempty"` + // MaximumPersistentDisks: [Output Only] Maximum persistent disks allowed. + MaximumPersistentDisks int64 `json:"maximumPersistentDisks,omitempty"` + // MaximumPersistentDisksSizeGb: [Output Only] Maximum total persistent disks + // size (GB) allowed. + MaximumPersistentDisksSizeGb int64 `json:"maximumPersistentDisksSizeGb,omitempty,string"` + // MemoryMb: [Output Only] The amount of physical memory available to the + // instance, + // defined in MB. + MemoryMb int64 `json:"memoryMb,omitempty"` + // Name: [Output Only] Name of the resource. + Name string `json:"name,omitempty"` + // SelfLink: [Output Only] Server-defined URL for the resource. + SelfLink string `json:"selfLink,omitempty"` + // Zone: [Output Only] The name of the zone where the machine type + // resides, + // such as us-central1-a. + Zone string `json:"zone,omitempty"` + + // ServerResponse contains the HTTP response code and headers from the server. + googleapi.ServerResponse `json:"-"` + // ForceSendFields is a list of field names (e.g. "Accelerators") to + // unconditionally include in API requests. By default, fields with empty or + // default values are omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + ForceSendFields []string `json:"-"` + // NullFields is a list of field names (e.g. "Accelerators") to include in API + // requests with the JSON null value. By default, fields with empty values are + // omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s MachineType) MarshalJSON() ([]byte, error) { + type NoMethod MachineType + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +type MachineTypeAccelerators struct { + // GuestAcceleratorCount: Number of accelerator cards exposed to the guest. + GuestAcceleratorCount int64 `json:"guestAcceleratorCount,omitempty"` + // GuestAcceleratorType: The accelerator type resource name, not a full URL, + // e.g.nvidia-tesla-t4. + GuestAcceleratorType string `json:"guestAcceleratorType,omitempty"` + // ForceSendFields is a list of field names (e.g. "GuestAcceleratorCount") to + // unconditionally include in API requests. By default, fields with empty or + // default values are omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + ForceSendFields []string `json:"-"` + // NullFields is a list of field names (e.g. "GuestAcceleratorCount") to + // include in API requests with the JSON null value. By default, fields with + // empty values are omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s MachineTypeAccelerators) MarshalJSON() ([]byte, error) { + type NoMethod MachineTypeAccelerators + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +type MachineTypeAggregatedList struct { + // Id: [Output Only] Unique identifier for the resource; defined by the server. + Id string `json:"id,omitempty"` + // Items: A list of MachineTypesScopedList resources. + Items map[string]MachineTypesScopedList `json:"items,omitempty"` + // Kind: Output only. [Output Only] Type of resource. + // Alwayscompute#machineTypeAggregatedList for aggregated lists of + // machine types. + 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 thanmaxResults, 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"` + // SelfLink: Output only. [Output Only] Server-defined URL for this resource. + SelfLink string `json:"selfLink,omitempty"` + // Unreachables: Output only. [Output Only] Unreachable resources. + Unreachables []string `json:"unreachables,omitempty"` + // Warning: [Output Only] Informational warning message. + Warning *MachineTypeAggregatedListWarning `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 or default values are + // omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + 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. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s MachineTypeAggregatedList) MarshalJSON() ([]byte, error) { + type NoMethod MachineTypeAggregatedList + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +// MachineTypeAggregatedListWarning: [Output Only] Informational warning +// message. +type MachineTypeAggregatedListWarning 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" - Warning about failed cleanup of transient changes made + // by a failed + // operation. + // "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was created. + // "DEPRECATED_TYPE_USED" - When deploying and at least one of the resources + // has a type marked as + // deprecated + // "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk that is + // larger than image size. + // "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the + // resources has a type marked as + // experimental + // "EXTERNAL_API_WARNING" - Warning that is present in an external api call + // "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been + // overridden. + // Deprecated unused field. + // "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an injected + // kernel, which is deprecated. + // "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB" - A WEIGHTED_MAGLEV backend + // service is associated with a health check that is + // not of type HTTP/HTTPS/HTTP2. + // "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a + // exceedingly large number of resources + // "LIST_OVERHEAD_QUOTA_EXCEED" - Resource can't be retrieved due to list + // overhead quota exceed + // which captures the amount of resources filtered out by + // user-defined list filter. + // "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type + // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is not + // assigned to an instance on the + // network. + // "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot ip + // forward. + // "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE" - The route's nextHopInstance + // URL refers to an instance that does not have an + // ipv6 interface on the same network as the route. + // "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL refers to + // an instance that does not exist. + // "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance URL + // refers to an instance that is not on the + // same network as the route. + // "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not have a + // status of RUNNING. + // "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to continue + // the process despite + // the mentioned error. + // "NO_RESULTS_ON_PAGE" - No results are present on a particular list page. + // "PARTIAL_SUCCESS" - Success is reported, but some results may be missing + // due to errors + // "QUOTA_INFO_UNAVAILABLE" - Quota information is not available to client + // requests (e.g: + // regions.list). + // "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource that + // requires a TOS they have not + // accepted. + // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a resource is + // in use. + // "RESOURCE_NOT_DELETED" - One or more of the resources set to auto-delete + // could not be deleted + // because they were in use. + // "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is + // ignored. + // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in instance + // group manager is valid as such, but + // its application does not make a lot of sense, because it allows only + // single instance in instance group. + // "UNDECLARED_PROPERTIES" - When undeclared properties in the schema are + // present + // "UNREACHABLE" - A given scope cannot be reached. + 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 []*MachineTypeAggregatedListWarningData `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 or default values are + // omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + 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. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s MachineTypeAggregatedListWarning) MarshalJSON() ([]byte, error) { + type NoMethod MachineTypeAggregatedListWarning + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +type MachineTypeAggregatedListWarningData 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 or default values are + // omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + 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. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s MachineTypeAggregatedListWarningData) MarshalJSON() ([]byte, error) { + type NoMethod MachineTypeAggregatedListWarningData + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +// MachineTypeList: Contains a list of machine types. +type MachineTypeList struct { + // Id: [Output Only] Unique identifier for the resource; defined by the server. + Id string `json:"id,omitempty"` + // Items: A list of MachineType resources. + Items []*MachineType `json:"items,omitempty"` + // Kind: Output only. [Output Only] Type of resource. Always + // compute#machineTypeList + // for lists of machine types. + 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 thanmaxResults, 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"` + // SelfLink: Output only. [Output Only] Server-defined URL for this resource. + SelfLink string `json:"selfLink,omitempty"` + // Warning: [Output Only] Informational warning message. + Warning *MachineTypeListWarning `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 or default values are + // omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + 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. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s MachineTypeList) MarshalJSON() ([]byte, error) { + type NoMethod MachineTypeList + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +// MachineTypeListWarning: [Output Only] Informational warning message. +type MachineTypeListWarning 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" - Warning about failed cleanup of transient changes made + // by a failed + // operation. + // "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was created. + // "DEPRECATED_TYPE_USED" - When deploying and at least one of the resources + // has a type marked as + // deprecated + // "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk that is + // larger than image size. + // "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the + // resources has a type marked as + // experimental + // "EXTERNAL_API_WARNING" - Warning that is present in an external api call + // "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been + // overridden. + // Deprecated unused field. + // "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an injected + // kernel, which is deprecated. + // "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB" - A WEIGHTED_MAGLEV backend + // service is associated with a health check that is + // not of type HTTP/HTTPS/HTTP2. + // "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a + // exceedingly large number of resources + // "LIST_OVERHEAD_QUOTA_EXCEED" - Resource can't be retrieved due to list + // overhead quota exceed + // which captures the amount of resources filtered out by + // user-defined list filter. + // "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type + // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is not + // assigned to an instance on the + // network. + // "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot ip + // forward. + // "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE" - The route's nextHopInstance + // URL refers to an instance that does not have an + // ipv6 interface on the same network as the route. + // "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL refers to + // an instance that does not exist. + // "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance URL + // refers to an instance that is not on the + // same network as the route. + // "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not have a + // status of RUNNING. + // "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to continue + // the process despite + // the mentioned error. + // "NO_RESULTS_ON_PAGE" - No results are present on a particular list page. + // "PARTIAL_SUCCESS" - Success is reported, but some results may be missing + // due to errors + // "QUOTA_INFO_UNAVAILABLE" - Quota information is not available to client + // requests (e.g: + // regions.list). + // "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource that + // requires a TOS they have not + // accepted. + // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a resource is + // in use. + // "RESOURCE_NOT_DELETED" - One or more of the resources set to auto-delete + // could not be deleted + // because they were in use. + // "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is + // ignored. + // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in instance + // group manager is valid as such, but + // its application does not make a lot of sense, because it allows only + // single instance in instance group. + // "UNDECLARED_PROPERTIES" - When undeclared properties in the schema are + // present + // "UNREACHABLE" - A given scope cannot be reached. + 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 []*MachineTypeListWarningData `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 or default values are + // omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + 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. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s MachineTypeListWarning) MarshalJSON() ([]byte, error) { + type NoMethod MachineTypeListWarning + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +type MachineTypeListWarningData 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 or default values are + // omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + 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. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s MachineTypeListWarningData) MarshalJSON() ([]byte, error) { + type NoMethod MachineTypeListWarningData + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +type MachineTypesScopedList struct { + // MachineTypes: [Output Only] A list of machine types contained in this scope. + MachineTypes []*MachineType `json:"machineTypes,omitempty"` + // Warning: [Output Only] An informational warning that appears when the + // machine types + // list is empty. + Warning *MachineTypesScopedListWarning `json:"warning,omitempty"` + // ForceSendFields is a list of field names (e.g. "MachineTypes") to + // unconditionally include in API requests. By default, fields with empty or + // default values are omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + ForceSendFields []string `json:"-"` + // NullFields is a list of field names (e.g. "MachineTypes") to include in API + // requests with the JSON null value. By default, fields with empty values are + // omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s MachineTypesScopedList) MarshalJSON() ([]byte, error) { + type NoMethod MachineTypesScopedList + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +// MachineTypesScopedListWarning: [Output Only] An informational warning that +// appears when the machine types +// list is empty. +type MachineTypesScopedListWarning 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" - Warning about failed cleanup of transient changes made + // by a failed + // operation. + // "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was created. + // "DEPRECATED_TYPE_USED" - When deploying and at least one of the resources + // has a type marked as + // deprecated + // "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk that is + // larger than image size. + // "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the + // resources has a type marked as + // experimental + // "EXTERNAL_API_WARNING" - Warning that is present in an external api call + // "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been + // overridden. + // Deprecated unused field. + // "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an injected + // kernel, which is deprecated. + // "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB" - A WEIGHTED_MAGLEV backend + // service is associated with a health check that is + // not of type HTTP/HTTPS/HTTP2. + // "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a + // exceedingly large number of resources + // "LIST_OVERHEAD_QUOTA_EXCEED" - Resource can't be retrieved due to list + // overhead quota exceed + // which captures the amount of resources filtered out by + // user-defined list filter. + // "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type + // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is not + // assigned to an instance on the + // network. + // "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot ip + // forward. + // "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE" - The route's nextHopInstance + // URL refers to an instance that does not have an + // ipv6 interface on the same network as the route. + // "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL refers to + // an instance that does not exist. + // "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance URL + // refers to an instance that is not on the + // same network as the route. + // "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not have a + // status of RUNNING. + // "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to continue + // the process despite + // the mentioned error. + // "NO_RESULTS_ON_PAGE" - No results are present on a particular list page. + // "PARTIAL_SUCCESS" - Success is reported, but some results may be missing + // due to errors + // "QUOTA_INFO_UNAVAILABLE" - Quota information is not available to client + // requests (e.g: + // regions.list). + // "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource that + // requires a TOS they have not + // accepted. + // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a resource is + // in use. + // "RESOURCE_NOT_DELETED" - One or more of the resources set to auto-delete + // could not be deleted + // because they were in use. + // "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is + // ignored. + // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in instance + // group manager is valid as such, but + // its application does not make a lot of sense, because it allows only + // single instance in instance group. + // "UNDECLARED_PROPERTIES" - When undeclared properties in the schema are + // present + // "UNREACHABLE" - A given scope cannot be reached. + 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 []*MachineTypesScopedListWarningData `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 or default values are + // omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + 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. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s MachineTypesScopedListWarning) MarshalJSON() ([]byte, error) { + type NoMethod MachineTypesScopedListWarning + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +type MachineTypesScopedListWarningData 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 or default values are + // omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + 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. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s MachineTypesScopedListWarningData) MarshalJSON() ([]byte, error) { + type NoMethod MachineTypesScopedListWarningData + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +// ManagedInstance: A Managed Instance resource. +type ManagedInstance struct { + // CurrentAction: Output only. [Output Only] The current action that the + // managed instance group has + // scheduled for the instance. Possible values: + // + // - NONE The instance is running, and the managed + // instance group does not have any scheduled actions for this instance. + // - CREATING The managed instance group is creating this + // instance. If the group fails to create this instance, it will try again + // until it is successful. + // - CREATING_WITHOUT_RETRIES The managed instance group + // is attempting to create this instance only once. If the group fails + // to create this instance, it does not try again and the group'stargetSize + // value is decreased instead. + // - RECREATING The managed instance group is recreating + // this instance. + // - DELETING The managed instance group is permanently + // deleting this instance. + // - ABANDONING The managed instance group is abandoning + // this instance. The instance will be removed from the instance group + // and from any target pools that are associated with this group. + // - RESTARTING The managed instance group is restarting + // the instance. + // - REFRESHING The managed instance group is applying + // configuration changes to the instance without stopping it. For example, + // the group can update the target pool list for an instance without + // stopping that instance. + // - VERIFYING The managed instance group has created the + // instance and it is in the process of being verified. + // + // Possible values: + // "ABANDONING" - The managed instance group is abandoning this instance. The + // instance + // will be removed from the instance group and from any target pools that + // are associated with this group. + // "CREATING" - The managed instance group is creating this instance. If the + // group + // fails to create this instance, it will try again until it is + // successful. + // "CREATING_WITHOUT_RETRIES" - The managed instance group is attempting to + // create this instance + // only once. If the group fails to create this instance, it does + // not try again and the group's targetSize value is + // decreased. + // "DELETING" - The managed instance group is permanently deleting this + // instance. + // "NONE" - The managed instance group has not scheduled any actions for + // this + // instance. + // "RECREATING" - The managed instance group is recreating this instance. + // "REFRESHING" - The managed instance group is applying configuration + // changes to the + // instance without stopping it. For example, the group can update the + // target pool list for an instance without stopping that instance. + // "RESTARTING" - The managed instance group is restarting this instance. + // "RESUMING" - The managed instance group is resuming this instance. + // "STARTING" - The managed instance group is starting this instance. + // "STOPPING" - The managed instance group is stopping this instance. + // "SUSPENDING" - The managed instance group is suspending this instance. + // "VERIFYING" - The managed instance group is verifying this already created + // instance. + // Verification happens every time the instance is (re)created or restarted + // and consists of: + // 1. Waiting until health check specified as part of this managed instance + // group's autohealing policy reports HEALTHY. + // Note: Applies only if autohealing policy has a health check specified + // 2. Waiting for addition verification steps performed as post-instance + // creation (subject to future extensions). + CurrentAction string `json:"currentAction,omitempty"` + // Id: Output only. [Output only] The unique identifier for this resource. This + // field is empty + // when instance does not exist. + Id uint64 `json:"id,omitempty,string"` + // Instance: Output only. [Output Only] The URL of the instance. The URL can + // exist even if the + // instance has not yet been created. + Instance string `json:"instance,omitempty"` + // InstanceHealth: Output only. [Output Only] Health state of the instance per + // health-check. + InstanceHealth []*ManagedInstanceInstanceHealth `json:"instanceHealth,omitempty"` + // InstanceStatus: Output only. [Output Only] The status of the instance. This + // field is empty when + // the instance does not exist. + // + // Possible values: + // "DEPROVISIONING" - The instance is halted and we are performing tear down + // tasks like network + // deprogramming, releasing quota, IP, tearing down disks etc. + // "PENDING" - For Flex Start provisioning instance is waiting for available + // capacity + // from Dynamic Workload Scheduler (DWS). + // "PROVISIONING" - Resources are being allocated for the instance. + // "REPAIRING" - The instance is in repair. + // "RUNNING" - The instance is running. + // "STAGING" - All required resources have been allocated and the instance + // is being started. + // "STOPPED" - The instance has stopped successfully. + // "STOPPING" - The instance is currently stopping (either being deleted or + // killed). + // "SUSPENDED" - The instance has suspended. + // "SUSPENDING" - The instance is suspending. + // "TERMINATED" - The instance has stopped (either by explicit action or + // underlying + // failure). + InstanceStatus string `json:"instanceStatus,omitempty"` + // LastAttempt: Output only. [Output Only] Information about the last attempt + // to create or delete + // the instance. + LastAttempt *ManagedInstanceLastAttempt `json:"lastAttempt,omitempty"` + // Name: Output only. [Output Only] The name of the instance. The name always + // exists even if the + // instance has not yet been created. + Name string `json:"name,omitempty"` + // PreservedStateFromConfig: Output only. [Output Only] Preserved state applied + // from per-instance config + // for this instance. + PreservedStateFromConfig *PreservedState `json:"preservedStateFromConfig,omitempty"` + // PreservedStateFromPolicy: Output only. [Output Only] Preserved state + // generated based on stateful policy + // for this instance. + PreservedStateFromPolicy *PreservedState `json:"preservedStateFromPolicy,omitempty"` + // PropertiesFromFlexibilityPolicy: Output only. [Output Only] Instance + // properties selected for this instance resulting + // from + // InstanceFlexibilityPolicy. + PropertiesFromFlexibilityPolicy *ManagedInstancePropertiesFromFlexibilityPolicy `json:"propertiesFromFlexibilityPolicy,omitempty"` + // Scheduling: Output only. Information about the termination timestamp of the + // instance, if applicable. + Scheduling *ManagedInstanceScheduling `json:"scheduling,omitempty"` + // ShutdownDetails: Output only. Specifies the graceful shutdown details if the + // instance is in + // `PENDING_STOP` state or there is a programmed stop scheduled. + ShutdownDetails *ManagedInstanceShutdownDetails `json:"shutdownDetails,omitempty"` + // Version: Output only. [Output Only] Intended version of this instance. + Version *ManagedInstanceVersion `json:"version,omitempty"` + // ForceSendFields is a list of field names (e.g. "CurrentAction") to + // unconditionally include in API requests. By default, fields with empty or + // default values are omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + ForceSendFields []string `json:"-"` + // NullFields is a list of field names (e.g. "CurrentAction") to include in API + // requests with the JSON null value. By default, fields with empty values are + // omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s ManagedInstance) MarshalJSON() ([]byte, error) { + type NoMethod ManagedInstance + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +type ManagedInstanceInstanceHealth struct { + // DetailedHealthState: Output only. [Output Only] The current detailed + // instance health state. + // + // Possible values: + // "DRAINING" - The instance is being drained. The existing connections to + // the instance + // have time to complete, but the new ones are being refused. + // "HEALTHY" - The instance is reachable i.e. a connection to the application + // health + // checking endpoint can be established, and conforms to the + // requirements + // defined by the health check. + // "TIMEOUT" - The instance is unreachable i.e. a connection to the + // application health + // checking endpoint cannot be established, or the server does not + // respond + // within the specified timeout. + // "UNHEALTHY" - The instance is reachable, but does not conform to the + // requirements + // defined by the health check. + // "UNKNOWN" - The health checking system is aware of the instance but its + // health is + // not known at the moment. + DetailedHealthState string `json:"detailedHealthState,omitempty"` + // HealthCheck: Output only. [Output Only] The URL for the health check that + // verifies whether the + // instance is healthy. + HealthCheck string `json:"healthCheck,omitempty"` + // ForceSendFields is a list of field names (e.g. "DetailedHealthState") to + // unconditionally include in API requests. By default, fields with empty or + // default values are omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + ForceSendFields []string `json:"-"` + // NullFields is a list of field names (e.g. "DetailedHealthState") to include + // in API requests with the JSON null value. By default, fields with empty + // values are omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s ManagedInstanceInstanceHealth) MarshalJSON() ([]byte, error) { + type NoMethod ManagedInstanceInstanceHealth + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +type ManagedInstanceLastAttempt struct { + // Errors: Output only. [Output Only] Encountered errors during the last + // attempt to create or + // delete the instance. + Errors *ManagedInstanceLastAttemptErrors `json:"errors,omitempty"` + // ForceSendFields is a list of field names (e.g. "Errors") to unconditionally + // include in API requests. By default, fields with empty or default values are + // omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + ForceSendFields []string `json:"-"` + // NullFields is a list of field names (e.g. "Errors") to include in API + // requests with the JSON null value. By default, fields with empty values are + // omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s ManagedInstanceLastAttempt) MarshalJSON() ([]byte, error) { + type NoMethod ManagedInstanceLastAttempt + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +// ManagedInstanceLastAttemptErrors: Output only. [Output Only] Encountered +// errors during the last attempt to create or +// delete the instance. +type ManagedInstanceLastAttemptErrors struct { + // Errors: [Output Only] The array of errors encountered while processing + // this + // operation. + Errors []*ManagedInstanceLastAttemptErrorsErrors `json:"errors,omitempty"` + // ForceSendFields is a list of field names (e.g. "Errors") to unconditionally + // include in API requests. By default, fields with empty or default values are + // omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + ForceSendFields []string `json:"-"` + // NullFields is a list of field names (e.g. "Errors") to include in API + // requests with the JSON null value. By default, fields with empty values are + // omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s ManagedInstanceLastAttemptErrors) MarshalJSON() ([]byte, error) { + type NoMethod ManagedInstanceLastAttemptErrors + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +type ManagedInstanceLastAttemptErrorsErrors struct { + // Code: [Output Only] The error type identifier for this error. + Code string `json:"code,omitempty"` + // ErrorDetails: [Output Only] An optional list of messages that contain the + // error + // details. There is a set of defined message types to use for + // providing + // details.The syntax depends on the error code. For example, + // QuotaExceededInfo will have details when the error code is + // QUOTA_EXCEEDED. + ErrorDetails []*ManagedInstanceLastAttemptErrorsErrorsErrorDetails `json:"errorDetails,omitempty"` + // Location: [Output Only] Indicates the field in the request that caused the + // error. + // This property is optional. + Location string `json:"location,omitempty"` + // Message: [Output Only] An optional, human-readable error message. + 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 or default values are + // omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + 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. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s ManagedInstanceLastAttemptErrorsErrors) MarshalJSON() ([]byte, error) { + type NoMethod ManagedInstanceLastAttemptErrorsErrors + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +type ManagedInstanceLastAttemptErrorsErrorsErrorDetails struct { + ErrorInfo *ErrorInfo `json:"errorInfo,omitempty"` + Help *Help `json:"help,omitempty"` + LocalizedMessage *LocalizedMessage `json:"localizedMessage,omitempty"` + QuotaInfo *QuotaExceededInfo `json:"quotaInfo,omitempty"` + // ForceSendFields is a list of field names (e.g. "ErrorInfo") to + // unconditionally include in API requests. By default, fields with empty or + // default values are omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + ForceSendFields []string `json:"-"` + // NullFields is a list of field names (e.g. "ErrorInfo") to include in API + // requests with the JSON null value. By default, fields with empty values are + // omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s ManagedInstanceLastAttemptErrorsErrorsErrorDetails) MarshalJSON() ([]byte, error) { + type NoMethod ManagedInstanceLastAttemptErrorsErrorsErrorDetails + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +type ManagedInstancePropertiesFromFlexibilityPolicy struct { + // MachineType: Output only. The machine type to be used for this instance. + MachineType string `json:"machineType,omitempty"` + // ForceSendFields is a list of field names (e.g. "MachineType") to + // unconditionally include in API requests. By default, fields with empty or + // default values are omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + ForceSendFields []string `json:"-"` + // NullFields is a list of field names (e.g. "MachineType") to include in API + // requests with the JSON null value. By default, fields with empty values are + // omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s ManagedInstancePropertiesFromFlexibilityPolicy) MarshalJSON() ([]byte, error) { + type NoMethod ManagedInstancePropertiesFromFlexibilityPolicy + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +type ManagedInstanceScheduling struct { + // GracefulShutdownTimestamp: Output only. The timestamp at which the + // underlying instance will be + // triggered for graceful shutdown if it is configured. This is in RFC3339 text + // format. + GracefulShutdownTimestamp string `json:"gracefulShutdownTimestamp,omitempty"` + // TerminationTimestamp: Output only. The timestamp at which the managed + // instance will be terminated. This is + // in RFC3339 text + // format. + TerminationTimestamp string `json:"terminationTimestamp,omitempty"` + // ForceSendFields is a list of field names (e.g. "GracefulShutdownTimestamp") + // to unconditionally include in API requests. By default, fields with empty or + // default values are omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + ForceSendFields []string `json:"-"` + // NullFields is a list of field names (e.g. "GracefulShutdownTimestamp") to + // include in API requests with the JSON null value. By default, fields with + // empty values are omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s ManagedInstanceScheduling) MarshalJSON() ([]byte, error) { + type NoMethod ManagedInstanceScheduling + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +type ManagedInstanceShutdownDetails struct { + // MaxDuration: Output only. The duration for graceful shutdown. Only + // applicable when the instance is + // in `PENDING_STOP` state. + MaxDuration *Duration `json:"maxDuration,omitempty"` + // RequestTimestamp: Output only. Past timestamp indicating the beginning of + // `PENDING_STOP` state of + // instance in RFC3339 + // text format. + RequestTimestamp string `json:"requestTimestamp,omitempty"` + // ForceSendFields is a list of field names (e.g. "MaxDuration") to + // unconditionally include in API requests. By default, fields with empty or + // default values are omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + ForceSendFields []string `json:"-"` + // NullFields is a list of field names (e.g. "MaxDuration") to include in API + // requests with the JSON null value. By default, fields with empty values are + // omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s ManagedInstanceShutdownDetails) MarshalJSON() ([]byte, error) { + type NoMethod ManagedInstanceShutdownDetails + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +type ManagedInstanceVersion struct { + // InstanceTemplate: Output only. [Output Only] The intended template of the + // instance. This field is empty + // when current_action is one of { DELETING, ABANDONING }. + InstanceTemplate string `json:"instanceTemplate,omitempty"` + // Name: Output only. [Output Only] Name of the version. + Name string `json:"name,omitempty"` + // ForceSendFields is a list of field names (e.g. "InstanceTemplate") to + // unconditionally include in API requests. By default, fields with empty or + // default values are omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + ForceSendFields []string `json:"-"` + // NullFields is a list of field names (e.g. "InstanceTemplate") to include in + // API requests with the JSON null value. By default, fields with empty values + // are omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s ManagedInstanceVersion) MarshalJSON() ([]byte, error) { + type NoMethod ManagedInstanceVersion + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +// Metadata: A metadata key/value entry. +type Metadata struct { + // Fingerprint: Specifies a fingerprint for this request, which is essentially + // a hash of + // the metadata's contents and used for optimistic locking. The + // fingerprint is initially generated by Compute Engine and changes after + // every request to modify or update metadata. You must always provide + // an + // up-to-date fingerprint hash in order to update or change metadata, + // otherwise the request will fail with error412 conditionNotMet. + // + // To see the latest fingerprint, make a get() request to + // retrieve the resource. + Fingerprint string `json:"fingerprint,omitempty"` + // Items: Array of key/value pairs. The total size of all keys and values must + // be + // less than 512 KB. + Items []*MetadataItems `json:"items,omitempty"` + // Kind: Output only. [Output Only] Type of the resource. Always + // compute#metadata + // for metadata. + Kind string `json:"kind,omitempty"` + // ForceSendFields is a list of field names (e.g. "Fingerprint") to + // unconditionally include in API requests. By default, fields with empty or + // default values are omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + ForceSendFields []string `json:"-"` + // NullFields is a list of field names (e.g. "Fingerprint") to include in API + // requests with the JSON null value. By default, fields with empty values are + // omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s Metadata) MarshalJSON() ([]byte, error) { + type NoMethod Metadata + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +// MetadataItems: Metadata +type MetadataItems struct { + // Key: Key for the metadata entry. Keys must conform to the following + // regexp: [a-zA-Z0-9-_]+, and be less than 128 bytes in length. + // This is reflected as part of a URL in the metadata server. Additionally, + // to + // avoid ambiguity, keys must not conflict with any other metadata keys + // for the project. + Key string `json:"key,omitempty"` + // Value: Value for the metadata entry. These are free-form strings, and + // only + // have meaning as interpreted by the image running in the instance. The + // only restriction placed on values is that their size must be less than + // or equal to 262144 bytes (256 KiB). + 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 or default values are + // omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + 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. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s MetadataItems) MarshalJSON() ([]byte, error) { + type NoMethod MetadataItems + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +// MetadataFilter: Opaque filter criteria used by load balancers to restrict +// routing +// configuration to a limited set of load balancing proxies. Proxies +// and +// sidecars involved in load balancing would typically present metadata to +// the +// load balancers that need to match criteria specified here. If a match +// takes +// place, the relevant configuration is made available to those +// proxies. +// +// For each metadataFilter in this list, if itsfilterMatchCriteria is set to +// MATCH_ANY, at least +// one of thefilterLabels must match the corresponding label provided in +// the metadata. If its filterMatchCriteria is set to +// MATCH_ALL, then all of its filterLabels must match with +// corresponding labels provided in the metadata. +// +// An example for using metadataFilters would be: if +// load balancing involves +// Envoys, they receive routing configuration when values inmetadataFilters +// match values supplied in of their XDS requests to loadbalancers. +type MetadataFilter struct { + // FilterLabels: The list of label value pairs that must match labels in the + // provided + // metadata based on filterMatchCriteria + // + // This list must not be empty and can have at the most 64 entries. + FilterLabels []*MetadataFilterLabelMatch `json:"filterLabels,omitempty"` + // FilterMatchCriteria: Specifies how individual filter label matches + // within the list of filterLabels and contributes toward the + // overall metadataFilter match. + // + // Supported values are: + // + // - MATCH_ANY: at least one of the filterLabels + // must have a matching label in the provided metadata. + // - MATCH_ALL: all filterLabels must have + // matching labels in the provided metadata. + // + // Possible values: + // "MATCH_ALL" - Specifies that all filterLabels must match for + // themetadataFilter to be considered a match. + // "MATCH_ANY" - Specifies that any filterLabel must match for + // themetadataFilter to be considered a match. + // "NOT_SET" - Indicates that the match criteria was not set. AmetadataFilter + // must never be created with this value. + FilterMatchCriteria string `json:"filterMatchCriteria,omitempty"` + // ForceSendFields is a list of field names (e.g. "FilterLabels") to + // unconditionally include in API requests. By default, fields with empty or + // default values are omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + ForceSendFields []string `json:"-"` + // NullFields is a list of field names (e.g. "FilterLabels") to include in API + // requests with the JSON null value. By default, fields with empty values are + // omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s MetadataFilter) MarshalJSON() ([]byte, error) { + type NoMethod MetadataFilter + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +// MetadataFilterLabelMatch: MetadataFilter label name value pairs that are +// expected +// to match corresponding labels presented as metadata to the load balancer. +type MetadataFilterLabelMatch struct { + // Name: Name of metadata label. + // + // The name can have a maximum length of 1024 characters and must be at + // least 1 character long. + Name string `json:"name,omitempty"` + // Value: The value of the label must match the specified value. + // + // value can have a maximum length of 1024 characters. + Value string `json:"value,omitempty"` + // ForceSendFields is a list of field names (e.g. "Name") to unconditionally + // include in API requests. By default, fields with empty or default values are + // omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + ForceSendFields []string `json:"-"` + // NullFields is a list of field names (e.g. "Name") to include in API requests + // with the JSON null value. By default, fields with empty values are omitted + // from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s MetadataFilterLabelMatch) MarshalJSON() ([]byte, error) { + type NoMethod MetadataFilterLabelMatch + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +// NamedPort: The named port. For example: <"http", 80>. +type NamedPort struct { + // Name: The name for this named port. + // The name must be 1-63 characters long, and comply withRFC1035. + Name string `json:"name,omitempty"` + // Port: The port number, which can be a value between 1 and 65535. + Port int64 `json:"port,omitempty"` + // ForceSendFields is a list of field names (e.g. "Name") to unconditionally + // include in API requests. By default, fields with empty or default values are + // omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + ForceSendFields []string `json:"-"` + // NullFields is a list of field names (e.g. "Name") to include in API requests + // with the JSON null value. By default, fields with empty values are omitted + // from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s NamedPort) MarshalJSON() ([]byte, error) { + type NoMethod NamedPort + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +type NamedSet struct { + // Description: An optional description of named set. + Description string `json:"description,omitempty"` + // Elements: CEL expressions that are comparable to constructs of this set's + // type + // (see Policy Language). + Elements []*Expr `json:"elements,omitempty"` + // Fingerprint: A fingerprint for the Named Set being applied to this Router, + // which is + // essentially a hash of the Named Set used for optimistic locking. + // The fingerprint is initially generated by Compute Engine and changes + // after every request to modify or update the Named Set. You must + // always + // provide an up-to-date fingerprint hash in order to update or + // change + // labels. + // + // To see the latest fingerprint, make a getNamedSet() request + // to retrieve a Named Set. + Fingerprint string `json:"fingerprint,omitempty"` + // Name: This set's name, which must be a resource ID segment and unique within + // all + // named sets owned by the Router. Name should conform to RFC1035. + Name string `json:"name,omitempty"` + // Type: This named set's type + // + // Possible values: + // "NAMED_SET_TYPE_COMMUNITY" - The Named Set is a Community Named Set. + // "NAMED_SET_TYPE_PREFIX" - The Named Set is a Prefix Named Set. + Type string `json:"type,omitempty"` + // ForceSendFields is a list of field names (e.g. "Description") to + // unconditionally include in API requests. By default, fields with empty or + // default values are omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + ForceSendFields []string `json:"-"` + // NullFields is a list of field names (e.g. "Description") to include in API + // requests with the JSON null value. By default, fields with empty values are + // omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s NamedSet) MarshalJSON() ([]byte, error) { + type NoMethod NamedSet + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +// NatIpInfo: Contains NAT IP information of a NAT config (i.e. usage status, +// mode). +type NatIpInfo struct { + // NatIpInfoMappings: Output only. A list of all NAT IPs assigned to this NAT + // config. + NatIpInfoMappings []*NatIpInfoNatIpInfoMapping `json:"natIpInfoMappings,omitempty"` + // NatName: Output only. Name of the NAT config which the NAT IP belongs to. + NatName string `json:"natName,omitempty"` + // ForceSendFields is a list of field names (e.g. "NatIpInfoMappings") to + // unconditionally include in API requests. By default, fields with empty or + // default values are omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + ForceSendFields []string `json:"-"` + // NullFields is a list of field names (e.g. "NatIpInfoMappings") to include in + // API requests with the JSON null value. By default, fields with empty values + // are omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s NatIpInfo) MarshalJSON() ([]byte, error) { + type NoMethod NatIpInfo + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +// NatIpInfoNatIpInfoMapping: Contains information of a NAT IP. +type NatIpInfoNatIpInfoMapping struct { + // Mode: Output only. Specifies whether NAT IP is auto or manual. + // + // Possible values: + // "AUTO" + // "MANUAL" + Mode string `json:"mode,omitempty"` + // NatIp: Output only. NAT IP address. For example: 203.0.113.11. + NatIp string `json:"natIp,omitempty"` + // Usage: Output only. Specifies whether NAT IP is currently serving at least + // one endpoint or + // not. + // + // Possible values: + // "IN_USE" + // "UNUSED" + Usage string `json:"usage,omitempty"` + // ForceSendFields is a list of field names (e.g. "Mode") to unconditionally + // include in API requests. By default, fields with empty or default values are + // omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + ForceSendFields []string `json:"-"` + // NullFields is a list of field names (e.g. "Mode") to include in API requests + // with the JSON null value. By default, fields with empty values are omitted + // from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s NatIpInfoNatIpInfoMapping) MarshalJSON() ([]byte, error) { + type NoMethod NatIpInfoNatIpInfoMapping + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +type NatIpInfoResponse struct { + // Result: [Output Only] A list of NAT IP information. + Result []*NatIpInfo `json:"result,omitempty"` + + // ServerResponse contains the HTTP response code and headers from the server. + googleapi.ServerResponse `json:"-"` + // ForceSendFields is a list of field names (e.g. "Result") to unconditionally + // include in API requests. By default, fields with empty or default values are + // omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + ForceSendFields []string `json:"-"` + // NullFields is a list of field names (e.g. "Result") to include in API + // requests with the JSON null value. By default, fields with empty values are + // omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s NatIpInfoResponse) MarshalJSON() ([]byte, error) { + type NoMethod NatIpInfoResponse + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +// Network: Represents a VPC Network resource. +// +// Networks connect resources to each other and to the internet. For +// more +// information, readVirtual Private Cloud (VPC) Network. +type Network struct { + // IPv4Range: Deprecated in favor of subnet mode networks. + // The range of internal addresses that are legal on this network. This + // range is aCIDR specification, for example:192.168.0.0/16. Provided by the + // client when the network is + // created. + IPv4Range string `json:"IPv4Range,omitempty"` + // AutoCreateSubnetworks: Must be set to create a VPC network. If not set, a + // legacy network is + // created. + // + // When set to true, the VPC network is created in auto mode. + // When set to false, the VPC network is created in custom mode. + // + // An auto mode VPC network starts with one subnet per region. Each subnet + // has a predetermined range as described inAuto mode VPC network IP + // ranges. + // + // For custom mode VPC networks, you can add subnets using the + // subnetworksinsert + // method. + AutoCreateSubnetworks bool `json:"autoCreateSubnetworks,omitempty"` + // CreationTimestamp: Output only. [Output Only] Creation timestamp + // inRFC3339 + // text format. + CreationTimestamp string `json:"creationTimestamp,omitempty"` + // Description: An optional description of this resource. Provide this field + // when you + // create the resource. + Description string `json:"description,omitempty"` + // EnableUlaInternalIpv6: Enable ULA internal ipv6 on this network. Enabling + // this feature will assign + // a /48 from google defined ULA prefix fd20::/20. + // . + EnableUlaInternalIpv6 bool `json:"enableUlaInternalIpv6,omitempty"` + // FirewallPolicy: Output only. [Output Only] URL of the firewall policy the + // network is associated with. + FirewallPolicy string `json:"firewallPolicy,omitempty"` + // GatewayIPv4: [Output Only] The gateway address for default routing out of + // the network, + // selected by Google Cloud. + GatewayIPv4 string `json:"gatewayIPv4,omitempty"` + // Id: Output only. [Output Only] The unique identifier for the resource. This + // identifier is + // defined by the server. + Id uint64 `json:"id,omitempty,string"` + // InternalIpv6Range: When enabling ula internal ipv6, caller optionally can + // specify the /48 + // range they want from the google defined ULA prefix fd20::/20. The input + // must be a valid /48 ULA IPv6 address and must be within the + // fd20::/20. + // Operation will fail if the speficied /48 is already in used by + // another + // resource. If the field is not speficied, then a /48 range will be + // randomly + // allocated from fd20::/20 and returned via this field. + // . + InternalIpv6Range string `json:"internalIpv6Range,omitempty"` + // Kind: Output only. [Output Only] Type of the resource. Always + // compute#network for + // networks. + Kind string `json:"kind,omitempty"` + // Mtu: Maximum Transmission Unit in bytes. + // The minimum value for this field is 1300 and the maximum value is 8896. + // The suggested value is 1500, which is the default MTU used on the + // Internet, or 8896 if you want to use Jumbo frames. If unspecified, the + // value defaults to 1460. + Mtu int64 `json:"mtu,omitempty"` + // Name: Name of the resource. Provided by the client when the resource is + // created. + // The name must be 1-63 characters long, and comply withRFC1035. + // Specifically, the name must be 1-63 characters long and match the + // regular + // expression `[a-z]([-a-z0-9]*[a-z0-9])?`. The first character must be + // a + // lowercase letter, and all following characters (except for the + // last + // character) must be a dash, lowercase letter, or digit. The last + // character + // must be a lowercase letter or digit. + Name string `json:"name,omitempty"` + // NetworkFirewallPolicyEnforcementOrder: The network firewall policy + // enforcement order. Can be either + // AFTER_CLASSIC_FIREWALL or BEFORE_CLASSIC_FIREWALL. Defaults + // to + // AFTER_CLASSIC_FIREWALL if the field is not specified. + // + // Possible values: + // "AFTER_CLASSIC_FIREWALL" + // "BEFORE_CLASSIC_FIREWALL" + NetworkFirewallPolicyEnforcementOrder string `json:"networkFirewallPolicyEnforcementOrder,omitempty"` + // NetworkProfile: A full or partial URL of the network profile to apply to + // this network. + // This field can be set only at resource creation time. For example, + // the + // following are valid URLs: + // + // - + // https://www.googleapis.com/compute/{api_version}/projects/{project_id}/global/networkProfiles/{network_profile_name} + // - projects/{project_id}/global/networkProfiles/{network_profile_name} + NetworkProfile string `json:"networkProfile,omitempty"` + // Params: Input only. [Input Only] Additional params passed with the request, + // but not persisted + // as part of resource payload. + Params *NetworkParams `json:"params,omitempty"` + // Peerings: Output only. [Output Only] A list of network peerings for the + // resource. + Peerings []*NetworkPeering `json:"peerings,omitempty"` + // RoutingConfig: The network-level routing configuration for this network. + // Used by Cloud + // Router to determine what type of network-wide routing behavior to enforce. + RoutingConfig *NetworkRoutingConfig `json:"routingConfig,omitempty"` + // SelfLink: [Output Only] Server-defined URL for the resource. + SelfLink string `json:"selfLink,omitempty"` + // SelfLinkWithId: Output only. [Output Only] Server-defined URL for this + // resource with the resource id. + SelfLinkWithId string `json:"selfLinkWithId,omitempty"` + // Subnetworks: [Output Only] Server-defined fully-qualified URLs for all + // subnetworks + // in this VPC network. + Subnetworks []string `json:"subnetworks,omitempty"` + + // ServerResponse contains the HTTP response code and headers from the server. + googleapi.ServerResponse `json:"-"` + // ForceSendFields is a list of field names (e.g. "IPv4Range") to + // unconditionally include in API requests. By default, fields with empty or + // default values are omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + ForceSendFields []string `json:"-"` + // NullFields is a list of field names (e.g. "IPv4Range") to include in API + // requests with the JSON null value. By default, fields with empty values are + // omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s Network) MarshalJSON() ([]byte, error) { + type NoMethod Network + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +// NetworkAttachment: NetworkAttachments +// A network attachment resource ... +type NetworkAttachment struct { + // ConnectionEndpoints: Output only. [Output Only] An array of connections for + // all the producers connected + // to this network attachment. + ConnectionEndpoints []*NetworkAttachmentConnectedEndpoint `json:"connectionEndpoints,omitempty"` + // Possible values: + // "ACCEPT_AUTOMATIC" + // "ACCEPT_MANUAL" + // "INVALID" + ConnectionPreference string `json:"connectionPreference,omitempty"` + // CreationTimestamp: Output only. [Output Only] Creation timestamp + // inRFC3339 + // text format. + CreationTimestamp string `json:"creationTimestamp,omitempty"` + // Description: An optional description of this resource. Provide this property + // when you + // create the resource. + Description string `json:"description,omitempty"` + // Fingerprint: Fingerprint of this resource. A hash of the contents stored + // in this object. This field is used in optimistic locking. An + // up-to-date + // fingerprint must be provided in order to patch. + Fingerprint string `json:"fingerprint,omitempty"` + // Id: Output only. [Output Only] The unique identifier for the resource type. + // The server + // generates this identifier. + Id uint64 `json:"id,omitempty,string"` + // Kind: Output only. [Output Only] Type of the resource. + Kind string `json:"kind,omitempty"` + // Name: Name of the resource. Provided by the client when the resource is + // created. + // The name must be 1-63 characters long, and comply withRFC1035. + // 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. + Name string `json:"name,omitempty"` + // Network: Output only. [Output Only] The URL of the network which the Network + // Attachment + // belongs to. Practically it is inferred by fetching the network of the + // first + // subnetwork associated. Because it is required that all the subnetworks + // must + // be from the same network, it is assured that the Network Attachment + // belongs + // to the same network as all the subnetworks. + Network string `json:"network,omitempty"` + // ProducerAcceptLists: Projects or service class ids that are allowed to + // connect to this network + // attachment. The project can be specified using its id or number. + // Service + // class id can be specified as "serviceclasses/{service_class_id}". + ProducerAcceptLists []string `json:"producerAcceptLists,omitempty"` + // ProducerRejectLists: Projects or service class ids that are not allowed to + // connect to this + // network attachment. The project can be specified using its id or + // number. + // Service class id can be specified as "serviceclasses/{service_class_id}". + ProducerRejectLists []string `json:"producerRejectLists,omitempty"` + // Region: Output only. [Output Only] URL of the region where the network + // attachment resides. + // This field applies only to the region resource. You must specify this + // field as part of the HTTP request URL. It is not settable as a field in + // the request body. + Region string `json:"region,omitempty"` + // SelfLink: Output only. [Output Only] Server-defined URL for the resource. + SelfLink string `json:"selfLink,omitempty"` + // SelfLinkWithId: Output only. [Output Only] Server-defined URL for this + // resource's resource id. + SelfLinkWithId string `json:"selfLinkWithId,omitempty"` + // Subnetworks: An array of URLs where each entry is the URL of a + // subnet + // provided by the service consumer to use for + // endpoints in the producers that connect to this network attachment. + Subnetworks []string `json:"subnetworks,omitempty"` + + // ServerResponse contains the HTTP response code and headers from the server. + googleapi.ServerResponse `json:"-"` + // ForceSendFields is a list of field names (e.g. "ConnectionEndpoints") to + // unconditionally include in API requests. By default, fields with empty or + // default values are omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + ForceSendFields []string `json:"-"` + // NullFields is a list of field names (e.g. "ConnectionEndpoints") to include + // in API requests with the JSON null value. By default, fields with empty + // values are omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s NetworkAttachment) MarshalJSON() ([]byte, error) { + type NoMethod NetworkAttachment + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +// NetworkAttachmentAggregatedList: Contains a list of +// NetworkAttachmentsScopedList. +type NetworkAttachmentAggregatedList struct { + // Id: [Output Only] Unique identifier for the resource; defined by the server. + Id string `json:"id,omitempty"` + // Items: A list of NetworkAttachmentsScopedList resources. + Items map[string]NetworkAttachmentsScopedList `json:"items,omitempty"` + 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 thanmaxResults, 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"` + // SelfLink: [Output Only] Server-defined URL for this resource. + SelfLink string `json:"selfLink,omitempty"` + // Warning: [Output Only] Informational warning message. + Warning *NetworkAttachmentAggregatedListWarning `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 or default values are + // omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + 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. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s NetworkAttachmentAggregatedList) MarshalJSON() ([]byte, error) { + type NoMethod NetworkAttachmentAggregatedList + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +// NetworkAttachmentAggregatedListWarning: [Output Only] Informational warning +// message. +type NetworkAttachmentAggregatedListWarning 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" - Warning about failed cleanup of transient changes made + // by a failed + // operation. + // "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was created. + // "DEPRECATED_TYPE_USED" - When deploying and at least one of the resources + // has a type marked as + // deprecated + // "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk that is + // larger than image size. + // "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the + // resources has a type marked as + // experimental + // "EXTERNAL_API_WARNING" - Warning that is present in an external api call + // "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been + // overridden. + // Deprecated unused field. + // "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an injected + // kernel, which is deprecated. + // "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB" - A WEIGHTED_MAGLEV backend + // service is associated with a health check that is + // not of type HTTP/HTTPS/HTTP2. + // "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a + // exceedingly large number of resources + // "LIST_OVERHEAD_QUOTA_EXCEED" - Resource can't be retrieved due to list + // overhead quota exceed + // which captures the amount of resources filtered out by + // user-defined list filter. + // "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type + // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is not + // assigned to an instance on the + // network. + // "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot ip + // forward. + // "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE" - The route's nextHopInstance + // URL refers to an instance that does not have an + // ipv6 interface on the same network as the route. + // "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL refers to + // an instance that does not exist. + // "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance URL + // refers to an instance that is not on the + // same network as the route. + // "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not have a + // status of RUNNING. + // "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to continue + // the process despite + // the mentioned error. + // "NO_RESULTS_ON_PAGE" - No results are present on a particular list page. + // "PARTIAL_SUCCESS" - Success is reported, but some results may be missing + // due to errors + // "QUOTA_INFO_UNAVAILABLE" - Quota information is not available to client + // requests (e.g: + // regions.list). + // "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource that + // requires a TOS they have not + // accepted. + // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a resource is + // in use. + // "RESOURCE_NOT_DELETED" - One or more of the resources set to auto-delete + // could not be deleted + // because they were in use. + // "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is + // ignored. + // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in instance + // group manager is valid as such, but + // its application does not make a lot of sense, because it allows only + // single instance in instance group. + // "UNDECLARED_PROPERTIES" - When undeclared properties in the schema are + // present + // "UNREACHABLE" - A given scope cannot be reached. + 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 []*NetworkAttachmentAggregatedListWarningData `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 or default values are + // omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + 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. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s NetworkAttachmentAggregatedListWarning) MarshalJSON() ([]byte, error) { + type NoMethod NetworkAttachmentAggregatedListWarning + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +type NetworkAttachmentAggregatedListWarningData 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 or default values are + // omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + 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. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s NetworkAttachmentAggregatedListWarningData) MarshalJSON() ([]byte, error) { + type NoMethod NetworkAttachmentAggregatedListWarningData + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +// NetworkAttachmentConnectedEndpoint: [Output Only] A connection connected to +// this network attachment. +type NetworkAttachmentConnectedEndpoint struct { + // IpAddress: The IPv4 address assigned to the producer instance network + // interface. + // This value will be a range in case of Serverless. + IpAddress string `json:"ipAddress,omitempty"` + // Ipv6Address: The IPv6 address assigned to the producer instance network + // interface. + // This is only assigned when the stack types of both the instance + // network + // interface and the consumer subnet are IPv4_IPv6. + Ipv6Address string `json:"ipv6Address,omitempty"` + // ProjectIdOrNum: The project id or number of the interface to which the IP + // was assigned. + ProjectIdOrNum string `json:"projectIdOrNum,omitempty"` + // SecondaryIpCidrRanges: Alias IP ranges from the same subnetwork. + SecondaryIpCidrRanges []string `json:"secondaryIpCidrRanges,omitempty"` + // ServiceClassId: The service class id of the producer service to which the IP + // was + // assigned. + ServiceClassId string `json:"serviceClassId,omitempty"` + // Status: The status of a connected endpoint to this network attachment. + // + // Possible values: + // "ACCEPTED" - The consumer allows traffic from the producer to reach its + // VPC. + // "CLOSED" - The consumer network attachment no longer exists. + // "NEEDS_ATTENTION" - The consumer needs to take further action before + // traffic can be served. + // "PENDING" - The consumer neither allows nor prohibits traffic + // from the producer to reach its VPC. + // "REJECTED" - The consumer prohibits traffic from the producer to reach its + // VPC. + // "STATUS_UNSPECIFIED" + Status string `json:"status,omitempty"` + // Subnetwork: The subnetwork used to assign the IP to the producer + // instance network interface. + Subnetwork string `json:"subnetwork,omitempty"` + // SubnetworkCidrRange: Output only. [Output Only] The CIDR range of the subnet + // from which the IPv4 internal + // IP was allocated from. + SubnetworkCidrRange string `json:"subnetworkCidrRange,omitempty"` + // ForceSendFields is a list of field names (e.g. "IpAddress") to + // unconditionally include in API requests. By default, fields with empty or + // default values are omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + ForceSendFields []string `json:"-"` + // NullFields is a list of field names (e.g. "IpAddress") to include in API + // requests with the JSON null value. By default, fields with empty values are + // omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s NetworkAttachmentConnectedEndpoint) MarshalJSON() ([]byte, error) { + type NoMethod NetworkAttachmentConnectedEndpoint + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +type NetworkAttachmentList struct { + // Id: [Output Only] Unique identifier for the resource; defined by the server. + Id string `json:"id,omitempty"` + // Items: A list of NetworkAttachment resources. + Items []*NetworkAttachment `json:"items,omitempty"` + 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 thanmaxResults, 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"` + // SelfLink: [Output Only] Server-defined URL for this resource. + SelfLink string `json:"selfLink,omitempty"` + // Warning: [Output Only] Informational warning message. + Warning *NetworkAttachmentListWarning `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 or default values are + // omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + 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. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s NetworkAttachmentList) MarshalJSON() ([]byte, error) { + type NoMethod NetworkAttachmentList + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +// NetworkAttachmentListWarning: [Output Only] Informational warning message. +type NetworkAttachmentListWarning 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" - Warning about failed cleanup of transient changes made + // by a failed + // operation. + // "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was created. + // "DEPRECATED_TYPE_USED" - When deploying and at least one of the resources + // has a type marked as + // deprecated + // "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk that is + // larger than image size. + // "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the + // resources has a type marked as + // experimental + // "EXTERNAL_API_WARNING" - Warning that is present in an external api call + // "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been + // overridden. + // Deprecated unused field. + // "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an injected + // kernel, which is deprecated. + // "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB" - A WEIGHTED_MAGLEV backend + // service is associated with a health check that is + // not of type HTTP/HTTPS/HTTP2. + // "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a + // exceedingly large number of resources + // "LIST_OVERHEAD_QUOTA_EXCEED" - Resource can't be retrieved due to list + // overhead quota exceed + // which captures the amount of resources filtered out by + // user-defined list filter. + // "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type + // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is not + // assigned to an instance on the + // network. + // "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot ip + // forward. + // "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE" - The route's nextHopInstance + // URL refers to an instance that does not have an + // ipv6 interface on the same network as the route. + // "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL refers to + // an instance that does not exist. + // "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance URL + // refers to an instance that is not on the + // same network as the route. + // "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not have a + // status of RUNNING. + // "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to continue + // the process despite + // the mentioned error. + // "NO_RESULTS_ON_PAGE" - No results are present on a particular list page. + // "PARTIAL_SUCCESS" - Success is reported, but some results may be missing + // due to errors + // "QUOTA_INFO_UNAVAILABLE" - Quota information is not available to client + // requests (e.g: + // regions.list). + // "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource that + // requires a TOS they have not + // accepted. + // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a resource is + // in use. + // "RESOURCE_NOT_DELETED" - One or more of the resources set to auto-delete + // could not be deleted + // because they were in use. + // "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is + // ignored. + // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in instance + // group manager is valid as such, but + // its application does not make a lot of sense, because it allows only + // single instance in instance group. + // "UNDECLARED_PROPERTIES" - When undeclared properties in the schema are + // present + // "UNREACHABLE" - A given scope cannot be reached. + 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 []*NetworkAttachmentListWarningData `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 or default values are + // omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + 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. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s NetworkAttachmentListWarning) MarshalJSON() ([]byte, error) { + type NoMethod NetworkAttachmentListWarning + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +type NetworkAttachmentListWarningData 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 or default values are + // omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + 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. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s NetworkAttachmentListWarningData) MarshalJSON() ([]byte, error) { + type NoMethod NetworkAttachmentListWarningData + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +type NetworkAttachmentsScopedList struct { + // NetworkAttachments: A list of NetworkAttachments contained in this scope. + NetworkAttachments []*NetworkAttachment `json:"networkAttachments,omitempty"` + // Warning: Informational warning which replaces the list of + // network attachments when the list is empty. + Warning *NetworkAttachmentsScopedListWarning `json:"warning,omitempty"` + // ForceSendFields is a list of field names (e.g. "NetworkAttachments") to + // unconditionally include in API requests. By default, fields with empty or + // default values are omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + ForceSendFields []string `json:"-"` + // NullFields is a list of field names (e.g. "NetworkAttachments") to include + // in API requests with the JSON null value. By default, fields with empty + // values are omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s NetworkAttachmentsScopedList) MarshalJSON() ([]byte, error) { + type NoMethod NetworkAttachmentsScopedList + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +// NetworkAttachmentsScopedListWarning: Informational warning which replaces +// the list of +// network attachments when the list is empty. +type NetworkAttachmentsScopedListWarning 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" - Warning about failed cleanup of transient changes made + // by a failed + // operation. + // "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was created. + // "DEPRECATED_TYPE_USED" - When deploying and at least one of the resources + // has a type marked as + // deprecated + // "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk that is + // larger than image size. + // "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the + // resources has a type marked as + // experimental + // "EXTERNAL_API_WARNING" - Warning that is present in an external api call + // "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been + // overridden. + // Deprecated unused field. + // "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an injected + // kernel, which is deprecated. + // "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB" - A WEIGHTED_MAGLEV backend + // service is associated with a health check that is + // not of type HTTP/HTTPS/HTTP2. + // "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a + // exceedingly large number of resources + // "LIST_OVERHEAD_QUOTA_EXCEED" - Resource can't be retrieved due to list + // overhead quota exceed + // which captures the amount of resources filtered out by + // user-defined list filter. + // "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type + // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is not + // assigned to an instance on the + // network. + // "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot ip + // forward. + // "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE" - The route's nextHopInstance + // URL refers to an instance that does not have an + // ipv6 interface on the same network as the route. + // "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL refers to + // an instance that does not exist. + // "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance URL + // refers to an instance that is not on the + // same network as the route. + // "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not have a + // status of RUNNING. + // "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to continue + // the process despite + // the mentioned error. + // "NO_RESULTS_ON_PAGE" - No results are present on a particular list page. + // "PARTIAL_SUCCESS" - Success is reported, but some results may be missing + // due to errors + // "QUOTA_INFO_UNAVAILABLE" - Quota information is not available to client + // requests (e.g: + // regions.list). + // "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource that + // requires a TOS they have not + // accepted. + // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a resource is + // in use. + // "RESOURCE_NOT_DELETED" - One or more of the resources set to auto-delete + // could not be deleted + // because they were in use. + // "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is + // ignored. + // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in instance + // group manager is valid as such, but + // its application does not make a lot of sense, because it allows only + // single instance in instance group. + // "UNDECLARED_PROPERTIES" - When undeclared properties in the schema are + // present + // "UNREACHABLE" - A given scope cannot be reached. + 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 []*NetworkAttachmentsScopedListWarningData `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 or default values are + // omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + 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. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s NetworkAttachmentsScopedListWarning) MarshalJSON() ([]byte, error) { + type NoMethod NetworkAttachmentsScopedListWarning + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +type NetworkAttachmentsScopedListWarningData 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 or default values are + // omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + 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. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s NetworkAttachmentsScopedListWarningData) MarshalJSON() ([]byte, error) { + type NoMethod NetworkAttachmentsScopedListWarningData + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +// NetworkEdgeSecurityService: Represents a Google Cloud Armor network edge +// security service resource. +type NetworkEdgeSecurityService struct { + // CreationTimestamp: Output only. [Output Only] Creation timestamp + // inRFC3339 + // text format. + CreationTimestamp string `json:"creationTimestamp,omitempty"` + // Description: An optional description of this resource. Provide this property + // when you + // create the resource. + Description string `json:"description,omitempty"` + // Fingerprint: Fingerprint of this resource. A hash of the contents stored in + // this object. + // This field is used in optimistic locking. This field will be ignored + // when + // inserting a NetworkEdgeSecurityService. An up-to-date fingerprint must + // be + // provided in order to update the NetworkEdgeSecurityService, + // otherwise the request will fail with error412 conditionNotMet. + // + // To see the latest fingerprint, make a get() request to + // retrieve a NetworkEdgeSecurityService. + Fingerprint string `json:"fingerprint,omitempty"` + // Id: Output only. [Output Only] The unique identifier for the resource. This + // identifier is + // defined by the server. + Id uint64 `json:"id,omitempty,string"` + // Kind: Output only. [Output only] Type of the resource. + // Alwayscompute#networkEdgeSecurityService for + // NetworkEdgeSecurityServices + Kind string `json:"kind,omitempty"` + // Name: Name of the resource. Provided by the client when the resource is + // created. + // The name must be 1-63 characters long, and comply withRFC1035. + // 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. + Name string `json:"name,omitempty"` + // Region: Output only. [Output Only] URL of the region where the resource + // resides. You must + // specify this field as part of the HTTP request URL. It is not settable as + // a + // field in the request body. + Region string `json:"region,omitempty"` + // SecurityPolicy: The resource URL for the network edge security service + // associated with this + // network edge security service. + SecurityPolicy string `json:"securityPolicy,omitempty"` + // SelfLink: Output only. [Output Only] Server-defined URL for the resource. + SelfLink string `json:"selfLink,omitempty"` + // SelfLinkWithId: Output only. [Output Only] Server-defined URL for this + // resource with the resource id. + SelfLinkWithId string `json:"selfLinkWithId,omitempty"` + + // ServerResponse contains the HTTP response code and headers from the server. + googleapi.ServerResponse `json:"-"` + // ForceSendFields is a list of field names (e.g. "CreationTimestamp") to + // unconditionally include in API requests. By default, fields with empty or + // default values are omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + ForceSendFields []string `json:"-"` + // NullFields is a list of field names (e.g. "CreationTimestamp") to include in + // API requests with the JSON null value. By default, fields with empty values + // are omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s NetworkEdgeSecurityService) MarshalJSON() ([]byte, error) { + type NoMethod NetworkEdgeSecurityService + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +type NetworkEdgeSecurityServiceAggregatedList struct { + Etag string `json:"etag,omitempty"` + // Id: [Output Only] Unique identifier for the resource; defined by the server. + Id string `json:"id,omitempty"` + // Items: A list of NetworkEdgeSecurityServicesScopedList resources. + Items map[string]NetworkEdgeSecurityServicesScopedList `json:"items,omitempty"` + // Kind: Output only. [Output Only] Type of resource. + // Alwayscompute#networkEdgeSecurityServiceAggregatedList for lists of + // Network Edge Security Services. + 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 thanmaxResults, 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"` + // SelfLink: Output only. [Output Only] Server-defined URL for this resource. + SelfLink string `json:"selfLink,omitempty"` + // Unreachables: Output only. [Output Only] Unreachable resources. + Unreachables []string `json:"unreachables,omitempty"` + // Warning: [Output Only] Informational warning message. + Warning *NetworkEdgeSecurityServiceAggregatedListWarning `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. "Etag") to unconditionally + // include in API requests. By default, fields with empty or default values are + // omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + ForceSendFields []string `json:"-"` + // NullFields is a list of field names (e.g. "Etag") to include in API requests + // with the JSON null value. By default, fields with empty values are omitted + // from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s NetworkEdgeSecurityServiceAggregatedList) MarshalJSON() ([]byte, error) { + type NoMethod NetworkEdgeSecurityServiceAggregatedList + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +// NetworkEdgeSecurityServiceAggregatedListWarning: [Output Only] Informational +// warning message. +type NetworkEdgeSecurityServiceAggregatedListWarning 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" - Warning about failed cleanup of transient changes made + // by a failed + // operation. + // "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was created. + // "DEPRECATED_TYPE_USED" - When deploying and at least one of the resources + // has a type marked as + // deprecated + // "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk that is + // larger than image size. + // "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the + // resources has a type marked as + // experimental + // "EXTERNAL_API_WARNING" - Warning that is present in an external api call + // "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been + // overridden. + // Deprecated unused field. + // "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an injected + // kernel, which is deprecated. + // "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB" - A WEIGHTED_MAGLEV backend + // service is associated with a health check that is + // not of type HTTP/HTTPS/HTTP2. + // "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a + // exceedingly large number of resources + // "LIST_OVERHEAD_QUOTA_EXCEED" - Resource can't be retrieved due to list + // overhead quota exceed + // which captures the amount of resources filtered out by + // user-defined list filter. + // "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type + // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is not + // assigned to an instance on the + // network. + // "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot ip + // forward. + // "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE" - The route's nextHopInstance + // URL refers to an instance that does not have an + // ipv6 interface on the same network as the route. + // "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL refers to + // an instance that does not exist. + // "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance URL + // refers to an instance that is not on the + // same network as the route. + // "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not have a + // status of RUNNING. + // "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to continue + // the process despite + // the mentioned error. + // "NO_RESULTS_ON_PAGE" - No results are present on a particular list page. + // "PARTIAL_SUCCESS" - Success is reported, but some results may be missing + // due to errors + // "QUOTA_INFO_UNAVAILABLE" - Quota information is not available to client + // requests (e.g: + // regions.list). + // "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource that + // requires a TOS they have not + // accepted. + // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a resource is + // in use. + // "RESOURCE_NOT_DELETED" - One or more of the resources set to auto-delete + // could not be deleted + // because they were in use. + // "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is + // ignored. + // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in instance + // group manager is valid as such, but + // its application does not make a lot of sense, because it allows only + // single instance in instance group. + // "UNDECLARED_PROPERTIES" - When undeclared properties in the schema are + // present + // "UNREACHABLE" - A given scope cannot be reached. + 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 []*NetworkEdgeSecurityServiceAggregatedListWarningData `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 or default values are + // omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + 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. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s NetworkEdgeSecurityServiceAggregatedListWarning) MarshalJSON() ([]byte, error) { + type NoMethod NetworkEdgeSecurityServiceAggregatedListWarning + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +type NetworkEdgeSecurityServiceAggregatedListWarningData 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 or default values are + // omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + 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. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s NetworkEdgeSecurityServiceAggregatedListWarningData) MarshalJSON() ([]byte, error) { + type NoMethod NetworkEdgeSecurityServiceAggregatedListWarningData + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +type NetworkEdgeSecurityServicesScopedList struct { + // NetworkEdgeSecurityServices: A list of NetworkEdgeSecurityServices contained + // in this scope. + NetworkEdgeSecurityServices []*NetworkEdgeSecurityService `json:"networkEdgeSecurityServices,omitempty"` + // Warning: Informational warning which replaces the list of + // security policies when the list is empty. + Warning *NetworkEdgeSecurityServicesScopedListWarning `json:"warning,omitempty"` + // ForceSendFields is a list of field names (e.g. + // "NetworkEdgeSecurityServices") to unconditionally include in API requests. + // By default, fields with empty or default values are omitted from API + // requests. See https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields + // for more details. + ForceSendFields []string `json:"-"` + // NullFields is a list of field names (e.g. "NetworkEdgeSecurityServices") to + // include in API requests with the JSON null value. By default, fields with + // empty values are omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s NetworkEdgeSecurityServicesScopedList) MarshalJSON() ([]byte, error) { + type NoMethod NetworkEdgeSecurityServicesScopedList + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +// NetworkEdgeSecurityServicesScopedListWarning: Informational warning which +// replaces the list of +// security policies when the list is empty. +type NetworkEdgeSecurityServicesScopedListWarning 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" - Warning about failed cleanup of transient changes made + // by a failed + // operation. + // "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was created. + // "DEPRECATED_TYPE_USED" - When deploying and at least one of the resources + // has a type marked as + // deprecated + // "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk that is + // larger than image size. + // "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the + // resources has a type marked as + // experimental + // "EXTERNAL_API_WARNING" - Warning that is present in an external api call + // "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been + // overridden. + // Deprecated unused field. + // "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an injected + // kernel, which is deprecated. + // "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB" - A WEIGHTED_MAGLEV backend + // service is associated with a health check that is + // not of type HTTP/HTTPS/HTTP2. + // "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a + // exceedingly large number of resources + // "LIST_OVERHEAD_QUOTA_EXCEED" - Resource can't be retrieved due to list + // overhead quota exceed + // which captures the amount of resources filtered out by + // user-defined list filter. + // "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type + // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is not + // assigned to an instance on the + // network. + // "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot ip + // forward. + // "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE" - The route's nextHopInstance + // URL refers to an instance that does not have an + // ipv6 interface on the same network as the route. + // "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL refers to + // an instance that does not exist. + // "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance URL + // refers to an instance that is not on the + // same network as the route. + // "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not have a + // status of RUNNING. + // "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to continue + // the process despite + // the mentioned error. + // "NO_RESULTS_ON_PAGE" - No results are present on a particular list page. + // "PARTIAL_SUCCESS" - Success is reported, but some results may be missing + // due to errors + // "QUOTA_INFO_UNAVAILABLE" - Quota information is not available to client + // requests (e.g: + // regions.list). + // "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource that + // requires a TOS they have not + // accepted. + // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a resource is + // in use. + // "RESOURCE_NOT_DELETED" - One or more of the resources set to auto-delete + // could not be deleted + // because they were in use. + // "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is + // ignored. + // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in instance + // group manager is valid as such, but + // its application does not make a lot of sense, because it allows only + // single instance in instance group. + // "UNDECLARED_PROPERTIES" - When undeclared properties in the schema are + // present + // "UNREACHABLE" - A given scope cannot be reached. + 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 []*NetworkEdgeSecurityServicesScopedListWarningData `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 or default values are + // omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + 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. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s NetworkEdgeSecurityServicesScopedListWarning) MarshalJSON() ([]byte, error) { + type NoMethod NetworkEdgeSecurityServicesScopedListWarning + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +type NetworkEdgeSecurityServicesScopedListWarningData 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 or default values are + // omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + 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. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s NetworkEdgeSecurityServicesScopedListWarningData) MarshalJSON() ([]byte, error) { + type NoMethod NetworkEdgeSecurityServicesScopedListWarningData + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +// NetworkEndpoint: The network endpoint. +type NetworkEndpoint struct { + // Annotations: Optional metadata defined as annotations on the network + // endpoint. + Annotations map[string]string `json:"annotations,omitempty"` + // ClientDestinationPort: Represents the port number to which PSC consumer + // sends packets. + // + // Optional. Only valid for network endpoint groups created + // withGCE_VM_IP_PORTMAP endpoint type. + ClientDestinationPort int64 `json:"clientDestinationPort,omitempty"` + // Fqdn: Optional fully qualified domain name of network endpoint. This can + // only be + // specified when NetworkEndpointGroup.network_endpoint_type + // isNON_GCP_FQDN_PORT. + Fqdn string `json:"fqdn,omitempty"` + // Instance: The name or a URL of VM instance of this network + // endpoint. + // Optional, the field presence depends on the network endpoint type. The + // field is required for network endpoints of type GCE_VM_IP + // andGCE_VM_IP_PORT. + // + // The instance must be in the same zone of network endpoint group (for + // zonal + // NEGs) or in the zone within the region of the NEG (for regional NEGs). + // If the ipAddress is specified, it must belongs to the VM + // instance. + // + // The name must be 1-63 characters long, and comply withRFC1035 + // or be a valid URL pointing to an existing instance. + Instance string `json:"instance,omitempty"` + // IpAddress: Optional IPv4 address of network endpoint. The IP address must + // belong to a + // VM in Compute Engine (either the primary IP or as part of an aliased + // IP + // range). If the IP address is not specified, then the primary IP address + // for + // the VM instance in the network that the network endpoint group belongs + // to + // will be used. + // + // This field is redundant and need not be set for network endpoints of + // typeGCE_VM_IP. If set, it must be set to the primary internal IP + // address of the attached VM instance that matches the subnetwork of the + // NEG. + // The primary internal IP address from any NIC of a multi-NIC VM instance + // can + // be added to a NEG as long as it matches the NEG subnetwork. + IpAddress string `json:"ipAddress,omitempty"` + // Ipv6Address: Optional IPv6 address of network endpoint. + Ipv6Address string `json:"ipv6Address,omitempty"` + // Port: Optional port number of network endpoint. If not specified, + // the + // defaultPort for the network endpoint group will be used. + // + // This field can not be set for network endpoints of typeGCE_VM_IP. + Port int64 `json:"port,omitempty"` + // ForceSendFields is a list of field names (e.g. "Annotations") to + // unconditionally include in API requests. By default, fields with empty or + // default values are omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + ForceSendFields []string `json:"-"` + // NullFields is a list of field names (e.g. "Annotations") to include in API + // requests with the JSON null value. By default, fields with empty values are + // omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s NetworkEndpoint) MarshalJSON() ([]byte, error) { + type NoMethod NetworkEndpoint + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +// NetworkEndpointGroup: Represents a collection of network endpoints. +// +// A network endpoint group (NEG) defines how a set of endpoints should +// be +// reached, whether they are reachable, and where they are located. +// For more information about using NEGs for different use cases, seeNetwork +// endpoint groups overview. +// +// Note: Use the following APIs to manage network endpoint groups: +// +// - +// To manage NEGs with zonal scope (such as zonal NEGs, hybrid connectivity +// NEGs): zonal +// API +// - +// To manage NEGs with regional scope (such as regional internet NEGs, +// serverless NEGs, Private Service Connect NEGs): regional +// API +// - +// To manage NEGs with global scope (such as global internet NEGs):global +// API +type NetworkEndpointGroup struct { + // Annotations: Optional. Metadata defined as annotations on the network + // endpoint group. + Annotations map[string]string `json:"annotations,omitempty"` + // AppEngine: Optional. Only valid when networkEndpointType isSERVERLESS. Only + // one of cloudRun,appEngine or cloudFunction may be set. + AppEngine *NetworkEndpointGroupAppEngine `json:"appEngine,omitempty"` + // CloudFunction: Optional. Only valid when networkEndpointType isSERVERLESS. + // Only one of cloudRun,appEngine or cloudFunction may be set. + CloudFunction *NetworkEndpointGroupCloudFunction `json:"cloudFunction,omitempty"` + // CloudRun: Optional. Only valid when networkEndpointType isSERVERLESS. Only + // one of cloudRun,appEngine or cloudFunction may be set. + CloudRun *NetworkEndpointGroupCloudRun `json:"cloudRun,omitempty"` + // CreationTimestamp: Output only. [Output Only] Creation timestamp + // inRFC3339 + // text format. + CreationTimestamp string `json:"creationTimestamp,omitempty"` + // DefaultPort: The default port used if the port number is not specified in + // the network + // endpoint. + // + // Optional. If the network endpoint type is either GCE_VM_IP,SERVERLESS or + // PRIVATE_SERVICE_CONNECT, this + // field must not be specified. + DefaultPort int64 `json:"defaultPort,omitempty"` + // Description: An optional description of this resource. Provide this property + // when you + // create the resource. + Description string `json:"description,omitempty"` + // Id: Output only. [Output Only] The unique identifier for the resource. This + // identifier is + // defined by the server. + Id uint64 `json:"id,omitempty,string"` + // Kind: Output only. [Output Only] Type of the resource. + // Alwayscompute#networkEndpointGroup for network endpoint group. + Kind string `json:"kind,omitempty"` + // Name: Name of the resource; provided by the client when the resource is + // created. + // The name must be 1-63 characters long, and comply withRFC1035. + // 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. + Name string `json:"name,omitempty"` + // Network: The URL of the network to which all network endpoints in the NEG + // belong. + // For networkEndpointType GCE_VM_IP_PORT,GCE_VM_IP_PORTMAP or + // NON_GCP_PRIVATE_IP_PORT, + // if this field is not specified, a default network will be used. + // This field cannot be set for NEGs with networkEndpointType set toSERVERLESS + // or PRIVATE_SERVICE_CONNECT and for + // global NEGs. + // For all other network endpoint types, this field is required. + Network string `json:"network,omitempty"` + // NetworkEndpointType: Type of network endpoints in this network endpoint + // group. Can be one ofGCE_VM_IP, GCE_VM_IP_PORT,NON_GCP_PRIVATE_IP_PORT, + // INTERNET_FQDN_PORT,INTERNET_IP_PORT, SERVERLESS,PRIVATE_SERVICE_CONNECT, + // GCE_VM_IP_PORTMAP. + // + // Possible values: + // "GCE_VM_IP" - The network endpoint is represented by an IP address. + // "GCE_VM_IP_PORT" - The network endpoint is represented by IP address and + // port pair. + // "GCE_VM_IP_PORTMAP" - The network endpoint is represented by an IP, Port + // and Client Destination + // Port. + // "INTERNET_FQDN_PORT" - The network endpoint is represented by fully + // qualified domain name and + // port. + // "INTERNET_IP_PORT" - The network endpoint is represented by an internet IP + // address and port. + // "NON_GCP_PRIVATE_IP_PORT" - The network endpoint is represented by an IP + // address and port. The + // endpoint belongs to a VM or pod running in a customer's on-premises. + // "PRIVATE_SERVICE_CONNECT" - The network endpoint is either public Google + // APIs or + // services exposed by other GCP Project with a Service Attachment. + // The connection is set up by private service connect + // "SERVERLESS" - The network endpoint is handled by specified serverless + // infrastructure. + NetworkEndpointType string `json:"networkEndpointType,omitempty"` + // PscData: Optional. Only valid when networkEndpointType + // isPRIVATE_SERVICE_CONNECT. + PscData *NetworkEndpointGroupPscData `json:"pscData,omitempty"` + // PscTargetService: The target service url used to set up private service + // connection to + // a Google API or a PSC Producer Service Attachment. + // An example value is: asia-northeast3-cloudkms.googleapis.com. + // + // Optional. Only valid when networkEndpointType isPRIVATE_SERVICE_CONNECT. + PscTargetService string `json:"pscTargetService,omitempty"` + // Region: Output only. [Output Only] The URL of theregion + // where the network endpoint group is located. + Region string `json:"region,omitempty"` + // SelfLink: Output only. [Output Only] Server-defined URL for the resource. + SelfLink string `json:"selfLink,omitempty"` + // Size: Output only. [Output only] Number of network endpoints in the network + // endpoint group. + Size int64 `json:"size,omitempty"` + // Subnetwork: Optional URL of the subnetwork to which all network endpoints in + // the NEG + // belong. + Subnetwork string `json:"subnetwork,omitempty"` + // Zone: Output only. [Output Only] The URL of thezone + // where the network endpoint group is located. + Zone string `json:"zone,omitempty"` + + // ServerResponse contains the HTTP response code and headers from the server. + googleapi.ServerResponse `json:"-"` + // ForceSendFields is a list of field names (e.g. "Annotations") to + // unconditionally include in API requests. By default, fields with empty or + // default values are omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + ForceSendFields []string `json:"-"` + // NullFields is a list of field names (e.g. "Annotations") to include in API + // requests with the JSON null value. By default, fields with empty values are + // omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s NetworkEndpointGroup) MarshalJSON() ([]byte, error) { + type NoMethod NetworkEndpointGroup + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +type NetworkEndpointGroupAggregatedList struct { + // Id: [Output Only] Unique identifier for the resource; defined by the server. + Id string `json:"id,omitempty"` + // Items: A list of NetworkEndpointGroupsScopedList resources. + Items map[string]NetworkEndpointGroupsScopedList `json:"items,omitempty"` + // Kind: Output only. [Output Only] The resource type, which is + // alwayscompute#networkEndpointGroupAggregatedList for aggregated + // lists of network endpoint groups. + 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 thanmaxResults, 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"` + // SelfLink: Output only. [Output Only] Server-defined URL for this resource. + SelfLink string `json:"selfLink,omitempty"` + // Unreachables: Output only. [Output Only] Unreachable resources. + Unreachables []string `json:"unreachables,omitempty"` + // Warning: [Output Only] Informational warning message. + Warning *NetworkEndpointGroupAggregatedListWarning `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 or default values are + // omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + 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. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s NetworkEndpointGroupAggregatedList) MarshalJSON() ([]byte, error) { + type NoMethod NetworkEndpointGroupAggregatedList + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +// NetworkEndpointGroupAggregatedListWarning: [Output Only] Informational +// warning message. +type NetworkEndpointGroupAggregatedListWarning 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" - Warning about failed cleanup of transient changes made + // by a failed + // operation. + // "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was created. + // "DEPRECATED_TYPE_USED" - When deploying and at least one of the resources + // has a type marked as + // deprecated + // "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk that is + // larger than image size. + // "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the + // resources has a type marked as + // experimental + // "EXTERNAL_API_WARNING" - Warning that is present in an external api call + // "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been + // overridden. + // Deprecated unused field. + // "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an injected + // kernel, which is deprecated. + // "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB" - A WEIGHTED_MAGLEV backend + // service is associated with a health check that is + // not of type HTTP/HTTPS/HTTP2. + // "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a + // exceedingly large number of resources + // "LIST_OVERHEAD_QUOTA_EXCEED" - Resource can't be retrieved due to list + // overhead quota exceed + // which captures the amount of resources filtered out by + // user-defined list filter. + // "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type + // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is not + // assigned to an instance on the + // network. + // "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot ip + // forward. + // "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE" - The route's nextHopInstance + // URL refers to an instance that does not have an + // ipv6 interface on the same network as the route. + // "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL refers to + // an instance that does not exist. + // "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance URL + // refers to an instance that is not on the + // same network as the route. + // "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not have a + // status of RUNNING. + // "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to continue + // the process despite + // the mentioned error. + // "NO_RESULTS_ON_PAGE" - No results are present on a particular list page. + // "PARTIAL_SUCCESS" - Success is reported, but some results may be missing + // due to errors + // "QUOTA_INFO_UNAVAILABLE" - Quota information is not available to client + // requests (e.g: + // regions.list). + // "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource that + // requires a TOS they have not + // accepted. + // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a resource is + // in use. + // "RESOURCE_NOT_DELETED" - One or more of the resources set to auto-delete + // could not be deleted + // because they were in use. + // "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is + // ignored. + // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in instance + // group manager is valid as such, but + // its application does not make a lot of sense, because it allows only + // single instance in instance group. + // "UNDECLARED_PROPERTIES" - When undeclared properties in the schema are + // present + // "UNREACHABLE" - A given scope cannot be reached. + 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 []*NetworkEndpointGroupAggregatedListWarningData `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 or default values are + // omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + 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. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s NetworkEndpointGroupAggregatedListWarning) MarshalJSON() ([]byte, error) { + type NoMethod NetworkEndpointGroupAggregatedListWarning + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +type NetworkEndpointGroupAggregatedListWarningData 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 or default values are + // omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + 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. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s NetworkEndpointGroupAggregatedListWarningData) MarshalJSON() ([]byte, error) { + type NoMethod NetworkEndpointGroupAggregatedListWarningData + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +// NetworkEndpointGroupAppEngine: Configuration for an App Engine network +// endpoint group (NEG). +// The service is optional, may be provided explicitly or in the +// URL mask. The version is optional and can only be provided +// explicitly or in the URL mask when service is present. +// +// Note: App Engine service must be in the same project and located in the +// same region as the Serverless NEG. +type NetworkEndpointGroupAppEngine struct { + // Service: Optional serving service. + // + // The service name is case-sensitive and must be 1-63 + // characters long. + // + // Example value: default, my-service. + Service string `json:"service,omitempty"` + // UrlMask: An URL + // mask is one of the main components of the Cloud Function. + // + // A template to parse service and version fields + // from a request URL. URL mask allows for routing to multiple App + // Engine + // services without having to create multiple Network Endpoint Groups + // and + // backend services. + // + // For example, the request URLsfoo1-dot-appname.appspot.com/v1 + // andfoo1-dot-appname.appspot.com/v2 can be backed by the same + // Serverless NEG with URL mask-dot-appname.appspot.com/. + // The URL mask will parse them to { service = "foo1", version = "v1" + // } and { service = "foo1", version = "v2" } + // respectively. + UrlMask string `json:"urlMask,omitempty"` + // Version: Optional serving version. + // + // The version name is case-sensitive and must be 1-100 + // characters long. + // + // Example value: v1, v2. + Version string `json:"version,omitempty"` + // ForceSendFields is a list of field names (e.g. "Service") to unconditionally + // include in API requests. By default, fields with empty or default values are + // omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + ForceSendFields []string `json:"-"` + // NullFields is a list of field names (e.g. "Service") to include in API + // requests with the JSON null value. By default, fields with empty values are + // omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s NetworkEndpointGroupAppEngine) MarshalJSON() ([]byte, error) { + type NoMethod NetworkEndpointGroupAppEngine + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +// NetworkEndpointGroupCloudFunction: Configuration for a Cloud Function +// network endpoint group (NEG). +// The function must be provided explicitly or in the URL mask. +// +// Note: Cloud Function must be in the same project and located in the +// same +// region as the Serverless NEG. +type NetworkEndpointGroupCloudFunction struct { + // Function: A user-defined name of the Cloud Function. + // + // The function name is case-sensitive and must be 1-63 + // characters long. + // + // Example value: func1. + Function string `json:"function,omitempty"` + // UrlMask: An URL + // mask is one of the main components of the Cloud Function. + // + // A template to parse function field from a request URL. URL + // mask allows for routing to multiple Cloud Functions without having to + // create multiple Network Endpoint Groups and backend services. + // + // For example, request URLs mydomain.com/function1 andmydomain.com/function2 + // can be backed by the same + // Serverless NEG with URL mask /. The URL + // mask will parse them to { function = "function1" } and{ function = + // "function2" } respectively. + UrlMask string `json:"urlMask,omitempty"` + // ForceSendFields is a list of field names (e.g. "Function") to + // unconditionally include in API requests. By default, fields with empty or + // default values are omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + ForceSendFields []string `json:"-"` + // NullFields is a list of field names (e.g. "Function") to include in API + // requests with the JSON null value. By default, fields with empty values are + // omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s NetworkEndpointGroupCloudFunction) MarshalJSON() ([]byte, error) { + type NoMethod NetworkEndpointGroupCloudFunction + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +// NetworkEndpointGroupCloudRun: Configuration for a Cloud Run network endpoint +// group (NEG). +// The service must be provided explicitly or in the URL mask. +// The tag is optional, may be provided explicitly or in the URL +// mask. +// +// Note: Cloud Run service must be in the same project and located in the +// same +// region as the Serverless NEG. +type NetworkEndpointGroupCloudRun struct { + // Service: Cloud Run service is the main resource of Cloud Run. + // + // The service must be 1-63 characters long, and comply withRFC1035. + // + // Example value: "run-service". + Service string `json:"service,omitempty"` + // Tag: Optional Cloud Run tag represents the "named-revision" to provide + // additional + // fine-grained traffic routing information. + // + // The tag must be 1-63 characters long, and comply withRFC1035. + // + // Example value: "revision-0010". + Tag string `json:"tag,omitempty"` + // UrlMask: An URL + // mask is one of the main components of the Cloud Function. + // + // A template to parse and fields from a request URL. URL mask + // allows for + // routing to multiple Run services without having to create multiple + // network endpoint groups and backend services. + // + // For example, request URLs foo1.domain.com/bar1 andfoo1.domain.com/bar2 can + // be backed by the same Serverless + // Network Endpoint Group (NEG) with URL mask.domain.com/. The + // URL mask will + // parse them to { service="bar1", tag="foo1" } and { + // service="bar2", tag="foo2" } respectively. + UrlMask string `json:"urlMask,omitempty"` + // ForceSendFields is a list of field names (e.g. "Service") to unconditionally + // include in API requests. By default, fields with empty or default values are + // omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + ForceSendFields []string `json:"-"` + // NullFields is a list of field names (e.g. "Service") to include in API + // requests with the JSON null value. By default, fields with empty values are + // omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s NetworkEndpointGroupCloudRun) MarshalJSON() ([]byte, error) { + type NoMethod NetworkEndpointGroupCloudRun + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +type NetworkEndpointGroupList struct { + // Id: [Output Only] Unique identifier for the resource; defined by the server. + Id string `json:"id,omitempty"` + // Items: A list of NetworkEndpointGroup resources. + Items []*NetworkEndpointGroup `json:"items,omitempty"` + // Kind: Output only. [Output Only] The resource type, which is + // alwayscompute#networkEndpointGroupList for network endpoint group + // lists. + 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 thanmaxResults, 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"` + // SelfLink: Output only. [Output Only] Server-defined URL for this resource. + SelfLink string `json:"selfLink,omitempty"` + // Warning: [Output Only] Informational warning message. + Warning *NetworkEndpointGroupListWarning `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 or default values are + // omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + 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. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s NetworkEndpointGroupList) MarshalJSON() ([]byte, error) { + type NoMethod NetworkEndpointGroupList + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +// NetworkEndpointGroupListWarning: [Output Only] Informational warning +// message. +type NetworkEndpointGroupListWarning 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" - Warning about failed cleanup of transient changes made + // by a failed + // operation. + // "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was created. + // "DEPRECATED_TYPE_USED" - When deploying and at least one of the resources + // has a type marked as + // deprecated + // "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk that is + // larger than image size. + // "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the + // resources has a type marked as + // experimental + // "EXTERNAL_API_WARNING" - Warning that is present in an external api call + // "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been + // overridden. + // Deprecated unused field. + // "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an injected + // kernel, which is deprecated. + // "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB" - A WEIGHTED_MAGLEV backend + // service is associated with a health check that is + // not of type HTTP/HTTPS/HTTP2. + // "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a + // exceedingly large number of resources + // "LIST_OVERHEAD_QUOTA_EXCEED" - Resource can't be retrieved due to list + // overhead quota exceed + // which captures the amount of resources filtered out by + // user-defined list filter. + // "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type + // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is not + // assigned to an instance on the + // network. + // "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot ip + // forward. + // "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE" - The route's nextHopInstance + // URL refers to an instance that does not have an + // ipv6 interface on the same network as the route. + // "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL refers to + // an instance that does not exist. + // "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance URL + // refers to an instance that is not on the + // same network as the route. + // "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not have a + // status of RUNNING. + // "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to continue + // the process despite + // the mentioned error. + // "NO_RESULTS_ON_PAGE" - No results are present on a particular list page. + // "PARTIAL_SUCCESS" - Success is reported, but some results may be missing + // due to errors + // "QUOTA_INFO_UNAVAILABLE" - Quota information is not available to client + // requests (e.g: + // regions.list). + // "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource that + // requires a TOS they have not + // accepted. + // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a resource is + // in use. + // "RESOURCE_NOT_DELETED" - One or more of the resources set to auto-delete + // could not be deleted + // because they were in use. + // "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is + // ignored. + // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in instance + // group manager is valid as such, but + // its application does not make a lot of sense, because it allows only + // single instance in instance group. + // "UNDECLARED_PROPERTIES" - When undeclared properties in the schema are + // present + // "UNREACHABLE" - A given scope cannot be reached. + 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 []*NetworkEndpointGroupListWarningData `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 or default values are + // omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + 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. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s NetworkEndpointGroupListWarning) MarshalJSON() ([]byte, error) { + type NoMethod NetworkEndpointGroupListWarning + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +type NetworkEndpointGroupListWarningData 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 or default values are + // omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + 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. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s NetworkEndpointGroupListWarningData) MarshalJSON() ([]byte, error) { + type NoMethod NetworkEndpointGroupListWarningData + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +// NetworkEndpointGroupPscData: All data that is specifically relevant to only +// network endpoint groups of +// type PRIVATE_SERVICE_CONNECT. +type NetworkEndpointGroupPscData struct { + // ConsumerPscAddress: Output only. [Output Only] Address allocated from given + // subnetwork for PSC. This IP + // address acts as a VIP for a PSC NEG, allowing it to act as an endpoint in + // L7 PSC-XLB. + ConsumerPscAddress string `json:"consumerPscAddress,omitempty"` + // ProducerPort: The psc producer port is used to connect PSC NEG with specific + // port on + // the PSC Producer side; should only be used for the + // PRIVATE_SERVICE_CONNECT NEG type + ProducerPort int64 `json:"producerPort,omitempty"` + // PscConnectionId: Output only. [Output Only] The PSC connection id of the PSC + // Network Endpoint Group + // Consumer. + PscConnectionId uint64 `json:"pscConnectionId,omitempty,string"` + // PscConnectionStatus: Output only. [Output Only] The connection status of the + // PSC Forwarding Rule. + // + // Possible values: + // "ACCEPTED" - The connection has been accepted by the producer. + // "CLOSED" - The connection has been closed by the producer and will not + // serve + // traffic going forward. + // "NEEDS_ATTENTION" - The connection has been accepted by the producer, but + // the producer + // needs to take further action before the forwarding rule can serve + // traffic. + // "PENDING" - The connection is pending acceptance by the producer. + // "REJECTED" - The connection has been rejected by the producer. + // "STATUS_UNSPECIFIED" + PscConnectionStatus string `json:"pscConnectionStatus,omitempty"` + // ForceSendFields is a list of field names (e.g. "ConsumerPscAddress") to + // unconditionally include in API requests. By default, fields with empty or + // default values are omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + ForceSendFields []string `json:"-"` + // NullFields is a list of field names (e.g. "ConsumerPscAddress") to include + // in API requests with the JSON null value. By default, fields with empty + // values are omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s NetworkEndpointGroupPscData) MarshalJSON() ([]byte, error) { + type NoMethod NetworkEndpointGroupPscData + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +type NetworkEndpointGroupsAttachEndpointsRequest struct { + // NetworkEndpoints: The list of network endpoints to be attached. + NetworkEndpoints []*NetworkEndpoint `json:"networkEndpoints,omitempty"` + // ForceSendFields is a list of field names (e.g. "NetworkEndpoints") to + // unconditionally include in API requests. By default, fields with empty or + // default values are omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + ForceSendFields []string `json:"-"` + // NullFields is a list of field names (e.g. "NetworkEndpoints") to include in + // API requests with the JSON null value. By default, fields with empty values + // are omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s NetworkEndpointGroupsAttachEndpointsRequest) MarshalJSON() ([]byte, error) { + type NoMethod NetworkEndpointGroupsAttachEndpointsRequest + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +type NetworkEndpointGroupsDetachEndpointsRequest struct { + // NetworkEndpoints: The list of network endpoints to be detached. + NetworkEndpoints []*NetworkEndpoint `json:"networkEndpoints,omitempty"` + // ForceSendFields is a list of field names (e.g. "NetworkEndpoints") to + // unconditionally include in API requests. By default, fields with empty or + // default values are omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + ForceSendFields []string `json:"-"` + // NullFields is a list of field names (e.g. "NetworkEndpoints") to include in + // API requests with the JSON null value. By default, fields with empty values + // are omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s NetworkEndpointGroupsDetachEndpointsRequest) MarshalJSON() ([]byte, error) { + type NoMethod NetworkEndpointGroupsDetachEndpointsRequest + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +type NetworkEndpointGroupsListEndpointsRequest struct { + // HealthStatus: Optional query parameter for showing the health status of each + // network + // endpoint. Valid options are SKIP or SHOW. If you + // don't specify this parameter, the health status of network endpoints + // will + // not be provided. + // + // Possible values: + // "SHOW" - Show the health status for each network endpoint. Impacts latency + // of the + // call. + // "SKIP" - Health status for network endpoints will not be provided. + HealthStatus string `json:"healthStatus,omitempty"` + // ForceSendFields is a list of field names (e.g. "HealthStatus") to + // unconditionally include in API requests. By default, fields with empty or + // default values are omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + ForceSendFields []string `json:"-"` + // NullFields is a list of field names (e.g. "HealthStatus") to include in API + // requests with the JSON null value. By default, fields with empty values are + // omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s NetworkEndpointGroupsListEndpointsRequest) MarshalJSON() ([]byte, error) { + type NoMethod NetworkEndpointGroupsListEndpointsRequest + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +type NetworkEndpointGroupsListNetworkEndpoints struct { + // Id: [Output Only] Unique identifier for the resource; defined by the server. + Id string `json:"id,omitempty"` + // Items: A list of NetworkEndpointWithHealthStatus resources. + Items []*NetworkEndpointWithHealthStatus `json:"items,omitempty"` + // Kind: Output only. [Output Only] The resource type, which is + // alwayscompute#networkEndpointGroupsListNetworkEndpoints for the list + // of network endpoints in the specified network endpoint group. + 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 thanmaxResults, 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"` + // Warning: [Output Only] Informational warning message. + Warning *NetworkEndpointGroupsListNetworkEndpointsWarning `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 or default values are + // omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + 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. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s NetworkEndpointGroupsListNetworkEndpoints) MarshalJSON() ([]byte, error) { + type NoMethod NetworkEndpointGroupsListNetworkEndpoints + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +// NetworkEndpointGroupsListNetworkEndpointsWarning: [Output Only] +// Informational warning message. +type NetworkEndpointGroupsListNetworkEndpointsWarning 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" - Warning about failed cleanup of transient changes made + // by a failed + // operation. + // "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was created. + // "DEPRECATED_TYPE_USED" - When deploying and at least one of the resources + // has a type marked as + // deprecated + // "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk that is + // larger than image size. + // "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the + // resources has a type marked as + // experimental + // "EXTERNAL_API_WARNING" - Warning that is present in an external api call + // "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been + // overridden. + // Deprecated unused field. + // "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an injected + // kernel, which is deprecated. + // "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB" - A WEIGHTED_MAGLEV backend + // service is associated with a health check that is + // not of type HTTP/HTTPS/HTTP2. + // "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a + // exceedingly large number of resources + // "LIST_OVERHEAD_QUOTA_EXCEED" - Resource can't be retrieved due to list + // overhead quota exceed + // which captures the amount of resources filtered out by + // user-defined list filter. + // "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type + // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is not + // assigned to an instance on the + // network. + // "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot ip + // forward. + // "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE" - The route's nextHopInstance + // URL refers to an instance that does not have an + // ipv6 interface on the same network as the route. + // "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL refers to + // an instance that does not exist. + // "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance URL + // refers to an instance that is not on the + // same network as the route. + // "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not have a + // status of RUNNING. + // "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to continue + // the process despite + // the mentioned error. + // "NO_RESULTS_ON_PAGE" - No results are present on a particular list page. + // "PARTIAL_SUCCESS" - Success is reported, but some results may be missing + // due to errors + // "QUOTA_INFO_UNAVAILABLE" - Quota information is not available to client + // requests (e.g: + // regions.list). + // "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource that + // requires a TOS they have not + // accepted. + // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a resource is + // in use. + // "RESOURCE_NOT_DELETED" - One or more of the resources set to auto-delete + // could not be deleted + // because they were in use. + // "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is + // ignored. + // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in instance + // group manager is valid as such, but + // its application does not make a lot of sense, because it allows only + // single instance in instance group. + // "UNDECLARED_PROPERTIES" - When undeclared properties in the schema are + // present + // "UNREACHABLE" - A given scope cannot be reached. + 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 []*NetworkEndpointGroupsListNetworkEndpointsWarningData `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 or default values are + // omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + 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. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s NetworkEndpointGroupsListNetworkEndpointsWarning) MarshalJSON() ([]byte, error) { + type NoMethod NetworkEndpointGroupsListNetworkEndpointsWarning + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +type NetworkEndpointGroupsListNetworkEndpointsWarningData 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 or default values are + // omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + 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. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s NetworkEndpointGroupsListNetworkEndpointsWarningData) MarshalJSON() ([]byte, error) { + type NoMethod NetworkEndpointGroupsListNetworkEndpointsWarningData + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +type NetworkEndpointGroupsScopedList struct { + // NetworkEndpointGroups: Output only. [Output Only] The list + // ofnetwork + // endpoint groups that are contained in this scope. + NetworkEndpointGroups []*NetworkEndpointGroup `json:"networkEndpointGroups,omitempty"` + // Warning: Output only. [Output Only] An informational warning that replaces + // the list of network + // endpoint groups when the list is empty. + Warning *NetworkEndpointGroupsScopedListWarning `json:"warning,omitempty"` + // ForceSendFields is a list of field names (e.g. "NetworkEndpointGroups") to + // unconditionally include in API requests. By default, fields with empty or + // default values are omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + ForceSendFields []string `json:"-"` + // NullFields is a list of field names (e.g. "NetworkEndpointGroups") to + // include in API requests with the JSON null value. By default, fields with + // empty values are omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s NetworkEndpointGroupsScopedList) MarshalJSON() ([]byte, error) { + type NoMethod NetworkEndpointGroupsScopedList + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +// NetworkEndpointGroupsScopedListWarning: Output only. [Output Only] An +// informational warning that replaces the list of network +// endpoint groups when the list is empty. +type NetworkEndpointGroupsScopedListWarning 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" - Warning about failed cleanup of transient changes made + // by a failed + // operation. + // "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was created. + // "DEPRECATED_TYPE_USED" - When deploying and at least one of the resources + // has a type marked as + // deprecated + // "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk that is + // larger than image size. + // "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the + // resources has a type marked as + // experimental + // "EXTERNAL_API_WARNING" - Warning that is present in an external api call + // "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been + // overridden. + // Deprecated unused field. + // "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an injected + // kernel, which is deprecated. + // "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB" - A WEIGHTED_MAGLEV backend + // service is associated with a health check that is + // not of type HTTP/HTTPS/HTTP2. + // "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a + // exceedingly large number of resources + // "LIST_OVERHEAD_QUOTA_EXCEED" - Resource can't be retrieved due to list + // overhead quota exceed + // which captures the amount of resources filtered out by + // user-defined list filter. + // "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type + // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is not + // assigned to an instance on the + // network. + // "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot ip + // forward. + // "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE" - The route's nextHopInstance + // URL refers to an instance that does not have an + // ipv6 interface on the same network as the route. + // "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL refers to + // an instance that does not exist. + // "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance URL + // refers to an instance that is not on the + // same network as the route. + // "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not have a + // status of RUNNING. + // "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to continue + // the process despite + // the mentioned error. + // "NO_RESULTS_ON_PAGE" - No results are present on a particular list page. + // "PARTIAL_SUCCESS" - Success is reported, but some results may be missing + // due to errors + // "QUOTA_INFO_UNAVAILABLE" - Quota information is not available to client + // requests (e.g: + // regions.list). + // "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource that + // requires a TOS they have not + // accepted. + // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a resource is + // in use. + // "RESOURCE_NOT_DELETED" - One or more of the resources set to auto-delete + // could not be deleted + // because they were in use. + // "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is + // ignored. + // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in instance + // group manager is valid as such, but + // its application does not make a lot of sense, because it allows only + // single instance in instance group. + // "UNDECLARED_PROPERTIES" - When undeclared properties in the schema are + // present + // "UNREACHABLE" - A given scope cannot be reached. + 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 []*NetworkEndpointGroupsScopedListWarningData `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 or default values are + // omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + 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. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s NetworkEndpointGroupsScopedListWarning) MarshalJSON() ([]byte, error) { + type NoMethod NetworkEndpointGroupsScopedListWarning + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +type NetworkEndpointGroupsScopedListWarningData 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 or default values are + // omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + 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. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s NetworkEndpointGroupsScopedListWarningData) MarshalJSON() ([]byte, error) { + type NoMethod NetworkEndpointGroupsScopedListWarningData + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +type NetworkEndpointWithHealthStatus struct { + // Healths: Output only. [Output only] The health status of network + // endpoint. + // + // Optional. Displayed only if the network endpoint has centralized + // health + // checking configured. + Healths []*HealthStatusForNetworkEndpoint `json:"healths,omitempty"` + // NetworkEndpoint: Output only. [Output only] The network endpoint. + NetworkEndpoint *NetworkEndpoint `json:"networkEndpoint,omitempty"` + // ForceSendFields is a list of field names (e.g. "Healths") to unconditionally + // include in API requests. By default, fields with empty or default values are + // omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + ForceSendFields []string `json:"-"` + // NullFields is a list of field names (e.g. "Healths") to include in API + // requests with the JSON null value. By default, fields with empty values are + // omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s NetworkEndpointWithHealthStatus) MarshalJSON() ([]byte, error) { + type NoMethod NetworkEndpointWithHealthStatus + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +type NetworkFirewallPolicyAggregatedList struct { + // Id: [Output Only] Unique identifier for the resource; defined by the server. + Id string `json:"id,omitempty"` + // Items: A list of FirewallPoliciesScopedList resources. + Items map[string]FirewallPoliciesScopedList `json:"items,omitempty"` + // Kind: Output only. [Output Only] Type of resource. + // Alwayscompute#networkFirewallPoliciesAggregatedList for lists of + // network firewall policies. + 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 thanmaxResults, 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"` + // SelfLink: Output only. [Output Only] Server-defined URL for this resource. + SelfLink string `json:"selfLink,omitempty"` + // Unreachables: Output only. [Output Only] Unreachable resources. + Unreachables []string `json:"unreachables,omitempty"` + // Warning: [Output Only] Informational warning message. + Warning *NetworkFirewallPolicyAggregatedListWarning `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 or default values are + // omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + 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. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s NetworkFirewallPolicyAggregatedList) MarshalJSON() ([]byte, error) { + type NoMethod NetworkFirewallPolicyAggregatedList + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +// NetworkFirewallPolicyAggregatedListWarning: [Output Only] Informational +// warning message. +type NetworkFirewallPolicyAggregatedListWarning 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" - Warning about failed cleanup of transient changes made + // by a failed + // operation. + // "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was created. + // "DEPRECATED_TYPE_USED" - When deploying and at least one of the resources + // has a type marked as + // deprecated + // "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk that is + // larger than image size. + // "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the + // resources has a type marked as + // experimental + // "EXTERNAL_API_WARNING" - Warning that is present in an external api call + // "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been + // overridden. + // Deprecated unused field. + // "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an injected + // kernel, which is deprecated. + // "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB" - A WEIGHTED_MAGLEV backend + // service is associated with a health check that is + // not of type HTTP/HTTPS/HTTP2. + // "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a + // exceedingly large number of resources + // "LIST_OVERHEAD_QUOTA_EXCEED" - Resource can't be retrieved due to list + // overhead quota exceed + // which captures the amount of resources filtered out by + // user-defined list filter. + // "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type + // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is not + // assigned to an instance on the + // network. + // "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot ip + // forward. + // "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE" - The route's nextHopInstance + // URL refers to an instance that does not have an + // ipv6 interface on the same network as the route. + // "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL refers to + // an instance that does not exist. + // "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance URL + // refers to an instance that is not on the + // same network as the route. + // "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not have a + // status of RUNNING. + // "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to continue + // the process despite + // the mentioned error. + // "NO_RESULTS_ON_PAGE" - No results are present on a particular list page. + // "PARTIAL_SUCCESS" - Success is reported, but some results may be missing + // due to errors + // "QUOTA_INFO_UNAVAILABLE" - Quota information is not available to client + // requests (e.g: + // regions.list). + // "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource that + // requires a TOS they have not + // accepted. + // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a resource is + // in use. + // "RESOURCE_NOT_DELETED" - One or more of the resources set to auto-delete + // could not be deleted + // because they were in use. + // "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is + // ignored. + // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in instance + // group manager is valid as such, but + // its application does not make a lot of sense, because it allows only + // single instance in instance group. + // "UNDECLARED_PROPERTIES" - When undeclared properties in the schema are + // present + // "UNREACHABLE" - A given scope cannot be reached. + 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 []*NetworkFirewallPolicyAggregatedListWarningData `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 or default values are + // omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + 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. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s NetworkFirewallPolicyAggregatedListWarning) MarshalJSON() ([]byte, error) { + type NoMethod NetworkFirewallPolicyAggregatedListWarning + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +type NetworkFirewallPolicyAggregatedListWarningData 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 or default values are + // omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + 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. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s NetworkFirewallPolicyAggregatedListWarningData) MarshalJSON() ([]byte, error) { + type NoMethod NetworkFirewallPolicyAggregatedListWarningData + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +// NetworkInterface: A network interface resource attached to an instance. +type NetworkInterface struct { + // AccessConfigs: An array of configurations for this interface. Currently, + // only one access + // config, ONE_TO_ONE_NAT, is supported. If there are noaccessConfigs + // specified, then this instance will have + // no external internet access. + AccessConfigs []*AccessConfig `json:"accessConfigs,omitempty"` + // AliasIpRanges: An array of alias IP ranges for this network interface. + // You can only specify this field for network interfaces in VPC networks. + AliasIpRanges []*AliasIpRange `json:"aliasIpRanges,omitempty"` + // AliasIpv6Ranges: An array of alias IPv6 ranges for this network + // interface. + // You can only specify this field for network interfaces in VPC networks. + AliasIpv6Ranges []*AliasIpRange `json:"aliasIpv6Ranges,omitempty"` + // EnableVpcScopedDns: Optional. If true, DNS resolution will be enabled over + // this interface. Only valid + // with network_attachment. + EnableVpcScopedDns bool `json:"enableVpcScopedDns,omitempty"` + // Fingerprint: Fingerprint hash of contents stored in this network + // interface. + // This field will be ignored when inserting an Instance or + // adding a NetworkInterface. An up-to-date + // fingerprint must be provided in order to update theNetworkInterface. The + // request will fail with error400 Bad Request if the fingerprint is not + // provided, or412 Precondition Failed if the fingerprint is out of date. + Fingerprint string `json:"fingerprint,omitempty"` + // IgmpQuery: Indicate whether igmp query is enabled on the network + // interface + // or not. If enabled, also indicates the version of IGMP supported. + // + // Possible values: + // "IGMP_QUERY_DISABLED" - The network interface has disabled IGMP query. + // "IGMP_QUERY_V2" - The network interface has enabled IGMP query - v2. + IgmpQuery string `json:"igmpQuery,omitempty"` + // InternalIpv6PrefixLength: The prefix length of the primary internal IPv6 + // range. + InternalIpv6PrefixLength int64 `json:"internalIpv6PrefixLength,omitempty"` + // Ipv6AccessConfigs: An array of IPv6 access configurations for this + // interface. Currently, only + // one IPv6 access config, DIRECT_IPV6, is supported. If there + // is no ipv6AccessConfig specified, then this instance will + // have no external IPv6 Internet access. + Ipv6AccessConfigs []*AccessConfig `json:"ipv6AccessConfigs,omitempty"` + // Ipv6AccessType: Output only. [Output Only] One of EXTERNAL, INTERNAL to + // indicate whether the IP can be + // accessed from the Internet. This field is always inherited from + // its + // subnetwork. + // + // Valid only if stackType is IPV4_IPV6. + // + // Possible values: + // "EXTERNAL" - This network interface can have external IPv6. + // "INTERNAL" - This network interface can have internal IPv6. + Ipv6AccessType string `json:"ipv6AccessType,omitempty"` + // Ipv6Address: An IPv6 internal network address for this network interface. + // To + // use a static internal IP address, it must be unused and in the same + // region + // as the instance's zone. If not specified, Google Cloud will + // automatically + // assign an internal IPv6 address from the instance's subnetwork. + Ipv6Address string `json:"ipv6Address,omitempty"` + // Kind: Output only. [Output Only] Type of the resource. + // Alwayscompute#networkInterface for network interfaces. + Kind string `json:"kind,omitempty"` + // Name: [Output Only] The name of the network interface, which is generated by + // the + // server. For a VM, the network interface uses the nicN naming + // format. Where N is a value between 0 and7. The default interface value is + // nic0. + Name string `json:"name,omitempty"` + // Network: URL of the VPC network resource for this instance. When creating + // an + // instance, if neither the network nor the subnetwork is specified, + // the + // default network global/networks/default is used. If the + // selected project doesn't have the default network, you must specify + // a + // network or subnet. If the network is not specified but the subnetwork + // is + // specified, the network is inferred. + // + // If you specify this property, you can specify the network as + // a full or partial URL. For example, the following are all valid URLs: + // + // + // - + // https://www.googleapis.com/compute/v1/projects/project/global/networks/network + // - projects/project/global/networks/network + // - global/networks/default + Network string `json:"network,omitempty"` + // NetworkAttachment: The URL of the network attachment that this interface + // should connect + // to in the following + // format: + // projects/{project_number}/regions/{region_name}/networkAttachments/{network_a + // ttachment_name}. + NetworkAttachment string `json:"networkAttachment,omitempty"` + // NetworkIP: An IPv4 internal IP address to assign to the instance for this + // network + // interface. If not specified by the user, an unused internal IP is + // assigned by the system. + NetworkIP string `json:"networkIP,omitempty"` + // NicType: The type of vNIC to be used on this interface. This may be gVNIC + // or + // VirtioNet. + // + // Possible values: + // "GVNIC" - GVNIC + // "IDPF" - IDPF + // "IRDMA" - IRDMA + // "MRDMA" - MRDMA + // "UNSPECIFIED_NIC_TYPE" - No type specified. + // "VIRTIO_NET" - VIRTIO + NicType string `json:"nicType,omitempty"` + // ParentNicName: Name of the parent network interface of a dynamic network + // interface. + ParentNicName string `json:"parentNicName,omitempty"` + // QueueCount: The networking queue count that's specified by users for the + // network + // interface. Both Rx and Tx queues will be set to this number. It'll be + // empty + // if not specified by the users. + QueueCount int64 `json:"queueCount,omitempty"` + // ServiceClassId: Optional. Producer Service's Service class Id for the region + // of this network + // interface. Can only be used with network_attachment. It is not possible + // to + // use on its own however, network_attachment can be used + // without + // service_class_id. + ServiceClassId string `json:"serviceClassId,omitempty"` + // StackType: The stack type for this network interface. To assign only IPv4 + // addresses, + // use IPV4_ONLY. To assign both IPv4 and IPv6 addresses, useIPV4_IPV6. If not + // specified, IPV4_ONLY is used. + // + // This field can be both set at instance creation and update network + // interface operations. + // + // Possible values: + // "IPV4_IPV6" - The network interface can have both IPv4 and IPv6 addresses. + // "IPV4_ONLY" - The network interface will only be assigned IPv4 addresses. + // "IPV6_ONLY" - The network interface will only be assigned IPv6 addresses. + StackType string `json:"stackType,omitempty"` + // Subnetwork: The URL of the Subnetwork resource for this instance. If the + // network + // resource is inlegacy + // mode, do not specify this field. If the network is in auto subnet + // mode, specifying the subnetwork is optional. If the network is in + // custom + // subnet mode, specifying the subnetwork is required. If you specify + // this + // field, you can specify the subnetwork as a full or partial URL. For + // example, the following are all valid URLs: + // + // + // - + // https://www.googleapis.com/compute/v1/projects/project/regions/region/subnetworks/subnetwork + // + // - regions/region/subnetworks/subnetwork + Subnetwork string `json:"subnetwork,omitempty"` + // Vlan: VLAN tag of a dynamic network interface, must be an integer in the + // range + // from 2 to 255 inclusively. + Vlan int64 `json:"vlan,omitempty"` + // ForceSendFields is a list of field names (e.g. "AccessConfigs") to + // unconditionally include in API requests. By default, fields with empty or + // default values are omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + ForceSendFields []string `json:"-"` + // NullFields is a list of field names (e.g. "AccessConfigs") to include in API + // requests with the JSON null value. By default, fields with empty values are + // omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s NetworkInterface) MarshalJSON() ([]byte, error) { + type NoMethod NetworkInterface + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +// NetworkList: Contains a list of networks. +type NetworkList struct { + // Id: [Output Only] Unique identifier for the resource; defined by the server. + Id string `json:"id,omitempty"` + // Items: A list of Network resources. + Items []*Network `json:"items,omitempty"` + // Kind: Output only. [Output Only] Type of resource. Always + // compute#networkList for + // lists of networks. + 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 thanmaxResults, 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"` + // SelfLink: Output only. [Output Only] Server-defined URL for this resource. + SelfLink string `json:"selfLink,omitempty"` + // Warning: [Output Only] Informational warning message. + Warning *NetworkListWarning `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 or default values are + // omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + 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. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s NetworkList) MarshalJSON() ([]byte, error) { + type NoMethod NetworkList + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +// NetworkListWarning: [Output Only] Informational warning message. +type NetworkListWarning 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" - Warning about failed cleanup of transient changes made + // by a failed + // operation. + // "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was created. + // "DEPRECATED_TYPE_USED" - When deploying and at least one of the resources + // has a type marked as + // deprecated + // "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk that is + // larger than image size. + // "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the + // resources has a type marked as + // experimental + // "EXTERNAL_API_WARNING" - Warning that is present in an external api call + // "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been + // overridden. + // Deprecated unused field. + // "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an injected + // kernel, which is deprecated. + // "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB" - A WEIGHTED_MAGLEV backend + // service is associated with a health check that is + // not of type HTTP/HTTPS/HTTP2. + // "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a + // exceedingly large number of resources + // "LIST_OVERHEAD_QUOTA_EXCEED" - Resource can't be retrieved due to list + // overhead quota exceed + // which captures the amount of resources filtered out by + // user-defined list filter. + // "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type + // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is not + // assigned to an instance on the + // network. + // "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot ip + // forward. + // "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE" - The route's nextHopInstance + // URL refers to an instance that does not have an + // ipv6 interface on the same network as the route. + // "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL refers to + // an instance that does not exist. + // "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance URL + // refers to an instance that is not on the + // same network as the route. + // "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not have a + // status of RUNNING. + // "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to continue + // the process despite + // the mentioned error. + // "NO_RESULTS_ON_PAGE" - No results are present on a particular list page. + // "PARTIAL_SUCCESS" - Success is reported, but some results may be missing + // due to errors + // "QUOTA_INFO_UNAVAILABLE" - Quota information is not available to client + // requests (e.g: + // regions.list). + // "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource that + // requires a TOS they have not + // accepted. + // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a resource is + // in use. + // "RESOURCE_NOT_DELETED" - One or more of the resources set to auto-delete + // could not be deleted + // because they were in use. + // "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is + // ignored. + // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in instance + // group manager is valid as such, but + // its application does not make a lot of sense, because it allows only + // single instance in instance group. + // "UNDECLARED_PROPERTIES" - When undeclared properties in the schema are + // present + // "UNREACHABLE" - A given scope cannot be reached. + 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 []*NetworkListWarningData `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 or default values are + // omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + 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. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s NetworkListWarning) MarshalJSON() ([]byte, error) { + type NoMethod NetworkListWarning + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +type NetworkListWarningData 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 or default values are + // omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + 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. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s NetworkListWarningData) MarshalJSON() ([]byte, error) { + type NoMethod NetworkListWarningData + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +// NetworkParams: Additional network parameters. +type NetworkParams struct { + // ResourceManagerTags: Tag keys/values directly bound to this resource. + // Tag keys and values have the same definition as resource + // manager tags. The field is allowed for INSERT + // only. The keys/values to set on the resource should be specified in + // either ID { : } or Namespaced format + // { : }. + // For example the following are valid inputs: + // * {"tagKeys/333" : "tagValues/444", "tagKeys/123" : "tagValues/456"} + // * {"123/environment" : "production", "345/abc" : "xyz"} + // Note: + // * Invalid combinations of ID & namespaced format is not supported. For + // instance: {"123/environment" : "tagValues/444"} is invalid. + ResourceManagerTags map[string]string `json:"resourceManagerTags,omitempty"` + // ForceSendFields is a list of field names (e.g. "ResourceManagerTags") to + // unconditionally include in API requests. By default, fields with empty or + // default values are omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + ForceSendFields []string `json:"-"` + // NullFields is a list of field names (e.g. "ResourceManagerTags") to include + // in API requests with the JSON null value. By default, fields with empty + // values are omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s NetworkParams) MarshalJSON() ([]byte, error) { + type NoMethod NetworkParams + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +// NetworkPeering: A network peering attached to a network resource. The +// message includes the +// peering name, peer network, peering state, and a flag indicating +// whether +// Google Compute Engine should automatically create routes for the peering. +type NetworkPeering struct { + // AutoCreateRoutes: This field will be deprecated soon. Use + // theexchange_subnet_routes field instead. + // Indicates whether full mesh connectivity is created and + // managed + // automatically between peered networks. Currently this field should always + // be true since Google Compute Engine will automatically create and + // manage + // subnetwork routes between two networks when peering state isACTIVE. + AutoCreateRoutes bool `json:"autoCreateRoutes,omitempty"` + // ConnectionStatus: Output only. [Output Only] The effective state of the + // peering connection + // as a whole. + ConnectionStatus *NetworkPeeringConnectionStatus `json:"connectionStatus,omitempty"` + // ExchangeSubnetRoutes: Indicates whether full mesh connectivity is created + // and managed + // automatically between peered networks. Currently this field should always + // be true since Google Compute Engine will automatically create and + // manage + // subnetwork routes between two networks when peering state isACTIVE. + ExchangeSubnetRoutes bool `json:"exchangeSubnetRoutes,omitempty"` + // ExportCustomRoutes: Whether to export the custom routes to peer network. The + // default value is + // false. + ExportCustomRoutes bool `json:"exportCustomRoutes,omitempty"` + // ExportSubnetRoutesWithPublicIp: Whether subnet routes with public IP range + // are exported. The default value + // is true, all subnet routes are exported.IPv4 + // special-use ranges are always + // exported to peers and are not controlled by this field. + ExportSubnetRoutesWithPublicIp bool `json:"exportSubnetRoutesWithPublicIp,omitempty"` + // ImportCustomRoutes: Whether to import the custom routes from peer network. + // The default value is + // false. + ImportCustomRoutes bool `json:"importCustomRoutes,omitempty"` + // ImportSubnetRoutesWithPublicIp: Whether subnet routes with public IP range + // are imported. The default value + // is false.IPv4 + // special-use ranges are always + // imported from peers and are not controlled by this field. + ImportSubnetRoutesWithPublicIp bool `json:"importSubnetRoutesWithPublicIp,omitempty"` + // Name: Name of this peering. Provided by the client when the peering is + // created. + // The name must comply withRFC1035. + // Specifically, the name must be 1-63 characters long and match + // regular + // expression `[a-z]([-a-z0-9]*[a-z0-9])?`. The first character must be + // a + // lowercase letter, and all the following characters must be a dash, + // lowercase letter, or digit, except the last character, which cannot be + // a + // dash. + Name string `json:"name,omitempty"` + // Network: The URL of the peer network. It can be either full URL or partial + // URL. The + // peer network may belong to a different project. If the partial URL does + // not + // contain project, it is assumed that the peer network is in the same + // project + // as the current network. + Network string `json:"network,omitempty"` + // PeerMtu: Output only. [Output Only] Maximum Transmission Unit in bytes of + // the peer network. + PeerMtu int64 `json:"peerMtu,omitempty"` + // StackType: Which IP version(s) of traffic and routes are allowed to be + // imported or + // exported between peer networks. The default value is IPV4_ONLY. + // + // Possible values: + // "IPV4_IPV6" - This Peering will allow IPv4 traffic and routes to + // be + // exchanged. Additionally if the matching peering is + // IPV4_IPV6, IPv6 traffic and routes will be exchanged as + // well. + // "IPV4_ONLY" - This Peering will only allow IPv4 traffic and routes to + // be + // exchanged, even if the matching peering is IPV4_IPV6. + StackType string `json:"stackType,omitempty"` + // State: Output only. [Output Only] State for the peering. + // + // Possible values: + // "ACTIVE" - Matching configuration exists on the peer. + // "INACTIVE" - There is no matching configuration on the peer, including the + // case when + // peer does not exist. + State string `json:"state,omitempty"` + // StateDetails: Output only. [Output Only] Details about the current state of + // the peering. + StateDetails string `json:"stateDetails,omitempty"` + // UpdateStrategy: The update strategy determines the semantics for updates and + // deletes to the + // peering connection configuration. + // + // Possible values: + // "CONSENSUS" - Updates are reflected in the local peering but aren't + // applied to the + // peering connection until a complementary change is made to the + // matching peering. + // To delete a peering with the consensus update strategy, both the + // peerings + // must request the deletion of the peering before the peering can be + // deleted. + // "INDEPENDENT" - In this mode, changes to the peering configuration can + // be unilaterally altered by changing either side of the peering. + // This is the default value if the field is unspecified. + // "UNSPECIFIED" - Peerings with update strategy UNSPECIFIED are created + // with + // update strategy INDEPENDENT. + UpdateStrategy string `json:"updateStrategy,omitempty"` + // ForceSendFields is a list of field names (e.g. "AutoCreateRoutes") to + // unconditionally include in API requests. By default, fields with empty or + // default values are omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + ForceSendFields []string `json:"-"` + // NullFields is a list of field names (e.g. "AutoCreateRoutes") to include in + // API requests with the JSON null value. By default, fields with empty values + // are omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s NetworkPeering) MarshalJSON() ([]byte, error) { + type NoMethod NetworkPeering + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +// NetworkPeeringConnectionStatus: [Output Only] Describes the state of a +// peering connection, not just the +// local peering. This field provides information about the effective +// settings +// for the connection as a whole, including pending delete/update requests +// for +// CONSENSUS peerings. +type NetworkPeeringConnectionStatus struct { + // ConsensusState: The consensus state contains information about the status of + // update + // and delete for a consensus peering connection. + ConsensusState *NetworkPeeringConnectionStatusConsensusState `json:"consensusState,omitempty"` + // TrafficConfiguration: The active connectivity settings for the peering + // connection based on the + // settings of the network peerings. + TrafficConfiguration *NetworkPeeringConnectionStatusTrafficConfiguration `json:"trafficConfiguration,omitempty"` + // UpdateStrategy: The update strategy determines the update/delete semantics + // for this + // peering connection. + // + // Possible values: + // "CONSENSUS" - Updates are reflected in the local peering but aren't + // applied to the + // peering connection until a complementary change is made to the + // matching peering. + // To delete a peering with the consensus update strategy, both the + // peerings + // must request the deletion of the peering before the peering can be + // deleted. + // "INDEPENDENT" - In this mode, changes to the peering configuration can + // be unilaterally altered by changing either side of the peering. + // This is the default value if the field is unspecified. + // "UNSPECIFIED" - Peerings with update strategy UNSPECIFIED are created + // with + // update strategy INDEPENDENT. + UpdateStrategy string `json:"updateStrategy,omitempty"` + // ForceSendFields is a list of field names (e.g. "ConsensusState") to + // unconditionally include in API requests. By default, fields with empty or + // default values are omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + ForceSendFields []string `json:"-"` + // NullFields is a list of field names (e.g. "ConsensusState") to include in + // API requests with the JSON null value. By default, fields with empty values + // are omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s NetworkPeeringConnectionStatus) MarshalJSON() ([]byte, error) { + type NoMethod NetworkPeeringConnectionStatus + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +// NetworkPeeringConnectionStatusConsensusState: The status of update/delete +// for a consensus peering connection. Only set +// when connection_status.update_strategy isCONSENSUS or a network peering is +// proposing to update the +// strategy to CONSENSUS. +type NetworkPeeringConnectionStatusConsensusState struct { + // DeleteStatus: The status of the delete request. + // + // Possible values: + // "DELETE_ACKNOWLEDGED" - Both network admins have agreed this consensus + // peering connection can + // be deleted. + // "DELETE_STATUS_UNSPECIFIED" + // "LOCAL_CANCEL_REQUESTED" - The local network admin requested to cancel + // their delete request + // after DELETE_ACKNOWLEDGED. + // "LOCAL_DELETE_REQUESTED" - Network admin has requested deletion of this + // peering connection. + // "PEER_CANCEL_REQUESTED" - The peer network admin requested to cancel their + // delete request after + // DELETE_ACKNOWLEDGED. + // "PEER_DELETE_REQUESTED" - The peer network admin has requested deletion of + // this peering + // connection. + DeleteStatus string `json:"deleteStatus,omitempty"` + // UpdateStatus: The status of the update request. + // + // Possible values: + // "IN_SYNC" - No pending configuration update proposals to the peering + // connection. + // "PENDING_LOCAL_ACKNOWLEDMENT" - The peer network admin has made an + // updatePeering call. The change is + // awaiting acknowledgment from this peering's network admin. + // "PENDING_PEER_ACKNOWLEDGEMENT" - The local network admin has made an + // updatePeering call. The change + // is awaiting acknowledgment from the peer network admin. + // "UPDATE_STATUS_UNSPECIFIED" + UpdateStatus string `json:"updateStatus,omitempty"` + // ForceSendFields is a list of field names (e.g. "DeleteStatus") to + // unconditionally include in API requests. By default, fields with empty or + // default values are omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + ForceSendFields []string `json:"-"` + // NullFields is a list of field names (e.g. "DeleteStatus") to include in API + // requests with the JSON null value. By default, fields with empty values are + // omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s NetworkPeeringConnectionStatusConsensusState) MarshalJSON() ([]byte, error) { + type NoMethod NetworkPeeringConnectionStatusConsensusState + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +type NetworkPeeringConnectionStatusTrafficConfiguration struct { + // ExportCustomRoutesToPeer: Whether custom routes are being exported to the + // peer network. + ExportCustomRoutesToPeer bool `json:"exportCustomRoutesToPeer,omitempty"` + // ExportSubnetRoutesWithPublicIpToPeer: Whether subnet routes with public IP + // ranges are being exported to the + // peer network. + ExportSubnetRoutesWithPublicIpToPeer bool `json:"exportSubnetRoutesWithPublicIpToPeer,omitempty"` + // ImportCustomRoutesFromPeer: Whether custom routes are being imported from + // the peer network. + ImportCustomRoutesFromPeer bool `json:"importCustomRoutesFromPeer,omitempty"` + // ImportSubnetRoutesWithPublicIpFromPeer: Whether subnet routes with public IP + // ranges are being imported + // from the peer network. + ImportSubnetRoutesWithPublicIpFromPeer bool `json:"importSubnetRoutesWithPublicIpFromPeer,omitempty"` + // StackType: Which IP version(s) of traffic and routes are being imported + // or + // exported between peer networks. + // + // Possible values: + // "IPV4_IPV6" - This Peering will allow IPv4 traffic and routes to + // be + // exchanged. Additionally if the matching peering is + // IPV4_IPV6, IPv6 traffic and routes will be exchanged as + // well. + // "IPV4_ONLY" - This Peering will only allow IPv4 traffic and routes to + // be + // exchanged, even if the matching peering is IPV4_IPV6. + StackType string `json:"stackType,omitempty"` + // ForceSendFields is a list of field names (e.g. "ExportCustomRoutesToPeer") + // to unconditionally include in API requests. By default, fields with empty or + // default values are omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + ForceSendFields []string `json:"-"` + // NullFields is a list of field names (e.g. "ExportCustomRoutesToPeer") to + // include in API requests with the JSON null value. By default, fields with + // empty values are omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s NetworkPeeringConnectionStatusTrafficConfiguration) MarshalJSON() ([]byte, error) { + type NoMethod NetworkPeeringConnectionStatusTrafficConfiguration + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +type NetworkPerformanceConfig struct { + // Possible values: + // "DEFAULT" + // "TIER_1" + TotalEgressBandwidthTier string `json:"totalEgressBandwidthTier,omitempty"` + // ForceSendFields is a list of field names (e.g. "TotalEgressBandwidthTier") + // to unconditionally include in API requests. By default, fields with empty or + // default values are omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + ForceSendFields []string `json:"-"` + // NullFields is a list of field names (e.g. "TotalEgressBandwidthTier") to + // include in API requests with the JSON null value. By default, fields with + // empty values are omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s NetworkPerformanceConfig) MarshalJSON() ([]byte, error) { + type NoMethod NetworkPerformanceConfig + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +// NetworkProfile: NetworkProfile represents a Google managed network profile +// resource. +type NetworkProfile struct { + // CreationTimestamp: Output only. [Output Only] Creation timestamp + // inRFC3339 + // text format. + CreationTimestamp string `json:"creationTimestamp,omitempty"` + // Description: Output only. [Output Only] An optional description of this + // resource. + Description string `json:"description,omitempty"` + // Features: Output only. [Output Only] Features supported by the network. + Features *NetworkProfileNetworkFeatures `json:"features,omitempty"` + // Id: Output only. [Output Only] The unique identifier for the resource. This + // identifier is + // defined by the server. + Id uint64 `json:"id,omitempty,string"` + // Kind: Output only. [Output Only] Type of the resource. + // Alwayscompute#networkProfile for network profiles. + Kind string `json:"kind,omitempty"` + // Location: Output only. [Output Only] Location to which the network is + // restricted. + Location *NetworkProfileLocation `json:"location,omitempty"` + // Name: Output only. [Output Only] Name of the resource. + Name string `json:"name,omitempty"` + // ProfileType: Output only. [Output Only] Type of the network profile. + ProfileType *NetworkProfileProfileType `json:"profileType,omitempty"` + // SelfLink: Output only. [Output Only] Server-defined URL for the resource. + SelfLink string `json:"selfLink,omitempty"` + // SelfLinkWithId: Output only. [Output Only] Server-defined URL for this + // resource with the resource id. + SelfLinkWithId string `json:"selfLinkWithId,omitempty"` + + // ServerResponse contains the HTTP response code and headers from the server. + googleapi.ServerResponse `json:"-"` + // ForceSendFields is a list of field names (e.g. "CreationTimestamp") to + // unconditionally include in API requests. By default, fields with empty or + // default values are omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + ForceSendFields []string `json:"-"` + // NullFields is a list of field names (e.g. "CreationTimestamp") to include in + // API requests with the JSON null value. By default, fields with empty values + // are omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s NetworkProfile) MarshalJSON() ([]byte, error) { + type NoMethod NetworkProfile + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +type NetworkProfileLocation struct { + Name string `json:"name,omitempty"` + // Possible values: + // "REGION" + // "ZONE" + Scope string `json:"scope,omitempty"` + // ForceSendFields is a list of field names (e.g. "Name") to unconditionally + // include in API requests. By default, fields with empty or default values are + // omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + ForceSendFields []string `json:"-"` + // NullFields is a list of field names (e.g. "Name") to include in API requests + // with the JSON null value. By default, fields with empty values are omitted + // from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s NetworkProfileLocation) MarshalJSON() ([]byte, error) { + type NoMethod NetworkProfileLocation + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +type NetworkProfileNetworkFeatures struct { + // AddressPurposes: Specifies what address purposes are supported. If empty, + // all address + // purposes are supported. + // + // Possible values: + // "DNS_RESOLVER" - DNS resolver address in the subnetwork. + // "GCE_ENDPOINT" - VM internal/alias IP, Internal LB service IP, etc. + // "IPSEC_INTERCONNECT" - A regional internal IP address range reserved for + // the VLAN attachment + // that is used in HA VPN over Cloud Interconnect. This regional + // internal IP address range must not overlap with any IP address range + // of subnet/route in the VPC network and its peering networks. After the + // VLAN attachment is created with the reserved IP address range, when + // creating a new VPN gateway, its interface IP address is allocated + // from the associated VLAN attachment’s IP address range. + // "NAT_AUTO" - External IP automatically reserved for Cloud NAT. + // "PRIVATE_SERVICE_CONNECT" - A private network IP address that can be used + // to configure Private + // Service Connect. This purpose can be specified only forGLOBAL addresses of + // Type INTERNAL + // "SERVERLESS" - A regional internal IP address range reserved for + // Serverless. + // "SHARED_LOADBALANCER_VIP" - A private network IP address that can be + // shared by multiple Internal + // Load Balancer forwarding rules. + // "VPC_PEERING" - IP range for peer networks. + AddressPurposes []string `json:"addressPurposes,omitempty"` + // AllowAddressCreation: Specifies whether address creation is allowed. + // + // Possible values: + // "ADDRESS_CREATION_ALLOWED" + // "ADDRESS_CREATION_BLOCKED" + AllowAddressCreation string `json:"allowAddressCreation,omitempty"` + // AllowAliasIpRanges: Specifies whether alias IP ranges (and secondary address + // ranges) are + // allowed. + // + // Possible values: + // "ALIAS_IP_RANGES_ALLOWED" + // "ALIAS_IP_RANGES_BLOCKED" + AllowAliasIpRanges string `json:"allowAliasIpRanges,omitempty"` + // AllowAutoModeSubnet: Specifies whether auto mode subnet creation is allowed. + // + // Possible values: + // "AUTO_MODE_SUBNET_ALLOWED" + // "AUTO_MODE_SUBNET_BLOCKED" + AllowAutoModeSubnet string `json:"allowAutoModeSubnet,omitempty"` + // AllowClassDFirewalls: Specifies whether firewalls for Class D address ranges + // are supported. + // + // Possible values: + // "CLASS_D_FIREWALLS_ALLOWED" + // "CLASS_D_FIREWALLS_BLOCKED" + AllowClassDFirewalls string `json:"allowClassDFirewalls,omitempty"` + // AllowCloudNat: Specifies whether cloud NAT creation is allowed. + // + // Possible values: + // "CLOUD_NAT_ALLOWED" + // "CLOUD_NAT_BLOCKED" + AllowCloudNat string `json:"allowCloudNat,omitempty"` + // AllowCloudRouter: Specifies whether cloud router creation is allowed. + // + // Possible values: + // "CLOUD_ROUTER_ALLOWED" + // "CLOUD_ROUTER_BLOCKED" + AllowCloudRouter string `json:"allowCloudRouter,omitempty"` + // AllowDefaultNicAttachment: Specifies whether default NIC attachment is + // allowed. + // + // Possible values: + // "DEFAULT_NIC_ATTACHMENT_ALLOWED" + // "DEFAULT_NIC_ATTACHMENT_BLOCKED" + AllowDefaultNicAttachment string `json:"allowDefaultNicAttachment,omitempty"` + // AllowExternalIpAccess: Specifies whether VMs are allowed to have external IP + // access on network + // interfaces connected to this VPC. + // + // Possible values: + // "EXTERNAL_IP_ACCESS_ALLOWED" + // "EXTERNAL_IP_ACCESS_BLOCKED" + AllowExternalIpAccess string `json:"allowExternalIpAccess,omitempty"` + // AllowFirewallPolicy: Specifies whether firewall policy can be attached to + // the network. + // + // Possible values: + // "FIREWALL_POLICY_ALLOWED" + // "FIREWALL_POLICY_BLOCKED" + AllowFirewallPolicy string `json:"allowFirewallPolicy,omitempty"` + // AllowInterconnect: Specifies whether Cloud Interconnect creation is allowed. + // + // Possible values: + // "INTERCONNECT_ALLOWED" + // "INTERCONNECT_BLOCKED" + AllowInterconnect string `json:"allowInterconnect,omitempty"` + // AllowIpForwarding: Specifies whether IP forwarding is allowed. + // + // Possible values: + // "IP_FORWARDING_ALLOWED" + // "IP_FORWARDING_BLOCKED" + AllowIpForwarding string `json:"allowIpForwarding,omitempty"` + // AllowLoadBalancing: Specifies whether cloud load balancing is allowed. + // + // Possible values: + // "LOAD_BALANCING_ALLOWED" + // "LOAD_BALANCING_BLOCKED" + AllowLoadBalancing string `json:"allowLoadBalancing,omitempty"` + // AllowMultiNicInSameNetwork: Specifies whether multi-nic in the same network + // is allowed. + // + // Possible values: + // "MULTI_NIC_IN_SAME_NETWORK_ALLOWED" + // "MULTI_NIC_IN_SAME_NETWORK_BLOCKED" + AllowMultiNicInSameNetwork string `json:"allowMultiNicInSameNetwork,omitempty"` + // AllowMultiNicInSameSubnetwork: Specifies whether multi-nic in the same + // subnetwork is allowed. + // + // Possible values: + // "MULTI_NIC_IN_SAME_SUBNETWORK_ALLOWED" + // "MULTI_NIC_IN_SAME_SUBNETWORK_BLOCKED" + AllowMultiNicInSameSubnetwork string `json:"allowMultiNicInSameSubnetwork,omitempty"` + // AllowMulticast: Specifies whether multicast is allowed. + // + // Possible values: + // "MULTICAST_ALLOWED" + // "MULTICAST_BLOCKED" + AllowMulticast string `json:"allowMulticast,omitempty"` + // AllowNcc: Specifies whether NCC is allowed. + // + // Possible values: + // "NCC_ALLOWED" + // "NCC_BLOCKED" + AllowNcc string `json:"allowNcc,omitempty"` + // AllowNetworkMigration: Specifies whether VM network migration is allowed. + // + // Possible values: + // "NETWORK_MIGRATION_ALLOWED" + // "NETWORK_MIGRATION_BLOCKED" + AllowNetworkMigration string `json:"allowNetworkMigration,omitempty"` + // AllowPacketMirroring: Specifies whether Packet Mirroring 1.0 is supported. + // + // Possible values: + // "PACKET_MIRRORING_ALLOWED" + // "PACKET_MIRRORING_BLOCKED" + AllowPacketMirroring string `json:"allowPacketMirroring,omitempty"` + // AllowPrivateGoogleAccess: Specifies whether private Google access is + // allowed. + // + // Possible values: + // "PRIVATE_GOOGLE_ACCESS_ALLOWED" + // "PRIVATE_GOOGLE_ACCESS_BLOCKED" + AllowPrivateGoogleAccess string `json:"allowPrivateGoogleAccess,omitempty"` + // AllowPsc: Specifies whether PSC creation is allowed. + // + // Possible values: + // "PSC_ALLOWED" + // "PSC_BLOCKED" + AllowPsc string `json:"allowPsc,omitempty"` + // AllowSameNetworkUnicast: Specifies whether unicast within the same network + // is allowed. + // + // Possible values: + // "SAME_NETWORK_UNICAST_ALLOWED" + // "SAME_NETWORK_UNICAST_BLOCKED" + AllowSameNetworkUnicast string `json:"allowSameNetworkUnicast,omitempty"` + // AllowStaticRoutes: Specifies whether static route creation is allowed. + // + // Possible values: + // "STATIC_ROUTES_ALLOWED" + // "STATIC_ROUTES_BLOCKED" + AllowStaticRoutes string `json:"allowStaticRoutes,omitempty"` + // AllowSubInterfaces: Specifies whether sub interfaces are allowed. + // + // Possible values: + // "SUBINTERFACES_ALLOWED" + // "SUBINTERFACES_BLOCKED" + AllowSubInterfaces string `json:"allowSubInterfaces,omitempty"` + // AllowSubnetworkCreation: Specifies whether subnetwork creation is allowed. + // + // Possible values: + // "SUBNETWORK_CREATION_ALLOWED" + // "SUBNETWORK_CREATION_BLOCKED" + AllowSubnetworkCreation string `json:"allowSubnetworkCreation,omitempty"` + // AllowVpcFirewallRules: Specifies whether VPC firewall rules can be created + // under the network. + // + // Possible values: + // "VPC_FIREWALL_RULES_ALLOWED" + // "VPC_FIREWALL_RULES_BLOCKED" + AllowVpcFirewallRules string `json:"allowVpcFirewallRules,omitempty"` + // AllowVpcPeering: Specifies whether VPC peering is allowed. + // + // Possible values: + // "VPC_PEERING_ALLOWED" + // "VPC_PEERING_BLOCKED" + AllowVpcPeering string `json:"allowVpcPeering,omitempty"` + // AllowVpn: Specifies whether VPN creation is allowed. + // + // Possible values: + // "VPN_ALLOWED" + // "VPN_BLOCKED" + AllowVpn string `json:"allowVpn,omitempty"` + // Possible values: + // "RDMA_ROCE_POLICY" + // "ULL_POLICY" + // "VPC_POLICY" + FirewallPolicyTypes []string `json:"firewallPolicyTypes,omitempty"` + // InterfaceTypes: If set, limits the interface types that the network + // supports. If + // empty, all interface types are supported. + // + // Possible values: + // "GVNIC" - GVNIC + // "IDPF" - IDPF + // "IRDMA" - IRDMA + // "MRDMA" - MRDMA + // "UNSPECIFIED_NIC_TYPE" - No type specified. + // "VIRTIO_NET" - VIRTIO + InterfaceTypes []string `json:"interfaceTypes,omitempty"` + // Multicast: Specifies which type of multicast is supported. + // + // Possible values: + // "MULTICAST_SDN" + // "MULTICAST_ULL" + Multicast string `json:"multicast,omitempty"` + // PredefinedNetworkInternalIpv6Range: Specifies a predefined internal IPv6 + // range for the network. + PredefinedNetworkInternalIpv6Range string `json:"predefinedNetworkInternalIpv6Range,omitempty"` + // PredefinedSubnetworkRanges: Predefined subnetwork ranges for the network. + PredefinedSubnetworkRanges []*NetworkProfileNetworkFeaturesPredefinedSubnetworkRange `json:"predefinedSubnetworkRanges,omitempty"` + // SubnetPurposes: Specifies which subnetwork purposes are supported. + // + // Possible values: + // "SUBNET_PURPOSE_CUSTOM_HARDWARE" + // "SUBNET_PURPOSE_PRIVATE" + SubnetPurposes []string `json:"subnetPurposes,omitempty"` + // SubnetStackTypes: Specifies which subnetwork stack types are supported. + // + // Possible values: + // "SUBNET_STACK_TYPE_IPV4_IPV6" + // "SUBNET_STACK_TYPE_IPV4_ONLY" + // "SUBNET_STACK_TYPE_IPV6_ONLY" + SubnetStackTypes []string `json:"subnetStackTypes,omitempty"` + // SubnetworkPurposes: Output only. Specifies which subnetwork purposes are + // supported. + // + // Possible values: + // "GLOBAL_MANAGED_PROXY" - Subnet reserved for Global Envoy-based Load + // Balancing. + // "INTERNAL_HTTPS_LOAD_BALANCER" - Subnet reserved for Internal HTTP(S) Load + // Balancing. This is a legacy + // purpose, please use REGIONAL_MANAGED_PROXY instead. + // "PEER_MIGRATION" - Subnetwork will be used for Migration from one peered + // VPC to another. + // (a transient state of subnetwork + // while migrating resources from one project to another). + // "PRIVATE" - Regular user created or automatically created subnet. + // "PRIVATE_NAT" - Subnetwork used as source range for Private NAT Gateways. + // "PRIVATE_RFC_1918" - Regular user created or automatically created subnet. + // "PRIVATE_SERVICE_CONNECT" - Subnetworks created for Private Service + // Connect in the producer network. + // "REGIONAL_MANAGED_PROXY" - Subnetwork used for Regional Envoy-based Load + // Balancing. + SubnetworkPurposes []string `json:"subnetworkPurposes,omitempty"` + // SubnetworkStackTypes: Output only. Specifies which subnetwork stack types + // are supported. + // + // Possible values: + // "IPV4_IPV6" - New VMs in this subnet can have both IPv4 and IPv6 + // addresses. + // "IPV4_ONLY" - New VMs in this subnet will only be assigned IPv4 addresses. + // "IPV6_ONLY" - New VMs in this subnet will only be assigned IPv6 + // addresses. + SubnetworkStackTypes []string `json:"subnetworkStackTypes,omitempty"` + // Unicast: Specifies which type of unicast is supported. + // + // Possible values: + // "UNICAST_SDN" + // "UNICAST_ULL" + Unicast string `json:"unicast,omitempty"` + // ForceSendFields is a list of field names (e.g. "AddressPurposes") to + // unconditionally include in API requests. By default, fields with empty or + // default values are omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + ForceSendFields []string `json:"-"` + // NullFields is a list of field names (e.g. "AddressPurposes") to include in + // API requests with the JSON null value. By default, fields with empty values + // are omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s NetworkProfileNetworkFeatures) MarshalJSON() ([]byte, error) { + type NoMethod NetworkProfileNetworkFeatures + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +type NetworkProfileNetworkFeaturesPredefinedSubnetworkRange struct { + // Ipv6Range: The IPv6 range of the predefined subnetwork. + Ipv6Range string `json:"ipv6Range,omitempty"` + // NamePrefix: The naming prefix of the predefined subnetwork. + NamePrefix string `json:"namePrefix,omitempty"` + // ForceSendFields is a list of field names (e.g. "Ipv6Range") to + // unconditionally include in API requests. By default, fields with empty or + // default values are omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + ForceSendFields []string `json:"-"` + // NullFields is a list of field names (e.g. "Ipv6Range") to include in API + // requests with the JSON null value. By default, fields with empty values are + // omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s NetworkProfileNetworkFeaturesPredefinedSubnetworkRange) MarshalJSON() ([]byte, error) { + type NoMethod NetworkProfileNetworkFeaturesPredefinedSubnetworkRange + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +type NetworkProfileProfileType struct { + // Possible values: + // "RDMA" - RDMA network. + // "ULL" - ULL network. + // "VPC" - VPC network. + NetworkType string `json:"networkType,omitempty"` + // Possible values: + // "FALCON" - RDMA over Falcon. + // "ROCE" - RDMA over Converged Ethernet (RoCE). + // "ROCE_METAL" - RDMA over Converged Ethernet (RoCE) for Bare Metal. + RdmaSubtype string `json:"rdmaSubtype,omitempty"` + // Possible values: + // "OPERATOR" - Exchange operator. + // "PARTICIPANT" - Exchange participant. + UllSubtype string `json:"ullSubtype,omitempty"` + // Possible values: + // "REGIONAL" - Regionally bound VPC network. + VpcSubtype string `json:"vpcSubtype,omitempty"` + // ForceSendFields is a list of field names (e.g. "NetworkType") to + // unconditionally include in API requests. By default, fields with empty or + // default values are omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + ForceSendFields []string `json:"-"` + // NullFields is a list of field names (e.g. "NetworkType") to include in API + // requests with the JSON null value. By default, fields with empty values are + // omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s NetworkProfileProfileType) MarshalJSON() ([]byte, error) { + type NoMethod NetworkProfileProfileType + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +// NetworkProfilesListResponse: Contains a list of network profiles. +type NetworkProfilesListResponse struct { + Etag string `json:"etag,omitempty"` + // Id: [Output Only] Unique identifier for the resource; defined by the server. + Id string `json:"id,omitempty"` + // Items: A list of NetworkProfile resources. + Items []*NetworkProfile `json:"items,omitempty"` + // Kind: Output only. [Output Only] Type of resource. + // Alwayscompute#networkProfileList for network profiles. + 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 thanmaxResults, 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"` + // SelfLink: Output only. [Output Only] Server-defined URL for this resource. + SelfLink string `json:"selfLink,omitempty"` + // Unreachables: Output only. [Output Only] Unreachable + // resources. + // end_interface: MixerListResponseWithEtagBuilder + Unreachables []string `json:"unreachables,omitempty"` + // Warning: [Output Only] Informational warning message. + Warning *NetworkProfilesListResponseWarning `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. "Etag") to unconditionally + // include in API requests. By default, fields with empty or default values are + // omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + ForceSendFields []string `json:"-"` + // NullFields is a list of field names (e.g. "Etag") to include in API requests + // with the JSON null value. By default, fields with empty values are omitted + // from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s NetworkProfilesListResponse) MarshalJSON() ([]byte, error) { + type NoMethod NetworkProfilesListResponse + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +// NetworkProfilesListResponseWarning: [Output Only] Informational warning +// message. +type NetworkProfilesListResponseWarning 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" - Warning about failed cleanup of transient changes made + // by a failed + // operation. + // "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was created. + // "DEPRECATED_TYPE_USED" - When deploying and at least one of the resources + // has a type marked as + // deprecated + // "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk that is + // larger than image size. + // "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the + // resources has a type marked as + // experimental + // "EXTERNAL_API_WARNING" - Warning that is present in an external api call + // "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been + // overridden. + // Deprecated unused field. + // "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an injected + // kernel, which is deprecated. + // "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB" - A WEIGHTED_MAGLEV backend + // service is associated with a health check that is + // not of type HTTP/HTTPS/HTTP2. + // "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a + // exceedingly large number of resources + // "LIST_OVERHEAD_QUOTA_EXCEED" - Resource can't be retrieved due to list + // overhead quota exceed + // which captures the amount of resources filtered out by + // user-defined list filter. + // "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type + // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is not + // assigned to an instance on the + // network. + // "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot ip + // forward. + // "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE" - The route's nextHopInstance + // URL refers to an instance that does not have an + // ipv6 interface on the same network as the route. + // "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL refers to + // an instance that does not exist. + // "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance URL + // refers to an instance that is not on the + // same network as the route. + // "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not have a + // status of RUNNING. + // "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to continue + // the process despite + // the mentioned error. + // "NO_RESULTS_ON_PAGE" - No results are present on a particular list page. + // "PARTIAL_SUCCESS" - Success is reported, but some results may be missing + // due to errors + // "QUOTA_INFO_UNAVAILABLE" - Quota information is not available to client + // requests (e.g: + // regions.list). + // "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource that + // requires a TOS they have not + // accepted. + // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a resource is + // in use. + // "RESOURCE_NOT_DELETED" - One or more of the resources set to auto-delete + // could not be deleted + // because they were in use. + // "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is + // ignored. + // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in instance + // group manager is valid as such, but + // its application does not make a lot of sense, because it allows only + // single instance in instance group. + // "UNDECLARED_PROPERTIES" - When undeclared properties in the schema are + // present + // "UNREACHABLE" - A given scope cannot be reached. + 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 []*NetworkProfilesListResponseWarningData `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 or default values are + // omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + 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. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s NetworkProfilesListResponseWarning) MarshalJSON() ([]byte, error) { + type NoMethod NetworkProfilesListResponseWarning + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +type NetworkProfilesListResponseWarningData 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 or default values are + // omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + 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. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s NetworkProfilesListResponseWarningData) MarshalJSON() ([]byte, error) { + type NoMethod NetworkProfilesListResponseWarningData + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +// NetworkRoutingConfig: A routing configuration attached to a network +// resource. The message +// includes the list of routers associated with the network, and a +// flag +// indicating the type of routing behavior to enforce network-wide. +type NetworkRoutingConfig struct { + // BgpAlwaysCompareMed: Enable comparison of Multi-Exit Discriminators (MED) + // across routes with + // different neighbor ASNs when using the STANDARD BGP best path + // selection + // algorithm. + BgpAlwaysCompareMed bool `json:"bgpAlwaysCompareMed,omitempty"` + // BgpBestPathSelectionMode: The BGP best path selection algorithm to be + // employed within this network + // for dynamic routes learned by Cloud Routers. Can be LEGACY + // (default) or STANDARD. + // + // Possible values: + // "LEGACY" + // "STANDARD" + BgpBestPathSelectionMode string `json:"bgpBestPathSelectionMode,omitempty"` + // BgpInterRegionCost: Allows to define a preferred approach for handling + // inter-region cost in + // the selection process when using the STANDARD BGP best path + // selection algorithm. Can be DEFAULT orADD_COST_TO_MED. + // + // Possible values: + // "ADD_COST_TO_MED" + // "DEFAULT" + BgpInterRegionCost string `json:"bgpInterRegionCost,omitempty"` + // EffectiveBgpAlwaysCompareMed: Output only. [Output Only] Effective value of + // the bgp_always_compare_med + // field. + EffectiveBgpAlwaysCompareMed bool `json:"effectiveBgpAlwaysCompareMed,omitempty"` + // EffectiveBgpInterRegionCost: Output only. [Output Only] Effective value of + // the bgp_inter_region_cost + // field. + // + // Possible values: + // "ADD_COST_TO_MED" + // "DEFAULT" + EffectiveBgpInterRegionCost string `json:"effectiveBgpInterRegionCost,omitempty"` + // RoutingMode: The network-wide routing mode to use. If set to REGIONAL, + // this network's Cloud Routers will only advertise routes with subnets + // of this network in the same region as the router. If set toGLOBAL, this + // network's Cloud Routers will advertise + // routes with all subnets of this network, across regions. + // + // Possible values: + // "GLOBAL" + // "REGIONAL" + RoutingMode string `json:"routingMode,omitempty"` + // ForceSendFields is a list of field names (e.g. "BgpAlwaysCompareMed") to + // unconditionally include in API requests. By default, fields with empty or + // default values are omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + ForceSendFields []string `json:"-"` + // NullFields is a list of field names (e.g. "BgpAlwaysCompareMed") to include + // in API requests with the JSON null value. By default, fields with empty + // values are omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s NetworkRoutingConfig) MarshalJSON() ([]byte, error) { + type NoMethod NetworkRoutingConfig + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +type NetworksAddPeeringRequest struct { + // AutoCreateRoutes: This field will be deprecated soon. + // Useexchange_subnet_routes in network_peering + // instead. + // Indicates whether full mesh connectivity is created and + // managed + // automatically between peered networks. Currently this field should always + // be true since Google Compute Engine will automatically create and + // manage + // subnetwork routes between two networks when peering state isACTIVE. + AutoCreateRoutes bool `json:"autoCreateRoutes,omitempty"` + // Name: Name of the peering, which should conform to RFC1035. + Name string `json:"name,omitempty"` + // NetworkPeering: Network peering parameters. + // In order to specify route policies for peering using import and + // export + // custom routes, you must specify all peering related parameters + // (name, peer network,exchange_subnet_routes) in the + // network_peering + // field. + // The corresponding fields in NetworksAddPeeringRequest will be + // deprecated soon. + NetworkPeering *NetworkPeering `json:"networkPeering,omitempty"` + // PeerNetwork: URL of the peer network. It can be either full URL or partial + // URL. The + // peer network may belong to a different project. If the partial URL does + // not + // contain project, it is assumed that the peer network is in the same + // project + // as the current network. + PeerNetwork string `json:"peerNetwork,omitempty"` + // ForceSendFields is a list of field names (e.g. "AutoCreateRoutes") to + // unconditionally include in API requests. By default, fields with empty or + // default values are omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + ForceSendFields []string `json:"-"` + // NullFields is a list of field names (e.g. "AutoCreateRoutes") to include in + // API requests with the JSON null value. By default, fields with empty values + // are omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s NetworksAddPeeringRequest) MarshalJSON() ([]byte, error) { + type NoMethod NetworksAddPeeringRequest + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +type NetworksCancelRequestRemovePeeringRequest struct { + // Name: Name of the peering, which should conform to RFC1035. + Name string `json:"name,omitempty"` + // ForceSendFields is a list of field names (e.g. "Name") to unconditionally + // include in API requests. By default, fields with empty or default values are + // omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + ForceSendFields []string `json:"-"` + // NullFields is a list of field names (e.g. "Name") to include in API requests + // with the JSON null value. By default, fields with empty values are omitted + // from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s NetworksCancelRequestRemovePeeringRequest) MarshalJSON() ([]byte, error) { + type NoMethod NetworksCancelRequestRemovePeeringRequest + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +type NetworksGetEffectiveFirewallsResponse struct { + // FirewallPolicys: [Output Only] Effective firewalls from firewall policy. It + // returns Global + // Network Firewall Policies and Hierarchical Firewall Policies. + // UseregionNetworkFirewallPolicies.getEffectiveFirewalls to get + // Regional Network Firewall Policies as well. + FirewallPolicys []*NetworksGetEffectiveFirewallsResponseEffectiveFirewallPolicy `json:"firewallPolicys,omitempty"` + // Firewalls: Effective firewalls on the network. + Firewalls []*Firewall `json:"firewalls,omitempty"` + + // ServerResponse contains the HTTP response code and headers from the server. + googleapi.ServerResponse `json:"-"` + // ForceSendFields is a list of field names (e.g. "FirewallPolicys") to + // unconditionally include in API requests. By default, fields with empty or + // default values are omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + ForceSendFields []string `json:"-"` + // NullFields is a list of field names (e.g. "FirewallPolicys") to include in + // API requests with the JSON null value. By default, fields with empty values + // are omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s NetworksGetEffectiveFirewallsResponse) MarshalJSON() ([]byte, error) { + type NoMethod NetworksGetEffectiveFirewallsResponse + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +type NetworksGetEffectiveFirewallsResponseEffectiveFirewallPolicy struct { + // DisplayName: Output only. [Output Only] Deprecated, please use short name + // instead. The display name + // of the firewall policy. + DisplayName string `json:"displayName,omitempty"` + // Name: Output only. [Output Only] The name of the firewall policy. + Name string `json:"name,omitempty"` + // PacketMirroringRules: Output only. [Output Only] The packet mirroring rules + // that apply to the network. + PacketMirroringRules []*FirewallPolicyRule `json:"packetMirroringRules,omitempty"` + // Priority: Output only. [Output only] Priority of firewall policy + // association. Not applicable for + // type=HIERARCHY. + Priority int64 `json:"priority,omitempty"` + // Rules: [Output Only] The rules that apply to the network. + Rules []*FirewallPolicyRule `json:"rules,omitempty"` + // ShortName: Output only. [Output Only] The short name of the firewall policy. + ShortName string `json:"shortName,omitempty"` + // Type: Output only. [Output Only] The type of the firewall policy. + // + // Possible values: + // "HIERARCHY" + // "NETWORK" + // "SYSTEM" + // "UNSPECIFIED" + Type string `json:"type,omitempty"` + // ForceSendFields is a list of field names (e.g. "DisplayName") to + // unconditionally include in API requests. By default, fields with empty or + // default values are omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + ForceSendFields []string `json:"-"` + // NullFields is a list of field names (e.g. "DisplayName") to include in API + // requests with the JSON null value. By default, fields with empty values are + // omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s NetworksGetEffectiveFirewallsResponseEffectiveFirewallPolicy) MarshalJSON() ([]byte, error) { + type NoMethod NetworksGetEffectiveFirewallsResponseEffectiveFirewallPolicy + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +type NetworksRemovePeeringRequest struct { + // Name: Name of the peering, which should conform to RFC1035. + Name string `json:"name,omitempty"` + // ForceSendFields is a list of field names (e.g. "Name") to unconditionally + // include in API requests. By default, fields with empty or default values are + // omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + ForceSendFields []string `json:"-"` + // NullFields is a list of field names (e.g. "Name") to include in API requests + // with the JSON null value. By default, fields with empty values are omitted + // from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s NetworksRemovePeeringRequest) MarshalJSON() ([]byte, error) { + type NoMethod NetworksRemovePeeringRequest + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +type NetworksRequestRemovePeeringRequest struct { + // Name: Name of the peering, which should conform to RFC1035. + Name string `json:"name,omitempty"` + // ForceSendFields is a list of field names (e.g. "Name") to unconditionally + // include in API requests. By default, fields with empty or default values are + // omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + ForceSendFields []string `json:"-"` + // NullFields is a list of field names (e.g. "Name") to include in API requests + // with the JSON null value. By default, fields with empty values are omitted + // from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s NetworksRequestRemovePeeringRequest) MarshalJSON() ([]byte, error) { + type NoMethod NetworksRequestRemovePeeringRequest + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +type NetworksUpdatePeeringRequest struct { + NetworkPeering *NetworkPeering `json:"networkPeering,omitempty"` + // ForceSendFields is a list of field names (e.g. "NetworkPeering") to + // unconditionally include in API requests. By default, fields with empty or + // default values are omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + ForceSendFields []string `json:"-"` + // NullFields is a list of field names (e.g. "NetworkPeering") to include in + // API requests with the JSON null value. By default, fields with empty values + // are omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s NetworksUpdatePeeringRequest) MarshalJSON() ([]byte, error) { + type NoMethod NetworksUpdatePeeringRequest + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +// NodeGroup: Represents a sole-tenant Node Group resource. +// +// A sole-tenant node is a physical server that is dedicated to +// hosting VM instances only for your specific project. Use sole-tenant nodes +// to +// keep your instances physically separated from instances in other projects, +// or +// to group your instances together on the same host hardware. For +// more +// information, readSole-tenant nodes. +type NodeGroup struct { + // AutoscalingPolicy: Specifies how autoscaling should behave. + AutoscalingPolicy *NodeGroupAutoscalingPolicy `json:"autoscalingPolicy,omitempty"` + // CreationTimestamp: Output only. [Output Only] Creation timestamp + // inRFC3339 + // text format. + CreationTimestamp string `json:"creationTimestamp,omitempty"` + // Description: An optional description of this resource. Provide this property + // when you + // create the resource. + Description string `json:"description,omitempty"` + Fingerprint string `json:"fingerprint,omitempty"` + // Id: Output only. [Output Only] The unique identifier for the resource. This + // identifier is + // defined by the server. + Id uint64 `json:"id,omitempty,string"` + // Kind: Output only. [Output Only] The type of the resource. + // Alwayscompute#nodeGroup for node group. + Kind string `json:"kind,omitempty"` + // LocationHint: An opaque location hint used to place the Node close to + // other + // resources. + // This field is for use by internal tools that use the public API. + // The location hint here on the NodeGroup overrides any location_hint + // present in the NodeTemplate. + LocationHint string `json:"locationHint,omitempty"` + // MaintenanceInterval: Specifies the frequency of planned maintenance events. + // The accepted values + // are: `AS_NEEDED` and `RECURRENT`. + // + // Possible values: + // "AS_NEEDED" - VMs are eligible to receive infrastructure and hypervisor + // updates as they + // become available. This may result in more maintenance operations + // (live + // migrations or terminations) for the VM than the PERIODIC andRECURRENT + // options. + // "RECURRENT" - VMs receive infrastructure and hypervisor updates on a + // periodic basis, + // minimizing the number of maintenance operations (live migrations + // or + // terminations) on an individual VM. This may mean a VM will take longer + // to receive an update than if it was configured forAS_NEEDED. Security + // updates will still be applied as soon + // as they are available. RECURRENT is used for GEN3 and Slice + // of Hardware VMs. + MaintenanceInterval string `json:"maintenanceInterval,omitempty"` + // MaintenancePolicy: Specifies how to handle instances when a node in the + // group undergoes + // maintenance. Set to one of: DEFAULT,RESTART_IN_PLACE, or + // MIGRATE_WITHIN_NODE_GROUP. + // The default value is DEFAULT. For more information, see + // Maintenance policies. + // + // Possible values: + // "DEFAULT" - Allow the node and corresponding instances to retain + // default + // maintenance behavior. + // "MAINTENANCE_POLICY_UNSPECIFIED" + // "MIGRATE_WITHIN_NODE_GROUP" - When maintenance must be done on a node, the + // instances on that node will + // be moved to other nodes in the group. + // Instances with onHostMaintenance = MIGRATE will live migrate to + // their + // destinations while instances with onHostMaintenance = TERMINATE + // will + // terminate and then restart on their destination nodes if + // automaticRestart = true. + // "RESTART_IN_PLACE" - Instances in this group will restart on the same node + // when maintenance + // has completed. Instances must have onHostMaintenance = TERMINATE, and + // they will only restart if automaticRestart = true. + MaintenancePolicy string `json:"maintenancePolicy,omitempty"` + MaintenanceWindow *NodeGroupMaintenanceWindow `json:"maintenanceWindow,omitempty"` + // Name: The name of the resource, provided by the client when initially + // creating + // the resource. The resource name must be 1-63 characters long, and + // comply + // withRFC1035. + // 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. + Name string `json:"name,omitempty"` + // NodeTemplate: URL of the node template to create the node group from. + NodeTemplate string `json:"nodeTemplate,omitempty"` + // SelfLink: Output only. [Output Only] Server-defined URL for the resource. + SelfLink string `json:"selfLink,omitempty"` + // ShareSettings: Share-settings for the node group + ShareSettings *ShareSettings `json:"shareSettings,omitempty"` + // Size: Output only. [Output Only] The total number of nodes in the node + // group. + Size int64 `json:"size,omitempty"` + // Possible values: + // "CREATING" + // "DELETING" + // "INVALID" + // "READY" + Status string `json:"status,omitempty"` + // Zone: Output only. [Output Only] The name of the zone where the node group + // resides, + // such as us-central1-a. + Zone string `json:"zone,omitempty"` + + // ServerResponse contains the HTTP response code and headers from the server. + googleapi.ServerResponse `json:"-"` + // ForceSendFields is a list of field names (e.g. "AutoscalingPolicy") to + // unconditionally include in API requests. By default, fields with empty or + // default values are omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + ForceSendFields []string `json:"-"` + // NullFields is a list of field names (e.g. "AutoscalingPolicy") to include in + // API requests with the JSON null value. By default, fields with empty values + // are omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s NodeGroup) MarshalJSON() ([]byte, error) { + type NoMethod NodeGroup + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +type NodeGroupAggregatedList struct { + // Id: [Output Only] Unique identifier for the resource; defined by the server. + Id string `json:"id,omitempty"` + // Items: A list of NodeGroupsScopedList resources. + Items map[string]NodeGroupsScopedList `json:"items,omitempty"` + // Kind: Output only. [Output Only] Type of + // resource.Alwayscompute#nodeGroupAggregatedList for aggregated lists of + // node + // groups. + 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 thanmaxResults, 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"` + // SelfLink: Output only. [Output Only] Server-defined URL for this resource. + SelfLink string `json:"selfLink,omitempty"` + // Unreachables: Output only. [Output Only] Unreachable resources. + Unreachables []string `json:"unreachables,omitempty"` + // Warning: [Output Only] Informational warning message. + Warning *NodeGroupAggregatedListWarning `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 or default values are + // omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + 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. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s NodeGroupAggregatedList) MarshalJSON() ([]byte, error) { + type NoMethod NodeGroupAggregatedList + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +// NodeGroupAggregatedListWarning: [Output Only] Informational warning message. +type NodeGroupAggregatedListWarning 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" - Warning about failed cleanup of transient changes made + // by a failed + // operation. + // "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was created. + // "DEPRECATED_TYPE_USED" - When deploying and at least one of the resources + // has a type marked as + // deprecated + // "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk that is + // larger than image size. + // "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the + // resources has a type marked as + // experimental + // "EXTERNAL_API_WARNING" - Warning that is present in an external api call + // "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been + // overridden. + // Deprecated unused field. + // "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an injected + // kernel, which is deprecated. + // "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB" - A WEIGHTED_MAGLEV backend + // service is associated with a health check that is + // not of type HTTP/HTTPS/HTTP2. + // "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a + // exceedingly large number of resources + // "LIST_OVERHEAD_QUOTA_EXCEED" - Resource can't be retrieved due to list + // overhead quota exceed + // which captures the amount of resources filtered out by + // user-defined list filter. + // "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type + // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is not + // assigned to an instance on the + // network. + // "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot ip + // forward. + // "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE" - The route's nextHopInstance + // URL refers to an instance that does not have an + // ipv6 interface on the same network as the route. + // "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL refers to + // an instance that does not exist. + // "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance URL + // refers to an instance that is not on the + // same network as the route. + // "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not have a + // status of RUNNING. + // "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to continue + // the process despite + // the mentioned error. + // "NO_RESULTS_ON_PAGE" - No results are present on a particular list page. + // "PARTIAL_SUCCESS" - Success is reported, but some results may be missing + // due to errors + // "QUOTA_INFO_UNAVAILABLE" - Quota information is not available to client + // requests (e.g: + // regions.list). + // "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource that + // requires a TOS they have not + // accepted. + // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a resource is + // in use. + // "RESOURCE_NOT_DELETED" - One or more of the resources set to auto-delete + // could not be deleted + // because they were in use. + // "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is + // ignored. + // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in instance + // group manager is valid as such, but + // its application does not make a lot of sense, because it allows only + // single instance in instance group. + // "UNDECLARED_PROPERTIES" - When undeclared properties in the schema are + // present + // "UNREACHABLE" - A given scope cannot be reached. + 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 []*NodeGroupAggregatedListWarningData `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 or default values are + // omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + 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. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s NodeGroupAggregatedListWarning) MarshalJSON() ([]byte, error) { + type NoMethod NodeGroupAggregatedListWarning + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +type NodeGroupAggregatedListWarningData 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 or default values are + // omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + 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. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s NodeGroupAggregatedListWarningData) MarshalJSON() ([]byte, error) { + type NoMethod NodeGroupAggregatedListWarningData + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +type NodeGroupAutoscalingPolicy struct { + // MaxNodes: The maximum number of nodes that the group should have. Must be + // set if + // autoscaling is enabled. Maximum value allowed is 100. + MaxNodes int64 `json:"maxNodes,omitempty"` + // MinNodes: The minimum number of nodes that the group should have. + MinNodes int64 `json:"minNodes,omitempty"` + // Mode: The autoscaling mode. Set to one of: ON, OFF, + // or ONLY_SCALE_OUT. For more information, see + // Autoscaler modes. + // + // Possible values: + // "MODE_UNSPECIFIED" + // "OFF" - Autoscaling is disabled. + // "ON" - Autocaling is fully enabled. + // "ONLY_SCALE_OUT" - Autoscaling will only scale out and will not remove + // nodes. + Mode string `json:"mode,omitempty"` + // ForceSendFields is a list of field names (e.g. "MaxNodes") to + // unconditionally include in API requests. By default, fields with empty or + // default values are omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + ForceSendFields []string `json:"-"` + // NullFields is a list of field names (e.g. "MaxNodes") to include in API + // requests with the JSON null value. By default, fields with empty values are + // omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s NodeGroupAutoscalingPolicy) MarshalJSON() ([]byte, error) { + type NoMethod NodeGroupAutoscalingPolicy + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +// NodeGroupList: Contains a list of nodeGroups. +type NodeGroupList struct { + // Id: [Output Only] Unique identifier for the resource; defined by the server. + Id string `json:"id,omitempty"` + // Items: A list of NodeGroup resources. + Items []*NodeGroup `json:"items,omitempty"` + // Kind: Output only. [Output Only] Type of resource.Always + // compute#nodeGroupList + // for lists of node groups. + 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 thanmaxResults, 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"` + // SelfLink: Output only. [Output Only] Server-defined URL for this resource. + SelfLink string `json:"selfLink,omitempty"` + // Warning: [Output Only] Informational warning message. + Warning *NodeGroupListWarning `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 or default values are + // omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + 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. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s NodeGroupList) MarshalJSON() ([]byte, error) { + type NoMethod NodeGroupList + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +// NodeGroupListWarning: [Output Only] Informational warning message. +type NodeGroupListWarning 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" - Warning about failed cleanup of transient changes made + // by a failed + // operation. + // "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was created. + // "DEPRECATED_TYPE_USED" - When deploying and at least one of the resources + // has a type marked as + // deprecated + // "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk that is + // larger than image size. + // "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the + // resources has a type marked as + // experimental + // "EXTERNAL_API_WARNING" - Warning that is present in an external api call + // "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been + // overridden. + // Deprecated unused field. + // "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an injected + // kernel, which is deprecated. + // "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB" - A WEIGHTED_MAGLEV backend + // service is associated with a health check that is + // not of type HTTP/HTTPS/HTTP2. + // "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a + // exceedingly large number of resources + // "LIST_OVERHEAD_QUOTA_EXCEED" - Resource can't be retrieved due to list + // overhead quota exceed + // which captures the amount of resources filtered out by + // user-defined list filter. + // "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type + // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is not + // assigned to an instance on the + // network. + // "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot ip + // forward. + // "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE" - The route's nextHopInstance + // URL refers to an instance that does not have an + // ipv6 interface on the same network as the route. + // "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL refers to + // an instance that does not exist. + // "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance URL + // refers to an instance that is not on the + // same network as the route. + // "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not have a + // status of RUNNING. + // "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to continue + // the process despite + // the mentioned error. + // "NO_RESULTS_ON_PAGE" - No results are present on a particular list page. + // "PARTIAL_SUCCESS" - Success is reported, but some results may be missing + // due to errors + // "QUOTA_INFO_UNAVAILABLE" - Quota information is not available to client + // requests (e.g: + // regions.list). + // "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource that + // requires a TOS they have not + // accepted. + // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a resource is + // in use. + // "RESOURCE_NOT_DELETED" - One or more of the resources set to auto-delete + // could not be deleted + // because they were in use. + // "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is + // ignored. + // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in instance + // group manager is valid as such, but + // its application does not make a lot of sense, because it allows only + // single instance in instance group. + // "UNDECLARED_PROPERTIES" - When undeclared properties in the schema are + // present + // "UNREACHABLE" - A given scope cannot be reached. + 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 []*NodeGroupListWarningData `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 or default values are + // omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + 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. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s NodeGroupListWarning) MarshalJSON() ([]byte, error) { + type NoMethod NodeGroupListWarning + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +type NodeGroupListWarningData 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 or default values are + // omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + 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. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s NodeGroupListWarningData) MarshalJSON() ([]byte, error) { + type NoMethod NodeGroupListWarningData + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +// NodeGroupMaintenanceWindow: Time window specified for daily maintenance +// operations. GCE's internal +// maintenance will be performed within this window. +type NodeGroupMaintenanceWindow struct { + // MaintenanceDuration: Output only. [Output only] A predetermined duration for + // the window, automatically + // chosen to be the smallest possible in the given scenario. + MaintenanceDuration *Duration `json:"maintenanceDuration,omitempty"` + // StartTime: Start time of the window. This must be in UTC format that + // resolves to one + // of 00:00, 04:00, 08:00,12:00, 16:00, or 20:00. For + // example, both 13:00-5 and 08:00 are valid. + StartTime string `json:"startTime,omitempty"` + // ForceSendFields is a list of field names (e.g. "MaintenanceDuration") to + // unconditionally include in API requests. By default, fields with empty or + // default values are omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + ForceSendFields []string `json:"-"` + // NullFields is a list of field names (e.g. "MaintenanceDuration") to include + // in API requests with the JSON null value. By default, fields with empty + // values are omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s NodeGroupMaintenanceWindow) MarshalJSON() ([]byte, error) { + type NoMethod NodeGroupMaintenanceWindow + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +type NodeGroupNode struct { + // Accelerators: Accelerators for this node. + Accelerators []*AcceleratorConfig `json:"accelerators,omitempty"` + // ConsumedResources: Output only. Node resources that are reserved by all + // instances. + ConsumedResources *InstanceConsumptionInfo `json:"consumedResources,omitempty"` + // CpuOvercommitType: CPU overcommit. + // + // Possible values: + // "CPU_OVERCOMMIT_TYPE_UNSPECIFIED" + // "ENABLED" + // "NONE" + CpuOvercommitType string `json:"cpuOvercommitType,omitempty"` + // Disks: Local disk configurations. + Disks []*LocalDisk `json:"disks,omitempty"` + // InstanceConsumptionData: Output only. Instance data that shows consumed + // resources on the node. + InstanceConsumptionData []*InstanceConsumptionData `json:"instanceConsumptionData,omitempty"` + // Instances: Instances scheduled on this node. + Instances []string `json:"instances,omitempty"` + // Name: The name of the node. + Name string `json:"name,omitempty"` + // NodeType: The type of this node. + NodeType string `json:"nodeType,omitempty"` + // SatisfiesPzs: Output only. [Output Only] Reserved for future use. + SatisfiesPzs bool `json:"satisfiesPzs,omitempty"` + // ServerBinding: Binding properties for the physical server. + ServerBinding *ServerBinding `json:"serverBinding,omitempty"` + // ServerId: Server ID associated with this node. + ServerId string `json:"serverId,omitempty"` + // Possible values: + // "CREATING" + // "DELETING" + // "INVALID" + // "READY" + // "REPAIRING" + Status string `json:"status,omitempty"` + // TotalResources: Output only. Total amount of available resources on the + // node. + TotalResources *InstanceConsumptionInfo `json:"totalResources,omitempty"` + // UpcomingMaintenance: Output only. [Output Only] The information about an + // upcoming maintenance event. + UpcomingMaintenance *UpcomingMaintenance `json:"upcomingMaintenance,omitempty"` + // ForceSendFields is a list of field names (e.g. "Accelerators") to + // unconditionally include in API requests. By default, fields with empty or + // default values are omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + ForceSendFields []string `json:"-"` + // NullFields is a list of field names (e.g. "Accelerators") to include in API + // requests with the JSON null value. By default, fields with empty values are + // omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s NodeGroupNode) MarshalJSON() ([]byte, error) { + type NoMethod NodeGroupNode + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +type NodeGroupsAddNodesRequest struct { + // AdditionalNodeCount: Count of additional nodes to be added to the node + // group. + AdditionalNodeCount int64 `json:"additionalNodeCount,omitempty"` + // ForceSendFields is a list of field names (e.g. "AdditionalNodeCount") to + // unconditionally include in API requests. By default, fields with empty or + // default values are omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + ForceSendFields []string `json:"-"` + // NullFields is a list of field names (e.g. "AdditionalNodeCount") to include + // in API requests with the JSON null value. By default, fields with empty + // values are omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s NodeGroupsAddNodesRequest) MarshalJSON() ([]byte, error) { + type NoMethod NodeGroupsAddNodesRequest + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +type NodeGroupsDeleteNodesRequest struct { + // Nodes: Names of the nodes to delete. + Nodes []string `json:"nodes,omitempty"` + // ForceSendFields is a list of field names (e.g. "Nodes") to unconditionally + // include in API requests. By default, fields with empty or default values are + // omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + ForceSendFields []string `json:"-"` + // NullFields is a list of field names (e.g. "Nodes") to include in API + // requests with the JSON null value. By default, fields with empty values are + // omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s NodeGroupsDeleteNodesRequest) MarshalJSON() ([]byte, error) { + type NoMethod NodeGroupsDeleteNodesRequest + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +type NodeGroupsListNodes struct { + // Id: Output only. [Output Only] Unique identifier for the resource; defined + // by the server. + Id string `json:"id,omitempty"` + // Items: A list of Node resources. + Items []*NodeGroupNode `json:"items,omitempty"` + // Kind: Output only. [Output Only] The resource type, which is + // alwayscompute.nodeGroupsListNodes for the list of nodes in the + // specified node group. + Kind string `json:"kind,omitempty"` + // NextPageToken: Output only. [Output Only] This token allows you to get the + // next page of results for + // list requests. If the number of results is larger thanmaxResults, 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"` + // SelfLink: Output only. [Output Only] Server-defined URL for this resource. + SelfLink string `json:"selfLink,omitempty"` + // Warning: Output only. [Output Only] Informational warning message. + Warning *NodeGroupsListNodesWarning `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 or default values are + // omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + 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. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s NodeGroupsListNodes) MarshalJSON() ([]byte, error) { + type NoMethod NodeGroupsListNodes + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +// NodeGroupsListNodesWarning: Output only. [Output Only] Informational warning +// message. +type NodeGroupsListNodesWarning 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" - Warning about failed cleanup of transient changes made + // by a failed + // operation. + // "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was created. + // "DEPRECATED_TYPE_USED" - When deploying and at least one of the resources + // has a type marked as + // deprecated + // "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk that is + // larger than image size. + // "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the + // resources has a type marked as + // experimental + // "EXTERNAL_API_WARNING" - Warning that is present in an external api call + // "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been + // overridden. + // Deprecated unused field. + // "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an injected + // kernel, which is deprecated. + // "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB" - A WEIGHTED_MAGLEV backend + // service is associated with a health check that is + // not of type HTTP/HTTPS/HTTP2. + // "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a + // exceedingly large number of resources + // "LIST_OVERHEAD_QUOTA_EXCEED" - Resource can't be retrieved due to list + // overhead quota exceed + // which captures the amount of resources filtered out by + // user-defined list filter. + // "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type + // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is not + // assigned to an instance on the + // network. + // "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot ip + // forward. + // "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE" - The route's nextHopInstance + // URL refers to an instance that does not have an + // ipv6 interface on the same network as the route. + // "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL refers to + // an instance that does not exist. + // "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance URL + // refers to an instance that is not on the + // same network as the route. + // "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not have a + // status of RUNNING. + // "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to continue + // the process despite + // the mentioned error. + // "NO_RESULTS_ON_PAGE" - No results are present on a particular list page. + // "PARTIAL_SUCCESS" - Success is reported, but some results may be missing + // due to errors + // "QUOTA_INFO_UNAVAILABLE" - Quota information is not available to client + // requests (e.g: + // regions.list). + // "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource that + // requires a TOS they have not + // accepted. + // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a resource is + // in use. + // "RESOURCE_NOT_DELETED" - One or more of the resources set to auto-delete + // could not be deleted + // because they were in use. + // "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is + // ignored. + // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in instance + // group manager is valid as such, but + // its application does not make a lot of sense, because it allows only + // single instance in instance group. + // "UNDECLARED_PROPERTIES" - When undeclared properties in the schema are + // present + // "UNREACHABLE" - A given scope cannot be reached. + 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 []*NodeGroupsListNodesWarningData `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 or default values are + // omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + 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. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s NodeGroupsListNodesWarning) MarshalJSON() ([]byte, error) { + type NoMethod NodeGroupsListNodesWarning + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +type NodeGroupsListNodesWarningData 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 or default values are + // omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + 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. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s NodeGroupsListNodesWarningData) MarshalJSON() ([]byte, error) { + type NoMethod NodeGroupsListNodesWarningData + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +type NodeGroupsPerformMaintenanceRequest struct { + // Nodes: [Required] List of nodes affected by the call. + Nodes []string `json:"nodes,omitempty"` + // StartTime: The start time of the schedule. The timestamp is an RFC3339 + // string. + StartTime string `json:"startTime,omitempty"` + // ForceSendFields is a list of field names (e.g. "Nodes") to unconditionally + // include in API requests. By default, fields with empty or default values are + // omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + ForceSendFields []string `json:"-"` + // NullFields is a list of field names (e.g. "Nodes") to include in API + // requests with the JSON null value. By default, fields with empty values are + // omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s NodeGroupsPerformMaintenanceRequest) MarshalJSON() ([]byte, error) { + type NoMethod NodeGroupsPerformMaintenanceRequest + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +type NodeGroupsScopedList struct { + // NodeGroups: [Output Only] A list of node groups contained in this scope. + NodeGroups []*NodeGroup `json:"nodeGroups,omitempty"` + // Warning: [Output Only] An informational warning that appears when the + // nodeGroup + // list is empty. + Warning *NodeGroupsScopedListWarning `json:"warning,omitempty"` + // ForceSendFields is a list of field names (e.g. "NodeGroups") to + // unconditionally include in API requests. By default, fields with empty or + // default values are omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + ForceSendFields []string `json:"-"` + // NullFields is a list of field names (e.g. "NodeGroups") to include in API + // requests with the JSON null value. By default, fields with empty values are + // omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s NodeGroupsScopedList) MarshalJSON() ([]byte, error) { + type NoMethod NodeGroupsScopedList + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +// NodeGroupsScopedListWarning: [Output Only] An informational warning that +// appears when the nodeGroup +// list is empty. +type NodeGroupsScopedListWarning 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" - Warning about failed cleanup of transient changes made + // by a failed + // operation. + // "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was created. + // "DEPRECATED_TYPE_USED" - When deploying and at least one of the resources + // has a type marked as + // deprecated + // "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk that is + // larger than image size. + // "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the + // resources has a type marked as + // experimental + // "EXTERNAL_API_WARNING" - Warning that is present in an external api call + // "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been + // overridden. + // Deprecated unused field. + // "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an injected + // kernel, which is deprecated. + // "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB" - A WEIGHTED_MAGLEV backend + // service is associated with a health check that is + // not of type HTTP/HTTPS/HTTP2. + // "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a + // exceedingly large number of resources + // "LIST_OVERHEAD_QUOTA_EXCEED" - Resource can't be retrieved due to list + // overhead quota exceed + // which captures the amount of resources filtered out by + // user-defined list filter. + // "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type + // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is not + // assigned to an instance on the + // network. + // "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot ip + // forward. + // "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE" - The route's nextHopInstance + // URL refers to an instance that does not have an + // ipv6 interface on the same network as the route. + // "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL refers to + // an instance that does not exist. + // "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance URL + // refers to an instance that is not on the + // same network as the route. + // "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not have a + // status of RUNNING. + // "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to continue + // the process despite + // the mentioned error. + // "NO_RESULTS_ON_PAGE" - No results are present on a particular list page. + // "PARTIAL_SUCCESS" - Success is reported, but some results may be missing + // due to errors + // "QUOTA_INFO_UNAVAILABLE" - Quota information is not available to client + // requests (e.g: + // regions.list). + // "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource that + // requires a TOS they have not + // accepted. + // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a resource is + // in use. + // "RESOURCE_NOT_DELETED" - One or more of the resources set to auto-delete + // could not be deleted + // because they were in use. + // "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is + // ignored. + // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in instance + // group manager is valid as such, but + // its application does not make a lot of sense, because it allows only + // single instance in instance group. + // "UNDECLARED_PROPERTIES" - When undeclared properties in the schema are + // present + // "UNREACHABLE" - A given scope cannot be reached. + 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 []*NodeGroupsScopedListWarningData `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 or default values are + // omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + 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. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s NodeGroupsScopedListWarning) MarshalJSON() ([]byte, error) { + type NoMethod NodeGroupsScopedListWarning + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +type NodeGroupsScopedListWarningData 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 or default values are + // omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + 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. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s NodeGroupsScopedListWarningData) MarshalJSON() ([]byte, error) { + type NoMethod NodeGroupsScopedListWarningData + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +type NodeGroupsSetNodeTemplateRequest struct { + // NodeTemplate: Full or partial URL of the node template resource to be + // updated for this + // node group. + NodeTemplate string `json:"nodeTemplate,omitempty"` + // ForceSendFields is a list of field names (e.g. "NodeTemplate") to + // unconditionally include in API requests. By default, fields with empty or + // default values are omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + ForceSendFields []string `json:"-"` + // NullFields is a list of field names (e.g. "NodeTemplate") to include in API + // requests with the JSON null value. By default, fields with empty values are + // omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s NodeGroupsSetNodeTemplateRequest) MarshalJSON() ([]byte, error) { + type NoMethod NodeGroupsSetNodeTemplateRequest + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +type NodeGroupsSimulateMaintenanceEventRequest struct { + // Nodes: Names of the nodes to go under maintenance simulation. + Nodes []string `json:"nodes,omitempty"` + // ForceSendFields is a list of field names (e.g. "Nodes") to unconditionally + // include in API requests. By default, fields with empty or default values are + // omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + ForceSendFields []string `json:"-"` + // NullFields is a list of field names (e.g. "Nodes") to include in API + // requests with the JSON null value. By default, fields with empty values are + // omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s NodeGroupsSimulateMaintenanceEventRequest) MarshalJSON() ([]byte, error) { + type NoMethod NodeGroupsSimulateMaintenanceEventRequest + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +// NodeTemplate: Represent a sole-tenant Node Template resource. +// +// You can use a template to define properties for nodes in a node group. +// For +// more information, readCreating node groups +// and instances. +type NodeTemplate struct { + Accelerators []*AcceleratorConfig `json:"accelerators,omitempty"` + // CpuOvercommitType: CPU overcommit. + // + // Possible values: + // "CPU_OVERCOMMIT_TYPE_UNSPECIFIED" + // "ENABLED" + // "NONE" + CpuOvercommitType string `json:"cpuOvercommitType,omitempty"` + // CreationTimestamp: Output only. [Output Only] Creation timestamp + // inRFC3339 + // text format. + CreationTimestamp string `json:"creationTimestamp,omitempty"` + // Description: An optional description of this resource. Provide this property + // when you + // create the resource. + Description string `json:"description,omitempty"` + Disks []*LocalDisk `json:"disks,omitempty"` + // Id: Output only. [Output Only] The unique identifier for the resource. This + // identifier is + // defined by the server. + Id uint64 `json:"id,omitempty,string"` + // Kind: Output only. [Output Only] The type of the resource. + // Alwayscompute#nodeTemplate for node templates. + Kind string `json:"kind,omitempty"` + // Name: The name of the resource, provided by the client when initially + // creating + // the resource. The resource name must be 1-63 characters long, and + // comply + // withRFC1035. + // 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. + Name string `json:"name,omitempty"` + // NodeAffinityLabels: Labels to use for node affinity, which will be used in + // instance scheduling. + NodeAffinityLabels map[string]string `json:"nodeAffinityLabels,omitempty"` + // NodeType: The node type to use for nodes group that are created from this + // template. + NodeType string `json:"nodeType,omitempty"` + // NodeTypeFlexibility: Do not use. Instead, use the node_type property. + NodeTypeFlexibility *NodeTemplateNodeTypeFlexibility `json:"nodeTypeFlexibility,omitempty"` + // Region: Output only. [Output Only] The name of the region where the node + // template resides, + // such as us-central1. + Region string `json:"region,omitempty"` + // SelfLink: Output only. [Output Only] Server-defined URL for the resource. + SelfLink string `json:"selfLink,omitempty"` + // ServerBinding: Sets the binding properties for the physical server. Valid + // values include: + // + // - *[Default]* RESTART_NODE_ON_ANY_SERVER: + // Restarts VMs on any available + // physical server + // - RESTART_NODE_ON_MINIMAL_SERVER: Restarts VMs on the same + // physical server whenever possible + // + // + // + // See Sole-tenant + // node options for more information. + ServerBinding *ServerBinding `json:"serverBinding,omitempty"` + // Status: Output only. [Output Only] The status of the node template. One of + // the following values:CREATING, READY, and DELETING. + // + // Possible values: + // "CREATING" - Resources are being allocated. + // "DELETING" - The node template is currently being deleted. + // "INVALID" - Invalid status. + // "READY" - The node template is ready. + Status string `json:"status,omitempty"` + // StatusMessage: Output only. [Output Only] An optional, human-readable + // explanation of the status. + StatusMessage string `json:"statusMessage,omitempty"` + + // ServerResponse contains the HTTP response code and headers from the server. + googleapi.ServerResponse `json:"-"` + // ForceSendFields is a list of field names (e.g. "Accelerators") to + // unconditionally include in API requests. By default, fields with empty or + // default values are omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + ForceSendFields []string `json:"-"` + // NullFields is a list of field names (e.g. "Accelerators") to include in API + // requests with the JSON null value. By default, fields with empty values are + // omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s NodeTemplate) MarshalJSON() ([]byte, error) { + type NoMethod NodeTemplate + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +type NodeTemplateAggregatedList struct { + // Id: [Output Only] Unique identifier for the resource; defined by the server. + Id string `json:"id,omitempty"` + // Items: A list of NodeTemplatesScopedList resources. + Items map[string]NodeTemplatesScopedList `json:"items,omitempty"` + // Kind: Output only. [Output Only] Type of + // resource.Alwayscompute#nodeTemplateAggregatedList for aggregated lists + // of + // node templates. + 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 thanmaxResults, 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"` + // SelfLink: Output only. [Output Only] Server-defined URL for this resource. + SelfLink string `json:"selfLink,omitempty"` + // Unreachables: Output only. [Output Only] Unreachable resources. + Unreachables []string `json:"unreachables,omitempty"` + // Warning: [Output Only] Informational warning message. + Warning *NodeTemplateAggregatedListWarning `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 or default values are + // omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + 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. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s NodeTemplateAggregatedList) MarshalJSON() ([]byte, error) { + type NoMethod NodeTemplateAggregatedList + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +// NodeTemplateAggregatedListWarning: [Output Only] Informational warning +// message. +type NodeTemplateAggregatedListWarning 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" - Warning about failed cleanup of transient changes made + // by a failed + // operation. + // "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was created. + // "DEPRECATED_TYPE_USED" - When deploying and at least one of the resources + // has a type marked as + // deprecated + // "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk that is + // larger than image size. + // "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the + // resources has a type marked as + // experimental + // "EXTERNAL_API_WARNING" - Warning that is present in an external api call + // "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been + // overridden. + // Deprecated unused field. + // "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an injected + // kernel, which is deprecated. + // "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB" - A WEIGHTED_MAGLEV backend + // service is associated with a health check that is + // not of type HTTP/HTTPS/HTTP2. + // "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a + // exceedingly large number of resources + // "LIST_OVERHEAD_QUOTA_EXCEED" - Resource can't be retrieved due to list + // overhead quota exceed + // which captures the amount of resources filtered out by + // user-defined list filter. + // "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type + // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is not + // assigned to an instance on the + // network. + // "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot ip + // forward. + // "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE" - The route's nextHopInstance + // URL refers to an instance that does not have an + // ipv6 interface on the same network as the route. + // "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL refers to + // an instance that does not exist. + // "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance URL + // refers to an instance that is not on the + // same network as the route. + // "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not have a + // status of RUNNING. + // "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to continue + // the process despite + // the mentioned error. + // "NO_RESULTS_ON_PAGE" - No results are present on a particular list page. + // "PARTIAL_SUCCESS" - Success is reported, but some results may be missing + // due to errors + // "QUOTA_INFO_UNAVAILABLE" - Quota information is not available to client + // requests (e.g: + // regions.list). + // "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource that + // requires a TOS they have not + // accepted. + // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a resource is + // in use. + // "RESOURCE_NOT_DELETED" - One or more of the resources set to auto-delete + // could not be deleted + // because they were in use. + // "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is + // ignored. + // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in instance + // group manager is valid as such, but + // its application does not make a lot of sense, because it allows only + // single instance in instance group. + // "UNDECLARED_PROPERTIES" - When undeclared properties in the schema are + // present + // "UNREACHABLE" - A given scope cannot be reached. + 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 []*NodeTemplateAggregatedListWarningData `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 or default values are + // omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + 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. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s NodeTemplateAggregatedListWarning) MarshalJSON() ([]byte, error) { + type NoMethod NodeTemplateAggregatedListWarning + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +type NodeTemplateAggregatedListWarningData 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 or default values are + // omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + 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. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s NodeTemplateAggregatedListWarningData) MarshalJSON() ([]byte, error) { + type NoMethod NodeTemplateAggregatedListWarningData + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +// NodeTemplateList: Contains a list of node templates. +type NodeTemplateList struct { + // Id: [Output Only] Unique identifier for the resource; defined by the server. + Id string `json:"id,omitempty"` + // Items: A list of NodeTemplate resources. + Items []*NodeTemplate `json:"items,omitempty"` + // Kind: Output only. [Output Only] Type of resource.Always + // compute#nodeTemplateList + // for lists of node templates. + 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 thanmaxResults, 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"` + // SelfLink: Output only. [Output Only] Server-defined URL for this resource. + SelfLink string `json:"selfLink,omitempty"` + // Warning: [Output Only] Informational warning message. + Warning *NodeTemplateListWarning `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 or default values are + // omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + 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. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s NodeTemplateList) MarshalJSON() ([]byte, error) { + type NoMethod NodeTemplateList + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +// NodeTemplateListWarning: [Output Only] Informational warning message. +type NodeTemplateListWarning 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" - Warning about failed cleanup of transient changes made + // by a failed + // operation. + // "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was created. + // "DEPRECATED_TYPE_USED" - When deploying and at least one of the resources + // has a type marked as + // deprecated + // "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk that is + // larger than image size. + // "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the + // resources has a type marked as + // experimental + // "EXTERNAL_API_WARNING" - Warning that is present in an external api call + // "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been + // overridden. + // Deprecated unused field. + // "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an injected + // kernel, which is deprecated. + // "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB" - A WEIGHTED_MAGLEV backend + // service is associated with a health check that is + // not of type HTTP/HTTPS/HTTP2. + // "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a + // exceedingly large number of resources + // "LIST_OVERHEAD_QUOTA_EXCEED" - Resource can't be retrieved due to list + // overhead quota exceed + // which captures the amount of resources filtered out by + // user-defined list filter. + // "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type + // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is not + // assigned to an instance on the + // network. + // "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot ip + // forward. + // "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE" - The route's nextHopInstance + // URL refers to an instance that does not have an + // ipv6 interface on the same network as the route. + // "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL refers to + // an instance that does not exist. + // "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance URL + // refers to an instance that is not on the + // same network as the route. + // "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not have a + // status of RUNNING. + // "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to continue + // the process despite + // the mentioned error. + // "NO_RESULTS_ON_PAGE" - No results are present on a particular list page. + // "PARTIAL_SUCCESS" - Success is reported, but some results may be missing + // due to errors + // "QUOTA_INFO_UNAVAILABLE" - Quota information is not available to client + // requests (e.g: + // regions.list). + // "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource that + // requires a TOS they have not + // accepted. + // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a resource is + // in use. + // "RESOURCE_NOT_DELETED" - One or more of the resources set to auto-delete + // could not be deleted + // because they were in use. + // "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is + // ignored. + // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in instance + // group manager is valid as such, but + // its application does not make a lot of sense, because it allows only + // single instance in instance group. + // "UNDECLARED_PROPERTIES" - When undeclared properties in the schema are + // present + // "UNREACHABLE" - A given scope cannot be reached. + 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 []*NodeTemplateListWarningData `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 or default values are + // omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + 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. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s NodeTemplateListWarning) MarshalJSON() ([]byte, error) { + type NoMethod NodeTemplateListWarning + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +type NodeTemplateListWarningData 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 or default values are + // omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + 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. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s NodeTemplateListWarningData) MarshalJSON() ([]byte, error) { + type NoMethod NodeTemplateListWarningData + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +type NodeTemplateNodeTypeFlexibility struct { + Cpus string `json:"cpus,omitempty"` + LocalSsd string `json:"localSsd,omitempty"` + Memory string `json:"memory,omitempty"` + // ForceSendFields is a list of field names (e.g. "Cpus") to unconditionally + // include in API requests. By default, fields with empty or default values are + // omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + ForceSendFields []string `json:"-"` + // NullFields is a list of field names (e.g. "Cpus") to include in API requests + // with the JSON null value. By default, fields with empty values are omitted + // from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s NodeTemplateNodeTypeFlexibility) MarshalJSON() ([]byte, error) { + type NoMethod NodeTemplateNodeTypeFlexibility + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +type NodeTemplatesScopedList struct { + // NodeTemplates: [Output Only] A list of node templates contained in this + // scope. + NodeTemplates []*NodeTemplate `json:"nodeTemplates,omitempty"` + // Warning: [Output Only] An informational warning that appears when the node + // templates + // list is empty. + Warning *NodeTemplatesScopedListWarning `json:"warning,omitempty"` + // ForceSendFields is a list of field names (e.g. "NodeTemplates") to + // unconditionally include in API requests. By default, fields with empty or + // default values are omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + ForceSendFields []string `json:"-"` + // NullFields is a list of field names (e.g. "NodeTemplates") to include in API + // requests with the JSON null value. By default, fields with empty values are + // omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s NodeTemplatesScopedList) MarshalJSON() ([]byte, error) { + type NoMethod NodeTemplatesScopedList + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +// NodeTemplatesScopedListWarning: [Output Only] An informational warning that +// appears when the node templates +// list is empty. +type NodeTemplatesScopedListWarning 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" - Warning about failed cleanup of transient changes made + // by a failed + // operation. + // "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was created. + // "DEPRECATED_TYPE_USED" - When deploying and at least one of the resources + // has a type marked as + // deprecated + // "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk that is + // larger than image size. + // "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the + // resources has a type marked as + // experimental + // "EXTERNAL_API_WARNING" - Warning that is present in an external api call + // "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been + // overridden. + // Deprecated unused field. + // "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an injected + // kernel, which is deprecated. + // "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB" - A WEIGHTED_MAGLEV backend + // service is associated with a health check that is + // not of type HTTP/HTTPS/HTTP2. + // "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a + // exceedingly large number of resources + // "LIST_OVERHEAD_QUOTA_EXCEED" - Resource can't be retrieved due to list + // overhead quota exceed + // which captures the amount of resources filtered out by + // user-defined list filter. + // "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type + // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is not + // assigned to an instance on the + // network. + // "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot ip + // forward. + // "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE" - The route's nextHopInstance + // URL refers to an instance that does not have an + // ipv6 interface on the same network as the route. + // "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL refers to + // an instance that does not exist. + // "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance URL + // refers to an instance that is not on the + // same network as the route. + // "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not have a + // status of RUNNING. + // "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to continue + // the process despite + // the mentioned error. + // "NO_RESULTS_ON_PAGE" - No results are present on a particular list page. + // "PARTIAL_SUCCESS" - Success is reported, but some results may be missing + // due to errors + // "QUOTA_INFO_UNAVAILABLE" - Quota information is not available to client + // requests (e.g: + // regions.list). + // "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource that + // requires a TOS they have not + // accepted. + // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a resource is + // in use. + // "RESOURCE_NOT_DELETED" - One or more of the resources set to auto-delete + // could not be deleted + // because they were in use. + // "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is + // ignored. + // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in instance + // group manager is valid as such, but + // its application does not make a lot of sense, because it allows only + // single instance in instance group. + // "UNDECLARED_PROPERTIES" - When undeclared properties in the schema are + // present + // "UNREACHABLE" - A given scope cannot be reached. + 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 []*NodeTemplatesScopedListWarningData `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 or default values are + // omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + 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. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s NodeTemplatesScopedListWarning) MarshalJSON() ([]byte, error) { + type NoMethod NodeTemplatesScopedListWarning + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +type NodeTemplatesScopedListWarningData 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 or default values are + // omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + 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. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s NodeTemplatesScopedListWarningData) MarshalJSON() ([]byte, error) { + type NoMethod NodeTemplatesScopedListWarningData + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +// NodeType: Represent a sole-tenant Node Type resource. +// +// Each node within a node group must have a node type. A node type +// specifies +// the total amount of cores and memory for that node. Currently, the +// only +// available node type is n1-node-96-624 node type that has 96 +// vCPUs and 624 GB of memory, available in multiple zones. For more +// information +// readNode types. +type NodeType struct { + // CpuPlatform: [Output Only] The CPU platform used by this node type. + CpuPlatform string `json:"cpuPlatform,omitempty"` + // CreationTimestamp: [Output Only] Creation timestamp inRFC3339 + // text format. + CreationTimestamp string `json:"creationTimestamp,omitempty"` + // Deprecated -- [Output Only] The deprecation status associated with this node + // type. + Deprecated *DeprecationStatus `json:"deprecated,omitempty"` + // Description: [Output Only] An optional textual description of the resource. + Description string `json:"description,omitempty"` + // GuestCpus: [Output Only] The number of virtual CPUs that are available to + // the node + // type. + GuestCpus int64 `json:"guestCpus,omitempty"` + // Id: [Output Only] The unique identifier for the resource. This identifier + // is + // defined by the server. + Id uint64 `json:"id,omitempty,string"` + // Kind: Output only. [Output Only] The type of the resource. + // Alwayscompute#nodeType for node types. + Kind string `json:"kind,omitempty"` + // LocalSsdGb: [Output Only] Local SSD available to the node type, defined in + // GB. + LocalSsdGb int64 `json:"localSsdGb,omitempty"` + // MaxVms: Output only. [Output Only] Maximum number of VMs that can be created + // for this node type. + MaxVms int64 `json:"maxVms,omitempty"` + // MemoryMb: [Output Only] The amount of physical memory available to the node + // type, + // defined in MB. + MemoryMb int64 `json:"memoryMb,omitempty"` + // Name: [Output Only] Name of the resource. + Name string `json:"name,omitempty"` + // SelfLink: Output only. [Output Only] Server-defined URL for the resource. + SelfLink string `json:"selfLink,omitempty"` + // Zone: Output only. [Output Only] The name of the zone where the node type + // resides, + // such as us-central1-a. + Zone string `json:"zone,omitempty"` + + // ServerResponse contains the HTTP response code and headers from the server. + googleapi.ServerResponse `json:"-"` + // ForceSendFields is a list of field names (e.g. "CpuPlatform") to + // unconditionally include in API requests. By default, fields with empty or + // default values are omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + ForceSendFields []string `json:"-"` + // NullFields is a list of field names (e.g. "CpuPlatform") to include in API + // requests with the JSON null value. By default, fields with empty values are + // omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s NodeType) MarshalJSON() ([]byte, error) { + type NoMethod NodeType + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +type NodeTypeAggregatedList struct { + // Id: [Output Only] Unique identifier for the resource; defined by the server. + Id string `json:"id,omitempty"` + // Items: A list of NodeTypesScopedList resources. + Items map[string]NodeTypesScopedList `json:"items,omitempty"` + // Kind: Output only. [Output Only] Type of + // resource.Alwayscompute#nodeTypeAggregatedList for aggregated lists of + // node + // types. + 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 thanmaxResults, 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"` + // SelfLink: Output only. [Output Only] Server-defined URL for this resource. + SelfLink string `json:"selfLink,omitempty"` + // Unreachables: Output only. [Output Only] Unreachable resources. + Unreachables []string `json:"unreachables,omitempty"` + // Warning: [Output Only] Informational warning message. + Warning *NodeTypeAggregatedListWarning `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 or default values are + // omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + 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. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s NodeTypeAggregatedList) MarshalJSON() ([]byte, error) { + type NoMethod NodeTypeAggregatedList + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +// NodeTypeAggregatedListWarning: [Output Only] Informational warning message. +type NodeTypeAggregatedListWarning 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" - Warning about failed cleanup of transient changes made + // by a failed + // operation. + // "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was created. + // "DEPRECATED_TYPE_USED" - When deploying and at least one of the resources + // has a type marked as + // deprecated + // "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk that is + // larger than image size. + // "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the + // resources has a type marked as + // experimental + // "EXTERNAL_API_WARNING" - Warning that is present in an external api call + // "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been + // overridden. + // Deprecated unused field. + // "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an injected + // kernel, which is deprecated. + // "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB" - A WEIGHTED_MAGLEV backend + // service is associated with a health check that is + // not of type HTTP/HTTPS/HTTP2. + // "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a + // exceedingly large number of resources + // "LIST_OVERHEAD_QUOTA_EXCEED" - Resource can't be retrieved due to list + // overhead quota exceed + // which captures the amount of resources filtered out by + // user-defined list filter. + // "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type + // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is not + // assigned to an instance on the + // network. + // "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot ip + // forward. + // "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE" - The route's nextHopInstance + // URL refers to an instance that does not have an + // ipv6 interface on the same network as the route. + // "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL refers to + // an instance that does not exist. + // "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance URL + // refers to an instance that is not on the + // same network as the route. + // "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not have a + // status of RUNNING. + // "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to continue + // the process despite + // the mentioned error. + // "NO_RESULTS_ON_PAGE" - No results are present on a particular list page. + // "PARTIAL_SUCCESS" - Success is reported, but some results may be missing + // due to errors + // "QUOTA_INFO_UNAVAILABLE" - Quota information is not available to client + // requests (e.g: + // regions.list). + // "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource that + // requires a TOS they have not + // accepted. + // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a resource is + // in use. + // "RESOURCE_NOT_DELETED" - One or more of the resources set to auto-delete + // could not be deleted + // because they were in use. + // "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is + // ignored. + // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in instance + // group manager is valid as such, but + // its application does not make a lot of sense, because it allows only + // single instance in instance group. + // "UNDECLARED_PROPERTIES" - When undeclared properties in the schema are + // present + // "UNREACHABLE" - A given scope cannot be reached. + 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 []*NodeTypeAggregatedListWarningData `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 or default values are + // omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + 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. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s NodeTypeAggregatedListWarning) MarshalJSON() ([]byte, error) { + type NoMethod NodeTypeAggregatedListWarning + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +type NodeTypeAggregatedListWarningData 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 or default values are + // omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + 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. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s NodeTypeAggregatedListWarningData) MarshalJSON() ([]byte, error) { + type NoMethod NodeTypeAggregatedListWarningData + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +// NodeTypeList: Contains a list of node types. +type NodeTypeList struct { + // Id: [Output Only] Unique identifier for the resource; defined by the server. + Id string `json:"id,omitempty"` + // Items: A list of NodeType resources. + Items []*NodeType `json:"items,omitempty"` + // Kind: Output only. [Output Only] Type of resource.Always + // compute#nodeTypeList for + // lists of node types. + 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 thanmaxResults, 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"` + // SelfLink: Output only. [Output Only] Server-defined URL for this resource. + SelfLink string `json:"selfLink,omitempty"` + // Warning: [Output Only] Informational warning message. + Warning *NodeTypeListWarning `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 or default values are + // omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + 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. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s NodeTypeList) MarshalJSON() ([]byte, error) { + type NoMethod NodeTypeList + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +// NodeTypeListWarning: [Output Only] Informational warning message. +type NodeTypeListWarning 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" - Warning about failed cleanup of transient changes made + // by a failed + // operation. + // "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was created. + // "DEPRECATED_TYPE_USED" - When deploying and at least one of the resources + // has a type marked as + // deprecated + // "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk that is + // larger than image size. + // "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the + // resources has a type marked as + // experimental + // "EXTERNAL_API_WARNING" - Warning that is present in an external api call + // "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been + // overridden. + // Deprecated unused field. + // "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an injected + // kernel, which is deprecated. + // "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB" - A WEIGHTED_MAGLEV backend + // service is associated with a health check that is + // not of type HTTP/HTTPS/HTTP2. + // "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a + // exceedingly large number of resources + // "LIST_OVERHEAD_QUOTA_EXCEED" - Resource can't be retrieved due to list + // overhead quota exceed + // which captures the amount of resources filtered out by + // user-defined list filter. + // "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type + // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is not + // assigned to an instance on the + // network. + // "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot ip + // forward. + // "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE" - The route's nextHopInstance + // URL refers to an instance that does not have an + // ipv6 interface on the same network as the route. + // "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL refers to + // an instance that does not exist. + // "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance URL + // refers to an instance that is not on the + // same network as the route. + // "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not have a + // status of RUNNING. + // "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to continue + // the process despite + // the mentioned error. + // "NO_RESULTS_ON_PAGE" - No results are present on a particular list page. + // "PARTIAL_SUCCESS" - Success is reported, but some results may be missing + // due to errors + // "QUOTA_INFO_UNAVAILABLE" - Quota information is not available to client + // requests (e.g: + // regions.list). + // "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource that + // requires a TOS they have not + // accepted. + // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a resource is + // in use. + // "RESOURCE_NOT_DELETED" - One or more of the resources set to auto-delete + // could not be deleted + // because they were in use. + // "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is + // ignored. + // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in instance + // group manager is valid as such, but + // its application does not make a lot of sense, because it allows only + // single instance in instance group. + // "UNDECLARED_PROPERTIES" - When undeclared properties in the schema are + // present + // "UNREACHABLE" - A given scope cannot be reached. + 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 []*NodeTypeListWarningData `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 or default values are + // omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + 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. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s NodeTypeListWarning) MarshalJSON() ([]byte, error) { + type NoMethod NodeTypeListWarning + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +type NodeTypeListWarningData 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 or default values are + // omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + 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. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s NodeTypeListWarningData) MarshalJSON() ([]byte, error) { + type NoMethod NodeTypeListWarningData + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +type NodeTypesScopedList struct { + // NodeTypes: [Output Only] A list of node types contained in this scope. + NodeTypes []*NodeType `json:"nodeTypes,omitempty"` + // Warning: [Output Only] An informational warning that appears when the node + // types + // list is empty. + Warning *NodeTypesScopedListWarning `json:"warning,omitempty"` + // ForceSendFields is a list of field names (e.g. "NodeTypes") to + // unconditionally include in API requests. By default, fields with empty or + // default values are omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + ForceSendFields []string `json:"-"` + // NullFields is a list of field names (e.g. "NodeTypes") to include in API + // requests with the JSON null value. By default, fields with empty values are + // omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s NodeTypesScopedList) MarshalJSON() ([]byte, error) { + type NoMethod NodeTypesScopedList + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +// NodeTypesScopedListWarning: [Output Only] An informational warning that +// appears when the node types +// list is empty. +type NodeTypesScopedListWarning 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" - Warning about failed cleanup of transient changes made + // by a failed + // operation. + // "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was created. + // "DEPRECATED_TYPE_USED" - When deploying and at least one of the resources + // has a type marked as + // deprecated + // "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk that is + // larger than image size. + // "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the + // resources has a type marked as + // experimental + // "EXTERNAL_API_WARNING" - Warning that is present in an external api call + // "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been + // overridden. + // Deprecated unused field. + // "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an injected + // kernel, which is deprecated. + // "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB" - A WEIGHTED_MAGLEV backend + // service is associated with a health check that is + // not of type HTTP/HTTPS/HTTP2. + // "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a + // exceedingly large number of resources + // "LIST_OVERHEAD_QUOTA_EXCEED" - Resource can't be retrieved due to list + // overhead quota exceed + // which captures the amount of resources filtered out by + // user-defined list filter. + // "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type + // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is not + // assigned to an instance on the + // network. + // "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot ip + // forward. + // "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE" - The route's nextHopInstance + // URL refers to an instance that does not have an + // ipv6 interface on the same network as the route. + // "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL refers to + // an instance that does not exist. + // "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance URL + // refers to an instance that is not on the + // same network as the route. + // "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not have a + // status of RUNNING. + // "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to continue + // the process despite + // the mentioned error. + // "NO_RESULTS_ON_PAGE" - No results are present on a particular list page. + // "PARTIAL_SUCCESS" - Success is reported, but some results may be missing + // due to errors + // "QUOTA_INFO_UNAVAILABLE" - Quota information is not available to client + // requests (e.g: + // regions.list). + // "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource that + // requires a TOS they have not + // accepted. + // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a resource is + // in use. + // "RESOURCE_NOT_DELETED" - One or more of the resources set to auto-delete + // could not be deleted + // because they were in use. + // "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is + // ignored. + // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in instance + // group manager is valid as such, but + // its application does not make a lot of sense, because it allows only + // single instance in instance group. + // "UNDECLARED_PROPERTIES" - When undeclared properties in the schema are + // present + // "UNREACHABLE" - A given scope cannot be reached. + 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 []*NodeTypesScopedListWarningData `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 or default values are + // omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + 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. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s NodeTypesScopedListWarning) MarshalJSON() ([]byte, error) { + type NoMethod NodeTypesScopedListWarning + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +type NodeTypesScopedListWarningData 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 or default values are + // omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + 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. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s NodeTypesScopedListWarningData) MarshalJSON() ([]byte, error) { + type NoMethod NodeTypesScopedListWarningData + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +// NotificationEndpoint: Represents a notification endpoint. +// +// A notification endpoint resource defines an endpoint to receive +// notifications +// when there are status changes detected by the associated health +// check +// service. +// +// For more information, see +// Health checks overview. +type NotificationEndpoint struct { + // CreationTimestamp: Output only. [Output Only] Creation timestamp + // inRFC3339 + // text format. + CreationTimestamp string `json:"creationTimestamp,omitempty"` + // Description: An optional description of this resource. Provide this property + // when you + // create the resource. + Description string `json:"description,omitempty"` + // GrpcSettings: Settings of the gRPC notification endpoint including the + // endpoint URL and + // the retry duration. + GrpcSettings *NotificationEndpointGrpcSettings `json:"grpcSettings,omitempty"` + // Id: Output only. [Output Only] A unique identifier for this resource type. + // The server + // generates this identifier. + Id uint64 `json:"id,omitempty,string"` + // Kind: Output only. [Output Only] Type of the resource. + // Alwayscompute#notificationEndpoint for notification endpoints. + Kind string `json:"kind,omitempty"` + // Name: Name of the resource. Provided by the client when the resource is + // created. + // The name must be 1-63 characters long, and comply withRFC1035. + // 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. + Name string `json:"name,omitempty"` + // Region: Output only. [Output Only] URL of the region where the notification + // endpoint resides. + // This field applies only to the regional resource. You must specify + // this + // field as part of the HTTP request URL. It is not settable as a field in + // the request body. + Region string `json:"region,omitempty"` + // SelfLink: Output only. [Output Only] Server-defined URL for the resource. + SelfLink string `json:"selfLink,omitempty"` + + // ServerResponse contains the HTTP response code and headers from the server. + googleapi.ServerResponse `json:"-"` + // ForceSendFields is a list of field names (e.g. "CreationTimestamp") to + // unconditionally include in API requests. By default, fields with empty or + // default values are omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + ForceSendFields []string `json:"-"` + // NullFields is a list of field names (e.g. "CreationTimestamp") to include in + // API requests with the JSON null value. By default, fields with empty values + // are omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s NotificationEndpoint) MarshalJSON() ([]byte, error) { + type NoMethod NotificationEndpoint + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +// NotificationEndpointAggregatedList: Contains a list of +// NotificationEndpointsScopedList. +type NotificationEndpointAggregatedList struct { + // Id: [Output Only] Unique identifier for the resource; defined by the server. + Id string `json:"id,omitempty"` + // Items: A list of NotificationEndpointsScopedList resources. + Items map[string]NotificationEndpointsScopedList `json:"items,omitempty"` + // Kind: Output only. Type of resource. + 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 thanmaxResults, 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"` + // SelfLink: Output only. [Output Only] Server-defined URL for this resource. + SelfLink string `json:"selfLink,omitempty"` + // Unreachables: Output only. [Output Only] Unreachable resources. + Unreachables []string `json:"unreachables,omitempty"` + // Warning: [Output Only] Informational warning message. + Warning *NotificationEndpointAggregatedListWarning `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 or default values are + // omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + 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. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s NotificationEndpointAggregatedList) MarshalJSON() ([]byte, error) { + type NoMethod NotificationEndpointAggregatedList + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +// NotificationEndpointAggregatedListWarning: [Output Only] Informational +// warning message. +type NotificationEndpointAggregatedListWarning 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" - Warning about failed cleanup of transient changes made + // by a failed + // operation. + // "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was created. + // "DEPRECATED_TYPE_USED" - When deploying and at least one of the resources + // has a type marked as + // deprecated + // "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk that is + // larger than image size. + // "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the + // resources has a type marked as + // experimental + // "EXTERNAL_API_WARNING" - Warning that is present in an external api call + // "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been + // overridden. + // Deprecated unused field. + // "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an injected + // kernel, which is deprecated. + // "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB" - A WEIGHTED_MAGLEV backend + // service is associated with a health check that is + // not of type HTTP/HTTPS/HTTP2. + // "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a + // exceedingly large number of resources + // "LIST_OVERHEAD_QUOTA_EXCEED" - Resource can't be retrieved due to list + // overhead quota exceed + // which captures the amount of resources filtered out by + // user-defined list filter. + // "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type + // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is not + // assigned to an instance on the + // network. + // "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot ip + // forward. + // "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE" - The route's nextHopInstance + // URL refers to an instance that does not have an + // ipv6 interface on the same network as the route. + // "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL refers to + // an instance that does not exist. + // "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance URL + // refers to an instance that is not on the + // same network as the route. + // "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not have a + // status of RUNNING. + // "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to continue + // the process despite + // the mentioned error. + // "NO_RESULTS_ON_PAGE" - No results are present on a particular list page. + // "PARTIAL_SUCCESS" - Success is reported, but some results may be missing + // due to errors + // "QUOTA_INFO_UNAVAILABLE" - Quota information is not available to client + // requests (e.g: + // regions.list). + // "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource that + // requires a TOS they have not + // accepted. + // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a resource is + // in use. + // "RESOURCE_NOT_DELETED" - One or more of the resources set to auto-delete + // could not be deleted + // because they were in use. + // "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is + // ignored. + // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in instance + // group manager is valid as such, but + // its application does not make a lot of sense, because it allows only + // single instance in instance group. + // "UNDECLARED_PROPERTIES" - When undeclared properties in the schema are + // present + // "UNREACHABLE" - A given scope cannot be reached. + 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 []*NotificationEndpointAggregatedListWarningData `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 or default values are + // omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + 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. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s NotificationEndpointAggregatedListWarning) MarshalJSON() ([]byte, error) { + type NoMethod NotificationEndpointAggregatedListWarning + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +type NotificationEndpointAggregatedListWarningData 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 or default values are + // omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + 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. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s NotificationEndpointAggregatedListWarningData) MarshalJSON() ([]byte, error) { + type NoMethod NotificationEndpointAggregatedListWarningData + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +// NotificationEndpointGrpcSettings: Represents a gRPC setting that describes +// one gRPC notification endpoint and +// the retry duration attempting to send notification to this endpoint. +type NotificationEndpointGrpcSettings struct { + // Authority: Optional. If specified, this field is used to set the authority + // header by + // the sender of notifications. + // See + // https://tools.ietf.org/html/rfc7540#section-8.1.2.3 + Authority string `json:"authority,omitempty"` + // Endpoint: Endpoint to which gRPC notifications are sent. This must be a + // valid + // gRPCLB DNS name. + Endpoint string `json:"endpoint,omitempty"` + // PayloadName: Optional. If specified, this field is used to populate the + // "name" field + // in gRPC requests. + PayloadName string `json:"payloadName,omitempty"` + // ResendInterval: Optional. This field is used to configure how often to send + // a full update + // of all non-healthy backends. If unspecified, full updates are not sent. + // If specified, must be in the range between 600 seconds to 3600 + // seconds. + // Nanos are disallowed. Can only be set for regional notification + // endpoints. + ResendInterval *Duration `json:"resendInterval,omitempty"` + // RetryDurationSec: How much time (in seconds) is spent attempting + // notification retries + // until a successful response is received. Default is 30s. Limit is + // 20m + // (1200s). Must be a positive number. + RetryDurationSec int64 `json:"retryDurationSec,omitempty"` + // ForceSendFields is a list of field names (e.g. "Authority") to + // unconditionally include in API requests. By default, fields with empty or + // default values are omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + ForceSendFields []string `json:"-"` + // NullFields is a list of field names (e.g. "Authority") to include in API + // requests with the JSON null value. By default, fields with empty values are + // omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s NotificationEndpointGrpcSettings) MarshalJSON() ([]byte, error) { + type NoMethod NotificationEndpointGrpcSettings + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +type NotificationEndpointList struct { + // Id: [Output Only] Unique identifier for the resource; defined by the server. + Id string `json:"id,omitempty"` + // Items: A list of NotificationEndpoint resources. + Items []*NotificationEndpoint `json:"items,omitempty"` + // Kind: Output only. [Output Only] Type of the resource. + // Alwayscompute#notificationEndpoint for notification 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 thanmaxResults, 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"` + // SelfLink: [Output Only] Server-defined URL for this resource. + SelfLink string `json:"selfLink,omitempty"` + // Warning: [Output Only] Informational warning message. + Warning *NotificationEndpointListWarning `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 or default values are + // omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + 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. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s NotificationEndpointList) MarshalJSON() ([]byte, error) { + type NoMethod NotificationEndpointList + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +// NotificationEndpointListWarning: [Output Only] Informational warning +// message. +type NotificationEndpointListWarning 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" - Warning about failed cleanup of transient changes made + // by a failed + // operation. + // "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was created. + // "DEPRECATED_TYPE_USED" - When deploying and at least one of the resources + // has a type marked as + // deprecated + // "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk that is + // larger than image size. + // "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the + // resources has a type marked as + // experimental + // "EXTERNAL_API_WARNING" - Warning that is present in an external api call + // "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been + // overridden. + // Deprecated unused field. + // "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an injected + // kernel, which is deprecated. + // "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB" - A WEIGHTED_MAGLEV backend + // service is associated with a health check that is + // not of type HTTP/HTTPS/HTTP2. + // "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a + // exceedingly large number of resources + // "LIST_OVERHEAD_QUOTA_EXCEED" - Resource can't be retrieved due to list + // overhead quota exceed + // which captures the amount of resources filtered out by + // user-defined list filter. + // "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type + // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is not + // assigned to an instance on the + // network. + // "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot ip + // forward. + // "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE" - The route's nextHopInstance + // URL refers to an instance that does not have an + // ipv6 interface on the same network as the route. + // "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL refers to + // an instance that does not exist. + // "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance URL + // refers to an instance that is not on the + // same network as the route. + // "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not have a + // status of RUNNING. + // "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to continue + // the process despite + // the mentioned error. + // "NO_RESULTS_ON_PAGE" - No results are present on a particular list page. + // "PARTIAL_SUCCESS" - Success is reported, but some results may be missing + // due to errors + // "QUOTA_INFO_UNAVAILABLE" - Quota information is not available to client + // requests (e.g: + // regions.list). + // "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource that + // requires a TOS they have not + // accepted. + // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a resource is + // in use. + // "RESOURCE_NOT_DELETED" - One or more of the resources set to auto-delete + // could not be deleted + // because they were in use. + // "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is + // ignored. + // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in instance + // group manager is valid as such, but + // its application does not make a lot of sense, because it allows only + // single instance in instance group. + // "UNDECLARED_PROPERTIES" - When undeclared properties in the schema are + // present + // "UNREACHABLE" - A given scope cannot be reached. + 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 []*NotificationEndpointListWarningData `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 or default values are + // omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + 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. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s NotificationEndpointListWarning) MarshalJSON() ([]byte, error) { + type NoMethod NotificationEndpointListWarning + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +type NotificationEndpointListWarningData 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 or default values are + // omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + 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. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s NotificationEndpointListWarningData) MarshalJSON() ([]byte, error) { + type NoMethod NotificationEndpointListWarningData + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +type NotificationEndpointsScopedList struct { + // Resources: A list of NotificationEndpoints contained in this scope. + Resources []*NotificationEndpoint `json:"resources,omitempty"` + // Warning: Informational warning which replaces the list of + // notification endpoints when the list is empty. + Warning *NotificationEndpointsScopedListWarning `json:"warning,omitempty"` + // ForceSendFields is a list of field names (e.g. "Resources") to + // unconditionally include in API requests. By default, fields with empty or + // default values are omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + ForceSendFields []string `json:"-"` + // NullFields is a list of field names (e.g. "Resources") to include in API + // requests with the JSON null value. By default, fields with empty values are + // omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s NotificationEndpointsScopedList) MarshalJSON() ([]byte, error) { + type NoMethod NotificationEndpointsScopedList + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +// NotificationEndpointsScopedListWarning: Informational warning which replaces +// the list of +// notification endpoints when the list is empty. +type NotificationEndpointsScopedListWarning 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" - Warning about failed cleanup of transient changes made + // by a failed + // operation. + // "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was created. + // "DEPRECATED_TYPE_USED" - When deploying and at least one of the resources + // has a type marked as + // deprecated + // "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk that is + // larger than image size. + // "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the + // resources has a type marked as + // experimental + // "EXTERNAL_API_WARNING" - Warning that is present in an external api call + // "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been + // overridden. + // Deprecated unused field. + // "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an injected + // kernel, which is deprecated. + // "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB" - A WEIGHTED_MAGLEV backend + // service is associated with a health check that is + // not of type HTTP/HTTPS/HTTP2. + // "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a + // exceedingly large number of resources + // "LIST_OVERHEAD_QUOTA_EXCEED" - Resource can't be retrieved due to list + // overhead quota exceed + // which captures the amount of resources filtered out by + // user-defined list filter. + // "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type + // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is not + // assigned to an instance on the + // network. + // "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot ip + // forward. + // "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE" - The route's nextHopInstance + // URL refers to an instance that does not have an + // ipv6 interface on the same network as the route. + // "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL refers to + // an instance that does not exist. + // "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance URL + // refers to an instance that is not on the + // same network as the route. + // "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not have a + // status of RUNNING. + // "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to continue + // the process despite + // the mentioned error. + // "NO_RESULTS_ON_PAGE" - No results are present on a particular list page. + // "PARTIAL_SUCCESS" - Success is reported, but some results may be missing + // due to errors + // "QUOTA_INFO_UNAVAILABLE" - Quota information is not available to client + // requests (e.g: + // regions.list). + // "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource that + // requires a TOS they have not + // accepted. + // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a resource is + // in use. + // "RESOURCE_NOT_DELETED" - One or more of the resources set to auto-delete + // could not be deleted + // because they were in use. + // "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is + // ignored. + // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in instance + // group manager is valid as such, but + // its application does not make a lot of sense, because it allows only + // single instance in instance group. + // "UNDECLARED_PROPERTIES" - When undeclared properties in the schema are + // present + // "UNREACHABLE" - A given scope cannot be reached. + 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 []*NotificationEndpointsScopedListWarningData `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 or default values are + // omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + 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. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s NotificationEndpointsScopedListWarning) MarshalJSON() ([]byte, error) { + type NoMethod NotificationEndpointsScopedListWarning + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +type NotificationEndpointsScopedListWarningData 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 or default values are + // omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + 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. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s NotificationEndpointsScopedListWarningData) MarshalJSON() ([]byte, error) { + type NoMethod NotificationEndpointsScopedListWarningData + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +// Operation: Represents an Operation resource. +// +// Google Compute Engine has three Operation resources: +// +// * Global (/compute/docs/reference/rest/v1/globalOperations) +// * Regional (/compute/docs/reference/rest/v1/regionOperations) +// * Zonal (/compute/docs/reference/rest/v1/zoneOperations) +// +// You can use an operation resource to manage asynchronous API requests. +// For more information, readHandling +// API responses. +// +// Operations can be global, regional or zonal. +// +// - For global operations, use the `globalOperations` +// resource. +// - For regional operations, use the +// `regionOperations` resource. +// - For zonal operations, use +// the `zoneOperations` resource. +// +// For more information, read +// Global, Regional, and Zonal Resources. +// +// Note that completed Operation resources have a limited +// retention period. +type Operation struct { + // ClientOperationId: [Output Only] The value of `requestId` if you provided it + // in the request. + // Not present otherwise. + ClientOperationId string `json:"clientOperationId,omitempty"` + // CreationTimestamp: [Deprecated] This field is deprecated. + CreationTimestamp string `json:"creationTimestamp,omitempty"` + // Description: [Output Only] A textual description of the operation, which + // is + // set when the operation is created. + Description string `json:"description,omitempty"` + // EndTime: [Output Only] The time that this operation was completed. This + // value is inRFC3339 + // text format. + EndTime string `json:"endTime,omitempty"` + // Error: [Output Only] If errors are generated during processing of the + // operation, + // this field will be populated. + Error *OperationError `json:"error,omitempty"` + GetVersionOperationMetadata *GetVersionOperationMetadata `json:"getVersionOperationMetadata,omitempty"` + // HttpErrorMessage: [Output Only] If the operation fails, this field contains + // the HTTP error + // message that was returned, such as `NOT FOUND`. + HttpErrorMessage string `json:"httpErrorMessage,omitempty"` + // HttpErrorStatusCode: [Output Only] If the operation fails, this field + // contains the HTTP error + // status code that was returned. For example, a `404` means the + // resource was not found. + HttpErrorStatusCode int64 `json:"httpErrorStatusCode,omitempty"` + // Id: [Output Only] The unique identifier for the operation. This identifier + // is + // defined by the server. + Id uint64 `json:"id,omitempty,string"` + // InsertTime: [Output Only] The time that this operation was requested. + // This value is inRFC3339 + // text format. + InsertTime string `json:"insertTime,omitempty"` + InstancesBulkInsertOperationMetadata *InstancesBulkInsertOperationMetadata `json:"instancesBulkInsertOperationMetadata,omitempty"` + // Kind: Output only. [Output Only] Type of the resource. Always + // `compute#operation` for + // Operation resources. + Kind string `json:"kind,omitempty"` + // Name: [Output Only] Name of the operation. + Name string `json:"name,omitempty"` + // OperationGroupId: Output only. [Output Only] An ID that represents a group + // of operations, such as when a + // group of operations results from a `bulkInsert` API request. + OperationGroupId string `json:"operationGroupId,omitempty"` + // OperationType: [Output Only] The type of operation, such as + // `insert`, + // `update`, or `delete`, and so on. + OperationType string `json:"operationType,omitempty"` + // Progress: [Output Only] An optional progress indicator that ranges from 0 to + // 100. + // There is no requirement that this be linear or support any granularity + // of + // operations. This should not be used to guess when the operation will + // be + // complete. This number should monotonically increase as the + // operation + // progresses. + Progress int64 `json:"progress,omitempty"` + // Region: [Output Only] The URL of the region where the operation resides. + // Only + // applicable when performing regional operations. + Region string `json:"region,omitempty"` + // SelfLink: [Output Only] Server-defined URL for the resource. + SelfLink string `json:"selfLink,omitempty"` + // SetCommonInstanceMetadataOperationMetadata: Output only. [Output Only] If + // the operation is for projects.setCommonInstanceMetadata, + // this field will contain information on all underlying zonal actions + // and + // their state. + SetCommonInstanceMetadataOperationMetadata *SetCommonInstanceMetadataOperationMetadata `json:"setCommonInstanceMetadataOperationMetadata,omitempty"` + // StartTime: [Output Only] The time that this operation was started by the + // server. + // This value is inRFC3339 + // text format. + StartTime string `json:"startTime,omitempty"` + // Status: [Output Only] The status of the operation, which can be one of + // the + // following: + // `PENDING`, `RUNNING`, or `DONE`. + // + // Possible values: + // "DONE" + // "PENDING" + // "RUNNING" + Status string `json:"status,omitempty"` + // StatusMessage: [Output Only] An optional textual description of the current + // status of the + // operation. + StatusMessage string `json:"statusMessage,omitempty"` + // TargetId: [Output Only] The unique target ID, which identifies a specific + // incarnation + // of the target resource. + TargetId uint64 `json:"targetId,omitempty,string"` + // TargetLink: [Output Only] The URL of the resource that the operation + // modifies. For + // operations related to creating a snapshot, this points to the disk + // that the snapshot was created from. + TargetLink string `json:"targetLink,omitempty"` + // User: [Output Only] User who requested the operation, for + // example: + // `user@example.com` or + // `alice_smith_identifier (global/workforcePools/example-com-us-employees)`. + User string `json:"user,omitempty"` + // Warnings: [Output Only] If warning messages are generated during processing + // of the + // operation, this field will be populated. + Warnings []*OperationWarnings `json:"warnings,omitempty"` + // Zone: [Output Only] The URL of the zone where the operation resides. + // Only + // applicable when performing per-zone operations. + Zone string `json:"zone,omitempty"` + + // ServerResponse contains the HTTP response code and headers from the server. + googleapi.ServerResponse `json:"-"` + // ForceSendFields is a list of field names (e.g. "ClientOperationId") to + // unconditionally include in API requests. By default, fields with empty or + // default values are omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + ForceSendFields []string `json:"-"` + // NullFields is a list of field names (e.g. "ClientOperationId") to include in + // API requests with the JSON null value. By default, fields with empty values + // are omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s Operation) MarshalJSON() ([]byte, error) { + type NoMethod Operation + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +// OperationError: [Output Only] If errors are generated during processing of +// the operation, +// this field will be populated. +type OperationError struct { + // Errors: [Output Only] The array of errors encountered while processing + // this + // operation. + Errors []*OperationErrorErrors `json:"errors,omitempty"` + // ForceSendFields is a list of field names (e.g. "Errors") to unconditionally + // include in API requests. By default, fields with empty or default values are + // omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + ForceSendFields []string `json:"-"` + // NullFields is a list of field names (e.g. "Errors") to include in API + // requests with the JSON null value. By default, fields with empty values are + // omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s OperationError) MarshalJSON() ([]byte, error) { + type NoMethod OperationError + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +type OperationErrorErrors struct { + // Code: [Output Only] The error type identifier for this error. + Code string `json:"code,omitempty"` + // ErrorDetails: [Output Only] An optional list of messages that contain the + // error + // details. There is a set of defined message types to use for + // providing + // details.The syntax depends on the error code. For example, + // QuotaExceededInfo will have details when the error code is + // QUOTA_EXCEEDED. + ErrorDetails []*OperationErrorErrorsErrorDetails `json:"errorDetails,omitempty"` + // Location: [Output Only] Indicates the field in the request that caused the + // error. + // This property is optional. + Location string `json:"location,omitempty"` + // Message: [Output Only] An optional, human-readable error message. + 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 or default values are + // omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + 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. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s OperationErrorErrors) MarshalJSON() ([]byte, error) { + type NoMethod OperationErrorErrors + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +type OperationErrorErrorsErrorDetails struct { + ErrorInfo *ErrorInfo `json:"errorInfo,omitempty"` + Help *Help `json:"help,omitempty"` + LocalizedMessage *LocalizedMessage `json:"localizedMessage,omitempty"` + QuotaInfo *QuotaExceededInfo `json:"quotaInfo,omitempty"` + // ForceSendFields is a list of field names (e.g. "ErrorInfo") to + // unconditionally include in API requests. By default, fields with empty or + // default values are omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + ForceSendFields []string `json:"-"` + // NullFields is a list of field names (e.g. "ErrorInfo") to include in API + // requests with the JSON null value. By default, fields with empty values are + // omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s OperationErrorErrorsErrorDetails) MarshalJSON() ([]byte, error) { + type NoMethod OperationErrorErrorsErrorDetails + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +type OperationWarnings 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" - Warning about failed cleanup of transient changes made + // by a failed + // operation. + // "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was created. + // "DEPRECATED_TYPE_USED" - When deploying and at least one of the resources + // has a type marked as + // deprecated + // "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk that is + // larger than image size. + // "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the + // resources has a type marked as + // experimental + // "EXTERNAL_API_WARNING" - Warning that is present in an external api call + // "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been + // overridden. + // Deprecated unused field. + // "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an injected + // kernel, which is deprecated. + // "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB" - A WEIGHTED_MAGLEV backend + // service is associated with a health check that is + // not of type HTTP/HTTPS/HTTP2. + // "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a + // exceedingly large number of resources + // "LIST_OVERHEAD_QUOTA_EXCEED" - Resource can't be retrieved due to list + // overhead quota exceed + // which captures the amount of resources filtered out by + // user-defined list filter. + // "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type + // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is not + // assigned to an instance on the + // network. + // "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot ip + // forward. + // "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE" - The route's nextHopInstance + // URL refers to an instance that does not have an + // ipv6 interface on the same network as the route. + // "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL refers to + // an instance that does not exist. + // "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance URL + // refers to an instance that is not on the + // same network as the route. + // "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not have a + // status of RUNNING. + // "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to continue + // the process despite + // the mentioned error. + // "NO_RESULTS_ON_PAGE" - No results are present on a particular list page. + // "PARTIAL_SUCCESS" - Success is reported, but some results may be missing + // due to errors + // "QUOTA_INFO_UNAVAILABLE" - Quota information is not available to client + // requests (e.g: + // regions.list). + // "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource that + // requires a TOS they have not + // accepted. + // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a resource is + // in use. + // "RESOURCE_NOT_DELETED" - One or more of the resources set to auto-delete + // could not be deleted + // because they were in use. + // "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is + // ignored. + // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in instance + // group manager is valid as such, but + // its application does not make a lot of sense, because it allows only + // single instance in instance group. + // "UNDECLARED_PROPERTIES" - When undeclared properties in the schema are + // present + // "UNREACHABLE" - A given scope cannot be reached. + 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 []*OperationWarningsData `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 or default values are + // omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + 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. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s OperationWarnings) MarshalJSON() ([]byte, error) { + type NoMethod OperationWarnings + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +type OperationWarningsData 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 or default values are + // omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + 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. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s OperationWarningsData) MarshalJSON() ([]byte, error) { + type NoMethod OperationWarningsData + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +type OperationAggregatedList struct { + // Id: [Output Only] The unique identifier for the resource. This identifier + // is + // defined by the server. + Id string `json:"id,omitempty"` + // Items: [Output Only] A map of scoped operation lists. + Items map[string]OperationsScopedList `json:"items,omitempty"` + // Kind: Output only. [Output Only] Type of resource. Always + // `compute#operationAggregatedList` + // for aggregated lists of operations. + 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"` + // SelfLink: [Output Only] Server-defined URL for this resource. + SelfLink string `json:"selfLink,omitempty"` + // Unreachables: Output only. [Output Only] Unreachable resources. + Unreachables []string `json:"unreachables,omitempty"` + // Warning: [Output Only] Informational warning message. + Warning *OperationAggregatedListWarning `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 or default values are + // omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + 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. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s OperationAggregatedList) MarshalJSON() ([]byte, error) { + type NoMethod OperationAggregatedList + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +// OperationAggregatedListWarning: [Output Only] Informational warning message. +type OperationAggregatedListWarning 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" - Warning about failed cleanup of transient changes made + // by a failed + // operation. + // "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was created. + // "DEPRECATED_TYPE_USED" - When deploying and at least one of the resources + // has a type marked as + // deprecated + // "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk that is + // larger than image size. + // "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the + // resources has a type marked as + // experimental + // "EXTERNAL_API_WARNING" - Warning that is present in an external api call + // "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been + // overridden. + // Deprecated unused field. + // "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an injected + // kernel, which is deprecated. + // "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB" - A WEIGHTED_MAGLEV backend + // service is associated with a health check that is + // not of type HTTP/HTTPS/HTTP2. + // "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a + // exceedingly large number of resources + // "LIST_OVERHEAD_QUOTA_EXCEED" - Resource can't be retrieved due to list + // overhead quota exceed + // which captures the amount of resources filtered out by + // user-defined list filter. + // "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type + // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is not + // assigned to an instance on the + // network. + // "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot ip + // forward. + // "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE" - The route's nextHopInstance + // URL refers to an instance that does not have an + // ipv6 interface on the same network as the route. + // "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL refers to + // an instance that does not exist. + // "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance URL + // refers to an instance that is not on the + // same network as the route. + // "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not have a + // status of RUNNING. + // "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to continue + // the process despite + // the mentioned error. + // "NO_RESULTS_ON_PAGE" - No results are present on a particular list page. + // "PARTIAL_SUCCESS" - Success is reported, but some results may be missing + // due to errors + // "QUOTA_INFO_UNAVAILABLE" - Quota information is not available to client + // requests (e.g: + // regions.list). + // "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource that + // requires a TOS they have not + // accepted. + // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a resource is + // in use. + // "RESOURCE_NOT_DELETED" - One or more of the resources set to auto-delete + // could not be deleted + // because they were in use. + // "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is + // ignored. + // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in instance + // group manager is valid as such, but + // its application does not make a lot of sense, because it allows only + // single instance in instance group. + // "UNDECLARED_PROPERTIES" - When undeclared properties in the schema are + // present + // "UNREACHABLE" - A given scope cannot be reached. + 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 []*OperationAggregatedListWarningData `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 or default values are + // omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + 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. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s OperationAggregatedListWarning) MarshalJSON() ([]byte, error) { + type NoMethod OperationAggregatedListWarning + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +type OperationAggregatedListWarningData 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 or default values are + // omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + 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. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s OperationAggregatedListWarningData) MarshalJSON() ([]byte, error) { + type NoMethod OperationAggregatedListWarningData + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +// OperationList: Contains a list of Operation resources. +type OperationList struct { + // Id: [Output Only] The unique identifier for the resource. This identifier + // is + // defined by the server. + Id string `json:"id,omitempty"` + // Items: [Output Only] A list of Operation resources. + Items []*Operation `json:"items,omitempty"` + // Kind: Output only. [Output Only] Type of resource. Always + // `compute#operations` for Operations + // resource. + 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"` + // SelfLink: [Output Only] Server-defined URL for this resource. + SelfLink string `json:"selfLink,omitempty"` + // Warning: [Output Only] Informational warning message. + Warning *OperationListWarning `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 or default values are + // omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + 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. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s OperationList) MarshalJSON() ([]byte, error) { + type NoMethod OperationList + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +// OperationListWarning: [Output Only] Informational warning message. +type OperationListWarning 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" - Warning about failed cleanup of transient changes made + // by a failed + // operation. + // "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was created. + // "DEPRECATED_TYPE_USED" - When deploying and at least one of the resources + // has a type marked as + // deprecated + // "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk that is + // larger than image size. + // "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the + // resources has a type marked as + // experimental + // "EXTERNAL_API_WARNING" - Warning that is present in an external api call + // "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been + // overridden. + // Deprecated unused field. + // "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an injected + // kernel, which is deprecated. + // "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB" - A WEIGHTED_MAGLEV backend + // service is associated with a health check that is + // not of type HTTP/HTTPS/HTTP2. + // "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a + // exceedingly large number of resources + // "LIST_OVERHEAD_QUOTA_EXCEED" - Resource can't be retrieved due to list + // overhead quota exceed + // which captures the amount of resources filtered out by + // user-defined list filter. + // "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type + // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is not + // assigned to an instance on the + // network. + // "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot ip + // forward. + // "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE" - The route's nextHopInstance + // URL refers to an instance that does not have an + // ipv6 interface on the same network as the route. + // "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL refers to + // an instance that does not exist. + // "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance URL + // refers to an instance that is not on the + // same network as the route. + // "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not have a + // status of RUNNING. + // "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to continue + // the process despite + // the mentioned error. + // "NO_RESULTS_ON_PAGE" - No results are present on a particular list page. + // "PARTIAL_SUCCESS" - Success is reported, but some results may be missing + // due to errors + // "QUOTA_INFO_UNAVAILABLE" - Quota information is not available to client + // requests (e.g: + // regions.list). + // "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource that + // requires a TOS they have not + // accepted. + // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a resource is + // in use. + // "RESOURCE_NOT_DELETED" - One or more of the resources set to auto-delete + // could not be deleted + // because they were in use. + // "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is + // ignored. + // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in instance + // group manager is valid as such, but + // its application does not make a lot of sense, because it allows only + // single instance in instance group. + // "UNDECLARED_PROPERTIES" - When undeclared properties in the schema are + // present + // "UNREACHABLE" - A given scope cannot be reached. + 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 []*OperationListWarningData `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 or default values are + // omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + 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. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s OperationListWarning) MarshalJSON() ([]byte, error) { + type NoMethod OperationListWarning + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +type OperationListWarningData 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 or default values are + // omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + 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. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s OperationListWarningData) MarshalJSON() ([]byte, error) { + type NoMethod OperationListWarningData + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +type OperationsScopedList struct { + // Operations: [Output Only] A list of operations contained in this scope. + Operations []*Operation `json:"operations,omitempty"` + // Warning: [Output Only] Informational warning which replaces the list of + // operations + // when the list is empty. + Warning *OperationsScopedListWarning `json:"warning,omitempty"` + // ForceSendFields is a list of field names (e.g. "Operations") to + // unconditionally include in API requests. By default, fields with empty or + // default values are omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + ForceSendFields []string `json:"-"` + // NullFields is a list of field names (e.g. "Operations") to include in API + // requests with the JSON null value. By default, fields with empty values are + // omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s OperationsScopedList) MarshalJSON() ([]byte, error) { + type NoMethod OperationsScopedList + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +// OperationsScopedListWarning: [Output Only] Informational warning which +// replaces the list of operations +// when the list is empty. +type OperationsScopedListWarning 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" - Warning about failed cleanup of transient changes made + // by a failed + // operation. + // "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was created. + // "DEPRECATED_TYPE_USED" - When deploying and at least one of the resources + // has a type marked as + // deprecated + // "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk that is + // larger than image size. + // "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the + // resources has a type marked as + // experimental + // "EXTERNAL_API_WARNING" - Warning that is present in an external api call + // "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been + // overridden. + // Deprecated unused field. + // "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an injected + // kernel, which is deprecated. + // "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB" - A WEIGHTED_MAGLEV backend + // service is associated with a health check that is + // not of type HTTP/HTTPS/HTTP2. + // "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a + // exceedingly large number of resources + // "LIST_OVERHEAD_QUOTA_EXCEED" - Resource can't be retrieved due to list + // overhead quota exceed + // which captures the amount of resources filtered out by + // user-defined list filter. + // "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type + // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is not + // assigned to an instance on the + // network. + // "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot ip + // forward. + // "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE" - The route's nextHopInstance + // URL refers to an instance that does not have an + // ipv6 interface on the same network as the route. + // "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL refers to + // an instance that does not exist. + // "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance URL + // refers to an instance that is not on the + // same network as the route. + // "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not have a + // status of RUNNING. + // "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to continue + // the process despite + // the mentioned error. + // "NO_RESULTS_ON_PAGE" - No results are present on a particular list page. + // "PARTIAL_SUCCESS" - Success is reported, but some results may be missing + // due to errors + // "QUOTA_INFO_UNAVAILABLE" - Quota information is not available to client + // requests (e.g: + // regions.list). + // "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource that + // requires a TOS they have not + // accepted. + // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a resource is + // in use. + // "RESOURCE_NOT_DELETED" - One or more of the resources set to auto-delete + // could not be deleted + // because they were in use. + // "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is + // ignored. + // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in instance + // group manager is valid as such, but + // its application does not make a lot of sense, because it allows only + // single instance in instance group. + // "UNDECLARED_PROPERTIES" - When undeclared properties in the schema are + // present + // "UNREACHABLE" - A given scope cannot be reached. + 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 []*OperationsScopedListWarningData `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 or default values are + // omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + 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. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s OperationsScopedListWarning) MarshalJSON() ([]byte, error) { + type NoMethod OperationsScopedListWarning + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +type OperationsScopedListWarningData 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 or default values are + // omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + 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. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s OperationsScopedListWarningData) MarshalJSON() ([]byte, error) { + type NoMethod OperationsScopedListWarningData + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +type OrganizationSecurityPoliciesListAssociationsResponse struct { + // Associations: A list of associations. + Associations []*SecurityPolicyAssociation `json:"associations,omitempty"` + // Kind: Output only. [Output Only] Type of securityPolicy associations. + // Alwayscompute#organizationSecurityPoliciesListAssociations for lists + // of securityPolicy associations. + Kind string `json:"kind,omitempty"` + + // ServerResponse contains the HTTP response code and headers from the server. + googleapi.ServerResponse `json:"-"` + // ForceSendFields is a list of field names (e.g. "Associations") to + // unconditionally include in API requests. By default, fields with empty or + // default values are omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + ForceSendFields []string `json:"-"` + // NullFields is a list of field names (e.g. "Associations") to include in API + // requests with the JSON null value. By default, fields with empty values are + // omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s OrganizationSecurityPoliciesListAssociationsResponse) MarshalJSON() ([]byte, error) { + type NoMethod OrganizationSecurityPoliciesListAssociationsResponse + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +// OutlierDetection: Settings controlling the eviction of unhealthy hosts from +// the load balancing +// pool for the backend service. +type OutlierDetection struct { + // BaseEjectionTime: The base time that a backend endpoint is ejected for. + // Defaults to 30000ms + // or 30s. + // + // After a backend endpoint is returned back to the load balancing pool, it + // can be ejected again in another ejection analysis. Thus, the total + // ejection + // time is equal to the base ejection time multiplied by the number of + // times + // the backend endpoint has been ejected. Defaults to 30000ms or 30s. + BaseEjectionTime *Duration `json:"baseEjectionTime,omitempty"` + // ConsecutiveErrors: Number of consecutive errors before a backend endpoint is + // ejected from the + // load balancing pool. When the backend endpoint is accessed over HTTP, a + // 5xx + // return code qualifies as an error. Defaults to 5. + ConsecutiveErrors int64 `json:"consecutiveErrors,omitempty"` + // ConsecutiveGatewayFailure: The number of consecutive gateway failures (502, + // 503, 504 status or + // connection errors that are mapped to one of those status codes) before + // a + // consecutive gateway failure ejection occurs. Defaults to 3. + ConsecutiveGatewayFailure int64 `json:"consecutiveGatewayFailure,omitempty"` + // EnforcingConsecutiveErrors: The percentage chance that a backend endpoint + // will be ejected when an + // outlier status is detected through consecutive 5xx. This setting can be + // used to disable ejection or to ramp it up slowly. Defaults to 0. + EnforcingConsecutiveErrors int64 `json:"enforcingConsecutiveErrors,omitempty"` + // EnforcingConsecutiveGatewayFailure: The percentage chance that a backend + // endpoint will be ejected when an + // outlier status is detected through consecutive gateway failures. + // This + // setting can be used to disable ejection or to ramp it up slowly. Defaults + // to 100. + EnforcingConsecutiveGatewayFailure int64 `json:"enforcingConsecutiveGatewayFailure,omitempty"` + // EnforcingSuccessRate: The percentage chance that a backend endpoint will be + // ejected when an + // outlier status is detected through success rate statistics. This setting + // can be used to disable ejection or to ramp it up slowly. Defaults to + // 100. + // + // Not supported when the backend service uses Serverless NEG. + EnforcingSuccessRate int64 `json:"enforcingSuccessRate,omitempty"` + // Interval: Time interval between ejection analysis sweeps. This can result in + // both new + // ejections and backend endpoints being returned to service. The interval + // is + // equal to the number of seconds as defined + // in + // outlierDetection.interval.seconds plus the number of nanoseconds as + // defined + // in outlierDetection.interval.nanos. Defaults to 1 second. + Interval *Duration `json:"interval,omitempty"` + // MaxEjectionPercent: Maximum percentage of backend endpoints in the load + // balancing pool for the + // backend service that can be ejected if the ejection conditions are + // met. + // Defaults to 50%. + MaxEjectionPercent int64 `json:"maxEjectionPercent,omitempty"` + // SuccessRateMinimumHosts: The number of backend endpoints in the load + // balancing pool that must have + // enough request volume to detect success rate outliers. If the number + // of + // backend endpoints is fewer than this setting, outlier detection via + // success + // rate statistics is not performed for any backend endpoint in the + // load + // balancing pool. Defaults to 5. + // + // Not supported when the backend service uses Serverless NEG. + SuccessRateMinimumHosts int64 `json:"successRateMinimumHosts,omitempty"` + // SuccessRateRequestVolume: The minimum number of total requests that must be + // collected in one interval + // (as defined by the interval duration above) to include this backend + // endpoint in success rate based outlier detection. If the volume is + // lower + // than this setting, outlier detection via success rate statistics is + // not + // performed for that backend endpoint. Defaults to 100. + // + // Not supported when the backend service uses Serverless NEG. + SuccessRateRequestVolume int64 `json:"successRateRequestVolume,omitempty"` + // SuccessRateStdevFactor: This factor is used to determine the ejection + // threshold for success rate + // outlier ejection. The ejection threshold is the difference between the + // mean + // success rate, and the product of this factor and the standard deviation + // of + // the mean success rate: mean - (stdev * successRateStdevFactor). This + // factor + // is divided by a thousand to get a double. That is, if the desired factor + // is 1.9, the runtime value should be 1900. Defaults to 1900. + // + // Not supported when the backend service uses Serverless NEG. + SuccessRateStdevFactor int64 `json:"successRateStdevFactor,omitempty"` + // ForceSendFields is a list of field names (e.g. "BaseEjectionTime") to + // unconditionally include in API requests. By default, fields with empty or + // default values are omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + ForceSendFields []string `json:"-"` + // NullFields is a list of field names (e.g. "BaseEjectionTime") to include in + // API requests with the JSON null value. By default, fields with empty values + // are omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s OutlierDetection) MarshalJSON() ([]byte, error) { + type NoMethod OutlierDetection + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +// PacketIntervals: Next free: 7 +type PacketIntervals struct { + // AvgMs: Average observed inter-packet interval in milliseconds. + AvgMs int64 `json:"avgMs,omitempty,string"` + // Duration: From how long ago in the past these intervals were observed. + // + // Possible values: + // "DURATION_UNSPECIFIED" + // "HOUR" + // "MAX" - From BfdSession object creation time. + // "MINUTE" + Duration string `json:"duration,omitempty"` + // MaxMs: Maximum observed inter-packet interval in milliseconds. + MaxMs int64 `json:"maxMs,omitempty,string"` + // MinMs: Minimum observed inter-packet interval in milliseconds. + MinMs int64 `json:"minMs,omitempty,string"` + // NumIntervals: Number of inter-packet intervals from which these statistics + // were derived. + NumIntervals int64 `json:"numIntervals,omitempty,string"` + // Type: The type of packets for which inter-packet intervals were computed. + // + // Possible values: + // "LOOPBACK" - Only applies to Echo packets. This shows the intervals + // between sending + // and receiving the same packet. + // "RECEIVE" - Intervals between received packets. + // "TRANSMIT" - Intervals between transmitted packets. + // "TYPE_UNSPECIFIED" + Type string `json:"type,omitempty"` + // ForceSendFields is a list of field names (e.g. "AvgMs") to unconditionally + // include in API requests. By default, fields with empty or default values are + // omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + ForceSendFields []string `json:"-"` + // NullFields is a list of field names (e.g. "AvgMs") to include in API + // requests with the JSON null value. By default, fields with empty values are + // omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s PacketIntervals) MarshalJSON() ([]byte, error) { + type NoMethod PacketIntervals + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +// PacketMirroring: Represents a Packet Mirroring resource. +// +// Packet Mirroring clones the traffic of specified instances in your +// Virtual +// Private Cloud (VPC) network and forwards it to a collector destination, +// such as an instance group of an internal TCP/UDP load balancer, for +// analysis +// or examination. +// For more information about setting up Packet Mirroring, seeUsing Packet +// Mirroring. +type PacketMirroring struct { + // CollectorIlb: The Forwarding Rule resource of + // typeloadBalancingScheme=INTERNAL that will be used as collector + // for mirrored traffic. + // The specified forwarding rule must have isMirroringCollector + // set to true. + CollectorIlb *PacketMirroringForwardingRuleInfo `json:"collectorIlb,omitempty"` + // CreationTimestamp: Output only. [Output Only] Creation timestamp + // inRFC3339 + // text format. + CreationTimestamp string `json:"creationTimestamp,omitempty"` + // Description: An optional description of this resource. Provide this property + // when you + // create the resource. + Description string `json:"description,omitempty"` + // Enable: Indicates whether or not this packet mirroring takes effect. + // If set to FALSE, this packet mirroring policy will not be enforced on + // the + // network. + // + // The default is TRUE. + // + // Possible values: + // "FALSE" + // "TRUE" + Enable string `json:"enable,omitempty"` + // Filter: Filter for mirrored traffic. If unspecified, all IPv4 traffic is + // mirrored. + Filter *PacketMirroringFilter `json:"filter,omitempty"` + // Id: Output only. [Output Only] The unique identifier for the resource. This + // identifier is + // defined by the server. + Id uint64 `json:"id,omitempty,string"` + // Kind: Output only. [Output Only] Type of the resource. + // Alwayscompute#packetMirroring for packet mirrorings. + Kind string `json:"kind,omitempty"` + // MirroredResources: PacketMirroring + // mirroredResourceInfos. + // MirroredResourceInfo specifies a set of mirrored VM instances, + // subnetworks + // and/or tags for which traffic from/to all VM instances will be mirrored. + MirroredResources *PacketMirroringMirroredResourceInfo `json:"mirroredResources,omitempty"` + // Name: Name of the resource; provided by the client when the resource is + // created. + // The name must be 1-63 characters long, and comply withRFC1035. + // 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. + Name string `json:"name,omitempty"` + // Network: Specifies the mirrored VPC network. Only packets in this network + // will be + // mirrored. All mirrored VMs should have a NIC in the given network. + // All mirrored subnetworks should belong to the given network. + Network *PacketMirroringNetworkInfo `json:"network,omitempty"` + // Priority: The priority of applying this configuration. Priority is used to + // break ties + // in cases where there is more than one matching rule. In the case of + // two + // rules that apply for a given Instance, the one with the + // lowest-numbered + // priority value wins. + // + // Default value is 1000. Valid range is 0 through 65535. + Priority int64 `json:"priority,omitempty"` + // Region: [Output Only] URI of the region where the packetMirroring resides. + Region string `json:"region,omitempty"` + // SelfLink: Output only. [Output Only] Server-defined URL for the resource. + SelfLink string `json:"selfLink,omitempty"` + + // ServerResponse contains the HTTP response code and headers from the server. + googleapi.ServerResponse `json:"-"` + // ForceSendFields is a list of field names (e.g. "CollectorIlb") to + // unconditionally include in API requests. By default, fields with empty or + // default values are omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + ForceSendFields []string `json:"-"` + // NullFields is a list of field names (e.g. "CollectorIlb") to include in API + // requests with the JSON null value. By default, fields with empty values are + // omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s PacketMirroring) MarshalJSON() ([]byte, error) { + type NoMethod PacketMirroring + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +// PacketMirroringAggregatedList: Contains a list of packetMirrorings. +type PacketMirroringAggregatedList struct { + // Id: [Output Only] Unique identifier for the resource; defined by the server. + Id string `json:"id,omitempty"` + // Items: A list of PacketMirroring resources. + Items map[string]PacketMirroringsScopedList `json:"items,omitempty"` + // Kind: Output only. Type of resource. + 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 thanmaxResults, 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"` + // SelfLink: Output only. [Output Only] Server-defined URL for this resource. + SelfLink string `json:"selfLink,omitempty"` + // Unreachables: Output only. [Output Only] Unreachable resources. + Unreachables []string `json:"unreachables,omitempty"` + // Warning: [Output Only] Informational warning message. + Warning *PacketMirroringAggregatedListWarning `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 or default values are + // omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + 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. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s PacketMirroringAggregatedList) MarshalJSON() ([]byte, error) { + type NoMethod PacketMirroringAggregatedList + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +// PacketMirroringAggregatedListWarning: [Output Only] Informational warning +// message. +type PacketMirroringAggregatedListWarning 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" - Warning about failed cleanup of transient changes made + // by a failed + // operation. + // "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was created. + // "DEPRECATED_TYPE_USED" - When deploying and at least one of the resources + // has a type marked as + // deprecated + // "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk that is + // larger than image size. + // "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the + // resources has a type marked as + // experimental + // "EXTERNAL_API_WARNING" - Warning that is present in an external api call + // "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been + // overridden. + // Deprecated unused field. + // "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an injected + // kernel, which is deprecated. + // "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB" - A WEIGHTED_MAGLEV backend + // service is associated with a health check that is + // not of type HTTP/HTTPS/HTTP2. + // "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a + // exceedingly large number of resources + // "LIST_OVERHEAD_QUOTA_EXCEED" - Resource can't be retrieved due to list + // overhead quota exceed + // which captures the amount of resources filtered out by + // user-defined list filter. + // "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type + // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is not + // assigned to an instance on the + // network. + // "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot ip + // forward. + // "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE" - The route's nextHopInstance + // URL refers to an instance that does not have an + // ipv6 interface on the same network as the route. + // "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL refers to + // an instance that does not exist. + // "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance URL + // refers to an instance that is not on the + // same network as the route. + // "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not have a + // status of RUNNING. + // "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to continue + // the process despite + // the mentioned error. + // "NO_RESULTS_ON_PAGE" - No results are present on a particular list page. + // "PARTIAL_SUCCESS" - Success is reported, but some results may be missing + // due to errors + // "QUOTA_INFO_UNAVAILABLE" - Quota information is not available to client + // requests (e.g: + // regions.list). + // "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource that + // requires a TOS they have not + // accepted. + // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a resource is + // in use. + // "RESOURCE_NOT_DELETED" - One or more of the resources set to auto-delete + // could not be deleted + // because they were in use. + // "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is + // ignored. + // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in instance + // group manager is valid as such, but + // its application does not make a lot of sense, because it allows only + // single instance in instance group. + // "UNDECLARED_PROPERTIES" - When undeclared properties in the schema are + // present + // "UNREACHABLE" - A given scope cannot be reached. + 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 []*PacketMirroringAggregatedListWarningData `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 or default values are + // omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + 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. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s PacketMirroringAggregatedListWarning) MarshalJSON() ([]byte, error) { + type NoMethod PacketMirroringAggregatedListWarning + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +type PacketMirroringAggregatedListWarningData 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 or default values are + // omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + 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. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s PacketMirroringAggregatedListWarningData) MarshalJSON() ([]byte, error) { + type NoMethod PacketMirroringAggregatedListWarningData + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +type PacketMirroringFilter struct { + // IPProtocols: Protocols that apply as filter on mirrored traffic. + // If no protocols are specified, all traffic that matches the specified + // CIDR ranges is mirrored. + // If neither cidrRanges nor IPProtocols is specified, all IPv4 traffic + // is + // mirrored. + IPProtocols []string `json:"IPProtocols,omitempty"` + // CidrRanges: One or more IPv4 or IPv6 CIDR ranges that apply as filters on + // the source + // (ingress) or destination (egress) IP in the IP header. If no ranges + // are + // specified, all IPv4 traffic that matches the specified IPProtocols + // is + // mirrored. If neither cidrRanges nor IPProtocols is specified, all + // IPv4 + // traffic is mirrored. To mirror all IPv4 and IPv6 traffic, + // use + // "0.0.0.0/0,::/0". + CidrRanges []string `json:"cidrRanges,omitempty"` + // Direction: Direction of traffic to mirror, either INGRESS, EGRESS, or + // BOTH. + // The default is BOTH. + // + // Possible values: + // "BOTH" - Default, both directions are mirrored. + // "EGRESS" - Only egress traffic is mirrored. + // "INGRESS" - Only ingress traffic is mirrored. + Direction string `json:"direction,omitempty"` + // ForceSendFields is a list of field names (e.g. "IPProtocols") to + // unconditionally include in API requests. By default, fields with empty or + // default values are omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + ForceSendFields []string `json:"-"` + // NullFields is a list of field names (e.g. "IPProtocols") to include in API + // requests with the JSON null value. By default, fields with empty values are + // omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s PacketMirroringFilter) MarshalJSON() ([]byte, error) { + type NoMethod PacketMirroringFilter + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +type PacketMirroringForwardingRuleInfo struct { + // CanonicalUrl: Output only. [Output Only] Unique identifier for the + // forwarding rule; defined by the + // server. + CanonicalUrl string `json:"canonicalUrl,omitempty"` + // Url: Resource URL to the forwarding rule representing the ILB + // configured as destination of the mirrored traffic. + Url string `json:"url,omitempty"` + // ForceSendFields is a list of field names (e.g. "CanonicalUrl") to + // unconditionally include in API requests. By default, fields with empty or + // default values are omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + ForceSendFields []string `json:"-"` + // NullFields is a list of field names (e.g. "CanonicalUrl") to include in API + // requests with the JSON null value. By default, fields with empty values are + // omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s PacketMirroringForwardingRuleInfo) MarshalJSON() ([]byte, error) { + type NoMethod PacketMirroringForwardingRuleInfo + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +// PacketMirroringList: Contains a list of PacketMirroring resources. +type PacketMirroringList struct { + // Id: [Output Only] Unique identifier for the resource; defined by the server. + Id string `json:"id,omitempty"` + // Items: A list of PacketMirroring resources. + Items []*PacketMirroring `json:"items,omitempty"` + // Kind: Output only. [Output Only] Type of resource. Always + // compute#packetMirroring + // for packetMirrorings. + 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 thanmaxResults, 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"` + // SelfLink: Output only. [Output Only] Server-defined URL for this resource. + SelfLink string `json:"selfLink,omitempty"` + // Warning: [Output Only] Informational warning message. + Warning *PacketMirroringListWarning `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 or default values are + // omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + 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. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s PacketMirroringList) MarshalJSON() ([]byte, error) { + type NoMethod PacketMirroringList + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +// PacketMirroringListWarning: [Output Only] Informational warning message. +type PacketMirroringListWarning 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" - Warning about failed cleanup of transient changes made + // by a failed + // operation. + // "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was created. + // "DEPRECATED_TYPE_USED" - When deploying and at least one of the resources + // has a type marked as + // deprecated + // "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk that is + // larger than image size. + // "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the + // resources has a type marked as + // experimental + // "EXTERNAL_API_WARNING" - Warning that is present in an external api call + // "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been + // overridden. + // Deprecated unused field. + // "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an injected + // kernel, which is deprecated. + // "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB" - A WEIGHTED_MAGLEV backend + // service is associated with a health check that is + // not of type HTTP/HTTPS/HTTP2. + // "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a + // exceedingly large number of resources + // "LIST_OVERHEAD_QUOTA_EXCEED" - Resource can't be retrieved due to list + // overhead quota exceed + // which captures the amount of resources filtered out by + // user-defined list filter. + // "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type + // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is not + // assigned to an instance on the + // network. + // "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot ip + // forward. + // "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE" - The route's nextHopInstance + // URL refers to an instance that does not have an + // ipv6 interface on the same network as the route. + // "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL refers to + // an instance that does not exist. + // "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance URL + // refers to an instance that is not on the + // same network as the route. + // "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not have a + // status of RUNNING. + // "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to continue + // the process despite + // the mentioned error. + // "NO_RESULTS_ON_PAGE" - No results are present on a particular list page. + // "PARTIAL_SUCCESS" - Success is reported, but some results may be missing + // due to errors + // "QUOTA_INFO_UNAVAILABLE" - Quota information is not available to client + // requests (e.g: + // regions.list). + // "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource that + // requires a TOS they have not + // accepted. + // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a resource is + // in use. + // "RESOURCE_NOT_DELETED" - One or more of the resources set to auto-delete + // could not be deleted + // because they were in use. + // "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is + // ignored. + // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in instance + // group manager is valid as such, but + // its application does not make a lot of sense, because it allows only + // single instance in instance group. + // "UNDECLARED_PROPERTIES" - When undeclared properties in the schema are + // present + // "UNREACHABLE" - A given scope cannot be reached. + 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 []*PacketMirroringListWarningData `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 or default values are + // omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + 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. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s PacketMirroringListWarning) MarshalJSON() ([]byte, error) { + type NoMethod PacketMirroringListWarning + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +type PacketMirroringListWarningData 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 or default values are + // omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + 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. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s PacketMirroringListWarningData) MarshalJSON() ([]byte, error) { + type NoMethod PacketMirroringListWarningData + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +type PacketMirroringMirroredResourceInfo struct { + // Instances: A set of virtual machine instances that are being mirrored. + // They must live in zones contained in the same region as + // this + // packetMirroring. + // + // Note that this config will apply only to those network interfaces of + // the + // Instances that belong to the network specified in this packetMirroring. + // + // You may specify a maximum of 50 Instances. + Instances []*PacketMirroringMirroredResourceInfoInstanceInfo `json:"instances,omitempty"` + // Subnetworks: A set of subnetworks for which traffic from/to all VM instances + // will be + // mirrored. They must live in the same region as this packetMirroring. + // + // You may specify a maximum of 5 subnetworks. + Subnetworks []*PacketMirroringMirroredResourceInfoSubnetInfo `json:"subnetworks,omitempty"` + // Tags: A set of mirrored tags. Traffic from/to all VM instances that have one + // or + // more of these tags will be mirrored. + Tags []string `json:"tags,omitempty"` + // ForceSendFields is a list of field names (e.g. "Instances") to + // unconditionally include in API requests. By default, fields with empty or + // default values are omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + ForceSendFields []string `json:"-"` + // NullFields is a list of field names (e.g. "Instances") to include in API + // requests with the JSON null value. By default, fields with empty values are + // omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s PacketMirroringMirroredResourceInfo) MarshalJSON() ([]byte, error) { + type NoMethod PacketMirroringMirroredResourceInfo + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +type PacketMirroringMirroredResourceInfoInstanceInfo struct { + // CanonicalUrl: Output only. [Output Only] Unique identifier for the instance; + // defined by the + // server. + CanonicalUrl string `json:"canonicalUrl,omitempty"` + // Url: Resource URL to the virtual machine instance which is being mirrored. + Url string `json:"url,omitempty"` + // ForceSendFields is a list of field names (e.g. "CanonicalUrl") to + // unconditionally include in API requests. By default, fields with empty or + // default values are omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + ForceSendFields []string `json:"-"` + // NullFields is a list of field names (e.g. "CanonicalUrl") to include in API + // requests with the JSON null value. By default, fields with empty values are + // omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s PacketMirroringMirroredResourceInfoInstanceInfo) MarshalJSON() ([]byte, error) { + type NoMethod PacketMirroringMirroredResourceInfoInstanceInfo + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +type PacketMirroringMirroredResourceInfoSubnetInfo struct { + // CanonicalUrl: Output only. [Output Only] Unique identifier for the + // subnetwork; defined by the + // server. + CanonicalUrl string `json:"canonicalUrl,omitempty"` + // Url: Resource URL to the subnetwork for which + // traffic from/to all VM instances will be mirrored. + Url string `json:"url,omitempty"` + // ForceSendFields is a list of field names (e.g. "CanonicalUrl") to + // unconditionally include in API requests. By default, fields with empty or + // default values are omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + ForceSendFields []string `json:"-"` + // NullFields is a list of field names (e.g. "CanonicalUrl") to include in API + // requests with the JSON null value. By default, fields with empty values are + // omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s PacketMirroringMirroredResourceInfoSubnetInfo) MarshalJSON() ([]byte, error) { + type NoMethod PacketMirroringMirroredResourceInfoSubnetInfo + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +type PacketMirroringNetworkInfo struct { + // CanonicalUrl: Output only. [Output Only] Unique identifier for the network; + // defined by the server. + CanonicalUrl string `json:"canonicalUrl,omitempty"` + // Url: URL of the network resource. + Url string `json:"url,omitempty"` + // ForceSendFields is a list of field names (e.g. "CanonicalUrl") to + // unconditionally include in API requests. By default, fields with empty or + // default values are omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + ForceSendFields []string `json:"-"` + // NullFields is a list of field names (e.g. "CanonicalUrl") to include in API + // requests with the JSON null value. By default, fields with empty values are + // omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s PacketMirroringNetworkInfo) MarshalJSON() ([]byte, error) { + type NoMethod PacketMirroringNetworkInfo + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +type PacketMirroringsScopedList struct { + // PacketMirrorings: A list of packetMirrorings contained in this scope. + PacketMirrorings []*PacketMirroring `json:"packetMirrorings,omitempty"` + // Warning: Informational warning which replaces the list of packetMirrorings + // when the + // list is empty. + Warning *PacketMirroringsScopedListWarning `json:"warning,omitempty"` + // ForceSendFields is a list of field names (e.g. "PacketMirrorings") to + // unconditionally include in API requests. By default, fields with empty or + // default values are omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + ForceSendFields []string `json:"-"` + // NullFields is a list of field names (e.g. "PacketMirrorings") to include in + // API requests with the JSON null value. By default, fields with empty values + // are omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s PacketMirroringsScopedList) MarshalJSON() ([]byte, error) { + type NoMethod PacketMirroringsScopedList + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +// PacketMirroringsScopedListWarning: Informational warning which replaces the +// list of packetMirrorings when the +// list is empty. +type PacketMirroringsScopedListWarning 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" - Warning about failed cleanup of transient changes made + // by a failed + // operation. + // "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was created. + // "DEPRECATED_TYPE_USED" - When deploying and at least one of the resources + // has a type marked as + // deprecated + // "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk that is + // larger than image size. + // "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the + // resources has a type marked as + // experimental + // "EXTERNAL_API_WARNING" - Warning that is present in an external api call + // "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been + // overridden. + // Deprecated unused field. + // "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an injected + // kernel, which is deprecated. + // "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB" - A WEIGHTED_MAGLEV backend + // service is associated with a health check that is + // not of type HTTP/HTTPS/HTTP2. + // "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a + // exceedingly large number of resources + // "LIST_OVERHEAD_QUOTA_EXCEED" - Resource can't be retrieved due to list + // overhead quota exceed + // which captures the amount of resources filtered out by + // user-defined list filter. + // "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type + // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is not + // assigned to an instance on the + // network. + // "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot ip + // forward. + // "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE" - The route's nextHopInstance + // URL refers to an instance that does not have an + // ipv6 interface on the same network as the route. + // "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL refers to + // an instance that does not exist. + // "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance URL + // refers to an instance that is not on the + // same network as the route. + // "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not have a + // status of RUNNING. + // "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to continue + // the process despite + // the mentioned error. + // "NO_RESULTS_ON_PAGE" - No results are present on a particular list page. + // "PARTIAL_SUCCESS" - Success is reported, but some results may be missing + // due to errors + // "QUOTA_INFO_UNAVAILABLE" - Quota information is not available to client + // requests (e.g: + // regions.list). + // "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource that + // requires a TOS they have not + // accepted. + // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a resource is + // in use. + // "RESOURCE_NOT_DELETED" - One or more of the resources set to auto-delete + // could not be deleted + // because they were in use. + // "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is + // ignored. + // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in instance + // group manager is valid as such, but + // its application does not make a lot of sense, because it allows only + // single instance in instance group. + // "UNDECLARED_PROPERTIES" - When undeclared properties in the schema are + // present + // "UNREACHABLE" - A given scope cannot be reached. + 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 []*PacketMirroringsScopedListWarningData `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 or default values are + // omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + 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. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s PacketMirroringsScopedListWarning) MarshalJSON() ([]byte, error) { + type NoMethod PacketMirroringsScopedListWarning + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +type PacketMirroringsScopedListWarningData 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 or default values are + // omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + 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. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s PacketMirroringsScopedListWarningData) MarshalJSON() ([]byte, error) { + type NoMethod PacketMirroringsScopedListWarningData + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +// PathMatcher: A matcher for the path portion of the URL. The +// BackendService +// from the longest-matched rule will serve the URL. If no rule was matched, +// the +// default service is used. +type PathMatcher struct { + // DefaultCustomErrorResponsePolicy: defaultCustomErrorResponsePolicy specifies + // how the Load + // Balancer returns error responses when BackendServiceorBackendBucket responds + // with an error. + // + // This policy takes + // effect at the PathMatcher level and applies only when no + // policy has been defined for the error code at lower levels likeRouteRule and + // PathRule within thisPathMatcher. If an error code does not have a policy + // defined + // in defaultCustomErrorResponsePolicy, then a policy defined for + // the error code in UrlMap.defaultCustomErrorResponsePolicy + // takes effect. + // + // For example, consider a UrlMap with the following + // configuration: + // + // + // - UrlMap.defaultCustomErrorResponsePolicy is configured + // with policies for 5xx and 4xx errors + // - A RouteRule for /coming_soon/ is configured for the + // error code 404. + // + // If the request is for www.myotherdomain.com and a404 is encountered, the + // policy underUrlMap.defaultCustomErrorResponsePolicy takes effect. If a404 + // response is encountered for the requestwww.example.com/current_events/, the + // pathMatcher's policy + // takes effect. If however, the request forwww.example.com/coming_soon/ + // encounters a 404, + // the policy in RouteRule.customErrorResponsePolicy takes + // effect. If any of the requests in this example encounter a 500 + // error code, the policy atUrlMap.defaultCustomErrorResponsePolicy takes + // effect. + // + // When + // used in conjunction withpathMatcher.defaultRouteAction.retryPolicy, retries + // take + // precedence. Only once all retries are exhausted, + // thedefaultCustomErrorResponsePolicy is applied. While attempting + // a retry, if load balancer is successful in reaching the + // service, the defaultCustomErrorResponsePolicy is ignored and + // the response from the service is returned to the + // client. + // + // defaultCustomErrorResponsePolicy is supported only for + // global external Application Load Balancers. + DefaultCustomErrorResponsePolicy *CustomErrorResponsePolicy `json:"defaultCustomErrorResponsePolicy,omitempty"` + // DefaultRouteAction: defaultRouteAction takes effect when none of the + // + // pathRules or routeRules match. The load balancer + // performs advanced routing actions, such as URL rewrites and + // header transformations, before forwarding the request to the + // selected backend. + // + // + // Only one of defaultUrlRedirect, defaultService + // or defaultRouteAction.weightedBackendService can be set. + // + // + // URL maps for classic Application Load Balancers only support + // the urlRewrite action within a path matcher'sdefaultRouteAction. + DefaultRouteAction *HttpRouteAction `json:"defaultRouteAction,omitempty"` + // DefaultService: The full or partial URL to the BackendService resource. + // This + // URL is used if none of the pathRules orrouteRules defined by this + // PathMatcher are + // matched. For example, the + // following are all valid URLs to a BackendService resource: + // + // + // - + // https://www.googleapis.com/compute/v1/projects/project/global/backendServices/backendService + // - compute/v1/projects/project/global/backendServices/backendService + // - global/backendServices/backendService + // + // + // If defaultRouteAction is also specified, advanced + // routing actions, such as URL rewrites, take effect before sending + // the + // request to the backend. + // + // + // Only one of defaultUrlRedirect, defaultService + // or defaultRouteAction.weightedBackendService can be set. + // + // + // Authorization requires one or more of the following Google IAM permissions + // on the + // specified resource default_service: + // + // + // - compute.backendBuckets.use + // - compute.backendServices.use + DefaultService string `json:"defaultService,omitempty"` + // DefaultUrlRedirect: When none of the specified pathRules orrouteRules match, + // the request is redirected to a URL specified + // by defaultUrlRedirect. + // + // + // Only one of defaultUrlRedirect, defaultService + // or defaultRouteAction.weightedBackendService can be set. + // + // + // Not supported when the URL map is bound to a target gRPC proxy. + DefaultUrlRedirect *HttpRedirectAction `json:"defaultUrlRedirect,omitempty"` + // Description: An optional description of this resource. Provide this property + // when you + // create the resource. + Description string `json:"description,omitempty"` + // HeaderAction: Specifies changes to request and response headers that need to + // take effect + // for the selected backend service. + // + // HeaderAction specified here are applied after the matchingHttpRouteRule + // HeaderAction and before theHeaderAction in the UrlMap + // + // HeaderAction is not supported for load balancers + // that have + // their loadBalancingScheme set to EXTERNAL. + // + // Not supported when the URL map is bound to a target gRPC proxy that + // has validateForProxyless field set to true. + HeaderAction *HttpHeaderAction `json:"headerAction,omitempty"` + // Name: The name to which this PathMatcher is referred by theHostRule. + Name string `json:"name,omitempty"` + // PathRules: The list of path rules. Use this list instead of routeRules + // when routing based on simple path matching is all that's required. A + // path + // rule can only include a wildcard character (*) after a + // forward slash character ("/"). + // + // The order by which path rules are specified does not matter. + // Matches are always done on the longest-path-first basis. + // + // For example: a pathRule with a path /a/b/c/* will match + // before /a/b/* irrespective of the order in which those paths appear in + // this + // list. + // + // Within a given pathMatcher, only one ofpathRules or routeRules must be set. + PathRules []*PathRule `json:"pathRules,omitempty"` + // RouteRules: The list of HTTP route rules. Use this list instead ofpathRules + // when advanced route matching and routing actions are + // desired. routeRules are evaluated in order of priority, from + // the lowest to highest number. + // + // Within a given pathMatcher, you can set only one ofpathRules or routeRules. + RouteRules []*HttpRouteRule `json:"routeRules,omitempty"` + // ForceSendFields is a list of field names (e.g. + // "DefaultCustomErrorResponsePolicy") to unconditionally include in API + // requests. By default, fields with empty or default values are omitted from + // API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + ForceSendFields []string `json:"-"` + // NullFields is a list of field names (e.g. + // "DefaultCustomErrorResponsePolicy") to include in API requests with the JSON + // null value. By default, fields with empty values are omitted from API + // requests. See https://pkg.go.dev/google.golang.org/api#hdr-NullFields for + // more details. + NullFields []string `json:"-"` +} + +func (s PathMatcher) MarshalJSON() ([]byte, error) { + type NoMethod PathMatcher + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +// PathRule: A path-matching rule for a URL. If matched, will use the +// specifiedBackendService to handle the traffic arriving at this URL. +type PathRule struct { + // CustomErrorResponsePolicy: customErrorResponsePolicy specifies how the + // Load + // Balancer returns error responses when BackendServiceorBackendBucket responds + // with an error. + // + // If a policy for an + // error code is not configured for the PathRule, a policy for + // the error code configured inpathMatcher.defaultCustomErrorResponsePolicy is + // applied. If + // one is not specified inpathMatcher.defaultCustomErrorResponsePolicy, the + // policy + // configured in UrlMap.defaultCustomErrorResponsePolicy takes + // effect. + // + // For example, consider a UrlMap with the following configuration: + // + // + // - UrlMap.defaultCustomErrorResponsePolicy are configured + // with policies for 5xx and 4xx errors + // - A PathRule for /coming_soon/ is configured for the error + // code 404. + // + // If the request is for www.myotherdomain.com and a404 is encountered, the + // policy underUrlMap.defaultCustomErrorResponsePolicy takes effect. If a404 + // response is encountered for the requestwww.example.com/current_events/, the + // pathMatcher's policy + // takes effect. If however, the request forwww.example.com/coming_soon/ + // encounters a 404, + // the policy in PathRule.customErrorResponsePolicy takes + // effect. If any of the requests in this example encounter a 500 + // error code, the policy atUrlMap.defaultCustomErrorResponsePolicy takes + // effect. + // + // customErrorResponsePolicy is supported only for + // global external Application Load Balancers. + CustomErrorResponsePolicy *CustomErrorResponsePolicy `json:"customErrorResponsePolicy,omitempty"` + // Paths: The list of path patterns to match. Each must start with / + // and the only place a * is allowed is at the end following + // a /. The string fed to the path matcher does not include + // any text after the first ? or #, and + // those chars are not allowed here. + Paths []string `json:"paths,omitempty"` + // RouteAction: In response to a matching path, the load balancer + // performs advanced routing actions, such as URL rewrites and + // header + // transformations, before forwarding the request to the + // selected + // backend. + // + // + // Only one of urlRedirect, service orrouteAction.weightedBackendService can be + // set. + // + // + // URL maps for classic Application Load Balancers only support + // the urlRewrite action within a path rule'srouteAction. + RouteAction *HttpRouteAction `json:"routeAction,omitempty"` + // Service: The full or partial URL of the backend service resource to which + // traffic + // is directed if this rule is matched. If routeAction is + // also specified, advanced routing actions, such as URL rewrites, + // take effect before sending the request to the backend. + // + // + // Only one of urlRedirect, service orrouteAction.weightedBackendService can be + // set. + Service string `json:"service,omitempty"` + // UrlRedirect: When a path pattern is matched, the request is redirected to a + // URL + // specified by urlRedirect. + // + // + // Only one of urlRedirect, service orrouteAction.weightedBackendService can be + // set. + // + // + // Not supported when the URL map is bound to a target gRPC proxy. + UrlRedirect *HttpRedirectAction `json:"urlRedirect,omitempty"` + // ForceSendFields is a list of field names (e.g. "CustomErrorResponsePolicy") + // to unconditionally include in API requests. By default, fields with empty or + // default values are omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + ForceSendFields []string `json:"-"` + // NullFields is a list of field names (e.g. "CustomErrorResponsePolicy") to + // include in API requests with the JSON null value. By default, fields with + // empty values are omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s PathRule) MarshalJSON() ([]byte, error) { + type NoMethod PathRule + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +type PerInstanceConfig struct { + // Fingerprint: Fingerprint of this per-instance config. This field can be used + // in + // optimistic locking. It is ignored when inserting a per-instance + // config. An up-to-date fingerprint must be provided in order to update + // an + // existing per-instance configuration or the field needs to be unset. + Fingerprint string `json:"fingerprint,omitempty"` + // Name: The name of a per-instance configuration and its corresponding + // instance. + // Serves as a merge key during UpdatePerInstanceConfigs + // operations, that is, if a per-instance configuration with the same + // name + // exists then it will be updated, otherwise a new one will be created for + // the + // VM instance with the same name. An attempt to create a + // per-instance + // configuration for a VM instance that either doesn't exist or is not part + // of the group will result in an error. + Name string `json:"name,omitempty"` + // PreservedState: The intended preserved state for the given instance. Does + // not contain + // preserved state generated from a stateful policy. + PreservedState *PreservedState `json:"preservedState,omitempty"` + // Status: The status of applying this per-instance configuration on the + // corresponding + // managed instance. + // + // Possible values: + // "APPLYING" - The per-instance configuration is being applied to the + // instance, but is + // not yet effective, possibly waiting for the instance to, for + // example,REFRESH. + // "DELETING" - The per-instance configuration deletion is being applied on + // the instance, + // possibly waiting for the instance to, for example, REFRESH. + // "EFFECTIVE" - The per-instance configuration is effective on the instance, + // meaning that + // all disks, ips and metadata specified in this configuration are attached + // or set on the instance. + // "NONE" - *[Default]* The default status, when no per-instance + // configuration + // exists. + // "UNAPPLIED" - The per-instance configuration is set on an instance but not + // been applied + // yet. + // "UNAPPLIED_DELETION" - The per-instance configuration has been deleted, + // but the deletion is not + // yet applied. + Status string `json:"status,omitempty"` + // ForceSendFields is a list of field names (e.g. "Fingerprint") to + // unconditionally include in API requests. By default, fields with empty or + // default values are omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + ForceSendFields []string `json:"-"` + // NullFields is a list of field names (e.g. "Fingerprint") to include in API + // requests with the JSON null value. By default, fields with empty values are + // omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s PerInstanceConfig) MarshalJSON() ([]byte, error) { + type NoMethod PerInstanceConfig + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +// PeriodicPartialMaintenanceSchedule: The periodic partial maintenance +// schedule includes 52 weeks worth of +// maintenance windows. +// LINT.IfChange(PeriodicPartialMaintenanceSchedule) +type PeriodicPartialMaintenanceSchedule struct { + // SubType: The maintenance type in which the zone is during the given window. + // + // Possible values: + // "MAINTENANCE_SUBTYPE_UNSPECIFIED" - Default value. + // "MAINTENANCE_TYPE_CUSTOMER_MAINTENANCE" - A dedicated window for customers + // to perform their own maintenance. This + // often runs concurrently with a DISRUPTIVE_UPGRADE. + // "MAINTENANCE_TYPE_DISRUPTIVE_UPGRADE" - For disruptive updates, including + // host machine kernel or firmware + // upgrades. + // "MAINTENANCE_TYPE_STABLE" - A post-maintenance window for customers to + // conduct final testing and + // performance validation before resuming full business operations. + // "MAINTENANCE_TYPE_TRANSITION" - For preliminary, non-disruptive tasks such + // as key rotations. + SubType string `json:"subType,omitempty"` + // TargetResource: The target resource that the maintenance window is for. + // For example, "projects/my-project/zones/us-central1-a". + TargetResource string `json:"targetResource,omitempty"` + // Possible values: + // "MAINTENANCE_TYPE_UNSPECIFIED" - Default value. + // "PRIVATE_ZONE_MAINTENANCE" - The zone is in a private maintenance window. + Type string `json:"type,omitempty"` + // WindowEndTime: The end civil timestamp of the window (not inclusive). + // This contains a time zone. + WindowEndTime *DateTime `json:"windowEndTime,omitempty"` + // WindowStartTime: The start civil timestamp of the window. + // This contains a time zone. + WindowStartTime *DateTime `json:"windowStartTime,omitempty"` + // ForceSendFields is a list of field names (e.g. "SubType") to unconditionally + // include in API requests. By default, fields with empty or default values are + // omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + ForceSendFields []string `json:"-"` + // NullFields is a list of field names (e.g. "SubType") to include in API + // requests with the JSON null value. By default, fields with empty values are + // omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s PeriodicPartialMaintenanceSchedule) MarshalJSON() ([]byte, error) { + type NoMethod PeriodicPartialMaintenanceSchedule + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +// Policy: An Identity and Access Management (IAM) policy, which specifies +// access +// controls for Google Cloud resources. +// +// A `Policy` is a collection of `bindings`. A `binding` binds one or +// more +// `members`, or principals, to a single `role`. Principals can be +// user +// accounts, service accounts, Google groups, and domains (such as G Suite). +// A +// `role` is a named list of permissions; each `role` can be an IAM +// predefined +// role or a user-created custom role. +// +// For some types of Google Cloud resources, a `binding` can also specify +// a +// `condition`, which is a logical expression that allows access to a +// resource +// only if the expression evaluates to `true`. A condition can add +// constraints +// based on attributes of the request, the resource, or both. To learn +// which +// resources support conditions in their IAM policies, see the +// IAM documentation +// (https://cloud.google.com/iam/help/conditions/resource-policies). +// +// **JSON example:** +// +// ``` +// +// { +// "bindings": [ +// { +// "role": "roles/resourcemanager.organizationAdmin", +// "members": [ +// "user:mike@example.com", +// "group:admins@example.com", +// "domain:google.com", +// "serviceAccount:my-project-id@appspot.gserviceaccount.com" +// ] +// }, +// { +// "role": "roles/resourcemanager.organizationViewer", +// "members": [ +// "user:eve@example.com" +// ], +// "condition": { +// "title": "expirable access", +// "description": "Does not grant access after Sep 2020", +// "expression": "request.time < +// +// timestamp('2020-10-01T00:00:00.000Z')", +// +// } +// } +// ], +// "etag": "BwWWja0YfJA=", +// "version": 3 +// } +// +// ``` +// +// **YAML example:** +// +// ``` +// +// bindings: +// - members: +// - user:mike@example.com +// - group:admins@example.com +// - domain:google.com +// - serviceAccount:my-project-id@appspot.gserviceaccount.com +// role: roles/resourcemanager.organizationAdmin +// - members: +// - user:eve@example.com +// role: roles/resourcemanager.organizationViewer +// condition: +// title: expirable access +// description: Does not grant access after Sep 2020 +// expression: request.time < timestamp('2020-10-01T00:00:00.000Z') +// etag: BwWWja0YfJA= +// version: 3 +// +// ``` +// +// For a description of IAM and its features, see the +// IAM documentation (https://cloud.google.com/iam/docs/). +type Policy struct { + // AuditConfigs: Specifies cloud audit logging configuration for this policy. + AuditConfigs []*AuditConfig `json:"auditConfigs,omitempty"` + // Bindings: Associates a list of `members`, or principals, with a `role`. + // Optionally, + // may specify a `condition` that determines how and when the `bindings` + // are + // applied. Each of the `bindings` must contain at least one principal. + // + // The `bindings` in a `Policy` can refer to up to 1,500 principals; up to + // 250 + // of these principals can be Google groups. Each occurrence of a + // principal + // counts towards these limits. For example, if the `bindings` grant + // 50 + // different roles to `user:alice@example.com`, and not to any other + // principal, then you can add another 1,450 principals to the `bindings` + // in + // the `Policy`. + Bindings []*Binding `json:"bindings,omitempty"` + // Etag: `etag` is used for optimistic concurrency control as a way to + // help + // prevent simultaneous updates of a policy from overwriting each other. + // It is strongly suggested that systems make use of the `etag` in + // the + // read-modify-write cycle to perform policy updates in order to avoid + // race + // conditions: An `etag` is returned in the response to `getIamPolicy`, + // and + // systems are expected to put that etag in the request to `setIamPolicy` + // to + // ensure that their change will be applied to the same version of the + // policy. + // + // **Important:** If you use IAM Conditions, you must include the `etag` + // field + // whenever you call `setIamPolicy`. If you omit this field, then IAM + // allows + // you to overwrite a version `3` policy with a version `1` policy, and all + // of + // the conditions in the version `3` policy are lost. + Etag string `json:"etag,omitempty"` + // Version: Specifies the format of the policy. + // + // Valid values are `0`, `1`, and `3`. Requests that specify an invalid + // value + // are rejected. + // + // Any operation that affects conditional role bindings must specify + // version + // `3`. This requirement applies to the following operations: + // + // * Getting a policy that includes a conditional role binding + // * Adding a conditional role binding to a policy + // * Changing a conditional role binding in a policy + // * Removing any role binding, with or without a condition, from a policy + // that includes conditions + // + // **Important:** If you use IAM Conditions, you must include the `etag` + // field + // whenever you call `setIamPolicy`. If you omit this field, then IAM + // allows + // you to overwrite a version `3` policy with a version `1` policy, and all + // of + // the conditions in the version `3` policy are lost. + // + // If a policy does not include any conditions, operations on that policy + // may + // specify any valid version or leave the field unset. + // + // To learn which resources support conditions in their IAM policies, see + // the + // IAM documentation + // (https://cloud.google.com/iam/help/conditions/resource-policies). + Version int64 `json:"version,omitempty"` + + // ServerResponse contains the HTTP response code and headers from the server. + googleapi.ServerResponse `json:"-"` + // ForceSendFields is a list of field names (e.g. "AuditConfigs") to + // unconditionally include in API requests. By default, fields with empty or + // default values are omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + ForceSendFields []string `json:"-"` + // NullFields is a list of field names (e.g. "AuditConfigs") to include in API + // requests with the JSON null value. By default, fields with empty values are + // omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s Policy) MarshalJSON() ([]byte, error) { + type NoMethod Policy + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +type PreconfiguredWafSet struct { + // ExpressionSets: List of entities that are currently supported for WAF rules. + ExpressionSets []*WafExpressionSet `json:"expressionSets,omitempty"` + // ForceSendFields is a list of field names (e.g. "ExpressionSets") to + // unconditionally include in API requests. By default, fields with empty or + // default values are omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + ForceSendFields []string `json:"-"` + // NullFields is a list of field names (e.g. "ExpressionSets") to include in + // API requests with the JSON null value. By default, fields with empty values + // are omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s PreconfiguredWafSet) MarshalJSON() ([]byte, error) { + type NoMethod PreconfiguredWafSet + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +// PreservedState: Preserved state for a given instance. +type PreservedState struct { + // Disks: Preserved disks defined for this instance. + // This map is keyed with the device names of the disks. + Disks map[string]PreservedStatePreservedDisk `json:"disks,omitempty"` + // ExternalIPs: Preserved external IPs defined for this instance. + // This map is keyed with the name of the network interface. + ExternalIPs map[string]PreservedStatePreservedNetworkIp `json:"externalIPs,omitempty"` + // InternalIPs: Preserved internal IPs defined for this instance. + // This map is keyed with the name of the network interface. + InternalIPs map[string]PreservedStatePreservedNetworkIp `json:"internalIPs,omitempty"` + // Metadata: Preserved metadata defined for this instance. + Metadata map[string]string `json:"metadata,omitempty"` + // ForceSendFields is a list of field names (e.g. "Disks") to unconditionally + // include in API requests. By default, fields with empty or default values are + // omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + ForceSendFields []string `json:"-"` + // NullFields is a list of field names (e.g. "Disks") to include in API + // requests with the JSON null value. By default, fields with empty values are + // omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s PreservedState) MarshalJSON() ([]byte, error) { + type NoMethod PreservedState + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +type PreservedStatePreservedDisk struct { + // AutoDelete: These stateful disks will never be deleted during + // autohealing, + // update, instance recreate operations. This flag is used to configure + // if the disk should be deleted after it is no longer used by the group, + // e.g. when the given instance or the whole MIG is deleted. + // Note: disks attached in READ_ONLY mode cannot be + // auto-deleted. + // + // Possible values: + // "NEVER" + // "ON_PERMANENT_INSTANCE_DELETION" + AutoDelete string `json:"autoDelete,omitempty"` + // Mode: The mode in which to attach this disk, either READ_WRITE orREAD_ONLY. + // If not specified, the default is to attach the + // disk in READ_WRITE mode. + // + // Possible values: + // "READ_ONLY" - Attaches this disk in read-only mode. Multiple VM instances + // can use + // a disk in READ_ONLY mode at a time. + // "READ_WRITE" - *[Default]* Attaches this disk in READ_WRITE mode. Only + // one VM instance at a time can be attached to a disk inREAD_WRITE mode. + Mode string `json:"mode,omitempty"` + // Source: The URL of the disk resource that is stateful and should be + // attached + // to the VM instance. + Source string `json:"source,omitempty"` + // ForceSendFields is a list of field names (e.g. "AutoDelete") to + // unconditionally include in API requests. By default, fields with empty or + // default values are omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + 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. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s PreservedStatePreservedDisk) MarshalJSON() ([]byte, error) { + type NoMethod PreservedStatePreservedDisk + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +type PreservedStatePreservedNetworkIp struct { + // AutoDelete: These stateful IPs will never be released during + // autohealing, + // update or VM instance recreate operations. + // This flag is used to configure if the IP reservation should be deleted + // after it is no longer used by the group, e.g. when the given instance + // or the whole group is deleted. + // + // Possible values: + // "NEVER" + // "ON_PERMANENT_INSTANCE_DELETION" + AutoDelete string `json:"autoDelete,omitempty"` + // IpAddress: Ip address representation + IpAddress *PreservedStatePreservedNetworkIpIpAddress `json:"ipAddress,omitempty"` + // ForceSendFields is a list of field names (e.g. "AutoDelete") to + // unconditionally include in API requests. By default, fields with empty or + // default values are omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + 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. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s PreservedStatePreservedNetworkIp) MarshalJSON() ([]byte, error) { + type NoMethod PreservedStatePreservedNetworkIp + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +type PreservedStatePreservedNetworkIpIpAddress struct { + // Address: The URL of the reservation for this IP address. + Address string `json:"address,omitempty"` + // Literal: An IPv4 internal network address to assign to the instance for + // this + // network interface. + Literal string `json:"literal,omitempty"` + // ForceSendFields is a list of field names (e.g. "Address") to unconditionally + // include in API requests. By default, fields with empty or default values are + // omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + ForceSendFields []string `json:"-"` + // NullFields is a list of field names (e.g. "Address") to include in API + // requests with the JSON null value. By default, fields with empty values are + // omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s PreservedStatePreservedNetworkIpIpAddress) MarshalJSON() ([]byte, error) { + type NoMethod PreservedStatePreservedNetworkIpIpAddress + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +// PreviewFeature: Represents a single Google Compute Engine preview feature. +type PreviewFeature struct { + // ActivationStatus: Specifies whether the feature is enabled or disabled. + // + // Possible values: + // "ACTIVATION_STATE_UNSPECIFIED" + // "DISABLED" + // "ENABLED" + ActivationStatus string `json:"activationStatus,omitempty"` + // CreationTimestamp: Output only. [Output Only] Creation timestamp + // inRFC3339 + // text format. + CreationTimestamp string `json:"creationTimestamp,omitempty"` + // Description: Output only. [Output Only] Description of the feature. + Description string `json:"description,omitempty"` + // Id: Output only. [Output Only] The unique identifier for the resource. This + // identifier is + // defined by the server. + Id uint64 `json:"id,omitempty,string"` + // Kind: Output only. [Output only] The type of the feature. Always + // "compute#previewFeature" for + // preview features. + Kind string `json:"kind,omitempty"` + // Name: Name of the feature. + Name string `json:"name,omitempty"` + // RolloutOperation: Rollout operation of the feature. + RolloutOperation *PreviewFeatureRolloutOperation `json:"rolloutOperation,omitempty"` + // SelfLink: Output only. [Output Only] Server-defined URL for the resource. + SelfLink string `json:"selfLink,omitempty"` + // Status: Output only. [Output only] Status of the feature. + Status *PreviewFeatureStatus `json:"status,omitempty"` + + // ServerResponse contains the HTTP response code and headers from the server. + googleapi.ServerResponse `json:"-"` + // ForceSendFields is a list of field names (e.g. "ActivationStatus") to + // unconditionally include in API requests. By default, fields with empty or + // default values are omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + ForceSendFields []string `json:"-"` + // NullFields is a list of field names (e.g. "ActivationStatus") to include in + // API requests with the JSON null value. By default, fields with empty values + // are omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s PreviewFeature) MarshalJSON() ([]byte, error) { + type NoMethod PreviewFeature + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +type PreviewFeatureList struct { + Etag string `json:"etag,omitempty"` + // Id: [Output Only] Unique identifier for the resource; defined by the server. + Id string `json:"id,omitempty"` + // Items: A list of PreviewFeature resources. + Items []*PreviewFeature `json:"items,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 thanmaxResults, 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"` + // SelfLink: Output only. [Output Only] Server-defined URL for this resource. + SelfLink string `json:"selfLink,omitempty"` + // Unreachables: Output only. [Output Only] Unreachable + // resources. + // end_interface: MixerListResponseWithEtagBuilder + Unreachables []string `json:"unreachables,omitempty"` + // Warning: [Output Only] Informational warning message. + Warning *PreviewFeatureListWarning `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. "Etag") to unconditionally + // include in API requests. By default, fields with empty or default values are + // omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + ForceSendFields []string `json:"-"` + // NullFields is a list of field names (e.g. "Etag") to include in API requests + // with the JSON null value. By default, fields with empty values are omitted + // from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s PreviewFeatureList) MarshalJSON() ([]byte, error) { + type NoMethod PreviewFeatureList + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +// PreviewFeatureListWarning: [Output Only] Informational warning message. +type PreviewFeatureListWarning 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" - Warning about failed cleanup of transient changes made + // by a failed + // operation. + // "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was created. + // "DEPRECATED_TYPE_USED" - When deploying and at least one of the resources + // has a type marked as + // deprecated + // "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk that is + // larger than image size. + // "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the + // resources has a type marked as + // experimental + // "EXTERNAL_API_WARNING" - Warning that is present in an external api call + // "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been + // overridden. + // Deprecated unused field. + // "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an injected + // kernel, which is deprecated. + // "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB" - A WEIGHTED_MAGLEV backend + // service is associated with a health check that is + // not of type HTTP/HTTPS/HTTP2. + // "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a + // exceedingly large number of resources + // "LIST_OVERHEAD_QUOTA_EXCEED" - Resource can't be retrieved due to list + // overhead quota exceed + // which captures the amount of resources filtered out by + // user-defined list filter. + // "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type + // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is not + // assigned to an instance on the + // network. + // "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot ip + // forward. + // "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE" - The route's nextHopInstance + // URL refers to an instance that does not have an + // ipv6 interface on the same network as the route. + // "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL refers to + // an instance that does not exist. + // "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance URL + // refers to an instance that is not on the + // same network as the route. + // "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not have a + // status of RUNNING. + // "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to continue + // the process despite + // the mentioned error. + // "NO_RESULTS_ON_PAGE" - No results are present on a particular list page. + // "PARTIAL_SUCCESS" - Success is reported, but some results may be missing + // due to errors + // "QUOTA_INFO_UNAVAILABLE" - Quota information is not available to client + // requests (e.g: + // regions.list). + // "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource that + // requires a TOS they have not + // accepted. + // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a resource is + // in use. + // "RESOURCE_NOT_DELETED" - One or more of the resources set to auto-delete + // could not be deleted + // because they were in use. + // "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is + // ignored. + // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in instance + // group manager is valid as such, but + // its application does not make a lot of sense, because it allows only + // single instance in instance group. + // "UNDECLARED_PROPERTIES" - When undeclared properties in the schema are + // present + // "UNREACHABLE" - A given scope cannot be reached. + 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 []*PreviewFeatureListWarningData `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 or default values are + // omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + 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. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s PreviewFeatureListWarning) MarshalJSON() ([]byte, error) { + type NoMethod PreviewFeatureListWarning + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +type PreviewFeatureListWarningData 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 or default values are + // omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + 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. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s PreviewFeatureListWarningData) MarshalJSON() ([]byte, error) { + type NoMethod PreviewFeatureListWarningData + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +// PreviewFeatureRolloutOperation: Represents the rollout operation +type PreviewFeatureRolloutOperation struct { + // RolloutInput: Input only. The input for the rollout operation. + RolloutInput *PreviewFeatureRolloutOperationRolloutInput `json:"rolloutInput,omitempty"` + // ForceSendFields is a list of field names (e.g. "RolloutInput") to + // unconditionally include in API requests. By default, fields with empty or + // default values are omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + ForceSendFields []string `json:"-"` + // NullFields is a list of field names (e.g. "RolloutInput") to include in API + // requests with the JSON null value. By default, fields with empty values are + // omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s PreviewFeatureRolloutOperation) MarshalJSON() ([]byte, error) { + type NoMethod PreviewFeatureRolloutOperation + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +// PreviewFeatureRolloutOperationRolloutInput: Represents the input for the +// rollout operation. +type PreviewFeatureRolloutOperationRolloutInput struct { + // Name: The name of the rollout + // plan + // Ex. + // organizations//locations/global/rolloutPlans/ + // Ex. + // folders//locations/global/rolloutPlans/ + // Ex. + // projects//locations/global/rolloutPlans/. + Name string `json:"name,omitempty"` + // PredefinedRolloutPlan: Predefined rollout plan. + // + // Possible values: + // "ROLLOUT_PLAN_FAST_ROLLOUT" + // "ROLLOUT_PLAN_TWO_DAY_ROLLOUT" + // "ROLLOUT_PLAN_UNSPECIFIED" + PredefinedRolloutPlan string `json:"predefinedRolloutPlan,omitempty"` + // ForceSendFields is a list of field names (e.g. "Name") to unconditionally + // include in API requests. By default, fields with empty or default values are + // omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + ForceSendFields []string `json:"-"` + // NullFields is a list of field names (e.g. "Name") to include in API requests + // with the JSON null value. By default, fields with empty values are omitted + // from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s PreviewFeatureRolloutOperationRolloutInput) MarshalJSON() ([]byte, error) { + type NoMethod PreviewFeatureRolloutOperationRolloutInput + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +// PreviewFeatureStatus: [Output Only] The status of the feature. +type PreviewFeatureStatus struct { + // Description: Output only. [Output Only] The description of the feature. + Description string `json:"description,omitempty"` + // HelpLink: Output only. [Output Only] Link to the public documentation for + // the feature. + HelpLink string `json:"helpLink,omitempty"` + ReleaseStatus *PreviewFeatureStatusReleaseStatus `json:"releaseStatus,omitempty"` + // ForceSendFields is a list of field names (e.g. "Description") to + // unconditionally include in API requests. By default, fields with empty or + // default values are omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + ForceSendFields []string `json:"-"` + // NullFields is a list of field names (e.g. "Description") to include in API + // requests with the JSON null value. By default, fields with empty values are + // omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s PreviewFeatureStatus) MarshalJSON() ([]byte, error) { + type NoMethod PreviewFeatureStatus + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +// PreviewFeatureStatusReleaseStatus: [Output Only] The release status of the +// feature. +type PreviewFeatureStatusReleaseStatus struct { + // Stage: Output only. [Output Only] The stage of the feature. + // + // Possible values: + // "DEPRECATED" + // "GA" + // "PREVIEW" + // "STAGE_UNSPECIFIED" + Stage string `json:"stage,omitempty"` + // UpdateDate: Output only. The last date when a feature transitioned between + // ReleaseStatuses. + UpdateDate *Date `json:"updateDate,omitempty"` + // ForceSendFields is a list of field names (e.g. "Stage") to unconditionally + // include in API requests. By default, fields with empty or default values are + // omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + ForceSendFields []string `json:"-"` + // NullFields is a list of field names (e.g. "Stage") to include in API + // requests with the JSON null value. By default, fields with empty values are + // omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s PreviewFeatureStatusReleaseStatus) MarshalJSON() ([]byte, error) { + type NoMethod PreviewFeatureStatusReleaseStatus + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +// Project: Represents a Project resource. +// +// A project is used to organize resources in a Google Cloud +// Platform +// environment. For more information, read about the +// Resource Hierarchy. +type Project struct { + // CloudArmorTier: Output only. [Output Only] The Cloud Armor tier for this + // project. It can be one of the + // following values: CA_STANDARD,CA_ENTERPRISE_PAYGO. + // + // If this field is not specified, it is assumed to beCA_STANDARD. + // + // Possible values: + // "CA_ENTERPRISE_ANNUAL" - Enterprise tier protection billed annually. + // "CA_ENTERPRISE_PAYGO" - Enterprise tier protection billed monthly. + // "CA_STANDARD" - Standard protection. + CloudArmorTier string `json:"cloudArmorTier,omitempty"` + // CommonInstanceMetadata: Metadata key/value pairs available to all instances + // contained in this + // project. See Custom + // metadata for more information. + CommonInstanceMetadata *Metadata `json:"commonInstanceMetadata,omitempty"` + // CreationTimestamp: [Output Only] Creation timestamp inRFC3339 + // text format. + CreationTimestamp string `json:"creationTimestamp,omitempty"` + // DefaultNetworkTier: This signifies the default network tier used for + // configuring resources of + // the project and can only take the following values:PREMIUM, STANDARD. + // Initially the default network + // tier is PREMIUM. + // + // Possible values: + // "FIXED_STANDARD" - Public internet quality with fixed bandwidth. + // "PREMIUM" - High quality, Google-grade network tier, support for all + // networking + // products. + // "STANDARD" - Public internet quality, only limited support for other + // networking + // products. + // "STANDARD_OVERRIDES_FIXED_STANDARD" - (Output only) Temporary tier for + // FIXED_STANDARD when fixed standard tier + // is expired or not configured. + DefaultNetworkTier string `json:"defaultNetworkTier,omitempty"` + // DefaultServiceAccount: [Output Only] Default service account used by VMs + // running in this project. + DefaultServiceAccount string `json:"defaultServiceAccount,omitempty"` + // Description: An optional textual description of the resource. + Description string `json:"description,omitempty"` + // EnabledFeatures: An optional list of restricted features enabled for use on + // this project. + EnabledFeatures []string `json:"enabledFeatures,omitempty"` + // Id: [Output Only] The unique identifier for the resource. This identifier + // is + // defined by the server. This is *not* the project ID, and is + // just a unique ID used by Compute Engine to identify resources. + Id uint64 `json:"id,omitempty,string"` + // Kind: Output only. [Output Only] Type of the resource. Always + // compute#project for + // projects. + Kind string `json:"kind,omitempty"` + // Name: The project ID. For example: my-example-project. Use the + // project ID to make requests to Compute Engine. + Name string `json:"name,omitempty"` + // Quotas: [Output Only] Quotas assigned to this project. + Quotas []*Quota `json:"quotas,omitempty"` + // SelfLink: [Output Only] Server-defined URL for the resource. + SelfLink string `json:"selfLink,omitempty"` + // UsageExportLocation: An optional naming prefix for daily usage reports and + // the Google Cloud + // Storage bucket where they are stored. + UsageExportLocation *UsageExportLocation `json:"usageExportLocation,omitempty"` + // VmDnsSetting: Output only. [Output Only] Default internal DNS setting used + // by VMs running in + // this project. + // + // Possible values: + // "GLOBAL_DEFAULT" + // "UNSPECIFIED_VM_DNS_SETTING" + // "ZONAL_DEFAULT" + // "ZONAL_ONLY" + VmDnsSetting string `json:"vmDnsSetting,omitempty"` + // XpnProjectStatus: [Output Only] The role this project has in a shared VPC + // configuration. + // Currently, only projects with the host role, which is specified by the + // value HOST, are differentiated. + // + // Possible values: + // "HOST" + // "UNSPECIFIED_XPN_PROJECT_STATUS" + XpnProjectStatus string `json:"xpnProjectStatus,omitempty"` + + // ServerResponse contains the HTTP response code and headers from the server. + googleapi.ServerResponse `json:"-"` + // ForceSendFields is a list of field names (e.g. "CloudArmorTier") to + // unconditionally include in API requests. By default, fields with empty or + // default values are omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + ForceSendFields []string `json:"-"` + // NullFields is a list of field names (e.g. "CloudArmorTier") to include in + // API requests with the JSON null value. By default, fields with empty values + // are omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s Project) MarshalJSON() ([]byte, error) { + type NoMethod Project + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +type ProjectsDisableXpnResourceRequest struct { + // XpnResource: Service resource (a.k.a service project) ID. + XpnResource *XpnResourceId `json:"xpnResource,omitempty"` + // ForceSendFields is a list of field names (e.g. "XpnResource") to + // unconditionally include in API requests. By default, fields with empty or + // default values are omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + ForceSendFields []string `json:"-"` + // NullFields is a list of field names (e.g. "XpnResource") to include in API + // requests with the JSON null value. By default, fields with empty values are + // omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s ProjectsDisableXpnResourceRequest) MarshalJSON() ([]byte, error) { + type NoMethod ProjectsDisableXpnResourceRequest + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +type ProjectsEnableXpnResourceRequest struct { + // XpnResource: Service resource (a.k.a service project) ID. + XpnResource *XpnResourceId `json:"xpnResource,omitempty"` + // ForceSendFields is a list of field names (e.g. "XpnResource") to + // unconditionally include in API requests. By default, fields with empty or + // default values are omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + ForceSendFields []string `json:"-"` + // NullFields is a list of field names (e.g. "XpnResource") to include in API + // requests with the JSON null value. By default, fields with empty values are + // omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s ProjectsEnableXpnResourceRequest) MarshalJSON() ([]byte, error) { + type NoMethod ProjectsEnableXpnResourceRequest + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +type ProjectsGetXpnResources struct { + // Kind: Output only. [Output Only] Type of resource. + // Alwayscompute#projectsGetXpnResources for lists of service resources + // (a.k.a service projects) + Kind string `json:"kind,omitempty"` + // NextPageToken: Output only. [Output Only] This token allows you to get the + // next page of results for + // list requests. If the number of results is larger thanmaxResults, 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"` + // Resources: Service resources (a.k.a service projects) attached to this + // project as + // their shared VPC host. + Resources []*XpnResourceId `json:"resources,omitempty"` + + // ServerResponse contains the HTTP response code and headers from the server. + googleapi.ServerResponse `json:"-"` + // ForceSendFields is a list of field names (e.g. "Kind") to unconditionally + // include in API requests. By default, fields with empty or default values are + // omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + ForceSendFields []string `json:"-"` + // NullFields is a list of field names (e.g. "Kind") to include in API requests + // with the JSON null value. By default, fields with empty values are omitted + // from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s ProjectsGetXpnResources) MarshalJSON() ([]byte, error) { + type NoMethod ProjectsGetXpnResources + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +type ProjectsListXpnHostsRequest struct { + // Organization: Optional organization ID managed by Cloud Resource Manager, + // for which to + // list shared VPC host projects. If not specified, the organization will + // be + // inferred from the project. + Organization string `json:"organization,omitempty"` + // ForceSendFields is a list of field names (e.g. "Organization") to + // unconditionally include in API requests. By default, fields with empty or + // default values are omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + ForceSendFields []string `json:"-"` + // NullFields is a list of field names (e.g. "Organization") to include in API + // requests with the JSON null value. By default, fields with empty values are + // omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s ProjectsListXpnHostsRequest) MarshalJSON() ([]byte, error) { + type NoMethod ProjectsListXpnHostsRequest + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +type ProjectsSetCloudArmorTierRequest struct { + // CloudArmorTier: Managed protection tier to be set. + // + // Possible values: + // "CA_ENTERPRISE_ANNUAL" - Enterprise tier protection billed annually. + // "CA_ENTERPRISE_PAYGO" - Enterprise tier protection billed monthly. + // "CA_STANDARD" - Standard protection. + CloudArmorTier string `json:"cloudArmorTier,omitempty"` + // ForceSendFields is a list of field names (e.g. "CloudArmorTier") to + // unconditionally include in API requests. By default, fields with empty or + // default values are omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + ForceSendFields []string `json:"-"` + // NullFields is a list of field names (e.g. "CloudArmorTier") to include in + // API requests with the JSON null value. By default, fields with empty values + // are omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s ProjectsSetCloudArmorTierRequest) MarshalJSON() ([]byte, error) { + type NoMethod ProjectsSetCloudArmorTierRequest + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +type ProjectsSetDefaultNetworkTierRequest struct { + // NetworkTier: Default network tier to be set. + // + // Possible values: + // "FIXED_STANDARD" - Public internet quality with fixed bandwidth. + // "PREMIUM" - High quality, Google-grade network tier, support for all + // networking + // products. + // "STANDARD" - Public internet quality, only limited support for other + // networking + // products. + // "STANDARD_OVERRIDES_FIXED_STANDARD" - (Output only) Temporary tier for + // FIXED_STANDARD when fixed standard tier + // is expired or not configured. + NetworkTier string `json:"networkTier,omitempty"` + // ForceSendFields is a list of field names (e.g. "NetworkTier") to + // unconditionally include in API requests. By default, fields with empty or + // default values are omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + ForceSendFields []string `json:"-"` + // NullFields is a list of field names (e.g. "NetworkTier") to include in API + // requests with the JSON null value. By default, fields with empty values are + // omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s ProjectsSetDefaultNetworkTierRequest) MarshalJSON() ([]byte, error) { + type NoMethod ProjectsSetDefaultNetworkTierRequest + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +// PublicAdvertisedPrefix: A public advertised prefix represents an aggregated +// IP prefix or netblock +// which customers bring to cloud. The IP prefix is a single unit of +// route +// advertisement and is announced globally to the internet. +type PublicAdvertisedPrefix struct { + // ByoipApiVersion: Output only. [Output Only] The version of BYOIP API. + // + // Possible values: + // "V1" - This public advertised prefix can be used to create both regional + // and + // global public delegated prefixes. It usually takes 4 weeks to create + // or + // delete a public delegated prefix. The BGP status cannot be changed. + // "V2" - This public advertised prefix can only be used to create regional + // public + // delegated prefixes. Public delegated prefix creation and deletion + // takes + // minutes and the BGP status can be modified. + ByoipApiVersion string `json:"byoipApiVersion,omitempty"` + // CreationTimestamp: Output only. [Output Only] Creation timestamp + // inRFC3339 + // text format. + CreationTimestamp string `json:"creationTimestamp,omitempty"` + // Description: An optional description of this resource. Provide this property + // when you + // create the resource. + Description string `json:"description,omitempty"` + // DnsVerificationIp: The address to be used for reverse DNS verification. + DnsVerificationIp string `json:"dnsVerificationIp,omitempty"` + // Fingerprint: Fingerprint of this resource. A hash of the contents stored in + // this object. + // This field is used in optimistic locking. This field will be ignored + // when + // inserting a new PublicAdvertisedPrefix. An up-to-date + // fingerprint must be provided in order to update thePublicAdvertisedPrefix, + // otherwise the request will fail with + // error 412 conditionNotMet. + // + // To see the latest fingerprint, make a get() request to + // retrieve a PublicAdvertisedPrefix. + Fingerprint string `json:"fingerprint,omitempty"` + // Id: Output only. [Output Only] The unique identifier for the resource type. + // The server + // generates this identifier. + Id uint64 `json:"id,omitempty,string"` + // IpCidrRange: The address range, in CIDR format, represented by this public + // advertised + // prefix. + IpCidrRange string `json:"ipCidrRange,omitempty"` + // Ipv6AccessType: The internet access type for IPv6 Public Advertised + // Prefixes. + // + // Possible values: + // "EXTERNAL" - Default IPv6 access type. The prefix will be announced to the + // internet. + // All children Public Delegated Prefixes will have IPv6 access type + // as + // EXTERNAL. + // "INTERNAL" - The prefix will not be announced to the internet. Prefix will + // be used + // privately within Cloud. All children Public Delegated Prefixes + // will have IPv6 access type as INTERNAL. + Ipv6AccessType string `json:"ipv6AccessType,omitempty"` + // Kind: Output only. [Output Only] Type of the resource. + // Alwayscompute#publicAdvertisedPrefix for public advertised prefixes. + Kind string `json:"kind,omitempty"` + // Name: Name of the resource. Provided by the client when the resource is + // created. + // The name must be 1-63 characters long, and comply withRFC1035. + // 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. + Name string `json:"name,omitempty"` + // PdpScope: Specifies how child public delegated prefix will be scoped. It + // could + // be one of following values: + // + // + // - `REGIONAL`: The public delegated prefix is regional only. The + // provisioning will take a few minutes. + // - `GLOBAL`: The public delegated prefix is global only. The + // provisioning will take ~4 weeks. + // - `GLOBAL_AND_REGIONAL` [output only]: The public delegated prefixes + // is + // BYOIP V1 legacy prefix. This is output only value and no longer + // supported in BYOIP V2. + // + // Possible values: + // "GLOBAL" - The public delegated prefix is global only. The provisioning + // will take ~4 + // weeks. + // "GLOBAL_AND_REGIONAL" - The public delegated prefixes is BYOIP V1 legacy + // prefix. This is output + // only value and no longer supported in BYOIP V2. + // "REGIONAL" - The public delegated prefix is regional only. The + // provisioning will take + // a few minutes. + PdpScope string `json:"pdpScope,omitempty"` + // PublicDelegatedPrefixs: Output only. [Output Only] The list of public + // delegated prefixes that exist for this + // public advertised prefix. + PublicDelegatedPrefixs []*PublicAdvertisedPrefixPublicDelegatedPrefix `json:"publicDelegatedPrefixs,omitempty"` + // SelfLink: Output only. [Output Only] Server-defined URL for the resource. + SelfLink string `json:"selfLink,omitempty"` + // SharedSecret: [Output Only] The shared secret to be used for reverse DNS + // verification. + SharedSecret string `json:"sharedSecret,omitempty"` + // Status: The status of the public advertised prefix. Possible values + // include: + // + // + // - `INITIAL`: RPKI validation is complete. + // - `PTR_CONFIGURED`: User has configured the PTR. + // - `VALIDATED`: Reverse DNS lookup is successful. + // - `REVERSE_DNS_LOOKUP_FAILED`: Reverse DNS lookup failed. + // - `PREFIX_CONFIGURATION_IN_PROGRESS`: The prefix is being + // configured. + // - `PREFIX_CONFIGURATION_COMPLETE`: The prefix is fully configured. + // - `PREFIX_REMOVAL_IN_PROGRESS`: The prefix is being removed. + // + // Possible values: + // "ANNOUNCED_TO_INTERNET" - The prefix is announced to Internet. + // "INITIAL" - RPKI validation is complete. + // "PREFIX_CONFIGURATION_COMPLETE" - The prefix is fully configured. + // "PREFIX_CONFIGURATION_IN_PROGRESS" - The prefix is being configured. + // "PREFIX_REMOVAL_IN_PROGRESS" - The prefix is being removed. + // "PTR_CONFIGURED" - User has configured the PTR. + // "READY_TO_ANNOUNCE" - The prefix is currently withdrawn but ready to be + // announced. + // "REVERSE_DNS_LOOKUP_FAILED" - Reverse DNS lookup failed. + // "VALIDATED" - Reverse DNS lookup is successful. + Status string `json:"status,omitempty"` + + // ServerResponse contains the HTTP response code and headers from the server. + googleapi.ServerResponse `json:"-"` + // ForceSendFields is a list of field names (e.g. "ByoipApiVersion") to + // unconditionally include in API requests. By default, fields with empty or + // default values are omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + ForceSendFields []string `json:"-"` + // NullFields is a list of field names (e.g. "ByoipApiVersion") to include in + // API requests with the JSON null value. By default, fields with empty values + // are omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s PublicAdvertisedPrefix) MarshalJSON() ([]byte, error) { + type NoMethod PublicAdvertisedPrefix + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +type PublicAdvertisedPrefixList struct { + // Id: [Output Only] Unique identifier for the resource; defined by the server. + Id string `json:"id,omitempty"` + // Items: A list of PublicAdvertisedPrefix resources. + Items []*PublicAdvertisedPrefix `json:"items,omitempty"` + // Kind: Output only. [Output Only] Type of the resource. + // Alwayscompute#publicAdvertisedPrefix for public advertised prefixes. + 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 thanmaxResults, 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"` + // SelfLink: [Output Only] Server-defined URL for this resource. + SelfLink string `json:"selfLink,omitempty"` + // Warning: [Output Only] Informational warning message. + Warning *PublicAdvertisedPrefixListWarning `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 or default values are + // omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + 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. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s PublicAdvertisedPrefixList) MarshalJSON() ([]byte, error) { + type NoMethod PublicAdvertisedPrefixList + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +// PublicAdvertisedPrefixListWarning: [Output Only] Informational warning +// message. +type PublicAdvertisedPrefixListWarning 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" - Warning about failed cleanup of transient changes made + // by a failed + // operation. + // "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was created. + // "DEPRECATED_TYPE_USED" - When deploying and at least one of the resources + // has a type marked as + // deprecated + // "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk that is + // larger than image size. + // "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the + // resources has a type marked as + // experimental + // "EXTERNAL_API_WARNING" - Warning that is present in an external api call + // "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been + // overridden. + // Deprecated unused field. + // "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an injected + // kernel, which is deprecated. + // "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB" - A WEIGHTED_MAGLEV backend + // service is associated with a health check that is + // not of type HTTP/HTTPS/HTTP2. + // "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a + // exceedingly large number of resources + // "LIST_OVERHEAD_QUOTA_EXCEED" - Resource can't be retrieved due to list + // overhead quota exceed + // which captures the amount of resources filtered out by + // user-defined list filter. + // "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type + // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is not + // assigned to an instance on the + // network. + // "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot ip + // forward. + // "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE" - The route's nextHopInstance + // URL refers to an instance that does not have an + // ipv6 interface on the same network as the route. + // "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL refers to + // an instance that does not exist. + // "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance URL + // refers to an instance that is not on the + // same network as the route. + // "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not have a + // status of RUNNING. + // "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to continue + // the process despite + // the mentioned error. + // "NO_RESULTS_ON_PAGE" - No results are present on a particular list page. + // "PARTIAL_SUCCESS" - Success is reported, but some results may be missing + // due to errors + // "QUOTA_INFO_UNAVAILABLE" - Quota information is not available to client + // requests (e.g: + // regions.list). + // "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource that + // requires a TOS they have not + // accepted. + // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a resource is + // in use. + // "RESOURCE_NOT_DELETED" - One or more of the resources set to auto-delete + // could not be deleted + // because they were in use. + // "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is + // ignored. + // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in instance + // group manager is valid as such, but + // its application does not make a lot of sense, because it allows only + // single instance in instance group. + // "UNDECLARED_PROPERTIES" - When undeclared properties in the schema are + // present + // "UNREACHABLE" - A given scope cannot be reached. + 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 []*PublicAdvertisedPrefixListWarningData `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 or default values are + // omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + 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. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s PublicAdvertisedPrefixListWarning) MarshalJSON() ([]byte, error) { + type NoMethod PublicAdvertisedPrefixListWarning + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +type PublicAdvertisedPrefixListWarningData 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 or default values are + // omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + 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. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s PublicAdvertisedPrefixListWarningData) MarshalJSON() ([]byte, error) { + type NoMethod PublicAdvertisedPrefixListWarningData + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +// PublicAdvertisedPrefixPublicDelegatedPrefix: Represents a CIDR range which +// can be used to assign addresses. +type PublicAdvertisedPrefixPublicDelegatedPrefix struct { + // IpRange: The IP address range of the public delegated prefix + IpRange string `json:"ipRange,omitempty"` + // Name: The name of the public delegated prefix + Name string `json:"name,omitempty"` + // Project: The project number of the public delegated prefix + Project string `json:"project,omitempty"` + // Region: The region of the public delegated prefix if it is regional. If + // absent, + // the prefix is global. + Region string `json:"region,omitempty"` + // Status: The status of the public delegated prefix. Possible values are: + // INITIALIZING: The public delegated prefix is being initialized and + // addresses cannot be created yet. + // ANNOUNCED: The public delegated prefix is active. + Status string `json:"status,omitempty"` + // ForceSendFields is a list of field names (e.g. "IpRange") to unconditionally + // include in API requests. By default, fields with empty or default values are + // omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + ForceSendFields []string `json:"-"` + // NullFields is a list of field names (e.g. "IpRange") to include in API + // requests with the JSON null value. By default, fields with empty values are + // omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s PublicAdvertisedPrefixPublicDelegatedPrefix) MarshalJSON() ([]byte, error) { + type NoMethod PublicAdvertisedPrefixPublicDelegatedPrefix + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +// PublicDelegatedPrefix: A PublicDelegatedPrefix resource represents an IP +// block within a +// PublicAdvertisedPrefix that is configured within a single cloud +// scope +// (global or region). IPs in the block can be allocated to resources +// within +// that scope. Public delegated prefixes may be further broken up into +// smaller IP blocks in the same scope as the parent block. +type PublicDelegatedPrefix struct { + // AllocatablePrefixLength: The allocatable prefix length supported by this + // public delegated prefix. + // This field is optional and cannot be set for prefixes in DELEGATION mode. + // It cannot be set for IPv4 prefixes either, and it always defaults to 32. + AllocatablePrefixLength int64 `json:"allocatablePrefixLength,omitempty"` + // ByoipApiVersion: Output only. [Output Only] The version of BYOIP API. + // + // Possible values: + // "V1" - This public delegated prefix usually takes 4 weeks to delete, and + // the BGP + // status cannot be changed. Announce and Withdraw APIs can not be used on + // this prefix. + // "V2" - This public delegated prefix takes minutes to delete. Announce + // and + // Withdraw APIs can be used on this prefix to change the BGP status. + ByoipApiVersion string `json:"byoipApiVersion,omitempty"` + // CreationTimestamp: Output only. [Output Only] Creation timestamp + // inRFC3339 + // text format. + CreationTimestamp string `json:"creationTimestamp,omitempty"` + // Description: An optional description of this resource. Provide this property + // when you + // create the resource. + Description string `json:"description,omitempty"` + // EnableEnhancedIpv4Allocation: Output only. [Output Only] Whether this PDP + // supports enhanced IPv4 allocations. + // Applicable for IPv4 PDPs only. + EnableEnhancedIpv4Allocation bool `json:"enableEnhancedIpv4Allocation,omitempty"` + // Fingerprint: Fingerprint of this resource. A hash of the contents stored in + // this object. + // This field is used in optimistic locking. This field will be ignored + // when + // inserting a new PublicDelegatedPrefix. An up-to-date + // fingerprint must be provided in order to update thePublicDelegatedPrefix, + // otherwise the request will fail with + // error 412 conditionNotMet. + // + // To see the latest fingerprint, make a get() request to + // retrieve a PublicDelegatedPrefix. + Fingerprint string `json:"fingerprint,omitempty"` + // Id: Output only. [Output Only] The unique identifier for the resource type. + // The server + // generates this identifier. + Id uint64 `json:"id,omitempty,string"` + // IpCidrRange: The IP address range, in CIDR format, represented by this + // public + // delegated prefix. + IpCidrRange string `json:"ipCidrRange,omitempty"` + // Ipv6AccessType: Output only. [Output Only] The internet access type for IPv6 + // Public Delegated Prefixes. + // Inherited from parent prefix. + // + // Possible values: + // "EXTERNAL" - The parent public advertised prefix will be announced to the + // internet. + // All children public delegated prefixes will have IPv6 access type + // as + // EXTERNAL. + // "INTERNAL" - The parent public advertised prefix will not be announced to + // the + // internet. Prefix will be used privately within Cloud. All children + // public delegated prefixes will have IPv6 access type as INTERNAL. + Ipv6AccessType string `json:"ipv6AccessType,omitempty"` + // IsLiveMigration: If true, the prefix will be live migrated. + IsLiveMigration bool `json:"isLiveMigration,omitempty"` + // Kind: Output only. [Output Only] Type of the resource. + // Alwayscompute#publicDelegatedPrefix for public delegated prefixes. + Kind string `json:"kind,omitempty"` + // Mode: The public delegated prefix mode for IPv6 only. + // + // Possible values: + // "DELEGATION" - The public delegated prefix is used for further + // sub-delegation only. Such + // prefixes cannot set allocatablePrefixLength. + // "EXTERNAL_IPV6_FORWARDING_RULE_CREATION" - The public delegated prefix is + // used for creating forwarding rules only. + // Such prefixes cannot set publicDelegatedSubPrefixes. Parent public + // delegated prefix must have IPv6 access type as EXTERNAL. + // "EXTERNAL_IPV6_SUBNETWORK_CREATION" - The public delegated prefix is used + // for creating dual-mode subnetworks + // only. Such prefixes cannot set publicDelegatedSubPrefixes. Parent + // public + // delegated prefix must have IPv6 access type as EXTERNAL. + // "INTERNAL_IPV6_SUBNETWORK_CREATION" - The public delegated prefix is used + // for creating dual stack or IPv6-only + // subnetwork with internal access only. Such prefixes cannot + // set + // publicDelegatedSubPrefixes and allocatablePrefixLength. Parent + // public + // delegated prefix must have IPv6 access type as INTERNAL. + Mode string `json:"mode,omitempty"` + // Name: Name of the resource. Provided by the client when the resource is + // created. + // The name must be 1-63 characters long, and comply withRFC1035. + // 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. + Name string `json:"name,omitempty"` + // ParentPrefix: The URL of parent prefix. Either PublicAdvertisedPrefix + // or + // PublicDelegatedPrefix. + ParentPrefix string `json:"parentPrefix,omitempty"` + // PublicDelegatedSubPrefixs: The list of sub public delegated prefixes that + // exist for this public + // delegated prefix. + PublicDelegatedSubPrefixs []*PublicDelegatedPrefixPublicDelegatedSubPrefix `json:"publicDelegatedSubPrefixs,omitempty"` + // Region: Output only. [Output Only] URL of the region where the public + // delegated prefix resides. + // This field applies only to the region resource. You must specify this + // field as part of the HTTP request URL. It is not settable as a field in + // the request body. + Region string `json:"region,omitempty"` + // SelfLink: Output only. [Output Only] Server-defined URL for the resource. + SelfLink string `json:"selfLink,omitempty"` + // Status: [Output Only] The status of the public delegated prefix, which can + // be one + // of following values: + // + // + // - `INITIALIZING` The public delegated prefix is being initialized and + // addresses cannot be created yet. + // - `READY_TO_ANNOUNCE` The public delegated prefix is a live migration + // prefix and is active. + // - `ANNOUNCED` The public delegated prefix is announced and ready to + // use. + // - `DELETING` The public delegated prefix is being deprovsioned. + // - `ACTIVE` The public delegated prefix is ready to use. + // + // Possible values: + // "ACTIVE" - The public delegated prefix is ready to use. + // "ANNOUNCED" - The public delegated prefix is announced and ready to use. + // "ANNOUNCED_TO_GOOGLE" - The prefix is announced within Google network. + // "ANNOUNCED_TO_INTERNET" - The prefix is announced to Internet and within + // Google. + // "DELETING" - The public delegated prefix is being deprovsioned. + // "INITIALIZING" - The public delegated prefix is being initialized and + // addresses cannot be + // created yet. + // "READY_TO_ANNOUNCE" - The public delegated prefix is currently withdrawn + // but ready to be + // announced. + Status string `json:"status,omitempty"` + + // ServerResponse contains the HTTP response code and headers from the server. + googleapi.ServerResponse `json:"-"` + // ForceSendFields is a list of field names (e.g. "AllocatablePrefixLength") to + // unconditionally include in API requests. By default, fields with empty or + // default values are omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + ForceSendFields []string `json:"-"` + // NullFields is a list of field names (e.g. "AllocatablePrefixLength") to + // include in API requests with the JSON null value. By default, fields with + // empty values are omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s PublicDelegatedPrefix) MarshalJSON() ([]byte, error) { + type NoMethod PublicDelegatedPrefix + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +type PublicDelegatedPrefixAggregatedList struct { + // Id: [Output Only] Unique identifier for the resource; defined by the server. + Id string `json:"id,omitempty"` + // Items: A list of PublicDelegatedPrefixesScopedList resources. + Items map[string]PublicDelegatedPrefixesScopedList `json:"items,omitempty"` + // Kind: Output only. [Output Only] Type of the resource. + // Alwayscompute#publicDelegatedPrefixAggregatedList for aggregated + // lists of public delegated prefixes. + 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 thanmaxResults, 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"` + // SelfLink: [Output Only] Server-defined URL for this resource. + SelfLink string `json:"selfLink,omitempty"` + // Unreachables: Output only. [Output Only] Unreachable resources. + Unreachables []string `json:"unreachables,omitempty"` + // Warning: [Output Only] Informational warning message. + Warning *PublicDelegatedPrefixAggregatedListWarning `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 or default values are + // omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + 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. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s PublicDelegatedPrefixAggregatedList) MarshalJSON() ([]byte, error) { + type NoMethod PublicDelegatedPrefixAggregatedList + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +// PublicDelegatedPrefixAggregatedListWarning: [Output Only] Informational +// warning message. +type PublicDelegatedPrefixAggregatedListWarning 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" - Warning about failed cleanup of transient changes made + // by a failed + // operation. + // "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was created. + // "DEPRECATED_TYPE_USED" - When deploying and at least one of the resources + // has a type marked as + // deprecated + // "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk that is + // larger than image size. + // "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the + // resources has a type marked as + // experimental + // "EXTERNAL_API_WARNING" - Warning that is present in an external api call + // "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been + // overridden. + // Deprecated unused field. + // "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an injected + // kernel, which is deprecated. + // "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB" - A WEIGHTED_MAGLEV backend + // service is associated with a health check that is + // not of type HTTP/HTTPS/HTTP2. + // "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a + // exceedingly large number of resources + // "LIST_OVERHEAD_QUOTA_EXCEED" - Resource can't be retrieved due to list + // overhead quota exceed + // which captures the amount of resources filtered out by + // user-defined list filter. + // "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type + // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is not + // assigned to an instance on the + // network. + // "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot ip + // forward. + // "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE" - The route's nextHopInstance + // URL refers to an instance that does not have an + // ipv6 interface on the same network as the route. + // "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL refers to + // an instance that does not exist. + // "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance URL + // refers to an instance that is not on the + // same network as the route. + // "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not have a + // status of RUNNING. + // "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to continue + // the process despite + // the mentioned error. + // "NO_RESULTS_ON_PAGE" - No results are present on a particular list page. + // "PARTIAL_SUCCESS" - Success is reported, but some results may be missing + // due to errors + // "QUOTA_INFO_UNAVAILABLE" - Quota information is not available to client + // requests (e.g: + // regions.list). + // "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource that + // requires a TOS they have not + // accepted. + // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a resource is + // in use. + // "RESOURCE_NOT_DELETED" - One or more of the resources set to auto-delete + // could not be deleted + // because they were in use. + // "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is + // ignored. + // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in instance + // group manager is valid as such, but + // its application does not make a lot of sense, because it allows only + // single instance in instance group. + // "UNDECLARED_PROPERTIES" - When undeclared properties in the schema are + // present + // "UNREACHABLE" - A given scope cannot be reached. + 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 []*PublicDelegatedPrefixAggregatedListWarningData `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 or default values are + // omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + 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. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s PublicDelegatedPrefixAggregatedListWarning) MarshalJSON() ([]byte, error) { + type NoMethod PublicDelegatedPrefixAggregatedListWarning + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +type PublicDelegatedPrefixAggregatedListWarningData 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 or default values are + // omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + 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. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s PublicDelegatedPrefixAggregatedListWarningData) MarshalJSON() ([]byte, error) { + type NoMethod PublicDelegatedPrefixAggregatedListWarningData + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +type PublicDelegatedPrefixList struct { + // Id: [Output Only] Unique identifier for the resource; defined by the server. + Id string `json:"id,omitempty"` + // Items: A list of PublicDelegatedPrefix resources. + Items []*PublicDelegatedPrefix `json:"items,omitempty"` + // Kind: Output only. [Output Only] Type of the resource. + // Alwayscompute#publicDelegatedPrefixList for public delegated + // prefixes. + 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 thanmaxResults, 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"` + // SelfLink: [Output Only] Server-defined URL for this resource. + SelfLink string `json:"selfLink,omitempty"` + // Warning: [Output Only] Informational warning message. + Warning *PublicDelegatedPrefixListWarning `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 or default values are + // omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + 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. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s PublicDelegatedPrefixList) MarshalJSON() ([]byte, error) { + type NoMethod PublicDelegatedPrefixList + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +// PublicDelegatedPrefixListWarning: [Output Only] Informational warning +// message. +type PublicDelegatedPrefixListWarning 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" - Warning about failed cleanup of transient changes made + // by a failed + // operation. + // "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was created. + // "DEPRECATED_TYPE_USED" - When deploying and at least one of the resources + // has a type marked as + // deprecated + // "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk that is + // larger than image size. + // "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the + // resources has a type marked as + // experimental + // "EXTERNAL_API_WARNING" - Warning that is present in an external api call + // "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been + // overridden. + // Deprecated unused field. + // "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an injected + // kernel, which is deprecated. + // "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB" - A WEIGHTED_MAGLEV backend + // service is associated with a health check that is + // not of type HTTP/HTTPS/HTTP2. + // "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a + // exceedingly large number of resources + // "LIST_OVERHEAD_QUOTA_EXCEED" - Resource can't be retrieved due to list + // overhead quota exceed + // which captures the amount of resources filtered out by + // user-defined list filter. + // "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type + // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is not + // assigned to an instance on the + // network. + // "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot ip + // forward. + // "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE" - The route's nextHopInstance + // URL refers to an instance that does not have an + // ipv6 interface on the same network as the route. + // "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL refers to + // an instance that does not exist. + // "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance URL + // refers to an instance that is not on the + // same network as the route. + // "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not have a + // status of RUNNING. + // "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to continue + // the process despite + // the mentioned error. + // "NO_RESULTS_ON_PAGE" - No results are present on a particular list page. + // "PARTIAL_SUCCESS" - Success is reported, but some results may be missing + // due to errors + // "QUOTA_INFO_UNAVAILABLE" - Quota information is not available to client + // requests (e.g: + // regions.list). + // "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource that + // requires a TOS they have not + // accepted. + // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a resource is + // in use. + // "RESOURCE_NOT_DELETED" - One or more of the resources set to auto-delete + // could not be deleted + // because they were in use. + // "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is + // ignored. + // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in instance + // group manager is valid as such, but + // its application does not make a lot of sense, because it allows only + // single instance in instance group. + // "UNDECLARED_PROPERTIES" - When undeclared properties in the schema are + // present + // "UNREACHABLE" - A given scope cannot be reached. + 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 []*PublicDelegatedPrefixListWarningData `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 or default values are + // omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + 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. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s PublicDelegatedPrefixListWarning) MarshalJSON() ([]byte, error) { + type NoMethod PublicDelegatedPrefixListWarning + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +type PublicDelegatedPrefixListWarningData 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 or default values are + // omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + 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. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s PublicDelegatedPrefixListWarningData) MarshalJSON() ([]byte, error) { + type NoMethod PublicDelegatedPrefixListWarningData + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +// PublicDelegatedPrefixPublicDelegatedSubPrefix: Represents a sub +// PublicDelegatedPrefix. +type PublicDelegatedPrefixPublicDelegatedSubPrefix struct { + // AllocatablePrefixLength: The allocatable prefix length supported by this + // PublicDelegatedSubPrefix. + AllocatablePrefixLength int64 `json:"allocatablePrefixLength,omitempty"` + // DelegateeProject: Name of the project scoping this PublicDelegatedSubPrefix. + DelegateeProject string `json:"delegateeProject,omitempty"` + // Description: An optional description of this resource. Provide this property + // when you + // create the resource. + Description string `json:"description,omitempty"` + // EnableEnhancedIpv4Allocation: Output only. [Output Only] Whether this PDP + // supports enhanced IPv4 allocations. + // Applicable for IPv4 PDPs only. + EnableEnhancedIpv4Allocation bool `json:"enableEnhancedIpv4Allocation,omitempty"` + // IpCidrRange: The IP address range, in CIDR format, represented by this sub + // public + // delegated prefix. + IpCidrRange string `json:"ipCidrRange,omitempty"` + // Ipv6AccessType: Output only. [Output Only] The internet access type for IPv6 + // Public Delegated Sub + // Prefixes. Inherited from parent prefix. + // + // Possible values: + // "EXTERNAL" - The parent public advertised prefix will be announced to the + // internet. + // All children public delegated prefixes will have IPv6 access type + // as + // EXTERNAL. + // "INTERNAL" - The parent public advertised prefix will not be announced to + // the + // internet. Prefix will be used privately within Cloud. All children + // public delegated prefixes will have IPv6 access type as INTERNAL. + Ipv6AccessType string `json:"ipv6AccessType,omitempty"` + // IsAddress: Whether the sub prefix is delegated to create Address resources + // in the + // delegatee project. + IsAddress bool `json:"isAddress,omitempty"` + // Mode: The PublicDelegatedSubPrefix mode for IPv6 only. + // + // Possible values: + // "DELEGATION" - The public delegated prefix is used for further + // sub-delegation only. Such + // prefixes cannot set allocatablePrefixLength. + // "EXTERNAL_IPV6_FORWARDING_RULE_CREATION" - The public delegated prefix is + // used for creating forwarding rules only. + // Such prefixes cannot set publicDelegatedSubPrefixes. Parent public + // delegated prefix must have IPv6 access type as EXTERNAL. + // "EXTERNAL_IPV6_SUBNETWORK_CREATION" - The public delegated prefix is used + // for creating dual-mode subnetworks + // only. Such prefixes cannot set publicDelegatedSubPrefixes. Parent + // public + // delegated prefix must have IPv6 access type as EXTERNAL. + // "INTERNAL_IPV6_SUBNETWORK_CREATION" - The public delegated prefix is used + // for creating dual stack or IPv6-only + // subnetwork with internal access only. Such prefixes cannot + // set + // publicDelegatedSubPrefixes and allocatablePrefixLength. Parent + // public + // delegated prefix must have IPv6 access type as INTERNAL. + Mode string `json:"mode,omitempty"` + // Name: The name of the sub public delegated prefix. + Name string `json:"name,omitempty"` + // Region: Output only. [Output Only] The region of the sub public delegated + // prefix if it is + // regional. If absent, the sub prefix is global. + Region string `json:"region,omitempty"` + // Status: Output only. [Output Only] The status of the sub public delegated + // prefix. + // + // Possible values: + // "ACTIVE" + // "INACTIVE" + Status string `json:"status,omitempty"` + // ForceSendFields is a list of field names (e.g. "AllocatablePrefixLength") to + // unconditionally include in API requests. By default, fields with empty or + // default values are omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + ForceSendFields []string `json:"-"` + // NullFields is a list of field names (e.g. "AllocatablePrefixLength") to + // include in API requests with the JSON null value. By default, fields with + // empty values are omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s PublicDelegatedPrefixPublicDelegatedSubPrefix) MarshalJSON() ([]byte, error) { + type NoMethod PublicDelegatedPrefixPublicDelegatedSubPrefix + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +type PublicDelegatedPrefixesScopedList struct { + // PublicDelegatedPrefixes: [Output Only] A list of PublicDelegatedPrefixes + // contained in this scope. + PublicDelegatedPrefixes []*PublicDelegatedPrefix `json:"publicDelegatedPrefixes,omitempty"` + // Warning: [Output Only] Informational warning which replaces the list + // of + // public delegated prefixes when the list is empty. + Warning *PublicDelegatedPrefixesScopedListWarning `json:"warning,omitempty"` + // ForceSendFields is a list of field names (e.g. "PublicDelegatedPrefixes") to + // unconditionally include in API requests. By default, fields with empty or + // default values are omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + ForceSendFields []string `json:"-"` + // NullFields is a list of field names (e.g. "PublicDelegatedPrefixes") to + // include in API requests with the JSON null value. By default, fields with + // empty values are omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s PublicDelegatedPrefixesScopedList) MarshalJSON() ([]byte, error) { + type NoMethod PublicDelegatedPrefixesScopedList + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +// PublicDelegatedPrefixesScopedListWarning: [Output Only] Informational +// warning which replaces the list of +// public delegated prefixes when the list is empty. +type PublicDelegatedPrefixesScopedListWarning 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" - Warning about failed cleanup of transient changes made + // by a failed + // operation. + // "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was created. + // "DEPRECATED_TYPE_USED" - When deploying and at least one of the resources + // has a type marked as + // deprecated + // "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk that is + // larger than image size. + // "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the + // resources has a type marked as + // experimental + // "EXTERNAL_API_WARNING" - Warning that is present in an external api call + // "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been + // overridden. + // Deprecated unused field. + // "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an injected + // kernel, which is deprecated. + // "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB" - A WEIGHTED_MAGLEV backend + // service is associated with a health check that is + // not of type HTTP/HTTPS/HTTP2. + // "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a + // exceedingly large number of resources + // "LIST_OVERHEAD_QUOTA_EXCEED" - Resource can't be retrieved due to list + // overhead quota exceed + // which captures the amount of resources filtered out by + // user-defined list filter. + // "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type + // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is not + // assigned to an instance on the + // network. + // "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot ip + // forward. + // "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE" - The route's nextHopInstance + // URL refers to an instance that does not have an + // ipv6 interface on the same network as the route. + // "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL refers to + // an instance that does not exist. + // "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance URL + // refers to an instance that is not on the + // same network as the route. + // "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not have a + // status of RUNNING. + // "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to continue + // the process despite + // the mentioned error. + // "NO_RESULTS_ON_PAGE" - No results are present on a particular list page. + // "PARTIAL_SUCCESS" - Success is reported, but some results may be missing + // due to errors + // "QUOTA_INFO_UNAVAILABLE" - Quota information is not available to client + // requests (e.g: + // regions.list). + // "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource that + // requires a TOS they have not + // accepted. + // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a resource is + // in use. + // "RESOURCE_NOT_DELETED" - One or more of the resources set to auto-delete + // could not be deleted + // because they were in use. + // "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is + // ignored. + // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in instance + // group manager is valid as such, but + // its application does not make a lot of sense, because it allows only + // single instance in instance group. + // "UNDECLARED_PROPERTIES" - When undeclared properties in the schema are + // present + // "UNREACHABLE" - A given scope cannot be reached. + 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 []*PublicDelegatedPrefixesScopedListWarningData `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 or default values are + // omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + 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. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s PublicDelegatedPrefixesScopedListWarning) MarshalJSON() ([]byte, error) { + type NoMethod PublicDelegatedPrefixesScopedListWarning + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +type PublicDelegatedPrefixesScopedListWarningData 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 or default values are + // omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + 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. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s PublicDelegatedPrefixesScopedListWarningData) MarshalJSON() ([]byte, error) { + type NoMethod PublicDelegatedPrefixesScopedListWarningData + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +// Quota: A quotas entry. +type Quota struct { + // Limit: [Output Only] Quota limit for this metric. + Limit float64 `json:"limit,omitempty"` + // Metric: [Output Only] Name of the quota metric. + // + // Possible values: + // "A2_CPUS" + // "AFFINITY_GROUPS" + // "AUTOSCALERS" + // "BACKEND_BUCKETS" + // "BACKEND_SERVICES" + // "C2D_CPUS" + // "C2_CPUS" + // "C3_CPUS" + // "COMMITMENTS" + // "COMMITTED_A2_CPUS" + // "COMMITTED_C2D_CPUS" + // "COMMITTED_C2_CPUS" + // "COMMITTED_C3_CPUS" + // "COMMITTED_CPUS" + // "COMMITTED_E2_CPUS" + // "COMMITTED_LICENSES" + // "COMMITTED_LOCAL_SSD_TOTAL_GB" + // "COMMITTED_M3_CPUS" + // "COMMITTED_MEMORY_OPTIMIZED_CPUS" + // "COMMITTED_N2A_CPUS" + // "COMMITTED_N2D_CPUS" + // "COMMITTED_N2_CPUS" + // "COMMITTED_NVIDIA_A100_80GB_GPUS" + // "COMMITTED_NVIDIA_A100_GPUS" + // "COMMITTED_NVIDIA_H100_GPUS" + // "COMMITTED_NVIDIA_K80_GPUS" + // "COMMITTED_NVIDIA_L4_GPUS" + // "COMMITTED_NVIDIA_P100_GPUS" + // "COMMITTED_NVIDIA_P4_GPUS" + // "COMMITTED_NVIDIA_T4_GPUS" + // "COMMITTED_NVIDIA_V100_GPUS" + // "COMMITTED_T2A_CPUS" + // "COMMITTED_T2D_CPUS" + // "COMMITTED_Z3_CPUS" + // "CPUS" - Guest CPUs + // "CPUS_ALL_REGIONS" + // "DISKS_TOTAL_GB" + // "E2_CPUS" + // "EXTERNAL_MANAGED_FORWARDING_RULES" + // "EXTERNAL_NETWORK_LB_FORWARDING_RULES" + // "EXTERNAL_PROTOCOL_FORWARDING_RULES" + // "EXTERNAL_VPN_GATEWAYS" + // "FIREWALLS" + // "FORWARDING_RULES" + // "GLOBAL_EXTERNAL_MANAGED_BACKEND_SERVICES" + // "GLOBAL_EXTERNAL_MANAGED_FORWARDING_RULES" + // "GLOBAL_EXTERNAL_PROXY_LB_BACKEND_SERVICES" + // "GLOBAL_INTERNAL_ADDRESSES" + // "GLOBAL_INTERNAL_MANAGED_BACKEND_SERVICES" + // "GLOBAL_INTERNAL_TRAFFIC_DIRECTOR_BACKEND_SERVICES" + // "GPUS_ALL_REGIONS" + // "HDB_TOTAL_GB" + // "HDB_TOTAL_IOPS" + // "HDB_TOTAL_THROUGHPUT" + // "HEALTH_CHECKS" + // "IMAGES" + // "INSTANCES" + // "INSTANCE_GROUPS" + // "INSTANCE_GROUP_MANAGERS" + // "INSTANCE_TEMPLATES" + // "INTERCONNECTS" + // "INTERCONNECT_ATTACHMENTS_PER_REGION" + // "INTERCONNECT_ATTACHMENTS_TOTAL_MBPS" + // "INTERCONNECT_TOTAL_GBPS" + // "INTERNAL_ADDRESSES" + // "INTERNAL_TRAFFIC_DIRECTOR_FORWARDING_RULES" + // "IN_PLACE_SNAPSHOTS" + // "IN_USE_ADDRESSES" + // "IN_USE_BACKUP_SCHEDULES" + // "IN_USE_SNAPSHOT_SCHEDULES" + // "LOCAL_SSD_TOTAL_GB" + // "M1_CPUS" + // "M2_CPUS" + // "M3_CPUS" + // "MACHINE_IMAGES" + // "N2A_CPUS" + // "N2D_CPUS" + // "N2_CPUS" + // "NETWORKS" + // "NETWORK_ATTACHMENTS" + // "NETWORK_ENDPOINT_GROUPS" + // "NETWORK_FIREWALL_POLICIES" + // "NET_LB_SECURITY_POLICIES_PER_REGION" + // "NET_LB_SECURITY_POLICY_RULES_PER_REGION" // "NET_LB_SECURITY_POLICY_RULE_ATTRIBUTES_PER_REGION" // "NODE_GROUPS" // "NODE_TEMPLATES" @@ -33256,7 +54157,8 @@ type Quota struct { // "XPN_SERVICE_PROJECTS" Metric string `json:"metric,omitempty"` // Owner: [Output Only] Owning resource. This is the resource on which this - // quota is applied. + // quota + // is applied. Owner string `json:"owner,omitempty"` // Usage: [Output Only] Current usage of this metric. Usage float64 `json:"usage,omitempty"` @@ -33266,245 +54168,3232 @@ type Quota struct { // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. ForceSendFields []string `json:"-"` - // NullFields is a list of field names (e.g. "Limit") to include in API - // requests with the JSON null value. By default, fields with empty values are + // NullFields is a list of field names (e.g. "Limit") to include in API + // requests with the JSON null value. By default, fields with empty values are + // omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s Quota) MarshalJSON() ([]byte, error) { + type NoMethod Quota + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +func (s *Quota) UnmarshalJSON(data []byte) error { + type NoMethod Quota + var s1 struct { + Limit gensupport.JSONFloat64 `json:"limit"` + Usage gensupport.JSONFloat64 `json:"usage"` + *NoMethod + } + s1.NoMethod = (*NoMethod)(s) + if err := json.Unmarshal(data, &s1); err != nil { + return err + } + s.Limit = float64(s1.Limit) + s.Usage = float64(s1.Usage) + return nil +} + +// QuotaExceededInfo: Additional details for quota exceeded error for resource +// quota. +type QuotaExceededInfo struct { + // Dimensions: The map holding related quota dimensions. + Dimensions map[string]string `json:"dimensions,omitempty"` + // FutureLimit: Future quota limit being rolled out. The limit's unit depends + // on the quota + // type or metric. + FutureLimit float64 `json:"futureLimit,omitempty"` + // Limit: Current effective quota limit. The limit's unit depends on the quota + // type + // or metric. + Limit float64 `json:"limit,omitempty"` + // LimitName: The name of the quota limit. + LimitName string `json:"limitName,omitempty"` + // MetricName: The Compute Engine quota metric name. + MetricName string `json:"metricName,omitempty"` + // RolloutStatus: Rollout status of the future quota limit. + // + // Possible values: + // "IN_PROGRESS" - IN_PROGRESS - A rollout is in process which will change + // the limit value + // to future limit. + // "ROLLOUT_STATUS_UNSPECIFIED" - ROLLOUT_STATUS_UNSPECIFIED - Rollout status + // is not specified. The default + // value. + RolloutStatus string `json:"rolloutStatus,omitempty"` + // ForceSendFields is a list of field names (e.g. "Dimensions") to + // unconditionally include in API requests. By default, fields with empty or + // default values are omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + ForceSendFields []string `json:"-"` + // NullFields is a list of field names (e.g. "Dimensions") to include in API + // requests with the JSON null value. By default, fields with empty values are + // omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s QuotaExceededInfo) MarshalJSON() ([]byte, error) { + type NoMethod QuotaExceededInfo + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +func (s *QuotaExceededInfo) UnmarshalJSON(data []byte) error { + type NoMethod QuotaExceededInfo + var s1 struct { + FutureLimit gensupport.JSONFloat64 `json:"futureLimit"` + Limit gensupport.JSONFloat64 `json:"limit"` + *NoMethod + } + s1.NoMethod = (*NoMethod)(s) + if err := json.Unmarshal(data, &s1); err != nil { + return err + } + s.FutureLimit = float64(s1.FutureLimit) + s.Limit = float64(s1.Limit) + return nil +} + +// Reference: Represents a reference to a resource. +type Reference struct { + // Kind: Output only. [Output Only] Type of the resource. Always + // compute#reference + // for references. + Kind string `json:"kind,omitempty"` + // ReferenceType: A description of the reference type with no implied + // semantics. Possible + // values include: + // + // + // 1. MEMBER_OF + ReferenceType string `json:"referenceType,omitempty"` + // Referrer: URL of the resource which refers to the target. + Referrer string `json:"referrer,omitempty"` + // Target: URL of the resource to which this reference points. + Target string `json:"target,omitempty"` + // ForceSendFields is a list of field names (e.g. "Kind") to unconditionally + // include in API requests. By default, fields with empty or default values are + // omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + ForceSendFields []string `json:"-"` + // NullFields is a list of field names (e.g. "Kind") to include in API requests + // with the JSON null value. By default, fields with empty values are omitted + // from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s Reference) MarshalJSON() ([]byte, error) { + type NoMethod Reference + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +// Region: Represents a Region resource. +// +// A region is a geographical area where a resource is located. For +// more +// information, readRegions +// and Zones. +type Region struct { + // CreationTimestamp: [Output Only] Creation timestamp inRFC3339 + // text format. + CreationTimestamp string `json:"creationTimestamp,omitempty"` + // Deprecated -- [Output Only] The deprecation status associated with this + // region. + Deprecated *DeprecationStatus `json:"deprecated,omitempty"` + // Description: [Output Only] Textual description of the resource. + Description string `json:"description,omitempty"` + // Id: [Output Only] The unique identifier for the resource. This identifier + // is + // defined by the server. + Id uint64 `json:"id,omitempty,string"` + // Kind: Output only. [Output Only] Type of the resource. Always compute#region + // for + // regions. + Kind string `json:"kind,omitempty"` + // Name: [Output Only] Name of the resource. + Name string `json:"name,omitempty"` + // QuotaStatusWarning: Output only. [Output Only] Warning of fetching the + // `quotas` field for this region. This + // field is populated only if fetching of the `quotas` field fails. + QuotaStatusWarning *RegionQuotaStatusWarning `json:"quotaStatusWarning,omitempty"` + // Quotas: [Output Only] Quotas assigned to this region. + Quotas []*Quota `json:"quotas,omitempty"` + // SelfLink: [Output Only] Server-defined URL for the resource. + SelfLink string `json:"selfLink,omitempty"` + // Status: [Output Only] Status of the region, either UP orDOWN. + // + // Possible values: + // "DOWN" + // "UP" + Status string `json:"status,omitempty"` + // SupportsPzs: Output only. [Output Only] Reserved for future use. + SupportsPzs bool `json:"supportsPzs,omitempty"` + // Zones: [Output Only] A list of zones available in this region, in the form + // of + // resource URLs. + Zones []string `json:"zones,omitempty"` + + // ServerResponse contains the HTTP response code and headers from the server. + googleapi.ServerResponse `json:"-"` + // ForceSendFields is a list of field names (e.g. "CreationTimestamp") to + // unconditionally include in API requests. By default, fields with empty or + // default values are omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + ForceSendFields []string `json:"-"` + // NullFields is a list of field names (e.g. "CreationTimestamp") to include in + // API requests with the JSON null value. By default, fields with empty values + // are omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s Region) MarshalJSON() ([]byte, error) { + type NoMethod Region + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +// RegionQuotaStatusWarning: Output only. [Output Only] Warning of fetching the +// `quotas` field for this region. This +// field is populated only if fetching of the `quotas` field fails. +type RegionQuotaStatusWarning 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" - Warning about failed cleanup of transient changes made + // by a failed + // operation. + // "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was created. + // "DEPRECATED_TYPE_USED" - When deploying and at least one of the resources + // has a type marked as + // deprecated + // "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk that is + // larger than image size. + // "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the + // resources has a type marked as + // experimental + // "EXTERNAL_API_WARNING" - Warning that is present in an external api call + // "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been + // overridden. + // Deprecated unused field. + // "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an injected + // kernel, which is deprecated. + // "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB" - A WEIGHTED_MAGLEV backend + // service is associated with a health check that is + // not of type HTTP/HTTPS/HTTP2. + // "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a + // exceedingly large number of resources + // "LIST_OVERHEAD_QUOTA_EXCEED" - Resource can't be retrieved due to list + // overhead quota exceed + // which captures the amount of resources filtered out by + // user-defined list filter. + // "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type + // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is not + // assigned to an instance on the + // network. + // "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot ip + // forward. + // "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE" - The route's nextHopInstance + // URL refers to an instance that does not have an + // ipv6 interface on the same network as the route. + // "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL refers to + // an instance that does not exist. + // "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance URL + // refers to an instance that is not on the + // same network as the route. + // "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not have a + // status of RUNNING. + // "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to continue + // the process despite + // the mentioned error. + // "NO_RESULTS_ON_PAGE" - No results are present on a particular list page. + // "PARTIAL_SUCCESS" - Success is reported, but some results may be missing + // due to errors + // "QUOTA_INFO_UNAVAILABLE" - Quota information is not available to client + // requests (e.g: + // regions.list). + // "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource that + // requires a TOS they have not + // accepted. + // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a resource is + // in use. + // "RESOURCE_NOT_DELETED" - One or more of the resources set to auto-delete + // could not be deleted + // because they were in use. + // "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is + // ignored. + // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in instance + // group manager is valid as such, but + // its application does not make a lot of sense, because it allows only + // single instance in instance group. + // "UNDECLARED_PROPERTIES" - When undeclared properties in the schema are + // present + // "UNREACHABLE" - A given scope cannot be reached. + 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 []*RegionQuotaStatusWarningData `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 or default values are + // omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + 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. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s RegionQuotaStatusWarning) MarshalJSON() ([]byte, error) { + type NoMethod RegionQuotaStatusWarning + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +type RegionQuotaStatusWarningData 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 or default values are + // omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + 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. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s RegionQuotaStatusWarningData) MarshalJSON() ([]byte, error) { + type NoMethod RegionQuotaStatusWarningData + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +type RegionAddressesMoveRequest struct { + // Description: An optional destination address description if intended to be + // different + // from the source. + Description string `json:"description,omitempty"` + // DestinationAddress: The URL of the destination address to move to. This can + // be a full or + // partial URL. For example, the following are all valid URLs to a address: + // + // - + // https://www.googleapis.com/compute/v1/projects/project/regions/region/addresses/address + // + // - projects/project/regions/region/addresses/address + // + // + // Note that destination project must be different from the source project. + // So/regions/region/addresses/address is not valid partial url. + DestinationAddress string `json:"destinationAddress,omitempty"` + // ForceSendFields is a list of field names (e.g. "Description") to + // unconditionally include in API requests. By default, fields with empty or + // default values are omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + ForceSendFields []string `json:"-"` + // NullFields is a list of field names (e.g. "Description") to include in API + // requests with the JSON null value. By default, fields with empty values are + // omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s RegionAddressesMoveRequest) MarshalJSON() ([]byte, error) { + type NoMethod RegionAddressesMoveRequest + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +// RegionAutoscalerList: Contains a list of autoscalers. +type RegionAutoscalerList struct { + // Id: [Output Only] Unique identifier for the resource; defined by the server. + Id string `json:"id,omitempty"` + // Items: A list of Autoscaler resources. + Items []*Autoscaler `json:"items,omitempty"` + // Kind: Output only. Type of resource. + 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 thanmaxResults, 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"` + // SelfLink: Output only. [Output Only] Server-defined URL for this resource. + SelfLink string `json:"selfLink,omitempty"` + // Warning: [Output Only] Informational warning message. + Warning *RegionAutoscalerListWarning `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 or default values are + // omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + 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. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s RegionAutoscalerList) MarshalJSON() ([]byte, error) { + type NoMethod RegionAutoscalerList + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +// RegionAutoscalerListWarning: [Output Only] Informational warning message. +type RegionAutoscalerListWarning 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" - Warning about failed cleanup of transient changes made + // by a failed + // operation. + // "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was created. + // "DEPRECATED_TYPE_USED" - When deploying and at least one of the resources + // has a type marked as + // deprecated + // "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk that is + // larger than image size. + // "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the + // resources has a type marked as + // experimental + // "EXTERNAL_API_WARNING" - Warning that is present in an external api call + // "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been + // overridden. + // Deprecated unused field. + // "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an injected + // kernel, which is deprecated. + // "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB" - A WEIGHTED_MAGLEV backend + // service is associated with a health check that is + // not of type HTTP/HTTPS/HTTP2. + // "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a + // exceedingly large number of resources + // "LIST_OVERHEAD_QUOTA_EXCEED" - Resource can't be retrieved due to list + // overhead quota exceed + // which captures the amount of resources filtered out by + // user-defined list filter. + // "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type + // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is not + // assigned to an instance on the + // network. + // "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot ip + // forward. + // "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE" - The route's nextHopInstance + // URL refers to an instance that does not have an + // ipv6 interface on the same network as the route. + // "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL refers to + // an instance that does not exist. + // "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance URL + // refers to an instance that is not on the + // same network as the route. + // "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not have a + // status of RUNNING. + // "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to continue + // the process despite + // the mentioned error. + // "NO_RESULTS_ON_PAGE" - No results are present on a particular list page. + // "PARTIAL_SUCCESS" - Success is reported, but some results may be missing + // due to errors + // "QUOTA_INFO_UNAVAILABLE" - Quota information is not available to client + // requests (e.g: + // regions.list). + // "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource that + // requires a TOS they have not + // accepted. + // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a resource is + // in use. + // "RESOURCE_NOT_DELETED" - One or more of the resources set to auto-delete + // could not be deleted + // because they were in use. + // "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is + // ignored. + // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in instance + // group manager is valid as such, but + // its application does not make a lot of sense, because it allows only + // single instance in instance group. + // "UNDECLARED_PROPERTIES" - When undeclared properties in the schema are + // present + // "UNREACHABLE" - A given scope cannot be reached. + 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 []*RegionAutoscalerListWarningData `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 or default values are + // omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + 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. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s RegionAutoscalerListWarning) MarshalJSON() ([]byte, error) { + type NoMethod RegionAutoscalerListWarning + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +type RegionAutoscalerListWarningData 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 or default values are + // omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + 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. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s RegionAutoscalerListWarningData) MarshalJSON() ([]byte, error) { + type NoMethod RegionAutoscalerListWarningData + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +type RegionDiskTypeList struct { + // Id: [Output Only] Unique identifier for the resource; defined by the server. + Id string `json:"id,omitempty"` + // Items: A list of DiskType resources. + Items []*DiskType `json:"items,omitempty"` + // Kind: Output only. [Output Only] Type of resource. + // Alwayscompute#regionDiskTypeList for region disk types. + 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 thanmaxResults, 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"` + // SelfLink: Output only. [Output Only] Server-defined URL for this resource. + SelfLink string `json:"selfLink,omitempty"` + // Warning: [Output Only] Informational warning message. + Warning *RegionDiskTypeListWarning `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 or default values are + // omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + 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. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s RegionDiskTypeList) MarshalJSON() ([]byte, error) { + type NoMethod RegionDiskTypeList + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +// RegionDiskTypeListWarning: [Output Only] Informational warning message. +type RegionDiskTypeListWarning 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" - Warning about failed cleanup of transient changes made + // by a failed + // operation. + // "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was created. + // "DEPRECATED_TYPE_USED" - When deploying and at least one of the resources + // has a type marked as + // deprecated + // "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk that is + // larger than image size. + // "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the + // resources has a type marked as + // experimental + // "EXTERNAL_API_WARNING" - Warning that is present in an external api call + // "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been + // overridden. + // Deprecated unused field. + // "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an injected + // kernel, which is deprecated. + // "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB" - A WEIGHTED_MAGLEV backend + // service is associated with a health check that is + // not of type HTTP/HTTPS/HTTP2. + // "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a + // exceedingly large number of resources + // "LIST_OVERHEAD_QUOTA_EXCEED" - Resource can't be retrieved due to list + // overhead quota exceed + // which captures the amount of resources filtered out by + // user-defined list filter. + // "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type + // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is not + // assigned to an instance on the + // network. + // "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot ip + // forward. + // "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE" - The route's nextHopInstance + // URL refers to an instance that does not have an + // ipv6 interface on the same network as the route. + // "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL refers to + // an instance that does not exist. + // "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance URL + // refers to an instance that is not on the + // same network as the route. + // "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not have a + // status of RUNNING. + // "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to continue + // the process despite + // the mentioned error. + // "NO_RESULTS_ON_PAGE" - No results are present on a particular list page. + // "PARTIAL_SUCCESS" - Success is reported, but some results may be missing + // due to errors + // "QUOTA_INFO_UNAVAILABLE" - Quota information is not available to client + // requests (e.g: + // regions.list). + // "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource that + // requires a TOS they have not + // accepted. + // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a resource is + // in use. + // "RESOURCE_NOT_DELETED" - One or more of the resources set to auto-delete + // could not be deleted + // because they were in use. + // "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is + // ignored. + // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in instance + // group manager is valid as such, but + // its application does not make a lot of sense, because it allows only + // single instance in instance group. + // "UNDECLARED_PROPERTIES" - When undeclared properties in the schema are + // present + // "UNREACHABLE" - A given scope cannot be reached. + 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 []*RegionDiskTypeListWarningData `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 or default values are + // omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + 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. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s RegionDiskTypeListWarning) MarshalJSON() ([]byte, error) { + type NoMethod RegionDiskTypeListWarning + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +type RegionDiskTypeListWarningData 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 or default values are + // omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + 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. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s RegionDiskTypeListWarningData) MarshalJSON() ([]byte, error) { + type NoMethod RegionDiskTypeListWarningData + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +type RegionDiskUpdateKmsKeyRequest struct { + // KmsKeyName: Optional. The new KMS key to replace the current one on the + // disk. If empty, the disk + // will be re-encrypted using the primary version of the disk's current + // KMS + // key. + // + // The KMS key can be provided in the following formats: + // + // + // - + // projects/project_id/locations/location/keyRings/key_ring/cryptoKeys/key + // + // + // Where project is the project ID or + // project number. + KmsKeyName string `json:"kmsKeyName,omitempty"` + // ForceSendFields is a list of field names (e.g. "KmsKeyName") to + // unconditionally include in API requests. By default, fields with empty or + // default values are omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + ForceSendFields []string `json:"-"` + // NullFields is a list of field names (e.g. "KmsKeyName") to include in API + // requests with the JSON null value. By default, fields with empty values are + // omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s RegionDiskUpdateKmsKeyRequest) MarshalJSON() ([]byte, error) { + type NoMethod RegionDiskUpdateKmsKeyRequest + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +type RegionDisksAddResourcePoliciesRequest struct { + // ResourcePolicies: Resource policies to be added to this disk. + ResourcePolicies []string `json:"resourcePolicies,omitempty"` + // ForceSendFields is a list of field names (e.g. "ResourcePolicies") to + // unconditionally include in API requests. By default, fields with empty or + // default values are omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + ForceSendFields []string `json:"-"` + // NullFields is a list of field names (e.g. "ResourcePolicies") to include in + // API requests with the JSON null value. By default, fields with empty values + // are omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s RegionDisksAddResourcePoliciesRequest) MarshalJSON() ([]byte, error) { + type NoMethod RegionDisksAddResourcePoliciesRequest + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +type RegionDisksRemoveResourcePoliciesRequest struct { + // ResourcePolicies: Resource policies to be removed from this disk. + ResourcePolicies []string `json:"resourcePolicies,omitempty"` + // ForceSendFields is a list of field names (e.g. "ResourcePolicies") to + // unconditionally include in API requests. By default, fields with empty or + // default values are omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + ForceSendFields []string `json:"-"` + // NullFields is a list of field names (e.g. "ResourcePolicies") to include in + // API requests with the JSON null value. By default, fields with empty values + // are omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s RegionDisksRemoveResourcePoliciesRequest) MarshalJSON() ([]byte, error) { + type NoMethod RegionDisksRemoveResourcePoliciesRequest + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +type RegionDisksResizeRequest struct { + // SizeGb: The new size of the regional persistent disk, which is specified in + // GB. + SizeGb int64 `json:"sizeGb,omitempty,string"` + // ForceSendFields is a list of field names (e.g. "SizeGb") to unconditionally + // include in API requests. By default, fields with empty or default values are + // omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + ForceSendFields []string `json:"-"` + // NullFields is a list of field names (e.g. "SizeGb") to include in API + // requests with the JSON null value. By default, fields with empty values are + // omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s RegionDisksResizeRequest) MarshalJSON() ([]byte, error) { + type NoMethod RegionDisksResizeRequest + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +type RegionDisksStartAsyncReplicationRequest struct { + // AsyncSecondaryDisk: The secondary disk to start asynchronous replication + // to. + // 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/disks/disk + // + // - + // + // https://www.googleapis.com/compute/v1/projects/project/regions/region/disks/disk + // + // - + // projects/project/zones/zone/disks/disk + // + // - + // projects/project/regions/region/disks/disk + // + // - + // zones/zone/disks/disk + // + // - + // regions/region/disks/disk + AsyncSecondaryDisk string `json:"asyncSecondaryDisk,omitempty"` + // ForceSendFields is a list of field names (e.g. "AsyncSecondaryDisk") to + // unconditionally include in API requests. By default, fields with empty or + // default values are omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + ForceSendFields []string `json:"-"` + // NullFields is a list of field names (e.g. "AsyncSecondaryDisk") to include + // in API requests with the JSON null value. By default, fields with empty + // values are omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s RegionDisksStartAsyncReplicationRequest) MarshalJSON() ([]byte, error) { + type NoMethod RegionDisksStartAsyncReplicationRequest + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +// RegionInstanceGroupList: Contains a list of InstanceGroup resources. +type RegionInstanceGroupList struct { + // Id: Output only. [Output Only] Unique identifier for the resource; defined + // by the server. + Id string `json:"id,omitempty"` + // Items: A list of InstanceGroup resources. + Items []*InstanceGroup `json:"items,omitempty"` + // Kind: Output only. The resource type. + Kind string `json:"kind,omitempty"` + // NextPageToken: Output only. [Output Only] This token allows you to get the + // next page of results for + // list requests. If the number of results is larger thanmaxResults, 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"` + // SelfLink: Output only. [Output Only] Server-defined URL for this resource. + SelfLink string `json:"selfLink,omitempty"` + // Warning: Output only. [Output Only] Informational warning message. + Warning *RegionInstanceGroupListWarning `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 or default values are + // omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + 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. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s RegionInstanceGroupList) MarshalJSON() ([]byte, error) { + type NoMethod RegionInstanceGroupList + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +// RegionInstanceGroupListWarning: Output only. [Output Only] Informational +// warning message. +type RegionInstanceGroupListWarning 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" - Warning about failed cleanup of transient changes made + // by a failed + // operation. + // "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was created. + // "DEPRECATED_TYPE_USED" - When deploying and at least one of the resources + // has a type marked as + // deprecated + // "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk that is + // larger than image size. + // "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the + // resources has a type marked as + // experimental + // "EXTERNAL_API_WARNING" - Warning that is present in an external api call + // "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been + // overridden. + // Deprecated unused field. + // "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an injected + // kernel, which is deprecated. + // "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB" - A WEIGHTED_MAGLEV backend + // service is associated with a health check that is + // not of type HTTP/HTTPS/HTTP2. + // "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a + // exceedingly large number of resources + // "LIST_OVERHEAD_QUOTA_EXCEED" - Resource can't be retrieved due to list + // overhead quota exceed + // which captures the amount of resources filtered out by + // user-defined list filter. + // "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type + // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is not + // assigned to an instance on the + // network. + // "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot ip + // forward. + // "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE" - The route's nextHopInstance + // URL refers to an instance that does not have an + // ipv6 interface on the same network as the route. + // "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL refers to + // an instance that does not exist. + // "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance URL + // refers to an instance that is not on the + // same network as the route. + // "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not have a + // status of RUNNING. + // "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to continue + // the process despite + // the mentioned error. + // "NO_RESULTS_ON_PAGE" - No results are present on a particular list page. + // "PARTIAL_SUCCESS" - Success is reported, but some results may be missing + // due to errors + // "QUOTA_INFO_UNAVAILABLE" - Quota information is not available to client + // requests (e.g: + // regions.list). + // "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource that + // requires a TOS they have not + // accepted. + // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a resource is + // in use. + // "RESOURCE_NOT_DELETED" - One or more of the resources set to auto-delete + // could not be deleted + // because they were in use. + // "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is + // ignored. + // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in instance + // group manager is valid as such, but + // its application does not make a lot of sense, because it allows only + // single instance in instance group. + // "UNDECLARED_PROPERTIES" - When undeclared properties in the schema are + // present + // "UNREACHABLE" - A given scope cannot be reached. + 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 []*RegionInstanceGroupListWarningData `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 or default values are + // omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + 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. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s RegionInstanceGroupListWarning) MarshalJSON() ([]byte, error) { + type NoMethod RegionInstanceGroupListWarning + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +type RegionInstanceGroupListWarningData 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 or default values are + // omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + 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. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s RegionInstanceGroupListWarningData) MarshalJSON() ([]byte, error) { + type NoMethod RegionInstanceGroupListWarningData + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +// RegionInstanceGroupManagerDeleteInstanceConfigReq: +// RegionInstanceGroupManagers.deletePerInstanceConfigs +type RegionInstanceGroupManagerDeleteInstanceConfigReq struct { + // Names: The list of instance names for which we want to delete per-instance + // configs + // on this managed instance group. + Names []string `json:"names,omitempty"` + // ForceSendFields is a list of field names (e.g. "Names") to unconditionally + // include in API requests. By default, fields with empty or default values are + // omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + ForceSendFields []string `json:"-"` + // NullFields is a list of field names (e.g. "Names") to include in API + // requests with the JSON null value. By default, fields with empty values are + // omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s RegionInstanceGroupManagerDeleteInstanceConfigReq) MarshalJSON() ([]byte, error) { + type NoMethod RegionInstanceGroupManagerDeleteInstanceConfigReq + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +// RegionInstanceGroupManagerList: Contains a list of managed instance groups. +type RegionInstanceGroupManagerList struct { + // Id: Output only. Unique identifier for the resource; defined by the server. + Id string `json:"id,omitempty"` + // Items: A list of InstanceGroupManager resources. + Items []*InstanceGroupManager `json:"items,omitempty"` + // Kind: Output only. The resource type, which is always + // compute#instanceGroupManagerList for a + // list of managed instance groups that exist in th regional scope. + 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 thanmaxResults, 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"` + // SelfLink: Output only. Server-defined URL for this resource. + SelfLink string `json:"selfLink,omitempty"` + // Warning: Output only. Informational warning message. + Warning *RegionInstanceGroupManagerListWarning `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 or default values are + // omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + 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. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s RegionInstanceGroupManagerList) MarshalJSON() ([]byte, error) { + type NoMethod RegionInstanceGroupManagerList + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +// RegionInstanceGroupManagerListWarning: Output only. Informational warning +// message. +type RegionInstanceGroupManagerListWarning 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" - Warning about failed cleanup of transient changes made + // by a failed + // operation. + // "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was created. + // "DEPRECATED_TYPE_USED" - When deploying and at least one of the resources + // has a type marked as + // deprecated + // "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk that is + // larger than image size. + // "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the + // resources has a type marked as + // experimental + // "EXTERNAL_API_WARNING" - Warning that is present in an external api call + // "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been + // overridden. + // Deprecated unused field. + // "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an injected + // kernel, which is deprecated. + // "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB" - A WEIGHTED_MAGLEV backend + // service is associated with a health check that is + // not of type HTTP/HTTPS/HTTP2. + // "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a + // exceedingly large number of resources + // "LIST_OVERHEAD_QUOTA_EXCEED" - Resource can't be retrieved due to list + // overhead quota exceed + // which captures the amount of resources filtered out by + // user-defined list filter. + // "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type + // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is not + // assigned to an instance on the + // network. + // "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot ip + // forward. + // "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE" - The route's nextHopInstance + // URL refers to an instance that does not have an + // ipv6 interface on the same network as the route. + // "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL refers to + // an instance that does not exist. + // "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance URL + // refers to an instance that is not on the + // same network as the route. + // "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not have a + // status of RUNNING. + // "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to continue + // the process despite + // the mentioned error. + // "NO_RESULTS_ON_PAGE" - No results are present on a particular list page. + // "PARTIAL_SUCCESS" - Success is reported, but some results may be missing + // due to errors + // "QUOTA_INFO_UNAVAILABLE" - Quota information is not available to client + // requests (e.g: + // regions.list). + // "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource that + // requires a TOS they have not + // accepted. + // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a resource is + // in use. + // "RESOURCE_NOT_DELETED" - One or more of the resources set to auto-delete + // could not be deleted + // because they were in use. + // "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is + // ignored. + // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in instance + // group manager is valid as such, but + // its application does not make a lot of sense, because it allows only + // single instance in instance group. + // "UNDECLARED_PROPERTIES" - When undeclared properties in the schema are + // present + // "UNREACHABLE" - A given scope cannot be reached. + 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 []*RegionInstanceGroupManagerListWarningData `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 or default values are + // omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + 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. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s RegionInstanceGroupManagerListWarning) MarshalJSON() ([]byte, error) { + type NoMethod RegionInstanceGroupManagerListWarning + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +type RegionInstanceGroupManagerListWarningData 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 or default values are + // omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + 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. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s RegionInstanceGroupManagerListWarningData) MarshalJSON() ([]byte, error) { + type NoMethod RegionInstanceGroupManagerListWarningData + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +// RegionInstanceGroupManagerPatchInstanceConfigReq: +// RegionInstanceGroupManagers.patchPerInstanceConfigs +type RegionInstanceGroupManagerPatchInstanceConfigReq struct { + // PerInstanceConfigs: The list of per-instance configurations to insert or + // patch on this managed + // instance group. + PerInstanceConfigs []*PerInstanceConfig `json:"perInstanceConfigs,omitempty"` + // ForceSendFields is a list of field names (e.g. "PerInstanceConfigs") to + // unconditionally include in API requests. By default, fields with empty or + // default values are omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + ForceSendFields []string `json:"-"` + // NullFields is a list of field names (e.g. "PerInstanceConfigs") to include + // in API requests with the JSON null value. By default, fields with empty + // values are omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s RegionInstanceGroupManagerPatchInstanceConfigReq) MarshalJSON() ([]byte, error) { + type NoMethod RegionInstanceGroupManagerPatchInstanceConfigReq + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +type RegionInstanceGroupManagerResizeRequestsListResponse struct { + Etag string `json:"etag,omitempty"` + // Id: Output only. Unique identifier for the resource; defined by the server. + Id string `json:"id,omitempty"` + // Items: A list of Resize Request resources. + Items []*InstanceGroupManagerResizeRequest `json:"items,omitempty"` + // Kind: Output only. Type of the resource. + // Alwayscompute#regionInstanceGroupManagerResizeRequestList for + // a list of Resize Requests. + 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 thanmaxResults, 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"` + // SelfLink: Output only. Server-defined URL for this resource. + SelfLink string `json:"selfLink,omitempty"` + // Unreachables: Output only. Unreachable resources. + // end_interface: MixerListResponseWithEtagBuilder + Unreachables []string `json:"unreachables,omitempty"` + // Warning: Output only. Informational warning message. + Warning *RegionInstanceGroupManagerResizeRequestsListResponseWarning `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. "Etag") to unconditionally + // include in API requests. By default, fields with empty or default values are + // omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + ForceSendFields []string `json:"-"` + // NullFields is a list of field names (e.g. "Etag") to include in API requests + // with the JSON null value. By default, fields with empty values are omitted + // from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s RegionInstanceGroupManagerResizeRequestsListResponse) MarshalJSON() ([]byte, error) { + type NoMethod RegionInstanceGroupManagerResizeRequestsListResponse + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +// RegionInstanceGroupManagerResizeRequestsListResponseWarning: Output only. +// Informational warning message. +type RegionInstanceGroupManagerResizeRequestsListResponseWarning 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" - Warning about failed cleanup of transient changes made + // by a failed + // operation. + // "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was created. + // "DEPRECATED_TYPE_USED" - When deploying and at least one of the resources + // has a type marked as + // deprecated + // "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk that is + // larger than image size. + // "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the + // resources has a type marked as + // experimental + // "EXTERNAL_API_WARNING" - Warning that is present in an external api call + // "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been + // overridden. + // Deprecated unused field. + // "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an injected + // kernel, which is deprecated. + // "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB" - A WEIGHTED_MAGLEV backend + // service is associated with a health check that is + // not of type HTTP/HTTPS/HTTP2. + // "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a + // exceedingly large number of resources + // "LIST_OVERHEAD_QUOTA_EXCEED" - Resource can't be retrieved due to list + // overhead quota exceed + // which captures the amount of resources filtered out by + // user-defined list filter. + // "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type + // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is not + // assigned to an instance on the + // network. + // "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot ip + // forward. + // "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE" - The route's nextHopInstance + // URL refers to an instance that does not have an + // ipv6 interface on the same network as the route. + // "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL refers to + // an instance that does not exist. + // "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance URL + // refers to an instance that is not on the + // same network as the route. + // "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not have a + // status of RUNNING. + // "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to continue + // the process despite + // the mentioned error. + // "NO_RESULTS_ON_PAGE" - No results are present on a particular list page. + // "PARTIAL_SUCCESS" - Success is reported, but some results may be missing + // due to errors + // "QUOTA_INFO_UNAVAILABLE" - Quota information is not available to client + // requests (e.g: + // regions.list). + // "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource that + // requires a TOS they have not + // accepted. + // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a resource is + // in use. + // "RESOURCE_NOT_DELETED" - One or more of the resources set to auto-delete + // could not be deleted + // because they were in use. + // "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is + // ignored. + // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in instance + // group manager is valid as such, but + // its application does not make a lot of sense, because it allows only + // single instance in instance group. + // "UNDECLARED_PROPERTIES" - When undeclared properties in the schema are + // present + // "UNREACHABLE" - A given scope cannot be reached. + 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 []*RegionInstanceGroupManagerResizeRequestsListResponseWarningData `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 or default values are + // omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + 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. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s RegionInstanceGroupManagerResizeRequestsListResponseWarning) MarshalJSON() ([]byte, error) { + type NoMethod RegionInstanceGroupManagerResizeRequestsListResponseWarning + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +type RegionInstanceGroupManagerResizeRequestsListResponseWarningData 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 or default values are + // omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + 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. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s RegionInstanceGroupManagerResizeRequestsListResponseWarningData) MarshalJSON() ([]byte, error) { + type NoMethod RegionInstanceGroupManagerResizeRequestsListResponseWarningData + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +// RegionInstanceGroupManagerUpdateInstanceConfigReq: +// RegionInstanceGroupManagers.updatePerInstanceConfigs +type RegionInstanceGroupManagerUpdateInstanceConfigReq struct { + // PerInstanceConfigs: The list of per-instance configurations to insert or + // patch on this managed + // instance group. + PerInstanceConfigs []*PerInstanceConfig `json:"perInstanceConfigs,omitempty"` + // ForceSendFields is a list of field names (e.g. "PerInstanceConfigs") to + // unconditionally include in API requests. By default, fields with empty or + // default values are omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + ForceSendFields []string `json:"-"` + // NullFields is a list of field names (e.g. "PerInstanceConfigs") to include + // in API requests with the JSON null value. By default, fields with empty + // values are omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s RegionInstanceGroupManagerUpdateInstanceConfigReq) MarshalJSON() ([]byte, error) { + type NoMethod RegionInstanceGroupManagerUpdateInstanceConfigReq + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +type RegionInstanceGroupManagersAbandonInstancesRequest struct { + // Instances: The URLs of one or more instances to abandon. This can be a full + // URL or + // a partial URL, such as zones/[ZONE]/instances/[INSTANCE_NAME]. + Instances []string `json:"instances,omitempty"` + // ForceSendFields is a list of field names (e.g. "Instances") to + // unconditionally include in API requests. By default, fields with empty or + // default values are omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + ForceSendFields []string `json:"-"` + // NullFields is a list of field names (e.g. "Instances") to include in API + // requests with the JSON null value. By default, fields with empty values are + // omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s RegionInstanceGroupManagersAbandonInstancesRequest) MarshalJSON() ([]byte, error) { + type NoMethod RegionInstanceGroupManagersAbandonInstancesRequest + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +// RegionInstanceGroupManagersApplyUpdatesRequest: +// RegionInstanceGroupManagers.applyUpdatesToInstances +type RegionInstanceGroupManagersApplyUpdatesRequest struct { + // AllInstances: Flag to update all instances instead of specified list of + // “instances”. + // If the flag is set to true then the instances may not be specified + // in the request. + AllInstances bool `json:"allInstances,omitempty"` + // Instances: The list of URLs of one or more instances for which you want to + // apply + // updates. Each URL can be a full URL or a partial URL, such + // aszones/[ZONE]/instances/[INSTANCE_NAME]. + Instances []string `json:"instances,omitempty"` + // MinimalAction: The minimal action that you want to perform on each instance + // during the + // update: + // + // + // - REPLACE: At minimum, delete the instance and create it + // again. + // - RESTART: Stop the instance and start it + // again. + // - REFRESH: Do not stop the instance and limit + // disruption as much as possible. + // - NONE: Do not + // disrupt the instance at all. + // + // + // By default, the minimum action is NONE. If your update + // requires a more disruptive action than you set with this flag, the + // necessary action is performed to execute the update. + // + // Possible values: + // "NONE" - Do not perform any action. + // "REFRESH" - Do not stop the instance. + // "REPLACE" - (Default.) Replace the instance according to the replacement + // method + // option. + // "RESTART" - Stop the instance and start it again. + MinimalAction string `json:"minimalAction,omitempty"` + // MostDisruptiveAllowedAction: The most disruptive action that you want to + // perform on each instance during + // the update: + // + // + // - REPLACE: Delete the instance and create it again. + // - RESTART: Stop the instance and start it again. + // - REFRESH: Do not stop the instance and limit disruption + // as much as possible. + // - NONE: Do not disrupt the + // instance at all. + // + // + // By default, the most disruptive allowed action is REPLACE. If + // your update requires a more disruptive action than you set with this + // flag, + // the update request will fail. + // + // Possible values: + // "NONE" - Do not perform any action. + // "REFRESH" - Do not stop the instance. + // "REPLACE" - (Default.) Replace the instance according to the replacement + // method + // option. + // "RESTART" - Stop the instance and start it again. + MostDisruptiveAllowedAction string `json:"mostDisruptiveAllowedAction,omitempty"` + // ForceSendFields is a list of field names (e.g. "AllInstances") to + // unconditionally include in API requests. By default, fields with empty or + // default values are omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + ForceSendFields []string `json:"-"` + // NullFields is a list of field names (e.g. "AllInstances") to include in API + // requests with the JSON null value. By default, fields with empty values are + // omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s RegionInstanceGroupManagersApplyUpdatesRequest) MarshalJSON() ([]byte, error) { + type NoMethod RegionInstanceGroupManagersApplyUpdatesRequest + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +// RegionInstanceGroupManagersCreateInstancesRequest: +// RegionInstanceGroupManagers.createInstances +type RegionInstanceGroupManagersCreateInstancesRequest struct { + // Instances: [Required] List of specifications of per-instance configs. + Instances []*PerInstanceConfig `json:"instances,omitempty"` + // ForceSendFields is a list of field names (e.g. "Instances") to + // unconditionally include in API requests. By default, fields with empty or + // default values are omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + ForceSendFields []string `json:"-"` + // NullFields is a list of field names (e.g. "Instances") to include in API + // requests with the JSON null value. By default, fields with empty values are + // omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s RegionInstanceGroupManagersCreateInstancesRequest) MarshalJSON() ([]byte, error) { + type NoMethod RegionInstanceGroupManagersCreateInstancesRequest + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +type RegionInstanceGroupManagersDeleteInstancesRequest struct { + // Instances: The URLs of one or more instances to delete. This can be a full + // URL or + // a partial URL, such as zones/[ZONE]/instances/[INSTANCE_NAME]. + Instances []string `json:"instances,omitempty"` + // SkipInstancesOnValidationError: Specifies whether the request should proceed + // despite the inclusion of + // instances that are not members of the group or that are already in + // the + // process of being deleted or abandoned. If this field is set to `false` + // and + // such an instance is specified in the request, the operation fails. + // The + // operation always fails if the request contains a malformed instance URL or + // a reference to an instance that exists in a zone or region other than + // the + // group's zone or region. + SkipInstancesOnValidationError bool `json:"skipInstancesOnValidationError,omitempty"` + // ForceSendFields is a list of field names (e.g. "Instances") to + // unconditionally include in API requests. By default, fields with empty or + // default values are omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + ForceSendFields []string `json:"-"` + // NullFields is a list of field names (e.g. "Instances") to include in API + // requests with the JSON null value. By default, fields with empty values are + // omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s RegionInstanceGroupManagersDeleteInstancesRequest) MarshalJSON() ([]byte, error) { + type NoMethod RegionInstanceGroupManagersDeleteInstancesRequest + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +type RegionInstanceGroupManagersListErrorsResponse struct { + // Items: [Output Only] The list of errors of the managed instance group. + Items []*InstanceManagedByIgmError `json:"items,omitempty"` + // NextPageToken: Output only. [Output Only] This token allows you to get the + // next page of results for + // list requests. If the number of results is larger thanmaxResults, 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"` + + // ServerResponse contains the HTTP response code and headers from the server. + googleapi.ServerResponse `json:"-"` + // ForceSendFields is a list of field names (e.g. "Items") to unconditionally + // include in API requests. By default, fields with empty or default values are + // omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + ForceSendFields []string `json:"-"` + // NullFields is a list of field names (e.g. "Items") to include in API + // requests with the JSON null value. By default, fields with empty values are + // omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s RegionInstanceGroupManagersListErrorsResponse) MarshalJSON() ([]byte, error) { + type NoMethod RegionInstanceGroupManagersListErrorsResponse + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +type RegionInstanceGroupManagersListInstanceConfigsResp struct { + // Items: Output only. [Output Only] The list of PerInstanceConfig. + Items []*PerInstanceConfig `json:"items,omitempty"` + // NextPageToken: Output only. [Output Only] This token allows you to get the + // next page of results for + // list requests. If the number of results is larger thanmaxResults, 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"` + // Warning: Output only. [Output Only] Informational warning message. + Warning *RegionInstanceGroupManagersListInstanceConfigsRespWarning `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. "Items") to unconditionally + // include in API requests. By default, fields with empty or default values are + // omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + ForceSendFields []string `json:"-"` + // NullFields is a list of field names (e.g. "Items") to include in API + // requests with the JSON null value. By default, fields with empty values are + // omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s RegionInstanceGroupManagersListInstanceConfigsResp) MarshalJSON() ([]byte, error) { + type NoMethod RegionInstanceGroupManagersListInstanceConfigsResp + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +// RegionInstanceGroupManagersListInstanceConfigsRespWarning: Output only. +// [Output Only] Informational warning message. +type RegionInstanceGroupManagersListInstanceConfigsRespWarning 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" - Warning about failed cleanup of transient changes made + // by a failed + // operation. + // "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was created. + // "DEPRECATED_TYPE_USED" - When deploying and at least one of the resources + // has a type marked as + // deprecated + // "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk that is + // larger than image size. + // "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the + // resources has a type marked as + // experimental + // "EXTERNAL_API_WARNING" - Warning that is present in an external api call + // "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been + // overridden. + // Deprecated unused field. + // "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an injected + // kernel, which is deprecated. + // "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB" - A WEIGHTED_MAGLEV backend + // service is associated with a health check that is + // not of type HTTP/HTTPS/HTTP2. + // "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a + // exceedingly large number of resources + // "LIST_OVERHEAD_QUOTA_EXCEED" - Resource can't be retrieved due to list + // overhead quota exceed + // which captures the amount of resources filtered out by + // user-defined list filter. + // "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type + // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is not + // assigned to an instance on the + // network. + // "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot ip + // forward. + // "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE" - The route's nextHopInstance + // URL refers to an instance that does not have an + // ipv6 interface on the same network as the route. + // "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL refers to + // an instance that does not exist. + // "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance URL + // refers to an instance that is not on the + // same network as the route. + // "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not have a + // status of RUNNING. + // "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to continue + // the process despite + // the mentioned error. + // "NO_RESULTS_ON_PAGE" - No results are present on a particular list page. + // "PARTIAL_SUCCESS" - Success is reported, but some results may be missing + // due to errors + // "QUOTA_INFO_UNAVAILABLE" - Quota information is not available to client + // requests (e.g: + // regions.list). + // "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource that + // requires a TOS they have not + // accepted. + // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a resource is + // in use. + // "RESOURCE_NOT_DELETED" - One or more of the resources set to auto-delete + // could not be deleted + // because they were in use. + // "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is + // ignored. + // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in instance + // group manager is valid as such, but + // its application does not make a lot of sense, because it allows only + // single instance in instance group. + // "UNDECLARED_PROPERTIES" - When undeclared properties in the schema are + // present + // "UNREACHABLE" - A given scope cannot be reached. + 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 []*RegionInstanceGroupManagersListInstanceConfigsRespWarningData `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 or default values are + // omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + 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. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s RegionInstanceGroupManagersListInstanceConfigsRespWarning) MarshalJSON() ([]byte, error) { + type NoMethod RegionInstanceGroupManagersListInstanceConfigsRespWarning + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +type RegionInstanceGroupManagersListInstanceConfigsRespWarningData 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 or default values are + // omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + 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. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s RegionInstanceGroupManagersListInstanceConfigsRespWarningData) MarshalJSON() ([]byte, error) { + type NoMethod RegionInstanceGroupManagersListInstanceConfigsRespWarningData + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +type RegionInstanceGroupManagersListInstancesResponse struct { + // ManagedInstances: A list of managed instances. + ManagedInstances []*ManagedInstance `json:"managedInstances,omitempty"` + // NextPageToken: Output only. [Output Only] This token allows you to get the + // next page of results for + // list requests. If the number of results is larger thanmaxResults, 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"` + + // ServerResponse contains the HTTP response code and headers from the server. + googleapi.ServerResponse `json:"-"` + // ForceSendFields is a list of field names (e.g. "ManagedInstances") to + // unconditionally include in API requests. By default, fields with empty or + // default values are omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + ForceSendFields []string `json:"-"` + // NullFields is a list of field names (e.g. "ManagedInstances") to include in + // API requests with the JSON null value. By default, fields with empty values + // are omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s RegionInstanceGroupManagersListInstancesResponse) MarshalJSON() ([]byte, error) { + type NoMethod RegionInstanceGroupManagersListInstancesResponse + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +type RegionInstanceGroupManagersRecreateRequest struct { + // Instances: The URLs of one or more instances to recreate. This can be a full + // URL or + // a partial URL, such as zones/[ZONE]/instances/[INSTANCE_NAME]. + Instances []string `json:"instances,omitempty"` + // ForceSendFields is a list of field names (e.g. "Instances") to + // unconditionally include in API requests. By default, fields with empty or + // default values are omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + ForceSendFields []string `json:"-"` + // NullFields is a list of field names (e.g. "Instances") to include in API + // requests with the JSON null value. By default, fields with empty values are + // omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s RegionInstanceGroupManagersRecreateRequest) MarshalJSON() ([]byte, error) { + type NoMethod RegionInstanceGroupManagersRecreateRequest + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +type RegionInstanceGroupManagersResumeInstancesRequest struct { + // Instances: The URLs of one or more instances to resume. This can be a full + // URL or + // a partial URL, such as zones/[ZONE]/instances/[INSTANCE_NAME]. + Instances []string `json:"instances,omitempty"` + // ForceSendFields is a list of field names (e.g. "Instances") to + // unconditionally include in API requests. By default, fields with empty or + // default values are omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + ForceSendFields []string `json:"-"` + // NullFields is a list of field names (e.g. "Instances") to include in API + // requests with the JSON null value. By default, fields with empty values are + // omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s RegionInstanceGroupManagersResumeInstancesRequest) MarshalJSON() ([]byte, error) { + type NoMethod RegionInstanceGroupManagersResumeInstancesRequest + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +type RegionInstanceGroupManagersSetTargetPoolsRequest struct { + // Fingerprint: Fingerprint of the target pools information, which is a hash of + // the + // contents. This field is used for optimistic locking when you update + // the + // target pool entries. This field is optional. + Fingerprint string `json:"fingerprint,omitempty"` + // TargetPools: The URL of all TargetPool resources to which instances in + // theinstanceGroup field are added. The target pools automatically + // apply to all of the instances in the managed instance group. + TargetPools []string `json:"targetPools,omitempty"` + // ForceSendFields is a list of field names (e.g. "Fingerprint") to + // unconditionally include in API requests. By default, fields with empty or + // default values are omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + ForceSendFields []string `json:"-"` + // NullFields is a list of field names (e.g. "Fingerprint") to include in API + // requests with the JSON null value. By default, fields with empty values are + // omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s RegionInstanceGroupManagersSetTargetPoolsRequest) MarshalJSON() ([]byte, error) { + type NoMethod RegionInstanceGroupManagersSetTargetPoolsRequest + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +type RegionInstanceGroupManagersSetTemplateRequest struct { + // InstanceTemplate: URL of the InstanceTemplate resource from which all new + // instances will be + // created. + InstanceTemplate string `json:"instanceTemplate,omitempty"` + // ForceSendFields is a list of field names (e.g. "InstanceTemplate") to + // unconditionally include in API requests. By default, fields with empty or + // default values are omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + ForceSendFields []string `json:"-"` + // NullFields is a list of field names (e.g. "InstanceTemplate") to include in + // API requests with the JSON null value. By default, fields with empty values + // are omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s RegionInstanceGroupManagersSetTemplateRequest) MarshalJSON() ([]byte, error) { + type NoMethod RegionInstanceGroupManagersSetTemplateRequest + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +type RegionInstanceGroupManagersStartInstancesRequest struct { + // Instances: The URLs of one or more instances to start. This can be a full + // URL or + // a partial URL, such as zones/[ZONE]/instances/[INSTANCE_NAME]. + Instances []string `json:"instances,omitempty"` + // ForceSendFields is a list of field names (e.g. "Instances") to + // unconditionally include in API requests. By default, fields with empty or + // default values are omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + ForceSendFields []string `json:"-"` + // NullFields is a list of field names (e.g. "Instances") to include in API + // requests with the JSON null value. By default, fields with empty values are + // omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s RegionInstanceGroupManagersStartInstancesRequest) MarshalJSON() ([]byte, error) { + type NoMethod RegionInstanceGroupManagersStartInstancesRequest + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +type RegionInstanceGroupManagersStopInstancesRequest struct { + // ForceStop: If this flag is set to true, the Instance Group Manager will + // proceed to + // stop the instances, skipping initialization on them. + ForceStop bool `json:"forceStop,omitempty"` + // Instances: The URLs of one or more instances to stop. This can be a full URL + // or + // a partial URL, such as zones/[ZONE]/instances/[INSTANCE_NAME]. + Instances []string `json:"instances,omitempty"` + // ForceSendFields is a list of field names (e.g. "ForceStop") to + // unconditionally include in API requests. By default, fields with empty or + // default values are omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + ForceSendFields []string `json:"-"` + // NullFields is a list of field names (e.g. "ForceStop") to include in API + // requests with the JSON null value. By default, fields with empty values are + // omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s RegionInstanceGroupManagersStopInstancesRequest) MarshalJSON() ([]byte, error) { + type NoMethod RegionInstanceGroupManagersStopInstancesRequest + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +type RegionInstanceGroupManagersSuspendInstancesRequest struct { + // ForceSuspend: If this flag is set to true, the Instance Group Manager will + // proceed to + // suspend the instances, skipping initialization on them. + ForceSuspend bool `json:"forceSuspend,omitempty"` + // Instances: The URLs of one or more instances to suspend. This can be a full + // URL or + // a partial URL, such as zones/[ZONE]/instances/[INSTANCE_NAME]. + Instances []string `json:"instances,omitempty"` + // ForceSendFields is a list of field names (e.g. "ForceSuspend") to + // unconditionally include in API requests. By default, fields with empty or + // default values are omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + ForceSendFields []string `json:"-"` + // NullFields is a list of field names (e.g. "ForceSuspend") to include in API + // requests with the JSON null value. By default, fields with empty values are + // omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s RegionInstanceGroupManagersSuspendInstancesRequest) MarshalJSON() ([]byte, error) { + type NoMethod RegionInstanceGroupManagersSuspendInstancesRequest + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +type RegionInstanceGroupsListInstances struct { + // Id: Output only. [Output Only] Unique identifier for the resource; defined + // by the server. + Id string `json:"id,omitempty"` + // Items: A list of InstanceWithNamedPorts resources. + Items []*InstanceWithNamedPorts `json:"items,omitempty"` + // Kind: Output only. The resource type. + Kind string `json:"kind,omitempty"` + // NextPageToken: Output only. [Output Only] This token allows you to get the + // next page of results for + // list requests. If the number of results is larger thanmaxResults, 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"` + // SelfLink: Output only. [Output Only] Server-defined URL for this resource. + SelfLink string `json:"selfLink,omitempty"` + // Warning: Output only. [Output Only] Informational warning message. + Warning *RegionInstanceGroupsListInstancesWarning `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 or default values are + // omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + 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. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s RegionInstanceGroupsListInstances) MarshalJSON() ([]byte, error) { + type NoMethod RegionInstanceGroupsListInstances + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +// RegionInstanceGroupsListInstancesWarning: Output only. [Output Only] +// Informational warning message. +type RegionInstanceGroupsListInstancesWarning 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" - Warning about failed cleanup of transient changes made + // by a failed + // operation. + // "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was created. + // "DEPRECATED_TYPE_USED" - When deploying and at least one of the resources + // has a type marked as + // deprecated + // "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk that is + // larger than image size. + // "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the + // resources has a type marked as + // experimental + // "EXTERNAL_API_WARNING" - Warning that is present in an external api call + // "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been + // overridden. + // Deprecated unused field. + // "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an injected + // kernel, which is deprecated. + // "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB" - A WEIGHTED_MAGLEV backend + // service is associated with a health check that is + // not of type HTTP/HTTPS/HTTP2. + // "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a + // exceedingly large number of resources + // "LIST_OVERHEAD_QUOTA_EXCEED" - Resource can't be retrieved due to list + // overhead quota exceed + // which captures the amount of resources filtered out by + // user-defined list filter. + // "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type + // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is not + // assigned to an instance on the + // network. + // "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot ip + // forward. + // "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE" - The route's nextHopInstance + // URL refers to an instance that does not have an + // ipv6 interface on the same network as the route. + // "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL refers to + // an instance that does not exist. + // "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance URL + // refers to an instance that is not on the + // same network as the route. + // "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not have a + // status of RUNNING. + // "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to continue + // the process despite + // the mentioned error. + // "NO_RESULTS_ON_PAGE" - No results are present on a particular list page. + // "PARTIAL_SUCCESS" - Success is reported, but some results may be missing + // due to errors + // "QUOTA_INFO_UNAVAILABLE" - Quota information is not available to client + // requests (e.g: + // regions.list). + // "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource that + // requires a TOS they have not + // accepted. + // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a resource is + // in use. + // "RESOURCE_NOT_DELETED" - One or more of the resources set to auto-delete + // could not be deleted + // because they were in use. + // "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is + // ignored. + // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in instance + // group manager is valid as such, but + // its application does not make a lot of sense, because it allows only + // single instance in instance group. + // "UNDECLARED_PROPERTIES" - When undeclared properties in the schema are + // present + // "UNREACHABLE" - A given scope cannot be reached. + 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 []*RegionInstanceGroupsListInstancesWarningData `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 or default values are + // omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + 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. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s RegionInstanceGroupsListInstancesWarning) MarshalJSON() ([]byte, error) { + type NoMethod RegionInstanceGroupsListInstancesWarning + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +type RegionInstanceGroupsListInstancesWarningData 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 or default values are + // omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + 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. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s RegionInstanceGroupsListInstancesWarningData) MarshalJSON() ([]byte, error) { + type NoMethod RegionInstanceGroupsListInstancesWarningData + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +type RegionInstanceGroupsListInstancesRequest struct { + // InstanceState: Instances in which state should be returned. Valid options + // are: + // 'ALL', 'RUNNING'. By default, it lists all instances. + // + // Possible values: + // "ALL" - Matches any status of the instances, running, non-running and + // others. + // "RUNNING" - Instance is in RUNNING state if it is running. + InstanceState string `json:"instanceState,omitempty"` + // PortName: Name of port user is interested in. It is optional. If it is set, + // only + // information about this ports will be returned. If it is not set, all + // the + // named ports will be returned. + // Always lists all instances. + PortName string `json:"portName,omitempty"` + // ForceSendFields is a list of field names (e.g. "InstanceState") to + // unconditionally include in API requests. By default, fields with empty or + // default values are omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + ForceSendFields []string `json:"-"` + // NullFields is a list of field names (e.g. "InstanceState") to include in API + // requests with the JSON null value. By default, fields with empty values are + // omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s RegionInstanceGroupsListInstancesRequest) MarshalJSON() ([]byte, error) { + type NoMethod RegionInstanceGroupsListInstancesRequest + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +type RegionInstanceGroupsSetNamedPortsRequest struct { + // Fingerprint: The fingerprint of the named ports information for this + // instance group. + // Use this optional property to prevent conflicts when multiple users + // change + // the named ports settings concurrently. Obtain the fingerprint with + // theinstanceGroups.get + // method. Then, include the fingerprint in your request to ensure that you + // do not overwrite changes that were applied from another + // concurrent request. + Fingerprint string `json:"fingerprint,omitempty"` + // NamedPorts: The list of named ports to set for this instance group. + NamedPorts []*NamedPort `json:"namedPorts,omitempty"` + // ForceSendFields is a list of field names (e.g. "Fingerprint") to + // unconditionally include in API requests. By default, fields with empty or + // default values are omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + ForceSendFields []string `json:"-"` + // NullFields is a list of field names (e.g. "Fingerprint") to include in API + // requests with the JSON null value. By default, fields with empty values are + // omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s RegionInstanceGroupsSetNamedPortsRequest) MarshalJSON() ([]byte, error) { + type NoMethod RegionInstanceGroupsSetNamedPortsRequest + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +// RegionList: Contains a list of region resources. +type RegionList struct { + // Id: [Output Only] Unique identifier for the resource; defined by the server. + Id string `json:"id,omitempty"` + // Items: A list of Region resources. + Items []*Region `json:"items,omitempty"` + // Kind: Output only. [Output Only] Type of resource. Always compute#regionList + // for + // lists of regions. + 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 thanmaxResults, 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"` + // SelfLink: Output only. [Output Only] Server-defined URL for this resource. + SelfLink string `json:"selfLink,omitempty"` + // Warning: [Output Only] Informational warning message. + Warning *RegionListWarning `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 or default values are + // omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + 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. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s RegionList) MarshalJSON() ([]byte, error) { + type NoMethod RegionList + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +// RegionListWarning: [Output Only] Informational warning message. +type RegionListWarning 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" - Warning about failed cleanup of transient changes made + // by a failed + // operation. + // "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was created. + // "DEPRECATED_TYPE_USED" - When deploying and at least one of the resources + // has a type marked as + // deprecated + // "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk that is + // larger than image size. + // "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the + // resources has a type marked as + // experimental + // "EXTERNAL_API_WARNING" - Warning that is present in an external api call + // "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been + // overridden. + // Deprecated unused field. + // "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an injected + // kernel, which is deprecated. + // "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB" - A WEIGHTED_MAGLEV backend + // service is associated with a health check that is + // not of type HTTP/HTTPS/HTTP2. + // "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a + // exceedingly large number of resources + // "LIST_OVERHEAD_QUOTA_EXCEED" - Resource can't be retrieved due to list + // overhead quota exceed + // which captures the amount of resources filtered out by + // user-defined list filter. + // "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type + // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is not + // assigned to an instance on the + // network. + // "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot ip + // forward. + // "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE" - The route's nextHopInstance + // URL refers to an instance that does not have an + // ipv6 interface on the same network as the route. + // "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL refers to + // an instance that does not exist. + // "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance URL + // refers to an instance that is not on the + // same network as the route. + // "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not have a + // status of RUNNING. + // "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to continue + // the process despite + // the mentioned error. + // "NO_RESULTS_ON_PAGE" - No results are present on a particular list page. + // "PARTIAL_SUCCESS" - Success is reported, but some results may be missing + // due to errors + // "QUOTA_INFO_UNAVAILABLE" - Quota information is not available to client + // requests (e.g: + // regions.list). + // "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource that + // requires a TOS they have not + // accepted. + // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a resource is + // in use. + // "RESOURCE_NOT_DELETED" - One or more of the resources set to auto-delete + // could not be deleted + // because they were in use. + // "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is + // ignored. + // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in instance + // group manager is valid as such, but + // its application does not make a lot of sense, because it allows only + // single instance in instance group. + // "UNDECLARED_PROPERTIES" - When undeclared properties in the schema are + // present + // "UNREACHABLE" - A given scope cannot be reached. + 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 []*RegionListWarningData `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 or default values are // omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + 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. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } -func (s *Quota) MarshalJSON() ([]byte, error) { - type NoMethod Quota - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s RegionListWarning) MarshalJSON() ([]byte, error) { + type NoMethod RegionListWarning + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -func (s *Quota) UnmarshalJSON(data []byte) error { - type NoMethod Quota - var s1 struct { - Limit gensupport.JSONFloat64 `json:"limit"` - Usage gensupport.JSONFloat64 `json:"usage"` - *NoMethod - } - s1.NoMethod = (*NoMethod)(s) - if err := json.Unmarshal(data, &s1); err != nil { - return err - } - s.Limit = float64(s1.Limit) - s.Usage = float64(s1.Usage) - return nil +type RegionListWarningData 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 or default values are + // omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + 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. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` } -// QuotaExceededInfo: Additional details for quota exceeded error for resource -// quota. -type QuotaExceededInfo struct { - // Dimensions: The map holding related quota dimensions. - Dimensions map[string]string `json:"dimensions,omitempty"` - // FutureLimit: Future quota limit being rolled out. The limit's unit depends - // on the quota type or metric. - FutureLimit float64 `json:"futureLimit,omitempty"` - // Limit: Current effective quota limit. The limit's unit depends on the quota - // type or metric. - Limit float64 `json:"limit,omitempty"` - // LimitName: The name of the quota limit. - LimitName string `json:"limitName,omitempty"` - // MetricName: The Compute Engine quota metric name. - MetricName string `json:"metricName,omitempty"` - // RolloutStatus: Rollout status of the future quota limit. +func (s RegionListWarningData) MarshalJSON() ([]byte, error) { + type NoMethod RegionListWarningData + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +type RegionNetworkEndpointGroupsAttachEndpointsRequest struct { + // NetworkEndpoints: The list of network endpoints to be attached. + NetworkEndpoints []*NetworkEndpoint `json:"networkEndpoints,omitempty"` + // ForceSendFields is a list of field names (e.g. "NetworkEndpoints") to + // unconditionally include in API requests. By default, fields with empty or + // default values are omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + ForceSendFields []string `json:"-"` + // NullFields is a list of field names (e.g. "NetworkEndpoints") to include in + // API requests with the JSON null value. By default, fields with empty values + // are omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s RegionNetworkEndpointGroupsAttachEndpointsRequest) MarshalJSON() ([]byte, error) { + type NoMethod RegionNetworkEndpointGroupsAttachEndpointsRequest + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +type RegionNetworkEndpointGroupsDetachEndpointsRequest struct { + // NetworkEndpoints: The list of network endpoints to be detached. + NetworkEndpoints []*NetworkEndpoint `json:"networkEndpoints,omitempty"` + // ForceSendFields is a list of field names (e.g. "NetworkEndpoints") to + // unconditionally include in API requests. By default, fields with empty or + // default values are omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + ForceSendFields []string `json:"-"` + // NullFields is a list of field names (e.g. "NetworkEndpoints") to include in + // API requests with the JSON null value. By default, fields with empty values + // are omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s RegionNetworkEndpointGroupsDetachEndpointsRequest) MarshalJSON() ([]byte, error) { + type NoMethod RegionNetworkEndpointGroupsDetachEndpointsRequest + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +type RegionNetworkFirewallPoliciesGetEffectiveFirewallsResponse struct { + // FirewallPolicys: Output only. [Output only] Effective firewalls from + // firewall policy. It applies to + // Regional Network Firewall Policies in the specified region, Global + // Network + // Firewall Policies and Hierachial Firewall Policies which are associated + // with the network. + FirewallPolicys []*RegionNetworkFirewallPoliciesGetEffectiveFirewallsResponseEffectiveFirewallPolicy `json:"firewallPolicys,omitempty"` + // Firewalls: Effective firewalls on the network. + Firewalls []*Firewall `json:"firewalls,omitempty"` + + // ServerResponse contains the HTTP response code and headers from the server. + googleapi.ServerResponse `json:"-"` + // ForceSendFields is a list of field names (e.g. "FirewallPolicys") to + // unconditionally include in API requests. By default, fields with empty or + // default values are omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + ForceSendFields []string `json:"-"` + // NullFields is a list of field names (e.g. "FirewallPolicys") to include in + // API requests with the JSON null value. By default, fields with empty values + // are omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s RegionNetworkFirewallPoliciesGetEffectiveFirewallsResponse) MarshalJSON() ([]byte, error) { + type NoMethod RegionNetworkFirewallPoliciesGetEffectiveFirewallsResponse + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +type RegionNetworkFirewallPoliciesGetEffectiveFirewallsResponseEffectiveFirewallPolicy struct { + // DisplayName: Output only. [Output Only] The display name of the firewall + // policy. + DisplayName string `json:"displayName,omitempty"` + // Name: Output only. [Output Only] The name of the firewall policy. + Name string `json:"name,omitempty"` + // PacketMirroringRules: Output only. [Output only] The packet mirroring rules + // that apply to the network. + PacketMirroringRules []*FirewallPolicyRule `json:"packetMirroringRules,omitempty"` + // Priority: Output only. [Output only] Priority of firewall policy + // association. Not applicable for + // type=HIERARCHY. + Priority int64 `json:"priority,omitempty"` + // Rules: Output only. [Output only] The rules that apply to the network. + Rules []*FirewallPolicyRule `json:"rules,omitempty"` + // Type: Output only. [Output Only] The type of the firewall policy. Can be one + // of HIERARCHY, + // NETWORK, NETWORK_REGIONAL, SYSTEM_GLOBAL, SYSTEM_REGIONAL. // // Possible values: - // "IN_PROGRESS" - IN_PROGRESS - A rollout is in process which will change - // the limit value to future limit. - // "ROLLOUT_STATUS_UNSPECIFIED" - ROLLOUT_STATUS_UNSPECIFIED - Rollout status - // is not specified. The default value. - RolloutStatus string `json:"rolloutStatus,omitempty"` - // ForceSendFields is a list of field names (e.g. "Dimensions") to + // "HIERARCHY" + // "NETWORK" + // "NETWORK_REGIONAL" + // "SYSTEM_GLOBAL" + // "SYSTEM_REGIONAL" + // "UNSPECIFIED" + Type string `json:"type,omitempty"` + // ForceSendFields is a list of field names (e.g. "DisplayName") to // unconditionally include in API requests. By default, fields with empty or // default values are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. ForceSendFields []string `json:"-"` - // NullFields is a list of field names (e.g. "Dimensions") to include in API + // NullFields is a list of field names (e.g. "DisplayName") to include in API // requests with the JSON null value. By default, fields with empty values are // omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } -func (s *QuotaExceededInfo) MarshalJSON() ([]byte, error) { - type NoMethod QuotaExceededInfo - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s RegionNetworkFirewallPoliciesGetEffectiveFirewallsResponseEffectiveFirewallPolicy) MarshalJSON() ([]byte, error) { + type NoMethod RegionNetworkFirewallPoliciesGetEffectiveFirewallsResponseEffectiveFirewallPolicy + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -func (s *QuotaExceededInfo) UnmarshalJSON(data []byte) error { - type NoMethod QuotaExceededInfo - var s1 struct { - FutureLimit gensupport.JSONFloat64 `json:"futureLimit"` - Limit gensupport.JSONFloat64 `json:"limit"` - *NoMethod - } - s1.NoMethod = (*NoMethod)(s) - if err := json.Unmarshal(data, &s1); err != nil { - return err - } - s.FutureLimit = float64(s1.FutureLimit) - s.Limit = float64(s1.Limit) - return nil +type RegionSetLabelsRequest struct { + // LabelFingerprint: The fingerprint of the previous set of labels for this + // resource, + // used to detect conflicts. The fingerprint is initially generated by + // Compute + // Engine and changes after every request to modify or update labels. You + // must + // always provide an up-to-date fingerprint hash in order to update or + // change + // labels. Make a get() request to the resource to get the latest + // fingerprint. + LabelFingerprint string `json:"labelFingerprint,omitempty"` + // Labels: The labels to set for this resource. + Labels map[string]string `json:"labels,omitempty"` + // ForceSendFields is a list of field names (e.g. "LabelFingerprint") to + // unconditionally include in API requests. By default, fields with empty or + // default values are omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + ForceSendFields []string `json:"-"` + // NullFields is a list of field names (e.g. "LabelFingerprint") to include in + // API requests with the JSON null value. By default, fields with empty values + // are omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` } -// Reference: Represents a reference to a resource. -type Reference struct { - // Kind: [Output Only] Type of the resource. Always compute#reference for - // references. - Kind string `json:"kind,omitempty"` - // ReferenceType: A description of the reference type with no implied - // semantics. Possible values include: 1. MEMBER_OF - ReferenceType string `json:"referenceType,omitempty"` - // Referrer: URL of the resource which refers to the target. - Referrer string `json:"referrer,omitempty"` - // Target: URL of the resource to which this reference points. - Target string `json:"target,omitempty"` - // ForceSendFields is a list of field names (e.g. "Kind") to unconditionally - // include in API requests. By default, fields with empty or default values are +func (s RegionSetLabelsRequest) MarshalJSON() ([]byte, error) { + type NoMethod RegionSetLabelsRequest + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +type RegionSetPolicyRequest struct { + // Bindings: Flatten Policy to create a backwacd compatible + // wire-format. + // Deprecated. Use 'policy' to specify bindings. + Bindings []*Binding `json:"bindings,omitempty"` + // Etag: Flatten Policy to create a backward compatible + // wire-format. + // Deprecated. Use 'policy' to specify the etag. + Etag string `json:"etag,omitempty"` + // Policy: REQUIRED: The complete policy to be applied to the 'resource'. The + // size of + // the policy is limited to a few 10s of KB. An empty policy is in general + // a + // valid policy but certain services (like Projects) might reject them. + Policy *Policy `json:"policy,omitempty"` + // ForceSendFields is a list of field names (e.g. "Bindings") to + // unconditionally include in API requests. By default, fields with empty or + // default values are omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + ForceSendFields []string `json:"-"` + // NullFields is a list of field names (e.g. "Bindings") to include in API + // requests with the JSON null value. By default, fields with empty values are // omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s RegionSetPolicyRequest) MarshalJSON() ([]byte, error) { + type NoMethod RegionSetPolicyRequest + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +type RegionSnapshotUpdateKmsKeyRequest struct { + // KmsKeyName: Optional. The new KMS key to replace the current one on the + // snapshot. If empty, the + // snapshot will be re-encrypted using the primary version of the + // snapshot's + // current KMS key. + // + // The KMS key can be provided in the following formats: + // + // + // - projects/project_id/locations/region/keyRings/region/cryptoKeys/key + KmsKeyName string `json:"kmsKeyName,omitempty"` + // ForceSendFields is a list of field names (e.g. "KmsKeyName") to + // unconditionally include in API requests. By default, fields with empty or + // default values are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. ForceSendFields []string `json:"-"` - // NullFields is a list of field names (e.g. "Kind") to include in API requests - // with the JSON null value. By default, fields with empty values are omitted - // from API requests. See + // NullFields is a list of field names (e.g. "KmsKeyName") to include in API + // requests with the JSON null value. By default, fields with empty values are + // omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } -func (s *Reference) MarshalJSON() ([]byte, error) { - type NoMethod Reference - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s RegionSnapshotUpdateKmsKeyRequest) MarshalJSON() ([]byte, error) { + type NoMethod RegionSnapshotUpdateKmsKeyRequest + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -// Region: Represents a Region resource. A region is a geographical area where -// a resource is located. For more information, read Regions and Zones. -type Region struct { - // CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text format. +type RegionTargetHttpsProxiesSetSslCertificatesRequest struct { + // SslCertificates: New set of SslCertificate resources to associate + // with this TargetHttpsProxy resource. + SslCertificates []string `json:"sslCertificates,omitempty"` + // ForceSendFields is a list of field names (e.g. "SslCertificates") to + // unconditionally include in API requests. By default, fields with empty or + // default values are omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + ForceSendFields []string `json:"-"` + // NullFields is a list of field names (e.g. "SslCertificates") to include in + // API requests with the JSON null value. By default, fields with empty values + // are omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s RegionTargetHttpsProxiesSetSslCertificatesRequest) MarshalJSON() ([]byte, error) { + type NoMethod RegionTargetHttpsProxiesSetSslCertificatesRequest + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +type RegionUrlMapsValidateRequest struct { + // Resource: Content of the UrlMap to be validated. + Resource *UrlMap `json:"resource,omitempty"` + // ForceSendFields is a list of field names (e.g. "Resource") to + // unconditionally include in API requests. By default, fields with empty or + // default values are omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + ForceSendFields []string `json:"-"` + // NullFields is a list of field names (e.g. "Resource") to include in API + // requests with the JSON null value. By default, fields with empty values are + // omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s RegionUrlMapsValidateRequest) MarshalJSON() ([]byte, error) { + type NoMethod RegionUrlMapsValidateRequest + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +// RequestMirrorPolicy: A policy that specifies how requests intended for the +// route's backends +// are shadowed to a separate mirrored backend service. The load +// balancer +// doesn't wait for responses from the shadow service. Before sending +// traffic +// to the shadow service, the host or authority header is suffixed with-shadow. +type RequestMirrorPolicy struct { + // BackendService: The full or partial URL to the BackendService resource + // being + // mirrored to. + // + // The backend service configured for a mirroring + // policy must reference backends that are of the same type as the + // original + // backend service matched in the URL map. + // + // Serverless NEG backends are not currently supported as a mirrored + // backend service. + BackendService string `json:"backendService,omitempty"` + // MirrorPercent: The percentage of requests to be mirrored to + // `backend_service`. + MirrorPercent float64 `json:"mirrorPercent,omitempty"` + // ForceSendFields is a list of field names (e.g. "BackendService") to + // unconditionally include in API requests. By default, fields with empty or + // default values are omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + ForceSendFields []string `json:"-"` + // NullFields is a list of field names (e.g. "BackendService") to include in + // API requests with the JSON null value. By default, fields with empty values + // are omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s RequestMirrorPolicy) MarshalJSON() ([]byte, error) { + type NoMethod RequestMirrorPolicy + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +func (s *RequestMirrorPolicy) UnmarshalJSON(data []byte) error { + type NoMethod RequestMirrorPolicy + var s1 struct { + MirrorPercent gensupport.JSONFloat64 `json:"mirrorPercent"` + *NoMethod + } + s1.NoMethod = (*NoMethod)(s) + if err := json.Unmarshal(data, &s1); err != nil { + return err + } + s.MirrorPercent = float64(s1.MirrorPercent) + return nil +} + +// Reservation: Represents a reservation resource. A reservation ensures that +// capacity is +// held in a specific zone even if the reserved VMs are not running. For +// more +// information, read Reserving zonal +// resources. +type Reservation struct { + // AdvancedDeploymentControl: Advanced control for cluster management, + // applicable only to DENSE + // deployment type reservations. + AdvancedDeploymentControl *ReservationAdvancedDeploymentControl `json:"advancedDeploymentControl,omitempty"` + // AggregateReservation: Reservation for aggregated resources, providing shape + // flexibility. + AggregateReservation *AllocationAggregateReservation `json:"aggregateReservation,omitempty"` + // Commitment: Output only. [Output Only] Full or partial URL to a parent + // commitment. This field + // displays for reservations that are tied to a commitment. + Commitment string `json:"commitment,omitempty"` + // Possible values: + // "CONFIDENTIAL_COMPUTE_TYPE_TDX" - Intel Trust Domain Extensions. + // "CONFIDENTIAL_COMPUTE_TYPE_UNSPECIFIED" + ConfidentialComputeType string `json:"confidentialComputeType,omitempty"` + // CreationTimestamp: Output only. [Output Only] Creation timestamp + // inRFC3339 + // text format. CreationTimestamp string `json:"creationTimestamp,omitempty"` - // Deprecated -- [Output Only] The deprecation status associated with this - // region. - Deprecated *DeprecationStatus `json:"deprecated,omitempty"` - // Description: [Output Only] Textual description of the resource. + // DeleteAfterDuration: Duration time relative to reservation creation when + // Compute Engine will + // automatically delete this resource. + DeleteAfterDuration *Duration `json:"deleteAfterDuration,omitempty"` + // DeleteAtTime: Absolute time in future when the reservation will be + // auto-deleted by Compute Engine. Timestamp is represented inRFC3339 text + // format. + DeleteAtTime string `json:"deleteAtTime,omitempty"` + // DeploymentType: Specifies the deployment strategy for this reservation. + // + // Possible values: + // "DENSE" - The reserved capacity is made up of densely deployed reservation + // blocks. + // "DEPLOYMENT_TYPE_UNSPECIFIED" + DeploymentType string `json:"deploymentType,omitempty"` + // Description: An optional description of this resource. Provide this property + // when you + // create the resource. Description string `json:"description,omitempty"` - // Id: [Output Only] The unique identifier for the resource. This identifier is + // EarlyAccessMaintenance: Indicates the early access maintenance for the + // reservation. + // If this field is absent or set to NO_EARLY_ACCESS, the reservation is + // not + // enrolled in early access maintenance and the standard notice applies. + // + // Possible values: + // "NO_EARLY_ACCESS" - No early access. + // "WAVE1" - Wave 1: Fastest notification period + // "WAVE2" - Wave 2: Medium notification period + EarlyAccessMaintenance string `json:"earlyAccessMaintenance,omitempty"` + // EnableEmergentMaintenance: Indicates whether Compute Engine allows unplanned + // maintenance for your VMs; + // for example, to fix hardware errors. + EnableEmergentMaintenance bool `json:"enableEmergentMaintenance,omitempty"` + // Id: Output only. [Output Only] The unique identifier for the resource. This + // identifier is // defined by the server. Id uint64 `json:"id,omitempty,string"` - // Kind: [Output Only] Type of the resource. Always compute#region for regions. + // Kind: Output only. [Output Only] Type of the resource. + // Alwayscompute#reservations for reservations. Kind string `json:"kind,omitempty"` - // Name: [Output Only] Name of the resource. + // LinkedCommitments: Output only. [Output Only] Full or partial URL to parent + // commitments. This field + // displays for reservations that are tied to multiple commitments. + LinkedCommitments []string `json:"linkedCommitments,omitempty"` + // Name: The name of the resource, provided by the client when initially + // creating + // the resource. The resource name must be 1-63 characters long, and + // comply + // withRFC1035. + // 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. Name string `json:"name,omitempty"` - // QuotaStatusWarning: [Output Only] Warning of fetching the `quotas` field for - // this region. This field is populated only if fetching of the `quotas` field - // fails. - QuotaStatusWarning *RegionQuotaStatusWarning `json:"quotaStatusWarning,omitempty"` - // Quotas: [Output Only] Quotas assigned to this region. - Quotas []*Quota `json:"quotas,omitempty"` - // SelfLink: [Output Only] Server-defined URL for the resource. + // Params: Input only. Additional params passed with the request, but not + // persisted + // as part of resource payload. + Params *ReservationParams `json:"params,omitempty"` + // ProtectionTier: Protection tier for the workload which specifies the + // workload expectations + // in the event of infrastructure failures at data center (e.g. power + // and/or cooling failures). + // + // Possible values: + // "CAPACITY_OPTIMIZED" - CAPACITY_OPTIMIZED capacity leverages redundancies + // (e.g. power, cooling) + // at the data center during normal operating conditions. In the event + // of + // infrastructure failures at data center (e.g. power and/or cooling + // failures), this workload may be disrupted. As a consequence, it has a + // weaker availability SLO than STANDARD. + // "PROTECTION_TIER_UNSPECIFIED" - Unspecified protection tier. + // "STANDARD" - STANDARD protection for workload that should be protected by + // redundancies + // (e.g. power, cooling) at the data center level. In the event + // of + // infrastructure failures at data center (e.g. power and/or cooling + // failures), this workload is expected to continue as normal using + // the + // redundancies. + ProtectionTier string `json:"protectionTier,omitempty"` + // ReservationSharingPolicy: Specify the reservation sharing policy. If + // unspecified, the reservation + // will not be shared with Google Cloud managed services. + ReservationSharingPolicy *AllocationReservationSharingPolicy `json:"reservationSharingPolicy,omitempty"` + // ResourcePolicies: Resource policies to be added to this reservation. The key + // is defined by + // user, and the value is resource policy url. This is to define + // placement + // policy with reservation. + ResourcePolicies map[string]string `json:"resourcePolicies,omitempty"` + // ResourceStatus: Output only. [Output Only] Status information for + // Reservation resource. + ResourceStatus *AllocationResourceStatus `json:"resourceStatus,omitempty"` + // SatisfiesPzs: Output only. [Output Only] Reserved for future use. + SatisfiesPzs bool `json:"satisfiesPzs,omitempty"` + // SchedulingType: The type of maintenance for the reservation. + // + // Possible values: + // "GROUPED" - Maintenance on all reserved instances in the reservation is + // synchronized. + // "GROUP_MAINTENANCE_TYPE_UNSPECIFIED" - Unknown maintenance type. + // "INDEPENDENT" - Maintenance is not synchronized for this reservation. + // Instead, each + // instance has its own maintenance window. + SchedulingType string `json:"schedulingType,omitempty"` + // SelfLink: Output only. [Output Only] Server-defined fully-qualified URL for + // this resource. SelfLink string `json:"selfLink,omitempty"` - // Status: [Output Only] Status of the region, either UP or DOWN. + // ShareSettings: Specify share-settings to create a shared reservation. This + // property is + // optional. For more information about the syntax and options for this + // field and its subfields, see the guide for creating + // a shared reservation. + ShareSettings *ShareSettings `json:"shareSettings,omitempty"` + // SpecificReservation: Reservation for instances with specific machine shapes. + SpecificReservation *AllocationSpecificSKUReservation `json:"specificReservation,omitempty"` + // SpecificReservationRequired: Indicates whether the reservation can be + // consumed by VMs with affinity + // for "any" reservation. If the field is set, then only VMs that target + // the reservation by name can consume from this reservation. + SpecificReservationRequired bool `json:"specificReservationRequired,omitempty"` + // Status: Output only. [Output Only] The status of the reservation. + // + // + // - CREATING: Reservation resources are being + // allocated. + // - READY: Reservation resources have been allocated, + // and the reservation is ready for use. + // - DELETING: Reservation deletion is in progress. + // - UPDATING: Reservation update is in progress. // // Possible values: - // "DOWN" - // "UP" + // "CREATING" - Reservation resources are being allocated. + // "DELETING" - Reservation deletion is in progress. + // "INVALID" + // "READY" - Reservation resources have been allocated, and the reservation + // is ready + // for use. + // "UPDATING" - Reservation update is in progress. Status string `json:"status,omitempty"` - // SupportsPzs: [Output Only] Reserved for future use. - SupportsPzs bool `json:"supportsPzs,omitempty"` - // Zones: [Output Only] A list of zones available in this region, in the form - // of resource URLs. - Zones []string `json:"zones,omitempty"` + // Zone: Zone in which the reservation resides. A zone must be provided if + // the + // reservation is created within a commitment. + Zone string `json:"zone,omitempty"` // ServerResponse contains the HTTP response code and headers from the server. googleapi.ServerResponse `json:"-"` - // ForceSendFields is a list of field names (e.g. "CreationTimestamp") to + // ForceSendFields is a list of field names (e.g. "AdvancedDeploymentControl") + // to unconditionally include in API requests. By default, fields with empty or + // default values are omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + ForceSendFields []string `json:"-"` + // NullFields is a list of field names (e.g. "AdvancedDeploymentControl") to + // include in API requests with the JSON null value. By default, fields with + // empty values are omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s Reservation) MarshalJSON() ([]byte, error) { + type NoMethod Reservation + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +// ReservationAdvancedDeploymentControl: Advance control for cluster +// management, applicable only to DENSE deployment +// type reservations. +type ReservationAdvancedDeploymentControl struct { + // ReservationOperationalMode: Indicates chosen reservation operational mode + // for the reservation. + // + // Possible values: + // "ALL_CAPACITY" - Google Cloud does not manage the failure of machines, but + // provides + // additional capacity, which is not guaranteed to be available. + // "HIGHLY_AVAILABLE_CAPACITY" - Google Cloud manages the failure of machines + // to provide high + // availability. + // "RESERVATION_OPERATIONAL_MODE_UNSPECIFIED" + ReservationOperationalMode string `json:"reservationOperationalMode,omitempty"` + // ForceSendFields is a list of field names (e.g. "ReservationOperationalMode") + // to unconditionally include in API requests. By default, fields with empty or + // default values are omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + ForceSendFields []string `json:"-"` + // NullFields is a list of field names (e.g. "ReservationOperationalMode") to + // include in API requests with the JSON null value. By default, fields with + // empty values are omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s ReservationAdvancedDeploymentControl) MarshalJSON() ([]byte, error) { + type NoMethod ReservationAdvancedDeploymentControl + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +// ReservationAffinity: Specifies the reservations that this instance can +// consume from. +type ReservationAffinity struct { + // ConsumeReservationType: Specifies the type of reservation from which this + // instance can consume + // resources: ANY_RESERVATION (default),SPECIFIC_RESERVATION, or + // NO_RESERVATION. See + // Consuming reserved instances for examples. + // + // Possible values: + // "ANY_RESERVATION" - Consume any allocation available. + // "NO_RESERVATION" - Do not consume from any allocated capacity. + // "SPECIFIC_RESERVATION" - Must consume from a specific reservation. Must + // specify key value fields + // for specifying the reservations. + // "UNSPECIFIED" + ConsumeReservationType string `json:"consumeReservationType,omitempty"` + // Key: Corresponds to the label key of a reservation resource. To target + // aSPECIFIC_RESERVATION by name, specifygoogleapis.com/reservation-name as the + // key and specify + // the name of your reservation as its value. + Key string `json:"key,omitempty"` + // Values: Corresponds to the label values of a reservation resource. This can + // be + // either a name to a reservation in the same project + // or + // "projects/different-project/reservations/some-reservation-name" to target + // a + // shared reservation in the same zone but in a different project. + Values []string `json:"values,omitempty"` + // ForceSendFields is a list of field names (e.g. "ConsumeReservationType") to // unconditionally include in API requests. By default, fields with empty or // default values are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. ForceSendFields []string `json:"-"` - // NullFields is a list of field names (e.g. "CreationTimestamp") to include in - // API requests with the JSON null value. By default, fields with empty values - // are omitted from API requests. See + // NullFields is a list of field names (e.g. "ConsumeReservationType") to + // include in API requests with the JSON null value. By default, fields with + // empty values are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } -func (s *Region) MarshalJSON() ([]byte, error) { - type NoMethod Region - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s ReservationAffinity) MarshalJSON() ([]byte, error) { + type NoMethod ReservationAffinity + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -// RegionQuotaStatusWarning: [Output Only] Warning of fetching the `quotas` -// field for this region. This field is populated only if fetching of the -// `quotas` field fails. -type RegionQuotaStatusWarning 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. +// ReservationAggregatedList: Contains a list of reservations. +type ReservationAggregatedList struct { + // Id: [Output Only] Unique identifier for the resource; defined by the server. + Id string `json:"id,omitempty"` + // Items: A list of Allocation resources. + Items map[string]ReservationsScopedList `json:"items,omitempty"` + // Kind: Output only. Type of resource. + 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 thanmaxResults, 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"` + // SelfLink: Output only. [Output Only] Server-defined URL for this resource. + SelfLink string `json:"selfLink,omitempty"` + // Unreachables: Output only. [Output Only] Unreachable resources. + Unreachables []string `json:"unreachables,omitempty"` + // Warning: [Output Only] Informational warning message. + Warning *ReservationAggregatedListWarning `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 or default values are + // omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + 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. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s ReservationAggregatedList) MarshalJSON() ([]byte, error) { + type NoMethod ReservationAggregatedList + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +// ReservationAggregatedListWarning: [Output Only] Informational warning +// message. +type ReservationAggregatedListWarning 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" - Warning about failed cleanup of transient changes made - // by a failed operation. + // by a failed + // operation. // "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was created. // "DEPRECATED_TYPE_USED" - When deploying and at least one of the resources - // has a type marked as deprecated + // has a type marked as + // deprecated // "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk that is // larger than image size. // "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the - // resources has a type marked as experimental + // resources has a type marked as + // experimental // "EXTERNAL_API_WARNING" - Warning that is present in an external api call // "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been - // overridden. Deprecated unused field. + // overridden. + // Deprecated unused field. // "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an injected // kernel, which is deprecated. // "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB" - A WEIGHTED_MAGLEV backend - // service is associated with a health check that is not of type - // HTTP/HTTPS/HTTP2. + // service is associated with a health check that is + // not of type HTTP/HTTPS/HTTP2. // "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a // exceedingly large number of resources // "LIST_OVERHEAD_QUOTA_EXCEED" - Resource can't be retrieved due to list - // overhead quota exceed which captures the amount of resources filtered out by + // overhead quota exceed + // which captures the amount of resources filtered out by // user-defined list filter. // "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is not - // assigned to an instance on the network. + // assigned to an instance on the + // network. // "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot ip // forward. // "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE" - The route's nextHopInstance - // URL refers to an instance that does not have an ipv6 interface on the same - // network as the route. + // URL refers to an instance that does not have an + // ipv6 interface on the same network as the route. // "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL refers to // an instance that does not exist. // "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance URL - // refers to an instance that is not on the same network as the route. + // refers to an instance that is not on the + // same network as the route. // "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not have a // status of RUNNING. // "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to continue - // the process despite the mentioned error. + // the process despite + // the mentioned error. // "NO_RESULTS_ON_PAGE" - No results are present on a particular list page. // "PARTIAL_SUCCESS" - Success is reported, but some results may be missing // due to errors + // "QUOTA_INFO_UNAVAILABLE" - Quota information is not available to client + // requests (e.g: + // regions.list). // "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource that - // requires a TOS they have not accepted. + // requires a TOS they have not + // accepted. // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a resource is // in use. // "RESOURCE_NOT_DELETED" - One or more of the resources set to auto-delete - // could not be deleted because they were in use. + // could not be deleted + // because they were in use. // "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is // ignored. // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in instance - // group manager is valid as such, but its application does not make a lot of - // sense, because it allows only single instance in instance group. + // group manager is valid as such, but + // its application does not make a lot of sense, because it allows only + // single instance in instance group. // "UNDECLARED_PROPERTIES" - When undeclared properties in the schema are // present // "UNREACHABLE" - A given scope cannot be reached. 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 []*RegionQuotaStatusWarningData `json:"data,omitempty"` + // Data: [Output Only] Metadata about this warning in key: + // value format. For example: + // + // "data": [ + // { + // "key": "scope", + // "value": "zones/us-east1-d" + // } + Data []*ReservationAggregatedListWarningData `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 @@ -33520,19 +57409,22 @@ type RegionQuotaStatusWarning struct { NullFields []string `json:"-"` } -func (s *RegionQuotaStatusWarning) MarshalJSON() ([]byte, error) { - type NoMethod RegionQuotaStatusWarning - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s ReservationAggregatedListWarning) MarshalJSON() ([]byte, error) { + type NoMethod ReservationAggregatedListWarning + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -type RegionQuotaStatusWarningData 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). +type ReservationAggregatedListWarningData 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"` @@ -33549,59 +57441,250 @@ type RegionQuotaStatusWarningData struct { NullFields []string `json:"-"` } -func (s *RegionQuotaStatusWarningData) MarshalJSON() ([]byte, error) { - type NoMethod RegionQuotaStatusWarningData - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s ReservationAggregatedListWarningData) MarshalJSON() ([]byte, error) { + type NoMethod ReservationAggregatedListWarningData + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -type RegionAddressesMoveRequest struct { - // Description: An optional destination address description if intended to be - // different from the source. - Description string `json:"description,omitempty"` - // DestinationAddress: The URL of the destination address to move to. This can - // be a full or partial URL. For example, the following are all valid URLs to a - // address: - - // https://www.googleapis.com/compute/v1/projects/project/regions/region - // /addresses/address - projects/project/regions/region/addresses/address Note - // that destination project must be different from the source project. So - // /regions/region/addresses/address is not valid partial url. - DestinationAddress string `json:"destinationAddress,omitempty"` - // ForceSendFields is a list of field names (e.g. "Description") to +// ReservationBlock: Represents a reservation block resource. +type ReservationBlock struct { + // Count: Output only. [Output Only] The number of resources that are allocated + // in this + // reservation block. + Count int64 `json:"count,omitempty"` + // CreationTimestamp: Output only. [Output Only] Creation timestamp inRFC3339 + // text format. + CreationTimestamp string `json:"creationTimestamp,omitempty"` + // HealthInfo: Output only. [Output Only] Health information for the + // reservation block. + HealthInfo *ReservationBlockHealthInfo `json:"healthInfo,omitempty"` + // Id: Output only. [Output Only] The unique identifier for the resource. This + // identifier is + // defined by the server. + Id uint64 `json:"id,omitempty,string"` + // InUseCount: Output only. [Output Only] The number of instances that are + // currently in use on this + // reservation block. + InUseCount int64 `json:"inUseCount,omitempty"` + // InUseHostCount: Output only. Number of hosts currently in use. If there is + // one or more Instances running + // on the host, it is considered in use. + InUseHostCount int64 `json:"inUseHostCount,omitempty"` + // Kind: Output only. [Output Only] Type of the resource. + // Alwayscompute#reservationBlock for reservation blocks. + Kind string `json:"kind,omitempty"` + // Name: Output only. [Output Only] The name of this reservation block + // generated by Google + // Compute Engine. The name must be 1-63 characters long, and comply + // with + // RFC1035 @pattern a-z (?:[-a-z0-9]{0,61}[a-z0-9])? + Name string `json:"name,omitempty"` + // PhysicalTopology: Output only. [Output Only] The physical topology of the + // reservation block. + PhysicalTopology *ReservationBlockPhysicalTopology `json:"physicalTopology,omitempty"` + // ReservationMaintenance: Output only. [Output Only] Maintenance information + // for this reservation block. + ReservationMaintenance *GroupMaintenanceInfo `json:"reservationMaintenance,omitempty"` + // ReservationSubBlockCount: Output only. [Output Only] The number of + // reservation subBlocks associated with this + // reservation block. + ReservationSubBlockCount int64 `json:"reservationSubBlockCount,omitempty"` + // ReservationSubBlockInUseCount: Output only. [Output Only] The number of + // in-use reservation subBlocks associated with + // this reservation block. If at least one VM is running on a subBlock, it + // is + // considered in-use. + ReservationSubBlockInUseCount int64 `json:"reservationSubBlockInUseCount,omitempty"` + // SelfLink: Output only. [Output Only] Server-defined fully-qualified URL for + // this resource. + SelfLink string `json:"selfLink,omitempty"` + // SelfLinkWithId: Output only. [Output Only] Server-defined URL for this + // resource with the resource id. + SelfLinkWithId string `json:"selfLinkWithId,omitempty"` + // Status: Output only. [Output Only] Status of the reservation block. + // + // Possible values: + // "CREATING" - Resources are being allocated for the reservation block. + // "DELETING" - Reservation block is currently being deleted. + // "INVALID" + // "READY" - Reservation block has allocated all its resources. + Status string `json:"status,omitempty"` + // Zone: Output only. [Output Only] Zone in which the reservation block + // resides. + Zone string `json:"zone,omitempty"` + // ForceSendFields is a list of field names (e.g. "Count") to unconditionally + // include in API requests. By default, fields with empty or default values are + // omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + ForceSendFields []string `json:"-"` + // NullFields is a list of field names (e.g. "Count") to include in API + // requests with the JSON null value. By default, fields with empty values are + // omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s ReservationBlock) MarshalJSON() ([]byte, error) { + type NoMethod ReservationBlock + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +// ReservationBlockHealthInfo: Health information for the reservation block. +type ReservationBlockHealthInfo struct { + // DegradedSubBlockCount: The number of subBlocks that are degraded. + DegradedSubBlockCount int64 `json:"degradedSubBlockCount,omitempty"` + // HealthStatus: The health status of the reservation block. + // + // Possible values: + // "DEGRADED" - The reservation block is degraded. + // "HEALTHY" - The reservation block is healthy. + // "HEALTH_STATUS_UNSPECIFIED" - The health status of the reservation block + // is unspecified. + HealthStatus string `json:"healthStatus,omitempty"` + // HealthySubBlockCount: The number of subBlocks that are healthy. + HealthySubBlockCount int64 `json:"healthySubBlockCount,omitempty"` + // ForceSendFields is a list of field names (e.g. "DegradedSubBlockCount") to // unconditionally include in API requests. By default, fields with empty or // default values are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. ForceSendFields []string `json:"-"` - // NullFields is a list of field names (e.g. "Description") to include in API + // NullFields is a list of field names (e.g. "DegradedSubBlockCount") to + // include in API requests with the JSON null value. By default, fields with + // empty values are omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s ReservationBlockHealthInfo) MarshalJSON() ([]byte, error) { + type NoMethod ReservationBlockHealthInfo + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +type ReservationBlockPhysicalTopology struct { + // Block: The hash of the capacity block within the cluster. + Block string `json:"block,omitempty"` + // Cluster: The cluster name of the reservation block. + Cluster string `json:"cluster,omitempty"` + // Instances: Output only. The detailed instances information for a given Block + Instances []*ReservationBlockPhysicalTopologyInstance `json:"instances,omitempty"` + // ForceSendFields is a list of field names (e.g. "Block") to unconditionally + // include in API requests. By default, fields with empty or default values are + // omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + ForceSendFields []string `json:"-"` + // NullFields is a list of field names (e.g. "Block") to include in API // requests with the JSON null value. By default, fields with empty values are // omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } -func (s *RegionAddressesMoveRequest) MarshalJSON() ([]byte, error) { - type NoMethod RegionAddressesMoveRequest - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s ReservationBlockPhysicalTopology) MarshalJSON() ([]byte, error) { + type NoMethod ReservationBlockPhysicalTopology + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -// RegionAutoscalerList: Contains a list of autoscalers. -type RegionAutoscalerList struct { - // Id: [Output Only] Unique identifier for the resource; defined by the server. +// ReservationBlockPhysicalTopologyInstance: The instances information for a +// given Block +type ReservationBlockPhysicalTopologyInstance struct { + // InstanceId: The InstanceId of the instance + InstanceId uint64 `json:"instanceId,omitempty,string"` + // PhysicalHostTopology: Output only. The PhysicalHostTopology of instances + // within a Block resource. + PhysicalHostTopology *ReservationBlockPhysicalTopologyInstancePhysicalHostTopology `json:"physicalHostTopology,omitempty"` + // ProjectId: Project where the instance lives + ProjectId uint64 `json:"projectId,omitempty,string"` + // ForceSendFields is a list of field names (e.g. "InstanceId") to + // unconditionally include in API requests. By default, fields with empty or + // default values are omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + ForceSendFields []string `json:"-"` + // NullFields is a list of field names (e.g. "InstanceId") to include in API + // requests with the JSON null value. By default, fields with empty values are + // omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s ReservationBlockPhysicalTopologyInstance) MarshalJSON() ([]byte, error) { + type NoMethod ReservationBlockPhysicalTopologyInstance + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +// ReservationBlockPhysicalTopologyInstancePhysicalHostTopology: The +// PhysicalHostTopology of the instance within a Block resource. +type ReservationBlockPhysicalTopologyInstancePhysicalHostTopology struct { + // Host: Host hash for a given instance + Host string `json:"host,omitempty"` + // SubBlock: Sub block hash for a given instance + SubBlock string `json:"subBlock,omitempty"` + // ForceSendFields is a list of field names (e.g. "Host") to unconditionally + // include in API requests. By default, fields with empty or default values are + // omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + ForceSendFields []string `json:"-"` + // NullFields is a list of field names (e.g. "Host") to include in API requests + // with the JSON null value. By default, fields with empty values are omitted + // from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s ReservationBlockPhysicalTopologyInstancePhysicalHostTopology) MarshalJSON() ([]byte, error) { + type NoMethod ReservationBlockPhysicalTopologyInstancePhysicalHostTopology + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +type ReservationBlocksGetResponse struct { + Resource *ReservationBlock `json:"resource,omitempty"` + + // ServerResponse contains the HTTP response code and headers from the server. + googleapi.ServerResponse `json:"-"` + // ForceSendFields is a list of field names (e.g. "Resource") to + // unconditionally include in API requests. By default, fields with empty or + // default values are omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + ForceSendFields []string `json:"-"` + // NullFields is a list of field names (e.g. "Resource") to include in API + // requests with the JSON null value. By default, fields with empty values are + // omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s ReservationBlocksGetResponse) MarshalJSON() ([]byte, error) { + type NoMethod ReservationBlocksGetResponse + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +// ReservationBlocksListResponse: A list of reservation blocks under a single +// reservation. +type ReservationBlocksListResponse struct { + // Id: Unique identifier for the resource; defined by the server. Id string `json:"id,omitempty"` - // Items: A list of Autoscaler resources. - Items []*Autoscaler `json:"items,omitempty"` - // Kind: Type of resource. + // Items: A list of reservation block resources. + Items []*ReservationBlock `json:"items,omitempty"` + // Kind: Type of the resource. Alwayscompute#reservationBlock for a list of + // reservation blocks. 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: This token allows you to get the next page of results + // for + // list requests. If the number of results is larger thanmaxResults, 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"` - // SelfLink: [Output Only] Server-defined URL for this resource. + // SelfLink: Server-defined URL for this resource. SelfLink string `json:"selfLink,omitempty"` - // Warning: [Output Only] Informational warning message. - Warning *RegionAutoscalerListWarning `json:"warning,omitempty"` + // Warning: Informational warning message. + Warning *ReservationBlocksListResponseWarning `json:"warning,omitempty"` // ServerResponse contains the HTTP response code and headers from the server. googleapi.ServerResponse `json:"-"` @@ -33618,76 +57701,98 @@ type RegionAutoscalerList struct { NullFields []string `json:"-"` } -func (s *RegionAutoscalerList) MarshalJSON() ([]byte, error) { - type NoMethod RegionAutoscalerList - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s ReservationBlocksListResponse) MarshalJSON() ([]byte, error) { + type NoMethod ReservationBlocksListResponse + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -// RegionAutoscalerListWarning: [Output Only] Informational warning message. -type RegionAutoscalerListWarning 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. +// ReservationBlocksListResponseWarning: Informational warning message. +type ReservationBlocksListResponseWarning 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" - Warning about failed cleanup of transient changes made - // by a failed operation. + // by a failed + // operation. // "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was created. // "DEPRECATED_TYPE_USED" - When deploying and at least one of the resources - // has a type marked as deprecated + // has a type marked as + // deprecated // "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk that is // larger than image size. // "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the - // resources has a type marked as experimental + // resources has a type marked as + // experimental // "EXTERNAL_API_WARNING" - Warning that is present in an external api call // "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been - // overridden. Deprecated unused field. + // overridden. + // Deprecated unused field. // "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an injected // kernel, which is deprecated. // "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB" - A WEIGHTED_MAGLEV backend - // service is associated with a health check that is not of type - // HTTP/HTTPS/HTTP2. + // service is associated with a health check that is + // not of type HTTP/HTTPS/HTTP2. // "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a // exceedingly large number of resources // "LIST_OVERHEAD_QUOTA_EXCEED" - Resource can't be retrieved due to list - // overhead quota exceed which captures the amount of resources filtered out by + // overhead quota exceed + // which captures the amount of resources filtered out by // user-defined list filter. // "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is not - // assigned to an instance on the network. + // assigned to an instance on the + // network. // "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot ip // forward. // "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE" - The route's nextHopInstance - // URL refers to an instance that does not have an ipv6 interface on the same - // network as the route. + // URL refers to an instance that does not have an + // ipv6 interface on the same network as the route. // "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL refers to // an instance that does not exist. // "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance URL - // refers to an instance that is not on the same network as the route. + // refers to an instance that is not on the + // same network as the route. // "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not have a // status of RUNNING. // "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to continue - // the process despite the mentioned error. + // the process despite + // the mentioned error. // "NO_RESULTS_ON_PAGE" - No results are present on a particular list page. // "PARTIAL_SUCCESS" - Success is reported, but some results may be missing // due to errors + // "QUOTA_INFO_UNAVAILABLE" - Quota information is not available to client + // requests (e.g: + // regions.list). // "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource that - // requires a TOS they have not accepted. + // requires a TOS they have not + // accepted. // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a resource is // in use. // "RESOURCE_NOT_DELETED" - One or more of the resources set to auto-delete - // could not be deleted because they were in use. + // could not be deleted + // because they were in use. // "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is // ignored. // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in instance - // group manager is valid as such, but its application does not make a lot of - // sense, because it allows only single instance in instance group. + // group manager is valid as such, but + // its application does not make a lot of sense, because it allows only + // single instance in instance group. // "UNDECLARED_PROPERTIES" - When undeclared properties in the schema are // present // "UNREACHABLE" - A given scope cannot be reached. 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 []*RegionAutoscalerListWarningData `json:"data,omitempty"` + // Data: [Output Only] Metadata about this warning in key: + // value format. For example: + // + // "data": [ + // { + // "key": "scope", + // "value": "zones/us-east1-d" + // } + Data []*ReservationBlocksListResponseWarningData `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 @@ -33703,19 +57808,22 @@ type RegionAutoscalerListWarning struct { NullFields []string `json:"-"` } -func (s *RegionAutoscalerListWarning) MarshalJSON() ([]byte, error) { - type NoMethod RegionAutoscalerListWarning - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s ReservationBlocksListResponseWarning) MarshalJSON() ([]byte, error) { + type NoMethod ReservationBlocksListResponseWarning + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -type RegionAutoscalerListWarningData 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). +type ReservationBlocksListResponseWarningData 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"` @@ -33732,29 +57840,34 @@ type RegionAutoscalerListWarningData struct { NullFields []string `json:"-"` } -func (s *RegionAutoscalerListWarningData) MarshalJSON() ([]byte, error) { - type NoMethod RegionAutoscalerListWarningData - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s ReservationBlocksListResponseWarningData) MarshalJSON() ([]byte, error) { + type NoMethod ReservationBlocksListResponseWarningData + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -type RegionDiskTypeList struct { - // Id: [Output Only] Unique identifier for the resource; defined by the server. +type ReservationList struct { + // Id: [Output Only] The unique identifier for the resource. This identifier + // is + // defined by the server. Id string `json:"id,omitempty"` - // Items: A list of DiskType resources. - Items []*DiskType `json:"items,omitempty"` - // Kind: [Output Only] Type of resource. Always compute#regionDiskTypeList for - // region disk types. + // Items: [Output Only] A list of Allocation resources. + Items []*Reservation `json:"items,omitempty"` + // Kind: Output only. [Output Only] Type of resource.Always + // compute#reservationsList + // for listsof reservations 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. + // results for + // list requests. If the number of results is larger thanmaxResults, 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"` - // SelfLink: [Output Only] Server-defined URL for this resource. + // SelfLink: Output only. [Output Only] Server-defined URL for this resource. SelfLink string `json:"selfLink,omitempty"` // Warning: [Output Only] Informational warning message. - Warning *RegionDiskTypeListWarning `json:"warning,omitempty"` + Warning *ReservationListWarning `json:"warning,omitempty"` // ServerResponse contains the HTTP response code and headers from the server. googleapi.ServerResponse `json:"-"` @@ -33771,76 +57884,98 @@ type RegionDiskTypeList struct { NullFields []string `json:"-"` } -func (s *RegionDiskTypeList) MarshalJSON() ([]byte, error) { - type NoMethod RegionDiskTypeList - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s ReservationList) MarshalJSON() ([]byte, error) { + type NoMethod ReservationList + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -// RegionDiskTypeListWarning: [Output Only] Informational warning message. -type RegionDiskTypeListWarning 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. +// ReservationListWarning: [Output Only] Informational warning message. +type ReservationListWarning 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" - Warning about failed cleanup of transient changes made - // by a failed operation. + // by a failed + // operation. // "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was created. // "DEPRECATED_TYPE_USED" - When deploying and at least one of the resources - // has a type marked as deprecated + // has a type marked as + // deprecated // "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk that is // larger than image size. // "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the - // resources has a type marked as experimental + // resources has a type marked as + // experimental // "EXTERNAL_API_WARNING" - Warning that is present in an external api call // "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been - // overridden. Deprecated unused field. + // overridden. + // Deprecated unused field. // "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an injected // kernel, which is deprecated. // "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB" - A WEIGHTED_MAGLEV backend - // service is associated with a health check that is not of type - // HTTP/HTTPS/HTTP2. + // service is associated with a health check that is + // not of type HTTP/HTTPS/HTTP2. // "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a // exceedingly large number of resources // "LIST_OVERHEAD_QUOTA_EXCEED" - Resource can't be retrieved due to list - // overhead quota exceed which captures the amount of resources filtered out by + // overhead quota exceed + // which captures the amount of resources filtered out by // user-defined list filter. // "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is not - // assigned to an instance on the network. + // assigned to an instance on the + // network. // "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot ip // forward. // "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE" - The route's nextHopInstance - // URL refers to an instance that does not have an ipv6 interface on the same - // network as the route. + // URL refers to an instance that does not have an + // ipv6 interface on the same network as the route. // "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL refers to // an instance that does not exist. // "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance URL - // refers to an instance that is not on the same network as the route. + // refers to an instance that is not on the + // same network as the route. // "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not have a // status of RUNNING. // "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to continue - // the process despite the mentioned error. + // the process despite + // the mentioned error. // "NO_RESULTS_ON_PAGE" - No results are present on a particular list page. // "PARTIAL_SUCCESS" - Success is reported, but some results may be missing // due to errors + // "QUOTA_INFO_UNAVAILABLE" - Quota information is not available to client + // requests (e.g: + // regions.list). // "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource that - // requires a TOS they have not accepted. + // requires a TOS they have not + // accepted. // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a resource is // in use. // "RESOURCE_NOT_DELETED" - One or more of the resources set to auto-delete - // could not be deleted because they were in use. + // could not be deleted + // because they were in use. // "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is // ignored. // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in instance - // group manager is valid as such, but its application does not make a lot of - // sense, because it allows only single instance in instance group. + // group manager is valid as such, but + // its application does not make a lot of sense, because it allows only + // single instance in instance group. // "UNDECLARED_PROPERTIES" - When undeclared properties in the schema are // present // "UNREACHABLE" - A given scope cannot be reached. 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 []*RegionDiskTypeListWarningData `json:"data,omitempty"` + // Data: [Output Only] Metadata about this warning in key: + // value format. For example: + // + // "data": [ + // { + // "key": "scope", + // "value": "zones/us-east1-d" + // } + Data []*ReservationListWarningData `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 @@ -33856,19 +57991,22 @@ type RegionDiskTypeListWarning struct { NullFields []string `json:"-"` } -func (s *RegionDiskTypeListWarning) MarshalJSON() ([]byte, error) { - type NoMethod RegionDiskTypeListWarning - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s ReservationListWarning) MarshalJSON() ([]byte, error) { + type NoMethod ReservationListWarning + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -type RegionDiskTypeListWarningData 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). +type ReservationListWarningData 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"` @@ -33885,122 +58023,231 @@ type RegionDiskTypeListWarningData struct { NullFields []string `json:"-"` } -func (s *RegionDiskTypeListWarningData) MarshalJSON() ([]byte, error) { - type NoMethod RegionDiskTypeListWarningData - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s ReservationListWarningData) MarshalJSON() ([]byte, error) { + type NoMethod ReservationListWarningData + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +// ReservationParams: Additional reservation params. +type ReservationParams struct { + // ResourceManagerTags: Input only. Resource manager tags to be bound to the + // reservation. Tag keys and + // values have the same definition as resource + // manager tags. Keys and values can be either in numeric format, + // such as `tagKeys/{tag_key_id}` and `tagValues/{tag_value_id}` or + // in + // namespaced format such as `{org_id|project_id}/{tag_key_short_name}` + // and + // `{tag_value_short_name}`. The field is ignored (both PUT & + // PATCH) when empty. + ResourceManagerTags map[string]string `json:"resourceManagerTags,omitempty"` + // ForceSendFields is a list of field names (e.g. "ResourceManagerTags") to + // unconditionally include in API requests. By default, fields with empty or + // default values are omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + ForceSendFields []string `json:"-"` + // NullFields is a list of field names (e.g. "ResourceManagerTags") to include + // in API requests with the JSON null value. By default, fields with empty + // values are omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` } -type RegionDisksAddResourcePoliciesRequest struct { - // ResourcePolicies: Resource policies to be added to this disk. - ResourcePolicies []string `json:"resourcePolicies,omitempty"` - // ForceSendFields is a list of field names (e.g. "ResourcePolicies") to +func (s ReservationParams) MarshalJSON() ([]byte, error) { + type NoMethod ReservationParams + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +// ReservationSlot: Represents a reservation slot resource. +type ReservationSlot struct { + // CreationTimestamp: Output only. [Output Only] The creation timestamp, + // formatted asRFC3339 text. + CreationTimestamp string `json:"creationTimestamp,omitempty"` + // Id: Output only. [Output Only] The unique identifier for this resource. This + // identifier is + // defined by the server. + Id uint64 `json:"id,omitempty,string"` + // Kind: Output only. [Output Only] The type of resource. + // Alwayscompute#reservationSlot for reservation slots. + Kind string `json:"kind,omitempty"` + // Name: Output only. [Output Only] The name of the reservation slot. + Name string `json:"name,omitempty"` + // PhysicalTopology: Output only. [Output Only] The physical topology of the + // reservation slot. + PhysicalTopology *ReservationSlotPhysicalTopology `json:"physicalTopology,omitempty"` + // SelfLink: Output only. [Output Only] A server-defined fully-qualified URL + // for this resource. + SelfLink string `json:"selfLink,omitempty"` + // SelfLinkWithId: Output only. [Output Only] A server-defined URL for this + // resource with the resource ID. + SelfLinkWithId string `json:"selfLinkWithId,omitempty"` + // ShareSettings: Specify share settings to create a shared slot. Set to + // empty + // to inherit the share settings from a parent resource. + ShareSettings *ShareSettings `json:"shareSettings,omitempty"` + // State: Output only. [Output Only] The state of the reservation slot. + // + // Possible values: + // "ACTIVE" - The reservation slot has allocated all its resources. + // "CREATING" - The resources are being allocated for the reservation slot. + // "DELETING" - The reservation slot is currently being deleted. + // "STATE_UNSPECIFIED" + // "UNAVAILABLE" - The reservation slot is currently unavailable. + State string `json:"state,omitempty"` + // Status: Output only. [Output Only] The status of the reservation slot. + Status *ReservationSlotStatus `json:"status,omitempty"` + // Zone: Output only. [Output Only] The zone in which the reservation slot + // resides. + Zone string `json:"zone,omitempty"` + // ForceSendFields is a list of field names (e.g. "CreationTimestamp") to // unconditionally include in API requests. By default, fields with empty or // default values are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. ForceSendFields []string `json:"-"` - // NullFields is a list of field names (e.g. "ResourcePolicies") to include in + // NullFields is a list of field names (e.g. "CreationTimestamp") to include in // API requests with the JSON null value. By default, fields with empty values // are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } -func (s *RegionDisksAddResourcePoliciesRequest) MarshalJSON() ([]byte, error) { - type NoMethod RegionDisksAddResourcePoliciesRequest - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s ReservationSlot) MarshalJSON() ([]byte, error) { + type NoMethod ReservationSlot + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -type RegionDisksRemoveResourcePoliciesRequest struct { - // ResourcePolicies: Resource policies to be removed from this disk. - ResourcePolicies []string `json:"resourcePolicies,omitempty"` - // ForceSendFields is a list of field names (e.g. "ResourcePolicies") to +type ReservationSlotPhysicalTopology struct { + // Block: The unique identifier of the capacity block within the cluster. + Block string `json:"block,omitempty"` + // Cluster: The cluster name of the reservation sub-block. + Cluster string `json:"cluster,omitempty"` + // Host: The unique identifier of the capacity host within the capacity + // sub-block. + Host string `json:"host,omitempty"` + // SubBlock: The unique identifier of the capacity sub-block within the + // capacity + // block. + SubBlock string `json:"subBlock,omitempty"` + // ForceSendFields is a list of field names (e.g. "Block") to unconditionally + // include in API requests. By default, fields with empty or default values are + // omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + ForceSendFields []string `json:"-"` + // NullFields is a list of field names (e.g. "Block") to include in API + // requests with the JSON null value. By default, fields with empty values are + // omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s ReservationSlotPhysicalTopology) MarshalJSON() ([]byte, error) { + type NoMethod ReservationSlotPhysicalTopology + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +type ReservationSlotStatus struct { + // PhysicalTopology: Output only. [Output Only] The physical topology of the + // reservation sub-block. + PhysicalTopology *ReservationSlotPhysicalTopology `json:"physicalTopology,omitempty"` + // RdmaIpAddresses: Output only. The RDMA IP address of the physical host. + RdmaIpAddresses []string `json:"rdmaIpAddresses,omitempty"` + // RunningInstances: Output only. The URIs of the instances currently running + // on this slot. + RunningInstances []string `json:"runningInstances,omitempty"` + // ForceSendFields is a list of field names (e.g. "PhysicalTopology") to // unconditionally include in API requests. By default, fields with empty or // default values are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. ForceSendFields []string `json:"-"` - // NullFields is a list of field names (e.g. "ResourcePolicies") to include in + // NullFields is a list of field names (e.g. "PhysicalTopology") to include in // API requests with the JSON null value. By default, fields with empty values // are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } -func (s *RegionDisksRemoveResourcePoliciesRequest) MarshalJSON() ([]byte, error) { - type NoMethod RegionDisksRemoveResourcePoliciesRequest - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s ReservationSlotStatus) MarshalJSON() ([]byte, error) { + type NoMethod ReservationSlotStatus + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -type RegionDisksResizeRequest struct { - // SizeGb: The new size of the regional persistent disk, which is specified in - // GB. - SizeGb int64 `json:"sizeGb,omitempty,string"` - // ForceSendFields is a list of field names (e.g. "SizeGb") to unconditionally - // include in API requests. By default, fields with empty or default values are - // omitted from API requests. See +type ReservationSlotsGetResponse struct { + Resource *ReservationSlot `json:"resource,omitempty"` + + // ServerResponse contains the HTTP response code and headers from the server. + googleapi.ServerResponse `json:"-"` + // ForceSendFields is a list of field names (e.g. "Resource") to + // unconditionally include in API requests. By default, fields with empty or + // default values are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. ForceSendFields []string `json:"-"` - // NullFields is a list of field names (e.g. "SizeGb") to include in API + // NullFields is a list of field names (e.g. "Resource") to include in API // requests with the JSON null value. By default, fields with empty values are // omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } -func (s *RegionDisksResizeRequest) MarshalJSON() ([]byte, error) { - type NoMethod RegionDisksResizeRequest - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s ReservationSlotsGetResponse) MarshalJSON() ([]byte, error) { + type NoMethod ReservationSlotsGetResponse + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -type RegionDisksStartAsyncReplicationRequest struct { - // AsyncSecondaryDisk: The secondary disk to start asynchronous replication to. - // 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 - // /disks/disk - - // https://www.googleapis.com/compute/v1/projects/project/regions/region - // /disks/disk - projects/project/zones/zone/disks/disk - - // projects/project/regions/region/disks/disk - zones/zone/disks/disk - - // regions/region/disks/disk - AsyncSecondaryDisk string `json:"asyncSecondaryDisk,omitempty"` - // ForceSendFields is a list of field names (e.g. "AsyncSecondaryDisk") to +type ReservationSlotsGetVersionRequest struct { + // SbomSelections: The SBOM selection to return. Duplicate values in the list + // will be ignored. + // + // Possible values: + // "SBOM_SELECTION_CURRENT" + // "SBOM_SELECTION_TARGET" + // "SBOM_SELECTION_UNSPECIFIED" + SbomSelections []string `json:"sbomSelections,omitempty"` + // ForceSendFields is a list of field names (e.g. "SbomSelections") to // unconditionally include in API requests. By default, fields with empty or // default values are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. ForceSendFields []string `json:"-"` - // NullFields is a list of field names (e.g. "AsyncSecondaryDisk") to include - // in API requests with the JSON null value. By default, fields with empty - // values are omitted from API requests. See + // NullFields is a list of field names (e.g. "SbomSelections") to include in + // API requests with the JSON null value. By default, fields with empty values + // are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } -func (s *RegionDisksStartAsyncReplicationRequest) MarshalJSON() ([]byte, error) { - type NoMethod RegionDisksStartAsyncReplicationRequest - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s ReservationSlotsGetVersionRequest) MarshalJSON() ([]byte, error) { + type NoMethod ReservationSlotsGetVersionRequest + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -// RegionInstanceGroupList: Contains a list of InstanceGroup resources. -type RegionInstanceGroupList struct { - // Id: [Output Only] Unique identifier for the resource; defined by the server. +// ReservationSlotsListResponse: A list of reservation slots within a single +// reservation. +type ReservationSlotsListResponse struct { + // Id: The unique identifier for the resource; defined by the server. Id string `json:"id,omitempty"` - // Items: A list of InstanceGroup resources. - Items []*InstanceGroup `json:"items,omitempty"` - // Kind: The resource type. + // Items: A list of reservation slot resources. + Items []*ReservationSlot `json:"items,omitempty"` + // Kind: The type of resource. Alwayscompute#reservationSlot for a list of + // reservation + // slots. 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: This token allows you to get the next page of results + // for + // list requests. If the number of results is larger thanmaxResults, 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"` - // SelfLink: [Output Only] Server-defined URL for this resource. + // SelfLink: The server-defined URL for this resource. SelfLink string `json:"selfLink,omitempty"` - // Warning: [Output Only] Informational warning message. - Warning *RegionInstanceGroupListWarning `json:"warning,omitempty"` + // Warning: An informational warning message. + Warning *ReservationSlotsListResponseWarning `json:"warning,omitempty"` // ServerResponse contains the HTTP response code and headers from the server. googleapi.ServerResponse `json:"-"` @@ -34017,76 +58264,98 @@ type RegionInstanceGroupList struct { NullFields []string `json:"-"` } -func (s *RegionInstanceGroupList) MarshalJSON() ([]byte, error) { - type NoMethod RegionInstanceGroupList - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s ReservationSlotsListResponse) MarshalJSON() ([]byte, error) { + type NoMethod ReservationSlotsListResponse + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -// RegionInstanceGroupListWarning: [Output Only] Informational warning message. -type RegionInstanceGroupListWarning 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. +// ReservationSlotsListResponseWarning: An informational warning message. +type ReservationSlotsListResponseWarning 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" - Warning about failed cleanup of transient changes made - // by a failed operation. + // by a failed + // operation. // "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was created. // "DEPRECATED_TYPE_USED" - When deploying and at least one of the resources - // has a type marked as deprecated + // has a type marked as + // deprecated // "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk that is // larger than image size. // "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the - // resources has a type marked as experimental + // resources has a type marked as + // experimental // "EXTERNAL_API_WARNING" - Warning that is present in an external api call // "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been - // overridden. Deprecated unused field. + // overridden. + // Deprecated unused field. // "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an injected // kernel, which is deprecated. // "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB" - A WEIGHTED_MAGLEV backend - // service is associated with a health check that is not of type - // HTTP/HTTPS/HTTP2. + // service is associated with a health check that is + // not of type HTTP/HTTPS/HTTP2. // "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a // exceedingly large number of resources // "LIST_OVERHEAD_QUOTA_EXCEED" - Resource can't be retrieved due to list - // overhead quota exceed which captures the amount of resources filtered out by + // overhead quota exceed + // which captures the amount of resources filtered out by // user-defined list filter. // "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is not - // assigned to an instance on the network. + // assigned to an instance on the + // network. // "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot ip // forward. // "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE" - The route's nextHopInstance - // URL refers to an instance that does not have an ipv6 interface on the same - // network as the route. + // URL refers to an instance that does not have an + // ipv6 interface on the same network as the route. // "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL refers to // an instance that does not exist. // "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance URL - // refers to an instance that is not on the same network as the route. + // refers to an instance that is not on the + // same network as the route. // "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not have a // status of RUNNING. // "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to continue - // the process despite the mentioned error. + // the process despite + // the mentioned error. // "NO_RESULTS_ON_PAGE" - No results are present on a particular list page. // "PARTIAL_SUCCESS" - Success is reported, but some results may be missing // due to errors + // "QUOTA_INFO_UNAVAILABLE" - Quota information is not available to client + // requests (e.g: + // regions.list). // "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource that - // requires a TOS they have not accepted. + // requires a TOS they have not + // accepted. // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a resource is // in use. // "RESOURCE_NOT_DELETED" - One or more of the resources set to auto-delete - // could not be deleted because they were in use. + // could not be deleted + // because they were in use. // "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is // ignored. // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in instance - // group manager is valid as such, but its application does not make a lot of - // sense, because it allows only single instance in instance group. + // group manager is valid as such, but + // its application does not make a lot of sense, because it allows only + // single instance in instance group. // "UNDECLARED_PROPERTIES" - When undeclared properties in the schema are // present // "UNREACHABLE" - A given scope cannot be reached. 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 []*RegionInstanceGroupListWarningData `json:"data,omitempty"` + // Data: [Output Only] Metadata about this warning in key: + // value format. For example: + // + // "data": [ + // { + // "key": "scope", + // "value": "zones/us-east1-d" + // } + Data []*ReservationSlotsListResponseWarningData `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 @@ -34102,19 +58371,22 @@ type RegionInstanceGroupListWarning struct { NullFields []string `json:"-"` } -func (s *RegionInstanceGroupListWarning) MarshalJSON() ([]byte, error) { - type NoMethod RegionInstanceGroupListWarning - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s ReservationSlotsListResponseWarning) MarshalJSON() ([]byte, error) { + type NoMethod ReservationSlotsListResponseWarning + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -type RegionInstanceGroupListWarningData 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). +type ReservationSlotsListResponseWarningData 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"` @@ -34131,55 +58403,226 @@ type RegionInstanceGroupListWarningData struct { NullFields []string `json:"-"` } -func (s *RegionInstanceGroupListWarningData) MarshalJSON() ([]byte, error) { - type NoMethod RegionInstanceGroupListWarningData - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s ReservationSlotsListResponseWarningData) MarshalJSON() ([]byte, error) { + type NoMethod ReservationSlotsListResponseWarningData + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -// RegionInstanceGroupManagerDeleteInstanceConfigReq: -// RegionInstanceGroupManagers.deletePerInstanceConfigs -type RegionInstanceGroupManagerDeleteInstanceConfigReq struct { - // Names: The list of instance names for which we want to delete per-instance - // configs on this managed instance group. - Names []string `json:"names,omitempty"` - // ForceSendFields is a list of field names (e.g. "Names") to unconditionally +// ReservationSubBlock: Represents a reservation subBlock resource. +type ReservationSubBlock struct { + // AcceleratorTopologiesInfo: Output only. [Output Only] Slice info for the + // reservation subBlock. + AcceleratorTopologiesInfo *AcceleratorTopologiesInfo `json:"acceleratorTopologiesInfo,omitempty"` + // Count: Output only. [Output Only] The number of hosts that are allocated in + // this + // reservation subBlock. + Count int64 `json:"count,omitempty"` + // CreationTimestamp: Output only. [Output Only] Creation timestamp inRFC3339 + // text format. + CreationTimestamp string `json:"creationTimestamp,omitempty"` + // HealthInfo: Output only. [Output Only] Health information for the + // reservation subBlock. + HealthInfo *ReservationSubBlockHealthInfo `json:"healthInfo,omitempty"` + // Id: Output only. [Output Only] The unique identifier for the resource. This + // identifier is + // defined by the server. + Id uint64 `json:"id,omitempty,string"` + // InUseCount: Output only. [Output Only] The number of instances that are + // currently in use on this + // reservation subBlock. + InUseCount int64 `json:"inUseCount,omitempty"` + // InUseHostCount: Output only. Number of hosts currently in use. If there is + // one or more Instances running + // on the host, it is considered in use. + InUseHostCount int64 `json:"inUseHostCount,omitempty"` + // Kind: Output only. [Output Only] Type of the resource. + // Alwayscompute#reservationSubBlock for reservation subBlocks. + Kind string `json:"kind,omitempty"` + // Name: Output only. [Output Only] The name of this reservation subBlock + // generated by Google + // Compute Engine. The name must be 1-63 characters long, and comply + // with + // RFC1035 @pattern a-z (?:[-a-z0-9]{0,61}[a-z0-9])? + Name string `json:"name,omitempty"` + // PhysicalTopology: Output only. [Output Only] The physical topology of the + // reservation subBlock. + PhysicalTopology *ReservationSubBlockPhysicalTopology `json:"physicalTopology,omitempty"` + // ReservationSubBlockMaintenance: Output only. Maintenance information for + // this reservation subBlock. + ReservationSubBlockMaintenance *GroupMaintenanceInfo `json:"reservationSubBlockMaintenance,omitempty"` + // SelfLink: Output only. [Output Only] Server-defined fully-qualified URL for + // this resource. + SelfLink string `json:"selfLink,omitempty"` + // SelfLinkWithId: Output only. [Output Only] Server-defined URL for this + // resource with the resource id. + SelfLinkWithId string `json:"selfLinkWithId,omitempty"` + // Status: Output only. [Output Only] Status of the reservation subBlock. + // + // Possible values: + // "CREATING" - Resources are being allocated for the reservation subBlock. + // "DELETING" - Reservation subBlock is currently being deleted. + // "INVALID" + // "READY" - Reservation subBlock has allocated all its resources. + Status string `json:"status,omitempty"` + // Zone: Output only. [Output Only] Zone in which the reservation subBlock + // resides. + Zone string `json:"zone,omitempty"` + // ForceSendFields is a list of field names (e.g. "AcceleratorTopologiesInfo") + // to unconditionally include in API requests. By default, fields with empty or + // default values are omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + ForceSendFields []string `json:"-"` + // NullFields is a list of field names (e.g. "AcceleratorTopologiesInfo") to + // include in API requests with the JSON null value. By default, fields with + // empty values are omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s ReservationSubBlock) MarshalJSON() ([]byte, error) { + type NoMethod ReservationSubBlock + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +// ReservationSubBlockHealthInfo: Health information for the reservation +// subBlock. +type ReservationSubBlockHealthInfo struct { + // DegradedHostCount: The number of degraded hosts in the reservation subBlock. + DegradedHostCount int64 `json:"degradedHostCount,omitempty"` + // DegradedInfraCount: The number of degraded infrastructure (e.g NV link + // domain) in the + // reservation subblock. + DegradedInfraCount int64 `json:"degradedInfraCount,omitempty"` + // HealthStatus: The health status of the reservation subBlock. + // + // Possible values: + // "DEGRADED" - The reservation subBlock is degraded. + // "HEALTHY" - The reservation subBlock is healthy. + // "HEALTH_STATUS_UNSPECIFIED" - The health status of the reservation + // subBlock is unspecified. + HealthStatus string `json:"healthStatus,omitempty"` + // HealthyHostCount: The number of healthy hosts in the reservation subBlock. + HealthyHostCount int64 `json:"healthyHostCount,omitempty"` + // HealthyInfraCount: The number of healthy infrastructure (e.g NV link domain) + // in the + // reservation subblock. + HealthyInfraCount int64 `json:"healthyInfraCount,omitempty"` + // ForceSendFields is a list of field names (e.g. "DegradedHostCount") to + // unconditionally include in API requests. By default, fields with empty or + // default values are omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + ForceSendFields []string `json:"-"` + // NullFields is a list of field names (e.g. "DegradedHostCount") to include in + // API requests with the JSON null value. By default, fields with empty values + // are omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s ReservationSubBlockHealthInfo) MarshalJSON() ([]byte, error) { + type NoMethod ReservationSubBlockHealthInfo + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +type ReservationSubBlockPhysicalTopology struct { + // Block: The hash of the capacity block within the cluster. + Block string `json:"block,omitempty"` + // Cluster: The cluster name of the reservation subBlock. + Cluster string `json:"cluster,omitempty"` + // SubBlock: The hash of the capacity sub-block within the capacity block. + SubBlock string `json:"subBlock,omitempty"` + // ForceSendFields is a list of field names (e.g. "Block") to unconditionally // include in API requests. By default, fields with empty or default values are // omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. ForceSendFields []string `json:"-"` - // NullFields is a list of field names (e.g. "Names") to include in API + // NullFields is a list of field names (e.g. "Block") to include in API // requests with the JSON null value. By default, fields with empty values are // omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } -func (s *RegionInstanceGroupManagerDeleteInstanceConfigReq) MarshalJSON() ([]byte, error) { - type NoMethod RegionInstanceGroupManagerDeleteInstanceConfigReq - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s ReservationSubBlockPhysicalTopology) MarshalJSON() ([]byte, error) { + type NoMethod ReservationSubBlockPhysicalTopology + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -// RegionInstanceGroupManagerList: Contains a list of managed instance groups. -type RegionInstanceGroupManagerList struct { - // Id: [Output Only] Unique identifier for the resource; defined by the server. +type ReservationSubBlocksGetResponse struct { + Resource *ReservationSubBlock `json:"resource,omitempty"` + + // ServerResponse contains the HTTP response code and headers from the server. + googleapi.ServerResponse `json:"-"` + // ForceSendFields is a list of field names (e.g. "Resource") to + // unconditionally include in API requests. By default, fields with empty or + // default values are omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + ForceSendFields []string `json:"-"` + // NullFields is a list of field names (e.g. "Resource") to include in API + // requests with the JSON null value. By default, fields with empty values are + // omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s ReservationSubBlocksGetResponse) MarshalJSON() ([]byte, error) { + type NoMethod ReservationSubBlocksGetResponse + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +type ReservationSubBlocksGetVersionRequest struct { + // SbomSelections: The SBOM selection to return. + // + // Possible values: + // "SBOM_SELECTION_CURRENT" + // "SBOM_SELECTION_TARGET" + // "SBOM_SELECTION_UNSPECIFIED" + SbomSelections []string `json:"sbomSelections,omitempty"` + // ForceSendFields is a list of field names (e.g. "SbomSelections") to + // unconditionally include in API requests. By default, fields with empty or + // default values are omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + ForceSendFields []string `json:"-"` + // NullFields is a list of field names (e.g. "SbomSelections") to include in + // API requests with the JSON null value. By default, fields with empty values + // are omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s ReservationSubBlocksGetVersionRequest) MarshalJSON() ([]byte, error) { + type NoMethod ReservationSubBlocksGetVersionRequest + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +// ReservationSubBlocksListResponse: A list of reservation subBlocks under a +// single reservation. +type ReservationSubBlocksListResponse struct { + // Id: Unique identifier for the resource; defined by the server. Id string `json:"id,omitempty"` - // Items: A list of InstanceGroupManager resources. - Items []*InstanceGroupManager `json:"items,omitempty"` - // Kind: [Output Only] The resource type, which is always - // compute#instanceGroupManagerList for a list of managed instance groups that - // exist in th regional scope. + // Items: A list of reservation subBlock resources. + Items []*ReservationSubBlock `json:"items,omitempty"` + // Kind: Type of the resource. Alwayscompute#reservationSubBlock for a list of + // reservation + // subBlocks. 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: This token allows you to get the next page of results + // for + // list requests. If the number of results is larger thanmaxResults, 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"` - // SelfLink: [Output Only] Server-defined URL for this resource. + // SelfLink: Server-defined URL for this resource. SelfLink string `json:"selfLink,omitempty"` - // Warning: [Output Only] Informational warning message. - Warning *RegionInstanceGroupManagerListWarning `json:"warning,omitempty"` + // Warning: Informational warning message. + Warning *ReservationSubBlocksListResponseWarning `json:"warning,omitempty"` // ServerResponse contains the HTTP response code and headers from the server. googleapi.ServerResponse `json:"-"` @@ -34196,77 +58639,98 @@ type RegionInstanceGroupManagerList struct { NullFields []string `json:"-"` } -func (s *RegionInstanceGroupManagerList) MarshalJSON() ([]byte, error) { - type NoMethod RegionInstanceGroupManagerList - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s ReservationSubBlocksListResponse) MarshalJSON() ([]byte, error) { + type NoMethod ReservationSubBlocksListResponse + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -// RegionInstanceGroupManagerListWarning: [Output Only] Informational warning -// message. -type RegionInstanceGroupManagerListWarning 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. +// ReservationSubBlocksListResponseWarning: Informational warning message. +type ReservationSubBlocksListResponseWarning 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" - Warning about failed cleanup of transient changes made - // by a failed operation. + // by a failed + // operation. // "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was created. // "DEPRECATED_TYPE_USED" - When deploying and at least one of the resources - // has a type marked as deprecated + // has a type marked as + // deprecated // "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk that is // larger than image size. // "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the - // resources has a type marked as experimental + // resources has a type marked as + // experimental // "EXTERNAL_API_WARNING" - Warning that is present in an external api call // "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been - // overridden. Deprecated unused field. + // overridden. + // Deprecated unused field. // "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an injected // kernel, which is deprecated. // "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB" - A WEIGHTED_MAGLEV backend - // service is associated with a health check that is not of type - // HTTP/HTTPS/HTTP2. + // service is associated with a health check that is + // not of type HTTP/HTTPS/HTTP2. // "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a // exceedingly large number of resources // "LIST_OVERHEAD_QUOTA_EXCEED" - Resource can't be retrieved due to list - // overhead quota exceed which captures the amount of resources filtered out by + // overhead quota exceed + // which captures the amount of resources filtered out by // user-defined list filter. // "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is not - // assigned to an instance on the network. + // assigned to an instance on the + // network. // "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot ip // forward. // "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE" - The route's nextHopInstance - // URL refers to an instance that does not have an ipv6 interface on the same - // network as the route. + // URL refers to an instance that does not have an + // ipv6 interface on the same network as the route. // "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL refers to // an instance that does not exist. // "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance URL - // refers to an instance that is not on the same network as the route. + // refers to an instance that is not on the + // same network as the route. // "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not have a // status of RUNNING. // "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to continue - // the process despite the mentioned error. + // the process despite + // the mentioned error. // "NO_RESULTS_ON_PAGE" - No results are present on a particular list page. // "PARTIAL_SUCCESS" - Success is reported, but some results may be missing // due to errors + // "QUOTA_INFO_UNAVAILABLE" - Quota information is not available to client + // requests (e.g: + // regions.list). // "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource that - // requires a TOS they have not accepted. + // requires a TOS they have not + // accepted. // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a resource is // in use. // "RESOURCE_NOT_DELETED" - One or more of the resources set to auto-delete - // could not be deleted because they were in use. + // could not be deleted + // because they were in use. // "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is // ignored. // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in instance - // group manager is valid as such, but its application does not make a lot of - // sense, because it allows only single instance in instance group. + // group manager is valid as such, but + // its application does not make a lot of sense, because it allows only + // single instance in instance group. // "UNDECLARED_PROPERTIES" - When undeclared properties in the schema are // present // "UNREACHABLE" - A given scope cannot be reached. 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 []*RegionInstanceGroupManagerListWarningData `json:"data,omitempty"` + // Data: [Output Only] Metadata about this warning in key: + // value format. For example: + // + // "data": [ + // { + // "key": "scope", + // "value": "zones/us-east1-d" + // } + Data []*ReservationSubBlocksListResponseWarningData `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 @@ -34282,19 +58746,22 @@ type RegionInstanceGroupManagerListWarning struct { NullFields []string `json:"-"` } -func (s *RegionInstanceGroupManagerListWarning) MarshalJSON() ([]byte, error) { - type NoMethod RegionInstanceGroupManagerListWarning - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s ReservationSubBlocksListResponseWarning) MarshalJSON() ([]byte, error) { + type NoMethod ReservationSubBlocksListResponseWarning + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -type RegionInstanceGroupManagerListWarningData 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). +type ReservationSubBlocksListResponseWarningData 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"` @@ -34311,321 +58778,283 @@ type RegionInstanceGroupManagerListWarningData struct { NullFields []string `json:"-"` } -func (s *RegionInstanceGroupManagerListWarningData) MarshalJSON() ([]byte, error) { - type NoMethod RegionInstanceGroupManagerListWarningData - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) -} - -// RegionInstanceGroupManagerPatchInstanceConfigReq: -// RegionInstanceGroupManagers.patchPerInstanceConfigs -type RegionInstanceGroupManagerPatchInstanceConfigReq struct { - // PerInstanceConfigs: The list of per-instance configurations to insert or - // patch on this managed instance group. - PerInstanceConfigs []*PerInstanceConfig `json:"perInstanceConfigs,omitempty"` - // ForceSendFields is a list of field names (e.g. "PerInstanceConfigs") to - // unconditionally include in API requests. By default, fields with empty or - // default values are omitted from API requests. See - // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more - // details. - ForceSendFields []string `json:"-"` - // NullFields is a list of field names (e.g. "PerInstanceConfigs") to include - // in API requests with the JSON null value. By default, fields with empty - // values are omitted from API requests. See - // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. - NullFields []string `json:"-"` -} - -func (s *RegionInstanceGroupManagerPatchInstanceConfigReq) MarshalJSON() ([]byte, error) { - type NoMethod RegionInstanceGroupManagerPatchInstanceConfigReq - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s ReservationSubBlocksListResponseWarningData) MarshalJSON() ([]byte, error) { + type NoMethod ReservationSubBlocksListResponseWarningData + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -// RegionInstanceGroupManagerUpdateInstanceConfigReq: -// RegionInstanceGroupManagers.updatePerInstanceConfigs -type RegionInstanceGroupManagerUpdateInstanceConfigReq struct { - // PerInstanceConfigs: The list of per-instance configurations to insert or - // patch on this managed instance group. - PerInstanceConfigs []*PerInstanceConfig `json:"perInstanceConfigs,omitempty"` - // ForceSendFields is a list of field names (e.g. "PerInstanceConfigs") to +type ReservationSubBlocksReportFaultyRequest struct { + // DisruptionSchedule: The disruption schedule for the subBlock. + // + // Possible values: + // "DISRUPTION_SCHEDULE_UNSPECIFIED" + // "IMMEDIATE" - All VMs will be disrupted immediately. + DisruptionSchedule string `json:"disruptionSchedule,omitempty"` + // FailureComponent: The component that experienced the fault. + // + // Possible values: + // "FAILURE_COMPONENT_UNSPECIFIED" + // "MULTIPLE_FAULTY_HOSTS" - Multiple hosts experienced the fault. + // "NVLINK_SWITCH" - The NVLink switch experienced the fault. + FailureComponent string `json:"failureComponent,omitempty"` + // FaultReasons: The reasons for the fault experienced with the subBlock. + FaultReasons []*ReservationSubBlocksReportFaultyRequestFaultReason `json:"faultReasons,omitempty"` + // ForceSendFields is a list of field names (e.g. "DisruptionSchedule") to // unconditionally include in API requests. By default, fields with empty or // default values are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. ForceSendFields []string `json:"-"` - // NullFields is a list of field names (e.g. "PerInstanceConfigs") to include + // NullFields is a list of field names (e.g. "DisruptionSchedule") to include // in API requests with the JSON null value. By default, fields with empty // values are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } -func (s *RegionInstanceGroupManagerUpdateInstanceConfigReq) MarshalJSON() ([]byte, error) { - type NoMethod RegionInstanceGroupManagerUpdateInstanceConfigReq - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s ReservationSubBlocksReportFaultyRequest) MarshalJSON() ([]byte, error) { + type NoMethod ReservationSubBlocksReportFaultyRequest + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -type RegionInstanceGroupManagersAbandonInstancesRequest struct { - // Instances: The URLs of one or more instances to abandon. This can be a full - // URL or a partial URL, such as zones/[ZONE]/instances/[INSTANCE_NAME]. - Instances []string `json:"instances,omitempty"` - // ForceSendFields is a list of field names (e.g. "Instances") to +// ReservationSubBlocksReportFaultyRequestFaultReason: The reason for the fault +// experienced with the subBlock. +type ReservationSubBlocksReportFaultyRequestFaultReason struct { + // Behavior: The behavior of the fault experienced with the subBlock. + // + // Possible values: + // "FAULT_BEHAVIOR_UNSPECIFIED" + // "GPU_ERROR" - The subBlock experienced a GPU error. + // "PERFORMANCE" - The subBlock experienced performance issues. + // "SILENT_DATA_CORRUPTION" - The subBlock experienced silent data + // corruption. + // "SWITCH_FAILURE" - The subBlock experienced a switch failure. + Behavior string `json:"behavior,omitempty"` + // Description: The description of the fault experienced with the subBlock. + Description string `json:"description,omitempty"` + // ForceSendFields is a list of field names (e.g. "Behavior") to // unconditionally include in API requests. By default, fields with empty or // default values are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. ForceSendFields []string `json:"-"` - // NullFields is a list of field names (e.g. "Instances") to include in API + // NullFields is a list of field names (e.g. "Behavior") to include in API // requests with the JSON null value. By default, fields with empty values are // omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } -func (s *RegionInstanceGroupManagersAbandonInstancesRequest) MarshalJSON() ([]byte, error) { - type NoMethod RegionInstanceGroupManagersAbandonInstancesRequest - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s ReservationSubBlocksReportFaultyRequestFaultReason) MarshalJSON() ([]byte, error) { + type NoMethod ReservationSubBlocksReportFaultyRequestFaultReason + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -// RegionInstanceGroupManagersApplyUpdatesRequest: -// RegionInstanceGroupManagers.applyUpdatesToInstances -type RegionInstanceGroupManagersApplyUpdatesRequest struct { - // AllInstances: Flag to update all instances instead of specified list of - // “instances”. If the flag is set to true then the instances may not be - // specified in the request. - AllInstances bool `json:"allInstances,omitempty"` - // Instances: The list of URLs of one or more instances for which you want to - // apply updates. Each URL can be a full URL or a partial URL, such as - // zones/[ZONE]/instances/[INSTANCE_NAME]. - Instances []string `json:"instances,omitempty"` - // MinimalAction: The minimal action that you want to perform on each instance - // during the update: - REPLACE: At minimum, delete the instance and create it - // again. - RESTART: Stop the instance and start it again. - REFRESH: Do not - // stop the instance and limit disruption as much as possible. - NONE: Do not - // disrupt the instance at all. By default, the minimum action is NONE. If your - // update requires a more disruptive action than you set with this flag, the - // necessary action is performed to execute the update. - // - // Possible values: - // "NONE" - Do not perform any action. - // "REFRESH" - Do not stop the instance. - // "REPLACE" - (Default.) Replace the instance according to the replacement - // method option. - // "RESTART" - Stop the instance and start it again. - MinimalAction string `json:"minimalAction,omitempty"` - // MostDisruptiveAllowedAction: The most disruptive action that you want to - // perform on each instance during the update: - REPLACE: Delete the instance - // and create it again. - RESTART: Stop the instance and start it again. - - // REFRESH: Do not stop the instance and limit disruption as much as possible. - // - NONE: Do not disrupt the instance at all. By default, the most disruptive - // allowed action is REPLACE. If your update requires a more disruptive action - // than you set with this flag, the update request will fail. +type ReservationsBlocksPerformMaintenanceRequest struct { + // MaintenanceScope: Specifies if all, running or unused hosts are in scope for + // this request. // // Possible values: - // "NONE" - Do not perform any action. - // "REFRESH" - Do not stop the instance. - // "REPLACE" - (Default.) Replace the instance according to the replacement - // method option. - // "RESTART" - Stop the instance and start it again. - MostDisruptiveAllowedAction string `json:"mostDisruptiveAllowedAction,omitempty"` - // ForceSendFields is a list of field names (e.g. "AllInstances") to + // "ALL" - Trigger maintenance for all hosts belonging to this + // reservation + // irrespective of whether VMs are running on them or not. + // "MAINTENANCE_SCOPE_UNSPECIFIED" - Internal only + // "RUNNING_VMS" - Trigger maintenance only on the hosts belonging to this + // reservation which + // have VMs running on them. + // "UNUSED_CAPACITY" - Trigger maintenance only on the hosts belonging to + // this reservation which + // do not have any VMs running on them. This is not allowed for Standard ExR + MaintenanceScope string `json:"maintenanceScope,omitempty"` + // ForceSendFields is a list of field names (e.g. "MaintenanceScope") to // unconditionally include in API requests. By default, fields with empty or // default values are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. ForceSendFields []string `json:"-"` - // NullFields is a list of field names (e.g. "AllInstances") to include in API - // requests with the JSON null value. By default, fields with empty values are - // omitted from API requests. See + // NullFields is a list of field names (e.g. "MaintenanceScope") to include in + // API requests with the JSON null value. By default, fields with empty values + // are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } -func (s *RegionInstanceGroupManagersApplyUpdatesRequest) MarshalJSON() ([]byte, error) { - type NoMethod RegionInstanceGroupManagersApplyUpdatesRequest - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s ReservationsBlocksPerformMaintenanceRequest) MarshalJSON() ([]byte, error) { + type NoMethod ReservationsBlocksPerformMaintenanceRequest + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -// RegionInstanceGroupManagersCreateInstancesRequest: -// RegionInstanceGroupManagers.createInstances -type RegionInstanceGroupManagersCreateInstancesRequest struct { - // Instances: [Required] List of specifications of per-instance configs. - Instances []*PerInstanceConfig `json:"instances,omitempty"` - // ForceSendFields is a list of field names (e.g. "Instances") to +type ReservationsPerformMaintenanceRequest struct { + // MaintenanceScope: Specifies if all, running or unused hosts are in scope for + // this request. + // + // Possible values: + // "ALL" - Trigger maintenance for all hosts belonging to this + // reservation + // irrespective of whether VMs are running on them or not. + // "MAINTENANCE_SCOPE_UNSPECIFIED" - Internal only + // "RUNNING_VMS" - Trigger maintenance only on the hosts belonging to this + // reservation which + // have VMs running on them. + // "UNUSED_CAPACITY" - Trigger maintenance only on the hosts belonging to + // this reservation which + // do not have any VMs running on them. This is not allowed for Standard ExR + MaintenanceScope string `json:"maintenanceScope,omitempty"` + // ForceSendFields is a list of field names (e.g. "MaintenanceScope") to // unconditionally include in API requests. By default, fields with empty or // default values are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. ForceSendFields []string `json:"-"` - // NullFields is a list of field names (e.g. "Instances") to include in API - // requests with the JSON null value. By default, fields with empty values are - // omitted from API requests. See + // NullFields is a list of field names (e.g. "MaintenanceScope") to include in + // API requests with the JSON null value. By default, fields with empty values + // are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } -func (s *RegionInstanceGroupManagersCreateInstancesRequest) MarshalJSON() ([]byte, error) { - type NoMethod RegionInstanceGroupManagersCreateInstancesRequest - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s ReservationsPerformMaintenanceRequest) MarshalJSON() ([]byte, error) { + type NoMethod ReservationsPerformMaintenanceRequest + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -type RegionInstanceGroupManagersDeleteInstancesRequest struct { - // Instances: The URLs of one or more instances to delete. This can be a full - // URL or a partial URL, such as zones/[ZONE]/instances/[INSTANCE_NAME]. - Instances []string `json:"instances,omitempty"` - // SkipInstancesOnValidationError: Specifies whether the request should proceed - // despite the inclusion of instances that are not members of the group or that - // are already in the process of being deleted or abandoned. If this field is - // set to `false` and such an instance is specified in the request, the - // operation fails. The operation always fails if the request contains a - // malformed instance URL or a reference to an instance that exists in a zone - // or region other than the group's zone or region. - SkipInstancesOnValidationError bool `json:"skipInstancesOnValidationError,omitempty"` - // ForceSendFields is a list of field names (e.g. "Instances") to +type ReservationsResizeRequest struct { + // SpecificSkuCount: Number of allocated resources can be resized with minimum + // = 1 and + // maximum = 1000. + SpecificSkuCount int64 `json:"specificSkuCount,omitempty,string"` + // ForceSendFields is a list of field names (e.g. "SpecificSkuCount") to // unconditionally include in API requests. By default, fields with empty or // default values are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. ForceSendFields []string `json:"-"` - // NullFields is a list of field names (e.g. "Instances") to include in API - // requests with the JSON null value. By default, fields with empty values are - // omitted from API requests. See - // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. - NullFields []string `json:"-"` -} - -func (s *RegionInstanceGroupManagersDeleteInstancesRequest) MarshalJSON() ([]byte, error) { - type NoMethod RegionInstanceGroupManagersDeleteInstancesRequest - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) -} - -type RegionInstanceGroupManagersListErrorsResponse struct { - // Items: [Output Only] The list of errors of the managed instance group. - Items []*InstanceManagedByIgmError `json:"items,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"` - - // ServerResponse contains the HTTP response code and headers from the server. - googleapi.ServerResponse `json:"-"` - // ForceSendFields is a list of field names (e.g. "Items") to unconditionally - // include in API requests. By default, fields with empty or default values are - // omitted from API requests. See - // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more - // details. - ForceSendFields []string `json:"-"` - // NullFields is a list of field names (e.g. "Items") to include in API - // requests with the JSON null value. By default, fields with empty values are - // omitted from API requests. See + // NullFields is a list of field names (e.g. "SpecificSkuCount") to include in + // API requests with the JSON null value. By default, fields with empty values + // are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } -func (s *RegionInstanceGroupManagersListErrorsResponse) MarshalJSON() ([]byte, error) { - type NoMethod RegionInstanceGroupManagersListErrorsResponse - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s ReservationsResizeRequest) MarshalJSON() ([]byte, error) { + type NoMethod ReservationsResizeRequest + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -type RegionInstanceGroupManagersListInstanceConfigsResp struct { - // Items: [Output Only] The list of PerInstanceConfig. - Items []*PerInstanceConfig `json:"items,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"` - // Warning: [Output Only] Informational warning message. - Warning *RegionInstanceGroupManagersListInstanceConfigsRespWarning `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. "Items") to unconditionally - // include in API requests. By default, fields with empty or default values are - // omitted from API requests. See +type ReservationsScopedList struct { + // Reservations: A list of reservations contained in this scope. + Reservations []*Reservation `json:"reservations,omitempty"` + // Warning: Informational warning which replaces the list of reservations + // when + // the list is empty. + Warning *ReservationsScopedListWarning `json:"warning,omitempty"` + // ForceSendFields is a list of field names (e.g. "Reservations") to + // unconditionally include in API requests. By default, fields with empty or + // default values are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. ForceSendFields []string `json:"-"` - // NullFields is a list of field names (e.g. "Items") to include in API + // NullFields is a list of field names (e.g. "Reservations") to include in API // requests with the JSON null value. By default, fields with empty values are // omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } -func (s *RegionInstanceGroupManagersListInstanceConfigsResp) MarshalJSON() ([]byte, error) { - type NoMethod RegionInstanceGroupManagersListInstanceConfigsResp - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s ReservationsScopedList) MarshalJSON() ([]byte, error) { + type NoMethod ReservationsScopedList + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -// RegionInstanceGroupManagersListInstanceConfigsRespWarning: [Output Only] -// Informational warning message. -type RegionInstanceGroupManagersListInstanceConfigsRespWarning 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. +// ReservationsScopedListWarning: Informational warning which replaces the list +// of reservations when +// the list is empty. +type ReservationsScopedListWarning 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" - Warning about failed cleanup of transient changes made - // by a failed operation. + // by a failed + // operation. // "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was created. // "DEPRECATED_TYPE_USED" - When deploying and at least one of the resources - // has a type marked as deprecated + // has a type marked as + // deprecated // "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk that is // larger than image size. // "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the - // resources has a type marked as experimental + // resources has a type marked as + // experimental // "EXTERNAL_API_WARNING" - Warning that is present in an external api call // "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been - // overridden. Deprecated unused field. + // overridden. + // Deprecated unused field. // "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an injected // kernel, which is deprecated. // "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB" - A WEIGHTED_MAGLEV backend - // service is associated with a health check that is not of type - // HTTP/HTTPS/HTTP2. + // service is associated with a health check that is + // not of type HTTP/HTTPS/HTTP2. // "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a // exceedingly large number of resources // "LIST_OVERHEAD_QUOTA_EXCEED" - Resource can't be retrieved due to list - // overhead quota exceed which captures the amount of resources filtered out by + // overhead quota exceed + // which captures the amount of resources filtered out by // user-defined list filter. // "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is not - // assigned to an instance on the network. + // assigned to an instance on the + // network. // "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot ip // forward. // "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE" - The route's nextHopInstance - // URL refers to an instance that does not have an ipv6 interface on the same - // network as the route. + // URL refers to an instance that does not have an + // ipv6 interface on the same network as the route. // "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL refers to // an instance that does not exist. // "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance URL - // refers to an instance that is not on the same network as the route. + // refers to an instance that is not on the + // same network as the route. // "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not have a // status of RUNNING. // "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to continue - // the process despite the mentioned error. + // the process despite + // the mentioned error. // "NO_RESULTS_ON_PAGE" - No results are present on a particular list page. // "PARTIAL_SUCCESS" - Success is reported, but some results may be missing // due to errors + // "QUOTA_INFO_UNAVAILABLE" - Quota information is not available to client + // requests (e.g: + // regions.list). // "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource that - // requires a TOS they have not accepted. + // requires a TOS they have not + // accepted. // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a resource is // in use. // "RESOURCE_NOT_DELETED" - One or more of the resources set to auto-delete - // could not be deleted because they were in use. + // could not be deleted + // because they were in use. // "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is // ignored. // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in instance - // group manager is valid as such, but its application does not make a lot of - // sense, because it allows only single instance in instance group. + // group manager is valid as such, but + // its application does not make a lot of sense, because it allows only + // single instance in instance group. // "UNDECLARED_PROPERTIES" - When undeclared properties in the schema are // present // "UNREACHABLE" - A given scope cannot be reached. 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 []*RegionInstanceGroupManagersListInstanceConfigsRespWarningData `json:"data,omitempty"` + // Data: [Output Only] Metadata about this warning in key: + // value format. For example: + // + // "data": [ + // { + // "key": "scope", + // "value": "zones/us-east1-d" + // } + Data []*ReservationsScopedListWarningData `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 @@ -34641,19 +59070,22 @@ type RegionInstanceGroupManagersListInstanceConfigsRespWarning struct { NullFields []string `json:"-"` } -func (s *RegionInstanceGroupManagersListInstanceConfigsRespWarning) MarshalJSON() ([]byte, error) { - type NoMethod RegionInstanceGroupManagersListInstanceConfigsRespWarning - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s ReservationsScopedListWarning) MarshalJSON() ([]byte, error) { + type NoMethod ReservationsScopedListWarning + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -type RegionInstanceGroupManagersListInstanceConfigsRespWarningData 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). +type ReservationsScopedListWarningData 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"` @@ -34670,216 +59102,206 @@ type RegionInstanceGroupManagersListInstanceConfigsRespWarningData struct { NullFields []string `json:"-"` } -func (s *RegionInstanceGroupManagersListInstanceConfigsRespWarningData) MarshalJSON() ([]byte, error) { - type NoMethod RegionInstanceGroupManagersListInstanceConfigsRespWarningData - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s ReservationsScopedListWarningData) MarshalJSON() ([]byte, error) { + type NoMethod ReservationsScopedListWarningData + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -type RegionInstanceGroupManagersListInstancesResponse struct { - // ManagedInstances: A list of managed instances. - ManagedInstances []*ManagedInstance `json:"managedInstances,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"` - - // ServerResponse contains the HTTP response code and headers from the server. - googleapi.ServerResponse `json:"-"` - // ForceSendFields is a list of field names (e.g. "ManagedInstances") to +// ResourceCommitment: Commitment for a particular hardware resource (a +// commitment is composed of +// one or more of these). +type ResourceCommitment struct { + // AcceleratorType: Name of the accelerator type or GPU resource. Specify this + // field only when + // the type of hardware resource is ACCELERATOR. + AcceleratorType string `json:"acceleratorType,omitempty"` + // Amount: The quantity of the hardware resource that you want to commit to + // purchasing + // (in a type-dependent unit). + // + // - For vCPUs, you must specify an integer value. + // - For memory, you specify the amount of MB that you want. The value you + // specify must be a multiple of 256 MB, with up to 6.5 GB of + // memory per every vCPU. + // - For GPUs, you must specify an integer value. + // - For Local SSD disks, you must specify the amount in GB. The size of a + // single Local SSD disk is 375 GB. + Amount int64 `json:"amount,omitempty,string"` + // Type: The type of hardware resource that you want to specify. + // You can specify any of the following values: + // + // - VCPU + // - MEMORY + // - LOCAL_SSD + // - ACCELERATOR + // + // + // + // Specify as a separate entry in the list for each + // individual resource type. + // + // Possible values: + // "ACCELERATOR" + // "LOCAL_SSD" + // "MEMORY" + // "UNSPECIFIED" + // "VCPU" + Type string `json:"type,omitempty"` + // ForceSendFields is a list of field names (e.g. "AcceleratorType") to // unconditionally include in API requests. By default, fields with empty or // default values are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. ForceSendFields []string `json:"-"` - // NullFields is a list of field names (e.g. "ManagedInstances") to include in + // NullFields is a list of field names (e.g. "AcceleratorType") to include in // API requests with the JSON null value. By default, fields with empty values // are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } -func (s *RegionInstanceGroupManagersListInstancesResponse) MarshalJSON() ([]byte, error) { - type NoMethod RegionInstanceGroupManagersListInstancesResponse - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s ResourceCommitment) MarshalJSON() ([]byte, error) { + type NoMethod ResourceCommitment + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -type RegionInstanceGroupManagersRecreateRequest struct { - // Instances: The URLs of one or more instances to recreate. This can be a full - // URL or a partial URL, such as zones/[ZONE]/instances/[INSTANCE_NAME]. - Instances []string `json:"instances,omitempty"` - // ForceSendFields is a list of field names (e.g. "Instances") to - // unconditionally include in API requests. By default, fields with empty or - // default values are omitted from API requests. See - // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more - // details. - ForceSendFields []string `json:"-"` - // NullFields is a list of field names (e.g. "Instances") to include in API - // requests with the JSON null value. By default, fields with empty values are +type ResourceGroupReference struct { + // Group: A URI referencing one of the instance groups or network endpoint + // groups + // listed in the backend service. + Group string `json:"group,omitempty"` + // ForceSendFields is a list of field names (e.g. "Group") to unconditionally + // include in API requests. By default, fields with empty or default values are // omitted from API requests. See - // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. - NullFields []string `json:"-"` -} - -func (s *RegionInstanceGroupManagersRecreateRequest) MarshalJSON() ([]byte, error) { - type NoMethod RegionInstanceGroupManagersRecreateRequest - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) -} - -type RegionInstanceGroupManagersSetTargetPoolsRequest struct { - // Fingerprint: Fingerprint of the target pools information, which is a hash of - // the contents. This field is used for optimistic locking when you update the - // target pool entries. This field is optional. - Fingerprint string `json:"fingerprint,omitempty"` - // TargetPools: The URL of all TargetPool resources to which instances in the - // instanceGroup field are added. The target pools automatically apply to all - // of the instances in the managed instance group. - TargetPools []string `json:"targetPools,omitempty"` - // ForceSendFields is a list of field names (e.g. "Fingerprint") to - // unconditionally include in API requests. By default, fields with empty or - // default values are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. ForceSendFields []string `json:"-"` - // NullFields is a list of field names (e.g. "Fingerprint") to include in API + // NullFields is a list of field names (e.g. "Group") to include in API // requests with the JSON null value. By default, fields with empty values are // omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } -func (s *RegionInstanceGroupManagersSetTargetPoolsRequest) MarshalJSON() ([]byte, error) { - type NoMethod RegionInstanceGroupManagersSetTargetPoolsRequest - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s ResourceGroupReference) MarshalJSON() ([]byte, error) { + type NoMethod ResourceGroupReference + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -type RegionInstanceGroupManagersSetTemplateRequest struct { - // InstanceTemplate: URL of the InstanceTemplate resource from which all new - // instances will be created. - InstanceTemplate string `json:"instanceTemplate,omitempty"` - // ForceSendFields is a list of field names (e.g. "InstanceTemplate") to +type ResourcePoliciesScopedList struct { + // ResourcePolicies: A list of resourcePolicies contained in this scope. + ResourcePolicies []*ResourcePolicy `json:"resourcePolicies,omitempty"` + // Warning: Informational warning which replaces the list of resourcePolicies + // when + // the list is empty. + Warning *ResourcePoliciesScopedListWarning `json:"warning,omitempty"` + // ForceSendFields is a list of field names (e.g. "ResourcePolicies") to // unconditionally include in API requests. By default, fields with empty or // default values are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. ForceSendFields []string `json:"-"` - // NullFields is a list of field names (e.g. "InstanceTemplate") to include in + // NullFields is a list of field names (e.g. "ResourcePolicies") to include in // API requests with the JSON null value. By default, fields with empty values // are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } -func (s *RegionInstanceGroupManagersSetTemplateRequest) MarshalJSON() ([]byte, error) { - type NoMethod RegionInstanceGroupManagersSetTemplateRequest - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) -} - -type RegionInstanceGroupsListInstances struct { - // Id: [Output Only] Unique identifier for the resource; defined by the server. - Id string `json:"id,omitempty"` - // Items: A list of InstanceWithNamedPorts resources. - Items []*InstanceWithNamedPorts `json:"items,omitempty"` - // Kind: The resource type. - 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"` - // SelfLink: [Output Only] Server-defined URL for this resource. - SelfLink string `json:"selfLink,omitempty"` - // Warning: [Output Only] Informational warning message. - Warning *RegionInstanceGroupsListInstancesWarning `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 or default values are - // omitted from API requests. See - // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more - // details. - 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. See - // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. - NullFields []string `json:"-"` -} - -func (s *RegionInstanceGroupsListInstances) MarshalJSON() ([]byte, error) { - type NoMethod RegionInstanceGroupsListInstances - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s ResourcePoliciesScopedList) MarshalJSON() ([]byte, error) { + type NoMethod ResourcePoliciesScopedList + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -// RegionInstanceGroupsListInstancesWarning: [Output Only] Informational -// warning message. -type RegionInstanceGroupsListInstancesWarning 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. +// ResourcePoliciesScopedListWarning: Informational warning which replaces the +// list of resourcePolicies when +// the list is empty. +type ResourcePoliciesScopedListWarning 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" - Warning about failed cleanup of transient changes made - // by a failed operation. + // by a failed + // operation. // "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was created. // "DEPRECATED_TYPE_USED" - When deploying and at least one of the resources - // has a type marked as deprecated + // has a type marked as + // deprecated // "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk that is // larger than image size. // "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the - // resources has a type marked as experimental + // resources has a type marked as + // experimental // "EXTERNAL_API_WARNING" - Warning that is present in an external api call // "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been - // overridden. Deprecated unused field. + // overridden. + // Deprecated unused field. // "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an injected // kernel, which is deprecated. // "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB" - A WEIGHTED_MAGLEV backend - // service is associated with a health check that is not of type - // HTTP/HTTPS/HTTP2. + // service is associated with a health check that is + // not of type HTTP/HTTPS/HTTP2. // "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a // exceedingly large number of resources // "LIST_OVERHEAD_QUOTA_EXCEED" - Resource can't be retrieved due to list - // overhead quota exceed which captures the amount of resources filtered out by + // overhead quota exceed + // which captures the amount of resources filtered out by // user-defined list filter. // "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is not - // assigned to an instance on the network. + // assigned to an instance on the + // network. // "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot ip // forward. // "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE" - The route's nextHopInstance - // URL refers to an instance that does not have an ipv6 interface on the same - // network as the route. + // URL refers to an instance that does not have an + // ipv6 interface on the same network as the route. // "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL refers to // an instance that does not exist. // "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance URL - // refers to an instance that is not on the same network as the route. + // refers to an instance that is not on the + // same network as the route. // "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not have a // status of RUNNING. // "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to continue - // the process despite the mentioned error. + // the process despite + // the mentioned error. // "NO_RESULTS_ON_PAGE" - No results are present on a particular list page. // "PARTIAL_SUCCESS" - Success is reported, but some results may be missing // due to errors + // "QUOTA_INFO_UNAVAILABLE" - Quota information is not available to client + // requests (e.g: + // regions.list). // "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource that - // requires a TOS they have not accepted. + // requires a TOS they have not + // accepted. // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a resource is // in use. // "RESOURCE_NOT_DELETED" - One or more of the resources set to auto-delete - // could not be deleted because they were in use. + // could not be deleted + // because they were in use. // "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is // ignored. // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in instance - // group manager is valid as such, but its application does not make a lot of - // sense, because it allows only single instance in instance group. + // group manager is valid as such, but + // its application does not make a lot of sense, because it allows only + // single instance in instance group. // "UNDECLARED_PROPERTIES" - When undeclared properties in the schema are // present // "UNREACHABLE" - A given scope cannot be reached. 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 []*RegionInstanceGroupsListInstancesWarningData `json:"data,omitempty"` + // Data: [Output Only] Metadata about this warning in key: + // value format. For example: + // + // "data": [ + // { + // "key": "scope", + // "value": "zones/us-east1-d" + // } + Data []*ResourcePoliciesScopedListWarningData `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 @@ -34895,19 +59317,22 @@ type RegionInstanceGroupsListInstancesWarning struct { NullFields []string `json:"-"` } -func (s *RegionInstanceGroupsListInstancesWarning) MarshalJSON() ([]byte, error) { - type NoMethod RegionInstanceGroupsListInstancesWarning - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s ResourcePoliciesScopedListWarning) MarshalJSON() ([]byte, error) { + type NoMethod ResourcePoliciesScopedListWarning + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -type RegionInstanceGroupsListInstancesWarningData 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). +type ResourcePoliciesScopedListWarningData 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"` @@ -34924,175 +59349,223 @@ type RegionInstanceGroupsListInstancesWarningData struct { NullFields []string `json:"-"` } -func (s *RegionInstanceGroupsListInstancesWarningData) MarshalJSON() ([]byte, error) { - type NoMethod RegionInstanceGroupsListInstancesWarningData - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s ResourcePoliciesScopedListWarningData) MarshalJSON() ([]byte, error) { + type NoMethod ResourcePoliciesScopedListWarningData + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -type RegionInstanceGroupsListInstancesRequest struct { - // InstanceState: Instances in which state should be returned. Valid options - // are: 'ALL', 'RUNNING'. By default, it lists all instances. +// ResourcePolicy: Represents a Resource Policy resource. You can use resource +// policies to +// schedule actions for some Compute Engine resources. For example, you can +// use them toschedule persistent disk +// snapshots. +type ResourcePolicy struct { + // CreationTimestamp: Output only. [Output Only] Creation timestamp + // inRFC3339 + // text format. + CreationTimestamp string `json:"creationTimestamp,omitempty"` + Description string `json:"description,omitempty"` + // DiskConsistencyGroupPolicy: Resource policy for disk consistency groups. + DiskConsistencyGroupPolicy *ResourcePolicyDiskConsistencyGroupPolicy `json:"diskConsistencyGroupPolicy,omitempty"` + // GroupPlacementPolicy: Resource policy for instances for placement + // configuration. + GroupPlacementPolicy *ResourcePolicyGroupPlacementPolicy `json:"groupPlacementPolicy,omitempty"` + // Id: Output only. [Output Only] The unique identifier for the resource. This + // identifier is + // defined by the server. + Id uint64 `json:"id,omitempty,string"` + // InstanceSchedulePolicy: Resource policy for scheduling instance operations. + InstanceSchedulePolicy *ResourcePolicyInstanceSchedulePolicy `json:"instanceSchedulePolicy,omitempty"` + // Kind: Output only. [Output Only] Type of the resource. + // Alwayscompute#resource_policies for resource policies. + Kind string `json:"kind,omitempty"` + // Name: The name of the resource, provided by the client when initially + // creating + // the resource. The resource name must be 1-63 characters long, and + // comply + // withRFC1035. + // 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. + Name string `json:"name,omitempty"` + Region string `json:"region,omitempty"` + // ResourceStatus: Output only. [Output Only] The system status of the resource + // policy. + ResourceStatus *ResourcePolicyResourceStatus `json:"resourceStatus,omitempty"` + // SelfLink: Output only. [Output Only] Server-defined fully-qualified URL for + // this resource. + SelfLink string `json:"selfLink,omitempty"` + // SnapshotSchedulePolicy: Resource policy for persistent disks for creating + // snapshots. + SnapshotSchedulePolicy *ResourcePolicySnapshotSchedulePolicy `json:"snapshotSchedulePolicy,omitempty"` + // Status: Output only. [Output Only] The status of resource policy creation. // // Possible values: - // "ALL" - Matches any status of the instances, running, non-running and - // others. - // "RUNNING" - Instance is in RUNNING state if it is running. - InstanceState string `json:"instanceState,omitempty"` - // PortName: Name of port user is interested in. It is optional. If it is set, - // only information about this ports will be returned. If it is not set, all - // the named ports will be returned. Always lists all instances. - PortName string `json:"portName,omitempty"` - // ForceSendFields is a list of field names (e.g. "InstanceState") to - // unconditionally include in API requests. By default, fields with empty or - // default values are omitted from API requests. See - // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more - // details. - ForceSendFields []string `json:"-"` - // NullFields is a list of field names (e.g. "InstanceState") to include in API - // requests with the JSON null value. By default, fields with empty values are - // omitted from API requests. See - // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. - NullFields []string `json:"-"` -} - -func (s *RegionInstanceGroupsListInstancesRequest) MarshalJSON() ([]byte, error) { - type NoMethod RegionInstanceGroupsListInstancesRequest - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) -} + // "CREATING" - Resource policy is being created. + // "DELETING" - Resource policy is being deleted. + // "EXPIRED" - Resource policy is expired and will not run again. + // "INVALID" + // "READY" - Resource policy is ready to be used. + Status string `json:"status,omitempty"` + // WorkloadPolicy: Resource policy for defining instance placement for MIGs. + WorkloadPolicy *ResourcePolicyWorkloadPolicy `json:"workloadPolicy,omitempty"` -type RegionInstanceGroupsSetNamedPortsRequest struct { - // Fingerprint: The fingerprint of the named ports information for this - // instance group. Use this optional property to prevent conflicts when - // multiple users change the named ports settings concurrently. Obtain the - // fingerprint with the instanceGroups.get method. Then, include the - // fingerprint in your request to ensure that you do not overwrite changes that - // were applied from another concurrent request. - Fingerprint string `json:"fingerprint,omitempty"` - // NamedPorts: The list of named ports to set for this instance group. - NamedPorts []*NamedPort `json:"namedPorts,omitempty"` - // ForceSendFields is a list of field names (e.g. "Fingerprint") to + // ServerResponse contains the HTTP response code and headers from the server. + googleapi.ServerResponse `json:"-"` + // ForceSendFields is a list of field names (e.g. "CreationTimestamp") to // unconditionally include in API requests. By default, fields with empty or // default values are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. ForceSendFields []string `json:"-"` - // NullFields is a list of field names (e.g. "Fingerprint") to include in API - // requests with the JSON null value. By default, fields with empty values are - // omitted from API requests. See + // NullFields is a list of field names (e.g. "CreationTimestamp") to include in + // API requests with the JSON null value. By default, fields with empty values + // are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } -func (s *RegionInstanceGroupsSetNamedPortsRequest) MarshalJSON() ([]byte, error) { - type NoMethod RegionInstanceGroupsSetNamedPortsRequest - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s ResourcePolicy) MarshalJSON() ([]byte, error) { + type NoMethod ResourcePolicy + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -// RegionList: Contains a list of region resources. -type RegionList struct { +// ResourcePolicyAggregatedList: Contains a list of resourcePolicies. +type ResourcePolicyAggregatedList struct { + Etag string `json:"etag,omitempty"` // Id: [Output Only] Unique identifier for the resource; defined by the server. Id string `json:"id,omitempty"` - // Items: A list of Region resources. - Items []*Region `json:"items,omitempty"` - // Kind: [Output Only] Type of resource. Always compute#regionList for lists of - // regions. + // Items: A list of ResourcePolicy resources. + Items map[string]ResourcePoliciesScopedList `json:"items,omitempty"` + // Kind: Output only. Type of resource. 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. + // results for + // list requests. If the number of results is larger thanmaxResults, 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"` - // SelfLink: [Output Only] Server-defined URL for this resource. + // SelfLink: Output only. [Output Only] Server-defined URL for this resource. SelfLink string `json:"selfLink,omitempty"` + // Unreachables: Output only. [Output Only] Unreachable resources. + Unreachables []string `json:"unreachables,omitempty"` // Warning: [Output Only] Informational warning message. - Warning *RegionListWarning `json:"warning,omitempty"` + Warning *ResourcePolicyAggregatedListWarning `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 + // ForceSendFields is a list of field names (e.g. "Etag") to unconditionally // include in API requests. By default, fields with empty or default values are // omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. ForceSendFields []string `json:"-"` - // NullFields is a list of field names (e.g. "Id") to include in API requests + // NullFields is a list of field names (e.g. "Etag") to include in API requests // with the JSON null value. By default, fields with empty values are omitted // from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } -func (s *RegionList) MarshalJSON() ([]byte, error) { - type NoMethod RegionList - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s ResourcePolicyAggregatedList) MarshalJSON() ([]byte, error) { + type NoMethod ResourcePolicyAggregatedList + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -// RegionListWarning: [Output Only] Informational warning message. -type RegionListWarning 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. +// ResourcePolicyAggregatedListWarning: [Output Only] Informational warning +// message. +type ResourcePolicyAggregatedListWarning 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" - Warning about failed cleanup of transient changes made - // by a failed operation. + // by a failed + // operation. // "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was created. // "DEPRECATED_TYPE_USED" - When deploying and at least one of the resources - // has a type marked as deprecated + // has a type marked as + // deprecated // "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk that is // larger than image size. // "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the - // resources has a type marked as experimental + // resources has a type marked as + // experimental // "EXTERNAL_API_WARNING" - Warning that is present in an external api call // "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been - // overridden. Deprecated unused field. + // overridden. + // Deprecated unused field. // "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an injected // kernel, which is deprecated. // "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB" - A WEIGHTED_MAGLEV backend - // service is associated with a health check that is not of type - // HTTP/HTTPS/HTTP2. + // service is associated with a health check that is + // not of type HTTP/HTTPS/HTTP2. // "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a // exceedingly large number of resources // "LIST_OVERHEAD_QUOTA_EXCEED" - Resource can't be retrieved due to list - // overhead quota exceed which captures the amount of resources filtered out by + // overhead quota exceed + // which captures the amount of resources filtered out by // user-defined list filter. // "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is not - // assigned to an instance on the network. + // assigned to an instance on the + // network. // "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot ip // forward. // "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE" - The route's nextHopInstance - // URL refers to an instance that does not have an ipv6 interface on the same - // network as the route. + // URL refers to an instance that does not have an + // ipv6 interface on the same network as the route. // "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL refers to // an instance that does not exist. // "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance URL - // refers to an instance that is not on the same network as the route. + // refers to an instance that is not on the + // same network as the route. // "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not have a // status of RUNNING. // "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to continue - // the process despite the mentioned error. + // the process despite + // the mentioned error. // "NO_RESULTS_ON_PAGE" - No results are present on a particular list page. // "PARTIAL_SUCCESS" - Success is reported, but some results may be missing // due to errors + // "QUOTA_INFO_UNAVAILABLE" - Quota information is not available to client + // requests (e.g: + // regions.list). // "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource that - // requires a TOS they have not accepted. + // requires a TOS they have not + // accepted. // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a resource is // in use. // "RESOURCE_NOT_DELETED" - One or more of the resources set to auto-delete - // could not be deleted because they were in use. + // could not be deleted + // because they were in use. // "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is // ignored. // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in instance - // group manager is valid as such, but its application does not make a lot of - // sense, because it allows only single instance in instance group. + // group manager is valid as such, but + // its application does not make a lot of sense, because it allows only + // single instance in instance group. // "UNDECLARED_PROPERTIES" - When undeclared properties in the schema are // present // "UNREACHABLE" - A given scope cannot be reached. 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 []*RegionListWarningData `json:"data,omitempty"` + // Data: [Output Only] Metadata about this warning in key: + // value format. For example: + // + // "data": [ + // { + // "key": "scope", + // "value": "zones/us-east1-d" + // } + Data []*ResourcePolicyAggregatedListWarningData `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 @@ -35108,19 +59581,22 @@ type RegionListWarning struct { NullFields []string `json:"-"` } -func (s *RegionListWarning) MarshalJSON() ([]byte, error) { - type NoMethod RegionListWarning - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s ResourcePolicyAggregatedListWarning) MarshalJSON() ([]byte, error) { + type NoMethod ResourcePolicyAggregatedListWarning + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -type RegionListWarningData 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). +type ResourcePolicyAggregatedListWarningData 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"` @@ -35137,478 +59613,326 @@ type RegionListWarningData struct { NullFields []string `json:"-"` } -func (s *RegionListWarningData) MarshalJSON() ([]byte, error) { - type NoMethod RegionListWarningData - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) -} - -type RegionNetworkEndpointGroupsAttachEndpointsRequest struct { - // NetworkEndpoints: The list of network endpoints to be attached. - NetworkEndpoints []*NetworkEndpoint `json:"networkEndpoints,omitempty"` - // ForceSendFields is a list of field names (e.g. "NetworkEndpoints") to - // unconditionally include in API requests. By default, fields with empty or - // default values are omitted from API requests. See - // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more - // details. - ForceSendFields []string `json:"-"` - // NullFields is a list of field names (e.g. "NetworkEndpoints") to include in - // API requests with the JSON null value. By default, fields with empty values - // are omitted from API requests. See - // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. - NullFields []string `json:"-"` -} - -func (s *RegionNetworkEndpointGroupsAttachEndpointsRequest) MarshalJSON() ([]byte, error) { - type NoMethod RegionNetworkEndpointGroupsAttachEndpointsRequest - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) -} - -type RegionNetworkEndpointGroupsDetachEndpointsRequest struct { - // NetworkEndpoints: The list of network endpoints to be detached. - NetworkEndpoints []*NetworkEndpoint `json:"networkEndpoints,omitempty"` - // ForceSendFields is a list of field names (e.g. "NetworkEndpoints") to - // unconditionally include in API requests. By default, fields with empty or - // default values are omitted from API requests. See - // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more - // details. - ForceSendFields []string `json:"-"` - // NullFields is a list of field names (e.g. "NetworkEndpoints") to include in - // API requests with the JSON null value. By default, fields with empty values - // are omitted from API requests. See - // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. - NullFields []string `json:"-"` -} - -func (s *RegionNetworkEndpointGroupsDetachEndpointsRequest) MarshalJSON() ([]byte, error) { - type NoMethod RegionNetworkEndpointGroupsDetachEndpointsRequest - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) -} - -type RegionNetworkFirewallPoliciesGetEffectiveFirewallsResponse struct { - // FirewallPolicys: Effective firewalls from firewall policy. - FirewallPolicys []*RegionNetworkFirewallPoliciesGetEffectiveFirewallsResponseEffectiveFirewallPolicy `json:"firewallPolicys,omitempty"` - // Firewalls: Effective firewalls on the network. - Firewalls []*Firewall `json:"firewalls,omitempty"` - - // ServerResponse contains the HTTP response code and headers from the server. - googleapi.ServerResponse `json:"-"` - // ForceSendFields is a list of field names (e.g. "FirewallPolicys") to - // unconditionally include in API requests. By default, fields with empty or - // default values are omitted from API requests. See - // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more - // details. - ForceSendFields []string `json:"-"` - // NullFields is a list of field names (e.g. "FirewallPolicys") to include in - // API requests with the JSON null value. By default, fields with empty values - // are omitted from API requests. See - // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. - NullFields []string `json:"-"` -} - -func (s *RegionNetworkFirewallPoliciesGetEffectiveFirewallsResponse) MarshalJSON() ([]byte, error) { - type NoMethod RegionNetworkFirewallPoliciesGetEffectiveFirewallsResponse - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s ResourcePolicyAggregatedListWarningData) MarshalJSON() ([]byte, error) { + type NoMethod ResourcePolicyAggregatedListWarningData + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -type RegionNetworkFirewallPoliciesGetEffectiveFirewallsResponseEffectiveFirewallPolicy struct { - // DisplayName: [Output Only] The display name of the firewall policy. - DisplayName string `json:"displayName,omitempty"` - // Name: [Output Only] The name of the firewall policy. - Name string `json:"name,omitempty"` - // Rules: The rules that apply to the network. - Rules []*FirewallPolicyRule `json:"rules,omitempty"` - // Type: [Output Only] The type of the firewall policy. Can be one of - // HIERARCHY, NETWORK, NETWORK_REGIONAL, SYSTEM_GLOBAL, SYSTEM_REGIONAL. - // - // Possible values: - // "HIERARCHY" - // "NETWORK" - // "NETWORK_REGIONAL" - // "UNSPECIFIED" - Type string `json:"type,omitempty"` - // ForceSendFields is a list of field names (e.g. "DisplayName") to +// ResourcePolicyDailyCycle: Time window specified for daily operations. +type ResourcePolicyDailyCycle struct { + // DaysInCycle: Defines a schedule with units measured in days. The value + // determines + // how many days pass between the start of each cycle. + DaysInCycle int64 `json:"daysInCycle,omitempty"` + // Duration: Output only. [Output only] A predetermined duration for the + // window, automatically + // chosen to be the smallest possible in the given scenario. + Duration string `json:"duration,omitempty"` + // StartTime: Start time of the window. This must be in UTC format that + // resolves to one + // of 00:00, 04:00, 08:00,12:00, 16:00, or 20:00. For + // example, both 13:00-5 and 08:00 are valid. + StartTime string `json:"startTime,omitempty"` + // ForceSendFields is a list of field names (e.g. "DaysInCycle") to // unconditionally include in API requests. By default, fields with empty or // default values are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. ForceSendFields []string `json:"-"` - // NullFields is a list of field names (e.g. "DisplayName") to include in API + // NullFields is a list of field names (e.g. "DaysInCycle") to include in API // requests with the JSON null value. By default, fields with empty values are // omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } -func (s *RegionNetworkFirewallPoliciesGetEffectiveFirewallsResponseEffectiveFirewallPolicy) MarshalJSON() ([]byte, error) { - type NoMethod RegionNetworkFirewallPoliciesGetEffectiveFirewallsResponseEffectiveFirewallPolicy - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) -} - -type RegionSetLabelsRequest struct { - // LabelFingerprint: The fingerprint of the previous set of labels for this - // resource, used to detect conflicts. The fingerprint is initially generated - // by Compute Engine and changes after every request to modify or update - // labels. You must always provide an up-to-date fingerprint hash in order to - // update or change labels. Make a get() request to the resource to get the - // latest fingerprint. - LabelFingerprint string `json:"labelFingerprint,omitempty"` - // Labels: The labels to set for this resource. - Labels map[string]string `json:"labels,omitempty"` - // ForceSendFields is a list of field names (e.g. "LabelFingerprint") to - // unconditionally include in API requests. By default, fields with empty or - // default values are omitted from API requests. See - // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more - // details. - ForceSendFields []string `json:"-"` - // NullFields is a list of field names (e.g. "LabelFingerprint") to include in - // API requests with the JSON null value. By default, fields with empty values - // are omitted from API requests. See - // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. - NullFields []string `json:"-"` -} - -func (s *RegionSetLabelsRequest) MarshalJSON() ([]byte, error) { - type NoMethod RegionSetLabelsRequest - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) -} - -type RegionSetPolicyRequest struct { - // Bindings: Flatten Policy to create a backwacd compatible wire-format. - // Deprecated. Use 'policy' to specify bindings. - Bindings []*Binding `json:"bindings,omitempty"` - // Etag: Flatten Policy to create a backward compatible wire-format. - // Deprecated. Use 'policy' to specify the etag. - Etag string `json:"etag,omitempty"` - // Policy: REQUIRED: The complete policy to be applied to the 'resource'. The - // size of the policy is limited to a few 10s of KB. An empty policy is in - // general a valid policy but certain services (like Projects) might reject - // them. - Policy *Policy `json:"policy,omitempty"` - // ForceSendFields is a list of field names (e.g. "Bindings") to - // unconditionally include in API requests. By default, fields with empty or - // default values are omitted from API requests. See - // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more - // details. - ForceSendFields []string `json:"-"` - // NullFields is a list of field names (e.g. "Bindings") to include in API - // requests with the JSON null value. By default, fields with empty values are - // omitted from API requests. See - // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. - NullFields []string `json:"-"` +func (s ResourcePolicyDailyCycle) MarshalJSON() ([]byte, error) { + type NoMethod ResourcePolicyDailyCycle + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -func (s *RegionSetPolicyRequest) MarshalJSON() ([]byte, error) { - type NoMethod RegionSetPolicyRequest - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +// ResourcePolicyDiskConsistencyGroupPolicy: Resource policy for disk +// consistency groups. +type ResourcePolicyDiskConsistencyGroupPolicy struct { } -type RegionTargetHttpsProxiesSetSslCertificatesRequest struct { - // SslCertificates: New set of SslCertificate resources to associate with this - // TargetHttpsProxy resource. - SslCertificates []string `json:"sslCertificates,omitempty"` - // ForceSendFields is a list of field names (e.g. "SslCertificates") to +// ResourcePolicyGroupPlacementPolicy: A GroupPlacementPolicy specifies +// resource placement configuration. +// It specifies the failure bucket separation +type ResourcePolicyGroupPlacementPolicy struct { + // AcceleratorTopologyMode: Specifies the connection mode for the accelerator + // topology. If not + // specified, the default is AUTO_CONNECT. + // + // Possible values: + // "AUTO_CONNECT" - The interconnected chips are pre-configured at the time + // of VM creation. + // "PROVISION_ONLY" - The interconnected chips are connected on demand. At + // the time of VM + // creation, the chips are not connected. + AcceleratorTopologyMode string `json:"acceleratorTopologyMode,omitempty"` + // AvailabilityDomainCount: The number of availability domains to spread + // instances across. If two + // instances are in different availability domain, they are not in the same + // low latency network. + AvailabilityDomainCount int64 `json:"availabilityDomainCount,omitempty"` + // Collocation: Specifies network collocation + // + // Possible values: + // "COLLOCATED" + // "UNSPECIFIED_COLLOCATION" + Collocation string `json:"collocation,omitempty"` + // GpuTopology: Specifies the shape of the GPU slice, in slice based GPU + // families eg. + // A4X. + GpuTopology string `json:"gpuTopology,omitempty"` + // VmCount: Number of VMs in this placement group. Google does not recommend + // that you + // use this field unless you use a compact policy and you want your policy + // to work only if it contains this exact number of VMs. + VmCount int64 `json:"vmCount,omitempty"` + // ForceSendFields is a list of field names (e.g. "AcceleratorTopologyMode") to // unconditionally include in API requests. By default, fields with empty or // default values are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. ForceSendFields []string `json:"-"` - // NullFields is a list of field names (e.g. "SslCertificates") to include in - // API requests with the JSON null value. By default, fields with empty values - // are omitted from API requests. See + // NullFields is a list of field names (e.g. "AcceleratorTopologyMode") to + // include in API requests with the JSON null value. By default, fields with + // empty values are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } -func (s *RegionTargetHttpsProxiesSetSslCertificatesRequest) MarshalJSON() ([]byte, error) { - type NoMethod RegionTargetHttpsProxiesSetSslCertificatesRequest - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s ResourcePolicyGroupPlacementPolicy) MarshalJSON() ([]byte, error) { + type NoMethod ResourcePolicyGroupPlacementPolicy + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -type RegionUrlMapsValidateRequest struct { - // Resource: Content of the UrlMap to be validated. - Resource *UrlMap `json:"resource,omitempty"` - // ForceSendFields is a list of field names (e.g. "Resource") to +// ResourcePolicyHourlyCycle: Time window specified for hourly operations. +type ResourcePolicyHourlyCycle struct { + // Duration: Output only. [Output only] Duration of the time window, + // automatically chosen to be + // smallest possible in the given scenario. + Duration string `json:"duration,omitempty"` + // HoursInCycle: Defines a schedule with units measured in hours. The value + // determines + // how many hours pass between the start of each cycle. + HoursInCycle int64 `json:"hoursInCycle,omitempty"` + // StartTime: Time within the window to start the operations. + // It must be in format "HH:MM", where HH : [00-23] and MM : [00-00] GMT. + StartTime string `json:"startTime,omitempty"` + // ForceSendFields is a list of field names (e.g. "Duration") to // unconditionally include in API requests. By default, fields with empty or // default values are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. ForceSendFields []string `json:"-"` - // NullFields is a list of field names (e.g. "Resource") to include in API + // NullFields is a list of field names (e.g. "Duration") to include in API // requests with the JSON null value. By default, fields with empty values are // omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } -func (s *RegionUrlMapsValidateRequest) MarshalJSON() ([]byte, error) { - type NoMethod RegionUrlMapsValidateRequest - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s ResourcePolicyHourlyCycle) MarshalJSON() ([]byte, error) { + type NoMethod ResourcePolicyHourlyCycle + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -// RequestMirrorPolicy: A policy that specifies how requests intended for the -// route's backends are shadowed to a separate mirrored backend service. The -// load balancer doesn't wait for responses from the shadow service. Before -// sending traffic to the shadow service, the host or authority header is -// suffixed with -shadow. -type RequestMirrorPolicy struct { - // BackendService: The full or partial URL to the BackendService resource being - // mirrored to. The backend service configured for a mirroring policy must - // reference backends that are of the same type as the original backend service - // matched in the URL map. Serverless NEG backends are not currently supported - // as a mirrored backend service. - BackendService string `json:"backendService,omitempty"` - // ForceSendFields is a list of field names (e.g. "BackendService") to +// ResourcePolicyInstanceSchedulePolicy: An InstanceSchedulePolicy specifies +// when and how frequent certain +// operations are performed on the instance. +type ResourcePolicyInstanceSchedulePolicy struct { + // ExpirationTime: The expiration time of the schedule. The timestamp is an + // RFC3339 string. + ExpirationTime string `json:"expirationTime,omitempty"` + // StartTime: The start time of the schedule. The timestamp is an RFC3339 + // string. + StartTime string `json:"startTime,omitempty"` + // TimeZone: Specifies the time zone to be used in interpreting + // Schedule.schedule. + // The value of this field must be a time zone name from the tz + // database: + // https://wikipedia.org/wiki/Tz_database. + TimeZone string `json:"timeZone,omitempty"` + // VmStartSchedule: Specifies the schedule for starting instances. + VmStartSchedule *ResourcePolicyInstanceSchedulePolicySchedule `json:"vmStartSchedule,omitempty"` + // VmStopSchedule: Specifies the schedule for stopping instances. + VmStopSchedule *ResourcePolicyInstanceSchedulePolicySchedule `json:"vmStopSchedule,omitempty"` + // ForceSendFields is a list of field names (e.g. "ExpirationTime") to // unconditionally include in API requests. By default, fields with empty or // default values are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. ForceSendFields []string `json:"-"` - // NullFields is a list of field names (e.g. "BackendService") to include in + // NullFields is a list of field names (e.g. "ExpirationTime") to include in // API requests with the JSON null value. By default, fields with empty values // are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } -func (s *RequestMirrorPolicy) MarshalJSON() ([]byte, error) { - type NoMethod RequestMirrorPolicy - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) -} - -// Reservation: Represents a reservation resource. A reservation ensures that -// capacity is held in a specific zone even if the reserved VMs are not -// running. For more information, read Reserving zonal resources. -type Reservation struct { - // AggregateReservation: Reservation for aggregated resources, providing shape - // flexibility. - AggregateReservation *AllocationAggregateReservation `json:"aggregateReservation,omitempty"` - // Commitment: [Output Only] Full or partial URL to a parent commitment. This - // field displays for reservations that are tied to a commitment. - Commitment string `json:"commitment,omitempty"` - // CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text format. - CreationTimestamp string `json:"creationTimestamp,omitempty"` - // Description: An optional description of this resource. Provide this property - // when you create the resource. - Description string `json:"description,omitempty"` - // Id: [Output Only] The unique identifier for the resource. This identifier is - // defined by the server. - Id uint64 `json:"id,omitempty,string"` - // Kind: [Output Only] Type of the resource. Always compute#reservations for - // reservations. - Kind string `json:"kind,omitempty"` - // Name: The name of the resource, provided by the client when initially - // creating the resource. The resource 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. - Name string `json:"name,omitempty"` - // ResourcePolicies: Resource policies to be added to this reservation. The key - // is defined by user, and the value is resource policy url. This is to define - // placement policy with reservation. - ResourcePolicies map[string]string `json:"resourcePolicies,omitempty"` - // ResourceStatus: [Output Only] Status information for Reservation resource. - ResourceStatus *AllocationResourceStatus `json:"resourceStatus,omitempty"` - // SatisfiesPzs: [Output Only] Reserved for future use. - SatisfiesPzs bool `json:"satisfiesPzs,omitempty"` - // SelfLink: [Output Only] Server-defined fully-qualified URL for this - // resource. - SelfLink string `json:"selfLink,omitempty"` - // ShareSettings: Specify share-settings to create a shared reservation. This - // property is optional. For more information about the syntax and options for - // this field and its subfields, see the guide for creating a shared - // reservation. - ShareSettings *ShareSettings `json:"shareSettings,omitempty"` - // SpecificReservation: Reservation for instances with specific machine shapes. - SpecificReservation *AllocationSpecificSKUReservation `json:"specificReservation,omitempty"` - // SpecificReservationRequired: Indicates whether the reservation can be - // consumed by VMs with affinity for "any" reservation. If the field is set, - // then only VMs that target the reservation by name can consume from this - // reservation. - SpecificReservationRequired bool `json:"specificReservationRequired,omitempty"` - // Status: [Output Only] The status of the reservation. - // - // Possible values: - // "CREATING" - Resources are being allocated for the reservation. - // "DELETING" - Reservation is currently being deleted. - // "INVALID" - // "READY" - Reservation has allocated all its resources. - // "UPDATING" - Reservation is currently being resized. - Status string `json:"status,omitempty"` - // Zone: Zone in which the reservation resides. A zone must be provided if the - // reservation is created within a commitment. - Zone string `json:"zone,omitempty"` - - // ServerResponse contains the HTTP response code and headers from the server. - googleapi.ServerResponse `json:"-"` - // ForceSendFields is a list of field names (e.g. "AggregateReservation") to - // unconditionally include in API requests. By default, fields with empty or - // default values are omitted from API requests. See - // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more - // details. - ForceSendFields []string `json:"-"` - // NullFields is a list of field names (e.g. "AggregateReservation") to include - // in API requests with the JSON null value. By default, fields with empty - // values are omitted from API requests. See - // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. - NullFields []string `json:"-"` -} - -func (s *Reservation) MarshalJSON() ([]byte, error) { - type NoMethod Reservation - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s ResourcePolicyInstanceSchedulePolicy) MarshalJSON() ([]byte, error) { + type NoMethod ResourcePolicyInstanceSchedulePolicy + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -// ReservationAffinity: Specifies the reservations that this instance can -// consume from. -type ReservationAffinity struct { - // ConsumeReservationType: Specifies the type of reservation from which this - // instance can consume resources: ANY_RESERVATION (default), - // SPECIFIC_RESERVATION, or NO_RESERVATION. See Consuming reserved instances - // for examples. - // - // Possible values: - // "ANY_RESERVATION" - Consume any allocation available. - // "NO_RESERVATION" - Do not consume from any allocated capacity. - // "SPECIFIC_RESERVATION" - Must consume from a specific reservation. Must - // specify key value fields for specifying the reservations. - // "UNSPECIFIED" - ConsumeReservationType string `json:"consumeReservationType,omitempty"` - // Key: Corresponds to the label key of a reservation resource. To target a - // SPECIFIC_RESERVATION by name, specify googleapis.com/reservation-name as the - // key and specify the name of your reservation as its value. - Key string `json:"key,omitempty"` - // Values: Corresponds to the label values of a reservation resource. This can - // be either a name to a reservation in the same project or - // "projects/different-project/reservations/some-reservation-name" to target a - // shared reservation in the same zone but in a different project. - Values []string `json:"values,omitempty"` - // ForceSendFields is a list of field names (e.g. "ConsumeReservationType") to +// ResourcePolicyInstanceSchedulePolicySchedule: Schedule for an instance +// operation. +type ResourcePolicyInstanceSchedulePolicySchedule struct { + // Schedule: Specifies the frequency for the operation, using the unix-cron + // format. + Schedule string `json:"schedule,omitempty"` + // ForceSendFields is a list of field names (e.g. "Schedule") to // unconditionally include in API requests. By default, fields with empty or // default values are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. ForceSendFields []string `json:"-"` - // NullFields is a list of field names (e.g. "ConsumeReservationType") to - // include in API requests with the JSON null value. By default, fields with - // empty values are omitted from API requests. See + // NullFields is a list of field names (e.g. "Schedule") to include in API + // requests with the JSON null value. By default, fields with empty values are + // omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } -func (s *ReservationAffinity) MarshalJSON() ([]byte, error) { - type NoMethod ReservationAffinity - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s ResourcePolicyInstanceSchedulePolicySchedule) MarshalJSON() ([]byte, error) { + type NoMethod ResourcePolicyInstanceSchedulePolicySchedule + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -// ReservationAggregatedList: Contains a list of reservations. -type ReservationAggregatedList struct { - // Id: [Output Only] Unique identifier for the resource; defined by the server. +type ResourcePolicyList struct { + Etag string `json:"etag,omitempty"` + // Id: [Output Only] The unique identifier for the resource. This identifier + // is + // defined by the server. Id string `json:"id,omitempty"` - // Items: A list of Allocation resources. - Items map[string]ReservationsScopedList `json:"items,omitempty"` - // Kind: Type of resource. + // Items: [Output Only] A list of ResourcePolicy resources. + Items []*ResourcePolicy `json:"items,omitempty"` + // Kind: Output only. [Output Only] Type of + // resource.Alwayscompute#resourcePoliciesList for listsof resourcePolicies 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. + // results for + // list requests. If the number of results is larger thanmaxResults, 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"` - // SelfLink: [Output Only] Server-defined URL for this resource. + // SelfLink: Output only. [Output Only] Server-defined URL for this resource. SelfLink string `json:"selfLink,omitempty"` - // Unreachables: [Output Only] Unreachable resources. - Unreachables []string `json:"unreachables,omitempty"` // Warning: [Output Only] Informational warning message. - Warning *ReservationAggregatedListWarning `json:"warning,omitempty"` + Warning *ResourcePolicyListWarning `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 + // ForceSendFields is a list of field names (e.g. "Etag") to unconditionally // include in API requests. By default, fields with empty or default values are // omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. ForceSendFields []string `json:"-"` - // NullFields is a list of field names (e.g. "Id") to include in API requests + // NullFields is a list of field names (e.g. "Etag") to include in API requests // with the JSON null value. By default, fields with empty values are omitted // from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } -func (s *ReservationAggregatedList) MarshalJSON() ([]byte, error) { - type NoMethod ReservationAggregatedList - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s ResourcePolicyList) MarshalJSON() ([]byte, error) { + type NoMethod ResourcePolicyList + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -// ReservationAggregatedListWarning: [Output Only] Informational warning -// message. -type ReservationAggregatedListWarning 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. +// ResourcePolicyListWarning: [Output Only] Informational warning message. +type ResourcePolicyListWarning 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" - Warning about failed cleanup of transient changes made - // by a failed operation. + // by a failed + // operation. // "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was created. // "DEPRECATED_TYPE_USED" - When deploying and at least one of the resources - // has a type marked as deprecated + // has a type marked as + // deprecated // "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk that is // larger than image size. // "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the - // resources has a type marked as experimental + // resources has a type marked as + // experimental // "EXTERNAL_API_WARNING" - Warning that is present in an external api call // "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been - // overridden. Deprecated unused field. + // overridden. + // Deprecated unused field. // "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an injected // kernel, which is deprecated. // "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB" - A WEIGHTED_MAGLEV backend - // service is associated with a health check that is not of type - // HTTP/HTTPS/HTTP2. + // service is associated with a health check that is + // not of type HTTP/HTTPS/HTTP2. // "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a // exceedingly large number of resources // "LIST_OVERHEAD_QUOTA_EXCEED" - Resource can't be retrieved due to list - // overhead quota exceed which captures the amount of resources filtered out by + // overhead quota exceed + // which captures the amount of resources filtered out by // user-defined list filter. // "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is not - // assigned to an instance on the network. + // assigned to an instance on the + // network. // "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot ip // forward. // "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE" - The route's nextHopInstance - // URL refers to an instance that does not have an ipv6 interface on the same - // network as the route. + // URL refers to an instance that does not have an + // ipv6 interface on the same network as the route. // "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL refers to // an instance that does not exist. // "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance URL - // refers to an instance that is not on the same network as the route. + // refers to an instance that is not on the + // same network as the route. // "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not have a // status of RUNNING. // "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to continue - // the process despite the mentioned error. + // the process despite + // the mentioned error. // "NO_RESULTS_ON_PAGE" - No results are present on a particular list page. // "PARTIAL_SUCCESS" - Success is reported, but some results may be missing // due to errors + // "QUOTA_INFO_UNAVAILABLE" - Quota information is not available to client + // requests (e.g: + // regions.list). // "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource that - // requires a TOS they have not accepted. + // requires a TOS they have not + // accepted. // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a resource is // in use. // "RESOURCE_NOT_DELETED" - One or more of the resources set to auto-delete - // could not be deleted because they were in use. + // could not be deleted + // because they were in use. // "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is // ignored. // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in instance - // group manager is valid as such, but its application does not make a lot of - // sense, because it allows only single instance in instance group. + // group manager is valid as such, but + // its application does not make a lot of sense, because it allows only + // single instance in instance group. // "UNDECLARED_PROPERTIES" - When undeclared properties in the schema are // present // "UNREACHABLE" - A given scope cannot be reached. 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 []*ReservationAggregatedListWarningData `json:"data,omitempty"` + // Data: [Output Only] Metadata about this warning in key: + // value format. For example: + // + // "data": [ + // { + // "key": "scope", + // "value": "zones/us-east1-d" + // } + Data []*ResourcePolicyListWarningData `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 @@ -35624,19 +59948,22 @@ type ReservationAggregatedListWarning struct { NullFields []string `json:"-"` } -func (s *ReservationAggregatedListWarning) MarshalJSON() ([]byte, error) { - type NoMethod ReservationAggregatedListWarning - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s ResourcePolicyListWarning) MarshalJSON() ([]byte, error) { + type NoMethod ResourcePolicyListWarning + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -type ReservationAggregatedListWarningData 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). +type ResourcePolicyListWarningData 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"` @@ -35653,928 +59980,999 @@ type ReservationAggregatedListWarningData struct { NullFields []string `json:"-"` } -func (s *ReservationAggregatedListWarningData) MarshalJSON() ([]byte, error) { - type NoMethod ReservationAggregatedListWarningData - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s ResourcePolicyListWarningData) MarshalJSON() ([]byte, error) { + type NoMethod ResourcePolicyListWarningData + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -type ReservationList struct { - // Id: [Output Only] The unique identifier for the resource. This identifier is - // defined by the server. - Id string `json:"id,omitempty"` - // Items: [Output Only] A list of Allocation resources. - Items []*Reservation `json:"items,omitempty"` - // Kind: [Output Only] Type of resource.Always compute#reservationsList for - // listsof reservations - 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"` - // SelfLink: [Output Only] Server-defined URL for this resource. - SelfLink string `json:"selfLink,omitempty"` - // Warning: [Output Only] Informational warning message. - Warning *ReservationListWarning `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 or default values are - // omitted from API requests. See +// ResourcePolicyResourceStatus: Contains output only fields. +// Use this sub-message for all output fields set on ResourcePolicy. +// The internal structure of this "status" field should mimic the structure +// of ResourcePolicy proto specification. +type ResourcePolicyResourceStatus struct { + // InstanceSchedulePolicy: Output only. [Output Only] Specifies a set of output + // values reffering to + // the instance_schedule_policy system status. + // This field should have the same name as corresponding policy field. + InstanceSchedulePolicy *ResourcePolicyResourceStatusInstanceSchedulePolicyStatus `json:"instanceSchedulePolicy,omitempty"` + // ForceSendFields is a list of field names (e.g. "InstanceSchedulePolicy") to + // unconditionally include in API requests. By default, fields with empty or + // default values are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. 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. See + // NullFields is a list of field names (e.g. "InstanceSchedulePolicy") to + // include in API requests with the JSON null value. By default, fields with + // empty values are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } -func (s *ReservationList) MarshalJSON() ([]byte, error) { - type NoMethod ReservationList - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s ResourcePolicyResourceStatus) MarshalJSON() ([]byte, error) { + type NoMethod ResourcePolicyResourceStatus + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -// ReservationListWarning: [Output Only] Informational warning message. -type ReservationListWarning 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" - Warning about failed cleanup of transient changes made - // by a failed operation. - // "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was created. - // "DEPRECATED_TYPE_USED" - When deploying and at least one of the resources - // has a type marked as deprecated - // "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk that is - // larger than image size. - // "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the - // resources has a type marked as experimental - // "EXTERNAL_API_WARNING" - Warning that is present in an external api call - // "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been - // overridden. Deprecated unused field. - // "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an injected - // kernel, which is deprecated. - // "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB" - A WEIGHTED_MAGLEV backend - // service is associated with a health check that is not of type - // HTTP/HTTPS/HTTP2. - // "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a - // exceedingly large number of resources - // "LIST_OVERHEAD_QUOTA_EXCEED" - Resource can't be retrieved due to list - // overhead quota exceed which captures the amount of resources filtered out by - // user-defined list filter. - // "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type - // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is not - // assigned to an instance on the network. - // "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot ip - // forward. - // "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE" - The route's nextHopInstance - // URL refers to an instance that does not have an ipv6 interface on the same - // network as the route. - // "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL refers to - // an instance that does not exist. - // "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance URL - // refers to an instance that is not on the same network as the route. - // "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not have a - // status of RUNNING. - // "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to continue - // the process despite the mentioned error. - // "NO_RESULTS_ON_PAGE" - No results are present on a particular list page. - // "PARTIAL_SUCCESS" - Success is reported, but some results may be missing - // due to errors - // "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource that - // requires a TOS they have not accepted. - // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a resource is - // in use. - // "RESOURCE_NOT_DELETED" - One or more of the resources set to auto-delete - // could not be deleted because they were in use. - // "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is - // ignored. - // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in instance - // group manager is valid as such, but its application does not make a lot of - // sense, because it allows only single instance in instance group. - // "UNDECLARED_PROPERTIES" - When undeclared properties in the schema are - // present - // "UNREACHABLE" - A given scope cannot be reached. - 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 []*ReservationListWarningData `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 or default values are - // omitted from API requests. See +type ResourcePolicyResourceStatusInstanceSchedulePolicyStatus struct { + // LastRunStartTime: Output only. [Output Only] The last time the schedule + // successfully ran. + // The timestamp is an RFC3339 string. + LastRunStartTime string `json:"lastRunStartTime,omitempty"` + // NextRunStartTime: Output only. [Output Only] The next time the schedule is + // planned to run. + // The actual time might be slightly different. + // The timestamp is an RFC3339 string. + NextRunStartTime string `json:"nextRunStartTime,omitempty"` + // ForceSendFields is a list of field names (e.g. "LastRunStartTime") to + // unconditionally include in API requests. By default, fields with empty or + // default values are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. 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. See + // NullFields is a list of field names (e.g. "LastRunStartTime") to include in + // API requests with the JSON null value. By default, fields with empty values + // are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } -func (s *ReservationListWarning) MarshalJSON() ([]byte, error) { - type NoMethod ReservationListWarning - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s ResourcePolicyResourceStatusInstanceSchedulePolicyStatus) MarshalJSON() ([]byte, error) { + type NoMethod ResourcePolicyResourceStatusInstanceSchedulePolicyStatus + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -type ReservationListWarningData 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 or default values are - // omitted from API requests. See +// ResourcePolicySnapshotSchedulePolicy: A snapshot schedule policy specifies +// when and how frequently snapshots are +// to be created for the target disk. Also specifies how many and how +// long +// these scheduled snapshots should be retained. +type ResourcePolicySnapshotSchedulePolicy struct { + // RetentionPolicy: Retention policy applied to snapshots created by this + // resource policy. + RetentionPolicy *ResourcePolicySnapshotSchedulePolicyRetentionPolicy `json:"retentionPolicy,omitempty"` + // Schedule: A Vm Maintenance Policy specifies what kind of + // infrastructure + // maintenance we are allowed to perform on this VM and when. Schedule + // that is applied to disks covered by this policy. + Schedule *ResourcePolicySnapshotSchedulePolicySchedule `json:"schedule,omitempty"` + // SnapshotProperties: Properties with which snapshots are created such as + // labels, encryption + // keys. + SnapshotProperties *ResourcePolicySnapshotSchedulePolicySnapshotProperties `json:"snapshotProperties,omitempty"` + // ForceSendFields is a list of field names (e.g. "RetentionPolicy") to + // unconditionally include in API requests. By default, fields with empty or + // default values are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. 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. See + // NullFields is a list of field names (e.g. "RetentionPolicy") to include in + // API requests with the JSON null value. By default, fields with empty values + // are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } -func (s *ReservationListWarningData) MarshalJSON() ([]byte, error) { - type NoMethod ReservationListWarningData - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s ResourcePolicySnapshotSchedulePolicy) MarshalJSON() ([]byte, error) { + type NoMethod ResourcePolicySnapshotSchedulePolicy + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -type ReservationsResizeRequest struct { - // SpecificSkuCount: Number of allocated resources can be resized with minimum - // = 1 and maximum = 1000. - SpecificSkuCount int64 `json:"specificSkuCount,omitempty,string"` - // ForceSendFields is a list of field names (e.g. "SpecificSkuCount") to +// ResourcePolicySnapshotSchedulePolicyRetentionPolicy: Policy for retention of +// scheduled snapshots. +type ResourcePolicySnapshotSchedulePolicyRetentionPolicy struct { + // MaxRetentionDays: Maximum age of the snapshot that is allowed to be kept. + MaxRetentionDays int64 `json:"maxRetentionDays,omitempty"` + // OnSourceDiskDelete: Specifies the behavior to apply to scheduled snapshots + // when + // the source disk is deleted. + // + // Possible values: + // "APPLY_RETENTION_POLICY" + // "KEEP_AUTO_SNAPSHOTS" + // "UNSPECIFIED_ON_SOURCE_DISK_DELETE" + OnSourceDiskDelete string `json:"onSourceDiskDelete,omitempty"` + // ForceSendFields is a list of field names (e.g. "MaxRetentionDays") to // unconditionally include in API requests. By default, fields with empty or // default values are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. ForceSendFields []string `json:"-"` - // NullFields is a list of field names (e.g. "SpecificSkuCount") to include in + // NullFields is a list of field names (e.g. "MaxRetentionDays") to include in // API requests with the JSON null value. By default, fields with empty values // are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } -func (s *ReservationsResizeRequest) MarshalJSON() ([]byte, error) { - type NoMethod ReservationsResizeRequest - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s ResourcePolicySnapshotSchedulePolicyRetentionPolicy) MarshalJSON() ([]byte, error) { + type NoMethod ResourcePolicySnapshotSchedulePolicyRetentionPolicy + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -type ReservationsScopedList struct { - // Reservations: A list of reservations contained in this scope. - Reservations []*Reservation `json:"reservations,omitempty"` - // Warning: Informational warning which replaces the list of reservations when - // the list is empty. - Warning *ReservationsScopedListWarning `json:"warning,omitempty"` - // ForceSendFields is a list of field names (e.g. "Reservations") to +// ResourcePolicySnapshotSchedulePolicySchedule: A schedule for disks where the +// schedueled operations are performed. +type ResourcePolicySnapshotSchedulePolicySchedule struct { + DailySchedule *ResourcePolicyDailyCycle `json:"dailySchedule,omitempty"` + HourlySchedule *ResourcePolicyHourlyCycle `json:"hourlySchedule,omitempty"` + WeeklySchedule *ResourcePolicyWeeklyCycle `json:"weeklySchedule,omitempty"` + // ForceSendFields is a list of field names (e.g. "DailySchedule") to // unconditionally include in API requests. By default, fields with empty or // default values are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. ForceSendFields []string `json:"-"` - // NullFields is a list of field names (e.g. "Reservations") to include in API + // NullFields is a list of field names (e.g. "DailySchedule") to include in API // requests with the JSON null value. By default, fields with empty values are // omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } -func (s *ReservationsScopedList) MarshalJSON() ([]byte, error) { - type NoMethod ReservationsScopedList - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s ResourcePolicySnapshotSchedulePolicySchedule) MarshalJSON() ([]byte, error) { + type NoMethod ResourcePolicySnapshotSchedulePolicySchedule + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -// ReservationsScopedListWarning: Informational warning which replaces the list -// of reservations when the list is empty. -type ReservationsScopedListWarning 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" - Warning about failed cleanup of transient changes made - // by a failed operation. - // "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was created. - // "DEPRECATED_TYPE_USED" - When deploying and at least one of the resources - // has a type marked as deprecated - // "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk that is - // larger than image size. - // "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the - // resources has a type marked as experimental - // "EXTERNAL_API_WARNING" - Warning that is present in an external api call - // "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been - // overridden. Deprecated unused field. - // "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an injected - // kernel, which is deprecated. - // "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB" - A WEIGHTED_MAGLEV backend - // service is associated with a health check that is not of type - // HTTP/HTTPS/HTTP2. - // "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a - // exceedingly large number of resources - // "LIST_OVERHEAD_QUOTA_EXCEED" - Resource can't be retrieved due to list - // overhead quota exceed which captures the amount of resources filtered out by - // user-defined list filter. - // "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type - // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is not - // assigned to an instance on the network. - // "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot ip - // forward. - // "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE" - The route's nextHopInstance - // URL refers to an instance that does not have an ipv6 interface on the same - // network as the route. - // "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL refers to - // an instance that does not exist. - // "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance URL - // refers to an instance that is not on the same network as the route. - // "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not have a - // status of RUNNING. - // "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to continue - // the process despite the mentioned error. - // "NO_RESULTS_ON_PAGE" - No results are present on a particular list page. - // "PARTIAL_SUCCESS" - Success is reported, but some results may be missing - // due to errors - // "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource that - // requires a TOS they have not accepted. - // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a resource is - // in use. - // "RESOURCE_NOT_DELETED" - One or more of the resources set to auto-delete - // could not be deleted because they were in use. - // "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is - // ignored. - // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in instance - // group manager is valid as such, but its application does not make a lot of - // sense, because it allows only single instance in instance group. - // "UNDECLARED_PROPERTIES" - When undeclared properties in the schema are - // present - // "UNREACHABLE" - A given scope cannot be reached. - 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 []*ReservationsScopedListWarningData `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 or default values are +// ResourcePolicySnapshotSchedulePolicySnapshotProperties: Specified snapshot +// properties for scheduled snapshots created by this +// policy. +type ResourcePolicySnapshotSchedulePolicySnapshotProperties struct { + // ChainName: Chain name that the snapshot is created in. + ChainName string `json:"chainName,omitempty"` + // GuestFlush: Indication to perform a 'guest aware' snapshot. + GuestFlush bool `json:"guestFlush,omitempty"` + // Labels: Labels to apply to scheduled snapshots. These can be later + // modified + // by the setLabels method. Label values may be empty. + Labels map[string]string `json:"labels,omitempty"` + // StorageLocations: Cloud Storage bucket storage location of the auto snapshot + // (regional or + // multi-regional). + StorageLocations []string `json:"storageLocations,omitempty"` + // ForceSendFields is a list of field names (e.g. "ChainName") to + // unconditionally include in API requests. By default, fields with empty or + // default values are omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + ForceSendFields []string `json:"-"` + // NullFields is a list of field names (e.g. "ChainName") to include in API + // requests with the JSON null value. By default, fields with empty values are // omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s ResourcePolicySnapshotSchedulePolicySnapshotProperties) MarshalJSON() ([]byte, error) { + type NoMethod ResourcePolicySnapshotSchedulePolicySnapshotProperties + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +// ResourcePolicyWeeklyCycle: Time window specified for weekly operations. +type ResourcePolicyWeeklyCycle struct { + // DayOfWeeks: Up to 7 intervals/windows, one for each day of the week. + DayOfWeeks []*ResourcePolicyWeeklyCycleDayOfWeek `json:"dayOfWeeks,omitempty"` + // ForceSendFields is a list of field names (e.g. "DayOfWeeks") to + // unconditionally include in API requests. By default, fields with empty or + // default values are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. 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. See + // NullFields is a list of field names (e.g. "DayOfWeeks") to include in API + // requests with the JSON null value. By default, fields with empty values are + // omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } -func (s *ReservationsScopedListWarning) MarshalJSON() ([]byte, error) { - type NoMethod ReservationsScopedListWarning - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s ResourcePolicyWeeklyCycle) MarshalJSON() ([]byte, error) { + type NoMethod ResourcePolicyWeeklyCycle + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -type ReservationsScopedListWarningData 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 +type ResourcePolicyWeeklyCycleDayOfWeek struct { + // Day: Defines a schedule that runs on specific days of the week. Specify + // one or more days. The following options are available: + // MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, SUNDAY. + // + // Possible values: + // "FRIDAY" + // "INVALID" + // "MONDAY" + // "SATURDAY" + // "SUNDAY" + // "THURSDAY" + // "TUESDAY" + // "WEDNESDAY" + Day string `json:"day,omitempty"` + // Duration: Output only. [Output only] Duration of the time window, + // automatically chosen to be + // smallest possible in the given scenario. + Duration string `json:"duration,omitempty"` + // StartTime: Time within the window to start the operations. + // It must be in format "HH:MM", where HH : [00-23] and MM : [00-00] GMT. + StartTime string `json:"startTime,omitempty"` + // ForceSendFields is a list of field names (e.g. "Day") to unconditionally // include in API requests. By default, fields with empty or default values are // omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. ForceSendFields []string `json:"-"` - // NullFields is a list of field names (e.g. "Key") to include in API requests + // NullFields is a list of field names (e.g. "Day") to include in API requests // with the JSON null value. By default, fields with empty values are omitted // from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } -func (s *ReservationsScopedListWarningData) MarshalJSON() ([]byte, error) { - type NoMethod ReservationsScopedListWarningData - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) -} - -// ResourceCommitment: Commitment for a particular resource (a Commitment is -// composed of one or more of these). -type ResourceCommitment struct { - // AcceleratorType: Name of the accelerator type resource. Applicable only when - // the type is ACCELERATOR. - AcceleratorType string `json:"acceleratorType,omitempty"` - // Amount: The amount of the resource purchased (in a type-dependent unit, such - // as bytes). For vCPUs, this can just be an integer. For memory, this must be - // provided in MB. Memory must be a multiple of 256 MB, with up to 6.5GB of - // memory per every vCPU. - Amount int64 `json:"amount,omitempty,string"` - // Type: Type of resource for which this commitment applies. Possible values - // are VCPU, MEMORY, LOCAL_SSD, and ACCELERATOR. +func (s ResourcePolicyWeeklyCycleDayOfWeek) MarshalJSON() ([]byte, error) { + type NoMethod ResourcePolicyWeeklyCycleDayOfWeek + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +// ResourcePolicyWorkloadPolicy: Represents the workload policy. +type ResourcePolicyWorkloadPolicy struct { + // AcceleratorTopology: Specifies the topology required to create a partition + // for VMs that have + // interconnected GPUs. + AcceleratorTopology string `json:"acceleratorTopology,omitempty"` + // AcceleratorTopologyMode: Specifies the connection mode for the accelerator + // topology. If not + // specified, the default is AUTO_CONNECT. // // Possible values: - // "ACCELERATOR" - // "LOCAL_SSD" - // "MEMORY" - // "UNSPECIFIED" - // "VCPU" + // "AUTO_CONNECT" - The interconnected chips are pre-configured at the time + // of VM creation. + // "PROVISION_ONLY" - The interconnected chips are connected on demand. At + // the time of VM + // creation, the chips are not connected. + AcceleratorTopologyMode string `json:"acceleratorTopologyMode,omitempty"` + // MaxTopologyDistance: Specifies the maximum distance between instances. + // + // Possible values: + // "BLOCK" - VMs must be provisioned in the same block. + // "CLUSTER" - VMs must be provisioned in the same cluster. + // "SUBBLOCK" - VMs must be provisioned in the same subblock. + MaxTopologyDistance string `json:"maxTopologyDistance,omitempty"` + // Type: Specifies the intent of the instance placement in the MIG. + // + // Possible values: + // "HIGH_AVAILABILITY" - MIG spreads out the instances as much as possible + // for high availability. + // "HIGH_THROUGHPUT" - MIG provisions instances as close to each other as + // possible for high + // throughput. Type string `json:"type,omitempty"` - // ForceSendFields is a list of field names (e.g. "AcceleratorType") to + // ForceSendFields is a list of field names (e.g. "AcceleratorTopology") to // unconditionally include in API requests. By default, fields with empty or // default values are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. ForceSendFields []string `json:"-"` - // NullFields is a list of field names (e.g. "AcceleratorType") to include in - // API requests with the JSON null value. By default, fields with empty values - // are omitted from API requests. See + // NullFields is a list of field names (e.g. "AcceleratorTopology") to include + // in API requests with the JSON null value. By default, fields with empty + // values are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } -func (s *ResourceCommitment) MarshalJSON() ([]byte, error) { - type NoMethod ResourceCommitment - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s ResourcePolicyWorkloadPolicy) MarshalJSON() ([]byte, error) { + type NoMethod ResourcePolicyWorkloadPolicy + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -type ResourceGroupReference struct { - // Group: A URI referencing one of the instance groups or network endpoint - // groups listed in the backend service. - Group string `json:"group,omitempty"` - // ForceSendFields is a list of field names (e.g. "Group") to unconditionally - // include in API requests. By default, fields with empty or default values are - // omitted from API requests. See +// ResourceStatus: Contains output only fields. +// Use this sub-message for actual values set on Instance attributes as +// compared +// to the value requested by the user (intent) in their instance CRUD calls. +type ResourceStatus struct { + // EffectiveInstanceMetadata: Output only. [Output Only] Effective metadata is + // a field that consolidates project, + // zonal instance settings, and instance-level predefined metadata keys + // to + // provide the overridden value for those metadata keys at the instance level. + EffectiveInstanceMetadata *ResourceStatusEffectiveInstanceMetadata `json:"effectiveInstanceMetadata,omitempty"` + // PhysicalHost: Output only. [Output Only] The precise location of your + // instance within the zone's data + // center, including the block, sub-block, and host. The field is formatted + // as + // follows: blockId/subBlockId/hostId. + PhysicalHost string `json:"physicalHost,omitempty"` + // PhysicalHostTopology: Output only. [Output Only] A series of fields + // containing the global name of the Compute + // Engine cluster, as well as the ID of the block, sub-block, and host on + // which the running instance is located. + PhysicalHostTopology *ResourceStatusPhysicalHostTopology `json:"physicalHostTopology,omitempty"` + // ReservationConsumptionInfo: Output only. [Output Only] Reservation + // information that the instance is consuming from. + ReservationConsumptionInfo *ResourceStatusReservationConsumptionInfo `json:"reservationConsumptionInfo,omitempty"` + Scheduling *ResourceStatusScheduling `json:"scheduling,omitempty"` + UpcomingMaintenance *UpcomingMaintenance `json:"upcomingMaintenance,omitempty"` + // ForceSendFields is a list of field names (e.g. "EffectiveInstanceMetadata") + // to unconditionally include in API requests. By default, fields with empty or + // default values are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. ForceSendFields []string `json:"-"` - // NullFields is a list of field names (e.g. "Group") to include in API - // requests with the JSON null value. By default, fields with empty values are - // omitted from API requests. See + // NullFields is a list of field names (e.g. "EffectiveInstanceMetadata") to + // include in API requests with the JSON null value. By default, fields with + // empty values are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } -func (s *ResourceGroupReference) MarshalJSON() ([]byte, error) { - type NoMethod ResourceGroupReference - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s ResourceStatus) MarshalJSON() ([]byte, error) { + type NoMethod ResourceStatus + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +// ResourceStatusEffectiveInstanceMetadata: Effective values of predefined +// metadata keys for an instance. +type ResourceStatusEffectiveInstanceMetadata struct { + // BlockProjectSshKeysMetadataValue: Effective block-project-ssh-keys value at + // Instance level. + BlockProjectSshKeysMetadataValue bool `json:"blockProjectSshKeysMetadataValue,omitempty"` + // EnableGuestAttributesMetadataValue: Effective enable-guest-attributes value + // at Instance level. + EnableGuestAttributesMetadataValue bool `json:"enableGuestAttributesMetadataValue,omitempty"` + // EnableOsInventoryMetadataValue: Effective enable-os-inventory value at + // Instance level. + EnableOsInventoryMetadataValue bool `json:"enableOsInventoryMetadataValue,omitempty"` + // EnableOsconfigMetadataValue: Effective enable-osconfig value at Instance + // level. + EnableOsconfigMetadataValue bool `json:"enableOsconfigMetadataValue,omitempty"` + // EnableOsloginMetadataValue: Effective enable-oslogin value at Instance + // level. + EnableOsloginMetadataValue bool `json:"enableOsloginMetadataValue,omitempty"` + // GceContainerDeclarationMetadataValue: Effective gce-container-declaration + // value at Instance level. + GceContainerDeclarationMetadataValue bool `json:"gceContainerDeclarationMetadataValue,omitempty"` + // SerialPortEnableMetadataValue: Effective serial-port-enable value at + // Instance level. + SerialPortEnableMetadataValue bool `json:"serialPortEnableMetadataValue,omitempty"` + // SerialPortLoggingEnableMetadataValue: Effective serial-port-logging-enable + // value at Instance level. + SerialPortLoggingEnableMetadataValue bool `json:"serialPortLoggingEnableMetadataValue,omitempty"` + // VmDnsSettingMetadataValue: Effective VM DNS setting at Instance level. + VmDnsSettingMetadataValue string `json:"vmDnsSettingMetadataValue,omitempty"` + // ForceSendFields is a list of field names (e.g. + // "BlockProjectSshKeysMetadataValue") to unconditionally include in API + // requests. By default, fields with empty or default values are omitted from + // API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + ForceSendFields []string `json:"-"` + // NullFields is a list of field names (e.g. + // "BlockProjectSshKeysMetadataValue") to include in API requests with the JSON + // null value. By default, fields with empty values are omitted from API + // requests. See https://pkg.go.dev/google.golang.org/api#hdr-NullFields for + // more details. + NullFields []string `json:"-"` } -type ResourcePoliciesScopedList struct { - // ResourcePolicies: A list of resourcePolicies contained in this scope. - ResourcePolicies []*ResourcePolicy `json:"resourcePolicies,omitempty"` - // Warning: Informational warning which replaces the list of resourcePolicies - // when the list is empty. - Warning *ResourcePoliciesScopedListWarning `json:"warning,omitempty"` - // ForceSendFields is a list of field names (e.g. "ResourcePolicies") to +func (s ResourceStatusEffectiveInstanceMetadata) MarshalJSON() ([]byte, error) { + type NoMethod ResourceStatusEffectiveInstanceMetadata + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +// ResourceStatusPhysicalHostTopology: Represents the physical host topology of +// the host on which the VM is +// running. +type ResourceStatusPhysicalHostTopology struct { + // AdditionalAttributes: Output only. [Output Only] Additional location + // information of the running instance. + AdditionalAttributes *ResourceStatusPhysicalHostTopologyAdditionalAttributes `json:"additionalAttributes,omitempty"` + // Block: [Output Only] The ID of the block in which the running instance + // is + // located. Instances within the same block experience low network latency. + Block string `json:"block,omitempty"` + // Cluster: [Output Only] The global name of the Compute Engine cluster where + // the + // running instance is located. + Cluster string `json:"cluster,omitempty"` + // Host: [Output Only] The ID of the host on which the running instance is + // located. + // Instances on the same host experience the lowest possible network + // latency. + Host string `json:"host,omitempty"` + // Subblock: [Output Only] The ID of the sub-block in which the running + // instance is + // located. Instances in the same sub-block experience lower network + // latency + // than instances in the same block. + Subblock string `json:"subblock,omitempty"` + // ForceSendFields is a list of field names (e.g. "AdditionalAttributes") to // unconditionally include in API requests. By default, fields with empty or // default values are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. ForceSendFields []string `json:"-"` - // NullFields is a list of field names (e.g. "ResourcePolicies") to include in - // API requests with the JSON null value. By default, fields with empty values - // are omitted from API requests. See + // NullFields is a list of field names (e.g. "AdditionalAttributes") to include + // in API requests with the JSON null value. By default, fields with empty + // values are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } -func (s *ResourcePoliciesScopedList) MarshalJSON() ([]byte, error) { - type NoMethod ResourcePoliciesScopedList - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s ResourceStatusPhysicalHostTopology) MarshalJSON() ([]byte, error) { + type NoMethod ResourceStatusPhysicalHostTopology + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -// ResourcePoliciesScopedListWarning: Informational warning which replaces the -// list of resourcePolicies when the list is empty. -type ResourcePoliciesScopedListWarning 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" - Warning about failed cleanup of transient changes made - // by a failed operation. - // "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was created. - // "DEPRECATED_TYPE_USED" - When deploying and at least one of the resources - // has a type marked as deprecated - // "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk that is - // larger than image size. - // "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the - // resources has a type marked as experimental - // "EXTERNAL_API_WARNING" - Warning that is present in an external api call - // "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been - // overridden. Deprecated unused field. - // "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an injected - // kernel, which is deprecated. - // "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB" - A WEIGHTED_MAGLEV backend - // service is associated with a health check that is not of type - // HTTP/HTTPS/HTTP2. - // "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a - // exceedingly large number of resources - // "LIST_OVERHEAD_QUOTA_EXCEED" - Resource can't be retrieved due to list - // overhead quota exceed which captures the amount of resources filtered out by - // user-defined list filter. - // "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type - // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is not - // assigned to an instance on the network. - // "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot ip - // forward. - // "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE" - The route's nextHopInstance - // URL refers to an instance that does not have an ipv6 interface on the same - // network as the route. - // "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL refers to - // an instance that does not exist. - // "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance URL - // refers to an instance that is not on the same network as the route. - // "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not have a - // status of RUNNING. - // "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to continue - // the process despite the mentioned error. - // "NO_RESULTS_ON_PAGE" - No results are present on a particular list page. - // "PARTIAL_SUCCESS" - Success is reported, but some results may be missing - // due to errors - // "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource that - // requires a TOS they have not accepted. - // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a resource is - // in use. - // "RESOURCE_NOT_DELETED" - One or more of the resources set to auto-delete - // could not be deleted because they were in use. - // "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is - // ignored. - // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in instance - // group manager is valid as such, but its application does not make a lot of - // sense, because it allows only single instance in instance group. - // "UNDECLARED_PROPERTIES" - When undeclared properties in the schema are - // present - // "UNREACHABLE" - A given scope cannot be reached. - 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 []*ResourcePoliciesScopedListWarningData `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 or default values are - // omitted from API requests. See +// ResourceStatusPhysicalHostTopologyAdditionalAttributes: Additional location +// information of the running instance. +type ResourceStatusPhysicalHostTopologyAdditionalAttributes struct { + // AcceleratorTopologyIds: Output only. The IDs of the accelerator topologies + // the instance belongs to. For + // example + // The key will be topologies like "4x4", "2x2x2" and the value will be + // the location ID of the topologies. + AcceleratorTopologyIds map[string]string `json:"acceleratorTopologyIds,omitempty"` + // ForceSendFields is a list of field names (e.g. "AcceleratorTopologyIds") to + // unconditionally include in API requests. By default, fields with empty or + // default values are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. 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. See + // NullFields is a list of field names (e.g. "AcceleratorTopologyIds") to + // include in API requests with the JSON null value. By default, fields with + // empty values are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } -func (s *ResourcePoliciesScopedListWarning) MarshalJSON() ([]byte, error) { - type NoMethod ResourcePoliciesScopedListWarning - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s ResourceStatusPhysicalHostTopologyAdditionalAttributes) MarshalJSON() ([]byte, error) { + type NoMethod ResourceStatusPhysicalHostTopologyAdditionalAttributes + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -type ResourcePoliciesScopedListWarningData 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 or default values are - // omitted from API requests. See +// ResourceStatusReservationConsumptionInfo: Reservation consumption +// information that the instance is consuming from. +type ResourceStatusReservationConsumptionInfo struct { + // ConsumedReservation: Output only. [Output Only] The full resource name of + // the reservation that this + // instance is consuming from. + ConsumedReservation string `json:"consumedReservation,omitempty"` + // ForceSendFields is a list of field names (e.g. "ConsumedReservation") to + // unconditionally include in API requests. By default, fields with empty or + // default values are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. 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. See + // NullFields is a list of field names (e.g. "ConsumedReservation") to include + // in API requests with the JSON null value. By default, fields with empty + // values are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } -func (s *ResourcePoliciesScopedListWarningData) MarshalJSON() ([]byte, error) { - type NoMethod ResourcePoliciesScopedListWarningData - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s ResourceStatusReservationConsumptionInfo) MarshalJSON() ([]byte, error) { + type NoMethod ResourceStatusReservationConsumptionInfo + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -// ResourcePolicy: Represents a Resource Policy resource. You can use resource -// policies to schedule actions for some Compute Engine resources. For example, -// you can use them to schedule persistent disk snapshots. -type ResourcePolicy struct { - // CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text format. +type ResourceStatusScheduling struct { + // AvailabilityDomain: Specifies the availability domain to place the instance + // in. The value + // must be a number between 1 and the number of availability domains + // specified in the spread placement policy attached to the instance. + AvailabilityDomain int64 `json:"availabilityDomain,omitempty"` + // ForceSendFields is a list of field names (e.g. "AvailabilityDomain") to + // unconditionally include in API requests. By default, fields with empty or + // default values are omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + ForceSendFields []string `json:"-"` + // NullFields is a list of field names (e.g. "AvailabilityDomain") to include + // in API requests with the JSON null value. By default, fields with empty + // values are omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s ResourceStatusScheduling) MarshalJSON() ([]byte, error) { + type NoMethod ResourceStatusScheduling + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +// Rollout: Rollout resource. +// +// A Rollout is a specific instance of a RolloutPlan. It represents a +// single +// execution of a strategy to roll out a specific resource. It also +// provides +// APIs to interact with the rollout. +type Rollout struct { + // CancellationTime: Output only. The timestamp at which the Rollout was + // cancelled. + CancellationTime string `json:"cancellationTime,omitempty"` + // CompletionTime: Output only. The timestamp at which the Rollout was + // completed. + CompletionTime string `json:"completionTime,omitempty"` + // CreationTimestamp: Output only. [Output Only] Creation timestamp + // inRFC3339 + // text format. CreationTimestamp string `json:"creationTimestamp,omitempty"` - Description string `json:"description,omitempty"` - // DiskConsistencyGroupPolicy: Resource policy for disk consistency groups. - DiskConsistencyGroupPolicy *ResourcePolicyDiskConsistencyGroupPolicy `json:"diskConsistencyGroupPolicy,omitempty"` - // GroupPlacementPolicy: Resource policy for instances for placement - // configuration. - GroupPlacementPolicy *ResourcePolicyGroupPlacementPolicy `json:"groupPlacementPolicy,omitempty"` - // Id: [Output Only] The unique identifier for the resource. This identifier is + // CurrentWaveNumber: Output only. The number of the currently running + // wave. + // Ex. 1 + CurrentWaveNumber int64 `json:"currentWaveNumber,omitempty,string"` + // Description: An optional description of this resource. Provide this property + // when you + // create the resource. + Description string `json:"description,omitempty"` + // Etag: Output only. etag of the Rollout + // Ex. abc1234 + Etag string `json:"etag,omitempty"` + // Id: Output only. [Output Only] The unique identifier for the resource. This + // identifier is // defined by the server. Id uint64 `json:"id,omitempty,string"` - // InstanceSchedulePolicy: Resource policy for scheduling instance operations. - InstanceSchedulePolicy *ResourcePolicyInstanceSchedulePolicy `json:"instanceSchedulePolicy,omitempty"` - // Kind: [Output Only] Type of the resource. Always compute#resource_policies - // for resource policies. + // Kind: Output only. [Output Only] Type of the resource. Always + // compute#rollout + // for rollouts. Kind string `json:"kind,omitempty"` - // Name: The name of the resource, provided by the client when initially - // creating the resource. The resource 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. - Name string `json:"name,omitempty"` - Region string `json:"region,omitempty"` - // ResourceStatus: [Output Only] The system status of the resource policy. - ResourceStatus *ResourcePolicyResourceStatus `json:"resourceStatus,omitempty"` - // SelfLink: [Output Only] Server-defined fully-qualified URL for this - // resource. + // Name: Name of the resource. Provided by the client when the resource is + // created. + // The name must be 1-63 characters long, and comply withRFC1035. + // 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. + Name string `json:"name,omitempty"` + // PauseTime: Output only. The timestamp at which the Rollout was paused. + PauseTime string `json:"pauseTime,omitempty"` + // ResumeTime: Output only. The timestamp at which the Rollout was resumed. + ResumeTime string `json:"resumeTime,omitempty"` + // RolloutEntity: Required. The resource being rolled out. + RolloutEntity *RolloutRolloutEntity `json:"rolloutEntity,omitempty"` + // RolloutPlan: Required. Rollout Plan used to model the Rollout. + // Ex. compute.googleapis.com/v1/projects/1234/rolloutPlans/rp1 + RolloutPlan string `json:"rolloutPlan,omitempty"` + // SelfLink: Output only. [Output Only] Server-defined fully-qualified URL for + // this resource. SelfLink string `json:"selfLink,omitempty"` - // SnapshotSchedulePolicy: Resource policy for persistent disks for creating - // snapshots. - SnapshotSchedulePolicy *ResourcePolicySnapshotSchedulePolicy `json:"snapshotSchedulePolicy,omitempty"` - // Status: [Output Only] The status of resource policy creation. + // SelfLinkWithId: Output only. [Output Only] Server-defined URL for this + // resource's resource id. + SelfLinkWithId string `json:"selfLinkWithId,omitempty"` + // State: Output only. The current state of the Rollout. // // Possible values: - // "CREATING" - Resource policy is being created. - // "DELETING" - Resource policy is being deleted. - // "EXPIRED" - Resource policy is expired and will not run again. - // "INVALID" - // "READY" - Resource policy is ready to be used. - Status string `json:"status,omitempty"` + // "CANCELLED" - The rollout is in a failure terminal state. + // "CANCELLING" - The rollout is being cancelled. + // "CANCEL_FAILED" - An attempted cancel operation was unsuccessful. + // "COMPLETED" - The rollout is in a successful terminal state. + // "COMPLETE_FAILED" - An attempted complete operation was unsuccessful. + // "COMPLETING" - The rollout is being marked as completed. + // "FAILED" - The rollout completed with failures. + // "PAUSED" - The rollout is paused. + // "PAUSE_FAILED" - An attempted pause operation was unsuccessful. + // "PAUSING" - The rollout is being paused. + // "PROCESSING" - A wave is being processed by the product. + // "READY" - The rollout has been successfully initialized and is ready to + // start. + // "RESUMING" - The rollout is being resumed after being paused. + // "ROLLBACK_WAVE_FAILED" - An attempted rollback operation failed to + // complete successfully. + // "ROLLING_BACK" - A wave rollback is in progress for this rollout. + // "STATE_UNSPECIFIED" - Undefined default state. Should never be exposed to + // users. + // "UNINITIALIZED" - The rollout has been created but is not yet ready to be + // started. + // "WAVE_FAILED" - The product failed to process the wave. + State string `json:"state,omitempty"` + // WaveDetails: Output only. Details about each wave of the rollout. + WaveDetails []*RolloutWaveDetails `json:"waveDetails,omitempty"` // ServerResponse contains the HTTP response code and headers from the server. googleapi.ServerResponse `json:"-"` - // ForceSendFields is a list of field names (e.g. "CreationTimestamp") to + // ForceSendFields is a list of field names (e.g. "CancellationTime") to // unconditionally include in API requests. By default, fields with empty or // default values are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. ForceSendFields []string `json:"-"` - // NullFields is a list of field names (e.g. "CreationTimestamp") to include in + // NullFields is a list of field names (e.g. "CancellationTime") to include in // API requests with the JSON null value. By default, fields with empty values // are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } -func (s *ResourcePolicy) MarshalJSON() ([]byte, error) { - type NoMethod ResourcePolicy - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s Rollout) MarshalJSON() ([]byte, error) { + type NoMethod Rollout + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -// ResourcePolicyAggregatedList: Contains a list of resourcePolicies. -type ResourcePolicyAggregatedList struct { - Etag string `json:"etag,omitempty"` - // Id: [Output Only] Unique identifier for the resource; defined by the server. - Id string `json:"id,omitempty"` - // Items: A list of ResourcePolicy resources. - Items map[string]ResourcePoliciesScopedList `json:"items,omitempty"` - // Kind: Type of resource. +// RolloutPlan: RolloutPlan resource. +// +// A RolloutPlan is the customer-defined strategy to divide a large-scale +// change +// into smaller increments, referred to as "waves". Each wave targets a +// specific +// portion of the overall affected area and defines criteria that must be +// met +// before progressing to the subsequent wave. +type RolloutPlan struct { + // CreationTimestamp: Output only. [Output Only] Creation timestamp + // inRFC3339 + // text format. + CreationTimestamp string `json:"creationTimestamp,omitempty"` + // Description: An optional description of this resource. Provide this property + // when you + // create the resource. + Description string `json:"description,omitempty"` + // Id: Output only. [Output Only] The unique identifier for the resource. This + // identifier is + // defined by the server. + Id uint64 `json:"id,omitempty,string"` + // Kind: Output only. [Output Only] Type of the resource. Always + // compute#rolloutPlan + // for rolloutPlans. 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"` - // SelfLink: [Output Only] Server-defined URL for this resource. + // LocationScope: The location scope of the rollout plan. If not specified, the + // location + // scope is considered as ZONAL. + // + // Possible values: + // "LOCATION_SCOPE_UNSPECIFIED" - Unspecified value. Considered as ZONAL. + // "REGIONAL" - Regional scope. + // "ZONAL" - Zonal scope. + LocationScope string `json:"locationScope,omitempty"` + // Name: Name of the resource. Provided by the client when the resource is + // created. + // The name must be 1-63 characters long, and comply withRFC1035. + // 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. + Name string `json:"name,omitempty"` + // SelfLink: Output only. [Output Only] Server-defined fully-qualified URL for + // this resource. SelfLink string `json:"selfLink,omitempty"` - // Unreachables: [Output Only] Unreachable resources. - Unreachables []string `json:"unreachables,omitempty"` - // Warning: [Output Only] Informational warning message. - Warning *ResourcePolicyAggregatedListWarning `json:"warning,omitempty"` + // SelfLinkWithId: Output only. [Output Only] Server-defined URL for this + // resource's resource id. + SelfLinkWithId string `json:"selfLinkWithId,omitempty"` + // Waves: Required. The waves included in this rollout plan. + Waves []*RolloutPlanWave `json:"waves,omitempty"` // ServerResponse contains the HTTP response code and headers from the server. googleapi.ServerResponse `json:"-"` - // ForceSendFields is a list of field names (e.g. "Etag") to unconditionally - // include in API requests. By default, fields with empty or default values are - // omitted from API requests. See + // ForceSendFields is a list of field names (e.g. "CreationTimestamp") to + // unconditionally include in API requests. By default, fields with empty or + // default values are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. ForceSendFields []string `json:"-"` - // NullFields is a list of field names (e.g. "Etag") to include in API requests - // with the JSON null value. By default, fields with empty values are omitted - // from API requests. See + // NullFields is a list of field names (e.g. "CreationTimestamp") to include in + // API requests with the JSON null value. By default, fields with empty values + // are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } -func (s *ResourcePolicyAggregatedList) MarshalJSON() ([]byte, error) { - type NoMethod ResourcePolicyAggregatedList - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s RolloutPlan) MarshalJSON() ([]byte, error) { + type NoMethod RolloutPlan + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -// ResourcePolicyAggregatedListWarning: [Output Only] Informational warning -// message. -type ResourcePolicyAggregatedListWarning 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" - Warning about failed cleanup of transient changes made - // by a failed operation. - // "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was created. - // "DEPRECATED_TYPE_USED" - When deploying and at least one of the resources - // has a type marked as deprecated - // "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk that is - // larger than image size. - // "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the - // resources has a type marked as experimental - // "EXTERNAL_API_WARNING" - Warning that is present in an external api call - // "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been - // overridden. Deprecated unused field. - // "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an injected - // kernel, which is deprecated. - // "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB" - A WEIGHTED_MAGLEV backend - // service is associated with a health check that is not of type - // HTTP/HTTPS/HTTP2. - // "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a - // exceedingly large number of resources - // "LIST_OVERHEAD_QUOTA_EXCEED" - Resource can't be retrieved due to list - // overhead quota exceed which captures the amount of resources filtered out by - // user-defined list filter. - // "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type - // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is not - // assigned to an instance on the network. - // "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot ip - // forward. - // "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE" - The route's nextHopInstance - // URL refers to an instance that does not have an ipv6 interface on the same - // network as the route. - // "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL refers to - // an instance that does not exist. - // "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance URL - // refers to an instance that is not on the same network as the route. - // "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not have a - // status of RUNNING. - // "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to continue - // the process despite the mentioned error. - // "NO_RESULTS_ON_PAGE" - No results are present on a particular list page. - // "PARTIAL_SUCCESS" - Success is reported, but some results may be missing - // due to errors - // "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource that - // requires a TOS they have not accepted. - // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a resource is - // in use. - // "RESOURCE_NOT_DELETED" - One or more of the resources set to auto-delete - // could not be deleted because they were in use. - // "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is - // ignored. - // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in instance - // group manager is valid as such, but its application does not make a lot of - // sense, because it allows only single instance in instance group. - // "UNDECLARED_PROPERTIES" - When undeclared properties in the schema are - // present - // "UNREACHABLE" - A given scope cannot be reached. - 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 []*ResourcePolicyAggregatedListWarningData `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 or default values are - // omitted from API requests. See +// RolloutPlanWave: A single wave in a rollout plan. +type RolloutPlanWave struct { + // DisplayName: Optional. The display name of this wave of the rollout plan. + DisplayName string `json:"displayName,omitempty"` + // Number: Output only. The wave number. + Number int64 `json:"number,omitempty,string"` + // OrchestrationOptions: Optional. The orchestration options for this wave. + OrchestrationOptions *RolloutPlanWaveOrchestrationOptions `json:"orchestrationOptions,omitempty"` + // Selectors: Required. The selectors for this wave. There is a logical AND + // between each selector + // defined in a wave, so a resource must satisfy the criteria of *all* + // the + // specified selectors to be in scope for the wave. + Selectors []*RolloutPlanWaveSelector `json:"selectors,omitempty"` + // Validation: Required. The validation to be performed at the end of this + // wave. + Validation *RolloutPlanWaveValidation `json:"validation,omitempty"` + // ForceSendFields is a list of field names (e.g. "DisplayName") to + // unconditionally include in API requests. By default, fields with empty or + // default values are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. 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. See + // NullFields is a list of field names (e.g. "DisplayName") to include in API + // requests with the JSON null value. By default, fields with empty values are + // omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } -func (s *ResourcePolicyAggregatedListWarning) MarshalJSON() ([]byte, error) { - type NoMethod ResourcePolicyAggregatedListWarning - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s RolloutPlanWave) MarshalJSON() ([]byte, error) { + type NoMethod RolloutPlanWave + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -type ResourcePolicyAggregatedListWarningData 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 +// RolloutPlanWaveOrchestrationOptions: Options to control the pace of +// orchestration of a wave. These options are +// required only if the resource being rolled out follows the +// Orchestrated +// pattern. +type RolloutPlanWaveOrchestrationOptions struct { + // Delays: Optional. Delays, if any, to be added between batches of projects. + // We allow + // multiple Delays to be specified, letting users set separate delays + // between batches of projects corresponding to different locations and + // batches of projects corresponding to the same location. + Delays []*RolloutPlanWaveOrchestrationOptionsDelay `json:"delays,omitempty"` + // MaxConcurrentLocations: Optional. Maximum number of locations to be + // orchestrated in parallel. + MaxConcurrentLocations int64 `json:"maxConcurrentLocations,omitempty,string"` + // MaxConcurrentResourcesPerLocation: Optional. Maximum number of resources to + // be orchestrated per location in + // parallel. + MaxConcurrentResourcesPerLocation int64 `json:"maxConcurrentResourcesPerLocation,omitempty,string"` + // ForceSendFields is a list of field names (e.g. "Delays") to unconditionally // include in API requests. By default, fields with empty or default values are // omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. 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. See + // NullFields is a list of field names (e.g. "Delays") to include in API + // requests with the JSON null value. By default, fields with empty values are + // omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } -func (s *ResourcePolicyAggregatedListWarningData) MarshalJSON() ([]byte, error) { - type NoMethod ResourcePolicyAggregatedListWarningData - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s RolloutPlanWaveOrchestrationOptions) MarshalJSON() ([]byte, error) { + type NoMethod RolloutPlanWaveOrchestrationOptions + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -// ResourcePolicyDailyCycle: Time window specified for daily operations. -type ResourcePolicyDailyCycle struct { - // DaysInCycle: Defines a schedule with units measured in days. The value - // determines how many days pass between the start of each cycle. - DaysInCycle int64 `json:"daysInCycle,omitempty"` - // Duration: [Output only] A predetermined duration for the window, - // automatically chosen to be the smallest possible in the given scenario. +// RolloutPlanWaveOrchestrationOptionsDelay: Options to control the delay, if +// any, between batches of projects. +type RolloutPlanWaveOrchestrationOptionsDelay struct { + // Delimiter: Optional. Controls whether the delay should only be added between + // batches of + // projects corresponding to different locations, or also between + // batches of projects corresponding to the same location. + // + // Must be set to DELIMITER_UNSPECIFIED if no delay is to be added. + // + // Possible values: + // "DELIMITER_BATCH" - The delay will also be added between batches of + // projects + // corresponding to the same location. + // "DELIMITER_LOCATION" - The delay will only be added between batches of + // projects + // corresponding to different locations. + // "DELIMITER_UNSPECIFIED" - No delay will be added between batches of + // projects. Processing will + // continue with the next batch as soon as the previous batch of LROs + // is done. + Delimiter string `json:"delimiter,omitempty"` + // Duration: Optional. The duration of the delay, if any, to be added between + // batches of + // projects. A zero duration corresponds to no delay. Duration string `json:"duration,omitempty"` - // StartTime: Start time of the window. This must be in UTC format that - // resolves to one of 00:00, 04:00, 08:00, 12:00, 16:00, or 20:00. For example, - // both 13:00-5 and 08:00 are valid. - StartTime string `json:"startTime,omitempty"` - // ForceSendFields is a list of field names (e.g. "DaysInCycle") to + // Type: Optional. Controls whether the specified duration is to be added at + // the end of + // each batch, or if the total processing time for each batch will be + // padded if needed to meet the specified duration. + // + // Must be set to TYPE_UNSPECIFIED if no delay is to be added. + // + // Possible values: + // "TYPE_MINIMUM" - The total processing time for each batch of projects will + // be padded + // if needed to meet the specified delay duration. + // "TYPE_OFFSET" - The specified delay will directly be added after each + // batch of + // projects as specified by the delimiter. + // "TYPE_UNSPECIFIED" - No delay will be added between batches of projects. + // Processing will + // continue with the next batch as soon as the previous batch of LROs + // is done. + Type string `json:"type,omitempty"` + // ForceSendFields is a list of field names (e.g. "Delimiter") to // unconditionally include in API requests. By default, fields with empty or // default values are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. ForceSendFields []string `json:"-"` - // NullFields is a list of field names (e.g. "DaysInCycle") to include in API + // NullFields is a list of field names (e.g. "Delimiter") to include in API // requests with the JSON null value. By default, fields with empty values are // omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } -func (s *ResourcePolicyDailyCycle) MarshalJSON() ([]byte, error) { - type NoMethod ResourcePolicyDailyCycle - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) -} - -// ResourcePolicyDiskConsistencyGroupPolicy: Resource policy for disk -// consistency groups. -type ResourcePolicyDiskConsistencyGroupPolicy struct { +func (s RolloutPlanWaveOrchestrationOptionsDelay) MarshalJSON() ([]byte, error) { + type NoMethod RolloutPlanWaveOrchestrationOptionsDelay + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -// ResourcePolicyGroupPlacementPolicy: A GroupPlacementPolicy specifies -// resource placement configuration. It specifies the failure bucket separation -type ResourcePolicyGroupPlacementPolicy struct { - // AvailabilityDomainCount: The number of availability domains to spread - // instances across. If two instances are in different availability domain, - // they are not in the same low latency network. - AvailabilityDomainCount int64 `json:"availabilityDomainCount,omitempty"` - // Collocation: Specifies network collocation - // - // Possible values: - // "COLLOCATED" - // "UNSPECIFIED_COLLOCATION" - Collocation string `json:"collocation,omitempty"` - // VmCount: Number of VMs in this placement group. Google does not recommend - // that you use this field unless you use a compact policy and you want your - // policy to work only if it contains this exact number of VMs. - VmCount int64 `json:"vmCount,omitempty"` - // ForceSendFields is a list of field names (e.g. "AvailabilityDomainCount") to +// RolloutPlanWaveSelector: A selector which specifies what resource(s) are +// included in a given wave. +type RolloutPlanWaveSelector struct { + // LocationSelector: Optional. Roll out to resources by Cloud locations. + LocationSelector *RolloutPlanWaveSelectorLocationSelector `json:"locationSelector,omitempty"` + // ResourceHierarchySelector: Optional. Roll out to resources by Cloud Resource + // Manager resource hierarchy. + ResourceHierarchySelector *RolloutPlanWaveSelectorResourceHierarchySelector `json:"resourceHierarchySelector,omitempty"` + // ForceSendFields is a list of field names (e.g. "LocationSelector") to // unconditionally include in API requests. By default, fields with empty or // default values are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. ForceSendFields []string `json:"-"` - // NullFields is a list of field names (e.g. "AvailabilityDomainCount") to - // include in API requests with the JSON null value. By default, fields with - // empty values are omitted from API requests. See + // NullFields is a list of field names (e.g. "LocationSelector") to include in + // API requests with the JSON null value. By default, fields with empty values + // are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } -func (s *ResourcePolicyGroupPlacementPolicy) MarshalJSON() ([]byte, error) { - type NoMethod ResourcePolicyGroupPlacementPolicy - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s RolloutPlanWaveSelector) MarshalJSON() ([]byte, error) { + type NoMethod RolloutPlanWaveSelector + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -// ResourcePolicyHourlyCycle: Time window specified for hourly operations. -type ResourcePolicyHourlyCycle struct { - // Duration: [Output only] Duration of the time window, automatically chosen to - // be smallest possible in the given scenario. - Duration string `json:"duration,omitempty"` - // HoursInCycle: Defines a schedule with units measured in hours. The value - // determines how many hours pass between the start of each cycle. - HoursInCycle int64 `json:"hoursInCycle,omitempty"` - // StartTime: Time within the window to start the operations. It must be in - // format "HH:MM", where HH : [00-23] and MM : [00-00] GMT. - StartTime string `json:"startTime,omitempty"` - // ForceSendFields is a list of field names (e.g. "Duration") to +// RolloutPlanWaveSelectorLocationSelector: Roll out to resources by location. +type RolloutPlanWaveSelectorLocationSelector struct { + // IncludedLocations: Optional. Example: "us-central1-a" + IncludedLocations []string `json:"includedLocations,omitempty"` + // ForceSendFields is a list of field names (e.g. "IncludedLocations") to // unconditionally include in API requests. By default, fields with empty or // default values are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. ForceSendFields []string `json:"-"` - // NullFields is a list of field names (e.g. "Duration") to include in API - // requests with the JSON null value. By default, fields with empty values are - // omitted from API requests. See + // NullFields is a list of field names (e.g. "IncludedLocations") to include in + // API requests with the JSON null value. By default, fields with empty values + // are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } -func (s *ResourcePolicyHourlyCycle) MarshalJSON() ([]byte, error) { - type NoMethod ResourcePolicyHourlyCycle - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s RolloutPlanWaveSelectorLocationSelector) MarshalJSON() ([]byte, error) { + type NoMethod RolloutPlanWaveSelectorLocationSelector + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -// ResourcePolicyInstanceSchedulePolicy: An InstanceSchedulePolicy specifies -// when and how frequent certain operations are performed on the instance. -type ResourcePolicyInstanceSchedulePolicy struct { - // ExpirationTime: The expiration time of the schedule. The timestamp is an - // RFC3339 string. - ExpirationTime string `json:"expirationTime,omitempty"` - // StartTime: The start time of the schedule. The timestamp is an RFC3339 - // string. - StartTime string `json:"startTime,omitempty"` - // TimeZone: Specifies the time zone to be used in interpreting - // Schedule.schedule. The value of this field must be a time zone name from the - // tz database: https://wikipedia.org/wiki/Tz_database. - TimeZone string `json:"timeZone,omitempty"` - // VmStartSchedule: Specifies the schedule for starting instances. - VmStartSchedule *ResourcePolicyInstanceSchedulePolicySchedule `json:"vmStartSchedule,omitempty"` - // VmStopSchedule: Specifies the schedule for stopping instances. - VmStopSchedule *ResourcePolicyInstanceSchedulePolicySchedule `json:"vmStopSchedule,omitempty"` - // ForceSendFields is a list of field names (e.g. "ExpirationTime") to +// RolloutPlanWaveSelectorResourceHierarchySelector: Roll out to resources by +// Cloud Resource Manager resource hierarchy +// nodes such as projects, folders, orgs. +type RolloutPlanWaveSelectorResourceHierarchySelector struct { + // IncludedFolders: Optional. Format: "folders/{folder_id}" + IncludedFolders []string `json:"includedFolders,omitempty"` + // IncludedOrganizations: Optional. Format: "organizations/{organization_id}" + IncludedOrganizations []string `json:"includedOrganizations,omitempty"` + // IncludedProjects: Optional. Format: "projects/{project_id}" + IncludedProjects []string `json:"includedProjects,omitempty"` + // ForceSendFields is a list of field names (e.g. "IncludedFolders") to // unconditionally include in API requests. By default, fields with empty or // default values are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. ForceSendFields []string `json:"-"` - // NullFields is a list of field names (e.g. "ExpirationTime") to include in + // NullFields is a list of field names (e.g. "IncludedFolders") to include in // API requests with the JSON null value. By default, fields with empty values // are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } -func (s *ResourcePolicyInstanceSchedulePolicy) MarshalJSON() ([]byte, error) { - type NoMethod ResourcePolicyInstanceSchedulePolicy - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s RolloutPlanWaveSelectorResourceHierarchySelector) MarshalJSON() ([]byte, error) { + type NoMethod RolloutPlanWaveSelectorResourceHierarchySelector + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -// ResourcePolicyInstanceSchedulePolicySchedule: Schedule for an instance -// operation. -type ResourcePolicyInstanceSchedulePolicySchedule struct { - // Schedule: Specifies the frequency for the operation, using the unix-cron - // format. - Schedule string `json:"schedule,omitempty"` - // ForceSendFields is a list of field names (e.g. "Schedule") to +// RolloutPlanWaveValidation: The validation to be performed before progressing +// to the next wave. +type RolloutPlanWaveValidation struct { + // TimeBasedValidationMetadata: Optional. Metadata required if type = "time". + TimeBasedValidationMetadata *RolloutPlanWaveValidationTimeBasedValidationMetadata `json:"timeBasedValidationMetadata,omitempty"` + // Type: Required. The type of the validation. If a type of validation is + // associated with + // a metadata object, the appropriate metadata field mapping to the + // validation type must be provided in the validation message. Possible + // values are in quotes below alongside an explanation: + // "manual": The system waits for an end-user approval API before + // progressing to the next wave. + // "time": The system waits for a user specified duration before + // progressing to the next wave. TimeBasedValidation must be provided. + Type string `json:"type,omitempty"` + // ForceSendFields is a list of field names (e.g. + // "TimeBasedValidationMetadata") to unconditionally include in API requests. + // By default, fields with empty or default values are omitted from API + // requests. See https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields + // for more details. + ForceSendFields []string `json:"-"` + // NullFields is a list of field names (e.g. "TimeBasedValidationMetadata") to + // include in API requests with the JSON null value. By default, fields with + // empty values are omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s RolloutPlanWaveValidation) MarshalJSON() ([]byte, error) { + type NoMethod RolloutPlanWaveValidation + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +// RolloutPlanWaveValidationTimeBasedValidationMetadata: Metadata required if +// type = "time". +type RolloutPlanWaveValidationTimeBasedValidationMetadata struct { + // WaitDuration: Optional. The duration that the system waits in between waves. + // This wait starts + // after all changes in the wave are rolled out. + WaitDuration string `json:"waitDuration,omitempty"` + // ForceSendFields is a list of field names (e.g. "WaitDuration") to // unconditionally include in API requests. By default, fields with empty or // default values are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. ForceSendFields []string `json:"-"` - // NullFields is a list of field names (e.g. "Schedule") to include in API + // NullFields is a list of field names (e.g. "WaitDuration") to include in API // requests with the JSON null value. By default, fields with empty values are // omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } -func (s *ResourcePolicyInstanceSchedulePolicySchedule) MarshalJSON() ([]byte, error) { - type NoMethod ResourcePolicyInstanceSchedulePolicySchedule - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s RolloutPlanWaveValidationTimeBasedValidationMetadata) MarshalJSON() ([]byte, error) { + type NoMethod RolloutPlanWaveValidationTimeBasedValidationMetadata + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -type ResourcePolicyList struct { +// RolloutPlansListResponse: Contains a list of RolloutPlan resources. +type RolloutPlansListResponse struct { Etag string `json:"etag,omitempty"` - // Id: [Output Only] The unique identifier for the resource. This identifier is - // defined by the server. + // Id: [Output Only] Unique identifier for the resource; defined by the server. Id string `json:"id,omitempty"` - // Items: [Output Only] A list of ResourcePolicy resources. - Items []*ResourcePolicy `json:"items,omitempty"` - // Kind: [Output Only] Type of resource.Always compute#resourcePoliciesList for - // listsof resourcePolicies - Kind string `json:"kind,omitempty"` + // Items: A list of RolloutPlan resources. + Items []*RolloutPlan `json:"items,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. + // results for + // list requests. If the number of results is larger thanmaxResults, 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"` - // SelfLink: [Output Only] Server-defined URL for this resource. + // SelfLink: Output only. [Output Only] Server-defined URL for this resource. SelfLink string `json:"selfLink,omitempty"` + // Unreachables: Output only. [Output Only] Unreachable + // resources. + // end_interface: MixerListResponseWithEtagBuilder + Unreachables []string `json:"unreachables,omitempty"` // Warning: [Output Only] Informational warning message. - Warning *ResourcePolicyListWarning `json:"warning,omitempty"` + Warning *RolloutPlansListResponseWarning `json:"warning,omitempty"` // ServerResponse contains the HTTP response code and headers from the server. googleapi.ServerResponse `json:"-"` @@ -36591,76 +60989,99 @@ type ResourcePolicyList struct { NullFields []string `json:"-"` } -func (s *ResourcePolicyList) MarshalJSON() ([]byte, error) { - type NoMethod ResourcePolicyList - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s RolloutPlansListResponse) MarshalJSON() ([]byte, error) { + type NoMethod RolloutPlansListResponse + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -// ResourcePolicyListWarning: [Output Only] Informational warning message. -type ResourcePolicyListWarning 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. +// RolloutPlansListResponseWarning: [Output Only] Informational warning +// message. +type RolloutPlansListResponseWarning 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" - Warning about failed cleanup of transient changes made - // by a failed operation. + // by a failed + // operation. // "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was created. // "DEPRECATED_TYPE_USED" - When deploying and at least one of the resources - // has a type marked as deprecated + // has a type marked as + // deprecated // "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk that is // larger than image size. // "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the - // resources has a type marked as experimental + // resources has a type marked as + // experimental // "EXTERNAL_API_WARNING" - Warning that is present in an external api call // "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been - // overridden. Deprecated unused field. + // overridden. + // Deprecated unused field. // "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an injected // kernel, which is deprecated. // "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB" - A WEIGHTED_MAGLEV backend - // service is associated with a health check that is not of type - // HTTP/HTTPS/HTTP2. + // service is associated with a health check that is + // not of type HTTP/HTTPS/HTTP2. // "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a // exceedingly large number of resources // "LIST_OVERHEAD_QUOTA_EXCEED" - Resource can't be retrieved due to list - // overhead quota exceed which captures the amount of resources filtered out by + // overhead quota exceed + // which captures the amount of resources filtered out by // user-defined list filter. // "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is not - // assigned to an instance on the network. + // assigned to an instance on the + // network. // "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot ip // forward. // "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE" - The route's nextHopInstance - // URL refers to an instance that does not have an ipv6 interface on the same - // network as the route. + // URL refers to an instance that does not have an + // ipv6 interface on the same network as the route. // "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL refers to // an instance that does not exist. // "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance URL - // refers to an instance that is not on the same network as the route. + // refers to an instance that is not on the + // same network as the route. // "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not have a // status of RUNNING. // "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to continue - // the process despite the mentioned error. + // the process despite + // the mentioned error. // "NO_RESULTS_ON_PAGE" - No results are present on a particular list page. // "PARTIAL_SUCCESS" - Success is reported, but some results may be missing // due to errors + // "QUOTA_INFO_UNAVAILABLE" - Quota information is not available to client + // requests (e.g: + // regions.list). // "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource that - // requires a TOS they have not accepted. + // requires a TOS they have not + // accepted. // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a resource is // in use. // "RESOURCE_NOT_DELETED" - One or more of the resources set to auto-delete - // could not be deleted because they were in use. + // could not be deleted + // because they were in use. // "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is // ignored. // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in instance - // group manager is valid as such, but its application does not make a lot of - // sense, because it allows only single instance in instance group. + // group manager is valid as such, but + // its application does not make a lot of sense, because it allows only + // single instance in instance group. // "UNDECLARED_PROPERTIES" - When undeclared properties in the schema are // present // "UNREACHABLE" - A given scope cannot be reached. 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 []*ResourcePolicyListWarningData `json:"data,omitempty"` + // Data: [Output Only] Metadata about this warning in key: + // value format. For example: + // + // "data": [ + // { + // "key": "scope", + // "value": "zones/us-east1-d" + // } + Data []*RolloutPlansListResponseWarningData `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 @@ -36676,19 +61097,22 @@ type ResourcePolicyListWarning struct { NullFields []string `json:"-"` } -func (s *ResourcePolicyListWarning) MarshalJSON() ([]byte, error) { - type NoMethod ResourcePolicyListWarning - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s RolloutPlansListResponseWarning) MarshalJSON() ([]byte, error) { + type NoMethod RolloutPlansListResponseWarning + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -type ResourcePolicyListWarningData 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). +type RolloutPlansListResponseWarningData 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"` @@ -36705,360 +61129,552 @@ type ResourcePolicyListWarningData struct { NullFields []string `json:"-"` } -func (s *ResourcePolicyListWarningData) MarshalJSON() ([]byte, error) { - type NoMethod ResourcePolicyListWarningData - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s RolloutPlansListResponseWarningData) MarshalJSON() ([]byte, error) { + type NoMethod RolloutPlansListResponseWarningData + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -// ResourcePolicyResourceStatus: Contains output only fields. Use this -// sub-message for all output fields set on ResourcePolicy. The internal -// structure of this "status" field should mimic the structure of -// ResourcePolicy proto specification. -type ResourcePolicyResourceStatus struct { - // InstanceSchedulePolicy: [Output Only] Specifies a set of output values - // reffering to the instance_schedule_policy system status. This field should - // have the same name as corresponding policy field. - InstanceSchedulePolicy *ResourcePolicyResourceStatusInstanceSchedulePolicyStatus `json:"instanceSchedulePolicy,omitempty"` - // ForceSendFields is a list of field names (e.g. "InstanceSchedulePolicy") to +// RolloutRolloutEntity: Specifications of the resource to roll out. +type RolloutRolloutEntity struct { + // OrchestratedEntity: Optional. Entity details for products using the + // Orchestrated Integration model. + OrchestratedEntity *RolloutRolloutEntityOrchestratedEntity `json:"orchestratedEntity,omitempty"` + // ForceSendFields is a list of field names (e.g. "OrchestratedEntity") to // unconditionally include in API requests. By default, fields with empty or // default values are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. ForceSendFields []string `json:"-"` - // NullFields is a list of field names (e.g. "InstanceSchedulePolicy") to - // include in API requests with the JSON null value. By default, fields with - // empty values are omitted from API requests. See + // NullFields is a list of field names (e.g. "OrchestratedEntity") to include + // in API requests with the JSON null value. By default, fields with empty + // values are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } -func (s *ResourcePolicyResourceStatus) MarshalJSON() ([]byte, error) { - type NoMethod ResourcePolicyResourceStatus - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s RolloutRolloutEntity) MarshalJSON() ([]byte, error) { + type NoMethod RolloutRolloutEntity + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -type ResourcePolicyResourceStatusInstanceSchedulePolicyStatus struct { - // LastRunStartTime: [Output Only] The last time the schedule successfully ran. - // The timestamp is an RFC3339 string. - LastRunStartTime string `json:"lastRunStartTime,omitempty"` - // NextRunStartTime: [Output Only] The next time the schedule is planned to - // run. The actual time might be slightly different. The timestamp is an - // RFC3339 string. - NextRunStartTime string `json:"nextRunStartTime,omitempty"` - // ForceSendFields is a list of field names (e.g. "LastRunStartTime") to +// RolloutRolloutEntityOrchestratedEntity: This message is used if the resource +// type follows the Orchestrated +// integration model with ProgressiveRollout. +type RolloutRolloutEntityOrchestratedEntity struct { + // ConflictBehavior: Required. Specifies the behavior of the Rollout if an out + // of band update is + // detected in a project during a Rollout. It can be one of the + // following + // values: + // 1) overwrite : Overwrite the local value with the rollout value. + // 2) no_overwrite : Do not overwrite the local value with the rollout + // value. + ConflictBehavior string `json:"conflictBehavior,omitempty"` + // OrchestrationAction: Required. Orchestration action during the Rollout. It + // can be one of the following + // values: + // 1) "update": Resources will be updated by the rollout. + // 2) "delete": Resources will be deleted by the rollout. + OrchestrationAction string `json:"orchestrationAction,omitempty"` + // OrchestrationSource: Required. Fully qualified resource name of the resource + // which contains the source + // of truth of the configuration being rolled out across + // locations/projects. For example, in the case of a global Rollout which + // is applied across regions, this contains the name of the global + // resource created by the user which contains a payload for a resource + // that is orchestrated across regions. This follows the following + // format: + // //.googleapis.com/projects//locations/global// + // e.g. + // //osconfig.googleapis.com/projects/1/locations/global/policyOrchestrators/po1 + OrchestrationSource string `json:"orchestrationSource,omitempty"` + // ForceSendFields is a list of field names (e.g. "ConflictBehavior") to // unconditionally include in API requests. By default, fields with empty or // default values are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. ForceSendFields []string `json:"-"` - // NullFields is a list of field names (e.g. "LastRunStartTime") to include in + // NullFields is a list of field names (e.g. "ConflictBehavior") to include in // API requests with the JSON null value. By default, fields with empty values // are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } -func (s *ResourcePolicyResourceStatusInstanceSchedulePolicyStatus) MarshalJSON() ([]byte, error) { - type NoMethod ResourcePolicyResourceStatusInstanceSchedulePolicyStatus - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s RolloutRolloutEntityOrchestratedEntity) MarshalJSON() ([]byte, error) { + type NoMethod RolloutRolloutEntityOrchestratedEntity + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -// ResourcePolicySnapshotSchedulePolicy: A snapshot schedule policy specifies -// when and how frequently snapshots are to be created for the target disk. -// Also specifies how many and how long these scheduled snapshots should be -// retained. -type ResourcePolicySnapshotSchedulePolicy struct { - // RetentionPolicy: Retention policy applied to snapshots created by this - // resource policy. - RetentionPolicy *ResourcePolicySnapshotSchedulePolicyRetentionPolicy `json:"retentionPolicy,omitempty"` - // Schedule: A Vm Maintenance Policy specifies what kind of infrastructure - // maintenance we are allowed to perform on this VM and when. Schedule that is - // applied to disks covered by this policy. - Schedule *ResourcePolicySnapshotSchedulePolicySchedule `json:"schedule,omitempty"` - // SnapshotProperties: Properties with which snapshots are created such as - // labels, encryption keys. - SnapshotProperties *ResourcePolicySnapshotSchedulePolicySnapshotProperties `json:"snapshotProperties,omitempty"` - // ForceSendFields is a list of field names (e.g. "RetentionPolicy") to +// RolloutWaveDetails: Additional metadata about the status of each wave +// provided by the server. +type RolloutWaveDetails struct { + // OrchestratedWaveDetails: Output only. Additional details of the wave for + // products using the Orchestrated + // Integration model. + OrchestratedWaveDetails *RolloutWaveDetailsOrchestratedWaveDetails `json:"orchestratedWaveDetails,omitempty"` + // WaveDisplayName: Output only. Wave name. + // Ex. wave1 + WaveDisplayName string `json:"waveDisplayName,omitempty"` + // WaveNumber: Output only. System generated number for the wave. + WaveNumber int64 `json:"waveNumber,omitempty,string"` + // ForceSendFields is a list of field names (e.g. "OrchestratedWaveDetails") to // unconditionally include in API requests. By default, fields with empty or // default values are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. ForceSendFields []string `json:"-"` - // NullFields is a list of field names (e.g. "RetentionPolicy") to include in - // API requests with the JSON null value. By default, fields with empty values - // are omitted from API requests. See + // NullFields is a list of field names (e.g. "OrchestratedWaveDetails") to + // include in API requests with the JSON null value. By default, fields with + // empty values are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } -func (s *ResourcePolicySnapshotSchedulePolicy) MarshalJSON() ([]byte, error) { - type NoMethod ResourcePolicySnapshotSchedulePolicy - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s RolloutWaveDetails) MarshalJSON() ([]byte, error) { + type NoMethod RolloutWaveDetails + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -// ResourcePolicySnapshotSchedulePolicyRetentionPolicy: Policy for retention of -// scheduled snapshots. -type ResourcePolicySnapshotSchedulePolicyRetentionPolicy struct { - // MaxRetentionDays: Maximum age of the snapshot that is allowed to be kept. - MaxRetentionDays int64 `json:"maxRetentionDays,omitempty"` - // OnSourceDiskDelete: Specifies the behavior to apply to scheduled snapshots - // when the source disk is deleted. - // - // Possible values: - // "APPLY_RETENTION_POLICY" - // "KEEP_AUTO_SNAPSHOTS" - // "UNSPECIFIED_ON_SOURCE_DISK_DELETE" - OnSourceDiskDelete string `json:"onSourceDiskDelete,omitempty"` - // ForceSendFields is a list of field names (e.g. "MaxRetentionDays") to +// RolloutWaveDetailsOrchestratedWaveDetails: Details of the wave for products +// using the Orchestrated integration +// model. +type RolloutWaveDetailsOrchestratedWaveDetails struct { + // CompletedResourcesCount: Output only. Resource completed so far. + CompletedResourcesCount int64 `json:"completedResourcesCount,omitempty,string"` + // EstimatedCompletionTime: Output only. Estimated timestamp at which the wave + // will complete. Extrapolated from + // current progress. + EstimatedCompletionTime string `json:"estimatedCompletionTime,omitempty"` + // EstimatedTotalResourcesCount: Output only. Estimated total count of + // resources. + EstimatedTotalResourcesCount int64 `json:"estimatedTotalResourcesCount,omitempty,string"` + // FailedLocations: Output only. Locations that failed during orchestration, + // and ProgressiveRollout + // stopped retrying. There may be some successful resources rolled out in + // the wave as the location may have failed later in the Rollout. + FailedLocations []string `json:"failedLocations,omitempty"` + // FailedResourcesCount: Output only. Resources failed. + FailedResourcesCount int64 `json:"failedResourcesCount,omitempty,string"` + // LocationStatus: Output only. Status of each location in the wave. Map keys + // (locations) must be + // specified like "us-east1" or "asia-west1-a". + LocationStatus map[string]RolloutWaveDetailsOrchestratedWaveDetailsLocationStatus `json:"locationStatus,omitempty"` + // ForceSendFields is a list of field names (e.g. "CompletedResourcesCount") to // unconditionally include in API requests. By default, fields with empty or // default values are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. ForceSendFields []string `json:"-"` - // NullFields is a list of field names (e.g. "MaxRetentionDays") to include in - // API requests with the JSON null value. By default, fields with empty values - // are omitted from API requests. See + // NullFields is a list of field names (e.g. "CompletedResourcesCount") to + // include in API requests with the JSON null value. By default, fields with + // empty values are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } -func (s *ResourcePolicySnapshotSchedulePolicyRetentionPolicy) MarshalJSON() ([]byte, error) { - type NoMethod ResourcePolicySnapshotSchedulePolicyRetentionPolicy - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s RolloutWaveDetailsOrchestratedWaveDetails) MarshalJSON() ([]byte, error) { + type NoMethod RolloutWaveDetailsOrchestratedWaveDetails + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -// ResourcePolicySnapshotSchedulePolicySchedule: A schedule for disks where the -// schedueled operations are performed. -type ResourcePolicySnapshotSchedulePolicySchedule struct { - DailySchedule *ResourcePolicyDailyCycle `json:"dailySchedule,omitempty"` - HourlySchedule *ResourcePolicyHourlyCycle `json:"hourlySchedule,omitempty"` - WeeklySchedule *ResourcePolicyWeeklyCycle `json:"weeklySchedule,omitempty"` - // ForceSendFields is a list of field names (e.g. "DailySchedule") to - // unconditionally include in API requests. By default, fields with empty or - // default values are omitted from API requests. See - // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more - // details. - ForceSendFields []string `json:"-"` - // NullFields is a list of field names (e.g. "DailySchedule") to include in API - // requests with the JSON null value. By default, fields with empty values are +// RolloutWaveDetailsOrchestratedWaveDetailsLocationStatus: Represents the +// status of a location in a wave. +type RolloutWaveDetailsOrchestratedWaveDetailsLocationStatus struct { + // State: Output only. Location state of the wave. + // + // Possible values: + // "STATE_FAILED" - Work on the wave failed. + // "STATE_IN_PROGRESS" - Work on the wave is in progress. + // "STATE_PENDING" - Work on the wave is pending. + // "STATE_SKIPPED" - Work on the wave was canceled or skipped. + // "STATE_SUCCEEDED" - Work on the wave succeeded. + // "STATE_UNSPECIFIED" - Undefined default state. Should never be exposed to + // users. + State string `json:"state,omitempty"` + // ForceSendFields is a list of field names (e.g. "State") to unconditionally + // include in API requests. By default, fields with empty or default values are // omitted from API requests. See - // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. - NullFields []string `json:"-"` -} - -func (s *ResourcePolicySnapshotSchedulePolicySchedule) MarshalJSON() ([]byte, error) { - type NoMethod ResourcePolicySnapshotSchedulePolicySchedule - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) -} - -// ResourcePolicySnapshotSchedulePolicySnapshotProperties: Specified snapshot -// properties for scheduled snapshots created by this policy. -type ResourcePolicySnapshotSchedulePolicySnapshotProperties struct { - // ChainName: Chain name that the snapshot is created in. - ChainName string `json:"chainName,omitempty"` - // GuestFlush: Indication to perform a 'guest aware' snapshot. - GuestFlush bool `json:"guestFlush,omitempty"` - // Labels: Labels to apply to scheduled snapshots. These can be later modified - // by the setLabels method. Label values may be empty. - Labels map[string]string `json:"labels,omitempty"` - // StorageLocations: Cloud Storage bucket storage location of the auto snapshot - // (regional or multi-regional). - StorageLocations []string `json:"storageLocations,omitempty"` - // ForceSendFields is a list of field names (e.g. "ChainName") to - // unconditionally include in API requests. By default, fields with empty or - // default values are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. ForceSendFields []string `json:"-"` - // NullFields is a list of field names (e.g. "ChainName") to include in API + // NullFields is a list of field names (e.g. "State") to include in API // requests with the JSON null value. By default, fields with empty values are // omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } -func (s *ResourcePolicySnapshotSchedulePolicySnapshotProperties) MarshalJSON() ([]byte, error) { - type NoMethod ResourcePolicySnapshotSchedulePolicySnapshotProperties - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s RolloutWaveDetailsOrchestratedWaveDetailsLocationStatus) MarshalJSON() ([]byte, error) { + type NoMethod RolloutWaveDetailsOrchestratedWaveDetailsLocationStatus + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -// ResourcePolicyWeeklyCycle: Time window specified for weekly operations. -type ResourcePolicyWeeklyCycle struct { - // DayOfWeeks: Up to 7 intervals/windows, one for each day of the week. - DayOfWeeks []*ResourcePolicyWeeklyCycleDayOfWeek `json:"dayOfWeeks,omitempty"` - // ForceSendFields is a list of field names (e.g. "DayOfWeeks") to - // unconditionally include in API requests. By default, fields with empty or - // default values are omitted from API requests. See +type RolloutsListResponse struct { + Etag string `json:"etag,omitempty"` + // Id: [Output Only] Unique identifier for the resource; defined by the server. + Id string `json:"id,omitempty"` + // Items: A list of Rollout resources. + Items []*Rollout `json:"items,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 thanmaxResults, 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"` + // SelfLink: Output only. [Output Only] Server-defined URL for this resource. + SelfLink string `json:"selfLink,omitempty"` + // Unreachables: Output only. [Output Only] Unreachable + // resources. + // end_interface: MixerListResponseWithEtagBuilder + Unreachables []string `json:"unreachables,omitempty"` + // Warning: [Output Only] Informational warning message. + Warning *RolloutsListResponseWarning `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. "Etag") to unconditionally + // include in API requests. By default, fields with empty or default values are + // omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. ForceSendFields []string `json:"-"` - // NullFields is a list of field names (e.g. "DayOfWeeks") to include in API - // requests with the JSON null value. By default, fields with empty values are - // omitted from API requests. See + // NullFields is a list of field names (e.g. "Etag") to include in API requests + // with the JSON null value. By default, fields with empty values are omitted + // from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } -func (s *ResourcePolicyWeeklyCycle) MarshalJSON() ([]byte, error) { - type NoMethod ResourcePolicyWeeklyCycle - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s RolloutsListResponse) MarshalJSON() ([]byte, error) { + type NoMethod RolloutsListResponse + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -type ResourcePolicyWeeklyCycleDayOfWeek struct { - // Day: Defines a schedule that runs on specific days of the week. Specify one - // or more days. The following options are available: MONDAY, TUESDAY, - // WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, SUNDAY. +// RolloutsListResponseWarning: [Output Only] Informational warning message. +type RolloutsListResponseWarning 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: - // "FRIDAY" - // "INVALID" - // "MONDAY" - // "SATURDAY" - // "SUNDAY" - // "THURSDAY" - // "TUESDAY" - // "WEDNESDAY" - Day string `json:"day,omitempty"` - // Duration: [Output only] Duration of the time window, automatically chosen to - // be smallest possible in the given scenario. - Duration string `json:"duration,omitempty"` - // StartTime: Time within the window to start the operations. It must be in - // format "HH:MM", where HH : [00-23] and MM : [00-00] GMT. - StartTime string `json:"startTime,omitempty"` - // ForceSendFields is a list of field names (e.g. "Day") to unconditionally + // "CLEANUP_FAILED" - Warning about failed cleanup of transient changes made + // by a failed + // operation. + // "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was created. + // "DEPRECATED_TYPE_USED" - When deploying and at least one of the resources + // has a type marked as + // deprecated + // "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk that is + // larger than image size. + // "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the + // resources has a type marked as + // experimental + // "EXTERNAL_API_WARNING" - Warning that is present in an external api call + // "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been + // overridden. + // Deprecated unused field. + // "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an injected + // kernel, which is deprecated. + // "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB" - A WEIGHTED_MAGLEV backend + // service is associated with a health check that is + // not of type HTTP/HTTPS/HTTP2. + // "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a + // exceedingly large number of resources + // "LIST_OVERHEAD_QUOTA_EXCEED" - Resource can't be retrieved due to list + // overhead quota exceed + // which captures the amount of resources filtered out by + // user-defined list filter. + // "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type + // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is not + // assigned to an instance on the + // network. + // "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot ip + // forward. + // "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE" - The route's nextHopInstance + // URL refers to an instance that does not have an + // ipv6 interface on the same network as the route. + // "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL refers to + // an instance that does not exist. + // "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance URL + // refers to an instance that is not on the + // same network as the route. + // "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not have a + // status of RUNNING. + // "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to continue + // the process despite + // the mentioned error. + // "NO_RESULTS_ON_PAGE" - No results are present on a particular list page. + // "PARTIAL_SUCCESS" - Success is reported, but some results may be missing + // due to errors + // "QUOTA_INFO_UNAVAILABLE" - Quota information is not available to client + // requests (e.g: + // regions.list). + // "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource that + // requires a TOS they have not + // accepted. + // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a resource is + // in use. + // "RESOURCE_NOT_DELETED" - One or more of the resources set to auto-delete + // could not be deleted + // because they were in use. + // "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is + // ignored. + // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in instance + // group manager is valid as such, but + // its application does not make a lot of sense, because it allows only + // single instance in instance group. + // "UNDECLARED_PROPERTIES" - When undeclared properties in the schema are + // present + // "UNREACHABLE" - A given scope cannot be reached. + 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 []*RolloutsListResponseWarningData `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 or default values are // omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. ForceSendFields []string `json:"-"` - // NullFields is a list of field names (e.g. "Day") to include in API requests + // 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. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } -func (s *ResourcePolicyWeeklyCycleDayOfWeek) MarshalJSON() ([]byte, error) { - type NoMethod ResourcePolicyWeeklyCycleDayOfWeek - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s RolloutsListResponseWarning) MarshalJSON() ([]byte, error) { + type NoMethod RolloutsListResponseWarning + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -// ResourceStatus: Contains output only fields. Use this sub-message for actual -// values set on Instance attributes as compared to the value requested by the -// user (intent) in their instance CRUD calls. -type ResourceStatus struct { - // PhysicalHost: [Output Only] An opaque ID of the host on which the VM is - // running. - PhysicalHost string `json:"physicalHost,omitempty"` - UpcomingMaintenance *UpcomingMaintenance `json:"upcomingMaintenance,omitempty"` - // ForceSendFields is a list of field names (e.g. "PhysicalHost") to - // unconditionally include in API requests. By default, fields with empty or - // default values are omitted from API requests. See +type RolloutsListResponseWarningData 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 or default values are + // omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. ForceSendFields []string `json:"-"` - // NullFields is a list of field names (e.g. "PhysicalHost") to include in API - // requests with the JSON null value. By default, fields with empty values are - // omitted from API requests. See + // 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. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } -func (s *ResourceStatus) MarshalJSON() ([]byte, error) { - type NoMethod ResourceStatus - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s RolloutsListResponseWarningData) MarshalJSON() ([]byte, error) { + type NoMethod RolloutsListResponseWarningData + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -// Route: Represents a Route resource. A route defines a path from VM instances -// in the VPC network to a specific destination. This destination can be inside -// or outside the VPC network. For more information, read the Routes overview. +// Route: Represents a Route resource. +// +// A route defines a path from VM instances in the VPC network to a +// specific +// destination. This destination can be inside or outside the VPC network. +// For more information, read theRoutes overview. type Route struct { - // AsPaths: [Output Only] AS path. + // AsPaths: Output only. [Output Only] AS path. AsPaths []*RouteAsPath `json:"asPaths,omitempty"` - // CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text format. + // CreationTimestamp: Output only. [Output Only] Creation timestamp + // inRFC3339 + // text format. CreationTimestamp string `json:"creationTimestamp,omitempty"` // Description: An optional description of this resource. Provide this field - // when you create the resource. + // when you + // create the resource. Description string `json:"description,omitempty"` // DestRange: The destination range of outgoing packets that this route applies - // to. Both IPv4 and IPv6 are supported. Must specify an IPv4 range (e.g. - // 192.0.2.0/24) or an IPv6 range in RFC 4291 format (e.g. 2001:db8::/32). IPv6 - // range will be displayed using RFC 5952 compressed format. + // to. Both + // IPv4 and IPv6 are supported. + // Must specify an IPv4 range (e.g. 192.0.2.0/24) or an IPv6 range in RFC + // 4291 + // format (e.g. 2001:db8::/32). IPv6 range will be displayed using RFC + // 5952 + // compressed format. DestRange string `json:"destRange,omitempty"` - // Id: [Output Only] The unique identifier for the resource. This identifier is + // Id: Output only. [Output Only] The unique identifier for the resource. This + // identifier is // defined by the server. Id uint64 `json:"id,omitempty,string"` - // Kind: [Output Only] Type of this resource. Always compute#routes for Route - // resources. + // Kind: Output only. [Output Only] Type of this resource. Always + // compute#routes for + // Route resources. Kind string `json:"kind,omitempty"` // Name: Name of the resource. Provided by the client when the resource is - // created. The name must be 1-63 characters long, and comply with RFC1035. - // Specifically, the name must be 1-63 characters long and match the regular - // expression `[a-z]([-a-z0-9]*[a-z0-9])?`. The first character must be a - // lowercase letter, and all following characters (except for the last - // character) must be a dash, lowercase letter, or digit. The last character + // created. + // The name must be 1-63 characters long, and comply withRFC1035. + // Specifically, the name must be 1-63 characters long and match the + // regular + // expression `[a-z]([-a-z0-9]*[a-z0-9])?`. The first character must be + // a + // lowercase letter, and all following characters (except for the + // last + // character) must be a dash, lowercase letter, or digit. The last + // character // must be a lowercase letter or digit. Name string `json:"name,omitempty"` // Network: Fully-qualified URL of the network that this route applies to. Network string `json:"network,omitempty"` - // NextHopGateway: The URL to a gateway that should handle matching packets. - // You can only specify the internet gateway using a full or partial valid URL: - // projects/ project/global/gateways/default-internet-gateway + // NextHopGateway: The URL to a gateway that should handle matching + // packets. + // You can only specify the internet gateway using a full or + // partial valid URL: projects/project/global/gateways/default-internet-gateway NextHopGateway string `json:"nextHopGateway,omitempty"` - // NextHopHub: [Output Only] The full resource name of the Network Connectivity - // Center hub that will handle matching packets. + // NextHopHub: Output only. [Output Only] The full resource name of the Network + // Connectivity Center hub + // that will handle matching packets. NextHopHub string `json:"nextHopHub,omitempty"` - // NextHopIlb: The URL to a forwarding rule of type - // loadBalancingScheme=INTERNAL that should handle matching packets or the IP - // address of the forwarding Rule. For example, the following are all valid - // URLs: - 10.128.0.56 - - // https://www.googleapis.com/compute/v1/projects/project/regions/region - // /forwardingRules/forwardingRule - - // regions/region/forwardingRules/forwardingRule + // NextHopIlb: The URL to a forwarding rule of typeloadBalancingScheme=INTERNAL + // that should handle matching + // packets or the IP address of the forwarding Rule. + // For example, the following are all valid URLs: + // + // + // - + // https://www.googleapis.com/compute/v1/projects/project/regions/region/forwardingRules/forwardingRule + // + // - regions/region/forwardingRules/forwardingRule + // + // + // If an IP address is provided, must specify an IPv4 address in + // dot-decimal + // notation or an IPv6 address in RFC 4291 format. For example, the + // following + // are all valid IP addresses: + // + // + // - 10.128.0.56 + // - 2001:db8::2d9:51:0:0 + // - 2001:db8:0:0:2d9:51:0:0 + // + // + // IPv6 addresses will be displayed using RFC 5952 compressed format + // (e.g. + // 2001:db8::2d9:51:0:0). Should never be an IPv4-mapped IPv6 address. NextHopIlb string `json:"nextHopIlb,omitempty"` // NextHopInstance: The URL to an instance that should handle matching packets. - // You can specify this as a full or partial URL. For example: + // You can specify + // this as a full or partial URL. + // For example: + // // https://www.googleapis.com/compute/v1/projects/project/zones/zone/instances/ NextHopInstance string `json:"nextHopInstance,omitempty"` + // NextHopInterRegionCost: Output only. [Output only] Internal fixed + // region-to-region cost that Google Cloud + // calculates based on factors such as network performance, distance, + // and + // available bandwidth between regions. + NextHopInterRegionCost int64 `json:"nextHopInterRegionCost,omitempty"` + // NextHopInterconnectAttachment: Output only. [Output Only] The URL to an + // InterconnectAttachment which is the next hop + // for the route. + // This field will only be populated for dynamic routes generated by + // Cloud Router with a linked interconnectAttachment or the static + // route + // generated by each L2 Interconnect Attachment. + NextHopInterconnectAttachment string `json:"nextHopInterconnectAttachment,omitempty"` // NextHopIp: The network IP address of an instance that should handle matching - // packets. Both IPv6 address and IPv4 addresses are supported. Must specify an - // IPv4 address in dot-decimal notation (e.g. 192.0.2.99) or an IPv6 address in - // RFC 4291 format (e.g. 2001:db8::2d9:51:0:0 or 2001:db8:0:0:2d9:51:0:0). IPv6 - // addresses will be displayed using RFC 5952 compressed format (e.g. - // 2001:db8::2d9:51:0:0). Should never be an IPv4-mapped IPv6 address. + // packets. + // Both IPv6 address and IPv4 addresses are supported. + // Must specify an IPv4 address in dot-decimal notation (e.g. 192.0.2.99) or + // an IPv6 address in RFC 4291 format (e.g. 2001:db8::2d9:51:0:0 + // or + // 2001:db8:0:0:2d9:51:0:0). IPv6 addresses will be displayed using RFC + // 5952 + // compressed format (e.g. 2001:db8::2d9:51:0:0). Should never be + // an + // IPv4-mapped IPv6 address. NextHopIp string `json:"nextHopIp,omitempty"` + // NextHopMed: Output only. [Output Only] Multi-Exit Discriminator, a BGP route + // metric that indicates + // the desirability of a particular route in a network. + NextHopMed int64 `json:"nextHopMed,omitempty"` // NextHopNetwork: The URL of the local network if it should handle matching // packets. NextHopNetwork string `json:"nextHopNetwork,omitempty"` - // NextHopPeering: [Output Only] The network peering name that should handle - // matching packets, which should conform to RFC1035. + // NextHopOrigin: Output only. [Output Only] Indicates the origin of the route. + // Can be IGP + // (Interior Gateway Protocol), EGP (Exterior Gateway Protocol), + // or INCOMPLETE. + // + // Possible values: + // "EGP" + // "IGP" + // "INCOMPLETE" + NextHopOrigin string `json:"nextHopOrigin,omitempty"` + // NextHopPeering: Output only. [Output Only] The network peering name that + // should handle matching packets, + // which should conform to RFC1035. NextHopPeering string `json:"nextHopPeering,omitempty"` // NextHopVpnTunnel: The URL to a VpnTunnel that should handle matching // packets. NextHopVpnTunnel string `json:"nextHopVpnTunnel,omitempty"` + // Params: Input only. [Input Only] Additional params passed with the request, + // but not persisted + // as part of resource payload. + Params *RouteParams `json:"params,omitempty"` // Priority: The priority of this route. Priority is used to break ties in - // cases where there is more than one matching route of equal prefix length. In - // cases where multiple routes have equal prefix length, the one with the - // lowest-numbered priority value wins. The default value is `1000`. The + // cases + // where there is more than one matching route of equal prefix length. In + // cases where multiple routes have equal prefix length, the one with + // the + // lowest-numbered priority value wins. The default value is `1000`. + // The // priority value must be from `0` to `65535`, inclusive. Priority int64 `json:"priority,omitempty"` - // RouteStatus: [Output only] The status of the route. + // RouteStatus: [Output only] The status of the route. This status applies + // to + // dynamic routes learned by Cloud Routers. It is also applicable to + // routes + // undergoing migration. // // Possible values: // "ACTIVE" - This route is processed and active. // "DROPPED" - The route is dropped due to the VPC exceeding the dynamic - // route limit. For dynamic route limit, please refer to the Learned route - // example + // route limit. + // For dynamic route limit, please refer to the + // Learned route example // "INACTIVE" - This route is processed but inactive due to failure from the - // backend. The backend may have rejected the route + // backend. The + // backend may have rejected the route // "PENDING" - This route is being processed internally. The status will - // change once processed. + // change once + // processed. RouteStatus string `json:"routeStatus,omitempty"` - // RouteType: [Output Only] The type of this route, which can be one of the - // following values: - 'TRANSIT' for a transit route that this router learned - // from another Cloud Router and will readvertise to one of its BGP peers - - // 'SUBNET' for a route from a subnet of the VPC - 'BGP' for a route learned - // from a BGP peer of this router - 'STATIC' for a static route + // RouteType: Output only. [Output Only] The type of this route, which can be + // one of the following + // values: + // - 'TRANSIT' for a transit route that this router learned from + // another Cloud Router and will readvertise to one of its BGP peers + // - 'SUBNET' for a route from a subnet of the VPC + // - 'BGP' for a route learned from a BGP peer of this router + // - 'STATIC' for a static route // // Possible values: // "BGP" @@ -37071,7 +61687,8 @@ type Route struct { SelfLink string `json:"selfLink,omitempty"` // Tags: A list of instance tags to which this route applies. Tags []string `json:"tags,omitempty"` - // Warnings: [Output Only] If potential misconfigurations are detected for this + // Warnings: Output only. [Output Only] If potential misconfigurations are + // detected for this // route, this field will be populated with warning messages. Warnings []*RouteWarnings `json:"warnings,omitempty"` @@ -37090,74 +61707,96 @@ type Route struct { NullFields []string `json:"-"` } -func (s *Route) MarshalJSON() ([]byte, error) { +func (s Route) MarshalJSON() ([]byte, error) { type NoMethod Route - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } type RouteWarnings 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. + // 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" - Warning about failed cleanup of transient changes made - // by a failed operation. + // by a failed + // operation. // "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was created. // "DEPRECATED_TYPE_USED" - When deploying and at least one of the resources - // has a type marked as deprecated + // has a type marked as + // deprecated // "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk that is // larger than image size. // "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the - // resources has a type marked as experimental + // resources has a type marked as + // experimental // "EXTERNAL_API_WARNING" - Warning that is present in an external api call // "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been - // overridden. Deprecated unused field. + // overridden. + // Deprecated unused field. // "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an injected // kernel, which is deprecated. // "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB" - A WEIGHTED_MAGLEV backend - // service is associated with a health check that is not of type - // HTTP/HTTPS/HTTP2. + // service is associated with a health check that is + // not of type HTTP/HTTPS/HTTP2. // "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a // exceedingly large number of resources // "LIST_OVERHEAD_QUOTA_EXCEED" - Resource can't be retrieved due to list - // overhead quota exceed which captures the amount of resources filtered out by + // overhead quota exceed + // which captures the amount of resources filtered out by // user-defined list filter. // "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is not - // assigned to an instance on the network. + // assigned to an instance on the + // network. // "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot ip // forward. // "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE" - The route's nextHopInstance - // URL refers to an instance that does not have an ipv6 interface on the same - // network as the route. + // URL refers to an instance that does not have an + // ipv6 interface on the same network as the route. // "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL refers to // an instance that does not exist. // "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance URL - // refers to an instance that is not on the same network as the route. + // refers to an instance that is not on the + // same network as the route. // "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not have a // status of RUNNING. // "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to continue - // the process despite the mentioned error. + // the process despite + // the mentioned error. // "NO_RESULTS_ON_PAGE" - No results are present on a particular list page. // "PARTIAL_SUCCESS" - Success is reported, but some results may be missing // due to errors + // "QUOTA_INFO_UNAVAILABLE" - Quota information is not available to client + // requests (e.g: + // regions.list). // "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource that - // requires a TOS they have not accepted. + // requires a TOS they have not + // accepted. // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a resource is // in use. // "RESOURCE_NOT_DELETED" - One or more of the resources set to auto-delete - // could not be deleted because they were in use. + // could not be deleted + // because they were in use. // "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is // ignored. // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in instance - // group manager is valid as such, but its application does not make a lot of - // sense, because it allows only single instance in instance group. + // group manager is valid as such, but + // its application does not make a lot of sense, because it allows only + // single instance in instance group. // "UNDECLARED_PROPERTIES" - When undeclared properties in the schema are // present // "UNREACHABLE" - A given scope cannot be reached. 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: [Output Only] Metadata about this warning in key: + // value format. For example: + // + // "data": [ + // { + // "key": "scope", + // "value": "zones/us-east1-d" + // } Data []*RouteWarningsData `json:"data,omitempty"` // Message: [Output Only] A human-readable description of the warning code. Message string `json:"message,omitempty"` @@ -37174,19 +61813,22 @@ type RouteWarnings struct { NullFields []string `json:"-"` } -func (s *RouteWarnings) MarshalJSON() ([]byte, error) { +func (s RouteWarnings) MarshalJSON() ([]byte, error) { type NoMethod RouteWarnings - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } type RouteWarningsData 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: [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"` @@ -37203,21 +61845,28 @@ type RouteWarningsData struct { NullFields []string `json:"-"` } -func (s *RouteWarningsData) MarshalJSON() ([]byte, error) { +func (s RouteWarningsData) MarshalJSON() ([]byte, error) { type NoMethod RouteWarningsData - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } type RouteAsPath struct { // AsLists: [Output Only] The AS numbers of the AS Path. AsLists []int64 `json:"asLists,omitempty"` // PathSegmentType: [Output Only] The type of the AS Path, which can be one of - // the following values: - 'AS_SET': unordered set of autonomous systems that - // the route in has traversed - 'AS_SEQUENCE': ordered set of autonomous - // systems that the route has traversed - 'AS_CONFED_SEQUENCE': ordered set of - // Member Autonomous Systems in the local confederation that the route has - // traversed - 'AS_CONFED_SET': unordered set of Member Autonomous Systems in - // the local confederation that the route has traversed + // the following + // values: + // - 'AS_SET': unordered set of autonomous systems that the route + // in has traversed + // - 'AS_SEQUENCE': ordered set of autonomous + // systems that the route has traversed + // - 'AS_CONFED_SEQUENCE': + // ordered set of Member Autonomous Systems in the local confederation that + // the route has traversed + // - 'AS_CONFED_SET': unordered set of + // Member Autonomous Systems in the local confederation that the route + // has + // traversed // // Possible values: // "AS_CONFED_SEQUENCE" @@ -37238,9 +61887,9 @@ type RouteAsPath struct { NullFields []string `json:"-"` } -func (s *RouteAsPath) MarshalJSON() ([]byte, error) { +func (s RouteAsPath) MarshalJSON() ([]byte, error) { type NoMethod RouteAsPath - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } // RouteList: Contains a list of Route resources. @@ -37249,15 +61898,17 @@ type RouteList struct { Id string `json:"id,omitempty"` // Items: A list of Route resources. Items []*Route `json:"items,omitempty"` - // Kind: Type of resource. + // Kind: Output only. Type of resource. 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. + // results for + // list requests. If the number of results is larger thanmaxResults, 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"` - // SelfLink: [Output Only] Server-defined URL for this resource. + // SelfLink: Output only. [Output Only] Server-defined URL for this resource. SelfLink string `json:"selfLink,omitempty"` // Warning: [Output Only] Informational warning message. Warning *RouteListWarning `json:"warning,omitempty"` @@ -37277,75 +61928,97 @@ type RouteList struct { NullFields []string `json:"-"` } -func (s *RouteList) MarshalJSON() ([]byte, error) { +func (s RouteList) MarshalJSON() ([]byte, error) { type NoMethod RouteList - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } // RouteListWarning: [Output Only] Informational warning message. type RouteListWarning 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. + // 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" - Warning about failed cleanup of transient changes made - // by a failed operation. + // by a failed + // operation. // "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was created. // "DEPRECATED_TYPE_USED" - When deploying and at least one of the resources - // has a type marked as deprecated + // has a type marked as + // deprecated // "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk that is // larger than image size. // "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the - // resources has a type marked as experimental + // resources has a type marked as + // experimental // "EXTERNAL_API_WARNING" - Warning that is present in an external api call // "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been - // overridden. Deprecated unused field. + // overridden. + // Deprecated unused field. // "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an injected // kernel, which is deprecated. // "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB" - A WEIGHTED_MAGLEV backend - // service is associated with a health check that is not of type - // HTTP/HTTPS/HTTP2. + // service is associated with a health check that is + // not of type HTTP/HTTPS/HTTP2. // "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a // exceedingly large number of resources // "LIST_OVERHEAD_QUOTA_EXCEED" - Resource can't be retrieved due to list - // overhead quota exceed which captures the amount of resources filtered out by + // overhead quota exceed + // which captures the amount of resources filtered out by // user-defined list filter. // "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is not - // assigned to an instance on the network. + // assigned to an instance on the + // network. // "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot ip // forward. // "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE" - The route's nextHopInstance - // URL refers to an instance that does not have an ipv6 interface on the same - // network as the route. + // URL refers to an instance that does not have an + // ipv6 interface on the same network as the route. // "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL refers to // an instance that does not exist. // "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance URL - // refers to an instance that is not on the same network as the route. + // refers to an instance that is not on the + // same network as the route. // "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not have a // status of RUNNING. // "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to continue - // the process despite the mentioned error. + // the process despite + // the mentioned error. // "NO_RESULTS_ON_PAGE" - No results are present on a particular list page. // "PARTIAL_SUCCESS" - Success is reported, but some results may be missing // due to errors + // "QUOTA_INFO_UNAVAILABLE" - Quota information is not available to client + // requests (e.g: + // regions.list). // "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource that - // requires a TOS they have not accepted. + // requires a TOS they have not + // accepted. // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a resource is // in use. // "RESOURCE_NOT_DELETED" - One or more of the resources set to auto-delete - // could not be deleted because they were in use. + // could not be deleted + // because they were in use. // "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is // ignored. // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in instance - // group manager is valid as such, but its application does not make a lot of - // sense, because it allows only single instance in instance group. + // group manager is valid as such, but + // its application does not make a lot of sense, because it allows only + // single instance in instance group. // "UNDECLARED_PROPERTIES" - When undeclared properties in the schema are // present // "UNREACHABLE" - A given scope cannot be reached. 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: [Output Only] Metadata about this warning in key: + // value format. For example: + // + // "data": [ + // { + // "key": "scope", + // "value": "zones/us-east1-d" + // } Data []*RouteListWarningData `json:"data,omitempty"` // Message: [Output Only] A human-readable description of the warning code. Message string `json:"message,omitempty"` @@ -37355,92 +62028,234 @@ type RouteListWarning struct { // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. 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. See + // 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. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s RouteListWarning) MarshalJSON() ([]byte, error) { + type NoMethod RouteListWarning + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +type RouteListWarningData 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 or default values are + // omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + 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. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s RouteListWarningData) MarshalJSON() ([]byte, error) { + type NoMethod RouteListWarningData + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +// RouteParams: Additional route parameters. +type RouteParams struct { + // ResourceManagerTags: Tag keys/values directly bound to this resource. + // Tag keys and values have the same definition as resource + // manager tags. The field is allowed for INSERT + // only. The keys/values to set on the resource should be specified in + // either ID { : } or Namespaced format + // { : }. + // For example the following are valid inputs: + // * {"tagKeys/333" : "tagValues/444", "tagKeys/123" : "tagValues/456"} + // * {"123/environment" : "production", "345/abc" : "xyz"} + // Note: + // * Invalid combinations of ID & namespaced format is not supported. For + // instance: {"123/environment" : "tagValues/444"} is invalid. + ResourceManagerTags map[string]string `json:"resourceManagerTags,omitempty"` + // ForceSendFields is a list of field names (e.g. "ResourceManagerTags") to + // unconditionally include in API requests. By default, fields with empty or + // default values are omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + ForceSendFields []string `json:"-"` + // NullFields is a list of field names (e.g. "ResourceManagerTags") to include + // in API requests with the JSON null value. By default, fields with empty + // values are omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s RouteParams) MarshalJSON() ([]byte, error) { + type NoMethod RouteParams + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +type RoutePolicy struct { + // Description: An optional description of route policy. + Description string `json:"description,omitempty"` + // Fingerprint: A fingerprint for the Route Policy being applied to this + // Router, which is + // essentially a hash of the Route Policy used for optimistic locking. + // The fingerprint is initially generated by Compute Engine and changes + // after every request to modify or update Route Policy. You must + // always + // provide an up-to-date fingerprint hash in order to update or + // change + // labels. + // + // To see the latest fingerprint, make a getRoutePolicy() request + // to retrieve a Route Policy. + Fingerprint string `json:"fingerprint,omitempty"` + // Name: Route Policy name, which must be a resource ID segment and + // unique + // within all the router's Route Policies. Name should conform to RFC1035. + Name string `json:"name,omitempty"` + // Terms: List of terms (the order in the list is not important, they are + // evaluated + // in order of priority). Order of policies is not retained and might + // change + // when getting policy later. + Terms []*RoutePolicyPolicyTerm `json:"terms,omitempty"` + // Possible values: + // "ROUTE_POLICY_TYPE_EXPORT" - The Route Policy is an Export Policy. + // "ROUTE_POLICY_TYPE_IMPORT" - The Route Policy is an Import Policy. + Type string `json:"type,omitempty"` + // ForceSendFields is a list of field names (e.g. "Description") to + // unconditionally include in API requests. By default, fields with empty or + // default values are omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + ForceSendFields []string `json:"-"` + // NullFields is a list of field names (e.g. "Description") to include in API + // requests with the JSON null value. By default, fields with empty values are + // omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } -func (s *RouteListWarning) MarshalJSON() ([]byte, error) { - type NoMethod RouteListWarning - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s RoutePolicy) MarshalJSON() ([]byte, error) { + type NoMethod RoutePolicy + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -type RouteListWarningData 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 +type RoutePolicyPolicyTerm struct { + // Actions: CEL expressions to evaluate to modify a route when this term + // matches. + Actions []*Expr `json:"actions,omitempty"` + // Match: CEL expression evaluated against a route to determine if this + // term + // applies. When not set, the term applies to all + // routes. + Match *Expr `json:"match,omitempty"` + // Priority: The evaluation priority for this term, which must be between + // 0 + // (inclusive) and 2^31 (exclusive), and unique within the list. + Priority int64 `json:"priority,omitempty"` + // ForceSendFields is a list of field names (e.g. "Actions") to unconditionally // include in API requests. By default, fields with empty or default values are // omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. 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. See + // NullFields is a list of field names (e.g. "Actions") to include in API + // requests with the JSON null value. By default, fields with empty values are + // omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } -func (s *RouteListWarningData) MarshalJSON() ([]byte, error) { - type NoMethod RouteListWarningData - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s RoutePolicyPolicyTerm) MarshalJSON() ([]byte, error) { + type NoMethod RoutePolicyPolicyTerm + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -// Router: Represents a Cloud Router resource. For more information about Cloud -// Router, read the Cloud Router overview. +// Router: Represents a Cloud Router resource. +// +// For more information about Cloud Router, read theCloud +// Router overview. type Router struct { // Bgp: BGP information specific to this router. Bgp *RouterBgp `json:"bgp,omitempty"` - // BgpPeers: BGP information that must be configured into the routing stack to - // establish BGP peering. This information must specify the peer ASN and either - // the interface name, IP address, or peer IP address. Please refer to RFC4273. + // BgpPeers: BGP information that must be configured into the routing stack + // to + // establish BGP peering. This information must specify the peer ASN and + // either the interface name, IP address, or peer IP address. Please refer + // toRFC4273. BgpPeers []*RouterBgpPeer `json:"bgpPeers,omitempty"` - // CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text format. + // CreationTimestamp: Output only. [Output Only] Creation timestamp + // inRFC3339 + // text format. CreationTimestamp string `json:"creationTimestamp,omitempty"` // Description: An optional description of this resource. Provide this property - // when you create the resource. + // when you + // create the resource. Description string `json:"description,omitempty"` // EncryptedInterconnectRouter: Indicates if a router is dedicated for use with - // encrypted VLAN attachments (interconnectAttachments). + // encrypted VLAN + // attachments (interconnectAttachments). EncryptedInterconnectRouter bool `json:"encryptedInterconnectRouter,omitempty"` - // Id: [Output Only] The unique identifier for the resource. This identifier is + // Id: [Output Only] The unique identifier for the resource. This identifier + // is // defined by the server. Id uint64 `json:"id,omitempty,string"` - // Interfaces: Router interfaces. To create a BGP peer that uses a router - // interface, the interface must have one of the following fields specified: - - // linkedVpnTunnel - linkedInterconnectAttachment - subnetwork You can create a - // router interface without any of these fields specified. However, you cannot - // create a BGP peer that uses that interface. + // Interfaces: Router interfaces. + // To create a BGP peer that uses a router interface, + // the interface must have one of the following fields specified: + // + // - linkedVpnTunnel + // - linkedInterconnectAttachment + // - subnetwork + // + // + // You can create a router interface without any of these fields + // specified. + // However, you cannot create a BGP peer that uses that interface. Interfaces []*RouterInterface `json:"interfaces,omitempty"` - // Kind: [Output Only] Type of resource. Always compute#router for routers. + // Kind: Output only. [Output Only] Type of resource. Always compute#router + // for + // routers. Kind string `json:"kind,omitempty"` // Md5AuthenticationKeys: Keys used for MD5 authentication. Md5AuthenticationKeys []*RouterMd5AuthenticationKey `json:"md5AuthenticationKeys,omitempty"` // Name: Name of the resource. Provided by the client when the resource is - // created. The name must be 1-63 characters long, and comply with RFC1035. - // 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. + // created. + // The name must be 1-63 characters long, and comply withRFC1035. + // 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. Name string `json:"name,omitempty"` // Nats: A list of NAT services created in this router. Nats []*RouterNat `json:"nats,omitempty"` + // NccGateway: URI of the ncc_gateway to which this router associated. + NccGateway string `json:"nccGateway,omitempty"` // Network: URI of the network to which this router belongs. Network string `json:"network,omitempty"` - // Region: [Output Only] URI of the region where the router resides. You must - // specify this field as part of the HTTP request URL. It is not settable as a - // field in the request body. + // Params: Input only. [Input Only] Additional params passed with the request, + // but not persisted + // as part of resource payload. + Params *RouterParams `json:"params,omitempty"` + // Region: [Output Only] URI of the region where the router resides. + // You must specify this field as part of the HTTP request URL. It is + // not settable as a field in the request body. Region string `json:"region,omitempty"` // SelfLink: [Output Only] Server-defined URL for the resource. SelfLink string `json:"selfLink,omitempty"` @@ -37460,9 +62275,9 @@ type Router struct { NullFields []string `json:"-"` } -func (s *Router) MarshalJSON() ([]byte, error) { +func (s Router) MarshalJSON() ([]byte, error) { type NoMethod Router - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } // RouterAdvertisedIpRange: Description-tagged IP ranges for the router to @@ -37485,9 +62300,9 @@ type RouterAdvertisedIpRange struct { NullFields []string `json:"-"` } -func (s *RouterAdvertisedIpRange) MarshalJSON() ([]byte, error) { +func (s RouterAdvertisedIpRange) MarshalJSON() ([]byte, error) { type NoMethod RouterAdvertisedIpRange - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } // RouterAggregatedList: Contains a list of routers. @@ -37496,17 +62311,19 @@ type RouterAggregatedList struct { Id string `json:"id,omitempty"` // Items: A list of Router resources. Items map[string]RoutersScopedList `json:"items,omitempty"` - // Kind: Type of resource. + // Kind: Output only. Type of resource. 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. + // results for + // list requests. If the number of results is larger thanmaxResults, 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"` - // SelfLink: [Output Only] Server-defined URL for this resource. + // SelfLink: Output only. [Output Only] Server-defined URL for this resource. SelfLink string `json:"selfLink,omitempty"` - // Unreachables: [Output Only] Unreachable resources. + // Unreachables: Output only. [Output Only] Unreachable resources. Unreachables []string `json:"unreachables,omitempty"` // Warning: [Output Only] Informational warning message. Warning *RouterAggregatedListWarning `json:"warning,omitempty"` @@ -37526,75 +62343,97 @@ type RouterAggregatedList struct { NullFields []string `json:"-"` } -func (s *RouterAggregatedList) MarshalJSON() ([]byte, error) { +func (s RouterAggregatedList) MarshalJSON() ([]byte, error) { type NoMethod RouterAggregatedList - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } // RouterAggregatedListWarning: [Output Only] Informational warning message. type RouterAggregatedListWarning 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. + // 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" - Warning about failed cleanup of transient changes made - // by a failed operation. + // by a failed + // operation. // "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was created. // "DEPRECATED_TYPE_USED" - When deploying and at least one of the resources - // has a type marked as deprecated + // has a type marked as + // deprecated // "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk that is // larger than image size. // "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the - // resources has a type marked as experimental + // resources has a type marked as + // experimental // "EXTERNAL_API_WARNING" - Warning that is present in an external api call // "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been - // overridden. Deprecated unused field. + // overridden. + // Deprecated unused field. // "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an injected // kernel, which is deprecated. // "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB" - A WEIGHTED_MAGLEV backend - // service is associated with a health check that is not of type - // HTTP/HTTPS/HTTP2. + // service is associated with a health check that is + // not of type HTTP/HTTPS/HTTP2. // "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a // exceedingly large number of resources // "LIST_OVERHEAD_QUOTA_EXCEED" - Resource can't be retrieved due to list - // overhead quota exceed which captures the amount of resources filtered out by + // overhead quota exceed + // which captures the amount of resources filtered out by // user-defined list filter. // "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is not - // assigned to an instance on the network. + // assigned to an instance on the + // network. // "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot ip // forward. // "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE" - The route's nextHopInstance - // URL refers to an instance that does not have an ipv6 interface on the same - // network as the route. + // URL refers to an instance that does not have an + // ipv6 interface on the same network as the route. // "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL refers to // an instance that does not exist. // "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance URL - // refers to an instance that is not on the same network as the route. + // refers to an instance that is not on the + // same network as the route. // "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not have a // status of RUNNING. // "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to continue - // the process despite the mentioned error. + // the process despite + // the mentioned error. // "NO_RESULTS_ON_PAGE" - No results are present on a particular list page. // "PARTIAL_SUCCESS" - Success is reported, but some results may be missing // due to errors + // "QUOTA_INFO_UNAVAILABLE" - Quota information is not available to client + // requests (e.g: + // regions.list). // "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource that - // requires a TOS they have not accepted. + // requires a TOS they have not + // accepted. // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a resource is // in use. // "RESOURCE_NOT_DELETED" - One or more of the resources set to auto-delete - // could not be deleted because they were in use. + // could not be deleted + // because they were in use. // "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is // ignored. // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in instance - // group manager is valid as such, but its application does not make a lot of - // sense, because it allows only single instance in instance group. + // group manager is valid as such, but + // its application does not make a lot of sense, because it allows only + // single instance in instance group. // "UNDECLARED_PROPERTIES" - When undeclared properties in the schema are // present // "UNREACHABLE" - A given scope cannot be reached. 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: [Output Only] Metadata about this warning in key: + // value format. For example: + // + // "data": [ + // { + // "key": "scope", + // "value": "zones/us-east1-d" + // } Data []*RouterAggregatedListWarningData `json:"data,omitempty"` // Message: [Output Only] A human-readable description of the warning code. Message string `json:"message,omitempty"` @@ -37611,19 +62450,22 @@ type RouterAggregatedListWarning struct { NullFields []string `json:"-"` } -func (s *RouterAggregatedListWarning) MarshalJSON() ([]byte, error) { +func (s RouterAggregatedListWarning) MarshalJSON() ([]byte, error) { type NoMethod RouterAggregatedListWarning - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } type RouterAggregatedListWarningData 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: [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"` @@ -37640,54 +62482,72 @@ type RouterAggregatedListWarningData struct { NullFields []string `json:"-"` } -func (s *RouterAggregatedListWarningData) MarshalJSON() ([]byte, error) { +func (s RouterAggregatedListWarningData) MarshalJSON() ([]byte, error) { type NoMethod RouterAggregatedListWarningData - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } type RouterBgp struct { // AdvertiseMode: User-specified flag to indicate which mode to use for - // advertisement. The options are DEFAULT or CUSTOM. + // advertisement. + // The options are DEFAULT or CUSTOM. // // Possible values: // "CUSTOM" // "DEFAULT" AdvertiseMode string `json:"advertiseMode,omitempty"` // AdvertisedGroups: User-specified list of prefix groups to advertise in - // custom mode. This field can only be populated if advertise_mode is CUSTOM - // and is advertised to all peers of the router. These groups will be - // advertised in addition to any specified prefixes. Leave this field blank to - // advertise no custom groups. + // custom mode. + // This field can only be populated if advertise_mode is CUSTOM and + // is advertised to all peers of the router. + // These groups will be advertised in addition to any specified prefixes. + // Leave this field blank to advertise no custom groups. // // Possible values: // "ALL_SUBNETS" - Advertise all available subnets (including peer VPC // subnets). AdvertisedGroups []string `json:"advertisedGroups,omitempty"` // AdvertisedIpRanges: User-specified list of individual IP ranges to advertise - // in custom mode. This field can only be populated if advertise_mode is CUSTOM - // and is advertised to all peers of the router. These IP ranges will be - // advertised in addition to any specified groups. Leave this field blank to - // advertise no custom IP ranges. + // in custom mode. + // This field can only be populated if advertise_mode is CUSTOM and + // is advertised to all peers of the router. + // These IP ranges will be advertised in addition to any specified + // groups. + // Leave this field blank to advertise no custom IP ranges. AdvertisedIpRanges []*RouterAdvertisedIpRange `json:"advertisedIpRanges,omitempty"` - // Asn: Local BGP Autonomous System Number (ASN). Must be an RFC6996 private - // ASN, either 16-bit or 32-bit. The value will be fixed for this router - // resource. All VPN tunnels that link to this router will have the same local - // ASN. + // Asn: Local BGP Autonomous System Number (ASN). + // Must be anRFC6996 private ASN, either 16-bit or 32-bit. The + // value will be fixed for this router resource. All VPN tunnels that link + // to this router will have the same local ASN. Asn int64 `json:"asn,omitempty"` // IdentifierRange: Explicitly specifies a range of valid BGP Identifiers for - // this Router. It is provided as a link-local IPv4 range (from - // 169.254.0.0/16), of size at least /30, even if the BGP sessions are over - // IPv6. It must not overlap with any IPv4 BGP session ranges. Other vendors - // commonly call this "router ID". + // this Router. It + // is provided as a link-local IPv4 range (from 169.254.0.0/16), of size + // at + // least /30, even if the BGP sessions are over IPv6. It must not overlap + // with any IPv4 BGP session ranges. + // + // + // Other vendors commonly call this "router ID". IdentifierRange string `json:"identifierRange,omitempty"` // KeepaliveInterval: The interval in seconds between BGP keepalive messages - // that are sent to the peer. Hold time is three times the interval at which - // keepalive messages are sent, and the hold time is the maximum number of - // seconds allowed to elapse between successive keepalive messages that BGP - // receives from a peer. BGP will use the smaller of either the local hold time - // value or the peer's hold time value as the hold time for the BGP connection - // between the two peers. If set, this value must be between 20 and 60. The - // default is 20. + // that are + // sent to the peer. + // + // + // Hold time is three times the interval at which keepalive messages are + // sent, and the hold time is the maximum number of seconds allowed to + // elapse between successive keepalive messages that BGP receives from + // a + // peer. + // + // + // BGP will use the smaller of either the local hold time value or the + // peer's hold time value as the hold time for the BGP connection between + // the two peers. + // + // + // If set, this value must be between 20 and 60. The default is 20. KeepaliveInterval int64 `json:"keepaliveInterval,omitempty"` // ForceSendFields is a list of field names (e.g. "AdvertiseMode") to // unconditionally include in API requests. By default, fields with empty or @@ -37702,9 +62562,9 @@ type RouterBgp struct { NullFields []string `json:"-"` } -func (s *RouterBgp) MarshalJSON() ([]byte, error) { +func (s RouterBgp) MarshalJSON() ([]byte, error) { type NoMethod RouterBgp - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } type RouterBgpPeer struct { @@ -37716,62 +62576,79 @@ type RouterBgpPeer struct { // "DEFAULT" AdvertiseMode string `json:"advertiseMode,omitempty"` // AdvertisedGroups: User-specified list of prefix groups to advertise in - // custom mode, which currently supports the following option: - ALL_SUBNETS: - // Advertises all of the router's own VPC subnets. This excludes any routes - // learned for subnets that use VPC Network Peering. Note that this field can - // only be populated if advertise_mode is CUSTOM and overrides the list defined - // for the router (in the "bgp" message). These groups are advertised in - // addition to any specified prefixes. Leave this field blank to advertise no - // custom groups. + // custom mode, + // which currently supports the following option: + // + // - ALL_SUBNETS: Advertises all of the router's own VPC subnets. This + // excludes any routes learned for subnets that use + // VPC Network Peering. + // + // + // Note that this field can only be populated if advertise_mode is CUSTOM + // and overrides the list defined for the router (in the "bgp" message). + // These groups are advertised in addition to any specified prefixes. + // Leave this field blank to advertise no custom groups. // // Possible values: // "ALL_SUBNETS" - Advertise all available subnets (including peer VPC // subnets). AdvertisedGroups []string `json:"advertisedGroups,omitempty"` // AdvertisedIpRanges: User-specified list of individual IP ranges to advertise - // in custom mode. This field can only be populated if advertise_mode is CUSTOM - // and overrides the list defined for the router (in the "bgp" message). These - // IP ranges are advertised in addition to any specified groups. Leave this - // field blank to advertise no custom IP ranges. + // in custom mode. + // This field can only be populated if advertise_mode is CUSTOM and + // overrides the list defined for the router (in the "bgp" message). + // These IP ranges are advertised in addition to any specified groups. + // Leave this field blank to advertise no custom IP ranges. AdvertisedIpRanges []*RouterAdvertisedIpRange `json:"advertisedIpRanges,omitempty"` // AdvertisedRoutePriority: The priority of routes advertised to this BGP peer. - // Where there is more than one matching route of maximum length, the routes - // with the lowest priority value win. + // Where there is more + // than one matching route of maximum length, the routes with the + // lowest + // priority value win. AdvertisedRoutePriority int64 `json:"advertisedRoutePriority,omitempty"` // Bfd: BFD configuration for the BGP peering. Bfd *RouterBgpPeerBfd `json:"bfd,omitempty"` // CustomLearnedIpRanges: A list of user-defined custom learned route IP - // address ranges for a BGP session. + // address ranges for a BGP + // session. CustomLearnedIpRanges []*RouterBgpPeerCustomLearnedIpRange `json:"customLearnedIpRanges,omitempty"` // CustomLearnedRoutePriority: The user-defined custom learned route priority - // for a BGP session. This value is applied to all custom learned route ranges - // for the session. You can choose a value from `0` to `65335`. If you don't - // provide a value, Google Cloud assigns a priority of `100` to the ranges. + // for a BGP session. This + // value is applied to all custom learned route ranges for the session. + // You can choose a value from `0` to `65335`. If you don't provide a + // value, Google Cloud assigns a priority of `100` to the ranges. CustomLearnedRoutePriority int64 `json:"customLearnedRoutePriority,omitempty"` - // Enable: The status of the BGP peer connection. If set to FALSE, any active - // session with the peer is terminated and all associated routing information - // is removed. If set to TRUE, the peer connection can be established with - // routing information. The default is TRUE. + // Enable: The status of the BGP peer connection. + // + // + // If set to FALSE, any active session with the peer is terminated and + // all associated routing information is removed. If set to TRUE, the + // peer connection can be established with routing information. The default + // is TRUE. // // Possible values: // "FALSE" // "TRUE" Enable string `json:"enable,omitempty"` - // EnableIpv4: Enable IPv4 traffic over BGP Peer. It is enabled by default if + // EnableIpv4: Enable IPv4 traffic over BGP Peer. It is enabled by default + // if // the peerIpAddress is version 4. EnableIpv4 bool `json:"enableIpv4,omitempty"` // EnableIpv6: Enable IPv6 traffic over BGP Peer. It is enabled by default if - // the peerIpAddress is version 6. + // the + // peerIpAddress is version 6. EnableIpv6 bool `json:"enableIpv6,omitempty"` // ExportPolicies: List of export policies applied to this peer, in the order - // they must be evaluated. The name must correspond to an existing policy that - // has ROUTE_POLICY_TYPE_EXPORT type. Note that Route Policies are currently - // available in preview. Please use Beta API to use Route Policies. + // they must be + // evaluated. The name must correspond to an existing policy that + // has + // ROUTE_POLICY_TYPE_EXPORT type. ExportPolicies []string `json:"exportPolicies,omitempty"` // ImportPolicies: List of import policies applied to this peer, in the order - // they must be evaluated. The name must correspond to an existing policy that - // has ROUTE_POLICY_TYPE_IMPORT type. Note that Route Policies are currently - // available in preview. Please use Beta API to use Route Policies. + // they must be + // evaluated. The name must correspond to an existing policy that + // has + // ROUTE_POLICY_TYPE_IMPORT type. ImportPolicies []string `json:"importPolicies,omitempty"` // InterfaceName: Name of the interface the BGP peer is associated with. InterfaceName string `json:"interfaceName,omitempty"` @@ -37783,37 +62660,47 @@ type RouterBgpPeer struct { // Ipv6NexthopAddress: IPv6 address of the interface inside Google Cloud // Platform. Ipv6NexthopAddress string `json:"ipv6NexthopAddress,omitempty"` - // ManagementType: [Output Only] The resource that configures and manages this - // BGP peer. - MANAGED_BY_USER is the default value and can be managed by you - // or other users - MANAGED_BY_ATTACHMENT is a BGP peer that is configured and - // managed by Cloud Interconnect, specifically by an InterconnectAttachment of - // type PARTNER. Google automatically creates, updates, and deletes this type - // of BGP peer when the PARTNER InterconnectAttachment is created, updated, or - // deleted. + // ManagementType: Output only. [Output Only] The resource that configures and + // manages this BGP peer. + // + // - MANAGED_BY_USER is the default value and can be managed by you + // or other users + // - MANAGED_BY_ATTACHMENT is a BGP peer that is configured and managed + // by Cloud Interconnect, specifically by an InterconnectAttachment of type + // PARTNER. Google automatically creates, updates, and deletes this type of + // BGP peer when the PARTNER InterconnectAttachment is created, updated, + // or deleted. // // Possible values: // "MANAGED_BY_ATTACHMENT" - The BGP peer is automatically created for - // PARTNER type InterconnectAttachment; Google will automatically create/delete - // this BGP peer when the PARTNER InterconnectAttachment is created/deleted, - // and Google will update the ipAddress and peerIpAddress when the PARTNER - // InterconnectAttachment is provisioned. This type of BGP peer cannot be - // created or deleted, but can be modified for all fields except for name, - // ipAddress and peerIpAddress. + // PARTNER type + // InterconnectAttachment; Google will automatically create/delete + // this BGP peer when the PARTNER InterconnectAttachment is + // created/deleted, and Google will update the ipAddress and + // peerIpAddress when the PARTNER InterconnectAttachment is provisioned. + // This type of BGP peer cannot be created or deleted, but can be + // modified for all fields except for name, ipAddress and peerIpAddress. // "MANAGED_BY_USER" - Default value, the BGP peer is manually created and // managed by user. ManagementType string `json:"managementType,omitempty"` // Md5AuthenticationKeyName: Present if MD5 authentication is enabled for the - // peering. Must be the name of one of the entries in the - // Router.md5_authentication_keys. The field must comply with RFC1035. + // peering. Must be the + // name of one of the entries in the Router.md5_authentication_keys. The + // field must comply with RFC1035. Md5AuthenticationKeyName string `json:"md5AuthenticationKeyName,omitempty"` - // Name: Name of this BGP peer. 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. + // Name: Name of this BGP peer. + // The name must be 1-63 characters long, and comply withRFC1035. 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. Name string `json:"name,omitempty"` - // PeerAsn: Peer BGP Autonomous System Number (ASN). Each BGP interface may use + // PeerAsn: Peer BGP Autonomous System Number (ASN). Each BGP interface may + // use // a different value. PeerAsn int64 `json:"peerAsn,omitempty"` // PeerIpAddress: IP address of the BGP interface outside Google Cloud @@ -37826,10 +62713,12 @@ type RouterBgpPeer struct { // Cloud Platform. PeerIpv6NexthopAddress string `json:"peerIpv6NexthopAddress,omitempty"` // RouterApplianceInstance: URI of the VM instance that is used as third-party - // router appliances such as Next Gen Firewalls, Virtual Routers, or Router - // Appliances. The VM instance must be located in zones contained in the same - // region as this Cloud Router. The VM instance is the peer side of the BGP - // session. + // router + // appliances such as Next Gen Firewalls, Virtual Routers, or + // Router + // Appliances. The VM instance must be located in zones contained in the + // same region as this Cloud Router. + // The VM instance is the peer side of the BGP session. RouterApplianceInstance string `json:"routerApplianceInstance,omitempty"` // ForceSendFields is a list of field names (e.g. "AdvertiseMode") to // unconditionally include in API requests. By default, fields with empty or @@ -37844,33 +62733,55 @@ type RouterBgpPeer struct { NullFields []string `json:"-"` } -func (s *RouterBgpPeer) MarshalJSON() ([]byte, error) { +func (s RouterBgpPeer) MarshalJSON() ([]byte, error) { type NoMethod RouterBgpPeer - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } type RouterBgpPeerBfd struct { // MinReceiveInterval: The minimum interval, in milliseconds, between BFD - // control packets received from the peer router. The actual value is - // negotiated between the two routers and is equal to the greater of this value - // and the transmit interval of the other router. If set, this value must be - // between 1000 and 30000. The default is 1000. + // control packets + // received from the peer router. The actual value is negotiated between + // the two routers and is equal to the greater of this value and the + // transmit interval of the other router. + // + // + // If set, this value must be between 1000 and 30000. + // + // + // The default is 1000. MinReceiveInterval int64 `json:"minReceiveInterval,omitempty"` // MinTransmitInterval: The minimum interval, in milliseconds, between BFD - // control packets transmitted to the peer router. The actual value is - // negotiated between the two routers and is equal to the greater of this value - // and the corresponding receive interval of the other router. If set, this - // value must be between 1000 and 30000. The default is 1000. + // control packets + // transmitted to the peer router. The actual value is negotiated between + // the two routers and is equal to the greater of this value and + // the + // corresponding receive interval of the other router. + // + // + // If set, this value must be between 1000 and 30000. + // + // + // The default is 1000. MinTransmitInterval int64 `json:"minTransmitInterval,omitempty"` - // Multiplier: The number of consecutive BFD packets that must be missed before - // BFD declares that a peer is unavailable. If set, the value must be a value - // between 5 and 16. The default is 5. + // Multiplier: The number of consecutive BFD packets that must be missed + // before BFD declares that a peer is unavailable. + // + // + // If set, the value must be a value between 5 and 16. + // + // + // The default is 5. Multiplier int64 `json:"multiplier,omitempty"` // SessionInitializationMode: The BFD session initialization mode for this BGP - // peer. If set to ACTIVE, the Cloud Router will initiate the BFD session for - // this BGP peer. If set to PASSIVE, the Cloud Router will wait for the peer - // router to initiate the BFD session for this BGP peer. If set to DISABLED, - // BFD is disabled for this BGP peer. The default is DISABLED. + // peer. + // + // + // If set to ACTIVE, the Cloud Router will initiate the BFD session for + // this BGP peer. If set to PASSIVE, the Cloud Router will wait for the + // peer router to initiate the BFD session for this BGP peer. If set + // to + // DISABLED, BFD is disabled for this BGP peer. The default is DISABLED. // // Possible values: // "ACTIVE" @@ -37890,16 +62801,17 @@ type RouterBgpPeerBfd struct { NullFields []string `json:"-"` } -func (s *RouterBgpPeerBfd) MarshalJSON() ([]byte, error) { +func (s RouterBgpPeerBfd) MarshalJSON() ([]byte, error) { type NoMethod RouterBgpPeerBfd - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } type RouterBgpPeerCustomLearnedIpRange struct { - // Range: The custom learned route IP address range. Must be a valid - // CIDR-formatted prefix. If an IP address is provided without a subnet mask, - // it is interpreted as, for IPv4, a `/32` singular IP address range, and, for - // IPv6, `/128`. + // Range: The custom learned route IP address range. Must be a + // valid + // CIDR-formatted prefix. If an IP address is provided without a subnet + // mask, it is interpreted as, for IPv4, a `/32` singular IP address + // range, and, for IPv6, `/128`. Range string `json:"range,omitempty"` // ForceSendFields is a list of field names (e.g. "Range") to unconditionally // include in API requests. By default, fields with empty or default values are @@ -37914,22 +62826,25 @@ type RouterBgpPeerCustomLearnedIpRange struct { NullFields []string `json:"-"` } -func (s *RouterBgpPeerCustomLearnedIpRange) MarshalJSON() ([]byte, error) { +func (s RouterBgpPeerCustomLearnedIpRange) MarshalJSON() ([]byte, error) { type NoMethod RouterBgpPeerCustomLearnedIpRange - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } type RouterInterface struct { - // IpRange: IP address and range of the interface. - For Internet Protocol - // version 4 (IPv4), the IP range must be in the RFC3927 link-local IP address - // space. The value must be a CIDR-formatted string, for example, - // 169.254.0.1/30. Note: Do not truncate the IP address, as it represents the - // IP address of the interface. - For Internet Protocol version 6 (IPv6), the - // value must be a unique local address (ULA) range from fdff:1::/64 with a - // mask length of 126 or less. This value should be a CIDR-formatted string, - // for example, fc00:0:1:1::1/112. Within the router's VPC, this IPv6 prefix - // will be reserved exclusively for this connection and cannot be used for any - // other purpose. + // IpRange: IP address and range of the interface. + // + // - For Internet Protocol version 4 (IPv4), the IP range must be in + // theRFC3927 link-local IP address space. The value must + // be a CIDR-formatted string, for example, 169.254.0.1/30. + // Note: Do not truncate the IP address, as it represents the IP address of + // the interface. + // - For Internet Protocol version 6 (IPv6), the value + // must be a unique local address (ULA) range from fdff:1::/64 + // with a mask length of 126 or less. This value should be a CIDR-formatted + // string, for example, fdff:1::1/112. Within the router's + // VPC, this IPv6 prefix will be reserved exclusively for this connection + // and cannot be used for any other purpose. IpRange string `json:"ipRange,omitempty"` // IpVersion: IP version of this interface. // @@ -37938,58 +62853,81 @@ type RouterInterface struct { // "IPV6" IpVersion string `json:"ipVersion,omitempty"` // LinkedInterconnectAttachment: URI of the linked Interconnect attachment. It - // must be in the same region as the router. Each interface can have one linked - // resource, which can be a VPN tunnel, an Interconnect attachment, or a - // subnetwork. + // must be in the same region + // as the router. Each interface can have one linked resource, which can be + // a VPN tunnel, an Interconnect attachment, or a subnetwork. LinkedInterconnectAttachment string `json:"linkedInterconnectAttachment,omitempty"` // LinkedVpnTunnel: URI of the linked VPN tunnel, which must be in the same - // region as the router. Each interface can have one linked resource, which can - // be a VPN tunnel, an Interconnect attachment, or a subnetwork. + // region as the + // router. Each interface can have one linked resource, which can be + // a VPN tunnel, an Interconnect attachment, or a subnetwork. LinkedVpnTunnel string `json:"linkedVpnTunnel,omitempty"` - // ManagementType: [Output Only] The resource that configures and manages this - // interface. - MANAGED_BY_USER is the default value and can be managed - // directly by users. - MANAGED_BY_ATTACHMENT is an interface that is - // configured and managed by Cloud Interconnect, specifically, by an - // InterconnectAttachment of type PARTNER. Google automatically creates, - // updates, and deletes this type of interface when the PARTNER - // InterconnectAttachment is created, updated, or deleted. + // ManagementType: Output only. [Output Only] The resource that configures and + // manages this interface. + // + // - MANAGED_BY_USER is the default value and can be managed directly + // by users. + // - MANAGED_BY_ATTACHMENT is an interface that is configured and + // managed by Cloud Interconnect, specifically, by an + // InterconnectAttachment + // of type PARTNER. Google automatically creates, updates, and deletes + // this type of interface when the PARTNER InterconnectAttachment is + // created, updated, or deleted. // // Possible values: // "MANAGED_BY_ATTACHMENT" - The interface is automatically created for - // PARTNER type InterconnectAttachment, Google will automatically - // create/update/delete this interface when the PARTNER InterconnectAttachment - // is created/provisioned/deleted. This type of interface cannot be manually - // managed by user. + // PARTNER type + // InterconnectAttachment, Google will automatically create/update/delete + // this interface when the PARTNER InterconnectAttachment + // is + // created/provisioned/deleted. + // This type of interface cannot be manually managed by user. // "MANAGED_BY_USER" - Default value, the interface is manually created and // managed by user. ManagementType string `json:"managementType,omitempty"` - // Name: Name of this interface entry. 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. + // Name: Name of this interface entry. + // The name must be 1-63 characters long, and comply withRFC1035. 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. Name string `json:"name,omitempty"` // PrivateIpAddress: The regional private internal IP address that is used to - // establish BGP sessions to a VM instance acting as a third-party Router - // Appliance, such as a Next Gen Firewall, a Virtual Router, or an SD-WAN VM. + // establish + // BGP sessions to a VM instance acting as a third-party + // Router Appliance, such as a Next Gen Firewall, a Virtual Router, or + // an SD-WAN VM. PrivateIpAddress string `json:"privateIpAddress,omitempty"` // RedundantInterface: Name of the interface that will be redundant with the - // current interface you are creating. The redundantInterface must belong to - // the same Cloud Router as the interface here. To establish the BGP session to - // a Router Appliance VM, you must create two BGP peers. The two BGP peers must - // be attached to two separate interfaces that are redundant with each other. - // The redundant_interface must be 1-63 characters long, and comply with - // RFC1035. Specifically, the redundant_interface 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. + // current interface + // you are creating. The redundantInterface must belong to the same + // Cloud + // Router as the interface here. To establish the BGP session to a + // Router + // Appliance VM, you must create two BGP peers. The two BGP peers must + // be + // attached to two separate interfaces that are redundant with each other. + // The redundant_interface must be 1-63 characters long, and comply + // withRFC1035. Specifically, the redundant_interface 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. RedundantInterface string `json:"redundantInterface,omitempty"` // Subnetwork: The URI of the subnetwork resource that this interface belongs - // to, which must be in the same region as the Cloud Router. When you establish - // a BGP session to a VM instance using this interface, the VM instance must - // belong to the same subnetwork as the subnetwork specified here. + // to, which + // must be in the same region as the Cloud Router. + // When you establish a BGP session to a VM instance using this interface, + // the VM instance must belong to the same subnetwork as the + // subnetwork + // specified here. Subnetwork string `json:"subnetwork,omitempty"` // ForceSendFields is a list of field names (e.g. "IpRange") to unconditionally // include in API requests. By default, fields with empty or default values are @@ -38004,9 +62942,9 @@ type RouterInterface struct { NullFields []string `json:"-"` } -func (s *RouterInterface) MarshalJSON() ([]byte, error) { +func (s RouterInterface) MarshalJSON() ([]byte, error) { type NoMethod RouterInterface - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } // RouterList: Contains a list of Router resources. @@ -38015,15 +62953,19 @@ type RouterList struct { Id string `json:"id,omitempty"` // Items: A list of Router resources. Items []*Router `json:"items,omitempty"` - // Kind: [Output Only] Type of resource. Always compute#router for routers. + // Kind: Output only. [Output Only] Type of resource. Always compute#router + // for + // routers. 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. + // results for + // list requests. If the number of results is larger thanmaxResults, 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"` - // SelfLink: [Output Only] Server-defined URL for this resource. + // SelfLink: Output only. [Output Only] Server-defined URL for this resource. SelfLink string `json:"selfLink,omitempty"` // Warning: [Output Only] Informational warning message. Warning *RouterListWarning `json:"warning,omitempty"` @@ -38043,75 +62985,97 @@ type RouterList struct { NullFields []string `json:"-"` } -func (s *RouterList) MarshalJSON() ([]byte, error) { +func (s RouterList) MarshalJSON() ([]byte, error) { type NoMethod RouterList - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } // RouterListWarning: [Output Only] Informational warning message. type RouterListWarning 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. + // 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" - Warning about failed cleanup of transient changes made - // by a failed operation. + // by a failed + // operation. // "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was created. // "DEPRECATED_TYPE_USED" - When deploying and at least one of the resources - // has a type marked as deprecated + // has a type marked as + // deprecated // "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk that is // larger than image size. // "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the - // resources has a type marked as experimental + // resources has a type marked as + // experimental // "EXTERNAL_API_WARNING" - Warning that is present in an external api call // "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been - // overridden. Deprecated unused field. + // overridden. + // Deprecated unused field. // "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an injected // kernel, which is deprecated. // "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB" - A WEIGHTED_MAGLEV backend - // service is associated with a health check that is not of type - // HTTP/HTTPS/HTTP2. + // service is associated with a health check that is + // not of type HTTP/HTTPS/HTTP2. // "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a // exceedingly large number of resources // "LIST_OVERHEAD_QUOTA_EXCEED" - Resource can't be retrieved due to list - // overhead quota exceed which captures the amount of resources filtered out by + // overhead quota exceed + // which captures the amount of resources filtered out by // user-defined list filter. // "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is not - // assigned to an instance on the network. + // assigned to an instance on the + // network. // "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot ip // forward. // "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE" - The route's nextHopInstance - // URL refers to an instance that does not have an ipv6 interface on the same - // network as the route. + // URL refers to an instance that does not have an + // ipv6 interface on the same network as the route. // "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL refers to // an instance that does not exist. // "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance URL - // refers to an instance that is not on the same network as the route. + // refers to an instance that is not on the + // same network as the route. // "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not have a // status of RUNNING. // "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to continue - // the process despite the mentioned error. + // the process despite + // the mentioned error. // "NO_RESULTS_ON_PAGE" - No results are present on a particular list page. // "PARTIAL_SUCCESS" - Success is reported, but some results may be missing // due to errors + // "QUOTA_INFO_UNAVAILABLE" - Quota information is not available to client + // requests (e.g: + // regions.list). // "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource that - // requires a TOS they have not accepted. + // requires a TOS they have not + // accepted. // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a resource is // in use. // "RESOURCE_NOT_DELETED" - One or more of the resources set to auto-delete - // could not be deleted because they were in use. + // could not be deleted + // because they were in use. // "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is // ignored. // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in instance - // group manager is valid as such, but its application does not make a lot of - // sense, because it allows only single instance in instance group. + // group manager is valid as such, but + // its application does not make a lot of sense, because it allows only + // single instance in instance group. // "UNDECLARED_PROPERTIES" - When undeclared properties in the schema are // present // "UNREACHABLE" - A given scope cannot be reached. 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: [Output Only] Metadata about this warning in key: + // value format. For example: + // + // "data": [ + // { + // "key": "scope", + // "value": "zones/us-east1-d" + // } Data []*RouterListWarningData `json:"data,omitempty"` // Message: [Output Only] A human-readable description of the warning code. Message string `json:"message,omitempty"` @@ -38128,19 +63092,22 @@ type RouterListWarning struct { NullFields []string `json:"-"` } -func (s *RouterListWarning) MarshalJSON() ([]byte, error) { +func (s RouterListWarning) MarshalJSON() ([]byte, error) { type NoMethod RouterListWarning - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } type RouterListWarningData 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: [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"` @@ -38157,19 +63124,24 @@ type RouterListWarningData struct { NullFields []string `json:"-"` } -func (s *RouterListWarningData) MarshalJSON() ([]byte, error) { +func (s RouterListWarningData) MarshalJSON() ([]byte, error) { type NoMethod RouterListWarningData - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } type RouterMd5AuthenticationKey struct { - // Key: [Input only] Value of the key. For patch and update calls, it can be - // skipped to copy the value from the previous configuration. This is allowed - // if the key with the same name existed before the operation. Maximum length - // is 80 characters. Can only contain printable ASCII characters. + // Key: [Input only] Value of the key. + // + // For patch and update calls, it can be skipped to + // copy the value from the previous configuration. This is allowed if the + // key with the same name existed before the operation. Maximum length is + // 80 + // characters. Can only contain printable ASCII characters. Key string `json:"key,omitempty"` - // Name: Name used to identify the key. Must be unique within a router. Must be - // referenced by exactly one bgpPeer. Must comply with RFC1035. + // Name: Name used to identify the key. + // + // Must be unique within a router. Must be referenced by exactly + // one bgpPeer. Must comply withRFC1035. Name string `json:"name,omitempty"` // ForceSendFields is a list of field names (e.g. "Key") to unconditionally // include in API requests. By default, fields with empty or default values are @@ -38184,50 +63156,76 @@ type RouterMd5AuthenticationKey struct { NullFields []string `json:"-"` } -func (s *RouterMd5AuthenticationKey) MarshalJSON() ([]byte, error) { +func (s RouterMd5AuthenticationKey) MarshalJSON() ([]byte, error) { type NoMethod RouterMd5AuthenticationKey - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } // RouterNat: Represents a Nat resource. It enables the VMs within the -// specified subnetworks to access Internet without external IP addresses. It -// specifies a list of subnetworks (and the ranges within) that want to use -// NAT. Customers can also provide the external IPs that would be used for NAT. -// GCP would auto-allocate ephemeral IPs if no external IPs are provided. +// specified +// subnetworks to access Internet without external IP addresses. It specifies +// a list of subnetworks (and the ranges within) that want to use +// NAT. +// Customers can also provide the external IPs that would be used for NAT. +// GCP +// would auto-allocate ephemeral IPs if no external IPs are provided. type RouterNat struct { // AutoNetworkTier: The network tier to use when automatically reserving NAT IP - // addresses. Must be one of: PREMIUM, STANDARD. If not specified, then the - // current project-level default tier is used. + // addresses. + // Must be one of: PREMIUM, STANDARD. + // If not specified, then the current + // project-level default tier is used. // // Possible values: // "FIXED_STANDARD" - Public internet quality with fixed bandwidth. // "PREMIUM" - High quality, Google-grade network tier, support for all - // networking products. + // networking + // products. // "STANDARD" - Public internet quality, only limited support for other - // networking products. + // networking + // products. // "STANDARD_OVERRIDES_FIXED_STANDARD" - (Output only) Temporary tier for - // FIXED_STANDARD when fixed standard tier is expired or not configured. + // FIXED_STANDARD when fixed standard tier + // is expired or not configured. AutoNetworkTier string `json:"autoNetworkTier,omitempty"` - // DrainNatIps: A list of URLs of the IP resources to be drained. These IPs - // must be valid static external IPs that have been assigned to the NAT. These - // IPs should be used for updating/patching a NAT only. + // DrainNatIps: A list of URLs of the IP resources to be drained. These + // IPs + // must be valid static external IPs that have been assigned to the NAT. + // These IPs should be used for updating/patching a NAT only. DrainNatIps []string `json:"drainNatIps,omitempty"` - // EnableDynamicPortAllocation: Enable Dynamic Port Allocation. If not - // specified, it is disabled by default. If set to true, - Dynamic Port - // Allocation will be enabled on this NAT config. - - // enableEndpointIndependentMapping cannot be set to true. - If minPorts is - // set, minPortsPerVm must be set to a power of two greater than or equal to - // 32. If minPortsPerVm is not set, a minimum of 32 ports will be allocated to - // a VM from this NAT config. + // EffectiveTcpTimeWaitTimeoutSec: Output only. Effective timeout (in seconds) + // for TCP connections that are in TIME_WAIT + // state. This value is equal to tcp_time_wait_timeout_sec. + // If tcp_time_wait_timeout_sec isn't set, the effective timeout is 30s + // or + // 120s. The field is output only. + EffectiveTcpTimeWaitTimeoutSec int64 `json:"effectiveTcpTimeWaitTimeoutSec,omitempty"` + // EnableDynamicPortAllocation: Enable Dynamic Port Allocation. + // + // + // If not specified, it is disabled by default. + // + // + // If set to true, + // + // - Dynamic Port Allocation will be enabled on this NAT + // config. + // - enableEndpointIndependentMapping cannot be set to true. + // - If minPorts is set, minPortsPerVm must be set to a + // power of two greater than or equal to 32. If minPortsPerVm is not set, a + // minimum of 32 ports will be allocated to a VM from this NAT + // config. EnableDynamicPortAllocation bool `json:"enableDynamicPortAllocation,omitempty"` EnableEndpointIndependentMapping bool `json:"enableEndpointIndependentMapping,omitempty"` // EndpointTypes: List of NAT-ted endpoint types supported by the Nat Gateway. - // If the list is empty, then it will be equivalent to include ENDPOINT_TYPE_VM + // If the list + // is empty, then it will be equivalent to include ENDPOINT_TYPE_VM // // Possible values: // "ENDPOINT_TYPE_MANAGED_PROXY_LB" - This is used for regional Application - // Load Balancers (internal and external) and regional proxy Network Load - // Balancers (internal and external) endpoints. + // Load Balancers (internal and + // external) and regional proxy Network Load Balancers (internal and + // external) endpoints. // "ENDPOINT_TYPE_SWG" - This is used for Secure Web Gateway endpoints. // "ENDPOINT_TYPE_VM" - This is the default. EndpointTypes []string `json:"endpointTypes,omitempty"` @@ -38237,49 +63235,78 @@ type RouterNat struct { // LogConfig: Configure logging on this NAT. LogConfig *RouterNatLogConfig `json:"logConfig,omitempty"` // MaxPortsPerVm: Maximum number of ports allocated to a VM from this NAT - // config when Dynamic Port Allocation is enabled. If Dynamic Port Allocation - // is not enabled, this field has no effect. If Dynamic Port Allocation is - // enabled, and this field is set, it must be set to a power of two greater - // than minPortsPerVm, or 64 if minPortsPerVm is not set. If Dynamic Port - // Allocation is enabled and this field is not set, a maximum of 65536 ports - // will be allocated to a VM from this NAT config. + // config when + // Dynamic Port Allocation is enabled. + // + // + // If Dynamic Port Allocation is not enabled, this field has no effect. + // + // + // If Dynamic Port Allocation is enabled, and this field is set, it must be + // set to a power of two greater than minPortsPerVm, or 64 if minPortsPerVm + // is not set. + // + // + // If Dynamic Port Allocation is enabled and this field is not set, + // a maximum of 65536 ports will be allocated to a VM from this NAT + // config. MaxPortsPerVm int64 `json:"maxPortsPerVm,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 is - // rounded up to the nearest power of 2. For example, if the value of this - // field is 50, at least 64 ports are allocated to a VM. + // config. If not + // set, a default number of ports is allocated to a VM. This is rounded + // up to the nearest power of 2. For example, if the value of this field is + // 50, at least 64 ports are allocated to a VM. MinPortsPerVm int64 `json:"minPortsPerVm,omitempty"` - // Name: Unique name of this Nat service. The name must be 1-63 characters long - // and comply with RFC1035. + // Name: Unique name of this Nat service. + // The name must be 1-63 characters long and comply withRFC1035. Name string `json:"name,omitempty"` + // Nat64Subnetworks: List of Subnetwork resources whose traffic should be + // translated by NAT64 + // Gateway. It is used only when LIST_OF_IPV6_SUBNETWORKS is + // selected for the SubnetworkIpRangeToNat64Option above. + Nat64Subnetworks []*RouterNatSubnetworkToNat64 `json:"nat64Subnetworks,omitempty"` // NatIpAllocateOption: Specify the NatIpAllocateOption, which can take one of - // the following values: - MANUAL_ONLY: Uses only Nat IP addresses provided by - // customers. When there are not enough specified Nat IPs, the Nat service - // fails for new VMs. - AUTO_ONLY: Nat IPs are allocated by Google Cloud - // Platform; customers can't specify any Nat IPs. When choosing AUTO_ONLY, then - // nat_ip should be empty. + // the following + // values: + // + // - MANUAL_ONLY: Uses only Nat IP addresses provided by + // customers. When there are not enough specified Nat IPs, the Nat service + // fails for new VMs. + // - AUTO_ONLY: Nat IPs are allocated by Google Cloud Platform; customers + // can't specify any Nat IPs. When choosing AUTO_ONLY, then nat_ip should + // be empty. // // Possible values: // "AUTO_ONLY" - Nat IPs are allocated by GCP; customers can not specify any // Nat IPs. // "MANUAL_ONLY" - Only use Nat IPs provided by customers. When specified Nat - // IPs are not enough then the Nat service fails for new VMs. + // IPs are not + // enough then the Nat service fails for new VMs. NatIpAllocateOption string `json:"natIpAllocateOption,omitempty"` // NatIps: A list of URLs of the IP resources used for this Nat service. These - // IP addresses must be valid static external IP addresses assigned to the + // IP + // addresses must be valid static external IP addresses assigned to + // the // project. NatIps []string `json:"natIps,omitempty"` // Rules: A list of rules associated with this NAT. Rules []*RouterNatRule `json:"rules,omitempty"` // SourceSubnetworkIpRangesToNat: Specify the Nat option, which can take one of - // the following values: - ALL_SUBNETWORKS_ALL_IP_RANGES: All of the IP ranges - // in every Subnetwork are allowed to Nat. - - // ALL_SUBNETWORKS_ALL_PRIMARY_IP_RANGES: All of the primary IP ranges in every - // Subnetwork are allowed to Nat. - LIST_OF_SUBNETWORKS: A list of Subnetworks - // are allowed to Nat (specified in the field subnetwork below) The default is - // SUBNETWORK_IP_RANGE_TO_NAT_OPTION_UNSPECIFIED. Note that if this field - // contains ALL_SUBNETWORKS_ALL_IP_RANGES then there should not be any other - // Router.Nat section in any Router for this network in this region. + // the following values: + // + // - ALL_SUBNETWORKS_ALL_IP_RANGES: All of the IP ranges in every + // Subnetwork are allowed to Nat. + // - ALL_SUBNETWORKS_ALL_PRIMARY_IP_RANGES: All of the primary IP ranges + // in every Subnetwork are allowed to Nat. + // - LIST_OF_SUBNETWORKS: A list of Subnetworks are allowed to Nat + // (specified in the field subnetwork below) + // + // + // The default is SUBNETWORK_IP_RANGE_TO_NAT_OPTION_UNSPECIFIED. + // Note that if this field contains ALL_SUBNETWORKS_ALL_IP_RANGES then + // there + // should not be any other Router.Nat section in any Router for this network + // in this region. // // Possible values: // "ALL_SUBNETWORKS_ALL_IP_RANGES" - All the IP ranges in every Subnetwork @@ -38287,27 +63314,61 @@ type RouterNat struct { // "ALL_SUBNETWORKS_ALL_PRIMARY_IP_RANGES" - All the primary IP ranges in // every Subnetwork are allowed to Nat. // "LIST_OF_SUBNETWORKS" - A list of Subnetworks are allowed to Nat - // (specified in the field subnetwork below) + // (specified in the field + // subnetwork below) SourceSubnetworkIpRangesToNat string `json:"sourceSubnetworkIpRangesToNat,omitempty"` + // SourceSubnetworkIpRangesToNat64: Specify the Nat option for NAT64, which can + // take one of the following + // values: + // + // - ALL_IPV6_SUBNETWORKS: All of the IP ranges in + // every Subnetwork are allowed to Nat. + // - LIST_OF_IPV6_SUBNETWORKS: A list of Subnetworks are allowed to Nat + // (specified in the field nat64_subnetwork below) + // + // + // The default is NAT64_OPTION_UNSPECIFIED. + // Note that if this field contains NAT64_ALL_V6_SUBNETWORKS no + // other + // Router.Nat section in this region can also enable NAT64 for any + // Subnetworks in this network. Other Router.Nat sections can still be + // present to enable NAT44 only. + // + // Possible values: + // "ALL_IPV6_SUBNETWORKS" - NAT64 is enabled for all the IPv6 subnet + // ranges. + // In dual stack subnets, NAT64 will only be enabled for IPv6-only VMs. + // "LIST_OF_IPV6_SUBNETWORKS" - NAT64 is enabled for a list of IPv6 subnet + // ranges. + // In dual stack subnets, NAT64 will only be enabled for IPv6-only VMs. + // If this option is used, the nat64_subnetworks field must be specified. + SourceSubnetworkIpRangesToNat64 string `json:"sourceSubnetworkIpRangesToNat64,omitempty"` // Subnetworks: A list of Subnetwork resources whose traffic should be - // translated by NAT Gateway. It is used only when LIST_OF_SUBNETWORKS is - // selected for the SubnetworkIpRangeToNatOption above. + // translated by NAT + // Gateway. It is used only when LIST_OF_SUBNETWORKS is selected for + // the + // SubnetworkIpRangeToNatOption above. Subnetworks []*RouterNatSubnetworkToNat `json:"subnetworks,omitempty"` // TcpEstablishedIdleTimeoutSec: Timeout (in seconds) for TCP established - // connections. Defaults to 1200s if not set. + // connections. Defaults to 1200s + // if not set. TcpEstablishedIdleTimeoutSec int64 `json:"tcpEstablishedIdleTimeoutSec,omitempty"` // TcpTimeWaitTimeoutSec: Timeout (in seconds) for TCP connections that are in - // TIME_WAIT state. Defaults to 120s if not set. + // TIME_WAIT state. + // Defaults to 120s if not set. TcpTimeWaitTimeoutSec int64 `json:"tcpTimeWaitTimeoutSec,omitempty"` // TcpTransitoryIdleTimeoutSec: Timeout (in seconds) for TCP transitory - // connections. Defaults to 30s if not set. + // connections. Defaults to 30s if + // not set. TcpTransitoryIdleTimeoutSec int64 `json:"tcpTransitoryIdleTimeoutSec,omitempty"` - // Type: Indicates whether this NAT is used for public or private IP + // Type: Indicates whether this NAT is used for public or private + // IP // translation. If unspecified, it defaults to PUBLIC. // // Possible values: // "PRIVATE" - NAT used for private IP translation. - // "PUBLIC" - NAT used for public IP translation. This is the default. + // "PUBLIC" - NAT used for public IP translation. + // This is the default. Type string `json:"type,omitempty"` // UdpIdleTimeoutSec: Timeout (in seconds) for UDP connections. Defaults to 30s // if not set. @@ -38325,21 +63386,25 @@ type RouterNat struct { NullFields []string `json:"-"` } -func (s *RouterNat) MarshalJSON() ([]byte, error) { +func (s RouterNat) MarshalJSON() ([]byte, error) { type NoMethod RouterNat - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } // RouterNatLogConfig: Configuration of logging on a NAT. type RouterNatLogConfig struct { // Enable: Indicates whether or not to export logs. This is false by default. Enable bool `json:"enable,omitempty"` - // Filter: Specify the desired filtering of logs on this NAT. If unspecified, - // logs are exported for all connections handled by this NAT. This option can - // take one of the following values: - ERRORS_ONLY: Export logs only for - // connection failures. - TRANSLATIONS_ONLY: Export logs only for successful - // connections. - ALL: Export logs for all connections, successful and - // unsuccessful. + // Filter: Specify the desired filtering of logs on this NAT. If + // unspecified, + // logs are exported for all connections handled by this NAT. + // This option can take one of the following values: + // + // - ERRORS_ONLY: Export logs only for connection failures. + // - TRANSLATIONS_ONLY: Export logs only for successful + // connections. + // - ALL: Export logs for all connections, successful and + // unsuccessful. // // Possible values: // "ALL" - Export logs for all (successful and unsuccessful) connections. @@ -38352,347 +63417,1072 @@ type RouterNatLogConfig struct { // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. ForceSendFields []string `json:"-"` - // NullFields is a list of field names (e.g. "Enable") to include in API - // requests with the JSON null value. By default, fields with empty values are - // omitted from API requests. See + // NullFields is a list of field names (e.g. "Enable") to include in API + // requests with the JSON null value. By default, fields with empty values are + // omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s RouterNatLogConfig) MarshalJSON() ([]byte, error) { + type NoMethod RouterNatLogConfig + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +type RouterNatRule struct { + // Action: The action to be enforced for traffic that matches this rule. + Action *RouterNatRuleAction `json:"action,omitempty"` + // Description: An optional description of this rule. + Description string `json:"description,omitempty"` + // Match: CEL expression that specifies the match condition that egress + // traffic + // from a VM is evaluated against. If it evaluates to true, the + // corresponding `action` is enforced. + // + // The following examples are valid match expressions for public + // NAT: + // + // `inIpRange(destination.ip, '1.1.0.0/16') || inIpRange(destination.ip, + // '2.2.0.0/16')` + // + // `destination.ip == '1.1.0.1' || destination.ip == '8.8.8.8'` + // + // The following example is a valid match expression for private + // NAT: + // + // `nexthop.hub + // == + // '//networkconnectivity.googleapis.com/projects/my-project/locations/global/hu + // bs/hub-1'` + Match string `json:"match,omitempty"` + // RuleNumber: An integer uniquely identifying a rule in the list. The rule + // number + // must be a positive value between 0 and 65000, and + // must be unique among rules within a NAT. + RuleNumber int64 `json:"ruleNumber,omitempty"` + // ForceSendFields is a list of field names (e.g. "Action") to unconditionally + // include in API requests. By default, fields with empty or default values are + // omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + ForceSendFields []string `json:"-"` + // NullFields is a list of field names (e.g. "Action") to include in API + // requests with the JSON null value. By default, fields with empty values are + // omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s RouterNatRule) MarshalJSON() ([]byte, error) { + type NoMethod RouterNatRule + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +type RouterNatRuleAction struct { + // SourceNatActiveIps: A list of URLs of the IP resources used for this NAT + // rule. These IP + // addresses must be valid static external IP addresses assigned to + // the + // project. + // This field is used for public NAT. + SourceNatActiveIps []string `json:"sourceNatActiveIps,omitempty"` + // SourceNatActiveRanges: A list of URLs of the subnetworks used as source + // ranges for this + // NAT Rule. These subnetworks must have purpose set to PRIVATE_NAT. + // This field is used for private NAT. + SourceNatActiveRanges []string `json:"sourceNatActiveRanges,omitempty"` + // SourceNatDrainIps: A list of URLs of the IP resources to be drained. These + // IPs + // must be valid static external IPs that have been assigned to the NAT. + // These IPs should be used for updating/patching a NAT rule only. + // This field is used for public NAT. + SourceNatDrainIps []string `json:"sourceNatDrainIps,omitempty"` + // SourceNatDrainRanges: A list of URLs of subnetworks representing source + // ranges to be + // drained. This is only supported on patch/update, and these + // subnetworks must have previously been used as active ranges in this + // NAT Rule. + // This field is used for private NAT. + SourceNatDrainRanges []string `json:"sourceNatDrainRanges,omitempty"` + // ForceSendFields is a list of field names (e.g. "SourceNatActiveIps") to + // unconditionally include in API requests. By default, fields with empty or + // default values are omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + ForceSendFields []string `json:"-"` + // NullFields is a list of field names (e.g. "SourceNatActiveIps") to include + // in API requests with the JSON null value. By default, fields with empty + // values are omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s RouterNatRuleAction) MarshalJSON() ([]byte, error) { + type NoMethod RouterNatRuleAction + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +// RouterNatSubnetworkToNat: Defines the IP ranges that want to use NAT for a +// subnetwork. +type RouterNatSubnetworkToNat struct { + // Name: URL for the subnetwork resource that will use NAT. + Name string `json:"name,omitempty"` + // SecondaryIpRangeNames: A list of the secondary ranges of the Subnetwork that + // are allowed to + // use NAT. This can be populated only if "LIST_OF_SECONDARY_IP_RANGES" + // is one of the values in source_ip_ranges_to_nat. + SecondaryIpRangeNames []string `json:"secondaryIpRangeNames,omitempty"` + // SourceIpRangesToNat: Specify the options for NAT ranges in the Subnetwork. + // All + // options of a single value are valid + // except + // NAT_IP_RANGE_OPTION_UNSPECIFIED. + // The only valid option with multiple values is: + // ["PRIMARY_IP_RANGE", + // "LIST_OF_SECONDARY_IP_RANGES"] + // Default: [ALL_IP_RANGES] + // + // Possible values: + // "ALL_IP_RANGES" - The primary and all the secondary ranges are allowed to + // Nat. + // "LIST_OF_SECONDARY_IP_RANGES" - A list of secondary ranges are allowed to + // Nat. + // "PRIMARY_IP_RANGE" - The primary range is allowed to Nat. + SourceIpRangesToNat []string `json:"sourceIpRangesToNat,omitempty"` + // ForceSendFields is a list of field names (e.g. "Name") to unconditionally + // include in API requests. By default, fields with empty or default values are + // omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + ForceSendFields []string `json:"-"` + // NullFields is a list of field names (e.g. "Name") to include in API requests + // with the JSON null value. By default, fields with empty values are omitted + // from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s RouterNatSubnetworkToNat) MarshalJSON() ([]byte, error) { + type NoMethod RouterNatSubnetworkToNat + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +// RouterNatSubnetworkToNat64: Specifies a subnetwork to enable NAT64. +type RouterNatSubnetworkToNat64 struct { + // Name: URL for the subnetwork resource that will use NAT64. + Name string `json:"name,omitempty"` + // ForceSendFields is a list of field names (e.g. "Name") to unconditionally + // include in API requests. By default, fields with empty or default values are + // omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + ForceSendFields []string `json:"-"` + // NullFields is a list of field names (e.g. "Name") to include in API requests + // with the JSON null value. By default, fields with empty values are omitted + // from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s RouterNatSubnetworkToNat64) MarshalJSON() ([]byte, error) { + type NoMethod RouterNatSubnetworkToNat64 + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +// RouterParams: Additional router parameters. +type RouterParams struct { + // ResourceManagerTags: Tag keys/values directly bound to this resource. + // The field is allowed for INSERT + // only. The keys/values to set on the resource should be specified in + // either ID { : } or Namespaced format + // { : }. + // For example the following are valid inputs: + // * {"tagKeys/333" : "tagValues/444", "tagKeys/123" : "tagValues/456"} + // * {"123/environment" : "production", "345/abc" : "xyz"} + // Note: + // * Invalid combinations of ID & namespaced format is not supported. For + // instance: {"123/environment" : "tagValues/444"} is invalid. + // * Inconsistent format is not supported. For instance: + // {"tagKeys/333" : "tagValues/444", "123/env" : "prod"} is invalid. + ResourceManagerTags map[string]string `json:"resourceManagerTags,omitempty"` + // ForceSendFields is a list of field names (e.g. "ResourceManagerTags") to + // unconditionally include in API requests. By default, fields with empty or + // default values are omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + ForceSendFields []string `json:"-"` + // NullFields is a list of field names (e.g. "ResourceManagerTags") to include + // in API requests with the JSON null value. By default, fields with empty + // values are omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s RouterParams) MarshalJSON() ([]byte, error) { + type NoMethod RouterParams + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +type RouterStatus struct { + // BestRoutes: A list of the best dynamic routes for this Cloud Router's + // Virtual Private + // Cloud (VPC) network in the same region as this Cloud Router. + // + // Lists all of the best routes per prefix that are programmed into + // this + // region's VPC data plane. + // + // When global dynamic routing mode is turned on in the VPC network, this + // list + // can include cross-region dynamic routes from Cloud Routers in other + // regions. + BestRoutes []*Route `json:"bestRoutes,omitempty"` + // BestRoutesForRouter: A list of the best BGP routes learned by this Cloud + // Router. + // + // It is possible that routes listed might not be programmed into the + // data + // plane, if the Google Cloud control plane finds a more optimal route for + // a + // prefix than a route learned by this Cloud Router. + BestRoutesForRouter []*Route `json:"bestRoutesForRouter,omitempty"` + BgpPeerStatus []*RouterStatusBgpPeerStatus `json:"bgpPeerStatus,omitempty"` + NatStatus []*RouterStatusNatStatus `json:"natStatus,omitempty"` + // NccGateway: URI of the ncc_gateway to which this router associated. + NccGateway string `json:"nccGateway,omitempty"` + // Network: URI of the network to which this router belongs. + Network string `json:"network,omitempty"` + // ForceSendFields is a list of field names (e.g. "BestRoutes") to + // unconditionally include in API requests. By default, fields with empty or + // default values are omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + ForceSendFields []string `json:"-"` + // NullFields is a list of field names (e.g. "BestRoutes") to include in API + // requests with the JSON null value. By default, fields with empty values are + // omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s RouterStatus) MarshalJSON() ([]byte, error) { + type NoMethod RouterStatus + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +type RouterStatusBgpPeerStatus struct { + // AdvertisedRoutes: Routes that were advertised to the remote BGP peer + AdvertisedRoutes []*Route `json:"advertisedRoutes,omitempty"` + BfdStatus *BfdStatus `json:"bfdStatus,omitempty"` + // EnableIpv4: Output only. Enable IPv4 traffic over BGP Peer. + // It is enabled by default if the peerIpAddress is version 4. + EnableIpv4 bool `json:"enableIpv4,omitempty"` + // EnableIpv6: Output only. Enable IPv6 traffic over BGP Peer. + // It is enabled by default if the peerIpAddress is version 6. + EnableIpv6 bool `json:"enableIpv6,omitempty"` + // IpAddress: Output only. IP address of the local BGP interface. + IpAddress string `json:"ipAddress,omitempty"` + // Ipv4NexthopAddress: Output only. IPv4 address of the local BGP interface. + Ipv4NexthopAddress string `json:"ipv4NexthopAddress,omitempty"` + // Ipv6NexthopAddress: Output only. IPv6 address of the local BGP interface. + Ipv6NexthopAddress string `json:"ipv6NexthopAddress,omitempty"` + // LinkedVpnTunnel: Output only. URL of the VPN tunnel that this BGP peer + // controls. + LinkedVpnTunnel string `json:"linkedVpnTunnel,omitempty"` + // Md5AuthEnabled: Informs whether MD5 authentication is enabled on this BGP + // peer. + Md5AuthEnabled bool `json:"md5AuthEnabled,omitempty"` + // Name: Output only. Name of this BGP peer. Unique within the Routers + // resource. + Name string `json:"name,omitempty"` + // NumLearnedRoutes: Output only. Number of routes learned from the remote BGP + // Peer. + NumLearnedRoutes int64 `json:"numLearnedRoutes,omitempty"` + // PeerIpAddress: Output only. IP address of the remote BGP interface. + PeerIpAddress string `json:"peerIpAddress,omitempty"` + // PeerIpv4NexthopAddress: Output only. IPv4 address of the remote BGP + // interface. + PeerIpv4NexthopAddress string `json:"peerIpv4NexthopAddress,omitempty"` + // PeerIpv6NexthopAddress: Output only. IPv6 address of the remote BGP + // interface. + PeerIpv6NexthopAddress string `json:"peerIpv6NexthopAddress,omitempty"` + // RouterApplianceInstance: Output only. [Output only] URI of the VM instance + // that is used as third-party router + // appliances such as Next Gen Firewalls, Virtual Routers, or + // Router + // Appliances. + // The VM instance is the peer side of the BGP session. + RouterApplianceInstance string `json:"routerApplianceInstance,omitempty"` + // State: Output only. The state of the BGP session. For a list of possible + // values for this + // field, seeBGP session states. + State string `json:"state,omitempty"` + // Status: Output only. Status of the BGP peer: {UP, DOWN} + // + // Possible values: + // "DOWN" + // "UNKNOWN" + // "UP" + Status string `json:"status,omitempty"` + // StatusReason: Indicates why particular status was returned. + // + // Possible values: + // "IPV4_PEER_ON_IPV6_ONLY_CONNECTION" - BGP peer disabled because it + // requires IPv4 but the underlying + // connection is IPv6-only. + // "IPV6_PEER_ON_IPV4_ONLY_CONNECTION" - BGP peer disabled because it + // requires IPv6 but the underlying + // connection is IPv4-only. + // "MD5_AUTH_INTERNAL_PROBLEM" - Indicates internal problems with + // configuration of MD5 authentication. + // This particular reason can only be returned when md5AuthEnabled is true + // and status is DOWN. + // "STATUS_REASON_UNSPECIFIED" + StatusReason string `json:"statusReason,omitempty"` + // Uptime: Output only. Time this session has been up. + // Format: + // 14 years, 51 weeks, 6 days, 23 hours, 59 minutes, 59 seconds + Uptime string `json:"uptime,omitempty"` + // UptimeSeconds: Output only. Time this session has been up, in + // seconds. + // Format: + // 145 + UptimeSeconds string `json:"uptimeSeconds,omitempty"` + // ForceSendFields is a list of field names (e.g. "AdvertisedRoutes") to + // unconditionally include in API requests. By default, fields with empty or + // default values are omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + ForceSendFields []string `json:"-"` + // NullFields is a list of field names (e.g. "AdvertisedRoutes") to include in + // API requests with the JSON null value. By default, fields with empty values + // are omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s RouterStatusBgpPeerStatus) MarshalJSON() ([]byte, error) { + type NoMethod RouterStatusBgpPeerStatus + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +// RouterStatusNatStatus: Status of a NAT contained in this router. +type RouterStatusNatStatus struct { + // AutoAllocatedNatIps: Output only. A list of IPs auto-allocated for NAT. + // Example: ["1.1.1.1", "129.2.16.89"] + AutoAllocatedNatIps []string `json:"autoAllocatedNatIps,omitempty"` + // DrainAutoAllocatedNatIps: Output only. A list of IPs auto-allocated for NAT + // that are in drain mode. + // Example: ["1.1.1.1", "179.12.26.133"]. + DrainAutoAllocatedNatIps []string `json:"drainAutoAllocatedNatIps,omitempty"` + // DrainUserAllocatedNatIps: Output only. A list of IPs user-allocated for NAT + // that are in drain mode. + // Example: ["1.1.1.1", "179.12.26.133"]. + DrainUserAllocatedNatIps []string `json:"drainUserAllocatedNatIps,omitempty"` + // MinExtraNatIpsNeeded: Output only. The number of extra IPs to allocate. This + // will be greater than 0 only if + // user-specified IPs are NOT enough to allow all configured VMs to use + // NAT. + // This value is meaningful only when auto-allocation of NAT IPs is *not* + // used. + MinExtraNatIpsNeeded int64 `json:"minExtraNatIpsNeeded,omitempty"` + // Name: Output only. Unique name of this NAT. + Name string `json:"name,omitempty"` + // NumVmEndpointsWithNatMappings: Output only. Number of VM endpoints (i.e., + // Nics) that can use NAT. + NumVmEndpointsWithNatMappings int64 `json:"numVmEndpointsWithNatMappings,omitempty"` + // RuleStatus: Status of rules in this NAT. + RuleStatus []*RouterStatusNatStatusNatRuleStatus `json:"ruleStatus,omitempty"` + // UserAllocatedNatIpResources: Output only. A list of fully qualified URLs of + // reserved IP address resources. + UserAllocatedNatIpResources []string `json:"userAllocatedNatIpResources,omitempty"` + // UserAllocatedNatIps: Output only. A list of IPs user-allocated for NAT. + // They will be raw IP strings like "179.12.26.133". + UserAllocatedNatIps []string `json:"userAllocatedNatIps,omitempty"` + // ForceSendFields is a list of field names (e.g. "AutoAllocatedNatIps") to + // unconditionally include in API requests. By default, fields with empty or + // default values are omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + ForceSendFields []string `json:"-"` + // NullFields is a list of field names (e.g. "AutoAllocatedNatIps") to include + // in API requests with the JSON null value. By default, fields with empty + // values are omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s RouterStatusNatStatus) MarshalJSON() ([]byte, error) { + type NoMethod RouterStatusNatStatus + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +// RouterStatusNatStatusNatRuleStatus: Status of a NAT Rule contained in this +// NAT. +type RouterStatusNatStatusNatRuleStatus struct { + // ActiveNatIps: Output only. A list of active IPs for NAT. + // Example: ["1.1.1.1", "179.12.26.133"]. + ActiveNatIps []string `json:"activeNatIps,omitempty"` + // DrainNatIps: Output only. A list of IPs for NAT that are in drain + // mode. + // Example: ["1.1.1.1", "179.12.26.133"]. + DrainNatIps []string `json:"drainNatIps,omitempty"` + // MinExtraIpsNeeded: Output only. The number of extra IPs to allocate. This + // will be greater than 0 only + // if the existing IPs in this NAT Rule are NOT enough to allow all + // configured VMs to use NAT. + MinExtraIpsNeeded int64 `json:"minExtraIpsNeeded,omitempty"` + // NumVmEndpointsWithNatMappings: Output only. Number of VM endpoints (i.e., + // NICs) that have NAT Mappings from this + // NAT Rule. + NumVmEndpointsWithNatMappings int64 `json:"numVmEndpointsWithNatMappings,omitempty"` + // RuleNumber: Output only. Rule number of the rule. + RuleNumber int64 `json:"ruleNumber,omitempty"` + // ForceSendFields is a list of field names (e.g. "ActiveNatIps") to + // unconditionally include in API requests. By default, fields with empty or + // default values are omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + ForceSendFields []string `json:"-"` + // NullFields is a list of field names (e.g. "ActiveNatIps") to include in API + // requests with the JSON null value. By default, fields with empty values are + // omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s RouterStatusNatStatusNatRuleStatus) MarshalJSON() ([]byte, error) { + type NoMethod RouterStatusNatStatusNatRuleStatus + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +type RouterStatusResponse struct { + // Kind: Output only. Type of resource. + Kind string `json:"kind,omitempty"` + Result *RouterStatus `json:"result,omitempty"` + + // ServerResponse contains the HTTP response code and headers from the server. + googleapi.ServerResponse `json:"-"` + // ForceSendFields is a list of field names (e.g. "Kind") to unconditionally + // include in API requests. By default, fields with empty or default values are + // omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + ForceSendFields []string `json:"-"` + // NullFields is a list of field names (e.g. "Kind") to include in API requests + // with the JSON null value. By default, fields with empty values are omitted + // from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s RouterStatusResponse) MarshalJSON() ([]byte, error) { + type NoMethod RouterStatusResponse + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +type RoutersGetNamedSetResponse struct { + // Etag: end_interface: MixerGetResponseWithEtagBuilder + Etag string `json:"etag,omitempty"` + Resource *NamedSet `json:"resource,omitempty"` + + // ServerResponse contains the HTTP response code and headers from the server. + googleapi.ServerResponse `json:"-"` + // ForceSendFields is a list of field names (e.g. "Etag") to unconditionally + // include in API requests. By default, fields with empty or default values are + // omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + ForceSendFields []string `json:"-"` + // NullFields is a list of field names (e.g. "Etag") to include in API requests + // with the JSON null value. By default, fields with empty values are omitted + // from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s RoutersGetNamedSetResponse) MarshalJSON() ([]byte, error) { + type NoMethod RoutersGetNamedSetResponse + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +type RoutersGetRoutePolicyResponse struct { + Resource *RoutePolicy `json:"resource,omitempty"` + + // ServerResponse contains the HTTP response code and headers from the server. + googleapi.ServerResponse `json:"-"` + // ForceSendFields is a list of field names (e.g. "Resource") to + // unconditionally include in API requests. By default, fields with empty or + // default values are omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + ForceSendFields []string `json:"-"` + // NullFields is a list of field names (e.g. "Resource") to include in API + // requests with the JSON null value. By default, fields with empty values are + // omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s RoutersGetRoutePolicyResponse) MarshalJSON() ([]byte, error) { + type NoMethod RoutersGetRoutePolicyResponse + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +type RoutersListBgpRoutes struct { + Etag string `json:"etag,omitempty"` + // Id: [Output Only] The unique identifier for the resource. This identifier + // is + // defined by the server. + Id string `json:"id,omitempty"` + // Kind: Output only. [Output Only] Type of resource. + // Alwayscompute#routersListBgpRoutes for lists of bgp routes. + 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 thanmaxResults, 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 bgp routes. + Result []*BgpRoute `json:"result,omitempty"` + // SelfLink: Output only. [Output Only] Server-defined URL for this resource. + SelfLink string `json:"selfLink,omitempty"` + // Unreachables: Output only. [Output Only] Unreachable resources. + Unreachables []string `json:"unreachables,omitempty"` + // Warning: [Output Only] Informational warning message. + Warning *RoutersListBgpRoutesWarning `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. "Etag") to unconditionally + // include in API requests. By default, fields with empty or default values are + // omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + ForceSendFields []string `json:"-"` + // NullFields is a list of field names (e.g. "Etag") to include in API requests + // with the JSON null value. By default, fields with empty values are omitted + // from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s RoutersListBgpRoutes) MarshalJSON() ([]byte, error) { + type NoMethod RoutersListBgpRoutes + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +// RoutersListBgpRoutesWarning: [Output Only] Informational warning message. +type RoutersListBgpRoutesWarning 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" - Warning about failed cleanup of transient changes made + // by a failed + // operation. + // "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was created. + // "DEPRECATED_TYPE_USED" - When deploying and at least one of the resources + // has a type marked as + // deprecated + // "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk that is + // larger than image size. + // "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the + // resources has a type marked as + // experimental + // "EXTERNAL_API_WARNING" - Warning that is present in an external api call + // "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been + // overridden. + // Deprecated unused field. + // "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an injected + // kernel, which is deprecated. + // "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB" - A WEIGHTED_MAGLEV backend + // service is associated with a health check that is + // not of type HTTP/HTTPS/HTTP2. + // "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a + // exceedingly large number of resources + // "LIST_OVERHEAD_QUOTA_EXCEED" - Resource can't be retrieved due to list + // overhead quota exceed + // which captures the amount of resources filtered out by + // user-defined list filter. + // "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type + // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is not + // assigned to an instance on the + // network. + // "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot ip + // forward. + // "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE" - The route's nextHopInstance + // URL refers to an instance that does not have an + // ipv6 interface on the same network as the route. + // "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL refers to + // an instance that does not exist. + // "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance URL + // refers to an instance that is not on the + // same network as the route. + // "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not have a + // status of RUNNING. + // "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to continue + // the process despite + // the mentioned error. + // "NO_RESULTS_ON_PAGE" - No results are present on a particular list page. + // "PARTIAL_SUCCESS" - Success is reported, but some results may be missing + // due to errors + // "QUOTA_INFO_UNAVAILABLE" - Quota information is not available to client + // requests (e.g: + // regions.list). + // "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource that + // requires a TOS they have not + // accepted. + // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a resource is + // in use. + // "RESOURCE_NOT_DELETED" - One or more of the resources set to auto-delete + // could not be deleted + // because they were in use. + // "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is + // ignored. + // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in instance + // group manager is valid as such, but + // its application does not make a lot of sense, because it allows only + // single instance in instance group. + // "UNDECLARED_PROPERTIES" - When undeclared properties in the schema are + // present + // "UNREACHABLE" - A given scope cannot be reached. + 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 []*RoutersListBgpRoutesWarningData `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 or default values are + // omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + 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. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } -func (s *RouterNatLogConfig) MarshalJSON() ([]byte, error) { - type NoMethod RouterNatLogConfig - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s RoutersListBgpRoutesWarning) MarshalJSON() ([]byte, error) { + type NoMethod RoutersListBgpRoutesWarning + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -type RouterNatRule struct { - // Action: The action to be enforced for traffic that matches this rule. - Action *RouterNatRuleAction `json:"action,omitempty"` - // Description: An optional description of this rule. - Description string `json:"description,omitempty"` - // Match: CEL expression that specifies the match condition that egress traffic - // from a VM is evaluated against. If it evaluates to true, the corresponding - // `action` is enforced. The following examples are valid match expressions for - // public NAT: "inIpRange(destination.ip, '1.1.0.0/16') || - // inIpRange(destination.ip, '2.2.0.0/16')" "destination.ip == '1.1.0.1' || - // destination.ip == '8.8.8.8'" The following example is a valid match - // expression for private NAT: "nexthop.hub == - // '//networkconnectivity.googleapis.com/projects/my-project/locations/global/hu - // bs/hub-1'" - Match string `json:"match,omitempty"` - // RuleNumber: An integer uniquely identifying a rule in the list. The rule - // number must be a positive value between 0 and 65000, and must be unique - // among rules within a NAT. - RuleNumber int64 `json:"ruleNumber,omitempty"` - // ForceSendFields is a list of field names (e.g. "Action") to unconditionally +type RoutersListBgpRoutesWarningData 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 or default values are // omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. ForceSendFields []string `json:"-"` - // NullFields is a list of field names (e.g. "Action") to include in API - // requests with the JSON null value. By default, fields with empty values are - // omitted from API requests. See + // 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. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } -func (s *RouterNatRule) MarshalJSON() ([]byte, error) { - type NoMethod RouterNatRule - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s RoutersListBgpRoutesWarningData) MarshalJSON() ([]byte, error) { + type NoMethod RoutersListBgpRoutesWarningData + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -type RouterNatRuleAction struct { - // SourceNatActiveIps: A list of URLs of the IP resources used for this NAT - // rule. These IP addresses must be valid static external IP addresses assigned - // to the project. This field is used for public NAT. - SourceNatActiveIps []string `json:"sourceNatActiveIps,omitempty"` - // SourceNatActiveRanges: A list of URLs of the subnetworks used as source - // ranges for this NAT Rule. These subnetworks must have purpose set to - // PRIVATE_NAT. This field is used for private NAT. - SourceNatActiveRanges []string `json:"sourceNatActiveRanges,omitempty"` - // SourceNatDrainIps: A list of URLs of the IP resources to be drained. These - // IPs must be valid static external IPs that have been assigned to the NAT. - // These IPs should be used for updating/patching a NAT rule only. This field - // is used for public NAT. - SourceNatDrainIps []string `json:"sourceNatDrainIps,omitempty"` - // SourceNatDrainRanges: A list of URLs of subnetworks representing source - // ranges to be drained. This is only supported on patch/update, and these - // subnetworks must have previously been used as active ranges in this NAT - // Rule. This field is used for private NAT. - SourceNatDrainRanges []string `json:"sourceNatDrainRanges,omitempty"` - // ForceSendFields is a list of field names (e.g. "SourceNatActiveIps") to - // unconditionally include in API requests. By default, fields with empty or - // default values are omitted from API requests. See +type RoutersListNamedSets struct { + Etag string `json:"etag,omitempty"` + // Id: [Output Only] The unique identifier for the resource. This identifier + // is + // defined by the server. + Id string `json:"id,omitempty"` + // Kind: Output only. [Output Only] Type of resource. + // Alwayscompute#routersListNamedSets for lists of named sets. + 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 thanmaxResults, 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 named sets. + Result []*NamedSet `json:"result,omitempty"` + // SelfLink: Output only. [Output Only] Server-defined URL for this resource. + SelfLink string `json:"selfLink,omitempty"` + // Unreachables: Output only. [Output Only] Unreachable resources. + Unreachables []string `json:"unreachables,omitempty"` + // Warning: [Output Only] Informational warning message. + Warning *RoutersListNamedSetsWarning `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. "Etag") to unconditionally + // include in API requests. By default, fields with empty or default values are + // omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. ForceSendFields []string `json:"-"` - // NullFields is a list of field names (e.g. "SourceNatActiveIps") to include - // in API requests with the JSON null value. By default, fields with empty - // values are omitted from API requests. See + // NullFields is a list of field names (e.g. "Etag") to include in API requests + // with the JSON null value. By default, fields with empty values are omitted + // from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } -func (s *RouterNatRuleAction) MarshalJSON() ([]byte, error) { - type NoMethod RouterNatRuleAction - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s RoutersListNamedSets) MarshalJSON() ([]byte, error) { + type NoMethod RoutersListNamedSets + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -// RouterNatSubnetworkToNat: Defines the IP ranges that want to use NAT for a -// subnetwork. -type RouterNatSubnetworkToNat struct { - // Name: URL for the subnetwork resource that will use NAT. - Name string `json:"name,omitempty"` - // SecondaryIpRangeNames: A list of the secondary ranges of the Subnetwork that - // are allowed to use NAT. This can be populated only if - // "LIST_OF_SECONDARY_IP_RANGES" is one of the values in - // source_ip_ranges_to_nat. - SecondaryIpRangeNames []string `json:"secondaryIpRangeNames,omitempty"` - // SourceIpRangesToNat: Specify the options for NAT ranges in the Subnetwork. - // All options of a single value are valid except - // NAT_IP_RANGE_OPTION_UNSPECIFIED. The only valid option with multiple values - // is: ["PRIMARY_IP_RANGE", "LIST_OF_SECONDARY_IP_RANGES"] Default: - // [ALL_IP_RANGES] +// RoutersListNamedSetsWarning: [Output Only] Informational warning message. +type RoutersListNamedSetsWarning 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: - // "ALL_IP_RANGES" - The primary and all the secondary ranges are allowed to - // Nat. - // "LIST_OF_SECONDARY_IP_RANGES" - A list of secondary ranges are allowed to - // Nat. - // "PRIMARY_IP_RANGE" - The primary range is allowed to Nat. - SourceIpRangesToNat []string `json:"sourceIpRangesToNat,omitempty"` - // ForceSendFields is a list of field names (e.g. "Name") to unconditionally + // "CLEANUP_FAILED" - Warning about failed cleanup of transient changes made + // by a failed + // operation. + // "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was created. + // "DEPRECATED_TYPE_USED" - When deploying and at least one of the resources + // has a type marked as + // deprecated + // "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk that is + // larger than image size. + // "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the + // resources has a type marked as + // experimental + // "EXTERNAL_API_WARNING" - Warning that is present in an external api call + // "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been + // overridden. + // Deprecated unused field. + // "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an injected + // kernel, which is deprecated. + // "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB" - A WEIGHTED_MAGLEV backend + // service is associated with a health check that is + // not of type HTTP/HTTPS/HTTP2. + // "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a + // exceedingly large number of resources + // "LIST_OVERHEAD_QUOTA_EXCEED" - Resource can't be retrieved due to list + // overhead quota exceed + // which captures the amount of resources filtered out by + // user-defined list filter. + // "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type + // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is not + // assigned to an instance on the + // network. + // "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot ip + // forward. + // "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE" - The route's nextHopInstance + // URL refers to an instance that does not have an + // ipv6 interface on the same network as the route. + // "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL refers to + // an instance that does not exist. + // "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance URL + // refers to an instance that is not on the + // same network as the route. + // "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not have a + // status of RUNNING. + // "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to continue + // the process despite + // the mentioned error. + // "NO_RESULTS_ON_PAGE" - No results are present on a particular list page. + // "PARTIAL_SUCCESS" - Success is reported, but some results may be missing + // due to errors + // "QUOTA_INFO_UNAVAILABLE" - Quota information is not available to client + // requests (e.g: + // regions.list). + // "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource that + // requires a TOS they have not + // accepted. + // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a resource is + // in use. + // "RESOURCE_NOT_DELETED" - One or more of the resources set to auto-delete + // could not be deleted + // because they were in use. + // "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is + // ignored. + // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in instance + // group manager is valid as such, but + // its application does not make a lot of sense, because it allows only + // single instance in instance group. + // "UNDECLARED_PROPERTIES" - When undeclared properties in the schema are + // present + // "UNREACHABLE" - A given scope cannot be reached. + 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 []*RoutersListNamedSetsWarningData `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 or default values are // omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. ForceSendFields []string `json:"-"` - // NullFields is a list of field names (e.g. "Name") to include in API requests + // 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. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } -func (s *RouterNatSubnetworkToNat) MarshalJSON() ([]byte, error) { - type NoMethod RouterNatSubnetworkToNat - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s RoutersListNamedSetsWarning) MarshalJSON() ([]byte, error) { + type NoMethod RoutersListNamedSetsWarning + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -type RouterStatus struct { - // BestRoutes: Best routes for this router's network. - BestRoutes []*Route `json:"bestRoutes,omitempty"` - // BestRoutesForRouter: Best routes learned by this router. - BestRoutesForRouter []*Route `json:"bestRoutesForRouter,omitempty"` - BgpPeerStatus []*RouterStatusBgpPeerStatus `json:"bgpPeerStatus,omitempty"` - NatStatus []*RouterStatusNatStatus `json:"natStatus,omitempty"` - // Network: URI of the network to which this router belongs. - Network string `json:"network,omitempty"` - // ForceSendFields is a list of field names (e.g. "BestRoutes") to - // unconditionally include in API requests. By default, fields with empty or - // default values are omitted from API requests. See - // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more - // details. - ForceSendFields []string `json:"-"` - // NullFields is a list of field names (e.g. "BestRoutes") to include in API - // requests with the JSON null value. By default, fields with empty values are +type RoutersListNamedSetsWarningData 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 or default values are // omitted from API requests. See - // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. - NullFields []string `json:"-"` -} - -func (s *RouterStatus) MarshalJSON() ([]byte, error) { - type NoMethod RouterStatus - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) -} - -type RouterStatusBgpPeerStatus struct { - // AdvertisedRoutes: Routes that were advertised to the remote BGP peer - AdvertisedRoutes []*Route `json:"advertisedRoutes,omitempty"` - BfdStatus *BfdStatus `json:"bfdStatus,omitempty"` - // EnableIpv4: Enable IPv4 traffic over BGP Peer. It is enabled by default if - // the peerIpAddress is version 4. - EnableIpv4 bool `json:"enableIpv4,omitempty"` - // EnableIpv6: Enable IPv6 traffic over BGP Peer. It is enabled by default if - // the peerIpAddress is version 6. - EnableIpv6 bool `json:"enableIpv6,omitempty"` - // IpAddress: IP address of the local BGP interface. - IpAddress string `json:"ipAddress,omitempty"` - // Ipv4NexthopAddress: IPv4 address of the local BGP interface. - Ipv4NexthopAddress string `json:"ipv4NexthopAddress,omitempty"` - // Ipv6NexthopAddress: IPv6 address of the local BGP interface. - Ipv6NexthopAddress string `json:"ipv6NexthopAddress,omitempty"` - // LinkedVpnTunnel: URL of the VPN tunnel that this BGP peer controls. - LinkedVpnTunnel string `json:"linkedVpnTunnel,omitempty"` - // Md5AuthEnabled: Informs whether MD5 authentication is enabled on this BGP - // peer. - Md5AuthEnabled bool `json:"md5AuthEnabled,omitempty"` - // Name: Name of this BGP peer. Unique within the Routers resource. - Name string `json:"name,omitempty"` - // NumLearnedRoutes: Number of routes learned from the remote BGP Peer. - NumLearnedRoutes int64 `json:"numLearnedRoutes,omitempty"` - // PeerIpAddress: IP address of the remote BGP interface. - PeerIpAddress string `json:"peerIpAddress,omitempty"` - // PeerIpv4NexthopAddress: IPv4 address of the remote BGP interface. - PeerIpv4NexthopAddress string `json:"peerIpv4NexthopAddress,omitempty"` - // PeerIpv6NexthopAddress: IPv6 address of the remote BGP interface. - PeerIpv6NexthopAddress string `json:"peerIpv6NexthopAddress,omitempty"` - // RouterApplianceInstance: [Output only] URI of the VM instance that is used - // as third-party router appliances such as Next Gen Firewalls, Virtual - // Routers, or Router Appliances. The VM instance is the peer side of the BGP - // session. - RouterApplianceInstance string `json:"routerApplianceInstance,omitempty"` - // State: The state of the BGP session. For a list of possible values for this - // field, see BGP session states. - State string `json:"state,omitempty"` - // Status: Status of the BGP peer: {UP, DOWN} - // - // Possible values: - // "DOWN" - // "UNKNOWN" - // "UP" - Status string `json:"status,omitempty"` - // StatusReason: Indicates why particular status was returned. - // - // Possible values: - // "IPV4_PEER_ON_IPV6_ONLY_CONNECTION" - BGP peer disabled because it - // requires IPv4 but the underlying connection is IPv6-only. - // "IPV6_PEER_ON_IPV4_ONLY_CONNECTION" - BGP peer disabled because it - // requires IPv6 but the underlying connection is IPv4-only. - // "MD5_AUTH_INTERNAL_PROBLEM" - Indicates internal problems with - // configuration of MD5 authentication. This particular reason can only be - // returned when md5AuthEnabled is true and status is DOWN. - // "STATUS_REASON_UNSPECIFIED" - StatusReason string `json:"statusReason,omitempty"` - // Uptime: Time this session has been up. Format: 14 years, 51 weeks, 6 days, - // 23 hours, 59 minutes, 59 seconds - Uptime string `json:"uptime,omitempty"` - // UptimeSeconds: Time this session has been up, in seconds. Format: 145 - UptimeSeconds string `json:"uptimeSeconds,omitempty"` - // ForceSendFields is a list of field names (e.g. "AdvertisedRoutes") to - // unconditionally include in API requests. By default, fields with empty or - // default values are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. ForceSendFields []string `json:"-"` - // NullFields is a list of field names (e.g. "AdvertisedRoutes") to include in - // API requests with the JSON null value. By default, fields with empty values - // are omitted from API requests. See + // 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. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } -func (s *RouterStatusBgpPeerStatus) MarshalJSON() ([]byte, error) { - type NoMethod RouterStatusBgpPeerStatus - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s RoutersListNamedSetsWarningData) MarshalJSON() ([]byte, error) { + type NoMethod RoutersListNamedSetsWarningData + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -// RouterStatusNatStatus: Status of a NAT contained in this router. -type RouterStatusNatStatus struct { - // AutoAllocatedNatIps: A list of IPs auto-allocated for NAT. Example: - // ["1.1.1.1", "129.2.16.89"] - AutoAllocatedNatIps []string `json:"autoAllocatedNatIps,omitempty"` - // DrainAutoAllocatedNatIps: A list of IPs auto-allocated for NAT that are in - // drain mode. Example: ["1.1.1.1", "179.12.26.133"]. - DrainAutoAllocatedNatIps []string `json:"drainAutoAllocatedNatIps,omitempty"` - // DrainUserAllocatedNatIps: A list of IPs user-allocated for NAT that are in - // drain mode. Example: ["1.1.1.1", "179.12.26.133"]. - DrainUserAllocatedNatIps []string `json:"drainUserAllocatedNatIps,omitempty"` - // MinExtraNatIpsNeeded: The number of extra IPs to allocate. This will be - // greater than 0 only if user-specified IPs are NOT enough to allow all - // configured VMs to use NAT. This value is meaningful only when - // auto-allocation of NAT IPs is *not* used. - MinExtraNatIpsNeeded int64 `json:"minExtraNatIpsNeeded,omitempty"` - // Name: Unique name of this NAT. - Name string `json:"name,omitempty"` - // NumVmEndpointsWithNatMappings: Number of VM endpoints (i.e., Nics) that can - // use NAT. - NumVmEndpointsWithNatMappings int64 `json:"numVmEndpointsWithNatMappings,omitempty"` - // RuleStatus: Status of rules in this NAT. - RuleStatus []*RouterStatusNatStatusNatRuleStatus `json:"ruleStatus,omitempty"` - // UserAllocatedNatIpResources: A list of fully qualified URLs of reserved IP - // address resources. - UserAllocatedNatIpResources []string `json:"userAllocatedNatIpResources,omitempty"` - // UserAllocatedNatIps: A list of IPs user-allocated for NAT. They will be raw - // IP strings like "179.12.26.133". - UserAllocatedNatIps []string `json:"userAllocatedNatIps,omitempty"` - // ForceSendFields is a list of field names (e.g. "AutoAllocatedNatIps") to - // unconditionally include in API requests. By default, fields with empty or - // default values are omitted from API requests. See +type RoutersListRoutePolicies struct { + Etag string `json:"etag,omitempty"` + // Id: [Output Only] The unique identifier for the resource. This identifier + // is + // defined by the server. + Id string `json:"id,omitempty"` + // Kind: Output only. [Output Only] Type of resource. + // Alwayscompute#routersListRoutePolicies for lists of route policies. + 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 thanmaxResults, 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 route policies. + Result []*RoutePolicy `json:"result,omitempty"` + // SelfLink: Output only. [Output Only] Server-defined URL for this resource. + SelfLink string `json:"selfLink,omitempty"` + // Unreachables: Output only. [Output Only] Unreachable resources. + Unreachables []string `json:"unreachables,omitempty"` + // Warning: [Output Only] Informational warning message. + Warning *RoutersListRoutePoliciesWarning `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. "Etag") to unconditionally + // include in API requests. By default, fields with empty or default values are + // omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. ForceSendFields []string `json:"-"` - // NullFields is a list of field names (e.g. "AutoAllocatedNatIps") to include - // in API requests with the JSON null value. By default, fields with empty - // values are omitted from API requests. See + // NullFields is a list of field names (e.g. "Etag") to include in API requests + // with the JSON null value. By default, fields with empty values are omitted + // from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } -func (s *RouterStatusNatStatus) MarshalJSON() ([]byte, error) { - type NoMethod RouterStatusNatStatus - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s RoutersListRoutePolicies) MarshalJSON() ([]byte, error) { + type NoMethod RoutersListRoutePolicies + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -// RouterStatusNatStatusNatRuleStatus: Status of a NAT Rule contained in this -// NAT. -type RouterStatusNatStatusNatRuleStatus struct { - // ActiveNatIps: A list of active IPs for NAT. Example: ["1.1.1.1", - // "179.12.26.133"]. - ActiveNatIps []string `json:"activeNatIps,omitempty"` - // DrainNatIps: A list of IPs for NAT that are in drain mode. Example: - // ["1.1.1.1", "179.12.26.133"]. - DrainNatIps []string `json:"drainNatIps,omitempty"` - // MinExtraIpsNeeded: The number of extra IPs to allocate. This will be greater - // than 0 only if the existing IPs in this NAT Rule are NOT enough to allow all - // configured VMs to use NAT. - MinExtraIpsNeeded int64 `json:"minExtraIpsNeeded,omitempty"` - // NumVmEndpointsWithNatMappings: Number of VM endpoints (i.e., NICs) that have - // NAT Mappings from this NAT Rule. - NumVmEndpointsWithNatMappings int64 `json:"numVmEndpointsWithNatMappings,omitempty"` - // RuleNumber: Rule number of the rule. - RuleNumber int64 `json:"ruleNumber,omitempty"` - // ForceSendFields is a list of field names (e.g. "ActiveNatIps") to - // unconditionally include in API requests. By default, fields with empty or - // default values are omitted from API requests. See +// RoutersListRoutePoliciesWarning: [Output Only] Informational warning +// message. +type RoutersListRoutePoliciesWarning 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" - Warning about failed cleanup of transient changes made + // by a failed + // operation. + // "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was created. + // "DEPRECATED_TYPE_USED" - When deploying and at least one of the resources + // has a type marked as + // deprecated + // "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk that is + // larger than image size. + // "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the + // resources has a type marked as + // experimental + // "EXTERNAL_API_WARNING" - Warning that is present in an external api call + // "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been + // overridden. + // Deprecated unused field. + // "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an injected + // kernel, which is deprecated. + // "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB" - A WEIGHTED_MAGLEV backend + // service is associated with a health check that is + // not of type HTTP/HTTPS/HTTP2. + // "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a + // exceedingly large number of resources + // "LIST_OVERHEAD_QUOTA_EXCEED" - Resource can't be retrieved due to list + // overhead quota exceed + // which captures the amount of resources filtered out by + // user-defined list filter. + // "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type + // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is not + // assigned to an instance on the + // network. + // "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot ip + // forward. + // "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE" - The route's nextHopInstance + // URL refers to an instance that does not have an + // ipv6 interface on the same network as the route. + // "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL refers to + // an instance that does not exist. + // "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance URL + // refers to an instance that is not on the + // same network as the route. + // "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not have a + // status of RUNNING. + // "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to continue + // the process despite + // the mentioned error. + // "NO_RESULTS_ON_PAGE" - No results are present on a particular list page. + // "PARTIAL_SUCCESS" - Success is reported, but some results may be missing + // due to errors + // "QUOTA_INFO_UNAVAILABLE" - Quota information is not available to client + // requests (e.g: + // regions.list). + // "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource that + // requires a TOS they have not + // accepted. + // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a resource is + // in use. + // "RESOURCE_NOT_DELETED" - One or more of the resources set to auto-delete + // could not be deleted + // because they were in use. + // "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is + // ignored. + // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in instance + // group manager is valid as such, but + // its application does not make a lot of sense, because it allows only + // single instance in instance group. + // "UNDECLARED_PROPERTIES" - When undeclared properties in the schema are + // present + // "UNREACHABLE" - A given scope cannot be reached. + 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 []*RoutersListRoutePoliciesWarningData `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 or default values are + // omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. ForceSendFields []string `json:"-"` - // NullFields is a list of field names (e.g. "ActiveNatIps") to include in API - // requests with the JSON null value. By default, fields with empty values are - // omitted from API requests. See + // 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. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } -func (s *RouterStatusNatStatusNatRuleStatus) MarshalJSON() ([]byte, error) { - type NoMethod RouterStatusNatStatusNatRuleStatus - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s RoutersListRoutePoliciesWarning) MarshalJSON() ([]byte, error) { + type NoMethod RoutersListRoutePoliciesWarning + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -type RouterStatusResponse struct { - // Kind: Type of resource. - Kind string `json:"kind,omitempty"` - Result *RouterStatus `json:"result,omitempty"` - - // ServerResponse contains the HTTP response code and headers from the server. - googleapi.ServerResponse `json:"-"` - // ForceSendFields is a list of field names (e.g. "Kind") to unconditionally +type RoutersListRoutePoliciesWarningData 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 or default values are // omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. ForceSendFields []string `json:"-"` - // NullFields is a list of field names (e.g. "Kind") to include in API requests + // 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. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } -func (s *RouterStatusResponse) MarshalJSON() ([]byte, error) { - type NoMethod RouterStatusResponse - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s RoutersListRoutePoliciesWarningData) MarshalJSON() ([]byte, error) { + type NoMethod RoutersListRoutePoliciesWarningData + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } type RoutersPreviewResponse struct { @@ -38714,16 +64504,16 @@ type RoutersPreviewResponse struct { NullFields []string `json:"-"` } -func (s *RoutersPreviewResponse) MarshalJSON() ([]byte, error) { +func (s RoutersPreviewResponse) MarshalJSON() ([]byte, error) { type NoMethod RoutersPreviewResponse - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } type RoutersScopedList struct { // Routers: A list of routers contained in this scope. Routers []*Router `json:"routers,omitempty"` - // Warning: Informational warning which replaces the list of routers when the - // list is empty. + // Warning: Informational warning which replaces the list of routers when + // the list is empty. Warning *RoutersScopedListWarning `json:"warning,omitempty"` // ForceSendFields is a list of field names (e.g. "Routers") to unconditionally // include in API requests. By default, fields with empty or default values are @@ -38738,76 +64528,99 @@ type RoutersScopedList struct { NullFields []string `json:"-"` } -func (s *RoutersScopedList) MarshalJSON() ([]byte, error) { +func (s RoutersScopedList) MarshalJSON() ([]byte, error) { type NoMethod RoutersScopedList - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } // RoutersScopedListWarning: Informational warning which replaces the list of -// routers when the list is empty. +// routers when +// the list is empty. type RoutersScopedListWarning 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. + // 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" - Warning about failed cleanup of transient changes made - // by a failed operation. + // by a failed + // operation. // "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was created. // "DEPRECATED_TYPE_USED" - When deploying and at least one of the resources - // has a type marked as deprecated + // has a type marked as + // deprecated // "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk that is // larger than image size. // "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the - // resources has a type marked as experimental + // resources has a type marked as + // experimental // "EXTERNAL_API_WARNING" - Warning that is present in an external api call // "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been - // overridden. Deprecated unused field. + // overridden. + // Deprecated unused field. // "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an injected // kernel, which is deprecated. // "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB" - A WEIGHTED_MAGLEV backend - // service is associated with a health check that is not of type - // HTTP/HTTPS/HTTP2. + // service is associated with a health check that is + // not of type HTTP/HTTPS/HTTP2. // "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a // exceedingly large number of resources // "LIST_OVERHEAD_QUOTA_EXCEED" - Resource can't be retrieved due to list - // overhead quota exceed which captures the amount of resources filtered out by + // overhead quota exceed + // which captures the amount of resources filtered out by // user-defined list filter. // "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is not - // assigned to an instance on the network. + // assigned to an instance on the + // network. // "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot ip // forward. // "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE" - The route's nextHopInstance - // URL refers to an instance that does not have an ipv6 interface on the same - // network as the route. + // URL refers to an instance that does not have an + // ipv6 interface on the same network as the route. // "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL refers to // an instance that does not exist. // "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance URL - // refers to an instance that is not on the same network as the route. + // refers to an instance that is not on the + // same network as the route. // "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not have a // status of RUNNING. // "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to continue - // the process despite the mentioned error. + // the process despite + // the mentioned error. // "NO_RESULTS_ON_PAGE" - No results are present on a particular list page. // "PARTIAL_SUCCESS" - Success is reported, but some results may be missing // due to errors + // "QUOTA_INFO_UNAVAILABLE" - Quota information is not available to client + // requests (e.g: + // regions.list). // "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource that - // requires a TOS they have not accepted. + // requires a TOS they have not + // accepted. // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a resource is // in use. // "RESOURCE_NOT_DELETED" - One or more of the resources set to auto-delete - // could not be deleted because they were in use. + // could not be deleted + // because they were in use. // "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is // ignored. // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in instance - // group manager is valid as such, but its application does not make a lot of - // sense, because it allows only single instance in instance group. + // group manager is valid as such, but + // its application does not make a lot of sense, because it allows only + // single instance in instance group. // "UNDECLARED_PROPERTIES" - When undeclared properties in the schema are // present // "UNREACHABLE" - A given scope cannot be reached. 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: [Output Only] Metadata about this warning in key: + // value format. For example: + // + // "data": [ + // { + // "key": "scope", + // "value": "zones/us-east1-d" + // } Data []*RoutersScopedListWarningData `json:"data,omitempty"` // Message: [Output Only] A human-readable description of the warning code. Message string `json:"message,omitempty"` @@ -38824,19 +64637,22 @@ type RoutersScopedListWarning struct { NullFields []string `json:"-"` } -func (s *RoutersScopedListWarning) MarshalJSON() ([]byte, error) { +func (s RoutersScopedListWarning) MarshalJSON() ([]byte, error) { type NoMethod RoutersScopedListWarning - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } type RoutersScopedListWarningData 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: [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"` @@ -38853,104 +64669,83 @@ type RoutersScopedListWarningData struct { NullFields []string `json:"-"` } -func (s *RoutersScopedListWarningData) MarshalJSON() ([]byte, error) { +func (s RoutersScopedListWarningData) MarshalJSON() ([]byte, error) { type NoMethod RoutersScopedListWarningData - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) -} - -// Rule: This is deprecated and has no effect. Do not use. -type Rule struct { - // Action: This is deprecated and has no effect. Do not use. - // - // Possible values: - // "ALLOW" - This is deprecated and has no effect. Do not use. - // "ALLOW_WITH_LOG" - This is deprecated and has no effect. Do not use. - // "DENY" - This is deprecated and has no effect. Do not use. - // "DENY_WITH_LOG" - This is deprecated and has no effect. Do not use. - // "LOG" - This is deprecated and has no effect. Do not use. - // "NO_ACTION" - This is deprecated and has no effect. Do not use. - Action string `json:"action,omitempty"` - // Conditions: This is deprecated and has no effect. Do not use. - Conditions []*Condition `json:"conditions,omitempty"` - // Description: This is deprecated and has no effect. Do not use. - Description string `json:"description,omitempty"` - // Ins: This is deprecated and has no effect. Do not use. - Ins []string `json:"ins,omitempty"` - // LogConfigs: This is deprecated and has no effect. Do not use. - LogConfigs []*LogConfig `json:"logConfigs,omitempty"` - // NotIns: This is deprecated and has no effect. Do not use. - NotIns []string `json:"notIns,omitempty"` - // Permissions: This is deprecated and has no effect. Do not use. - Permissions []string `json:"permissions,omitempty"` - // ForceSendFields is a list of field names (e.g. "Action") to unconditionally - // include in API requests. By default, fields with empty or default values are - // omitted from API requests. See - // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more - // details. - ForceSendFields []string `json:"-"` - // NullFields is a list of field names (e.g. "Action") to include in API - // requests with the JSON null value. By default, fields with empty values are - // omitted from API requests. See - // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. - NullFields []string `json:"-"` -} - -func (s *Rule) MarshalJSON() ([]byte, error) { - type NoMethod Rule - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } type SSLHealthCheck struct { // Port: The TCP port number to which the health check prober sends packets. - // The default value is 443. Valid values are 1 through 65535. + // The + // default value is 443. Valid values are 1 through65535. Port int64 `json:"port,omitempty"` // PortName: Not supported. PortName string `json:"portName,omitempty"` // PortSpecification: Specifies how a port is selected for health checking. Can - // be one of the following values: USE_FIXED_PORT: Specifies a port number - // explicitly using the port field in the health check. Supported by backend - // services for passthrough load balancers and backend services for proxy load - // balancers. Not supported by target pools. The health check supports all - // backends supported by the backend service provided the backend can be health - // checked. For example, GCE_VM_IP network endpoint groups, GCE_VM_IP_PORT - // network endpoint groups, and instance group backends. USE_NAMED_PORT: Not - // supported. USE_SERVING_PORT: Provides an indirect method of specifying the - // health check port by referring to the backend service. Only supported by - // backend services for proxy load balancers. Not supported by target pools. - // Not supported by backend services for passthrough load balancers. Supports - // all backends that can be health checked; for example, GCE_VM_IP_PORT network - // endpoint groups and instance group backends. For GCE_VM_IP_PORT network - // endpoint group backends, the health check uses the port number specified for - // each endpoint in the network endpoint group. For instance group backends, - // the health check uses the port number determined by looking up the backend - // service's named port in the instance group's list of named ports. + // be one of the + // following values: + // USE_FIXED_PORT: Specifies a port number explicitly using theport field in + // the health check. Supported by backend services + // for passthrough load balancers and backend services for proxy + // load + // balancers. Not supported by target pools. The health check supports + // all + // backends supported by the backend service provided the backend can be + // health checked. For example, GCE_VM_IP network endpoint + // groups, GCE_VM_IP_PORT network endpoint groups, and instance + // group backends. + // USE_NAMED_PORT: Not supported. + // USE_SERVING_PORT: Provides an indirect method of specifying + // the health check port by referring to the backend service. Only supported + // by backend services for proxy load balancers. Not supported by target + // pools. Not supported by backend services for passthrough load + // balancers. + // Supports all backends that can be health checked; for example,GCE_VM_IP_PORT + // network endpoint groups and instance group + // backends. + // + // For GCE_VM_IP_PORT network endpoint group backends, the health + // check uses the port number specified for each endpoint in the + // network + // endpoint group. For instance group backends, the health check uses the + // port number determined by looking up the backend service's named port in + // the instance group's list of named ports. // // Possible values: // "USE_FIXED_PORT" - The port number in the health check's port is used for - // health checking. Applies to network endpoint group and instance group - // backends. + // health + // checking. Applies to network endpoint group and instance group backends. // "USE_NAMED_PORT" - Not supported. // "USE_SERVING_PORT" - For network endpoint group backends, the health check - // uses the port number specified on each endpoint in the network endpoint - // group. For instance group backends, the health check uses the port number - // specified for the backend service's named port defined in the instance - // group's named ports. + // uses the port number + // specified on each endpoint in the network endpoint group. For instance + // group backends, the health check uses the port number specified for + // the + // backend service's named port defined in the instance group's named ports. PortSpecification string `json:"portSpecification,omitempty"` // ProxyHeader: Specifies the type of proxy header to append before sending - // data to the backend, either NONE or PROXY_V1. The default is NONE. + // data to the + // backend, either NONE or PROXY_V1. The default + // is NONE. // // Possible values: // "NONE" // "PROXY_V1" ProxyHeader string `json:"proxyHeader,omitempty"` // Request: Instructs the health check prober to send this exact ASCII string, - // up to 1024 bytes in length, after establishing the TCP connection and SSL + // up to + // 1024 bytes in length, after establishing the TCP connection and + // SSL // handshake. Request string `json:"request,omitempty"` // Response: Creates a content-based SSL health check. In addition to - // establishing a TCP connection and the TLS handshake, you can configure the - // health check to pass only when the backend sends this exact response ASCII - // string, up to 1024 bytes in length. For details, see: + // establishing a + // TCP connection and the TLS handshake, you can configure the health check + // to + // pass only when the backend sends this exact response ASCII string, up + // to + // 1024 bytes in length. For details, + // see: // https://cloud.google.com/load-balancing/docs/health-check-concepts#criteria-protocol-ssl-tcp Response string `json:"response,omitempty"` // ForceSendFields is a list of field names (e.g. "Port") to unconditionally @@ -38966,19 +64761,21 @@ type SSLHealthCheck struct { NullFields []string `json:"-"` } -func (s *SSLHealthCheck) MarshalJSON() ([]byte, error) { +func (s SSLHealthCheck) MarshalJSON() ([]byte, error) { type NoMethod SSLHealthCheck - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -// SavedAttachedDisk: DEPRECATED: Please use compute#savedDisk instead. An -// instance-attached disk resource. +// SavedAttachedDisk: DEPRECATED: Please use compute#savedDisk instead. +// An instance-attached disk resource. type SavedAttachedDisk 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). + // instance is + // deleted (but not when the disk is detached from the instance). AutoDelete bool `json:"autoDelete,omitempty"` // Boot: Indicates that this is a boot disk. The virtual machine will use the - // first partition of the disk for its root filesystem. + // first + // partition of the disk for its root filesystem. Boot bool `json:"boot,omitempty"` // DeviceName: Specifies the name of the disk attached to the source instance. DeviceName string `json:"deviceName,omitempty"` @@ -38986,53 +64783,63 @@ type SavedAttachedDisk struct { DiskEncryptionKey *CustomerEncryptionKey `json:"diskEncryptionKey,omitempty"` // DiskSizeGb: The size of the disk in base-2 GB. DiskSizeGb int64 `json:"diskSizeGb,omitempty,string"` - // DiskType: [Output Only] URL of the disk type resource. For example: - // projects/project /zones/zone/diskTypes/pd-standard or pd-ssd + // DiskType: Output only. [Output Only] URL of the disk type resource. For + // example:projects/project/zones/zone/diskTypes/pd-standard or + // pd-ssd DiskType string `json:"diskType,omitempty"` // GuestOsFeatures: A list of features to enable on the guest operating system. - // Applicable only for bootable images. Read Enabling guest operating system - // features to see a list of available options. + // Applicable only + // for bootable images. Read + // Enabling guest operating system features to see a list of available + // options. GuestOsFeatures []*GuestOsFeature `json:"guestOsFeatures,omitempty"` - // Index: Specifies zero-based index of the disk that is attached to the source + // Index: Output only. Specifies zero-based index of the disk that is attached + // to the source // instance. Index int64 `json:"index,omitempty"` // Interface: Specifies the disk interface to use for attaching this disk, - // which is either SCSI or NVME. + // which is + // either SCSI or NVME. // // Possible values: // "NVME" // "SCSI" Interface string `json:"interface,omitempty"` - // Kind: [Output Only] Type of the resource. Always compute#attachedDisk for - // attached disks. + // Kind: Output only. [Output Only] Type of the resource. + // Alwayscompute#attachedDisk for attached disks. Kind string `json:"kind,omitempty"` - // Licenses: [Output Only] Any valid publicly visible licenses. + // Licenses: Output only. [Output Only] Any valid publicly visible licenses. Licenses []string `json:"licenses,omitempty"` - // Mode: The mode in which this disk is attached to the source instance, either - // READ_WRITE or READ_ONLY. + // Mode: The mode in which this disk is attached to the source instance, + // eitherREAD_WRITE or READ_ONLY. // // Possible values: // "READ_ONLY" - Attaches this disk in read-only mode. Multiple virtual - // machines can use a disk in read-only mode at a time. - // "READ_WRITE" - *[Default]* Attaches this disk in read-write mode. Only one + // machines can use + // a disk in read-only mode at a time. + // "READ_WRITE" - *[Default]* Attaches this disk in read-write mode. Only + // one // virtual machine at a time can be attached to a disk in read-write mode. Mode string `json:"mode,omitempty"` // Source: Specifies a URL of the disk attached to the source instance. Source string `json:"source,omitempty"` - // StorageBytes: [Output Only] A size of the storage used by the disk's - // snapshot by this machine image. + // StorageBytes: Output only. [Output Only] A size of the storage used by the + // disk's snapshot by this + // machine image. StorageBytes int64 `json:"storageBytes,omitempty,string"` - // StorageBytesStatus: [Output Only] An indicator whether storageBytes is in a - // stable state or it is being adjusted as a result of shared storage - // reallocation. This status can either be UPDATING, meaning the size of the - // snapshot is being updated, or UP_TO_DATE, meaning the size of the snapshot - // is up-to-date. + // StorageBytesStatus: Output only. [Output Only] An indicator whether + // storageBytes is in a + // stable state or it is being adjusted as a result of shared + // storage + // reallocation. This status can either be UPDATING, meaning + // the size of the snapshot is being updated, or UP_TO_DATE, + // meaning the size of the snapshot is up-to-date. // // Possible values: // "UPDATING" // "UP_TO_DATE" StorageBytesStatus string `json:"storageBytesStatus,omitempty"` - // Type: Specifies the type of the attached disk, either SCRATCH or PERSISTENT. + // Type: Specifies the type of the attached disk, either SCRATCH orPERSISTENT. // // Possible values: // "PERSISTENT" @@ -39051,14 +64858,15 @@ type SavedAttachedDisk struct { NullFields []string `json:"-"` } -func (s *SavedAttachedDisk) MarshalJSON() ([]byte, error) { +func (s SavedAttachedDisk) MarshalJSON() ([]byte, error) { type NoMethod SavedAttachedDisk - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } // SavedDisk: An instance-attached disk resource. type SavedDisk struct { - // Architecture: [Output Only] The architecture of the attached disk. + // Architecture: Output only. [Output Only] The architecture of the attached + // disk. // // Possible values: // "ARCHITECTURE_UNSPECIFIED" - Default value indicating Architecture is not @@ -39066,19 +64874,24 @@ type SavedDisk struct { // "ARM64" - Machines with architecture ARM64 // "X86_64" - Machines with architecture X86_64 Architecture string `json:"architecture,omitempty"` - // Kind: [Output Only] Type of the resource. Always compute#savedDisk for - // attached disks. + // Kind: Output only. [Output Only] Type of the resource. Always + // compute#savedDisk + // for attached disks. Kind string `json:"kind,omitempty"` - // SourceDisk: Specifies a URL of the disk attached to the source instance. + // SourceDisk: Output only. Specifies a URL of the disk attached to the source + // instance. SourceDisk string `json:"sourceDisk,omitempty"` - // StorageBytes: [Output Only] Size of the individual disk snapshot used by - // this machine image. + // StorageBytes: Output only. [Output Only] Size of the individual disk + // snapshot used by this machine + // image. StorageBytes int64 `json:"storageBytes,omitempty,string"` - // StorageBytesStatus: [Output Only] An indicator whether storageBytes is in a - // stable state or it is being adjusted as a result of shared storage - // reallocation. This status can either be UPDATING, meaning the size of the - // snapshot is being updated, or UP_TO_DATE, meaning the size of the snapshot - // is up-to-date. + // StorageBytesStatus: Output only. [Output Only] An indicator whether + // storageBytes is in a + // stable state or it is being adjusted as a result of shared + // storage + // reallocation. This status can either be UPDATING, meaning + // the size of the snapshot is being updated, or UP_TO_DATE, + // meaning the size of the snapshot is up-to-date. // // Possible values: // "UPDATING" @@ -39097,30 +64910,39 @@ type SavedDisk struct { NullFields []string `json:"-"` } -func (s *SavedDisk) MarshalJSON() ([]byte, error) { +func (s SavedDisk) MarshalJSON() ([]byte, error) { type NoMethod SavedDisk - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } type ScalingScheduleStatus struct { // LastStartTime: [Output Only] The last time the scaling schedule became - // active. Note: this is a timestamp when a schedule actually became active, - // not when it was planned to do so. The timestamp is in RFC3339 text format. + // active. + // Note: this is a timestamp when a schedule actually became active, not + // when + // it was planned to do so. + // The timestamp is in RFC3339 + // text format. LastStartTime string `json:"lastStartTime,omitempty"` // NextStartTime: [Output Only] The next time the scaling schedule is to become - // active. Note: this is a timestamp when a schedule is planned to run, but the - // actual time might be slightly different. The timestamp is in RFC3339 text - // format. + // active. + // Note: this is a timestamp when a schedule is planned to run, but the + // actual + // time might be slightly different. + // The timestamp is in RFC3339 + // text format. NextStartTime string `json:"nextStartTime,omitempty"` // State: [Output Only] The current state of a scaling schedule. // // Possible values: // "ACTIVE" - The current autoscaling recommendation is influenced by this - // scaling schedule. + // scaling + // schedule. // "DISABLED" - This scaling schedule has been disabled by the user. // "OBSOLETE" - This scaling schedule will never become active again. // "READY" - The current autoscaling recommendation is not influenced by this - // scaling schedule. + // scaling + // schedule. State string `json:"state,omitempty"` // ForceSendFields is a list of field names (e.g. "LastStartTime") to // unconditionally include in API requests. By default, fields with empty or @@ -39135,20 +64957,35 @@ type ScalingScheduleStatus struct { NullFields []string `json:"-"` } -func (s *ScalingScheduleStatus) MarshalJSON() ([]byte, error) { +func (s ScalingScheduleStatus) MarshalJSON() ([]byte, error) { type NoMethod ScalingScheduleStatus - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } // Scheduling: Sets the scheduling options for an Instance. type Scheduling struct { // AutomaticRestart: Specifies whether the instance should be automatically - // restarted if it is terminated by Compute Engine (not terminated by a user). - // You can only set the automatic restart option for standard instances. - // Preemptible instances cannot be automatically restarted. By default, this is - // set to true so an instance is automatically restarted if it is terminated by - // Compute Engine. + // restarted if it is + // terminated by Compute Engine (not terminated by a user). You can only + // set + // the automatic restart option for standard instances.Preemptible + // instances + // cannot be automatically restarted. + // + // By default, this is set to true so an instance is + // automatically restarted if it is terminated by Compute Engine. AutomaticRestart *bool `json:"automaticRestart,omitempty"` + // AvailabilityDomain: Specifies the availability domain to place the instance + // in. The value + // must be a number between 1 and the number of availability domains + // specified in the spread placement policy attached to the instance. + AvailabilityDomain int64 `json:"availabilityDomain,omitempty"` + // HostErrorTimeoutSeconds: Specify the time in seconds for host error + // detection, the value must be + // within the range of [90, 330] with the increment of 30, if unset, + // the + // default behavior of host error recovery will be used. + HostErrorTimeoutSeconds int64 `json:"hostErrorTimeoutSeconds,omitempty"` // InstanceTerminationAction: Specifies the termination action for the // instance. // @@ -39159,47 +64996,81 @@ type Scheduling struct { // "STOP" - Stop the VM without storing in-memory content. default action. InstanceTerminationAction string `json:"instanceTerminationAction,omitempty"` // LocalSsdRecoveryTimeout: Specifies the maximum amount of time a Local Ssd Vm - // should wait while recovery of the Local Ssd state is attempted. Its value - // should be in between 0 and 168 hours with hour granularity and the default - // value being 1 hour. + // should wait while + // recovery of the Local Ssd state is attempted. Its value should be in + // between 0 and 168 hours with hour granularity and the default value being + // 1 + // hour. LocalSsdRecoveryTimeout *Duration `json:"localSsdRecoveryTimeout,omitempty"` // LocationHint: An opaque location hint used to place the instance close to - // other resources. This field is for use by internal tools that use the public - // API. + // other + // resources. + // This field is for use by internal tools that use the public API. LocationHint string `json:"locationHint,omitempty"` + // MaxRunDuration: Specifies the max run duration for the given instance. If + // specified, + // the instance termination action will be performed at the end of the + // run + // duration. + MaxRunDuration *Duration `json:"maxRunDuration,omitempty"` // MinNodeCpus: The minimum number of virtual CPUs this instance will consume - // when running on a sole-tenant node. + // when running + // on a sole-tenant node. MinNodeCpus int64 `json:"minNodeCpus,omitempty"` // NodeAffinities: A set of node affinity and anti-affinity configurations. - // Refer to Configuring node affinity for more information. Overrides - // reservationAffinity. + // Refer toConfiguring node + // affinity for more information. + // Overrides reservationAffinity. NodeAffinities []*SchedulingNodeAffinity `json:"nodeAffinities,omitempty"` // OnHostMaintenance: Defines the maintenance behavior for this instance. For - // standard instances, the default behavior is MIGRATE. For preemptible - // instances, the default and only possible behavior is TERMINATE. For more - // information, see Set VM host maintenance policy. + // standard instances, + // the default behavior is MIGRATE. Forpreemptible instances, + // the default and only possible behavior is TERMINATE. For more + // information, see + // Set + // VM host maintenance policy. // // Possible values: // "MIGRATE" - *[Default]* Allows Compute Engine to automatically migrate - // instances out of the way of maintenance events. + // instances + // out of the way of maintenance events. // "TERMINATE" - Tells Compute Engine to terminate and (optionally) restart - // the instance away from the maintenance activity. If you would like your - // instance to be restarted, set the automaticRestart flag to true. Your - // instance may be restarted more than once, and it may be restarted outside + // the instance + // away from the maintenance activity. If you would like your instance to + // be + // restarted, set the automaticRestart flag to true. Your + // instance may be restarted more than once, and it may be restarted + // outside // the window of maintenance events. - OnHostMaintenance string `json:"onHostMaintenance,omitempty"` + OnHostMaintenance string `json:"onHostMaintenance,omitempty"` + OnInstanceStopAction *SchedulingOnInstanceStopAction `json:"onInstanceStopAction,omitempty"` // Preemptible: Defines whether the instance is preemptible. This can only be - // set during instance creation or while the instance is stopped and therefore, - // in a `TERMINATED` state. See Instance Life Cycle for more information on the - // possible instance states. + // set during + // instance creation or while the instance isstopped and + // therefore, in a `TERMINATED` state. SeeInstance Life + // Cycle for more information on the possible instance states. Preemptible bool `json:"preemptible,omitempty"` // ProvisioningModel: Specifies the provisioning model of the instance. // // Possible values: + // "FLEX_START" - Instance is provisioned using the Flex Start provisioning + // model and + // has a limited runtime. + // "RESERVATION_BOUND" - Bound to the lifecycle of the reservation in which + // it is provisioned. // "SPOT" - Heavily discounted, no guaranteed runtime. // "STANDARD" - Standard provisioning with user controlled runtime, no // discounts. ProvisioningModel string `json:"provisioningModel,omitempty"` + // SkipGuestOsShutdown: Default is false and there will be 120 seconds between + // GCE ACPI G2 Soft + // Off and ACPI G3 Mechanical + // Off for Standard VMs and 30 seconds for Spot VMs. + SkipGuestOsShutdown bool `json:"skipGuestOsShutdown,omitempty"` + // TerminationTime: Specifies the timestamp, when the instance will be + // terminated, inRFC3339 text format. If specified, the instance + // termination action will be performed at the termination time. + TerminationTime string `json:"terminationTime,omitempty"` // ForceSendFields is a list of field names (e.g. "AutomaticRestart") to // unconditionally include in API requests. By default, fields with empty or // default values are omitted from API requests. See @@ -39213,18 +65084,20 @@ type Scheduling struct { NullFields []string `json:"-"` } -func (s *Scheduling) MarshalJSON() ([]byte, error) { +func (s Scheduling) MarshalJSON() ([]byte, error) { type NoMethod Scheduling - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } // SchedulingNodeAffinity: Node Affinity: the configuration of desired nodes -// onto which this Instance could be scheduled. +// onto which this Instance +// +// could be scheduled. type SchedulingNodeAffinity struct { // Key: Corresponds to the label key of Node resource. Key string `json:"key,omitempty"` - // Operator: Defines the operation of node selection. Valid operators are IN - // for affinity and NOT_IN for anti-affinity. + // Operator: Defines the operation of node selection. Valid operators areIN for + // affinity and NOT_IN for anti-affinity. // // Possible values: // "IN" - Requires Compute Engine to seek for matched nodes. @@ -39246,17 +65119,44 @@ type SchedulingNodeAffinity struct { NullFields []string `json:"-"` } -func (s *SchedulingNodeAffinity) MarshalJSON() ([]byte, error) { +func (s SchedulingNodeAffinity) MarshalJSON() ([]byte, error) { type NoMethod SchedulingNodeAffinity - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +// SchedulingOnInstanceStopAction: Defines the behaviour for instances with the +// instance_termination_actionSTOP. +type SchedulingOnInstanceStopAction struct { + // DiscardLocalSsd: If true, the contents of any attached Local SSD disks will + // be discarded + // else, the Local SSD data will be preserved when the instance is stopped + // at the end of the run duration/termination time. + DiscardLocalSsd bool `json:"discardLocalSsd,omitempty"` + // ForceSendFields is a list of field names (e.g. "DiscardLocalSsd") to + // unconditionally include in API requests. By default, fields with empty or + // default values are omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + ForceSendFields []string `json:"-"` + // NullFields is a list of field names (e.g. "DiscardLocalSsd") to include in + // API requests with the JSON null value. By default, fields with empty values + // are omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s SchedulingOnInstanceStopAction) MarshalJSON() ([]byte, error) { + type NoMethod SchedulingOnInstanceStopAction + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } // Screenshot: An instance's screenshot. type Screenshot struct { // Contents: [Output Only] The Base64-encoded screenshot data. Contents string `json:"contents,omitempty"` - // Kind: [Output Only] Type of the resource. Always compute#screenshot for the - // screenshots. + // Kind: Output only. [Output Only] Type of the resource. Always + // compute#screenshot + // for the screenshots. Kind string `json:"kind,omitempty"` // ServerResponse contains the HTTP response code and headers from the server. @@ -39274,9 +65174,9 @@ type Screenshot struct { NullFields []string `json:"-"` } -func (s *Screenshot) MarshalJSON() ([]byte, error) { +func (s Screenshot) MarshalJSON() ([]byte, error) { type NoMethod Screenshot - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } type SecurityPoliciesAggregatedList struct { @@ -39285,18 +65185,21 @@ type SecurityPoliciesAggregatedList struct { Id string `json:"id,omitempty"` // Items: A list of SecurityPoliciesScopedList resources. Items map[string]SecurityPoliciesScopedList `json:"items,omitempty"` - // Kind: [Output Only] Type of resource. Always - // compute#securityPolicyAggregatedList for lists of Security Policies. + // Kind: Output only. [Output Only] Type of resource. + // Alwayscompute#securityPolicyAggregatedList for lists of Security + // Policies. 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. + // results for + // list requests. If the number of results is larger thanmaxResults, 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"` - // SelfLink: [Output Only] Server-defined URL for this resource. + // SelfLink: Output only. [Output Only] Server-defined URL for this resource. SelfLink string `json:"selfLink,omitempty"` - // Unreachables: [Output Only] Unreachable resources. + // Unreachables: Output only. [Output Only] Unreachable resources. Unreachables []string `json:"unreachables,omitempty"` // Warning: [Output Only] Informational warning message. Warning *SecurityPoliciesAggregatedListWarning `json:"warning,omitempty"` @@ -39316,238 +65219,286 @@ type SecurityPoliciesAggregatedList struct { NullFields []string `json:"-"` } -func (s *SecurityPoliciesAggregatedList) MarshalJSON() ([]byte, error) { +func (s SecurityPoliciesAggregatedList) MarshalJSON() ([]byte, error) { type NoMethod SecurityPoliciesAggregatedList - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } // SecurityPoliciesAggregatedListWarning: [Output Only] Informational warning // message. type SecurityPoliciesAggregatedListWarning 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. + // 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" - Warning about failed cleanup of transient changes made + // by a failed + // operation. + // "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was created. + // "DEPRECATED_TYPE_USED" - When deploying and at least one of the resources + // has a type marked as + // deprecated + // "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk that is + // larger than image size. + // "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the + // resources has a type marked as + // experimental + // "EXTERNAL_API_WARNING" - Warning that is present in an external api call + // "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been + // overridden. + // Deprecated unused field. + // "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an injected + // kernel, which is deprecated. + // "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB" - A WEIGHTED_MAGLEV backend + // service is associated with a health check that is + // not of type HTTP/HTTPS/HTTP2. + // "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a + // exceedingly large number of resources + // "LIST_OVERHEAD_QUOTA_EXCEED" - Resource can't be retrieved due to list + // overhead quota exceed + // which captures the amount of resources filtered out by + // user-defined list filter. + // "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type + // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is not + // assigned to an instance on the + // network. + // "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot ip + // forward. + // "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE" - The route's nextHopInstance + // URL refers to an instance that does not have an + // ipv6 interface on the same network as the route. + // "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL refers to + // an instance that does not exist. + // "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance URL + // refers to an instance that is not on the + // same network as the route. + // "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not have a + // status of RUNNING. + // "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to continue + // the process despite + // the mentioned error. + // "NO_RESULTS_ON_PAGE" - No results are present on a particular list page. + // "PARTIAL_SUCCESS" - Success is reported, but some results may be missing + // due to errors + // "QUOTA_INFO_UNAVAILABLE" - Quota information is not available to client + // requests (e.g: + // regions.list). + // "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource that + // requires a TOS they have not + // accepted. + // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a resource is + // in use. + // "RESOURCE_NOT_DELETED" - One or more of the resources set to auto-delete + // could not be deleted + // because they were in use. + // "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is + // ignored. + // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in instance + // group manager is valid as such, but + // its application does not make a lot of sense, because it allows only + // single instance in instance group. + // "UNDECLARED_PROPERTIES" - When undeclared properties in the schema are + // present + // "UNREACHABLE" - A given scope cannot be reached. + 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 []*SecurityPoliciesAggregatedListWarningData `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 or default values are + // omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + 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. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s SecurityPoliciesAggregatedListWarning) MarshalJSON() ([]byte, error) { + type NoMethod SecurityPoliciesAggregatedListWarning + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +type SecurityPoliciesAggregatedListWarningData 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 or default values are + // omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + 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. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s SecurityPoliciesAggregatedListWarningData) MarshalJSON() ([]byte, error) { + type NoMethod SecurityPoliciesAggregatedListWarningData + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +type SecurityPoliciesListPreconfiguredExpressionSetsResponse struct { + PreconfiguredExpressionSets *SecurityPoliciesWafConfig `json:"preconfiguredExpressionSets,omitempty"` + + // ServerResponse contains the HTTP response code and headers from the server. + googleapi.ServerResponse `json:"-"` + // ForceSendFields is a list of field names (e.g. + // "PreconfiguredExpressionSets") to unconditionally include in API requests. + // By default, fields with empty or default values are omitted from API + // requests. See https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields + // for more details. + ForceSendFields []string `json:"-"` + // NullFields is a list of field names (e.g. "PreconfiguredExpressionSets") to + // include in API requests with the JSON null value. By default, fields with + // empty values are omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s SecurityPoliciesListPreconfiguredExpressionSetsResponse) MarshalJSON() ([]byte, error) { + type NoMethod SecurityPoliciesListPreconfiguredExpressionSetsResponse + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +type SecurityPoliciesScopedList struct { + // SecurityPolicies: A list of SecurityPolicies contained in this scope. + SecurityPolicies []*SecurityPolicy `json:"securityPolicies,omitempty"` + // Warning: Informational warning which replaces the list of + // security policies when the list is empty. + Warning *SecurityPoliciesScopedListWarning `json:"warning,omitempty"` + // ForceSendFields is a list of field names (e.g. "SecurityPolicies") to + // unconditionally include in API requests. By default, fields with empty or + // default values are omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + ForceSendFields []string `json:"-"` + // NullFields is a list of field names (e.g. "SecurityPolicies") to include in + // API requests with the JSON null value. By default, fields with empty values + // are omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s SecurityPoliciesScopedList) MarshalJSON() ([]byte, error) { + type NoMethod SecurityPoliciesScopedList + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +// SecurityPoliciesScopedListWarning: Informational warning which replaces the +// list of +// security policies when the list is empty. +type SecurityPoliciesScopedListWarning 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" - Warning about failed cleanup of transient changes made - // by a failed operation. + // by a failed + // operation. // "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was created. // "DEPRECATED_TYPE_USED" - When deploying and at least one of the resources - // has a type marked as deprecated + // has a type marked as + // deprecated // "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk that is // larger than image size. // "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the - // resources has a type marked as experimental + // resources has a type marked as + // experimental // "EXTERNAL_API_WARNING" - Warning that is present in an external api call // "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been - // overridden. Deprecated unused field. + // overridden. + // Deprecated unused field. // "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an injected // kernel, which is deprecated. // "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB" - A WEIGHTED_MAGLEV backend - // service is associated with a health check that is not of type - // HTTP/HTTPS/HTTP2. + // service is associated with a health check that is + // not of type HTTP/HTTPS/HTTP2. // "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a // exceedingly large number of resources // "LIST_OVERHEAD_QUOTA_EXCEED" - Resource can't be retrieved due to list - // overhead quota exceed which captures the amount of resources filtered out by + // overhead quota exceed + // which captures the amount of resources filtered out by // user-defined list filter. // "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is not - // assigned to an instance on the network. + // assigned to an instance on the + // network. // "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot ip // forward. // "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE" - The route's nextHopInstance - // URL refers to an instance that does not have an ipv6 interface on the same - // network as the route. + // URL refers to an instance that does not have an + // ipv6 interface on the same network as the route. // "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL refers to // an instance that does not exist. // "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance URL - // refers to an instance that is not on the same network as the route. + // refers to an instance that is not on the + // same network as the route. // "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not have a // status of RUNNING. // "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to continue - // the process despite the mentioned error. + // the process despite + // the mentioned error. // "NO_RESULTS_ON_PAGE" - No results are present on a particular list page. // "PARTIAL_SUCCESS" - Success is reported, but some results may be missing // due to errors + // "QUOTA_INFO_UNAVAILABLE" - Quota information is not available to client + // requests (e.g: + // regions.list). // "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource that - // requires a TOS they have not accepted. + // requires a TOS they have not + // accepted. // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a resource is // in use. // "RESOURCE_NOT_DELETED" - One or more of the resources set to auto-delete - // could not be deleted because they were in use. + // could not be deleted + // because they were in use. // "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is // ignored. // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in instance - // group manager is valid as such, but its application does not make a lot of - // sense, because it allows only single instance in instance group. + // group manager is valid as such, but + // its application does not make a lot of sense, because it allows only + // single instance in instance group. // "UNDECLARED_PROPERTIES" - When undeclared properties in the schema are // present // "UNREACHABLE" - A given scope cannot be reached. 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 []*SecurityPoliciesAggregatedListWarningData `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 or default values are - // omitted from API requests. See - // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more - // details. - 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. See - // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. - NullFields []string `json:"-"` -} - -func (s *SecurityPoliciesAggregatedListWarning) MarshalJSON() ([]byte, error) { - type NoMethod SecurityPoliciesAggregatedListWarning - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) -} - -type SecurityPoliciesAggregatedListWarningData 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 or default values are - // omitted from API requests. See - // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more - // details. - 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. See - // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. - NullFields []string `json:"-"` -} - -func (s *SecurityPoliciesAggregatedListWarningData) MarshalJSON() ([]byte, error) { - type NoMethod SecurityPoliciesAggregatedListWarningData - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) -} - -type SecurityPoliciesListPreconfiguredExpressionSetsResponse struct { - PreconfiguredExpressionSets *SecurityPoliciesWafConfig `json:"preconfiguredExpressionSets,omitempty"` - - // ServerResponse contains the HTTP response code and headers from the server. - googleapi.ServerResponse `json:"-"` - // ForceSendFields is a list of field names (e.g. - // "PreconfiguredExpressionSets") to unconditionally include in API requests. - // By default, fields with empty or default values are omitted from API - // requests. See https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields - // for more details. - ForceSendFields []string `json:"-"` - // NullFields is a list of field names (e.g. "PreconfiguredExpressionSets") to - // include in API requests with the JSON null value. By default, fields with - // empty values are omitted from API requests. See - // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. - NullFields []string `json:"-"` -} - -func (s *SecurityPoliciesListPreconfiguredExpressionSetsResponse) MarshalJSON() ([]byte, error) { - type NoMethod SecurityPoliciesListPreconfiguredExpressionSetsResponse - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) -} - -type SecurityPoliciesScopedList struct { - // SecurityPolicies: A list of SecurityPolicies contained in this scope. - SecurityPolicies []*SecurityPolicy `json:"securityPolicies,omitempty"` - // Warning: Informational warning which replaces the list of security policies - // when the list is empty. - Warning *SecurityPoliciesScopedListWarning `json:"warning,omitempty"` - // ForceSendFields is a list of field names (e.g. "SecurityPolicies") to - // unconditionally include in API requests. By default, fields with empty or - // default values are omitted from API requests. See - // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more - // details. - ForceSendFields []string `json:"-"` - // NullFields is a list of field names (e.g. "SecurityPolicies") to include in - // API requests with the JSON null value. By default, fields with empty values - // are omitted from API requests. See - // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. - NullFields []string `json:"-"` -} - -func (s *SecurityPoliciesScopedList) MarshalJSON() ([]byte, error) { - type NoMethod SecurityPoliciesScopedList - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) -} - -// SecurityPoliciesScopedListWarning: Informational warning which replaces the -// list of security policies when the list is empty. -type SecurityPoliciesScopedListWarning 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. + // Data: [Output Only] Metadata about this warning in key: + // value format. For example: // - // Possible values: - // "CLEANUP_FAILED" - Warning about failed cleanup of transient changes made - // by a failed operation. - // "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was created. - // "DEPRECATED_TYPE_USED" - When deploying and at least one of the resources - // has a type marked as deprecated - // "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk that is - // larger than image size. - // "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the - // resources has a type marked as experimental - // "EXTERNAL_API_WARNING" - Warning that is present in an external api call - // "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been - // overridden. Deprecated unused field. - // "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an injected - // kernel, which is deprecated. - // "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB" - A WEIGHTED_MAGLEV backend - // service is associated with a health check that is not of type - // HTTP/HTTPS/HTTP2. - // "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a - // exceedingly large number of resources - // "LIST_OVERHEAD_QUOTA_EXCEED" - Resource can't be retrieved due to list - // overhead quota exceed which captures the amount of resources filtered out by - // user-defined list filter. - // "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type - // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is not - // assigned to an instance on the network. - // "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot ip - // forward. - // "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE" - The route's nextHopInstance - // URL refers to an instance that does not have an ipv6 interface on the same - // network as the route. - // "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL refers to - // an instance that does not exist. - // "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance URL - // refers to an instance that is not on the same network as the route. - // "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not have a - // status of RUNNING. - // "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to continue - // the process despite the mentioned error. - // "NO_RESULTS_ON_PAGE" - No results are present on a particular list page. - // "PARTIAL_SUCCESS" - Success is reported, but some results may be missing - // due to errors - // "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource that - // requires a TOS they have not accepted. - // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a resource is - // in use. - // "RESOURCE_NOT_DELETED" - One or more of the resources set to auto-delete - // could not be deleted because they were in use. - // "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is - // ignored. - // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in instance - // group manager is valid as such, but its application does not make a lot of - // sense, because it allows only single instance in instance group. - // "UNDECLARED_PROPERTIES" - When undeclared properties in the schema are - // present - // "UNREACHABLE" - A given scope cannot be reached. - 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": [ + // { + // "key": "scope", + // "value": "zones/us-east1-d" + // } Data []*SecurityPoliciesScopedListWarningData `json:"data,omitempty"` // Message: [Output Only] A human-readable description of the warning code. Message string `json:"message,omitempty"` @@ -39564,19 +65515,22 @@ type SecurityPoliciesScopedListWarning struct { NullFields []string `json:"-"` } -func (s *SecurityPoliciesScopedListWarning) MarshalJSON() ([]byte, error) { +func (s SecurityPoliciesScopedListWarning) MarshalJSON() ([]byte, error) { type NoMethod SecurityPoliciesScopedListWarning - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } type SecurityPoliciesScopedListWarningData 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: [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"` @@ -39593,9 +65547,9 @@ type SecurityPoliciesScopedListWarningData struct { NullFields []string `json:"-"` } -func (s *SecurityPoliciesScopedListWarningData) MarshalJSON() ([]byte, error) { +func (s SecurityPoliciesScopedListWarningData) MarshalJSON() ([]byte, error) { type NoMethod SecurityPoliciesScopedListWarningData - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } type SecurityPoliciesWafConfig struct { @@ -39613,86 +65567,142 @@ type SecurityPoliciesWafConfig struct { NullFields []string `json:"-"` } -func (s *SecurityPoliciesWafConfig) MarshalJSON() ([]byte, error) { +func (s SecurityPoliciesWafConfig) MarshalJSON() ([]byte, error) { type NoMethod SecurityPoliciesWafConfig - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -// SecurityPolicy: Represents a Google Cloud Armor security policy resource. -// Only external backend services that use load balancers can reference a -// security policy. For more information, see Google Cloud Armor security -// policy overview. +// SecurityPolicy: Represents a Google Cloud Armor security policy +// resource. +// +// Only external backend services that use load balancers can +// reference a security policy. For more information, see +// Google Cloud Armor security policy overview. type SecurityPolicy struct { AdaptiveProtectionConfig *SecurityPolicyAdaptiveProtectionConfig `json:"adaptiveProtectionConfig,omitempty"` AdvancedOptionsConfig *SecurityPolicyAdvancedOptionsConfig `json:"advancedOptionsConfig,omitempty"` - // CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text format. + // Associations: A list of associations that belong to this policy. + Associations []*SecurityPolicyAssociation `json:"associations,omitempty"` + // CreationTimestamp: Output only. [Output Only] Creation timestamp + // inRFC3339 + // text format. CreationTimestamp string `json:"creationTimestamp,omitempty"` DdosProtectionConfig *SecurityPolicyDdosProtectionConfig `json:"ddosProtectionConfig,omitempty"` // Description: An optional description of this resource. Provide this property - // when you create the resource. + // when you + // create the resource. Description string `json:"description,omitempty"` // Fingerprint: Specifies a fingerprint for this resource, which is essentially - // a hash of the metadata's contents and used for optimistic locking. The - // fingerprint is initially generated by Compute Engine and changes after every - // request to modify or update metadata. You must always provide an up-to-date - // fingerprint hash in order to update or change metadata, otherwise the - // request will fail with error 412 conditionNotMet. To see the latest - // fingerprint, make get() request to the security policy. + // a hash of + // the metadata's contents and used for optimistic locking. The + // fingerprint is initially generated by Compute Engine and changes after + // every request to modify or update metadata. You must always provide + // an + // up-to-date fingerprint hash in order to update or change metadata, + // otherwise the request will fail with error412 conditionNotMet. + // + // To see the latest fingerprint, make get() request to the + // security policy. Fingerprint string `json:"fingerprint,omitempty"` - // Id: [Output Only] The unique identifier for the resource. This identifier is + // Id: Output only. [Output Only] The unique identifier for the resource. This + // identifier is // defined by the server. Id uint64 `json:"id,omitempty,string"` - // Kind: [Output only] Type of the resource. Always compute#securityPolicyfor - // security policies + // Kind: Output only. [Output only] Type of the resource. + // Alwayscompute#securityPolicyfor security policies Kind string `json:"kind,omitempty"` // LabelFingerprint: A fingerprint for the labels being applied to this - // security policy, which is essentially a hash of the labels set used for - // optimistic locking. The fingerprint is initially generated by Compute Engine - // and changes after every request to modify or update labels. You must always - // provide an up-to-date fingerprint hash in order to update or change labels. - // To see the latest fingerprint, make get() request to the security policy. + // security policy, which + // is essentially a hash of the labels set used for optimistic locking. + // The + // fingerprint is initially generated by Compute Engine and changes after + // every request to modify or update labels. You must always provide + // an + // up-to-date fingerprint hash in order to update or change labels. + // + // To see the latest fingerprint, make get() request to the + // security policy. LabelFingerprint string `json:"labelFingerprint,omitempty"` - // Labels: Labels for this resource. These can only be added or modified by the - // setLabels method. Each label key/value pair must comply with RFC1035. Label - // values may be empty. + // Labels: Labels for this resource. These can only be added or modified by + // thesetLabels method. Each label key/value pair must comply + // withRFC1035. + // Label values may be empty. Labels map[string]string `json:"labels,omitempty"` // Name: Name of the resource. Provided by the client when the resource is - // created. The name must be 1-63 characters long, and comply with RFC1035. - // 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. - Name string `json:"name,omitempty"` + // created. + // The name must be 1-63 characters long, and comply withRFC1035. + // 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. + Name string `json:"name,omitempty"` + // Parent: Output only. [Output Only] The parent of the security policy. + Parent string `json:"parent,omitempty"` RecaptchaOptionsConfig *SecurityPolicyRecaptchaOptionsConfig `json:"recaptchaOptionsConfig,omitempty"` - // Region: [Output Only] URL of the region where the regional security policy + // Region: Output only. [Output Only] URL of the region where the regional + // security policy // resides. This field is not applicable to global security policies. Region string `json:"region,omitempty"` - // Rules: A list of rules that belong to this policy. There must always be a - // default rule which is a rule with priority 2147483647 and match all - // condition (for the match condition this means match "*" for srcIpRanges and - // for the networkMatch condition every field must be either match "*" or not - // set). If no rules are provided when creating a security policy, a default - // rule with action "allow" will be added. + // Rules: A list of rules that belong to this policy. + // There must always be a default rule which is a rule with priority + // 2147483647 and match all condition (for the match condition this means + // match "*" for srcIpRanges and for the networkMatch condition every + // field + // must be either match "*" or not set). If no rules are provided when + // creating a security policy, a default rule with action "allow" will + // be + // added. Rules []*SecurityPolicyRule `json:"rules,omitempty"` - // SelfLink: [Output Only] Server-defined URL for the resource. + // SelfLink: Output only. [Output Only] Server-defined URL for the resource. SelfLink string `json:"selfLink,omitempty"` - // Type: The type indicates the intended use of the security policy. - - // CLOUD_ARMOR: Cloud Armor backend security policies can be configured to - // filter incoming HTTP requests targeting backend services. They filter - // requests before they hit the origin servers. - CLOUD_ARMOR_EDGE: Cloud Armor - // edge security policies can be configured to filter incoming HTTP requests - // targeting backend services (including Cloud CDN-enabled) as well as backend - // buckets (Cloud Storage). They filter requests before the request is served - // from Google's cache. - CLOUD_ARMOR_INTERNAL_SERVICE: Cloud Armor internal - // service policies can be configured to filter HTTP requests targeting - // services managed by Traffic Director in a service mesh. They filter requests - // before the request is served from the application. - CLOUD_ARMOR_NETWORK: - // Cloud Armor network policies can be configured to filter packets targeting - // network load balancing resources such as backend services, target pools, - // target instances, and instances with external IPs. They filter requests - // before the request is served from the application. This field can be set - // only at resource creation time. + // ShortName: User-provided name of the organization security policy. The name + // should be + // unique in the organization in which the security policy is created. + // This + // should only be used when SecurityPolicyType is CLOUD_ARMOR. + // The name must be 1-63 characters long, and comply + // with + // https://www.ietf.org/rfc/rfc1035.txt. Specifically, the name must be + // 1-63 + // characters long and match the regular + // expression + // `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first character must be + // a + // lowercase letter, and all following characters must be a dash, + // lowercase + // letter, or digit, except the last character, which cannot be a dash. + ShortName string `json:"shortName,omitempty"` + // Type: The type indicates the intended use of the security policy. + // + // - CLOUD_ARMOR: Cloud Armor backend security policies can + // be configured to filter incoming HTTP requests targeting backend + // services. + // They filter requests before they hit the origin servers. + // - CLOUD_ARMOR_EDGE: Cloud Armor edge security policies can + // be configured to filter incoming HTTP requests targeting backend + // services + // (including Cloud CDN-enabled) as well as backend buckets (Cloud + // Storage). + // They filter requests before the request is served from Google's cache. + // - CLOUD_ARMOR_INTERNAL_SERVICE (preview only): Cloud Armor + // internal service policies can be configured to filter HTTP requests + // targeting services managed by Traffic Director in a service mesh. They + // filter requests before the request is served from the application. + // + // - CLOUD_ARMOR_NETWORK: Cloud Armor network policies + // can be configured to filter packets targeting network load + // balancing + // resources such as backend services, target pools, target instances, + // and + // instances with external IPs. They filter requests before the request + // is + // served from the application. + // + // + // This field can be set only at resource creation time. // // Possible values: // "CLOUD_ARMOR" @@ -39700,11 +65710,22 @@ type SecurityPolicy struct { // "CLOUD_ARMOR_NETWORK" Type string `json:"type,omitempty"` // UserDefinedFields: Definitions of user-defined fields for - // CLOUD_ARMOR_NETWORK policies. A user-defined field consists of up to 4 bytes - // extracted from a fixed offset in the packet, relative to the IPv4, IPv6, - // TCP, or UDP header, with an optional mask to select certain bits. Rules may - // then specify matching values for these fields. Example: userDefinedFields: - - // name: "ipv4_fragment_offset" base: IPV4 offset: 6 size: 2 mask: "0x1fff" + // CLOUD_ARMOR_NETWORK policies. A + // user-defined field consists of up to 4 bytes extracted from a fixed + // offset + // in the packet, relative to the IPv4, IPv6, TCP, or UDP header, with + // an + // optional mask to select certain bits. Rules may then specify matching + // values for these fields. + // + // Example: + // + // userDefinedFields: + // - name: "ipv4_fragment_offset" + // base: IPV4 + // offset: 6 + // size: 2 + // mask: "0x1fff" UserDefinedFields []*SecurityPolicyUserDefinedField `json:"userDefinedFields,omitempty"` // ServerResponse contains the HTTP response code and headers from the server. @@ -39722,9 +65743,9 @@ type SecurityPolicy struct { NullFields []string `json:"-"` } -func (s *SecurityPolicy) MarshalJSON() ([]byte, error) { +func (s SecurityPolicy) MarshalJSON() ([]byte, error) { type NoMethod SecurityPolicy - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } // SecurityPolicyAdaptiveProtectionConfig: Configuration options for Cloud @@ -39746,28 +65767,36 @@ type SecurityPolicyAdaptiveProtectionConfig struct { NullFields []string `json:"-"` } -func (s *SecurityPolicyAdaptiveProtectionConfig) MarshalJSON() ([]byte, error) { +func (s SecurityPolicyAdaptiveProtectionConfig) MarshalJSON() ([]byte, error) { type NoMethod SecurityPolicyAdaptiveProtectionConfig - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } // SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfig: Configuration -// options for L7 DDoS detection. This field is only supported in Global -// Security Policies of type CLOUD_ARMOR. +// options for L7 DDoS detection. +// This field is only supported in Global Security Policies of +// type +// CLOUD_ARMOR. type SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfig struct { - // Enable: If set to true, enables CAAP for L7 DDoS detection. This field is - // only supported in Global Security Policies of type CLOUD_ARMOR. + // Enable: If set to true, enables CAAP for L7 DDoS detection. + // This field is only supported in Global Security Policies of + // type + // CLOUD_ARMOR. Enable bool `json:"enable,omitempty"` - // RuleVisibility: Rule visibility can be one of the following: STANDARD - - // opaque rules. (default) PREMIUM - transparent rules. This field is only - // supported in Global Security Policies of type CLOUD_ARMOR. + // RuleVisibility: Rule visibility can be one of the following: + // STANDARD - opaque rules. (default) + // PREMIUM - transparent rules. + // This field is only supported in Global Security Policies of + // type + // CLOUD_ARMOR. // // Possible values: // "PREMIUM" // "STANDARD" RuleVisibility string `json:"ruleVisibility,omitempty"` // ThresholdConfigs: Configuration options for layer7 adaptive protection for - // various customizable thresholds. + // various + // customizable thresholds. ThresholdConfigs []*SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigThresholdConfig `json:"thresholdConfigs,omitempty"` // ForceSendFields is a list of field names (e.g. "Enable") to unconditionally // include in API requests. By default, fields with empty or default values are @@ -39782,9 +65811,9 @@ type SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfig struct { NullFields []string `json:"-"` } -func (s *SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfig) MarshalJSON() ([]byte, error) { +func (s SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfig) MarshalJSON() ([]byte, error) { type NoMethod SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfig - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } type SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigThresholdConfig struct { @@ -39792,9 +65821,16 @@ type SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigThresholdConfi AutoDeployExpirationSec int64 `json:"autoDeployExpirationSec,omitempty"` AutoDeployImpactedBaselineThreshold float64 `json:"autoDeployImpactedBaselineThreshold,omitempty"` AutoDeployLoadThreshold float64 `json:"autoDeployLoadThreshold,omitempty"` - // Name: The name must be 1-63 characters long, and comply with RFC1035. The - // name must be unique within the security policy. + DetectionAbsoluteQps float64 `json:"detectionAbsoluteQps,omitempty"` + DetectionLoadThreshold float64 `json:"detectionLoadThreshold,omitempty"` + DetectionRelativeToBaselineQps float64 `json:"detectionRelativeToBaselineQps,omitempty"` + // Name: The name must be 1-63 characters long, and comply withRFC1035. + // The name must be unique within the security policy. Name string `json:"name,omitempty"` + // TrafficGranularityConfigs: Configuration options for enabling Adaptive + // Protection to operate + // on specified granular traffic units. + TrafficGranularityConfigs []*SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigThresholdConfigTrafficGranularityConfig `json:"trafficGranularityConfigs,omitempty"` // ForceSendFields is a list of field names (e.g. // "AutoDeployConfidenceThreshold") to unconditionally include in API requests. // By default, fields with empty or default values are omitted from API @@ -39808,9 +65844,9 @@ type SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigThresholdConfi NullFields []string `json:"-"` } -func (s *SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigThresholdConfig) MarshalJSON() ([]byte, error) { +func (s SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigThresholdConfig) MarshalJSON() ([]byte, error) { type NoMethod SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigThresholdConfig - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } func (s *SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigThresholdConfig) UnmarshalJSON(data []byte) error { @@ -39819,6 +65855,9 @@ func (s *SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigThresholdC AutoDeployConfidenceThreshold gensupport.JSONFloat64 `json:"autoDeployConfidenceThreshold"` AutoDeployImpactedBaselineThreshold gensupport.JSONFloat64 `json:"autoDeployImpactedBaselineThreshold"` AutoDeployLoadThreshold gensupport.JSONFloat64 `json:"autoDeployLoadThreshold"` + DetectionAbsoluteQps gensupport.JSONFloat64 `json:"detectionAbsoluteQps"` + DetectionLoadThreshold gensupport.JSONFloat64 `json:"detectionLoadThreshold"` + DetectionRelativeToBaselineQps gensupport.JSONFloat64 `json:"detectionRelativeToBaselineQps"` *NoMethod } s1.NoMethod = (*NoMethod)(s) @@ -39828,12 +65867,53 @@ func (s *SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigThresholdC s.AutoDeployConfidenceThreshold = float64(s1.AutoDeployConfidenceThreshold) s.AutoDeployImpactedBaselineThreshold = float64(s1.AutoDeployImpactedBaselineThreshold) s.AutoDeployLoadThreshold = float64(s1.AutoDeployLoadThreshold) + s.DetectionAbsoluteQps = float64(s1.DetectionAbsoluteQps) + s.DetectionLoadThreshold = float64(s1.DetectionLoadThreshold) + s.DetectionRelativeToBaselineQps = float64(s1.DetectionRelativeToBaselineQps) return nil } +// SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigThresholdConfigT +// rafficGranularityConfig: Configurations to specifc granular traffic units +// processed by +// Adaptive Protection. +type SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigThresholdConfigTrafficGranularityConfig struct { + // EnableEachUniqueValue: If enabled, traffic matching each unique value for + // the specified + // type constitutes a separate traffic unit. + // It can only be set to true if `value` is empty. + EnableEachUniqueValue bool `json:"enableEachUniqueValue,omitempty"` + // Type: Type of this configuration. + // + // Possible values: + // "HTTP_HEADER_HOST" + // "HTTP_PATH" + // "UNSPECIFIED_TYPE" + Type string `json:"type,omitempty"` + // Value: Requests that match this value constitute a granular traffic unit. + Value string `json:"value,omitempty"` + // ForceSendFields is a list of field names (e.g. "EnableEachUniqueValue") to + // unconditionally include in API requests. By default, fields with empty or + // default values are omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + ForceSendFields []string `json:"-"` + // NullFields is a list of field names (e.g. "EnableEachUniqueValue") to + // include in API requests with the JSON null value. By default, fields with + // empty values are omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigThresholdConfigTrafficGranularityConfig) MarshalJSON() ([]byte, error) { + type NoMethod SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigThresholdConfigTrafficGranularityConfig + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + type SecurityPolicyAdvancedOptionsConfig struct { // JsonCustomConfig: Custom configuration to apply the JSON parsing. Only - // applicable when json_parsing is set to STANDARD. + // applicable when + // json_parsing is set to STANDARD. JsonCustomConfig *SecurityPolicyAdvancedOptionsConfigJsonCustomConfig `json:"jsonCustomConfig,omitempty"` // Possible values: // "DISABLED" @@ -39844,8 +65924,14 @@ type SecurityPolicyAdvancedOptionsConfig struct { // "NORMAL" // "VERBOSE" LogLevel string `json:"logLevel,omitempty"` + // RequestBodyInspectionSize: The maximum request size chosen by the customer + // with Waf enabled. + // Values supported are "8KB", "16KB, "32KB", "48KB" and "64KB". + // Values are case insensitive. + RequestBodyInspectionSize string `json:"requestBodyInspectionSize,omitempty"` // UserIpRequestHeaders: An optional list of case-insensitive request header - // names to use for resolving the callers client IP address. + // names to use for + // resolving the callers client IP address. UserIpRequestHeaders []string `json:"userIpRequestHeaders,omitempty"` // ForceSendFields is a list of field names (e.g. "JsonCustomConfig") to // unconditionally include in API requests. By default, fields with empty or @@ -39860,17 +65946,23 @@ type SecurityPolicyAdvancedOptionsConfig struct { NullFields []string `json:"-"` } -func (s *SecurityPolicyAdvancedOptionsConfig) MarshalJSON() ([]byte, error) { +func (s SecurityPolicyAdvancedOptionsConfig) MarshalJSON() ([]byte, error) { type NoMethod SecurityPolicyAdvancedOptionsConfig - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } type SecurityPolicyAdvancedOptionsConfigJsonCustomConfig struct { // ContentTypes: A list of custom Content-Type header values to apply the JSON - // parsing. As per RFC 1341, a Content-Type header value has the following - // format: Content-Type := type "/" subtype *[";" parameter] When configuring a - // custom Content-Type header value, only the type/subtype needs to be - // specified, and the parameters should be excluded. + // parsing. + // + // As per RFC 1341, a Content-Type header value has the following + // format: + // + // Content-Type := type "/" subtype *[";" parameter] + // + // When configuring a custom Content-Type header value, only the + // type/subtype needs to be specified, and the parameters should be + // excluded. ContentTypes []string `json:"contentTypes,omitempty"` // ForceSendFields is a list of field names (e.g. "ContentTypes") to // unconditionally include in API requests. By default, fields with empty or @@ -39885,32 +65977,116 @@ type SecurityPolicyAdvancedOptionsConfigJsonCustomConfig struct { NullFields []string `json:"-"` } -func (s *SecurityPolicyAdvancedOptionsConfigJsonCustomConfig) MarshalJSON() ([]byte, error) { +func (s SecurityPolicyAdvancedOptionsConfigJsonCustomConfig) MarshalJSON() ([]byte, error) { type NoMethod SecurityPolicyAdvancedOptionsConfigJsonCustomConfig - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +type SecurityPolicyAssociation struct { + // AttachmentId: The resource that the security policy is attached to. + AttachmentId string `json:"attachmentId,omitempty"` + // DisplayName: Output only. [Output Only] The display name of the security + // policy of the association. + DisplayName string `json:"displayName,omitempty"` + // ExcludedFolders: A list of folders to exclude from the security policy. + ExcludedFolders []string `json:"excludedFolders,omitempty"` + // ExcludedProjects: A list of projects to exclude from the security policy. + ExcludedProjects []string `json:"excludedProjects,omitempty"` + // Name: The name for an association. + Name string `json:"name,omitempty"` + // SecurityPolicyId: Output only. [Output Only] The security policy ID of the + // association. + SecurityPolicyId string `json:"securityPolicyId,omitempty"` + // ShortName: Output only. [Output Only] The short name of the security policy + // of the association. + ShortName string `json:"shortName,omitempty"` + + // ServerResponse contains the HTTP response code and headers from the server. + googleapi.ServerResponse `json:"-"` + // ForceSendFields is a list of field names (e.g. "AttachmentId") to + // unconditionally include in API requests. By default, fields with empty or + // default values are omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + ForceSendFields []string `json:"-"` + // NullFields is a list of field names (e.g. "AttachmentId") to include in API + // requests with the JSON null value. By default, fields with empty values are + // omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s SecurityPolicyAssociation) MarshalJSON() ([]byte, error) { + type NoMethod SecurityPolicyAssociation + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } type SecurityPolicyDdosProtectionConfig struct { + // Possible values: + // "DDOS_ADAPTIVE_PROTECTION_UNSPECIFIED" + // "DISABLED" + // "ENABLED" + // "PREVIEW" + // "UNSPECIFIED_ADAPTIVE_PROTECTION" + DdosAdaptiveProtection string `json:"ddosAdaptiveProtection,omitempty"` + // DdosImpactedBaselineThreshold: DDoS Protection for Network Load Balancers + // (and VMs with public IPs) + // builds DDoS mitigations that minimize collateral damage. It quantifies + // this as the fraction of a non-abuse baseline that's + // inadvertently + // blocked. + // + // Rules whose collateral damage exceeds ddosImpactedBaselineThreshold will + // not be deployed. Using a lower value will prioritize keeping + // collateral + // damage low, possibly at the cost of its effectiveness in rate limiting + // some or all of the attack. It should typically be unset, so Advanced + // DDoS + // (and Adaptive Protection) uses the best mitigation it can find. Setting + // the threshold is advised if there are logs for false positive + // detections + // with high collateral damage, and will cause Advanced DDoS to attempt to + // find a less aggressive rule that satisfies the constraint. If a + // suitable + // rule cannot be found, the system falls back to either no mitigation + // for + // smaller attacks or broader network throttles for larger ones. + DdosImpactedBaselineThreshold float64 `json:"ddosImpactedBaselineThreshold,omitempty"` // Possible values: // "ADVANCED" + // "ADVANCED_PREVIEW" // "STANDARD" DdosProtection string `json:"ddosProtection,omitempty"` - // ForceSendFields is a list of field names (e.g. "DdosProtection") to + // ForceSendFields is a list of field names (e.g. "DdosAdaptiveProtection") to // unconditionally include in API requests. By default, fields with empty or // default values are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. ForceSendFields []string `json:"-"` - // NullFields is a list of field names (e.g. "DdosProtection") to include in - // API requests with the JSON null value. By default, fields with empty values - // are omitted from API requests. See + // NullFields is a list of field names (e.g. "DdosAdaptiveProtection") to + // include in API requests with the JSON null value. By default, fields with + // empty values are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } -func (s *SecurityPolicyDdosProtectionConfig) MarshalJSON() ([]byte, error) { +func (s SecurityPolicyDdosProtectionConfig) MarshalJSON() ([]byte, error) { type NoMethod SecurityPolicyDdosProtectionConfig - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +func (s *SecurityPolicyDdosProtectionConfig) UnmarshalJSON(data []byte) error { + type NoMethod SecurityPolicyDdosProtectionConfig + var s1 struct { + DdosImpactedBaselineThreshold gensupport.JSONFloat64 `json:"ddosImpactedBaselineThreshold"` + *NoMethod + } + s1.NoMethod = (*NoMethod)(s) + if err := json.Unmarshal(data, &s1); err != nil { + return err + } + s.DdosImpactedBaselineThreshold = float64(s1.DdosImpactedBaselineThreshold) + return nil } type SecurityPolicyList struct { @@ -39918,14 +66094,16 @@ type SecurityPolicyList struct { Id string `json:"id,omitempty"` // Items: A list of SecurityPolicy resources. Items []*SecurityPolicy `json:"items,omitempty"` - // Kind: [Output Only] Type of resource. Always compute#securityPolicyList for - // listsof securityPolicies + // Kind: Output only. [Output Only] Type of resource. + // Alwayscompute#securityPolicyList for listsof securityPolicies 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. + // results for + // list requests. If the number of results is larger thanmaxResults, 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"` // Warning: [Output Only] Informational warning message. Warning *SecurityPolicyListWarning `json:"warning,omitempty"` @@ -39945,75 +66123,97 @@ type SecurityPolicyList struct { NullFields []string `json:"-"` } -func (s *SecurityPolicyList) MarshalJSON() ([]byte, error) { +func (s SecurityPolicyList) MarshalJSON() ([]byte, error) { type NoMethod SecurityPolicyList - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } // SecurityPolicyListWarning: [Output Only] Informational warning message. type SecurityPolicyListWarning 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. + // 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" - Warning about failed cleanup of transient changes made - // by a failed operation. + // by a failed + // operation. // "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was created. // "DEPRECATED_TYPE_USED" - When deploying and at least one of the resources - // has a type marked as deprecated + // has a type marked as + // deprecated // "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk that is // larger than image size. // "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the - // resources has a type marked as experimental + // resources has a type marked as + // experimental // "EXTERNAL_API_WARNING" - Warning that is present in an external api call // "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been - // overridden. Deprecated unused field. + // overridden. + // Deprecated unused field. // "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an injected // kernel, which is deprecated. // "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB" - A WEIGHTED_MAGLEV backend - // service is associated with a health check that is not of type - // HTTP/HTTPS/HTTP2. + // service is associated with a health check that is + // not of type HTTP/HTTPS/HTTP2. // "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a // exceedingly large number of resources // "LIST_OVERHEAD_QUOTA_EXCEED" - Resource can't be retrieved due to list - // overhead quota exceed which captures the amount of resources filtered out by + // overhead quota exceed + // which captures the amount of resources filtered out by // user-defined list filter. // "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is not - // assigned to an instance on the network. + // assigned to an instance on the + // network. // "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot ip // forward. // "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE" - The route's nextHopInstance - // URL refers to an instance that does not have an ipv6 interface on the same - // network as the route. + // URL refers to an instance that does not have an + // ipv6 interface on the same network as the route. // "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL refers to // an instance that does not exist. // "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance URL - // refers to an instance that is not on the same network as the route. + // refers to an instance that is not on the + // same network as the route. // "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not have a // status of RUNNING. // "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to continue - // the process despite the mentioned error. + // the process despite + // the mentioned error. // "NO_RESULTS_ON_PAGE" - No results are present on a particular list page. // "PARTIAL_SUCCESS" - Success is reported, but some results may be missing // due to errors + // "QUOTA_INFO_UNAVAILABLE" - Quota information is not available to client + // requests (e.g: + // regions.list). // "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource that - // requires a TOS they have not accepted. + // requires a TOS they have not + // accepted. // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a resource is // in use. // "RESOURCE_NOT_DELETED" - One or more of the resources set to auto-delete - // could not be deleted because they were in use. + // could not be deleted + // because they were in use. // "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is // ignored. // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in instance - // group manager is valid as such, but its application does not make a lot of - // sense, because it allows only single instance in instance group. + // group manager is valid as such, but + // its application does not make a lot of sense, because it allows only + // single instance in instance group. // "UNDECLARED_PROPERTIES" - When undeclared properties in the schema are // present // "UNREACHABLE" - A given scope cannot be reached. 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: [Output Only] Metadata about this warning in key: + // value format. For example: + // + // "data": [ + // { + // "key": "scope", + // "value": "zones/us-east1-d" + // } Data []*SecurityPolicyListWarningData `json:"data,omitempty"` // Message: [Output Only] A human-readable description of the warning code. Message string `json:"message,omitempty"` @@ -40030,19 +66230,22 @@ type SecurityPolicyListWarning struct { NullFields []string `json:"-"` } -func (s *SecurityPolicyListWarning) MarshalJSON() ([]byte, error) { +func (s SecurityPolicyListWarning) MarshalJSON() ([]byte, error) { type NoMethod SecurityPolicyListWarning - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } type SecurityPolicyListWarningData 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: [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"` @@ -40059,18 +66262,22 @@ type SecurityPolicyListWarningData struct { NullFields []string `json:"-"` } -func (s *SecurityPolicyListWarningData) MarshalJSON() ([]byte, error) { +func (s SecurityPolicyListWarningData) MarshalJSON() ([]byte, error) { type NoMethod SecurityPolicyListWarningData - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } type SecurityPolicyRecaptchaOptionsConfig struct { // RedirectSiteKey: An optional field to supply a reCAPTCHA site key to be used - // for all the rules using the redirect action with the type of - // GOOGLE_RECAPTCHA under the security policy. The specified site key needs to - // be created from the reCAPTCHA API. The user is responsible for the validity - // of the specified site key. If not specified, a Google-managed site key is - // used. This field is only supported in Global Security Policies of type + // for all the + // rules using the redirect action with the type of GOOGLE_RECAPTCHA under + // the security policy. The specified site key needs to be created from + // the + // reCAPTCHA API. The user is responsible for the validity of the + // specified + // site key. If not specified, a Google-managed site key is used. + // This field is only supported in Global Security Policies of + // type // CLOUD_ARMOR. RedirectSiteKey string `json:"redirectSiteKey,omitempty"` // ForceSendFields is a list of field names (e.g. "RedirectSiteKey") to @@ -40086,9 +66293,9 @@ type SecurityPolicyRecaptchaOptionsConfig struct { NullFields []string `json:"-"` } -func (s *SecurityPolicyRecaptchaOptionsConfig) MarshalJSON() ([]byte, error) { +func (s SecurityPolicyRecaptchaOptionsConfig) MarshalJSON() ([]byte, error) { type NoMethod SecurityPolicyRecaptchaOptionsConfig - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } type SecurityPolicyReference struct { @@ -40106,81 +66313,131 @@ type SecurityPolicyReference struct { NullFields []string `json:"-"` } -func (s *SecurityPolicyReference) MarshalJSON() ([]byte, error) { +func (s SecurityPolicyReference) MarshalJSON() ([]byte, error) { type NoMethod SecurityPolicyReference - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } // SecurityPolicyRule: Represents a rule that describes one or more match -// conditions along with the action to be taken when traffic matches this -// condition (allow or deny). +// conditions along with +// the action to be taken when traffic matches this condition (allow or deny). type SecurityPolicyRule struct { - // Action: The Action to perform when the rule is matched. The following are - // the valid actions: - allow: allow access to target. - deny(STATUS): deny - // access to target, returns the HTTP response code specified. Valid values for - // `STATUS` are 403, 404, and 502. - rate_based_ban: limit client traffic to - // the configured threshold and ban the client if the traffic exceeds the - // threshold. Configure parameters for this action in RateLimitOptions. - // Requires rate_limit_options to be set. - redirect: redirect to a different - // target. This can either be an internal reCAPTCHA redirect, or an external - // URL-based redirect via a 302 response. Parameters for this action can be - // configured via redirectOptions. This action is only supported in Global - // Security Policies of type CLOUD_ARMOR. - throttle: limit client traffic to - // the configured threshold. Configure parameters for this action in - // rateLimitOptions. Requires rate_limit_options to be set for this. + // Action: The Action to perform when the rule is matched. + // The following are the valid actions: + // + // - allow: allow access to target. + // - deny(STATUS): deny access to target, returns the + // HTTP response code specified. Valid values for `STATUS` + // are 403, 404, and 502. + // - rate_based_ban: limit client traffic to the configured + // threshold and ban the client if the traffic exceeds the threshold. + // Configure parameters for this action in RateLimitOptions. Requires + // rate_limit_options to be set. + // - redirect: redirect to a different target. This can + // either be an internal reCAPTCHA redirect, or an external URL-based + // redirect via a 302 response. Parameters for this action can be + // configured + // via redirectOptions. This action is only supported in Global Security + // Policies of type CLOUD_ARMOR. + // - throttle: limit + // client traffic to the configured threshold. Configure parameters for + // this + // action in rateLimitOptions. Requires rate_limit_options to be set for + // this. + // - fairshare (preview only): when traffic reaches the + // threshold limit, requests from the clients matching this rule begin to + // be + // rate-limited using the Fair Share algorithm. This action is only allowed + // in security policies of type `CLOUD_ARMOR_INTERNAL_SERVICE`. Action string `json:"action,omitempty"` // Description: An optional description of this resource. Provide this property - // when you create the resource. + // when you + // create the resource. Description string `json:"description,omitempty"` - // HeaderAction: Optional, additional actions that are performed on headers. - // This field is only supported in Global Security Policies of type + // HeaderAction: Optional, additional actions that are performed on + // headers. + // This field is only supported in Global Security Policies of + // type // CLOUD_ARMOR. HeaderAction *SecurityPolicyRuleHttpHeaderAction `json:"headerAction,omitempty"` - // Kind: [Output only] Type of the resource. Always compute#securityPolicyRule - // for security policy rules + // Kind: Output only. [Output only] Type of the resource. + // Alwayscompute#securityPolicyRule for security policy rules Kind string `json:"kind,omitempty"` - // Match: A match condition that incoming traffic is evaluated against. If it - // evaluates to true, the corresponding 'action' is enforced. + // Match: A match condition that incoming traffic is evaluated against. + // If it evaluates to true, the corresponding 'action' is enforced. Match *SecurityPolicyRuleMatcher `json:"match,omitempty"` // NetworkMatch: A match condition that incoming packets are evaluated against - // for CLOUD_ARMOR_NETWORK security policies. If it matches, the corresponding - // 'action' is enforced. The match criteria for a rule consists of built-in - // match fields (like 'srcIpRanges') and potentially multiple user-defined - // match fields ('userDefinedFields'). Field values may be extracted directly - // from the packet or derived from it (e.g. 'srcRegionCodes'). Some fields may - // not be present in every packet (e.g. 'srcPorts'). A user-defined field is - // only present if the base header is found in the packet and the entire field - // is in bounds. Each match field may specify which values can match it, - // listing one or more ranges, prefixes, or exact values that are considered a - // match for the field. A field value must be present in order to match a - // specified match field. If no match values are specified for a match field, - // then any field value is considered to match it, and it's not required to be - // present. For strings specifying '*' is also equivalent to match all. For a - // packet to match a rule, all specified match fields must match the - // corresponding field values derived from the packet. Example: networkMatch: - // srcIpRanges: - "192.0.2.0/24" - "198.51.100.0/24" userDefinedFields: - name: - // "ipv4_fragment_offset" values: - "1-0x1fff" The above match condition - // matches packets with a source IP in 192.0.2.0/24 or 198.51.100.0/24 and a - // user-defined field named "ipv4_fragment_offset" with a value between 1 and - // 0x1fff inclusive. + // for + // CLOUD_ARMOR_NETWORK security policies. If it matches, the + // corresponding + // 'action' is enforced. + // + // The match criteria for a rule consists of built-in match fields + // (like + // 'srcIpRanges') and potentially multiple user-defined match + // fields + // ('userDefinedFields'). + // + // Field values may be extracted directly from the packet or derived from + // it + // (e.g. 'srcRegionCodes'). Some fields may not be present in every + // packet + // (e.g. 'srcPorts'). A user-defined field is only present if the base + // header is found in the packet and the entire field is in bounds. + // + // Each match field may specify which values can match it, listing one or + // more ranges, prefixes, or exact values that are considered a match for + // the field. A field value must be present in order to match a specified + // match field. If no match values are specified for a match field, then + // any + // field value is considered to match it, and it's not required to be + // present. For strings specifying '*' is also equivalent to match all. + // + // For a packet to match a rule, all specified match fields must match + // the + // corresponding field values derived from the + // packet. + // + // Example: + // + // networkMatch: + // srcIpRanges: + // - "192.0.2.0/24" + // - "198.51.100.0/24" + // userDefinedFields: + // - name: "ipv4_fragment_offset" + // values: + // - "1-0x1fff" + // + // The above match condition matches packets with a source IP in + // 192.0.2.0/24 or 198.51.100.0/24 and a user-defined field + // named + // "ipv4_fragment_offset" with a value between 1 and 0x1fff inclusive. NetworkMatch *SecurityPolicyRuleNetworkMatcher `json:"networkMatch,omitempty"` // PreconfiguredWafConfig: Preconfigured WAF configuration to be applied for - // the rule. If the rule does not evaluate preconfigured WAF rules, i.e., if + // the rule. If the rule + // does not evaluate preconfigured WAF rules, i.e., + // if // evaluatePreconfiguredWaf() is not used, this field will have no effect. PreconfiguredWafConfig *SecurityPolicyRulePreconfiguredWafConfig `json:"preconfiguredWafConfig,omitempty"` // Preview: If set to true, the specified action is not enforced. Preview bool `json:"preview,omitempty"` // Priority: An integer indicating the priority of a rule in the list. The - // priority must be a positive value between 0 and 2147483647. Rules are - // evaluated from highest to lowest priority where 0 is the highest priority - // and 2147483647 is the lowest priority. + // priority + // must be a positive value between 0 and 2147483647. + // Rules are evaluated from highest to lowest priority where 0 is the + // highest priority and 2147483647 is the lowest priority. Priority int64 `json:"priority,omitempty"` // RateLimitOptions: Must be specified if the action is "rate_based_ban" or - // "throttle". Cannot be specified for any other actions. + // "throttle" or + // "fairshare". Cannot be specified for any other actions. RateLimitOptions *SecurityPolicyRuleRateLimitOptions `json:"rateLimitOptions,omitempty"` // RedirectOptions: Parameters defining the redirect action. Cannot be - // specified for any other actions. This field is only supported in Global - // Security Policies of type CLOUD_ARMOR. + // specified for any + // other actions. + // This field is only supported in Global Security Policies of + // type + // CLOUD_ARMOR. RedirectOptions *SecurityPolicyRuleRedirectOptions `json:"redirectOptions,omitempty"` // ServerResponse contains the HTTP response code and headers from the server. @@ -40198,14 +66455,15 @@ type SecurityPolicyRule struct { NullFields []string `json:"-"` } -func (s *SecurityPolicyRule) MarshalJSON() ([]byte, error) { +func (s SecurityPolicyRule) MarshalJSON() ([]byte, error) { type NoMethod SecurityPolicyRule - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } type SecurityPolicyRuleHttpHeaderAction struct { // RequestHeadersToAdds: The list of request headers to add or overwrite if - // they're already present. + // they're already + // present. RequestHeadersToAdds []*SecurityPolicyRuleHttpHeaderActionHttpHeaderOption `json:"requestHeadersToAdds,omitempty"` // ForceSendFields is a list of field names (e.g. "RequestHeadersToAdds") to // unconditionally include in API requests. By default, fields with empty or @@ -40220,9 +66478,9 @@ type SecurityPolicyRuleHttpHeaderAction struct { NullFields []string `json:"-"` } -func (s *SecurityPolicyRuleHttpHeaderAction) MarshalJSON() ([]byte, error) { +func (s SecurityPolicyRuleHttpHeaderAction) MarshalJSON() ([]byte, error) { type NoMethod SecurityPolicyRuleHttpHeaderAction - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } type SecurityPolicyRuleHttpHeaderActionHttpHeaderOption struct { @@ -40243,37 +66501,48 @@ type SecurityPolicyRuleHttpHeaderActionHttpHeaderOption struct { NullFields []string `json:"-"` } -func (s *SecurityPolicyRuleHttpHeaderActionHttpHeaderOption) MarshalJSON() ([]byte, error) { +func (s SecurityPolicyRuleHttpHeaderActionHttpHeaderOption) MarshalJSON() ([]byte, error) { type NoMethod SecurityPolicyRuleHttpHeaderActionHttpHeaderOption - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } // SecurityPolicyRuleMatcher: Represents a match condition that incoming -// traffic is evaluated against. Exactly one field must be specified. +// traffic is evaluated against. +// Exactly one field must be specified. type SecurityPolicyRuleMatcher struct { - // Config: The configuration options available when specifying versioned_expr. - // This field must be specified if versioned_expr is specified and cannot be - // specified if versioned_expr is not specified. + // Config: The configuration options available when specifying + // versioned_expr. + // This field must be specified if versioned_expr is specified and cannot + // be specified if versioned_expr is not specified. Config *SecurityPolicyRuleMatcherConfig `json:"config,omitempty"` - // Expr: User defined CEVAL expression. A CEVAL expression is used to specify - // match criteria such as origin.ip, source.region_code and contents in the - // request header. Expressions containing `evaluateThreatIntelligence` require - // Cloud Armor Managed Protection Plus tier and are not supported in Edge - // Policies nor in Regional Policies. Expressions containing - // `evaluatePreconfiguredExpr('sourceiplist-*')` require Cloud Armor Managed - // Protection Plus tier and are only supported in Global Security Policies. + // Expr: User defined CEVAL expression. + // A CEVAL expression is used to specify match criteria such as + // origin.ip, + // source.region_code and contents in the request header. + // Expressions containing `evaluateThreatIntelligence` require a Cloud + // Armor Enterprise subscription and are not supported in Edge Policies + // nor in Regional Policies. Expressions + // containing + // `evaluatePreconfiguredExpr('sourceiplist-*')` require a Cloud + // Armor + // Enterprise subscription and are only supported in Global Security + // Policies. Expr *Expr `json:"expr,omitempty"` // ExprOptions: The configuration options available when specifying a user - // defined CEVAL expression (i.e., 'expr'). + // defined + // CEVAL expression (i.e., 'expr'). ExprOptions *SecurityPolicyRuleMatcherExprOptions `json:"exprOptions,omitempty"` - // VersionedExpr: Preconfigured versioned expression. If this field is - // specified, config must also be specified. Available preconfigured - // expressions along with their requirements are: SRC_IPS_V1 - must specify the - // corresponding src_ip_range field in config. + // VersionedExpr: Preconfigured versioned expression. + // If this field is specified, config must also be specified. + // Available preconfigured expressions along with their requirements + // are: + // SRC_IPS_V1 - must specify the corresponding src_ip_range field in + // config. // // Possible values: // "SRC_IPS_V1" - Matches the source IP address of a request to the IP ranges - // supplied in config. + // supplied + // in config. VersionedExpr string `json:"versionedExpr,omitempty"` // ForceSendFields is a list of field names (e.g. "Config") to unconditionally // include in API requests. By default, fields with empty or default values are @@ -40288,14 +66557,14 @@ type SecurityPolicyRuleMatcher struct { NullFields []string `json:"-"` } -func (s *SecurityPolicyRuleMatcher) MarshalJSON() ([]byte, error) { +func (s SecurityPolicyRuleMatcher) MarshalJSON() ([]byte, error) { type NoMethod SecurityPolicyRuleMatcher - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } type SecurityPolicyRuleMatcherConfig struct { - // SrcIpRanges: CIDR IP address range. Maximum number of src_ip_ranges allowed - // is 10. + // SrcIpRanges: CIDR IP address range. + // Maximum number of src_ip_ranges allowed is 10. SrcIpRanges []string `json:"srcIpRanges,omitempty"` // ForceSendFields is a list of field names (e.g. "SrcIpRanges") to // unconditionally include in API requests. By default, fields with empty or @@ -40310,15 +66579,15 @@ type SecurityPolicyRuleMatcherConfig struct { NullFields []string `json:"-"` } -func (s *SecurityPolicyRuleMatcherConfig) MarshalJSON() ([]byte, error) { +func (s SecurityPolicyRuleMatcherConfig) MarshalJSON() ([]byte, error) { type NoMethod SecurityPolicyRuleMatcherConfig - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } type SecurityPolicyRuleMatcherExprOptions struct { // RecaptchaOptions: reCAPTCHA configuration options to be applied for the - // rule. If the rule does not evaluate reCAPTCHA tokens, this field has no - // effect. + // rule. If the + // rule does not evaluate reCAPTCHA tokens, this field has no effect. RecaptchaOptions *SecurityPolicyRuleMatcherExprOptionsRecaptchaOptions `json:"recaptchaOptions,omitempty"` // ForceSendFields is a list of field names (e.g. "RecaptchaOptions") to // unconditionally include in API requests. By default, fields with empty or @@ -40333,19 +66602,23 @@ type SecurityPolicyRuleMatcherExprOptions struct { NullFields []string `json:"-"` } -func (s *SecurityPolicyRuleMatcherExprOptions) MarshalJSON() ([]byte, error) { +func (s SecurityPolicyRuleMatcherExprOptions) MarshalJSON() ([]byte, error) { type NoMethod SecurityPolicyRuleMatcherExprOptions - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } type SecurityPolicyRuleMatcherExprOptionsRecaptchaOptions struct { // ActionTokenSiteKeys: A list of site keys to be used during the validation of - // reCAPTCHA action-tokens. The provided site keys need to be created from - // reCAPTCHA API under the same project where the security policy is created. + // reCAPTCHA + // action-tokens. The provided site keys need to be created from + // reCAPTCHA API under the same project where the security policy is + // created. ActionTokenSiteKeys []string `json:"actionTokenSiteKeys,omitempty"` // SessionTokenSiteKeys: A list of site keys to be used during the validation - // of reCAPTCHA session-tokens. The provided site keys need to be created from - // reCAPTCHA API under the same project where the security policy is created. + // of reCAPTCHA + // session-tokens. The provided site keys need to be created from + // reCAPTCHA API under the same project where the security policy is + // created. SessionTokenSiteKeys []string `json:"sessionTokenSiteKeys,omitempty"` // ForceSendFields is a list of field names (e.g. "ActionTokenSiteKeys") to // unconditionally include in API requests. By default, fields with empty or @@ -40360,38 +66633,46 @@ type SecurityPolicyRuleMatcherExprOptionsRecaptchaOptions struct { NullFields []string `json:"-"` } -func (s *SecurityPolicyRuleMatcherExprOptionsRecaptchaOptions) MarshalJSON() ([]byte, error) { +func (s SecurityPolicyRuleMatcherExprOptionsRecaptchaOptions) MarshalJSON() ([]byte, error) { type NoMethod SecurityPolicyRuleMatcherExprOptionsRecaptchaOptions - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } // SecurityPolicyRuleNetworkMatcher: Represents a match condition that incoming -// network traffic is evaluated against. +// network traffic is evaluated +// against. type SecurityPolicyRuleNetworkMatcher struct { // DestIpRanges: Destination IPv4/IPv6 addresses or CIDR prefixes, in standard - // text format. + // text + // format. DestIpRanges []string `json:"destIpRanges,omitempty"` // DestPorts: Destination port numbers for TCP/UDP/SCTP. Each element can be a - // 16-bit unsigned decimal number (e.g. "80") or range (e.g. "0-1023"). + // 16-bit + // unsigned decimal number (e.g. "80") or range (e.g. "0-1023"). DestPorts []string `json:"destPorts,omitempty"` // IpProtocols: IPv4 protocol / IPv6 next header (after extension headers). - // Each element can be an 8-bit unsigned decimal number (e.g. "6"), range (e.g. - // "253-254"), or one of the following protocol names: "tcp", "udp", "icmp", - // "esp", "ah", "ipip", or "sctp". + // Each + // element can be an 8-bit unsigned decimal number (e.g. "6"), range + // (e.g. + // "253-254"), or one of the following protocol names: "tcp", "udp", + // "icmp", "esp", "ah", "ipip", or "sctp". IpProtocols []string `json:"ipProtocols,omitempty"` // SrcAsns: BGP Autonomous System Number associated with the source IP address. SrcAsns []int64 `json:"srcAsns,omitempty"` // SrcIpRanges: Source IPv4/IPv6 addresses or CIDR prefixes, in standard text // format. SrcIpRanges []string `json:"srcIpRanges,omitempty"` - // SrcPorts: Source port numbers for TCP/UDP/SCTP. Each element can be a 16-bit + // SrcPorts: Source port numbers for TCP/UDP/SCTP. Each element can be a + // 16-bit // unsigned decimal number (e.g. "80") or range (e.g. "0-1023"). SrcPorts []string `json:"srcPorts,omitempty"` // SrcRegionCodes: Two-letter ISO 3166-1 alpha-2 country code associated with - // the source IP address. + // the source + // IP address. SrcRegionCodes []string `json:"srcRegionCodes,omitempty"` // UserDefinedFields: User-defined fields. Each element names a defined field - // and lists the matching values for that field. + // and lists the + // matching values for that field. UserDefinedFields []*SecurityPolicyRuleNetworkMatcherUserDefinedFieldMatch `json:"userDefinedFields,omitempty"` // ForceSendFields is a list of field names (e.g. "DestIpRanges") to // unconditionally include in API requests. By default, fields with empty or @@ -40406,17 +66687,18 @@ type SecurityPolicyRuleNetworkMatcher struct { NullFields []string `json:"-"` } -func (s *SecurityPolicyRuleNetworkMatcher) MarshalJSON() ([]byte, error) { +func (s SecurityPolicyRuleNetworkMatcher) MarshalJSON() ([]byte, error) { type NoMethod SecurityPolicyRuleNetworkMatcher - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } type SecurityPolicyRuleNetworkMatcherUserDefinedFieldMatch struct { // Name: Name of the user-defined field, as given in the definition. Name string `json:"name,omitempty"` - // Values: Matching values of the field. Each element can be a 32-bit unsigned - // decimal or hexadecimal (starting with "0x") number (e.g. "64") or range - // (e.g. "0x400-0x7ff"). + // Values: Matching values of the field. Each element can be a 32-bit + // unsigned + // decimal or hexadecimal (starting with "0x") number (e.g. "64") or + // range (e.g. "0x400-0x7ff"). Values []string `json:"values,omitempty"` // ForceSendFields is a list of field names (e.g. "Name") to unconditionally // include in API requests. By default, fields with empty or default values are @@ -40431,9 +66713,9 @@ type SecurityPolicyRuleNetworkMatcherUserDefinedFieldMatch struct { NullFields []string `json:"-"` } -func (s *SecurityPolicyRuleNetworkMatcherUserDefinedFieldMatch) MarshalJSON() ([]byte, error) { +func (s SecurityPolicyRuleNetworkMatcherUserDefinedFieldMatch) MarshalJSON() ([]byte, error) { type NoMethod SecurityPolicyRuleNetworkMatcherUserDefinedFieldMatch - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } type SecurityPolicyRulePreconfiguredWafConfig struct { @@ -40453,29 +66735,34 @@ type SecurityPolicyRulePreconfiguredWafConfig struct { NullFields []string `json:"-"` } -func (s *SecurityPolicyRulePreconfiguredWafConfig) MarshalJSON() ([]byte, error) { +func (s SecurityPolicyRulePreconfiguredWafConfig) MarshalJSON() ([]byte, error) { type NoMethod SecurityPolicyRulePreconfiguredWafConfig - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } type SecurityPolicyRulePreconfiguredWafConfigExclusion struct { // RequestCookiesToExclude: A list of request cookie names whose value will be - // excluded from inspection during preconfigured WAF evaluation. + // excluded from + // inspection during preconfigured WAF evaluation. RequestCookiesToExclude []*SecurityPolicyRulePreconfiguredWafConfigExclusionFieldParams `json:"requestCookiesToExclude,omitempty"` // RequestHeadersToExclude: A list of request header names whose value will be - // excluded from inspection during preconfigured WAF evaluation. + // excluded from + // inspection during preconfigured WAF evaluation. RequestHeadersToExclude []*SecurityPolicyRulePreconfiguredWafConfigExclusionFieldParams `json:"requestHeadersToExclude,omitempty"` // RequestQueryParamsToExclude: A list of request query parameter names whose - // value will be excluded from inspection during preconfigured WAF evaluation. - // Note that the parameter can be in the query string or in the POST body. + // value will be excluded + // from inspection during preconfigured WAF evaluation. Note that the + // parameter can be in the query string or in the POST body. RequestQueryParamsToExclude []*SecurityPolicyRulePreconfiguredWafConfigExclusionFieldParams `json:"requestQueryParamsToExclude,omitempty"` // RequestUrisToExclude: A list of request URIs from the request line to be - // excluded from inspection during preconfigured WAF evaluation. When - // specifying this field, the query or fragment part should be excluded. + // excluded from + // inspection during preconfigured WAF evaluation. When specifying this + // field, the query or fragment part should be excluded. RequestUrisToExclude []*SecurityPolicyRulePreconfiguredWafConfigExclusionFieldParams `json:"requestUrisToExclude,omitempty"` - // TargetRuleIds: A list of target rule IDs under the WAF rule set to apply the - // preconfigured WAF exclusion. If omitted, it refers to all the rule IDs under - // the WAF rule set. + // TargetRuleIds: A list of target rule IDs under the WAF rule set to apply + // the + // preconfigured WAF exclusion. If omitted, it refers to all the rule + // IDs under the WAF rule set. TargetRuleIds []string `json:"targetRuleIds,omitempty"` // TargetRuleSet: Target WAF rule set to apply the preconfigured WAF exclusion. TargetRuleSet string `json:"targetRuleSet,omitempty"` @@ -40492,9 +66779,9 @@ type SecurityPolicyRulePreconfiguredWafConfigExclusion struct { NullFields []string `json:"-"` } -func (s *SecurityPolicyRulePreconfiguredWafConfigExclusion) MarshalJSON() ([]byte, error) { +func (s SecurityPolicyRulePreconfiguredWafConfigExclusion) MarshalJSON() ([]byte, error) { type NoMethod SecurityPolicyRulePreconfiguredWafConfigExclusion - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } type SecurityPolicyRulePreconfiguredWafConfigExclusionFieldParams struct { @@ -40502,14 +66789,18 @@ type SecurityPolicyRulePreconfiguredWafConfigExclusionFieldParams struct { // // Possible values: // "CONTAINS" - The operator matches if the field value contains the - // specified value. + // specified + // value. // "ENDS_WITH" - The operator matches if the field value ends with the - // specified value. - // "EQUALS" - The operator matches if the field value equals the specified + // specified + // value. + // "EQUALS" - The operator matches if the field value equals the + // specified // value. // "EQUALS_ANY" - The operator matches if the field value is any value. // "STARTS_WITH" - The operator matches if the field value starts with the - // specified value. + // specified + // value. Op string `json:"op,omitempty"` // Val: The value of the field. Val string `json:"val,omitempty"` @@ -40526,50 +66817,72 @@ type SecurityPolicyRulePreconfiguredWafConfigExclusionFieldParams struct { NullFields []string `json:"-"` } -func (s *SecurityPolicyRulePreconfiguredWafConfigExclusionFieldParams) MarshalJSON() ([]byte, error) { +func (s SecurityPolicyRulePreconfiguredWafConfigExclusionFieldParams) MarshalJSON() ([]byte, error) { type NoMethod SecurityPolicyRulePreconfiguredWafConfigExclusionFieldParams - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } type SecurityPolicyRuleRateLimitOptions struct { - // BanDurationSec: Can only be specified if the action for the rule is - // "rate_based_ban". If specified, determines the time (in seconds) the traffic - // will continue to be banned by the rate limit after the rate falls below the - // threshold. + // BanDurationSec: Can only be specified if the action for the rule + // is + // "rate_based_ban". If specified, determines the time (in seconds) + // the traffic will continue to be banned by the rate limit after the + // rate falls below the threshold. BanDurationSec int64 `json:"banDurationSec,omitempty"` - // BanThreshold: Can only be specified if the action for the rule is - // "rate_based_ban". If specified, the key will be banned for the configured - // 'ban_duration_sec' when the number of requests that exceed the - // 'rate_limit_threshold' also exceed this 'ban_threshold'. + // BanThreshold: Can only be specified if the action for the rule + // is + // "rate_based_ban". If specified, the key will be banned for the + // configured 'ban_duration_sec' when the number of requests that exceed + // the 'rate_limit_threshold' also exceed this 'ban_threshold'. BanThreshold *SecurityPolicyRuleRateLimitOptionsThreshold `json:"banThreshold,omitempty"` // ConformAction: Action to take for requests that are under the configured - // rate limit threshold. Valid option is "allow" only. + // rate limit + // threshold. Valid option is "allow" only. ConformAction string `json:"conformAction,omitempty"` // EnforceOnKey: Determines the key to enforce the rate_limit_threshold on. - // Possible values are: - ALL: A single rate limit threshold is applied to all - // the requests matching this rule. This is the default value if "enforceOnKey" - // is not configured. - IP: The source IP address of the request is the key. - // Each IP has this limit enforced separately. - HTTP_HEADER: The value of the - // HTTP header whose name is configured under "enforceOnKeyName". The key value - // is truncated to the first 128 bytes of the header value. If no such header - // is present in the request, the key type defaults to ALL. - XFF_IP: The first - // IP address (i.e. the originating client IP address) specified in the list of - // IPs under X-Forwarded-For HTTP header. If no such header is present or the - // value is not a valid IP, the key defaults to the source IP address of the - // request i.e. key type IP. - HTTP_COOKIE: The value of the HTTP cookie whose - // name is configured under "enforceOnKeyName". The key value is truncated to - // the first 128 bytes of the cookie value. If no such cookie is present in the - // request, the key type defaults to ALL. - HTTP_PATH: The URL path of the HTTP - // request. The key value is truncated to the first 128 bytes. - SNI: Server - // name indication in the TLS session of the HTTPS request. The key value is - // truncated to the first 128 bytes. The key type defaults to ALL on a HTTP - // session. - REGION_CODE: The country/region from which the request - // originates. - TLS_JA3_FINGERPRINT: JA3 TLS/SSL fingerprint if the client - // connects using HTTPS, HTTP/2 or HTTP/3. If not available, the key type - // defaults to ALL. - USER_IP: The IP address of the originating client, which - // is resolved based on "userIpRequestHeaders" configured with the security - // policy. If there is no "userIpRequestHeaders" configuration or an IP address - // cannot be resolved from it, the key type defaults to IP. + // Possible + // values are: + // + // - ALL: A single rate limit threshold is applied to all + // the requests matching this rule. This is the default value if + // "enforceOnKey" is not configured. + // - IP: The source IP address of + // the request is the key. Each IP has this limit enforced + // separately. + // - HTTP_HEADER: The value of the HTTP + // header whose name is configured under "enforceOnKeyName". The key + // value is truncated to the first 128 bytes of the header value. If no + // such header is present in the request, the key type defaults toALL. + // - XFF_IP: The first IP address (i.e. the + // originating client IP address) specified in the list of IPs under + // X-Forwarded-For HTTP header. If no such header is present or the value + // is not a valid IP, the key defaults to the source IP address of + // the request i.e. key type IP. + // - HTTP_COOKIE: The value of the HTTP + // cookie whose name is configured under "enforceOnKeyName". The key + // value is truncated to the first 128 bytes of the cookie value. If no + // such cookie is present in the request, the key type defaults toALL. + // - HTTP_PATH: The URL path of the HTTP request. The key + // value is truncated to the first 128 bytes. + // - SNI: Server name indication in the TLS session of the + // HTTPS request. The key value is truncated to the first 128 bytes. The + // key type defaults to ALL on a HTTP session. + // - REGION_CODE: The country/region from which the request + // originates. + // - TLS_JA3_FINGERPRINT: JA3 TLS/SSL fingerprint if the + // client connects using HTTPS, HTTP/2 or HTTP/3. If not available, the + // key type defaults to ALL. + // - USER_IP: The IP address of the originating client, + // which is resolved based on "userIpRequestHeaders" configured with the + // security policy. If there is no "userIpRequestHeaders" configuration or + // an IP address cannot be resolved from it, the key type defaults toIP. + // + // - TLS_JA4_FINGERPRINT: JA4 TLS/SSL fingerprint if the + // client connects using HTTPS, HTTP/2 or HTTP/3. If not available, the + // key type defaults to ALL. + // For "fairshare" action, this value is limited to ALL i.e. a single + // rate + // limit threshold is enforced for all the requests matching the rule. // // Possible values: // "ALL" @@ -40580,31 +66893,45 @@ type SecurityPolicyRuleRateLimitOptions struct { // "REGION_CODE" // "SNI" // "TLS_JA3_FINGERPRINT" + // "TLS_JA4_FINGERPRINT" // "USER_IP" // "XFF_IP" EnforceOnKey string `json:"enforceOnKey,omitempty"` - // EnforceOnKeyConfigs: If specified, any combination of values of - // enforce_on_key_type/enforce_on_key_name is treated as the key on which - // ratelimit threshold/action is enforced. You can specify up to 3 - // enforce_on_key_configs. If enforce_on_key_configs is specified, + // EnforceOnKeyConfigs: If specified, any combination of values + // of + // enforce_on_key_type/enforce_on_key_name is treated as the key on + // which + // ratelimit threshold/action is enforced. You can specify up to + // 3 + // enforce_on_key_configs. If enforce_on_key_configs is + // specified, // enforce_on_key must not be specified. EnforceOnKeyConfigs []*SecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfig `json:"enforceOnKeyConfigs,omitempty"` // EnforceOnKeyName: Rate limit key name applicable only for the following key - // types: HTTP_HEADER -- Name of the HTTP header whose value is taken as the - // key value. HTTP_COOKIE -- Name of the HTTP cookie whose value is taken as - // the key value. + // types: + // HTTP_HEADER -- Name of the HTTP header whose value is taken as the + // key + // value. + // HTTP_COOKIE -- Name of the HTTP cookie whose value is taken as the + // key + // value. EnforceOnKeyName string `json:"enforceOnKeyName,omitempty"` // ExceedAction: Action to take for requests that are above the configured rate - // limit threshold, to either deny with a specified HTTP response code, or - // redirect to a different endpoint. Valid options are `deny(STATUS)`, where - // valid values for `STATUS` are 403, 404, 429, and 502, and `redirect`, where - // the redirect parameters come from `exceedRedirectOptions` below. The - // `redirect` action is only supported in Global Security Policies of type - // CLOUD_ARMOR. + // limit + // threshold, to either deny with a specified HTTP response code, or + // redirect to a different endpoint. + // Valid options are `deny(STATUS)`, where valid values for + // `STATUS` are 403, 404, 429, and 502, and + // `redirect`, where the redirect parameters come from + // `exceedRedirectOptions` below. + // The `redirect` action is only supported in Global Security Policies of + // type CLOUD_ARMOR. ExceedAction string `json:"exceedAction,omitempty"` // ExceedRedirectOptions: Parameters defining the redirect action that is used - // as the exceed action. Cannot be specified if the exceed action is not - // redirect. This field is only supported in Global Security Policies of type + // as the exceed + // action. Cannot be specified if the exceed action is not redirect. + // This field is only supported in Global Security Policies of + // type // CLOUD_ARMOR. ExceedRedirectOptions *SecurityPolicyRuleRedirectOptions `json:"exceedRedirectOptions,omitempty"` // RateLimitThreshold: Threshold at which to begin ratelimiting. @@ -40622,43 +66949,60 @@ type SecurityPolicyRuleRateLimitOptions struct { NullFields []string `json:"-"` } -func (s *SecurityPolicyRuleRateLimitOptions) MarshalJSON() ([]byte, error) { +func (s SecurityPolicyRuleRateLimitOptions) MarshalJSON() ([]byte, error) { type NoMethod SecurityPolicyRuleRateLimitOptions - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } type SecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfig struct { // EnforceOnKeyName: Rate limit key name applicable only for the following key - // types: HTTP_HEADER -- Name of the HTTP header whose value is taken as the - // key value. HTTP_COOKIE -- Name of the HTTP cookie whose value is taken as - // the key value. + // types: + // HTTP_HEADER -- Name of the HTTP header whose value is taken as the + // key value. HTTP_COOKIE -- Name of the HTTP cookie whose value is + // taken as the key value. EnforceOnKeyName string `json:"enforceOnKeyName,omitempty"` // EnforceOnKeyType: Determines the key to enforce the rate_limit_threshold on. - // Possible values are: - ALL: A single rate limit threshold is applied to all - // the requests matching this rule. This is the default value if - // "enforceOnKeyConfigs" is not configured. - IP: The source IP address of the - // request is the key. Each IP has this limit enforced separately. - - // HTTP_HEADER: The value of the HTTP header whose name is configured under - // "enforceOnKeyName". The key value is truncated to the first 128 bytes of the - // header value. If no such header is present in the request, the key type - // defaults to ALL. - XFF_IP: The first IP address (i.e. the originating client - // IP address) specified in the list of IPs under X-Forwarded-For HTTP header. - // If no such header is present or the value is not a valid IP, the key - // defaults to the source IP address of the request i.e. key type IP. - - // HTTP_COOKIE: The value of the HTTP cookie whose name is configured under - // "enforceOnKeyName". The key value is truncated to the first 128 bytes of the - // cookie value. If no such cookie is present in the request, the key type - // defaults to ALL. - HTTP_PATH: The URL path of the HTTP request. The key - // value is truncated to the first 128 bytes. - SNI: Server name indication in - // the TLS session of the HTTPS request. The key value is truncated to the - // first 128 bytes. The key type defaults to ALL on a HTTP session. - - // REGION_CODE: The country/region from which the request originates. - - // TLS_JA3_FINGERPRINT: JA3 TLS/SSL fingerprint if the client connects using - // HTTPS, HTTP/2 or HTTP/3. If not available, the key type defaults to ALL. - - // USER_IP: The IP address of the originating client, which is resolved based - // on "userIpRequestHeaders" configured with the security policy. If there is - // no "userIpRequestHeaders" configuration or an IP address cannot be resolved - // from it, the key type defaults to IP. + // Possible + // values are: + // + // - ALL: A single rate limit threshold is applied to all + // the requests matching this rule. This is the default value if + // "enforceOnKeyConfigs" is not configured. + // - IP: The source IP address of + // the request is the key. Each IP has this limit enforced + // separately. + // - HTTP_HEADER: The value of the HTTP + // header whose name is configured under "enforceOnKeyName". The key + // value is truncated to the first 128 bytes of the header value. If no + // such header is present in the request, the key type defaults toALL. + // - XFF_IP: The first IP address (i.e. the + // originating client IP address) specified in the list of IPs under + // X-Forwarded-For HTTP header. If no such header is present or the + // value is not a valid IP, the key defaults to the source IP address of + // the request i.e. key type IP. + // - HTTP_COOKIE: The value of the HTTP + // cookie whose name is configured under "enforceOnKeyName". The key + // value is truncated to the first 128 bytes of the cookie value. If no + // such cookie is present in the request, the key type defaults toALL. + // - HTTP_PATH: The URL path of the HTTP request. The key + // value is truncated to the first 128 bytes. + // - SNI: Server name indication in the TLS session of + // the HTTPS request. The key value is truncated to the first 128 bytes. + // The key type defaults to ALL on a HTTP session. + // - REGION_CODE: The country/region from which the + // request originates. + // - TLS_JA3_FINGERPRINT: JA3 TLS/SSL fingerprint if the + // client connects using HTTPS, HTTP/2 or HTTP/3. If not available, the + // key type defaults to ALL. + // - USER_IP: The IP address of the originating client, + // which is resolved based on "userIpRequestHeaders" configured with the + // security policy. If there is no "userIpRequestHeaders" configuration + // or an IP address cannot be resolved from it, the key type defaults toIP. + // + // + // - TLS_JA4_FINGERPRINT: JA4 TLS/SSL fingerprint if the + // client connects using HTTPS, HTTP/2 or HTTP/3. If not available, the + // key type defaults to ALL. // // Possible values: // "ALL" @@ -40669,6 +67013,7 @@ type SecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfig struct { // "REGION_CODE" // "SNI" // "TLS_JA3_FINGERPRINT" + // "TLS_JA4_FINGERPRINT" // "USER_IP" // "XFF_IP" EnforceOnKeyType string `json:"enforceOnKeyType,omitempty"` @@ -40685,9 +67030,9 @@ type SecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfig struct { NullFields []string `json:"-"` } -func (s *SecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfig) MarshalJSON() ([]byte, error) { +func (s SecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfig) MarshalJSON() ([]byte, error) { type NoMethod SecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfig - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } type SecurityPolicyRuleRateLimitOptionsThreshold struct { @@ -40708,16 +67053,22 @@ type SecurityPolicyRuleRateLimitOptionsThreshold struct { NullFields []string `json:"-"` } -func (s *SecurityPolicyRuleRateLimitOptionsThreshold) MarshalJSON() ([]byte, error) { +func (s SecurityPolicyRuleRateLimitOptionsThreshold) MarshalJSON() ([]byte, error) { type NoMethod SecurityPolicyRuleRateLimitOptionsThreshold - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } type SecurityPolicyRuleRedirectOptions struct { - // Target: Target for the redirect action. This is required if the type is + // Target: Target for the redirect action. This is required if the type + // is // EXTERNAL_302 and cannot be specified for GOOGLE_RECAPTCHA. Target string `json:"target,omitempty"` - // Type: Type of the redirect action. + // Type: Type of the redirect action. Possible values are: + // + // - GOOGLE_RECAPTCHA: redirect to reCAPTCHA for manual + // challenge assessment. + // - EXTERNAL_302: redirect to a different URL via a 302 + // response. // // Possible values: // "EXTERNAL_302" @@ -40736,19 +67087,25 @@ type SecurityPolicyRuleRedirectOptions struct { NullFields []string `json:"-"` } -func (s *SecurityPolicyRuleRedirectOptions) MarshalJSON() ([]byte, error) { +func (s SecurityPolicyRuleRedirectOptions) MarshalJSON() ([]byte, error) { type NoMethod SecurityPolicyRuleRedirectOptions - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } type SecurityPolicyUserDefinedField struct { // Base: The base relative to which 'offset' is measured. Possible values are: - // - IPV4: Points to the beginning of the IPv4 header. - IPV6: Points to the - // beginning of the IPv6 header. - TCP: Points to the beginning of the TCP - // header, skipping over any IPv4 options or IPv6 extension headers. Not - // present for non-first fragments. - UDP: Points to the beginning of the UDP - // header, skipping over any IPv4 options or IPv6 extension headers. Not - // present for non-first fragments. required + // + // - IPV4: Points to the beginning of the IPv4 header. + // - IPV6: Points to the beginning of the IPv6 header. + // - TCP: Points to the beginning of the TCP header, skipping + // over any IPv4 options or IPv6 extension headers. Not present for + // non-first fragments. + // - UDP: Points to the beginning of the UDP header, skipping + // over any IPv4 options or IPv6 extension headers. Not present for + // non-first fragments. + // + // + // required // // Possible values: // "IPV4" @@ -40757,14 +67114,16 @@ type SecurityPolicyUserDefinedField struct { // "UDP" Base string `json:"base,omitempty"` // Mask: If specified, apply this mask (bitwise AND) to the field to ignore - // bits before matching. Encoded as a hexadecimal number (starting with "0x"). - // The last byte of the field (in network byte order) corresponds to the least - // significant byte of the mask. + // bits + // before matching. Encoded as a hexadecimal number (starting with "0x"). + // The last byte of the field (in network byte order) corresponds to the + // least significant byte of the mask. Mask string `json:"mask,omitempty"` // Name: The name of this field. Must be unique within the policy. Name string `json:"name,omitempty"` // Offset: Offset of the first byte of the field (in network byte order) - // relative to 'base'. + // relative to + // 'base'. Offset int64 `json:"offset,omitempty"` // Size: Size of the field in bytes. Valid values: 1-4. Size int64 `json:"size,omitempty"` @@ -40781,37 +67140,53 @@ type SecurityPolicyUserDefinedField struct { NullFields []string `json:"-"` } -func (s *SecurityPolicyUserDefinedField) MarshalJSON() ([]byte, error) { +func (s SecurityPolicyUserDefinedField) MarshalJSON() ([]byte, error) { type NoMethod SecurityPolicyUserDefinedField - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } // SecuritySettings: The authentication and authorization settings for a // BackendService. type SecuritySettings struct { // AwsV4Authentication: The configuration needed to generate a signature for - // access to private storage buckets that support AWS's Signature Version 4 for - // authentication. Allowed only for INTERNET_IP_PORT and INTERNET_FQDN_PORT NEG - // backends. + // access to private + // storage buckets that support AWS's Signature Version 4 for + // authentication. + // Allowed only for INTERNET_IP_PORT and INTERNET_FQDN_PORT NEG backends. AwsV4Authentication *AWSV4Signature `json:"awsV4Authentication,omitempty"` // ClientTlsPolicy: Optional. A URL referring to a - // networksecurity.ClientTlsPolicy resource that describes how clients should - // authenticate with this service's backends. clientTlsPolicy only applies to a - // global BackendService with the loadBalancingScheme set to - // INTERNAL_SELF_MANAGED. If left blank, communications are not encrypted. + // networksecurity.ClientTlsPolicy resource + // that describes how clients should authenticate with this + // service's + // backends. + // + // clientTlsPolicy only applies to a globalBackendService with the + // loadBalancingScheme set + // to INTERNAL_SELF_MANAGED. + // + // If left blank, communications are not encrypted. ClientTlsPolicy string `json:"clientTlsPolicy,omitempty"` // SubjectAltNames: Optional. A list of Subject Alternative Names (SANs) that - // the client verifies during a mutual TLS handshake with an server/endpoint - // for this BackendService. When the server presents its X.509 certificate to - // the client, the client inspects the certificate's subjectAltName field. If - // the field contains one of the specified values, the communication continues. - // Otherwise, it fails. This additional check enables the client to verify that - // the server is authorized to run the requested service. Note that the - // contents of the server certificate's subjectAltName field are configured by - // the Public Key Infrastructure which provisions server identities. Only - // applies to a global BackendService with loadBalancingScheme set to - // INTERNAL_SELF_MANAGED. Only applies when BackendService has an attached - // clientTlsPolicy with clientCertificate (mTLS mode). + // the client + // verifies during a mutual TLS handshake with an server/endpoint for + // thisBackendService. When the server presents its X.509 certificate + // to the client, the client inspects the certificate'ssubjectAltName field. If + // the field contains one of the + // specified values, the communication continues. Otherwise, it fails. + // This + // additional check enables the client to verify that the server is + // authorized + // to run the requested service. + // + // Note that the contents of the server + // certificate's subjectAltName field are configured by the + // Public Key Infrastructure which provisions server identities. + // + // Only applies to a global BackendService withloadBalancingScheme set to + // INTERNAL_SELF_MANAGED. + // Only applies when BackendService has an attachedclientTlsPolicy with + // clientCertificate (mTLS + // mode). SubjectAltNames []string `json:"subjectAltNames,omitempty"` // ForceSendFields is a list of field names (e.g. "AwsV4Authentication") to // unconditionally include in API requests. By default, fields with empty or @@ -40826,30 +67201,35 @@ type SecuritySettings struct { NullFields []string `json:"-"` } -func (s *SecuritySettings) MarshalJSON() ([]byte, error) { +func (s SecuritySettings) MarshalJSON() ([]byte, error) { type NoMethod SecuritySettings - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } // SerialPortOutput: An instance serial console output. type SerialPortOutput struct { // Contents: [Output Only] The contents of the console output. Contents string `json:"contents,omitempty"` - // Kind: [Output Only] Type of the resource. Always compute#serialPortOutput - // for serial port output. + // Kind: Output only. [Output Only] Type of the resource. + // Alwayscompute#serialPortOutput for serial port output. Kind string `json:"kind,omitempty"` - // Next: [Output Only] The position of the next byte of content, regardless of - // whether the content exists, following the output returned in the `contents` - // property. Use this value in the next request as the start parameter. + // Next: [Output Only] The position of the next byte of content, regardless + // of + // whether the content exists, following the output returned in the + // `contents` + // property. Use this value in the next request as the start + // parameter. Next int64 `json:"next,omitempty,string"` - // SelfLink: [Output Only] Server-defined URL for this resource. + // SelfLink: Output only. [Output Only] Server-defined URL for this resource. SelfLink string `json:"selfLink,omitempty"` - // Start: The starting byte position of the output that was returned. This - // should match the start parameter sent with the request. If the serial - // console output exceeds the size of the buffer (1 MB), older output is - // overwritten by newer content. The output start value will indicate the byte - // position of the output that was returned, which might be different than the - // `start` value that was specified in the request. + // Start: The starting byte position of the output that was returned. + // This should match the start parameter sent with the request. + // If the serial console output exceeds the size of the buffer (1 MB), + // older + // output is overwritten by newer content. The output start value will + // indicate the byte position of the output that was returned, which might + // be + // different than the `start` value that was specified in the request. Start int64 `json:"start,omitempty,string"` // ServerResponse contains the HTTP response code and headers from the server. @@ -40867,9 +67247,9 @@ type SerialPortOutput struct { NullFields []string `json:"-"` } -func (s *SerialPortOutput) MarshalJSON() ([]byte, error) { +func (s SerialPortOutput) MarshalJSON() ([]byte, error) { type NoMethod SerialPortOutput - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } type ServerBinding struct { @@ -40893,9 +67273,9 @@ type ServerBinding struct { NullFields []string `json:"-"` } -func (s *ServerBinding) MarshalJSON() ([]byte, error) { +func (s ServerBinding) MarshalJSON() ([]byte, error) { type NoMethod ServerBinding - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } // ServiceAccount: A service account. @@ -40917,23 +67297,28 @@ type ServiceAccount struct { NullFields []string `json:"-"` } -func (s *ServiceAccount) MarshalJSON() ([]byte, error) { +func (s ServiceAccount) MarshalJSON() ([]byte, error) { type NoMethod ServiceAccount - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -// ServiceAttachment: Represents a ServiceAttachment resource. A service -// attachment represents a service that a producer has exposed. It encapsulates -// the load balancer which fronts the service runs and a list of NAT IP ranges -// that the producers uses to represent the consumers connecting to the -// service. +// ServiceAttachment: Represents a ServiceAttachment resource. +// +// A service attachment represents a service that a producer has exposed. +// It encapsulates the load balancer which fronts the service runs and +// a list of NAT IP ranges that the producers uses to represent +// the consumers connecting to the service. type ServiceAttachment struct { - // ConnectedEndpoints: [Output Only] An array of connections for all the - // consumers connected to this service attachment. + // ConnectedEndpoints: Output only. [Output Only] An array of connections for + // all the consumers connected to + // this service attachment. ConnectedEndpoints []*ServiceAttachmentConnectedEndpoint `json:"connectedEndpoints,omitempty"` // ConnectionPreference: The connection preference of service attachment. The - // value can be set to ACCEPT_AUTOMATIC. An ACCEPT_AUTOMATIC service attachment - // is one that always accepts the connection from consumer forwarding rules. + // value can be set + // to ACCEPT_AUTOMATIC. An ACCEPT_AUTOMATIC + // service attachment is one that always accepts the connection from + // consumer + // forwarding rules. // // Possible values: // "ACCEPT_AUTOMATIC" @@ -40941,84 +67326,148 @@ type ServiceAttachment struct { // "CONNECTION_PREFERENCE_UNSPECIFIED" ConnectionPreference string `json:"connectionPreference,omitempty"` // ConsumerAcceptLists: Specifies which consumer projects or networks are - // allowed to connect to the service attachment. Each project or network has a - // connection limit. A given service attachment can manage connections at - // either the project or network level. Therefore, both the accept and reject - // lists for a given service attachment must contain either only projects or - // only networks. + // allowed to connect to the + // service attachment. Each project or network has a connection limit. A + // given + // service attachment can manage connections at either the project or + // network + // level. Therefore, both the accept and reject lists for a given + // service + // attachment must contain either only projects or only networks or + // only + // endpoints. ConsumerAcceptLists []*ServiceAttachmentConsumerProjectLimit `json:"consumerAcceptLists,omitempty"` // ConsumerRejectLists: Specifies a list of projects or networks that are not - // allowed to connect to this service attachment. The project can be specified - // using its project ID or project number and the network can be specified - // using its URL. A given service attachment can manage connections at either - // the project or network level. Therefore, both the reject and accept lists - // for a given service attachment must contain either only projects or only - // networks. + // allowed to connect to + // this service attachment. The project can be specified using its project + // ID + // or project number and the network can be specified using its URL. A + // given + // service attachment can manage connections at either the project or + // network + // level. Therefore, both the reject and accept lists for a given + // service + // attachment must contain either only projects or only networks. ConsumerRejectLists []string `json:"consumerRejectLists,omitempty"` - // CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text format. + // CreationTimestamp: Output only. [Output Only] Creation timestamp + // inRFC3339 + // text format. CreationTimestamp string `json:"creationTimestamp,omitempty"` // Description: An optional description of this resource. Provide this property - // when you create the resource. + // when you + // create the resource. Description string `json:"description,omitempty"` // DomainNames: If specified, the domain name will be used during the - // integration between the PSC connected endpoints and the Cloud DNS. For - // example, this is a valid domain name: "p.mycompany.com.". Current max number - // of domain names supported is 1. + // integration between + // the PSC connected endpoints and the Cloud DNS. For example, this is a + // valid + // domain name: "p.mycompany.com.". Current max number of domain + // names + // supported is 1. DomainNames []string `json:"domainNames,omitempty"` // EnableProxyProtocol: If true, enable the proxy protocol which is for - // supplying client TCP/IP address data in TCP connections that traverse - // proxies on their way to destination servers. + // supplying client TCP/IP + // address data in TCP connections that traverse proxies on their way + // to + // destination servers. EnableProxyProtocol bool `json:"enableProxyProtocol,omitempty"` // Fingerprint: Fingerprint of this resource. A hash of the contents stored in - // this object. This field is used in optimistic locking. This field will be - // ignored when inserting a ServiceAttachment. An up-to-date fingerprint must - // be provided in order to patch/update the ServiceAttachment; otherwise, the - // request will fail with error 412 conditionNotMet. To see the latest - // fingerprint, make a get() request to retrieve the ServiceAttachment. + // this object. + // This field is used in optimistic locking. This field will be ignored + // when + // inserting a ServiceAttachment. An up-to-date fingerprint must + // be provided in order to patch/update the ServiceAttachment; otherwise, + // the + // request will fail with error 412 conditionNotMet. To see the + // latest fingerprint, make a get() request to retrieve the + // ServiceAttachment. Fingerprint string `json:"fingerprint,omitempty"` - // Id: [Output Only] The unique identifier for the resource type. The server + // Id: Output only. [Output Only] The unique identifier for the resource type. + // The server // generates this identifier. Id uint64 `json:"id,omitempty,string"` - // Kind: [Output Only] Type of the resource. Always compute#serviceAttachment - // for service attachments. + // Kind: Output only. [Output Only] Type of the resource. + // Alwayscompute#serviceAttachment for service attachments. Kind string `json:"kind,omitempty"` + // Metadata: Metadata of the service attachment. + Metadata map[string]string `json:"metadata,omitempty"` // Name: Name of the resource. Provided by the client when the resource is - // created. The name must be 1-63 characters long, and comply with RFC1035. - // 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. + // created. + // The name must be 1-63 characters long, and comply withRFC1035. + // 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. Name string `json:"name,omitempty"` + // NatIpsPerEndpoint: The number of NAT IP addresses to be allocated per + // connected endpoint. + // If not specified, the default value is 1. + NatIpsPerEndpoint int64 `json:"natIpsPerEndpoint,omitempty"` // NatSubnets: An array of URLs where each entry is the URL of a subnet - // provided by the service producer to use for NAT in this service attachment. + // provided + // by the service producer to use for NAT in this service attachment. NatSubnets []string `json:"natSubnets,omitempty"` // ProducerForwardingRule: The URL of a forwarding rule with - // loadBalancingScheme INTERNAL* that is serving the endpoint identified by - // this service attachment. + // loadBalancingScheme INTERNAL* that is + // serving the endpoint identified by this service attachment. ProducerForwardingRule string `json:"producerForwardingRule,omitempty"` - // PscServiceAttachmentId: [Output Only] An 128-bit global unique ID of the PSC - // service attachment. + // PropagatedConnectionLimit: The number of consumer spokes that connected + // Private Service Connect + // endpoints can be propagated to through Network Connectivity Center. + // This + // limit lets the service producer limit how many propagated Private + // Service + // Connect connections can be established to this service attachment from + // a + // single consumer. + // + // If the connection preference of the service attachment is ACCEPT_MANUAL, + // the limit applies to each project or network that is listed in the + // consumer + // accept list. If the connection preference of the service attachment + // is + // ACCEPT_AUTOMATIC, the limit applies to each project that contains + // a + // connected endpoint. + // + // If unspecified, the default propagated connection limit is 250. + PropagatedConnectionLimit int64 `json:"propagatedConnectionLimit,omitempty"` + // PscServiceAttachmentId: Output only. [Output Only] An 128-bit global unique + // ID of the PSC service attachment. PscServiceAttachmentId *Uint128 `json:"pscServiceAttachmentId,omitempty"` // ReconcileConnections: This flag determines whether a consumer accept/reject - // list change can reconcile the statuses of existing ACCEPTED or REJECTED PSC - // endpoints. - If false, connection policy update will only affect existing - // PENDING PSC endpoints. Existing ACCEPTED/REJECTED endpoints will remain - // untouched regardless how the connection policy is modified . - If true, - // update will affect both PENDING and ACCEPTED/REJECTED PSC endpoints. For - // example, an ACCEPTED PSC endpoint will be moved to REJECTED if its project - // is added to the reject list. For newly created service attachment, this - // boolean defaults to false. + // list change can + // reconcile the statuses of existing ACCEPTED or REJECTED PSC endpoints. + // + // + // - If false, connection policy update will only affect existing PENDING + // PSC endpoints. Existing ACCEPTED/REJECTED endpoints will remain + // untouched + // regardless how the connection policy is modified . + // - If true, + // update will affect both PENDING and ACCEPTED/REJECTED PSC endpoints. + // For + // example, an ACCEPTED PSC endpoint will be moved to REJECTED if its + // project + // is added to the reject list. + // + // + // For newly created service attachment, this boolean defaults to false. ReconcileConnections bool `json:"reconcileConnections,omitempty"` - // Region: [Output Only] URL of the region where the service attachment - // resides. This field applies only to the region resource. You must specify - // this field as part of the HTTP request URL. It is not settable as a field in + // Region: Output only. [Output Only] URL of the region where the service + // attachment resides. + // This field applies only to the region resource. You must specify this + // field as part of the HTTP request URL. It is not settable as a field in // the request body. Region string `json:"region,omitempty"` - // SelfLink: [Output Only] Server-defined URL for the resource. + // SelfLink: Output only. [Output Only] Server-defined URL for the resource. SelfLink string `json:"selfLink,omitempty"` // TargetService: The URL of a service serving the endpoint identified by this - // service attachment. + // service + // attachment. TargetService string `json:"targetService,omitempty"` // ServerResponse contains the HTTP response code and headers from the server. @@ -41036,9 +67485,9 @@ type ServiceAttachment struct { NullFields []string `json:"-"` } -func (s *ServiceAttachment) MarshalJSON() ([]byte, error) { +func (s ServiceAttachment) MarshalJSON() ([]byte, error) { type NoMethod ServiceAttachment - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } // ServiceAttachmentAggregatedList: Contains a list of @@ -41048,17 +67497,19 @@ type ServiceAttachmentAggregatedList struct { Id string `json:"id,omitempty"` // Items: A list of ServiceAttachmentsScopedList resources. Items map[string]ServiceAttachmentsScopedList `json:"items,omitempty"` - // Kind: Type of resource. + // Kind: Output only. Type of resource. 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. + // results for + // list requests. If the number of results is larger thanmaxResults, 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"` - // SelfLink: [Output Only] Server-defined URL for this resource. + // SelfLink: Output only. [Output Only] Server-defined URL for this resource. SelfLink string `json:"selfLink,omitempty"` - // Unreachables: [Output Only] Unreachable resources. + // Unreachables: Output only. [Output Only] Unreachable resources. Unreachables []string `json:"unreachables,omitempty"` // Warning: [Output Only] Informational warning message. Warning *ServiceAttachmentAggregatedListWarning `json:"warning,omitempty"` @@ -41078,76 +67529,98 @@ type ServiceAttachmentAggregatedList struct { NullFields []string `json:"-"` } -func (s *ServiceAttachmentAggregatedList) MarshalJSON() ([]byte, error) { +func (s ServiceAttachmentAggregatedList) MarshalJSON() ([]byte, error) { type NoMethod ServiceAttachmentAggregatedList - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } // ServiceAttachmentAggregatedListWarning: [Output Only] Informational warning // message. type ServiceAttachmentAggregatedListWarning 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. + // 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" - Warning about failed cleanup of transient changes made - // by a failed operation. + // by a failed + // operation. // "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was created. // "DEPRECATED_TYPE_USED" - When deploying and at least one of the resources - // has a type marked as deprecated + // has a type marked as + // deprecated // "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk that is // larger than image size. // "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the - // resources has a type marked as experimental + // resources has a type marked as + // experimental // "EXTERNAL_API_WARNING" - Warning that is present in an external api call // "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been - // overridden. Deprecated unused field. + // overridden. + // Deprecated unused field. // "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an injected // kernel, which is deprecated. // "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB" - A WEIGHTED_MAGLEV backend - // service is associated with a health check that is not of type - // HTTP/HTTPS/HTTP2. + // service is associated with a health check that is + // not of type HTTP/HTTPS/HTTP2. // "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a // exceedingly large number of resources // "LIST_OVERHEAD_QUOTA_EXCEED" - Resource can't be retrieved due to list - // overhead quota exceed which captures the amount of resources filtered out by + // overhead quota exceed + // which captures the amount of resources filtered out by // user-defined list filter. // "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is not - // assigned to an instance on the network. + // assigned to an instance on the + // network. // "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot ip // forward. // "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE" - The route's nextHopInstance - // URL refers to an instance that does not have an ipv6 interface on the same - // network as the route. + // URL refers to an instance that does not have an + // ipv6 interface on the same network as the route. // "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL refers to // an instance that does not exist. // "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance URL - // refers to an instance that is not on the same network as the route. + // refers to an instance that is not on the + // same network as the route. // "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not have a // status of RUNNING. // "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to continue - // the process despite the mentioned error. + // the process despite + // the mentioned error. // "NO_RESULTS_ON_PAGE" - No results are present on a particular list page. // "PARTIAL_SUCCESS" - Success is reported, but some results may be missing // due to errors + // "QUOTA_INFO_UNAVAILABLE" - Quota information is not available to client + // requests (e.g: + // regions.list). // "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource that - // requires a TOS they have not accepted. + // requires a TOS they have not + // accepted. // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a resource is // in use. // "RESOURCE_NOT_DELETED" - One or more of the resources set to auto-delete - // could not be deleted because they were in use. + // could not be deleted + // because they were in use. // "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is // ignored. // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in instance - // group manager is valid as such, but its application does not make a lot of - // sense, because it allows only single instance in instance group. + // group manager is valid as such, but + // its application does not make a lot of sense, because it allows only + // single instance in instance group. // "UNDECLARED_PROPERTIES" - When undeclared properties in the schema are // present // "UNREACHABLE" - A given scope cannot be reached. 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: [Output Only] Metadata about this warning in key: + // value format. For example: + // + // "data": [ + // { + // "key": "scope", + // "value": "zones/us-east1-d" + // } Data []*ServiceAttachmentAggregatedListWarningData `json:"data,omitempty"` // Message: [Output Only] A human-readable description of the warning code. Message string `json:"message,omitempty"` @@ -41164,19 +67637,22 @@ type ServiceAttachmentAggregatedListWarning struct { NullFields []string `json:"-"` } -func (s *ServiceAttachmentAggregatedListWarning) MarshalJSON() ([]byte, error) { +func (s ServiceAttachmentAggregatedListWarning) MarshalJSON() ([]byte, error) { type NoMethod ServiceAttachmentAggregatedListWarning - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } type ServiceAttachmentAggregatedListWarningData 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: [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"` @@ -41193,9 +67669,9 @@ type ServiceAttachmentAggregatedListWarningData struct { NullFields []string `json:"-"` } -func (s *ServiceAttachmentAggregatedListWarningData) MarshalJSON() ([]byte, error) { +func (s ServiceAttachmentAggregatedListWarningData) MarshalJSON() ([]byte, error) { type NoMethod ServiceAttachmentAggregatedListWarningData - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } // ServiceAttachmentConnectedEndpoint: [Output Only] A connection connected to @@ -41205,6 +67681,16 @@ type ServiceAttachmentConnectedEndpoint struct { ConsumerNetwork string `json:"consumerNetwork,omitempty"` // Endpoint: The url of a connected endpoint. Endpoint string `json:"endpoint,omitempty"` + // EndpointWithId: The url of a connected endpoint with resource id. + EndpointWithId string `json:"endpointWithId,omitempty"` + // NatIps: NAT IPs of the connected PSC endpoint and those of other + // endpoints + // propagated from it. + NatIps []string `json:"natIps,omitempty"` + // PropagatedConnectionCount: The number of consumer Network Connectivity + // Center spokes that the + // connected Private Service Connect endpoint has propagated to. + PropagatedConnectionCount int64 `json:"propagatedConnectionCount,omitempty"` // PscConnectionId: The PSC connection id of the connected endpoint. PscConnectionId uint64 `json:"pscConnectionId,omitempty,string"` // Status: The status of a connected endpoint to this service attachment. @@ -41213,8 +67699,9 @@ type ServiceAttachmentConnectedEndpoint struct { // "ACCEPTED" - The connection has been accepted by the producer. // "CLOSED" - The connection has been closed by the producer. // "NEEDS_ATTENTION" - The connection has been accepted by the producer, but - // the producer needs to take further action before the forwarding rule can - // serve traffic. + // the producer + // needs to take further action before the forwarding rule can serve + // traffic. // "PENDING" - The connection is pending acceptance by the producer. // "REJECTED" - The consumer is still connected but not using the connection. // "STATUS_UNSPECIFIED" @@ -41232,14 +67719,18 @@ type ServiceAttachmentConnectedEndpoint struct { NullFields []string `json:"-"` } -func (s *ServiceAttachmentConnectedEndpoint) MarshalJSON() ([]byte, error) { +func (s ServiceAttachmentConnectedEndpoint) MarshalJSON() ([]byte, error) { type NoMethod ServiceAttachmentConnectedEndpoint - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } type ServiceAttachmentConsumerProjectLimit struct { - // ConnectionLimit: The value of the limit to set. + // ConnectionLimit: The value of the limit to set. For endpoint_url, the limit + // should be no + // more than 1. ConnectionLimit int64 `json:"connectionLimit,omitempty"` + // EndpointUrl: The URL for the PSC endpoint to accept + EndpointUrl string `json:"endpointUrl,omitempty"` // NetworkUrl: The network URL for the network to set the limit for. NetworkUrl string `json:"networkUrl,omitempty"` // ProjectIdOrNum: The project id or number for the project to set the limit @@ -41258,9 +67749,9 @@ type ServiceAttachmentConsumerProjectLimit struct { NullFields []string `json:"-"` } -func (s *ServiceAttachmentConsumerProjectLimit) MarshalJSON() ([]byte, error) { +func (s ServiceAttachmentConsumerProjectLimit) MarshalJSON() ([]byte, error) { type NoMethod ServiceAttachmentConsumerProjectLimit - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } type ServiceAttachmentList struct { @@ -41268,14 +67759,16 @@ type ServiceAttachmentList struct { Id string `json:"id,omitempty"` // Items: A list of ServiceAttachment resources. Items []*ServiceAttachment `json:"items,omitempty"` - // Kind: [Output Only] Type of the resource. Always compute#serviceAttachment - // for service attachments. + // Kind: Output only. [Output Only] Type of the resource. + // Alwayscompute#serviceAttachment for service attachments. 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. + // results for + // list requests. If the number of results is larger thanmaxResults, 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"` // SelfLink: [Output Only] Server-defined URL for this resource. SelfLink string `json:"selfLink,omitempty"` @@ -41297,75 +67790,97 @@ type ServiceAttachmentList struct { NullFields []string `json:"-"` } -func (s *ServiceAttachmentList) MarshalJSON() ([]byte, error) { +func (s ServiceAttachmentList) MarshalJSON() ([]byte, error) { type NoMethod ServiceAttachmentList - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } // ServiceAttachmentListWarning: [Output Only] Informational warning message. type ServiceAttachmentListWarning 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. + // 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" - Warning about failed cleanup of transient changes made - // by a failed operation. + // by a failed + // operation. // "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was created. // "DEPRECATED_TYPE_USED" - When deploying and at least one of the resources - // has a type marked as deprecated + // has a type marked as + // deprecated // "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk that is // larger than image size. // "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the - // resources has a type marked as experimental + // resources has a type marked as + // experimental // "EXTERNAL_API_WARNING" - Warning that is present in an external api call // "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been - // overridden. Deprecated unused field. + // overridden. + // Deprecated unused field. // "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an injected // kernel, which is deprecated. // "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB" - A WEIGHTED_MAGLEV backend - // service is associated with a health check that is not of type - // HTTP/HTTPS/HTTP2. + // service is associated with a health check that is + // not of type HTTP/HTTPS/HTTP2. // "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a // exceedingly large number of resources // "LIST_OVERHEAD_QUOTA_EXCEED" - Resource can't be retrieved due to list - // overhead quota exceed which captures the amount of resources filtered out by + // overhead quota exceed + // which captures the amount of resources filtered out by // user-defined list filter. // "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is not - // assigned to an instance on the network. + // assigned to an instance on the + // network. // "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot ip // forward. // "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE" - The route's nextHopInstance - // URL refers to an instance that does not have an ipv6 interface on the same - // network as the route. + // URL refers to an instance that does not have an + // ipv6 interface on the same network as the route. // "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL refers to // an instance that does not exist. // "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance URL - // refers to an instance that is not on the same network as the route. + // refers to an instance that is not on the + // same network as the route. // "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not have a // status of RUNNING. // "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to continue - // the process despite the mentioned error. + // the process despite + // the mentioned error. // "NO_RESULTS_ON_PAGE" - No results are present on a particular list page. // "PARTIAL_SUCCESS" - Success is reported, but some results may be missing // due to errors + // "QUOTA_INFO_UNAVAILABLE" - Quota information is not available to client + // requests (e.g: + // regions.list). // "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource that - // requires a TOS they have not accepted. + // requires a TOS they have not + // accepted. // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a resource is // in use. // "RESOURCE_NOT_DELETED" - One or more of the resources set to auto-delete - // could not be deleted because they were in use. + // could not be deleted + // because they were in use. // "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is // ignored. // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in instance - // group manager is valid as such, but its application does not make a lot of - // sense, because it allows only single instance in instance group. + // group manager is valid as such, but + // its application does not make a lot of sense, because it allows only + // single instance in instance group. // "UNDECLARED_PROPERTIES" - When undeclared properties in the schema are // present // "UNREACHABLE" - A given scope cannot be reached. 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: [Output Only] Metadata about this warning in key: + // value format. For example: + // + // "data": [ + // { + // "key": "scope", + // "value": "zones/us-east1-d" + // } Data []*ServiceAttachmentListWarningData `json:"data,omitempty"` // Message: [Output Only] A human-readable description of the warning code. Message string `json:"message,omitempty"` @@ -41382,19 +67897,22 @@ type ServiceAttachmentListWarning struct { NullFields []string `json:"-"` } -func (s *ServiceAttachmentListWarning) MarshalJSON() ([]byte, error) { +func (s ServiceAttachmentListWarning) MarshalJSON() ([]byte, error) { type NoMethod ServiceAttachmentListWarning - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } type ServiceAttachmentListWarningData 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: [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"` @@ -41411,16 +67929,16 @@ type ServiceAttachmentListWarningData struct { NullFields []string `json:"-"` } -func (s *ServiceAttachmentListWarningData) MarshalJSON() ([]byte, error) { +func (s ServiceAttachmentListWarningData) MarshalJSON() ([]byte, error) { type NoMethod ServiceAttachmentListWarningData - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } type ServiceAttachmentsScopedList struct { // ServiceAttachments: A list of ServiceAttachments contained in this scope. ServiceAttachments []*ServiceAttachment `json:"serviceAttachments,omitempty"` - // Warning: Informational warning which replaces the list of service - // attachments when the list is empty. + // Warning: Informational warning which replaces the list of + // service attachments when the list is empty. Warning *ServiceAttachmentsScopedListWarning `json:"warning,omitempty"` // ForceSendFields is a list of field names (e.g. "ServiceAttachments") to // unconditionally include in API requests. By default, fields with empty or @@ -41435,76 +67953,99 @@ type ServiceAttachmentsScopedList struct { NullFields []string `json:"-"` } -func (s *ServiceAttachmentsScopedList) MarshalJSON() ([]byte, error) { +func (s ServiceAttachmentsScopedList) MarshalJSON() ([]byte, error) { type NoMethod ServiceAttachmentsScopedList - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } // ServiceAttachmentsScopedListWarning: Informational warning which replaces -// the list of service attachments when the list is empty. +// the list of +// service attachments when the list is empty. type ServiceAttachmentsScopedListWarning 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. + // 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" - Warning about failed cleanup of transient changes made - // by a failed operation. + // by a failed + // operation. // "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was created. // "DEPRECATED_TYPE_USED" - When deploying and at least one of the resources - // has a type marked as deprecated + // has a type marked as + // deprecated // "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk that is // larger than image size. // "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the - // resources has a type marked as experimental + // resources has a type marked as + // experimental // "EXTERNAL_API_WARNING" - Warning that is present in an external api call // "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been - // overridden. Deprecated unused field. + // overridden. + // Deprecated unused field. // "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an injected // kernel, which is deprecated. // "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB" - A WEIGHTED_MAGLEV backend - // service is associated with a health check that is not of type - // HTTP/HTTPS/HTTP2. + // service is associated with a health check that is + // not of type HTTP/HTTPS/HTTP2. // "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a // exceedingly large number of resources // "LIST_OVERHEAD_QUOTA_EXCEED" - Resource can't be retrieved due to list - // overhead quota exceed which captures the amount of resources filtered out by + // overhead quota exceed + // which captures the amount of resources filtered out by // user-defined list filter. // "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is not - // assigned to an instance on the network. + // assigned to an instance on the + // network. // "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot ip // forward. // "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE" - The route's nextHopInstance - // URL refers to an instance that does not have an ipv6 interface on the same - // network as the route. + // URL refers to an instance that does not have an + // ipv6 interface on the same network as the route. // "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL refers to // an instance that does not exist. // "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance URL - // refers to an instance that is not on the same network as the route. + // refers to an instance that is not on the + // same network as the route. // "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not have a // status of RUNNING. // "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to continue - // the process despite the mentioned error. + // the process despite + // the mentioned error. // "NO_RESULTS_ON_PAGE" - No results are present on a particular list page. // "PARTIAL_SUCCESS" - Success is reported, but some results may be missing // due to errors + // "QUOTA_INFO_UNAVAILABLE" - Quota information is not available to client + // requests (e.g: + // regions.list). // "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource that - // requires a TOS they have not accepted. + // requires a TOS they have not + // accepted. // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a resource is // in use. // "RESOURCE_NOT_DELETED" - One or more of the resources set to auto-delete - // could not be deleted because they were in use. + // could not be deleted + // because they were in use. // "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is // ignored. // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in instance - // group manager is valid as such, but its application does not make a lot of - // sense, because it allows only single instance in instance group. + // group manager is valid as such, but + // its application does not make a lot of sense, because it allows only + // single instance in instance group. // "UNDECLARED_PROPERTIES" - When undeclared properties in the schema are // present // "UNREACHABLE" - A given scope cannot be reached. 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: [Output Only] Metadata about this warning in key: + // value format. For example: + // + // "data": [ + // { + // "key": "scope", + // "value": "zones/us-east1-d" + // } Data []*ServiceAttachmentsScopedListWarningData `json:"data,omitempty"` // Message: [Output Only] A human-readable description of the warning code. Message string `json:"message,omitempty"` @@ -41521,19 +68062,22 @@ type ServiceAttachmentsScopedListWarning struct { NullFields []string `json:"-"` } -func (s *ServiceAttachmentsScopedListWarning) MarshalJSON() ([]byte, error) { +func (s ServiceAttachmentsScopedListWarning) MarshalJSON() ([]byte, error) { type NoMethod ServiceAttachmentsScopedListWarning - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } type ServiceAttachmentsScopedListWarningData 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: [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"` @@ -41550,16 +68094,17 @@ type ServiceAttachmentsScopedListWarningData struct { NullFields []string `json:"-"` } -func (s *ServiceAttachmentsScopedListWarningData) MarshalJSON() ([]byte, error) { +func (s ServiceAttachmentsScopedListWarningData) MarshalJSON() ([]byte, error) { type NoMethod ServiceAttachmentsScopedListWarningData - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } type SetCommonInstanceMetadataOperationMetadata struct { // ClientOperationId: [Output Only] The client operation id. ClientOperationId string `json:"clientOperationId,omitempty"` // PerLocationOperations: [Output Only] Status information per location - // (location name is key). Example key: zones/us-central1-a + // (location name is key). + // Example key: zones/us-central1-a PerLocationOperations map[string]SetCommonInstanceMetadataOperationMetadataPerLocationOperationInfo `json:"perLocationOperations,omitempty"` // ForceSendFields is a list of field names (e.g. "ClientOperationId") to // unconditionally include in API requests. By default, fields with empty or @@ -41574,17 +68119,19 @@ type SetCommonInstanceMetadataOperationMetadata struct { NullFields []string `json:"-"` } -func (s *SetCommonInstanceMetadataOperationMetadata) MarshalJSON() ([]byte, error) { +func (s SetCommonInstanceMetadataOperationMetadata) MarshalJSON() ([]byte, error) { type NoMethod SetCommonInstanceMetadataOperationMetadata - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } type SetCommonInstanceMetadataOperationMetadataPerLocationOperationInfo struct { - // Error: [Output Only] If state is `ABANDONED` or `FAILED`, this field is + // Error: [Output Only] If state is `ABANDONED` or `FAILED`, this field + // is // populated. Error *Status `json:"error,omitempty"` // State: [Output Only] Status of the action, which can be one of the - // following: `PROPAGATING`, `PROPAGATED`, `ABANDONED`, `FAILED`, or `DONE`. + // following: + // `PROPAGATING`, `PROPAGATED`, `ABANDONED`, `FAILED`, or `DONE`. // // Possible values: // "ABANDONED" - Operation not tracked in this location e.g. zone is marked @@ -41609,15 +68156,16 @@ type SetCommonInstanceMetadataOperationMetadataPerLocationOperationInfo struct { NullFields []string `json:"-"` } -func (s *SetCommonInstanceMetadataOperationMetadataPerLocationOperationInfo) MarshalJSON() ([]byte, error) { +func (s SetCommonInstanceMetadataOperationMetadataPerLocationOperationInfo) MarshalJSON() ([]byte, error) { type NoMethod SetCommonInstanceMetadataOperationMetadataPerLocationOperationInfo - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } // ShareSettings: The share setting for reservations and sole tenancy node // groups. type ShareSettings struct { - // ProjectMap: A map of project id and project config. This is only valid when + // ProjectMap: A map of project id and project config. This is only valid + // when // share_type's value is SPECIFIC_PROJECTS. ProjectMap map[string]ShareSettingsProjectConfig `json:"projectMap,omitempty"` // ShareType: Type of sharing for this shared-reservation @@ -41641,15 +68189,16 @@ type ShareSettings struct { NullFields []string `json:"-"` } -func (s *ShareSettings) MarshalJSON() ([]byte, error) { +func (s ShareSettings) MarshalJSON() ([]byte, error) { type NoMethod ShareSettings - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } // ShareSettingsProjectConfig: Config for each project in the share settings. type ShareSettingsProjectConfig struct { // ProjectId: The project ID, should be same as the key of this project config - // in the parent map. + // in the + // parent map. ProjectId string `json:"projectId,omitempty"` // ForceSendFields is a list of field names (e.g. "ProjectId") to // unconditionally include in API requests. By default, fields with empty or @@ -41664,20 +68213,23 @@ type ShareSettingsProjectConfig struct { NullFields []string `json:"-"` } -func (s *ShareSettingsProjectConfig) MarshalJSON() ([]byte, error) { +func (s ShareSettingsProjectConfig) MarshalJSON() ([]byte, error) { type NoMethod ShareSettingsProjectConfig - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } // ShieldedInstanceConfig: A set of Shielded Instance options. type ShieldedInstanceConfig struct { // EnableIntegrityMonitoring: Defines whether the instance has integrity - // monitoring enabled. Enabled by default. + // monitoring enabled.Enabled by + // default. EnableIntegrityMonitoring bool `json:"enableIntegrityMonitoring,omitempty"` - // EnableSecureBoot: Defines whether the instance has Secure Boot enabled. - // Disabled by default. + // EnableSecureBoot: Defines whether the instance has Secure Boot + // enabled.Disabled by + // default. EnableSecureBoot bool `json:"enableSecureBoot,omitempty"` - // EnableVtpm: Defines whether the instance has the vTPM enabled. Enabled by + // EnableVtpm: Defines whether the instance has the vTPM enabled.Enabled + // by // default. EnableVtpm bool `json:"enableVtpm,omitempty"` // ForceSendFields is a list of field names (e.g. "EnableIntegrityMonitoring") @@ -41693,41 +68245,50 @@ type ShieldedInstanceConfig struct { NullFields []string `json:"-"` } -func (s *ShieldedInstanceConfig) MarshalJSON() ([]byte, error) { +func (s ShieldedInstanceConfig) MarshalJSON() ([]byte, error) { type NoMethod ShieldedInstanceConfig - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } // ShieldedInstanceIdentity: A Shielded Instance Identity. type ShieldedInstanceIdentity struct { - // EncryptionKey: An Endorsement Key (EK) made by the RSA 2048 algorithm issued - // to the Shielded Instance's vTPM. + // EccP256EncryptionKey: An Endorsement Key (EK) made by the ECC P256 + // algorithm + // issued to the Shielded Instance's vTPM. + EccP256EncryptionKey *ShieldedInstanceIdentityEntry `json:"eccP256EncryptionKey,omitempty"` + // EccP256SigningKey: An Attestation Key (AK) made by the ECC P256 + // algorithm + // issued to the Shielded Instance's vTPM. + EccP256SigningKey *ShieldedInstanceIdentityEntry `json:"eccP256SigningKey,omitempty"` + // EncryptionKey: An Endorsement Key (EK) made by the RSA 2048 algorithm + // issued to the Shielded Instance's vTPM. EncryptionKey *ShieldedInstanceIdentityEntry `json:"encryptionKey,omitempty"` - // Kind: [Output Only] Type of the resource. Always - // compute#shieldedInstanceIdentity for shielded Instance identity entry. + // Kind: Output only. [Output Only] Type of the resource. + // Alwayscompute#shieldedInstanceIdentity for shielded Instance + // identity entry. Kind string `json:"kind,omitempty"` - // SigningKey: An Attestation Key (AK) made by the RSA 2048 algorithm issued to - // the Shielded Instance's vTPM. + // SigningKey: An Attestation Key (AK) made by the RSA 2048 algorithm + // issued to the Shielded Instance's vTPM. SigningKey *ShieldedInstanceIdentityEntry `json:"signingKey,omitempty"` // ServerResponse contains the HTTP response code and headers from the server. googleapi.ServerResponse `json:"-"` - // ForceSendFields is a list of field names (e.g. "EncryptionKey") to + // ForceSendFields is a list of field names (e.g. "EccP256EncryptionKey") to // unconditionally include in API requests. By default, fields with empty or // default values are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. ForceSendFields []string `json:"-"` - // NullFields is a list of field names (e.g. "EncryptionKey") to include in API - // requests with the JSON null value. By default, fields with empty values are - // omitted from API requests. See + // NullFields is a list of field names (e.g. "EccP256EncryptionKey") to include + // in API requests with the JSON null value. By default, fields with empty + // values are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } -func (s *ShieldedInstanceIdentity) MarshalJSON() ([]byte, error) { +func (s ShieldedInstanceIdentity) MarshalJSON() ([]byte, error) { type NoMethod ShieldedInstanceIdentity - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } // ShieldedInstanceIdentityEntry: A Shielded Instance Identity Entry. @@ -41749,15 +68310,17 @@ type ShieldedInstanceIdentityEntry struct { NullFields []string `json:"-"` } -func (s *ShieldedInstanceIdentityEntry) MarshalJSON() ([]byte, error) { +func (s ShieldedInstanceIdentityEntry) MarshalJSON() ([]byte, error) { type NoMethod ShieldedInstanceIdentityEntry - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } // ShieldedInstanceIntegrityPolicy: The policy describes the baseline against -// which Instance boot integrity is measured. +// which +// Instance boot integrity is measured. type ShieldedInstanceIntegrityPolicy struct { - // UpdateAutoLearnPolicy: Updates the integrity policy baseline using the + // UpdateAutoLearnPolicy: Updates the integrity policy baseline using + // the // measurements from the VM instance's most recent boot. UpdateAutoLearnPolicy bool `json:"updateAutoLearnPolicy,omitempty"` // ForceSendFields is a list of field names (e.g. "UpdateAutoLearnPolicy") to @@ -41773,23 +68336,27 @@ type ShieldedInstanceIntegrityPolicy struct { NullFields []string `json:"-"` } -func (s *ShieldedInstanceIntegrityPolicy) MarshalJSON() ([]byte, error) { +func (s ShieldedInstanceIntegrityPolicy) MarshalJSON() ([]byte, error) { type NoMethod ShieldedInstanceIntegrityPolicy - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) + return gensupport.MarshalJSON(NoMethod(s), 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. + // withRFC1035. + // 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. + // a validRFC + // 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 or default values are @@ -41804,17 +68371,21 @@ type SignedUrlKey struct { NullFields []string `json:"-"` } -func (s *SignedUrlKey) MarshalJSON() ([]byte, error) { +func (s SignedUrlKey) MarshalJSON() ([]byte, error) { type NoMethod SignedUrlKey - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -// Snapshot: Represents a Persistent Disk Snapshot resource. You can use -// snapshots to back up data on a regular interval. For more information, read -// Creating persistent disk snapshots. +// Snapshot: Represents a Persistent Disk Snapshot resource. +// +// You can use snapshots to back up data on a regular interval. For +// more +// information, read Creating +// persistent disk snapshots. type Snapshot struct { - // Architecture: [Output Only] The architecture of the snapshot. Valid values - // are ARM64 or X86_64. + // Architecture: Output only. [Output Only] The architecture of the snapshot. + // Valid values are + // ARM64 or X86_64. // // Possible values: // "ARCHITECTURE_UNSPECIFIED" - Default value indicating Architecture is not @@ -41822,89 +68393,141 @@ type Snapshot struct { // "ARM64" - Machines with architecture ARM64 // "X86_64" - Machines with architecture X86_64 Architecture string `json:"architecture,omitempty"` - // AutoCreated: [Output Only] Set to true if snapshots are automatically - // created by applying resource policy on the target disk. + // AutoCreated: Output only. [Output Only] Set to true if snapshots are + // automatically created by + // applying resource policy on the target disk. AutoCreated bool `json:"autoCreated,omitempty"` - // ChainName: Creates the new snapshot in the snapshot chain labeled with the - // specified name. The chain name must be 1-63 characters long and comply with - // RFC1035. This is an uncommon option only for advanced service owners who - // needs to create separate snapshot chains, for example, for chargeback - // tracking. When you describe your snapshot resource, this field is visible - // only if it has a non-empty value. + // ChainName: Creates the new snapshot in the snapshot chain labeled with + // the + // specified name. The chain name must be 1-63 characters long and comply + // with RFC1035. This is an uncommon option only for advanced service + // owners who needs to create separate snapshot chains, for example, + // for chargeback tracking. When you describe your snapshot resource, + // this + // field is visible only if it has a non-empty value. ChainName string `json:"chainName,omitempty"` - // CreationSizeBytes: [Output Only] Size in bytes of the snapshot at creation - // time. + // CreationSizeBytes: Output only. [Output Only] Size in bytes of the snapshot + // at creation time. CreationSizeBytes int64 `json:"creationSizeBytes,omitempty,string"` - // CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text format. + // CreationTimestamp: Output only. [Output Only] Creation timestamp + // inRFC3339 + // text format. CreationTimestamp string `json:"creationTimestamp,omitempty"` // Description: An optional description of this resource. Provide this property - // when you create the resource. + // when you + // create the resource. Description string `json:"description,omitempty"` - // DiskSizeGb: [Output Only] Size of the source disk, specified in GB. + // DiskSizeGb: Output only. [Output Only] Size of the source disk, specified in + // GB. DiskSizeGb int64 `json:"diskSizeGb,omitempty,string"` - // DownloadBytes: [Output Only] Number of bytes downloaded to restore a - // snapshot to a disk. + // DownloadBytes: Output only. [Output Only] Number of bytes downloaded to + // restore a snapshot to a disk. DownloadBytes int64 `json:"downloadBytes,omitempty,string"` - // EnableConfidentialCompute: Whether this snapshot is created from a - // confidential compute mode disk. [Output Only]: This field is not set by - // user, but from source disk. + // EnableConfidentialCompute: Output only. Whether this snapshot is created + // from a confidential compute mode disk. + // [Output Only]: This field is not set by user, but from source disk. EnableConfidentialCompute bool `json:"enableConfidentialCompute,omitempty"` - // GuestOsFeatures: [Output Only] A list of features to enable on the guest - // operating system. Applicable only for bootable images. Read Enabling guest - // operating system features to see a list of available options. + // GuestFlush: [Input Only] Whether to attempt an application consistent + // snapshot by + // informing the OS to prepare for the snapshot process. + GuestFlush bool `json:"guestFlush,omitempty"` + // GuestOsFeatures: Output only. [Output Only] A list of features to enable on + // the guest operating system. + // Applicable only for bootable images. Read + // Enabling guest operating system features to see a list of available + // options. GuestOsFeatures []*GuestOsFeature `json:"guestOsFeatures,omitempty"` - // Id: [Output Only] The unique identifier for the resource. This identifier is + // Id: Output only. [Output Only] The unique identifier for the resource. This + // identifier is // defined by the server. Id uint64 `json:"id,omitempty,string"` - // Kind: [Output Only] Type of the resource. Always compute#snapshot for - // Snapshot resources. + // Kind: Output only. [Output Only] Type of the resource. Always + // compute#snapshot + // for Snapshot resources. Kind string `json:"kind,omitempty"` // LabelFingerprint: A fingerprint for the labels being applied to this - // snapshot, which is essentially a hash of the labels set used for optimistic - // locking. The fingerprint is initially generated by Compute Engine and - // changes after every request to modify or update labels. You must always - // provide an up-to-date fingerprint hash in order to update or change labels, - // otherwise the request will fail with error 412 conditionNotMet. To see the - // latest fingerprint, make a get() request to retrieve a snapshot. + // snapshot, which is + // essentially a hash of the labels set used for optimistic locking. + // The + // fingerprint is initially generated by Compute Engine and changes after + // every request to modify or update labels. You must always provide + // an + // up-to-date fingerprint hash in order to update or change labels, + // otherwise the request will fail with error412 conditionNotMet. + // + // To see the latest fingerprint, make a get() request to + // retrieve a snapshot. LabelFingerprint string `json:"labelFingerprint,omitempty"` - // Labels: Labels to apply to this snapshot. These can be later modified by the - // setLabels method. Label values may be empty. + // Labels: Labels to apply to this snapshot. These can be later modified by + // the setLabels method. + // Label values may be empty. Labels map[string]string `json:"labels,omitempty"` - // LicenseCodes: [Output Only] Integer license codes indicating which licenses - // are attached to this snapshot. + // LicenseCodes: Output only. [Output Only] Integer license codes indicating + // which licenses are attached + // to this snapshot. LicenseCodes googleapi.Int64s `json:"licenseCodes,omitempty"` - // Licenses: [Output Only] A list of public visible licenses that apply to this - // snapshot. This can be because the original image had licenses attached (such - // as a Windows image). + // Licenses: Output only. [Output Only] A list of public visible licenses that + // apply to this + // snapshot. This can be because the original image had licenses attached + // (such as a Windows image). Licenses []string `json:"licenses,omitempty"` // LocationHint: An opaque location hint used to place the snapshot close to - // other resources. This field is for use by internal tools that use the public - // API. + // other + // resources. + // This field is for use by internal tools that use the public API. LocationHint string `json:"locationHint,omitempty"` // Name: Name of the resource; provided by the client when the resource is - // created. The name must be 1-63 characters long, and comply with RFC1035. - // 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. + // created. + // The name must be 1-63 characters long, and comply withRFC1035. + // 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. Name string `json:"name,omitempty"` + // Params: Input only. [Input Only] Additional params passed with the request, + // but not persisted + // as part of resource payload. + Params *SnapshotParams `json:"params,omitempty"` + // Region: Output only. [Output Only] URL of the region where the snapshot + // resides. Only applicable + // for regional snapshots. + Region string `json:"region,omitempty"` // SatisfiesPzi: Output only. Reserved for future use. SatisfiesPzi bool `json:"satisfiesPzi,omitempty"` - // SatisfiesPzs: [Output Only] Reserved for future use. + // SatisfiesPzs: Output only. [Output Only] Reserved for future use. SatisfiesPzs bool `json:"satisfiesPzs,omitempty"` - // SelfLink: [Output Only] Server-defined URL for the resource. + // SelfLink: Output only. [Output Only] Server-defined URL for the resource. SelfLink string `json:"selfLink,omitempty"` - // SnapshotEncryptionKey: Encrypts the snapshot using a customer-supplied - // encryption key. After you encrypt a snapshot using a customer-supplied key, - // you must provide the same key if you use the snapshot later. For example, - // you must provide the encryption key when you create a disk from the - // encrypted snapshot in a future request. Customer-supplied encryption keys do - // not protect access to metadata of the snapshot. If you do not provide an - // encryption key when creating the snapshot, then the snapshot will be - // encrypted using an automatically generated key and you do not need to - // provide a key to use the snapshot later. + // SnapshotEncryptionKey: Encrypts the snapshot using + // acustomer-supplied + // encryption key. + // + // After you encrypt a snapshot using a customer-supplied key, you must + // provide the same key if you use the snapshot later. For example, you + // must + // provide the encryption key when you create a disk from the + // encrypted + // snapshot in a future request. + // + // Customer-supplied encryption keys do not protect access to metadata + // of the snapshot. + // + // If you do not provide an encryption key when creating the snapshot, then + // the snapshot will be encrypted using an automatically generated key and + // you + // do not need to provide a key to use the snapshot later. SnapshotEncryptionKey *CustomerEncryptionKey `json:"snapshotEncryptionKey,omitempty"` + // SnapshotGroupId: Output only. [Output Only] The unique ID of the snapshot + // group that this snapshot + // belongs to. The usage of snapshot group feature is restricted. + SnapshotGroupId string `json:"snapshotGroupId,omitempty"` + // SnapshotGroupName: Output only. [Output only] The snapshot group that this + // snapshot belongs to. The usage + // of snapshot group feature is restricted. + SnapshotGroupName string `json:"snapshotGroupName,omitempty"` // SnapshotType: Indicates the type of the snapshot. // // Possible values: @@ -41913,43 +68536,58 @@ type Snapshot struct { SnapshotType string `json:"snapshotType,omitempty"` // SourceDisk: The source disk used to create this snapshot. SourceDisk string `json:"sourceDisk,omitempty"` - // SourceDiskEncryptionKey: The customer-supplied encryption key of the source - // disk. Required if the source disk is protected by a customer-supplied - // encryption key. + // SourceDiskEncryptionKey: The customer-supplied + // encryption key of the source disk. Required if the source disk is + // protected by a customer-supplied encryption key. SourceDiskEncryptionKey *CustomerEncryptionKey `json:"sourceDiskEncryptionKey,omitempty"` // SourceDiskForRecoveryCheckpoint: The source disk whose recovery checkpoint - // will be used to create this snapshot. + // will be used to create this + // snapshot. SourceDiskForRecoveryCheckpoint string `json:"sourceDiskForRecoveryCheckpoint,omitempty"` - // SourceDiskId: [Output Only] The ID value of the disk used to create this - // snapshot. This value may be used to determine whether the snapshot was taken - // from the current or a previous instance of a given disk name. + // SourceDiskId: Output only. [Output Only] The ID value of the disk used to + // create this snapshot. This + // value may be used to determine whether the snapshot was taken from + // the + // current or a previous instance of a given disk name. SourceDiskId string `json:"sourceDiskId,omitempty"` // SourceInstantSnapshot: The source instant snapshot used to create this - // snapshot. 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 - // /instantSnapshots/instantSnapshot - - // projects/project/zones/zone/instantSnapshots/instantSnapshot - - // zones/zone/instantSnapshots/instantSnapshot + // snapshot. 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/instantSnapshots/instantSnapshot + // - projects/project/zones/zone/instantSnapshots/instantSnapshot + // - zones/zone/instantSnapshots/instantSnapshot SourceInstantSnapshot string `json:"sourceInstantSnapshot,omitempty"` // SourceInstantSnapshotEncryptionKey: Customer provided encryption key when - // creating Snapshot from Instant Snapshot. + // creating Snapshot from Instant + // Snapshot. SourceInstantSnapshotEncryptionKey *CustomerEncryptionKey `json:"sourceInstantSnapshotEncryptionKey,omitempty"` - // SourceInstantSnapshotId: [Output Only] The unique ID of the instant snapshot - // used to create this snapshot. This value identifies the exact instant - // snapshot that was used to create this persistent disk. For example, if you - // created the persistent disk from an instant snapshot that was later deleted - // and recreated under the same name, the source instant snapshot ID would - // identify the exact instant snapshot that was used. + // SourceInstantSnapshotId: Output only. [Output Only] The unique ID of the + // instant snapshot used to create this + // snapshot. This value identifies the exact instant snapshot that was used + // to + // create this snapshot. For example, if you created the snapshot from + // an + // instant snapshot that was later deleted and recreated under the same + // name, + // the source instant snapshot ID would identify the exact instant + // snapshot + // that was used. SourceInstantSnapshotId string `json:"sourceInstantSnapshotId,omitempty"` - // SourceSnapshotSchedulePolicy: [Output Only] URL of the resource policy which - // created this scheduled snapshot. + // SourceSnapshotSchedulePolicy: Output only. [Output Only] URL of the resource + // policy which created this + // scheduled snapshot. SourceSnapshotSchedulePolicy string `json:"sourceSnapshotSchedulePolicy,omitempty"` - // SourceSnapshotSchedulePolicyId: [Output Only] ID of the resource policy - // which created this scheduled snapshot. + // SourceSnapshotSchedulePolicyId: Output only. [Output Only] ID of the + // resource policy which created this + // scheduled snapshot. SourceSnapshotSchedulePolicyId string `json:"sourceSnapshotSchedulePolicyId,omitempty"` - // Status: [Output Only] The status of the snapshot. This can be CREATING, - // DELETING, FAILED, READY, or UPLOADING. + // Status: Output only. [Output Only] The status of the snapshot. This can + // beCREATING, DELETING, FAILED,READY, or UPLOADING. // // Possible values: // "CREATING" - Snapshot creation is in progress. @@ -41958,14 +68596,20 @@ type Snapshot struct { // "READY" - Snapshot has been created successfully. // "UPLOADING" - Snapshot is being uploaded. Status string `json:"status,omitempty"` - // StorageBytes: [Output Only] A size of the storage used by the snapshot. As - // snapshots share storage, this number is expected to change with snapshot + // StorageBytes: Output only. [Output Only] A size of the storage used by the + // snapshot. As snapshots + // share storage, this number is expected to change with + // snapshot // creation/deletion. StorageBytes int64 `json:"storageBytes,omitempty,string"` - // StorageBytesStatus: [Output Only] An indicator whether storageBytes is in a - // stable state or it is being adjusted as a result of shared storage - // reallocation. This status can either be UPDATING, meaning the size of the - // snapshot is being updated, or UP_TO_DATE, meaning the size of the snapshot + // StorageBytesStatus: Output only. [Deprecated] Instead, check the + // storageBytes field. After + // snapshot creation, the storageBytesStatus field is alwaysUP_TO_DATE. + // [Output Only] An indicator whether storageBytes is in a + // stable state or it is being adjusted as a result of shared + // storage + // reallocation. This status can either be unset, meaning the snapshot is + // being created, or UP_TO_DATE, meaning the size of the snapshot // is up-to-date. // // Possible values: @@ -41973,7 +68617,8 @@ type Snapshot struct { // "UP_TO_DATE" StorageBytesStatus string `json:"storageBytesStatus,omitempty"` // StorageLocations: Cloud Storage bucket storage location of the snapshot - // (regional or multi-regional). + // (regional or + // multi-regional). StorageLocations []string `json:"storageLocations,omitempty"` // ServerResponse contains the HTTP response code and headers from the server. @@ -41991,9 +68636,52 @@ type Snapshot struct { NullFields []string `json:"-"` } -func (s *Snapshot) MarshalJSON() ([]byte, error) { +func (s Snapshot) MarshalJSON() ([]byte, error) { type NoMethod Snapshot - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +type SnapshotGroupParameters struct { + // ReplicaZones: URLs of the zones where disks should be replicated to. Only + // applicable + // for regional resources. + ReplicaZones []string `json:"replicaZones,omitempty"` + // SourceSnapshotGroup: The source snapshot group used to create disks. 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/global/snapshotGroups/snapshotGroup + // + // - projects/project/global/snapshotGroups/snapshotGroup + // - global/snapshotGroups/snapshotGroup + SourceSnapshotGroup string `json:"sourceSnapshotGroup,omitempty"` + // Type: URL of the disk type resource describing which disk type to use to + // create + // disks. Provide this when creating the disk. For + // example:projects/project/zones/zone/diskTypes/pd-ssd. See Persistent + // disk + // types. + Type string `json:"type,omitempty"` + // ForceSendFields is a list of field names (e.g. "ReplicaZones") to + // unconditionally include in API requests. By default, fields with empty or + // default values are omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + ForceSendFields []string `json:"-"` + // NullFields is a list of field names (e.g. "ReplicaZones") to include in API + // requests with the JSON null value. By default, fields with empty values are + // omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s SnapshotGroupParameters) MarshalJSON() ([]byte, error) { + type NoMethod SnapshotGroupParameters + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } // SnapshotList: Contains a list of Snapshot resources. @@ -42002,15 +68690,17 @@ type SnapshotList struct { Id string `json:"id,omitempty"` // Items: A list of Snapshot resources. Items []*Snapshot `json:"items,omitempty"` - // Kind: Type of resource. + // Kind: Output only. Type of resource. 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. + // results for + // list requests. If the number of results is larger thanmaxResults, 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"` - // SelfLink: [Output Only] Server-defined URL for this resource. + // SelfLink: Output only. [Output Only] Server-defined URL for this resource. SelfLink string `json:"selfLink,omitempty"` // Warning: [Output Only] Informational warning message. Warning *SnapshotListWarning `json:"warning,omitempty"` @@ -42030,75 +68720,97 @@ type SnapshotList struct { NullFields []string `json:"-"` } -func (s *SnapshotList) MarshalJSON() ([]byte, error) { +func (s SnapshotList) MarshalJSON() ([]byte, error) { type NoMethod SnapshotList - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } // SnapshotListWarning: [Output Only] Informational warning message. type SnapshotListWarning 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. + // 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" - Warning about failed cleanup of transient changes made - // by a failed operation. + // by a failed + // operation. // "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was created. // "DEPRECATED_TYPE_USED" - When deploying and at least one of the resources - // has a type marked as deprecated + // has a type marked as + // deprecated // "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk that is // larger than image size. // "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the - // resources has a type marked as experimental + // resources has a type marked as + // experimental // "EXTERNAL_API_WARNING" - Warning that is present in an external api call // "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been - // overridden. Deprecated unused field. + // overridden. + // Deprecated unused field. // "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an injected // kernel, which is deprecated. // "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB" - A WEIGHTED_MAGLEV backend - // service is associated with a health check that is not of type - // HTTP/HTTPS/HTTP2. + // service is associated with a health check that is + // not of type HTTP/HTTPS/HTTP2. // "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a // exceedingly large number of resources // "LIST_OVERHEAD_QUOTA_EXCEED" - Resource can't be retrieved due to list - // overhead quota exceed which captures the amount of resources filtered out by + // overhead quota exceed + // which captures the amount of resources filtered out by // user-defined list filter. // "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is not - // assigned to an instance on the network. + // assigned to an instance on the + // network. // "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot ip // forward. // "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE" - The route's nextHopInstance - // URL refers to an instance that does not have an ipv6 interface on the same - // network as the route. + // URL refers to an instance that does not have an + // ipv6 interface on the same network as the route. // "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL refers to // an instance that does not exist. // "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance URL - // refers to an instance that is not on the same network as the route. + // refers to an instance that is not on the + // same network as the route. // "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not have a // status of RUNNING. // "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to continue - // the process despite the mentioned error. + // the process despite + // the mentioned error. // "NO_RESULTS_ON_PAGE" - No results are present on a particular list page. // "PARTIAL_SUCCESS" - Success is reported, but some results may be missing // due to errors + // "QUOTA_INFO_UNAVAILABLE" - Quota information is not available to client + // requests (e.g: + // regions.list). // "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource that - // requires a TOS they have not accepted. + // requires a TOS they have not + // accepted. // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a resource is // in use. // "RESOURCE_NOT_DELETED" - One or more of the resources set to auto-delete - // could not be deleted because they were in use. + // could not be deleted + // because they were in use. // "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is // ignored. // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in instance - // group manager is valid as such, but its application does not make a lot of - // sense, because it allows only single instance in instance group. + // group manager is valid as such, but + // its application does not make a lot of sense, because it allows only + // single instance in instance group. // "UNDECLARED_PROPERTIES" - When undeclared properties in the schema are // present // "UNREACHABLE" - A given scope cannot be reached. 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: [Output Only] Metadata about this warning in key: + // value format. For example: + // + // "data": [ + // { + // "key": "scope", + // "value": "zones/us-east1-d" + // } Data []*SnapshotListWarningData `json:"data,omitempty"` // Message: [Output Only] A human-readable description of the warning code. Message string `json:"message,omitempty"` @@ -42115,19 +68827,22 @@ type SnapshotListWarning struct { NullFields []string `json:"-"` } -func (s *SnapshotListWarning) MarshalJSON() ([]byte, error) { +func (s SnapshotListWarning) MarshalJSON() ([]byte, error) { type NoMethod SnapshotListWarning - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } type SnapshotListWarningData 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: [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"` @@ -42144,53 +68859,146 @@ type SnapshotListWarningData struct { NullFields []string `json:"-"` } -func (s *SnapshotListWarningData) MarshalJSON() ([]byte, error) { +func (s SnapshotListWarningData) MarshalJSON() ([]byte, error) { type NoMethod SnapshotListWarningData - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +// SnapshotParams: Additional snapshot params. +type SnapshotParams struct { + // ResourceManagerTags: Input only. Resource manager tags to be bound to the + // snapshot. Tag keys and values have + // the same definition as resource + // manager tags. Keys and values can be either in numeric format, + // such as `tagKeys/{tag_key_id}` and `tagValues/{tag_value_id}` or + // in + // namespaced format such as `{org_id|project_id}/{tag_key_short_name}` + // and + // `{tag_value_short_name}`. The field is ignored (both PUT & + // PATCH) when empty. + ResourceManagerTags map[string]string `json:"resourceManagerTags,omitempty"` + // ForceSendFields is a list of field names (e.g. "ResourceManagerTags") to + // unconditionally include in API requests. By default, fields with empty or + // default values are omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + ForceSendFields []string `json:"-"` + // NullFields is a list of field names (e.g. "ResourceManagerTags") to include + // in API requests with the JSON null value. By default, fields with empty + // values are omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s SnapshotParams) MarshalJSON() ([]byte, error) { + type NoMethod SnapshotParams + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } type SnapshotSettings struct { + // AccessLocation: (Regional snapshots use only)Policy of which location is + // allowed to access + // snapshot. + AccessLocation *SnapshotSettingsAccessLocation `json:"accessLocation,omitempty"` // StorageLocation: Policy of which storage location is going to be resolved, - // and additional data that particularizes how the policy is going to be - // carried out. + // and additional + // data that particularizes how the policy is going to be carried out. StorageLocation *SnapshotSettingsStorageLocationSettings `json:"storageLocation,omitempty"` // ServerResponse contains the HTTP response code and headers from the server. googleapi.ServerResponse `json:"-"` - // ForceSendFields is a list of field names (e.g. "StorageLocation") to + // ForceSendFields is a list of field names (e.g. "AccessLocation") to // unconditionally include in API requests. By default, fields with empty or // default values are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. ForceSendFields []string `json:"-"` - // NullFields is a list of field names (e.g. "StorageLocation") to include in + // NullFields is a list of field names (e.g. "AccessLocation") to include in // API requests with the JSON null value. By default, fields with empty values // are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } -func (s *SnapshotSettings) MarshalJSON() ([]byte, error) { +func (s SnapshotSettings) MarshalJSON() ([]byte, error) { type NoMethod SnapshotSettings - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +type SnapshotSettingsAccessLocation struct { + // Locations: List of regions that can restore a regional + // snapshot from the current region + Locations map[string]SnapshotSettingsAccessLocationAccessLocationPreference `json:"locations,omitempty"` + // Policy: Policy of which location is allowed to access snapshot. + // + // Possible values: + // "ALL_REGIONS" - Any regions will be able to access the source location. + // "POLICY_UNSPECIFIED" + // "SPECIFIC_REGIONS" - Only allowlisted regions will be able to restore + // region scoped + // snapshots + Policy string `json:"policy,omitempty"` + // ForceSendFields is a list of field names (e.g. "Locations") to + // unconditionally include in API requests. By default, fields with empty or + // default values are omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + ForceSendFields []string `json:"-"` + // NullFields is a list of field names (e.g. "Locations") to include in API + // requests with the JSON null value. By default, fields with empty values are + // omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s SnapshotSettingsAccessLocation) MarshalJSON() ([]byte, error) { + type NoMethod SnapshotSettingsAccessLocation + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +// SnapshotSettingsAccessLocationAccessLocationPreference: A structure for +// specifying an allowed target region. +type SnapshotSettingsAccessLocationAccessLocationPreference struct { + // Region: Accessible region name + Region string `json:"region,omitempty"` + // ForceSendFields is a list of field names (e.g. "Region") to unconditionally + // include in API requests. By default, fields with empty or default values are + // omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + ForceSendFields []string `json:"-"` + // NullFields is a list of field names (e.g. "Region") to include in API + // requests with the JSON null value. By default, fields with empty values are + // omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s SnapshotSettingsAccessLocationAccessLocationPreference) MarshalJSON() ([]byte, error) { + type NoMethod SnapshotSettingsAccessLocationAccessLocationPreference + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } type SnapshotSettingsStorageLocationSettings struct { - // Locations: When the policy is SPECIFIC_LOCATIONS, snapshots will be stored - // in the locations listed in this field. Keys are Cloud Storage bucket + // Locations: When the policy is SPECIFIC_LOCATIONS, snapshots will be + // stored + // in the locations listed in this field. Keys are Cloud Storage + // bucket // locations. Only one location can be specified. Locations map[string]SnapshotSettingsStorageLocationSettingsStorageLocationPreference `json:"locations,omitempty"` // Policy: The chosen location policy. // // Possible values: // "LOCAL_REGION" - Store snapshot in the same region as with the originating - // disk. No additional parameters are needed. + // disk. + // No additional parameters are needed. // "NEAREST_MULTI_REGION" - Store snapshot in the nearest multi region Cloud - // Storage bucket, relative to the originating disk. No additional parameters - // are needed. + // Storage bucket, + // relative to the originating disk. No additional parameters are needed. // "SPECIFIC_LOCATIONS" - Store snapshot in the specific locations, as - // specified by the user. The list of regions to store must be defined under - // the `locations` field. + // specified by the user. + // The list of regions to store must be defined under the `locations` + // field. // "STORAGE_LOCATION_POLICY_UNSPECIFIED" Policy string `json:"policy,omitempty"` // ForceSendFields is a list of field names (e.g. "Locations") to @@ -42206,15 +69014,16 @@ type SnapshotSettingsStorageLocationSettings struct { NullFields []string `json:"-"` } -func (s *SnapshotSettingsStorageLocationSettings) MarshalJSON() ([]byte, error) { +func (s SnapshotSettingsStorageLocationSettings) MarshalJSON() ([]byte, error) { type NoMethod SnapshotSettingsStorageLocationSettings - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } // SnapshotSettingsStorageLocationSettingsStorageLocationPreference: A // structure for specifying storage locations. type SnapshotSettingsStorageLocationSettingsStorageLocationPreference struct { - // Name: Name of the location. It should be one of the Cloud Storage buckets. + // Name: Name of the location. It should be one of the Cloud Storage + // buckets. // Only one location can be specified. Name string `json:"name,omitempty"` // ForceSendFields is a list of field names (e.g. "Name") to unconditionally @@ -42230,20 +69039,56 @@ type SnapshotSettingsStorageLocationSettingsStorageLocationPreference struct { NullFields []string `json:"-"` } -func (s *SnapshotSettingsStorageLocationSettingsStorageLocationPreference) MarshalJSON() ([]byte, error) { +func (s SnapshotSettingsStorageLocationSettingsStorageLocationPreference) MarshalJSON() ([]byte, error) { type NoMethod SnapshotSettingsStorageLocationSettingsStorageLocationPreference - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +type SnapshotUpdateKmsKeyRequest struct { + // KmsKeyName: Optional. The new KMS key to replace the current one on the + // snapshot. If empty, the + // snapshot will be re-encrypted using the primary version of the + // snapshot's + // current KMS key. + // + // The KMS key can be provided in the following formats: + // + // + // - projects/project_id/locations/region/keyRings/key_ring/cryptoKeys/key + KmsKeyName string `json:"kmsKeyName,omitempty"` + // ForceSendFields is a list of field names (e.g. "KmsKeyName") to + // unconditionally include in API requests. By default, fields with empty or + // default values are omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + ForceSendFields []string `json:"-"` + // NullFields is a list of field names (e.g. "KmsKeyName") to include in API + // requests with the JSON null value. By default, fields with empty values are + // omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s SnapshotUpdateKmsKeyRequest) MarshalJSON() ([]byte, error) { + type NoMethod SnapshotUpdateKmsKeyRequest + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } type SourceDiskEncryptionKey struct { - // DiskEncryptionKey: The customer-supplied encryption key of the source disk. - // Required if the source disk is protected by a customer-supplied encryption - // key. + // DiskEncryptionKey: Thecustomer-supplied + // encryption key of the source disk. Required if the source disk is + // protected by a customer-supplied encryption key. DiskEncryptionKey *CustomerEncryptionKey `json:"diskEncryptionKey,omitempty"` // SourceDisk: URL of the disk attached to the source instance. This can be a - // full or valid partial URL. For example, the following are valid values: - - // https://www.googleapis.com/compute/v1/projects/project/zones/zone - // /disks/disk - projects/project/zones/zone/disks/disk - zones/zone/disks/disk + // full or + // valid partial URL. For example, the following are valid values: + // + // + // - + // https://www.googleapis.com/compute/v1/projects/project/zones/zone/disks/disk + // + // - projects/project/zones/zone/disks/disk + // - zones/zone/disks/disk SourceDisk string `json:"sourceDisk,omitempty"` // ForceSendFields is a list of field names (e.g. "DiskEncryptionKey") to // unconditionally include in API requests. By default, fields with empty or @@ -42258,17 +69103,19 @@ type SourceDiskEncryptionKey struct { NullFields []string `json:"-"` } -func (s *SourceDiskEncryptionKey) MarshalJSON() ([]byte, error) { +func (s SourceDiskEncryptionKey) MarshalJSON() ([]byte, error) { type NoMethod SourceDiskEncryptionKey - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } // SourceInstanceParams: A specification of the parameters to use when creating -// the instance template from a source instance. +// 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, the source images for each - // disk will be used. For read-only disks, they will be attached in read-only + // applied: + // For boot disk and any other R/W disks, the source images for each disk + // will be used. 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 @@ -42284,36 +69131,45 @@ type SourceInstanceParams struct { NullFields []string `json:"-"` } -func (s *SourceInstanceParams) MarshalJSON() ([]byte, error) { +func (s SourceInstanceParams) MarshalJSON() ([]byte, error) { type NoMethod SourceInstanceParams - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } // SourceInstanceProperties: DEPRECATED: Please use compute#instanceProperties -// instead. New properties will not be added to this field. +// instead. +// New properties will not be added to this field. type SourceInstanceProperties struct { // CanIpForward: Enables instances created based on this machine image to send - // packets with source IP addresses other than their own and receive packets - // with destination IP addresses other than their own. If these instances will - // be used as an IP gateway or it will be set as the next-hop in a Route - // resource, specify true. If unsure, leave this set to false. See the Enable - // IP forwarding documentation for more information. + // packets with + // source IP addresses other than their own and receive packets + // with + // destination IP addresses other than their own. If these instances will + // be + // used as an IP gateway or it will be set as the next-hop in a Route + // resource, specify true. If unsure, leave this set tofalse. See theEnable IP + // forwarding + // documentation for more information. CanIpForward bool `json:"canIpForward,omitempty"` // DeletionProtection: Whether the instance created from this machine image - // should be protected against deletion. + // should be protected + // against deletion. DeletionProtection bool `json:"deletionProtection,omitempty"` // Description: An optional text description for the instances that are created - // from this machine image. + // from this + // machine image. Description string `json:"description,omitempty"` // Disks: An array of disks that are associated with the instances that are - // created from this machine image. + // created + // from this machine image. Disks []*SavedAttachedDisk `json:"disks,omitempty"` // GuestAccelerators: A list of guest accelerator cards' type and count to use - // for instances created from this machine image. + // for instances + // created from this machine image. GuestAccelerators []*AcceleratorConfig `json:"guestAccelerators,omitempty"` // KeyRevocationActionType: KeyRevocationActionType of the instance. Supported - // options are "STOP" and "NONE". The default value is "NONE" if it is not - // specified. + // options are "STOP" and + // "NONE". The default value is "NONE" if it is not specified. // // Possible values: // "KEY_REVOCATION_ACTION_TYPE_UNSPECIFIED" - Default value. This value is @@ -42325,33 +69181,55 @@ type SourceInstanceProperties struct { // image. Labels map[string]string `json:"labels,omitempty"` // MachineType: The machine type to use for instances that are created from - // this machine image. + // this machine + // image. MachineType string `json:"machineType,omitempty"` // Metadata: The metadata key/value pairs to assign to instances that are - // created from this machine image. These pairs can consist of custom metadata - // or predefined keys. See Project and instance metadata for more information. + // created from + // this machine image. These pairs can consist of custom metadata or + // predefined keys. SeeProject and + // instance metadata for more information. Metadata *Metadata `json:"metadata,omitempty"` // MinCpuPlatform: Minimum cpu/platform to be used by instances created from - // this machine image. The instance may be scheduled on the specified or newer - // cpu/platform. Applicable values are the friendly names of CPU platforms, - // such as minCpuPlatform: "Intel Haswell" or minCpuPlatform: "Intel Sandy - // Bridge". For more information, read Specifying a Minimum CPU Platform. + // this machine + // image. The instance may be scheduled on the specified or newer + // cpu/platform. Applicable values are the friendly names of CPU + // platforms, + // such as minCpuPlatform: "Intel Haswell" orminCpuPlatform: "Intel Sandy + // Bridge". For more + // information, read Specifying a + // Minimum CPU Platform. MinCpuPlatform string `json:"minCpuPlatform,omitempty"` // NetworkInterfaces: An array of network access configurations for this // interface. NetworkInterfaces []*NetworkInterface `json:"networkInterfaces,omitempty"` + // PostKeyRevocationActionType: PostKeyRevocationActionType of the instance. + // + // Possible values: + // "NOOP" - Indicates user chose no operation. + // "POST_KEY_REVOCATION_ACTION_TYPE_UNSPECIFIED" - Default value. This value + // is unused. + // "SHUTDOWN" - Indicates user chose to opt for VM shutdown on key + // revocation. + PostKeyRevocationActionType string `json:"postKeyRevocationActionType,omitempty"` // Scheduling: Specifies the scheduling options for the instances that are - // created from this machine image. + // created from + // this machine image. Scheduling *Scheduling `json:"scheduling,omitempty"` // ServiceAccounts: A list of service accounts with specified scopes. Access - // tokens for these service accounts are available to the instances that are - // created from this machine image. Use metadata queries to obtain the access - // tokens for these instances. + // tokens for these + // service accounts are available to the instances that are created from + // this + // machine image. Use metadata queries to obtain the access tokens for + // these + // instances. ServiceAccounts []*ServiceAccount `json:"serviceAccounts,omitempty"` // Tags: A list of tags to apply to the instances that are created from this - // machine image. The tags identify valid sources or targets for network - // firewalls. The setTags method can modify this list of tags. Each tag within - // the list must comply with RFC1035. + // machine + // image. The tags identify valid sources or targets for network firewalls. + // The setTags method can modify this list of tags. Each tag within the + // list + // must comply withRFC1035. Tags *Tags `json:"tags,omitempty"` // ForceSendFields is a list of field names (e.g. "CanIpForward") to // unconditionally include in API requests. By default, fields with empty or @@ -42366,72 +69244,99 @@ type SourceInstanceProperties struct { NullFields []string `json:"-"` } -func (s *SourceInstanceProperties) MarshalJSON() ([]byte, error) { +func (s SourceInstanceProperties) MarshalJSON() ([]byte, error) { type NoMethod SourceInstanceProperties - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) -} - -// SslCertificate: Represents an SSL certificate resource. Google Compute -// Engine has two SSL certificate resources: * Global -// (/compute/docs/reference/rest/v1/sslCertificates) * Regional -// (/compute/docs/reference/rest/v1/regionSslCertificates) The global SSL -// certificates (sslCertificates) are used by: - Global external Application -// Load Balancers - Classic Application Load Balancers - Proxy Network Load -// Balancers (with target SSL proxies) The regional SSL certificates -// (regionSslCertificates) are used by: - Regional external Application Load -// Balancers - Regional internal Application Load Balancers Optionally, -// certificate file contents that you upload can contain a set of up to five -// PEM-encoded certificates. The API call creates an object (sslCertificate) -// that holds this data. You can use SSL keys and certificates to secure -// connections to a load balancer. For more information, read Creating and -// using SSL certificates, SSL certificates quotas and limits, and + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +// SslCertificate: Represents an SSL certificate resource. +// +// Google Compute Engine has two SSL certificate resources: +// +// * Global (/compute/docs/reference/rest/v1/sslCertificates) +// * Regional (/compute/docs/reference/rest/v1/regionSslCertificates) +// +// The global SSL certificates (sslCertificates) are used by: +// +// - Global external Application Load Balancers +// - Classic Application Load Balancers +// - Proxy Network Load Balancers (with target SSL proxies) +// +// The regional SSL certificates (regionSslCertificates) are used +// by: +// +// - Regional external Application Load Balancers +// - Regional internal Application Load Balancers +// +// Optionally, certificate file contents that you upload can contain a set of +// up +// to five PEM-encoded certificates. +// The API call creates an object (sslCertificate) that holds this data. +// You can use SSL keys and certificates to secure connections to a +// load +// balancer. +// For more information, read +// Creating and using SSL certificates,SSL certificates +// quotas and limits, and // Troubleshooting SSL certificates. type SslCertificate struct { // Certificate: A value read into memory from a certificate file. The - // certificate file must be in PEM format. The certificate chain must be no - // greater than 5 certs long. The chain must include at least one intermediate - // cert. + // certificate file must + // be in PEM format. The certificate chain must be no greater than 5 + // certs + // long. The chain must include at least one intermediate cert. Certificate string `json:"certificate,omitempty"` - // CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text format. + // CreationTimestamp: [Output Only] Creation timestamp inRFC3339 + // text format. CreationTimestamp string `json:"creationTimestamp,omitempty"` // Description: An optional description of this resource. Provide this property - // when you create the resource. + // when you + // create the resource. Description string `json:"description,omitempty"` - // ExpireTime: [Output Only] Expire time of the certificate. RFC3339 + // ExpireTime: Output only. [Output Only] Expire time of the certificate. + // RFC3339 ExpireTime string `json:"expireTime,omitempty"` - // Id: [Output Only] The unique identifier for the resource. This identifier is + // Id: [Output Only] The unique identifier for the resource. This identifier + // is // defined by the server. Id uint64 `json:"id,omitempty,string"` - // Kind: [Output Only] Type of the resource. Always compute#sslCertificate for - // SSL certificates. + // Kind: Output only. [Output Only] Type of the resource. + // Alwayscompute#sslCertificate for SSL certificates. Kind string `json:"kind,omitempty"` // Managed: Configuration and status of a managed SSL certificate. Managed *SslCertificateManagedSslCertificate `json:"managed,omitempty"` // Name: Name of the resource. Provided by the client when the resource is - // created. The name must be 1-63 characters long, and comply with RFC1035. - // 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. + // created. + // The name must be 1-63 characters long, and comply withRFC1035. + // 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. Name string `json:"name,omitempty"` // PrivateKey: A value read into memory from a write-only private key file. The - // private key file must be in PEM format. For security, only insert requests - // include this field. + // private + // key file must be in PEM format. For security, only insert + // requests include this field. PrivateKey string `json:"privateKey,omitempty"` - // Region: [Output Only] URL of the region where the regional SSL Certificate + // Region: Output only. [Output Only] URL of the region where the regional SSL + // Certificate // resides. This field is not applicable to global SSL Certificate. Region string `json:"region,omitempty"` // SelfLink: [Output only] Server-defined URL for the resource. SelfLink string `json:"selfLink,omitempty"` // SelfManaged: Configuration and status of a self-managed SSL certificate. SelfManaged *SslCertificateSelfManagedSslCertificate `json:"selfManaged,omitempty"` - // SubjectAlternativeNames: [Output Only] Domains associated with the - // certificate via Subject Alternative Name. + // SubjectAlternativeNames: Output only. [Output Only] Domains associated with + // the certificate via Subject + // Alternative Name. SubjectAlternativeNames []string `json:"subjectAlternativeNames,omitempty"` // Type: (Optional) Specifies the type of SSL certificate, either - // "SELF_MANAGED" or "MANAGED". If not specified, the certificate is - // self-managed and the fields certificate and private_key are used. + // "SELF_MANAGED" or + // "MANAGED". If not specified, the certificate is self-managed and the + // fieldscertificate and private_key are used. // // Possible values: // "MANAGED" - Google-managed SSLCertificate. @@ -42454,9 +69359,9 @@ type SslCertificate struct { NullFields []string `json:"-"` } -func (s *SslCertificate) MarshalJSON() ([]byte, error) { +func (s SslCertificate) MarshalJSON() ([]byte, error) { type NoMethod SslCertificate - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } type SslCertificateAggregatedList struct { @@ -42464,18 +69369,21 @@ type SslCertificateAggregatedList struct { Id string `json:"id,omitempty"` // Items: A list of SslCertificatesScopedList resources. Items map[string]SslCertificatesScopedList `json:"items,omitempty"` - // Kind: [Output Only] Type of resource. Always - // compute#sslCertificateAggregatedList for lists of SSL Certificates. + // Kind: Output only. [Output Only] Type of resource. + // Alwayscompute#sslCertificateAggregatedList for lists of SSL + // Certificates. 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. + // results for + // list requests. If the number of results is larger thanmaxResults, 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"` - // SelfLink: [Output Only] Server-defined URL for this resource. + // SelfLink: Output only. [Output Only] Server-defined URL for this resource. SelfLink string `json:"selfLink,omitempty"` - // Unreachables: [Output Only] Unreachable resources. + // Unreachables: Output only. [Output Only] Unreachable resources. Unreachables []string `json:"unreachables,omitempty"` // Warning: [Output Only] Informational warning message. Warning *SslCertificateAggregatedListWarning `json:"warning,omitempty"` @@ -42495,76 +69403,98 @@ type SslCertificateAggregatedList struct { NullFields []string `json:"-"` } -func (s *SslCertificateAggregatedList) MarshalJSON() ([]byte, error) { +func (s SslCertificateAggregatedList) MarshalJSON() ([]byte, error) { type NoMethod SslCertificateAggregatedList - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } // SslCertificateAggregatedListWarning: [Output Only] Informational warning // message. type SslCertificateAggregatedListWarning 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. + // 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" - Warning about failed cleanup of transient changes made - // by a failed operation. + // by a failed + // operation. // "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was created. // "DEPRECATED_TYPE_USED" - When deploying and at least one of the resources - // has a type marked as deprecated + // has a type marked as + // deprecated // "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk that is // larger than image size. // "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the - // resources has a type marked as experimental + // resources has a type marked as + // experimental // "EXTERNAL_API_WARNING" - Warning that is present in an external api call // "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been - // overridden. Deprecated unused field. + // overridden. + // Deprecated unused field. // "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an injected // kernel, which is deprecated. // "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB" - A WEIGHTED_MAGLEV backend - // service is associated with a health check that is not of type - // HTTP/HTTPS/HTTP2. + // service is associated with a health check that is + // not of type HTTP/HTTPS/HTTP2. // "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a // exceedingly large number of resources // "LIST_OVERHEAD_QUOTA_EXCEED" - Resource can't be retrieved due to list - // overhead quota exceed which captures the amount of resources filtered out by + // overhead quota exceed + // which captures the amount of resources filtered out by // user-defined list filter. // "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is not - // assigned to an instance on the network. + // assigned to an instance on the + // network. // "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot ip // forward. // "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE" - The route's nextHopInstance - // URL refers to an instance that does not have an ipv6 interface on the same - // network as the route. + // URL refers to an instance that does not have an + // ipv6 interface on the same network as the route. // "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL refers to // an instance that does not exist. // "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance URL - // refers to an instance that is not on the same network as the route. + // refers to an instance that is not on the + // same network as the route. // "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not have a // status of RUNNING. // "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to continue - // the process despite the mentioned error. + // the process despite + // the mentioned error. // "NO_RESULTS_ON_PAGE" - No results are present on a particular list page. // "PARTIAL_SUCCESS" - Success is reported, but some results may be missing // due to errors + // "QUOTA_INFO_UNAVAILABLE" - Quota information is not available to client + // requests (e.g: + // regions.list). // "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource that - // requires a TOS they have not accepted. + // requires a TOS they have not + // accepted. // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a resource is // in use. // "RESOURCE_NOT_DELETED" - One or more of the resources set to auto-delete - // could not be deleted because they were in use. + // could not be deleted + // because they were in use. // "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is // ignored. // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in instance - // group manager is valid as such, but its application does not make a lot of - // sense, because it allows only single instance in instance group. + // group manager is valid as such, but + // its application does not make a lot of sense, because it allows only + // single instance in instance group. // "UNDECLARED_PROPERTIES" - When undeclared properties in the schema are // present // "UNREACHABLE" - A given scope cannot be reached. 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: [Output Only] Metadata about this warning in key: + // value format. For example: + // + // "data": [ + // { + // "key": "scope", + // "value": "zones/us-east1-d" + // } Data []*SslCertificateAggregatedListWarningData `json:"data,omitempty"` // Message: [Output Only] A human-readable description of the warning code. Message string `json:"message,omitempty"` @@ -42581,19 +69511,22 @@ type SslCertificateAggregatedListWarning struct { NullFields []string `json:"-"` } -func (s *SslCertificateAggregatedListWarning) MarshalJSON() ([]byte, error) { +func (s SslCertificateAggregatedListWarning) MarshalJSON() ([]byte, error) { type NoMethod SslCertificateAggregatedListWarning - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } type SslCertificateAggregatedListWarningData 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: [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"` @@ -42610,9 +69543,9 @@ type SslCertificateAggregatedListWarningData struct { NullFields []string `json:"-"` } -func (s *SslCertificateAggregatedListWarningData) MarshalJSON() ([]byte, error) { +func (s SslCertificateAggregatedListWarningData) MarshalJSON() ([]byte, error) { type NoMethod SslCertificateAggregatedListWarningData - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } // SslCertificateList: Contains a list of SslCertificate resources. @@ -42621,15 +69554,17 @@ type SslCertificateList struct { Id string `json:"id,omitempty"` // Items: A list of SslCertificate resources. Items []*SslCertificate `json:"items,omitempty"` - // Kind: Type of resource. + // Kind: Output only. Type of resource. 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. + // results for + // list requests. If the number of results is larger thanmaxResults, 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"` - // SelfLink: [Output Only] Server-defined URL for this resource. + // SelfLink: Output only. [Output Only] Server-defined URL for this resource. SelfLink string `json:"selfLink,omitempty"` // Warning: [Output Only] Informational warning message. Warning *SslCertificateListWarning `json:"warning,omitempty"` @@ -42649,75 +69584,97 @@ type SslCertificateList struct { NullFields []string `json:"-"` } -func (s *SslCertificateList) MarshalJSON() ([]byte, error) { +func (s SslCertificateList) MarshalJSON() ([]byte, error) { type NoMethod SslCertificateList - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } // SslCertificateListWarning: [Output Only] Informational warning message. type SslCertificateListWarning 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. + // 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" - Warning about failed cleanup of transient changes made - // by a failed operation. + // by a failed + // operation. // "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was created. // "DEPRECATED_TYPE_USED" - When deploying and at least one of the resources - // has a type marked as deprecated + // has a type marked as + // deprecated // "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk that is // larger than image size. // "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the - // resources has a type marked as experimental + // resources has a type marked as + // experimental // "EXTERNAL_API_WARNING" - Warning that is present in an external api call // "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been - // overridden. Deprecated unused field. + // overridden. + // Deprecated unused field. // "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an injected // kernel, which is deprecated. // "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB" - A WEIGHTED_MAGLEV backend - // service is associated with a health check that is not of type - // HTTP/HTTPS/HTTP2. + // service is associated with a health check that is + // not of type HTTP/HTTPS/HTTP2. // "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a // exceedingly large number of resources // "LIST_OVERHEAD_QUOTA_EXCEED" - Resource can't be retrieved due to list - // overhead quota exceed which captures the amount of resources filtered out by + // overhead quota exceed + // which captures the amount of resources filtered out by // user-defined list filter. // "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is not - // assigned to an instance on the network. + // assigned to an instance on the + // network. // "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot ip // forward. // "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE" - The route's nextHopInstance - // URL refers to an instance that does not have an ipv6 interface on the same - // network as the route. + // URL refers to an instance that does not have an + // ipv6 interface on the same network as the route. // "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL refers to // an instance that does not exist. // "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance URL - // refers to an instance that is not on the same network as the route. + // refers to an instance that is not on the + // same network as the route. // "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not have a // status of RUNNING. // "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to continue - // the process despite the mentioned error. + // the process despite + // the mentioned error. // "NO_RESULTS_ON_PAGE" - No results are present on a particular list page. // "PARTIAL_SUCCESS" - Success is reported, but some results may be missing // due to errors + // "QUOTA_INFO_UNAVAILABLE" - Quota information is not available to client + // requests (e.g: + // regions.list). // "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource that - // requires a TOS they have not accepted. + // requires a TOS they have not + // accepted. // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a resource is // in use. // "RESOURCE_NOT_DELETED" - One or more of the resources set to auto-delete - // could not be deleted because they were in use. + // could not be deleted + // because they were in use. // "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is // ignored. // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in instance - // group manager is valid as such, but its application does not make a lot of - // sense, because it allows only single instance in instance group. + // group manager is valid as such, but + // its application does not make a lot of sense, because it allows only + // single instance in instance group. // "UNDECLARED_PROPERTIES" - When undeclared properties in the schema are // present // "UNREACHABLE" - A given scope cannot be reached. 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: [Output Only] Metadata about this warning in key: + // value format. For example: + // + // "data": [ + // { + // "key": "scope", + // "value": "zones/us-east1-d" + // } Data []*SslCertificateListWarningData `json:"data,omitempty"` // Message: [Output Only] A human-readable description of the warning code. Message string `json:"message,omitempty"` @@ -42734,19 +69691,22 @@ type SslCertificateListWarning struct { NullFields []string `json:"-"` } -func (s *SslCertificateListWarning) MarshalJSON() ([]byte, error) { +func (s SslCertificateListWarning) MarshalJSON() ([]byte, error) { type NoMethod SslCertificateListWarning - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } type SslCertificateListWarningData 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: [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"` @@ -42763,42 +69723,51 @@ type SslCertificateListWarningData struct { NullFields []string `json:"-"` } -func (s *SslCertificateListWarningData) MarshalJSON() ([]byte, error) { +func (s SslCertificateListWarningData) MarshalJSON() ([]byte, error) { type NoMethod SslCertificateListWarningData - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } // SslCertificateManagedSslCertificate: Configuration and status of a managed // SSL certificate. type SslCertificateManagedSslCertificate struct { - // DomainStatus: [Output only] Detailed statuses of the domains specified for - // managed certificate resource. + // DomainStatus: Output only. [Output only] Detailed statuses of the domains + // specified for managed + // certificate resource. DomainStatus map[string]string `json:"domainStatus,omitempty"` // Domains: The domains for which a managed SSL certificate will be generated. - // Each Google-managed SSL certificate supports up to the maximum number of - // domains per Google-managed SSL certificate - // (/load-balancing/docs/quotas#ssl_certificates). + // Each + // Google-managed SSL certificate supports up to the maximum number of + // domains per Google-managed SSL + // certificate (/load-balancing/docs/quotas#ssl_certificates). Domains []string `json:"domains,omitempty"` - // Status: [Output only] Status of the managed certificate resource. + // Status: Output only. [Output only] Status of the managed certificate + // resource. // // Possible values: // "ACTIVE" - The certificate management is working, and a certificate has - // been provisioned. + // been + // provisioned. // "MANAGED_CERTIFICATE_STATUS_UNSPECIFIED" // "PROVISIONING" - The certificate management is working. GCP will attempt - // to provision the first certificate. + // to provision + // the first certificate. // "PROVISIONING_FAILED" - Certificate provisioning failed due to an issue - // with the DNS or load balancing configuration. For details of which domain - // failed, consult domain_status field. + // with the DNS + // or load balancing configuration. + // For details of which domain failed, consult domain_status field. // "PROVISIONING_FAILED_PERMANENTLY" - Certificate provisioning failed due to - // an issue with the DNS or load balancing configuration. It won't be retried. - // To try again delete and create a new managed SslCertificate resource. For - // details of which domain failed, consult domain_status field. + // an issue with the DNS + // or load balancing configuration. It won't be retried. To try again + // delete and create a new managed SslCertificate resource. + // For details of which domain failed, consult domain_status field. // "RENEWAL_FAILED" - Renewal of the certificate has failed due to an issue - // with the DNS or load balancing configuration. The existing cert is still - // serving; however, it will expire shortly. To provision a renewed - // certificate, delete and create a new managed SslCertificate resource. For - // details on which domain failed, consult domain_status field. + // with the DNS + // or load balancing configuration. The existing cert is still + // serving; + // however, it will expire shortly. To provision a renewed certificate, + // delete and create a new managed SslCertificate resource. + // For details on which domain failed, consult domain_status field. Status string `json:"status,omitempty"` // ForceSendFields is a list of field names (e.g. "DomainStatus") to // unconditionally include in API requests. By default, fields with empty or @@ -42813,20 +69782,20 @@ type SslCertificateManagedSslCertificate struct { NullFields []string `json:"-"` } -func (s *SslCertificateManagedSslCertificate) MarshalJSON() ([]byte, error) { +func (s SslCertificateManagedSslCertificate) MarshalJSON() ([]byte, error) { type NoMethod SslCertificateManagedSslCertificate - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } // SslCertificateSelfManagedSslCertificate: Configuration and status of a // self-managed SSL certificate. type SslCertificateSelfManagedSslCertificate struct { - // Certificate: A local certificate file. The certificate must be in PEM - // format. The certificate chain must be no greater than 5 certs long. The - // chain must include at least one intermediate cert. + // Certificate: A local certificate file. The certificate must be in + // PEM format. The certificate chain must be no greater than 5 certs + // long. The chain must include at least one intermediate cert. Certificate string `json:"certificate,omitempty"` - // PrivateKey: A write-only private key in PEM format. Only insert requests - // will include this field. + // PrivateKey: A write-only private key in PEM format. Only insert + // requests will include this field. PrivateKey string `json:"privateKey,omitempty"` // ForceSendFields is a list of field names (e.g. "Certificate") to // unconditionally include in API requests. By default, fields with empty or @@ -42841,16 +69810,16 @@ type SslCertificateSelfManagedSslCertificate struct { NullFields []string `json:"-"` } -func (s *SslCertificateSelfManagedSslCertificate) MarshalJSON() ([]byte, error) { +func (s SslCertificateSelfManagedSslCertificate) MarshalJSON() ([]byte, error) { type NoMethod SslCertificateSelfManagedSslCertificate - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } type SslCertificatesScopedList struct { // SslCertificates: List of SslCertificates contained in this scope. SslCertificates []*SslCertificate `json:"sslCertificates,omitempty"` - // Warning: Informational warning which replaces the list of backend services - // when the list is empty. + // Warning: Informational warning which replaces the list of + // backend services when the list is empty. Warning *SslCertificatesScopedListWarning `json:"warning,omitempty"` // ForceSendFields is a list of field names (e.g. "SslCertificates") to // unconditionally include in API requests. By default, fields with empty or @@ -42865,76 +69834,99 @@ type SslCertificatesScopedList struct { NullFields []string `json:"-"` } -func (s *SslCertificatesScopedList) MarshalJSON() ([]byte, error) { +func (s SslCertificatesScopedList) MarshalJSON() ([]byte, error) { type NoMethod SslCertificatesScopedList - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } // SslCertificatesScopedListWarning: Informational warning which replaces the -// list of backend services when the list is empty. +// list of +// backend services when the list is empty. type SslCertificatesScopedListWarning 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. + // 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" - Warning about failed cleanup of transient changes made - // by a failed operation. + // by a failed + // operation. // "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was created. // "DEPRECATED_TYPE_USED" - When deploying and at least one of the resources - // has a type marked as deprecated + // has a type marked as + // deprecated // "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk that is // larger than image size. // "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the - // resources has a type marked as experimental + // resources has a type marked as + // experimental // "EXTERNAL_API_WARNING" - Warning that is present in an external api call // "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been - // overridden. Deprecated unused field. + // overridden. + // Deprecated unused field. // "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an injected // kernel, which is deprecated. // "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB" - A WEIGHTED_MAGLEV backend - // service is associated with a health check that is not of type - // HTTP/HTTPS/HTTP2. + // service is associated with a health check that is + // not of type HTTP/HTTPS/HTTP2. // "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a // exceedingly large number of resources // "LIST_OVERHEAD_QUOTA_EXCEED" - Resource can't be retrieved due to list - // overhead quota exceed which captures the amount of resources filtered out by + // overhead quota exceed + // which captures the amount of resources filtered out by // user-defined list filter. // "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is not - // assigned to an instance on the network. + // assigned to an instance on the + // network. // "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot ip // forward. // "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE" - The route's nextHopInstance - // URL refers to an instance that does not have an ipv6 interface on the same - // network as the route. + // URL refers to an instance that does not have an + // ipv6 interface on the same network as the route. // "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL refers to // an instance that does not exist. // "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance URL - // refers to an instance that is not on the same network as the route. + // refers to an instance that is not on the + // same network as the route. // "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not have a // status of RUNNING. // "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to continue - // the process despite the mentioned error. + // the process despite + // the mentioned error. // "NO_RESULTS_ON_PAGE" - No results are present on a particular list page. // "PARTIAL_SUCCESS" - Success is reported, but some results may be missing // due to errors + // "QUOTA_INFO_UNAVAILABLE" - Quota information is not available to client + // requests (e.g: + // regions.list). // "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource that - // requires a TOS they have not accepted. + // requires a TOS they have not + // accepted. // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a resource is // in use. // "RESOURCE_NOT_DELETED" - One or more of the resources set to auto-delete - // could not be deleted because they were in use. + // could not be deleted + // because they were in use. // "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is // ignored. // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in instance - // group manager is valid as such, but its application does not make a lot of - // sense, because it allows only single instance in instance group. + // group manager is valid as such, but + // its application does not make a lot of sense, because it allows only + // single instance in instance group. // "UNDECLARED_PROPERTIES" - When undeclared properties in the schema are // present // "UNREACHABLE" - A given scope cannot be reached. 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: [Output Only] Metadata about this warning in key: + // value format. For example: + // + // "data": [ + // { + // "key": "scope", + // "value": "zones/us-east1-d" + // } Data []*SslCertificatesScopedListWarningData `json:"data,omitempty"` // Message: [Output Only] A human-readable description of the warning code. Message string `json:"message,omitempty"` @@ -42951,19 +69943,22 @@ type SslCertificatesScopedListWarning struct { NullFields []string `json:"-"` } -func (s *SslCertificatesScopedListWarning) MarshalJSON() ([]byte, error) { +func (s SslCertificatesScopedListWarning) MarshalJSON() ([]byte, error) { type NoMethod SslCertificatesScopedListWarning - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } type SslCertificatesScopedListWarningData 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: [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"` @@ -42980,9 +69975,9 @@ type SslCertificatesScopedListWarningData struct { NullFields []string `json:"-"` } -func (s *SslCertificatesScopedListWarningData) MarshalJSON() ([]byte, error) { +func (s SslCertificatesScopedListWarningData) MarshalJSON() ([]byte, error) { type NoMethod SslCertificatesScopedListWarningData - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } type SslPoliciesAggregatedList struct { @@ -42991,18 +69986,20 @@ type SslPoliciesAggregatedList struct { Id string `json:"id,omitempty"` // Items: A list of SslPoliciesScopedList resources. Items map[string]SslPoliciesScopedList `json:"items,omitempty"` - // Kind: [Output Only] Type of resource. Always compute#sslPolicyAggregatedList - // for lists of SSL Policies. + // Kind: Output only. [Output Only] Type of resource. + // Alwayscompute#sslPolicyAggregatedList for lists of SSL Policies. 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. + // results for + // list requests. If the number of results is larger thanmaxResults, 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"` - // SelfLink: [Output Only] Server-defined URL for this resource. + // SelfLink: Output only. [Output Only] Server-defined URL for this resource. SelfLink string `json:"selfLink,omitempty"` - // Unreachables: [Output Only] Unreachable resources. + // Unreachables: Output only. [Output Only] Unreachable resources. Unreachables []string `json:"unreachables,omitempty"` // Warning: [Output Only] Informational warning message. Warning *SslPoliciesAggregatedListWarning `json:"warning,omitempty"` @@ -43022,76 +70019,98 @@ type SslPoliciesAggregatedList struct { NullFields []string `json:"-"` } -func (s *SslPoliciesAggregatedList) MarshalJSON() ([]byte, error) { +func (s SslPoliciesAggregatedList) MarshalJSON() ([]byte, error) { type NoMethod SslPoliciesAggregatedList - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } // SslPoliciesAggregatedListWarning: [Output Only] Informational warning // message. type SslPoliciesAggregatedListWarning 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. + // 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" - Warning about failed cleanup of transient changes made - // by a failed operation. + // by a failed + // operation. // "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was created. // "DEPRECATED_TYPE_USED" - When deploying and at least one of the resources - // has a type marked as deprecated + // has a type marked as + // deprecated // "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk that is // larger than image size. // "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the - // resources has a type marked as experimental + // resources has a type marked as + // experimental // "EXTERNAL_API_WARNING" - Warning that is present in an external api call // "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been - // overridden. Deprecated unused field. + // overridden. + // Deprecated unused field. // "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an injected // kernel, which is deprecated. // "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB" - A WEIGHTED_MAGLEV backend - // service is associated with a health check that is not of type - // HTTP/HTTPS/HTTP2. + // service is associated with a health check that is + // not of type HTTP/HTTPS/HTTP2. // "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a // exceedingly large number of resources // "LIST_OVERHEAD_QUOTA_EXCEED" - Resource can't be retrieved due to list - // overhead quota exceed which captures the amount of resources filtered out by + // overhead quota exceed + // which captures the amount of resources filtered out by // user-defined list filter. // "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is not - // assigned to an instance on the network. + // assigned to an instance on the + // network. // "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot ip // forward. // "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE" - The route's nextHopInstance - // URL refers to an instance that does not have an ipv6 interface on the same - // network as the route. + // URL refers to an instance that does not have an + // ipv6 interface on the same network as the route. // "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL refers to // an instance that does not exist. // "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance URL - // refers to an instance that is not on the same network as the route. + // refers to an instance that is not on the + // same network as the route. // "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not have a // status of RUNNING. // "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to continue - // the process despite the mentioned error. + // the process despite + // the mentioned error. // "NO_RESULTS_ON_PAGE" - No results are present on a particular list page. // "PARTIAL_SUCCESS" - Success is reported, but some results may be missing // due to errors + // "QUOTA_INFO_UNAVAILABLE" - Quota information is not available to client + // requests (e.g: + // regions.list). // "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource that - // requires a TOS they have not accepted. + // requires a TOS they have not + // accepted. // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a resource is // in use. // "RESOURCE_NOT_DELETED" - One or more of the resources set to auto-delete - // could not be deleted because they were in use. + // could not be deleted + // because they were in use. // "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is // ignored. // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in instance - // group manager is valid as such, but its application does not make a lot of - // sense, because it allows only single instance in instance group. + // group manager is valid as such, but + // its application does not make a lot of sense, because it allows only + // single instance in instance group. // "UNDECLARED_PROPERTIES" - When undeclared properties in the schema are // present // "UNREACHABLE" - A given scope cannot be reached. 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: [Output Only] Metadata about this warning in key: + // value format. For example: + // + // "data": [ + // { + // "key": "scope", + // "value": "zones/us-east1-d" + // } Data []*SslPoliciesAggregatedListWarningData `json:"data,omitempty"` // Message: [Output Only] A human-readable description of the warning code. Message string `json:"message,omitempty"` @@ -43108,19 +70127,22 @@ type SslPoliciesAggregatedListWarning struct { NullFields []string `json:"-"` } -func (s *SslPoliciesAggregatedListWarning) MarshalJSON() ([]byte, error) { +func (s SslPoliciesAggregatedListWarning) MarshalJSON() ([]byte, error) { type NoMethod SslPoliciesAggregatedListWarning - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } type SslPoliciesAggregatedListWarningData 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: [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"` @@ -43137,26 +70159,29 @@ type SslPoliciesAggregatedListWarningData struct { NullFields []string `json:"-"` } -func (s *SslPoliciesAggregatedListWarningData) MarshalJSON() ([]byte, error) { +func (s SslPoliciesAggregatedListWarningData) MarshalJSON() ([]byte, error) { type NoMethod SslPoliciesAggregatedListWarningData - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } type SslPoliciesList struct { - // Id: [Output Only] Unique identifier for the resource; defined by the server. + // Id: Output only. [Output Only] Unique identifier for the resource; defined + // by the server. Id string `json:"id,omitempty"` - // Items: A list of SslPolicy resources. + // Items: Output only. A list of SslPolicy resources. Items []*SslPolicy `json:"items,omitempty"` - // Kind: [Output Only] Type of the resource. Always compute#sslPoliciesList for - // lists of sslPolicies. + // Kind: Output only. [Output Only] Type of the resource. + // Alwayscompute#sslPoliciesList for lists of sslPolicies. 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: Output only. [Output Only] This token allows you to get the + // next page of results for + // list requests. If the number of results is larger thanmaxResults, 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"` - // SelfLink: [Output Only] Server-defined URL for this resource. + // SelfLink: Output only. [Output Only] Server-defined URL for this resource. SelfLink string `json:"selfLink,omitempty"` // Warning: [Output Only] Informational warning message. Warning *SslPoliciesListWarning `json:"warning,omitempty"` @@ -43176,75 +70201,97 @@ type SslPoliciesList struct { NullFields []string `json:"-"` } -func (s *SslPoliciesList) MarshalJSON() ([]byte, error) { +func (s SslPoliciesList) MarshalJSON() ([]byte, error) { type NoMethod SslPoliciesList - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } // SslPoliciesListWarning: [Output Only] Informational warning message. type SslPoliciesListWarning 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. + // 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" - Warning about failed cleanup of transient changes made - // by a failed operation. + // by a failed + // operation. // "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was created. // "DEPRECATED_TYPE_USED" - When deploying and at least one of the resources - // has a type marked as deprecated + // has a type marked as + // deprecated // "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk that is // larger than image size. // "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the - // resources has a type marked as experimental + // resources has a type marked as + // experimental // "EXTERNAL_API_WARNING" - Warning that is present in an external api call // "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been - // overridden. Deprecated unused field. + // overridden. + // Deprecated unused field. // "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an injected // kernel, which is deprecated. // "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB" - A WEIGHTED_MAGLEV backend - // service is associated with a health check that is not of type - // HTTP/HTTPS/HTTP2. + // service is associated with a health check that is + // not of type HTTP/HTTPS/HTTP2. // "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a // exceedingly large number of resources // "LIST_OVERHEAD_QUOTA_EXCEED" - Resource can't be retrieved due to list - // overhead quota exceed which captures the amount of resources filtered out by + // overhead quota exceed + // which captures the amount of resources filtered out by // user-defined list filter. // "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is not - // assigned to an instance on the network. + // assigned to an instance on the + // network. // "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot ip // forward. // "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE" - The route's nextHopInstance - // URL refers to an instance that does not have an ipv6 interface on the same - // network as the route. + // URL refers to an instance that does not have an + // ipv6 interface on the same network as the route. // "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL refers to // an instance that does not exist. // "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance URL - // refers to an instance that is not on the same network as the route. + // refers to an instance that is not on the + // same network as the route. // "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not have a // status of RUNNING. // "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to continue - // the process despite the mentioned error. + // the process despite + // the mentioned error. // "NO_RESULTS_ON_PAGE" - No results are present on a particular list page. // "PARTIAL_SUCCESS" - Success is reported, but some results may be missing // due to errors + // "QUOTA_INFO_UNAVAILABLE" - Quota information is not available to client + // requests (e.g: + // regions.list). // "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource that - // requires a TOS they have not accepted. + // requires a TOS they have not + // accepted. // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a resource is // in use. // "RESOURCE_NOT_DELETED" - One or more of the resources set to auto-delete - // could not be deleted because they were in use. + // could not be deleted + // because they were in use. // "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is // ignored. // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in instance - // group manager is valid as such, but its application does not make a lot of - // sense, because it allows only single instance in instance group. + // group manager is valid as such, but + // its application does not make a lot of sense, because it allows only + // single instance in instance group. // "UNDECLARED_PROPERTIES" - When undeclared properties in the schema are // present // "UNREACHABLE" - A given scope cannot be reached. 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: [Output Only] Metadata about this warning in key: + // value format. For example: + // + // "data": [ + // { + // "key": "scope", + // "value": "zones/us-east1-d" + // } Data []*SslPoliciesListWarningData `json:"data,omitempty"` // Message: [Output Only] A human-readable description of the warning code. Message string `json:"message,omitempty"` @@ -43261,19 +70308,22 @@ type SslPoliciesListWarning struct { NullFields []string `json:"-"` } -func (s *SslPoliciesListWarning) MarshalJSON() ([]byte, error) { +func (s SslPoliciesListWarning) MarshalJSON() ([]byte, error) { type NoMethod SslPoliciesListWarning - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } type SslPoliciesListWarningData 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: [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"` @@ -43290,9 +70340,9 @@ type SslPoliciesListWarningData struct { NullFields []string `json:"-"` } -func (s *SslPoliciesListWarningData) MarshalJSON() ([]byte, error) { +func (s SslPoliciesListWarningData) MarshalJSON() ([]byte, error) { type NoMethod SslPoliciesListWarningData - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } type SslPoliciesListAvailableFeaturesResponse struct { @@ -43313,16 +70363,16 @@ type SslPoliciesListAvailableFeaturesResponse struct { NullFields []string `json:"-"` } -func (s *SslPoliciesListAvailableFeaturesResponse) MarshalJSON() ([]byte, error) { +func (s SslPoliciesListAvailableFeaturesResponse) MarshalJSON() ([]byte, error) { type NoMethod SslPoliciesListAvailableFeaturesResponse - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } type SslPoliciesScopedList struct { // SslPolicies: A list of SslPolicies contained in this scope. SslPolicies []*SslPolicy `json:"sslPolicies,omitempty"` - // Warning: Informational warning which replaces the list of SSL policies when - // the list is empty. + // Warning: Informational warning which replaces the list of + // SSL policies when the list is empty. Warning *SslPoliciesScopedListWarning `json:"warning,omitempty"` // ForceSendFields is a list of field names (e.g. "SslPolicies") to // unconditionally include in API requests. By default, fields with empty or @@ -43337,76 +70387,99 @@ type SslPoliciesScopedList struct { NullFields []string `json:"-"` } -func (s *SslPoliciesScopedList) MarshalJSON() ([]byte, error) { +func (s SslPoliciesScopedList) MarshalJSON() ([]byte, error) { type NoMethod SslPoliciesScopedList - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } // SslPoliciesScopedListWarning: Informational warning which replaces the list -// of SSL policies when the list is empty. +// of +// SSL policies when the list is empty. type SslPoliciesScopedListWarning 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. + // 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" - Warning about failed cleanup of transient changes made - // by a failed operation. + // by a failed + // operation. // "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was created. // "DEPRECATED_TYPE_USED" - When deploying and at least one of the resources - // has a type marked as deprecated + // has a type marked as + // deprecated // "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk that is // larger than image size. // "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the - // resources has a type marked as experimental + // resources has a type marked as + // experimental // "EXTERNAL_API_WARNING" - Warning that is present in an external api call // "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been - // overridden. Deprecated unused field. + // overridden. + // Deprecated unused field. // "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an injected // kernel, which is deprecated. // "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB" - A WEIGHTED_MAGLEV backend - // service is associated with a health check that is not of type - // HTTP/HTTPS/HTTP2. + // service is associated with a health check that is + // not of type HTTP/HTTPS/HTTP2. // "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a // exceedingly large number of resources // "LIST_OVERHEAD_QUOTA_EXCEED" - Resource can't be retrieved due to list - // overhead quota exceed which captures the amount of resources filtered out by + // overhead quota exceed + // which captures the amount of resources filtered out by // user-defined list filter. // "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is not - // assigned to an instance on the network. + // assigned to an instance on the + // network. // "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot ip // forward. // "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE" - The route's nextHopInstance - // URL refers to an instance that does not have an ipv6 interface on the same - // network as the route. + // URL refers to an instance that does not have an + // ipv6 interface on the same network as the route. // "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL refers to // an instance that does not exist. // "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance URL - // refers to an instance that is not on the same network as the route. + // refers to an instance that is not on the + // same network as the route. // "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not have a // status of RUNNING. // "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to continue - // the process despite the mentioned error. + // the process despite + // the mentioned error. // "NO_RESULTS_ON_PAGE" - No results are present on a particular list page. // "PARTIAL_SUCCESS" - Success is reported, but some results may be missing // due to errors + // "QUOTA_INFO_UNAVAILABLE" - Quota information is not available to client + // requests (e.g: + // regions.list). // "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource that - // requires a TOS they have not accepted. + // requires a TOS they have not + // accepted. // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a resource is // in use. // "RESOURCE_NOT_DELETED" - One or more of the resources set to auto-delete - // could not be deleted because they were in use. + // could not be deleted + // because they were in use. // "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is // ignored. // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in instance - // group manager is valid as such, but its application does not make a lot of - // sense, because it allows only single instance in instance group. + // group manager is valid as such, but + // its application does not make a lot of sense, because it allows only + // single instance in instance group. // "UNDECLARED_PROPERTIES" - When undeclared properties in the schema are // present // "UNREACHABLE" - A given scope cannot be reached. 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: [Output Only] Metadata about this warning in key: + // value format. For example: + // + // "data": [ + // { + // "key": "scope", + // "value": "zones/us-east1-d" + // } Data []*SslPoliciesScopedListWarningData `json:"data,omitempty"` // Message: [Output Only] A human-readable description of the warning code. Message string `json:"message,omitempty"` @@ -43423,19 +70496,22 @@ type SslPoliciesScopedListWarning struct { NullFields []string `json:"-"` } -func (s *SslPoliciesScopedListWarning) MarshalJSON() ([]byte, error) { +func (s SslPoliciesScopedListWarning) MarshalJSON() ([]byte, error) { type NoMethod SslPoliciesScopedListWarning - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } type SslPoliciesScopedListWarningData 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: [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"` @@ -43452,79 +70528,130 @@ type SslPoliciesScopedListWarningData struct { NullFields []string `json:"-"` } -func (s *SslPoliciesScopedListWarningData) MarshalJSON() ([]byte, error) { +func (s SslPoliciesScopedListWarningData) MarshalJSON() ([]byte, error) { type NoMethod SslPoliciesScopedListWarningData - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -// SslPolicy: Represents an SSL Policy resource. Use SSL policies to control -// SSL features, such as versions and cipher suites, that are offered by -// Application Load Balancers and proxy Network Load Balancers. For more -// information, read SSL policies overview. +// SslPolicy: Represents an SSL Policy resource. +// +// Use SSL policies to control SSL features, such as versions and +// cipher +// suites, that are offered by Application Load Balancers and proxy Network +// Load +// Balancers. For more information, read +// SSL policies overview. type SslPolicy struct { - // CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text format. + // CreationTimestamp: Output only. [Output Only] Creation timestamp + // inRFC3339 + // text format. CreationTimestamp string `json:"creationTimestamp,omitempty"` // CustomFeatures: A list of features enabled when the selected profile is - // CUSTOM. The method returns the set of features that can be specified in this - // list. This field must be empty if the profile is not CUSTOM. + // CUSTOM. The + // method returns the set of features that can be + // specified in this list. This field must be empty if the profile is + // notCUSTOM. CustomFeatures []string `json:"customFeatures,omitempty"` // Description: An optional description of this resource. Provide this property - // when you create the resource. + // when you + // create the resource. Description string `json:"description,omitempty"` - // EnabledFeatures: [Output Only] The list of features enabled in the SSL - // policy. + // EnabledFeatures: Output only. [Output Only] The list of features enabled in + // the SSL policy. EnabledFeatures []string `json:"enabledFeatures,omitempty"` // Fingerprint: Fingerprint of this resource. A hash of the contents stored in - // this object. This field is used in optimistic locking. This field will be - // ignored when inserting a SslPolicy. An up-to-date fingerprint must be - // provided in order to update the SslPolicy, otherwise the request will fail - // with error 412 conditionNotMet. To see the latest fingerprint, make a get() - // request to retrieve an SslPolicy. + // this object. + // This field is used in optimistic locking. This field will be ignored + // when + // inserting a SslPolicy. An up-to-date fingerprint must be + // provided in order to update the SslPolicy, otherwise the + // request will fail with error 412 conditionNotMet. + // + // To see the latest fingerprint, make a get() request to + // retrieve an SslPolicy. Fingerprint string `json:"fingerprint,omitempty"` - // Id: [Output Only] The unique identifier for the resource. This identifier is + // Id: Output only. [Output Only] The unique identifier for the resource. This + // identifier is // defined by the server. Id uint64 `json:"id,omitempty,string"` - // Kind: [Output only] Type of the resource. Always compute#sslPolicyfor SSL - // policies. + // Kind: Output only. [Output only] Type of the resource. + // Alwayscompute#sslPolicyfor SSL policies. Kind string `json:"kind,omitempty"` // MinTlsVersion: The minimum version of SSL protocol that can be used by the - // clients to establish a connection with the load balancer. This can be one of - // TLS_1_0, TLS_1_1, TLS_1_2. + // clients to + // establish a connection with the load balancer. This can be one ofTLS_1_0, + // TLS_1_1, TLS_1_2,TLS_1_3. When set to TLS_1_3, the profile field + // must be set to RESTRICTED. // // Possible values: // "TLS_1_0" - TLS 1.0 // "TLS_1_1" - TLS 1.1 // "TLS_1_2" - TLS 1.2 + // "TLS_1_3" - TLS 1.3 MinTlsVersion string `json:"minTlsVersion,omitempty"` // Name: Name of the resource. 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. + // 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. Name string `json:"name,omitempty"` + // PostQuantumKeyExchange: One of DEFAULT, ENABLED, orDEFERRED. Controls + // whether the load balancer negotiates + // X25519MLKEM768 key exchange when clients advertise support for it. When + // set + // to DEFAULT, or if no SSL Policy is attached to the target + // proxy, the load balancer disallows X25519MLKEM768 key exchange + // before + // October 2026, and allows it afterward. When set to ENABLED, + // the load balancer allows X25519MLKEM768 key exchange. When set toDEFERRED, + // the load balancer disallows X25519MLKEM768 key + // exchange until October 2027, and allows it afterward. + // + // Possible values: + // "DEFAULT" - Default behavior: disabled until October 2026, enabled + // afterward. + // "DEFERRED" - Disabled until October 2027, enabled afterward. + // "ENABLED" - Enabled now. + PostQuantumKeyExchange string `json:"postQuantumKeyExchange,omitempty"` // Profile: Profile specifies the set of SSL features that can be used by the - // load balancer when negotiating SSL with clients. This can be one of - // COMPATIBLE, MODERN, RESTRICTED, or CUSTOM. If using CUSTOM, the set of SSL - // features to enable must be specified in the customFeatures field. + // load + // balancer when negotiating SSL with clients. This can be one ofCOMPATIBLE, + // MODERN, RESTRICTED,FIPS_202205, or CUSTOM. If usingCUSTOM, the set of SSL + // features to enable must be specified in + // the customFeatures field. If using FIPS_202205, + // the min_tls_version field must be set to TLS_1_2. // // Possible values: // "COMPATIBLE" - Compatible profile. Allows the broadset set of clients, - // even those which support only out-of-date SSL features to negotiate with the - // load balancer. + // even those which + // support only out-of-date SSL features to negotiate with the load + // balancer. // "CUSTOM" - Custom profile. Allow only the set of allowed SSL features - // specified in the customFeatures field. + // specified in + // the customFeatures field. + // "FIPS_202205" - FIPS compatible profile. Supports a reduced set of SSL + // features, + // intended to meet FIPS 140-3 compliance requirements. // "MODERN" - Modern profile. Supports a wide set of SSL features, allowing - // modern clients to negotiate SSL with the load balancer. + // modern + // clients to negotiate SSL with the load balancer. // "RESTRICTED" - Restricted profile. Supports a reduced set of SSL features, - // intended to meet stricter compliance requirements. + // intended to + // meet stricter compliance requirements. Profile string `json:"profile,omitempty"` - // Region: [Output Only] URL of the region where the regional SSL policy + // Region: Output only. [Output Only] URL of the region where the regional SSL + // policy // resides. This field is not applicable to global SSL policies. Region string `json:"region,omitempty"` - // SelfLink: [Output Only] Server-defined URL for the resource. + // SelfLink: Output only. [Output Only] Server-defined URL for the resource. SelfLink string `json:"selfLink,omitempty"` - // Warnings: [Output Only] If potential misconfigurations are detected for this + // Warnings: Output only. [Output Only] If potential misconfigurations are + // detected for this // SSL policy, this field will be populated with warning messages. Warnings []*SslPolicyWarnings `json:"warnings,omitempty"` @@ -43543,74 +70670,96 @@ type SslPolicy struct { NullFields []string `json:"-"` } -func (s *SslPolicy) MarshalJSON() ([]byte, error) { +func (s SslPolicy) MarshalJSON() ([]byte, error) { type NoMethod SslPolicy - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } type SslPolicyWarnings 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. + // 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" - Warning about failed cleanup of transient changes made - // by a failed operation. + // by a failed + // operation. // "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was created. // "DEPRECATED_TYPE_USED" - When deploying and at least one of the resources - // has a type marked as deprecated + // has a type marked as + // deprecated // "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk that is // larger than image size. // "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the - // resources has a type marked as experimental + // resources has a type marked as + // experimental // "EXTERNAL_API_WARNING" - Warning that is present in an external api call // "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been - // overridden. Deprecated unused field. + // overridden. + // Deprecated unused field. // "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an injected // kernel, which is deprecated. // "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB" - A WEIGHTED_MAGLEV backend - // service is associated with a health check that is not of type - // HTTP/HTTPS/HTTP2. + // service is associated with a health check that is + // not of type HTTP/HTTPS/HTTP2. // "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a // exceedingly large number of resources // "LIST_OVERHEAD_QUOTA_EXCEED" - Resource can't be retrieved due to list - // overhead quota exceed which captures the amount of resources filtered out by + // overhead quota exceed + // which captures the amount of resources filtered out by // user-defined list filter. // "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is not - // assigned to an instance on the network. + // assigned to an instance on the + // network. // "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot ip // forward. // "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE" - The route's nextHopInstance - // URL refers to an instance that does not have an ipv6 interface on the same - // network as the route. + // URL refers to an instance that does not have an + // ipv6 interface on the same network as the route. // "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL refers to // an instance that does not exist. // "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance URL - // refers to an instance that is not on the same network as the route. + // refers to an instance that is not on the + // same network as the route. // "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not have a // status of RUNNING. // "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to continue - // the process despite the mentioned error. + // the process despite + // the mentioned error. // "NO_RESULTS_ON_PAGE" - No results are present on a particular list page. // "PARTIAL_SUCCESS" - Success is reported, but some results may be missing // due to errors + // "QUOTA_INFO_UNAVAILABLE" - Quota information is not available to client + // requests (e.g: + // regions.list). // "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource that - // requires a TOS they have not accepted. + // requires a TOS they have not + // accepted. // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a resource is // in use. // "RESOURCE_NOT_DELETED" - One or more of the resources set to auto-delete - // could not be deleted because they were in use. + // could not be deleted + // because they were in use. // "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is // ignored. // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in instance - // group manager is valid as such, but its application does not make a lot of - // sense, because it allows only single instance in instance group. + // group manager is valid as such, but + // its application does not make a lot of sense, because it allows only + // single instance in instance group. // "UNDECLARED_PROPERTIES" - When undeclared properties in the schema are // present // "UNREACHABLE" - A given scope cannot be reached. 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: [Output Only] Metadata about this warning in key: + // value format. For example: + // + // "data": [ + // { + // "key": "scope", + // "value": "zones/us-east1-d" + // } Data []*SslPolicyWarningsData `json:"data,omitempty"` // Message: [Output Only] A human-readable description of the warning code. Message string `json:"message,omitempty"` @@ -43627,19 +70776,22 @@ type SslPolicyWarnings struct { NullFields []string `json:"-"` } -func (s *SslPolicyWarnings) MarshalJSON() ([]byte, error) { +func (s SslPolicyWarnings) MarshalJSON() ([]byte, error) { type NoMethod SslPolicyWarnings - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } type SslPolicyWarningsData 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: [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"` @@ -43656,14 +70808,12 @@ type SslPolicyWarningsData struct { NullFields []string `json:"-"` } -func (s *SslPolicyWarningsData) MarshalJSON() ([]byte, error) { +func (s SslPolicyWarningsData) MarshalJSON() ([]byte, error) { type NoMethod SslPolicyWarningsData - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } type SslPolicyReference struct { - // SslPolicy: URL of the SSL policy resource. Set this to empty string to clear - // any existing SSL policy associated with the target proxy resource. SslPolicy string `json:"sslPolicy,omitempty"` // ForceSendFields is a list of field names (e.g. "SslPolicy") to // unconditionally include in API requests. By default, fields with empty or @@ -43678,9 +70828,9 @@ type SslPolicyReference struct { NullFields []string `json:"-"` } -func (s *SslPolicyReference) MarshalJSON() ([]byte, error) { +func (s SslPolicyReference) MarshalJSON() ([]byte, error) { type NoMethod SslPolicyReference - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } type StatefulPolicy struct { @@ -43698,23 +70848,27 @@ type StatefulPolicy struct { NullFields []string `json:"-"` } -func (s *StatefulPolicy) MarshalJSON() ([]byte, error) { +func (s StatefulPolicy) MarshalJSON() ([]byte, error) { type NoMethod StatefulPolicy - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } // StatefulPolicyPreservedState: Configuration of preserved resources. type StatefulPolicyPreservedState struct { - // Disks: Disks created on the instances that will be preserved on instance - // delete, update, etc. This map is keyed with the device names of the disks. + // Disks: Disks created on the instances that will be preserved on + // instance + // delete, update, etc. This map is keyed with the device names of + // the disks. Disks map[string]StatefulPolicyPreservedStateDiskDevice `json:"disks,omitempty"` // ExternalIPs: External network IPs assigned to the instances that will be - // preserved on instance delete, update, etc. This map is keyed with the - // network interface name. + // preserved on + // instance delete, update, etc. This map is keyed with the network + // interface name. ExternalIPs map[string]StatefulPolicyPreservedStateNetworkIp `json:"externalIPs,omitempty"` // InternalIPs: Internal network IPs assigned to the instances that will be - // preserved on instance delete, update, etc. This map is keyed with the - // network interface name. + // preserved on + // instance delete, update, etc. This map is keyed with the network + // interface name. InternalIPs map[string]StatefulPolicyPreservedStateNetworkIp `json:"internalIPs,omitempty"` // ForceSendFields is a list of field names (e.g. "Disks") to unconditionally // include in API requests. By default, fields with empty or default values are @@ -43729,17 +70883,19 @@ type StatefulPolicyPreservedState struct { NullFields []string `json:"-"` } -func (s *StatefulPolicyPreservedState) MarshalJSON() ([]byte, error) { +func (s StatefulPolicyPreservedState) MarshalJSON() ([]byte, error) { type NoMethod StatefulPolicyPreservedState - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } type StatefulPolicyPreservedStateDiskDevice struct { - // AutoDelete: These stateful disks will never be deleted during autohealing, - // update or VM instance recreate operations. This flag is used to configure if - // the disk should be deleted after it is no longer used by the group, e.g. - // when the given instance or the whole group is deleted. Note: disks attached - // in READ_ONLY mode cannot be auto-deleted. + // AutoDelete: These stateful disks will never be deleted during + // autohealing, + // update or VM instance recreate operations. + // This flag is used to configure if the disk should be deleted after it + // is no longer used by the group, e.g. when the given instance or + // the whole group is deleted. Note: disks attached inREAD_ONLY mode cannot be + // auto-deleted. // // Possible values: // "NEVER" @@ -43758,16 +70914,18 @@ type StatefulPolicyPreservedStateDiskDevice struct { NullFields []string `json:"-"` } -func (s *StatefulPolicyPreservedStateDiskDevice) MarshalJSON() ([]byte, error) { +func (s StatefulPolicyPreservedStateDiskDevice) MarshalJSON() ([]byte, error) { type NoMethod StatefulPolicyPreservedStateDiskDevice - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } type StatefulPolicyPreservedStateNetworkIp struct { - // AutoDelete: These stateful IPs will never be released during autohealing, - // update or VM instance recreate operations. This flag is used to configure if - // the IP reservation should be deleted after it is no longer used by the - // group, e.g. when the given instance or the whole group is deleted. + // AutoDelete: These stateful IPs will never be released during + // autohealing, + // update or VM instance recreate operations. + // This flag is used to configure if the IP reservation should be deleted + // after it is no longer used by the group, e.g. when the given instance + // or the whole group is deleted. // // Possible values: // "NEVER" @@ -43786,25 +70944,32 @@ type StatefulPolicyPreservedStateNetworkIp struct { NullFields []string `json:"-"` } -func (s *StatefulPolicyPreservedStateNetworkIp) MarshalJSON() ([]byte, error) { +func (s StatefulPolicyPreservedStateNetworkIp) MarshalJSON() ([]byte, error) { type NoMethod StatefulPolicyPreservedStateNetworkIp - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -// Status: The `Status` type defines a logical error model that is suitable for -// different programming environments, including REST APIs and RPC APIs. It is -// used by gRPC (https://github.com/grpc). Each `Status` message contains three -// pieces of data: error code, error message, and error details. You can find -// out more about this error model and how to work with it in the API Design -// Guide (https://cloud.google.com/apis/design/errors). +// Status: The `Status` type defines a logical error model that is suitable +// for +// different programming environments, including REST APIs and RPC APIs. It +// is +// used by gRPC (https://github.com/grpc). Each `Status` message contains +// three pieces of data: error code, error message, and error details. +// +// You can find out more about this error model and how to work with it in +// the +// API Design Guide (https://cloud.google.com/apis/design/errors). type Status struct { // Code: The status code, which should be an enum value of google.rpc.Code. Code int64 `json:"code,omitempty"` - // Details: A list of messages that carry the error details. There is a common - // set of message types for APIs to use. + // Details: A list of messages that carry the error details. There is a common + // set of + // message types for APIs to use. Details []googleapi.RawMessage `json:"details,omitempty"` - // Message: A developer-facing error message, which should be in English. Any - // user-facing error message should be localized and sent in the + // Message: A developer-facing error message, which should be in English. + // Any + // user-facing error message should be localized and sent in + // the // google.rpc.Status.details field, or localized by the client. Message string `json:"message,omitempty"` // ForceSendFields is a list of field names (e.g. "Code") to unconditionally @@ -43820,9 +70985,9 @@ type Status struct { NullFields []string `json:"-"` } -func (s *Status) MarshalJSON() ([]byte, error) { +func (s Status) MarshalJSON() ([]byte, error) { type NoMethod Status - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } // StoragePool: Represents a zonal storage pool resource. @@ -43834,71 +70999,102 @@ type StoragePool struct { // "ADVANCED" - Advanced provisioning "thinly" allocates the related // resource. // "STANDARD" - Standard provisioning allocates the related resource for the - // pool disks' exclusive use. + // pool + // disks' exclusive use. // "UNSPECIFIED" CapacityProvisioningType string `json:"capacityProvisioningType,omitempty"` - // CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text format. + // CreationTimestamp: Output only. [Output Only] Creation timestamp + // inRFC3339 + // text format. CreationTimestamp string `json:"creationTimestamp,omitempty"` // Description: An optional description of this resource. Provide this property - // when you create the resource. + // when you + // create the resource. Description string `json:"description,omitempty"` - // Id: [Output Only] The unique identifier for the resource. This identifier is + // ExapoolProvisionedCapacityGb: Output only. [Output Only] Provisioned + // capacities for each SKU for this Exapool in GiB + ExapoolProvisionedCapacityGb *StoragePoolExapoolProvisionedCapacityGb `json:"exapoolProvisionedCapacityGb,omitempty"` + // Id: Output only. [Output Only] The unique identifier for the resource. This + // identifier is // defined by the server. Id uint64 `json:"id,omitempty,string"` - // Kind: [Output Only] Type of the resource. Always compute#storagePool for - // storage pools. + // Kind: Output only. [Output Only] Type of the resource. Always + // compute#storagePool + // for storage pools. Kind string `json:"kind,omitempty"` // LabelFingerprint: A fingerprint for the labels being applied to this storage - // pool, which is essentially a hash of the labels set used for optimistic - // locking. The fingerprint is initially generated by Compute Engine and - // changes after every request to modify or update labels. You must always - // provide an up-to-date fingerprint hash in order to update or change labels, - // otherwise the request will fail with error 412 conditionNotMet. To see the - // latest fingerprint, make a get() request to retrieve a storage pool. + // pool, which is + // essentially a hash of the labels set used for optimistic locking. + // The + // fingerprint is initially generated by Compute Engine and changes after + // every request to modify or update labels. You must always provide + // an + // up-to-date fingerprint hash in order to update or change labels, + // otherwise the request will fail with error412 conditionNotMet. + // + // To see the latest fingerprint, make a get() request to + // retrieve a storage pool. LabelFingerprint string `json:"labelFingerprint,omitempty"` - // Labels: Labels to apply to this storage pool. These can be later modified by + // Labels: Labels to apply to this storage pool. These can be later modified + // by // the setLabels method. Labels map[string]string `json:"labels,omitempty"` // Name: Name of the resource. Provided by the client when the resource is - // created. The name must be 1-63 characters long, and comply with RFC1035. - // 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. + // created. + // The name must be 1-63 characters long, and comply withRFC1035. + // 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. Name string `json:"name,omitempty"` + // Params: Input only. Additional params passed with the request, but not + // persisted + // as part of resource payload. + Params *StoragePoolParams `json:"params,omitempty"` // PerformanceProvisioningType: Provisioning type of the performance-related - // parameters of the pool, such as throughput and IOPS. + // parameters of the pool, + // such as throughput and IOPS. // // Possible values: // "ADVANCED" - Advanced provisioning "thinly" allocates the related // resource. // "STANDARD" - Standard provisioning allocates the related resource for the - // pool disks' exclusive use. + // pool + // disks' exclusive use. // "UNSPECIFIED" PerformanceProvisioningType string `json:"performanceProvisioningType,omitempty"` - // PoolProvisionedCapacityGb: Size, in GiB, of the storage pool. + // PoolProvisionedCapacityGb: Size of the storage pool in GiB. For more + // information about the size + // limits, see https://cloud.google.com/compute/docs/disks/storage-pools. PoolProvisionedCapacityGb int64 `json:"poolProvisionedCapacityGb,omitempty,string"` // PoolProvisionedIops: Provisioned IOPS of the storage pool. Only relevant if - // the storage pool type is hyperdisk-balanced. + // the storage pool + // type is hyperdisk-balanced. PoolProvisionedIops int64 `json:"poolProvisionedIops,omitempty,string"` - // PoolProvisionedThroughput: Provisioned throughput of the storage pool. Only - // relevant if the storage pool type is hyperdisk-balanced or - // hyperdisk-throughput. + // PoolProvisionedThroughput: Provisioned throughput of the storage pool in + // MiB/s. Only relevant if the + // storage pool type is hyperdisk-balanced or hyperdisk-throughput. PoolProvisionedThroughput int64 `json:"poolProvisionedThroughput,omitempty,string"` - // ResourceStatus: [Output Only] Status information for the storage pool - // resource. + // ResourceStatus: Output only. [Output Only] Status information for the + // storage pool resource. ResourceStatus *StoragePoolResourceStatus `json:"resourceStatus,omitempty"` - // SelfLink: [Output Only] Server-defined fully-qualified URL for this - // resource. + // SelfLink: Output only. [Output Only] Server-defined fully-qualified URL for + // this resource. SelfLink string `json:"selfLink,omitempty"` - // SelfLinkWithId: [Output Only] Server-defined URL for this resource's - // resource id. + // SelfLinkWithId: Output only. [Output Only] Server-defined URL for this + // resource's resource id. SelfLinkWithId string `json:"selfLinkWithId,omitempty"` - // State: [Output Only] The status of storage pool creation. - CREATING: - // Storage pool is provisioning. storagePool. - FAILED: Storage pool creation - // failed. - READY: Storage pool is ready for use. - DELETING: Storage pool is - // deleting. + // State: Output only. [Output Only] The status of storage pool creation. + // + // + // - CREATING: Storage pool is provisioning. + // storagePool. + // - FAILED: Storage pool creation failed. + // - READY: Storage pool is ready for use. + // - DELETING: Storage pool is deleting. // // Possible values: // "CREATING" - StoragePool is provisioning @@ -43906,13 +71102,15 @@ type StoragePool struct { // "FAILED" - StoragePool creation failed. // "READY" - StoragePool is ready for use. State string `json:"state,omitempty"` - // Status: [Output Only] Status information for the storage pool resource. + // Status: Output only. [Output Only] Status information for the storage pool + // resource. Status *StoragePoolResourceStatus `json:"status,omitempty"` // StoragePoolType: Type of the storage pool. StoragePoolType string `json:"storagePoolType,omitempty"` - // Zone: [Output Only] URL of the zone where the storage pool resides. You must - // specify this field as part of the HTTP request URL. It is not settable as a - // field in the request body. + // Zone: Output only. [Output Only] URL of the zone where the storage pool + // resides. + // You must specify this field as part of the HTTP request URL. It is + // not settable as a field in the request body. Zone string `json:"zone,omitempty"` // ServerResponse contains the HTTP response code and headers from the server. @@ -43930,9 +71128,9 @@ type StoragePool struct { NullFields []string `json:"-"` } -func (s *StoragePool) MarshalJSON() ([]byte, error) { +func (s StoragePool) MarshalJSON() ([]byte, error) { type NoMethod StoragePool - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } type StoragePoolAggregatedList struct { @@ -43941,18 +71139,21 @@ type StoragePoolAggregatedList struct { Id string `json:"id,omitempty"` // Items: A list of StoragePoolsScopedList resources. Items map[string]StoragePoolsScopedList `json:"items,omitempty"` - // Kind: [Output Only] Type of resource. Always - // compute#storagePoolAggregatedList for aggregated lists of storage pools. + // Kind: Output only. [Output Only] Type of resource. + // Alwayscompute#storagePoolAggregatedList for aggregated lists of + // storage pools. 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. + // results for + // list requests. If the number of results is larger thanmaxResults, 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"` - // SelfLink: [Output Only] Server-defined URL for this resource. + // SelfLink: Output only. [Output Only] Server-defined URL for this resource. SelfLink string `json:"selfLink,omitempty"` - // Unreachables: [Output Only] Unreachable resources. + // Unreachables: Output only. [Output Only] Unreachable resources. Unreachables []string `json:"unreachables,omitempty"` // Warning: [Output Only] Informational warning message. Warning *StoragePoolAggregatedListWarning `json:"warning,omitempty"` @@ -43972,76 +71173,98 @@ type StoragePoolAggregatedList struct { NullFields []string `json:"-"` } -func (s *StoragePoolAggregatedList) MarshalJSON() ([]byte, error) { +func (s StoragePoolAggregatedList) MarshalJSON() ([]byte, error) { type NoMethod StoragePoolAggregatedList - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } // StoragePoolAggregatedListWarning: [Output Only] Informational warning // message. type StoragePoolAggregatedListWarning 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. + // 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" - Warning about failed cleanup of transient changes made - // by a failed operation. + // by a failed + // operation. // "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was created. // "DEPRECATED_TYPE_USED" - When deploying and at least one of the resources - // has a type marked as deprecated + // has a type marked as + // deprecated // "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk that is // larger than image size. // "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the - // resources has a type marked as experimental + // resources has a type marked as + // experimental // "EXTERNAL_API_WARNING" - Warning that is present in an external api call // "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been - // overridden. Deprecated unused field. + // overridden. + // Deprecated unused field. // "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an injected // kernel, which is deprecated. // "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB" - A WEIGHTED_MAGLEV backend - // service is associated with a health check that is not of type - // HTTP/HTTPS/HTTP2. + // service is associated with a health check that is + // not of type HTTP/HTTPS/HTTP2. // "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a // exceedingly large number of resources // "LIST_OVERHEAD_QUOTA_EXCEED" - Resource can't be retrieved due to list - // overhead quota exceed which captures the amount of resources filtered out by + // overhead quota exceed + // which captures the amount of resources filtered out by // user-defined list filter. // "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is not - // assigned to an instance on the network. + // assigned to an instance on the + // network. // "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot ip // forward. // "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE" - The route's nextHopInstance - // URL refers to an instance that does not have an ipv6 interface on the same - // network as the route. + // URL refers to an instance that does not have an + // ipv6 interface on the same network as the route. // "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL refers to // an instance that does not exist. // "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance URL - // refers to an instance that is not on the same network as the route. + // refers to an instance that is not on the + // same network as the route. // "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not have a // status of RUNNING. // "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to continue - // the process despite the mentioned error. + // the process despite + // the mentioned error. // "NO_RESULTS_ON_PAGE" - No results are present on a particular list page. // "PARTIAL_SUCCESS" - Success is reported, but some results may be missing // due to errors + // "QUOTA_INFO_UNAVAILABLE" - Quota information is not available to client + // requests (e.g: + // regions.list). // "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource that - // requires a TOS they have not accepted. + // requires a TOS they have not + // accepted. // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a resource is // in use. // "RESOURCE_NOT_DELETED" - One or more of the resources set to auto-delete - // could not be deleted because they were in use. + // could not be deleted + // because they were in use. // "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is // ignored. // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in instance - // group manager is valid as such, but its application does not make a lot of - // sense, because it allows only single instance in instance group. + // group manager is valid as such, but + // its application does not make a lot of sense, because it allows only + // single instance in instance group. // "UNDECLARED_PROPERTIES" - When undeclared properties in the schema are // present // "UNREACHABLE" - A given scope cannot be reached. 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: [Output Only] Metadata about this warning in key: + // value format. For example: + // + // "data": [ + // { + // "key": "scope", + // "value": "zones/us-east1-d" + // } Data []*StoragePoolAggregatedListWarningData `json:"data,omitempty"` // Message: [Output Only] A human-readable description of the warning code. Message string `json:"message,omitempty"` @@ -44058,19 +71281,22 @@ type StoragePoolAggregatedListWarning struct { NullFields []string `json:"-"` } -func (s *StoragePoolAggregatedListWarning) MarshalJSON() ([]byte, error) { +func (s StoragePoolAggregatedListWarning) MarshalJSON() ([]byte, error) { type NoMethod StoragePoolAggregatedListWarning - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } type StoragePoolAggregatedListWarningData 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: [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"` @@ -44087,31 +71313,36 @@ type StoragePoolAggregatedListWarningData struct { NullFields []string `json:"-"` } -func (s *StoragePoolAggregatedListWarningData) MarshalJSON() ([]byte, error) { +func (s StoragePoolAggregatedListWarningData) MarshalJSON() ([]byte, error) { type NoMethod StoragePoolAggregatedListWarningData - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } type StoragePoolDisk struct { - // AttachedInstances: [Output Only] Instances this disk is attached to. + // AttachedInstances: Output only. [Output Only] Instances this disk is + // attached to. AttachedInstances []string `json:"attachedInstances,omitempty"` - // CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text format. + // CreationTimestamp: Output only. [Output Only] Creation timestamp + // inRFC3339 + // text format. CreationTimestamp string `json:"creationTimestamp,omitempty"` - // Disk: [Output Only] The URL of the disk. + // Disk: Output only. [Output Only] The URL of the disk. Disk string `json:"disk,omitempty"` - // Name: [Output Only] The name of the disk. + // Name: Output only. [Output Only] The name of the disk. Name string `json:"name,omitempty"` - // ProvisionedIops: [Output Only] The number of IOPS provisioned for the disk. + // ProvisionedIops: Output only. [Output Only] The number of IOPS provisioned + // for the disk. ProvisionedIops int64 `json:"provisionedIops,omitempty,string"` - // ProvisionedThroughput: [Output Only] The throughput provisioned for the - // disk. + // ProvisionedThroughput: Output only. [Output Only] The throughput provisioned + // for the disk. ProvisionedThroughput int64 `json:"provisionedThroughput,omitempty,string"` - // ResourcePolicies: [Output Only] Resource policies applied to disk for - // automatic snapshot creations. + // ResourcePolicies: Output only. [Output Only] Resource policies applied to + // disk for automatic snapshot + // creations. ResourcePolicies []string `json:"resourcePolicies,omitempty"` - // SizeGb: [Output Only] The disk size, in GB. + // SizeGb: Output only. [Output Only] The disk size, in GB. SizeGb int64 `json:"sizeGb,omitempty,string"` - // Status: [Output Only] The disk status. + // Status: Output only. [Output Only] The disk status. // // Possible values: // "CREATING" - Disk is provisioning @@ -44120,11 +71351,12 @@ type StoragePoolDisk struct { // "READY" - Disk is ready for use. // "RESTORING" - Source data is being copied into the disk. // "UNAVAILABLE" - Disk is currently unavailable and cannot be accessed, - // attached or detached. + // attached or + // detached. Status string `json:"status,omitempty"` - // Type: [Output Only] The disk type. + // Type: Output only. [Output Only] The disk type. Type string `json:"type,omitempty"` - // UsedBytes: [Output Only] Amount of disk space used. + // UsedBytes: Output only. [Output Only] Amount of disk space used. UsedBytes int64 `json:"usedBytes,omitempty,string"` // ForceSendFields is a list of field names (e.g. "AttachedInstances") to // unconditionally include in API requests. By default, fields with empty or @@ -44139,9 +71371,39 @@ type StoragePoolDisk struct { NullFields []string `json:"-"` } -func (s *StoragePoolDisk) MarshalJSON() ([]byte, error) { +func (s StoragePoolDisk) MarshalJSON() ([]byte, error) { type NoMethod StoragePoolDisk - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +// StoragePoolExapoolProvisionedCapacityGb: Exapool provisioned capacities for +// each SKU type +type StoragePoolExapoolProvisionedCapacityGb struct { + // CapacityOptimized: Size, in GiB, of provisioned capacity-optimized capacity + // for this Exapool + CapacityOptimized int64 `json:"capacityOptimized,omitempty,string"` + // ReadOptimized: Size, in GiB, of provisioned read-optimized capacity for this + // Exapool + ReadOptimized int64 `json:"readOptimized,omitempty,string"` + // WriteOptimized: Size, in GiB, of provisioned write-optimized capacity for + // this Exapool + WriteOptimized int64 `json:"writeOptimized,omitempty,string"` + // ForceSendFields is a list of field names (e.g. "CapacityOptimized") to + // unconditionally include in API requests. By default, fields with empty or + // default values are omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + ForceSendFields []string `json:"-"` + // NullFields is a list of field names (e.g. "CapacityOptimized") to include in + // API requests with the JSON null value. By default, fields with empty values + // are omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s StoragePoolExapoolProvisionedCapacityGb) MarshalJSON() ([]byte, error) { + type NoMethod StoragePoolExapoolProvisionedCapacityGb + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } // StoragePoolList: A list of StoragePool resources. @@ -44151,19 +71413,23 @@ type StoragePoolList struct { Id string `json:"id,omitempty"` // Items: A list of StoragePool resources. Items []*StoragePool `json:"items,omitempty"` - // Kind: [Output Only] Type of resource. Always compute#storagePoolList for - // lists of storagePools. + // Kind: Output only. [Output Only] Type of resource. Always + // compute#storagePoolList + // for lists of storagePools. 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. + // results for + // list requests. If the number of results is larger thanmaxResults, 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"` - // SelfLink: [Output Only] Server-defined URL for this resource. + // SelfLink: Output only. [Output Only] Server-defined URL for this resource. SelfLink string `json:"selfLink,omitempty"` - // Unreachables: [Output Only] Unreachable resources. end_interface: - // MixerListResponseWithEtagBuilder + // Unreachables: Output only. [Output Only] Unreachable + // resources. + // end_interface: MixerListResponseWithEtagBuilder Unreachables []string `json:"unreachables,omitempty"` // Warning: [Output Only] Informational warning message. Warning *StoragePoolListWarning `json:"warning,omitempty"` @@ -44183,75 +71449,97 @@ type StoragePoolList struct { NullFields []string `json:"-"` } -func (s *StoragePoolList) MarshalJSON() ([]byte, error) { +func (s StoragePoolList) MarshalJSON() ([]byte, error) { type NoMethod StoragePoolList - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } // StoragePoolListWarning: [Output Only] Informational warning message. type StoragePoolListWarning 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. + // 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" - Warning about failed cleanup of transient changes made - // by a failed operation. + // by a failed + // operation. // "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was created. // "DEPRECATED_TYPE_USED" - When deploying and at least one of the resources - // has a type marked as deprecated + // has a type marked as + // deprecated // "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk that is // larger than image size. // "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the - // resources has a type marked as experimental + // resources has a type marked as + // experimental // "EXTERNAL_API_WARNING" - Warning that is present in an external api call // "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been - // overridden. Deprecated unused field. + // overridden. + // Deprecated unused field. // "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an injected // kernel, which is deprecated. // "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB" - A WEIGHTED_MAGLEV backend - // service is associated with a health check that is not of type - // HTTP/HTTPS/HTTP2. + // service is associated with a health check that is + // not of type HTTP/HTTPS/HTTP2. // "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a // exceedingly large number of resources // "LIST_OVERHEAD_QUOTA_EXCEED" - Resource can't be retrieved due to list - // overhead quota exceed which captures the amount of resources filtered out by + // overhead quota exceed + // which captures the amount of resources filtered out by // user-defined list filter. // "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is not - // assigned to an instance on the network. + // assigned to an instance on the + // network. // "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot ip // forward. // "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE" - The route's nextHopInstance - // URL refers to an instance that does not have an ipv6 interface on the same - // network as the route. + // URL refers to an instance that does not have an + // ipv6 interface on the same network as the route. // "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL refers to // an instance that does not exist. // "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance URL - // refers to an instance that is not on the same network as the route. + // refers to an instance that is not on the + // same network as the route. // "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not have a // status of RUNNING. // "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to continue - // the process despite the mentioned error. + // the process despite + // the mentioned error. // "NO_RESULTS_ON_PAGE" - No results are present on a particular list page. // "PARTIAL_SUCCESS" - Success is reported, but some results may be missing // due to errors + // "QUOTA_INFO_UNAVAILABLE" - Quota information is not available to client + // requests (e.g: + // regions.list). // "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource that - // requires a TOS they have not accepted. + // requires a TOS they have not + // accepted. // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a resource is // in use. // "RESOURCE_NOT_DELETED" - One or more of the resources set to auto-delete - // could not be deleted because they were in use. + // could not be deleted + // because they were in use. // "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is // ignored. // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in instance - // group manager is valid as such, but its application does not make a lot of - // sense, because it allows only single instance in instance group. + // group manager is valid as such, but + // its application does not make a lot of sense, because it allows only + // single instance in instance group. // "UNDECLARED_PROPERTIES" - When undeclared properties in the schema are // present // "UNREACHABLE" - A given scope cannot be reached. 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: [Output Only] Metadata about this warning in key: + // value format. For example: + // + // "data": [ + // { + // "key": "scope", + // "value": "zones/us-east1-d" + // } Data []*StoragePoolListWarningData `json:"data,omitempty"` // Message: [Output Only] A human-readable description of the warning code. Message string `json:"message,omitempty"` @@ -44268,19 +71556,22 @@ type StoragePoolListWarning struct { NullFields []string `json:"-"` } -func (s *StoragePoolListWarning) MarshalJSON() ([]byte, error) { +func (s StoragePoolListWarning) MarshalJSON() ([]byte, error) { type NoMethod StoragePoolListWarning - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } type StoragePoolListWarningData 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: [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"` @@ -44297,32 +71588,37 @@ type StoragePoolListWarningData struct { NullFields []string `json:"-"` } -func (s *StoragePoolListWarningData) MarshalJSON() ([]byte, error) { +func (s StoragePoolListWarningData) MarshalJSON() ([]byte, error) { type NoMethod StoragePoolListWarningData - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } type StoragePoolListDisks struct { Etag string `json:"etag,omitempty"` - // Id: [Output Only] Unique identifier for the resource; defined by the server. + // Id: Output only. [Output Only] Unique identifier for the resource; defined + // by the server. Id string `json:"id,omitempty"` // Items: A list of StoragePoolDisk resources. Items []*StoragePoolDisk `json:"items,omitempty"` - // Kind: [Output Only] Type of resource. Always compute#storagePoolListDisks - // for lists of disks in a storagePool. + // Kind: Output only. [Output Only] Type of resource. + // Alwayscompute#storagePoolListDisks for lists of disks in a + // storagePool. 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: Output only. [Output Only] This token allows you to get the + // next page of results for + // list requests. If the number of results is larger thanmaxResults, 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"` - // SelfLink: [Output Only] Server-defined URL for this resource. + // SelfLink: Output only. [Output Only] Server-defined URL for this resource. SelfLink string `json:"selfLink,omitempty"` - // Unreachables: [Output Only] Unreachable resources. end_interface: - // MixerListResponseWithEtagBuilder + // Unreachables: Output only. [Output Only] Unreachable + // resources. + // end_interface: MixerListResponseWithEtagBuilder Unreachables []string `json:"unreachables,omitempty"` - // Warning: [Output Only] Informational warning message. + // Warning: Output only. [Output Only] Informational warning message. Warning *StoragePoolListDisksWarning `json:"warning,omitempty"` // ServerResponse contains the HTTP response code and headers from the server. @@ -44340,75 +71636,98 @@ type StoragePoolListDisks struct { NullFields []string `json:"-"` } -func (s *StoragePoolListDisks) MarshalJSON() ([]byte, error) { +func (s StoragePoolListDisks) MarshalJSON() ([]byte, error) { type NoMethod StoragePoolListDisks - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -// StoragePoolListDisksWarning: [Output Only] Informational warning message. +// StoragePoolListDisksWarning: Output only. [Output Only] Informational +// warning message. type StoragePoolListDisksWarning 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. + // 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" - Warning about failed cleanup of transient changes made - // by a failed operation. + // by a failed + // operation. // "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was created. // "DEPRECATED_TYPE_USED" - When deploying and at least one of the resources - // has a type marked as deprecated + // has a type marked as + // deprecated // "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk that is // larger than image size. // "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the - // resources has a type marked as experimental + // resources has a type marked as + // experimental // "EXTERNAL_API_WARNING" - Warning that is present in an external api call // "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been - // overridden. Deprecated unused field. + // overridden. + // Deprecated unused field. // "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an injected // kernel, which is deprecated. // "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB" - A WEIGHTED_MAGLEV backend - // service is associated with a health check that is not of type - // HTTP/HTTPS/HTTP2. + // service is associated with a health check that is + // not of type HTTP/HTTPS/HTTP2. // "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a // exceedingly large number of resources // "LIST_OVERHEAD_QUOTA_EXCEED" - Resource can't be retrieved due to list - // overhead quota exceed which captures the amount of resources filtered out by + // overhead quota exceed + // which captures the amount of resources filtered out by // user-defined list filter. // "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is not - // assigned to an instance on the network. + // assigned to an instance on the + // network. // "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot ip // forward. // "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE" - The route's nextHopInstance - // URL refers to an instance that does not have an ipv6 interface on the same - // network as the route. + // URL refers to an instance that does not have an + // ipv6 interface on the same network as the route. // "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL refers to // an instance that does not exist. // "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance URL - // refers to an instance that is not on the same network as the route. + // refers to an instance that is not on the + // same network as the route. // "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not have a // status of RUNNING. // "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to continue - // the process despite the mentioned error. + // the process despite + // the mentioned error. // "NO_RESULTS_ON_PAGE" - No results are present on a particular list page. // "PARTIAL_SUCCESS" - Success is reported, but some results may be missing // due to errors + // "QUOTA_INFO_UNAVAILABLE" - Quota information is not available to client + // requests (e.g: + // regions.list). // "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource that - // requires a TOS they have not accepted. + // requires a TOS they have not + // accepted. // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a resource is // in use. // "RESOURCE_NOT_DELETED" - One or more of the resources set to auto-delete - // could not be deleted because they were in use. + // could not be deleted + // because they were in use. // "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is // ignored. // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in instance - // group manager is valid as such, but its application does not make a lot of - // sense, because it allows only single instance in instance group. + // group manager is valid as such, but + // its application does not make a lot of sense, because it allows only + // single instance in instance group. // "UNDECLARED_PROPERTIES" - When undeclared properties in the schema are // present // "UNREACHABLE" - A given scope cannot be reached. 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: [Output Only] Metadata about this warning in key: + // value format. For example: + // + // "data": [ + // { + // "key": "scope", + // "value": "zones/us-east1-d" + // } Data []*StoragePoolListDisksWarningData `json:"data,omitempty"` // Message: [Output Only] A human-readable description of the warning code. Message string `json:"message,omitempty"` @@ -44425,19 +71744,22 @@ type StoragePoolListDisksWarning struct { NullFields []string `json:"-"` } -func (s *StoragePoolListDisksWarning) MarshalJSON() ([]byte, error) { +func (s StoragePoolListDisksWarning) MarshalJSON() ([]byte, error) { type NoMethod StoragePoolListDisksWarning - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } type StoragePoolListDisksWarningData 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: [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"` @@ -44454,45 +71776,99 @@ type StoragePoolListDisksWarningData struct { NullFields []string `json:"-"` } -func (s *StoragePoolListDisksWarningData) MarshalJSON() ([]byte, error) { +func (s StoragePoolListDisksWarningData) MarshalJSON() ([]byte, error) { type NoMethod StoragePoolListDisksWarningData - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +// StoragePoolParams: Additional storage pool params. +type StoragePoolParams struct { + // ResourceManagerTags: Input only. Resource manager tags to be bound to the + // storage pool. Tag keys and values + // have the same definition as resource + // manager tags. Keys and values can be either in numeric format, + // such as `tagKeys/{tag_key_id}` and `tagValues/{tag_value_id}` or + // in + // namespaced format such as `{org_id|project_id}/{tag_key_short_name}` + // and + // `{tag_value_short_name}`. The field is ignored (both PUT & + // PATCH) when empty. + ResourceManagerTags map[string]string `json:"resourceManagerTags,omitempty"` + // ForceSendFields is a list of field names (e.g. "ResourceManagerTags") to + // unconditionally include in API requests. By default, fields with empty or + // default values are omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + ForceSendFields []string `json:"-"` + // NullFields is a list of field names (e.g. "ResourceManagerTags") to include + // in API requests with the JSON null value. By default, fields with empty + // values are omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s StoragePoolParams) MarshalJSON() ([]byte, error) { + type NoMethod StoragePoolParams + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } // StoragePoolResourceStatus: [Output Only] Contains output only fields. type StoragePoolResourceStatus struct { // DiskCount: [Output Only] Number of disks used. DiskCount int64 `json:"diskCount,omitempty,string"` - // LastResizeTimestamp: [Output Only] Timestamp of the last successful resize - // in RFC3339 text format. + // ExapoolMaxReadIops: Output only. [Output Only] Maximum allowed read IOPS for + // this Exapool. + ExapoolMaxReadIops int64 `json:"exapoolMaxReadIops,omitempty,string"` + // ExapoolMaxReadThroughput: Output only. [Output Only] Maximum allowed read + // throughput in MiB/s for + // this Exapool. + ExapoolMaxReadThroughput int64 `json:"exapoolMaxReadThroughput,omitempty,string"` + // ExapoolMaxWriteIops: Output only. [Output Only] Maximum allowed write IOPS + // for this Exapool. + ExapoolMaxWriteIops int64 `json:"exapoolMaxWriteIops,omitempty,string"` + // ExapoolMaxWriteThroughput: Output only. [Output Only] Maximum allowed write + // throughput in MiB/s + // for this Exapool. + ExapoolMaxWriteThroughput int64 `json:"exapoolMaxWriteThroughput,omitempty,string"` + // LastResizeTimestamp: Output only. [Output Only] Timestamp of the last + // successful resize inRFC3339 text format. LastResizeTimestamp string `json:"lastResizeTimestamp,omitempty"` // MaxTotalProvisionedDiskCapacityGb: [Output Only] Maximum allowed aggregate - // disk size in gigabytes. + // disk size in GiB. MaxTotalProvisionedDiskCapacityGb int64 `json:"maxTotalProvisionedDiskCapacityGb,omitempty,string"` // PoolUsedCapacityBytes: [Output Only] Space used by data stored in disks - // within the storage pool (in bytes). This will reflect the total number of - // bytes written to the disks in the pool, in contrast to the capacity of those - // disks. + // within the storage pool + // (in bytes). This will reflect the total number of bytes written to the + // disks in the pool, in contrast to the capacity of those disks. PoolUsedCapacityBytes int64 `json:"poolUsedCapacityBytes,omitempty,string"` - // PoolUsedIops: Sum of all the disks' provisioned IOPS, minus some amount that - // is allowed per disk that is not counted towards pool's IOPS capacity. + // PoolUsedIops: [Output Only] Sum of all the disks' provisioned IOPS, minus + // some amount + // that is allowed per disk that is not counted towards pool's IOPS + // capacity. For more information, + // see + // https://cloud.google.com/compute/docs/disks/storage-pools. PoolUsedIops int64 `json:"poolUsedIops,omitempty,string"` // PoolUsedThroughput: [Output Only] Sum of all the disks' provisioned - // throughput in MB/s. + // throughput in MiB/s. PoolUsedThroughput int64 `json:"poolUsedThroughput,omitempty,string"` // PoolUserWrittenBytes: [Output Only] Amount of data written into the pool, - // before it is compacted. + // before it is + // compacted. PoolUserWrittenBytes int64 `json:"poolUserWrittenBytes,omitempty,string"` - // TotalProvisionedDiskCapacityGb: [Output Only] Sum of all the capacity - // provisioned in disks in this storage pool. A disk's provisioned capacity is - // the same as its total capacity. + // TotalProvisionedDiskCapacityGb: [Output Only] Sum of all the disks' + // provisioned capacity (in GiB) in + // this storage pool. A disk's provisioned capacity is the same as its + // total + // capacity. TotalProvisionedDiskCapacityGb int64 `json:"totalProvisionedDiskCapacityGb,omitempty,string"` // TotalProvisionedDiskIops: [Output Only] Sum of all the disks' provisioned // IOPS. TotalProvisionedDiskIops int64 `json:"totalProvisionedDiskIops,omitempty,string"` // TotalProvisionedDiskThroughput: [Output Only] Sum of all the disks' - // provisioned throughput in MB/s, minus some amount that is allowed per disk - // that is not counted towards pool's throughput capacity. + // provisioned throughput in MiB/s, + // minus some amount that is allowed per disk that is not counted + // towards + // pool's throughput capacity. TotalProvisionedDiskThroughput int64 `json:"totalProvisionedDiskThroughput,omitempty,string"` // ForceSendFields is a list of field names (e.g. "DiskCount") to // unconditionally include in API requests. By default, fields with empty or @@ -44507,24 +71883,27 @@ type StoragePoolResourceStatus struct { NullFields []string `json:"-"` } -func (s *StoragePoolResourceStatus) MarshalJSON() ([]byte, error) { +func (s StoragePoolResourceStatus) MarshalJSON() ([]byte, error) { type NoMethod StoragePoolResourceStatus - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } type StoragePoolType struct { - // CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text format. + // CreationTimestamp: [Output Only] Creation timestamp inRFC3339 + // text format. CreationTimestamp string `json:"creationTimestamp,omitempty"` // Deprecated -- [Output Only] The deprecation status associated with this - // storage pool type. + // storage pool + // type. Deprecated *DeprecationStatus `json:"deprecated,omitempty"` // Description: [Output Only] An optional description of this resource. Description string `json:"description,omitempty"` - // Id: [Output Only] The unique identifier for the resource. This identifier is + // Id: [Output Only] The unique identifier for the resource. This identifier + // is // defined by the server. Id uint64 `json:"id,omitempty,string"` - // Kind: [Output Only] Type of the resource. Always compute#storagePoolType for - // storage pool types. + // Kind: Output only. [Output Only] Type of the resource. + // Alwayscompute#storagePoolType for storage pool types. Kind string `json:"kind,omitempty"` // MaxPoolProvisionedCapacityGb: [Output Only] Maximum storage pool size in GB. MaxPoolProvisionedCapacityGb int64 `json:"maxPoolProvisionedCapacityGb,omitempty,string"` @@ -44539,21 +71918,22 @@ type StoragePoolType struct { // MinPoolProvisionedThroughput: [Output Only] Minimum provisioned throughput. MinPoolProvisionedThroughput int64 `json:"minPoolProvisionedThroughput,omitempty,string"` // MinSizeGb: [Deprecated] This field is deprecated. Use - // minPoolProvisionedCapacityGb instead. + // minPoolProvisionedCapacityGb + // instead. MinSizeGb int64 `json:"minSizeGb,omitempty,string"` // Name: [Output Only] Name of the resource. Name string `json:"name,omitempty"` // SelfLink: [Output Only] Server-defined URL for the resource. SelfLink string `json:"selfLink,omitempty"` - // SelfLinkWithId: [Output Only] Server-defined URL for this resource with the - // resource id. + // SelfLinkWithId: Output only. [Output Only] Server-defined URL for this + // resource with the resource id. SelfLinkWithId string `json:"selfLinkWithId,omitempty"` // SupportedDiskTypes: [Output Only] The list of disk types supported in this // storage pool type. SupportedDiskTypes []string `json:"supportedDiskTypes,omitempty"` - // Zone: [Output Only] URL of the zone where the storage pool type resides. You - // must specify this field as part of the HTTP request URL. It is not settable - // as a field in the request body. + // Zone: [Output Only] URL of the zone where the storage pool type resides. + // You must specify this field as part of the HTTP request URL. It is + // not settable as a field in the request body. Zone string `json:"zone,omitempty"` // ServerResponse contains the HTTP response code and headers from the server. @@ -44571,9 +71951,9 @@ type StoragePoolType struct { NullFields []string `json:"-"` } -func (s *StoragePoolType) MarshalJSON() ([]byte, error) { +func (s StoragePoolType) MarshalJSON() ([]byte, error) { type NoMethod StoragePoolType - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } type StoragePoolTypeAggregatedList struct { @@ -44581,16 +71961,18 @@ type StoragePoolTypeAggregatedList struct { Id string `json:"id,omitempty"` // Items: A list of StoragePoolTypesScopedList resources. Items map[string]StoragePoolTypesScopedList `json:"items,omitempty"` - // Kind: [Output Only] Type of resource. Always - // compute#storagePoolTypeAggregatedList . + // Kind: Output only. [Output Only] Type of resource. + // Alwayscompute#storagePoolTypeAggregatedList. 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. + // results for + // list requests. If the number of results is larger thanmaxResults, 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"` - // SelfLink: [Output Only] Server-defined URL for this resource. + // SelfLink: Output only. [Output Only] Server-defined URL for this resource. SelfLink string `json:"selfLink,omitempty"` // Warning: [Output Only] Informational warning message. Warning *StoragePoolTypeAggregatedListWarning `json:"warning,omitempty"` @@ -44610,76 +71992,98 @@ type StoragePoolTypeAggregatedList struct { NullFields []string `json:"-"` } -func (s *StoragePoolTypeAggregatedList) MarshalJSON() ([]byte, error) { +func (s StoragePoolTypeAggregatedList) MarshalJSON() ([]byte, error) { type NoMethod StoragePoolTypeAggregatedList - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } // StoragePoolTypeAggregatedListWarning: [Output Only] Informational warning // message. type StoragePoolTypeAggregatedListWarning 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. + // 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" - Warning about failed cleanup of transient changes made - // by a failed operation. + // by a failed + // operation. // "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was created. // "DEPRECATED_TYPE_USED" - When deploying and at least one of the resources - // has a type marked as deprecated + // has a type marked as + // deprecated // "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk that is // larger than image size. // "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the - // resources has a type marked as experimental + // resources has a type marked as + // experimental // "EXTERNAL_API_WARNING" - Warning that is present in an external api call // "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been - // overridden. Deprecated unused field. + // overridden. + // Deprecated unused field. // "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an injected // kernel, which is deprecated. // "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB" - A WEIGHTED_MAGLEV backend - // service is associated with a health check that is not of type - // HTTP/HTTPS/HTTP2. + // service is associated with a health check that is + // not of type HTTP/HTTPS/HTTP2. // "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a // exceedingly large number of resources // "LIST_OVERHEAD_QUOTA_EXCEED" - Resource can't be retrieved due to list - // overhead quota exceed which captures the amount of resources filtered out by + // overhead quota exceed + // which captures the amount of resources filtered out by // user-defined list filter. // "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is not - // assigned to an instance on the network. + // assigned to an instance on the + // network. // "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot ip // forward. // "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE" - The route's nextHopInstance - // URL refers to an instance that does not have an ipv6 interface on the same - // network as the route. + // URL refers to an instance that does not have an + // ipv6 interface on the same network as the route. // "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL refers to // an instance that does not exist. // "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance URL - // refers to an instance that is not on the same network as the route. + // refers to an instance that is not on the + // same network as the route. // "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not have a // status of RUNNING. // "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to continue - // the process despite the mentioned error. + // the process despite + // the mentioned error. // "NO_RESULTS_ON_PAGE" - No results are present on a particular list page. // "PARTIAL_SUCCESS" - Success is reported, but some results may be missing // due to errors + // "QUOTA_INFO_UNAVAILABLE" - Quota information is not available to client + // requests (e.g: + // regions.list). // "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource that - // requires a TOS they have not accepted. + // requires a TOS they have not + // accepted. // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a resource is // in use. // "RESOURCE_NOT_DELETED" - One or more of the resources set to auto-delete - // could not be deleted because they were in use. + // could not be deleted + // because they were in use. // "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is // ignored. // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in instance - // group manager is valid as such, but its application does not make a lot of - // sense, because it allows only single instance in instance group. + // group manager is valid as such, but + // its application does not make a lot of sense, because it allows only + // single instance in instance group. // "UNDECLARED_PROPERTIES" - When undeclared properties in the schema are // present // "UNREACHABLE" - A given scope cannot be reached. 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: [Output Only] Metadata about this warning in key: + // value format. For example: + // + // "data": [ + // { + // "key": "scope", + // "value": "zones/us-east1-d" + // } Data []*StoragePoolTypeAggregatedListWarningData `json:"data,omitempty"` // Message: [Output Only] A human-readable description of the warning code. Message string `json:"message,omitempty"` @@ -44696,19 +72100,22 @@ type StoragePoolTypeAggregatedListWarning struct { NullFields []string `json:"-"` } -func (s *StoragePoolTypeAggregatedListWarning) MarshalJSON() ([]byte, error) { +func (s StoragePoolTypeAggregatedListWarning) MarshalJSON() ([]byte, error) { type NoMethod StoragePoolTypeAggregatedListWarning - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } type StoragePoolTypeAggregatedListWarningData 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: [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"` @@ -44725,9 +72132,9 @@ type StoragePoolTypeAggregatedListWarningData struct { NullFields []string `json:"-"` } -func (s *StoragePoolTypeAggregatedListWarningData) MarshalJSON() ([]byte, error) { +func (s StoragePoolTypeAggregatedListWarningData) MarshalJSON() ([]byte, error) { type NoMethod StoragePoolTypeAggregatedListWarningData - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } // StoragePoolTypeList: Contains a list of storage pool types. @@ -44736,16 +72143,18 @@ type StoragePoolTypeList struct { Id string `json:"id,omitempty"` // Items: A list of StoragePoolType resources. Items []*StoragePoolType `json:"items,omitempty"` - // Kind: [Output Only] Type of resource. Always compute#storagePoolTypeList for - // storage pool types. + // Kind: Output only. [Output Only] Type of resource. + // Alwayscompute#storagePoolTypeList for storage pool types. 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. + // results for + // list requests. If the number of results is larger thanmaxResults, 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"` - // SelfLink: [Output Only] Server-defined URL for this resource. + // SelfLink: Output only. [Output Only] Server-defined URL for this resource. SelfLink string `json:"selfLink,omitempty"` // Warning: [Output Only] Informational warning message. Warning *StoragePoolTypeListWarning `json:"warning,omitempty"` @@ -44765,75 +72174,97 @@ type StoragePoolTypeList struct { NullFields []string `json:"-"` } -func (s *StoragePoolTypeList) MarshalJSON() ([]byte, error) { +func (s StoragePoolTypeList) MarshalJSON() ([]byte, error) { type NoMethod StoragePoolTypeList - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } // StoragePoolTypeListWarning: [Output Only] Informational warning message. type StoragePoolTypeListWarning 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. + // 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" - Warning about failed cleanup of transient changes made - // by a failed operation. + // by a failed + // operation. // "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was created. // "DEPRECATED_TYPE_USED" - When deploying and at least one of the resources - // has a type marked as deprecated + // has a type marked as + // deprecated // "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk that is // larger than image size. // "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the - // resources has a type marked as experimental + // resources has a type marked as + // experimental // "EXTERNAL_API_WARNING" - Warning that is present in an external api call // "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been - // overridden. Deprecated unused field. + // overridden. + // Deprecated unused field. // "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an injected // kernel, which is deprecated. // "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB" - A WEIGHTED_MAGLEV backend - // service is associated with a health check that is not of type - // HTTP/HTTPS/HTTP2. + // service is associated with a health check that is + // not of type HTTP/HTTPS/HTTP2. // "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a // exceedingly large number of resources // "LIST_OVERHEAD_QUOTA_EXCEED" - Resource can't be retrieved due to list - // overhead quota exceed which captures the amount of resources filtered out by + // overhead quota exceed + // which captures the amount of resources filtered out by // user-defined list filter. // "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is not - // assigned to an instance on the network. + // assigned to an instance on the + // network. // "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot ip // forward. // "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE" - The route's nextHopInstance - // URL refers to an instance that does not have an ipv6 interface on the same - // network as the route. + // URL refers to an instance that does not have an + // ipv6 interface on the same network as the route. // "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL refers to // an instance that does not exist. // "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance URL - // refers to an instance that is not on the same network as the route. + // refers to an instance that is not on the + // same network as the route. // "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not have a // status of RUNNING. // "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to continue - // the process despite the mentioned error. + // the process despite + // the mentioned error. // "NO_RESULTS_ON_PAGE" - No results are present on a particular list page. // "PARTIAL_SUCCESS" - Success is reported, but some results may be missing // due to errors + // "QUOTA_INFO_UNAVAILABLE" - Quota information is not available to client + // requests (e.g: + // regions.list). // "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource that - // requires a TOS they have not accepted. + // requires a TOS they have not + // accepted. // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a resource is // in use. // "RESOURCE_NOT_DELETED" - One or more of the resources set to auto-delete - // could not be deleted because they were in use. + // could not be deleted + // because they were in use. // "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is // ignored. // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in instance - // group manager is valid as such, but its application does not make a lot of - // sense, because it allows only single instance in instance group. + // group manager is valid as such, but + // its application does not make a lot of sense, because it allows only + // single instance in instance group. // "UNDECLARED_PROPERTIES" - When undeclared properties in the schema are // present // "UNREACHABLE" - A given scope cannot be reached. 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: [Output Only] Metadata about this warning in key: + // value format. For example: + // + // "data": [ + // { + // "key": "scope", + // "value": "zones/us-east1-d" + // } Data []*StoragePoolTypeListWarningData `json:"data,omitempty"` // Message: [Output Only] A human-readable description of the warning code. Message string `json:"message,omitempty"` @@ -44850,19 +72281,22 @@ type StoragePoolTypeListWarning struct { NullFields []string `json:"-"` } -func (s *StoragePoolTypeListWarning) MarshalJSON() ([]byte, error) { +func (s StoragePoolTypeListWarning) MarshalJSON() ([]byte, error) { type NoMethod StoragePoolTypeListWarning - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } type StoragePoolTypeListWarningData 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: [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"` @@ -44879,9 +72313,9 @@ type StoragePoolTypeListWarningData struct { NullFields []string `json:"-"` } -func (s *StoragePoolTypeListWarningData) MarshalJSON() ([]byte, error) { +func (s StoragePoolTypeListWarningData) MarshalJSON() ([]byte, error) { type NoMethod StoragePoolTypeListWarningData - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } type StoragePoolTypesScopedList struct { @@ -44889,7 +72323,8 @@ type StoragePoolTypesScopedList struct { // this scope. StoragePoolTypes []*StoragePoolType `json:"storagePoolTypes,omitempty"` // Warning: [Output Only] Informational warning which replaces the list of - // storage pool types when the list is empty. + // storage pool + // types when the list is empty. Warning *StoragePoolTypesScopedListWarning `json:"warning,omitempty"` // ForceSendFields is a list of field names (e.g. "StoragePoolTypes") to // unconditionally include in API requests. By default, fields with empty or @@ -44904,76 +72339,99 @@ type StoragePoolTypesScopedList struct { NullFields []string `json:"-"` } -func (s *StoragePoolTypesScopedList) MarshalJSON() ([]byte, error) { +func (s StoragePoolTypesScopedList) MarshalJSON() ([]byte, error) { type NoMethod StoragePoolTypesScopedList - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } // StoragePoolTypesScopedListWarning: [Output Only] Informational warning which -// replaces the list of storage pool types when the list is empty. +// replaces the list of storage pool +// types when the list is empty. type StoragePoolTypesScopedListWarning 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. + // 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" - Warning about failed cleanup of transient changes made - // by a failed operation. + // by a failed + // operation. // "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was created. // "DEPRECATED_TYPE_USED" - When deploying and at least one of the resources - // has a type marked as deprecated + // has a type marked as + // deprecated // "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk that is // larger than image size. // "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the - // resources has a type marked as experimental + // resources has a type marked as + // experimental // "EXTERNAL_API_WARNING" - Warning that is present in an external api call // "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been - // overridden. Deprecated unused field. + // overridden. + // Deprecated unused field. // "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an injected // kernel, which is deprecated. // "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB" - A WEIGHTED_MAGLEV backend - // service is associated with a health check that is not of type - // HTTP/HTTPS/HTTP2. + // service is associated with a health check that is + // not of type HTTP/HTTPS/HTTP2. // "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a // exceedingly large number of resources // "LIST_OVERHEAD_QUOTA_EXCEED" - Resource can't be retrieved due to list - // overhead quota exceed which captures the amount of resources filtered out by + // overhead quota exceed + // which captures the amount of resources filtered out by // user-defined list filter. // "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is not - // assigned to an instance on the network. + // assigned to an instance on the + // network. // "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot ip // forward. // "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE" - The route's nextHopInstance - // URL refers to an instance that does not have an ipv6 interface on the same - // network as the route. + // URL refers to an instance that does not have an + // ipv6 interface on the same network as the route. // "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL refers to // an instance that does not exist. // "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance URL - // refers to an instance that is not on the same network as the route. + // refers to an instance that is not on the + // same network as the route. // "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not have a // status of RUNNING. // "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to continue - // the process despite the mentioned error. + // the process despite + // the mentioned error. // "NO_RESULTS_ON_PAGE" - No results are present on a particular list page. // "PARTIAL_SUCCESS" - Success is reported, but some results may be missing // due to errors + // "QUOTA_INFO_UNAVAILABLE" - Quota information is not available to client + // requests (e.g: + // regions.list). // "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource that - // requires a TOS they have not accepted. + // requires a TOS they have not + // accepted. // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a resource is // in use. // "RESOURCE_NOT_DELETED" - One or more of the resources set to auto-delete - // could not be deleted because they were in use. + // could not be deleted + // because they were in use. // "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is // ignored. // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in instance - // group manager is valid as such, but its application does not make a lot of - // sense, because it allows only single instance in instance group. + // group manager is valid as such, but + // its application does not make a lot of sense, because it allows only + // single instance in instance group. // "UNDECLARED_PROPERTIES" - When undeclared properties in the schema are // present // "UNREACHABLE" - A given scope cannot be reached. 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: [Output Only] Metadata about this warning in key: + // value format. For example: + // + // "data": [ + // { + // "key": "scope", + // "value": "zones/us-east1-d" + // } Data []*StoragePoolTypesScopedListWarningData `json:"data,omitempty"` // Message: [Output Only] A human-readable description of the warning code. Message string `json:"message,omitempty"` @@ -44990,19 +72448,22 @@ type StoragePoolTypesScopedListWarning struct { NullFields []string `json:"-"` } -func (s *StoragePoolTypesScopedListWarning) MarshalJSON() ([]byte, error) { +func (s StoragePoolTypesScopedListWarning) MarshalJSON() ([]byte, error) { type NoMethod StoragePoolTypesScopedListWarning - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } type StoragePoolTypesScopedListWarningData 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: [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"` @@ -45019,16 +72480,17 @@ type StoragePoolTypesScopedListWarningData struct { NullFields []string `json:"-"` } -func (s *StoragePoolTypesScopedListWarningData) MarshalJSON() ([]byte, error) { +func (s StoragePoolTypesScopedListWarningData) MarshalJSON() ([]byte, error) { type NoMethod StoragePoolTypesScopedListWarningData - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } type StoragePoolsScopedList struct { // StoragePools: [Output Only] A list of storage pool contained in this scope. StoragePools []*StoragePool `json:"storagePools,omitempty"` // Warning: [Output Only] Informational warning which replaces the list of - // storage pool when the list is empty. + // storage pool + // when the list is empty. Warning *StoragePoolsScopedListWarning `json:"warning,omitempty"` // ForceSendFields is a list of field names (e.g. "StoragePools") to // unconditionally include in API requests. By default, fields with empty or @@ -45043,76 +72505,99 @@ type StoragePoolsScopedList struct { NullFields []string `json:"-"` } -func (s *StoragePoolsScopedList) MarshalJSON() ([]byte, error) { +func (s StoragePoolsScopedList) MarshalJSON() ([]byte, error) { type NoMethod StoragePoolsScopedList - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } // StoragePoolsScopedListWarning: [Output Only] Informational warning which -// replaces the list of storage pool when the list is empty. +// replaces the list of storage pool +// when the list is empty. type StoragePoolsScopedListWarning 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. + // 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" - Warning about failed cleanup of transient changes made - // by a failed operation. + // by a failed + // operation. // "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was created. // "DEPRECATED_TYPE_USED" - When deploying and at least one of the resources - // has a type marked as deprecated + // has a type marked as + // deprecated // "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk that is // larger than image size. // "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the - // resources has a type marked as experimental + // resources has a type marked as + // experimental // "EXTERNAL_API_WARNING" - Warning that is present in an external api call // "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been - // overridden. Deprecated unused field. + // overridden. + // Deprecated unused field. // "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an injected // kernel, which is deprecated. // "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB" - A WEIGHTED_MAGLEV backend - // service is associated with a health check that is not of type - // HTTP/HTTPS/HTTP2. + // service is associated with a health check that is + // not of type HTTP/HTTPS/HTTP2. // "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a // exceedingly large number of resources // "LIST_OVERHEAD_QUOTA_EXCEED" - Resource can't be retrieved due to list - // overhead quota exceed which captures the amount of resources filtered out by + // overhead quota exceed + // which captures the amount of resources filtered out by // user-defined list filter. // "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is not - // assigned to an instance on the network. + // assigned to an instance on the + // network. // "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot ip // forward. // "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE" - The route's nextHopInstance - // URL refers to an instance that does not have an ipv6 interface on the same - // network as the route. + // URL refers to an instance that does not have an + // ipv6 interface on the same network as the route. // "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL refers to // an instance that does not exist. // "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance URL - // refers to an instance that is not on the same network as the route. + // refers to an instance that is not on the + // same network as the route. // "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not have a // status of RUNNING. // "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to continue - // the process despite the mentioned error. + // the process despite + // the mentioned error. // "NO_RESULTS_ON_PAGE" - No results are present on a particular list page. // "PARTIAL_SUCCESS" - Success is reported, but some results may be missing // due to errors + // "QUOTA_INFO_UNAVAILABLE" - Quota information is not available to client + // requests (e.g: + // regions.list). // "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource that - // requires a TOS they have not accepted. + // requires a TOS they have not + // accepted. // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a resource is // in use. // "RESOURCE_NOT_DELETED" - One or more of the resources set to auto-delete - // could not be deleted because they were in use. + // could not be deleted + // because they were in use. // "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is // ignored. // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in instance - // group manager is valid as such, but its application does not make a lot of - // sense, because it allows only single instance in instance group. + // group manager is valid as such, but + // its application does not make a lot of sense, because it allows only + // single instance in instance group. // "UNDECLARED_PROPERTIES" - When undeclared properties in the schema are // present // "UNREACHABLE" - A given scope cannot be reached. 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: [Output Only] Metadata about this warning in key: + // value format. For example: + // + // "data": [ + // { + // "key": "scope", + // "value": "zones/us-east1-d" + // } Data []*StoragePoolsScopedListWarningData `json:"data,omitempty"` // Message: [Output Only] A human-readable description of the warning code. Message string `json:"message,omitempty"` @@ -45129,19 +72614,22 @@ type StoragePoolsScopedListWarning struct { NullFields []string `json:"-"` } -func (s *StoragePoolsScopedListWarning) MarshalJSON() ([]byte, error) { +func (s StoragePoolsScopedListWarning) MarshalJSON() ([]byte, error) { type NoMethod StoragePoolsScopedListWarning - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } type StoragePoolsScopedListWarningData 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: [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"` @@ -45158,91 +72646,198 @@ type StoragePoolsScopedListWarningData struct { NullFields []string `json:"-"` } -func (s *StoragePoolsScopedListWarningData) MarshalJSON() ([]byte, error) { +func (s StoragePoolsScopedListWarningData) MarshalJSON() ([]byte, error) { type NoMethod StoragePoolsScopedListWarningData - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -// Subnetwork: Represents a Subnetwork resource. A subnetwork (also known as a -// subnet) is a logical partition of a Virtual Private Cloud network with one -// primary IP range and zero or more secondary IP ranges. For more information, -// read Virtual Private Cloud (VPC) Network. +// Subnetwork: Represents a Subnetwork resource. +// +// A subnetwork (also known as a subnet) is a logical partition of a +// Virtual +// Private Cloud network with one primary IP range and zero or more +// secondary +// IP ranges. For more information, read +// Virtual Private Cloud (VPC) Network. type Subnetwork struct { - // CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text format. + // AllowSubnetCidrRoutesOverlap: Whether this subnetwork's ranges can conflict + // with existing custom routes. + // Setting this to true allows this subnetwork's primary and secondary + // ranges + // to overlap with (and contain) custom routes that have already + // been + // configured on the corresponding network. + // + // For example if a static route has range 10.1.0.0/16, a subnet + // range 10.0.0.0/8 could only be created if + // allow_conflicting_routes=true. + // + // Overlapping is only allowed on subnetwork operations; routes + // whose ranges conflict with this subnetwork's ranges won't be allowed + // unless + // route.allow_conflicting_subnetworks is set to true. + // + // Typically packets destined to IPs within the subnetwork (which may + // contain + // private/sensitive data) are prevented from leaving the virtual + // network. + // Setting this field to true will disable this feature. + // + // The default value is false and applies to all existing subnetworks + // and + // automatically created subnetworks. + AllowSubnetCidrRoutesOverlap bool `json:"allowSubnetCidrRoutesOverlap,omitempty"` + // CreationTimestamp: Output only. [Output Only] Creation timestamp + // inRFC3339 + // text format. CreationTimestamp string `json:"creationTimestamp,omitempty"` // Description: An optional description of this resource. Provide this property - // when you create the resource. This field can be set only at resource - // creation time. + // when you + // create the resource. This field can be set only at resource creation time. Description string `json:"description,omitempty"` // EnableFlowLogs: Whether to enable flow logging for this subnetwork. If this - // field is not explicitly set, it will not appear in get listings. If not set - // the default behavior is determined by the org policy, if there is no org - // policy specified, then it will default to disabled. This field isn't - // supported if the subnet purpose field is set to REGIONAL_MANAGED_PROXY. + // field is not + // explicitly set, it will not appear in get listings. If not set + // the default behavior is determined by the org policy, if there is no + // org + // policy specified, then it will default to disabled. This field + // isn't + // supported if the subnet purpose field is set toREGIONAL_MANAGED_PROXY. It is + // recommended to uselogConfig.enable field instead. EnableFlowLogs bool `json:"enableFlowLogs,omitempty"` - // ExternalIpv6Prefix: The external IPv6 address range that is owned by this + // ExternalIpv6Prefix: The external IPv6 address range that is owned by + // this // subnetwork. ExternalIpv6Prefix string `json:"externalIpv6Prefix,omitempty"` // Fingerprint: Fingerprint of this resource. A hash of the contents stored in - // this object. This field is used in optimistic locking. This field will be - // ignored when inserting a Subnetwork. An up-to-date fingerprint must be - // provided in order to update the Subnetwork, otherwise the request will fail - // with error 412 conditionNotMet. To see the latest fingerprint, make a get() - // request to retrieve a Subnetwork. + // this object. + // This field is used in optimistic locking. This field will be ignored + // when + // inserting a Subnetwork. An up-to-date fingerprint must be + // provided in order to update the Subnetwork, otherwise the + // request will fail with error 412 conditionNotMet. + // + // To see the latest fingerprint, make a get() request to + // retrieve a Subnetwork. Fingerprint string `json:"fingerprint,omitempty"` - // GatewayAddress: [Output Only] The gateway address for default routes to - // reach destination addresses outside this subnetwork. + // GatewayAddress: Output only. [Output Only] The gateway address for default + // routes to reach destination + // addresses outside this subnetwork. GatewayAddress string `json:"gatewayAddress,omitempty"` - // Id: [Output Only] The unique identifier for the resource. This identifier is + // Id: Output only. [Output Only] The unique identifier for the resource. This + // identifier is // defined by the server. Id uint64 `json:"id,omitempty,string"` - // InternalIpv6Prefix: [Output Only] The internal IPv6 address range that is - // assigned to this subnetwork. + // InternalIpv6Prefix: The internal IPv6 address range that is owned by + // this + // subnetwork. InternalIpv6Prefix string `json:"internalIpv6Prefix,omitempty"` // IpCidrRange: The range of internal addresses that are owned by this - // subnetwork. Provide this property when you create the subnetwork. For - // example, 10.0.0.0/8 or 100.64.0.0/10. Ranges must be unique and - // non-overlapping within a network. Only IPv4 is supported. This field is set - // at resource creation time. The range can be any range listed in the Valid - // ranges list. The range can be expanded after creation using - // expandIpCidrRange. + // subnetwork. + // Provide this property when you create the subnetwork. For example,10.0.0.0/8 + // or 100.64.0.0/10. Ranges must + // be unique and non-overlapping within a network. Only IPv4 is supported. + // This field is set at resource creation time. The range can be any + // range + // listed in theValid + // ranges list. The range can be expanded after creation + // usingexpandIpCidrRange. IpCidrRange string `json:"ipCidrRange,omitempty"` + // IpCollection: Reference to the source of IP, like a + // PublicDelegatedPrefix + // (PDP) for BYOIP. The PDP must be a sub-PDP + // in + // EXTERNAL_IPV6_SUBNETWORK_CREATION or + // INTERNAL_IPV6_SUBNETWORK_CREATION + // mode. + // + // Use one of the following formats to specify a sub-PDP when creating a + // dual + // stack or IPv6-only subnetwork with external access using BYOIP: + // + // - + // Full resource URL, as + // inhttps://www.googleapis.com/compute/v1/projects/projectId/regions/region/pub + // licDelegatedPrefixes/sub-pdp-name + // - + // Partial URL, as in + // + // + // - + // projects/projectId/regions/region/publicDelegatedPrefixes/sub-pdp-name + // - regions/region/publicDelegatedPrefixes/sub-pdp-name + IpCollection string `json:"ipCollection,omitempty"` // Ipv6AccessType: The access type of IPv6 address this subnet holds. It's - // immutable and can only be specified during creation or the first time the - // subnet is updated into IPV4_IPV6 dual stack. + // immutable and can + // only be specified during creation or the first time the subnet is + // updated + // into IPV4_IPV6 dual stack. // // Possible values: // "EXTERNAL" - VMs on this subnet will be assigned IPv6 addresses that are - // accessible via the Internet, as well as the VPC network. + // accessible + // via the Internet, as well as the VPC network. // "INTERNAL" - VMs on this subnet will be assigned IPv6 addresses that are - // only accessible over the VPC network. + // only + // accessible over the VPC network. Ipv6AccessType string `json:"ipv6AccessType,omitempty"` - // Ipv6CidrRange: [Output Only] This field is for internal use. + // Ipv6CidrRange: Output only. [Output Only] This field is for internal use. Ipv6CidrRange string `json:"ipv6CidrRange,omitempty"` - // Kind: [Output Only] Type of the resource. Always compute#subnetwork for - // Subnetwork resources. + // Ipv6GceEndpoint: Output only. [Output Only] Possible endpoints of this + // subnetwork. It can be one of the + // following: + // + // - VM_ONLY: The subnetwork can be used for creating instances and + // IPv6 addresses with VM endpoint type. Such a subnetwork gets external + // IPv6 + // ranges from a public delegated prefix and cannot be used to create + // NetLb. + // - VM_AND_FR: The subnetwork can be used for creating both VM + // instances and Forwarding Rules. It can also be used to reserve IPv6 + // addresses with both VM and FR endpoint types. Such a subnetwork gets its + // IPv6 range from Google IP Pool directly. + // + // Possible values: + // "VM_AND_FR" + // "VM_ONLY" + Ipv6GceEndpoint string `json:"ipv6GceEndpoint,omitempty"` + // Kind: Output only. [Output Only] Type of the resource. Always + // compute#subnetwork + // for Subnetwork resources. Kind string `json:"kind,omitempty"` // LogConfig: This field denotes the VPC flow logging options for this - // subnetwork. If logging is enabled, logs are exported to Cloud Logging. + // subnetwork. + // If logging is enabled, logs are exported to Cloud Logging. LogConfig *SubnetworkLogConfig `json:"logConfig,omitempty"` // Name: The name of the resource, provided by the client when initially - // creating the resource. 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. + // creating + // the resource. The name must be 1-63 characters long, and comply + // withRFC1035. + // 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. Name string `json:"name,omitempty"` // Network: The URL of the network to which this subnetwork belongs, provided - // by the client when initially creating the subnetwork. This field can be set - // only at resource creation time. + // by the + // client when initially creating the subnetwork. This field can be set only + // at resource creation time. Network string `json:"network,omitempty"` + // Params: Input only. [Input Only] Additional params passed with the request, + // but not persisted + // as part of resource payload. + Params *SubnetworkParams `json:"params,omitempty"` // PrivateIpGoogleAccess: Whether the VMs in this subnet can access Google - // services without assigned external IP addresses. This field can be both set - // at resource creation time and updated using setPrivateIpGoogleAccess. + // services without assigned + // external IP addresses. This field can be both set at resource creation + // time and updated using setPrivateIpGoogleAccess. PrivateIpGoogleAccess bool `json:"privateIpGoogleAccess,omitempty"` - // PrivateIpv6GoogleAccess: This field is for internal use. This field can be - // both set at resource creation time and updated using patch. + // PrivateIpv6GoogleAccess: This field is for internal use. + // + // This field can be both set at resource creation time and updated usingpatch. // // Possible values: // "DISABLE_GOOGLE_ACCESS" - Disable private IPv6 access to/from Google @@ -45252,23 +72847,16 @@ type Subnetwork struct { // "ENABLE_OUTBOUND_VM_ACCESS_TO_GOOGLE" - Outbound private IPv6 access from // VMs in this subnet to Google services. PrivateIpv6GoogleAccess string `json:"privateIpv6GoogleAccess,omitempty"` - // Purpose: The purpose of the resource. This field can be either PRIVATE, - // GLOBAL_MANAGED_PROXY, REGIONAL_MANAGED_PROXY, PRIVATE_SERVICE_CONNECT, or - // PRIVATE is the default purpose for user-created subnets or subnets that are - // automatically created in auto mode networks. Subnets with purpose set to - // GLOBAL_MANAGED_PROXY or REGIONAL_MANAGED_PROXY are user-created subnetworks - // that are reserved for Envoy-based load balancers. A subnet with purpose set - // to PRIVATE_SERVICE_CONNECT is used to publish services using Private Service - // Connect. If unspecified, the subnet purpose defaults to PRIVATE. The - // enableFlowLogs field isn't supported if the subnet purpose field is set to - // GLOBAL_MANAGED_PROXY or REGIONAL_MANAGED_PROXY. - // // Possible values: // "GLOBAL_MANAGED_PROXY" - Subnet reserved for Global Envoy-based Load // Balancing. // "INTERNAL_HTTPS_LOAD_BALANCER" - Subnet reserved for Internal HTTP(S) Load - // Balancing. This is a legacy purpose, please use REGIONAL_MANAGED_PROXY - // instead. + // Balancing. This is a legacy + // purpose, please use REGIONAL_MANAGED_PROXY instead. + // "PEER_MIGRATION" - Subnetwork will be used for Migration from one peered + // VPC to another. + // (a transient state of subnetwork + // while migrating resources from one project to another). // "PRIVATE" - Regular user created or automatically created subnet. // "PRIVATE_NAT" - Subnetwork used as source range for Private NAT Gateways. // "PRIVATE_RFC_1918" - Regular user created or automatically created subnet. @@ -45277,71 +72865,101 @@ type Subnetwork struct { // "REGIONAL_MANAGED_PROXY" - Subnetwork used for Regional Envoy-based Load // Balancing. Purpose string `json:"purpose,omitempty"` - // Region: URL of the region where the Subnetwork resides. This field can be - // set only at resource creation time. + // Region: URL of the region where the Subnetwork resides. This + // field can be set only at resource creation time. Region string `json:"region,omitempty"` // ReservedInternalRange: The URL of the reserved internal range. ReservedInternalRange string `json:"reservedInternalRange,omitempty"` - // Role: The role of subnetwork. Currently, this field is only used when - // purpose is set to GLOBAL_MANAGED_PROXY or REGIONAL_MANAGED_PROXY. The value - // can be set to ACTIVE or BACKUP. An ACTIVE subnetwork is one that is - // currently being used for Envoy-based load balancers in a region. A BACKUP - // subnetwork is one that is ready to be promoted to ACTIVE or is currently - // draining. This field can be updated with a patch request. + // ResolveSubnetMask: Configures subnet mask resolution for this subnetwork. + // + // Possible values: + // "ARP_ALL_RANGES" - All ranges assigned to the VM NIC will respond to ARP. + // "ARP_PRIMARY_RANGE" - Only the primary range of the VM NIC will respond to + // ARP. + ResolveSubnetMask string `json:"resolveSubnetMask,omitempty"` + // Role: The role of subnetwork. Currently, this field is only used + // when + // purpose is set to GLOBAL_MANAGED_PROXY orREGIONAL_MANAGED_PROXY. The value + // can be set toACTIVE or BACKUP. An ACTIVE + // subnetwork is one that is currently being used for Envoy-based + // load + // balancers in a region. A BACKUP subnetwork is one that is + // ready to be promoted to ACTIVE or is currently draining. + // This field can be updated with a patch request. // // Possible values: // "ACTIVE" - The ACTIVE subnet that is currently used. // "BACKUP" - The BACKUP subnet that could be promoted to ACTIVE. Role string `json:"role,omitempty"` // SecondaryIpRanges: An array of configurations for secondary IP ranges for VM - // instances contained in this subnetwork. The primary IP of such VM must - // belong to the primary ipCidrRange of the subnetwork. The alias IPs may - // belong to either primary or secondary ranges. This field can be updated with - // a patch request. + // instances + // contained in this subnetwork. The primary IP of such VM must belong to + // the + // primary ipCidrRange of the subnetwork. The alias IPs may belong to + // either + // primary or secondary ranges. This field can be updated with apatch request. + // Supports both IPv4 and IPv6 ranges. SecondaryIpRanges []*SubnetworkSecondaryRange `json:"secondaryIpRanges,omitempty"` // SelfLink: [Output Only] Server-defined URL for the resource. SelfLink string `json:"selfLink,omitempty"` - // StackType: The stack type for the subnet. If set to IPV4_ONLY, new VMs in - // the subnet are assigned IPv4 addresses only. If set to IPV4_IPV6, new VMs in - // the subnet can be assigned both IPv4 and IPv6 addresses. If not specified, - // IPV4_ONLY is used. This field can be both set at resource creation time and - // updated using patch. + // StackType: The stack type for the subnet. If set to IPV4_ONLY, new VMs + // in the subnet are assigned IPv4 addresses only. If set toIPV4_IPV6, new VMs + // in the subnet can be assigned both IPv4 and + // IPv6 addresses. If not specified, IPV4_ONLY is used. + // + // This field can be both set at resource creation time and updated usingpatch. // // Possible values: // "IPV4_IPV6" - New VMs in this subnet can have both IPv4 and IPv6 // addresses. // "IPV4_ONLY" - New VMs in this subnet will only be assigned IPv4 addresses. + // "IPV6_ONLY" - New VMs in this subnet will only be assigned IPv6 + // addresses. StackType string `json:"stackType,omitempty"` - // State: [Output Only] The state of the subnetwork, which can be one of the - // following values: READY: Subnetwork is created and ready to use DRAINING: - // only applicable to subnetworks that have the purpose set to - // INTERNAL_HTTPS_LOAD_BALANCER and indicates that connections to the load - // balancer are being drained. A subnetwork that is draining cannot be used or - // modified until it reaches a status of READY + // State: Output only. [Output Only] The state of the subnetwork, which can be + // one of the + // following values:READY: Subnetwork is created and ready to useDRAINING: only + // applicable to subnetworks that have the + // purpose set to INTERNAL_HTTPS_LOAD_BALANCER and indicates that + // connections to the load balancer are being drained. A subnetwork that + // is + // draining cannot be used or modified until it reaches a status ofREADY // // Possible values: // "DRAINING" - Subnetwork is being drained. // "READY" - Subnetwork is ready for use. State string `json:"state,omitempty"` + // SystemReservedExternalIpv6Ranges: Output only. [Output Only] The array of + // external IPv6 network ranges reserved from + // the subnetwork's external IPv6 range for system use. + SystemReservedExternalIpv6Ranges []string `json:"systemReservedExternalIpv6Ranges,omitempty"` + // SystemReservedInternalIpv6Ranges: Output only. [Output Only] The array of + // internal IPv6 network ranges reserved from + // the subnetwork's internal IPv6 range for system use. + SystemReservedInternalIpv6Ranges []string `json:"systemReservedInternalIpv6Ranges,omitempty"` + // UtilizationDetails: Output only. [Output Only] The current IP utilization of + // all subnetwork ranges. Contains + // the total number of allocated and free IPs in each range. + UtilizationDetails *SubnetworkUtilizationDetails `json:"utilizationDetails,omitempty"` // ServerResponse contains the HTTP response code and headers from the server. googleapi.ServerResponse `json:"-"` - // ForceSendFields is a list of field names (e.g. "CreationTimestamp") to - // unconditionally include in API requests. By default, fields with empty or - // default values are omitted from API requests. See - // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more - // details. + // ForceSendFields is a list of field names (e.g. + // "AllowSubnetCidrRoutesOverlap") to unconditionally include in API requests. + // By default, fields with empty or default values are omitted from API + // requests. See https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields + // for more details. ForceSendFields []string `json:"-"` - // NullFields is a list of field names (e.g. "CreationTimestamp") to include in - // API requests with the JSON null value. By default, fields with empty values - // are omitted from API requests. See + // NullFields is a list of field names (e.g. "AllowSubnetCidrRoutesOverlap") to + // include in API requests with the JSON null value. By default, fields with + // empty values are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } -func (s *Subnetwork) MarshalJSON() ([]byte, error) { +func (s Subnetwork) MarshalJSON() ([]byte, error) { type NoMethod Subnetwork - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } type SubnetworkAggregatedList struct { @@ -45349,18 +72967,21 @@ type SubnetworkAggregatedList struct { Id string `json:"id,omitempty"` // Items: A list of SubnetworksScopedList resources. Items map[string]SubnetworksScopedList `json:"items,omitempty"` - // Kind: [Output Only] Type of resource. Always - // compute#subnetworkAggregatedList for aggregated lists of subnetworks. + // Kind: Output only. [Output Only] Type of resource. + // Alwayscompute#subnetworkAggregatedList for aggregated lists of + // subnetworks. 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. + // results for + // list requests. If the number of results is larger thanmaxResults, 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"` - // SelfLink: [Output Only] Server-defined URL for this resource. + // SelfLink: Output only. [Output Only] Server-defined URL for this resource. SelfLink string `json:"selfLink,omitempty"` - // Unreachables: [Output Only] Unreachable resources. + // Unreachables: Output only. [Output Only] Unreachable resources. Unreachables []string `json:"unreachables,omitempty"` // Warning: [Output Only] Informational warning message. Warning *SubnetworkAggregatedListWarning `json:"warning,omitempty"` @@ -45380,76 +73001,98 @@ type SubnetworkAggregatedList struct { NullFields []string `json:"-"` } -func (s *SubnetworkAggregatedList) MarshalJSON() ([]byte, error) { +func (s SubnetworkAggregatedList) MarshalJSON() ([]byte, error) { type NoMethod SubnetworkAggregatedList - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } // SubnetworkAggregatedListWarning: [Output Only] Informational warning // message. type SubnetworkAggregatedListWarning 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. + // 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" - Warning about failed cleanup of transient changes made - // by a failed operation. + // by a failed + // operation. // "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was created. // "DEPRECATED_TYPE_USED" - When deploying and at least one of the resources - // has a type marked as deprecated + // has a type marked as + // deprecated // "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk that is // larger than image size. // "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the - // resources has a type marked as experimental + // resources has a type marked as + // experimental // "EXTERNAL_API_WARNING" - Warning that is present in an external api call // "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been - // overridden. Deprecated unused field. + // overridden. + // Deprecated unused field. // "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an injected // kernel, which is deprecated. // "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB" - A WEIGHTED_MAGLEV backend - // service is associated with a health check that is not of type - // HTTP/HTTPS/HTTP2. + // service is associated with a health check that is + // not of type HTTP/HTTPS/HTTP2. // "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a // exceedingly large number of resources // "LIST_OVERHEAD_QUOTA_EXCEED" - Resource can't be retrieved due to list - // overhead quota exceed which captures the amount of resources filtered out by + // overhead quota exceed + // which captures the amount of resources filtered out by // user-defined list filter. // "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is not - // assigned to an instance on the network. + // assigned to an instance on the + // network. // "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot ip // forward. // "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE" - The route's nextHopInstance - // URL refers to an instance that does not have an ipv6 interface on the same - // network as the route. + // URL refers to an instance that does not have an + // ipv6 interface on the same network as the route. // "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL refers to // an instance that does not exist. // "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance URL - // refers to an instance that is not on the same network as the route. + // refers to an instance that is not on the + // same network as the route. // "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not have a // status of RUNNING. // "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to continue - // the process despite the mentioned error. + // the process despite + // the mentioned error. // "NO_RESULTS_ON_PAGE" - No results are present on a particular list page. // "PARTIAL_SUCCESS" - Success is reported, but some results may be missing // due to errors + // "QUOTA_INFO_UNAVAILABLE" - Quota information is not available to client + // requests (e.g: + // regions.list). // "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource that - // requires a TOS they have not accepted. + // requires a TOS they have not + // accepted. // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a resource is // in use. // "RESOURCE_NOT_DELETED" - One or more of the resources set to auto-delete - // could not be deleted because they were in use. + // could not be deleted + // because they were in use. // "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is // ignored. // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in instance - // group manager is valid as such, but its application does not make a lot of - // sense, because it allows only single instance in instance group. + // group manager is valid as such, but + // its application does not make a lot of sense, because it allows only + // single instance in instance group. // "UNDECLARED_PROPERTIES" - When undeclared properties in the schema are // present // "UNREACHABLE" - A given scope cannot be reached. 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: [Output Only] Metadata about this warning in key: + // value format. For example: + // + // "data": [ + // { + // "key": "scope", + // "value": "zones/us-east1-d" + // } Data []*SubnetworkAggregatedListWarningData `json:"data,omitempty"` // Message: [Output Only] A human-readable description of the warning code. Message string `json:"message,omitempty"` @@ -45466,19 +73109,22 @@ type SubnetworkAggregatedListWarning struct { NullFields []string `json:"-"` } -func (s *SubnetworkAggregatedListWarning) MarshalJSON() ([]byte, error) { +func (s SubnetworkAggregatedListWarning) MarshalJSON() ([]byte, error) { type NoMethod SubnetworkAggregatedListWarning - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } type SubnetworkAggregatedListWarningData 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: [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"` @@ -45495,9 +73141,9 @@ type SubnetworkAggregatedListWarningData struct { NullFields []string `json:"-"` } -func (s *SubnetworkAggregatedListWarningData) MarshalJSON() ([]byte, error) { +func (s SubnetworkAggregatedListWarningData) MarshalJSON() ([]byte, error) { type NoMethod SubnetworkAggregatedListWarningData - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } // SubnetworkList: Contains a list of Subnetwork resources. @@ -45506,16 +73152,19 @@ type SubnetworkList struct { Id string `json:"id,omitempty"` // Items: A list of Subnetwork resources. Items []*Subnetwork `json:"items,omitempty"` - // Kind: [Output Only] Type of resource. Always compute#subnetworkList for - // lists of subnetworks. + // Kind: Output only. [Output Only] Type of resource. Always + // compute#subnetworkList + // for lists of subnetworks. 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. + // results for + // list requests. If the number of results is larger thanmaxResults, 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"` - // SelfLink: [Output Only] Server-defined URL for this resource. + // SelfLink: Output only. [Output Only] Server-defined URL for this resource. SelfLink string `json:"selfLink,omitempty"` // Warning: [Output Only] Informational warning message. Warning *SubnetworkListWarning `json:"warning,omitempty"` @@ -45535,75 +73184,97 @@ type SubnetworkList struct { NullFields []string `json:"-"` } -func (s *SubnetworkList) MarshalJSON() ([]byte, error) { +func (s SubnetworkList) MarshalJSON() ([]byte, error) { type NoMethod SubnetworkList - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } // SubnetworkListWarning: [Output Only] Informational warning message. type SubnetworkListWarning 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. + // 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" - Warning about failed cleanup of transient changes made - // by a failed operation. + // by a failed + // operation. // "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was created. // "DEPRECATED_TYPE_USED" - When deploying and at least one of the resources - // has a type marked as deprecated + // has a type marked as + // deprecated // "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk that is // larger than image size. // "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the - // resources has a type marked as experimental + // resources has a type marked as + // experimental // "EXTERNAL_API_WARNING" - Warning that is present in an external api call // "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been - // overridden. Deprecated unused field. + // overridden. + // Deprecated unused field. // "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an injected // kernel, which is deprecated. // "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB" - A WEIGHTED_MAGLEV backend - // service is associated with a health check that is not of type - // HTTP/HTTPS/HTTP2. + // service is associated with a health check that is + // not of type HTTP/HTTPS/HTTP2. // "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a // exceedingly large number of resources // "LIST_OVERHEAD_QUOTA_EXCEED" - Resource can't be retrieved due to list - // overhead quota exceed which captures the amount of resources filtered out by + // overhead quota exceed + // which captures the amount of resources filtered out by // user-defined list filter. // "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is not - // assigned to an instance on the network. + // assigned to an instance on the + // network. // "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot ip // forward. // "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE" - The route's nextHopInstance - // URL refers to an instance that does not have an ipv6 interface on the same - // network as the route. + // URL refers to an instance that does not have an + // ipv6 interface on the same network as the route. // "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL refers to // an instance that does not exist. // "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance URL - // refers to an instance that is not on the same network as the route. + // refers to an instance that is not on the + // same network as the route. // "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not have a // status of RUNNING. // "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to continue - // the process despite the mentioned error. + // the process despite + // the mentioned error. // "NO_RESULTS_ON_PAGE" - No results are present on a particular list page. // "PARTIAL_SUCCESS" - Success is reported, but some results may be missing // due to errors + // "QUOTA_INFO_UNAVAILABLE" - Quota information is not available to client + // requests (e.g: + // regions.list). // "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource that - // requires a TOS they have not accepted. + // requires a TOS they have not + // accepted. // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a resource is // in use. // "RESOURCE_NOT_DELETED" - One or more of the resources set to auto-delete - // could not be deleted because they were in use. + // could not be deleted + // because they were in use. // "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is // ignored. // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in instance - // group manager is valid as such, but its application does not make a lot of - // sense, because it allows only single instance in instance group. + // group manager is valid as such, but + // its application does not make a lot of sense, because it allows only + // single instance in instance group. // "UNDECLARED_PROPERTIES" - When undeclared properties in the schema are // present // "UNREACHABLE" - A given scope cannot be reached. 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: [Output Only] Metadata about this warning in key: + // value format. For example: + // + // "data": [ + // { + // "key": "scope", + // "value": "zones/us-east1-d" + // } Data []*SubnetworkListWarningData `json:"data,omitempty"` // Message: [Output Only] A human-readable description of the warning code. Message string `json:"message,omitempty"` @@ -45620,19 +73291,22 @@ type SubnetworkListWarning struct { NullFields []string `json:"-"` } -func (s *SubnetworkListWarning) MarshalJSON() ([]byte, error) { +func (s SubnetworkListWarning) MarshalJSON() ([]byte, error) { type NoMethod SubnetworkListWarning - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } type SubnetworkListWarningData 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: [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"` @@ -45649,18 +73323,19 @@ type SubnetworkListWarningData struct { NullFields []string `json:"-"` } -func (s *SubnetworkListWarningData) MarshalJSON() ([]byte, error) { +func (s SubnetworkListWarningData) MarshalJSON() ([]byte, error) { type NoMethod SubnetworkListWarningData - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } // SubnetworkLogConfig: The available logging options for this subnetwork. type SubnetworkLogConfig struct { // AggregationInterval: Can only be specified if VPC flow logging for this - // subnetwork is enabled. Toggles the aggregation interval for collecting flow - // logs. Increasing the interval time will reduce the amount of generated flow - // logs for long lasting connections. Default is an interval of 5 seconds per - // connection. + // subnetwork is enabled. + // Toggles the aggregation interval for collecting flow logs. Increasing + // the + // interval time will reduce the amount of generated flow logs for long + // lasting connections. Default is an interval of 5 seconds per connection. // // Possible values: // "INTERVAL_10_MIN" @@ -45671,25 +73346,33 @@ type SubnetworkLogConfig struct { // "INTERVAL_5_SEC" AggregationInterval string `json:"aggregationInterval,omitempty"` // Enable: Whether to enable flow logging for this subnetwork. If this field is - // not explicitly set, it will not appear in get listings. If not set the - // default behavior is determined by the org policy, if there is no org policy - // specified, then it will default to disabled. Flow logging isn't supported if - // the subnet purpose field is set to REGIONAL_MANAGED_PROXY. + // not + // explicitly set, it will not appear in get listings. If not + // set the default behavior is determined by the org policy, if there is no + // org policy specified, then it will default to disabled. + // Flow logging isn't supported if the subnet purpose field is + // set to REGIONAL_MANAGED_PROXY. Enable bool `json:"enable,omitempty"` // FilterExpr: Can only be specified if VPC flow logs for this subnetwork is - // enabled. The filter expression is used to define which VPC flow logs should - // be exported to Cloud Logging. + // enabled. + // The filter expression is used to define which VPC flow logs should + // be + // exported to Cloud Logging. FilterExpr string `json:"filterExpr,omitempty"` // FlowSampling: Can only be specified if VPC flow logging for this subnetwork - // is enabled. The value of the field must be in [0, 1]. Set the sampling rate - // of VPC flow logs within the subnetwork where 1.0 means all collected logs - // are reported and 0.0 means no logs are reported. Default is 0.5 unless - // otherwise specified by the org policy, which means half of all collected + // is enabled. + // The value of the field must be in [0, 1]. Set the sampling rate of VPC + // flow logs within the subnetwork where 1.0 means all collected logs + // are + // reported and 0.0 means no logs are reported. Default is 0.5 unless + // otherwise specified by the org policy, which means half of all + // collected // logs are reported. FlowSampling float64 `json:"flowSampling,omitempty"` // Metadata: Can only be specified if VPC flow logs for this subnetwork is - // enabled. Configures whether all, none or a subset of metadata fields should - // be added to the reported VPC flow logs. Default is EXCLUDE_ALL_METADATA. + // enabled. + // Configures whether all, none or a subset of metadata fields should be + // added to the reported VPC flow logs. Default isEXCLUDE_ALL_METADATA. // // Possible values: // "CUSTOM_METADATA" @@ -45697,7 +73380,8 @@ type SubnetworkLogConfig struct { // "INCLUDE_ALL_METADATA" Metadata string `json:"metadata,omitempty"` // MetadataFields: Can only be specified if VPC flow logs for this subnetwork - // is enabled and "metadata" was set to CUSTOM_METADATA. + // is enabled and + // "metadata" was set to CUSTOM_METADATA. MetadataFields []string `json:"metadataFields,omitempty"` // ForceSendFields is a list of field names (e.g. "AggregationInterval") to // unconditionally include in API requests. By default, fields with empty or @@ -45712,9 +73396,9 @@ type SubnetworkLogConfig struct { NullFields []string `json:"-"` } -func (s *SubnetworkLogConfig) MarshalJSON() ([]byte, error) { +func (s SubnetworkLogConfig) MarshalJSON() ([]byte, error) { type NoMethod SubnetworkLogConfig - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } func (s *SubnetworkLogConfig) UnmarshalJSON(data []byte) error { @@ -45731,20 +73415,88 @@ func (s *SubnetworkLogConfig) UnmarshalJSON(data []byte) error { return nil } +// SubnetworkParams: Additional subnetwork parameters. +type SubnetworkParams struct { + // ResourceManagerTags: Tag keys/values directly bound to this resource. + // Tag keys and values have the same definition as resource + // manager tags. The field is allowed for INSERT + // only. The keys/values to set on the resource should be specified in + // either ID { : } or Namespaced format + // { : }. + // For example the following are valid inputs: + // * {"tagKeys/333" : "tagValues/444", "tagKeys/123" : "tagValues/456"} + // * {"123/environment" : "production", "345/abc" : "xyz"} + // Note: + // * Invalid combinations of ID & namespaced format is not supported. For + // instance: {"123/environment" : "tagValues/444"} is invalid. + ResourceManagerTags map[string]string `json:"resourceManagerTags,omitempty"` + // ForceSendFields is a list of field names (e.g. "ResourceManagerTags") to + // unconditionally include in API requests. By default, fields with empty or + // default values are omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + ForceSendFields []string `json:"-"` + // NullFields is a list of field names (e.g. "ResourceManagerTags") to include + // in API requests with the JSON null value. By default, fields with empty + // values are omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s SubnetworkParams) MarshalJSON() ([]byte, error) { + type NoMethod SubnetworkParams + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + // SubnetworkSecondaryRange: Represents a secondary IP range of a subnetwork. type SubnetworkSecondaryRange struct { // IpCidrRange: The range of IP addresses belonging to this subnetwork - // secondary range. Provide this property when you create the subnetwork. - // Ranges must be unique and non-overlapping with all primary and secondary IP - // ranges within a network. Only IPv4 is supported. The range can be any range - // listed in the Valid ranges list. + // secondary range. + // Provide this property when you create the subnetwork. Ranges must be + // unique and non-overlapping with all primary and secondary IP ranges + // within a network. Both IPv4 and IPv6 ranges are supported. For IPv4, + // the range can be any range listed in theValid + // ranges list. + // + // For IPv6: + // The range must have a /64 prefix length. + // The range must be omitted, for auto-allocation from Google-defined ULA + // IPv6 range. + // For BYOGUA internal IPv6 secondary range, the range may be specified + // along with the `ipCollection` field. + // If an `ipCollection` is specified, the requested ip_cidr_range must + // lie + // within the range of the PDP referenced by the `ipCollection` field + // for + // allocation. + // If `ipCollection` field is specified, but ip_cidr_range is not, + // the range is auto-allocated from the PDP referenced by the + // `ipCollection` + // field. IpCidrRange string `json:"ipCidrRange,omitempty"` + // IpCollection: Reference to a Public Delegated Prefix (PDP) for BYOIP. + // This field should be specified for configuring BYOGUA internal + // IPv6 + // secondary range. + // When specified along with the ip_cidr_range, the ip_cidr_range must + // lie + // within the PDP referenced by the `ipCollection` field. + // When specified without the ip_cidr_range, the range is auto-allocated + // from the PDP referenced by the `ipCollection` field. + IpCollection string `json:"ipCollection,omitempty"` + // Possible values: + // "IPV4" + // "IPV6" + // "IP_VERSION_UNSPECIFIED" - Treated as IPV4 for backward-compatibility. + IpVersion string `json:"ipVersion,omitempty"` // RangeName: The name associated with this subnetwork secondary range, used - // when adding an alias IP range to a VM instance. The name must be 1-63 - // characters long, and comply with RFC1035. The name must be unique within the - // subnetwork. + // when adding + // an alias IP/IPv6 range to a VM instance. + // The name must be 1-63 characters long, and comply withRFC1035. + // The name must be unique within the subnetwork. RangeName string `json:"rangeName,omitempty"` - // ReservedInternalRange: The URL of the reserved internal range. + // ReservedInternalRange: The URL of the reserved internal range. Only IPv4 is + // supported. ReservedInternalRange string `json:"reservedInternalRange,omitempty"` // ForceSendFields is a list of field names (e.g. "IpCidrRange") to // unconditionally include in API requests. By default, fields with empty or @@ -45759,16 +73511,98 @@ type SubnetworkSecondaryRange struct { NullFields []string `json:"-"` } -func (s *SubnetworkSecondaryRange) MarshalJSON() ([]byte, error) { +func (s SubnetworkSecondaryRange) MarshalJSON() ([]byte, error) { type NoMethod SubnetworkSecondaryRange - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +// SubnetworkUtilizationDetails: The current IP utilization of all subnetwork +// ranges. Contains the total +// number of allocated and free IPs in each range. +type SubnetworkUtilizationDetails struct { + // ExternalIpv6InstanceUtilization: Utilizations of external IPV6 IP range. + ExternalIpv6InstanceUtilization *SubnetworkUtilizationDetailsIPV6Utilization `json:"externalIpv6InstanceUtilization,omitempty"` + // ExternalIpv6LbUtilization: Utilizations of external IPV6 IP range for NetLB. + ExternalIpv6LbUtilization *SubnetworkUtilizationDetailsIPV6Utilization `json:"externalIpv6LbUtilization,omitempty"` + // InternalIpv6Utilization: Utilizations of internal IPV6 IP range. + InternalIpv6Utilization *SubnetworkUtilizationDetailsIPV6Utilization `json:"internalIpv6Utilization,omitempty"` + // Ipv4Utilizations: Utilizations of all IPV4 IP ranges. For primary ranges, + // the range name + // will be empty. + Ipv4Utilizations []*SubnetworkUtilizationDetailsIPV4Utilization `json:"ipv4Utilizations,omitempty"` + // ForceSendFields is a list of field names (e.g. + // "ExternalIpv6InstanceUtilization") to unconditionally include in API + // requests. By default, fields with empty or default values are omitted from + // API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + ForceSendFields []string `json:"-"` + // NullFields is a list of field names (e.g. "ExternalIpv6InstanceUtilization") + // to include in API requests with the JSON null value. By default, fields with + // empty values are omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s SubnetworkUtilizationDetails) MarshalJSON() ([]byte, error) { + type NoMethod SubnetworkUtilizationDetails + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +// SubnetworkUtilizationDetailsIPV4Utilization: The IPV4 utilization of a +// single IP range. +type SubnetworkUtilizationDetailsIPV4Utilization struct { + // RangeName: Will be set for secondary range. Empty for primary IPv4 range. + RangeName string `json:"rangeName,omitempty"` + TotalAllocatedIp int64 `json:"totalAllocatedIp,omitempty,string"` + TotalFreeIp int64 `json:"totalFreeIp,omitempty,string"` + // ForceSendFields is a list of field names (e.g. "RangeName") to + // unconditionally include in API requests. By default, fields with empty or + // default values are omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + ForceSendFields []string `json:"-"` + // NullFields is a list of field names (e.g. "RangeName") to include in API + // requests with the JSON null value. By default, fields with empty values are + // omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s SubnetworkUtilizationDetailsIPV4Utilization) MarshalJSON() ([]byte, error) { + type NoMethod SubnetworkUtilizationDetailsIPV4Utilization + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +// SubnetworkUtilizationDetailsIPV6Utilization: The IPV6 utilization of a +// single IP range. +type SubnetworkUtilizationDetailsIPV6Utilization struct { + TotalAllocatedIp *Uint128 `json:"totalAllocatedIp,omitempty"` + TotalFreeIp *Uint128 `json:"totalFreeIp,omitempty"` + // ForceSendFields is a list of field names (e.g. "TotalAllocatedIp") to + // unconditionally include in API requests. By default, fields with empty or + // default values are omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + ForceSendFields []string `json:"-"` + // NullFields is a list of field names (e.g. "TotalAllocatedIp") to include in + // API requests with the JSON null value. By default, fields with empty values + // are omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s SubnetworkUtilizationDetailsIPV6Utilization) MarshalJSON() ([]byte, error) { + type NoMethod SubnetworkUtilizationDetailsIPV6Utilization + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } type SubnetworksExpandIpCidrRangeRequest struct { // IpCidrRange: The IP (in CIDR format or netmask) of internal addresses that - // are legal on this Subnetwork. This range should be disjoint from other - // subnetworks within this network. This range can only be larger than (i.e. a - // superset of) the range previously defined before the update. + // are legal on + // this Subnetwork. This range should be disjoint from other subnetworks + // within this network. This range can only be larger than (i.e. a superset + // of) the range previously defined before the update. IpCidrRange string `json:"ipCidrRange,omitempty"` // ForceSendFields is a list of field names (e.g. "IpCidrRange") to // unconditionally include in API requests. By default, fields with empty or @@ -45783,16 +73617,16 @@ type SubnetworksExpandIpCidrRangeRequest struct { NullFields []string `json:"-"` } -func (s *SubnetworksExpandIpCidrRangeRequest) MarshalJSON() ([]byte, error) { +func (s SubnetworksExpandIpCidrRangeRequest) MarshalJSON() ([]byte, error) { type NoMethod SubnetworksExpandIpCidrRangeRequest - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } type SubnetworksScopedList struct { // Subnetworks: A list of subnetworks contained in this scope. Subnetworks []*Subnetwork `json:"subnetworks,omitempty"` - // Warning: An informational warning that appears when the list of addresses is - // empty. + // Warning: An informational warning that appears when the list of addresses + // is empty. Warning *SubnetworksScopedListWarning `json:"warning,omitempty"` // ForceSendFields is a list of field names (e.g. "Subnetworks") to // unconditionally include in API requests. By default, fields with empty or @@ -45807,76 +73641,99 @@ type SubnetworksScopedList struct { NullFields []string `json:"-"` } -func (s *SubnetworksScopedList) MarshalJSON() ([]byte, error) { +func (s SubnetworksScopedList) MarshalJSON() ([]byte, error) { type NoMethod SubnetworksScopedList - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } // SubnetworksScopedListWarning: An informational warning that appears when the -// list of addresses is empty. +// list of addresses +// is empty. type SubnetworksScopedListWarning 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. + // 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" - Warning about failed cleanup of transient changes made - // by a failed operation. + // by a failed + // operation. // "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was created. // "DEPRECATED_TYPE_USED" - When deploying and at least one of the resources - // has a type marked as deprecated + // has a type marked as + // deprecated // "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk that is // larger than image size. // "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the - // resources has a type marked as experimental + // resources has a type marked as + // experimental // "EXTERNAL_API_WARNING" - Warning that is present in an external api call // "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been - // overridden. Deprecated unused field. + // overridden. + // Deprecated unused field. // "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an injected // kernel, which is deprecated. // "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB" - A WEIGHTED_MAGLEV backend - // service is associated with a health check that is not of type - // HTTP/HTTPS/HTTP2. + // service is associated with a health check that is + // not of type HTTP/HTTPS/HTTP2. // "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a // exceedingly large number of resources // "LIST_OVERHEAD_QUOTA_EXCEED" - Resource can't be retrieved due to list - // overhead quota exceed which captures the amount of resources filtered out by + // overhead quota exceed + // which captures the amount of resources filtered out by // user-defined list filter. // "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is not - // assigned to an instance on the network. + // assigned to an instance on the + // network. // "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot ip // forward. // "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE" - The route's nextHopInstance - // URL refers to an instance that does not have an ipv6 interface on the same - // network as the route. + // URL refers to an instance that does not have an + // ipv6 interface on the same network as the route. // "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL refers to // an instance that does not exist. // "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance URL - // refers to an instance that is not on the same network as the route. + // refers to an instance that is not on the + // same network as the route. // "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not have a // status of RUNNING. // "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to continue - // the process despite the mentioned error. + // the process despite + // the mentioned error. // "NO_RESULTS_ON_PAGE" - No results are present on a particular list page. // "PARTIAL_SUCCESS" - Success is reported, but some results may be missing // due to errors + // "QUOTA_INFO_UNAVAILABLE" - Quota information is not available to client + // requests (e.g: + // regions.list). // "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource that - // requires a TOS they have not accepted. + // requires a TOS they have not + // accepted. // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a resource is // in use. // "RESOURCE_NOT_DELETED" - One or more of the resources set to auto-delete - // could not be deleted because they were in use. + // could not be deleted + // because they were in use. // "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is // ignored. // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in instance - // group manager is valid as such, but its application does not make a lot of - // sense, because it allows only single instance in instance group. + // group manager is valid as such, but + // its application does not make a lot of sense, because it allows only + // single instance in instance group. // "UNDECLARED_PROPERTIES" - When undeclared properties in the schema are // present // "UNREACHABLE" - A given scope cannot be reached. 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: [Output Only] Metadata about this warning in key: + // value format. For example: + // + // "data": [ + // { + // "key": "scope", + // "value": "zones/us-east1-d" + // } Data []*SubnetworksScopedListWarningData `json:"data,omitempty"` // Message: [Output Only] A human-readable description of the warning code. Message string `json:"message,omitempty"` @@ -45893,19 +73750,22 @@ type SubnetworksScopedListWarning struct { NullFields []string `json:"-"` } -func (s *SubnetworksScopedListWarning) MarshalJSON() ([]byte, error) { +func (s SubnetworksScopedListWarning) MarshalJSON() ([]byte, error) { type NoMethod SubnetworksScopedListWarning - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } type SubnetworksScopedListWarningData 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: [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"` @@ -45922,9 +73782,172 @@ type SubnetworksScopedListWarningData struct { NullFields []string `json:"-"` } -func (s *SubnetworksScopedListWarningData) MarshalJSON() ([]byte, error) { +func (s SubnetworksScopedListWarningData) MarshalJSON() ([]byte, error) { type NoMethod SubnetworksScopedListWarningData - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +type SubnetworksScopedWarning struct { + // ScopeName: Name of the scope containing this set of Subnetworks. + ScopeName string `json:"scopeName,omitempty"` + // Warning: An informational warning about unreachable scope + Warning *SubnetworksScopedWarningWarning `json:"warning,omitempty"` + // ForceSendFields is a list of field names (e.g. "ScopeName") to + // unconditionally include in API requests. By default, fields with empty or + // default values are omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + ForceSendFields []string `json:"-"` + // NullFields is a list of field names (e.g. "ScopeName") to include in API + // requests with the JSON null value. By default, fields with empty values are + // omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s SubnetworksScopedWarning) MarshalJSON() ([]byte, error) { + type NoMethod SubnetworksScopedWarning + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +// SubnetworksScopedWarningWarning: An informational warning about unreachable +// scope +type SubnetworksScopedWarningWarning 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" - Warning about failed cleanup of transient changes made + // by a failed + // operation. + // "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was created. + // "DEPRECATED_TYPE_USED" - When deploying and at least one of the resources + // has a type marked as + // deprecated + // "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk that is + // larger than image size. + // "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the + // resources has a type marked as + // experimental + // "EXTERNAL_API_WARNING" - Warning that is present in an external api call + // "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been + // overridden. + // Deprecated unused field. + // "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an injected + // kernel, which is deprecated. + // "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB" - A WEIGHTED_MAGLEV backend + // service is associated with a health check that is + // not of type HTTP/HTTPS/HTTP2. + // "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a + // exceedingly large number of resources + // "LIST_OVERHEAD_QUOTA_EXCEED" - Resource can't be retrieved due to list + // overhead quota exceed + // which captures the amount of resources filtered out by + // user-defined list filter. + // "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type + // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is not + // assigned to an instance on the + // network. + // "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot ip + // forward. + // "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE" - The route's nextHopInstance + // URL refers to an instance that does not have an + // ipv6 interface on the same network as the route. + // "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL refers to + // an instance that does not exist. + // "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance URL + // refers to an instance that is not on the + // same network as the route. + // "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not have a + // status of RUNNING. + // "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to continue + // the process despite + // the mentioned error. + // "NO_RESULTS_ON_PAGE" - No results are present on a particular list page. + // "PARTIAL_SUCCESS" - Success is reported, but some results may be missing + // due to errors + // "QUOTA_INFO_UNAVAILABLE" - Quota information is not available to client + // requests (e.g: + // regions.list). + // "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource that + // requires a TOS they have not + // accepted. + // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a resource is + // in use. + // "RESOURCE_NOT_DELETED" - One or more of the resources set to auto-delete + // could not be deleted + // because they were in use. + // "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is + // ignored. + // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in instance + // group manager is valid as such, but + // its application does not make a lot of sense, because it allows only + // single instance in instance group. + // "UNDECLARED_PROPERTIES" - When undeclared properties in the schema are + // present + // "UNREACHABLE" - A given scope cannot be reached. + 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 []*SubnetworksScopedWarningWarningData `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 or default values are + // omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + 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. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s SubnetworksScopedWarningWarning) MarshalJSON() ([]byte, error) { + type NoMethod SubnetworksScopedWarningWarning + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +type SubnetworksScopedWarningWarningData 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 or default values are + // omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + 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. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s SubnetworksScopedWarningWarningData) MarshalJSON() ([]byte, error) { + type NoMethod SubnetworksScopedWarningWarningData + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } type SubnetworksSetPrivateIpGoogleAccessRequest struct { @@ -45942,28 +73965,37 @@ type SubnetworksSetPrivateIpGoogleAccessRequest struct { NullFields []string `json:"-"` } -func (s *SubnetworksSetPrivateIpGoogleAccessRequest) MarshalJSON() ([]byte, error) { +func (s SubnetworksSetPrivateIpGoogleAccessRequest) MarshalJSON() ([]byte, error) { type NoMethod SubnetworksSetPrivateIpGoogleAccessRequest - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -// Subsetting: Subsetting configuration for this BackendService. Currently this -// is applicable only for Internal TCP/UDP load balancing, Internal HTTP(S) -// load balancing and Traffic Director. +// Subsetting: Subsetting configuration for this BackendService. +// Currently this is applicable only for Internal TCP/UDP load +// balancing, +// Internal HTTP(S) load balancing and Traffic Director. type Subsetting struct { // Possible values: - // "CONSISTENT_HASH_SUBSETTING" - Subsetting based on consistent hashing. For - // Traffic Director, the number of backends per backend group (the subset size) - // is based on the `subset_size` parameter. For Internal HTTP(S) load - // balancing, the number of backends per backend group (the subset size) is - // dynamically adjusted in two cases: - As the number of proxy instances - // participating in Internal HTTP(S) load balancing increases, the subset size - // decreases. - When the total number of backends in a network exceeds the - // capacity of a single proxy instance, subset sizes are reduced automatically - // for each service that has backend subsetting enabled. - // "NONE" - No Subsetting. Clients may open connections and send traffic to - // all backends of this backend service. This can lead to performance issues if - // there is substantial imbalance in the count of clients and backends. + // "CONSISTENT_HASH_SUBSETTING" - Subsetting based on consistent + // hashing. + // + // For Traffic Director, the number of backends per backend group + // (the subset size) is based on the `subset_size` parameter. + // + // For Internal HTTP(S) load balancing, the number of backends per + // backend + // group (the subset size) is dynamically adjusted in two cases: + // - As the number of proxy instances participating in Internal HTTP(S) load + // balancing increases, the subset size decreases. + // - When the total number of backends in a network exceeds the capacity of + // a single proxy instance, subset sizes are reduced automatically for + // each service that has backend subsetting enabled. + // "NONE" - No Subsetting. + // + // Clients may open connections and send traffic to all backends of + // this + // backend service. This can lead to performance issues if there is + // substantial imbalance in the count of clients and backends. Policy string `json:"policy,omitempty"` // ForceSendFields is a list of field names (e.g. "Policy") to unconditionally // include in API requests. By default, fields with empty or default values are @@ -45978,61 +74010,81 @@ type Subsetting struct { NullFields []string `json:"-"` } -func (s *Subsetting) MarshalJSON() ([]byte, error) { +func (s Subsetting) MarshalJSON() ([]byte, error) { type NoMethod Subsetting - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } type TCPHealthCheck struct { // Port: The TCP port number to which the health check prober sends packets. - // The default value is 80. Valid values are 1 through 65535. + // The + // default value is 80. Valid values are 1 through65535. Port int64 `json:"port,omitempty"` // PortName: Not supported. PortName string `json:"portName,omitempty"` // PortSpecification: Specifies how a port is selected for health checking. Can - // be one of the following values: USE_FIXED_PORT: Specifies a port number - // explicitly using the port field in the health check. Supported by backend - // services for passthrough load balancers and backend services for proxy load - // balancers. Not supported by target pools. The health check supports all - // backends supported by the backend service provided the backend can be health - // checked. For example, GCE_VM_IP network endpoint groups, GCE_VM_IP_PORT - // network endpoint groups, and instance group backends. USE_NAMED_PORT: Not - // supported. USE_SERVING_PORT: Provides an indirect method of specifying the - // health check port by referring to the backend service. Only supported by - // backend services for proxy load balancers. Not supported by target pools. - // Not supported by backend services for passthrough load balancers. Supports - // all backends that can be health checked; for example, GCE_VM_IP_PORT network - // endpoint groups and instance group backends. For GCE_VM_IP_PORT network - // endpoint group backends, the health check uses the port number specified for - // each endpoint in the network endpoint group. For instance group backends, - // the health check uses the port number determined by looking up the backend - // service's named port in the instance group's list of named ports. + // be one of the + // following values: + // USE_FIXED_PORT: Specifies a port number explicitly using theport field in + // the health check. Supported by backend services + // for passthrough load balancers and backend services for proxy + // load + // balancers. Not supported by target pools. The health check supports + // all + // backends supported by the backend service provided the backend can be + // health checked. For example, GCE_VM_IP network endpoint + // groups, GCE_VM_IP_PORT network endpoint groups, and instance + // group backends. + // USE_NAMED_PORT: Not supported. + // USE_SERVING_PORT: Provides an indirect method of specifying + // the health check port by referring to the backend service. Only supported + // by backend services for proxy load balancers. Not supported by target + // pools. Not supported by backend services for passthrough load + // balancers. + // Supports all backends that can be health checked; for example,GCE_VM_IP_PORT + // network endpoint groups and instance group + // backends. + // + // For GCE_VM_IP_PORT network endpoint group backends, the health + // check uses the port number specified for each endpoint in the + // network + // endpoint group. For instance group backends, the health check uses the + // port number determined by looking up the backend service's named port in + // the instance group's list of named ports. // // Possible values: // "USE_FIXED_PORT" - The port number in the health check's port is used for - // health checking. Applies to network endpoint group and instance group - // backends. + // health + // checking. Applies to network endpoint group and instance group backends. // "USE_NAMED_PORT" - Not supported. // "USE_SERVING_PORT" - For network endpoint group backends, the health check - // uses the port number specified on each endpoint in the network endpoint - // group. For instance group backends, the health check uses the port number - // specified for the backend service's named port defined in the instance - // group's named ports. + // uses the port number + // specified on each endpoint in the network endpoint group. For instance + // group backends, the health check uses the port number specified for + // the + // backend service's named port defined in the instance group's named ports. PortSpecification string `json:"portSpecification,omitempty"` // ProxyHeader: Specifies the type of proxy header to append before sending - // data to the backend, either NONE or PROXY_V1. The default is NONE. + // data to the + // backend, either NONE or PROXY_V1. The default + // is NONE. // // Possible values: // "NONE" // "PROXY_V1" ProxyHeader string `json:"proxyHeader,omitempty"` // Request: Instructs the health check prober to send this exact ASCII string, - // up to 1024 bytes in length, after establishing the TCP connection. + // up to + // 1024 bytes in length, after establishing the TCP connection. Request string `json:"request,omitempty"` // Response: Creates a content-based TCP health check. In addition to - // establishing a TCP connection, you can configure the health check to pass - // only when the backend sends this exact response ASCII string, up to 1024 - // bytes in length. For details, see: + // establishing a + // TCP connection, you can configure the health check to pass only when + // the + // backend sends this exact response ASCII string, up to 1024 bytes in + // length. + // For details, + // see: // https://cloud.google.com/load-balancing/docs/health-check-concepts#criteria-protocol-ssl-tcp Response string `json:"response,omitempty"` // ForceSendFields is a list of field names (e.g. "Port") to unconditionally @@ -46048,21 +74100,26 @@ type TCPHealthCheck struct { NullFields []string `json:"-"` } -func (s *TCPHealthCheck) MarshalJSON() ([]byte, error) { +func (s TCPHealthCheck) MarshalJSON() ([]byte, error) { type NoMethod TCPHealthCheck - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } // Tags: A set of instance tags. type Tags struct { // Fingerprint: Specifies a fingerprint for this request, which is essentially - // a hash of the tags' contents and used for optimistic locking. The - // fingerprint is initially generated by Compute Engine and changes after every - // request to modify or update tags. You must always provide an up-to-date - // fingerprint hash in order to update or change tags. To see the latest - // fingerprint, make get() request to the instance. + // a hash of + // the tags' contents and used for optimistic locking. The + // fingerprint is initially generated by Compute Engine and changes after + // every request to modify or update tags. You must always provide + // an + // up-to-date fingerprint hash in order to update or change tags. + // + // To see the latest fingerprint, make get() request to the + // instance. Fingerprint string `json:"fingerprint,omitempty"` - // Items: An array of tags. Each tag must be 1-63 characters long, and comply + // Items: An array of tags. Each tag must be 1-63 characters long, and + // comply // with RFC1035. Items []string `json:"items,omitempty"` // ForceSendFields is a list of field names (e.g. "Fingerprint") to @@ -46078,61 +74135,84 @@ type Tags struct { NullFields []string `json:"-"` } -func (s *Tags) MarshalJSON() ([]byte, error) { +func (s Tags) MarshalJSON() ([]byte, error) { type NoMethod Tags - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -// TargetGrpcProxy: Represents a Target gRPC Proxy resource. A target gRPC -// proxy is a component of load balancers intended for load balancing gRPC -// traffic. Only global forwarding rules with load balancing scheme -// INTERNAL_SELF_MANAGED can reference a target gRPC proxy. The target gRPC -// Proxy references a URL map that specifies how traffic is routed to gRPC -// backend services. +// TargetGrpcProxy: Represents a Target gRPC Proxy resource. +// +// A target gRPC proxy is a component of load balancers intended for +// load balancing gRPC traffic. Only global forwarding rules with load +// balancing +// scheme INTERNAL_SELF_MANAGED can reference a target gRPC proxy. The +// target +// gRPC Proxy references a URL map that specifies how traffic is routed to +// gRPC backend services. type TargetGrpcProxy struct { - // CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text format. + // CreationTimestamp: Output only. [Output Only] Creation timestamp + // inRFC3339 + // text format. CreationTimestamp string `json:"creationTimestamp,omitempty"` // Description: An optional description of this resource. Provide this property - // when you create the resource. + // when you + // create the resource. Description string `json:"description,omitempty"` // Fingerprint: Fingerprint of this resource. A hash of the contents stored in - // this object. This field is used in optimistic locking. This field will be - // ignored when inserting a TargetGrpcProxy. An up-to-date fingerprint must be - // provided in order to patch/update the TargetGrpcProxy; otherwise, the - // request will fail with error 412 conditionNotMet. To see the latest - // fingerprint, make a get() request to retrieve the TargetGrpcProxy. + // this object. + // This field is used in optimistic locking. This field will be ignored + // when + // inserting a TargetGrpcProxy. An up-to-date fingerprint must + // be provided in order to patch/update the TargetGrpcProxy; otherwise, + // the + // request will fail with error 412 conditionNotMet. To see the + // latest fingerprint, make a get() request to retrieve the + // TargetGrpcProxy. Fingerprint string `json:"fingerprint,omitempty"` - // Id: [Output Only] The unique identifier for the resource type. The server + // Id: Output only. [Output Only] The unique identifier for the resource type. + // The server // generates this identifier. Id uint64 `json:"id,omitempty,string"` - // Kind: [Output Only] Type of the resource. Always compute#targetGrpcProxy for - // target grpc proxies. + // Kind: Output only. [Output Only] Type of the resource. + // Alwayscompute#targetGrpcProxy for target grpc proxies. Kind string `json:"kind,omitempty"` // Name: Name of the resource. Provided by the client when the resource is - // created. The name must be 1-63 characters long, and comply with RFC1035. - // 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. + // created. + // The name must be 1-63 characters long, and comply withRFC1035. + // 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. Name string `json:"name,omitempty"` - // SelfLink: [Output Only] Server-defined URL for the resource. + // SelfLink: Output only. [Output Only] Server-defined URL for the resource. SelfLink string `json:"selfLink,omitempty"` - // SelfLinkWithId: [Output Only] Server-defined URL with id for the resource. + // SelfLinkWithId: Output only. [Output Only] Server-defined URL with id for + // the resource. SelfLinkWithId string `json:"selfLinkWithId,omitempty"` - // UrlMap: URL to the UrlMap resource that defines the mapping from URL to the - // BackendService. The protocol field in the BackendService must be set to + // UrlMap: URL to the UrlMap resource that defines the mapping from URL to + // the + // BackendService. The protocol field in the BackendService must be set + // to // GRPC. UrlMap string `json:"urlMap,omitempty"` // ValidateForProxyless: If true, indicates that the BackendServices referenced - // by the urlMap may be accessed by gRPC applications without using a sidecar - // proxy. This will enable configuration checks on urlMap and its referenced - // BackendServices to not allow unsupported features. A gRPC application must - // use "xds:///" scheme in the target URI of the service it is connecting to. - // If false, indicates that the BackendServices referenced by the urlMap will - // be accessed by gRPC applications via a sidecar proxy. In this case, a gRPC - // application must not use "xds:///" scheme in the target URI of the service - // it is connecting to + // by the urlMap may be + // accessed by gRPC applications without using a sidecar proxy. This + // will + // enable configuration checks on urlMap and its referenced BackendServices + // to + // not allow unsupported features. A gRPC application must use + // "xds:///" scheme in the target URI of the service it is + // connecting to. + // If false, indicates that the BackendServices referenced by the urlMap + // will + // be accessed by gRPC applications via a sidecar proxy. In this case, a + // gRPC + // application must not use "xds:///" scheme in the target URI of + // the service it is connecting to ValidateForProxyless bool `json:"validateForProxyless,omitempty"` // ServerResponse contains the HTTP response code and headers from the server. @@ -46150,9 +74230,9 @@ type TargetGrpcProxy struct { NullFields []string `json:"-"` } -func (s *TargetGrpcProxy) MarshalJSON() ([]byte, error) { +func (s TargetGrpcProxy) MarshalJSON() ([]byte, error) { type NoMethod TargetGrpcProxy - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } type TargetGrpcProxyList struct { @@ -46160,14 +74240,16 @@ type TargetGrpcProxyList struct { Id string `json:"id,omitempty"` // Items: A list of TargetGrpcProxy resources. Items []*TargetGrpcProxy `json:"items,omitempty"` - // Kind: [Output Only] Type of the resource. Always compute#targetGrpcProxy for - // target grpc proxies. + // Kind: Output only. [Output Only] Type of the resource. + // Alwayscompute#targetGrpcProxy for target grpc proxies. 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. + // results for + // list requests. If the number of results is larger thanmaxResults, 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"` // SelfLink: [Output Only] Server-defined URL for this resource. SelfLink string `json:"selfLink,omitempty"` @@ -46189,75 +74271,97 @@ type TargetGrpcProxyList struct { NullFields []string `json:"-"` } -func (s *TargetGrpcProxyList) MarshalJSON() ([]byte, error) { +func (s TargetGrpcProxyList) MarshalJSON() ([]byte, error) { type NoMethod TargetGrpcProxyList - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } // TargetGrpcProxyListWarning: [Output Only] Informational warning message. type TargetGrpcProxyListWarning 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. + // 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" - Warning about failed cleanup of transient changes made - // by a failed operation. + // by a failed + // operation. // "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was created. // "DEPRECATED_TYPE_USED" - When deploying and at least one of the resources - // has a type marked as deprecated + // has a type marked as + // deprecated // "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk that is // larger than image size. // "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the - // resources has a type marked as experimental + // resources has a type marked as + // experimental // "EXTERNAL_API_WARNING" - Warning that is present in an external api call // "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been - // overridden. Deprecated unused field. + // overridden. + // Deprecated unused field. // "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an injected // kernel, which is deprecated. // "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB" - A WEIGHTED_MAGLEV backend - // service is associated with a health check that is not of type - // HTTP/HTTPS/HTTP2. + // service is associated with a health check that is + // not of type HTTP/HTTPS/HTTP2. // "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a // exceedingly large number of resources // "LIST_OVERHEAD_QUOTA_EXCEED" - Resource can't be retrieved due to list - // overhead quota exceed which captures the amount of resources filtered out by + // overhead quota exceed + // which captures the amount of resources filtered out by // user-defined list filter. // "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is not - // assigned to an instance on the network. + // assigned to an instance on the + // network. // "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot ip // forward. // "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE" - The route's nextHopInstance - // URL refers to an instance that does not have an ipv6 interface on the same - // network as the route. + // URL refers to an instance that does not have an + // ipv6 interface on the same network as the route. // "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL refers to // an instance that does not exist. // "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance URL - // refers to an instance that is not on the same network as the route. + // refers to an instance that is not on the + // same network as the route. // "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not have a // status of RUNNING. // "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to continue - // the process despite the mentioned error. + // the process despite + // the mentioned error. // "NO_RESULTS_ON_PAGE" - No results are present on a particular list page. // "PARTIAL_SUCCESS" - Success is reported, but some results may be missing // due to errors + // "QUOTA_INFO_UNAVAILABLE" - Quota information is not available to client + // requests (e.g: + // regions.list). // "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource that - // requires a TOS they have not accepted. + // requires a TOS they have not + // accepted. // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a resource is // in use. // "RESOURCE_NOT_DELETED" - One or more of the resources set to auto-delete - // could not be deleted because they were in use. + // could not be deleted + // because they were in use. // "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is // ignored. // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in instance - // group manager is valid as such, but its application does not make a lot of - // sense, because it allows only single instance in instance group. + // group manager is valid as such, but + // its application does not make a lot of sense, because it allows only + // single instance in instance group. // "UNDECLARED_PROPERTIES" - When undeclared properties in the schema are // present // "UNREACHABLE" - A given scope cannot be reached. 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: [Output Only] Metadata about this warning in key: + // value format. For example: + // + // "data": [ + // { + // "key": "scope", + // "value": "zones/us-east1-d" + // } Data []*TargetGrpcProxyListWarningData `json:"data,omitempty"` // Message: [Output Only] A human-readable description of the warning code. Message string `json:"message,omitempty"` @@ -46274,19 +74378,22 @@ type TargetGrpcProxyListWarning struct { NullFields []string `json:"-"` } -func (s *TargetGrpcProxyListWarning) MarshalJSON() ([]byte, error) { +func (s TargetGrpcProxyListWarning) MarshalJSON() ([]byte, error) { type NoMethod TargetGrpcProxyListWarning - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } type TargetGrpcProxyListWarningData 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: [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"` @@ -46303,16 +74410,16 @@ type TargetGrpcProxyListWarningData struct { NullFields []string `json:"-"` } -func (s *TargetGrpcProxyListWarningData) MarshalJSON() ([]byte, error) { +func (s TargetGrpcProxyListWarningData) MarshalJSON() ([]byte, error) { type NoMethod TargetGrpcProxyListWarningData - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } type TargetHttpProxiesScopedList struct { // TargetHttpProxies: A list of TargetHttpProxies contained in this scope. TargetHttpProxies []*TargetHttpProxy `json:"targetHttpProxies,omitempty"` - // Warning: Informational warning which replaces the list of backend services - // when the list is empty. + // Warning: Informational warning which replaces the list of + // backend services when the list is empty. Warning *TargetHttpProxiesScopedListWarning `json:"warning,omitempty"` // ForceSendFields is a list of field names (e.g. "TargetHttpProxies") to // unconditionally include in API requests. By default, fields with empty or @@ -46327,76 +74434,99 @@ type TargetHttpProxiesScopedList struct { NullFields []string `json:"-"` } -func (s *TargetHttpProxiesScopedList) MarshalJSON() ([]byte, error) { +func (s TargetHttpProxiesScopedList) MarshalJSON() ([]byte, error) { type NoMethod TargetHttpProxiesScopedList - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } // TargetHttpProxiesScopedListWarning: Informational warning which replaces the -// list of backend services when the list is empty. +// list of +// backend services when the list is empty. type TargetHttpProxiesScopedListWarning 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. + // 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" - Warning about failed cleanup of transient changes made - // by a failed operation. + // by a failed + // operation. // "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was created. // "DEPRECATED_TYPE_USED" - When deploying and at least one of the resources - // has a type marked as deprecated + // has a type marked as + // deprecated // "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk that is // larger than image size. // "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the - // resources has a type marked as experimental + // resources has a type marked as + // experimental // "EXTERNAL_API_WARNING" - Warning that is present in an external api call // "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been - // overridden. Deprecated unused field. + // overridden. + // Deprecated unused field. // "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an injected // kernel, which is deprecated. // "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB" - A WEIGHTED_MAGLEV backend - // service is associated with a health check that is not of type - // HTTP/HTTPS/HTTP2. + // service is associated with a health check that is + // not of type HTTP/HTTPS/HTTP2. // "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a // exceedingly large number of resources // "LIST_OVERHEAD_QUOTA_EXCEED" - Resource can't be retrieved due to list - // overhead quota exceed which captures the amount of resources filtered out by + // overhead quota exceed + // which captures the amount of resources filtered out by // user-defined list filter. // "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is not - // assigned to an instance on the network. + // assigned to an instance on the + // network. // "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot ip // forward. // "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE" - The route's nextHopInstance - // URL refers to an instance that does not have an ipv6 interface on the same - // network as the route. + // URL refers to an instance that does not have an + // ipv6 interface on the same network as the route. // "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL refers to // an instance that does not exist. // "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance URL - // refers to an instance that is not on the same network as the route. + // refers to an instance that is not on the + // same network as the route. // "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not have a // status of RUNNING. // "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to continue - // the process despite the mentioned error. + // the process despite + // the mentioned error. // "NO_RESULTS_ON_PAGE" - No results are present on a particular list page. // "PARTIAL_SUCCESS" - Success is reported, but some results may be missing // due to errors + // "QUOTA_INFO_UNAVAILABLE" - Quota information is not available to client + // requests (e.g: + // regions.list). // "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource that - // requires a TOS they have not accepted. + // requires a TOS they have not + // accepted. // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a resource is // in use. // "RESOURCE_NOT_DELETED" - One or more of the resources set to auto-delete - // could not be deleted because they were in use. + // could not be deleted + // because they were in use. // "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is // ignored. // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in instance - // group manager is valid as such, but its application does not make a lot of - // sense, because it allows only single instance in instance group. + // group manager is valid as such, but + // its application does not make a lot of sense, because it allows only + // single instance in instance group. // "UNDECLARED_PROPERTIES" - When undeclared properties in the schema are // present // "UNREACHABLE" - A given scope cannot be reached. 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: [Output Only] Metadata about this warning in key: + // value format. For example: + // + // "data": [ + // { + // "key": "scope", + // "value": "zones/us-east1-d" + // } Data []*TargetHttpProxiesScopedListWarningData `json:"data,omitempty"` // Message: [Output Only] A human-readable description of the warning code. Message string `json:"message,omitempty"` @@ -46413,19 +74543,22 @@ type TargetHttpProxiesScopedListWarning struct { NullFields []string `json:"-"` } -func (s *TargetHttpProxiesScopedListWarning) MarshalJSON() ([]byte, error) { +func (s TargetHttpProxiesScopedListWarning) MarshalJSON() ([]byte, error) { type NoMethod TargetHttpProxiesScopedListWarning - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } type TargetHttpProxiesScopedListWarningData 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: [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"` @@ -46442,73 +74575,108 @@ type TargetHttpProxiesScopedListWarningData struct { NullFields []string `json:"-"` } -func (s *TargetHttpProxiesScopedListWarningData) MarshalJSON() ([]byte, error) { +func (s TargetHttpProxiesScopedListWarningData) MarshalJSON() ([]byte, error) { type NoMethod TargetHttpProxiesScopedListWarningData - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) -} - -// TargetHttpProxy: Represents a Target HTTP Proxy resource. Google Compute -// Engine has two Target HTTP Proxy resources: * Global -// (/compute/docs/reference/rest/v1/targetHttpProxies) * Regional -// (/compute/docs/reference/rest/v1/regionTargetHttpProxies) A target HTTP -// proxy is a component of Google Cloud HTTP load balancers. * -// targetHttpProxies are used by global external Application Load Balancers, -// classic Application Load Balancers, cross-region internal Application Load -// Balancers, and Traffic Director. * regionTargetHttpProxies are used by -// regional internal Application Load Balancers and regional external -// Application Load Balancers. Forwarding rules reference a target HTTP proxy, -// and the target proxy then references a URL map. For more information, read -// Using Target Proxies and Forwarding rule concepts. + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +// TargetHttpProxy: Represents a Target HTTP Proxy resource. +// +// Google Compute Engine has two Target HTTP Proxy resources: +// +// * Global (/compute/docs/reference/rest/v1/targetHttpProxies) +// * Regional (/compute/docs/reference/rest/v1/regionTargetHttpProxies) +// +// A target HTTP proxy is a component of Google Cloud HTTP load balancers. +// +// - targetHttpProxies are used by global external Application Load Balancers, +// classic Application Load Balancers, cross-region internal Application +// +// Load +// +// Balancers, and Traffic Director. +// - regionTargetHttpProxies are used by regional internal Application Load +// Balancers and regional external Application Load Balancers. +// +// Forwarding rules reference a target HTTP proxy, and the target proxy +// then references a URL map. For more information, readUsing Target +// Proxies +// and +// Forwarding rule concepts. type TargetHttpProxy struct { - // CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text format. + // CreationTimestamp: Output only. [Output Only] Creation timestamp + // inRFC3339 + // text format. CreationTimestamp string `json:"creationTimestamp,omitempty"` // Description: An optional description of this resource. Provide this property - // when you create the resource. + // when you + // create the resource. Description string `json:"description,omitempty"` // Fingerprint: Fingerprint of this resource. A hash of the contents stored in - // this object. This field is used in optimistic locking. This field will be - // ignored when inserting a TargetHttpProxy. An up-to-date fingerprint must be - // provided in order to patch/update the TargetHttpProxy; otherwise, the - // request will fail with error 412 conditionNotMet. To see the latest - // fingerprint, make a get() request to retrieve the TargetHttpProxy. + // this object. + // This field is used in optimistic locking. This field will be ignored + // when + // inserting a TargetHttpProxy. An up-to-date fingerprint must + // be provided in order to patch/update the TargetHttpProxy; otherwise, + // the + // request will fail with error 412 conditionNotMet. To see the + // latest fingerprint, make a get() request to retrieve the + // TargetHttpProxy. Fingerprint string `json:"fingerprint,omitempty"` // HttpKeepAliveTimeoutSec: Specifies how long to keep a connection open, after - // completing a response, while there is no matching traffic (in seconds). If - // an HTTP keep-alive is not specified, a default value (610 seconds) will be - // used. For global external Application Load Balancers, the minimum allowed - // value is 5 seconds and the maximum allowed value is 1200 seconds. For - // classic Application Load Balancers, this option is not supported. + // completing a response, + // while there is no matching traffic (in seconds). If an HTTP keep-alive + // is + // not specified, a default value (610 seconds) will be used. + // + // For global external Application Load Balancers, the minimum allowed value + // is 5 seconds and the maximum allowed value is 1200 seconds. + // + // For classic Application Load Balancers, this option is not supported. HttpKeepAliveTimeoutSec int64 `json:"httpKeepAliveTimeoutSec,omitempty"` - // Id: [Output Only] The unique identifier for the resource. This identifier is + // Id: [Output Only] The unique identifier for the resource. This identifier + // is // defined by the server. Id uint64 `json:"id,omitempty,string"` - // Kind: [Output Only] Type of resource. Always compute#targetHttpProxy for - // target HTTP proxies. + // Kind: Output only. [Output Only] Type of resource. Always + // compute#targetHttpProxy + // for target HTTP proxies. Kind string `json:"kind,omitempty"` // Name: Name of the resource. Provided by the client when the resource is - // created. The name must be 1-63 characters long, and comply with RFC1035. - // 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. + // created. + // The name must be 1-63 characters long, and comply withRFC1035. + // 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. Name string `json:"name,omitempty"` // ProxyBind: This field only applies when the forwarding rule that references - // this target proxy has a loadBalancingScheme set to INTERNAL_SELF_MANAGED. - // When this field is set to true, Envoy proxies set up inbound traffic - // interception and bind to the IP address and port specified in the forwarding - // rule. This is generally useful when using Traffic Director to configure - // Envoy as a gateway or middle proxy (in other words, not a sidecar proxy). - // The Envoy proxy listens for inbound requests and handles requests when it - // receives them. The default is false. + // this + // target proxy has a loadBalancingScheme set toINTERNAL_SELF_MANAGED. + // + // When this field is set to true, Envoy proxies set up inbound + // traffic interception and bind to the IP address and port specified in + // the + // forwarding rule. This is generally useful when using Traffic Director + // to + // configure Envoy as a gateway or middle proxy (in other words, not a + // sidecar proxy). The Envoy proxy listens for inbound requests and + // handles + // requests when it receives them. + // + // The default is false. ProxyBind bool `json:"proxyBind,omitempty"` - // Region: [Output Only] URL of the region where the regional Target HTTP Proxy + // Region: Output only. [Output Only] URL of the region where the regional + // Target HTTP Proxy // resides. This field is not applicable to global Target HTTP Proxies. Region string `json:"region,omitempty"` // SelfLink: [Output Only] Server-defined URL for the resource. SelfLink string `json:"selfLink,omitempty"` - // UrlMap: URL to the UrlMap resource that defines the mapping from URL to the - // BackendService. + // UrlMap: URL to the UrlMap resource that defines the mapping from URL to + // the BackendService. UrlMap string `json:"urlMap,omitempty"` // ServerResponse contains the HTTP response code and headers from the server. @@ -46526,9 +74694,9 @@ type TargetHttpProxy struct { NullFields []string `json:"-"` } -func (s *TargetHttpProxy) MarshalJSON() ([]byte, error) { +func (s TargetHttpProxy) MarshalJSON() ([]byte, error) { type NoMethod TargetHttpProxy - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } type TargetHttpProxyAggregatedList struct { @@ -46536,18 +74704,22 @@ type TargetHttpProxyAggregatedList struct { Id string `json:"id,omitempty"` // Items: A list of TargetHttpProxiesScopedList resources. Items map[string]TargetHttpProxiesScopedList `json:"items,omitempty"` - // Kind: [Output Only] Type of resource. Always - // compute#targetHttpProxyAggregatedList for lists of Target HTTP Proxies. + // Kind: Output only. [Output Only] Type of resource. + // Alwayscompute#targetHttpProxyAggregatedList for lists of Target + // HTTP + // Proxies. 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. + // results for + // list requests. If the number of results is larger thanmaxResults, 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"` - // SelfLink: [Output Only] Server-defined URL for this resource. + // SelfLink: Output only. [Output Only] Server-defined URL for this resource. SelfLink string `json:"selfLink,omitempty"` - // Unreachables: [Output Only] Unreachable resources. + // Unreachables: Output only. [Output Only] Unreachable resources. Unreachables []string `json:"unreachables,omitempty"` // ServerResponse contains the HTTP response code and headers from the server. @@ -46565,9 +74737,9 @@ type TargetHttpProxyAggregatedList struct { NullFields []string `json:"-"` } -func (s *TargetHttpProxyAggregatedList) MarshalJSON() ([]byte, error) { +func (s TargetHttpProxyAggregatedList) MarshalJSON() ([]byte, error) { type NoMethod TargetHttpProxyAggregatedList - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } // TargetHttpProxyList: A list of TargetHttpProxy resources. @@ -46576,16 +74748,19 @@ type TargetHttpProxyList struct { Id string `json:"id,omitempty"` // Items: A list of TargetHttpProxy resources. Items []*TargetHttpProxy `json:"items,omitempty"` - // Kind: Type of resource. Always compute#targetHttpProxyList for lists of - // target HTTP proxies. + // Kind: Output only. Type of resource. Always compute#targetHttpProxyList for + // lists + // of target HTTP proxies. 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. + // results for + // list requests. If the number of results is larger thanmaxResults, 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"` - // SelfLink: [Output Only] Server-defined URL for this resource. + // SelfLink: Output only. [Output Only] Server-defined URL for this resource. SelfLink string `json:"selfLink,omitempty"` // Warning: [Output Only] Informational warning message. Warning *TargetHttpProxyListWarning `json:"warning,omitempty"` @@ -46605,75 +74780,97 @@ type TargetHttpProxyList struct { NullFields []string `json:"-"` } -func (s *TargetHttpProxyList) MarshalJSON() ([]byte, error) { +func (s TargetHttpProxyList) MarshalJSON() ([]byte, error) { type NoMethod TargetHttpProxyList - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } // TargetHttpProxyListWarning: [Output Only] Informational warning message. type TargetHttpProxyListWarning 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. + // 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" - Warning about failed cleanup of transient changes made - // by a failed operation. + // by a failed + // operation. // "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was created. // "DEPRECATED_TYPE_USED" - When deploying and at least one of the resources - // has a type marked as deprecated + // has a type marked as + // deprecated // "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk that is // larger than image size. // "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the - // resources has a type marked as experimental + // resources has a type marked as + // experimental // "EXTERNAL_API_WARNING" - Warning that is present in an external api call // "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been - // overridden. Deprecated unused field. + // overridden. + // Deprecated unused field. // "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an injected // kernel, which is deprecated. // "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB" - A WEIGHTED_MAGLEV backend - // service is associated with a health check that is not of type - // HTTP/HTTPS/HTTP2. + // service is associated with a health check that is + // not of type HTTP/HTTPS/HTTP2. // "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a // exceedingly large number of resources // "LIST_OVERHEAD_QUOTA_EXCEED" - Resource can't be retrieved due to list - // overhead quota exceed which captures the amount of resources filtered out by + // overhead quota exceed + // which captures the amount of resources filtered out by // user-defined list filter. // "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is not - // assigned to an instance on the network. + // assigned to an instance on the + // network. // "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot ip // forward. // "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE" - The route's nextHopInstance - // URL refers to an instance that does not have an ipv6 interface on the same - // network as the route. + // URL refers to an instance that does not have an + // ipv6 interface on the same network as the route. // "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL refers to // an instance that does not exist. // "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance URL - // refers to an instance that is not on the same network as the route. + // refers to an instance that is not on the + // same network as the route. // "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not have a // status of RUNNING. // "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to continue - // the process despite the mentioned error. + // the process despite + // the mentioned error. // "NO_RESULTS_ON_PAGE" - No results are present on a particular list page. // "PARTIAL_SUCCESS" - Success is reported, but some results may be missing // due to errors + // "QUOTA_INFO_UNAVAILABLE" - Quota information is not available to client + // requests (e.g: + // regions.list). // "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource that - // requires a TOS they have not accepted. + // requires a TOS they have not + // accepted. // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a resource is // in use. // "RESOURCE_NOT_DELETED" - One or more of the resources set to auto-delete - // could not be deleted because they were in use. + // could not be deleted + // because they were in use. // "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is // ignored. // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in instance - // group manager is valid as such, but its application does not make a lot of - // sense, because it allows only single instance in instance group. + // group manager is valid as such, but + // its application does not make a lot of sense, because it allows only + // single instance in instance group. // "UNDECLARED_PROPERTIES" - When undeclared properties in the schema are // present // "UNREACHABLE" - A given scope cannot be reached. 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: [Output Only] Metadata about this warning in key: + // value format. For example: + // + // "data": [ + // { + // "key": "scope", + // "value": "zones/us-east1-d" + // } Data []*TargetHttpProxyListWarningData `json:"data,omitempty"` // Message: [Output Only] A human-readable description of the warning code. Message string `json:"message,omitempty"` @@ -46690,19 +74887,22 @@ type TargetHttpProxyListWarning struct { NullFields []string `json:"-"` } -func (s *TargetHttpProxyListWarning) MarshalJSON() ([]byte, error) { +func (s TargetHttpProxyListWarning) MarshalJSON() ([]byte, error) { type NoMethod TargetHttpProxyListWarning - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } type TargetHttpProxyListWarningData 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: [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"` @@ -46719,16 +74919,16 @@ type TargetHttpProxyListWarningData struct { NullFields []string `json:"-"` } -func (s *TargetHttpProxyListWarningData) MarshalJSON() ([]byte, error) { +func (s TargetHttpProxyListWarningData) MarshalJSON() ([]byte, error) { type NoMethod TargetHttpProxyListWarningData - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } type TargetHttpsProxiesScopedList struct { // TargetHttpsProxies: A list of TargetHttpsProxies contained in this scope. TargetHttpsProxies []*TargetHttpsProxy `json:"targetHttpsProxies,omitempty"` - // Warning: Informational warning which replaces the list of backend services - // when the list is empty. + // Warning: Informational warning which replaces the list of + // backend services when the list is empty. Warning *TargetHttpsProxiesScopedListWarning `json:"warning,omitempty"` // ForceSendFields is a list of field names (e.g. "TargetHttpsProxies") to // unconditionally include in API requests. By default, fields with empty or @@ -46743,76 +74943,99 @@ type TargetHttpsProxiesScopedList struct { NullFields []string `json:"-"` } -func (s *TargetHttpsProxiesScopedList) MarshalJSON() ([]byte, error) { +func (s TargetHttpsProxiesScopedList) MarshalJSON() ([]byte, error) { type NoMethod TargetHttpsProxiesScopedList - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } // TargetHttpsProxiesScopedListWarning: Informational warning which replaces -// the list of backend services when the list is empty. +// the list of +// backend services when the list is empty. type TargetHttpsProxiesScopedListWarning 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. + // 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" - Warning about failed cleanup of transient changes made - // by a failed operation. + // by a failed + // operation. // "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was created. // "DEPRECATED_TYPE_USED" - When deploying and at least one of the resources - // has a type marked as deprecated + // has a type marked as + // deprecated // "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk that is // larger than image size. // "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the - // resources has a type marked as experimental + // resources has a type marked as + // experimental // "EXTERNAL_API_WARNING" - Warning that is present in an external api call // "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been - // overridden. Deprecated unused field. + // overridden. + // Deprecated unused field. // "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an injected // kernel, which is deprecated. // "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB" - A WEIGHTED_MAGLEV backend - // service is associated with a health check that is not of type - // HTTP/HTTPS/HTTP2. + // service is associated with a health check that is + // not of type HTTP/HTTPS/HTTP2. // "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a // exceedingly large number of resources // "LIST_OVERHEAD_QUOTA_EXCEED" - Resource can't be retrieved due to list - // overhead quota exceed which captures the amount of resources filtered out by + // overhead quota exceed + // which captures the amount of resources filtered out by // user-defined list filter. // "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is not - // assigned to an instance on the network. + // assigned to an instance on the + // network. // "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot ip // forward. // "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE" - The route's nextHopInstance - // URL refers to an instance that does not have an ipv6 interface on the same - // network as the route. + // URL refers to an instance that does not have an + // ipv6 interface on the same network as the route. // "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL refers to // an instance that does not exist. // "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance URL - // refers to an instance that is not on the same network as the route. + // refers to an instance that is not on the + // same network as the route. // "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not have a // status of RUNNING. // "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to continue - // the process despite the mentioned error. + // the process despite + // the mentioned error. // "NO_RESULTS_ON_PAGE" - No results are present on a particular list page. // "PARTIAL_SUCCESS" - Success is reported, but some results may be missing // due to errors + // "QUOTA_INFO_UNAVAILABLE" - Quota information is not available to client + // requests (e.g: + // regions.list). // "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource that - // requires a TOS they have not accepted. + // requires a TOS they have not + // accepted. // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a resource is // in use. // "RESOURCE_NOT_DELETED" - One or more of the resources set to auto-delete - // could not be deleted because they were in use. + // could not be deleted + // because they were in use. // "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is // ignored. // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in instance - // group manager is valid as such, but its application does not make a lot of - // sense, because it allows only single instance in instance group. + // group manager is valid as such, but + // its application does not make a lot of sense, because it allows only + // single instance in instance group. // "UNDECLARED_PROPERTIES" - When undeclared properties in the schema are // present // "UNREACHABLE" - A given scope cannot be reached. 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: [Output Only] Metadata about this warning in key: + // value format. For example: + // + // "data": [ + // { + // "key": "scope", + // "value": "zones/us-east1-d" + // } Data []*TargetHttpsProxiesScopedListWarningData `json:"data,omitempty"` // Message: [Output Only] A human-readable description of the warning code. Message string `json:"message,omitempty"` @@ -46829,19 +75052,22 @@ type TargetHttpsProxiesScopedListWarning struct { NullFields []string `json:"-"` } -func (s *TargetHttpsProxiesScopedListWarning) MarshalJSON() ([]byte, error) { +func (s TargetHttpsProxiesScopedListWarning) MarshalJSON() ([]byte, error) { type NoMethod TargetHttpsProxiesScopedListWarning - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } type TargetHttpsProxiesScopedListWarningData 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: [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"` @@ -46858,16 +75084,18 @@ type TargetHttpsProxiesScopedListWarningData struct { NullFields []string `json:"-"` } -func (s *TargetHttpsProxiesScopedListWarningData) MarshalJSON() ([]byte, error) { +func (s TargetHttpsProxiesScopedListWarningData) MarshalJSON() ([]byte, error) { type NoMethod TargetHttpsProxiesScopedListWarningData - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } type TargetHttpsProxiesSetCertificateMapRequest struct { // CertificateMap: URL of the Certificate Map to associate with this - // TargetHttpsProxy. Accepted format is - // //certificatemanager.googleapis.com/projects/{project - // }/locations/{location}/certificateMaps/{resourceName}. + // TargetHttpsProxy. + // + // Accepted format + // is//certificatemanager.googleapis.com/projects/{project}/locations/{location} + // /certificateMaps/{resourceName}. CertificateMap string `json:"certificateMap,omitempty"` // ForceSendFields is a list of field names (e.g. "CertificateMap") to // unconditionally include in API requests. By default, fields with empty or @@ -46882,9 +75110,9 @@ type TargetHttpsProxiesSetCertificateMapRequest struct { NullFields []string `json:"-"` } -func (s *TargetHttpsProxiesSetCertificateMapRequest) MarshalJSON() ([]byte, error) { +func (s TargetHttpsProxiesSetCertificateMapRequest) MarshalJSON() ([]byte, error) { type NoMethod TargetHttpsProxiesSetCertificateMapRequest - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } type TargetHttpsProxiesSetQuicOverrideRequest struct { @@ -46895,7 +75123,8 @@ type TargetHttpsProxiesSetQuicOverrideRequest struct { // clients. // "ENABLE" - The load balancer will attempt to negotiate QUIC with clients. // "NONE" - No overrides to the default QUIC policy. This option is implicit - // if no QUIC override has been specified in the request. + // if + // no QUIC override has been specified in the request. QuicOverride string `json:"quicOverride,omitempty"` // ForceSendFields is a list of field names (e.g. "QuicOverride") to // unconditionally include in API requests. By default, fields with empty or @@ -46910,15 +75139,17 @@ type TargetHttpsProxiesSetQuicOverrideRequest struct { NullFields []string `json:"-"` } -func (s *TargetHttpsProxiesSetQuicOverrideRequest) MarshalJSON() ([]byte, error) { +func (s TargetHttpsProxiesSetQuicOverrideRequest) MarshalJSON() ([]byte, error) { type NoMethod TargetHttpsProxiesSetQuicOverrideRequest - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } type TargetHttpsProxiesSetSslCertificatesRequest struct { - // SslCertificates: New set of SslCertificate resources to associate with this - // TargetHttpsProxy resource. At least one SSL certificate must be specified. - // Currently, you may specify up to 15 SSL certificates. + // SslCertificates: New set of SslCertificate resources to associate + // with this TargetHttpsProxy resource. At least one SSL + // certificate must be specified. Currently, you may specify up to 15 + // SSL + // certificates. SslCertificates []string `json:"sslCertificates,omitempty"` // ForceSendFields is a list of field names (e.g. "SslCertificates") to // unconditionally include in API requests. By default, fields with empty or @@ -46933,126 +75164,286 @@ type TargetHttpsProxiesSetSslCertificatesRequest struct { NullFields []string `json:"-"` } -func (s *TargetHttpsProxiesSetSslCertificatesRequest) MarshalJSON() ([]byte, error) { +func (s TargetHttpsProxiesSetSslCertificatesRequest) MarshalJSON() ([]byte, error) { type NoMethod TargetHttpsProxiesSetSslCertificatesRequest - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) -} - -// TargetHttpsProxy: Represents a Target HTTPS Proxy resource. Google Compute -// Engine has two Target HTTPS Proxy resources: * Global -// (/compute/docs/reference/rest/v1/targetHttpsProxies) * Regional -// (/compute/docs/reference/rest/v1/regionTargetHttpsProxies) A target HTTPS -// proxy is a component of GCP HTTPS load balancers. * targetHttpProxies are -// used by global external Application Load Balancers, classic Application Load -// Balancers, cross-region internal Application Load Balancers, and Traffic -// Director. * regionTargetHttpProxies are used by regional internal -// Application Load Balancers and regional external Application Load Balancers. -// Forwarding rules reference a target HTTPS proxy, and the target proxy then -// references a URL map. For more information, read Using Target Proxies and + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +// TargetHttpsProxy: Represents a Target HTTPS Proxy resource. +// +// Google Compute Engine has two Target HTTPS Proxy resources: +// +// * Global (/compute/docs/reference/rest/v1/targetHttpsProxies) +// * Regional (/compute/docs/reference/rest/v1/regionTargetHttpsProxies) +// +// A target HTTPS proxy is a component of Google Cloud HTTPS load balancers. +// +// * targetHttpsProxies are used by global external Application Load +// Balancers, +// +// classic Application Load Balancers, cross-region internal Application +// +// Load +// +// Balancers, and Traffic Director. +// - regionTargetHttpsProxies are used by regional internal Application Load +// Balancers and regional external Application Load Balancers. +// +// Forwarding rules reference a target HTTPS proxy, and the target proxy +// then references a URL map. For more information, readUsing Target +// Proxies +// and // Forwarding rule concepts. type TargetHttpsProxy struct { // AuthorizationPolicy: Optional. A URL referring to a - // networksecurity.AuthorizationPolicy resource that describes how the proxy - // should authorize inbound traffic. If left blank, access will not be - // restricted by an authorization policy. Refer to the AuthorizationPolicy - // resource for additional details. authorizationPolicy only applies to a - // global TargetHttpsProxy attached to globalForwardingRules with the - // loadBalancingScheme set to INTERNAL_SELF_MANAGED. Note: This field currently - // has no impact. + // networksecurity.AuthorizationPolicy resource + // that describes how the proxy should authorize inbound traffic. If + // left + // blank, access will not be restricted by an authorization policy. + // + // Refer to the AuthorizationPolicy resource for additional + // details. + // + // authorizationPolicy only applies to a globalTargetHttpsProxy attached + // toglobalForwardingRules with theloadBalancingScheme set to + // INTERNAL_SELF_MANAGED. + // + // Note: This field currently has no impact. AuthorizationPolicy string `json:"authorizationPolicy,omitempty"` // CertificateMap: URL of a certificate map that identifies a certificate map - // associated with the given target proxy. This field can only be set for - // global target proxies. If set, sslCertificates will be ignored. Accepted - // format is //certificatemanager.googleapis.com/projects/{project - // }/locations/{location}/certificateMaps/{resourceName}. + // associated with + // the given target proxy. + // This field can only be set for Global external Application Load Balancer + // or + // Classic Application Load Balancer. For other products use + // Certificate + // Manager Certificates instead. + // + // If set, sslCertificates will be ignored. + // + // Accepted format + // is//certificatemanager.googleapis.com/projects/{project}/locations/{location} + // /certificateMaps/{resourceName}. CertificateMap string `json:"certificateMap,omitempty"` - // CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text format. + // CreationTimestamp: Output only. [Output Only] Creation timestamp + // inRFC3339 + // text format. CreationTimestamp string `json:"creationTimestamp,omitempty"` // Description: An optional description of this resource. Provide this property - // when you create the resource. + // when you + // create the resource. Description string `json:"description,omitempty"` // Fingerprint: Fingerprint of this resource. A hash of the contents stored in - // this object. This field is used in optimistic locking. This field will be - // ignored when inserting a TargetHttpsProxy. An up-to-date fingerprint must be - // provided in order to patch the TargetHttpsProxy; otherwise, the request will - // fail with error 412 conditionNotMet. To see the latest fingerprint, make a - // get() request to retrieve the TargetHttpsProxy. + // this object. + // This field is used in optimistic locking. This field will be ignored + // when + // inserting a TargetHttpsProxy. An up-to-date fingerprint must + // be provided in order to patch the TargetHttpsProxy; otherwise, the + // request + // will fail with error 412 conditionNotMet. To see the latest + // fingerprint, make a get() request to retrieve the + // TargetHttpsProxy. Fingerprint string `json:"fingerprint,omitempty"` // HttpKeepAliveTimeoutSec: Specifies how long to keep a connection open, after - // completing a response, while there is no matching traffic (in seconds). If - // an HTTP keep-alive is not specified, a default value (610 seconds) will be - // used. For global external Application Load Balancers, the minimum allowed - // value is 5 seconds and the maximum allowed value is 1200 seconds. For - // classic Application Load Balancers, this option is not supported. + // completing a response, + // while there is no matching traffic (in seconds). If an HTTP keep-alive + // is + // not specified, a default value (610 seconds) will be used. + // + // For global external Application Load Balancers, the minimum allowed value + // is 5 seconds and the maximum allowed value is 1200 seconds. + // + // For classic Application Load Balancers, this option is not supported. HttpKeepAliveTimeoutSec int64 `json:"httpKeepAliveTimeoutSec,omitempty"` - // Id: [Output Only] The unique identifier for the resource. This identifier is + // Id: [Output Only] The unique identifier for the resource. This identifier + // is // defined by the server. Id uint64 `json:"id,omitempty,string"` - // Kind: [Output Only] Type of resource. Always compute#targetHttpsProxy for - // target HTTPS proxies. + // Kind: Output only. [Output Only] Type of resource. + // Alwayscompute#targetHttpsProxy for target HTTPS proxies. Kind string `json:"kind,omitempty"` // Name: Name of the resource. Provided by the client when the resource is - // created. The name must be 1-63 characters long, and comply with RFC1035. - // 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. + // created. + // The name must be 1-63 characters long, and comply withRFC1035. + // 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. Name string `json:"name,omitempty"` // ProxyBind: This field only applies when the forwarding rule that references - // this target proxy has a loadBalancingScheme set to INTERNAL_SELF_MANAGED. - // When this field is set to true, Envoy proxies set up inbound traffic - // interception and bind to the IP address and port specified in the forwarding - // rule. This is generally useful when using Traffic Director to configure - // Envoy as a gateway or middle proxy (in other words, not a sidecar proxy). - // The Envoy proxy listens for inbound requests and handles requests when it - // receives them. The default is false. + // this + // target proxy has a loadBalancingScheme set toINTERNAL_SELF_MANAGED. + // + // When this field is set to true, Envoy proxies set up inbound + // traffic interception and bind to the IP address and port specified in + // the + // forwarding rule. This is generally useful when using Traffic Director + // to + // configure Envoy as a gateway or middle proxy (in other words, not a + // sidecar proxy). The Envoy proxy listens for inbound requests and + // handles + // requests when it receives them. + // + // The default is false. ProxyBind bool `json:"proxyBind,omitempty"` // QuicOverride: Specifies the QUIC override policy for this TargetHttpsProxy - // resource. This setting determines whether the load balancer attempts to - // negotiate QUIC with clients. You can specify NONE, ENABLE, or DISABLE. - - // When quic-override is set to NONE, Google manages whether QUIC is used. - - // When quic-override is set to ENABLE, the load balancer uses QUIC when - // possible. - When quic-override is set to DISABLE, the load balancer doesn't - // use QUIC. - If the quic-override flag is not specified, NONE is implied. + // resource. This + // setting determines whether the load balancer attempts to negotiate QUIC + // with clients. + // You can specify NONE, ENABLE, orDISABLE. + // + // - When quic-override is set to NONE, + // Google manages whether QUIC is used. + // - When quic-override is set to ENABLE, the + // load balancer uses QUIC when possible. + // - When quic-override is set to DISABLE, the + // load balancer doesn't use QUIC. + // - If the quic-override flag is not specified,NONE is implied. // // Possible values: // "DISABLE" - The load balancer will not attempt to negotiate QUIC with // clients. // "ENABLE" - The load balancer will attempt to negotiate QUIC with clients. // "NONE" - No overrides to the default QUIC policy. This option is implicit - // if no QUIC override has been specified in the request. + // if + // no QUIC override has been specified in the request. QuicOverride string `json:"quicOverride,omitempty"` - // Region: [Output Only] URL of the region where the regional TargetHttpsProxy + // Region: Output only. [Output Only] URL of the region where the regional + // TargetHttpsProxy // resides. This field is not applicable to global TargetHttpsProxies. Region string `json:"region,omitempty"` // SelfLink: [Output Only] Server-defined URL for the resource. SelfLink string `json:"selfLink,omitempty"` // ServerTlsPolicy: Optional. A URL referring to a - // networksecurity.ServerTlsPolicy resource that describes how the proxy should - // authenticate inbound traffic. serverTlsPolicy only applies to a global - // TargetHttpsProxy attached to globalForwardingRules with the - // loadBalancingScheme set to INTERNAL_SELF_MANAGED or EXTERNAL or - // EXTERNAL_MANAGED. For details which ServerTlsPolicy resources are accepted - // with INTERNAL_SELF_MANAGED and which with EXTERNAL, EXTERNAL_MANAGED - // loadBalancingScheme consult ServerTlsPolicy documentation. If left blank, - // communications are not encrypted. + // networksecurity.ServerTlsPolicy resource + // that describes how the proxy should authenticate inbound traffic. + // + // serverTlsPolicy only applies to a globalTargetHttpsProxy attached + // toglobalForwardingRules with theloadBalancingScheme set to + // INTERNAL_SELF_MANAGED + // or EXTERNAL orEXTERNAL_MANAGED or INTERNAL_MANAGED. + // It also applies to a regional TargetHttpsProxy attached to + // regional forwardingRules with theloadBalancingScheme set to EXTERNAL_MANAGED + // orINTERNAL_MANAGED. For details whichServerTlsPolicy resources are accepted + // withINTERNAL_SELF_MANAGED and which with EXTERNAL,INTERNAL_MANAGED, + // EXTERNAL_MANAGEDloadBalancingScheme consult ServerTlsPolicy + // documentation. + // + // If left blank, communications are not encrypted. ServerTlsPolicy string `json:"serverTlsPolicy,omitempty"` // SslCertificates: URLs to SslCertificate resources that are used to - // authenticate connections between users and the load balancer. At least one - // SSL certificate must be specified. Currently, you may specify up to 15 SSL - // certificates. sslCertificates do not apply when the load balancing scheme is - // set to INTERNAL_SELF_MANAGED. + // authenticate + // connections between users and the load balancer. At least one + // SSL + // certificate must be specified. SslCertificates do not apply when the + // load + // balancing scheme is set to INTERNAL_SELF_MANAGED. + // + // The URLs should refer to a SSL Certificate resource or Certificate + // Manager + // Certificate resource. Mixing Classic Certificates and Certificate + // Manager + // Certificates is not allowed. Certificate Manager Certificates must + // include + // the certificatemanager API namespace. Using Certificate Manager + // Certificates in this field is not supported by Global external + // Application + // Load Balancer or Classic Application Load Balancer, use + // certificate_map + // instead. + // + // Currently, you may specify up to 15 Classic SSL Certificates or up to + // 100 + // Certificate Manager Certificates. + // + // Certificate Manager Certificates accepted formats are: + // + // - + // //certificatemanager.googleapis.com/projects/{project}/locations/{location}/c + // ertificates/{resourceName}. + // - + // https://certificatemanager.googleapis.com/v1alpha1/projects/{project}/locations/{location}/certificates/{resourceName}. SslCertificates []string `json:"sslCertificates,omitempty"` // SslPolicy: URL of SslPolicy resource that will be associated with the - // TargetHttpsProxy resource. If not set, the TargetHttpsProxy resource has no + // TargetHttpsProxy + // resource. If not set, the TargetHttpsProxy resource has no // SSL policy configured. SslPolicy string `json:"sslPolicy,omitempty"` + // TlsEarlyData: Specifies whether TLS 1.3 0-RTT Data ("Early Data") should be + // accepted + // for this service. Early Data allows a TLS resumption handshake to + // include + // the initial application payload (a HTTP request) alongside the + // handshake, + // reducing the effective round trips to "zero". This applies to TLS + // 1.3 + // connections over TCP (HTTP/2) as well as over UDP (QUIC/h3). + // + // + // This can improve application performance, especially on networks + // where + // interruptions may be common, such as on mobile. + // + // + // Requests with Early Data will have the "Early-Data" HTTP header set on + // the request, with a value of "1", to allow the backend to determine + // whether + // Early Data was included. + // + // + // Note: TLS Early Data may allow requests to be replayed, as the data is + // sent to the backend before the handshake has fully completed. + // Applications + // that allow idempotent HTTP methods to make non-idempotent changes, such as + // a GET request updating a database, should not accept Early Data on + // those + // requests, and reject requests with the "Early-Data: 1" HTTP header + // by + // returning a HTTP 425 (Too Early) status code, in order to remain + // RFC + // compliant. + // + // + // The default value is DISABLED. + // + // Possible values: + // "DISABLED" - TLS 1.3 Early Data is not advertised, and any (invalid) + // attempts to send + // Early Data will be rejected by closing the connection. + // "PERMISSIVE" - This enables TLS 1.3 0-RTT, and only allows Early Data to + // be included on + // requests with safe HTTP methods (GET, HEAD, OPTIONS, TRACE). This mode + // does not enforce any other limitations for requests with Early Data. + // The + // application owner should validate that Early Data is acceptable for a + // given request path. + // "STRICT" - This enables TLS 1.3 0-RTT, and only allows Early Data to be + // included on + // requests with safe HTTP methods (GET, HEAD, OPTIONS, TRACE) without + // query + // parameters. Requests that send Early Data with non-idempotent HTTP + // methods or with query parameters will be rejected with a HTTP 425. + // "UNRESTRICTED" - This enables TLS 1.3 Early Data for requests with any + // HTTP method + // including non-idempotent methods list POST. This mode does not enforce + // any other limitations. This may be valuable for gRPC use cases. However, + // we do not recommend this method unless you have evaluated your + // security + // stance and mitigated the risk of replay attacks using other mechanisms. + TlsEarlyData string `json:"tlsEarlyData,omitempty"` // UrlMap: A fully-qualified or valid partial URL to the UrlMap resource that - // defines the mapping from URL to the BackendService. For example, the - // following are all valid URLs for specifying a URL map: - - // https://www.googleapis.compute/v1/projects/project/global/urlMaps/ url-map - - // projects/project/global/urlMaps/url-map - global/urlMaps/url-map + // defines + // the mapping from URL to the BackendService. For example, the following + // are + // all valid URLs for specifying a URL map: + // + // - + // https://www.googleapis.compute/v1/projects/project/global/urlMaps/url-map + // - projects/project/global/urlMaps/url-map + // - global/urlMaps/url-map UrlMap string `json:"urlMap,omitempty"` // ServerResponse contains the HTTP response code and headers from the server. @@ -47070,9 +75461,9 @@ type TargetHttpsProxy struct { NullFields []string `json:"-"` } -func (s *TargetHttpsProxy) MarshalJSON() ([]byte, error) { +func (s TargetHttpsProxy) MarshalJSON() ([]byte, error) { type NoMethod TargetHttpsProxy - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } type TargetHttpsProxyAggregatedList struct { @@ -47080,18 +75471,21 @@ type TargetHttpsProxyAggregatedList struct { Id string `json:"id,omitempty"` // Items: A list of TargetHttpsProxiesScopedList resources. Items map[string]TargetHttpsProxiesScopedList `json:"items,omitempty"` - // Kind: [Output Only] Type of resource. Always - // compute#targetHttpsProxyAggregatedList for lists of Target HTTP Proxies. + // Kind: Output only. [Output Only] Type of resource. + // Alwayscompute#targetHttpsProxyAggregatedList for lists of Target + // HTTP Proxies. 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. + // results for + // list requests. If the number of results is larger thanmaxResults, 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"` - // SelfLink: [Output Only] Server-defined URL for this resource. + // SelfLink: Output only. [Output Only] Server-defined URL for this resource. SelfLink string `json:"selfLink,omitempty"` - // Unreachables: [Output Only] Unreachable resources. + // Unreachables: Output only. [Output Only] Unreachable resources. Unreachables []string `json:"unreachables,omitempty"` // Warning: [Output Only] Informational warning message. Warning *TargetHttpsProxyAggregatedListWarning `json:"warning,omitempty"` @@ -47111,76 +75505,98 @@ type TargetHttpsProxyAggregatedList struct { NullFields []string `json:"-"` } -func (s *TargetHttpsProxyAggregatedList) MarshalJSON() ([]byte, error) { +func (s TargetHttpsProxyAggregatedList) MarshalJSON() ([]byte, error) { type NoMethod TargetHttpsProxyAggregatedList - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } // TargetHttpsProxyAggregatedListWarning: [Output Only] Informational warning // message. type TargetHttpsProxyAggregatedListWarning 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. + // 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" - Warning about failed cleanup of transient changes made - // by a failed operation. + // by a failed + // operation. // "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was created. // "DEPRECATED_TYPE_USED" - When deploying and at least one of the resources - // has a type marked as deprecated + // has a type marked as + // deprecated // "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk that is // larger than image size. // "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the - // resources has a type marked as experimental + // resources has a type marked as + // experimental // "EXTERNAL_API_WARNING" - Warning that is present in an external api call // "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been - // overridden. Deprecated unused field. + // overridden. + // Deprecated unused field. // "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an injected // kernel, which is deprecated. // "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB" - A WEIGHTED_MAGLEV backend - // service is associated with a health check that is not of type - // HTTP/HTTPS/HTTP2. + // service is associated with a health check that is + // not of type HTTP/HTTPS/HTTP2. // "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a // exceedingly large number of resources // "LIST_OVERHEAD_QUOTA_EXCEED" - Resource can't be retrieved due to list - // overhead quota exceed which captures the amount of resources filtered out by + // overhead quota exceed + // which captures the amount of resources filtered out by // user-defined list filter. // "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is not - // assigned to an instance on the network. + // assigned to an instance on the + // network. // "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot ip // forward. // "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE" - The route's nextHopInstance - // URL refers to an instance that does not have an ipv6 interface on the same - // network as the route. + // URL refers to an instance that does not have an + // ipv6 interface on the same network as the route. // "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL refers to // an instance that does not exist. // "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance URL - // refers to an instance that is not on the same network as the route. + // refers to an instance that is not on the + // same network as the route. // "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not have a // status of RUNNING. // "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to continue - // the process despite the mentioned error. + // the process despite + // the mentioned error. // "NO_RESULTS_ON_PAGE" - No results are present on a particular list page. // "PARTIAL_SUCCESS" - Success is reported, but some results may be missing // due to errors + // "QUOTA_INFO_UNAVAILABLE" - Quota information is not available to client + // requests (e.g: + // regions.list). // "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource that - // requires a TOS they have not accepted. + // requires a TOS they have not + // accepted. // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a resource is // in use. // "RESOURCE_NOT_DELETED" - One or more of the resources set to auto-delete - // could not be deleted because they were in use. + // could not be deleted + // because they were in use. // "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is // ignored. // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in instance - // group manager is valid as such, but its application does not make a lot of - // sense, because it allows only single instance in instance group. + // group manager is valid as such, but + // its application does not make a lot of sense, because it allows only + // single instance in instance group. // "UNDECLARED_PROPERTIES" - When undeclared properties in the schema are // present // "UNREACHABLE" - A given scope cannot be reached. 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: [Output Only] Metadata about this warning in key: + // value format. For example: + // + // "data": [ + // { + // "key": "scope", + // "value": "zones/us-east1-d" + // } Data []*TargetHttpsProxyAggregatedListWarningData `json:"data,omitempty"` // Message: [Output Only] A human-readable description of the warning code. Message string `json:"message,omitempty"` @@ -47197,19 +75613,22 @@ type TargetHttpsProxyAggregatedListWarning struct { NullFields []string `json:"-"` } -func (s *TargetHttpsProxyAggregatedListWarning) MarshalJSON() ([]byte, error) { +func (s TargetHttpsProxyAggregatedListWarning) MarshalJSON() ([]byte, error) { type NoMethod TargetHttpsProxyAggregatedListWarning - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } type TargetHttpsProxyAggregatedListWarningData 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: [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"` @@ -47226,9 +75645,9 @@ type TargetHttpsProxyAggregatedListWarningData struct { NullFields []string `json:"-"` } -func (s *TargetHttpsProxyAggregatedListWarningData) MarshalJSON() ([]byte, error) { +func (s TargetHttpsProxyAggregatedListWarningData) MarshalJSON() ([]byte, error) { type NoMethod TargetHttpsProxyAggregatedListWarningData - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } // TargetHttpsProxyList: Contains a list of TargetHttpsProxy resources. @@ -47237,16 +75656,19 @@ type TargetHttpsProxyList struct { Id string `json:"id,omitempty"` // Items: A list of TargetHttpsProxy resources. Items []*TargetHttpsProxy `json:"items,omitempty"` - // Kind: Type of resource. Always compute#targetHttpsProxyList for lists of - // target HTTPS proxies. + // Kind: Output only. Type of resource. Always compute#targetHttpsProxyList + // for + // lists of target HTTPS proxies. 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. + // results for + // list requests. If the number of results is larger thanmaxResults, 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"` - // SelfLink: [Output Only] Server-defined URL for this resource. + // SelfLink: Output only. [Output Only] Server-defined URL for this resource. SelfLink string `json:"selfLink,omitempty"` // Warning: [Output Only] Informational warning message. Warning *TargetHttpsProxyListWarning `json:"warning,omitempty"` @@ -47266,303 +75688,374 @@ type TargetHttpsProxyList struct { NullFields []string `json:"-"` } -func (s *TargetHttpsProxyList) MarshalJSON() ([]byte, error) { +func (s TargetHttpsProxyList) MarshalJSON() ([]byte, error) { type NoMethod TargetHttpsProxyList - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } // TargetHttpsProxyListWarning: [Output Only] Informational warning message. type TargetHttpsProxyListWarning 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. + // 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" - Warning about failed cleanup of transient changes made - // by a failed operation. + // by a failed + // operation. // "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was created. // "DEPRECATED_TYPE_USED" - When deploying and at least one of the resources - // has a type marked as deprecated + // has a type marked as + // deprecated // "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk that is // larger than image size. // "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the - // resources has a type marked as experimental + // resources has a type marked as + // experimental // "EXTERNAL_API_WARNING" - Warning that is present in an external api call // "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been - // overridden. Deprecated unused field. + // overridden. + // Deprecated unused field. // "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an injected // kernel, which is deprecated. // "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB" - A WEIGHTED_MAGLEV backend - // service is associated with a health check that is not of type - // HTTP/HTTPS/HTTP2. + // service is associated with a health check that is + // not of type HTTP/HTTPS/HTTP2. // "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a // exceedingly large number of resources // "LIST_OVERHEAD_QUOTA_EXCEED" - Resource can't be retrieved due to list - // overhead quota exceed which captures the amount of resources filtered out by + // overhead quota exceed + // which captures the amount of resources filtered out by // user-defined list filter. // "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is not - // assigned to an instance on the network. + // assigned to an instance on the + // network. + // "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot ip + // forward. + // "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE" - The route's nextHopInstance + // URL refers to an instance that does not have an + // ipv6 interface on the same network as the route. + // "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL refers to + // an instance that does not exist. + // "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance URL + // refers to an instance that is not on the + // same network as the route. + // "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not have a + // status of RUNNING. + // "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to continue + // the process despite + // the mentioned error. + // "NO_RESULTS_ON_PAGE" - No results are present on a particular list page. + // "PARTIAL_SUCCESS" - Success is reported, but some results may be missing + // due to errors + // "QUOTA_INFO_UNAVAILABLE" - Quota information is not available to client + // requests (e.g: + // regions.list). + // "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource that + // requires a TOS they have not + // accepted. + // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a resource is + // in use. + // "RESOURCE_NOT_DELETED" - One or more of the resources set to auto-delete + // could not be deleted + // because they were in use. + // "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is + // ignored. + // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in instance + // group manager is valid as such, but + // its application does not make a lot of sense, because it allows only + // single instance in instance group. + // "UNDECLARED_PROPERTIES" - When undeclared properties in the schema are + // present + // "UNREACHABLE" - A given scope cannot be reached. + 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 []*TargetHttpsProxyListWarningData `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 or default values are + // omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + 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. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s TargetHttpsProxyListWarning) MarshalJSON() ([]byte, error) { + type NoMethod TargetHttpsProxyListWarning + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +type TargetHttpsProxyListWarningData 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 or default values are + // omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + 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. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s TargetHttpsProxyListWarningData) MarshalJSON() ([]byte, error) { + type NoMethod TargetHttpsProxyListWarningData + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +// TargetInstance: Represents a Target Instance resource. +// +// You can use a target instance to handle traffic for one or more +// forwarding +// rules, which is ideal for forwarding protocol traffic that is managed by +// a +// single source. For example, ESP, AH, TCP, or UDP. +// For more information, readTarget +// instances. +type TargetInstance struct { + // CreationTimestamp: Output only. [Output Only] Creation timestamp + // inRFC3339 + // text format. + CreationTimestamp string `json:"creationTimestamp,omitempty"` + // Description: An optional description of this resource. Provide this property + // when you + // create the resource. + Description string `json:"description,omitempty"` + // Id: [Output Only] The unique identifier for the resource. This identifier + // is + // defined by the server. + Id uint64 `json:"id,omitempty,string"` + // Instance: A URL to the virtual machine instance that handles traffic for + // this target + // instance. When creating a target instance, you can provide + // the + // fully-qualified URL or a valid partial URL to the desired virtual + // machine. + // For example, the following are all valid URLs: + // + // - + // https://www.googleapis.com/compute/v1/projects/project/zones/zone/instances/instance + // + // - projects/project/zones/zone/instances/instance + // - zones/zone/instances/instance + Instance string `json:"instance,omitempty"` + // Kind: Output only. [Output Only] The type of the resource. + // Alwayscompute#targetInstance for target instances. + Kind string `json:"kind,omitempty"` + // Name: Name of the resource. Provided by the client when the resource is + // created. + // The name must be 1-63 characters long, and comply withRFC1035. + // 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. + Name string `json:"name,omitempty"` + // NatPolicy: Must have a value of NO_NAT. + // Protocol forwarding delivers packets while preserving the destination + // IP + // address of the forwarding rule referencing the target instance. + // + // Possible values: + // "NO_NAT" - No NAT performed. + NatPolicy string `json:"natPolicy,omitempty"` + // Network: The URL of the network this target instance uses to forward + // traffic. + // If not specified, the traffic will be forwarded to the network that + // the default network interface belongs to. + Network string `json:"network,omitempty"` + // SecurityPolicy: [Output Only] The resource URL for the security policy + // associated with this + // target instance. + SecurityPolicy string `json:"securityPolicy,omitempty"` + // SelfLink: [Output Only] Server-defined URL for the resource. + SelfLink string `json:"selfLink,omitempty"` + // Zone: Output only. [Output Only] URL of the zone where the target instance + // resides. + // You must specify this field as part of the HTTP request URL. It is + // not settable as a field in the request body. + Zone string `json:"zone,omitempty"` + + // ServerResponse contains the HTTP response code and headers from the server. + googleapi.ServerResponse `json:"-"` + // ForceSendFields is a list of field names (e.g. "CreationTimestamp") to + // unconditionally include in API requests. By default, fields with empty or + // default values are omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + ForceSendFields []string `json:"-"` + // NullFields is a list of field names (e.g. "CreationTimestamp") to include in + // API requests with the JSON null value. By default, fields with empty values + // are omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s TargetInstance) MarshalJSON() ([]byte, error) { + type NoMethod TargetInstance + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +type TargetInstanceAggregatedList struct { + // Id: [Output Only] Unique identifier for the resource; defined by the server. + Id string `json:"id,omitempty"` + // Items: A list of TargetInstance resources. + Items map[string]TargetInstancesScopedList `json:"items,omitempty"` + // Kind: Output only. Type of resource. + 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 thanmaxResults, 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"` + // SelfLink: Output only. [Output Only] Server-defined URL for this resource. + SelfLink string `json:"selfLink,omitempty"` + // Unreachables: Output only. [Output Only] Unreachable resources. + Unreachables []string `json:"unreachables,omitempty"` + // Warning: [Output Only] Informational warning message. + Warning *TargetInstanceAggregatedListWarning `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 or default values are + // omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + 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. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s TargetInstanceAggregatedList) MarshalJSON() ([]byte, error) { + type NoMethod TargetInstanceAggregatedList + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +// TargetInstanceAggregatedListWarning: [Output Only] Informational warning +// message. +type TargetInstanceAggregatedListWarning 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" - Warning about failed cleanup of transient changes made + // by a failed + // operation. + // "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was created. + // "DEPRECATED_TYPE_USED" - When deploying and at least one of the resources + // has a type marked as + // deprecated + // "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk that is + // larger than image size. + // "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the + // resources has a type marked as + // experimental + // "EXTERNAL_API_WARNING" - Warning that is present in an external api call + // "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been + // overridden. + // Deprecated unused field. + // "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an injected + // kernel, which is deprecated. + // "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB" - A WEIGHTED_MAGLEV backend + // service is associated with a health check that is + // not of type HTTP/HTTPS/HTTP2. + // "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a + // exceedingly large number of resources + // "LIST_OVERHEAD_QUOTA_EXCEED" - Resource can't be retrieved due to list + // overhead quota exceed + // which captures the amount of resources filtered out by + // user-defined list filter. + // "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type + // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is not + // assigned to an instance on the + // network. // "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot ip // forward. // "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE" - The route's nextHopInstance - // URL refers to an instance that does not have an ipv6 interface on the same - // network as the route. + // URL refers to an instance that does not have an + // ipv6 interface on the same network as the route. // "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL refers to // an instance that does not exist. // "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance URL - // refers to an instance that is not on the same network as the route. + // refers to an instance that is not on the + // same network as the route. // "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not have a // status of RUNNING. // "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to continue - // the process despite the mentioned error. + // the process despite + // the mentioned error. // "NO_RESULTS_ON_PAGE" - No results are present on a particular list page. // "PARTIAL_SUCCESS" - Success is reported, but some results may be missing // due to errors + // "QUOTA_INFO_UNAVAILABLE" - Quota information is not available to client + // requests (e.g: + // regions.list). // "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource that - // requires a TOS they have not accepted. + // requires a TOS they have not + // accepted. // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a resource is // in use. // "RESOURCE_NOT_DELETED" - One or more of the resources set to auto-delete - // could not be deleted because they were in use. + // could not be deleted + // because they were in use. // "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is // ignored. // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in instance - // group manager is valid as such, but its application does not make a lot of - // sense, because it allows only single instance in instance group. + // group manager is valid as such, but + // its application does not make a lot of sense, because it allows only + // single instance in instance group. // "UNDECLARED_PROPERTIES" - When undeclared properties in the schema are // present // "UNREACHABLE" - A given scope cannot be reached. 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 []*TargetHttpsProxyListWarningData `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 or default values are - // omitted from API requests. See - // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more - // details. - 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. See - // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. - NullFields []string `json:"-"` -} - -func (s *TargetHttpsProxyListWarning) MarshalJSON() ([]byte, error) { - type NoMethod TargetHttpsProxyListWarning - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) -} - -type TargetHttpsProxyListWarningData 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 or default values are - // omitted from API requests. See - // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more - // details. - 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. See - // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. - NullFields []string `json:"-"` -} - -func (s *TargetHttpsProxyListWarningData) MarshalJSON() ([]byte, error) { - type NoMethod TargetHttpsProxyListWarningData - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) -} - -// TargetInstance: Represents a Target Instance resource. You can use a target -// instance to handle traffic for one or more forwarding rules, which is ideal -// for forwarding protocol traffic that is managed by a single source. For -// example, ESP, AH, TCP, or UDP. For more information, read Target instances. -type TargetInstance struct { - // CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text format. - CreationTimestamp string `json:"creationTimestamp,omitempty"` - // Description: An optional description of this resource. Provide this property - // when you create the resource. - Description string `json:"description,omitempty"` - // Id: [Output Only] The unique identifier for the resource. This identifier is - // defined by the server. - Id uint64 `json:"id,omitempty,string"` - // Instance: A URL to the virtual machine instance that handles traffic for - // this target instance. When creating a target instance, you can provide the - // fully-qualified URL or a valid partial URL to the desired virtual machine. - // For example, the following are all valid URLs: - - // https://www.googleapis.com/compute/v1/projects/project/zones/zone - // /instances/instance - projects/project/zones/zone/instances/instance - - // zones/zone/instances/instance - Instance string `json:"instance,omitempty"` - // Kind: [Output Only] The type of the resource. Always compute#targetInstance - // for target instances. - Kind string `json:"kind,omitempty"` - // Name: Name of the resource. Provided by the client when the resource is - // created. The name must be 1-63 characters long, and comply with RFC1035. - // 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. - Name string `json:"name,omitempty"` - // NatPolicy: Must have a value of NO_NAT. Protocol forwarding delivers packets - // while preserving the destination IP address of the forwarding rule - // referencing the target instance. - // - // Possible values: - // "NO_NAT" - No NAT performed. - NatPolicy string `json:"natPolicy,omitempty"` - // Network: The URL of the network this target instance uses to forward - // traffic. If not specified, the traffic will be forwarded to the network that - // the default network interface belongs to. - Network string `json:"network,omitempty"` - // SecurityPolicy: [Output Only] The resource URL for the security policy - // associated with this target instance. - SecurityPolicy string `json:"securityPolicy,omitempty"` - // SelfLink: [Output Only] Server-defined URL for the resource. - SelfLink string `json:"selfLink,omitempty"` - // Zone: [Output Only] URL of the zone where the target instance resides. You - // must specify this field as part of the HTTP request URL. It is not settable - // as a field in the request body. - Zone string `json:"zone,omitempty"` - - // ServerResponse contains the HTTP response code and headers from the server. - googleapi.ServerResponse `json:"-"` - // ForceSendFields is a list of field names (e.g. "CreationTimestamp") to - // unconditionally include in API requests. By default, fields with empty or - // default values are omitted from API requests. See - // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more - // details. - ForceSendFields []string `json:"-"` - // NullFields is a list of field names (e.g. "CreationTimestamp") to include in - // API requests with the JSON null value. By default, fields with empty values - // are omitted from API requests. See - // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. - NullFields []string `json:"-"` -} - -func (s *TargetInstance) MarshalJSON() ([]byte, error) { - type NoMethod TargetInstance - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) -} - -type TargetInstanceAggregatedList struct { - // Id: [Output Only] Unique identifier for the resource; defined by the server. - Id string `json:"id,omitempty"` - // Items: A list of TargetInstance resources. - Items map[string]TargetInstancesScopedList `json:"items,omitempty"` - // Kind: Type of resource. - 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"` - // SelfLink: [Output Only] Server-defined URL for this resource. - SelfLink string `json:"selfLink,omitempty"` - // Unreachables: [Output Only] Unreachable resources. - Unreachables []string `json:"unreachables,omitempty"` - // Warning: [Output Only] Informational warning message. - Warning *TargetInstanceAggregatedListWarning `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 or default values are - // omitted from API requests. See - // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more - // details. - 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. See - // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. - NullFields []string `json:"-"` -} - -func (s *TargetInstanceAggregatedList) MarshalJSON() ([]byte, error) { - type NoMethod TargetInstanceAggregatedList - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) -} - -// TargetInstanceAggregatedListWarning: [Output Only] Informational warning -// message. -type TargetInstanceAggregatedListWarning 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. + // Data: [Output Only] Metadata about this warning in key: + // value format. For example: // - // Possible values: - // "CLEANUP_FAILED" - Warning about failed cleanup of transient changes made - // by a failed operation. - // "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was created. - // "DEPRECATED_TYPE_USED" - When deploying and at least one of the resources - // has a type marked as deprecated - // "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk that is - // larger than image size. - // "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the - // resources has a type marked as experimental - // "EXTERNAL_API_WARNING" - Warning that is present in an external api call - // "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been - // overridden. Deprecated unused field. - // "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an injected - // kernel, which is deprecated. - // "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB" - A WEIGHTED_MAGLEV backend - // service is associated with a health check that is not of type - // HTTP/HTTPS/HTTP2. - // "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a - // exceedingly large number of resources - // "LIST_OVERHEAD_QUOTA_EXCEED" - Resource can't be retrieved due to list - // overhead quota exceed which captures the amount of resources filtered out by - // user-defined list filter. - // "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type - // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is not - // assigned to an instance on the network. - // "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot ip - // forward. - // "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE" - The route's nextHopInstance - // URL refers to an instance that does not have an ipv6 interface on the same - // network as the route. - // "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL refers to - // an instance that does not exist. - // "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance URL - // refers to an instance that is not on the same network as the route. - // "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not have a - // status of RUNNING. - // "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to continue - // the process despite the mentioned error. - // "NO_RESULTS_ON_PAGE" - No results are present on a particular list page. - // "PARTIAL_SUCCESS" - Success is reported, but some results may be missing - // due to errors - // "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource that - // requires a TOS they have not accepted. - // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a resource is - // in use. - // "RESOURCE_NOT_DELETED" - One or more of the resources set to auto-delete - // could not be deleted because they were in use. - // "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is - // ignored. - // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in instance - // group manager is valid as such, but its application does not make a lot of - // sense, because it allows only single instance in instance group. - // "UNDECLARED_PROPERTIES" - When undeclared properties in the schema are - // present - // "UNREACHABLE" - A given scope cannot be reached. - 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": [ + // { + // "key": "scope", + // "value": "zones/us-east1-d" + // } Data []*TargetInstanceAggregatedListWarningData `json:"data,omitempty"` // Message: [Output Only] A human-readable description of the warning code. Message string `json:"message,omitempty"` @@ -47579,19 +76072,22 @@ type TargetInstanceAggregatedListWarning struct { NullFields []string `json:"-"` } -func (s *TargetInstanceAggregatedListWarning) MarshalJSON() ([]byte, error) { +func (s TargetInstanceAggregatedListWarning) MarshalJSON() ([]byte, error) { type NoMethod TargetInstanceAggregatedListWarning - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } type TargetInstanceAggregatedListWarningData 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: [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"` @@ -47608,9 +76104,9 @@ type TargetInstanceAggregatedListWarningData struct { NullFields []string `json:"-"` } -func (s *TargetInstanceAggregatedListWarningData) MarshalJSON() ([]byte, error) { +func (s TargetInstanceAggregatedListWarningData) MarshalJSON() ([]byte, error) { type NoMethod TargetInstanceAggregatedListWarningData - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } // TargetInstanceList: Contains a list of TargetInstance resources. @@ -47619,15 +76115,17 @@ type TargetInstanceList struct { Id string `json:"id,omitempty"` // Items: A list of TargetInstance resources. Items []*TargetInstance `json:"items,omitempty"` - // Kind: Type of resource. + // Kind: Output only. Type of resource. 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. + // results for + // list requests. If the number of results is larger thanmaxResults, 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"` - // SelfLink: [Output Only] Server-defined URL for this resource. + // SelfLink: Output only. [Output Only] Server-defined URL for this resource. SelfLink string `json:"selfLink,omitempty"` // Warning: [Output Only] Informational warning message. Warning *TargetInstanceListWarning `json:"warning,omitempty"` @@ -47647,75 +76145,97 @@ type TargetInstanceList struct { NullFields []string `json:"-"` } -func (s *TargetInstanceList) MarshalJSON() ([]byte, error) { +func (s TargetInstanceList) MarshalJSON() ([]byte, error) { type NoMethod TargetInstanceList - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } // TargetInstanceListWarning: [Output Only] Informational warning message. type TargetInstanceListWarning 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. + // 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" - Warning about failed cleanup of transient changes made - // by a failed operation. + // by a failed + // operation. // "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was created. // "DEPRECATED_TYPE_USED" - When deploying and at least one of the resources - // has a type marked as deprecated + // has a type marked as + // deprecated // "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk that is // larger than image size. // "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the - // resources has a type marked as experimental + // resources has a type marked as + // experimental // "EXTERNAL_API_WARNING" - Warning that is present in an external api call // "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been - // overridden. Deprecated unused field. + // overridden. + // Deprecated unused field. // "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an injected // kernel, which is deprecated. // "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB" - A WEIGHTED_MAGLEV backend - // service is associated with a health check that is not of type - // HTTP/HTTPS/HTTP2. + // service is associated with a health check that is + // not of type HTTP/HTTPS/HTTP2. // "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a // exceedingly large number of resources // "LIST_OVERHEAD_QUOTA_EXCEED" - Resource can't be retrieved due to list - // overhead quota exceed which captures the amount of resources filtered out by + // overhead quota exceed + // which captures the amount of resources filtered out by // user-defined list filter. // "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is not - // assigned to an instance on the network. + // assigned to an instance on the + // network. // "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot ip // forward. // "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE" - The route's nextHopInstance - // URL refers to an instance that does not have an ipv6 interface on the same - // network as the route. + // URL refers to an instance that does not have an + // ipv6 interface on the same network as the route. // "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL refers to // an instance that does not exist. // "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance URL - // refers to an instance that is not on the same network as the route. + // refers to an instance that is not on the + // same network as the route. // "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not have a // status of RUNNING. // "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to continue - // the process despite the mentioned error. + // the process despite + // the mentioned error. // "NO_RESULTS_ON_PAGE" - No results are present on a particular list page. // "PARTIAL_SUCCESS" - Success is reported, but some results may be missing // due to errors + // "QUOTA_INFO_UNAVAILABLE" - Quota information is not available to client + // requests (e.g: + // regions.list). // "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource that - // requires a TOS they have not accepted. + // requires a TOS they have not + // accepted. // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a resource is // in use. // "RESOURCE_NOT_DELETED" - One or more of the resources set to auto-delete - // could not be deleted because they were in use. + // could not be deleted + // because they were in use. // "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is // ignored. // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in instance - // group manager is valid as such, but its application does not make a lot of - // sense, because it allows only single instance in instance group. + // group manager is valid as such, but + // its application does not make a lot of sense, because it allows only + // single instance in instance group. // "UNDECLARED_PROPERTIES" - When undeclared properties in the schema are // present // "UNREACHABLE" - A given scope cannot be reached. 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: [Output Only] Metadata about this warning in key: + // value format. For example: + // + // "data": [ + // { + // "key": "scope", + // "value": "zones/us-east1-d" + // } Data []*TargetInstanceListWarningData `json:"data,omitempty"` // Message: [Output Only] A human-readable description of the warning code. Message string `json:"message,omitempty"` @@ -47732,19 +76252,22 @@ type TargetInstanceListWarning struct { NullFields []string `json:"-"` } -func (s *TargetInstanceListWarning) MarshalJSON() ([]byte, error) { +func (s TargetInstanceListWarning) MarshalJSON() ([]byte, error) { type NoMethod TargetInstanceListWarning - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } type TargetInstanceListWarningData 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: [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"` @@ -47761,16 +76284,16 @@ type TargetInstanceListWarningData struct { NullFields []string `json:"-"` } -func (s *TargetInstanceListWarningData) MarshalJSON() ([]byte, error) { +func (s TargetInstanceListWarningData) MarshalJSON() ([]byte, error) { type NoMethod TargetInstanceListWarningData - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } type TargetInstancesScopedList struct { // TargetInstances: A list of target instances contained in this scope. TargetInstances []*TargetInstance `json:"targetInstances,omitempty"` - // Warning: Informational warning which replaces the list of addresses when the - // list is empty. + // Warning: Informational warning which replaces the list of addresses when + // the list is empty. Warning *TargetInstancesScopedListWarning `json:"warning,omitempty"` // ForceSendFields is a list of field names (e.g. "TargetInstances") to // unconditionally include in API requests. By default, fields with empty or @@ -47785,76 +76308,99 @@ type TargetInstancesScopedList struct { NullFields []string `json:"-"` } -func (s *TargetInstancesScopedList) MarshalJSON() ([]byte, error) { +func (s TargetInstancesScopedList) MarshalJSON() ([]byte, error) { type NoMethod TargetInstancesScopedList - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } // TargetInstancesScopedListWarning: Informational warning which replaces the -// list of addresses when the list is empty. +// list of addresses when +// the list is empty. type TargetInstancesScopedListWarning 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. + // 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" - Warning about failed cleanup of transient changes made - // by a failed operation. + // by a failed + // operation. // "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was created. // "DEPRECATED_TYPE_USED" - When deploying and at least one of the resources - // has a type marked as deprecated + // has a type marked as + // deprecated // "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk that is // larger than image size. // "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the - // resources has a type marked as experimental + // resources has a type marked as + // experimental // "EXTERNAL_API_WARNING" - Warning that is present in an external api call // "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been - // overridden. Deprecated unused field. + // overridden. + // Deprecated unused field. // "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an injected // kernel, which is deprecated. // "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB" - A WEIGHTED_MAGLEV backend - // service is associated with a health check that is not of type - // HTTP/HTTPS/HTTP2. + // service is associated with a health check that is + // not of type HTTP/HTTPS/HTTP2. // "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a // exceedingly large number of resources // "LIST_OVERHEAD_QUOTA_EXCEED" - Resource can't be retrieved due to list - // overhead quota exceed which captures the amount of resources filtered out by + // overhead quota exceed + // which captures the amount of resources filtered out by // user-defined list filter. // "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is not - // assigned to an instance on the network. + // assigned to an instance on the + // network. // "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot ip // forward. // "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE" - The route's nextHopInstance - // URL refers to an instance that does not have an ipv6 interface on the same - // network as the route. + // URL refers to an instance that does not have an + // ipv6 interface on the same network as the route. // "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL refers to // an instance that does not exist. // "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance URL - // refers to an instance that is not on the same network as the route. + // refers to an instance that is not on the + // same network as the route. // "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not have a // status of RUNNING. // "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to continue - // the process despite the mentioned error. + // the process despite + // the mentioned error. // "NO_RESULTS_ON_PAGE" - No results are present on a particular list page. // "PARTIAL_SUCCESS" - Success is reported, but some results may be missing // due to errors + // "QUOTA_INFO_UNAVAILABLE" - Quota information is not available to client + // requests (e.g: + // regions.list). // "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource that - // requires a TOS they have not accepted. + // requires a TOS they have not + // accepted. // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a resource is // in use. // "RESOURCE_NOT_DELETED" - One or more of the resources set to auto-delete - // could not be deleted because they were in use. + // could not be deleted + // because they were in use. // "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is // ignored. // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in instance - // group manager is valid as such, but its application does not make a lot of - // sense, because it allows only single instance in instance group. + // group manager is valid as such, but + // its application does not make a lot of sense, because it allows only + // single instance in instance group. // "UNDECLARED_PROPERTIES" - When undeclared properties in the schema are // present // "UNREACHABLE" - A given scope cannot be reached. 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: [Output Only] Metadata about this warning in key: + // value format. For example: + // + // "data": [ + // { + // "key": "scope", + // "value": "zones/us-east1-d" + // } Data []*TargetInstancesScopedListWarningData `json:"data,omitempty"` // Message: [Output Only] A human-readable description of the warning code. Message string `json:"message,omitempty"` @@ -47871,19 +76417,22 @@ type TargetInstancesScopedListWarning struct { NullFields []string `json:"-"` } -func (s *TargetInstancesScopedListWarning) MarshalJSON() ([]byte, error) { +func (s TargetInstancesScopedListWarning) MarshalJSON() ([]byte, error) { type NoMethod TargetInstancesScopedListWarning - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } type TargetInstancesScopedListWarningData 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: [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"` @@ -47900,108 +76449,155 @@ type TargetInstancesScopedListWarningData struct { NullFields []string `json:"-"` } -func (s *TargetInstancesScopedListWarningData) MarshalJSON() ([]byte, error) { +func (s TargetInstancesScopedListWarningData) MarshalJSON() ([]byte, error) { type NoMethod TargetInstancesScopedListWarningData - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -// TargetPool: Represents a Target Pool resource. Target pools are used with -// external passthrough Network Load Balancers. A target pool references member -// instances, an associated legacy HttpHealthCheck resource, and, optionally, a -// backup target pool. For more information, read Using target pools. +// TargetPool: Represents a Target Pool resource. +// +// Target pools are used with external passthrough Network Load Balancers. +// A target pool references member instances, an associated +// legacy +// HttpHealthCheck resource, and, optionally, a backup target pool. +// For more information, readUsing target pools. type TargetPool struct { // BackupPool: The server-defined URL for the resource. This field is - // applicable only when the containing target pool is serving a forwarding rule - // as the primary pool, and its failoverRatio field is properly set to a value - // between [0, 1]. backupPool and failoverRatio together define the fallback - // behavior of the primary target pool: if the ratio of the healthy instances - // in the primary pool is at or below failoverRatio, traffic arriving at the - // load-balanced IP will be directed to the backup pool. In case where - // failoverRatio and backupPool are not set, or all the instances in the backup - // pool are unhealthy, the traffic will be directed back to the primary pool in - // the "force" mode, where traffic will be spread to the healthy instances with - // the best effort, or to all instances when no instance is healthy. + // applicable only when + // the containing target pool is serving a forwarding rule as the primary + // pool, and its failoverRatio field is properly set to a value + // between [0, 1].backupPool and failoverRatio together define + // the fallback behavior of the primary target pool: if the ratio of + // the + // healthy instances in the primary pool is at or belowfailoverRatio, traffic + // arriving at the load-balanced + // IP will be directed to the backup pool. + // + // In case where failoverRatio and backupPool + // are not set, or all the instances in the backup pool are unhealthy, + // the traffic will be directed back to the primary pool in the "force" + // mode, where traffic will be spread to the healthy instances with the + // best effort, or to all instances when no instance is healthy. BackupPool string `json:"backupPool,omitempty"` - // CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text format. + // CreationTimestamp: Output only. [Output Only] Creation timestamp + // inRFC3339 + // text format. CreationTimestamp string `json:"creationTimestamp,omitempty"` // Description: An optional description of this resource. Provide this property - // when you create the resource. + // when you + // create the resource. Description string `json:"description,omitempty"` // FailoverRatio: This field is applicable only when the containing target pool - // is serving a forwarding rule as the primary pool (i.e., not as a backup pool - // to some other target pool). The value of the field must be in [0, 1]. If - // set, backupPool must also be set. They together define the fallback behavior - // of the primary target pool: if the ratio of the healthy instances in the - // primary pool is at or below this number, traffic arriving at the - // load-balanced IP will be directed to the backup pool. In case where - // failoverRatio is not set or all the instances in the backup pool are - // unhealthy, the traffic will be directed back to the primary pool in the - // "force" mode, where traffic will be spread to the healthy instances with the + // is serving a + // forwarding rule as the primary pool (i.e., not as a backup pool to + // some + // other target pool). The value of the field must be in [0, 1]. + // + // If set, backupPool must also be set. They together define + // the fallback behavior of the primary target pool: if the ratio of + // the + // healthy instances in the primary pool is at or below this number, + // traffic arriving at the load-balanced IP will be directed to the + // backup pool. + // + // In case where failoverRatio is not set or all the + // instances in the backup pool are unhealthy, the traffic will be + // directed back to the primary pool in the "force" mode, where traffic + // will be spread to the healthy instances with the // best effort, or to all instances when no instance is healthy. FailoverRatio float64 `json:"failoverRatio,omitempty"` // HealthChecks: The URL of the HttpHealthCheck resource. A member instance in - // this pool is considered healthy if and only if the health checks pass. Only - // legacy HttpHealthChecks are supported. Only one health check may be + // this + // pool is considered healthy if and only if the health checks pass. + // Only legacy HttpHealthChecks are supported. Only one health check may + // be // specified. HealthChecks []string `json:"healthChecks,omitempty"` - // Id: [Output Only] The unique identifier for the resource. This identifier is + // Id: [Output Only] The unique identifier for the resource. This identifier + // is // defined by the server. Id uint64 `json:"id,omitempty,string"` // Instances: A list of resource URLs to the virtual machine instances serving - // this pool. They must live in zones contained in the same region as this - // pool. + // this pool. + // They must live in zones contained in the same region as this pool. Instances []string `json:"instances,omitempty"` - // Kind: [Output Only] Type of the resource. Always compute#targetPool for - // target pools. + // Kind: Output only. [Output Only] Type of the resource. Always + // compute#targetPool + // for target pools. Kind string `json:"kind,omitempty"` // Name: Name of the resource. Provided by the client when the resource is - // created. The name must be 1-63 characters long, and comply with RFC1035. - // 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. + // created. + // The name must be 1-63 characters long, and comply withRFC1035. + // 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. Name string `json:"name,omitempty"` - // Region: [Output Only] URL of the region where the target pool resides. + // Region: Output only. [Output Only] URL of the region where the target pool + // resides. Region string `json:"region,omitempty"` // SecurityPolicy: [Output Only] The resource URL for the security policy - // associated with this target pool. + // associated with this + // target pool. SecurityPolicy string `json:"securityPolicy,omitempty"` // SelfLink: [Output Only] Server-defined URL for the resource. SelfLink string `json:"selfLink,omitempty"` // SessionAffinity: Session affinity option, must be one of the following - // values: NONE: Connections from the same client IP may go to any instance in - // the pool. CLIENT_IP: Connections from the same client IP will go to the same - // instance in the pool while that instance remains healthy. CLIENT_IP_PROTO: - // Connections from the same client IP with the same IP protocol will go to the - // same instance in the pool while that instance remains healthy. + // values: + // NONE: Connections from the same client IP may go to any + // instance in the pool. + // CLIENT_IP: Connections from the same client IP will go + // to the same instance in + // the pool while that instance remains healthy. + // CLIENT_IP_PROTO: Connections from the same client IP + // with the same IP protocol will go to the same instance in the + // pool while that instance remains healthy. // // Possible values: // "CLIENT_IP" - 2-tuple hash on packet's source and destination IP - // addresses. Connections from the same source IP address to the same - // destination IP address will be served by the same backend VM while that VM - // remains healthy. + // addresses. Connections + // from the same source IP address to the same destination IP address will + // be + // served by the same backend VM while that VM remains healthy. // "CLIENT_IP_NO_DESTINATION" - 1-tuple hash only on packet's source IP - // address. Connections from the same source IP address will be served by the - // same backend VM while that VM remains healthy. This option can only be used - // for Internal TCP/UDP Load Balancing. + // address. Connections from the + // same source IP address will be served by the same backend VM while that + // VM + // remains healthy. This option can only be used for Internal TCP/UDP + // Load Balancing. // "CLIENT_IP_PORT_PROTO" - 5-tuple hash on packet's source and destination - // IP addresses, IP protocol, and source and destination ports. Connections for - // the same IP protocol from the same source IP address and port to the same - // destination IP address and port will be served by the same backend VM while - // that VM remains healthy. This option cannot be used for HTTP(S) load - // balancing. + // IP addresses, IP protocol, + // and source and destination ports. Connections for the same IP protocol + // from the same source IP address and port to the same destination IP + // address + // and port will be served by the same backend VM while that VM + // remains + // healthy. This option cannot be used for HTTP(S) load balancing. // "CLIENT_IP_PROTO" - 3-tuple hash on packet's source and destination IP - // addresses, and IP protocol. Connections for the same IP protocol from the - // same source IP address to the same destination IP address will be served by - // the same backend VM while that VM remains healthy. This option cannot be - // used for HTTP(S) load balancing. + // addresses, and IP + // protocol. Connections for the same IP protocol from the same source + // IP + // address to the same destination IP address will be served by the + // same + // backend VM while that VM remains healthy. This option cannot be used + // for + // HTTP(S) load balancing. // "GENERATED_COOKIE" - Hash based on a cookie generated by the L7 - // loadbalancer. Only valid for HTTP(S) load balancing. + // loadbalancer. + // Only valid for HTTP(S) load balancing. // "HEADER_FIELD" - The hash is based on a user specified header field. // "HTTP_COOKIE" - The hash is based on a user provided cookie. - // "NONE" - No session affinity. Connections from the same client IP may go + // "NONE" - No session affinity. Connections from the same client IP may + // go // to any instance in the pool. + // "STRONG_COOKIE_AFFINITY" - Strong cookie-based affinity. Connections + // bearing the same cookie will be + // served by the same backend VM while that VM remains healthy, as long as + // the + // cookie has not expired. SessionAffinity string `json:"sessionAffinity,omitempty"` // ServerResponse contains the HTTP response code and headers from the server. @@ -48019,9 +76615,9 @@ type TargetPool struct { NullFields []string `json:"-"` } -func (s *TargetPool) MarshalJSON() ([]byte, error) { +func (s TargetPool) MarshalJSON() ([]byte, error) { type NoMethod TargetPool - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } func (s *TargetPool) UnmarshalJSON(data []byte) error { @@ -48043,18 +76639,21 @@ type TargetPoolAggregatedList struct { Id string `json:"id,omitempty"` // Items: A list of TargetPool resources. Items map[string]TargetPoolsScopedList `json:"items,omitempty"` - // Kind: [Output Only] Type of resource. Always - // compute#targetPoolAggregatedList for aggregated lists of target pools. + // Kind: Output only. [Output Only] Type of resource. + // Alwayscompute#targetPoolAggregatedList for aggregated lists of + // target pools. 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. + // results for + // list requests. If the number of results is larger thanmaxResults, 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"` - // SelfLink: [Output Only] Server-defined URL for this resource. + // SelfLink: Output only. [Output Only] Server-defined URL for this resource. SelfLink string `json:"selfLink,omitempty"` - // Unreachables: [Output Only] Unreachable resources. + // Unreachables: Output only. [Output Only] Unreachable resources. Unreachables []string `json:"unreachables,omitempty"` // Warning: [Output Only] Informational warning message. Warning *TargetPoolAggregatedListWarning `json:"warning,omitempty"` @@ -48074,76 +76673,98 @@ type TargetPoolAggregatedList struct { NullFields []string `json:"-"` } -func (s *TargetPoolAggregatedList) MarshalJSON() ([]byte, error) { +func (s TargetPoolAggregatedList) MarshalJSON() ([]byte, error) { type NoMethod TargetPoolAggregatedList - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } // TargetPoolAggregatedListWarning: [Output Only] Informational warning // message. type TargetPoolAggregatedListWarning 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. + // 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" - Warning about failed cleanup of transient changes made - // by a failed operation. + // by a failed + // operation. // "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was created. // "DEPRECATED_TYPE_USED" - When deploying and at least one of the resources - // has a type marked as deprecated + // has a type marked as + // deprecated // "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk that is // larger than image size. // "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the - // resources has a type marked as experimental + // resources has a type marked as + // experimental // "EXTERNAL_API_WARNING" - Warning that is present in an external api call // "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been - // overridden. Deprecated unused field. + // overridden. + // Deprecated unused field. // "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an injected // kernel, which is deprecated. // "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB" - A WEIGHTED_MAGLEV backend - // service is associated with a health check that is not of type - // HTTP/HTTPS/HTTP2. + // service is associated with a health check that is + // not of type HTTP/HTTPS/HTTP2. // "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a // exceedingly large number of resources // "LIST_OVERHEAD_QUOTA_EXCEED" - Resource can't be retrieved due to list - // overhead quota exceed which captures the amount of resources filtered out by + // overhead quota exceed + // which captures the amount of resources filtered out by // user-defined list filter. // "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is not - // assigned to an instance on the network. + // assigned to an instance on the + // network. // "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot ip // forward. // "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE" - The route's nextHopInstance - // URL refers to an instance that does not have an ipv6 interface on the same - // network as the route. + // URL refers to an instance that does not have an + // ipv6 interface on the same network as the route. // "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL refers to // an instance that does not exist. // "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance URL - // refers to an instance that is not on the same network as the route. + // refers to an instance that is not on the + // same network as the route. // "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not have a // status of RUNNING. // "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to continue - // the process despite the mentioned error. + // the process despite + // the mentioned error. // "NO_RESULTS_ON_PAGE" - No results are present on a particular list page. // "PARTIAL_SUCCESS" - Success is reported, but some results may be missing // due to errors + // "QUOTA_INFO_UNAVAILABLE" - Quota information is not available to client + // requests (e.g: + // regions.list). // "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource that - // requires a TOS they have not accepted. + // requires a TOS they have not + // accepted. // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a resource is // in use. // "RESOURCE_NOT_DELETED" - One or more of the resources set to auto-delete - // could not be deleted because they were in use. + // could not be deleted + // because they were in use. // "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is // ignored. // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in instance - // group manager is valid as such, but its application does not make a lot of - // sense, because it allows only single instance in instance group. + // group manager is valid as such, but + // its application does not make a lot of sense, because it allows only + // single instance in instance group. // "UNDECLARED_PROPERTIES" - When undeclared properties in the schema are // present // "UNREACHABLE" - A given scope cannot be reached. 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: [Output Only] Metadata about this warning in key: + // value format. For example: + // + // "data": [ + // { + // "key": "scope", + // "value": "zones/us-east1-d" + // } Data []*TargetPoolAggregatedListWarningData `json:"data,omitempty"` // Message: [Output Only] A human-readable description of the warning code. Message string `json:"message,omitempty"` @@ -48160,19 +76781,22 @@ type TargetPoolAggregatedListWarning struct { NullFields []string `json:"-"` } -func (s *TargetPoolAggregatedListWarning) MarshalJSON() ([]byte, error) { +func (s TargetPoolAggregatedListWarning) MarshalJSON() ([]byte, error) { type NoMethod TargetPoolAggregatedListWarning - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } type TargetPoolAggregatedListWarningData 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: [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"` @@ -48189,15 +76813,16 @@ type TargetPoolAggregatedListWarningData struct { NullFields []string `json:"-"` } -func (s *TargetPoolAggregatedListWarningData) MarshalJSON() ([]byte, error) { +func (s TargetPoolAggregatedListWarningData) MarshalJSON() ([]byte, error) { type NoMethod TargetPoolAggregatedListWarningData - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } type TargetPoolInstanceHealth struct { HealthStatus []*HealthStatus `json:"healthStatus,omitempty"` - // Kind: [Output Only] Type of resource. Always - // compute#targetPoolInstanceHealth when checking the health of an instance. + // Kind: Output only. [Output Only] Type of resource. + // Alwayscompute#targetPoolInstanceHealth when checking the health of + // an instance. Kind string `json:"kind,omitempty"` // ServerResponse contains the HTTP response code and headers from the server. @@ -48215,9 +76840,9 @@ type TargetPoolInstanceHealth struct { NullFields []string `json:"-"` } -func (s *TargetPoolInstanceHealth) MarshalJSON() ([]byte, error) { +func (s TargetPoolInstanceHealth) MarshalJSON() ([]byte, error) { type NoMethod TargetPoolInstanceHealth - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } // TargetPoolList: Contains a list of TargetPool resources. @@ -48226,16 +76851,19 @@ type TargetPoolList struct { Id string `json:"id,omitempty"` // Items: A list of TargetPool resources. Items []*TargetPool `json:"items,omitempty"` - // Kind: [Output Only] Type of resource. Always compute#targetPoolList for - // lists of target pools. + // Kind: Output only. [Output Only] Type of resource. Always + // compute#targetPoolList + // for lists of target pools. 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. + // results for + // list requests. If the number of results is larger thanmaxResults, 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"` - // SelfLink: [Output Only] Server-defined URL for this resource. + // SelfLink: Output only. [Output Only] Server-defined URL for this resource. SelfLink string `json:"selfLink,omitempty"` // Warning: [Output Only] Informational warning message. Warning *TargetPoolListWarning `json:"warning,omitempty"` @@ -48255,75 +76883,97 @@ type TargetPoolList struct { NullFields []string `json:"-"` } -func (s *TargetPoolList) MarshalJSON() ([]byte, error) { +func (s TargetPoolList) MarshalJSON() ([]byte, error) { type NoMethod TargetPoolList - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } // TargetPoolListWarning: [Output Only] Informational warning message. type TargetPoolListWarning 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. + // 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" - Warning about failed cleanup of transient changes made - // by a failed operation. + // by a failed + // operation. // "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was created. // "DEPRECATED_TYPE_USED" - When deploying and at least one of the resources - // has a type marked as deprecated + // has a type marked as + // deprecated // "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk that is // larger than image size. // "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the - // resources has a type marked as experimental + // resources has a type marked as + // experimental // "EXTERNAL_API_WARNING" - Warning that is present in an external api call // "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been - // overridden. Deprecated unused field. + // overridden. + // Deprecated unused field. // "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an injected // kernel, which is deprecated. // "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB" - A WEIGHTED_MAGLEV backend - // service is associated with a health check that is not of type - // HTTP/HTTPS/HTTP2. + // service is associated with a health check that is + // not of type HTTP/HTTPS/HTTP2. // "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a // exceedingly large number of resources // "LIST_OVERHEAD_QUOTA_EXCEED" - Resource can't be retrieved due to list - // overhead quota exceed which captures the amount of resources filtered out by + // overhead quota exceed + // which captures the amount of resources filtered out by // user-defined list filter. // "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is not - // assigned to an instance on the network. + // assigned to an instance on the + // network. // "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot ip // forward. // "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE" - The route's nextHopInstance - // URL refers to an instance that does not have an ipv6 interface on the same - // network as the route. + // URL refers to an instance that does not have an + // ipv6 interface on the same network as the route. // "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL refers to // an instance that does not exist. // "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance URL - // refers to an instance that is not on the same network as the route. + // refers to an instance that is not on the + // same network as the route. // "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not have a // status of RUNNING. // "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to continue - // the process despite the mentioned error. + // the process despite + // the mentioned error. // "NO_RESULTS_ON_PAGE" - No results are present on a particular list page. // "PARTIAL_SUCCESS" - Success is reported, but some results may be missing // due to errors + // "QUOTA_INFO_UNAVAILABLE" - Quota information is not available to client + // requests (e.g: + // regions.list). // "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource that - // requires a TOS they have not accepted. + // requires a TOS they have not + // accepted. // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a resource is // in use. // "RESOURCE_NOT_DELETED" - One or more of the resources set to auto-delete - // could not be deleted because they were in use. + // could not be deleted + // because they were in use. // "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is // ignored. // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in instance - // group manager is valid as such, but its application does not make a lot of - // sense, because it allows only single instance in instance group. + // group manager is valid as such, but + // its application does not make a lot of sense, because it allows only + // single instance in instance group. // "UNDECLARED_PROPERTIES" - When undeclared properties in the schema are // present // "UNREACHABLE" - A given scope cannot be reached. 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: [Output Only] Metadata about this warning in key: + // value format. For example: + // + // "data": [ + // { + // "key": "scope", + // "value": "zones/us-east1-d" + // } Data []*TargetPoolListWarningData `json:"data,omitempty"` // Message: [Output Only] A human-readable description of the warning code. Message string `json:"message,omitempty"` @@ -48340,19 +76990,22 @@ type TargetPoolListWarning struct { NullFields []string `json:"-"` } -func (s *TargetPoolListWarning) MarshalJSON() ([]byte, error) { +func (s TargetPoolListWarning) MarshalJSON() ([]byte, error) { type NoMethod TargetPoolListWarning - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } type TargetPoolListWarningData 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: [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"` @@ -48369,9 +77022,9 @@ type TargetPoolListWarningData struct { NullFields []string `json:"-"` } -func (s *TargetPoolListWarningData) MarshalJSON() ([]byte, error) { +func (s TargetPoolListWarningData) MarshalJSON() ([]byte, error) { type NoMethod TargetPoolListWarningData - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } type TargetPoolsAddHealthCheckRequest struct { @@ -48390,18 +77043,21 @@ type TargetPoolsAddHealthCheckRequest struct { NullFields []string `json:"-"` } -func (s *TargetPoolsAddHealthCheckRequest) MarshalJSON() ([]byte, error) { +func (s TargetPoolsAddHealthCheckRequest) MarshalJSON() ([]byte, error) { type NoMethod TargetPoolsAddHealthCheckRequest - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } type TargetPoolsAddInstanceRequest struct { // Instances: A full or partial URL to an instance to add to this target pool. - // This can be a full or partial URL. For example, the following are valid - // URLs: - https://www.googleapis.com/compute/v1/projects/project-id/zones/zone - // /instances/instance-name - - // projects/project-id/zones/zone/instances/instance-name - - // zones/zone/instances/instance-name + // This can + // be a full or partial URL. For example, the following are valid URLs: + // + // - + // https://www.googleapis.com/compute/v1/projects/project-id/zones/zone/instances/instance-name + // + // - projects/project-id/zones/zone/instances/instance-name + // - zones/zone/instances/instance-name Instances []*InstanceReference `json:"instances,omitempty"` // ForceSendFields is a list of field names (e.g. "Instances") to // unconditionally include in API requests. By default, fields with empty or @@ -48416,18 +77072,21 @@ type TargetPoolsAddInstanceRequest struct { NullFields []string `json:"-"` } -func (s *TargetPoolsAddInstanceRequest) MarshalJSON() ([]byte, error) { +func (s TargetPoolsAddInstanceRequest) MarshalJSON() ([]byte, error) { type NoMethod TargetPoolsAddInstanceRequest - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } type TargetPoolsRemoveHealthCheckRequest struct { // HealthChecks: Health check URL to be removed. This can be a full or valid - // partial URL. For example, the following are valid URLs: - - // https://www.googleapis.com/compute/beta/projects/project - // /global/httpHealthChecks/health-check - - // projects/project/global/httpHealthChecks/health-check - - // global/httpHealthChecks/health-check + // partial URL. + // For example, the following are valid URLs: + // + // - + // https://www.googleapis.com/compute/beta/projects/project/global/httpHealthChecks/health-check + // + // - projects/project/global/httpHealthChecks/health-check + // - global/httpHealthChecks/health-check HealthChecks []*HealthCheckReference `json:"healthChecks,omitempty"` // ForceSendFields is a list of field names (e.g. "HealthChecks") to // unconditionally include in API requests. By default, fields with empty or @@ -48442,9 +77101,9 @@ type TargetPoolsRemoveHealthCheckRequest struct { NullFields []string `json:"-"` } -func (s *TargetPoolsRemoveHealthCheckRequest) MarshalJSON() ([]byte, error) { +func (s TargetPoolsRemoveHealthCheckRequest) MarshalJSON() ([]byte, error) { type NoMethod TargetPoolsRemoveHealthCheckRequest - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } type TargetPoolsRemoveInstanceRequest struct { @@ -48463,16 +77122,16 @@ type TargetPoolsRemoveInstanceRequest struct { NullFields []string `json:"-"` } -func (s *TargetPoolsRemoveInstanceRequest) MarshalJSON() ([]byte, error) { +func (s TargetPoolsRemoveInstanceRequest) MarshalJSON() ([]byte, error) { type NoMethod TargetPoolsRemoveInstanceRequest - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } type TargetPoolsScopedList struct { // TargetPools: A list of target pools contained in this scope. TargetPools []*TargetPool `json:"targetPools,omitempty"` - // Warning: Informational warning which replaces the list of addresses when the - // list is empty. + // Warning: Informational warning which replaces the list of addresses when + // the list is empty. Warning *TargetPoolsScopedListWarning `json:"warning,omitempty"` // ForceSendFields is a list of field names (e.g. "TargetPools") to // unconditionally include in API requests. By default, fields with empty or @@ -48487,76 +77146,99 @@ type TargetPoolsScopedList struct { NullFields []string `json:"-"` } -func (s *TargetPoolsScopedList) MarshalJSON() ([]byte, error) { +func (s TargetPoolsScopedList) MarshalJSON() ([]byte, error) { type NoMethod TargetPoolsScopedList - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } // TargetPoolsScopedListWarning: Informational warning which replaces the list -// of addresses when the list is empty. +// of addresses when +// the list is empty. type TargetPoolsScopedListWarning 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. + // 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" - Warning about failed cleanup of transient changes made - // by a failed operation. + // by a failed + // operation. // "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was created. // "DEPRECATED_TYPE_USED" - When deploying and at least one of the resources - // has a type marked as deprecated + // has a type marked as + // deprecated // "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk that is // larger than image size. // "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the - // resources has a type marked as experimental + // resources has a type marked as + // experimental // "EXTERNAL_API_WARNING" - Warning that is present in an external api call // "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been - // overridden. Deprecated unused field. + // overridden. + // Deprecated unused field. // "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an injected // kernel, which is deprecated. // "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB" - A WEIGHTED_MAGLEV backend - // service is associated with a health check that is not of type - // HTTP/HTTPS/HTTP2. + // service is associated with a health check that is + // not of type HTTP/HTTPS/HTTP2. // "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a // exceedingly large number of resources // "LIST_OVERHEAD_QUOTA_EXCEED" - Resource can't be retrieved due to list - // overhead quota exceed which captures the amount of resources filtered out by + // overhead quota exceed + // which captures the amount of resources filtered out by // user-defined list filter. // "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is not - // assigned to an instance on the network. + // assigned to an instance on the + // network. // "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot ip // forward. // "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE" - The route's nextHopInstance - // URL refers to an instance that does not have an ipv6 interface on the same - // network as the route. + // URL refers to an instance that does not have an + // ipv6 interface on the same network as the route. // "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL refers to // an instance that does not exist. // "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance URL - // refers to an instance that is not on the same network as the route. + // refers to an instance that is not on the + // same network as the route. // "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not have a // status of RUNNING. // "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to continue - // the process despite the mentioned error. + // the process despite + // the mentioned error. // "NO_RESULTS_ON_PAGE" - No results are present on a particular list page. // "PARTIAL_SUCCESS" - Success is reported, but some results may be missing // due to errors + // "QUOTA_INFO_UNAVAILABLE" - Quota information is not available to client + // requests (e.g: + // regions.list). // "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource that - // requires a TOS they have not accepted. + // requires a TOS they have not + // accepted. // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a resource is // in use. // "RESOURCE_NOT_DELETED" - One or more of the resources set to auto-delete - // could not be deleted because they were in use. + // could not be deleted + // because they were in use. // "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is // ignored. // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in instance - // group manager is valid as such, but its application does not make a lot of - // sense, because it allows only single instance in instance group. + // group manager is valid as such, but + // its application does not make a lot of sense, because it allows only + // single instance in instance group. // "UNDECLARED_PROPERTIES" - When undeclared properties in the schema are // present // "UNREACHABLE" - A given scope cannot be reached. 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: [Output Only] Metadata about this warning in key: + // value format. For example: + // + // "data": [ + // { + // "key": "scope", + // "value": "zones/us-east1-d" + // } Data []*TargetPoolsScopedListWarningData `json:"data,omitempty"` // Message: [Output Only] A human-readable description of the warning code. Message string `json:"message,omitempty"` @@ -48573,19 +77255,22 @@ type TargetPoolsScopedListWarning struct { NullFields []string `json:"-"` } -func (s *TargetPoolsScopedListWarning) MarshalJSON() ([]byte, error) { +func (s TargetPoolsScopedListWarning) MarshalJSON() ([]byte, error) { type NoMethod TargetPoolsScopedListWarning - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } type TargetPoolsScopedListWarningData 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: [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"` @@ -48602,9 +77287,9 @@ type TargetPoolsScopedListWarningData struct { NullFields []string `json:"-"` } -func (s *TargetPoolsScopedListWarningData) MarshalJSON() ([]byte, error) { +func (s TargetPoolsScopedListWarningData) MarshalJSON() ([]byte, error) { type NoMethod TargetPoolsScopedListWarningData - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } type TargetReference struct { @@ -48622,9 +77307,9 @@ type TargetReference struct { NullFields []string `json:"-"` } -func (s *TargetReference) MarshalJSON() ([]byte, error) { +func (s TargetReference) MarshalJSON() ([]byte, error) { type NoMethod TargetReference - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } type TargetSslProxiesSetBackendServiceRequest struct { @@ -48643,16 +77328,18 @@ type TargetSslProxiesSetBackendServiceRequest struct { NullFields []string `json:"-"` } -func (s *TargetSslProxiesSetBackendServiceRequest) MarshalJSON() ([]byte, error) { +func (s TargetSslProxiesSetBackendServiceRequest) MarshalJSON() ([]byte, error) { type NoMethod TargetSslProxiesSetBackendServiceRequest - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } type TargetSslProxiesSetCertificateMapRequest struct { // CertificateMap: URL of the Certificate Map to associate with this - // TargetSslProxy. Accepted format is - // //certificatemanager.googleapis.com/projects/{project - // }/locations/{location}/certificateMaps/{resourceName}. + // TargetSslProxy. + // + // Accepted format + // is//certificatemanager.googleapis.com/projects/{project}/locations/{location} + // /certificateMaps/{resourceName}. CertificateMap string `json:"certificateMap,omitempty"` // ForceSendFields is a list of field names (e.g. "CertificateMap") to // unconditionally include in API requests. By default, fields with empty or @@ -48667,14 +77354,15 @@ type TargetSslProxiesSetCertificateMapRequest struct { NullFields []string `json:"-"` } -func (s *TargetSslProxiesSetCertificateMapRequest) MarshalJSON() ([]byte, error) { +func (s TargetSslProxiesSetCertificateMapRequest) MarshalJSON() ([]byte, error) { type NoMethod TargetSslProxiesSetCertificateMapRequest - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } type TargetSslProxiesSetProxyHeaderRequest struct { // ProxyHeader: The new type of proxy header to append before sending data to - // the backend. NONE or PROXY_V1 are allowed. + // the + // backend. NONE or PROXY_V1 are allowed. // // Possible values: // "NONE" @@ -48693,14 +77381,15 @@ type TargetSslProxiesSetProxyHeaderRequest struct { NullFields []string `json:"-"` } -func (s *TargetSslProxiesSetProxyHeaderRequest) MarshalJSON() ([]byte, error) { +func (s TargetSslProxiesSetProxyHeaderRequest) MarshalJSON() ([]byte, error) { type NoMethod TargetSslProxiesSetProxyHeaderRequest - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } type TargetSslProxiesSetSslCertificatesRequest struct { // SslCertificates: New set of URLs to SslCertificate resources to associate - // with this TargetSslProxy. At least one SSL certificate must be specified. + // with this + // TargetSslProxy. At least one SSL certificate must be specified. // Currently, you may specify up to 15 SSL certificates. SslCertificates []string `json:"sslCertificates,omitempty"` // ForceSendFields is a list of field names (e.g. "SslCertificates") to @@ -48716,44 +77405,60 @@ type TargetSslProxiesSetSslCertificatesRequest struct { NullFields []string `json:"-"` } -func (s *TargetSslProxiesSetSslCertificatesRequest) MarshalJSON() ([]byte, error) { +func (s TargetSslProxiesSetSslCertificatesRequest) MarshalJSON() ([]byte, error) { type NoMethod TargetSslProxiesSetSslCertificatesRequest - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -// TargetSslProxy: Represents a Target SSL Proxy resource. A target SSL proxy -// is a component of a Proxy Network Load Balancer. The forwarding rule -// references the target SSL proxy, and the target proxy then references a -// backend service. For more information, read Proxy Network Load Balancer -// overview. +// TargetSslProxy: Represents a Target SSL Proxy resource. +// +// A target SSL proxy is a component of a Proxy Network Load Balancer. +// The forwarding rule references the target SSL proxy, and the target +// proxy +// then references a backend service. For more information, readProxy +// Network +// Load Balancer overview. type TargetSslProxy struct { // CertificateMap: URL of a certificate map that identifies a certificate map - // associated with the given target proxy. This field can only be set for - // global target proxies. If set, sslCertificates will be ignored. Accepted - // format is //certificatemanager.googleapis.com/projects/{project - // }/locations/{location}/certificateMaps/{resourceName}. + // associated with + // the given target proxy. + // This field can only be set for global target proxies. + // If set, sslCertificates will be ignored. + // + // Accepted format + // is//certificatemanager.googleapis.com/projects/{project}/locations/{location} + // /certificateMaps/{resourceName}. CertificateMap string `json:"certificateMap,omitempty"` - // CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text format. + // CreationTimestamp: Output only. [Output Only] Creation timestamp + // inRFC3339 + // text format. CreationTimestamp string `json:"creationTimestamp,omitempty"` // Description: An optional description of this resource. Provide this property - // when you create the resource. + // when you + // create the resource. Description string `json:"description,omitempty"` - // Id: [Output Only] The unique identifier for the resource. This identifier is + // Id: [Output Only] The unique identifier for the resource. This identifier + // is // defined by the server. Id uint64 `json:"id,omitempty,string"` - // Kind: [Output Only] Type of the resource. Always compute#targetSslProxy for - // target SSL proxies. + // Kind: Output only. [Output Only] Type of the resource. + // Alwayscompute#targetSslProxy for target SSL proxies. Kind string `json:"kind,omitempty"` // Name: Name of the resource. Provided by the client when the resource is - // created. The name must be 1-63 characters long, and comply with RFC1035. - // 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. + // created. + // The name must be 1-63 characters long, and comply withRFC1035. + // 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. Name string `json:"name,omitempty"` // ProxyHeader: Specifies the type of proxy header to append before sending - // data to the backend, either NONE or PROXY_V1. The default is NONE. + // data to the + // backend, either NONE or PROXY_V1. The default + // is NONE. // // Possible values: // "NONE" @@ -48763,15 +77468,19 @@ type TargetSslProxy struct { SelfLink string `json:"selfLink,omitempty"` // Service: URL to the BackendService resource. Service string `json:"service,omitempty"` - // SslCertificates: URLs to SslCertificate resources that are used to - // authenticate connections to Backends. At least one SSL certificate must be - // specified. Currently, you may specify up to 15 SSL certificates. - // sslCertificates do not apply when the load balancing scheme is set to + // SslCertificates: URLs to SslCertificate resources that are used + // to + // authenticate connections to Backends. At least one SSL certificate + // must be specified. Currently, you may specify up to 15 SSL + // certificates. + // sslCertificates do not apply when the load balancing scheme is set + // to // INTERNAL_SELF_MANAGED. SslCertificates []string `json:"sslCertificates,omitempty"` // SslPolicy: URL of SslPolicy resource that will be associated with the - // TargetSslProxy resource. If not set, the TargetSslProxy resource will not - // have any SSL policy configured. + // TargetSslProxy + // resource. If not set, the TargetSslProxy resource will not have any + // SSL policy configured. SslPolicy string `json:"sslPolicy,omitempty"` // ServerResponse contains the HTTP response code and headers from the server. @@ -48789,9 +77498,9 @@ type TargetSslProxy struct { NullFields []string `json:"-"` } -func (s *TargetSslProxy) MarshalJSON() ([]byte, error) { +func (s TargetSslProxy) MarshalJSON() ([]byte, error) { type NoMethod TargetSslProxy - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } // TargetSslProxyList: Contains a list of TargetSslProxy resources. @@ -48800,15 +77509,17 @@ type TargetSslProxyList struct { Id string `json:"id,omitempty"` // Items: A list of TargetSslProxy resources. Items []*TargetSslProxy `json:"items,omitempty"` - // Kind: Type of resource. + // Kind: Output only. Type of resource. 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. + // results for + // list requests. If the number of results is larger thanmaxResults, 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"` - // SelfLink: [Output Only] Server-defined URL for this resource. + // SelfLink: Output only. [Output Only] Server-defined URL for this resource. SelfLink string `json:"selfLink,omitempty"` // Warning: [Output Only] Informational warning message. Warning *TargetSslProxyListWarning `json:"warning,omitempty"` @@ -48828,75 +77539,97 @@ type TargetSslProxyList struct { NullFields []string `json:"-"` } -func (s *TargetSslProxyList) MarshalJSON() ([]byte, error) { +func (s TargetSslProxyList) MarshalJSON() ([]byte, error) { type NoMethod TargetSslProxyList - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } // TargetSslProxyListWarning: [Output Only] Informational warning message. type TargetSslProxyListWarning 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. + // 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" - Warning about failed cleanup of transient changes made - // by a failed operation. + // by a failed + // operation. // "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was created. // "DEPRECATED_TYPE_USED" - When deploying and at least one of the resources - // has a type marked as deprecated + // has a type marked as + // deprecated // "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk that is // larger than image size. // "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the - // resources has a type marked as experimental + // resources has a type marked as + // experimental // "EXTERNAL_API_WARNING" - Warning that is present in an external api call // "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been - // overridden. Deprecated unused field. + // overridden. + // Deprecated unused field. // "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an injected // kernel, which is deprecated. // "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB" - A WEIGHTED_MAGLEV backend - // service is associated with a health check that is not of type - // HTTP/HTTPS/HTTP2. + // service is associated with a health check that is + // not of type HTTP/HTTPS/HTTP2. // "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a // exceedingly large number of resources // "LIST_OVERHEAD_QUOTA_EXCEED" - Resource can't be retrieved due to list - // overhead quota exceed which captures the amount of resources filtered out by + // overhead quota exceed + // which captures the amount of resources filtered out by // user-defined list filter. // "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is not - // assigned to an instance on the network. + // assigned to an instance on the + // network. // "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot ip // forward. // "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE" - The route's nextHopInstance - // URL refers to an instance that does not have an ipv6 interface on the same - // network as the route. + // URL refers to an instance that does not have an + // ipv6 interface on the same network as the route. // "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL refers to // an instance that does not exist. // "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance URL - // refers to an instance that is not on the same network as the route. + // refers to an instance that is not on the + // same network as the route. // "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not have a // status of RUNNING. // "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to continue - // the process despite the mentioned error. + // the process despite + // the mentioned error. // "NO_RESULTS_ON_PAGE" - No results are present on a particular list page. // "PARTIAL_SUCCESS" - Success is reported, but some results may be missing // due to errors + // "QUOTA_INFO_UNAVAILABLE" - Quota information is not available to client + // requests (e.g: + // regions.list). // "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource that - // requires a TOS they have not accepted. + // requires a TOS they have not + // accepted. // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a resource is // in use. // "RESOURCE_NOT_DELETED" - One or more of the resources set to auto-delete - // could not be deleted because they were in use. + // could not be deleted + // because they were in use. // "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is // ignored. // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in instance - // group manager is valid as such, but its application does not make a lot of - // sense, because it allows only single instance in instance group. + // group manager is valid as such, but + // its application does not make a lot of sense, because it allows only + // single instance in instance group. // "UNDECLARED_PROPERTIES" - When undeclared properties in the schema are // present // "UNREACHABLE" - A given scope cannot be reached. 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: [Output Only] Metadata about this warning in key: + // value format. For example: + // + // "data": [ + // { + // "key": "scope", + // "value": "zones/us-east1-d" + // } Data []*TargetSslProxyListWarningData `json:"data,omitempty"` // Message: [Output Only] A human-readable description of the warning code. Message string `json:"message,omitempty"` @@ -48913,19 +77646,22 @@ type TargetSslProxyListWarning struct { NullFields []string `json:"-"` } -func (s *TargetSslProxyListWarning) MarshalJSON() ([]byte, error) { +func (s TargetSslProxyListWarning) MarshalJSON() ([]byte, error) { type NoMethod TargetSslProxyListWarning - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } type TargetSslProxyListWarningData 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: [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"` @@ -48942,16 +77678,16 @@ type TargetSslProxyListWarningData struct { NullFields []string `json:"-"` } -func (s *TargetSslProxyListWarningData) MarshalJSON() ([]byte, error) { +func (s TargetSslProxyListWarningData) MarshalJSON() ([]byte, error) { type NoMethod TargetSslProxyListWarningData - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } type TargetTcpProxiesScopedList struct { // TargetTcpProxies: A list of TargetTcpProxies contained in this scope. TargetTcpProxies []*TargetTcpProxy `json:"targetTcpProxies,omitempty"` - // Warning: Informational warning which replaces the list of backend services - // when the list is empty. + // Warning: Informational warning which replaces the list of + // backend services when the list is empty. Warning *TargetTcpProxiesScopedListWarning `json:"warning,omitempty"` // ForceSendFields is a list of field names (e.g. "TargetTcpProxies") to // unconditionally include in API requests. By default, fields with empty or @@ -48966,76 +77702,99 @@ type TargetTcpProxiesScopedList struct { NullFields []string `json:"-"` } -func (s *TargetTcpProxiesScopedList) MarshalJSON() ([]byte, error) { +func (s TargetTcpProxiesScopedList) MarshalJSON() ([]byte, error) { type NoMethod TargetTcpProxiesScopedList - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } // TargetTcpProxiesScopedListWarning: Informational warning which replaces the -// list of backend services when the list is empty. +// list of +// backend services when the list is empty. type TargetTcpProxiesScopedListWarning 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. + // 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" - Warning about failed cleanup of transient changes made - // by a failed operation. + // by a failed + // operation. // "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was created. // "DEPRECATED_TYPE_USED" - When deploying and at least one of the resources - // has a type marked as deprecated + // has a type marked as + // deprecated // "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk that is // larger than image size. // "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the - // resources has a type marked as experimental + // resources has a type marked as + // experimental // "EXTERNAL_API_WARNING" - Warning that is present in an external api call // "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been - // overridden. Deprecated unused field. + // overridden. + // Deprecated unused field. // "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an injected // kernel, which is deprecated. // "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB" - A WEIGHTED_MAGLEV backend - // service is associated with a health check that is not of type - // HTTP/HTTPS/HTTP2. + // service is associated with a health check that is + // not of type HTTP/HTTPS/HTTP2. // "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a // exceedingly large number of resources // "LIST_OVERHEAD_QUOTA_EXCEED" - Resource can't be retrieved due to list - // overhead quota exceed which captures the amount of resources filtered out by + // overhead quota exceed + // which captures the amount of resources filtered out by // user-defined list filter. // "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is not - // assigned to an instance on the network. + // assigned to an instance on the + // network. // "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot ip // forward. // "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE" - The route's nextHopInstance - // URL refers to an instance that does not have an ipv6 interface on the same - // network as the route. + // URL refers to an instance that does not have an + // ipv6 interface on the same network as the route. // "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL refers to // an instance that does not exist. // "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance URL - // refers to an instance that is not on the same network as the route. + // refers to an instance that is not on the + // same network as the route. // "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not have a // status of RUNNING. // "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to continue - // the process despite the mentioned error. + // the process despite + // the mentioned error. // "NO_RESULTS_ON_PAGE" - No results are present on a particular list page. // "PARTIAL_SUCCESS" - Success is reported, but some results may be missing // due to errors + // "QUOTA_INFO_UNAVAILABLE" - Quota information is not available to client + // requests (e.g: + // regions.list). // "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource that - // requires a TOS they have not accepted. + // requires a TOS they have not + // accepted. // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a resource is // in use. // "RESOURCE_NOT_DELETED" - One or more of the resources set to auto-delete - // could not be deleted because they were in use. + // could not be deleted + // because they were in use. // "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is // ignored. // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in instance - // group manager is valid as such, but its application does not make a lot of - // sense, because it allows only single instance in instance group. + // group manager is valid as such, but + // its application does not make a lot of sense, because it allows only + // single instance in instance group. // "UNDECLARED_PROPERTIES" - When undeclared properties in the schema are // present // "UNREACHABLE" - A given scope cannot be reached. 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: [Output Only] Metadata about this warning in key: + // value format. For example: + // + // "data": [ + // { + // "key": "scope", + // "value": "zones/us-east1-d" + // } Data []*TargetTcpProxiesScopedListWarningData `json:"data,omitempty"` // Message: [Output Only] A human-readable description of the warning code. Message string `json:"message,omitempty"` @@ -49052,19 +77811,22 @@ type TargetTcpProxiesScopedListWarning struct { NullFields []string `json:"-"` } -func (s *TargetTcpProxiesScopedListWarning) MarshalJSON() ([]byte, error) { +func (s TargetTcpProxiesScopedListWarning) MarshalJSON() ([]byte, error) { type NoMethod TargetTcpProxiesScopedListWarning - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } type TargetTcpProxiesScopedListWarningData 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: [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"` @@ -49081,9 +77843,9 @@ type TargetTcpProxiesScopedListWarningData struct { NullFields []string `json:"-"` } -func (s *TargetTcpProxiesScopedListWarningData) MarshalJSON() ([]byte, error) { +func (s TargetTcpProxiesScopedListWarningData) MarshalJSON() ([]byte, error) { type NoMethod TargetTcpProxiesScopedListWarningData - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } type TargetTcpProxiesSetBackendServiceRequest struct { @@ -49102,14 +77864,15 @@ type TargetTcpProxiesSetBackendServiceRequest struct { NullFields []string `json:"-"` } -func (s *TargetTcpProxiesSetBackendServiceRequest) MarshalJSON() ([]byte, error) { +func (s TargetTcpProxiesSetBackendServiceRequest) MarshalJSON() ([]byte, error) { type NoMethod TargetTcpProxiesSetBackendServiceRequest - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } type TargetTcpProxiesSetProxyHeaderRequest struct { // ProxyHeader: The new type of proxy header to append before sending data to - // the backend. NONE or PROXY_V1 are allowed. + // the + // backend. NONE or PROXY_V1 are allowed. // // Possible values: // "NONE" @@ -49128,54 +77891,83 @@ type TargetTcpProxiesSetProxyHeaderRequest struct { NullFields []string `json:"-"` } -func (s *TargetTcpProxiesSetProxyHeaderRequest) MarshalJSON() ([]byte, error) { +func (s TargetTcpProxiesSetProxyHeaderRequest) MarshalJSON() ([]byte, error) { type NoMethod TargetTcpProxiesSetProxyHeaderRequest - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -// TargetTcpProxy: Represents a Target TCP Proxy resource. A target TCP proxy -// is a component of a Proxy Network Load Balancer. The forwarding rule -// references the target TCP proxy, and the target proxy then references a -// backend service. For more information, read Proxy Network Load Balancer -// overview. +// TargetTcpProxy: Represents a Target TCP Proxy resource. +// +// A target TCP proxy is a component of a Proxy Network Load Balancer. +// The forwarding rule references the target TCP proxy, and the target +// proxy +// then references a backend service. For more information, readProxy +// Network +// Load Balancer overview. type TargetTcpProxy struct { - // CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text format. + // CreationTimestamp: Output only. [Output Only] Creation timestamp + // inRFC3339 + // text format. CreationTimestamp string `json:"creationTimestamp,omitempty"` // Description: An optional description of this resource. Provide this property - // when you create the resource. + // when you + // create the resource. Description string `json:"description,omitempty"` - // Id: [Output Only] The unique identifier for the resource. This identifier is + // Id: [Output Only] The unique identifier for the resource. This identifier + // is // defined by the server. Id uint64 `json:"id,omitempty,string"` - // Kind: [Output Only] Type of the resource. Always compute#targetTcpProxy for - // target TCP proxies. + // Kind: Output only. [Output Only] Type of the resource. + // Alwayscompute#targetTcpProxy for target TCP proxies. Kind string `json:"kind,omitempty"` + // LoadBalancingScheme: Specifies the type of load balancing scheme used by + // this target proxy. + // + // Possible values: + // "EXTERNAL" + // "EXTERNAL_MANAGED" + // "INTERNAL_MANAGED" + // "LOAD_BALANCING_SCHEME_UNSPECIFIED" + LoadBalancingScheme string `json:"loadBalancingScheme,omitempty"` // Name: Name of the resource. Provided by the client when the resource is - // created. The name must be 1-63 characters long, and comply with RFC1035. - // 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. + // created. + // The name must be 1-63 characters long, and comply withRFC1035. + // 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. Name string `json:"name,omitempty"` // ProxyBind: This field only applies when the forwarding rule that references - // this target proxy has a loadBalancingScheme set to INTERNAL_SELF_MANAGED. - // When this field is set to true, Envoy proxies set up inbound traffic - // interception and bind to the IP address and port specified in the forwarding - // rule. This is generally useful when using Traffic Director to configure - // Envoy as a gateway or middle proxy (in other words, not a sidecar proxy). - // The Envoy proxy listens for inbound requests and handles requests when it - // receives them. The default is false. + // this + // target proxy has a loadBalancingScheme set toINTERNAL_SELF_MANAGED. + // + // When this field is set to true, Envoy proxies set up inbound + // traffic interception and bind to the IP address and port specified in + // the + // forwarding rule. This is generally useful when using Traffic Director + // to + // configure Envoy as a gateway or middle proxy (in other words, not a + // sidecar proxy). The Envoy proxy listens for inbound requests and + // handles + // requests when it receives them. + // + // The default is false. ProxyBind bool `json:"proxyBind,omitempty"` // ProxyHeader: Specifies the type of proxy header to append before sending - // data to the backend, either NONE or PROXY_V1. The default is NONE. + // data to the + // backend, either NONE or PROXY_V1. The default + // is NONE. // // Possible values: // "NONE" // "PROXY_V1" ProxyHeader string `json:"proxyHeader,omitempty"` - // Region: [Output Only] URL of the region where the regional TCP proxy - // resides. This field is not applicable to global TCP proxy. + // Region: Output only. [Output Only] URL of the region where the regional TCP + // proxy resides. + // This field is not applicable to global TCP proxy. Region string `json:"region,omitempty"` // SelfLink: [Output Only] Server-defined URL for the resource. SelfLink string `json:"selfLink,omitempty"` @@ -49197,9 +77989,9 @@ type TargetTcpProxy struct { NullFields []string `json:"-"` } -func (s *TargetTcpProxy) MarshalJSON() ([]byte, error) { +func (s TargetTcpProxy) MarshalJSON() ([]byte, error) { type NoMethod TargetTcpProxy - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } type TargetTcpProxyAggregatedList struct { @@ -49207,18 +77999,21 @@ type TargetTcpProxyAggregatedList struct { Id string `json:"id,omitempty"` // Items: A list of TargetTcpProxiesScopedList resources. Items map[string]TargetTcpProxiesScopedList `json:"items,omitempty"` - // Kind: [Output Only] Type of resource. Always - // compute#targetTcpProxyAggregatedList for lists of Target TCP Proxies. + // Kind: Output only. [Output Only] Type of resource. + // Alwayscompute#targetTcpProxyAggregatedList for lists of Target + // TCP Proxies. 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. + // results for + // list requests. If the number of results is larger thanmaxResults, 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"` - // SelfLink: [Output Only] Server-defined URL for this resource. + // SelfLink: Output only. [Output Only] Server-defined URL for this resource. SelfLink string `json:"selfLink,omitempty"` - // Unreachables: [Output Only] Unreachable resources. + // Unreachables: Output only. [Output Only] Unreachable resources. Unreachables []string `json:"unreachables,omitempty"` // Warning: [Output Only] Informational warning message. Warning *TargetTcpProxyAggregatedListWarning `json:"warning,omitempty"` @@ -49238,76 +78033,98 @@ type TargetTcpProxyAggregatedList struct { NullFields []string `json:"-"` } -func (s *TargetTcpProxyAggregatedList) MarshalJSON() ([]byte, error) { +func (s TargetTcpProxyAggregatedList) MarshalJSON() ([]byte, error) { type NoMethod TargetTcpProxyAggregatedList - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } // TargetTcpProxyAggregatedListWarning: [Output Only] Informational warning // message. type TargetTcpProxyAggregatedListWarning 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. + // 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" - Warning about failed cleanup of transient changes made - // by a failed operation. + // by a failed + // operation. // "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was created. // "DEPRECATED_TYPE_USED" - When deploying and at least one of the resources - // has a type marked as deprecated + // has a type marked as + // deprecated // "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk that is // larger than image size. // "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the - // resources has a type marked as experimental + // resources has a type marked as + // experimental // "EXTERNAL_API_WARNING" - Warning that is present in an external api call // "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been - // overridden. Deprecated unused field. + // overridden. + // Deprecated unused field. // "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an injected // kernel, which is deprecated. // "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB" - A WEIGHTED_MAGLEV backend - // service is associated with a health check that is not of type - // HTTP/HTTPS/HTTP2. + // service is associated with a health check that is + // not of type HTTP/HTTPS/HTTP2. // "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a // exceedingly large number of resources // "LIST_OVERHEAD_QUOTA_EXCEED" - Resource can't be retrieved due to list - // overhead quota exceed which captures the amount of resources filtered out by + // overhead quota exceed + // which captures the amount of resources filtered out by // user-defined list filter. // "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is not - // assigned to an instance on the network. + // assigned to an instance on the + // network. // "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot ip // forward. // "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE" - The route's nextHopInstance - // URL refers to an instance that does not have an ipv6 interface on the same - // network as the route. + // URL refers to an instance that does not have an + // ipv6 interface on the same network as the route. // "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL refers to // an instance that does not exist. // "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance URL - // refers to an instance that is not on the same network as the route. + // refers to an instance that is not on the + // same network as the route. // "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not have a // status of RUNNING. // "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to continue - // the process despite the mentioned error. + // the process despite + // the mentioned error. // "NO_RESULTS_ON_PAGE" - No results are present on a particular list page. // "PARTIAL_SUCCESS" - Success is reported, but some results may be missing // due to errors + // "QUOTA_INFO_UNAVAILABLE" - Quota information is not available to client + // requests (e.g: + // regions.list). // "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource that - // requires a TOS they have not accepted. + // requires a TOS they have not + // accepted. // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a resource is // in use. // "RESOURCE_NOT_DELETED" - One or more of the resources set to auto-delete - // could not be deleted because they were in use. + // could not be deleted + // because they were in use. // "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is // ignored. // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in instance - // group manager is valid as such, but its application does not make a lot of - // sense, because it allows only single instance in instance group. + // group manager is valid as such, but + // its application does not make a lot of sense, because it allows only + // single instance in instance group. // "UNDECLARED_PROPERTIES" - When undeclared properties in the schema are // present // "UNREACHABLE" - A given scope cannot be reached. 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: [Output Only] Metadata about this warning in key: + // value format. For example: + // + // "data": [ + // { + // "key": "scope", + // "value": "zones/us-east1-d" + // } Data []*TargetTcpProxyAggregatedListWarningData `json:"data,omitempty"` // Message: [Output Only] A human-readable description of the warning code. Message string `json:"message,omitempty"` @@ -49324,19 +78141,22 @@ type TargetTcpProxyAggregatedListWarning struct { NullFields []string `json:"-"` } -func (s *TargetTcpProxyAggregatedListWarning) MarshalJSON() ([]byte, error) { +func (s TargetTcpProxyAggregatedListWarning) MarshalJSON() ([]byte, error) { type NoMethod TargetTcpProxyAggregatedListWarning - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } type TargetTcpProxyAggregatedListWarningData 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: [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"` @@ -49353,9 +78173,9 @@ type TargetTcpProxyAggregatedListWarningData struct { NullFields []string `json:"-"` } -func (s *TargetTcpProxyAggregatedListWarningData) MarshalJSON() ([]byte, error) { +func (s TargetTcpProxyAggregatedListWarningData) MarshalJSON() ([]byte, error) { type NoMethod TargetTcpProxyAggregatedListWarningData - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } // TargetTcpProxyList: Contains a list of TargetTcpProxy resources. @@ -49364,15 +78184,17 @@ type TargetTcpProxyList struct { Id string `json:"id,omitempty"` // Items: A list of TargetTcpProxy resources. Items []*TargetTcpProxy `json:"items,omitempty"` - // Kind: Type of resource. + // Kind: Output only. Type of resource. 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. + // results for + // list requests. If the number of results is larger thanmaxResults, 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"` - // SelfLink: [Output Only] Server-defined URL for this resource. + // SelfLink: Output only. [Output Only] Server-defined URL for this resource. SelfLink string `json:"selfLink,omitempty"` // Warning: [Output Only] Informational warning message. Warning *TargetTcpProxyListWarning `json:"warning,omitempty"` @@ -49392,75 +78214,97 @@ type TargetTcpProxyList struct { NullFields []string `json:"-"` } -func (s *TargetTcpProxyList) MarshalJSON() ([]byte, error) { +func (s TargetTcpProxyList) MarshalJSON() ([]byte, error) { type NoMethod TargetTcpProxyList - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } // TargetTcpProxyListWarning: [Output Only] Informational warning message. type TargetTcpProxyListWarning 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. + // 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" - Warning about failed cleanup of transient changes made - // by a failed operation. + // by a failed + // operation. // "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was created. // "DEPRECATED_TYPE_USED" - When deploying and at least one of the resources - // has a type marked as deprecated + // has a type marked as + // deprecated // "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk that is // larger than image size. // "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the - // resources has a type marked as experimental + // resources has a type marked as + // experimental // "EXTERNAL_API_WARNING" - Warning that is present in an external api call // "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been - // overridden. Deprecated unused field. + // overridden. + // Deprecated unused field. // "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an injected // kernel, which is deprecated. // "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB" - A WEIGHTED_MAGLEV backend - // service is associated with a health check that is not of type - // HTTP/HTTPS/HTTP2. + // service is associated with a health check that is + // not of type HTTP/HTTPS/HTTP2. // "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a // exceedingly large number of resources // "LIST_OVERHEAD_QUOTA_EXCEED" - Resource can't be retrieved due to list - // overhead quota exceed which captures the amount of resources filtered out by + // overhead quota exceed + // which captures the amount of resources filtered out by // user-defined list filter. // "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is not - // assigned to an instance on the network. + // assigned to an instance on the + // network. // "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot ip // forward. // "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE" - The route's nextHopInstance - // URL refers to an instance that does not have an ipv6 interface on the same - // network as the route. + // URL refers to an instance that does not have an + // ipv6 interface on the same network as the route. // "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL refers to // an instance that does not exist. // "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance URL - // refers to an instance that is not on the same network as the route. + // refers to an instance that is not on the + // same network as the route. // "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not have a // status of RUNNING. // "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to continue - // the process despite the mentioned error. + // the process despite + // the mentioned error. // "NO_RESULTS_ON_PAGE" - No results are present on a particular list page. // "PARTIAL_SUCCESS" - Success is reported, but some results may be missing // due to errors + // "QUOTA_INFO_UNAVAILABLE" - Quota information is not available to client + // requests (e.g: + // regions.list). // "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource that - // requires a TOS they have not accepted. + // requires a TOS they have not + // accepted. // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a resource is // in use. // "RESOURCE_NOT_DELETED" - One or more of the resources set to auto-delete - // could not be deleted because they were in use. + // could not be deleted + // because they were in use. // "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is // ignored. // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in instance - // group manager is valid as such, but its application does not make a lot of - // sense, because it allows only single instance in instance group. + // group manager is valid as such, but + // its application does not make a lot of sense, because it allows only + // single instance in instance group. // "UNDECLARED_PROPERTIES" - When undeclared properties in the schema are // present // "UNREACHABLE" - A given scope cannot be reached. 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: [Output Only] Metadata about this warning in key: + // value format. For example: + // + // "data": [ + // { + // "key": "scope", + // "value": "zones/us-east1-d" + // } Data []*TargetTcpProxyListWarningData `json:"data,omitempty"` // Message: [Output Only] A human-readable description of the warning code. Message string `json:"message,omitempty"` @@ -49477,19 +78321,22 @@ type TargetTcpProxyListWarning struct { NullFields []string `json:"-"` } -func (s *TargetTcpProxyListWarning) MarshalJSON() ([]byte, error) { +func (s TargetTcpProxyListWarning) MarshalJSON() ([]byte, error) { type NoMethod TargetTcpProxyListWarning - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } type TargetTcpProxyListWarningData 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: [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"` @@ -49506,61 +78353,84 @@ type TargetTcpProxyListWarningData struct { NullFields []string `json:"-"` } -func (s *TargetTcpProxyListWarningData) MarshalJSON() ([]byte, error) { +func (s TargetTcpProxyListWarningData) MarshalJSON() ([]byte, error) { type NoMethod TargetTcpProxyListWarningData - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -// TargetVpnGateway: Represents a Target VPN Gateway resource. The target VPN -// gateway resource represents a Classic Cloud VPN gateway. For more -// information, read the the Cloud VPN Overview. +// TargetVpnGateway: Represents a Target VPN Gateway resource. +// +// The target VPN gateway resource represents a Classic Cloud VPN gateway. +// For more information, read thethe +// Cloud VPN Overview. type TargetVpnGateway struct { - // CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text format. + // CreationTimestamp: Output only. [Output Only] Creation timestamp + // inRFC3339 + // text format. CreationTimestamp string `json:"creationTimestamp,omitempty"` // Description: An optional description of this resource. Provide this property - // when you create the resource. + // when you + // create the resource. Description string `json:"description,omitempty"` // ForwardingRules: [Output Only] A list of URLs to the ForwardingRule - // resources. ForwardingRules are created using compute.forwardingRules.insert - // and associated with a VPN gateway. + // resources. + // ForwardingRules are created usingcompute.forwardingRules.insert and + // associated with a VPN + // gateway. ForwardingRules []string `json:"forwardingRules,omitempty"` - // Id: [Output Only] The unique identifier for the resource. This identifier is + // Id: [Output Only] The unique identifier for the resource. This identifier + // is // defined by the server. Id uint64 `json:"id,omitempty,string"` - // Kind: [Output Only] Type of resource. Always compute#targetVpnGateway for - // target VPN gateways. + // Kind: Output only. [Output Only] Type of resource. + // Alwayscompute#targetVpnGateway for target VPN gateways. Kind string `json:"kind,omitempty"` // LabelFingerprint: A fingerprint for the labels being applied to this - // TargetVpnGateway, which is essentially a hash of the labels set used for - // optimistic locking. The fingerprint is initially generated by Compute Engine - // and changes after every request to modify or update labels. You must always - // provide an up-to-date fingerprint hash in order to update or change labels, - // otherwise the request will fail with error 412 conditionNotMet. To see the - // latest fingerprint, make a get() request to retrieve a TargetVpnGateway. + // TargetVpnGateway, which + // is essentially a hash of the labels set used for optimistic locking. + // The + // fingerprint is initially generated by Compute Engine and changes after + // every request to modify or update labels. You must always provide + // an + // up-to-date fingerprint hash in order to update or change labels, + // otherwise the request will fail with error412 conditionNotMet. + // + // To see the latest fingerprint, make a get() request to + // retrieve a TargetVpnGateway. LabelFingerprint string `json:"labelFingerprint,omitempty"` - // Labels: Labels for this resource. These can only be added or modified by the - // setLabels method. Each label key/value pair must comply with RFC1035. Label - // values may be empty. + // Labels: Labels for this resource. These can only be added or modified by + // thesetLabels method. Each label key/value pair must comply + // withRFC1035. + // Label values may be empty. Labels map[string]string `json:"labels,omitempty"` // Name: Name of the resource. Provided by the client when the resource is - // created. The name must be 1-63 characters long, and comply with RFC1035. - // 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. + // created. + // The name must be 1-63 characters long, and comply withRFC1035. + // 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. Name string `json:"name,omitempty"` // Network: URL of the network to which this VPN gateway is attached. Provided - // by the client when the VPN gateway is created. + // by the + // client when the VPN gateway is created. Network string `json:"network,omitempty"` + // Params: Input only. [Input Only] Additional params passed with the request, + // but not persisted + // as part of resource payload. + Params *TargetVpnGatewayParams `json:"params,omitempty"` // Region: [Output Only] URL of the region where the target VPN gateway - // resides. You must specify this field as part of the HTTP request URL. It is + // resides. + // You must specify this field as part of the HTTP request URL. It is // not settable as a field in the request body. Region string `json:"region,omitempty"` // SelfLink: [Output Only] Server-defined URL for the resource. SelfLink string `json:"selfLink,omitempty"` - // Status: [Output Only] The status of the VPN gateway, which can be one of the - // following: CREATING, READY, FAILED, or DELETING. + // Status: [Output Only] The status of the VPN gateway, + // which can be one of the following: CREATING, READY, FAILED, or DELETING. // // Possible values: // "CREATING" @@ -49568,9 +78438,10 @@ type TargetVpnGateway struct { // "FAILED" // "READY" Status string `json:"status,omitempty"` - // Tunnels: [Output Only] A list of URLs to VpnTunnel resources. VpnTunnels are - // created using the compute.vpntunnels.insert method and associated with a VPN - // gateway. + // Tunnels: [Output Only] A list of URLs to VpnTunnel resources. VpnTunnels + // are + // created using the compute.vpntunnels.insert method and + // associated with a VPN gateway. Tunnels []string `json:"tunnels,omitempty"` // ServerResponse contains the HTTP response code and headers from the server. @@ -49588,9 +78459,9 @@ type TargetVpnGateway struct { NullFields []string `json:"-"` } -func (s *TargetVpnGateway) MarshalJSON() ([]byte, error) { +func (s TargetVpnGateway) MarshalJSON() ([]byte, error) { type NoMethod TargetVpnGateway - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } type TargetVpnGatewayAggregatedList struct { @@ -49598,18 +78469,20 @@ type TargetVpnGatewayAggregatedList struct { Id string `json:"id,omitempty"` // Items: A list of TargetVpnGateway resources. Items map[string]TargetVpnGatewaysScopedList `json:"items,omitempty"` - // Kind: [Output Only] Type of resource. Always compute#targetVpnGateway for - // target VPN gateways. + // Kind: Output only. [Output Only] Type of resource. + // Alwayscompute#targetVpnGateway for target VPN gateways. 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. + // results for + // list requests. If the number of results is larger thanmaxResults, 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"` - // SelfLink: [Output Only] Server-defined URL for this resource. + // SelfLink: Output only. [Output Only] Server-defined URL for this resource. SelfLink string `json:"selfLink,omitempty"` - // Unreachables: [Output Only] Unreachable resources. + // Unreachables: Output only. [Output Only] Unreachable resources. Unreachables []string `json:"unreachables,omitempty"` // Warning: [Output Only] Informational warning message. Warning *TargetVpnGatewayAggregatedListWarning `json:"warning,omitempty"` @@ -49629,76 +78502,98 @@ type TargetVpnGatewayAggregatedList struct { NullFields []string `json:"-"` } -func (s *TargetVpnGatewayAggregatedList) MarshalJSON() ([]byte, error) { +func (s TargetVpnGatewayAggregatedList) MarshalJSON() ([]byte, error) { type NoMethod TargetVpnGatewayAggregatedList - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } // TargetVpnGatewayAggregatedListWarning: [Output Only] Informational warning // message. type TargetVpnGatewayAggregatedListWarning 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. + // 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" - Warning about failed cleanup of transient changes made - // by a failed operation. + // by a failed + // operation. // "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was created. // "DEPRECATED_TYPE_USED" - When deploying and at least one of the resources - // has a type marked as deprecated + // has a type marked as + // deprecated // "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk that is // larger than image size. // "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the - // resources has a type marked as experimental + // resources has a type marked as + // experimental // "EXTERNAL_API_WARNING" - Warning that is present in an external api call // "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been - // overridden. Deprecated unused field. + // overridden. + // Deprecated unused field. // "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an injected // kernel, which is deprecated. // "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB" - A WEIGHTED_MAGLEV backend - // service is associated with a health check that is not of type - // HTTP/HTTPS/HTTP2. + // service is associated with a health check that is + // not of type HTTP/HTTPS/HTTP2. // "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a // exceedingly large number of resources // "LIST_OVERHEAD_QUOTA_EXCEED" - Resource can't be retrieved due to list - // overhead quota exceed which captures the amount of resources filtered out by + // overhead quota exceed + // which captures the amount of resources filtered out by // user-defined list filter. // "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is not - // assigned to an instance on the network. + // assigned to an instance on the + // network. // "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot ip // forward. // "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE" - The route's nextHopInstance - // URL refers to an instance that does not have an ipv6 interface on the same - // network as the route. + // URL refers to an instance that does not have an + // ipv6 interface on the same network as the route. // "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL refers to // an instance that does not exist. // "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance URL - // refers to an instance that is not on the same network as the route. + // refers to an instance that is not on the + // same network as the route. // "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not have a // status of RUNNING. // "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to continue - // the process despite the mentioned error. + // the process despite + // the mentioned error. // "NO_RESULTS_ON_PAGE" - No results are present on a particular list page. // "PARTIAL_SUCCESS" - Success is reported, but some results may be missing // due to errors + // "QUOTA_INFO_UNAVAILABLE" - Quota information is not available to client + // requests (e.g: + // regions.list). // "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource that - // requires a TOS they have not accepted. + // requires a TOS they have not + // accepted. // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a resource is // in use. // "RESOURCE_NOT_DELETED" - One or more of the resources set to auto-delete - // could not be deleted because they were in use. + // could not be deleted + // because they were in use. // "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is // ignored. // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in instance - // group manager is valid as such, but its application does not make a lot of - // sense, because it allows only single instance in instance group. + // group manager is valid as such, but + // its application does not make a lot of sense, because it allows only + // single instance in instance group. // "UNDECLARED_PROPERTIES" - When undeclared properties in the schema are // present // "UNREACHABLE" - A given scope cannot be reached. 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: [Output Only] Metadata about this warning in key: + // value format. For example: + // + // "data": [ + // { + // "key": "scope", + // "value": "zones/us-east1-d" + // } Data []*TargetVpnGatewayAggregatedListWarningData `json:"data,omitempty"` // Message: [Output Only] A human-readable description of the warning code. Message string `json:"message,omitempty"` @@ -49715,19 +78610,22 @@ type TargetVpnGatewayAggregatedListWarning struct { NullFields []string `json:"-"` } -func (s *TargetVpnGatewayAggregatedListWarning) MarshalJSON() ([]byte, error) { +func (s TargetVpnGatewayAggregatedListWarning) MarshalJSON() ([]byte, error) { type NoMethod TargetVpnGatewayAggregatedListWarning - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } type TargetVpnGatewayAggregatedListWarningData 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: [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"` @@ -49744,9 +78642,9 @@ type TargetVpnGatewayAggregatedListWarningData struct { NullFields []string `json:"-"` } -func (s *TargetVpnGatewayAggregatedListWarningData) MarshalJSON() ([]byte, error) { +func (s TargetVpnGatewayAggregatedListWarningData) MarshalJSON() ([]byte, error) { type NoMethod TargetVpnGatewayAggregatedListWarningData - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } // TargetVpnGatewayList: Contains a list of TargetVpnGateway resources. @@ -49755,16 +78653,18 @@ type TargetVpnGatewayList struct { Id string `json:"id,omitempty"` // Items: A list of TargetVpnGateway resources. Items []*TargetVpnGateway `json:"items,omitempty"` - // Kind: [Output Only] Type of resource. Always compute#targetVpnGateway for - // target VPN gateways. + // Kind: Output only. [Output Only] Type of resource. + // Alwayscompute#targetVpnGateway for target VPN gateways. 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. + // results for + // list requests. If the number of results is larger thanmaxResults, 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"` - // SelfLink: [Output Only] Server-defined URL for this resource. + // SelfLink: Output only. [Output Only] Server-defined URL for this resource. SelfLink string `json:"selfLink,omitempty"` // Warning: [Output Only] Informational warning message. Warning *TargetVpnGatewayListWarning `json:"warning,omitempty"` @@ -49784,75 +78684,97 @@ type TargetVpnGatewayList struct { NullFields []string `json:"-"` } -func (s *TargetVpnGatewayList) MarshalJSON() ([]byte, error) { +func (s TargetVpnGatewayList) MarshalJSON() ([]byte, error) { type NoMethod TargetVpnGatewayList - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } // TargetVpnGatewayListWarning: [Output Only] Informational warning message. type TargetVpnGatewayListWarning 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. + // 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" - Warning about failed cleanup of transient changes made - // by a failed operation. + // by a failed + // operation. // "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was created. // "DEPRECATED_TYPE_USED" - When deploying and at least one of the resources - // has a type marked as deprecated + // has a type marked as + // deprecated // "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk that is // larger than image size. // "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the - // resources has a type marked as experimental + // resources has a type marked as + // experimental // "EXTERNAL_API_WARNING" - Warning that is present in an external api call // "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been - // overridden. Deprecated unused field. + // overridden. + // Deprecated unused field. // "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an injected // kernel, which is deprecated. // "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB" - A WEIGHTED_MAGLEV backend - // service is associated with a health check that is not of type - // HTTP/HTTPS/HTTP2. + // service is associated with a health check that is + // not of type HTTP/HTTPS/HTTP2. // "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a // exceedingly large number of resources // "LIST_OVERHEAD_QUOTA_EXCEED" - Resource can't be retrieved due to list - // overhead quota exceed which captures the amount of resources filtered out by + // overhead quota exceed + // which captures the amount of resources filtered out by // user-defined list filter. // "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is not - // assigned to an instance on the network. + // assigned to an instance on the + // network. // "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot ip // forward. // "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE" - The route's nextHopInstance - // URL refers to an instance that does not have an ipv6 interface on the same - // network as the route. + // URL refers to an instance that does not have an + // ipv6 interface on the same network as the route. // "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL refers to // an instance that does not exist. // "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance URL - // refers to an instance that is not on the same network as the route. + // refers to an instance that is not on the + // same network as the route. // "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not have a // status of RUNNING. // "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to continue - // the process despite the mentioned error. + // the process despite + // the mentioned error. // "NO_RESULTS_ON_PAGE" - No results are present on a particular list page. // "PARTIAL_SUCCESS" - Success is reported, but some results may be missing // due to errors + // "QUOTA_INFO_UNAVAILABLE" - Quota information is not available to client + // requests (e.g: + // regions.list). // "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource that - // requires a TOS they have not accepted. + // requires a TOS they have not + // accepted. // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a resource is // in use. // "RESOURCE_NOT_DELETED" - One or more of the resources set to auto-delete - // could not be deleted because they were in use. + // could not be deleted + // because they were in use. // "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is // ignored. // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in instance - // group manager is valid as such, but its application does not make a lot of - // sense, because it allows only single instance in instance group. + // group manager is valid as such, but + // its application does not make a lot of sense, because it allows only + // single instance in instance group. // "UNDECLARED_PROPERTIES" - When undeclared properties in the schema are // present // "UNREACHABLE" - A given scope cannot be reached. 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: [Output Only] Metadata about this warning in key: + // value format. For example: + // + // "data": [ + // { + // "key": "scope", + // "value": "zones/us-east1-d" + // } Data []*TargetVpnGatewayListWarningData `json:"data,omitempty"` // Message: [Output Only] A human-readable description of the warning code. Message string `json:"message,omitempty"` @@ -49869,19 +78791,22 @@ type TargetVpnGatewayListWarning struct { NullFields []string `json:"-"` } -func (s *TargetVpnGatewayListWarning) MarshalJSON() ([]byte, error) { +func (s TargetVpnGatewayListWarning) MarshalJSON() ([]byte, error) { type NoMethod TargetVpnGatewayListWarning - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } type TargetVpnGatewayListWarningData 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: [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"` @@ -49898,9 +78823,43 @@ type TargetVpnGatewayListWarningData struct { NullFields []string `json:"-"` } -func (s *TargetVpnGatewayListWarningData) MarshalJSON() ([]byte, error) { +func (s TargetVpnGatewayListWarningData) MarshalJSON() ([]byte, error) { type NoMethod TargetVpnGatewayListWarningData - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +type TargetVpnGatewayParams struct { + // ResourceManagerTags: Tag keys/values directly bound to this resource. + // Tag keys and values have the same definition as resource + // manager tags. The field is allowed for INSERT + // only. The keys/values to set on the resource should be specified in + // either ID { : } or Namespaced format + // { : }. + // For example the following are valid inputs: + // * {"tagKeys/333" : "tagValues/444", "tagKeys/123" : "tagValues/456"} + // * {"123/environment" : "production", "345/abc" : "xyz"} + // Note: + // * Invalid combinations of ID & namespaced format is not supported. For + // instance: {"123/environment" : "tagValues/444"} is invalid. + // * Inconsistent format is not supported. For instance: + // {"tagKeys/333" : "tagValues/444", "123/env" : "prod"} is invalid. + ResourceManagerTags map[string]string `json:"resourceManagerTags,omitempty"` + // ForceSendFields is a list of field names (e.g. "ResourceManagerTags") to + // unconditionally include in API requests. By default, fields with empty or + // default values are omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + ForceSendFields []string `json:"-"` + // NullFields is a list of field names (e.g. "ResourceManagerTags") to include + // in API requests with the JSON null value. By default, fields with empty + // values are omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s TargetVpnGatewayParams) MarshalJSON() ([]byte, error) { + type NoMethod TargetVpnGatewayParams + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } type TargetVpnGatewaysScopedList struct { @@ -49908,7 +78867,8 @@ type TargetVpnGatewaysScopedList struct { // this scope. TargetVpnGateways []*TargetVpnGateway `json:"targetVpnGateways,omitempty"` // Warning: [Output Only] Informational warning which replaces the list of - // addresses when the list is empty. + // addresses + // when the list is empty. Warning *TargetVpnGatewaysScopedListWarning `json:"warning,omitempty"` // ForceSendFields is a list of field names (e.g. "TargetVpnGateways") to // unconditionally include in API requests. By default, fields with empty or @@ -49923,76 +78883,99 @@ type TargetVpnGatewaysScopedList struct { NullFields []string `json:"-"` } -func (s *TargetVpnGatewaysScopedList) MarshalJSON() ([]byte, error) { +func (s TargetVpnGatewaysScopedList) MarshalJSON() ([]byte, error) { type NoMethod TargetVpnGatewaysScopedList - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } // TargetVpnGatewaysScopedListWarning: [Output Only] Informational warning -// which replaces the list of addresses when the list is empty. +// which replaces the list of addresses +// when the list is empty. type TargetVpnGatewaysScopedListWarning 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. + // 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" - Warning about failed cleanup of transient changes made - // by a failed operation. + // by a failed + // operation. // "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was created. // "DEPRECATED_TYPE_USED" - When deploying and at least one of the resources - // has a type marked as deprecated + // has a type marked as + // deprecated // "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk that is // larger than image size. // "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the - // resources has a type marked as experimental + // resources has a type marked as + // experimental // "EXTERNAL_API_WARNING" - Warning that is present in an external api call // "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been - // overridden. Deprecated unused field. + // overridden. + // Deprecated unused field. // "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an injected // kernel, which is deprecated. // "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB" - A WEIGHTED_MAGLEV backend - // service is associated with a health check that is not of type - // HTTP/HTTPS/HTTP2. + // service is associated with a health check that is + // not of type HTTP/HTTPS/HTTP2. // "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a // exceedingly large number of resources // "LIST_OVERHEAD_QUOTA_EXCEED" - Resource can't be retrieved due to list - // overhead quota exceed which captures the amount of resources filtered out by + // overhead quota exceed + // which captures the amount of resources filtered out by // user-defined list filter. // "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is not - // assigned to an instance on the network. + // assigned to an instance on the + // network. // "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot ip // forward. // "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE" - The route's nextHopInstance - // URL refers to an instance that does not have an ipv6 interface on the same - // network as the route. + // URL refers to an instance that does not have an + // ipv6 interface on the same network as the route. // "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL refers to // an instance that does not exist. // "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance URL - // refers to an instance that is not on the same network as the route. + // refers to an instance that is not on the + // same network as the route. // "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not have a // status of RUNNING. // "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to continue - // the process despite the mentioned error. + // the process despite + // the mentioned error. // "NO_RESULTS_ON_PAGE" - No results are present on a particular list page. // "PARTIAL_SUCCESS" - Success is reported, but some results may be missing // due to errors + // "QUOTA_INFO_UNAVAILABLE" - Quota information is not available to client + // requests (e.g: + // regions.list). // "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource that - // requires a TOS they have not accepted. + // requires a TOS they have not + // accepted. // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a resource is // in use. // "RESOURCE_NOT_DELETED" - One or more of the resources set to auto-delete - // could not be deleted because they were in use. + // could not be deleted + // because they were in use. // "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is // ignored. // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in instance - // group manager is valid as such, but its application does not make a lot of - // sense, because it allows only single instance in instance group. + // group manager is valid as such, but + // its application does not make a lot of sense, because it allows only + // single instance in instance group. // "UNDECLARED_PROPERTIES" - When undeclared properties in the schema are // present // "UNREACHABLE" - A given scope cannot be reached. 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: [Output Only] Metadata about this warning in key: + // value format. For example: + // + // "data": [ + // { + // "key": "scope", + // "value": "zones/us-east1-d" + // } Data []*TargetVpnGatewaysScopedListWarningData `json:"data,omitempty"` // Message: [Output Only] A human-readable description of the warning code. Message string `json:"message,omitempty"` @@ -50009,19 +78992,22 @@ type TargetVpnGatewaysScopedListWarning struct { NullFields []string `json:"-"` } -func (s *TargetVpnGatewaysScopedListWarning) MarshalJSON() ([]byte, error) { +func (s TargetVpnGatewaysScopedListWarning) MarshalJSON() ([]byte, error) { type NoMethod TargetVpnGatewaysScopedListWarning - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } type TargetVpnGatewaysScopedListWarningData 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: [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"` @@ -50038,28 +79024,33 @@ type TargetVpnGatewaysScopedListWarningData struct { NullFields []string `json:"-"` } -func (s *TargetVpnGatewaysScopedListWarningData) MarshalJSON() ([]byte, error) { +func (s TargetVpnGatewaysScopedListWarningData) MarshalJSON() ([]byte, error) { type NoMethod TargetVpnGatewaysScopedListWarningData - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } type TestFailure struct { // ActualOutputUrl: The actual output URL evaluated by a load balancer - // containing the scheme, host, path and query parameters. + // containing the scheme, + // host, path and query parameters. ActualOutputUrl string `json:"actualOutputUrl,omitempty"` // ActualRedirectResponseCode: Actual HTTP status code for rule with - // `urlRedirect` calculated by load balancer + // `urlRedirect` + // calculated by load balancer ActualRedirectResponseCode int64 `json:"actualRedirectResponseCode,omitempty"` - // ActualService: BackendService or BackendBucket returned by load balancer. + // ActualService: BackendService or BackendBucket returned by load + // balancer. ActualService string `json:"actualService,omitempty"` // ExpectedOutputUrl: The expected output URL evaluated by a load balancer - // containing the scheme, host, path and query parameters. + // containing the scheme, + // host, path and query parameters. ExpectedOutputUrl string `json:"expectedOutputUrl,omitempty"` // ExpectedRedirectResponseCode: Expected HTTP status code for rule with - // `urlRedirect` calculated by load balancer + // `urlRedirect` + // calculated by load balancer ExpectedRedirectResponseCode int64 `json:"expectedRedirectResponseCode,omitempty"` - // ExpectedService: Expected BackendService or BackendBucket resource the given - // URL should be mapped to. + // ExpectedService: Expected BackendService or BackendBucket resource + // the given URL should be mapped to. ExpectedService string `json:"expectedService,omitempty"` // Headers: HTTP headers of the request. Headers []*UrlMapTestHeader `json:"headers,omitempty"` @@ -50080,14 +79071,15 @@ type TestFailure struct { NullFields []string `json:"-"` } -func (s *TestFailure) MarshalJSON() ([]byte, error) { +func (s TestFailure) MarshalJSON() ([]byte, error) { type NoMethod TestFailure - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } type TestPermissionsRequest struct { // Permissions: The set of permissions to check for the 'resource'. Permissions - // with wildcards (such as '*' or 'storage.*') are not allowed. + // with + // wildcards (such as '*' or 'storage.*') are not allowed. Permissions []string `json:"permissions,omitempty"` // ForceSendFields is a list of field names (e.g. "Permissions") to // unconditionally include in API requests. By default, fields with empty or @@ -50102,14 +79094,15 @@ type TestPermissionsRequest struct { NullFields []string `json:"-"` } -func (s *TestPermissionsRequest) MarshalJSON() ([]byte, error) { +func (s TestPermissionsRequest) MarshalJSON() ([]byte, error) { type NoMethod TestPermissionsRequest - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } type TestPermissionsResponse struct { // Permissions: A subset of `TestPermissionsRequest.permissions` that the - // caller is allowed. + // caller is + // allowed. Permissions []string `json:"permissions,omitempty"` // ServerResponse contains the HTTP response code and headers from the server. @@ -50127,9 +79120,35 @@ type TestPermissionsResponse struct { NullFields []string `json:"-"` } -func (s *TestPermissionsResponse) MarshalJSON() ([]byte, error) { +func (s TestPermissionsResponse) MarshalJSON() ([]byte, error) { type NoMethod TestPermissionsResponse - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +// TimeZone: Represents a time zone from the +// IANA Time Zone Database (https://www.iana.org/time-zones). +type TimeZone struct { + // Id: IANA Time Zone Database time zone. For example "America/New_York". + Id string `json:"id,omitempty"` + // Version: Optional. IANA Time Zone Database version number. For example + // "2019a". + Version string `json:"version,omitempty"` + // ForceSendFields is a list of field names (e.g. "Id") to unconditionally + // include in API requests. By default, fields with empty or default values are + // omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + 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. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s TimeZone) MarshalJSON() ([]byte, error) { + type NoMethod TimeZone + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } type Uint128 struct { @@ -50148,9 +79167,9 @@ type Uint128 struct { NullFields []string `json:"-"` } -func (s *Uint128) MarshalJSON() ([]byte, error) { +func (s Uint128) MarshalJSON() ([]byte, error) { type NoMethod Uint128 - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } // UpcomingMaintenance: Upcoming Maintenance notification information. @@ -50158,8 +79177,40 @@ type UpcomingMaintenance struct { // CanReschedule: Indicates if the maintenance can be customer triggered. CanReschedule bool `json:"canReschedule,omitempty"` // LatestWindowStartTime: The latest time for the planned maintenance window to - // start. This timestamp value is in RFC3339 text format. + // start. + // This timestamp value is in RFC3339 text format. LatestWindowStartTime string `json:"latestWindowStartTime,omitempty"` + // MaintenanceOnShutdown: Indicates whether the UpcomingMaintenance will be + // triggered on VM shutdown. + MaintenanceOnShutdown bool `json:"maintenanceOnShutdown,omitempty"` + // MaintenanceReasons: The reasons for the maintenance. Only valid for vms. + // + // Possible values: + // "FAILURE_DISK" - Maintenance due to disk errors. + // "FAILURE_GPU" - Maintenance due to GPU errors. + // "FAILURE_GPU_MULTIPLE_FAULTY_HOSTS_CUSTOMER_REPORTED" - Maintenance due to + // customer reported multiple faulty hosts via R&R + // Subblock API. + // "FAILURE_GPU_NVLINK_SWITCH_CUSTOMER_REPORTED" - Maintenance due to + // customer reported NVLink switch failure via R&R + // Subblock API. + // "FAILURE_GPU_TEMPERATURE" - Maintenance due to high GPU temperature. + // "FAILURE_GPU_XID" - Maintenance due to GPU xid failure. + // "FAILURE_INFRA" - Maintenance due to infrastructure errors. + // "FAILURE_INTERFACE" - Maintenance due to interface errors. + // "FAILURE_MEMORY" - Maintenance due to memory errors. + // "FAILURE_NETWORK" - Maintenance due to network errors. + // "FAILURE_NVLINK" - Maintenance due to NVLink failure. + // "FAILURE_REDUNDANT_HARDWARE_FAULT" - Maintenance due to redundant hardware + // fault. + // "FAILURE_TPU" - Maintenance due to TPU errors. + // "INFRASTRUCTURE_RELOCATION" - Maintenance due to infrastructure + // relocation. + // "MAINTENANCE_REASON_UNKNOWN" - Unknown maintenance reason. Do not use this + // value. + // "PLANNED_NETWORK_UPDATE" - Maintenance due to planned network update. + // "PLANNED_UPDATE" - Maintenance due to planned update to the instance. + MaintenanceReasons []string `json:"maintenanceReasons,omitempty"` // Possible values: // "ONGOING" - There is ongoing maintenance on this VM. // "PENDING" - There is pending maintenance. @@ -50168,17 +79219,22 @@ type UpcomingMaintenance struct { // Type: Defines the type of maintenance. // // Possible values: + // "MULTIPLE" - Multiple maintenance types in one window. + // This is only intended to be used for groups. // "SCHEDULED" - Scheduled maintenance (e.g. maintenance after uptime - // guarantee is complete). + // guarantee is + // complete). // "UNKNOWN_TYPE" - No type specified. Do not use this value. - // "UNSCHEDULED" - Unscheduled maintenance (e.g. emergency maintenance during + // "UNSCHEDULED" - Unscheduled maintenance (e.g. emergency maintenance + // during // uptime guarantee). Type string `json:"type,omitempty"` // WindowEndTime: The time by which the maintenance disruption will be - // completed. This timestamp value is in RFC3339 text format. + // completed. + // This timestamp value is in RFC3339 text format. WindowEndTime string `json:"windowEndTime,omitempty"` - // WindowStartTime: The current start time of the maintenance window. This - // timestamp value is in RFC3339 text format. + // WindowStartTime: The current start time of the maintenance window. + // This timestamp value is in RFC3339 text format. WindowStartTime string `json:"windowStartTime,omitempty"` // ForceSendFields is a list of field names (e.g. "CanReschedule") to // unconditionally include in API requests. By default, fields with empty or @@ -50193,107 +79249,211 @@ type UpcomingMaintenance struct { NullFields []string `json:"-"` } -func (s *UpcomingMaintenance) MarshalJSON() ([]byte, error) { +func (s UpcomingMaintenance) MarshalJSON() ([]byte, error) { type NoMethod UpcomingMaintenance - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) -} - -// UrlMap: Represents a URL Map resource. Compute Engine has two URL Map -// resources: * Global (/compute/docs/reference/rest/v1/urlMaps) * Regional -// (/compute/docs/reference/rest/v1/regionUrlMaps) A URL map resource is a -// component of certain types of cloud load balancers and Traffic Director: * -// urlMaps are used by global external Application Load Balancers, classic -// Application Load Balancers, and cross-region internal Application Load -// Balancers. * regionUrlMaps are used by internal Application Load Balancers, -// regional external Application Load Balancers and regional internal -// Application Load Balancers. For a list of supported URL map features by the -// load balancer type, see the Load balancing features: Routing and traffic -// management table. For a list of supported URL map features for Traffic -// Director, see the Traffic Director features: Routing and traffic management -// table. This resource defines mappings from hostnames and URL paths to either -// a backend service or a backend bucket. To use the global urlMaps resource, -// the backend service must have a loadBalancingScheme of either EXTERNAL or -// INTERNAL_SELF_MANAGED. To use the regionUrlMaps resource, the backend -// service must have a loadBalancingScheme of INTERNAL_MANAGED. For more -// information, read URL Map Concepts. + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +// UrlMap: Represents a URL Map resource. +// +// Compute Engine has two URL Map resources: +// +// * Global (/compute/docs/reference/rest/v1/urlMaps) +// * Regional (/compute/docs/reference/rest/v1/regionUrlMaps) +// +// A URL map resource is a component of certain types of cloud load +// balancers +// and Traffic Director: +// +// * urlMaps are used by global external Application Load +// Balancers, classic Application Load Balancers, and cross-region +// internal +// Application Load Balancers. +// * regionUrlMaps are used by internal Application Load Balancers, +// regional external Application Load Balancers and regional +// internal +// Application Load Balancers. +// +// For a list of supported URL map features by the load balancer type, see +// the +// Load balancing features: Routing and traffic management table. +// +// For a list of supported URL map features for Traffic Director, see +// the +// Traffic Director features: Routing and traffic management table. +// +// This resource defines mappings from hostnames and URL paths to either +// a +// backend service or a backend bucket. +// +// To use the global urlMaps resource, the backend service must +// have a loadBalancingScheme of either EXTERNAL,EXTERNAL_MANAGED, or +// INTERNAL_SELF_MANAGED. To use +// the regionUrlMaps resource, the backend service must have +// aloadBalancingScheme of INTERNAL_MANAGED. For more +// information, read URL +// Map Concepts. type UrlMap struct { - // CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text format. + // CreationTimestamp: Output only. [Output Only] Creation timestamp + // inRFC3339 + // text format. CreationTimestamp string `json:"creationTimestamp,omitempty"` + // DefaultCustomErrorResponsePolicy: defaultCustomErrorResponsePolicy specifies + // how the Load + // Balancer returns error responses when BackendServiceorBackendBucket responds + // with an error. + // + // This policy takes + // effect at the load balancer level and applies only when no policy has + // been + // defined for the error code at lower levels like PathMatcher, RouteRule + // and + // PathRule within this UrlMap. + // + // For example, consider a UrlMap with the + // following configuration: + // + // + // - defaultCustomErrorResponsePolicy containing policies for + // responding to 5xx and 4xx errors + // - A PathMatcher configured for *.example.com has + // defaultCustomErrorResponsePolicy for 4xx. + // + // If a request for http://www.example.com/ encounters a404, the policy + // inpathMatcher.defaultCustomErrorResponsePolicy will be enforced. + // When the request for http://www.example.com/ encounters a502, the policy + // inUrlMap.defaultCustomErrorResponsePolicy will be enforced. When + // a request that does not match any host in *.example.com such + // as http://www.myotherexample.com/, encounters a404, + // UrlMap.defaultCustomErrorResponsePolicy + // takes effect. + // + // When used in conjunction withdefaultRouteAction.retryPolicy, retries take + // precedence. Only + // once all retries are exhausted, thedefaultCustomErrorResponsePolicy is + // applied. While attempting + // a retry, if load balancer is successful in reaching the + // service, the defaultCustomErrorResponsePolicy is ignored and + // the response from the service is returned to the + // client. + // + // defaultCustomErrorResponsePolicy is supported only for + // global external Application Load Balancers. + DefaultCustomErrorResponsePolicy *CustomErrorResponsePolicy `json:"defaultCustomErrorResponsePolicy,omitempty"` // DefaultRouteAction: defaultRouteAction takes effect when none of the - // hostRules match. The load balancer performs advanced routing actions, such - // as URL rewrites and header transformations, before forwarding the request to - // the selected backend. If defaultRouteAction specifies any - // weightedBackendServices, defaultService must not be set. Conversely if - // defaultService is set, defaultRouteAction cannot contain any - // weightedBackendServices. Only one of defaultRouteAction or - // defaultUrlRedirect must be set. URL maps for classic Application Load - // Balancers only support the urlRewrite action within defaultRouteAction. - // defaultRouteAction has no effect when the URL map is bound to a target gRPC - // proxy that has the validateForProxyless field set to true. + // + // hostRules match. The load balancer performs advanced routing + // actions, such as URL rewrites and header transformations, before + // forwarding + // the request to the selected backend. + // + // + // Only one of defaultUrlRedirect, defaultService + // or defaultRouteAction.weightedBackendService can be set. + // + // + // URL maps for classic Application Load Balancers only support + // the urlRewrite action within defaultRouteAction. + // + // + // defaultRouteAction has no effect when the URL map is bound + // to a target gRPC proxy that has the validateForProxyless field + // set to true. DefaultRouteAction *HttpRouteAction `json:"defaultRouteAction,omitempty"` - // DefaultService: The full or partial URL of the defaultService resource to - // which traffic is directed if none of the hostRules match. If - // defaultRouteAction is also specified, advanced routing actions, such as URL - // rewrites, take effect before sending the request to the backend. However, if - // defaultService is specified, defaultRouteAction cannot contain any - // weightedBackendServices. Conversely, if routeAction specifies any - // weightedBackendServices, service must not be specified. If defaultService is - // specified, then set either defaultUrlRedirect , or - // defaultRouteAction.weightedBackendService Don't set both. defaultService has - // no effect when the URL map is bound to a target gRPC proxy that has the - // validateForProxyless field set to true. + // DefaultService: The full or partial URL of the defaultService resource + // to + // which traffic is directed if none of the hostRules match. + // If defaultRouteAction is also specified, advanced + // routing actions, such as URL rewrites, take effect before sending + // the + // request to the backend. + // + // + // Only one of defaultUrlRedirect, defaultService + // or defaultRouteAction.weightedBackendService can be set. + // + // + // defaultService has no effect when the URL map is bound + // to a target gRPC proxy that has the validateForProxyless field + // set to true. DefaultService string `json:"defaultService,omitempty"` - // DefaultUrlRedirect: When none of the specified hostRules match, the request - // is redirected to a URL specified by defaultUrlRedirect. If - // defaultUrlRedirect is specified, defaultService or defaultRouteAction must - // not be set. Not supported when the URL map is bound to a target gRPC proxy. + // DefaultUrlRedirect: When none of the specified hostRules match, the + // request + // is redirected to a URL specified by defaultUrlRedirect. + // + // + // Only one of defaultUrlRedirect, defaultService + // or defaultRouteAction.weightedBackendService can be set. + // + // + // Not supported when the URL map is bound to a target gRPC proxy. DefaultUrlRedirect *HttpRedirectAction `json:"defaultUrlRedirect,omitempty"` // Description: An optional description of this resource. Provide this property - // when you create the resource. + // when you + // create the resource. Description string `json:"description,omitempty"` // Fingerprint: Fingerprint of this resource. A hash of the contents stored in - // this object. This field is used in optimistic locking. This field is ignored - // when inserting a UrlMap. An up-to-date fingerprint must be provided in order - // to update the UrlMap, otherwise the request will fail with error 412 - // conditionNotMet. To see the latest fingerprint, make a get() request to + // this object. + // This field is used in optimistic locking. This field is ignored + // when + // inserting a UrlMap. An up-to-date fingerprint must be provided + // in order to update the UrlMap, otherwise the request will + // fail with error 412 conditionNotMet. + // + // To see the latest fingerprint, make a get() request to // retrieve a UrlMap. Fingerprint string `json:"fingerprint,omitempty"` // HeaderAction: Specifies changes to request and response headers that need to - // take effect for the selected backendService. The headerAction specified here - // take effect after headerAction specified under pathMatcher. headerAction is - // not supported for load balancers that have their loadBalancingScheme set to - // EXTERNAL. Not supported when the URL map is bound to a target gRPC proxy - // that has validateForProxyless field set to true. + // take effect + // for the selected backendService. + // + // The headerAction specified here take effect afterheaderAction specified + // under pathMatcher. + // + // headerAction is not supported for load balancers + // that have + // their loadBalancingScheme set to EXTERNAL. + // + // Not supported when the URL map is bound to a target gRPC proxy that + // has validateForProxyless field set to true. HeaderAction *HttpHeaderAction `json:"headerAction,omitempty"` // HostRules: The list of host rules to use against the URL. HostRules []*HostRule `json:"hostRules,omitempty"` - // Id: [Output Only] The unique identifier for the resource. This identifier is + // Id: [Output Only] The unique identifier for the resource. This identifier + // is // defined by the server. Id uint64 `json:"id,omitempty,string"` - // Kind: [Output Only] Type of the resource. Always compute#urlMaps for url - // maps. + // Kind: Output only. [Output Only] Type of the resource. Always + // compute#urlMaps for + // url maps. Kind string `json:"kind,omitempty"` // Name: Name of the resource. Provided by the client when the resource is - // created. The name must be 1-63 characters long, and comply with RFC1035. - // 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. + // created. + // The name must be 1-63 characters long, and comply withRFC1035. + // 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. Name string `json:"name,omitempty"` // PathMatchers: The list of named PathMatchers to use against the URL. PathMatchers []*PathMatcher `json:"pathMatchers,omitempty"` - // Region: [Output Only] URL of the region where the regional URL map resides. - // This field is not applicable to global URL maps. You must specify this field - // as part of the HTTP request URL. It is not settable as a field in the - // request body. + // Region: Output only. [Output Only] URL of the region where the regional URL + // map resides. + // This field is not applicable to global URL maps. + // You must specify this field as part of the HTTP request URL. It is + // not settable as a field in the request body. Region string `json:"region,omitempty"` // SelfLink: [Output Only] Server-defined URL for the resource. SelfLink string `json:"selfLink,omitempty"` - // Tests: The list of expected URL mapping tests. Request to update the UrlMap - // succeeds only if all test cases pass. You can specify a maximum of 100 tests - // per UrlMap. Not supported when the URL map is bound to a target gRPC proxy - // that has validateForProxyless field set to true. + // Tests: The list of expected URL mapping tests. Request to update theUrlMap + // succeeds only if all test cases pass. You can specify a + // maximum of 100 tests per UrlMap. + // + // Not supported when the URL map is bound to a target gRPC proxy that + // has validateForProxyless field set to true. Tests []*UrlMapTest `json:"tests,omitempty"` // ServerResponse contains the HTTP response code and headers from the server. @@ -50311,9 +79471,9 @@ type UrlMap struct { NullFields []string `json:"-"` } -func (s *UrlMap) MarshalJSON() ([]byte, error) { +func (s UrlMap) MarshalJSON() ([]byte, error) { type NoMethod UrlMap - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } // UrlMapList: Contains a list of UrlMap resources. @@ -50322,15 +79482,17 @@ type UrlMapList struct { Id string `json:"id,omitempty"` // Items: A list of UrlMap resources. Items []*UrlMap `json:"items,omitempty"` - // Kind: Type of resource. + // Kind: Output only. Type of resource. 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. + // results for + // list requests. If the number of results is larger thanmaxResults, 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"` - // SelfLink: [Output Only] Server-defined URL for this resource. + // SelfLink: Output only. [Output Only] Server-defined URL for this resource. SelfLink string `json:"selfLink,omitempty"` // Warning: [Output Only] Informational warning message. Warning *UrlMapListWarning `json:"warning,omitempty"` @@ -50350,75 +79512,97 @@ type UrlMapList struct { NullFields []string `json:"-"` } -func (s *UrlMapList) MarshalJSON() ([]byte, error) { +func (s UrlMapList) MarshalJSON() ([]byte, error) { type NoMethod UrlMapList - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } // UrlMapListWarning: [Output Only] Informational warning message. type UrlMapListWarning 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. + // 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" - Warning about failed cleanup of transient changes made - // by a failed operation. + // by a failed + // operation. // "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was created. // "DEPRECATED_TYPE_USED" - When deploying and at least one of the resources - // has a type marked as deprecated + // has a type marked as + // deprecated // "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk that is // larger than image size. // "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the - // resources has a type marked as experimental + // resources has a type marked as + // experimental // "EXTERNAL_API_WARNING" - Warning that is present in an external api call // "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been - // overridden. Deprecated unused field. + // overridden. + // Deprecated unused field. // "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an injected // kernel, which is deprecated. // "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB" - A WEIGHTED_MAGLEV backend - // service is associated with a health check that is not of type - // HTTP/HTTPS/HTTP2. + // service is associated with a health check that is + // not of type HTTP/HTTPS/HTTP2. // "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a // exceedingly large number of resources // "LIST_OVERHEAD_QUOTA_EXCEED" - Resource can't be retrieved due to list - // overhead quota exceed which captures the amount of resources filtered out by + // overhead quota exceed + // which captures the amount of resources filtered out by // user-defined list filter. // "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is not - // assigned to an instance on the network. + // assigned to an instance on the + // network. // "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot ip // forward. // "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE" - The route's nextHopInstance - // URL refers to an instance that does not have an ipv6 interface on the same - // network as the route. + // URL refers to an instance that does not have an + // ipv6 interface on the same network as the route. // "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL refers to // an instance that does not exist. // "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance URL - // refers to an instance that is not on the same network as the route. + // refers to an instance that is not on the + // same network as the route. // "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not have a // status of RUNNING. // "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to continue - // the process despite the mentioned error. + // the process despite + // the mentioned error. // "NO_RESULTS_ON_PAGE" - No results are present on a particular list page. // "PARTIAL_SUCCESS" - Success is reported, but some results may be missing // due to errors + // "QUOTA_INFO_UNAVAILABLE" - Quota information is not available to client + // requests (e.g: + // regions.list). // "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource that - // requires a TOS they have not accepted. + // requires a TOS they have not + // accepted. // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a resource is // in use. // "RESOURCE_NOT_DELETED" - One or more of the resources set to auto-delete - // could not be deleted because they were in use. + // could not be deleted + // because they were in use. // "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is // ignored. // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in instance - // group manager is valid as such, but its application does not make a lot of - // sense, because it allows only single instance in instance group. + // group manager is valid as such, but + // its application does not make a lot of sense, because it allows only + // single instance in instance group. // "UNDECLARED_PROPERTIES" - When undeclared properties in the schema are // present // "UNREACHABLE" - A given scope cannot be reached. 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: [Output Only] Metadata about this warning in key: + // value format. For example: + // + // "data": [ + // { + // "key": "scope", + // "value": "zones/us-east1-d" + // } Data []*UrlMapListWarningData `json:"data,omitempty"` // Message: [Output Only] A human-readable description of the warning code. Message string `json:"message,omitempty"` @@ -50435,19 +79619,22 @@ type UrlMapListWarning struct { NullFields []string `json:"-"` } -func (s *UrlMapListWarning) MarshalJSON() ([]byte, error) { +func (s UrlMapListWarning) MarshalJSON() ([]byte, error) { type NoMethod UrlMapListWarning - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } type UrlMapListWarningData 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: [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"` @@ -50464,9 +79651,9 @@ type UrlMapListWarningData struct { NullFields []string `json:"-"` } -func (s *UrlMapListWarningData) MarshalJSON() ([]byte, error) { +func (s UrlMapListWarningData) MarshalJSON() ([]byte, error) { type NoMethod UrlMapListWarningData - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } type UrlMapReference struct { @@ -50484,45 +79671,55 @@ type UrlMapReference struct { NullFields []string `json:"-"` } -func (s *UrlMapReference) MarshalJSON() ([]byte, error) { +func (s UrlMapReference) MarshalJSON() ([]byte, error) { type NoMethod UrlMapReference - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } // UrlMapTest: Message for the expected URL mappings. type UrlMapTest struct { // Description: Description of this test case. Description string `json:"description,omitempty"` - // ExpectedOutputUrl: The expected output URL evaluated by the load balancer - // containing the scheme, host, path and query parameters. For rules that - // forward requests to backends, the test passes only when expectedOutputUrl - // matches the request forwarded by the load balancer to backends. For rules - // with urlRewrite, the test verifies that the forwarded request matches - // hostRewrite and pathPrefixRewrite in the urlRewrite action. When service is - // specified, expectedOutputUrl`s scheme is ignored. For rules with - // urlRedirect, the test passes only if expectedOutputUrl matches the URL in - // the load balancer's redirect response. If urlRedirect specifies - // https_redirect, the test passes only if the scheme in expectedOutputUrl is - // also set to HTTPS. If urlRedirect specifies strip_query, the test passes - // only if expectedOutputUrl does not contain any query parameters. - // expectedOutputUrl is optional when service is specified. + // ExpectedOutputUrl: The expected output URL evaluated by the load + // balancer + // containing the scheme, host, path and query parameters. + // + // For rules that forward requests to backends, the test passes only + // whenexpectedOutputUrl matches the request forwarded by + // the load balancer to backends. For rules with urlRewrite, + // the test verifies that the forwarded request matcheshostRewrite and + // pathPrefixRewrite in theurlRewrite action. When service is + // specified,expectedOutputUrl`s scheme is ignored. + // + // For rules with urlRedirect, the test passes only ifexpectedOutputUrl matches + // the URL in the load balancer's + // redirect response. If urlRedirect specifieshttps_redirect, the test passes + // only if the scheme inexpectedOutputUrl is also set to HTTPS. + // If urlRedirect specifies strip_query, the test + // passes only if expectedOutputUrl does not contain any query + // parameters. + // + // expectedOutputUrl is optional whenservice is specified. ExpectedOutputUrl string `json:"expectedOutputUrl,omitempty"` // ExpectedRedirectResponseCode: For rules with urlRedirect, the test passes - // only if expectedRedirectResponseCode matches the HTTP status code in load - // balancer's redirect response. expectedRedirectResponseCode cannot be set - // when service is set. + // only ifexpectedRedirectResponseCode matches the HTTP status code in + // load balancer's redirect response. + // + // expectedRedirectResponseCode cannot be set whenservice is set. ExpectedRedirectResponseCode int64 `json:"expectedRedirectResponseCode,omitempty"` - // Headers: HTTP headers for this request. If headers contains a host header, - // then host must also match the header value. + // Headers: HTTP headers for this request. If headers contains + // a host header, then host must also match the header value. Headers []*UrlMapTestHeader `json:"headers,omitempty"` - // Host: Host portion of the URL. If headers contains a host header, then host - // must also match the header value. + // Host: Host portion of the URL. If headers contains a host header, + // then host must also match the header value. Host string `json:"host,omitempty"` // Path: Path portion of the URL. Path string `json:"path,omitempty"` - // Service: Expected BackendService or BackendBucket resource the given URL - // should be mapped to. The service field cannot be set if - // expectedRedirectResponseCode is set. + // Service: Expected BackendService or BackendBucket resource + // the given URL should be mapped to. + // + // The service field cannot + // be set if expectedRedirectResponseCode is set. Service string `json:"service,omitempty"` // ForceSendFields is a list of field names (e.g. "Description") to // unconditionally include in API requests. By default, fields with empty or @@ -50537,9 +79734,9 @@ type UrlMapTest struct { NullFields []string `json:"-"` } -func (s *UrlMapTest) MarshalJSON() ([]byte, error) { +func (s UrlMapTest) MarshalJSON() ([]byte, error) { type NoMethod UrlMapTest - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } // UrlMapTestHeader: HTTP headers used in UrlMapTests. @@ -50561,21 +79758,22 @@ type UrlMapTestHeader struct { NullFields []string `json:"-"` } -func (s *UrlMapTestHeader) MarshalJSON() ([]byte, error) { +func (s UrlMapTestHeader) MarshalJSON() ([]byte, error) { type NoMethod UrlMapTestHeader - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } // UrlMapValidationResult: Message representing the validation result for a // UrlMap. type UrlMapValidationResult struct { LoadErrors []string `json:"loadErrors,omitempty"` - // LoadSucceeded: Whether the given UrlMap can be successfully loaded. If - // false, 'loadErrors' indicates the reasons. + // LoadSucceeded: Whether the given UrlMap can be successfully loaded. + // If false, 'loadErrors' indicates the reasons. LoadSucceeded bool `json:"loadSucceeded,omitempty"` TestFailures []*TestFailure `json:"testFailures,omitempty"` // TestPassed: If successfully loaded, this field indicates whether the test - // passed. If false, 'testFailures's indicate the reason of failure. + // passed. + // If false, 'testFailures's indicate the reason of failure. TestPassed bool `json:"testPassed,omitempty"` // ForceSendFields is a list of field names (e.g. "LoadErrors") to // unconditionally include in API requests. By default, fields with empty or @@ -50590,9 +79788,9 @@ type UrlMapValidationResult struct { NullFields []string `json:"-"` } -func (s *UrlMapValidationResult) MarshalJSON() ([]byte, error) { +func (s UrlMapValidationResult) MarshalJSON() ([]byte, error) { type NoMethod UrlMapValidationResult - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } type UrlMapsAggregatedList struct { @@ -50600,17 +79798,19 @@ type UrlMapsAggregatedList struct { Id string `json:"id,omitempty"` // Items: A list of UrlMapsScopedList resources. Items map[string]UrlMapsScopedList `json:"items,omitempty"` - // Kind: Type of resource. + // Kind: Output only. Type of resource. 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. + // results for + // list requests. If the number of results is larger thanmaxResults, 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"` - // SelfLink: [Output Only] Server-defined URL for this resource. + // SelfLink: Output only. [Output Only] Server-defined URL for this resource. SelfLink string `json:"selfLink,omitempty"` - // Unreachables: [Output Only] Unreachable resources. + // Unreachables: Output only. [Output Only] Unreachable resources. Unreachables []string `json:"unreachables,omitempty"` // Warning: [Output Only] Informational warning message. Warning *UrlMapsAggregatedListWarning `json:"warning,omitempty"` @@ -50630,75 +79830,97 @@ type UrlMapsAggregatedList struct { NullFields []string `json:"-"` } -func (s *UrlMapsAggregatedList) MarshalJSON() ([]byte, error) { +func (s UrlMapsAggregatedList) MarshalJSON() ([]byte, error) { type NoMethod UrlMapsAggregatedList - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } // UrlMapsAggregatedListWarning: [Output Only] Informational warning message. type UrlMapsAggregatedListWarning 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. + // 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" - Warning about failed cleanup of transient changes made - // by a failed operation. + // by a failed + // operation. // "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was created. // "DEPRECATED_TYPE_USED" - When deploying and at least one of the resources - // has a type marked as deprecated + // has a type marked as + // deprecated // "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk that is // larger than image size. // "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the - // resources has a type marked as experimental + // resources has a type marked as + // experimental // "EXTERNAL_API_WARNING" - Warning that is present in an external api call // "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been - // overridden. Deprecated unused field. + // overridden. + // Deprecated unused field. // "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an injected // kernel, which is deprecated. // "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB" - A WEIGHTED_MAGLEV backend - // service is associated with a health check that is not of type - // HTTP/HTTPS/HTTP2. + // service is associated with a health check that is + // not of type HTTP/HTTPS/HTTP2. // "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a // exceedingly large number of resources // "LIST_OVERHEAD_QUOTA_EXCEED" - Resource can't be retrieved due to list - // overhead quota exceed which captures the amount of resources filtered out by + // overhead quota exceed + // which captures the amount of resources filtered out by // user-defined list filter. // "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is not - // assigned to an instance on the network. + // assigned to an instance on the + // network. // "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot ip // forward. // "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE" - The route's nextHopInstance - // URL refers to an instance that does not have an ipv6 interface on the same - // network as the route. + // URL refers to an instance that does not have an + // ipv6 interface on the same network as the route. // "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL refers to // an instance that does not exist. // "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance URL - // refers to an instance that is not on the same network as the route. + // refers to an instance that is not on the + // same network as the route. // "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not have a // status of RUNNING. // "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to continue - // the process despite the mentioned error. + // the process despite + // the mentioned error. // "NO_RESULTS_ON_PAGE" - No results are present on a particular list page. // "PARTIAL_SUCCESS" - Success is reported, but some results may be missing // due to errors + // "QUOTA_INFO_UNAVAILABLE" - Quota information is not available to client + // requests (e.g: + // regions.list). // "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource that - // requires a TOS they have not accepted. + // requires a TOS they have not + // accepted. // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a resource is // in use. // "RESOURCE_NOT_DELETED" - One or more of the resources set to auto-delete - // could not be deleted because they were in use. + // could not be deleted + // because they were in use. // "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is // ignored. // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in instance - // group manager is valid as such, but its application does not make a lot of - // sense, because it allows only single instance in instance group. + // group manager is valid as such, but + // its application does not make a lot of sense, because it allows only + // single instance in instance group. // "UNDECLARED_PROPERTIES" - When undeclared properties in the schema are // present // "UNREACHABLE" - A given scope cannot be reached. 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: [Output Only] Metadata about this warning in key: + // value format. For example: + // + // "data": [ + // { + // "key": "scope", + // "value": "zones/us-east1-d" + // } Data []*UrlMapsAggregatedListWarningData `json:"data,omitempty"` // Message: [Output Only] A human-readable description of the warning code. Message string `json:"message,omitempty"` @@ -50715,19 +79937,22 @@ type UrlMapsAggregatedListWarning struct { NullFields []string `json:"-"` } -func (s *UrlMapsAggregatedListWarning) MarshalJSON() ([]byte, error) { +func (s UrlMapsAggregatedListWarning) MarshalJSON() ([]byte, error) { type NoMethod UrlMapsAggregatedListWarning - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } type UrlMapsAggregatedListWarningData 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: [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"` @@ -50744,16 +79969,16 @@ type UrlMapsAggregatedListWarningData struct { NullFields []string `json:"-"` } -func (s *UrlMapsAggregatedListWarningData) MarshalJSON() ([]byte, error) { +func (s UrlMapsAggregatedListWarningData) MarshalJSON() ([]byte, error) { type NoMethod UrlMapsAggregatedListWarningData - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } type UrlMapsScopedList struct { // UrlMaps: A list of UrlMaps contained in this scope. UrlMaps []*UrlMap `json:"urlMaps,omitempty"` - // Warning: Informational warning which replaces the list of backend services - // when the list is empty. + // Warning: Informational warning which replaces the list of + // backend services when the list is empty. Warning *UrlMapsScopedListWarning `json:"warning,omitempty"` // ForceSendFields is a list of field names (e.g. "UrlMaps") to unconditionally // include in API requests. By default, fields with empty or default values are @@ -50768,76 +79993,99 @@ type UrlMapsScopedList struct { NullFields []string `json:"-"` } -func (s *UrlMapsScopedList) MarshalJSON() ([]byte, error) { +func (s UrlMapsScopedList) MarshalJSON() ([]byte, error) { type NoMethod UrlMapsScopedList - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -// UrlMapsScopedListWarning: Informational warning which replaces the list of +// UrlMapsScopedListWarning: Informational warning which replaces the list +// of // backend services when the list is empty. type UrlMapsScopedListWarning 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. + // 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" - Warning about failed cleanup of transient changes made - // by a failed operation. + // by a failed + // operation. // "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was created. // "DEPRECATED_TYPE_USED" - When deploying and at least one of the resources - // has a type marked as deprecated + // has a type marked as + // deprecated // "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk that is // larger than image size. // "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the - // resources has a type marked as experimental + // resources has a type marked as + // experimental // "EXTERNAL_API_WARNING" - Warning that is present in an external api call // "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been - // overridden. Deprecated unused field. + // overridden. + // Deprecated unused field. // "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an injected // kernel, which is deprecated. // "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB" - A WEIGHTED_MAGLEV backend - // service is associated with a health check that is not of type - // HTTP/HTTPS/HTTP2. + // service is associated with a health check that is + // not of type HTTP/HTTPS/HTTP2. // "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a // exceedingly large number of resources // "LIST_OVERHEAD_QUOTA_EXCEED" - Resource can't be retrieved due to list - // overhead quota exceed which captures the amount of resources filtered out by + // overhead quota exceed + // which captures the amount of resources filtered out by // user-defined list filter. // "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is not - // assigned to an instance on the network. + // assigned to an instance on the + // network. // "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot ip // forward. // "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE" - The route's nextHopInstance - // URL refers to an instance that does not have an ipv6 interface on the same - // network as the route. + // URL refers to an instance that does not have an + // ipv6 interface on the same network as the route. // "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL refers to // an instance that does not exist. // "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance URL - // refers to an instance that is not on the same network as the route. + // refers to an instance that is not on the + // same network as the route. // "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not have a // status of RUNNING. // "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to continue - // the process despite the mentioned error. + // the process despite + // the mentioned error. // "NO_RESULTS_ON_PAGE" - No results are present on a particular list page. // "PARTIAL_SUCCESS" - Success is reported, but some results may be missing // due to errors + // "QUOTA_INFO_UNAVAILABLE" - Quota information is not available to client + // requests (e.g: + // regions.list). // "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource that - // requires a TOS they have not accepted. + // requires a TOS they have not + // accepted. // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a resource is // in use. // "RESOURCE_NOT_DELETED" - One or more of the resources set to auto-delete - // could not be deleted because they were in use. + // could not be deleted + // because they were in use. // "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is // ignored. // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in instance - // group manager is valid as such, but its application does not make a lot of - // sense, because it allows only single instance in instance group. + // group manager is valid as such, but + // its application does not make a lot of sense, because it allows only + // single instance in instance group. // "UNDECLARED_PROPERTIES" - When undeclared properties in the schema are // present // "UNREACHABLE" - A given scope cannot be reached. 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: [Output Only] Metadata about this warning in key: + // value format. For example: + // + // "data": [ + // { + // "key": "scope", + // "value": "zones/us-east1-d" + // } Data []*UrlMapsScopedListWarningData `json:"data,omitempty"` // Message: [Output Only] A human-readable description of the warning code. Message string `json:"message,omitempty"` @@ -50854,19 +80102,22 @@ type UrlMapsScopedListWarning struct { NullFields []string `json:"-"` } -func (s *UrlMapsScopedListWarning) MarshalJSON() ([]byte, error) { +func (s UrlMapsScopedListWarning) MarshalJSON() ([]byte, error) { type NoMethod UrlMapsScopedListWarning - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } type UrlMapsScopedListWarningData 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: [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"` @@ -50883,34 +80134,46 @@ type UrlMapsScopedListWarningData struct { NullFields []string `json:"-"` } -func (s *UrlMapsScopedListWarningData) MarshalJSON() ([]byte, error) { +func (s UrlMapsScopedListWarningData) MarshalJSON() ([]byte, error) { type NoMethod UrlMapsScopedListWarningData - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } type UrlMapsValidateRequest struct { // LoadBalancingSchemes: Specifies the load balancer type(s) this validation - // request is for. Use EXTERNAL_MANAGED for global external Application Load - // Balancers and regional external Application Load Balancers. Use EXTERNAL for - // classic Application Load Balancers. Use INTERNAL_MANAGED for internal - // Application Load Balancers. For more information, refer to Choosing a load - // balancer. If unspecified, the load balancing scheme will be inferred from - // the backend service resources this URL map references. If that can not be - // inferred (for example, this URL map only references backend buckets, or this - // Url map is for rewrites and redirects only and doesn't reference any - // backends), EXTERNAL will be used as the default type. If specified, the - // scheme(s) must not conflict with the load balancing scheme of the backend - // service resources this Url map references. + // request is for. UseEXTERNAL_MANAGED for global external Application + // Load + // Balancers and regional external Application Load Balancers. + // Use EXTERNAL for classic Application Load Balancers. + // + // Use INTERNAL_MANAGED for internal Application Load Balancers. For + // more + // information, refer to Choosing + // a load balancer. + // + // If unspecified, the load balancing scheme will be inferred from the + // backend + // service resources this URL map references. If that can not be inferred + // (for + // example, this URL map only references backend buckets, or this Url map + // is + // for rewrites and redirects only and doesn't reference any backends),EXTERNAL + // will be used as the default type. + // + // If specified, the scheme(s) must not conflict with the load balancing + // scheme of the backend service resources this Url map references. // // Possible values: // "EXTERNAL" - Signifies that this will be used for classic Application Load // Balancers. // "EXTERNAL_MANAGED" - Signifies that this will be used for Envoy-based - // global external Application Load Balancers. + // global external + // Application Load Balancers. // "LOAD_BALANCING_SCHEME_UNSPECIFIED" - If unspecified, the validation will - // try to infer the scheme from the backend service resources this Url map - // references. If the inference is not possible, EXTERNAL will be used as the - // default type. + // try to infer the scheme from the + // backend service resources this Url map references. If the inference is + // not + // possible, EXTERNAL will be used as the default type. LoadBalancingSchemes []string `json:"loadBalancingSchemes,omitempty"` // Resource: Content of the UrlMap to be validated. Resource *UrlMap `json:"resource,omitempty"` @@ -50927,9 +80190,9 @@ type UrlMapsValidateRequest struct { NullFields []string `json:"-"` } -func (s *UrlMapsValidateRequest) MarshalJSON() ([]byte, error) { +func (s UrlMapsValidateRequest) MarshalJSON() ([]byte, error) { type NoMethod UrlMapsValidateRequest - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } type UrlMapsValidateResponse struct { @@ -50950,35 +80213,55 @@ type UrlMapsValidateResponse struct { NullFields []string `json:"-"` } -func (s *UrlMapsValidateResponse) MarshalJSON() ([]byte, error) { +func (s UrlMapsValidateResponse) MarshalJSON() ([]byte, error) { type NoMethod UrlMapsValidateResponse - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } // UrlRewrite: The spec for modifying the path before sending the request to -// the matched backend service. +// the matched +// backend service. type UrlRewrite struct { // HostRewrite: Before forwarding the request to the selected service, the - // request's host header is replaced with contents of hostRewrite. The value - // must be from 1 to 255 characters. + // request's + // host header is replaced with contents of hostRewrite. + // + // The value must be from 1 to 255 characters. HostRewrite string `json:"hostRewrite,omitempty"` // PathPrefixRewrite: Before forwarding the request to the selected backend - // service, the matching portion of the request's path is replaced by - // pathPrefixRewrite. The value must be from 1 to 1024 characters. + // service, the + // matching portion of the request's path is replaced bypathPrefixRewrite. + // + // The value must be from 1 to 1024 characters. PathPrefixRewrite string `json:"pathPrefixRewrite,omitempty"` - // PathTemplateRewrite: If specified, the pattern rewrites the URL path (based - // on the :path header) using the HTTP template syntax. A corresponding - // path_template_match must be specified. Any template variables must exist in - // the path_template_match field. - -At least one variable must be specified in - // the path_template_match field - You can omit variables from the rewritten - // URL - The * and ** operators cannot be matched unless they have a - // corresponding variable name - e.g. {format=*} or {var=**}. For example, a - // path_template_match of /static/{format=**} could be rewritten as - // /static/content/{format} to prefix /content to the URL. Variables can also - // be re-ordered in a rewrite, so that /{country}/{format}/{suffix=**} can be - // rewritten as /content/{format}/{country}/{suffix}. At least one non-empty - // routeRules[].matchRules[].path_template_match is required. Only one of - // path_prefix_rewrite or path_template_rewrite may be specified. + // PathTemplateRewrite: If specified, the pattern rewrites the URL path (based + // on the :path + // header) using the HTTP template syntax. + // + // A corresponding + // path_template_match must be specified. Any template variables must exist + // in + // the path_template_match field. + // + // + // - -At least one variable must be specified in the path_template_match + // field + // - You can omit variables from the rewritten URL + // - The * and ** operators cannot be matched + // unless they have a corresponding variable name - e.g. + // {format=*} or {var=**}. + // + // For example, a path_template_match of /static/{format=**} + // could be rewritten as /static/content/{format} to prefix/content to the URL. + // Variables can also be re-ordered in a + // rewrite, so that /{country}/{format}/{suffix=**} can be + // rewritten as /content/{format}/{country}/{suffix}. + // + // At least + // one non-empty routeRules[].matchRules[].path_template_match is + // required. + // + // Only one of path_prefix_rewrite orpath_template_rewrite may be specified. PathTemplateRewrite string `json:"pathTemplateRewrite,omitempty"` // ForceSendFields is a list of field names (e.g. "HostRewrite") to // unconditionally include in API requests. By default, fields with empty or @@ -50993,52 +80276,51 @@ type UrlRewrite struct { NullFields []string `json:"-"` } -func (s *UrlRewrite) MarshalJSON() ([]byte, error) { +func (s UrlRewrite) MarshalJSON() ([]byte, error) { type NoMethod UrlRewrite - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } // UsableSubnetwork: Subnetwork which the current user has // compute.subnetworks.use permission on. type UsableSubnetwork struct { - // ExternalIpv6Prefix: [Output Only] The external IPv6 address range that is - // assigned to this subnetwork. + // ExternalIpv6Prefix: Output only. [Output Only] The external IPv6 address + // range that is assigned to this + // subnetwork. ExternalIpv6Prefix string `json:"externalIpv6Prefix,omitempty"` - // InternalIpv6Prefix: [Output Only] The internal IPv6 address range that is - // assigned to this subnetwork. + // InternalIpv6Prefix: Output only. [Output Only] The internal IPv6 address + // range that is assigned to this + // subnetwork. InternalIpv6Prefix string `json:"internalIpv6Prefix,omitempty"` // IpCidrRange: The range of internal addresses that are owned by this // subnetwork. IpCidrRange string `json:"ipCidrRange,omitempty"` // Ipv6AccessType: The access type of IPv6 address this subnet holds. It's - // immutable and can only be specified during creation or the first time the - // subnet is updated into IPV4_IPV6 dual stack. + // immutable and can + // only be specified during creation or the first time the subnet is + // updated + // into IPV4_IPV6 dual stack. // // Possible values: // "EXTERNAL" - VMs on this subnet will be assigned IPv6 addresses that are - // accessible via the Internet, as well as the VPC network. + // accessible + // via the Internet, as well as the VPC network. // "INTERNAL" - VMs on this subnet will be assigned IPv6 addresses that are - // only accessible over the VPC network. + // only + // accessible over the VPC network. Ipv6AccessType string `json:"ipv6AccessType,omitempty"` // Network: Network URL. Network string `json:"network,omitempty"` - // Purpose: The purpose of the resource. This field can be either PRIVATE, - // GLOBAL_MANAGED_PROXY, REGIONAL_MANAGED_PROXY, PRIVATE_SERVICE_CONNECT, or - // PRIVATE is the default purpose for user-created subnets or subnets that are - // automatically created in auto mode networks. Subnets with purpose set to - // GLOBAL_MANAGED_PROXY or REGIONAL_MANAGED_PROXY are user-created subnetworks - // that are reserved for Envoy-based load balancers. A subnet with purpose set - // to PRIVATE_SERVICE_CONNECT is used to publish services using Private Service - // Connect. If unspecified, the subnet purpose defaults to PRIVATE. The - // enableFlowLogs field isn't supported if the subnet purpose field is set to - // GLOBAL_MANAGED_PROXY or REGIONAL_MANAGED_PROXY. - // // Possible values: // "GLOBAL_MANAGED_PROXY" - Subnet reserved for Global Envoy-based Load // Balancing. // "INTERNAL_HTTPS_LOAD_BALANCER" - Subnet reserved for Internal HTTP(S) Load - // Balancing. This is a legacy purpose, please use REGIONAL_MANAGED_PROXY - // instead. + // Balancing. This is a legacy + // purpose, please use REGIONAL_MANAGED_PROXY instead. + // "PEER_MIGRATION" - Subnetwork will be used for Migration from one peered + // VPC to another. + // (a transient state of subnetwork + // while migrating resources from one project to another). // "PRIVATE" - Regular user created or automatically created subnet. // "PRIVATE_NAT" - Subnetwork used as source range for Private NAT Gateways. // "PRIVATE_RFC_1918" - Regular user created or automatically created subnet. @@ -51047,12 +80329,15 @@ type UsableSubnetwork struct { // "REGIONAL_MANAGED_PROXY" - Subnetwork used for Regional Envoy-based Load // Balancing. Purpose string `json:"purpose,omitempty"` - // Role: The role of subnetwork. Currently, this field is only used when - // purpose is set to GLOBAL_MANAGED_PROXY or REGIONAL_MANAGED_PROXY. The value - // can be set to ACTIVE or BACKUP. An ACTIVE subnetwork is one that is - // currently being used for Envoy-based load balancers in a region. A BACKUP - // subnetwork is one that is ready to be promoted to ACTIVE or is currently - // draining. This field can be updated with a patch request. + // Role: The role of subnetwork. Currently, this field is only used + // when + // purpose is set to GLOBAL_MANAGED_PROXY orREGIONAL_MANAGED_PROXY. The value + // can be set toACTIVE or BACKUP. An ACTIVE + // subnetwork is one that is currently being used for Envoy-based + // load + // balancers in a region. A BACKUP subnetwork is one that is + // ready to be promoted to ACTIVE or is currently draining. + // This field can be updated with a patch request. // // Possible values: // "ACTIVE" - The ACTIVE subnet that is currently used. @@ -51060,16 +80345,18 @@ type UsableSubnetwork struct { Role string `json:"role,omitempty"` // SecondaryIpRanges: Secondary IP ranges. SecondaryIpRanges []*UsableSubnetworkSecondaryRange `json:"secondaryIpRanges,omitempty"` - // StackType: The stack type for the subnet. If set to IPV4_ONLY, new VMs in - // the subnet are assigned IPv4 addresses only. If set to IPV4_IPV6, new VMs in - // the subnet can be assigned both IPv4 and IPv6 addresses. If not specified, - // IPV4_ONLY is used. This field can be both set at resource creation time and - // updated using patch. + // StackType: The stack type for the subnet. If set to IPV4_ONLY, new VMs + // in the subnet are assigned IPv4 addresses only. If set toIPV4_IPV6, new VMs + // in the subnet can be assigned both IPv4 and + // IPv6 addresses. If not specified, IPV4_ONLY is used. + // + // This field can be both set at resource creation time and updated usingpatch. // // Possible values: // "IPV4_IPV6" - New VMs in this subnet can have both IPv4 and IPv6 // addresses. // "IPV4_ONLY" - New VMs in this subnet will only be assigned IPv4 addresses. + // "IPV6_ONLY" - New VMs in this subnet will only be assigned IPv6 addresses. StackType string `json:"stackType,omitempty"` // Subnetwork: Subnetwork URL. Subnetwork string `json:"subnetwork,omitempty"` @@ -51086,20 +80373,22 @@ type UsableSubnetwork struct { NullFields []string `json:"-"` } -func (s *UsableSubnetwork) MarshalJSON() ([]byte, error) { +func (s UsableSubnetwork) MarshalJSON() ([]byte, error) { type NoMethod UsableSubnetwork - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } // UsableSubnetworkSecondaryRange: Secondary IP range of a usable subnetwork. type UsableSubnetworkSecondaryRange struct { // IpCidrRange: The range of IP addresses belonging to this subnetwork // secondary range. + // Can be Ipv4 or Ipv6 range. IpCidrRange string `json:"ipCidrRange,omitempty"` // RangeName: The name associated with this subnetwork secondary range, used - // when adding an alias IP range to a VM instance. The name must be 1-63 - // characters long, and comply with RFC1035. The name must be unique within the - // subnetwork. + // when adding + // an alias IP range to a VM instance. + // The name must be 1-63 characters long, and comply withRFC1035. + // The name must be unique within the subnetwork. RangeName string `json:"rangeName,omitempty"` // ForceSendFields is a list of field names (e.g. "IpCidrRange") to // unconditionally include in API requests. By default, fields with empty or @@ -51114,31 +80403,41 @@ type UsableSubnetworkSecondaryRange struct { NullFields []string `json:"-"` } -func (s *UsableSubnetworkSecondaryRange) MarshalJSON() ([]byte, error) { +func (s UsableSubnetworkSecondaryRange) MarshalJSON() ([]byte, error) { type NoMethod UsableSubnetworkSecondaryRange - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } type UsableSubnetworksAggregatedList struct { - // Id: [Output Only] The unique identifier for the resource. This identifier is + // Id: [Output Only] The unique identifier for the resource. This identifier + // is // defined by the server. Id string `json:"id,omitempty"` // Items: [Output] A list of usable subnetwork URLs. Items []*UsableSubnetwork `json:"items,omitempty"` - // Kind: [Output Only] Type of resource. Always - // compute#usableSubnetworksAggregatedList for aggregated lists of usable - // subnetworks. + // Kind: Output only. [Output Only] Type of resource. + // Alwayscompute#usableSubnetworksAggregatedList for aggregated lists + // of usable subnetworks. 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. In special cases - // listUsable may return 0 subnetworks and nextPageToken which still should be - // used to get the next page of results. + // results for + // list requests. If the number of results is larger thanmaxResults, 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. + // In special cases listUsable may return 0 subnetworks andnextPageToken which + // still should be used to get the + // next page of results. NextPageToken string `json:"nextPageToken,omitempty"` - // SelfLink: [Output Only] Server-defined URL for this resource. + // ScopedWarnings: Output only. [Output Only] Informational warning messages + // for failures encountered from + // scopes. + ScopedWarnings []*SubnetworksScopedWarning `json:"scopedWarnings,omitempty"` + // SelfLink: Output only. [Output Only] Server-defined URL for this resource. SelfLink string `json:"selfLink,omitempty"` + // Unreachables: Output only. [Output Only] Unreachable resources. + Unreachables []string `json:"unreachables,omitempty"` // Warning: [Output Only] Informational warning message. Warning *UsableSubnetworksAggregatedListWarning `json:"warning,omitempty"` @@ -51157,77 +80456,618 @@ type UsableSubnetworksAggregatedList struct { NullFields []string `json:"-"` } -func (s *UsableSubnetworksAggregatedList) MarshalJSON() ([]byte, error) { +func (s UsableSubnetworksAggregatedList) MarshalJSON() ([]byte, error) { type NoMethod UsableSubnetworksAggregatedList - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } // UsableSubnetworksAggregatedListWarning: [Output Only] Informational warning // message. type UsableSubnetworksAggregatedListWarning 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. + // 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" - Warning about failed cleanup of transient changes made + // by a failed + // operation. + // "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was created. + // "DEPRECATED_TYPE_USED" - When deploying and at least one of the resources + // has a type marked as + // deprecated + // "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk that is + // larger than image size. + // "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the + // resources has a type marked as + // experimental + // "EXTERNAL_API_WARNING" - Warning that is present in an external api call + // "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been + // overridden. + // Deprecated unused field. + // "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an injected + // kernel, which is deprecated. + // "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB" - A WEIGHTED_MAGLEV backend + // service is associated with a health check that is + // not of type HTTP/HTTPS/HTTP2. + // "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a + // exceedingly large number of resources + // "LIST_OVERHEAD_QUOTA_EXCEED" - Resource can't be retrieved due to list + // overhead quota exceed + // which captures the amount of resources filtered out by + // user-defined list filter. + // "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type + // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is not + // assigned to an instance on the + // network. + // "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot ip + // forward. + // "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE" - The route's nextHopInstance + // URL refers to an instance that does not have an + // ipv6 interface on the same network as the route. + // "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL refers to + // an instance that does not exist. + // "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance URL + // refers to an instance that is not on the + // same network as the route. + // "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not have a + // status of RUNNING. + // "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to continue + // the process despite + // the mentioned error. + // "NO_RESULTS_ON_PAGE" - No results are present on a particular list page. + // "PARTIAL_SUCCESS" - Success is reported, but some results may be missing + // due to errors + // "QUOTA_INFO_UNAVAILABLE" - Quota information is not available to client + // requests (e.g: + // regions.list). + // "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource that + // requires a TOS they have not + // accepted. + // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a resource is + // in use. + // "RESOURCE_NOT_DELETED" - One or more of the resources set to auto-delete + // could not be deleted + // because they were in use. + // "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is + // ignored. + // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in instance + // group manager is valid as such, but + // its application does not make a lot of sense, because it allows only + // single instance in instance group. + // "UNDECLARED_PROPERTIES" - When undeclared properties in the schema are + // present + // "UNREACHABLE" - A given scope cannot be reached. + 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 []*UsableSubnetworksAggregatedListWarningData `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 or default values are + // omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + 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. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s UsableSubnetworksAggregatedListWarning) MarshalJSON() ([]byte, error) { + type NoMethod UsableSubnetworksAggregatedListWarning + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +type UsableSubnetworksAggregatedListWarningData 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 or default values are + // omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + 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. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s UsableSubnetworksAggregatedListWarningData) MarshalJSON() ([]byte, error) { + type NoMethod UsableSubnetworksAggregatedListWarningData + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +// UsageExportLocation: The location in Cloud Storage and naming method of the +// daily usage +// report. Contains bucket_name and report_name prefix. +type UsageExportLocation struct { + // BucketName: The name of an existing bucket in Cloud Storage where the usage + // report + // object is stored. The Google Service Account is granted write access to + // this bucket. This can either be the bucket name by itself, such + // asexample-bucket, or the bucket name with gs:// + // or https://storage.googleapis.com/ in front of it, such + // as gs://example-bucket. + BucketName string `json:"bucketName,omitempty"` + // ReportNamePrefix: An optional prefix for the name of the usage report object + // stored inbucketName. If not supplied, defaults tousage_gce. The report is + // stored as a CSV file namedreport_name_prefix_gce_YYYYMMDD.csv whereYYYYMMDD + // is the day of the usage according to Pacific Time. + // If you supply a prefix, it should conform to Cloud Storageobject + // naming + // conventions. + ReportNamePrefix string `json:"reportNamePrefix,omitempty"` + // ForceSendFields is a list of field names (e.g. "BucketName") to + // unconditionally include in API requests. By default, fields with empty or + // default values are omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + ForceSendFields []string `json:"-"` + // NullFields is a list of field names (e.g. "BucketName") to include in API + // requests with the JSON null value. By default, fields with empty values are + // omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s UsageExportLocation) MarshalJSON() ([]byte, error) { + type NoMethod UsageExportLocation + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +// VmEndpointNatMappings: Contain information of Nat mapping for a VM endpoint +// (i.e., NIC). +type VmEndpointNatMappings struct { + // InstanceName: Output only. 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 or + // default values are omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + 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. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s VmEndpointNatMappings) MarshalJSON() ([]byte, error) { + type NoMethod VmEndpointNatMappings + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +// VmEndpointNatMappingsInterfaceNatMappings: Contain information of Nat +// mapping for an interface of this endpoint. +type VmEndpointNatMappingsInterfaceNatMappings struct { + // DrainNatIpPortRanges: Output only. List of all drain 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"]. + DrainNatIpPortRanges []string `json:"drainNatIpPortRanges,omitempty"` + // NatIpPortRanges: Output only. 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"` + // NumTotalDrainNatPorts: Output only. Total number of drain ports across all + // NAT IPs allocated to this + // interface. It equals to the aggregated port number in the + // field + // drain_nat_ip_port_ranges. + NumTotalDrainNatPorts int64 `json:"numTotalDrainNatPorts,omitempty"` + // NumTotalNatPorts: Output only. 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"` + // RuleMappings: Output only. Information about mappings provided by rules in + // this NAT. + RuleMappings []*VmEndpointNatMappingsInterfaceNatMappingsNatRuleMappings `json:"ruleMappings,omitempty"` + // SourceAliasIpRange: Output only. 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: Output only. Primary IP of the VM for this NIC. + SourceVirtualIp string `json:"sourceVirtualIp,omitempty"` + // ForceSendFields is a list of field names (e.g. "DrainNatIpPortRanges") to + // unconditionally include in API requests. By default, fields with empty or + // default values are omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + ForceSendFields []string `json:"-"` + // NullFields is a list of field names (e.g. "DrainNatIpPortRanges") to include + // in API requests with the JSON null value. By default, fields with empty + // values are omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s VmEndpointNatMappingsInterfaceNatMappings) MarshalJSON() ([]byte, error) { + type NoMethod VmEndpointNatMappingsInterfaceNatMappings + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +// VmEndpointNatMappingsInterfaceNatMappingsNatRuleMappings: Contains +// information of NAT Mappings provided by a NAT Rule. +type VmEndpointNatMappingsInterfaceNatMappingsNatRuleMappings struct { + // DrainNatIpPortRanges: Output only. List of all drain IP:port-range mappings + // assigned to this interface + // by this rule. + // 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"]. + DrainNatIpPortRanges []string `json:"drainNatIpPortRanges,omitempty"` + // NatIpPortRanges: Output only. A list of all IP:port-range mappings assigned + // to this interface by this + // rule. + // 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"` + // NumTotalDrainNatPorts: Output only. Total number of drain ports across all + // NAT IPs allocated to this + // interface by this rule. + // It equals the aggregated port number in the field + // drain_nat_ip_port_ranges. + NumTotalDrainNatPorts int64 `json:"numTotalDrainNatPorts,omitempty"` + // NumTotalNatPorts: Output only. Total number of ports across all NAT IPs + // allocated to this interface + // by this rule. + // It equals the aggregated port number in the field nat_ip_port_ranges. + NumTotalNatPorts int64 `json:"numTotalNatPorts,omitempty"` + // RuleNumber: Output only. Rule number of the NAT Rule. + RuleNumber int64 `json:"ruleNumber,omitempty"` + // ForceSendFields is a list of field names (e.g. "DrainNatIpPortRanges") to + // unconditionally include in API requests. By default, fields with empty or + // default values are omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + ForceSendFields []string `json:"-"` + // NullFields is a list of field names (e.g. "DrainNatIpPortRanges") to include + // in API requests with the JSON null value. By default, fields with empty + // values are omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s VmEndpointNatMappingsInterfaceNatMappingsNatRuleMappings) MarshalJSON() ([]byte, error) { + type NoMethod VmEndpointNatMappingsInterfaceNatMappingsNatRuleMappings + return gensupport.MarshalJSON(NoMethod(s), 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. [Output Only] Type of resource. + // Alwayscompute#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 thanmaxResults, 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. [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 or default values are + // omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + 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. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s VmEndpointNatMappingsList) MarshalJSON() ([]byte, error) { + type NoMethod VmEndpointNatMappingsList + return gensupport.MarshalJSON(NoMethod(s), 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" - Warning about failed cleanup of transient changes made + // by a failed + // operation. + // "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was created. + // "DEPRECATED_TYPE_USED" - When deploying and at least one of the resources + // has a type marked as + // deprecated + // "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk that is + // larger than image size. + // "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the + // resources has a type marked as + // experimental + // "EXTERNAL_API_WARNING" - Warning that is present in an external api call + // "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been + // overridden. + // Deprecated unused field. + // "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an injected + // kernel, which is deprecated. + // "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB" - A WEIGHTED_MAGLEV backend + // service is associated with a health check that is + // not of type HTTP/HTTPS/HTTP2. + // "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a + // exceedingly large number of resources + // "LIST_OVERHEAD_QUOTA_EXCEED" - Resource can't be retrieved due to list + // overhead quota exceed + // which captures the amount of resources filtered out by + // user-defined list filter. + // "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type + // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is not + // assigned to an instance on the + // network. + // "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot ip + // forward. + // "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE" - The route's nextHopInstance + // URL refers to an instance that does not have an + // ipv6 interface on the same network as the route. + // "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL refers to + // an instance that does not exist. + // "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance URL + // refers to an instance that is not on the + // same network as the route. + // "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not have a + // status of RUNNING. + // "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to continue + // the process despite + // the mentioned error. + // "NO_RESULTS_ON_PAGE" - No results are present on a particular list page. + // "PARTIAL_SUCCESS" - Success is reported, but some results may be missing + // due to errors + // "QUOTA_INFO_UNAVAILABLE" - Quota information is not available to client + // requests (e.g: + // regions.list). + // "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource that + // requires a TOS they have not + // accepted. + // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a resource is + // in use. + // "RESOURCE_NOT_DELETED" - One or more of the resources set to auto-delete + // could not be deleted + // because they were in use. + // "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is + // ignored. + // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in instance + // group manager is valid as such, but + // its application does not make a lot of sense, because it allows only + // single instance in instance group. + // "UNDECLARED_PROPERTIES" - When undeclared properties in the schema are + // present + // "UNREACHABLE" - A given scope cannot be reached. + 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 or default values are + // omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + 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. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s VmEndpointNatMappingsListWarning) MarshalJSON() ([]byte, error) { + type NoMethod VmEndpointNatMappingsListWarning + return gensupport.MarshalJSON(NoMethod(s), 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 or default values are + // omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + 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. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s VmEndpointNatMappingsListWarningData) MarshalJSON() ([]byte, error) { + type NoMethod VmEndpointNatMappingsListWarningData + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +type VmExtensionPoliciesScopedList struct { + // VmExtensionPolicies: List of VmExtensionPolicy resources contained in this + // scope. + VmExtensionPolicies []*VmExtensionPolicy `json:"vmExtensionPolicies,omitempty"` + // Warning: Informational warning which replaces the list of + // backend services when the list is empty. + Warning *VmExtensionPoliciesScopedListWarning `json:"warning,omitempty"` + // ForceSendFields is a list of field names (e.g. "VmExtensionPolicies") to + // unconditionally include in API requests. By default, fields with empty or + // default values are omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + ForceSendFields []string `json:"-"` + // NullFields is a list of field names (e.g. "VmExtensionPolicies") to include + // in API requests with the JSON null value. By default, fields with empty + // values are omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s VmExtensionPoliciesScopedList) MarshalJSON() ([]byte, error) { + type NoMethod VmExtensionPoliciesScopedList + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +// VmExtensionPoliciesScopedListWarning: Informational warning which replaces +// the list of +// backend services when the list is empty. +type VmExtensionPoliciesScopedListWarning 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" - Warning about failed cleanup of transient changes made - // by a failed operation. + // by a failed + // operation. // "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was created. // "DEPRECATED_TYPE_USED" - When deploying and at least one of the resources - // has a type marked as deprecated + // has a type marked as + // deprecated // "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk that is // larger than image size. // "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the - // resources has a type marked as experimental + // resources has a type marked as + // experimental // "EXTERNAL_API_WARNING" - Warning that is present in an external api call // "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been - // overridden. Deprecated unused field. + // overridden. + // Deprecated unused field. // "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an injected // kernel, which is deprecated. // "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB" - A WEIGHTED_MAGLEV backend - // service is associated with a health check that is not of type - // HTTP/HTTPS/HTTP2. + // service is associated with a health check that is + // not of type HTTP/HTTPS/HTTP2. // "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a // exceedingly large number of resources // "LIST_OVERHEAD_QUOTA_EXCEED" - Resource can't be retrieved due to list - // overhead quota exceed which captures the amount of resources filtered out by + // overhead quota exceed + // which captures the amount of resources filtered out by // user-defined list filter. // "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is not - // assigned to an instance on the network. + // assigned to an instance on the + // network. // "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot ip // forward. // "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE" - The route's nextHopInstance - // URL refers to an instance that does not have an ipv6 interface on the same - // network as the route. + // URL refers to an instance that does not have an + // ipv6 interface on the same network as the route. // "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL refers to // an instance that does not exist. // "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance URL - // refers to an instance that is not on the same network as the route. + // refers to an instance that is not on the + // same network as the route. // "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not have a // status of RUNNING. // "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to continue - // the process despite the mentioned error. + // the process despite + // the mentioned error. // "NO_RESULTS_ON_PAGE" - No results are present on a particular list page. // "PARTIAL_SUCCESS" - Success is reported, but some results may be missing // due to errors + // "QUOTA_INFO_UNAVAILABLE" - Quota information is not available to client + // requests (e.g: + // regions.list). // "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource that - // requires a TOS they have not accepted. + // requires a TOS they have not + // accepted. // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a resource is // in use. // "RESOURCE_NOT_DELETED" - One or more of the resources set to auto-delete - // could not be deleted because they were in use. + // could not be deleted + // because they were in use. // "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is // ignored. // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in instance - // group manager is valid as such, but its application does not make a lot of - // sense, because it allows only single instance in instance group. + // group manager is valid as such, but + // its application does not make a lot of sense, because it allows only + // single instance in instance group. // "UNDECLARED_PROPERTIES" - When undeclared properties in the schema are // present // "UNREACHABLE" - A given scope cannot be reached. 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 []*UsableSubnetworksAggregatedListWarningData `json:"data,omitempty"` + // Data: [Output Only] Metadata about this warning in key: + // value format. For example: + // + // "data": [ + // { + // "key": "scope", + // "value": "zones/us-east1-d" + // } + Data []*VmExtensionPoliciesScopedListWarningData `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 @@ -51243,19 +81083,22 @@ type UsableSubnetworksAggregatedListWarning struct { NullFields []string `json:"-"` } -func (s *UsableSubnetworksAggregatedListWarning) MarshalJSON() ([]byte, error) { - type NoMethod UsableSubnetworksAggregatedListWarning - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s VmExtensionPoliciesScopedListWarning) MarshalJSON() ([]byte, error) { + type NoMethod VmExtensionPoliciesScopedListWarning + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -type UsableSubnetworksAggregatedListWarningData 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). +type VmExtensionPoliciesScopedListWarningData 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"` @@ -51272,262 +81115,517 @@ type UsableSubnetworksAggregatedListWarningData struct { NullFields []string `json:"-"` } -func (s *UsableSubnetworksAggregatedListWarningData) MarshalJSON() ([]byte, error) { - type NoMethod UsableSubnetworksAggregatedListWarningData - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s VmExtensionPoliciesScopedListWarningData) MarshalJSON() ([]byte, error) { + type NoMethod VmExtensionPoliciesScopedListWarningData + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -// UsageExportLocation: The location in Cloud Storage and naming method of the -// daily usage report. Contains bucket_name and report_name prefix. -type UsageExportLocation struct { - // BucketName: The name of an existing bucket in Cloud Storage where the usage - // report object is stored. The Google Service Account is granted write access - // to this bucket. This can either be the bucket name by itself, such as - // example-bucket, or the bucket name with gs:// or - // https://storage.googleapis.com/ in front of it, such as gs://example-bucket. - BucketName string `json:"bucketName,omitempty"` - // ReportNamePrefix: An optional prefix for the name of the usage report object - // stored in bucketName. If not supplied, defaults to usage_gce. The report is - // stored as a CSV file named report_name_prefix_gce_YYYYMMDD.csv where - // YYYYMMDD is the day of the usage according to Pacific Time. If you supply a - // prefix, it should conform to Cloud Storage object naming conventions. - ReportNamePrefix string `json:"reportNamePrefix,omitempty"` - // ForceSendFields is a list of field names (e.g. "BucketName") to +// VmExtensionPolicy: Represents a VM extension policy. +type VmExtensionPolicy struct { + // CreationTimestamp: Output only. [Output Only] Creation timestamp + // inRFC3339 + // text format. + CreationTimestamp string `json:"creationTimestamp,omitempty"` + // Description: An optional description of this resource. + Description string `json:"description,omitempty"` + // ExtensionPolicies: Required. A map of extension names (for example, + // "ops-agent") to their corresponding + // policy configurations. + ExtensionPolicies map[string]VmExtensionPolicyExtensionPolicy `json:"extensionPolicies,omitempty"` + // GlobalResourceLink: Optional. Output only. [Output Only] Link to the global + // policy that manages this zone policy, if + // applicable. + GlobalResourceLink string `json:"globalResourceLink,omitempty"` + // Id: Output only. [Output Only] The unique identifier for the resource. This + // identifier is + // defined by the server. + Id uint64 `json:"id,omitempty,string"` + // InstanceSelectors: Optional. Selectors to target VMs for this policy. VMs + // are selected if they match + // *any* of the provided selectors (logical OR). If this list is empty, + // the + // policy applies to all VMs. + InstanceSelectors []*VmExtensionPolicyInstanceSelector `json:"instanceSelectors,omitempty"` + // Kind: Output only. [Output Only] Type of the resource. + // Alwayscompute#vmExtensionPolicy. + Kind string `json:"kind,omitempty"` + // ManagedByGlobal: Optional. Output only. [Output Only] Indicates if this + // policy is managed by a global policy. + ManagedByGlobal bool `json:"managedByGlobal,omitempty"` + // Name: Name of the resource. Provided by the client when the resource is + // created. + // The name must be 1-63 characters long, and comply withRFC1035. + // 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. + Name string `json:"name,omitempty"` + // Priority: Optional. Priority of this policy. Used to resolve conflicts when + // multiple policies + // apply to the same extension. + // The policy priority is an integer from 0 to 65535, inclusive. Lower + // integers indicate higher priorities. If you do not specify a priority + // when + // creating a rule, it is assigned a priority of 1000. If priorities are + // equal, the policy with the most recent creation timestamp takes precedence. + Priority int64 `json:"priority,omitempty"` + // SelfLink: Output only. [Output Only] Server-defined fully-qualified URL for + // this resource. + SelfLink string `json:"selfLink,omitempty"` + // SelfLinkWithId: Output only. [Output Only] Server-defined URL for this + // resource's resource id. + SelfLinkWithId string `json:"selfLinkWithId,omitempty"` + // State: Optional. Output only. [Output Only] Current state of the policy: + // ACTIVE or DELETING. + // + // Possible values: + // "ACTIVE" - The policy is active and applied to matching VMs. + // Newly created VMs that match the policy will also receive the + // extension policy. + // "DELETING" - The policy is in the process of being deleted. After the + // extension is + // removed from all matching VMs, the policy will be deleted. + // "STATE_UNSPECIFIED" - Default value. Do not use. + State string `json:"state,omitempty"` + // UpdateTimestamp: Output only. [Output Only] Update timestamp inRFC3339 + // text format. + UpdateTimestamp string `json:"updateTimestamp,omitempty"` + + // ServerResponse contains the HTTP response code and headers from the server. + googleapi.ServerResponse `json:"-"` + // ForceSendFields is a list of field names (e.g. "CreationTimestamp") to // unconditionally include in API requests. By default, fields with empty or // default values are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. ForceSendFields []string `json:"-"` - // NullFields is a list of field names (e.g. "BucketName") to include in API - // requests with the JSON null value. By default, fields with empty values are + // NullFields is a list of field names (e.g. "CreationTimestamp") to include in + // API requests with the JSON null value. By default, fields with empty values + // are omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s VmExtensionPolicy) MarshalJSON() ([]byte, error) { + type NoMethod VmExtensionPolicy + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +// VmExtensionPolicyAggregatedListResponse: Response for the aggregated list of +// VM extension policies. +type VmExtensionPolicyAggregatedListResponse struct { + Etag string `json:"etag,omitempty"` + // Id: [Output Only] Unique identifier for the resource; defined by the server. + Id string `json:"id,omitempty"` + // Items: A list of VmExtensionPoliciesScopedList resources. + Items map[string]VmExtensionPoliciesScopedList `json:"items,omitempty"` + // Kind: Output only. [Output Only] Type of resource. + // Alwayscompute#VmExtensionPolicyAggregatedList for lists + // of + // VmExtensionPolicies. + 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 thanmaxResults, 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"` + // SelfLink: Output only. [Output Only] Server-defined URL for this resource. + SelfLink string `json:"selfLink,omitempty"` + // Unreachables: Output only. [Output Only] Unreachable resources. + Unreachables []string `json:"unreachables,omitempty"` + // Warning: [Output Only] Informational warning message. + Warning *VmExtensionPolicyAggregatedListResponseWarning `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. "Etag") to unconditionally + // include in API requests. By default, fields with empty or default values are // omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + ForceSendFields []string `json:"-"` + // NullFields is a list of field names (e.g. "Etag") to include in API requests + // with the JSON null value. By default, fields with empty values are omitted + // from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } -func (s *UsageExportLocation) MarshalJSON() ([]byte, error) { - type NoMethod UsageExportLocation - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s VmExtensionPolicyAggregatedListResponse) MarshalJSON() ([]byte, error) { + type NoMethod VmExtensionPolicyAggregatedListResponse + return gensupport.MarshalJSON(NoMethod(s), 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 +// VmExtensionPolicyAggregatedListResponseWarning: [Output Only] Informational +// warning message. +type VmExtensionPolicyAggregatedListResponseWarning 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" - Warning about failed cleanup of transient changes made + // by a failed + // operation. + // "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was created. + // "DEPRECATED_TYPE_USED" - When deploying and at least one of the resources + // has a type marked as + // deprecated + // "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk that is + // larger than image size. + // "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the + // resources has a type marked as + // experimental + // "EXTERNAL_API_WARNING" - Warning that is present in an external api call + // "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been + // overridden. + // Deprecated unused field. + // "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an injected + // kernel, which is deprecated. + // "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB" - A WEIGHTED_MAGLEV backend + // service is associated with a health check that is + // not of type HTTP/HTTPS/HTTP2. + // "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a + // exceedingly large number of resources + // "LIST_OVERHEAD_QUOTA_EXCEED" - Resource can't be retrieved due to list + // overhead quota exceed + // which captures the amount of resources filtered out by + // user-defined list filter. + // "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type + // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is not + // assigned to an instance on the + // network. + // "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot ip + // forward. + // "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE" - The route's nextHopInstance + // URL refers to an instance that does not have an + // ipv6 interface on the same network as the route. + // "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL refers to + // an instance that does not exist. + // "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance URL + // refers to an instance that is not on the + // same network as the route. + // "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not have a + // status of RUNNING. + // "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to continue + // the process despite + // the mentioned error. + // "NO_RESULTS_ON_PAGE" - No results are present on a particular list page. + // "PARTIAL_SUCCESS" - Success is reported, but some results may be missing + // due to errors + // "QUOTA_INFO_UNAVAILABLE" - Quota information is not available to client + // requests (e.g: + // regions.list). + // "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource that + // requires a TOS they have not + // accepted. + // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a resource is + // in use. + // "RESOURCE_NOT_DELETED" - One or more of the resources set to auto-delete + // could not be deleted + // because they were in use. + // "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is + // ignored. + // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in instance + // group manager is valid as such, but + // its application does not make a lot of sense, because it allows only + // single instance in instance group. + // "UNDECLARED_PROPERTIES" - When undeclared properties in the schema are + // present + // "UNREACHABLE" - A given scope cannot be reached. + 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 []*VmExtensionPolicyAggregatedListResponseWarningData `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 or default values are + // omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + 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. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s VmExtensionPolicyAggregatedListResponseWarning) MarshalJSON() ([]byte, error) { + type NoMethod VmExtensionPolicyAggregatedListResponseWarning + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +type VmExtensionPolicyAggregatedListResponseWarningData 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 or default values are + // omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + 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. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s VmExtensionPolicyAggregatedListResponseWarningData) MarshalJSON() ([]byte, error) { + type NoMethod VmExtensionPolicyAggregatedListResponseWarningData + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +// VmExtensionPolicyExtensionPolicy: Configuration for a specific VM extension. +type VmExtensionPolicyExtensionPolicy struct { + // PinnedVersion: Optional. The specific version of the extension to install. + // If not set, the latest + // version is used. + PinnedVersion string `json:"pinnedVersion,omitempty"` + // StringConfig: Optional. String-based configuration data for the extension. + StringConfig string `json:"stringConfig,omitempty"` + // ForceSendFields is a list of field names (e.g. "PinnedVersion") to // unconditionally include in API requests. By default, fields with empty or // default values are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. ForceSendFields []string `json:"-"` - // NullFields is a list of field names (e.g. "InstanceName") to include in API + // NullFields is a list of field names (e.g. "PinnedVersion") to include in API // requests with the JSON null value. By default, fields with empty values are // omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } -func (s *VmEndpointNatMappings) MarshalJSON() ([]byte, error) { - type NoMethod VmEndpointNatMappings - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s VmExtensionPolicyExtensionPolicy) MarshalJSON() ([]byte, error) { + type NoMethod VmExtensionPolicyExtensionPolicy + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -// VmEndpointNatMappingsInterfaceNatMappings: Contain information of Nat -// mapping for an interface of this endpoint. -type VmEndpointNatMappingsInterfaceNatMappings struct { - // DrainNatIpPortRanges: List of all drain 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"]. - DrainNatIpPortRanges []string `json:"drainNatIpPortRanges,omitempty"` - // 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"` - // NumTotalDrainNatPorts: Total number of drain ports across all NAT IPs - // allocated to this interface. It equals to the aggregated port number in the - // field drain_nat_ip_port_ranges. - NumTotalDrainNatPorts int64 `json:"numTotalDrainNatPorts,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"` - // RuleMappings: Information about mappings provided by rules in this NAT. - RuleMappings []*VmEndpointNatMappingsInterfaceNatMappingsNatRuleMappings `json:"ruleMappings,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. "DrainNatIpPortRanges") to +// VmExtensionPolicyInstanceSelector: Defines how to select VMs to apply a zone +// VM extension policy. +type VmExtensionPolicyInstanceSelector struct { + // LabelSelector: Optional. LabelSelector selects VMs based on their labels. + LabelSelector *VmExtensionPolicyLabelSelector `json:"labelSelector,omitempty"` + // ForceSendFields is a list of field names (e.g. "LabelSelector") to // unconditionally include in API requests. By default, fields with empty or // default values are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. ForceSendFields []string `json:"-"` - // NullFields is a list of field names (e.g. "DrainNatIpPortRanges") to include - // in API requests with the JSON null value. By default, fields with empty - // values are omitted from API requests. See + // NullFields is a list of field names (e.g. "LabelSelector") to include in API + // requests with the JSON null value. By default, fields with empty values are + // omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } -func (s *VmEndpointNatMappingsInterfaceNatMappings) MarshalJSON() ([]byte, error) { - type NoMethod VmEndpointNatMappingsInterfaceNatMappings - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s VmExtensionPolicyInstanceSelector) MarshalJSON() ([]byte, error) { + type NoMethod VmExtensionPolicyInstanceSelector + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -// VmEndpointNatMappingsInterfaceNatMappingsNatRuleMappings: Contains -// information of NAT Mappings provided by a NAT Rule. -type VmEndpointNatMappingsInterfaceNatMappingsNatRuleMappings struct { - // DrainNatIpPortRanges: List of all drain IP:port-range mappings assigned to - // this interface by this rule. 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"]. - DrainNatIpPortRanges []string `json:"drainNatIpPortRanges,omitempty"` - // NatIpPortRanges: A list of all IP:port-range mappings assigned to this - // interface by this rule. 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"` - // NumTotalDrainNatPorts: Total number of drain ports across all NAT IPs - // allocated to this interface by this rule. It equals the aggregated port - // number in the field drain_nat_ip_port_ranges. - NumTotalDrainNatPorts int64 `json:"numTotalDrainNatPorts,omitempty"` - // NumTotalNatPorts: Total number of ports across all NAT IPs allocated to this - // interface by this rule. It equals the aggregated port number in the field - // nat_ip_port_ranges. - NumTotalNatPorts int64 `json:"numTotalNatPorts,omitempty"` - // RuleNumber: Rule number of the NAT Rule. - RuleNumber int64 `json:"ruleNumber,omitempty"` - // ForceSendFields is a list of field names (e.g. "DrainNatIpPortRanges") to +// VmExtensionPolicyLabelSelector: A LabelSelector is applied to a VM only if +// it matches all the specified +// labels. +type VmExtensionPolicyLabelSelector struct { + // InclusionLabels: Optional. A map of key-value pairs representing VM + // labels. + // VMs must have all of the labels specified in this map to be + // selected + // (logical AND). + // + // e.g. If the `inclusion_labels` are {("key1", "value1"), ("key2", + // "value2")}, the VM labels must contain both ("key1", "value1") and + // ("key2", "value2") to be selected. If the VM labels are ("key1", + // "value1") and ("something", "else"), it will not be selected. + // + // If the map is empty, it's considered a match. + InclusionLabels map[string]string `json:"inclusionLabels,omitempty"` + // ForceSendFields is a list of field names (e.g. "InclusionLabels") to // unconditionally include in API requests. By default, fields with empty or // default values are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. ForceSendFields []string `json:"-"` - // NullFields is a list of field names (e.g. "DrainNatIpPortRanges") to include - // in API requests with the JSON null value. By default, fields with empty - // values are omitted from API requests. See + // NullFields is a list of field names (e.g. "InclusionLabels") to include in + // API requests with the JSON null value. By default, fields with empty values + // are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } -func (s *VmEndpointNatMappingsInterfaceNatMappingsNatRuleMappings) MarshalJSON() ([]byte, error) { - type NoMethod VmEndpointNatMappingsInterfaceNatMappingsNatRuleMappings - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s VmExtensionPolicyLabelSelector) MarshalJSON() ([]byte, error) { + type NoMethod VmExtensionPolicyLabelSelector + return gensupport.MarshalJSON(NoMethod(s), 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. +type VmExtensionPolicyList struct { + // Etag: Output only. [Output Only] Fingerprint of this resource. A hash of the + // contents stored + // in this object. This field is used in optimistic locking. This field will + // be ignored when inserting a VmExtensionPolicy. An up-to-date + // fingerprint must be provided in order to update the VmExtensionPolicy. + // + // To see the latest value of the fingerprint, make a get() request to + // retrieve a VmExtensionPolicy. + Etag string `json:"etag,omitempty"` + // Id: Output only. [Output Only] Unique identifier for the resource; 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. + // Items: Output only. [Output Only] A list of VM extension policy resources. + Items []*VmExtensionPolicy `json:"items,omitempty"` + // Kind: Output only. Type of resource. 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: Output only. [Output Only] This token allows you to get the + // next page of results for + // list requests. If the number of results is larger thanmaxResults, 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: Output only. [Output Only] Server-defined URL for this resource. SelfLink string `json:"selfLink,omitempty"` - // Warning: [Output Only] Informational warning message. - Warning *VmEndpointNatMappingsListWarning `json:"warning,omitempty"` + // Unreachables: Output only. [Output Only] Unreachable resources. + Unreachables []string `json:"unreachables,omitempty"` + // Warning: Output only. [Output Only] Informational warning message. + Warning *VmExtensionPolicyListWarning `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 + // ForceSendFields is a list of field names (e.g. "Etag") to unconditionally // include in API requests. By default, fields with empty or default values are // omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. ForceSendFields []string `json:"-"` - // NullFields is a list of field names (e.g. "Id") to include in API requests + // NullFields is a list of field names (e.g. "Etag") to include in API requests // with the JSON null value. By default, fields with empty values are omitted // from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } -func (s *VmEndpointNatMappingsList) MarshalJSON() ([]byte, error) { - type NoMethod VmEndpointNatMappingsList - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s VmExtensionPolicyList) MarshalJSON() ([]byte, error) { + type NoMethod VmExtensionPolicyList + return gensupport.MarshalJSON(NoMethod(s), 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. +// VmExtensionPolicyListWarning: Output only. [Output Only] Informational +// warning message. +type VmExtensionPolicyListWarning 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" - Warning about failed cleanup of transient changes made - // by a failed operation. + // by a failed + // operation. // "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was created. // "DEPRECATED_TYPE_USED" - When deploying and at least one of the resources - // has a type marked as deprecated + // has a type marked as + // deprecated // "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk that is // larger than image size. // "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the - // resources has a type marked as experimental + // resources has a type marked as + // experimental // "EXTERNAL_API_WARNING" - Warning that is present in an external api call // "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been - // overridden. Deprecated unused field. + // overridden. + // Deprecated unused field. // "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an injected // kernel, which is deprecated. // "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB" - A WEIGHTED_MAGLEV backend - // service is associated with a health check that is not of type - // HTTP/HTTPS/HTTP2. + // service is associated with a health check that is + // not of type HTTP/HTTPS/HTTP2. // "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a // exceedingly large number of resources // "LIST_OVERHEAD_QUOTA_EXCEED" - Resource can't be retrieved due to list - // overhead quota exceed which captures the amount of resources filtered out by + // overhead quota exceed + // which captures the amount of resources filtered out by // user-defined list filter. // "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is not - // assigned to an instance on the network. + // assigned to an instance on the + // network. // "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot ip // forward. // "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE" - The route's nextHopInstance - // URL refers to an instance that does not have an ipv6 interface on the same - // network as the route. + // URL refers to an instance that does not have an + // ipv6 interface on the same network as the route. // "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL refers to // an instance that does not exist. // "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance URL - // refers to an instance that is not on the same network as the route. + // refers to an instance that is not on the + // same network as the route. // "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not have a // status of RUNNING. // "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to continue - // the process despite the mentioned error. + // the process despite + // the mentioned error. // "NO_RESULTS_ON_PAGE" - No results are present on a particular list page. // "PARTIAL_SUCCESS" - Success is reported, but some results may be missing // due to errors + // "QUOTA_INFO_UNAVAILABLE" - Quota information is not available to client + // requests (e.g: + // regions.list). // "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource that - // requires a TOS they have not accepted. + // requires a TOS they have not + // accepted. // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a resource is // in use. // "RESOURCE_NOT_DELETED" - One or more of the resources set to auto-delete - // could not be deleted because they were in use. + // could not be deleted + // because they were in use. // "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is // ignored. // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in instance - // group manager is valid as such, but its application does not make a lot of - // sense, because it allows only single instance in instance group. + // group manager is valid as such, but + // its application does not make a lot of sense, because it allows only + // single instance in instance group. // "UNDECLARED_PROPERTIES" - When undeclared properties in the schema are // present // "UNREACHABLE" - A given scope cannot be reached. 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"` + // Data: [Output Only] Metadata about this warning in key: + // value format. For example: + // + // "data": [ + // { + // "key": "scope", + // "value": "zones/us-east1-d" + // } + Data []*VmExtensionPolicyListWarningData `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 @@ -51543,19 +81641,22 @@ type VmEndpointNatMappingsListWarning struct { NullFields []string `json:"-"` } -func (s *VmEndpointNatMappingsListWarning) MarshalJSON() ([]byte, error) { - type NoMethod VmEndpointNatMappingsListWarning - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s VmExtensionPolicyListWarning) MarshalJSON() ([]byte, error) { + type NoMethod VmExtensionPolicyListWarning + return gensupport.MarshalJSON(NoMethod(s), 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). +type VmExtensionPolicyListWarningData 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"` @@ -51572,24 +81673,32 @@ type VmEndpointNatMappingsListWarningData struct { NullFields []string `json:"-"` } -func (s *VmEndpointNatMappingsListWarningData) MarshalJSON() ([]byte, error) { - type NoMethod VmEndpointNatMappingsListWarningData - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) +func (s VmExtensionPolicyListWarningData) MarshalJSON() ([]byte, error) { + type NoMethod VmExtensionPolicyListWarningData + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -// VpnGateway: Represents a HA VPN gateway. HA VPN is a high-availability (HA) -// Cloud VPN solution that lets you securely connect your on-premises network -// to your Google Cloud Virtual Private Cloud network through an IPsec VPN -// connection in a single region. For more information about Cloud HA VPN -// solutions, see Cloud VPN topologies . +// VpnGateway: Represents a HA VPN gateway. +// +// HA VPN is a high-availability (HA) Cloud VPN solution that lets you +// securely +// connect your on-premises network to your Google Cloud Virtual Private +// Cloud +// network through an IPsec VPN connection in a single region. +// For more information about Cloud HA VPN solutions, see +// Cloud VPN topologies . type VpnGateway struct { - // CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text format. + // CreationTimestamp: Output only. [Output Only] Creation timestamp + // inRFC3339 + // text format. CreationTimestamp string `json:"creationTimestamp,omitempty"` // Description: An optional description of this resource. Provide this property - // when you create the resource. + // when you + // create the resource. Description string `json:"description,omitempty"` // GatewayIpVersion: The IP family of the gateway IPs for the HA-VPN gateway - // interfaces. If not specified, IPV4 will be used. + // interfaces. If not + // specified, IPV4 will be used. // // Possible values: // "IPV4" - Every HA-VPN gateway interface is configured with an IPv4 @@ -51597,46 +81706,66 @@ type VpnGateway struct { // "IPV6" - Every HA-VPN gateway interface is configured with an IPv6 // address. GatewayIpVersion string `json:"gatewayIpVersion,omitempty"` - // Id: [Output Only] The unique identifier for the resource. This identifier is + // Id: Output only. [Output Only] The unique identifier for the resource. This + // identifier is // defined by the server. Id uint64 `json:"id,omitempty,string"` - // Kind: [Output Only] Type of resource. Always compute#vpnGateway for VPN - // gateways. + // Kind: Output only. [Output Only] Type of resource. Always compute#vpnGateway + // for + // VPN gateways. Kind string `json:"kind,omitempty"` // LabelFingerprint: A fingerprint for the labels being applied to this - // VpnGateway, which is essentially a hash of the labels set used for - // optimistic locking. The fingerprint is initially generated by Compute Engine - // and changes after every request to modify or update labels. You must always - // provide an up-to-date fingerprint hash in order to update or change labels, - // otherwise the request will fail with error 412 conditionNotMet. To see the - // latest fingerprint, make a get() request to retrieve a VpnGateway. + // VpnGateway, which + // is essentially a hash of the labels set used for optimistic locking. + // The + // fingerprint is initially generated by Compute Engine and changes after + // every request to modify or update labels. You must always provide + // an + // up-to-date fingerprint hash in order to update or change labels, + // otherwise the request will fail with error412 conditionNotMet. + // + // To see the latest fingerprint, make a get() request to + // retrieve a VpnGateway. LabelFingerprint string `json:"labelFingerprint,omitempty"` - // Labels: Labels for this resource. These can only be added or modified by the - // setLabels method. Each label key/value pair must comply with RFC1035. Label - // values may be empty. + // Labels: Labels for this resource. These can only be added or modified by + // thesetLabels method. Each label key/value pair must comply + // withRFC1035. + // Label values may be empty. Labels map[string]string `json:"labels,omitempty"` // Name: Name of the resource. Provided by the client when the resource is - // created. The name must be 1-63 characters long, and comply with RFC1035. - // 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. + // created. + // The name must be 1-63 characters long, and comply withRFC1035. + // 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. Name string `json:"name,omitempty"` // Network: URL of the network to which this VPN gateway is attached. Provided - // by the client when the VPN gateway is created. + // by the + // client when the VPN gateway is created. Network string `json:"network,omitempty"` - // Region: [Output Only] URL of the region where the VPN gateway resides. + // Params: Input only. [Input Only] Additional params passed with the request, + // but not persisted + // as part of resource payload. + Params *VpnGatewayParams `json:"params,omitempty"` + // Region: Output only. [Output Only] URL of the region where the VPN gateway + // resides. Region string `json:"region,omitempty"` - // SelfLink: [Output Only] Server-defined URL for the resource. + // SelfLink: Output only. [Output Only] Server-defined URL for the resource. SelfLink string `json:"selfLink,omitempty"` // StackType: The stack type for this VPN gateway to identify the IP protocols - // that are enabled. Possible values are: IPV4_ONLY, IPV4_IPV6. If not - // specified, IPV4_ONLY will be used. + // that are + // enabled. Possible values are: IPV4_ONLY,IPV4_IPV6, IPV6_ONLY. If not + // specified,IPV4_ONLY is used if the gateway IP version isIPV4, or IPV4_IPV6 + // if the gateway IP version isIPV6. // // Possible values: // "IPV4_IPV6" - Enable VPN gateway with both IPv4 and IPv6 protocols. // "IPV4_ONLY" - Enable VPN gateway with only IPv4 protocol. + // "IPV6_ONLY" - Enable VPN gateway with only IPv6 protocol. StackType string `json:"stackType,omitempty"` // VpnInterfaces: The list of VPN interfaces associated with this VPN gateway. VpnInterfaces []*VpnGatewayVpnGatewayInterface `json:"vpnInterfaces,omitempty"` @@ -51656,9 +81785,9 @@ type VpnGateway struct { NullFields []string `json:"-"` } -func (s *VpnGateway) MarshalJSON() ([]byte, error) { +func (s VpnGateway) MarshalJSON() ([]byte, error) { type NoMethod VpnGateway - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } type VpnGatewayAggregatedList struct { @@ -51666,18 +81795,21 @@ type VpnGatewayAggregatedList struct { Id string `json:"id,omitempty"` // Items: A list of VpnGateway resources. Items map[string]VpnGatewaysScopedList `json:"items,omitempty"` - // Kind: [Output Only] Type of resource. Always compute#vpnGateway for VPN - // gateways. + // Kind: Output only. [Output Only] Type of resource. Always compute#vpnGateway + // for + // VPN gateways. 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. + // results for + // list requests. If the number of results is larger thanmaxResults, 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"` - // SelfLink: [Output Only] Server-defined URL for this resource. + // SelfLink: Output only. [Output Only] Server-defined URL for this resource. SelfLink string `json:"selfLink,omitempty"` - // Unreachables: [Output Only] Unreachable resources. + // Unreachables: Output only. [Output Only] Unreachable resources. Unreachables []string `json:"unreachables,omitempty"` // Warning: [Output Only] Informational warning message. Warning *VpnGatewayAggregatedListWarning `json:"warning,omitempty"` @@ -51697,76 +81829,98 @@ type VpnGatewayAggregatedList struct { NullFields []string `json:"-"` } -func (s *VpnGatewayAggregatedList) MarshalJSON() ([]byte, error) { +func (s VpnGatewayAggregatedList) MarshalJSON() ([]byte, error) { type NoMethod VpnGatewayAggregatedList - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } // VpnGatewayAggregatedListWarning: [Output Only] Informational warning // message. type VpnGatewayAggregatedListWarning 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. + // 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" - Warning about failed cleanup of transient changes made - // by a failed operation. + // by a failed + // operation. // "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was created. // "DEPRECATED_TYPE_USED" - When deploying and at least one of the resources - // has a type marked as deprecated + // has a type marked as + // deprecated // "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk that is // larger than image size. // "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the - // resources has a type marked as experimental + // resources has a type marked as + // experimental // "EXTERNAL_API_WARNING" - Warning that is present in an external api call // "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been - // overridden. Deprecated unused field. + // overridden. + // Deprecated unused field. // "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an injected // kernel, which is deprecated. // "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB" - A WEIGHTED_MAGLEV backend - // service is associated with a health check that is not of type - // HTTP/HTTPS/HTTP2. + // service is associated with a health check that is + // not of type HTTP/HTTPS/HTTP2. // "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a // exceedingly large number of resources // "LIST_OVERHEAD_QUOTA_EXCEED" - Resource can't be retrieved due to list - // overhead quota exceed which captures the amount of resources filtered out by + // overhead quota exceed + // which captures the amount of resources filtered out by // user-defined list filter. // "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is not - // assigned to an instance on the network. + // assigned to an instance on the + // network. // "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot ip // forward. // "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE" - The route's nextHopInstance - // URL refers to an instance that does not have an ipv6 interface on the same - // network as the route. + // URL refers to an instance that does not have an + // ipv6 interface on the same network as the route. // "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL refers to // an instance that does not exist. // "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance URL - // refers to an instance that is not on the same network as the route. + // refers to an instance that is not on the + // same network as the route. // "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not have a // status of RUNNING. // "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to continue - // the process despite the mentioned error. + // the process despite + // the mentioned error. // "NO_RESULTS_ON_PAGE" - No results are present on a particular list page. // "PARTIAL_SUCCESS" - Success is reported, but some results may be missing // due to errors + // "QUOTA_INFO_UNAVAILABLE" - Quota information is not available to client + // requests (e.g: + // regions.list). // "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource that - // requires a TOS they have not accepted. + // requires a TOS they have not + // accepted. // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a resource is // in use. // "RESOURCE_NOT_DELETED" - One or more of the resources set to auto-delete - // could not be deleted because they were in use. + // could not be deleted + // because they were in use. // "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is // ignored. // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in instance - // group manager is valid as such, but its application does not make a lot of - // sense, because it allows only single instance in instance group. + // group manager is valid as such, but + // its application does not make a lot of sense, because it allows only + // single instance in instance group. // "UNDECLARED_PROPERTIES" - When undeclared properties in the schema are // present // "UNREACHABLE" - A given scope cannot be reached. 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: [Output Only] Metadata about this warning in key: + // value format. For example: + // + // "data": [ + // { + // "key": "scope", + // "value": "zones/us-east1-d" + // } Data []*VpnGatewayAggregatedListWarningData `json:"data,omitempty"` // Message: [Output Only] A human-readable description of the warning code. Message string `json:"message,omitempty"` @@ -51783,19 +81937,22 @@ type VpnGatewayAggregatedListWarning struct { NullFields []string `json:"-"` } -func (s *VpnGatewayAggregatedListWarning) MarshalJSON() ([]byte, error) { +func (s VpnGatewayAggregatedListWarning) MarshalJSON() ([]byte, error) { type NoMethod VpnGatewayAggregatedListWarning - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } type VpnGatewayAggregatedListWarningData 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: [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"` @@ -51812,9 +81969,9 @@ type VpnGatewayAggregatedListWarningData struct { NullFields []string `json:"-"` } -func (s *VpnGatewayAggregatedListWarningData) MarshalJSON() ([]byte, error) { +func (s VpnGatewayAggregatedListWarningData) MarshalJSON() ([]byte, error) { type NoMethod VpnGatewayAggregatedListWarningData - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } // VpnGatewayList: Contains a list of VpnGateway resources. @@ -51823,16 +81980,19 @@ type VpnGatewayList struct { Id string `json:"id,omitempty"` // Items: A list of VpnGateway resources. Items []*VpnGateway `json:"items,omitempty"` - // Kind: [Output Only] Type of resource. Always compute#vpnGateway for VPN - // gateways. + // Kind: Output only. [Output Only] Type of resource. Always compute#vpnGateway + // for + // VPN gateways. 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. + // results for + // list requests. If the number of results is larger thanmaxResults, 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"` - // SelfLink: [Output Only] Server-defined URL for this resource. + // SelfLink: Output only. [Output Only] Server-defined URL for this resource. SelfLink string `json:"selfLink,omitempty"` // Warning: [Output Only] Informational warning message. Warning *VpnGatewayListWarning `json:"warning,omitempty"` @@ -51852,75 +82012,97 @@ type VpnGatewayList struct { NullFields []string `json:"-"` } -func (s *VpnGatewayList) MarshalJSON() ([]byte, error) { +func (s VpnGatewayList) MarshalJSON() ([]byte, error) { type NoMethod VpnGatewayList - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } // VpnGatewayListWarning: [Output Only] Informational warning message. type VpnGatewayListWarning 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. + // 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" - Warning about failed cleanup of transient changes made - // by a failed operation. + // by a failed + // operation. // "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was created. // "DEPRECATED_TYPE_USED" - When deploying and at least one of the resources - // has a type marked as deprecated + // has a type marked as + // deprecated // "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk that is // larger than image size. // "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the - // resources has a type marked as experimental + // resources has a type marked as + // experimental // "EXTERNAL_API_WARNING" - Warning that is present in an external api call // "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been - // overridden. Deprecated unused field. + // overridden. + // Deprecated unused field. // "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an injected // kernel, which is deprecated. // "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB" - A WEIGHTED_MAGLEV backend - // service is associated with a health check that is not of type - // HTTP/HTTPS/HTTP2. + // service is associated with a health check that is + // not of type HTTP/HTTPS/HTTP2. // "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a // exceedingly large number of resources // "LIST_OVERHEAD_QUOTA_EXCEED" - Resource can't be retrieved due to list - // overhead quota exceed which captures the amount of resources filtered out by + // overhead quota exceed + // which captures the amount of resources filtered out by // user-defined list filter. // "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is not - // assigned to an instance on the network. + // assigned to an instance on the + // network. // "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot ip // forward. // "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE" - The route's nextHopInstance - // URL refers to an instance that does not have an ipv6 interface on the same - // network as the route. + // URL refers to an instance that does not have an + // ipv6 interface on the same network as the route. // "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL refers to // an instance that does not exist. // "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance URL - // refers to an instance that is not on the same network as the route. + // refers to an instance that is not on the + // same network as the route. // "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not have a // status of RUNNING. // "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to continue - // the process despite the mentioned error. + // the process despite + // the mentioned error. // "NO_RESULTS_ON_PAGE" - No results are present on a particular list page. // "PARTIAL_SUCCESS" - Success is reported, but some results may be missing // due to errors + // "QUOTA_INFO_UNAVAILABLE" - Quota information is not available to client + // requests (e.g: + // regions.list). // "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource that - // requires a TOS they have not accepted. + // requires a TOS they have not + // accepted. // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a resource is // in use. // "RESOURCE_NOT_DELETED" - One or more of the resources set to auto-delete - // could not be deleted because they were in use. + // could not be deleted + // because they were in use. // "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is // ignored. // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in instance - // group manager is valid as such, but its application does not make a lot of - // sense, because it allows only single instance in instance group. + // group manager is valid as such, but + // its application does not make a lot of sense, because it allows only + // single instance in instance group. // "UNDECLARED_PROPERTIES" - When undeclared properties in the schema are // present // "UNREACHABLE" - A given scope cannot be reached. 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: [Output Only] Metadata about this warning in key: + // value format. For example: + // + // "data": [ + // { + // "key": "scope", + // "value": "zones/us-east1-d" + // } Data []*VpnGatewayListWarningData `json:"data,omitempty"` // Message: [Output Only] A human-readable description of the warning code. Message string `json:"message,omitempty"` @@ -51937,19 +82119,22 @@ type VpnGatewayListWarning struct { NullFields []string `json:"-"` } -func (s *VpnGatewayListWarning) MarshalJSON() ([]byte, error) { +func (s VpnGatewayListWarning) MarshalJSON() ([]byte, error) { type NoMethod VpnGatewayListWarning - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } type VpnGatewayListWarningData 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: [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"` @@ -51966,13 +82151,47 @@ type VpnGatewayListWarningData struct { NullFields []string `json:"-"` } -func (s *VpnGatewayListWarningData) MarshalJSON() ([]byte, error) { +func (s VpnGatewayListWarningData) MarshalJSON() ([]byte, error) { type NoMethod VpnGatewayListWarningData - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +type VpnGatewayParams struct { + // ResourceManagerTags: Tag keys/values directly bound to this resource. + // Tag keys and values have the same definition as resource + // manager tags. The field is allowed for INSERT + // only. The keys/values to set on the resource should be specified in + // either ID { : } or Namespaced format + // { : }. + // For example the following are valid inputs: + // * {"tagKeys/333" : "tagValues/444", "tagKeys/123" : "tagValues/456"} + // * {"123/environment" : "production", "345/abc" : "xyz"} + // Note: + // * Invalid combinations of ID & namespaced format is not supported. For + // instance: {"123/environment" : "tagValues/444"} is invalid. + // * Inconsistent format is not supported. For instance: + // {"tagKeys/333" : "tagValues/444", "123/env" : "prod"} is invalid. + ResourceManagerTags map[string]string `json:"resourceManagerTags,omitempty"` + // ForceSendFields is a list of field names (e.g. "ResourceManagerTags") to + // unconditionally include in API requests. By default, fields with empty or + // default values are omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + ForceSendFields []string `json:"-"` + // NullFields is a list of field names (e.g. "ResourceManagerTags") to include + // in API requests with the JSON null value. By default, fields with empty + // values are omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s VpnGatewayParams) MarshalJSON() ([]byte, error) { + type NoMethod VpnGatewayParams + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } type VpnGatewayStatus struct { - // VpnConnections: List of VPN connection for this VpnGateway. + // VpnConnections: Output only. List of VPN connection for this VpnGateway. VpnConnections []*VpnGatewayStatusVpnConnection `json:"vpnConnections,omitempty"` // ForceSendFields is a list of field names (e.g. "VpnConnections") to // unconditionally include in API requests. By default, fields with empty or @@ -51987,32 +82206,37 @@ type VpnGatewayStatus struct { NullFields []string `json:"-"` } -func (s *VpnGatewayStatus) MarshalJSON() ([]byte, error) { +func (s VpnGatewayStatus) MarshalJSON() ([]byte, error) { type NoMethod VpnGatewayStatus - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } // VpnGatewayStatusHighAvailabilityRequirementState: Describes the high -// availability requirement state for the VPN connection between this Cloud VPN -// gateway and a peer gateway. +// availability requirement state for the VPN connection +// between this Cloud VPN gateway and a peer gateway. type VpnGatewayStatusHighAvailabilityRequirementState struct { // State: Indicates the high availability requirement state for the VPN - // connection. Valid values are CONNECTION_REDUNDANCY_MET, - // CONNECTION_REDUNDANCY_NOT_MET. + // connection. + // Valid values are CONNECTION_REDUNDANCY_MET,CONNECTION_REDUNDANCY_NOT_MET. // // Possible values: // "CONNECTION_REDUNDANCY_MET" - VPN tunnels are configured with adequate - // redundancy from Cloud VPN gateway to the peer VPN gateway. For both - // GCP-to-non-GCP and GCP-to-GCP connections, the adequate redundancy is a - // pre-requirement for users to get 99.99% availability on GCP side; please - // note that for any connection, end-to-end 99.99% availability is subject to - // proper configuration on the peer VPN gateway. + // redundancy from Cloud VPN + // gateway to the peer VPN gateway. For both GCP-to-non-GCP and + // GCP-to-GCP + // connections, the adequate redundancy is a pre-requirement for users to + // get 99.99% availability on GCP side; please note that for any + // connection, end-to-end 99.99% availability is subject to + // proper + // configuration on the peer VPN gateway. // "CONNECTION_REDUNDANCY_NOT_MET" - VPN tunnels are not configured with - // adequate redundancy from the Cloud VPN gateway to the peer gateway + // adequate redundancy from the Cloud + // VPN gateway to the peer gateway State string `json:"state,omitempty"` // UnsatisfiedReason: Indicates the reason why the VPN connection does not meet - // the high availability redundancy criteria/requirement. Valid values is - // INCOMPLETE_TUNNELS_COVERAGE. + // the high + // availability redundancy criteria/requirement. + // Valid values is INCOMPLETE_TUNNELS_COVERAGE. // // Possible values: // "INCOMPLETE_TUNNELS_COVERAGE" @@ -52030,21 +82254,22 @@ type VpnGatewayStatusHighAvailabilityRequirementState struct { NullFields []string `json:"-"` } -func (s *VpnGatewayStatusHighAvailabilityRequirementState) MarshalJSON() ([]byte, error) { +func (s VpnGatewayStatusHighAvailabilityRequirementState) MarshalJSON() ([]byte, error) { type NoMethod VpnGatewayStatusHighAvailabilityRequirementState - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } // VpnGatewayStatusTunnel: Contains some information about a VPN tunnel. type VpnGatewayStatusTunnel struct { - // LocalGatewayInterface: The VPN gateway interface this VPN tunnel is - // associated with. + // LocalGatewayInterface: Output only. The VPN gateway interface this VPN + // tunnel is associated with. LocalGatewayInterface int64 `json:"localGatewayInterface,omitempty"` - // PeerGatewayInterface: The peer gateway interface this VPN tunnel is - // connected to, the peer gateway could either be an external VPN gateway or a - // Google Cloud VPN gateway. + // PeerGatewayInterface: Output only. The peer gateway interface this VPN + // tunnel is connected to, the peer + // gateway could either be an external VPN gateway or a Google Cloud + // VPN gateway. PeerGatewayInterface int64 `json:"peerGatewayInterface,omitempty"` - // TunnelUrl: URL reference to the VPN tunnel. + // TunnelUrl: Output only. URL reference to the VPN tunnel. TunnelUrl string `json:"tunnelUrl,omitempty"` // ForceSendFields is a list of field names (e.g. "LocalGatewayInterface") to // unconditionally include in API requests. By default, fields with empty or @@ -52059,22 +82284,26 @@ type VpnGatewayStatusTunnel struct { NullFields []string `json:"-"` } -func (s *VpnGatewayStatusTunnel) MarshalJSON() ([]byte, error) { +func (s VpnGatewayStatusTunnel) MarshalJSON() ([]byte, error) { type NoMethod VpnGatewayStatusTunnel - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } // VpnGatewayStatusVpnConnection: A VPN connection contains all VPN tunnels -// connected from this VpnGateway to the same peer gateway. The peer gateway -// could either be an external VPN gateway or a Google Cloud VPN gateway. +// connected from this VpnGateway +// to the same peer gateway. The peer gateway could either be an external +// VPN +// gateway or a Google Cloud VPN gateway. type VpnGatewayStatusVpnConnection struct { - // PeerExternalGateway: URL reference to the peer external VPN gateways to - // which the VPN tunnels in this VPN connection are connected. This field is - // mutually exclusive with peer_gcp_gateway. + // PeerExternalGateway: Output only. URL reference to the peer external VPN + // gateways to which the VPN tunnels + // in this VPN connection are connected. + // This field is mutually exclusive with peer_gcp_gateway. PeerExternalGateway string `json:"peerExternalGateway,omitempty"` - // PeerGcpGateway: URL reference to the peer side VPN gateways to which the VPN - // tunnels in this VPN connection are connected. This field is mutually - // exclusive with peer_gcp_gateway. + // PeerGcpGateway: Output only. URL reference to the peer side VPN gateways to + // which the VPN tunnels in + // this VPN connection are connected. + // This field is mutually exclusive with peer_gcp_gateway. PeerGcpGateway string `json:"peerGcpGateway,omitempty"` // State: HighAvailabilityRequirementState for the VPN connection. State *VpnGatewayStatusHighAvailabilityRequirementState `json:"state,omitempty"` @@ -52093,36 +82322,46 @@ type VpnGatewayStatusVpnConnection struct { NullFields []string `json:"-"` } -func (s *VpnGatewayStatusVpnConnection) MarshalJSON() ([]byte, error) { +func (s VpnGatewayStatusVpnConnection) MarshalJSON() ([]byte, error) { type NoMethod VpnGatewayStatusVpnConnection - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } // VpnGatewayVpnGatewayInterface: A VPN gateway interface. type VpnGatewayVpnGatewayInterface struct { - // Id: [Output Only] Numeric identifier for this VPN interface associated with + // Id: Output only. [Output Only] Numeric identifier for this VPN interface + // associated with // the VPN gateway. Id int64 `json:"id,omitempty"` // InterconnectAttachment: URL of the VLAN attachment (interconnectAttachment) - // resource for this VPN gateway interface. When the value of this field is - // present, the VPN gateway is used for HA VPN over Cloud Interconnect; all - // egress or ingress traffic for this VPN gateway interface goes through the + // resource for this + // VPN gateway interface. When the value of this field is present, the + // VPN + // gateway is used for HA VPN over Cloud Interconnect; all egress + // or ingress traffic for this VPN gateway interface goes through the // specified VLAN attachment resource. InterconnectAttachment string `json:"interconnectAttachment,omitempty"` - // IpAddress: [Output Only] IP address for this VPN interface associated with - // the VPN gateway. The IP address could be either a regional external IP - // address or a regional internal IP address. The two IP addresses for a VPN - // gateway must be all regional external or regional internal IP addresses. - // There cannot be a mix of regional external IP addresses and regional - // internal IP addresses. For HA VPN over Cloud Interconnect, the IP addresses - // for both interfaces could either be regional internal IP addresses or - // regional external IP addresses. For regular (non HA VPN over Cloud - // Interconnect) HA VPN tunnels, the IP address must be a regional external IP - // address. + // IpAddress: Output only. [Output Only] IP address for this VPN interface + // associated with the VPN + // gateway. + // The IP address could be either a regional external IP address or + // a regional internal IP address. The two IP addresses for a VPN gateway + // must be all regional external or regional internal IP addresses. + // There + // cannot be a mix of regional external IP addresses and regional internal + // IP addresses. For HA VPN over Cloud Interconnect, the IP addresses + // for both interfaces could either be regional internal IP addresses + // or + // regional external IP addresses. For regular (non HA VPN over + // Cloud + // Interconnect) HA VPN tunnels, the IP address must be a regional external + // IP address. IpAddress string `json:"ipAddress,omitempty"` - // Ipv6Address: [Output Only] IPv6 address for this VPN interface associated - // with the VPN gateway. The IPv6 address must be a regional external IPv6 - // address. The format is RFC 5952 format (e.g. 2001:db8::2d9:51:0:0). + // Ipv6Address: Output only. [Output Only] IPv6 address for this VPN interface + // associated with the VPN + // gateway. + // The IPv6 address must be a regional external IPv6 address. The format is + // RFC 5952 format (e.g. 2001:db8::2d9:51:0:0). Ipv6Address string `json:"ipv6Address,omitempty"` // ForceSendFields is a list of field names (e.g. "Id") to unconditionally // include in API requests. By default, fields with empty or default values are @@ -52137,9 +82376,9 @@ type VpnGatewayVpnGatewayInterface struct { NullFields []string `json:"-"` } -func (s *VpnGatewayVpnGatewayInterface) MarshalJSON() ([]byte, error) { +func (s VpnGatewayVpnGatewayInterface) MarshalJSON() ([]byte, error) { type NoMethod VpnGatewayVpnGatewayInterface - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } type VpnGatewaysGetStatusResponse struct { @@ -52160,16 +82399,17 @@ type VpnGatewaysGetStatusResponse struct { NullFields []string `json:"-"` } -func (s *VpnGatewaysGetStatusResponse) MarshalJSON() ([]byte, error) { +func (s VpnGatewaysGetStatusResponse) MarshalJSON() ([]byte, error) { type NoMethod VpnGatewaysGetStatusResponse - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } type VpnGatewaysScopedList struct { // VpnGateways: [Output Only] A list of VPN gateways contained in this scope. VpnGateways []*VpnGateway `json:"vpnGateways,omitempty"` // Warning: [Output Only] Informational warning which replaces the list of - // addresses when the list is empty. + // addresses + // when the list is empty. Warning *VpnGatewaysScopedListWarning `json:"warning,omitempty"` // ForceSendFields is a list of field names (e.g. "VpnGateways") to // unconditionally include in API requests. By default, fields with empty or @@ -52184,76 +82424,99 @@ type VpnGatewaysScopedList struct { NullFields []string `json:"-"` } -func (s *VpnGatewaysScopedList) MarshalJSON() ([]byte, error) { +func (s VpnGatewaysScopedList) MarshalJSON() ([]byte, error) { type NoMethod VpnGatewaysScopedList - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } // VpnGatewaysScopedListWarning: [Output Only] Informational warning which -// replaces the list of addresses when the list is empty. +// replaces the list of addresses +// when the list is empty. type VpnGatewaysScopedListWarning 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. + // 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" - Warning about failed cleanup of transient changes made - // by a failed operation. + // by a failed + // operation. // "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was created. // "DEPRECATED_TYPE_USED" - When deploying and at least one of the resources - // has a type marked as deprecated + // has a type marked as + // deprecated // "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk that is // larger than image size. // "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the - // resources has a type marked as experimental + // resources has a type marked as + // experimental // "EXTERNAL_API_WARNING" - Warning that is present in an external api call // "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been - // overridden. Deprecated unused field. + // overridden. + // Deprecated unused field. // "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an injected // kernel, which is deprecated. // "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB" - A WEIGHTED_MAGLEV backend - // service is associated with a health check that is not of type - // HTTP/HTTPS/HTTP2. + // service is associated with a health check that is + // not of type HTTP/HTTPS/HTTP2. // "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a // exceedingly large number of resources // "LIST_OVERHEAD_QUOTA_EXCEED" - Resource can't be retrieved due to list - // overhead quota exceed which captures the amount of resources filtered out by + // overhead quota exceed + // which captures the amount of resources filtered out by // user-defined list filter. // "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is not - // assigned to an instance on the network. + // assigned to an instance on the + // network. // "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot ip // forward. // "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE" - The route's nextHopInstance - // URL refers to an instance that does not have an ipv6 interface on the same - // network as the route. + // URL refers to an instance that does not have an + // ipv6 interface on the same network as the route. // "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL refers to // an instance that does not exist. // "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance URL - // refers to an instance that is not on the same network as the route. + // refers to an instance that is not on the + // same network as the route. // "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not have a // status of RUNNING. // "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to continue - // the process despite the mentioned error. + // the process despite + // the mentioned error. // "NO_RESULTS_ON_PAGE" - No results are present on a particular list page. // "PARTIAL_SUCCESS" - Success is reported, but some results may be missing // due to errors + // "QUOTA_INFO_UNAVAILABLE" - Quota information is not available to client + // requests (e.g: + // regions.list). // "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource that - // requires a TOS they have not accepted. + // requires a TOS they have not + // accepted. // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a resource is // in use. // "RESOURCE_NOT_DELETED" - One or more of the resources set to auto-delete - // could not be deleted because they were in use. + // could not be deleted + // because they were in use. // "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is // ignored. // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in instance - // group manager is valid as such, but its application does not make a lot of - // sense, because it allows only single instance in instance group. + // group manager is valid as such, but + // its application does not make a lot of sense, because it allows only + // single instance in instance group. // "UNDECLARED_PROPERTIES" - When undeclared properties in the schema are // present // "UNREACHABLE" - A given scope cannot be reached. 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: [Output Only] Metadata about this warning in key: + // value format. For example: + // + // "data": [ + // { + // "key": "scope", + // "value": "zones/us-east1-d" + // } Data []*VpnGatewaysScopedListWarningData `json:"data,omitempty"` // Message: [Output Only] A human-readable description of the warning code. Message string `json:"message,omitempty"` @@ -52270,19 +82533,22 @@ type VpnGatewaysScopedListWarning struct { NullFields []string `json:"-"` } -func (s *VpnGatewaysScopedListWarning) MarshalJSON() ([]byte, error) { +func (s VpnGatewaysScopedListWarning) MarshalJSON() ([]byte, error) { type NoMethod VpnGatewaysScopedListWarning - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } type VpnGatewaysScopedListWarningData 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: [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"` @@ -52299,115 +82565,173 @@ type VpnGatewaysScopedListWarningData struct { NullFields []string `json:"-"` } -func (s *VpnGatewaysScopedListWarningData) MarshalJSON() ([]byte, error) { +func (s VpnGatewaysScopedListWarningData) MarshalJSON() ([]byte, error) { type NoMethod VpnGatewaysScopedListWarningData - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -// VpnTunnel: Represents a Cloud VPN Tunnel resource. For more information -// about VPN, read the the Cloud VPN Overview. +// VpnTunnel: Represents a Cloud VPN Tunnel resource. +// +// For more information about VPN, read the +// the Cloud VPN Overview. type VpnTunnel struct { - // CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text format. + // CipherSuite: User specified list of ciphers to use for the phase 1 and phase + // 2 of the + // IKE protocol. + CipherSuite *VpnTunnelCipherSuite `json:"cipherSuite,omitempty"` + // CreationTimestamp: Output only. [Output Only] Creation timestamp + // inRFC3339 + // text format. CreationTimestamp string `json:"creationTimestamp,omitempty"` // Description: An optional description of this resource. Provide this property - // when you create the resource. + // when you + // create the resource. Description string `json:"description,omitempty"` // DetailedStatus: [Output Only] Detailed status message for the VPN tunnel. DetailedStatus string `json:"detailedStatus,omitempty"` - // Id: [Output Only] The unique identifier for the resource. This identifier is + // Id: [Output Only] The unique identifier for the resource. This identifier + // is // defined by the server. Id uint64 `json:"id,omitempty,string"` // IkeVersion: IKE protocol version to use when establishing the VPN tunnel - // with the peer VPN gateway. Acceptable IKE versions are 1 or 2. The default - // version is 2. + // with the peer + // VPN gateway. Acceptable IKE versions are 1 or 2. + // The default version is 2. IkeVersion int64 `json:"ikeVersion,omitempty"` - // Kind: [Output Only] Type of resource. Always compute#vpnTunnel for VPN - // tunnels. + // Kind: Output only. [Output Only] Type of resource. Always compute#vpnTunnel + // for + // VPN tunnels. Kind string `json:"kind,omitempty"` // LabelFingerprint: A fingerprint for the labels being applied to this - // VpnTunnel, which is essentially a hash of the labels set used for optimistic - // locking. The fingerprint is initially generated by Compute Engine and - // changes after every request to modify or update labels. You must always - // provide an up-to-date fingerprint hash in order to update or change labels, - // otherwise the request will fail with error 412 conditionNotMet. To see the - // latest fingerprint, make a get() request to retrieve a VpnTunnel. + // VpnTunnel, which is + // essentially a hash of the labels set used for optimistic locking. + // The + // fingerprint is initially generated by Compute Engine and changes after + // every request to modify or update labels. You must always provide + // an + // up-to-date fingerprint hash in order to update or change labels, + // otherwise the request will fail with error412 conditionNotMet. + // + // To see the latest fingerprint, make a get() request to + // retrieve a VpnTunnel. LabelFingerprint string `json:"labelFingerprint,omitempty"` - // Labels: Labels for this resource. These can only be added or modified by the - // setLabels method. Each label key/value pair must comply with RFC1035. Label - // values may be empty. + // Labels: Labels for this resource. These can only be added or modified by + // thesetLabels method. Each label key/value pair must comply + // withRFC1035. + // Label values may be empty. Labels map[string]string `json:"labels,omitempty"` // LocalTrafficSelector: Local traffic selector to use when establishing the - // VPN tunnel with the peer VPN gateway. The value should be a CIDR formatted - // string, for example: 192.168.0.0/16. The ranges must be disjoint. Only IPv4 - // is supported. + // VPN tunnel with the + // peer VPN gateway. The value should be a CIDR formatted string, for + // example: 192.168.0.0/16. The ranges must be disjoint. + // Only IPv4 is supported for Classic VPN tunnels. This field is output + // only + // for HA VPN tunnels. LocalTrafficSelector []string `json:"localTrafficSelector,omitempty"` // Name: Name of the resource. Provided by the client when the resource is - // created. The name must be 1-63 characters long, and comply with RFC1035. - // 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. + // created. + // The name must be 1-63 characters long, and comply withRFC1035. + // 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. Name string `json:"name,omitempty"` + // Params: Input only. [Input Only] Additional params passed with the request, + // but not persisted + // as part of resource payload. + Params *VpnTunnelParams `json:"params,omitempty"` // PeerExternalGateway: URL of the peer side external VPN gateway to which this - // VPN tunnel is connected. Provided by the client when the VPN tunnel is - // created. This field is exclusive with the field peerGcpGateway. + // VPN tunnel is + // connected. + // Provided by the client when the VPN tunnel is created. + // This field is exclusive with the field peerGcpGateway. PeerExternalGateway string `json:"peerExternalGateway,omitempty"` // PeerExternalGatewayInterface: The interface ID of the external VPN gateway - // to which this VPN tunnel is connected. Provided by the client when the VPN - // tunnel is created. Possible values are: `0`, `1`, `2`, `3`. The number of - // IDs in use depends on the external VPN gateway redundancy type. + // to which this VPN tunnel is + // connected. Provided by the client when the VPN tunnel is created. + // Possible values are: `0`, `1`, `2`, `3`. The number of IDs in use + // depends on the external VPN gateway redundancy type. PeerExternalGatewayInterface int64 `json:"peerExternalGatewayInterface,omitempty"` - // PeerGcpGateway: URL of the peer side HA VPN gateway to which this VPN tunnel - // is connected. Provided by the client when the VPN tunnel is created. This - // field can be used when creating highly available VPN from VPC network to VPC - // network, the field is exclusive with the field peerExternalGateway. If - // provided, the VPN tunnel will automatically use the same vpnGatewayInterface - // ID in the peer Google Cloud VPN gateway. + // PeerGcpGateway: URL of the peer side HA VPN gateway to which this VPN + // tunnel + // is connected. Provided by the client when the VPN tunnel is created. + // This field can be used when creating highly available VPN from VPC + // network + // to VPC network, the field is exclusive with the field + // peerExternalGateway. + // If provided, the VPN tunnel will automatically use the + // same + // vpnGatewayInterface ID in the peer Google Cloud VPN gateway. PeerGcpGateway string `json:"peerGcpGateway,omitempty"` - // PeerIp: IP address of the peer VPN gateway. Only IPv4 is supported. + // PeerIp: IP address of the peer VPN gateway. Only IPv4 is supported. This + // field can + // be set only for Classic VPN tunnels. PeerIp string `json:"peerIp,omitempty"` - // Region: [Output Only] URL of the region where the VPN tunnel resides. You - // must specify this field as part of the HTTP request URL. It is not settable - // as a field in the request body. + // Region: [Output Only] URL of the region where the VPN tunnel resides. + // You must specify this field as part of the HTTP request URL. It is + // not settable as a field in the request body. Region string `json:"region,omitempty"` // RemoteTrafficSelector: Remote traffic selectors to use when establishing the - // VPN tunnel with the peer VPN gateway. The value should be a CIDR formatted - // string, for example: 192.168.0.0/16. The ranges should be disjoint. Only - // IPv4 is supported. + // VPN tunnel with + // the peer VPN gateway. The value should be a CIDR formatted string, + // for example: 192.168.0.0/16. The ranges should be disjoint. Only IPv4 + // is + // supported for Classic VPN tunnels. This field is output only for HA + // VPN + // tunnels. RemoteTrafficSelector []string `json:"remoteTrafficSelector,omitempty"` // Router: URL of the router resource to be used for dynamic routing. Router string `json:"router,omitempty"` // SelfLink: [Output Only] Server-defined URL for the resource. SelfLink string `json:"selfLink,omitempty"` // SharedSecret: Shared secret used to set the secure session between the Cloud - // VPN gateway and the peer VPN gateway. + // VPN gateway + // and the peer VPN gateway. SharedSecret string `json:"sharedSecret,omitempty"` // SharedSecretHash: Hash of the shared secret. SharedSecretHash string `json:"sharedSecretHash,omitempty"` - // Status: [Output Only] The status of the VPN tunnel, which can be one of the - // following: - PROVISIONING: Resource is being allocated for the VPN tunnel. - - // WAITING_FOR_FULL_CONFIG: Waiting to receive all VPN-related configs from the - // user. Network, TargetVpnGateway, VpnTunnel, ForwardingRule, and Route - // resources are needed to setup the VPN tunnel. - FIRST_HANDSHAKE: Successful - // first handshake with the peer VPN. - ESTABLISHED: Secure session is - // successfully established with the peer VPN. - NETWORK_ERROR: Deprecated, - // replaced by NO_INCOMING_PACKETS - AUTHORIZATION_ERROR: Auth error (for - // example, bad shared secret). - NEGOTIATION_FAILURE: Handshake failed. - - // DEPROVISIONING: Resources are being deallocated for the VPN tunnel. - - // FAILED: Tunnel creation has failed and the tunnel is not ready to be used. - - // NO_INCOMING_PACKETS: No incoming packets from peer. - REJECTED: Tunnel - // configuration was rejected, can be result of being denied access. - - // ALLOCATING_RESOURCES: Cloud VPN is in the process of allocating all required - // resources. - STOPPED: Tunnel is stopped due to its Forwarding Rules being - // deleted for Classic VPN tunnels or the project is in frozen state. - - // PEER_IDENTITY_MISMATCH: Peer identity does not match peer IP, probably - // behind NAT. - TS_NARROWING_NOT_ALLOWED: Traffic selector narrowing not - // allowed for an HA-VPN tunnel. + // Status: [Output Only] The status of the VPN tunnel, which can be one of + // the + // following: + // + // - PROVISIONING: Resource is being allocated for the VPN tunnel. + // - WAITING_FOR_FULL_CONFIG: Waiting to receive all VPN-related configs + // from + // the user. Network, TargetVpnGateway, VpnTunnel, ForwardingRule, and + // Route + // resources are needed to setup the VPN tunnel. + // - FIRST_HANDSHAKE: Successful first handshake with the peer VPN. + // - ESTABLISHED: Secure session is successfully established with the peer + // VPN. + // - NETWORK_ERROR: Deprecated, replaced by + // NO_INCOMING_PACKETS + // - AUTHORIZATION_ERROR: Auth error (for example, + // bad shared secret). + // - NEGOTIATION_FAILURE: Handshake failed. + // - DEPROVISIONING: Resources are being deallocated for the VPN + // tunnel. + // - FAILED: Tunnel creation has failed and the tunnel is not + // ready to be used. + // - NO_INCOMING_PACKETS: No incoming packets from + // peer. + // - REJECTED: Tunnel configuration was rejected, can be result + // of being denied access. + // - ALLOCATING_RESOURCES: Cloud VPN is in the + // process of allocating all required resources. + // - STOPPED: Tunnel is stopped due to its Forwarding Rules being deleted + // for Classic VPN tunnels or the project is in frozen state. + // - PEER_IDENTITY_MISMATCH: Peer identity does not match peer IP, + // probably behind NAT. + // - TS_NARROWING_NOT_ALLOWED: Traffic selector + // narrowing not allowed for an HA-VPN tunnel. // // Possible values: // "ALLOCATING_RESOURCES" - Cloud VPN is in the process of allocating all - // required resources (specifically, a borg task). + // required resources + // (specifically, a borg task). // "AUTHORIZATION_ERROR" - Auth error (e.g. bad shared secret). // "DEPROVISIONING" - Resources is being deallocated for the VPN tunnel. // "ESTABLISHED" - Secure session is successfully established with peer VPN. @@ -52422,39 +82746,46 @@ type VpnTunnel struct { // denylisted. // "STOPPED" - Tunnel is stopped due to its Forwarding Rules being deleted. // "WAITING_FOR_FULL_CONFIG" - Waiting to receive all VPN-related configs - // from user. Network, TargetVpnGateway, VpnTunnel, ForwardingRule and Route - // resources are needed to setup VPN tunnel. + // from user. Network, + // TargetVpnGateway, VpnTunnel, ForwardingRule and Route resources are + // needed to setup VPN tunnel. Status string `json:"status,omitempty"` // TargetVpnGateway: URL of the Target VPN gateway with which this VPN tunnel - // is associated. Provided by the client when the VPN tunnel is created. + // is associated. + // Provided by the client when the VPN tunnel is created. + // This field can be set only for Classic VPN tunnels. TargetVpnGateway string `json:"targetVpnGateway,omitempty"` - // VpnGateway: 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. + // VpnGateway: 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. VpnGateway string `json:"vpnGateway,omitempty"` // VpnGatewayInterface: The interface ID of the VPN gateway with which this VPN - // tunnel is associated. Possible values are: `0`, `1`. + // tunnel is + // associated. + // Possible values are: `0`, `1`. VpnGatewayInterface int64 `json:"vpnGatewayInterface,omitempty"` // ServerResponse contains the HTTP response code and headers from the server. googleapi.ServerResponse `json:"-"` - // ForceSendFields is a list of field names (e.g. "CreationTimestamp") to + // ForceSendFields is a list of field names (e.g. "CipherSuite") to // unconditionally include in API requests. By default, fields with empty or // default values are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. ForceSendFields []string `json:"-"` - // NullFields is a list of field names (e.g. "CreationTimestamp") to include in - // API requests with the JSON null value. By default, fields with empty values - // are omitted from API requests. See + // NullFields is a list of field names (e.g. "CipherSuite") to include in API + // requests with the JSON null value. By default, fields with empty values are + // omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } -func (s *VpnTunnel) MarshalJSON() ([]byte, error) { +func (s VpnTunnel) MarshalJSON() ([]byte, error) { type NoMethod VpnTunnel - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } type VpnTunnelAggregatedList struct { @@ -52462,18 +82793,21 @@ type VpnTunnelAggregatedList struct { Id string `json:"id,omitempty"` // Items: A list of VpnTunnelsScopedList resources. Items map[string]VpnTunnelsScopedList `json:"items,omitempty"` - // Kind: [Output Only] Type of resource. Always compute#vpnTunnel for VPN - // tunnels. + // Kind: Output only. [Output Only] Type of resource. Always compute#vpnTunnel + // for + // VPN tunnels. 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. + // results for + // list requests. If the number of results is larger thanmaxResults, 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"` - // SelfLink: [Output Only] Server-defined URL for this resource. + // SelfLink: Output only. [Output Only] Server-defined URL for this resource. SelfLink string `json:"selfLink,omitempty"` - // Unreachables: [Output Only] Unreachable resources. + // Unreachables: Output only. [Output Only] Unreachable resources. Unreachables []string `json:"unreachables,omitempty"` // Warning: [Output Only] Informational warning message. Warning *VpnTunnelAggregatedListWarning `json:"warning,omitempty"` @@ -52493,75 +82827,97 @@ type VpnTunnelAggregatedList struct { NullFields []string `json:"-"` } -func (s *VpnTunnelAggregatedList) MarshalJSON() ([]byte, error) { +func (s VpnTunnelAggregatedList) MarshalJSON() ([]byte, error) { type NoMethod VpnTunnelAggregatedList - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } // VpnTunnelAggregatedListWarning: [Output Only] Informational warning message. type VpnTunnelAggregatedListWarning 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. + // 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" - Warning about failed cleanup of transient changes made - // by a failed operation. + // by a failed + // operation. // "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was created. // "DEPRECATED_TYPE_USED" - When deploying and at least one of the resources - // has a type marked as deprecated + // has a type marked as + // deprecated // "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk that is // larger than image size. // "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the - // resources has a type marked as experimental + // resources has a type marked as + // experimental // "EXTERNAL_API_WARNING" - Warning that is present in an external api call // "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been - // overridden. Deprecated unused field. + // overridden. + // Deprecated unused field. // "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an injected // kernel, which is deprecated. // "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB" - A WEIGHTED_MAGLEV backend - // service is associated with a health check that is not of type - // HTTP/HTTPS/HTTP2. + // service is associated with a health check that is + // not of type HTTP/HTTPS/HTTP2. // "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a // exceedingly large number of resources // "LIST_OVERHEAD_QUOTA_EXCEED" - Resource can't be retrieved due to list - // overhead quota exceed which captures the amount of resources filtered out by + // overhead quota exceed + // which captures the amount of resources filtered out by // user-defined list filter. // "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is not - // assigned to an instance on the network. + // assigned to an instance on the + // network. // "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot ip // forward. // "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE" - The route's nextHopInstance - // URL refers to an instance that does not have an ipv6 interface on the same - // network as the route. + // URL refers to an instance that does not have an + // ipv6 interface on the same network as the route. // "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL refers to // an instance that does not exist. // "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance URL - // refers to an instance that is not on the same network as the route. + // refers to an instance that is not on the + // same network as the route. // "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not have a // status of RUNNING. // "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to continue - // the process despite the mentioned error. + // the process despite + // the mentioned error. // "NO_RESULTS_ON_PAGE" - No results are present on a particular list page. // "PARTIAL_SUCCESS" - Success is reported, but some results may be missing // due to errors + // "QUOTA_INFO_UNAVAILABLE" - Quota information is not available to client + // requests (e.g: + // regions.list). // "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource that - // requires a TOS they have not accepted. + // requires a TOS they have not + // accepted. // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a resource is // in use. // "RESOURCE_NOT_DELETED" - One or more of the resources set to auto-delete - // could not be deleted because they were in use. + // could not be deleted + // because they were in use. // "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is // ignored. // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in instance - // group manager is valid as such, but its application does not make a lot of - // sense, because it allows only single instance in instance group. + // group manager is valid as such, but + // its application does not make a lot of sense, because it allows only + // single instance in instance group. // "UNDECLARED_PROPERTIES" - When undeclared properties in the schema are // present // "UNREACHABLE" - A given scope cannot be reached. 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: [Output Only] Metadata about this warning in key: + // value format. For example: + // + // "data": [ + // { + // "key": "scope", + // "value": "zones/us-east1-d" + // } Data []*VpnTunnelAggregatedListWarningData `json:"data,omitempty"` // Message: [Output Only] A human-readable description of the warning code. Message string `json:"message,omitempty"` @@ -52578,19 +82934,22 @@ type VpnTunnelAggregatedListWarning struct { NullFields []string `json:"-"` } -func (s *VpnTunnelAggregatedListWarning) MarshalJSON() ([]byte, error) { +func (s VpnTunnelAggregatedListWarning) MarshalJSON() ([]byte, error) { type NoMethod VpnTunnelAggregatedListWarning - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } type VpnTunnelAggregatedListWarningData 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: [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"` @@ -52607,9 +82966,30 @@ type VpnTunnelAggregatedListWarningData struct { NullFields []string `json:"-"` } -func (s *VpnTunnelAggregatedListWarningData) MarshalJSON() ([]byte, error) { +func (s VpnTunnelAggregatedListWarningData) MarshalJSON() ([]byte, error) { type NoMethod VpnTunnelAggregatedListWarningData - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +type VpnTunnelCipherSuite struct { + Phase1 *VpnTunnelPhase1Algorithms `json:"phase1,omitempty"` + Phase2 *VpnTunnelPhase2Algorithms `json:"phase2,omitempty"` + // ForceSendFields is a list of field names (e.g. "Phase1") to unconditionally + // include in API requests. By default, fields with empty or default values are + // omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + ForceSendFields []string `json:"-"` + // NullFields is a list of field names (e.g. "Phase1") to include in API + // requests with the JSON null value. By default, fields with empty values are + // omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s VpnTunnelCipherSuite) MarshalJSON() ([]byte, error) { + type NoMethod VpnTunnelCipherSuite + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } // VpnTunnelList: Contains a list of VpnTunnel resources. @@ -52618,16 +82998,19 @@ type VpnTunnelList struct { Id string `json:"id,omitempty"` // Items: A list of VpnTunnel resources. Items []*VpnTunnel `json:"items,omitempty"` - // Kind: [Output Only] Type of resource. Always compute#vpnTunnel for VPN - // tunnels. + // Kind: Output only. [Output Only] Type of resource. Always compute#vpnTunnel + // for + // VPN tunnels. 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. + // results for + // list requests. If the number of results is larger thanmaxResults, 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"` - // SelfLink: [Output Only] Server-defined URL for this resource. + // SelfLink: Output only. [Output Only] Server-defined URL for this resource. SelfLink string `json:"selfLink,omitempty"` // Warning: [Output Only] Informational warning message. Warning *VpnTunnelListWarning `json:"warning,omitempty"` @@ -52647,75 +83030,97 @@ type VpnTunnelList struct { NullFields []string `json:"-"` } -func (s *VpnTunnelList) MarshalJSON() ([]byte, error) { +func (s VpnTunnelList) MarshalJSON() ([]byte, error) { type NoMethod VpnTunnelList - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } // VpnTunnelListWarning: [Output Only] Informational warning message. type VpnTunnelListWarning 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. + // 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" - Warning about failed cleanup of transient changes made - // by a failed operation. + // by a failed + // operation. // "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was created. // "DEPRECATED_TYPE_USED" - When deploying and at least one of the resources - // has a type marked as deprecated + // has a type marked as + // deprecated // "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk that is // larger than image size. // "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the - // resources has a type marked as experimental + // resources has a type marked as + // experimental // "EXTERNAL_API_WARNING" - Warning that is present in an external api call // "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been - // overridden. Deprecated unused field. + // overridden. + // Deprecated unused field. // "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an injected // kernel, which is deprecated. // "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB" - A WEIGHTED_MAGLEV backend - // service is associated with a health check that is not of type - // HTTP/HTTPS/HTTP2. + // service is associated with a health check that is + // not of type HTTP/HTTPS/HTTP2. // "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a // exceedingly large number of resources // "LIST_OVERHEAD_QUOTA_EXCEED" - Resource can't be retrieved due to list - // overhead quota exceed which captures the amount of resources filtered out by + // overhead quota exceed + // which captures the amount of resources filtered out by // user-defined list filter. // "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is not - // assigned to an instance on the network. + // assigned to an instance on the + // network. // "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot ip // forward. // "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE" - The route's nextHopInstance - // URL refers to an instance that does not have an ipv6 interface on the same - // network as the route. + // URL refers to an instance that does not have an + // ipv6 interface on the same network as the route. // "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL refers to // an instance that does not exist. // "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance URL - // refers to an instance that is not on the same network as the route. + // refers to an instance that is not on the + // same network as the route. // "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not have a // status of RUNNING. // "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to continue - // the process despite the mentioned error. + // the process despite + // the mentioned error. // "NO_RESULTS_ON_PAGE" - No results are present on a particular list page. // "PARTIAL_SUCCESS" - Success is reported, but some results may be missing // due to errors + // "QUOTA_INFO_UNAVAILABLE" - Quota information is not available to client + // requests (e.g: + // regions.list). // "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource that - // requires a TOS they have not accepted. + // requires a TOS they have not + // accepted. // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a resource is // in use. // "RESOURCE_NOT_DELETED" - One or more of the resources set to auto-delete - // could not be deleted because they were in use. + // could not be deleted + // because they were in use. // "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is // ignored. // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in instance - // group manager is valid as such, but its application does not make a lot of - // sense, because it allows only single instance in instance group. + // group manager is valid as such, but + // its application does not make a lot of sense, because it allows only + // single instance in instance group. // "UNDECLARED_PROPERTIES" - When undeclared properties in the schema are // present // "UNREACHABLE" - A given scope cannot be reached. 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: [Output Only] Metadata about this warning in key: + // value format. For example: + // + // "data": [ + // { + // "key": "scope", + // "value": "zones/us-east1-d" + // } Data []*VpnTunnelListWarningData `json:"data,omitempty"` // Message: [Output Only] A human-readable description of the warning code. Message string `json:"message,omitempty"` @@ -52732,19 +83137,22 @@ type VpnTunnelListWarning struct { NullFields []string `json:"-"` } -func (s *VpnTunnelListWarning) MarshalJSON() ([]byte, error) { +func (s VpnTunnelListWarning) MarshalJSON() ([]byte, error) { type NoMethod VpnTunnelListWarning - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } type VpnTunnelListWarningData 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: [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"` @@ -52761,16 +83169,95 @@ type VpnTunnelListWarningData struct { NullFields []string `json:"-"` } -func (s *VpnTunnelListWarningData) MarshalJSON() ([]byte, error) { +func (s VpnTunnelListWarningData) MarshalJSON() ([]byte, error) { type NoMethod VpnTunnelListWarningData - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +type VpnTunnelParams struct { + // ResourceManagerTags: Tag keys/values directly bound to this resource. + // Tag keys and values have the same definition as resource + // manager tags. The field is allowed for INSERT + // only. The keys/values to set on the resource should be specified in + // either ID { : } or Namespaced format + // { : }. + // For example the following are valid inputs: + // * {"tagKeys/333" : "tagValues/444", "tagKeys/123" : "tagValues/456"} + // * {"123/environment" : "production", "345/abc" : "xyz"} + // Note: + // * Invalid combinations of ID & namespaced format is not supported. For + // instance: {"123/environment" : "tagValues/444"} is invalid. + // * Inconsistent format is not supported. For instance: + // {"tagKeys/333" : "tagValues/444", "123/env" : "prod"} is invalid. + ResourceManagerTags map[string]string `json:"resourceManagerTags,omitempty"` + // ForceSendFields is a list of field names (e.g. "ResourceManagerTags") to + // unconditionally include in API requests. By default, fields with empty or + // default values are omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + ForceSendFields []string `json:"-"` + // NullFields is a list of field names (e.g. "ResourceManagerTags") to include + // in API requests with the JSON null value. By default, fields with empty + // values are omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s VpnTunnelParams) MarshalJSON() ([]byte, error) { + type NoMethod VpnTunnelParams + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +type VpnTunnelPhase1Algorithms struct { + Dh []string `json:"dh,omitempty"` + Encryption []string `json:"encryption,omitempty"` + Integrity []string `json:"integrity,omitempty"` + Prf []string `json:"prf,omitempty"` + // ForceSendFields is a list of field names (e.g. "Dh") to unconditionally + // include in API requests. By default, fields with empty or default values are + // omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + ForceSendFields []string `json:"-"` + // NullFields is a list of field names (e.g. "Dh") to include in API requests + // with the JSON null value. By default, fields with empty values are omitted + // from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s VpnTunnelPhase1Algorithms) MarshalJSON() ([]byte, error) { + type NoMethod VpnTunnelPhase1Algorithms + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +type VpnTunnelPhase2Algorithms struct { + Encryption []string `json:"encryption,omitempty"` + Integrity []string `json:"integrity,omitempty"` + Pfs []string `json:"pfs,omitempty"` + // ForceSendFields is a list of field names (e.g. "Encryption") to + // unconditionally include in API requests. By default, fields with empty or + // default values are omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + ForceSendFields []string `json:"-"` + // NullFields is a list of field names (e.g. "Encryption") to include in API + // requests with the JSON null value. By default, fields with empty values are + // omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s VpnTunnelPhase2Algorithms) MarshalJSON() ([]byte, error) { + type NoMethod VpnTunnelPhase2Algorithms + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } type VpnTunnelsScopedList struct { // VpnTunnels: A list of VPN tunnels contained in this scope. VpnTunnels []*VpnTunnel `json:"vpnTunnels,omitempty"` - // Warning: Informational warning which replaces the list of addresses when the - // list is empty. + // Warning: Informational warning which replaces the list of addresses when + // the list is empty. Warning *VpnTunnelsScopedListWarning `json:"warning,omitempty"` // ForceSendFields is a list of field names (e.g. "VpnTunnels") to // unconditionally include in API requests. By default, fields with empty or @@ -52785,76 +83272,99 @@ type VpnTunnelsScopedList struct { NullFields []string `json:"-"` } -func (s *VpnTunnelsScopedList) MarshalJSON() ([]byte, error) { +func (s VpnTunnelsScopedList) MarshalJSON() ([]byte, error) { type NoMethod VpnTunnelsScopedList - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } // VpnTunnelsScopedListWarning: Informational warning which replaces the list -// of addresses when the list is empty. +// of addresses when +// the list is empty. type VpnTunnelsScopedListWarning 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. + // 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" - Warning about failed cleanup of transient changes made - // by a failed operation. + // by a failed + // operation. // "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was created. // "DEPRECATED_TYPE_USED" - When deploying and at least one of the resources - // has a type marked as deprecated + // has a type marked as + // deprecated // "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk that is // larger than image size. // "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the - // resources has a type marked as experimental + // resources has a type marked as + // experimental // "EXTERNAL_API_WARNING" - Warning that is present in an external api call // "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been - // overridden. Deprecated unused field. + // overridden. + // Deprecated unused field. // "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an injected // kernel, which is deprecated. // "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB" - A WEIGHTED_MAGLEV backend - // service is associated with a health check that is not of type - // HTTP/HTTPS/HTTP2. + // service is associated with a health check that is + // not of type HTTP/HTTPS/HTTP2. // "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a // exceedingly large number of resources // "LIST_OVERHEAD_QUOTA_EXCEED" - Resource can't be retrieved due to list - // overhead quota exceed which captures the amount of resources filtered out by + // overhead quota exceed + // which captures the amount of resources filtered out by // user-defined list filter. // "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is not - // assigned to an instance on the network. + // assigned to an instance on the + // network. // "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot ip // forward. // "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE" - The route's nextHopInstance - // URL refers to an instance that does not have an ipv6 interface on the same - // network as the route. + // URL refers to an instance that does not have an + // ipv6 interface on the same network as the route. // "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL refers to // an instance that does not exist. // "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance URL - // refers to an instance that is not on the same network as the route. + // refers to an instance that is not on the + // same network as the route. // "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not have a // status of RUNNING. // "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to continue - // the process despite the mentioned error. + // the process despite + // the mentioned error. // "NO_RESULTS_ON_PAGE" - No results are present on a particular list page. // "PARTIAL_SUCCESS" - Success is reported, but some results may be missing // due to errors + // "QUOTA_INFO_UNAVAILABLE" - Quota information is not available to client + // requests (e.g: + // regions.list). // "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource that - // requires a TOS they have not accepted. + // requires a TOS they have not + // accepted. // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a resource is // in use. // "RESOURCE_NOT_DELETED" - One or more of the resources set to auto-delete - // could not be deleted because they were in use. + // could not be deleted + // because they were in use. // "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is // ignored. // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in instance - // group manager is valid as such, but its application does not make a lot of - // sense, because it allows only single instance in instance group. + // group manager is valid as such, but + // its application does not make a lot of sense, because it allows only + // single instance in instance group. // "UNDECLARED_PROPERTIES" - When undeclared properties in the schema are // present // "UNREACHABLE" - A given scope cannot be reached. 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: [Output Only] Metadata about this warning in key: + // value format. For example: + // + // "data": [ + // { + // "key": "scope", + // "value": "zones/us-east1-d" + // } Data []*VpnTunnelsScopedListWarningData `json:"data,omitempty"` // Message: [Output Only] A human-readable description of the warning code. Message string `json:"message,omitempty"` @@ -52871,19 +83381,22 @@ type VpnTunnelsScopedListWarning struct { NullFields []string `json:"-"` } -func (s *VpnTunnelsScopedListWarning) MarshalJSON() ([]byte, error) { +func (s VpnTunnelsScopedListWarning) MarshalJSON() ([]byte, error) { type NoMethod VpnTunnelsScopedListWarning - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } type VpnTunnelsScopedListWarningData 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: [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"` @@ -52900,21 +83413,24 @@ type VpnTunnelsScopedListWarningData struct { NullFields []string `json:"-"` } -func (s *VpnTunnelsScopedListWarningData) MarshalJSON() ([]byte, error) { +func (s VpnTunnelsScopedListWarningData) MarshalJSON() ([]byte, error) { type NoMethod VpnTunnelsScopedListWarningData - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } type WafExpressionSet struct { - // Aliases: A list of alternate IDs. The format should be: - E.g. XSS-stable - // Generic suffix like "stable" is particularly useful if a policy likes to - // avail newer set of expressions without having to change the policy. A given - // alias name can't be used for more than one entity set. + // Aliases: A list of alternate IDs. The format should be: + // - E.g. XSS-stable + // Generic suffix like "stable" is particularly useful if a policy + // likes to avail newer set of expressions without having to change + // the policy. + // A given alias name can't be used for more than one entity set. Aliases []string `json:"aliases,omitempty"` // Expressions: List of available expressions. Expressions []*WafExpressionSetExpression `json:"expressions,omitempty"` - // Id: Google specified expression set ID. The format should be: - E.g. - // XSS-20170329 required + // Id: Google specified expression set ID. The format should be: + // - E.g. XSS-20170329 + // required Id string `json:"id,omitempty"` // ForceSendFields is a list of field names (e.g. "Aliases") to unconditionally // include in API requests. By default, fields with empty or default values are @@ -52929,21 +83445,26 @@ type WafExpressionSet struct { NullFields []string `json:"-"` } -func (s *WafExpressionSet) MarshalJSON() ([]byte, error) { +func (s WafExpressionSet) MarshalJSON() ([]byte, error) { type NoMethod WafExpressionSet - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } type WafExpressionSetExpression struct { - // Id: Expression ID should uniquely identify the origin of the expression. - // E.g. owasp-crs-v020901-id973337 identifies Owasp core rule set version 2.9.1 - // rule id 973337. The ID could be used to determine the individual attack - // definition that has been detected. It could also be used to exclude it from - // the policy in case of false positive. required + // Id: Expression ID should uniquely identify the origin of the + // expression. + // E.g. owasp-crs-v020901-id973337 identifies Owasp core rule set + // version 2.9.1 rule id 973337. + // The ID could be used to determine the individual attack definition + // that has been detected. It could also be used to exclude it from + // the policy in case of false positive. + // required Id string `json:"id,omitempty"` // Sensitivity: The sensitivity value associated with the WAF rule ID. This - // corresponds to the ModSecurity paranoia level, ranging from 1 to 4. 0 is - // reserved for opt-in only rules. + // corresponds + // to the ModSecurity paranoia level, ranging from 1 to 4. 0 is reserved + // for + // opt-in only rules. Sensitivity int64 `json:"sensitivity,omitempty"` // ForceSendFields is a list of field names (e.g. "Id") to unconditionally // include in API requests. By default, fields with empty or default values are @@ -52958,36 +83479,54 @@ type WafExpressionSetExpression struct { NullFields []string `json:"-"` } -func (s *WafExpressionSetExpression) MarshalJSON() ([]byte, error) { +func (s WafExpressionSetExpression) MarshalJSON() ([]byte, error) { type NoMethod WafExpressionSetExpression - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } // WeightedBackendService: In contrast to a single BackendService in -// HttpRouteAction to which all matching traffic is directed to, -// WeightedBackendService allows traffic to be split across multiple backend -// services. The volume of traffic for each backend service is proportional to -// the weight specified in each WeightedBackendService +// +// HttpRouteAction to which all matching traffic is directed +// to,WeightedBackendService allows traffic to be split across +// multiple backend services. The volume of traffic for each +// backend service is proportional to the weight specified +// in each WeightedBackendService type WeightedBackendService struct { - // BackendService: The full or partial URL to the default BackendService - // resource. Before forwarding the request to backendService, the load balancer - // applies any relevant headerActions specified as part of this - // backendServiceWeight. + // BackendService: The full or partial URL to the default + // BackendService + // resource. Before + // forwarding the request to backendService, the load balancer + // applies any relevant headerActions specified as part of + // thisbackendServiceWeight. BackendService string `json:"backendService,omitempty"` // HeaderAction: Specifies changes to request and response headers that need to - // take effect for the selected backendService. headerAction specified here - // take effect before headerAction in the enclosing HttpRouteRule, PathMatcher - // and UrlMap. headerAction is not supported for load balancers that have their - // loadBalancingScheme set to EXTERNAL. Not supported when the URL map is bound - // to a target gRPC proxy that has validateForProxyless field set to true. + // take + // effect for the selected backendService. + // + // headerAction specified here take effect beforeheaderAction in the enclosing + // HttpRouteRule,PathMatcher and UrlMap. + // + // headerAction is not supported for load balancers that have + // their loadBalancingScheme set to EXTERNAL. + // + // Not supported when the URL map is bound to a target gRPC proxy that + // has validateForProxyless field set to true. HeaderAction *HttpHeaderAction `json:"headerAction,omitempty"` - // Weight: Specifies the fraction of traffic sent to a backend service, - // computed as weight / (sum of all weightedBackendService weights in - // routeAction) . The selection of a backend service is determined only for new - // traffic. Once a user's request has been directed to a backend service, - // subsequent requests are sent to the same backend service as determined by - // the backend service's session affinity policy. The value must be from 0 to - // 1000. + // Weight: Specifies the fraction of traffic sent to a backend + // service, + // computed asweight / (sum of all weightedBackendService weights in + // routeAction). + // + // The selection of a backend service is determined only for new traffic. + // Once a user's request has been directed to a backend service, + // subsequent requests are sent to the same backend service as + // determined by the backend service's session affinity policy. + // Don't configure session affinity if you're using weighted traffic + // splitting. If you do, the weighted traffic splitting configuration + // takes + // precedence. + // + // The value must be from 0 to 1000. Weight int64 `json:"weight,omitempty"` // ForceSendFields is a list of field names (e.g. "BackendService") to // unconditionally include in API requests. By default, fields with empty or @@ -53002,9 +83541,554 @@ type WeightedBackendService struct { NullFields []string `json:"-"` } -func (s *WeightedBackendService) MarshalJSON() ([]byte, error) { +func (s WeightedBackendService) MarshalJSON() ([]byte, error) { type NoMethod WeightedBackendService - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +// Wire: A pseudowire that connects two Interconnect connections. +type Wire struct { + // AdminEnabled: Output only. [Output Only] Indicates whether the wire is + // enabled. + // When false, the wire is disabled. When true and when the wire group of + // the wire is also enabled, the wire is enabled. Defaults to true. + AdminEnabled bool `json:"adminEnabled,omitempty"` + // Endpoints: Output only. Wire endpoints are specific Interconnect + // connections. + Endpoints []*WireEndpoint `json:"endpoints,omitempty"` + // Label: Output only. [Output Only] A label that identifies the wire. The + // format of this label + // combines the existing labels of the wire group endpoints and + // Interconnect + // connections used by this wire in alphabetical order as + // follows: + // `ENDPOINT_A+CONNECTION_A1,ENDPOINT_B+CONNECTION_B1`, where: + // + // - ENDPOINT_A and ENDPOINT_B: are the labels + // that you entered as map keys when you specified the wire group endpoint + // objects. + // - CONNECTION_A1 and CONNECTION_B1: are the + // labels that you entered as map keys when you specified the wire group + // Interconnect objects. + Label string `json:"label,omitempty"` + // WireProperties: Output only. [Output Only] Properties of the wire. + WireProperties *WireProperties `json:"wireProperties,omitempty"` + // ForceSendFields is a list of field names (e.g. "AdminEnabled") to + // unconditionally include in API requests. By default, fields with empty or + // default values are omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + ForceSendFields []string `json:"-"` + // NullFields is a list of field names (e.g. "AdminEnabled") to include in API + // requests with the JSON null value. By default, fields with empty values are + // omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s Wire) MarshalJSON() ([]byte, error) { + type NoMethod Wire + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +// WireEndpoint: Wire endpoints are specific Interconnect connections. +type WireEndpoint struct { + Interconnect string `json:"interconnect,omitempty"` + VlanTag int64 `json:"vlanTag,omitempty"` + // ForceSendFields is a list of field names (e.g. "Interconnect") to + // unconditionally include in API requests. By default, fields with empty or + // default values are omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + ForceSendFields []string `json:"-"` + // NullFields is a list of field names (e.g. "Interconnect") to include in API + // requests with the JSON null value. By default, fields with empty values are + // omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s WireEndpoint) MarshalJSON() ([]byte, error) { + type NoMethod WireEndpoint + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +// WireGroup: A resource that represents a group of redundant wires. +type WireGroup struct { + // AdminEnabled: Indicates whether the wires in the wire group are enabled. + // When false, the + // wires in the wire group are disabled. When true and when + // there is simultaneously no wire-specific override of `adminEnabled` + // to + // false, a given wire is enabled. Defaults to true. + AdminEnabled bool `json:"adminEnabled,omitempty"` + // CreationTimestamp: Output only. [Output Only] Creation timestamp + // inRFC3339 + // text format. + CreationTimestamp string `json:"creationTimestamp,omitempty"` + // Description: An optional description of the wire group. + Description string `json:"description,omitempty"` + // Endpoints: A map that contains the logical endpoints of the wire group. + // Specify + // key-value pairs for the map as follows: + // + // - Key: an RFC1035 user-specified label. + // - Value: an Endpoint object. + Endpoints map[string]WireGroupEndpoint `json:"endpoints,omitempty"` + // Id: Output only. [Output Only] The unique identifier for the resource type. + // The server + // generates this identifier. + Id uint64 `json:"id,omitempty,string"` + // Kind: Output only. [Output Only] Type of the resource. + // Alwayscompute#wireGroups for wire groups. + Kind string `json:"kind,omitempty"` + // Name: Name of the resource. Provided by the client when the resource is + // created. + // The name must be 1-63 characters long, and comply withRFC1035. + // 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. + Name string `json:"name,omitempty"` + // Reconciling: Output only. [Output Only] Indicates whether there are wire + // changes yet to be processed. + Reconciling bool `json:"reconciling,omitempty"` + // SelfLink: Output only. [Output Only] Server-defined URL for the resource. + SelfLink string `json:"selfLink,omitempty"` + // Topology: Output only. Topology details for the wire group configuration. + Topology *WireGroupTopology `json:"topology,omitempty"` + // WireProperties: Properties for all wires in the wire group. + WireProperties *WireProperties `json:"wireProperties,omitempty"` + // Wires: Output only. The single/redundant wire(s) managed by the wire group. + Wires []*Wire `json:"wires,omitempty"` + + // ServerResponse contains the HTTP response code and headers from the server. + googleapi.ServerResponse `json:"-"` + // ForceSendFields is a list of field names (e.g. "AdminEnabled") to + // unconditionally include in API requests. By default, fields with empty or + // default values are omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + ForceSendFields []string `json:"-"` + // NullFields is a list of field names (e.g. "AdminEnabled") to include in API + // requests with the JSON null value. By default, fields with empty values are + // omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s WireGroup) MarshalJSON() ([]byte, error) { + type NoMethod WireGroup + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +// WireGroupEndpoint: A logical endpoint for the wire group. An endpoint +// represents a metro that +// contains redundant Interconnect connections. A wire group is created +// between two endpoints. +type WireGroupEndpoint struct { + // Interconnects: A map that contains the redundant Interconnect connections. + // Specify + // key-value pairs for the map as follows: + // + // - Key: an RFC1035 user-specified label. + // - Value: an Interconnect object. + Interconnects map[string]WireGroupEndpointInterconnect `json:"interconnects,omitempty"` + // ForceSendFields is a list of field names (e.g. "Interconnects") to + // unconditionally include in API requests. By default, fields with empty or + // default values are omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + ForceSendFields []string `json:"-"` + // NullFields is a list of field names (e.g. "Interconnects") to include in API + // requests with the JSON null value. By default, fields with empty values are + // omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s WireGroupEndpoint) MarshalJSON() ([]byte, error) { + type NoMethod WireGroupEndpoint + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +// WireGroupEndpointInterconnect: The redundant Interconnect connections for +// this endpoint. +type WireGroupEndpointInterconnect struct { + // Interconnect: Required. An Interconnect connection. You can specify the + // connection as + // a partial or full URL. If the connection is in a different project from + // the cross-site network, use a format that specifies the project. See + // the following examples of partial and full URLs: + // + // + // + // global/interconnects/NAME + // + // + // projects/PROJECT_ID/global/interconnects/NAME + // + // - + // + // https://compute.googleapis.com/compute/projects/PROJECT_ID/global/interconnects/NAME + Interconnect string `json:"interconnect,omitempty"` + // VlanTags: Required. To configure the wire group for VLAN mode, enter a VLAN + // tag, + // which is a number from `2` to `4093`. You can autoallocate a tag by + // entering `0`. To configure the wire group for port mode, enter `-1`. + // Review the following guidelines: + // + // - A VLAN tag must be unique for an Interconnect connection across all + // attachments and wire groups. + // - Both endpoints of a wire must use the same VLAN tag value. + // - Single wire and redundant type wire groups must have only one + // VLAN tag. + // - Port mode pseudowires must have a single VLAN tag with a value of + // `-1` for both endpoints. + // - Box and cross type wire groups must have two VLAN tags. The first + // is for the same-zone pseudowire, and the second is for the cross-zone + // pseudowire. + VlanTags []int64 `json:"vlanTags,omitempty"` + // ForceSendFields is a list of field names (e.g. "Interconnect") to + // unconditionally include in API requests. By default, fields with empty or + // default values are omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + ForceSendFields []string `json:"-"` + // NullFields is a list of field names (e.g. "Interconnect") to include in API + // requests with the JSON null value. By default, fields with empty values are + // omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s WireGroupEndpointInterconnect) MarshalJSON() ([]byte, error) { + type NoMethod WireGroupEndpointInterconnect + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +// WireGroupList: Response for the list request. +type WireGroupList struct { + Etag string `json:"etag,omitempty"` + // Id: [Output Only] Unique identifier for the resource; defined by the server. + Id string `json:"id,omitempty"` + // Items: A list of wire group resources. + Items []*WireGroup `json:"items,omitempty"` + // Kind: Output only. [Output Only] Type of the resource. + // Alwayscompute#wireGroups for wire groups. + 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 thanmaxResults, 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"` + // SelfLink: [Output Only] Server-defined URL for this resource. + SelfLink string `json:"selfLink,omitempty"` + // Unreachables: Output only. [Output Only] Unreachable + // resources. + // end_interface: MixerListResponseWithEtagBuilder + Unreachables []string `json:"unreachables,omitempty"` + // Warning: [Output Only] Informational warning message. + Warning *WireGroupListWarning `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. "Etag") to unconditionally + // include in API requests. By default, fields with empty or default values are + // omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + ForceSendFields []string `json:"-"` + // NullFields is a list of field names (e.g. "Etag") to include in API requests + // with the JSON null value. By default, fields with empty values are omitted + // from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s WireGroupList) MarshalJSON() ([]byte, error) { + type NoMethod WireGroupList + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +// WireGroupListWarning: [Output Only] Informational warning message. +type WireGroupListWarning 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" - Warning about failed cleanup of transient changes made + // by a failed + // operation. + // "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was created. + // "DEPRECATED_TYPE_USED" - When deploying and at least one of the resources + // has a type marked as + // deprecated + // "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk that is + // larger than image size. + // "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the + // resources has a type marked as + // experimental + // "EXTERNAL_API_WARNING" - Warning that is present in an external api call + // "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been + // overridden. + // Deprecated unused field. + // "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an injected + // kernel, which is deprecated. + // "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB" - A WEIGHTED_MAGLEV backend + // service is associated with a health check that is + // not of type HTTP/HTTPS/HTTP2. + // "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a + // exceedingly large number of resources + // "LIST_OVERHEAD_QUOTA_EXCEED" - Resource can't be retrieved due to list + // overhead quota exceed + // which captures the amount of resources filtered out by + // user-defined list filter. + // "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type + // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is not + // assigned to an instance on the + // network. + // "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot ip + // forward. + // "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE" - The route's nextHopInstance + // URL refers to an instance that does not have an + // ipv6 interface on the same network as the route. + // "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL refers to + // an instance that does not exist. + // "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance URL + // refers to an instance that is not on the + // same network as the route. + // "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not have a + // status of RUNNING. + // "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to continue + // the process despite + // the mentioned error. + // "NO_RESULTS_ON_PAGE" - No results are present on a particular list page. + // "PARTIAL_SUCCESS" - Success is reported, but some results may be missing + // due to errors + // "QUOTA_INFO_UNAVAILABLE" - Quota information is not available to client + // requests (e.g: + // regions.list). + // "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource that + // requires a TOS they have not + // accepted. + // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a resource is + // in use. + // "RESOURCE_NOT_DELETED" - One or more of the resources set to auto-delete + // could not be deleted + // because they were in use. + // "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is + // ignored. + // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in instance + // group manager is valid as such, but + // its application does not make a lot of sense, because it allows only + // single instance in instance group. + // "UNDECLARED_PROPERTIES" - When undeclared properties in the schema are + // present + // "UNREACHABLE" - A given scope cannot be reached. + 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 []*WireGroupListWarningData `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 or default values are + // omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + 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. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s WireGroupListWarning) MarshalJSON() ([]byte, error) { + type NoMethod WireGroupListWarning + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +type WireGroupListWarningData 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 or default values are + // omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + 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. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s WireGroupListWarningData) MarshalJSON() ([]byte, error) { + type NoMethod WireGroupListWarningData + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +// WireGroupTopology: Topology details for the wire group. +type WireGroupTopology struct { + // Endpoints: Output only. Topology details for all endpoints in the wire + // group. + Endpoints []*WireGroupTopologyEndpoint `json:"endpoints,omitempty"` + // ForceSendFields is a list of field names (e.g. "Endpoints") to + // unconditionally include in API requests. By default, fields with empty or + // default values are omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + ForceSendFields []string `json:"-"` + // NullFields is a list of field names (e.g. "Endpoints") to include in API + // requests with the JSON null value. By default, fields with empty values are + // omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s WireGroupTopology) MarshalJSON() ([]byte, error) { + type NoMethod WireGroupTopology + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +// WireGroupTopologyEndpoint: Topology details for a single wire group +// endpoint. +type WireGroupTopologyEndpoint struct { + // City: Output only. The InterconnectLocation.city (metropolitan area + // designator) that all + // interconnects are located in. + City string `json:"city,omitempty"` + // Label: Output only. Endpoint label from the wire group. + Label string `json:"label,omitempty"` + // ForceSendFields is a list of field names (e.g. "City") to unconditionally + // include in API requests. By default, fields with empty or default values are + // omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + ForceSendFields []string `json:"-"` + // NullFields is a list of field names (e.g. "City") to include in API requests + // with the JSON null value. By default, fields with empty values are omitted + // from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s WireGroupTopologyEndpoint) MarshalJSON() ([]byte, error) { + type NoMethod WireGroupTopologyEndpoint + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +// WireProperties: The properties of a wire. +type WireProperties struct { + // BandwidthAllocation: The configuration of the bandwidth allocation, one of + // the following: + // + // - ALLOCATE_PER_WIRE: configures a separate unmetered bandwidth + // allocation + // (and associated charges) for each wire in the group. + // - SHARED_WITH_WIRE_GROUP: this is the default behavior, which configures + // one unmetered bandwidth allocation for the wire group. The unmetered + // bandwidth is divided equally across each wire in the group, but dynamic + // throttling reallocates unused unmetered bandwidth from unused or + // underused + // wires to other wires in the group. + // + // Possible values: + // "ALLOCATE_PER_WIRE" - Configures a separate unmetered bandwidth allocation + // (and associated + // charges) for each wire in the group. + // "SHARED_WITH_WIRE_GROUP" - This is the default behavior. Configures one + // unmetered bandwidth + // allocation for the wire group. The unmetered bandwidth is divided + // equally + // across each wire in the group, but dynamic throttling reallocates + // unused + // unmetered bandwidth from unused or underused wires to other wires in + // the + // group. + BandwidthAllocation string `json:"bandwidthAllocation,omitempty"` + // BandwidthUnmetered: The unmetered bandwidth in Gigabits per second, using + // decimal units. `10` + // is 10 Gbps, `100` is 100 Gbps. The bandwidth must be greater than 0. + BandwidthUnmetered int64 `json:"bandwidthUnmetered,omitempty,string"` + // FaultResponse: Response when a fault is detected in a pseudowire: + // + // - NONE: default. + // - DISABLE_PORT: set the port line protocol down when inline probes + // detect a fault. This setting is only permitted on port mode + // pseudowires. + // + // Possible values: + // "DISABLE_PORT" - Set the port line protocol down when inline probes detect + // a fault. This + // setting is only permitted on port mode pseudowires. + // "NONE" - Default. + FaultResponse string `json:"faultResponse,omitempty"` + // ForceSendFields is a list of field names (e.g. "BandwidthAllocation") to + // unconditionally include in API requests. By default, fields with empty or + // default values are omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + ForceSendFields []string `json:"-"` + // NullFields is a list of field names (e.g. "BandwidthAllocation") to include + // in API requests with the JSON null value. By default, fields with empty + // values are omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s WireProperties) MarshalJSON() ([]byte, error) { + type NoMethod WireProperties + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +type WorkloadIdentityConfig struct { + Identity string `json:"identity,omitempty"` + IdentityCertificateEnabled bool `json:"identityCertificateEnabled,omitempty"` + // ForceSendFields is a list of field names (e.g. "Identity") to + // unconditionally include in API requests. By default, fields with empty or + // default values are omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + ForceSendFields []string `json:"-"` + // NullFields is a list of field names (e.g. "Identity") to include in API + // requests with the JSON null value. By default, fields with empty values are + // omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s WorkloadIdentityConfig) MarshalJSON() ([]byte, error) { + type NoMethod WorkloadIdentityConfig + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } type XpnHostList struct { @@ -53012,16 +84096,19 @@ type XpnHostList struct { Id string `json:"id,omitempty"` // Items: [Output Only] A list of shared VPC host project URLs. Items []*Project `json:"items,omitempty"` - // Kind: [Output Only] Type of resource. Always compute#xpnHostList for lists - // of shared VPC hosts. + // Kind: Output only. [Output Only] Type of resource. Always + // compute#xpnHostList for + // lists of shared VPC hosts. 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. + // results for + // list requests. If the number of results is larger thanmaxResults, 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"` - // SelfLink: [Output Only] Server-defined URL for this resource. + // SelfLink: Output only. [Output Only] Server-defined URL for this resource. SelfLink string `json:"selfLink,omitempty"` // Warning: [Output Only] Informational warning message. Warning *XpnHostListWarning `json:"warning,omitempty"` @@ -53041,75 +84128,97 @@ type XpnHostList struct { NullFields []string `json:"-"` } -func (s *XpnHostList) MarshalJSON() ([]byte, error) { +func (s XpnHostList) MarshalJSON() ([]byte, error) { type NoMethod XpnHostList - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } // XpnHostListWarning: [Output Only] Informational warning message. type XpnHostListWarning 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. + // 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" - Warning about failed cleanup of transient changes made - // by a failed operation. + // by a failed + // operation. // "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was created. // "DEPRECATED_TYPE_USED" - When deploying and at least one of the resources - // has a type marked as deprecated + // has a type marked as + // deprecated // "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk that is // larger than image size. // "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the - // resources has a type marked as experimental + // resources has a type marked as + // experimental // "EXTERNAL_API_WARNING" - Warning that is present in an external api call // "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been - // overridden. Deprecated unused field. + // overridden. + // Deprecated unused field. // "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an injected // kernel, which is deprecated. // "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB" - A WEIGHTED_MAGLEV backend - // service is associated with a health check that is not of type - // HTTP/HTTPS/HTTP2. + // service is associated with a health check that is + // not of type HTTP/HTTPS/HTTP2. // "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a // exceedingly large number of resources // "LIST_OVERHEAD_QUOTA_EXCEED" - Resource can't be retrieved due to list - // overhead quota exceed which captures the amount of resources filtered out by + // overhead quota exceed + // which captures the amount of resources filtered out by // user-defined list filter. // "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is not - // assigned to an instance on the network. + // assigned to an instance on the + // network. // "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot ip // forward. // "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE" - The route's nextHopInstance - // URL refers to an instance that does not have an ipv6 interface on the same - // network as the route. + // URL refers to an instance that does not have an + // ipv6 interface on the same network as the route. // "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL refers to // an instance that does not exist. // "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance URL - // refers to an instance that is not on the same network as the route. + // refers to an instance that is not on the + // same network as the route. // "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not have a // status of RUNNING. // "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to continue - // the process despite the mentioned error. + // the process despite + // the mentioned error. // "NO_RESULTS_ON_PAGE" - No results are present on a particular list page. // "PARTIAL_SUCCESS" - Success is reported, but some results may be missing // due to errors + // "QUOTA_INFO_UNAVAILABLE" - Quota information is not available to client + // requests (e.g: + // regions.list). // "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource that - // requires a TOS they have not accepted. + // requires a TOS they have not + // accepted. // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a resource is // in use. // "RESOURCE_NOT_DELETED" - One or more of the resources set to auto-delete - // could not be deleted because they were in use. + // could not be deleted + // because they were in use. // "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is // ignored. // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in instance - // group manager is valid as such, but its application does not make a lot of - // sense, because it allows only single instance in instance group. + // group manager is valid as such, but + // its application does not make a lot of sense, because it allows only + // single instance in instance group. // "UNDECLARED_PROPERTIES" - When undeclared properties in the schema are // present // "UNREACHABLE" - A given scope cannot be reached. 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: [Output Only] Metadata about this warning in key: + // value format. For example: + // + // "data": [ + // { + // "key": "scope", + // "value": "zones/us-east1-d" + // } Data []*XpnHostListWarningData `json:"data,omitempty"` // Message: [Output Only] A human-readable description of the warning code. Message string `json:"message,omitempty"` @@ -53126,19 +84235,22 @@ type XpnHostListWarning struct { NullFields []string `json:"-"` } -func (s *XpnHostListWarning) MarshalJSON() ([]byte, error) { +func (s XpnHostListWarning) MarshalJSON() ([]byte, error) { type NoMethod XpnHostListWarning - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } type XpnHostListWarningData 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: [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"` @@ -53155,16 +84267,17 @@ type XpnHostListWarningData struct { NullFields []string `json:"-"` } -func (s *XpnHostListWarningData) MarshalJSON() ([]byte, error) { +func (s XpnHostListWarningData) MarshalJSON() ([]byte, error) { type NoMethod XpnHostListWarningData - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } // XpnResourceId: Service resource (a.k.a service project) ID. type XpnResourceId struct { - // Id: The ID of the service resource. In the case of projects, this field - // supports project id (e.g., my-project-123) and project number (e.g. - // 12345678). + // Id: The ID of the service resource. In the case of projects, this + // field + // supports project id (e.g., my-project-123) and project number + // (e.g. 12345678). Id string `json:"id,omitempty"` // Type: The type of the service resource. // @@ -53185,44 +84298,52 @@ type XpnResourceId struct { NullFields []string `json:"-"` } -func (s *XpnResourceId) MarshalJSON() ([]byte, error) { +func (s XpnResourceId) MarshalJSON() ([]byte, error) { type NoMethod XpnResourceId - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } -// Zone: Represents a Zone resource. A zone is a deployment area. These -// deployment areas are subsets of a region. For example the zone us-east1-a is -// located in the us-east1 region. For more information, read Regions and +// Zone: Represents a Zone resource. +// +// A zone is a deployment area. These deployment areas are subsets of a +// region. +// For example the zone us-east1-b is located in theus-east1 region. For more +// information, readRegions and // Zones. type Zone struct { // AvailableCpuPlatforms: [Output Only] Available cpu/platform selections for // the zone. AvailableCpuPlatforms []string `json:"availableCpuPlatforms,omitempty"` - // CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text format. + // CreationTimestamp: [Output Only] Creation timestamp inRFC3339 + // text format. CreationTimestamp string `json:"creationTimestamp,omitempty"` // Deprecated -- [Output Only] The deprecation status associated with this // zone. Deprecated *DeprecationStatus `json:"deprecated,omitempty"` // Description: [Output Only] Textual description of the resource. Description string `json:"description,omitempty"` - // Id: [Output Only] The unique identifier for the resource. This identifier is + // Id: [Output Only] The unique identifier for the resource. This identifier + // is // defined by the server. Id uint64 `json:"id,omitempty,string"` - // Kind: [Output Only] Type of the resource. Always compute#zone for zones. + // Kind: Output only. [Output Only] Type of the resource. Always compute#zone + // for + // zones. Kind string `json:"kind,omitempty"` // Name: [Output Only] Name of the resource. Name string `json:"name,omitempty"` // Region: [Output Only] Full URL reference to the region which hosts the zone. - Region string `json:"region,omitempty"` + Region string `json:"region,omitempty"` + ResourceStatus *ZoneResourceStatus `json:"resourceStatus,omitempty"` // SelfLink: [Output Only] Server-defined URL for the resource. SelfLink string `json:"selfLink,omitempty"` - // Status: [Output Only] Status of the zone, either UP or DOWN. + // Status: [Output Only] Status of the zone, either UP orDOWN. // // Possible values: // "DOWN" // "UP" Status string `json:"status,omitempty"` - // SupportsPzs: [Output Only] Reserved for future use. + // SupportsPzs: Output only. [Output Only] Reserved for future use. SupportsPzs bool `json:"supportsPzs,omitempty"` // ServerResponse contains the HTTP response code and headers from the server. @@ -53240,9 +84361,9 @@ type Zone struct { NullFields []string `json:"-"` } -func (s *Zone) MarshalJSON() ([]byte, error) { +func (s Zone) MarshalJSON() ([]byte, error) { type NoMethod Zone - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } // ZoneList: Contains a list of zone resources. @@ -53251,15 +84372,17 @@ type ZoneList struct { Id string `json:"id,omitempty"` // Items: A list of Zone resources. Items []*Zone `json:"items,omitempty"` - // Kind: Type of resource. + // Kind: Output only. Type of resource. 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. + // results for + // list requests. If the number of results is larger thanmaxResults, 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"` - // SelfLink: [Output Only] Server-defined URL for this resource. + // SelfLink: Output only. [Output Only] Server-defined URL for this resource. SelfLink string `json:"selfLink,omitempty"` // Warning: [Output Only] Informational warning message. Warning *ZoneListWarning `json:"warning,omitempty"` @@ -53279,75 +84402,97 @@ type ZoneList struct { NullFields []string `json:"-"` } -func (s *ZoneList) MarshalJSON() ([]byte, error) { +func (s ZoneList) MarshalJSON() ([]byte, error) { type NoMethod ZoneList - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } // ZoneListWarning: [Output Only] Informational warning message. type ZoneListWarning 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. + // 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" - Warning about failed cleanup of transient changes made - // by a failed operation. + // by a failed + // operation. // "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was created. // "DEPRECATED_TYPE_USED" - When deploying and at least one of the resources - // has a type marked as deprecated + // has a type marked as + // deprecated // "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk that is // larger than image size. // "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the - // resources has a type marked as experimental + // resources has a type marked as + // experimental // "EXTERNAL_API_WARNING" - Warning that is present in an external api call // "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been - // overridden. Deprecated unused field. + // overridden. + // Deprecated unused field. // "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an injected // kernel, which is deprecated. // "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB" - A WEIGHTED_MAGLEV backend - // service is associated with a health check that is not of type - // HTTP/HTTPS/HTTP2. + // service is associated with a health check that is + // not of type HTTP/HTTPS/HTTP2. // "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a // exceedingly large number of resources // "LIST_OVERHEAD_QUOTA_EXCEED" - Resource can't be retrieved due to list - // overhead quota exceed which captures the amount of resources filtered out by + // overhead quota exceed + // which captures the amount of resources filtered out by // user-defined list filter. // "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type // "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is not - // assigned to an instance on the network. + // assigned to an instance on the + // network. // "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot ip // forward. // "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE" - The route's nextHopInstance - // URL refers to an instance that does not have an ipv6 interface on the same - // network as the route. + // URL refers to an instance that does not have an + // ipv6 interface on the same network as the route. // "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL refers to // an instance that does not exist. // "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance URL - // refers to an instance that is not on the same network as the route. + // refers to an instance that is not on the + // same network as the route. // "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not have a // status of RUNNING. // "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to continue - // the process despite the mentioned error. + // the process despite + // the mentioned error. // "NO_RESULTS_ON_PAGE" - No results are present on a particular list page. // "PARTIAL_SUCCESS" - Success is reported, but some results may be missing // due to errors + // "QUOTA_INFO_UNAVAILABLE" - Quota information is not available to client + // requests (e.g: + // regions.list). // "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource that - // requires a TOS they have not accepted. + // requires a TOS they have not + // accepted. // "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a resource is // in use. // "RESOURCE_NOT_DELETED" - One or more of the resources set to auto-delete - // could not be deleted because they were in use. + // could not be deleted + // because they were in use. // "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is // ignored. // "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in instance - // group manager is valid as such, but its application does not make a lot of - // sense, because it allows only single instance in instance group. + // group manager is valid as such, but + // its application does not make a lot of sense, because it allows only + // single instance in instance group. // "UNDECLARED_PROPERTIES" - When undeclared properties in the schema are // present // "UNREACHABLE" - A given scope cannot be reached. 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: [Output Only] Metadata about this warning in key: + // value format. For example: + // + // "data": [ + // { + // "key": "scope", + // "value": "zones/us-east1-d" + // } Data []*ZoneListWarningData `json:"data,omitempty"` // Message: [Output Only] A human-readable description of the warning code. Message string `json:"message,omitempty"` @@ -53364,19 +84509,22 @@ type ZoneListWarning struct { NullFields []string `json:"-"` } -func (s *ZoneListWarning) MarshalJSON() ([]byte, error) { +func (s ZoneListWarning) MarshalJSON() ([]byte, error) { type NoMethod ZoneListWarning - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } type ZoneListWarningData 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: [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"` @@ -53393,18 +84541,44 @@ type ZoneListWarningData struct { NullFields []string `json:"-"` } -func (s *ZoneListWarningData) MarshalJSON() ([]byte, error) { +func (s ZoneListWarningData) MarshalJSON() ([]byte, error) { type NoMethod ZoneListWarningData - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +type ZoneResourceStatus struct { + // UpcomingMaintenances: Output only. [Output Only] The upcoming maintenance + // schedule. + UpcomingMaintenances []*PeriodicPartialMaintenanceSchedule `json:"upcomingMaintenances,omitempty"` + // ForceSendFields is a list of field names (e.g. "UpcomingMaintenances") to + // unconditionally include in API requests. By default, fields with empty or + // default values are omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + ForceSendFields []string `json:"-"` + // NullFields is a list of field names (e.g. "UpcomingMaintenances") to include + // in API requests with the JSON null value. By default, fields with empty + // values are omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s ZoneResourceStatus) MarshalJSON() ([]byte, error) { + type NoMethod ZoneResourceStatus + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } type ZoneSetLabelsRequest struct { // LabelFingerprint: The fingerprint of the previous set of labels for this - // resource, used to detect conflicts. The fingerprint is initially generated - // by Compute Engine and changes after every request to modify or update - // labels. You must always provide an up-to-date fingerprint hash in order to - // update or change labels. Make a get() request to the resource to get the - // latest fingerprint. + // resource, + // used to detect conflicts. The fingerprint is initially generated by + // Compute + // Engine and changes after every request to modify or update labels. You + // must + // always provide an up-to-date fingerprint hash in order to update or + // change + // labels. Make a get() request to the resource to get the latest + // fingerprint. LabelFingerprint string `json:"labelFingerprint,omitempty"` // Labels: The labels to set for this resource. Labels map[string]string `json:"labels,omitempty"` @@ -53421,22 +84595,58 @@ type ZoneSetLabelsRequest struct { NullFields []string `json:"-"` } -func (s *ZoneSetLabelsRequest) MarshalJSON() ([]byte, error) { +func (s ZoneSetLabelsRequest) MarshalJSON() ([]byte, error) { type NoMethod ZoneSetLabelsRequest - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) +} + +type ZoneSetNestedPolicyRequest struct { + // Bindings: Flatten Policy to create a backwacd compatible + // wire-format. + // Deprecated. Use 'policy' to specify bindings. + Bindings []*Binding `json:"bindings,omitempty"` + // Etag: Flatten Policy to create a backward compatible + // wire-format. + // Deprecated. Use 'policy' to specify the etag. + Etag string `json:"etag,omitempty"` + // Policy: REQUIRED: The complete policy to be applied to the 'resource'. The + // size of + // the policy is limited to a few 10s of KB. An empty policy is in general + // a + // valid policy but certain services (like Projects) might reject them. + Policy *Policy `json:"policy,omitempty"` + // ForceSendFields is a list of field names (e.g. "Bindings") to + // unconditionally include in API requests. By default, fields with empty or + // default values are omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more + // details. + ForceSendFields []string `json:"-"` + // NullFields is a list of field names (e.g. "Bindings") to include in API + // requests with the JSON null value. By default, fields with empty values are + // omitted from API requests. See + // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. + NullFields []string `json:"-"` +} + +func (s ZoneSetNestedPolicyRequest) MarshalJSON() ([]byte, error) { + type NoMethod ZoneSetNestedPolicyRequest + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } type ZoneSetPolicyRequest struct { - // Bindings: Flatten Policy to create a backwacd compatible wire-format. + // Bindings: Flatten Policy to create a backwacd compatible + // wire-format. // Deprecated. Use 'policy' to specify bindings. Bindings []*Binding `json:"bindings,omitempty"` - // Etag: Flatten Policy to create a backward compatible wire-format. + // Etag: Flatten Policy to create a backward compatible + // wire-format. // Deprecated. Use 'policy' to specify the etag. Etag string `json:"etag,omitempty"` // Policy: REQUIRED: The complete policy to be applied to the 'resource'. The - // size of the policy is limited to a few 10s of KB. An empty policy is in - // general a valid policy but certain services (like Projects) might reject - // them. + // size of + // the policy is limited to a few 10s of KB. An empty policy is in general + // a + // valid policy but certain services (like Projects) might reject them. Policy *Policy `json:"policy,omitempty"` // ForceSendFields is a list of field names (e.g. "Bindings") to // unconditionally include in API requests. By default, fields with empty or @@ -53451,7 +84661,7 @@ type ZoneSetPolicyRequest struct { NullFields []string `json:"-"` } -func (s *ZoneSetPolicyRequest) MarshalJSON() ([]byte, error) { +func (s ZoneSetPolicyRequest) MarshalJSON() ([]byte, error) { type NoMethod ZoneSetPolicyRequest - return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) + return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields) } diff --git a/vendor/google.golang.org/api/compute/v1/compute2-gen.go b/vendor/google.golang.org/api/compute/v1/compute2-gen.go index 179707653..61dcd04be 100644 --- a/vendor/google.golang.org/api/compute/v1/compute2-gen.go +++ b/vendor/google.golang.org/api/compute/v1/compute2-gen.go @@ -1,4 +1,4 @@ -// Copyright 2024 Google LLC. +// Copyright 2026 Google LLC. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. @@ -9,9 +9,9 @@ package compute import ( "context" "fmt" - "io" "net/http" + internallog "github.com/googleapis/gax-go/v2/internallog" googleapi "google.golang.org/api/googleapi" gensupport "google.golang.org/api/internal/gensupport" ) @@ -25,9 +25,11 @@ type AcceleratorTypesAggregatedListCall struct { header_ http.Header } -// AggregatedList: Retrieves an aggregated list of accelerator types. To -// prevent failure, Google recommends that you set the `returnPartialSuccess` -// parameter to `true`. +// AggregatedList: Retrieves an aggregated list of accelerator types. +// +// To prevent failure, it is recommended that you set +// the +// `returnPartialSuccess` parameter to `true`. // // - project: Project ID for this request. func (r *AcceleratorTypesService) AggregatedList(project string) *AcceleratorTypesAggregatedListCall { @@ -37,99 +39,154 @@ func (r *AcceleratorTypesService) AggregatedList(project string) *AcceleratorTyp } // Filter sets the optional parameter "filter": A filter expression that -// filters resources listed in the response. Most Compute resources support two -// types of filter expressions: expressions that support regular expressions -// and expressions that follow API improvement proposal AIP-160. These two -// types of filter expressions cannot be mixed in one request. If you want to -// use AIP-160, your expression must specify the field name, an operator, and -// the value that you want to use for filtering. The value must be a string, a -// number, or a boolean. The 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`. The `:*` comparison can be used to test whether a key has -// been defined. For example, to find all objects with `owner` label use: ``` -// labels.owner:* ``` 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) ``` If you want to use a regular -// expression, use the `eq` (equal) or `ne` (not equal) operator against a -// single un-parenthesized expression with or without quotes or against -// multiple parenthesized expressions. Examples: `fieldname eq unquoted -// literal` `fieldname eq 'single quoted literal'` `fieldname eq "double quoted -// literal" `(fieldname1 eq literal) (fieldname2 ne "literal")` The literal -// value is interpreted as a regular expression using Google RE2 library -// syntax. The literal value must match the entire field. For example, to -// filter for instances that do not end with name "instance", you would use -// `name ne .*instance`. You cannot combine constraints on multiple fields -// using regular expressions. +// filters resources listed in the response. Most +// Compute resources support two types of filter expressions: +// expressions that support regular expressions and expressions that follow +// API improvement proposal AIP-160. +// These two types of filter expressions cannot be mixed in one request. +// +// If you want to use AIP-160, your expression must specify the field name, +// an +// operator, and the value that you want to use for filtering. The value +// must be a string, a number, or a boolean. The 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`. +// +// The `:*` comparison can be used to test whether a key has been defined. +// For example, to find all objects with `owner` label +// use: +// ``` +// labels.owner:* +// ``` +// +// 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 onresource 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) +// ``` +// +// If you want to use a regular expression, use the `eq` (equal) or `ne` +// (not equal) operator against a single un-parenthesized expression with +// or +// without quotes or against multiple parenthesized expressions. +// Examples: +// +// `fieldname eq unquoted literal` +// `fieldname eq 'single quoted literal'` +// `fieldname eq "double quoted literal" +// `(fieldname1 eq literal) (fieldname2 ne "literal")` +// +// The literal value is interpreted as a regular expression using GoogleRE2 +// library syntax. +// The literal value must match the entire field. +// +// For example, to filter for instances that do not end with name +// "instance", +// you would use `name ne .*instance`. +// +// You cannot combine constraints on multiple fields using regular +// expressions. func (c *AcceleratorTypesAggregatedListCall) Filter(filter string) *AcceleratorTypesAggregatedListCall { c.urlParams_.Set("filter", filter) return c } // IncludeAllScopes sets the optional parameter "includeAllScopes": Indicates -// whether every visible scope for each scope type (zone, region, global) -// should be included in the response. For new resource types added after this -// field, the flag has no effect as new resource types will always include -// every visible scope for each scope type in response. For resource types -// which predate this field, if this flag is omitted or false, only scopes of -// the scope types where the resource type is expected to be found will be -// included. +// whether every visible scope for each scope type (zone, region, +// global) should be included in the response. For new resource types +// added +// after this field, the flag has no effect as new resource types will +// always +// include every visible scope for each scope type in response. For +// resource +// types which predate this field, if this flag is omitted or false, +// only +// scopes of the scope types where the resource type is expected to be +// found +// will be included. func (c *AcceleratorTypesAggregatedListCall) IncludeAllScopes(includeAllScopes bool) *AcceleratorTypesAggregatedListCall { c.urlParams_.Set("includeAllScopes", fmt.Sprint(includeAllScopes)) 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`) +// 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 *AcceleratorTypesAggregatedListCall) MaxResults(maxResults int64) *AcceleratorTypesAggregatedListCall { 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. +// 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 *AcceleratorTypesAggregatedListCall) OrderBy(orderBy string) *AcceleratorTypesAggregatedListCall { 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. +// use. Set `pageToken` to the +// `nextPageToken` returned by a previous list request to get +// the next page of results. func (c *AcceleratorTypesAggregatedListCall) PageToken(pageToken string) *AcceleratorTypesAggregatedListCall { c.urlParams_.Set("pageToken", pageToken) return c } // ReturnPartialSuccess sets the optional parameter "returnPartialSuccess": -// Opt-in for partial success behavior which provides partial results in case -// of failure. The default value is false. For example, when partial success -// behavior is enabled, aggregatedList for a single zone scope either returns -// all resources in the zone or no resources, with an error code. +// Opt-in for partial success behavior which provides partial results in +// case +// of failure. The default value is false. +// +// For example, when partial success behavior is enabled, aggregatedList for +// a +// single zone scope either returns all resources in the zone or no +// resources, +// with an error code. func (c *AcceleratorTypesAggregatedListCall) ReturnPartialSuccess(returnPartialSuccess bool) *AcceleratorTypesAggregatedListCall { c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess)) return c } // ServiceProjectNumber sets the optional parameter "serviceProjectNumber": The -// Shared VPC service project id or service project number for which aggregated -// list request is invoked for subnetworks list-usable api. +// Shared VPC service project id or service project number for which +// aggregated list request is invoked for subnetworks list-usable api. func (c *AcceleratorTypesAggregatedListCall) ServiceProjectNumber(serviceProjectNumber int64) *AcceleratorTypesAggregatedListCall { c.urlParams_.Set("serviceProjectNumber", fmt.Sprint(serviceProjectNumber)) return c @@ -171,12 +228,11 @@ func (c *AcceleratorTypesAggregatedListCall) doRequest(alt string) (*http.Respon if c.ifNoneMatch_ != "" { reqHeaders.Set("If-None-Match", c.ifNoneMatch_) } - var body io.Reader = nil c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/aggregated/acceleratorTypes") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("GET", urls, body) + req, err := http.NewRequest("GET", urls, nil) if err != nil { return nil, err } @@ -184,6 +240,7 @@ func (c *AcceleratorTypesAggregatedListCall) doRequest(alt string) (*http.Respon googleapi.Expand(req.URL, map[string]string{ "project": c.project, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.acceleratorTypes.aggregatedList", "request", internallog.HTTPRequest(req, nil)) return gensupport.SendRequest(c.ctx_, c.s.client, req) } @@ -219,9 +276,11 @@ func (c *AcceleratorTypesAggregatedListCall) Do(opts ...googleapi.CallOption) (* }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.acceleratorTypes.aggregatedList", "response", internallog.HTTPResponse(res, b)) return ret, nil } @@ -306,12 +365,11 @@ func (c *AcceleratorTypesGetCall) doRequest(alt string) (*http.Response, error) if c.ifNoneMatch_ != "" { reqHeaders.Set("If-None-Match", c.ifNoneMatch_) } - var body io.Reader = nil c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/acceleratorTypes/{acceleratorType}") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("GET", urls, body) + req, err := http.NewRequest("GET", urls, nil) if err != nil { return nil, err } @@ -321,6 +379,7 @@ func (c *AcceleratorTypesGetCall) doRequest(alt string) (*http.Response, error) "zone": c.zone, "acceleratorType": c.acceleratorType, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.acceleratorTypes.get", "request", internallog.HTTPRequest(req, nil)) return gensupport.SendRequest(c.ctx_, c.s.client, req) } @@ -356,9 +415,11 @@ func (c *AcceleratorTypesGetCall) Do(opts ...googleapi.CallOption) (*Accelerator }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.acceleratorTypes.get", "response", internallog.HTTPResponse(res, b)) return ret, nil } @@ -373,7 +434,8 @@ type AcceleratorTypesListCall struct { } // List: Retrieves a list of accelerator types that are available to the -// specified project. +// specified +// project. // // - project: Project ID for this request. // - zone: The name of the zone for this request. @@ -385,78 +447,128 @@ func (r *AcceleratorTypesService) List(project string, zone string) *Accelerator } // Filter sets the optional parameter "filter": A filter expression that -// filters resources listed in the response. Most Compute resources support two -// types of filter expressions: expressions that support regular expressions -// and expressions that follow API improvement proposal AIP-160. These two -// types of filter expressions cannot be mixed in one request. If you want to -// use AIP-160, your expression must specify the field name, an operator, and -// the value that you want to use for filtering. The value must be a string, a -// number, or a boolean. The 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`. The `:*` comparison can be used to test whether a key has -// been defined. For example, to find all objects with `owner` label use: ``` -// labels.owner:* ``` 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) ``` If you want to use a regular -// expression, use the `eq` (equal) or `ne` (not equal) operator against a -// single un-parenthesized expression with or without quotes or against -// multiple parenthesized expressions. Examples: `fieldname eq unquoted -// literal` `fieldname eq 'single quoted literal'` `fieldname eq "double quoted -// literal" `(fieldname1 eq literal) (fieldname2 ne "literal")` The literal -// value is interpreted as a regular expression using Google RE2 library -// syntax. The literal value must match the entire field. For example, to -// filter for instances that do not end with name "instance", you would use -// `name ne .*instance`. You cannot combine constraints on multiple fields -// using regular expressions. +// filters resources listed in the response. Most +// Compute resources support two types of filter expressions: +// expressions that support regular expressions and expressions that follow +// API improvement proposal AIP-160. +// These two types of filter expressions cannot be mixed in one request. +// +// If you want to use AIP-160, your expression must specify the field name, +// an +// operator, and the value that you want to use for filtering. The value +// must be a string, a number, or a boolean. The 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`. +// +// The `:*` comparison can be used to test whether a key has been defined. +// For example, to find all objects with `owner` label +// use: +// ``` +// labels.owner:* +// ``` +// +// 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 onresource 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) +// ``` +// +// If you want to use a regular expression, use the `eq` (equal) or `ne` +// (not equal) operator against a single un-parenthesized expression with +// or +// without quotes or against multiple parenthesized expressions. +// Examples: +// +// `fieldname eq unquoted literal` +// `fieldname eq 'single quoted literal'` +// `fieldname eq "double quoted literal" +// `(fieldname1 eq literal) (fieldname2 ne "literal")` +// +// The literal value is interpreted as a regular expression using GoogleRE2 +// library syntax. +// The literal value must match the entire field. +// +// For example, to filter for instances that do not end with name +// "instance", +// you would use `name ne .*instance`. +// +// You cannot combine constraints on multiple fields using regular +// expressions. func (c *AcceleratorTypesListCall) Filter(filter string) *AcceleratorTypesListCall { 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`) +// 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 *AcceleratorTypesListCall) MaxResults(maxResults int64) *AcceleratorTypesListCall { 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. +// 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 *AcceleratorTypesListCall) OrderBy(orderBy string) *AcceleratorTypesListCall { 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. +// use. Set `pageToken` to the +// `nextPageToken` returned by a previous list request to get +// the next page of results. func (c *AcceleratorTypesListCall) PageToken(pageToken string) *AcceleratorTypesListCall { c.urlParams_.Set("pageToken", pageToken) return c } // ReturnPartialSuccess sets the optional parameter "returnPartialSuccess": -// Opt-in for partial success behavior which provides partial results in case -// of failure. The default value is false. For example, when partial success -// behavior is enabled, aggregatedList for a single zone scope either returns -// all resources in the zone or no resources, with an error code. +// Opt-in for partial success behavior which provides partial results in +// case +// of failure. The default value is false. +// +// For example, when partial success behavior is enabled, aggregatedList for +// a +// single zone scope either returns all resources in the zone or no +// resources, +// with an error code. func (c *AcceleratorTypesListCall) ReturnPartialSuccess(returnPartialSuccess bool) *AcceleratorTypesListCall { c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess)) return c @@ -498,12 +610,11 @@ func (c *AcceleratorTypesListCall) doRequest(alt string) (*http.Response, error) if c.ifNoneMatch_ != "" { reqHeaders.Set("If-None-Match", c.ifNoneMatch_) } - var body io.Reader = nil c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/acceleratorTypes") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("GET", urls, body) + req, err := http.NewRequest("GET", urls, nil) if err != nil { return nil, err } @@ -512,6 +623,7 @@ func (c *AcceleratorTypesListCall) doRequest(alt string) (*http.Response, error) "project": c.project, "zone": c.zone, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.acceleratorTypes.list", "request", internallog.HTTPRequest(req, nil)) return gensupport.SendRequest(c.ctx_, c.s.client, req) } @@ -547,9 +659,11 @@ func (c *AcceleratorTypesListCall) Do(opts ...googleapi.CallOption) (*Accelerato }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.acceleratorTypes.list", "response", internallog.HTTPResponse(res, b)) return ret, nil } @@ -583,9 +697,11 @@ type AddressesAggregatedListCall struct { header_ http.Header } -// AggregatedList: Retrieves an aggregated list of addresses. To prevent -// failure, Google recommends that you set the `returnPartialSuccess` parameter -// to `true`. +// AggregatedList: Retrieves an aggregated list of addresses. +// +// To prevent failure, it is recommended that you set +// the +// `returnPartialSuccess` parameter to `true`. // // - project: Project ID for this request. func (r *AddressesService) AggregatedList(project string) *AddressesAggregatedListCall { @@ -595,99 +711,154 @@ func (r *AddressesService) AggregatedList(project string) *AddressesAggregatedLi } // Filter sets the optional parameter "filter": A filter expression that -// filters resources listed in the response. Most Compute resources support two -// types of filter expressions: expressions that support regular expressions -// and expressions that follow API improvement proposal AIP-160. These two -// types of filter expressions cannot be mixed in one request. If you want to -// use AIP-160, your expression must specify the field name, an operator, and -// the value that you want to use for filtering. The value must be a string, a -// number, or a boolean. The 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`. The `:*` comparison can be used to test whether a key has -// been defined. For example, to find all objects with `owner` label use: ``` -// labels.owner:* ``` 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) ``` If you want to use a regular -// expression, use the `eq` (equal) or `ne` (not equal) operator against a -// single un-parenthesized expression with or without quotes or against -// multiple parenthesized expressions. Examples: `fieldname eq unquoted -// literal` `fieldname eq 'single quoted literal'` `fieldname eq "double quoted -// literal" `(fieldname1 eq literal) (fieldname2 ne "literal")` The literal -// value is interpreted as a regular expression using Google RE2 library -// syntax. The literal value must match the entire field. For example, to -// filter for instances that do not end with name "instance", you would use -// `name ne .*instance`. You cannot combine constraints on multiple fields -// using regular expressions. +// filters resources listed in the response. Most +// Compute resources support two types of filter expressions: +// expressions that support regular expressions and expressions that follow +// API improvement proposal AIP-160. +// These two types of filter expressions cannot be mixed in one request. +// +// If you want to use AIP-160, your expression must specify the field name, +// an +// operator, and the value that you want to use for filtering. The value +// must be a string, a number, or a boolean. The 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`. +// +// The `:*` comparison can be used to test whether a key has been defined. +// For example, to find all objects with `owner` label +// use: +// ``` +// labels.owner:* +// ``` +// +// 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 onresource 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) +// ``` +// +// If you want to use a regular expression, use the `eq` (equal) or `ne` +// (not equal) operator against a single un-parenthesized expression with +// or +// without quotes or against multiple parenthesized expressions. +// Examples: +// +// `fieldname eq unquoted literal` +// `fieldname eq 'single quoted literal'` +// `fieldname eq "double quoted literal" +// `(fieldname1 eq literal) (fieldname2 ne "literal")` +// +// The literal value is interpreted as a regular expression using GoogleRE2 +// library syntax. +// The literal value must match the entire field. +// +// For example, to filter for instances that do not end with name +// "instance", +// you would use `name ne .*instance`. +// +// You cannot combine constraints on multiple fields using regular +// expressions. func (c *AddressesAggregatedListCall) Filter(filter string) *AddressesAggregatedListCall { c.urlParams_.Set("filter", filter) return c } // IncludeAllScopes sets the optional parameter "includeAllScopes": Indicates -// whether every visible scope for each scope type (zone, region, global) -// should be included in the response. For new resource types added after this -// field, the flag has no effect as new resource types will always include -// every visible scope for each scope type in response. For resource types -// which predate this field, if this flag is omitted or false, only scopes of -// the scope types where the resource type is expected to be found will be -// included. +// whether every visible scope for each scope type (zone, region, +// global) should be included in the response. For new resource types +// added +// after this field, the flag has no effect as new resource types will +// always +// include every visible scope for each scope type in response. For +// resource +// types which predate this field, if this flag is omitted or false, +// only +// scopes of the scope types where the resource type is expected to be +// found +// will be included. func (c *AddressesAggregatedListCall) IncludeAllScopes(includeAllScopes bool) *AddressesAggregatedListCall { c.urlParams_.Set("includeAllScopes", fmt.Sprint(includeAllScopes)) 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`) +// 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 *AddressesAggregatedListCall) MaxResults(maxResults int64) *AddressesAggregatedListCall { 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. +// 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 *AddressesAggregatedListCall) OrderBy(orderBy string) *AddressesAggregatedListCall { 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. +// use. Set `pageToken` to the +// `nextPageToken` returned by a previous list request to get +// the next page of results. func (c *AddressesAggregatedListCall) PageToken(pageToken string) *AddressesAggregatedListCall { c.urlParams_.Set("pageToken", pageToken) return c } // ReturnPartialSuccess sets the optional parameter "returnPartialSuccess": -// Opt-in for partial success behavior which provides partial results in case -// of failure. The default value is false. For example, when partial success -// behavior is enabled, aggregatedList for a single zone scope either returns -// all resources in the zone or no resources, with an error code. +// Opt-in for partial success behavior which provides partial results in +// case +// of failure. The default value is false. +// +// For example, when partial success behavior is enabled, aggregatedList for +// a +// single zone scope either returns all resources in the zone or no +// resources, +// with an error code. func (c *AddressesAggregatedListCall) ReturnPartialSuccess(returnPartialSuccess bool) *AddressesAggregatedListCall { c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess)) return c } // ServiceProjectNumber sets the optional parameter "serviceProjectNumber": The -// Shared VPC service project id or service project number for which aggregated -// list request is invoked for subnetworks list-usable api. +// Shared VPC service project id or service project number for which +// aggregated list request is invoked for subnetworks list-usable api. func (c *AddressesAggregatedListCall) ServiceProjectNumber(serviceProjectNumber int64) *AddressesAggregatedListCall { c.urlParams_.Set("serviceProjectNumber", fmt.Sprint(serviceProjectNumber)) return c @@ -729,12 +900,11 @@ func (c *AddressesAggregatedListCall) doRequest(alt string) (*http.Response, err if c.ifNoneMatch_ != "" { reqHeaders.Set("If-None-Match", c.ifNoneMatch_) } - var body io.Reader = nil c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/aggregated/addresses") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("GET", urls, body) + req, err := http.NewRequest("GET", urls, nil) if err != nil { return nil, err } @@ -742,6 +912,7 @@ func (c *AddressesAggregatedListCall) doRequest(alt string) (*http.Response, err googleapi.Expand(req.URL, map[string]string{ "project": c.project, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.addresses.aggregatedList", "request", internallog.HTTPRequest(req, nil)) return gensupport.SendRequest(c.ctx_, c.s.client, req) } @@ -777,9 +948,11 @@ func (c *AddressesAggregatedListCall) Do(opts ...googleapi.CallOption) (*Address }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.addresses.aggregatedList", "response", internallog.HTTPResponse(res, b)) return ret, nil } @@ -828,15 +1001,22 @@ func (r *AddressesService) Delete(project string, region string, address string) } // 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). +// 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 *AddressesDeleteCall) RequestId(requestId string) *AddressesDeleteCall { c.urlParams_.Set("requestId", requestId) return c @@ -867,12 +1047,11 @@ func (c *AddressesDeleteCall) Header() http.Header { func (c *AddressesDeleteCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) - var body io.Reader = nil c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/addresses/{address}") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("DELETE", urls, body) + req, err := http.NewRequest("DELETE", urls, nil) if err != nil { return nil, err } @@ -882,6 +1061,7 @@ func (c *AddressesDeleteCall) doRequest(alt string) (*http.Response, error) { "region": c.region, "address": c.address, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.addresses.delete", "request", internallog.HTTPRequest(req, nil)) return gensupport.SendRequest(c.ctx_, c.s.client, req) } @@ -916,9 +1096,11 @@ func (c *AddressesDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, erro }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.addresses.delete", "response", internallog.HTTPResponse(res, b)) return ret, nil } @@ -982,12 +1164,11 @@ func (c *AddressesGetCall) doRequest(alt string) (*http.Response, error) { if c.ifNoneMatch_ != "" { reqHeaders.Set("If-None-Match", c.ifNoneMatch_) } - var body io.Reader = nil c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/addresses/{address}") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("GET", urls, body) + req, err := http.NewRequest("GET", urls, nil) if err != nil { return nil, err } @@ -997,6 +1178,7 @@ func (c *AddressesGetCall) doRequest(alt string) (*http.Response, error) { "region": c.region, "address": c.address, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.addresses.get", "request", internallog.HTTPRequest(req, nil)) return gensupport.SendRequest(c.ctx_, c.s.client, req) } @@ -1031,9 +1213,11 @@ func (c *AddressesGetCall) Do(opts ...googleapi.CallOption) (*Address, error) { }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.addresses.get", "response", internallog.HTTPResponse(res, b)) return ret, nil } @@ -1048,7 +1232,8 @@ type AddressesInsertCall struct { } // Insert: Creates an address resource in the specified project by using the -// data included in the request. +// data +// included in the request. // // - project: Project ID for this request. // - region: Name of the region for this request. @@ -1061,15 +1246,22 @@ func (r *AddressesService) Insert(project string, region string, address *Addres } // 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). +// 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 *AddressesInsertCall) RequestId(requestId string) *AddressesInsertCall { c.urlParams_.Set("requestId", requestId) return c @@ -1100,8 +1292,7 @@ func (c *AddressesInsertCall) Header() http.Header { func (c *AddressesInsertCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) - var body io.Reader = nil - body, err := googleapi.WithoutDataWrapper.JSONReader(c.address) + body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.address) if err != nil { return nil, err } @@ -1118,6 +1309,7 @@ func (c *AddressesInsertCall) doRequest(alt string) (*http.Response, error) { "project": c.project, "region": c.region, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.addresses.insert", "request", internallog.HTTPRequest(req, body.Bytes())) return gensupport.SendRequest(c.ctx_, c.s.client, req) } @@ -1152,9 +1344,11 @@ func (c *AddressesInsertCall) Do(opts ...googleapi.CallOption) (*Operation, erro }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.addresses.insert", "response", internallog.HTTPResponse(res, b)) return ret, nil } @@ -1168,7 +1362,8 @@ type AddressesListCall struct { header_ http.Header } -// List: Retrieves a list of addresses contained within the specified region. +// List: Retrieves a list of addresses contained within +// the specified region. // // - project: Project ID for this request. // - region: Name of the region for this request. @@ -1180,78 +1375,128 @@ func (r *AddressesService) List(project string, region string) *AddressesListCal } // Filter sets the optional parameter "filter": A filter expression that -// filters resources listed in the response. Most Compute resources support two -// types of filter expressions: expressions that support regular expressions -// and expressions that follow API improvement proposal AIP-160. These two -// types of filter expressions cannot be mixed in one request. If you want to -// use AIP-160, your expression must specify the field name, an operator, and -// the value that you want to use for filtering. The value must be a string, a -// number, or a boolean. The 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`. The `:*` comparison can be used to test whether a key has -// been defined. For example, to find all objects with `owner` label use: ``` -// labels.owner:* ``` 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) ``` If you want to use a regular -// expression, use the `eq` (equal) or `ne` (not equal) operator against a -// single un-parenthesized expression with or without quotes or against -// multiple parenthesized expressions. Examples: `fieldname eq unquoted -// literal` `fieldname eq 'single quoted literal'` `fieldname eq "double quoted -// literal" `(fieldname1 eq literal) (fieldname2 ne "literal")` The literal -// value is interpreted as a regular expression using Google RE2 library -// syntax. The literal value must match the entire field. For example, to -// filter for instances that do not end with name "instance", you would use -// `name ne .*instance`. You cannot combine constraints on multiple fields -// using regular expressions. +// filters resources listed in the response. Most +// Compute resources support two types of filter expressions: +// expressions that support regular expressions and expressions that follow +// API improvement proposal AIP-160. +// These two types of filter expressions cannot be mixed in one request. +// +// If you want to use AIP-160, your expression must specify the field name, +// an +// operator, and the value that you want to use for filtering. The value +// must be a string, a number, or a boolean. The 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`. +// +// The `:*` comparison can be used to test whether a key has been defined. +// For example, to find all objects with `owner` label +// use: +// ``` +// labels.owner:* +// ``` +// +// 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 onresource 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) +// ``` +// +// If you want to use a regular expression, use the `eq` (equal) or `ne` +// (not equal) operator against a single un-parenthesized expression with +// or +// without quotes or against multiple parenthesized expressions. +// Examples: +// +// `fieldname eq unquoted literal` +// `fieldname eq 'single quoted literal'` +// `fieldname eq "double quoted literal" +// `(fieldname1 eq literal) (fieldname2 ne "literal")` +// +// The literal value is interpreted as a regular expression using GoogleRE2 +// library syntax. +// The literal value must match the entire field. +// +// For example, to filter for instances that do not end with name +// "instance", +// you would use `name ne .*instance`. +// +// You cannot combine constraints on multiple fields using regular +// expressions. func (c *AddressesListCall) Filter(filter string) *AddressesListCall { 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`) +// 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 *AddressesListCall) MaxResults(maxResults int64) *AddressesListCall { 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. +// 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 *AddressesListCall) OrderBy(orderBy string) *AddressesListCall { 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. +// use. Set `pageToken` to the +// `nextPageToken` returned by a previous list request to get +// the next page of results. func (c *AddressesListCall) PageToken(pageToken string) *AddressesListCall { c.urlParams_.Set("pageToken", pageToken) return c } // ReturnPartialSuccess sets the optional parameter "returnPartialSuccess": -// Opt-in for partial success behavior which provides partial results in case -// of failure. The default value is false. For example, when partial success -// behavior is enabled, aggregatedList for a single zone scope either returns -// all resources in the zone or no resources, with an error code. +// Opt-in for partial success behavior which provides partial results in +// case +// of failure. The default value is false. +// +// For example, when partial success behavior is enabled, aggregatedList for +// a +// single zone scope either returns all resources in the zone or no +// resources, +// with an error code. func (c *AddressesListCall) ReturnPartialSuccess(returnPartialSuccess bool) *AddressesListCall { c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess)) return c @@ -1293,12 +1538,11 @@ func (c *AddressesListCall) doRequest(alt string) (*http.Response, error) { if c.ifNoneMatch_ != "" { reqHeaders.Set("If-None-Match", c.ifNoneMatch_) } - var body io.Reader = nil c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/addresses") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("GET", urls, body) + req, err := http.NewRequest("GET", urls, nil) if err != nil { return nil, err } @@ -1307,6 +1551,7 @@ func (c *AddressesListCall) doRequest(alt string) (*http.Response, error) { "project": c.project, "region": c.region, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.addresses.list", "request", internallog.HTTPRequest(req, nil)) return gensupport.SendRequest(c.ctx_, c.s.client, req) } @@ -1341,9 +1586,11 @@ func (c *AddressesListCall) Do(opts ...googleapi.CallOption) (*AddressList, erro }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.addresses.list", "response", internallog.HTTPResponse(res, b)) return ret, nil } @@ -1394,15 +1641,22 @@ func (r *AddressesService) Move(project string, region string, address string, r } // 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). +// 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 *AddressesMoveCall) RequestId(requestId string) *AddressesMoveCall { c.urlParams_.Set("requestId", requestId) return c @@ -1433,8 +1687,7 @@ func (c *AddressesMoveCall) Header() http.Header { func (c *AddressesMoveCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) - var body io.Reader = nil - body, err := googleapi.WithoutDataWrapper.JSONReader(c.regionaddressesmoverequest) + body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.regionaddressesmoverequest) if err != nil { return nil, err } @@ -1452,6 +1705,7 @@ func (c *AddressesMoveCall) doRequest(alt string) (*http.Response, error) { "region": c.region, "address": c.address, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.addresses.move", "request", internallog.HTTPRequest(req, body.Bytes())) return gensupport.SendRequest(c.ctx_, c.s.client, req) } @@ -1486,9 +1740,11 @@ func (c *AddressesMoveCall) Do(opts ...googleapi.CallOption) (*Operation, error) }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.addresses.move", "response", internallog.HTTPResponse(res, b)) return ret, nil } @@ -1504,7 +1760,8 @@ type AddressesSetLabelsCall struct { } // SetLabels: Sets the labels on an Address. To learn more about labels, read -// the Labeling Resources documentation. +// theLabeling +// Resources documentation. // // - project: Project ID for this request. // - region: The region for this request. @@ -1519,15 +1776,22 @@ func (r *AddressesService) SetLabels(project string, region string, resource str } // 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). +// 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 *AddressesSetLabelsCall) RequestId(requestId string) *AddressesSetLabelsCall { c.urlParams_.Set("requestId", requestId) return c @@ -1558,8 +1822,7 @@ func (c *AddressesSetLabelsCall) Header() http.Header { func (c *AddressesSetLabelsCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) - var body io.Reader = nil - body, err := googleapi.WithoutDataWrapper.JSONReader(c.regionsetlabelsrequest) + body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.regionsetlabelsrequest) if err != nil { return nil, err } @@ -1577,6 +1840,7 @@ func (c *AddressesSetLabelsCall) doRequest(alt string) (*http.Response, error) { "region": c.region, "resource": c.resource, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.addresses.setLabels", "request", internallog.HTTPRequest(req, body.Bytes())) return gensupport.SendRequest(c.ctx_, c.s.client, req) } @@ -1611,9 +1875,238 @@ func (c *AddressesSetLabelsCall) Do(opts ...googleapi.CallOption) (*Operation, e }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.addresses.setLabels", "response", internallog.HTTPResponse(res, b)) + return ret, nil +} + +type AddressesTestIamPermissionsCall struct { + s *Service + project string + region string + resource string + testpermissionsrequest *TestPermissionsRequest + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header +} + +// TestIamPermissions: Returns permissions that a caller has on the specified +// resource. +// +// - project: Project ID for this request. +// - region: The name of the region for this request. +// - resource: Name or id of the resource for this request. +func (r *AddressesService) TestIamPermissions(project string, region string, resource string, testpermissionsrequest *TestPermissionsRequest) *AddressesTestIamPermissionsCall { + c := &AddressesTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)} + c.project = project + c.region = region + c.resource = resource + c.testpermissionsrequest = testpermissionsrequest + return c +} + +// Fields allows partial responses to be retrieved. See +// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more +// details. +func (c *AddressesTestIamPermissionsCall) Fields(s ...googleapi.Field) *AddressesTestIamPermissionsCall { + c.urlParams_.Set("fields", googleapi.CombineFields(s)) + return c +} + +// Context sets the context to be used in this call's Do method. +func (c *AddressesTestIamPermissionsCall) Context(ctx context.Context) *AddressesTestIamPermissionsCall { + c.ctx_ = ctx + return c +} + +// Header returns a http.Header that can be modified by the caller to add +// headers to the request. +func (c *AddressesTestIamPermissionsCall) Header() http.Header { + if c.header_ == nil { + c.header_ = make(http.Header) + } + return c.header_ +} + +func (c *AddressesTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) + body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.testpermissionsrequest) + if err != nil { + return nil, err + } + c.urlParams_.Set("alt", alt) + c.urlParams_.Set("prettyPrint", "false") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/addresses/{resource}/testIamPermissions") + urls += "?" + c.urlParams_.Encode() + req, err := http.NewRequest("POST", urls, body) + if err != nil { + return nil, err + } + req.Header = reqHeaders + googleapi.Expand(req.URL, map[string]string{ + "project": c.project, + "region": c.region, + "resource": c.resource, + }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.addresses.testIamPermissions", "request", internallog.HTTPRequest(req, body.Bytes())) + return gensupport.SendRequest(c.ctx_, c.s.client, req) +} + +// Do executes the "compute.addresses.testIamPermissions" call. +// Any non-2xx status code is an error. Response headers are in either +// *TestPermissionsResponse.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 *AddressesTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, 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, gensupport.WrapError(&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, gensupport.WrapError(err) + } + ret := &TestPermissionsResponse{ + ServerResponse: googleapi.ServerResponse{ + Header: res.Header, + HTTPStatusCode: res.StatusCode, + }, + } + target := &ret + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { + return nil, err + } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.addresses.testIamPermissions", "response", internallog.HTTPResponse(res, b)) + return ret, nil +} + +type AdviceCalendarModeCall struct { + s *Service + project string + region string + calendarmodeadvicerequest *CalendarModeAdviceRequest + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header +} + +// CalendarMode: Advise how, where and when to create the requested amount of +// instances +// with specified accelerators, within the specified time and location +// limits. +// The method recommends creating future reservations for the +// requested +// resources. +// +// - project: Project ID for this request. +// - region: Name of the region for this request. +func (r *AdviceService) CalendarMode(project string, region string, calendarmodeadvicerequest *CalendarModeAdviceRequest) *AdviceCalendarModeCall { + c := &AdviceCalendarModeCall{s: r.s, urlParams_: make(gensupport.URLParams)} + c.project = project + c.region = region + c.calendarmodeadvicerequest = calendarmodeadvicerequest + return c +} + +// Fields allows partial responses to be retrieved. See +// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more +// details. +func (c *AdviceCalendarModeCall) Fields(s ...googleapi.Field) *AdviceCalendarModeCall { + c.urlParams_.Set("fields", googleapi.CombineFields(s)) + return c +} + +// Context sets the context to be used in this call's Do method. +func (c *AdviceCalendarModeCall) Context(ctx context.Context) *AdviceCalendarModeCall { + c.ctx_ = ctx + return c +} + +// Header returns a http.Header that can be modified by the caller to add +// headers to the request. +func (c *AdviceCalendarModeCall) Header() http.Header { + if c.header_ == nil { + c.header_ = make(http.Header) + } + return c.header_ +} + +func (c *AdviceCalendarModeCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) + body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.calendarmodeadvicerequest) + if err != nil { + return nil, err + } + c.urlParams_.Set("alt", alt) + c.urlParams_.Set("prettyPrint", "false") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/advice/calendarMode") + urls += "?" + c.urlParams_.Encode() + req, err := http.NewRequest("POST", urls, body) + if err != nil { + return nil, err + } + req.Header = reqHeaders + googleapi.Expand(req.URL, map[string]string{ + "project": c.project, + "region": c.region, + }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.advice.calendarMode", "request", internallog.HTTPRequest(req, body.Bytes())) + return gensupport.SendRequest(c.ctx_, c.s.client, req) +} + +// Do executes the "compute.advice.calendarMode" call. +// Any non-2xx status code is an error. Response headers are in either +// *CalendarModeAdviceResponse.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 *AdviceCalendarModeCall) Do(opts ...googleapi.CallOption) (*CalendarModeAdviceResponse, 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, gensupport.WrapError(&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, gensupport.WrapError(err) + } + ret := &CalendarModeAdviceResponse{ + ServerResponse: googleapi.ServerResponse{ + Header: res.Header, + HTTPStatusCode: res.StatusCode, + }, + } + target := &ret + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { + return nil, err + } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.advice.calendarMode", "response", internallog.HTTPResponse(res, b)) return ret, nil } @@ -1626,9 +2119,11 @@ type AutoscalersAggregatedListCall struct { header_ http.Header } -// AggregatedList: Retrieves an aggregated list of autoscalers. To prevent -// failure, Google recommends that you set the `returnPartialSuccess` parameter -// to `true`. +// AggregatedList: Retrieves an aggregated list of autoscalers. +// +// To prevent failure, it is recommended that you set +// the +// `returnPartialSuccess` parameter to `true`. // // - project: Project ID for this request. func (r *AutoscalersService) AggregatedList(project string) *AutoscalersAggregatedListCall { @@ -1638,99 +2133,154 @@ func (r *AutoscalersService) AggregatedList(project string) *AutoscalersAggregat } // Filter sets the optional parameter "filter": A filter expression that -// filters resources listed in the response. Most Compute resources support two -// types of filter expressions: expressions that support regular expressions -// and expressions that follow API improvement proposal AIP-160. These two -// types of filter expressions cannot be mixed in one request. If you want to -// use AIP-160, your expression must specify the field name, an operator, and -// the value that you want to use for filtering. The value must be a string, a -// number, or a boolean. The 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`. The `:*` comparison can be used to test whether a key has -// been defined. For example, to find all objects with `owner` label use: ``` -// labels.owner:* ``` 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) ``` If you want to use a regular -// expression, use the `eq` (equal) or `ne` (not equal) operator against a -// single un-parenthesized expression with or without quotes or against -// multiple parenthesized expressions. Examples: `fieldname eq unquoted -// literal` `fieldname eq 'single quoted literal'` `fieldname eq "double quoted -// literal" `(fieldname1 eq literal) (fieldname2 ne "literal")` The literal -// value is interpreted as a regular expression using Google RE2 library -// syntax. The literal value must match the entire field. For example, to -// filter for instances that do not end with name "instance", you would use -// `name ne .*instance`. You cannot combine constraints on multiple fields -// using regular expressions. +// filters resources listed in the response. Most +// Compute resources support two types of filter expressions: +// expressions that support regular expressions and expressions that follow +// API improvement proposal AIP-160. +// These two types of filter expressions cannot be mixed in one request. +// +// If you want to use AIP-160, your expression must specify the field name, +// an +// operator, and the value that you want to use for filtering. The value +// must be a string, a number, or a boolean. The 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`. +// +// The `:*` comparison can be used to test whether a key has been defined. +// For example, to find all objects with `owner` label +// use: +// ``` +// labels.owner:* +// ``` +// +// 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 onresource 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) +// ``` +// +// If you want to use a regular expression, use the `eq` (equal) or `ne` +// (not equal) operator against a single un-parenthesized expression with +// or +// without quotes or against multiple parenthesized expressions. +// Examples: +// +// `fieldname eq unquoted literal` +// `fieldname eq 'single quoted literal'` +// `fieldname eq "double quoted literal" +// `(fieldname1 eq literal) (fieldname2 ne "literal")` +// +// The literal value is interpreted as a regular expression using GoogleRE2 +// library syntax. +// The literal value must match the entire field. +// +// For example, to filter for instances that do not end with name +// "instance", +// you would use `name ne .*instance`. +// +// You cannot combine constraints on multiple fields using regular +// expressions. func (c *AutoscalersAggregatedListCall) Filter(filter string) *AutoscalersAggregatedListCall { c.urlParams_.Set("filter", filter) return c } // IncludeAllScopes sets the optional parameter "includeAllScopes": Indicates -// whether every visible scope for each scope type (zone, region, global) -// should be included in the response. For new resource types added after this -// field, the flag has no effect as new resource types will always include -// every visible scope for each scope type in response. For resource types -// which predate this field, if this flag is omitted or false, only scopes of -// the scope types where the resource type is expected to be found will be -// included. +// whether every visible scope for each scope type (zone, region, +// global) should be included in the response. For new resource types +// added +// after this field, the flag has no effect as new resource types will +// always +// include every visible scope for each scope type in response. For +// resource +// types which predate this field, if this flag is omitted or false, +// only +// scopes of the scope types where the resource type is expected to be +// found +// will be included. func (c *AutoscalersAggregatedListCall) IncludeAllScopes(includeAllScopes bool) *AutoscalersAggregatedListCall { c.urlParams_.Set("includeAllScopes", fmt.Sprint(includeAllScopes)) 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`) +// 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 *AutoscalersAggregatedListCall) MaxResults(maxResults int64) *AutoscalersAggregatedListCall { 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. +// 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 *AutoscalersAggregatedListCall) OrderBy(orderBy string) *AutoscalersAggregatedListCall { 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. +// use. Set `pageToken` to the +// `nextPageToken` returned by a previous list request to get +// the next page of results. func (c *AutoscalersAggregatedListCall) PageToken(pageToken string) *AutoscalersAggregatedListCall { c.urlParams_.Set("pageToken", pageToken) return c } // ReturnPartialSuccess sets the optional parameter "returnPartialSuccess": -// Opt-in for partial success behavior which provides partial results in case -// of failure. The default value is false. For example, when partial success -// behavior is enabled, aggregatedList for a single zone scope either returns -// all resources in the zone or no resources, with an error code. +// Opt-in for partial success behavior which provides partial results in +// case +// of failure. The default value is false. +// +// For example, when partial success behavior is enabled, aggregatedList for +// a +// single zone scope either returns all resources in the zone or no +// resources, +// with an error code. func (c *AutoscalersAggregatedListCall) ReturnPartialSuccess(returnPartialSuccess bool) *AutoscalersAggregatedListCall { c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess)) return c } // ServiceProjectNumber sets the optional parameter "serviceProjectNumber": The -// Shared VPC service project id or service project number for which aggregated -// list request is invoked for subnetworks list-usable api. +// Shared VPC service project id or service project number for which +// aggregated list request is invoked for subnetworks list-usable api. func (c *AutoscalersAggregatedListCall) ServiceProjectNumber(serviceProjectNumber int64) *AutoscalersAggregatedListCall { c.urlParams_.Set("serviceProjectNumber", fmt.Sprint(serviceProjectNumber)) return c @@ -1772,12 +2322,11 @@ func (c *AutoscalersAggregatedListCall) doRequest(alt string) (*http.Response, e if c.ifNoneMatch_ != "" { reqHeaders.Set("If-None-Match", c.ifNoneMatch_) } - var body io.Reader = nil c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/aggregated/autoscalers") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("GET", urls, body) + req, err := http.NewRequest("GET", urls, nil) if err != nil { return nil, err } @@ -1785,6 +2334,7 @@ func (c *AutoscalersAggregatedListCall) doRequest(alt string) (*http.Response, e googleapi.Expand(req.URL, map[string]string{ "project": c.project, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.autoscalers.aggregatedList", "request", internallog.HTTPRequest(req, nil)) return gensupport.SendRequest(c.ctx_, c.s.client, req) } @@ -1820,9 +2370,11 @@ func (c *AutoscalersAggregatedListCall) Do(opts ...googleapi.CallOption) (*Autos }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.autoscalers.aggregatedList", "response", internallog.HTTPResponse(res, b)) return ret, nil } @@ -1871,15 +2423,22 @@ func (r *AutoscalersService) Delete(project string, zone string, autoscaler stri } // 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). +// 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 *AutoscalersDeleteCall) RequestId(requestId string) *AutoscalersDeleteCall { c.urlParams_.Set("requestId", requestId) return c @@ -1910,12 +2469,11 @@ func (c *AutoscalersDeleteCall) Header() http.Header { func (c *AutoscalersDeleteCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) - var body io.Reader = nil c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/autoscalers/{autoscaler}") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("DELETE", urls, body) + req, err := http.NewRequest("DELETE", urls, nil) if err != nil { return nil, err } @@ -1925,6 +2483,7 @@ func (c *AutoscalersDeleteCall) doRequest(alt string) (*http.Response, error) { "zone": c.zone, "autoscaler": c.autoscaler, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.autoscalers.delete", "request", internallog.HTTPRequest(req, nil)) return gensupport.SendRequest(c.ctx_, c.s.client, req) } @@ -1959,9 +2518,11 @@ func (c *AutoscalersDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, er }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.autoscalers.delete", "response", internallog.HTTPResponse(res, b)) return ret, nil } @@ -2025,12 +2586,11 @@ func (c *AutoscalersGetCall) doRequest(alt string) (*http.Response, error) { if c.ifNoneMatch_ != "" { reqHeaders.Set("If-None-Match", c.ifNoneMatch_) } - var body io.Reader = nil c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/autoscalers/{autoscaler}") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("GET", urls, body) + req, err := http.NewRequest("GET", urls, nil) if err != nil { return nil, err } @@ -2040,6 +2600,7 @@ func (c *AutoscalersGetCall) doRequest(alt string) (*http.Response, error) { "zone": c.zone, "autoscaler": c.autoscaler, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.autoscalers.get", "request", internallog.HTTPRequest(req, nil)) return gensupport.SendRequest(c.ctx_, c.s.client, req) } @@ -2074,9 +2635,11 @@ func (c *AutoscalersGetCall) Do(opts ...googleapi.CallOption) (*Autoscaler, erro }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.autoscalers.get", "response", internallog.HTTPResponse(res, b)) return ret, nil } @@ -2090,7 +2653,8 @@ type AutoscalersInsertCall struct { header_ http.Header } -// Insert: Creates an autoscaler in the specified project using the data +// Insert: Creates an autoscaler in the specified project using the +// data // included in the request. // // - project: Project ID for this request. @@ -2104,15 +2668,22 @@ func (r *AutoscalersService) Insert(project string, zone string, autoscaler *Aut } // 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). +// 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 *AutoscalersInsertCall) RequestId(requestId string) *AutoscalersInsertCall { c.urlParams_.Set("requestId", requestId) return c @@ -2143,8 +2714,7 @@ func (c *AutoscalersInsertCall) Header() http.Header { func (c *AutoscalersInsertCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) - var body io.Reader = nil - body, err := googleapi.WithoutDataWrapper.JSONReader(c.autoscaler) + body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.autoscaler) if err != nil { return nil, err } @@ -2161,6 +2731,7 @@ func (c *AutoscalersInsertCall) doRequest(alt string) (*http.Response, error) { "project": c.project, "zone": c.zone, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.autoscalers.insert", "request", internallog.HTTPRequest(req, body.Bytes())) return gensupport.SendRequest(c.ctx_, c.s.client, req) } @@ -2195,9 +2766,11 @@ func (c *AutoscalersInsertCall) Do(opts ...googleapi.CallOption) (*Operation, er }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.autoscalers.insert", "response", internallog.HTTPResponse(res, b)) return ret, nil } @@ -2211,7 +2784,8 @@ type AutoscalersListCall struct { header_ http.Header } -// List: Retrieves a list of autoscalers contained within the specified zone. +// List: Retrieves a list of autoscalers contained within +// the specified zone. // // - project: Project ID for this request. // - zone: Name of the zone for this request. @@ -2223,78 +2797,128 @@ func (r *AutoscalersService) List(project string, zone string) *AutoscalersListC } // Filter sets the optional parameter "filter": A filter expression that -// filters resources listed in the response. Most Compute resources support two -// types of filter expressions: expressions that support regular expressions -// and expressions that follow API improvement proposal AIP-160. These two -// types of filter expressions cannot be mixed in one request. If you want to -// use AIP-160, your expression must specify the field name, an operator, and -// the value that you want to use for filtering. The value must be a string, a -// number, or a boolean. The 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`. The `:*` comparison can be used to test whether a key has -// been defined. For example, to find all objects with `owner` label use: ``` -// labels.owner:* ``` 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) ``` If you want to use a regular -// expression, use the `eq` (equal) or `ne` (not equal) operator against a -// single un-parenthesized expression with or without quotes or against -// multiple parenthesized expressions. Examples: `fieldname eq unquoted -// literal` `fieldname eq 'single quoted literal'` `fieldname eq "double quoted -// literal" `(fieldname1 eq literal) (fieldname2 ne "literal")` The literal -// value is interpreted as a regular expression using Google RE2 library -// syntax. The literal value must match the entire field. For example, to -// filter for instances that do not end with name "instance", you would use -// `name ne .*instance`. You cannot combine constraints on multiple fields -// using regular expressions. +// filters resources listed in the response. Most +// Compute resources support two types of filter expressions: +// expressions that support regular expressions and expressions that follow +// API improvement proposal AIP-160. +// These two types of filter expressions cannot be mixed in one request. +// +// If you want to use AIP-160, your expression must specify the field name, +// an +// operator, and the value that you want to use for filtering. The value +// must be a string, a number, or a boolean. The 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`. +// +// The `:*` comparison can be used to test whether a key has been defined. +// For example, to find all objects with `owner` label +// use: +// ``` +// labels.owner:* +// ``` +// +// 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 onresource 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) +// ``` +// +// If you want to use a regular expression, use the `eq` (equal) or `ne` +// (not equal) operator against a single un-parenthesized expression with +// or +// without quotes or against multiple parenthesized expressions. +// Examples: +// +// `fieldname eq unquoted literal` +// `fieldname eq 'single quoted literal'` +// `fieldname eq "double quoted literal" +// `(fieldname1 eq literal) (fieldname2 ne "literal")` +// +// The literal value is interpreted as a regular expression using GoogleRE2 +// library syntax. +// The literal value must match the entire field. +// +// For example, to filter for instances that do not end with name +// "instance", +// you would use `name ne .*instance`. +// +// You cannot combine constraints on multiple fields using regular +// expressions. func (c *AutoscalersListCall) Filter(filter string) *AutoscalersListCall { 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`) +// 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 *AutoscalersListCall) MaxResults(maxResults int64) *AutoscalersListCall { 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. +// 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 *AutoscalersListCall) OrderBy(orderBy string) *AutoscalersListCall { 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. +// use. Set `pageToken` to the +// `nextPageToken` returned by a previous list request to get +// the next page of results. func (c *AutoscalersListCall) PageToken(pageToken string) *AutoscalersListCall { c.urlParams_.Set("pageToken", pageToken) return c } // ReturnPartialSuccess sets the optional parameter "returnPartialSuccess": -// Opt-in for partial success behavior which provides partial results in case -// of failure. The default value is false. For example, when partial success -// behavior is enabled, aggregatedList for a single zone scope either returns -// all resources in the zone or no resources, with an error code. +// Opt-in for partial success behavior which provides partial results in +// case +// of failure. The default value is false. +// +// For example, when partial success behavior is enabled, aggregatedList for +// a +// single zone scope either returns all resources in the zone or no +// resources, +// with an error code. func (c *AutoscalersListCall) ReturnPartialSuccess(returnPartialSuccess bool) *AutoscalersListCall { c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess)) return c @@ -2336,12 +2960,11 @@ func (c *AutoscalersListCall) doRequest(alt string) (*http.Response, error) { if c.ifNoneMatch_ != "" { reqHeaders.Set("If-None-Match", c.ifNoneMatch_) } - var body io.Reader = nil c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/autoscalers") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("GET", urls, body) + req, err := http.NewRequest("GET", urls, nil) if err != nil { return nil, err } @@ -2350,6 +2973,7 @@ func (c *AutoscalersListCall) doRequest(alt string) (*http.Response, error) { "project": c.project, "zone": c.zone, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.autoscalers.list", "request", internallog.HTTPRequest(req, nil)) return gensupport.SendRequest(c.ctx_, c.s.client, req) } @@ -2384,9 +3008,11 @@ func (c *AutoscalersListCall) Do(opts ...googleapi.CallOption) (*AutoscalerList, }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.autoscalers.list", "response", internallog.HTTPResponse(res, b)) return ret, nil } @@ -2421,9 +3047,11 @@ type AutoscalersPatchCall struct { header_ http.Header } -// Patch: Updates an autoscaler in the specified project using the data -// included in the request. This method supports PATCH semantics and uses the -// JSON merge patch format and processing rules. +// Patch: Updates an autoscaler in the specified project using the +// data +// included in the request. This method supportsPATCH +// semantics and uses theJSON merge +// patch format and processing rules. // // - project: Project ID for this request. // - zone: Name of the zone for this request. @@ -2443,15 +3071,22 @@ func (c *AutoscalersPatchCall) Autoscaler(autoscaler string) *AutoscalersPatchCa } // 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). +// 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 *AutoscalersPatchCall) RequestId(requestId string) *AutoscalersPatchCall { c.urlParams_.Set("requestId", requestId) return c @@ -2482,8 +3117,7 @@ func (c *AutoscalersPatchCall) Header() http.Header { func (c *AutoscalersPatchCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) - var body io.Reader = nil - body, err := googleapi.WithoutDataWrapper.JSONReader(c.autoscaler) + body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.autoscaler) if err != nil { return nil, err } @@ -2500,6 +3134,7 @@ func (c *AutoscalersPatchCall) doRequest(alt string) (*http.Response, error) { "project": c.project, "zone": c.zone, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.autoscalers.patch", "request", internallog.HTTPRequest(req, body.Bytes())) return gensupport.SendRequest(c.ctx_, c.s.client, req) } @@ -2534,9 +3169,124 @@ func (c *AutoscalersPatchCall) Do(opts ...googleapi.CallOption) (*Operation, err }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { + return nil, err + } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.autoscalers.patch", "response", internallog.HTTPResponse(res, b)) + return ret, nil +} + +type AutoscalersTestIamPermissionsCall struct { + s *Service + project string + zone string + resource string + testpermissionsrequest *TestPermissionsRequest + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header +} + +// TestIamPermissions: Returns permissions that a caller has on the specified +// resource. +// +// - project: Project ID for this request. +// - resource: Name or id of the resource for this request. +// - zone: The name of the zone for this request. +func (r *AutoscalersService) TestIamPermissions(project string, zone string, resource string, testpermissionsrequest *TestPermissionsRequest) *AutoscalersTestIamPermissionsCall { + c := &AutoscalersTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)} + c.project = project + c.zone = zone + c.resource = resource + c.testpermissionsrequest = testpermissionsrequest + return c +} + +// Fields allows partial responses to be retrieved. See +// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more +// details. +func (c *AutoscalersTestIamPermissionsCall) Fields(s ...googleapi.Field) *AutoscalersTestIamPermissionsCall { + c.urlParams_.Set("fields", googleapi.CombineFields(s)) + return c +} + +// Context sets the context to be used in this call's Do method. +func (c *AutoscalersTestIamPermissionsCall) Context(ctx context.Context) *AutoscalersTestIamPermissionsCall { + c.ctx_ = ctx + return c +} + +// Header returns a http.Header that can be modified by the caller to add +// headers to the request. +func (c *AutoscalersTestIamPermissionsCall) Header() http.Header { + if c.header_ == nil { + c.header_ = make(http.Header) + } + return c.header_ +} + +func (c *AutoscalersTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) + body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.testpermissionsrequest) + if err != nil { + return nil, err + } + c.urlParams_.Set("alt", alt) + c.urlParams_.Set("prettyPrint", "false") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/autoscalers/{resource}/testIamPermissions") + urls += "?" + c.urlParams_.Encode() + req, err := http.NewRequest("POST", urls, body) + if err != nil { + return nil, err + } + req.Header = reqHeaders + googleapi.Expand(req.URL, map[string]string{ + "project": c.project, + "zone": c.zone, + "resource": c.resource, + }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.autoscalers.testIamPermissions", "request", internallog.HTTPRequest(req, body.Bytes())) + return gensupport.SendRequest(c.ctx_, c.s.client, req) +} + +// Do executes the "compute.autoscalers.testIamPermissions" call. +// Any non-2xx status code is an error. Response headers are in either +// *TestPermissionsResponse.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 *AutoscalersTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, 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, gensupport.WrapError(&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, gensupport.WrapError(err) + } + ret := &TestPermissionsResponse{ + ServerResponse: googleapi.ServerResponse{ + Header: res.Header, + HTTPStatusCode: res.StatusCode, + }, + } + target := &ret + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.autoscalers.testIamPermissions", "response", internallog.HTTPResponse(res, b)) return ret, nil } @@ -2550,7 +3300,8 @@ type AutoscalersUpdateCall struct { header_ http.Header } -// Update: Updates an autoscaler in the specified project using the data +// Update: Updates an autoscaler in the specified project using the +// data // included in the request. // // - project: Project ID for this request. @@ -2571,15 +3322,22 @@ func (c *AutoscalersUpdateCall) Autoscaler(autoscaler string) *AutoscalersUpdate } // 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). +// 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 *AutoscalersUpdateCall) RequestId(requestId string) *AutoscalersUpdateCall { c.urlParams_.Set("requestId", requestId) return c @@ -2610,8 +3368,7 @@ func (c *AutoscalersUpdateCall) Header() http.Header { func (c *AutoscalersUpdateCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) - var body io.Reader = nil - body, err := googleapi.WithoutDataWrapper.JSONReader(c.autoscaler) + body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.autoscaler) if err != nil { return nil, err } @@ -2628,6 +3385,7 @@ func (c *AutoscalersUpdateCall) doRequest(alt string) (*http.Response, error) { "project": c.project, "zone": c.zone, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.autoscalers.update", "request", internallog.HTTPRequest(req, body.Bytes())) return gensupport.SendRequest(c.ctx_, c.s.client, req) } @@ -2662,9 +3420,11 @@ func (c *AutoscalersUpdateCall) Do(opts ...googleapi.CallOption) (*Operation, er }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.autoscalers.update", "response", internallog.HTTPResponse(res, b)) return ret, nil } @@ -2679,11 +3439,14 @@ type BackendBucketsAddSignedUrlKeyCall struct { } // AddSignedUrlKey: Adds a key for validating requests with signed URLs for -// this backend bucket. +// this backend +// bucket. // // - backendBucket: Name of the BackendBucket resource to which the Signed URL -// Key should be added. The name should conform to RFC1035. -// - project: Project ID for this request. +// Key should be +// +// added. The name should conform to RFC1035. +// - project: Project ID for this request. func (r *BackendBucketsService) AddSignedUrlKey(project string, backendBucket string, signedurlkey *SignedUrlKey) *BackendBucketsAddSignedUrlKeyCall { c := &BackendBucketsAddSignedUrlKeyCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project @@ -2693,15 +3456,22 @@ func (r *BackendBucketsService) AddSignedUrlKey(project string, backendBucket st } // 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). +// 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 @@ -2732,8 +3502,7 @@ func (c *BackendBucketsAddSignedUrlKeyCall) Header() http.Header { func (c *BackendBucketsAddSignedUrlKeyCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) - var body io.Reader = nil - body, err := googleapi.WithoutDataWrapper.JSONReader(c.signedurlkey) + body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.signedurlkey) if err != nil { return nil, err } @@ -2750,6 +3519,7 @@ func (c *BackendBucketsAddSignedUrlKeyCall) doRequest(alt string) (*http.Respons "project": c.project, "backendBucket": c.backendBucket, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.backendBuckets.addSignedUrlKey", "request", internallog.HTTPRequest(req, body.Bytes())) return gensupport.SendRequest(c.ctx_, c.s.client, req) } @@ -2784,95 +3554,251 @@ func (c *BackendBucketsAddSignedUrlKeyCall) Do(opts ...googleapi.CallOption) (*O }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.backendBuckets.addSignedUrlKey", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type BackendBucketsDeleteCall struct { - s *Service - project string - backendBucket string - urlParams_ gensupport.URLParams - ctx_ context.Context - header_ http.Header +type BackendBucketsAggregatedListCall struct { + s *Service + project string + urlParams_ gensupport.URLParams + ifNoneMatch_ string + ctx_ context.Context + header_ http.Header } -// Delete: Deletes the specified BackendBucket resource. +// AggregatedList: Retrieves the list of all BackendBucket resources, regional +// and global, +// available to the specified project. // -// - backendBucket: Name of the BackendBucket resource to delete. -// - project: Project ID for this request. -func (r *BackendBucketsService) Delete(project string, backendBucket string) *BackendBucketsDeleteCall { - c := &BackendBucketsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)} +// To prevent failure, it is recommended that you set +// the +// `returnPartialSuccess` parameter to `true`. +// +// - project: Name of the project scoping this request. +func (r *BackendBucketsService) AggregatedList(project string) *BackendBucketsAggregatedListCall { + c := &BackendBucketsAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project - c.backendBucket = backendBucket 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 *BackendBucketsDeleteCall) RequestId(requestId string) *BackendBucketsDeleteCall { - c.urlParams_.Set("requestId", requestId) +// Filter sets the optional parameter "filter": A filter expression that +// filters resources listed in the response. Most +// Compute resources support two types of filter expressions: +// expressions that support regular expressions and expressions that follow +// API improvement proposal AIP-160. +// These two types of filter expressions cannot be mixed in one request. +// +// If you want to use AIP-160, your expression must specify the field name, +// an +// operator, and the value that you want to use for filtering. The value +// must be a string, a number, or a boolean. The 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`. +// +// The `:*` comparison can be used to test whether a key has been defined. +// For example, to find all objects with `owner` label +// use: +// ``` +// labels.owner:* +// ``` +// +// 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 onresource 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) +// ``` +// +// If you want to use a regular expression, use the `eq` (equal) or `ne` +// (not equal) operator against a single un-parenthesized expression with +// or +// without quotes or against multiple parenthesized expressions. +// Examples: +// +// `fieldname eq unquoted literal` +// `fieldname eq 'single quoted literal'` +// `fieldname eq "double quoted literal" +// `(fieldname1 eq literal) (fieldname2 ne "literal")` +// +// The literal value is interpreted as a regular expression using GoogleRE2 +// library syntax. +// The literal value must match the entire field. +// +// For example, to filter for instances that do not end with name +// "instance", +// you would use `name ne .*instance`. +// +// You cannot combine constraints on multiple fields using regular +// expressions. +func (c *BackendBucketsAggregatedListCall) Filter(filter string) *BackendBucketsAggregatedListCall { + c.urlParams_.Set("filter", filter) + return c +} + +// IncludeAllScopes sets the optional parameter "includeAllScopes": Indicates +// whether every visible scope for each scope type (zone, region, +// global) should be included in the response. For new resource types +// added +// after this field, the flag has no effect as new resource types will +// always +// include every visible scope for each scope type in response. For +// resource +// types which predate this field, if this flag is omitted or false, +// only +// scopes of the scope types where the resource type is expected to be +// found +// will be included. +func (c *BackendBucketsAggregatedListCall) IncludeAllScopes(includeAllScopes bool) *BackendBucketsAggregatedListCall { + c.urlParams_.Set("includeAllScopes", fmt.Sprint(includeAllScopes)) + 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 *BackendBucketsAggregatedListCall) MaxResults(maxResults int64) *BackendBucketsAggregatedListCall { + 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 *BackendBucketsAggregatedListCall) OrderBy(orderBy string) *BackendBucketsAggregatedListCall { + 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 *BackendBucketsAggregatedListCall) PageToken(pageToken string) *BackendBucketsAggregatedListCall { + c.urlParams_.Set("pageToken", pageToken) + return c +} + +// ReturnPartialSuccess sets the optional parameter "returnPartialSuccess": +// Opt-in for partial success behavior which provides partial results in +// case +// of failure. The default value is false. +// +// For example, when partial success behavior is enabled, aggregatedList for +// a +// single zone scope either returns all resources in the zone or no +// resources, +// with an error code. +func (c *BackendBucketsAggregatedListCall) ReturnPartialSuccess(returnPartialSuccess bool) *BackendBucketsAggregatedListCall { + c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess)) + return c +} + +// ServiceProjectNumber sets the optional parameter "serviceProjectNumber": The +// Shared VPC service project id or service project number for which +// aggregated list request is invoked for subnetworks list-usable api. +func (c *BackendBucketsAggregatedListCall) ServiceProjectNumber(serviceProjectNumber int64) *BackendBucketsAggregatedListCall { + c.urlParams_.Set("serviceProjectNumber", fmt.Sprint(serviceProjectNumber)) return c } // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *BackendBucketsDeleteCall) Fields(s ...googleapi.Field) *BackendBucketsDeleteCall { +func (c *BackendBucketsAggregatedListCall) Fields(s ...googleapi.Field) *BackendBucketsAggregatedListCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } +// IfNoneMatch sets an 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. +func (c *BackendBucketsAggregatedListCall) IfNoneMatch(entityTag string) *BackendBucketsAggregatedListCall { + c.ifNoneMatch_ = entityTag + return c +} + // Context sets the context to be used in this call's Do method. -func (c *BackendBucketsDeleteCall) Context(ctx context.Context) *BackendBucketsDeleteCall { +func (c *BackendBucketsAggregatedListCall) Context(ctx context.Context) *BackendBucketsAggregatedListCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *BackendBucketsDeleteCall) Header() http.Header { +func (c *BackendBucketsAggregatedListCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *BackendBucketsDeleteCall) doRequest(alt string) (*http.Response, error) { +func (c *BackendBucketsAggregatedListCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) - var body io.Reader = nil + if c.ifNoneMatch_ != "" { + reqHeaders.Set("If-None-Match", c.ifNoneMatch_) + } c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/backendBuckets/{backendBucket}") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/aggregated/backendBuckets") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("DELETE", urls, body) + req, err := http.NewRequest("GET", urls, nil) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "backendBucket": c.backendBucket, + "project": c.project, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.backendBuckets.aggregatedList", "request", internallog.HTTPRequest(req, nil)) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.backendBuckets.delete" call. +// Do executes the "compute.backendBuckets.aggregatedList" call. // 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 *BackendBucketsDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) { +// *BackendBucketAggregatedList.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 *BackendBucketsAggregatedListCall) Do(opts ...googleapi.CallOption) (*BackendBucketAggregatedList, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -2891,20 +3817,43 @@ func (c *BackendBucketsDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } - ret := &Operation{ + ret := &BackendBucketAggregatedList{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.backendBuckets.aggregatedList", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type BackendBucketsDeleteSignedUrlKeyCall struct { +// 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 *BackendBucketsAggregatedListCall) Pages(ctx context.Context, f func(*BackendBucketAggregatedList) error) error { + c.ctx_ = ctx + defer c.PageToken(c.urlParams_.Get("pageToken")) + 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) + } +} + +type BackendBucketsDeleteCall struct { s *Service project string backendBucket string @@ -2913,32 +3862,35 @@ type BackendBucketsDeleteSignedUrlKeyCall struct { header_ http.Header } -// DeleteSignedUrlKey: Deletes a key for validating requests with signed URLs -// for this backend bucket. +// Delete: Deletes the specified BackendBucket resource. // -// - backendBucket: Name of the BackendBucket resource to which the Signed URL -// Key should be added. The name should conform to RFC1035. -// - keyName: The name of the Signed URL Key to delete. -// - project: Project ID for this request. -func (r *BackendBucketsService) DeleteSignedUrlKey(project string, backendBucket string, keyName string) *BackendBucketsDeleteSignedUrlKeyCall { - c := &BackendBucketsDeleteSignedUrlKeyCall{s: r.s, urlParams_: make(gensupport.URLParams)} +// - backendBucket: Name of the BackendBucket resource to delete. +// - project: Project ID for this request. +func (r *BackendBucketsService) Delete(project string, backendBucket string) *BackendBucketsDeleteCall { + c := &BackendBucketsDeleteCall{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 { +// 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 *BackendBucketsDeleteCall) RequestId(requestId string) *BackendBucketsDeleteCall { c.urlParams_.Set("requestId", requestId) return c } @@ -2946,34 +3898,33 @@ func (c *BackendBucketsDeleteSignedUrlKeyCall) RequestId(requestId string) *Back // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *BackendBucketsDeleteSignedUrlKeyCall) Fields(s ...googleapi.Field) *BackendBucketsDeleteSignedUrlKeyCall { +func (c *BackendBucketsDeleteCall) Fields(s ...googleapi.Field) *BackendBucketsDeleteCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } // Context sets the context to be used in this call's Do method. -func (c *BackendBucketsDeleteSignedUrlKeyCall) Context(ctx context.Context) *BackendBucketsDeleteSignedUrlKeyCall { +func (c *BackendBucketsDeleteCall) Context(ctx context.Context) *BackendBucketsDeleteCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *BackendBucketsDeleteSignedUrlKeyCall) Header() http.Header { +func (c *BackendBucketsDeleteCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *BackendBucketsDeleteSignedUrlKeyCall) doRequest(alt string) (*http.Response, error) { +func (c *BackendBucketsDeleteCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) - var body io.Reader = nil c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/backendBuckets/{backendBucket}/deleteSignedUrlKey") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/backendBuckets/{backendBucket}") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("POST", urls, body) + req, err := http.NewRequest("DELETE", urls, nil) if err != nil { return nil, err } @@ -2982,15 +3933,16 @@ func (c *BackendBucketsDeleteSignedUrlKeyCall) doRequest(alt string) (*http.Resp "project": c.project, "backendBucket": c.backendBucket, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.backendBuckets.delete", "request", internallog.HTTPRequest(req, nil)) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.backendBuckets.deleteSignedUrlKey" call. +// Do executes the "compute.backendBuckets.delete" call. // 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) { +func (c *BackendBucketsDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -3016,9 +3968,141 @@ func (c *BackendBucketsDeleteSignedUrlKeyCall) Do(opts ...googleapi.CallOption) }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { + return nil, err + } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.backendBuckets.delete", "response", internallog.HTTPResponse(res, b)) + return ret, nil +} + +type BackendBucketsDeleteSignedUrlKeyCall struct { + s *Service + project string + backendBucket string + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header +} + +// DeleteSignedUrlKey: Deletes a key for validating requests with signed URLs +// for this backend +// bucket. +// +// - backendBucket: Name of the BackendBucket resource to which the Signed URL +// Key should be +// +// added. The name should conform to RFC1035. +// - keyName: The name of the Signed URL Key to delete. +// - project: Project ID for this request. +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 +// details. +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. +func (c *BackendBucketsDeleteSignedUrlKeyCall) Context(ctx context.Context) *BackendBucketsDeleteSignedUrlKeyCall { + c.ctx_ = ctx + return c +} + +// Header returns a http.Header that can be modified by the caller to add +// 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 := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) + c.urlParams_.Set("alt", alt) + c.urlParams_.Set("prettyPrint", "false") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/backendBuckets/{backendBucket}/deleteSignedUrlKey") + urls += "?" + c.urlParams_.Encode() + req, err := http.NewRequest("POST", urls, nil) + if err != nil { + return nil, err + } + req.Header = reqHeaders + googleapi.Expand(req.URL, map[string]string{ + "project": c.project, + "backendBucket": c.backendBucket, + }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.backendBuckets.deleteSignedUrlKey", "request", internallog.HTTPRequest(req, nil)) + return gensupport.SendRequest(c.ctx_, c.s.client, req) +} + +// Do executes the "compute.backendBuckets.deleteSignedUrlKey" call. +// 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, gensupport.WrapError(&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, gensupport.WrapError(err) + } + ret := &Operation{ + ServerResponse: googleapi.ServerResponse{ + Header: res.Header, + HTTPStatusCode: res.StatusCode, + }, + } + target := &ret + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { + return nil, err + } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.backendBuckets.deleteSignedUrlKey", "response", internallog.HTTPResponse(res, b)) return ret, nil } @@ -3079,12 +4163,11 @@ func (c *BackendBucketsGetCall) doRequest(alt string) (*http.Response, error) { if c.ifNoneMatch_ != "" { reqHeaders.Set("If-None-Match", c.ifNoneMatch_) } - var body io.Reader = nil c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/backendBuckets/{backendBucket}") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("GET", urls, body) + req, err := http.NewRequest("GET", urls, nil) if err != nil { return nil, err } @@ -3093,6 +4176,7 @@ func (c *BackendBucketsGetCall) doRequest(alt string) (*http.Response, error) { "project": c.project, "backendBucket": c.backendBucket, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.backendBuckets.get", "request", internallog.HTTPRequest(req, nil)) return gensupport.SendRequest(c.ctx_, c.s.client, req) } @@ -3127,9 +4211,11 @@ func (c *BackendBucketsGetCall) Do(opts ...googleapi.CallOption) (*BackendBucket }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.backendBuckets.get", "response", internallog.HTTPResponse(res, b)) return ret, nil } @@ -3144,7 +4230,8 @@ type BackendBucketsGetIamPolicyCall struct { } // GetIamPolicy: Gets the access control policy for a resource. May be empty if -// no such policy or resource exists. +// no such +// policy or resource exists. // // - project: Project ID for this request. // - resource: Name or id of the resource for this request. @@ -3198,12 +4285,11 @@ func (c *BackendBucketsGetIamPolicyCall) doRequest(alt string) (*http.Response, if c.ifNoneMatch_ != "" { reqHeaders.Set("If-None-Match", c.ifNoneMatch_) } - var body io.Reader = nil c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/backendBuckets/{resource}/getIamPolicy") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("GET", urls, body) + req, err := http.NewRequest("GET", urls, nil) if err != nil { return nil, err } @@ -3212,6 +4298,7 @@ func (c *BackendBucketsGetIamPolicyCall) doRequest(alt string) (*http.Response, "project": c.project, "resource": c.resource, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.backendBuckets.getIamPolicy", "request", internallog.HTTPRequest(req, nil)) return gensupport.SendRequest(c.ctx_, c.s.client, req) } @@ -3246,9 +4333,11 @@ func (c *BackendBucketsGetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Poli }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.backendBuckets.getIamPolicy", "response", internallog.HTTPResponse(res, b)) return ret, nil } @@ -3261,8 +4350,8 @@ type BackendBucketsInsertCall struct { header_ http.Header } -// Insert: Creates a BackendBucket resource in the specified project using the -// data included in the request. +// Insert: Creates a BackendBucket resource in the specified project using +// the data included in the request. // // - project: Project ID for this request. func (r *BackendBucketsService) Insert(project string, backendbucket *BackendBucket) *BackendBucketsInsertCall { @@ -3273,15 +4362,22 @@ func (r *BackendBucketsService) Insert(project string, backendbucket *BackendBuc } // 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). +// 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 *BackendBucketsInsertCall) RequestId(requestId string) *BackendBucketsInsertCall { c.urlParams_.Set("requestId", requestId) return c @@ -3312,8 +4408,7 @@ func (c *BackendBucketsInsertCall) Header() http.Header { func (c *BackendBucketsInsertCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) - var body io.Reader = nil - body, err := googleapi.WithoutDataWrapper.JSONReader(c.backendbucket) + body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.backendbucket) if err != nil { return nil, err } @@ -3329,6 +4424,7 @@ func (c *BackendBucketsInsertCall) doRequest(alt string) (*http.Response, error) googleapi.Expand(req.URL, map[string]string{ "project": c.project, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.backendBuckets.insert", "request", internallog.HTTPRequest(req, body.Bytes())) return gensupport.SendRequest(c.ctx_, c.s.client, req) } @@ -3363,9 +4459,11 @@ func (c *BackendBucketsInsertCall) Do(opts ...googleapi.CallOption) (*Operation, }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.backendBuckets.insert", "response", internallog.HTTPResponse(res, b)) return ret, nil } @@ -3379,7 +4477,8 @@ type BackendBucketsListCall struct { } // List: Retrieves the list of BackendBucket resources available to the -// specified project. +// specified +// project. // // - project: Project ID for this request. func (r *BackendBucketsService) List(project string) *BackendBucketsListCall { @@ -3389,78 +4488,128 @@ func (r *BackendBucketsService) List(project string) *BackendBucketsListCall { } // Filter sets the optional parameter "filter": A filter expression that -// filters resources listed in the response. Most Compute resources support two -// types of filter expressions: expressions that support regular expressions -// and expressions that follow API improvement proposal AIP-160. These two -// types of filter expressions cannot be mixed in one request. If you want to -// use AIP-160, your expression must specify the field name, an operator, and -// the value that you want to use for filtering. The value must be a string, a -// number, or a boolean. The 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`. The `:*` comparison can be used to test whether a key has -// been defined. For example, to find all objects with `owner` label use: ``` -// labels.owner:* ``` 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) ``` If you want to use a regular -// expression, use the `eq` (equal) or `ne` (not equal) operator against a -// single un-parenthesized expression with or without quotes or against -// multiple parenthesized expressions. Examples: `fieldname eq unquoted -// literal` `fieldname eq 'single quoted literal'` `fieldname eq "double quoted -// literal" `(fieldname1 eq literal) (fieldname2 ne "literal")` The literal -// value is interpreted as a regular expression using Google RE2 library -// syntax. The literal value must match the entire field. For example, to -// filter for instances that do not end with name "instance", you would use -// `name ne .*instance`. You cannot combine constraints on multiple fields -// using regular expressions. +// filters resources listed in the response. Most +// Compute resources support two types of filter expressions: +// expressions that support regular expressions and expressions that follow +// API improvement proposal AIP-160. +// These two types of filter expressions cannot be mixed in one request. +// +// If you want to use AIP-160, your expression must specify the field name, +// an +// operator, and the value that you want to use for filtering. The value +// must be a string, a number, or a boolean. The 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`. +// +// The `:*` comparison can be used to test whether a key has been defined. +// For example, to find all objects with `owner` label +// use: +// ``` +// labels.owner:* +// ``` +// +// 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 onresource 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) +// ``` +// +// If you want to use a regular expression, use the `eq` (equal) or `ne` +// (not equal) operator against a single un-parenthesized expression with +// or +// without quotes or against multiple parenthesized expressions. +// Examples: +// +// `fieldname eq unquoted literal` +// `fieldname eq 'single quoted literal'` +// `fieldname eq "double quoted literal" +// `(fieldname1 eq literal) (fieldname2 ne "literal")` +// +// The literal value is interpreted as a regular expression using GoogleRE2 +// library syntax. +// The literal value must match the entire field. +// +// For example, to filter for instances that do not end with name +// "instance", +// you would use `name ne .*instance`. +// +// You cannot combine constraints on multiple fields using regular +// expressions. func (c *BackendBucketsListCall) Filter(filter string) *BackendBucketsListCall { 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`) +// 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 *BackendBucketsListCall) MaxResults(maxResults int64) *BackendBucketsListCall { 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. +// 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 *BackendBucketsListCall) OrderBy(orderBy string) *BackendBucketsListCall { 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. +// use. Set `pageToken` to the +// `nextPageToken` returned by a previous list request to get +// the next page of results. func (c *BackendBucketsListCall) PageToken(pageToken string) *BackendBucketsListCall { c.urlParams_.Set("pageToken", pageToken) return c } // ReturnPartialSuccess sets the optional parameter "returnPartialSuccess": -// Opt-in for partial success behavior which provides partial results in case -// of failure. The default value is false. For example, when partial success -// behavior is enabled, aggregatedList for a single zone scope either returns -// all resources in the zone or no resources, with an error code. +// Opt-in for partial success behavior which provides partial results in +// case +// of failure. The default value is false. +// +// For example, when partial success behavior is enabled, aggregatedList for +// a +// single zone scope either returns all resources in the zone or no +// resources, +// with an error code. func (c *BackendBucketsListCall) ReturnPartialSuccess(returnPartialSuccess bool) *BackendBucketsListCall { c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess)) return c @@ -3502,12 +4651,11 @@ func (c *BackendBucketsListCall) doRequest(alt string) (*http.Response, error) { if c.ifNoneMatch_ != "" { reqHeaders.Set("If-None-Match", c.ifNoneMatch_) } - var body io.Reader = nil c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/backendBuckets") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("GET", urls, body) + req, err := http.NewRequest("GET", urls, nil) if err != nil { return nil, err } @@ -3515,6 +4663,7 @@ func (c *BackendBucketsListCall) doRequest(alt string) (*http.Response, error) { googleapi.Expand(req.URL, map[string]string{ "project": c.project, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.backendBuckets.list", "request", internallog.HTTPRequest(req, nil)) return gensupport.SendRequest(c.ctx_, c.s.client, req) } @@ -3550,9 +4699,11 @@ func (c *BackendBucketsListCall) Do(opts ...googleapi.CallOption) (*BackendBucke }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.backendBuckets.list", "response", internallog.HTTPResponse(res, b)) return ret, nil } @@ -3577,6 +4728,266 @@ func (c *BackendBucketsListCall) Pages(ctx context.Context, f func(*BackendBucke } } +type BackendBucketsListUsableCall struct { + s *Service + project string + urlParams_ gensupport.URLParams + ifNoneMatch_ string + ctx_ context.Context + header_ http.Header +} + +// ListUsable: Retrieves a list of all usable backend buckets in the specified +// project. +// +// - project: Project ID for this request. +func (r *BackendBucketsService) ListUsable(project string) *BackendBucketsListUsableCall { + c := &BackendBucketsListUsableCall{s: r.s, urlParams_: make(gensupport.URLParams)} + c.project = project + return c +} + +// Filter sets the optional parameter "filter": A filter expression that +// filters resources listed in the response. Most +// Compute resources support two types of filter expressions: +// expressions that support regular expressions and expressions that follow +// API improvement proposal AIP-160. +// These two types of filter expressions cannot be mixed in one request. +// +// If you want to use AIP-160, your expression must specify the field name, +// an +// operator, and the value that you want to use for filtering. The value +// must be a string, a number, or a boolean. The 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`. +// +// The `:*` comparison can be used to test whether a key has been defined. +// For example, to find all objects with `owner` label +// use: +// ``` +// labels.owner:* +// ``` +// +// 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 onresource 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) +// ``` +// +// If you want to use a regular expression, use the `eq` (equal) or `ne` +// (not equal) operator against a single un-parenthesized expression with +// or +// without quotes or against multiple parenthesized expressions. +// Examples: +// +// `fieldname eq unquoted literal` +// `fieldname eq 'single quoted literal'` +// `fieldname eq "double quoted literal" +// `(fieldname1 eq literal) (fieldname2 ne "literal")` +// +// The literal value is interpreted as a regular expression using GoogleRE2 +// library syntax. +// The literal value must match the entire field. +// +// For example, to filter for instances that do not end with name +// "instance", +// you would use `name ne .*instance`. +// +// You cannot combine constraints on multiple fields using regular +// expressions. +func (c *BackendBucketsListUsableCall) Filter(filter string) *BackendBucketsListUsableCall { + 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 *BackendBucketsListUsableCall) MaxResults(maxResults int64) *BackendBucketsListUsableCall { + 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 *BackendBucketsListUsableCall) OrderBy(orderBy string) *BackendBucketsListUsableCall { + 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 *BackendBucketsListUsableCall) PageToken(pageToken string) *BackendBucketsListUsableCall { + c.urlParams_.Set("pageToken", pageToken) + return c +} + +// ReturnPartialSuccess sets the optional parameter "returnPartialSuccess": +// Opt-in for partial success behavior which provides partial results in +// case +// of failure. The default value is false. +// +// For example, when partial success behavior is enabled, aggregatedList for +// a +// single zone scope either returns all resources in the zone or no +// resources, +// with an error code. +func (c *BackendBucketsListUsableCall) ReturnPartialSuccess(returnPartialSuccess bool) *BackendBucketsListUsableCall { + c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess)) + return c +} + +// Fields allows partial responses to be retrieved. See +// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more +// details. +func (c *BackendBucketsListUsableCall) Fields(s ...googleapi.Field) *BackendBucketsListUsableCall { + c.urlParams_.Set("fields", googleapi.CombineFields(s)) + return c +} + +// IfNoneMatch sets an 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. +func (c *BackendBucketsListUsableCall) IfNoneMatch(entityTag string) *BackendBucketsListUsableCall { + c.ifNoneMatch_ = entityTag + return c +} + +// Context sets the context to be used in this call's Do method. +func (c *BackendBucketsListUsableCall) Context(ctx context.Context) *BackendBucketsListUsableCall { + c.ctx_ = ctx + return c +} + +// Header returns a http.Header that can be modified by the caller to add +// headers to the request. +func (c *BackendBucketsListUsableCall) Header() http.Header { + if c.header_ == nil { + c.header_ = make(http.Header) + } + return c.header_ +} + +func (c *BackendBucketsListUsableCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) + if c.ifNoneMatch_ != "" { + reqHeaders.Set("If-None-Match", c.ifNoneMatch_) + } + c.urlParams_.Set("alt", alt) + c.urlParams_.Set("prettyPrint", "false") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/backendBuckets/listUsable") + urls += "?" + c.urlParams_.Encode() + req, err := http.NewRequest("GET", urls, nil) + if err != nil { + return nil, err + } + req.Header = reqHeaders + googleapi.Expand(req.URL, map[string]string{ + "project": c.project, + }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.backendBuckets.listUsable", "request", internallog.HTTPRequest(req, nil)) + return gensupport.SendRequest(c.ctx_, c.s.client, req) +} + +// Do executes the "compute.backendBuckets.listUsable" call. +// Any non-2xx status code is an error. Response headers are in either +// *BackendBucketListUsable.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 *BackendBucketsListUsableCall) Do(opts ...googleapi.CallOption) (*BackendBucketListUsable, 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, gensupport.WrapError(&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, gensupport.WrapError(err) + } + ret := &BackendBucketListUsable{ + ServerResponse: googleapi.ServerResponse{ + Header: res.Header, + HTTPStatusCode: res.StatusCode, + }, + } + target := &ret + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { + return nil, err + } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.backendBuckets.listUsable", "response", internallog.HTTPResponse(res, b)) + return ret, nil +} + +// 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 *BackendBucketsListUsableCall) Pages(ctx context.Context, f func(*BackendBucketListUsable) error) error { + c.ctx_ = ctx + defer c.PageToken(c.urlParams_.Get("pageToken")) + 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) + } +} + type BackendBucketsPatchCall struct { s *Service project string @@ -3588,7 +4999,9 @@ type BackendBucketsPatchCall struct { } // Patch: Updates the specified BackendBucket resource with the data included -// in the request. This method supports PATCH semantics and uses the JSON merge +// in the +// request. This method supportsPATCH +// semantics and uses theJSON merge // patch format and processing rules. // // - backendBucket: Name of the BackendBucket resource to patch. @@ -3602,15 +5015,22 @@ func (r *BackendBucketsService) Patch(project string, backendBucket string, back } // 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). +// 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 *BackendBucketsPatchCall) RequestId(requestId string) *BackendBucketsPatchCall { c.urlParams_.Set("requestId", requestId) return c @@ -3641,8 +5061,7 @@ func (c *BackendBucketsPatchCall) Header() http.Header { func (c *BackendBucketsPatchCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) - var body io.Reader = nil - body, err := googleapi.WithoutDataWrapper.JSONReader(c.backendbucket) + body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.backendbucket) if err != nil { return nil, err } @@ -3659,6 +5078,7 @@ func (c *BackendBucketsPatchCall) doRequest(alt string) (*http.Response, error) "project": c.project, "backendBucket": c.backendBucket, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.backendBuckets.patch", "request", internallog.HTTPRequest(req, body.Bytes())) return gensupport.SendRequest(c.ctx_, c.s.client, req) } @@ -3693,9 +5113,11 @@ func (c *BackendBucketsPatchCall) Do(opts ...googleapi.CallOption) (*Operation, }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.backendBuckets.patch", "response", internallog.HTTPResponse(res, b)) return ret, nil } @@ -3713,8 +5135,10 @@ type BackendBucketsSetEdgeSecurityPolicyCall struct { // backend bucket. // // - backendBucket: Name of the BackendBucket resource to which the security -// policy should be set. The name should conform to RFC1035. -// - project: Project ID for this request. +// policy should be +// +// set. The name should conform to RFC1035. +// - project: Project ID for this request. func (r *BackendBucketsService) SetEdgeSecurityPolicy(project string, backendBucket string, securitypolicyreference *SecurityPolicyReference) *BackendBucketsSetEdgeSecurityPolicyCall { c := &BackendBucketsSetEdgeSecurityPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project @@ -3724,15 +5148,22 @@ func (r *BackendBucketsService) SetEdgeSecurityPolicy(project string, backendBuc } // 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). +// 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 *BackendBucketsSetEdgeSecurityPolicyCall) RequestId(requestId string) *BackendBucketsSetEdgeSecurityPolicyCall { c.urlParams_.Set("requestId", requestId) return c @@ -3763,8 +5194,7 @@ func (c *BackendBucketsSetEdgeSecurityPolicyCall) Header() http.Header { func (c *BackendBucketsSetEdgeSecurityPolicyCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) - var body io.Reader = nil - body, err := googleapi.WithoutDataWrapper.JSONReader(c.securitypolicyreference) + body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.securitypolicyreference) if err != nil { return nil, err } @@ -3781,6 +5211,7 @@ func (c *BackendBucketsSetEdgeSecurityPolicyCall) doRequest(alt string) (*http.R "project": c.project, "backendBucket": c.backendBucket, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.backendBuckets.setEdgeSecurityPolicy", "request", internallog.HTTPRequest(req, body.Bytes())) return gensupport.SendRequest(c.ctx_, c.s.client, req) } @@ -3815,9 +5246,11 @@ func (c *BackendBucketsSetEdgeSecurityPolicyCall) Do(opts ...googleapi.CallOptio }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.backendBuckets.setEdgeSecurityPolicy", "response", internallog.HTTPResponse(res, b)) return ret, nil } @@ -3831,7 +5264,8 @@ type BackendBucketsSetIamPolicyCall struct { header_ http.Header } -// SetIamPolicy: Sets the access control policy on the specified resource. +// SetIamPolicy: Sets the access control policy on the specified +// resource. // Replaces any existing policy. // // - project: Project ID for this request. @@ -3869,8 +5303,7 @@ func (c *BackendBucketsSetIamPolicyCall) Header() http.Header { func (c *BackendBucketsSetIamPolicyCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) - var body io.Reader = nil - body, err := googleapi.WithoutDataWrapper.JSONReader(c.globalsetpolicyrequest) + body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.globalsetpolicyrequest) if err != nil { return nil, err } @@ -3887,6 +5320,7 @@ func (c *BackendBucketsSetIamPolicyCall) doRequest(alt string) (*http.Response, "project": c.project, "resource": c.resource, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.backendBuckets.setIamPolicy", "request", internallog.HTTPRequest(req, body.Bytes())) return gensupport.SendRequest(c.ctx_, c.s.client, req) } @@ -3921,9 +5355,11 @@ func (c *BackendBucketsSetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Poli }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.backendBuckets.setIamPolicy", "response", internallog.HTTPResponse(res, b)) return ret, nil } @@ -3975,8 +5411,7 @@ func (c *BackendBucketsTestIamPermissionsCall) Header() http.Header { func (c *BackendBucketsTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) - var body io.Reader = nil - body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest) + body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.testpermissionsrequest) if err != nil { return nil, err } @@ -3993,6 +5428,7 @@ func (c *BackendBucketsTestIamPermissionsCall) doRequest(alt string) (*http.Resp "project": c.project, "resource": c.resource, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.backendBuckets.testIamPermissions", "request", internallog.HTTPRequest(req, body.Bytes())) return gensupport.SendRequest(c.ctx_, c.s.client, req) } @@ -4028,9 +5464,11 @@ func (c *BackendBucketsTestIamPermissionsCall) Do(opts ...googleapi.CallOption) }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.backendBuckets.testIamPermissions", "response", internallog.HTTPResponse(res, b)) return ret, nil } @@ -4045,7 +5483,8 @@ type BackendBucketsUpdateCall struct { } // Update: Updates the specified BackendBucket resource with the data included -// in the request. +// in the +// request. // // - backendBucket: Name of the BackendBucket resource to update. // - project: Project ID for this request. @@ -4058,15 +5497,22 @@ func (r *BackendBucketsService) Update(project string, backendBucket string, bac } // 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). +// 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 *BackendBucketsUpdateCall) RequestId(requestId string) *BackendBucketsUpdateCall { c.urlParams_.Set("requestId", requestId) return c @@ -4097,8 +5543,7 @@ func (c *BackendBucketsUpdateCall) Header() http.Header { func (c *BackendBucketsUpdateCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) - var body io.Reader = nil - body, err := googleapi.WithoutDataWrapper.JSONReader(c.backendbucket) + body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.backendbucket) if err != nil { return nil, err } @@ -4115,6 +5560,7 @@ func (c *BackendBucketsUpdateCall) doRequest(alt string) (*http.Response, error) "project": c.project, "backendBucket": c.backendBucket, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.backendBuckets.update", "request", internallog.HTTPRequest(req, body.Bytes())) return gensupport.SendRequest(c.ctx_, c.s.client, req) } @@ -4149,9 +5595,11 @@ func (c *BackendBucketsUpdateCall) Do(opts ...googleapi.CallOption) (*Operation, }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.backendBuckets.update", "response", internallog.HTTPResponse(res, b)) return ret, nil } @@ -4166,11 +5614,14 @@ type BackendServicesAddSignedUrlKeyCall struct { } // AddSignedUrlKey: Adds a key for validating requests with signed URLs for -// this backend service. +// this backend +// service. // // - backendService: Name of the BackendService resource to which the Signed -// URL Key should be added. The name should conform to RFC1035. -// - project: Project ID for this request. +// URL Key should be +// +// added. The name should conform to RFC1035. +// - project: Project ID for this request. func (r *BackendServicesService) AddSignedUrlKey(project string, backendService string, signedurlkey *SignedUrlKey) *BackendServicesAddSignedUrlKeyCall { c := &BackendServicesAddSignedUrlKeyCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project @@ -4180,15 +5631,22 @@ func (r *BackendServicesService) AddSignedUrlKey(project string, backendService } // 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). +// 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 @@ -4219,8 +5677,7 @@ func (c *BackendServicesAddSignedUrlKeyCall) Header() http.Header { func (c *BackendServicesAddSignedUrlKeyCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) - var body io.Reader = nil - body, err := googleapi.WithoutDataWrapper.JSONReader(c.signedurlkey) + body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.signedurlkey) if err != nil { return nil, err } @@ -4237,6 +5694,7 @@ func (c *BackendServicesAddSignedUrlKeyCall) doRequest(alt string) (*http.Respon "project": c.project, "backendService": c.backendService, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.backendServices.addSignedUrlKey", "request", internallog.HTTPRequest(req, body.Bytes())) return gensupport.SendRequest(c.ctx_, c.s.client, req) } @@ -4271,9 +5729,11 @@ func (c *BackendServicesAddSignedUrlKeyCall) Do(opts ...googleapi.CallOption) (* }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.backendServices.addSignedUrlKey", "response", internallog.HTTPResponse(res, b)) return ret, nil } @@ -4287,8 +5747,12 @@ type BackendServicesAggregatedListCall struct { } // AggregatedList: Retrieves the list of all BackendService resources, regional -// and global, available to the specified project. To prevent failure, Google -// recommends that you set the `returnPartialSuccess` parameter to `true`. +// and global, +// available to the specified project. +// +// To prevent failure, it is recommended that you set +// the +// `returnPartialSuccess` parameter to `true`. // // - project: Name of the project scoping this request. func (r *BackendServicesService) AggregatedList(project string) *BackendServicesAggregatedListCall { @@ -4298,99 +5762,154 @@ func (r *BackendServicesService) AggregatedList(project string) *BackendServices } // Filter sets the optional parameter "filter": A filter expression that -// filters resources listed in the response. Most Compute resources support two -// types of filter expressions: expressions that support regular expressions -// and expressions that follow API improvement proposal AIP-160. These two -// types of filter expressions cannot be mixed in one request. If you want to -// use AIP-160, your expression must specify the field name, an operator, and -// the value that you want to use for filtering. The value must be a string, a -// number, or a boolean. The 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`. The `:*` comparison can be used to test whether a key has -// been defined. For example, to find all objects with `owner` label use: ``` -// labels.owner:* ``` 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) ``` If you want to use a regular -// expression, use the `eq` (equal) or `ne` (not equal) operator against a -// single un-parenthesized expression with or without quotes or against -// multiple parenthesized expressions. Examples: `fieldname eq unquoted -// literal` `fieldname eq 'single quoted literal'` `fieldname eq "double quoted -// literal" `(fieldname1 eq literal) (fieldname2 ne "literal")` The literal -// value is interpreted as a regular expression using Google RE2 library -// syntax. The literal value must match the entire field. For example, to -// filter for instances that do not end with name "instance", you would use -// `name ne .*instance`. You cannot combine constraints on multiple fields -// using regular expressions. +// filters resources listed in the response. Most +// Compute resources support two types of filter expressions: +// expressions that support regular expressions and expressions that follow +// API improvement proposal AIP-160. +// These two types of filter expressions cannot be mixed in one request. +// +// If you want to use AIP-160, your expression must specify the field name, +// an +// operator, and the value that you want to use for filtering. The value +// must be a string, a number, or a boolean. The 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`. +// +// The `:*` comparison can be used to test whether a key has been defined. +// For example, to find all objects with `owner` label +// use: +// ``` +// labels.owner:* +// ``` +// +// 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 onresource 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) +// ``` +// +// If you want to use a regular expression, use the `eq` (equal) or `ne` +// (not equal) operator against a single un-parenthesized expression with +// or +// without quotes or against multiple parenthesized expressions. +// Examples: +// +// `fieldname eq unquoted literal` +// `fieldname eq 'single quoted literal'` +// `fieldname eq "double quoted literal" +// `(fieldname1 eq literal) (fieldname2 ne "literal")` +// +// The literal value is interpreted as a regular expression using GoogleRE2 +// library syntax. +// The literal value must match the entire field. +// +// For example, to filter for instances that do not end with name +// "instance", +// you would use `name ne .*instance`. +// +// You cannot combine constraints on multiple fields using regular +// expressions. func (c *BackendServicesAggregatedListCall) Filter(filter string) *BackendServicesAggregatedListCall { c.urlParams_.Set("filter", filter) return c } // IncludeAllScopes sets the optional parameter "includeAllScopes": Indicates -// whether every visible scope for each scope type (zone, region, global) -// should be included in the response. For new resource types added after this -// field, the flag has no effect as new resource types will always include -// every visible scope for each scope type in response. For resource types -// which predate this field, if this flag is omitted or false, only scopes of -// the scope types where the resource type is expected to be found will be -// included. +// whether every visible scope for each scope type (zone, region, +// global) should be included in the response. For new resource types +// added +// after this field, the flag has no effect as new resource types will +// always +// include every visible scope for each scope type in response. For +// resource +// types which predate this field, if this flag is omitted or false, +// only +// scopes of the scope types where the resource type is expected to be +// found +// will be included. func (c *BackendServicesAggregatedListCall) IncludeAllScopes(includeAllScopes bool) *BackendServicesAggregatedListCall { c.urlParams_.Set("includeAllScopes", fmt.Sprint(includeAllScopes)) 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`) +// 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 *BackendServicesAggregatedListCall) MaxResults(maxResults int64) *BackendServicesAggregatedListCall { 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. +// 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 *BackendServicesAggregatedListCall) OrderBy(orderBy string) *BackendServicesAggregatedListCall { 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. +// use. Set `pageToken` to the +// `nextPageToken` returned by a previous list request to get +// the next page of results. func (c *BackendServicesAggregatedListCall) PageToken(pageToken string) *BackendServicesAggregatedListCall { c.urlParams_.Set("pageToken", pageToken) return c } // ReturnPartialSuccess sets the optional parameter "returnPartialSuccess": -// Opt-in for partial success behavior which provides partial results in case -// of failure. The default value is false. For example, when partial success -// behavior is enabled, aggregatedList for a single zone scope either returns -// all resources in the zone or no resources, with an error code. +// Opt-in for partial success behavior which provides partial results in +// case +// of failure. The default value is false. +// +// For example, when partial success behavior is enabled, aggregatedList for +// a +// single zone scope either returns all resources in the zone or no +// resources, +// with an error code. func (c *BackendServicesAggregatedListCall) ReturnPartialSuccess(returnPartialSuccess bool) *BackendServicesAggregatedListCall { c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess)) return c } // ServiceProjectNumber sets the optional parameter "serviceProjectNumber": The -// Shared VPC service project id or service project number for which aggregated -// list request is invoked for subnetworks list-usable api. +// Shared VPC service project id or service project number for which +// aggregated list request is invoked for subnetworks list-usable api. func (c *BackendServicesAggregatedListCall) ServiceProjectNumber(serviceProjectNumber int64) *BackendServicesAggregatedListCall { c.urlParams_.Set("serviceProjectNumber", fmt.Sprint(serviceProjectNumber)) return c @@ -4432,12 +5951,11 @@ func (c *BackendServicesAggregatedListCall) doRequest(alt string) (*http.Respons if c.ifNoneMatch_ != "" { reqHeaders.Set("If-None-Match", c.ifNoneMatch_) } - var body io.Reader = nil c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/aggregated/backendServices") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("GET", urls, body) + req, err := http.NewRequest("GET", urls, nil) if err != nil { return nil, err } @@ -4445,6 +5963,7 @@ func (c *BackendServicesAggregatedListCall) doRequest(alt string) (*http.Respons googleapi.Expand(req.URL, map[string]string{ "project": c.project, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.backendServices.aggregatedList", "request", internallog.HTTPRequest(req, nil)) return gensupport.SendRequest(c.ctx_, c.s.client, req) } @@ -4480,9 +5999,11 @@ func (c *BackendServicesAggregatedListCall) Do(opts ...googleapi.CallOption) (*B }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.backendServices.aggregatedList", "response", internallog.HTTPResponse(res, b)) return ret, nil } @@ -4528,15 +6049,22 @@ func (r *BackendServicesService) Delete(project string, backendService string) * } // 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). +// 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 *BackendServicesDeleteCall) RequestId(requestId string) *BackendServicesDeleteCall { c.urlParams_.Set("requestId", requestId) return c @@ -4567,12 +6095,11 @@ func (c *BackendServicesDeleteCall) Header() http.Header { func (c *BackendServicesDeleteCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) - var body io.Reader = nil c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/backendServices/{backendService}") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("DELETE", urls, body) + req, err := http.NewRequest("DELETE", urls, nil) if err != nil { return nil, err } @@ -4581,6 +6108,7 @@ func (c *BackendServicesDeleteCall) doRequest(alt string) (*http.Response, error "project": c.project, "backendService": c.backendService, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.backendServices.delete", "request", internallog.HTTPRequest(req, nil)) return gensupport.SendRequest(c.ctx_, c.s.client, req) } @@ -4615,9 +6143,11 @@ func (c *BackendServicesDeleteCall) Do(opts ...googleapi.CallOption) (*Operation }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.backendServices.delete", "response", internallog.HTTPResponse(res, b)) return ret, nil } @@ -4631,12 +6161,15 @@ type BackendServicesDeleteSignedUrlKeyCall struct { } // DeleteSignedUrlKey: Deletes a key for validating requests with signed URLs -// for this backend service. +// for this backend +// service. // // - backendService: Name of the BackendService resource to which the Signed -// URL Key should be added. The name should conform to RFC1035. -// - keyName: The name of the Signed URL Key to delete. -// - project: Project ID for this request. +// URL Key should be +// +// added. The name should conform to RFC1035. +// - keyName: The name of the Signed URL Key to delete. +// - project: Project ID for this request. func (r *BackendServicesService) DeleteSignedUrlKey(project string, backendService string, keyName string) *BackendServicesDeleteSignedUrlKeyCall { c := &BackendServicesDeleteSignedUrlKeyCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project @@ -4646,15 +6179,22 @@ func (r *BackendServicesService) DeleteSignedUrlKey(project string, backendServi } // 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). +// 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 @@ -4685,12 +6225,11 @@ func (c *BackendServicesDeleteSignedUrlKeyCall) Header() http.Header { func (c *BackendServicesDeleteSignedUrlKeyCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) - var body io.Reader = nil c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/backendServices/{backendService}/deleteSignedUrlKey") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("POST", urls, body) + req, err := http.NewRequest("POST", urls, nil) if err != nil { return nil, err } @@ -4699,6 +6238,7 @@ func (c *BackendServicesDeleteSignedUrlKeyCall) doRequest(alt string) (*http.Res "project": c.project, "backendService": c.backendService, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.backendServices.deleteSignedUrlKey", "request", internallog.HTTPRequest(req, nil)) return gensupport.SendRequest(c.ctx_, c.s.client, req) } @@ -4733,9 +6273,11 @@ func (c *BackendServicesDeleteSignedUrlKeyCall) Do(opts ...googleapi.CallOption) }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.backendServices.deleteSignedUrlKey", "response", internallog.HTTPResponse(res, b)) return ret, nil } @@ -4796,12 +6338,11 @@ func (c *BackendServicesGetCall) doRequest(alt string) (*http.Response, error) { if c.ifNoneMatch_ != "" { reqHeaders.Set("If-None-Match", c.ifNoneMatch_) } - var body io.Reader = nil c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/backendServices/{backendService}") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("GET", urls, body) + req, err := http.NewRequest("GET", urls, nil) if err != nil { return nil, err } @@ -4810,6 +6351,7 @@ func (c *BackendServicesGetCall) doRequest(alt string) (*http.Response, error) { "project": c.project, "backendService": c.backendService, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.backendServices.get", "request", internallog.HTTPRequest(req, nil)) return gensupport.SendRequest(c.ctx_, c.s.client, req) } @@ -4844,12 +6386,104 @@ func (c *BackendServicesGetCall) Do(opts ...googleapi.CallOption) (*BackendServi }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.backendServices.get", "response", internallog.HTTPResponse(res, b)) return ret, nil } +type BackendServicesGetEffectiveSecurityPoliciesCall struct { + s *Service + project string + backendService string + urlParams_ gensupport.URLParams + ifNoneMatch_ string + ctx_ context.Context + header_ http.Header +} + +// GetEffectiveSecurityPolicies: Returns effective security policies applied to +// this backend service. +// +// - backendService: Name of the Backend Service for this request. +// - project: Project ID for this request. +func (r *BackendServicesService) GetEffectiveSecurityPolicies(project string, backendService string) *BackendServicesGetEffectiveSecurityPoliciesCall { + c := &BackendServicesGetEffectiveSecurityPoliciesCall{s: r.s, urlParams_: make(gensupport.URLParams)} + c.project = project + c.backendService = backendService + return c +} + +// Fields allows partial responses to be retrieved. See +// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more +// details. +func (c *BackendServicesGetEffectiveSecurityPoliciesCall) Fields(s ...googleapi.Field) *BackendServicesGetEffectiveSecurityPoliciesCall { + c.urlParams_.Set("fields", googleapi.CombineFields(s)) + return c +} + +// IfNoneMatch sets an 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. +func (c *BackendServicesGetEffectiveSecurityPoliciesCall) IfNoneMatch(entityTag string) *BackendServicesGetEffectiveSecurityPoliciesCall { + c.ifNoneMatch_ = entityTag + return c +} + +// Context sets the context to be used in this call's Do method. +func (c *BackendServicesGetEffectiveSecurityPoliciesCall) Context(ctx context.Context) *BackendServicesGetEffectiveSecurityPoliciesCall { + c.ctx_ = ctx + return c +} + +// Header returns a http.Header that can be modified by the caller to add +// headers to the request. +func (c *BackendServicesGetEffectiveSecurityPoliciesCall) Header() http.Header { + if c.header_ == nil { + c.header_ = make(http.Header) + } + return c.header_ +} + +func (c *BackendServicesGetEffectiveSecurityPoliciesCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) + if c.ifNoneMatch_ != "" { + reqHeaders.Set("If-None-Match", c.ifNoneMatch_) + } + c.urlParams_.Set("alt", alt) + c.urlParams_.Set("prettyPrint", "false") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/backendServices/{backendService}/getEffectiveSecurityPolicies") + urls += "?" + c.urlParams_.Encode() + req, err := http.NewRequest("GET", urls, nil) + if err != nil { + return nil, err + } + req.Header = reqHeaders + googleapi.Expand(req.URL, map[string]string{ + "project": c.project, + "backendService": c.backendService, + }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.backendServices.getEffectiveSecurityPolicies", "request", internallog.HTTPRequest(req, nil)) + return gensupport.SendRequest(c.ctx_, c.s.client, req) +} + +// Do executes the "compute.backendServices.getEffectiveSecurityPolicies" call. +func (c *BackendServicesGetEffectiveSecurityPoliciesCall) Do(opts ...googleapi.CallOption) error { + gensupport.SetOptions(c.urlParams_, opts...) + res, err := c.doRequest("json") + if err != nil { + return err + } + defer googleapi.CloseBody(res) + if err := googleapi.CheckResponse(res); err != nil { + return gensupport.WrapError(err) + } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.backendServices.getEffectiveSecurityPolicies", "response", internallog.HTTPResponse(res, nil)) + return nil +} + type BackendServicesGetHealthCall struct { s *Service project string @@ -4860,13 +6494,19 @@ type BackendServicesGetHealthCall struct { header_ http.Header } -// GetHealth: Gets the most recent health check results for this -// BackendService. Example request body: { "group": -// "/zones/us-east1-b/instanceGroups/lb-backend-example" } +// GetHealth: Gets the most recent health check results for +// this +// BackendService. // -// - backendService: Name of the BackendService resource to which the queried -// instance belongs. -// - project: . +// Example request body: +// +// { +// "group": "/zones/us-east1-b/instanceGroups/lb-backend-example" +// } +// +// - backendService: Name of the BackendService resource to which the queried +// instance belongs. +// - project: . func (r *BackendServicesService) GetHealth(project string, backendService string, resourcegroupreference *ResourceGroupReference) *BackendServicesGetHealthCall { c := &BackendServicesGetHealthCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project @@ -4900,8 +6540,7 @@ func (c *BackendServicesGetHealthCall) Header() http.Header { func (c *BackendServicesGetHealthCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) - var body io.Reader = nil - body, err := googleapi.WithoutDataWrapper.JSONReader(c.resourcegroupreference) + body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.resourcegroupreference) if err != nil { return nil, err } @@ -4918,6 +6557,7 @@ func (c *BackendServicesGetHealthCall) doRequest(alt string) (*http.Response, er "project": c.project, "backendService": c.backendService, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.backendServices.getHealth", "request", internallog.HTTPRequest(req, body.Bytes())) return gensupport.SendRequest(c.ctx_, c.s.client, req) } @@ -4953,9 +6593,11 @@ func (c *BackendServicesGetHealthCall) Do(opts ...googleapi.CallOption) (*Backen }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.backendServices.getHealth", "response", internallog.HTTPResponse(res, b)) return ret, nil } @@ -4970,7 +6612,8 @@ type BackendServicesGetIamPolicyCall struct { } // GetIamPolicy: Gets the access control policy for a resource. May be empty if -// no such policy or resource exists. +// no such +// policy or resource exists. // // - project: Project ID for this request. // - resource: Name or id of the resource for this request. @@ -5024,12 +6667,11 @@ func (c *BackendServicesGetIamPolicyCall) doRequest(alt string) (*http.Response, if c.ifNoneMatch_ != "" { reqHeaders.Set("If-None-Match", c.ifNoneMatch_) } - var body io.Reader = nil c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/backendServices/{resource}/getIamPolicy") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("GET", urls, body) + req, err := http.NewRequest("GET", urls, nil) if err != nil { return nil, err } @@ -5038,6 +6680,7 @@ func (c *BackendServicesGetIamPolicyCall) doRequest(alt string) (*http.Response, "project": c.project, "resource": c.resource, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.backendServices.getIamPolicy", "request", internallog.HTTPRequest(req, nil)) return gensupport.SendRequest(c.ctx_, c.s.client, req) } @@ -5072,9 +6715,11 @@ func (c *BackendServicesGetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Pol }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.backendServices.getIamPolicy", "response", internallog.HTTPResponse(res, b)) return ret, nil } @@ -5087,9 +6732,9 @@ type BackendServicesInsertCall struct { header_ http.Header } -// Insert: Creates a BackendService resource in the specified project using the -// data included in the request. For more information, see Backend services -// overview . +// Insert: Creates a BackendService resource in the specified project using +// the data included in the request. For more information, see +// Backend services overview. // // - project: Project ID for this request. func (r *BackendServicesService) Insert(project string, backendservice *BackendService) *BackendServicesInsertCall { @@ -5100,15 +6745,22 @@ func (r *BackendServicesService) Insert(project string, backendservice *BackendS } // 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). +// 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 *BackendServicesInsertCall) RequestId(requestId string) *BackendServicesInsertCall { c.urlParams_.Set("requestId", requestId) return c @@ -5139,8 +6791,7 @@ func (c *BackendServicesInsertCall) Header() http.Header { func (c *BackendServicesInsertCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) - var body io.Reader = nil - body, err := googleapi.WithoutDataWrapper.JSONReader(c.backendservice) + body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.backendservice) if err != nil { return nil, err } @@ -5156,6 +6807,7 @@ func (c *BackendServicesInsertCall) doRequest(alt string) (*http.Response, error googleapi.Expand(req.URL, map[string]string{ "project": c.project, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.backendServices.insert", "request", internallog.HTTPRequest(req, body.Bytes())) return gensupport.SendRequest(c.ctx_, c.s.client, req) } @@ -5190,9 +6842,11 @@ func (c *BackendServicesInsertCall) Do(opts ...googleapi.CallOption) (*Operation }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.backendServices.insert", "response", internallog.HTTPResponse(res, b)) return ret, nil } @@ -5206,7 +6860,8 @@ type BackendServicesListCall struct { } // List: Retrieves the list of BackendService resources available to the -// specified project. +// specified +// project. // // - project: Project ID for this request. func (r *BackendServicesService) List(project string) *BackendServicesListCall { @@ -5216,78 +6871,128 @@ func (r *BackendServicesService) List(project string) *BackendServicesListCall { } // Filter sets the optional parameter "filter": A filter expression that -// filters resources listed in the response. Most Compute resources support two -// types of filter expressions: expressions that support regular expressions -// and expressions that follow API improvement proposal AIP-160. These two -// types of filter expressions cannot be mixed in one request. If you want to -// use AIP-160, your expression must specify the field name, an operator, and -// the value that you want to use for filtering. The value must be a string, a -// number, or a boolean. The 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`. The `:*` comparison can be used to test whether a key has -// been defined. For example, to find all objects with `owner` label use: ``` -// labels.owner:* ``` 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) ``` If you want to use a regular -// expression, use the `eq` (equal) or `ne` (not equal) operator against a -// single un-parenthesized expression with or without quotes or against -// multiple parenthesized expressions. Examples: `fieldname eq unquoted -// literal` `fieldname eq 'single quoted literal'` `fieldname eq "double quoted -// literal" `(fieldname1 eq literal) (fieldname2 ne "literal")` The literal -// value is interpreted as a regular expression using Google RE2 library -// syntax. The literal value must match the entire field. For example, to -// filter for instances that do not end with name "instance", you would use -// `name ne .*instance`. You cannot combine constraints on multiple fields -// using regular expressions. +// filters resources listed in the response. Most +// Compute resources support two types of filter expressions: +// expressions that support regular expressions and expressions that follow +// API improvement proposal AIP-160. +// These two types of filter expressions cannot be mixed in one request. +// +// If you want to use AIP-160, your expression must specify the field name, +// an +// operator, and the value that you want to use for filtering. The value +// must be a string, a number, or a boolean. The 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`. +// +// The `:*` comparison can be used to test whether a key has been defined. +// For example, to find all objects with `owner` label +// use: +// ``` +// labels.owner:* +// ``` +// +// 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 onresource 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) +// ``` +// +// If you want to use a regular expression, use the `eq` (equal) or `ne` +// (not equal) operator against a single un-parenthesized expression with +// or +// without quotes or against multiple parenthesized expressions. +// Examples: +// +// `fieldname eq unquoted literal` +// `fieldname eq 'single quoted literal'` +// `fieldname eq "double quoted literal" +// `(fieldname1 eq literal) (fieldname2 ne "literal")` +// +// The literal value is interpreted as a regular expression using GoogleRE2 +// library syntax. +// The literal value must match the entire field. +// +// For example, to filter for instances that do not end with name +// "instance", +// you would use `name ne .*instance`. +// +// You cannot combine constraints on multiple fields using regular +// expressions. func (c *BackendServicesListCall) Filter(filter string) *BackendServicesListCall { 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`) +// 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 *BackendServicesListCall) MaxResults(maxResults int64) *BackendServicesListCall { 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. +// 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 *BackendServicesListCall) OrderBy(orderBy string) *BackendServicesListCall { 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. +// use. Set `pageToken` to the +// `nextPageToken` returned by a previous list request to get +// the next page of results. func (c *BackendServicesListCall) PageToken(pageToken string) *BackendServicesListCall { c.urlParams_.Set("pageToken", pageToken) return c } // ReturnPartialSuccess sets the optional parameter "returnPartialSuccess": -// Opt-in for partial success behavior which provides partial results in case -// of failure. The default value is false. For example, when partial success -// behavior is enabled, aggregatedList for a single zone scope either returns -// all resources in the zone or no resources, with an error code. +// Opt-in for partial success behavior which provides partial results in +// case +// of failure. The default value is false. +// +// For example, when partial success behavior is enabled, aggregatedList for +// a +// single zone scope either returns all resources in the zone or no +// resources, +// with an error code. func (c *BackendServicesListCall) ReturnPartialSuccess(returnPartialSuccess bool) *BackendServicesListCall { c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess)) return c @@ -5329,12 +7034,11 @@ func (c *BackendServicesListCall) doRequest(alt string) (*http.Response, error) if c.ifNoneMatch_ != "" { reqHeaders.Set("If-None-Match", c.ifNoneMatch_) } - var body io.Reader = nil c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/backendServices") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("GET", urls, body) + req, err := http.NewRequest("GET", urls, nil) if err != nil { return nil, err } @@ -5342,6 +7046,7 @@ func (c *BackendServicesListCall) doRequest(alt string) (*http.Response, error) googleapi.Expand(req.URL, map[string]string{ "project": c.project, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.backendServices.list", "request", internallog.HTTPRequest(req, nil)) return gensupport.SendRequest(c.ctx_, c.s.client, req) } @@ -5377,9 +7082,11 @@ func (c *BackendServicesListCall) Do(opts ...googleapi.CallOption) (*BackendServ }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.backendServices.list", "response", internallog.HTTPResponse(res, b)) return ret, nil } @@ -5413,8 +7120,12 @@ type BackendServicesListUsableCall struct { header_ http.Header } -// ListUsable: Retrieves an aggregated list of all usable backend services in -// the specified project. +// ListUsable: Retrieves a list of all usable backend services for Application +// Load +// Balancers and Proxy Network Load Balancers in the specified project. +// Backend services for external and internal passthrough Network +// Load +// Balancers are not included in the response. // // - project: Project ID for this request. func (r *BackendServicesService) ListUsable(project string) *BackendServicesListUsableCall { @@ -5424,78 +7135,128 @@ func (r *BackendServicesService) ListUsable(project string) *BackendServicesList } // Filter sets the optional parameter "filter": A filter expression that -// filters resources listed in the response. Most Compute resources support two -// types of filter expressions: expressions that support regular expressions -// and expressions that follow API improvement proposal AIP-160. These two -// types of filter expressions cannot be mixed in one request. If you want to -// use AIP-160, your expression must specify the field name, an operator, and -// the value that you want to use for filtering. The value must be a string, a -// number, or a boolean. The 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`. The `:*` comparison can be used to test whether a key has -// been defined. For example, to find all objects with `owner` label use: ``` -// labels.owner:* ``` 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) ``` If you want to use a regular -// expression, use the `eq` (equal) or `ne` (not equal) operator against a -// single un-parenthesized expression with or without quotes or against -// multiple parenthesized expressions. Examples: `fieldname eq unquoted -// literal` `fieldname eq 'single quoted literal'` `fieldname eq "double quoted -// literal" `(fieldname1 eq literal) (fieldname2 ne "literal")` The literal -// value is interpreted as a regular expression using Google RE2 library -// syntax. The literal value must match the entire field. For example, to -// filter for instances that do not end with name "instance", you would use -// `name ne .*instance`. You cannot combine constraints on multiple fields -// using regular expressions. +// filters resources listed in the response. Most +// Compute resources support two types of filter expressions: +// expressions that support regular expressions and expressions that follow +// API improvement proposal AIP-160. +// These two types of filter expressions cannot be mixed in one request. +// +// If you want to use AIP-160, your expression must specify the field name, +// an +// operator, and the value that you want to use for filtering. The value +// must be a string, a number, or a boolean. The 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`. +// +// The `:*` comparison can be used to test whether a key has been defined. +// For example, to find all objects with `owner` label +// use: +// ``` +// labels.owner:* +// ``` +// +// 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 onresource 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) +// ``` +// +// If you want to use a regular expression, use the `eq` (equal) or `ne` +// (not equal) operator against a single un-parenthesized expression with +// or +// without quotes or against multiple parenthesized expressions. +// Examples: +// +// `fieldname eq unquoted literal` +// `fieldname eq 'single quoted literal'` +// `fieldname eq "double quoted literal" +// `(fieldname1 eq literal) (fieldname2 ne "literal")` +// +// The literal value is interpreted as a regular expression using GoogleRE2 +// library syntax. +// The literal value must match the entire field. +// +// For example, to filter for instances that do not end with name +// "instance", +// you would use `name ne .*instance`. +// +// You cannot combine constraints on multiple fields using regular +// expressions. func (c *BackendServicesListUsableCall) Filter(filter string) *BackendServicesListUsableCall { 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`) +// 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 *BackendServicesListUsableCall) MaxResults(maxResults int64) *BackendServicesListUsableCall { 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. +// 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 *BackendServicesListUsableCall) OrderBy(orderBy string) *BackendServicesListUsableCall { 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. +// use. Set `pageToken` to the +// `nextPageToken` returned by a previous list request to get +// the next page of results. func (c *BackendServicesListUsableCall) PageToken(pageToken string) *BackendServicesListUsableCall { c.urlParams_.Set("pageToken", pageToken) return c } // ReturnPartialSuccess sets the optional parameter "returnPartialSuccess": -// Opt-in for partial success behavior which provides partial results in case -// of failure. The default value is false. For example, when partial success -// behavior is enabled, aggregatedList for a single zone scope either returns -// all resources in the zone or no resources, with an error code. +// Opt-in for partial success behavior which provides partial results in +// case +// of failure. The default value is false. +// +// For example, when partial success behavior is enabled, aggregatedList for +// a +// single zone scope either returns all resources in the zone or no +// resources, +// with an error code. func (c *BackendServicesListUsableCall) ReturnPartialSuccess(returnPartialSuccess bool) *BackendServicesListUsableCall { c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess)) return c @@ -5537,12 +7298,11 @@ func (c *BackendServicesListUsableCall) doRequest(alt string) (*http.Response, e if c.ifNoneMatch_ != "" { reqHeaders.Set("If-None-Match", c.ifNoneMatch_) } - var body io.Reader = nil c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/backendServices/listUsable") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("GET", urls, body) + req, err := http.NewRequest("GET", urls, nil) if err != nil { return nil, err } @@ -5550,6 +7310,7 @@ func (c *BackendServicesListUsableCall) doRequest(alt string) (*http.Response, e googleapi.Expand(req.URL, map[string]string{ "project": c.project, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.backendServices.listUsable", "request", internallog.HTTPRequest(req, nil)) return gensupport.SendRequest(c.ctx_, c.s.client, req) } @@ -5585,9 +7346,11 @@ func (c *BackendServicesListUsableCall) Do(opts ...googleapi.CallOption) (*Backe }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.backendServices.listUsable", "response", internallog.HTTPResponse(res, b)) return ret, nil } @@ -5623,9 +7386,11 @@ type BackendServicesPatchCall struct { } // Patch: Patches the specified BackendService resource with the data included -// in the request. For more information, see Backend services overview. This -// method supports PATCH semantics and uses the JSON merge patch format and -// processing rules. +// in the +// request. For more information, see +// Backend services overview. This method +// supports PATCH semantics and uses the JSON merge +// patch format and processing rules. // // - backendService: Name of the BackendService resource to patch. // - project: Project ID for this request. @@ -5638,15 +7403,22 @@ func (r *BackendServicesService) Patch(project string, backendService string, ba } // 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). +// 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 *BackendServicesPatchCall) RequestId(requestId string) *BackendServicesPatchCall { c.urlParams_.Set("requestId", requestId) return c @@ -5677,8 +7449,7 @@ func (c *BackendServicesPatchCall) Header() http.Header { func (c *BackendServicesPatchCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) - var body io.Reader = nil - body, err := googleapi.WithoutDataWrapper.JSONReader(c.backendservice) + body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.backendservice) if err != nil { return nil, err } @@ -5695,6 +7466,7 @@ func (c *BackendServicesPatchCall) doRequest(alt string) (*http.Response, error) "project": c.project, "backendService": c.backendService, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.backendServices.patch", "request", internallog.HTTPRequest(req, body.Bytes())) return gensupport.SendRequest(c.ctx_, c.s.client, req) } @@ -5729,9 +7501,11 @@ func (c *BackendServicesPatchCall) Do(opts ...googleapi.CallOption) (*Operation, }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.backendServices.patch", "response", internallog.HTTPResponse(res, b)) return ret, nil } @@ -5749,8 +7523,10 @@ type BackendServicesSetEdgeSecurityPolicyCall struct { // backend service. // // - backendService: Name of the BackendService resource to which the edge -// security policy should be set. The name should conform to RFC1035. -// - project: Project ID for this request. +// security policy +// +// should be set. The name should conform to RFC1035. +// - project: Project ID for this request. func (r *BackendServicesService) SetEdgeSecurityPolicy(project string, backendService string, securitypolicyreference *SecurityPolicyReference) *BackendServicesSetEdgeSecurityPolicyCall { c := &BackendServicesSetEdgeSecurityPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project @@ -5760,15 +7536,22 @@ func (r *BackendServicesService) SetEdgeSecurityPolicy(project string, backendSe } // 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). +// 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 *BackendServicesSetEdgeSecurityPolicyCall) RequestId(requestId string) *BackendServicesSetEdgeSecurityPolicyCall { c.urlParams_.Set("requestId", requestId) return c @@ -5799,8 +7582,7 @@ func (c *BackendServicesSetEdgeSecurityPolicyCall) Header() http.Header { func (c *BackendServicesSetEdgeSecurityPolicyCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) - var body io.Reader = nil - body, err := googleapi.WithoutDataWrapper.JSONReader(c.securitypolicyreference) + body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.securitypolicyreference) if err != nil { return nil, err } @@ -5817,6 +7599,7 @@ func (c *BackendServicesSetEdgeSecurityPolicyCall) doRequest(alt string) (*http. "project": c.project, "backendService": c.backendService, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.backendServices.setEdgeSecurityPolicy", "request", internallog.HTTPRequest(req, body.Bytes())) return gensupport.SendRequest(c.ctx_, c.s.client, req) } @@ -5851,9 +7634,11 @@ func (c *BackendServicesSetEdgeSecurityPolicyCall) Do(opts ...googleapi.CallOpti }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.backendServices.setEdgeSecurityPolicy", "response", internallog.HTTPResponse(res, b)) return ret, nil } @@ -5867,7 +7652,8 @@ type BackendServicesSetIamPolicyCall struct { header_ http.Header } -// SetIamPolicy: Sets the access control policy on the specified resource. +// SetIamPolicy: Sets the access control policy on the specified +// resource. // Replaces any existing policy. // // - project: Project ID for this request. @@ -5905,8 +7691,7 @@ func (c *BackendServicesSetIamPolicyCall) Header() http.Header { func (c *BackendServicesSetIamPolicyCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) - var body io.Reader = nil - body, err := googleapi.WithoutDataWrapper.JSONReader(c.globalsetpolicyrequest) + body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.globalsetpolicyrequest) if err != nil { return nil, err } @@ -5923,6 +7708,7 @@ func (c *BackendServicesSetIamPolicyCall) doRequest(alt string) (*http.Response, "project": c.project, "resource": c.resource, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.backendServices.setIamPolicy", "request", internallog.HTTPRequest(req, body.Bytes())) return gensupport.SendRequest(c.ctx_, c.s.client, req) } @@ -5957,9 +7743,11 @@ func (c *BackendServicesSetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Pol }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.backendServices.setIamPolicy", "response", internallog.HTTPResponse(res, b)) return ret, nil } @@ -5974,12 +7762,15 @@ type BackendServicesSetSecurityPolicyCall struct { } // SetSecurityPolicy: Sets the Google Cloud Armor security policy for the -// specified backend service. For more information, see Google Cloud Armor -// Overview +// specified backend +// service. For more information, seeGoogle +// Cloud Armor Overview // // - backendService: Name of the BackendService resource to which the security -// policy should be set. The name should conform to RFC1035. -// - project: Project ID for this request. +// policy should be +// +// set. The name should conform to RFC1035. +// - project: Project ID for this request. func (r *BackendServicesService) SetSecurityPolicy(project string, backendService string, securitypolicyreference *SecurityPolicyReference) *BackendServicesSetSecurityPolicyCall { c := &BackendServicesSetSecurityPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project @@ -5989,15 +7780,22 @@ func (r *BackendServicesService) SetSecurityPolicy(project string, backendServic } // 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). +// 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 *BackendServicesSetSecurityPolicyCall) RequestId(requestId string) *BackendServicesSetSecurityPolicyCall { c.urlParams_.Set("requestId", requestId) return c @@ -6028,8 +7826,7 @@ func (c *BackendServicesSetSecurityPolicyCall) Header() http.Header { func (c *BackendServicesSetSecurityPolicyCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) - var body io.Reader = nil - body, err := googleapi.WithoutDataWrapper.JSONReader(c.securitypolicyreference) + body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.securitypolicyreference) if err != nil { return nil, err } @@ -6046,6 +7843,7 @@ func (c *BackendServicesSetSecurityPolicyCall) doRequest(alt string) (*http.Resp "project": c.project, "backendService": c.backendService, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.backendServices.setSecurityPolicy", "request", internallog.HTTPRequest(req, body.Bytes())) return gensupport.SendRequest(c.ctx_, c.s.client, req) } @@ -6080,9 +7878,11 @@ func (c *BackendServicesSetSecurityPolicyCall) Do(opts ...googleapi.CallOption) }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.backendServices.setSecurityPolicy", "response", internallog.HTTPResponse(res, b)) return ret, nil } @@ -6134,8 +7934,7 @@ func (c *BackendServicesTestIamPermissionsCall) Header() http.Header { func (c *BackendServicesTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) - var body io.Reader = nil - body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest) + body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.testpermissionsrequest) if err != nil { return nil, err } @@ -6152,6 +7951,7 @@ func (c *BackendServicesTestIamPermissionsCall) doRequest(alt string) (*http.Res "project": c.project, "resource": c.resource, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.backendServices.testIamPermissions", "request", internallog.HTTPRequest(req, body.Bytes())) return gensupport.SendRequest(c.ctx_, c.s.client, req) } @@ -6187,9 +7987,11 @@ func (c *BackendServicesTestIamPermissionsCall) Do(opts ...googleapi.CallOption) }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.backendServices.testIamPermissions", "response", internallog.HTTPResponse(res, b)) return ret, nil } @@ -6204,7 +8006,9 @@ type BackendServicesUpdateCall struct { } // Update: Updates the specified BackendService resource with the data included -// in the request. For more information, see Backend services overview. +// in the +// request. For more information, seeBackend +// services overview. // // - backendService: Name of the BackendService resource to update. // - project: Project ID for this request. @@ -6217,15 +8021,22 @@ func (r *BackendServicesService) Update(project string, backendService string, b } // 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). +// 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 *BackendServicesUpdateCall) RequestId(requestId string) *BackendServicesUpdateCall { c.urlParams_.Set("requestId", requestId) return c @@ -6256,8 +8067,7 @@ func (c *BackendServicesUpdateCall) Header() http.Header { func (c *BackendServicesUpdateCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) - var body io.Reader = nil - body, err := googleapi.WithoutDataWrapper.JSONReader(c.backendservice) + body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.backendservice) if err != nil { return nil, err } @@ -6274,6 +8084,7 @@ func (c *BackendServicesUpdateCall) doRequest(alt string) (*http.Response, error "project": c.project, "backendService": c.backendService, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.backendServices.update", "request", internallog.HTTPRequest(req, body.Bytes())) return gensupport.SendRequest(c.ctx_, c.s.client, req) } @@ -6308,135 +8119,163 @@ func (c *BackendServicesUpdateCall) Do(opts ...googleapi.CallOption) (*Operation }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.backendServices.update", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type DiskTypesAggregatedListCall struct { - s *Service - project string - urlParams_ gensupport.URLParams - ifNoneMatch_ string - ctx_ context.Context - header_ http.Header +type CrossSiteNetworksDeleteCall struct { + s *Service + project string + crossSiteNetwork string + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header } -// AggregatedList: Retrieves an aggregated list of disk types. To prevent -// failure, Google recommends that you set the `returnPartialSuccess` parameter -// to `true`. +// Delete: Deletes the specified cross-site network in the given scope. // +// - crossSiteNetwork: Name of the cross-site network to delete. // - project: Project ID for this request. -func (r *DiskTypesService) AggregatedList(project string) *DiskTypesAggregatedListCall { - c := &DiskTypesAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)} +func (r *CrossSiteNetworksService) Delete(project string, crossSiteNetwork string) *CrossSiteNetworksDeleteCall { + c := &CrossSiteNetworksDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project + c.crossSiteNetwork = crossSiteNetwork return c } -// Filter sets the optional parameter "filter": A filter expression that -// filters resources listed in the response. Most Compute resources support two -// types of filter expressions: expressions that support regular expressions -// and expressions that follow API improvement proposal AIP-160. These two -// types of filter expressions cannot be mixed in one request. If you want to -// use AIP-160, your expression must specify the field name, an operator, and -// the value that you want to use for filtering. The value must be a string, a -// number, or a boolean. The 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`. The `:*` comparison can be used to test whether a key has -// been defined. For example, to find all objects with `owner` label use: ``` -// labels.owner:* ``` 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) ``` If you want to use a regular -// expression, use the `eq` (equal) or `ne` (not equal) operator against a -// single un-parenthesized expression with or without quotes or against -// multiple parenthesized expressions. Examples: `fieldname eq unquoted -// literal` `fieldname eq 'single quoted literal'` `fieldname eq "double quoted -// literal" `(fieldname1 eq literal) (fieldname2 ne "literal")` The literal -// value is interpreted as a regular expression using Google RE2 library -// syntax. The literal value must match the entire field. For example, to -// filter for instances that do not end with name "instance", you would use -// `name ne .*instance`. You cannot combine constraints on multiple fields -// using regular expressions. -func (c *DiskTypesAggregatedListCall) Filter(filter string) *DiskTypesAggregatedListCall { - c.urlParams_.Set("filter", filter) +// 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). +// end_interface: MixerMutationRequestBuilder +func (c *CrossSiteNetworksDeleteCall) RequestId(requestId string) *CrossSiteNetworksDeleteCall { + c.urlParams_.Set("requestId", requestId) return c } -// IncludeAllScopes sets the optional parameter "includeAllScopes": Indicates -// whether every visible scope for each scope type (zone, region, global) -// should be included in the response. For new resource types added after this -// field, the flag has no effect as new resource types will always include -// every visible scope for each scope type in response. For resource types -// which predate this field, if this flag is omitted or false, only scopes of -// the scope types where the resource type is expected to be found will be -// included. -func (c *DiskTypesAggregatedListCall) IncludeAllScopes(includeAllScopes bool) *DiskTypesAggregatedListCall { - c.urlParams_.Set("includeAllScopes", fmt.Sprint(includeAllScopes)) +// Fields allows partial responses to be retrieved. See +// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more +// details. +func (c *CrossSiteNetworksDeleteCall) Fields(s ...googleapi.Field) *CrossSiteNetworksDeleteCall { + c.urlParams_.Set("fields", googleapi.CombineFields(s)) 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 *DiskTypesAggregatedListCall) MaxResults(maxResults int64) *DiskTypesAggregatedListCall { - c.urlParams_.Set("maxResults", fmt.Sprint(maxResults)) +// Context sets the context to be used in this call's Do method. +func (c *CrossSiteNetworksDeleteCall) Context(ctx context.Context) *CrossSiteNetworksDeleteCall { + c.ctx_ = ctx 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 *DiskTypesAggregatedListCall) OrderBy(orderBy string) *DiskTypesAggregatedListCall { - c.urlParams_.Set("orderBy", orderBy) - return c +// Header returns a http.Header that can be modified by the caller to add +// headers to the request. +func (c *CrossSiteNetworksDeleteCall) Header() http.Header { + if c.header_ == nil { + c.header_ = make(http.Header) + } + return c.header_ } -// 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 *DiskTypesAggregatedListCall) PageToken(pageToken string) *DiskTypesAggregatedListCall { - c.urlParams_.Set("pageToken", pageToken) - return c +func (c *CrossSiteNetworksDeleteCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) + c.urlParams_.Set("alt", alt) + c.urlParams_.Set("prettyPrint", "false") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/crossSiteNetworks/{crossSiteNetwork}") + urls += "?" + c.urlParams_.Encode() + req, err := http.NewRequest("DELETE", urls, nil) + if err != nil { + return nil, err + } + req.Header = reqHeaders + googleapi.Expand(req.URL, map[string]string{ + "project": c.project, + "crossSiteNetwork": c.crossSiteNetwork, + }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.crossSiteNetworks.delete", "request", internallog.HTTPRequest(req, nil)) + return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// ReturnPartialSuccess sets the optional parameter "returnPartialSuccess": -// Opt-in for partial success behavior which provides partial results in case -// of failure. The default value is false. For example, when partial success -// behavior is enabled, aggregatedList for a single zone scope either returns -// all resources in the zone or no resources, with an error code. -func (c *DiskTypesAggregatedListCall) ReturnPartialSuccess(returnPartialSuccess bool) *DiskTypesAggregatedListCall { - c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess)) - return c +// Do executes the "compute.crossSiteNetworks.delete" call. +// 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 *CrossSiteNetworksDeleteCall) 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, gensupport.WrapError(&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, gensupport.WrapError(err) + } + ret := &Operation{ + ServerResponse: googleapi.ServerResponse{ + Header: res.Header, + HTTPStatusCode: res.StatusCode, + }, + } + target := &ret + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { + return nil, err + } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.crossSiteNetworks.delete", "response", internallog.HTTPResponse(res, b)) + return ret, nil } -// ServiceProjectNumber sets the optional parameter "serviceProjectNumber": The -// Shared VPC service project id or service project number for which aggregated -// list request is invoked for subnetworks list-usable api. -func (c *DiskTypesAggregatedListCall) ServiceProjectNumber(serviceProjectNumber int64) *DiskTypesAggregatedListCall { - c.urlParams_.Set("serviceProjectNumber", fmt.Sprint(serviceProjectNumber)) +type CrossSiteNetworksGetCall struct { + s *Service + project string + crossSiteNetwork string + urlParams_ gensupport.URLParams + ifNoneMatch_ string + ctx_ context.Context + header_ http.Header +} + +// Get: Returns the specified cross-site network in the given scope. +// +// - crossSiteNetwork: Name of the cross-site network to return. +// - project: Project ID for this request. +func (r *CrossSiteNetworksService) Get(project string, crossSiteNetwork string) *CrossSiteNetworksGetCall { + c := &CrossSiteNetworksGetCall{s: r.s, urlParams_: make(gensupport.URLParams)} + c.project = project + c.crossSiteNetwork = crossSiteNetwork return c } // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *DiskTypesAggregatedListCall) Fields(s ...googleapi.Field) *DiskTypesAggregatedListCall { +func (c *CrossSiteNetworksGetCall) Fields(s ...googleapi.Field) *CrossSiteNetworksGetCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } @@ -6444,54 +8283,55 @@ func (c *DiskTypesAggregatedListCall) Fields(s ...googleapi.Field) *DiskTypesAgg // IfNoneMatch sets an 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. -func (c *DiskTypesAggregatedListCall) IfNoneMatch(entityTag string) *DiskTypesAggregatedListCall { +func (c *CrossSiteNetworksGetCall) IfNoneMatch(entityTag string) *CrossSiteNetworksGetCall { c.ifNoneMatch_ = entityTag return c } // Context sets the context to be used in this call's Do method. -func (c *DiskTypesAggregatedListCall) Context(ctx context.Context) *DiskTypesAggregatedListCall { +func (c *CrossSiteNetworksGetCall) Context(ctx context.Context) *CrossSiteNetworksGetCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *DiskTypesAggregatedListCall) Header() http.Header { +func (c *CrossSiteNetworksGetCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *DiskTypesAggregatedListCall) doRequest(alt string) (*http.Response, error) { +func (c *CrossSiteNetworksGetCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) if c.ifNoneMatch_ != "" { reqHeaders.Set("If-None-Match", c.ifNoneMatch_) } - var body io.Reader = nil c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/aggregated/diskTypes") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/crossSiteNetworks/{crossSiteNetwork}") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("GET", urls, body) + req, err := http.NewRequest("GET", urls, nil) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, + "project": c.project, + "crossSiteNetwork": c.crossSiteNetwork, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.crossSiteNetworks.get", "request", internallog.HTTPRequest(req, nil)) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.diskTypes.aggregatedList" call. +// Do executes the "compute.crossSiteNetworks.get" call. // Any non-2xx status code is an error. Response headers are in either -// *DiskTypeAggregatedList.ServerResponse.Header or (if a response was returned -// at all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to +// *CrossSiteNetwork.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 *DiskTypesAggregatedListCall) Do(opts ...googleapi.CallOption) (*DiskTypeAggregatedList, error) { +func (c *CrossSiteNetworksGetCall) Do(opts ...googleapi.CallOption) (*CrossSiteNetwork, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -6510,124 +8350,123 @@ func (c *DiskTypesAggregatedListCall) Do(opts ...googleapi.CallOption) (*DiskTyp if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } - ret := &DiskTypeAggregatedList{ + ret := &CrossSiteNetwork{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.crossSiteNetworks.get", "response", internallog.HTTPResponse(res, b)) return ret, nil } -// 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 *DiskTypesAggregatedListCall) Pages(ctx context.Context, f func(*DiskTypeAggregatedList) error) error { - c.ctx_ = ctx - defer c.PageToken(c.urlParams_.Get("pageToken")) - 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) - } -} - -type DiskTypesGetCall struct { - s *Service - project string - zone string - diskType string - urlParams_ gensupport.URLParams - ifNoneMatch_ string - ctx_ context.Context - header_ http.Header +type CrossSiteNetworksInsertCall struct { + s *Service + project string + crosssitenetwork *CrossSiteNetwork + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header } -// Get: Returns the specified disk type. +// Insert: Creates a cross-site network in the specified project in the given +// scope +// using the parameters that are included in the request. // -// - diskType: Name of the disk type to return. // - project: Project ID for this request. -// - zone: The name of the zone for this request. -func (r *DiskTypesService) Get(project string, zone string, diskType string) *DiskTypesGetCall { - c := &DiskTypesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)} +func (r *CrossSiteNetworksService) Insert(project string, crosssitenetwork *CrossSiteNetwork) *CrossSiteNetworksInsertCall { + c := &CrossSiteNetworksInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project - c.zone = zone - c.diskType = diskType + c.crosssitenetwork = crosssitenetwork + 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). +// end_interface: MixerMutationRequestBuilder +func (c *CrossSiteNetworksInsertCall) RequestId(requestId string) *CrossSiteNetworksInsertCall { + c.urlParams_.Set("requestId", requestId) + return c +} + +// ValidateOnly sets the optional parameter "validateOnly": [Input Only] +// Validate the new configuration, but don't create it. +func (c *CrossSiteNetworksInsertCall) ValidateOnly(validateOnly bool) *CrossSiteNetworksInsertCall { + c.urlParams_.Set("validateOnly", fmt.Sprint(validateOnly)) return c } // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *DiskTypesGetCall) Fields(s ...googleapi.Field) *DiskTypesGetCall { +func (c *CrossSiteNetworksInsertCall) Fields(s ...googleapi.Field) *CrossSiteNetworksInsertCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } -// IfNoneMatch sets an 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. -func (c *DiskTypesGetCall) IfNoneMatch(entityTag string) *DiskTypesGetCall { - c.ifNoneMatch_ = entityTag - return c -} - // Context sets the context to be used in this call's Do method. -func (c *DiskTypesGetCall) Context(ctx context.Context) *DiskTypesGetCall { +func (c *CrossSiteNetworksInsertCall) Context(ctx context.Context) *CrossSiteNetworksInsertCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *DiskTypesGetCall) Header() http.Header { +func (c *CrossSiteNetworksInsertCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *DiskTypesGetCall) doRequest(alt string) (*http.Response, error) { - reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) - if c.ifNoneMatch_ != "" { - reqHeaders.Set("If-None-Match", c.ifNoneMatch_) +func (c *CrossSiteNetworksInsertCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) + body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.crosssitenetwork) + if err != nil { + return nil, err } - var body io.Reader = nil c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/diskTypes/{diskType}") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/crossSiteNetworks") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("GET", urls, body) + req, err := http.NewRequest("POST", urls, body) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "zone": c.zone, - "diskType": c.diskType, + "project": c.project, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.crossSiteNetworks.insert", "request", internallog.HTTPRequest(req, body.Bytes())) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.diskTypes.get" call. +// Do executes the "compute.crossSiteNetworks.insert" call. // Any non-2xx status code is an error. Response headers are in either -// *DiskType.ServerResponse.Header or (if a response was returned at all) in +// *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 *DiskTypesGetCall) Do(opts ...googleapi.CallOption) (*DiskType, error) { +func (c *CrossSiteNetworksInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -6646,114 +8485,163 @@ func (c *DiskTypesGetCall) Do(opts ...googleapi.CallOption) (*DiskType, error) { if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } - ret := &DiskType{ + ret := &Operation{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.crossSiteNetworks.insert", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type DiskTypesListCall struct { +type CrossSiteNetworksListCall struct { s *Service project string - zone string urlParams_ gensupport.URLParams ifNoneMatch_ string ctx_ context.Context header_ http.Header } -// List: Retrieves a list of disk types available to the specified project. +// List: Lists the cross-site networks for a project in the given scope. // // - project: Project ID for this request. -// - zone: The name of the zone for this request. -func (r *DiskTypesService) List(project string, zone string) *DiskTypesListCall { - c := &DiskTypesListCall{s: r.s, urlParams_: make(gensupport.URLParams)} +func (r *CrossSiteNetworksService) List(project string) *CrossSiteNetworksListCall { + c := &CrossSiteNetworksListCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project - c.zone = zone return c } // Filter sets the optional parameter "filter": A filter expression that -// filters resources listed in the response. Most Compute resources support two -// types of filter expressions: expressions that support regular expressions -// and expressions that follow API improvement proposal AIP-160. These two -// types of filter expressions cannot be mixed in one request. If you want to -// use AIP-160, your expression must specify the field name, an operator, and -// the value that you want to use for filtering. The value must be a string, a -// number, or a boolean. The 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`. The `:*` comparison can be used to test whether a key has -// been defined. For example, to find all objects with `owner` label use: ``` -// labels.owner:* ``` 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) ``` If you want to use a regular -// expression, use the `eq` (equal) or `ne` (not equal) operator against a -// single un-parenthesized expression with or without quotes or against -// multiple parenthesized expressions. Examples: `fieldname eq unquoted -// literal` `fieldname eq 'single quoted literal'` `fieldname eq "double quoted -// literal" `(fieldname1 eq literal) (fieldname2 ne "literal")` The literal -// value is interpreted as a regular expression using Google RE2 library -// syntax. The literal value must match the entire field. For example, to -// filter for instances that do not end with name "instance", you would use -// `name ne .*instance`. You cannot combine constraints on multiple fields -// using regular expressions. -func (c *DiskTypesListCall) Filter(filter string) *DiskTypesListCall { +// filters resources listed in the response. Most +// Compute resources support two types of filter expressions: +// expressions that support regular expressions and expressions that follow +// API improvement proposal AIP-160. +// These two types of filter expressions cannot be mixed in one request. +// +// If you want to use AIP-160, your expression must specify the field name, +// an +// operator, and the value that you want to use for filtering. The value +// must be a string, a number, or a boolean. The 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`. +// +// The `:*` comparison can be used to test whether a key has been defined. +// For example, to find all objects with `owner` label +// use: +// ``` +// labels.owner:* +// ``` +// +// 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 onresource 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) +// ``` +// +// If you want to use a regular expression, use the `eq` (equal) or `ne` +// (not equal) operator against a single un-parenthesized expression with +// or +// without quotes or against multiple parenthesized expressions. +// Examples: +// +// `fieldname eq unquoted literal` +// `fieldname eq 'single quoted literal'` +// `fieldname eq "double quoted literal" +// `(fieldname1 eq literal) (fieldname2 ne "literal")` +// +// The literal value is interpreted as a regular expression using GoogleRE2 +// library syntax. +// The literal value must match the entire field. +// +// For example, to filter for instances that do not end with name +// "instance", +// you would use `name ne .*instance`. +// +// You cannot combine constraints on multiple fields using regular +// expressions. +func (c *CrossSiteNetworksListCall) Filter(filter string) *CrossSiteNetworksListCall { 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 *DiskTypesListCall) MaxResults(maxResults int64) *DiskTypesListCall { +// 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 *CrossSiteNetworksListCall) MaxResults(maxResults int64) *CrossSiteNetworksListCall { 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 *DiskTypesListCall) OrderBy(orderBy string) *DiskTypesListCall { +// 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 *CrossSiteNetworksListCall) OrderBy(orderBy string) *CrossSiteNetworksListCall { 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 *DiskTypesListCall) PageToken(pageToken string) *DiskTypesListCall { +// use. Set `pageToken` to the +// `nextPageToken` returned by a previous list request to get +// the next page of results. +func (c *CrossSiteNetworksListCall) PageToken(pageToken string) *CrossSiteNetworksListCall { c.urlParams_.Set("pageToken", pageToken) return c } // ReturnPartialSuccess sets the optional parameter "returnPartialSuccess": -// Opt-in for partial success behavior which provides partial results in case -// of failure. The default value is false. For example, when partial success -// behavior is enabled, aggregatedList for a single zone scope either returns -// all resources in the zone or no resources, with an error code. -func (c *DiskTypesListCall) ReturnPartialSuccess(returnPartialSuccess bool) *DiskTypesListCall { +// Opt-in for partial success behavior which provides partial results in +// case +// of failure. The default value is false. +// +// For example, when partial success behavior is enabled, aggregatedList for +// a +// single zone scope either returns all resources in the zone or no +// resources, +// with an error code. +func (c *CrossSiteNetworksListCall) ReturnPartialSuccess(returnPartialSuccess bool) *CrossSiteNetworksListCall { c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess)) return c } @@ -6761,7 +8649,7 @@ func (c *DiskTypesListCall) ReturnPartialSuccess(returnPartialSuccess bool) *Dis // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *DiskTypesListCall) Fields(s ...googleapi.Field) *DiskTypesListCall { +func (c *CrossSiteNetworksListCall) Fields(s ...googleapi.Field) *CrossSiteNetworksListCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } @@ -6769,54 +8657,54 @@ func (c *DiskTypesListCall) Fields(s ...googleapi.Field) *DiskTypesListCall { // IfNoneMatch sets an 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. -func (c *DiskTypesListCall) IfNoneMatch(entityTag string) *DiskTypesListCall { +func (c *CrossSiteNetworksListCall) IfNoneMatch(entityTag string) *CrossSiteNetworksListCall { c.ifNoneMatch_ = entityTag return c } // Context sets the context to be used in this call's Do method. -func (c *DiskTypesListCall) Context(ctx context.Context) *DiskTypesListCall { +func (c *CrossSiteNetworksListCall) Context(ctx context.Context) *CrossSiteNetworksListCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *DiskTypesListCall) Header() http.Header { +func (c *CrossSiteNetworksListCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *DiskTypesListCall) doRequest(alt string) (*http.Response, error) { +func (c *CrossSiteNetworksListCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) if c.ifNoneMatch_ != "" { reqHeaders.Set("If-None-Match", c.ifNoneMatch_) } - var body io.Reader = nil c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/diskTypes") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/crossSiteNetworks") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("GET", urls, body) + req, err := http.NewRequest("GET", urls, nil) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ "project": c.project, - "zone": c.zone, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.crossSiteNetworks.list", "request", internallog.HTTPRequest(req, nil)) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.diskTypes.list" call. +// Do executes the "compute.crossSiteNetworks.list" call. // Any non-2xx status code is an error. Response headers are in either -// *DiskTypeList.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 *DiskTypesListCall) Do(opts ...googleapi.CallOption) (*DiskTypeList, error) { +// *CrossSiteNetworkList.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 *CrossSiteNetworksListCall) Do(opts ...googleapi.CallOption) (*CrossSiteNetworkList, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -6835,23 +8723,25 @@ func (c *DiskTypesListCall) Do(opts ...googleapi.CallOption) (*DiskTypeList, err if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } - ret := &DiskTypeList{ + ret := &CrossSiteNetworkList{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.crossSiteNetworks.list", "response", internallog.HTTPResponse(res, b)) return ret, nil } // 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 *DiskTypesListCall) Pages(ctx context.Context, f func(*DiskTypeList) error) error { +func (c *CrossSiteNetworksListCall) Pages(ctx context.Context, f func(*CrossSiteNetworkList) error) error { c.ctx_ = ctx defer c.PageToken(c.urlParams_.Get("pageToken")) for { @@ -6869,101 +8759,121 @@ func (c *DiskTypesListCall) Pages(ctx context.Context, f func(*DiskTypeList) err } } -type DisksAddResourcePoliciesCall struct { - s *Service - project string - zone string - disk string - disksaddresourcepoliciesrequest *DisksAddResourcePoliciesRequest - urlParams_ gensupport.URLParams - ctx_ context.Context - header_ http.Header +type CrossSiteNetworksPatchCall struct { + s *Service + project string + crossSiteNetwork string + crosssitenetwork *CrossSiteNetwork + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header } -// AddResourcePolicies: Adds existing resource policies to a disk. You can only -// add one policy which will be applied to this disk for scheduling snapshot -// creation. +// Patch: Updates the specified cross-site network with the data included +// in +// the request. This method supportsPATCH +// semantics and uses theJSON merge +// patch format and processing rules. // -// - disk: The disk name for this request. +// - crossSiteNetwork: Name of the cross-site network to update. // - project: Project ID for this request. -// - zone: The name of the zone for this request. -func (r *DisksService) AddResourcePolicies(project string, zone string, disk string, disksaddresourcepoliciesrequest *DisksAddResourcePoliciesRequest) *DisksAddResourcePoliciesCall { - c := &DisksAddResourcePoliciesCall{s: r.s, urlParams_: make(gensupport.URLParams)} +func (r *CrossSiteNetworksService) Patch(project string, crossSiteNetwork string, crosssitenetwork *CrossSiteNetwork) *CrossSiteNetworksPatchCall { + c := &CrossSiteNetworksPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project - c.zone = zone - c.disk = disk - c.disksaddresourcepoliciesrequest = disksaddresourcepoliciesrequest + c.crossSiteNetwork = crossSiteNetwork + c.crosssitenetwork = crosssitenetwork 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 *DisksAddResourcePoliciesCall) RequestId(requestId string) *DisksAddResourcePoliciesCall { +// 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). +// end_interface: MixerMutationRequestBuilder +func (c *CrossSiteNetworksPatchCall) RequestId(requestId string) *CrossSiteNetworksPatchCall { c.urlParams_.Set("requestId", requestId) return c } +// UpdateMask sets the optional parameter "updateMask": update_mask indicates +// fields to be updated as part of this request. +func (c *CrossSiteNetworksPatchCall) UpdateMask(updateMask string) *CrossSiteNetworksPatchCall { + c.urlParams_.Set("updateMask", updateMask) + return c +} + +// ValidateOnly sets the optional parameter "validateOnly": [Input Only] +// Validate the new configuration, but don't update it. +func (c *CrossSiteNetworksPatchCall) ValidateOnly(validateOnly bool) *CrossSiteNetworksPatchCall { + c.urlParams_.Set("validateOnly", fmt.Sprint(validateOnly)) + return c +} + // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *DisksAddResourcePoliciesCall) Fields(s ...googleapi.Field) *DisksAddResourcePoliciesCall { +func (c *CrossSiteNetworksPatchCall) Fields(s ...googleapi.Field) *CrossSiteNetworksPatchCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } // Context sets the context to be used in this call's Do method. -func (c *DisksAddResourcePoliciesCall) Context(ctx context.Context) *DisksAddResourcePoliciesCall { +func (c *CrossSiteNetworksPatchCall) Context(ctx context.Context) *CrossSiteNetworksPatchCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *DisksAddResourcePoliciesCall) Header() http.Header { +func (c *CrossSiteNetworksPatchCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *DisksAddResourcePoliciesCall) doRequest(alt string) (*http.Response, error) { +func (c *CrossSiteNetworksPatchCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) - var body io.Reader = nil - body, err := googleapi.WithoutDataWrapper.JSONReader(c.disksaddresourcepoliciesrequest) + body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.crosssitenetwork) if err != nil { return nil, err } c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/disks/{disk}/addResourcePolicies") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/crossSiteNetworks/{crossSiteNetwork}") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("POST", urls, body) + req, err := http.NewRequest("PATCH", urls, body) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "zone": c.zone, - "disk": c.disk, + "project": c.project, + "crossSiteNetwork": c.crossSiteNetwork, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.crossSiteNetworks.patch", "request", internallog.HTTPRequest(req, body.Bytes())) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.disks.addResourcePolicies" call. +// Do executes the "compute.crossSiteNetworks.patch" call. // 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 *DisksAddResourcePoliciesCall) Do(opts ...googleapi.CallOption) (*Operation, error) { +func (c *CrossSiteNetworksPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -6989,13 +8899,15 @@ func (c *DisksAddResourcePoliciesCall) Do(opts ...googleapi.CallOption) (*Operat }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.crossSiteNetworks.patch", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type DisksAggregatedListCall struct { +type DiskTypesAggregatedListCall struct { s *Service project string urlParams_ gensupport.URLParams @@ -7004,112 +8916,169 @@ type DisksAggregatedListCall struct { header_ http.Header } -// AggregatedList: Retrieves an aggregated list of persistent disks. To prevent -// failure, Google recommends that you set the `returnPartialSuccess` parameter -// to `true`. +// AggregatedList: Retrieves an aggregated list of disk types. +// +// To prevent failure, it is recommended that you set +// the +// `returnPartialSuccess` parameter to `true`. // // - project: Project ID for this request. -func (r *DisksService) AggregatedList(project string) *DisksAggregatedListCall { - c := &DisksAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)} +func (r *DiskTypesService) AggregatedList(project string) *DiskTypesAggregatedListCall { + c := &DiskTypesAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project return c } // Filter sets the optional parameter "filter": A filter expression that -// filters resources listed in the response. Most Compute resources support two -// types of filter expressions: expressions that support regular expressions -// and expressions that follow API improvement proposal AIP-160. These two -// types of filter expressions cannot be mixed in one request. If you want to -// use AIP-160, your expression must specify the field name, an operator, and -// the value that you want to use for filtering. The value must be a string, a -// number, or a boolean. The 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`. The `:*` comparison can be used to test whether a key has -// been defined. For example, to find all objects with `owner` label use: ``` -// labels.owner:* ``` 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) ``` If you want to use a regular -// expression, use the `eq` (equal) or `ne` (not equal) operator against a -// single un-parenthesized expression with or without quotes or against -// multiple parenthesized expressions. Examples: `fieldname eq unquoted -// literal` `fieldname eq 'single quoted literal'` `fieldname eq "double quoted -// literal" `(fieldname1 eq literal) (fieldname2 ne "literal")` The literal -// value is interpreted as a regular expression using Google RE2 library -// syntax. The literal value must match the entire field. For example, to -// filter for instances that do not end with name "instance", you would use -// `name ne .*instance`. You cannot combine constraints on multiple fields -// using regular expressions. -func (c *DisksAggregatedListCall) Filter(filter string) *DisksAggregatedListCall { +// filters resources listed in the response. Most +// Compute resources support two types of filter expressions: +// expressions that support regular expressions and expressions that follow +// API improvement proposal AIP-160. +// These two types of filter expressions cannot be mixed in one request. +// +// If you want to use AIP-160, your expression must specify the field name, +// an +// operator, and the value that you want to use for filtering. The value +// must be a string, a number, or a boolean. The 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`. +// +// The `:*` comparison can be used to test whether a key has been defined. +// For example, to find all objects with `owner` label +// use: +// ``` +// labels.owner:* +// ``` +// +// 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 onresource 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) +// ``` +// +// If you want to use a regular expression, use the `eq` (equal) or `ne` +// (not equal) operator against a single un-parenthesized expression with +// or +// without quotes or against multiple parenthesized expressions. +// Examples: +// +// `fieldname eq unquoted literal` +// `fieldname eq 'single quoted literal'` +// `fieldname eq "double quoted literal" +// `(fieldname1 eq literal) (fieldname2 ne "literal")` +// +// The literal value is interpreted as a regular expression using GoogleRE2 +// library syntax. +// The literal value must match the entire field. +// +// For example, to filter for instances that do not end with name +// "instance", +// you would use `name ne .*instance`. +// +// You cannot combine constraints on multiple fields using regular +// expressions. +func (c *DiskTypesAggregatedListCall) Filter(filter string) *DiskTypesAggregatedListCall { c.urlParams_.Set("filter", filter) return c } // IncludeAllScopes sets the optional parameter "includeAllScopes": Indicates -// whether every visible scope for each scope type (zone, region, global) -// should be included in the response. For new resource types added after this -// field, the flag has no effect as new resource types will always include -// every visible scope for each scope type in response. For resource types -// which predate this field, if this flag is omitted or false, only scopes of -// the scope types where the resource type is expected to be found will be -// included. -func (c *DisksAggregatedListCall) IncludeAllScopes(includeAllScopes bool) *DisksAggregatedListCall { +// whether every visible scope for each scope type (zone, region, +// global) should be included in the response. For new resource types +// added +// after this field, the flag has no effect as new resource types will +// always +// include every visible scope for each scope type in response. For +// resource +// types which predate this field, if this flag is omitted or false, +// only +// scopes of the scope types where the resource type is expected to be +// found +// will be included. +func (c *DiskTypesAggregatedListCall) IncludeAllScopes(includeAllScopes bool) *DiskTypesAggregatedListCall { c.urlParams_.Set("includeAllScopes", fmt.Sprint(includeAllScopes)) 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 *DisksAggregatedListCall) MaxResults(maxResults int64) *DisksAggregatedListCall { +// 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 *DiskTypesAggregatedListCall) MaxResults(maxResults int64) *DiskTypesAggregatedListCall { 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 *DisksAggregatedListCall) OrderBy(orderBy string) *DisksAggregatedListCall { +// 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 *DiskTypesAggregatedListCall) OrderBy(orderBy string) *DiskTypesAggregatedListCall { 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 *DisksAggregatedListCall) PageToken(pageToken string) *DisksAggregatedListCall { +// use. Set `pageToken` to the +// `nextPageToken` returned by a previous list request to get +// the next page of results. +func (c *DiskTypesAggregatedListCall) PageToken(pageToken string) *DiskTypesAggregatedListCall { c.urlParams_.Set("pageToken", pageToken) return c } // ReturnPartialSuccess sets the optional parameter "returnPartialSuccess": -// Opt-in for partial success behavior which provides partial results in case -// of failure. The default value is false. For example, when partial success -// behavior is enabled, aggregatedList for a single zone scope either returns -// all resources in the zone or no resources, with an error code. -func (c *DisksAggregatedListCall) ReturnPartialSuccess(returnPartialSuccess bool) *DisksAggregatedListCall { +// Opt-in for partial success behavior which provides partial results in +// case +// of failure. The default value is false. +// +// For example, when partial success behavior is enabled, aggregatedList for +// a +// single zone scope either returns all resources in the zone or no +// resources, +// with an error code. +func (c *DiskTypesAggregatedListCall) ReturnPartialSuccess(returnPartialSuccess bool) *DiskTypesAggregatedListCall { c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess)) return c } // ServiceProjectNumber sets the optional parameter "serviceProjectNumber": The -// Shared VPC service project id or service project number for which aggregated -// list request is invoked for subnetworks list-usable api. -func (c *DisksAggregatedListCall) ServiceProjectNumber(serviceProjectNumber int64) *DisksAggregatedListCall { +// Shared VPC service project id or service project number for which +// aggregated list request is invoked for subnetworks list-usable api. +func (c *DiskTypesAggregatedListCall) ServiceProjectNumber(serviceProjectNumber int64) *DiskTypesAggregatedListCall { c.urlParams_.Set("serviceProjectNumber", fmt.Sprint(serviceProjectNumber)) return c } @@ -7117,7 +9086,7 @@ func (c *DisksAggregatedListCall) ServiceProjectNumber(serviceProjectNumber int6 // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *DisksAggregatedListCall) Fields(s ...googleapi.Field) *DisksAggregatedListCall { +func (c *DiskTypesAggregatedListCall) Fields(s ...googleapi.Field) *DiskTypesAggregatedListCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } @@ -7125,37 +9094,36 @@ func (c *DisksAggregatedListCall) Fields(s ...googleapi.Field) *DisksAggregatedL // IfNoneMatch sets an 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. -func (c *DisksAggregatedListCall) IfNoneMatch(entityTag string) *DisksAggregatedListCall { +func (c *DiskTypesAggregatedListCall) IfNoneMatch(entityTag string) *DiskTypesAggregatedListCall { c.ifNoneMatch_ = entityTag return c } // Context sets the context to be used in this call's Do method. -func (c *DisksAggregatedListCall) Context(ctx context.Context) *DisksAggregatedListCall { +func (c *DiskTypesAggregatedListCall) Context(ctx context.Context) *DiskTypesAggregatedListCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *DisksAggregatedListCall) Header() http.Header { +func (c *DiskTypesAggregatedListCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *DisksAggregatedListCall) doRequest(alt string) (*http.Response, error) { +func (c *DiskTypesAggregatedListCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) if c.ifNoneMatch_ != "" { reqHeaders.Set("If-None-Match", c.ifNoneMatch_) } - var body io.Reader = nil c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/aggregated/disks") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/aggregated/diskTypes") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("GET", urls, body) + req, err := http.NewRequest("GET", urls, nil) if err != nil { return nil, err } @@ -7163,16 +9131,17 @@ func (c *DisksAggregatedListCall) doRequest(alt string) (*http.Response, error) googleapi.Expand(req.URL, map[string]string{ "project": c.project, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.diskTypes.aggregatedList", "request", internallog.HTTPRequest(req, nil)) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.disks.aggregatedList" call. +// Do executes the "compute.diskTypes.aggregatedList" call. // Any non-2xx status code is an error. Response headers are in either -// *DiskAggregatedList.ServerResponse.Header or (if a response was returned at -// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to +// *DiskTypeAggregatedList.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 *DisksAggregatedListCall) Do(opts ...googleapi.CallOption) (*DiskAggregatedList, error) { +func (c *DiskTypesAggregatedListCall) Do(opts ...googleapi.CallOption) (*DiskTypeAggregatedList, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -7191,23 +9160,25 @@ func (c *DisksAggregatedListCall) Do(opts ...googleapi.CallOption) (*DiskAggrega if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } - ret := &DiskAggregatedList{ + ret := &DiskTypeAggregatedList{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.diskTypes.aggregatedList", "response", internallog.HTTPResponse(res, b)) return ret, nil } // 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 *DisksAggregatedListCall) Pages(ctx context.Context, f func(*DiskAggregatedList) error) error { +func (c *DiskTypesAggregatedListCall) Pages(ctx context.Context, f func(*DiskTypeAggregatedList) error) error { c.ctx_ = ctx defer c.PageToken(c.urlParams_.Get("pageToken")) for { @@ -7225,95 +9196,90 @@ func (c *DisksAggregatedListCall) Pages(ctx context.Context, f func(*DiskAggrega } } -type DisksBulkInsertCall struct { - s *Service - project string - zone string - bulkinsertdiskresource *BulkInsertDiskResource - urlParams_ gensupport.URLParams - ctx_ context.Context - header_ http.Header +type DiskTypesGetCall struct { + s *Service + project string + zone string + diskType string + urlParams_ gensupport.URLParams + ifNoneMatch_ string + ctx_ context.Context + header_ http.Header } -// BulkInsert: Bulk create a set of disks. +// Get: Returns the specified disk type. // +// - diskType: Name of the disk type to return. // - project: Project ID for this request. // - zone: The name of the zone for this request. -func (r *DisksService) BulkInsert(project string, zone string, bulkinsertdiskresource *BulkInsertDiskResource) *DisksBulkInsertCall { - c := &DisksBulkInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)} +func (r *DiskTypesService) Get(project string, zone string, diskType string) *DiskTypesGetCall { + c := &DiskTypesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project c.zone = zone - c.bulkinsertdiskresource = bulkinsertdiskresource - 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 *DisksBulkInsertCall) RequestId(requestId string) *DisksBulkInsertCall { - c.urlParams_.Set("requestId", requestId) + c.diskType = diskType return c } // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *DisksBulkInsertCall) Fields(s ...googleapi.Field) *DisksBulkInsertCall { +func (c *DiskTypesGetCall) Fields(s ...googleapi.Field) *DiskTypesGetCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } +// IfNoneMatch sets an 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. +func (c *DiskTypesGetCall) IfNoneMatch(entityTag string) *DiskTypesGetCall { + c.ifNoneMatch_ = entityTag + return c +} + // Context sets the context to be used in this call's Do method. -func (c *DisksBulkInsertCall) Context(ctx context.Context) *DisksBulkInsertCall { +func (c *DiskTypesGetCall) Context(ctx context.Context) *DiskTypesGetCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *DisksBulkInsertCall) Header() http.Header { +func (c *DiskTypesGetCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *DisksBulkInsertCall) doRequest(alt string) (*http.Response, error) { - reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) - var body io.Reader = nil - body, err := googleapi.WithoutDataWrapper.JSONReader(c.bulkinsertdiskresource) - if err != nil { - return nil, err +func (c *DiskTypesGetCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) + if c.ifNoneMatch_ != "" { + reqHeaders.Set("If-None-Match", c.ifNoneMatch_) } c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/disks/bulkInsert") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/diskTypes/{diskType}") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("POST", urls, body) + req, err := http.NewRequest("GET", urls, nil) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "zone": c.zone, + "project": c.project, + "zone": c.zone, + "diskType": c.diskType, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.diskTypes.get", "request", internallog.HTTPRequest(req, nil)) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.disks.bulkInsert" call. +// Do executes the "compute.diskTypes.get" call. // 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 +// *DiskType.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 *DisksBulkInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) { +func (c *DiskTypesGetCall) Do(opts ...googleapi.CallOption) (*DiskType, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -7332,105 +9298,212 @@ func (c *DisksBulkInsertCall) Do(opts ...googleapi.CallOption) (*Operation, erro if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } - ret := &Operation{ + ret := &DiskType{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.diskTypes.get", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type DisksCreateSnapshotCall struct { - s *Service - project string - zone string - disk string - snapshot *Snapshot - urlParams_ gensupport.URLParams - ctx_ context.Context - header_ http.Header +type DiskTypesListCall struct { + s *Service + project string + zone string + urlParams_ gensupport.URLParams + ifNoneMatch_ string + ctx_ context.Context + header_ http.Header } -// CreateSnapshot: Creates a snapshot of a specified persistent disk. For -// regular snapshot creation, consider using snapshots.insert instead, as that -// method supports more features, such as creating snapshots in a project -// different from the source disk project. +// List: Retrieves a list of disk types available to the specified +// project. // -// - disk: Name of the persistent disk to snapshot. // - project: Project ID for this request. // - zone: The name of the zone for this request. -func (r *DisksService) CreateSnapshot(project string, zone string, disk string, snapshot *Snapshot) *DisksCreateSnapshotCall { - c := &DisksCreateSnapshotCall{s: r.s, urlParams_: make(gensupport.URLParams)} +func (r *DiskTypesService) List(project string, zone string) *DiskTypesListCall { + c := &DiskTypesListCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project c.zone = zone - c.disk = disk - c.snapshot = snapshot return c } -// GuestFlush sets the optional parameter "guestFlush": [Input Only] Whether to -// attempt an application consistent snapshot by informing the OS to prepare -// for the snapshot process. -func (c *DisksCreateSnapshotCall) GuestFlush(guestFlush bool) *DisksCreateSnapshotCall { - c.urlParams_.Set("guestFlush", fmt.Sprint(guestFlush)) +// Filter sets the optional parameter "filter": A filter expression that +// filters resources listed in the response. Most +// Compute resources support two types of filter expressions: +// expressions that support regular expressions and expressions that follow +// API improvement proposal AIP-160. +// These two types of filter expressions cannot be mixed in one request. +// +// If you want to use AIP-160, your expression must specify the field name, +// an +// operator, and the value that you want to use for filtering. The value +// must be a string, a number, or a boolean. The 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`. +// +// The `:*` comparison can be used to test whether a key has been defined. +// For example, to find all objects with `owner` label +// use: +// ``` +// labels.owner:* +// ``` +// +// 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 onresource 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) +// ``` +// +// If you want to use a regular expression, use the `eq` (equal) or `ne` +// (not equal) operator against a single un-parenthesized expression with +// or +// without quotes or against multiple parenthesized expressions. +// Examples: +// +// `fieldname eq unquoted literal` +// `fieldname eq 'single quoted literal'` +// `fieldname eq "double quoted literal" +// `(fieldname1 eq literal) (fieldname2 ne "literal")` +// +// The literal value is interpreted as a regular expression using GoogleRE2 +// library syntax. +// The literal value must match the entire field. +// +// For example, to filter for instances that do not end with name +// "instance", +// you would use `name ne .*instance`. +// +// You cannot combine constraints on multiple fields using regular +// expressions. +func (c *DiskTypesListCall) Filter(filter string) *DiskTypesListCall { + c.urlParams_.Set("filter", filter) 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 *DisksCreateSnapshotCall) RequestId(requestId string) *DisksCreateSnapshotCall { - c.urlParams_.Set("requestId", requestId) +// 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 *DiskTypesListCall) MaxResults(maxResults int64) *DiskTypesListCall { + 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 *DiskTypesListCall) OrderBy(orderBy string) *DiskTypesListCall { + 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 *DiskTypesListCall) PageToken(pageToken string) *DiskTypesListCall { + c.urlParams_.Set("pageToken", pageToken) + return c +} + +// ReturnPartialSuccess sets the optional parameter "returnPartialSuccess": +// Opt-in for partial success behavior which provides partial results in +// case +// of failure. The default value is false. +// +// For example, when partial success behavior is enabled, aggregatedList for +// a +// single zone scope either returns all resources in the zone or no +// resources, +// with an error code. +func (c *DiskTypesListCall) ReturnPartialSuccess(returnPartialSuccess bool) *DiskTypesListCall { + c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess)) return c } // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *DisksCreateSnapshotCall) Fields(s ...googleapi.Field) *DisksCreateSnapshotCall { +func (c *DiskTypesListCall) Fields(s ...googleapi.Field) *DiskTypesListCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } +// IfNoneMatch sets an 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. +func (c *DiskTypesListCall) IfNoneMatch(entityTag string) *DiskTypesListCall { + c.ifNoneMatch_ = entityTag + return c +} + // Context sets the context to be used in this call's Do method. -func (c *DisksCreateSnapshotCall) Context(ctx context.Context) *DisksCreateSnapshotCall { +func (c *DiskTypesListCall) Context(ctx context.Context) *DiskTypesListCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *DisksCreateSnapshotCall) Header() http.Header { +func (c *DiskTypesListCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *DisksCreateSnapshotCall) doRequest(alt string) (*http.Response, error) { - reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) - var body io.Reader = nil - body, err := googleapi.WithoutDataWrapper.JSONReader(c.snapshot) - if err != nil { - return nil, err +func (c *DiskTypesListCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) + if c.ifNoneMatch_ != "" { + reqHeaders.Set("If-None-Match", c.ifNoneMatch_) } c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/disks/{disk}/createSnapshot") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/diskTypes") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("POST", urls, body) + req, err := http.NewRequest("GET", urls, nil) if err != nil { return nil, err } @@ -7438,17 +9511,17 @@ func (c *DisksCreateSnapshotCall) doRequest(alt string) (*http.Response, error) googleapi.Expand(req.URL, map[string]string{ "project": c.project, "zone": c.zone, - "disk": c.disk, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.diskTypes.list", "request", internallog.HTTPRequest(req, nil)) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.disks.createSnapshot" call. +// Do executes the "compute.diskTypes.list" call. // 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 +// *DiskTypeList.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 *DisksCreateSnapshotCall) Do(opts ...googleapi.CallOption) (*Operation, error) { +func (c *DiskTypesListCall) Do(opts ...googleapi.CallOption) (*DiskTypeList, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -7467,56 +9540,88 @@ func (c *DisksCreateSnapshotCall) Do(opts ...googleapi.CallOption) (*Operation, if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } - ret := &Operation{ + ret := &DiskTypeList{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.diskTypes.list", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type DisksDeleteCall struct { - s *Service - project string - zone string - disk string - urlParams_ gensupport.URLParams - ctx_ context.Context - header_ http.Header +// 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 *DiskTypesListCall) Pages(ctx context.Context, f func(*DiskTypeList) error) error { + c.ctx_ = ctx + defer c.PageToken(c.urlParams_.Get("pageToken")) + 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) + } } -// Delete: Deletes the specified persistent disk. Deleting a disk removes its -// data permanently and is irreversible. However, deleting a disk does not -// delete any snapshots previously made from the disk. You must separately -// delete snapshots. +type DisksAddResourcePoliciesCall struct { + s *Service + project string + zone string + disk string + disksaddresourcepoliciesrequest *DisksAddResourcePoliciesRequest + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header +} + +// AddResourcePolicies: Adds existing resource policies to a disk. You can only +// add one +// policy which will be applied to this disk for scheduling snapshot +// creation. // -// - disk: Name of the persistent disk to delete. +// - disk: The disk name for this request. // - project: Project ID for this request. // - zone: The name of the zone for this request. -func (r *DisksService) Delete(project string, zone string, disk string) *DisksDeleteCall { - c := &DisksDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)} +func (r *DisksService) AddResourcePolicies(project string, zone string, disk string, disksaddresourcepoliciesrequest *DisksAddResourcePoliciesRequest) *DisksAddResourcePoliciesCall { + c := &DisksAddResourcePoliciesCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project c.zone = zone c.disk = disk + c.disksaddresourcepoliciesrequest = disksaddresourcepoliciesrequest 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 *DisksDeleteCall) RequestId(requestId string) *DisksDeleteCall { +// 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 *DisksAddResourcePoliciesCall) RequestId(requestId string) *DisksAddResourcePoliciesCall { c.urlParams_.Set("requestId", requestId) return c } @@ -7524,34 +9629,37 @@ func (c *DisksDeleteCall) RequestId(requestId string) *DisksDeleteCall { // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *DisksDeleteCall) Fields(s ...googleapi.Field) *DisksDeleteCall { +func (c *DisksAddResourcePoliciesCall) Fields(s ...googleapi.Field) *DisksAddResourcePoliciesCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } // Context sets the context to be used in this call's Do method. -func (c *DisksDeleteCall) Context(ctx context.Context) *DisksDeleteCall { +func (c *DisksAddResourcePoliciesCall) Context(ctx context.Context) *DisksAddResourcePoliciesCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *DisksDeleteCall) Header() http.Header { +func (c *DisksAddResourcePoliciesCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *DisksDeleteCall) doRequest(alt string) (*http.Response, error) { - reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) - var body io.Reader = nil +func (c *DisksAddResourcePoliciesCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) + body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.disksaddresourcepoliciesrequest) + if err != nil { + return nil, err + } c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/disks/{disk}") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/disks/{disk}/addResourcePolicies") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("DELETE", urls, body) + req, err := http.NewRequest("POST", urls, body) if err != nil { return nil, err } @@ -7561,15 +9669,16 @@ func (c *DisksDeleteCall) doRequest(alt string) (*http.Response, error) { "zone": c.zone, "disk": c.disk, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.disks.addResourcePolicies", "request", internallog.HTTPRequest(req, body.Bytes())) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.disks.delete" call. +// Do executes the "compute.disks.addResourcePolicies" call. // 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 *DisksDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) { +func (c *DisksAddResourcePoliciesCall) Do(opts ...googleapi.CallOption) (*Operation, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -7595,40 +9704,194 @@ func (c *DisksDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) { }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.disks.addResourcePolicies", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type DisksGetCall struct { +type DisksAggregatedListCall struct { s *Service project string - zone string - disk string urlParams_ gensupport.URLParams ifNoneMatch_ string ctx_ context.Context header_ http.Header } -// Get: Returns the specified persistent disk. +// AggregatedList: Retrieves an aggregated list of persistent disks. +// +// To prevent failure, it is recommended that you set +// the +// `returnPartialSuccess` parameter to `true`. // -// - disk: Name of the persistent disk to return. // - project: Project ID for this request. -// - zone: The name of the zone for this request. -func (r *DisksService) Get(project string, zone string, disk string) *DisksGetCall { - c := &DisksGetCall{s: r.s, urlParams_: make(gensupport.URLParams)} +func (r *DisksService) AggregatedList(project string) *DisksAggregatedListCall { + c := &DisksAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project - c.zone = zone - c.disk = disk + return c +} + +// Filter sets the optional parameter "filter": A filter expression that +// filters resources listed in the response. Most +// Compute resources support two types of filter expressions: +// expressions that support regular expressions and expressions that follow +// API improvement proposal AIP-160. +// These two types of filter expressions cannot be mixed in one request. +// +// If you want to use AIP-160, your expression must specify the field name, +// an +// operator, and the value that you want to use for filtering. The value +// must be a string, a number, or a boolean. The 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`. +// +// The `:*` comparison can be used to test whether a key has been defined. +// For example, to find all objects with `owner` label +// use: +// ``` +// labels.owner:* +// ``` +// +// 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 onresource 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) +// ``` +// +// If you want to use a regular expression, use the `eq` (equal) or `ne` +// (not equal) operator against a single un-parenthesized expression with +// or +// without quotes or against multiple parenthesized expressions. +// Examples: +// +// `fieldname eq unquoted literal` +// `fieldname eq 'single quoted literal'` +// `fieldname eq "double quoted literal" +// `(fieldname1 eq literal) (fieldname2 ne "literal")` +// +// The literal value is interpreted as a regular expression using GoogleRE2 +// library syntax. +// The literal value must match the entire field. +// +// For example, to filter for instances that do not end with name +// "instance", +// you would use `name ne .*instance`. +// +// You cannot combine constraints on multiple fields using regular +// expressions. +func (c *DisksAggregatedListCall) Filter(filter string) *DisksAggregatedListCall { + c.urlParams_.Set("filter", filter) + return c +} + +// IncludeAllScopes sets the optional parameter "includeAllScopes": Indicates +// whether every visible scope for each scope type (zone, region, +// global) should be included in the response. For new resource types +// added +// after this field, the flag has no effect as new resource types will +// always +// include every visible scope for each scope type in response. For +// resource +// types which predate this field, if this flag is omitted or false, +// only +// scopes of the scope types where the resource type is expected to be +// found +// will be included. +func (c *DisksAggregatedListCall) IncludeAllScopes(includeAllScopes bool) *DisksAggregatedListCall { + c.urlParams_.Set("includeAllScopes", fmt.Sprint(includeAllScopes)) + 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 *DisksAggregatedListCall) MaxResults(maxResults int64) *DisksAggregatedListCall { + 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 *DisksAggregatedListCall) OrderBy(orderBy string) *DisksAggregatedListCall { + 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 *DisksAggregatedListCall) PageToken(pageToken string) *DisksAggregatedListCall { + c.urlParams_.Set("pageToken", pageToken) + return c +} + +// ReturnPartialSuccess sets the optional parameter "returnPartialSuccess": +// Opt-in for partial success behavior which provides partial results in +// case +// of failure. The default value is false. +// +// For example, when partial success behavior is enabled, aggregatedList for +// a +// single zone scope either returns all resources in the zone or no +// resources, +// with an error code. +func (c *DisksAggregatedListCall) ReturnPartialSuccess(returnPartialSuccess bool) *DisksAggregatedListCall { + c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess)) + return c +} + +// ServiceProjectNumber sets the optional parameter "serviceProjectNumber": The +// Shared VPC service project id or service project number for which +// aggregated list request is invoked for subnetworks list-usable api. +func (c *DisksAggregatedListCall) ServiceProjectNumber(serviceProjectNumber int64) *DisksAggregatedListCall { + c.urlParams_.Set("serviceProjectNumber", fmt.Sprint(serviceProjectNumber)) return c } // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *DisksGetCall) Fields(s ...googleapi.Field) *DisksGetCall { +func (c *DisksAggregatedListCall) Fields(s ...googleapi.Field) *DisksAggregatedListCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } @@ -7636,55 +9899,54 @@ func (c *DisksGetCall) Fields(s ...googleapi.Field) *DisksGetCall { // IfNoneMatch sets an 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. -func (c *DisksGetCall) IfNoneMatch(entityTag string) *DisksGetCall { +func (c *DisksAggregatedListCall) IfNoneMatch(entityTag string) *DisksAggregatedListCall { c.ifNoneMatch_ = entityTag return c } // Context sets the context to be used in this call's Do method. -func (c *DisksGetCall) Context(ctx context.Context) *DisksGetCall { +func (c *DisksAggregatedListCall) Context(ctx context.Context) *DisksAggregatedListCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *DisksGetCall) Header() http.Header { +func (c *DisksAggregatedListCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *DisksGetCall) doRequest(alt string) (*http.Response, error) { +func (c *DisksAggregatedListCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) if c.ifNoneMatch_ != "" { reqHeaders.Set("If-None-Match", c.ifNoneMatch_) } - var body io.Reader = nil c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/disks/{disk}") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/aggregated/disks") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("GET", urls, body) + req, err := http.NewRequest("GET", urls, nil) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ "project": c.project, - "zone": c.zone, - "disk": c.disk, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.disks.aggregatedList", "request", internallog.HTTPRequest(req, nil)) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.disks.get" call. +// Do executes the "compute.disks.aggregatedList" call. // Any non-2xx status code is an error. Response headers are in either -// *Disk.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 *DisksGetCall) Do(opts ...googleapi.CallOption) (*Disk, error) { +// *DiskAggregatedList.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 *DisksAggregatedListCall) Do(opts ...googleapi.CallOption) (*DiskAggregatedList, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -7703,111 +9965,138 @@ func (c *DisksGetCall) Do(opts ...googleapi.CallOption) (*Disk, error) { if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } - ret := &Disk{ + ret := &DiskAggregatedList{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.disks.aggregatedList", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type DisksGetIamPolicyCall struct { - s *Service - project string - zone string - resource string - urlParams_ gensupport.URLParams - ifNoneMatch_ string - ctx_ context.Context - header_ http.Header +// 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 *DisksAggregatedListCall) Pages(ctx context.Context, f func(*DiskAggregatedList) error) error { + c.ctx_ = ctx + defer c.PageToken(c.urlParams_.Get("pageToken")) + 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) + } } -// GetIamPolicy: Gets the access control policy for a resource. May be empty if -// no such policy or resource exists. +type DisksBulkInsertCall struct { + s *Service + project string + zone string + bulkinsertdiskresource *BulkInsertDiskResource + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header +} + +// BulkInsert: Bulk create a set of disks. // // - project: Project ID for this request. -// - resource: Name or id of the resource for this request. // - zone: The name of the zone for this request. -func (r *DisksService) GetIamPolicy(project string, zone string, resource string) *DisksGetIamPolicyCall { - c := &DisksGetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)} +func (r *DisksService) BulkInsert(project string, zone string, bulkinsertdiskresource *BulkInsertDiskResource) *DisksBulkInsertCall { + c := &DisksBulkInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project c.zone = zone - c.resource = resource + c.bulkinsertdiskresource = bulkinsertdiskresource return c } -// OptionsRequestedPolicyVersion sets the optional parameter -// "optionsRequestedPolicyVersion": Requested IAM Policy version. -func (c *DisksGetIamPolicyCall) OptionsRequestedPolicyVersion(optionsRequestedPolicyVersion int64) *DisksGetIamPolicyCall { - c.urlParams_.Set("optionsRequestedPolicyVersion", fmt.Sprint(optionsRequestedPolicyVersion)) +// 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 *DisksBulkInsertCall) RequestId(requestId string) *DisksBulkInsertCall { + 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 // details. -func (c *DisksGetIamPolicyCall) Fields(s ...googleapi.Field) *DisksGetIamPolicyCall { +func (c *DisksBulkInsertCall) Fields(s ...googleapi.Field) *DisksBulkInsertCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } -// IfNoneMatch sets an 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. -func (c *DisksGetIamPolicyCall) IfNoneMatch(entityTag string) *DisksGetIamPolicyCall { - c.ifNoneMatch_ = entityTag - return c -} - // Context sets the context to be used in this call's Do method. -func (c *DisksGetIamPolicyCall) Context(ctx context.Context) *DisksGetIamPolicyCall { +func (c *DisksBulkInsertCall) Context(ctx context.Context) *DisksBulkInsertCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *DisksGetIamPolicyCall) Header() http.Header { +func (c *DisksBulkInsertCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *DisksGetIamPolicyCall) doRequest(alt string) (*http.Response, error) { - reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) - if c.ifNoneMatch_ != "" { - reqHeaders.Set("If-None-Match", c.ifNoneMatch_) +func (c *DisksBulkInsertCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) + body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.bulkinsertdiskresource) + if err != nil { + return nil, err } - var body io.Reader = nil c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/disks/{resource}/getIamPolicy") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/disks/bulkInsert") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("GET", urls, body) + req, err := http.NewRequest("POST", urls, body) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "zone": c.zone, - "resource": c.resource, + "project": c.project, + "zone": c.zone, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.disks.bulkInsert", "request", internallog.HTTPRequest(req, body.Bytes())) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.disks.getIamPolicy" call. +// Do executes the "compute.disks.bulkInsert" call. // Any non-2xx status code is an error. Response headers are in either -// *Policy.ServerResponse.Header or (if a response was returned at all) in +// *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 *DisksGetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, error) { +func (c *DisksBulkInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -7826,100 +10115,106 @@ func (c *DisksGetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, error if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } - ret := &Policy{ + ret := &Operation{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.disks.bulkInsert", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type DisksInsertCall struct { - s *Service - project string - zone string - disk *Disk - urlParams_ gensupport.URLParams - ctx_ context.Context - header_ http.Header +type DisksBulkSetLabelsCall struct { + s *Service + project string + zone string + bulkzonesetlabelsrequest *BulkZoneSetLabelsRequest + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header } -// Insert: Creates a persistent disk in the specified project using the data in -// the request. You can create a disk from a source (sourceImage, -// sourceSnapshot, or sourceDisk) or create an empty 500 GB data disk by -// omitting all properties. You can also create a disk that is larger than the -// default size by specifying the sizeGb property. +// BulkSetLabels: Sets the labels on many disks at once. To learn more about +// labels, read theLabeling +// Resources documentation. // // - project: Project ID for this request. // - zone: The name of the zone for this request. -func (r *DisksService) Insert(project string, zone string, disk *Disk) *DisksInsertCall { - c := &DisksInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)} +func (r *DisksService) BulkSetLabels(project string, zone string, bulkzonesetlabelsrequest *BulkZoneSetLabelsRequest) *DisksBulkSetLabelsCall { + c := &DisksBulkSetLabelsCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project c.zone = zone - c.disk = disk + c.bulkzonesetlabelsrequest = bulkzonesetlabelsrequest 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 *DisksInsertCall) RequestId(requestId string) *DisksInsertCall { +// 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 *DisksBulkSetLabelsCall) RequestId(requestId string) *DisksBulkSetLabelsCall { c.urlParams_.Set("requestId", requestId) return c } -// SourceImage sets the optional parameter "sourceImage": Source image to -// restore onto a disk. This field is optional. -func (c *DisksInsertCall) SourceImage(sourceImage string) *DisksInsertCall { - c.urlParams_.Set("sourceImage", sourceImage) +// Resource sets the optional parameter "resource": Name or id of the resource +// for this request. +func (c *DisksBulkSetLabelsCall) Resource(resource string) *DisksBulkSetLabelsCall { + c.urlParams_.Set("resource", resource) return c } // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *DisksInsertCall) Fields(s ...googleapi.Field) *DisksInsertCall { +func (c *DisksBulkSetLabelsCall) Fields(s ...googleapi.Field) *DisksBulkSetLabelsCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } // Context sets the context to be used in this call's Do method. -func (c *DisksInsertCall) Context(ctx context.Context) *DisksInsertCall { +func (c *DisksBulkSetLabelsCall) Context(ctx context.Context) *DisksBulkSetLabelsCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *DisksInsertCall) Header() http.Header { +func (c *DisksBulkSetLabelsCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *DisksInsertCall) doRequest(alt string) (*http.Response, error) { +func (c *DisksBulkSetLabelsCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) - var body io.Reader = nil - body, err := googleapi.WithoutDataWrapper.JSONReader(c.disk) + body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.bulkzonesetlabelsrequest) if err != nil { return nil, err } c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/disks") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/disks/bulkSetLabels") urls += "?" + c.urlParams_.Encode() req, err := http.NewRequest("POST", urls, body) if err != nil { @@ -7930,15 +10225,16 @@ func (c *DisksInsertCall) doRequest(alt string) (*http.Response, error) { "project": c.project, "zone": c.zone, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.disks.bulkSetLabels", "request", internallog.HTTPRequest(req, body.Bytes())) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.disks.insert" call. +// Do executes the "compute.disks.bulkSetLabels" call. // 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 *DisksInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) { +func (c *DisksBulkSetLabelsCall) Do(opts ...googleapi.CallOption) (*Operation, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -7964,154 +10260,108 @@ func (c *DisksInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) { }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.disks.bulkSetLabels", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type DisksListCall struct { - s *Service - project string - zone string - urlParams_ gensupport.URLParams - ifNoneMatch_ string - ctx_ context.Context - header_ http.Header +type DisksCreateSnapshotCall struct { + s *Service + project string + zone string + disk string + snapshot *Snapshot + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header } -// List: Retrieves a list of persistent disks contained within the specified -// zone. +// CreateSnapshot: Creates a snapshot of a specified persistent disk. For +// regular snapshot +// creation, consider using snapshots.insert +// instead, as that method supports more features, such as creating +// snapshots +// in a project different from the source disk project. // +// - disk: Name of the persistent disk to snapshot. // - project: Project ID for this request. // - zone: The name of the zone for this request. -func (r *DisksService) List(project string, zone string) *DisksListCall { - c := &DisksListCall{s: r.s, urlParams_: make(gensupport.URLParams)} +func (r *DisksService) CreateSnapshot(project string, zone string, disk string, snapshot *Snapshot) *DisksCreateSnapshotCall { + c := &DisksCreateSnapshotCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project c.zone = zone + c.disk = disk + c.snapshot = snapshot return c } -// Filter sets the optional parameter "filter": A filter expression that -// filters resources listed in the response. Most Compute resources support two -// types of filter expressions: expressions that support regular expressions -// and expressions that follow API improvement proposal AIP-160. These two -// types of filter expressions cannot be mixed in one request. If you want to -// use AIP-160, your expression must specify the field name, an operator, and -// the value that you want to use for filtering. The value must be a string, a -// number, or a boolean. The 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`. The `:*` comparison can be used to test whether a key has -// been defined. For example, to find all objects with `owner` label use: ``` -// labels.owner:* ``` 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) ``` If you want to use a regular -// expression, use the `eq` (equal) or `ne` (not equal) operator against a -// single un-parenthesized expression with or without quotes or against -// multiple parenthesized expressions. Examples: `fieldname eq unquoted -// literal` `fieldname eq 'single quoted literal'` `fieldname eq "double quoted -// literal" `(fieldname1 eq literal) (fieldname2 ne "literal")` The literal -// value is interpreted as a regular expression using Google RE2 library -// syntax. The literal value must match the entire field. For example, to -// filter for instances that do not end with name "instance", you would use -// `name ne .*instance`. You cannot combine constraints on multiple fields -// using regular expressions. -func (c *DisksListCall) Filter(filter string) *DisksListCall { - 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 *DisksListCall) MaxResults(maxResults int64) *DisksListCall { - 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 *DisksListCall) OrderBy(orderBy string) *DisksListCall { - 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 *DisksListCall) PageToken(pageToken string) *DisksListCall { - c.urlParams_.Set("pageToken", pageToken) +// GuestFlush sets the optional parameter "guestFlush": [Input Only] Whether to +// attempt an application consistent snapshot by +// informing the OS to prepare for the snapshot process. +func (c *DisksCreateSnapshotCall) GuestFlush(guestFlush bool) *DisksCreateSnapshotCall { + c.urlParams_.Set("guestFlush", fmt.Sprint(guestFlush)) return c } -// ReturnPartialSuccess sets the optional parameter "returnPartialSuccess": -// Opt-in for partial success behavior which provides partial results in case -// of failure. The default value is false. For example, when partial success -// behavior is enabled, aggregatedList for a single zone scope either returns -// all resources in the zone or no resources, with an error code. -func (c *DisksListCall) ReturnPartialSuccess(returnPartialSuccess bool) *DisksListCall { - c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess)) +// 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 *DisksCreateSnapshotCall) RequestId(requestId string) *DisksCreateSnapshotCall { + 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 // details. -func (c *DisksListCall) Fields(s ...googleapi.Field) *DisksListCall { +func (c *DisksCreateSnapshotCall) Fields(s ...googleapi.Field) *DisksCreateSnapshotCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } -// IfNoneMatch sets an 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. -func (c *DisksListCall) IfNoneMatch(entityTag string) *DisksListCall { - c.ifNoneMatch_ = entityTag - return c -} - // Context sets the context to be used in this call's Do method. -func (c *DisksListCall) Context(ctx context.Context) *DisksListCall { +func (c *DisksCreateSnapshotCall) Context(ctx context.Context) *DisksCreateSnapshotCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *DisksListCall) Header() http.Header { +func (c *DisksCreateSnapshotCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *DisksListCall) doRequest(alt string) (*http.Response, error) { - reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) - if c.ifNoneMatch_ != "" { - reqHeaders.Set("If-None-Match", c.ifNoneMatch_) +func (c *DisksCreateSnapshotCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) + body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.snapshot) + if err != nil { + return nil, err } - var body io.Reader = nil c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/disks") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/disks/{disk}/createSnapshot") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("GET", urls, body) + req, err := http.NewRequest("POST", urls, body) if err != nil { return nil, err } @@ -8119,16 +10369,18 @@ func (c *DisksListCall) doRequest(alt string) (*http.Response, error) { googleapi.Expand(req.URL, map[string]string{ "project": c.project, "zone": c.zone, + "disk": c.disk, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.disks.createSnapshot", "request", internallog.HTTPRequest(req, body.Bytes())) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.disks.list" call. +// Do executes the "compute.disks.createSnapshot" call. // Any non-2xx status code is an error. Response headers are in either -// *DiskList.ServerResponse.Header or (if a response was returned at all) in +// *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 *DisksListCall) Do(opts ...googleapi.CallOption) (*DiskList, error) { +func (c *DisksCreateSnapshotCall) Do(opts ...googleapi.CallOption) (*Operation, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -8147,76 +10399,67 @@ func (c *DisksListCall) Do(opts ...googleapi.CallOption) (*DiskList, error) { if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } - ret := &DiskList{ + ret := &Operation{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.disks.createSnapshot", "response", internallog.HTTPResponse(res, b)) return ret, nil } -// 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 *DisksListCall) Pages(ctx context.Context, f func(*DiskList) error) error { - c.ctx_ = ctx - defer c.PageToken(c.urlParams_.Get("pageToken")) - 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) - } -} - -type DisksRemoveResourcePoliciesCall struct { - s *Service - project string - zone string - disk string - disksremoveresourcepoliciesrequest *DisksRemoveResourcePoliciesRequest - urlParams_ gensupport.URLParams - ctx_ context.Context - header_ http.Header +type DisksDeleteCall struct { + s *Service + project string + zone string + disk string + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header } -// RemoveResourcePolicies: Removes resource policies from a disk. +// Delete: Deletes the specified persistent disk. Deleting a disk removes its +// data +// permanently and is irreversible. However, deleting a disk does not +// delete any snapshots +// previously made from the disk. You must separatelydelete +// snapshots. // -// - disk: The disk name for this request. +// - disk: Name of the persistent disk to delete. // - project: Project ID for this request. // - zone: The name of the zone for this request. -func (r *DisksService) RemoveResourcePolicies(project string, zone string, disk string, disksremoveresourcepoliciesrequest *DisksRemoveResourcePoliciesRequest) *DisksRemoveResourcePoliciesCall { - c := &DisksRemoveResourcePoliciesCall{s: r.s, urlParams_: make(gensupport.URLParams)} +func (r *DisksService) Delete(project string, zone string, disk string) *DisksDeleteCall { + c := &DisksDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project c.zone = zone c.disk = disk - c.disksremoveresourcepoliciesrequest = disksremoveresourcepoliciesrequest 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 *DisksRemoveResourcePoliciesCall) RequestId(requestId string) *DisksRemoveResourcePoliciesCall { +// 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 *DisksDeleteCall) RequestId(requestId string) *DisksDeleteCall { c.urlParams_.Set("requestId", requestId) return c } @@ -8224,38 +10467,33 @@ func (c *DisksRemoveResourcePoliciesCall) RequestId(requestId string) *DisksRemo // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *DisksRemoveResourcePoliciesCall) Fields(s ...googleapi.Field) *DisksRemoveResourcePoliciesCall { +func (c *DisksDeleteCall) Fields(s ...googleapi.Field) *DisksDeleteCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } // Context sets the context to be used in this call's Do method. -func (c *DisksRemoveResourcePoliciesCall) Context(ctx context.Context) *DisksRemoveResourcePoliciesCall { +func (c *DisksDeleteCall) Context(ctx context.Context) *DisksDeleteCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *DisksRemoveResourcePoliciesCall) Header() http.Header { +func (c *DisksDeleteCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *DisksRemoveResourcePoliciesCall) doRequest(alt string) (*http.Response, error) { - reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) - var body io.Reader = nil - body, err := googleapi.WithoutDataWrapper.JSONReader(c.disksremoveresourcepoliciesrequest) - if err != nil { - return nil, err - } +func (c *DisksDeleteCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/disks/{disk}/removeResourcePolicies") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/disks/{disk}") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("POST", urls, body) + req, err := http.NewRequest("DELETE", urls, nil) if err != nil { return nil, err } @@ -8265,15 +10503,16 @@ func (c *DisksRemoveResourcePoliciesCall) doRequest(alt string) (*http.Response, "zone": c.zone, "disk": c.disk, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.disks.delete", "request", internallog.HTTPRequest(req, nil)) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.disks.removeResourcePolicies" call. +// Do executes the "compute.disks.delete" call. // 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 *DisksRemoveResourcePoliciesCall) Do(opts ...googleapi.CallOption) (*Operation, error) { +func (c *DisksDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -8299,88 +10538,79 @@ func (c *DisksRemoveResourcePoliciesCall) Do(opts ...googleapi.CallOption) (*Ope }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.disks.delete", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type DisksResizeCall struct { - s *Service - project string - zone string - disk string - disksresizerequest *DisksResizeRequest - urlParams_ gensupport.URLParams - ctx_ context.Context - header_ http.Header +type DisksGetCall struct { + s *Service + project string + zone string + disk string + urlParams_ gensupport.URLParams + ifNoneMatch_ string + ctx_ context.Context + header_ http.Header } -// Resize: Resizes the specified persistent disk. You can only increase the -// size of the disk. +// Get: Returns the specified persistent disk. // -// - disk: The name of the persistent disk. +// - disk: Name of the persistent disk to return. // - project: Project ID for this request. // - zone: The name of the zone for this request. -func (r *DisksService) Resize(project string, zone string, disk string, disksresizerequest *DisksResizeRequest) *DisksResizeCall { - c := &DisksResizeCall{s: r.s, urlParams_: make(gensupport.URLParams)} +func (r *DisksService) Get(project string, zone string, disk string) *DisksGetCall { + c := &DisksGetCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project c.zone = zone c.disk = disk - c.disksresizerequest = disksresizerequest - 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 *DisksResizeCall) RequestId(requestId string) *DisksResizeCall { - 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 // details. -func (c *DisksResizeCall) Fields(s ...googleapi.Field) *DisksResizeCall { +func (c *DisksGetCall) Fields(s ...googleapi.Field) *DisksGetCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } +// IfNoneMatch sets an 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. +func (c *DisksGetCall) IfNoneMatch(entityTag string) *DisksGetCall { + c.ifNoneMatch_ = entityTag + return c +} + // Context sets the context to be used in this call's Do method. -func (c *DisksResizeCall) Context(ctx context.Context) *DisksResizeCall { +func (c *DisksGetCall) Context(ctx context.Context) *DisksGetCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *DisksResizeCall) Header() http.Header { +func (c *DisksGetCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *DisksResizeCall) doRequest(alt string) (*http.Response, error) { - reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) - var body io.Reader = nil - body, err := googleapi.WithoutDataWrapper.JSONReader(c.disksresizerequest) - if err != nil { - return nil, err +func (c *DisksGetCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) + if c.ifNoneMatch_ != "" { + reqHeaders.Set("If-None-Match", c.ifNoneMatch_) } c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/disks/{disk}/resize") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/disks/{disk}") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("POST", urls, body) + req, err := http.NewRequest("GET", urls, nil) if err != nil { return nil, err } @@ -8390,15 +10620,16 @@ func (c *DisksResizeCall) doRequest(alt string) (*http.Response, error) { "zone": c.zone, "disk": c.disk, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.disks.get", "request", internallog.HTTPRequest(req, nil)) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.disks.resize" call. +// Do executes the "compute.disks.get" call. // 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 +// *Disk.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 *DisksResizeCall) Do(opts ...googleapi.CallOption) (*Operation, error) { +func (c *DisksGetCall) Do(opts ...googleapi.CallOption) (*Disk, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -8417,80 +10648,95 @@ func (c *DisksResizeCall) Do(opts ...googleapi.CallOption) (*Operation, error) { if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } - ret := &Operation{ + ret := &Disk{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.disks.get", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type DisksSetIamPolicyCall struct { - s *Service - project string - zone string - resource string - zonesetpolicyrequest *ZoneSetPolicyRequest - urlParams_ gensupport.URLParams - ctx_ context.Context - header_ http.Header +type DisksGetIamPolicyCall struct { + s *Service + project string + zone string + resource string + urlParams_ gensupport.URLParams + ifNoneMatch_ string + ctx_ context.Context + header_ http.Header } -// SetIamPolicy: Sets the access control policy on the specified resource. -// Replaces any existing policy. +// GetIamPolicy: Gets the access control policy for a resource. May be empty if +// no such +// policy or resource exists. // // - project: Project ID for this request. // - resource: Name or id of the resource for this request. // - zone: The name of the zone for this request. -func (r *DisksService) SetIamPolicy(project string, zone string, resource string, zonesetpolicyrequest *ZoneSetPolicyRequest) *DisksSetIamPolicyCall { - c := &DisksSetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)} +func (r *DisksService) GetIamPolicy(project string, zone string, resource string) *DisksGetIamPolicyCall { + c := &DisksGetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project c.zone = zone c.resource = resource - c.zonesetpolicyrequest = zonesetpolicyrequest + return c +} + +// OptionsRequestedPolicyVersion sets the optional parameter +// "optionsRequestedPolicyVersion": Requested IAM Policy version. +func (c *DisksGetIamPolicyCall) OptionsRequestedPolicyVersion(optionsRequestedPolicyVersion int64) *DisksGetIamPolicyCall { + c.urlParams_.Set("optionsRequestedPolicyVersion", fmt.Sprint(optionsRequestedPolicyVersion)) return c } // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *DisksSetIamPolicyCall) Fields(s ...googleapi.Field) *DisksSetIamPolicyCall { +func (c *DisksGetIamPolicyCall) Fields(s ...googleapi.Field) *DisksGetIamPolicyCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } +// IfNoneMatch sets an 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. +func (c *DisksGetIamPolicyCall) IfNoneMatch(entityTag string) *DisksGetIamPolicyCall { + c.ifNoneMatch_ = entityTag + return c +} + // Context sets the context to be used in this call's Do method. -func (c *DisksSetIamPolicyCall) Context(ctx context.Context) *DisksSetIamPolicyCall { +func (c *DisksGetIamPolicyCall) Context(ctx context.Context) *DisksGetIamPolicyCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *DisksSetIamPolicyCall) Header() http.Header { +func (c *DisksGetIamPolicyCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *DisksSetIamPolicyCall) doRequest(alt string) (*http.Response, error) { - reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) - var body io.Reader = nil - body, err := googleapi.WithoutDataWrapper.JSONReader(c.zonesetpolicyrequest) - if err != nil { - return nil, err +func (c *DisksGetIamPolicyCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) + if c.ifNoneMatch_ != "" { + reqHeaders.Set("If-None-Match", c.ifNoneMatch_) } c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/disks/{resource}/setIamPolicy") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/disks/{resource}/getIamPolicy") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("POST", urls, body) + req, err := http.NewRequest("GET", urls, nil) if err != nil { return nil, err } @@ -8500,15 +10746,16 @@ func (c *DisksSetIamPolicyCall) doRequest(alt string) (*http.Response, error) { "zone": c.zone, "resource": c.resource, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.disks.getIamPolicy", "request", internallog.HTTPRequest(req, nil)) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.disks.setIamPolicy" call. +// Do executes the "compute.disks.getIamPolicy" call. // Any non-2xx status code is an error. Response headers are in either // *Policy.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 *DisksSetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, error) { +func (c *DisksGetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -8534,86 +10781,102 @@ func (c *DisksSetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, error }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.disks.getIamPolicy", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type DisksSetLabelsCall struct { - s *Service - project string - zone string - resource string - zonesetlabelsrequest *ZoneSetLabelsRequest - urlParams_ gensupport.URLParams - ctx_ context.Context - header_ http.Header +type DisksInsertCall struct { + s *Service + project string + zone string + disk *Disk + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header } -// SetLabels: Sets the labels on a disk. To learn more about labels, read the -// Labeling Resources documentation. +// Insert: Creates a persistent disk in the specified project using the data +// in the request. You can create a disk from a source +// (sourceImage, sourceSnapshot, orsourceDisk) or create an empty 500 GB data +// disk by +// omitting all properties. You can also create a disk that is larger than +// the default size by specifying the sizeGb property. // // - project: Project ID for this request. -// - resource: Name or id of the resource for this request. // - zone: The name of the zone for this request. -func (r *DisksService) SetLabels(project string, zone string, resource string, zonesetlabelsrequest *ZoneSetLabelsRequest) *DisksSetLabelsCall { - c := &DisksSetLabelsCall{s: r.s, urlParams_: make(gensupport.URLParams)} +func (r *DisksService) Insert(project string, zone string, disk *Disk) *DisksInsertCall { + c := &DisksInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project c.zone = zone - c.resource = resource - c.zonesetlabelsrequest = zonesetlabelsrequest + c.disk = disk 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 *DisksSetLabelsCall) RequestId(requestId string) *DisksSetLabelsCall { +// 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 *DisksInsertCall) RequestId(requestId string) *DisksInsertCall { c.urlParams_.Set("requestId", requestId) return c } +// SourceImage sets the optional parameter "sourceImage": Source image to +// restore onto a disk. This field is optional. +func (c *DisksInsertCall) SourceImage(sourceImage string) *DisksInsertCall { + c.urlParams_.Set("sourceImage", sourceImage) + return c +} + // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *DisksSetLabelsCall) Fields(s ...googleapi.Field) *DisksSetLabelsCall { +func (c *DisksInsertCall) Fields(s ...googleapi.Field) *DisksInsertCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } // Context sets the context to be used in this call's Do method. -func (c *DisksSetLabelsCall) Context(ctx context.Context) *DisksSetLabelsCall { +func (c *DisksInsertCall) Context(ctx context.Context) *DisksInsertCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *DisksSetLabelsCall) Header() http.Header { +func (c *DisksInsertCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *DisksSetLabelsCall) doRequest(alt string) (*http.Response, error) { +func (c *DisksInsertCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) - var body io.Reader = nil - body, err := googleapi.WithoutDataWrapper.JSONReader(c.zonesetlabelsrequest) + body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.disk) if err != nil { return nil, err } c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/disks/{resource}/setLabels") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/disks") urls += "?" + c.urlParams_.Encode() req, err := http.NewRequest("POST", urls, body) if err != nil { @@ -8621,19 +10884,19 @@ func (c *DisksSetLabelsCall) doRequest(alt string) (*http.Response, error) { } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "zone": c.zone, - "resource": c.resource, + "project": c.project, + "zone": c.zone, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.disks.insert", "request", internallog.HTTPRequest(req, body.Bytes())) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.disks.setLabels" call. +// Do executes the "compute.disks.insert" call. // 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 *DisksSetLabelsCall) Do(opts ...googleapi.CallOption) (*Operation, error) { +func (c *DisksInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -8659,88 +10922,205 @@ func (c *DisksSetLabelsCall) Do(opts ...googleapi.CallOption) (*Operation, error }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.disks.insert", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type DisksStartAsyncReplicationCall struct { - s *Service - project string - zone string - disk string - disksstartasyncreplicationrequest *DisksStartAsyncReplicationRequest - urlParams_ gensupport.URLParams - ctx_ context.Context - header_ http.Header +type DisksListCall struct { + s *Service + project string + zone string + urlParams_ gensupport.URLParams + ifNoneMatch_ string + ctx_ context.Context + header_ http.Header } -// StartAsyncReplication: Starts asynchronous replication. Must be invoked on -// the primary disk. +// List: Retrieves a list of persistent disks contained within +// the specified zone. // -// - disk: The name of the persistent disk. // - project: Project ID for this request. // - zone: The name of the zone for this request. -func (r *DisksService) StartAsyncReplication(project string, zone string, disk string, disksstartasyncreplicationrequest *DisksStartAsyncReplicationRequest) *DisksStartAsyncReplicationCall { - c := &DisksStartAsyncReplicationCall{s: r.s, urlParams_: make(gensupport.URLParams)} +func (r *DisksService) List(project string, zone string) *DisksListCall { + c := &DisksListCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project c.zone = zone - c.disk = disk - c.disksstartasyncreplicationrequest = disksstartasyncreplicationrequest 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 *DisksStartAsyncReplicationCall) RequestId(requestId string) *DisksStartAsyncReplicationCall { - c.urlParams_.Set("requestId", requestId) +// Filter sets the optional parameter "filter": A filter expression that +// filters resources listed in the response. Most +// Compute resources support two types of filter expressions: +// expressions that support regular expressions and expressions that follow +// API improvement proposal AIP-160. +// These two types of filter expressions cannot be mixed in one request. +// +// If you want to use AIP-160, your expression must specify the field name, +// an +// operator, and the value that you want to use for filtering. The value +// must be a string, a number, or a boolean. The 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`. +// +// The `:*` comparison can be used to test whether a key has been defined. +// For example, to find all objects with `owner` label +// use: +// ``` +// labels.owner:* +// ``` +// +// 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 onresource 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) +// ``` +// +// If you want to use a regular expression, use the `eq` (equal) or `ne` +// (not equal) operator against a single un-parenthesized expression with +// or +// without quotes or against multiple parenthesized expressions. +// Examples: +// +// `fieldname eq unquoted literal` +// `fieldname eq 'single quoted literal'` +// `fieldname eq "double quoted literal" +// `(fieldname1 eq literal) (fieldname2 ne "literal")` +// +// The literal value is interpreted as a regular expression using GoogleRE2 +// library syntax. +// The literal value must match the entire field. +// +// For example, to filter for instances that do not end with name +// "instance", +// you would use `name ne .*instance`. +// +// You cannot combine constraints on multiple fields using regular +// expressions. +func (c *DisksListCall) Filter(filter string) *DisksListCall { + 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 *DisksListCall) MaxResults(maxResults int64) *DisksListCall { + 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 *DisksListCall) OrderBy(orderBy string) *DisksListCall { + 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 *DisksListCall) PageToken(pageToken string) *DisksListCall { + c.urlParams_.Set("pageToken", pageToken) + return c +} + +// ReturnPartialSuccess sets the optional parameter "returnPartialSuccess": +// Opt-in for partial success behavior which provides partial results in +// case +// of failure. The default value is false. +// +// For example, when partial success behavior is enabled, aggregatedList for +// a +// single zone scope either returns all resources in the zone or no +// resources, +// with an error code. +func (c *DisksListCall) ReturnPartialSuccess(returnPartialSuccess bool) *DisksListCall { + c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess)) return c } // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *DisksStartAsyncReplicationCall) Fields(s ...googleapi.Field) *DisksStartAsyncReplicationCall { +func (c *DisksListCall) Fields(s ...googleapi.Field) *DisksListCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } +// IfNoneMatch sets an 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. +func (c *DisksListCall) IfNoneMatch(entityTag string) *DisksListCall { + c.ifNoneMatch_ = entityTag + return c +} + // Context sets the context to be used in this call's Do method. -func (c *DisksStartAsyncReplicationCall) Context(ctx context.Context) *DisksStartAsyncReplicationCall { +func (c *DisksListCall) Context(ctx context.Context) *DisksListCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *DisksStartAsyncReplicationCall) Header() http.Header { +func (c *DisksListCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *DisksStartAsyncReplicationCall) doRequest(alt string) (*http.Response, error) { - reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) - var body io.Reader = nil - body, err := googleapi.WithoutDataWrapper.JSONReader(c.disksstartasyncreplicationrequest) - if err != nil { - return nil, err +func (c *DisksListCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) + if c.ifNoneMatch_ != "" { + reqHeaders.Set("If-None-Match", c.ifNoneMatch_) } c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/disks/{disk}/startAsyncReplication") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/disks") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("POST", urls, body) + req, err := http.NewRequest("GET", urls, nil) if err != nil { return nil, err } @@ -8748,17 +11128,17 @@ func (c *DisksStartAsyncReplicationCall) doRequest(alt string) (*http.Response, googleapi.Expand(req.URL, map[string]string{ "project": c.project, "zone": c.zone, - "disk": c.disk, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.disks.list", "request", internallog.HTTPRequest(req, nil)) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.disks.startAsyncReplication" call. +// Do executes the "compute.disks.list" call. // 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 +// *DiskList.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 *DisksStartAsyncReplicationCall) Do(opts ...googleapi.CallOption) (*Operation, error) { +func (c *DisksListCall) Do(opts ...googleapi.CallOption) (*DiskList, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -8777,54 +11157,85 @@ func (c *DisksStartAsyncReplicationCall) Do(opts ...googleapi.CallOption) (*Oper if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } - ret := &Operation{ + ret := &DiskList{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.disks.list", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type DisksStopAsyncReplicationCall struct { - s *Service - project string - zone string - disk string - urlParams_ gensupport.URLParams - ctx_ context.Context - header_ http.Header +// 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 *DisksListCall) Pages(ctx context.Context, f func(*DiskList) error) error { + c.ctx_ = ctx + defer c.PageToken(c.urlParams_.Get("pageToken")) + 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) + } +} + +type DisksRemoveResourcePoliciesCall struct { + s *Service + project string + zone string + disk string + disksremoveresourcepoliciesrequest *DisksRemoveResourcePoliciesRequest + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header } -// StopAsyncReplication: Stops asynchronous replication. Can be invoked either -// on the primary or on the secondary disk. +// RemoveResourcePolicies: Removes resource policies from a disk. // -// - disk: The name of the persistent disk. +// - disk: The disk name for this request. // - project: Project ID for this request. // - zone: The name of the zone for this request. -func (r *DisksService) StopAsyncReplication(project string, zone string, disk string) *DisksStopAsyncReplicationCall { - c := &DisksStopAsyncReplicationCall{s: r.s, urlParams_: make(gensupport.URLParams)} +func (r *DisksService) RemoveResourcePolicies(project string, zone string, disk string, disksremoveresourcepoliciesrequest *DisksRemoveResourcePoliciesRequest) *DisksRemoveResourcePoliciesCall { + c := &DisksRemoveResourcePoliciesCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project c.zone = zone c.disk = disk + c.disksremoveresourcepoliciesrequest = disksremoveresourcepoliciesrequest 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 *DisksStopAsyncReplicationCall) RequestId(requestId string) *DisksStopAsyncReplicationCall { +// 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 *DisksRemoveResourcePoliciesCall) RequestId(requestId string) *DisksRemoveResourcePoliciesCall { c.urlParams_.Set("requestId", requestId) return c } @@ -8832,32 +11243,35 @@ func (c *DisksStopAsyncReplicationCall) RequestId(requestId string) *DisksStopAs // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *DisksStopAsyncReplicationCall) Fields(s ...googleapi.Field) *DisksStopAsyncReplicationCall { +func (c *DisksRemoveResourcePoliciesCall) Fields(s ...googleapi.Field) *DisksRemoveResourcePoliciesCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } // Context sets the context to be used in this call's Do method. -func (c *DisksStopAsyncReplicationCall) Context(ctx context.Context) *DisksStopAsyncReplicationCall { +func (c *DisksRemoveResourcePoliciesCall) Context(ctx context.Context) *DisksRemoveResourcePoliciesCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *DisksStopAsyncReplicationCall) Header() http.Header { +func (c *DisksRemoveResourcePoliciesCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *DisksStopAsyncReplicationCall) doRequest(alt string) (*http.Response, error) { - reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) - var body io.Reader = nil +func (c *DisksRemoveResourcePoliciesCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) + body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.disksremoveresourcepoliciesrequest) + if err != nil { + return nil, err + } c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/disks/{disk}/stopAsyncReplication") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/disks/{disk}/removeResourcePolicies") urls += "?" + c.urlParams_.Encode() req, err := http.NewRequest("POST", urls, body) if err != nil { @@ -8869,15 +11283,16 @@ func (c *DisksStopAsyncReplicationCall) doRequest(alt string) (*http.Response, e "zone": c.zone, "disk": c.disk, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.disks.removeResourcePolicies", "request", internallog.HTTPRequest(req, body.Bytes())) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.disks.stopAsyncReplication" call. +// Do executes the "compute.disks.removeResourcePolicies" call. // 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 *DisksStopAsyncReplicationCall) Do(opts ...googleapi.CallOption) (*Operation, error) { +func (c *DisksRemoveResourcePoliciesCall) Do(opts ...googleapi.CallOption) (*Operation, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -8903,47 +11318,58 @@ func (c *DisksStopAsyncReplicationCall) Do(opts ...googleapi.CallOption) (*Opera }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.disks.removeResourcePolicies", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type DisksStopGroupAsyncReplicationCall struct { - s *Service - project string - zone string - disksstopgroupasyncreplicationresource *DisksStopGroupAsyncReplicationResource - urlParams_ gensupport.URLParams - ctx_ context.Context - header_ http.Header +type DisksResizeCall struct { + s *Service + project string + zone string + disk string + disksresizerequest *DisksResizeRequest + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header } -// StopGroupAsyncReplication: Stops asynchronous replication for a consistency -// group of disks. Can be invoked either in the primary or secondary scope. +// Resize: Resizes the specified persistent disk. +// You can only increase the size of the disk. // -// - project: Project ID for this request. -// - zone: The name of the zone for this request. This must be the zone of the -// primary or secondary disks in the consistency group. -func (r *DisksService) StopGroupAsyncReplication(project string, zone string, disksstopgroupasyncreplicationresource *DisksStopGroupAsyncReplicationResource) *DisksStopGroupAsyncReplicationCall { - c := &DisksStopGroupAsyncReplicationCall{s: r.s, urlParams_: make(gensupport.URLParams)} +// - disk: The name of the persistent disk. +// - project: Project ID for this request. +// - zone: The name of the zone for this request. +func (r *DisksService) Resize(project string, zone string, disk string, disksresizerequest *DisksResizeRequest) *DisksResizeCall { + c := &DisksResizeCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project c.zone = zone - c.disksstopgroupasyncreplicationresource = disksstopgroupasyncreplicationresource + c.disk = disk + c.disksresizerequest = disksresizerequest 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 *DisksStopGroupAsyncReplicationCall) RequestId(requestId string) *DisksStopGroupAsyncReplicationCall { +// 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 *DisksResizeCall) RequestId(requestId string) *DisksResizeCall { c.urlParams_.Set("requestId", requestId) return c } @@ -8951,36 +11377,35 @@ func (c *DisksStopGroupAsyncReplicationCall) RequestId(requestId string) *DisksS // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *DisksStopGroupAsyncReplicationCall) Fields(s ...googleapi.Field) *DisksStopGroupAsyncReplicationCall { +func (c *DisksResizeCall) Fields(s ...googleapi.Field) *DisksResizeCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } // Context sets the context to be used in this call's Do method. -func (c *DisksStopGroupAsyncReplicationCall) Context(ctx context.Context) *DisksStopGroupAsyncReplicationCall { +func (c *DisksResizeCall) Context(ctx context.Context) *DisksResizeCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *DisksStopGroupAsyncReplicationCall) Header() http.Header { +func (c *DisksResizeCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *DisksStopGroupAsyncReplicationCall) doRequest(alt string) (*http.Response, error) { +func (c *DisksResizeCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) - var body io.Reader = nil - body, err := googleapi.WithoutDataWrapper.JSONReader(c.disksstopgroupasyncreplicationresource) + body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.disksresizerequest) if err != nil { return nil, err } c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/disks/stopGroupAsyncReplication") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/disks/{disk}/resize") urls += "?" + c.urlParams_.Encode() req, err := http.NewRequest("POST", urls, body) if err != nil { @@ -8990,16 +11415,18 @@ func (c *DisksStopGroupAsyncReplicationCall) doRequest(alt string) (*http.Respon googleapi.Expand(req.URL, map[string]string{ "project": c.project, "zone": c.zone, + "disk": c.disk, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.disks.resize", "request", internallog.HTTPRequest(req, body.Bytes())) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.disks.stopGroupAsyncReplication" call. +// Do executes the "compute.disks.resize" call. // 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 *DisksStopGroupAsyncReplicationCall) Do(opts ...googleapi.CallOption) (*Operation, error) { +func (c *DisksResizeCall) Do(opts ...googleapi.CallOption) (*Operation, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -9025,71 +11452,73 @@ func (c *DisksStopGroupAsyncReplicationCall) Do(opts ...googleapi.CallOption) (* }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.disks.resize", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type DisksTestIamPermissionsCall struct { - s *Service - project string - zone string - resource string - testpermissionsrequest *TestPermissionsRequest - urlParams_ gensupport.URLParams - ctx_ context.Context - header_ http.Header +type DisksSetIamPolicyCall struct { + s *Service + project string + zone string + resource string + zonesetpolicyrequest *ZoneSetPolicyRequest + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header } -// TestIamPermissions: Returns permissions that a caller has on the specified +// SetIamPolicy: Sets the access control policy on the specified // resource. +// Replaces any existing policy. // // - project: Project ID for this request. // - resource: Name or id of the resource for this request. // - zone: The name of the zone for this request. -func (r *DisksService) TestIamPermissions(project string, zone string, resource string, testpermissionsrequest *TestPermissionsRequest) *DisksTestIamPermissionsCall { - c := &DisksTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)} +func (r *DisksService) SetIamPolicy(project string, zone string, resource string, zonesetpolicyrequest *ZoneSetPolicyRequest) *DisksSetIamPolicyCall { + c := &DisksSetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project c.zone = zone c.resource = resource - c.testpermissionsrequest = testpermissionsrequest + c.zonesetpolicyrequest = zonesetpolicyrequest return c } // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *DisksTestIamPermissionsCall) Fields(s ...googleapi.Field) *DisksTestIamPermissionsCall { +func (c *DisksSetIamPolicyCall) Fields(s ...googleapi.Field) *DisksSetIamPolicyCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } // Context sets the context to be used in this call's Do method. -func (c *DisksTestIamPermissionsCall) Context(ctx context.Context) *DisksTestIamPermissionsCall { +func (c *DisksSetIamPolicyCall) Context(ctx context.Context) *DisksSetIamPolicyCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *DisksTestIamPermissionsCall) Header() http.Header { +func (c *DisksSetIamPolicyCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *DisksTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) { +func (c *DisksSetIamPolicyCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) - var body io.Reader = nil - body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest) + body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.zonesetpolicyrequest) if err != nil { return nil, err } c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/disks/{resource}/testIamPermissions") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/disks/{resource}/setIamPolicy") urls += "?" + c.urlParams_.Encode() req, err := http.NewRequest("POST", urls, body) if err != nil { @@ -9101,16 +11530,16 @@ func (c *DisksTestIamPermissionsCall) doRequest(alt string) (*http.Response, err "zone": c.zone, "resource": c.resource, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.disks.setIamPolicy", "request", internallog.HTTPRequest(req, body.Bytes())) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.disks.testIamPermissions" call. +// Do executes the "compute.disks.setIamPolicy" call. // Any non-2xx status code is an error. Response headers are in either -// *TestPermissionsResponse.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 *DisksTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) { +// *Policy.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 *DisksSetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -9129,127 +11558,123 @@ func (c *DisksTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPer if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } - ret := &TestPermissionsResponse{ + ret := &Policy{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.disks.setIamPolicy", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type DisksUpdateCall struct { - s *Service - project string - zone string - disk string - disk2 *Disk - urlParams_ gensupport.URLParams - ctx_ context.Context - header_ http.Header +type DisksSetLabelsCall struct { + s *Service + project string + zone string + resource string + zonesetlabelsrequest *ZoneSetLabelsRequest + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header } -// Update: Updates the specified disk with the data included in the request. -// The update is performed only on selected fields included as part of -// update-mask. Only the following fields can be modified: user_license. +// SetLabels: Sets the labels on a disk. To learn more about labels, read +// theLabeling +// Resources documentation. // -// - disk: The disk name for this request. // - project: Project ID for this request. +// - resource: Name or id of the resource for this request. // - zone: The name of the zone for this request. -func (r *DisksService) Update(project string, zone string, disk string, disk2 *Disk) *DisksUpdateCall { - c := &DisksUpdateCall{s: r.s, urlParams_: make(gensupport.URLParams)} +func (r *DisksService) SetLabels(project string, zone string, resource string, zonesetlabelsrequest *ZoneSetLabelsRequest) *DisksSetLabelsCall { + c := &DisksSetLabelsCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project c.zone = zone - c.disk = disk - c.disk2 = disk2 - return c -} - -// Paths sets the optional parameter "paths": -func (c *DisksUpdateCall) Paths(paths ...string) *DisksUpdateCall { - c.urlParams_.SetMulti("paths", append([]string{}, paths...)) + c.resource = resource + c.zonesetlabelsrequest = zonesetlabelsrequest 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 *DisksUpdateCall) RequestId(requestId string) *DisksUpdateCall { +// 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 *DisksSetLabelsCall) RequestId(requestId string) *DisksSetLabelsCall { c.urlParams_.Set("requestId", requestId) return c } -// UpdateMask sets the optional parameter "updateMask": update_mask indicates -// fields to be updated as part of this request. -func (c *DisksUpdateCall) UpdateMask(updateMask string) *DisksUpdateCall { - c.urlParams_.Set("updateMask", updateMask) - return c -} - // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *DisksUpdateCall) Fields(s ...googleapi.Field) *DisksUpdateCall { +func (c *DisksSetLabelsCall) Fields(s ...googleapi.Field) *DisksSetLabelsCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } // Context sets the context to be used in this call's Do method. -func (c *DisksUpdateCall) Context(ctx context.Context) *DisksUpdateCall { +func (c *DisksSetLabelsCall) Context(ctx context.Context) *DisksSetLabelsCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *DisksUpdateCall) Header() http.Header { +func (c *DisksSetLabelsCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *DisksUpdateCall) doRequest(alt string) (*http.Response, error) { +func (c *DisksSetLabelsCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) - var body io.Reader = nil - body, err := googleapi.WithoutDataWrapper.JSONReader(c.disk2) + body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.zonesetlabelsrequest) if err != nil { return nil, err } c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/disks/{disk}") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/disks/{resource}/setLabels") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("PATCH", urls, body) + req, err := http.NewRequest("POST", urls, body) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "zone": c.zone, - "disk": c.disk, + "project": c.project, + "zone": c.zone, + "resource": c.resource, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.disks.setLabels", "request", internallog.HTTPRequest(req, body.Bytes())) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.disks.update" call. +// Do executes the "compute.disks.setLabels" call. // 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 *DisksUpdateCall) Do(opts ...googleapi.CallOption) (*Operation, error) { +func (c *DisksSetLabelsCall) Do(opts ...googleapi.CallOption) (*Operation, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -9275,43 +11700,58 @@ func (c *DisksUpdateCall) Do(opts ...googleapi.CallOption) (*Operation, error) { }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.disks.setLabels", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type ExternalVpnGatewaysDeleteCall struct { - s *Service - project string - externalVpnGateway string - urlParams_ gensupport.URLParams - ctx_ context.Context - header_ http.Header +type DisksStartAsyncReplicationCall struct { + s *Service + project string + zone string + disk string + disksstartasyncreplicationrequest *DisksStartAsyncReplicationRequest + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header } -// Delete: Deletes the specified externalVpnGateway. +// StartAsyncReplication: Starts asynchronous replication. +// Must be invoked on the primary disk. // -// - externalVpnGateway: Name of the externalVpnGateways to delete. +// - disk: The name of the persistent disk. // - project: Project ID for this request. -func (r *ExternalVpnGatewaysService) Delete(project string, externalVpnGateway string) *ExternalVpnGatewaysDeleteCall { - c := &ExternalVpnGatewaysDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)} +// - zone: The name of the zone for this request. +func (r *DisksService) StartAsyncReplication(project string, zone string, disk string, disksstartasyncreplicationrequest *DisksStartAsyncReplicationRequest) *DisksStartAsyncReplicationCall { + c := &DisksStartAsyncReplicationCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project - c.externalVpnGateway = externalVpnGateway + c.zone = zone + c.disk = disk + c.disksstartasyncreplicationrequest = disksstartasyncreplicationrequest 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 *ExternalVpnGatewaysDeleteCall) RequestId(requestId string) *ExternalVpnGatewaysDeleteCall { +// 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 *DisksStartAsyncReplicationCall) RequestId(requestId string) *DisksStartAsyncReplicationCall { c.urlParams_.Set("requestId", requestId) return c } @@ -9319,51 +11759,56 @@ func (c *ExternalVpnGatewaysDeleteCall) RequestId(requestId string) *ExternalVpn // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *ExternalVpnGatewaysDeleteCall) Fields(s ...googleapi.Field) *ExternalVpnGatewaysDeleteCall { +func (c *DisksStartAsyncReplicationCall) Fields(s ...googleapi.Field) *DisksStartAsyncReplicationCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } // Context sets the context to be used in this call's Do method. -func (c *ExternalVpnGatewaysDeleteCall) Context(ctx context.Context) *ExternalVpnGatewaysDeleteCall { +func (c *DisksStartAsyncReplicationCall) Context(ctx context.Context) *DisksStartAsyncReplicationCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *ExternalVpnGatewaysDeleteCall) Header() http.Header { +func (c *DisksStartAsyncReplicationCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *ExternalVpnGatewaysDeleteCall) doRequest(alt string) (*http.Response, error) { - reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) - var body io.Reader = nil +func (c *DisksStartAsyncReplicationCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) + body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.disksstartasyncreplicationrequest) + if err != nil { + return nil, err + } c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/externalVpnGateways/{externalVpnGateway}") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/disks/{disk}/startAsyncReplication") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("DELETE", urls, body) + req, err := http.NewRequest("POST", urls, body) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "externalVpnGateway": c.externalVpnGateway, + "project": c.project, + "zone": c.zone, + "disk": c.disk, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.disks.startAsyncReplication", "request", internallog.HTTPRequest(req, body.Bytes())) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.externalVpnGateways.delete" call. +// Do executes the "compute.disks.startAsyncReplication" call. // 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 *ExternalVpnGatewaysDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) { +func (c *DisksStartAsyncReplicationCall) Do(opts ...googleapi.CallOption) (*Operation, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -9389,94 +11834,109 @@ func (c *ExternalVpnGatewaysDeleteCall) Do(opts ...googleapi.CallOption) (*Opera }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.disks.startAsyncReplication", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type ExternalVpnGatewaysGetCall struct { - s *Service - project string - externalVpnGateway string - urlParams_ gensupport.URLParams - ifNoneMatch_ string - ctx_ context.Context - header_ http.Header +type DisksStopAsyncReplicationCall struct { + s *Service + project string + zone string + disk string + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header } -// Get: Returns the specified externalVpnGateway. Get a list of available -// externalVpnGateways by making a list() request. +// StopAsyncReplication: Stops asynchronous replication. +// Can be invoked either on the primary or on the secondary disk. // -// - externalVpnGateway: Name of the externalVpnGateway to return. +// - disk: The name of the persistent disk. // - project: Project ID for this request. -func (r *ExternalVpnGatewaysService) Get(project string, externalVpnGateway string) *ExternalVpnGatewaysGetCall { - c := &ExternalVpnGatewaysGetCall{s: r.s, urlParams_: make(gensupport.URLParams)} +// - zone: The name of the zone for this request. +func (r *DisksService) StopAsyncReplication(project string, zone string, disk string) *DisksStopAsyncReplicationCall { + c := &DisksStopAsyncReplicationCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project - c.externalVpnGateway = externalVpnGateway + c.zone = zone + c.disk = disk + 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 *DisksStopAsyncReplicationCall) RequestId(requestId string) *DisksStopAsyncReplicationCall { + 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 // details. -func (c *ExternalVpnGatewaysGetCall) Fields(s ...googleapi.Field) *ExternalVpnGatewaysGetCall { +func (c *DisksStopAsyncReplicationCall) Fields(s ...googleapi.Field) *DisksStopAsyncReplicationCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } -// IfNoneMatch sets an 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. -func (c *ExternalVpnGatewaysGetCall) IfNoneMatch(entityTag string) *ExternalVpnGatewaysGetCall { - c.ifNoneMatch_ = entityTag - return c -} - // Context sets the context to be used in this call's Do method. -func (c *ExternalVpnGatewaysGetCall) Context(ctx context.Context) *ExternalVpnGatewaysGetCall { +func (c *DisksStopAsyncReplicationCall) Context(ctx context.Context) *DisksStopAsyncReplicationCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *ExternalVpnGatewaysGetCall) Header() http.Header { +func (c *DisksStopAsyncReplicationCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *ExternalVpnGatewaysGetCall) doRequest(alt string) (*http.Response, error) { +func (c *DisksStopAsyncReplicationCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) - if c.ifNoneMatch_ != "" { - reqHeaders.Set("If-None-Match", c.ifNoneMatch_) - } - var body io.Reader = nil c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/externalVpnGateways/{externalVpnGateway}") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/disks/{disk}/stopAsyncReplication") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("GET", urls, body) + req, err := http.NewRequest("POST", urls, nil) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "externalVpnGateway": c.externalVpnGateway, + "project": c.project, + "zone": c.zone, + "disk": c.disk, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.disks.stopAsyncReplication", "request", internallog.HTTPRequest(req, nil)) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.externalVpnGateways.get" call. +// Do executes the "compute.disks.stopAsyncReplication" call. // Any non-2xx status code is an error. Response headers are in either -// *ExternalVpnGateway.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 *ExternalVpnGatewaysGetCall) Do(opts ...googleapi.CallOption) (*ExternalVpnGateway, error) { +// *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 *DisksStopAsyncReplicationCall) Do(opts ...googleapi.CallOption) (*Operation, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -9495,50 +11955,66 @@ func (c *ExternalVpnGatewaysGetCall) Do(opts ...googleapi.CallOption) (*External if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } - ret := &ExternalVpnGateway{ + ret := &Operation{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.disks.stopAsyncReplication", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type ExternalVpnGatewaysInsertCall struct { - s *Service - project string - externalvpngateway *ExternalVpnGateway - urlParams_ gensupport.URLParams - ctx_ context.Context - header_ http.Header +type DisksStopGroupAsyncReplicationCall struct { + s *Service + project string + zone string + disksstopgroupasyncreplicationresource *DisksStopGroupAsyncReplicationResource + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header } -// Insert: Creates a ExternalVpnGateway in the specified project using the data -// included in the request. +// StopGroupAsyncReplication: Stops asynchronous replication for a consistency +// group of disks. +// Can be invoked either in the primary or secondary scope. // -// - project: Project ID for this request. -func (r *ExternalVpnGatewaysService) Insert(project string, externalvpngateway *ExternalVpnGateway) *ExternalVpnGatewaysInsertCall { - c := &ExternalVpnGatewaysInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)} +// - project: Project ID for this request. +// - zone: The name of the zone for this request. This must be the zone of the +// primary +// +// or secondary disks in the consistency group. +func (r *DisksService) StopGroupAsyncReplication(project string, zone string, disksstopgroupasyncreplicationresource *DisksStopGroupAsyncReplicationResource) *DisksStopGroupAsyncReplicationCall { + c := &DisksStopGroupAsyncReplicationCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project - c.externalvpngateway = externalvpngateway + c.zone = zone + c.disksstopgroupasyncreplicationresource = disksstopgroupasyncreplicationresource 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 *ExternalVpnGatewaysInsertCall) RequestId(requestId string) *ExternalVpnGatewaysInsertCall { +// 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 *DisksStopGroupAsyncReplicationCall) RequestId(requestId string) *DisksStopGroupAsyncReplicationCall { c.urlParams_.Set("requestId", requestId) return c } @@ -9546,36 +12022,35 @@ func (c *ExternalVpnGatewaysInsertCall) RequestId(requestId string) *ExternalVpn // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *ExternalVpnGatewaysInsertCall) Fields(s ...googleapi.Field) *ExternalVpnGatewaysInsertCall { +func (c *DisksStopGroupAsyncReplicationCall) Fields(s ...googleapi.Field) *DisksStopGroupAsyncReplicationCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } // Context sets the context to be used in this call's Do method. -func (c *ExternalVpnGatewaysInsertCall) Context(ctx context.Context) *ExternalVpnGatewaysInsertCall { +func (c *DisksStopGroupAsyncReplicationCall) Context(ctx context.Context) *DisksStopGroupAsyncReplicationCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *ExternalVpnGatewaysInsertCall) Header() http.Header { +func (c *DisksStopGroupAsyncReplicationCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *ExternalVpnGatewaysInsertCall) doRequest(alt string) (*http.Response, error) { +func (c *DisksStopGroupAsyncReplicationCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) - var body io.Reader = nil - body, err := googleapi.WithoutDataWrapper.JSONReader(c.externalvpngateway) + body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.disksstopgroupasyncreplicationresource) if err != nil { return nil, err } c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/externalVpnGateways") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/disks/stopGroupAsyncReplication") urls += "?" + c.urlParams_.Encode() req, err := http.NewRequest("POST", urls, body) if err != nil { @@ -9584,16 +12059,18 @@ func (c *ExternalVpnGatewaysInsertCall) doRequest(alt string) (*http.Response, e req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ "project": c.project, + "zone": c.zone, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.disks.stopGroupAsyncReplication", "request", internallog.HTTPRequest(req, body.Bytes())) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.externalVpnGateways.insert" call. +// Do executes the "compute.disks.stopGroupAsyncReplication" call. // 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 *ExternalVpnGatewaysInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) { +func (c *DisksStopGroupAsyncReplicationCall) Do(opts ...googleapi.CallOption) (*Operation, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -9619,168 +12096,94 @@ func (c *ExternalVpnGatewaysInsertCall) Do(opts ...googleapi.CallOption) (*Opera }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.disks.stopGroupAsyncReplication", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type ExternalVpnGatewaysListCall struct { - s *Service - project string - urlParams_ gensupport.URLParams - ifNoneMatch_ string - ctx_ context.Context - header_ http.Header +type DisksTestIamPermissionsCall struct { + s *Service + project string + zone string + resource string + testpermissionsrequest *TestPermissionsRequest + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header } -// List: Retrieves the list of ExternalVpnGateway available to the specified -// project. +// TestIamPermissions: Returns permissions that a caller has on the specified +// resource. // // - project: Project ID for this request. -func (r *ExternalVpnGatewaysService) List(project string) *ExternalVpnGatewaysListCall { - c := &ExternalVpnGatewaysListCall{s: r.s, urlParams_: make(gensupport.URLParams)} +// - resource: Name or id of the resource for this request. +// - zone: The name of the zone for this request. +func (r *DisksService) TestIamPermissions(project string, zone string, resource string, testpermissionsrequest *TestPermissionsRequest) *DisksTestIamPermissionsCall { + c := &DisksTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project - return c -} - -// Filter sets the optional parameter "filter": A filter expression that -// filters resources listed in the response. Most Compute resources support two -// types of filter expressions: expressions that support regular expressions -// and expressions that follow API improvement proposal AIP-160. These two -// types of filter expressions cannot be mixed in one request. If you want to -// use AIP-160, your expression must specify the field name, an operator, and -// the value that you want to use for filtering. The value must be a string, a -// number, or a boolean. The 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`. The `:*` comparison can be used to test whether a key has -// been defined. For example, to find all objects with `owner` label use: ``` -// labels.owner:* ``` 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) ``` If you want to use a regular -// expression, use the `eq` (equal) or `ne` (not equal) operator against a -// single un-parenthesized expression with or without quotes or against -// multiple parenthesized expressions. Examples: `fieldname eq unquoted -// literal` `fieldname eq 'single quoted literal'` `fieldname eq "double quoted -// literal" `(fieldname1 eq literal) (fieldname2 ne "literal")` The literal -// value is interpreted as a regular expression using Google RE2 library -// syntax. The literal value must match the entire field. For example, to -// filter for instances that do not end with name "instance", you would use -// `name ne .*instance`. You cannot combine constraints on multiple fields -// using regular expressions. -func (c *ExternalVpnGatewaysListCall) Filter(filter string) *ExternalVpnGatewaysListCall { - 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 *ExternalVpnGatewaysListCall) MaxResults(maxResults int64) *ExternalVpnGatewaysListCall { - 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 *ExternalVpnGatewaysListCall) OrderBy(orderBy string) *ExternalVpnGatewaysListCall { - 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 *ExternalVpnGatewaysListCall) PageToken(pageToken string) *ExternalVpnGatewaysListCall { - c.urlParams_.Set("pageToken", pageToken) - return c -} - -// ReturnPartialSuccess sets the optional parameter "returnPartialSuccess": -// Opt-in for partial success behavior which provides partial results in case -// of failure. The default value is false. For example, when partial success -// behavior is enabled, aggregatedList for a single zone scope either returns -// all resources in the zone or no resources, with an error code. -func (c *ExternalVpnGatewaysListCall) ReturnPartialSuccess(returnPartialSuccess bool) *ExternalVpnGatewaysListCall { - c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess)) + c.zone = zone + c.resource = resource + c.testpermissionsrequest = testpermissionsrequest return c } // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *ExternalVpnGatewaysListCall) Fields(s ...googleapi.Field) *ExternalVpnGatewaysListCall { +func (c *DisksTestIamPermissionsCall) Fields(s ...googleapi.Field) *DisksTestIamPermissionsCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } -// IfNoneMatch sets an 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. -func (c *ExternalVpnGatewaysListCall) IfNoneMatch(entityTag string) *ExternalVpnGatewaysListCall { - c.ifNoneMatch_ = entityTag - return c -} - // Context sets the context to be used in this call's Do method. -func (c *ExternalVpnGatewaysListCall) Context(ctx context.Context) *ExternalVpnGatewaysListCall { +func (c *DisksTestIamPermissionsCall) Context(ctx context.Context) *DisksTestIamPermissionsCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *ExternalVpnGatewaysListCall) Header() http.Header { +func (c *DisksTestIamPermissionsCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *ExternalVpnGatewaysListCall) doRequest(alt string) (*http.Response, error) { - reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) - if c.ifNoneMatch_ != "" { - reqHeaders.Set("If-None-Match", c.ifNoneMatch_) +func (c *DisksTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) + body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.testpermissionsrequest) + if err != nil { + return nil, err } - var body io.Reader = nil c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/externalVpnGateways") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/disks/{resource}/testIamPermissions") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("GET", urls, body) + req, err := http.NewRequest("POST", urls, body) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, + "project": c.project, + "zone": c.zone, + "resource": c.resource, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.disks.testIamPermissions", "request", internallog.HTTPRequest(req, body.Bytes())) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.externalVpnGateways.list" call. +// Do executes the "compute.disks.testIamPermissions" call. // Any non-2xx status code is an error. Response headers are in either -// *ExternalVpnGatewayList.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 *ExternalVpnGatewaysListCall) Do(opts ...googleapi.CallOption) (*ExternalVpnGatewayList, error) { +// *TestPermissionsResponse.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 *DisksTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -9799,115 +12202,137 @@ func (c *ExternalVpnGatewaysListCall) Do(opts ...googleapi.CallOption) (*Externa if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } - ret := &ExternalVpnGatewayList{ + ret := &TestPermissionsResponse{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.disks.testIamPermissions", "response", internallog.HTTPResponse(res, b)) return ret, nil } -// 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 *ExternalVpnGatewaysListCall) Pages(ctx context.Context, f func(*ExternalVpnGatewayList) error) error { - c.ctx_ = ctx - defer c.PageToken(c.urlParams_.Get("pageToken")) - 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) - } +type DisksUpdateCall struct { + s *Service + project string + zone string + disk string + disk2 *Disk + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header } -type ExternalVpnGatewaysSetLabelsCall struct { - s *Service - project string - resource string - globalsetlabelsrequest *GlobalSetLabelsRequest - urlParams_ gensupport.URLParams - ctx_ context.Context - header_ http.Header -} - -// SetLabels: Sets the labels on an ExternalVpnGateway. To learn more about -// labels, read the Labeling Resources documentation. +// Update: Updates the specified disk with the data included in the +// request. +// The update is performed only on selected fields included as part +// of update-mask. // +// - disk: The disk name for this request. // - project: Project ID for this request. -// - resource: Name or id of the resource for this request. -func (r *ExternalVpnGatewaysService) SetLabels(project string, resource string, globalsetlabelsrequest *GlobalSetLabelsRequest) *ExternalVpnGatewaysSetLabelsCall { - c := &ExternalVpnGatewaysSetLabelsCall{s: r.s, urlParams_: make(gensupport.URLParams)} +// - zone: The name of the zone for this request. +func (r *DisksService) Update(project string, zone string, disk string, disk2 *Disk) *DisksUpdateCall { + c := &DisksUpdateCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project - c.resource = resource - c.globalsetlabelsrequest = globalsetlabelsrequest + c.zone = zone + c.disk = disk + c.disk2 = disk2 + return c +} + +// Paths sets the optional parameter "paths": +func (c *DisksUpdateCall) Paths(paths ...string) *DisksUpdateCall { + c.urlParams_.SetMulti("paths", append([]string{}, paths...)) + 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 *DisksUpdateCall) RequestId(requestId string) *DisksUpdateCall { + c.urlParams_.Set("requestId", requestId) + return c +} + +// UpdateMask sets the optional parameter "updateMask": update_mask indicates +// fields to be updated as part of this request. +func (c *DisksUpdateCall) UpdateMask(updateMask string) *DisksUpdateCall { + c.urlParams_.Set("updateMask", updateMask) return c } // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *ExternalVpnGatewaysSetLabelsCall) Fields(s ...googleapi.Field) *ExternalVpnGatewaysSetLabelsCall { +func (c *DisksUpdateCall) Fields(s ...googleapi.Field) *DisksUpdateCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } // Context sets the context to be used in this call's Do method. -func (c *ExternalVpnGatewaysSetLabelsCall) Context(ctx context.Context) *ExternalVpnGatewaysSetLabelsCall { +func (c *DisksUpdateCall) Context(ctx context.Context) *DisksUpdateCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *ExternalVpnGatewaysSetLabelsCall) Header() http.Header { +func (c *DisksUpdateCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *ExternalVpnGatewaysSetLabelsCall) doRequest(alt string) (*http.Response, error) { +func (c *DisksUpdateCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) - var body io.Reader = nil - body, err := googleapi.WithoutDataWrapper.JSONReader(c.globalsetlabelsrequest) + body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.disk2) if err != nil { return nil, err } c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/externalVpnGateways/{resource}/setLabels") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/disks/{disk}") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("POST", urls, body) + req, err := http.NewRequest("PATCH", urls, body) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "resource": c.resource, + "project": c.project, + "zone": c.zone, + "disk": c.disk, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.disks.update", "request", internallog.HTTPRequest(req, body.Bytes())) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.externalVpnGateways.setLabels" call. +// Do executes the "compute.disks.update" call. // 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 *ExternalVpnGatewaysSetLabelsCall) Do(opts ...googleapi.CallOption) (*Operation, error) { +func (c *DisksUpdateCall) Do(opts ...googleapi.CallOption) (*Operation, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -9933,68 +12358,94 @@ func (c *ExternalVpnGatewaysSetLabelsCall) Do(opts ...googleapi.CallOption) (*Op }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.disks.update", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type ExternalVpnGatewaysTestIamPermissionsCall struct { - s *Service - project string - resource string - testpermissionsrequest *TestPermissionsRequest - urlParams_ gensupport.URLParams - ctx_ context.Context - header_ http.Header +type DisksUpdateKmsKeyCall struct { + s *Service + project string + zone string + disk string + diskupdatekmskeyrequest *DiskUpdateKmsKeyRequest + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header } -// TestIamPermissions: Returns permissions that a caller has on the specified -// resource. +// UpdateKmsKey: Rotates the customer-managed +// encryption key to the latest version for the specified persistent disk. // +// - disk: Name of the Disk resource, should conform to RFC1035. // - project: Project ID for this request. -// - resource: Name or id of the resource for this request. -func (r *ExternalVpnGatewaysService) TestIamPermissions(project string, resource string, testpermissionsrequest *TestPermissionsRequest) *ExternalVpnGatewaysTestIamPermissionsCall { - c := &ExternalVpnGatewaysTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)} +// - zone: The name of the zone for this request. +func (r *DisksService) UpdateKmsKey(project string, zone string, disk string, diskupdatekmskeyrequest *DiskUpdateKmsKeyRequest) *DisksUpdateKmsKeyCall { + c := &DisksUpdateKmsKeyCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project - c.resource = resource - c.testpermissionsrequest = testpermissionsrequest + c.zone = zone + c.disk = disk + c.diskupdatekmskeyrequest = diskupdatekmskeyrequest + 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 *DisksUpdateKmsKeyCall) RequestId(requestId string) *DisksUpdateKmsKeyCall { + 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 // details. -func (c *ExternalVpnGatewaysTestIamPermissionsCall) Fields(s ...googleapi.Field) *ExternalVpnGatewaysTestIamPermissionsCall { +func (c *DisksUpdateKmsKeyCall) Fields(s ...googleapi.Field) *DisksUpdateKmsKeyCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } // Context sets the context to be used in this call's Do method. -func (c *ExternalVpnGatewaysTestIamPermissionsCall) Context(ctx context.Context) *ExternalVpnGatewaysTestIamPermissionsCall { +func (c *DisksUpdateKmsKeyCall) Context(ctx context.Context) *DisksUpdateKmsKeyCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *ExternalVpnGatewaysTestIamPermissionsCall) Header() http.Header { +func (c *DisksUpdateKmsKeyCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *ExternalVpnGatewaysTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) { +func (c *DisksUpdateKmsKeyCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) - var body io.Reader = nil - body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest) + body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.diskupdatekmskeyrequest) if err != nil { return nil, err } c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/externalVpnGateways/{resource}/testIamPermissions") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/disks/{disk}/updateKmsKey") urls += "?" + c.urlParams_.Encode() req, err := http.NewRequest("POST", urls, body) if err != nil { @@ -10002,19 +12453,20 @@ func (c *ExternalVpnGatewaysTestIamPermissionsCall) doRequest(alt string) (*http } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "resource": c.resource, + "project": c.project, + "zone": c.zone, + "disk": c.disk, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.disks.updateKmsKey", "request", internallog.HTTPRequest(req, body.Bytes())) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.externalVpnGateways.testIamPermissions" call. +// Do executes the "compute.disks.updateKmsKey" call. // Any non-2xx status code is an error. Response headers are in either -// *TestPermissionsResponse.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 *ExternalVpnGatewaysTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) { +// *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 *DisksUpdateKmsKeyCall) Do(opts ...googleapi.CallOption) (*Operation, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -10033,58 +12485,59 @@ func (c *ExternalVpnGatewaysTestIamPermissionsCall) Do(opts ...googleapi.CallOpt if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } - ret := &TestPermissionsResponse{ + ret := &Operation{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.disks.updateKmsKey", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type FirewallPoliciesAddAssociationCall struct { - s *Service - firewallPolicy string - firewallpolicyassociation *FirewallPolicyAssociation - urlParams_ gensupport.URLParams - ctx_ context.Context - header_ http.Header +type ExternalVpnGatewaysDeleteCall struct { + s *Service + project string + externalVpnGateway string + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header } -// AddAssociation: Inserts an association for the specified firewall policy. +// Delete: Deletes the specified externalVpnGateway. // -// - firewallPolicy: Name of the firewall policy to update. -func (r *FirewallPoliciesService) AddAssociation(firewallPolicy string, firewallpolicyassociation *FirewallPolicyAssociation) *FirewallPoliciesAddAssociationCall { - c := &FirewallPoliciesAddAssociationCall{s: r.s, urlParams_: make(gensupport.URLParams)} - c.firewallPolicy = firewallPolicy - c.firewallpolicyassociation = firewallpolicyassociation - return c -} - -// ReplaceExistingAssociation sets the optional parameter -// "replaceExistingAssociation": Indicates whether or not to replace it if an -// association of the attachment already exists. This is false by default, in -// which case an error will be returned if an association already exists. -func (c *FirewallPoliciesAddAssociationCall) ReplaceExistingAssociation(replaceExistingAssociation bool) *FirewallPoliciesAddAssociationCall { - c.urlParams_.Set("replaceExistingAssociation", fmt.Sprint(replaceExistingAssociation)) +// - externalVpnGateway: Name of the externalVpnGateways to delete. +// - project: Project ID for this request. +func (r *ExternalVpnGatewaysService) Delete(project string, externalVpnGateway string) *ExternalVpnGatewaysDeleteCall { + c := &ExternalVpnGatewaysDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)} + c.project = project + c.externalVpnGateway = externalVpnGateway 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 *FirewallPoliciesAddAssociationCall) RequestId(requestId string) *FirewallPoliciesAddAssociationCall { +// 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 *ExternalVpnGatewaysDeleteCall) RequestId(requestId string) *ExternalVpnGatewaysDeleteCall { c.urlParams_.Set("requestId", requestId) return c } @@ -10092,54 +12545,51 @@ func (c *FirewallPoliciesAddAssociationCall) RequestId(requestId string) *Firewa // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *FirewallPoliciesAddAssociationCall) Fields(s ...googleapi.Field) *FirewallPoliciesAddAssociationCall { +func (c *ExternalVpnGatewaysDeleteCall) Fields(s ...googleapi.Field) *ExternalVpnGatewaysDeleteCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } // Context sets the context to be used in this call's Do method. -func (c *FirewallPoliciesAddAssociationCall) Context(ctx context.Context) *FirewallPoliciesAddAssociationCall { +func (c *ExternalVpnGatewaysDeleteCall) Context(ctx context.Context) *ExternalVpnGatewaysDeleteCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *FirewallPoliciesAddAssociationCall) Header() http.Header { +func (c *ExternalVpnGatewaysDeleteCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *FirewallPoliciesAddAssociationCall) doRequest(alt string) (*http.Response, error) { - reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) - var body io.Reader = nil - body, err := googleapi.WithoutDataWrapper.JSONReader(c.firewallpolicyassociation) - if err != nil { - return nil, err - } +func (c *ExternalVpnGatewaysDeleteCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "locations/global/firewallPolicies/{firewallPolicy}/addAssociation") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/externalVpnGateways/{externalVpnGateway}") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("POST", urls, body) + req, err := http.NewRequest("DELETE", urls, nil) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "firewallPolicy": c.firewallPolicy, + "project": c.project, + "externalVpnGateway": c.externalVpnGateway, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.externalVpnGateways.delete", "request", internallog.HTTPRequest(req, nil)) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.firewallPolicies.addAssociation" call. +// Do executes the "compute.externalVpnGateways.delete" call. // 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 *FirewallPoliciesAddAssociationCall) Do(opts ...googleapi.CallOption) (*Operation, error) { +func (c *ExternalVpnGatewaysDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -10165,97 +12615,97 @@ func (c *FirewallPoliciesAddAssociationCall) Do(opts ...googleapi.CallOption) (* }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.externalVpnGateways.delete", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type FirewallPoliciesAddRuleCall struct { +type ExternalVpnGatewaysGetCall struct { s *Service - firewallPolicy string - firewallpolicyrule *FirewallPolicyRule + project string + externalVpnGateway string urlParams_ gensupport.URLParams + ifNoneMatch_ string ctx_ context.Context header_ http.Header } -// AddRule: Inserts a rule into a firewall policy. +// Get: Returns the specified externalVpnGateway. Get a list of +// available +// externalVpnGateways by making a list() request. // -// - firewallPolicy: Name of the firewall policy to update. -func (r *FirewallPoliciesService) AddRule(firewallPolicy string, firewallpolicyrule *FirewallPolicyRule) *FirewallPoliciesAddRuleCall { - c := &FirewallPoliciesAddRuleCall{s: r.s, urlParams_: make(gensupport.URLParams)} - c.firewallPolicy = firewallPolicy - c.firewallpolicyrule = firewallpolicyrule - 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 *FirewallPoliciesAddRuleCall) RequestId(requestId string) *FirewallPoliciesAddRuleCall { - c.urlParams_.Set("requestId", requestId) +// - externalVpnGateway: Name of the externalVpnGateway to return. +// - project: Project ID for this request. +func (r *ExternalVpnGatewaysService) Get(project string, externalVpnGateway string) *ExternalVpnGatewaysGetCall { + c := &ExternalVpnGatewaysGetCall{s: r.s, urlParams_: make(gensupport.URLParams)} + c.project = project + c.externalVpnGateway = externalVpnGateway return c } // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *FirewallPoliciesAddRuleCall) Fields(s ...googleapi.Field) *FirewallPoliciesAddRuleCall { +func (c *ExternalVpnGatewaysGetCall) Fields(s ...googleapi.Field) *ExternalVpnGatewaysGetCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } +// IfNoneMatch sets an 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. +func (c *ExternalVpnGatewaysGetCall) IfNoneMatch(entityTag string) *ExternalVpnGatewaysGetCall { + c.ifNoneMatch_ = entityTag + return c +} + // Context sets the context to be used in this call's Do method. -func (c *FirewallPoliciesAddRuleCall) Context(ctx context.Context) *FirewallPoliciesAddRuleCall { +func (c *ExternalVpnGatewaysGetCall) Context(ctx context.Context) *ExternalVpnGatewaysGetCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *FirewallPoliciesAddRuleCall) Header() http.Header { +func (c *ExternalVpnGatewaysGetCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *FirewallPoliciesAddRuleCall) doRequest(alt string) (*http.Response, error) { - reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) - var body io.Reader = nil - body, err := googleapi.WithoutDataWrapper.JSONReader(c.firewallpolicyrule) - if err != nil { - return nil, err +func (c *ExternalVpnGatewaysGetCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) + if c.ifNoneMatch_ != "" { + reqHeaders.Set("If-None-Match", c.ifNoneMatch_) } c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "locations/global/firewallPolicies/{firewallPolicy}/addRule") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/externalVpnGateways/{externalVpnGateway}") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("POST", urls, body) + req, err := http.NewRequest("GET", urls, nil) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "firewallPolicy": c.firewallPolicy, + "project": c.project, + "externalVpnGateway": c.externalVpnGateway, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.externalVpnGateways.get", "request", internallog.HTTPRequest(req, nil)) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.firewallPolicies.addRule" call. +// Do executes the "compute.externalVpnGateways.get" call. // 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 *FirewallPoliciesAddRuleCall) Do(opts ...googleapi.CallOption) (*Operation, error) { +// *ExternalVpnGateway.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 *ExternalVpnGatewaysGetCall) Do(opts ...googleapi.CallOption) (*ExternalVpnGateway, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -10274,87 +12724,95 @@ func (c *FirewallPoliciesAddRuleCall) Do(opts ...googleapi.CallOption) (*Operati if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } - ret := &Operation{ + ret := &ExternalVpnGateway{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.externalVpnGateways.get", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type FirewallPoliciesCloneRulesCall struct { - s *Service - firewallPolicy string - urlParams_ gensupport.URLParams - ctx_ context.Context - header_ http.Header +type ExternalVpnGatewaysInsertCall struct { + s *Service + project string + externalvpngateway *ExternalVpnGateway + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header } -// CloneRules: Copies rules to the specified firewall policy. +// Insert: Creates a ExternalVpnGateway in the specified project using +// the data included in the request. // -// - firewallPolicy: Name of the firewall policy to update. -func (r *FirewallPoliciesService) CloneRules(firewallPolicy string) *FirewallPoliciesCloneRulesCall { - c := &FirewallPoliciesCloneRulesCall{s: r.s, urlParams_: make(gensupport.URLParams)} - c.firewallPolicy = firewallPolicy +// - project: Project ID for this request. +func (r *ExternalVpnGatewaysService) Insert(project string, externalvpngateway *ExternalVpnGateway) *ExternalVpnGatewaysInsertCall { + c := &ExternalVpnGatewaysInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)} + c.project = project + c.externalvpngateway = externalvpngateway 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 *FirewallPoliciesCloneRulesCall) RequestId(requestId string) *FirewallPoliciesCloneRulesCall { +// 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 *ExternalVpnGatewaysInsertCall) RequestId(requestId string) *ExternalVpnGatewaysInsertCall { c.urlParams_.Set("requestId", requestId) return c } -// SourceFirewallPolicy sets the optional parameter "sourceFirewallPolicy": The -// firewall policy from which to copy rules. -func (c *FirewallPoliciesCloneRulesCall) SourceFirewallPolicy(sourceFirewallPolicy string) *FirewallPoliciesCloneRulesCall { - c.urlParams_.Set("sourceFirewallPolicy", sourceFirewallPolicy) - return c -} - // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *FirewallPoliciesCloneRulesCall) Fields(s ...googleapi.Field) *FirewallPoliciesCloneRulesCall { +func (c *ExternalVpnGatewaysInsertCall) Fields(s ...googleapi.Field) *ExternalVpnGatewaysInsertCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } // Context sets the context to be used in this call's Do method. -func (c *FirewallPoliciesCloneRulesCall) Context(ctx context.Context) *FirewallPoliciesCloneRulesCall { +func (c *ExternalVpnGatewaysInsertCall) Context(ctx context.Context) *ExternalVpnGatewaysInsertCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *FirewallPoliciesCloneRulesCall) Header() http.Header { +func (c *ExternalVpnGatewaysInsertCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *FirewallPoliciesCloneRulesCall) doRequest(alt string) (*http.Response, error) { - reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) - var body io.Reader = nil +func (c *ExternalVpnGatewaysInsertCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) + body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.externalvpngateway) + if err != nil { + return nil, err + } c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "locations/global/firewallPolicies/{firewallPolicy}/cloneRules") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/externalVpnGateways") urls += "?" + c.urlParams_.Encode() req, err := http.NewRequest("POST", urls, body) if err != nil { @@ -10362,17 +12820,18 @@ func (c *FirewallPoliciesCloneRulesCall) doRequest(alt string) (*http.Response, } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "firewallPolicy": c.firewallPolicy, + "project": c.project, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.externalVpnGateways.insert", "request", internallog.HTTPRequest(req, body.Bytes())) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.firewallPolicies.cloneRules" call. +// Do executes the "compute.externalVpnGateways.insert" call. // 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 *FirewallPoliciesCloneRulesCall) Do(opts ...googleapi.CallOption) (*Operation, error) { +func (c *ExternalVpnGatewaysInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -10398,91 +12857,221 @@ func (c *FirewallPoliciesCloneRulesCall) Do(opts ...googleapi.CallOption) (*Oper }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.externalVpnGateways.insert", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type FirewallPoliciesDeleteCall struct { - s *Service - firewallPolicy string - urlParams_ gensupport.URLParams - ctx_ context.Context - header_ http.Header +type ExternalVpnGatewaysListCall struct { + s *Service + project string + urlParams_ gensupport.URLParams + ifNoneMatch_ string + ctx_ context.Context + header_ http.Header } -// Delete: Deletes the specified policy. +// List: Retrieves the list of ExternalVpnGateway available to the +// specified +// project. // -// - firewallPolicy: Name of the firewall policy to delete. -func (r *FirewallPoliciesService) Delete(firewallPolicy string) *FirewallPoliciesDeleteCall { - c := &FirewallPoliciesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)} - c.firewallPolicy = firewallPolicy +// - project: Project ID for this request. +func (r *ExternalVpnGatewaysService) List(project string) *ExternalVpnGatewaysListCall { + c := &ExternalVpnGatewaysListCall{s: r.s, urlParams_: make(gensupport.URLParams)} + c.project = project 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 *FirewallPoliciesDeleteCall) RequestId(requestId string) *FirewallPoliciesDeleteCall { - c.urlParams_.Set("requestId", requestId) +// Filter sets the optional parameter "filter": A filter expression that +// filters resources listed in the response. Most +// Compute resources support two types of filter expressions: +// expressions that support regular expressions and expressions that follow +// API improvement proposal AIP-160. +// These two types of filter expressions cannot be mixed in one request. +// +// If you want to use AIP-160, your expression must specify the field name, +// an +// operator, and the value that you want to use for filtering. The value +// must be a string, a number, or a boolean. The 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`. +// +// The `:*` comparison can be used to test whether a key has been defined. +// For example, to find all objects with `owner` label +// use: +// ``` +// labels.owner:* +// ``` +// +// 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 onresource 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) +// ``` +// +// If you want to use a regular expression, use the `eq` (equal) or `ne` +// (not equal) operator against a single un-parenthesized expression with +// or +// without quotes or against multiple parenthesized expressions. +// Examples: +// +// `fieldname eq unquoted literal` +// `fieldname eq 'single quoted literal'` +// `fieldname eq "double quoted literal" +// `(fieldname1 eq literal) (fieldname2 ne "literal")` +// +// The literal value is interpreted as a regular expression using GoogleRE2 +// library syntax. +// The literal value must match the entire field. +// +// For example, to filter for instances that do not end with name +// "instance", +// you would use `name ne .*instance`. +// +// You cannot combine constraints on multiple fields using regular +// expressions. +func (c *ExternalVpnGatewaysListCall) Filter(filter string) *ExternalVpnGatewaysListCall { + 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 *ExternalVpnGatewaysListCall) MaxResults(maxResults int64) *ExternalVpnGatewaysListCall { + 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 *ExternalVpnGatewaysListCall) OrderBy(orderBy string) *ExternalVpnGatewaysListCall { + 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 *ExternalVpnGatewaysListCall) PageToken(pageToken string) *ExternalVpnGatewaysListCall { + c.urlParams_.Set("pageToken", pageToken) + return c +} + +// ReturnPartialSuccess sets the optional parameter "returnPartialSuccess": +// Opt-in for partial success behavior which provides partial results in +// case +// of failure. The default value is false. +// +// For example, when partial success behavior is enabled, aggregatedList for +// a +// single zone scope either returns all resources in the zone or no +// resources, +// with an error code. +func (c *ExternalVpnGatewaysListCall) ReturnPartialSuccess(returnPartialSuccess bool) *ExternalVpnGatewaysListCall { + c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess)) return c } // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *FirewallPoliciesDeleteCall) Fields(s ...googleapi.Field) *FirewallPoliciesDeleteCall { +func (c *ExternalVpnGatewaysListCall) Fields(s ...googleapi.Field) *ExternalVpnGatewaysListCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } +// IfNoneMatch sets an 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. +func (c *ExternalVpnGatewaysListCall) IfNoneMatch(entityTag string) *ExternalVpnGatewaysListCall { + c.ifNoneMatch_ = entityTag + return c +} + // Context sets the context to be used in this call's Do method. -func (c *FirewallPoliciesDeleteCall) Context(ctx context.Context) *FirewallPoliciesDeleteCall { +func (c *ExternalVpnGatewaysListCall) Context(ctx context.Context) *ExternalVpnGatewaysListCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *FirewallPoliciesDeleteCall) Header() http.Header { +func (c *ExternalVpnGatewaysListCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *FirewallPoliciesDeleteCall) doRequest(alt string) (*http.Response, error) { +func (c *ExternalVpnGatewaysListCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) - var body io.Reader = nil + if c.ifNoneMatch_ != "" { + reqHeaders.Set("If-None-Match", c.ifNoneMatch_) + } c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "locations/global/firewallPolicies/{firewallPolicy}") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/externalVpnGateways") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("DELETE", urls, body) + req, err := http.NewRequest("GET", urls, nil) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "firewallPolicy": c.firewallPolicy, + "project": c.project, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.externalVpnGateways.list", "request", internallog.HTTPRequest(req, nil)) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.firewallPolicies.delete" call. +// Do executes the "compute.externalVpnGateways.list" call. // 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 *FirewallPoliciesDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) { +// *ExternalVpnGatewayList.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 *ExternalVpnGatewaysListCall) Do(opts ...googleapi.CallOption) (*ExternalVpnGatewayList, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -10501,95 +13090,119 @@ func (c *FirewallPoliciesDeleteCall) Do(opts ...googleapi.CallOption) (*Operatio if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } - ret := &Operation{ + ret := &ExternalVpnGatewayList{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.externalVpnGateways.list", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type FirewallPoliciesGetCall struct { - s *Service - firewallPolicy string - urlParams_ gensupport.URLParams - ifNoneMatch_ string - ctx_ context.Context - header_ http.Header +// 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 *ExternalVpnGatewaysListCall) Pages(ctx context.Context, f func(*ExternalVpnGatewayList) error) error { + c.ctx_ = ctx + defer c.PageToken(c.urlParams_.Get("pageToken")) + 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) + } } -// Get: Returns the specified firewall policy. +type ExternalVpnGatewaysSetLabelsCall struct { + s *Service + project string + resource string + globalsetlabelsrequest *GlobalSetLabelsRequest + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header +} + +// SetLabels: Sets the labels on an ExternalVpnGateway. To learn more about +// labels, +// read the Labeling +// Resources documentation. // -// - firewallPolicy: Name of the firewall policy to get. -func (r *FirewallPoliciesService) Get(firewallPolicy string) *FirewallPoliciesGetCall { - c := &FirewallPoliciesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)} - c.firewallPolicy = firewallPolicy +// - project: Project ID for this request. +// - resource: Name or id of the resource for this request. +func (r *ExternalVpnGatewaysService) SetLabels(project string, resource string, globalsetlabelsrequest *GlobalSetLabelsRequest) *ExternalVpnGatewaysSetLabelsCall { + c := &ExternalVpnGatewaysSetLabelsCall{s: r.s, urlParams_: make(gensupport.URLParams)} + c.project = project + c.resource = resource + c.globalsetlabelsrequest = globalsetlabelsrequest return c } // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *FirewallPoliciesGetCall) Fields(s ...googleapi.Field) *FirewallPoliciesGetCall { +func (c *ExternalVpnGatewaysSetLabelsCall) Fields(s ...googleapi.Field) *ExternalVpnGatewaysSetLabelsCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } -// IfNoneMatch sets an 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. -func (c *FirewallPoliciesGetCall) IfNoneMatch(entityTag string) *FirewallPoliciesGetCall { - c.ifNoneMatch_ = entityTag - return c -} - // Context sets the context to be used in this call's Do method. -func (c *FirewallPoliciesGetCall) Context(ctx context.Context) *FirewallPoliciesGetCall { +func (c *ExternalVpnGatewaysSetLabelsCall) Context(ctx context.Context) *ExternalVpnGatewaysSetLabelsCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *FirewallPoliciesGetCall) Header() http.Header { +func (c *ExternalVpnGatewaysSetLabelsCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *FirewallPoliciesGetCall) doRequest(alt string) (*http.Response, error) { - reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) - if c.ifNoneMatch_ != "" { - reqHeaders.Set("If-None-Match", c.ifNoneMatch_) +func (c *ExternalVpnGatewaysSetLabelsCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) + body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.globalsetlabelsrequest) + if err != nil { + return nil, err } - var body io.Reader = nil c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "locations/global/firewallPolicies/{firewallPolicy}") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/externalVpnGateways/{resource}/setLabels") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("GET", urls, body) + req, err := http.NewRequest("POST", urls, body) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "firewallPolicy": c.firewallPolicy, + "project": c.project, + "resource": c.resource, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.externalVpnGateways.setLabels", "request", internallog.HTTPRequest(req, body.Bytes())) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.firewallPolicies.get" call. +// Do executes the "compute.externalVpnGateways.setLabels" call. // Any non-2xx status code is an error. Response headers are in either -// *FirewallPolicy.ServerResponse.Header or (if a response was returned at all) -// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check +// *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 *FirewallPoliciesGetCall) Do(opts ...googleapi.CallOption) (*FirewallPolicy, error) { +func (c *ExternalVpnGatewaysSetLabelsCall) Do(opts ...googleapi.CallOption) (*Operation, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -10608,104 +13221,97 @@ func (c *FirewallPoliciesGetCall) Do(opts ...googleapi.CallOption) (*FirewallPol if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } - ret := &FirewallPolicy{ + ret := &Operation{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.externalVpnGateways.setLabels", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type FirewallPoliciesGetAssociationCall struct { - s *Service - firewallPolicy string - urlParams_ gensupport.URLParams - ifNoneMatch_ string - ctx_ context.Context - header_ http.Header +type ExternalVpnGatewaysTestIamPermissionsCall struct { + s *Service + project string + resource string + testpermissionsrequest *TestPermissionsRequest + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header } -// GetAssociation: Gets an association with the specified name. +// TestIamPermissions: Returns permissions that a caller has on the specified +// resource. // -// - firewallPolicy: Name of the firewall policy to which the queried rule -// belongs. -func (r *FirewallPoliciesService) GetAssociation(firewallPolicy string) *FirewallPoliciesGetAssociationCall { - c := &FirewallPoliciesGetAssociationCall{s: r.s, urlParams_: make(gensupport.URLParams)} - c.firewallPolicy = firewallPolicy - return c -} - -// Name sets the optional parameter "name": The name of the association to get -// from the firewall policy. -func (c *FirewallPoliciesGetAssociationCall) Name(name string) *FirewallPoliciesGetAssociationCall { - c.urlParams_.Set("name", name) +// - project: Project ID for this request. +// - resource: Name or id of the resource for this request. +func (r *ExternalVpnGatewaysService) TestIamPermissions(project string, resource string, testpermissionsrequest *TestPermissionsRequest) *ExternalVpnGatewaysTestIamPermissionsCall { + c := &ExternalVpnGatewaysTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)} + c.project = project + c.resource = resource + c.testpermissionsrequest = testpermissionsrequest return c } // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *FirewallPoliciesGetAssociationCall) Fields(s ...googleapi.Field) *FirewallPoliciesGetAssociationCall { +func (c *ExternalVpnGatewaysTestIamPermissionsCall) Fields(s ...googleapi.Field) *ExternalVpnGatewaysTestIamPermissionsCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } -// IfNoneMatch sets an 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. -func (c *FirewallPoliciesGetAssociationCall) IfNoneMatch(entityTag string) *FirewallPoliciesGetAssociationCall { - c.ifNoneMatch_ = entityTag - return c -} - // Context sets the context to be used in this call's Do method. -func (c *FirewallPoliciesGetAssociationCall) Context(ctx context.Context) *FirewallPoliciesGetAssociationCall { +func (c *ExternalVpnGatewaysTestIamPermissionsCall) Context(ctx context.Context) *ExternalVpnGatewaysTestIamPermissionsCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *FirewallPoliciesGetAssociationCall) Header() http.Header { +func (c *ExternalVpnGatewaysTestIamPermissionsCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *FirewallPoliciesGetAssociationCall) doRequest(alt string) (*http.Response, error) { - reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) - if c.ifNoneMatch_ != "" { - reqHeaders.Set("If-None-Match", c.ifNoneMatch_) +func (c *ExternalVpnGatewaysTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) + body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.testpermissionsrequest) + if err != nil { + return nil, err } - var body io.Reader = nil c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "locations/global/firewallPolicies/{firewallPolicy}/getAssociation") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/externalVpnGateways/{resource}/testIamPermissions") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("GET", urls, body) + req, err := http.NewRequest("POST", urls, body) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "firewallPolicy": c.firewallPolicy, + "project": c.project, + "resource": c.resource, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.externalVpnGateways.testIamPermissions", "request", internallog.HTTPRequest(req, body.Bytes())) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.firewallPolicies.getAssociation" call. +// Do executes the "compute.externalVpnGateways.testIamPermissions" call. // Any non-2xx status code is an error. Response headers are in either -// *FirewallPolicyAssociation.ServerResponse.Header or (if a response was +// *TestPermissionsResponse.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 *FirewallPoliciesGetAssociationCall) Do(opts ...googleapi.CallOption) (*FirewallPolicyAssociation, error) { +func (c *ExternalVpnGatewaysTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -10724,103 +13330,124 @@ func (c *FirewallPoliciesGetAssociationCall) Do(opts ...googleapi.CallOption) (* if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } - ret := &FirewallPolicyAssociation{ + ret := &TestPermissionsResponse{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.externalVpnGateways.testIamPermissions", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type FirewallPoliciesGetIamPolicyCall struct { - s *Service - resource string - urlParams_ gensupport.URLParams - ifNoneMatch_ string - ctx_ context.Context - header_ http.Header +type FirewallPoliciesAddAssociationCall struct { + s *Service + firewallPolicy string + firewallpolicyassociation *FirewallPolicyAssociation + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header } -// GetIamPolicy: Gets the access control policy for a resource. May be empty if -// no such policy or resource exists. +// AddAssociation: Inserts an association for the specified firewall policy. // -// - resource: Name or id of the resource for this request. -func (r *FirewallPoliciesService) GetIamPolicy(resource string) *FirewallPoliciesGetIamPolicyCall { - c := &FirewallPoliciesGetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)} - c.resource = resource +// - firewallPolicy: Name of the firewall policy to update. +func (r *FirewallPoliciesService) AddAssociation(firewallPolicy string, firewallpolicyassociation *FirewallPolicyAssociation) *FirewallPoliciesAddAssociationCall { + c := &FirewallPoliciesAddAssociationCall{s: r.s, urlParams_: make(gensupport.URLParams)} + c.firewallPolicy = firewallPolicy + c.firewallpolicyassociation = firewallpolicyassociation return c } -// OptionsRequestedPolicyVersion sets the optional parameter -// "optionsRequestedPolicyVersion": Requested IAM Policy version. -func (c *FirewallPoliciesGetIamPolicyCall) OptionsRequestedPolicyVersion(optionsRequestedPolicyVersion int64) *FirewallPoliciesGetIamPolicyCall { - c.urlParams_.Set("optionsRequestedPolicyVersion", fmt.Sprint(optionsRequestedPolicyVersion)) +// ReplaceExistingAssociation sets the optional parameter +// "replaceExistingAssociation": Indicates whether or not to replace it if an +// association of the attachment +// already exists. This is false by default, in which case an error will +// be +// returned if an association already exists. +func (c *FirewallPoliciesAddAssociationCall) ReplaceExistingAssociation(replaceExistingAssociation bool) *FirewallPoliciesAddAssociationCall { + c.urlParams_.Set("replaceExistingAssociation", fmt.Sprint(replaceExistingAssociation)) + 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 *FirewallPoliciesAddAssociationCall) RequestId(requestId string) *FirewallPoliciesAddAssociationCall { + 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 // details. -func (c *FirewallPoliciesGetIamPolicyCall) Fields(s ...googleapi.Field) *FirewallPoliciesGetIamPolicyCall { +func (c *FirewallPoliciesAddAssociationCall) Fields(s ...googleapi.Field) *FirewallPoliciesAddAssociationCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } -// IfNoneMatch sets an 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. -func (c *FirewallPoliciesGetIamPolicyCall) IfNoneMatch(entityTag string) *FirewallPoliciesGetIamPolicyCall { - c.ifNoneMatch_ = entityTag - return c -} - // Context sets the context to be used in this call's Do method. -func (c *FirewallPoliciesGetIamPolicyCall) Context(ctx context.Context) *FirewallPoliciesGetIamPolicyCall { +func (c *FirewallPoliciesAddAssociationCall) Context(ctx context.Context) *FirewallPoliciesAddAssociationCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *FirewallPoliciesGetIamPolicyCall) Header() http.Header { +func (c *FirewallPoliciesAddAssociationCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *FirewallPoliciesGetIamPolicyCall) doRequest(alt string) (*http.Response, error) { - reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) - if c.ifNoneMatch_ != "" { - reqHeaders.Set("If-None-Match", c.ifNoneMatch_) +func (c *FirewallPoliciesAddAssociationCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) + body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.firewallpolicyassociation) + if err != nil { + return nil, err } - var body io.Reader = nil c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "locations/global/firewallPolicies/{resource}/getIamPolicy") + urls := googleapi.ResolveRelative(c.s.BasePath, "locations/global/firewallPolicies/{firewallPolicy}/addAssociation") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("GET", urls, body) + req, err := http.NewRequest("POST", urls, body) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "resource": c.resource, + "firewallPolicy": c.firewallPolicy, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.firewallPolicies.addAssociation", "request", internallog.HTTPRequest(req, body.Bytes())) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.firewallPolicies.getIamPolicy" call. +// Do executes the "compute.firewallPolicies.addAssociation" call. // Any non-2xx status code is an error. Response headers are in either -// *Policy.ServerResponse.Header or (if a response was returned at all) in +// *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 *FirewallPoliciesGetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, error) { +func (c *FirewallPoliciesAddAssociationCall) Do(opts ...googleapi.CallOption) (*Operation, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -10839,87 +13466,96 @@ func (c *FirewallPoliciesGetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Po if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } - ret := &Policy{ + ret := &Operation{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.firewallPolicies.addAssociation", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type FirewallPoliciesGetRuleCall struct { - s *Service - firewallPolicy string - urlParams_ gensupport.URLParams - ifNoneMatch_ string - ctx_ context.Context - header_ http.Header +type FirewallPoliciesAddRuleCall struct { + s *Service + firewallPolicy string + firewallpolicyrule *FirewallPolicyRule + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header } -// GetRule: Gets a rule of the specified priority. +// AddRule: Inserts a rule into a firewall policy. // -// - firewallPolicy: Name of the firewall policy to which the queried rule -// belongs. -func (r *FirewallPoliciesService) GetRule(firewallPolicy string) *FirewallPoliciesGetRuleCall { - c := &FirewallPoliciesGetRuleCall{s: r.s, urlParams_: make(gensupport.URLParams)} +// - firewallPolicy: Name of the firewall policy to update. +func (r *FirewallPoliciesService) AddRule(firewallPolicy string, firewallpolicyrule *FirewallPolicyRule) *FirewallPoliciesAddRuleCall { + c := &FirewallPoliciesAddRuleCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.firewallPolicy = firewallPolicy + c.firewallpolicyrule = firewallpolicyrule return c } -// Priority sets the optional parameter "priority": The priority of the rule to -// get from the firewall policy. -func (c *FirewallPoliciesGetRuleCall) Priority(priority int64) *FirewallPoliciesGetRuleCall { - c.urlParams_.Set("priority", fmt.Sprint(priority)) +// 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 *FirewallPoliciesAddRuleCall) RequestId(requestId string) *FirewallPoliciesAddRuleCall { + 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 // details. -func (c *FirewallPoliciesGetRuleCall) Fields(s ...googleapi.Field) *FirewallPoliciesGetRuleCall { +func (c *FirewallPoliciesAddRuleCall) Fields(s ...googleapi.Field) *FirewallPoliciesAddRuleCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } -// IfNoneMatch sets an 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. -func (c *FirewallPoliciesGetRuleCall) IfNoneMatch(entityTag string) *FirewallPoliciesGetRuleCall { - c.ifNoneMatch_ = entityTag - return c -} - // Context sets the context to be used in this call's Do method. -func (c *FirewallPoliciesGetRuleCall) Context(ctx context.Context) *FirewallPoliciesGetRuleCall { +func (c *FirewallPoliciesAddRuleCall) Context(ctx context.Context) *FirewallPoliciesAddRuleCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *FirewallPoliciesGetRuleCall) Header() http.Header { +func (c *FirewallPoliciesAddRuleCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *FirewallPoliciesGetRuleCall) doRequest(alt string) (*http.Response, error) { - reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) - if c.ifNoneMatch_ != "" { - reqHeaders.Set("If-None-Match", c.ifNoneMatch_) +func (c *FirewallPoliciesAddRuleCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) + body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.firewallpolicyrule) + if err != nil { + return nil, err } - var body io.Reader = nil c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "locations/global/firewallPolicies/{firewallPolicy}/getRule") + urls := googleapi.ResolveRelative(c.s.BasePath, "locations/global/firewallPolicies/{firewallPolicy}/addRule") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("GET", urls, body) + req, err := http.NewRequest("POST", urls, body) if err != nil { return nil, err } @@ -10927,16 +13563,16 @@ func (c *FirewallPoliciesGetRuleCall) doRequest(alt string) (*http.Response, err googleapi.Expand(req.URL, map[string]string{ "firewallPolicy": c.firewallPolicy, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.firewallPolicies.addRule", "request", internallog.HTTPRequest(req, body.Bytes())) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.firewallPolicies.getRule" call. +// Do executes the "compute.firewallPolicies.addRule" call. // Any non-2xx status code is an error. Response headers are in either -// *FirewallPolicyRule.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 *FirewallPoliciesGetRuleCall) Do(opts ...googleapi.CallOption) (*FirewallPolicyRule, error) { +// *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 *FirewallPoliciesAddRuleCall) Do(opts ...googleapi.CallOption) (*Operation, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -10955,106 +13591,114 @@ func (c *FirewallPoliciesGetRuleCall) Do(opts ...googleapi.CallOption) (*Firewal if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } - ret := &FirewallPolicyRule{ + ret := &Operation{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.firewallPolicies.addRule", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type FirewallPoliciesInsertCall struct { +type FirewallPoliciesCloneRulesCall struct { s *Service - firewallpolicy *FirewallPolicy + firewallPolicy string urlParams_ gensupport.URLParams ctx_ context.Context header_ http.Header } -// Insert: Creates a new policy in the specified project using the data -// included in the request. -func (r *FirewallPoliciesService) Insert(firewallpolicy *FirewallPolicy) *FirewallPoliciesInsertCall { - c := &FirewallPoliciesInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)} - c.firewallpolicy = firewallpolicy +// CloneRules: Copies rules to the specified firewall policy. +// +// - firewallPolicy: Name of the firewall policy to update. +func (r *FirewallPoliciesService) CloneRules(firewallPolicy string) *FirewallPoliciesCloneRulesCall { + c := &FirewallPoliciesCloneRulesCall{s: r.s, urlParams_: make(gensupport.URLParams)} + c.firewallPolicy = firewallPolicy return c } -// ParentId sets the optional parameter "parentId": Parent ID for this request. -// The ID can be either be "folders/[FOLDER_ID]" if the parent is a folder or -// "organizations/[ORGANIZATION_ID]" if the parent is an organization. -func (c *FirewallPoliciesInsertCall) ParentId(parentId string) *FirewallPoliciesInsertCall { - c.urlParams_.Set("parentId", parentId) +// 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 *FirewallPoliciesCloneRulesCall) RequestId(requestId string) *FirewallPoliciesCloneRulesCall { + c.urlParams_.Set("requestId", requestId) 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 *FirewallPoliciesInsertCall) RequestId(requestId string) *FirewallPoliciesInsertCall { - c.urlParams_.Set("requestId", requestId) +// SourceFirewallPolicy sets the optional parameter "sourceFirewallPolicy": The +// firewall policy from which to copy rules. +func (c *FirewallPoliciesCloneRulesCall) SourceFirewallPolicy(sourceFirewallPolicy string) *FirewallPoliciesCloneRulesCall { + c.urlParams_.Set("sourceFirewallPolicy", sourceFirewallPolicy) return c } // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *FirewallPoliciesInsertCall) Fields(s ...googleapi.Field) *FirewallPoliciesInsertCall { +func (c *FirewallPoliciesCloneRulesCall) Fields(s ...googleapi.Field) *FirewallPoliciesCloneRulesCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } // Context sets the context to be used in this call's Do method. -func (c *FirewallPoliciesInsertCall) Context(ctx context.Context) *FirewallPoliciesInsertCall { +func (c *FirewallPoliciesCloneRulesCall) Context(ctx context.Context) *FirewallPoliciesCloneRulesCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *FirewallPoliciesInsertCall) Header() http.Header { +func (c *FirewallPoliciesCloneRulesCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *FirewallPoliciesInsertCall) doRequest(alt string) (*http.Response, error) { - reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) - var body io.Reader = nil - body, err := googleapi.WithoutDataWrapper.JSONReader(c.firewallpolicy) - if err != nil { - return nil, err - } +func (c *FirewallPoliciesCloneRulesCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "locations/global/firewallPolicies") + urls := googleapi.ResolveRelative(c.s.BasePath, "locations/global/firewallPolicies/{firewallPolicy}/cloneRules") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("POST", urls, body) + req, err := http.NewRequest("POST", urls, nil) if err != nil { return nil, err } req.Header = reqHeaders + googleapi.Expand(req.URL, map[string]string{ + "firewallPolicy": c.firewallPolicy, + }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.firewallPolicies.cloneRules", "request", internallog.HTTPRequest(req, nil)) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.firewallPolicies.insert" call. +// Do executes the "compute.firewallPolicies.cloneRules" call. // 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 *FirewallPoliciesInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) { +func (c *FirewallPoliciesCloneRulesCall) Do(opts ...googleapi.CallOption) (*Operation, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -11080,169 +13724,100 @@ func (c *FirewallPoliciesInsertCall) Do(opts ...googleapi.CallOption) (*Operatio }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.firewallPolicies.cloneRules", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type FirewallPoliciesListCall struct { - s *Service - urlParams_ gensupport.URLParams - ifNoneMatch_ string - ctx_ context.Context - header_ http.Header -} - -// List: Lists all the policies that have been configured for the specified -// folder or organization. -func (r *FirewallPoliciesService) List() *FirewallPoliciesListCall { - c := &FirewallPoliciesListCall{s: r.s, urlParams_: make(gensupport.URLParams)} - return c -} - -// Filter sets the optional parameter "filter": A filter expression that -// filters resources listed in the response. Most Compute resources support two -// types of filter expressions: expressions that support regular expressions -// and expressions that follow API improvement proposal AIP-160. These two -// types of filter expressions cannot be mixed in one request. If you want to -// use AIP-160, your expression must specify the field name, an operator, and -// the value that you want to use for filtering. The value must be a string, a -// number, or a boolean. The 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`. The `:*` comparison can be used to test whether a key has -// been defined. For example, to find all objects with `owner` label use: ``` -// labels.owner:* ``` 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) ``` If you want to use a regular -// expression, use the `eq` (equal) or `ne` (not equal) operator against a -// single un-parenthesized expression with or without quotes or against -// multiple parenthesized expressions. Examples: `fieldname eq unquoted -// literal` `fieldname eq 'single quoted literal'` `fieldname eq "double quoted -// literal" `(fieldname1 eq literal) (fieldname2 ne "literal")` The literal -// value is interpreted as a regular expression using Google RE2 library -// syntax. The literal value must match the entire field. For example, to -// filter for instances that do not end with name "instance", you would use -// `name ne .*instance`. You cannot combine constraints on multiple fields -// using regular expressions. -func (c *FirewallPoliciesListCall) Filter(filter string) *FirewallPoliciesListCall { - 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 *FirewallPoliciesListCall) MaxResults(maxResults int64) *FirewallPoliciesListCall { - 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 *FirewallPoliciesListCall) OrderBy(orderBy string) *FirewallPoliciesListCall { - 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 *FirewallPoliciesListCall) PageToken(pageToken string) *FirewallPoliciesListCall { - c.urlParams_.Set("pageToken", pageToken) - return c +type FirewallPoliciesDeleteCall struct { + s *Service + firewallPolicy string + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header } -// ParentId sets the optional parameter "parentId": Parent ID for this request. -// The ID can be either be "folders/[FOLDER_ID]" if the parent is a folder or -// "organizations/[ORGANIZATION_ID]" if the parent is an organization. -func (c *FirewallPoliciesListCall) ParentId(parentId string) *FirewallPoliciesListCall { - c.urlParams_.Set("parentId", parentId) +// Delete: Deletes the specified policy. +// +// - firewallPolicy: Name of the firewall policy to delete. +func (r *FirewallPoliciesService) Delete(firewallPolicy string) *FirewallPoliciesDeleteCall { + c := &FirewallPoliciesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)} + c.firewallPolicy = firewallPolicy return c } -// ReturnPartialSuccess sets the optional parameter "returnPartialSuccess": -// Opt-in for partial success behavior which provides partial results in case -// of failure. The default value is false. For example, when partial success -// behavior is enabled, aggregatedList for a single zone scope either returns -// all resources in the zone or no resources, with an error code. -func (c *FirewallPoliciesListCall) ReturnPartialSuccess(returnPartialSuccess bool) *FirewallPoliciesListCall { - c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess)) +// 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 *FirewallPoliciesDeleteCall) RequestId(requestId string) *FirewallPoliciesDeleteCall { + 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 // details. -func (c *FirewallPoliciesListCall) Fields(s ...googleapi.Field) *FirewallPoliciesListCall { +func (c *FirewallPoliciesDeleteCall) Fields(s ...googleapi.Field) *FirewallPoliciesDeleteCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } -// IfNoneMatch sets an 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. -func (c *FirewallPoliciesListCall) IfNoneMatch(entityTag string) *FirewallPoliciesListCall { - c.ifNoneMatch_ = entityTag - return c -} - // Context sets the context to be used in this call's Do method. -func (c *FirewallPoliciesListCall) Context(ctx context.Context) *FirewallPoliciesListCall { +func (c *FirewallPoliciesDeleteCall) Context(ctx context.Context) *FirewallPoliciesDeleteCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *FirewallPoliciesListCall) Header() http.Header { +func (c *FirewallPoliciesDeleteCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *FirewallPoliciesListCall) doRequest(alt string) (*http.Response, error) { +func (c *FirewallPoliciesDeleteCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) - if c.ifNoneMatch_ != "" { - reqHeaders.Set("If-None-Match", c.ifNoneMatch_) - } - var body io.Reader = nil c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "locations/global/firewallPolicies") + urls := googleapi.ResolveRelative(c.s.BasePath, "locations/global/firewallPolicies/{firewallPolicy}") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("GET", urls, body) + req, err := http.NewRequest("DELETE", urls, nil) if err != nil { return nil, err } req.Header = reqHeaders + googleapi.Expand(req.URL, map[string]string{ + "firewallPolicy": c.firewallPolicy, + }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.firewallPolicies.delete", "request", internallog.HTTPRequest(req, nil)) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.firewallPolicies.list" call. +// Do executes the "compute.firewallPolicies.delete" call. // Any non-2xx status code is an error. Response headers are in either -// *FirewallPolicyList.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 *FirewallPoliciesListCall) Do(opts ...googleapi.CallOption) (*FirewallPolicyList, error) { +// *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 *FirewallPoliciesDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -11261,66 +13836,43 @@ func (c *FirewallPoliciesListCall) Do(opts ...googleapi.CallOption) (*FirewallPo if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } - ret := &FirewallPolicyList{ + ret := &Operation{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.firewallPolicies.delete", "response", internallog.HTTPResponse(res, b)) return ret, nil } -// 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 *FirewallPoliciesListCall) Pages(ctx context.Context, f func(*FirewallPolicyList) error) error { - c.ctx_ = ctx - defer c.PageToken(c.urlParams_.Get("pageToken")) - 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) - } -} - -type FirewallPoliciesListAssociationsCall struct { - s *Service - urlParams_ gensupport.URLParams - ifNoneMatch_ string - ctx_ context.Context - header_ http.Header -} - -// ListAssociations: Lists associations of a specified target, i.e., -// organization or folder. -func (r *FirewallPoliciesService) ListAssociations() *FirewallPoliciesListAssociationsCall { - c := &FirewallPoliciesListAssociationsCall{s: r.s, urlParams_: make(gensupport.URLParams)} - return c +type FirewallPoliciesGetCall struct { + s *Service + firewallPolicy string + urlParams_ gensupport.URLParams + ifNoneMatch_ string + ctx_ context.Context + header_ http.Header } -// TargetResource sets the optional parameter "targetResource": The target -// resource to list associations. It is an organization, or a folder. -func (c *FirewallPoliciesListAssociationsCall) TargetResource(targetResource string) *FirewallPoliciesListAssociationsCall { - c.urlParams_.Set("targetResource", targetResource) +// Get: Returns the specified firewall policy. +// +// - firewallPolicy: Name of the firewall policy to get. +func (r *FirewallPoliciesService) Get(firewallPolicy string) *FirewallPoliciesGetCall { + c := &FirewallPoliciesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)} + c.firewallPolicy = firewallPolicy return c } // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *FirewallPoliciesListAssociationsCall) Fields(s ...googleapi.Field) *FirewallPoliciesListAssociationsCall { +func (c *FirewallPoliciesGetCall) Fields(s ...googleapi.Field) *FirewallPoliciesGetCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } @@ -11328,51 +13880,53 @@ func (c *FirewallPoliciesListAssociationsCall) Fields(s ...googleapi.Field) *Fir // IfNoneMatch sets an 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. -func (c *FirewallPoliciesListAssociationsCall) IfNoneMatch(entityTag string) *FirewallPoliciesListAssociationsCall { +func (c *FirewallPoliciesGetCall) IfNoneMatch(entityTag string) *FirewallPoliciesGetCall { c.ifNoneMatch_ = entityTag return c } // Context sets the context to be used in this call's Do method. -func (c *FirewallPoliciesListAssociationsCall) Context(ctx context.Context) *FirewallPoliciesListAssociationsCall { +func (c *FirewallPoliciesGetCall) Context(ctx context.Context) *FirewallPoliciesGetCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *FirewallPoliciesListAssociationsCall) Header() http.Header { +func (c *FirewallPoliciesGetCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *FirewallPoliciesListAssociationsCall) doRequest(alt string) (*http.Response, error) { +func (c *FirewallPoliciesGetCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) if c.ifNoneMatch_ != "" { reqHeaders.Set("If-None-Match", c.ifNoneMatch_) } - var body io.Reader = nil c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "locations/global/firewallPolicies/listAssociations") + urls := googleapi.ResolveRelative(c.s.BasePath, "locations/global/firewallPolicies/{firewallPolicy}") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("GET", urls, body) + req, err := http.NewRequest("GET", urls, nil) if err != nil { return nil, err } req.Header = reqHeaders + googleapi.Expand(req.URL, map[string]string{ + "firewallPolicy": c.firewallPolicy, + }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.firewallPolicies.get", "request", internallog.HTTPRequest(req, nil)) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.firewallPolicies.listAssociations" call. +// Do executes the "compute.firewallPolicies.get" call. // Any non-2xx status code is an error. Response headers are in either -// *FirewallPoliciesListAssociationsResponse.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 *FirewallPoliciesListAssociationsCall) Do(opts ...googleapi.CallOption) (*FirewallPoliciesListAssociationsResponse, error) { +// *FirewallPolicy.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 *FirewallPoliciesGetCall) Do(opts ...googleapi.CallOption) (*FirewallPolicy, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -11391,91 +13945,88 @@ func (c *FirewallPoliciesListAssociationsCall) Do(opts ...googleapi.CallOption) if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } - ret := &FirewallPoliciesListAssociationsResponse{ + ret := &FirewallPolicy{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.firewallPolicies.get", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type FirewallPoliciesMoveCall struct { +type FirewallPoliciesGetAssociationCall struct { s *Service firewallPolicy string urlParams_ gensupport.URLParams + ifNoneMatch_ string ctx_ context.Context header_ http.Header } -// Move: Moves the specified firewall policy. +// GetAssociation: Gets an association with the specified name. // -// - firewallPolicy: Name of the firewall policy to update. -func (r *FirewallPoliciesService) Move(firewallPolicy string) *FirewallPoliciesMoveCall { - c := &FirewallPoliciesMoveCall{s: r.s, urlParams_: make(gensupport.URLParams)} +// - firewallPolicy: Name of the firewall policy to which the queried rule +// belongs. +func (r *FirewallPoliciesService) GetAssociation(firewallPolicy string) *FirewallPoliciesGetAssociationCall { + c := &FirewallPoliciesGetAssociationCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.firewallPolicy = firewallPolicy return c } -// ParentId sets the optional parameter "parentId": The new parent of the -// firewall policy. The ID can be either be "folders/[FOLDER_ID]" if the parent -// is a folder or "organizations/[ORGANIZATION_ID]" if the parent is an -// organization. -func (c *FirewallPoliciesMoveCall) ParentId(parentId string) *FirewallPoliciesMoveCall { - c.urlParams_.Set("parentId", parentId) - 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 *FirewallPoliciesMoveCall) RequestId(requestId string) *FirewallPoliciesMoveCall { - c.urlParams_.Set("requestId", requestId) +// Name sets the optional parameter "name": The name of the association to get +// from the firewall policy. +func (c *FirewallPoliciesGetAssociationCall) Name(name string) *FirewallPoliciesGetAssociationCall { + c.urlParams_.Set("name", name) return c } // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *FirewallPoliciesMoveCall) Fields(s ...googleapi.Field) *FirewallPoliciesMoveCall { +func (c *FirewallPoliciesGetAssociationCall) Fields(s ...googleapi.Field) *FirewallPoliciesGetAssociationCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } +// IfNoneMatch sets an 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. +func (c *FirewallPoliciesGetAssociationCall) IfNoneMatch(entityTag string) *FirewallPoliciesGetAssociationCall { + c.ifNoneMatch_ = entityTag + return c +} + // Context sets the context to be used in this call's Do method. -func (c *FirewallPoliciesMoveCall) Context(ctx context.Context) *FirewallPoliciesMoveCall { +func (c *FirewallPoliciesGetAssociationCall) Context(ctx context.Context) *FirewallPoliciesGetAssociationCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *FirewallPoliciesMoveCall) Header() http.Header { +func (c *FirewallPoliciesGetAssociationCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *FirewallPoliciesMoveCall) doRequest(alt string) (*http.Response, error) { +func (c *FirewallPoliciesGetAssociationCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) - var body io.Reader = nil + if c.ifNoneMatch_ != "" { + reqHeaders.Set("If-None-Match", c.ifNoneMatch_) + } c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "locations/global/firewallPolicies/{firewallPolicy}/move") + urls := googleapi.ResolveRelative(c.s.BasePath, "locations/global/firewallPolicies/{firewallPolicy}/getAssociation") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("POST", urls, body) + req, err := http.NewRequest("GET", urls, nil) if err != nil { return nil, err } @@ -11483,15 +14034,17 @@ func (c *FirewallPoliciesMoveCall) doRequest(alt string) (*http.Response, error) googleapi.Expand(req.URL, map[string]string{ "firewallPolicy": c.firewallPolicy, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.firewallPolicies.getAssociation", "request", internallog.HTTPRequest(req, nil)) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.firewallPolicies.move" call. +// Do executes the "compute.firewallPolicies.getAssociation" call. // 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 *FirewallPoliciesMoveCall) Do(opts ...googleapi.CallOption) (*Operation, error) { +// *FirewallPolicyAssociation.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 *FirewallPoliciesGetAssociationCall) Do(opts ...googleapi.CallOption) (*FirewallPolicyAssociation, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -11510,104 +14063,106 @@ func (c *FirewallPoliciesMoveCall) Do(opts ...googleapi.CallOption) (*Operation, if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } - ret := &Operation{ + ret := &FirewallPolicyAssociation{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.firewallPolicies.getAssociation", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type FirewallPoliciesPatchCall struct { - s *Service - firewallPolicy string - firewallpolicy *FirewallPolicy - urlParams_ gensupport.URLParams - ctx_ context.Context - header_ http.Header -} - -// Patch: Patches the specified policy with the data included in the request. -// -// - firewallPolicy: Name of the firewall policy to update. -func (r *FirewallPoliciesService) Patch(firewallPolicy string, firewallpolicy *FirewallPolicy) *FirewallPoliciesPatchCall { - c := &FirewallPoliciesPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)} - c.firewallPolicy = firewallPolicy - c.firewallpolicy = firewallpolicy +type FirewallPoliciesGetIamPolicyCall struct { + s *Service + resource string + urlParams_ gensupport.URLParams + ifNoneMatch_ string + ctx_ context.Context + header_ http.Header +} + +// GetIamPolicy: Gets the access control policy for a resource. May be empty if +// no such +// policy or resource exists. +// +// - resource: Name or id of the resource for this request. +func (r *FirewallPoliciesService) GetIamPolicy(resource string) *FirewallPoliciesGetIamPolicyCall { + c := &FirewallPoliciesGetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)} + c.resource = resource 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 *FirewallPoliciesPatchCall) RequestId(requestId string) *FirewallPoliciesPatchCall { - c.urlParams_.Set("requestId", requestId) +// OptionsRequestedPolicyVersion sets the optional parameter +// "optionsRequestedPolicyVersion": Requested IAM Policy version. +func (c *FirewallPoliciesGetIamPolicyCall) OptionsRequestedPolicyVersion(optionsRequestedPolicyVersion int64) *FirewallPoliciesGetIamPolicyCall { + c.urlParams_.Set("optionsRequestedPolicyVersion", fmt.Sprint(optionsRequestedPolicyVersion)) return c } // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *FirewallPoliciesPatchCall) Fields(s ...googleapi.Field) *FirewallPoliciesPatchCall { +func (c *FirewallPoliciesGetIamPolicyCall) Fields(s ...googleapi.Field) *FirewallPoliciesGetIamPolicyCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } +// IfNoneMatch sets an 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. +func (c *FirewallPoliciesGetIamPolicyCall) IfNoneMatch(entityTag string) *FirewallPoliciesGetIamPolicyCall { + c.ifNoneMatch_ = entityTag + return c +} + // Context sets the context to be used in this call's Do method. -func (c *FirewallPoliciesPatchCall) Context(ctx context.Context) *FirewallPoliciesPatchCall { +func (c *FirewallPoliciesGetIamPolicyCall) Context(ctx context.Context) *FirewallPoliciesGetIamPolicyCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *FirewallPoliciesPatchCall) Header() http.Header { +func (c *FirewallPoliciesGetIamPolicyCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *FirewallPoliciesPatchCall) doRequest(alt string) (*http.Response, error) { - reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) - var body io.Reader = nil - body, err := googleapi.WithoutDataWrapper.JSONReader(c.firewallpolicy) - if err != nil { - return nil, err +func (c *FirewallPoliciesGetIamPolicyCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) + if c.ifNoneMatch_ != "" { + reqHeaders.Set("If-None-Match", c.ifNoneMatch_) } c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "locations/global/firewallPolicies/{firewallPolicy}") + urls := googleapi.ResolveRelative(c.s.BasePath, "locations/global/firewallPolicies/{resource}/getIamPolicy") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("PATCH", urls, body) + req, err := http.NewRequest("GET", urls, nil) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "firewallPolicy": c.firewallPolicy, + "resource": c.resource, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.firewallPolicies.getIamPolicy", "request", internallog.HTTPRequest(req, nil)) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.firewallPolicies.patch" call. +// Do executes the "compute.firewallPolicies.getIamPolicy" call. // 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 +// *Policy.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 *FirewallPoliciesPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) { +func (c *FirewallPoliciesGetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -11626,95 +14181,88 @@ func (c *FirewallPoliciesPatchCall) Do(opts ...googleapi.CallOption) (*Operation if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } - ret := &Operation{ + ret := &Policy{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.firewallPolicies.getIamPolicy", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type FirewallPoliciesPatchRuleCall struct { - s *Service - firewallPolicy string - firewallpolicyrule *FirewallPolicyRule - urlParams_ gensupport.URLParams - ctx_ context.Context - header_ http.Header +type FirewallPoliciesGetRuleCall struct { + s *Service + firewallPolicy string + urlParams_ gensupport.URLParams + ifNoneMatch_ string + ctx_ context.Context + header_ http.Header } -// PatchRule: Patches a rule of the specified priority. +// GetRule: Gets a rule of the specified priority. // -// - firewallPolicy: Name of the firewall policy to update. -func (r *FirewallPoliciesService) PatchRule(firewallPolicy string, firewallpolicyrule *FirewallPolicyRule) *FirewallPoliciesPatchRuleCall { - c := &FirewallPoliciesPatchRuleCall{s: r.s, urlParams_: make(gensupport.URLParams)} +// - firewallPolicy: Name of the firewall policy to which the queried rule +// belongs. +func (r *FirewallPoliciesService) GetRule(firewallPolicy string) *FirewallPoliciesGetRuleCall { + c := &FirewallPoliciesGetRuleCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.firewallPolicy = firewallPolicy - c.firewallpolicyrule = firewallpolicyrule return c } // Priority sets the optional parameter "priority": The priority of the rule to -// patch. -func (c *FirewallPoliciesPatchRuleCall) Priority(priority int64) *FirewallPoliciesPatchRuleCall { +// get from the firewall policy. +func (c *FirewallPoliciesGetRuleCall) Priority(priority int64) *FirewallPoliciesGetRuleCall { c.urlParams_.Set("priority", fmt.Sprint(priority)) 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 *FirewallPoliciesPatchRuleCall) RequestId(requestId string) *FirewallPoliciesPatchRuleCall { - 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 // details. -func (c *FirewallPoliciesPatchRuleCall) Fields(s ...googleapi.Field) *FirewallPoliciesPatchRuleCall { +func (c *FirewallPoliciesGetRuleCall) Fields(s ...googleapi.Field) *FirewallPoliciesGetRuleCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } +// IfNoneMatch sets an 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. +func (c *FirewallPoliciesGetRuleCall) IfNoneMatch(entityTag string) *FirewallPoliciesGetRuleCall { + c.ifNoneMatch_ = entityTag + return c +} + // Context sets the context to be used in this call's Do method. -func (c *FirewallPoliciesPatchRuleCall) Context(ctx context.Context) *FirewallPoliciesPatchRuleCall { +func (c *FirewallPoliciesGetRuleCall) Context(ctx context.Context) *FirewallPoliciesGetRuleCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *FirewallPoliciesPatchRuleCall) Header() http.Header { +func (c *FirewallPoliciesGetRuleCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *FirewallPoliciesPatchRuleCall) doRequest(alt string) (*http.Response, error) { - reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) - var body io.Reader = nil - body, err := googleapi.WithoutDataWrapper.JSONReader(c.firewallpolicyrule) - if err != nil { - return nil, err +func (c *FirewallPoliciesGetRuleCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) + if c.ifNoneMatch_ != "" { + reqHeaders.Set("If-None-Match", c.ifNoneMatch_) } c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "locations/global/firewallPolicies/{firewallPolicy}/patchRule") + urls := googleapi.ResolveRelative(c.s.BasePath, "locations/global/firewallPolicies/{firewallPolicy}/getRule") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("POST", urls, body) + req, err := http.NewRequest("GET", urls, nil) if err != nil { return nil, err } @@ -11722,15 +14270,17 @@ func (c *FirewallPoliciesPatchRuleCall) doRequest(alt string) (*http.Response, e googleapi.Expand(req.URL, map[string]string{ "firewallPolicy": c.firewallPolicy, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.firewallPolicies.getRule", "request", internallog.HTTPRequest(req, nil)) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.firewallPolicies.patchRule" call. +// Do executes the "compute.firewallPolicies.getRule" call. // 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 *FirewallPoliciesPatchRuleCall) Do(opts ...googleapi.CallOption) (*Operation, error) { +// *FirewallPolicyRule.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 *FirewallPoliciesGetRuleCall) Do(opts ...googleapi.CallOption) (*FirewallPolicyRule, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -11749,54 +14299,65 @@ func (c *FirewallPoliciesPatchRuleCall) Do(opts ...googleapi.CallOption) (*Opera if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } - ret := &Operation{ + ret := &FirewallPolicyRule{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.firewallPolicies.getRule", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type FirewallPoliciesRemoveAssociationCall struct { +type FirewallPoliciesInsertCall struct { s *Service - firewallPolicy string + firewallpolicy *FirewallPolicy urlParams_ gensupport.URLParams ctx_ context.Context header_ http.Header } -// RemoveAssociation: Removes an association for the specified firewall policy. -// -// - firewallPolicy: Name of the firewall policy to update. -func (r *FirewallPoliciesService) RemoveAssociation(firewallPolicy string) *FirewallPoliciesRemoveAssociationCall { - c := &FirewallPoliciesRemoveAssociationCall{s: r.s, urlParams_: make(gensupport.URLParams)} - c.firewallPolicy = firewallPolicy +// Insert: Creates a new policy in the specified project using the data +// included in +// the request. +func (r *FirewallPoliciesService) Insert(firewallpolicy *FirewallPolicy) *FirewallPoliciesInsertCall { + c := &FirewallPoliciesInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)} + c.firewallpolicy = firewallpolicy return c } -// Name sets the optional parameter "name": Name for the attachment that will -// be removed. -func (c *FirewallPoliciesRemoveAssociationCall) Name(name string) *FirewallPoliciesRemoveAssociationCall { - c.urlParams_.Set("name", name) +// ParentId sets the optional parameter "parentId": Parent ID for this request. +// The ID can be either be "folders/[FOLDER_ID]" +// if the parent is a folder or "organizations/[ORGANIZATION_ID]" if the +// parent is an organization. +func (c *FirewallPoliciesInsertCall) ParentId(parentId string) *FirewallPoliciesInsertCall { + c.urlParams_.Set("parentId", parentId) 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 *FirewallPoliciesRemoveAssociationCall) RequestId(requestId string) *FirewallPoliciesRemoveAssociationCall { +// 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 *FirewallPoliciesInsertCall) RequestId(requestId string) *FirewallPoliciesInsertCall { c.urlParams_.Set("requestId", requestId) return c } @@ -11804,50 +14365,51 @@ func (c *FirewallPoliciesRemoveAssociationCall) RequestId(requestId string) *Fir // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *FirewallPoliciesRemoveAssociationCall) Fields(s ...googleapi.Field) *FirewallPoliciesRemoveAssociationCall { +func (c *FirewallPoliciesInsertCall) Fields(s ...googleapi.Field) *FirewallPoliciesInsertCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } // Context sets the context to be used in this call's Do method. -func (c *FirewallPoliciesRemoveAssociationCall) Context(ctx context.Context) *FirewallPoliciesRemoveAssociationCall { +func (c *FirewallPoliciesInsertCall) Context(ctx context.Context) *FirewallPoliciesInsertCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *FirewallPoliciesRemoveAssociationCall) Header() http.Header { +func (c *FirewallPoliciesInsertCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *FirewallPoliciesRemoveAssociationCall) doRequest(alt string) (*http.Response, error) { - reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) - var body io.Reader = nil +func (c *FirewallPoliciesInsertCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) + body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.firewallpolicy) + if err != nil { + return nil, err + } c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "locations/global/firewallPolicies/{firewallPolicy}/removeAssociation") + urls := googleapi.ResolveRelative(c.s.BasePath, "locations/global/firewallPolicies") urls += "?" + c.urlParams_.Encode() req, err := http.NewRequest("POST", urls, body) if err != nil { return nil, err } req.Header = reqHeaders - googleapi.Expand(req.URL, map[string]string{ - "firewallPolicy": c.firewallPolicy, - }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.firewallPolicies.insert", "request", internallog.HTTPRequest(req, body.Bytes())) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.firewallPolicies.removeAssociation" call. +// Do executes the "compute.firewallPolicies.insert" call. // 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 *FirewallPoliciesRemoveAssociationCall) Do(opts ...googleapi.CallOption) (*Operation, error) { +func (c *FirewallPoliciesInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -11873,98 +14435,223 @@ func (c *FirewallPoliciesRemoveAssociationCall) Do(opts ...googleapi.CallOption) }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.firewallPolicies.insert", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type FirewallPoliciesRemoveRuleCall struct { - s *Service - firewallPolicy string - urlParams_ gensupport.URLParams - ctx_ context.Context - header_ http.Header +type FirewallPoliciesListCall struct { + s *Service + urlParams_ gensupport.URLParams + ifNoneMatch_ string + ctx_ context.Context + header_ http.Header } -// RemoveRule: Deletes a rule of the specified priority. +// List: Lists all the policies that have been configured for the +// specified +// folder or organization. +func (r *FirewallPoliciesService) List() *FirewallPoliciesListCall { + c := &FirewallPoliciesListCall{s: r.s, urlParams_: make(gensupport.URLParams)} + return c +} + +// Filter sets the optional parameter "filter": A filter expression that +// filters resources listed in the response. Most +// Compute resources support two types of filter expressions: +// expressions that support regular expressions and expressions that follow +// API improvement proposal AIP-160. +// These two types of filter expressions cannot be mixed in one request. // -// - firewallPolicy: Name of the firewall policy to update. -func (r *FirewallPoliciesService) RemoveRule(firewallPolicy string) *FirewallPoliciesRemoveRuleCall { - c := &FirewallPoliciesRemoveRuleCall{s: r.s, urlParams_: make(gensupport.URLParams)} - c.firewallPolicy = firewallPolicy +// If you want to use AIP-160, your expression must specify the field name, +// an +// operator, and the value that you want to use for filtering. The value +// must be a string, a number, or a boolean. The 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`. +// +// The `:*` comparison can be used to test whether a key has been defined. +// For example, to find all objects with `owner` label +// use: +// ``` +// labels.owner:* +// ``` +// +// 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 onresource 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) +// ``` +// +// If you want to use a regular expression, use the `eq` (equal) or `ne` +// (not equal) operator against a single un-parenthesized expression with +// or +// without quotes or against multiple parenthesized expressions. +// Examples: +// +// `fieldname eq unquoted literal` +// `fieldname eq 'single quoted literal'` +// `fieldname eq "double quoted literal" +// `(fieldname1 eq literal) (fieldname2 ne "literal")` +// +// The literal value is interpreted as a regular expression using GoogleRE2 +// library syntax. +// The literal value must match the entire field. +// +// For example, to filter for instances that do not end with name +// "instance", +// you would use `name ne .*instance`. +// +// You cannot combine constraints on multiple fields using regular +// expressions. +func (c *FirewallPoliciesListCall) Filter(filter string) *FirewallPoliciesListCall { + c.urlParams_.Set("filter", filter) return c } -// Priority sets the optional parameter "priority": The priority of the rule to -// remove from the firewall policy. -func (c *FirewallPoliciesRemoveRuleCall) Priority(priority int64) *FirewallPoliciesRemoveRuleCall { - c.urlParams_.Set("priority", fmt.Sprint(priority)) +// 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 *FirewallPoliciesListCall) MaxResults(maxResults int64) *FirewallPoliciesListCall { + c.urlParams_.Set("maxResults", fmt.Sprint(maxResults)) 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 *FirewallPoliciesRemoveRuleCall) RequestId(requestId string) *FirewallPoliciesRemoveRuleCall { - c.urlParams_.Set("requestId", requestId) +// 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 *FirewallPoliciesListCall) OrderBy(orderBy string) *FirewallPoliciesListCall { + 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 *FirewallPoliciesListCall) PageToken(pageToken string) *FirewallPoliciesListCall { + c.urlParams_.Set("pageToken", pageToken) + return c +} + +// ParentId sets the optional parameter "parentId": Parent ID for this request. +// The ID can be either be "folders/[FOLDER_ID]" +// if the parent is a folder or "organizations/[ORGANIZATION_ID]" if the +// parent is an organization. +func (c *FirewallPoliciesListCall) ParentId(parentId string) *FirewallPoliciesListCall { + c.urlParams_.Set("parentId", parentId) + return c +} + +// ReturnPartialSuccess sets the optional parameter "returnPartialSuccess": +// Opt-in for partial success behavior which provides partial results in +// case +// of failure. The default value is false. +// +// For example, when partial success behavior is enabled, aggregatedList for +// a +// single zone scope either returns all resources in the zone or no +// resources, +// with an error code. +func (c *FirewallPoliciesListCall) ReturnPartialSuccess(returnPartialSuccess bool) *FirewallPoliciesListCall { + c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess)) return c } // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *FirewallPoliciesRemoveRuleCall) Fields(s ...googleapi.Field) *FirewallPoliciesRemoveRuleCall { +func (c *FirewallPoliciesListCall) Fields(s ...googleapi.Field) *FirewallPoliciesListCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } +// IfNoneMatch sets an 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. +func (c *FirewallPoliciesListCall) IfNoneMatch(entityTag string) *FirewallPoliciesListCall { + c.ifNoneMatch_ = entityTag + return c +} + // Context sets the context to be used in this call's Do method. -func (c *FirewallPoliciesRemoveRuleCall) Context(ctx context.Context) *FirewallPoliciesRemoveRuleCall { +func (c *FirewallPoliciesListCall) Context(ctx context.Context) *FirewallPoliciesListCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *FirewallPoliciesRemoveRuleCall) Header() http.Header { +func (c *FirewallPoliciesListCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *FirewallPoliciesRemoveRuleCall) doRequest(alt string) (*http.Response, error) { +func (c *FirewallPoliciesListCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) - var body io.Reader = nil + if c.ifNoneMatch_ != "" { + reqHeaders.Set("If-None-Match", c.ifNoneMatch_) + } c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "locations/global/firewallPolicies/{firewallPolicy}/removeRule") + urls := googleapi.ResolveRelative(c.s.BasePath, "locations/global/firewallPolicies") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("POST", urls, body) + req, err := http.NewRequest("GET", urls, nil) if err != nil { return nil, err } req.Header = reqHeaders - googleapi.Expand(req.URL, map[string]string{ - "firewallPolicy": c.firewallPolicy, - }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.firewallPolicies.list", "request", internallog.HTTPRequest(req, nil)) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.firewallPolicies.removeRule" call. +// Do executes the "compute.firewallPolicies.list" call. // 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 *FirewallPoliciesRemoveRuleCall) Do(opts ...googleapi.CallOption) (*Operation, error) { +// *FirewallPolicyList.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 *FirewallPoliciesListCall) Do(opts ...googleapi.CallOption) (*FirewallPolicyList, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -11983,90 +14670,132 @@ func (c *FirewallPoliciesRemoveRuleCall) Do(opts ...googleapi.CallOption) (*Oper if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } - ret := &Operation{ + ret := &FirewallPolicyList{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.firewallPolicies.list", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type FirewallPoliciesSetIamPolicyCall struct { - s *Service - resource string - globalorganizationsetpolicyrequest *GlobalOrganizationSetPolicyRequest - urlParams_ gensupport.URLParams - ctx_ context.Context - header_ http.Header +// 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 *FirewallPoliciesListCall) Pages(ctx context.Context, f func(*FirewallPolicyList) error) error { + c.ctx_ = ctx + defer c.PageToken(c.urlParams_.Get("pageToken")) + 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) + } } -// SetIamPolicy: Sets the access control policy on the specified resource. -// Replaces any existing policy. -// -// - resource: Name or id of the resource for this request. -func (r *FirewallPoliciesService) SetIamPolicy(resource string, globalorganizationsetpolicyrequest *GlobalOrganizationSetPolicyRequest) *FirewallPoliciesSetIamPolicyCall { - c := &FirewallPoliciesSetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)} - c.resource = resource - c.globalorganizationsetpolicyrequest = globalorganizationsetpolicyrequest +type FirewallPoliciesListAssociationsCall struct { + s *Service + urlParams_ gensupport.URLParams + ifNoneMatch_ string + ctx_ context.Context + header_ http.Header +} + +// ListAssociations: Lists associations of a specified target, i.e., +// organization or folder. +func (r *FirewallPoliciesService) ListAssociations() *FirewallPoliciesListAssociationsCall { + c := &FirewallPoliciesListAssociationsCall{s: r.s, urlParams_: make(gensupport.URLParams)} + return c +} + +// IncludeInheritedPolicies sets the optional parameter +// "includeInheritedPolicies": If set to "true", the response will contain a +// list of all associations for +// the containing folders and the containing organization of the target. +// The +// parameter has no effect if the target is an organization. +func (c *FirewallPoliciesListAssociationsCall) IncludeInheritedPolicies(includeInheritedPolicies bool) *FirewallPoliciesListAssociationsCall { + c.urlParams_.Set("includeInheritedPolicies", fmt.Sprint(includeInheritedPolicies)) + return c +} + +// TargetResource sets the optional parameter "targetResource": The target +// resource to list associations. It is an organization, or a +// folder. +func (c *FirewallPoliciesListAssociationsCall) TargetResource(targetResource string) *FirewallPoliciesListAssociationsCall { + c.urlParams_.Set("targetResource", targetResource) return c } // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *FirewallPoliciesSetIamPolicyCall) Fields(s ...googleapi.Field) *FirewallPoliciesSetIamPolicyCall { +func (c *FirewallPoliciesListAssociationsCall) Fields(s ...googleapi.Field) *FirewallPoliciesListAssociationsCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } +// IfNoneMatch sets an 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. +func (c *FirewallPoliciesListAssociationsCall) IfNoneMatch(entityTag string) *FirewallPoliciesListAssociationsCall { + c.ifNoneMatch_ = entityTag + return c +} + // Context sets the context to be used in this call's Do method. -func (c *FirewallPoliciesSetIamPolicyCall) Context(ctx context.Context) *FirewallPoliciesSetIamPolicyCall { +func (c *FirewallPoliciesListAssociationsCall) Context(ctx context.Context) *FirewallPoliciesListAssociationsCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *FirewallPoliciesSetIamPolicyCall) Header() http.Header { +func (c *FirewallPoliciesListAssociationsCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *FirewallPoliciesSetIamPolicyCall) doRequest(alt string) (*http.Response, error) { - reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) - var body io.Reader = nil - body, err := googleapi.WithoutDataWrapper.JSONReader(c.globalorganizationsetpolicyrequest) - if err != nil { - return nil, err +func (c *FirewallPoliciesListAssociationsCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) + if c.ifNoneMatch_ != "" { + reqHeaders.Set("If-None-Match", c.ifNoneMatch_) } c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "locations/global/firewallPolicies/{resource}/setIamPolicy") + urls := googleapi.ResolveRelative(c.s.BasePath, "locations/global/firewallPolicies/listAssociations") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("POST", urls, body) + req, err := http.NewRequest("GET", urls, nil) if err != nil { return nil, err } req.Header = reqHeaders - googleapi.Expand(req.URL, map[string]string{ - "resource": c.resource, - }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.firewallPolicies.listAssociations", "request", internallog.HTTPRequest(req, nil)) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.firewallPolicies.setIamPolicy" call. +// Do executes the "compute.firewallPolicies.listAssociations" call. // Any non-2xx status code is an error. Response headers are in either -// *Policy.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 *FirewallPoliciesSetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, error) { +// *FirewallPoliciesListAssociationsResponse.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 *FirewallPoliciesListAssociationsCall) Do(opts ...googleapi.CallOption) (*FirewallPoliciesListAssociationsResponse, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -12085,91 +14814,117 @@ func (c *FirewallPoliciesSetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Po if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } - ret := &Policy{ + ret := &FirewallPoliciesListAssociationsResponse{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.firewallPolicies.listAssociations", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type FirewallPoliciesTestIamPermissionsCall struct { - s *Service - resource string - testpermissionsrequest *TestPermissionsRequest - urlParams_ gensupport.URLParams - ctx_ context.Context - header_ http.Header +type FirewallPoliciesMoveCall struct { + s *Service + firewallPolicy string + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header } -// TestIamPermissions: Returns permissions that a caller has on the specified -// resource. +// Move: Moves the specified firewall policy. // -// - resource: Name or id of the resource for this request. -func (r *FirewallPoliciesService) TestIamPermissions(resource string, testpermissionsrequest *TestPermissionsRequest) *FirewallPoliciesTestIamPermissionsCall { - c := &FirewallPoliciesTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)} - c.resource = resource - c.testpermissionsrequest = testpermissionsrequest +// - firewallPolicy: Name of the firewall policy to update. +func (r *FirewallPoliciesService) Move(firewallPolicy string) *FirewallPoliciesMoveCall { + c := &FirewallPoliciesMoveCall{s: r.s, urlParams_: make(gensupport.URLParams)} + c.firewallPolicy = firewallPolicy + return c +} + +// ParentId sets the optional parameter "parentId": The new parent of the +// firewall policy. The ID can be either be +// "folders/[FOLDER_ID]" if the parent is a folder +// or +// "organizations/[ORGANIZATION_ID]" if the parent is an organization. +func (c *FirewallPoliciesMoveCall) ParentId(parentId string) *FirewallPoliciesMoveCall { + c.urlParams_.Set("parentId", parentId) + 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 *FirewallPoliciesMoveCall) RequestId(requestId string) *FirewallPoliciesMoveCall { + 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 // details. -func (c *FirewallPoliciesTestIamPermissionsCall) Fields(s ...googleapi.Field) *FirewallPoliciesTestIamPermissionsCall { +func (c *FirewallPoliciesMoveCall) Fields(s ...googleapi.Field) *FirewallPoliciesMoveCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } // Context sets the context to be used in this call's Do method. -func (c *FirewallPoliciesTestIamPermissionsCall) Context(ctx context.Context) *FirewallPoliciesTestIamPermissionsCall { +func (c *FirewallPoliciesMoveCall) Context(ctx context.Context) *FirewallPoliciesMoveCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *FirewallPoliciesTestIamPermissionsCall) Header() http.Header { +func (c *FirewallPoliciesMoveCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *FirewallPoliciesTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) { - reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) - var body io.Reader = nil - body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest) - if err != nil { - return nil, err - } +func (c *FirewallPoliciesMoveCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "locations/global/firewallPolicies/{resource}/testIamPermissions") + urls := googleapi.ResolveRelative(c.s.BasePath, "locations/global/firewallPolicies/{firewallPolicy}/move") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("POST", urls, body) + req, err := http.NewRequest("POST", urls, nil) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "resource": c.resource, + "firewallPolicy": c.firewallPolicy, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.firewallPolicies.move", "request", internallog.HTTPRequest(req, nil)) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.firewallPolicies.testIamPermissions" call. +// Do executes the "compute.firewallPolicies.move" call. // Any non-2xx status code is an error. Response headers are in either -// *TestPermissionsResponse.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 *FirewallPoliciesTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) { +// *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 *FirewallPoliciesMoveCall) Do(opts ...googleapi.CallOption) (*Operation, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -12188,50 +14943,58 @@ func (c *FirewallPoliciesTestIamPermissionsCall) Do(opts ...googleapi.CallOption if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } - ret := &TestPermissionsResponse{ + ret := &Operation{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.firewallPolicies.move", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type FirewallsDeleteCall struct { - s *Service - project string - firewall string - urlParams_ gensupport.URLParams - ctx_ context.Context - header_ http.Header +type FirewallPoliciesPatchCall struct { + s *Service + firewallPolicy string + firewallpolicy *FirewallPolicy + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header } -// Delete: Deletes the specified firewall. +// Patch: Patches the specified policy with the data included in the request. // -// - firewall: Name of the firewall rule to delete. -// - project: Project ID for this request. -func (r *FirewallsService) Delete(project string, firewall string) *FirewallsDeleteCall { - c := &FirewallsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)} - c.project = project - c.firewall = firewall +// - firewallPolicy: Name of the firewall policy to update. +func (r *FirewallPoliciesService) Patch(firewallPolicy string, firewallpolicy *FirewallPolicy) *FirewallPoliciesPatchCall { + c := &FirewallPoliciesPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)} + c.firewallPolicy = firewallPolicy + c.firewallpolicy = firewallpolicy 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 *FirewallsDeleteCall) RequestId(requestId string) *FirewallsDeleteCall { +// 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 *FirewallPoliciesPatchCall) RequestId(requestId string) *FirewallPoliciesPatchCall { c.urlParams_.Set("requestId", requestId) return c } @@ -12239,51 +15002,54 @@ func (c *FirewallsDeleteCall) RequestId(requestId string) *FirewallsDeleteCall { // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *FirewallsDeleteCall) Fields(s ...googleapi.Field) *FirewallsDeleteCall { +func (c *FirewallPoliciesPatchCall) Fields(s ...googleapi.Field) *FirewallPoliciesPatchCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } // Context sets the context to be used in this call's Do method. -func (c *FirewallsDeleteCall) Context(ctx context.Context) *FirewallsDeleteCall { +func (c *FirewallPoliciesPatchCall) Context(ctx context.Context) *FirewallPoliciesPatchCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *FirewallsDeleteCall) Header() http.Header { +func (c *FirewallPoliciesPatchCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *FirewallsDeleteCall) doRequest(alt string) (*http.Response, error) { - reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) - var body io.Reader = nil +func (c *FirewallPoliciesPatchCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) + body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.firewallpolicy) + if err != nil { + return nil, err + } c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/firewalls/{firewall}") + urls := googleapi.ResolveRelative(c.s.BasePath, "locations/global/firewallPolicies/{firewallPolicy}") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("DELETE", urls, body) + req, err := http.NewRequest("PATCH", urls, body) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "firewall": c.firewall, + "firewallPolicy": c.firewallPolicy, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.firewallPolicies.patch", "request", internallog.HTTPRequest(req, body.Bytes())) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.firewalls.delete" call. +// Do executes the "compute.firewallPolicies.patch" call. // 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 *FirewallsDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) { +func (c *FirewallPoliciesPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -12309,92 +15075,113 @@ func (c *FirewallsDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, erro }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.firewallPolicies.patch", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type FirewallsGetCall struct { - s *Service - project string - firewall string - urlParams_ gensupport.URLParams - ifNoneMatch_ string - ctx_ context.Context - header_ http.Header +type FirewallPoliciesPatchRuleCall struct { + s *Service + firewallPolicy string + firewallpolicyrule *FirewallPolicyRule + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header } -// Get: Returns the specified firewall. +// PatchRule: Patches a rule of the specified priority. // -// - firewall: Name of the firewall rule to return. -// - project: Project ID for this request. -func (r *FirewallsService) Get(project string, firewall string) *FirewallsGetCall { - c := &FirewallsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)} - c.project = project - c.firewall = firewall +// - firewallPolicy: Name of the firewall policy to update. +func (r *FirewallPoliciesService) PatchRule(firewallPolicy string, firewallpolicyrule *FirewallPolicyRule) *FirewallPoliciesPatchRuleCall { + c := &FirewallPoliciesPatchRuleCall{s: r.s, urlParams_: make(gensupport.URLParams)} + c.firewallPolicy = firewallPolicy + c.firewallpolicyrule = firewallpolicyrule + return c +} + +// Priority sets the optional parameter "priority": The priority of the rule to +// patch. +func (c *FirewallPoliciesPatchRuleCall) Priority(priority int64) *FirewallPoliciesPatchRuleCall { + c.urlParams_.Set("priority", fmt.Sprint(priority)) + 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 *FirewallPoliciesPatchRuleCall) RequestId(requestId string) *FirewallPoliciesPatchRuleCall { + 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 // details. -func (c *FirewallsGetCall) Fields(s ...googleapi.Field) *FirewallsGetCall { +func (c *FirewallPoliciesPatchRuleCall) Fields(s ...googleapi.Field) *FirewallPoliciesPatchRuleCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } -// IfNoneMatch sets an 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. -func (c *FirewallsGetCall) IfNoneMatch(entityTag string) *FirewallsGetCall { - c.ifNoneMatch_ = entityTag - return c -} - // Context sets the context to be used in this call's Do method. -func (c *FirewallsGetCall) Context(ctx context.Context) *FirewallsGetCall { +func (c *FirewallPoliciesPatchRuleCall) Context(ctx context.Context) *FirewallPoliciesPatchRuleCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *FirewallsGetCall) Header() http.Header { +func (c *FirewallPoliciesPatchRuleCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *FirewallsGetCall) doRequest(alt string) (*http.Response, error) { - reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) - if c.ifNoneMatch_ != "" { - reqHeaders.Set("If-None-Match", c.ifNoneMatch_) +func (c *FirewallPoliciesPatchRuleCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) + body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.firewallpolicyrule) + if err != nil { + return nil, err } - var body io.Reader = nil c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/firewalls/{firewall}") + urls := googleapi.ResolveRelative(c.s.BasePath, "locations/global/firewallPolicies/{firewallPolicy}/patchRule") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("GET", urls, body) + req, err := http.NewRequest("POST", urls, body) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "firewall": c.firewall, + "firewallPolicy": c.firewallPolicy, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.firewallPolicies.patchRule", "request", internallog.HTTPRequest(req, body.Bytes())) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.firewalls.get" call. +// Do executes the "compute.firewallPolicies.patchRule" call. // Any non-2xx status code is an error. Response headers are in either -// *Firewall.ServerResponse.Header or (if a response was returned at all) in +// *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 *FirewallsGetCall) Do(opts ...googleapi.CallOption) (*Firewall, error) { +func (c *FirewallPoliciesPatchRuleCall) Do(opts ...googleapi.CallOption) (*Operation, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -12413,50 +15200,63 @@ func (c *FirewallsGetCall) Do(opts ...googleapi.CallOption) (*Firewall, error) { if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } - ret := &Firewall{ + ret := &Operation{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.firewallPolicies.patchRule", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type FirewallsInsertCall struct { - s *Service - project string - firewall *Firewall - urlParams_ gensupport.URLParams - ctx_ context.Context - header_ http.Header +type FirewallPoliciesRemoveAssociationCall struct { + s *Service + firewallPolicy string + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header } -// Insert: Creates a firewall rule in the specified project using the data -// included in the request. +// RemoveAssociation: Removes an association for the specified firewall policy. // -// - project: Project ID for this request. -func (r *FirewallsService) Insert(project string, firewall *Firewall) *FirewallsInsertCall { - c := &FirewallsInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)} - c.project = project - c.firewall = firewall +// - firewallPolicy: Name of the firewall policy to update. +func (r *FirewallPoliciesService) RemoveAssociation(firewallPolicy string) *FirewallPoliciesRemoveAssociationCall { + c := &FirewallPoliciesRemoveAssociationCall{s: r.s, urlParams_: make(gensupport.URLParams)} + c.firewallPolicy = firewallPolicy + return c +} + +// Name sets the optional parameter "name": Name for the attachment that will +// be removed. +func (c *FirewallPoliciesRemoveAssociationCall) Name(name string) *FirewallPoliciesRemoveAssociationCall { + c.urlParams_.Set("name", name) 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 *FirewallsInsertCall) RequestId(requestId string) *FirewallsInsertCall { +// 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 *FirewallPoliciesRemoveAssociationCall) RequestId(requestId string) *FirewallPoliciesRemoveAssociationCall { c.urlParams_.Set("requestId", requestId) return c } @@ -12464,54 +15264,50 @@ func (c *FirewallsInsertCall) RequestId(requestId string) *FirewallsInsertCall { // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *FirewallsInsertCall) Fields(s ...googleapi.Field) *FirewallsInsertCall { +func (c *FirewallPoliciesRemoveAssociationCall) Fields(s ...googleapi.Field) *FirewallPoliciesRemoveAssociationCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } // Context sets the context to be used in this call's Do method. -func (c *FirewallsInsertCall) Context(ctx context.Context) *FirewallsInsertCall { +func (c *FirewallPoliciesRemoveAssociationCall) Context(ctx context.Context) *FirewallPoliciesRemoveAssociationCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *FirewallsInsertCall) Header() http.Header { +func (c *FirewallPoliciesRemoveAssociationCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *FirewallsInsertCall) doRequest(alt string) (*http.Response, error) { - reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) - var body io.Reader = nil - body, err := googleapi.WithoutDataWrapper.JSONReader(c.firewall) - if err != nil { - return nil, err - } +func (c *FirewallPoliciesRemoveAssociationCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/firewalls") + urls := googleapi.ResolveRelative(c.s.BasePath, "locations/global/firewallPolicies/{firewallPolicy}/removeAssociation") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("POST", urls, body) + req, err := http.NewRequest("POST", urls, nil) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, + "firewallPolicy": c.firewallPolicy, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.firewallPolicies.removeAssociation", "request", internallog.HTTPRequest(req, nil)) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.firewalls.insert" call. +// Do executes the "compute.firewallPolicies.removeAssociation" call. // 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 *FirewallsInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) { +func (c *FirewallPoliciesRemoveAssociationCall) Do(opts ...googleapi.CallOption) (*Operation, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -12537,167 +15333,212 @@ func (c *FirewallsInsertCall) Do(opts ...googleapi.CallOption) (*Operation, erro }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.firewallPolicies.removeAssociation", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type FirewallsListCall struct { - s *Service - project string - urlParams_ gensupport.URLParams - ifNoneMatch_ string - ctx_ context.Context - header_ http.Header +type FirewallPoliciesRemoveRuleCall struct { + s *Service + firewallPolicy string + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header } -// List: Retrieves the list of firewall rules available to the specified -// project. +// RemoveRule: Deletes a rule of the specified priority. // -// - project: Project ID for this request. -func (r *FirewallsService) List(project string) *FirewallsListCall { - c := &FirewallsListCall{s: r.s, urlParams_: make(gensupport.URLParams)} - c.project = project +// - firewallPolicy: Name of the firewall policy to update. +func (r *FirewallPoliciesService) RemoveRule(firewallPolicy string) *FirewallPoliciesRemoveRuleCall { + c := &FirewallPoliciesRemoveRuleCall{s: r.s, urlParams_: make(gensupport.URLParams)} + c.firewallPolicy = firewallPolicy return c } -// Filter sets the optional parameter "filter": A filter expression that -// filters resources listed in the response. Most Compute resources support two -// types of filter expressions: expressions that support regular expressions -// and expressions that follow API improvement proposal AIP-160. These two -// types of filter expressions cannot be mixed in one request. If you want to -// use AIP-160, your expression must specify the field name, an operator, and -// the value that you want to use for filtering. The value must be a string, a -// number, or a boolean. The 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`. The `:*` comparison can be used to test whether a key has -// been defined. For example, to find all objects with `owner` label use: ``` -// labels.owner:* ``` 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) ``` If you want to use a regular -// expression, use the `eq` (equal) or `ne` (not equal) operator against a -// single un-parenthesized expression with or without quotes or against -// multiple parenthesized expressions. Examples: `fieldname eq unquoted -// literal` `fieldname eq 'single quoted literal'` `fieldname eq "double quoted -// literal" `(fieldname1 eq literal) (fieldname2 ne "literal")` The literal -// value is interpreted as a regular expression using Google RE2 library -// syntax. The literal value must match the entire field. For example, to -// filter for instances that do not end with name "instance", you would use -// `name ne .*instance`. You cannot combine constraints on multiple fields -// using regular expressions. -func (c *FirewallsListCall) Filter(filter string) *FirewallsListCall { - c.urlParams_.Set("filter", filter) +// Priority sets the optional parameter "priority": The priority of the rule to +// remove from the firewall policy. +func (c *FirewallPoliciesRemoveRuleCall) Priority(priority int64) *FirewallPoliciesRemoveRuleCall { + c.urlParams_.Set("priority", fmt.Sprint(priority)) 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 *FirewallsListCall) MaxResults(maxResults int64) *FirewallsListCall { - c.urlParams_.Set("maxResults", fmt.Sprint(maxResults)) +// 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 *FirewallPoliciesRemoveRuleCall) RequestId(requestId string) *FirewallPoliciesRemoveRuleCall { + c.urlParams_.Set("requestId", requestId) 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 *FirewallsListCall) OrderBy(orderBy string) *FirewallsListCall { - c.urlParams_.Set("orderBy", orderBy) +// Fields allows partial responses to be retrieved. See +// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more +// details. +func (c *FirewallPoliciesRemoveRuleCall) Fields(s ...googleapi.Field) *FirewallPoliciesRemoveRuleCall { + c.urlParams_.Set("fields", googleapi.CombineFields(s)) 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 *FirewallsListCall) PageToken(pageToken string) *FirewallsListCall { - c.urlParams_.Set("pageToken", pageToken) +// Context sets the context to be used in this call's Do method. +func (c *FirewallPoliciesRemoveRuleCall) Context(ctx context.Context) *FirewallPoliciesRemoveRuleCall { + c.ctx_ = ctx return c } -// ReturnPartialSuccess sets the optional parameter "returnPartialSuccess": -// Opt-in for partial success behavior which provides partial results in case -// of failure. The default value is false. For example, when partial success -// behavior is enabled, aggregatedList for a single zone scope either returns -// all resources in the zone or no resources, with an error code. -func (c *FirewallsListCall) ReturnPartialSuccess(returnPartialSuccess bool) *FirewallsListCall { - c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess)) +// Header returns a http.Header that can be modified by the caller to add +// headers to the request. +func (c *FirewallPoliciesRemoveRuleCall) Header() http.Header { + if c.header_ == nil { + c.header_ = make(http.Header) + } + return c.header_ +} + +func (c *FirewallPoliciesRemoveRuleCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) + c.urlParams_.Set("alt", alt) + c.urlParams_.Set("prettyPrint", "false") + urls := googleapi.ResolveRelative(c.s.BasePath, "locations/global/firewallPolicies/{firewallPolicy}/removeRule") + urls += "?" + c.urlParams_.Encode() + req, err := http.NewRequest("POST", urls, nil) + if err != nil { + return nil, err + } + req.Header = reqHeaders + googleapi.Expand(req.URL, map[string]string{ + "firewallPolicy": c.firewallPolicy, + }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.firewallPolicies.removeRule", "request", internallog.HTTPRequest(req, nil)) + return gensupport.SendRequest(c.ctx_, c.s.client, req) +} + +// Do executes the "compute.firewallPolicies.removeRule" call. +// 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 *FirewallPoliciesRemoveRuleCall) 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, gensupport.WrapError(&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, gensupport.WrapError(err) + } + ret := &Operation{ + ServerResponse: googleapi.ServerResponse{ + Header: res.Header, + HTTPStatusCode: res.StatusCode, + }, + } + target := &ret + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { + return nil, err + } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.firewallPolicies.removeRule", "response", internallog.HTTPResponse(res, b)) + return ret, nil +} + +type FirewallPoliciesSetIamPolicyCall struct { + s *Service + resource string + globalorganizationsetpolicyrequest *GlobalOrganizationSetPolicyRequest + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header +} + +// SetIamPolicy: Sets the access control policy on the specified +// resource. +// Replaces any existing policy. +// +// - resource: Name or id of the resource for this request. +func (r *FirewallPoliciesService) SetIamPolicy(resource string, globalorganizationsetpolicyrequest *GlobalOrganizationSetPolicyRequest) *FirewallPoliciesSetIamPolicyCall { + c := &FirewallPoliciesSetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)} + c.resource = resource + c.globalorganizationsetpolicyrequest = globalorganizationsetpolicyrequest return c } // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *FirewallsListCall) Fields(s ...googleapi.Field) *FirewallsListCall { +func (c *FirewallPoliciesSetIamPolicyCall) Fields(s ...googleapi.Field) *FirewallPoliciesSetIamPolicyCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } -// IfNoneMatch sets an 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. -func (c *FirewallsListCall) IfNoneMatch(entityTag string) *FirewallsListCall { - c.ifNoneMatch_ = entityTag - return c -} - // Context sets the context to be used in this call's Do method. -func (c *FirewallsListCall) Context(ctx context.Context) *FirewallsListCall { +func (c *FirewallPoliciesSetIamPolicyCall) Context(ctx context.Context) *FirewallPoliciesSetIamPolicyCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *FirewallsListCall) Header() http.Header { +func (c *FirewallPoliciesSetIamPolicyCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *FirewallsListCall) doRequest(alt string) (*http.Response, error) { - reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) - if c.ifNoneMatch_ != "" { - reqHeaders.Set("If-None-Match", c.ifNoneMatch_) +func (c *FirewallPoliciesSetIamPolicyCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) + body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.globalorganizationsetpolicyrequest) + if err != nil { + return nil, err } - var body io.Reader = nil c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/firewalls") + urls := googleapi.ResolveRelative(c.s.BasePath, "locations/global/firewallPolicies/{resource}/setIamPolicy") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("GET", urls, body) + req, err := http.NewRequest("POST", urls, body) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, + "resource": c.resource, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.firewallPolicies.setIamPolicy", "request", internallog.HTTPRequest(req, body.Bytes())) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.firewalls.list" call. +// Do executes the "compute.firewallPolicies.setIamPolicy" call. // Any non-2xx status code is an error. Response headers are in either -// *FirewallList.ServerResponse.Header or (if a response was returned at all) -// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check +// *Policy.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 *FirewallsListCall) Do(opts ...googleapi.CallOption) (*FirewallList, error) { +func (c *FirewallPoliciesSetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -12716,131 +15557,93 @@ func (c *FirewallsListCall) Do(opts ...googleapi.CallOption) (*FirewallList, err if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } - ret := &FirewallList{ + ret := &Policy{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.firewallPolicies.setIamPolicy", "response", internallog.HTTPResponse(res, b)) return ret, nil } -// 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 *FirewallsListCall) Pages(ctx context.Context, f func(*FirewallList) error) error { - c.ctx_ = ctx - defer c.PageToken(c.urlParams_.Get("pageToken")) - 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) - } -} - -type FirewallsPatchCall struct { - s *Service - project string - firewall string - firewall2 *Firewall - urlParams_ gensupport.URLParams - ctx_ context.Context - header_ http.Header +type FirewallPoliciesTestIamPermissionsCall struct { + s *Service + resource string + testpermissionsrequest *TestPermissionsRequest + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header } -// Patch: Updates the specified firewall rule with the data included in the -// request. This method supports PATCH semantics and uses the JSON merge patch -// format and processing rules. +// TestIamPermissions: Returns permissions that a caller has on the specified +// resource. // -// - firewall: Name of the firewall rule to patch. -// - project: Project ID for this request. -func (r *FirewallsService) Patch(project string, firewall string, firewall2 *Firewall) *FirewallsPatchCall { - c := &FirewallsPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)} - c.project = project - c.firewall = firewall - c.firewall2 = firewall2 - 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 *FirewallsPatchCall) RequestId(requestId string) *FirewallsPatchCall { - c.urlParams_.Set("requestId", requestId) +// - resource: Name or id of the resource for this request. +func (r *FirewallPoliciesService) TestIamPermissions(resource string, testpermissionsrequest *TestPermissionsRequest) *FirewallPoliciesTestIamPermissionsCall { + c := &FirewallPoliciesTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)} + c.resource = resource + c.testpermissionsrequest = testpermissionsrequest return c } // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *FirewallsPatchCall) Fields(s ...googleapi.Field) *FirewallsPatchCall { +func (c *FirewallPoliciesTestIamPermissionsCall) Fields(s ...googleapi.Field) *FirewallPoliciesTestIamPermissionsCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } // Context sets the context to be used in this call's Do method. -func (c *FirewallsPatchCall) Context(ctx context.Context) *FirewallsPatchCall { +func (c *FirewallPoliciesTestIamPermissionsCall) Context(ctx context.Context) *FirewallPoliciesTestIamPermissionsCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *FirewallsPatchCall) Header() http.Header { +func (c *FirewallPoliciesTestIamPermissionsCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *FirewallsPatchCall) doRequest(alt string) (*http.Response, error) { +func (c *FirewallPoliciesTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) - var body io.Reader = nil - body, err := googleapi.WithoutDataWrapper.JSONReader(c.firewall2) + body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.testpermissionsrequest) if err != nil { return nil, err } c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/firewalls/{firewall}") + urls := googleapi.ResolveRelative(c.s.BasePath, "locations/global/firewallPolicies/{resource}/testIamPermissions") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("PATCH", urls, body) + req, err := http.NewRequest("POST", urls, body) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "firewall": c.firewall, + "resource": c.resource, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.firewallPolicies.testIamPermissions", "request", internallog.HTTPRequest(req, body.Bytes())) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.firewalls.patch" call. +// Do executes the "compute.firewallPolicies.testIamPermissions" call. // 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 *FirewallsPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) { +// *TestPermissionsResponse.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 *FirewallPoliciesTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -12859,54 +15662,59 @@ func (c *FirewallsPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } - ret := &Operation{ + ret := &TestPermissionsResponse{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.firewallPolicies.testIamPermissions", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type FirewallsUpdateCall struct { +type FirewallsDeleteCall struct { s *Service project string firewall string - firewall2 *Firewall urlParams_ gensupport.URLParams ctx_ context.Context header_ http.Header } -// Update: Updates the specified firewall rule with the data included in the -// request. Note that all fields will be updated if using PUT, even fields that -// are not specified. To update individual fields, please use PATCH instead. +// Delete: Deletes the specified firewall. // -// - firewall: Name of the firewall rule to update. +// - firewall: Name of the firewall rule to delete. // - project: Project ID for this request. -func (r *FirewallsService) Update(project string, firewall string, firewall2 *Firewall) *FirewallsUpdateCall { - c := &FirewallsUpdateCall{s: r.s, urlParams_: make(gensupport.URLParams)} +func (r *FirewallsService) Delete(project string, firewall string) *FirewallsDeleteCall { + c := &FirewallsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project c.firewall = firewall - c.firewall2 = firewall2 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 *FirewallsUpdateCall) RequestId(requestId string) *FirewallsUpdateCall { +// 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 *FirewallsDeleteCall) RequestId(requestId string) *FirewallsDeleteCall { c.urlParams_.Set("requestId", requestId) return c } @@ -12914,38 +15722,33 @@ func (c *FirewallsUpdateCall) RequestId(requestId string) *FirewallsUpdateCall { // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *FirewallsUpdateCall) Fields(s ...googleapi.Field) *FirewallsUpdateCall { +func (c *FirewallsDeleteCall) Fields(s ...googleapi.Field) *FirewallsDeleteCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } // Context sets the context to be used in this call's Do method. -func (c *FirewallsUpdateCall) Context(ctx context.Context) *FirewallsUpdateCall { +func (c *FirewallsDeleteCall) Context(ctx context.Context) *FirewallsDeleteCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *FirewallsUpdateCall) Header() http.Header { +func (c *FirewallsDeleteCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *FirewallsUpdateCall) doRequest(alt string) (*http.Response, error) { - reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) - var body io.Reader = nil - body, err := googleapi.WithoutDataWrapper.JSONReader(c.firewall2) - if err != nil { - return nil, err - } +func (c *FirewallsDeleteCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/firewalls/{firewall}") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("PUT", urls, body) + req, err := http.NewRequest("DELETE", urls, nil) if err != nil { return nil, err } @@ -12954,15 +15757,16 @@ func (c *FirewallsUpdateCall) doRequest(alt string) (*http.Response, error) { "project": c.project, "firewall": c.firewall, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.firewalls.delete", "request", internallog.HTTPRequest(req, nil)) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.firewalls.update" call. +// Do executes the "compute.firewalls.delete" call. // 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 *FirewallsUpdateCall) Do(opts ...googleapi.CallOption) (*Operation, error) { +func (c *FirewallsDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -12988,135 +15792,39 @@ func (c *FirewallsUpdateCall) Do(opts ...googleapi.CallOption) (*Operation, erro }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.firewalls.delete", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type ForwardingRulesAggregatedListCall struct { +type FirewallsGetCall struct { s *Service project string + firewall string urlParams_ gensupport.URLParams ifNoneMatch_ string ctx_ context.Context header_ http.Header } -// AggregatedList: Retrieves an aggregated list of forwarding rules. To prevent -// failure, Google recommends that you set the `returnPartialSuccess` parameter -// to `true`. +// Get: Returns the specified firewall. // +// - firewall: Name of the firewall rule to return. // - project: Project ID for this request. -func (r *ForwardingRulesService) AggregatedList(project string) *ForwardingRulesAggregatedListCall { - c := &ForwardingRulesAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)} +func (r *FirewallsService) Get(project string, firewall string) *FirewallsGetCall { + c := &FirewallsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project - return c -} - -// Filter sets the optional parameter "filter": A filter expression that -// filters resources listed in the response. Most Compute resources support two -// types of filter expressions: expressions that support regular expressions -// and expressions that follow API improvement proposal AIP-160. These two -// types of filter expressions cannot be mixed in one request. If you want to -// use AIP-160, your expression must specify the field name, an operator, and -// the value that you want to use for filtering. The value must be a string, a -// number, or a boolean. The 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`. The `:*` comparison can be used to test whether a key has -// been defined. For example, to find all objects with `owner` label use: ``` -// labels.owner:* ``` 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) ``` If you want to use a regular -// expression, use the `eq` (equal) or `ne` (not equal) operator against a -// single un-parenthesized expression with or without quotes or against -// multiple parenthesized expressions. Examples: `fieldname eq unquoted -// literal` `fieldname eq 'single quoted literal'` `fieldname eq "double quoted -// literal" `(fieldname1 eq literal) (fieldname2 ne "literal")` The literal -// value is interpreted as a regular expression using Google RE2 library -// syntax. The literal value must match the entire field. For example, to -// filter for instances that do not end with name "instance", you would use -// `name ne .*instance`. You cannot combine constraints on multiple fields -// using regular expressions. -func (c *ForwardingRulesAggregatedListCall) Filter(filter string) *ForwardingRulesAggregatedListCall { - c.urlParams_.Set("filter", filter) - return c -} - -// IncludeAllScopes sets the optional parameter "includeAllScopes": Indicates -// whether every visible scope for each scope type (zone, region, global) -// should be included in the response. For new resource types added after this -// field, the flag has no effect as new resource types will always include -// every visible scope for each scope type in response. For resource types -// which predate this field, if this flag is omitted or false, only scopes of -// the scope types where the resource type is expected to be found will be -// included. -func (c *ForwardingRulesAggregatedListCall) IncludeAllScopes(includeAllScopes bool) *ForwardingRulesAggregatedListCall { - c.urlParams_.Set("includeAllScopes", fmt.Sprint(includeAllScopes)) - 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 *ForwardingRulesAggregatedListCall) MaxResults(maxResults int64) *ForwardingRulesAggregatedListCall { - 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 *ForwardingRulesAggregatedListCall) OrderBy(orderBy string) *ForwardingRulesAggregatedListCall { - 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 *ForwardingRulesAggregatedListCall) PageToken(pageToken string) *ForwardingRulesAggregatedListCall { - c.urlParams_.Set("pageToken", pageToken) - return c -} - -// ReturnPartialSuccess sets the optional parameter "returnPartialSuccess": -// Opt-in for partial success behavior which provides partial results in case -// of failure. The default value is false. For example, when partial success -// behavior is enabled, aggregatedList for a single zone scope either returns -// all resources in the zone or no resources, with an error code. -func (c *ForwardingRulesAggregatedListCall) ReturnPartialSuccess(returnPartialSuccess bool) *ForwardingRulesAggregatedListCall { - c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess)) - return c -} - -// ServiceProjectNumber sets the optional parameter "serviceProjectNumber": The -// Shared VPC service project id or service project number for which aggregated -// list request is invoked for subnetworks list-usable api. -func (c *ForwardingRulesAggregatedListCall) ServiceProjectNumber(serviceProjectNumber int64) *ForwardingRulesAggregatedListCall { - c.urlParams_.Set("serviceProjectNumber", fmt.Sprint(serviceProjectNumber)) + c.firewall = firewall return c } // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *ForwardingRulesAggregatedListCall) Fields(s ...googleapi.Field) *ForwardingRulesAggregatedListCall { +func (c *FirewallsGetCall) Fields(s ...googleapi.Field) *FirewallsGetCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } @@ -13124,54 +15832,54 @@ func (c *ForwardingRulesAggregatedListCall) Fields(s ...googleapi.Field) *Forwar // IfNoneMatch sets an 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. -func (c *ForwardingRulesAggregatedListCall) IfNoneMatch(entityTag string) *ForwardingRulesAggregatedListCall { +func (c *FirewallsGetCall) IfNoneMatch(entityTag string) *FirewallsGetCall { c.ifNoneMatch_ = entityTag return c } // Context sets the context to be used in this call's Do method. -func (c *ForwardingRulesAggregatedListCall) Context(ctx context.Context) *ForwardingRulesAggregatedListCall { +func (c *FirewallsGetCall) Context(ctx context.Context) *FirewallsGetCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *ForwardingRulesAggregatedListCall) Header() http.Header { +func (c *FirewallsGetCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *ForwardingRulesAggregatedListCall) doRequest(alt string) (*http.Response, error) { +func (c *FirewallsGetCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) if c.ifNoneMatch_ != "" { reqHeaders.Set("If-None-Match", c.ifNoneMatch_) } - var body io.Reader = nil c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/aggregated/forwardingRules") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/firewalls/{firewall}") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("GET", urls, body) + req, err := http.NewRequest("GET", urls, nil) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, + "project": c.project, + "firewall": c.firewall, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.firewalls.get", "request", internallog.HTTPRequest(req, nil)) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.forwardingRules.aggregatedList" call. +// Do executes the "compute.firewalls.get" call. // Any non-2xx status code is an error. Response headers are in either -// *ForwardingRuleAggregatedList.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 *ForwardingRulesAggregatedListCall) Do(opts ...googleapi.CallOption) (*ForwardingRuleAggregatedList, error) { +// *Firewall.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 *FirewallsGetCall) Do(opts ...googleapi.CallOption) (*Firewall, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -13190,307 +15898,60 @@ func (c *ForwardingRulesAggregatedListCall) Do(opts ...googleapi.CallOption) (*F if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } - ret := &ForwardingRuleAggregatedList{ + ret := &Firewall{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.firewalls.get", "response", internallog.HTTPResponse(res, b)) return ret, nil } -// 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 *ForwardingRulesAggregatedListCall) Pages(ctx context.Context, f func(*ForwardingRuleAggregatedList) error) error { - c.ctx_ = ctx - defer c.PageToken(c.urlParams_.Get("pageToken")) - 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) - } -} - -type ForwardingRulesDeleteCall struct { - s *Service - project string - region string - forwardingRule string - urlParams_ gensupport.URLParams - ctx_ context.Context - header_ http.Header +type FirewallsInsertCall struct { + s *Service + project string + firewall *Firewall + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header } -// Delete: Deletes the specified ForwardingRule resource. +// Insert: Creates a firewall rule in the specified project using the +// data +// included in the request. // -// - forwardingRule: Name of the ForwardingRule resource to delete. // - project: Project ID for this request. -// - region: Name of the region scoping this request. -func (r *ForwardingRulesService) Delete(project string, region string, forwardingRule string) *ForwardingRulesDeleteCall { - c := &ForwardingRulesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)} +func (r *FirewallsService) Insert(project string, firewall *Firewall) *FirewallsInsertCall { + c := &FirewallsInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project - c.region = region - c.forwardingRule = forwardingRule + c.firewall = firewall 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 *ForwardingRulesDeleteCall) RequestId(requestId string) *ForwardingRulesDeleteCall { - 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 -// details. -func (c *ForwardingRulesDeleteCall) Fields(s ...googleapi.Field) *ForwardingRulesDeleteCall { - c.urlParams_.Set("fields", googleapi.CombineFields(s)) - return c -} - -// Context sets the context to be used in this call's Do method. -func (c *ForwardingRulesDeleteCall) Context(ctx context.Context) *ForwardingRulesDeleteCall { - c.ctx_ = ctx - return c -} - -// Header returns a http.Header that can be modified by the caller to add -// headers to the request. -func (c *ForwardingRulesDeleteCall) Header() http.Header { - if c.header_ == nil { - c.header_ = make(http.Header) - } - return c.header_ -} - -func (c *ForwardingRulesDeleteCall) doRequest(alt string) (*http.Response, error) { - reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) - var body io.Reader = nil - c.urlParams_.Set("alt", alt) - c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/forwardingRules/{forwardingRule}") - urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("DELETE", urls, body) - if err != nil { - return nil, err - } - req.Header = reqHeaders - googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "region": c.region, - "forwardingRule": c.forwardingRule, - }) - return gensupport.SendRequest(c.ctx_, c.s.client, req) -} - -// Do executes the "compute.forwardingRules.delete" call. -// 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 *ForwardingRulesDeleteCall) 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, gensupport.WrapError(&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, gensupport.WrapError(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 -} - -type ForwardingRulesGetCall struct { - s *Service - project string - region string - forwardingRule string - urlParams_ gensupport.URLParams - ifNoneMatch_ string - ctx_ context.Context - header_ http.Header -} - -// Get: Returns the specified ForwardingRule resource. +// 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. // -// - forwardingRule: Name of the ForwardingRule resource to return. -// - project: Project ID for this request. -// - region: Name of the region scoping this request. -func (r *ForwardingRulesService) Get(project string, region string, forwardingRule string) *ForwardingRulesGetCall { - c := &ForwardingRulesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)} - c.project = project - c.region = region - c.forwardingRule = forwardingRule - return c -} - -// Fields allows partial responses to be retrieved. See -// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more -// details. -func (c *ForwardingRulesGetCall) Fields(s ...googleapi.Field) *ForwardingRulesGetCall { - c.urlParams_.Set("fields", googleapi.CombineFields(s)) - return c -} - -// IfNoneMatch sets an 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. -func (c *ForwardingRulesGetCall) IfNoneMatch(entityTag string) *ForwardingRulesGetCall { - c.ifNoneMatch_ = entityTag - return c -} - -// Context sets the context to be used in this call's Do method. -func (c *ForwardingRulesGetCall) Context(ctx context.Context) *ForwardingRulesGetCall { - c.ctx_ = ctx - return c -} - -// Header returns a http.Header that can be modified by the caller to add -// headers to the request. -func (c *ForwardingRulesGetCall) Header() http.Header { - if c.header_ == nil { - c.header_ = make(http.Header) - } - return c.header_ -} - -func (c *ForwardingRulesGetCall) doRequest(alt string) (*http.Response, error) { - reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) - if c.ifNoneMatch_ != "" { - reqHeaders.Set("If-None-Match", c.ifNoneMatch_) - } - var body io.Reader = nil - c.urlParams_.Set("alt", alt) - c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/forwardingRules/{forwardingRule}") - urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("GET", urls, body) - if err != nil { - return nil, err - } - req.Header = reqHeaders - googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "region": c.region, - "forwardingRule": c.forwardingRule, - }) - return gensupport.SendRequest(c.ctx_, c.s.client, req) -} - -// Do executes the "compute.forwardingRules.get" call. -// Any non-2xx status code is an error. Response headers are in either -// *ForwardingRule.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 *ForwardingRulesGetCall) Do(opts ...googleapi.CallOption) (*ForwardingRule, 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, gensupport.WrapError(&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, gensupport.WrapError(err) - } - ret := &ForwardingRule{ - 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 -} - -type ForwardingRulesInsertCall struct { - s *Service - project string - region string - forwardingrule *ForwardingRule - urlParams_ gensupport.URLParams - ctx_ context.Context - header_ http.Header -} - -// Insert: Creates a ForwardingRule resource in the specified project and -// region using the data included in the request. +// 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. // -// - project: Project ID for this request. -// - region: Name of the region scoping this request. -func (r *ForwardingRulesService) Insert(project string, region string, forwardingrule *ForwardingRule) *ForwardingRulesInsertCall { - c := &ForwardingRulesInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)} - c.project = project - c.region = region - c.forwardingrule = forwardingrule - 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 *ForwardingRulesInsertCall) RequestId(requestId string) *ForwardingRulesInsertCall { +// The request ID must be +// a valid UUID with the exception that zero UUID is not +// supported +// (00000000-0000-0000-0000-000000000000). +func (c *FirewallsInsertCall) RequestId(requestId string) *FirewallsInsertCall { c.urlParams_.Set("requestId", requestId) return c } @@ -13498,36 +15959,35 @@ func (c *ForwardingRulesInsertCall) RequestId(requestId string) *ForwardingRules // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *ForwardingRulesInsertCall) Fields(s ...googleapi.Field) *ForwardingRulesInsertCall { +func (c *FirewallsInsertCall) Fields(s ...googleapi.Field) *FirewallsInsertCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } // Context sets the context to be used in this call's Do method. -func (c *ForwardingRulesInsertCall) Context(ctx context.Context) *ForwardingRulesInsertCall { +func (c *FirewallsInsertCall) Context(ctx context.Context) *FirewallsInsertCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *ForwardingRulesInsertCall) Header() http.Header { +func (c *FirewallsInsertCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *ForwardingRulesInsertCall) doRequest(alt string) (*http.Response, error) { +func (c *FirewallsInsertCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) - var body io.Reader = nil - body, err := googleapi.WithoutDataWrapper.JSONReader(c.forwardingrule) + body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.firewall) if err != nil { return nil, err } c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/forwardingRules") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/firewalls") urls += "?" + c.urlParams_.Encode() req, err := http.NewRequest("POST", urls, body) if err != nil { @@ -13536,17 +15996,17 @@ func (c *ForwardingRulesInsertCall) doRequest(alt string) (*http.Response, error req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ "project": c.project, - "region": c.region, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.firewalls.insert", "request", internallog.HTTPRequest(req, body.Bytes())) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.forwardingRules.insert" call. +// Do executes the "compute.firewalls.insert" call. // 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 *ForwardingRulesInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) { +func (c *FirewallsInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -13572,108 +16032,158 @@ func (c *ForwardingRulesInsertCall) Do(opts ...googleapi.CallOption) (*Operation }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.firewalls.insert", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type ForwardingRulesListCall struct { +type FirewallsListCall struct { s *Service project string - region string urlParams_ gensupport.URLParams ifNoneMatch_ string ctx_ context.Context header_ http.Header } -// List: Retrieves a list of ForwardingRule resources available to the -// specified project and region. +// List: Retrieves the list of firewall rules available to the +// specified +// project. // // - project: Project ID for this request. -// - region: Name of the region scoping this request. -func (r *ForwardingRulesService) List(project string, region string) *ForwardingRulesListCall { - c := &ForwardingRulesListCall{s: r.s, urlParams_: make(gensupport.URLParams)} +func (r *FirewallsService) List(project string) *FirewallsListCall { + c := &FirewallsListCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project - c.region = region return c } // Filter sets the optional parameter "filter": A filter expression that -// filters resources listed in the response. Most Compute resources support two -// types of filter expressions: expressions that support regular expressions -// and expressions that follow API improvement proposal AIP-160. These two -// types of filter expressions cannot be mixed in one request. If you want to -// use AIP-160, your expression must specify the field name, an operator, and -// the value that you want to use for filtering. The value must be a string, a -// number, or a boolean. The 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`. The `:*` comparison can be used to test whether a key has -// been defined. For example, to find all objects with `owner` label use: ``` -// labels.owner:* ``` 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) ``` If you want to use a regular -// expression, use the `eq` (equal) or `ne` (not equal) operator against a -// single un-parenthesized expression with or without quotes or against -// multiple parenthesized expressions. Examples: `fieldname eq unquoted -// literal` `fieldname eq 'single quoted literal'` `fieldname eq "double quoted -// literal" `(fieldname1 eq literal) (fieldname2 ne "literal")` The literal -// value is interpreted as a regular expression using Google RE2 library -// syntax. The literal value must match the entire field. For example, to -// filter for instances that do not end with name "instance", you would use -// `name ne .*instance`. You cannot combine constraints on multiple fields -// using regular expressions. -func (c *ForwardingRulesListCall) Filter(filter string) *ForwardingRulesListCall { +// filters resources listed in the response. Most +// Compute resources support two types of filter expressions: +// expressions that support regular expressions and expressions that follow +// API improvement proposal AIP-160. +// These two types of filter expressions cannot be mixed in one request. +// +// If you want to use AIP-160, your expression must specify the field name, +// an +// operator, and the value that you want to use for filtering. The value +// must be a string, a number, or a boolean. The 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`. +// +// The `:*` comparison can be used to test whether a key has been defined. +// For example, to find all objects with `owner` label +// use: +// ``` +// labels.owner:* +// ``` +// +// 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 onresource 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) +// ``` +// +// If you want to use a regular expression, use the `eq` (equal) or `ne` +// (not equal) operator against a single un-parenthesized expression with +// or +// without quotes or against multiple parenthesized expressions. +// Examples: +// +// `fieldname eq unquoted literal` +// `fieldname eq 'single quoted literal'` +// `fieldname eq "double quoted literal" +// `(fieldname1 eq literal) (fieldname2 ne "literal")` +// +// The literal value is interpreted as a regular expression using GoogleRE2 +// library syntax. +// The literal value must match the entire field. +// +// For example, to filter for instances that do not end with name +// "instance", +// you would use `name ne .*instance`. +// +// You cannot combine constraints on multiple fields using regular +// expressions. +func (c *FirewallsListCall) Filter(filter string) *FirewallsListCall { 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 *ForwardingRulesListCall) MaxResults(maxResults int64) *ForwardingRulesListCall { +// 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 *FirewallsListCall) MaxResults(maxResults int64) *FirewallsListCall { 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 *ForwardingRulesListCall) OrderBy(orderBy string) *ForwardingRulesListCall { +// 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 *FirewallsListCall) OrderBy(orderBy string) *FirewallsListCall { 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 *ForwardingRulesListCall) PageToken(pageToken string) *ForwardingRulesListCall { +// use. Set `pageToken` to the +// `nextPageToken` returned by a previous list request to get +// the next page of results. +func (c *FirewallsListCall) PageToken(pageToken string) *FirewallsListCall { c.urlParams_.Set("pageToken", pageToken) return c } // ReturnPartialSuccess sets the optional parameter "returnPartialSuccess": -// Opt-in for partial success behavior which provides partial results in case -// of failure. The default value is false. For example, when partial success -// behavior is enabled, aggregatedList for a single zone scope either returns -// all resources in the zone or no resources, with an error code. -func (c *ForwardingRulesListCall) ReturnPartialSuccess(returnPartialSuccess bool) *ForwardingRulesListCall { +// Opt-in for partial success behavior which provides partial results in +// case +// of failure. The default value is false. +// +// For example, when partial success behavior is enabled, aggregatedList for +// a +// single zone scope either returns all resources in the zone or no +// resources, +// with an error code. +func (c *FirewallsListCall) ReturnPartialSuccess(returnPartialSuccess bool) *FirewallsListCall { c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess)) return c } @@ -13681,7 +16191,7 @@ func (c *ForwardingRulesListCall) ReturnPartialSuccess(returnPartialSuccess bool // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *ForwardingRulesListCall) Fields(s ...googleapi.Field) *ForwardingRulesListCall { +func (c *FirewallsListCall) Fields(s ...googleapi.Field) *FirewallsListCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } @@ -13689,55 +16199,53 @@ func (c *ForwardingRulesListCall) Fields(s ...googleapi.Field) *ForwardingRulesL // IfNoneMatch sets an 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. -func (c *ForwardingRulesListCall) IfNoneMatch(entityTag string) *ForwardingRulesListCall { +func (c *FirewallsListCall) IfNoneMatch(entityTag string) *FirewallsListCall { c.ifNoneMatch_ = entityTag return c } // Context sets the context to be used in this call's Do method. -func (c *ForwardingRulesListCall) Context(ctx context.Context) *ForwardingRulesListCall { +func (c *FirewallsListCall) Context(ctx context.Context) *FirewallsListCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *ForwardingRulesListCall) Header() http.Header { +func (c *FirewallsListCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *ForwardingRulesListCall) doRequest(alt string) (*http.Response, error) { +func (c *FirewallsListCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) if c.ifNoneMatch_ != "" { reqHeaders.Set("If-None-Match", c.ifNoneMatch_) } - var body io.Reader = nil c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/forwardingRules") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/firewalls") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("GET", urls, body) + req, err := http.NewRequest("GET", urls, nil) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ "project": c.project, - "region": c.region, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.firewalls.list", "request", internallog.HTTPRequest(req, nil)) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.forwardingRules.list" call. +// Do executes the "compute.firewalls.list" call. // Any non-2xx status code is an error. Response headers are in either -// *ForwardingRuleList.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 *ForwardingRulesListCall) Do(opts ...googleapi.CallOption) (*ForwardingRuleList, error) { +// *FirewallList.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 *FirewallsListCall) Do(opts ...googleapi.CallOption) (*FirewallList, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -13756,23 +16264,25 @@ func (c *ForwardingRulesListCall) Do(opts ...googleapi.CallOption) (*ForwardingR if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } - ret := &ForwardingRuleList{ + ret := &FirewallList{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.firewalls.list", "response", internallog.HTTPResponse(res, b)) return ret, nil } // 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 *ForwardingRulesListCall) Pages(ctx context.Context, f func(*ForwardingRuleList) error) error { +func (c *FirewallsListCall) Pages(ctx context.Context, f func(*FirewallList) error) error { c.ctx_ = ctx defer c.PageToken(c.urlParams_.Get("pageToken")) for { @@ -13790,45 +16300,50 @@ func (c *ForwardingRulesListCall) Pages(ctx context.Context, f func(*ForwardingR } } -type ForwardingRulesPatchCall struct { - s *Service - project string - region string - forwardingRule string - forwardingrule *ForwardingRule - urlParams_ gensupport.URLParams - ctx_ context.Context - header_ http.Header +type FirewallsPatchCall struct { + s *Service + project string + firewall string + firewall2 *Firewall + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header } -// Patch: Updates the specified forwarding rule with the data included in the -// request. This method supports PATCH semantics and uses the JSON merge patch -// format and processing rules. Currently, you can only patch the network_tier -// field. +// Patch: Updates the specified firewall rule with the data included in +// the +// request. This method supportsPATCH +// semantics and uses theJSON merge +// patch format and processing rules. // -// - forwardingRule: Name of the ForwardingRule resource to patch. +// - firewall: Name of the firewall rule to patch. // - project: Project ID for this request. -// - region: Name of the region scoping this request. -func (r *ForwardingRulesService) Patch(project string, region string, forwardingRule string, forwardingrule *ForwardingRule) *ForwardingRulesPatchCall { - c := &ForwardingRulesPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)} +func (r *FirewallsService) Patch(project string, firewall string, firewall2 *Firewall) *FirewallsPatchCall { + c := &FirewallsPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project - c.region = region - c.forwardingRule = forwardingRule - c.forwardingrule = forwardingrule + c.firewall = firewall + c.firewall2 = firewall2 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 *ForwardingRulesPatchCall) RequestId(requestId string) *ForwardingRulesPatchCall { +// 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 *FirewallsPatchCall) RequestId(requestId string) *FirewallsPatchCall { c.urlParams_.Set("requestId", requestId) return c } @@ -13836,36 +16351,35 @@ func (c *ForwardingRulesPatchCall) RequestId(requestId string) *ForwardingRulesP // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *ForwardingRulesPatchCall) Fields(s ...googleapi.Field) *ForwardingRulesPatchCall { +func (c *FirewallsPatchCall) Fields(s ...googleapi.Field) *FirewallsPatchCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } // Context sets the context to be used in this call's Do method. -func (c *ForwardingRulesPatchCall) Context(ctx context.Context) *ForwardingRulesPatchCall { +func (c *FirewallsPatchCall) Context(ctx context.Context) *FirewallsPatchCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *ForwardingRulesPatchCall) Header() http.Header { +func (c *FirewallsPatchCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *ForwardingRulesPatchCall) doRequest(alt string) (*http.Response, error) { +func (c *FirewallsPatchCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) - var body io.Reader = nil - body, err := googleapi.WithoutDataWrapper.JSONReader(c.forwardingrule) + body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.firewall2) if err != nil { return nil, err } c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/forwardingRules/{forwardingRule}") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/firewalls/{firewall}") urls += "?" + c.urlParams_.Encode() req, err := http.NewRequest("PATCH", urls, body) if err != nil { @@ -13873,19 +16387,19 @@ func (c *ForwardingRulesPatchCall) doRequest(alt string) (*http.Response, error) } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "region": c.region, - "forwardingRule": c.forwardingRule, + "project": c.project, + "firewall": c.firewall, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.firewalls.patch", "request", internallog.HTTPRequest(req, body.Bytes())) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.forwardingRules.patch" call. +// Do executes the "compute.firewalls.patch" call. // 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 *ForwardingRulesPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) { +func (c *FirewallsPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -13911,86 +16425,69 @@ func (c *ForwardingRulesPatchCall) Do(opts ...googleapi.CallOption) (*Operation, }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.firewalls.patch", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type ForwardingRulesSetLabelsCall struct { +type FirewallsTestIamPermissionsCall struct { s *Service project string - region string resource string - regionsetlabelsrequest *RegionSetLabelsRequest + testpermissionsrequest *TestPermissionsRequest urlParams_ gensupport.URLParams ctx_ context.Context header_ http.Header } -// SetLabels: Sets the labels on the specified resource. To learn more about -// labels, read the Labeling Resources documentation. +// TestIamPermissions: Returns permissions that a caller has on the specified +// resource. // // - project: Project ID for this request. -// - region: The region for this request. // - resource: Name or id of the resource for this request. -func (r *ForwardingRulesService) SetLabels(project string, region string, resource string, regionsetlabelsrequest *RegionSetLabelsRequest) *ForwardingRulesSetLabelsCall { - c := &ForwardingRulesSetLabelsCall{s: r.s, urlParams_: make(gensupport.URLParams)} +func (r *FirewallsService) TestIamPermissions(project string, resource string, testpermissionsrequest *TestPermissionsRequest) *FirewallsTestIamPermissionsCall { + c := &FirewallsTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project - c.region = region c.resource = resource - c.regionsetlabelsrequest = regionsetlabelsrequest - 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 *ForwardingRulesSetLabelsCall) RequestId(requestId string) *ForwardingRulesSetLabelsCall { - c.urlParams_.Set("requestId", requestId) + c.testpermissionsrequest = testpermissionsrequest return c } // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *ForwardingRulesSetLabelsCall) Fields(s ...googleapi.Field) *ForwardingRulesSetLabelsCall { +func (c *FirewallsTestIamPermissionsCall) Fields(s ...googleapi.Field) *FirewallsTestIamPermissionsCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } // Context sets the context to be used in this call's Do method. -func (c *ForwardingRulesSetLabelsCall) Context(ctx context.Context) *ForwardingRulesSetLabelsCall { +func (c *FirewallsTestIamPermissionsCall) Context(ctx context.Context) *FirewallsTestIamPermissionsCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *ForwardingRulesSetLabelsCall) Header() http.Header { +func (c *FirewallsTestIamPermissionsCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *ForwardingRulesSetLabelsCall) doRequest(alt string) (*http.Response, error) { +func (c *FirewallsTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) - var body io.Reader = nil - body, err := googleapi.WithoutDataWrapper.JSONReader(c.regionsetlabelsrequest) + body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.testpermissionsrequest) if err != nil { return nil, err } c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/forwardingRules/{resource}/setLabels") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/firewalls/{resource}/testIamPermissions") urls += "?" + c.urlParams_.Encode() req, err := http.NewRequest("POST", urls, body) if err != nil { @@ -13999,18 +16496,19 @@ func (c *ForwardingRulesSetLabelsCall) doRequest(alt string) (*http.Response, er req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ "project": c.project, - "region": c.region, "resource": c.resource, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.firewalls.testIamPermissions", "request", internallog.HTTPRequest(req, body.Bytes())) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.forwardingRules.setLabels" call. +// Do executes the "compute.firewalls.testIamPermissions" call. // 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 *ForwardingRulesSetLabelsCall) Do(opts ...googleapi.CallOption) (*Operation, error) { +// *TestPermissionsResponse.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 *FirewallsTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -14029,57 +16527,66 @@ func (c *ForwardingRulesSetLabelsCall) Do(opts ...googleapi.CallOption) (*Operat if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } - ret := &Operation{ + ret := &TestPermissionsResponse{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.firewalls.testIamPermissions", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type ForwardingRulesSetTargetCall struct { - s *Service - project string - region string - forwardingRule string - targetreference *TargetReference - urlParams_ gensupport.URLParams - ctx_ context.Context - header_ http.Header +type FirewallsUpdateCall struct { + s *Service + project string + firewall string + firewall2 *Firewall + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header } -// SetTarget: Changes target URL for forwarding rule. The new target should be -// of the same type as the old target. +// Update: Updates the specified firewall rule with the data included in +// the +// request. +// Note that all fields will be updated if using PUT, even fields that are +// not +// specified. To update individual fields, please use PATCH instead. // -// - forwardingRule: Name of the ForwardingRule resource in which target is to -// be set. -// - project: Project ID for this request. -// - region: Name of the region scoping this request. -func (r *ForwardingRulesService) SetTarget(project string, region string, forwardingRule string, targetreference *TargetReference) *ForwardingRulesSetTargetCall { - c := &ForwardingRulesSetTargetCall{s: r.s, urlParams_: make(gensupport.URLParams)} +// - firewall: Name of the firewall rule to update. +// - project: Project ID for this request. +func (r *FirewallsService) Update(project string, firewall string, firewall2 *Firewall) *FirewallsUpdateCall { + c := &FirewallsUpdateCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project - c.region = region - c.forwardingRule = forwardingRule - c.targetreference = targetreference + c.firewall = firewall + c.firewall2 = firewall2 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 *ForwardingRulesSetTargetCall) RequestId(requestId string) *ForwardingRulesSetTargetCall { +// 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 *FirewallsUpdateCall) RequestId(requestId string) *FirewallsUpdateCall { c.urlParams_.Set("requestId", requestId) return c } @@ -14087,56 +16594,55 @@ func (c *ForwardingRulesSetTargetCall) RequestId(requestId string) *ForwardingRu // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *ForwardingRulesSetTargetCall) Fields(s ...googleapi.Field) *ForwardingRulesSetTargetCall { +func (c *FirewallsUpdateCall) Fields(s ...googleapi.Field) *FirewallsUpdateCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } // Context sets the context to be used in this call's Do method. -func (c *ForwardingRulesSetTargetCall) Context(ctx context.Context) *ForwardingRulesSetTargetCall { +func (c *FirewallsUpdateCall) Context(ctx context.Context) *FirewallsUpdateCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *ForwardingRulesSetTargetCall) Header() http.Header { +func (c *FirewallsUpdateCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *ForwardingRulesSetTargetCall) doRequest(alt string) (*http.Response, error) { +func (c *FirewallsUpdateCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) - var body io.Reader = nil - body, err := googleapi.WithoutDataWrapper.JSONReader(c.targetreference) + body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.firewall2) if err != nil { return nil, err } c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/forwardingRules/{forwardingRule}/setTarget") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/firewalls/{firewall}") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("POST", urls, body) + req, err := http.NewRequest("PUT", urls, body) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "region": c.region, - "forwardingRule": c.forwardingRule, + "project": c.project, + "firewall": c.firewall, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.firewalls.update", "request", internallog.HTTPRequest(req, body.Bytes())) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.forwardingRules.setTarget" call. +// Do executes the "compute.firewalls.update" call. // 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 *ForwardingRulesSetTargetCall) Do(opts ...googleapi.CallOption) (*Operation, error) { +func (c *FirewallsUpdateCall) Do(opts ...googleapi.CallOption) (*Operation, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -14162,43 +16668,344 @@ func (c *ForwardingRulesSetTargetCall) Do(opts ...googleapi.CallOption) (*Operat }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.firewalls.update", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type GlobalAddressesDeleteCall struct { - s *Service - project string - address string - urlParams_ gensupport.URLParams - ctx_ context.Context - header_ http.Header +type ForwardingRulesAggregatedListCall struct { + s *Service + project string + urlParams_ gensupport.URLParams + ifNoneMatch_ string + ctx_ context.Context + header_ http.Header } -// Delete: Deletes the specified address resource. +// AggregatedList: Retrieves an aggregated list of forwarding rules. // -// - address: Name of the address resource to delete. -// - project: Project ID for this request. -func (r *GlobalAddressesService) Delete(project string, address string) *GlobalAddressesDeleteCall { - c := &GlobalAddressesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)} +// To prevent failure, it is recommended that you set +// the +// `returnPartialSuccess` parameter to `true`. +// +// - project: Project ID for this request. +func (r *ForwardingRulesService) AggregatedList(project string) *ForwardingRulesAggregatedListCall { + c := &ForwardingRulesAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project - c.address = address + return c +} + +// Filter sets the optional parameter "filter": A filter expression that +// filters resources listed in the response. Most +// Compute resources support two types of filter expressions: +// expressions that support regular expressions and expressions that follow +// API improvement proposal AIP-160. +// These two types of filter expressions cannot be mixed in one request. +// +// If you want to use AIP-160, your expression must specify the field name, +// an +// operator, and the value that you want to use for filtering. The value +// must be a string, a number, or a boolean. The 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`. +// +// The `:*` comparison can be used to test whether a key has been defined. +// For example, to find all objects with `owner` label +// use: +// ``` +// labels.owner:* +// ``` +// +// 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 onresource 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) +// ``` +// +// If you want to use a regular expression, use the `eq` (equal) or `ne` +// (not equal) operator against a single un-parenthesized expression with +// or +// without quotes or against multiple parenthesized expressions. +// Examples: +// +// `fieldname eq unquoted literal` +// `fieldname eq 'single quoted literal'` +// `fieldname eq "double quoted literal" +// `(fieldname1 eq literal) (fieldname2 ne "literal")` +// +// The literal value is interpreted as a regular expression using GoogleRE2 +// library syntax. +// The literal value must match the entire field. +// +// For example, to filter for instances that do not end with name +// "instance", +// you would use `name ne .*instance`. +// +// You cannot combine constraints on multiple fields using regular +// expressions. +func (c *ForwardingRulesAggregatedListCall) Filter(filter string) *ForwardingRulesAggregatedListCall { + c.urlParams_.Set("filter", filter) + return c +} + +// IncludeAllScopes sets the optional parameter "includeAllScopes": Indicates +// whether every visible scope for each scope type (zone, region, +// global) should be included in the response. For new resource types +// added +// after this field, the flag has no effect as new resource types will +// always +// include every visible scope for each scope type in response. For +// resource +// types which predate this field, if this flag is omitted or false, +// only +// scopes of the scope types where the resource type is expected to be +// found +// will be included. +func (c *ForwardingRulesAggregatedListCall) IncludeAllScopes(includeAllScopes bool) *ForwardingRulesAggregatedListCall { + c.urlParams_.Set("includeAllScopes", fmt.Sprint(includeAllScopes)) + 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 *ForwardingRulesAggregatedListCall) MaxResults(maxResults int64) *ForwardingRulesAggregatedListCall { + 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 *ForwardingRulesAggregatedListCall) OrderBy(orderBy string) *ForwardingRulesAggregatedListCall { + 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 *ForwardingRulesAggregatedListCall) PageToken(pageToken string) *ForwardingRulesAggregatedListCall { + c.urlParams_.Set("pageToken", pageToken) + return c +} + +// ReturnPartialSuccess sets the optional parameter "returnPartialSuccess": +// Opt-in for partial success behavior which provides partial results in +// case +// of failure. The default value is false. +// +// For example, when partial success behavior is enabled, aggregatedList for +// a +// single zone scope either returns all resources in the zone or no +// resources, +// with an error code. +func (c *ForwardingRulesAggregatedListCall) ReturnPartialSuccess(returnPartialSuccess bool) *ForwardingRulesAggregatedListCall { + c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess)) + return c +} + +// ServiceProjectNumber sets the optional parameter "serviceProjectNumber": The +// Shared VPC service project id or service project number for which +// aggregated list request is invoked for subnetworks list-usable api. +func (c *ForwardingRulesAggregatedListCall) ServiceProjectNumber(serviceProjectNumber int64) *ForwardingRulesAggregatedListCall { + c.urlParams_.Set("serviceProjectNumber", fmt.Sprint(serviceProjectNumber)) + return c +} + +// Fields allows partial responses to be retrieved. See +// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more +// details. +func (c *ForwardingRulesAggregatedListCall) Fields(s ...googleapi.Field) *ForwardingRulesAggregatedListCall { + c.urlParams_.Set("fields", googleapi.CombineFields(s)) + return c +} + +// IfNoneMatch sets an 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. +func (c *ForwardingRulesAggregatedListCall) IfNoneMatch(entityTag string) *ForwardingRulesAggregatedListCall { + c.ifNoneMatch_ = entityTag + return c +} + +// Context sets the context to be used in this call's Do method. +func (c *ForwardingRulesAggregatedListCall) Context(ctx context.Context) *ForwardingRulesAggregatedListCall { + c.ctx_ = ctx + return c +} + +// Header returns a http.Header that can be modified by the caller to add +// headers to the request. +func (c *ForwardingRulesAggregatedListCall) Header() http.Header { + if c.header_ == nil { + c.header_ = make(http.Header) + } + return c.header_ +} + +func (c *ForwardingRulesAggregatedListCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) + if c.ifNoneMatch_ != "" { + reqHeaders.Set("If-None-Match", c.ifNoneMatch_) + } + c.urlParams_.Set("alt", alt) + c.urlParams_.Set("prettyPrint", "false") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/aggregated/forwardingRules") + urls += "?" + c.urlParams_.Encode() + req, err := http.NewRequest("GET", urls, nil) + if err != nil { + return nil, err + } + req.Header = reqHeaders + googleapi.Expand(req.URL, map[string]string{ + "project": c.project, + }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.forwardingRules.aggregatedList", "request", internallog.HTTPRequest(req, nil)) + return gensupport.SendRequest(c.ctx_, c.s.client, req) +} + +// Do executes the "compute.forwardingRules.aggregatedList" call. +// Any non-2xx status code is an error. Response headers are in either +// *ForwardingRuleAggregatedList.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 *ForwardingRulesAggregatedListCall) Do(opts ...googleapi.CallOption) (*ForwardingRuleAggregatedList, 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, gensupport.WrapError(&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, gensupport.WrapError(err) + } + ret := &ForwardingRuleAggregatedList{ + ServerResponse: googleapi.ServerResponse{ + Header: res.Header, + HTTPStatusCode: res.StatusCode, + }, + } + target := &ret + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { + return nil, err + } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.forwardingRules.aggregatedList", "response", internallog.HTTPResponse(res, b)) + return ret, nil +} + +// 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 *ForwardingRulesAggregatedListCall) Pages(ctx context.Context, f func(*ForwardingRuleAggregatedList) error) error { + c.ctx_ = ctx + defer c.PageToken(c.urlParams_.Get("pageToken")) + 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) + } +} + +type ForwardingRulesDeleteCall struct { + s *Service + project string + region string + forwardingRule string + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header +} + +// Delete: Deletes the specified ForwardingRule resource. +// +// - forwardingRule: Name of the ForwardingRule resource to delete. +// - project: Project ID for this request. +// - region: Name of the region scoping this request. +func (r *ForwardingRulesService) Delete(project string, region string, forwardingRule string) *ForwardingRulesDeleteCall { + c := &ForwardingRulesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)} + c.project = project + c.region = region + c.forwardingRule = forwardingRule 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 *GlobalAddressesDeleteCall) RequestId(requestId string) *GlobalAddressesDeleteCall { +// 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 *ForwardingRulesDeleteCall) RequestId(requestId string) *ForwardingRulesDeleteCall { c.urlParams_.Set("requestId", requestId) return c } @@ -14206,51 +17013,52 @@ func (c *GlobalAddressesDeleteCall) RequestId(requestId string) *GlobalAddresses // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *GlobalAddressesDeleteCall) Fields(s ...googleapi.Field) *GlobalAddressesDeleteCall { +func (c *ForwardingRulesDeleteCall) Fields(s ...googleapi.Field) *ForwardingRulesDeleteCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } // Context sets the context to be used in this call's Do method. -func (c *GlobalAddressesDeleteCall) Context(ctx context.Context) *GlobalAddressesDeleteCall { +func (c *ForwardingRulesDeleteCall) Context(ctx context.Context) *ForwardingRulesDeleteCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *GlobalAddressesDeleteCall) Header() http.Header { +func (c *ForwardingRulesDeleteCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *GlobalAddressesDeleteCall) doRequest(alt string) (*http.Response, error) { +func (c *ForwardingRulesDeleteCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) - var body io.Reader = nil c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/addresses/{address}") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/forwardingRules/{forwardingRule}") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("DELETE", urls, body) + req, err := http.NewRequest("DELETE", urls, nil) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "address": c.address, + "project": c.project, + "region": c.region, + "forwardingRule": c.forwardingRule, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.forwardingRules.delete", "request", internallog.HTTPRequest(req, nil)) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.globalAddresses.delete" call. +// Do executes the "compute.forwardingRules.delete" call. // 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 *GlobalAddressesDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) { +func (c *ForwardingRulesDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -14276,37 +17084,58 @@ func (c *GlobalAddressesDeleteCall) Do(opts ...googleapi.CallOption) (*Operation }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.forwardingRules.delete", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type GlobalAddressesGetCall struct { - s *Service - project string - address string - urlParams_ gensupport.URLParams - ifNoneMatch_ string - ctx_ context.Context - header_ http.Header +type ForwardingRulesGetCall struct { + s *Service + project string + region string + forwardingRule string + urlParams_ gensupport.URLParams + ifNoneMatch_ string + ctx_ context.Context + header_ http.Header } -// Get: Returns the specified address resource. +// Get: Returns the specified ForwardingRule resource. // -// - address: Name of the address resource to return. +// - forwardingRule: Name of the ForwardingRule resource to return. // - project: Project ID for this request. -func (r *GlobalAddressesService) Get(project string, address string) *GlobalAddressesGetCall { - c := &GlobalAddressesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)} +// - region: Name of the region scoping this request. +func (r *ForwardingRulesService) Get(project string, region string, forwardingRule string) *ForwardingRulesGetCall { + c := &ForwardingRulesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project - c.address = address + c.region = region + c.forwardingRule = forwardingRule + return c +} + +// View sets the optional parameter "view": +// +// Possible values: +// +// "BASIC" - The default view of a ForwardingRule, which includes the basic +// +// fields. +// +// "FULL" - The full view, including the ForwardingRule.`attached_extensions` +// +// field. +func (c *ForwardingRulesGetCall) View(view string) *ForwardingRulesGetCall { + c.urlParams_.Set("view", view) return c } // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *GlobalAddressesGetCall) Fields(s ...googleapi.Field) *GlobalAddressesGetCall { +func (c *ForwardingRulesGetCall) Fields(s ...googleapi.Field) *ForwardingRulesGetCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } @@ -14314,54 +17143,55 @@ func (c *GlobalAddressesGetCall) Fields(s ...googleapi.Field) *GlobalAddressesGe // IfNoneMatch sets an 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. -func (c *GlobalAddressesGetCall) IfNoneMatch(entityTag string) *GlobalAddressesGetCall { +func (c *ForwardingRulesGetCall) IfNoneMatch(entityTag string) *ForwardingRulesGetCall { c.ifNoneMatch_ = entityTag return c } // Context sets the context to be used in this call's Do method. -func (c *GlobalAddressesGetCall) Context(ctx context.Context) *GlobalAddressesGetCall { +func (c *ForwardingRulesGetCall) Context(ctx context.Context) *ForwardingRulesGetCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *GlobalAddressesGetCall) Header() http.Header { +func (c *ForwardingRulesGetCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *GlobalAddressesGetCall) doRequest(alt string) (*http.Response, error) { +func (c *ForwardingRulesGetCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) if c.ifNoneMatch_ != "" { reqHeaders.Set("If-None-Match", c.ifNoneMatch_) } - var body io.Reader = nil c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/addresses/{address}") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/forwardingRules/{forwardingRule}") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("GET", urls, body) + req, err := http.NewRequest("GET", urls, nil) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "address": c.address, + "project": c.project, + "region": c.region, + "forwardingRule": c.forwardingRule, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.forwardingRules.get", "request", internallog.HTTPRequest(req, nil)) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.globalAddresses.get" call. +// Do executes the "compute.forwardingRules.get" call. // Any non-2xx status code is an error. Response headers are in either -// *Address.ServerResponse.Header or (if a response was returned at all) in -// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check +// *ForwardingRule.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 *GlobalAddressesGetCall) Do(opts ...googleapi.CallOption) (*Address, error) { +func (c *ForwardingRulesGetCall) Do(opts ...googleapi.CallOption) (*ForwardingRule, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -14380,50 +17210,63 @@ func (c *GlobalAddressesGetCall) Do(opts ...googleapi.CallOption) (*Address, err if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } - ret := &Address{ + ret := &ForwardingRule{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.forwardingRules.get", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type GlobalAddressesInsertCall struct { - s *Service - project string - address *Address - urlParams_ gensupport.URLParams - ctx_ context.Context - header_ http.Header +type ForwardingRulesInsertCall struct { + s *Service + project string + region string + forwardingrule *ForwardingRule + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header } -// Insert: Creates an address resource in the specified project by using the -// data included in the request. +// Insert: Creates a ForwardingRule resource in the specified project and +// region using +// the data included in the request. // // - project: Project ID for this request. -func (r *GlobalAddressesService) Insert(project string, address *Address) *GlobalAddressesInsertCall { - c := &GlobalAddressesInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)} +// - region: Name of the region scoping this request. +func (r *ForwardingRulesService) Insert(project string, region string, forwardingrule *ForwardingRule) *ForwardingRulesInsertCall { + c := &ForwardingRulesInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project - c.address = address + c.region = region + c.forwardingrule = forwardingrule 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 *GlobalAddressesInsertCall) RequestId(requestId string) *GlobalAddressesInsertCall { +// 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 *ForwardingRulesInsertCall) RequestId(requestId string) *ForwardingRulesInsertCall { c.urlParams_.Set("requestId", requestId) return c } @@ -14431,36 +17274,35 @@ func (c *GlobalAddressesInsertCall) RequestId(requestId string) *GlobalAddresses // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *GlobalAddressesInsertCall) Fields(s ...googleapi.Field) *GlobalAddressesInsertCall { +func (c *ForwardingRulesInsertCall) Fields(s ...googleapi.Field) *ForwardingRulesInsertCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } // Context sets the context to be used in this call's Do method. -func (c *GlobalAddressesInsertCall) Context(ctx context.Context) *GlobalAddressesInsertCall { +func (c *ForwardingRulesInsertCall) Context(ctx context.Context) *ForwardingRulesInsertCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *GlobalAddressesInsertCall) Header() http.Header { +func (c *ForwardingRulesInsertCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *GlobalAddressesInsertCall) doRequest(alt string) (*http.Response, error) { +func (c *ForwardingRulesInsertCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) - var body io.Reader = nil - body, err := googleapi.WithoutDataWrapper.JSONReader(c.address) + body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.forwardingrule) if err != nil { return nil, err } c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/addresses") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/forwardingRules") urls += "?" + c.urlParams_.Encode() req, err := http.NewRequest("POST", urls, body) if err != nil { @@ -14469,16 +17311,18 @@ func (c *GlobalAddressesInsertCall) doRequest(alt string) (*http.Response, error req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ "project": c.project, + "region": c.region, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.forwardingRules.insert", "request", internallog.HTTPRequest(req, body.Bytes())) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.globalAddresses.insert" call. +// Do executes the "compute.forwardingRules.insert" call. // 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 *GlobalAddressesInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) { +func (c *ForwardingRulesInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -14504,104 +17348,161 @@ func (c *GlobalAddressesInsertCall) Do(opts ...googleapi.CallOption) (*Operation }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.forwardingRules.insert", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type GlobalAddressesListCall struct { +type ForwardingRulesListCall struct { s *Service project string + region string urlParams_ gensupport.URLParams ifNoneMatch_ string ctx_ context.Context header_ http.Header } -// List: Retrieves a list of global addresses. +// List: Retrieves a list of ForwardingRule resources available to the +// specified +// project and region. // // - project: Project ID for this request. -func (r *GlobalAddressesService) List(project string) *GlobalAddressesListCall { - c := &GlobalAddressesListCall{s: r.s, urlParams_: make(gensupport.URLParams)} +// - region: Name of the region scoping this request. +func (r *ForwardingRulesService) List(project string, region string) *ForwardingRulesListCall { + c := &ForwardingRulesListCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project + c.region = region return c } // Filter sets the optional parameter "filter": A filter expression that -// filters resources listed in the response. Most Compute resources support two -// types of filter expressions: expressions that support regular expressions -// and expressions that follow API improvement proposal AIP-160. These two -// types of filter expressions cannot be mixed in one request. If you want to -// use AIP-160, your expression must specify the field name, an operator, and -// the value that you want to use for filtering. The value must be a string, a -// number, or a boolean. The 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`. The `:*` comparison can be used to test whether a key has -// been defined. For example, to find all objects with `owner` label use: ``` -// labels.owner:* ``` 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) ``` If you want to use a regular -// expression, use the `eq` (equal) or `ne` (not equal) operator against a -// single un-parenthesized expression with or without quotes or against -// multiple parenthesized expressions. Examples: `fieldname eq unquoted -// literal` `fieldname eq 'single quoted literal'` `fieldname eq "double quoted -// literal" `(fieldname1 eq literal) (fieldname2 ne "literal")` The literal -// value is interpreted as a regular expression using Google RE2 library -// syntax. The literal value must match the entire field. For example, to -// filter for instances that do not end with name "instance", you would use -// `name ne .*instance`. You cannot combine constraints on multiple fields -// using regular expressions. -func (c *GlobalAddressesListCall) Filter(filter string) *GlobalAddressesListCall { +// filters resources listed in the response. Most +// Compute resources support two types of filter expressions: +// expressions that support regular expressions and expressions that follow +// API improvement proposal AIP-160. +// These two types of filter expressions cannot be mixed in one request. +// +// If you want to use AIP-160, your expression must specify the field name, +// an +// operator, and the value that you want to use for filtering. The value +// must be a string, a number, or a boolean. The 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`. +// +// The `:*` comparison can be used to test whether a key has been defined. +// For example, to find all objects with `owner` label +// use: +// ``` +// labels.owner:* +// ``` +// +// 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 onresource 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) +// ``` +// +// If you want to use a regular expression, use the `eq` (equal) or `ne` +// (not equal) operator against a single un-parenthesized expression with +// or +// without quotes or against multiple parenthesized expressions. +// Examples: +// +// `fieldname eq unquoted literal` +// `fieldname eq 'single quoted literal'` +// `fieldname eq "double quoted literal" +// `(fieldname1 eq literal) (fieldname2 ne "literal")` +// +// The literal value is interpreted as a regular expression using GoogleRE2 +// library syntax. +// The literal value must match the entire field. +// +// For example, to filter for instances that do not end with name +// "instance", +// you would use `name ne .*instance`. +// +// You cannot combine constraints on multiple fields using regular +// expressions. +func (c *ForwardingRulesListCall) Filter(filter string) *ForwardingRulesListCall { 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 *GlobalAddressesListCall) MaxResults(maxResults int64) *GlobalAddressesListCall { +// 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 *ForwardingRulesListCall) MaxResults(maxResults int64) *ForwardingRulesListCall { 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 *GlobalAddressesListCall) OrderBy(orderBy string) *GlobalAddressesListCall { +// 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 *ForwardingRulesListCall) OrderBy(orderBy string) *ForwardingRulesListCall { 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 *GlobalAddressesListCall) PageToken(pageToken string) *GlobalAddressesListCall { +// use. Set `pageToken` to the +// `nextPageToken` returned by a previous list request to get +// the next page of results. +func (c *ForwardingRulesListCall) PageToken(pageToken string) *ForwardingRulesListCall { c.urlParams_.Set("pageToken", pageToken) return c } // ReturnPartialSuccess sets the optional parameter "returnPartialSuccess": -// Opt-in for partial success behavior which provides partial results in case -// of failure. The default value is false. For example, when partial success -// behavior is enabled, aggregatedList for a single zone scope either returns -// all resources in the zone or no resources, with an error code. -func (c *GlobalAddressesListCall) ReturnPartialSuccess(returnPartialSuccess bool) *GlobalAddressesListCall { +// Opt-in for partial success behavior which provides partial results in +// case +// of failure. The default value is false. +// +// For example, when partial success behavior is enabled, aggregatedList for +// a +// single zone scope either returns all resources in the zone or no +// resources, +// with an error code. +func (c *ForwardingRulesListCall) ReturnPartialSuccess(returnPartialSuccess bool) *ForwardingRulesListCall { c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess)) return c } @@ -14609,7 +17510,7 @@ func (c *GlobalAddressesListCall) ReturnPartialSuccess(returnPartialSuccess bool // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *GlobalAddressesListCall) Fields(s ...googleapi.Field) *GlobalAddressesListCall { +func (c *ForwardingRulesListCall) Fields(s ...googleapi.Field) *ForwardingRulesListCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } @@ -14617,53 +17518,55 @@ func (c *GlobalAddressesListCall) Fields(s ...googleapi.Field) *GlobalAddressesL // IfNoneMatch sets an 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. -func (c *GlobalAddressesListCall) IfNoneMatch(entityTag string) *GlobalAddressesListCall { +func (c *ForwardingRulesListCall) IfNoneMatch(entityTag string) *ForwardingRulesListCall { c.ifNoneMatch_ = entityTag return c } // Context sets the context to be used in this call's Do method. -func (c *GlobalAddressesListCall) Context(ctx context.Context) *GlobalAddressesListCall { +func (c *ForwardingRulesListCall) Context(ctx context.Context) *ForwardingRulesListCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *GlobalAddressesListCall) Header() http.Header { +func (c *ForwardingRulesListCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *GlobalAddressesListCall) doRequest(alt string) (*http.Response, error) { +func (c *ForwardingRulesListCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) if c.ifNoneMatch_ != "" { reqHeaders.Set("If-None-Match", c.ifNoneMatch_) } - var body io.Reader = nil c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/addresses") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/forwardingRules") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("GET", urls, body) + req, err := http.NewRequest("GET", urls, nil) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ "project": c.project, + "region": c.region, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.forwardingRules.list", "request", internallog.HTTPRequest(req, nil)) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.globalAddresses.list" call. +// Do executes the "compute.forwardingRules.list" call. // Any non-2xx status code is an error. Response headers are in either -// *AddressList.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 *GlobalAddressesListCall) Do(opts ...googleapi.CallOption) (*AddressList, error) { +// *ForwardingRuleList.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 *ForwardingRulesListCall) Do(opts ...googleapi.CallOption) (*ForwardingRuleList, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -14682,23 +17585,25 @@ func (c *GlobalAddressesListCall) Do(opts ...googleapi.CallOption) (*AddressList if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } - ret := &AddressList{ + ret := &ForwardingRuleList{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.forwardingRules.list", "response", internallog.HTTPResponse(res, b)) return ret, nil } // 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 *GlobalAddressesListCall) Pages(ctx context.Context, f func(*AddressList) error) error { +func (c *ForwardingRulesListCall) Pages(ctx context.Context, f func(*ForwardingRuleList) error) error { c.ctx_ = ctx defer c.PageToken(c.urlParams_.Get("pageToken")) for { @@ -14716,40 +17621,54 @@ func (c *GlobalAddressesListCall) Pages(ctx context.Context, f func(*AddressList } } -type GlobalAddressesMoveCall struct { - s *Service - project string - address string - globaladdressesmoverequest *GlobalAddressesMoveRequest - urlParams_ gensupport.URLParams - ctx_ context.Context - header_ http.Header +type ForwardingRulesPatchCall struct { + s *Service + project string + region string + forwardingRule string + forwardingrule *ForwardingRule + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header } -// Move: Moves the specified address resource from one project to another -// project. +// Patch: Updates the specified forwarding rule with the data included in +// the +// request. This method supportsPATCH +// semantics and uses theJSON merge +// patch format and processing rules. Currently, you can only +// patch the network_tier field. // -// - address: Name of the address resource to move. -// - project: Source project ID which the Address is moved from. -func (r *GlobalAddressesService) Move(project string, address string, globaladdressesmoverequest *GlobalAddressesMoveRequest) *GlobalAddressesMoveCall { - c := &GlobalAddressesMoveCall{s: r.s, urlParams_: make(gensupport.URLParams)} +// - forwardingRule: Name of the ForwardingRule resource to patch. +// - project: Project ID for this request. +// - region: Name of the region scoping this request. +func (r *ForwardingRulesService) Patch(project string, region string, forwardingRule string, forwardingrule *ForwardingRule) *ForwardingRulesPatchCall { + c := &ForwardingRulesPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project - c.address = address - c.globaladdressesmoverequest = globaladdressesmoverequest + c.region = region + c.forwardingRule = forwardingRule + c.forwardingrule = forwardingrule 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 *GlobalAddressesMoveCall) RequestId(requestId string) *GlobalAddressesMoveCall { +// 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 *ForwardingRulesPatchCall) RequestId(requestId string) *ForwardingRulesPatchCall { c.urlParams_.Set("requestId", requestId) return c } @@ -14757,55 +17676,56 @@ func (c *GlobalAddressesMoveCall) RequestId(requestId string) *GlobalAddressesMo // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *GlobalAddressesMoveCall) Fields(s ...googleapi.Field) *GlobalAddressesMoveCall { +func (c *ForwardingRulesPatchCall) Fields(s ...googleapi.Field) *ForwardingRulesPatchCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } // Context sets the context to be used in this call's Do method. -func (c *GlobalAddressesMoveCall) Context(ctx context.Context) *GlobalAddressesMoveCall { +func (c *ForwardingRulesPatchCall) Context(ctx context.Context) *ForwardingRulesPatchCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *GlobalAddressesMoveCall) Header() http.Header { +func (c *ForwardingRulesPatchCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *GlobalAddressesMoveCall) doRequest(alt string) (*http.Response, error) { +func (c *ForwardingRulesPatchCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) - var body io.Reader = nil - body, err := googleapi.WithoutDataWrapper.JSONReader(c.globaladdressesmoverequest) + body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.forwardingrule) if err != nil { return nil, err } c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/addresses/{address}/move") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/forwardingRules/{forwardingRule}") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("POST", urls, body) + req, err := http.NewRequest("PATCH", urls, body) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "address": c.address, + "project": c.project, + "region": c.region, + "forwardingRule": c.forwardingRule, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.forwardingRules.patch", "request", internallog.HTTPRequest(req, body.Bytes())) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.globalAddresses.move" call. +// Do executes the "compute.forwardingRules.patch" call. // 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 *GlobalAddressesMoveCall) Do(opts ...googleapi.CallOption) (*Operation, error) { +func (c *ForwardingRulesPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -14831,68 +17751,96 @@ func (c *GlobalAddressesMoveCall) Do(opts ...googleapi.CallOption) (*Operation, }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.forwardingRules.patch", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type GlobalAddressesSetLabelsCall struct { +type ForwardingRulesSetLabelsCall struct { s *Service project string + region string resource string - globalsetlabelsrequest *GlobalSetLabelsRequest + regionsetlabelsrequest *RegionSetLabelsRequest urlParams_ gensupport.URLParams ctx_ context.Context header_ http.Header } -// SetLabels: Sets the labels on a GlobalAddress. To learn more about labels, -// read the Labeling Resources documentation. +// SetLabels: Sets the labels on the specified resource. To learn more about +// labels, +// read the +// Labeling Resources documentation. // // - project: Project ID for this request. +// - region: The region for this request. // - resource: Name or id of the resource for this request. -func (r *GlobalAddressesService) SetLabels(project string, resource string, globalsetlabelsrequest *GlobalSetLabelsRequest) *GlobalAddressesSetLabelsCall { - c := &GlobalAddressesSetLabelsCall{s: r.s, urlParams_: make(gensupport.URLParams)} +func (r *ForwardingRulesService) SetLabels(project string, region string, resource string, regionsetlabelsrequest *RegionSetLabelsRequest) *ForwardingRulesSetLabelsCall { + c := &ForwardingRulesSetLabelsCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project + c.region = region c.resource = resource - c.globalsetlabelsrequest = globalsetlabelsrequest + c.regionsetlabelsrequest = regionsetlabelsrequest + 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 *ForwardingRulesSetLabelsCall) RequestId(requestId string) *ForwardingRulesSetLabelsCall { + 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 // details. -func (c *GlobalAddressesSetLabelsCall) Fields(s ...googleapi.Field) *GlobalAddressesSetLabelsCall { +func (c *ForwardingRulesSetLabelsCall) Fields(s ...googleapi.Field) *ForwardingRulesSetLabelsCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } // Context sets the context to be used in this call's Do method. -func (c *GlobalAddressesSetLabelsCall) Context(ctx context.Context) *GlobalAddressesSetLabelsCall { +func (c *ForwardingRulesSetLabelsCall) Context(ctx context.Context) *ForwardingRulesSetLabelsCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *GlobalAddressesSetLabelsCall) Header() http.Header { +func (c *ForwardingRulesSetLabelsCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *GlobalAddressesSetLabelsCall) doRequest(alt string) (*http.Response, error) { +func (c *ForwardingRulesSetLabelsCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) - var body io.Reader = nil - body, err := googleapi.WithoutDataWrapper.JSONReader(c.globalsetlabelsrequest) + body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.regionsetlabelsrequest) if err != nil { return nil, err } c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/addresses/{resource}/setLabels") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/forwardingRules/{resource}/setLabels") urls += "?" + c.urlParams_.Encode() req, err := http.NewRequest("POST", urls, body) if err != nil { @@ -14901,17 +17849,19 @@ func (c *GlobalAddressesSetLabelsCall) doRequest(alt string) (*http.Response, er req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ "project": c.project, + "region": c.region, "resource": c.resource, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.forwardingRules.setLabels", "request", internallog.HTTPRequest(req, body.Bytes())) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.globalAddresses.setLabels" call. +// Do executes the "compute.forwardingRules.setLabels" call. // 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 *GlobalAddressesSetLabelsCall) Do(opts ...googleapi.CallOption) (*Operation, error) { +func (c *ForwardingRulesSetLabelsCall) Do(opts ...googleapi.CallOption) (*Operation, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -14937,43 +17887,60 @@ func (c *GlobalAddressesSetLabelsCall) Do(opts ...googleapi.CallOption) (*Operat }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.forwardingRules.setLabels", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type GlobalForwardingRulesDeleteCall struct { - s *Service - project string - forwardingRule string - urlParams_ gensupport.URLParams - ctx_ context.Context - header_ http.Header +type ForwardingRulesSetTargetCall struct { + s *Service + project string + region string + forwardingRule string + targetreference *TargetReference + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header } -// Delete: Deletes the specified GlobalForwardingRule resource. +// SetTarget: Changes target URL for forwarding rule. The new target should be +// of the +// same type as the old target. // -// - forwardingRule: Name of the ForwardingRule resource to delete. -// - project: Project ID for this request. -func (r *GlobalForwardingRulesService) Delete(project string, forwardingRule string) *GlobalForwardingRulesDeleteCall { - c := &GlobalForwardingRulesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)} +// - forwardingRule: Name of the ForwardingRule resource in which target is to +// be set. +// - project: Project ID for this request. +// - region: Name of the region scoping this request. +func (r *ForwardingRulesService) SetTarget(project string, region string, forwardingRule string, targetreference *TargetReference) *ForwardingRulesSetTargetCall { + c := &ForwardingRulesSetTargetCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project + c.region = region c.forwardingRule = forwardingRule + c.targetreference = targetreference 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 *GlobalForwardingRulesDeleteCall) RequestId(requestId string) *GlobalForwardingRulesDeleteCall { +// 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 *ForwardingRulesSetTargetCall) RequestId(requestId string) *ForwardingRulesSetTargetCall { c.urlParams_.Set("requestId", requestId) return c } @@ -14981,51 +17948,56 @@ func (c *GlobalForwardingRulesDeleteCall) RequestId(requestId string) *GlobalFor // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *GlobalForwardingRulesDeleteCall) Fields(s ...googleapi.Field) *GlobalForwardingRulesDeleteCall { +func (c *ForwardingRulesSetTargetCall) Fields(s ...googleapi.Field) *ForwardingRulesSetTargetCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } // Context sets the context to be used in this call's Do method. -func (c *GlobalForwardingRulesDeleteCall) Context(ctx context.Context) *GlobalForwardingRulesDeleteCall { +func (c *ForwardingRulesSetTargetCall) Context(ctx context.Context) *ForwardingRulesSetTargetCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *GlobalForwardingRulesDeleteCall) Header() http.Header { +func (c *ForwardingRulesSetTargetCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *GlobalForwardingRulesDeleteCall) doRequest(alt string) (*http.Response, error) { - reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) - var body io.Reader = nil +func (c *ForwardingRulesSetTargetCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) + body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.targetreference) + if err != nil { + return nil, err + } c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/forwardingRules/{forwardingRule}") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/forwardingRules/{forwardingRule}/setTarget") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("DELETE", urls, body) + req, err := http.NewRequest("POST", urls, body) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ "project": c.project, + "region": c.region, "forwardingRule": c.forwardingRule, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.forwardingRules.setTarget", "request", internallog.HTTPRequest(req, body.Bytes())) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.globalForwardingRules.delete" call. +// Do executes the "compute.forwardingRules.setTarget" call. // 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 *GlobalForwardingRulesDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) { +func (c *ForwardingRulesSetTargetCall) Do(opts ...googleapi.CallOption) (*Operation, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -15051,38 +18023,194 @@ func (c *GlobalForwardingRulesDeleteCall) Do(opts ...googleapi.CallOption) (*Ope }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.forwardingRules.setTarget", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type GlobalForwardingRulesGetCall struct { - s *Service - project string - forwardingRule string - urlParams_ gensupport.URLParams - ifNoneMatch_ string - ctx_ context.Context - header_ http.Header +type FutureReservationsAggregatedListCall struct { + s *Service + project string + urlParams_ gensupport.URLParams + ifNoneMatch_ string + ctx_ context.Context + header_ http.Header } -// Get: Returns the specified GlobalForwardingRule resource. Gets a list of -// available forwarding rules by making a list() request. +// AggregatedList: Retrieves an aggregated list of future reservations. +// +// To prevent failure, it is recommended that you set +// the +// `returnPartialSuccess` parameter to `true`. // -// - forwardingRule: Name of the ForwardingRule resource to return. // - project: Project ID for this request. -func (r *GlobalForwardingRulesService) Get(project string, forwardingRule string) *GlobalForwardingRulesGetCall { - c := &GlobalForwardingRulesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)} +func (r *FutureReservationsService) AggregatedList(project string) *FutureReservationsAggregatedListCall { + c := &FutureReservationsAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project - c.forwardingRule = forwardingRule + return c +} + +// Filter sets the optional parameter "filter": A filter expression that +// filters resources listed in the response. Most +// Compute resources support two types of filter expressions: +// expressions that support regular expressions and expressions that follow +// API improvement proposal AIP-160. +// These two types of filter expressions cannot be mixed in one request. +// +// If you want to use AIP-160, your expression must specify the field name, +// an +// operator, and the value that you want to use for filtering. The value +// must be a string, a number, or a boolean. The 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`. +// +// The `:*` comparison can be used to test whether a key has been defined. +// For example, to find all objects with `owner` label +// use: +// ``` +// labels.owner:* +// ``` +// +// 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 onresource 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) +// ``` +// +// If you want to use a regular expression, use the `eq` (equal) or `ne` +// (not equal) operator against a single un-parenthesized expression with +// or +// without quotes or against multiple parenthesized expressions. +// Examples: +// +// `fieldname eq unquoted literal` +// `fieldname eq 'single quoted literal'` +// `fieldname eq "double quoted literal" +// `(fieldname1 eq literal) (fieldname2 ne "literal")` +// +// The literal value is interpreted as a regular expression using GoogleRE2 +// library syntax. +// The literal value must match the entire field. +// +// For example, to filter for instances that do not end with name +// "instance", +// you would use `name ne .*instance`. +// +// You cannot combine constraints on multiple fields using regular +// expressions. +func (c *FutureReservationsAggregatedListCall) Filter(filter string) *FutureReservationsAggregatedListCall { + c.urlParams_.Set("filter", filter) + return c +} + +// IncludeAllScopes sets the optional parameter "includeAllScopes": Indicates +// whether every visible scope for each scope type (zone, region, +// global) should be included in the response. For new resource types +// added +// after this field, the flag has no effect as new resource types will +// always +// include every visible scope for each scope type in response. For +// resource +// types which predate this field, if this flag is omitted or false, +// only +// scopes of the scope types where the resource type is expected to be +// found +// will be included. +func (c *FutureReservationsAggregatedListCall) IncludeAllScopes(includeAllScopes bool) *FutureReservationsAggregatedListCall { + c.urlParams_.Set("includeAllScopes", fmt.Sprint(includeAllScopes)) + 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 *FutureReservationsAggregatedListCall) MaxResults(maxResults int64) *FutureReservationsAggregatedListCall { + 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 *FutureReservationsAggregatedListCall) OrderBy(orderBy string) *FutureReservationsAggregatedListCall { + 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 *FutureReservationsAggregatedListCall) PageToken(pageToken string) *FutureReservationsAggregatedListCall { + c.urlParams_.Set("pageToken", pageToken) + return c +} + +// ReturnPartialSuccess sets the optional parameter "returnPartialSuccess": +// Opt-in for partial success behavior which provides partial results in +// case +// of failure. The default value is false. +// +// For example, when partial success behavior is enabled, aggregatedList for +// a +// single zone scope either returns all resources in the zone or no +// resources, +// with an error code. +func (c *FutureReservationsAggregatedListCall) ReturnPartialSuccess(returnPartialSuccess bool) *FutureReservationsAggregatedListCall { + c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess)) + return c +} + +// ServiceProjectNumber sets the optional parameter "serviceProjectNumber": The +// Shared VPC service project id or service project number for which +// aggregated list request is invoked for subnetworks list-usable api. +func (c *FutureReservationsAggregatedListCall) ServiceProjectNumber(serviceProjectNumber int64) *FutureReservationsAggregatedListCall { + c.urlParams_.Set("serviceProjectNumber", fmt.Sprint(serviceProjectNumber)) return c } // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *GlobalForwardingRulesGetCall) Fields(s ...googleapi.Field) *GlobalForwardingRulesGetCall { +func (c *FutureReservationsAggregatedListCall) Fields(s ...googleapi.Field) *FutureReservationsAggregatedListCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } @@ -15090,54 +18218,54 @@ func (c *GlobalForwardingRulesGetCall) Fields(s ...googleapi.Field) *GlobalForwa // IfNoneMatch sets an 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. -func (c *GlobalForwardingRulesGetCall) IfNoneMatch(entityTag string) *GlobalForwardingRulesGetCall { +func (c *FutureReservationsAggregatedListCall) IfNoneMatch(entityTag string) *FutureReservationsAggregatedListCall { c.ifNoneMatch_ = entityTag return c } // Context sets the context to be used in this call's Do method. -func (c *GlobalForwardingRulesGetCall) Context(ctx context.Context) *GlobalForwardingRulesGetCall { +func (c *FutureReservationsAggregatedListCall) Context(ctx context.Context) *FutureReservationsAggregatedListCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *GlobalForwardingRulesGetCall) Header() http.Header { +func (c *FutureReservationsAggregatedListCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *GlobalForwardingRulesGetCall) doRequest(alt string) (*http.Response, error) { +func (c *FutureReservationsAggregatedListCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) if c.ifNoneMatch_ != "" { reqHeaders.Set("If-None-Match", c.ifNoneMatch_) } - var body io.Reader = nil c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/forwardingRules/{forwardingRule}") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/aggregated/futureReservations") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("GET", urls, body) + req, err := http.NewRequest("GET", urls, nil) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "forwardingRule": c.forwardingRule, + "project": c.project, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.futureReservations.aggregatedList", "request", internallog.HTTPRequest(req, nil)) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.globalForwardingRules.get" call. +// Do executes the "compute.futureReservations.aggregatedList" call. // Any non-2xx status code is an error. Response headers are in either -// *ForwardingRule.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 *GlobalForwardingRulesGetCall) Do(opts ...googleapi.CallOption) (*ForwardingRule, error) { +// *FutureReservationsAggregatedListResponse.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 *FutureReservationsAggregatedListCall) Do(opts ...googleapi.CallOption) (*FutureReservationsAggregatedListResponse, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -15156,50 +18284,84 @@ func (c *GlobalForwardingRulesGetCall) Do(opts ...googleapi.CallOption) (*Forwar if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } - ret := &ForwardingRule{ + ret := &FutureReservationsAggregatedListResponse{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.futureReservations.aggregatedList", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type GlobalForwardingRulesInsertCall struct { - s *Service - project string - forwardingrule *ForwardingRule - urlParams_ gensupport.URLParams - ctx_ context.Context - header_ http.Header +// 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 *FutureReservationsAggregatedListCall) Pages(ctx context.Context, f func(*FutureReservationsAggregatedListResponse) error) error { + c.ctx_ = ctx + defer c.PageToken(c.urlParams_.Get("pageToken")) + 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) + } } -// Insert: Creates a GlobalForwardingRule resource in the specified project -// using the data included in the request. +type FutureReservationsCancelCall struct { + s *Service + project string + zone string + futureReservation string + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header +} + +// Cancel: Cancel the specified future reservation. // -// - project: Project ID for this request. -func (r *GlobalForwardingRulesService) Insert(project string, forwardingrule *ForwardingRule) *GlobalForwardingRulesInsertCall { - c := &GlobalForwardingRulesInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)} +// - futureReservation: Name of the future reservation to retrieve. Name should +// conform to RFC1035. +// - project: Project ID for this request. +// - zone: Name of the zone for this request. Name should conform to RFC1035. +func (r *FutureReservationsService) Cancel(project string, zone string, futureReservation string) *FutureReservationsCancelCall { + c := &FutureReservationsCancelCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project - c.forwardingrule = forwardingrule + c.zone = zone + c.futureReservation = futureReservation 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 *GlobalForwardingRulesInsertCall) RequestId(requestId string) *GlobalForwardingRulesInsertCall { +// 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 *FutureReservationsCancelCall) RequestId(requestId string) *FutureReservationsCancelCall { c.urlParams_.Set("requestId", requestId) return c } @@ -15207,54 +18369,52 @@ func (c *GlobalForwardingRulesInsertCall) RequestId(requestId string) *GlobalFor // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *GlobalForwardingRulesInsertCall) Fields(s ...googleapi.Field) *GlobalForwardingRulesInsertCall { +func (c *FutureReservationsCancelCall) Fields(s ...googleapi.Field) *FutureReservationsCancelCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } // Context sets the context to be used in this call's Do method. -func (c *GlobalForwardingRulesInsertCall) Context(ctx context.Context) *GlobalForwardingRulesInsertCall { +func (c *FutureReservationsCancelCall) Context(ctx context.Context) *FutureReservationsCancelCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *GlobalForwardingRulesInsertCall) Header() http.Header { +func (c *FutureReservationsCancelCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *GlobalForwardingRulesInsertCall) doRequest(alt string) (*http.Response, error) { - reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) - var body io.Reader = nil - body, err := googleapi.WithoutDataWrapper.JSONReader(c.forwardingrule) - if err != nil { - return nil, err - } +func (c *FutureReservationsCancelCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/forwardingRules") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/futureReservations/{futureReservation}/cancel") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("POST", urls, body) + req, err := http.NewRequest("POST", urls, nil) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, + "project": c.project, + "zone": c.zone, + "futureReservation": c.futureReservation, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.futureReservations.cancel", "request", internallog.HTTPRequest(req, nil)) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.globalForwardingRules.insert" call. +// Do executes the "compute.futureReservations.cancel" call. // 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 *GlobalForwardingRulesInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) { +func (c *FutureReservationsCancelCall) Do(opts ...googleapi.CallOption) (*Operation, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -15280,168 +18440,109 @@ func (c *GlobalForwardingRulesInsertCall) Do(opts ...googleapi.CallOption) (*Ope }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.futureReservations.cancel", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type GlobalForwardingRulesListCall struct { - s *Service - project string - urlParams_ gensupport.URLParams - ifNoneMatch_ string - ctx_ context.Context - header_ http.Header +type FutureReservationsDeleteCall struct { + s *Service + project string + zone string + futureReservation string + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header } -// List: Retrieves a list of GlobalForwardingRule resources available to the -// specified project. +// Delete: Deletes the specified future reservation. // -// - project: Project ID for this request. -func (r *GlobalForwardingRulesService) List(project string) *GlobalForwardingRulesListCall { - c := &GlobalForwardingRulesListCall{s: r.s, urlParams_: make(gensupport.URLParams)} +// - futureReservation: Name of the future reservation to retrieve. Name should +// conform to RFC1035. +// - project: Project ID for this request. +// - zone: Name of the zone for this request. Name should conform to RFC1035. +func (r *FutureReservationsService) Delete(project string, zone string, futureReservation string) *FutureReservationsDeleteCall { + c := &FutureReservationsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project + c.zone = zone + c.futureReservation = futureReservation return c } -// Filter sets the optional parameter "filter": A filter expression that -// filters resources listed in the response. Most Compute resources support two -// types of filter expressions: expressions that support regular expressions -// and expressions that follow API improvement proposal AIP-160. These two -// types of filter expressions cannot be mixed in one request. If you want to -// use AIP-160, your expression must specify the field name, an operator, and -// the value that you want to use for filtering. The value must be a string, a -// number, or a boolean. The 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`. The `:*` comparison can be used to test whether a key has -// been defined. For example, to find all objects with `owner` label use: ``` -// labels.owner:* ``` 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) ``` If you want to use a regular -// expression, use the `eq` (equal) or `ne` (not equal) operator against a -// single un-parenthesized expression with or without quotes or against -// multiple parenthesized expressions. Examples: `fieldname eq unquoted -// literal` `fieldname eq 'single quoted literal'` `fieldname eq "double quoted -// literal" `(fieldname1 eq literal) (fieldname2 ne "literal")` The literal -// value is interpreted as a regular expression using Google RE2 library -// syntax. The literal value must match the entire field. For example, to -// filter for instances that do not end with name "instance", you would use -// `name ne .*instance`. You cannot combine constraints on multiple fields -// using regular expressions. -func (c *GlobalForwardingRulesListCall) Filter(filter string) *GlobalForwardingRulesListCall { - 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 *GlobalForwardingRulesListCall) MaxResults(maxResults int64) *GlobalForwardingRulesListCall { - 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 *GlobalForwardingRulesListCall) OrderBy(orderBy string) *GlobalForwardingRulesListCall { - 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 *GlobalForwardingRulesListCall) PageToken(pageToken string) *GlobalForwardingRulesListCall { - c.urlParams_.Set("pageToken", pageToken) - return c -} - -// ReturnPartialSuccess sets the optional parameter "returnPartialSuccess": -// Opt-in for partial success behavior which provides partial results in case -// of failure. The default value is false. For example, when partial success -// behavior is enabled, aggregatedList for a single zone scope either returns -// all resources in the zone or no resources, with an error code. -func (c *GlobalForwardingRulesListCall) ReturnPartialSuccess(returnPartialSuccess bool) *GlobalForwardingRulesListCall { - c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess)) +// 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 *FutureReservationsDeleteCall) RequestId(requestId string) *FutureReservationsDeleteCall { + 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 // details. -func (c *GlobalForwardingRulesListCall) Fields(s ...googleapi.Field) *GlobalForwardingRulesListCall { +func (c *FutureReservationsDeleteCall) Fields(s ...googleapi.Field) *FutureReservationsDeleteCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } -// IfNoneMatch sets an 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. -func (c *GlobalForwardingRulesListCall) IfNoneMatch(entityTag string) *GlobalForwardingRulesListCall { - c.ifNoneMatch_ = entityTag - return c -} - // Context sets the context to be used in this call's Do method. -func (c *GlobalForwardingRulesListCall) Context(ctx context.Context) *GlobalForwardingRulesListCall { +func (c *FutureReservationsDeleteCall) Context(ctx context.Context) *FutureReservationsDeleteCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *GlobalForwardingRulesListCall) Header() http.Header { +func (c *FutureReservationsDeleteCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *GlobalForwardingRulesListCall) doRequest(alt string) (*http.Response, error) { +func (c *FutureReservationsDeleteCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) - if c.ifNoneMatch_ != "" { - reqHeaders.Set("If-None-Match", c.ifNoneMatch_) - } - var body io.Reader = nil c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/forwardingRules") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/futureReservations/{futureReservation}") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("GET", urls, body) + req, err := http.NewRequest("DELETE", urls, nil) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, + "project": c.project, + "zone": c.zone, + "futureReservation": c.futureReservation, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.futureReservations.delete", "request", internallog.HTTPRequest(req, nil)) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.globalForwardingRules.list" call. +// Do executes the "compute.futureReservations.delete" call. // Any non-2xx status code is an error. Response headers are in either -// *ForwardingRuleList.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 *GlobalForwardingRulesListCall) Do(opts ...googleapi.CallOption) (*ForwardingRuleList, error) { +// *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 *FutureReservationsDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -15460,132 +18561,107 @@ func (c *GlobalForwardingRulesListCall) Do(opts ...googleapi.CallOption) (*Forwa if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } - ret := &ForwardingRuleList{ + ret := &Operation{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.futureReservations.delete", "response", internallog.HTTPResponse(res, b)) return ret, nil } -// 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 *GlobalForwardingRulesListCall) Pages(ctx context.Context, f func(*ForwardingRuleList) error) error { - c.ctx_ = ctx - defer c.PageToken(c.urlParams_.Get("pageToken")) - 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) - } -} - -type GlobalForwardingRulesPatchCall struct { - s *Service - project string - forwardingRule string - forwardingrule *ForwardingRule - urlParams_ gensupport.URLParams - ctx_ context.Context - header_ http.Header +type FutureReservationsGetCall struct { + s *Service + project string + zone string + futureReservation string + urlParams_ gensupport.URLParams + ifNoneMatch_ string + ctx_ context.Context + header_ http.Header } -// Patch: Updates the specified forwarding rule with the data included in the -// request. This method supports PATCH semantics and uses the JSON merge patch -// format and processing rules. Currently, you can only patch the network_tier -// field. +// Get: Retrieves information about the specified future reservation. // -// - forwardingRule: Name of the ForwardingRule resource to patch. -// - project: Project ID for this request. -func (r *GlobalForwardingRulesService) Patch(project string, forwardingRule string, forwardingrule *ForwardingRule) *GlobalForwardingRulesPatchCall { - c := &GlobalForwardingRulesPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)} +// - futureReservation: Name of the future reservation to retrieve. Name should +// conform to RFC1035. +// - project: Project ID for this request. +// - zone: Name of the zone for this request. Name should conform to RFC1035. +func (r *FutureReservationsService) Get(project string, zone string, futureReservation string) *FutureReservationsGetCall { + c := &FutureReservationsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project - c.forwardingRule = forwardingRule - c.forwardingrule = forwardingrule - 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 *GlobalForwardingRulesPatchCall) RequestId(requestId string) *GlobalForwardingRulesPatchCall { - c.urlParams_.Set("requestId", requestId) + c.zone = zone + c.futureReservation = futureReservation return c } // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *GlobalForwardingRulesPatchCall) Fields(s ...googleapi.Field) *GlobalForwardingRulesPatchCall { +func (c *FutureReservationsGetCall) Fields(s ...googleapi.Field) *FutureReservationsGetCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } +// IfNoneMatch sets an 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. +func (c *FutureReservationsGetCall) IfNoneMatch(entityTag string) *FutureReservationsGetCall { + c.ifNoneMatch_ = entityTag + return c +} + // Context sets the context to be used in this call's Do method. -func (c *GlobalForwardingRulesPatchCall) Context(ctx context.Context) *GlobalForwardingRulesPatchCall { +func (c *FutureReservationsGetCall) Context(ctx context.Context) *FutureReservationsGetCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *GlobalForwardingRulesPatchCall) Header() http.Header { +func (c *FutureReservationsGetCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *GlobalForwardingRulesPatchCall) doRequest(alt string) (*http.Response, error) { - reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) - var body io.Reader = nil - body, err := googleapi.WithoutDataWrapper.JSONReader(c.forwardingrule) - if err != nil { - return nil, err +func (c *FutureReservationsGetCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) + if c.ifNoneMatch_ != "" { + reqHeaders.Set("If-None-Match", c.ifNoneMatch_) } c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/forwardingRules/{forwardingRule}") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/futureReservations/{futureReservation}") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("PATCH", urls, body) + req, err := http.NewRequest("GET", urls, nil) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "forwardingRule": c.forwardingRule, + "project": c.project, + "zone": c.zone, + "futureReservation": c.futureReservation, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.futureReservations.get", "request", internallog.HTTPRequest(req, nil)) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.globalForwardingRules.patch" call. +// Do executes the "compute.futureReservations.get" call. // 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 *GlobalForwardingRulesPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) { +// *FutureReservation.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 *FutureReservationsGetCall) Do(opts ...googleapi.CallOption) (*FutureReservation, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -15604,75 +18680,97 @@ func (c *GlobalForwardingRulesPatchCall) Do(opts ...googleapi.CallOption) (*Oper if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } - ret := &Operation{ + ret := &FutureReservation{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.futureReservations.get", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type GlobalForwardingRulesSetLabelsCall struct { - s *Service - project string - resource string - globalsetlabelsrequest *GlobalSetLabelsRequest - urlParams_ gensupport.URLParams - ctx_ context.Context - header_ http.Header +type FutureReservationsInsertCall struct { + s *Service + project string + zone string + futurereservation *FutureReservation + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header } -// SetLabels: Sets the labels on the specified resource. To learn more about -// labels, read the Labeling resources documentation. +// Insert: Creates a new Future Reservation. // // - project: Project ID for this request. -// - resource: Name or id of the resource for this request. -func (r *GlobalForwardingRulesService) SetLabels(project string, resource string, globalsetlabelsrequest *GlobalSetLabelsRequest) *GlobalForwardingRulesSetLabelsCall { - c := &GlobalForwardingRulesSetLabelsCall{s: r.s, urlParams_: make(gensupport.URLParams)} +// - zone: Name of the zone for this request. Name should conform to RFC1035. +func (r *FutureReservationsService) Insert(project string, zone string, futurereservation *FutureReservation) *FutureReservationsInsertCall { + c := &FutureReservationsInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project - c.resource = resource - c.globalsetlabelsrequest = globalsetlabelsrequest + c.zone = zone + c.futurereservation = futurereservation + 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 *FutureReservationsInsertCall) RequestId(requestId string) *FutureReservationsInsertCall { + 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 // details. -func (c *GlobalForwardingRulesSetLabelsCall) Fields(s ...googleapi.Field) *GlobalForwardingRulesSetLabelsCall { +func (c *FutureReservationsInsertCall) Fields(s ...googleapi.Field) *FutureReservationsInsertCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } // Context sets the context to be used in this call's Do method. -func (c *GlobalForwardingRulesSetLabelsCall) Context(ctx context.Context) *GlobalForwardingRulesSetLabelsCall { +func (c *FutureReservationsInsertCall) Context(ctx context.Context) *FutureReservationsInsertCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *GlobalForwardingRulesSetLabelsCall) Header() http.Header { +func (c *FutureReservationsInsertCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *GlobalForwardingRulesSetLabelsCall) doRequest(alt string) (*http.Response, error) { +func (c *FutureReservationsInsertCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) - var body io.Reader = nil - body, err := googleapi.WithoutDataWrapper.JSONReader(c.globalsetlabelsrequest) + body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.futurereservation) if err != nil { return nil, err } c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/forwardingRules/{resource}/setLabels") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/futureReservations") urls += "?" + c.urlParams_.Encode() req, err := http.NewRequest("POST", urls, body) if err != nil { @@ -15680,18 +18778,19 @@ func (c *GlobalForwardingRulesSetLabelsCall) doRequest(alt string) (*http.Respon } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "resource": c.resource, + "project": c.project, + "zone": c.zone, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.futureReservations.insert", "request", internallog.HTTPRequest(req, body.Bytes())) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.globalForwardingRules.setLabels" call. +// Do executes the "compute.futureReservations.insert" call. // 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 *GlobalForwardingRulesSetLabelsCall) Do(opts ...googleapi.CallOption) (*Operation, error) { +func (c *FutureReservationsInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -15717,103 +18816,225 @@ func (c *GlobalForwardingRulesSetLabelsCall) Do(opts ...googleapi.CallOption) (* }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.futureReservations.insert", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type GlobalForwardingRulesSetTargetCall struct { - s *Service - project string - forwardingRule string - targetreference *TargetReference - urlParams_ gensupport.URLParams - ctx_ context.Context - header_ http.Header +type FutureReservationsListCall struct { + s *Service + project string + zone string + urlParams_ gensupport.URLParams + ifNoneMatch_ string + ctx_ context.Context + header_ http.Header } -// SetTarget: Changes target URL for the GlobalForwardingRule resource. The new -// target should be of the same type as the old target. +// List: A list of all the future reservations that have been configured for +// the +// specified project in specified zone. // -// - forwardingRule: Name of the ForwardingRule resource in which target is to -// be set. -// - project: Project ID for this request. -func (r *GlobalForwardingRulesService) SetTarget(project string, forwardingRule string, targetreference *TargetReference) *GlobalForwardingRulesSetTargetCall { - c := &GlobalForwardingRulesSetTargetCall{s: r.s, urlParams_: make(gensupport.URLParams)} +// - project: Project ID for this request. +// - zone: Name of the zone for this request. Name should conform to RFC1035. +func (r *FutureReservationsService) List(project string, zone string) *FutureReservationsListCall { + c := &FutureReservationsListCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project - c.forwardingRule = forwardingRule - c.targetreference = targetreference + c.zone = zone 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 *GlobalForwardingRulesSetTargetCall) RequestId(requestId string) *GlobalForwardingRulesSetTargetCall { - c.urlParams_.Set("requestId", requestId) +// Filter sets the optional parameter "filter": A filter expression that +// filters resources listed in the response. Most +// Compute resources support two types of filter expressions: +// expressions that support regular expressions and expressions that follow +// API improvement proposal AIP-160. +// These two types of filter expressions cannot be mixed in one request. +// +// If you want to use AIP-160, your expression must specify the field name, +// an +// operator, and the value that you want to use for filtering. The value +// must be a string, a number, or a boolean. The 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`. +// +// The `:*` comparison can be used to test whether a key has been defined. +// For example, to find all objects with `owner` label +// use: +// ``` +// labels.owner:* +// ``` +// +// 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 onresource 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) +// ``` +// +// If you want to use a regular expression, use the `eq` (equal) or `ne` +// (not equal) operator against a single un-parenthesized expression with +// or +// without quotes or against multiple parenthesized expressions. +// Examples: +// +// `fieldname eq unquoted literal` +// `fieldname eq 'single quoted literal'` +// `fieldname eq "double quoted literal" +// `(fieldname1 eq literal) (fieldname2 ne "literal")` +// +// The literal value is interpreted as a regular expression using GoogleRE2 +// library syntax. +// The literal value must match the entire field. +// +// For example, to filter for instances that do not end with name +// "instance", +// you would use `name ne .*instance`. +// +// You cannot combine constraints on multiple fields using regular +// expressions. +func (c *FutureReservationsListCall) Filter(filter string) *FutureReservationsListCall { + 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 *FutureReservationsListCall) MaxResults(maxResults int64) *FutureReservationsListCall { + 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 *FutureReservationsListCall) OrderBy(orderBy string) *FutureReservationsListCall { + 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 *FutureReservationsListCall) PageToken(pageToken string) *FutureReservationsListCall { + c.urlParams_.Set("pageToken", pageToken) + return c +} + +// ReturnPartialSuccess sets the optional parameter "returnPartialSuccess": +// Opt-in for partial success behavior which provides partial results in +// case +// of failure. The default value is false. +// +// For example, when partial success behavior is enabled, aggregatedList for +// a +// single zone scope either returns all resources in the zone or no +// resources, +// with an error code. +func (c *FutureReservationsListCall) ReturnPartialSuccess(returnPartialSuccess bool) *FutureReservationsListCall { + c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess)) return c } // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *GlobalForwardingRulesSetTargetCall) Fields(s ...googleapi.Field) *GlobalForwardingRulesSetTargetCall { +func (c *FutureReservationsListCall) Fields(s ...googleapi.Field) *FutureReservationsListCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } +// IfNoneMatch sets an 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. +func (c *FutureReservationsListCall) IfNoneMatch(entityTag string) *FutureReservationsListCall { + c.ifNoneMatch_ = entityTag + return c +} + // Context sets the context to be used in this call's Do method. -func (c *GlobalForwardingRulesSetTargetCall) Context(ctx context.Context) *GlobalForwardingRulesSetTargetCall { +func (c *FutureReservationsListCall) Context(ctx context.Context) *FutureReservationsListCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *GlobalForwardingRulesSetTargetCall) Header() http.Header { +func (c *FutureReservationsListCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *GlobalForwardingRulesSetTargetCall) doRequest(alt string) (*http.Response, error) { - reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) - var body io.Reader = nil - body, err := googleapi.WithoutDataWrapper.JSONReader(c.targetreference) - if err != nil { - return nil, err +func (c *FutureReservationsListCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) + if c.ifNoneMatch_ != "" { + reqHeaders.Set("If-None-Match", c.ifNoneMatch_) } c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/forwardingRules/{forwardingRule}/setTarget") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/futureReservations") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("POST", urls, body) + req, err := http.NewRequest("GET", urls, nil) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "forwardingRule": c.forwardingRule, + "project": c.project, + "zone": c.zone, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.futureReservations.list", "request", internallog.HTTPRequest(req, nil)) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.globalForwardingRules.setTarget" call. +// Do executes the "compute.futureReservations.list" call. // 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 *GlobalForwardingRulesSetTargetCall) Do(opts ...googleapi.CallOption) (*Operation, error) { +// *FutureReservationsListResponse.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 *FutureReservationsListCall) Do(opts ...googleapi.CallOption) (*FutureReservationsListResponse, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -15832,110 +19053,150 @@ func (c *GlobalForwardingRulesSetTargetCall) Do(opts ...googleapi.CallOption) (* if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } - ret := &Operation{ + ret := &FutureReservationsListResponse{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.futureReservations.list", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type GlobalNetworkEndpointGroupsAttachNetworkEndpointsCall struct { - s *Service - project string - networkEndpointGroup string - globalnetworkendpointgroupsattachendpointsrequest *GlobalNetworkEndpointGroupsAttachEndpointsRequest - urlParams_ gensupport.URLParams - ctx_ context.Context - header_ http.Header +// 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 *FutureReservationsListCall) Pages(ctx context.Context, f func(*FutureReservationsListResponse) error) error { + c.ctx_ = ctx + defer c.PageToken(c.urlParams_.Get("pageToken")) + 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) + } } -// AttachNetworkEndpoints: Attach a network endpoint to the specified network -// endpoint group. +type FutureReservationsUpdateCall struct { + s *Service + project string + zone string + futureReservation string + futurereservation *FutureReservation + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header +} + +// Update: Updates the specified future reservation. // -// - networkEndpointGroup: The name of the network endpoint group where you are -// attaching network endpoints to. It should comply with RFC1035. +// - futureReservation: Name of the reservation to update. Name should conform +// to RFC1035. // - project: Project ID for this request. -func (r *GlobalNetworkEndpointGroupsService) AttachNetworkEndpoints(project string, networkEndpointGroup string, globalnetworkendpointgroupsattachendpointsrequest *GlobalNetworkEndpointGroupsAttachEndpointsRequest) *GlobalNetworkEndpointGroupsAttachNetworkEndpointsCall { - c := &GlobalNetworkEndpointGroupsAttachNetworkEndpointsCall{s: r.s, urlParams_: make(gensupport.URLParams)} +// - zone: Name of the zone for this request. Name should conform to RFC1035. +func (r *FutureReservationsService) Update(project string, zone string, futureReservation string, futurereservation *FutureReservation) *FutureReservationsUpdateCall { + c := &FutureReservationsUpdateCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project - c.networkEndpointGroup = networkEndpointGroup - c.globalnetworkendpointgroupsattachendpointsrequest = globalnetworkendpointgroupsattachendpointsrequest + c.zone = zone + c.futureReservation = futureReservation + c.futurereservation = futurereservation 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 *GlobalNetworkEndpointGroupsAttachNetworkEndpointsCall) RequestId(requestId string) *GlobalNetworkEndpointGroupsAttachNetworkEndpointsCall { +// 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 *FutureReservationsUpdateCall) RequestId(requestId string) *FutureReservationsUpdateCall { c.urlParams_.Set("requestId", requestId) return c } +// UpdateMask sets the optional parameter "updateMask": update_mask indicates +// fields to be updated as part of this request. +func (c *FutureReservationsUpdateCall) UpdateMask(updateMask string) *FutureReservationsUpdateCall { + c.urlParams_.Set("updateMask", updateMask) + return c +} + // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *GlobalNetworkEndpointGroupsAttachNetworkEndpointsCall) Fields(s ...googleapi.Field) *GlobalNetworkEndpointGroupsAttachNetworkEndpointsCall { +func (c *FutureReservationsUpdateCall) Fields(s ...googleapi.Field) *FutureReservationsUpdateCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } // Context sets the context to be used in this call's Do method. -func (c *GlobalNetworkEndpointGroupsAttachNetworkEndpointsCall) Context(ctx context.Context) *GlobalNetworkEndpointGroupsAttachNetworkEndpointsCall { +func (c *FutureReservationsUpdateCall) Context(ctx context.Context) *FutureReservationsUpdateCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *GlobalNetworkEndpointGroupsAttachNetworkEndpointsCall) Header() http.Header { +func (c *FutureReservationsUpdateCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *GlobalNetworkEndpointGroupsAttachNetworkEndpointsCall) doRequest(alt string) (*http.Response, error) { +func (c *FutureReservationsUpdateCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) - var body io.Reader = nil - body, err := googleapi.WithoutDataWrapper.JSONReader(c.globalnetworkendpointgroupsattachendpointsrequest) + body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.futurereservation) if err != nil { return nil, err } c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/networkEndpointGroups/{networkEndpointGroup}/attachNetworkEndpoints") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/futureReservations/{futureReservation}") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("POST", urls, body) + req, err := http.NewRequest("PATCH", urls, body) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "networkEndpointGroup": c.networkEndpointGroup, + "project": c.project, + "zone": c.zone, + "futureReservation": c.futureReservation, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.futureReservations.update", "request", internallog.HTTPRequest(req, body.Bytes())) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.globalNetworkEndpointGroups.attachNetworkEndpoints" call. +// Do executes the "compute.futureReservations.update" call. // 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 *GlobalNetworkEndpointGroupsAttachNetworkEndpointsCall) Do(opts ...googleapi.CallOption) (*Operation, error) { +func (c *FutureReservationsUpdateCall) Do(opts ...googleapi.CallOption) (*Operation, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -15961,45 +19222,52 @@ func (c *GlobalNetworkEndpointGroupsAttachNetworkEndpointsCall) Do(opts ...googl }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.futureReservations.update", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type GlobalNetworkEndpointGroupsDeleteCall struct { - s *Service - project string - networkEndpointGroup string - urlParams_ gensupport.URLParams - ctx_ context.Context - header_ http.Header +type GlobalAddressesDeleteCall struct { + s *Service + project string + address string + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header } -// Delete: Deletes the specified network endpoint group.Note that the NEG -// cannot be deleted if there are backend services referencing it. +// Delete: Deletes the specified address resource. // -// - networkEndpointGroup: The name of the network endpoint group to delete. It -// should comply with RFC1035. -// - project: Project ID for this request. -func (r *GlobalNetworkEndpointGroupsService) Delete(project string, networkEndpointGroup string) *GlobalNetworkEndpointGroupsDeleteCall { - c := &GlobalNetworkEndpointGroupsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)} +// - address: Name of the address resource to delete. +// - project: Project ID for this request. +func (r *GlobalAddressesService) Delete(project string, address string) *GlobalAddressesDeleteCall { + c := &GlobalAddressesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project - c.networkEndpointGroup = networkEndpointGroup + c.address = address 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 *GlobalNetworkEndpointGroupsDeleteCall) RequestId(requestId string) *GlobalNetworkEndpointGroupsDeleteCall { +// 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 *GlobalAddressesDeleteCall) RequestId(requestId string) *GlobalAddressesDeleteCall { c.urlParams_.Set("requestId", requestId) return c } @@ -16007,51 +19275,51 @@ func (c *GlobalNetworkEndpointGroupsDeleteCall) RequestId(requestId string) *Glo // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *GlobalNetworkEndpointGroupsDeleteCall) Fields(s ...googleapi.Field) *GlobalNetworkEndpointGroupsDeleteCall { +func (c *GlobalAddressesDeleteCall) Fields(s ...googleapi.Field) *GlobalAddressesDeleteCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } // Context sets the context to be used in this call's Do method. -func (c *GlobalNetworkEndpointGroupsDeleteCall) Context(ctx context.Context) *GlobalNetworkEndpointGroupsDeleteCall { +func (c *GlobalAddressesDeleteCall) Context(ctx context.Context) *GlobalAddressesDeleteCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *GlobalNetworkEndpointGroupsDeleteCall) Header() http.Header { +func (c *GlobalAddressesDeleteCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *GlobalNetworkEndpointGroupsDeleteCall) doRequest(alt string) (*http.Response, error) { +func (c *GlobalAddressesDeleteCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) - var body io.Reader = nil c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/networkEndpointGroups/{networkEndpointGroup}") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/addresses/{address}") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("DELETE", urls, body) + req, err := http.NewRequest("DELETE", urls, nil) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "networkEndpointGroup": c.networkEndpointGroup, + "project": c.project, + "address": c.address, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.globalAddresses.delete", "request", internallog.HTTPRequest(req, nil)) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.globalNetworkEndpointGroups.delete" call. +// Do executes the "compute.globalAddresses.delete" call. // 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 *GlobalNetworkEndpointGroupsDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) { +func (c *GlobalAddressesDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -16077,160 +19345,39 @@ func (c *GlobalNetworkEndpointGroupsDeleteCall) Do(opts ...googleapi.CallOption) }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { - return nil, err - } - return ret, nil -} - -type GlobalNetworkEndpointGroupsDetachNetworkEndpointsCall struct { - s *Service - project string - networkEndpointGroup string - globalnetworkendpointgroupsdetachendpointsrequest *GlobalNetworkEndpointGroupsDetachEndpointsRequest - urlParams_ gensupport.URLParams - ctx_ context.Context - header_ http.Header -} - -// DetachNetworkEndpoints: Detach the network endpoint from the specified -// network endpoint group. -// -// - networkEndpointGroup: The name of the network endpoint group where you are -// removing network endpoints. It should comply with RFC1035. -// - project: Project ID for this request. -func (r *GlobalNetworkEndpointGroupsService) DetachNetworkEndpoints(project string, networkEndpointGroup string, globalnetworkendpointgroupsdetachendpointsrequest *GlobalNetworkEndpointGroupsDetachEndpointsRequest) *GlobalNetworkEndpointGroupsDetachNetworkEndpointsCall { - c := &GlobalNetworkEndpointGroupsDetachNetworkEndpointsCall{s: r.s, urlParams_: make(gensupport.URLParams)} - c.project = project - c.networkEndpointGroup = networkEndpointGroup - c.globalnetworkendpointgroupsdetachendpointsrequest = globalnetworkendpointgroupsdetachendpointsrequest - 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 *GlobalNetworkEndpointGroupsDetachNetworkEndpointsCall) RequestId(requestId string) *GlobalNetworkEndpointGroupsDetachNetworkEndpointsCall { - 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 -// details. -func (c *GlobalNetworkEndpointGroupsDetachNetworkEndpointsCall) Fields(s ...googleapi.Field) *GlobalNetworkEndpointGroupsDetachNetworkEndpointsCall { - c.urlParams_.Set("fields", googleapi.CombineFields(s)) - return c -} - -// Context sets the context to be used in this call's Do method. -func (c *GlobalNetworkEndpointGroupsDetachNetworkEndpointsCall) Context(ctx context.Context) *GlobalNetworkEndpointGroupsDetachNetworkEndpointsCall { - c.ctx_ = ctx - return c -} - -// Header returns a http.Header that can be modified by the caller to add -// headers to the request. -func (c *GlobalNetworkEndpointGroupsDetachNetworkEndpointsCall) Header() http.Header { - if c.header_ == nil { - c.header_ = make(http.Header) - } - return c.header_ -} - -func (c *GlobalNetworkEndpointGroupsDetachNetworkEndpointsCall) doRequest(alt string) (*http.Response, error) { - reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) - var body io.Reader = nil - body, err := googleapi.WithoutDataWrapper.JSONReader(c.globalnetworkendpointgroupsdetachendpointsrequest) - if err != nil { - return nil, err - } - c.urlParams_.Set("alt", alt) - c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/networkEndpointGroups/{networkEndpointGroup}/detachNetworkEndpoints") - urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("POST", urls, body) - if err != nil { - return nil, err - } - req.Header = reqHeaders - googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "networkEndpointGroup": c.networkEndpointGroup, - }) - return gensupport.SendRequest(c.ctx_, c.s.client, req) -} - -// Do executes the "compute.globalNetworkEndpointGroups.detachNetworkEndpoints" call. -// 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 *GlobalNetworkEndpointGroupsDetachNetworkEndpointsCall) 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, gensupport.WrapError(&googleapi.Error{ - Code: res.StatusCode, - Header: res.Header, - }) - } + b, err := gensupport.DecodeResponseBytes(target, res) if err != nil { return nil, err } - defer googleapi.CloseBody(res) - if err := googleapi.CheckResponse(res); err != nil { - return nil, gensupport.WrapError(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 - } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.globalAddresses.delete", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type GlobalNetworkEndpointGroupsGetCall struct { - s *Service - project string - networkEndpointGroup string - urlParams_ gensupport.URLParams - ifNoneMatch_ string - ctx_ context.Context - header_ http.Header +type GlobalAddressesGetCall struct { + s *Service + project string + address string + urlParams_ gensupport.URLParams + ifNoneMatch_ string + ctx_ context.Context + header_ http.Header } -// Get: Returns the specified network endpoint group. +// Get: Returns the specified address resource. // -// - networkEndpointGroup: The name of the network endpoint group. It should -// comply with RFC1035. -// - project: Project ID for this request. -func (r *GlobalNetworkEndpointGroupsService) Get(project string, networkEndpointGroup string) *GlobalNetworkEndpointGroupsGetCall { - c := &GlobalNetworkEndpointGroupsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)} +// - address: Name of the address resource to return. +// - project: Project ID for this request. +func (r *GlobalAddressesService) Get(project string, address string) *GlobalAddressesGetCall { + c := &GlobalAddressesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project - c.networkEndpointGroup = networkEndpointGroup + c.address = address return c } // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *GlobalNetworkEndpointGroupsGetCall) Fields(s ...googleapi.Field) *GlobalNetworkEndpointGroupsGetCall { +func (c *GlobalAddressesGetCall) Fields(s ...googleapi.Field) *GlobalAddressesGetCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } @@ -16238,55 +19385,54 @@ func (c *GlobalNetworkEndpointGroupsGetCall) Fields(s ...googleapi.Field) *Globa // IfNoneMatch sets an 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. -func (c *GlobalNetworkEndpointGroupsGetCall) IfNoneMatch(entityTag string) *GlobalNetworkEndpointGroupsGetCall { +func (c *GlobalAddressesGetCall) IfNoneMatch(entityTag string) *GlobalAddressesGetCall { c.ifNoneMatch_ = entityTag return c } // Context sets the context to be used in this call's Do method. -func (c *GlobalNetworkEndpointGroupsGetCall) Context(ctx context.Context) *GlobalNetworkEndpointGroupsGetCall { +func (c *GlobalAddressesGetCall) Context(ctx context.Context) *GlobalAddressesGetCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *GlobalNetworkEndpointGroupsGetCall) Header() http.Header { +func (c *GlobalAddressesGetCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *GlobalNetworkEndpointGroupsGetCall) doRequest(alt string) (*http.Response, error) { +func (c *GlobalAddressesGetCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) if c.ifNoneMatch_ != "" { reqHeaders.Set("If-None-Match", c.ifNoneMatch_) } - var body io.Reader = nil c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/networkEndpointGroups/{networkEndpointGroup}") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/addresses/{address}") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("GET", urls, body) + req, err := http.NewRequest("GET", urls, nil) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "networkEndpointGroup": c.networkEndpointGroup, + "project": c.project, + "address": c.address, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.globalAddresses.get", "request", internallog.HTTPRequest(req, nil)) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.globalNetworkEndpointGroups.get" call. +// Do executes the "compute.globalAddresses.get" call. // Any non-2xx status code is an error. Response headers are in either -// *NetworkEndpointGroup.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 *GlobalNetworkEndpointGroupsGetCall) Do(opts ...googleapi.CallOption) (*NetworkEndpointGroup, error) { +// *Address.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 *GlobalAddressesGetCall) Do(opts ...googleapi.CallOption) (*Address, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -16305,50 +19451,60 @@ func (c *GlobalNetworkEndpointGroupsGetCall) Do(opts ...googleapi.CallOption) (* if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } - ret := &NetworkEndpointGroup{ + ret := &Address{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.globalAddresses.get", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type GlobalNetworkEndpointGroupsInsertCall struct { - s *Service - project string - networkendpointgroup *NetworkEndpointGroup - urlParams_ gensupport.URLParams - ctx_ context.Context - header_ http.Header +type GlobalAddressesInsertCall struct { + s *Service + project string + address *Address + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header } -// Insert: Creates a network endpoint group in the specified project using the -// parameters that are included in the request. +// Insert: Creates an address resource in the specified project by using the +// data +// included in the request. // // - project: Project ID for this request. -func (r *GlobalNetworkEndpointGroupsService) Insert(project string, networkendpointgroup *NetworkEndpointGroup) *GlobalNetworkEndpointGroupsInsertCall { - c := &GlobalNetworkEndpointGroupsInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)} +func (r *GlobalAddressesService) Insert(project string, address *Address) *GlobalAddressesInsertCall { + c := &GlobalAddressesInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project - c.networkendpointgroup = networkendpointgroup + c.address = address 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 *GlobalNetworkEndpointGroupsInsertCall) RequestId(requestId string) *GlobalNetworkEndpointGroupsInsertCall { +// 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 *GlobalAddressesInsertCall) RequestId(requestId string) *GlobalAddressesInsertCall { c.urlParams_.Set("requestId", requestId) return c } @@ -16356,36 +19512,35 @@ func (c *GlobalNetworkEndpointGroupsInsertCall) RequestId(requestId string) *Glo // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *GlobalNetworkEndpointGroupsInsertCall) Fields(s ...googleapi.Field) *GlobalNetworkEndpointGroupsInsertCall { +func (c *GlobalAddressesInsertCall) Fields(s ...googleapi.Field) *GlobalAddressesInsertCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } // Context sets the context to be used in this call's Do method. -func (c *GlobalNetworkEndpointGroupsInsertCall) Context(ctx context.Context) *GlobalNetworkEndpointGroupsInsertCall { +func (c *GlobalAddressesInsertCall) Context(ctx context.Context) *GlobalAddressesInsertCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *GlobalNetworkEndpointGroupsInsertCall) Header() http.Header { +func (c *GlobalAddressesInsertCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *GlobalNetworkEndpointGroupsInsertCall) doRequest(alt string) (*http.Response, error) { +func (c *GlobalAddressesInsertCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) - var body io.Reader = nil - body, err := googleapi.WithoutDataWrapper.JSONReader(c.networkendpointgroup) + body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.address) if err != nil { return nil, err } c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/networkEndpointGroups") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/addresses") urls += "?" + c.urlParams_.Encode() req, err := http.NewRequest("POST", urls, body) if err != nil { @@ -16395,15 +19550,16 @@ func (c *GlobalNetworkEndpointGroupsInsertCall) doRequest(alt string) (*http.Res googleapi.Expand(req.URL, map[string]string{ "project": c.project, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.globalAddresses.insert", "request", internallog.HTTPRequest(req, body.Bytes())) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.globalNetworkEndpointGroups.insert" call. +// Do executes the "compute.globalAddresses.insert" call. // 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 *GlobalNetworkEndpointGroupsInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) { +func (c *GlobalAddressesInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -16429,13 +19585,15 @@ func (c *GlobalNetworkEndpointGroupsInsertCall) Do(opts ...googleapi.CallOption) }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.globalAddresses.insert", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type GlobalNetworkEndpointGroupsListCall struct { +type GlobalAddressesListCall struct { s *Service project string urlParams_ gensupport.URLParams @@ -16444,90 +19602,139 @@ type GlobalNetworkEndpointGroupsListCall struct { header_ http.Header } -// List: Retrieves the list of network endpoint groups that are located in the -// specified project. +// List: Retrieves a list of global addresses. // // - project: Project ID for this request. -func (r *GlobalNetworkEndpointGroupsService) List(project string) *GlobalNetworkEndpointGroupsListCall { - c := &GlobalNetworkEndpointGroupsListCall{s: r.s, urlParams_: make(gensupport.URLParams)} +func (r *GlobalAddressesService) List(project string) *GlobalAddressesListCall { + c := &GlobalAddressesListCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project return c } // Filter sets the optional parameter "filter": A filter expression that -// filters resources listed in the response. Most Compute resources support two -// types of filter expressions: expressions that support regular expressions -// and expressions that follow API improvement proposal AIP-160. These two -// types of filter expressions cannot be mixed in one request. If you want to -// use AIP-160, your expression must specify the field name, an operator, and -// the value that you want to use for filtering. The value must be a string, a -// number, or a boolean. The 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`. The `:*` comparison can be used to test whether a key has -// been defined. For example, to find all objects with `owner` label use: ``` -// labels.owner:* ``` 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) ``` If you want to use a regular -// expression, use the `eq` (equal) or `ne` (not equal) operator against a -// single un-parenthesized expression with or without quotes or against -// multiple parenthesized expressions. Examples: `fieldname eq unquoted -// literal` `fieldname eq 'single quoted literal'` `fieldname eq "double quoted -// literal" `(fieldname1 eq literal) (fieldname2 ne "literal")` The literal -// value is interpreted as a regular expression using Google RE2 library -// syntax. The literal value must match the entire field. For example, to -// filter for instances that do not end with name "instance", you would use -// `name ne .*instance`. You cannot combine constraints on multiple fields -// using regular expressions. -func (c *GlobalNetworkEndpointGroupsListCall) Filter(filter string) *GlobalNetworkEndpointGroupsListCall { +// filters resources listed in the response. Most +// Compute resources support two types of filter expressions: +// expressions that support regular expressions and expressions that follow +// API improvement proposal AIP-160. +// These two types of filter expressions cannot be mixed in one request. +// +// If you want to use AIP-160, your expression must specify the field name, +// an +// operator, and the value that you want to use for filtering. The value +// must be a string, a number, or a boolean. The 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`. +// +// The `:*` comparison can be used to test whether a key has been defined. +// For example, to find all objects with `owner` label +// use: +// ``` +// labels.owner:* +// ``` +// +// 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 onresource 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) +// ``` +// +// If you want to use a regular expression, use the `eq` (equal) or `ne` +// (not equal) operator against a single un-parenthesized expression with +// or +// without quotes or against multiple parenthesized expressions. +// Examples: +// +// `fieldname eq unquoted literal` +// `fieldname eq 'single quoted literal'` +// `fieldname eq "double quoted literal" +// `(fieldname1 eq literal) (fieldname2 ne "literal")` +// +// The literal value is interpreted as a regular expression using GoogleRE2 +// library syntax. +// The literal value must match the entire field. +// +// For example, to filter for instances that do not end with name +// "instance", +// you would use `name ne .*instance`. +// +// You cannot combine constraints on multiple fields using regular +// expressions. +func (c *GlobalAddressesListCall) Filter(filter string) *GlobalAddressesListCall { 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 *GlobalNetworkEndpointGroupsListCall) MaxResults(maxResults int64) *GlobalNetworkEndpointGroupsListCall { +// 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 *GlobalAddressesListCall) MaxResults(maxResults int64) *GlobalAddressesListCall { 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 *GlobalNetworkEndpointGroupsListCall) OrderBy(orderBy string) *GlobalNetworkEndpointGroupsListCall { +// 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 *GlobalAddressesListCall) OrderBy(orderBy string) *GlobalAddressesListCall { 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 *GlobalNetworkEndpointGroupsListCall) PageToken(pageToken string) *GlobalNetworkEndpointGroupsListCall { +// use. Set `pageToken` to the +// `nextPageToken` returned by a previous list request to get +// the next page of results. +func (c *GlobalAddressesListCall) PageToken(pageToken string) *GlobalAddressesListCall { c.urlParams_.Set("pageToken", pageToken) return c } // ReturnPartialSuccess sets the optional parameter "returnPartialSuccess": -// Opt-in for partial success behavior which provides partial results in case -// of failure. The default value is false. For example, when partial success -// behavior is enabled, aggregatedList for a single zone scope either returns -// all resources in the zone or no resources, with an error code. -func (c *GlobalNetworkEndpointGroupsListCall) ReturnPartialSuccess(returnPartialSuccess bool) *GlobalNetworkEndpointGroupsListCall { +// Opt-in for partial success behavior which provides partial results in +// case +// of failure. The default value is false. +// +// For example, when partial success behavior is enabled, aggregatedList for +// a +// single zone scope either returns all resources in the zone or no +// resources, +// with an error code. +func (c *GlobalAddressesListCall) ReturnPartialSuccess(returnPartialSuccess bool) *GlobalAddressesListCall { c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess)) return c } @@ -16535,7 +19742,7 @@ func (c *GlobalNetworkEndpointGroupsListCall) ReturnPartialSuccess(returnPartial // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *GlobalNetworkEndpointGroupsListCall) Fields(s ...googleapi.Field) *GlobalNetworkEndpointGroupsListCall { +func (c *GlobalAddressesListCall) Fields(s ...googleapi.Field) *GlobalAddressesListCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } @@ -16543,37 +19750,36 @@ func (c *GlobalNetworkEndpointGroupsListCall) Fields(s ...googleapi.Field) *Glob // IfNoneMatch sets an 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. -func (c *GlobalNetworkEndpointGroupsListCall) IfNoneMatch(entityTag string) *GlobalNetworkEndpointGroupsListCall { +func (c *GlobalAddressesListCall) IfNoneMatch(entityTag string) *GlobalAddressesListCall { c.ifNoneMatch_ = entityTag return c } // Context sets the context to be used in this call's Do method. -func (c *GlobalNetworkEndpointGroupsListCall) Context(ctx context.Context) *GlobalNetworkEndpointGroupsListCall { +func (c *GlobalAddressesListCall) Context(ctx context.Context) *GlobalAddressesListCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *GlobalNetworkEndpointGroupsListCall) Header() http.Header { +func (c *GlobalAddressesListCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *GlobalNetworkEndpointGroupsListCall) doRequest(alt string) (*http.Response, error) { +func (c *GlobalAddressesListCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) if c.ifNoneMatch_ != "" { reqHeaders.Set("If-None-Match", c.ifNoneMatch_) } - var body io.Reader = nil c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/networkEndpointGroups") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/addresses") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("GET", urls, body) + req, err := http.NewRequest("GET", urls, nil) if err != nil { return nil, err } @@ -16581,16 +19787,16 @@ func (c *GlobalNetworkEndpointGroupsListCall) doRequest(alt string) (*http.Respo googleapi.Expand(req.URL, map[string]string{ "project": c.project, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.globalAddresses.list", "request", internallog.HTTPRequest(req, nil)) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.globalNetworkEndpointGroups.list" call. +// Do executes the "compute.globalAddresses.list" call. // Any non-2xx status code is an error. Response headers are in either -// *NetworkEndpointGroupList.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 *GlobalNetworkEndpointGroupsListCall) Do(opts ...googleapi.CallOption) (*NetworkEndpointGroupList, error) { +// *AddressList.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 *GlobalAddressesListCall) Do(opts ...googleapi.CallOption) (*AddressList, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -16609,23 +19815,25 @@ func (c *GlobalNetworkEndpointGroupsListCall) Do(opts ...googleapi.CallOption) ( if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } - ret := &NetworkEndpointGroupList{ + ret := &AddressList{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.globalAddresses.list", "response", internallog.HTTPResponse(res, b)) return ret, nil } // 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 *GlobalNetworkEndpointGroupsListCall) Pages(ctx context.Context, f func(*NetworkEndpointGroupList) error) error { +func (c *GlobalAddressesListCall) Pages(ctx context.Context, f func(*AddressList) error) error { c.ctx_ = ctx defer c.PageToken(c.urlParams_.Get("pageToken")) for { @@ -16643,136 +19851,83 @@ func (c *GlobalNetworkEndpointGroupsListCall) Pages(ctx context.Context, f func( } } -type GlobalNetworkEndpointGroupsListNetworkEndpointsCall struct { - s *Service - project string - networkEndpointGroup string - urlParams_ gensupport.URLParams - ctx_ context.Context - header_ http.Header +type GlobalAddressesMoveCall struct { + s *Service + project string + address string + globaladdressesmoverequest *GlobalAddressesMoveRequest + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header } -// ListNetworkEndpoints: Lists the network endpoints in the specified network -// endpoint group. +// Move: Moves the specified address resource from one project to another +// project. // -// - networkEndpointGroup: The name of the network endpoint group from which -// you want to generate a list of included network endpoints. It should -// comply with RFC1035. -// - project: Project ID for this request. -func (r *GlobalNetworkEndpointGroupsService) ListNetworkEndpoints(project string, networkEndpointGroup string) *GlobalNetworkEndpointGroupsListNetworkEndpointsCall { - c := &GlobalNetworkEndpointGroupsListNetworkEndpointsCall{s: r.s, urlParams_: make(gensupport.URLParams)} +// - address: Name of the address resource to move. +// - project: Source project ID which the Address is moved from. +func (r *GlobalAddressesService) Move(project string, address string, globaladdressesmoverequest *GlobalAddressesMoveRequest) *GlobalAddressesMoveCall { + c := &GlobalAddressesMoveCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project - c.networkEndpointGroup = networkEndpointGroup - return c -} - -// Filter sets the optional parameter "filter": A filter expression that -// filters resources listed in the response. Most Compute resources support two -// types of filter expressions: expressions that support regular expressions -// and expressions that follow API improvement proposal AIP-160. These two -// types of filter expressions cannot be mixed in one request. If you want to -// use AIP-160, your expression must specify the field name, an operator, and -// the value that you want to use for filtering. The value must be a string, a -// number, or a boolean. The 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`. The `:*` comparison can be used to test whether a key has -// been defined. For example, to find all objects with `owner` label use: ``` -// labels.owner:* ``` 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) ``` If you want to use a regular -// expression, use the `eq` (equal) or `ne` (not equal) operator against a -// single un-parenthesized expression with or without quotes or against -// multiple parenthesized expressions. Examples: `fieldname eq unquoted -// literal` `fieldname eq 'single quoted literal'` `fieldname eq "double quoted -// literal" `(fieldname1 eq literal) (fieldname2 ne "literal")` The literal -// value is interpreted as a regular expression using Google RE2 library -// syntax. The literal value must match the entire field. For example, to -// filter for instances that do not end with name "instance", you would use -// `name ne .*instance`. You cannot combine constraints on multiple fields -// using regular expressions. -func (c *GlobalNetworkEndpointGroupsListNetworkEndpointsCall) Filter(filter string) *GlobalNetworkEndpointGroupsListNetworkEndpointsCall { - 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 *GlobalNetworkEndpointGroupsListNetworkEndpointsCall) MaxResults(maxResults int64) *GlobalNetworkEndpointGroupsListNetworkEndpointsCall { - 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 *GlobalNetworkEndpointGroupsListNetworkEndpointsCall) OrderBy(orderBy string) *GlobalNetworkEndpointGroupsListNetworkEndpointsCall { - 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 *GlobalNetworkEndpointGroupsListNetworkEndpointsCall) PageToken(pageToken string) *GlobalNetworkEndpointGroupsListNetworkEndpointsCall { - c.urlParams_.Set("pageToken", pageToken) + c.address = address + c.globaladdressesmoverequest = globaladdressesmoverequest return c } -// ReturnPartialSuccess sets the optional parameter "returnPartialSuccess": -// Opt-in for partial success behavior which provides partial results in case -// of failure. The default value is false. For example, when partial success -// behavior is enabled, aggregatedList for a single zone scope either returns -// all resources in the zone or no resources, with an error code. -func (c *GlobalNetworkEndpointGroupsListNetworkEndpointsCall) ReturnPartialSuccess(returnPartialSuccess bool) *GlobalNetworkEndpointGroupsListNetworkEndpointsCall { - c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess)) +// 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 *GlobalAddressesMoveCall) RequestId(requestId string) *GlobalAddressesMoveCall { + 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 // details. -func (c *GlobalNetworkEndpointGroupsListNetworkEndpointsCall) Fields(s ...googleapi.Field) *GlobalNetworkEndpointGroupsListNetworkEndpointsCall { +func (c *GlobalAddressesMoveCall) Fields(s ...googleapi.Field) *GlobalAddressesMoveCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } // Context sets the context to be used in this call's Do method. -func (c *GlobalNetworkEndpointGroupsListNetworkEndpointsCall) Context(ctx context.Context) *GlobalNetworkEndpointGroupsListNetworkEndpointsCall { +func (c *GlobalAddressesMoveCall) Context(ctx context.Context) *GlobalAddressesMoveCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *GlobalNetworkEndpointGroupsListNetworkEndpointsCall) Header() http.Header { +func (c *GlobalAddressesMoveCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *GlobalNetworkEndpointGroupsListNetworkEndpointsCall) doRequest(alt string) (*http.Response, error) { - reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) - var body io.Reader = nil +func (c *GlobalAddressesMoveCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) + body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.globaladdressesmoverequest) + if err != nil { + return nil, err + } c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/networkEndpointGroups/{networkEndpointGroup}/listNetworkEndpoints") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/addresses/{address}/move") urls += "?" + c.urlParams_.Encode() req, err := http.NewRequest("POST", urls, body) if err != nil { @@ -16780,19 +19935,19 @@ func (c *GlobalNetworkEndpointGroupsListNetworkEndpointsCall) doRequest(alt stri } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "networkEndpointGroup": c.networkEndpointGroup, + "project": c.project, + "address": c.address, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.globalAddresses.move", "request", internallog.HTTPRequest(req, body.Bytes())) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.globalNetworkEndpointGroups.listNetworkEndpoints" call. +// Do executes the "compute.globalAddresses.move" call. // Any non-2xx status code is an error. Response headers are in either -// *NetworkEndpointGroupsListNetworkEndpoints.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 *GlobalNetworkEndpointGroupsListNetworkEndpointsCall) Do(opts ...googleapi.CallOption) (*NetworkEndpointGroupsListNetworkEndpoints, error) { +// *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 *GlobalAddressesMoveCall) Do(opts ...googleapi.CallOption) (*Operation, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -16811,218 +19966,206 @@ func (c *GlobalNetworkEndpointGroupsListNetworkEndpointsCall) Do(opts ...googlea if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } - ret := &NetworkEndpointGroupsListNetworkEndpoints{ + ret := &Operation{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.globalAddresses.move", "response", internallog.HTTPResponse(res, b)) return ret, nil } -// 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 *GlobalNetworkEndpointGroupsListNetworkEndpointsCall) Pages(ctx context.Context, f func(*NetworkEndpointGroupsListNetworkEndpoints) error) error { - c.ctx_ = ctx - defer c.PageToken(c.urlParams_.Get("pageToken")) - 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) - } -} - -type GlobalOperationsAggregatedListCall struct { - s *Service - project string - urlParams_ gensupport.URLParams - ifNoneMatch_ string - ctx_ context.Context - header_ http.Header +type GlobalAddressesSetLabelsCall struct { + s *Service + project string + resource string + globalsetlabelsrequest *GlobalSetLabelsRequest + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header } -// AggregatedList: Retrieves an aggregated list of all operations. To prevent -// failure, Google recommends that you set the `returnPartialSuccess` parameter -// to `true`. +// SetLabels: Sets the labels on a GlobalAddress. To learn more about labels, +// read theLabeling +// Resources documentation. // // - project: Project ID for this request. -func (r *GlobalOperationsService) AggregatedList(project string) *GlobalOperationsAggregatedListCall { - c := &GlobalOperationsAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)} +// - resource: Name or id of the resource for this request. +func (r *GlobalAddressesService) SetLabels(project string, resource string, globalsetlabelsrequest *GlobalSetLabelsRequest) *GlobalAddressesSetLabelsCall { + c := &GlobalAddressesSetLabelsCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project + c.resource = resource + c.globalsetlabelsrequest = globalsetlabelsrequest return c } -// Filter sets the optional parameter "filter": A filter expression that -// filters resources listed in the response. Most Compute resources support two -// types of filter expressions: expressions that support regular expressions -// and expressions that follow API improvement proposal AIP-160. These two -// types of filter expressions cannot be mixed in one request. If you want to -// use AIP-160, your expression must specify the field name, an operator, and -// the value that you want to use for filtering. The value must be a string, a -// number, or a boolean. The 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`. The `:*` comparison can be used to test whether a key has -// been defined. For example, to find all objects with `owner` label use: ``` -// labels.owner:* ``` 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) ``` If you want to use a regular -// expression, use the `eq` (equal) or `ne` (not equal) operator against a -// single un-parenthesized expression with or without quotes or against -// multiple parenthesized expressions. Examples: `fieldname eq unquoted -// literal` `fieldname eq 'single quoted literal'` `fieldname eq "double quoted -// literal" `(fieldname1 eq literal) (fieldname2 ne "literal")` The literal -// value is interpreted as a regular expression using Google RE2 library -// syntax. The literal value must match the entire field. For example, to -// filter for instances that do not end with name "instance", you would use -// `name ne .*instance`. You cannot combine constraints on multiple fields -// using regular expressions. -func (c *GlobalOperationsAggregatedListCall) Filter(filter string) *GlobalOperationsAggregatedListCall { - c.urlParams_.Set("filter", filter) - return c -} - -// IncludeAllScopes sets the optional parameter "includeAllScopes": Indicates -// whether every visible scope for each scope type (zone, region, global) -// should be included in the response. For new resource types added after this -// field, the flag has no effect as new resource types will always include -// every visible scope for each scope type in response. For resource types -// which predate this field, if this flag is omitted or false, only scopes of -// the scope types where the resource type is expected to be found will be -// included. -func (c *GlobalOperationsAggregatedListCall) IncludeAllScopes(includeAllScopes bool) *GlobalOperationsAggregatedListCall { - c.urlParams_.Set("includeAllScopes", fmt.Sprint(includeAllScopes)) +// Fields allows partial responses to be retrieved. See +// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more +// details. +func (c *GlobalAddressesSetLabelsCall) Fields(s ...googleapi.Field) *GlobalAddressesSetLabelsCall { + c.urlParams_.Set("fields", googleapi.CombineFields(s)) 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 *GlobalOperationsAggregatedListCall) MaxResults(maxResults int64) *GlobalOperationsAggregatedListCall { - c.urlParams_.Set("maxResults", fmt.Sprint(maxResults)) +// Context sets the context to be used in this call's Do method. +func (c *GlobalAddressesSetLabelsCall) Context(ctx context.Context) *GlobalAddressesSetLabelsCall { + c.ctx_ = ctx 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 *GlobalOperationsAggregatedListCall) OrderBy(orderBy string) *GlobalOperationsAggregatedListCall { - c.urlParams_.Set("orderBy", orderBy) - return c +// Header returns a http.Header that can be modified by the caller to add +// headers to the request. +func (c *GlobalAddressesSetLabelsCall) Header() http.Header { + if c.header_ == nil { + c.header_ = make(http.Header) + } + return c.header_ } -// 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 *GlobalOperationsAggregatedListCall) PageToken(pageToken string) *GlobalOperationsAggregatedListCall { - c.urlParams_.Set("pageToken", pageToken) - return c +func (c *GlobalAddressesSetLabelsCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) + body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.globalsetlabelsrequest) + if err != nil { + return nil, err + } + c.urlParams_.Set("alt", alt) + c.urlParams_.Set("prettyPrint", "false") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/addresses/{resource}/setLabels") + urls += "?" + c.urlParams_.Encode() + req, err := http.NewRequest("POST", urls, body) + if err != nil { + return nil, err + } + req.Header = reqHeaders + googleapi.Expand(req.URL, map[string]string{ + "project": c.project, + "resource": c.resource, + }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.globalAddresses.setLabels", "request", internallog.HTTPRequest(req, body.Bytes())) + return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// ReturnPartialSuccess sets the optional parameter "returnPartialSuccess": -// Opt-in for partial success behavior which provides partial results in case -// of failure. The default value is false. For example, when partial success -// behavior is enabled, aggregatedList for a single zone scope either returns -// all resources in the zone or no resources, with an error code. -func (c *GlobalOperationsAggregatedListCall) ReturnPartialSuccess(returnPartialSuccess bool) *GlobalOperationsAggregatedListCall { - c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess)) - return c +// Do executes the "compute.globalAddresses.setLabels" call. +// 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 *GlobalAddressesSetLabelsCall) 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, gensupport.WrapError(&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, gensupport.WrapError(err) + } + ret := &Operation{ + ServerResponse: googleapi.ServerResponse{ + Header: res.Header, + HTTPStatusCode: res.StatusCode, + }, + } + target := &ret + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { + return nil, err + } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.globalAddresses.setLabels", "response", internallog.HTTPResponse(res, b)) + return ret, nil } -// ServiceProjectNumber sets the optional parameter "serviceProjectNumber": The -// Shared VPC service project id or service project number for which aggregated -// list request is invoked for subnetworks list-usable api. -func (c *GlobalOperationsAggregatedListCall) ServiceProjectNumber(serviceProjectNumber int64) *GlobalOperationsAggregatedListCall { - c.urlParams_.Set("serviceProjectNumber", fmt.Sprint(serviceProjectNumber)) +type GlobalAddressesTestIamPermissionsCall struct { + s *Service + project string + resource string + testpermissionsrequest *TestPermissionsRequest + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header +} + +// TestIamPermissions: Returns permissions that a caller has on the specified +// resource. +// +// - project: Project ID for this request. +// - resource: Name or id of the resource for this request. +func (r *GlobalAddressesService) TestIamPermissions(project string, resource string, testpermissionsrequest *TestPermissionsRequest) *GlobalAddressesTestIamPermissionsCall { + c := &GlobalAddressesTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)} + c.project = project + c.resource = resource + c.testpermissionsrequest = testpermissionsrequest return c } // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *GlobalOperationsAggregatedListCall) Fields(s ...googleapi.Field) *GlobalOperationsAggregatedListCall { +func (c *GlobalAddressesTestIamPermissionsCall) Fields(s ...googleapi.Field) *GlobalAddressesTestIamPermissionsCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } -// IfNoneMatch sets an 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. -func (c *GlobalOperationsAggregatedListCall) IfNoneMatch(entityTag string) *GlobalOperationsAggregatedListCall { - c.ifNoneMatch_ = entityTag - return c -} - // Context sets the context to be used in this call's Do method. -func (c *GlobalOperationsAggregatedListCall) Context(ctx context.Context) *GlobalOperationsAggregatedListCall { +func (c *GlobalAddressesTestIamPermissionsCall) Context(ctx context.Context) *GlobalAddressesTestIamPermissionsCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *GlobalOperationsAggregatedListCall) Header() http.Header { +func (c *GlobalAddressesTestIamPermissionsCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *GlobalOperationsAggregatedListCall) doRequest(alt string) (*http.Response, error) { - reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) - if c.ifNoneMatch_ != "" { - reqHeaders.Set("If-None-Match", c.ifNoneMatch_) +func (c *GlobalAddressesTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) + body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.testpermissionsrequest) + if err != nil { + return nil, err } - var body io.Reader = nil c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/aggregated/operations") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/addresses/{resource}/testIamPermissions") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("GET", urls, body) + req, err := http.NewRequest("POST", urls, body) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, + "project": c.project, + "resource": c.resource, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.globalAddresses.testIamPermissions", "request", internallog.HTTPRequest(req, body.Bytes())) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.globalOperations.aggregatedList" call. +// Do executes the "compute.globalAddresses.testIamPermissions" call. // Any non-2xx status code is an error. Response headers are in either -// *OperationAggregatedList.ServerResponse.Header or (if a response was +// *TestPermissionsResponse.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 *GlobalOperationsAggregatedListCall) Do(opts ...googleapi.CallOption) (*OperationAggregatedList, error) { +func (c *GlobalAddressesTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -17041,141 +20184,187 @@ func (c *GlobalOperationsAggregatedListCall) Do(opts ...googleapi.CallOption) (* if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } - ret := &OperationAggregatedList{ + ret := &TestPermissionsResponse{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.globalAddresses.testIamPermissions", "response", internallog.HTTPResponse(res, b)) return ret, nil } -// 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 *GlobalOperationsAggregatedListCall) Pages(ctx context.Context, f func(*OperationAggregatedList) error) error { - c.ctx_ = ctx - defer c.PageToken(c.urlParams_.Get("pageToken")) - 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) - } -} - -type GlobalOperationsDeleteCall struct { - s *Service - project string - operation string - urlParams_ gensupport.URLParams - ctx_ context.Context - header_ http.Header +type GlobalForwardingRulesDeleteCall struct { + s *Service + project string + forwardingRule string + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header } -// Delete: Deletes the specified Operations resource. +// Delete: Deletes the specified GlobalForwardingRule resource. // -// - operation: Name of the Operations resource to delete. +// - forwardingRule: Name of the ForwardingRule resource to delete. // - project: Project ID for this request. -func (r *GlobalOperationsService) Delete(project string, operation string) *GlobalOperationsDeleteCall { - c := &GlobalOperationsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)} +func (r *GlobalForwardingRulesService) Delete(project string, forwardingRule string) *GlobalForwardingRulesDeleteCall { + c := &GlobalForwardingRulesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project - c.operation = operation + c.forwardingRule = forwardingRule + 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 *GlobalForwardingRulesDeleteCall) RequestId(requestId string) *GlobalForwardingRulesDeleteCall { + 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 // details. -func (c *GlobalOperationsDeleteCall) Fields(s ...googleapi.Field) *GlobalOperationsDeleteCall { +func (c *GlobalForwardingRulesDeleteCall) Fields(s ...googleapi.Field) *GlobalForwardingRulesDeleteCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } // Context sets the context to be used in this call's Do method. -func (c *GlobalOperationsDeleteCall) Context(ctx context.Context) *GlobalOperationsDeleteCall { +func (c *GlobalForwardingRulesDeleteCall) Context(ctx context.Context) *GlobalForwardingRulesDeleteCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *GlobalOperationsDeleteCall) Header() http.Header { +func (c *GlobalForwardingRulesDeleteCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *GlobalOperationsDeleteCall) doRequest(alt string) (*http.Response, error) { +func (c *GlobalForwardingRulesDeleteCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) - var body io.Reader = nil c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/operations/{operation}") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/forwardingRules/{forwardingRule}") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("DELETE", urls, body) + req, err := http.NewRequest("DELETE", urls, nil) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "operation": c.operation, + "project": c.project, + "forwardingRule": c.forwardingRule, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.globalForwardingRules.delete", "request", internallog.HTTPRequest(req, nil)) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.globalOperations.delete" call. -func (c *GlobalOperationsDeleteCall) Do(opts ...googleapi.CallOption) error { +// Do executes the "compute.globalForwardingRules.delete" call. +// 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 *GlobalForwardingRulesDeleteCall) 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, gensupport.WrapError(&googleapi.Error{ + Code: res.StatusCode, + Header: res.Header, + }) + } if err != nil { - return err + return nil, err } defer googleapi.CloseBody(res) if err := googleapi.CheckResponse(res); err != nil { - return gensupport.WrapError(err) + return nil, gensupport.WrapError(err) } - return nil + ret := &Operation{ + ServerResponse: googleapi.ServerResponse{ + Header: res.Header, + HTTPStatusCode: res.StatusCode, + }, + } + target := &ret + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { + return nil, err + } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.globalForwardingRules.delete", "response", internallog.HTTPResponse(res, b)) + return ret, nil } -type GlobalOperationsGetCall struct { - s *Service - project string - operation string - urlParams_ gensupport.URLParams - ifNoneMatch_ string - ctx_ context.Context - header_ http.Header +type GlobalForwardingRulesGetCall struct { + s *Service + project string + forwardingRule string + urlParams_ gensupport.URLParams + ifNoneMatch_ string + ctx_ context.Context + header_ http.Header } -// Get: Retrieves the specified Operations resource. +// Get: Returns the specified GlobalForwardingRule resource. Gets a list +// of +// available forwarding rules by making a list() request. // -// - operation: Name of the Operations resource to return. +// - forwardingRule: Name of the ForwardingRule resource to return. // - project: Project ID for this request. -func (r *GlobalOperationsService) Get(project string, operation string) *GlobalOperationsGetCall { - c := &GlobalOperationsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)} +func (r *GlobalForwardingRulesService) Get(project string, forwardingRule string) *GlobalForwardingRulesGetCall { + c := &GlobalForwardingRulesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project - c.operation = operation + c.forwardingRule = forwardingRule + return c +} + +// View sets the optional parameter "view": +// +// Possible values: +// +// "BASIC" - The default view of a ForwardingRule, which includes the basic +// +// fields. +// +// "FULL" - The full view, including the ForwardingRule.`attached_extensions` +// +// field. +func (c *GlobalForwardingRulesGetCall) View(view string) *GlobalForwardingRulesGetCall { + c.urlParams_.Set("view", view) return c } // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *GlobalOperationsGetCall) Fields(s ...googleapi.Field) *GlobalOperationsGetCall { +func (c *GlobalForwardingRulesGetCall) Fields(s ...googleapi.Field) *GlobalForwardingRulesGetCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } @@ -17183,54 +20372,181 @@ func (c *GlobalOperationsGetCall) Fields(s ...googleapi.Field) *GlobalOperations // IfNoneMatch sets an 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. -func (c *GlobalOperationsGetCall) IfNoneMatch(entityTag string) *GlobalOperationsGetCall { +func (c *GlobalForwardingRulesGetCall) IfNoneMatch(entityTag string) *GlobalForwardingRulesGetCall { c.ifNoneMatch_ = entityTag return c } // Context sets the context to be used in this call's Do method. -func (c *GlobalOperationsGetCall) Context(ctx context.Context) *GlobalOperationsGetCall { +func (c *GlobalForwardingRulesGetCall) Context(ctx context.Context) *GlobalForwardingRulesGetCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *GlobalOperationsGetCall) Header() http.Header { +func (c *GlobalForwardingRulesGetCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *GlobalOperationsGetCall) doRequest(alt string) (*http.Response, error) { +func (c *GlobalForwardingRulesGetCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) if c.ifNoneMatch_ != "" { reqHeaders.Set("If-None-Match", c.ifNoneMatch_) } - var body io.Reader = nil c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/operations/{operation}") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/forwardingRules/{forwardingRule}") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("GET", urls, body) + req, err := http.NewRequest("GET", urls, nil) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "operation": c.operation, + "project": c.project, + "forwardingRule": c.forwardingRule, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.globalForwardingRules.get", "request", internallog.HTTPRequest(req, nil)) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.globalOperations.get" call. +// Do executes the "compute.globalForwardingRules.get" call. +// Any non-2xx status code is an error. Response headers are in either +// *ForwardingRule.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 *GlobalForwardingRulesGetCall) Do(opts ...googleapi.CallOption) (*ForwardingRule, 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, gensupport.WrapError(&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, gensupport.WrapError(err) + } + ret := &ForwardingRule{ + ServerResponse: googleapi.ServerResponse{ + Header: res.Header, + HTTPStatusCode: res.StatusCode, + }, + } + target := &ret + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { + return nil, err + } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.globalForwardingRules.get", "response", internallog.HTTPResponse(res, b)) + return ret, nil +} + +type GlobalForwardingRulesInsertCall struct { + s *Service + project string + forwardingrule *ForwardingRule + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header +} + +// Insert: Creates a GlobalForwardingRule resource in the specified project +// using +// the data included in the request. +// +// - project: Project ID for this request. +func (r *GlobalForwardingRulesService) Insert(project string, forwardingrule *ForwardingRule) *GlobalForwardingRulesInsertCall { + c := &GlobalForwardingRulesInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)} + c.project = project + c.forwardingrule = forwardingrule + 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 *GlobalForwardingRulesInsertCall) RequestId(requestId string) *GlobalForwardingRulesInsertCall { + 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 +// details. +func (c *GlobalForwardingRulesInsertCall) Fields(s ...googleapi.Field) *GlobalForwardingRulesInsertCall { + c.urlParams_.Set("fields", googleapi.CombineFields(s)) + return c +} + +// Context sets the context to be used in this call's Do method. +func (c *GlobalForwardingRulesInsertCall) Context(ctx context.Context) *GlobalForwardingRulesInsertCall { + c.ctx_ = ctx + return c +} + +// Header returns a http.Header that can be modified by the caller to add +// headers to the request. +func (c *GlobalForwardingRulesInsertCall) Header() http.Header { + if c.header_ == nil { + c.header_ = make(http.Header) + } + return c.header_ +} + +func (c *GlobalForwardingRulesInsertCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) + body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.forwardingrule) + if err != nil { + return nil, err + } + c.urlParams_.Set("alt", alt) + c.urlParams_.Set("prettyPrint", "false") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/forwardingRules") + urls += "?" + c.urlParams_.Encode() + req, err := http.NewRequest("POST", urls, body) + if err != nil { + return nil, err + } + req.Header = reqHeaders + googleapi.Expand(req.URL, map[string]string{ + "project": c.project, + }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.globalForwardingRules.insert", "request", internallog.HTTPRequest(req, body.Bytes())) + return gensupport.SendRequest(c.ctx_, c.s.client, req) +} + +// Do executes the "compute.globalForwardingRules.insert" call. // 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 *GlobalOperationsGetCall) Do(opts ...googleapi.CallOption) (*Operation, error) { +func (c *GlobalForwardingRulesInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -17256,13 +20572,15 @@ func (c *GlobalOperationsGetCall) Do(opts ...googleapi.CallOption) (*Operation, }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.globalForwardingRules.insert", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type GlobalOperationsListCall struct { +type GlobalForwardingRulesListCall struct { s *Service project string urlParams_ gensupport.URLParams @@ -17271,90 +20589,141 @@ type GlobalOperationsListCall struct { header_ http.Header } -// List: Retrieves a list of Operation resources contained within the specified -// project. +// List: Retrieves a list of GlobalForwardingRule resources available to +// the +// specified project. // // - project: Project ID for this request. -func (r *GlobalOperationsService) List(project string) *GlobalOperationsListCall { - c := &GlobalOperationsListCall{s: r.s, urlParams_: make(gensupport.URLParams)} +func (r *GlobalForwardingRulesService) List(project string) *GlobalForwardingRulesListCall { + c := &GlobalForwardingRulesListCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project return c } // Filter sets the optional parameter "filter": A filter expression that -// filters resources listed in the response. Most Compute resources support two -// types of filter expressions: expressions that support regular expressions -// and expressions that follow API improvement proposal AIP-160. These two -// types of filter expressions cannot be mixed in one request. If you want to -// use AIP-160, your expression must specify the field name, an operator, and -// the value that you want to use for filtering. The value must be a string, a -// number, or a boolean. The 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`. The `:*` comparison can be used to test whether a key has -// been defined. For example, to find all objects with `owner` label use: ``` -// labels.owner:* ``` 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) ``` If you want to use a regular -// expression, use the `eq` (equal) or `ne` (not equal) operator against a -// single un-parenthesized expression with or without quotes or against -// multiple parenthesized expressions. Examples: `fieldname eq unquoted -// literal` `fieldname eq 'single quoted literal'` `fieldname eq "double quoted -// literal" `(fieldname1 eq literal) (fieldname2 ne "literal")` The literal -// value is interpreted as a regular expression using Google RE2 library -// syntax. The literal value must match the entire field. For example, to -// filter for instances that do not end with name "instance", you would use -// `name ne .*instance`. You cannot combine constraints on multiple fields -// using regular expressions. -func (c *GlobalOperationsListCall) Filter(filter string) *GlobalOperationsListCall { +// filters resources listed in the response. Most +// Compute resources support two types of filter expressions: +// expressions that support regular expressions and expressions that follow +// API improvement proposal AIP-160. +// These two types of filter expressions cannot be mixed in one request. +// +// If you want to use AIP-160, your expression must specify the field name, +// an +// operator, and the value that you want to use for filtering. The value +// must be a string, a number, or a boolean. The 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`. +// +// The `:*` comparison can be used to test whether a key has been defined. +// For example, to find all objects with `owner` label +// use: +// ``` +// labels.owner:* +// ``` +// +// 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 onresource 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) +// ``` +// +// If you want to use a regular expression, use the `eq` (equal) or `ne` +// (not equal) operator against a single un-parenthesized expression with +// or +// without quotes or against multiple parenthesized expressions. +// Examples: +// +// `fieldname eq unquoted literal` +// `fieldname eq 'single quoted literal'` +// `fieldname eq "double quoted literal" +// `(fieldname1 eq literal) (fieldname2 ne "literal")` +// +// The literal value is interpreted as a regular expression using GoogleRE2 +// library syntax. +// The literal value must match the entire field. +// +// For example, to filter for instances that do not end with name +// "instance", +// you would use `name ne .*instance`. +// +// You cannot combine constraints on multiple fields using regular +// expressions. +func (c *GlobalForwardingRulesListCall) Filter(filter string) *GlobalForwardingRulesListCall { 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 *GlobalOperationsListCall) MaxResults(maxResults int64) *GlobalOperationsListCall { +// 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 *GlobalForwardingRulesListCall) MaxResults(maxResults int64) *GlobalForwardingRulesListCall { 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 *GlobalOperationsListCall) OrderBy(orderBy string) *GlobalOperationsListCall { +// 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 *GlobalForwardingRulesListCall) OrderBy(orderBy string) *GlobalForwardingRulesListCall { 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 *GlobalOperationsListCall) PageToken(pageToken string) *GlobalOperationsListCall { +// use. Set `pageToken` to the +// `nextPageToken` returned by a previous list request to get +// the next page of results. +func (c *GlobalForwardingRulesListCall) PageToken(pageToken string) *GlobalForwardingRulesListCall { c.urlParams_.Set("pageToken", pageToken) return c } // ReturnPartialSuccess sets the optional parameter "returnPartialSuccess": -// Opt-in for partial success behavior which provides partial results in case -// of failure. The default value is false. For example, when partial success -// behavior is enabled, aggregatedList for a single zone scope either returns -// all resources in the zone or no resources, with an error code. -func (c *GlobalOperationsListCall) ReturnPartialSuccess(returnPartialSuccess bool) *GlobalOperationsListCall { +// Opt-in for partial success behavior which provides partial results in +// case +// of failure. The default value is false. +// +// For example, when partial success behavior is enabled, aggregatedList for +// a +// single zone scope either returns all resources in the zone or no +// resources, +// with an error code. +func (c *GlobalForwardingRulesListCall) ReturnPartialSuccess(returnPartialSuccess bool) *GlobalForwardingRulesListCall { c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess)) return c } @@ -17362,7 +20731,7 @@ func (c *GlobalOperationsListCall) ReturnPartialSuccess(returnPartialSuccess boo // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *GlobalOperationsListCall) Fields(s ...googleapi.Field) *GlobalOperationsListCall { +func (c *GlobalForwardingRulesListCall) Fields(s ...googleapi.Field) *GlobalForwardingRulesListCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } @@ -17370,37 +20739,36 @@ func (c *GlobalOperationsListCall) Fields(s ...googleapi.Field) *GlobalOperation // IfNoneMatch sets an 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. -func (c *GlobalOperationsListCall) IfNoneMatch(entityTag string) *GlobalOperationsListCall { +func (c *GlobalForwardingRulesListCall) IfNoneMatch(entityTag string) *GlobalForwardingRulesListCall { c.ifNoneMatch_ = entityTag return c } // Context sets the context to be used in this call's Do method. -func (c *GlobalOperationsListCall) Context(ctx context.Context) *GlobalOperationsListCall { +func (c *GlobalForwardingRulesListCall) Context(ctx context.Context) *GlobalForwardingRulesListCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *GlobalOperationsListCall) Header() http.Header { +func (c *GlobalForwardingRulesListCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *GlobalOperationsListCall) doRequest(alt string) (*http.Response, error) { +func (c *GlobalForwardingRulesListCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) if c.ifNoneMatch_ != "" { reqHeaders.Set("If-None-Match", c.ifNoneMatch_) } - var body io.Reader = nil c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/operations") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/forwardingRules") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("GET", urls, body) + req, err := http.NewRequest("GET", urls, nil) if err != nil { return nil, err } @@ -17408,15 +20776,17 @@ func (c *GlobalOperationsListCall) doRequest(alt string) (*http.Response, error) googleapi.Expand(req.URL, map[string]string{ "project": c.project, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.globalForwardingRules.list", "request", internallog.HTTPRequest(req, nil)) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.globalOperations.list" call. +// Do executes the "compute.globalForwardingRules.list" call. // Any non-2xx status code is an error. Response headers are in either -// *OperationList.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 *GlobalOperationsListCall) Do(opts ...googleapi.CallOption) (*OperationList, error) { +// *ForwardingRuleList.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 *GlobalForwardingRulesListCall) Do(opts ...googleapi.CallOption) (*ForwardingRuleList, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -17435,23 +20805,25 @@ func (c *GlobalOperationsListCall) Do(opts ...googleapi.CallOption) (*OperationL if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } - ret := &OperationList{ + ret := &ForwardingRuleList{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.globalForwardingRules.list", "response", internallog.HTTPResponse(res, b)) return ret, nil } // 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 *GlobalOperationsListCall) Pages(ctx context.Context, f func(*OperationList) error) error { +func (c *GlobalForwardingRulesListCall) Pages(ctx context.Context, f func(*ForwardingRuleList) error) error { c.ctx_ = ctx defer c.PageToken(c.urlParams_.Get("pageToken")) for { @@ -17469,84 +20841,107 @@ func (c *GlobalOperationsListCall) Pages(ctx context.Context, f func(*OperationL } } -type GlobalOperationsWaitCall struct { - s *Service - project string - operation string - urlParams_ gensupport.URLParams - ctx_ context.Context - header_ http.Header +type GlobalForwardingRulesPatchCall struct { + s *Service + project string + forwardingRule string + forwardingrule *ForwardingRule + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header } -// Wait: Waits for the specified Operation resource to return as `DONE` or for -// the request to approach the 2 minute deadline, and retrieves the specified -// Operation resource. This method differs from the `GET` method in that it -// waits for no more than the default deadline (2 minutes) and then returns the -// current state of the operation, which might be `DONE` or still in progress. -// This method is called on a best-effort basis. Specifically: - In uncommon -// cases, when the server is overloaded, the request might return before the -// default deadline is reached, or might return after zero seconds. - If the -// default deadline is reached, there is no guarantee that the operation is -// actually done when the method returns. Be prepared to retry if the operation -// is not `DONE`. +// Patch: Updates the specified forwarding rule with the data included in +// the +// request. This method supportsPATCH +// semantics and uses theJSON merge +// patch format and processing rules. Currently, you can only +// patch the network_tier field. // -// - operation: Name of the Operations resource to return. +// - forwardingRule: Name of the ForwardingRule resource to patch. // - project: Project ID for this request. -func (r *GlobalOperationsService) Wait(project string, operation string) *GlobalOperationsWaitCall { - c := &GlobalOperationsWaitCall{s: r.s, urlParams_: make(gensupport.URLParams)} +func (r *GlobalForwardingRulesService) Patch(project string, forwardingRule string, forwardingrule *ForwardingRule) *GlobalForwardingRulesPatchCall { + c := &GlobalForwardingRulesPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project - c.operation = operation + c.forwardingRule = forwardingRule + c.forwardingrule = forwardingrule + 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 *GlobalForwardingRulesPatchCall) RequestId(requestId string) *GlobalForwardingRulesPatchCall { + 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 // details. -func (c *GlobalOperationsWaitCall) Fields(s ...googleapi.Field) *GlobalOperationsWaitCall { +func (c *GlobalForwardingRulesPatchCall) Fields(s ...googleapi.Field) *GlobalForwardingRulesPatchCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } // Context sets the context to be used in this call's Do method. -func (c *GlobalOperationsWaitCall) Context(ctx context.Context) *GlobalOperationsWaitCall { +func (c *GlobalForwardingRulesPatchCall) Context(ctx context.Context) *GlobalForwardingRulesPatchCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *GlobalOperationsWaitCall) Header() http.Header { +func (c *GlobalForwardingRulesPatchCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *GlobalOperationsWaitCall) doRequest(alt string) (*http.Response, error) { - reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) - var body io.Reader = nil +func (c *GlobalForwardingRulesPatchCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) + body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.forwardingrule) + if err != nil { + return nil, err + } c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/operations/{operation}/wait") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/forwardingRules/{forwardingRule}") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("POST", urls, body) + req, err := http.NewRequest("PATCH", urls, body) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "operation": c.operation, + "project": c.project, + "forwardingRule": c.forwardingRule, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.globalForwardingRules.patch", "request", internallog.HTTPRequest(req, body.Bytes())) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.globalOperations.wait" call. +// Do executes the "compute.globalForwardingRules.patch" call. // 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 *GlobalOperationsWaitCall) Do(opts ...googleapi.CallOption) (*Operation, error) { +func (c *GlobalForwardingRulesPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -17572,173 +20967,223 @@ func (c *GlobalOperationsWaitCall) Do(opts ...googleapi.CallOption) (*Operation, }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.globalForwardingRules.patch", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type GlobalOrganizationOperationsDeleteCall struct { - s *Service - operation string - urlParams_ gensupport.URLParams - ctx_ context.Context - header_ http.Header +type GlobalForwardingRulesSetLabelsCall struct { + s *Service + project string + resource string + globalsetlabelsrequest *GlobalSetLabelsRequest + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header } -// Delete: Deletes the specified Operations resource. +// SetLabels: Sets the labels on the specified resource. To learn more about +// labels, +// read the +// Labeling resources documentation. // -// - operation: Name of the Operations resource to delete. -func (r *GlobalOrganizationOperationsService) Delete(operation string) *GlobalOrganizationOperationsDeleteCall { - c := &GlobalOrganizationOperationsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)} - c.operation = operation - return c -} - -// ParentId sets the optional parameter "parentId": Parent ID for this request. -func (c *GlobalOrganizationOperationsDeleteCall) ParentId(parentId string) *GlobalOrganizationOperationsDeleteCall { - c.urlParams_.Set("parentId", parentId) +// - project: Project ID for this request. +// - resource: Name or id of the resource for this request. +func (r *GlobalForwardingRulesService) SetLabels(project string, resource string, globalsetlabelsrequest *GlobalSetLabelsRequest) *GlobalForwardingRulesSetLabelsCall { + c := &GlobalForwardingRulesSetLabelsCall{s: r.s, urlParams_: make(gensupport.URLParams)} + c.project = project + c.resource = resource + c.globalsetlabelsrequest = globalsetlabelsrequest return c } // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *GlobalOrganizationOperationsDeleteCall) Fields(s ...googleapi.Field) *GlobalOrganizationOperationsDeleteCall { +func (c *GlobalForwardingRulesSetLabelsCall) Fields(s ...googleapi.Field) *GlobalForwardingRulesSetLabelsCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } // Context sets the context to be used in this call's Do method. -func (c *GlobalOrganizationOperationsDeleteCall) Context(ctx context.Context) *GlobalOrganizationOperationsDeleteCall { +func (c *GlobalForwardingRulesSetLabelsCall) Context(ctx context.Context) *GlobalForwardingRulesSetLabelsCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *GlobalOrganizationOperationsDeleteCall) Header() http.Header { +func (c *GlobalForwardingRulesSetLabelsCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *GlobalOrganizationOperationsDeleteCall) doRequest(alt string) (*http.Response, error) { - reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) - var body io.Reader = nil +func (c *GlobalForwardingRulesSetLabelsCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) + body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.globalsetlabelsrequest) + if err != nil { + return nil, err + } c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "locations/global/operations/{operation}") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/forwardingRules/{resource}/setLabels") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("DELETE", urls, body) + req, err := http.NewRequest("POST", urls, body) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "operation": c.operation, + "project": c.project, + "resource": c.resource, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.globalForwardingRules.setLabels", "request", internallog.HTTPRequest(req, body.Bytes())) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.globalOrganizationOperations.delete" call. -func (c *GlobalOrganizationOperationsDeleteCall) Do(opts ...googleapi.CallOption) error { +// Do executes the "compute.globalForwardingRules.setLabels" call. +// 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 *GlobalForwardingRulesSetLabelsCall) 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, gensupport.WrapError(&googleapi.Error{ + Code: res.StatusCode, + Header: res.Header, + }) + } if err != nil { - return err + return nil, err } defer googleapi.CloseBody(res) if err := googleapi.CheckResponse(res); err != nil { - return gensupport.WrapError(err) + return nil, gensupport.WrapError(err) } - return nil + ret := &Operation{ + ServerResponse: googleapi.ServerResponse{ + Header: res.Header, + HTTPStatusCode: res.StatusCode, + }, + } + target := &ret + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { + return nil, err + } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.globalForwardingRules.setLabels", "response", internallog.HTTPResponse(res, b)) + return ret, nil } -type GlobalOrganizationOperationsGetCall struct { - s *Service - operation string - urlParams_ gensupport.URLParams - ifNoneMatch_ string - ctx_ context.Context - header_ http.Header +type GlobalForwardingRulesSetTargetCall struct { + s *Service + project string + forwardingRule string + targetreference *TargetReference + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header } -// Get: Retrieves the specified Operations resource. Gets a list of operations -// by making a `list()` request. +// SetTarget: Changes target URL for the GlobalForwardingRule resource. The new +// target +// should be of the same type as the old target. // -// - operation: Name of the Operations resource to return. -func (r *GlobalOrganizationOperationsService) Get(operation string) *GlobalOrganizationOperationsGetCall { - c := &GlobalOrganizationOperationsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)} - c.operation = operation +// - forwardingRule: Name of the ForwardingRule resource in which target is to +// be set. +// - project: Project ID for this request. +func (r *GlobalForwardingRulesService) SetTarget(project string, forwardingRule string, targetreference *TargetReference) *GlobalForwardingRulesSetTargetCall { + c := &GlobalForwardingRulesSetTargetCall{s: r.s, urlParams_: make(gensupport.URLParams)} + c.project = project + c.forwardingRule = forwardingRule + c.targetreference = targetreference return c } -// ParentId sets the optional parameter "parentId": Parent ID for this request. -func (c *GlobalOrganizationOperationsGetCall) ParentId(parentId string) *GlobalOrganizationOperationsGetCall { - c.urlParams_.Set("parentId", parentId) +// 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 *GlobalForwardingRulesSetTargetCall) RequestId(requestId string) *GlobalForwardingRulesSetTargetCall { + 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 // details. -func (c *GlobalOrganizationOperationsGetCall) Fields(s ...googleapi.Field) *GlobalOrganizationOperationsGetCall { +func (c *GlobalForwardingRulesSetTargetCall) Fields(s ...googleapi.Field) *GlobalForwardingRulesSetTargetCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } -// IfNoneMatch sets an 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. -func (c *GlobalOrganizationOperationsGetCall) IfNoneMatch(entityTag string) *GlobalOrganizationOperationsGetCall { - c.ifNoneMatch_ = entityTag - return c -} - // Context sets the context to be used in this call's Do method. -func (c *GlobalOrganizationOperationsGetCall) Context(ctx context.Context) *GlobalOrganizationOperationsGetCall { +func (c *GlobalForwardingRulesSetTargetCall) Context(ctx context.Context) *GlobalForwardingRulesSetTargetCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *GlobalOrganizationOperationsGetCall) Header() http.Header { +func (c *GlobalForwardingRulesSetTargetCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *GlobalOrganizationOperationsGetCall) doRequest(alt string) (*http.Response, error) { - reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) - if c.ifNoneMatch_ != "" { - reqHeaders.Set("If-None-Match", c.ifNoneMatch_) +func (c *GlobalForwardingRulesSetTargetCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) + body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.targetreference) + if err != nil { + return nil, err } - var body io.Reader = nil c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "locations/global/operations/{operation}") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/forwardingRules/{forwardingRule}/setTarget") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("GET", urls, body) + req, err := http.NewRequest("POST", urls, body) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "operation": c.operation, + "project": c.project, + "forwardingRule": c.forwardingRule, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.globalForwardingRules.setTarget", "request", internallog.HTTPRequest(req, body.Bytes())) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.globalOrganizationOperations.get" call. +// Do executes the "compute.globalForwardingRules.setTarget" call. // 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 *GlobalOrganizationOperationsGetCall) Do(opts ...googleapi.CallOption) (*Operation, error) { +func (c *GlobalForwardingRulesSetTargetCall) Do(opts ...googleapi.CallOption) (*Operation, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -17764,166 +21209,242 @@ func (c *GlobalOrganizationOperationsGetCall) Do(opts ...googleapi.CallOption) ( }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.globalForwardingRules.setTarget", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type GlobalOrganizationOperationsListCall struct { - s *Service - urlParams_ gensupport.URLParams - ifNoneMatch_ string - ctx_ context.Context - header_ http.Header +type GlobalNetworkEndpointGroupsAttachNetworkEndpointsCall struct { + s *Service + project string + networkEndpointGroup string + globalnetworkendpointgroupsattachendpointsrequest *GlobalNetworkEndpointGroupsAttachEndpointsRequest + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header } -// List: Retrieves a list of Operation resources contained within the specified -// organization. -func (r *GlobalOrganizationOperationsService) List() *GlobalOrganizationOperationsListCall { - c := &GlobalOrganizationOperationsListCall{s: r.s, urlParams_: make(gensupport.URLParams)} +// AttachNetworkEndpoints: Attach a network endpoint to the specified network +// endpoint group. +// +// - networkEndpointGroup: The name of the network endpoint group where you are +// attaching network +// +// endpoints to. It should comply with RFC1035. +// - project: Project ID for this request. +func (r *GlobalNetworkEndpointGroupsService) AttachNetworkEndpoints(project string, networkEndpointGroup string, globalnetworkendpointgroupsattachendpointsrequest *GlobalNetworkEndpointGroupsAttachEndpointsRequest) *GlobalNetworkEndpointGroupsAttachNetworkEndpointsCall { + c := &GlobalNetworkEndpointGroupsAttachNetworkEndpointsCall{s: r.s, urlParams_: make(gensupport.URLParams)} + c.project = project + c.networkEndpointGroup = networkEndpointGroup + c.globalnetworkendpointgroupsattachendpointsrequest = globalnetworkendpointgroupsattachendpointsrequest return c } -// Filter sets the optional parameter "filter": A filter expression that -// filters resources listed in the response. Most Compute resources support two -// types of filter expressions: expressions that support regular expressions -// and expressions that follow API improvement proposal AIP-160. These two -// types of filter expressions cannot be mixed in one request. If you want to -// use AIP-160, your expression must specify the field name, an operator, and -// the value that you want to use for filtering. The value must be a string, a -// number, or a boolean. The 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`. The `:*` comparison can be used to test whether a key has -// been defined. For example, to find all objects with `owner` label use: ``` -// labels.owner:* ``` 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) ``` If you want to use a regular -// expression, use the `eq` (equal) or `ne` (not equal) operator against a -// single un-parenthesized expression with or without quotes or against -// multiple parenthesized expressions. Examples: `fieldname eq unquoted -// literal` `fieldname eq 'single quoted literal'` `fieldname eq "double quoted -// literal" `(fieldname1 eq literal) (fieldname2 ne "literal")` The literal -// value is interpreted as a regular expression using Google RE2 library -// syntax. The literal value must match the entire field. For example, to -// filter for instances that do not end with name "instance", you would use -// `name ne .*instance`. You cannot combine constraints on multiple fields -// using regular expressions. -func (c *GlobalOrganizationOperationsListCall) Filter(filter string) *GlobalOrganizationOperationsListCall { - c.urlParams_.Set("filter", filter) +// 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 *GlobalNetworkEndpointGroupsAttachNetworkEndpointsCall) RequestId(requestId string) *GlobalNetworkEndpointGroupsAttachNetworkEndpointsCall { + c.urlParams_.Set("requestId", requestId) 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 *GlobalOrganizationOperationsListCall) MaxResults(maxResults int64) *GlobalOrganizationOperationsListCall { - c.urlParams_.Set("maxResults", fmt.Sprint(maxResults)) +// Fields allows partial responses to be retrieved. See +// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more +// details. +func (c *GlobalNetworkEndpointGroupsAttachNetworkEndpointsCall) Fields(s ...googleapi.Field) *GlobalNetworkEndpointGroupsAttachNetworkEndpointsCall { + c.urlParams_.Set("fields", googleapi.CombineFields(s)) 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 *GlobalOrganizationOperationsListCall) OrderBy(orderBy string) *GlobalOrganizationOperationsListCall { - c.urlParams_.Set("orderBy", orderBy) +// Context sets the context to be used in this call's Do method. +func (c *GlobalNetworkEndpointGroupsAttachNetworkEndpointsCall) Context(ctx context.Context) *GlobalNetworkEndpointGroupsAttachNetworkEndpointsCall { + c.ctx_ = ctx 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 *GlobalOrganizationOperationsListCall) PageToken(pageToken string) *GlobalOrganizationOperationsListCall { - c.urlParams_.Set("pageToken", pageToken) - return c +// Header returns a http.Header that can be modified by the caller to add +// headers to the request. +func (c *GlobalNetworkEndpointGroupsAttachNetworkEndpointsCall) Header() http.Header { + if c.header_ == nil { + c.header_ = make(http.Header) + } + return c.header_ } -// ParentId sets the optional parameter "parentId": Parent ID for this request. -func (c *GlobalOrganizationOperationsListCall) ParentId(parentId string) *GlobalOrganizationOperationsListCall { - c.urlParams_.Set("parentId", parentId) +func (c *GlobalNetworkEndpointGroupsAttachNetworkEndpointsCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) + body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.globalnetworkendpointgroupsattachendpointsrequest) + if err != nil { + return nil, err + } + c.urlParams_.Set("alt", alt) + c.urlParams_.Set("prettyPrint", "false") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/networkEndpointGroups/{networkEndpointGroup}/attachNetworkEndpoints") + urls += "?" + c.urlParams_.Encode() + req, err := http.NewRequest("POST", urls, body) + if err != nil { + return nil, err + } + req.Header = reqHeaders + googleapi.Expand(req.URL, map[string]string{ + "project": c.project, + "networkEndpointGroup": c.networkEndpointGroup, + }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.globalNetworkEndpointGroups.attachNetworkEndpoints", "request", internallog.HTTPRequest(req, body.Bytes())) + return gensupport.SendRequest(c.ctx_, c.s.client, req) +} + +// Do executes the "compute.globalNetworkEndpointGroups.attachNetworkEndpoints" call. +// 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 *GlobalNetworkEndpointGroupsAttachNetworkEndpointsCall) 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, gensupport.WrapError(&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, gensupport.WrapError(err) + } + ret := &Operation{ + ServerResponse: googleapi.ServerResponse{ + Header: res.Header, + HTTPStatusCode: res.StatusCode, + }, + } + target := &ret + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { + return nil, err + } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.globalNetworkEndpointGroups.attachNetworkEndpoints", "response", internallog.HTTPResponse(res, b)) + return ret, nil +} + +type GlobalNetworkEndpointGroupsDeleteCall struct { + s *Service + project string + networkEndpointGroup string + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header +} + +// Delete: Deletes the specified network endpoint group.Note that the NEG +// cannot be +// deleted if there are backend services referencing it. +// +// - networkEndpointGroup: The name of the network endpoint group to delete. It +// should comply with +// +// RFC1035. +// - project: Project ID for this request. +func (r *GlobalNetworkEndpointGroupsService) Delete(project string, networkEndpointGroup string) *GlobalNetworkEndpointGroupsDeleteCall { + c := &GlobalNetworkEndpointGroupsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)} + c.project = project + c.networkEndpointGroup = networkEndpointGroup return c } -// ReturnPartialSuccess sets the optional parameter "returnPartialSuccess": -// Opt-in for partial success behavior which provides partial results in case -// of failure. The default value is false. For example, when partial success -// behavior is enabled, aggregatedList for a single zone scope either returns -// all resources in the zone or no resources, with an error code. -func (c *GlobalOrganizationOperationsListCall) ReturnPartialSuccess(returnPartialSuccess bool) *GlobalOrganizationOperationsListCall { - c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess)) +// 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 *GlobalNetworkEndpointGroupsDeleteCall) RequestId(requestId string) *GlobalNetworkEndpointGroupsDeleteCall { + 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 // details. -func (c *GlobalOrganizationOperationsListCall) Fields(s ...googleapi.Field) *GlobalOrganizationOperationsListCall { +func (c *GlobalNetworkEndpointGroupsDeleteCall) Fields(s ...googleapi.Field) *GlobalNetworkEndpointGroupsDeleteCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } -// IfNoneMatch sets an 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. -func (c *GlobalOrganizationOperationsListCall) IfNoneMatch(entityTag string) *GlobalOrganizationOperationsListCall { - c.ifNoneMatch_ = entityTag - return c -} - // Context sets the context to be used in this call's Do method. -func (c *GlobalOrganizationOperationsListCall) Context(ctx context.Context) *GlobalOrganizationOperationsListCall { +func (c *GlobalNetworkEndpointGroupsDeleteCall) Context(ctx context.Context) *GlobalNetworkEndpointGroupsDeleteCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *GlobalOrganizationOperationsListCall) Header() http.Header { +func (c *GlobalNetworkEndpointGroupsDeleteCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *GlobalOrganizationOperationsListCall) doRequest(alt string) (*http.Response, error) { +func (c *GlobalNetworkEndpointGroupsDeleteCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) - if c.ifNoneMatch_ != "" { - reqHeaders.Set("If-None-Match", c.ifNoneMatch_) - } - var body io.Reader = nil c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "locations/global/operations") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/networkEndpointGroups/{networkEndpointGroup}") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("GET", urls, body) + req, err := http.NewRequest("DELETE", urls, nil) if err != nil { return nil, err } req.Header = reqHeaders + googleapi.Expand(req.URL, map[string]string{ + "project": c.project, + "networkEndpointGroup": c.networkEndpointGroup, + }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.globalNetworkEndpointGroups.delete", "request", internallog.HTTPRequest(req, nil)) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.globalOrganizationOperations.list" call. +// Do executes the "compute.globalNetworkEndpointGroups.delete" call. // Any non-2xx status code is an error. Response headers are in either -// *OperationList.ServerResponse.Header or (if a response was returned at all) -// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check +// *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 *GlobalOrganizationOperationsListCall) Do(opts ...googleapi.CallOption) (*OperationList, error) { +func (c *GlobalNetworkEndpointGroupsDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -17942,72 +21463,65 @@ func (c *GlobalOrganizationOperationsListCall) Do(opts ...googleapi.CallOption) if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } - ret := &OperationList{ + ret := &Operation{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.globalNetworkEndpointGroups.delete", "response", internallog.HTTPResponse(res, b)) return ret, nil } -// 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 *GlobalOrganizationOperationsListCall) Pages(ctx context.Context, f func(*OperationList) error) error { - c.ctx_ = ctx - defer c.PageToken(c.urlParams_.Get("pageToken")) - 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) - } -} - -type GlobalPublicDelegatedPrefixesDeleteCall struct { - s *Service - project string - publicDelegatedPrefix string - urlParams_ gensupport.URLParams - ctx_ context.Context - header_ http.Header +type GlobalNetworkEndpointGroupsDetachNetworkEndpointsCall struct { + s *Service + project string + networkEndpointGroup string + globalnetworkendpointgroupsdetachendpointsrequest *GlobalNetworkEndpointGroupsDetachEndpointsRequest + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header } -// Delete: Deletes the specified global PublicDelegatedPrefix. +// DetachNetworkEndpoints: Detach the network endpoint from the specified +// network endpoint group. // -// - project: Project ID for this request. -// - publicDelegatedPrefix: Name of the PublicDelegatedPrefix resource to -// delete. -func (r *GlobalPublicDelegatedPrefixesService) Delete(project string, publicDelegatedPrefix string) *GlobalPublicDelegatedPrefixesDeleteCall { - c := &GlobalPublicDelegatedPrefixesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)} +// - networkEndpointGroup: The name of the network endpoint group where you are +// removing network +// +// endpoints. It should comply with RFC1035. +// - project: Project ID for this request. +func (r *GlobalNetworkEndpointGroupsService) DetachNetworkEndpoints(project string, networkEndpointGroup string, globalnetworkendpointgroupsdetachendpointsrequest *GlobalNetworkEndpointGroupsDetachEndpointsRequest) *GlobalNetworkEndpointGroupsDetachNetworkEndpointsCall { + c := &GlobalNetworkEndpointGroupsDetachNetworkEndpointsCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project - c.publicDelegatedPrefix = publicDelegatedPrefix + c.networkEndpointGroup = networkEndpointGroup + c.globalnetworkendpointgroupsdetachendpointsrequest = globalnetworkendpointgroupsdetachendpointsrequest 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 *GlobalPublicDelegatedPrefixesDeleteCall) RequestId(requestId string) *GlobalPublicDelegatedPrefixesDeleteCall { +// 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 *GlobalNetworkEndpointGroupsDetachNetworkEndpointsCall) RequestId(requestId string) *GlobalNetworkEndpointGroupsDetachNetworkEndpointsCall { c.urlParams_.Set("requestId", requestId) return c } @@ -18015,51 +21529,55 @@ func (c *GlobalPublicDelegatedPrefixesDeleteCall) RequestId(requestId string) *G // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *GlobalPublicDelegatedPrefixesDeleteCall) Fields(s ...googleapi.Field) *GlobalPublicDelegatedPrefixesDeleteCall { +func (c *GlobalNetworkEndpointGroupsDetachNetworkEndpointsCall) Fields(s ...googleapi.Field) *GlobalNetworkEndpointGroupsDetachNetworkEndpointsCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } // Context sets the context to be used in this call's Do method. -func (c *GlobalPublicDelegatedPrefixesDeleteCall) Context(ctx context.Context) *GlobalPublicDelegatedPrefixesDeleteCall { +func (c *GlobalNetworkEndpointGroupsDetachNetworkEndpointsCall) Context(ctx context.Context) *GlobalNetworkEndpointGroupsDetachNetworkEndpointsCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *GlobalPublicDelegatedPrefixesDeleteCall) Header() http.Header { +func (c *GlobalNetworkEndpointGroupsDetachNetworkEndpointsCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *GlobalPublicDelegatedPrefixesDeleteCall) doRequest(alt string) (*http.Response, error) { - reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) - var body io.Reader = nil +func (c *GlobalNetworkEndpointGroupsDetachNetworkEndpointsCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) + body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.globalnetworkendpointgroupsdetachendpointsrequest) + if err != nil { + return nil, err + } c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/publicDelegatedPrefixes/{publicDelegatedPrefix}") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/networkEndpointGroups/{networkEndpointGroup}/detachNetworkEndpoints") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("DELETE", urls, body) + req, err := http.NewRequest("POST", urls, body) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "publicDelegatedPrefix": c.publicDelegatedPrefix, + "project": c.project, + "networkEndpointGroup": c.networkEndpointGroup, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.globalNetworkEndpointGroups.detachNetworkEndpoints", "request", internallog.HTTPRequest(req, body.Bytes())) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.globalPublicDelegatedPrefixes.delete" call. +// Do executes the "compute.globalNetworkEndpointGroups.detachNetworkEndpoints" call. // 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 *GlobalPublicDelegatedPrefixesDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) { +func (c *GlobalNetworkEndpointGroupsDetachNetworkEndpointsCall) Do(opts ...googleapi.CallOption) (*Operation, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -18085,38 +21603,40 @@ func (c *GlobalPublicDelegatedPrefixesDeleteCall) Do(opts ...googleapi.CallOptio }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.globalNetworkEndpointGroups.detachNetworkEndpoints", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type GlobalPublicDelegatedPrefixesGetCall struct { - s *Service - project string - publicDelegatedPrefix string - urlParams_ gensupport.URLParams - ifNoneMatch_ string - ctx_ context.Context - header_ http.Header +type GlobalNetworkEndpointGroupsGetCall struct { + s *Service + project string + networkEndpointGroup string + urlParams_ gensupport.URLParams + ifNoneMatch_ string + ctx_ context.Context + header_ http.Header } -// Get: Returns the specified global PublicDelegatedPrefix resource. +// Get: Returns the specified network endpoint group. // +// - networkEndpointGroup: The name of the network endpoint group. It should +// comply with RFC1035. // - project: Project ID for this request. -// - publicDelegatedPrefix: Name of the PublicDelegatedPrefix resource to -// return. -func (r *GlobalPublicDelegatedPrefixesService) Get(project string, publicDelegatedPrefix string) *GlobalPublicDelegatedPrefixesGetCall { - c := &GlobalPublicDelegatedPrefixesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)} +func (r *GlobalNetworkEndpointGroupsService) Get(project string, networkEndpointGroup string) *GlobalNetworkEndpointGroupsGetCall { + c := &GlobalNetworkEndpointGroupsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project - c.publicDelegatedPrefix = publicDelegatedPrefix + c.networkEndpointGroup = networkEndpointGroup return c } // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *GlobalPublicDelegatedPrefixesGetCall) Fields(s ...googleapi.Field) *GlobalPublicDelegatedPrefixesGetCall { +func (c *GlobalNetworkEndpointGroupsGetCall) Fields(s ...googleapi.Field) *GlobalNetworkEndpointGroupsGetCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } @@ -18124,55 +21644,55 @@ func (c *GlobalPublicDelegatedPrefixesGetCall) Fields(s ...googleapi.Field) *Glo // IfNoneMatch sets an 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. -func (c *GlobalPublicDelegatedPrefixesGetCall) IfNoneMatch(entityTag string) *GlobalPublicDelegatedPrefixesGetCall { +func (c *GlobalNetworkEndpointGroupsGetCall) IfNoneMatch(entityTag string) *GlobalNetworkEndpointGroupsGetCall { c.ifNoneMatch_ = entityTag return c } // Context sets the context to be used in this call's Do method. -func (c *GlobalPublicDelegatedPrefixesGetCall) Context(ctx context.Context) *GlobalPublicDelegatedPrefixesGetCall { +func (c *GlobalNetworkEndpointGroupsGetCall) Context(ctx context.Context) *GlobalNetworkEndpointGroupsGetCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *GlobalPublicDelegatedPrefixesGetCall) Header() http.Header { +func (c *GlobalNetworkEndpointGroupsGetCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *GlobalPublicDelegatedPrefixesGetCall) doRequest(alt string) (*http.Response, error) { +func (c *GlobalNetworkEndpointGroupsGetCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) if c.ifNoneMatch_ != "" { reqHeaders.Set("If-None-Match", c.ifNoneMatch_) } - var body io.Reader = nil c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/publicDelegatedPrefixes/{publicDelegatedPrefix}") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/networkEndpointGroups/{networkEndpointGroup}") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("GET", urls, body) + req, err := http.NewRequest("GET", urls, nil) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "publicDelegatedPrefix": c.publicDelegatedPrefix, + "project": c.project, + "networkEndpointGroup": c.networkEndpointGroup, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.globalNetworkEndpointGroups.get", "request", internallog.HTTPRequest(req, nil)) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.globalPublicDelegatedPrefixes.get" call. +// Do executes the "compute.globalNetworkEndpointGroups.get" call. // Any non-2xx status code is an error. Response headers are in either -// *PublicDelegatedPrefix.ServerResponse.Header or (if a response was returned +// *NetworkEndpointGroup.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 *GlobalPublicDelegatedPrefixesGetCall) Do(opts ...googleapi.CallOption) (*PublicDelegatedPrefix, error) { +func (c *GlobalNetworkEndpointGroupsGetCall) Do(opts ...googleapi.CallOption) (*NetworkEndpointGroup, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -18191,50 +21711,74 @@ func (c *GlobalPublicDelegatedPrefixesGetCall) Do(opts ...googleapi.CallOption) if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } - ret := &PublicDelegatedPrefix{ + ret := &NetworkEndpointGroup{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.globalNetworkEndpointGroups.get", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type GlobalPublicDelegatedPrefixesInsertCall struct { - s *Service - project string - publicdelegatedprefix *PublicDelegatedPrefix - urlParams_ gensupport.URLParams - ctx_ context.Context - header_ http.Header +type GlobalNetworkEndpointGroupsInsertCall struct { + s *Service + project string + networkendpointgroup *NetworkEndpointGroup + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header } -// Insert: Creates a global PublicDelegatedPrefix in the specified project -// using the parameters that are included in the request. +// Insert: Creates a network endpoint group in the specified project using +// the +// parameters that are included in the request. +// +// Note: Use the following APIs to manage network endpoint groups: +// +// - +// To manage NEGs with zonal scope (such as zonal NEGs, hybrid connectivity +// NEGs): zonal +// API +// - +// To manage NEGs with regional scope (such as regional internet NEGs, +// serverless NEGs, Private Service Connect NEGs): regional +// API +// - +// To manage NEGs with global scope (such as global internet NEGs):global +// API // // - project: Project ID for this request. -func (r *GlobalPublicDelegatedPrefixesService) Insert(project string, publicdelegatedprefix *PublicDelegatedPrefix) *GlobalPublicDelegatedPrefixesInsertCall { - c := &GlobalPublicDelegatedPrefixesInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)} +func (r *GlobalNetworkEndpointGroupsService) Insert(project string, networkendpointgroup *NetworkEndpointGroup) *GlobalNetworkEndpointGroupsInsertCall { + c := &GlobalNetworkEndpointGroupsInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project - c.publicdelegatedprefix = publicdelegatedprefix + c.networkendpointgroup = networkendpointgroup 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 *GlobalPublicDelegatedPrefixesInsertCall) RequestId(requestId string) *GlobalPublicDelegatedPrefixesInsertCall { +// 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 *GlobalNetworkEndpointGroupsInsertCall) RequestId(requestId string) *GlobalNetworkEndpointGroupsInsertCall { c.urlParams_.Set("requestId", requestId) return c } @@ -18242,36 +21786,35 @@ func (c *GlobalPublicDelegatedPrefixesInsertCall) RequestId(requestId string) *G // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *GlobalPublicDelegatedPrefixesInsertCall) Fields(s ...googleapi.Field) *GlobalPublicDelegatedPrefixesInsertCall { +func (c *GlobalNetworkEndpointGroupsInsertCall) Fields(s ...googleapi.Field) *GlobalNetworkEndpointGroupsInsertCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } // Context sets the context to be used in this call's Do method. -func (c *GlobalPublicDelegatedPrefixesInsertCall) Context(ctx context.Context) *GlobalPublicDelegatedPrefixesInsertCall { +func (c *GlobalNetworkEndpointGroupsInsertCall) Context(ctx context.Context) *GlobalNetworkEndpointGroupsInsertCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *GlobalPublicDelegatedPrefixesInsertCall) Header() http.Header { +func (c *GlobalNetworkEndpointGroupsInsertCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *GlobalPublicDelegatedPrefixesInsertCall) doRequest(alt string) (*http.Response, error) { +func (c *GlobalNetworkEndpointGroupsInsertCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) - var body io.Reader = nil - body, err := googleapi.WithoutDataWrapper.JSONReader(c.publicdelegatedprefix) + body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.networkendpointgroup) if err != nil { return nil, err } c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/publicDelegatedPrefixes") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/networkEndpointGroups") urls += "?" + c.urlParams_.Encode() req, err := http.NewRequest("POST", urls, body) if err != nil { @@ -18281,15 +21824,16 @@ func (c *GlobalPublicDelegatedPrefixesInsertCall) doRequest(alt string) (*http.R googleapi.Expand(req.URL, map[string]string{ "project": c.project, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.globalNetworkEndpointGroups.insert", "request", internallog.HTTPRequest(req, body.Bytes())) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.globalPublicDelegatedPrefixes.insert" call. +// Do executes the "compute.globalNetworkEndpointGroups.insert" call. // 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 *GlobalPublicDelegatedPrefixesInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) { +func (c *GlobalNetworkEndpointGroupsInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -18315,13 +21859,15 @@ func (c *GlobalPublicDelegatedPrefixesInsertCall) Do(opts ...googleapi.CallOptio }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.globalNetworkEndpointGroups.insert", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type GlobalPublicDelegatedPrefixesListCall struct { +type GlobalNetworkEndpointGroupsListCall struct { s *Service project string urlParams_ gensupport.URLParams @@ -18330,89 +21876,141 @@ type GlobalPublicDelegatedPrefixesListCall struct { header_ http.Header } -// List: Lists the global PublicDelegatedPrefixes for a project. +// List: Retrieves the list of network endpoint groups that are located in +// the +// specified project. // // - project: Project ID for this request. -func (r *GlobalPublicDelegatedPrefixesService) List(project string) *GlobalPublicDelegatedPrefixesListCall { - c := &GlobalPublicDelegatedPrefixesListCall{s: r.s, urlParams_: make(gensupport.URLParams)} +func (r *GlobalNetworkEndpointGroupsService) List(project string) *GlobalNetworkEndpointGroupsListCall { + c := &GlobalNetworkEndpointGroupsListCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project return c } // Filter sets the optional parameter "filter": A filter expression that -// filters resources listed in the response. Most Compute resources support two -// types of filter expressions: expressions that support regular expressions -// and expressions that follow API improvement proposal AIP-160. These two -// types of filter expressions cannot be mixed in one request. If you want to -// use AIP-160, your expression must specify the field name, an operator, and -// the value that you want to use for filtering. The value must be a string, a -// number, or a boolean. The 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`. The `:*` comparison can be used to test whether a key has -// been defined. For example, to find all objects with `owner` label use: ``` -// labels.owner:* ``` 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) ``` If you want to use a regular -// expression, use the `eq` (equal) or `ne` (not equal) operator against a -// single un-parenthesized expression with or without quotes or against -// multiple parenthesized expressions. Examples: `fieldname eq unquoted -// literal` `fieldname eq 'single quoted literal'` `fieldname eq "double quoted -// literal" `(fieldname1 eq literal) (fieldname2 ne "literal")` The literal -// value is interpreted as a regular expression using Google RE2 library -// syntax. The literal value must match the entire field. For example, to -// filter for instances that do not end with name "instance", you would use -// `name ne .*instance`. You cannot combine constraints on multiple fields -// using regular expressions. -func (c *GlobalPublicDelegatedPrefixesListCall) Filter(filter string) *GlobalPublicDelegatedPrefixesListCall { - 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 *GlobalPublicDelegatedPrefixesListCall) MaxResults(maxResults int64) *GlobalPublicDelegatedPrefixesListCall { +// filters resources listed in the response. Most +// Compute resources support two types of filter expressions: +// expressions that support regular expressions and expressions that follow +// API improvement proposal AIP-160. +// These two types of filter expressions cannot be mixed in one request. +// +// If you want to use AIP-160, your expression must specify the field name, +// an +// operator, and the value that you want to use for filtering. The value +// must be a string, a number, or a boolean. The 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`. +// +// The `:*` comparison can be used to test whether a key has been defined. +// For example, to find all objects with `owner` label +// use: +// ``` +// labels.owner:* +// ``` +// +// 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 onresource 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) +// ``` +// +// If you want to use a regular expression, use the `eq` (equal) or `ne` +// (not equal) operator against a single un-parenthesized expression with +// or +// without quotes or against multiple parenthesized expressions. +// Examples: +// +// `fieldname eq unquoted literal` +// `fieldname eq 'single quoted literal'` +// `fieldname eq "double quoted literal" +// `(fieldname1 eq literal) (fieldname2 ne "literal")` +// +// The literal value is interpreted as a regular expression using GoogleRE2 +// library syntax. +// The literal value must match the entire field. +// +// For example, to filter for instances that do not end with name +// "instance", +// you would use `name ne .*instance`. +// +// You cannot combine constraints on multiple fields using regular +// expressions. +func (c *GlobalNetworkEndpointGroupsListCall) Filter(filter string) *GlobalNetworkEndpointGroupsListCall { + 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 *GlobalNetworkEndpointGroupsListCall) MaxResults(maxResults int64) *GlobalNetworkEndpointGroupsListCall { 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 *GlobalPublicDelegatedPrefixesListCall) OrderBy(orderBy string) *GlobalPublicDelegatedPrefixesListCall { +// 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 *GlobalNetworkEndpointGroupsListCall) OrderBy(orderBy string) *GlobalNetworkEndpointGroupsListCall { 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 *GlobalPublicDelegatedPrefixesListCall) PageToken(pageToken string) *GlobalPublicDelegatedPrefixesListCall { +// use. Set `pageToken` to the +// `nextPageToken` returned by a previous list request to get +// the next page of results. +func (c *GlobalNetworkEndpointGroupsListCall) PageToken(pageToken string) *GlobalNetworkEndpointGroupsListCall { c.urlParams_.Set("pageToken", pageToken) return c } // ReturnPartialSuccess sets the optional parameter "returnPartialSuccess": -// Opt-in for partial success behavior which provides partial results in case -// of failure. The default value is false. For example, when partial success -// behavior is enabled, aggregatedList for a single zone scope either returns -// all resources in the zone or no resources, with an error code. -func (c *GlobalPublicDelegatedPrefixesListCall) ReturnPartialSuccess(returnPartialSuccess bool) *GlobalPublicDelegatedPrefixesListCall { +// Opt-in for partial success behavior which provides partial results in +// case +// of failure. The default value is false. +// +// For example, when partial success behavior is enabled, aggregatedList for +// a +// single zone scope either returns all resources in the zone or no +// resources, +// with an error code. +func (c *GlobalNetworkEndpointGroupsListCall) ReturnPartialSuccess(returnPartialSuccess bool) *GlobalNetworkEndpointGroupsListCall { c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess)) return c } @@ -18420,7 +22018,7 @@ func (c *GlobalPublicDelegatedPrefixesListCall) ReturnPartialSuccess(returnParti // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *GlobalPublicDelegatedPrefixesListCall) Fields(s ...googleapi.Field) *GlobalPublicDelegatedPrefixesListCall { +func (c *GlobalNetworkEndpointGroupsListCall) Fields(s ...googleapi.Field) *GlobalNetworkEndpointGroupsListCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } @@ -18428,37 +22026,36 @@ func (c *GlobalPublicDelegatedPrefixesListCall) Fields(s ...googleapi.Field) *Gl // IfNoneMatch sets an 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. -func (c *GlobalPublicDelegatedPrefixesListCall) IfNoneMatch(entityTag string) *GlobalPublicDelegatedPrefixesListCall { +func (c *GlobalNetworkEndpointGroupsListCall) IfNoneMatch(entityTag string) *GlobalNetworkEndpointGroupsListCall { c.ifNoneMatch_ = entityTag return c } // Context sets the context to be used in this call's Do method. -func (c *GlobalPublicDelegatedPrefixesListCall) Context(ctx context.Context) *GlobalPublicDelegatedPrefixesListCall { +func (c *GlobalNetworkEndpointGroupsListCall) Context(ctx context.Context) *GlobalNetworkEndpointGroupsListCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *GlobalPublicDelegatedPrefixesListCall) Header() http.Header { +func (c *GlobalNetworkEndpointGroupsListCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *GlobalPublicDelegatedPrefixesListCall) doRequest(alt string) (*http.Response, error) { +func (c *GlobalNetworkEndpointGroupsListCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) if c.ifNoneMatch_ != "" { reqHeaders.Set("If-None-Match", c.ifNoneMatch_) } - var body io.Reader = nil c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/publicDelegatedPrefixes") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/networkEndpointGroups") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("GET", urls, body) + req, err := http.NewRequest("GET", urls, nil) if err != nil { return nil, err } @@ -18466,16 +22063,17 @@ func (c *GlobalPublicDelegatedPrefixesListCall) doRequest(alt string) (*http.Res googleapi.Expand(req.URL, map[string]string{ "project": c.project, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.globalNetworkEndpointGroups.list", "request", internallog.HTTPRequest(req, nil)) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.globalPublicDelegatedPrefixes.list" call. +// Do executes the "compute.globalNetworkEndpointGroups.list" call. // Any non-2xx status code is an error. Response headers are in either -// *PublicDelegatedPrefixList.ServerResponse.Header or (if a response was +// *NetworkEndpointGroupList.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 *GlobalPublicDelegatedPrefixesListCall) Do(opts ...googleapi.CallOption) (*PublicDelegatedPrefixList, error) { +func (c *GlobalNetworkEndpointGroupsListCall) Do(opts ...googleapi.CallOption) (*NetworkEndpointGroupList, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -18494,23 +22092,25 @@ func (c *GlobalPublicDelegatedPrefixesListCall) Do(opts ...googleapi.CallOption) if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } - ret := &PublicDelegatedPrefixList{ + ret := &NetworkEndpointGroupList{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.globalNetworkEndpointGroups.list", "response", internallog.HTTPResponse(res, b)) return ret, nil } // 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 *GlobalPublicDelegatedPrefixesListCall) Pages(ctx context.Context, f func(*PublicDelegatedPrefixList) error) error { +func (c *GlobalNetworkEndpointGroupsListCall) Pages(ctx context.Context, f func(*NetworkEndpointGroupList) error) error { c.ctx_ = ctx defer c.PageToken(c.urlParams_.Get("pageToken")) for { @@ -18528,98 +22128,206 @@ func (c *GlobalPublicDelegatedPrefixesListCall) Pages(ctx context.Context, f fun } } -type GlobalPublicDelegatedPrefixesPatchCall struct { - s *Service - project string - publicDelegatedPrefix string - publicdelegatedprefix *PublicDelegatedPrefix - urlParams_ gensupport.URLParams - ctx_ context.Context - header_ http.Header +type GlobalNetworkEndpointGroupsListNetworkEndpointsCall struct { + s *Service + project string + networkEndpointGroup string + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header } -// Patch: Patches the specified global PublicDelegatedPrefix resource with the -// data included in the request. This method supports PATCH semantics and uses -// JSON merge patch format and processing rules. +// ListNetworkEndpoints: Lists the network endpoints in the specified network +// endpoint group. // +// - networkEndpointGroup: The name of the network endpoint group from which +// you want to generate a +// list of included network endpoints. It should comply with RFC1035. // - project: Project ID for this request. -// - publicDelegatedPrefix: Name of the PublicDelegatedPrefix resource to -// patch. -func (r *GlobalPublicDelegatedPrefixesService) Patch(project string, publicDelegatedPrefix string, publicdelegatedprefix *PublicDelegatedPrefix) *GlobalPublicDelegatedPrefixesPatchCall { - c := &GlobalPublicDelegatedPrefixesPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)} +func (r *GlobalNetworkEndpointGroupsService) ListNetworkEndpoints(project string, networkEndpointGroup string) *GlobalNetworkEndpointGroupsListNetworkEndpointsCall { + c := &GlobalNetworkEndpointGroupsListNetworkEndpointsCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project - c.publicDelegatedPrefix = publicDelegatedPrefix - c.publicdelegatedprefix = publicdelegatedprefix + c.networkEndpointGroup = networkEndpointGroup 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 *GlobalPublicDelegatedPrefixesPatchCall) RequestId(requestId string) *GlobalPublicDelegatedPrefixesPatchCall { - c.urlParams_.Set("requestId", requestId) +// Filter sets the optional parameter "filter": A filter expression that +// filters resources listed in the response. Most +// Compute resources support two types of filter expressions: +// expressions that support regular expressions and expressions that follow +// API improvement proposal AIP-160. +// These two types of filter expressions cannot be mixed in one request. +// +// If you want to use AIP-160, your expression must specify the field name, +// an +// operator, and the value that you want to use for filtering. The value +// must be a string, a number, or a boolean. The 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`. +// +// The `:*` comparison can be used to test whether a key has been defined. +// For example, to find all objects with `owner` label +// use: +// ``` +// labels.owner:* +// ``` +// +// 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 onresource 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) +// ``` +// +// If you want to use a regular expression, use the `eq` (equal) or `ne` +// (not equal) operator against a single un-parenthesized expression with +// or +// without quotes or against multiple parenthesized expressions. +// Examples: +// +// `fieldname eq unquoted literal` +// `fieldname eq 'single quoted literal'` +// `fieldname eq "double quoted literal" +// `(fieldname1 eq literal) (fieldname2 ne "literal")` +// +// The literal value is interpreted as a regular expression using GoogleRE2 +// library syntax. +// The literal value must match the entire field. +// +// For example, to filter for instances that do not end with name +// "instance", +// you would use `name ne .*instance`. +// +// You cannot combine constraints on multiple fields using regular +// expressions. +func (c *GlobalNetworkEndpointGroupsListNetworkEndpointsCall) Filter(filter string) *GlobalNetworkEndpointGroupsListNetworkEndpointsCall { + 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 *GlobalNetworkEndpointGroupsListNetworkEndpointsCall) MaxResults(maxResults int64) *GlobalNetworkEndpointGroupsListNetworkEndpointsCall { + 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 *GlobalNetworkEndpointGroupsListNetworkEndpointsCall) OrderBy(orderBy string) *GlobalNetworkEndpointGroupsListNetworkEndpointsCall { + 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 *GlobalNetworkEndpointGroupsListNetworkEndpointsCall) PageToken(pageToken string) *GlobalNetworkEndpointGroupsListNetworkEndpointsCall { + c.urlParams_.Set("pageToken", pageToken) + return c +} + +// ReturnPartialSuccess sets the optional parameter "returnPartialSuccess": +// Opt-in for partial success behavior which provides partial results in +// case +// of failure. The default value is false. +// +// For example, when partial success behavior is enabled, aggregatedList for +// a +// single zone scope either returns all resources in the zone or no +// resources, +// with an error code. +func (c *GlobalNetworkEndpointGroupsListNetworkEndpointsCall) ReturnPartialSuccess(returnPartialSuccess bool) *GlobalNetworkEndpointGroupsListNetworkEndpointsCall { + c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess)) return c } // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *GlobalPublicDelegatedPrefixesPatchCall) Fields(s ...googleapi.Field) *GlobalPublicDelegatedPrefixesPatchCall { +func (c *GlobalNetworkEndpointGroupsListNetworkEndpointsCall) Fields(s ...googleapi.Field) *GlobalNetworkEndpointGroupsListNetworkEndpointsCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } // Context sets the context to be used in this call's Do method. -func (c *GlobalPublicDelegatedPrefixesPatchCall) Context(ctx context.Context) *GlobalPublicDelegatedPrefixesPatchCall { +func (c *GlobalNetworkEndpointGroupsListNetworkEndpointsCall) Context(ctx context.Context) *GlobalNetworkEndpointGroupsListNetworkEndpointsCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *GlobalPublicDelegatedPrefixesPatchCall) Header() http.Header { +func (c *GlobalNetworkEndpointGroupsListNetworkEndpointsCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *GlobalPublicDelegatedPrefixesPatchCall) doRequest(alt string) (*http.Response, error) { - reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) - var body io.Reader = nil - body, err := googleapi.WithoutDataWrapper.JSONReader(c.publicdelegatedprefix) - if err != nil { - return nil, err - } +func (c *GlobalNetworkEndpointGroupsListNetworkEndpointsCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/publicDelegatedPrefixes/{publicDelegatedPrefix}") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/networkEndpointGroups/{networkEndpointGroup}/listNetworkEndpoints") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("PATCH", urls, body) + req, err := http.NewRequest("POST", urls, nil) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "publicDelegatedPrefix": c.publicDelegatedPrefix, + "project": c.project, + "networkEndpointGroup": c.networkEndpointGroup, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.globalNetworkEndpointGroups.listNetworkEndpoints", "request", internallog.HTTPRequest(req, nil)) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.globalPublicDelegatedPrefixes.patch" call. +// Do executes the "compute.globalNetworkEndpointGroups.listNetworkEndpoints" call. // 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 *GlobalPublicDelegatedPrefixesPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) { +// *NetworkEndpointGroupsListNetworkEndpoints.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 *GlobalNetworkEndpointGroupsListNetworkEndpointsCall) Do(opts ...googleapi.CallOption) (*NetworkEndpointGroupsListNetworkEndpoints, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -18638,20 +22346,43 @@ func (c *GlobalPublicDelegatedPrefixesPatchCall) Do(opts ...googleapi.CallOption if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } - ret := &Operation{ + ret := &NetworkEndpointGroupsListNetworkEndpoints{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.globalNetworkEndpointGroups.listNetworkEndpoints", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type HealthChecksAggregatedListCall struct { +// 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 *GlobalNetworkEndpointGroupsListNetworkEndpointsCall) Pages(ctx context.Context, f func(*NetworkEndpointGroupsListNetworkEndpoints) error) error { + c.ctx_ = ctx + defer c.PageToken(c.urlParams_.Get("pageToken")) + 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) + } +} + +type GlobalOperationsAggregatedListCall struct { s *Service project string urlParams_ gensupport.URLParams @@ -18660,112 +22391,169 @@ type HealthChecksAggregatedListCall struct { header_ http.Header } -// AggregatedList: Retrieves the list of all HealthCheck resources, regional -// and global, available to the specified project. To prevent failure, Google -// recommends that you set the `returnPartialSuccess` parameter to `true`. +// AggregatedList: Retrieves an aggregated list of all operations. // -// - project: Name of the project scoping this request. -func (r *HealthChecksService) AggregatedList(project string) *HealthChecksAggregatedListCall { - c := &HealthChecksAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)} +// To prevent failure, Google recommends that you set +// the +// `returnPartialSuccess` parameter to `true`. +// +// - project: Project ID for this request. +func (r *GlobalOperationsService) AggregatedList(project string) *GlobalOperationsAggregatedListCall { + c := &GlobalOperationsAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project return c } // Filter sets the optional parameter "filter": A filter expression that -// filters resources listed in the response. Most Compute resources support two -// types of filter expressions: expressions that support regular expressions -// and expressions that follow API improvement proposal AIP-160. These two -// types of filter expressions cannot be mixed in one request. If you want to -// use AIP-160, your expression must specify the field name, an operator, and -// the value that you want to use for filtering. The value must be a string, a -// number, or a boolean. The 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`. The `:*` comparison can be used to test whether a key has -// been defined. For example, to find all objects with `owner` label use: ``` -// labels.owner:* ``` 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) ``` If you want to use a regular -// expression, use the `eq` (equal) or `ne` (not equal) operator against a -// single un-parenthesized expression with or without quotes or against -// multiple parenthesized expressions. Examples: `fieldname eq unquoted -// literal` `fieldname eq 'single quoted literal'` `fieldname eq "double quoted -// literal" `(fieldname1 eq literal) (fieldname2 ne "literal")` The literal -// value is interpreted as a regular expression using Google RE2 library -// syntax. The literal value must match the entire field. For example, to -// filter for instances that do not end with name "instance", you would use -// `name ne .*instance`. You cannot combine constraints on multiple fields -// using regular expressions. -func (c *HealthChecksAggregatedListCall) Filter(filter string) *HealthChecksAggregatedListCall { +// filters resources listed in the response. Most +// Compute resources support two types of filter expressions: +// expressions that support regular expressions and expressions that follow +// API improvement proposal AIP-160. +// These two types of filter expressions cannot be mixed in one request. +// +// If you want to use AIP-160, your expression must specify the field name, +// an +// operator, and the value that you want to use for filtering. The value +// must be a string, a number, or a boolean. The 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`. +// +// The `:*` comparison can be used to test whether a key has been defined. +// For example, to find all objects with `owner` label +// use: +// ``` +// labels.owner:* +// ``` +// +// 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 onresource 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) +// ``` +// +// If you want to use a regular expression, use the `eq` (equal) or `ne` +// (not equal) operator against a single un-parenthesized expression with +// or +// without quotes or against multiple parenthesized expressions. +// Examples: +// +// `fieldname eq unquoted literal` +// `fieldname eq 'single quoted literal'` +// `fieldname eq "double quoted literal" +// `(fieldname1 eq literal) (fieldname2 ne "literal")` +// +// The literal value is interpreted as a regular expression using GoogleRE2 +// library syntax. +// The literal value must match the entire field. +// +// For example, to filter for instances that do not end with name +// "instance", +// you would use `name ne .*instance`. +// +// You cannot combine constraints on multiple fields using regular +// expressions. +func (c *GlobalOperationsAggregatedListCall) Filter(filter string) *GlobalOperationsAggregatedListCall { c.urlParams_.Set("filter", filter) return c } // IncludeAllScopes sets the optional parameter "includeAllScopes": Indicates -// whether every visible scope for each scope type (zone, region, global) -// should be included in the response. For new resource types added after this -// field, the flag has no effect as new resource types will always include -// every visible scope for each scope type in response. For resource types -// which predate this field, if this flag is omitted or false, only scopes of -// the scope types where the resource type is expected to be found will be -// included. -func (c *HealthChecksAggregatedListCall) IncludeAllScopes(includeAllScopes bool) *HealthChecksAggregatedListCall { +// whether every visible scope for each scope type (zone, region, +// global) should be included in the response. For new resource types +// added +// after this field, the flag has no effect as new resource types will +// always +// include every visible scope for each scope type in response. For +// resource +// types which predate this field, if this flag is omitted or false, +// only +// scopes of the scope types where the resource type is expected to be +// found +// will be included. +func (c *GlobalOperationsAggregatedListCall) IncludeAllScopes(includeAllScopes bool) *GlobalOperationsAggregatedListCall { c.urlParams_.Set("includeAllScopes", fmt.Sprint(includeAllScopes)) 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 *HealthChecksAggregatedListCall) MaxResults(maxResults int64) *HealthChecksAggregatedListCall { +// 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 *GlobalOperationsAggregatedListCall) MaxResults(maxResults int64) *GlobalOperationsAggregatedListCall { 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 *HealthChecksAggregatedListCall) OrderBy(orderBy string) *HealthChecksAggregatedListCall { +// 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 *GlobalOperationsAggregatedListCall) OrderBy(orderBy string) *GlobalOperationsAggregatedListCall { 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 *HealthChecksAggregatedListCall) PageToken(pageToken string) *HealthChecksAggregatedListCall { +// use. Set `pageToken` to the +// `nextPageToken` returned by a previous list request to get +// the next page of results. +func (c *GlobalOperationsAggregatedListCall) PageToken(pageToken string) *GlobalOperationsAggregatedListCall { c.urlParams_.Set("pageToken", pageToken) return c } // ReturnPartialSuccess sets the optional parameter "returnPartialSuccess": -// Opt-in for partial success behavior which provides partial results in case -// of failure. The default value is false. For example, when partial success -// behavior is enabled, aggregatedList for a single zone scope either returns -// all resources in the zone or no resources, with an error code. -func (c *HealthChecksAggregatedListCall) ReturnPartialSuccess(returnPartialSuccess bool) *HealthChecksAggregatedListCall { +// Opt-in for partial success behavior which provides partial results in +// case +// of failure. The default value is false. +// +// For example, when partial success behavior is enabled, aggregatedList for +// a +// single zone scope either returns all resources in the zone or no +// resources, +// with an error code. +func (c *GlobalOperationsAggregatedListCall) ReturnPartialSuccess(returnPartialSuccess bool) *GlobalOperationsAggregatedListCall { c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess)) return c } // ServiceProjectNumber sets the optional parameter "serviceProjectNumber": The -// Shared VPC service project id or service project number for which aggregated -// list request is invoked for subnetworks list-usable api. -func (c *HealthChecksAggregatedListCall) ServiceProjectNumber(serviceProjectNumber int64) *HealthChecksAggregatedListCall { +// Shared VPC service project id or service project number for which +// aggregated list request is invoked for subnetworks list-usable api. +func (c *GlobalOperationsAggregatedListCall) ServiceProjectNumber(serviceProjectNumber int64) *GlobalOperationsAggregatedListCall { c.urlParams_.Set("serviceProjectNumber", fmt.Sprint(serviceProjectNumber)) return c } @@ -18773,7 +22561,7 @@ func (c *HealthChecksAggregatedListCall) ServiceProjectNumber(serviceProjectNumb // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *HealthChecksAggregatedListCall) Fields(s ...googleapi.Field) *HealthChecksAggregatedListCall { +func (c *GlobalOperationsAggregatedListCall) Fields(s ...googleapi.Field) *GlobalOperationsAggregatedListCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } @@ -18781,37 +22569,36 @@ func (c *HealthChecksAggregatedListCall) Fields(s ...googleapi.Field) *HealthChe // IfNoneMatch sets an 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. -func (c *HealthChecksAggregatedListCall) IfNoneMatch(entityTag string) *HealthChecksAggregatedListCall { +func (c *GlobalOperationsAggregatedListCall) IfNoneMatch(entityTag string) *GlobalOperationsAggregatedListCall { c.ifNoneMatch_ = entityTag return c } // Context sets the context to be used in this call's Do method. -func (c *HealthChecksAggregatedListCall) Context(ctx context.Context) *HealthChecksAggregatedListCall { +func (c *GlobalOperationsAggregatedListCall) Context(ctx context.Context) *GlobalOperationsAggregatedListCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *HealthChecksAggregatedListCall) Header() http.Header { +func (c *GlobalOperationsAggregatedListCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *HealthChecksAggregatedListCall) doRequest(alt string) (*http.Response, error) { +func (c *GlobalOperationsAggregatedListCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) if c.ifNoneMatch_ != "" { reqHeaders.Set("If-None-Match", c.ifNoneMatch_) } - var body io.Reader = nil c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/aggregated/healthChecks") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/aggregated/operations") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("GET", urls, body) + req, err := http.NewRequest("GET", urls, nil) if err != nil { return nil, err } @@ -18819,16 +22606,17 @@ func (c *HealthChecksAggregatedListCall) doRequest(alt string) (*http.Response, googleapi.Expand(req.URL, map[string]string{ "project": c.project, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.globalOperations.aggregatedList", "request", internallog.HTTPRequest(req, nil)) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.healthChecks.aggregatedList" call. +// Do executes the "compute.globalOperations.aggregatedList" call. // Any non-2xx status code is an error. Response headers are in either -// *HealthChecksAggregatedList.ServerResponse.Header or (if a response was +// *OperationAggregatedList.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 *HealthChecksAggregatedListCall) Do(opts ...googleapi.CallOption) (*HealthChecksAggregatedList, error) { +func (c *GlobalOperationsAggregatedListCall) Do(opts ...googleapi.CallOption) (*OperationAggregatedList, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -18847,23 +22635,25 @@ func (c *HealthChecksAggregatedListCall) Do(opts ...googleapi.CallOption) (*Heal if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } - ret := &HealthChecksAggregatedList{ + ret := &OperationAggregatedList{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.globalOperations.aggregatedList", "response", internallog.HTTPResponse(res, b)) return ret, nil } // 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 *HealthChecksAggregatedListCall) Pages(ctx context.Context, f func(*HealthChecksAggregatedList) error) error { +func (c *GlobalOperationsAggregatedListCall) Pages(ctx context.Context, f func(*OperationAggregatedList) error) error { c.ctx_ = ctx defer c.PageToken(c.urlParams_.Get("pageToken")) for { @@ -18881,145 +22671,114 @@ func (c *HealthChecksAggregatedListCall) Pages(ctx context.Context, f func(*Heal } } -type HealthChecksDeleteCall struct { +type GlobalOperationsDeleteCall struct { s *Service project string - healthCheck string + operationid string urlParams_ gensupport.URLParams ctx_ context.Context header_ http.Header } -// Delete: Deletes the specified HealthCheck resource. +// Delete: Deletes the specified Operations resource. // -// - healthCheck: Name of the HealthCheck resource to delete. +// - operation: Name of the Operations resource to delete, or its unique +// numeric +// +// identifier. // - project: Project ID for this request. -func (r *HealthChecksService) Delete(project string, healthCheck string) *HealthChecksDeleteCall { - c := &HealthChecksDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)} +func (r *GlobalOperationsService) Delete(project string, operationid string) *GlobalOperationsDeleteCall { + c := &GlobalOperationsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project - c.healthCheck = healthCheck - 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 *HealthChecksDeleteCall) RequestId(requestId string) *HealthChecksDeleteCall { - c.urlParams_.Set("requestId", requestId) + c.operationid = operationid return c } // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *HealthChecksDeleteCall) Fields(s ...googleapi.Field) *HealthChecksDeleteCall { +func (c *GlobalOperationsDeleteCall) Fields(s ...googleapi.Field) *GlobalOperationsDeleteCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } // Context sets the context to be used in this call's Do method. -func (c *HealthChecksDeleteCall) Context(ctx context.Context) *HealthChecksDeleteCall { +func (c *GlobalOperationsDeleteCall) Context(ctx context.Context) *GlobalOperationsDeleteCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *HealthChecksDeleteCall) Header() http.Header { +func (c *GlobalOperationsDeleteCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *HealthChecksDeleteCall) doRequest(alt string) (*http.Response, error) { +func (c *GlobalOperationsDeleteCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) - var body io.Reader = nil c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/healthChecks/{healthCheck}") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/operations/{operation}") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("DELETE", urls, body) + req, err := http.NewRequest("DELETE", urls, nil) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "healthCheck": c.healthCheck, + "project": c.project, + "operation": c.operationid, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.globalOperations.delete", "request", internallog.HTTPRequest(req, nil)) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.healthChecks.delete" call. -// 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 *HealthChecksDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) { +// Do executes the "compute.globalOperations.delete" call. +func (c *GlobalOperationsDeleteCall) Do(opts ...googleapi.CallOption) 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, gensupport.WrapError(&googleapi.Error{ - Code: res.StatusCode, - Header: res.Header, - }) - } if err != nil { - return nil, err + return err } defer googleapi.CloseBody(res) if err := googleapi.CheckResponse(res); err != nil { - return nil, gensupport.WrapError(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 gensupport.WrapError(err) } - return ret, nil + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.globalOperations.delete", "response", internallog.HTTPResponse(res, nil)) + return nil } -type HealthChecksGetCall struct { +type GlobalOperationsGetCall struct { s *Service project string - healthCheck string + operationid string urlParams_ gensupport.URLParams ifNoneMatch_ string ctx_ context.Context header_ http.Header } -// Get: Returns the specified HealthCheck resource. +// Get: Retrieves the specified Operations resource. // -// - healthCheck: Name of the HealthCheck resource to return. +// - operation: Name of the Operations resource to return, or its unique +// numeric +// +// identifier. // - project: Project ID for this request. -func (r *HealthChecksService) Get(project string, healthCheck string) *HealthChecksGetCall { - c := &HealthChecksGetCall{s: r.s, urlParams_: make(gensupport.URLParams)} +func (r *GlobalOperationsService) Get(project string, operationid string) *GlobalOperationsGetCall { + c := &GlobalOperationsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project - c.healthCheck = healthCheck + c.operationid = operationid return c } // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *HealthChecksGetCall) Fields(s ...googleapi.Field) *HealthChecksGetCall { +func (c *GlobalOperationsGetCall) Fields(s ...googleapi.Field) *GlobalOperationsGetCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } @@ -19027,171 +22786,54 @@ func (c *HealthChecksGetCall) Fields(s ...googleapi.Field) *HealthChecksGetCall // IfNoneMatch sets an 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. -func (c *HealthChecksGetCall) IfNoneMatch(entityTag string) *HealthChecksGetCall { +func (c *GlobalOperationsGetCall) IfNoneMatch(entityTag string) *GlobalOperationsGetCall { c.ifNoneMatch_ = entityTag return c } // Context sets the context to be used in this call's Do method. -func (c *HealthChecksGetCall) Context(ctx context.Context) *HealthChecksGetCall { +func (c *GlobalOperationsGetCall) Context(ctx context.Context) *GlobalOperationsGetCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *HealthChecksGetCall) Header() http.Header { +func (c *GlobalOperationsGetCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *HealthChecksGetCall) doRequest(alt string) (*http.Response, error) { +func (c *GlobalOperationsGetCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) if c.ifNoneMatch_ != "" { reqHeaders.Set("If-None-Match", c.ifNoneMatch_) } - var body io.Reader = nil - c.urlParams_.Set("alt", alt) - c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/healthChecks/{healthCheck}") - urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("GET", urls, body) - if err != nil { - return nil, err - } - req.Header = reqHeaders - googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "healthCheck": c.healthCheck, - }) - return gensupport.SendRequest(c.ctx_, c.s.client, req) -} - -// Do executes the "compute.healthChecks.get" call. -// Any non-2xx status code is an error. Response headers are in either -// *HealthCheck.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 *HealthChecksGetCall) Do(opts ...googleapi.CallOption) (*HealthCheck, 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, gensupport.WrapError(&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, gensupport.WrapError(err) - } - ret := &HealthCheck{ - 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 -} - -type HealthChecksInsertCall struct { - s *Service - project string - healthcheck *HealthCheck - urlParams_ gensupport.URLParams - ctx_ context.Context - header_ http.Header -} - -// Insert: Creates a HealthCheck resource in the specified project using the -// data included in the request. -// -// - project: Project ID for this request. -func (r *HealthChecksService) Insert(project string, healthcheck *HealthCheck) *HealthChecksInsertCall { - c := &HealthChecksInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)} - c.project = project - c.healthcheck = healthcheck - 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 *HealthChecksInsertCall) RequestId(requestId string) *HealthChecksInsertCall { - 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 -// details. -func (c *HealthChecksInsertCall) Fields(s ...googleapi.Field) *HealthChecksInsertCall { - c.urlParams_.Set("fields", googleapi.CombineFields(s)) - return c -} - -// Context sets the context to be used in this call's Do method. -func (c *HealthChecksInsertCall) Context(ctx context.Context) *HealthChecksInsertCall { - c.ctx_ = ctx - return c -} - -// Header returns a http.Header that can be modified by the caller to add -// headers to the request. -func (c *HealthChecksInsertCall) Header() http.Header { - if c.header_ == nil { - c.header_ = make(http.Header) - } - return c.header_ -} - -func (c *HealthChecksInsertCall) doRequest(alt string) (*http.Response, error) { - reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) - var body io.Reader = nil - body, err := googleapi.WithoutDataWrapper.JSONReader(c.healthcheck) - if err != nil { - return nil, err - } c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/healthChecks") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/operations/{operation}") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("POST", urls, body) + req, err := http.NewRequest("GET", urls, nil) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, + "project": c.project, + "operation": c.operationid, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.globalOperations.get", "request", internallog.HTTPRequest(req, nil)) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.healthChecks.insert" call. +// Do executes the "compute.globalOperations.get" call. // 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 *HealthChecksInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) { +func (c *GlobalOperationsGetCall) Do(opts ...googleapi.CallOption) (*Operation, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -19217,13 +22859,15 @@ func (c *HealthChecksInsertCall) Do(opts ...googleapi.CallOption) (*Operation, e }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.globalOperations.get", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type HealthChecksListCall struct { +type GlobalOperationsListCall struct { s *Service project string urlParams_ gensupport.URLParams @@ -19232,90 +22876,141 @@ type HealthChecksListCall struct { header_ http.Header } -// List: Retrieves the list of HealthCheck resources available to the specified +// List: Retrieves a list of Operation resources contained within the +// specified // project. // // - project: Project ID for this request. -func (r *HealthChecksService) List(project string) *HealthChecksListCall { - c := &HealthChecksListCall{s: r.s, urlParams_: make(gensupport.URLParams)} +func (r *GlobalOperationsService) List(project string) *GlobalOperationsListCall { + c := &GlobalOperationsListCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project return c } // Filter sets the optional parameter "filter": A filter expression that -// filters resources listed in the response. Most Compute resources support two -// types of filter expressions: expressions that support regular expressions -// and expressions that follow API improvement proposal AIP-160. These two -// types of filter expressions cannot be mixed in one request. If you want to -// use AIP-160, your expression must specify the field name, an operator, and -// the value that you want to use for filtering. The value must be a string, a -// number, or a boolean. The 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`. The `:*` comparison can be used to test whether a key has -// been defined. For example, to find all objects with `owner` label use: ``` -// labels.owner:* ``` 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) ``` If you want to use a regular -// expression, use the `eq` (equal) or `ne` (not equal) operator against a -// single un-parenthesized expression with or without quotes or against -// multiple parenthesized expressions. Examples: `fieldname eq unquoted -// literal` `fieldname eq 'single quoted literal'` `fieldname eq "double quoted -// literal" `(fieldname1 eq literal) (fieldname2 ne "literal")` The literal -// value is interpreted as a regular expression using Google RE2 library -// syntax. The literal value must match the entire field. For example, to -// filter for instances that do not end with name "instance", you would use -// `name ne .*instance`. You cannot combine constraints on multiple fields -// using regular expressions. -func (c *HealthChecksListCall) Filter(filter string) *HealthChecksListCall { +// filters resources listed in the response. Most +// Compute resources support two types of filter expressions: +// expressions that support regular expressions and expressions that follow +// API improvement proposal AIP-160. +// These two types of filter expressions cannot be mixed in one request. +// +// If you want to use AIP-160, your expression must specify the field name, +// an +// operator, and the value that you want to use for filtering. The value +// must be a string, a number, or a boolean. The 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`. +// +// The `:*` comparison can be used to test whether a key has been defined. +// For example, to find all objects with `owner` label +// use: +// ``` +// labels.owner:* +// ``` +// +// 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 onresource 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) +// ``` +// +// If you want to use a regular expression, use the `eq` (equal) or `ne` +// (not equal) operator against a single un-parenthesized expression with +// or +// without quotes or against multiple parenthesized expressions. +// Examples: +// +// `fieldname eq unquoted literal` +// `fieldname eq 'single quoted literal'` +// `fieldname eq "double quoted literal" +// `(fieldname1 eq literal) (fieldname2 ne "literal")` +// +// The literal value is interpreted as a regular expression using GoogleRE2 +// library syntax. +// The literal value must match the entire field. +// +// For example, to filter for instances that do not end with name +// "instance", +// you would use `name ne .*instance`. +// +// You cannot combine constraints on multiple fields using regular +// expressions. +func (c *GlobalOperationsListCall) Filter(filter string) *GlobalOperationsListCall { 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 *HealthChecksListCall) MaxResults(maxResults int64) *HealthChecksListCall { +// 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 *GlobalOperationsListCall) MaxResults(maxResults int64) *GlobalOperationsListCall { 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 *HealthChecksListCall) OrderBy(orderBy string) *HealthChecksListCall { +// 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 *GlobalOperationsListCall) OrderBy(orderBy string) *GlobalOperationsListCall { 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 *HealthChecksListCall) PageToken(pageToken string) *HealthChecksListCall { +// use. Set `pageToken` to the +// `nextPageToken` returned by a previous list request to get +// the next page of results. +func (c *GlobalOperationsListCall) PageToken(pageToken string) *GlobalOperationsListCall { c.urlParams_.Set("pageToken", pageToken) return c } // ReturnPartialSuccess sets the optional parameter "returnPartialSuccess": -// Opt-in for partial success behavior which provides partial results in case -// of failure. The default value is false. For example, when partial success -// behavior is enabled, aggregatedList for a single zone scope either returns -// all resources in the zone or no resources, with an error code. -func (c *HealthChecksListCall) ReturnPartialSuccess(returnPartialSuccess bool) *HealthChecksListCall { +// Opt-in for partial success behavior which provides partial results in +// case +// of failure. The default value is false. +// +// For example, when partial success behavior is enabled, aggregatedList for +// a +// single zone scope either returns all resources in the zone or no +// resources, +// with an error code. +func (c *GlobalOperationsListCall) ReturnPartialSuccess(returnPartialSuccess bool) *GlobalOperationsListCall { c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess)) return c } @@ -19323,7 +23018,7 @@ func (c *HealthChecksListCall) ReturnPartialSuccess(returnPartialSuccess bool) * // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *HealthChecksListCall) Fields(s ...googleapi.Field) *HealthChecksListCall { +func (c *GlobalOperationsListCall) Fields(s ...googleapi.Field) *GlobalOperationsListCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } @@ -19331,37 +23026,36 @@ func (c *HealthChecksListCall) Fields(s ...googleapi.Field) *HealthChecksListCal // IfNoneMatch sets an 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. -func (c *HealthChecksListCall) IfNoneMatch(entityTag string) *HealthChecksListCall { +func (c *GlobalOperationsListCall) IfNoneMatch(entityTag string) *GlobalOperationsListCall { c.ifNoneMatch_ = entityTag return c } // Context sets the context to be used in this call's Do method. -func (c *HealthChecksListCall) Context(ctx context.Context) *HealthChecksListCall { +func (c *GlobalOperationsListCall) Context(ctx context.Context) *GlobalOperationsListCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *HealthChecksListCall) Header() http.Header { +func (c *GlobalOperationsListCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *HealthChecksListCall) doRequest(alt string) (*http.Response, error) { +func (c *GlobalOperationsListCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) if c.ifNoneMatch_ != "" { reqHeaders.Set("If-None-Match", c.ifNoneMatch_) } - var body io.Reader = nil c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/healthChecks") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/operations") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("GET", urls, body) + req, err := http.NewRequest("GET", urls, nil) if err != nil { return nil, err } @@ -19369,16 +23063,16 @@ func (c *HealthChecksListCall) doRequest(alt string) (*http.Response, error) { googleapi.Expand(req.URL, map[string]string{ "project": c.project, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.globalOperations.list", "request", internallog.HTTPRequest(req, nil)) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.healthChecks.list" call. +// Do executes the "compute.globalOperations.list" call. // Any non-2xx status code is an error. Response headers are in either -// *HealthCheckList.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 *HealthChecksListCall) Do(opts ...googleapi.CallOption) (*HealthCheckList, error) { +// *OperationList.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 *GlobalOperationsListCall) Do(opts ...googleapi.CallOption) (*OperationList, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -19397,23 +23091,25 @@ func (c *HealthChecksListCall) Do(opts ...googleapi.CallOption) (*HealthCheckLis if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } - ret := &HealthCheckList{ + ret := &OperationList{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.globalOperations.list", "response", internallog.HTTPResponse(res, b)) return ret, nil } // 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 *HealthChecksListCall) Pages(ctx context.Context, f func(*HealthCheckList) error) error { +func (c *GlobalOperationsListCall) Pages(ctx context.Context, f func(*OperationList) error) error { c.ctx_ = ctx defer c.PageToken(c.urlParams_.Get("pageToken")) for { @@ -19431,97 +23127,99 @@ func (c *HealthChecksListCall) Pages(ctx context.Context, f func(*HealthCheckLis } } -type HealthChecksPatchCall struct { +type GlobalOperationsWaitCall struct { s *Service project string - healthCheck string - healthcheck *HealthCheck + operationid string urlParams_ gensupport.URLParams ctx_ context.Context header_ http.Header } -// Patch: Updates a HealthCheck resource in the specified project using the -// data included in the request. This method supports PATCH semantics and uses -// the JSON merge patch format and processing rules. +// Wait: Waits for the specified Operation resource to return as `DONE` +// or for the request to approach the 2 minute deadline, and retrieves +// the +// specified Operation resource. This method differs from the +// `GET` method in that it waits for no more than the default +// deadline (2 minutes) and then returns the current state of the +// operation, +// which might be `DONE` or still in progress. // -// - healthCheck: Name of the HealthCheck resource to patch. +// This method is called on a best-effort basis. Specifically: +// +// - In uncommon cases, when the server is overloaded, the request might +// return before the default deadline is reached, or might return after +// +// zero +// +// seconds. +// - If the default deadline is reached, there is no guarantee that the +// operation is actually done when the method returns. Be prepared to +// +// retry +// +// if the operation is not `DONE`. +// +// - operation: Name of the Operations resource to return, or its unique +// numeric +// +// identifier. // - project: Project ID for this request. -func (r *HealthChecksService) Patch(project string, healthCheck string, healthcheck *HealthCheck) *HealthChecksPatchCall { - c := &HealthChecksPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)} +func (r *GlobalOperationsService) Wait(project string, operationid string) *GlobalOperationsWaitCall { + c := &GlobalOperationsWaitCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project - c.healthCheck = healthCheck - c.healthcheck = healthcheck - 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 *HealthChecksPatchCall) RequestId(requestId string) *HealthChecksPatchCall { - c.urlParams_.Set("requestId", requestId) + c.operationid = operationid return c } // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *HealthChecksPatchCall) Fields(s ...googleapi.Field) *HealthChecksPatchCall { +func (c *GlobalOperationsWaitCall) Fields(s ...googleapi.Field) *GlobalOperationsWaitCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } // Context sets the context to be used in this call's Do method. -func (c *HealthChecksPatchCall) Context(ctx context.Context) *HealthChecksPatchCall { +func (c *GlobalOperationsWaitCall) Context(ctx context.Context) *GlobalOperationsWaitCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *HealthChecksPatchCall) Header() http.Header { +func (c *GlobalOperationsWaitCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *HealthChecksPatchCall) doRequest(alt string) (*http.Response, error) { - reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) - var body io.Reader = nil - body, err := googleapi.WithoutDataWrapper.JSONReader(c.healthcheck) - if err != nil { - return nil, err - } +func (c *GlobalOperationsWaitCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/healthChecks/{healthCheck}") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/operations/{operation}/wait") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("PATCH", urls, body) + req, err := http.NewRequest("POST", urls, nil) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "healthCheck": c.healthCheck, + "project": c.project, + "operation": c.operationid, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.globalOperations.wait", "request", internallog.HTTPRequest(req, nil)) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.healthChecks.patch" call. +// Do executes the "compute.globalOperations.wait" call. // 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 *HealthChecksPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) { +func (c *GlobalOperationsWaitCall) Do(opts ...googleapi.CallOption) (*Operation, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -19547,216 +23245,184 @@ func (c *HealthChecksPatchCall) Do(opts ...googleapi.CallOption) (*Operation, er }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.globalOperations.wait", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type HealthChecksUpdateCall struct { +type GlobalOrganizationOperationsDeleteCall struct { s *Service - project string - healthCheck string - healthcheck *HealthCheck + operationid string urlParams_ gensupport.URLParams ctx_ context.Context header_ http.Header } -// Update: Updates a HealthCheck resource in the specified project using the -// data included in the request. +// Delete: Deletes the specified Operations resource. // -// - healthCheck: Name of the HealthCheck resource to update. -// - project: Project ID for this request. -func (r *HealthChecksService) Update(project string, healthCheck string, healthcheck *HealthCheck) *HealthChecksUpdateCall { - c := &HealthChecksUpdateCall{s: r.s, urlParams_: make(gensupport.URLParams)} - c.project = project - c.healthCheck = healthCheck - c.healthcheck = healthcheck +// - operation: Name of the Operations resource to delete, or its unique +// numeric +// +// identifier. +func (r *GlobalOrganizationOperationsService) Delete(operationid string) *GlobalOrganizationOperationsDeleteCall { + c := &GlobalOrganizationOperationsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)} + c.operationid = operationid 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 *HealthChecksUpdateCall) RequestId(requestId string) *HealthChecksUpdateCall { - c.urlParams_.Set("requestId", requestId) +// ParentId sets the optional parameter "parentId": Parent ID for this request. +func (c *GlobalOrganizationOperationsDeleteCall) ParentId(parentId string) *GlobalOrganizationOperationsDeleteCall { + c.urlParams_.Set("parentId", parentId) return c } // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *HealthChecksUpdateCall) Fields(s ...googleapi.Field) *HealthChecksUpdateCall { +func (c *GlobalOrganizationOperationsDeleteCall) Fields(s ...googleapi.Field) *GlobalOrganizationOperationsDeleteCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } // Context sets the context to be used in this call's Do method. -func (c *HealthChecksUpdateCall) Context(ctx context.Context) *HealthChecksUpdateCall { +func (c *GlobalOrganizationOperationsDeleteCall) Context(ctx context.Context) *GlobalOrganizationOperationsDeleteCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *HealthChecksUpdateCall) Header() http.Header { +func (c *GlobalOrganizationOperationsDeleteCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *HealthChecksUpdateCall) doRequest(alt string) (*http.Response, error) { - reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) - var body io.Reader = nil - body, err := googleapi.WithoutDataWrapper.JSONReader(c.healthcheck) - if err != nil { - return nil, err - } +func (c *GlobalOrganizationOperationsDeleteCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/healthChecks/{healthCheck}") + urls := googleapi.ResolveRelative(c.s.BasePath, "locations/global/operations/{operation}") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("PUT", urls, body) + req, err := http.NewRequest("DELETE", urls, nil) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "healthCheck": c.healthCheck, + "operation": c.operationid, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.globalOrganizationOperations.delete", "request", internallog.HTTPRequest(req, nil)) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.healthChecks.update" call. -// 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 *HealthChecksUpdateCall) Do(opts ...googleapi.CallOption) (*Operation, error) { +// Do executes the "compute.globalOrganizationOperations.delete" call. +func (c *GlobalOrganizationOperationsDeleteCall) Do(opts ...googleapi.CallOption) 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, gensupport.WrapError(&googleapi.Error{ - Code: res.StatusCode, - Header: res.Header, - }) - } if err != nil { - return nil, err + return err } defer googleapi.CloseBody(res) if err := googleapi.CheckResponse(res); err != nil { - return nil, gensupport.WrapError(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 gensupport.WrapError(err) } - return ret, nil + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.globalOrganizationOperations.delete", "response", internallog.HTTPResponse(res, nil)) + return nil } -type HttpHealthChecksDeleteCall struct { - s *Service - project string - httpHealthCheck string - urlParams_ gensupport.URLParams - ctx_ context.Context - header_ http.Header +type GlobalOrganizationOperationsGetCall struct { + s *Service + operation string + urlParams_ gensupport.URLParams + ifNoneMatch_ string + ctx_ context.Context + header_ http.Header } -// Delete: Deletes the specified HttpHealthCheck resource. +// Get: Retrieves the specified Operations resource. Gets a list of +// operations +// by making a `list()` request. // -// - httpHealthCheck: Name of the HttpHealthCheck resource to delete. -// - project: Project ID for this request. -func (r *HttpHealthChecksService) Delete(project string, httpHealthCheck string) *HttpHealthChecksDeleteCall { - c := &HttpHealthChecksDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)} - c.project = project - c.httpHealthCheck = httpHealthCheck +// - operation: Name of the Operations resource to return. Parent is derived +// from this +// +// field. +func (r *GlobalOrganizationOperationsService) Get(operation string) *GlobalOrganizationOperationsGetCall { + c := &GlobalOrganizationOperationsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)} + c.operation = operation 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 *HttpHealthChecksDeleteCall) RequestId(requestId string) *HttpHealthChecksDeleteCall { - c.urlParams_.Set("requestId", requestId) +// ParentId sets the optional parameter "parentId": Parent ID for this request. +// Not used. Parent is derived from resource_id. +func (c *GlobalOrganizationOperationsGetCall) ParentId(parentId string) *GlobalOrganizationOperationsGetCall { + c.urlParams_.Set("parentId", parentId) return c } // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *HttpHealthChecksDeleteCall) Fields(s ...googleapi.Field) *HttpHealthChecksDeleteCall { +func (c *GlobalOrganizationOperationsGetCall) Fields(s ...googleapi.Field) *GlobalOrganizationOperationsGetCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } +// IfNoneMatch sets an 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. +func (c *GlobalOrganizationOperationsGetCall) IfNoneMatch(entityTag string) *GlobalOrganizationOperationsGetCall { + c.ifNoneMatch_ = entityTag + return c +} + // Context sets the context to be used in this call's Do method. -func (c *HttpHealthChecksDeleteCall) Context(ctx context.Context) *HttpHealthChecksDeleteCall { +func (c *GlobalOrganizationOperationsGetCall) Context(ctx context.Context) *GlobalOrganizationOperationsGetCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *HttpHealthChecksDeleteCall) Header() http.Header { +func (c *GlobalOrganizationOperationsGetCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *HttpHealthChecksDeleteCall) doRequest(alt string) (*http.Response, error) { +func (c *GlobalOrganizationOperationsGetCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) - var body io.Reader = nil + if c.ifNoneMatch_ != "" { + reqHeaders.Set("If-None-Match", c.ifNoneMatch_) + } c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/httpHealthChecks/{httpHealthCheck}") + urls := googleapi.ResolveRelative(c.s.BasePath, "locations/global/operations/{operation}") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("DELETE", urls, body) + req, err := http.NewRequest("GET", urls, nil) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "httpHealthCheck": c.httpHealthCheck, + "operation": c.operation, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.globalOrganizationOperations.get", "request", internallog.HTTPRequest(req, nil)) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.httpHealthChecks.delete" call. +// Do executes the "compute.globalOrganizationOperations.get" call. // 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 *HttpHealthChecksDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) { +func (c *GlobalOrganizationOperationsGetCall) Do(opts ...googleapi.CallOption) (*Operation, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -19782,37 +23448,168 @@ func (c *HttpHealthChecksDeleteCall) Do(opts ...googleapi.CallOption) (*Operatio }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.globalOrganizationOperations.get", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type HttpHealthChecksGetCall struct { - s *Service - project string - httpHealthCheck string - urlParams_ gensupport.URLParams - ifNoneMatch_ string - ctx_ context.Context - header_ http.Header +type GlobalOrganizationOperationsListCall struct { + s *Service + urlParams_ gensupport.URLParams + ifNoneMatch_ string + ctx_ context.Context + header_ http.Header } -// Get: Returns the specified HttpHealthCheck resource. +// List: Retrieves a list of Operation resources contained within the +// specified +// organization. +func (r *GlobalOrganizationOperationsService) List() *GlobalOrganizationOperationsListCall { + c := &GlobalOrganizationOperationsListCall{s: r.s, urlParams_: make(gensupport.URLParams)} + return c +} + +// Filter sets the optional parameter "filter": A filter expression that +// filters resources listed in the response. Most +// Compute resources support two types of filter expressions: +// expressions that support regular expressions and expressions that follow +// API improvement proposal AIP-160. +// These two types of filter expressions cannot be mixed in one request. // -// - httpHealthCheck: Name of the HttpHealthCheck resource to return. -// - project: Project ID for this request. -func (r *HttpHealthChecksService) Get(project string, httpHealthCheck string) *HttpHealthChecksGetCall { - c := &HttpHealthChecksGetCall{s: r.s, urlParams_: make(gensupport.URLParams)} - c.project = project - c.httpHealthCheck = httpHealthCheck +// If you want to use AIP-160, your expression must specify the field name, +// an +// operator, and the value that you want to use for filtering. The value +// must be a string, a number, or a boolean. The 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`. +// +// The `:*` comparison can be used to test whether a key has been defined. +// For example, to find all objects with `owner` label +// use: +// ``` +// labels.owner:* +// ``` +// +// 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 onresource 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) +// ``` +// +// If you want to use a regular expression, use the `eq` (equal) or `ne` +// (not equal) operator against a single un-parenthesized expression with +// or +// without quotes or against multiple parenthesized expressions. +// Examples: +// +// `fieldname eq unquoted literal` +// `fieldname eq 'single quoted literal'` +// `fieldname eq "double quoted literal" +// `(fieldname1 eq literal) (fieldname2 ne "literal")` +// +// The literal value is interpreted as a regular expression using GoogleRE2 +// library syntax. +// The literal value must match the entire field. +// +// For example, to filter for instances that do not end with name +// "instance", +// you would use `name ne .*instance`. +// +// You cannot combine constraints on multiple fields using regular +// expressions. +func (c *GlobalOrganizationOperationsListCall) Filter(filter string) *GlobalOrganizationOperationsListCall { + 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 *GlobalOrganizationOperationsListCall) MaxResults(maxResults int64) *GlobalOrganizationOperationsListCall { + 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 *GlobalOrganizationOperationsListCall) OrderBy(orderBy string) *GlobalOrganizationOperationsListCall { + 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 *GlobalOrganizationOperationsListCall) PageToken(pageToken string) *GlobalOrganizationOperationsListCall { + c.urlParams_.Set("pageToken", pageToken) + return c +} + +// ParentId sets the optional parameter "parentId": Parent ID for this request. +func (c *GlobalOrganizationOperationsListCall) ParentId(parentId string) *GlobalOrganizationOperationsListCall { + c.urlParams_.Set("parentId", parentId) + return c +} + +// ReturnPartialSuccess sets the optional parameter "returnPartialSuccess": +// Opt-in for partial success behavior which provides partial results in +// case +// of failure. The default value is false. +// +// For example, when partial success behavior is enabled, aggregatedList for +// a +// single zone scope either returns all resources in the zone or no +// resources, +// with an error code. +func (c *GlobalOrganizationOperationsListCall) ReturnPartialSuccess(returnPartialSuccess bool) *GlobalOrganizationOperationsListCall { + c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess)) return c } // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *HttpHealthChecksGetCall) Fields(s ...googleapi.Field) *HttpHealthChecksGetCall { +func (c *GlobalOrganizationOperationsListCall) Fields(s ...googleapi.Field) *GlobalOrganizationOperationsListCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } @@ -19820,55 +23617,50 @@ func (c *HttpHealthChecksGetCall) Fields(s ...googleapi.Field) *HttpHealthChecks // IfNoneMatch sets an 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. -func (c *HttpHealthChecksGetCall) IfNoneMatch(entityTag string) *HttpHealthChecksGetCall { +func (c *GlobalOrganizationOperationsListCall) IfNoneMatch(entityTag string) *GlobalOrganizationOperationsListCall { c.ifNoneMatch_ = entityTag return c } // Context sets the context to be used in this call's Do method. -func (c *HttpHealthChecksGetCall) Context(ctx context.Context) *HttpHealthChecksGetCall { +func (c *GlobalOrganizationOperationsListCall) Context(ctx context.Context) *GlobalOrganizationOperationsListCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *HttpHealthChecksGetCall) Header() http.Header { +func (c *GlobalOrganizationOperationsListCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *HttpHealthChecksGetCall) doRequest(alt string) (*http.Response, error) { +func (c *GlobalOrganizationOperationsListCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) if c.ifNoneMatch_ != "" { reqHeaders.Set("If-None-Match", c.ifNoneMatch_) } - var body io.Reader = nil c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/httpHealthChecks/{httpHealthCheck}") + urls := googleapi.ResolveRelative(c.s.BasePath, "locations/global/operations") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("GET", urls, body) + req, err := http.NewRequest("GET", urls, nil) if err != nil { return nil, err } req.Header = reqHeaders - googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "httpHealthCheck": c.httpHealthCheck, - }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.globalOrganizationOperations.list", "request", internallog.HTTPRequest(req, nil)) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.httpHealthChecks.get" call. +// Do executes the "compute.globalOrganizationOperations.list" call. // Any non-2xx status code is an error. Response headers are in either -// *HttpHealthCheck.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 *HttpHealthChecksGetCall) Do(opts ...googleapi.CallOption) (*HttpHealthCheck, error) { +// *OperationList.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 *GlobalOrganizationOperationsListCall) Do(opts ...googleapi.CallOption) (*OperationList, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -19887,50 +23679,81 @@ func (c *HttpHealthChecksGetCall) Do(opts ...googleapi.CallOption) (*HttpHealthC if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } - ret := &HttpHealthCheck{ + ret := &OperationList{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.globalOrganizationOperations.list", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type HttpHealthChecksInsertCall struct { - s *Service - project string - httphealthcheck *HttpHealthCheck - urlParams_ gensupport.URLParams - ctx_ context.Context - header_ http.Header +// 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 *GlobalOrganizationOperationsListCall) Pages(ctx context.Context, f func(*OperationList) error) error { + c.ctx_ = ctx + defer c.PageToken(c.urlParams_.Get("pageToken")) + 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) + } } -// Insert: Creates a HttpHealthCheck resource in the specified project using -// the data included in the request. +type GlobalPublicDelegatedPrefixesDeleteCall struct { + s *Service + project string + publicDelegatedPrefix string + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header +} + +// Delete: Deletes the specified global PublicDelegatedPrefix. // -// - project: Project ID for this request. -func (r *HttpHealthChecksService) Insert(project string, httphealthcheck *HttpHealthCheck) *HttpHealthChecksInsertCall { - c := &HttpHealthChecksInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)} +// - project: Project ID for this request. +// - publicDelegatedPrefix: Name of the PublicDelegatedPrefix resource to +// delete. +func (r *GlobalPublicDelegatedPrefixesService) Delete(project string, publicDelegatedPrefix string) *GlobalPublicDelegatedPrefixesDeleteCall { + c := &GlobalPublicDelegatedPrefixesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project - c.httphealthcheck = httphealthcheck + c.publicDelegatedPrefix = publicDelegatedPrefix 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 *HttpHealthChecksInsertCall) RequestId(requestId string) *HttpHealthChecksInsertCall { +// 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 *GlobalPublicDelegatedPrefixesDeleteCall) RequestId(requestId string) *GlobalPublicDelegatedPrefixesDeleteCall { c.urlParams_.Set("requestId", requestId) return c } @@ -19938,54 +23761,51 @@ func (c *HttpHealthChecksInsertCall) RequestId(requestId string) *HttpHealthChec // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *HttpHealthChecksInsertCall) Fields(s ...googleapi.Field) *HttpHealthChecksInsertCall { +func (c *GlobalPublicDelegatedPrefixesDeleteCall) Fields(s ...googleapi.Field) *GlobalPublicDelegatedPrefixesDeleteCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } // Context sets the context to be used in this call's Do method. -func (c *HttpHealthChecksInsertCall) Context(ctx context.Context) *HttpHealthChecksInsertCall { +func (c *GlobalPublicDelegatedPrefixesDeleteCall) Context(ctx context.Context) *GlobalPublicDelegatedPrefixesDeleteCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *HttpHealthChecksInsertCall) Header() http.Header { +func (c *GlobalPublicDelegatedPrefixesDeleteCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *HttpHealthChecksInsertCall) doRequest(alt string) (*http.Response, error) { - reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) - var body io.Reader = nil - body, err := googleapi.WithoutDataWrapper.JSONReader(c.httphealthcheck) - if err != nil { - return nil, err - } +func (c *GlobalPublicDelegatedPrefixesDeleteCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/httpHealthChecks") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/publicDelegatedPrefixes/{publicDelegatedPrefix}") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("POST", urls, body) + req, err := http.NewRequest("DELETE", urls, nil) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, + "project": c.project, + "publicDelegatedPrefix": c.publicDelegatedPrefix, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.globalPublicDelegatedPrefixes.delete", "request", internallog.HTTPRequest(req, nil)) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.httpHealthChecks.insert" call. +// Do executes the "compute.globalPublicDelegatedPrefixes.delete" call. // 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 *HttpHealthChecksInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) { +func (c *GlobalPublicDelegatedPrefixesDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -20011,113 +23831,40 @@ func (c *HttpHealthChecksInsertCall) Do(opts ...googleapi.CallOption) (*Operatio }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.globalPublicDelegatedPrefixes.delete", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type HttpHealthChecksListCall struct { - s *Service - project string - urlParams_ gensupport.URLParams - ifNoneMatch_ string - ctx_ context.Context - header_ http.Header +type GlobalPublicDelegatedPrefixesGetCall struct { + s *Service + project string + publicDelegatedPrefix string + urlParams_ gensupport.URLParams + ifNoneMatch_ string + ctx_ context.Context + header_ http.Header } -// List: Retrieves the list of HttpHealthCheck resources available to the -// specified project. +// Get: Returns the specified global PublicDelegatedPrefix resource. // -// - project: Project ID for this request. -func (r *HttpHealthChecksService) List(project string) *HttpHealthChecksListCall { - c := &HttpHealthChecksListCall{s: r.s, urlParams_: make(gensupport.URLParams)} +// - project: Project ID for this request. +// - publicDelegatedPrefix: Name of the PublicDelegatedPrefix resource to +// return. +func (r *GlobalPublicDelegatedPrefixesService) Get(project string, publicDelegatedPrefix string) *GlobalPublicDelegatedPrefixesGetCall { + c := &GlobalPublicDelegatedPrefixesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project - return c -} - -// Filter sets the optional parameter "filter": A filter expression that -// filters resources listed in the response. Most Compute resources support two -// types of filter expressions: expressions that support regular expressions -// and expressions that follow API improvement proposal AIP-160. These two -// types of filter expressions cannot be mixed in one request. If you want to -// use AIP-160, your expression must specify the field name, an operator, and -// the value that you want to use for filtering. The value must be a string, a -// number, or a boolean. The 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`. The `:*` comparison can be used to test whether a key has -// been defined. For example, to find all objects with `owner` label use: ``` -// labels.owner:* ``` 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) ``` If you want to use a regular -// expression, use the `eq` (equal) or `ne` (not equal) operator against a -// single un-parenthesized expression with or without quotes or against -// multiple parenthesized expressions. Examples: `fieldname eq unquoted -// literal` `fieldname eq 'single quoted literal'` `fieldname eq "double quoted -// literal" `(fieldname1 eq literal) (fieldname2 ne "literal")` The literal -// value is interpreted as a regular expression using Google RE2 library -// syntax. The literal value must match the entire field. For example, to -// filter for instances that do not end with name "instance", you would use -// `name ne .*instance`. You cannot combine constraints on multiple fields -// using regular expressions. -func (c *HttpHealthChecksListCall) Filter(filter string) *HttpHealthChecksListCall { - 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 *HttpHealthChecksListCall) MaxResults(maxResults int64) *HttpHealthChecksListCall { - 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 *HttpHealthChecksListCall) OrderBy(orderBy string) *HttpHealthChecksListCall { - 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 *HttpHealthChecksListCall) PageToken(pageToken string) *HttpHealthChecksListCall { - c.urlParams_.Set("pageToken", pageToken) - return c -} - -// ReturnPartialSuccess sets the optional parameter "returnPartialSuccess": -// Opt-in for partial success behavior which provides partial results in case -// of failure. The default value is false. For example, when partial success -// behavior is enabled, aggregatedList for a single zone scope either returns -// all resources in the zone or no resources, with an error code. -func (c *HttpHealthChecksListCall) ReturnPartialSuccess(returnPartialSuccess bool) *HttpHealthChecksListCall { - c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess)) + c.publicDelegatedPrefix = publicDelegatedPrefix return c } // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *HttpHealthChecksListCall) Fields(s ...googleapi.Field) *HttpHealthChecksListCall { +func (c *GlobalPublicDelegatedPrefixesGetCall) Fields(s ...googleapi.Field) *GlobalPublicDelegatedPrefixesGetCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } @@ -20125,54 +23872,55 @@ func (c *HttpHealthChecksListCall) Fields(s ...googleapi.Field) *HttpHealthCheck // IfNoneMatch sets an 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. -func (c *HttpHealthChecksListCall) IfNoneMatch(entityTag string) *HttpHealthChecksListCall { +func (c *GlobalPublicDelegatedPrefixesGetCall) IfNoneMatch(entityTag string) *GlobalPublicDelegatedPrefixesGetCall { c.ifNoneMatch_ = entityTag return c } // Context sets the context to be used in this call's Do method. -func (c *HttpHealthChecksListCall) Context(ctx context.Context) *HttpHealthChecksListCall { +func (c *GlobalPublicDelegatedPrefixesGetCall) Context(ctx context.Context) *GlobalPublicDelegatedPrefixesGetCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *HttpHealthChecksListCall) Header() http.Header { +func (c *GlobalPublicDelegatedPrefixesGetCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *HttpHealthChecksListCall) doRequest(alt string) (*http.Response, error) { +func (c *GlobalPublicDelegatedPrefixesGetCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) if c.ifNoneMatch_ != "" { reqHeaders.Set("If-None-Match", c.ifNoneMatch_) } - var body io.Reader = nil c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/httpHealthChecks") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/publicDelegatedPrefixes/{publicDelegatedPrefix}") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("GET", urls, body) + req, err := http.NewRequest("GET", urls, nil) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, + "project": c.project, + "publicDelegatedPrefix": c.publicDelegatedPrefix, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.globalPublicDelegatedPrefixes.get", "request", internallog.HTTPRequest(req, nil)) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.httpHealthChecks.list" call. +// Do executes the "compute.globalPublicDelegatedPrefixes.get" call. // Any non-2xx status code is an error. Response headers are in either -// *HttpHealthCheckList.ServerResponse.Header or (if a response was returned at -// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to +// *PublicDelegatedPrefix.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 *HttpHealthChecksListCall) Do(opts ...googleapi.CallOption) (*HttpHealthCheckList, error) { +func (c *GlobalPublicDelegatedPrefixesGetCall) Do(opts ...googleapi.CallOption) (*PublicDelegatedPrefix, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -20191,75 +23939,60 @@ func (c *HttpHealthChecksListCall) Do(opts ...googleapi.CallOption) (*HttpHealth if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } - ret := &HttpHealthCheckList{ + ret := &PublicDelegatedPrefix{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.globalPublicDelegatedPrefixes.get", "response", internallog.HTTPResponse(res, b)) return ret, nil } -// 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 *HttpHealthChecksListCall) Pages(ctx context.Context, f func(*HttpHealthCheckList) error) error { - c.ctx_ = ctx - defer c.PageToken(c.urlParams_.Get("pageToken")) - 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) - } -} - -type HttpHealthChecksPatchCall struct { - s *Service - project string - httpHealthCheck string - httphealthcheck *HttpHealthCheck - urlParams_ gensupport.URLParams - ctx_ context.Context - header_ http.Header +type GlobalPublicDelegatedPrefixesInsertCall struct { + s *Service + project string + publicdelegatedprefix *PublicDelegatedPrefix + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header } -// Patch: Updates a HttpHealthCheck resource in the specified project using the -// data included in the request. This method supports PATCH semantics and uses -// the JSON merge patch format and processing rules. +// Insert: Creates a global PublicDelegatedPrefix in the specified project +// using the +// parameters that are included in the request. // -// - httpHealthCheck: Name of the HttpHealthCheck resource to patch. // - project: Project ID for this request. -func (r *HttpHealthChecksService) Patch(project string, httpHealthCheck string, httphealthcheck *HttpHealthCheck) *HttpHealthChecksPatchCall { - c := &HttpHealthChecksPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)} +func (r *GlobalPublicDelegatedPrefixesService) Insert(project string, publicdelegatedprefix *PublicDelegatedPrefix) *GlobalPublicDelegatedPrefixesInsertCall { + c := &GlobalPublicDelegatedPrefixesInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project - c.httpHealthCheck = httpHealthCheck - c.httphealthcheck = httphealthcheck + c.publicdelegatedprefix = publicdelegatedprefix 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 *HttpHealthChecksPatchCall) RequestId(requestId string) *HttpHealthChecksPatchCall { +// 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 *GlobalPublicDelegatedPrefixesInsertCall) RequestId(requestId string) *GlobalPublicDelegatedPrefixesInsertCall { c.urlParams_.Set("requestId", requestId) return c } @@ -20267,55 +24000,54 @@ func (c *HttpHealthChecksPatchCall) RequestId(requestId string) *HttpHealthCheck // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *HttpHealthChecksPatchCall) Fields(s ...googleapi.Field) *HttpHealthChecksPatchCall { +func (c *GlobalPublicDelegatedPrefixesInsertCall) Fields(s ...googleapi.Field) *GlobalPublicDelegatedPrefixesInsertCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } // Context sets the context to be used in this call's Do method. -func (c *HttpHealthChecksPatchCall) Context(ctx context.Context) *HttpHealthChecksPatchCall { +func (c *GlobalPublicDelegatedPrefixesInsertCall) Context(ctx context.Context) *GlobalPublicDelegatedPrefixesInsertCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *HttpHealthChecksPatchCall) Header() http.Header { +func (c *GlobalPublicDelegatedPrefixesInsertCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *HttpHealthChecksPatchCall) doRequest(alt string) (*http.Response, error) { +func (c *GlobalPublicDelegatedPrefixesInsertCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) - var body io.Reader = nil - body, err := googleapi.WithoutDataWrapper.JSONReader(c.httphealthcheck) + body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.publicdelegatedprefix) if err != nil { return nil, err } c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/httpHealthChecks/{httpHealthCheck}") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/publicDelegatedPrefixes") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("PATCH", urls, body) + req, err := http.NewRequest("POST", urls, body) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "httpHealthCheck": c.httpHealthCheck, + "project": c.project, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.globalPublicDelegatedPrefixes.insert", "request", internallog.HTTPRequest(req, body.Bytes())) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.httpHealthChecks.patch" call. +// Do executes the "compute.globalPublicDelegatedPrefixes.insert" call. // 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 *HttpHealthChecksPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) { +func (c *GlobalPublicDelegatedPrefixesInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -20341,102 +24073,219 @@ func (c *HttpHealthChecksPatchCall) Do(opts ...googleapi.CallOption) (*Operation }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.globalPublicDelegatedPrefixes.insert", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type HttpHealthChecksUpdateCall struct { - s *Service - project string - httpHealthCheck string - httphealthcheck *HttpHealthCheck - urlParams_ gensupport.URLParams - ctx_ context.Context - header_ http.Header +type GlobalPublicDelegatedPrefixesListCall struct { + s *Service + project string + urlParams_ gensupport.URLParams + ifNoneMatch_ string + ctx_ context.Context + header_ http.Header } -// Update: Updates a HttpHealthCheck resource in the specified project using -// the data included in the request. +// List: Lists the global PublicDelegatedPrefixes for a project. // -// - httpHealthCheck: Name of the HttpHealthCheck resource to update. // - project: Project ID for this request. -func (r *HttpHealthChecksService) Update(project string, httpHealthCheck string, httphealthcheck *HttpHealthCheck) *HttpHealthChecksUpdateCall { - c := &HttpHealthChecksUpdateCall{s: r.s, urlParams_: make(gensupport.URLParams)} +func (r *GlobalPublicDelegatedPrefixesService) List(project string) *GlobalPublicDelegatedPrefixesListCall { + c := &GlobalPublicDelegatedPrefixesListCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project - c.httpHealthCheck = httpHealthCheck - c.httphealthcheck = httphealthcheck 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 *HttpHealthChecksUpdateCall) RequestId(requestId string) *HttpHealthChecksUpdateCall { - c.urlParams_.Set("requestId", requestId) +// Filter sets the optional parameter "filter": A filter expression that +// filters resources listed in the response. Most +// Compute resources support two types of filter expressions: +// expressions that support regular expressions and expressions that follow +// API improvement proposal AIP-160. +// These two types of filter expressions cannot be mixed in one request. +// +// If you want to use AIP-160, your expression must specify the field name, +// an +// operator, and the value that you want to use for filtering. The value +// must be a string, a number, or a boolean. The 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`. +// +// The `:*` comparison can be used to test whether a key has been defined. +// For example, to find all objects with `owner` label +// use: +// ``` +// labels.owner:* +// ``` +// +// 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 onresource 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) +// ``` +// +// If you want to use a regular expression, use the `eq` (equal) or `ne` +// (not equal) operator against a single un-parenthesized expression with +// or +// without quotes or against multiple parenthesized expressions. +// Examples: +// +// `fieldname eq unquoted literal` +// `fieldname eq 'single quoted literal'` +// `fieldname eq "double quoted literal" +// `(fieldname1 eq literal) (fieldname2 ne "literal")` +// +// The literal value is interpreted as a regular expression using GoogleRE2 +// library syntax. +// The literal value must match the entire field. +// +// For example, to filter for instances that do not end with name +// "instance", +// you would use `name ne .*instance`. +// +// You cannot combine constraints on multiple fields using regular +// expressions. +func (c *GlobalPublicDelegatedPrefixesListCall) Filter(filter string) *GlobalPublicDelegatedPrefixesListCall { + 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 *GlobalPublicDelegatedPrefixesListCall) MaxResults(maxResults int64) *GlobalPublicDelegatedPrefixesListCall { + 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 *GlobalPublicDelegatedPrefixesListCall) OrderBy(orderBy string) *GlobalPublicDelegatedPrefixesListCall { + 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 *GlobalPublicDelegatedPrefixesListCall) PageToken(pageToken string) *GlobalPublicDelegatedPrefixesListCall { + c.urlParams_.Set("pageToken", pageToken) + return c +} + +// ReturnPartialSuccess sets the optional parameter "returnPartialSuccess": +// Opt-in for partial success behavior which provides partial results in +// case +// of failure. The default value is false. +// +// For example, when partial success behavior is enabled, aggregatedList for +// a +// single zone scope either returns all resources in the zone or no +// resources, +// with an error code. +func (c *GlobalPublicDelegatedPrefixesListCall) ReturnPartialSuccess(returnPartialSuccess bool) *GlobalPublicDelegatedPrefixesListCall { + c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess)) return c } // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *HttpHealthChecksUpdateCall) Fields(s ...googleapi.Field) *HttpHealthChecksUpdateCall { +func (c *GlobalPublicDelegatedPrefixesListCall) Fields(s ...googleapi.Field) *GlobalPublicDelegatedPrefixesListCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } +// IfNoneMatch sets an 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. +func (c *GlobalPublicDelegatedPrefixesListCall) IfNoneMatch(entityTag string) *GlobalPublicDelegatedPrefixesListCall { + c.ifNoneMatch_ = entityTag + return c +} + // Context sets the context to be used in this call's Do method. -func (c *HttpHealthChecksUpdateCall) Context(ctx context.Context) *HttpHealthChecksUpdateCall { +func (c *GlobalPublicDelegatedPrefixesListCall) Context(ctx context.Context) *GlobalPublicDelegatedPrefixesListCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *HttpHealthChecksUpdateCall) Header() http.Header { +func (c *GlobalPublicDelegatedPrefixesListCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *HttpHealthChecksUpdateCall) doRequest(alt string) (*http.Response, error) { - reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) - var body io.Reader = nil - body, err := googleapi.WithoutDataWrapper.JSONReader(c.httphealthcheck) - if err != nil { - return nil, err +func (c *GlobalPublicDelegatedPrefixesListCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) + if c.ifNoneMatch_ != "" { + reqHeaders.Set("If-None-Match", c.ifNoneMatch_) } c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/httpHealthChecks/{httpHealthCheck}") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/publicDelegatedPrefixes") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("PUT", urls, body) + req, err := http.NewRequest("GET", urls, nil) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "httpHealthCheck": c.httpHealthCheck, + "project": c.project, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.globalPublicDelegatedPrefixes.list", "request", internallog.HTTPRequest(req, nil)) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.httpHealthChecks.update" call. +// Do executes the "compute.globalPublicDelegatedPrefixes.list" call. // 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 *HttpHealthChecksUpdateCall) Do(opts ...googleapi.CallOption) (*Operation, error) { +// *PublicDelegatedPrefixList.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 *GlobalPublicDelegatedPrefixesListCall) Do(opts ...googleapi.CallOption) (*PublicDelegatedPrefixList, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -20455,50 +24304,87 @@ func (c *HttpHealthChecksUpdateCall) Do(opts ...googleapi.CallOption) (*Operatio if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } - ret := &Operation{ + ret := &PublicDelegatedPrefixList{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.globalPublicDelegatedPrefixes.list", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type HttpsHealthChecksDeleteCall struct { - s *Service - project string - httpsHealthCheck string - urlParams_ gensupport.URLParams - ctx_ context.Context - header_ http.Header +// 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 *GlobalPublicDelegatedPrefixesListCall) Pages(ctx context.Context, f func(*PublicDelegatedPrefixList) error) error { + c.ctx_ = ctx + defer c.PageToken(c.urlParams_.Get("pageToken")) + 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) + } } -// Delete: Deletes the specified HttpsHealthCheck resource. +type GlobalPublicDelegatedPrefixesPatchCall struct { + s *Service + project string + publicDelegatedPrefix string + publicdelegatedprefix *PublicDelegatedPrefix + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header +} + +// Patch: Patches the specified global PublicDelegatedPrefix resource with the +// data +// included in the request. This method supportsPATCH +// semantics and usesJSON merge +// patch format and processing rules. // -// - httpsHealthCheck: Name of the HttpsHealthCheck resource to delete. -// - project: Project ID for this request. -func (r *HttpsHealthChecksService) Delete(project string, httpsHealthCheck string) *HttpsHealthChecksDeleteCall { - c := &HttpsHealthChecksDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)} +// - project: Project ID for this request. +// - publicDelegatedPrefix: Name of the PublicDelegatedPrefix resource to +// patch. +func (r *GlobalPublicDelegatedPrefixesService) Patch(project string, publicDelegatedPrefix string, publicdelegatedprefix *PublicDelegatedPrefix) *GlobalPublicDelegatedPrefixesPatchCall { + c := &GlobalPublicDelegatedPrefixesPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project - c.httpsHealthCheck = httpsHealthCheck + c.publicDelegatedPrefix = publicDelegatedPrefix + c.publicdelegatedprefix = publicdelegatedprefix 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 *HttpsHealthChecksDeleteCall) RequestId(requestId string) *HttpsHealthChecksDeleteCall { +// 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 *GlobalPublicDelegatedPrefixesPatchCall) RequestId(requestId string) *GlobalPublicDelegatedPrefixesPatchCall { c.urlParams_.Set("requestId", requestId) return c } @@ -20506,51 +24392,55 @@ func (c *HttpsHealthChecksDeleteCall) RequestId(requestId string) *HttpsHealthCh // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *HttpsHealthChecksDeleteCall) Fields(s ...googleapi.Field) *HttpsHealthChecksDeleteCall { +func (c *GlobalPublicDelegatedPrefixesPatchCall) Fields(s ...googleapi.Field) *GlobalPublicDelegatedPrefixesPatchCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } // Context sets the context to be used in this call's Do method. -func (c *HttpsHealthChecksDeleteCall) Context(ctx context.Context) *HttpsHealthChecksDeleteCall { +func (c *GlobalPublicDelegatedPrefixesPatchCall) Context(ctx context.Context) *GlobalPublicDelegatedPrefixesPatchCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *HttpsHealthChecksDeleteCall) Header() http.Header { +func (c *GlobalPublicDelegatedPrefixesPatchCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *HttpsHealthChecksDeleteCall) doRequest(alt string) (*http.Response, error) { - reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) - var body io.Reader = nil +func (c *GlobalPublicDelegatedPrefixesPatchCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) + body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.publicdelegatedprefix) + if err != nil { + return nil, err + } c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/httpsHealthChecks/{httpsHealthCheck}") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/publicDelegatedPrefixes/{publicDelegatedPrefix}") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("DELETE", urls, body) + req, err := http.NewRequest("PATCH", urls, body) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "httpsHealthCheck": c.httpsHealthCheck, + "project": c.project, + "publicDelegatedPrefix": c.publicDelegatedPrefix, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.globalPublicDelegatedPrefixes.patch", "request", internallog.HTTPRequest(req, body.Bytes())) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.httpsHealthChecks.delete" call. +// Do executes the "compute.globalPublicDelegatedPrefixes.patch" call. // 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 *HttpsHealthChecksDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) { +func (c *GlobalPublicDelegatedPrefixesPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -20576,37 +24466,195 @@ func (c *HttpsHealthChecksDeleteCall) Do(opts ...googleapi.CallOption) (*Operati }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.globalPublicDelegatedPrefixes.patch", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type HttpsHealthChecksGetCall struct { - s *Service - project string - httpsHealthCheck string - urlParams_ gensupport.URLParams - ifNoneMatch_ string - ctx_ context.Context - header_ http.Header +type GlobalVmExtensionPoliciesAggregatedListCall struct { + s *Service + project string + urlParams_ gensupport.URLParams + ifNoneMatch_ string + ctx_ context.Context + header_ http.Header } -// Get: Returns the specified HttpsHealthCheck resource. +// AggregatedList: Retrieves the list of all VM Extension Policy +// resources +// available to the specified project. // -// - httpsHealthCheck: Name of the HttpsHealthCheck resource to return. -// - project: Project ID for this request. -func (r *HttpsHealthChecksService) Get(project string, httpsHealthCheck string) *HttpsHealthChecksGetCall { - c := &HttpsHealthChecksGetCall{s: r.s, urlParams_: make(gensupport.URLParams)} +// To prevent failure, it's recommended that you set the +// `returnPartialSuccess` parameter to `true`. +// +// - project: Name of the project scoping this request. +func (r *GlobalVmExtensionPoliciesService) AggregatedList(project string) *GlobalVmExtensionPoliciesAggregatedListCall { + c := &GlobalVmExtensionPoliciesAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project - c.httpsHealthCheck = httpsHealthCheck + return c +} + +// Filter sets the optional parameter "filter": A filter expression that +// filters resources listed in the response. Most +// Compute resources support two types of filter expressions: +// expressions that support regular expressions and expressions that follow +// API improvement proposal AIP-160. +// These two types of filter expressions cannot be mixed in one request. +// +// If you want to use AIP-160, your expression must specify the field name, +// an +// operator, and the value that you want to use for filtering. The value +// must be a string, a number, or a boolean. The 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`. +// +// The `:*` comparison can be used to test whether a key has been defined. +// For example, to find all objects with `owner` label +// use: +// ``` +// labels.owner:* +// ``` +// +// 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 onresource 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) +// ``` +// +// If you want to use a regular expression, use the `eq` (equal) or `ne` +// (not equal) operator against a single un-parenthesized expression with +// or +// without quotes or against multiple parenthesized expressions. +// Examples: +// +// `fieldname eq unquoted literal` +// `fieldname eq 'single quoted literal'` +// `fieldname eq "double quoted literal" +// `(fieldname1 eq literal) (fieldname2 ne "literal")` +// +// The literal value is interpreted as a regular expression using GoogleRE2 +// library syntax. +// The literal value must match the entire field. +// +// For example, to filter for instances that do not end with name +// "instance", +// you would use `name ne .*instance`. +// +// You cannot combine constraints on multiple fields using regular +// expressions. +func (c *GlobalVmExtensionPoliciesAggregatedListCall) Filter(filter string) *GlobalVmExtensionPoliciesAggregatedListCall { + c.urlParams_.Set("filter", filter) + return c +} + +// IncludeAllScopes sets the optional parameter "includeAllScopes": Indicates +// whether every visible scope for each scope type (zone, region, +// global) should be included in the response. For new resource types +// added +// after this field, the flag has no effect as new resource types will +// always +// include every visible scope for each scope type in response. For +// resource +// types which predate this field, if this flag is omitted or false, +// only +// scopes of the scope types where the resource type is expected to be +// found +// will be included. +func (c *GlobalVmExtensionPoliciesAggregatedListCall) IncludeAllScopes(includeAllScopes bool) *GlobalVmExtensionPoliciesAggregatedListCall { + c.urlParams_.Set("includeAllScopes", fmt.Sprint(includeAllScopes)) + 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 *GlobalVmExtensionPoliciesAggregatedListCall) MaxResults(maxResults int64) *GlobalVmExtensionPoliciesAggregatedListCall { + 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 *GlobalVmExtensionPoliciesAggregatedListCall) OrderBy(orderBy string) *GlobalVmExtensionPoliciesAggregatedListCall { + 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 *GlobalVmExtensionPoliciesAggregatedListCall) PageToken(pageToken string) *GlobalVmExtensionPoliciesAggregatedListCall { + c.urlParams_.Set("pageToken", pageToken) + return c +} + +// ReturnPartialSuccess sets the optional parameter "returnPartialSuccess": +// Opt-in for partial success behavior which provides partial results in +// case +// of failure. The default value is false. +// +// For example, when partial success behavior is enabled, aggregatedList for +// a +// single zone scope either returns all resources in the zone or no +// resources, +// with an error code. +func (c *GlobalVmExtensionPoliciesAggregatedListCall) ReturnPartialSuccess(returnPartialSuccess bool) *GlobalVmExtensionPoliciesAggregatedListCall { + c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess)) + return c +} + +// ServiceProjectNumber sets the optional parameter "serviceProjectNumber": The +// Shared VPC service project id or service project number for which +// aggregated list request is invoked for subnetworks list-usable api. +func (c *GlobalVmExtensionPoliciesAggregatedListCall) ServiceProjectNumber(serviceProjectNumber int64) *GlobalVmExtensionPoliciesAggregatedListCall { + c.urlParams_.Set("serviceProjectNumber", fmt.Sprint(serviceProjectNumber)) return c } // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *HttpsHealthChecksGetCall) Fields(s ...googleapi.Field) *HttpsHealthChecksGetCall { +func (c *GlobalVmExtensionPoliciesAggregatedListCall) Fields(s ...googleapi.Field) *GlobalVmExtensionPoliciesAggregatedListCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } @@ -20614,55 +24662,54 @@ func (c *HttpsHealthChecksGetCall) Fields(s ...googleapi.Field) *HttpsHealthChec // IfNoneMatch sets an 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. -func (c *HttpsHealthChecksGetCall) IfNoneMatch(entityTag string) *HttpsHealthChecksGetCall { +func (c *GlobalVmExtensionPoliciesAggregatedListCall) IfNoneMatch(entityTag string) *GlobalVmExtensionPoliciesAggregatedListCall { c.ifNoneMatch_ = entityTag return c } // Context sets the context to be used in this call's Do method. -func (c *HttpsHealthChecksGetCall) Context(ctx context.Context) *HttpsHealthChecksGetCall { +func (c *GlobalVmExtensionPoliciesAggregatedListCall) Context(ctx context.Context) *GlobalVmExtensionPoliciesAggregatedListCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *HttpsHealthChecksGetCall) Header() http.Header { +func (c *GlobalVmExtensionPoliciesAggregatedListCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *HttpsHealthChecksGetCall) doRequest(alt string) (*http.Response, error) { +func (c *GlobalVmExtensionPoliciesAggregatedListCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) if c.ifNoneMatch_ != "" { reqHeaders.Set("If-None-Match", c.ifNoneMatch_) } - var body io.Reader = nil c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/httpsHealthChecks/{httpsHealthCheck}") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/aggregated/vmExtensionPolicies") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("GET", urls, body) + req, err := http.NewRequest("GET", urls, nil) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "httpsHealthCheck": c.httpsHealthCheck, + "project": c.project, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.globalVmExtensionPolicies.aggregatedList", "request", internallog.HTTPRequest(req, nil)) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.httpsHealthChecks.get" call. +// Do executes the "compute.globalVmExtensionPolicies.aggregatedList" call. // Any non-2xx status code is an error. Response headers are in either -// *HttpsHealthCheck.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 *HttpsHealthChecksGetCall) Do(opts ...googleapi.CallOption) (*HttpsHealthCheck, error) { +// *VmExtensionPolicyAggregatedListResponse.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 *GlobalVmExtensionPoliciesAggregatedListCall) Do(opts ...googleapi.CallOption) (*VmExtensionPolicyAggregatedListResponse, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -20681,50 +24728,92 @@ func (c *HttpsHealthChecksGetCall) Do(opts ...googleapi.CallOption) (*HttpsHealt if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } - ret := &HttpsHealthCheck{ + ret := &VmExtensionPolicyAggregatedListResponse{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.globalVmExtensionPolicies.aggregatedList", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type HttpsHealthChecksInsertCall struct { - s *Service - project string - httpshealthcheck *HttpsHealthCheck - urlParams_ gensupport.URLParams - ctx_ context.Context - header_ http.Header +// 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 *GlobalVmExtensionPoliciesAggregatedListCall) Pages(ctx context.Context, f func(*VmExtensionPolicyAggregatedListResponse) error) error { + c.ctx_ = ctx + defer c.PageToken(c.urlParams_.Get("pageToken")) + 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) + } } -// Insert: Creates a HttpsHealthCheck resource in the specified project using -// the data included in the request. +type GlobalVmExtensionPoliciesDeleteCall struct { + s *Service + project string + globalVmExtensionPolicy string + globalvmextensionpolicyrolloutoperationrolloutinput *GlobalVmExtensionPolicyRolloutOperationRolloutInput + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header +} + +// Delete: Purge scoped resources (zonal policies) from a global VM +// extension +// policy, and then delete the global VM extension policy. Purge of the +// scoped +// resources is a pre-condition of the global VM extension policy deletion. +// The deletion of the global VM extension policy happens after the +// purge +// rollout is done, so it's not a part of the LRO. It's an automatic +// process +// that triggers in the backend. // -// - project: Project ID for this request. -func (r *HttpsHealthChecksService) Insert(project string, httpshealthcheck *HttpsHealthCheck) *HttpsHealthChecksInsertCall { - c := &HttpsHealthChecksInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)} +// - globalVmExtensionPolicy: Name of the global VM extension policy to purge +// scoped resources for. +// - project: Project ID for this request. +func (r *GlobalVmExtensionPoliciesService) Delete(project string, globalVmExtensionPolicy string, globalvmextensionpolicyrolloutoperationrolloutinput *GlobalVmExtensionPolicyRolloutOperationRolloutInput) *GlobalVmExtensionPoliciesDeleteCall { + c := &GlobalVmExtensionPoliciesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project - c.httpshealthcheck = httpshealthcheck + c.globalVmExtensionPolicy = globalVmExtensionPolicy + c.globalvmextensionpolicyrolloutoperationrolloutinput = globalvmextensionpolicyrolloutoperationrolloutinput 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 *HttpsHealthChecksInsertCall) RequestId(requestId string) *HttpsHealthChecksInsertCall { +// 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 *GlobalVmExtensionPoliciesDeleteCall) RequestId(requestId string) *GlobalVmExtensionPoliciesDeleteCall { c.urlParams_.Set("requestId", requestId) return c } @@ -20732,36 +24821,35 @@ func (c *HttpsHealthChecksInsertCall) RequestId(requestId string) *HttpsHealthCh // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *HttpsHealthChecksInsertCall) Fields(s ...googleapi.Field) *HttpsHealthChecksInsertCall { +func (c *GlobalVmExtensionPoliciesDeleteCall) Fields(s ...googleapi.Field) *GlobalVmExtensionPoliciesDeleteCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } // Context sets the context to be used in this call's Do method. -func (c *HttpsHealthChecksInsertCall) Context(ctx context.Context) *HttpsHealthChecksInsertCall { +func (c *GlobalVmExtensionPoliciesDeleteCall) Context(ctx context.Context) *GlobalVmExtensionPoliciesDeleteCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *HttpsHealthChecksInsertCall) Header() http.Header { +func (c *GlobalVmExtensionPoliciesDeleteCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *HttpsHealthChecksInsertCall) doRequest(alt string) (*http.Response, error) { +func (c *GlobalVmExtensionPoliciesDeleteCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) - var body io.Reader = nil - body, err := googleapi.WithoutDataWrapper.JSONReader(c.httpshealthcheck) + body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.globalvmextensionpolicyrolloutoperationrolloutinput) if err != nil { return nil, err } c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/httpsHealthChecks") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/vmExtensionPolicies/{globalVmExtensionPolicy}/delete") urls += "?" + c.urlParams_.Encode() req, err := http.NewRequest("POST", urls, body) if err != nil { @@ -20769,17 +24857,19 @@ func (c *HttpsHealthChecksInsertCall) doRequest(alt string) (*http.Response, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, + "project": c.project, + "globalVmExtensionPolicy": c.globalVmExtensionPolicy, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.globalVmExtensionPolicies.delete", "request", internallog.HTTPRequest(req, body.Bytes())) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.httpsHealthChecks.insert" call. +// Do executes the "compute.globalVmExtensionPolicies.delete" call. // 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 *HttpsHealthChecksInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) { +func (c *GlobalVmExtensionPoliciesDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -20805,113 +24895,40 @@ func (c *HttpsHealthChecksInsertCall) Do(opts ...googleapi.CallOption) (*Operati }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.globalVmExtensionPolicies.delete", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type HttpsHealthChecksListCall struct { - s *Service - project string - urlParams_ gensupport.URLParams - ifNoneMatch_ string - ctx_ context.Context - header_ http.Header +type GlobalVmExtensionPoliciesGetCall struct { + s *Service + project string + globalVmExtensionPolicy string + urlParams_ gensupport.URLParams + ifNoneMatch_ string + ctx_ context.Context + header_ http.Header } -// List: Retrieves the list of HttpsHealthCheck resources available to the -// specified project. +// Get: Gets details of a global VM extension policy. // -// - project: Project ID for this request. -func (r *HttpsHealthChecksService) List(project string) *HttpsHealthChecksListCall { - c := &HttpsHealthChecksListCall{s: r.s, urlParams_: make(gensupport.URLParams)} +// - globalVmExtensionPolicy: Name of the GlobalVmExtensionPolicy resource to +// return. +// - project: Project ID for this request. +func (r *GlobalVmExtensionPoliciesService) Get(project string, globalVmExtensionPolicy string) *GlobalVmExtensionPoliciesGetCall { + c := &GlobalVmExtensionPoliciesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project - return c -} - -// Filter sets the optional parameter "filter": A filter expression that -// filters resources listed in the response. Most Compute resources support two -// types of filter expressions: expressions that support regular expressions -// and expressions that follow API improvement proposal AIP-160. These two -// types of filter expressions cannot be mixed in one request. If you want to -// use AIP-160, your expression must specify the field name, an operator, and -// the value that you want to use for filtering. The value must be a string, a -// number, or a boolean. The 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`. The `:*` comparison can be used to test whether a key has -// been defined. For example, to find all objects with `owner` label use: ``` -// labels.owner:* ``` 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) ``` If you want to use a regular -// expression, use the `eq` (equal) or `ne` (not equal) operator against a -// single un-parenthesized expression with or without quotes or against -// multiple parenthesized expressions. Examples: `fieldname eq unquoted -// literal` `fieldname eq 'single quoted literal'` `fieldname eq "double quoted -// literal" `(fieldname1 eq literal) (fieldname2 ne "literal")` The literal -// value is interpreted as a regular expression using Google RE2 library -// syntax. The literal value must match the entire field. For example, to -// filter for instances that do not end with name "instance", you would use -// `name ne .*instance`. You cannot combine constraints on multiple fields -// using regular expressions. -func (c *HttpsHealthChecksListCall) Filter(filter string) *HttpsHealthChecksListCall { - 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 *HttpsHealthChecksListCall) MaxResults(maxResults int64) *HttpsHealthChecksListCall { - 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 *HttpsHealthChecksListCall) OrderBy(orderBy string) *HttpsHealthChecksListCall { - 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 *HttpsHealthChecksListCall) PageToken(pageToken string) *HttpsHealthChecksListCall { - c.urlParams_.Set("pageToken", pageToken) - return c -} - -// ReturnPartialSuccess sets the optional parameter "returnPartialSuccess": -// Opt-in for partial success behavior which provides partial results in case -// of failure. The default value is false. For example, when partial success -// behavior is enabled, aggregatedList for a single zone scope either returns -// all resources in the zone or no resources, with an error code. -func (c *HttpsHealthChecksListCall) ReturnPartialSuccess(returnPartialSuccess bool) *HttpsHealthChecksListCall { - c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess)) + c.globalVmExtensionPolicy = globalVmExtensionPolicy return c } // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *HttpsHealthChecksListCall) Fields(s ...googleapi.Field) *HttpsHealthChecksListCall { +func (c *GlobalVmExtensionPoliciesGetCall) Fields(s ...googleapi.Field) *GlobalVmExtensionPoliciesGetCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } @@ -20919,54 +24936,55 @@ func (c *HttpsHealthChecksListCall) Fields(s ...googleapi.Field) *HttpsHealthChe // IfNoneMatch sets an 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. -func (c *HttpsHealthChecksListCall) IfNoneMatch(entityTag string) *HttpsHealthChecksListCall { +func (c *GlobalVmExtensionPoliciesGetCall) IfNoneMatch(entityTag string) *GlobalVmExtensionPoliciesGetCall { c.ifNoneMatch_ = entityTag return c } // Context sets the context to be used in this call's Do method. -func (c *HttpsHealthChecksListCall) Context(ctx context.Context) *HttpsHealthChecksListCall { +func (c *GlobalVmExtensionPoliciesGetCall) Context(ctx context.Context) *GlobalVmExtensionPoliciesGetCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *HttpsHealthChecksListCall) Header() http.Header { +func (c *GlobalVmExtensionPoliciesGetCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *HttpsHealthChecksListCall) doRequest(alt string) (*http.Response, error) { +func (c *GlobalVmExtensionPoliciesGetCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) if c.ifNoneMatch_ != "" { reqHeaders.Set("If-None-Match", c.ifNoneMatch_) } - var body io.Reader = nil c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/httpsHealthChecks") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/vmExtensionPolicies/{globalVmExtensionPolicy}") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("GET", urls, body) + req, err := http.NewRequest("GET", urls, nil) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, + "project": c.project, + "globalVmExtensionPolicy": c.globalVmExtensionPolicy, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.globalVmExtensionPolicies.get", "request", internallog.HTTPRequest(req, nil)) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.httpsHealthChecks.list" call. +// Do executes the "compute.globalVmExtensionPolicies.get" call. // Any non-2xx status code is an error. Response headers are in either -// *HttpsHealthCheckList.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 *HttpsHealthChecksListCall) Do(opts ...googleapi.CallOption) (*HttpsHealthCheckList, error) { +// *GlobalVmExtensionPolicy.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 *GlobalVmExtensionPoliciesGetCall) Do(opts ...googleapi.CallOption) (*GlobalVmExtensionPolicy, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -20985,75 +25003,58 @@ func (c *HttpsHealthChecksListCall) Do(opts ...googleapi.CallOption) (*HttpsHeal if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } - ret := &HttpsHealthCheckList{ + ret := &GlobalVmExtensionPolicy{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.globalVmExtensionPolicies.get", "response", internallog.HTTPResponse(res, b)) return ret, nil } -// 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 *HttpsHealthChecksListCall) Pages(ctx context.Context, f func(*HttpsHealthCheckList) error) error { - c.ctx_ = ctx - defer c.PageToken(c.urlParams_.Get("pageToken")) - 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) - } -} - -type HttpsHealthChecksPatchCall struct { - s *Service - project string - httpsHealthCheck string - httpshealthcheck *HttpsHealthCheck - urlParams_ gensupport.URLParams - ctx_ context.Context - header_ http.Header +type GlobalVmExtensionPoliciesInsertCall struct { + s *Service + project string + globalvmextensionpolicy *GlobalVmExtensionPolicy + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header } -// Patch: Updates a HttpsHealthCheck resource in the specified project using -// the data included in the request. This method supports PATCH semantics and -// uses the JSON merge patch format and processing rules. +// Insert: Creates a new project level GlobalVmExtensionPolicy. // -// - httpsHealthCheck: Name of the HttpsHealthCheck resource to patch. // - project: Project ID for this request. -func (r *HttpsHealthChecksService) Patch(project string, httpsHealthCheck string, httpshealthcheck *HttpsHealthCheck) *HttpsHealthChecksPatchCall { - c := &HttpsHealthChecksPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)} +func (r *GlobalVmExtensionPoliciesService) Insert(project string, globalvmextensionpolicy *GlobalVmExtensionPolicy) *GlobalVmExtensionPoliciesInsertCall { + c := &GlobalVmExtensionPoliciesInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project - c.httpsHealthCheck = httpsHealthCheck - c.httpshealthcheck = httpshealthcheck + c.globalvmextensionpolicy = globalvmextensionpolicy 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 *HttpsHealthChecksPatchCall) RequestId(requestId string) *HttpsHealthChecksPatchCall { +// 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 *GlobalVmExtensionPoliciesInsertCall) RequestId(requestId string) *GlobalVmExtensionPoliciesInsertCall { c.urlParams_.Set("requestId", requestId) return c } @@ -21061,55 +25062,54 @@ func (c *HttpsHealthChecksPatchCall) RequestId(requestId string) *HttpsHealthChe // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *HttpsHealthChecksPatchCall) Fields(s ...googleapi.Field) *HttpsHealthChecksPatchCall { +func (c *GlobalVmExtensionPoliciesInsertCall) Fields(s ...googleapi.Field) *GlobalVmExtensionPoliciesInsertCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } // Context sets the context to be used in this call's Do method. -func (c *HttpsHealthChecksPatchCall) Context(ctx context.Context) *HttpsHealthChecksPatchCall { +func (c *GlobalVmExtensionPoliciesInsertCall) Context(ctx context.Context) *GlobalVmExtensionPoliciesInsertCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *HttpsHealthChecksPatchCall) Header() http.Header { +func (c *GlobalVmExtensionPoliciesInsertCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *HttpsHealthChecksPatchCall) doRequest(alt string) (*http.Response, error) { +func (c *GlobalVmExtensionPoliciesInsertCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) - var body io.Reader = nil - body, err := googleapi.WithoutDataWrapper.JSONReader(c.httpshealthcheck) + body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.globalvmextensionpolicy) if err != nil { return nil, err } c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/httpsHealthChecks/{httpsHealthCheck}") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/vmExtensionPolicies") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("PATCH", urls, body) + req, err := http.NewRequest("POST", urls, body) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "httpsHealthCheck": c.httpsHealthCheck, + "project": c.project, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.globalVmExtensionPolicies.insert", "request", internallog.HTTPRequest(req, body.Bytes())) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.httpsHealthChecks.patch" call. +// Do executes the "compute.globalVmExtensionPolicies.insert" call. // 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 *HttpsHealthChecksPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) { +func (c *GlobalVmExtensionPoliciesInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -21135,102 +25135,219 @@ func (c *HttpsHealthChecksPatchCall) Do(opts ...googleapi.CallOption) (*Operatio }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.globalVmExtensionPolicies.insert", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type HttpsHealthChecksUpdateCall struct { - s *Service - project string - httpsHealthCheck string - httpshealthcheck *HttpsHealthCheck - urlParams_ gensupport.URLParams - ctx_ context.Context - header_ http.Header +type GlobalVmExtensionPoliciesListCall struct { + s *Service + project string + urlParams_ gensupport.URLParams + ifNoneMatch_ string + ctx_ context.Context + header_ http.Header } -// Update: Updates a HttpsHealthCheck resource in the specified project using -// the data included in the request. +// List: Lists global VM extension policies. // -// - httpsHealthCheck: Name of the HttpsHealthCheck resource to update. // - project: Project ID for this request. -func (r *HttpsHealthChecksService) Update(project string, httpsHealthCheck string, httpshealthcheck *HttpsHealthCheck) *HttpsHealthChecksUpdateCall { - c := &HttpsHealthChecksUpdateCall{s: r.s, urlParams_: make(gensupport.URLParams)} +func (r *GlobalVmExtensionPoliciesService) List(project string) *GlobalVmExtensionPoliciesListCall { + c := &GlobalVmExtensionPoliciesListCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project - c.httpsHealthCheck = httpsHealthCheck - c.httpshealthcheck = httpshealthcheck 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 *HttpsHealthChecksUpdateCall) RequestId(requestId string) *HttpsHealthChecksUpdateCall { - c.urlParams_.Set("requestId", requestId) +// Filter sets the optional parameter "filter": A filter expression that +// filters resources listed in the response. Most +// Compute resources support two types of filter expressions: +// expressions that support regular expressions and expressions that follow +// API improvement proposal AIP-160. +// These two types of filter expressions cannot be mixed in one request. +// +// If you want to use AIP-160, your expression must specify the field name, +// an +// operator, and the value that you want to use for filtering. The value +// must be a string, a number, or a boolean. The 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`. +// +// The `:*` comparison can be used to test whether a key has been defined. +// For example, to find all objects with `owner` label +// use: +// ``` +// labels.owner:* +// ``` +// +// 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 onresource 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) +// ``` +// +// If you want to use a regular expression, use the `eq` (equal) or `ne` +// (not equal) operator against a single un-parenthesized expression with +// or +// without quotes or against multiple parenthesized expressions. +// Examples: +// +// `fieldname eq unquoted literal` +// `fieldname eq 'single quoted literal'` +// `fieldname eq "double quoted literal" +// `(fieldname1 eq literal) (fieldname2 ne "literal")` +// +// The literal value is interpreted as a regular expression using GoogleRE2 +// library syntax. +// The literal value must match the entire field. +// +// For example, to filter for instances that do not end with name +// "instance", +// you would use `name ne .*instance`. +// +// You cannot combine constraints on multiple fields using regular +// expressions. +func (c *GlobalVmExtensionPoliciesListCall) Filter(filter string) *GlobalVmExtensionPoliciesListCall { + 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 *GlobalVmExtensionPoliciesListCall) MaxResults(maxResults int64) *GlobalVmExtensionPoliciesListCall { + 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 *GlobalVmExtensionPoliciesListCall) OrderBy(orderBy string) *GlobalVmExtensionPoliciesListCall { + 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 *GlobalVmExtensionPoliciesListCall) PageToken(pageToken string) *GlobalVmExtensionPoliciesListCall { + c.urlParams_.Set("pageToken", pageToken) + return c +} + +// ReturnPartialSuccess sets the optional parameter "returnPartialSuccess": +// Opt-in for partial success behavior which provides partial results in +// case +// of failure. The default value is false. +// +// For example, when partial success behavior is enabled, aggregatedList for +// a +// single zone scope either returns all resources in the zone or no +// resources, +// with an error code. +func (c *GlobalVmExtensionPoliciesListCall) ReturnPartialSuccess(returnPartialSuccess bool) *GlobalVmExtensionPoliciesListCall { + c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess)) return c } // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *HttpsHealthChecksUpdateCall) Fields(s ...googleapi.Field) *HttpsHealthChecksUpdateCall { +func (c *GlobalVmExtensionPoliciesListCall) Fields(s ...googleapi.Field) *GlobalVmExtensionPoliciesListCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } +// IfNoneMatch sets an 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. +func (c *GlobalVmExtensionPoliciesListCall) IfNoneMatch(entityTag string) *GlobalVmExtensionPoliciesListCall { + c.ifNoneMatch_ = entityTag + return c +} + // Context sets the context to be used in this call's Do method. -func (c *HttpsHealthChecksUpdateCall) Context(ctx context.Context) *HttpsHealthChecksUpdateCall { +func (c *GlobalVmExtensionPoliciesListCall) Context(ctx context.Context) *GlobalVmExtensionPoliciesListCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *HttpsHealthChecksUpdateCall) Header() http.Header { +func (c *GlobalVmExtensionPoliciesListCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *HttpsHealthChecksUpdateCall) doRequest(alt string) (*http.Response, error) { - reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) - var body io.Reader = nil - body, err := googleapi.WithoutDataWrapper.JSONReader(c.httpshealthcheck) - if err != nil { - return nil, err +func (c *GlobalVmExtensionPoliciesListCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) + if c.ifNoneMatch_ != "" { + reqHeaders.Set("If-None-Match", c.ifNoneMatch_) } c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/httpsHealthChecks/{httpsHealthCheck}") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/vmExtensionPolicies") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("PUT", urls, body) + req, err := http.NewRequest("GET", urls, nil) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "httpsHealthCheck": c.httpsHealthCheck, + "project": c.project, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.globalVmExtensionPolicies.list", "request", internallog.HTTPRequest(req, nil)) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.httpsHealthChecks.update" call. +// Do executes the "compute.globalVmExtensionPolicies.list" call. // 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 *HttpsHealthChecksUpdateCall) Do(opts ...googleapi.CallOption) (*Operation, error) { +// *GlobalVmExtensionPolicyList.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 *GlobalVmExtensionPoliciesListCall) Do(opts ...googleapi.CallOption) (*GlobalVmExtensionPolicyList, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -21249,105 +25366,138 @@ func (c *HttpsHealthChecksUpdateCall) Do(opts ...googleapi.CallOption) (*Operati if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } - ret := &Operation{ + ret := &GlobalVmExtensionPolicyList{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.globalVmExtensionPolicies.list", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type ImageFamilyViewsGetCall struct { - s *Service - project string - zone string - family string - urlParams_ gensupport.URLParams - ifNoneMatch_ string - ctx_ context.Context - header_ http.Header +// 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 *GlobalVmExtensionPoliciesListCall) Pages(ctx context.Context, f func(*GlobalVmExtensionPolicyList) error) error { + c.ctx_ = ctx + defer c.PageToken(c.urlParams_.Get("pageToken")) + 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) + } } -// Get: Returns the latest image that is part of an image family, is not -// deprecated and is rolled out in the specified zone. +type GlobalVmExtensionPoliciesUpdateCall struct { + s *Service + project string + globalVmExtensionPolicy string + globalvmextensionpolicy *GlobalVmExtensionPolicy + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header +} + +// Update: Updates a global VM extension policy. // -// - family: Name of the image family to search for. +// - globalVmExtensionPolicy: Name of the global VM extension policy to update. // - project: Project ID for this request. -// - zone: The name of the zone for this request. -func (r *ImageFamilyViewsService) Get(project string, zone string, family string) *ImageFamilyViewsGetCall { - c := &ImageFamilyViewsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)} +func (r *GlobalVmExtensionPoliciesService) Update(project string, globalVmExtensionPolicy string, globalvmextensionpolicy *GlobalVmExtensionPolicy) *GlobalVmExtensionPoliciesUpdateCall { + c := &GlobalVmExtensionPoliciesUpdateCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project - c.zone = zone - c.family = family + c.globalVmExtensionPolicy = globalVmExtensionPolicy + c.globalvmextensionpolicy = globalvmextensionpolicy + 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 *GlobalVmExtensionPoliciesUpdateCall) RequestId(requestId string) *GlobalVmExtensionPoliciesUpdateCall { + 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 // details. -func (c *ImageFamilyViewsGetCall) Fields(s ...googleapi.Field) *ImageFamilyViewsGetCall { +func (c *GlobalVmExtensionPoliciesUpdateCall) Fields(s ...googleapi.Field) *GlobalVmExtensionPoliciesUpdateCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } -// IfNoneMatch sets an 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. -func (c *ImageFamilyViewsGetCall) IfNoneMatch(entityTag string) *ImageFamilyViewsGetCall { - c.ifNoneMatch_ = entityTag - return c -} - // Context sets the context to be used in this call's Do method. -func (c *ImageFamilyViewsGetCall) Context(ctx context.Context) *ImageFamilyViewsGetCall { +func (c *GlobalVmExtensionPoliciesUpdateCall) Context(ctx context.Context) *GlobalVmExtensionPoliciesUpdateCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *ImageFamilyViewsGetCall) Header() http.Header { +func (c *GlobalVmExtensionPoliciesUpdateCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *ImageFamilyViewsGetCall) doRequest(alt string) (*http.Response, error) { - reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) - if c.ifNoneMatch_ != "" { - reqHeaders.Set("If-None-Match", c.ifNoneMatch_) +func (c *GlobalVmExtensionPoliciesUpdateCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) + body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.globalvmextensionpolicy) + if err != nil { + return nil, err } - var body io.Reader = nil c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/imageFamilyViews/{family}") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/vmExtensionPolicies/{globalVmExtensionPolicy}") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("GET", urls, body) + req, err := http.NewRequest("PATCH", urls, body) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "zone": c.zone, - "family": c.family, + "project": c.project, + "globalVmExtensionPolicy": c.globalVmExtensionPolicy, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.globalVmExtensionPolicies.update", "request", internallog.HTTPRequest(req, body.Bytes())) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.imageFamilyViews.get" call. +// Do executes the "compute.globalVmExtensionPolicies.update" call. // Any non-2xx status code is an error. Response headers are in either -// *ImageFamilyView.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 *ImageFamilyViewsGetCall) Do(opts ...googleapi.CallOption) (*ImageFamilyView, error) { +// *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 *GlobalVmExtensionPoliciesUpdateCall) Do(opts ...googleapi.CallOption) (*Operation, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -21366,102 +25516,258 @@ func (c *ImageFamilyViewsGetCall) Do(opts ...googleapi.CallOption) (*ImageFamily if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } - ret := &ImageFamilyView{ + ret := &Operation{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.globalVmExtensionPolicies.update", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type ImagesDeleteCall struct { - s *Service - project string - image string - urlParams_ gensupport.URLParams - ctx_ context.Context - header_ http.Header +type HealthChecksAggregatedListCall struct { + s *Service + project string + urlParams_ gensupport.URLParams + ifNoneMatch_ string + ctx_ context.Context + header_ http.Header } -// Delete: Deletes the specified image. +// AggregatedList: Retrieves the list of all HealthCheck resources, regional +// and global, +// available to the specified project. // -// - image: Name of the image resource to delete. -// - project: Project ID for this request. -func (r *ImagesService) Delete(project string, image string) *ImagesDeleteCall { - c := &ImagesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)} +// To prevent failure, Google recommends that you set +// the +// `returnPartialSuccess` parameter to `true`. +// +// - project: Name of the project scoping this request. +func (r *HealthChecksService) AggregatedList(project string) *HealthChecksAggregatedListCall { + c := &HealthChecksAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project - c.image = image 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 *ImagesDeleteCall) RequestId(requestId string) *ImagesDeleteCall { - c.urlParams_.Set("requestId", requestId) +// Filter sets the optional parameter "filter": A filter expression that +// filters resources listed in the response. Most +// Compute resources support two types of filter expressions: +// expressions that support regular expressions and expressions that follow +// API improvement proposal AIP-160. +// These two types of filter expressions cannot be mixed in one request. +// +// If you want to use AIP-160, your expression must specify the field name, +// an +// operator, and the value that you want to use for filtering. The value +// must be a string, a number, or a boolean. The 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`. +// +// The `:*` comparison can be used to test whether a key has been defined. +// For example, to find all objects with `owner` label +// use: +// ``` +// labels.owner:* +// ``` +// +// 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 onresource 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) +// ``` +// +// If you want to use a regular expression, use the `eq` (equal) or `ne` +// (not equal) operator against a single un-parenthesized expression with +// or +// without quotes or against multiple parenthesized expressions. +// Examples: +// +// `fieldname eq unquoted literal` +// `fieldname eq 'single quoted literal'` +// `fieldname eq "double quoted literal" +// `(fieldname1 eq literal) (fieldname2 ne "literal")` +// +// The literal value is interpreted as a regular expression using GoogleRE2 +// library syntax. +// The literal value must match the entire field. +// +// For example, to filter for instances that do not end with name +// "instance", +// you would use `name ne .*instance`. +// +// You cannot combine constraints on multiple fields using regular +// expressions. +func (c *HealthChecksAggregatedListCall) Filter(filter string) *HealthChecksAggregatedListCall { + c.urlParams_.Set("filter", filter) + return c +} + +// IncludeAllScopes sets the optional parameter "includeAllScopes": Indicates +// whether every visible scope for each scope type (zone, region, +// global) should be included in the response. For new resource types +// added +// after this field, the flag has no effect as new resource types will +// always +// include every visible scope for each scope type in response. For +// resource +// types which predate this field, if this flag is omitted or false, +// only +// scopes of the scope types where the resource type is expected to be +// found +// will be included. +func (c *HealthChecksAggregatedListCall) IncludeAllScopes(includeAllScopes bool) *HealthChecksAggregatedListCall { + c.urlParams_.Set("includeAllScopes", fmt.Sprint(includeAllScopes)) + 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 *HealthChecksAggregatedListCall) MaxResults(maxResults int64) *HealthChecksAggregatedListCall { + 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 *HealthChecksAggregatedListCall) OrderBy(orderBy string) *HealthChecksAggregatedListCall { + 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 *HealthChecksAggregatedListCall) PageToken(pageToken string) *HealthChecksAggregatedListCall { + c.urlParams_.Set("pageToken", pageToken) + return c +} + +// ReturnPartialSuccess sets the optional parameter "returnPartialSuccess": +// Opt-in for partial success behavior which provides partial results in +// case +// of failure. The default value is false. +// +// For example, when partial success behavior is enabled, aggregatedList for +// a +// single zone scope either returns all resources in the zone or no +// resources, +// with an error code. +func (c *HealthChecksAggregatedListCall) ReturnPartialSuccess(returnPartialSuccess bool) *HealthChecksAggregatedListCall { + c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess)) + return c +} + +// ServiceProjectNumber sets the optional parameter "serviceProjectNumber": The +// Shared VPC service project id or service project number for which +// aggregated list request is invoked for subnetworks list-usable api. +func (c *HealthChecksAggregatedListCall) ServiceProjectNumber(serviceProjectNumber int64) *HealthChecksAggregatedListCall { + c.urlParams_.Set("serviceProjectNumber", fmt.Sprint(serviceProjectNumber)) return c } // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *ImagesDeleteCall) Fields(s ...googleapi.Field) *ImagesDeleteCall { +func (c *HealthChecksAggregatedListCall) Fields(s ...googleapi.Field) *HealthChecksAggregatedListCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } +// IfNoneMatch sets an 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. +func (c *HealthChecksAggregatedListCall) IfNoneMatch(entityTag string) *HealthChecksAggregatedListCall { + c.ifNoneMatch_ = entityTag + return c +} + // Context sets the context to be used in this call's Do method. -func (c *ImagesDeleteCall) Context(ctx context.Context) *ImagesDeleteCall { +func (c *HealthChecksAggregatedListCall) Context(ctx context.Context) *HealthChecksAggregatedListCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *ImagesDeleteCall) Header() http.Header { +func (c *HealthChecksAggregatedListCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *ImagesDeleteCall) doRequest(alt string) (*http.Response, error) { +func (c *HealthChecksAggregatedListCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) - var body io.Reader = nil + if c.ifNoneMatch_ != "" { + reqHeaders.Set("If-None-Match", c.ifNoneMatch_) + } c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/images/{image}") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/aggregated/healthChecks") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("DELETE", urls, body) + req, err := http.NewRequest("GET", urls, nil) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ "project": c.project, - "image": c.image, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.healthChecks.aggregatedList", "request", internallog.HTTPRequest(req, nil)) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.images.delete" call. +// Do executes the "compute.healthChecks.aggregatedList" call. // 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 *ImagesDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) { +// *HealthChecksAggregatedList.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 *HealthChecksAggregatedListCall) Do(opts ...googleapi.CallOption) (*HealthChecksAggregatedList, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -21480,53 +25786,80 @@ func (c *ImagesDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } - ret := &Operation{ + ret := &HealthChecksAggregatedList{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.healthChecks.aggregatedList", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type ImagesDeprecateCall struct { - s *Service - project string - image string - deprecationstatus *DeprecationStatus - urlParams_ gensupport.URLParams - ctx_ context.Context - header_ http.Header +// 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 *HealthChecksAggregatedListCall) Pages(ctx context.Context, f func(*HealthChecksAggregatedList) error) error { + c.ctx_ = ctx + defer c.PageToken(c.urlParams_.Get("pageToken")) + 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) + } +} + +type HealthChecksDeleteCall struct { + s *Service + project string + healthCheck string + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header } -// Deprecate: Sets the deprecation status of an image. If an empty request body -// is given, clears the deprecation status instead. +// Delete: Deletes the specified HealthCheck resource. // -// - image: Image name. +// - healthCheck: Name of the HealthCheck resource to delete. // - project: Project ID for this request. -func (r *ImagesService) Deprecate(project string, image string, deprecationstatus *DeprecationStatus) *ImagesDeprecateCall { - c := &ImagesDeprecateCall{s: r.s, urlParams_: make(gensupport.URLParams)} +func (r *HealthChecksService) Delete(project string, healthCheck string) *HealthChecksDeleteCall { + c := &HealthChecksDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project - c.image = image - c.deprecationstatus = deprecationstatus + c.healthCheck = healthCheck 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 *ImagesDeprecateCall) RequestId(requestId string) *ImagesDeprecateCall { +// 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 *HealthChecksDeleteCall) RequestId(requestId string) *HealthChecksDeleteCall { c.urlParams_.Set("requestId", requestId) return c } @@ -21534,55 +25867,51 @@ func (c *ImagesDeprecateCall) RequestId(requestId string) *ImagesDeprecateCall { // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *ImagesDeprecateCall) Fields(s ...googleapi.Field) *ImagesDeprecateCall { +func (c *HealthChecksDeleteCall) Fields(s ...googleapi.Field) *HealthChecksDeleteCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } // Context sets the context to be used in this call's Do method. -func (c *ImagesDeprecateCall) Context(ctx context.Context) *ImagesDeprecateCall { +func (c *HealthChecksDeleteCall) Context(ctx context.Context) *HealthChecksDeleteCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *ImagesDeprecateCall) Header() http.Header { +func (c *HealthChecksDeleteCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *ImagesDeprecateCall) doRequest(alt string) (*http.Response, error) { - reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) - var body io.Reader = nil - body, err := googleapi.WithoutDataWrapper.JSONReader(c.deprecationstatus) - if err != nil { - return nil, err - } +func (c *HealthChecksDeleteCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/images/{image}/deprecate") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/healthChecks/{healthCheck}") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("POST", urls, body) + req, err := http.NewRequest("DELETE", urls, nil) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "image": c.image, + "project": c.project, + "healthCheck": c.healthCheck, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.healthChecks.delete", "request", internallog.HTTPRequest(req, nil)) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.images.deprecate" call. +// Do executes the "compute.healthChecks.delete" call. // 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 *ImagesDeprecateCall) Do(opts ...googleapi.CallOption) (*Operation, error) { +func (c *HealthChecksDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -21608,37 +25937,39 @@ func (c *ImagesDeprecateCall) Do(opts ...googleapi.CallOption) (*Operation, erro }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.healthChecks.delete", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type ImagesGetCall struct { +type HealthChecksGetCall struct { s *Service project string - image string + healthCheck string urlParams_ gensupport.URLParams ifNoneMatch_ string ctx_ context.Context header_ http.Header } -// Get: Returns the specified image. +// Get: Returns the specified HealthCheck resource. // -// - image: Name of the image resource to return. +// - healthCheck: Name of the HealthCheck resource to return. // - project: Project ID for this request. -func (r *ImagesService) Get(project string, image string) *ImagesGetCall { - c := &ImagesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)} +func (r *HealthChecksService) Get(project string, healthCheck string) *HealthChecksGetCall { + c := &HealthChecksGetCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project - c.image = image + c.healthCheck = healthCheck return c } // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *ImagesGetCall) Fields(s ...googleapi.Field) *ImagesGetCall { +func (c *HealthChecksGetCall) Fields(s ...googleapi.Field) *HealthChecksGetCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } @@ -21646,54 +25977,54 @@ func (c *ImagesGetCall) Fields(s ...googleapi.Field) *ImagesGetCall { // IfNoneMatch sets an 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. -func (c *ImagesGetCall) IfNoneMatch(entityTag string) *ImagesGetCall { +func (c *HealthChecksGetCall) IfNoneMatch(entityTag string) *HealthChecksGetCall { c.ifNoneMatch_ = entityTag return c } // Context sets the context to be used in this call's Do method. -func (c *ImagesGetCall) Context(ctx context.Context) *ImagesGetCall { +func (c *HealthChecksGetCall) Context(ctx context.Context) *HealthChecksGetCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *ImagesGetCall) Header() http.Header { +func (c *HealthChecksGetCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *ImagesGetCall) doRequest(alt string) (*http.Response, error) { +func (c *HealthChecksGetCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) if c.ifNoneMatch_ != "" { reqHeaders.Set("If-None-Match", c.ifNoneMatch_) } - var body io.Reader = nil c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/images/{image}") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/healthChecks/{healthCheck}") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("GET", urls, body) + req, err := http.NewRequest("GET", urls, nil) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "image": c.image, + "project": c.project, + "healthCheck": c.healthCheck, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.healthChecks.get", "request", internallog.HTTPRequest(req, nil)) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.images.get" call. +// Do executes the "compute.healthChecks.get" call. // Any non-2xx status code is an error. Response headers are in either -// *Image.ServerResponse.Header or (if a response was returned at all) in +// *HealthCheck.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 *ImagesGetCall) Do(opts ...googleapi.CallOption) (*Image, error) { +func (c *HealthChecksGetCall) Do(opts ...googleapi.CallOption) (*HealthCheck, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -21712,102 +26043,115 @@ func (c *ImagesGetCall) Do(opts ...googleapi.CallOption) (*Image, error) { if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } - ret := &Image{ + ret := &HealthCheck{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.healthChecks.get", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type ImagesGetFromFamilyCall struct { - s *Service - project string - family string - urlParams_ gensupport.URLParams - ifNoneMatch_ string - ctx_ context.Context - header_ http.Header +type HealthChecksInsertCall struct { + s *Service + project string + healthcheck *HealthCheck + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header } -// GetFromFamily: Returns the latest image that is part of an image family and -// is not deprecated. For more information on image families, see Public image -// families documentation. +// Insert: Creates a HealthCheck resource in the specified project using the +// data +// included in the request. // -// - family: Name of the image family to search for. -// - project: The image project that the image belongs to. For example, to get -// a CentOS image, specify centos-cloud as the image project. -func (r *ImagesService) GetFromFamily(project string, family string) *ImagesGetFromFamilyCall { - c := &ImagesGetFromFamilyCall{s: r.s, urlParams_: make(gensupport.URLParams)} +// - project: Project ID for this request. +func (r *HealthChecksService) Insert(project string, healthcheck *HealthCheck) *HealthChecksInsertCall { + c := &HealthChecksInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project - c.family = family + c.healthcheck = healthcheck + 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 *HealthChecksInsertCall) RequestId(requestId string) *HealthChecksInsertCall { + 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 // details. -func (c *ImagesGetFromFamilyCall) Fields(s ...googleapi.Field) *ImagesGetFromFamilyCall { +func (c *HealthChecksInsertCall) Fields(s ...googleapi.Field) *HealthChecksInsertCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } -// IfNoneMatch sets an 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. -func (c *ImagesGetFromFamilyCall) IfNoneMatch(entityTag string) *ImagesGetFromFamilyCall { - c.ifNoneMatch_ = entityTag - return c -} - // Context sets the context to be used in this call's Do method. -func (c *ImagesGetFromFamilyCall) Context(ctx context.Context) *ImagesGetFromFamilyCall { +func (c *HealthChecksInsertCall) Context(ctx context.Context) *HealthChecksInsertCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *ImagesGetFromFamilyCall) Header() http.Header { +func (c *HealthChecksInsertCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *ImagesGetFromFamilyCall) doRequest(alt string) (*http.Response, error) { - reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) - if c.ifNoneMatch_ != "" { - reqHeaders.Set("If-None-Match", c.ifNoneMatch_) +func (c *HealthChecksInsertCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) + body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.healthcheck) + if err != nil { + return nil, err } - var body io.Reader = nil c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/images/family/{family}") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/healthChecks") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("GET", urls, body) + req, err := http.NewRequest("POST", urls, body) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ "project": c.project, - "family": c.family, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.healthChecks.insert", "request", internallog.HTTPRequest(req, body.Bytes())) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.images.getFromFamily" call. +// Do executes the "compute.healthChecks.insert" call. // Any non-2xx status code is an error. Response headers are in either -// *Image.ServerResponse.Header or (if a response was returned at all) in +// *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 *ImagesGetFromFamilyCall) Do(opts ...googleapi.CallOption) (*Image, error) { +func (c *HealthChecksInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -21826,52 +26170,173 @@ func (c *ImagesGetFromFamilyCall) Do(opts ...googleapi.CallOption) (*Image, erro if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } - ret := &Image{ + ret := &Operation{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.healthChecks.insert", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type ImagesGetIamPolicyCall struct { +type HealthChecksListCall struct { s *Service project string - resource string urlParams_ gensupport.URLParams ifNoneMatch_ string ctx_ context.Context header_ http.Header } -// GetIamPolicy: Gets the access control policy for a resource. May be empty if -// no such policy or resource exists. +// List: Retrieves the list of HealthCheck resources available to the +// specified +// project. // // - project: Project ID for this request. -// - resource: Name or id of the resource for this request. -func (r *ImagesService) GetIamPolicy(project string, resource string) *ImagesGetIamPolicyCall { - c := &ImagesGetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)} +func (r *HealthChecksService) List(project string) *HealthChecksListCall { + c := &HealthChecksListCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project - c.resource = resource return c } -// OptionsRequestedPolicyVersion sets the optional parameter -// "optionsRequestedPolicyVersion": Requested IAM Policy version. -func (c *ImagesGetIamPolicyCall) OptionsRequestedPolicyVersion(optionsRequestedPolicyVersion int64) *ImagesGetIamPolicyCall { - c.urlParams_.Set("optionsRequestedPolicyVersion", fmt.Sprint(optionsRequestedPolicyVersion)) +// Filter sets the optional parameter "filter": A filter expression that +// filters resources listed in the response. Most +// Compute resources support two types of filter expressions: +// expressions that support regular expressions and expressions that follow +// API improvement proposal AIP-160. +// These two types of filter expressions cannot be mixed in one request. +// +// If you want to use AIP-160, your expression must specify the field name, +// an +// operator, and the value that you want to use for filtering. The value +// must be a string, a number, or a boolean. The 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`. +// +// The `:*` comparison can be used to test whether a key has been defined. +// For example, to find all objects with `owner` label +// use: +// ``` +// labels.owner:* +// ``` +// +// 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 onresource 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) +// ``` +// +// If you want to use a regular expression, use the `eq` (equal) or `ne` +// (not equal) operator against a single un-parenthesized expression with +// or +// without quotes or against multiple parenthesized expressions. +// Examples: +// +// `fieldname eq unquoted literal` +// `fieldname eq 'single quoted literal'` +// `fieldname eq "double quoted literal" +// `(fieldname1 eq literal) (fieldname2 ne "literal")` +// +// The literal value is interpreted as a regular expression using GoogleRE2 +// library syntax. +// The literal value must match the entire field. +// +// For example, to filter for instances that do not end with name +// "instance", +// you would use `name ne .*instance`. +// +// You cannot combine constraints on multiple fields using regular +// expressions. +func (c *HealthChecksListCall) Filter(filter string) *HealthChecksListCall { + 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 *HealthChecksListCall) MaxResults(maxResults int64) *HealthChecksListCall { + 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 *HealthChecksListCall) OrderBy(orderBy string) *HealthChecksListCall { + 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 *HealthChecksListCall) PageToken(pageToken string) *HealthChecksListCall { + c.urlParams_.Set("pageToken", pageToken) + return c +} + +// ReturnPartialSuccess sets the optional parameter "returnPartialSuccess": +// Opt-in for partial success behavior which provides partial results in +// case +// of failure. The default value is false. +// +// For example, when partial success behavior is enabled, aggregatedList for +// a +// single zone scope either returns all resources in the zone or no +// resources, +// with an error code. +func (c *HealthChecksListCall) ReturnPartialSuccess(returnPartialSuccess bool) *HealthChecksListCall { + c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess)) return c } // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *ImagesGetIamPolicyCall) Fields(s ...googleapi.Field) *ImagesGetIamPolicyCall { +func (c *HealthChecksListCall) Fields(s ...googleapi.Field) *HealthChecksListCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } @@ -21879,54 +26344,54 @@ func (c *ImagesGetIamPolicyCall) Fields(s ...googleapi.Field) *ImagesGetIamPolic // IfNoneMatch sets an 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. -func (c *ImagesGetIamPolicyCall) IfNoneMatch(entityTag string) *ImagesGetIamPolicyCall { +func (c *HealthChecksListCall) IfNoneMatch(entityTag string) *HealthChecksListCall { c.ifNoneMatch_ = entityTag return c } // Context sets the context to be used in this call's Do method. -func (c *ImagesGetIamPolicyCall) Context(ctx context.Context) *ImagesGetIamPolicyCall { +func (c *HealthChecksListCall) Context(ctx context.Context) *HealthChecksListCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *ImagesGetIamPolicyCall) Header() http.Header { +func (c *HealthChecksListCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *ImagesGetIamPolicyCall) doRequest(alt string) (*http.Response, error) { +func (c *HealthChecksListCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) if c.ifNoneMatch_ != "" { reqHeaders.Set("If-None-Match", c.ifNoneMatch_) } - var body io.Reader = nil c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/images/{resource}/getIamPolicy") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/healthChecks") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("GET", urls, body) + req, err := http.NewRequest("GET", urls, nil) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "resource": c.resource, + "project": c.project, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.healthChecks.list", "request", internallog.HTTPRequest(req, nil)) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.images.getIamPolicy" call. +// Do executes the "compute.healthChecks.list" call. // Any non-2xx status code is an error. Response headers are in either -// *Policy.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 *ImagesGetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, error) { +// *HealthCheckList.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 *HealthChecksListCall) Do(opts ...googleapi.CallOption) (*HealthCheckList, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -21945,57 +26410,86 @@ func (c *ImagesGetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, erro if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } - ret := &Policy{ + ret := &HealthCheckList{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.healthChecks.list", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type ImagesInsertCall struct { - s *Service - project string - image *Image - urlParams_ gensupport.URLParams - ctx_ context.Context - header_ http.Header +// 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 *HealthChecksListCall) Pages(ctx context.Context, f func(*HealthCheckList) error) error { + c.ctx_ = ctx + defer c.PageToken(c.urlParams_.Get("pageToken")) + 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) + } } -// Insert: Creates an image in the specified project using the data included in -// the request. -// -// - project: Project ID for this request. -func (r *ImagesService) Insert(project string, image *Image) *ImagesInsertCall { - c := &ImagesInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)} - c.project = project - c.image = image - return c +type HealthChecksPatchCall struct { + s *Service + project string + healthCheck string + healthcheck *HealthCheck + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header } -// ForceCreate sets the optional parameter "forceCreate": Force image creation -// if true. -func (c *ImagesInsertCall) ForceCreate(forceCreate bool) *ImagesInsertCall { - c.urlParams_.Set("forceCreate", fmt.Sprint(forceCreate)) +// Patch: Updates a HealthCheck resource in the specified project using the +// data +// included in the request. This method supportsPATCH +// semantics and uses theJSON merge +// patch format and processing rules. +// +// - healthCheck: Name of the HealthCheck resource to patch. +// - project: Project ID for this request. +func (r *HealthChecksService) Patch(project string, healthCheck string, healthcheck *HealthCheck) *HealthChecksPatchCall { + c := &HealthChecksPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)} + c.project = project + c.healthCheck = healthCheck + c.healthcheck = healthcheck 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 *ImagesInsertCall) RequestId(requestId string) *ImagesInsertCall { +// 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 *HealthChecksPatchCall) RequestId(requestId string) *HealthChecksPatchCall { c.urlParams_.Set("requestId", requestId) return c } @@ -22003,54 +26497,55 @@ func (c *ImagesInsertCall) RequestId(requestId string) *ImagesInsertCall { // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *ImagesInsertCall) Fields(s ...googleapi.Field) *ImagesInsertCall { +func (c *HealthChecksPatchCall) Fields(s ...googleapi.Field) *HealthChecksPatchCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } // Context sets the context to be used in this call's Do method. -func (c *ImagesInsertCall) Context(ctx context.Context) *ImagesInsertCall { +func (c *HealthChecksPatchCall) Context(ctx context.Context) *HealthChecksPatchCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *ImagesInsertCall) Header() http.Header { +func (c *HealthChecksPatchCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *ImagesInsertCall) doRequest(alt string) (*http.Response, error) { +func (c *HealthChecksPatchCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) - var body io.Reader = nil - body, err := googleapi.WithoutDataWrapper.JSONReader(c.image) + body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.healthcheck) if err != nil { return nil, err } c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/images") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/healthChecks/{healthCheck}") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("POST", urls, body) + req, err := http.NewRequest("PATCH", urls, body) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, + "project": c.project, + "healthCheck": c.healthCheck, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.healthChecks.patch", "request", internallog.HTTPRequest(req, body.Bytes())) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.images.insert" call. +// Do executes the "compute.healthChecks.patch" call. // 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 *ImagesInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) { +func (c *HealthChecksPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -22076,171 +26571,90 @@ func (c *ImagesInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.healthChecks.patch", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type ImagesListCall struct { - s *Service - project string - urlParams_ gensupport.URLParams - ifNoneMatch_ string - ctx_ context.Context - header_ http.Header +type HealthChecksTestIamPermissionsCall struct { + s *Service + project string + resource string + testpermissionsrequest *TestPermissionsRequest + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header } -// List: Retrieves the list of custom images available to the specified -// project. Custom images are images you create that belong to your project. -// This method does not get any images that belong to other projects, including -// publicly-available images, like Debian 8. If you want to get a list of -// publicly-available images, use this method to make a request to the -// respective image project, such as debian-cloud or windows-cloud. +// TestIamPermissions: Returns permissions that a caller has on the specified +// resource. // // - project: Project ID for this request. -func (r *ImagesService) List(project string) *ImagesListCall { - c := &ImagesListCall{s: r.s, urlParams_: make(gensupport.URLParams)} +// - resource: Name or id of the resource for this request. +func (r *HealthChecksService) TestIamPermissions(project string, resource string, testpermissionsrequest *TestPermissionsRequest) *HealthChecksTestIamPermissionsCall { + c := &HealthChecksTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project - return c -} - -// Filter sets the optional parameter "filter": A filter expression that -// filters resources listed in the response. Most Compute resources support two -// types of filter expressions: expressions that support regular expressions -// and expressions that follow API improvement proposal AIP-160. These two -// types of filter expressions cannot be mixed in one request. If you want to -// use AIP-160, your expression must specify the field name, an operator, and -// the value that you want to use for filtering. The value must be a string, a -// number, or a boolean. The 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`. The `:*` comparison can be used to test whether a key has -// been defined. For example, to find all objects with `owner` label use: ``` -// labels.owner:* ``` 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) ``` If you want to use a regular -// expression, use the `eq` (equal) or `ne` (not equal) operator against a -// single un-parenthesized expression with or without quotes or against -// multiple parenthesized expressions. Examples: `fieldname eq unquoted -// literal` `fieldname eq 'single quoted literal'` `fieldname eq "double quoted -// literal" `(fieldname1 eq literal) (fieldname2 ne "literal")` The literal -// value is interpreted as a regular expression using Google RE2 library -// syntax. The literal value must match the entire field. For example, to -// filter for instances that do not end with name "instance", you would use -// `name ne .*instance`. You cannot combine constraints on multiple fields -// using regular expressions. -func (c *ImagesListCall) Filter(filter string) *ImagesListCall { - 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 *ImagesListCall) MaxResults(maxResults int64) *ImagesListCall { - 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 *ImagesListCall) OrderBy(orderBy string) *ImagesListCall { - 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 *ImagesListCall) PageToken(pageToken string) *ImagesListCall { - c.urlParams_.Set("pageToken", pageToken) - return c -} - -// ReturnPartialSuccess sets the optional parameter "returnPartialSuccess": -// Opt-in for partial success behavior which provides partial results in case -// of failure. The default value is false. For example, when partial success -// behavior is enabled, aggregatedList for a single zone scope either returns -// all resources in the zone or no resources, with an error code. -func (c *ImagesListCall) ReturnPartialSuccess(returnPartialSuccess bool) *ImagesListCall { - c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess)) + c.resource = resource + c.testpermissionsrequest = testpermissionsrequest return c } // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *ImagesListCall) Fields(s ...googleapi.Field) *ImagesListCall { +func (c *HealthChecksTestIamPermissionsCall) Fields(s ...googleapi.Field) *HealthChecksTestIamPermissionsCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } -// IfNoneMatch sets an 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. -func (c *ImagesListCall) IfNoneMatch(entityTag string) *ImagesListCall { - c.ifNoneMatch_ = entityTag - return c -} - // Context sets the context to be used in this call's Do method. -func (c *ImagesListCall) Context(ctx context.Context) *ImagesListCall { +func (c *HealthChecksTestIamPermissionsCall) Context(ctx context.Context) *HealthChecksTestIamPermissionsCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *ImagesListCall) Header() http.Header { +func (c *HealthChecksTestIamPermissionsCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *ImagesListCall) doRequest(alt string) (*http.Response, error) { - reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) - if c.ifNoneMatch_ != "" { - reqHeaders.Set("If-None-Match", c.ifNoneMatch_) +func (c *HealthChecksTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) + body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.testpermissionsrequest) + if err != nil { + return nil, err } - var body io.Reader = nil c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/images") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/healthChecks/{resource}/testIamPermissions") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("GET", urls, body) + req, err := http.NewRequest("POST", urls, body) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, + "project": c.project, + "resource": c.resource, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.healthChecks.testIamPermissions", "request", internallog.HTTPRequest(req, body.Bytes())) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.images.list" call. +// Do executes the "compute.healthChecks.testIamPermissions" call. // Any non-2xx status code is an error. Response headers are in either -// *ImageList.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 *ImagesListCall) Do(opts ...googleapi.CallOption) (*ImageList, error) { +// *TestPermissionsResponse.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 *HealthChecksTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -22259,75 +26673,63 @@ func (c *ImagesListCall) Do(opts ...googleapi.CallOption) (*ImageList, error) { if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } - ret := &ImageList{ + ret := &TestPermissionsResponse{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.healthChecks.testIamPermissions", "response", internallog.HTTPResponse(res, b)) return ret, nil } -// 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 *ImagesListCall) Pages(ctx context.Context, f func(*ImageList) error) error { - c.ctx_ = ctx - defer c.PageToken(c.urlParams_.Get("pageToken")) - 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) - } -} - -type ImagesPatchCall struct { - s *Service - project string - image string - image2 *Image - urlParams_ gensupport.URLParams - ctx_ context.Context - header_ http.Header +type HealthChecksUpdateCall struct { + s *Service + project string + healthCheck string + healthcheck *HealthCheck + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header } -// Patch: Patches the specified image with the data included in the request. -// Only the following fields can be modified: family, description, deprecation -// status. +// Update: Updates a HealthCheck resource in the specified project using the +// data +// included in the request. // -// - image: Name of the image resource to patch. +// - healthCheck: Name of the HealthCheck resource to update. // - project: Project ID for this request. -func (r *ImagesService) Patch(project string, image string, image2 *Image) *ImagesPatchCall { - c := &ImagesPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)} +func (r *HealthChecksService) Update(project string, healthCheck string, healthcheck *HealthCheck) *HealthChecksUpdateCall { + c := &HealthChecksUpdateCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project - c.image = image - c.image2 = image2 + c.healthCheck = healthCheck + c.healthcheck = healthcheck 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 *ImagesPatchCall) RequestId(requestId string) *ImagesPatchCall { +// 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 *HealthChecksUpdateCall) RequestId(requestId string) *HealthChecksUpdateCall { c.urlParams_.Set("requestId", requestId) return c } @@ -22335,55 +26737,55 @@ func (c *ImagesPatchCall) RequestId(requestId string) *ImagesPatchCall { // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *ImagesPatchCall) Fields(s ...googleapi.Field) *ImagesPatchCall { +func (c *HealthChecksUpdateCall) Fields(s ...googleapi.Field) *HealthChecksUpdateCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } // Context sets the context to be used in this call's Do method. -func (c *ImagesPatchCall) Context(ctx context.Context) *ImagesPatchCall { +func (c *HealthChecksUpdateCall) Context(ctx context.Context) *HealthChecksUpdateCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *ImagesPatchCall) Header() http.Header { +func (c *HealthChecksUpdateCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *ImagesPatchCall) doRequest(alt string) (*http.Response, error) { +func (c *HealthChecksUpdateCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) - var body io.Reader = nil - body, err := googleapi.WithoutDataWrapper.JSONReader(c.image2) + body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.healthcheck) if err != nil { return nil, err } c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/images/{image}") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/healthChecks/{healthCheck}") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("PATCH", urls, body) + req, err := http.NewRequest("PUT", urls, body) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "image": c.image, + "project": c.project, + "healthCheck": c.healthCheck, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.healthChecks.update", "request", internallog.HTTPRequest(req, body.Bytes())) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.images.patch" call. +// Do executes the "compute.healthChecks.update" call. // 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 *ImagesPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) { +func (c *HealthChecksUpdateCall) Do(opts ...googleapi.CallOption) (*Operation, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -22409,87 +26811,104 @@ func (c *ImagesPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) { }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.healthChecks.update", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type ImagesSetIamPolicyCall struct { - s *Service - project string - resource string - globalsetpolicyrequest *GlobalSetPolicyRequest - urlParams_ gensupport.URLParams - ctx_ context.Context - header_ http.Header +type HttpHealthChecksDeleteCall struct { + s *Service + project string + httpHealthCheck string + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header } -// SetIamPolicy: Sets the access control policy on the specified resource. -// Replaces any existing policy. +// Delete: Deletes the specified HttpHealthCheck resource. // +// - httpHealthCheck: Name of the HttpHealthCheck resource to delete. // - project: Project ID for this request. -// - resource: Name or id of the resource for this request. -func (r *ImagesService) SetIamPolicy(project string, resource string, globalsetpolicyrequest *GlobalSetPolicyRequest) *ImagesSetIamPolicyCall { - c := &ImagesSetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)} +func (r *HttpHealthChecksService) Delete(project string, httpHealthCheck string) *HttpHealthChecksDeleteCall { + c := &HttpHealthChecksDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project - c.resource = resource - c.globalsetpolicyrequest = globalsetpolicyrequest + c.httpHealthCheck = httpHealthCheck + 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 *HttpHealthChecksDeleteCall) RequestId(requestId string) *HttpHealthChecksDeleteCall { + 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 // details. -func (c *ImagesSetIamPolicyCall) Fields(s ...googleapi.Field) *ImagesSetIamPolicyCall { +func (c *HttpHealthChecksDeleteCall) Fields(s ...googleapi.Field) *HttpHealthChecksDeleteCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } // Context sets the context to be used in this call's Do method. -func (c *ImagesSetIamPolicyCall) Context(ctx context.Context) *ImagesSetIamPolicyCall { +func (c *HttpHealthChecksDeleteCall) Context(ctx context.Context) *HttpHealthChecksDeleteCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *ImagesSetIamPolicyCall) Header() http.Header { +func (c *HttpHealthChecksDeleteCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *ImagesSetIamPolicyCall) doRequest(alt string) (*http.Response, error) { - reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) - var body io.Reader = nil - body, err := googleapi.WithoutDataWrapper.JSONReader(c.globalsetpolicyrequest) - if err != nil { - return nil, err - } +func (c *HttpHealthChecksDeleteCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/images/{resource}/setIamPolicy") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/httpHealthChecks/{httpHealthCheck}") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("POST", urls, body) + req, err := http.NewRequest("DELETE", urls, nil) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "resource": c.resource, + "project": c.project, + "httpHealthCheck": c.httpHealthCheck, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.httpHealthChecks.delete", "request", internallog.HTTPRequest(req, nil)) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.images.setIamPolicy" call. +// Do executes the "compute.httpHealthChecks.delete" call. // Any non-2xx status code is an error. Response headers are in either -// *Policy.ServerResponse.Header or (if a response was returned at all) in +// *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 *ImagesSetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, error) { +func (c *HttpHealthChecksDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -22508,94 +26927,102 @@ func (c *ImagesSetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, erro if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } - ret := &Policy{ + ret := &Operation{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.httpHealthChecks.delete", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type ImagesSetLabelsCall struct { - s *Service - project string - resource string - globalsetlabelsrequest *GlobalSetLabelsRequest - urlParams_ gensupport.URLParams - ctx_ context.Context - header_ http.Header +type HttpHealthChecksGetCall struct { + s *Service + project string + httpHealthCheck string + urlParams_ gensupport.URLParams + ifNoneMatch_ string + ctx_ context.Context + header_ http.Header } -// SetLabels: Sets the labels on an image. To learn more about labels, read the -// Labeling Resources documentation. +// Get: Returns the specified HttpHealthCheck resource. // +// - httpHealthCheck: Name of the HttpHealthCheck resource to return. // - project: Project ID for this request. -// - resource: Name or id of the resource for this request. -func (r *ImagesService) SetLabels(project string, resource string, globalsetlabelsrequest *GlobalSetLabelsRequest) *ImagesSetLabelsCall { - c := &ImagesSetLabelsCall{s: r.s, urlParams_: make(gensupport.URLParams)} +func (r *HttpHealthChecksService) Get(project string, httpHealthCheck string) *HttpHealthChecksGetCall { + c := &HttpHealthChecksGetCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project - c.resource = resource - c.globalsetlabelsrequest = globalsetlabelsrequest + c.httpHealthCheck = httpHealthCheck return c } // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *ImagesSetLabelsCall) Fields(s ...googleapi.Field) *ImagesSetLabelsCall { +func (c *HttpHealthChecksGetCall) Fields(s ...googleapi.Field) *HttpHealthChecksGetCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } +// IfNoneMatch sets an 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. +func (c *HttpHealthChecksGetCall) IfNoneMatch(entityTag string) *HttpHealthChecksGetCall { + c.ifNoneMatch_ = entityTag + return c +} + // Context sets the context to be used in this call's Do method. -func (c *ImagesSetLabelsCall) Context(ctx context.Context) *ImagesSetLabelsCall { +func (c *HttpHealthChecksGetCall) Context(ctx context.Context) *HttpHealthChecksGetCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *ImagesSetLabelsCall) Header() http.Header { +func (c *HttpHealthChecksGetCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *ImagesSetLabelsCall) doRequest(alt string) (*http.Response, error) { - reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) - var body io.Reader = nil - body, err := googleapi.WithoutDataWrapper.JSONReader(c.globalsetlabelsrequest) - if err != nil { - return nil, err +func (c *HttpHealthChecksGetCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) + if c.ifNoneMatch_ != "" { + reqHeaders.Set("If-None-Match", c.ifNoneMatch_) } c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/images/{resource}/setLabels") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/httpHealthChecks/{httpHealthCheck}") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("POST", urls, body) + req, err := http.NewRequest("GET", urls, nil) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "resource": c.resource, + "project": c.project, + "httpHealthCheck": c.httpHealthCheck, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.httpHealthChecks.get", "request", internallog.HTTPRequest(req, nil)) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.images.setLabels" call. +// Do executes the "compute.httpHealthChecks.get" call. // 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 *ImagesSetLabelsCall) Do(opts ...googleapi.CallOption) (*Operation, error) { +// *HttpHealthCheck.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 *HttpHealthChecksGetCall) Do(opts ...googleapi.CallOption) (*HttpHealthCheck, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -22614,75 +27041,96 @@ func (c *ImagesSetLabelsCall) Do(opts ...googleapi.CallOption) (*Operation, erro if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } - ret := &Operation{ + ret := &HttpHealthCheck{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.httpHealthChecks.get", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type ImagesTestIamPermissionsCall struct { - s *Service - project string - resource string - testpermissionsrequest *TestPermissionsRequest - urlParams_ gensupport.URLParams - ctx_ context.Context - header_ http.Header +type HttpHealthChecksInsertCall struct { + s *Service + project string + httphealthcheck *HttpHealthCheck + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header } -// TestIamPermissions: Returns permissions that a caller has on the specified -// resource. +// Insert: Creates a HttpHealthCheck resource in the specified project using +// the data +// included in the request. // // - project: Project ID for this request. -// - resource: Name or id of the resource for this request. -func (r *ImagesService) TestIamPermissions(project string, resource string, testpermissionsrequest *TestPermissionsRequest) *ImagesTestIamPermissionsCall { - c := &ImagesTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)} +func (r *HttpHealthChecksService) Insert(project string, httphealthcheck *HttpHealthCheck) *HttpHealthChecksInsertCall { + c := &HttpHealthChecksInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project - c.resource = resource - c.testpermissionsrequest = testpermissionsrequest + c.httphealthcheck = httphealthcheck + 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 *HttpHealthChecksInsertCall) RequestId(requestId string) *HttpHealthChecksInsertCall { + 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 // details. -func (c *ImagesTestIamPermissionsCall) Fields(s ...googleapi.Field) *ImagesTestIamPermissionsCall { +func (c *HttpHealthChecksInsertCall) Fields(s ...googleapi.Field) *HttpHealthChecksInsertCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } // Context sets the context to be used in this call's Do method. -func (c *ImagesTestIamPermissionsCall) Context(ctx context.Context) *ImagesTestIamPermissionsCall { +func (c *HttpHealthChecksInsertCall) Context(ctx context.Context) *HttpHealthChecksInsertCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *ImagesTestIamPermissionsCall) Header() http.Header { +func (c *HttpHealthChecksInsertCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *ImagesTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) { +func (c *HttpHealthChecksInsertCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) - var body io.Reader = nil - body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest) + body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.httphealthcheck) if err != nil { return nil, err } c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/images/{resource}/testIamPermissions") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/httpHealthChecks") urls += "?" + c.urlParams_.Encode() req, err := http.NewRequest("POST", urls, body) if err != nil { @@ -22690,19 +27138,18 @@ func (c *ImagesTestIamPermissionsCall) doRequest(alt string) (*http.Response, er } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "resource": c.resource, + "project": c.project, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.httpHealthChecks.insert", "request", internallog.HTTPRequest(req, body.Bytes())) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.images.testIamPermissions" call. +// Do executes the "compute.httpHealthChecks.insert" call. // Any non-2xx status code is an error. Response headers are in either -// *TestPermissionsResponse.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 *ImagesTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) { +// *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 *HttpHealthChecksInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -22721,116 +27168,228 @@ func (c *ImagesTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPe if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } - ret := &TestPermissionsResponse{ + ret := &Operation{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.httpHealthChecks.insert", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type InstanceGroupManagerResizeRequestsCancelCall struct { - s *Service - project string - zone string - instanceGroupManager string - resizeRequest string - urlParams_ gensupport.URLParams - ctx_ context.Context - header_ http.Header +type HttpHealthChecksListCall struct { + s *Service + project string + urlParams_ gensupport.URLParams + ifNoneMatch_ string + ctx_ context.Context + header_ http.Header } -// Cancel: Cancels the specified resize request and removes it from the queue. -// Cancelled resize request does no longer wait for the resources to be -// provisioned. Cancel is only possible for requests that are accepted in the -// queue. +// List: Retrieves the list of HttpHealthCheck resources available to the +// specified +// project. // -// - instanceGroupManager: The name of the managed instance group. The name -// should conform to RFC1035 or be a resource ID. -// - project: Project ID for this request. -// - resizeRequest: The name of the resize request to cancel. The name should -// conform to RFC1035 or be a resource ID. -// - zone: The name of the zone where the managed instance group is located. -// The name should conform to RFC1035. -func (r *InstanceGroupManagerResizeRequestsService) Cancel(project string, zone string, instanceGroupManager string, resizeRequest string) *InstanceGroupManagerResizeRequestsCancelCall { - c := &InstanceGroupManagerResizeRequestsCancelCall{s: r.s, urlParams_: make(gensupport.URLParams)} +// - project: Project ID for this request. +func (r *HttpHealthChecksService) List(project string) *HttpHealthChecksListCall { + c := &HttpHealthChecksListCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project - c.zone = zone - c.instanceGroupManager = instanceGroupManager - c.resizeRequest = resizeRequest 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 *InstanceGroupManagerResizeRequestsCancelCall) RequestId(requestId string) *InstanceGroupManagerResizeRequestsCancelCall { - c.urlParams_.Set("requestId", requestId) +// Filter sets the optional parameter "filter": A filter expression that +// filters resources listed in the response. Most +// Compute resources support two types of filter expressions: +// expressions that support regular expressions and expressions that follow +// API improvement proposal AIP-160. +// These two types of filter expressions cannot be mixed in one request. +// +// If you want to use AIP-160, your expression must specify the field name, +// an +// operator, and the value that you want to use for filtering. The value +// must be a string, a number, or a boolean. The 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`. +// +// The `:*` comparison can be used to test whether a key has been defined. +// For example, to find all objects with `owner` label +// use: +// ``` +// labels.owner:* +// ``` +// +// 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 onresource 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) +// ``` +// +// If you want to use a regular expression, use the `eq` (equal) or `ne` +// (not equal) operator against a single un-parenthesized expression with +// or +// without quotes or against multiple parenthesized expressions. +// Examples: +// +// `fieldname eq unquoted literal` +// `fieldname eq 'single quoted literal'` +// `fieldname eq "double quoted literal" +// `(fieldname1 eq literal) (fieldname2 ne "literal")` +// +// The literal value is interpreted as a regular expression using GoogleRE2 +// library syntax. +// The literal value must match the entire field. +// +// For example, to filter for instances that do not end with name +// "instance", +// you would use `name ne .*instance`. +// +// You cannot combine constraints on multiple fields using regular +// expressions. +func (c *HttpHealthChecksListCall) Filter(filter string) *HttpHealthChecksListCall { + 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 *HttpHealthChecksListCall) MaxResults(maxResults int64) *HttpHealthChecksListCall { + 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 *HttpHealthChecksListCall) OrderBy(orderBy string) *HttpHealthChecksListCall { + 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 *HttpHealthChecksListCall) PageToken(pageToken string) *HttpHealthChecksListCall { + c.urlParams_.Set("pageToken", pageToken) + return c +} + +// ReturnPartialSuccess sets the optional parameter "returnPartialSuccess": +// Opt-in for partial success behavior which provides partial results in +// case +// of failure. The default value is false. +// +// For example, when partial success behavior is enabled, aggregatedList for +// a +// single zone scope either returns all resources in the zone or no +// resources, +// with an error code. +func (c *HttpHealthChecksListCall) ReturnPartialSuccess(returnPartialSuccess bool) *HttpHealthChecksListCall { + c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess)) return c } // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *InstanceGroupManagerResizeRequestsCancelCall) Fields(s ...googleapi.Field) *InstanceGroupManagerResizeRequestsCancelCall { +func (c *HttpHealthChecksListCall) Fields(s ...googleapi.Field) *HttpHealthChecksListCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } +// IfNoneMatch sets an 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. +func (c *HttpHealthChecksListCall) IfNoneMatch(entityTag string) *HttpHealthChecksListCall { + c.ifNoneMatch_ = entityTag + return c +} + // Context sets the context to be used in this call's Do method. -func (c *InstanceGroupManagerResizeRequestsCancelCall) Context(ctx context.Context) *InstanceGroupManagerResizeRequestsCancelCall { +func (c *HttpHealthChecksListCall) Context(ctx context.Context) *HttpHealthChecksListCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *InstanceGroupManagerResizeRequestsCancelCall) Header() http.Header { +func (c *HttpHealthChecksListCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *InstanceGroupManagerResizeRequestsCancelCall) doRequest(alt string) (*http.Response, error) { +func (c *HttpHealthChecksListCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) - var body io.Reader = nil + if c.ifNoneMatch_ != "" { + reqHeaders.Set("If-None-Match", c.ifNoneMatch_) + } c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/resizeRequests/{resizeRequest}/cancel") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/httpHealthChecks") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("POST", urls, body) + req, err := http.NewRequest("GET", urls, nil) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "zone": c.zone, - "instanceGroupManager": c.instanceGroupManager, - "resizeRequest": c.resizeRequest, + "project": c.project, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.httpHealthChecks.list", "request", internallog.HTTPRequest(req, nil)) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.instanceGroupManagerResizeRequests.cancel" call. +// Do executes the "compute.httpHealthChecks.list" call. // 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 *InstanceGroupManagerResizeRequestsCancelCall) Do(opts ...googleapi.CallOption) (*Operation, error) { +// *HttpHealthCheckList.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 *HttpHealthChecksListCall) Do(opts ...googleapi.CallOption) (*HttpHealthCheckList, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -22849,61 +27408,86 @@ func (c *InstanceGroupManagerResizeRequestsCancelCall) Do(opts ...googleapi.Call if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } - ret := &Operation{ + ret := &HttpHealthCheckList{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.httpHealthChecks.list", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type InstanceGroupManagerResizeRequestsDeleteCall struct { - s *Service - project string - zone string - instanceGroupManager string - resizeRequest string - urlParams_ gensupport.URLParams - ctx_ context.Context - header_ http.Header +// 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 *HttpHealthChecksListCall) Pages(ctx context.Context, f func(*HttpHealthCheckList) error) error { + c.ctx_ = ctx + defer c.PageToken(c.urlParams_.Get("pageToken")) + 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) + } } -// Delete: Deletes the specified, inactive resize request. Requests that are -// still active cannot be deleted. Deleting request does not delete instances -// that were provisioned previously. +type HttpHealthChecksPatchCall struct { + s *Service + project string + httpHealthCheck string + httphealthcheck *HttpHealthCheck + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header +} + +// Patch: Updates a HttpHealthCheck resource in the specified project using the +// data +// included in the request. This method supportsPATCH +// semantics and uses theJSON merge +// patch format and processing rules. // -// - instanceGroupManager: The name of the managed instance group. The name -// should conform to RFC1035 or be a resource ID. -// - project: Project ID for this request. -// - resizeRequest: The name of the resize request to delete. The name should -// conform to RFC1035 or be a resource ID. -// - zone: The name of the zone where the managed instance group is located. -// The name should conform to RFC1035. -func (r *InstanceGroupManagerResizeRequestsService) Delete(project string, zone string, instanceGroupManager string, resizeRequest string) *InstanceGroupManagerResizeRequestsDeleteCall { - c := &InstanceGroupManagerResizeRequestsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)} +// - httpHealthCheck: Name of the HttpHealthCheck resource to patch. +// - project: Project ID for this request. +func (r *HttpHealthChecksService) Patch(project string, httpHealthCheck string, httphealthcheck *HttpHealthCheck) *HttpHealthChecksPatchCall { + c := &HttpHealthChecksPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project - c.zone = zone - c.instanceGroupManager = instanceGroupManager - c.resizeRequest = resizeRequest + c.httpHealthCheck = httpHealthCheck + c.httphealthcheck = httphealthcheck 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 *InstanceGroupManagerResizeRequestsDeleteCall) RequestId(requestId string) *InstanceGroupManagerResizeRequestsDeleteCall { +// 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 *HttpHealthChecksPatchCall) RequestId(requestId string) *HttpHealthChecksPatchCall { c.urlParams_.Set("requestId", requestId) return c } @@ -22911,53 +27495,55 @@ func (c *InstanceGroupManagerResizeRequestsDeleteCall) RequestId(requestId strin // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *InstanceGroupManagerResizeRequestsDeleteCall) Fields(s ...googleapi.Field) *InstanceGroupManagerResizeRequestsDeleteCall { +func (c *HttpHealthChecksPatchCall) Fields(s ...googleapi.Field) *HttpHealthChecksPatchCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } // Context sets the context to be used in this call's Do method. -func (c *InstanceGroupManagerResizeRequestsDeleteCall) Context(ctx context.Context) *InstanceGroupManagerResizeRequestsDeleteCall { +func (c *HttpHealthChecksPatchCall) Context(ctx context.Context) *HttpHealthChecksPatchCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *InstanceGroupManagerResizeRequestsDeleteCall) Header() http.Header { +func (c *HttpHealthChecksPatchCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *InstanceGroupManagerResizeRequestsDeleteCall) doRequest(alt string) (*http.Response, error) { - reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) - var body io.Reader = nil +func (c *HttpHealthChecksPatchCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) + body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.httphealthcheck) + if err != nil { + return nil, err + } c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/resizeRequests/{resizeRequest}") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/httpHealthChecks/{httpHealthCheck}") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("DELETE", urls, body) + req, err := http.NewRequest("PATCH", urls, body) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "zone": c.zone, - "instanceGroupManager": c.instanceGroupManager, - "resizeRequest": c.resizeRequest, + "project": c.project, + "httpHealthCheck": c.httpHealthCheck, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.httpHealthChecks.patch", "request", internallog.HTTPRequest(req, body.Bytes())) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.instanceGroupManagerResizeRequests.delete" call. +// Do executes the "compute.httpHealthChecks.patch" call. // 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 *InstanceGroupManagerResizeRequestsDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) { +func (c *HttpHealthChecksPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -22983,104 +27569,90 @@ func (c *InstanceGroupManagerResizeRequestsDeleteCall) Do(opts ...googleapi.Call }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.httpHealthChecks.patch", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type InstanceGroupManagerResizeRequestsGetCall struct { - s *Service - project string - zone string - instanceGroupManager string - resizeRequest string - urlParams_ gensupport.URLParams - ifNoneMatch_ string - ctx_ context.Context - header_ http.Header +type HttpHealthChecksTestIamPermissionsCall struct { + s *Service + project string + resource string + testpermissionsrequest *TestPermissionsRequest + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header } -// Get: Returns all of the details about the specified resize request. +// TestIamPermissions: Returns permissions that a caller has on the specified +// resource. // -// - instanceGroupManager: The name of the managed instance group. Name should -// conform to RFC1035 or be a resource ID. -// - project: Project ID for this request. -// - resizeRequest: The name of the resize request. Name should conform to -// RFC1035 or be a resource ID. -// - zone: Name of the href="/compute/docs/regions-zones/#available">zone -// scoping this request. Name should conform to RFC1035. -func (r *InstanceGroupManagerResizeRequestsService) Get(project string, zone string, instanceGroupManager string, resizeRequest string) *InstanceGroupManagerResizeRequestsGetCall { - c := &InstanceGroupManagerResizeRequestsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)} +// - project: Project ID for this request. +// - resource: Name or id of the resource for this request. +func (r *HttpHealthChecksService) TestIamPermissions(project string, resource string, testpermissionsrequest *TestPermissionsRequest) *HttpHealthChecksTestIamPermissionsCall { + c := &HttpHealthChecksTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project - c.zone = zone - c.instanceGroupManager = instanceGroupManager - c.resizeRequest = resizeRequest + c.resource = resource + c.testpermissionsrequest = testpermissionsrequest return c } // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *InstanceGroupManagerResizeRequestsGetCall) Fields(s ...googleapi.Field) *InstanceGroupManagerResizeRequestsGetCall { +func (c *HttpHealthChecksTestIamPermissionsCall) Fields(s ...googleapi.Field) *HttpHealthChecksTestIamPermissionsCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } -// IfNoneMatch sets an 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. -func (c *InstanceGroupManagerResizeRequestsGetCall) IfNoneMatch(entityTag string) *InstanceGroupManagerResizeRequestsGetCall { - c.ifNoneMatch_ = entityTag - return c -} - // Context sets the context to be used in this call's Do method. -func (c *InstanceGroupManagerResizeRequestsGetCall) Context(ctx context.Context) *InstanceGroupManagerResizeRequestsGetCall { +func (c *HttpHealthChecksTestIamPermissionsCall) Context(ctx context.Context) *HttpHealthChecksTestIamPermissionsCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *InstanceGroupManagerResizeRequestsGetCall) Header() http.Header { +func (c *HttpHealthChecksTestIamPermissionsCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *InstanceGroupManagerResizeRequestsGetCall) doRequest(alt string) (*http.Response, error) { - reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) - if c.ifNoneMatch_ != "" { - reqHeaders.Set("If-None-Match", c.ifNoneMatch_) +func (c *HttpHealthChecksTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) + body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.testpermissionsrequest) + if err != nil { + return nil, err } - var body io.Reader = nil c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/resizeRequests/{resizeRequest}") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/httpHealthChecks/{resource}/testIamPermissions") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("GET", urls, body) + req, err := http.NewRequest("POST", urls, body) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "zone": c.zone, - "instanceGroupManager": c.instanceGroupManager, - "resizeRequest": c.resizeRequest, + "project": c.project, + "resource": c.resource, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.httpHealthChecks.testIamPermissions", "request", internallog.HTTPRequest(req, body.Bytes())) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.instanceGroupManagerResizeRequests.get" call. +// Do executes the "compute.httpHealthChecks.testIamPermissions" call. // Any non-2xx status code is an error. Response headers are in either -// *InstanceGroupManagerResizeRequest.ServerResponse.Header or (if a response -// was returned at all) in error.(*googleapi.Error).Header. Use +// *TestPermissionsResponse.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 *InstanceGroupManagerResizeRequestsGetCall) Do(opts ...googleapi.CallOption) (*InstanceGroupManagerResizeRequest, error) { +func (c *HttpHealthChecksTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -23099,59 +27671,63 @@ func (c *InstanceGroupManagerResizeRequestsGetCall) Do(opts ...googleapi.CallOpt if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } - ret := &InstanceGroupManagerResizeRequest{ + ret := &TestPermissionsResponse{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.httpHealthChecks.testIamPermissions", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type InstanceGroupManagerResizeRequestsInsertCall struct { - s *Service - project string - zone string - instanceGroupManager string - instancegroupmanagerresizerequest *InstanceGroupManagerResizeRequest - urlParams_ gensupport.URLParams - ctx_ context.Context - header_ http.Header +type HttpHealthChecksUpdateCall struct { + s *Service + project string + httpHealthCheck string + httphealthcheck *HttpHealthCheck + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header } -// Insert: Creates a new resize request that starts provisioning VMs -// immediately or queues VM creation. +// Update: Updates a HttpHealthCheck resource in the specified project using +// the data +// included in the request. // -// - instanceGroupManager: The name of the managed instance group to which the -// resize request will be added. Name should conform to RFC1035 or be a -// resource ID. -// - project: Project ID for this request. -// - zone: The name of the zone where the managed instance group is located and -// where the resize request will be created. Name should conform to RFC1035. -func (r *InstanceGroupManagerResizeRequestsService) Insert(project string, zone string, instanceGroupManager string, instancegroupmanagerresizerequest *InstanceGroupManagerResizeRequest) *InstanceGroupManagerResizeRequestsInsertCall { - c := &InstanceGroupManagerResizeRequestsInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)} +// - httpHealthCheck: Name of the HttpHealthCheck resource to update. +// - project: Project ID for this request. +func (r *HttpHealthChecksService) Update(project string, httpHealthCheck string, httphealthcheck *HttpHealthCheck) *HttpHealthChecksUpdateCall { + c := &HttpHealthChecksUpdateCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project - c.zone = zone - c.instanceGroupManager = instanceGroupManager - c.instancegroupmanagerresizerequest = instancegroupmanagerresizerequest + c.httpHealthCheck = httpHealthCheck + c.httphealthcheck = httphealthcheck 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 *InstanceGroupManagerResizeRequestsInsertCall) RequestId(requestId string) *InstanceGroupManagerResizeRequestsInsertCall { +// 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 *HttpHealthChecksUpdateCall) RequestId(requestId string) *HttpHealthChecksUpdateCall { c.urlParams_.Set("requestId", requestId) return c } @@ -23159,56 +27735,55 @@ func (c *InstanceGroupManagerResizeRequestsInsertCall) RequestId(requestId strin // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *InstanceGroupManagerResizeRequestsInsertCall) Fields(s ...googleapi.Field) *InstanceGroupManagerResizeRequestsInsertCall { +func (c *HttpHealthChecksUpdateCall) Fields(s ...googleapi.Field) *HttpHealthChecksUpdateCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } // Context sets the context to be used in this call's Do method. -func (c *InstanceGroupManagerResizeRequestsInsertCall) Context(ctx context.Context) *InstanceGroupManagerResizeRequestsInsertCall { +func (c *HttpHealthChecksUpdateCall) Context(ctx context.Context) *HttpHealthChecksUpdateCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *InstanceGroupManagerResizeRequestsInsertCall) Header() http.Header { +func (c *HttpHealthChecksUpdateCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *InstanceGroupManagerResizeRequestsInsertCall) doRequest(alt string) (*http.Response, error) { +func (c *HttpHealthChecksUpdateCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) - var body io.Reader = nil - body, err := googleapi.WithoutDataWrapper.JSONReader(c.instancegroupmanagerresizerequest) + body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.httphealthcheck) if err != nil { return nil, err } c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/resizeRequests") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/httpHealthChecks/{httpHealthCheck}") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("POST", urls, body) + req, err := http.NewRequest("PUT", urls, body) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "zone": c.zone, - "instanceGroupManager": c.instanceGroupManager, + "project": c.project, + "httpHealthCheck": c.httpHealthCheck, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.httpHealthChecks.update", "request", internallog.HTTPRequest(req, body.Bytes())) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.instanceGroupManagerResizeRequests.insert" call. +// Do executes the "compute.httpHealthChecks.update" call. // 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 *InstanceGroupManagerResizeRequestsInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) { +func (c *HttpHealthChecksUpdateCall) Do(opts ...googleapi.CallOption) (*Operation, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -23234,121 +27809,162 @@ func (c *InstanceGroupManagerResizeRequestsInsertCall) Do(opts ...googleapi.Call }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.httpHealthChecks.update", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type InstanceGroupManagerResizeRequestsListCall struct { - s *Service - project string - zone string - instanceGroupManager string - urlParams_ gensupport.URLParams - ifNoneMatch_ string - ctx_ context.Context - header_ http.Header +type HttpsHealthChecksDeleteCall struct { + s *Service + project string + httpsHealthCheck string + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header } -// List: Retrieves a list of resize requests that are contained in the managed -// instance group. +// Delete: Deletes the specified HttpsHealthCheck resource. // -// - instanceGroupManager: The name of the managed instance group. The name -// should conform to RFC1035. -// - project: Project ID for this request. -// - zone: The name of the zone where the managed instance group is located. -// The name should conform to RFC1035. -func (r *InstanceGroupManagerResizeRequestsService) List(project string, zone string, instanceGroupManager string) *InstanceGroupManagerResizeRequestsListCall { - c := &InstanceGroupManagerResizeRequestsListCall{s: r.s, urlParams_: make(gensupport.URLParams)} +// - httpsHealthCheck: Name of the HttpsHealthCheck resource to delete. +// - project: Project ID for this request. +func (r *HttpsHealthChecksService) Delete(project string, httpsHealthCheck string) *HttpsHealthChecksDeleteCall { + c := &HttpsHealthChecksDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project - c.zone = zone - c.instanceGroupManager = instanceGroupManager + c.httpsHealthCheck = httpsHealthCheck return c } -// Filter sets the optional parameter "filter": A filter expression that -// filters resources listed in the response. Most Compute resources support two -// types of filter expressions: expressions that support regular expressions -// and expressions that follow API improvement proposal AIP-160. These two -// types of filter expressions cannot be mixed in one request. If you want to -// use AIP-160, your expression must specify the field name, an operator, and -// the value that you want to use for filtering. The value must be a string, a -// number, or a boolean. The 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`. The `:*` comparison can be used to test whether a key has -// been defined. For example, to find all objects with `owner` label use: ``` -// labels.owner:* ``` 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) ``` If you want to use a regular -// expression, use the `eq` (equal) or `ne` (not equal) operator against a -// single un-parenthesized expression with or without quotes or against -// multiple parenthesized expressions. Examples: `fieldname eq unquoted -// literal` `fieldname eq 'single quoted literal'` `fieldname eq "double quoted -// literal" `(fieldname1 eq literal) (fieldname2 ne "literal")` The literal -// value is interpreted as a regular expression using Google RE2 library -// syntax. The literal value must match the entire field. For example, to -// filter for instances that do not end with name "instance", you would use -// `name ne .*instance`. You cannot combine constraints on multiple fields -// using regular expressions. -func (c *InstanceGroupManagerResizeRequestsListCall) Filter(filter string) *InstanceGroupManagerResizeRequestsListCall { - c.urlParams_.Set("filter", filter) +// 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 *HttpsHealthChecksDeleteCall) RequestId(requestId string) *HttpsHealthChecksDeleteCall { + c.urlParams_.Set("requestId", requestId) 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 *InstanceGroupManagerResizeRequestsListCall) MaxResults(maxResults int64) *InstanceGroupManagerResizeRequestsListCall { - c.urlParams_.Set("maxResults", fmt.Sprint(maxResults)) +// Fields allows partial responses to be retrieved. See +// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more +// details. +func (c *HttpsHealthChecksDeleteCall) Fields(s ...googleapi.Field) *HttpsHealthChecksDeleteCall { + c.urlParams_.Set("fields", googleapi.CombineFields(s)) 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 *InstanceGroupManagerResizeRequestsListCall) OrderBy(orderBy string) *InstanceGroupManagerResizeRequestsListCall { - c.urlParams_.Set("orderBy", orderBy) +// Context sets the context to be used in this call's Do method. +func (c *HttpsHealthChecksDeleteCall) Context(ctx context.Context) *HttpsHealthChecksDeleteCall { + c.ctx_ = ctx 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 *InstanceGroupManagerResizeRequestsListCall) PageToken(pageToken string) *InstanceGroupManagerResizeRequestsListCall { - c.urlParams_.Set("pageToken", pageToken) - return c +// Header returns a http.Header that can be modified by the caller to add +// headers to the request. +func (c *HttpsHealthChecksDeleteCall) Header() http.Header { + if c.header_ == nil { + c.header_ = make(http.Header) + } + return c.header_ } -// ReturnPartialSuccess sets the optional parameter "returnPartialSuccess": -// Opt-in for partial success behavior which provides partial results in case -// of failure. The default value is false. For example, when partial success -// behavior is enabled, aggregatedList for a single zone scope either returns -// all resources in the zone or no resources, with an error code. -func (c *InstanceGroupManagerResizeRequestsListCall) ReturnPartialSuccess(returnPartialSuccess bool) *InstanceGroupManagerResizeRequestsListCall { - c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess)) +func (c *HttpsHealthChecksDeleteCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) + c.urlParams_.Set("alt", alt) + c.urlParams_.Set("prettyPrint", "false") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/httpsHealthChecks/{httpsHealthCheck}") + urls += "?" + c.urlParams_.Encode() + req, err := http.NewRequest("DELETE", urls, nil) + if err != nil { + return nil, err + } + req.Header = reqHeaders + googleapi.Expand(req.URL, map[string]string{ + "project": c.project, + "httpsHealthCheck": c.httpsHealthCheck, + }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.httpsHealthChecks.delete", "request", internallog.HTTPRequest(req, nil)) + return gensupport.SendRequest(c.ctx_, c.s.client, req) +} + +// Do executes the "compute.httpsHealthChecks.delete" call. +// 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 *HttpsHealthChecksDeleteCall) 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, gensupport.WrapError(&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, gensupport.WrapError(err) + } + ret := &Operation{ + ServerResponse: googleapi.ServerResponse{ + Header: res.Header, + HTTPStatusCode: res.StatusCode, + }, + } + target := &ret + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { + return nil, err + } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.httpsHealthChecks.delete", "response", internallog.HTTPResponse(res, b)) + return ret, nil +} + +type HttpsHealthChecksGetCall struct { + s *Service + project string + httpsHealthCheck string + urlParams_ gensupport.URLParams + ifNoneMatch_ string + ctx_ context.Context + header_ http.Header +} + +// Get: Returns the specified HttpsHealthCheck resource. +// +// - httpsHealthCheck: Name of the HttpsHealthCheck resource to return. +// - project: Project ID for this request. +func (r *HttpsHealthChecksService) Get(project string, httpsHealthCheck string) *HttpsHealthChecksGetCall { + c := &HttpsHealthChecksGetCall{s: r.s, urlParams_: make(gensupport.URLParams)} + c.project = project + c.httpsHealthCheck = httpsHealthCheck return c } // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *InstanceGroupManagerResizeRequestsListCall) Fields(s ...googleapi.Field) *InstanceGroupManagerResizeRequestsListCall { +func (c *HttpsHealthChecksGetCall) Fields(s ...googleapi.Field) *HttpsHealthChecksGetCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } @@ -23356,56 +27972,55 @@ func (c *InstanceGroupManagerResizeRequestsListCall) Fields(s ...googleapi.Field // IfNoneMatch sets an 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. -func (c *InstanceGroupManagerResizeRequestsListCall) IfNoneMatch(entityTag string) *InstanceGroupManagerResizeRequestsListCall { +func (c *HttpsHealthChecksGetCall) IfNoneMatch(entityTag string) *HttpsHealthChecksGetCall { c.ifNoneMatch_ = entityTag return c } // Context sets the context to be used in this call's Do method. -func (c *InstanceGroupManagerResizeRequestsListCall) Context(ctx context.Context) *InstanceGroupManagerResizeRequestsListCall { +func (c *HttpsHealthChecksGetCall) Context(ctx context.Context) *HttpsHealthChecksGetCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *InstanceGroupManagerResizeRequestsListCall) Header() http.Header { +func (c *HttpsHealthChecksGetCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *InstanceGroupManagerResizeRequestsListCall) doRequest(alt string) (*http.Response, error) { +func (c *HttpsHealthChecksGetCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) if c.ifNoneMatch_ != "" { reqHeaders.Set("If-None-Match", c.ifNoneMatch_) } - var body io.Reader = nil c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/resizeRequests") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/httpsHealthChecks/{httpsHealthCheck}") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("GET", urls, body) + req, err := http.NewRequest("GET", urls, nil) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "zone": c.zone, - "instanceGroupManager": c.instanceGroupManager, + "project": c.project, + "httpsHealthCheck": c.httpsHealthCheck, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.httpsHealthChecks.get", "request", internallog.HTTPRequest(req, nil)) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.instanceGroupManagerResizeRequests.list" call. +// Do executes the "compute.httpsHealthChecks.get" call. // Any non-2xx status code is an error. Response headers are in either -// *InstanceGroupManagerResizeRequestsListResponse.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 *InstanceGroupManagerResizeRequestsListCall) Do(opts ...googleapi.CallOption) (*InstanceGroupManagerResizeRequestsListResponse, error) { +// *HttpsHealthCheck.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 *HttpsHealthChecksGetCall) Do(opts ...googleapi.CallOption) (*HttpsHealthCheck, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -23424,87 +28039,60 @@ func (c *InstanceGroupManagerResizeRequestsListCall) Do(opts ...googleapi.CallOp if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } - ret := &InstanceGroupManagerResizeRequestsListResponse{ + ret := &HttpsHealthCheck{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.httpsHealthChecks.get", "response", internallog.HTTPResponse(res, b)) return ret, nil } -// 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 *InstanceGroupManagerResizeRequestsListCall) Pages(ctx context.Context, f func(*InstanceGroupManagerResizeRequestsListResponse) error) error { - c.ctx_ = ctx - defer c.PageToken(c.urlParams_.Get("pageToken")) - 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) - } -} - -type InstanceGroupManagersAbandonInstancesCall struct { - s *Service - project string - zone string - instanceGroupManager string - instancegroupmanagersabandoninstancesrequest *InstanceGroupManagersAbandonInstancesRequest - urlParams_ gensupport.URLParams - ctx_ context.Context - header_ http.Header +type HttpsHealthChecksInsertCall struct { + s *Service + project string + httpshealthcheck *HttpsHealthCheck + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header } -// AbandonInstances: Flags the specified instances to be removed from the -// managed instance group. Abandoning an instance does not delete the instance, -// but it does remove the instance from any target pools that are applied by -// the managed instance group. This method reduces the targetSize of the -// managed instance group by the number of instances that you abandon. This -// operation is marked as DONE when the action is scheduled even if the -// instances have not yet been removed from the group. You must separately -// verify the status of the abandoning action with the listmanagedinstances -// method. If the group is part of a backend service that has enabled -// connection draining, it can take up to 60 seconds after the connection -// draining duration has elapsed before the VM instance is removed or deleted. -// You can specify a maximum of 1000 instances with this method per request. +// Insert: Creates a HttpsHealthCheck resource in the specified project using +// the data +// included in the request. // -// - instanceGroupManager: The name of the managed instance group. // - project: Project ID for this request. -// - zone: The name of the zone where the managed instance group is located. -func (r *InstanceGroupManagersService) AbandonInstances(project string, zone string, instanceGroupManager string, instancegroupmanagersabandoninstancesrequest *InstanceGroupManagersAbandonInstancesRequest) *InstanceGroupManagersAbandonInstancesCall { - c := &InstanceGroupManagersAbandonInstancesCall{s: r.s, urlParams_: make(gensupport.URLParams)} +func (r *HttpsHealthChecksService) Insert(project string, httpshealthcheck *HttpsHealthCheck) *HttpsHealthChecksInsertCall { + c := &HttpsHealthChecksInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project - c.zone = zone - c.instanceGroupManager = instanceGroupManager - c.instancegroupmanagersabandoninstancesrequest = instancegroupmanagersabandoninstancesrequest + c.httpshealthcheck = httpshealthcheck 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 *InstanceGroupManagersAbandonInstancesCall) RequestId(requestId string) *InstanceGroupManagersAbandonInstancesCall { +// 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 *HttpsHealthChecksInsertCall) RequestId(requestId string) *HttpsHealthChecksInsertCall { c.urlParams_.Set("requestId", requestId) return c } @@ -23512,36 +28100,35 @@ func (c *InstanceGroupManagersAbandonInstancesCall) RequestId(requestId string) // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *InstanceGroupManagersAbandonInstancesCall) Fields(s ...googleapi.Field) *InstanceGroupManagersAbandonInstancesCall { +func (c *HttpsHealthChecksInsertCall) Fields(s ...googleapi.Field) *HttpsHealthChecksInsertCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } // Context sets the context to be used in this call's Do method. -func (c *InstanceGroupManagersAbandonInstancesCall) Context(ctx context.Context) *InstanceGroupManagersAbandonInstancesCall { +func (c *HttpsHealthChecksInsertCall) Context(ctx context.Context) *HttpsHealthChecksInsertCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *InstanceGroupManagersAbandonInstancesCall) Header() http.Header { +func (c *HttpsHealthChecksInsertCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *InstanceGroupManagersAbandonInstancesCall) doRequest(alt string) (*http.Response, error) { +func (c *HttpsHealthChecksInsertCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) - var body io.Reader = nil - body, err := googleapi.WithoutDataWrapper.JSONReader(c.instancegroupmanagersabandoninstancesrequest) + body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.httpshealthcheck) if err != nil { return nil, err } c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/abandonInstances") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/httpsHealthChecks") urls += "?" + c.urlParams_.Encode() req, err := http.NewRequest("POST", urls, body) if err != nil { @@ -23549,19 +28136,18 @@ func (c *InstanceGroupManagersAbandonInstancesCall) doRequest(alt string) (*http } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "zone": c.zone, - "instanceGroupManager": c.instanceGroupManager, + "project": c.project, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.httpsHealthChecks.insert", "request", internallog.HTTPRequest(req, body.Bytes())) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.instanceGroupManagers.abandonInstances" call. +// Do executes the "compute.httpsHealthChecks.insert" call. // 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 *InstanceGroupManagersAbandonInstancesCall) Do(opts ...googleapi.CallOption) (*Operation, error) { +func (c *HttpsHealthChecksInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -23587,13 +28173,15 @@ func (c *InstanceGroupManagersAbandonInstancesCall) Do(opts ...googleapi.CallOpt }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.httpsHealthChecks.insert", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type InstanceGroupManagersAggregatedListCall struct { +type HttpsHealthChecksListCall struct { s *Service project string urlParams_ gensupport.URLParams @@ -23602,120 +28190,149 @@ type InstanceGroupManagersAggregatedListCall struct { header_ http.Header } -// AggregatedList: Retrieves the list of managed instance groups and groups -// them by zone. To prevent failure, Google recommends that you set the -// `returnPartialSuccess` parameter to `true`. +// List: Retrieves the list of HttpsHealthCheck resources available to the +// specified +// project. // // - project: Project ID for this request. -func (r *InstanceGroupManagersService) AggregatedList(project string) *InstanceGroupManagersAggregatedListCall { - c := &InstanceGroupManagersAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)} +func (r *HttpsHealthChecksService) List(project string) *HttpsHealthChecksListCall { + c := &HttpsHealthChecksListCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project return c } // Filter sets the optional parameter "filter": A filter expression that -// filters resources listed in the response. Most Compute resources support two -// types of filter expressions: expressions that support regular expressions -// and expressions that follow API improvement proposal AIP-160. These two -// types of filter expressions cannot be mixed in one request. If you want to -// use AIP-160, your expression must specify the field name, an operator, and -// the value that you want to use for filtering. The value must be a string, a -// number, or a boolean. The 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`. The `:*` comparison can be used to test whether a key has -// been defined. For example, to find all objects with `owner` label use: ``` -// labels.owner:* ``` 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) ``` If you want to use a regular -// expression, use the `eq` (equal) or `ne` (not equal) operator against a -// single un-parenthesized expression with or without quotes or against -// multiple parenthesized expressions. Examples: `fieldname eq unquoted -// literal` `fieldname eq 'single quoted literal'` `fieldname eq "double quoted -// literal" `(fieldname1 eq literal) (fieldname2 ne "literal")` The literal -// value is interpreted as a regular expression using Google RE2 library -// syntax. The literal value must match the entire field. For example, to -// filter for instances that do not end with name "instance", you would use -// `name ne .*instance`. You cannot combine constraints on multiple fields -// using regular expressions. -func (c *InstanceGroupManagersAggregatedListCall) Filter(filter string) *InstanceGroupManagersAggregatedListCall { +// filters resources listed in the response. Most +// Compute resources support two types of filter expressions: +// expressions that support regular expressions and expressions that follow +// API improvement proposal AIP-160. +// These two types of filter expressions cannot be mixed in one request. +// +// If you want to use AIP-160, your expression must specify the field name, +// an +// operator, and the value that you want to use for filtering. The value +// must be a string, a number, or a boolean. The 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`. +// +// The `:*` comparison can be used to test whether a key has been defined. +// For example, to find all objects with `owner` label +// use: +// ``` +// labels.owner:* +// ``` +// +// 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 onresource 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) +// ``` +// +// If you want to use a regular expression, use the `eq` (equal) or `ne` +// (not equal) operator against a single un-parenthesized expression with +// or +// without quotes or against multiple parenthesized expressions. +// Examples: +// +// `fieldname eq unquoted literal` +// `fieldname eq 'single quoted literal'` +// `fieldname eq "double quoted literal" +// `(fieldname1 eq literal) (fieldname2 ne "literal")` +// +// The literal value is interpreted as a regular expression using GoogleRE2 +// library syntax. +// The literal value must match the entire field. +// +// For example, to filter for instances that do not end with name +// "instance", +// you would use `name ne .*instance`. +// +// You cannot combine constraints on multiple fields using regular +// expressions. +func (c *HttpsHealthChecksListCall) Filter(filter string) *HttpsHealthChecksListCall { c.urlParams_.Set("filter", filter) return c } -// IncludeAllScopes sets the optional parameter "includeAllScopes": Indicates -// whether every visible scope for each scope type (zone, region, global) -// should be included in the response. For new resource types added after this -// field, the flag has no effect as new resource types will always include -// every visible scope for each scope type in response. For resource types -// which predate this field, if this flag is omitted or false, only scopes of -// the scope types where the resource type is expected to be found will be -// included. -func (c *InstanceGroupManagersAggregatedListCall) IncludeAllScopes(includeAllScopes bool) *InstanceGroupManagersAggregatedListCall { - c.urlParams_.Set("includeAllScopes", fmt.Sprint(includeAllScopes)) - 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 *InstanceGroupManagersAggregatedListCall) MaxResults(maxResults int64) *InstanceGroupManagersAggregatedListCall { +// 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 *HttpsHealthChecksListCall) MaxResults(maxResults int64) *HttpsHealthChecksListCall { 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 *InstanceGroupManagersAggregatedListCall) OrderBy(orderBy string) *InstanceGroupManagersAggregatedListCall { +// 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 *HttpsHealthChecksListCall) OrderBy(orderBy string) *HttpsHealthChecksListCall { 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 *InstanceGroupManagersAggregatedListCall) PageToken(pageToken string) *InstanceGroupManagersAggregatedListCall { +// use. Set `pageToken` to the +// `nextPageToken` returned by a previous list request to get +// the next page of results. +func (c *HttpsHealthChecksListCall) PageToken(pageToken string) *HttpsHealthChecksListCall { c.urlParams_.Set("pageToken", pageToken) return c } // ReturnPartialSuccess sets the optional parameter "returnPartialSuccess": -// Opt-in for partial success behavior which provides partial results in case -// of failure. The default value is false. For example, when partial success -// behavior is enabled, aggregatedList for a single zone scope either returns -// all resources in the zone or no resources, with an error code. -func (c *InstanceGroupManagersAggregatedListCall) ReturnPartialSuccess(returnPartialSuccess bool) *InstanceGroupManagersAggregatedListCall { +// Opt-in for partial success behavior which provides partial results in +// case +// of failure. The default value is false. +// +// For example, when partial success behavior is enabled, aggregatedList for +// a +// single zone scope either returns all resources in the zone or no +// resources, +// with an error code. +func (c *HttpsHealthChecksListCall) ReturnPartialSuccess(returnPartialSuccess bool) *HttpsHealthChecksListCall { c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess)) return c } -// ServiceProjectNumber sets the optional parameter "serviceProjectNumber": The -// Shared VPC service project id or service project number for which aggregated -// list request is invoked for subnetworks list-usable api. -func (c *InstanceGroupManagersAggregatedListCall) ServiceProjectNumber(serviceProjectNumber int64) *InstanceGroupManagersAggregatedListCall { - c.urlParams_.Set("serviceProjectNumber", fmt.Sprint(serviceProjectNumber)) - return c -} - // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *InstanceGroupManagersAggregatedListCall) Fields(s ...googleapi.Field) *InstanceGroupManagersAggregatedListCall { +func (c *HttpsHealthChecksListCall) Fields(s ...googleapi.Field) *HttpsHealthChecksListCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } @@ -23723,37 +28340,36 @@ func (c *InstanceGroupManagersAggregatedListCall) Fields(s ...googleapi.Field) * // IfNoneMatch sets an 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. -func (c *InstanceGroupManagersAggregatedListCall) IfNoneMatch(entityTag string) *InstanceGroupManagersAggregatedListCall { +func (c *HttpsHealthChecksListCall) IfNoneMatch(entityTag string) *HttpsHealthChecksListCall { c.ifNoneMatch_ = entityTag return c } // Context sets the context to be used in this call's Do method. -func (c *InstanceGroupManagersAggregatedListCall) Context(ctx context.Context) *InstanceGroupManagersAggregatedListCall { +func (c *HttpsHealthChecksListCall) Context(ctx context.Context) *HttpsHealthChecksListCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *InstanceGroupManagersAggregatedListCall) Header() http.Header { +func (c *HttpsHealthChecksListCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *InstanceGroupManagersAggregatedListCall) doRequest(alt string) (*http.Response, error) { +func (c *HttpsHealthChecksListCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) if c.ifNoneMatch_ != "" { reqHeaders.Set("If-None-Match", c.ifNoneMatch_) } - var body io.Reader = nil c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/aggregated/instanceGroupManagers") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/httpsHealthChecks") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("GET", urls, body) + req, err := http.NewRequest("GET", urls, nil) if err != nil { return nil, err } @@ -23761,16 +28377,17 @@ func (c *InstanceGroupManagersAggregatedListCall) doRequest(alt string) (*http.R googleapi.Expand(req.URL, map[string]string{ "project": c.project, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.httpsHealthChecks.list", "request", internallog.HTTPRequest(req, nil)) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.instanceGroupManagers.aggregatedList" call. +// Do executes the "compute.httpsHealthChecks.list" call. // Any non-2xx status code is an error. Response headers are in either -// *InstanceGroupManagerAggregatedList.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 *InstanceGroupManagersAggregatedListCall) Do(opts ...googleapi.CallOption) (*InstanceGroupManagerAggregatedList, error) { +// *HttpsHealthCheckList.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 *HttpsHealthChecksListCall) Do(opts ...googleapi.CallOption) (*HttpsHealthCheckList, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -23789,23 +28406,25 @@ func (c *InstanceGroupManagersAggregatedListCall) Do(opts ...googleapi.CallOptio if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } - ret := &InstanceGroupManagerAggregatedList{ + ret := &HttpsHealthCheckList{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.httpsHealthChecks.list", "response", internallog.HTTPResponse(res, b)) return ret, nil } // 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 *InstanceGroupManagersAggregatedListCall) Pages(ctx context.Context, f func(*InstanceGroupManagerAggregatedList) error) error { +func (c *HttpsHealthChecksListCall) Pages(ctx context.Context, f func(*HttpsHealthCheckList) error) error { c.ctx_ = ctx defer c.PageToken(c.urlParams_.Get("pageToken")) for { @@ -23823,88 +28442,106 @@ func (c *InstanceGroupManagersAggregatedListCall) Pages(ctx context.Context, f f } } -type InstanceGroupManagersApplyUpdatesToInstancesCall struct { - s *Service - project string - zone string - instanceGroupManager string - instancegroupmanagersapplyupdatesrequest *InstanceGroupManagersApplyUpdatesRequest - urlParams_ gensupport.URLParams - ctx_ context.Context - header_ http.Header +type HttpsHealthChecksPatchCall struct { + s *Service + project string + httpsHealthCheck string + httpshealthcheck *HttpsHealthCheck + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header } -// ApplyUpdatesToInstances: Applies changes to selected instances on the -// managed instance group. This method can be used to apply new overrides -// and/or new versions. +// Patch: Updates a HttpsHealthCheck resource in the specified project using +// the data +// included in the request. This method supportsPATCH +// semantics and uses theJSON merge +// patch format and processing rules. // -// - instanceGroupManager: The name of the managed instance group, should -// conform to RFC1035. -// - project: Project ID for this request. -// - zone: The name of the zone where the managed instance group is located. -// Should conform to RFC1035. -func (r *InstanceGroupManagersService) ApplyUpdatesToInstances(project string, zone string, instanceGroupManager string, instancegroupmanagersapplyupdatesrequest *InstanceGroupManagersApplyUpdatesRequest) *InstanceGroupManagersApplyUpdatesToInstancesCall { - c := &InstanceGroupManagersApplyUpdatesToInstancesCall{s: r.s, urlParams_: make(gensupport.URLParams)} +// - httpsHealthCheck: Name of the HttpsHealthCheck resource to patch. +// - project: Project ID for this request. +func (r *HttpsHealthChecksService) Patch(project string, httpsHealthCheck string, httpshealthcheck *HttpsHealthCheck) *HttpsHealthChecksPatchCall { + c := &HttpsHealthChecksPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project - c.zone = zone - c.instanceGroupManager = instanceGroupManager - c.instancegroupmanagersapplyupdatesrequest = instancegroupmanagersapplyupdatesrequest + c.httpsHealthCheck = httpsHealthCheck + c.httpshealthcheck = httpshealthcheck + 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 *HttpsHealthChecksPatchCall) RequestId(requestId string) *HttpsHealthChecksPatchCall { + 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 // details. -func (c *InstanceGroupManagersApplyUpdatesToInstancesCall) Fields(s ...googleapi.Field) *InstanceGroupManagersApplyUpdatesToInstancesCall { +func (c *HttpsHealthChecksPatchCall) Fields(s ...googleapi.Field) *HttpsHealthChecksPatchCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } // Context sets the context to be used in this call's Do method. -func (c *InstanceGroupManagersApplyUpdatesToInstancesCall) Context(ctx context.Context) *InstanceGroupManagersApplyUpdatesToInstancesCall { +func (c *HttpsHealthChecksPatchCall) Context(ctx context.Context) *HttpsHealthChecksPatchCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *InstanceGroupManagersApplyUpdatesToInstancesCall) Header() http.Header { +func (c *HttpsHealthChecksPatchCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *InstanceGroupManagersApplyUpdatesToInstancesCall) doRequest(alt string) (*http.Response, error) { +func (c *HttpsHealthChecksPatchCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) - var body io.Reader = nil - body, err := googleapi.WithoutDataWrapper.JSONReader(c.instancegroupmanagersapplyupdatesrequest) + body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.httpshealthcheck) if err != nil { return nil, err } c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/applyUpdatesToInstances") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/httpsHealthChecks/{httpsHealthCheck}") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("POST", urls, body) + req, err := http.NewRequest("PATCH", urls, body) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "zone": c.zone, - "instanceGroupManager": c.instanceGroupManager, + "project": c.project, + "httpsHealthCheck": c.httpsHealthCheck, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.httpsHealthChecks.patch", "request", internallog.HTTPRequest(req, body.Bytes())) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.instanceGroupManagers.applyUpdatesToInstances" call. +// Do executes the "compute.httpsHealthChecks.patch" call. // 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 *InstanceGroupManagersApplyUpdatesToInstancesCall) Do(opts ...googleapi.CallOption) (*Operation, error) { +func (c *HttpsHealthChecksPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -23930,91 +28567,69 @@ func (c *InstanceGroupManagersApplyUpdatesToInstancesCall) Do(opts ...googleapi. }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.httpsHealthChecks.patch", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type InstanceGroupManagersCreateInstancesCall struct { - s *Service - project string - zone string - instanceGroupManager string - instancegroupmanagerscreateinstancesrequest *InstanceGroupManagersCreateInstancesRequest - urlParams_ gensupport.URLParams - ctx_ context.Context - header_ http.Header +type HttpsHealthChecksTestIamPermissionsCall struct { + s *Service + project string + resource string + testpermissionsrequest *TestPermissionsRequest + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header } -// CreateInstances: Creates instances with per-instance configurations in this -// managed instance group. Instances are created using the current instance -// template. The create instances operation is marked DONE if the -// createInstances request is successful. The underlying actions take -// additional time. You must separately verify the status of the creating or -// actions with the listmanagedinstances method. +// TestIamPermissions: Returns permissions that a caller has on the specified +// resource. // -// - instanceGroupManager: The name of the managed instance group. It should -// conform to RFC1035. -// - project: Project ID for this request. -// - zone: The name of the zone where the managed instance group is located. It -// should conform to RFC1035. -func (r *InstanceGroupManagersService) CreateInstances(project string, zone string, instanceGroupManager string, instancegroupmanagerscreateinstancesrequest *InstanceGroupManagersCreateInstancesRequest) *InstanceGroupManagersCreateInstancesCall { - c := &InstanceGroupManagersCreateInstancesCall{s: r.s, urlParams_: make(gensupport.URLParams)} +// - project: Project ID for this request. +// - resource: Name or id of the resource for this request. +func (r *HttpsHealthChecksService) TestIamPermissions(project string, resource string, testpermissionsrequest *TestPermissionsRequest) *HttpsHealthChecksTestIamPermissionsCall { + c := &HttpsHealthChecksTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project - c.zone = zone - c.instanceGroupManager = instanceGroupManager - c.instancegroupmanagerscreateinstancesrequest = instancegroupmanagerscreateinstancesrequest - 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. The -// request ID must be a valid UUID with the exception that zero UUID is not -// supported ( 00000000-0000-0000-0000-000000000000). -func (c *InstanceGroupManagersCreateInstancesCall) RequestId(requestId string) *InstanceGroupManagersCreateInstancesCall { - c.urlParams_.Set("requestId", requestId) + c.resource = resource + c.testpermissionsrequest = testpermissionsrequest return c } // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *InstanceGroupManagersCreateInstancesCall) Fields(s ...googleapi.Field) *InstanceGroupManagersCreateInstancesCall { +func (c *HttpsHealthChecksTestIamPermissionsCall) Fields(s ...googleapi.Field) *HttpsHealthChecksTestIamPermissionsCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } // Context sets the context to be used in this call's Do method. -func (c *InstanceGroupManagersCreateInstancesCall) Context(ctx context.Context) *InstanceGroupManagersCreateInstancesCall { +func (c *HttpsHealthChecksTestIamPermissionsCall) Context(ctx context.Context) *HttpsHealthChecksTestIamPermissionsCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *InstanceGroupManagersCreateInstancesCall) Header() http.Header { +func (c *HttpsHealthChecksTestIamPermissionsCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *InstanceGroupManagersCreateInstancesCall) doRequest(alt string) (*http.Response, error) { +func (c *HttpsHealthChecksTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) - var body io.Reader = nil - body, err := googleapi.WithoutDataWrapper.JSONReader(c.instancegroupmanagerscreateinstancesrequest) + body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.testpermissionsrequest) if err != nil { return nil, err } c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/createInstances") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/httpsHealthChecks/{resource}/testIamPermissions") urls += "?" + c.urlParams_.Encode() req, err := http.NewRequest("POST", urls, body) if err != nil { @@ -24022,19 +28637,20 @@ func (c *InstanceGroupManagersCreateInstancesCall) doRequest(alt string) (*http. } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "zone": c.zone, - "instanceGroupManager": c.instanceGroupManager, + "project": c.project, + "resource": c.resource, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.httpsHealthChecks.testIamPermissions", "request", internallog.HTTPRequest(req, body.Bytes())) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.instanceGroupManagers.createInstances" call. +// Do executes the "compute.httpsHealthChecks.testIamPermissions" call. // 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 *InstanceGroupManagersCreateInstancesCall) Do(opts ...googleapi.CallOption) (*Operation, error) { +// *TestPermissionsResponse.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 *HttpsHealthChecksTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -24053,55 +28669,63 @@ func (c *InstanceGroupManagersCreateInstancesCall) Do(opts ...googleapi.CallOpti if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } - ret := &Operation{ + ret := &TestPermissionsResponse{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.httpsHealthChecks.testIamPermissions", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type InstanceGroupManagersDeleteCall struct { - s *Service - project string - zone string - instanceGroupManager string - urlParams_ gensupport.URLParams - ctx_ context.Context - header_ http.Header +type HttpsHealthChecksUpdateCall struct { + s *Service + project string + httpsHealthCheck string + httpshealthcheck *HttpsHealthCheck + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header } -// Delete: Deletes the specified managed instance group and all of the -// instances in that group. Note that the instance group must not belong to a -// backend service. Read Deleting an instance group for more information. +// Update: Updates a HttpsHealthCheck resource in the specified project using +// the data +// included in the request. // -// - instanceGroupManager: The name of the managed instance group to delete. +// - httpsHealthCheck: Name of the HttpsHealthCheck resource to update. // - project: Project ID for this request. -// - zone: The name of the zone where the managed instance group is located. -func (r *InstanceGroupManagersService) Delete(project string, zone string, instanceGroupManager string) *InstanceGroupManagersDeleteCall { - c := &InstanceGroupManagersDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)} +func (r *HttpsHealthChecksService) Update(project string, httpsHealthCheck string, httpshealthcheck *HttpsHealthCheck) *HttpsHealthChecksUpdateCall { + c := &HttpsHealthChecksUpdateCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project - c.zone = zone - c.instanceGroupManager = instanceGroupManager + c.httpsHealthCheck = httpsHealthCheck + c.httpshealthcheck = httpshealthcheck 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 *InstanceGroupManagersDeleteCall) RequestId(requestId string) *InstanceGroupManagersDeleteCall { +// 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 *HttpsHealthChecksUpdateCall) RequestId(requestId string) *HttpsHealthChecksUpdateCall { c.urlParams_.Set("requestId", requestId) return c } @@ -24109,52 +28733,55 @@ func (c *InstanceGroupManagersDeleteCall) RequestId(requestId string) *InstanceG // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *InstanceGroupManagersDeleteCall) Fields(s ...googleapi.Field) *InstanceGroupManagersDeleteCall { +func (c *HttpsHealthChecksUpdateCall) Fields(s ...googleapi.Field) *HttpsHealthChecksUpdateCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } // Context sets the context to be used in this call's Do method. -func (c *InstanceGroupManagersDeleteCall) Context(ctx context.Context) *InstanceGroupManagersDeleteCall { +func (c *HttpsHealthChecksUpdateCall) Context(ctx context.Context) *HttpsHealthChecksUpdateCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *InstanceGroupManagersDeleteCall) Header() http.Header { +func (c *HttpsHealthChecksUpdateCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *InstanceGroupManagersDeleteCall) doRequest(alt string) (*http.Response, error) { - reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) - var body io.Reader = nil +func (c *HttpsHealthChecksUpdateCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) + body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.httpshealthcheck) + if err != nil { + return nil, err + } c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/httpsHealthChecks/{httpsHealthCheck}") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("DELETE", urls, body) + req, err := http.NewRequest("PUT", urls, body) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "zone": c.zone, - "instanceGroupManager": c.instanceGroupManager, + "project": c.project, + "httpsHealthCheck": c.httpsHealthCheck, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.httpsHealthChecks.update", "request", internallog.HTTPRequest(req, body.Bytes())) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.instanceGroupManagers.delete" call. +// Do executes the "compute.httpsHealthChecks.update" call. // 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 *InstanceGroupManagersDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) { +func (c *HttpsHealthChecksUpdateCall) Do(opts ...googleapi.CallOption) (*Operation, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -24180,115 +28807,101 @@ func (c *InstanceGroupManagersDeleteCall) Do(opts ...googleapi.CallOption) (*Ope }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.httpsHealthChecks.update", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type InstanceGroupManagersDeleteInstancesCall struct { - s *Service - project string - zone string - instanceGroupManager string - instancegroupmanagersdeleteinstancesrequest *InstanceGroupManagersDeleteInstancesRequest - urlParams_ gensupport.URLParams - ctx_ context.Context - header_ http.Header +type ImageFamilyViewsGetCall struct { + s *Service + project string + zone string + family string + urlParams_ gensupport.URLParams + ifNoneMatch_ string + ctx_ context.Context + header_ http.Header } -// DeleteInstances: Flags the specified instances in the managed instance group -// for immediate deletion. The instances are also removed from any target pools -// of which they were a member. This method reduces the targetSize of the -// managed instance group by the number of instances that you delete. This -// operation is marked as DONE when the action is scheduled even if the -// instances are still being deleted. You must separately verify the status of -// the deleting action with the listmanagedinstances method. If the group is -// part of a backend service that has enabled connection draining, it can take -// up to 60 seconds after the connection draining duration has elapsed before -// the VM instance is removed or deleted. You can specify a maximum of 1000 -// instances with this method per request. +// Get: Returns the latest image that is part of an image family, is +// not +// deprecated and is rolled out in the specified zone. // -// - instanceGroupManager: The name of the managed instance group. +// - family: Name of the image family to search for. // - project: Project ID for this request. -// - zone: The name of the zone where the managed instance group is located. -func (r *InstanceGroupManagersService) DeleteInstances(project string, zone string, instanceGroupManager string, instancegroupmanagersdeleteinstancesrequest *InstanceGroupManagersDeleteInstancesRequest) *InstanceGroupManagersDeleteInstancesCall { - c := &InstanceGroupManagersDeleteInstancesCall{s: r.s, urlParams_: make(gensupport.URLParams)} +// - zone: The name of the zone for this request. +func (r *ImageFamilyViewsService) Get(project string, zone string, family string) *ImageFamilyViewsGetCall { + c := &ImageFamilyViewsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project c.zone = zone - c.instanceGroupManager = instanceGroupManager - c.instancegroupmanagersdeleteinstancesrequest = instancegroupmanagersdeleteinstancesrequest - 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 *InstanceGroupManagersDeleteInstancesCall) RequestId(requestId string) *InstanceGroupManagersDeleteInstancesCall { - c.urlParams_.Set("requestId", requestId) + c.family = family return c } // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *InstanceGroupManagersDeleteInstancesCall) Fields(s ...googleapi.Field) *InstanceGroupManagersDeleteInstancesCall { +func (c *ImageFamilyViewsGetCall) Fields(s ...googleapi.Field) *ImageFamilyViewsGetCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } +// IfNoneMatch sets an 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. +func (c *ImageFamilyViewsGetCall) IfNoneMatch(entityTag string) *ImageFamilyViewsGetCall { + c.ifNoneMatch_ = entityTag + return c +} + // Context sets the context to be used in this call's Do method. -func (c *InstanceGroupManagersDeleteInstancesCall) Context(ctx context.Context) *InstanceGroupManagersDeleteInstancesCall { +func (c *ImageFamilyViewsGetCall) Context(ctx context.Context) *ImageFamilyViewsGetCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *InstanceGroupManagersDeleteInstancesCall) Header() http.Header { +func (c *ImageFamilyViewsGetCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *InstanceGroupManagersDeleteInstancesCall) doRequest(alt string) (*http.Response, error) { - reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) - var body io.Reader = nil - body, err := googleapi.WithoutDataWrapper.JSONReader(c.instancegroupmanagersdeleteinstancesrequest) - if err != nil { - return nil, err +func (c *ImageFamilyViewsGetCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) + if c.ifNoneMatch_ != "" { + reqHeaders.Set("If-None-Match", c.ifNoneMatch_) } c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/deleteInstances") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/imageFamilyViews/{family}") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("POST", urls, body) + req, err := http.NewRequest("GET", urls, nil) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "zone": c.zone, - "instanceGroupManager": c.instanceGroupManager, + "project": c.project, + "zone": c.zone, + "family": c.family, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.imageFamilyViews.get", "request", internallog.HTTPRequest(req, nil)) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.instanceGroupManagers.deleteInstances" call. +// Do executes the "compute.imageFamilyViews.get" call. // 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 *InstanceGroupManagersDeleteInstancesCall) Do(opts ...googleapi.CallOption) (*Operation, error) { +// *ImageFamilyView.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 *ImageFamilyViewsGetCall) Do(opts ...googleapi.CallOption) (*ImageFamilyView, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -24307,100 +28920,111 @@ func (c *InstanceGroupManagersDeleteInstancesCall) Do(opts ...googleapi.CallOpti if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } - ret := &Operation{ + ret := &ImageFamilyView{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.imageFamilyViews.get", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type InstanceGroupManagersDeletePerInstanceConfigsCall struct { - s *Service - project string - zone string - instanceGroupManager string - instancegroupmanagersdeleteperinstanceconfigsreq *InstanceGroupManagersDeletePerInstanceConfigsReq - urlParams_ gensupport.URLParams - ctx_ context.Context - header_ http.Header +type ImagesDeleteCall struct { + s *Service + project string + image string + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header } -// DeletePerInstanceConfigs: Deletes selected per-instance configurations for -// the managed instance group. +// Delete: Deletes the specified image. // -// - instanceGroupManager: The name of the managed instance group. It should -// conform to RFC1035. -// - project: Project ID for this request. -// - zone: The name of the zone where the managed instance group is located. It -// should conform to RFC1035. -func (r *InstanceGroupManagersService) DeletePerInstanceConfigs(project string, zone string, instanceGroupManager string, instancegroupmanagersdeleteperinstanceconfigsreq *InstanceGroupManagersDeletePerInstanceConfigsReq) *InstanceGroupManagersDeletePerInstanceConfigsCall { - c := &InstanceGroupManagersDeletePerInstanceConfigsCall{s: r.s, urlParams_: make(gensupport.URLParams)} +// - image: Name of the image resource to delete. +// - project: Project ID for this request. +func (r *ImagesService) Delete(project string, image string) *ImagesDeleteCall { + c := &ImagesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project - c.zone = zone - c.instanceGroupManager = instanceGroupManager - c.instancegroupmanagersdeleteperinstanceconfigsreq = instancegroupmanagersdeleteperinstanceconfigsreq + c.image = image + 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 *ImagesDeleteCall) RequestId(requestId string) *ImagesDeleteCall { + 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 // details. -func (c *InstanceGroupManagersDeletePerInstanceConfigsCall) Fields(s ...googleapi.Field) *InstanceGroupManagersDeletePerInstanceConfigsCall { +func (c *ImagesDeleteCall) Fields(s ...googleapi.Field) *ImagesDeleteCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } // Context sets the context to be used in this call's Do method. -func (c *InstanceGroupManagersDeletePerInstanceConfigsCall) Context(ctx context.Context) *InstanceGroupManagersDeletePerInstanceConfigsCall { +func (c *ImagesDeleteCall) Context(ctx context.Context) *ImagesDeleteCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *InstanceGroupManagersDeletePerInstanceConfigsCall) Header() http.Header { +func (c *ImagesDeleteCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *InstanceGroupManagersDeletePerInstanceConfigsCall) doRequest(alt string) (*http.Response, error) { - reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) - var body io.Reader = nil - body, err := googleapi.WithoutDataWrapper.JSONReader(c.instancegroupmanagersdeleteperinstanceconfigsreq) - if err != nil { - return nil, err - } +func (c *ImagesDeleteCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/deletePerInstanceConfigs") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/images/{image}") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("POST", urls, body) + req, err := http.NewRequest("DELETE", urls, nil) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "zone": c.zone, - "instanceGroupManager": c.instanceGroupManager, + "project": c.project, + "image": c.image, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.images.delete", "request", internallog.HTTPRequest(req, nil)) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.instanceGroupManagers.deletePerInstanceConfigs" call. +// Do executes the "compute.images.delete" call. // 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 *InstanceGroupManagersDeletePerInstanceConfigsCall) Do(opts ...googleapi.CallOption) (*Operation, error) { +func (c *ImagesDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -24426,97 +29050,112 @@ func (c *InstanceGroupManagersDeletePerInstanceConfigsCall) Do(opts ...googleapi }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.images.delete", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type InstanceGroupManagersGetCall struct { - s *Service - project string - zone string - instanceGroupManager string - urlParams_ gensupport.URLParams - ifNoneMatch_ string - ctx_ context.Context - header_ http.Header +type ImagesDeprecateCall struct { + s *Service + project string + image string + deprecationstatus *DeprecationStatus + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header } -// Get: Returns all of the details about the specified managed instance group. +// Deprecate: Sets the deprecation status of an image. // -// - instanceGroupManager: The name of the managed instance group. +// If an empty request body is given, clears the deprecation status instead. +// +// - image: Image name. // - project: Project ID for this request. -// - zone: The name of the zone where the managed instance group is located. -func (r *InstanceGroupManagersService) Get(project string, zone string, instanceGroupManager string) *InstanceGroupManagersGetCall { - c := &InstanceGroupManagersGetCall{s: r.s, urlParams_: make(gensupport.URLParams)} +func (r *ImagesService) Deprecate(project string, image string, deprecationstatus *DeprecationStatus) *ImagesDeprecateCall { + c := &ImagesDeprecateCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project - c.zone = zone - c.instanceGroupManager = instanceGroupManager + c.image = image + c.deprecationstatus = deprecationstatus + 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 *ImagesDeprecateCall) RequestId(requestId string) *ImagesDeprecateCall { + 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 // details. -func (c *InstanceGroupManagersGetCall) Fields(s ...googleapi.Field) *InstanceGroupManagersGetCall { +func (c *ImagesDeprecateCall) Fields(s ...googleapi.Field) *ImagesDeprecateCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } -// IfNoneMatch sets an 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. -func (c *InstanceGroupManagersGetCall) IfNoneMatch(entityTag string) *InstanceGroupManagersGetCall { - c.ifNoneMatch_ = entityTag - return c -} - // Context sets the context to be used in this call's Do method. -func (c *InstanceGroupManagersGetCall) Context(ctx context.Context) *InstanceGroupManagersGetCall { +func (c *ImagesDeprecateCall) Context(ctx context.Context) *ImagesDeprecateCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *InstanceGroupManagersGetCall) Header() http.Header { +func (c *ImagesDeprecateCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *InstanceGroupManagersGetCall) doRequest(alt string) (*http.Response, error) { - reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) - if c.ifNoneMatch_ != "" { - reqHeaders.Set("If-None-Match", c.ifNoneMatch_) +func (c *ImagesDeprecateCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) + body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.deprecationstatus) + if err != nil { + return nil, err } - var body io.Reader = nil c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/images/{image}/deprecate") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("GET", urls, body) + req, err := http.NewRequest("POST", urls, body) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "zone": c.zone, - "instanceGroupManager": c.instanceGroupManager, + "project": c.project, + "image": c.image, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.images.deprecate", "request", internallog.HTTPRequest(req, body.Bytes())) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.instanceGroupManagers.get" call. +// Do executes the "compute.images.deprecate" call. // Any non-2xx status code is an error. Response headers are in either -// *InstanceGroupManager.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 *InstanceGroupManagersGetCall) Do(opts ...googleapi.CallOption) (*InstanceGroupManager, error) { +// *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 *ImagesDeprecateCall) Do(opts ...googleapi.CallOption) (*Operation, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -24535,116 +29174,101 @@ func (c *InstanceGroupManagersGetCall) Do(opts ...googleapi.CallOption) (*Instan if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } - ret := &InstanceGroupManager{ + ret := &Operation{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.images.deprecate", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type InstanceGroupManagersInsertCall struct { - s *Service - project string - zone string - instancegroupmanager *InstanceGroupManager - urlParams_ gensupport.URLParams - ctx_ context.Context - header_ http.Header +type ImagesGetCall struct { + s *Service + project string + image string + urlParams_ gensupport.URLParams + ifNoneMatch_ string + ctx_ context.Context + header_ http.Header } -// Insert: Creates a managed instance group using the information that you -// specify in the request. After the group is created, instances in the group -// are created using the specified instance template. This operation is marked -// as DONE when the group is created even if the instances in the group have -// not yet been created. You must separately verify the status of the -// individual instances with the listmanagedinstances method. A managed -// instance group can have up to 1000 VM instances per group. Please contact -// Cloud Support if you need an increase in this limit. +// Get: Returns the specified image. // -// - project: Project ID for this request. -// - zone: The name of the zone where you want to create the managed instance -// group. -func (r *InstanceGroupManagersService) Insert(project string, zone string, instancegroupmanager *InstanceGroupManager) *InstanceGroupManagersInsertCall { - c := &InstanceGroupManagersInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)} +// - image: Name of the image resource to return. +// - project: Project ID for this request. +func (r *ImagesService) Get(project string, image string) *ImagesGetCall { + c := &ImagesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project - c.zone = zone - c.instancegroupmanager = instancegroupmanager - 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 *InstanceGroupManagersInsertCall) RequestId(requestId string) *InstanceGroupManagersInsertCall { - c.urlParams_.Set("requestId", requestId) + c.image = image return c } // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *InstanceGroupManagersInsertCall) Fields(s ...googleapi.Field) *InstanceGroupManagersInsertCall { +func (c *ImagesGetCall) Fields(s ...googleapi.Field) *ImagesGetCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } +// IfNoneMatch sets an 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. +func (c *ImagesGetCall) IfNoneMatch(entityTag string) *ImagesGetCall { + c.ifNoneMatch_ = entityTag + return c +} + // Context sets the context to be used in this call's Do method. -func (c *InstanceGroupManagersInsertCall) Context(ctx context.Context) *InstanceGroupManagersInsertCall { +func (c *ImagesGetCall) Context(ctx context.Context) *ImagesGetCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *InstanceGroupManagersInsertCall) Header() http.Header { +func (c *ImagesGetCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *InstanceGroupManagersInsertCall) doRequest(alt string) (*http.Response, error) { - reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) - var body io.Reader = nil - body, err := googleapi.WithoutDataWrapper.JSONReader(c.instancegroupmanager) - if err != nil { - return nil, err +func (c *ImagesGetCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) + if c.ifNoneMatch_ != "" { + reqHeaders.Set("If-None-Match", c.ifNoneMatch_) } c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instanceGroupManagers") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/images/{image}") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("POST", urls, body) + req, err := http.NewRequest("GET", urls, nil) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ "project": c.project, - "zone": c.zone, + "image": c.image, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.images.get", "request", internallog.HTTPRequest(req, nil)) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.instanceGroupManagers.insert" call. +// Do executes the "compute.images.get" call. // 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 +// *Image.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 *InstanceGroupManagersInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) { +func (c *ImagesGetCall) Do(opts ...googleapi.CallOption) (*Image, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -24663,123 +29287,52 @@ func (c *InstanceGroupManagersInsertCall) Do(opts ...googleapi.CallOption) (*Ope if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } - ret := &Operation{ + ret := &Image{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.images.get", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type InstanceGroupManagersListCall struct { +type ImagesGetFromFamilyCall struct { s *Service project string - zone string + family string urlParams_ gensupport.URLParams ifNoneMatch_ string ctx_ context.Context header_ http.Header } -// List: Retrieves a list of managed instance groups that are contained within -// the specified project and zone. +// GetFromFamily: Returns the latest image that is part of an image family and +// is not +// deprecated. For more information on image families, seePublic +// image families documentation. // -// - project: Project ID for this request. -// - zone: The name of the zone where the managed instance group is located. -func (r *InstanceGroupManagersService) List(project string, zone string) *InstanceGroupManagersListCall { - c := &InstanceGroupManagersListCall{s: r.s, urlParams_: make(gensupport.URLParams)} +// - family: Name of the image family to search for. +// - project: The image project that the image belongs to. For example, to get +// a CentOS +// +// image, specify centos-cloud as the image project. +func (r *ImagesService) GetFromFamily(project string, family string) *ImagesGetFromFamilyCall { + c := &ImagesGetFromFamilyCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project - c.zone = zone - return c -} - -// Filter sets the optional parameter "filter": A filter expression that -// filters resources listed in the response. Most Compute resources support two -// types of filter expressions: expressions that support regular expressions -// and expressions that follow API improvement proposal AIP-160. These two -// types of filter expressions cannot be mixed in one request. If you want to -// use AIP-160, your expression must specify the field name, an operator, and -// the value that you want to use for filtering. The value must be a string, a -// number, or a boolean. The 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`. The `:*` comparison can be used to test whether a key has -// been defined. For example, to find all objects with `owner` label use: ``` -// labels.owner:* ``` 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) ``` If you want to use a regular -// expression, use the `eq` (equal) or `ne` (not equal) operator against a -// single un-parenthesized expression with or without quotes or against -// multiple parenthesized expressions. Examples: `fieldname eq unquoted -// literal` `fieldname eq 'single quoted literal'` `fieldname eq "double quoted -// literal" `(fieldname1 eq literal) (fieldname2 ne "literal")` The literal -// value is interpreted as a regular expression using Google RE2 library -// syntax. The literal value must match the entire field. For example, to -// filter for instances that do not end with name "instance", you would use -// `name ne .*instance`. You cannot combine constraints on multiple fields -// using regular expressions. -func (c *InstanceGroupManagersListCall) Filter(filter string) *InstanceGroupManagersListCall { - 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 *InstanceGroupManagersListCall) MaxResults(maxResults int64) *InstanceGroupManagersListCall { - 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 *InstanceGroupManagersListCall) OrderBy(orderBy string) *InstanceGroupManagersListCall { - 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 *InstanceGroupManagersListCall) PageToken(pageToken string) *InstanceGroupManagersListCall { - c.urlParams_.Set("pageToken", pageToken) - return c -} - -// ReturnPartialSuccess sets the optional parameter "returnPartialSuccess": -// Opt-in for partial success behavior which provides partial results in case -// of failure. The default value is false. For example, when partial success -// behavior is enabled, aggregatedList for a single zone scope either returns -// all resources in the zone or no resources, with an error code. -func (c *InstanceGroupManagersListCall) ReturnPartialSuccess(returnPartialSuccess bool) *InstanceGroupManagersListCall { - c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess)) + c.family = family return c } // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *InstanceGroupManagersListCall) Fields(s ...googleapi.Field) *InstanceGroupManagersListCall { +func (c *ImagesGetFromFamilyCall) Fields(s ...googleapi.Field) *ImagesGetFromFamilyCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } @@ -24787,55 +29340,54 @@ func (c *InstanceGroupManagersListCall) Fields(s ...googleapi.Field) *InstanceGr // IfNoneMatch sets an 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. -func (c *InstanceGroupManagersListCall) IfNoneMatch(entityTag string) *InstanceGroupManagersListCall { +func (c *ImagesGetFromFamilyCall) IfNoneMatch(entityTag string) *ImagesGetFromFamilyCall { c.ifNoneMatch_ = entityTag return c } // Context sets the context to be used in this call's Do method. -func (c *InstanceGroupManagersListCall) Context(ctx context.Context) *InstanceGroupManagersListCall { +func (c *ImagesGetFromFamilyCall) Context(ctx context.Context) *ImagesGetFromFamilyCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *InstanceGroupManagersListCall) Header() http.Header { +func (c *ImagesGetFromFamilyCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *InstanceGroupManagersListCall) doRequest(alt string) (*http.Response, error) { +func (c *ImagesGetFromFamilyCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) if c.ifNoneMatch_ != "" { reqHeaders.Set("If-None-Match", c.ifNoneMatch_) } - var body io.Reader = nil c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instanceGroupManagers") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/images/family/{family}") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("GET", urls, body) + req, err := http.NewRequest("GET", urls, nil) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ "project": c.project, - "zone": c.zone, + "family": c.family, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.images.getFromFamily", "request", internallog.HTTPRequest(req, nil)) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.instanceGroupManagers.list" call. +// Do executes the "compute.images.getFromFamily" call. // Any non-2xx status code is an error. Response headers are in either -// *InstanceGroupManagerList.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 *InstanceGroupManagersListCall) Do(opts ...googleapi.CallOption) (*InstanceGroupManagerList, error) { +// *Image.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 *ImagesGetFromFamilyCall) Do(opts ...googleapi.CallOption) (*Image, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -24854,152 +29406,55 @@ func (c *InstanceGroupManagersListCall) Do(opts ...googleapi.CallOption) (*Insta if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } - ret := &InstanceGroupManagerList{ + ret := &Image{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.images.getFromFamily", "response", internallog.HTTPResponse(res, b)) return ret, nil } -// 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 *InstanceGroupManagersListCall) Pages(ctx context.Context, f func(*InstanceGroupManagerList) error) error { - c.ctx_ = ctx - defer c.PageToken(c.urlParams_.Get("pageToken")) - 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) - } -} - -type InstanceGroupManagersListErrorsCall struct { - s *Service - project string - zone string - instanceGroupManager string - urlParams_ gensupport.URLParams - ifNoneMatch_ string - ctx_ context.Context - header_ http.Header +type ImagesGetIamPolicyCall struct { + s *Service + project string + resource string + urlParams_ gensupport.URLParams + ifNoneMatch_ string + ctx_ context.Context + header_ http.Header } -// ListErrors: Lists all errors thrown by actions on instances for a given -// managed instance group. The filter and orderBy query parameters are not -// supported. +// GetIamPolicy: Gets the access control policy for a resource. May be empty if +// no such +// policy or resource exists. // -// - instanceGroupManager: The name of the managed instance group. It must be a -// string that meets the requirements in RFC1035, or an unsigned long -// integer: must match regexp pattern: (?:a-z -// (?:[-a-z0-9]{0,61}[a-z0-9])?)|1-9{0,19}. -// - project: Project ID for this request. -// - zone: The name of the zone where the managed instance group is located. It -// should conform to RFC1035. -func (r *InstanceGroupManagersService) ListErrors(project string, zone string, instanceGroupManager string) *InstanceGroupManagersListErrorsCall { - c := &InstanceGroupManagersListErrorsCall{s: r.s, urlParams_: make(gensupport.URLParams)} +// - project: Project ID for this request. +// - resource: Name or id of the resource for this request. +func (r *ImagesService) GetIamPolicy(project string, resource string) *ImagesGetIamPolicyCall { + c := &ImagesGetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project - c.zone = zone - c.instanceGroupManager = instanceGroupManager - return c -} - -// Filter sets the optional parameter "filter": A filter expression that -// filters resources listed in the response. Most Compute resources support two -// types of filter expressions: expressions that support regular expressions -// and expressions that follow API improvement proposal AIP-160. These two -// types of filter expressions cannot be mixed in one request. If you want to -// use AIP-160, your expression must specify the field name, an operator, and -// the value that you want to use for filtering. The value must be a string, a -// number, or a boolean. The 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`. The `:*` comparison can be used to test whether a key has -// been defined. For example, to find all objects with `owner` label use: ``` -// labels.owner:* ``` 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) ``` If you want to use a regular -// expression, use the `eq` (equal) or `ne` (not equal) operator against a -// single un-parenthesized expression with or without quotes or against -// multiple parenthesized expressions. Examples: `fieldname eq unquoted -// literal` `fieldname eq 'single quoted literal'` `fieldname eq "double quoted -// literal" `(fieldname1 eq literal) (fieldname2 ne "literal")` The literal -// value is interpreted as a regular expression using Google RE2 library -// syntax. The literal value must match the entire field. For example, to -// filter for instances that do not end with name "instance", you would use -// `name ne .*instance`. You cannot combine constraints on multiple fields -// using regular expressions. -func (c *InstanceGroupManagersListErrorsCall) Filter(filter string) *InstanceGroupManagersListErrorsCall { - 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 *InstanceGroupManagersListErrorsCall) MaxResults(maxResults int64) *InstanceGroupManagersListErrorsCall { - 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 *InstanceGroupManagersListErrorsCall) OrderBy(orderBy string) *InstanceGroupManagersListErrorsCall { - 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 *InstanceGroupManagersListErrorsCall) PageToken(pageToken string) *InstanceGroupManagersListErrorsCall { - c.urlParams_.Set("pageToken", pageToken) + c.resource = resource return c } -// ReturnPartialSuccess sets the optional parameter "returnPartialSuccess": -// Opt-in for partial success behavior which provides partial results in case -// of failure. The default value is false. For example, when partial success -// behavior is enabled, aggregatedList for a single zone scope either returns -// all resources in the zone or no resources, with an error code. -func (c *InstanceGroupManagersListErrorsCall) ReturnPartialSuccess(returnPartialSuccess bool) *InstanceGroupManagersListErrorsCall { - c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess)) +// OptionsRequestedPolicyVersion sets the optional parameter +// "optionsRequestedPolicyVersion": Requested IAM Policy version. +func (c *ImagesGetIamPolicyCall) OptionsRequestedPolicyVersion(optionsRequestedPolicyVersion int64) *ImagesGetIamPolicyCall { + c.urlParams_.Set("optionsRequestedPolicyVersion", fmt.Sprint(optionsRequestedPolicyVersion)) return c } // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *InstanceGroupManagersListErrorsCall) Fields(s ...googleapi.Field) *InstanceGroupManagersListErrorsCall { +func (c *ImagesGetIamPolicyCall) Fields(s ...googleapi.Field) *ImagesGetIamPolicyCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } @@ -25007,56 +29462,54 @@ func (c *InstanceGroupManagersListErrorsCall) Fields(s ...googleapi.Field) *Inst // IfNoneMatch sets an 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. -func (c *InstanceGroupManagersListErrorsCall) IfNoneMatch(entityTag string) *InstanceGroupManagersListErrorsCall { +func (c *ImagesGetIamPolicyCall) IfNoneMatch(entityTag string) *ImagesGetIamPolicyCall { c.ifNoneMatch_ = entityTag return c } // Context sets the context to be used in this call's Do method. -func (c *InstanceGroupManagersListErrorsCall) Context(ctx context.Context) *InstanceGroupManagersListErrorsCall { +func (c *ImagesGetIamPolicyCall) Context(ctx context.Context) *ImagesGetIamPolicyCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *InstanceGroupManagersListErrorsCall) Header() http.Header { +func (c *ImagesGetIamPolicyCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *InstanceGroupManagersListErrorsCall) doRequest(alt string) (*http.Response, error) { +func (c *ImagesGetIamPolicyCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) if c.ifNoneMatch_ != "" { reqHeaders.Set("If-None-Match", c.ifNoneMatch_) } - var body io.Reader = nil c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/listErrors") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/images/{resource}/getIamPolicy") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("GET", urls, body) + req, err := http.NewRequest("GET", urls, nil) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "zone": c.zone, - "instanceGroupManager": c.instanceGroupManager, + "project": c.project, + "resource": c.resource, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.images.getIamPolicy", "request", internallog.HTTPRequest(req, nil)) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.instanceGroupManagers.listErrors" call. +// Do executes the "compute.images.getIamPolicy" call. // Any non-2xx status code is an error. Response headers are in either -// *InstanceGroupManagersListErrorsResponse.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 *InstanceGroupManagersListErrorsCall) Do(opts ...googleapi.CallOption) (*InstanceGroupManagersListErrorsResponse, error) { +// *Policy.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 *ImagesGetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -25075,177 +29528,102 @@ func (c *InstanceGroupManagersListErrorsCall) Do(opts ...googleapi.CallOption) ( if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } - ret := &InstanceGroupManagersListErrorsResponse{ + ret := &Policy{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.images.getIamPolicy", "response", internallog.HTTPResponse(res, b)) return ret, nil } -// 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 *InstanceGroupManagersListErrorsCall) Pages(ctx context.Context, f func(*InstanceGroupManagersListErrorsResponse) error) error { - c.ctx_ = ctx - defer c.PageToken(c.urlParams_.Get("pageToken")) - 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) - } -} - -type InstanceGroupManagersListManagedInstancesCall struct { - s *Service - project string - zone string - instanceGroupManager string - urlParams_ gensupport.URLParams - ctx_ context.Context - header_ http.Header +type ImagesInsertCall struct { + s *Service + project string + image *Image + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header } -// ListManagedInstances: Lists all of the instances in the managed instance -// group. Each instance in the list has a currentAction, which indicates the -// action that the managed instance group is performing on the instance. For -// example, if the group is still creating an instance, the currentAction is -// CREATING. If a previous action failed, the list displays the errors for that -// failed action. The orderBy query parameter is not supported. The `pageToken` -// query parameter is supported only if the group's -// `listManagedInstancesResults` field is set to `PAGINATED`. +// Insert: Creates an image in the specified project using the data included +// in the request. // -// - instanceGroupManager: The name of the managed instance group. // - project: Project ID for this request. -// - zone: The name of the zone where the managed instance group is located. -func (r *InstanceGroupManagersService) ListManagedInstances(project string, zone string, instanceGroupManager string) *InstanceGroupManagersListManagedInstancesCall { - c := &InstanceGroupManagersListManagedInstancesCall{s: r.s, urlParams_: make(gensupport.URLParams)} +func (r *ImagesService) Insert(project string, image *Image) *ImagesInsertCall { + c := &ImagesInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project - c.zone = zone - c.instanceGroupManager = instanceGroupManager - return c -} - -// Filter sets the optional parameter "filter": A filter expression that -// filters resources listed in the response. Most Compute resources support two -// types of filter expressions: expressions that support regular expressions -// and expressions that follow API improvement proposal AIP-160. These two -// types of filter expressions cannot be mixed in one request. If you want to -// use AIP-160, your expression must specify the field name, an operator, and -// the value that you want to use for filtering. The value must be a string, a -// number, or a boolean. The 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`. The `:*` comparison can be used to test whether a key has -// been defined. For example, to find all objects with `owner` label use: ``` -// labels.owner:* ``` 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) ``` If you want to use a regular -// expression, use the `eq` (equal) or `ne` (not equal) operator against a -// single un-parenthesized expression with or without quotes or against -// multiple parenthesized expressions. Examples: `fieldname eq unquoted -// literal` `fieldname eq 'single quoted literal'` `fieldname eq "double quoted -// literal" `(fieldname1 eq literal) (fieldname2 ne "literal")` The literal -// value is interpreted as a regular expression using Google RE2 library -// syntax. The literal value must match the entire field. For example, to -// filter for instances that do not end with name "instance", you would use -// `name ne .*instance`. You cannot combine constraints on multiple fields -// using regular expressions. -func (c *InstanceGroupManagersListManagedInstancesCall) Filter(filter string) *InstanceGroupManagersListManagedInstancesCall { - 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 *InstanceGroupManagersListManagedInstancesCall) MaxResults(maxResults int64) *InstanceGroupManagersListManagedInstancesCall { - 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 *InstanceGroupManagersListManagedInstancesCall) OrderBy(orderBy string) *InstanceGroupManagersListManagedInstancesCall { - c.urlParams_.Set("orderBy", orderBy) + c.image = image 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 *InstanceGroupManagersListManagedInstancesCall) PageToken(pageToken string) *InstanceGroupManagersListManagedInstancesCall { - c.urlParams_.Set("pageToken", pageToken) +// ForceCreate sets the optional parameter "forceCreate": Force image creation +// if true. +func (c *ImagesInsertCall) ForceCreate(forceCreate bool) *ImagesInsertCall { + c.urlParams_.Set("forceCreate", fmt.Sprint(forceCreate)) return c } -// ReturnPartialSuccess sets the optional parameter "returnPartialSuccess": -// Opt-in for partial success behavior which provides partial results in case -// of failure. The default value is false. For example, when partial success -// behavior is enabled, aggregatedList for a single zone scope either returns -// all resources in the zone or no resources, with an error code. -func (c *InstanceGroupManagersListManagedInstancesCall) ReturnPartialSuccess(returnPartialSuccess bool) *InstanceGroupManagersListManagedInstancesCall { - c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess)) +// 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 *ImagesInsertCall) RequestId(requestId string) *ImagesInsertCall { + 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 // details. -func (c *InstanceGroupManagersListManagedInstancesCall) Fields(s ...googleapi.Field) *InstanceGroupManagersListManagedInstancesCall { +func (c *ImagesInsertCall) Fields(s ...googleapi.Field) *ImagesInsertCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } // Context sets the context to be used in this call's Do method. -func (c *InstanceGroupManagersListManagedInstancesCall) Context(ctx context.Context) *InstanceGroupManagersListManagedInstancesCall { +func (c *ImagesInsertCall) Context(ctx context.Context) *ImagesInsertCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *InstanceGroupManagersListManagedInstancesCall) Header() http.Header { +func (c *ImagesInsertCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *InstanceGroupManagersListManagedInstancesCall) doRequest(alt string) (*http.Response, error) { - reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) - var body io.Reader = nil +func (c *ImagesInsertCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) + body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.image) + if err != nil { + return nil, err + } c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/listManagedInstances") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/images") urls += "?" + c.urlParams_.Encode() req, err := http.NewRequest("POST", urls, body) if err != nil { @@ -25253,20 +29631,18 @@ func (c *InstanceGroupManagersListManagedInstancesCall) doRequest(alt string) (* } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "zone": c.zone, - "instanceGroupManager": c.instanceGroupManager, + "project": c.project, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.images.insert", "request", internallog.HTTPRequest(req, body.Bytes())) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.instanceGroupManagers.listManagedInstances" call. +// Do executes the "compute.images.insert" call. // Any non-2xx status code is an error. Response headers are in either -// *InstanceGroupManagersListManagedInstancesResponse.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 *InstanceGroupManagersListManagedInstancesCall) Do(opts ...googleapi.CallOption) (*InstanceGroupManagersListManagedInstancesResponse, error) { +// *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 *ImagesInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -25285,141 +29661,172 @@ func (c *InstanceGroupManagersListManagedInstancesCall) Do(opts ...googleapi.Cal if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } - ret := &InstanceGroupManagersListManagedInstancesResponse{ + ret := &Operation{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.images.insert", "response", internallog.HTTPResponse(res, b)) return ret, nil } -// 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 *InstanceGroupManagersListManagedInstancesCall) Pages(ctx context.Context, f func(*InstanceGroupManagersListManagedInstancesResponse) error) error { - c.ctx_ = ctx - defer c.PageToken(c.urlParams_.Get("pageToken")) - 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) - } -} - -type InstanceGroupManagersListPerInstanceConfigsCall struct { - s *Service - project string - zone string - instanceGroupManager string - urlParams_ gensupport.URLParams - ctx_ context.Context - header_ http.Header +type ImagesListCall struct { + s *Service + project string + urlParams_ gensupport.URLParams + ifNoneMatch_ string + ctx_ context.Context + header_ http.Header } -// ListPerInstanceConfigs: Lists all of the per-instance configurations defined -// for the managed instance group. The orderBy query parameter is not -// supported. +// List: Retrieves the list of custom images +// available to the specified project. Custom images are images you +// create that belong to your project. This method does not +// get any images that belong to other projects, including +// publicly-available +// images, like Debian 8. If you want to get a list of +// publicly-available +// images, use this method to make a request to the respective image +// project, +// such as debian-cloud or windows-cloud. // -// - instanceGroupManager: The name of the managed instance group. It should -// conform to RFC1035. -// - project: Project ID for this request. -// - zone: The name of the zone where the managed instance group is located. It -// should conform to RFC1035. -func (r *InstanceGroupManagersService) ListPerInstanceConfigs(project string, zone string, instanceGroupManager string) *InstanceGroupManagersListPerInstanceConfigsCall { - c := &InstanceGroupManagersListPerInstanceConfigsCall{s: r.s, urlParams_: make(gensupport.URLParams)} +// - project: Project ID for this request. +func (r *ImagesService) List(project string) *ImagesListCall { + c := &ImagesListCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project - c.zone = zone - c.instanceGroupManager = instanceGroupManager return c } // Filter sets the optional parameter "filter": A filter expression that -// filters resources listed in the response. Most Compute resources support two -// types of filter expressions: expressions that support regular expressions -// and expressions that follow API improvement proposal AIP-160. These two -// types of filter expressions cannot be mixed in one request. If you want to -// use AIP-160, your expression must specify the field name, an operator, and -// the value that you want to use for filtering. The value must be a string, a -// number, or a boolean. The 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`. The `:*` comparison can be used to test whether a key has -// been defined. For example, to find all objects with `owner` label use: ``` -// labels.owner:* ``` 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) ``` If you want to use a regular -// expression, use the `eq` (equal) or `ne` (not equal) operator against a -// single un-parenthesized expression with or without quotes or against -// multiple parenthesized expressions. Examples: `fieldname eq unquoted -// literal` `fieldname eq 'single quoted literal'` `fieldname eq "double quoted -// literal" `(fieldname1 eq literal) (fieldname2 ne "literal")` The literal -// value is interpreted as a regular expression using Google RE2 library -// syntax. The literal value must match the entire field. For example, to -// filter for instances that do not end with name "instance", you would use -// `name ne .*instance`. You cannot combine constraints on multiple fields -// using regular expressions. -func (c *InstanceGroupManagersListPerInstanceConfigsCall) Filter(filter string) *InstanceGroupManagersListPerInstanceConfigsCall { +// filters resources listed in the response. Most +// Compute resources support two types of filter expressions: +// expressions that support regular expressions and expressions that follow +// API improvement proposal AIP-160. +// These two types of filter expressions cannot be mixed in one request. +// +// If you want to use AIP-160, your expression must specify the field name, +// an +// operator, and the value that you want to use for filtering. The value +// must be a string, a number, or a boolean. The 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`. +// +// The `:*` comparison can be used to test whether a key has been defined. +// For example, to find all objects with `owner` label +// use: +// ``` +// labels.owner:* +// ``` +// +// 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 onresource 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) +// ``` +// +// If you want to use a regular expression, use the `eq` (equal) or `ne` +// (not equal) operator against a single un-parenthesized expression with +// or +// without quotes or against multiple parenthesized expressions. +// Examples: +// +// `fieldname eq unquoted literal` +// `fieldname eq 'single quoted literal'` +// `fieldname eq "double quoted literal" +// `(fieldname1 eq literal) (fieldname2 ne "literal")` +// +// The literal value is interpreted as a regular expression using GoogleRE2 +// library syntax. +// The literal value must match the entire field. +// +// For example, to filter for instances that do not end with name +// "instance", +// you would use `name ne .*instance`. +// +// You cannot combine constraints on multiple fields using regular +// expressions. +func (c *ImagesListCall) Filter(filter string) *ImagesListCall { 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 *InstanceGroupManagersListPerInstanceConfigsCall) MaxResults(maxResults int64) *InstanceGroupManagersListPerInstanceConfigsCall { +// 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 *ImagesListCall) MaxResults(maxResults int64) *ImagesListCall { 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 *InstanceGroupManagersListPerInstanceConfigsCall) OrderBy(orderBy string) *InstanceGroupManagersListPerInstanceConfigsCall { +// 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 *ImagesListCall) OrderBy(orderBy string) *ImagesListCall { 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 *InstanceGroupManagersListPerInstanceConfigsCall) PageToken(pageToken string) *InstanceGroupManagersListPerInstanceConfigsCall { +// use. Set `pageToken` to the +// `nextPageToken` returned by a previous list request to get +// the next page of results. +func (c *ImagesListCall) PageToken(pageToken string) *ImagesListCall { c.urlParams_.Set("pageToken", pageToken) return c } // ReturnPartialSuccess sets the optional parameter "returnPartialSuccess": -// Opt-in for partial success behavior which provides partial results in case -// of failure. The default value is false. For example, when partial success -// behavior is enabled, aggregatedList for a single zone scope either returns -// all resources in the zone or no resources, with an error code. -func (c *InstanceGroupManagersListPerInstanceConfigsCall) ReturnPartialSuccess(returnPartialSuccess bool) *InstanceGroupManagersListPerInstanceConfigsCall { +// Opt-in for partial success behavior which provides partial results in +// case +// of failure. The default value is false. +// +// For example, when partial success behavior is enabled, aggregatedList for +// a +// single zone scope either returns all resources in the zone or no +// resources, +// with an error code. +func (c *ImagesListCall) ReturnPartialSuccess(returnPartialSuccess bool) *ImagesListCall { c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess)) return c } @@ -25427,53 +29834,61 @@ func (c *InstanceGroupManagersListPerInstanceConfigsCall) ReturnPartialSuccess(r // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *InstanceGroupManagersListPerInstanceConfigsCall) Fields(s ...googleapi.Field) *InstanceGroupManagersListPerInstanceConfigsCall { +func (c *ImagesListCall) Fields(s ...googleapi.Field) *ImagesListCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } +// IfNoneMatch sets an 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. +func (c *ImagesListCall) IfNoneMatch(entityTag string) *ImagesListCall { + c.ifNoneMatch_ = entityTag + return c +} + // Context sets the context to be used in this call's Do method. -func (c *InstanceGroupManagersListPerInstanceConfigsCall) Context(ctx context.Context) *InstanceGroupManagersListPerInstanceConfigsCall { +func (c *ImagesListCall) Context(ctx context.Context) *ImagesListCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *InstanceGroupManagersListPerInstanceConfigsCall) Header() http.Header { +func (c *ImagesListCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *InstanceGroupManagersListPerInstanceConfigsCall) doRequest(alt string) (*http.Response, error) { +func (c *ImagesListCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) - var body io.Reader = nil + if c.ifNoneMatch_ != "" { + reqHeaders.Set("If-None-Match", c.ifNoneMatch_) + } c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/listPerInstanceConfigs") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/images") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("POST", urls, body) + req, err := http.NewRequest("GET", urls, nil) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "zone": c.zone, - "instanceGroupManager": c.instanceGroupManager, + "project": c.project, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.images.list", "request", internallog.HTTPRequest(req, nil)) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.instanceGroupManagers.listPerInstanceConfigs" call. +// Do executes the "compute.images.list" call. // Any non-2xx status code is an error. Response headers are in either -// *InstanceGroupManagersListPerInstanceConfigsResp.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 *InstanceGroupManagersListPerInstanceConfigsCall) Do(opts ...googleapi.CallOption) (*InstanceGroupManagersListPerInstanceConfigsResp, error) { +// *ImageList.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 *ImagesListCall) Do(opts ...googleapi.CallOption) (*ImageList, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -25492,23 +29907,25 @@ func (c *InstanceGroupManagersListPerInstanceConfigsCall) Do(opts ...googleapi.C if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } - ret := &InstanceGroupManagersListPerInstanceConfigsResp{ + ret := &ImageList{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.images.list", "response", internallog.HTTPResponse(res, b)) return ret, nil } // 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 *InstanceGroupManagersListPerInstanceConfigsCall) Pages(ctx context.Context, f func(*InstanceGroupManagersListPerInstanceConfigsResp) error) error { +func (c *ImagesListCall) Pages(ctx context.Context, f func(*ImageList) error) error { c.ctx_ = ctx defer c.PageToken(c.urlParams_.Get("pageToken")) for { @@ -25526,52 +29943,49 @@ func (c *InstanceGroupManagersListPerInstanceConfigsCall) Pages(ctx context.Cont } } -type InstanceGroupManagersPatchCall struct { - s *Service - project string - zone string - instanceGroupManager string - instancegroupmanager *InstanceGroupManager - urlParams_ gensupport.URLParams - ctx_ context.Context - header_ http.Header +type ImagesPatchCall struct { + s *Service + project string + image string + image2 *Image + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header } -// Patch: Updates a managed instance group using the information that you -// specify in the request. This operation is marked as DONE when the group is -// patched even if the instances in the group are still in the process of being -// patched. You must separately verify the status of the individual instances -// with the listManagedInstances method. This method supports PATCH semantics -// and uses the JSON merge patch format and processing rules. If you update -// your group to specify a new template or instance configuration, it's -// possible that your intended specification for each VM in the group is -// different from the current state of that VM. To learn how to apply an -// updated configuration to the VMs in a MIG, see Updating instances in a MIG. +// Patch: Patches the specified image with the data included in the +// request. +// Only the following fields can be modified: family, description, +// deprecation status. // -// - instanceGroupManager: The name of the instance group manager. -// - project: Project ID for this request. -// - zone: The name of the zone where you want to create the managed instance -// group. -func (r *InstanceGroupManagersService) Patch(project string, zone string, instanceGroupManager string, instancegroupmanager *InstanceGroupManager) *InstanceGroupManagersPatchCall { - c := &InstanceGroupManagersPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)} +// - image: Name of the image resource to patch. +// - project: Project ID for this request. +func (r *ImagesService) Patch(project string, image string, image2 *Image) *ImagesPatchCall { + c := &ImagesPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project - c.zone = zone - c.instanceGroupManager = instanceGroupManager - c.instancegroupmanager = instancegroupmanager + c.image = image + c.image2 = image2 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 *InstanceGroupManagersPatchCall) RequestId(requestId string) *InstanceGroupManagersPatchCall { +// 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 *ImagesPatchCall) RequestId(requestId string) *ImagesPatchCall { c.urlParams_.Set("requestId", requestId) return c } @@ -25579,36 +29993,35 @@ func (c *InstanceGroupManagersPatchCall) RequestId(requestId string) *InstanceGr // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *InstanceGroupManagersPatchCall) Fields(s ...googleapi.Field) *InstanceGroupManagersPatchCall { +func (c *ImagesPatchCall) Fields(s ...googleapi.Field) *ImagesPatchCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } // Context sets the context to be used in this call's Do method. -func (c *InstanceGroupManagersPatchCall) Context(ctx context.Context) *InstanceGroupManagersPatchCall { +func (c *ImagesPatchCall) Context(ctx context.Context) *ImagesPatchCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *InstanceGroupManagersPatchCall) Header() http.Header { +func (c *ImagesPatchCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *InstanceGroupManagersPatchCall) doRequest(alt string) (*http.Response, error) { +func (c *ImagesPatchCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) - var body io.Reader = nil - body, err := googleapi.WithoutDataWrapper.JSONReader(c.instancegroupmanager) + body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.image2) if err != nil { return nil, err } c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/images/{image}") urls += "?" + c.urlParams_.Encode() req, err := http.NewRequest("PATCH", urls, body) if err != nil { @@ -25616,19 +30029,19 @@ func (c *InstanceGroupManagersPatchCall) doRequest(alt string) (*http.Response, } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "zone": c.zone, - "instanceGroupManager": c.instanceGroupManager, + "project": c.project, + "image": c.image, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.images.patch", "request", internallog.HTTPRequest(req, body.Bytes())) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.instanceGroupManagers.patch" call. +// Do executes the "compute.images.patch" call. // 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 *InstanceGroupManagersPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) { +func (c *ImagesPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -25654,89 +30067,70 @@ func (c *InstanceGroupManagersPatchCall) Do(opts ...googleapi.CallOption) (*Oper }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.images.patch", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type InstanceGroupManagersPatchPerInstanceConfigsCall struct { - s *Service - project string - zone string - instanceGroupManager string - instancegroupmanagerspatchperinstanceconfigsreq *InstanceGroupManagersPatchPerInstanceConfigsReq - urlParams_ gensupport.URLParams - ctx_ context.Context - header_ http.Header +type ImagesSetIamPolicyCall struct { + s *Service + project string + resource string + globalsetpolicyrequest *GlobalSetPolicyRequest + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header } -// PatchPerInstanceConfigs: Inserts or patches per-instance configurations for -// the managed instance group. perInstanceConfig.name serves as a key used to -// distinguish whether to perform insert or patch. +// SetIamPolicy: Sets the access control policy on the specified +// resource. +// Replaces any existing policy. // -// - instanceGroupManager: The name of the managed instance group. It should -// conform to RFC1035. -// - project: Project ID for this request. -// - zone: The name of the zone where the managed instance group is located. It -// should conform to RFC1035. -func (r *InstanceGroupManagersService) PatchPerInstanceConfigs(project string, zone string, instanceGroupManager string, instancegroupmanagerspatchperinstanceconfigsreq *InstanceGroupManagersPatchPerInstanceConfigsReq) *InstanceGroupManagersPatchPerInstanceConfigsCall { - c := &InstanceGroupManagersPatchPerInstanceConfigsCall{s: r.s, urlParams_: make(gensupport.URLParams)} +// - project: Project ID for this request. +// - resource: Name or id of the resource for this request. +func (r *ImagesService) SetIamPolicy(project string, resource string, globalsetpolicyrequest *GlobalSetPolicyRequest) *ImagesSetIamPolicyCall { + c := &ImagesSetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project - c.zone = zone - c.instanceGroupManager = instanceGroupManager - c.instancegroupmanagerspatchperinstanceconfigsreq = instancegroupmanagerspatchperinstanceconfigsreq - 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 *InstanceGroupManagersPatchPerInstanceConfigsCall) RequestId(requestId string) *InstanceGroupManagersPatchPerInstanceConfigsCall { - c.urlParams_.Set("requestId", requestId) + c.resource = resource + c.globalsetpolicyrequest = globalsetpolicyrequest return c } // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *InstanceGroupManagersPatchPerInstanceConfigsCall) Fields(s ...googleapi.Field) *InstanceGroupManagersPatchPerInstanceConfigsCall { +func (c *ImagesSetIamPolicyCall) Fields(s ...googleapi.Field) *ImagesSetIamPolicyCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } // Context sets the context to be used in this call's Do method. -func (c *InstanceGroupManagersPatchPerInstanceConfigsCall) Context(ctx context.Context) *InstanceGroupManagersPatchPerInstanceConfigsCall { +func (c *ImagesSetIamPolicyCall) Context(ctx context.Context) *ImagesSetIamPolicyCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *InstanceGroupManagersPatchPerInstanceConfigsCall) Header() http.Header { +func (c *ImagesSetIamPolicyCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *InstanceGroupManagersPatchPerInstanceConfigsCall) doRequest(alt string) (*http.Response, error) { +func (c *ImagesSetIamPolicyCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) - var body io.Reader = nil - body, err := googleapi.WithoutDataWrapper.JSONReader(c.instancegroupmanagerspatchperinstanceconfigsreq) + body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.globalsetpolicyrequest) if err != nil { return nil, err } c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/patchPerInstanceConfigs") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/images/{resource}/setIamPolicy") urls += "?" + c.urlParams_.Encode() req, err := http.NewRequest("POST", urls, body) if err != nil { @@ -25744,19 +30138,19 @@ func (c *InstanceGroupManagersPatchPerInstanceConfigsCall) doRequest(alt string) } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "zone": c.zone, - "instanceGroupManager": c.instanceGroupManager, + "project": c.project, + "resource": c.resource, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.images.setIamPolicy", "request", internallog.HTTPRequest(req, body.Bytes())) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.instanceGroupManagers.patchPerInstanceConfigs" call. +// Do executes the "compute.images.setIamPolicy" call. // 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 +// *Policy.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 *InstanceGroupManagersPatchPerInstanceConfigsCall) Do(opts ...googleapi.CallOption) (*Operation, error) { +func (c *ImagesSetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -25775,101 +30169,77 @@ func (c *InstanceGroupManagersPatchPerInstanceConfigsCall) Do(opts ...googleapi. if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } - ret := &Operation{ + ret := &Policy{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.images.setIamPolicy", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type InstanceGroupManagersRecreateInstancesCall struct { - s *Service - project string - zone string - instanceGroupManager string - instancegroupmanagersrecreateinstancesrequest *InstanceGroupManagersRecreateInstancesRequest - urlParams_ gensupport.URLParams - ctx_ context.Context - header_ http.Header +type ImagesSetLabelsCall struct { + s *Service + project string + resource string + globalsetlabelsrequest *GlobalSetLabelsRequest + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header } -// RecreateInstances: Flags the specified VM instances in the managed instance -// group to be immediately recreated. Each instance is recreated using the -// group's current configuration. This operation is marked as DONE when the -// flag is set even if the instances have not yet been recreated. You must -// separately verify the status of each instance by checking its currentAction -// field; for more information, see Checking the status of managed instances. -// If the group is part of a backend service that has enabled connection -// draining, it can take up to 60 seconds after the connection draining -// duration has elapsed before the VM instance is removed or deleted. You can -// specify a maximum of 1000 instances with this method per request. +// SetLabels: Sets the labels on an image. To learn more about labels, read +// theLabeling +// Resources documentation. // -// - instanceGroupManager: The name of the managed instance group. // - project: Project ID for this request. -// - zone: The name of the zone where the managed instance group is located. -func (r *InstanceGroupManagersService) RecreateInstances(project string, zone string, instanceGroupManager string, instancegroupmanagersrecreateinstancesrequest *InstanceGroupManagersRecreateInstancesRequest) *InstanceGroupManagersRecreateInstancesCall { - c := &InstanceGroupManagersRecreateInstancesCall{s: r.s, urlParams_: make(gensupport.URLParams)} +// - resource: Name or id of the resource for this request. +func (r *ImagesService) SetLabels(project string, resource string, globalsetlabelsrequest *GlobalSetLabelsRequest) *ImagesSetLabelsCall { + c := &ImagesSetLabelsCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project - c.zone = zone - c.instanceGroupManager = instanceGroupManager - c.instancegroupmanagersrecreateinstancesrequest = instancegroupmanagersrecreateinstancesrequest - 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 *InstanceGroupManagersRecreateInstancesCall) RequestId(requestId string) *InstanceGroupManagersRecreateInstancesCall { - c.urlParams_.Set("requestId", requestId) + c.resource = resource + c.globalsetlabelsrequest = globalsetlabelsrequest return c } // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *InstanceGroupManagersRecreateInstancesCall) Fields(s ...googleapi.Field) *InstanceGroupManagersRecreateInstancesCall { +func (c *ImagesSetLabelsCall) Fields(s ...googleapi.Field) *ImagesSetLabelsCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } // Context sets the context to be used in this call's Do method. -func (c *InstanceGroupManagersRecreateInstancesCall) Context(ctx context.Context) *InstanceGroupManagersRecreateInstancesCall { +func (c *ImagesSetLabelsCall) Context(ctx context.Context) *ImagesSetLabelsCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *InstanceGroupManagersRecreateInstancesCall) Header() http.Header { +func (c *ImagesSetLabelsCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *InstanceGroupManagersRecreateInstancesCall) doRequest(alt string) (*http.Response, error) { +func (c *ImagesSetLabelsCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) - var body io.Reader = nil - body, err := googleapi.WithoutDataWrapper.JSONReader(c.instancegroupmanagersrecreateinstancesrequest) + body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.globalsetlabelsrequest) if err != nil { return nil, err } c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/recreateInstances") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/images/{resource}/setLabels") urls += "?" + c.urlParams_.Encode() req, err := http.NewRequest("POST", urls, body) if err != nil { @@ -25877,19 +30247,19 @@ func (c *InstanceGroupManagersRecreateInstancesCall) doRequest(alt string) (*htt } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "zone": c.zone, - "instanceGroupManager": c.instanceGroupManager, + "project": c.project, + "resource": c.resource, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.images.setLabels", "request", internallog.HTTPRequest(req, body.Bytes())) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.instanceGroupManagers.recreateInstances" call. +// Do executes the "compute.images.setLabels" call. // 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 *InstanceGroupManagersRecreateInstancesCall) Do(opts ...googleapi.CallOption) (*Operation, error) { +func (c *ImagesSetLabelsCall) Do(opts ...googleapi.CallOption) (*Operation, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -25915,97 +30285,69 @@ func (c *InstanceGroupManagersRecreateInstancesCall) Do(opts ...googleapi.CallOp }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.images.setLabels", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type InstanceGroupManagersResizeCall struct { - s *Service - project string - zone string - instanceGroupManager string - urlParams_ gensupport.URLParams - ctx_ context.Context - header_ http.Header +type ImagesTestIamPermissionsCall struct { + s *Service + project string + resource string + testpermissionsrequest *TestPermissionsRequest + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header } -// Resize: Resizes the managed instance group. If you increase the size, the -// group creates new instances using the current instance template. If you -// decrease the size, the group deletes instances. The resize operation is -// marked DONE when the resize actions are scheduled even if the group has not -// yet added or deleted any instances. You must separately verify the status of -// the creating or deleting actions with the listmanagedinstances method. When -// resizing down, the instance group arbitrarily chooses the order in which VMs -// are deleted. The group takes into account some VM attributes when making the -// selection including: + The status of the VM instance. + The health of the VM -// instance. + The instance template version the VM is based on. + For regional -// managed instance groups, the location of the VM instance. This list is -// subject to change. If the group is part of a backend service that has -// enabled connection draining, it can take up to 60 seconds after the -// connection draining duration has elapsed before the VM instance is removed -// or deleted. +// TestIamPermissions: Returns permissions that a caller has on the specified +// resource. // -// - instanceGroupManager: The name of the managed instance group. -// - project: Project ID for this request. -// - size: The number of running instances that the managed instance group -// should maintain at any given time. The group automatically adds or removes -// instances to maintain the number of instances specified by this parameter. -// - zone: The name of the zone where the managed instance group is located. -func (r *InstanceGroupManagersService) Resize(project string, zone string, instanceGroupManager string, size int64) *InstanceGroupManagersResizeCall { - c := &InstanceGroupManagersResizeCall{s: r.s, urlParams_: make(gensupport.URLParams)} +// - project: Project ID for this request. +// - resource: Name or id of the resource for this request. +func (r *ImagesService) TestIamPermissions(project string, resource string, testpermissionsrequest *TestPermissionsRequest) *ImagesTestIamPermissionsCall { + c := &ImagesTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project - c.zone = zone - c.instanceGroupManager = instanceGroupManager - c.urlParams_.Set("size", fmt.Sprint(size)) - 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 *InstanceGroupManagersResizeCall) RequestId(requestId string) *InstanceGroupManagersResizeCall { - c.urlParams_.Set("requestId", requestId) + c.resource = resource + c.testpermissionsrequest = testpermissionsrequest return c } // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *InstanceGroupManagersResizeCall) Fields(s ...googleapi.Field) *InstanceGroupManagersResizeCall { +func (c *ImagesTestIamPermissionsCall) Fields(s ...googleapi.Field) *ImagesTestIamPermissionsCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } // Context sets the context to be used in this call's Do method. -func (c *InstanceGroupManagersResizeCall) Context(ctx context.Context) *InstanceGroupManagersResizeCall { +func (c *ImagesTestIamPermissionsCall) Context(ctx context.Context) *ImagesTestIamPermissionsCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *InstanceGroupManagersResizeCall) Header() http.Header { +func (c *ImagesTestIamPermissionsCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *InstanceGroupManagersResizeCall) doRequest(alt string) (*http.Response, error) { - reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) - var body io.Reader = nil +func (c *ImagesTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) + body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.testpermissionsrequest) + if err != nil { + return nil, err + } c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/resize") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/images/{resource}/testIamPermissions") urls += "?" + c.urlParams_.Encode() req, err := http.NewRequest("POST", urls, body) if err != nil { @@ -26013,19 +30355,20 @@ func (c *InstanceGroupManagersResizeCall) doRequest(alt string) (*http.Response, } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "zone": c.zone, - "instanceGroupManager": c.instanceGroupManager, + "project": c.project, + "resource": c.resource, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.images.testIamPermissions", "request", internallog.HTTPRequest(req, body.Bytes())) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.instanceGroupManagers.resize" call. +// Do executes the "compute.images.testIamPermissions" call. // 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 *InstanceGroupManagersResizeCall) Do(opts ...googleapi.CallOption) (*Operation, error) { +// *TestPermissionsResponse.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 *ImagesTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -26044,58 +30387,74 @@ func (c *InstanceGroupManagersResizeCall) Do(opts ...googleapi.CallOption) (*Ope if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } - ret := &Operation{ + ret := &TestPermissionsResponse{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.images.testIamPermissions", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type InstanceGroupManagersSetInstanceTemplateCall struct { - s *Service - project string - zone string - instanceGroupManager string - instancegroupmanagerssetinstancetemplaterequest *InstanceGroupManagersSetInstanceTemplateRequest - urlParams_ gensupport.URLParams - ctx_ context.Context - header_ http.Header +type InstanceGroupManagerResizeRequestsCancelCall struct { + s *Service + project string + zone string + instanceGroupManager string + resizeRequest string + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header } -// SetInstanceTemplate: Specifies the instance template to use when creating -// new instances in this group. The templates for existing instances in the -// group do not change unless you run recreateInstances, run -// applyUpdatesToInstances, or set the group's updatePolicy.type to PROACTIVE. +// Cancel: Cancels the specified resize request and removes it from the +// queue. +// Cancelled resize request does no longer wait for the resources to +// be +// provisioned. Cancel is only possible for requests that are accepted in +// the +// queue. // -// - instanceGroupManager: The name of the managed instance group. -// - project: Project ID for this request. -// - zone: The name of the zone where the managed instance group is located. -func (r *InstanceGroupManagersService) SetInstanceTemplate(project string, zone string, instanceGroupManager string, instancegroupmanagerssetinstancetemplaterequest *InstanceGroupManagersSetInstanceTemplateRequest) *InstanceGroupManagersSetInstanceTemplateCall { - c := &InstanceGroupManagersSetInstanceTemplateCall{s: r.s, urlParams_: make(gensupport.URLParams)} +// - instanceGroupManager: The name of the managed instance group. +// The name should conform to RFC1035 or be a resource ID. +// - project: Project ID for this request. +// - resizeRequest: The name of the resize request to cancel. +// The name should conform to RFC1035 or be a resource ID. +// - zone: The name of thezone where the managed +// instance group is located. The name should conform to RFC1035. +func (r *InstanceGroupManagerResizeRequestsService) Cancel(project string, zone string, instanceGroupManager string, resizeRequest string) *InstanceGroupManagerResizeRequestsCancelCall { + c := &InstanceGroupManagerResizeRequestsCancelCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project c.zone = zone c.instanceGroupManager = instanceGroupManager - c.instancegroupmanagerssetinstancetemplaterequest = instancegroupmanagerssetinstancetemplaterequest + c.resizeRequest = resizeRequest 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 *InstanceGroupManagersSetInstanceTemplateCall) RequestId(requestId string) *InstanceGroupManagersSetInstanceTemplateCall { +// 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 *InstanceGroupManagerResizeRequestsCancelCall) RequestId(requestId string) *InstanceGroupManagerResizeRequestsCancelCall { c.urlParams_.Set("requestId", requestId) return c } @@ -26103,38 +30462,33 @@ func (c *InstanceGroupManagersSetInstanceTemplateCall) RequestId(requestId strin // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *InstanceGroupManagersSetInstanceTemplateCall) Fields(s ...googleapi.Field) *InstanceGroupManagersSetInstanceTemplateCall { +func (c *InstanceGroupManagerResizeRequestsCancelCall) Fields(s ...googleapi.Field) *InstanceGroupManagerResizeRequestsCancelCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } // Context sets the context to be used in this call's Do method. -func (c *InstanceGroupManagersSetInstanceTemplateCall) Context(ctx context.Context) *InstanceGroupManagersSetInstanceTemplateCall { +func (c *InstanceGroupManagerResizeRequestsCancelCall) Context(ctx context.Context) *InstanceGroupManagerResizeRequestsCancelCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *InstanceGroupManagersSetInstanceTemplateCall) Header() http.Header { +func (c *InstanceGroupManagerResizeRequestsCancelCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *InstanceGroupManagersSetInstanceTemplateCall) doRequest(alt string) (*http.Response, error) { - reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) - var body io.Reader = nil - body, err := googleapi.WithoutDataWrapper.JSONReader(c.instancegroupmanagerssetinstancetemplaterequest) - if err != nil { - return nil, err - } +func (c *InstanceGroupManagerResizeRequestsCancelCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/setInstanceTemplate") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/resizeRequests/{resizeRequest}/cancel") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("POST", urls, body) + req, err := http.NewRequest("POST", urls, nil) if err != nil { return nil, err } @@ -26143,16 +30497,18 @@ func (c *InstanceGroupManagersSetInstanceTemplateCall) doRequest(alt string) (*h "project": c.project, "zone": c.zone, "instanceGroupManager": c.instanceGroupManager, + "resizeRequest": c.resizeRequest, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.instanceGroupManagerResizeRequests.cancel", "request", internallog.HTTPRequest(req, nil)) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.instanceGroupManagers.setInstanceTemplate" call. +// Do executes the "compute.instanceGroupManagerResizeRequests.cancel" call. // 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 *InstanceGroupManagersSetInstanceTemplateCall) Do(opts ...googleapi.CallOption) (*Operation, error) { +func (c *InstanceGroupManagerResizeRequestsCancelCall) Do(opts ...googleapi.CallOption) (*Operation, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -26178,53 +30534,65 @@ func (c *InstanceGroupManagersSetInstanceTemplateCall) Do(opts ...googleapi.Call }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.instanceGroupManagerResizeRequests.cancel", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type InstanceGroupManagersSetTargetPoolsCall struct { - s *Service - project string - zone string - instanceGroupManager string - instancegroupmanagerssettargetpoolsrequest *InstanceGroupManagersSetTargetPoolsRequest - urlParams_ gensupport.URLParams - ctx_ context.Context - header_ http.Header +type InstanceGroupManagerResizeRequestsDeleteCall struct { + s *Service + project string + zone string + instanceGroupManager string + resizeRequest string + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header } -// SetTargetPools: Modifies the target pools to which all instances in this -// managed instance group are assigned. The target pools automatically apply to -// all of the instances in the managed instance group. This operation is marked -// DONE when you make the request even if the instances have not yet been added -// to their target pools. The change might take some time to apply to all of -// the instances in the group depending on the size of the group. +// Delete: Deletes the specified, inactive resize request. Requests that are +// still +// active cannot be deleted. Deleting request does not delete instances +// that +// were provisioned previously. // -// - instanceGroupManager: The name of the managed instance group. -// - project: Project ID for this request. -// - zone: The name of the zone where the managed instance group is located. -func (r *InstanceGroupManagersService) SetTargetPools(project string, zone string, instanceGroupManager string, instancegroupmanagerssettargetpoolsrequest *InstanceGroupManagersSetTargetPoolsRequest) *InstanceGroupManagersSetTargetPoolsCall { - c := &InstanceGroupManagersSetTargetPoolsCall{s: r.s, urlParams_: make(gensupport.URLParams)} +// - instanceGroupManager: The name of the managed instance group. +// The name should conform to RFC1035 or be a resource ID. +// - project: Project ID for this request. +// - resizeRequest: The name of the resize request to delete. +// The name should conform to RFC1035 or be a resource ID. +// - zone: The name of thezone where the managed +// instance group is located. The name should conform to RFC1035. +func (r *InstanceGroupManagerResizeRequestsService) Delete(project string, zone string, instanceGroupManager string, resizeRequest string) *InstanceGroupManagerResizeRequestsDeleteCall { + c := &InstanceGroupManagerResizeRequestsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project c.zone = zone c.instanceGroupManager = instanceGroupManager - c.instancegroupmanagerssettargetpoolsrequest = instancegroupmanagerssettargetpoolsrequest + c.resizeRequest = resizeRequest 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 *InstanceGroupManagersSetTargetPoolsCall) RequestId(requestId string) *InstanceGroupManagersSetTargetPoolsCall { +// 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 *InstanceGroupManagerResizeRequestsDeleteCall) RequestId(requestId string) *InstanceGroupManagerResizeRequestsDeleteCall { c.urlParams_.Set("requestId", requestId) return c } @@ -26232,38 +30600,33 @@ func (c *InstanceGroupManagersSetTargetPoolsCall) RequestId(requestId string) *I // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *InstanceGroupManagersSetTargetPoolsCall) Fields(s ...googleapi.Field) *InstanceGroupManagersSetTargetPoolsCall { +func (c *InstanceGroupManagerResizeRequestsDeleteCall) Fields(s ...googleapi.Field) *InstanceGroupManagerResizeRequestsDeleteCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } // Context sets the context to be used in this call's Do method. -func (c *InstanceGroupManagersSetTargetPoolsCall) Context(ctx context.Context) *InstanceGroupManagersSetTargetPoolsCall { +func (c *InstanceGroupManagerResizeRequestsDeleteCall) Context(ctx context.Context) *InstanceGroupManagerResizeRequestsDeleteCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *InstanceGroupManagersSetTargetPoolsCall) Header() http.Header { +func (c *InstanceGroupManagerResizeRequestsDeleteCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *InstanceGroupManagersSetTargetPoolsCall) doRequest(alt string) (*http.Response, error) { - reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) - var body io.Reader = nil - body, err := googleapi.WithoutDataWrapper.JSONReader(c.instancegroupmanagerssettargetpoolsrequest) - if err != nil { - return nil, err - } +func (c *InstanceGroupManagerResizeRequestsDeleteCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/setTargetPools") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/resizeRequests/{resizeRequest}") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("POST", urls, body) + req, err := http.NewRequest("DELETE", urls, nil) if err != nil { return nil, err } @@ -26272,16 +30635,18 @@ func (c *InstanceGroupManagersSetTargetPoolsCall) doRequest(alt string) (*http.R "project": c.project, "zone": c.zone, "instanceGroupManager": c.instanceGroupManager, + "resizeRequest": c.resizeRequest, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.instanceGroupManagerResizeRequests.delete", "request", internallog.HTTPRequest(req, nil)) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.instanceGroupManagers.setTargetPools" call. +// Do executes the "compute.instanceGroupManagerResizeRequests.delete" call. // 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 *InstanceGroupManagersSetTargetPoolsCall) Do(opts ...googleapi.CallOption) (*Operation, error) { +func (c *InstanceGroupManagerResizeRequestsDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -26307,91 +30672,86 @@ func (c *InstanceGroupManagersSetTargetPoolsCall) Do(opts ...googleapi.CallOptio }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.instanceGroupManagerResizeRequests.delete", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type InstanceGroupManagersUpdatePerInstanceConfigsCall struct { - s *Service - project string - zone string - instanceGroupManager string - instancegroupmanagersupdateperinstanceconfigsreq *InstanceGroupManagersUpdatePerInstanceConfigsReq - urlParams_ gensupport.URLParams - ctx_ context.Context - header_ http.Header +type InstanceGroupManagerResizeRequestsGetCall struct { + s *Service + project string + zone string + instanceGroupManager string + resizeRequest string + urlParams_ gensupport.URLParams + ifNoneMatch_ string + ctx_ context.Context + header_ http.Header } -// UpdatePerInstanceConfigs: Inserts or updates per-instance configurations for -// the managed instance group. perInstanceConfig.name serves as a key used to -// distinguish whether to perform insert or patch. +// Get: Returns all of the details about the specified resize request. // -// - instanceGroupManager: The name of the managed instance group. It should -// conform to RFC1035. +// - instanceGroupManager: The name of the managed instance group. +// Name should conform to RFC1035 or be a resource ID. // - project: Project ID for this request. -// - zone: The name of the zone where the managed instance group is located. It -// should conform to RFC1035. -func (r *InstanceGroupManagersService) UpdatePerInstanceConfigs(project string, zone string, instanceGroupManager string, instancegroupmanagersupdateperinstanceconfigsreq *InstanceGroupManagersUpdatePerInstanceConfigsReq) *InstanceGroupManagersUpdatePerInstanceConfigsCall { - c := &InstanceGroupManagersUpdatePerInstanceConfigsCall{s: r.s, urlParams_: make(gensupport.URLParams)} +// - resizeRequest: The name of the resize request. +// Name should conform to RFC1035 or be a resource ID. +// - zone: Name of the +// href="/compute/docs/regions-zones/#available">zone +// scoping this request. Name should conform to RFC1035. +func (r *InstanceGroupManagerResizeRequestsService) Get(project string, zone string, instanceGroupManager string, resizeRequest string) *InstanceGroupManagerResizeRequestsGetCall { + c := &InstanceGroupManagerResizeRequestsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project c.zone = zone c.instanceGroupManager = instanceGroupManager - c.instancegroupmanagersupdateperinstanceconfigsreq = instancegroupmanagersupdateperinstanceconfigsreq - 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 *InstanceGroupManagersUpdatePerInstanceConfigsCall) RequestId(requestId string) *InstanceGroupManagersUpdatePerInstanceConfigsCall { - c.urlParams_.Set("requestId", requestId) + c.resizeRequest = resizeRequest return c } // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *InstanceGroupManagersUpdatePerInstanceConfigsCall) Fields(s ...googleapi.Field) *InstanceGroupManagersUpdatePerInstanceConfigsCall { +func (c *InstanceGroupManagerResizeRequestsGetCall) Fields(s ...googleapi.Field) *InstanceGroupManagerResizeRequestsGetCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } +// IfNoneMatch sets an 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. +func (c *InstanceGroupManagerResizeRequestsGetCall) IfNoneMatch(entityTag string) *InstanceGroupManagerResizeRequestsGetCall { + c.ifNoneMatch_ = entityTag + return c +} + // Context sets the context to be used in this call's Do method. -func (c *InstanceGroupManagersUpdatePerInstanceConfigsCall) Context(ctx context.Context) *InstanceGroupManagersUpdatePerInstanceConfigsCall { +func (c *InstanceGroupManagerResizeRequestsGetCall) Context(ctx context.Context) *InstanceGroupManagerResizeRequestsGetCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *InstanceGroupManagersUpdatePerInstanceConfigsCall) Header() http.Header { +func (c *InstanceGroupManagerResizeRequestsGetCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *InstanceGroupManagersUpdatePerInstanceConfigsCall) doRequest(alt string) (*http.Response, error) { - reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) - var body io.Reader = nil - body, err := googleapi.WithoutDataWrapper.JSONReader(c.instancegroupmanagersupdateperinstanceconfigsreq) - if err != nil { - return nil, err +func (c *InstanceGroupManagerResizeRequestsGetCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) + if c.ifNoneMatch_ != "" { + reqHeaders.Set("If-None-Match", c.ifNoneMatch_) } c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/updatePerInstanceConfigs") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/resizeRequests/{resizeRequest}") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("POST", urls, body) + req, err := http.NewRequest("GET", urls, nil) if err != nil { return nil, err } @@ -26400,16 +30760,19 @@ func (c *InstanceGroupManagersUpdatePerInstanceConfigsCall) doRequest(alt string "project": c.project, "zone": c.zone, "instanceGroupManager": c.instanceGroupManager, + "resizeRequest": c.resizeRequest, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.instanceGroupManagerResizeRequests.get", "request", internallog.HTTPRequest(req, nil)) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.instanceGroupManagers.updatePerInstanceConfigs" call. +// Do executes the "compute.instanceGroupManagerResizeRequests.get" call. // 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 *InstanceGroupManagersUpdatePerInstanceConfigsCall) Do(opts ...googleapi.CallOption) (*Operation, error) { +// *InstanceGroupManagerResizeRequest.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 *InstanceGroupManagerResizeRequestsGetCall) Do(opts ...googleapi.CallOption) (*InstanceGroupManagerResizeRequest, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -26428,58 +30791,74 @@ func (c *InstanceGroupManagersUpdatePerInstanceConfigsCall) Do(opts ...googleapi if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } - ret := &Operation{ + ret := &InstanceGroupManagerResizeRequest{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.instanceGroupManagerResizeRequests.get", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type InstanceGroupsAddInstancesCall struct { +type InstanceGroupManagerResizeRequestsInsertCall struct { s *Service project string zone string - instanceGroup string - instancegroupsaddinstancesrequest *InstanceGroupsAddInstancesRequest + instanceGroupManager string + instancegroupmanagerresizerequest *InstanceGroupManagerResizeRequest urlParams_ gensupport.URLParams ctx_ context.Context header_ http.Header } -// AddInstances: Adds a list of instances to the specified instance group. All -// of the instances in the instance group must be in the same -// network/subnetwork. Read Adding instances for more information. +// Insert: Creates a new resize request that starts provisioning VMs +// immediately +// or queues VM creation. // -// - instanceGroup: The name of the instance group where you are adding -// instances. +// - instanceGroupManager: The name of the managed instance group to which the +// resize request will +// be added. +// +// Name should conform to RFC1035 or be a resource ID. // - project: Project ID for this request. -// - zone: The name of the zone where the instance group is located. -func (r *InstanceGroupsService) AddInstances(project string, zone string, instanceGroup string, instancegroupsaddinstancesrequest *InstanceGroupsAddInstancesRequest) *InstanceGroupsAddInstancesCall { - c := &InstanceGroupsAddInstancesCall{s: r.s, urlParams_: make(gensupport.URLParams)} +// - zone: The name of thezone where the managed +// instance group is located and where the resize request will be +// created. +// +// Name should conform to RFC1035. +func (r *InstanceGroupManagerResizeRequestsService) Insert(project string, zone string, instanceGroupManager string, instancegroupmanagerresizerequest *InstanceGroupManagerResizeRequest) *InstanceGroupManagerResizeRequestsInsertCall { + c := &InstanceGroupManagerResizeRequestsInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project c.zone = zone - c.instanceGroup = instanceGroup - c.instancegroupsaddinstancesrequest = instancegroupsaddinstancesrequest + c.instanceGroupManager = instanceGroupManager + c.instancegroupmanagerresizerequest = instancegroupmanagerresizerequest 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 *InstanceGroupsAddInstancesCall) RequestId(requestId string) *InstanceGroupsAddInstancesCall { +// 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 *InstanceGroupManagerResizeRequestsInsertCall) RequestId(requestId string) *InstanceGroupManagerResizeRequestsInsertCall { c.urlParams_.Set("requestId", requestId) return c } @@ -26487,36 +30866,35 @@ func (c *InstanceGroupsAddInstancesCall) RequestId(requestId string) *InstanceGr // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *InstanceGroupsAddInstancesCall) Fields(s ...googleapi.Field) *InstanceGroupsAddInstancesCall { +func (c *InstanceGroupManagerResizeRequestsInsertCall) Fields(s ...googleapi.Field) *InstanceGroupManagerResizeRequestsInsertCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } // Context sets the context to be used in this call's Do method. -func (c *InstanceGroupsAddInstancesCall) Context(ctx context.Context) *InstanceGroupsAddInstancesCall { +func (c *InstanceGroupManagerResizeRequestsInsertCall) Context(ctx context.Context) *InstanceGroupManagerResizeRequestsInsertCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *InstanceGroupsAddInstancesCall) Header() http.Header { +func (c *InstanceGroupManagerResizeRequestsInsertCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *InstanceGroupsAddInstancesCall) doRequest(alt string) (*http.Response, error) { +func (c *InstanceGroupManagerResizeRequestsInsertCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) - var body io.Reader = nil - body, err := googleapi.WithoutDataWrapper.JSONReader(c.instancegroupsaddinstancesrequest) + body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.instancegroupmanagerresizerequest) if err != nil { return nil, err } c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instanceGroups/{instanceGroup}/addInstances") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/resizeRequests") urls += "?" + c.urlParams_.Encode() req, err := http.NewRequest("POST", urls, body) if err != nil { @@ -26524,19 +30902,20 @@ func (c *InstanceGroupsAddInstancesCall) doRequest(alt string) (*http.Response, } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "zone": c.zone, - "instanceGroup": c.instanceGroup, + "project": c.project, + "zone": c.zone, + "instanceGroupManager": c.instanceGroupManager, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.instanceGroupManagerResizeRequests.insert", "request", internallog.HTTPRequest(req, body.Bytes())) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.instanceGroups.addInstances" call. +// Do executes the "compute.instanceGroupManagerResizeRequests.insert" call. // 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 *InstanceGroupsAddInstancesCall) Do(opts ...googleapi.CallOption) (*Operation, error) { +func (c *InstanceGroupManagerResizeRequestsInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -26562,135 +30941,173 @@ func (c *InstanceGroupsAddInstancesCall) Do(opts ...googleapi.CallOption) (*Oper }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.instanceGroupManagerResizeRequests.insert", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type InstanceGroupsAggregatedListCall struct { - s *Service - project string - urlParams_ gensupport.URLParams - ifNoneMatch_ string - ctx_ context.Context - header_ http.Header +type InstanceGroupManagerResizeRequestsListCall struct { + s *Service + project string + zone string + instanceGroupManager string + urlParams_ gensupport.URLParams + ifNoneMatch_ string + ctx_ context.Context + header_ http.Header } -// AggregatedList: Retrieves the list of instance groups and sorts them by -// zone. To prevent failure, Google recommends that you set the -// `returnPartialSuccess` parameter to `true`. +// List: Retrieves a list of resize requests that are contained in the +// managed instance group. // -// - project: Project ID for this request. -func (r *InstanceGroupsService) AggregatedList(project string) *InstanceGroupsAggregatedListCall { - c := &InstanceGroupsAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)} +// - instanceGroupManager: The name of the managed instance group. The name +// should conform to RFC1035. +// - project: Project ID for this request. +// - zone: The name of thezone where the managed +// instance group is located. The name should conform to RFC1035. +func (r *InstanceGroupManagerResizeRequestsService) List(project string, zone string, instanceGroupManager string) *InstanceGroupManagerResizeRequestsListCall { + c := &InstanceGroupManagerResizeRequestsListCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project + c.zone = zone + c.instanceGroupManager = instanceGroupManager return c } // Filter sets the optional parameter "filter": A filter expression that -// filters resources listed in the response. Most Compute resources support two -// types of filter expressions: expressions that support regular expressions -// and expressions that follow API improvement proposal AIP-160. These two -// types of filter expressions cannot be mixed in one request. If you want to -// use AIP-160, your expression must specify the field name, an operator, and -// the value that you want to use for filtering. The value must be a string, a -// number, or a boolean. The 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`. The `:*` comparison can be used to test whether a key has -// been defined. For example, to find all objects with `owner` label use: ``` -// labels.owner:* ``` 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) ``` If you want to use a regular -// expression, use the `eq` (equal) or `ne` (not equal) operator against a -// single un-parenthesized expression with or without quotes or against -// multiple parenthesized expressions. Examples: `fieldname eq unquoted -// literal` `fieldname eq 'single quoted literal'` `fieldname eq "double quoted -// literal" `(fieldname1 eq literal) (fieldname2 ne "literal")` The literal -// value is interpreted as a regular expression using Google RE2 library -// syntax. The literal value must match the entire field. For example, to -// filter for instances that do not end with name "instance", you would use -// `name ne .*instance`. You cannot combine constraints on multiple fields -// using regular expressions. -func (c *InstanceGroupsAggregatedListCall) Filter(filter string) *InstanceGroupsAggregatedListCall { +// filters resources listed in the response. Most +// Compute resources support two types of filter expressions: +// expressions that support regular expressions and expressions that follow +// API improvement proposal AIP-160. +// These two types of filter expressions cannot be mixed in one request. +// +// If you want to use AIP-160, your expression must specify the field name, +// an +// operator, and the value that you want to use for filtering. The value +// must be a string, a number, or a boolean. The 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`. +// +// The `:*` comparison can be used to test whether a key has been defined. +// For example, to find all objects with `owner` label +// use: +// ``` +// labels.owner:* +// ``` +// +// 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 onresource 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) +// ``` +// +// If you want to use a regular expression, use the `eq` (equal) or `ne` +// (not equal) operator against a single un-parenthesized expression with +// or +// without quotes or against multiple parenthesized expressions. +// Examples: +// +// `fieldname eq unquoted literal` +// `fieldname eq 'single quoted literal'` +// `fieldname eq "double quoted literal" +// `(fieldname1 eq literal) (fieldname2 ne "literal")` +// +// The literal value is interpreted as a regular expression using GoogleRE2 +// library syntax. +// The literal value must match the entire field. +// +// For example, to filter for instances that do not end with name +// "instance", +// you would use `name ne .*instance`. +// +// You cannot combine constraints on multiple fields using regular +// expressions. +func (c *InstanceGroupManagerResizeRequestsListCall) Filter(filter string) *InstanceGroupManagerResizeRequestsListCall { c.urlParams_.Set("filter", filter) return c } -// IncludeAllScopes sets the optional parameter "includeAllScopes": Indicates -// whether every visible scope for each scope type (zone, region, global) -// should be included in the response. For new resource types added after this -// field, the flag has no effect as new resource types will always include -// every visible scope for each scope type in response. For resource types -// which predate this field, if this flag is omitted or false, only scopes of -// the scope types where the resource type is expected to be found will be -// included. -func (c *InstanceGroupsAggregatedListCall) IncludeAllScopes(includeAllScopes bool) *InstanceGroupsAggregatedListCall { - c.urlParams_.Set("includeAllScopes", fmt.Sprint(includeAllScopes)) - 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 *InstanceGroupsAggregatedListCall) MaxResults(maxResults int64) *InstanceGroupsAggregatedListCall { +// 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 *InstanceGroupManagerResizeRequestsListCall) MaxResults(maxResults int64) *InstanceGroupManagerResizeRequestsListCall { 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 *InstanceGroupsAggregatedListCall) OrderBy(orderBy string) *InstanceGroupsAggregatedListCall { +// 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 *InstanceGroupManagerResizeRequestsListCall) OrderBy(orderBy string) *InstanceGroupManagerResizeRequestsListCall { 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 *InstanceGroupsAggregatedListCall) PageToken(pageToken string) *InstanceGroupsAggregatedListCall { +// use. Set `pageToken` to the +// `nextPageToken` returned by a previous list request to get +// the next page of results. +func (c *InstanceGroupManagerResizeRequestsListCall) PageToken(pageToken string) *InstanceGroupManagerResizeRequestsListCall { c.urlParams_.Set("pageToken", pageToken) return c } // ReturnPartialSuccess sets the optional parameter "returnPartialSuccess": -// Opt-in for partial success behavior which provides partial results in case -// of failure. The default value is false. For example, when partial success -// behavior is enabled, aggregatedList for a single zone scope either returns -// all resources in the zone or no resources, with an error code. -func (c *InstanceGroupsAggregatedListCall) ReturnPartialSuccess(returnPartialSuccess bool) *InstanceGroupsAggregatedListCall { +// Opt-in for partial success behavior which provides partial results in +// case +// of failure. The default value is false. +// +// For example, when partial success behavior is enabled, aggregatedList for +// a +// single zone scope either returns all resources in the zone or no +// resources, +// with an error code. +func (c *InstanceGroupManagerResizeRequestsListCall) ReturnPartialSuccess(returnPartialSuccess bool) *InstanceGroupManagerResizeRequestsListCall { c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess)) return c } -// ServiceProjectNumber sets the optional parameter "serviceProjectNumber": The -// Shared VPC service project id or service project number for which aggregated -// list request is invoked for subnetworks list-usable api. -func (c *InstanceGroupsAggregatedListCall) ServiceProjectNumber(serviceProjectNumber int64) *InstanceGroupsAggregatedListCall { - c.urlParams_.Set("serviceProjectNumber", fmt.Sprint(serviceProjectNumber)) - return c -} - // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *InstanceGroupsAggregatedListCall) Fields(s ...googleapi.Field) *InstanceGroupsAggregatedListCall { +func (c *InstanceGroupManagerResizeRequestsListCall) Fields(s ...googleapi.Field) *InstanceGroupManagerResizeRequestsListCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } @@ -26698,54 +31115,56 @@ func (c *InstanceGroupsAggregatedListCall) Fields(s ...googleapi.Field) *Instanc // IfNoneMatch sets an 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. -func (c *InstanceGroupsAggregatedListCall) IfNoneMatch(entityTag string) *InstanceGroupsAggregatedListCall { +func (c *InstanceGroupManagerResizeRequestsListCall) IfNoneMatch(entityTag string) *InstanceGroupManagerResizeRequestsListCall { c.ifNoneMatch_ = entityTag return c } // Context sets the context to be used in this call's Do method. -func (c *InstanceGroupsAggregatedListCall) Context(ctx context.Context) *InstanceGroupsAggregatedListCall { +func (c *InstanceGroupManagerResizeRequestsListCall) Context(ctx context.Context) *InstanceGroupManagerResizeRequestsListCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *InstanceGroupsAggregatedListCall) Header() http.Header { +func (c *InstanceGroupManagerResizeRequestsListCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *InstanceGroupsAggregatedListCall) doRequest(alt string) (*http.Response, error) { +func (c *InstanceGroupManagerResizeRequestsListCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) if c.ifNoneMatch_ != "" { reqHeaders.Set("If-None-Match", c.ifNoneMatch_) } - var body io.Reader = nil c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/aggregated/instanceGroups") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/resizeRequests") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("GET", urls, body) + req, err := http.NewRequest("GET", urls, nil) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, + "project": c.project, + "zone": c.zone, + "instanceGroupManager": c.instanceGroupManager, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.instanceGroupManagerResizeRequests.list", "request", internallog.HTTPRequest(req, nil)) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.instanceGroups.aggregatedList" call. +// Do executes the "compute.instanceGroupManagerResizeRequests.list" call. // Any non-2xx status code is an error. Response headers are in either -// *InstanceGroupAggregatedList.ServerResponse.Header or (if a response was -// returned at all) in error.(*googleapi.Error).Header. Use +// *InstanceGroupManagerResizeRequestsListResponse.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 *InstanceGroupsAggregatedListCall) Do(opts ...googleapi.CallOption) (*InstanceGroupAggregatedList, error) { +func (c *InstanceGroupManagerResizeRequestsListCall) Do(opts ...googleapi.CallOption) (*InstanceGroupManagerResizeRequestsListResponse, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -26764,23 +31183,25 @@ func (c *InstanceGroupsAggregatedListCall) Do(opts ...googleapi.CallOption) (*In if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } - ret := &InstanceGroupAggregatedList{ + ret := &InstanceGroupManagerResizeRequestsListResponse{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.instanceGroupManagerResizeRequests.list", "response", internallog.HTTPResponse(res, b)) return ret, nil } // 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 *InstanceGroupsAggregatedListCall) Pages(ctx context.Context, f func(*InstanceGroupAggregatedList) error) error { +func (c *InstanceGroupManagerResizeRequestsListCall) Pages(ctx context.Context, f func(*InstanceGroupManagerResizeRequestsListResponse) error) error { c.ctx_ = ctx defer c.PageToken(c.urlParams_.Get("pageToken")) for { @@ -26798,42 +31219,70 @@ func (c *InstanceGroupsAggregatedListCall) Pages(ctx context.Context, f func(*In } } -type InstanceGroupsDeleteCall struct { - s *Service - project string - zone string - instanceGroup string - urlParams_ gensupport.URLParams - ctx_ context.Context - header_ http.Header +type InstanceGroupManagersAbandonInstancesCall struct { + s *Service + project string + zone string + instanceGroupManager string + instancegroupmanagersabandoninstancesrequest *InstanceGroupManagersAbandonInstancesRequest + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header } -// Delete: Deletes the specified instance group. The instances in the group are -// not deleted. Note that instance group must not belong to a backend service. -// Read Deleting an instance group for more information. +// AbandonInstances: Flags the specified instances to be removed from +// the +// managed instance group. Abandoning an instance does not delete the +// instance, but it does remove the instance from any target pools that +// are +// applied by the managed instance group. This method reduces thetargetSize of +// the managed instance group by the +// number of instances that you abandon. This operation is marked asDONE when +// the action is scheduled even if the instances have +// not yet been removed from the group. You must separately verify the +// status of the abandoning action with thelistmanagedinstances +// method. // -// - instanceGroup: The name of the instance group to delete. +// If the group is part of a backend +// service that has enabled +// connection draining, it can take up to 60 seconds after the +// connection +// draining duration has elapsed before the VM instance is removed or +// deleted. +// +// You can specify a maximum of 1000 instances with this method per request. +// +// - instanceGroupManager: The name of the managed instance group. // - project: Project ID for this request. -// - zone: The name of the zone where the instance group is located. -func (r *InstanceGroupsService) Delete(project string, zone string, instanceGroup string) *InstanceGroupsDeleteCall { - c := &InstanceGroupsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)} +// - zone: The name of thezone where the managed +// instance group is located. +func (r *InstanceGroupManagersService) AbandonInstances(project string, zone string, instanceGroupManager string, instancegroupmanagersabandoninstancesrequest *InstanceGroupManagersAbandonInstancesRequest) *InstanceGroupManagersAbandonInstancesCall { + c := &InstanceGroupManagersAbandonInstancesCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project c.zone = zone - c.instanceGroup = instanceGroup + c.instanceGroupManager = instanceGroupManager + c.instancegroupmanagersabandoninstancesrequest = instancegroupmanagersabandoninstancesrequest 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 *InstanceGroupsDeleteCall) RequestId(requestId string) *InstanceGroupsDeleteCall { +// 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 *InstanceGroupManagersAbandonInstancesCall) RequestId(requestId string) *InstanceGroupManagersAbandonInstancesCall { c.urlParams_.Set("requestId", requestId) return c } @@ -26841,52 +31290,56 @@ func (c *InstanceGroupsDeleteCall) RequestId(requestId string) *InstanceGroupsDe // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *InstanceGroupsDeleteCall) Fields(s ...googleapi.Field) *InstanceGroupsDeleteCall { +func (c *InstanceGroupManagersAbandonInstancesCall) Fields(s ...googleapi.Field) *InstanceGroupManagersAbandonInstancesCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } // Context sets the context to be used in this call's Do method. -func (c *InstanceGroupsDeleteCall) Context(ctx context.Context) *InstanceGroupsDeleteCall { +func (c *InstanceGroupManagersAbandonInstancesCall) Context(ctx context.Context) *InstanceGroupManagersAbandonInstancesCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *InstanceGroupsDeleteCall) Header() http.Header { +func (c *InstanceGroupManagersAbandonInstancesCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *InstanceGroupsDeleteCall) doRequest(alt string) (*http.Response, error) { - reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) - var body io.Reader = nil - c.urlParams_.Set("alt", alt) - c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instanceGroups/{instanceGroup}") - urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("DELETE", urls, body) +func (c *InstanceGroupManagersAbandonInstancesCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) + body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.instancegroupmanagersabandoninstancesrequest) + if err != nil { + return nil, err + } + c.urlParams_.Set("alt", alt) + c.urlParams_.Set("prettyPrint", "false") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/abandonInstances") + urls += "?" + c.urlParams_.Encode() + req, err := http.NewRequest("POST", urls, body) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "zone": c.zone, - "instanceGroup": c.instanceGroup, + "project": c.project, + "zone": c.zone, + "instanceGroupManager": c.instanceGroupManager, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.instanceGroupManagers.abandonInstances", "request", internallog.HTTPRequest(req, body.Bytes())) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.instanceGroups.delete" call. +// Do executes the "compute.instanceGroupManagers.abandonInstances" call. // 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 *InstanceGroupsDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) { +func (c *InstanceGroupManagersAbandonInstancesCall) Do(opts ...googleapi.CallOption) (*Operation, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -26912,43 +31365,195 @@ func (c *InstanceGroupsDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.instanceGroupManagers.abandonInstances", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type InstanceGroupsGetCall struct { - s *Service - project string - zone string - instanceGroup string - urlParams_ gensupport.URLParams - ifNoneMatch_ string - ctx_ context.Context - header_ http.Header +type InstanceGroupManagersAggregatedListCall struct { + s *Service + project string + urlParams_ gensupport.URLParams + ifNoneMatch_ string + ctx_ context.Context + header_ http.Header } -// Get: Returns the specified zonal instance group. Get a list of available -// zonal instance groups by making a list() request. For managed instance -// groups, use the instanceGroupManagers or regionInstanceGroupManagers methods -// instead. +// AggregatedList: Retrieves the list of managed instance groups and groups +// them by zone. +// +// To prevent failure, Google recommends that you set +// the +// `returnPartialSuccess` parameter to `true`. // -// - instanceGroup: The name of the instance group. // - project: Project ID for this request. -// - zone: The name of the zone where the instance group is located. -func (r *InstanceGroupsService) Get(project string, zone string, instanceGroup string) *InstanceGroupsGetCall { - c := &InstanceGroupsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)} +func (r *InstanceGroupManagersService) AggregatedList(project string) *InstanceGroupManagersAggregatedListCall { + c := &InstanceGroupManagersAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project - c.zone = zone - c.instanceGroup = instanceGroup + return c +} + +// Filter sets the optional parameter "filter": A filter expression that +// filters resources listed in the response. Most +// Compute resources support two types of filter expressions: +// expressions that support regular expressions and expressions that follow +// API improvement proposal AIP-160. +// These two types of filter expressions cannot be mixed in one request. +// +// If you want to use AIP-160, your expression must specify the field name, +// an +// operator, and the value that you want to use for filtering. The value +// must be a string, a number, or a boolean. The 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`. +// +// The `:*` comparison can be used to test whether a key has been defined. +// For example, to find all objects with `owner` label +// use: +// ``` +// labels.owner:* +// ``` +// +// 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 onresource 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) +// ``` +// +// If you want to use a regular expression, use the `eq` (equal) or `ne` +// (not equal) operator against a single un-parenthesized expression with +// or +// without quotes or against multiple parenthesized expressions. +// Examples: +// +// `fieldname eq unquoted literal` +// `fieldname eq 'single quoted literal'` +// `fieldname eq "double quoted literal" +// `(fieldname1 eq literal) (fieldname2 ne "literal")` +// +// The literal value is interpreted as a regular expression using GoogleRE2 +// library syntax. +// The literal value must match the entire field. +// +// For example, to filter for instances that do not end with name +// "instance", +// you would use `name ne .*instance`. +// +// You cannot combine constraints on multiple fields using regular +// expressions. +func (c *InstanceGroupManagersAggregatedListCall) Filter(filter string) *InstanceGroupManagersAggregatedListCall { + c.urlParams_.Set("filter", filter) + return c +} + +// IncludeAllScopes sets the optional parameter "includeAllScopes": Indicates +// whether every visible scope for each scope type (zone, region, +// global) should be included in the response. For new resource types +// added +// after this field, the flag has no effect as new resource types will +// always +// include every visible scope for each scope type in response. For +// resource +// types which predate this field, if this flag is omitted or false, +// only +// scopes of the scope types where the resource type is expected to be +// found +// will be included. +func (c *InstanceGroupManagersAggregatedListCall) IncludeAllScopes(includeAllScopes bool) *InstanceGroupManagersAggregatedListCall { + c.urlParams_.Set("includeAllScopes", fmt.Sprint(includeAllScopes)) + 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 *InstanceGroupManagersAggregatedListCall) MaxResults(maxResults int64) *InstanceGroupManagersAggregatedListCall { + 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 *InstanceGroupManagersAggregatedListCall) OrderBy(orderBy string) *InstanceGroupManagersAggregatedListCall { + 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 *InstanceGroupManagersAggregatedListCall) PageToken(pageToken string) *InstanceGroupManagersAggregatedListCall { + c.urlParams_.Set("pageToken", pageToken) + return c +} + +// ReturnPartialSuccess sets the optional parameter "returnPartialSuccess": +// Opt-in for partial success behavior which provides partial results in +// case +// of failure. The default value is false. +// +// For example, when partial success behavior is enabled, aggregatedList for +// a +// single zone scope either returns all resources in the zone or no +// resources, +// with an error code. +func (c *InstanceGroupManagersAggregatedListCall) ReturnPartialSuccess(returnPartialSuccess bool) *InstanceGroupManagersAggregatedListCall { + c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess)) + return c +} + +// ServiceProjectNumber sets the optional parameter "serviceProjectNumber": The +// Shared VPC service project id or service project number for which +// aggregated list request is invoked for subnetworks list-usable api. +func (c *InstanceGroupManagersAggregatedListCall) ServiceProjectNumber(serviceProjectNumber int64) *InstanceGroupManagersAggregatedListCall { + c.urlParams_.Set("serviceProjectNumber", fmt.Sprint(serviceProjectNumber)) return c } // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *InstanceGroupsGetCall) Fields(s ...googleapi.Field) *InstanceGroupsGetCall { +func (c *InstanceGroupManagersAggregatedListCall) Fields(s ...googleapi.Field) *InstanceGroupManagersAggregatedListCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } @@ -26956,55 +31561,54 @@ func (c *InstanceGroupsGetCall) Fields(s ...googleapi.Field) *InstanceGroupsGetC // IfNoneMatch sets an 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. -func (c *InstanceGroupsGetCall) IfNoneMatch(entityTag string) *InstanceGroupsGetCall { +func (c *InstanceGroupManagersAggregatedListCall) IfNoneMatch(entityTag string) *InstanceGroupManagersAggregatedListCall { c.ifNoneMatch_ = entityTag return c } // Context sets the context to be used in this call's Do method. -func (c *InstanceGroupsGetCall) Context(ctx context.Context) *InstanceGroupsGetCall { +func (c *InstanceGroupManagersAggregatedListCall) Context(ctx context.Context) *InstanceGroupManagersAggregatedListCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *InstanceGroupsGetCall) Header() http.Header { +func (c *InstanceGroupManagersAggregatedListCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *InstanceGroupsGetCall) doRequest(alt string) (*http.Response, error) { +func (c *InstanceGroupManagersAggregatedListCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) if c.ifNoneMatch_ != "" { reqHeaders.Set("If-None-Match", c.ifNoneMatch_) } - var body io.Reader = nil c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instanceGroups/{instanceGroup}") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/aggregated/instanceGroupManagers") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("GET", urls, body) + req, err := http.NewRequest("GET", urls, nil) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "zone": c.zone, - "instanceGroup": c.instanceGroup, + "project": c.project, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.instanceGroupManagers.aggregatedList", "request", internallog.HTTPRequest(req, nil)) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.instanceGroups.get" call. +// Do executes the "compute.instanceGroupManagers.aggregatedList" call. // Any non-2xx status code is an error. Response headers are in either -// *InstanceGroup.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 *InstanceGroupsGetCall) Do(opts ...googleapi.CallOption) (*InstanceGroup, error) { +// *InstanceGroupManagerAggregatedList.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 *InstanceGroupManagersAggregatedListCall) Do(opts ...googleapi.CallOption) (*InstanceGroupManagerAggregatedList, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -27023,90 +31627,103 @@ func (c *InstanceGroupsGetCall) Do(opts ...googleapi.CallOption) (*InstanceGroup if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } - ret := &InstanceGroup{ + ret := &InstanceGroupManagerAggregatedList{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.instanceGroupManagers.aggregatedList", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type InstanceGroupsInsertCall struct { - s *Service - project string - zone string - instancegroup *InstanceGroup - urlParams_ gensupport.URLParams - ctx_ context.Context - header_ http.Header +// 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 *InstanceGroupManagersAggregatedListCall) Pages(ctx context.Context, f func(*InstanceGroupManagerAggregatedList) error) error { + c.ctx_ = ctx + defer c.PageToken(c.urlParams_.Get("pageToken")) + 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) + } } -// Insert: Creates an instance group in the specified project using the -// parameters that are included in the request. +type InstanceGroupManagersApplyUpdatesToInstancesCall struct { + s *Service + project string + zone string + instanceGroupManager string + instancegroupmanagersapplyupdatesrequest *InstanceGroupManagersApplyUpdatesRequest + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header +} + +// ApplyUpdatesToInstances: Applies changes to selected instances on the +// managed instance group. +// This method can be used to apply new overrides and/or new versions. // -// - project: Project ID for this request. -// - zone: The name of the zone where you want to create the instance group. -func (r *InstanceGroupsService) Insert(project string, zone string, instancegroup *InstanceGroup) *InstanceGroupsInsertCall { - c := &InstanceGroupsInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)} +// - instanceGroupManager: The name of the managed instance group, should +// conform to RFC1035. +// - project: Project ID for this request. +// - zone: The name of thezone +// where the managed instance group is located. Should conform to RFC1035. +func (r *InstanceGroupManagersService) ApplyUpdatesToInstances(project string, zone string, instanceGroupManager string, instancegroupmanagersapplyupdatesrequest *InstanceGroupManagersApplyUpdatesRequest) *InstanceGroupManagersApplyUpdatesToInstancesCall { + c := &InstanceGroupManagersApplyUpdatesToInstancesCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project c.zone = zone - c.instancegroup = instancegroup - 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 *InstanceGroupsInsertCall) RequestId(requestId string) *InstanceGroupsInsertCall { - c.urlParams_.Set("requestId", requestId) + c.instanceGroupManager = instanceGroupManager + c.instancegroupmanagersapplyupdatesrequest = instancegroupmanagersapplyupdatesrequest return c } // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *InstanceGroupsInsertCall) Fields(s ...googleapi.Field) *InstanceGroupsInsertCall { +func (c *InstanceGroupManagersApplyUpdatesToInstancesCall) Fields(s ...googleapi.Field) *InstanceGroupManagersApplyUpdatesToInstancesCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } // Context sets the context to be used in this call's Do method. -func (c *InstanceGroupsInsertCall) Context(ctx context.Context) *InstanceGroupsInsertCall { +func (c *InstanceGroupManagersApplyUpdatesToInstancesCall) Context(ctx context.Context) *InstanceGroupManagersApplyUpdatesToInstancesCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *InstanceGroupsInsertCall) Header() http.Header { +func (c *InstanceGroupManagersApplyUpdatesToInstancesCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *InstanceGroupsInsertCall) doRequest(alt string) (*http.Response, error) { +func (c *InstanceGroupManagersApplyUpdatesToInstancesCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) - var body io.Reader = nil - body, err := googleapi.WithoutDataWrapper.JSONReader(c.instancegroup) + body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.instancegroupmanagersapplyupdatesrequest) if err != nil { return nil, err } c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instanceGroups") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/applyUpdatesToInstances") urls += "?" + c.urlParams_.Encode() req, err := http.NewRequest("POST", urls, body) if err != nil { @@ -27114,18 +31731,20 @@ func (c *InstanceGroupsInsertCall) doRequest(alt string) (*http.Response, error) } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "zone": c.zone, + "project": c.project, + "zone": c.zone, + "instanceGroupManager": c.instanceGroupManager, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.instanceGroupManagers.applyUpdatesToInstances", "request", internallog.HTTPRequest(req, body.Bytes())) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.instanceGroups.insert" call. +// Do executes the "compute.instanceGroupManagers.applyUpdatesToInstances" call. // 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 *InstanceGroupsInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) { +func (c *InstanceGroupManagersApplyUpdatesToInstancesCall) Do(opts ...googleapi.CallOption) (*Operation, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -27151,173 +31770,123 @@ func (c *InstanceGroupsInsertCall) Do(opts ...googleapi.CallOption) (*Operation, }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.instanceGroupManagers.applyUpdatesToInstances", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type InstanceGroupsListCall struct { - s *Service - project string - zone string - urlParams_ gensupport.URLParams - ifNoneMatch_ string - ctx_ context.Context - header_ http.Header +type InstanceGroupManagersCreateInstancesCall struct { + s *Service + project string + zone string + instanceGroupManager string + instancegroupmanagerscreateinstancesrequest *InstanceGroupManagersCreateInstancesRequest + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header } -// List: Retrieves the list of zonal instance group resources contained within -// the specified zone. For managed instance groups, use the -// instanceGroupManagers or regionInstanceGroupManagers methods instead. +// CreateInstances: Creates instances with per-instance configurations in this +// managed instance +// group. Instances are created using the current instance template. Thecreate +// instances operation is marked DONE if thecreateInstances request is +// successful. The underlying actions +// take additional time. You must separately verify the status of thecreating +// or actions with the listmanagedinstances +// method. // -// - project: Project ID for this request. -// - zone: The name of the zone where the instance group is located. -func (r *InstanceGroupsService) List(project string, zone string) *InstanceGroupsListCall { - c := &InstanceGroupsListCall{s: r.s, urlParams_: make(gensupport.URLParams)} +// - instanceGroupManager: The name of the managed instance group. +// It should conform to RFC1035. +// - project: Project ID for this request. +// - zone: The name of thezone +// where the managed instance group is located. +// +// It should conform to RFC1035. +func (r *InstanceGroupManagersService) CreateInstances(project string, zone string, instanceGroupManager string, instancegroupmanagerscreateinstancesrequest *InstanceGroupManagersCreateInstancesRequest) *InstanceGroupManagersCreateInstancesCall { + c := &InstanceGroupManagersCreateInstancesCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project c.zone = zone + c.instanceGroupManager = instanceGroupManager + c.instancegroupmanagerscreateinstancesrequest = instancegroupmanagerscreateinstancesrequest return c } -// Filter sets the optional parameter "filter": A filter expression that -// filters resources listed in the response. Most Compute resources support two -// types of filter expressions: expressions that support regular expressions -// and expressions that follow API improvement proposal AIP-160. These two -// types of filter expressions cannot be mixed in one request. If you want to -// use AIP-160, your expression must specify the field name, an operator, and -// the value that you want to use for filtering. The value must be a string, a -// number, or a boolean. The 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`. The `:*` comparison can be used to test whether a key has -// been defined. For example, to find all objects with `owner` label use: ``` -// labels.owner:* ``` 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) ``` If you want to use a regular -// expression, use the `eq` (equal) or `ne` (not equal) operator against a -// single un-parenthesized expression with or without quotes or against -// multiple parenthesized expressions. Examples: `fieldname eq unquoted -// literal` `fieldname eq 'single quoted literal'` `fieldname eq "double quoted -// literal" `(fieldname1 eq literal) (fieldname2 ne "literal")` The literal -// value is interpreted as a regular expression using Google RE2 library -// syntax. The literal value must match the entire field. For example, to -// filter for instances that do not end with name "instance", you would use -// `name ne .*instance`. You cannot combine constraints on multiple fields -// using regular expressions. -func (c *InstanceGroupsListCall) Filter(filter string) *InstanceGroupsListCall { - 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 *InstanceGroupsListCall) MaxResults(maxResults int64) *InstanceGroupsListCall { - 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 *InstanceGroupsListCall) OrderBy(orderBy string) *InstanceGroupsListCall { - 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 *InstanceGroupsListCall) PageToken(pageToken string) *InstanceGroupsListCall { - c.urlParams_.Set("pageToken", pageToken) - return c -} - -// ReturnPartialSuccess sets the optional parameter "returnPartialSuccess": -// Opt-in for partial success behavior which provides partial results in case -// of failure. The default value is false. For example, when partial success -// behavior is enabled, aggregatedList for a single zone scope either returns -// all resources in the zone or no resources, with an error code. -func (c *InstanceGroupsListCall) ReturnPartialSuccess(returnPartialSuccess bool) *InstanceGroupsListCall { - c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess)) +// 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. +// +// The request ID must be +// a valid UUID with the exception that zero UUID is not +// supported +// (00000000-0000-0000-0000-000000000000). +func (c *InstanceGroupManagersCreateInstancesCall) RequestId(requestId string) *InstanceGroupManagersCreateInstancesCall { + 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 // details. -func (c *InstanceGroupsListCall) Fields(s ...googleapi.Field) *InstanceGroupsListCall { +func (c *InstanceGroupManagersCreateInstancesCall) Fields(s ...googleapi.Field) *InstanceGroupManagersCreateInstancesCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } -// IfNoneMatch sets an 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. -func (c *InstanceGroupsListCall) IfNoneMatch(entityTag string) *InstanceGroupsListCall { - c.ifNoneMatch_ = entityTag - return c -} - // Context sets the context to be used in this call's Do method. -func (c *InstanceGroupsListCall) Context(ctx context.Context) *InstanceGroupsListCall { +func (c *InstanceGroupManagersCreateInstancesCall) Context(ctx context.Context) *InstanceGroupManagersCreateInstancesCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *InstanceGroupsListCall) Header() http.Header { +func (c *InstanceGroupManagersCreateInstancesCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *InstanceGroupsListCall) doRequest(alt string) (*http.Response, error) { - reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) - if c.ifNoneMatch_ != "" { - reqHeaders.Set("If-None-Match", c.ifNoneMatch_) +func (c *InstanceGroupManagersCreateInstancesCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) + body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.instancegroupmanagerscreateinstancesrequest) + if err != nil { + return nil, err } - var body io.Reader = nil c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instanceGroups") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/createInstances") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("GET", urls, body) + req, err := http.NewRequest("POST", urls, body) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "zone": c.zone, + "project": c.project, + "zone": c.zone, + "instanceGroupManager": c.instanceGroupManager, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.instanceGroupManagers.createInstances", "request", internallog.HTTPRequest(req, body.Bytes())) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.instanceGroups.list" call. +// Do executes the "compute.instanceGroupManagers.createInstances" call. // Any non-2xx status code is an error. Response headers are in either -// *InstanceGroupList.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 *InstanceGroupsListCall) Do(opts ...googleapi.CallOption) (*InstanceGroupList, error) { +// *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 *InstanceGroupManagersCreateInstancesCall) Do(opts ...googleapi.CallOption) (*Operation, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -27336,201 +31905,129 @@ func (c *InstanceGroupsListCall) Do(opts ...googleapi.CallOption) (*InstanceGrou if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } - ret := &InstanceGroupList{ + ret := &Operation{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.instanceGroupManagers.createInstances", "response", internallog.HTTPResponse(res, b)) return ret, nil } -// 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 *InstanceGroupsListCall) Pages(ctx context.Context, f func(*InstanceGroupList) error) error { - c.ctx_ = ctx - defer c.PageToken(c.urlParams_.Get("pageToken")) - 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) - } -} - -type InstanceGroupsListInstancesCall struct { - s *Service - project string - zone string - instanceGroup string - instancegroupslistinstancesrequest *InstanceGroupsListInstancesRequest - urlParams_ gensupport.URLParams - ctx_ context.Context - header_ http.Header +type InstanceGroupManagersDeleteCall struct { + s *Service + project string + zone string + instanceGroupManager string + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header } -// ListInstances: Lists the instances in the specified instance group. The -// orderBy query parameter is not supported. The filter query parameter is -// supported, but only for expressions that use `eq` (equal) or `ne` (not -// equal) operators. +// Delete: Deletes the specified managed instance group and all of the +// instances +// in that group. Note that the instance group must not belong to a +// backend service. Read +// Deleting an instance group for more information. // -// - instanceGroup: The name of the instance group from which you want to -// generate a list of included instances. -// - project: Project ID for this request. -// - zone: The name of the zone where the instance group is located. -func (r *InstanceGroupsService) ListInstances(project string, zone string, instanceGroup string, instancegroupslistinstancesrequest *InstanceGroupsListInstancesRequest) *InstanceGroupsListInstancesCall { - c := &InstanceGroupsListInstancesCall{s: r.s, urlParams_: make(gensupport.URLParams)} +// - instanceGroupManager: The name of the managed instance group to delete. +// - project: Project ID for this request. +// - zone: The name of thezone where the managed +// instance group is located. +func (r *InstanceGroupManagersService) Delete(project string, zone string, instanceGroupManager string) *InstanceGroupManagersDeleteCall { + c := &InstanceGroupManagersDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project c.zone = zone - c.instanceGroup = instanceGroup - c.instancegroupslistinstancesrequest = instancegroupslistinstancesrequest - return c -} - -// Filter sets the optional parameter "filter": A filter expression that -// filters resources listed in the response. Most Compute resources support two -// types of filter expressions: expressions that support regular expressions -// and expressions that follow API improvement proposal AIP-160. These two -// types of filter expressions cannot be mixed in one request. If you want to -// use AIP-160, your expression must specify the field name, an operator, and -// the value that you want to use for filtering. The value must be a string, a -// number, or a boolean. The 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`. The `:*` comparison can be used to test whether a key has -// been defined. For example, to find all objects with `owner` label use: ``` -// labels.owner:* ``` 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) ``` If you want to use a regular -// expression, use the `eq` (equal) or `ne` (not equal) operator against a -// single un-parenthesized expression with or without quotes or against -// multiple parenthesized expressions. Examples: `fieldname eq unquoted -// literal` `fieldname eq 'single quoted literal'` `fieldname eq "double quoted -// literal" `(fieldname1 eq literal) (fieldname2 ne "literal")` The literal -// value is interpreted as a regular expression using Google RE2 library -// syntax. The literal value must match the entire field. For example, to -// filter for instances that do not end with name "instance", you would use -// `name ne .*instance`. You cannot combine constraints on multiple fields -// using regular expressions. -func (c *InstanceGroupsListInstancesCall) Filter(filter string) *InstanceGroupsListInstancesCall { - 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 *InstanceGroupsListInstancesCall) MaxResults(maxResults int64) *InstanceGroupsListInstancesCall { - 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 *InstanceGroupsListInstancesCall) OrderBy(orderBy string) *InstanceGroupsListInstancesCall { - c.urlParams_.Set("orderBy", orderBy) + c.instanceGroupManager = instanceGroupManager 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 *InstanceGroupsListInstancesCall) PageToken(pageToken string) *InstanceGroupsListInstancesCall { - c.urlParams_.Set("pageToken", pageToken) +// NoGracefulShutdown sets the optional parameter "noGracefulShutdown": When +// set, graceful shutdown is skipped for instance deletion even if +// it's +// configured for the instances. +func (c *InstanceGroupManagersDeleteCall) NoGracefulShutdown(noGracefulShutdown bool) *InstanceGroupManagersDeleteCall { + c.urlParams_.Set("noGracefulShutdown", fmt.Sprint(noGracefulShutdown)) return c } -// ReturnPartialSuccess sets the optional parameter "returnPartialSuccess": -// Opt-in for partial success behavior which provides partial results in case -// of failure. The default value is false. For example, when partial success -// behavior is enabled, aggregatedList for a single zone scope either returns -// all resources in the zone or no resources, with an error code. -func (c *InstanceGroupsListInstancesCall) ReturnPartialSuccess(returnPartialSuccess bool) *InstanceGroupsListInstancesCall { - c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess)) +// 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 *InstanceGroupManagersDeleteCall) RequestId(requestId string) *InstanceGroupManagersDeleteCall { + 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 // details. -func (c *InstanceGroupsListInstancesCall) Fields(s ...googleapi.Field) *InstanceGroupsListInstancesCall { +func (c *InstanceGroupManagersDeleteCall) Fields(s ...googleapi.Field) *InstanceGroupManagersDeleteCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } // Context sets the context to be used in this call's Do method. -func (c *InstanceGroupsListInstancesCall) Context(ctx context.Context) *InstanceGroupsListInstancesCall { +func (c *InstanceGroupManagersDeleteCall) Context(ctx context.Context) *InstanceGroupManagersDeleteCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *InstanceGroupsListInstancesCall) Header() http.Header { +func (c *InstanceGroupManagersDeleteCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *InstanceGroupsListInstancesCall) doRequest(alt string) (*http.Response, error) { - reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) - var body io.Reader = nil - body, err := googleapi.WithoutDataWrapper.JSONReader(c.instancegroupslistinstancesrequest) - if err != nil { - return nil, err - } +func (c *InstanceGroupManagersDeleteCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instanceGroups/{instanceGroup}/listInstances") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("POST", urls, body) + req, err := http.NewRequest("DELETE", urls, nil) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "zone": c.zone, - "instanceGroup": c.instanceGroup, + "project": c.project, + "zone": c.zone, + "instanceGroupManager": c.instanceGroupManager, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.instanceGroupManagers.delete", "request", internallog.HTTPRequest(req, nil)) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.instanceGroups.listInstances" call. +// Do executes the "compute.instanceGroupManagers.delete" call. // Any non-2xx status code is an error. Response headers are in either -// *InstanceGroupsListInstances.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 *InstanceGroupsListInstancesCall) Do(opts ...googleapi.CallOption) (*InstanceGroupsListInstances, error) { +// *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 *InstanceGroupManagersDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -27549,81 +32046,93 @@ func (c *InstanceGroupsListInstancesCall) Do(opts ...googleapi.CallOption) (*Ins if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } - ret := &InstanceGroupsListInstances{ + ret := &Operation{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.instanceGroupManagers.delete", "response", internallog.HTTPResponse(res, b)) return ret, nil } -// 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 *InstanceGroupsListInstancesCall) Pages(ctx context.Context, f func(*InstanceGroupsListInstances) error) error { - c.ctx_ = ctx - defer c.PageToken(c.urlParams_.Get("pageToken")) - 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) - } -} - -type InstanceGroupsRemoveInstancesCall struct { - s *Service - project string - zone string - instanceGroup string - instancegroupsremoveinstancesrequest *InstanceGroupsRemoveInstancesRequest - urlParams_ gensupport.URLParams - ctx_ context.Context - header_ http.Header +type InstanceGroupManagersDeleteInstancesCall struct { + s *Service + project string + zone string + instanceGroupManager string + instancegroupmanagersdeleteinstancesrequest *InstanceGroupManagersDeleteInstancesRequest + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header } -// RemoveInstances: Removes one or more instances from the specified instance -// group, but does not delete those instances. If the group is part of a -// backend service that has enabled connection draining, it can take up to 60 -// seconds after the connection draining duration before the VM instance is -// removed or deleted. +// DeleteInstances: Flags the specified instances in the managed instance group +// for immediate +// deletion. The instances are also removed from any target +// pools of which they were a member. This method reduces thetargetSize of the +// managed instance group by the number of +// instances that you delete. This operation is marked as DONE +// when the action is scheduled even if the instances are still being +// deleted. +// You must separately verify the status of the deleting action +// with thelistmanagedinstances +// method. // -// - instanceGroup: The name of the instance group where the specified -// instances will be removed. -// - project: Project ID for this request. -// - zone: The name of the zone where the instance group is located. -func (r *InstanceGroupsService) RemoveInstances(project string, zone string, instanceGroup string, instancegroupsremoveinstancesrequest *InstanceGroupsRemoveInstancesRequest) *InstanceGroupsRemoveInstancesCall { - c := &InstanceGroupsRemoveInstancesCall{s: r.s, urlParams_: make(gensupport.URLParams)} +// If the group is part of a backend +// service that has enabled +// connection draining, it can take up to 60 seconds after the +// connection +// draining duration has elapsed before the VM instance is removed or +// deleted. +// +// You can specify a maximum of 1000 instances with this method per request. +// +// - instanceGroupManager: The name of the managed instance group. +// - project: Project ID for this request. +// - zone: The name of thezone where the managed +// instance group is located. +func (r *InstanceGroupManagersService) DeleteInstances(project string, zone string, instanceGroupManager string, instancegroupmanagersdeleteinstancesrequest *InstanceGroupManagersDeleteInstancesRequest) *InstanceGroupManagersDeleteInstancesCall { + c := &InstanceGroupManagersDeleteInstancesCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project c.zone = zone - c.instanceGroup = instanceGroup - c.instancegroupsremoveinstancesrequest = instancegroupsremoveinstancesrequest + c.instanceGroupManager = instanceGroupManager + c.instancegroupmanagersdeleteinstancesrequest = instancegroupmanagersdeleteinstancesrequest + return c +} + +// NoGracefulShutdown sets the optional parameter "noGracefulShutdown": When +// set, graceful shutdown is skipped for instance deletion even if +// it's +// configured for the instances. +func (c *InstanceGroupManagersDeleteInstancesCall) NoGracefulShutdown(noGracefulShutdown bool) *InstanceGroupManagersDeleteInstancesCall { + c.urlParams_.Set("noGracefulShutdown", fmt.Sprint(noGracefulShutdown)) 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 *InstanceGroupsRemoveInstancesCall) RequestId(requestId string) *InstanceGroupsRemoveInstancesCall { +// 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 *InstanceGroupManagersDeleteInstancesCall) RequestId(requestId string) *InstanceGroupManagersDeleteInstancesCall { c.urlParams_.Set("requestId", requestId) return c } @@ -27631,36 +32140,35 @@ func (c *InstanceGroupsRemoveInstancesCall) RequestId(requestId string) *Instanc // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *InstanceGroupsRemoveInstancesCall) Fields(s ...googleapi.Field) *InstanceGroupsRemoveInstancesCall { +func (c *InstanceGroupManagersDeleteInstancesCall) Fields(s ...googleapi.Field) *InstanceGroupManagersDeleteInstancesCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } // Context sets the context to be used in this call's Do method. -func (c *InstanceGroupsRemoveInstancesCall) Context(ctx context.Context) *InstanceGroupsRemoveInstancesCall { +func (c *InstanceGroupManagersDeleteInstancesCall) Context(ctx context.Context) *InstanceGroupManagersDeleteInstancesCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *InstanceGroupsRemoveInstancesCall) Header() http.Header { +func (c *InstanceGroupManagersDeleteInstancesCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *InstanceGroupsRemoveInstancesCall) doRequest(alt string) (*http.Response, error) { +func (c *InstanceGroupManagersDeleteInstancesCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) - var body io.Reader = nil - body, err := googleapi.WithoutDataWrapper.JSONReader(c.instancegroupsremoveinstancesrequest) + body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.instancegroupmanagersdeleteinstancesrequest) if err != nil { return nil, err } c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instanceGroups/{instanceGroup}/removeInstances") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/deleteInstances") urls += "?" + c.urlParams_.Encode() req, err := http.NewRequest("POST", urls, body) if err != nil { @@ -27668,19 +32176,20 @@ func (c *InstanceGroupsRemoveInstancesCall) doRequest(alt string) (*http.Respons } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "zone": c.zone, - "instanceGroup": c.instanceGroup, + "project": c.project, + "zone": c.zone, + "instanceGroupManager": c.instanceGroupManager, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.instanceGroupManagers.deleteInstances", "request", internallog.HTTPRequest(req, body.Bytes())) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.instanceGroups.removeInstances" call. +// Do executes the "compute.instanceGroupManagers.deleteInstances" call. // 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 *InstanceGroupsRemoveInstancesCall) Do(opts ...googleapi.CallOption) (*Operation, error) { +func (c *InstanceGroupManagersDeleteInstancesCall) Do(opts ...googleapi.CallOption) (*Operation, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -27706,86 +32215,78 @@ func (c *InstanceGroupsRemoveInstancesCall) Do(opts ...googleapi.CallOption) (*O }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.instanceGroupManagers.deleteInstances", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type InstanceGroupsSetNamedPortsCall struct { - s *Service - project string - zone string - instanceGroup string - instancegroupssetnamedportsrequest *InstanceGroupsSetNamedPortsRequest - urlParams_ gensupport.URLParams - ctx_ context.Context - header_ http.Header +type InstanceGroupManagersDeletePerInstanceConfigsCall struct { + s *Service + project string + zone string + instanceGroupManager string + instancegroupmanagersdeleteperinstanceconfigsreq *InstanceGroupManagersDeletePerInstanceConfigsReq + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header } -// SetNamedPorts: Sets the named ports for the specified instance group. +// DeletePerInstanceConfigs: Deletes selected per-instance configurations for +// the managed instance +// group. // -// - instanceGroup: The name of the instance group where the named ports are -// updated. +// - instanceGroupManager: The name of the managed instance group. +// It should conform to RFC1035. // - project: Project ID for this request. -// - zone: The name of the zone where the instance group is located. -func (r *InstanceGroupsService) SetNamedPorts(project string, zone string, instanceGroup string, instancegroupssetnamedportsrequest *InstanceGroupsSetNamedPortsRequest) *InstanceGroupsSetNamedPortsCall { - c := &InstanceGroupsSetNamedPortsCall{s: r.s, urlParams_: make(gensupport.URLParams)} +// - zone: The name of thezone +// where the managed instance +// +// group is located. +// It should conform to RFC1035. +func (r *InstanceGroupManagersService) DeletePerInstanceConfigs(project string, zone string, instanceGroupManager string, instancegroupmanagersdeleteperinstanceconfigsreq *InstanceGroupManagersDeletePerInstanceConfigsReq) *InstanceGroupManagersDeletePerInstanceConfigsCall { + c := &InstanceGroupManagersDeletePerInstanceConfigsCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project c.zone = zone - c.instanceGroup = instanceGroup - c.instancegroupssetnamedportsrequest = instancegroupssetnamedportsrequest - 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 *InstanceGroupsSetNamedPortsCall) RequestId(requestId string) *InstanceGroupsSetNamedPortsCall { - c.urlParams_.Set("requestId", requestId) + c.instanceGroupManager = instanceGroupManager + c.instancegroupmanagersdeleteperinstanceconfigsreq = instancegroupmanagersdeleteperinstanceconfigsreq return c } // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *InstanceGroupsSetNamedPortsCall) Fields(s ...googleapi.Field) *InstanceGroupsSetNamedPortsCall { +func (c *InstanceGroupManagersDeletePerInstanceConfigsCall) Fields(s ...googleapi.Field) *InstanceGroupManagersDeletePerInstanceConfigsCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } // Context sets the context to be used in this call's Do method. -func (c *InstanceGroupsSetNamedPortsCall) Context(ctx context.Context) *InstanceGroupsSetNamedPortsCall { +func (c *InstanceGroupManagersDeletePerInstanceConfigsCall) Context(ctx context.Context) *InstanceGroupManagersDeletePerInstanceConfigsCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *InstanceGroupsSetNamedPortsCall) Header() http.Header { +func (c *InstanceGroupManagersDeletePerInstanceConfigsCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *InstanceGroupsSetNamedPortsCall) doRequest(alt string) (*http.Response, error) { +func (c *InstanceGroupManagersDeletePerInstanceConfigsCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) - var body io.Reader = nil - body, err := googleapi.WithoutDataWrapper.JSONReader(c.instancegroupssetnamedportsrequest) + body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.instancegroupmanagersdeleteperinstanceconfigsreq) if err != nil { return nil, err } c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instanceGroups/{instanceGroup}/setNamedPorts") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/deletePerInstanceConfigs") urls += "?" + c.urlParams_.Encode() req, err := http.NewRequest("POST", urls, body) if err != nil { @@ -27793,19 +32294,20 @@ func (c *InstanceGroupsSetNamedPortsCall) doRequest(alt string) (*http.Response, } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "zone": c.zone, - "instanceGroup": c.instanceGroup, + "project": c.project, + "zone": c.zone, + "instanceGroupManager": c.instanceGroupManager, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.instanceGroupManagers.deletePerInstanceConfigs", "request", internallog.HTTPRequest(req, body.Bytes())) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.instanceGroups.setNamedPorts" call. +// Do executes the "compute.instanceGroupManagers.deletePerInstanceConfigs" call. // 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 *InstanceGroupsSetNamedPortsCall) Do(opts ...googleapi.CallOption) (*Operation, error) { +func (c *InstanceGroupManagersDeletePerInstanceConfigsCall) Do(opts ...googleapi.CallOption) (*Operation, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -27831,37 +32333,43 @@ func (c *InstanceGroupsSetNamedPortsCall) Do(opts ...googleapi.CallOption) (*Ope }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.instanceGroupManagers.deletePerInstanceConfigs", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type InstanceSettingsGetCall struct { - s *Service - project string - zone string - urlParams_ gensupport.URLParams - ifNoneMatch_ string - ctx_ context.Context - header_ http.Header +type InstanceGroupManagersGetCall struct { + s *Service + project string + zone string + instanceGroupManager string + urlParams_ gensupport.URLParams + ifNoneMatch_ string + ctx_ context.Context + header_ http.Header } -// Get: Get Instance settings. +// Get: Returns all of the details about the specified managed instance group. // +// - instanceGroupManager: The name of the managed instance group. // - project: Project ID for this request. -// - zone: Name of the zone for this request. -func (r *InstanceSettingsService) Get(project string, zone string) *InstanceSettingsGetCall { - c := &InstanceSettingsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)} +// - zone: The name of thezone where the managed +// instance group is located. +func (r *InstanceGroupManagersService) Get(project string, zone string, instanceGroupManager string) *InstanceGroupManagersGetCall { + c := &InstanceGroupManagersGetCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project c.zone = zone + c.instanceGroupManager = instanceGroupManager return c } // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *InstanceSettingsGetCall) Fields(s ...googleapi.Field) *InstanceSettingsGetCall { +func (c *InstanceGroupManagersGetCall) Fields(s ...googleapi.Field) *InstanceGroupManagersGetCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } @@ -27869,55 +32377,56 @@ func (c *InstanceSettingsGetCall) Fields(s ...googleapi.Field) *InstanceSettings // IfNoneMatch sets an 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. -func (c *InstanceSettingsGetCall) IfNoneMatch(entityTag string) *InstanceSettingsGetCall { +func (c *InstanceGroupManagersGetCall) IfNoneMatch(entityTag string) *InstanceGroupManagersGetCall { c.ifNoneMatch_ = entityTag return c } // Context sets the context to be used in this call's Do method. -func (c *InstanceSettingsGetCall) Context(ctx context.Context) *InstanceSettingsGetCall { +func (c *InstanceGroupManagersGetCall) Context(ctx context.Context) *InstanceGroupManagersGetCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *InstanceSettingsGetCall) Header() http.Header { +func (c *InstanceGroupManagersGetCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *InstanceSettingsGetCall) doRequest(alt string) (*http.Response, error) { +func (c *InstanceGroupManagersGetCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) if c.ifNoneMatch_ != "" { reqHeaders.Set("If-None-Match", c.ifNoneMatch_) } - var body io.Reader = nil c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instanceSettings") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("GET", urls, body) + req, err := http.NewRequest("GET", urls, nil) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "zone": c.zone, + "project": c.project, + "zone": c.zone, + "instanceGroupManager": c.instanceGroupManager, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.instanceGroupManagers.get", "request", internallog.HTTPRequest(req, nil)) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.instanceSettings.get" call. +// Do executes the "compute.instanceGroupManagers.get" call. // Any non-2xx status code is an error. Response headers are in either -// *InstanceSettings.ServerResponse.Header or (if a response was returned at -// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to +// *InstanceGroupManager.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 *InstanceSettingsGetCall) Do(opts ...googleapi.CallOption) (*InstanceSettings, error) { +func (c *InstanceGroupManagersGetCall) Do(opts ...googleapi.CallOption) (*InstanceGroupManager, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -27936,98 +32445,114 @@ func (c *InstanceSettingsGetCall) Do(opts ...googleapi.CallOption) (*InstanceSet if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } - ret := &InstanceSettings{ + ret := &InstanceGroupManager{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.instanceGroupManagers.get", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type InstanceSettingsPatchCall struct { - s *Service - project string - zone string - instancesettings *InstanceSettings - urlParams_ gensupport.URLParams - ctx_ context.Context - header_ http.Header +type InstanceGroupManagersInsertCall struct { + s *Service + project string + zone string + instancegroupmanager *InstanceGroupManager + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header } -// Patch: Patch Instance settings +// Insert: Creates a managed instance group using the information that you +// specify +// in the request. After the group is created, instances in the group +// are +// created using the specified instance template. +// This operation is marked as DONE when the group is created +// even if the instances in the group have not yet been created. You +// must separately verify the status of the individual instances with +// thelistmanagedinstances +// method. // -// - project: Project ID for this request. -// - zone: The zone scoping this request. It should conform to RFC1035. -func (r *InstanceSettingsService) Patch(project string, zone string, instancesettings *InstanceSettings) *InstanceSettingsPatchCall { - c := &InstanceSettingsPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)} +// A managed instance group can have up to 1000 VM instances per group. +// Please +// contact Cloud Support if you need an increase in +// this limit. +// +// - project: Project ID for this request. +// - zone: The name of the zone +// where you want to create the managed instance group. +func (r *InstanceGroupManagersService) Insert(project string, zone string, instancegroupmanager *InstanceGroupManager) *InstanceGroupManagersInsertCall { + c := &InstanceGroupManagersInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project c.zone = zone - c.instancesettings = instancesettings + c.instancegroupmanager = instancegroupmanager 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 *InstanceSettingsPatchCall) RequestId(requestId string) *InstanceSettingsPatchCall { +// 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 *InstanceGroupManagersInsertCall) RequestId(requestId string) *InstanceGroupManagersInsertCall { c.urlParams_.Set("requestId", requestId) return c } -// UpdateMask sets the optional parameter "updateMask": update_mask indicates -// fields to be updated as part of this request. -func (c *InstanceSettingsPatchCall) UpdateMask(updateMask string) *InstanceSettingsPatchCall { - c.urlParams_.Set("updateMask", updateMask) - return c -} - // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *InstanceSettingsPatchCall) Fields(s ...googleapi.Field) *InstanceSettingsPatchCall { +func (c *InstanceGroupManagersInsertCall) Fields(s ...googleapi.Field) *InstanceGroupManagersInsertCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } // Context sets the context to be used in this call's Do method. -func (c *InstanceSettingsPatchCall) Context(ctx context.Context) *InstanceSettingsPatchCall { +func (c *InstanceGroupManagersInsertCall) Context(ctx context.Context) *InstanceGroupManagersInsertCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *InstanceSettingsPatchCall) Header() http.Header { +func (c *InstanceGroupManagersInsertCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *InstanceSettingsPatchCall) doRequest(alt string) (*http.Response, error) { +func (c *InstanceGroupManagersInsertCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) - var body io.Reader = nil - body, err := googleapi.WithoutDataWrapper.JSONReader(c.instancesettings) + body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.instancegroupmanager) if err != nil { return nil, err } c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instanceSettings") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instanceGroupManagers") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("PATCH", urls, body) + req, err := http.NewRequest("POST", urls, body) if err != nil { return nil, err } @@ -28036,15 +32561,16 @@ func (c *InstanceSettingsPatchCall) doRequest(alt string) (*http.Response, error "project": c.project, "zone": c.zone, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.instanceGroupManagers.insert", "request", internallog.HTTPRequest(req, body.Bytes())) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.instanceSettings.patch" call. +// Do executes the "compute.instanceGroupManagers.insert" call. // 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 *InstanceSettingsPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) { +func (c *InstanceGroupManagersInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -28070,136 +32596,170 @@ func (c *InstanceSettingsPatchCall) Do(opts ...googleapi.CallOption) (*Operation }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.instanceGroupManagers.insert", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type InstanceTemplatesAggregatedListCall struct { +type InstanceGroupManagersListCall struct { s *Service project string + zone string urlParams_ gensupport.URLParams ifNoneMatch_ string ctx_ context.Context header_ http.Header } -// AggregatedList: Retrieves the list of all InstanceTemplates resources, -// regional and global, available to the specified project. To prevent failure, -// Google recommends that you set the `returnPartialSuccess` parameter to -// `true`. +// List: Retrieves a list of managed instance groups that are contained within +// the +// specified project and zone. // -// - project: Name of the project scoping this request. -func (r *InstanceTemplatesService) AggregatedList(project string) *InstanceTemplatesAggregatedListCall { - c := &InstanceTemplatesAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)} +// - project: Project ID for this request. +// - zone: The name of thezone where the managed +// instance group is located. +func (r *InstanceGroupManagersService) List(project string, zone string) *InstanceGroupManagersListCall { + c := &InstanceGroupManagersListCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project + c.zone = zone return c } // Filter sets the optional parameter "filter": A filter expression that -// filters resources listed in the response. Most Compute resources support two -// types of filter expressions: expressions that support regular expressions -// and expressions that follow API improvement proposal AIP-160. These two -// types of filter expressions cannot be mixed in one request. If you want to -// use AIP-160, your expression must specify the field name, an operator, and -// the value that you want to use for filtering. The value must be a string, a -// number, or a boolean. The 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`. The `:*` comparison can be used to test whether a key has -// been defined. For example, to find all objects with `owner` label use: ``` -// labels.owner:* ``` 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) ``` If you want to use a regular -// expression, use the `eq` (equal) or `ne` (not equal) operator against a -// single un-parenthesized expression with or without quotes or against -// multiple parenthesized expressions. Examples: `fieldname eq unquoted -// literal` `fieldname eq 'single quoted literal'` `fieldname eq "double quoted -// literal" `(fieldname1 eq literal) (fieldname2 ne "literal")` The literal -// value is interpreted as a regular expression using Google RE2 library -// syntax. The literal value must match the entire field. For example, to -// filter for instances that do not end with name "instance", you would use -// `name ne .*instance`. You cannot combine constraints on multiple fields -// using regular expressions. -func (c *InstanceTemplatesAggregatedListCall) Filter(filter string) *InstanceTemplatesAggregatedListCall { +// filters resources listed in the response. Most +// Compute resources support two types of filter expressions: +// expressions that support regular expressions and expressions that follow +// API improvement proposal AIP-160. +// These two types of filter expressions cannot be mixed in one request. +// +// If you want to use AIP-160, your expression must specify the field name, +// an +// operator, and the value that you want to use for filtering. The value +// must be a string, a number, or a boolean. The 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`. +// +// The `:*` comparison can be used to test whether a key has been defined. +// For example, to find all objects with `owner` label +// use: +// ``` +// labels.owner:* +// ``` +// +// 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 onresource 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) +// ``` +// +// If you want to use a regular expression, use the `eq` (equal) or `ne` +// (not equal) operator against a single un-parenthesized expression with +// or +// without quotes or against multiple parenthesized expressions. +// Examples: +// +// `fieldname eq unquoted literal` +// `fieldname eq 'single quoted literal'` +// `fieldname eq "double quoted literal" +// `(fieldname1 eq literal) (fieldname2 ne "literal")` +// +// The literal value is interpreted as a regular expression using GoogleRE2 +// library syntax. +// The literal value must match the entire field. +// +// For example, to filter for instances that do not end with name +// "instance", +// you would use `name ne .*instance`. +// +// You cannot combine constraints on multiple fields using regular +// expressions. +func (c *InstanceGroupManagersListCall) Filter(filter string) *InstanceGroupManagersListCall { c.urlParams_.Set("filter", filter) return c } -// IncludeAllScopes sets the optional parameter "includeAllScopes": Indicates -// whether every visible scope for each scope type (zone, region, global) -// should be included in the response. For new resource types added after this -// field, the flag has no effect as new resource types will always include -// every visible scope for each scope type in response. For resource types -// which predate this field, if this flag is omitted or false, only scopes of -// the scope types where the resource type is expected to be found will be -// included. -func (c *InstanceTemplatesAggregatedListCall) IncludeAllScopes(includeAllScopes bool) *InstanceTemplatesAggregatedListCall { - c.urlParams_.Set("includeAllScopes", fmt.Sprint(includeAllScopes)) - 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 *InstanceTemplatesAggregatedListCall) MaxResults(maxResults int64) *InstanceTemplatesAggregatedListCall { +// 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 *InstanceGroupManagersListCall) MaxResults(maxResults int64) *InstanceGroupManagersListCall { 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 *InstanceTemplatesAggregatedListCall) OrderBy(orderBy string) *InstanceTemplatesAggregatedListCall { +// 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 *InstanceGroupManagersListCall) OrderBy(orderBy string) *InstanceGroupManagersListCall { 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 *InstanceTemplatesAggregatedListCall) PageToken(pageToken string) *InstanceTemplatesAggregatedListCall { +// use. Set `pageToken` to the +// `nextPageToken` returned by a previous list request to get +// the next page of results. +func (c *InstanceGroupManagersListCall) PageToken(pageToken string) *InstanceGroupManagersListCall { c.urlParams_.Set("pageToken", pageToken) return c } // ReturnPartialSuccess sets the optional parameter "returnPartialSuccess": -// Opt-in for partial success behavior which provides partial results in case -// of failure. The default value is false. For example, when partial success -// behavior is enabled, aggregatedList for a single zone scope either returns -// all resources in the zone or no resources, with an error code. -func (c *InstanceTemplatesAggregatedListCall) ReturnPartialSuccess(returnPartialSuccess bool) *InstanceTemplatesAggregatedListCall { +// Opt-in for partial success behavior which provides partial results in +// case +// of failure. The default value is false. +// +// For example, when partial success behavior is enabled, aggregatedList for +// a +// single zone scope either returns all resources in the zone or no +// resources, +// with an error code. +func (c *InstanceGroupManagersListCall) ReturnPartialSuccess(returnPartialSuccess bool) *InstanceGroupManagersListCall { c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess)) return c } -// ServiceProjectNumber sets the optional parameter "serviceProjectNumber": The -// Shared VPC service project id or service project number for which aggregated -// list request is invoked for subnetworks list-usable api. -func (c *InstanceTemplatesAggregatedListCall) ServiceProjectNumber(serviceProjectNumber int64) *InstanceTemplatesAggregatedListCall { - c.urlParams_.Set("serviceProjectNumber", fmt.Sprint(serviceProjectNumber)) - return c -} - // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *InstanceTemplatesAggregatedListCall) Fields(s ...googleapi.Field) *InstanceTemplatesAggregatedListCall { +func (c *InstanceGroupManagersListCall) Fields(s ...googleapi.Field) *InstanceGroupManagersListCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } @@ -28207,54 +32767,55 @@ func (c *InstanceTemplatesAggregatedListCall) Fields(s ...googleapi.Field) *Inst // IfNoneMatch sets an 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. -func (c *InstanceTemplatesAggregatedListCall) IfNoneMatch(entityTag string) *InstanceTemplatesAggregatedListCall { +func (c *InstanceGroupManagersListCall) IfNoneMatch(entityTag string) *InstanceGroupManagersListCall { c.ifNoneMatch_ = entityTag return c } // Context sets the context to be used in this call's Do method. -func (c *InstanceTemplatesAggregatedListCall) Context(ctx context.Context) *InstanceTemplatesAggregatedListCall { +func (c *InstanceGroupManagersListCall) Context(ctx context.Context) *InstanceGroupManagersListCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *InstanceTemplatesAggregatedListCall) Header() http.Header { +func (c *InstanceGroupManagersListCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *InstanceTemplatesAggregatedListCall) doRequest(alt string) (*http.Response, error) { +func (c *InstanceGroupManagersListCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) if c.ifNoneMatch_ != "" { reqHeaders.Set("If-None-Match", c.ifNoneMatch_) } - var body io.Reader = nil c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/aggregated/instanceTemplates") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instanceGroupManagers") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("GET", urls, body) + req, err := http.NewRequest("GET", urls, nil) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ "project": c.project, + "zone": c.zone, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.instanceGroupManagers.list", "request", internallog.HTTPRequest(req, nil)) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.instanceTemplates.aggregatedList" call. +// Do executes the "compute.instanceGroupManagers.list" call. // Any non-2xx status code is an error. Response headers are in either -// *InstanceTemplateAggregatedList.ServerResponse.Header or (if a response was +// *InstanceGroupManagerList.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 *InstanceTemplatesAggregatedListCall) Do(opts ...googleapi.CallOption) (*InstanceTemplateAggregatedList, error) { +func (c *InstanceGroupManagersListCall) Do(opts ...googleapi.CallOption) (*InstanceGroupManagerList, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -28273,23 +32834,25 @@ func (c *InstanceTemplatesAggregatedListCall) Do(opts ...googleapi.CallOption) ( if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } - ret := &InstanceTemplateAggregatedList{ + ret := &InstanceGroupManagerList{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.instanceGroupManagers.list", "response", internallog.HTTPResponse(res, b)) return ret, nil } // 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 *InstanceTemplatesAggregatedListCall) Pages(ctx context.Context, f func(*InstanceTemplateAggregatedList) error) error { +func (c *InstanceGroupManagersListCall) Pages(ctx context.Context, f func(*InstanceGroupManagerList) error) error { c.ctx_ = ctx defer c.PageToken(c.urlParams_.Get("pageToken")) for { @@ -28307,91 +32870,228 @@ func (c *InstanceTemplatesAggregatedListCall) Pages(ctx context.Context, f func( } } -type InstanceTemplatesDeleteCall struct { - s *Service - project string - instanceTemplate string - urlParams_ gensupport.URLParams - ctx_ context.Context - header_ http.Header +type InstanceGroupManagersListErrorsCall struct { + s *Service + project string + zone string + instanceGroupManager string + urlParams_ gensupport.URLParams + ifNoneMatch_ string + ctx_ context.Context + header_ http.Header } -// Delete: Deletes the specified instance template. Deleting an instance -// template is permanent and cannot be undone. It is not possible to delete -// templates that are already in use by a managed instance group. +// ListErrors: Lists all errors thrown by actions on instances for a given +// managed +// instance group. The filter and orderBy query +// parameters are not supported. // -// - instanceTemplate: The name of the instance template to delete. -// - project: Project ID for this request. -func (r *InstanceTemplatesService) Delete(project string, instanceTemplate string) *InstanceTemplatesDeleteCall { - c := &InstanceTemplatesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)} +// - instanceGroupManager: The name of the managed instance group. +// It must be a string that meets the requirements in RFC1035, or an +// unsigned long integer: must match regexp pattern: +// (?:a-z (?:[-a-z0-9]{0,61}[a-z0-9])?)|1-9{0,19}. +// - project: Project ID for this request. +// - zone: The name of thezone where the managed +// instance group is located. +// +// It should conform to RFC1035. +func (r *InstanceGroupManagersService) ListErrors(project string, zone string, instanceGroupManager string) *InstanceGroupManagersListErrorsCall { + c := &InstanceGroupManagersListErrorsCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project - c.instanceTemplate = instanceTemplate + c.zone = zone + c.instanceGroupManager = instanceGroupManager 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 *InstanceTemplatesDeleteCall) RequestId(requestId string) *InstanceTemplatesDeleteCall { - c.urlParams_.Set("requestId", requestId) +// Filter sets the optional parameter "filter": A filter expression that +// filters resources listed in the response. Most +// Compute resources support two types of filter expressions: +// expressions that support regular expressions and expressions that follow +// API improvement proposal AIP-160. +// These two types of filter expressions cannot be mixed in one request. +// +// If you want to use AIP-160, your expression must specify the field name, +// an +// operator, and the value that you want to use for filtering. The value +// must be a string, a number, or a boolean. The 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`. +// +// The `:*` comparison can be used to test whether a key has been defined. +// For example, to find all objects with `owner` label +// use: +// ``` +// labels.owner:* +// ``` +// +// 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 onresource 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) +// ``` +// +// If you want to use a regular expression, use the `eq` (equal) or `ne` +// (not equal) operator against a single un-parenthesized expression with +// or +// without quotes or against multiple parenthesized expressions. +// Examples: +// +// `fieldname eq unquoted literal` +// `fieldname eq 'single quoted literal'` +// `fieldname eq "double quoted literal" +// `(fieldname1 eq literal) (fieldname2 ne "literal")` +// +// The literal value is interpreted as a regular expression using GoogleRE2 +// library syntax. +// The literal value must match the entire field. +// +// For example, to filter for instances that do not end with name +// "instance", +// you would use `name ne .*instance`. +// +// You cannot combine constraints on multiple fields using regular +// expressions. +func (c *InstanceGroupManagersListErrorsCall) Filter(filter string) *InstanceGroupManagersListErrorsCall { + 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 *InstanceGroupManagersListErrorsCall) MaxResults(maxResults int64) *InstanceGroupManagersListErrorsCall { + 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 *InstanceGroupManagersListErrorsCall) OrderBy(orderBy string) *InstanceGroupManagersListErrorsCall { + 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 *InstanceGroupManagersListErrorsCall) PageToken(pageToken string) *InstanceGroupManagersListErrorsCall { + c.urlParams_.Set("pageToken", pageToken) + return c +} + +// ReturnPartialSuccess sets the optional parameter "returnPartialSuccess": +// Opt-in for partial success behavior which provides partial results in +// case +// of failure. The default value is false. +// +// For example, when partial success behavior is enabled, aggregatedList for +// a +// single zone scope either returns all resources in the zone or no +// resources, +// with an error code. +func (c *InstanceGroupManagersListErrorsCall) ReturnPartialSuccess(returnPartialSuccess bool) *InstanceGroupManagersListErrorsCall { + c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess)) return c } // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *InstanceTemplatesDeleteCall) Fields(s ...googleapi.Field) *InstanceTemplatesDeleteCall { +func (c *InstanceGroupManagersListErrorsCall) Fields(s ...googleapi.Field) *InstanceGroupManagersListErrorsCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } +// IfNoneMatch sets an 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. +func (c *InstanceGroupManagersListErrorsCall) IfNoneMatch(entityTag string) *InstanceGroupManagersListErrorsCall { + c.ifNoneMatch_ = entityTag + return c +} + // Context sets the context to be used in this call's Do method. -func (c *InstanceTemplatesDeleteCall) Context(ctx context.Context) *InstanceTemplatesDeleteCall { +func (c *InstanceGroupManagersListErrorsCall) Context(ctx context.Context) *InstanceGroupManagersListErrorsCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *InstanceTemplatesDeleteCall) Header() http.Header { +func (c *InstanceGroupManagersListErrorsCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *InstanceTemplatesDeleteCall) doRequest(alt string) (*http.Response, error) { +func (c *InstanceGroupManagersListErrorsCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) - var body io.Reader = nil + if c.ifNoneMatch_ != "" { + reqHeaders.Set("If-None-Match", c.ifNoneMatch_) + } c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/instanceTemplates/{instanceTemplate}") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/listErrors") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("DELETE", urls, body) + req, err := http.NewRequest("GET", urls, nil) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "instanceTemplate": c.instanceTemplate, + "project": c.project, + "zone": c.zone, + "instanceGroupManager": c.instanceGroupManager, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.instanceGroupManagers.listErrors", "request", internallog.HTTPRequest(req, nil)) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.instanceTemplates.delete" call. +// Do executes the "compute.instanceGroupManagers.listErrors" call. // 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 *InstanceTemplatesDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) { +// *InstanceGroupManagersListErrorsResponse.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 *InstanceGroupManagersListErrorsCall) Do(opts ...googleapi.CallOption) (*InstanceGroupManagersListErrorsResponse, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -28410,100 +33110,255 @@ func (c *InstanceTemplatesDeleteCall) Do(opts ...googleapi.CallOption) (*Operati if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } - ret := &Operation{ + ret := &InstanceGroupManagersListErrorsResponse{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.instanceGroupManagers.listErrors", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type InstanceTemplatesGetCall struct { - s *Service - project string - instanceTemplate string - urlParams_ gensupport.URLParams - ifNoneMatch_ string - ctx_ context.Context - header_ http.Header +// 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 *InstanceGroupManagersListErrorsCall) Pages(ctx context.Context, f func(*InstanceGroupManagersListErrorsResponse) error) error { + c.ctx_ = ctx + defer c.PageToken(c.urlParams_.Get("pageToken")) + 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) + } } -// Get: Returns the specified instance template. +type InstanceGroupManagersListManagedInstancesCall struct { + s *Service + project string + zone string + instanceGroupManager string + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header +} + +// ListManagedInstances: Lists all of the instances in the managed instance +// group. Each instance +// in the list has a currentAction, which indicates the action +// that the managed instance group is performing on the instance. For +// example, +// if the group is still creating an instance, the currentAction +// is CREATING. If a previous action failed, the +// list displays the errors for that failed action. The orderBy +// query parameter is not supported. The `pageToken` query parameter +// is +// supported only if the group's `listManagedInstancesResults` field is set +// to `PAGINATED`. // -// - instanceTemplate: The name of the instance template. +// - instanceGroupManager: The name of the managed instance group. // - project: Project ID for this request. -func (r *InstanceTemplatesService) Get(project string, instanceTemplate string) *InstanceTemplatesGetCall { - c := &InstanceTemplatesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)} +// - zone: The name of thezone where the managed +// instance group is located. +func (r *InstanceGroupManagersService) ListManagedInstances(project string, zone string, instanceGroupManager string) *InstanceGroupManagersListManagedInstancesCall { + c := &InstanceGroupManagersListManagedInstancesCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project - c.instanceTemplate = instanceTemplate + c.zone = zone + c.instanceGroupManager = instanceGroupManager + return c +} + +// Filter sets the optional parameter "filter": A filter expression that +// filters resources listed in the response. Most +// Compute resources support two types of filter expressions: +// expressions that support regular expressions and expressions that follow +// API improvement proposal AIP-160. +// These two types of filter expressions cannot be mixed in one request. +// +// If you want to use AIP-160, your expression must specify the field name, +// an +// operator, and the value that you want to use for filtering. The value +// must be a string, a number, or a boolean. The 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`. +// +// The `:*` comparison can be used to test whether a key has been defined. +// For example, to find all objects with `owner` label +// use: +// ``` +// labels.owner:* +// ``` +// +// 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 onresource 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) +// ``` +// +// If you want to use a regular expression, use the `eq` (equal) or `ne` +// (not equal) operator against a single un-parenthesized expression with +// or +// without quotes or against multiple parenthesized expressions. +// Examples: +// +// `fieldname eq unquoted literal` +// `fieldname eq 'single quoted literal'` +// `fieldname eq "double quoted literal" +// `(fieldname1 eq literal) (fieldname2 ne "literal")` +// +// The literal value is interpreted as a regular expression using GoogleRE2 +// library syntax. +// The literal value must match the entire field. +// +// For example, to filter for instances that do not end with name +// "instance", +// you would use `name ne .*instance`. +// +// You cannot combine constraints on multiple fields using regular +// expressions. +func (c *InstanceGroupManagersListManagedInstancesCall) Filter(filter string) *InstanceGroupManagersListManagedInstancesCall { + 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 *InstanceGroupManagersListManagedInstancesCall) MaxResults(maxResults int64) *InstanceGroupManagersListManagedInstancesCall { + 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 *InstanceGroupManagersListManagedInstancesCall) OrderBy(orderBy string) *InstanceGroupManagersListManagedInstancesCall { + 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 *InstanceGroupManagersListManagedInstancesCall) PageToken(pageToken string) *InstanceGroupManagersListManagedInstancesCall { + c.urlParams_.Set("pageToken", pageToken) + return c +} + +// ReturnPartialSuccess sets the optional parameter "returnPartialSuccess": +// Opt-in for partial success behavior which provides partial results in +// case +// of failure. The default value is false. +// +// For example, when partial success behavior is enabled, aggregatedList for +// a +// single zone scope either returns all resources in the zone or no +// resources, +// with an error code. +func (c *InstanceGroupManagersListManagedInstancesCall) ReturnPartialSuccess(returnPartialSuccess bool) *InstanceGroupManagersListManagedInstancesCall { + c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess)) return c } // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *InstanceTemplatesGetCall) Fields(s ...googleapi.Field) *InstanceTemplatesGetCall { +func (c *InstanceGroupManagersListManagedInstancesCall) Fields(s ...googleapi.Field) *InstanceGroupManagersListManagedInstancesCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } -// IfNoneMatch sets an 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. -func (c *InstanceTemplatesGetCall) IfNoneMatch(entityTag string) *InstanceTemplatesGetCall { - c.ifNoneMatch_ = entityTag - return c -} - // Context sets the context to be used in this call's Do method. -func (c *InstanceTemplatesGetCall) Context(ctx context.Context) *InstanceTemplatesGetCall { +func (c *InstanceGroupManagersListManagedInstancesCall) Context(ctx context.Context) *InstanceGroupManagersListManagedInstancesCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *InstanceTemplatesGetCall) Header() http.Header { +func (c *InstanceGroupManagersListManagedInstancesCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *InstanceTemplatesGetCall) doRequest(alt string) (*http.Response, error) { +func (c *InstanceGroupManagersListManagedInstancesCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) - if c.ifNoneMatch_ != "" { - reqHeaders.Set("If-None-Match", c.ifNoneMatch_) - } - var body io.Reader = nil c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/instanceTemplates/{instanceTemplate}") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/listManagedInstances") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("GET", urls, body) + req, err := http.NewRequest("POST", urls, nil) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "instanceTemplate": c.instanceTemplate, + "project": c.project, + "zone": c.zone, + "instanceGroupManager": c.instanceGroupManager, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.instanceGroupManagers.listManagedInstances", "request", internallog.HTTPRequest(req, nil)) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.instanceTemplates.get" call. +// Do executes the "compute.instanceGroupManagers.listManagedInstances" call. // Any non-2xx status code is an error. Response headers are in either -// *InstanceTemplate.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 *InstanceTemplatesGetCall) Do(opts ...googleapi.CallOption) (*InstanceTemplate, error) { +// *InstanceGroupManagersListManagedInstancesResponse.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 *InstanceGroupManagersListManagedInstancesCall) Do(opts ...googleapi.CallOption) (*InstanceGroupManagersListManagedInstancesResponse, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -28522,107 +33377,249 @@ func (c *InstanceTemplatesGetCall) Do(opts ...googleapi.CallOption) (*InstanceTe if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } - ret := &InstanceTemplate{ + ret := &InstanceGroupManagersListManagedInstancesResponse{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.instanceGroupManagers.listManagedInstances", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type InstanceTemplatesGetIamPolicyCall struct { - s *Service - project string - resource string - urlParams_ gensupport.URLParams - ifNoneMatch_ string - ctx_ context.Context - header_ http.Header -} - -// GetIamPolicy: Gets the access control policy for a resource. May be empty if -// no such policy or resource exists. -// -// - project: Project ID for this request. -// - resource: Name or id of the resource for this request. -func (r *InstanceTemplatesService) GetIamPolicy(project string, resource string) *InstanceTemplatesGetIamPolicyCall { - c := &InstanceTemplatesGetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)} - c.project = project - c.resource = resource - return c +// 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 *InstanceGroupManagersListManagedInstancesCall) Pages(ctx context.Context, f func(*InstanceGroupManagersListManagedInstancesResponse) error) error { + c.ctx_ = ctx + defer c.PageToken(c.urlParams_.Get("pageToken")) + 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) + } } -// OptionsRequestedPolicyVersion sets the optional parameter -// "optionsRequestedPolicyVersion": Requested IAM Policy version. -func (c *InstanceTemplatesGetIamPolicyCall) OptionsRequestedPolicyVersion(optionsRequestedPolicyVersion int64) *InstanceTemplatesGetIamPolicyCall { - c.urlParams_.Set("optionsRequestedPolicyVersion", fmt.Sprint(optionsRequestedPolicyVersion)) +type InstanceGroupManagersListPerInstanceConfigsCall struct { + s *Service + project string + zone string + instanceGroupManager string + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header +} + +// ListPerInstanceConfigs: Lists all of the per-instance configurations defined +// for the managed +// instance group. The orderBy query parameter is not supported. +// +// - instanceGroupManager: The name of the managed instance group. It should +// conform to RFC1035. +// - project: Project ID for this request. +// - zone: The name of thezone +// where the managed instance group is located. +// +// It should conform to RFC1035. +func (r *InstanceGroupManagersService) ListPerInstanceConfigs(project string, zone string, instanceGroupManager string) *InstanceGroupManagersListPerInstanceConfigsCall { + c := &InstanceGroupManagersListPerInstanceConfigsCall{s: r.s, urlParams_: make(gensupport.URLParams)} + c.project = project + c.zone = zone + c.instanceGroupManager = instanceGroupManager + return c +} + +// Filter sets the optional parameter "filter": A filter expression that +// filters resources listed in the response. Most +// Compute resources support two types of filter expressions: +// expressions that support regular expressions and expressions that follow +// API improvement proposal AIP-160. +// These two types of filter expressions cannot be mixed in one request. +// +// If you want to use AIP-160, your expression must specify the field name, +// an +// operator, and the value that you want to use for filtering. The value +// must be a string, a number, or a boolean. The 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`. +// +// The `:*` comparison can be used to test whether a key has been defined. +// For example, to find all objects with `owner` label +// use: +// ``` +// labels.owner:* +// ``` +// +// 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 onresource 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) +// ``` +// +// If you want to use a regular expression, use the `eq` (equal) or `ne` +// (not equal) operator against a single un-parenthesized expression with +// or +// without quotes or against multiple parenthesized expressions. +// Examples: +// +// `fieldname eq unquoted literal` +// `fieldname eq 'single quoted literal'` +// `fieldname eq "double quoted literal" +// `(fieldname1 eq literal) (fieldname2 ne "literal")` +// +// The literal value is interpreted as a regular expression using GoogleRE2 +// library syntax. +// The literal value must match the entire field. +// +// For example, to filter for instances that do not end with name +// "instance", +// you would use `name ne .*instance`. +// +// You cannot combine constraints on multiple fields using regular +// expressions. +func (c *InstanceGroupManagersListPerInstanceConfigsCall) Filter(filter string) *InstanceGroupManagersListPerInstanceConfigsCall { + 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 *InstanceGroupManagersListPerInstanceConfigsCall) MaxResults(maxResults int64) *InstanceGroupManagersListPerInstanceConfigsCall { + 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 *InstanceGroupManagersListPerInstanceConfigsCall) OrderBy(orderBy string) *InstanceGroupManagersListPerInstanceConfigsCall { + 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 *InstanceGroupManagersListPerInstanceConfigsCall) PageToken(pageToken string) *InstanceGroupManagersListPerInstanceConfigsCall { + c.urlParams_.Set("pageToken", pageToken) + return c +} + +// ReturnPartialSuccess sets the optional parameter "returnPartialSuccess": +// Opt-in for partial success behavior which provides partial results in +// case +// of failure. The default value is false. +// +// For example, when partial success behavior is enabled, aggregatedList for +// a +// single zone scope either returns all resources in the zone or no +// resources, +// with an error code. +func (c *InstanceGroupManagersListPerInstanceConfigsCall) ReturnPartialSuccess(returnPartialSuccess bool) *InstanceGroupManagersListPerInstanceConfigsCall { + c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess)) return c } // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *InstanceTemplatesGetIamPolicyCall) Fields(s ...googleapi.Field) *InstanceTemplatesGetIamPolicyCall { +func (c *InstanceGroupManagersListPerInstanceConfigsCall) Fields(s ...googleapi.Field) *InstanceGroupManagersListPerInstanceConfigsCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } -// IfNoneMatch sets an 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. -func (c *InstanceTemplatesGetIamPolicyCall) IfNoneMatch(entityTag string) *InstanceTemplatesGetIamPolicyCall { - c.ifNoneMatch_ = entityTag - return c -} - // Context sets the context to be used in this call's Do method. -func (c *InstanceTemplatesGetIamPolicyCall) Context(ctx context.Context) *InstanceTemplatesGetIamPolicyCall { +func (c *InstanceGroupManagersListPerInstanceConfigsCall) Context(ctx context.Context) *InstanceGroupManagersListPerInstanceConfigsCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *InstanceTemplatesGetIamPolicyCall) Header() http.Header { +func (c *InstanceGroupManagersListPerInstanceConfigsCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *InstanceTemplatesGetIamPolicyCall) doRequest(alt string) (*http.Response, error) { +func (c *InstanceGroupManagersListPerInstanceConfigsCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) - if c.ifNoneMatch_ != "" { - reqHeaders.Set("If-None-Match", c.ifNoneMatch_) - } - var body io.Reader = nil c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/instanceTemplates/{resource}/getIamPolicy") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/listPerInstanceConfigs") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("GET", urls, body) + req, err := http.NewRequest("POST", urls, nil) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "resource": c.resource, + "project": c.project, + "zone": c.zone, + "instanceGroupManager": c.instanceGroupManager, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.instanceGroupManagers.listPerInstanceConfigs", "request", internallog.HTTPRequest(req, nil)) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.instanceTemplates.getIamPolicy" call. +// Do executes the "compute.instanceGroupManagers.listPerInstanceConfigs" call. // Any non-2xx status code is an error. Response headers are in either -// *Policy.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 *InstanceTemplatesGetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, error) { +// *InstanceGroupManagersListPerInstanceConfigsResp.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 *InstanceGroupManagersListPerInstanceConfigsCall) Do(opts ...googleapi.CallOption) (*InstanceGroupManagersListPerInstanceConfigsResp, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -28641,53 +33638,105 @@ func (c *InstanceTemplatesGetIamPolicyCall) Do(opts ...googleapi.CallOption) (*P if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } - ret := &Policy{ + ret := &InstanceGroupManagersListPerInstanceConfigsResp{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.instanceGroupManagers.listPerInstanceConfigs", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type InstanceTemplatesInsertCall struct { - s *Service - project string - instancetemplate *InstanceTemplate - urlParams_ gensupport.URLParams - ctx_ context.Context - header_ http.Header +// 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 *InstanceGroupManagersListPerInstanceConfigsCall) Pages(ctx context.Context, f func(*InstanceGroupManagersListPerInstanceConfigsResp) error) error { + c.ctx_ = ctx + defer c.PageToken(c.urlParams_.Get("pageToken")) + 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) + } } -// Insert: Creates an instance template in the specified project using the data -// that is included in the request. If you are creating a new template to -// update an existing instance group, your new instance template must use the -// same network or, if applicable, the same subnetwork as the original -// template. +type InstanceGroupManagersPatchCall struct { + s *Service + project string + zone string + instanceGroupManager string + instancegroupmanager *InstanceGroupManager + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header +} + +// Patch: Updates a managed instance group using the information that you +// specify +// in the request. +// This operation is marked as DONE when the group is patched +// even if the instances in the group are still in the process of +// being +// patched. You must separately verify the status of the individual +// instances +// with thelistManagedInstances +// method. This method supportsPATCH +// semantics and uses theJSON merge +// patch format and processing rules. // -// - project: Project ID for this request. -func (r *InstanceTemplatesService) Insert(project string, instancetemplate *InstanceTemplate) *InstanceTemplatesInsertCall { - c := &InstanceTemplatesInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)} +// If you update your group to specify a new template or +// instance +// configuration, it's possible that your intended specification for each VM +// in the group is different from the current state of that VM. To learn how +// to apply an updated configuration to the VMs in a MIG, seeUpdating instances +// in +// a MIG. +// +// - instanceGroupManager: The name of the instance group manager. +// - project: Project ID for this request. +// - zone: The name of the zone where +// you want to create the managed instance group. +func (r *InstanceGroupManagersService) Patch(project string, zone string, instanceGroupManager string, instancegroupmanager *InstanceGroupManager) *InstanceGroupManagersPatchCall { + c := &InstanceGroupManagersPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project - c.instancetemplate = instancetemplate + c.zone = zone + c.instanceGroupManager = instanceGroupManager + c.instancegroupmanager = instancegroupmanager 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 *InstanceTemplatesInsertCall) RequestId(requestId string) *InstanceTemplatesInsertCall { +// 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 *InstanceGroupManagersPatchCall) RequestId(requestId string) *InstanceGroupManagersPatchCall { c.urlParams_.Set("requestId", requestId) return c } @@ -28695,54 +33744,56 @@ func (c *InstanceTemplatesInsertCall) RequestId(requestId string) *InstanceTempl // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *InstanceTemplatesInsertCall) Fields(s ...googleapi.Field) *InstanceTemplatesInsertCall { +func (c *InstanceGroupManagersPatchCall) Fields(s ...googleapi.Field) *InstanceGroupManagersPatchCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } // Context sets the context to be used in this call's Do method. -func (c *InstanceTemplatesInsertCall) Context(ctx context.Context) *InstanceTemplatesInsertCall { +func (c *InstanceGroupManagersPatchCall) Context(ctx context.Context) *InstanceGroupManagersPatchCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *InstanceTemplatesInsertCall) Header() http.Header { +func (c *InstanceGroupManagersPatchCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *InstanceTemplatesInsertCall) doRequest(alt string) (*http.Response, error) { +func (c *InstanceGroupManagersPatchCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) - var body io.Reader = nil - body, err := googleapi.WithoutDataWrapper.JSONReader(c.instancetemplate) + body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.instancegroupmanager) if err != nil { return nil, err } c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/instanceTemplates") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("POST", urls, body) + req, err := http.NewRequest("PATCH", urls, body) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, + "project": c.project, + "zone": c.zone, + "instanceGroupManager": c.instanceGroupManager, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.instanceGroupManagers.patch", "request", internallog.HTTPRequest(req, body.Bytes())) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.instanceTemplates.insert" call. +// Do executes the "compute.instanceGroupManagers.patch" call. // 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 *InstanceTemplatesInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) { +func (c *InstanceGroupManagersPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -28768,168 +33819,121 @@ func (c *InstanceTemplatesInsertCall) Do(opts ...googleapi.CallOption) (*Operati }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.instanceGroupManagers.patch", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type InstanceTemplatesListCall struct { - s *Service - project string - urlParams_ gensupport.URLParams - ifNoneMatch_ string - ctx_ context.Context - header_ http.Header +type InstanceGroupManagersPatchPerInstanceConfigsCall struct { + s *Service + project string + zone string + instanceGroupManager string + instancegroupmanagerspatchperinstanceconfigsreq *InstanceGroupManagersPatchPerInstanceConfigsReq + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header } -// List: Retrieves a list of instance templates that are contained within the -// specified project. +// PatchPerInstanceConfigs: Inserts or patches per-instance configurations for +// the managed instance +// group. perInstanceConfig.name serves as a key used to +// distinguish whether to perform insert or patch. // -// - project: Project ID for this request. -func (r *InstanceTemplatesService) List(project string) *InstanceTemplatesListCall { - c := &InstanceTemplatesListCall{s: r.s, urlParams_: make(gensupport.URLParams)} +// - instanceGroupManager: The name of the managed instance group. +// It should conform to RFC1035. +// - project: Project ID for this request. +// - zone: The name of thezone +// where the managed instance group is located. +// +// It should conform to RFC1035. +func (r *InstanceGroupManagersService) PatchPerInstanceConfigs(project string, zone string, instanceGroupManager string, instancegroupmanagerspatchperinstanceconfigsreq *InstanceGroupManagersPatchPerInstanceConfigsReq) *InstanceGroupManagersPatchPerInstanceConfigsCall { + c := &InstanceGroupManagersPatchPerInstanceConfigsCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project + c.zone = zone + c.instanceGroupManager = instanceGroupManager + c.instancegroupmanagerspatchperinstanceconfigsreq = instancegroupmanagerspatchperinstanceconfigsreq return c } -// Filter sets the optional parameter "filter": A filter expression that -// filters resources listed in the response. Most Compute resources support two -// types of filter expressions: expressions that support regular expressions -// and expressions that follow API improvement proposal AIP-160. These two -// types of filter expressions cannot be mixed in one request. If you want to -// use AIP-160, your expression must specify the field name, an operator, and -// the value that you want to use for filtering. The value must be a string, a -// number, or a boolean. The 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`. The `:*` comparison can be used to test whether a key has -// been defined. For example, to find all objects with `owner` label use: ``` -// labels.owner:* ``` 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) ``` If you want to use a regular -// expression, use the `eq` (equal) or `ne` (not equal) operator against a -// single un-parenthesized expression with or without quotes or against -// multiple parenthesized expressions. Examples: `fieldname eq unquoted -// literal` `fieldname eq 'single quoted literal'` `fieldname eq "double quoted -// literal" `(fieldname1 eq literal) (fieldname2 ne "literal")` The literal -// value is interpreted as a regular expression using Google RE2 library -// syntax. The literal value must match the entire field. For example, to -// filter for instances that do not end with name "instance", you would use -// `name ne .*instance`. You cannot combine constraints on multiple fields -// using regular expressions. -func (c *InstanceTemplatesListCall) Filter(filter string) *InstanceTemplatesListCall { - 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 *InstanceTemplatesListCall) MaxResults(maxResults int64) *InstanceTemplatesListCall { - 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 *InstanceTemplatesListCall) OrderBy(orderBy string) *InstanceTemplatesListCall { - 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 *InstanceTemplatesListCall) PageToken(pageToken string) *InstanceTemplatesListCall { - c.urlParams_.Set("pageToken", pageToken) - return c -} - -// ReturnPartialSuccess sets the optional parameter "returnPartialSuccess": -// Opt-in for partial success behavior which provides partial results in case -// of failure. The default value is false. For example, when partial success -// behavior is enabled, aggregatedList for a single zone scope either returns -// all resources in the zone or no resources, with an error code. -func (c *InstanceTemplatesListCall) ReturnPartialSuccess(returnPartialSuccess bool) *InstanceTemplatesListCall { - c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess)) +// 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 *InstanceGroupManagersPatchPerInstanceConfigsCall) RequestId(requestId string) *InstanceGroupManagersPatchPerInstanceConfigsCall { + 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 // details. -func (c *InstanceTemplatesListCall) Fields(s ...googleapi.Field) *InstanceTemplatesListCall { +func (c *InstanceGroupManagersPatchPerInstanceConfigsCall) Fields(s ...googleapi.Field) *InstanceGroupManagersPatchPerInstanceConfigsCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } -// IfNoneMatch sets an 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. -func (c *InstanceTemplatesListCall) IfNoneMatch(entityTag string) *InstanceTemplatesListCall { - c.ifNoneMatch_ = entityTag - return c -} - // Context sets the context to be used in this call's Do method. -func (c *InstanceTemplatesListCall) Context(ctx context.Context) *InstanceTemplatesListCall { +func (c *InstanceGroupManagersPatchPerInstanceConfigsCall) Context(ctx context.Context) *InstanceGroupManagersPatchPerInstanceConfigsCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *InstanceTemplatesListCall) Header() http.Header { +func (c *InstanceGroupManagersPatchPerInstanceConfigsCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *InstanceTemplatesListCall) doRequest(alt string) (*http.Response, error) { - reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) - if c.ifNoneMatch_ != "" { - reqHeaders.Set("If-None-Match", c.ifNoneMatch_) +func (c *InstanceGroupManagersPatchPerInstanceConfigsCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) + body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.instancegroupmanagerspatchperinstanceconfigsreq) + if err != nil { + return nil, err } - var body io.Reader = nil c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/instanceTemplates") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/patchPerInstanceConfigs") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("GET", urls, body) + req, err := http.NewRequest("POST", urls, body) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, + "project": c.project, + "zone": c.zone, + "instanceGroupManager": c.instanceGroupManager, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.instanceGroupManagers.patchPerInstanceConfigs", "request", internallog.HTTPRequest(req, body.Bytes())) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.instanceTemplates.list" call. +// Do executes the "compute.instanceGroupManagers.patchPerInstanceConfigs" call. // Any non-2xx status code is an error. Response headers are in either -// *InstanceTemplateList.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 *InstanceTemplatesListCall) Do(opts ...googleapi.CallOption) (*InstanceTemplateList, error) { +// *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 *InstanceGroupManagersPatchPerInstanceConfigsCall) Do(opts ...googleapi.CallOption) (*Operation, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -28948,96 +33952,128 @@ func (c *InstanceTemplatesListCall) Do(opts ...googleapi.CallOption) (*InstanceT if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } - ret := &InstanceTemplateList{ + ret := &Operation{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.instanceGroupManagers.patchPerInstanceConfigs", "response", internallog.HTTPResponse(res, b)) return ret, nil } -// 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 *InstanceTemplatesListCall) Pages(ctx context.Context, f func(*InstanceTemplateList) error) error { - c.ctx_ = ctx - defer c.PageToken(c.urlParams_.Get("pageToken")) - 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) - } -} - -type InstanceTemplatesSetIamPolicyCall struct { - s *Service - project string - resource string - globalsetpolicyrequest *GlobalSetPolicyRequest - urlParams_ gensupport.URLParams - ctx_ context.Context - header_ http.Header +type InstanceGroupManagersRecreateInstancesCall struct { + s *Service + project string + zone string + instanceGroupManager string + instancegroupmanagersrecreateinstancesrequest *InstanceGroupManagersRecreateInstancesRequest + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header } -// SetIamPolicy: Sets the access control policy on the specified resource. -// Replaces any existing policy. +// RecreateInstances: Flags the specified VM instances in the managed instance +// group to be +// immediately recreated. Each instance is recreated using the group's +// current +// configuration. This operation is marked as DONE when the flag +// is set even if the instances have not yet been recreated. You +// must +// separately verify the status of each instance by checking itscurrentAction +// field; for more information, see Checking +// the status of managed instances. +// +// If the group is part of a backend +// service that has enabled +// connection draining, it can take up to 60 seconds after the +// connection +// draining duration has elapsed before the VM instance is removed or +// deleted. // +// You can specify a maximum of 1000 instances with this method per request. +// +// - instanceGroupManager: The name of the managed instance group. // - project: Project ID for this request. -// - resource: Name or id of the resource for this request. -func (r *InstanceTemplatesService) SetIamPolicy(project string, resource string, globalsetpolicyrequest *GlobalSetPolicyRequest) *InstanceTemplatesSetIamPolicyCall { - c := &InstanceTemplatesSetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)} +// - zone: The name of thezone where the managed +// instance group is located. +func (r *InstanceGroupManagersService) RecreateInstances(project string, zone string, instanceGroupManager string, instancegroupmanagersrecreateinstancesrequest *InstanceGroupManagersRecreateInstancesRequest) *InstanceGroupManagersRecreateInstancesCall { + c := &InstanceGroupManagersRecreateInstancesCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project - c.resource = resource - c.globalsetpolicyrequest = globalsetpolicyrequest + c.zone = zone + c.instanceGroupManager = instanceGroupManager + c.instancegroupmanagersrecreateinstancesrequest = instancegroupmanagersrecreateinstancesrequest + return c +} + +// NoGracefulShutdown sets the optional parameter "noGracefulShutdown": When +// set, graceful shutdown is skipped for instance recreation even if +// it's +// configured for the instances. +func (c *InstanceGroupManagersRecreateInstancesCall) NoGracefulShutdown(noGracefulShutdown bool) *InstanceGroupManagersRecreateInstancesCall { + c.urlParams_.Set("noGracefulShutdown", fmt.Sprint(noGracefulShutdown)) + 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 *InstanceGroupManagersRecreateInstancesCall) RequestId(requestId string) *InstanceGroupManagersRecreateInstancesCall { + 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 // details. -func (c *InstanceTemplatesSetIamPolicyCall) Fields(s ...googleapi.Field) *InstanceTemplatesSetIamPolicyCall { +func (c *InstanceGroupManagersRecreateInstancesCall) Fields(s ...googleapi.Field) *InstanceGroupManagersRecreateInstancesCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } // Context sets the context to be used in this call's Do method. -func (c *InstanceTemplatesSetIamPolicyCall) Context(ctx context.Context) *InstanceTemplatesSetIamPolicyCall { +func (c *InstanceGroupManagersRecreateInstancesCall) Context(ctx context.Context) *InstanceGroupManagersRecreateInstancesCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *InstanceTemplatesSetIamPolicyCall) Header() http.Header { +func (c *InstanceGroupManagersRecreateInstancesCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *InstanceTemplatesSetIamPolicyCall) doRequest(alt string) (*http.Response, error) { +func (c *InstanceGroupManagersRecreateInstancesCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) - var body io.Reader = nil - body, err := googleapi.WithoutDataWrapper.JSONReader(c.globalsetpolicyrequest) + body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.instancegroupmanagersrecreateinstancesrequest) if err != nil { return nil, err } c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/instanceTemplates/{resource}/setIamPolicy") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/recreateInstances") urls += "?" + c.urlParams_.Encode() req, err := http.NewRequest("POST", urls, body) if err != nil { @@ -29045,18 +34081,20 @@ func (c *InstanceTemplatesSetIamPolicyCall) doRequest(alt string) (*http.Respons } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "resource": c.resource, + "project": c.project, + "zone": c.zone, + "instanceGroupManager": c.instanceGroupManager, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.instanceGroupManagers.recreateInstances", "request", internallog.HTTPRequest(req, body.Bytes())) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.instanceTemplates.setIamPolicy" call. +// Do executes the "compute.instanceGroupManagers.recreateInstances" call. // Any non-2xx status code is an error. Response headers are in either -// *Policy.ServerResponse.Header or (if a response was returned at all) in +// *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 *InstanceTemplatesSetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, error) { +func (c *InstanceGroupManagersRecreateInstancesCall) Do(opts ...googleapi.CallOption) (*Operation, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -29075,95 +34113,152 @@ func (c *InstanceTemplatesSetIamPolicyCall) Do(opts ...googleapi.CallOption) (*P if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } - ret := &Policy{ + ret := &Operation{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.instanceGroupManagers.recreateInstances", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type InstanceTemplatesTestIamPermissionsCall struct { - s *Service - project string - resource string - testpermissionsrequest *TestPermissionsRequest - urlParams_ gensupport.URLParams - ctx_ context.Context - header_ http.Header +type InstanceGroupManagersResizeCall struct { + s *Service + project string + zone string + instanceGroupManager string + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header } -// TestIamPermissions: Returns permissions that a caller has on the specified -// resource. +// Resize: Resizes the managed instance group. If you increase the size, the +// group +// creates new instances using the current instance template. If you +// decrease +// the size, the group deletes instances. The resize operation is markedDONE +// when the resize actions are scheduled even if the group +// has not yet added or deleted any instances. You must separately +// verify the status of the creating or deleting +// actions with thelistmanagedinstances +// method. // -// - project: Project ID for this request. -// - resource: Name or id of the resource for this request. -func (r *InstanceTemplatesService) TestIamPermissions(project string, resource string, testpermissionsrequest *TestPermissionsRequest) *InstanceTemplatesTestIamPermissionsCall { - c := &InstanceTemplatesTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)} +// When resizing down, the instance group arbitrarily chooses the order +// in +// which VMs are deleted. The group takes into account some VM attributes +// when +// making the selection including: +// +// + The status of the VM instance. +// + The health of the VM instance. +// + The instance template version the VM is based on. +// + For regional managed instance groups, the location of the VM +// instance. +// +// This list is subject to change. +// +// If the group is part of a backend +// service that has enabled +// connection draining, it can take up to 60 seconds after the +// connection +// draining duration has elapsed before the VM instance is removed or deleted. +// +// - instanceGroupManager: The name of the managed instance group. +// - project: Project ID for this request. +// - size: The number of running instances that the managed instance group +// should +// maintain at any given time. The group automatically adds or +// removes +// instances to maintain the number of instances specified by this parameter. +// - zone: The name of thezone where the managed +// +// instance group is located. +func (r *InstanceGroupManagersService) Resize(project string, zone string, instanceGroupManager string, size int64) *InstanceGroupManagersResizeCall { + c := &InstanceGroupManagersResizeCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project - c.resource = resource - c.testpermissionsrequest = testpermissionsrequest + c.zone = zone + c.instanceGroupManager = instanceGroupManager + c.urlParams_.Set("size", fmt.Sprint(size)) + 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 *InstanceGroupManagersResizeCall) RequestId(requestId string) *InstanceGroupManagersResizeCall { + 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 // details. -func (c *InstanceTemplatesTestIamPermissionsCall) Fields(s ...googleapi.Field) *InstanceTemplatesTestIamPermissionsCall { +func (c *InstanceGroupManagersResizeCall) Fields(s ...googleapi.Field) *InstanceGroupManagersResizeCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } // Context sets the context to be used in this call's Do method. -func (c *InstanceTemplatesTestIamPermissionsCall) Context(ctx context.Context) *InstanceTemplatesTestIamPermissionsCall { +func (c *InstanceGroupManagersResizeCall) Context(ctx context.Context) *InstanceGroupManagersResizeCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *InstanceTemplatesTestIamPermissionsCall) Header() http.Header { +func (c *InstanceGroupManagersResizeCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *InstanceTemplatesTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) { - reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) - var body io.Reader = nil - body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest) - if err != nil { - return nil, err - } +func (c *InstanceGroupManagersResizeCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/instanceTemplates/{resource}/testIamPermissions") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/resize") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("POST", urls, body) + req, err := http.NewRequest("POST", urls, nil) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "resource": c.resource, + "project": c.project, + "zone": c.zone, + "instanceGroupManager": c.instanceGroupManager, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.instanceGroupManagers.resize", "request", internallog.HTTPRequest(req, nil)) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.instanceTemplates.testIamPermissions" call. +// Do executes the "compute.instanceGroupManagers.resize" call. // Any non-2xx status code is an error. Response headers are in either -// *TestPermissionsResponse.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 *InstanceTemplatesTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) { +// *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 *InstanceGroupManagersResizeCall) Do(opts ...googleapi.CallOption) (*Operation, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -29182,58 +34277,87 @@ func (c *InstanceTemplatesTestIamPermissionsCall) Do(opts ...googleapi.CallOptio if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } - ret := &TestPermissionsResponse{ + ret := &Operation{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.instanceGroupManagers.resize", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type InstancesAddAccessConfigCall struct { - s *Service - project string - zone string - instance string - accessconfig *AccessConfig - urlParams_ gensupport.URLParams - ctx_ context.Context - header_ http.Header +type InstanceGroupManagersResumeInstancesCall struct { + s *Service + project string + zone string + instanceGroupManager string + instancegroupmanagersresumeinstancesrequest *InstanceGroupManagersResumeInstancesRequest + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header } -// AddAccessConfig: Adds an access config to an instance's network interface. +// ResumeInstances: Flags the specified instances in the managed instance group +// to be +// resumed. This method increases thetargetSize and decreases the +// targetSuspendedSize +// of the managed instance group by the number of instances that you +// resume. +// The resumeInstances operation is marked DONE if +// the resumeInstances request is successful. The underlying +// actions take additional time. You must separately verify the status of +// theRESUMING action with thelistmanagedinstances +// method. // -// - instance: The instance name for this request. -// - networkInterface: The name of the network interface to add to this -// instance. -// - project: Project ID for this request. -// - zone: The name of the zone for this request. -func (r *InstancesService) AddAccessConfig(project string, zone string, instance string, networkInterface string, accessconfig *AccessConfig) *InstancesAddAccessConfigCall { - c := &InstancesAddAccessConfigCall{s: r.s, urlParams_: make(gensupport.URLParams)} - c.project = project - c.zone = zone - c.instance = instance - c.urlParams_.Set("networkInterface", networkInterface) - c.accessconfig = accessconfig +// In this request, you can only specify instances that are suspended. +// For +// example, if an instance was previously suspended using the +// suspendInstances +// method, it can be resumed using the resumeInstances method. +// +// If a health check is attached to the managed instance group, the +// specified +// instances will be verified as healthy after they are resumed. +// +// You can specify a maximum of 1000 instances with this method per request. +// +// - instanceGroupManager: The name of the managed instance group. +// - project: Project ID for this request. +// - zone: The name of thezone where the managed +// instance group is located. +func (r *InstanceGroupManagersService) ResumeInstances(project string, zone string, instanceGroupManager string, instancegroupmanagersresumeinstancesrequest *InstanceGroupManagersResumeInstancesRequest) *InstanceGroupManagersResumeInstancesCall { + c := &InstanceGroupManagersResumeInstancesCall{s: r.s, urlParams_: make(gensupport.URLParams)} + c.project = project + c.zone = zone + c.instanceGroupManager = instanceGroupManager + c.instancegroupmanagersresumeinstancesrequest = instancegroupmanagersresumeinstancesrequest 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 *InstancesAddAccessConfigCall) RequestId(requestId string) *InstancesAddAccessConfigCall { +// 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 *InstanceGroupManagersResumeInstancesCall) RequestId(requestId string) *InstanceGroupManagersResumeInstancesCall { c.urlParams_.Set("requestId", requestId) return c } @@ -29241,36 +34365,35 @@ func (c *InstancesAddAccessConfigCall) RequestId(requestId string) *InstancesAdd // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *InstancesAddAccessConfigCall) Fields(s ...googleapi.Field) *InstancesAddAccessConfigCall { +func (c *InstanceGroupManagersResumeInstancesCall) Fields(s ...googleapi.Field) *InstanceGroupManagersResumeInstancesCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } // Context sets the context to be used in this call's Do method. -func (c *InstancesAddAccessConfigCall) Context(ctx context.Context) *InstancesAddAccessConfigCall { +func (c *InstanceGroupManagersResumeInstancesCall) Context(ctx context.Context) *InstanceGroupManagersResumeInstancesCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *InstancesAddAccessConfigCall) Header() http.Header { +func (c *InstanceGroupManagersResumeInstancesCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *InstancesAddAccessConfigCall) doRequest(alt string) (*http.Response, error) { +func (c *InstanceGroupManagersResumeInstancesCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) - var body io.Reader = nil - body, err := googleapi.WithoutDataWrapper.JSONReader(c.accessconfig) + body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.instancegroupmanagersresumeinstancesrequest) if err != nil { return nil, err } c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instances/{instance}/addAccessConfig") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/resumeInstances") urls += "?" + c.urlParams_.Encode() req, err := http.NewRequest("POST", urls, body) if err != nil { @@ -29278,19 +34401,20 @@ func (c *InstancesAddAccessConfigCall) doRequest(alt string) (*http.Response, er } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "zone": c.zone, - "instance": c.instance, + "project": c.project, + "zone": c.zone, + "instanceGroupManager": c.instanceGroupManager, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.instanceGroupManagers.resumeInstances", "request", internallog.HTTPRequest(req, body.Bytes())) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.instances.addAccessConfig" call. +// Do executes the "compute.instanceGroupManagers.resumeInstances" call. // 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 *InstancesAddAccessConfigCall) Do(opts ...googleapi.CallOption) (*Operation, error) { +func (c *InstanceGroupManagersResumeInstancesCall) Do(opts ...googleapi.CallOption) (*Operation, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -29316,50 +34440,63 @@ func (c *InstancesAddAccessConfigCall) Do(opts ...googleapi.CallOption) (*Operat }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.instanceGroupManagers.resumeInstances", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type InstancesAddResourcePoliciesCall struct { - s *Service - project string - zone string - instance string - instancesaddresourcepoliciesrequest *InstancesAddResourcePoliciesRequest - urlParams_ gensupport.URLParams - ctx_ context.Context - header_ http.Header +type InstanceGroupManagersSetInstanceTemplateCall struct { + s *Service + project string + zone string + instanceGroupManager string + instancegroupmanagerssetinstancetemplaterequest *InstanceGroupManagersSetInstanceTemplateRequest + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header } -// AddResourcePolicies: Adds existing resource policies to an instance. You can -// only add one policy right now which will be applied to this instance for -// scheduling live migrations. +// SetInstanceTemplate: Specifies the instance template to use when creating +// new instances in this +// group. The templates for existing instances in the group do not +// change +// unless you run recreateInstances, runapplyUpdatesToInstances, or set the +// group'supdatePolicy.type to PROACTIVE. // -// - instance: The instance name for this request. +// - instanceGroupManager: The name of the managed instance group. // - project: Project ID for this request. -// - zone: The name of the zone for this request. -func (r *InstancesService) AddResourcePolicies(project string, zone string, instance string, instancesaddresourcepoliciesrequest *InstancesAddResourcePoliciesRequest) *InstancesAddResourcePoliciesCall { - c := &InstancesAddResourcePoliciesCall{s: r.s, urlParams_: make(gensupport.URLParams)} +// - zone: The name of thezone where the managed +// instance group is located. +func (r *InstanceGroupManagersService) SetInstanceTemplate(project string, zone string, instanceGroupManager string, instancegroupmanagerssetinstancetemplaterequest *InstanceGroupManagersSetInstanceTemplateRequest) *InstanceGroupManagersSetInstanceTemplateCall { + c := &InstanceGroupManagersSetInstanceTemplateCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project c.zone = zone - c.instance = instance - c.instancesaddresourcepoliciesrequest = instancesaddresourcepoliciesrequest + c.instanceGroupManager = instanceGroupManager + c.instancegroupmanagerssetinstancetemplaterequest = instancegroupmanagerssetinstancetemplaterequest 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 *InstancesAddResourcePoliciesCall) RequestId(requestId string) *InstancesAddResourcePoliciesCall { +// 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 *InstanceGroupManagersSetInstanceTemplateCall) RequestId(requestId string) *InstanceGroupManagersSetInstanceTemplateCall { c.urlParams_.Set("requestId", requestId) return c } @@ -29367,36 +34504,35 @@ func (c *InstancesAddResourcePoliciesCall) RequestId(requestId string) *Instance // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *InstancesAddResourcePoliciesCall) Fields(s ...googleapi.Field) *InstancesAddResourcePoliciesCall { +func (c *InstanceGroupManagersSetInstanceTemplateCall) Fields(s ...googleapi.Field) *InstanceGroupManagersSetInstanceTemplateCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } // Context sets the context to be used in this call's Do method. -func (c *InstancesAddResourcePoliciesCall) Context(ctx context.Context) *InstancesAddResourcePoliciesCall { +func (c *InstanceGroupManagersSetInstanceTemplateCall) Context(ctx context.Context) *InstanceGroupManagersSetInstanceTemplateCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *InstancesAddResourcePoliciesCall) Header() http.Header { +func (c *InstanceGroupManagersSetInstanceTemplateCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *InstancesAddResourcePoliciesCall) doRequest(alt string) (*http.Response, error) { +func (c *InstanceGroupManagersSetInstanceTemplateCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) - var body io.Reader = nil - body, err := googleapi.WithoutDataWrapper.JSONReader(c.instancesaddresourcepoliciesrequest) + body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.instancegroupmanagerssetinstancetemplaterequest) if err != nil { return nil, err } c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instances/{instance}/addResourcePolicies") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/setInstanceTemplate") urls += "?" + c.urlParams_.Encode() req, err := http.NewRequest("POST", urls, body) if err != nil { @@ -29404,19 +34540,20 @@ func (c *InstancesAddResourcePoliciesCall) doRequest(alt string) (*http.Response } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "zone": c.zone, - "instance": c.instance, + "project": c.project, + "zone": c.zone, + "instanceGroupManager": c.instanceGroupManager, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.instanceGroupManagers.setInstanceTemplate", "request", internallog.HTTPRequest(req, body.Bytes())) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.instances.addResourcePolicies" call. +// Do executes the "compute.instanceGroupManagers.setInstanceTemplate" call. // 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 *InstancesAddResourcePoliciesCall) Do(opts ...googleapi.CallOption) (*Operation, error) { +func (c *InstanceGroupManagersSetInstanceTemplateCall) Do(opts ...googleapi.CallOption) (*Operation, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -29442,192 +34579,125 @@ func (c *InstancesAddResourcePoliciesCall) Do(opts ...googleapi.CallOption) (*Op }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.instanceGroupManagers.setInstanceTemplate", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type InstancesAggregatedListCall struct { - s *Service - project string - urlParams_ gensupport.URLParams - ifNoneMatch_ string - ctx_ context.Context - header_ http.Header +type InstanceGroupManagersSetTargetPoolsCall struct { + s *Service + project string + zone string + instanceGroupManager string + instancegroupmanagerssettargetpoolsrequest *InstanceGroupManagersSetTargetPoolsRequest + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header } -// AggregatedList: Retrieves an aggregated list of all of the instances in your -// project across all regions and zones. The performance of this method -// degrades when a filter is specified on a project that has a very large -// number of instances. To prevent failure, Google recommends that you set the -// `returnPartialSuccess` parameter to `true`. +// SetTargetPools: Modifies the target pools to which all instances in this +// managed instance +// group are assigned. The target pools automatically apply to all of +// the +// instances in the managed instance group. This operation is markedDONE when +// you make the request even if the instances have not +// yet been added to their target pools. The change might take some time +// to +// apply to all of the instances in the group depending on the size of +// the +// group. // +// - instanceGroupManager: The name of the managed instance group. // - project: Project ID for this request. -func (r *InstancesService) AggregatedList(project string) *InstancesAggregatedListCall { - c := &InstancesAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)} +// - zone: The name of thezone where the managed +// instance group is located. +func (r *InstanceGroupManagersService) SetTargetPools(project string, zone string, instanceGroupManager string, instancegroupmanagerssettargetpoolsrequest *InstanceGroupManagersSetTargetPoolsRequest) *InstanceGroupManagersSetTargetPoolsCall { + c := &InstanceGroupManagersSetTargetPoolsCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project + c.zone = zone + c.instanceGroupManager = instanceGroupManager + c.instancegroupmanagerssettargetpoolsrequest = instancegroupmanagerssettargetpoolsrequest return c } -// Filter sets the optional parameter "filter": A filter expression that -// filters resources listed in the response. Most Compute resources support two -// types of filter expressions: expressions that support regular expressions -// and expressions that follow API improvement proposal AIP-160. These two -// types of filter expressions cannot be mixed in one request. If you want to -// use AIP-160, your expression must specify the field name, an operator, and -// the value that you want to use for filtering. The value must be a string, a -// number, or a boolean. The 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`. The `:*` comparison can be used to test whether a key has -// been defined. For example, to find all objects with `owner` label use: ``` -// labels.owner:* ``` 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) ``` If you want to use a regular -// expression, use the `eq` (equal) or `ne` (not equal) operator against a -// single un-parenthesized expression with or without quotes or against -// multiple parenthesized expressions. Examples: `fieldname eq unquoted -// literal` `fieldname eq 'single quoted literal'` `fieldname eq "double quoted -// literal" `(fieldname1 eq literal) (fieldname2 ne "literal")` The literal -// value is interpreted as a regular expression using Google RE2 library -// syntax. The literal value must match the entire field. For example, to -// filter for instances that do not end with name "instance", you would use -// `name ne .*instance`. You cannot combine constraints on multiple fields -// using regular expressions. -func (c *InstancesAggregatedListCall) Filter(filter string) *InstancesAggregatedListCall { - c.urlParams_.Set("filter", filter) - return c -} - -// IncludeAllScopes sets the optional parameter "includeAllScopes": Indicates -// whether every visible scope for each scope type (zone, region, global) -// should be included in the response. For new resource types added after this -// field, the flag has no effect as new resource types will always include -// every visible scope for each scope type in response. For resource types -// which predate this field, if this flag is omitted or false, only scopes of -// the scope types where the resource type is expected to be found will be -// included. -func (c *InstancesAggregatedListCall) IncludeAllScopes(includeAllScopes bool) *InstancesAggregatedListCall { - c.urlParams_.Set("includeAllScopes", fmt.Sprint(includeAllScopes)) - 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 *InstancesAggregatedListCall) MaxResults(maxResults int64) *InstancesAggregatedListCall { - 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 *InstancesAggregatedListCall) OrderBy(orderBy string) *InstancesAggregatedListCall { - 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 *InstancesAggregatedListCall) PageToken(pageToken string) *InstancesAggregatedListCall { - c.urlParams_.Set("pageToken", pageToken) - return c -} - -// ReturnPartialSuccess sets the optional parameter "returnPartialSuccess": -// Opt-in for partial success behavior which provides partial results in case -// of failure. The default value is false. For example, when partial success -// behavior is enabled, aggregatedList for a single zone scope either returns -// all resources in the zone or no resources, with an error code. -func (c *InstancesAggregatedListCall) ReturnPartialSuccess(returnPartialSuccess bool) *InstancesAggregatedListCall { - c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess)) - return c -} - -// ServiceProjectNumber sets the optional parameter "serviceProjectNumber": The -// Shared VPC service project id or service project number for which aggregated -// list request is invoked for subnetworks list-usable api. -func (c *InstancesAggregatedListCall) ServiceProjectNumber(serviceProjectNumber int64) *InstancesAggregatedListCall { - c.urlParams_.Set("serviceProjectNumber", fmt.Sprint(serviceProjectNumber)) +// 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 *InstanceGroupManagersSetTargetPoolsCall) RequestId(requestId string) *InstanceGroupManagersSetTargetPoolsCall { + 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 // details. -func (c *InstancesAggregatedListCall) Fields(s ...googleapi.Field) *InstancesAggregatedListCall { +func (c *InstanceGroupManagersSetTargetPoolsCall) Fields(s ...googleapi.Field) *InstanceGroupManagersSetTargetPoolsCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } -// IfNoneMatch sets an 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. -func (c *InstancesAggregatedListCall) IfNoneMatch(entityTag string) *InstancesAggregatedListCall { - c.ifNoneMatch_ = entityTag - return c -} - // Context sets the context to be used in this call's Do method. -func (c *InstancesAggregatedListCall) Context(ctx context.Context) *InstancesAggregatedListCall { +func (c *InstanceGroupManagersSetTargetPoolsCall) Context(ctx context.Context) *InstanceGroupManagersSetTargetPoolsCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *InstancesAggregatedListCall) Header() http.Header { +func (c *InstanceGroupManagersSetTargetPoolsCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *InstancesAggregatedListCall) doRequest(alt string) (*http.Response, error) { - reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) - if c.ifNoneMatch_ != "" { - reqHeaders.Set("If-None-Match", c.ifNoneMatch_) +func (c *InstanceGroupManagersSetTargetPoolsCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) + body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.instancegroupmanagerssettargetpoolsrequest) + if err != nil { + return nil, err } - var body io.Reader = nil c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/aggregated/instances") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/setTargetPools") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("GET", urls, body) + req, err := http.NewRequest("POST", urls, body) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, + "project": c.project, + "zone": c.zone, + "instanceGroupManager": c.instanceGroupManager, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.instanceGroupManagers.setTargetPools", "request", internallog.HTTPRequest(req, body.Bytes())) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.instances.aggregatedList" call. +// Do executes the "compute.instanceGroupManagers.setTargetPools" call. // Any non-2xx status code is an error. Response headers are in either -// *InstanceAggregatedList.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 *InstancesAggregatedListCall) Do(opts ...googleapi.CallOption) (*InstanceAggregatedList, error) { +// *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 *InstanceGroupManagersSetTargetPoolsCall) Do(opts ...googleapi.CallOption) (*Operation, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -29646,88 +34716,86 @@ func (c *InstancesAggregatedListCall) Do(opts ...googleapi.CallOption) (*Instanc if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } - ret := &InstanceAggregatedList{ + ret := &Operation{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.instanceGroupManagers.setTargetPools", "response", internallog.HTTPResponse(res, b)) return ret, nil } -// 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 *InstancesAggregatedListCall) Pages(ctx context.Context, f func(*InstanceAggregatedList) error) error { - c.ctx_ = ctx - defer c.PageToken(c.urlParams_.Get("pageToken")) - 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) - } -} - -type InstancesAttachDiskCall struct { - s *Service - project string - zone string - instance string - attacheddisk *AttachedDisk - urlParams_ gensupport.URLParams - ctx_ context.Context - header_ http.Header +type InstanceGroupManagersStartInstancesCall struct { + s *Service + project string + zone string + instanceGroupManager string + instancegroupmanagersstartinstancesrequest *InstanceGroupManagersStartInstancesRequest + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header } -// AttachDisk: Attaches an existing Disk resource to an instance. You must -// first create the disk before you can attach it. It is not possible to create -// and attach a disk at the same time. For more information, read Adding a -// persistent disk to your instance. +// StartInstances: Flags the specified instances in the managed instance group +// to be +// started. This method increases thetargetSize and decreases the +// targetStoppedSize +// of the managed instance group by the number of instances that you start. +// The startInstances operation is marked DONE if +// the startInstances request is successful. The underlying +// actions take additional time. You must separately verify the status of +// theSTARTING action with thelistmanagedinstances +// method. // -// - instance: The instance name for this request. +// In this request, you can only specify instances that are stopped. +// For +// example, if an instance was previously stopped using the +// stopInstances +// method, it can be started using the startInstances method. +// +// If a health check is attached to the managed instance group, the +// specified +// instances will be verified as healthy after they are started. +// +// You can specify a maximum of 1000 instances with this method per request. +// +// - instanceGroupManager: The name of the managed instance group. // - project: Project ID for this request. -// - zone: The name of the zone for this request. -func (r *InstancesService) AttachDisk(project string, zone string, instance string, attacheddisk *AttachedDisk) *InstancesAttachDiskCall { - c := &InstancesAttachDiskCall{s: r.s, urlParams_: make(gensupport.URLParams)} +// - zone: The name of thezone where the managed +// instance group is located. +func (r *InstanceGroupManagersService) StartInstances(project string, zone string, instanceGroupManager string, instancegroupmanagersstartinstancesrequest *InstanceGroupManagersStartInstancesRequest) *InstanceGroupManagersStartInstancesCall { + c := &InstanceGroupManagersStartInstancesCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project c.zone = zone - c.instance = instance - c.attacheddisk = attacheddisk - return c -} - -// ForceAttach sets the optional parameter "forceAttach": Whether to force -// attach the regional disk even if it's currently attached to another -// instance. If you try to force attach a zonal disk to an instance, you will -// receive an error. -func (c *InstancesAttachDiskCall) ForceAttach(forceAttach bool) *InstancesAttachDiskCall { - c.urlParams_.Set("forceAttach", fmt.Sprint(forceAttach)) + c.instanceGroupManager = instanceGroupManager + c.instancegroupmanagersstartinstancesrequest = instancegroupmanagersstartinstancesrequest 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 *InstancesAttachDiskCall) RequestId(requestId string) *InstancesAttachDiskCall { +// 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 *InstanceGroupManagersStartInstancesCall) RequestId(requestId string) *InstanceGroupManagersStartInstancesCall { c.urlParams_.Set("requestId", requestId) return c } @@ -29735,36 +34803,35 @@ func (c *InstancesAttachDiskCall) RequestId(requestId string) *InstancesAttachDi // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *InstancesAttachDiskCall) Fields(s ...googleapi.Field) *InstancesAttachDiskCall { +func (c *InstanceGroupManagersStartInstancesCall) Fields(s ...googleapi.Field) *InstanceGroupManagersStartInstancesCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } // Context sets the context to be used in this call's Do method. -func (c *InstancesAttachDiskCall) Context(ctx context.Context) *InstancesAttachDiskCall { +func (c *InstanceGroupManagersStartInstancesCall) Context(ctx context.Context) *InstanceGroupManagersStartInstancesCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *InstancesAttachDiskCall) Header() http.Header { +func (c *InstanceGroupManagersStartInstancesCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *InstancesAttachDiskCall) doRequest(alt string) (*http.Response, error) { +func (c *InstanceGroupManagersStartInstancesCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) - var body io.Reader = nil - body, err := googleapi.WithoutDataWrapper.JSONReader(c.attacheddisk) + body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.instancegroupmanagersstartinstancesrequest) if err != nil { return nil, err } c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instances/{instance}/attachDisk") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/startInstances") urls += "?" + c.urlParams_.Encode() req, err := http.NewRequest("POST", urls, body) if err != nil { @@ -29772,19 +34839,20 @@ func (c *InstancesAttachDiskCall) doRequest(alt string) (*http.Response, error) } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "zone": c.zone, - "instance": c.instance, + "project": c.project, + "zone": c.zone, + "instanceGroupManager": c.instanceGroupManager, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.instanceGroupManagers.startInstances", "request", internallog.HTTPRequest(req, body.Bytes())) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.instances.attachDisk" call. +// Do executes the "compute.instanceGroupManagers.startInstances" call. // 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 *InstancesAttachDiskCall) Do(opts ...googleapi.CallOption) (*Operation, error) { +func (c *InstanceGroupManagersStartInstancesCall) Do(opts ...googleapi.CallOption) (*Operation, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -29810,46 +34878,97 @@ func (c *InstancesAttachDiskCall) Do(opts ...googleapi.CallOption) (*Operation, }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.instanceGroupManagers.startInstances", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type InstancesBulkInsertCall struct { - s *Service - project string - zone string - bulkinsertinstanceresource *BulkInsertInstanceResource - urlParams_ gensupport.URLParams - ctx_ context.Context - header_ http.Header +type InstanceGroupManagersStopInstancesCall struct { + s *Service + project string + zone string + instanceGroupManager string + instancegroupmanagersstopinstancesrequest *InstanceGroupManagersStopInstancesRequest + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header } -// BulkInsert: Creates multiple instances. Count specifies the number of -// instances to create. For more information, see About bulk creation of VMs. +// StopInstances: Flags the specified instances in the managed instance group +// to be +// immediately stopped. You can only specify instances that are running in +// this request. This method reduces thetargetSize and increases the +// targetStoppedSize +// of the managed instance group by the number of instances that you stop. +// The stopInstances operation is marked DONE if +// the stopInstances request is successful. The underlying +// actions take additional time. You must separately verify the status of +// theSTOPPING action with thelistmanagedinstances +// method. +// +// If the standbyPolicy.initialDelaySec field is set, the group +// delays stopping the instances until initialDelaySec have +// passed from instance.creationTimestamp (that is, when the +// instance was created). This delay gives your application time to +// set itself up and initialize on the instance. If more thaninitialDelaySec +// seconds have passed sinceinstance.creationTimestamp when this method is +// called, there +// will be zero delay. +// +// If the group is part of a backend +// service that has enabled +// connection draining, it can take up to 60 seconds after the +// connection +// draining duration has elapsed before the VM instance is stopped. +// +// Stopped instances can be started using the startInstances +// method. +// +// You can specify a maximum of 1000 instances with this method per request. // +// - instanceGroupManager: The name of the managed instance group. // - project: Project ID for this request. -// - zone: The name of the zone for this request. -func (r *InstancesService) BulkInsert(project string, zone string, bulkinsertinstanceresource *BulkInsertInstanceResource) *InstancesBulkInsertCall { - c := &InstancesBulkInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)} +// - zone: The name of thezone where the managed +// instance group is located. +func (r *InstanceGroupManagersService) StopInstances(project string, zone string, instanceGroupManager string, instancegroupmanagersstopinstancesrequest *InstanceGroupManagersStopInstancesRequest) *InstanceGroupManagersStopInstancesCall { + c := &InstanceGroupManagersStopInstancesCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project c.zone = zone - c.bulkinsertinstanceresource = bulkinsertinstanceresource + c.instanceGroupManager = instanceGroupManager + c.instancegroupmanagersstopinstancesrequest = instancegroupmanagersstopinstancesrequest + return c +} + +// NoGracefulShutdown sets the optional parameter "noGracefulShutdown": When +// set, graceful shutdown is skipped for instance stopping even if +// it's +// configured for the instances. +func (c *InstanceGroupManagersStopInstancesCall) NoGracefulShutdown(noGracefulShutdown bool) *InstanceGroupManagersStopInstancesCall { + c.urlParams_.Set("noGracefulShutdown", fmt.Sprint(noGracefulShutdown)) 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 *InstancesBulkInsertCall) RequestId(requestId string) *InstancesBulkInsertCall { +// 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 *InstanceGroupManagersStopInstancesCall) RequestId(requestId string) *InstanceGroupManagersStopInstancesCall { c.urlParams_.Set("requestId", requestId) return c } @@ -29857,36 +34976,35 @@ func (c *InstancesBulkInsertCall) RequestId(requestId string) *InstancesBulkInse // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *InstancesBulkInsertCall) Fields(s ...googleapi.Field) *InstancesBulkInsertCall { +func (c *InstanceGroupManagersStopInstancesCall) Fields(s ...googleapi.Field) *InstanceGroupManagersStopInstancesCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } // Context sets the context to be used in this call's Do method. -func (c *InstancesBulkInsertCall) Context(ctx context.Context) *InstancesBulkInsertCall { +func (c *InstanceGroupManagersStopInstancesCall) Context(ctx context.Context) *InstanceGroupManagersStopInstancesCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *InstancesBulkInsertCall) Header() http.Header { +func (c *InstanceGroupManagersStopInstancesCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *InstancesBulkInsertCall) doRequest(alt string) (*http.Response, error) { +func (c *InstanceGroupManagersStopInstancesCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) - var body io.Reader = nil - body, err := googleapi.WithoutDataWrapper.JSONReader(c.bulkinsertinstanceresource) + body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.instancegroupmanagersstopinstancesrequest) if err != nil { return nil, err } c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instances/bulkInsert") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/stopInstances") urls += "?" + c.urlParams_.Encode() req, err := http.NewRequest("POST", urls, body) if err != nil { @@ -29894,18 +35012,20 @@ func (c *InstancesBulkInsertCall) doRequest(alt string) (*http.Response, error) } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "zone": c.zone, + "project": c.project, + "zone": c.zone, + "instanceGroupManager": c.instanceGroupManager, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.instanceGroupManagers.stopInstances", "request", internallog.HTTPRequest(req, body.Bytes())) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.instances.bulkInsert" call. +// Do executes the "compute.instanceGroupManagers.stopInstances" call. // 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 *InstancesBulkInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) { +func (c *InstanceGroupManagersStopInstancesCall) Do(opts ...googleapi.CallOption) (*Operation, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -29931,47 +35051,91 @@ func (c *InstancesBulkInsertCall) Do(opts ...googleapi.CallOption) (*Operation, }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.instanceGroupManagers.stopInstances", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type InstancesDeleteCall struct { - s *Service - project string - zone string - instance string - urlParams_ gensupport.URLParams - ctx_ context.Context - header_ http.Header +type InstanceGroupManagersSuspendInstancesCall struct { + s *Service + project string + zone string + instanceGroupManager string + instancegroupmanagerssuspendinstancesrequest *InstanceGroupManagersSuspendInstancesRequest + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header } -// Delete: Deletes the specified Instance resource. For more information, see -// Deleting an instance. +// SuspendInstances: Flags the specified instances in the managed instance +// group to be +// immediately suspended. You can only specify instances that are running +// in +// this request. This method reduces thetargetSize and increases the +// targetSuspendedSize +// of the managed instance group by the number of instances that you +// suspend. +// The suspendInstances operation is marked DONE if +// the suspendInstances request is successful. The underlying +// actions take additional time. You must separately verify the status of +// theSUSPENDING action with thelistmanagedinstances +// method. // -// - instance: Name of the instance resource to delete. +// If the standbyPolicy.initialDelaySec field is set, the group +// delays suspension of the instances until initialDelaySec have +// passed from instance.creationTimestamp (that is, when the +// instance was created). This delay gives your application time to +// set itself up and initialize on the instance. If more thaninitialDelaySec +// seconds have passed sinceinstance.creationTimestamp when this method is +// called, there +// will be zero delay. +// +// If the group is part of a backend +// service that has enabled +// connection draining, it can take up to 60 seconds after the +// connection +// draining duration has elapsed before the VM instance is +// suspended. +// +// Suspended instances can be resumed using the resumeInstances +// method. +// +// You can specify a maximum of 1000 instances with this method per request. +// +// - instanceGroupManager: The name of the managed instance group. // - project: Project ID for this request. -// - zone: The name of the zone for this request. -func (r *InstancesService) Delete(project string, zone string, instance string) *InstancesDeleteCall { - c := &InstancesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)} +// - zone: The name of thezone where the managed +// instance group is located. +func (r *InstanceGroupManagersService) SuspendInstances(project string, zone string, instanceGroupManager string, instancegroupmanagerssuspendinstancesrequest *InstanceGroupManagersSuspendInstancesRequest) *InstanceGroupManagersSuspendInstancesCall { + c := &InstanceGroupManagersSuspendInstancesCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project c.zone = zone - c.instance = instance + c.instanceGroupManager = instanceGroupManager + c.instancegroupmanagerssuspendinstancesrequest = instancegroupmanagerssuspendinstancesrequest 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 *InstancesDeleteCall) RequestId(requestId string) *InstancesDeleteCall { +// 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 *InstanceGroupManagersSuspendInstancesCall) RequestId(requestId string) *InstanceGroupManagersSuspendInstancesCall { c.urlParams_.Set("requestId", requestId) return c } @@ -29979,52 +35143,56 @@ func (c *InstancesDeleteCall) RequestId(requestId string) *InstancesDeleteCall { // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *InstancesDeleteCall) Fields(s ...googleapi.Field) *InstancesDeleteCall { +func (c *InstanceGroupManagersSuspendInstancesCall) Fields(s ...googleapi.Field) *InstanceGroupManagersSuspendInstancesCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } // Context sets the context to be used in this call's Do method. -func (c *InstancesDeleteCall) Context(ctx context.Context) *InstancesDeleteCall { +func (c *InstanceGroupManagersSuspendInstancesCall) Context(ctx context.Context) *InstanceGroupManagersSuspendInstancesCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *InstancesDeleteCall) Header() http.Header { +func (c *InstanceGroupManagersSuspendInstancesCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *InstancesDeleteCall) doRequest(alt string) (*http.Response, error) { - reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) - var body io.Reader = nil +func (c *InstanceGroupManagersSuspendInstancesCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) + body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.instancegroupmanagerssuspendinstancesrequest) + if err != nil { + return nil, err + } c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instances/{instance}") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/suspendInstances") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("DELETE", urls, body) + req, err := http.NewRequest("POST", urls, body) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "zone": c.zone, - "instance": c.instance, + "project": c.project, + "zone": c.zone, + "instanceGroupManager": c.instanceGroupManager, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.instanceGroupManagers.suspendInstances", "request", internallog.HTTPRequest(req, body.Bytes())) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.instances.delete" call. +// Do executes the "compute.instanceGroupManagers.suspendInstances" call. // 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 *InstancesDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) { +func (c *InstanceGroupManagersSuspendInstancesCall) Do(opts ...googleapi.CallOption) (*Operation, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -30050,51 +35218,64 @@ func (c *InstancesDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, erro }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.instanceGroupManagers.suspendInstances", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type InstancesDeleteAccessConfigCall struct { - s *Service - project string - zone string - instance string - urlParams_ gensupport.URLParams - ctx_ context.Context - header_ http.Header +type InstanceGroupManagersUpdatePerInstanceConfigsCall struct { + s *Service + project string + zone string + instanceGroupManager string + instancegroupmanagersupdateperinstanceconfigsreq *InstanceGroupManagersUpdatePerInstanceConfigsReq + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header } -// DeleteAccessConfig: Deletes an access config from an instance's network -// interface. +// UpdatePerInstanceConfigs: Inserts or updates per-instance configurations for +// the managed instance +// group. perInstanceConfig.name serves as a key used to +// distinguish whether to perform insert or patch. // -// - accessConfig: The name of the access config to delete. -// - instance: The instance name for this request. -// - networkInterface: The name of the network interface. -// - project: Project ID for this request. -// - zone: The name of the zone for this request. -func (r *InstancesService) DeleteAccessConfig(project string, zone string, instance string, accessConfig string, networkInterface string) *InstancesDeleteAccessConfigCall { - c := &InstancesDeleteAccessConfigCall{s: r.s, urlParams_: make(gensupport.URLParams)} +// - instanceGroupManager: The name of the managed instance group. +// It should conform to RFC1035. +// - project: Project ID for this request. +// - zone: The name of thezone +// where the managed instance group is located. +// +// It should conform to RFC1035. +func (r *InstanceGroupManagersService) UpdatePerInstanceConfigs(project string, zone string, instanceGroupManager string, instancegroupmanagersupdateperinstanceconfigsreq *InstanceGroupManagersUpdatePerInstanceConfigsReq) *InstanceGroupManagersUpdatePerInstanceConfigsCall { + c := &InstanceGroupManagersUpdatePerInstanceConfigsCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project c.zone = zone - c.instance = instance - c.urlParams_.Set("accessConfig", accessConfig) - c.urlParams_.Set("networkInterface", networkInterface) + c.instanceGroupManager = instanceGroupManager + c.instancegroupmanagersupdateperinstanceconfigsreq = instancegroupmanagersupdateperinstanceconfigsreq 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 *InstancesDeleteAccessConfigCall) RequestId(requestId string) *InstancesDeleteAccessConfigCall { +// 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 *InstanceGroupManagersUpdatePerInstanceConfigsCall) RequestId(requestId string) *InstanceGroupManagersUpdatePerInstanceConfigsCall { c.urlParams_.Set("requestId", requestId) return c } @@ -30102,32 +35283,35 @@ func (c *InstancesDeleteAccessConfigCall) RequestId(requestId string) *Instances // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *InstancesDeleteAccessConfigCall) Fields(s ...googleapi.Field) *InstancesDeleteAccessConfigCall { +func (c *InstanceGroupManagersUpdatePerInstanceConfigsCall) Fields(s ...googleapi.Field) *InstanceGroupManagersUpdatePerInstanceConfigsCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } // Context sets the context to be used in this call's Do method. -func (c *InstancesDeleteAccessConfigCall) Context(ctx context.Context) *InstancesDeleteAccessConfigCall { +func (c *InstanceGroupManagersUpdatePerInstanceConfigsCall) Context(ctx context.Context) *InstanceGroupManagersUpdatePerInstanceConfigsCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *InstancesDeleteAccessConfigCall) Header() http.Header { +func (c *InstanceGroupManagersUpdatePerInstanceConfigsCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *InstancesDeleteAccessConfigCall) doRequest(alt string) (*http.Response, error) { - reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) - var body io.Reader = nil +func (c *InstanceGroupManagersUpdatePerInstanceConfigsCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) + body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.instancegroupmanagersupdateperinstanceconfigsreq) + if err != nil { + return nil, err + } c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instances/{instance}/deleteAccessConfig") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/updatePerInstanceConfigs") urls += "?" + c.urlParams_.Encode() req, err := http.NewRequest("POST", urls, body) if err != nil { @@ -30135,19 +35319,20 @@ func (c *InstancesDeleteAccessConfigCall) doRequest(alt string) (*http.Response, } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "zone": c.zone, - "instance": c.instance, + "project": c.project, + "zone": c.zone, + "instanceGroupManager": c.instanceGroupManager, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.instanceGroupManagers.updatePerInstanceConfigs", "request", internallog.HTTPRequest(req, body.Bytes())) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.instances.deleteAccessConfig" call. +// Do executes the "compute.instanceGroupManagers.updatePerInstanceConfigs" call. // 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 *InstancesDeleteAccessConfigCall) Do(opts ...googleapi.CallOption) (*Operation, error) { +func (c *InstanceGroupManagersUpdatePerInstanceConfigsCall) Do(opts ...googleapi.CallOption) (*Operation, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -30173,49 +35358,64 @@ func (c *InstancesDeleteAccessConfigCall) Do(opts ...googleapi.CallOption) (*Ope }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.instanceGroupManagers.updatePerInstanceConfigs", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type InstancesDetachDiskCall struct { - s *Service - project string - zone string - instance string - urlParams_ gensupport.URLParams - ctx_ context.Context - header_ http.Header +type InstanceGroupsAddInstancesCall struct { + s *Service + project string + zone string + instanceGroup string + instancegroupsaddinstancesrequest *InstanceGroupsAddInstancesRequest + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header } -// DetachDisk: Detaches a disk from an instance. +// AddInstances: Adds a list of instances to the specified instance group. All +// of the +// instances in the instance group must be in the same network/subnetwork. +// Read +// Adding instances for more information. // -// - deviceName: The device name of the disk to detach. Make a get() request on -// the instance to view currently attached disks and device names. -// - instance: Instance name for this request. +// - instanceGroup: The name of the instance group where you are adding +// instances. // - project: Project ID for this request. -// - zone: The name of the zone for this request. -func (r *InstancesService) DetachDisk(project string, zone string, instance string, deviceName string) *InstancesDetachDiskCall { - c := &InstancesDetachDiskCall{s: r.s, urlParams_: make(gensupport.URLParams)} +// - zone: The name of the zone +// +// where the instance group is located. +func (r *InstanceGroupsService) AddInstances(project string, zone string, instanceGroup string, instancegroupsaddinstancesrequest *InstanceGroupsAddInstancesRequest) *InstanceGroupsAddInstancesCall { + c := &InstanceGroupsAddInstancesCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project c.zone = zone - c.instance = instance - c.urlParams_.Set("deviceName", deviceName) + c.instanceGroup = instanceGroup + c.instancegroupsaddinstancesrequest = instancegroupsaddinstancesrequest 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 *InstancesDetachDiskCall) RequestId(requestId string) *InstancesDetachDiskCall { +// 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 *InstanceGroupsAddInstancesCall) RequestId(requestId string) *InstanceGroupsAddInstancesCall { c.urlParams_.Set("requestId", requestId) return c } @@ -30223,32 +35423,35 @@ func (c *InstancesDetachDiskCall) RequestId(requestId string) *InstancesDetachDi // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *InstancesDetachDiskCall) Fields(s ...googleapi.Field) *InstancesDetachDiskCall { +func (c *InstanceGroupsAddInstancesCall) Fields(s ...googleapi.Field) *InstanceGroupsAddInstancesCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } // Context sets the context to be used in this call's Do method. -func (c *InstancesDetachDiskCall) Context(ctx context.Context) *InstancesDetachDiskCall { +func (c *InstanceGroupsAddInstancesCall) Context(ctx context.Context) *InstanceGroupsAddInstancesCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *InstancesDetachDiskCall) Header() http.Header { +func (c *InstanceGroupsAddInstancesCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *InstancesDetachDiskCall) doRequest(alt string) (*http.Response, error) { - reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) - var body io.Reader = nil +func (c *InstanceGroupsAddInstancesCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) + body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.instancegroupsaddinstancesrequest) + if err != nil { + return nil, err + } c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instances/{instance}/detachDisk") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instanceGroups/{instanceGroup}/addInstances") urls += "?" + c.urlParams_.Encode() req, err := http.NewRequest("POST", urls, body) if err != nil { @@ -30256,19 +35459,20 @@ func (c *InstancesDetachDiskCall) doRequest(alt string) (*http.Response, error) } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "zone": c.zone, - "instance": c.instance, + "project": c.project, + "zone": c.zone, + "instanceGroup": c.instanceGroup, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.instanceGroups.addInstances", "request", internallog.HTTPRequest(req, body.Bytes())) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.instances.detachDisk" call. +// Do executes the "compute.instanceGroups.addInstances" call. // 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 *InstancesDetachDiskCall) Do(opts ...googleapi.CallOption) (*Operation, error) { +func (c *InstanceGroupsAddInstancesCall) Do(opts ...googleapi.CallOption) (*Operation, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -30294,159 +35498,195 @@ func (c *InstancesDetachDiskCall) Do(opts ...googleapi.CallOption) (*Operation, }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.instanceGroups.addInstances", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type InstancesGetCall struct { +type InstanceGroupsAggregatedListCall struct { s *Service project string - zone string - instance string urlParams_ gensupport.URLParams ifNoneMatch_ string ctx_ context.Context header_ http.Header } -// Get: Returns the specified Instance resource. +// AggregatedList: Retrieves the list of instance groups and sorts them by +// zone. +// +// To prevent failure, Google recommends that you set +// the +// `returnPartialSuccess` parameter to `true`. // -// - instance: Name of the instance resource to return. // - project: Project ID for this request. -// - zone: The name of the zone for this request. -func (r *InstancesService) Get(project string, zone string, instance string) *InstancesGetCall { - c := &InstancesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)} +func (r *InstanceGroupsService) AggregatedList(project string) *InstanceGroupsAggregatedListCall { + c := &InstanceGroupsAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project - c.zone = zone - c.instance = instance return c } -// Fields allows partial responses to be retrieved. See -// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more -// details. -func (c *InstancesGetCall) Fields(s ...googleapi.Field) *InstancesGetCall { - c.urlParams_.Set("fields", googleapi.CombineFields(s)) +// Filter sets the optional parameter "filter": A filter expression that +// filters resources listed in the response. Most +// Compute resources support two types of filter expressions: +// expressions that support regular expressions and expressions that follow +// API improvement proposal AIP-160. +// These two types of filter expressions cannot be mixed in one request. +// +// If you want to use AIP-160, your expression must specify the field name, +// an +// operator, and the value that you want to use for filtering. The value +// must be a string, a number, or a boolean. The 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`. +// +// The `:*` comparison can be used to test whether a key has been defined. +// For example, to find all objects with `owner` label +// use: +// ``` +// labels.owner:* +// ``` +// +// 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 onresource 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) +// ``` +// +// If you want to use a regular expression, use the `eq` (equal) or `ne` +// (not equal) operator against a single un-parenthesized expression with +// or +// without quotes or against multiple parenthesized expressions. +// Examples: +// +// `fieldname eq unquoted literal` +// `fieldname eq 'single quoted literal'` +// `fieldname eq "double quoted literal" +// `(fieldname1 eq literal) (fieldname2 ne "literal")` +// +// The literal value is interpreted as a regular expression using GoogleRE2 +// library syntax. +// The literal value must match the entire field. +// +// For example, to filter for instances that do not end with name +// "instance", +// you would use `name ne .*instance`. +// +// You cannot combine constraints on multiple fields using regular +// expressions. +func (c *InstanceGroupsAggregatedListCall) Filter(filter string) *InstanceGroupsAggregatedListCall { + c.urlParams_.Set("filter", filter) return c } -// IfNoneMatch sets an 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. -func (c *InstancesGetCall) IfNoneMatch(entityTag string) *InstancesGetCall { - c.ifNoneMatch_ = entityTag +// IncludeAllScopes sets the optional parameter "includeAllScopes": Indicates +// whether every visible scope for each scope type (zone, region, +// global) should be included in the response. For new resource types +// added +// after this field, the flag has no effect as new resource types will +// always +// include every visible scope for each scope type in response. For +// resource +// types which predate this field, if this flag is omitted or false, +// only +// scopes of the scope types where the resource type is expected to be +// found +// will be included. +func (c *InstanceGroupsAggregatedListCall) IncludeAllScopes(includeAllScopes bool) *InstanceGroupsAggregatedListCall { + c.urlParams_.Set("includeAllScopes", fmt.Sprint(includeAllScopes)) return c } -// Context sets the context to be used in this call's Do method. -func (c *InstancesGetCall) Context(ctx context.Context) *InstancesGetCall { - c.ctx_ = ctx +// 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 *InstanceGroupsAggregatedListCall) MaxResults(maxResults int64) *InstanceGroupsAggregatedListCall { + c.urlParams_.Set("maxResults", fmt.Sprint(maxResults)) return c } -// Header returns a http.Header that can be modified by the caller to add -// headers to the request. -func (c *InstancesGetCall) Header() http.Header { - if c.header_ == nil { - c.header_ = make(http.Header) - } - return c.header_ -} - -func (c *InstancesGetCall) doRequest(alt string) (*http.Response, error) { - reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) - if c.ifNoneMatch_ != "" { - reqHeaders.Set("If-None-Match", c.ifNoneMatch_) - } - var body io.Reader = nil - c.urlParams_.Set("alt", alt) - c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instances/{instance}") - urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("GET", urls, body) - if err != nil { - return nil, err - } - req.Header = reqHeaders - googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "zone": c.zone, - "instance": c.instance, - }) - return gensupport.SendRequest(c.ctx_, c.s.client, req) +// 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 *InstanceGroupsAggregatedListCall) OrderBy(orderBy string) *InstanceGroupsAggregatedListCall { + c.urlParams_.Set("orderBy", orderBy) + return c } -// Do executes the "compute.instances.get" call. -// Any non-2xx status code is an error. Response headers are in either -// *Instance.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 *InstancesGetCall) Do(opts ...googleapi.CallOption) (*Instance, 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, gensupport.WrapError(&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, gensupport.WrapError(err) - } - ret := &Instance{ - 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 +// 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 *InstanceGroupsAggregatedListCall) PageToken(pageToken string) *InstanceGroupsAggregatedListCall { + c.urlParams_.Set("pageToken", pageToken) + return c } -type InstancesGetEffectiveFirewallsCall struct { - s *Service - project string - zone string - instance string - urlParams_ gensupport.URLParams - ifNoneMatch_ string - ctx_ context.Context - header_ http.Header +// ReturnPartialSuccess sets the optional parameter "returnPartialSuccess": +// Opt-in for partial success behavior which provides partial results in +// case +// of failure. The default value is false. +// +// For example, when partial success behavior is enabled, aggregatedList for +// a +// single zone scope either returns all resources in the zone or no +// resources, +// with an error code. +func (c *InstanceGroupsAggregatedListCall) ReturnPartialSuccess(returnPartialSuccess bool) *InstanceGroupsAggregatedListCall { + c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess)) + return c } -// GetEffectiveFirewalls: Returns effective firewalls applied to an interface -// of the instance. -// -// - instance: Name of the instance scoping this request. -// - networkInterface: The name of the network interface to get the effective -// firewalls. -// - project: Project ID for this request. -// - zone: The name of the zone for this request. -func (r *InstancesService) GetEffectiveFirewalls(project string, zone string, instance string, networkInterface string) *InstancesGetEffectiveFirewallsCall { - c := &InstancesGetEffectiveFirewallsCall{s: r.s, urlParams_: make(gensupport.URLParams)} - c.project = project - c.zone = zone - c.instance = instance - c.urlParams_.Set("networkInterface", networkInterface) +// ServiceProjectNumber sets the optional parameter "serviceProjectNumber": The +// Shared VPC service project id or service project number for which +// aggregated list request is invoked for subnetworks list-usable api. +func (c *InstanceGroupsAggregatedListCall) ServiceProjectNumber(serviceProjectNumber int64) *InstanceGroupsAggregatedListCall { + c.urlParams_.Set("serviceProjectNumber", fmt.Sprint(serviceProjectNumber)) return c } // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *InstancesGetEffectiveFirewallsCall) Fields(s ...googleapi.Field) *InstancesGetEffectiveFirewallsCall { +func (c *InstanceGroupsAggregatedListCall) Fields(s ...googleapi.Field) *InstanceGroupsAggregatedListCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } @@ -30454,56 +35694,54 @@ func (c *InstancesGetEffectiveFirewallsCall) Fields(s ...googleapi.Field) *Insta // IfNoneMatch sets an 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. -func (c *InstancesGetEffectiveFirewallsCall) IfNoneMatch(entityTag string) *InstancesGetEffectiveFirewallsCall { +func (c *InstanceGroupsAggregatedListCall) IfNoneMatch(entityTag string) *InstanceGroupsAggregatedListCall { c.ifNoneMatch_ = entityTag return c } // Context sets the context to be used in this call's Do method. -func (c *InstancesGetEffectiveFirewallsCall) Context(ctx context.Context) *InstancesGetEffectiveFirewallsCall { +func (c *InstanceGroupsAggregatedListCall) Context(ctx context.Context) *InstanceGroupsAggregatedListCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *InstancesGetEffectiveFirewallsCall) Header() http.Header { +func (c *InstanceGroupsAggregatedListCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *InstancesGetEffectiveFirewallsCall) doRequest(alt string) (*http.Response, error) { +func (c *InstanceGroupsAggregatedListCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) if c.ifNoneMatch_ != "" { reqHeaders.Set("If-None-Match", c.ifNoneMatch_) } - var body io.Reader = nil c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instances/{instance}/getEffectiveFirewalls") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/aggregated/instanceGroups") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("GET", urls, body) + req, err := http.NewRequest("GET", urls, nil) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "zone": c.zone, - "instance": c.instance, + "project": c.project, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.instanceGroups.aggregatedList", "request", internallog.HTTPRequest(req, nil)) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.instances.getEffectiveFirewalls" call. +// Do executes the "compute.instanceGroups.aggregatedList" call. // Any non-2xx status code is an error. Response headers are in either -// *InstancesGetEffectiveFirewallsResponse.ServerResponse.Header or (if a -// response was returned at all) in error.(*googleapi.Error).Header. Use +// *InstanceGroupAggregatedList.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 *InstancesGetEffectiveFirewallsCall) Do(opts ...googleapi.CallOption) (*InstancesGetEffectiveFirewallsResponse, error) { +func (c *InstanceGroupsAggregatedListCall) Do(opts ...googleapi.CallOption) (*InstanceGroupAggregatedList, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -30522,118 +35760,142 @@ func (c *InstancesGetEffectiveFirewallsCall) Do(opts ...googleapi.CallOption) (* if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } - ret := &InstancesGetEffectiveFirewallsResponse{ + ret := &InstanceGroupAggregatedList{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.instanceGroups.aggregatedList", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type InstancesGetGuestAttributesCall struct { - s *Service - project string - zone string - instance string - urlParams_ gensupport.URLParams - ifNoneMatch_ string - ctx_ context.Context - header_ http.Header +// 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 *InstanceGroupsAggregatedListCall) Pages(ctx context.Context, f func(*InstanceGroupAggregatedList) error) error { + c.ctx_ = ctx + defer c.PageToken(c.urlParams_.Get("pageToken")) + 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) + } } -// GetGuestAttributes: Returns the specified guest attributes entry. +type InstanceGroupsDeleteCall struct { + s *Service + project string + zone string + instanceGroup string + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header +} + +// Delete: Deletes the specified instance group. The instances in the group are +// not +// deleted. Note that instance group must not belong to a backend +// service. +// Read +// Deleting an instance group for more information. // -// - instance: Name of the instance scoping this request. +// - instanceGroup: The name of the instance group to delete. // - project: Project ID for this request. -// - zone: The name of the zone for this request. -func (r *InstancesService) GetGuestAttributes(project string, zone string, instance string) *InstancesGetGuestAttributesCall { - c := &InstancesGetGuestAttributesCall{s: r.s, urlParams_: make(gensupport.URLParams)} +// - zone: The name of the zone +// where the instance group is located. +func (r *InstanceGroupsService) Delete(project string, zone string, instanceGroup string) *InstanceGroupsDeleteCall { + c := &InstanceGroupsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project c.zone = zone - c.instance = instance - return c -} - -// QueryPath sets the optional parameter "queryPath": Specifies the guest -// attributes path to be queried. -func (c *InstancesGetGuestAttributesCall) QueryPath(queryPath string) *InstancesGetGuestAttributesCall { - c.urlParams_.Set("queryPath", queryPath) + c.instanceGroup = instanceGroup return c } -// VariableKey sets the optional parameter "variableKey": Specifies the key for -// the guest attributes entry. -func (c *InstancesGetGuestAttributesCall) VariableKey(variableKey string) *InstancesGetGuestAttributesCall { - c.urlParams_.Set("variableKey", variableKey) +// 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 *InstanceGroupsDeleteCall) RequestId(requestId string) *InstanceGroupsDeleteCall { + 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 // details. -func (c *InstancesGetGuestAttributesCall) Fields(s ...googleapi.Field) *InstancesGetGuestAttributesCall { +func (c *InstanceGroupsDeleteCall) Fields(s ...googleapi.Field) *InstanceGroupsDeleteCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } -// IfNoneMatch sets an 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. -func (c *InstancesGetGuestAttributesCall) IfNoneMatch(entityTag string) *InstancesGetGuestAttributesCall { - c.ifNoneMatch_ = entityTag - return c -} - // Context sets the context to be used in this call's Do method. -func (c *InstancesGetGuestAttributesCall) Context(ctx context.Context) *InstancesGetGuestAttributesCall { +func (c *InstanceGroupsDeleteCall) Context(ctx context.Context) *InstanceGroupsDeleteCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *InstancesGetGuestAttributesCall) Header() http.Header { +func (c *InstanceGroupsDeleteCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *InstancesGetGuestAttributesCall) doRequest(alt string) (*http.Response, error) { +func (c *InstanceGroupsDeleteCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) - if c.ifNoneMatch_ != "" { - reqHeaders.Set("If-None-Match", c.ifNoneMatch_) - } - var body io.Reader = nil c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instances/{instance}/getGuestAttributes") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instanceGroups/{instanceGroup}") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("GET", urls, body) + req, err := http.NewRequest("DELETE", urls, nil) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "zone": c.zone, - "instance": c.instance, + "project": c.project, + "zone": c.zone, + "instanceGroup": c.instanceGroup, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.instanceGroups.delete", "request", internallog.HTTPRequest(req, nil)) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.instances.getGuestAttributes" call. +// Do executes the "compute.instanceGroups.delete" call. // Any non-2xx status code is an error. Response headers are in either -// *GuestAttributes.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 *InstancesGetGuestAttributesCall) Do(opts ...googleapi.CallOption) (*GuestAttributes, error) { +// *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 *InstanceGroupsDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -30652,55 +35914,56 @@ func (c *InstancesGetGuestAttributesCall) Do(opts ...googleapi.CallOption) (*Gue if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } - ret := &GuestAttributes{ + ret := &Operation{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.instanceGroups.delete", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type InstancesGetIamPolicyCall struct { - s *Service - project string - zone string - resource string - urlParams_ gensupport.URLParams - ifNoneMatch_ string - ctx_ context.Context - header_ http.Header +type InstanceGroupsGetCall struct { + s *Service + project string + zone string + instanceGroup string + urlParams_ gensupport.URLParams + ifNoneMatch_ string + ctx_ context.Context + header_ http.Header } -// GetIamPolicy: Gets the access control policy for a resource. May be empty if -// no such policy or resource exists. +// Get: Returns the specified zonal instance group. Get a list of available +// zonal +// instance groups by making a list() request. +// +// For managed instance groups, use theinstanceGroupManagers +// or regionInstanceGroupManagers +// methods instead. // +// - instanceGroup: The name of the instance group. // - project: Project ID for this request. -// - resource: Name or id of the resource for this request. -// - zone: The name of the zone for this request. -func (r *InstancesService) GetIamPolicy(project string, zone string, resource string) *InstancesGetIamPolicyCall { - c := &InstancesGetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)} +// - zone: The name of the zone +// where the instance group is located. +func (r *InstanceGroupsService) Get(project string, zone string, instanceGroup string) *InstanceGroupsGetCall { + c := &InstanceGroupsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project c.zone = zone - c.resource = resource - return c -} - -// OptionsRequestedPolicyVersion sets the optional parameter -// "optionsRequestedPolicyVersion": Requested IAM Policy version. -func (c *InstancesGetIamPolicyCall) OptionsRequestedPolicyVersion(optionsRequestedPolicyVersion int64) *InstancesGetIamPolicyCall { - c.urlParams_.Set("optionsRequestedPolicyVersion", fmt.Sprint(optionsRequestedPolicyVersion)) + c.instanceGroup = instanceGroup return c } // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *InstancesGetIamPolicyCall) Fields(s ...googleapi.Field) *InstancesGetIamPolicyCall { +func (c *InstanceGroupsGetCall) Fields(s ...googleapi.Field) *InstanceGroupsGetCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } @@ -30708,55 +35971,55 @@ func (c *InstancesGetIamPolicyCall) Fields(s ...googleapi.Field) *InstancesGetIa // IfNoneMatch sets an 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. -func (c *InstancesGetIamPolicyCall) IfNoneMatch(entityTag string) *InstancesGetIamPolicyCall { +func (c *InstanceGroupsGetCall) IfNoneMatch(entityTag string) *InstanceGroupsGetCall { c.ifNoneMatch_ = entityTag return c } // Context sets the context to be used in this call's Do method. -func (c *InstancesGetIamPolicyCall) Context(ctx context.Context) *InstancesGetIamPolicyCall { +func (c *InstanceGroupsGetCall) Context(ctx context.Context) *InstanceGroupsGetCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *InstancesGetIamPolicyCall) Header() http.Header { +func (c *InstanceGroupsGetCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *InstancesGetIamPolicyCall) doRequest(alt string) (*http.Response, error) { +func (c *InstanceGroupsGetCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) if c.ifNoneMatch_ != "" { reqHeaders.Set("If-None-Match", c.ifNoneMatch_) } - var body io.Reader = nil c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instances/{resource}/getIamPolicy") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instanceGroups/{instanceGroup}") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("GET", urls, body) + req, err := http.NewRequest("GET", urls, nil) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "zone": c.zone, - "resource": c.resource, + "project": c.project, + "zone": c.zone, + "instanceGroup": c.instanceGroup, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.instanceGroups.get", "request", internallog.HTTPRequest(req, nil)) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.instances.getIamPolicy" call. +// Do executes the "compute.instanceGroups.get" call. // Any non-2xx status code is an error. Response headers are in either -// *Policy.ServerResponse.Header or (if a response was returned at all) in -// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check +// *InstanceGroup.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 *InstancesGetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, error) { +func (c *InstanceGroupsGetCall) Do(opts ...googleapi.CallOption) (*InstanceGroup, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -30775,103 +36038,120 @@ func (c *InstancesGetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, e if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } - ret := &Policy{ + ret := &InstanceGroup{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.instanceGroups.get", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type InstancesGetScreenshotCall struct { - s *Service - project string - zone string - instance string - urlParams_ gensupport.URLParams - ifNoneMatch_ string - ctx_ context.Context - header_ http.Header +type InstanceGroupsInsertCall struct { + s *Service + project string + zone string + instancegroup *InstanceGroup + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header } -// GetScreenshot: Returns the screenshot from the specified instance. +// Insert: Creates an instance group in the specified project using +// the +// parameters that are included in the request. // -// - instance: Name of the instance scoping this request. // - project: Project ID for this request. -// - zone: The name of the zone for this request. -func (r *InstancesService) GetScreenshot(project string, zone string, instance string) *InstancesGetScreenshotCall { - c := &InstancesGetScreenshotCall{s: r.s, urlParams_: make(gensupport.URLParams)} +// - zone: The name of the zone +// where you want to create the instance group. +func (r *InstanceGroupsService) Insert(project string, zone string, instancegroup *InstanceGroup) *InstanceGroupsInsertCall { + c := &InstanceGroupsInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project c.zone = zone - c.instance = instance + c.instancegroup = instancegroup + 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 *InstanceGroupsInsertCall) RequestId(requestId string) *InstanceGroupsInsertCall { + 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 // details. -func (c *InstancesGetScreenshotCall) Fields(s ...googleapi.Field) *InstancesGetScreenshotCall { +func (c *InstanceGroupsInsertCall) Fields(s ...googleapi.Field) *InstanceGroupsInsertCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } -// IfNoneMatch sets an 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. -func (c *InstancesGetScreenshotCall) IfNoneMatch(entityTag string) *InstancesGetScreenshotCall { - c.ifNoneMatch_ = entityTag - return c -} - // Context sets the context to be used in this call's Do method. -func (c *InstancesGetScreenshotCall) Context(ctx context.Context) *InstancesGetScreenshotCall { +func (c *InstanceGroupsInsertCall) Context(ctx context.Context) *InstanceGroupsInsertCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *InstancesGetScreenshotCall) Header() http.Header { +func (c *InstanceGroupsInsertCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *InstancesGetScreenshotCall) doRequest(alt string) (*http.Response, error) { - reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) - if c.ifNoneMatch_ != "" { - reqHeaders.Set("If-None-Match", c.ifNoneMatch_) +func (c *InstanceGroupsInsertCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) + body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.instancegroup) + if err != nil { + return nil, err } - var body io.Reader = nil c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instances/{instance}/screenshot") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instanceGroups") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("GET", urls, body) + req, err := http.NewRequest("POST", urls, body) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "zone": c.zone, - "instance": c.instance, + "project": c.project, + "zone": c.zone, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.instanceGroups.insert", "request", internallog.HTTPRequest(req, body.Bytes())) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.instances.getScreenshot" call. +// Do executes the "compute.instanceGroups.insert" call. // Any non-2xx status code is an error. Response headers are in either -// *Screenshot.ServerResponse.Header or (if a response was returned at all) in +// *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 *InstancesGetScreenshotCall) Do(opts ...googleapi.CallOption) (*Screenshot, error) { +func (c *InstanceGroupsInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -30890,72 +36170,181 @@ func (c *InstancesGetScreenshotCall) Do(opts ...googleapi.CallOption) (*Screensh if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } - ret := &Screenshot{ + ret := &Operation{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.instanceGroups.insert", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type InstancesGetSerialPortOutputCall struct { +type InstanceGroupsListCall struct { s *Service project string zone string - instance string urlParams_ gensupport.URLParams ifNoneMatch_ string ctx_ context.Context header_ http.Header } -// GetSerialPortOutput: Returns the last 1 MB of serial port output from the -// specified instance. +// List: Retrieves the list of zonal instance group resources contained within +// the +// specified zone. +// +// For managed instance groups, use theinstanceGroupManagers +// or regionInstanceGroupManagers +// methods instead. // -// - instance: Name of the instance for this request. // - project: Project ID for this request. -// - zone: The name of the zone for this request. -func (r *InstancesService) GetSerialPortOutput(project string, zone string, instance string) *InstancesGetSerialPortOutputCall { - c := &InstancesGetSerialPortOutputCall{s: r.s, urlParams_: make(gensupport.URLParams)} +// - zone: The name of thezone +// where the instance group is located. +func (r *InstanceGroupsService) List(project string, zone string) *InstanceGroupsListCall { + c := &InstanceGroupsListCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project c.zone = zone - c.instance = instance return c } -// Port sets the optional parameter "port": Specifies which COM or serial port -// to retrieve data from. -func (c *InstancesGetSerialPortOutputCall) Port(port int64) *InstancesGetSerialPortOutputCall { - c.urlParams_.Set("port", fmt.Sprint(port)) +// Filter sets the optional parameter "filter": A filter expression that +// filters resources listed in the response. Most +// Compute resources support two types of filter expressions: +// expressions that support regular expressions and expressions that follow +// API improvement proposal AIP-160. +// These two types of filter expressions cannot be mixed in one request. +// +// If you want to use AIP-160, your expression must specify the field name, +// an +// operator, and the value that you want to use for filtering. The value +// must be a string, a number, or a boolean. The 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`. +// +// The `:*` comparison can be used to test whether a key has been defined. +// For example, to find all objects with `owner` label +// use: +// ``` +// labels.owner:* +// ``` +// +// 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 onresource 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) +// ``` +// +// If you want to use a regular expression, use the `eq` (equal) or `ne` +// (not equal) operator against a single un-parenthesized expression with +// or +// without quotes or against multiple parenthesized expressions. +// Examples: +// +// `fieldname eq unquoted literal` +// `fieldname eq 'single quoted literal'` +// `fieldname eq "double quoted literal" +// `(fieldname1 eq literal) (fieldname2 ne "literal")` +// +// The literal value is interpreted as a regular expression using GoogleRE2 +// library syntax. +// The literal value must match the entire field. +// +// For example, to filter for instances that do not end with name +// "instance", +// you would use `name ne .*instance`. +// +// You cannot combine constraints on multiple fields using regular +// expressions. +func (c *InstanceGroupsListCall) Filter(filter string) *InstanceGroupsListCall { + c.urlParams_.Set("filter", filter) return c } -// Start sets the optional parameter "start": Specifies the starting byte -// position of the output to return. To start with the first byte of output to -// the specified port, omit this field or set it to `0`. If the output for that -// byte position is available, this field matches the `start` parameter sent -// with the request. If the amount of serial console output exceeds the size of -// the buffer (1 MB), the oldest output is discarded and is no longer -// available. If the requested start position refers to discarded output, the -// start position is adjusted to the oldest output still available, and the -// adjusted start position is returned as the `start` property value. You can -// also provide a negative start position, which translates to the most recent -// number of bytes written to the serial port. For example, -3 is interpreted -// as the most recent 3 bytes written to the serial console. -func (c *InstancesGetSerialPortOutputCall) Start(start int64) *InstancesGetSerialPortOutputCall { - c.urlParams_.Set("start", fmt.Sprint(start)) +// 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 *InstanceGroupsListCall) MaxResults(maxResults int64) *InstanceGroupsListCall { + 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 *InstanceGroupsListCall) OrderBy(orderBy string) *InstanceGroupsListCall { + 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 *InstanceGroupsListCall) PageToken(pageToken string) *InstanceGroupsListCall { + c.urlParams_.Set("pageToken", pageToken) + return c +} + +// ReturnPartialSuccess sets the optional parameter "returnPartialSuccess": +// Opt-in for partial success behavior which provides partial results in +// case +// of failure. The default value is false. +// +// For example, when partial success behavior is enabled, aggregatedList for +// a +// single zone scope either returns all resources in the zone or no +// resources, +// with an error code. +func (c *InstanceGroupsListCall) ReturnPartialSuccess(returnPartialSuccess bool) *InstanceGroupsListCall { + c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess)) return c } // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *InstancesGetSerialPortOutputCall) Fields(s ...googleapi.Field) *InstancesGetSerialPortOutputCall { +func (c *InstanceGroupsListCall) Fields(s ...googleapi.Field) *InstanceGroupsListCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } @@ -30963,56 +36352,55 @@ func (c *InstancesGetSerialPortOutputCall) Fields(s ...googleapi.Field) *Instanc // IfNoneMatch sets an 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. -func (c *InstancesGetSerialPortOutputCall) IfNoneMatch(entityTag string) *InstancesGetSerialPortOutputCall { +func (c *InstanceGroupsListCall) IfNoneMatch(entityTag string) *InstanceGroupsListCall { c.ifNoneMatch_ = entityTag return c } // Context sets the context to be used in this call's Do method. -func (c *InstancesGetSerialPortOutputCall) Context(ctx context.Context) *InstancesGetSerialPortOutputCall { +func (c *InstanceGroupsListCall) Context(ctx context.Context) *InstanceGroupsListCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *InstancesGetSerialPortOutputCall) Header() http.Header { +func (c *InstanceGroupsListCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *InstancesGetSerialPortOutputCall) doRequest(alt string) (*http.Response, error) { +func (c *InstanceGroupsListCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) if c.ifNoneMatch_ != "" { reqHeaders.Set("If-None-Match", c.ifNoneMatch_) } - var body io.Reader = nil c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instances/{instance}/serialPort") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instanceGroups") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("GET", urls, body) + req, err := http.NewRequest("GET", urls, nil) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "zone": c.zone, - "instance": c.instance, + "project": c.project, + "zone": c.zone, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.instanceGroups.list", "request", internallog.HTTPRequest(req, nil)) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.instances.getSerialPortOutput" call. +// Do executes the "compute.instanceGroups.list" call. // Any non-2xx status code is an error. Response headers are in either -// *SerialPortOutput.ServerResponse.Header or (if a response was returned at +// *InstanceGroupList.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 *InstancesGetSerialPortOutputCall) Do(opts ...googleapi.CallOption) (*SerialPortOutput, error) { +func (c *InstanceGroupsListCall) Do(opts ...googleapi.CallOption) (*InstanceGroupList, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -31031,48 +36419,14723 @@ func (c *InstancesGetSerialPortOutputCall) Do(opts ...googleapi.CallOption) (*Se if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } - ret := &SerialPortOutput{ + ret := &InstanceGroupList{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.instanceGroups.list", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type InstancesGetShieldedInstanceIdentityCall struct { - s *Service - project string - zone string - instance string - urlParams_ gensupport.URLParams - ifNoneMatch_ string - ctx_ context.Context - header_ http.Header -} - -// GetShieldedInstanceIdentity: Returns the Shielded Instance Identity of an +// 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 *InstanceGroupsListCall) Pages(ctx context.Context, f func(*InstanceGroupList) error) error { + c.ctx_ = ctx + defer c.PageToken(c.urlParams_.Get("pageToken")) + 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) + } +} + +type InstanceGroupsListInstancesCall struct { + s *Service + project string + zone string + instanceGroup string + instancegroupslistinstancesrequest *InstanceGroupsListInstancesRequest + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header +} + +// ListInstances: Lists the instances in the specified instance group. +// The orderBy query parameter is not supported. +// The filter query parameter is supported, but only for +// expressions that use `eq` (equal) or `ne` (not equal) operators. +// +// - instanceGroup: The name of the instance group from which you want to +// generate a list +// +// of included instances. +// - project: Project ID for this request. +// - zone: The name of the zone +// where the instance group is located. +func (r *InstanceGroupsService) ListInstances(project string, zone string, instanceGroup string, instancegroupslistinstancesrequest *InstanceGroupsListInstancesRequest) *InstanceGroupsListInstancesCall { + c := &InstanceGroupsListInstancesCall{s: r.s, urlParams_: make(gensupport.URLParams)} + c.project = project + c.zone = zone + c.instanceGroup = instanceGroup + c.instancegroupslistinstancesrequest = instancegroupslistinstancesrequest + return c +} + +// Filter sets the optional parameter "filter": A filter expression that +// filters resources listed in the response. Most +// Compute resources support two types of filter expressions: +// expressions that support regular expressions and expressions that follow +// API improvement proposal AIP-160. +// These two types of filter expressions cannot be mixed in one request. +// +// If you want to use AIP-160, your expression must specify the field name, +// an +// operator, and the value that you want to use for filtering. The value +// must be a string, a number, or a boolean. The 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`. +// +// The `:*` comparison can be used to test whether a key has been defined. +// For example, to find all objects with `owner` label +// use: +// ``` +// labels.owner:* +// ``` +// +// 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 onresource 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) +// ``` +// +// If you want to use a regular expression, use the `eq` (equal) or `ne` +// (not equal) operator against a single un-parenthesized expression with +// or +// without quotes or against multiple parenthesized expressions. +// Examples: +// +// `fieldname eq unquoted literal` +// `fieldname eq 'single quoted literal'` +// `fieldname eq "double quoted literal" +// `(fieldname1 eq literal) (fieldname2 ne "literal")` +// +// The literal value is interpreted as a regular expression using GoogleRE2 +// library syntax. +// The literal value must match the entire field. +// +// For example, to filter for instances that do not end with name +// "instance", +// you would use `name ne .*instance`. +// +// You cannot combine constraints on multiple fields using regular +// expressions. +func (c *InstanceGroupsListInstancesCall) Filter(filter string) *InstanceGroupsListInstancesCall { + 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 *InstanceGroupsListInstancesCall) MaxResults(maxResults int64) *InstanceGroupsListInstancesCall { + 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 *InstanceGroupsListInstancesCall) OrderBy(orderBy string) *InstanceGroupsListInstancesCall { + 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 *InstanceGroupsListInstancesCall) PageToken(pageToken string) *InstanceGroupsListInstancesCall { + c.urlParams_.Set("pageToken", pageToken) + return c +} + +// ReturnPartialSuccess sets the optional parameter "returnPartialSuccess": +// Opt-in for partial success behavior which provides partial results in +// case +// of failure. The default value is false. +// +// For example, when partial success behavior is enabled, aggregatedList for +// a +// single zone scope either returns all resources in the zone or no +// resources, +// with an error code. +func (c *InstanceGroupsListInstancesCall) ReturnPartialSuccess(returnPartialSuccess bool) *InstanceGroupsListInstancesCall { + c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess)) + return c +} + +// Fields allows partial responses to be retrieved. See +// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more +// details. +func (c *InstanceGroupsListInstancesCall) Fields(s ...googleapi.Field) *InstanceGroupsListInstancesCall { + c.urlParams_.Set("fields", googleapi.CombineFields(s)) + return c +} + +// Context sets the context to be used in this call's Do method. +func (c *InstanceGroupsListInstancesCall) Context(ctx context.Context) *InstanceGroupsListInstancesCall { + c.ctx_ = ctx + return c +} + +// Header returns a http.Header that can be modified by the caller to add +// headers to the request. +func (c *InstanceGroupsListInstancesCall) Header() http.Header { + if c.header_ == nil { + c.header_ = make(http.Header) + } + return c.header_ +} + +func (c *InstanceGroupsListInstancesCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) + body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.instancegroupslistinstancesrequest) + if err != nil { + return nil, err + } + c.urlParams_.Set("alt", alt) + c.urlParams_.Set("prettyPrint", "false") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instanceGroups/{instanceGroup}/listInstances") + urls += "?" + c.urlParams_.Encode() + req, err := http.NewRequest("POST", urls, body) + if err != nil { + return nil, err + } + req.Header = reqHeaders + googleapi.Expand(req.URL, map[string]string{ + "project": c.project, + "zone": c.zone, + "instanceGroup": c.instanceGroup, + }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.instanceGroups.listInstances", "request", internallog.HTTPRequest(req, body.Bytes())) + return gensupport.SendRequest(c.ctx_, c.s.client, req) +} + +// Do executes the "compute.instanceGroups.listInstances" call. +// Any non-2xx status code is an error. Response headers are in either +// *InstanceGroupsListInstances.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 *InstanceGroupsListInstancesCall) Do(opts ...googleapi.CallOption) (*InstanceGroupsListInstances, 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, gensupport.WrapError(&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, gensupport.WrapError(err) + } + ret := &InstanceGroupsListInstances{ + ServerResponse: googleapi.ServerResponse{ + Header: res.Header, + HTTPStatusCode: res.StatusCode, + }, + } + target := &ret + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { + return nil, err + } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.instanceGroups.listInstances", "response", internallog.HTTPResponse(res, b)) + return ret, nil +} + +// 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 *InstanceGroupsListInstancesCall) Pages(ctx context.Context, f func(*InstanceGroupsListInstances) error) error { + c.ctx_ = ctx + defer c.PageToken(c.urlParams_.Get("pageToken")) + 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) + } +} + +type InstanceGroupsRemoveInstancesCall struct { + s *Service + project string + zone string + instanceGroup string + instancegroupsremoveinstancesrequest *InstanceGroupsRemoveInstancesRequest + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header +} + +// RemoveInstances: Removes one or more instances from the specified instance +// group, but does +// not delete those instances. +// +// If the group is part of a backend +// service that has enabled +// connection draining, it can take up to 60 seconds after the +// connection +// draining duration before the VM instance is removed or deleted. +// +// - instanceGroup: The name of the instance group where the specified +// instances will be +// +// removed. +// - project: Project ID for this request. +// - zone: The name of the zone +// where the instance group is located. +func (r *InstanceGroupsService) RemoveInstances(project string, zone string, instanceGroup string, instancegroupsremoveinstancesrequest *InstanceGroupsRemoveInstancesRequest) *InstanceGroupsRemoveInstancesCall { + c := &InstanceGroupsRemoveInstancesCall{s: r.s, urlParams_: make(gensupport.URLParams)} + c.project = project + c.zone = zone + c.instanceGroup = instanceGroup + c.instancegroupsremoveinstancesrequest = instancegroupsremoveinstancesrequest + 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 *InstanceGroupsRemoveInstancesCall) RequestId(requestId string) *InstanceGroupsRemoveInstancesCall { + 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 +// details. +func (c *InstanceGroupsRemoveInstancesCall) Fields(s ...googleapi.Field) *InstanceGroupsRemoveInstancesCall { + c.urlParams_.Set("fields", googleapi.CombineFields(s)) + return c +} + +// Context sets the context to be used in this call's Do method. +func (c *InstanceGroupsRemoveInstancesCall) Context(ctx context.Context) *InstanceGroupsRemoveInstancesCall { + c.ctx_ = ctx + return c +} + +// Header returns a http.Header that can be modified by the caller to add +// headers to the request. +func (c *InstanceGroupsRemoveInstancesCall) Header() http.Header { + if c.header_ == nil { + c.header_ = make(http.Header) + } + return c.header_ +} + +func (c *InstanceGroupsRemoveInstancesCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) + body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.instancegroupsremoveinstancesrequest) + if err != nil { + return nil, err + } + c.urlParams_.Set("alt", alt) + c.urlParams_.Set("prettyPrint", "false") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instanceGroups/{instanceGroup}/removeInstances") + urls += "?" + c.urlParams_.Encode() + req, err := http.NewRequest("POST", urls, body) + if err != nil { + return nil, err + } + req.Header = reqHeaders + googleapi.Expand(req.URL, map[string]string{ + "project": c.project, + "zone": c.zone, + "instanceGroup": c.instanceGroup, + }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.instanceGroups.removeInstances", "request", internallog.HTTPRequest(req, body.Bytes())) + return gensupport.SendRequest(c.ctx_, c.s.client, req) +} + +// Do executes the "compute.instanceGroups.removeInstances" call. +// 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 *InstanceGroupsRemoveInstancesCall) 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, gensupport.WrapError(&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, gensupport.WrapError(err) + } + ret := &Operation{ + ServerResponse: googleapi.ServerResponse{ + Header: res.Header, + HTTPStatusCode: res.StatusCode, + }, + } + target := &ret + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { + return nil, err + } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.instanceGroups.removeInstances", "response", internallog.HTTPResponse(res, b)) + return ret, nil +} + +type InstanceGroupsSetNamedPortsCall struct { + s *Service + project string + zone string + instanceGroup string + instancegroupssetnamedportsrequest *InstanceGroupsSetNamedPortsRequest + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header +} + +// SetNamedPorts: Sets the named ports for the specified instance group. +// +// - instanceGroup: The name of the instance group where the named ports are +// updated. +// - project: Project ID for this request. +// - zone: The name of the zone +// +// where the instance group is located. +func (r *InstanceGroupsService) SetNamedPorts(project string, zone string, instanceGroup string, instancegroupssetnamedportsrequest *InstanceGroupsSetNamedPortsRequest) *InstanceGroupsSetNamedPortsCall { + c := &InstanceGroupsSetNamedPortsCall{s: r.s, urlParams_: make(gensupport.URLParams)} + c.project = project + c.zone = zone + c.instanceGroup = instanceGroup + c.instancegroupssetnamedportsrequest = instancegroupssetnamedportsrequest + 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 *InstanceGroupsSetNamedPortsCall) RequestId(requestId string) *InstanceGroupsSetNamedPortsCall { + 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 +// details. +func (c *InstanceGroupsSetNamedPortsCall) Fields(s ...googleapi.Field) *InstanceGroupsSetNamedPortsCall { + c.urlParams_.Set("fields", googleapi.CombineFields(s)) + return c +} + +// Context sets the context to be used in this call's Do method. +func (c *InstanceGroupsSetNamedPortsCall) Context(ctx context.Context) *InstanceGroupsSetNamedPortsCall { + c.ctx_ = ctx + return c +} + +// Header returns a http.Header that can be modified by the caller to add +// headers to the request. +func (c *InstanceGroupsSetNamedPortsCall) Header() http.Header { + if c.header_ == nil { + c.header_ = make(http.Header) + } + return c.header_ +} + +func (c *InstanceGroupsSetNamedPortsCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) + body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.instancegroupssetnamedportsrequest) + if err != nil { + return nil, err + } + c.urlParams_.Set("alt", alt) + c.urlParams_.Set("prettyPrint", "false") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instanceGroups/{instanceGroup}/setNamedPorts") + urls += "?" + c.urlParams_.Encode() + req, err := http.NewRequest("POST", urls, body) + if err != nil { + return nil, err + } + req.Header = reqHeaders + googleapi.Expand(req.URL, map[string]string{ + "project": c.project, + "zone": c.zone, + "instanceGroup": c.instanceGroup, + }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.instanceGroups.setNamedPorts", "request", internallog.HTTPRequest(req, body.Bytes())) + return gensupport.SendRequest(c.ctx_, c.s.client, req) +} + +// Do executes the "compute.instanceGroups.setNamedPorts" call. +// 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 *InstanceGroupsSetNamedPortsCall) 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, gensupport.WrapError(&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, gensupport.WrapError(err) + } + ret := &Operation{ + ServerResponse: googleapi.ServerResponse{ + Header: res.Header, + HTTPStatusCode: res.StatusCode, + }, + } + target := &ret + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { + return nil, err + } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.instanceGroups.setNamedPorts", "response", internallog.HTTPResponse(res, b)) + return ret, nil +} + +type InstanceGroupsTestIamPermissionsCall struct { + s *Service + project string + zone string + resource string + testpermissionsrequest *TestPermissionsRequest + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header +} + +// TestIamPermissions: Returns permissions that a caller has on the specified +// resource. +// +// - project: Project ID for this request. +// - resource: Name or id of the resource for this request. +// - zone: The name of the zone for this request. +func (r *InstanceGroupsService) TestIamPermissions(project string, zone string, resource string, testpermissionsrequest *TestPermissionsRequest) *InstanceGroupsTestIamPermissionsCall { + c := &InstanceGroupsTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)} + c.project = project + c.zone = zone + c.resource = resource + c.testpermissionsrequest = testpermissionsrequest + return c +} + +// Fields allows partial responses to be retrieved. See +// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more +// details. +func (c *InstanceGroupsTestIamPermissionsCall) Fields(s ...googleapi.Field) *InstanceGroupsTestIamPermissionsCall { + c.urlParams_.Set("fields", googleapi.CombineFields(s)) + return c +} + +// Context sets the context to be used in this call's Do method. +func (c *InstanceGroupsTestIamPermissionsCall) Context(ctx context.Context) *InstanceGroupsTestIamPermissionsCall { + c.ctx_ = ctx + return c +} + +// Header returns a http.Header that can be modified by the caller to add +// headers to the request. +func (c *InstanceGroupsTestIamPermissionsCall) Header() http.Header { + if c.header_ == nil { + c.header_ = make(http.Header) + } + return c.header_ +} + +func (c *InstanceGroupsTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) + body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.testpermissionsrequest) + if err != nil { + return nil, err + } + c.urlParams_.Set("alt", alt) + c.urlParams_.Set("prettyPrint", "false") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instanceGroups/{resource}/testIamPermissions") + urls += "?" + c.urlParams_.Encode() + req, err := http.NewRequest("POST", urls, body) + if err != nil { + return nil, err + } + req.Header = reqHeaders + googleapi.Expand(req.URL, map[string]string{ + "project": c.project, + "zone": c.zone, + "resource": c.resource, + }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.instanceGroups.testIamPermissions", "request", internallog.HTTPRequest(req, body.Bytes())) + return gensupport.SendRequest(c.ctx_, c.s.client, req) +} + +// Do executes the "compute.instanceGroups.testIamPermissions" call. +// Any non-2xx status code is an error. Response headers are in either +// *TestPermissionsResponse.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 *InstanceGroupsTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, 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, gensupport.WrapError(&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, gensupport.WrapError(err) + } + ret := &TestPermissionsResponse{ + ServerResponse: googleapi.ServerResponse{ + Header: res.Header, + HTTPStatusCode: res.StatusCode, + }, + } + target := &ret + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { + return nil, err + } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.instanceGroups.testIamPermissions", "response", internallog.HTTPResponse(res, b)) + return ret, nil +} + +type InstanceSettingsGetCall struct { + s *Service + project string + zone string + urlParams_ gensupport.URLParams + ifNoneMatch_ string + ctx_ context.Context + header_ http.Header +} + +// Get: Get Instance settings. +// +// - project: Project ID for this request. +// - zone: Name of the zone for this request. +func (r *InstanceSettingsService) Get(project string, zone string) *InstanceSettingsGetCall { + c := &InstanceSettingsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)} + c.project = project + c.zone = zone + return c +} + +// Fields allows partial responses to be retrieved. See +// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more +// details. +func (c *InstanceSettingsGetCall) Fields(s ...googleapi.Field) *InstanceSettingsGetCall { + c.urlParams_.Set("fields", googleapi.CombineFields(s)) + return c +} + +// IfNoneMatch sets an 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. +func (c *InstanceSettingsGetCall) IfNoneMatch(entityTag string) *InstanceSettingsGetCall { + c.ifNoneMatch_ = entityTag + return c +} + +// Context sets the context to be used in this call's Do method. +func (c *InstanceSettingsGetCall) Context(ctx context.Context) *InstanceSettingsGetCall { + c.ctx_ = ctx + return c +} + +// Header returns a http.Header that can be modified by the caller to add +// headers to the request. +func (c *InstanceSettingsGetCall) Header() http.Header { + if c.header_ == nil { + c.header_ = make(http.Header) + } + return c.header_ +} + +func (c *InstanceSettingsGetCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) + if c.ifNoneMatch_ != "" { + reqHeaders.Set("If-None-Match", c.ifNoneMatch_) + } + c.urlParams_.Set("alt", alt) + c.urlParams_.Set("prettyPrint", "false") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instanceSettings") + urls += "?" + c.urlParams_.Encode() + req, err := http.NewRequest("GET", urls, nil) + if err != nil { + return nil, err + } + req.Header = reqHeaders + googleapi.Expand(req.URL, map[string]string{ + "project": c.project, + "zone": c.zone, + }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.instanceSettings.get", "request", internallog.HTTPRequest(req, nil)) + return gensupport.SendRequest(c.ctx_, c.s.client, req) +} + +// Do executes the "compute.instanceSettings.get" call. +// Any non-2xx status code is an error. Response headers are in either +// *InstanceSettings.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 *InstanceSettingsGetCall) Do(opts ...googleapi.CallOption) (*InstanceSettings, 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, gensupport.WrapError(&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, gensupport.WrapError(err) + } + ret := &InstanceSettings{ + ServerResponse: googleapi.ServerResponse{ + Header: res.Header, + HTTPStatusCode: res.StatusCode, + }, + } + target := &ret + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { + return nil, err + } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.instanceSettings.get", "response", internallog.HTTPResponse(res, b)) + return ret, nil +} + +type InstanceSettingsPatchCall struct { + s *Service + project string + zone string + instancesettings *InstanceSettings + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header +} + +// Patch: Patch Instance settings +// +// - project: Project ID for this request. +// - zone: The zone scoping this request. It should conform to RFC1035. +func (r *InstanceSettingsService) Patch(project string, zone string, instancesettings *InstanceSettings) *InstanceSettingsPatchCall { + c := &InstanceSettingsPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)} + c.project = project + c.zone = zone + c.instancesettings = instancesettings + 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 *InstanceSettingsPatchCall) RequestId(requestId string) *InstanceSettingsPatchCall { + c.urlParams_.Set("requestId", requestId) + return c +} + +// UpdateMask sets the optional parameter "updateMask": update_mask indicates +// fields to be updated as part of this request. +func (c *InstanceSettingsPatchCall) UpdateMask(updateMask string) *InstanceSettingsPatchCall { + c.urlParams_.Set("updateMask", updateMask) + return c +} + +// Fields allows partial responses to be retrieved. See +// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more +// details. +func (c *InstanceSettingsPatchCall) Fields(s ...googleapi.Field) *InstanceSettingsPatchCall { + c.urlParams_.Set("fields", googleapi.CombineFields(s)) + return c +} + +// Context sets the context to be used in this call's Do method. +func (c *InstanceSettingsPatchCall) Context(ctx context.Context) *InstanceSettingsPatchCall { + c.ctx_ = ctx + return c +} + +// Header returns a http.Header that can be modified by the caller to add +// headers to the request. +func (c *InstanceSettingsPatchCall) Header() http.Header { + if c.header_ == nil { + c.header_ = make(http.Header) + } + return c.header_ +} + +func (c *InstanceSettingsPatchCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) + body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.instancesettings) + if err != nil { + return nil, err + } + c.urlParams_.Set("alt", alt) + c.urlParams_.Set("prettyPrint", "false") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instanceSettings") + urls += "?" + c.urlParams_.Encode() + req, err := http.NewRequest("PATCH", urls, body) + if err != nil { + return nil, err + } + req.Header = reqHeaders + googleapi.Expand(req.URL, map[string]string{ + "project": c.project, + "zone": c.zone, + }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.instanceSettings.patch", "request", internallog.HTTPRequest(req, body.Bytes())) + return gensupport.SendRequest(c.ctx_, c.s.client, req) +} + +// Do executes the "compute.instanceSettings.patch" call. +// 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 *InstanceSettingsPatchCall) 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, gensupport.WrapError(&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, gensupport.WrapError(err) + } + ret := &Operation{ + ServerResponse: googleapi.ServerResponse{ + Header: res.Header, + HTTPStatusCode: res.StatusCode, + }, + } + target := &ret + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { + return nil, err + } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.instanceSettings.patch", "response", internallog.HTTPResponse(res, b)) + return ret, nil +} + +type InstanceTemplatesAggregatedListCall struct { + s *Service + project string + urlParams_ gensupport.URLParams + ifNoneMatch_ string + ctx_ context.Context + header_ http.Header +} + +// AggregatedList: Retrieves the list of all InstanceTemplates resources, +// regional and global, +// available to the specified project. +// +// To prevent failure, Google recommends that you set +// the +// `returnPartialSuccess` parameter to `true`. +// +// - project: Name of the project scoping this request. +func (r *InstanceTemplatesService) AggregatedList(project string) *InstanceTemplatesAggregatedListCall { + c := &InstanceTemplatesAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)} + c.project = project + return c +} + +// Filter sets the optional parameter "filter": A filter expression that +// filters resources listed in the response. Most +// Compute resources support two types of filter expressions: +// expressions that support regular expressions and expressions that follow +// API improvement proposal AIP-160. +// These two types of filter expressions cannot be mixed in one request. +// +// If you want to use AIP-160, your expression must specify the field name, +// an +// operator, and the value that you want to use for filtering. The value +// must be a string, a number, or a boolean. The 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`. +// +// The `:*` comparison can be used to test whether a key has been defined. +// For example, to find all objects with `owner` label +// use: +// ``` +// labels.owner:* +// ``` +// +// 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 onresource 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) +// ``` +// +// If you want to use a regular expression, use the `eq` (equal) or `ne` +// (not equal) operator against a single un-parenthesized expression with +// or +// without quotes or against multiple parenthesized expressions. +// Examples: +// +// `fieldname eq unquoted literal` +// `fieldname eq 'single quoted literal'` +// `fieldname eq "double quoted literal" +// `(fieldname1 eq literal) (fieldname2 ne "literal")` +// +// The literal value is interpreted as a regular expression using GoogleRE2 +// library syntax. +// The literal value must match the entire field. +// +// For example, to filter for instances that do not end with name +// "instance", +// you would use `name ne .*instance`. +// +// You cannot combine constraints on multiple fields using regular +// expressions. +func (c *InstanceTemplatesAggregatedListCall) Filter(filter string) *InstanceTemplatesAggregatedListCall { + c.urlParams_.Set("filter", filter) + return c +} + +// IncludeAllScopes sets the optional parameter "includeAllScopes": Indicates +// whether every visible scope for each scope type (zone, region, +// global) should be included in the response. For new resource types +// added +// after this field, the flag has no effect as new resource types will +// always +// include every visible scope for each scope type in response. For +// resource +// types which predate this field, if this flag is omitted or false, +// only +// scopes of the scope types where the resource type is expected to be +// found +// will be included. +func (c *InstanceTemplatesAggregatedListCall) IncludeAllScopes(includeAllScopes bool) *InstanceTemplatesAggregatedListCall { + c.urlParams_.Set("includeAllScopes", fmt.Sprint(includeAllScopes)) + 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 *InstanceTemplatesAggregatedListCall) MaxResults(maxResults int64) *InstanceTemplatesAggregatedListCall { + 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 *InstanceTemplatesAggregatedListCall) OrderBy(orderBy string) *InstanceTemplatesAggregatedListCall { + 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 *InstanceTemplatesAggregatedListCall) PageToken(pageToken string) *InstanceTemplatesAggregatedListCall { + c.urlParams_.Set("pageToken", pageToken) + return c +} + +// ReturnPartialSuccess sets the optional parameter "returnPartialSuccess": +// Opt-in for partial success behavior which provides partial results in +// case +// of failure. The default value is false. +// +// For example, when partial success behavior is enabled, aggregatedList for +// a +// single zone scope either returns all resources in the zone or no +// resources, +// with an error code. +func (c *InstanceTemplatesAggregatedListCall) ReturnPartialSuccess(returnPartialSuccess bool) *InstanceTemplatesAggregatedListCall { + c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess)) + return c +} + +// ServiceProjectNumber sets the optional parameter "serviceProjectNumber": The +// Shared VPC service project id or service project number for which +// aggregated list request is invoked for subnetworks list-usable api. +func (c *InstanceTemplatesAggregatedListCall) ServiceProjectNumber(serviceProjectNumber int64) *InstanceTemplatesAggregatedListCall { + c.urlParams_.Set("serviceProjectNumber", fmt.Sprint(serviceProjectNumber)) + return c +} + +// Fields allows partial responses to be retrieved. See +// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more +// details. +func (c *InstanceTemplatesAggregatedListCall) Fields(s ...googleapi.Field) *InstanceTemplatesAggregatedListCall { + c.urlParams_.Set("fields", googleapi.CombineFields(s)) + return c +} + +// IfNoneMatch sets an 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. +func (c *InstanceTemplatesAggregatedListCall) IfNoneMatch(entityTag string) *InstanceTemplatesAggregatedListCall { + c.ifNoneMatch_ = entityTag + return c +} + +// Context sets the context to be used in this call's Do method. +func (c *InstanceTemplatesAggregatedListCall) Context(ctx context.Context) *InstanceTemplatesAggregatedListCall { + c.ctx_ = ctx + return c +} + +// Header returns a http.Header that can be modified by the caller to add +// headers to the request. +func (c *InstanceTemplatesAggregatedListCall) Header() http.Header { + if c.header_ == nil { + c.header_ = make(http.Header) + } + return c.header_ +} + +func (c *InstanceTemplatesAggregatedListCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) + if c.ifNoneMatch_ != "" { + reqHeaders.Set("If-None-Match", c.ifNoneMatch_) + } + c.urlParams_.Set("alt", alt) + c.urlParams_.Set("prettyPrint", "false") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/aggregated/instanceTemplates") + urls += "?" + c.urlParams_.Encode() + req, err := http.NewRequest("GET", urls, nil) + if err != nil { + return nil, err + } + req.Header = reqHeaders + googleapi.Expand(req.URL, map[string]string{ + "project": c.project, + }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.instanceTemplates.aggregatedList", "request", internallog.HTTPRequest(req, nil)) + return gensupport.SendRequest(c.ctx_, c.s.client, req) +} + +// Do executes the "compute.instanceTemplates.aggregatedList" call. +// Any non-2xx status code is an error. Response headers are in either +// *InstanceTemplateAggregatedList.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 *InstanceTemplatesAggregatedListCall) Do(opts ...googleapi.CallOption) (*InstanceTemplateAggregatedList, 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, gensupport.WrapError(&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, gensupport.WrapError(err) + } + ret := &InstanceTemplateAggregatedList{ + ServerResponse: googleapi.ServerResponse{ + Header: res.Header, + HTTPStatusCode: res.StatusCode, + }, + } + target := &ret + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { + return nil, err + } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.instanceTemplates.aggregatedList", "response", internallog.HTTPResponse(res, b)) + return ret, nil +} + +// 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 *InstanceTemplatesAggregatedListCall) Pages(ctx context.Context, f func(*InstanceTemplateAggregatedList) error) error { + c.ctx_ = ctx + defer c.PageToken(c.urlParams_.Get("pageToken")) + 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) + } +} + +type InstanceTemplatesDeleteCall struct { + s *Service + project string + instanceTemplate string + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header +} + +// Delete: Deletes the specified instance template. Deleting an instance +// template is +// permanent and cannot be undone. It is not possible to delete templates +// that are already in use by a managed instance group. +// +// - instanceTemplate: The name of the instance template to delete. +// - project: Project ID for this request. +func (r *InstanceTemplatesService) Delete(project string, instanceTemplate string) *InstanceTemplatesDeleteCall { + c := &InstanceTemplatesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)} + c.project = project + c.instanceTemplate = instanceTemplate + 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 *InstanceTemplatesDeleteCall) RequestId(requestId string) *InstanceTemplatesDeleteCall { + 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 +// details. +func (c *InstanceTemplatesDeleteCall) Fields(s ...googleapi.Field) *InstanceTemplatesDeleteCall { + c.urlParams_.Set("fields", googleapi.CombineFields(s)) + return c +} + +// Context sets the context to be used in this call's Do method. +func (c *InstanceTemplatesDeleteCall) Context(ctx context.Context) *InstanceTemplatesDeleteCall { + c.ctx_ = ctx + return c +} + +// Header returns a http.Header that can be modified by the caller to add +// headers to the request. +func (c *InstanceTemplatesDeleteCall) Header() http.Header { + if c.header_ == nil { + c.header_ = make(http.Header) + } + return c.header_ +} + +func (c *InstanceTemplatesDeleteCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) + c.urlParams_.Set("alt", alt) + c.urlParams_.Set("prettyPrint", "false") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/instanceTemplates/{instanceTemplate}") + urls += "?" + c.urlParams_.Encode() + req, err := http.NewRequest("DELETE", urls, nil) + if err != nil { + return nil, err + } + req.Header = reqHeaders + googleapi.Expand(req.URL, map[string]string{ + "project": c.project, + "instanceTemplate": c.instanceTemplate, + }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.instanceTemplates.delete", "request", internallog.HTTPRequest(req, nil)) + return gensupport.SendRequest(c.ctx_, c.s.client, req) +} + +// Do executes the "compute.instanceTemplates.delete" call. +// 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 *InstanceTemplatesDeleteCall) 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, gensupport.WrapError(&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, gensupport.WrapError(err) + } + ret := &Operation{ + ServerResponse: googleapi.ServerResponse{ + Header: res.Header, + HTTPStatusCode: res.StatusCode, + }, + } + target := &ret + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { + return nil, err + } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.instanceTemplates.delete", "response", internallog.HTTPResponse(res, b)) + return ret, nil +} + +type InstanceTemplatesGetCall struct { + s *Service + project string + instanceTemplate string + urlParams_ gensupport.URLParams + ifNoneMatch_ string + ctx_ context.Context + header_ http.Header +} + +// Get: Returns the specified instance template. +// +// - instanceTemplate: The name of the instance template. +// - project: Project ID for this request. +func (r *InstanceTemplatesService) Get(project string, instanceTemplate string) *InstanceTemplatesGetCall { + c := &InstanceTemplatesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)} + c.project = project + c.instanceTemplate = instanceTemplate + return c +} + +// Fields allows partial responses to be retrieved. See +// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more +// details. +func (c *InstanceTemplatesGetCall) Fields(s ...googleapi.Field) *InstanceTemplatesGetCall { + c.urlParams_.Set("fields", googleapi.CombineFields(s)) + return c +} + +// IfNoneMatch sets an 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. +func (c *InstanceTemplatesGetCall) IfNoneMatch(entityTag string) *InstanceTemplatesGetCall { + c.ifNoneMatch_ = entityTag + return c +} + +// Context sets the context to be used in this call's Do method. +func (c *InstanceTemplatesGetCall) Context(ctx context.Context) *InstanceTemplatesGetCall { + c.ctx_ = ctx + return c +} + +// Header returns a http.Header that can be modified by the caller to add +// headers to the request. +func (c *InstanceTemplatesGetCall) Header() http.Header { + if c.header_ == nil { + c.header_ = make(http.Header) + } + return c.header_ +} + +func (c *InstanceTemplatesGetCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) + if c.ifNoneMatch_ != "" { + reqHeaders.Set("If-None-Match", c.ifNoneMatch_) + } + c.urlParams_.Set("alt", alt) + c.urlParams_.Set("prettyPrint", "false") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/instanceTemplates/{instanceTemplate}") + urls += "?" + c.urlParams_.Encode() + req, err := http.NewRequest("GET", urls, nil) + if err != nil { + return nil, err + } + req.Header = reqHeaders + googleapi.Expand(req.URL, map[string]string{ + "project": c.project, + "instanceTemplate": c.instanceTemplate, + }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.instanceTemplates.get", "request", internallog.HTTPRequest(req, nil)) + return gensupport.SendRequest(c.ctx_, c.s.client, req) +} + +// Do executes the "compute.instanceTemplates.get" call. +// Any non-2xx status code is an error. Response headers are in either +// *InstanceTemplate.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 *InstanceTemplatesGetCall) Do(opts ...googleapi.CallOption) (*InstanceTemplate, 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, gensupport.WrapError(&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, gensupport.WrapError(err) + } + ret := &InstanceTemplate{ + ServerResponse: googleapi.ServerResponse{ + Header: res.Header, + HTTPStatusCode: res.StatusCode, + }, + } + target := &ret + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { + return nil, err + } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.instanceTemplates.get", "response", internallog.HTTPResponse(res, b)) + return ret, nil +} + +type InstanceTemplatesGetIamPolicyCall struct { + s *Service + project string + resource string + urlParams_ gensupport.URLParams + ifNoneMatch_ string + ctx_ context.Context + header_ http.Header +} + +// GetIamPolicy: Gets the access control policy for a resource. May be empty if +// no such +// policy or resource exists. +// +// - project: Project ID for this request. +// - resource: Name or id of the resource for this request. +func (r *InstanceTemplatesService) GetIamPolicy(project string, resource string) *InstanceTemplatesGetIamPolicyCall { + c := &InstanceTemplatesGetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)} + c.project = project + c.resource = resource + return c +} + +// OptionsRequestedPolicyVersion sets the optional parameter +// "optionsRequestedPolicyVersion": Requested IAM Policy version. +func (c *InstanceTemplatesGetIamPolicyCall) OptionsRequestedPolicyVersion(optionsRequestedPolicyVersion int64) *InstanceTemplatesGetIamPolicyCall { + c.urlParams_.Set("optionsRequestedPolicyVersion", fmt.Sprint(optionsRequestedPolicyVersion)) + return c +} + +// Fields allows partial responses to be retrieved. See +// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more +// details. +func (c *InstanceTemplatesGetIamPolicyCall) Fields(s ...googleapi.Field) *InstanceTemplatesGetIamPolicyCall { + c.urlParams_.Set("fields", googleapi.CombineFields(s)) + return c +} + +// IfNoneMatch sets an 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. +func (c *InstanceTemplatesGetIamPolicyCall) IfNoneMatch(entityTag string) *InstanceTemplatesGetIamPolicyCall { + c.ifNoneMatch_ = entityTag + return c +} + +// Context sets the context to be used in this call's Do method. +func (c *InstanceTemplatesGetIamPolicyCall) Context(ctx context.Context) *InstanceTemplatesGetIamPolicyCall { + c.ctx_ = ctx + return c +} + +// Header returns a http.Header that can be modified by the caller to add +// headers to the request. +func (c *InstanceTemplatesGetIamPolicyCall) Header() http.Header { + if c.header_ == nil { + c.header_ = make(http.Header) + } + return c.header_ +} + +func (c *InstanceTemplatesGetIamPolicyCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) + if c.ifNoneMatch_ != "" { + reqHeaders.Set("If-None-Match", c.ifNoneMatch_) + } + c.urlParams_.Set("alt", alt) + c.urlParams_.Set("prettyPrint", "false") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/instanceTemplates/{resource}/getIamPolicy") + urls += "?" + c.urlParams_.Encode() + req, err := http.NewRequest("GET", urls, nil) + if err != nil { + return nil, err + } + req.Header = reqHeaders + googleapi.Expand(req.URL, map[string]string{ + "project": c.project, + "resource": c.resource, + }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.instanceTemplates.getIamPolicy", "request", internallog.HTTPRequest(req, nil)) + return gensupport.SendRequest(c.ctx_, c.s.client, req) +} + +// Do executes the "compute.instanceTemplates.getIamPolicy" call. +// Any non-2xx status code is an error. Response headers are in either +// *Policy.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 *InstanceTemplatesGetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, 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, gensupport.WrapError(&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, gensupport.WrapError(err) + } + ret := &Policy{ + ServerResponse: googleapi.ServerResponse{ + Header: res.Header, + HTTPStatusCode: res.StatusCode, + }, + } + target := &ret + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { + return nil, err + } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.instanceTemplates.getIamPolicy", "response", internallog.HTTPResponse(res, b)) + return ret, nil +} + +type InstanceTemplatesInsertCall struct { + s *Service + project string + instancetemplate *InstanceTemplate + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header +} + +// Insert: Creates an instance template in the specified project using the +// data that is included in the request. If you are creating a new template +// to +// update an existing instance group, your new instance template must use +// the +// same network or, if applicable, the same subnetwork as the +// original +// template. +// +// - project: Project ID for this request. +func (r *InstanceTemplatesService) Insert(project string, instancetemplate *InstanceTemplate) *InstanceTemplatesInsertCall { + c := &InstanceTemplatesInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)} + c.project = project + c.instancetemplate = instancetemplate + 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 *InstanceTemplatesInsertCall) RequestId(requestId string) *InstanceTemplatesInsertCall { + 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 +// details. +func (c *InstanceTemplatesInsertCall) Fields(s ...googleapi.Field) *InstanceTemplatesInsertCall { + c.urlParams_.Set("fields", googleapi.CombineFields(s)) + return c +} + +// Context sets the context to be used in this call's Do method. +func (c *InstanceTemplatesInsertCall) Context(ctx context.Context) *InstanceTemplatesInsertCall { + c.ctx_ = ctx + return c +} + +// Header returns a http.Header that can be modified by the caller to add +// headers to the request. +func (c *InstanceTemplatesInsertCall) Header() http.Header { + if c.header_ == nil { + c.header_ = make(http.Header) + } + return c.header_ +} + +func (c *InstanceTemplatesInsertCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) + body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.instancetemplate) + if err != nil { + return nil, err + } + c.urlParams_.Set("alt", alt) + c.urlParams_.Set("prettyPrint", "false") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/instanceTemplates") + urls += "?" + c.urlParams_.Encode() + req, err := http.NewRequest("POST", urls, body) + if err != nil { + return nil, err + } + req.Header = reqHeaders + googleapi.Expand(req.URL, map[string]string{ + "project": c.project, + }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.instanceTemplates.insert", "request", internallog.HTTPRequest(req, body.Bytes())) + return gensupport.SendRequest(c.ctx_, c.s.client, req) +} + +// Do executes the "compute.instanceTemplates.insert" call. +// 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 *InstanceTemplatesInsertCall) 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, gensupport.WrapError(&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, gensupport.WrapError(err) + } + ret := &Operation{ + ServerResponse: googleapi.ServerResponse{ + Header: res.Header, + HTTPStatusCode: res.StatusCode, + }, + } + target := &ret + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { + return nil, err + } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.instanceTemplates.insert", "response", internallog.HTTPResponse(res, b)) + return ret, nil +} + +type InstanceTemplatesListCall struct { + s *Service + project string + urlParams_ gensupport.URLParams + ifNoneMatch_ string + ctx_ context.Context + header_ http.Header +} + +// List: Retrieves a list of instance templates that are contained within +// the specified project. +// +// - project: Project ID for this request. +func (r *InstanceTemplatesService) List(project string) *InstanceTemplatesListCall { + c := &InstanceTemplatesListCall{s: r.s, urlParams_: make(gensupport.URLParams)} + c.project = project + return c +} + +// Filter sets the optional parameter "filter": A filter expression that +// filters resources listed in the response. Most +// Compute resources support two types of filter expressions: +// expressions that support regular expressions and expressions that follow +// API improvement proposal AIP-160. +// These two types of filter expressions cannot be mixed in one request. +// +// If you want to use AIP-160, your expression must specify the field name, +// an +// operator, and the value that you want to use for filtering. The value +// must be a string, a number, or a boolean. The 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`. +// +// The `:*` comparison can be used to test whether a key has been defined. +// For example, to find all objects with `owner` label +// use: +// ``` +// labels.owner:* +// ``` +// +// 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 onresource 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) +// ``` +// +// If you want to use a regular expression, use the `eq` (equal) or `ne` +// (not equal) operator against a single un-parenthesized expression with +// or +// without quotes or against multiple parenthesized expressions. +// Examples: +// +// `fieldname eq unquoted literal` +// `fieldname eq 'single quoted literal'` +// `fieldname eq "double quoted literal" +// `(fieldname1 eq literal) (fieldname2 ne "literal")` +// +// The literal value is interpreted as a regular expression using GoogleRE2 +// library syntax. +// The literal value must match the entire field. +// +// For example, to filter for instances that do not end with name +// "instance", +// you would use `name ne .*instance`. +// +// You cannot combine constraints on multiple fields using regular +// expressions. +func (c *InstanceTemplatesListCall) Filter(filter string) *InstanceTemplatesListCall { + 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 *InstanceTemplatesListCall) MaxResults(maxResults int64) *InstanceTemplatesListCall { + 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 *InstanceTemplatesListCall) OrderBy(orderBy string) *InstanceTemplatesListCall { + 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 *InstanceTemplatesListCall) PageToken(pageToken string) *InstanceTemplatesListCall { + c.urlParams_.Set("pageToken", pageToken) + return c +} + +// ReturnPartialSuccess sets the optional parameter "returnPartialSuccess": +// Opt-in for partial success behavior which provides partial results in +// case +// of failure. The default value is false. +// +// For example, when partial success behavior is enabled, aggregatedList for +// a +// single zone scope either returns all resources in the zone or no +// resources, +// with an error code. +func (c *InstanceTemplatesListCall) ReturnPartialSuccess(returnPartialSuccess bool) *InstanceTemplatesListCall { + c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess)) + return c +} + +// Fields allows partial responses to be retrieved. See +// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more +// details. +func (c *InstanceTemplatesListCall) Fields(s ...googleapi.Field) *InstanceTemplatesListCall { + c.urlParams_.Set("fields", googleapi.CombineFields(s)) + return c +} + +// IfNoneMatch sets an 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. +func (c *InstanceTemplatesListCall) IfNoneMatch(entityTag string) *InstanceTemplatesListCall { + c.ifNoneMatch_ = entityTag + return c +} + +// Context sets the context to be used in this call's Do method. +func (c *InstanceTemplatesListCall) Context(ctx context.Context) *InstanceTemplatesListCall { + c.ctx_ = ctx + return c +} + +// Header returns a http.Header that can be modified by the caller to add +// headers to the request. +func (c *InstanceTemplatesListCall) Header() http.Header { + if c.header_ == nil { + c.header_ = make(http.Header) + } + return c.header_ +} + +func (c *InstanceTemplatesListCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) + if c.ifNoneMatch_ != "" { + reqHeaders.Set("If-None-Match", c.ifNoneMatch_) + } + c.urlParams_.Set("alt", alt) + c.urlParams_.Set("prettyPrint", "false") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/instanceTemplates") + urls += "?" + c.urlParams_.Encode() + req, err := http.NewRequest("GET", urls, nil) + if err != nil { + return nil, err + } + req.Header = reqHeaders + googleapi.Expand(req.URL, map[string]string{ + "project": c.project, + }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.instanceTemplates.list", "request", internallog.HTTPRequest(req, nil)) + return gensupport.SendRequest(c.ctx_, c.s.client, req) +} + +// Do executes the "compute.instanceTemplates.list" call. +// Any non-2xx status code is an error. Response headers are in either +// *InstanceTemplateList.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 *InstanceTemplatesListCall) Do(opts ...googleapi.CallOption) (*InstanceTemplateList, 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, gensupport.WrapError(&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, gensupport.WrapError(err) + } + ret := &InstanceTemplateList{ + ServerResponse: googleapi.ServerResponse{ + Header: res.Header, + HTTPStatusCode: res.StatusCode, + }, + } + target := &ret + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { + return nil, err + } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.instanceTemplates.list", "response", internallog.HTTPResponse(res, b)) + return ret, nil +} + +// 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 *InstanceTemplatesListCall) Pages(ctx context.Context, f func(*InstanceTemplateList) error) error { + c.ctx_ = ctx + defer c.PageToken(c.urlParams_.Get("pageToken")) + 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) + } +} + +type InstanceTemplatesSetIamPolicyCall struct { + s *Service + project string + resource string + globalsetpolicyrequest *GlobalSetPolicyRequest + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header +} + +// SetIamPolicy: Sets the access control policy on the specified +// resource. +// Replaces any existing policy. +// +// - project: Project ID for this request. +// - resource: Name or id of the resource for this request. +func (r *InstanceTemplatesService) SetIamPolicy(project string, resource string, globalsetpolicyrequest *GlobalSetPolicyRequest) *InstanceTemplatesSetIamPolicyCall { + c := &InstanceTemplatesSetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)} + c.project = project + c.resource = resource + c.globalsetpolicyrequest = globalsetpolicyrequest + return c +} + +// Fields allows partial responses to be retrieved. See +// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more +// details. +func (c *InstanceTemplatesSetIamPolicyCall) Fields(s ...googleapi.Field) *InstanceTemplatesSetIamPolicyCall { + c.urlParams_.Set("fields", googleapi.CombineFields(s)) + return c +} + +// Context sets the context to be used in this call's Do method. +func (c *InstanceTemplatesSetIamPolicyCall) Context(ctx context.Context) *InstanceTemplatesSetIamPolicyCall { + c.ctx_ = ctx + return c +} + +// Header returns a http.Header that can be modified by the caller to add +// headers to the request. +func (c *InstanceTemplatesSetIamPolicyCall) Header() http.Header { + if c.header_ == nil { + c.header_ = make(http.Header) + } + return c.header_ +} + +func (c *InstanceTemplatesSetIamPolicyCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) + body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.globalsetpolicyrequest) + if err != nil { + return nil, err + } + c.urlParams_.Set("alt", alt) + c.urlParams_.Set("prettyPrint", "false") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/instanceTemplates/{resource}/setIamPolicy") + urls += "?" + c.urlParams_.Encode() + req, err := http.NewRequest("POST", urls, body) + if err != nil { + return nil, err + } + req.Header = reqHeaders + googleapi.Expand(req.URL, map[string]string{ + "project": c.project, + "resource": c.resource, + }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.instanceTemplates.setIamPolicy", "request", internallog.HTTPRequest(req, body.Bytes())) + return gensupport.SendRequest(c.ctx_, c.s.client, req) +} + +// Do executes the "compute.instanceTemplates.setIamPolicy" call. +// Any non-2xx status code is an error. Response headers are in either +// *Policy.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 *InstanceTemplatesSetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, 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, gensupport.WrapError(&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, gensupport.WrapError(err) + } + ret := &Policy{ + ServerResponse: googleapi.ServerResponse{ + Header: res.Header, + HTTPStatusCode: res.StatusCode, + }, + } + target := &ret + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { + return nil, err + } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.instanceTemplates.setIamPolicy", "response", internallog.HTTPResponse(res, b)) + return ret, nil +} + +type InstanceTemplatesTestIamPermissionsCall struct { + s *Service + project string + resource string + testpermissionsrequest *TestPermissionsRequest + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header +} + +// TestIamPermissions: Returns permissions that a caller has on the specified +// resource. +// +// - project: Project ID for this request. +// - resource: Name or id of the resource for this request. +func (r *InstanceTemplatesService) TestIamPermissions(project string, resource string, testpermissionsrequest *TestPermissionsRequest) *InstanceTemplatesTestIamPermissionsCall { + c := &InstanceTemplatesTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)} + c.project = project + c.resource = resource + c.testpermissionsrequest = testpermissionsrequest + return c +} + +// Fields allows partial responses to be retrieved. See +// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more +// details. +func (c *InstanceTemplatesTestIamPermissionsCall) Fields(s ...googleapi.Field) *InstanceTemplatesTestIamPermissionsCall { + c.urlParams_.Set("fields", googleapi.CombineFields(s)) + return c +} + +// Context sets the context to be used in this call's Do method. +func (c *InstanceTemplatesTestIamPermissionsCall) Context(ctx context.Context) *InstanceTemplatesTestIamPermissionsCall { + c.ctx_ = ctx + return c +} + +// Header returns a http.Header that can be modified by the caller to add +// headers to the request. +func (c *InstanceTemplatesTestIamPermissionsCall) Header() http.Header { + if c.header_ == nil { + c.header_ = make(http.Header) + } + return c.header_ +} + +func (c *InstanceTemplatesTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) + body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.testpermissionsrequest) + if err != nil { + return nil, err + } + c.urlParams_.Set("alt", alt) + c.urlParams_.Set("prettyPrint", "false") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/instanceTemplates/{resource}/testIamPermissions") + urls += "?" + c.urlParams_.Encode() + req, err := http.NewRequest("POST", urls, body) + if err != nil { + return nil, err + } + req.Header = reqHeaders + googleapi.Expand(req.URL, map[string]string{ + "project": c.project, + "resource": c.resource, + }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.instanceTemplates.testIamPermissions", "request", internallog.HTTPRequest(req, body.Bytes())) + return gensupport.SendRequest(c.ctx_, c.s.client, req) +} + +// Do executes the "compute.instanceTemplates.testIamPermissions" call. +// Any non-2xx status code is an error. Response headers are in either +// *TestPermissionsResponse.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 *InstanceTemplatesTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, 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, gensupport.WrapError(&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, gensupport.WrapError(err) + } + ret := &TestPermissionsResponse{ + ServerResponse: googleapi.ServerResponse{ + Header: res.Header, + HTTPStatusCode: res.StatusCode, + }, + } + target := &ret + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { + return nil, err + } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.instanceTemplates.testIamPermissions", "response", internallog.HTTPResponse(res, b)) + return ret, nil +} + +type InstancesAddAccessConfigCall struct { + s *Service + project string + zone string + instance string + accessconfig *AccessConfig + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header +} + +// AddAccessConfig: Adds an access config to an instance's network interface. +// +// - instance: The instance name for this request. +// - networkInterface: The name of the network interface to add to this +// instance. +// - project: Project ID for this request. +// - zone: The name of the zone for this request. +func (r *InstancesService) AddAccessConfig(project string, zone string, instance string, networkInterface string, accessconfig *AccessConfig) *InstancesAddAccessConfigCall { + c := &InstancesAddAccessConfigCall{s: r.s, urlParams_: make(gensupport.URLParams)} + c.project = project + c.zone = zone + c.instance = instance + c.urlParams_.Set("networkInterface", networkInterface) + c.accessconfig = accessconfig + 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 *InstancesAddAccessConfigCall) RequestId(requestId string) *InstancesAddAccessConfigCall { + 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 +// details. +func (c *InstancesAddAccessConfigCall) Fields(s ...googleapi.Field) *InstancesAddAccessConfigCall { + c.urlParams_.Set("fields", googleapi.CombineFields(s)) + return c +} + +// Context sets the context to be used in this call's Do method. +func (c *InstancesAddAccessConfigCall) Context(ctx context.Context) *InstancesAddAccessConfigCall { + c.ctx_ = ctx + return c +} + +// Header returns a http.Header that can be modified by the caller to add +// headers to the request. +func (c *InstancesAddAccessConfigCall) Header() http.Header { + if c.header_ == nil { + c.header_ = make(http.Header) + } + return c.header_ +} + +func (c *InstancesAddAccessConfigCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) + body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.accessconfig) + if err != nil { + return nil, err + } + c.urlParams_.Set("alt", alt) + c.urlParams_.Set("prettyPrint", "false") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instances/{instance}/addAccessConfig") + urls += "?" + c.urlParams_.Encode() + req, err := http.NewRequest("POST", urls, body) + if err != nil { + return nil, err + } + req.Header = reqHeaders + googleapi.Expand(req.URL, map[string]string{ + "project": c.project, + "zone": c.zone, + "instance": c.instance, + }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.instances.addAccessConfig", "request", internallog.HTTPRequest(req, body.Bytes())) + return gensupport.SendRequest(c.ctx_, c.s.client, req) +} + +// Do executes the "compute.instances.addAccessConfig" call. +// 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 *InstancesAddAccessConfigCall) 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, gensupport.WrapError(&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, gensupport.WrapError(err) + } + ret := &Operation{ + ServerResponse: googleapi.ServerResponse{ + Header: res.Header, + HTTPStatusCode: res.StatusCode, + }, + } + target := &ret + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { + return nil, err + } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.instances.addAccessConfig", "response", internallog.HTTPResponse(res, b)) + return ret, nil +} + +type InstancesAddNetworkInterfaceCall struct { + s *Service + project string + zone string + instance string + networkinterface *NetworkInterface + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header +} + +// AddNetworkInterface: Adds one dynamic network interface to an active +// instance. +// +// - instance: The instance name for this request stored as resource_id. +// Name should conform to RFC1035 or be an unsigned long integer. +// - project: Project ID for this request. +// - zone: The name of the zone for this request. +func (r *InstancesService) AddNetworkInterface(project string, zone string, instance string, networkinterface *NetworkInterface) *InstancesAddNetworkInterfaceCall { + c := &InstancesAddNetworkInterfaceCall{s: r.s, urlParams_: make(gensupport.URLParams)} + c.project = project + c.zone = zone + c.instance = instance + c.networkinterface = networkinterface + 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 *InstancesAddNetworkInterfaceCall) RequestId(requestId string) *InstancesAddNetworkInterfaceCall { + 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 +// details. +func (c *InstancesAddNetworkInterfaceCall) Fields(s ...googleapi.Field) *InstancesAddNetworkInterfaceCall { + c.urlParams_.Set("fields", googleapi.CombineFields(s)) + return c +} + +// Context sets the context to be used in this call's Do method. +func (c *InstancesAddNetworkInterfaceCall) Context(ctx context.Context) *InstancesAddNetworkInterfaceCall { + c.ctx_ = ctx + return c +} + +// Header returns a http.Header that can be modified by the caller to add +// headers to the request. +func (c *InstancesAddNetworkInterfaceCall) Header() http.Header { + if c.header_ == nil { + c.header_ = make(http.Header) + } + return c.header_ +} + +func (c *InstancesAddNetworkInterfaceCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) + body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.networkinterface) + if err != nil { + return nil, err + } + c.urlParams_.Set("alt", alt) + c.urlParams_.Set("prettyPrint", "false") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instances/{instance}/addNetworkInterface") + urls += "?" + c.urlParams_.Encode() + req, err := http.NewRequest("POST", urls, body) + if err != nil { + return nil, err + } + req.Header = reqHeaders + googleapi.Expand(req.URL, map[string]string{ + "project": c.project, + "zone": c.zone, + "instance": c.instance, + }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.instances.addNetworkInterface", "request", internallog.HTTPRequest(req, body.Bytes())) + return gensupport.SendRequest(c.ctx_, c.s.client, req) +} + +// Do executes the "compute.instances.addNetworkInterface" call. +// 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 *InstancesAddNetworkInterfaceCall) 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, gensupport.WrapError(&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, gensupport.WrapError(err) + } + ret := &Operation{ + ServerResponse: googleapi.ServerResponse{ + Header: res.Header, + HTTPStatusCode: res.StatusCode, + }, + } + target := &ret + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { + return nil, err + } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.instances.addNetworkInterface", "response", internallog.HTTPResponse(res, b)) + return ret, nil +} + +type InstancesAddResourcePoliciesCall struct { + s *Service + project string + zone string + instance string + instancesaddresourcepoliciesrequest *InstancesAddResourcePoliciesRequest + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header +} + +// AddResourcePolicies: Adds existing resource policies to an instance. You can +// only add one +// policy right now which will be applied to this instance for scheduling +// live +// migrations. +// +// - instance: The instance name for this request. +// - project: Project ID for this request. +// - zone: The name of the zone for this request. +func (r *InstancesService) AddResourcePolicies(project string, zone string, instance string, instancesaddresourcepoliciesrequest *InstancesAddResourcePoliciesRequest) *InstancesAddResourcePoliciesCall { + c := &InstancesAddResourcePoliciesCall{s: r.s, urlParams_: make(gensupport.URLParams)} + c.project = project + c.zone = zone + c.instance = instance + c.instancesaddresourcepoliciesrequest = instancesaddresourcepoliciesrequest + 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 *InstancesAddResourcePoliciesCall) RequestId(requestId string) *InstancesAddResourcePoliciesCall { + 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 +// details. +func (c *InstancesAddResourcePoliciesCall) Fields(s ...googleapi.Field) *InstancesAddResourcePoliciesCall { + c.urlParams_.Set("fields", googleapi.CombineFields(s)) + return c +} + +// Context sets the context to be used in this call's Do method. +func (c *InstancesAddResourcePoliciesCall) Context(ctx context.Context) *InstancesAddResourcePoliciesCall { + c.ctx_ = ctx + return c +} + +// Header returns a http.Header that can be modified by the caller to add +// headers to the request. +func (c *InstancesAddResourcePoliciesCall) Header() http.Header { + if c.header_ == nil { + c.header_ = make(http.Header) + } + return c.header_ +} + +func (c *InstancesAddResourcePoliciesCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) + body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.instancesaddresourcepoliciesrequest) + if err != nil { + return nil, err + } + c.urlParams_.Set("alt", alt) + c.urlParams_.Set("prettyPrint", "false") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instances/{instance}/addResourcePolicies") + urls += "?" + c.urlParams_.Encode() + req, err := http.NewRequest("POST", urls, body) + if err != nil { + return nil, err + } + req.Header = reqHeaders + googleapi.Expand(req.URL, map[string]string{ + "project": c.project, + "zone": c.zone, + "instance": c.instance, + }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.instances.addResourcePolicies", "request", internallog.HTTPRequest(req, body.Bytes())) + return gensupport.SendRequest(c.ctx_, c.s.client, req) +} + +// Do executes the "compute.instances.addResourcePolicies" call. +// 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 *InstancesAddResourcePoliciesCall) 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, gensupport.WrapError(&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, gensupport.WrapError(err) + } + ret := &Operation{ + ServerResponse: googleapi.ServerResponse{ + Header: res.Header, + HTTPStatusCode: res.StatusCode, + }, + } + target := &ret + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { + return nil, err + } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.instances.addResourcePolicies", "response", internallog.HTTPResponse(res, b)) + return ret, nil +} + +type InstancesAggregatedListCall struct { + s *Service + project string + urlParams_ gensupport.URLParams + ifNoneMatch_ string + ctx_ context.Context + header_ http.Header +} + +// AggregatedList: Retrieves an aggregated list of all of the instances in your +// project +// across all regions and zones. +// +// The performance of this method degrades when a filter is specified on +// a +// project that has a very large number of instances. +// +// To prevent failure, Google recommends that you set +// the +// `returnPartialSuccess` parameter to `true`. +// +// - project: Project ID for this request. +func (r *InstancesService) AggregatedList(project string) *InstancesAggregatedListCall { + c := &InstancesAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)} + c.project = project + return c +} + +// Filter sets the optional parameter "filter": A filter expression that +// filters resources listed in the response. Most +// Compute resources support two types of filter expressions: +// expressions that support regular expressions and expressions that follow +// API improvement proposal AIP-160. +// These two types of filter expressions cannot be mixed in one request. +// +// If you want to use AIP-160, your expression must specify the field name, +// an +// operator, and the value that you want to use for filtering. The value +// must be a string, a number, or a boolean. The 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`. +// +// The `:*` comparison can be used to test whether a key has been defined. +// For example, to find all objects with `owner` label +// use: +// ``` +// labels.owner:* +// ``` +// +// 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 onresource 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) +// ``` +// +// If you want to use a regular expression, use the `eq` (equal) or `ne` +// (not equal) operator against a single un-parenthesized expression with +// or +// without quotes or against multiple parenthesized expressions. +// Examples: +// +// `fieldname eq unquoted literal` +// `fieldname eq 'single quoted literal'` +// `fieldname eq "double quoted literal" +// `(fieldname1 eq literal) (fieldname2 ne "literal")` +// +// The literal value is interpreted as a regular expression using GoogleRE2 +// library syntax. +// The literal value must match the entire field. +// +// For example, to filter for instances that do not end with name +// "instance", +// you would use `name ne .*instance`. +// +// You cannot combine constraints on multiple fields using regular +// expressions. +func (c *InstancesAggregatedListCall) Filter(filter string) *InstancesAggregatedListCall { + c.urlParams_.Set("filter", filter) + return c +} + +// IncludeAllScopes sets the optional parameter "includeAllScopes": Indicates +// whether every visible scope for each scope type (zone, region, +// global) should be included in the response. For new resource types +// added +// after this field, the flag has no effect as new resource types will +// always +// include every visible scope for each scope type in response. For +// resource +// types which predate this field, if this flag is omitted or false, +// only +// scopes of the scope types where the resource type is expected to be +// found +// will be included. +func (c *InstancesAggregatedListCall) IncludeAllScopes(includeAllScopes bool) *InstancesAggregatedListCall { + c.urlParams_.Set("includeAllScopes", fmt.Sprint(includeAllScopes)) + 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 *InstancesAggregatedListCall) MaxResults(maxResults int64) *InstancesAggregatedListCall { + 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 *InstancesAggregatedListCall) OrderBy(orderBy string) *InstancesAggregatedListCall { + 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 *InstancesAggregatedListCall) PageToken(pageToken string) *InstancesAggregatedListCall { + c.urlParams_.Set("pageToken", pageToken) + return c +} + +// ReturnPartialSuccess sets the optional parameter "returnPartialSuccess": +// Opt-in for partial success behavior which provides partial results in +// case +// of failure. The default value is false. +// +// For example, when partial success behavior is enabled, aggregatedList for +// a +// single zone scope either returns all resources in the zone or no +// resources, +// with an error code. +func (c *InstancesAggregatedListCall) ReturnPartialSuccess(returnPartialSuccess bool) *InstancesAggregatedListCall { + c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess)) + return c +} + +// ServiceProjectNumber sets the optional parameter "serviceProjectNumber": The +// Shared VPC service project id or service project number for which +// aggregated list request is invoked for subnetworks list-usable api. +func (c *InstancesAggregatedListCall) ServiceProjectNumber(serviceProjectNumber int64) *InstancesAggregatedListCall { + c.urlParams_.Set("serviceProjectNumber", fmt.Sprint(serviceProjectNumber)) + return c +} + +// Fields allows partial responses to be retrieved. See +// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more +// details. +func (c *InstancesAggregatedListCall) Fields(s ...googleapi.Field) *InstancesAggregatedListCall { + c.urlParams_.Set("fields", googleapi.CombineFields(s)) + return c +} + +// IfNoneMatch sets an 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. +func (c *InstancesAggregatedListCall) IfNoneMatch(entityTag string) *InstancesAggregatedListCall { + c.ifNoneMatch_ = entityTag + return c +} + +// Context sets the context to be used in this call's Do method. +func (c *InstancesAggregatedListCall) Context(ctx context.Context) *InstancesAggregatedListCall { + c.ctx_ = ctx + return c +} + +// Header returns a http.Header that can be modified by the caller to add +// headers to the request. +func (c *InstancesAggregatedListCall) Header() http.Header { + if c.header_ == nil { + c.header_ = make(http.Header) + } + return c.header_ +} + +func (c *InstancesAggregatedListCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) + if c.ifNoneMatch_ != "" { + reqHeaders.Set("If-None-Match", c.ifNoneMatch_) + } + c.urlParams_.Set("alt", alt) + c.urlParams_.Set("prettyPrint", "false") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/aggregated/instances") + urls += "?" + c.urlParams_.Encode() + req, err := http.NewRequest("GET", urls, nil) + if err != nil { + return nil, err + } + req.Header = reqHeaders + googleapi.Expand(req.URL, map[string]string{ + "project": c.project, + }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.instances.aggregatedList", "request", internallog.HTTPRequest(req, nil)) + return gensupport.SendRequest(c.ctx_, c.s.client, req) +} + +// Do executes the "compute.instances.aggregatedList" call. +// Any non-2xx status code is an error. Response headers are in either +// *InstanceAggregatedList.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 *InstancesAggregatedListCall) Do(opts ...googleapi.CallOption) (*InstanceAggregatedList, 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, gensupport.WrapError(&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, gensupport.WrapError(err) + } + ret := &InstanceAggregatedList{ + ServerResponse: googleapi.ServerResponse{ + Header: res.Header, + HTTPStatusCode: res.StatusCode, + }, + } + target := &ret + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { + return nil, err + } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.instances.aggregatedList", "response", internallog.HTTPResponse(res, b)) + return ret, nil +} + +// 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 *InstancesAggregatedListCall) Pages(ctx context.Context, f func(*InstanceAggregatedList) error) error { + c.ctx_ = ctx + defer c.PageToken(c.urlParams_.Get("pageToken")) + 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) + } +} + +type InstancesAttachDiskCall struct { + s *Service + project string + zone string + instance string + attacheddisk *AttachedDisk + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header +} + +// AttachDisk: Attaches an existing Disk resource to an instance. You must +// first +// create the disk before you can attach it. It is not possible to create +// and attach a disk at the same time. For more information, readAdding +// a +// persistent disk to your instance. +// +// - instance: The instance name for this request. +// - project: Project ID for this request. +// - zone: The name of the zone for this request. +func (r *InstancesService) AttachDisk(project string, zone string, instance string, attacheddisk *AttachedDisk) *InstancesAttachDiskCall { + c := &InstancesAttachDiskCall{s: r.s, urlParams_: make(gensupport.URLParams)} + c.project = project + c.zone = zone + c.instance = instance + c.attacheddisk = attacheddisk + return c +} + +// ForceAttach sets the optional parameter "forceAttach": Whether to force +// attach the regional disk even if it's currently attached +// to another instance. If you try to force attach a zonal disk to an +// instance, you will receive an error. +func (c *InstancesAttachDiskCall) ForceAttach(forceAttach bool) *InstancesAttachDiskCall { + c.urlParams_.Set("forceAttach", fmt.Sprint(forceAttach)) + 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 *InstancesAttachDiskCall) RequestId(requestId string) *InstancesAttachDiskCall { + 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 +// details. +func (c *InstancesAttachDiskCall) Fields(s ...googleapi.Field) *InstancesAttachDiskCall { + c.urlParams_.Set("fields", googleapi.CombineFields(s)) + return c +} + +// Context sets the context to be used in this call's Do method. +func (c *InstancesAttachDiskCall) Context(ctx context.Context) *InstancesAttachDiskCall { + c.ctx_ = ctx + return c +} + +// Header returns a http.Header that can be modified by the caller to add +// headers to the request. +func (c *InstancesAttachDiskCall) Header() http.Header { + if c.header_ == nil { + c.header_ = make(http.Header) + } + return c.header_ +} + +func (c *InstancesAttachDiskCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) + body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.attacheddisk) + if err != nil { + return nil, err + } + c.urlParams_.Set("alt", alt) + c.urlParams_.Set("prettyPrint", "false") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instances/{instance}/attachDisk") + urls += "?" + c.urlParams_.Encode() + req, err := http.NewRequest("POST", urls, body) + if err != nil { + return nil, err + } + req.Header = reqHeaders + googleapi.Expand(req.URL, map[string]string{ + "project": c.project, + "zone": c.zone, + "instance": c.instance, + }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.instances.attachDisk", "request", internallog.HTTPRequest(req, body.Bytes())) + return gensupport.SendRequest(c.ctx_, c.s.client, req) +} + +// Do executes the "compute.instances.attachDisk" call. +// 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 *InstancesAttachDiskCall) 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, gensupport.WrapError(&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, gensupport.WrapError(err) + } + ret := &Operation{ + ServerResponse: googleapi.ServerResponse{ + Header: res.Header, + HTTPStatusCode: res.StatusCode, + }, + } + target := &ret + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { + return nil, err + } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.instances.attachDisk", "response", internallog.HTTPResponse(res, b)) + return ret, nil +} + +type InstancesBulkInsertCall struct { + s *Service + project string + zone string + bulkinsertinstanceresource *BulkInsertInstanceResource + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header +} + +// BulkInsert: Creates multiple instances. Count specifies the number of +// instances to +// create. For more information, seeAbout bulk +// creation of VMs. +// +// - project: Project ID for this request. +// - zone: The name of the zone for this request. +func (r *InstancesService) BulkInsert(project string, zone string, bulkinsertinstanceresource *BulkInsertInstanceResource) *InstancesBulkInsertCall { + c := &InstancesBulkInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)} + c.project = project + c.zone = zone + c.bulkinsertinstanceresource = bulkinsertinstanceresource + 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 *InstancesBulkInsertCall) RequestId(requestId string) *InstancesBulkInsertCall { + 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 +// details. +func (c *InstancesBulkInsertCall) Fields(s ...googleapi.Field) *InstancesBulkInsertCall { + c.urlParams_.Set("fields", googleapi.CombineFields(s)) + return c +} + +// Context sets the context to be used in this call's Do method. +func (c *InstancesBulkInsertCall) Context(ctx context.Context) *InstancesBulkInsertCall { + c.ctx_ = ctx + return c +} + +// Header returns a http.Header that can be modified by the caller to add +// headers to the request. +func (c *InstancesBulkInsertCall) Header() http.Header { + if c.header_ == nil { + c.header_ = make(http.Header) + } + return c.header_ +} + +func (c *InstancesBulkInsertCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) + body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.bulkinsertinstanceresource) + if err != nil { + return nil, err + } + c.urlParams_.Set("alt", alt) + c.urlParams_.Set("prettyPrint", "false") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instances/bulkInsert") + urls += "?" + c.urlParams_.Encode() + req, err := http.NewRequest("POST", urls, body) + if err != nil { + return nil, err + } + req.Header = reqHeaders + googleapi.Expand(req.URL, map[string]string{ + "project": c.project, + "zone": c.zone, + }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.instances.bulkInsert", "request", internallog.HTTPRequest(req, body.Bytes())) + return gensupport.SendRequest(c.ctx_, c.s.client, req) +} + +// Do executes the "compute.instances.bulkInsert" call. +// 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 *InstancesBulkInsertCall) 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, gensupport.WrapError(&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, gensupport.WrapError(err) + } + ret := &Operation{ + ServerResponse: googleapi.ServerResponse{ + Header: res.Header, + HTTPStatusCode: res.StatusCode, + }, + } + target := &ret + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { + return nil, err + } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.instances.bulkInsert", "response", internallog.HTTPResponse(res, b)) + return ret, nil +} + +type InstancesDeleteCall struct { + s *Service + project string + zone string + instance string + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header +} + +// Delete: Deletes the specified Instance resource. For more information, +// seeDeleting +// an instance. +// +// - instance: Name of the instance resource to delete. +// - project: Project ID for this request. +// - zone: The name of the zone for this request. +func (r *InstancesService) Delete(project string, zone string, instance string) *InstancesDeleteCall { + c := &InstancesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)} + c.project = project + c.zone = zone + c.instance = instance + 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 *InstancesDeleteCall) RequestId(requestId string) *InstancesDeleteCall { + 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 +// details. +func (c *InstancesDeleteCall) Fields(s ...googleapi.Field) *InstancesDeleteCall { + c.urlParams_.Set("fields", googleapi.CombineFields(s)) + return c +} + +// Context sets the context to be used in this call's Do method. +func (c *InstancesDeleteCall) Context(ctx context.Context) *InstancesDeleteCall { + c.ctx_ = ctx + return c +} + +// Header returns a http.Header that can be modified by the caller to add +// headers to the request. +func (c *InstancesDeleteCall) Header() http.Header { + if c.header_ == nil { + c.header_ = make(http.Header) + } + return c.header_ +} + +func (c *InstancesDeleteCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) + c.urlParams_.Set("alt", alt) + c.urlParams_.Set("prettyPrint", "false") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instances/{instance}") + urls += "?" + c.urlParams_.Encode() + req, err := http.NewRequest("DELETE", urls, nil) + if err != nil { + return nil, err + } + req.Header = reqHeaders + googleapi.Expand(req.URL, map[string]string{ + "project": c.project, + "zone": c.zone, + "instance": c.instance, + }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.instances.delete", "request", internallog.HTTPRequest(req, nil)) + return gensupport.SendRequest(c.ctx_, c.s.client, req) +} + +// Do executes the "compute.instances.delete" call. +// 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 *InstancesDeleteCall) 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, gensupport.WrapError(&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, gensupport.WrapError(err) + } + ret := &Operation{ + ServerResponse: googleapi.ServerResponse{ + Header: res.Header, + HTTPStatusCode: res.StatusCode, + }, + } + target := &ret + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { + return nil, err + } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.instances.delete", "response", internallog.HTTPResponse(res, b)) + return ret, nil +} + +type InstancesDeleteAccessConfigCall struct { + s *Service + project string + zone string + instance string + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header +} + +// DeleteAccessConfig: Deletes an access config from an instance's network +// interface. +// +// - accessConfig: The name of the access config to delete. +// - instance: The instance name for this request. +// - networkInterface: The name of the network interface. +// - project: Project ID for this request. +// - zone: The name of the zone for this request. +func (r *InstancesService) DeleteAccessConfig(project string, zone string, instance string, accessConfig string, networkInterface string) *InstancesDeleteAccessConfigCall { + c := &InstancesDeleteAccessConfigCall{s: r.s, urlParams_: make(gensupport.URLParams)} + c.project = project + c.zone = zone + c.instance = instance + c.urlParams_.Set("accessConfig", accessConfig) + c.urlParams_.Set("networkInterface", networkInterface) + 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 *InstancesDeleteAccessConfigCall) RequestId(requestId string) *InstancesDeleteAccessConfigCall { + 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 +// details. +func (c *InstancesDeleteAccessConfigCall) Fields(s ...googleapi.Field) *InstancesDeleteAccessConfigCall { + c.urlParams_.Set("fields", googleapi.CombineFields(s)) + return c +} + +// Context sets the context to be used in this call's Do method. +func (c *InstancesDeleteAccessConfigCall) Context(ctx context.Context) *InstancesDeleteAccessConfigCall { + c.ctx_ = ctx + return c +} + +// Header returns a http.Header that can be modified by the caller to add +// headers to the request. +func (c *InstancesDeleteAccessConfigCall) Header() http.Header { + if c.header_ == nil { + c.header_ = make(http.Header) + } + return c.header_ +} + +func (c *InstancesDeleteAccessConfigCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) + c.urlParams_.Set("alt", alt) + c.urlParams_.Set("prettyPrint", "false") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instances/{instance}/deleteAccessConfig") + urls += "?" + c.urlParams_.Encode() + req, err := http.NewRequest("POST", urls, nil) + if err != nil { + return nil, err + } + req.Header = reqHeaders + googleapi.Expand(req.URL, map[string]string{ + "project": c.project, + "zone": c.zone, + "instance": c.instance, + }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.instances.deleteAccessConfig", "request", internallog.HTTPRequest(req, nil)) + return gensupport.SendRequest(c.ctx_, c.s.client, req) +} + +// Do executes the "compute.instances.deleteAccessConfig" call. +// 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 *InstancesDeleteAccessConfigCall) 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, gensupport.WrapError(&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, gensupport.WrapError(err) + } + ret := &Operation{ + ServerResponse: googleapi.ServerResponse{ + Header: res.Header, + HTTPStatusCode: res.StatusCode, + }, + } + target := &ret + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { + return nil, err + } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.instances.deleteAccessConfig", "response", internallog.HTTPResponse(res, b)) + return ret, nil +} + +type InstancesDeleteNetworkInterfaceCall struct { + s *Service + project string + zone string + instance string + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header +} + +// DeleteNetworkInterface: Deletes one dynamic network interface from an active +// instance. +// InstancesDeleteNetworkInterfaceRequest indicates: +// - instance from which to delete, using project+zone+resource_id fields; +// - dynamic network interface to be deleted, using +// network_interface_name +// field; +// +// - instance: The instance name for this request stored as resource_id. +// Name should conform to RFC1035 or be an unsigned long integer. +// - networkInterfaceName: The name of the dynamic network interface to be +// deleted from the instance. +// - project: Project ID for this request. +// - zone: The name of the zone for this request. +func (r *InstancesService) DeleteNetworkInterface(project string, zone string, instance string, networkInterfaceName string) *InstancesDeleteNetworkInterfaceCall { + c := &InstancesDeleteNetworkInterfaceCall{s: r.s, urlParams_: make(gensupport.URLParams)} + c.project = project + c.zone = zone + c.instance = instance + c.urlParams_.Set("networkInterfaceName", networkInterfaceName) + 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 *InstancesDeleteNetworkInterfaceCall) RequestId(requestId string) *InstancesDeleteNetworkInterfaceCall { + 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 +// details. +func (c *InstancesDeleteNetworkInterfaceCall) Fields(s ...googleapi.Field) *InstancesDeleteNetworkInterfaceCall { + c.urlParams_.Set("fields", googleapi.CombineFields(s)) + return c +} + +// Context sets the context to be used in this call's Do method. +func (c *InstancesDeleteNetworkInterfaceCall) Context(ctx context.Context) *InstancesDeleteNetworkInterfaceCall { + c.ctx_ = ctx + return c +} + +// Header returns a http.Header that can be modified by the caller to add +// headers to the request. +func (c *InstancesDeleteNetworkInterfaceCall) Header() http.Header { + if c.header_ == nil { + c.header_ = make(http.Header) + } + return c.header_ +} + +func (c *InstancesDeleteNetworkInterfaceCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) + c.urlParams_.Set("alt", alt) + c.urlParams_.Set("prettyPrint", "false") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instances/{instance}/deleteNetworkInterface") + urls += "?" + c.urlParams_.Encode() + req, err := http.NewRequest("POST", urls, nil) + if err != nil { + return nil, err + } + req.Header = reqHeaders + googleapi.Expand(req.URL, map[string]string{ + "project": c.project, + "zone": c.zone, + "instance": c.instance, + }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.instances.deleteNetworkInterface", "request", internallog.HTTPRequest(req, nil)) + return gensupport.SendRequest(c.ctx_, c.s.client, req) +} + +// Do executes the "compute.instances.deleteNetworkInterface" call. +// 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 *InstancesDeleteNetworkInterfaceCall) 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, gensupport.WrapError(&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, gensupport.WrapError(err) + } + ret := &Operation{ + ServerResponse: googleapi.ServerResponse{ + Header: res.Header, + HTTPStatusCode: res.StatusCode, + }, + } + target := &ret + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { + return nil, err + } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.instances.deleteNetworkInterface", "response", internallog.HTTPResponse(res, b)) + return ret, nil +} + +type InstancesDetachDiskCall struct { + s *Service + project string + zone string + instance string + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header +} + +// DetachDisk: Detaches a disk from an instance. +// +// - deviceName: The device name of the disk to detach. Make a get() request +// on +// +// the instance to view currently attached disks and device names. +// - instance: Instance name for this request. +// - project: Project ID for this request. +// - zone: The name of the zone for this request. +func (r *InstancesService) DetachDisk(project string, zone string, instance string, deviceName string) *InstancesDetachDiskCall { + c := &InstancesDetachDiskCall{s: r.s, urlParams_: make(gensupport.URLParams)} + c.project = project + c.zone = zone + c.instance = instance + c.urlParams_.Set("deviceName", deviceName) + 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 *InstancesDetachDiskCall) RequestId(requestId string) *InstancesDetachDiskCall { + 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 +// details. +func (c *InstancesDetachDiskCall) Fields(s ...googleapi.Field) *InstancesDetachDiskCall { + c.urlParams_.Set("fields", googleapi.CombineFields(s)) + return c +} + +// Context sets the context to be used in this call's Do method. +func (c *InstancesDetachDiskCall) Context(ctx context.Context) *InstancesDetachDiskCall { + c.ctx_ = ctx + return c +} + +// Header returns a http.Header that can be modified by the caller to add +// headers to the request. +func (c *InstancesDetachDiskCall) Header() http.Header { + if c.header_ == nil { + c.header_ = make(http.Header) + } + return c.header_ +} + +func (c *InstancesDetachDiskCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) + c.urlParams_.Set("alt", alt) + c.urlParams_.Set("prettyPrint", "false") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instances/{instance}/detachDisk") + urls += "?" + c.urlParams_.Encode() + req, err := http.NewRequest("POST", urls, nil) + if err != nil { + return nil, err + } + req.Header = reqHeaders + googleapi.Expand(req.URL, map[string]string{ + "project": c.project, + "zone": c.zone, + "instance": c.instance, + }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.instances.detachDisk", "request", internallog.HTTPRequest(req, nil)) + return gensupport.SendRequest(c.ctx_, c.s.client, req) +} + +// Do executes the "compute.instances.detachDisk" call. +// 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 *InstancesDetachDiskCall) 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, gensupport.WrapError(&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, gensupport.WrapError(err) + } + ret := &Operation{ + ServerResponse: googleapi.ServerResponse{ + Header: res.Header, + HTTPStatusCode: res.StatusCode, + }, + } + target := &ret + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { + return nil, err + } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.instances.detachDisk", "response", internallog.HTTPResponse(res, b)) + return ret, nil +} + +type InstancesGetCall struct { + s *Service + project string + zone string + instance string + urlParams_ gensupport.URLParams + ifNoneMatch_ string + ctx_ context.Context + header_ http.Header +} + +// Get: Returns the specified Instance resource. +// +// - instance: Name of the instance resource to return. +// - project: Project ID for this request. +// - zone: The name of the zone for this request. +func (r *InstancesService) Get(project string, zone string, instance string) *InstancesGetCall { + c := &InstancesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)} + c.project = project + c.zone = zone + c.instance = instance + return c +} + +// Fields allows partial responses to be retrieved. See +// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more +// details. +func (c *InstancesGetCall) Fields(s ...googleapi.Field) *InstancesGetCall { + c.urlParams_.Set("fields", googleapi.CombineFields(s)) + return c +} + +// IfNoneMatch sets an 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. +func (c *InstancesGetCall) IfNoneMatch(entityTag string) *InstancesGetCall { + c.ifNoneMatch_ = entityTag + return c +} + +// Context sets the context to be used in this call's Do method. +func (c *InstancesGetCall) Context(ctx context.Context) *InstancesGetCall { + c.ctx_ = ctx + return c +} + +// Header returns a http.Header that can be modified by the caller to add +// headers to the request. +func (c *InstancesGetCall) Header() http.Header { + if c.header_ == nil { + c.header_ = make(http.Header) + } + return c.header_ +} + +func (c *InstancesGetCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) + if c.ifNoneMatch_ != "" { + reqHeaders.Set("If-None-Match", c.ifNoneMatch_) + } + c.urlParams_.Set("alt", alt) + c.urlParams_.Set("prettyPrint", "false") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instances/{instance}") + urls += "?" + c.urlParams_.Encode() + req, err := http.NewRequest("GET", urls, nil) + if err != nil { + return nil, err + } + req.Header = reqHeaders + googleapi.Expand(req.URL, map[string]string{ + "project": c.project, + "zone": c.zone, + "instance": c.instance, + }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.instances.get", "request", internallog.HTTPRequest(req, nil)) + return gensupport.SendRequest(c.ctx_, c.s.client, req) +} + +// Do executes the "compute.instances.get" call. +// Any non-2xx status code is an error. Response headers are in either +// *Instance.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 *InstancesGetCall) Do(opts ...googleapi.CallOption) (*Instance, 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, gensupport.WrapError(&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, gensupport.WrapError(err) + } + ret := &Instance{ + ServerResponse: googleapi.ServerResponse{ + Header: res.Header, + HTTPStatusCode: res.StatusCode, + }, + } + target := &ret + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { + return nil, err + } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.instances.get", "response", internallog.HTTPResponse(res, b)) + return ret, nil +} + +type InstancesGetEffectiveFirewallsCall struct { + s *Service + project string + zone string + instance string + urlParams_ gensupport.URLParams + ifNoneMatch_ string + ctx_ context.Context + header_ http.Header +} + +// GetEffectiveFirewalls: Returns effective firewalls applied to an interface +// of the instance. +// +// - instance: Name of the instance scoping this request. +// - networkInterface: The name of the network interface to get the effective +// firewalls. +// - project: Project ID for this request. +// - zone: The name of the zone for this request. +func (r *InstancesService) GetEffectiveFirewalls(project string, zone string, instance string, networkInterface string) *InstancesGetEffectiveFirewallsCall { + c := &InstancesGetEffectiveFirewallsCall{s: r.s, urlParams_: make(gensupport.URLParams)} + c.project = project + c.zone = zone + c.instance = instance + c.urlParams_.Set("networkInterface", networkInterface) + return c +} + +// Fields allows partial responses to be retrieved. See +// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more +// details. +func (c *InstancesGetEffectiveFirewallsCall) Fields(s ...googleapi.Field) *InstancesGetEffectiveFirewallsCall { + c.urlParams_.Set("fields", googleapi.CombineFields(s)) + return c +} + +// IfNoneMatch sets an 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. +func (c *InstancesGetEffectiveFirewallsCall) IfNoneMatch(entityTag string) *InstancesGetEffectiveFirewallsCall { + c.ifNoneMatch_ = entityTag + return c +} + +// Context sets the context to be used in this call's Do method. +func (c *InstancesGetEffectiveFirewallsCall) Context(ctx context.Context) *InstancesGetEffectiveFirewallsCall { + c.ctx_ = ctx + return c +} + +// Header returns a http.Header that can be modified by the caller to add +// headers to the request. +func (c *InstancesGetEffectiveFirewallsCall) Header() http.Header { + if c.header_ == nil { + c.header_ = make(http.Header) + } + return c.header_ +} + +func (c *InstancesGetEffectiveFirewallsCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) + if c.ifNoneMatch_ != "" { + reqHeaders.Set("If-None-Match", c.ifNoneMatch_) + } + c.urlParams_.Set("alt", alt) + c.urlParams_.Set("prettyPrint", "false") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instances/{instance}/getEffectiveFirewalls") + urls += "?" + c.urlParams_.Encode() + req, err := http.NewRequest("GET", urls, nil) + if err != nil { + return nil, err + } + req.Header = reqHeaders + googleapi.Expand(req.URL, map[string]string{ + "project": c.project, + "zone": c.zone, + "instance": c.instance, + }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.instances.getEffectiveFirewalls", "request", internallog.HTTPRequest(req, nil)) + return gensupport.SendRequest(c.ctx_, c.s.client, req) +} + +// Do executes the "compute.instances.getEffectiveFirewalls" call. +// Any non-2xx status code is an error. Response headers are in either +// *InstancesGetEffectiveFirewallsResponse.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 *InstancesGetEffectiveFirewallsCall) Do(opts ...googleapi.CallOption) (*InstancesGetEffectiveFirewallsResponse, 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, gensupport.WrapError(&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, gensupport.WrapError(err) + } + ret := &InstancesGetEffectiveFirewallsResponse{ + ServerResponse: googleapi.ServerResponse{ + Header: res.Header, + HTTPStatusCode: res.StatusCode, + }, + } + target := &ret + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { + return nil, err + } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.instances.getEffectiveFirewalls", "response", internallog.HTTPResponse(res, b)) + return ret, nil +} + +type InstancesGetGuestAttributesCall struct { + s *Service + project string + zone string + instance string + urlParams_ gensupport.URLParams + ifNoneMatch_ string + ctx_ context.Context + header_ http.Header +} + +// GetGuestAttributes: Returns the specified guest attributes entry. +// +// - instance: Name of the instance scoping this request. +// - project: Project ID for this request. +// - zone: The name of the zone for this request. +func (r *InstancesService) GetGuestAttributes(project string, zone string, instance string) *InstancesGetGuestAttributesCall { + c := &InstancesGetGuestAttributesCall{s: r.s, urlParams_: make(gensupport.URLParams)} + c.project = project + c.zone = zone + c.instance = instance + return c +} + +// QueryPath sets the optional parameter "queryPath": Specifies the guest +// attributes path to be queried. +func (c *InstancesGetGuestAttributesCall) QueryPath(queryPath string) *InstancesGetGuestAttributesCall { + c.urlParams_.Set("queryPath", queryPath) + return c +} + +// VariableKey sets the optional parameter "variableKey": Specifies the key for +// the guest attributes entry. +func (c *InstancesGetGuestAttributesCall) VariableKey(variableKey string) *InstancesGetGuestAttributesCall { + c.urlParams_.Set("variableKey", variableKey) + return c +} + +// Fields allows partial responses to be retrieved. See +// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more +// details. +func (c *InstancesGetGuestAttributesCall) Fields(s ...googleapi.Field) *InstancesGetGuestAttributesCall { + c.urlParams_.Set("fields", googleapi.CombineFields(s)) + return c +} + +// IfNoneMatch sets an 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. +func (c *InstancesGetGuestAttributesCall) IfNoneMatch(entityTag string) *InstancesGetGuestAttributesCall { + c.ifNoneMatch_ = entityTag + return c +} + +// Context sets the context to be used in this call's Do method. +func (c *InstancesGetGuestAttributesCall) Context(ctx context.Context) *InstancesGetGuestAttributesCall { + c.ctx_ = ctx + return c +} + +// Header returns a http.Header that can be modified by the caller to add +// headers to the request. +func (c *InstancesGetGuestAttributesCall) Header() http.Header { + if c.header_ == nil { + c.header_ = make(http.Header) + } + return c.header_ +} + +func (c *InstancesGetGuestAttributesCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) + if c.ifNoneMatch_ != "" { + reqHeaders.Set("If-None-Match", c.ifNoneMatch_) + } + c.urlParams_.Set("alt", alt) + c.urlParams_.Set("prettyPrint", "false") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instances/{instance}/getGuestAttributes") + urls += "?" + c.urlParams_.Encode() + req, err := http.NewRequest("GET", urls, nil) + if err != nil { + return nil, err + } + req.Header = reqHeaders + googleapi.Expand(req.URL, map[string]string{ + "project": c.project, + "zone": c.zone, + "instance": c.instance, + }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.instances.getGuestAttributes", "request", internallog.HTTPRequest(req, nil)) + return gensupport.SendRequest(c.ctx_, c.s.client, req) +} + +// Do executes the "compute.instances.getGuestAttributes" call. +// Any non-2xx status code is an error. Response headers are in either +// *GuestAttributes.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 *InstancesGetGuestAttributesCall) Do(opts ...googleapi.CallOption) (*GuestAttributes, 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, gensupport.WrapError(&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, gensupport.WrapError(err) + } + ret := &GuestAttributes{ + ServerResponse: googleapi.ServerResponse{ + Header: res.Header, + HTTPStatusCode: res.StatusCode, + }, + } + target := &ret + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { + return nil, err + } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.instances.getGuestAttributes", "response", internallog.HTTPResponse(res, b)) + return ret, nil +} + +type InstancesGetIamPolicyCall struct { + s *Service + project string + zone string + resource string + urlParams_ gensupport.URLParams + ifNoneMatch_ string + ctx_ context.Context + header_ http.Header +} + +// GetIamPolicy: Gets the access control policy for a resource. May be empty if +// no such +// policy or resource exists. +// +// - project: Project ID for this request. +// - resource: Name or id of the resource for this request. +// - zone: The name of the zone for this request. +func (r *InstancesService) GetIamPolicy(project string, zone string, resource string) *InstancesGetIamPolicyCall { + c := &InstancesGetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)} + c.project = project + c.zone = zone + c.resource = resource + return c +} + +// OptionsRequestedPolicyVersion sets the optional parameter +// "optionsRequestedPolicyVersion": Requested IAM Policy version. +func (c *InstancesGetIamPolicyCall) OptionsRequestedPolicyVersion(optionsRequestedPolicyVersion int64) *InstancesGetIamPolicyCall { + c.urlParams_.Set("optionsRequestedPolicyVersion", fmt.Sprint(optionsRequestedPolicyVersion)) + return c +} + +// Fields allows partial responses to be retrieved. See +// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more +// details. +func (c *InstancesGetIamPolicyCall) Fields(s ...googleapi.Field) *InstancesGetIamPolicyCall { + c.urlParams_.Set("fields", googleapi.CombineFields(s)) + return c +} + +// IfNoneMatch sets an 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. +func (c *InstancesGetIamPolicyCall) IfNoneMatch(entityTag string) *InstancesGetIamPolicyCall { + c.ifNoneMatch_ = entityTag + return c +} + +// Context sets the context to be used in this call's Do method. +func (c *InstancesGetIamPolicyCall) Context(ctx context.Context) *InstancesGetIamPolicyCall { + c.ctx_ = ctx + return c +} + +// Header returns a http.Header that can be modified by the caller to add +// headers to the request. +func (c *InstancesGetIamPolicyCall) Header() http.Header { + if c.header_ == nil { + c.header_ = make(http.Header) + } + return c.header_ +} + +func (c *InstancesGetIamPolicyCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) + if c.ifNoneMatch_ != "" { + reqHeaders.Set("If-None-Match", c.ifNoneMatch_) + } + c.urlParams_.Set("alt", alt) + c.urlParams_.Set("prettyPrint", "false") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instances/{resource}/getIamPolicy") + urls += "?" + c.urlParams_.Encode() + req, err := http.NewRequest("GET", urls, nil) + if err != nil { + return nil, err + } + req.Header = reqHeaders + googleapi.Expand(req.URL, map[string]string{ + "project": c.project, + "zone": c.zone, + "resource": c.resource, + }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.instances.getIamPolicy", "request", internallog.HTTPRequest(req, nil)) + return gensupport.SendRequest(c.ctx_, c.s.client, req) +} + +// Do executes the "compute.instances.getIamPolicy" call. +// Any non-2xx status code is an error. Response headers are in either +// *Policy.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 *InstancesGetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, 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, gensupport.WrapError(&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, gensupport.WrapError(err) + } + ret := &Policy{ + ServerResponse: googleapi.ServerResponse{ + Header: res.Header, + HTTPStatusCode: res.StatusCode, + }, + } + target := &ret + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { + return nil, err + } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.instances.getIamPolicy", "response", internallog.HTTPResponse(res, b)) + return ret, nil +} + +type InstancesGetScreenshotCall struct { + s *Service + project string + zone string + instance string + urlParams_ gensupport.URLParams + ifNoneMatch_ string + ctx_ context.Context + header_ http.Header +} + +// GetScreenshot: Returns the screenshot from the specified instance. +// +// - instance: Name of the instance scoping this request. +// - project: Project ID for this request. +// - zone: The name of the zone for this request. +func (r *InstancesService) GetScreenshot(project string, zone string, instance string) *InstancesGetScreenshotCall { + c := &InstancesGetScreenshotCall{s: r.s, urlParams_: make(gensupport.URLParams)} + c.project = project + c.zone = zone + c.instance = instance + return c +} + +// Fields allows partial responses to be retrieved. See +// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more +// details. +func (c *InstancesGetScreenshotCall) Fields(s ...googleapi.Field) *InstancesGetScreenshotCall { + c.urlParams_.Set("fields", googleapi.CombineFields(s)) + return c +} + +// IfNoneMatch sets an 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. +func (c *InstancesGetScreenshotCall) IfNoneMatch(entityTag string) *InstancesGetScreenshotCall { + c.ifNoneMatch_ = entityTag + return c +} + +// Context sets the context to be used in this call's Do method. +func (c *InstancesGetScreenshotCall) Context(ctx context.Context) *InstancesGetScreenshotCall { + c.ctx_ = ctx + return c +} + +// Header returns a http.Header that can be modified by the caller to add +// headers to the request. +func (c *InstancesGetScreenshotCall) Header() http.Header { + if c.header_ == nil { + c.header_ = make(http.Header) + } + return c.header_ +} + +func (c *InstancesGetScreenshotCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) + if c.ifNoneMatch_ != "" { + reqHeaders.Set("If-None-Match", c.ifNoneMatch_) + } + c.urlParams_.Set("alt", alt) + c.urlParams_.Set("prettyPrint", "false") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instances/{instance}/screenshot") + urls += "?" + c.urlParams_.Encode() + req, err := http.NewRequest("GET", urls, nil) + if err != nil { + return nil, err + } + req.Header = reqHeaders + googleapi.Expand(req.URL, map[string]string{ + "project": c.project, + "zone": c.zone, + "instance": c.instance, + }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.instances.getScreenshot", "request", internallog.HTTPRequest(req, nil)) + return gensupport.SendRequest(c.ctx_, c.s.client, req) +} + +// Do executes the "compute.instances.getScreenshot" call. +// Any non-2xx status code is an error. Response headers are in either +// *Screenshot.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 *InstancesGetScreenshotCall) Do(opts ...googleapi.CallOption) (*Screenshot, 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, gensupport.WrapError(&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, gensupport.WrapError(err) + } + ret := &Screenshot{ + ServerResponse: googleapi.ServerResponse{ + Header: res.Header, + HTTPStatusCode: res.StatusCode, + }, + } + target := &ret + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { + return nil, err + } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.instances.getScreenshot", "response", internallog.HTTPResponse(res, b)) + return ret, nil +} + +type InstancesGetSerialPortOutputCall struct { + s *Service + project string + zone string + instance string + urlParams_ gensupport.URLParams + ifNoneMatch_ string + ctx_ context.Context + header_ http.Header +} + +// GetSerialPortOutput: Returns the last 1 MB of serial port output from the +// specified instance. +// +// - instance: Name of the instance for this request. +// - project: Project ID for this request. +// - zone: The name of the zone for this request. +func (r *InstancesService) GetSerialPortOutput(project string, zone string, instance string) *InstancesGetSerialPortOutputCall { + c := &InstancesGetSerialPortOutputCall{s: r.s, urlParams_: make(gensupport.URLParams)} + c.project = project + c.zone = zone + c.instance = instance + return c +} + +// Port sets the optional parameter "port": Specifies which COM or serial port +// to retrieve data from. +func (c *InstancesGetSerialPortOutputCall) Port(port int64) *InstancesGetSerialPortOutputCall { + c.urlParams_.Set("port", fmt.Sprint(port)) + return c +} + +// Start sets the optional parameter "start": Specifies the starting byte +// position of the output to return. To start with +// the first byte of output to the specified port, omit this field or set it +// to `0`. +// +// If the output for that byte position is available, this field matches +// the +// `start` parameter sent with the request. If the amount of serial +// console +// output exceeds the size of the buffer (1 MB), the oldest output is +// discarded and is no longer available. If the requested start position +// refers to discarded output, the start position is adjusted to the +// oldest +// output still available, and the adjusted start position is returned as +// the +// `start` property value. +// +// You can also provide a negative start position, which translates to the +// most recent number of bytes written to the serial port. For example, -3 +// is +// interpreted as the most recent 3 bytes written to the serial console. +// Note +// that the negative start is bounded by the retained buffer size, and +// the +// returned serial console output will not exceed the max buffer size. +func (c *InstancesGetSerialPortOutputCall) Start(start int64) *InstancesGetSerialPortOutputCall { + c.urlParams_.Set("start", fmt.Sprint(start)) + return c +} + +// Fields allows partial responses to be retrieved. See +// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more +// details. +func (c *InstancesGetSerialPortOutputCall) Fields(s ...googleapi.Field) *InstancesGetSerialPortOutputCall { + c.urlParams_.Set("fields", googleapi.CombineFields(s)) + return c +} + +// IfNoneMatch sets an 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. +func (c *InstancesGetSerialPortOutputCall) IfNoneMatch(entityTag string) *InstancesGetSerialPortOutputCall { + c.ifNoneMatch_ = entityTag + return c +} + +// Context sets the context to be used in this call's Do method. +func (c *InstancesGetSerialPortOutputCall) Context(ctx context.Context) *InstancesGetSerialPortOutputCall { + c.ctx_ = ctx + return c +} + +// Header returns a http.Header that can be modified by the caller to add +// headers to the request. +func (c *InstancesGetSerialPortOutputCall) Header() http.Header { + if c.header_ == nil { + c.header_ = make(http.Header) + } + return c.header_ +} + +func (c *InstancesGetSerialPortOutputCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) + if c.ifNoneMatch_ != "" { + reqHeaders.Set("If-None-Match", c.ifNoneMatch_) + } + c.urlParams_.Set("alt", alt) + c.urlParams_.Set("prettyPrint", "false") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instances/{instance}/serialPort") + urls += "?" + c.urlParams_.Encode() + req, err := http.NewRequest("GET", urls, nil) + if err != nil { + return nil, err + } + req.Header = reqHeaders + googleapi.Expand(req.URL, map[string]string{ + "project": c.project, + "zone": c.zone, + "instance": c.instance, + }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.instances.getSerialPortOutput", "request", internallog.HTTPRequest(req, nil)) + return gensupport.SendRequest(c.ctx_, c.s.client, req) +} + +// Do executes the "compute.instances.getSerialPortOutput" call. +// Any non-2xx status code is an error. Response headers are in either +// *SerialPortOutput.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 *InstancesGetSerialPortOutputCall) Do(opts ...googleapi.CallOption) (*SerialPortOutput, 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, gensupport.WrapError(&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, gensupport.WrapError(err) + } + ret := &SerialPortOutput{ + ServerResponse: googleapi.ServerResponse{ + Header: res.Header, + HTTPStatusCode: res.StatusCode, + }, + } + target := &ret + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { + return nil, err + } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.instances.getSerialPortOutput", "response", internallog.HTTPResponse(res, b)) + return ret, nil +} + +type InstancesGetShieldedInstanceIdentityCall struct { + s *Service + project string + zone string + instance string + urlParams_ gensupport.URLParams + ifNoneMatch_ string + ctx_ context.Context + header_ http.Header +} + +// GetShieldedInstanceIdentity: Returns the Shielded Instance Identity of an // instance // -// - instance: Name or id of the instance scoping this request. +// - instance: Name or id of the instance scoping this request. +// - project: Project ID for this request. +// - zone: The name of the zone for this request. +func (r *InstancesService) GetShieldedInstanceIdentity(project string, zone string, instance string) *InstancesGetShieldedInstanceIdentityCall { + c := &InstancesGetShieldedInstanceIdentityCall{s: r.s, urlParams_: make(gensupport.URLParams)} + c.project = project + c.zone = zone + c.instance = instance + return c +} + +// Fields allows partial responses to be retrieved. See +// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more +// details. +func (c *InstancesGetShieldedInstanceIdentityCall) Fields(s ...googleapi.Field) *InstancesGetShieldedInstanceIdentityCall { + c.urlParams_.Set("fields", googleapi.CombineFields(s)) + return c +} + +// IfNoneMatch sets an 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. +func (c *InstancesGetShieldedInstanceIdentityCall) IfNoneMatch(entityTag string) *InstancesGetShieldedInstanceIdentityCall { + c.ifNoneMatch_ = entityTag + return c +} + +// Context sets the context to be used in this call's Do method. +func (c *InstancesGetShieldedInstanceIdentityCall) Context(ctx context.Context) *InstancesGetShieldedInstanceIdentityCall { + c.ctx_ = ctx + return c +} + +// Header returns a http.Header that can be modified by the caller to add +// headers to the request. +func (c *InstancesGetShieldedInstanceIdentityCall) Header() http.Header { + if c.header_ == nil { + c.header_ = make(http.Header) + } + return c.header_ +} + +func (c *InstancesGetShieldedInstanceIdentityCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) + if c.ifNoneMatch_ != "" { + reqHeaders.Set("If-None-Match", c.ifNoneMatch_) + } + c.urlParams_.Set("alt", alt) + c.urlParams_.Set("prettyPrint", "false") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instances/{instance}/getShieldedInstanceIdentity") + urls += "?" + c.urlParams_.Encode() + req, err := http.NewRequest("GET", urls, nil) + if err != nil { + return nil, err + } + req.Header = reqHeaders + googleapi.Expand(req.URL, map[string]string{ + "project": c.project, + "zone": c.zone, + "instance": c.instance, + }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.instances.getShieldedInstanceIdentity", "request", internallog.HTTPRequest(req, nil)) + return gensupport.SendRequest(c.ctx_, c.s.client, req) +} + +// Do executes the "compute.instances.getShieldedInstanceIdentity" call. +// Any non-2xx status code is an error. Response headers are in either +// *ShieldedInstanceIdentity.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 *InstancesGetShieldedInstanceIdentityCall) Do(opts ...googleapi.CallOption) (*ShieldedInstanceIdentity, 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, gensupport.WrapError(&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, gensupport.WrapError(err) + } + ret := &ShieldedInstanceIdentity{ + ServerResponse: googleapi.ServerResponse{ + Header: res.Header, + HTTPStatusCode: res.StatusCode, + }, + } + target := &ret + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { + return nil, err + } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.instances.getShieldedInstanceIdentity", "response", internallog.HTTPResponse(res, b)) + return ret, nil +} + +type InstancesInsertCall struct { + s *Service + project string + zone string + instance *Instance + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header +} + +// Insert: Creates an instance resource in the specified project using the +// data +// included in the request. +// +// - project: Project ID for this request. +// - zone: The name of the zone for this request. +func (r *InstancesService) Insert(project string, zone string, instance *Instance) *InstancesInsertCall { + c := &InstancesInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)} + c.project = project + c.zone = zone + c.instance = instance + 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 *InstancesInsertCall) RequestId(requestId string) *InstancesInsertCall { + c.urlParams_.Set("requestId", requestId) + return c +} + +// SourceInstanceTemplate sets the optional parameter "sourceInstanceTemplate": +// Specifies instance template to create the instance. +// +// This field is optional. It can be a full or partial URL. For example, +// the +// following are all valid URLs to an instance template: +// +// - +// +// https://www.googleapis.com/compute/v1/projects/project/global/instanceTemplates/instanceTemplate +// - projects/project/global/instanceTemplates/instanceTemplate +// - global/instanceTemplates/instanceTemplate +func (c *InstancesInsertCall) SourceInstanceTemplate(sourceInstanceTemplate string) *InstancesInsertCall { + c.urlParams_.Set("sourceInstanceTemplate", sourceInstanceTemplate) + return c +} + +// SourceMachineImage sets the optional parameter "sourceMachineImage": +// Specifies the machine image to use to create the instance. +// +// This field is optional. It can be a full or partial URL. For example, +// the +// following are all valid URLs to a machine image: +// +// - +// +// https://www.googleapis.com/compute/v1/projects/project/global/global/machineImages/machineImage +// - projects/project/global/global/machineImages/machineImage +// - global/machineImages/machineImage +func (c *InstancesInsertCall) SourceMachineImage(sourceMachineImage string) *InstancesInsertCall { + c.urlParams_.Set("sourceMachineImage", sourceMachineImage) + return c +} + +// Fields allows partial responses to be retrieved. See +// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more +// details. +func (c *InstancesInsertCall) Fields(s ...googleapi.Field) *InstancesInsertCall { + c.urlParams_.Set("fields", googleapi.CombineFields(s)) + return c +} + +// Context sets the context to be used in this call's Do method. +func (c *InstancesInsertCall) Context(ctx context.Context) *InstancesInsertCall { + c.ctx_ = ctx + return c +} + +// Header returns a http.Header that can be modified by the caller to add +// headers to the request. +func (c *InstancesInsertCall) Header() http.Header { + if c.header_ == nil { + c.header_ = make(http.Header) + } + return c.header_ +} + +func (c *InstancesInsertCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) + body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.instance) + if err != nil { + return nil, err + } + c.urlParams_.Set("alt", alt) + c.urlParams_.Set("prettyPrint", "false") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instances") + urls += "?" + c.urlParams_.Encode() + req, err := http.NewRequest("POST", urls, body) + if err != nil { + return nil, err + } + req.Header = reqHeaders + googleapi.Expand(req.URL, map[string]string{ + "project": c.project, + "zone": c.zone, + }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.instances.insert", "request", internallog.HTTPRequest(req, body.Bytes())) + return gensupport.SendRequest(c.ctx_, c.s.client, req) +} + +// Do executes the "compute.instances.insert" call. +// 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 *InstancesInsertCall) 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, gensupport.WrapError(&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, gensupport.WrapError(err) + } + ret := &Operation{ + ServerResponse: googleapi.ServerResponse{ + Header: res.Header, + HTTPStatusCode: res.StatusCode, + }, + } + target := &ret + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { + return nil, err + } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.instances.insert", "response", internallog.HTTPResponse(res, b)) + return ret, nil +} + +type InstancesListCall struct { + s *Service + project string + zone string + urlParams_ gensupport.URLParams + ifNoneMatch_ string + ctx_ context.Context + header_ http.Header +} + +// List: Retrieves the list of instances contained within +// the specified zone. +// +// - project: Project ID for this request. +// - zone: The name of the zone for this request. +func (r *InstancesService) List(project string, zone string) *InstancesListCall { + c := &InstancesListCall{s: r.s, urlParams_: make(gensupport.URLParams)} + c.project = project + c.zone = zone + return c +} + +// Filter sets the optional parameter "filter": A filter expression that +// filters resources listed in the response. Most +// Compute resources support two types of filter expressions: +// expressions that support regular expressions and expressions that follow +// API improvement proposal AIP-160. +// These two types of filter expressions cannot be mixed in one request. +// +// If you want to use AIP-160, your expression must specify the field name, +// an +// operator, and the value that you want to use for filtering. The value +// must be a string, a number, or a boolean. The 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`. +// +// The `:*` comparison can be used to test whether a key has been defined. +// For example, to find all objects with `owner` label +// use: +// ``` +// labels.owner:* +// ``` +// +// 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 onresource 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) +// ``` +// +// If you want to use a regular expression, use the `eq` (equal) or `ne` +// (not equal) operator against a single un-parenthesized expression with +// or +// without quotes or against multiple parenthesized expressions. +// Examples: +// +// `fieldname eq unquoted literal` +// `fieldname eq 'single quoted literal'` +// `fieldname eq "double quoted literal" +// `(fieldname1 eq literal) (fieldname2 ne "literal")` +// +// The literal value is interpreted as a regular expression using GoogleRE2 +// library syntax. +// The literal value must match the entire field. +// +// For example, to filter for instances that do not end with name +// "instance", +// you would use `name ne .*instance`. +// +// You cannot combine constraints on multiple fields using regular +// expressions. +func (c *InstancesListCall) Filter(filter string) *InstancesListCall { + 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 *InstancesListCall) MaxResults(maxResults int64) *InstancesListCall { + 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 *InstancesListCall) OrderBy(orderBy string) *InstancesListCall { + 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 *InstancesListCall) PageToken(pageToken string) *InstancesListCall { + c.urlParams_.Set("pageToken", pageToken) + return c +} + +// ReturnPartialSuccess sets the optional parameter "returnPartialSuccess": +// Opt-in for partial success behavior which provides partial results in +// case +// of failure. The default value is false. +// +// For example, when partial success behavior is enabled, aggregatedList for +// a +// single zone scope either returns all resources in the zone or no +// resources, +// with an error code. +func (c *InstancesListCall) ReturnPartialSuccess(returnPartialSuccess bool) *InstancesListCall { + c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess)) + return c +} + +// Fields allows partial responses to be retrieved. See +// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more +// details. +func (c *InstancesListCall) Fields(s ...googleapi.Field) *InstancesListCall { + c.urlParams_.Set("fields", googleapi.CombineFields(s)) + return c +} + +// IfNoneMatch sets an 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. +func (c *InstancesListCall) IfNoneMatch(entityTag string) *InstancesListCall { + c.ifNoneMatch_ = entityTag + return c +} + +// Context sets the context to be used in this call's Do method. +func (c *InstancesListCall) Context(ctx context.Context) *InstancesListCall { + c.ctx_ = ctx + return c +} + +// Header returns a http.Header that can be modified by the caller to add +// headers to the request. +func (c *InstancesListCall) Header() http.Header { + if c.header_ == nil { + c.header_ = make(http.Header) + } + return c.header_ +} + +func (c *InstancesListCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) + if c.ifNoneMatch_ != "" { + reqHeaders.Set("If-None-Match", c.ifNoneMatch_) + } + c.urlParams_.Set("alt", alt) + c.urlParams_.Set("prettyPrint", "false") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instances") + urls += "?" + c.urlParams_.Encode() + req, err := http.NewRequest("GET", urls, nil) + if err != nil { + return nil, err + } + req.Header = reqHeaders + googleapi.Expand(req.URL, map[string]string{ + "project": c.project, + "zone": c.zone, + }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.instances.list", "request", internallog.HTTPRequest(req, nil)) + return gensupport.SendRequest(c.ctx_, c.s.client, req) +} + +// Do executes the "compute.instances.list" call. +// Any non-2xx status code is an error. Response headers are in either +// *InstanceList.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 *InstancesListCall) Do(opts ...googleapi.CallOption) (*InstanceList, 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, gensupport.WrapError(&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, gensupport.WrapError(err) + } + ret := &InstanceList{ + ServerResponse: googleapi.ServerResponse{ + Header: res.Header, + HTTPStatusCode: res.StatusCode, + }, + } + target := &ret + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { + return nil, err + } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.instances.list", "response", internallog.HTTPResponse(res, b)) + return ret, nil +} + +// 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 *InstancesListCall) Pages(ctx context.Context, f func(*InstanceList) error) error { + c.ctx_ = ctx + defer c.PageToken(c.urlParams_.Get("pageToken")) + 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) + } +} + +type InstancesListReferrersCall struct { + s *Service + project string + zone string + instance string + urlParams_ gensupport.URLParams + ifNoneMatch_ string + ctx_ context.Context + header_ http.Header +} + +// ListReferrers: Retrieves a list of resources that refer to the VM instance +// specified in +// the request. For example, if the VM instance is part of a managed +// or +// unmanaged instance group, the referrers list includes the instance +// group. +// For more information, readViewing +// referrers to VM instances. +// +// - instance: Name of the target instance scoping this request, or '-' if +// the +// +// request should span over all instances in the container. +// - project: Project ID for this request. +// - zone: The name of the zone for this request. +func (r *InstancesService) ListReferrers(project string, zone string, instance string) *InstancesListReferrersCall { + c := &InstancesListReferrersCall{s: r.s, urlParams_: make(gensupport.URLParams)} + c.project = project + c.zone = zone + c.instance = instance + return c +} + +// Filter sets the optional parameter "filter": A filter expression that +// filters resources listed in the response. Most +// Compute resources support two types of filter expressions: +// expressions that support regular expressions and expressions that follow +// API improvement proposal AIP-160. +// These two types of filter expressions cannot be mixed in one request. +// +// If you want to use AIP-160, your expression must specify the field name, +// an +// operator, and the value that you want to use for filtering. The value +// must be a string, a number, or a boolean. The 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`. +// +// The `:*` comparison can be used to test whether a key has been defined. +// For example, to find all objects with `owner` label +// use: +// ``` +// labels.owner:* +// ``` +// +// 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 onresource 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) +// ``` +// +// If you want to use a regular expression, use the `eq` (equal) or `ne` +// (not equal) operator against a single un-parenthesized expression with +// or +// without quotes or against multiple parenthesized expressions. +// Examples: +// +// `fieldname eq unquoted literal` +// `fieldname eq 'single quoted literal'` +// `fieldname eq "double quoted literal" +// `(fieldname1 eq literal) (fieldname2 ne "literal")` +// +// The literal value is interpreted as a regular expression using GoogleRE2 +// library syntax. +// The literal value must match the entire field. +// +// For example, to filter for instances that do not end with name +// "instance", +// you would use `name ne .*instance`. +// +// You cannot combine constraints on multiple fields using regular +// expressions. +func (c *InstancesListReferrersCall) Filter(filter string) *InstancesListReferrersCall { + 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 *InstancesListReferrersCall) MaxResults(maxResults int64) *InstancesListReferrersCall { + 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 *InstancesListReferrersCall) OrderBy(orderBy string) *InstancesListReferrersCall { + 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 *InstancesListReferrersCall) PageToken(pageToken string) *InstancesListReferrersCall { + c.urlParams_.Set("pageToken", pageToken) + return c +} + +// ReturnPartialSuccess sets the optional parameter "returnPartialSuccess": +// Opt-in for partial success behavior which provides partial results in +// case +// of failure. The default value is false. +// +// For example, when partial success behavior is enabled, aggregatedList for +// a +// single zone scope either returns all resources in the zone or no +// resources, +// with an error code. +func (c *InstancesListReferrersCall) ReturnPartialSuccess(returnPartialSuccess bool) *InstancesListReferrersCall { + c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess)) + return c +} + +// Fields allows partial responses to be retrieved. See +// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more +// details. +func (c *InstancesListReferrersCall) Fields(s ...googleapi.Field) *InstancesListReferrersCall { + c.urlParams_.Set("fields", googleapi.CombineFields(s)) + return c +} + +// IfNoneMatch sets an 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. +func (c *InstancesListReferrersCall) IfNoneMatch(entityTag string) *InstancesListReferrersCall { + c.ifNoneMatch_ = entityTag + return c +} + +// Context sets the context to be used in this call's Do method. +func (c *InstancesListReferrersCall) Context(ctx context.Context) *InstancesListReferrersCall { + c.ctx_ = ctx + return c +} + +// Header returns a http.Header that can be modified by the caller to add +// headers to the request. +func (c *InstancesListReferrersCall) Header() http.Header { + if c.header_ == nil { + c.header_ = make(http.Header) + } + return c.header_ +} + +func (c *InstancesListReferrersCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) + if c.ifNoneMatch_ != "" { + reqHeaders.Set("If-None-Match", c.ifNoneMatch_) + } + c.urlParams_.Set("alt", alt) + c.urlParams_.Set("prettyPrint", "false") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instances/{instance}/referrers") + urls += "?" + c.urlParams_.Encode() + req, err := http.NewRequest("GET", urls, nil) + if err != nil { + return nil, err + } + req.Header = reqHeaders + googleapi.Expand(req.URL, map[string]string{ + "project": c.project, + "zone": c.zone, + "instance": c.instance, + }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.instances.listReferrers", "request", internallog.HTTPRequest(req, nil)) + return gensupport.SendRequest(c.ctx_, c.s.client, req) +} + +// Do executes the "compute.instances.listReferrers" call. +// Any non-2xx status code is an error. Response headers are in either +// *InstanceListReferrers.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 *InstancesListReferrersCall) Do(opts ...googleapi.CallOption) (*InstanceListReferrers, 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, gensupport.WrapError(&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, gensupport.WrapError(err) + } + ret := &InstanceListReferrers{ + ServerResponse: googleapi.ServerResponse{ + Header: res.Header, + HTTPStatusCode: res.StatusCode, + }, + } + target := &ret + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { + return nil, err + } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.instances.listReferrers", "response", internallog.HTTPResponse(res, b)) + return ret, nil +} + +// 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 *InstancesListReferrersCall) Pages(ctx context.Context, f func(*InstanceListReferrers) error) error { + c.ctx_ = ctx + defer c.PageToken(c.urlParams_.Get("pageToken")) + 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) + } +} + +type InstancesPerformMaintenanceCall struct { + s *Service + project string + zone string + instance string + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header +} + +// PerformMaintenance: Perform a manual maintenance on the instance. +// +// - instance: Name of the instance scoping this request. +// - project: Project ID for this request. +// - zone: The name of the zone for this request. +func (r *InstancesService) PerformMaintenance(project string, zone string, instance string) *InstancesPerformMaintenanceCall { + c := &InstancesPerformMaintenanceCall{s: r.s, urlParams_: make(gensupport.URLParams)} + c.project = project + c.zone = zone + c.instance = instance + 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 *InstancesPerformMaintenanceCall) RequestId(requestId string) *InstancesPerformMaintenanceCall { + 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 +// details. +func (c *InstancesPerformMaintenanceCall) Fields(s ...googleapi.Field) *InstancesPerformMaintenanceCall { + c.urlParams_.Set("fields", googleapi.CombineFields(s)) + return c +} + +// Context sets the context to be used in this call's Do method. +func (c *InstancesPerformMaintenanceCall) Context(ctx context.Context) *InstancesPerformMaintenanceCall { + c.ctx_ = ctx + return c +} + +// Header returns a http.Header that can be modified by the caller to add +// headers to the request. +func (c *InstancesPerformMaintenanceCall) Header() http.Header { + if c.header_ == nil { + c.header_ = make(http.Header) + } + return c.header_ +} + +func (c *InstancesPerformMaintenanceCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) + c.urlParams_.Set("alt", alt) + c.urlParams_.Set("prettyPrint", "false") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instances/{instance}/performMaintenance") + urls += "?" + c.urlParams_.Encode() + req, err := http.NewRequest("POST", urls, nil) + if err != nil { + return nil, err + } + req.Header = reqHeaders + googleapi.Expand(req.URL, map[string]string{ + "project": c.project, + "zone": c.zone, + "instance": c.instance, + }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.instances.performMaintenance", "request", internallog.HTTPRequest(req, nil)) + return gensupport.SendRequest(c.ctx_, c.s.client, req) +} + +// Do executes the "compute.instances.performMaintenance" call. +// 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 *InstancesPerformMaintenanceCall) 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, gensupport.WrapError(&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, gensupport.WrapError(err) + } + ret := &Operation{ + ServerResponse: googleapi.ServerResponse{ + Header: res.Header, + HTTPStatusCode: res.StatusCode, + }, + } + target := &ret + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { + return nil, err + } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.instances.performMaintenance", "response", internallog.HTTPResponse(res, b)) + return ret, nil +} + +type InstancesRemoveResourcePoliciesCall struct { + s *Service + project string + zone string + instance string + instancesremoveresourcepoliciesrequest *InstancesRemoveResourcePoliciesRequest + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header +} + +// RemoveResourcePolicies: Removes resource policies from an instance. +// +// - instance: The instance name for this request. +// - project: Project ID for this request. +// - zone: The name of the zone for this request. +func (r *InstancesService) RemoveResourcePolicies(project string, zone string, instance string, instancesremoveresourcepoliciesrequest *InstancesRemoveResourcePoliciesRequest) *InstancesRemoveResourcePoliciesCall { + c := &InstancesRemoveResourcePoliciesCall{s: r.s, urlParams_: make(gensupport.URLParams)} + c.project = project + c.zone = zone + c.instance = instance + c.instancesremoveresourcepoliciesrequest = instancesremoveresourcepoliciesrequest + 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 *InstancesRemoveResourcePoliciesCall) RequestId(requestId string) *InstancesRemoveResourcePoliciesCall { + 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 +// details. +func (c *InstancesRemoveResourcePoliciesCall) Fields(s ...googleapi.Field) *InstancesRemoveResourcePoliciesCall { + c.urlParams_.Set("fields", googleapi.CombineFields(s)) + return c +} + +// Context sets the context to be used in this call's Do method. +func (c *InstancesRemoveResourcePoliciesCall) Context(ctx context.Context) *InstancesRemoveResourcePoliciesCall { + c.ctx_ = ctx + return c +} + +// Header returns a http.Header that can be modified by the caller to add +// headers to the request. +func (c *InstancesRemoveResourcePoliciesCall) Header() http.Header { + if c.header_ == nil { + c.header_ = make(http.Header) + } + return c.header_ +} + +func (c *InstancesRemoveResourcePoliciesCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) + body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.instancesremoveresourcepoliciesrequest) + if err != nil { + return nil, err + } + c.urlParams_.Set("alt", alt) + c.urlParams_.Set("prettyPrint", "false") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instances/{instance}/removeResourcePolicies") + urls += "?" + c.urlParams_.Encode() + req, err := http.NewRequest("POST", urls, body) + if err != nil { + return nil, err + } + req.Header = reqHeaders + googleapi.Expand(req.URL, map[string]string{ + "project": c.project, + "zone": c.zone, + "instance": c.instance, + }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.instances.removeResourcePolicies", "request", internallog.HTTPRequest(req, body.Bytes())) + return gensupport.SendRequest(c.ctx_, c.s.client, req) +} + +// Do executes the "compute.instances.removeResourcePolicies" call. +// 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 *InstancesRemoveResourcePoliciesCall) 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, gensupport.WrapError(&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, gensupport.WrapError(err) + } + ret := &Operation{ + ServerResponse: googleapi.ServerResponse{ + Header: res.Header, + HTTPStatusCode: res.StatusCode, + }, + } + target := &ret + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { + return nil, err + } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.instances.removeResourcePolicies", "response", internallog.HTTPResponse(res, b)) + return ret, nil +} + +type InstancesReportHostAsFaultyCall struct { + s *Service + project string + zone string + instance string + instancesreporthostasfaultyrequest *InstancesReportHostAsFaultyRequest + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header +} + +// ReportHostAsFaulty: Mark the host as faulty and try to restart the instance +// on a new host. +// +// - instance: Name of the instance scoping this request. +// - project: Project ID for this request. +// - zone: The name of the zone for this request. +func (r *InstancesService) ReportHostAsFaulty(project string, zone string, instance string, instancesreporthostasfaultyrequest *InstancesReportHostAsFaultyRequest) *InstancesReportHostAsFaultyCall { + c := &InstancesReportHostAsFaultyCall{s: r.s, urlParams_: make(gensupport.URLParams)} + c.project = project + c.zone = zone + c.instance = instance + c.instancesreporthostasfaultyrequest = instancesreporthostasfaultyrequest + 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 *InstancesReportHostAsFaultyCall) RequestId(requestId string) *InstancesReportHostAsFaultyCall { + 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 +// details. +func (c *InstancesReportHostAsFaultyCall) Fields(s ...googleapi.Field) *InstancesReportHostAsFaultyCall { + c.urlParams_.Set("fields", googleapi.CombineFields(s)) + return c +} + +// Context sets the context to be used in this call's Do method. +func (c *InstancesReportHostAsFaultyCall) Context(ctx context.Context) *InstancesReportHostAsFaultyCall { + c.ctx_ = ctx + return c +} + +// Header returns a http.Header that can be modified by the caller to add +// headers to the request. +func (c *InstancesReportHostAsFaultyCall) Header() http.Header { + if c.header_ == nil { + c.header_ = make(http.Header) + } + return c.header_ +} + +func (c *InstancesReportHostAsFaultyCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) + body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.instancesreporthostasfaultyrequest) + if err != nil { + return nil, err + } + c.urlParams_.Set("alt", alt) + c.urlParams_.Set("prettyPrint", "false") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instances/{instance}/reportHostAsFaulty") + urls += "?" + c.urlParams_.Encode() + req, err := http.NewRequest("POST", urls, body) + if err != nil { + return nil, err + } + req.Header = reqHeaders + googleapi.Expand(req.URL, map[string]string{ + "project": c.project, + "zone": c.zone, + "instance": c.instance, + }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.instances.reportHostAsFaulty", "request", internallog.HTTPRequest(req, body.Bytes())) + return gensupport.SendRequest(c.ctx_, c.s.client, req) +} + +// Do executes the "compute.instances.reportHostAsFaulty" call. +// 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 *InstancesReportHostAsFaultyCall) 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, gensupport.WrapError(&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, gensupport.WrapError(err) + } + ret := &Operation{ + ServerResponse: googleapi.ServerResponse{ + Header: res.Header, + HTTPStatusCode: res.StatusCode, + }, + } + target := &ret + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { + return nil, err + } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.instances.reportHostAsFaulty", "response", internallog.HTTPResponse(res, b)) + return ret, nil +} + +type InstancesResetCall struct { + s *Service + project string + zone string + instance string + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header +} + +// Reset: Performs a reset on the instance. This is a hard reset. The VM +// does not do a graceful shutdown. For more information, seeResetting +// an instance. +// +// - instance: Name of the instance scoping this request. +// - project: Project ID for this request. +// - zone: The name of the zone for this request. +func (r *InstancesService) Reset(project string, zone string, instance string) *InstancesResetCall { + c := &InstancesResetCall{s: r.s, urlParams_: make(gensupport.URLParams)} + c.project = project + c.zone = zone + c.instance = instance + 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 *InstancesResetCall) RequestId(requestId string) *InstancesResetCall { + 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 +// details. +func (c *InstancesResetCall) Fields(s ...googleapi.Field) *InstancesResetCall { + c.urlParams_.Set("fields", googleapi.CombineFields(s)) + return c +} + +// Context sets the context to be used in this call's Do method. +func (c *InstancesResetCall) Context(ctx context.Context) *InstancesResetCall { + c.ctx_ = ctx + return c +} + +// Header returns a http.Header that can be modified by the caller to add +// headers to the request. +func (c *InstancesResetCall) Header() http.Header { + if c.header_ == nil { + c.header_ = make(http.Header) + } + return c.header_ +} + +func (c *InstancesResetCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) + c.urlParams_.Set("alt", alt) + c.urlParams_.Set("prettyPrint", "false") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instances/{instance}/reset") + urls += "?" + c.urlParams_.Encode() + req, err := http.NewRequest("POST", urls, nil) + if err != nil { + return nil, err + } + req.Header = reqHeaders + googleapi.Expand(req.URL, map[string]string{ + "project": c.project, + "zone": c.zone, + "instance": c.instance, + }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.instances.reset", "request", internallog.HTTPRequest(req, nil)) + return gensupport.SendRequest(c.ctx_, c.s.client, req) +} + +// Do executes the "compute.instances.reset" call. +// 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 *InstancesResetCall) 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, gensupport.WrapError(&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, gensupport.WrapError(err) + } + ret := &Operation{ + ServerResponse: googleapi.ServerResponse{ + Header: res.Header, + HTTPStatusCode: res.StatusCode, + }, + } + target := &ret + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { + return nil, err + } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.instances.reset", "response", internallog.HTTPResponse(res, b)) + return ret, nil +} + +type InstancesResumeCall struct { + s *Service + project string + zone string + instance string + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header +} + +// Resume: Resumes an instance that was suspended using +// theinstances().suspend +// method. +// +// - instance: Name of the instance resource to resume. +// - project: Project ID for this request. +// - zone: The name of the zone for this request. +func (r *InstancesService) Resume(project string, zone string, instance string) *InstancesResumeCall { + c := &InstancesResumeCall{s: r.s, urlParams_: make(gensupport.URLParams)} + c.project = project + c.zone = zone + c.instance = instance + 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 *InstancesResumeCall) RequestId(requestId string) *InstancesResumeCall { + 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 +// details. +func (c *InstancesResumeCall) Fields(s ...googleapi.Field) *InstancesResumeCall { + c.urlParams_.Set("fields", googleapi.CombineFields(s)) + return c +} + +// Context sets the context to be used in this call's Do method. +func (c *InstancesResumeCall) Context(ctx context.Context) *InstancesResumeCall { + c.ctx_ = ctx + return c +} + +// Header returns a http.Header that can be modified by the caller to add +// headers to the request. +func (c *InstancesResumeCall) Header() http.Header { + if c.header_ == nil { + c.header_ = make(http.Header) + } + return c.header_ +} + +func (c *InstancesResumeCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) + c.urlParams_.Set("alt", alt) + c.urlParams_.Set("prettyPrint", "false") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instances/{instance}/resume") + urls += "?" + c.urlParams_.Encode() + req, err := http.NewRequest("POST", urls, nil) + if err != nil { + return nil, err + } + req.Header = reqHeaders + googleapi.Expand(req.URL, map[string]string{ + "project": c.project, + "zone": c.zone, + "instance": c.instance, + }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.instances.resume", "request", internallog.HTTPRequest(req, nil)) + return gensupport.SendRequest(c.ctx_, c.s.client, req) +} + +// Do executes the "compute.instances.resume" call. +// 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 *InstancesResumeCall) 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, gensupport.WrapError(&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, gensupport.WrapError(err) + } + ret := &Operation{ + ServerResponse: googleapi.ServerResponse{ + Header: res.Header, + HTTPStatusCode: res.StatusCode, + }, + } + target := &ret + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { + return nil, err + } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.instances.resume", "response", internallog.HTTPResponse(res, b)) + return ret, nil +} + +type InstancesSendDiagnosticInterruptCall struct { + s *Service + project string + zone string + instance string + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header +} + +// SendDiagnosticInterrupt: Sends diagnostic interrupt to the instance. +// +// - instance: Name of the instance scoping this request. +// - project: Project ID for this request. +// - zone: The name of the zone for this request. +func (r *InstancesService) SendDiagnosticInterrupt(project string, zone string, instance string) *InstancesSendDiagnosticInterruptCall { + c := &InstancesSendDiagnosticInterruptCall{s: r.s, urlParams_: make(gensupport.URLParams)} + c.project = project + c.zone = zone + c.instance = instance + return c +} + +// Fields allows partial responses to be retrieved. See +// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more +// details. +func (c *InstancesSendDiagnosticInterruptCall) Fields(s ...googleapi.Field) *InstancesSendDiagnosticInterruptCall { + c.urlParams_.Set("fields", googleapi.CombineFields(s)) + return c +} + +// Context sets the context to be used in this call's Do method. +func (c *InstancesSendDiagnosticInterruptCall) Context(ctx context.Context) *InstancesSendDiagnosticInterruptCall { + c.ctx_ = ctx + return c +} + +// Header returns a http.Header that can be modified by the caller to add +// headers to the request. +func (c *InstancesSendDiagnosticInterruptCall) Header() http.Header { + if c.header_ == nil { + c.header_ = make(http.Header) + } + return c.header_ +} + +func (c *InstancesSendDiagnosticInterruptCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) + c.urlParams_.Set("alt", alt) + c.urlParams_.Set("prettyPrint", "false") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instances/{instance}/sendDiagnosticInterrupt") + urls += "?" + c.urlParams_.Encode() + req, err := http.NewRequest("POST", urls, nil) + if err != nil { + return nil, err + } + req.Header = reqHeaders + googleapi.Expand(req.URL, map[string]string{ + "project": c.project, + "zone": c.zone, + "instance": c.instance, + }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.instances.sendDiagnosticInterrupt", "request", internallog.HTTPRequest(req, nil)) + return gensupport.SendRequest(c.ctx_, c.s.client, req) +} + +// Do executes the "compute.instances.sendDiagnosticInterrupt" call. +func (c *InstancesSendDiagnosticInterruptCall) Do(opts ...googleapi.CallOption) error { + gensupport.SetOptions(c.urlParams_, opts...) + res, err := c.doRequest("json") + if err != nil { + return err + } + defer googleapi.CloseBody(res) + if err := googleapi.CheckResponse(res); err != nil { + return gensupport.WrapError(err) + } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.instances.sendDiagnosticInterrupt", "response", internallog.HTTPResponse(res, nil)) + return nil +} + +type InstancesSetDeletionProtectionCall struct { + s *Service + project string + zone string + resource string + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header +} + +// SetDeletionProtection: Sets deletion protection on the instance. +// +// - project: Project ID for this request. +// - resource: Name or id of the resource for this request. +// - zone: The name of the zone for this request. +func (r *InstancesService) SetDeletionProtection(project string, zone string, resource string) *InstancesSetDeletionProtectionCall { + c := &InstancesSetDeletionProtectionCall{s: r.s, urlParams_: make(gensupport.URLParams)} + c.project = project + c.zone = zone + c.resource = resource + return c +} + +// DeletionProtection sets the optional parameter "deletionProtection": Whether +// the resource should be protected against deletion. +func (c *InstancesSetDeletionProtectionCall) DeletionProtection(deletionProtection bool) *InstancesSetDeletionProtectionCall { + c.urlParams_.Set("deletionProtection", fmt.Sprint(deletionProtection)) + 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 *InstancesSetDeletionProtectionCall) RequestId(requestId string) *InstancesSetDeletionProtectionCall { + 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 +// details. +func (c *InstancesSetDeletionProtectionCall) Fields(s ...googleapi.Field) *InstancesSetDeletionProtectionCall { + c.urlParams_.Set("fields", googleapi.CombineFields(s)) + return c +} + +// Context sets the context to be used in this call's Do method. +func (c *InstancesSetDeletionProtectionCall) Context(ctx context.Context) *InstancesSetDeletionProtectionCall { + c.ctx_ = ctx + return c +} + +// Header returns a http.Header that can be modified by the caller to add +// headers to the request. +func (c *InstancesSetDeletionProtectionCall) Header() http.Header { + if c.header_ == nil { + c.header_ = make(http.Header) + } + return c.header_ +} + +func (c *InstancesSetDeletionProtectionCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) + c.urlParams_.Set("alt", alt) + c.urlParams_.Set("prettyPrint", "false") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instances/{resource}/setDeletionProtection") + urls += "?" + c.urlParams_.Encode() + req, err := http.NewRequest("POST", urls, nil) + if err != nil { + return nil, err + } + req.Header = reqHeaders + googleapi.Expand(req.URL, map[string]string{ + "project": c.project, + "zone": c.zone, + "resource": c.resource, + }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.instances.setDeletionProtection", "request", internallog.HTTPRequest(req, nil)) + return gensupport.SendRequest(c.ctx_, c.s.client, req) +} + +// Do executes the "compute.instances.setDeletionProtection" call. +// 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 *InstancesSetDeletionProtectionCall) 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, gensupport.WrapError(&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, gensupport.WrapError(err) + } + ret := &Operation{ + ServerResponse: googleapi.ServerResponse{ + Header: res.Header, + HTTPStatusCode: res.StatusCode, + }, + } + target := &ret + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { + return nil, err + } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.instances.setDeletionProtection", "response", internallog.HTTPResponse(res, b)) + return ret, nil +} + +type InstancesSetDiskAutoDeleteCall struct { + s *Service + project string + zone string + instance string + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header +} + +// SetDiskAutoDelete: Sets the auto-delete flag for a disk attached to an +// instance. +// +// - autoDelete: Whether to auto-delete the disk when the instance is deleted. +// - deviceName: The device name of the disk to modify. Make a get() request +// on the instance to view currently attached disks and device names. +// - instance: The instance name for this request. +// - project: Project ID for this request. +// - zone: The name of the zone for this request. +func (r *InstancesService) SetDiskAutoDelete(project string, zone string, instance string, autoDelete bool, deviceName string) *InstancesSetDiskAutoDeleteCall { + c := &InstancesSetDiskAutoDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)} + c.project = project + c.zone = zone + c.instance = instance + c.urlParams_.Set("autoDelete", fmt.Sprint(autoDelete)) + c.urlParams_.Set("deviceName", deviceName) + 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 *InstancesSetDiskAutoDeleteCall) RequestId(requestId string) *InstancesSetDiskAutoDeleteCall { + 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 +// details. +func (c *InstancesSetDiskAutoDeleteCall) Fields(s ...googleapi.Field) *InstancesSetDiskAutoDeleteCall { + c.urlParams_.Set("fields", googleapi.CombineFields(s)) + return c +} + +// Context sets the context to be used in this call's Do method. +func (c *InstancesSetDiskAutoDeleteCall) Context(ctx context.Context) *InstancesSetDiskAutoDeleteCall { + c.ctx_ = ctx + return c +} + +// Header returns a http.Header that can be modified by the caller to add +// headers to the request. +func (c *InstancesSetDiskAutoDeleteCall) Header() http.Header { + if c.header_ == nil { + c.header_ = make(http.Header) + } + return c.header_ +} + +func (c *InstancesSetDiskAutoDeleteCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) + c.urlParams_.Set("alt", alt) + c.urlParams_.Set("prettyPrint", "false") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instances/{instance}/setDiskAutoDelete") + urls += "?" + c.urlParams_.Encode() + req, err := http.NewRequest("POST", urls, nil) + if err != nil { + return nil, err + } + req.Header = reqHeaders + googleapi.Expand(req.URL, map[string]string{ + "project": c.project, + "zone": c.zone, + "instance": c.instance, + }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.instances.setDiskAutoDelete", "request", internallog.HTTPRequest(req, nil)) + return gensupport.SendRequest(c.ctx_, c.s.client, req) +} + +// Do executes the "compute.instances.setDiskAutoDelete" call. +// 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 *InstancesSetDiskAutoDeleteCall) 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, gensupport.WrapError(&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, gensupport.WrapError(err) + } + ret := &Operation{ + ServerResponse: googleapi.ServerResponse{ + Header: res.Header, + HTTPStatusCode: res.StatusCode, + }, + } + target := &ret + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { + return nil, err + } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.instances.setDiskAutoDelete", "response", internallog.HTTPResponse(res, b)) + return ret, nil +} + +type InstancesSetIamPolicyCall struct { + s *Service + project string + zone string + resource string + zonesetpolicyrequest *ZoneSetPolicyRequest + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header +} + +// SetIamPolicy: Sets the access control policy on the specified +// resource. +// Replaces any existing policy. +// +// - project: Project ID for this request. +// - resource: Name or id of the resource for this request. +// - zone: The name of the zone for this request. +func (r *InstancesService) SetIamPolicy(project string, zone string, resource string, zonesetpolicyrequest *ZoneSetPolicyRequest) *InstancesSetIamPolicyCall { + c := &InstancesSetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)} + c.project = project + c.zone = zone + c.resource = resource + c.zonesetpolicyrequest = zonesetpolicyrequest + return c +} + +// Fields allows partial responses to be retrieved. See +// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more +// details. +func (c *InstancesSetIamPolicyCall) Fields(s ...googleapi.Field) *InstancesSetIamPolicyCall { + c.urlParams_.Set("fields", googleapi.CombineFields(s)) + return c +} + +// Context sets the context to be used in this call's Do method. +func (c *InstancesSetIamPolicyCall) Context(ctx context.Context) *InstancesSetIamPolicyCall { + c.ctx_ = ctx + return c +} + +// Header returns a http.Header that can be modified by the caller to add +// headers to the request. +func (c *InstancesSetIamPolicyCall) Header() http.Header { + if c.header_ == nil { + c.header_ = make(http.Header) + } + return c.header_ +} + +func (c *InstancesSetIamPolicyCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) + body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.zonesetpolicyrequest) + if err != nil { + return nil, err + } + c.urlParams_.Set("alt", alt) + c.urlParams_.Set("prettyPrint", "false") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instances/{resource}/setIamPolicy") + urls += "?" + c.urlParams_.Encode() + req, err := http.NewRequest("POST", urls, body) + if err != nil { + return nil, err + } + req.Header = reqHeaders + googleapi.Expand(req.URL, map[string]string{ + "project": c.project, + "zone": c.zone, + "resource": c.resource, + }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.instances.setIamPolicy", "request", internallog.HTTPRequest(req, body.Bytes())) + return gensupport.SendRequest(c.ctx_, c.s.client, req) +} + +// Do executes the "compute.instances.setIamPolicy" call. +// Any non-2xx status code is an error. Response headers are in either +// *Policy.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 *InstancesSetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, 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, gensupport.WrapError(&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, gensupport.WrapError(err) + } + ret := &Policy{ + ServerResponse: googleapi.ServerResponse{ + Header: res.Header, + HTTPStatusCode: res.StatusCode, + }, + } + target := &ret + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { + return nil, err + } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.instances.setIamPolicy", "response", internallog.HTTPResponse(res, b)) + return ret, nil +} + +type InstancesSetLabelsCall struct { + s *Service + project string + zone string + instance string + instancessetlabelsrequest *InstancesSetLabelsRequest + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header +} + +// SetLabels: Sets labels on an instance. To learn more about labels, read +// theLabeling +// Resources documentation. +// +// - instance: Name of the instance scoping this request. +// - project: Project ID for this request. +// - zone: The name of the zone for this request. +func (r *InstancesService) SetLabels(project string, zone string, instance string, instancessetlabelsrequest *InstancesSetLabelsRequest) *InstancesSetLabelsCall { + c := &InstancesSetLabelsCall{s: r.s, urlParams_: make(gensupport.URLParams)} + c.project = project + c.zone = zone + c.instance = instance + c.instancessetlabelsrequest = instancessetlabelsrequest + 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 *InstancesSetLabelsCall) RequestId(requestId string) *InstancesSetLabelsCall { + 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 +// details. +func (c *InstancesSetLabelsCall) Fields(s ...googleapi.Field) *InstancesSetLabelsCall { + c.urlParams_.Set("fields", googleapi.CombineFields(s)) + return c +} + +// Context sets the context to be used in this call's Do method. +func (c *InstancesSetLabelsCall) Context(ctx context.Context) *InstancesSetLabelsCall { + c.ctx_ = ctx + return c +} + +// Header returns a http.Header that can be modified by the caller to add +// headers to the request. +func (c *InstancesSetLabelsCall) Header() http.Header { + if c.header_ == nil { + c.header_ = make(http.Header) + } + return c.header_ +} + +func (c *InstancesSetLabelsCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) + body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.instancessetlabelsrequest) + if err != nil { + return nil, err + } + c.urlParams_.Set("alt", alt) + c.urlParams_.Set("prettyPrint", "false") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instances/{instance}/setLabels") + urls += "?" + c.urlParams_.Encode() + req, err := http.NewRequest("POST", urls, body) + if err != nil { + return nil, err + } + req.Header = reqHeaders + googleapi.Expand(req.URL, map[string]string{ + "project": c.project, + "zone": c.zone, + "instance": c.instance, + }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.instances.setLabels", "request", internallog.HTTPRequest(req, body.Bytes())) + return gensupport.SendRequest(c.ctx_, c.s.client, req) +} + +// Do executes the "compute.instances.setLabels" call. +// 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 *InstancesSetLabelsCall) 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, gensupport.WrapError(&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, gensupport.WrapError(err) + } + ret := &Operation{ + ServerResponse: googleapi.ServerResponse{ + Header: res.Header, + HTTPStatusCode: res.StatusCode, + }, + } + target := &ret + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { + return nil, err + } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.instances.setLabels", "response", internallog.HTTPResponse(res, b)) + return ret, nil +} + +type InstancesSetMachineResourcesCall struct { + s *Service + project string + zone string + instance string + instancessetmachineresourcesrequest *InstancesSetMachineResourcesRequest + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header +} + +// SetMachineResources: Changes the number and/or type of accelerator for a +// stopped instance to the +// values specified in the request. +// +// - instance: Name of the instance scoping this request. +// - project: Project ID for this request. +// - zone: The name of the zone for this request. +func (r *InstancesService) SetMachineResources(project string, zone string, instance string, instancessetmachineresourcesrequest *InstancesSetMachineResourcesRequest) *InstancesSetMachineResourcesCall { + c := &InstancesSetMachineResourcesCall{s: r.s, urlParams_: make(gensupport.URLParams)} + c.project = project + c.zone = zone + c.instance = instance + c.instancessetmachineresourcesrequest = instancessetmachineresourcesrequest + 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 *InstancesSetMachineResourcesCall) RequestId(requestId string) *InstancesSetMachineResourcesCall { + 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 +// details. +func (c *InstancesSetMachineResourcesCall) Fields(s ...googleapi.Field) *InstancesSetMachineResourcesCall { + c.urlParams_.Set("fields", googleapi.CombineFields(s)) + return c +} + +// Context sets the context to be used in this call's Do method. +func (c *InstancesSetMachineResourcesCall) Context(ctx context.Context) *InstancesSetMachineResourcesCall { + c.ctx_ = ctx + return c +} + +// Header returns a http.Header that can be modified by the caller to add +// headers to the request. +func (c *InstancesSetMachineResourcesCall) Header() http.Header { + if c.header_ == nil { + c.header_ = make(http.Header) + } + return c.header_ +} + +func (c *InstancesSetMachineResourcesCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) + body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.instancessetmachineresourcesrequest) + if err != nil { + return nil, err + } + c.urlParams_.Set("alt", alt) + c.urlParams_.Set("prettyPrint", "false") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instances/{instance}/setMachineResources") + urls += "?" + c.urlParams_.Encode() + req, err := http.NewRequest("POST", urls, body) + if err != nil { + return nil, err + } + req.Header = reqHeaders + googleapi.Expand(req.URL, map[string]string{ + "project": c.project, + "zone": c.zone, + "instance": c.instance, + }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.instances.setMachineResources", "request", internallog.HTTPRequest(req, body.Bytes())) + return gensupport.SendRequest(c.ctx_, c.s.client, req) +} + +// Do executes the "compute.instances.setMachineResources" call. +// 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 *InstancesSetMachineResourcesCall) 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, gensupport.WrapError(&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, gensupport.WrapError(err) + } + ret := &Operation{ + ServerResponse: googleapi.ServerResponse{ + Header: res.Header, + HTTPStatusCode: res.StatusCode, + }, + } + target := &ret + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { + return nil, err + } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.instances.setMachineResources", "response", internallog.HTTPResponse(res, b)) + return ret, nil +} + +type InstancesSetMachineTypeCall struct { + s *Service + project string + zone string + instance string + instancessetmachinetyperequest *InstancesSetMachineTypeRequest + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header +} + +// SetMachineType: Changes the machine type for a stopped instance to the +// machine +// type specified in the request. +// +// - instance: Name of the instance scoping this request. +// - project: Project ID for this request. +// - zone: The name of the zone for this request. +func (r *InstancesService) SetMachineType(project string, zone string, instance string, instancessetmachinetyperequest *InstancesSetMachineTypeRequest) *InstancesSetMachineTypeCall { + c := &InstancesSetMachineTypeCall{s: r.s, urlParams_: make(gensupport.URLParams)} + c.project = project + c.zone = zone + c.instance = instance + c.instancessetmachinetyperequest = instancessetmachinetyperequest + 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 *InstancesSetMachineTypeCall) RequestId(requestId string) *InstancesSetMachineTypeCall { + 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 +// details. +func (c *InstancesSetMachineTypeCall) Fields(s ...googleapi.Field) *InstancesSetMachineTypeCall { + c.urlParams_.Set("fields", googleapi.CombineFields(s)) + return c +} + +// Context sets the context to be used in this call's Do method. +func (c *InstancesSetMachineTypeCall) Context(ctx context.Context) *InstancesSetMachineTypeCall { + c.ctx_ = ctx + return c +} + +// Header returns a http.Header that can be modified by the caller to add +// headers to the request. +func (c *InstancesSetMachineTypeCall) Header() http.Header { + if c.header_ == nil { + c.header_ = make(http.Header) + } + return c.header_ +} + +func (c *InstancesSetMachineTypeCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) + body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.instancessetmachinetyperequest) + if err != nil { + return nil, err + } + c.urlParams_.Set("alt", alt) + c.urlParams_.Set("prettyPrint", "false") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instances/{instance}/setMachineType") + urls += "?" + c.urlParams_.Encode() + req, err := http.NewRequest("POST", urls, body) + if err != nil { + return nil, err + } + req.Header = reqHeaders + googleapi.Expand(req.URL, map[string]string{ + "project": c.project, + "zone": c.zone, + "instance": c.instance, + }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.instances.setMachineType", "request", internallog.HTTPRequest(req, body.Bytes())) + return gensupport.SendRequest(c.ctx_, c.s.client, req) +} + +// Do executes the "compute.instances.setMachineType" call. +// 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 *InstancesSetMachineTypeCall) 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, gensupport.WrapError(&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, gensupport.WrapError(err) + } + ret := &Operation{ + ServerResponse: googleapi.ServerResponse{ + Header: res.Header, + HTTPStatusCode: res.StatusCode, + }, + } + target := &ret + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { + return nil, err + } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.instances.setMachineType", "response", internallog.HTTPResponse(res, b)) + return ret, nil +} + +type InstancesSetMetadataCall struct { + s *Service + project string + zone string + instance string + metadata *Metadata + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header +} + +// SetMetadata: Sets metadata for the specified instance to the data +// included +// in the request. +// +// - instance: Name of the instance scoping this request. +// - project: Project ID for this request. +// - zone: The name of the zone for this request. +func (r *InstancesService) SetMetadata(project string, zone string, instance string, metadata *Metadata) *InstancesSetMetadataCall { + c := &InstancesSetMetadataCall{s: r.s, urlParams_: make(gensupport.URLParams)} + c.project = project + c.zone = zone + c.instance = instance + c.metadata = metadata + 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 *InstancesSetMetadataCall) RequestId(requestId string) *InstancesSetMetadataCall { + 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 +// details. +func (c *InstancesSetMetadataCall) Fields(s ...googleapi.Field) *InstancesSetMetadataCall { + c.urlParams_.Set("fields", googleapi.CombineFields(s)) + return c +} + +// Context sets the context to be used in this call's Do method. +func (c *InstancesSetMetadataCall) Context(ctx context.Context) *InstancesSetMetadataCall { + c.ctx_ = ctx + return c +} + +// Header returns a http.Header that can be modified by the caller to add +// headers to the request. +func (c *InstancesSetMetadataCall) Header() http.Header { + if c.header_ == nil { + c.header_ = make(http.Header) + } + return c.header_ +} + +func (c *InstancesSetMetadataCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) + body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.metadata) + if err != nil { + return nil, err + } + c.urlParams_.Set("alt", alt) + c.urlParams_.Set("prettyPrint", "false") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instances/{instance}/setMetadata") + urls += "?" + c.urlParams_.Encode() + req, err := http.NewRequest("POST", urls, body) + if err != nil { + return nil, err + } + req.Header = reqHeaders + googleapi.Expand(req.URL, map[string]string{ + "project": c.project, + "zone": c.zone, + "instance": c.instance, + }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.instances.setMetadata", "request", internallog.HTTPRequest(req, body.Bytes())) + return gensupport.SendRequest(c.ctx_, c.s.client, req) +} + +// Do executes the "compute.instances.setMetadata" call. +// 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 *InstancesSetMetadataCall) 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, gensupport.WrapError(&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, gensupport.WrapError(err) + } + ret := &Operation{ + ServerResponse: googleapi.ServerResponse{ + Header: res.Header, + HTTPStatusCode: res.StatusCode, + }, + } + target := &ret + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { + return nil, err + } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.instances.setMetadata", "response", internallog.HTTPResponse(res, b)) + return ret, nil +} + +type InstancesSetMinCpuPlatformCall struct { + s *Service + project string + zone string + instance string + instancessetmincpuplatformrequest *InstancesSetMinCpuPlatformRequest + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header +} + +// SetMinCpuPlatform: Changes the minimum CPU platform that this instance +// should use. +// This method can only +// be called on a stopped instance. For more information, readSpecifying +// a +// Minimum CPU Platform. +// +// - instance: Name of the instance scoping this request. +// - project: Project ID for this request. +// - zone: The name of the zone for this request. +func (r *InstancesService) SetMinCpuPlatform(project string, zone string, instance string, instancessetmincpuplatformrequest *InstancesSetMinCpuPlatformRequest) *InstancesSetMinCpuPlatformCall { + c := &InstancesSetMinCpuPlatformCall{s: r.s, urlParams_: make(gensupport.URLParams)} + c.project = project + c.zone = zone + c.instance = instance + c.instancessetmincpuplatformrequest = instancessetmincpuplatformrequest + 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 *InstancesSetMinCpuPlatformCall) RequestId(requestId string) *InstancesSetMinCpuPlatformCall { + 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 +// details. +func (c *InstancesSetMinCpuPlatformCall) Fields(s ...googleapi.Field) *InstancesSetMinCpuPlatformCall { + c.urlParams_.Set("fields", googleapi.CombineFields(s)) + return c +} + +// Context sets the context to be used in this call's Do method. +func (c *InstancesSetMinCpuPlatformCall) Context(ctx context.Context) *InstancesSetMinCpuPlatformCall { + c.ctx_ = ctx + return c +} + +// Header returns a http.Header that can be modified by the caller to add +// headers to the request. +func (c *InstancesSetMinCpuPlatformCall) Header() http.Header { + if c.header_ == nil { + c.header_ = make(http.Header) + } + return c.header_ +} + +func (c *InstancesSetMinCpuPlatformCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) + body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.instancessetmincpuplatformrequest) + if err != nil { + return nil, err + } + c.urlParams_.Set("alt", alt) + c.urlParams_.Set("prettyPrint", "false") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instances/{instance}/setMinCpuPlatform") + urls += "?" + c.urlParams_.Encode() + req, err := http.NewRequest("POST", urls, body) + if err != nil { + return nil, err + } + req.Header = reqHeaders + googleapi.Expand(req.URL, map[string]string{ + "project": c.project, + "zone": c.zone, + "instance": c.instance, + }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.instances.setMinCpuPlatform", "request", internallog.HTTPRequest(req, body.Bytes())) + return gensupport.SendRequest(c.ctx_, c.s.client, req) +} + +// Do executes the "compute.instances.setMinCpuPlatform" call. +// 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 *InstancesSetMinCpuPlatformCall) 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, gensupport.WrapError(&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, gensupport.WrapError(err) + } + ret := &Operation{ + ServerResponse: googleapi.ServerResponse{ + Header: res.Header, + HTTPStatusCode: res.StatusCode, + }, + } + target := &ret + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { + return nil, err + } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.instances.setMinCpuPlatform", "response", internallog.HTTPResponse(res, b)) + return ret, nil +} + +type InstancesSetNameCall struct { + s *Service + project string + zone string + instance string + instancessetnamerequest *InstancesSetNameRequest + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header +} + +// SetName: Sets name of an instance. +// +// - instance: The instance name for this request. +// - project: Project ID for this request. +// - zone: The name of the zone for this request. +func (r *InstancesService) SetName(project string, zone string, instance string, instancessetnamerequest *InstancesSetNameRequest) *InstancesSetNameCall { + c := &InstancesSetNameCall{s: r.s, urlParams_: make(gensupport.URLParams)} + c.project = project + c.zone = zone + c.instance = instance + c.instancessetnamerequest = instancessetnamerequest + 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 *InstancesSetNameCall) RequestId(requestId string) *InstancesSetNameCall { + 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 +// details. +func (c *InstancesSetNameCall) Fields(s ...googleapi.Field) *InstancesSetNameCall { + c.urlParams_.Set("fields", googleapi.CombineFields(s)) + return c +} + +// Context sets the context to be used in this call's Do method. +func (c *InstancesSetNameCall) Context(ctx context.Context) *InstancesSetNameCall { + c.ctx_ = ctx + return c +} + +// Header returns a http.Header that can be modified by the caller to add +// headers to the request. +func (c *InstancesSetNameCall) Header() http.Header { + if c.header_ == nil { + c.header_ = make(http.Header) + } + return c.header_ +} + +func (c *InstancesSetNameCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) + body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.instancessetnamerequest) + if err != nil { + return nil, err + } + c.urlParams_.Set("alt", alt) + c.urlParams_.Set("prettyPrint", "false") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instances/{instance}/setName") + urls += "?" + c.urlParams_.Encode() + req, err := http.NewRequest("POST", urls, body) + if err != nil { + return nil, err + } + req.Header = reqHeaders + googleapi.Expand(req.URL, map[string]string{ + "project": c.project, + "zone": c.zone, + "instance": c.instance, + }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.instances.setName", "request", internallog.HTTPRequest(req, body.Bytes())) + return gensupport.SendRequest(c.ctx_, c.s.client, req) +} + +// Do executes the "compute.instances.setName" call. +// 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 *InstancesSetNameCall) 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, gensupport.WrapError(&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, gensupport.WrapError(err) + } + ret := &Operation{ + ServerResponse: googleapi.ServerResponse{ + Header: res.Header, + HTTPStatusCode: res.StatusCode, + }, + } + target := &ret + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { + return nil, err + } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.instances.setName", "response", internallog.HTTPResponse(res, b)) + return ret, nil +} + +type InstancesSetSchedulingCall struct { + s *Service + project string + zone string + instance string + scheduling *Scheduling + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header +} + +// SetScheduling: Sets an instance's scheduling options. You can only call this +// method on astopped instance, +// that is, a VM instance that is in a `TERMINATED` state. SeeInstance +// Life +// Cycle for more information on the possible instance states. +// For more information about setting scheduling options for a VM, seeSet +// VM host maintenance policy. +// +// - instance: Instance name for this request. +// - project: Project ID for this request. +// - zone: The name of the zone for this request. +func (r *InstancesService) SetScheduling(project string, zone string, instance string, scheduling *Scheduling) *InstancesSetSchedulingCall { + c := &InstancesSetSchedulingCall{s: r.s, urlParams_: make(gensupport.URLParams)} + c.project = project + c.zone = zone + c.instance = instance + c.scheduling = scheduling + 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 *InstancesSetSchedulingCall) RequestId(requestId string) *InstancesSetSchedulingCall { + 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 +// details. +func (c *InstancesSetSchedulingCall) Fields(s ...googleapi.Field) *InstancesSetSchedulingCall { + c.urlParams_.Set("fields", googleapi.CombineFields(s)) + return c +} + +// Context sets the context to be used in this call's Do method. +func (c *InstancesSetSchedulingCall) Context(ctx context.Context) *InstancesSetSchedulingCall { + c.ctx_ = ctx + return c +} + +// Header returns a http.Header that can be modified by the caller to add +// headers to the request. +func (c *InstancesSetSchedulingCall) Header() http.Header { + if c.header_ == nil { + c.header_ = make(http.Header) + } + return c.header_ +} + +func (c *InstancesSetSchedulingCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) + body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.scheduling) + if err != nil { + return nil, err + } + c.urlParams_.Set("alt", alt) + c.urlParams_.Set("prettyPrint", "false") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instances/{instance}/setScheduling") + urls += "?" + c.urlParams_.Encode() + req, err := http.NewRequest("POST", urls, body) + if err != nil { + return nil, err + } + req.Header = reqHeaders + googleapi.Expand(req.URL, map[string]string{ + "project": c.project, + "zone": c.zone, + "instance": c.instance, + }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.instances.setScheduling", "request", internallog.HTTPRequest(req, body.Bytes())) + return gensupport.SendRequest(c.ctx_, c.s.client, req) +} + +// Do executes the "compute.instances.setScheduling" call. +// 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 *InstancesSetSchedulingCall) 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, gensupport.WrapError(&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, gensupport.WrapError(err) + } + ret := &Operation{ + ServerResponse: googleapi.ServerResponse{ + Header: res.Header, + HTTPStatusCode: res.StatusCode, + }, + } + target := &ret + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { + return nil, err + } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.instances.setScheduling", "response", internallog.HTTPResponse(res, b)) + return ret, nil +} + +type InstancesSetSecurityPolicyCall struct { + s *Service + project string + zone string + instance string + instancessetsecuritypolicyrequest *InstancesSetSecurityPolicyRequest + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header +} + +// SetSecurityPolicy: Sets the Google Cloud Armor security policy for the +// specified instance. +// For more information, seeGoogle +// Cloud Armor Overview +// +// - instance: Name of the Instance resource to which the security policy +// should be +// +// set. The name should conform to RFC1035. +// - project: Project ID for this request. +// - zone: Name of the zone scoping this request. +func (r *InstancesService) SetSecurityPolicy(project string, zone string, instance string, instancessetsecuritypolicyrequest *InstancesSetSecurityPolicyRequest) *InstancesSetSecurityPolicyCall { + c := &InstancesSetSecurityPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)} + c.project = project + c.zone = zone + c.instance = instance + c.instancessetsecuritypolicyrequest = instancessetsecuritypolicyrequest + 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 *InstancesSetSecurityPolicyCall) RequestId(requestId string) *InstancesSetSecurityPolicyCall { + 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 +// details. +func (c *InstancesSetSecurityPolicyCall) Fields(s ...googleapi.Field) *InstancesSetSecurityPolicyCall { + c.urlParams_.Set("fields", googleapi.CombineFields(s)) + return c +} + +// Context sets the context to be used in this call's Do method. +func (c *InstancesSetSecurityPolicyCall) Context(ctx context.Context) *InstancesSetSecurityPolicyCall { + c.ctx_ = ctx + return c +} + +// Header returns a http.Header that can be modified by the caller to add +// headers to the request. +func (c *InstancesSetSecurityPolicyCall) Header() http.Header { + if c.header_ == nil { + c.header_ = make(http.Header) + } + return c.header_ +} + +func (c *InstancesSetSecurityPolicyCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) + body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.instancessetsecuritypolicyrequest) + if err != nil { + return nil, err + } + c.urlParams_.Set("alt", alt) + c.urlParams_.Set("prettyPrint", "false") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instances/{instance}/setSecurityPolicy") + urls += "?" + c.urlParams_.Encode() + req, err := http.NewRequest("POST", urls, body) + if err != nil { + return nil, err + } + req.Header = reqHeaders + googleapi.Expand(req.URL, map[string]string{ + "project": c.project, + "zone": c.zone, + "instance": c.instance, + }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.instances.setSecurityPolicy", "request", internallog.HTTPRequest(req, body.Bytes())) + return gensupport.SendRequest(c.ctx_, c.s.client, req) +} + +// Do executes the "compute.instances.setSecurityPolicy" call. +// 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 *InstancesSetSecurityPolicyCall) 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, gensupport.WrapError(&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, gensupport.WrapError(err) + } + ret := &Operation{ + ServerResponse: googleapi.ServerResponse{ + Header: res.Header, + HTTPStatusCode: res.StatusCode, + }, + } + target := &ret + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { + return nil, err + } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.instances.setSecurityPolicy", "response", internallog.HTTPResponse(res, b)) + return ret, nil +} + +type InstancesSetServiceAccountCall struct { + s *Service + project string + zone string + instance string + instancessetserviceaccountrequest *InstancesSetServiceAccountRequest + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header +} + +// SetServiceAccount: Sets the service account on the instance. For more +// information, +// readChanging +// the service account and access scopes for an instance. +// +// - instance: Name of the instance resource to start. +// - project: Project ID for this request. +// - zone: The name of the zone for this request. +func (r *InstancesService) SetServiceAccount(project string, zone string, instance string, instancessetserviceaccountrequest *InstancesSetServiceAccountRequest) *InstancesSetServiceAccountCall { + c := &InstancesSetServiceAccountCall{s: r.s, urlParams_: make(gensupport.URLParams)} + c.project = project + c.zone = zone + c.instance = instance + c.instancessetserviceaccountrequest = instancessetserviceaccountrequest + 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 *InstancesSetServiceAccountCall) RequestId(requestId string) *InstancesSetServiceAccountCall { + 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 +// details. +func (c *InstancesSetServiceAccountCall) Fields(s ...googleapi.Field) *InstancesSetServiceAccountCall { + c.urlParams_.Set("fields", googleapi.CombineFields(s)) + return c +} + +// Context sets the context to be used in this call's Do method. +func (c *InstancesSetServiceAccountCall) Context(ctx context.Context) *InstancesSetServiceAccountCall { + c.ctx_ = ctx + return c +} + +// Header returns a http.Header that can be modified by the caller to add +// headers to the request. +func (c *InstancesSetServiceAccountCall) Header() http.Header { + if c.header_ == nil { + c.header_ = make(http.Header) + } + return c.header_ +} + +func (c *InstancesSetServiceAccountCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) + body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.instancessetserviceaccountrequest) + if err != nil { + return nil, err + } + c.urlParams_.Set("alt", alt) + c.urlParams_.Set("prettyPrint", "false") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instances/{instance}/setServiceAccount") + urls += "?" + c.urlParams_.Encode() + req, err := http.NewRequest("POST", urls, body) + if err != nil { + return nil, err + } + req.Header = reqHeaders + googleapi.Expand(req.URL, map[string]string{ + "project": c.project, + "zone": c.zone, + "instance": c.instance, + }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.instances.setServiceAccount", "request", internallog.HTTPRequest(req, body.Bytes())) + return gensupport.SendRequest(c.ctx_, c.s.client, req) +} + +// Do executes the "compute.instances.setServiceAccount" call. +// 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 *InstancesSetServiceAccountCall) 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, gensupport.WrapError(&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, gensupport.WrapError(err) + } + ret := &Operation{ + ServerResponse: googleapi.ServerResponse{ + Header: res.Header, + HTTPStatusCode: res.StatusCode, + }, + } + target := &ret + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { + return nil, err + } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.instances.setServiceAccount", "response", internallog.HTTPResponse(res, b)) + return ret, nil +} + +type InstancesSetShieldedInstanceIntegrityPolicyCall struct { + s *Service + project string + zone string + instance string + shieldedinstanceintegritypolicy *ShieldedInstanceIntegrityPolicy + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header +} + +// SetShieldedInstanceIntegrityPolicy: Sets the Shielded Instance integrity +// policy for an instance. You can +// only use this method on a running instance. This method +// supports PATCH semantics and uses the JSON merge +// patch format and processing rules. +// +// - instance: Name or id of the instance scoping this request. +// - project: Project ID for this request. +// - zone: The name of the zone for this request. +func (r *InstancesService) SetShieldedInstanceIntegrityPolicy(project string, zone string, instance string, shieldedinstanceintegritypolicy *ShieldedInstanceIntegrityPolicy) *InstancesSetShieldedInstanceIntegrityPolicyCall { + c := &InstancesSetShieldedInstanceIntegrityPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)} + c.project = project + c.zone = zone + c.instance = instance + c.shieldedinstanceintegritypolicy = shieldedinstanceintegritypolicy + 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 *InstancesSetShieldedInstanceIntegrityPolicyCall) RequestId(requestId string) *InstancesSetShieldedInstanceIntegrityPolicyCall { + 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 +// details. +func (c *InstancesSetShieldedInstanceIntegrityPolicyCall) Fields(s ...googleapi.Field) *InstancesSetShieldedInstanceIntegrityPolicyCall { + c.urlParams_.Set("fields", googleapi.CombineFields(s)) + return c +} + +// Context sets the context to be used in this call's Do method. +func (c *InstancesSetShieldedInstanceIntegrityPolicyCall) Context(ctx context.Context) *InstancesSetShieldedInstanceIntegrityPolicyCall { + c.ctx_ = ctx + return c +} + +// Header returns a http.Header that can be modified by the caller to add +// headers to the request. +func (c *InstancesSetShieldedInstanceIntegrityPolicyCall) Header() http.Header { + if c.header_ == nil { + c.header_ = make(http.Header) + } + return c.header_ +} + +func (c *InstancesSetShieldedInstanceIntegrityPolicyCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) + body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.shieldedinstanceintegritypolicy) + if err != nil { + return nil, err + } + c.urlParams_.Set("alt", alt) + c.urlParams_.Set("prettyPrint", "false") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instances/{instance}/setShieldedInstanceIntegrityPolicy") + urls += "?" + c.urlParams_.Encode() + req, err := http.NewRequest("PATCH", urls, body) + if err != nil { + return nil, err + } + req.Header = reqHeaders + googleapi.Expand(req.URL, map[string]string{ + "project": c.project, + "zone": c.zone, + "instance": c.instance, + }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.instances.setShieldedInstanceIntegrityPolicy", "request", internallog.HTTPRequest(req, body.Bytes())) + return gensupport.SendRequest(c.ctx_, c.s.client, req) +} + +// Do executes the "compute.instances.setShieldedInstanceIntegrityPolicy" call. +// 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 *InstancesSetShieldedInstanceIntegrityPolicyCall) 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, gensupport.WrapError(&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, gensupport.WrapError(err) + } + ret := &Operation{ + ServerResponse: googleapi.ServerResponse{ + Header: res.Header, + HTTPStatusCode: res.StatusCode, + }, + } + target := &ret + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { + return nil, err + } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.instances.setShieldedInstanceIntegrityPolicy", "response", internallog.HTTPResponse(res, b)) + return ret, nil +} + +type InstancesSetTagsCall struct { + s *Service + project string + zone string + instance string + tags *Tags + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header +} + +// SetTags: Sets network tags +// for the specified instance to the data included in the request. +// +// - instance: Name of the instance scoping this request. +// - project: Project ID for this request. +// - zone: The name of the zone for this request. +func (r *InstancesService) SetTags(project string, zone string, instance string, tags *Tags) *InstancesSetTagsCall { + c := &InstancesSetTagsCall{s: r.s, urlParams_: make(gensupport.URLParams)} + c.project = project + c.zone = zone + c.instance = instance + c.tags = tags + 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 *InstancesSetTagsCall) RequestId(requestId string) *InstancesSetTagsCall { + 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 +// details. +func (c *InstancesSetTagsCall) Fields(s ...googleapi.Field) *InstancesSetTagsCall { + c.urlParams_.Set("fields", googleapi.CombineFields(s)) + return c +} + +// Context sets the context to be used in this call's Do method. +func (c *InstancesSetTagsCall) Context(ctx context.Context) *InstancesSetTagsCall { + c.ctx_ = ctx + return c +} + +// Header returns a http.Header that can be modified by the caller to add +// headers to the request. +func (c *InstancesSetTagsCall) Header() http.Header { + if c.header_ == nil { + c.header_ = make(http.Header) + } + return c.header_ +} + +func (c *InstancesSetTagsCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) + body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.tags) + if err != nil { + return nil, err + } + c.urlParams_.Set("alt", alt) + c.urlParams_.Set("prettyPrint", "false") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instances/{instance}/setTags") + urls += "?" + c.urlParams_.Encode() + req, err := http.NewRequest("POST", urls, body) + if err != nil { + return nil, err + } + req.Header = reqHeaders + googleapi.Expand(req.URL, map[string]string{ + "project": c.project, + "zone": c.zone, + "instance": c.instance, + }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.instances.setTags", "request", internallog.HTTPRequest(req, body.Bytes())) + return gensupport.SendRequest(c.ctx_, c.s.client, req) +} + +// Do executes the "compute.instances.setTags" call. +// 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 *InstancesSetTagsCall) 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, gensupport.WrapError(&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, gensupport.WrapError(err) + } + ret := &Operation{ + ServerResponse: googleapi.ServerResponse{ + Header: res.Header, + HTTPStatusCode: res.StatusCode, + }, + } + target := &ret + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { + return nil, err + } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.instances.setTags", "response", internallog.HTTPResponse(res, b)) + return ret, nil +} + +type InstancesSimulateMaintenanceEventCall struct { + s *Service + project string + zone string + instance string + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header +} + +// SimulateMaintenanceEvent: Simulates a host maintenance event on a VM. For +// more information, see +// Simulate a host maintenance event. +// +// - instance: Name of the instance scoping this request. +// - project: Project ID for this request. +// - zone: The name of the zone for this request. +func (r *InstancesService) SimulateMaintenanceEvent(project string, zone string, instance string) *InstancesSimulateMaintenanceEventCall { + c := &InstancesSimulateMaintenanceEventCall{s: r.s, urlParams_: make(gensupport.URLParams)} + c.project = project + c.zone = zone + c.instance = instance + 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 *InstancesSimulateMaintenanceEventCall) RequestId(requestId string) *InstancesSimulateMaintenanceEventCall { + c.urlParams_.Set("requestId", requestId) + return c +} + +// WithExtendedNotifications sets the optional parameter +// "withExtendedNotifications": Determines whether the customers receive +// notifications before migration. +// Only applicable to SF vms. +func (c *InstancesSimulateMaintenanceEventCall) WithExtendedNotifications(withExtendedNotifications bool) *InstancesSimulateMaintenanceEventCall { + c.urlParams_.Set("withExtendedNotifications", fmt.Sprint(withExtendedNotifications)) + return c +} + +// Fields allows partial responses to be retrieved. See +// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more +// details. +func (c *InstancesSimulateMaintenanceEventCall) Fields(s ...googleapi.Field) *InstancesSimulateMaintenanceEventCall { + c.urlParams_.Set("fields", googleapi.CombineFields(s)) + return c +} + +// Context sets the context to be used in this call's Do method. +func (c *InstancesSimulateMaintenanceEventCall) Context(ctx context.Context) *InstancesSimulateMaintenanceEventCall { + c.ctx_ = ctx + return c +} + +// Header returns a http.Header that can be modified by the caller to add +// headers to the request. +func (c *InstancesSimulateMaintenanceEventCall) Header() http.Header { + if c.header_ == nil { + c.header_ = make(http.Header) + } + return c.header_ +} + +func (c *InstancesSimulateMaintenanceEventCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) + c.urlParams_.Set("alt", alt) + c.urlParams_.Set("prettyPrint", "false") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instances/{instance}/simulateMaintenanceEvent") + urls += "?" + c.urlParams_.Encode() + req, err := http.NewRequest("POST", urls, nil) + if err != nil { + return nil, err + } + req.Header = reqHeaders + googleapi.Expand(req.URL, map[string]string{ + "project": c.project, + "zone": c.zone, + "instance": c.instance, + }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.instances.simulateMaintenanceEvent", "request", internallog.HTTPRequest(req, nil)) + return gensupport.SendRequest(c.ctx_, c.s.client, req) +} + +// Do executes the "compute.instances.simulateMaintenanceEvent" call. +// 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 *InstancesSimulateMaintenanceEventCall) 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, gensupport.WrapError(&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, gensupport.WrapError(err) + } + ret := &Operation{ + ServerResponse: googleapi.ServerResponse{ + Header: res.Header, + HTTPStatusCode: res.StatusCode, + }, + } + target := &ret + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { + return nil, err + } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.instances.simulateMaintenanceEvent", "response", internallog.HTTPResponse(res, b)) + return ret, nil +} + +type InstancesStartCall struct { + s *Service + project string + zone string + instance string + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header +} + +// Start: Starts an instance that was stopped using theinstances().stop +// method. For more information, seeRestart an +// instance. +// +// - instance: Name of the instance resource to start. +// - project: Project ID for this request. +// - zone: The name of the zone for this request. +func (r *InstancesService) Start(project string, zone string, instance string) *InstancesStartCall { + c := &InstancesStartCall{s: r.s, urlParams_: make(gensupport.URLParams)} + c.project = project + c.zone = zone + c.instance = instance + 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 *InstancesStartCall) RequestId(requestId string) *InstancesStartCall { + 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 +// details. +func (c *InstancesStartCall) Fields(s ...googleapi.Field) *InstancesStartCall { + c.urlParams_.Set("fields", googleapi.CombineFields(s)) + return c +} + +// Context sets the context to be used in this call's Do method. +func (c *InstancesStartCall) Context(ctx context.Context) *InstancesStartCall { + c.ctx_ = ctx + return c +} + +// Header returns a http.Header that can be modified by the caller to add +// headers to the request. +func (c *InstancesStartCall) Header() http.Header { + if c.header_ == nil { + c.header_ = make(http.Header) + } + return c.header_ +} + +func (c *InstancesStartCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) + c.urlParams_.Set("alt", alt) + c.urlParams_.Set("prettyPrint", "false") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instances/{instance}/start") + urls += "?" + c.urlParams_.Encode() + req, err := http.NewRequest("POST", urls, nil) + if err != nil { + return nil, err + } + req.Header = reqHeaders + googleapi.Expand(req.URL, map[string]string{ + "project": c.project, + "zone": c.zone, + "instance": c.instance, + }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.instances.start", "request", internallog.HTTPRequest(req, nil)) + return gensupport.SendRequest(c.ctx_, c.s.client, req) +} + +// Do executes the "compute.instances.start" call. +// 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 *InstancesStartCall) 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, gensupport.WrapError(&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, gensupport.WrapError(err) + } + ret := &Operation{ + ServerResponse: googleapi.ServerResponse{ + Header: res.Header, + HTTPStatusCode: res.StatusCode, + }, + } + target := &ret + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { + return nil, err + } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.instances.start", "response", internallog.HTTPResponse(res, b)) + return ret, nil +} + +type InstancesStartWithEncryptionKeyCall struct { + s *Service + project string + zone string + instance string + instancesstartwithencryptionkeyrequest *InstancesStartWithEncryptionKeyRequest + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header +} + +// StartWithEncryptionKey: Starts an instance that was stopped using +// theinstances().stop +// method. For more information, seeRestart an +// instance. +// +// - instance: Name of the instance resource to start. +// - project: Project ID for this request. +// - zone: The name of the zone for this request. +func (r *InstancesService) StartWithEncryptionKey(project string, zone string, instance string, instancesstartwithencryptionkeyrequest *InstancesStartWithEncryptionKeyRequest) *InstancesStartWithEncryptionKeyCall { + c := &InstancesStartWithEncryptionKeyCall{s: r.s, urlParams_: make(gensupport.URLParams)} + c.project = project + c.zone = zone + c.instance = instance + c.instancesstartwithencryptionkeyrequest = instancesstartwithencryptionkeyrequest + 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 *InstancesStartWithEncryptionKeyCall) RequestId(requestId string) *InstancesStartWithEncryptionKeyCall { + 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 +// details. +func (c *InstancesStartWithEncryptionKeyCall) Fields(s ...googleapi.Field) *InstancesStartWithEncryptionKeyCall { + c.urlParams_.Set("fields", googleapi.CombineFields(s)) + return c +} + +// Context sets the context to be used in this call's Do method. +func (c *InstancesStartWithEncryptionKeyCall) Context(ctx context.Context) *InstancesStartWithEncryptionKeyCall { + c.ctx_ = ctx + return c +} + +// Header returns a http.Header that can be modified by the caller to add +// headers to the request. +func (c *InstancesStartWithEncryptionKeyCall) Header() http.Header { + if c.header_ == nil { + c.header_ = make(http.Header) + } + return c.header_ +} + +func (c *InstancesStartWithEncryptionKeyCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) + body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.instancesstartwithencryptionkeyrequest) + if err != nil { + return nil, err + } + c.urlParams_.Set("alt", alt) + c.urlParams_.Set("prettyPrint", "false") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instances/{instance}/startWithEncryptionKey") + urls += "?" + c.urlParams_.Encode() + req, err := http.NewRequest("POST", urls, body) + if err != nil { + return nil, err + } + req.Header = reqHeaders + googleapi.Expand(req.URL, map[string]string{ + "project": c.project, + "zone": c.zone, + "instance": c.instance, + }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.instances.startWithEncryptionKey", "request", internallog.HTTPRequest(req, body.Bytes())) + return gensupport.SendRequest(c.ctx_, c.s.client, req) +} + +// Do executes the "compute.instances.startWithEncryptionKey" call. +// 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 *InstancesStartWithEncryptionKeyCall) 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, gensupport.WrapError(&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, gensupport.WrapError(err) + } + ret := &Operation{ + ServerResponse: googleapi.ServerResponse{ + Header: res.Header, + HTTPStatusCode: res.StatusCode, + }, + } + target := &ret + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { + return nil, err + } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.instances.startWithEncryptionKey", "response", internallog.HTTPResponse(res, b)) + return ret, nil +} + +type InstancesStopCall struct { + s *Service + project string + zone string + instance string + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header +} + +// Stop: Stops a running instance, shutting it down cleanly, and allows +// you to restart the instance at a later time. Stopped instances do not +// incur +// VM usage charges while they are stopped. However, resources that the VM +// is +// using, such as persistent disks and static IP addresses, will continue to +// be charged until they are deleted. For more information, seeStopping +// an instance. +// +// - instance: Name of the instance resource to stop. +// - project: Project ID for this request. +// - zone: The name of the zone for this request. +func (r *InstancesService) Stop(project string, zone string, instance string) *InstancesStopCall { + c := &InstancesStopCall{s: r.s, urlParams_: make(gensupport.URLParams)} + c.project = project + c.zone = zone + c.instance = instance + return c +} + +// DiscardLocalSsd sets the optional parameter "discardLocalSsd": This property +// is required if the instance has any attached Local SSD disks. +// If false, Local SSD data will be preserved when the instance is +// suspended. +// If true, the contents of any attached Local SSD disks will be discarded. +func (c *InstancesStopCall) DiscardLocalSsd(discardLocalSsd bool) *InstancesStopCall { + c.urlParams_.Set("discardLocalSsd", fmt.Sprint(discardLocalSsd)) + 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 *InstancesStopCall) RequestId(requestId string) *InstancesStopCall { + 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 +// details. +func (c *InstancesStopCall) Fields(s ...googleapi.Field) *InstancesStopCall { + c.urlParams_.Set("fields", googleapi.CombineFields(s)) + return c +} + +// Context sets the context to be used in this call's Do method. +func (c *InstancesStopCall) Context(ctx context.Context) *InstancesStopCall { + c.ctx_ = ctx + return c +} + +// Header returns a http.Header that can be modified by the caller to add +// headers to the request. +func (c *InstancesStopCall) Header() http.Header { + if c.header_ == nil { + c.header_ = make(http.Header) + } + return c.header_ +} + +func (c *InstancesStopCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) + c.urlParams_.Set("alt", alt) + c.urlParams_.Set("prettyPrint", "false") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instances/{instance}/stop") + urls += "?" + c.urlParams_.Encode() + req, err := http.NewRequest("POST", urls, nil) + if err != nil { + return nil, err + } + req.Header = reqHeaders + googleapi.Expand(req.URL, map[string]string{ + "project": c.project, + "zone": c.zone, + "instance": c.instance, + }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.instances.stop", "request", internallog.HTTPRequest(req, nil)) + return gensupport.SendRequest(c.ctx_, c.s.client, req) +} + +// Do executes the "compute.instances.stop" call. +// 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 *InstancesStopCall) 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, gensupport.WrapError(&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, gensupport.WrapError(err) + } + ret := &Operation{ + ServerResponse: googleapi.ServerResponse{ + Header: res.Header, + HTTPStatusCode: res.StatusCode, + }, + } + target := &ret + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { + return nil, err + } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.instances.stop", "response", internallog.HTTPResponse(res, b)) + return ret, nil +} + +type InstancesSuspendCall struct { + s *Service + project string + zone string + instance string + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header +} + +// Suspend: This method suspends a running instance, saving its state to +// persistent +// storage, and allows you to resume the instance at a later time. +// Suspended +// instances have no compute costs (cores or RAM), and incur only +// storage +// charges for the saved VM memory and localSSD data. Any charged resources +// the virtual machine was using, such as persistent disks and static +// IP +// addresses, will continue to be charged while the instance is suspended. +// For more information, see +// Suspending and resuming an instance. +// +// - instance: Name of the instance resource to suspend. +// - project: Project ID for this request. +// - zone: The name of the zone for this request. +func (r *InstancesService) Suspend(project string, zone string, instance string) *InstancesSuspendCall { + c := &InstancesSuspendCall{s: r.s, urlParams_: make(gensupport.URLParams)} + c.project = project + c.zone = zone + c.instance = instance + return c +} + +// DiscardLocalSsd sets the optional parameter "discardLocalSsd": This property +// is required if the instance has any attached Local SSD disks. +// If false, Local SSD data will be preserved when the instance is +// suspended. +// If true, the contents of any attached Local SSD disks will be discarded. +func (c *InstancesSuspendCall) DiscardLocalSsd(discardLocalSsd bool) *InstancesSuspendCall { + c.urlParams_.Set("discardLocalSsd", fmt.Sprint(discardLocalSsd)) + 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 *InstancesSuspendCall) RequestId(requestId string) *InstancesSuspendCall { + 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 +// details. +func (c *InstancesSuspendCall) Fields(s ...googleapi.Field) *InstancesSuspendCall { + c.urlParams_.Set("fields", googleapi.CombineFields(s)) + return c +} + +// Context sets the context to be used in this call's Do method. +func (c *InstancesSuspendCall) Context(ctx context.Context) *InstancesSuspendCall { + c.ctx_ = ctx + return c +} + +// Header returns a http.Header that can be modified by the caller to add +// headers to the request. +func (c *InstancesSuspendCall) Header() http.Header { + if c.header_ == nil { + c.header_ = make(http.Header) + } + return c.header_ +} + +func (c *InstancesSuspendCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) + c.urlParams_.Set("alt", alt) + c.urlParams_.Set("prettyPrint", "false") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instances/{instance}/suspend") + urls += "?" + c.urlParams_.Encode() + req, err := http.NewRequest("POST", urls, nil) + if err != nil { + return nil, err + } + req.Header = reqHeaders + googleapi.Expand(req.URL, map[string]string{ + "project": c.project, + "zone": c.zone, + "instance": c.instance, + }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.instances.suspend", "request", internallog.HTTPRequest(req, nil)) + return gensupport.SendRequest(c.ctx_, c.s.client, req) +} + +// Do executes the "compute.instances.suspend" call. +// 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 *InstancesSuspendCall) 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, gensupport.WrapError(&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, gensupport.WrapError(err) + } + ret := &Operation{ + ServerResponse: googleapi.ServerResponse{ + Header: res.Header, + HTTPStatusCode: res.StatusCode, + }, + } + target := &ret + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { + return nil, err + } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.instances.suspend", "response", internallog.HTTPResponse(res, b)) + return ret, nil +} + +type InstancesTestIamPermissionsCall struct { + s *Service + project string + zone string + resource string + testpermissionsrequest *TestPermissionsRequest + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header +} + +// TestIamPermissions: Returns permissions that a caller has on the specified +// resource. +// +// - project: Project ID for this request. +// - resource: Name or id of the resource for this request. +// - zone: The name of the zone for this request. +func (r *InstancesService) TestIamPermissions(project string, zone string, resource string, testpermissionsrequest *TestPermissionsRequest) *InstancesTestIamPermissionsCall { + c := &InstancesTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)} + c.project = project + c.zone = zone + c.resource = resource + c.testpermissionsrequest = testpermissionsrequest + return c +} + +// Fields allows partial responses to be retrieved. See +// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more +// details. +func (c *InstancesTestIamPermissionsCall) Fields(s ...googleapi.Field) *InstancesTestIamPermissionsCall { + c.urlParams_.Set("fields", googleapi.CombineFields(s)) + return c +} + +// Context sets the context to be used in this call's Do method. +func (c *InstancesTestIamPermissionsCall) Context(ctx context.Context) *InstancesTestIamPermissionsCall { + c.ctx_ = ctx + return c +} + +// Header returns a http.Header that can be modified by the caller to add +// headers to the request. +func (c *InstancesTestIamPermissionsCall) Header() http.Header { + if c.header_ == nil { + c.header_ = make(http.Header) + } + return c.header_ +} + +func (c *InstancesTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) + body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.testpermissionsrequest) + if err != nil { + return nil, err + } + c.urlParams_.Set("alt", alt) + c.urlParams_.Set("prettyPrint", "false") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instances/{resource}/testIamPermissions") + urls += "?" + c.urlParams_.Encode() + req, err := http.NewRequest("POST", urls, body) + if err != nil { + return nil, err + } + req.Header = reqHeaders + googleapi.Expand(req.URL, map[string]string{ + "project": c.project, + "zone": c.zone, + "resource": c.resource, + }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.instances.testIamPermissions", "request", internallog.HTTPRequest(req, body.Bytes())) + return gensupport.SendRequest(c.ctx_, c.s.client, req) +} + +// Do executes the "compute.instances.testIamPermissions" call. +// Any non-2xx status code is an error. Response headers are in either +// *TestPermissionsResponse.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 *InstancesTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, 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, gensupport.WrapError(&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, gensupport.WrapError(err) + } + ret := &TestPermissionsResponse{ + ServerResponse: googleapi.ServerResponse{ + Header: res.Header, + HTTPStatusCode: res.StatusCode, + }, + } + target := &ret + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { + return nil, err + } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.instances.testIamPermissions", "response", internallog.HTTPResponse(res, b)) + return ret, nil +} + +type InstancesUpdateCall struct { + s *Service + project string + zone string + instance string + instance2 *Instance + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header +} + +// Update: Updates an instance only if the necessary resources are available. +// This +// method can update only a specific set of instance properties. See +// Updating a running instance for a list of updatable instance +// properties. +// +// - instance: Name of the instance resource to update. +// - project: Project ID for this request. +// - zone: The name of the zone for this request. +func (r *InstancesService) Update(project string, zone string, instance string, instance2 *Instance) *InstancesUpdateCall { + c := &InstancesUpdateCall{s: r.s, urlParams_: make(gensupport.URLParams)} + c.project = project + c.zone = zone + c.instance = instance + c.instance2 = instance2 + return c +} + +// DiscardLocalSsd sets the optional parameter "discardLocalSsd": Whether to +// discard local SSDs from the instance during restart +// default value is false. +func (c *InstancesUpdateCall) DiscardLocalSsd(discardLocalSsd bool) *InstancesUpdateCall { + c.urlParams_.Set("discardLocalSsd", fmt.Sprint(discardLocalSsd)) + return c +} + +// MinimalAction sets the optional parameter "minimalAction": Specifies the +// action to take when updating an instance even if the +// updated properties do not require it. If not specified, then +// Compute Engine acts based on the minimum action that the updated +// properties require. +// +// Possible values: +// +// "INVALID" +// "NO_EFFECT" - No changes can be made to the instance. +// "REFRESH" - The instance will not restart. +// "RESTART" - The instance will restart, potentially on a different host. +func (c *InstancesUpdateCall) MinimalAction(minimalAction string) *InstancesUpdateCall { + c.urlParams_.Set("minimalAction", minimalAction) + return c +} + +// MostDisruptiveAllowedAction sets the optional parameter +// "mostDisruptiveAllowedAction": Specifies the most disruptive action that can +// be taken on the instance +// as part of the update. Compute Engine returns an error if the +// instance properties require a more disruptive action as part of the +// instance update. Valid options from lowest to highest are +// NO_EFFECT, REFRESH, and RESTART. +// +// Possible values: +// +// "INVALID" +// "NO_EFFECT" - No changes can be made to the instance. +// "REFRESH" - The instance will not restart. +// "RESTART" - The instance will restart, potentially on a different host. +func (c *InstancesUpdateCall) MostDisruptiveAllowedAction(mostDisruptiveAllowedAction string) *InstancesUpdateCall { + c.urlParams_.Set("mostDisruptiveAllowedAction", mostDisruptiveAllowedAction) + 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 *InstancesUpdateCall) RequestId(requestId string) *InstancesUpdateCall { + 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 +// details. +func (c *InstancesUpdateCall) Fields(s ...googleapi.Field) *InstancesUpdateCall { + c.urlParams_.Set("fields", googleapi.CombineFields(s)) + return c +} + +// Context sets the context to be used in this call's Do method. +func (c *InstancesUpdateCall) Context(ctx context.Context) *InstancesUpdateCall { + c.ctx_ = ctx + return c +} + +// Header returns a http.Header that can be modified by the caller to add +// headers to the request. +func (c *InstancesUpdateCall) Header() http.Header { + if c.header_ == nil { + c.header_ = make(http.Header) + } + return c.header_ +} + +func (c *InstancesUpdateCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) + body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.instance2) + if err != nil { + return nil, err + } + c.urlParams_.Set("alt", alt) + c.urlParams_.Set("prettyPrint", "false") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instances/{instance}") + urls += "?" + c.urlParams_.Encode() + req, err := http.NewRequest("PUT", urls, body) + if err != nil { + return nil, err + } + req.Header = reqHeaders + googleapi.Expand(req.URL, map[string]string{ + "project": c.project, + "zone": c.zone, + "instance": c.instance, + }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.instances.update", "request", internallog.HTTPRequest(req, body.Bytes())) + return gensupport.SendRequest(c.ctx_, c.s.client, req) +} + +// Do executes the "compute.instances.update" call. +// 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 *InstancesUpdateCall) 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, gensupport.WrapError(&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, gensupport.WrapError(err) + } + ret := &Operation{ + ServerResponse: googleapi.ServerResponse{ + Header: res.Header, + HTTPStatusCode: res.StatusCode, + }, + } + target := &ret + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { + return nil, err + } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.instances.update", "response", internallog.HTTPResponse(res, b)) + return ret, nil +} + +type InstancesUpdateAccessConfigCall struct { + s *Service + project string + zone string + instance string + accessconfig *AccessConfig + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header +} + +// UpdateAccessConfig: Updates the specified access config from an instance's +// network interface +// with the data included in the request. This method supportsPATCH +// semantics and uses theJSON merge +// patch format and processing rules. +// +// - instance: The instance name for this request. +// - networkInterface: The name of the network interface where the access +// config is attached. +// - project: Project ID for this request. +// - zone: The name of the zone for this request. +func (r *InstancesService) UpdateAccessConfig(project string, zone string, instance string, networkInterface string, accessconfig *AccessConfig) *InstancesUpdateAccessConfigCall { + c := &InstancesUpdateAccessConfigCall{s: r.s, urlParams_: make(gensupport.URLParams)} + c.project = project + c.zone = zone + c.instance = instance + c.urlParams_.Set("networkInterface", networkInterface) + c.accessconfig = accessconfig + 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 *InstancesUpdateAccessConfigCall) RequestId(requestId string) *InstancesUpdateAccessConfigCall { + 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 +// details. +func (c *InstancesUpdateAccessConfigCall) Fields(s ...googleapi.Field) *InstancesUpdateAccessConfigCall { + c.urlParams_.Set("fields", googleapi.CombineFields(s)) + return c +} + +// Context sets the context to be used in this call's Do method. +func (c *InstancesUpdateAccessConfigCall) Context(ctx context.Context) *InstancesUpdateAccessConfigCall { + c.ctx_ = ctx + return c +} + +// Header returns a http.Header that can be modified by the caller to add +// headers to the request. +func (c *InstancesUpdateAccessConfigCall) Header() http.Header { + if c.header_ == nil { + c.header_ = make(http.Header) + } + return c.header_ +} + +func (c *InstancesUpdateAccessConfigCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) + body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.accessconfig) + if err != nil { + return nil, err + } + c.urlParams_.Set("alt", alt) + c.urlParams_.Set("prettyPrint", "false") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instances/{instance}/updateAccessConfig") + urls += "?" + c.urlParams_.Encode() + req, err := http.NewRequest("POST", urls, body) + if err != nil { + return nil, err + } + req.Header = reqHeaders + googleapi.Expand(req.URL, map[string]string{ + "project": c.project, + "zone": c.zone, + "instance": c.instance, + }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.instances.updateAccessConfig", "request", internallog.HTTPRequest(req, body.Bytes())) + return gensupport.SendRequest(c.ctx_, c.s.client, req) +} + +// Do executes the "compute.instances.updateAccessConfig" call. +// 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 *InstancesUpdateAccessConfigCall) 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, gensupport.WrapError(&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, gensupport.WrapError(err) + } + ret := &Operation{ + ServerResponse: googleapi.ServerResponse{ + Header: res.Header, + HTTPStatusCode: res.StatusCode, + }, + } + target := &ret + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { + return nil, err + } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.instances.updateAccessConfig", "response", internallog.HTTPResponse(res, b)) + return ret, nil +} + +type InstancesUpdateDisplayDeviceCall struct { + s *Service + project string + zone string + instance string + displaydevice *DisplayDevice + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header +} + +// UpdateDisplayDevice: Updates the Display config for a VM instance. You +// can +// only use this method on a stopped VM instance. This method +// supportsPATCH +// semantics and uses theJSON merge +// patch format and processing rules. +// +// - instance: Name of the instance scoping this request. +// - project: Project ID for this request. +// - zone: The name of the zone for this request. +func (r *InstancesService) UpdateDisplayDevice(project string, zone string, instance string, displaydevice *DisplayDevice) *InstancesUpdateDisplayDeviceCall { + c := &InstancesUpdateDisplayDeviceCall{s: r.s, urlParams_: make(gensupport.URLParams)} + c.project = project + c.zone = zone + c.instance = instance + c.displaydevice = displaydevice + 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 *InstancesUpdateDisplayDeviceCall) RequestId(requestId string) *InstancesUpdateDisplayDeviceCall { + 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 +// details. +func (c *InstancesUpdateDisplayDeviceCall) Fields(s ...googleapi.Field) *InstancesUpdateDisplayDeviceCall { + c.urlParams_.Set("fields", googleapi.CombineFields(s)) + return c +} + +// Context sets the context to be used in this call's Do method. +func (c *InstancesUpdateDisplayDeviceCall) Context(ctx context.Context) *InstancesUpdateDisplayDeviceCall { + c.ctx_ = ctx + return c +} + +// Header returns a http.Header that can be modified by the caller to add +// headers to the request. +func (c *InstancesUpdateDisplayDeviceCall) Header() http.Header { + if c.header_ == nil { + c.header_ = make(http.Header) + } + return c.header_ +} + +func (c *InstancesUpdateDisplayDeviceCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) + body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.displaydevice) + if err != nil { + return nil, err + } + c.urlParams_.Set("alt", alt) + c.urlParams_.Set("prettyPrint", "false") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instances/{instance}/updateDisplayDevice") + urls += "?" + c.urlParams_.Encode() + req, err := http.NewRequest("PATCH", urls, body) + if err != nil { + return nil, err + } + req.Header = reqHeaders + googleapi.Expand(req.URL, map[string]string{ + "project": c.project, + "zone": c.zone, + "instance": c.instance, + }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.instances.updateDisplayDevice", "request", internallog.HTTPRequest(req, body.Bytes())) + return gensupport.SendRequest(c.ctx_, c.s.client, req) +} + +// Do executes the "compute.instances.updateDisplayDevice" call. +// 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 *InstancesUpdateDisplayDeviceCall) 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, gensupport.WrapError(&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, gensupport.WrapError(err) + } + ret := &Operation{ + ServerResponse: googleapi.ServerResponse{ + Header: res.Header, + HTTPStatusCode: res.StatusCode, + }, + } + target := &ret + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { + return nil, err + } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.instances.updateDisplayDevice", "response", internallog.HTTPResponse(res, b)) + return ret, nil +} + +type InstancesUpdateNetworkInterfaceCall struct { + s *Service + project string + zone string + instance string + networkinterface *NetworkInterface + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header +} + +// UpdateNetworkInterface: Updates an instance's network interface. This method +// can only update an +// interface's alias IP range and attached network. See Modifying +// alias IP ranges for an existing instance for instructions on +// changing alias IP ranges. See Migrating +// a VM between networks for instructions on migrating an interface. +// This method follows PATCH semantics. +// +// - instance: The instance name for this request. +// - networkInterface: The name of the network interface to update. +// - project: Project ID for this request. +// - zone: The name of the zone for this request. +func (r *InstancesService) UpdateNetworkInterface(project string, zone string, instance string, networkInterface string, networkinterface *NetworkInterface) *InstancesUpdateNetworkInterfaceCall { + c := &InstancesUpdateNetworkInterfaceCall{s: r.s, urlParams_: make(gensupport.URLParams)} + c.project = project + c.zone = zone + c.instance = instance + c.urlParams_.Set("networkInterface", networkInterface) + c.networkinterface = networkinterface + 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 *InstancesUpdateNetworkInterfaceCall) RequestId(requestId string) *InstancesUpdateNetworkInterfaceCall { + 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 +// details. +func (c *InstancesUpdateNetworkInterfaceCall) Fields(s ...googleapi.Field) *InstancesUpdateNetworkInterfaceCall { + c.urlParams_.Set("fields", googleapi.CombineFields(s)) + return c +} + +// Context sets the context to be used in this call's Do method. +func (c *InstancesUpdateNetworkInterfaceCall) Context(ctx context.Context) *InstancesUpdateNetworkInterfaceCall { + c.ctx_ = ctx + return c +} + +// Header returns a http.Header that can be modified by the caller to add +// headers to the request. +func (c *InstancesUpdateNetworkInterfaceCall) Header() http.Header { + if c.header_ == nil { + c.header_ = make(http.Header) + } + return c.header_ +} + +func (c *InstancesUpdateNetworkInterfaceCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) + body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.networkinterface) + if err != nil { + return nil, err + } + c.urlParams_.Set("alt", alt) + c.urlParams_.Set("prettyPrint", "false") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instances/{instance}/updateNetworkInterface") + urls += "?" + c.urlParams_.Encode() + req, err := http.NewRequest("PATCH", urls, body) + if err != nil { + return nil, err + } + req.Header = reqHeaders + googleapi.Expand(req.URL, map[string]string{ + "project": c.project, + "zone": c.zone, + "instance": c.instance, + }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.instances.updateNetworkInterface", "request", internallog.HTTPRequest(req, body.Bytes())) + return gensupport.SendRequest(c.ctx_, c.s.client, req) +} + +// Do executes the "compute.instances.updateNetworkInterface" call. +// 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 *InstancesUpdateNetworkInterfaceCall) 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, gensupport.WrapError(&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, gensupport.WrapError(err) + } + ret := &Operation{ + ServerResponse: googleapi.ServerResponse{ + Header: res.Header, + HTTPStatusCode: res.StatusCode, + }, + } + target := &ret + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { + return nil, err + } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.instances.updateNetworkInterface", "response", internallog.HTTPResponse(res, b)) + return ret, nil +} + +type InstancesUpdateShieldedInstanceConfigCall struct { + s *Service + project string + zone string + instance string + shieldedinstanceconfig *ShieldedInstanceConfig + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header +} + +// UpdateShieldedInstanceConfig: Updates the Shielded Instance config for an +// instance. You can +// only use this method on a stopped instance. This method +// supportsPATCH +// semantics and uses theJSON merge +// patch format and processing rules. +// +// - instance: Name or id of the instance scoping this request. +// - project: Project ID for this request. +// - zone: The name of the zone for this request. +func (r *InstancesService) UpdateShieldedInstanceConfig(project string, zone string, instance string, shieldedinstanceconfig *ShieldedInstanceConfig) *InstancesUpdateShieldedInstanceConfigCall { + c := &InstancesUpdateShieldedInstanceConfigCall{s: r.s, urlParams_: make(gensupport.URLParams)} + c.project = project + c.zone = zone + c.instance = instance + c.shieldedinstanceconfig = shieldedinstanceconfig + 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 *InstancesUpdateShieldedInstanceConfigCall) RequestId(requestId string) *InstancesUpdateShieldedInstanceConfigCall { + 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 +// details. +func (c *InstancesUpdateShieldedInstanceConfigCall) Fields(s ...googleapi.Field) *InstancesUpdateShieldedInstanceConfigCall { + c.urlParams_.Set("fields", googleapi.CombineFields(s)) + return c +} + +// Context sets the context to be used in this call's Do method. +func (c *InstancesUpdateShieldedInstanceConfigCall) Context(ctx context.Context) *InstancesUpdateShieldedInstanceConfigCall { + c.ctx_ = ctx + return c +} + +// Header returns a http.Header that can be modified by the caller to add +// headers to the request. +func (c *InstancesUpdateShieldedInstanceConfigCall) Header() http.Header { + if c.header_ == nil { + c.header_ = make(http.Header) + } + return c.header_ +} + +func (c *InstancesUpdateShieldedInstanceConfigCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) + body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.shieldedinstanceconfig) + if err != nil { + return nil, err + } + c.urlParams_.Set("alt", alt) + c.urlParams_.Set("prettyPrint", "false") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instances/{instance}/updateShieldedInstanceConfig") + urls += "?" + c.urlParams_.Encode() + req, err := http.NewRequest("PATCH", urls, body) + if err != nil { + return nil, err + } + req.Header = reqHeaders + googleapi.Expand(req.URL, map[string]string{ + "project": c.project, + "zone": c.zone, + "instance": c.instance, + }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.instances.updateShieldedInstanceConfig", "request", internallog.HTTPRequest(req, body.Bytes())) + return gensupport.SendRequest(c.ctx_, c.s.client, req) +} + +// Do executes the "compute.instances.updateShieldedInstanceConfig" call. +// 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 *InstancesUpdateShieldedInstanceConfigCall) 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, gensupport.WrapError(&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, gensupport.WrapError(err) + } + ret := &Operation{ + ServerResponse: googleapi.ServerResponse{ + Header: res.Header, + HTTPStatusCode: res.StatusCode, + }, + } + target := &ret + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { + return nil, err + } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.instances.updateShieldedInstanceConfig", "response", internallog.HTTPResponse(res, b)) + return ret, nil +} + +type InstantSnapshotGroupsDeleteCall struct { + s *Service + project string + zone string + instantSnapshotGroup string + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header +} + +// Delete: deletes a Zonal InstantSnapshotGroup resource +// +// - instantSnapshotGroup: Name of the InstantSnapshot resource to delete. +// - project: Project ID for this request. +// - zone: The name of the zone for this request. +func (r *InstantSnapshotGroupsService) Delete(project string, zone string, instantSnapshotGroup string) *InstantSnapshotGroupsDeleteCall { + c := &InstantSnapshotGroupsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)} + c.project = project + c.zone = zone + c.instantSnapshotGroup = instantSnapshotGroup + 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 *InstantSnapshotGroupsDeleteCall) RequestId(requestId string) *InstantSnapshotGroupsDeleteCall { + 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 +// details. +func (c *InstantSnapshotGroupsDeleteCall) Fields(s ...googleapi.Field) *InstantSnapshotGroupsDeleteCall { + c.urlParams_.Set("fields", googleapi.CombineFields(s)) + return c +} + +// Context sets the context to be used in this call's Do method. +func (c *InstantSnapshotGroupsDeleteCall) Context(ctx context.Context) *InstantSnapshotGroupsDeleteCall { + c.ctx_ = ctx + return c +} + +// Header returns a http.Header that can be modified by the caller to add +// headers to the request. +func (c *InstantSnapshotGroupsDeleteCall) Header() http.Header { + if c.header_ == nil { + c.header_ = make(http.Header) + } + return c.header_ +} + +func (c *InstantSnapshotGroupsDeleteCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) + c.urlParams_.Set("alt", alt) + c.urlParams_.Set("prettyPrint", "false") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instantSnapshotGroups/{instantSnapshotGroup}") + urls += "?" + c.urlParams_.Encode() + req, err := http.NewRequest("DELETE", urls, nil) + if err != nil { + return nil, err + } + req.Header = reqHeaders + googleapi.Expand(req.URL, map[string]string{ + "project": c.project, + "zone": c.zone, + "instantSnapshotGroup": c.instantSnapshotGroup, + }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.instantSnapshotGroups.delete", "request", internallog.HTTPRequest(req, nil)) + return gensupport.SendRequest(c.ctx_, c.s.client, req) +} + +// Do executes the "compute.instantSnapshotGroups.delete" call. +// 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 *InstantSnapshotGroupsDeleteCall) 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, gensupport.WrapError(&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, gensupport.WrapError(err) + } + ret := &Operation{ + ServerResponse: googleapi.ServerResponse{ + Header: res.Header, + HTTPStatusCode: res.StatusCode, + }, + } + target := &ret + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { + return nil, err + } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.instantSnapshotGroups.delete", "response", internallog.HTTPResponse(res, b)) + return ret, nil +} + +type InstantSnapshotGroupsGetCall struct { + s *Service + project string + zone string + instantSnapshotGroup string + urlParams_ gensupport.URLParams + ifNoneMatch_ string + ctx_ context.Context + header_ http.Header +} + +// Get: returns the specified InstantSnapshotGroup resource in the specified +// zone. +// +// - instantSnapshotGroup: Name of the InstantSnapshotGroup resource to return. +// - project: Project ID for this request. +// - zone: The name of the zone for this request. +func (r *InstantSnapshotGroupsService) Get(project string, zone string, instantSnapshotGroup string) *InstantSnapshotGroupsGetCall { + c := &InstantSnapshotGroupsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)} + c.project = project + c.zone = zone + c.instantSnapshotGroup = instantSnapshotGroup + return c +} + +// Fields allows partial responses to be retrieved. See +// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more +// details. +func (c *InstantSnapshotGroupsGetCall) Fields(s ...googleapi.Field) *InstantSnapshotGroupsGetCall { + c.urlParams_.Set("fields", googleapi.CombineFields(s)) + return c +} + +// IfNoneMatch sets an 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. +func (c *InstantSnapshotGroupsGetCall) IfNoneMatch(entityTag string) *InstantSnapshotGroupsGetCall { + c.ifNoneMatch_ = entityTag + return c +} + +// Context sets the context to be used in this call's Do method. +func (c *InstantSnapshotGroupsGetCall) Context(ctx context.Context) *InstantSnapshotGroupsGetCall { + c.ctx_ = ctx + return c +} + +// Header returns a http.Header that can be modified by the caller to add +// headers to the request. +func (c *InstantSnapshotGroupsGetCall) Header() http.Header { + if c.header_ == nil { + c.header_ = make(http.Header) + } + return c.header_ +} + +func (c *InstantSnapshotGroupsGetCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) + if c.ifNoneMatch_ != "" { + reqHeaders.Set("If-None-Match", c.ifNoneMatch_) + } + c.urlParams_.Set("alt", alt) + c.urlParams_.Set("prettyPrint", "false") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instantSnapshotGroups/{instantSnapshotGroup}") + urls += "?" + c.urlParams_.Encode() + req, err := http.NewRequest("GET", urls, nil) + if err != nil { + return nil, err + } + req.Header = reqHeaders + googleapi.Expand(req.URL, map[string]string{ + "project": c.project, + "zone": c.zone, + "instantSnapshotGroup": c.instantSnapshotGroup, + }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.instantSnapshotGroups.get", "request", internallog.HTTPRequest(req, nil)) + return gensupport.SendRequest(c.ctx_, c.s.client, req) +} + +// Do executes the "compute.instantSnapshotGroups.get" call. +// Any non-2xx status code is an error. Response headers are in either +// *InstantSnapshotGroup.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 *InstantSnapshotGroupsGetCall) Do(opts ...googleapi.CallOption) (*InstantSnapshotGroup, 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, gensupport.WrapError(&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, gensupport.WrapError(err) + } + ret := &InstantSnapshotGroup{ + ServerResponse: googleapi.ServerResponse{ + Header: res.Header, + HTTPStatusCode: res.StatusCode, + }, + } + target := &ret + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { + return nil, err + } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.instantSnapshotGroups.get", "response", internallog.HTTPResponse(res, b)) + return ret, nil +} + +type InstantSnapshotGroupsGetIamPolicyCall struct { + s *Service + project string + zone string + resource string + urlParams_ gensupport.URLParams + ifNoneMatch_ string + ctx_ context.Context + header_ http.Header +} + +// GetIamPolicy: Gets the access control policy for a resource. May be empty if +// no such +// policy or resource exists. +// +// - project: Project ID for this request. +// - resource: Name or id of the resource for this request. +// - zone: The name of the zone for this request. +func (r *InstantSnapshotGroupsService) GetIamPolicy(project string, zone string, resource string) *InstantSnapshotGroupsGetIamPolicyCall { + c := &InstantSnapshotGroupsGetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)} + c.project = project + c.zone = zone + c.resource = resource + return c +} + +// OptionsRequestedPolicyVersion sets the optional parameter +// "optionsRequestedPolicyVersion": Requested IAM Policy version. +func (c *InstantSnapshotGroupsGetIamPolicyCall) OptionsRequestedPolicyVersion(optionsRequestedPolicyVersion int64) *InstantSnapshotGroupsGetIamPolicyCall { + c.urlParams_.Set("optionsRequestedPolicyVersion", fmt.Sprint(optionsRequestedPolicyVersion)) + return c +} + +// Fields allows partial responses to be retrieved. See +// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more +// details. +func (c *InstantSnapshotGroupsGetIamPolicyCall) Fields(s ...googleapi.Field) *InstantSnapshotGroupsGetIamPolicyCall { + c.urlParams_.Set("fields", googleapi.CombineFields(s)) + return c +} + +// IfNoneMatch sets an 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. +func (c *InstantSnapshotGroupsGetIamPolicyCall) IfNoneMatch(entityTag string) *InstantSnapshotGroupsGetIamPolicyCall { + c.ifNoneMatch_ = entityTag + return c +} + +// Context sets the context to be used in this call's Do method. +func (c *InstantSnapshotGroupsGetIamPolicyCall) Context(ctx context.Context) *InstantSnapshotGroupsGetIamPolicyCall { + c.ctx_ = ctx + return c +} + +// Header returns a http.Header that can be modified by the caller to add +// headers to the request. +func (c *InstantSnapshotGroupsGetIamPolicyCall) Header() http.Header { + if c.header_ == nil { + c.header_ = make(http.Header) + } + return c.header_ +} + +func (c *InstantSnapshotGroupsGetIamPolicyCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) + if c.ifNoneMatch_ != "" { + reqHeaders.Set("If-None-Match", c.ifNoneMatch_) + } + c.urlParams_.Set("alt", alt) + c.urlParams_.Set("prettyPrint", "false") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instantSnapshotGroups/{resource}/getIamPolicy") + urls += "?" + c.urlParams_.Encode() + req, err := http.NewRequest("GET", urls, nil) + if err != nil { + return nil, err + } + req.Header = reqHeaders + googleapi.Expand(req.URL, map[string]string{ + "project": c.project, + "zone": c.zone, + "resource": c.resource, + }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.instantSnapshotGroups.getIamPolicy", "request", internallog.HTTPRequest(req, nil)) + return gensupport.SendRequest(c.ctx_, c.s.client, req) +} + +// Do executes the "compute.instantSnapshotGroups.getIamPolicy" call. +// Any non-2xx status code is an error. Response headers are in either +// *Policy.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 *InstantSnapshotGroupsGetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, 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, gensupport.WrapError(&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, gensupport.WrapError(err) + } + ret := &Policy{ + ServerResponse: googleapi.ServerResponse{ + Header: res.Header, + HTTPStatusCode: res.StatusCode, + }, + } + target := &ret + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { + return nil, err + } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.instantSnapshotGroups.getIamPolicy", "response", internallog.HTTPResponse(res, b)) + return ret, nil +} + +type InstantSnapshotGroupsInsertCall struct { + s *Service + project string + zone string + instantsnapshotgroup *InstantSnapshotGroup + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header +} + +// Insert: inserts a Zonal InstantSnapshotGroup resource +// +// - project: Project ID for this request. +// - zone: Name of the zone for this request. +func (r *InstantSnapshotGroupsService) Insert(project string, zone string, instantsnapshotgroup *InstantSnapshotGroup) *InstantSnapshotGroupsInsertCall { + c := &InstantSnapshotGroupsInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)} + c.project = project + c.zone = zone + c.instantsnapshotgroup = instantsnapshotgroup + 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 *InstantSnapshotGroupsInsertCall) RequestId(requestId string) *InstantSnapshotGroupsInsertCall { + c.urlParams_.Set("requestId", requestId) + return c +} + +// SourceConsistencyGroup sets the optional parameter "sourceConsistencyGroup": +// begin_interface: MixerMutationRequestBuilder +func (c *InstantSnapshotGroupsInsertCall) SourceConsistencyGroup(sourceConsistencyGroup string) *InstantSnapshotGroupsInsertCall { + c.urlParams_.Set("sourceConsistencyGroup", sourceConsistencyGroup) + return c +} + +// Fields allows partial responses to be retrieved. See +// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more +// details. +func (c *InstantSnapshotGroupsInsertCall) Fields(s ...googleapi.Field) *InstantSnapshotGroupsInsertCall { + c.urlParams_.Set("fields", googleapi.CombineFields(s)) + return c +} + +// Context sets the context to be used in this call's Do method. +func (c *InstantSnapshotGroupsInsertCall) Context(ctx context.Context) *InstantSnapshotGroupsInsertCall { + c.ctx_ = ctx + return c +} + +// Header returns a http.Header that can be modified by the caller to add +// headers to the request. +func (c *InstantSnapshotGroupsInsertCall) Header() http.Header { + if c.header_ == nil { + c.header_ = make(http.Header) + } + return c.header_ +} + +func (c *InstantSnapshotGroupsInsertCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) + body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.instantsnapshotgroup) + if err != nil { + return nil, err + } + c.urlParams_.Set("alt", alt) + c.urlParams_.Set("prettyPrint", "false") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instantSnapshotGroups") + urls += "?" + c.urlParams_.Encode() + req, err := http.NewRequest("POST", urls, body) + if err != nil { + return nil, err + } + req.Header = reqHeaders + googleapi.Expand(req.URL, map[string]string{ + "project": c.project, + "zone": c.zone, + }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.instantSnapshotGroups.insert", "request", internallog.HTTPRequest(req, body.Bytes())) + return gensupport.SendRequest(c.ctx_, c.s.client, req) +} + +// Do executes the "compute.instantSnapshotGroups.insert" call. +// 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 *InstantSnapshotGroupsInsertCall) 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, gensupport.WrapError(&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, gensupport.WrapError(err) + } + ret := &Operation{ + ServerResponse: googleapi.ServerResponse{ + Header: res.Header, + HTTPStatusCode: res.StatusCode, + }, + } + target := &ret + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { + return nil, err + } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.instantSnapshotGroups.insert", "response", internallog.HTTPResponse(res, b)) + return ret, nil +} + +type InstantSnapshotGroupsListCall struct { + s *Service + project string + zone string + urlParams_ gensupport.URLParams + ifNoneMatch_ string + ctx_ context.Context + header_ http.Header +} + +// List: retrieves the list of InstantSnapshotGroup resources contained +// within +// the specified zone. +// +// - project: Project ID for this request. +// - zone: The name of the zone for this request. +func (r *InstantSnapshotGroupsService) List(project string, zone string) *InstantSnapshotGroupsListCall { + c := &InstantSnapshotGroupsListCall{s: r.s, urlParams_: make(gensupport.URLParams)} + c.project = project + c.zone = zone + return c +} + +// Filter sets the optional parameter "filter": A filter expression that +// filters resources listed in the response. Most +// Compute resources support two types of filter expressions: +// expressions that support regular expressions and expressions that follow +// API improvement proposal AIP-160. +// These two types of filter expressions cannot be mixed in one request. +// +// If you want to use AIP-160, your expression must specify the field name, +// an +// operator, and the value that you want to use for filtering. The value +// must be a string, a number, or a boolean. The 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`. +// +// The `:*` comparison can be used to test whether a key has been defined. +// For example, to find all objects with `owner` label +// use: +// ``` +// labels.owner:* +// ``` +// +// 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 onresource 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) +// ``` +// +// If you want to use a regular expression, use the `eq` (equal) or `ne` +// (not equal) operator against a single un-parenthesized expression with +// or +// without quotes or against multiple parenthesized expressions. +// Examples: +// +// `fieldname eq unquoted literal` +// `fieldname eq 'single quoted literal'` +// `fieldname eq "double quoted literal" +// `(fieldname1 eq literal) (fieldname2 ne "literal")` +// +// The literal value is interpreted as a regular expression using GoogleRE2 +// library syntax. +// The literal value must match the entire field. +// +// For example, to filter for instances that do not end with name +// "instance", +// you would use `name ne .*instance`. +// +// You cannot combine constraints on multiple fields using regular +// expressions. +func (c *InstantSnapshotGroupsListCall) Filter(filter string) *InstantSnapshotGroupsListCall { + 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 *InstantSnapshotGroupsListCall) MaxResults(maxResults int64) *InstantSnapshotGroupsListCall { + 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 *InstantSnapshotGroupsListCall) OrderBy(orderBy string) *InstantSnapshotGroupsListCall { + 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 *InstantSnapshotGroupsListCall) PageToken(pageToken string) *InstantSnapshotGroupsListCall { + c.urlParams_.Set("pageToken", pageToken) + return c +} + +// ReturnPartialSuccess sets the optional parameter "returnPartialSuccess": +// Opt-in for partial success behavior which provides partial results in +// case +// of failure. The default value is false. +// +// For example, when partial success behavior is enabled, aggregatedList for +// a +// single zone scope either returns all resources in the zone or no +// resources, +// with an error code. +func (c *InstantSnapshotGroupsListCall) ReturnPartialSuccess(returnPartialSuccess bool) *InstantSnapshotGroupsListCall { + c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess)) + return c +} + +// Fields allows partial responses to be retrieved. See +// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more +// details. +func (c *InstantSnapshotGroupsListCall) Fields(s ...googleapi.Field) *InstantSnapshotGroupsListCall { + c.urlParams_.Set("fields", googleapi.CombineFields(s)) + return c +} + +// IfNoneMatch sets an 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. +func (c *InstantSnapshotGroupsListCall) IfNoneMatch(entityTag string) *InstantSnapshotGroupsListCall { + c.ifNoneMatch_ = entityTag + return c +} + +// Context sets the context to be used in this call's Do method. +func (c *InstantSnapshotGroupsListCall) Context(ctx context.Context) *InstantSnapshotGroupsListCall { + c.ctx_ = ctx + return c +} + +// Header returns a http.Header that can be modified by the caller to add +// headers to the request. +func (c *InstantSnapshotGroupsListCall) Header() http.Header { + if c.header_ == nil { + c.header_ = make(http.Header) + } + return c.header_ +} + +func (c *InstantSnapshotGroupsListCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) + if c.ifNoneMatch_ != "" { + reqHeaders.Set("If-None-Match", c.ifNoneMatch_) + } + c.urlParams_.Set("alt", alt) + c.urlParams_.Set("prettyPrint", "false") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instantSnapshotGroups") + urls += "?" + c.urlParams_.Encode() + req, err := http.NewRequest("GET", urls, nil) + if err != nil { + return nil, err + } + req.Header = reqHeaders + googleapi.Expand(req.URL, map[string]string{ + "project": c.project, + "zone": c.zone, + }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.instantSnapshotGroups.list", "request", internallog.HTTPRequest(req, nil)) + return gensupport.SendRequest(c.ctx_, c.s.client, req) +} + +// Do executes the "compute.instantSnapshotGroups.list" call. +// Any non-2xx status code is an error. Response headers are in either +// *ListInstantSnapshotGroups.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 *InstantSnapshotGroupsListCall) Do(opts ...googleapi.CallOption) (*ListInstantSnapshotGroups, 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, gensupport.WrapError(&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, gensupport.WrapError(err) + } + ret := &ListInstantSnapshotGroups{ + ServerResponse: googleapi.ServerResponse{ + Header: res.Header, + HTTPStatusCode: res.StatusCode, + }, + } + target := &ret + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { + return nil, err + } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.instantSnapshotGroups.list", "response", internallog.HTTPResponse(res, b)) + return ret, nil +} + +// 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 *InstantSnapshotGroupsListCall) Pages(ctx context.Context, f func(*ListInstantSnapshotGroups) error) error { + c.ctx_ = ctx + defer c.PageToken(c.urlParams_.Get("pageToken")) + 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) + } +} + +type InstantSnapshotGroupsSetIamPolicyCall struct { + s *Service + project string + zone string + resource string + zonesetpolicyrequest *ZoneSetPolicyRequest + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header +} + +// SetIamPolicy: Sets the access control policy on the specified +// resource. +// Replaces any existing policy. +// +// - project: Project ID for this request. +// - resource: Name or id of the resource for this request. +// - zone: The name of the zone for this request. +func (r *InstantSnapshotGroupsService) SetIamPolicy(project string, zone string, resource string, zonesetpolicyrequest *ZoneSetPolicyRequest) *InstantSnapshotGroupsSetIamPolicyCall { + c := &InstantSnapshotGroupsSetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)} + c.project = project + c.zone = zone + c.resource = resource + c.zonesetpolicyrequest = zonesetpolicyrequest + return c +} + +// Fields allows partial responses to be retrieved. See +// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more +// details. +func (c *InstantSnapshotGroupsSetIamPolicyCall) Fields(s ...googleapi.Field) *InstantSnapshotGroupsSetIamPolicyCall { + c.urlParams_.Set("fields", googleapi.CombineFields(s)) + return c +} + +// Context sets the context to be used in this call's Do method. +func (c *InstantSnapshotGroupsSetIamPolicyCall) Context(ctx context.Context) *InstantSnapshotGroupsSetIamPolicyCall { + c.ctx_ = ctx + return c +} + +// Header returns a http.Header that can be modified by the caller to add +// headers to the request. +func (c *InstantSnapshotGroupsSetIamPolicyCall) Header() http.Header { + if c.header_ == nil { + c.header_ = make(http.Header) + } + return c.header_ +} + +func (c *InstantSnapshotGroupsSetIamPolicyCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) + body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.zonesetpolicyrequest) + if err != nil { + return nil, err + } + c.urlParams_.Set("alt", alt) + c.urlParams_.Set("prettyPrint", "false") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instantSnapshotGroups/{resource}/setIamPolicy") + urls += "?" + c.urlParams_.Encode() + req, err := http.NewRequest("POST", urls, body) + if err != nil { + return nil, err + } + req.Header = reqHeaders + googleapi.Expand(req.URL, map[string]string{ + "project": c.project, + "zone": c.zone, + "resource": c.resource, + }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.instantSnapshotGroups.setIamPolicy", "request", internallog.HTTPRequest(req, body.Bytes())) + return gensupport.SendRequest(c.ctx_, c.s.client, req) +} + +// Do executes the "compute.instantSnapshotGroups.setIamPolicy" call. +// Any non-2xx status code is an error. Response headers are in either +// *Policy.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 *InstantSnapshotGroupsSetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, 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, gensupport.WrapError(&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, gensupport.WrapError(err) + } + ret := &Policy{ + ServerResponse: googleapi.ServerResponse{ + Header: res.Header, + HTTPStatusCode: res.StatusCode, + }, + } + target := &ret + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { + return nil, err + } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.instantSnapshotGroups.setIamPolicy", "response", internallog.HTTPResponse(res, b)) + return ret, nil +} + +type InstantSnapshotGroupsTestIamPermissionsCall struct { + s *Service + project string + zone string + resource string + testpermissionsrequest *TestPermissionsRequest + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header +} + +// TestIamPermissions: Returns permissions that a caller has on the specified +// resource. +// +// - project: Project ID for this request. +// - resource: Name or id of the resource for this request. +// - zone: The name of the zone for this request. +func (r *InstantSnapshotGroupsService) TestIamPermissions(project string, zone string, resource string, testpermissionsrequest *TestPermissionsRequest) *InstantSnapshotGroupsTestIamPermissionsCall { + c := &InstantSnapshotGroupsTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)} + c.project = project + c.zone = zone + c.resource = resource + c.testpermissionsrequest = testpermissionsrequest + return c +} + +// Fields allows partial responses to be retrieved. See +// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more +// details. +func (c *InstantSnapshotGroupsTestIamPermissionsCall) Fields(s ...googleapi.Field) *InstantSnapshotGroupsTestIamPermissionsCall { + c.urlParams_.Set("fields", googleapi.CombineFields(s)) + return c +} + +// Context sets the context to be used in this call's Do method. +func (c *InstantSnapshotGroupsTestIamPermissionsCall) Context(ctx context.Context) *InstantSnapshotGroupsTestIamPermissionsCall { + c.ctx_ = ctx + return c +} + +// Header returns a http.Header that can be modified by the caller to add +// headers to the request. +func (c *InstantSnapshotGroupsTestIamPermissionsCall) Header() http.Header { + if c.header_ == nil { + c.header_ = make(http.Header) + } + return c.header_ +} + +func (c *InstantSnapshotGroupsTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) + body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.testpermissionsrequest) + if err != nil { + return nil, err + } + c.urlParams_.Set("alt", alt) + c.urlParams_.Set("prettyPrint", "false") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instantSnapshotGroups/{resource}/testIamPermissions") + urls += "?" + c.urlParams_.Encode() + req, err := http.NewRequest("POST", urls, body) + if err != nil { + return nil, err + } + req.Header = reqHeaders + googleapi.Expand(req.URL, map[string]string{ + "project": c.project, + "zone": c.zone, + "resource": c.resource, + }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.instantSnapshotGroups.testIamPermissions", "request", internallog.HTTPRequest(req, body.Bytes())) + return gensupport.SendRequest(c.ctx_, c.s.client, req) +} + +// Do executes the "compute.instantSnapshotGroups.testIamPermissions" call. +// Any non-2xx status code is an error. Response headers are in either +// *TestPermissionsResponse.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 *InstantSnapshotGroupsTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, 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, gensupport.WrapError(&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, gensupport.WrapError(err) + } + ret := &TestPermissionsResponse{ + ServerResponse: googleapi.ServerResponse{ + Header: res.Header, + HTTPStatusCode: res.StatusCode, + }, + } + target := &ret + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { + return nil, err + } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.instantSnapshotGroups.testIamPermissions", "response", internallog.HTTPResponse(res, b)) + return ret, nil +} + +type InstantSnapshotsAggregatedListCall struct { + s *Service + project string + urlParams_ gensupport.URLParams + ifNoneMatch_ string + ctx_ context.Context + header_ http.Header +} + +// AggregatedList: Retrieves an aggregated list of instantSnapshots. +// +// To prevent failure, Google recommends that you set +// the +// `returnPartialSuccess` parameter to `true`. +// +// - project: Project ID for this request. +func (r *InstantSnapshotsService) AggregatedList(project string) *InstantSnapshotsAggregatedListCall { + c := &InstantSnapshotsAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)} + c.project = project + return c +} + +// Filter sets the optional parameter "filter": A filter expression that +// filters resources listed in the response. Most +// Compute resources support two types of filter expressions: +// expressions that support regular expressions and expressions that follow +// API improvement proposal AIP-160. +// These two types of filter expressions cannot be mixed in one request. +// +// If you want to use AIP-160, your expression must specify the field name, +// an +// operator, and the value that you want to use for filtering. The value +// must be a string, a number, or a boolean. The 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`. +// +// The `:*` comparison can be used to test whether a key has been defined. +// For example, to find all objects with `owner` label +// use: +// ``` +// labels.owner:* +// ``` +// +// 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 onresource 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) +// ``` +// +// If you want to use a regular expression, use the `eq` (equal) or `ne` +// (not equal) operator against a single un-parenthesized expression with +// or +// without quotes or against multiple parenthesized expressions. +// Examples: +// +// `fieldname eq unquoted literal` +// `fieldname eq 'single quoted literal'` +// `fieldname eq "double quoted literal" +// `(fieldname1 eq literal) (fieldname2 ne "literal")` +// +// The literal value is interpreted as a regular expression using GoogleRE2 +// library syntax. +// The literal value must match the entire field. +// +// For example, to filter for instances that do not end with name +// "instance", +// you would use `name ne .*instance`. +// +// You cannot combine constraints on multiple fields using regular +// expressions. +func (c *InstantSnapshotsAggregatedListCall) Filter(filter string) *InstantSnapshotsAggregatedListCall { + c.urlParams_.Set("filter", filter) + return c +} + +// IncludeAllScopes sets the optional parameter "includeAllScopes": Indicates +// whether every visible scope for each scope type (zone, region, +// global) should be included in the response. For new resource types +// added +// after this field, the flag has no effect as new resource types will +// always +// include every visible scope for each scope type in response. For +// resource +// types which predate this field, if this flag is omitted or false, +// only +// scopes of the scope types where the resource type is expected to be +// found +// will be included. +func (c *InstantSnapshotsAggregatedListCall) IncludeAllScopes(includeAllScopes bool) *InstantSnapshotsAggregatedListCall { + c.urlParams_.Set("includeAllScopes", fmt.Sprint(includeAllScopes)) + 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 *InstantSnapshotsAggregatedListCall) MaxResults(maxResults int64) *InstantSnapshotsAggregatedListCall { + 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 *InstantSnapshotsAggregatedListCall) OrderBy(orderBy string) *InstantSnapshotsAggregatedListCall { + 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 *InstantSnapshotsAggregatedListCall) PageToken(pageToken string) *InstantSnapshotsAggregatedListCall { + c.urlParams_.Set("pageToken", pageToken) + return c +} + +// ReturnPartialSuccess sets the optional parameter "returnPartialSuccess": +// Opt-in for partial success behavior which provides partial results in +// case +// of failure. The default value is false. +// +// For example, when partial success behavior is enabled, aggregatedList for +// a +// single zone scope either returns all resources in the zone or no +// resources, +// with an error code. +func (c *InstantSnapshotsAggregatedListCall) ReturnPartialSuccess(returnPartialSuccess bool) *InstantSnapshotsAggregatedListCall { + c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess)) + return c +} + +// ServiceProjectNumber sets the optional parameter "serviceProjectNumber": The +// Shared VPC service project id or service project number for which +// aggregated list request is invoked for subnetworks list-usable api. +func (c *InstantSnapshotsAggregatedListCall) ServiceProjectNumber(serviceProjectNumber int64) *InstantSnapshotsAggregatedListCall { + c.urlParams_.Set("serviceProjectNumber", fmt.Sprint(serviceProjectNumber)) + return c +} + +// Fields allows partial responses to be retrieved. See +// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more +// details. +func (c *InstantSnapshotsAggregatedListCall) Fields(s ...googleapi.Field) *InstantSnapshotsAggregatedListCall { + c.urlParams_.Set("fields", googleapi.CombineFields(s)) + return c +} + +// IfNoneMatch sets an 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. +func (c *InstantSnapshotsAggregatedListCall) IfNoneMatch(entityTag string) *InstantSnapshotsAggregatedListCall { + c.ifNoneMatch_ = entityTag + return c +} + +// Context sets the context to be used in this call's Do method. +func (c *InstantSnapshotsAggregatedListCall) Context(ctx context.Context) *InstantSnapshotsAggregatedListCall { + c.ctx_ = ctx + return c +} + +// Header returns a http.Header that can be modified by the caller to add +// headers to the request. +func (c *InstantSnapshotsAggregatedListCall) Header() http.Header { + if c.header_ == nil { + c.header_ = make(http.Header) + } + return c.header_ +} + +func (c *InstantSnapshotsAggregatedListCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) + if c.ifNoneMatch_ != "" { + reqHeaders.Set("If-None-Match", c.ifNoneMatch_) + } + c.urlParams_.Set("alt", alt) + c.urlParams_.Set("prettyPrint", "false") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/aggregated/instantSnapshots") + urls += "?" + c.urlParams_.Encode() + req, err := http.NewRequest("GET", urls, nil) + if err != nil { + return nil, err + } + req.Header = reqHeaders + googleapi.Expand(req.URL, map[string]string{ + "project": c.project, + }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.instantSnapshots.aggregatedList", "request", internallog.HTTPRequest(req, nil)) + return gensupport.SendRequest(c.ctx_, c.s.client, req) +} + +// Do executes the "compute.instantSnapshots.aggregatedList" call. +// Any non-2xx status code is an error. Response headers are in either +// *InstantSnapshotAggregatedList.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 *InstantSnapshotsAggregatedListCall) Do(opts ...googleapi.CallOption) (*InstantSnapshotAggregatedList, 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, gensupport.WrapError(&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, gensupport.WrapError(err) + } + ret := &InstantSnapshotAggregatedList{ + ServerResponse: googleapi.ServerResponse{ + Header: res.Header, + HTTPStatusCode: res.StatusCode, + }, + } + target := &ret + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { + return nil, err + } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.instantSnapshots.aggregatedList", "response", internallog.HTTPResponse(res, b)) + return ret, nil +} + +// 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 *InstantSnapshotsAggregatedListCall) Pages(ctx context.Context, f func(*InstantSnapshotAggregatedList) error) error { + c.ctx_ = ctx + defer c.PageToken(c.urlParams_.Get("pageToken")) + 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) + } +} + +type InstantSnapshotsDeleteCall struct { + s *Service + project string + zone string + instantSnapshot string + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header +} + +// Delete: Deletes the specified InstantSnapshot resource. Keep in mind that +// deleting +// a single instantSnapshot might not necessarily delete all the data on +// that +// instantSnapshot. If any data on the instantSnapshot that is marked +// for +// deletion is needed for subsequent instantSnapshots, the data will be +// moved +// to the next corresponding instantSnapshot. +// +// For more information, seeDeleting +// instantSnapshots. +// +// - instantSnapshot: Name of the InstantSnapshot resource to delete. +// - project: Project ID for this request. +// - zone: The name of the zone for this request. +func (r *InstantSnapshotsService) Delete(project string, zone string, instantSnapshot string) *InstantSnapshotsDeleteCall { + c := &InstantSnapshotsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)} + c.project = project + c.zone = zone + c.instantSnapshot = instantSnapshot + 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 *InstantSnapshotsDeleteCall) RequestId(requestId string) *InstantSnapshotsDeleteCall { + 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 +// details. +func (c *InstantSnapshotsDeleteCall) Fields(s ...googleapi.Field) *InstantSnapshotsDeleteCall { + c.urlParams_.Set("fields", googleapi.CombineFields(s)) + return c +} + +// Context sets the context to be used in this call's Do method. +func (c *InstantSnapshotsDeleteCall) Context(ctx context.Context) *InstantSnapshotsDeleteCall { + c.ctx_ = ctx + return c +} + +// Header returns a http.Header that can be modified by the caller to add +// headers to the request. +func (c *InstantSnapshotsDeleteCall) Header() http.Header { + if c.header_ == nil { + c.header_ = make(http.Header) + } + return c.header_ +} + +func (c *InstantSnapshotsDeleteCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) + c.urlParams_.Set("alt", alt) + c.urlParams_.Set("prettyPrint", "false") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instantSnapshots/{instantSnapshot}") + urls += "?" + c.urlParams_.Encode() + req, err := http.NewRequest("DELETE", urls, nil) + if err != nil { + return nil, err + } + req.Header = reqHeaders + googleapi.Expand(req.URL, map[string]string{ + "project": c.project, + "zone": c.zone, + "instantSnapshot": c.instantSnapshot, + }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.instantSnapshots.delete", "request", internallog.HTTPRequest(req, nil)) + return gensupport.SendRequest(c.ctx_, c.s.client, req) +} + +// Do executes the "compute.instantSnapshots.delete" call. +// 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 *InstantSnapshotsDeleteCall) 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, gensupport.WrapError(&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, gensupport.WrapError(err) + } + ret := &Operation{ + ServerResponse: googleapi.ServerResponse{ + Header: res.Header, + HTTPStatusCode: res.StatusCode, + }, + } + target := &ret + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { + return nil, err + } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.instantSnapshots.delete", "response", internallog.HTTPResponse(res, b)) + return ret, nil +} + +type InstantSnapshotsGetCall struct { + s *Service + project string + zone string + instantSnapshot string + urlParams_ gensupport.URLParams + ifNoneMatch_ string + ctx_ context.Context + header_ http.Header +} + +// Get: Returns the specified InstantSnapshot resource in the specified zone. +// +// - instantSnapshot: Name of the InstantSnapshot resource to return. +// - project: Project ID for this request. +// - zone: The name of the zone for this request. +func (r *InstantSnapshotsService) Get(project string, zone string, instantSnapshot string) *InstantSnapshotsGetCall { + c := &InstantSnapshotsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)} + c.project = project + c.zone = zone + c.instantSnapshot = instantSnapshot + return c +} + +// Fields allows partial responses to be retrieved. See +// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more +// details. +func (c *InstantSnapshotsGetCall) Fields(s ...googleapi.Field) *InstantSnapshotsGetCall { + c.urlParams_.Set("fields", googleapi.CombineFields(s)) + return c +} + +// IfNoneMatch sets an 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. +func (c *InstantSnapshotsGetCall) IfNoneMatch(entityTag string) *InstantSnapshotsGetCall { + c.ifNoneMatch_ = entityTag + return c +} + +// Context sets the context to be used in this call's Do method. +func (c *InstantSnapshotsGetCall) Context(ctx context.Context) *InstantSnapshotsGetCall { + c.ctx_ = ctx + return c +} + +// Header returns a http.Header that can be modified by the caller to add +// headers to the request. +func (c *InstantSnapshotsGetCall) Header() http.Header { + if c.header_ == nil { + c.header_ = make(http.Header) + } + return c.header_ +} + +func (c *InstantSnapshotsGetCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) + if c.ifNoneMatch_ != "" { + reqHeaders.Set("If-None-Match", c.ifNoneMatch_) + } + c.urlParams_.Set("alt", alt) + c.urlParams_.Set("prettyPrint", "false") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instantSnapshots/{instantSnapshot}") + urls += "?" + c.urlParams_.Encode() + req, err := http.NewRequest("GET", urls, nil) + if err != nil { + return nil, err + } + req.Header = reqHeaders + googleapi.Expand(req.URL, map[string]string{ + "project": c.project, + "zone": c.zone, + "instantSnapshot": c.instantSnapshot, + }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.instantSnapshots.get", "request", internallog.HTTPRequest(req, nil)) + return gensupport.SendRequest(c.ctx_, c.s.client, req) +} + +// Do executes the "compute.instantSnapshots.get" call. +// Any non-2xx status code is an error. Response headers are in either +// *InstantSnapshot.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 *InstantSnapshotsGetCall) Do(opts ...googleapi.CallOption) (*InstantSnapshot, 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, gensupport.WrapError(&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, gensupport.WrapError(err) + } + ret := &InstantSnapshot{ + ServerResponse: googleapi.ServerResponse{ + Header: res.Header, + HTTPStatusCode: res.StatusCode, + }, + } + target := &ret + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { + return nil, err + } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.instantSnapshots.get", "response", internallog.HTTPResponse(res, b)) + return ret, nil +} + +type InstantSnapshotsGetIamPolicyCall struct { + s *Service + project string + zone string + resource string + urlParams_ gensupport.URLParams + ifNoneMatch_ string + ctx_ context.Context + header_ http.Header +} + +// GetIamPolicy: Gets the access control policy for a resource. May be empty if +// no such +// policy or resource exists. +// +// - project: Project ID for this request. +// - resource: Name or id of the resource for this request. +// - zone: The name of the zone for this request. +func (r *InstantSnapshotsService) GetIamPolicy(project string, zone string, resource string) *InstantSnapshotsGetIamPolicyCall { + c := &InstantSnapshotsGetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)} + c.project = project + c.zone = zone + c.resource = resource + return c +} + +// OptionsRequestedPolicyVersion sets the optional parameter +// "optionsRequestedPolicyVersion": Requested IAM Policy version. +func (c *InstantSnapshotsGetIamPolicyCall) OptionsRequestedPolicyVersion(optionsRequestedPolicyVersion int64) *InstantSnapshotsGetIamPolicyCall { + c.urlParams_.Set("optionsRequestedPolicyVersion", fmt.Sprint(optionsRequestedPolicyVersion)) + return c +} + +// Fields allows partial responses to be retrieved. See +// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more +// details. +func (c *InstantSnapshotsGetIamPolicyCall) Fields(s ...googleapi.Field) *InstantSnapshotsGetIamPolicyCall { + c.urlParams_.Set("fields", googleapi.CombineFields(s)) + return c +} + +// IfNoneMatch sets an 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. +func (c *InstantSnapshotsGetIamPolicyCall) IfNoneMatch(entityTag string) *InstantSnapshotsGetIamPolicyCall { + c.ifNoneMatch_ = entityTag + return c +} + +// Context sets the context to be used in this call's Do method. +func (c *InstantSnapshotsGetIamPolicyCall) Context(ctx context.Context) *InstantSnapshotsGetIamPolicyCall { + c.ctx_ = ctx + return c +} + +// Header returns a http.Header that can be modified by the caller to add +// headers to the request. +func (c *InstantSnapshotsGetIamPolicyCall) Header() http.Header { + if c.header_ == nil { + c.header_ = make(http.Header) + } + return c.header_ +} + +func (c *InstantSnapshotsGetIamPolicyCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) + if c.ifNoneMatch_ != "" { + reqHeaders.Set("If-None-Match", c.ifNoneMatch_) + } + c.urlParams_.Set("alt", alt) + c.urlParams_.Set("prettyPrint", "false") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instantSnapshots/{resource}/getIamPolicy") + urls += "?" + c.urlParams_.Encode() + req, err := http.NewRequest("GET", urls, nil) + if err != nil { + return nil, err + } + req.Header = reqHeaders + googleapi.Expand(req.URL, map[string]string{ + "project": c.project, + "zone": c.zone, + "resource": c.resource, + }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.instantSnapshots.getIamPolicy", "request", internallog.HTTPRequest(req, nil)) + return gensupport.SendRequest(c.ctx_, c.s.client, req) +} + +// Do executes the "compute.instantSnapshots.getIamPolicy" call. +// Any non-2xx status code is an error. Response headers are in either +// *Policy.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 *InstantSnapshotsGetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, 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, gensupport.WrapError(&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, gensupport.WrapError(err) + } + ret := &Policy{ + ServerResponse: googleapi.ServerResponse{ + Header: res.Header, + HTTPStatusCode: res.StatusCode, + }, + } + target := &ret + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { + return nil, err + } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.instantSnapshots.getIamPolicy", "response", internallog.HTTPResponse(res, b)) + return ret, nil +} + +type InstantSnapshotsInsertCall struct { + s *Service + project string + zone string + instantsnapshot *InstantSnapshot + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header +} + +// Insert: Creates an instant snapshot in the specified zone. +// +// - project: Project ID for this request. +// - zone: Name of the zone for this request. +func (r *InstantSnapshotsService) Insert(project string, zone string, instantsnapshot *InstantSnapshot) *InstantSnapshotsInsertCall { + c := &InstantSnapshotsInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)} + c.project = project + c.zone = zone + c.instantsnapshot = instantsnapshot + 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 *InstantSnapshotsInsertCall) RequestId(requestId string) *InstantSnapshotsInsertCall { + 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 +// details. +func (c *InstantSnapshotsInsertCall) Fields(s ...googleapi.Field) *InstantSnapshotsInsertCall { + c.urlParams_.Set("fields", googleapi.CombineFields(s)) + return c +} + +// Context sets the context to be used in this call's Do method. +func (c *InstantSnapshotsInsertCall) Context(ctx context.Context) *InstantSnapshotsInsertCall { + c.ctx_ = ctx + return c +} + +// Header returns a http.Header that can be modified by the caller to add +// headers to the request. +func (c *InstantSnapshotsInsertCall) Header() http.Header { + if c.header_ == nil { + c.header_ = make(http.Header) + } + return c.header_ +} + +func (c *InstantSnapshotsInsertCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) + body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.instantsnapshot) + if err != nil { + return nil, err + } + c.urlParams_.Set("alt", alt) + c.urlParams_.Set("prettyPrint", "false") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instantSnapshots") + urls += "?" + c.urlParams_.Encode() + req, err := http.NewRequest("POST", urls, body) + if err != nil { + return nil, err + } + req.Header = reqHeaders + googleapi.Expand(req.URL, map[string]string{ + "project": c.project, + "zone": c.zone, + }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.instantSnapshots.insert", "request", internallog.HTTPRequest(req, body.Bytes())) + return gensupport.SendRequest(c.ctx_, c.s.client, req) +} + +// Do executes the "compute.instantSnapshots.insert" call. +// 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 *InstantSnapshotsInsertCall) 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, gensupport.WrapError(&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, gensupport.WrapError(err) + } + ret := &Operation{ + ServerResponse: googleapi.ServerResponse{ + Header: res.Header, + HTTPStatusCode: res.StatusCode, + }, + } + target := &ret + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { + return nil, err + } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.instantSnapshots.insert", "response", internallog.HTTPResponse(res, b)) + return ret, nil +} + +type InstantSnapshotsListCall struct { + s *Service + project string + zone string + urlParams_ gensupport.URLParams + ifNoneMatch_ string + ctx_ context.Context + header_ http.Header +} + +// List: Retrieves the list of InstantSnapshot resources contained within +// the specified zone. +// +// - project: Project ID for this request. +// - zone: The name of the zone for this request. +func (r *InstantSnapshotsService) List(project string, zone string) *InstantSnapshotsListCall { + c := &InstantSnapshotsListCall{s: r.s, urlParams_: make(gensupport.URLParams)} + c.project = project + c.zone = zone + return c +} + +// Filter sets the optional parameter "filter": A filter expression that +// filters resources listed in the response. Most +// Compute resources support two types of filter expressions: +// expressions that support regular expressions and expressions that follow +// API improvement proposal AIP-160. +// These two types of filter expressions cannot be mixed in one request. +// +// If you want to use AIP-160, your expression must specify the field name, +// an +// operator, and the value that you want to use for filtering. The value +// must be a string, a number, or a boolean. The 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`. +// +// The `:*` comparison can be used to test whether a key has been defined. +// For example, to find all objects with `owner` label +// use: +// ``` +// labels.owner:* +// ``` +// +// 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 onresource 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) +// ``` +// +// If you want to use a regular expression, use the `eq` (equal) or `ne` +// (not equal) operator against a single un-parenthesized expression with +// or +// without quotes or against multiple parenthesized expressions. +// Examples: +// +// `fieldname eq unquoted literal` +// `fieldname eq 'single quoted literal'` +// `fieldname eq "double quoted literal" +// `(fieldname1 eq literal) (fieldname2 ne "literal")` +// +// The literal value is interpreted as a regular expression using GoogleRE2 +// library syntax. +// The literal value must match the entire field. +// +// For example, to filter for instances that do not end with name +// "instance", +// you would use `name ne .*instance`. +// +// You cannot combine constraints on multiple fields using regular +// expressions. +func (c *InstantSnapshotsListCall) Filter(filter string) *InstantSnapshotsListCall { + 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 *InstantSnapshotsListCall) MaxResults(maxResults int64) *InstantSnapshotsListCall { + 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 *InstantSnapshotsListCall) OrderBy(orderBy string) *InstantSnapshotsListCall { + 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 *InstantSnapshotsListCall) PageToken(pageToken string) *InstantSnapshotsListCall { + c.urlParams_.Set("pageToken", pageToken) + return c +} + +// ReturnPartialSuccess sets the optional parameter "returnPartialSuccess": +// Opt-in for partial success behavior which provides partial results in +// case +// of failure. The default value is false. +// +// For example, when partial success behavior is enabled, aggregatedList for +// a +// single zone scope either returns all resources in the zone or no +// resources, +// with an error code. +func (c *InstantSnapshotsListCall) ReturnPartialSuccess(returnPartialSuccess bool) *InstantSnapshotsListCall { + c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess)) + return c +} + +// Fields allows partial responses to be retrieved. See +// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more +// details. +func (c *InstantSnapshotsListCall) Fields(s ...googleapi.Field) *InstantSnapshotsListCall { + c.urlParams_.Set("fields", googleapi.CombineFields(s)) + return c +} + +// IfNoneMatch sets an 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. +func (c *InstantSnapshotsListCall) IfNoneMatch(entityTag string) *InstantSnapshotsListCall { + c.ifNoneMatch_ = entityTag + return c +} + +// Context sets the context to be used in this call's Do method. +func (c *InstantSnapshotsListCall) Context(ctx context.Context) *InstantSnapshotsListCall { + c.ctx_ = ctx + return c +} + +// Header returns a http.Header that can be modified by the caller to add +// headers to the request. +func (c *InstantSnapshotsListCall) Header() http.Header { + if c.header_ == nil { + c.header_ = make(http.Header) + } + return c.header_ +} + +func (c *InstantSnapshotsListCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) + if c.ifNoneMatch_ != "" { + reqHeaders.Set("If-None-Match", c.ifNoneMatch_) + } + c.urlParams_.Set("alt", alt) + c.urlParams_.Set("prettyPrint", "false") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instantSnapshots") + urls += "?" + c.urlParams_.Encode() + req, err := http.NewRequest("GET", urls, nil) + if err != nil { + return nil, err + } + req.Header = reqHeaders + googleapi.Expand(req.URL, map[string]string{ + "project": c.project, + "zone": c.zone, + }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.instantSnapshots.list", "request", internallog.HTTPRequest(req, nil)) + return gensupport.SendRequest(c.ctx_, c.s.client, req) +} + +// Do executes the "compute.instantSnapshots.list" call. +// Any non-2xx status code is an error. Response headers are in either +// *InstantSnapshotList.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 *InstantSnapshotsListCall) Do(opts ...googleapi.CallOption) (*InstantSnapshotList, 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, gensupport.WrapError(&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, gensupport.WrapError(err) + } + ret := &InstantSnapshotList{ + ServerResponse: googleapi.ServerResponse{ + Header: res.Header, + HTTPStatusCode: res.StatusCode, + }, + } + target := &ret + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { + return nil, err + } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.instantSnapshots.list", "response", internallog.HTTPResponse(res, b)) + return ret, nil +} + +// 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 *InstantSnapshotsListCall) Pages(ctx context.Context, f func(*InstantSnapshotList) error) error { + c.ctx_ = ctx + defer c.PageToken(c.urlParams_.Get("pageToken")) + 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) + } +} + +type InstantSnapshotsSetIamPolicyCall struct { + s *Service + project string + zone string + resource string + zonesetpolicyrequest *ZoneSetPolicyRequest + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header +} + +// SetIamPolicy: Sets the access control policy on the specified +// resource. +// Replaces any existing policy. +// +// - project: Project ID for this request. +// - resource: Name or id of the resource for this request. +// - zone: The name of the zone for this request. +func (r *InstantSnapshotsService) SetIamPolicy(project string, zone string, resource string, zonesetpolicyrequest *ZoneSetPolicyRequest) *InstantSnapshotsSetIamPolicyCall { + c := &InstantSnapshotsSetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)} + c.project = project + c.zone = zone + c.resource = resource + c.zonesetpolicyrequest = zonesetpolicyrequest + return c +} + +// Fields allows partial responses to be retrieved. See +// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more +// details. +func (c *InstantSnapshotsSetIamPolicyCall) Fields(s ...googleapi.Field) *InstantSnapshotsSetIamPolicyCall { + c.urlParams_.Set("fields", googleapi.CombineFields(s)) + return c +} + +// Context sets the context to be used in this call's Do method. +func (c *InstantSnapshotsSetIamPolicyCall) Context(ctx context.Context) *InstantSnapshotsSetIamPolicyCall { + c.ctx_ = ctx + return c +} + +// Header returns a http.Header that can be modified by the caller to add +// headers to the request. +func (c *InstantSnapshotsSetIamPolicyCall) Header() http.Header { + if c.header_ == nil { + c.header_ = make(http.Header) + } + return c.header_ +} + +func (c *InstantSnapshotsSetIamPolicyCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) + body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.zonesetpolicyrequest) + if err != nil { + return nil, err + } + c.urlParams_.Set("alt", alt) + c.urlParams_.Set("prettyPrint", "false") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instantSnapshots/{resource}/setIamPolicy") + urls += "?" + c.urlParams_.Encode() + req, err := http.NewRequest("POST", urls, body) + if err != nil { + return nil, err + } + req.Header = reqHeaders + googleapi.Expand(req.URL, map[string]string{ + "project": c.project, + "zone": c.zone, + "resource": c.resource, + }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.instantSnapshots.setIamPolicy", "request", internallog.HTTPRequest(req, body.Bytes())) + return gensupport.SendRequest(c.ctx_, c.s.client, req) +} + +// Do executes the "compute.instantSnapshots.setIamPolicy" call. +// Any non-2xx status code is an error. Response headers are in either +// *Policy.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 *InstantSnapshotsSetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, 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, gensupport.WrapError(&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, gensupport.WrapError(err) + } + ret := &Policy{ + ServerResponse: googleapi.ServerResponse{ + Header: res.Header, + HTTPStatusCode: res.StatusCode, + }, + } + target := &ret + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { + return nil, err + } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.instantSnapshots.setIamPolicy", "response", internallog.HTTPResponse(res, b)) + return ret, nil +} + +type InstantSnapshotsSetLabelsCall struct { + s *Service + project string + zone string + resource string + zonesetlabelsrequest *ZoneSetLabelsRequest + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header +} + +// SetLabels: Sets the labels on a instantSnapshot in the given zone. To learn +// more about +// labels, read the Labeling +// Resources documentation. +// +// - project: Project ID for this request. +// - resource: Name or id of the resource for this request. +// - zone: The name of the zone for this request. +func (r *InstantSnapshotsService) SetLabels(project string, zone string, resource string, zonesetlabelsrequest *ZoneSetLabelsRequest) *InstantSnapshotsSetLabelsCall { + c := &InstantSnapshotsSetLabelsCall{s: r.s, urlParams_: make(gensupport.URLParams)} + c.project = project + c.zone = zone + c.resource = resource + c.zonesetlabelsrequest = zonesetlabelsrequest + 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 *InstantSnapshotsSetLabelsCall) RequestId(requestId string) *InstantSnapshotsSetLabelsCall { + 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 +// details. +func (c *InstantSnapshotsSetLabelsCall) Fields(s ...googleapi.Field) *InstantSnapshotsSetLabelsCall { + c.urlParams_.Set("fields", googleapi.CombineFields(s)) + return c +} + +// Context sets the context to be used in this call's Do method. +func (c *InstantSnapshotsSetLabelsCall) Context(ctx context.Context) *InstantSnapshotsSetLabelsCall { + c.ctx_ = ctx + return c +} + +// Header returns a http.Header that can be modified by the caller to add +// headers to the request. +func (c *InstantSnapshotsSetLabelsCall) Header() http.Header { + if c.header_ == nil { + c.header_ = make(http.Header) + } + return c.header_ +} + +func (c *InstantSnapshotsSetLabelsCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) + body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.zonesetlabelsrequest) + if err != nil { + return nil, err + } + c.urlParams_.Set("alt", alt) + c.urlParams_.Set("prettyPrint", "false") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instantSnapshots/{resource}/setLabels") + urls += "?" + c.urlParams_.Encode() + req, err := http.NewRequest("POST", urls, body) + if err != nil { + return nil, err + } + req.Header = reqHeaders + googleapi.Expand(req.URL, map[string]string{ + "project": c.project, + "zone": c.zone, + "resource": c.resource, + }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.instantSnapshots.setLabels", "request", internallog.HTTPRequest(req, body.Bytes())) + return gensupport.SendRequest(c.ctx_, c.s.client, req) +} + +// Do executes the "compute.instantSnapshots.setLabels" call. +// 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 *InstantSnapshotsSetLabelsCall) 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, gensupport.WrapError(&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, gensupport.WrapError(err) + } + ret := &Operation{ + ServerResponse: googleapi.ServerResponse{ + Header: res.Header, + HTTPStatusCode: res.StatusCode, + }, + } + target := &ret + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { + return nil, err + } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.instantSnapshots.setLabels", "response", internallog.HTTPResponse(res, b)) + return ret, nil +} + +type InstantSnapshotsTestIamPermissionsCall struct { + s *Service + project string + zone string + resource string + testpermissionsrequest *TestPermissionsRequest + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header +} + +// TestIamPermissions: Returns permissions that a caller has on the specified +// resource. +// +// - project: Project ID for this request. +// - resource: Name or id of the resource for this request. +// - zone: The name of the zone for this request. +func (r *InstantSnapshotsService) TestIamPermissions(project string, zone string, resource string, testpermissionsrequest *TestPermissionsRequest) *InstantSnapshotsTestIamPermissionsCall { + c := &InstantSnapshotsTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)} + c.project = project + c.zone = zone + c.resource = resource + c.testpermissionsrequest = testpermissionsrequest + return c +} + +// Fields allows partial responses to be retrieved. See +// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more +// details. +func (c *InstantSnapshotsTestIamPermissionsCall) Fields(s ...googleapi.Field) *InstantSnapshotsTestIamPermissionsCall { + c.urlParams_.Set("fields", googleapi.CombineFields(s)) + return c +} + +// Context sets the context to be used in this call's Do method. +func (c *InstantSnapshotsTestIamPermissionsCall) Context(ctx context.Context) *InstantSnapshotsTestIamPermissionsCall { + c.ctx_ = ctx + return c +} + +// Header returns a http.Header that can be modified by the caller to add +// headers to the request. +func (c *InstantSnapshotsTestIamPermissionsCall) Header() http.Header { + if c.header_ == nil { + c.header_ = make(http.Header) + } + return c.header_ +} + +func (c *InstantSnapshotsTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) + body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.testpermissionsrequest) + if err != nil { + return nil, err + } + c.urlParams_.Set("alt", alt) + c.urlParams_.Set("prettyPrint", "false") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instantSnapshots/{resource}/testIamPermissions") + urls += "?" + c.urlParams_.Encode() + req, err := http.NewRequest("POST", urls, body) + if err != nil { + return nil, err + } + req.Header = reqHeaders + googleapi.Expand(req.URL, map[string]string{ + "project": c.project, + "zone": c.zone, + "resource": c.resource, + }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.instantSnapshots.testIamPermissions", "request", internallog.HTTPRequest(req, body.Bytes())) + return gensupport.SendRequest(c.ctx_, c.s.client, req) +} + +// Do executes the "compute.instantSnapshots.testIamPermissions" call. +// Any non-2xx status code is an error. Response headers are in either +// *TestPermissionsResponse.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 *InstantSnapshotsTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, 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, gensupport.WrapError(&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, gensupport.WrapError(err) + } + ret := &TestPermissionsResponse{ + ServerResponse: googleapi.ServerResponse{ + Header: res.Header, + HTTPStatusCode: res.StatusCode, + }, + } + target := &ret + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { + return nil, err + } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.instantSnapshots.testIamPermissions", "response", internallog.HTTPResponse(res, b)) + return ret, nil +} + +type InterconnectAttachmentGroupsDeleteCall struct { + s *Service + project string + interconnectAttachmentGroup string + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header +} + +// Delete: Deletes the specified InterconnectAttachmentGroup in the given scope +// +// - interconnectAttachmentGroup: Name of the InterconnectAttachmentGroup +// resource to delete. +// - project: Project ID for this request. +func (r *InterconnectAttachmentGroupsService) Delete(project string, interconnectAttachmentGroup string) *InterconnectAttachmentGroupsDeleteCall { + c := &InterconnectAttachmentGroupsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)} + c.project = project + c.interconnectAttachmentGroup = interconnectAttachmentGroup + 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). +// end_interface: MixerMutationRequestBuilder +func (c *InterconnectAttachmentGroupsDeleteCall) RequestId(requestId string) *InterconnectAttachmentGroupsDeleteCall { + 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 +// details. +func (c *InterconnectAttachmentGroupsDeleteCall) Fields(s ...googleapi.Field) *InterconnectAttachmentGroupsDeleteCall { + c.urlParams_.Set("fields", googleapi.CombineFields(s)) + return c +} + +// Context sets the context to be used in this call's Do method. +func (c *InterconnectAttachmentGroupsDeleteCall) Context(ctx context.Context) *InterconnectAttachmentGroupsDeleteCall { + c.ctx_ = ctx + return c +} + +// Header returns a http.Header that can be modified by the caller to add +// headers to the request. +func (c *InterconnectAttachmentGroupsDeleteCall) Header() http.Header { + if c.header_ == nil { + c.header_ = make(http.Header) + } + return c.header_ +} + +func (c *InterconnectAttachmentGroupsDeleteCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) + c.urlParams_.Set("alt", alt) + c.urlParams_.Set("prettyPrint", "false") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/interconnectAttachmentGroups/{interconnectAttachmentGroup}") + urls += "?" + c.urlParams_.Encode() + req, err := http.NewRequest("DELETE", urls, nil) + if err != nil { + return nil, err + } + req.Header = reqHeaders + googleapi.Expand(req.URL, map[string]string{ + "project": c.project, + "interconnectAttachmentGroup": c.interconnectAttachmentGroup, + }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.interconnectAttachmentGroups.delete", "request", internallog.HTTPRequest(req, nil)) + return gensupport.SendRequest(c.ctx_, c.s.client, req) +} + +// Do executes the "compute.interconnectAttachmentGroups.delete" call. +// 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 *InterconnectAttachmentGroupsDeleteCall) 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, gensupport.WrapError(&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, gensupport.WrapError(err) + } + ret := &Operation{ + ServerResponse: googleapi.ServerResponse{ + Header: res.Header, + HTTPStatusCode: res.StatusCode, + }, + } + target := &ret + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { + return nil, err + } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.interconnectAttachmentGroups.delete", "response", internallog.HTTPResponse(res, b)) + return ret, nil +} + +type InterconnectAttachmentGroupsGetCall struct { + s *Service + project string + interconnectAttachmentGroup string + urlParams_ gensupport.URLParams + ifNoneMatch_ string + ctx_ context.Context + header_ http.Header +} + +// Get: Returns the specified InterconnectAttachmentGroup resource in the +// given +// scope. +// +// - interconnectAttachmentGroup: Name of the InterconnectAttachmentGroup +// resource to return. +// - project: Project ID for this request. +func (r *InterconnectAttachmentGroupsService) Get(project string, interconnectAttachmentGroup string) *InterconnectAttachmentGroupsGetCall { + c := &InterconnectAttachmentGroupsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)} + c.project = project + c.interconnectAttachmentGroup = interconnectAttachmentGroup + return c +} + +// Fields allows partial responses to be retrieved. See +// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more +// details. +func (c *InterconnectAttachmentGroupsGetCall) Fields(s ...googleapi.Field) *InterconnectAttachmentGroupsGetCall { + c.urlParams_.Set("fields", googleapi.CombineFields(s)) + return c +} + +// IfNoneMatch sets an 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. +func (c *InterconnectAttachmentGroupsGetCall) IfNoneMatch(entityTag string) *InterconnectAttachmentGroupsGetCall { + c.ifNoneMatch_ = entityTag + return c +} + +// Context sets the context to be used in this call's Do method. +func (c *InterconnectAttachmentGroupsGetCall) Context(ctx context.Context) *InterconnectAttachmentGroupsGetCall { + c.ctx_ = ctx + return c +} + +// Header returns a http.Header that can be modified by the caller to add +// headers to the request. +func (c *InterconnectAttachmentGroupsGetCall) Header() http.Header { + if c.header_ == nil { + c.header_ = make(http.Header) + } + return c.header_ +} + +func (c *InterconnectAttachmentGroupsGetCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) + if c.ifNoneMatch_ != "" { + reqHeaders.Set("If-None-Match", c.ifNoneMatch_) + } + c.urlParams_.Set("alt", alt) + c.urlParams_.Set("prettyPrint", "false") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/interconnectAttachmentGroups/{interconnectAttachmentGroup}") + urls += "?" + c.urlParams_.Encode() + req, err := http.NewRequest("GET", urls, nil) + if err != nil { + return nil, err + } + req.Header = reqHeaders + googleapi.Expand(req.URL, map[string]string{ + "project": c.project, + "interconnectAttachmentGroup": c.interconnectAttachmentGroup, + }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.interconnectAttachmentGroups.get", "request", internallog.HTTPRequest(req, nil)) + return gensupport.SendRequest(c.ctx_, c.s.client, req) +} + +// Do executes the "compute.interconnectAttachmentGroups.get" call. +// Any non-2xx status code is an error. Response headers are in either +// *InterconnectAttachmentGroup.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 *InterconnectAttachmentGroupsGetCall) Do(opts ...googleapi.CallOption) (*InterconnectAttachmentGroup, 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, gensupport.WrapError(&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, gensupport.WrapError(err) + } + ret := &InterconnectAttachmentGroup{ + ServerResponse: googleapi.ServerResponse{ + Header: res.Header, + HTTPStatusCode: res.StatusCode, + }, + } + target := &ret + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { + return nil, err + } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.interconnectAttachmentGroups.get", "response", internallog.HTTPResponse(res, b)) + return ret, nil +} + +type InterconnectAttachmentGroupsGetIamPolicyCall struct { + s *Service + project string + resource string + urlParams_ gensupport.URLParams + ifNoneMatch_ string + ctx_ context.Context + header_ http.Header +} + +// GetIamPolicy: Gets the access control policy for a resource. May be empty if +// no such +// policy or resource exists. +// +// - project: Project ID for this request. +// - resource: Name or id of the resource for this request. +func (r *InterconnectAttachmentGroupsService) GetIamPolicy(project string, resource string) *InterconnectAttachmentGroupsGetIamPolicyCall { + c := &InterconnectAttachmentGroupsGetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)} + c.project = project + c.resource = resource + return c +} + +// OptionsRequestedPolicyVersion sets the optional parameter +// "optionsRequestedPolicyVersion": Requested IAM Policy version. +func (c *InterconnectAttachmentGroupsGetIamPolicyCall) OptionsRequestedPolicyVersion(optionsRequestedPolicyVersion int64) *InterconnectAttachmentGroupsGetIamPolicyCall { + c.urlParams_.Set("optionsRequestedPolicyVersion", fmt.Sprint(optionsRequestedPolicyVersion)) + return c +} + +// Fields allows partial responses to be retrieved. See +// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more +// details. +func (c *InterconnectAttachmentGroupsGetIamPolicyCall) Fields(s ...googleapi.Field) *InterconnectAttachmentGroupsGetIamPolicyCall { + c.urlParams_.Set("fields", googleapi.CombineFields(s)) + return c +} + +// IfNoneMatch sets an 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. +func (c *InterconnectAttachmentGroupsGetIamPolicyCall) IfNoneMatch(entityTag string) *InterconnectAttachmentGroupsGetIamPolicyCall { + c.ifNoneMatch_ = entityTag + return c +} + +// Context sets the context to be used in this call's Do method. +func (c *InterconnectAttachmentGroupsGetIamPolicyCall) Context(ctx context.Context) *InterconnectAttachmentGroupsGetIamPolicyCall { + c.ctx_ = ctx + return c +} + +// Header returns a http.Header that can be modified by the caller to add +// headers to the request. +func (c *InterconnectAttachmentGroupsGetIamPolicyCall) Header() http.Header { + if c.header_ == nil { + c.header_ = make(http.Header) + } + return c.header_ +} + +func (c *InterconnectAttachmentGroupsGetIamPolicyCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) + if c.ifNoneMatch_ != "" { + reqHeaders.Set("If-None-Match", c.ifNoneMatch_) + } + c.urlParams_.Set("alt", alt) + c.urlParams_.Set("prettyPrint", "false") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/interconnectAttachmentGroups/{resource}/getIamPolicy") + urls += "?" + c.urlParams_.Encode() + req, err := http.NewRequest("GET", urls, nil) + if err != nil { + return nil, err + } + req.Header = reqHeaders + googleapi.Expand(req.URL, map[string]string{ + "project": c.project, + "resource": c.resource, + }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.interconnectAttachmentGroups.getIamPolicy", "request", internallog.HTTPRequest(req, nil)) + return gensupport.SendRequest(c.ctx_, c.s.client, req) +} + +// Do executes the "compute.interconnectAttachmentGroups.getIamPolicy" call. +// Any non-2xx status code is an error. Response headers are in either +// *Policy.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 *InterconnectAttachmentGroupsGetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, 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, gensupport.WrapError(&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, gensupport.WrapError(err) + } + ret := &Policy{ + ServerResponse: googleapi.ServerResponse{ + Header: res.Header, + HTTPStatusCode: res.StatusCode, + }, + } + target := &ret + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { + return nil, err + } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.interconnectAttachmentGroups.getIamPolicy", "response", internallog.HTTPResponse(res, b)) + return ret, nil +} + +type InterconnectAttachmentGroupsGetOperationalStatusCall struct { + s *Service + project string + interconnectAttachmentGroup string + urlParams_ gensupport.URLParams + ifNoneMatch_ string + ctx_ context.Context + header_ http.Header +} + +// GetOperationalStatus: Returns the InterconnectAttachmentStatuses for the +// specified +// InterconnectAttachmentGroup resource. +// +// - interconnectAttachmentGroup: Name of the interconnectAttachmentGroup +// resource to query. +// - project: Project ID for this request. +func (r *InterconnectAttachmentGroupsService) GetOperationalStatus(project string, interconnectAttachmentGroup string) *InterconnectAttachmentGroupsGetOperationalStatusCall { + c := &InterconnectAttachmentGroupsGetOperationalStatusCall{s: r.s, urlParams_: make(gensupport.URLParams)} + c.project = project + c.interconnectAttachmentGroup = interconnectAttachmentGroup + return c +} + +// Fields allows partial responses to be retrieved. See +// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more +// details. +func (c *InterconnectAttachmentGroupsGetOperationalStatusCall) Fields(s ...googleapi.Field) *InterconnectAttachmentGroupsGetOperationalStatusCall { + c.urlParams_.Set("fields", googleapi.CombineFields(s)) + return c +} + +// IfNoneMatch sets an 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. +func (c *InterconnectAttachmentGroupsGetOperationalStatusCall) IfNoneMatch(entityTag string) *InterconnectAttachmentGroupsGetOperationalStatusCall { + c.ifNoneMatch_ = entityTag + return c +} + +// Context sets the context to be used in this call's Do method. +func (c *InterconnectAttachmentGroupsGetOperationalStatusCall) Context(ctx context.Context) *InterconnectAttachmentGroupsGetOperationalStatusCall { + c.ctx_ = ctx + return c +} + +// Header returns a http.Header that can be modified by the caller to add +// headers to the request. +func (c *InterconnectAttachmentGroupsGetOperationalStatusCall) Header() http.Header { + if c.header_ == nil { + c.header_ = make(http.Header) + } + return c.header_ +} + +func (c *InterconnectAttachmentGroupsGetOperationalStatusCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) + if c.ifNoneMatch_ != "" { + reqHeaders.Set("If-None-Match", c.ifNoneMatch_) + } + c.urlParams_.Set("alt", alt) + c.urlParams_.Set("prettyPrint", "false") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/interconnectAttachmentGroups/{interconnectAttachmentGroup}/getOperationalStatus") + urls += "?" + c.urlParams_.Encode() + req, err := http.NewRequest("GET", urls, nil) + if err != nil { + return nil, err + } + req.Header = reqHeaders + googleapi.Expand(req.URL, map[string]string{ + "project": c.project, + "interconnectAttachmentGroup": c.interconnectAttachmentGroup, + }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.interconnectAttachmentGroups.getOperationalStatus", "request", internallog.HTTPRequest(req, nil)) + return gensupport.SendRequest(c.ctx_, c.s.client, req) +} + +// Do executes the "compute.interconnectAttachmentGroups.getOperationalStatus" call. +// Any non-2xx status code is an error. Response headers are in either +// *InterconnectAttachmentGroupsGetOperationalStatusResponse.ServerResponse.Head +// er 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 *InterconnectAttachmentGroupsGetOperationalStatusCall) Do(opts ...googleapi.CallOption) (*InterconnectAttachmentGroupsGetOperationalStatusResponse, 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, gensupport.WrapError(&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, gensupport.WrapError(err) + } + ret := &InterconnectAttachmentGroupsGetOperationalStatusResponse{ + ServerResponse: googleapi.ServerResponse{ + Header: res.Header, + HTTPStatusCode: res.StatusCode, + }, + } + target := &ret + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { + return nil, err + } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.interconnectAttachmentGroups.getOperationalStatus", "response", internallog.HTTPResponse(res, b)) + return ret, nil +} + +type InterconnectAttachmentGroupsInsertCall struct { + s *Service + project string + interconnectattachmentgroup *InterconnectAttachmentGroup + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header +} + +// Insert: Creates a InterconnectAttachmentGroup in the specified project in +// the given +// scope using the parameters that are included in the request. +// +// - project: Project ID for this request. +func (r *InterconnectAttachmentGroupsService) Insert(project string, interconnectattachmentgroup *InterconnectAttachmentGroup) *InterconnectAttachmentGroupsInsertCall { + c := &InterconnectAttachmentGroupsInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)} + c.project = project + c.interconnectattachmentgroup = interconnectattachmentgroup + 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). +// end_interface: MixerMutationRequestBuilder +func (c *InterconnectAttachmentGroupsInsertCall) RequestId(requestId string) *InterconnectAttachmentGroupsInsertCall { + 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 +// details. +func (c *InterconnectAttachmentGroupsInsertCall) Fields(s ...googleapi.Field) *InterconnectAttachmentGroupsInsertCall { + c.urlParams_.Set("fields", googleapi.CombineFields(s)) + return c +} + +// Context sets the context to be used in this call's Do method. +func (c *InterconnectAttachmentGroupsInsertCall) Context(ctx context.Context) *InterconnectAttachmentGroupsInsertCall { + c.ctx_ = ctx + return c +} + +// Header returns a http.Header that can be modified by the caller to add +// headers to the request. +func (c *InterconnectAttachmentGroupsInsertCall) Header() http.Header { + if c.header_ == nil { + c.header_ = make(http.Header) + } + return c.header_ +} + +func (c *InterconnectAttachmentGroupsInsertCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) + body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.interconnectattachmentgroup) + if err != nil { + return nil, err + } + c.urlParams_.Set("alt", alt) + c.urlParams_.Set("prettyPrint", "false") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/interconnectAttachmentGroups") + urls += "?" + c.urlParams_.Encode() + req, err := http.NewRequest("POST", urls, body) + if err != nil { + return nil, err + } + req.Header = reqHeaders + googleapi.Expand(req.URL, map[string]string{ + "project": c.project, + }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.interconnectAttachmentGroups.insert", "request", internallog.HTTPRequest(req, body.Bytes())) + return gensupport.SendRequest(c.ctx_, c.s.client, req) +} + +// Do executes the "compute.interconnectAttachmentGroups.insert" call. +// 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 *InterconnectAttachmentGroupsInsertCall) 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, gensupport.WrapError(&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, gensupport.WrapError(err) + } + ret := &Operation{ + ServerResponse: googleapi.ServerResponse{ + Header: res.Header, + HTTPStatusCode: res.StatusCode, + }, + } + target := &ret + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { + return nil, err + } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.interconnectAttachmentGroups.insert", "response", internallog.HTTPResponse(res, b)) + return ret, nil +} + +type InterconnectAttachmentGroupsListCall struct { + s *Service + project string + urlParams_ gensupport.URLParams + ifNoneMatch_ string + ctx_ context.Context + header_ http.Header +} + +// List: Lists the InterconnectAttachmentGroups for a project in the given +// scope. +// +// - project: Project ID for this request. +func (r *InterconnectAttachmentGroupsService) List(project string) *InterconnectAttachmentGroupsListCall { + c := &InterconnectAttachmentGroupsListCall{s: r.s, urlParams_: make(gensupport.URLParams)} + c.project = project + return c +} + +// Filter sets the optional parameter "filter": A filter expression that +// filters resources listed in the response. Most +// Compute resources support two types of filter expressions: +// expressions that support regular expressions and expressions that follow +// API improvement proposal AIP-160. +// These two types of filter expressions cannot be mixed in one request. +// +// If you want to use AIP-160, your expression must specify the field name, +// an +// operator, and the value that you want to use for filtering. The value +// must be a string, a number, or a boolean. The 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`. +// +// The `:*` comparison can be used to test whether a key has been defined. +// For example, to find all objects with `owner` label +// use: +// ``` +// labels.owner:* +// ``` +// +// 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 onresource 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) +// ``` +// +// If you want to use a regular expression, use the `eq` (equal) or `ne` +// (not equal) operator against a single un-parenthesized expression with +// or +// without quotes or against multiple parenthesized expressions. +// Examples: +// +// `fieldname eq unquoted literal` +// `fieldname eq 'single quoted literal'` +// `fieldname eq "double quoted literal" +// `(fieldname1 eq literal) (fieldname2 ne "literal")` +// +// The literal value is interpreted as a regular expression using GoogleRE2 +// library syntax. +// The literal value must match the entire field. +// +// For example, to filter for instances that do not end with name +// "instance", +// you would use `name ne .*instance`. +// +// You cannot combine constraints on multiple fields using regular +// expressions. +func (c *InterconnectAttachmentGroupsListCall) Filter(filter string) *InterconnectAttachmentGroupsListCall { + 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 *InterconnectAttachmentGroupsListCall) MaxResults(maxResults int64) *InterconnectAttachmentGroupsListCall { + 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 *InterconnectAttachmentGroupsListCall) OrderBy(orderBy string) *InterconnectAttachmentGroupsListCall { + 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 *InterconnectAttachmentGroupsListCall) PageToken(pageToken string) *InterconnectAttachmentGroupsListCall { + c.urlParams_.Set("pageToken", pageToken) + return c +} + +// ReturnPartialSuccess sets the optional parameter "returnPartialSuccess": +// Opt-in for partial success behavior which provides partial results in +// case +// of failure. The default value is false. +// +// For example, when partial success behavior is enabled, aggregatedList for +// a +// single zone scope either returns all resources in the zone or no +// resources, +// with an error code. +func (c *InterconnectAttachmentGroupsListCall) ReturnPartialSuccess(returnPartialSuccess bool) *InterconnectAttachmentGroupsListCall { + c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess)) + return c +} + +// Fields allows partial responses to be retrieved. See +// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more +// details. +func (c *InterconnectAttachmentGroupsListCall) Fields(s ...googleapi.Field) *InterconnectAttachmentGroupsListCall { + c.urlParams_.Set("fields", googleapi.CombineFields(s)) + return c +} + +// IfNoneMatch sets an 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. +func (c *InterconnectAttachmentGroupsListCall) IfNoneMatch(entityTag string) *InterconnectAttachmentGroupsListCall { + c.ifNoneMatch_ = entityTag + return c +} + +// Context sets the context to be used in this call's Do method. +func (c *InterconnectAttachmentGroupsListCall) Context(ctx context.Context) *InterconnectAttachmentGroupsListCall { + c.ctx_ = ctx + return c +} + +// Header returns a http.Header that can be modified by the caller to add +// headers to the request. +func (c *InterconnectAttachmentGroupsListCall) Header() http.Header { + if c.header_ == nil { + c.header_ = make(http.Header) + } + return c.header_ +} + +func (c *InterconnectAttachmentGroupsListCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) + if c.ifNoneMatch_ != "" { + reqHeaders.Set("If-None-Match", c.ifNoneMatch_) + } + c.urlParams_.Set("alt", alt) + c.urlParams_.Set("prettyPrint", "false") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/interconnectAttachmentGroups") + urls += "?" + c.urlParams_.Encode() + req, err := http.NewRequest("GET", urls, nil) + if err != nil { + return nil, err + } + req.Header = reqHeaders + googleapi.Expand(req.URL, map[string]string{ + "project": c.project, + }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.interconnectAttachmentGroups.list", "request", internallog.HTTPRequest(req, nil)) + return gensupport.SendRequest(c.ctx_, c.s.client, req) +} + +// Do executes the "compute.interconnectAttachmentGroups.list" call. +// Any non-2xx status code is an error. Response headers are in either +// *InterconnectAttachmentGroupsListResponse.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 *InterconnectAttachmentGroupsListCall) Do(opts ...googleapi.CallOption) (*InterconnectAttachmentGroupsListResponse, 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, gensupport.WrapError(&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, gensupport.WrapError(err) + } + ret := &InterconnectAttachmentGroupsListResponse{ + ServerResponse: googleapi.ServerResponse{ + Header: res.Header, + HTTPStatusCode: res.StatusCode, + }, + } + target := &ret + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { + return nil, err + } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.interconnectAttachmentGroups.list", "response", internallog.HTTPResponse(res, b)) + return ret, nil +} + +// 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 *InterconnectAttachmentGroupsListCall) Pages(ctx context.Context, f func(*InterconnectAttachmentGroupsListResponse) error) error { + c.ctx_ = ctx + defer c.PageToken(c.urlParams_.Get("pageToken")) + 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) + } +} + +type InterconnectAttachmentGroupsPatchCall struct { + s *Service + project string + interconnectAttachmentGroup string + interconnectattachmentgroup *InterconnectAttachmentGroup + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header +} + +// Patch: Patches the specified InterconnectAttachmentGroup resource with the +// data +// included in the request. This method supports PATCH +// semantics and usesJSON merge +// patch format and processing rules. +// +// - interconnectAttachmentGroup: Name of the InterconnectAttachmentGroup +// resource to patch. +// - project: Project ID for this request. +func (r *InterconnectAttachmentGroupsService) Patch(project string, interconnectAttachmentGroup string, interconnectattachmentgroup *InterconnectAttachmentGroup) *InterconnectAttachmentGroupsPatchCall { + c := &InterconnectAttachmentGroupsPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)} + c.project = project + c.interconnectAttachmentGroup = interconnectAttachmentGroup + c.interconnectattachmentgroup = interconnectattachmentgroup + 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). +// end_interface: MixerMutationRequestBuilder +func (c *InterconnectAttachmentGroupsPatchCall) RequestId(requestId string) *InterconnectAttachmentGroupsPatchCall { + c.urlParams_.Set("requestId", requestId) + return c +} + +// UpdateMask sets the optional parameter "updateMask": The list of fields to +// update. +func (c *InterconnectAttachmentGroupsPatchCall) UpdateMask(updateMask string) *InterconnectAttachmentGroupsPatchCall { + c.urlParams_.Set("updateMask", updateMask) + return c +} + +// Fields allows partial responses to be retrieved. See +// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more +// details. +func (c *InterconnectAttachmentGroupsPatchCall) Fields(s ...googleapi.Field) *InterconnectAttachmentGroupsPatchCall { + c.urlParams_.Set("fields", googleapi.CombineFields(s)) + return c +} + +// Context sets the context to be used in this call's Do method. +func (c *InterconnectAttachmentGroupsPatchCall) Context(ctx context.Context) *InterconnectAttachmentGroupsPatchCall { + c.ctx_ = ctx + return c +} + +// Header returns a http.Header that can be modified by the caller to add +// headers to the request. +func (c *InterconnectAttachmentGroupsPatchCall) Header() http.Header { + if c.header_ == nil { + c.header_ = make(http.Header) + } + return c.header_ +} + +func (c *InterconnectAttachmentGroupsPatchCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) + body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.interconnectattachmentgroup) + if err != nil { + return nil, err + } + c.urlParams_.Set("alt", alt) + c.urlParams_.Set("prettyPrint", "false") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/interconnectAttachmentGroups/{interconnectAttachmentGroup}") + urls += "?" + c.urlParams_.Encode() + req, err := http.NewRequest("PATCH", urls, body) + if err != nil { + return nil, err + } + req.Header = reqHeaders + googleapi.Expand(req.URL, map[string]string{ + "project": c.project, + "interconnectAttachmentGroup": c.interconnectAttachmentGroup, + }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.interconnectAttachmentGroups.patch", "request", internallog.HTTPRequest(req, body.Bytes())) + return gensupport.SendRequest(c.ctx_, c.s.client, req) +} + +// Do executes the "compute.interconnectAttachmentGroups.patch" call. +// 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 *InterconnectAttachmentGroupsPatchCall) 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, gensupport.WrapError(&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, gensupport.WrapError(err) + } + ret := &Operation{ + ServerResponse: googleapi.ServerResponse{ + Header: res.Header, + HTTPStatusCode: res.StatusCode, + }, + } + target := &ret + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { + return nil, err + } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.interconnectAttachmentGroups.patch", "response", internallog.HTTPResponse(res, b)) + return ret, nil +} + +type InterconnectAttachmentGroupsSetIamPolicyCall struct { + s *Service + project string + resource string + globalsetpolicyrequest *GlobalSetPolicyRequest + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header +} + +// SetIamPolicy: Sets the access control policy on the specified +// resource. +// Replaces any existing policy. +// +// - project: Project ID for this request. +// - resource: Name or id of the resource for this request. +func (r *InterconnectAttachmentGroupsService) SetIamPolicy(project string, resource string, globalsetpolicyrequest *GlobalSetPolicyRequest) *InterconnectAttachmentGroupsSetIamPolicyCall { + c := &InterconnectAttachmentGroupsSetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)} + c.project = project + c.resource = resource + c.globalsetpolicyrequest = globalsetpolicyrequest + return c +} + +// Fields allows partial responses to be retrieved. See +// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more +// details. +func (c *InterconnectAttachmentGroupsSetIamPolicyCall) Fields(s ...googleapi.Field) *InterconnectAttachmentGroupsSetIamPolicyCall { + c.urlParams_.Set("fields", googleapi.CombineFields(s)) + return c +} + +// Context sets the context to be used in this call's Do method. +func (c *InterconnectAttachmentGroupsSetIamPolicyCall) Context(ctx context.Context) *InterconnectAttachmentGroupsSetIamPolicyCall { + c.ctx_ = ctx + return c +} + +// Header returns a http.Header that can be modified by the caller to add +// headers to the request. +func (c *InterconnectAttachmentGroupsSetIamPolicyCall) Header() http.Header { + if c.header_ == nil { + c.header_ = make(http.Header) + } + return c.header_ +} + +func (c *InterconnectAttachmentGroupsSetIamPolicyCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) + body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.globalsetpolicyrequest) + if err != nil { + return nil, err + } + c.urlParams_.Set("alt", alt) + c.urlParams_.Set("prettyPrint", "false") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/interconnectAttachmentGroups/{resource}/setIamPolicy") + urls += "?" + c.urlParams_.Encode() + req, err := http.NewRequest("POST", urls, body) + if err != nil { + return nil, err + } + req.Header = reqHeaders + googleapi.Expand(req.URL, map[string]string{ + "project": c.project, + "resource": c.resource, + }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.interconnectAttachmentGroups.setIamPolicy", "request", internallog.HTTPRequest(req, body.Bytes())) + return gensupport.SendRequest(c.ctx_, c.s.client, req) +} + +// Do executes the "compute.interconnectAttachmentGroups.setIamPolicy" call. +// Any non-2xx status code is an error. Response headers are in either +// *Policy.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 *InterconnectAttachmentGroupsSetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, 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, gensupport.WrapError(&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, gensupport.WrapError(err) + } + ret := &Policy{ + ServerResponse: googleapi.ServerResponse{ + Header: res.Header, + HTTPStatusCode: res.StatusCode, + }, + } + target := &ret + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { + return nil, err + } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.interconnectAttachmentGroups.setIamPolicy", "response", internallog.HTTPResponse(res, b)) + return ret, nil +} + +type InterconnectAttachmentGroupsTestIamPermissionsCall struct { + s *Service + project string + resource string + testpermissionsrequest *TestPermissionsRequest + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header +} + +// TestIamPermissions: Returns permissions that a caller has on the specified +// resource. +// +// - project: Project ID for this request. +// - resource: Name or id of the resource for this request. +func (r *InterconnectAttachmentGroupsService) TestIamPermissions(project string, resource string, testpermissionsrequest *TestPermissionsRequest) *InterconnectAttachmentGroupsTestIamPermissionsCall { + c := &InterconnectAttachmentGroupsTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)} + c.project = project + c.resource = resource + c.testpermissionsrequest = testpermissionsrequest + return c +} + +// Fields allows partial responses to be retrieved. See +// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more +// details. +func (c *InterconnectAttachmentGroupsTestIamPermissionsCall) Fields(s ...googleapi.Field) *InterconnectAttachmentGroupsTestIamPermissionsCall { + c.urlParams_.Set("fields", googleapi.CombineFields(s)) + return c +} + +// Context sets the context to be used in this call's Do method. +func (c *InterconnectAttachmentGroupsTestIamPermissionsCall) Context(ctx context.Context) *InterconnectAttachmentGroupsTestIamPermissionsCall { + c.ctx_ = ctx + return c +} + +// Header returns a http.Header that can be modified by the caller to add +// headers to the request. +func (c *InterconnectAttachmentGroupsTestIamPermissionsCall) Header() http.Header { + if c.header_ == nil { + c.header_ = make(http.Header) + } + return c.header_ +} + +func (c *InterconnectAttachmentGroupsTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) + body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.testpermissionsrequest) + if err != nil { + return nil, err + } + c.urlParams_.Set("alt", alt) + c.urlParams_.Set("prettyPrint", "false") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/interconnectAttachmentGroups/{resource}/testIamPermissions") + urls += "?" + c.urlParams_.Encode() + req, err := http.NewRequest("POST", urls, body) + if err != nil { + return nil, err + } + req.Header = reqHeaders + googleapi.Expand(req.URL, map[string]string{ + "project": c.project, + "resource": c.resource, + }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.interconnectAttachmentGroups.testIamPermissions", "request", internallog.HTTPRequest(req, body.Bytes())) + return gensupport.SendRequest(c.ctx_, c.s.client, req) +} + +// Do executes the "compute.interconnectAttachmentGroups.testIamPermissions" call. +// Any non-2xx status code is an error. Response headers are in either +// *TestPermissionsResponse.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 *InterconnectAttachmentGroupsTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, 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, gensupport.WrapError(&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, gensupport.WrapError(err) + } + ret := &TestPermissionsResponse{ + ServerResponse: googleapi.ServerResponse{ + Header: res.Header, + HTTPStatusCode: res.StatusCode, + }, + } + target := &ret + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { + return nil, err + } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.interconnectAttachmentGroups.testIamPermissions", "response", internallog.HTTPResponse(res, b)) + return ret, nil +} + +type InterconnectAttachmentsAggregatedListCall struct { + s *Service + project string + urlParams_ gensupport.URLParams + ifNoneMatch_ string + ctx_ context.Context + header_ http.Header +} + +// AggregatedList: Retrieves an aggregated list of interconnect +// attachments. +// +// To prevent failure, Google recommends that you set +// the +// `returnPartialSuccess` parameter to `true`. +// +// - project: Project ID for this request. +func (r *InterconnectAttachmentsService) AggregatedList(project string) *InterconnectAttachmentsAggregatedListCall { + c := &InterconnectAttachmentsAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)} + c.project = project + return c +} + +// Filter sets the optional parameter "filter": A filter expression that +// filters resources listed in the response. Most +// Compute resources support two types of filter expressions: +// expressions that support regular expressions and expressions that follow +// API improvement proposal AIP-160. +// These two types of filter expressions cannot be mixed in one request. +// +// If you want to use AIP-160, your expression must specify the field name, +// an +// operator, and the value that you want to use for filtering. The value +// must be a string, a number, or a boolean. The 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`. +// +// The `:*` comparison can be used to test whether a key has been defined. +// For example, to find all objects with `owner` label +// use: +// ``` +// labels.owner:* +// ``` +// +// 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 onresource 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) +// ``` +// +// If you want to use a regular expression, use the `eq` (equal) or `ne` +// (not equal) operator against a single un-parenthesized expression with +// or +// without quotes or against multiple parenthesized expressions. +// Examples: +// +// `fieldname eq unquoted literal` +// `fieldname eq 'single quoted literal'` +// `fieldname eq "double quoted literal" +// `(fieldname1 eq literal) (fieldname2 ne "literal")` +// +// The literal value is interpreted as a regular expression using GoogleRE2 +// library syntax. +// The literal value must match the entire field. +// +// For example, to filter for instances that do not end with name +// "instance", +// you would use `name ne .*instance`. +// +// You cannot combine constraints on multiple fields using regular +// expressions. +func (c *InterconnectAttachmentsAggregatedListCall) Filter(filter string) *InterconnectAttachmentsAggregatedListCall { + c.urlParams_.Set("filter", filter) + return c +} + +// IncludeAllScopes sets the optional parameter "includeAllScopes": Indicates +// whether every visible scope for each scope type (zone, region, +// global) should be included in the response. For new resource types +// added +// after this field, the flag has no effect as new resource types will +// always +// include every visible scope for each scope type in response. For +// resource +// types which predate this field, if this flag is omitted or false, +// only +// scopes of the scope types where the resource type is expected to be +// found +// will be included. +func (c *InterconnectAttachmentsAggregatedListCall) IncludeAllScopes(includeAllScopes bool) *InterconnectAttachmentsAggregatedListCall { + c.urlParams_.Set("includeAllScopes", fmt.Sprint(includeAllScopes)) + 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 *InterconnectAttachmentsAggregatedListCall) MaxResults(maxResults int64) *InterconnectAttachmentsAggregatedListCall { + 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 *InterconnectAttachmentsAggregatedListCall) OrderBy(orderBy string) *InterconnectAttachmentsAggregatedListCall { + 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 *InterconnectAttachmentsAggregatedListCall) PageToken(pageToken string) *InterconnectAttachmentsAggregatedListCall { + c.urlParams_.Set("pageToken", pageToken) + return c +} + +// ReturnPartialSuccess sets the optional parameter "returnPartialSuccess": +// Opt-in for partial success behavior which provides partial results in +// case +// of failure. The default value is false. +// +// For example, when partial success behavior is enabled, aggregatedList for +// a +// single zone scope either returns all resources in the zone or no +// resources, +// with an error code. +func (c *InterconnectAttachmentsAggregatedListCall) ReturnPartialSuccess(returnPartialSuccess bool) *InterconnectAttachmentsAggregatedListCall { + c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess)) + return c +} + +// ServiceProjectNumber sets the optional parameter "serviceProjectNumber": The +// Shared VPC service project id or service project number for which +// aggregated list request is invoked for subnetworks list-usable api. +func (c *InterconnectAttachmentsAggregatedListCall) ServiceProjectNumber(serviceProjectNumber int64) *InterconnectAttachmentsAggregatedListCall { + c.urlParams_.Set("serviceProjectNumber", fmt.Sprint(serviceProjectNumber)) + return c +} + +// Fields allows partial responses to be retrieved. See +// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more +// details. +func (c *InterconnectAttachmentsAggregatedListCall) Fields(s ...googleapi.Field) *InterconnectAttachmentsAggregatedListCall { + c.urlParams_.Set("fields", googleapi.CombineFields(s)) + return c +} + +// IfNoneMatch sets an 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. +func (c *InterconnectAttachmentsAggregatedListCall) IfNoneMatch(entityTag string) *InterconnectAttachmentsAggregatedListCall { + c.ifNoneMatch_ = entityTag + return c +} + +// Context sets the context to be used in this call's Do method. +func (c *InterconnectAttachmentsAggregatedListCall) Context(ctx context.Context) *InterconnectAttachmentsAggregatedListCall { + c.ctx_ = ctx + return c +} + +// Header returns a http.Header that can be modified by the caller to add +// headers to the request. +func (c *InterconnectAttachmentsAggregatedListCall) Header() http.Header { + if c.header_ == nil { + c.header_ = make(http.Header) + } + return c.header_ +} + +func (c *InterconnectAttachmentsAggregatedListCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) + if c.ifNoneMatch_ != "" { + reqHeaders.Set("If-None-Match", c.ifNoneMatch_) + } + c.urlParams_.Set("alt", alt) + c.urlParams_.Set("prettyPrint", "false") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/aggregated/interconnectAttachments") + urls += "?" + c.urlParams_.Encode() + req, err := http.NewRequest("GET", urls, nil) + if err != nil { + return nil, err + } + req.Header = reqHeaders + googleapi.Expand(req.URL, map[string]string{ + "project": c.project, + }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.interconnectAttachments.aggregatedList", "request", internallog.HTTPRequest(req, nil)) + return gensupport.SendRequest(c.ctx_, c.s.client, req) +} + +// Do executes the "compute.interconnectAttachments.aggregatedList" call. +// Any non-2xx status code is an error. Response headers are in either +// *InterconnectAttachmentAggregatedList.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 *InterconnectAttachmentsAggregatedListCall) Do(opts ...googleapi.CallOption) (*InterconnectAttachmentAggregatedList, 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, gensupport.WrapError(&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, gensupport.WrapError(err) + } + ret := &InterconnectAttachmentAggregatedList{ + ServerResponse: googleapi.ServerResponse{ + Header: res.Header, + HTTPStatusCode: res.StatusCode, + }, + } + target := &ret + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { + return nil, err + } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.interconnectAttachments.aggregatedList", "response", internallog.HTTPResponse(res, b)) + return ret, nil +} + +// 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 *InterconnectAttachmentsAggregatedListCall) Pages(ctx context.Context, f func(*InterconnectAttachmentAggregatedList) error) error { + c.ctx_ = ctx + defer c.PageToken(c.urlParams_.Get("pageToken")) + 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) + } +} + +type InterconnectAttachmentsDeleteCall struct { + s *Service + project string + region string + interconnectAttachment string + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header +} + +// Delete: Deletes the specified interconnect attachment. +// +// - interconnectAttachment: Name of the interconnect attachment to delete. +// - project: Project ID for this request. +// - region: Name of the region for this request. +func (r *InterconnectAttachmentsService) Delete(project string, region string, interconnectAttachment string) *InterconnectAttachmentsDeleteCall { + c := &InterconnectAttachmentsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)} + c.project = project + c.region = region + c.interconnectAttachment = interconnectAttachment + 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 *InterconnectAttachmentsDeleteCall) RequestId(requestId string) *InterconnectAttachmentsDeleteCall { + 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 +// details. +func (c *InterconnectAttachmentsDeleteCall) Fields(s ...googleapi.Field) *InterconnectAttachmentsDeleteCall { + c.urlParams_.Set("fields", googleapi.CombineFields(s)) + return c +} + +// Context sets the context to be used in this call's Do method. +func (c *InterconnectAttachmentsDeleteCall) Context(ctx context.Context) *InterconnectAttachmentsDeleteCall { + c.ctx_ = ctx + return c +} + +// Header returns a http.Header that can be modified by the caller to add +// headers to the request. +func (c *InterconnectAttachmentsDeleteCall) Header() http.Header { + if c.header_ == nil { + c.header_ = make(http.Header) + } + return c.header_ +} + +func (c *InterconnectAttachmentsDeleteCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) + c.urlParams_.Set("alt", alt) + c.urlParams_.Set("prettyPrint", "false") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/interconnectAttachments/{interconnectAttachment}") + urls += "?" + c.urlParams_.Encode() + req, err := http.NewRequest("DELETE", urls, nil) + if err != nil { + return nil, err + } + req.Header = reqHeaders + googleapi.Expand(req.URL, map[string]string{ + "project": c.project, + "region": c.region, + "interconnectAttachment": c.interconnectAttachment, + }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.interconnectAttachments.delete", "request", internallog.HTTPRequest(req, nil)) + return gensupport.SendRequest(c.ctx_, c.s.client, req) +} + +// Do executes the "compute.interconnectAttachments.delete" call. +// 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 *InterconnectAttachmentsDeleteCall) 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, gensupport.WrapError(&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, gensupport.WrapError(err) + } + ret := &Operation{ + ServerResponse: googleapi.ServerResponse{ + Header: res.Header, + HTTPStatusCode: res.StatusCode, + }, + } + target := &ret + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { + return nil, err + } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.interconnectAttachments.delete", "response", internallog.HTTPResponse(res, b)) + return ret, nil +} + +type InterconnectAttachmentsGetCall struct { + s *Service + project string + region string + interconnectAttachment string + urlParams_ gensupport.URLParams + ifNoneMatch_ string + ctx_ context.Context + header_ http.Header +} + +// Get: Returns the specified interconnect attachment. +// +// - interconnectAttachment: Name of the interconnect attachment to return. +// - project: Project ID for this request. +// - region: Name of the region for this request. +func (r *InterconnectAttachmentsService) Get(project string, region string, interconnectAttachment string) *InterconnectAttachmentsGetCall { + c := &InterconnectAttachmentsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)} + c.project = project + c.region = region + c.interconnectAttachment = interconnectAttachment + return c +} + +// Fields allows partial responses to be retrieved. See +// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more +// details. +func (c *InterconnectAttachmentsGetCall) Fields(s ...googleapi.Field) *InterconnectAttachmentsGetCall { + c.urlParams_.Set("fields", googleapi.CombineFields(s)) + return c +} + +// IfNoneMatch sets an 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. +func (c *InterconnectAttachmentsGetCall) IfNoneMatch(entityTag string) *InterconnectAttachmentsGetCall { + c.ifNoneMatch_ = entityTag + return c +} + +// Context sets the context to be used in this call's Do method. +func (c *InterconnectAttachmentsGetCall) Context(ctx context.Context) *InterconnectAttachmentsGetCall { + c.ctx_ = ctx + return c +} + +// Header returns a http.Header that can be modified by the caller to add +// headers to the request. +func (c *InterconnectAttachmentsGetCall) Header() http.Header { + if c.header_ == nil { + c.header_ = make(http.Header) + } + return c.header_ +} + +func (c *InterconnectAttachmentsGetCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) + if c.ifNoneMatch_ != "" { + reqHeaders.Set("If-None-Match", c.ifNoneMatch_) + } + c.urlParams_.Set("alt", alt) + c.urlParams_.Set("prettyPrint", "false") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/interconnectAttachments/{interconnectAttachment}") + urls += "?" + c.urlParams_.Encode() + req, err := http.NewRequest("GET", urls, nil) + if err != nil { + return nil, err + } + req.Header = reqHeaders + googleapi.Expand(req.URL, map[string]string{ + "project": c.project, + "region": c.region, + "interconnectAttachment": c.interconnectAttachment, + }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.interconnectAttachments.get", "request", internallog.HTTPRequest(req, nil)) + return gensupport.SendRequest(c.ctx_, c.s.client, req) +} + +// Do executes the "compute.interconnectAttachments.get" call. +// Any non-2xx status code is an error. Response headers are in either +// *InterconnectAttachment.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 *InterconnectAttachmentsGetCall) Do(opts ...googleapi.CallOption) (*InterconnectAttachment, 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, gensupport.WrapError(&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, gensupport.WrapError(err) + } + ret := &InterconnectAttachment{ + ServerResponse: googleapi.ServerResponse{ + Header: res.Header, + HTTPStatusCode: res.StatusCode, + }, + } + target := &ret + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { + return nil, err + } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.interconnectAttachments.get", "response", internallog.HTTPResponse(res, b)) + return ret, nil +} + +type InterconnectAttachmentsInsertCall struct { + s *Service + project string + region string + interconnectattachment *InterconnectAttachment + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header +} + +// Insert: Creates an InterconnectAttachment in the specified project using the +// data +// included in the request. +// +// - project: Project ID for this request. +// - region: Name of the region for this request. +func (r *InterconnectAttachmentsService) Insert(project string, region string, interconnectattachment *InterconnectAttachment) *InterconnectAttachmentsInsertCall { + c := &InterconnectAttachmentsInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)} + c.project = project + c.region = region + c.interconnectattachment = interconnectattachment + 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 *InterconnectAttachmentsInsertCall) RequestId(requestId string) *InterconnectAttachmentsInsertCall { + c.urlParams_.Set("requestId", requestId) + return c +} + +// ValidateOnly sets the optional parameter "validateOnly": If true, the +// request will not be committed. +func (c *InterconnectAttachmentsInsertCall) ValidateOnly(validateOnly bool) *InterconnectAttachmentsInsertCall { + c.urlParams_.Set("validateOnly", fmt.Sprint(validateOnly)) + return c +} + +// Fields allows partial responses to be retrieved. See +// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more +// details. +func (c *InterconnectAttachmentsInsertCall) Fields(s ...googleapi.Field) *InterconnectAttachmentsInsertCall { + c.urlParams_.Set("fields", googleapi.CombineFields(s)) + return c +} + +// Context sets the context to be used in this call's Do method. +func (c *InterconnectAttachmentsInsertCall) Context(ctx context.Context) *InterconnectAttachmentsInsertCall { + c.ctx_ = ctx + return c +} + +// Header returns a http.Header that can be modified by the caller to add +// headers to the request. +func (c *InterconnectAttachmentsInsertCall) Header() http.Header { + if c.header_ == nil { + c.header_ = make(http.Header) + } + return c.header_ +} + +func (c *InterconnectAttachmentsInsertCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) + body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.interconnectattachment) + if err != nil { + return nil, err + } + c.urlParams_.Set("alt", alt) + c.urlParams_.Set("prettyPrint", "false") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/interconnectAttachments") + urls += "?" + c.urlParams_.Encode() + req, err := http.NewRequest("POST", urls, body) + if err != nil { + return nil, err + } + req.Header = reqHeaders + googleapi.Expand(req.URL, map[string]string{ + "project": c.project, + "region": c.region, + }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.interconnectAttachments.insert", "request", internallog.HTTPRequest(req, body.Bytes())) + return gensupport.SendRequest(c.ctx_, c.s.client, req) +} + +// Do executes the "compute.interconnectAttachments.insert" call. +// 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 *InterconnectAttachmentsInsertCall) 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, gensupport.WrapError(&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, gensupport.WrapError(err) + } + ret := &Operation{ + ServerResponse: googleapi.ServerResponse{ + Header: res.Header, + HTTPStatusCode: res.StatusCode, + }, + } + target := &ret + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { + return nil, err + } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.interconnectAttachments.insert", "response", internallog.HTTPResponse(res, b)) + return ret, nil +} + +type InterconnectAttachmentsListCall struct { + s *Service + project string + region string + urlParams_ gensupport.URLParams + ifNoneMatch_ string + ctx_ context.Context + header_ http.Header +} + +// List: Retrieves the list of interconnect attachments contained within +// the specified region. +// +// - project: Project ID for this request. +// - region: Name of the region for this request. +func (r *InterconnectAttachmentsService) List(project string, region string) *InterconnectAttachmentsListCall { + c := &InterconnectAttachmentsListCall{s: r.s, urlParams_: make(gensupport.URLParams)} + c.project = project + c.region = region + return c +} + +// Filter sets the optional parameter "filter": A filter expression that +// filters resources listed in the response. Most +// Compute resources support two types of filter expressions: +// expressions that support regular expressions and expressions that follow +// API improvement proposal AIP-160. +// These two types of filter expressions cannot be mixed in one request. +// +// If you want to use AIP-160, your expression must specify the field name, +// an +// operator, and the value that you want to use for filtering. The value +// must be a string, a number, or a boolean. The 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`. +// +// The `:*` comparison can be used to test whether a key has been defined. +// For example, to find all objects with `owner` label +// use: +// ``` +// labels.owner:* +// ``` +// +// 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 onresource 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) +// ``` +// +// If you want to use a regular expression, use the `eq` (equal) or `ne` +// (not equal) operator against a single un-parenthesized expression with +// or +// without quotes or against multiple parenthesized expressions. +// Examples: +// +// `fieldname eq unquoted literal` +// `fieldname eq 'single quoted literal'` +// `fieldname eq "double quoted literal" +// `(fieldname1 eq literal) (fieldname2 ne "literal")` +// +// The literal value is interpreted as a regular expression using GoogleRE2 +// library syntax. +// The literal value must match the entire field. +// +// For example, to filter for instances that do not end with name +// "instance", +// you would use `name ne .*instance`. +// +// You cannot combine constraints on multiple fields using regular +// expressions. +func (c *InterconnectAttachmentsListCall) Filter(filter string) *InterconnectAttachmentsListCall { + 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 *InterconnectAttachmentsListCall) MaxResults(maxResults int64) *InterconnectAttachmentsListCall { + 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 *InterconnectAttachmentsListCall) OrderBy(orderBy string) *InterconnectAttachmentsListCall { + 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 *InterconnectAttachmentsListCall) PageToken(pageToken string) *InterconnectAttachmentsListCall { + c.urlParams_.Set("pageToken", pageToken) + return c +} + +// ReturnPartialSuccess sets the optional parameter "returnPartialSuccess": +// Opt-in for partial success behavior which provides partial results in +// case +// of failure. The default value is false. +// +// For example, when partial success behavior is enabled, aggregatedList for +// a +// single zone scope either returns all resources in the zone or no +// resources, +// with an error code. +func (c *InterconnectAttachmentsListCall) ReturnPartialSuccess(returnPartialSuccess bool) *InterconnectAttachmentsListCall { + c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess)) + return c +} + +// Fields allows partial responses to be retrieved. See +// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more +// details. +func (c *InterconnectAttachmentsListCall) Fields(s ...googleapi.Field) *InterconnectAttachmentsListCall { + c.urlParams_.Set("fields", googleapi.CombineFields(s)) + return c +} + +// IfNoneMatch sets an 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. +func (c *InterconnectAttachmentsListCall) IfNoneMatch(entityTag string) *InterconnectAttachmentsListCall { + c.ifNoneMatch_ = entityTag + return c +} + +// Context sets the context to be used in this call's Do method. +func (c *InterconnectAttachmentsListCall) Context(ctx context.Context) *InterconnectAttachmentsListCall { + c.ctx_ = ctx + return c +} + +// Header returns a http.Header that can be modified by the caller to add +// headers to the request. +func (c *InterconnectAttachmentsListCall) Header() http.Header { + if c.header_ == nil { + c.header_ = make(http.Header) + } + return c.header_ +} + +func (c *InterconnectAttachmentsListCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) + if c.ifNoneMatch_ != "" { + reqHeaders.Set("If-None-Match", c.ifNoneMatch_) + } + c.urlParams_.Set("alt", alt) + c.urlParams_.Set("prettyPrint", "false") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/interconnectAttachments") + urls += "?" + c.urlParams_.Encode() + req, err := http.NewRequest("GET", urls, nil) + if err != nil { + return nil, err + } + req.Header = reqHeaders + googleapi.Expand(req.URL, map[string]string{ + "project": c.project, + "region": c.region, + }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.interconnectAttachments.list", "request", internallog.HTTPRequest(req, nil)) + return gensupport.SendRequest(c.ctx_, c.s.client, req) +} + +// Do executes the "compute.interconnectAttachments.list" call. +// Any non-2xx status code is an error. Response headers are in either +// *InterconnectAttachmentList.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 *InterconnectAttachmentsListCall) Do(opts ...googleapi.CallOption) (*InterconnectAttachmentList, 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, gensupport.WrapError(&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, gensupport.WrapError(err) + } + ret := &InterconnectAttachmentList{ + ServerResponse: googleapi.ServerResponse{ + Header: res.Header, + HTTPStatusCode: res.StatusCode, + }, + } + target := &ret + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { + return nil, err + } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.interconnectAttachments.list", "response", internallog.HTTPResponse(res, b)) + return ret, nil +} + +// 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 *InterconnectAttachmentsListCall) Pages(ctx context.Context, f func(*InterconnectAttachmentList) error) error { + c.ctx_ = ctx + defer c.PageToken(c.urlParams_.Get("pageToken")) + 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) + } +} + +type InterconnectAttachmentsPatchCall struct { + s *Service + project string + region string + interconnectAttachment string + interconnectattachment *InterconnectAttachment + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header +} + +// Patch: Updates the specified interconnect attachment with the data included +// in the +// request. This method supportsPATCH +// semantics and uses theJSON merge +// patch format and processing rules. +// +// - interconnectAttachment: Name of the interconnect attachment to patch. +// - project: Project ID for this request. +// - region: Name of the region scoping this request. +func (r *InterconnectAttachmentsService) Patch(project string, region string, interconnectAttachment string, interconnectattachment *InterconnectAttachment) *InterconnectAttachmentsPatchCall { + c := &InterconnectAttachmentsPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)} + c.project = project + c.region = region + c.interconnectAttachment = interconnectAttachment + c.interconnectattachment = interconnectattachment + 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 *InterconnectAttachmentsPatchCall) RequestId(requestId string) *InterconnectAttachmentsPatchCall { + 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 +// details. +func (c *InterconnectAttachmentsPatchCall) Fields(s ...googleapi.Field) *InterconnectAttachmentsPatchCall { + c.urlParams_.Set("fields", googleapi.CombineFields(s)) + return c +} + +// Context sets the context to be used in this call's Do method. +func (c *InterconnectAttachmentsPatchCall) Context(ctx context.Context) *InterconnectAttachmentsPatchCall { + c.ctx_ = ctx + return c +} + +// Header returns a http.Header that can be modified by the caller to add +// headers to the request. +func (c *InterconnectAttachmentsPatchCall) Header() http.Header { + if c.header_ == nil { + c.header_ = make(http.Header) + } + return c.header_ +} + +func (c *InterconnectAttachmentsPatchCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) + body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.interconnectattachment) + if err != nil { + return nil, err + } + c.urlParams_.Set("alt", alt) + c.urlParams_.Set("prettyPrint", "false") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/interconnectAttachments/{interconnectAttachment}") + urls += "?" + c.urlParams_.Encode() + req, err := http.NewRequest("PATCH", urls, body) + if err != nil { + return nil, err + } + req.Header = reqHeaders + googleapi.Expand(req.URL, map[string]string{ + "project": c.project, + "region": c.region, + "interconnectAttachment": c.interconnectAttachment, + }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.interconnectAttachments.patch", "request", internallog.HTTPRequest(req, body.Bytes())) + return gensupport.SendRequest(c.ctx_, c.s.client, req) +} + +// Do executes the "compute.interconnectAttachments.patch" call. +// 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 *InterconnectAttachmentsPatchCall) 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, gensupport.WrapError(&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, gensupport.WrapError(err) + } + ret := &Operation{ + ServerResponse: googleapi.ServerResponse{ + Header: res.Header, + HTTPStatusCode: res.StatusCode, + }, + } + target := &ret + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { + return nil, err + } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.interconnectAttachments.patch", "response", internallog.HTTPResponse(res, b)) + return ret, nil +} + +type InterconnectAttachmentsSetLabelsCall struct { + s *Service + project string + region string + resource string + regionsetlabelsrequest *RegionSetLabelsRequest + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header +} + +// SetLabels: Sets the labels on an InterconnectAttachment. To learn more about +// labels, +// read the Labeling +// Resources documentation. +// +// - project: Project ID for this request. +// - region: The region for this request. +// - resource: Name or id of the resource for this request. +func (r *InterconnectAttachmentsService) SetLabels(project string, region string, resource string, regionsetlabelsrequest *RegionSetLabelsRequest) *InterconnectAttachmentsSetLabelsCall { + c := &InterconnectAttachmentsSetLabelsCall{s: r.s, urlParams_: make(gensupport.URLParams)} + c.project = project + c.region = region + c.resource = resource + c.regionsetlabelsrequest = regionsetlabelsrequest + 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 *InterconnectAttachmentsSetLabelsCall) RequestId(requestId string) *InterconnectAttachmentsSetLabelsCall { + 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 +// details. +func (c *InterconnectAttachmentsSetLabelsCall) Fields(s ...googleapi.Field) *InterconnectAttachmentsSetLabelsCall { + c.urlParams_.Set("fields", googleapi.CombineFields(s)) + return c +} + +// Context sets the context to be used in this call's Do method. +func (c *InterconnectAttachmentsSetLabelsCall) Context(ctx context.Context) *InterconnectAttachmentsSetLabelsCall { + c.ctx_ = ctx + return c +} + +// Header returns a http.Header that can be modified by the caller to add +// headers to the request. +func (c *InterconnectAttachmentsSetLabelsCall) Header() http.Header { + if c.header_ == nil { + c.header_ = make(http.Header) + } + return c.header_ +} + +func (c *InterconnectAttachmentsSetLabelsCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) + body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.regionsetlabelsrequest) + if err != nil { + return nil, err + } + c.urlParams_.Set("alt", alt) + c.urlParams_.Set("prettyPrint", "false") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/interconnectAttachments/{resource}/setLabels") + urls += "?" + c.urlParams_.Encode() + req, err := http.NewRequest("POST", urls, body) + if err != nil { + return nil, err + } + req.Header = reqHeaders + googleapi.Expand(req.URL, map[string]string{ + "project": c.project, + "region": c.region, + "resource": c.resource, + }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.interconnectAttachments.setLabels", "request", internallog.HTTPRequest(req, body.Bytes())) + return gensupport.SendRequest(c.ctx_, c.s.client, req) +} + +// Do executes the "compute.interconnectAttachments.setLabels" call. +// 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 *InterconnectAttachmentsSetLabelsCall) 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, gensupport.WrapError(&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, gensupport.WrapError(err) + } + ret := &Operation{ + ServerResponse: googleapi.ServerResponse{ + Header: res.Header, + HTTPStatusCode: res.StatusCode, + }, + } + target := &ret + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { + return nil, err + } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.interconnectAttachments.setLabels", "response", internallog.HTTPResponse(res, b)) + return ret, nil +} + +type InterconnectGroupsCreateMembersCall struct { + s *Service + project string + interconnectGroup string + interconnectgroupscreatemembersrequest *InterconnectGroupsCreateMembersRequest + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header +} + +// CreateMembers: Create Interconnects with redundancy by creating them in a +// specified +// interconnect group. +// +// - interconnectGroup: Name of the group resource to create members for. +// - project: Project ID for this request. +func (r *InterconnectGroupsService) CreateMembers(project string, interconnectGroup string, interconnectgroupscreatemembersrequest *InterconnectGroupsCreateMembersRequest) *InterconnectGroupsCreateMembersCall { + c := &InterconnectGroupsCreateMembersCall{s: r.s, urlParams_: make(gensupport.URLParams)} + c.project = project + c.interconnectGroup = interconnectGroup + c.interconnectgroupscreatemembersrequest = interconnectgroupscreatemembersrequest + return c +} + +// Fields allows partial responses to be retrieved. See +// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more +// details. +func (c *InterconnectGroupsCreateMembersCall) Fields(s ...googleapi.Field) *InterconnectGroupsCreateMembersCall { + c.urlParams_.Set("fields", googleapi.CombineFields(s)) + return c +} + +// Context sets the context to be used in this call's Do method. +func (c *InterconnectGroupsCreateMembersCall) Context(ctx context.Context) *InterconnectGroupsCreateMembersCall { + c.ctx_ = ctx + return c +} + +// Header returns a http.Header that can be modified by the caller to add +// headers to the request. +func (c *InterconnectGroupsCreateMembersCall) Header() http.Header { + if c.header_ == nil { + c.header_ = make(http.Header) + } + return c.header_ +} + +func (c *InterconnectGroupsCreateMembersCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) + body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.interconnectgroupscreatemembersrequest) + if err != nil { + return nil, err + } + c.urlParams_.Set("alt", alt) + c.urlParams_.Set("prettyPrint", "false") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/interconnectGroups/{interconnectGroup}/createMembers") + urls += "?" + c.urlParams_.Encode() + req, err := http.NewRequest("POST", urls, body) + if err != nil { + return nil, err + } + req.Header = reqHeaders + googleapi.Expand(req.URL, map[string]string{ + "project": c.project, + "interconnectGroup": c.interconnectGroup, + }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.interconnectGroups.createMembers", "request", internallog.HTTPRequest(req, body.Bytes())) + return gensupport.SendRequest(c.ctx_, c.s.client, req) +} + +// Do executes the "compute.interconnectGroups.createMembers" call. +// 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 *InterconnectGroupsCreateMembersCall) 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, gensupport.WrapError(&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, gensupport.WrapError(err) + } + ret := &Operation{ + ServerResponse: googleapi.ServerResponse{ + Header: res.Header, + HTTPStatusCode: res.StatusCode, + }, + } + target := &ret + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { + return nil, err + } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.interconnectGroups.createMembers", "response", internallog.HTTPResponse(res, b)) + return ret, nil +} + +type InterconnectGroupsDeleteCall struct { + s *Service + project string + interconnectGroup string + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header +} + +// Delete: Deletes the specified InterconnectGroup in the given scope +// +// - interconnectGroup: Name of the InterconnectGroup resource to delete. +// - project: Project ID for this request. +func (r *InterconnectGroupsService) Delete(project string, interconnectGroup string) *InterconnectGroupsDeleteCall { + c := &InterconnectGroupsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)} + c.project = project + c.interconnectGroup = interconnectGroup + 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). +// end_interface: MixerMutationRequestBuilder +func (c *InterconnectGroupsDeleteCall) RequestId(requestId string) *InterconnectGroupsDeleteCall { + 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 +// details. +func (c *InterconnectGroupsDeleteCall) Fields(s ...googleapi.Field) *InterconnectGroupsDeleteCall { + c.urlParams_.Set("fields", googleapi.CombineFields(s)) + return c +} + +// Context sets the context to be used in this call's Do method. +func (c *InterconnectGroupsDeleteCall) Context(ctx context.Context) *InterconnectGroupsDeleteCall { + c.ctx_ = ctx + return c +} + +// Header returns a http.Header that can be modified by the caller to add +// headers to the request. +func (c *InterconnectGroupsDeleteCall) Header() http.Header { + if c.header_ == nil { + c.header_ = make(http.Header) + } + return c.header_ +} + +func (c *InterconnectGroupsDeleteCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) + c.urlParams_.Set("alt", alt) + c.urlParams_.Set("prettyPrint", "false") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/interconnectGroups/{interconnectGroup}") + urls += "?" + c.urlParams_.Encode() + req, err := http.NewRequest("DELETE", urls, nil) + if err != nil { + return nil, err + } + req.Header = reqHeaders + googleapi.Expand(req.URL, map[string]string{ + "project": c.project, + "interconnectGroup": c.interconnectGroup, + }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.interconnectGroups.delete", "request", internallog.HTTPRequest(req, nil)) + return gensupport.SendRequest(c.ctx_, c.s.client, req) +} + +// Do executes the "compute.interconnectGroups.delete" call. +// 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 *InterconnectGroupsDeleteCall) 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, gensupport.WrapError(&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, gensupport.WrapError(err) + } + ret := &Operation{ + ServerResponse: googleapi.ServerResponse{ + Header: res.Header, + HTTPStatusCode: res.StatusCode, + }, + } + target := &ret + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { + return nil, err + } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.interconnectGroups.delete", "response", internallog.HTTPResponse(res, b)) + return ret, nil +} + +type InterconnectGroupsGetCall struct { + s *Service + project string + interconnectGroup string + urlParams_ gensupport.URLParams + ifNoneMatch_ string + ctx_ context.Context + header_ http.Header +} + +// Get: Returns the specified InterconnectGroup resource in the given scope. +// +// - interconnectGroup: Name of the InterconnectGroup resource to return. +// - project: Project ID for this request. +func (r *InterconnectGroupsService) Get(project string, interconnectGroup string) *InterconnectGroupsGetCall { + c := &InterconnectGroupsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)} + c.project = project + c.interconnectGroup = interconnectGroup + return c +} + +// Fields allows partial responses to be retrieved. See +// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more +// details. +func (c *InterconnectGroupsGetCall) Fields(s ...googleapi.Field) *InterconnectGroupsGetCall { + c.urlParams_.Set("fields", googleapi.CombineFields(s)) + return c +} + +// IfNoneMatch sets an 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. +func (c *InterconnectGroupsGetCall) IfNoneMatch(entityTag string) *InterconnectGroupsGetCall { + c.ifNoneMatch_ = entityTag + return c +} + +// Context sets the context to be used in this call's Do method. +func (c *InterconnectGroupsGetCall) Context(ctx context.Context) *InterconnectGroupsGetCall { + c.ctx_ = ctx + return c +} + +// Header returns a http.Header that can be modified by the caller to add +// headers to the request. +func (c *InterconnectGroupsGetCall) Header() http.Header { + if c.header_ == nil { + c.header_ = make(http.Header) + } + return c.header_ +} + +func (c *InterconnectGroupsGetCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) + if c.ifNoneMatch_ != "" { + reqHeaders.Set("If-None-Match", c.ifNoneMatch_) + } + c.urlParams_.Set("alt", alt) + c.urlParams_.Set("prettyPrint", "false") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/interconnectGroups/{interconnectGroup}") + urls += "?" + c.urlParams_.Encode() + req, err := http.NewRequest("GET", urls, nil) + if err != nil { + return nil, err + } + req.Header = reqHeaders + googleapi.Expand(req.URL, map[string]string{ + "project": c.project, + "interconnectGroup": c.interconnectGroup, + }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.interconnectGroups.get", "request", internallog.HTTPRequest(req, nil)) + return gensupport.SendRequest(c.ctx_, c.s.client, req) +} + +// Do executes the "compute.interconnectGroups.get" call. +// Any non-2xx status code is an error. Response headers are in either +// *InterconnectGroup.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 *InterconnectGroupsGetCall) Do(opts ...googleapi.CallOption) (*InterconnectGroup, 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, gensupport.WrapError(&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, gensupport.WrapError(err) + } + ret := &InterconnectGroup{ + ServerResponse: googleapi.ServerResponse{ + Header: res.Header, + HTTPStatusCode: res.StatusCode, + }, + } + target := &ret + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { + return nil, err + } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.interconnectGroups.get", "response", internallog.HTTPResponse(res, b)) + return ret, nil +} + +type InterconnectGroupsGetIamPolicyCall struct { + s *Service + project string + resource string + urlParams_ gensupport.URLParams + ifNoneMatch_ string + ctx_ context.Context + header_ http.Header +} + +// GetIamPolicy: Gets the access control policy for a resource. May be empty if +// no such +// policy or resource exists. +// // - project: Project ID for this request. -// - zone: The name of the zone for this request. -func (r *InstancesService) GetShieldedInstanceIdentity(project string, zone string, instance string) *InstancesGetShieldedInstanceIdentityCall { - c := &InstancesGetShieldedInstanceIdentityCall{s: r.s, urlParams_: make(gensupport.URLParams)} +// - resource: Name or id of the resource for this request. +func (r *InterconnectGroupsService) GetIamPolicy(project string, resource string) *InterconnectGroupsGetIamPolicyCall { + c := &InterconnectGroupsGetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project - c.zone = zone - c.instance = instance + c.resource = resource + return c +} + +// OptionsRequestedPolicyVersion sets the optional parameter +// "optionsRequestedPolicyVersion": Requested IAM Policy version. +func (c *InterconnectGroupsGetIamPolicyCall) OptionsRequestedPolicyVersion(optionsRequestedPolicyVersion int64) *InterconnectGroupsGetIamPolicyCall { + c.urlParams_.Set("optionsRequestedPolicyVersion", fmt.Sprint(optionsRequestedPolicyVersion)) return c } // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *InstancesGetShieldedInstanceIdentityCall) Fields(s ...googleapi.Field) *InstancesGetShieldedInstanceIdentityCall { +func (c *InterconnectGroupsGetIamPolicyCall) Fields(s ...googleapi.Field) *InterconnectGroupsGetIamPolicyCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } @@ -31080,56 +51143,698 @@ func (c *InstancesGetShieldedInstanceIdentityCall) Fields(s ...googleapi.Field) // IfNoneMatch sets an 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. -func (c *InstancesGetShieldedInstanceIdentityCall) IfNoneMatch(entityTag string) *InstancesGetShieldedInstanceIdentityCall { +func (c *InterconnectGroupsGetIamPolicyCall) IfNoneMatch(entityTag string) *InterconnectGroupsGetIamPolicyCall { + c.ifNoneMatch_ = entityTag + return c +} + +// Context sets the context to be used in this call's Do method. +func (c *InterconnectGroupsGetIamPolicyCall) Context(ctx context.Context) *InterconnectGroupsGetIamPolicyCall { + c.ctx_ = ctx + return c +} + +// Header returns a http.Header that can be modified by the caller to add +// headers to the request. +func (c *InterconnectGroupsGetIamPolicyCall) Header() http.Header { + if c.header_ == nil { + c.header_ = make(http.Header) + } + return c.header_ +} + +func (c *InterconnectGroupsGetIamPolicyCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) + if c.ifNoneMatch_ != "" { + reqHeaders.Set("If-None-Match", c.ifNoneMatch_) + } + c.urlParams_.Set("alt", alt) + c.urlParams_.Set("prettyPrint", "false") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/interconnectGroups/{resource}/getIamPolicy") + urls += "?" + c.urlParams_.Encode() + req, err := http.NewRequest("GET", urls, nil) + if err != nil { + return nil, err + } + req.Header = reqHeaders + googleapi.Expand(req.URL, map[string]string{ + "project": c.project, + "resource": c.resource, + }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.interconnectGroups.getIamPolicy", "request", internallog.HTTPRequest(req, nil)) + return gensupport.SendRequest(c.ctx_, c.s.client, req) +} + +// Do executes the "compute.interconnectGroups.getIamPolicy" call. +// Any non-2xx status code is an error. Response headers are in either +// *Policy.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 *InterconnectGroupsGetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, 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, gensupport.WrapError(&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, gensupport.WrapError(err) + } + ret := &Policy{ + ServerResponse: googleapi.ServerResponse{ + Header: res.Header, + HTTPStatusCode: res.StatusCode, + }, + } + target := &ret + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { + return nil, err + } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.interconnectGroups.getIamPolicy", "response", internallog.HTTPResponse(res, b)) + return ret, nil +} + +type InterconnectGroupsGetOperationalStatusCall struct { + s *Service + project string + interconnectGroup string + urlParams_ gensupport.URLParams + ifNoneMatch_ string + ctx_ context.Context + header_ http.Header +} + +// GetOperationalStatus: Returns the interconnectStatuses for the +// specified +// InterconnectGroup. +// +// - interconnectGroup: Name of the interconnectGroup resource to query. +// - project: Project ID for this request. +func (r *InterconnectGroupsService) GetOperationalStatus(project string, interconnectGroup string) *InterconnectGroupsGetOperationalStatusCall { + c := &InterconnectGroupsGetOperationalStatusCall{s: r.s, urlParams_: make(gensupport.URLParams)} + c.project = project + c.interconnectGroup = interconnectGroup + return c +} + +// Fields allows partial responses to be retrieved. See +// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more +// details. +func (c *InterconnectGroupsGetOperationalStatusCall) Fields(s ...googleapi.Field) *InterconnectGroupsGetOperationalStatusCall { + c.urlParams_.Set("fields", googleapi.CombineFields(s)) + return c +} + +// IfNoneMatch sets an 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. +func (c *InterconnectGroupsGetOperationalStatusCall) IfNoneMatch(entityTag string) *InterconnectGroupsGetOperationalStatusCall { + c.ifNoneMatch_ = entityTag + return c +} + +// Context sets the context to be used in this call's Do method. +func (c *InterconnectGroupsGetOperationalStatusCall) Context(ctx context.Context) *InterconnectGroupsGetOperationalStatusCall { + c.ctx_ = ctx + return c +} + +// Header returns a http.Header that can be modified by the caller to add +// headers to the request. +func (c *InterconnectGroupsGetOperationalStatusCall) Header() http.Header { + if c.header_ == nil { + c.header_ = make(http.Header) + } + return c.header_ +} + +func (c *InterconnectGroupsGetOperationalStatusCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) + if c.ifNoneMatch_ != "" { + reqHeaders.Set("If-None-Match", c.ifNoneMatch_) + } + c.urlParams_.Set("alt", alt) + c.urlParams_.Set("prettyPrint", "false") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/interconnectGroups/{interconnectGroup}/getOperationalStatus") + urls += "?" + c.urlParams_.Encode() + req, err := http.NewRequest("GET", urls, nil) + if err != nil { + return nil, err + } + req.Header = reqHeaders + googleapi.Expand(req.URL, map[string]string{ + "project": c.project, + "interconnectGroup": c.interconnectGroup, + }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.interconnectGroups.getOperationalStatus", "request", internallog.HTTPRequest(req, nil)) + return gensupport.SendRequest(c.ctx_, c.s.client, req) +} + +// Do executes the "compute.interconnectGroups.getOperationalStatus" call. +// Any non-2xx status code is an error. Response headers are in either +// *InterconnectGroupsGetOperationalStatusResponse.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 *InterconnectGroupsGetOperationalStatusCall) Do(opts ...googleapi.CallOption) (*InterconnectGroupsGetOperationalStatusResponse, 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, gensupport.WrapError(&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, gensupport.WrapError(err) + } + ret := &InterconnectGroupsGetOperationalStatusResponse{ + ServerResponse: googleapi.ServerResponse{ + Header: res.Header, + HTTPStatusCode: res.StatusCode, + }, + } + target := &ret + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { + return nil, err + } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.interconnectGroups.getOperationalStatus", "response", internallog.HTTPResponse(res, b)) + return ret, nil +} + +type InterconnectGroupsInsertCall struct { + s *Service + project string + interconnectgroup *InterconnectGroup + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header +} + +// Insert: Creates a InterconnectGroup in the specified project in the given +// scope +// using the parameters that are included in the request. +// +// - project: Project ID for this request. +func (r *InterconnectGroupsService) Insert(project string, interconnectgroup *InterconnectGroup) *InterconnectGroupsInsertCall { + c := &InterconnectGroupsInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)} + c.project = project + c.interconnectgroup = interconnectgroup + 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). +// end_interface: MixerMutationRequestBuilder +func (c *InterconnectGroupsInsertCall) RequestId(requestId string) *InterconnectGroupsInsertCall { + 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 +// details. +func (c *InterconnectGroupsInsertCall) Fields(s ...googleapi.Field) *InterconnectGroupsInsertCall { + c.urlParams_.Set("fields", googleapi.CombineFields(s)) + return c +} + +// Context sets the context to be used in this call's Do method. +func (c *InterconnectGroupsInsertCall) Context(ctx context.Context) *InterconnectGroupsInsertCall { + c.ctx_ = ctx + return c +} + +// Header returns a http.Header that can be modified by the caller to add +// headers to the request. +func (c *InterconnectGroupsInsertCall) Header() http.Header { + if c.header_ == nil { + c.header_ = make(http.Header) + } + return c.header_ +} + +func (c *InterconnectGroupsInsertCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) + body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.interconnectgroup) + if err != nil { + return nil, err + } + c.urlParams_.Set("alt", alt) + c.urlParams_.Set("prettyPrint", "false") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/interconnectGroups") + urls += "?" + c.urlParams_.Encode() + req, err := http.NewRequest("POST", urls, body) + if err != nil { + return nil, err + } + req.Header = reqHeaders + googleapi.Expand(req.URL, map[string]string{ + "project": c.project, + }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.interconnectGroups.insert", "request", internallog.HTTPRequest(req, body.Bytes())) + return gensupport.SendRequest(c.ctx_, c.s.client, req) +} + +// Do executes the "compute.interconnectGroups.insert" call. +// 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 *InterconnectGroupsInsertCall) 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, gensupport.WrapError(&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, gensupport.WrapError(err) + } + ret := &Operation{ + ServerResponse: googleapi.ServerResponse{ + Header: res.Header, + HTTPStatusCode: res.StatusCode, + }, + } + target := &ret + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { + return nil, err + } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.interconnectGroups.insert", "response", internallog.HTTPResponse(res, b)) + return ret, nil +} + +type InterconnectGroupsListCall struct { + s *Service + project string + urlParams_ gensupport.URLParams + ifNoneMatch_ string + ctx_ context.Context + header_ http.Header +} + +// List: Lists the InterconnectGroups for a project in the given scope. +// +// - project: Project ID for this request. +func (r *InterconnectGroupsService) List(project string) *InterconnectGroupsListCall { + c := &InterconnectGroupsListCall{s: r.s, urlParams_: make(gensupport.URLParams)} + c.project = project + return c +} + +// Filter sets the optional parameter "filter": A filter expression that +// filters resources listed in the response. Most +// Compute resources support two types of filter expressions: +// expressions that support regular expressions and expressions that follow +// API improvement proposal AIP-160. +// These two types of filter expressions cannot be mixed in one request. +// +// If you want to use AIP-160, your expression must specify the field name, +// an +// operator, and the value that you want to use for filtering. The value +// must be a string, a number, or a boolean. The 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`. +// +// The `:*` comparison can be used to test whether a key has been defined. +// For example, to find all objects with `owner` label +// use: +// ``` +// labels.owner:* +// ``` +// +// 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 onresource 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) +// ``` +// +// If you want to use a regular expression, use the `eq` (equal) or `ne` +// (not equal) operator against a single un-parenthesized expression with +// or +// without quotes or against multiple parenthesized expressions. +// Examples: +// +// `fieldname eq unquoted literal` +// `fieldname eq 'single quoted literal'` +// `fieldname eq "double quoted literal" +// `(fieldname1 eq literal) (fieldname2 ne "literal")` +// +// The literal value is interpreted as a regular expression using GoogleRE2 +// library syntax. +// The literal value must match the entire field. +// +// For example, to filter for instances that do not end with name +// "instance", +// you would use `name ne .*instance`. +// +// You cannot combine constraints on multiple fields using regular +// expressions. +func (c *InterconnectGroupsListCall) Filter(filter string) *InterconnectGroupsListCall { + 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 *InterconnectGroupsListCall) MaxResults(maxResults int64) *InterconnectGroupsListCall { + 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 *InterconnectGroupsListCall) OrderBy(orderBy string) *InterconnectGroupsListCall { + 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 *InterconnectGroupsListCall) PageToken(pageToken string) *InterconnectGroupsListCall { + c.urlParams_.Set("pageToken", pageToken) + return c +} + +// ReturnPartialSuccess sets the optional parameter "returnPartialSuccess": +// Opt-in for partial success behavior which provides partial results in +// case +// of failure. The default value is false. +// +// For example, when partial success behavior is enabled, aggregatedList for +// a +// single zone scope either returns all resources in the zone or no +// resources, +// with an error code. +func (c *InterconnectGroupsListCall) ReturnPartialSuccess(returnPartialSuccess bool) *InterconnectGroupsListCall { + c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess)) + return c +} + +// Fields allows partial responses to be retrieved. See +// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more +// details. +func (c *InterconnectGroupsListCall) Fields(s ...googleapi.Field) *InterconnectGroupsListCall { + c.urlParams_.Set("fields", googleapi.CombineFields(s)) + return c +} + +// IfNoneMatch sets an 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. +func (c *InterconnectGroupsListCall) IfNoneMatch(entityTag string) *InterconnectGroupsListCall { c.ifNoneMatch_ = entityTag return c } // Context sets the context to be used in this call's Do method. -func (c *InstancesGetShieldedInstanceIdentityCall) Context(ctx context.Context) *InstancesGetShieldedInstanceIdentityCall { +func (c *InterconnectGroupsListCall) Context(ctx context.Context) *InterconnectGroupsListCall { + c.ctx_ = ctx + return c +} + +// Header returns a http.Header that can be modified by the caller to add +// headers to the request. +func (c *InterconnectGroupsListCall) Header() http.Header { + if c.header_ == nil { + c.header_ = make(http.Header) + } + return c.header_ +} + +func (c *InterconnectGroupsListCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) + if c.ifNoneMatch_ != "" { + reqHeaders.Set("If-None-Match", c.ifNoneMatch_) + } + c.urlParams_.Set("alt", alt) + c.urlParams_.Set("prettyPrint", "false") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/interconnectGroups") + urls += "?" + c.urlParams_.Encode() + req, err := http.NewRequest("GET", urls, nil) + if err != nil { + return nil, err + } + req.Header = reqHeaders + googleapi.Expand(req.URL, map[string]string{ + "project": c.project, + }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.interconnectGroups.list", "request", internallog.HTTPRequest(req, nil)) + return gensupport.SendRequest(c.ctx_, c.s.client, req) +} + +// Do executes the "compute.interconnectGroups.list" call. +// Any non-2xx status code is an error. Response headers are in either +// *InterconnectGroupsListResponse.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 *InterconnectGroupsListCall) Do(opts ...googleapi.CallOption) (*InterconnectGroupsListResponse, 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, gensupport.WrapError(&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, gensupport.WrapError(err) + } + ret := &InterconnectGroupsListResponse{ + ServerResponse: googleapi.ServerResponse{ + Header: res.Header, + HTTPStatusCode: res.StatusCode, + }, + } + target := &ret + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { + return nil, err + } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.interconnectGroups.list", "response", internallog.HTTPResponse(res, b)) + return ret, nil +} + +// 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 *InterconnectGroupsListCall) Pages(ctx context.Context, f func(*InterconnectGroupsListResponse) error) error { + c.ctx_ = ctx + defer c.PageToken(c.urlParams_.Get("pageToken")) + 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) + } +} + +type InterconnectGroupsPatchCall struct { + s *Service + project string + interconnectGroup string + interconnectgroup *InterconnectGroup + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header +} + +// Patch: Patches the specified InterconnectGroup resource with the data +// included in +// the request. This method supports PATCH +// semantics and usesJSON merge +// patch format and processing rules. +// +// - interconnectGroup: Name of the InterconnectGroup resource to patch. +// - project: Project ID for this request. +func (r *InterconnectGroupsService) Patch(project string, interconnectGroup string, interconnectgroup *InterconnectGroup) *InterconnectGroupsPatchCall { + c := &InterconnectGroupsPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)} + c.project = project + c.interconnectGroup = interconnectGroup + c.interconnectgroup = interconnectgroup + 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). +// end_interface: MixerMutationRequestBuilder +func (c *InterconnectGroupsPatchCall) RequestId(requestId string) *InterconnectGroupsPatchCall { + c.urlParams_.Set("requestId", requestId) + return c +} + +// UpdateMask sets the optional parameter "updateMask": The list of fields to +// update. +func (c *InterconnectGroupsPatchCall) UpdateMask(updateMask string) *InterconnectGroupsPatchCall { + c.urlParams_.Set("updateMask", updateMask) + return c +} + +// Fields allows partial responses to be retrieved. See +// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more +// details. +func (c *InterconnectGroupsPatchCall) Fields(s ...googleapi.Field) *InterconnectGroupsPatchCall { + c.urlParams_.Set("fields", googleapi.CombineFields(s)) + return c +} + +// Context sets the context to be used in this call's Do method. +func (c *InterconnectGroupsPatchCall) Context(ctx context.Context) *InterconnectGroupsPatchCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *InstancesGetShieldedInstanceIdentityCall) Header() http.Header { +func (c *InterconnectGroupsPatchCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *InstancesGetShieldedInstanceIdentityCall) doRequest(alt string) (*http.Response, error) { - reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) - if c.ifNoneMatch_ != "" { - reqHeaders.Set("If-None-Match", c.ifNoneMatch_) +func (c *InterconnectGroupsPatchCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) + body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.interconnectgroup) + if err != nil { + return nil, err } - var body io.Reader = nil c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instances/{instance}/getShieldedInstanceIdentity") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/interconnectGroups/{interconnectGroup}") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("GET", urls, body) + req, err := http.NewRequest("PATCH", urls, body) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "zone": c.zone, - "instance": c.instance, + "project": c.project, + "interconnectGroup": c.interconnectGroup, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.interconnectGroups.patch", "request", internallog.HTTPRequest(req, body.Bytes())) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.instances.getShieldedInstanceIdentity" call. +// Do executes the "compute.interconnectGroups.patch" call. // Any non-2xx status code is an error. Response headers are in either -// *ShieldedInstanceIdentity.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 *InstancesGetShieldedInstanceIdentityCall) Do(opts ...googleapi.CallOption) (*ShieldedInstanceIdentity, error) { +// *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 *InterconnectGroupsPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -31148,116 +51853,77 @@ func (c *InstancesGetShieldedInstanceIdentityCall) Do(opts ...googleapi.CallOpti if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } - ret := &ShieldedInstanceIdentity{ + ret := &Operation{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.interconnectGroups.patch", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type InstancesInsertCall struct { - s *Service - project string - zone string - instance *Instance - urlParams_ gensupport.URLParams - ctx_ context.Context - header_ http.Header +type InterconnectGroupsSetIamPolicyCall struct { + s *Service + project string + resource string + globalsetpolicyrequest *GlobalSetPolicyRequest + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header } -// Insert: Creates an instance resource in the specified project using the data -// included in the request. +// SetIamPolicy: Sets the access control policy on the specified +// resource. +// Replaces any existing policy. // // - project: Project ID for this request. -// - zone: The name of the zone for this request. -func (r *InstancesService) Insert(project string, zone string, instance *Instance) *InstancesInsertCall { - c := &InstancesInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)} +// - resource: Name or id of the resource for this request. +func (r *InterconnectGroupsService) SetIamPolicy(project string, resource string, globalsetpolicyrequest *GlobalSetPolicyRequest) *InterconnectGroupsSetIamPolicyCall { + c := &InterconnectGroupsSetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project - c.zone = zone - c.instance = instance - 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 *InstancesInsertCall) RequestId(requestId string) *InstancesInsertCall { - c.urlParams_.Set("requestId", requestId) - return c -} - -// SourceInstanceTemplate sets the optional parameter "sourceInstanceTemplate": -// Specifies instance template to create the instance. This field is optional. -// It can be a full or partial URL. For example, the following are all valid -// URLs to an instance template: - -// https://www.googleapis.com/compute/v1/projects/project -// /global/instanceTemplates/instanceTemplate - -// projects/project/global/instanceTemplates/instanceTemplate - -// global/instanceTemplates/instanceTemplate -func (c *InstancesInsertCall) SourceInstanceTemplate(sourceInstanceTemplate string) *InstancesInsertCall { - c.urlParams_.Set("sourceInstanceTemplate", sourceInstanceTemplate) - return c -} - -// SourceMachineImage sets the optional parameter "sourceMachineImage": -// Specifies the machine image to use to create the instance. This field is -// optional. It can be a full or partial URL. For example, the following are -// all valid URLs to a machine image: - -// https://www.googleapis.com/compute/v1/projects/project/global/global -// /machineImages/machineImage - -// projects/project/global/global/machineImages/machineImage - -// global/machineImages/machineImage -func (c *InstancesInsertCall) SourceMachineImage(sourceMachineImage string) *InstancesInsertCall { - c.urlParams_.Set("sourceMachineImage", sourceMachineImage) + c.resource = resource + c.globalsetpolicyrequest = globalsetpolicyrequest return c } // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *InstancesInsertCall) Fields(s ...googleapi.Field) *InstancesInsertCall { +func (c *InterconnectGroupsSetIamPolicyCall) Fields(s ...googleapi.Field) *InterconnectGroupsSetIamPolicyCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } // Context sets the context to be used in this call's Do method. -func (c *InstancesInsertCall) Context(ctx context.Context) *InstancesInsertCall { +func (c *InterconnectGroupsSetIamPolicyCall) Context(ctx context.Context) *InterconnectGroupsSetIamPolicyCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *InstancesInsertCall) Header() http.Header { +func (c *InterconnectGroupsSetIamPolicyCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *InstancesInsertCall) doRequest(alt string) (*http.Response, error) { +func (c *InterconnectGroupsSetIamPolicyCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) - var body io.Reader = nil - body, err := googleapi.WithoutDataWrapper.JSONReader(c.instance) + body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.globalsetpolicyrequest) if err != nil { return nil, err } c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instances") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/interconnectGroups/{resource}/setIamPolicy") urls += "?" + c.urlParams_.Encode() req, err := http.NewRequest("POST", urls, body) if err != nil { @@ -31265,18 +51931,19 @@ func (c *InstancesInsertCall) doRequest(alt string) (*http.Response, error) { } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "zone": c.zone, + "project": c.project, + "resource": c.resource, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.interconnectGroups.setIamPolicy", "request", internallog.HTTPRequest(req, body.Bytes())) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.instances.insert" call. +// Do executes the "compute.interconnectGroups.setIamPolicy" call. // 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 +// *Policy.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 *InstancesInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) { +func (c *InterconnectGroupsSetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -31295,122 +51962,157 @@ func (c *InstancesInsertCall) Do(opts ...googleapi.CallOption) (*Operation, erro if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } - ret := &Operation{ + ret := &Policy{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.interconnectGroups.setIamPolicy", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type InstancesListCall struct { - s *Service - project string - zone string - urlParams_ gensupport.URLParams - ifNoneMatch_ string - ctx_ context.Context - header_ http.Header +type InterconnectGroupsTestIamPermissionsCall struct { + s *Service + project string + resource string + testpermissionsrequest *TestPermissionsRequest + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header } -// List: Retrieves the list of instances contained within the specified zone. +// TestIamPermissions: Returns permissions that a caller has on the specified +// resource. // // - project: Project ID for this request. -// - zone: The name of the zone for this request. -func (r *InstancesService) List(project string, zone string) *InstancesListCall { - c := &InstancesListCall{s: r.s, urlParams_: make(gensupport.URLParams)} +// - resource: Name or id of the resource for this request. +func (r *InterconnectGroupsService) TestIamPermissions(project string, resource string, testpermissionsrequest *TestPermissionsRequest) *InterconnectGroupsTestIamPermissionsCall { + c := &InterconnectGroupsTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project - c.zone = zone + c.resource = resource + c.testpermissionsrequest = testpermissionsrequest return c } -// Filter sets the optional parameter "filter": A filter expression that -// filters resources listed in the response. Most Compute resources support two -// types of filter expressions: expressions that support regular expressions -// and expressions that follow API improvement proposal AIP-160. These two -// types of filter expressions cannot be mixed in one request. If you want to -// use AIP-160, your expression must specify the field name, an operator, and -// the value that you want to use for filtering. The value must be a string, a -// number, or a boolean. The 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`. The `:*` comparison can be used to test whether a key has -// been defined. For example, to find all objects with `owner` label use: ``` -// labels.owner:* ``` 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) ``` If you want to use a regular -// expression, use the `eq` (equal) or `ne` (not equal) operator against a -// single un-parenthesized expression with or without quotes or against -// multiple parenthesized expressions. Examples: `fieldname eq unquoted -// literal` `fieldname eq 'single quoted literal'` `fieldname eq "double quoted -// literal" `(fieldname1 eq literal) (fieldname2 ne "literal")` The literal -// value is interpreted as a regular expression using Google RE2 library -// syntax. The literal value must match the entire field. For example, to -// filter for instances that do not end with name "instance", you would use -// `name ne .*instance`. You cannot combine constraints on multiple fields -// using regular expressions. -func (c *InstancesListCall) Filter(filter string) *InstancesListCall { - c.urlParams_.Set("filter", filter) +// Fields allows partial responses to be retrieved. See +// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more +// details. +func (c *InterconnectGroupsTestIamPermissionsCall) Fields(s ...googleapi.Field) *InterconnectGroupsTestIamPermissionsCall { + c.urlParams_.Set("fields", googleapi.CombineFields(s)) 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 *InstancesListCall) MaxResults(maxResults int64) *InstancesListCall { - c.urlParams_.Set("maxResults", fmt.Sprint(maxResults)) +// Context sets the context to be used in this call's Do method. +func (c *InterconnectGroupsTestIamPermissionsCall) Context(ctx context.Context) *InterconnectGroupsTestIamPermissionsCall { + c.ctx_ = ctx 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 *InstancesListCall) OrderBy(orderBy string) *InstancesListCall { - c.urlParams_.Set("orderBy", orderBy) - return c +// Header returns a http.Header that can be modified by the caller to add +// headers to the request. +func (c *InterconnectGroupsTestIamPermissionsCall) Header() http.Header { + if c.header_ == nil { + c.header_ = make(http.Header) + } + return c.header_ } -// 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 *InstancesListCall) PageToken(pageToken string) *InstancesListCall { - c.urlParams_.Set("pageToken", pageToken) - return c +func (c *InterconnectGroupsTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) + body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.testpermissionsrequest) + if err != nil { + return nil, err + } + c.urlParams_.Set("alt", alt) + c.urlParams_.Set("prettyPrint", "false") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/interconnectGroups/{resource}/testIamPermissions") + urls += "?" + c.urlParams_.Encode() + req, err := http.NewRequest("POST", urls, body) + if err != nil { + return nil, err + } + req.Header = reqHeaders + googleapi.Expand(req.URL, map[string]string{ + "project": c.project, + "resource": c.resource, + }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.interconnectGroups.testIamPermissions", "request", internallog.HTTPRequest(req, body.Bytes())) + return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// ReturnPartialSuccess sets the optional parameter "returnPartialSuccess": -// Opt-in for partial success behavior which provides partial results in case -// of failure. The default value is false. For example, when partial success -// behavior is enabled, aggregatedList for a single zone scope either returns -// all resources in the zone or no resources, with an error code. -func (c *InstancesListCall) ReturnPartialSuccess(returnPartialSuccess bool) *InstancesListCall { - c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess)) +// Do executes the "compute.interconnectGroups.testIamPermissions" call. +// Any non-2xx status code is an error. Response headers are in either +// *TestPermissionsResponse.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 *InterconnectGroupsTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, 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, gensupport.WrapError(&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, gensupport.WrapError(err) + } + ret := &TestPermissionsResponse{ + ServerResponse: googleapi.ServerResponse{ + Header: res.Header, + HTTPStatusCode: res.StatusCode, + }, + } + target := &ret + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { + return nil, err + } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.interconnectGroups.testIamPermissions", "response", internallog.HTTPResponse(res, b)) + return ret, nil +} + +type InterconnectLocationsGetCall struct { + s *Service + project string + interconnectLocation string + urlParams_ gensupport.URLParams + ifNoneMatch_ string + ctx_ context.Context + header_ http.Header +} + +// Get: Returns the details for the specified interconnect location. Gets a +// list of +// available interconnect locations by making a list() request. +// +// - interconnectLocation: Name of the interconnect location to return. +// - project: Project ID for this request. +func (r *InterconnectLocationsService) Get(project string, interconnectLocation string) *InterconnectLocationsGetCall { + c := &InterconnectLocationsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)} + c.project = project + c.interconnectLocation = interconnectLocation return c } // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *InstancesListCall) Fields(s ...googleapi.Field) *InstancesListCall { +func (c *InterconnectLocationsGetCall) Fields(s ...googleapi.Field) *InterconnectLocationsGetCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } @@ -31418,54 +52120,55 @@ func (c *InstancesListCall) Fields(s ...googleapi.Field) *InstancesListCall { // IfNoneMatch sets an 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. -func (c *InstancesListCall) IfNoneMatch(entityTag string) *InstancesListCall { +func (c *InterconnectLocationsGetCall) IfNoneMatch(entityTag string) *InterconnectLocationsGetCall { c.ifNoneMatch_ = entityTag return c } // Context sets the context to be used in this call's Do method. -func (c *InstancesListCall) Context(ctx context.Context) *InstancesListCall { +func (c *InterconnectLocationsGetCall) Context(ctx context.Context) *InterconnectLocationsGetCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *InstancesListCall) Header() http.Header { +func (c *InterconnectLocationsGetCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *InstancesListCall) doRequest(alt string) (*http.Response, error) { +func (c *InterconnectLocationsGetCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) if c.ifNoneMatch_ != "" { reqHeaders.Set("If-None-Match", c.ifNoneMatch_) } - var body io.Reader = nil c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instances") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/interconnectLocations/{interconnectLocation}") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("GET", urls, body) + req, err := http.NewRequest("GET", urls, nil) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "zone": c.zone, + "project": c.project, + "interconnectLocation": c.interconnectLocation, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.interconnectLocations.get", "request", internallog.HTTPRequest(req, nil)) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.instances.list" call. +// Do executes the "compute.interconnectLocations.get" call. // Any non-2xx status code is an error. Response headers are in either -// *InstanceList.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 *InstancesListCall) Do(opts ...googleapi.CallOption) (*InstanceList, error) { +// *InterconnectLocation.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 *InterconnectLocationsGetCall) Do(opts ...googleapi.CallOption) (*InterconnectLocation, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -31484,143 +52187,165 @@ func (c *InstancesListCall) Do(opts ...googleapi.CallOption) (*InstanceList, err if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } - ret := &InstanceList{ + ret := &InterconnectLocation{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.interconnectLocations.get", "response", internallog.HTTPResponse(res, b)) return ret, nil } -// 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 *InstancesListCall) Pages(ctx context.Context, f func(*InstanceList) error) error { - c.ctx_ = ctx - defer c.PageToken(c.urlParams_.Get("pageToken")) - 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) - } -} - -type InstancesListReferrersCall struct { +type InterconnectLocationsListCall struct { s *Service project string - zone string - instance string urlParams_ gensupport.URLParams ifNoneMatch_ string ctx_ context.Context header_ http.Header } -// ListReferrers: Retrieves a list of resources that refer to the VM instance -// specified in the request. For example, if the VM instance is part of a -// managed or unmanaged instance group, the referrers list includes the -// instance group. For more information, read Viewing referrers to VM -// instances. +// List: Retrieves the list of interconnect locations available to the +// specified +// project. // -// - instance: Name of the target instance scoping this request, or '-' if the -// request should span over all instances in the container. -// - project: Project ID for this request. -// - zone: The name of the zone for this request. -func (r *InstancesService) ListReferrers(project string, zone string, instance string) *InstancesListReferrersCall { - c := &InstancesListReferrersCall{s: r.s, urlParams_: make(gensupport.URLParams)} +// - project: Project ID for this request. +func (r *InterconnectLocationsService) List(project string) *InterconnectLocationsListCall { + c := &InterconnectLocationsListCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project - c.zone = zone - c.instance = instance return c } // Filter sets the optional parameter "filter": A filter expression that -// filters resources listed in the response. Most Compute resources support two -// types of filter expressions: expressions that support regular expressions -// and expressions that follow API improvement proposal AIP-160. These two -// types of filter expressions cannot be mixed in one request. If you want to -// use AIP-160, your expression must specify the field name, an operator, and -// the value that you want to use for filtering. The value must be a string, a -// number, or a boolean. The 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`. The `:*` comparison can be used to test whether a key has -// been defined. For example, to find all objects with `owner` label use: ``` -// labels.owner:* ``` 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) ``` If you want to use a regular -// expression, use the `eq` (equal) or `ne` (not equal) operator against a -// single un-parenthesized expression with or without quotes or against -// multiple parenthesized expressions. Examples: `fieldname eq unquoted -// literal` `fieldname eq 'single quoted literal'` `fieldname eq "double quoted -// literal" `(fieldname1 eq literal) (fieldname2 ne "literal")` The literal -// value is interpreted as a regular expression using Google RE2 library -// syntax. The literal value must match the entire field. For example, to -// filter for instances that do not end with name "instance", you would use -// `name ne .*instance`. You cannot combine constraints on multiple fields -// using regular expressions. -func (c *InstancesListReferrersCall) Filter(filter string) *InstancesListReferrersCall { +// filters resources listed in the response. Most +// Compute resources support two types of filter expressions: +// expressions that support regular expressions and expressions that follow +// API improvement proposal AIP-160. +// These two types of filter expressions cannot be mixed in one request. +// +// If you want to use AIP-160, your expression must specify the field name, +// an +// operator, and the value that you want to use for filtering. The value +// must be a string, a number, or a boolean. The 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`. +// +// The `:*` comparison can be used to test whether a key has been defined. +// For example, to find all objects with `owner` label +// use: +// ``` +// labels.owner:* +// ``` +// +// 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 onresource 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) +// ``` +// +// If you want to use a regular expression, use the `eq` (equal) or `ne` +// (not equal) operator against a single un-parenthesized expression with +// or +// without quotes or against multiple parenthesized expressions. +// Examples: +// +// `fieldname eq unquoted literal` +// `fieldname eq 'single quoted literal'` +// `fieldname eq "double quoted literal" +// `(fieldname1 eq literal) (fieldname2 ne "literal")` +// +// The literal value is interpreted as a regular expression using GoogleRE2 +// library syntax. +// The literal value must match the entire field. +// +// For example, to filter for instances that do not end with name +// "instance", +// you would use `name ne .*instance`. +// +// You cannot combine constraints on multiple fields using regular +// expressions. +func (c *InterconnectLocationsListCall) Filter(filter string) *InterconnectLocationsListCall { 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 *InstancesListReferrersCall) MaxResults(maxResults int64) *InstancesListReferrersCall { +// 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 *InterconnectLocationsListCall) MaxResults(maxResults int64) *InterconnectLocationsListCall { 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 *InstancesListReferrersCall) OrderBy(orderBy string) *InstancesListReferrersCall { +// 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 *InterconnectLocationsListCall) OrderBy(orderBy string) *InterconnectLocationsListCall { 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 *InstancesListReferrersCall) PageToken(pageToken string) *InstancesListReferrersCall { +// use. Set `pageToken` to the +// `nextPageToken` returned by a previous list request to get +// the next page of results. +func (c *InterconnectLocationsListCall) PageToken(pageToken string) *InterconnectLocationsListCall { c.urlParams_.Set("pageToken", pageToken) return c } // ReturnPartialSuccess sets the optional parameter "returnPartialSuccess": -// Opt-in for partial success behavior which provides partial results in case -// of failure. The default value is false. For example, when partial success -// behavior is enabled, aggregatedList for a single zone scope either returns -// all resources in the zone or no resources, with an error code. -func (c *InstancesListReferrersCall) ReturnPartialSuccess(returnPartialSuccess bool) *InstancesListReferrersCall { +// Opt-in for partial success behavior which provides partial results in +// case +// of failure. The default value is false. +// +// For example, when partial success behavior is enabled, aggregatedList for +// a +// single zone scope either returns all resources in the zone or no +// resources, +// with an error code. +func (c *InterconnectLocationsListCall) ReturnPartialSuccess(returnPartialSuccess bool) *InterconnectLocationsListCall { c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess)) return c } @@ -31628,7 +52353,7 @@ func (c *InstancesListReferrersCall) ReturnPartialSuccess(returnPartialSuccess b // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *InstancesListReferrersCall) Fields(s ...googleapi.Field) *InstancesListReferrersCall { +func (c *InterconnectLocationsListCall) Fields(s ...googleapi.Field) *InterconnectLocationsListCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } @@ -31636,56 +52361,54 @@ func (c *InstancesListReferrersCall) Fields(s ...googleapi.Field) *InstancesList // IfNoneMatch sets an 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. -func (c *InstancesListReferrersCall) IfNoneMatch(entityTag string) *InstancesListReferrersCall { +func (c *InterconnectLocationsListCall) IfNoneMatch(entityTag string) *InterconnectLocationsListCall { c.ifNoneMatch_ = entityTag return c } // Context sets the context to be used in this call's Do method. -func (c *InstancesListReferrersCall) Context(ctx context.Context) *InstancesListReferrersCall { +func (c *InterconnectLocationsListCall) Context(ctx context.Context) *InterconnectLocationsListCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *InstancesListReferrersCall) Header() http.Header { +func (c *InterconnectLocationsListCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *InstancesListReferrersCall) doRequest(alt string) (*http.Response, error) { +func (c *InterconnectLocationsListCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) if c.ifNoneMatch_ != "" { reqHeaders.Set("If-None-Match", c.ifNoneMatch_) } - var body io.Reader = nil c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instances/{instance}/referrers") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/interconnectLocations") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("GET", urls, body) + req, err := http.NewRequest("GET", urls, nil) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "zone": c.zone, - "instance": c.instance, + "project": c.project, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.interconnectLocations.list", "request", internallog.HTTPRequest(req, nil)) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.instances.listReferrers" call. +// Do executes the "compute.interconnectLocations.list" call. // Any non-2xx status code is an error. Response headers are in either -// *InstanceListReferrers.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 *InstancesListReferrersCall) Do(opts ...googleapi.CallOption) (*InstanceListReferrers, error) { +// *InterconnectLocationList.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 *InterconnectLocationsListCall) Do(opts ...googleapi.CallOption) (*InterconnectLocationList, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -31704,23 +52427,25 @@ func (c *InstancesListReferrersCall) Do(opts ...googleapi.CallOption) (*Instance if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } - ret := &InstanceListReferrers{ + ret := &InterconnectLocationList{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.interconnectLocations.list", "response", internallog.HTTPResponse(res, b)) return ret, nil } // 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 *InstancesListReferrersCall) Pages(ctx context.Context, f func(*InstanceListReferrers) error) error { +func (c *InterconnectLocationsListCall) Pages(ctx context.Context, f func(*InterconnectLocationList) error) error { c.ctx_ = ctx defer c.PageToken(c.urlParams_.Get("pageToken")) for { @@ -31738,93 +52463,90 @@ func (c *InstancesListReferrersCall) Pages(ctx context.Context, f func(*Instance } } -type InstancesPerformMaintenanceCall struct { - s *Service - project string - zone string - instance string - urlParams_ gensupport.URLParams - ctx_ context.Context - header_ http.Header +type InterconnectRemoteLocationsGetCall struct { + s *Service + project string + interconnectRemoteLocation string + urlParams_ gensupport.URLParams + ifNoneMatch_ string + ctx_ context.Context + header_ http.Header } -// PerformMaintenance: Perform a manual maintenance on the instance. +// Get: Returns the details for the specified interconnect remote location. +// Gets a +// list of available interconnect remote locations by making alist() request. // -// - instance: Name of the instance scoping this request. -// - project: Project ID for this request. -// - zone: The name of the zone for this request. -func (r *InstancesService) PerformMaintenance(project string, zone string, instance string) *InstancesPerformMaintenanceCall { - c := &InstancesPerformMaintenanceCall{s: r.s, urlParams_: make(gensupport.URLParams)} +// - interconnectRemoteLocation: Name of the interconnect remote location to +// return. +// - project: Project ID for this request. +func (r *InterconnectRemoteLocationsService) Get(project string, interconnectRemoteLocation string) *InterconnectRemoteLocationsGetCall { + c := &InterconnectRemoteLocationsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project - c.zone = zone - c.instance = instance - 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 *InstancesPerformMaintenanceCall) RequestId(requestId string) *InstancesPerformMaintenanceCall { - c.urlParams_.Set("requestId", requestId) + c.interconnectRemoteLocation = interconnectRemoteLocation return c } // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *InstancesPerformMaintenanceCall) Fields(s ...googleapi.Field) *InstancesPerformMaintenanceCall { +func (c *InterconnectRemoteLocationsGetCall) Fields(s ...googleapi.Field) *InterconnectRemoteLocationsGetCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } +// IfNoneMatch sets an 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. +func (c *InterconnectRemoteLocationsGetCall) IfNoneMatch(entityTag string) *InterconnectRemoteLocationsGetCall { + c.ifNoneMatch_ = entityTag + return c +} + // Context sets the context to be used in this call's Do method. -func (c *InstancesPerformMaintenanceCall) Context(ctx context.Context) *InstancesPerformMaintenanceCall { +func (c *InterconnectRemoteLocationsGetCall) Context(ctx context.Context) *InterconnectRemoteLocationsGetCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *InstancesPerformMaintenanceCall) Header() http.Header { +func (c *InterconnectRemoteLocationsGetCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *InstancesPerformMaintenanceCall) doRequest(alt string) (*http.Response, error) { +func (c *InterconnectRemoteLocationsGetCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) - var body io.Reader = nil + if c.ifNoneMatch_ != "" { + reqHeaders.Set("If-None-Match", c.ifNoneMatch_) + } c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instances/{instance}/performMaintenance") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/interconnectRemoteLocations/{interconnectRemoteLocation}") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("POST", urls, body) + req, err := http.NewRequest("GET", urls, nil) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "zone": c.zone, - "instance": c.instance, + "project": c.project, + "interconnectRemoteLocation": c.interconnectRemoteLocation, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.interconnectRemoteLocations.get", "request", internallog.HTTPRequest(req, nil)) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.instances.performMaintenance" call. +// Do executes the "compute.interconnectRemoteLocations.get" call. // 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 *InstancesPerformMaintenanceCall) Do(opts ...googleapi.CallOption) (*Operation, error) { +// *InterconnectRemoteLocation.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 *InterconnectRemoteLocationsGetCall) Do(opts ...googleapi.CallOption) (*InterconnectRemoteLocation, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -31843,112 +52565,228 @@ func (c *InstancesPerformMaintenanceCall) Do(opts ...googleapi.CallOption) (*Ope if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } - ret := &Operation{ + ret := &InterconnectRemoteLocation{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.interconnectRemoteLocations.get", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type InstancesRemoveResourcePoliciesCall struct { - s *Service - project string - zone string - instance string - instancesremoveresourcepoliciesrequest *InstancesRemoveResourcePoliciesRequest - urlParams_ gensupport.URLParams - ctx_ context.Context - header_ http.Header +type InterconnectRemoteLocationsListCall struct { + s *Service + project string + urlParams_ gensupport.URLParams + ifNoneMatch_ string + ctx_ context.Context + header_ http.Header } -// RemoveResourcePolicies: Removes resource policies from an instance. +// List: Retrieves the list of interconnect remote locations available to +// the +// specified project. // -// - instance: The instance name for this request. // - project: Project ID for this request. -// - zone: The name of the zone for this request. -func (r *InstancesService) RemoveResourcePolicies(project string, zone string, instance string, instancesremoveresourcepoliciesrequest *InstancesRemoveResourcePoliciesRequest) *InstancesRemoveResourcePoliciesCall { - c := &InstancesRemoveResourcePoliciesCall{s: r.s, urlParams_: make(gensupport.URLParams)} +func (r *InterconnectRemoteLocationsService) List(project string) *InterconnectRemoteLocationsListCall { + c := &InterconnectRemoteLocationsListCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project - c.zone = zone - c.instance = instance - c.instancesremoveresourcepoliciesrequest = instancesremoveresourcepoliciesrequest 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 *InstancesRemoveResourcePoliciesCall) RequestId(requestId string) *InstancesRemoveResourcePoliciesCall { - c.urlParams_.Set("requestId", requestId) +// Filter sets the optional parameter "filter": A filter expression that +// filters resources listed in the response. Most +// Compute resources support two types of filter expressions: +// expressions that support regular expressions and expressions that follow +// API improvement proposal AIP-160. +// These two types of filter expressions cannot be mixed in one request. +// +// If you want to use AIP-160, your expression must specify the field name, +// an +// operator, and the value that you want to use for filtering. The value +// must be a string, a number, or a boolean. The 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`. +// +// The `:*` comparison can be used to test whether a key has been defined. +// For example, to find all objects with `owner` label +// use: +// ``` +// labels.owner:* +// ``` +// +// 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 onresource 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) +// ``` +// +// If you want to use a regular expression, use the `eq` (equal) or `ne` +// (not equal) operator against a single un-parenthesized expression with +// or +// without quotes or against multiple parenthesized expressions. +// Examples: +// +// `fieldname eq unquoted literal` +// `fieldname eq 'single quoted literal'` +// `fieldname eq "double quoted literal" +// `(fieldname1 eq literal) (fieldname2 ne "literal")` +// +// The literal value is interpreted as a regular expression using GoogleRE2 +// library syntax. +// The literal value must match the entire field. +// +// For example, to filter for instances that do not end with name +// "instance", +// you would use `name ne .*instance`. +// +// You cannot combine constraints on multiple fields using regular +// expressions. +func (c *InterconnectRemoteLocationsListCall) Filter(filter string) *InterconnectRemoteLocationsListCall { + 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 *InterconnectRemoteLocationsListCall) MaxResults(maxResults int64) *InterconnectRemoteLocationsListCall { + 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 *InterconnectRemoteLocationsListCall) OrderBy(orderBy string) *InterconnectRemoteLocationsListCall { + 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 *InterconnectRemoteLocationsListCall) PageToken(pageToken string) *InterconnectRemoteLocationsListCall { + c.urlParams_.Set("pageToken", pageToken) + return c +} + +// ReturnPartialSuccess sets the optional parameter "returnPartialSuccess": +// Opt-in for partial success behavior which provides partial results in +// case +// of failure. The default value is false. +// +// For example, when partial success behavior is enabled, aggregatedList for +// a +// single zone scope either returns all resources in the zone or no +// resources, +// with an error code. +func (c *InterconnectRemoteLocationsListCall) ReturnPartialSuccess(returnPartialSuccess bool) *InterconnectRemoteLocationsListCall { + c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess)) return c } // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *InstancesRemoveResourcePoliciesCall) Fields(s ...googleapi.Field) *InstancesRemoveResourcePoliciesCall { +func (c *InterconnectRemoteLocationsListCall) Fields(s ...googleapi.Field) *InterconnectRemoteLocationsListCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } +// IfNoneMatch sets an 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. +func (c *InterconnectRemoteLocationsListCall) IfNoneMatch(entityTag string) *InterconnectRemoteLocationsListCall { + c.ifNoneMatch_ = entityTag + return c +} + // Context sets the context to be used in this call's Do method. -func (c *InstancesRemoveResourcePoliciesCall) Context(ctx context.Context) *InstancesRemoveResourcePoliciesCall { +func (c *InterconnectRemoteLocationsListCall) Context(ctx context.Context) *InterconnectRemoteLocationsListCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *InstancesRemoveResourcePoliciesCall) Header() http.Header { +func (c *InterconnectRemoteLocationsListCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *InstancesRemoveResourcePoliciesCall) doRequest(alt string) (*http.Response, error) { - reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) - var body io.Reader = nil - body, err := googleapi.WithoutDataWrapper.JSONReader(c.instancesremoveresourcepoliciesrequest) - if err != nil { - return nil, err +func (c *InterconnectRemoteLocationsListCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) + if c.ifNoneMatch_ != "" { + reqHeaders.Set("If-None-Match", c.ifNoneMatch_) } c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instances/{instance}/removeResourcePolicies") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/interconnectRemoteLocations") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("POST", urls, body) + req, err := http.NewRequest("GET", urls, nil) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "zone": c.zone, - "instance": c.instance, + "project": c.project, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.interconnectRemoteLocations.list", "request", internallog.HTTPRequest(req, nil)) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.instances.removeResourcePolicies" call. +// Do executes the "compute.interconnectRemoteLocations.list" call. // 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 *InstancesRemoveResourcePoliciesCall) Do(opts ...googleapi.CallOption) (*Operation, error) { +// *InterconnectRemoteLocationList.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 *InterconnectRemoteLocationsListCall) Do(opts ...googleapi.CallOption) (*InterconnectRemoteLocationList, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -31967,54 +52805,80 @@ func (c *InstancesRemoveResourcePoliciesCall) Do(opts ...googleapi.CallOption) ( if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } - ret := &Operation{ + ret := &InterconnectRemoteLocationList{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.interconnectRemoteLocations.list", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type InstancesResetCall struct { - s *Service - project string - zone string - instance string - urlParams_ gensupport.URLParams - ctx_ context.Context - header_ http.Header +// 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 *InterconnectRemoteLocationsListCall) Pages(ctx context.Context, f func(*InterconnectRemoteLocationList) error) error { + c.ctx_ = ctx + defer c.PageToken(c.urlParams_.Get("pageToken")) + 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) + } +} + +type InterconnectsDeleteCall struct { + s *Service + project string + interconnect string + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header } -// Reset: Performs a reset on the instance. This is a hard reset. The VM does -// not do a graceful shutdown. For more information, see Resetting an instance. +// Delete: Deletes the specified Interconnect. // -// - instance: Name of the instance scoping this request. +// - interconnect: Name of the interconnect to delete. // - project: Project ID for this request. -// - zone: The name of the zone for this request. -func (r *InstancesService) Reset(project string, zone string, instance string) *InstancesResetCall { - c := &InstancesResetCall{s: r.s, urlParams_: make(gensupport.URLParams)} +func (r *InterconnectsService) Delete(project string, interconnect string) *InterconnectsDeleteCall { + c := &InterconnectsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project - c.zone = zone - c.instance = instance + c.interconnect = interconnect 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 *InstancesResetCall) RequestId(requestId string) *InstancesResetCall { +// 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 *InterconnectsDeleteCall) RequestId(requestId string) *InterconnectsDeleteCall { c.urlParams_.Set("requestId", requestId) return c } @@ -32022,52 +52886,51 @@ func (c *InstancesResetCall) RequestId(requestId string) *InstancesResetCall { // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *InstancesResetCall) Fields(s ...googleapi.Field) *InstancesResetCall { +func (c *InterconnectsDeleteCall) Fields(s ...googleapi.Field) *InterconnectsDeleteCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } // Context sets the context to be used in this call's Do method. -func (c *InstancesResetCall) Context(ctx context.Context) *InstancesResetCall { +func (c *InterconnectsDeleteCall) Context(ctx context.Context) *InterconnectsDeleteCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *InstancesResetCall) Header() http.Header { +func (c *InterconnectsDeleteCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *InstancesResetCall) doRequest(alt string) (*http.Response, error) { +func (c *InterconnectsDeleteCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) - var body io.Reader = nil c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instances/{instance}/reset") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/interconnects/{interconnect}") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("POST", urls, body) + req, err := http.NewRequest("DELETE", urls, nil) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "zone": c.zone, - "instance": c.instance, + "project": c.project, + "interconnect": c.interconnect, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.interconnects.delete", "request", internallog.HTTPRequest(req, nil)) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.instances.reset" call. +// Do executes the "compute.interconnects.delete" call. // 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 *InstancesResetCall) Do(opts ...googleapi.CallOption) (*Operation, error) { +func (c *InterconnectsDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -32093,100 +52956,96 @@ func (c *InstancesResetCall) Do(opts ...googleapi.CallOption) (*Operation, error }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.interconnects.delete", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type InstancesResumeCall struct { - s *Service - project string - zone string - instance string - urlParams_ gensupport.URLParams - ctx_ context.Context - header_ http.Header +type InterconnectsGetCall struct { + s *Service + project string + interconnect string + urlParams_ gensupport.URLParams + ifNoneMatch_ string + ctx_ context.Context + header_ http.Header } -// Resume: Resumes an instance that was suspended using the instances().suspend -// method. +// Get: Returns the specified Interconnect. Get a list of available +// Interconnects +// by making a list() request. // -// - instance: Name of the instance resource to resume. +// - interconnect: Name of the interconnect to return. // - project: Project ID for this request. -// - zone: The name of the zone for this request. -func (r *InstancesService) Resume(project string, zone string, instance string) *InstancesResumeCall { - c := &InstancesResumeCall{s: r.s, urlParams_: make(gensupport.URLParams)} +func (r *InterconnectsService) Get(project string, interconnect string) *InterconnectsGetCall { + c := &InterconnectsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project - c.zone = zone - c.instance = instance - 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 *InstancesResumeCall) RequestId(requestId string) *InstancesResumeCall { - c.urlParams_.Set("requestId", requestId) + c.interconnect = interconnect return c } // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *InstancesResumeCall) Fields(s ...googleapi.Field) *InstancesResumeCall { +func (c *InterconnectsGetCall) Fields(s ...googleapi.Field) *InterconnectsGetCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } +// IfNoneMatch sets an 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. +func (c *InterconnectsGetCall) IfNoneMatch(entityTag string) *InterconnectsGetCall { + c.ifNoneMatch_ = entityTag + return c +} + // Context sets the context to be used in this call's Do method. -func (c *InstancesResumeCall) Context(ctx context.Context) *InstancesResumeCall { +func (c *InterconnectsGetCall) Context(ctx context.Context) *InterconnectsGetCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *InstancesResumeCall) Header() http.Header { +func (c *InterconnectsGetCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *InstancesResumeCall) doRequest(alt string) (*http.Response, error) { +func (c *InterconnectsGetCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) - var body io.Reader = nil + if c.ifNoneMatch_ != "" { + reqHeaders.Set("If-None-Match", c.ifNoneMatch_) + } c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instances/{instance}/resume") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/interconnects/{interconnect}") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("POST", urls, body) + req, err := http.NewRequest("GET", urls, nil) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "zone": c.zone, - "instance": c.instance, + "project": c.project, + "interconnect": c.interconnect, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.interconnects.get", "request", internallog.HTTPRequest(req, nil)) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.instances.resume" call. +// Do executes the "compute.interconnects.get" call. // 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 +// *Interconnect.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 *InstancesResumeCall) Do(opts ...googleapi.CallOption) (*Operation, error) { +func (c *InterconnectsGetCall) Do(opts ...googleapi.CallOption) (*Interconnect, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -32205,193 +53064,228 @@ func (c *InstancesResumeCall) Do(opts ...googleapi.CallOption) (*Operation, erro if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } - ret := &Operation{ + ret := &Interconnect{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.interconnects.get", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type InstancesSendDiagnosticInterruptCall struct { - s *Service - project string - zone string - instance string - urlParams_ gensupport.URLParams - ctx_ context.Context - header_ http.Header +type InterconnectsGetDiagnosticsCall struct { + s *Service + project string + interconnect string + urlParams_ gensupport.URLParams + ifNoneMatch_ string + ctx_ context.Context + header_ http.Header } -// SendDiagnosticInterrupt: Sends diagnostic interrupt to the instance. +// GetDiagnostics: Returns the interconnectDiagnostics for the +// specified +// Interconnect. // -// - instance: Name of the instance scoping this request. +// In the event of a +// global outage, do not use this API to make decisions about where to +// redirect your network traffic. +// +// Unlike a VLAN attachment, which is regional, a Cloud Interconnect +// connection is a global resource. A global outage can prevent this +// API from functioning properly. +// +// - interconnect: Name of the interconnect resource to query. // - project: Project ID for this request. -// - zone: The name of the zone for this request. -func (r *InstancesService) SendDiagnosticInterrupt(project string, zone string, instance string) *InstancesSendDiagnosticInterruptCall { - c := &InstancesSendDiagnosticInterruptCall{s: r.s, urlParams_: make(gensupport.URLParams)} +func (r *InterconnectsService) GetDiagnostics(project string, interconnect string) *InterconnectsGetDiagnosticsCall { + c := &InterconnectsGetDiagnosticsCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project - c.zone = zone - c.instance = instance + c.interconnect = interconnect return c } // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *InstancesSendDiagnosticInterruptCall) Fields(s ...googleapi.Field) *InstancesSendDiagnosticInterruptCall { +func (c *InterconnectsGetDiagnosticsCall) Fields(s ...googleapi.Field) *InterconnectsGetDiagnosticsCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } +// IfNoneMatch sets an 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. +func (c *InterconnectsGetDiagnosticsCall) IfNoneMatch(entityTag string) *InterconnectsGetDiagnosticsCall { + c.ifNoneMatch_ = entityTag + return c +} + // Context sets the context to be used in this call's Do method. -func (c *InstancesSendDiagnosticInterruptCall) Context(ctx context.Context) *InstancesSendDiagnosticInterruptCall { +func (c *InterconnectsGetDiagnosticsCall) Context(ctx context.Context) *InterconnectsGetDiagnosticsCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *InstancesSendDiagnosticInterruptCall) Header() http.Header { +func (c *InterconnectsGetDiagnosticsCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *InstancesSendDiagnosticInterruptCall) doRequest(alt string) (*http.Response, error) { +func (c *InterconnectsGetDiagnosticsCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) - var body io.Reader = nil + if c.ifNoneMatch_ != "" { + reqHeaders.Set("If-None-Match", c.ifNoneMatch_) + } c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instances/{instance}/sendDiagnosticInterrupt") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/interconnects/{interconnect}/getDiagnostics") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("POST", urls, body) + req, err := http.NewRequest("GET", urls, nil) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "zone": c.zone, - "instance": c.instance, + "project": c.project, + "interconnect": c.interconnect, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.interconnects.getDiagnostics", "request", internallog.HTTPRequest(req, nil)) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.instances.sendDiagnosticInterrupt" call. -func (c *InstancesSendDiagnosticInterruptCall) Do(opts ...googleapi.CallOption) error { +// Do executes the "compute.interconnects.getDiagnostics" call. +// Any non-2xx status code is an error. Response headers are in either +// *InterconnectsGetDiagnosticsResponse.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 *InterconnectsGetDiagnosticsCall) Do(opts ...googleapi.CallOption) (*InterconnectsGetDiagnosticsResponse, 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, gensupport.WrapError(&googleapi.Error{ + Code: res.StatusCode, + Header: res.Header, + }) + } if err != nil { - return err + return nil, err } defer googleapi.CloseBody(res) if err := googleapi.CheckResponse(res); err != nil { - return gensupport.WrapError(err) + return nil, gensupport.WrapError(err) } - return nil + ret := &InterconnectsGetDiagnosticsResponse{ + ServerResponse: googleapi.ServerResponse{ + Header: res.Header, + HTTPStatusCode: res.StatusCode, + }, + } + target := &ret + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { + return nil, err + } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.interconnects.getDiagnostics", "response", internallog.HTTPResponse(res, b)) + return ret, nil } -type InstancesSetDeletionProtectionCall struct { - s *Service - project string - zone string - resource string - urlParams_ gensupport.URLParams - ctx_ context.Context - header_ http.Header +type InterconnectsGetMacsecConfigCall struct { + s *Service + project string + interconnect string + urlParams_ gensupport.URLParams + ifNoneMatch_ string + ctx_ context.Context + header_ http.Header } -// SetDeletionProtection: Sets deletion protection on the instance. +// GetMacsecConfig: Returns the interconnectMacsecConfig for the +// specified +// Interconnect. // +// - interconnect: Name of the interconnect resource to query. // - project: Project ID for this request. -// - resource: Name or id of the resource for this request. -// - zone: The name of the zone for this request. -func (r *InstancesService) SetDeletionProtection(project string, zone string, resource string) *InstancesSetDeletionProtectionCall { - c := &InstancesSetDeletionProtectionCall{s: r.s, urlParams_: make(gensupport.URLParams)} +func (r *InterconnectsService) GetMacsecConfig(project string, interconnect string) *InterconnectsGetMacsecConfigCall { + c := &InterconnectsGetMacsecConfigCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project - c.zone = zone - c.resource = resource - return c -} - -// DeletionProtection sets the optional parameter "deletionProtection": Whether -// the resource should be protected against deletion. -func (c *InstancesSetDeletionProtectionCall) DeletionProtection(deletionProtection bool) *InstancesSetDeletionProtectionCall { - c.urlParams_.Set("deletionProtection", fmt.Sprint(deletionProtection)) - 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 *InstancesSetDeletionProtectionCall) RequestId(requestId string) *InstancesSetDeletionProtectionCall { - c.urlParams_.Set("requestId", requestId) + c.interconnect = interconnect return c } // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *InstancesSetDeletionProtectionCall) Fields(s ...googleapi.Field) *InstancesSetDeletionProtectionCall { +func (c *InterconnectsGetMacsecConfigCall) Fields(s ...googleapi.Field) *InterconnectsGetMacsecConfigCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } +// IfNoneMatch sets an 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. +func (c *InterconnectsGetMacsecConfigCall) IfNoneMatch(entityTag string) *InterconnectsGetMacsecConfigCall { + c.ifNoneMatch_ = entityTag + return c +} + // Context sets the context to be used in this call's Do method. -func (c *InstancesSetDeletionProtectionCall) Context(ctx context.Context) *InstancesSetDeletionProtectionCall { +func (c *InterconnectsGetMacsecConfigCall) Context(ctx context.Context) *InterconnectsGetMacsecConfigCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *InstancesSetDeletionProtectionCall) Header() http.Header { +func (c *InterconnectsGetMacsecConfigCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *InstancesSetDeletionProtectionCall) doRequest(alt string) (*http.Response, error) { +func (c *InterconnectsGetMacsecConfigCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) - var body io.Reader = nil + if c.ifNoneMatch_ != "" { + reqHeaders.Set("If-None-Match", c.ifNoneMatch_) + } c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instances/{resource}/setDeletionProtection") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/interconnects/{interconnect}/getMacsecConfig") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("POST", urls, body) + req, err := http.NewRequest("GET", urls, nil) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "zone": c.zone, - "resource": c.resource, + "project": c.project, + "interconnect": c.interconnect, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.interconnects.getMacsecConfig", "request", internallog.HTTPRequest(req, nil)) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.instances.setDeletionProtection" call. +// Do executes the "compute.interconnects.getMacsecConfig" call. // 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 *InstancesSetDeletionProtectionCall) Do(opts ...googleapi.CallOption) (*Operation, error) { +// *InterconnectsGetMacsecConfigResponse.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 *InterconnectsGetMacsecConfigCall) Do(opts ...googleapi.CallOption) (*InterconnectsGetMacsecConfigResponse, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -32410,59 +53304,59 @@ func (c *InstancesSetDeletionProtectionCall) Do(opts ...googleapi.CallOption) (* if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } - ret := &Operation{ + ret := &InterconnectsGetMacsecConfigResponse{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.interconnects.getMacsecConfig", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type InstancesSetDiskAutoDeleteCall struct { - s *Service - project string - zone string - instance string - urlParams_ gensupport.URLParams - ctx_ context.Context - header_ http.Header +type InterconnectsInsertCall struct { + s *Service + project string + interconnect *Interconnect + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header } -// SetDiskAutoDelete: Sets the auto-delete flag for a disk attached to an -// instance. +// Insert: Creates an Interconnect in the specified project using +// the data included in the request. // -// - autoDelete: Whether to auto-delete the disk when the instance is deleted. -// - deviceName: The device name of the disk to modify. Make a get() request on -// the instance to view currently attached disks and device names. -// - instance: The instance name for this request. -// - project: Project ID for this request. -// - zone: The name of the zone for this request. -func (r *InstancesService) SetDiskAutoDelete(project string, zone string, instance string, autoDelete bool, deviceName string) *InstancesSetDiskAutoDeleteCall { - c := &InstancesSetDiskAutoDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)} +// - project: Project ID for this request. +func (r *InterconnectsService) Insert(project string, interconnect *Interconnect) *InterconnectsInsertCall { + c := &InterconnectsInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project - c.zone = zone - c.instance = instance - c.urlParams_.Set("autoDelete", fmt.Sprint(autoDelete)) - c.urlParams_.Set("deviceName", deviceName) + c.interconnect = interconnect 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 *InstancesSetDiskAutoDeleteCall) RequestId(requestId string) *InstancesSetDiskAutoDeleteCall { +// 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 *InterconnectsInsertCall) RequestId(requestId string) *InterconnectsInsertCall { c.urlParams_.Set("requestId", requestId) return c } @@ -32470,32 +53364,35 @@ func (c *InstancesSetDiskAutoDeleteCall) RequestId(requestId string) *InstancesS // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *InstancesSetDiskAutoDeleteCall) Fields(s ...googleapi.Field) *InstancesSetDiskAutoDeleteCall { +func (c *InterconnectsInsertCall) Fields(s ...googleapi.Field) *InterconnectsInsertCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } // Context sets the context to be used in this call's Do method. -func (c *InstancesSetDiskAutoDeleteCall) Context(ctx context.Context) *InstancesSetDiskAutoDeleteCall { +func (c *InterconnectsInsertCall) Context(ctx context.Context) *InterconnectsInsertCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *InstancesSetDiskAutoDeleteCall) Header() http.Header { +func (c *InterconnectsInsertCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *InstancesSetDiskAutoDeleteCall) doRequest(alt string) (*http.Response, error) { - reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) - var body io.Reader = nil +func (c *InterconnectsInsertCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) + body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.interconnect) + if err != nil { + return nil, err + } c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instances/{instance}/setDiskAutoDelete") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/interconnects") urls += "?" + c.urlParams_.Encode() req, err := http.NewRequest("POST", urls, body) if err != nil { @@ -32503,19 +53400,18 @@ func (c *InstancesSetDiskAutoDeleteCall) doRequest(alt string) (*http.Response, } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "zone": c.zone, - "instance": c.instance, + "project": c.project, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.interconnects.insert", "request", internallog.HTTPRequest(req, body.Bytes())) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.instances.setDiskAutoDelete" call. +// Do executes the "compute.interconnects.insert" call. // 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 *InstancesSetDiskAutoDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) { +func (c *InterconnectsInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -32541,91 +53437,220 @@ func (c *InstancesSetDiskAutoDeleteCall) Do(opts ...googleapi.CallOption) (*Oper }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.interconnects.insert", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type InstancesSetIamPolicyCall struct { - s *Service - project string - zone string - resource string - zonesetpolicyrequest *ZoneSetPolicyRequest - urlParams_ gensupport.URLParams - ctx_ context.Context - header_ http.Header +type InterconnectsListCall struct { + s *Service + project string + urlParams_ gensupport.URLParams + ifNoneMatch_ string + ctx_ context.Context + header_ http.Header } -// SetIamPolicy: Sets the access control policy on the specified resource. -// Replaces any existing policy. +// List: Retrieves the list of Interconnects available to the specified +// project. // // - project: Project ID for this request. -// - resource: Name or id of the resource for this request. -// - zone: The name of the zone for this request. -func (r *InstancesService) SetIamPolicy(project string, zone string, resource string, zonesetpolicyrequest *ZoneSetPolicyRequest) *InstancesSetIamPolicyCall { - c := &InstancesSetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)} +func (r *InterconnectsService) List(project string) *InterconnectsListCall { + c := &InterconnectsListCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project - c.zone = zone - c.resource = resource - c.zonesetpolicyrequest = zonesetpolicyrequest + return c +} + +// Filter sets the optional parameter "filter": A filter expression that +// filters resources listed in the response. Most +// Compute resources support two types of filter expressions: +// expressions that support regular expressions and expressions that follow +// API improvement proposal AIP-160. +// These two types of filter expressions cannot be mixed in one request. +// +// If you want to use AIP-160, your expression must specify the field name, +// an +// operator, and the value that you want to use for filtering. The value +// must be a string, a number, or a boolean. The 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`. +// +// The `:*` comparison can be used to test whether a key has been defined. +// For example, to find all objects with `owner` label +// use: +// ``` +// labels.owner:* +// ``` +// +// 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 onresource 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) +// ``` +// +// If you want to use a regular expression, use the `eq` (equal) or `ne` +// (not equal) operator against a single un-parenthesized expression with +// or +// without quotes or against multiple parenthesized expressions. +// Examples: +// +// `fieldname eq unquoted literal` +// `fieldname eq 'single quoted literal'` +// `fieldname eq "double quoted literal" +// `(fieldname1 eq literal) (fieldname2 ne "literal")` +// +// The literal value is interpreted as a regular expression using GoogleRE2 +// library syntax. +// The literal value must match the entire field. +// +// For example, to filter for instances that do not end with name +// "instance", +// you would use `name ne .*instance`. +// +// You cannot combine constraints on multiple fields using regular +// expressions. +func (c *InterconnectsListCall) Filter(filter string) *InterconnectsListCall { + 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 *InterconnectsListCall) MaxResults(maxResults int64) *InterconnectsListCall { + 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 *InterconnectsListCall) OrderBy(orderBy string) *InterconnectsListCall { + 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 *InterconnectsListCall) PageToken(pageToken string) *InterconnectsListCall { + c.urlParams_.Set("pageToken", pageToken) + return c +} + +// ReturnPartialSuccess sets the optional parameter "returnPartialSuccess": +// Opt-in for partial success behavior which provides partial results in +// case +// of failure. The default value is false. +// +// For example, when partial success behavior is enabled, aggregatedList for +// a +// single zone scope either returns all resources in the zone or no +// resources, +// with an error code. +func (c *InterconnectsListCall) ReturnPartialSuccess(returnPartialSuccess bool) *InterconnectsListCall { + c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess)) return c } // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *InstancesSetIamPolicyCall) Fields(s ...googleapi.Field) *InstancesSetIamPolicyCall { +func (c *InterconnectsListCall) Fields(s ...googleapi.Field) *InterconnectsListCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } +// IfNoneMatch sets an 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. +func (c *InterconnectsListCall) IfNoneMatch(entityTag string) *InterconnectsListCall { + c.ifNoneMatch_ = entityTag + return c +} + // Context sets the context to be used in this call's Do method. -func (c *InstancesSetIamPolicyCall) Context(ctx context.Context) *InstancesSetIamPolicyCall { +func (c *InterconnectsListCall) Context(ctx context.Context) *InterconnectsListCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *InstancesSetIamPolicyCall) Header() http.Header { +func (c *InterconnectsListCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *InstancesSetIamPolicyCall) doRequest(alt string) (*http.Response, error) { - reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) - var body io.Reader = nil - body, err := googleapi.WithoutDataWrapper.JSONReader(c.zonesetpolicyrequest) - if err != nil { - return nil, err +func (c *InterconnectsListCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) + if c.ifNoneMatch_ != "" { + reqHeaders.Set("If-None-Match", c.ifNoneMatch_) } c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instances/{resource}/setIamPolicy") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/interconnects") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("POST", urls, body) + req, err := http.NewRequest("GET", urls, nil) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "zone": c.zone, - "resource": c.resource, + "project": c.project, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.interconnects.list", "request", internallog.HTTPRequest(req, nil)) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.instances.setIamPolicy" call. +// Do executes the "compute.interconnects.list" call. // Any non-2xx status code is an error. Response headers are in either -// *Policy.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 *InstancesSetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, error) { +// *InterconnectList.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 *InterconnectsListCall) Do(opts ...googleapi.CallOption) (*InterconnectList, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -32644,56 +53669,86 @@ func (c *InstancesSetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, e if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } - ret := &Policy{ + ret := &InterconnectList{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } - return ret, nil + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.interconnects.list", "response", internallog.HTTPResponse(res, b)) + return ret, nil +} + +// 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 *InterconnectsListCall) Pages(ctx context.Context, f func(*InterconnectList) error) error { + c.ctx_ = ctx + defer c.PageToken(c.urlParams_.Get("pageToken")) + 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) + } } -type InstancesSetLabelsCall struct { - s *Service - project string - zone string - instance string - instancessetlabelsrequest *InstancesSetLabelsRequest - urlParams_ gensupport.URLParams - ctx_ context.Context - header_ http.Header +type InterconnectsPatchCall struct { + s *Service + project string + interconnect string + interconnect2 *Interconnect + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header } -// SetLabels: Sets labels on an instance. To learn more about labels, read the -// Labeling Resources documentation. +// Patch: Updates the specified Interconnect with the data included in the +// request. +// This method supportsPATCH +// semantics and uses theJSON merge +// patch format and processing rules. // -// - instance: Name of the instance scoping this request. +// - interconnect: Name of the interconnect to update. // - project: Project ID for this request. -// - zone: The name of the zone for this request. -func (r *InstancesService) SetLabels(project string, zone string, instance string, instancessetlabelsrequest *InstancesSetLabelsRequest) *InstancesSetLabelsCall { - c := &InstancesSetLabelsCall{s: r.s, urlParams_: make(gensupport.URLParams)} +func (r *InterconnectsService) Patch(project string, interconnect string, interconnect2 *Interconnect) *InterconnectsPatchCall { + c := &InterconnectsPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project - c.zone = zone - c.instance = instance - c.instancessetlabelsrequest = instancessetlabelsrequest + c.interconnect = interconnect + c.interconnect2 = interconnect2 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 *InstancesSetLabelsCall) RequestId(requestId string) *InstancesSetLabelsCall { +// 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 *InterconnectsPatchCall) RequestId(requestId string) *InterconnectsPatchCall { c.urlParams_.Set("requestId", requestId) return c } @@ -32701,56 +53756,55 @@ func (c *InstancesSetLabelsCall) RequestId(requestId string) *InstancesSetLabels // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *InstancesSetLabelsCall) Fields(s ...googleapi.Field) *InstancesSetLabelsCall { +func (c *InterconnectsPatchCall) Fields(s ...googleapi.Field) *InterconnectsPatchCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } // Context sets the context to be used in this call's Do method. -func (c *InstancesSetLabelsCall) Context(ctx context.Context) *InstancesSetLabelsCall { +func (c *InterconnectsPatchCall) Context(ctx context.Context) *InterconnectsPatchCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *InstancesSetLabelsCall) Header() http.Header { +func (c *InterconnectsPatchCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *InstancesSetLabelsCall) doRequest(alt string) (*http.Response, error) { +func (c *InterconnectsPatchCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) - var body io.Reader = nil - body, err := googleapi.WithoutDataWrapper.JSONReader(c.instancessetlabelsrequest) + body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.interconnect2) if err != nil { return nil, err } c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instances/{instance}/setLabels") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/interconnects/{interconnect}") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("POST", urls, body) + req, err := http.NewRequest("PATCH", urls, body) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "zone": c.zone, - "instance": c.instance, + "project": c.project, + "interconnect": c.interconnect, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.interconnects.patch", "request", internallog.HTTPRequest(req, body.Bytes())) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.instances.setLabels" call. +// Do executes the "compute.interconnects.patch" call. // 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 *InstancesSetLabelsCall) Do(opts ...googleapi.CallOption) (*Operation, error) { +func (c *InterconnectsPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -32776,86 +53830,71 @@ func (c *InstancesSetLabelsCall) Do(opts ...googleapi.CallOption) (*Operation, e }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.interconnects.patch", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type InstancesSetMachineResourcesCall struct { - s *Service - project string - zone string - instance string - instancessetmachineresourcesrequest *InstancesSetMachineResourcesRequest - urlParams_ gensupport.URLParams - ctx_ context.Context - header_ http.Header +type InterconnectsSetLabelsCall struct { + s *Service + project string + resource string + globalsetlabelsrequest *GlobalSetLabelsRequest + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header } -// SetMachineResources: Changes the number and/or type of accelerator for a -// stopped instance to the values specified in the request. +// SetLabels: Sets the labels on an Interconnect. To learn more about +// labels, +// read the Labeling +// Resources documentation. // -// - instance: Name of the instance scoping this request. // - project: Project ID for this request. -// - zone: The name of the zone for this request. -func (r *InstancesService) SetMachineResources(project string, zone string, instance string, instancessetmachineresourcesrequest *InstancesSetMachineResourcesRequest) *InstancesSetMachineResourcesCall { - c := &InstancesSetMachineResourcesCall{s: r.s, urlParams_: make(gensupport.URLParams)} +// - resource: Name or id of the resource for this request. +func (r *InterconnectsService) SetLabels(project string, resource string, globalsetlabelsrequest *GlobalSetLabelsRequest) *InterconnectsSetLabelsCall { + c := &InterconnectsSetLabelsCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project - c.zone = zone - c.instance = instance - c.instancessetmachineresourcesrequest = instancessetmachineresourcesrequest - 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 *InstancesSetMachineResourcesCall) RequestId(requestId string) *InstancesSetMachineResourcesCall { - c.urlParams_.Set("requestId", requestId) + c.resource = resource + c.globalsetlabelsrequest = globalsetlabelsrequest return c } // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *InstancesSetMachineResourcesCall) Fields(s ...googleapi.Field) *InstancesSetMachineResourcesCall { +func (c *InterconnectsSetLabelsCall) Fields(s ...googleapi.Field) *InterconnectsSetLabelsCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } // Context sets the context to be used in this call's Do method. -func (c *InstancesSetMachineResourcesCall) Context(ctx context.Context) *InstancesSetMachineResourcesCall { +func (c *InterconnectsSetLabelsCall) Context(ctx context.Context) *InterconnectsSetLabelsCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *InstancesSetMachineResourcesCall) Header() http.Header { +func (c *InterconnectsSetLabelsCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *InstancesSetMachineResourcesCall) doRequest(alt string) (*http.Response, error) { +func (c *InterconnectsSetLabelsCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) - var body io.Reader = nil - body, err := googleapi.WithoutDataWrapper.JSONReader(c.instancessetmachineresourcesrequest) + body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.globalsetlabelsrequest) if err != nil { return nil, err } c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instances/{instance}/setMachineResources") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/interconnects/{resource}/setLabels") urls += "?" + c.urlParams_.Encode() req, err := http.NewRequest("POST", urls, body) if err != nil { @@ -32864,18 +53903,18 @@ func (c *InstancesSetMachineResourcesCall) doRequest(alt string) (*http.Response req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ "project": c.project, - "zone": c.zone, - "instance": c.instance, + "resource": c.resource, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.interconnects.setLabels", "request", internallog.HTTPRequest(req, body.Bytes())) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.instances.setMachineResources" call. +// Do executes the "compute.interconnects.setLabels" call. // 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 *InstancesSetMachineResourcesCall) Do(opts ...googleapi.CallOption) (*Operation, error) { +func (c *InterconnectsSetLabelsCall) Do(opts ...googleapi.CallOption) (*Operation, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -32901,106 +53940,101 @@ func (c *InstancesSetMachineResourcesCall) Do(opts ...googleapi.CallOption) (*Op }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.interconnects.setLabels", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type InstancesSetMachineTypeCall struct { - s *Service - project string - zone string - instance string - instancessetmachinetyperequest *InstancesSetMachineTypeRequest - urlParams_ gensupport.URLParams - ctx_ context.Context - header_ http.Header +type LicenseCodesGetCall struct { + s *Service + project string + licenseCode string + urlParams_ gensupport.URLParams + ifNoneMatch_ string + ctx_ context.Context + header_ http.Header } -// SetMachineType: Changes the machine type for a stopped instance to the -// machine type specified in the request. +// Get: Return a specified license code. License codes are mirrored across +// all projects that have permissions to read the License Code. // -// - instance: Name of the instance scoping this request. +// *Caution* This resource is intended +// +// for use only by third-party partners who are creatingCloud +// Marketplace +// images. +// +// - licenseCode: Number corresponding to the License code resource to return. // - project: Project ID for this request. -// - zone: The name of the zone for this request. -func (r *InstancesService) SetMachineType(project string, zone string, instance string, instancessetmachinetyperequest *InstancesSetMachineTypeRequest) *InstancesSetMachineTypeCall { - c := &InstancesSetMachineTypeCall{s: r.s, urlParams_: make(gensupport.URLParams)} +func (r *LicenseCodesService) Get(project string, licenseCode string) *LicenseCodesGetCall { + c := &LicenseCodesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project - c.zone = zone - c.instance = instance - c.instancessetmachinetyperequest = instancessetmachinetyperequest - 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 *InstancesSetMachineTypeCall) RequestId(requestId string) *InstancesSetMachineTypeCall { - c.urlParams_.Set("requestId", requestId) + c.licenseCode = licenseCode return c } // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *InstancesSetMachineTypeCall) Fields(s ...googleapi.Field) *InstancesSetMachineTypeCall { +func (c *LicenseCodesGetCall) Fields(s ...googleapi.Field) *LicenseCodesGetCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } +// IfNoneMatch sets an 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. +func (c *LicenseCodesGetCall) IfNoneMatch(entityTag string) *LicenseCodesGetCall { + c.ifNoneMatch_ = entityTag + return c +} + // Context sets the context to be used in this call's Do method. -func (c *InstancesSetMachineTypeCall) Context(ctx context.Context) *InstancesSetMachineTypeCall { +func (c *LicenseCodesGetCall) Context(ctx context.Context) *LicenseCodesGetCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *InstancesSetMachineTypeCall) Header() http.Header { +func (c *LicenseCodesGetCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *InstancesSetMachineTypeCall) doRequest(alt string) (*http.Response, error) { - reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) - var body io.Reader = nil - body, err := googleapi.WithoutDataWrapper.JSONReader(c.instancessetmachinetyperequest) - if err != nil { - return nil, err +func (c *LicenseCodesGetCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) + if c.ifNoneMatch_ != "" { + reqHeaders.Set("If-None-Match", c.ifNoneMatch_) } c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instances/{instance}/setMachineType") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/licenseCodes/{licenseCode}") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("POST", urls, body) + req, err := http.NewRequest("GET", urls, nil) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "zone": c.zone, - "instance": c.instance, + "project": c.project, + "licenseCode": c.licenseCode, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.licenseCodes.get", "request", internallog.HTTPRequest(req, nil)) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.instances.setMachineType" call. +// Do executes the "compute.licenseCodes.get" call. // 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 +// *LicenseCode.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 *InstancesSetMachineTypeCall) Do(opts ...googleapi.CallOption) (*Operation, error) { +func (c *LicenseCodesGetCall) Do(opts ...googleapi.CallOption) (*LicenseCode, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -33019,113 +54053,116 @@ func (c *InstancesSetMachineTypeCall) Do(opts ...googleapi.CallOption) (*Operati if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } - ret := &Operation{ + ret := &LicenseCode{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.licenseCodes.get", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type InstancesSetMetadataCall struct { - s *Service - project string - zone string - instance string - metadata *Metadata - urlParams_ gensupport.URLParams - ctx_ context.Context - header_ http.Header +type LicenseCodesGetIamPolicyCall struct { + s *Service + project string + resource string + urlParams_ gensupport.URLParams + ifNoneMatch_ string + ctx_ context.Context + header_ http.Header } -// SetMetadata: Sets metadata for the specified instance to the data included -// in the request. +// GetIamPolicy: Gets the access control policy for a resource. May be empty if +// no such +// policy or resource exists. +// +// *Caution* This resource is intended +// +// for use only by third-party partners who are creatingCloud +// Marketplace +// images. // -// - instance: Name of the instance scoping this request. // - project: Project ID for this request. -// - zone: The name of the zone for this request. -func (r *InstancesService) SetMetadata(project string, zone string, instance string, metadata *Metadata) *InstancesSetMetadataCall { - c := &InstancesSetMetadataCall{s: r.s, urlParams_: make(gensupport.URLParams)} +// - resource: Name or id of the resource for this request. +func (r *LicenseCodesService) GetIamPolicy(project string, resource string) *LicenseCodesGetIamPolicyCall { + c := &LicenseCodesGetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project - c.zone = zone - c.instance = instance - c.metadata = metadata + c.resource = resource 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 *InstancesSetMetadataCall) RequestId(requestId string) *InstancesSetMetadataCall { - c.urlParams_.Set("requestId", requestId) +// OptionsRequestedPolicyVersion sets the optional parameter +// "optionsRequestedPolicyVersion": Requested IAM Policy version. +func (c *LicenseCodesGetIamPolicyCall) OptionsRequestedPolicyVersion(optionsRequestedPolicyVersion int64) *LicenseCodesGetIamPolicyCall { + c.urlParams_.Set("optionsRequestedPolicyVersion", fmt.Sprint(optionsRequestedPolicyVersion)) return c } // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *InstancesSetMetadataCall) Fields(s ...googleapi.Field) *InstancesSetMetadataCall { +func (c *LicenseCodesGetIamPolicyCall) Fields(s ...googleapi.Field) *LicenseCodesGetIamPolicyCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } +// IfNoneMatch sets an 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. +func (c *LicenseCodesGetIamPolicyCall) IfNoneMatch(entityTag string) *LicenseCodesGetIamPolicyCall { + c.ifNoneMatch_ = entityTag + return c +} + // Context sets the context to be used in this call's Do method. -func (c *InstancesSetMetadataCall) Context(ctx context.Context) *InstancesSetMetadataCall { +func (c *LicenseCodesGetIamPolicyCall) Context(ctx context.Context) *LicenseCodesGetIamPolicyCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *InstancesSetMetadataCall) Header() http.Header { +func (c *LicenseCodesGetIamPolicyCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *InstancesSetMetadataCall) doRequest(alt string) (*http.Response, error) { - reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) - var body io.Reader = nil - body, err := googleapi.WithoutDataWrapper.JSONReader(c.metadata) - if err != nil { - return nil, err +func (c *LicenseCodesGetIamPolicyCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) + if c.ifNoneMatch_ != "" { + reqHeaders.Set("If-None-Match", c.ifNoneMatch_) } c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instances/{instance}/setMetadata") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/licenseCodes/{resource}/getIamPolicy") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("POST", urls, body) + req, err := http.NewRequest("GET", urls, nil) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ "project": c.project, - "zone": c.zone, - "instance": c.instance, + "resource": c.resource, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.licenseCodes.getIamPolicy", "request", internallog.HTTPRequest(req, nil)) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.instances.setMetadata" call. +// Do executes the "compute.licenseCodes.getIamPolicy" call. // 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 +// *Policy.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 *InstancesSetMetadataCall) Do(opts ...googleapi.CallOption) (*Operation, error) { +func (c *LicenseCodesGetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -33144,94 +54181,83 @@ func (c *InstancesSetMetadataCall) Do(opts ...googleapi.CallOption) (*Operation, if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } - ret := &Operation{ + ret := &Policy{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.licenseCodes.getIamPolicy", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type InstancesSetMinCpuPlatformCall struct { - s *Service - project string - zone string - instance string - instancessetmincpuplatformrequest *InstancesSetMinCpuPlatformRequest - urlParams_ gensupport.URLParams - ctx_ context.Context - header_ http.Header +type LicenseCodesSetIamPolicyCall struct { + s *Service + project string + resource string + globalsetpolicyrequest *GlobalSetPolicyRequest + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header } -// SetMinCpuPlatform: Changes the minimum CPU platform that this instance -// should use. This method can only be called on a stopped instance. For more -// information, read Specifying a Minimum CPU Platform. +// SetIamPolicy: Sets the access control policy on the specified +// resource. +// Replaces any existing policy. +// +// *Caution* This resource is intended +// +// for use only by third-party partners who are creatingCloud +// Marketplace +// images. // -// - instance: Name of the instance scoping this request. // - project: Project ID for this request. -// - zone: The name of the zone for this request. -func (r *InstancesService) SetMinCpuPlatform(project string, zone string, instance string, instancessetmincpuplatformrequest *InstancesSetMinCpuPlatformRequest) *InstancesSetMinCpuPlatformCall { - c := &InstancesSetMinCpuPlatformCall{s: r.s, urlParams_: make(gensupport.URLParams)} +// - resource: Name or id of the resource for this request. +func (r *LicenseCodesService) SetIamPolicy(project string, resource string, globalsetpolicyrequest *GlobalSetPolicyRequest) *LicenseCodesSetIamPolicyCall { + c := &LicenseCodesSetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project - c.zone = zone - c.instance = instance - c.instancessetmincpuplatformrequest = instancessetmincpuplatformrequest - 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 *InstancesSetMinCpuPlatformCall) RequestId(requestId string) *InstancesSetMinCpuPlatformCall { - c.urlParams_.Set("requestId", requestId) + c.resource = resource + c.globalsetpolicyrequest = globalsetpolicyrequest return c } // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *InstancesSetMinCpuPlatformCall) Fields(s ...googleapi.Field) *InstancesSetMinCpuPlatformCall { +func (c *LicenseCodesSetIamPolicyCall) Fields(s ...googleapi.Field) *LicenseCodesSetIamPolicyCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } // Context sets the context to be used in this call's Do method. -func (c *InstancesSetMinCpuPlatformCall) Context(ctx context.Context) *InstancesSetMinCpuPlatformCall { +func (c *LicenseCodesSetIamPolicyCall) Context(ctx context.Context) *LicenseCodesSetIamPolicyCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *InstancesSetMinCpuPlatformCall) Header() http.Header { +func (c *LicenseCodesSetIamPolicyCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *InstancesSetMinCpuPlatformCall) doRequest(alt string) (*http.Response, error) { +func (c *LicenseCodesSetIamPolicyCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) - var body io.Reader = nil - body, err := googleapi.WithoutDataWrapper.JSONReader(c.instancessetmincpuplatformrequest) + body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.globalsetpolicyrequest) if err != nil { return nil, err } c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instances/{instance}/setMinCpuPlatform") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/licenseCodes/{resource}/setIamPolicy") urls += "?" + c.urlParams_.Encode() req, err := http.NewRequest("POST", urls, body) if err != nil { @@ -33240,18 +54266,18 @@ func (c *InstancesSetMinCpuPlatformCall) doRequest(alt string) (*http.Response, req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ "project": c.project, - "zone": c.zone, - "instance": c.instance, + "resource": c.resource, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.licenseCodes.setIamPolicy", "request", internallog.HTTPRequest(req, body.Bytes())) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.instances.setMinCpuPlatform" call. +// Do executes the "compute.licenseCodes.setIamPolicy" call. // 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 +// *Policy.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 *InstancesSetMinCpuPlatformCall) Do(opts ...googleapi.CallOption) (*Operation, error) { +func (c *LicenseCodesSetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -33270,92 +54296,82 @@ func (c *InstancesSetMinCpuPlatformCall) Do(opts ...googleapi.CallOption) (*Oper if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } - ret := &Operation{ + ret := &Policy{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.licenseCodes.setIamPolicy", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type InstancesSetNameCall struct { - s *Service - project string - zone string - instance string - instancessetnamerequest *InstancesSetNameRequest - urlParams_ gensupport.URLParams - ctx_ context.Context - header_ http.Header +type LicenseCodesTestIamPermissionsCall struct { + s *Service + project string + resource string + testpermissionsrequest *TestPermissionsRequest + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header } -// SetName: Sets name of an instance. +// TestIamPermissions: Returns permissions that a caller has on the specified +// resource. +// +// *Caution* This resource is intended +// +// for use only by third-party partners who are creatingCloud +// Marketplace +// images. // -// - instance: The instance name for this request. // - project: Project ID for this request. -// - zone: The name of the zone for this request. -func (r *InstancesService) SetName(project string, zone string, instance string, instancessetnamerequest *InstancesSetNameRequest) *InstancesSetNameCall { - c := &InstancesSetNameCall{s: r.s, urlParams_: make(gensupport.URLParams)} +// - resource: Name or id of the resource for this request. +func (r *LicenseCodesService) TestIamPermissions(project string, resource string, testpermissionsrequest *TestPermissionsRequest) *LicenseCodesTestIamPermissionsCall { + c := &LicenseCodesTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project - c.zone = zone - c.instance = instance - c.instancessetnamerequest = instancessetnamerequest - 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 *InstancesSetNameCall) RequestId(requestId string) *InstancesSetNameCall { - c.urlParams_.Set("requestId", requestId) + c.resource = resource + c.testpermissionsrequest = testpermissionsrequest return c } // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *InstancesSetNameCall) Fields(s ...googleapi.Field) *InstancesSetNameCall { +func (c *LicenseCodesTestIamPermissionsCall) Fields(s ...googleapi.Field) *LicenseCodesTestIamPermissionsCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } // Context sets the context to be used in this call's Do method. -func (c *InstancesSetNameCall) Context(ctx context.Context) *InstancesSetNameCall { +func (c *LicenseCodesTestIamPermissionsCall) Context(ctx context.Context) *LicenseCodesTestIamPermissionsCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *InstancesSetNameCall) Header() http.Header { +func (c *LicenseCodesTestIamPermissionsCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *InstancesSetNameCall) doRequest(alt string) (*http.Response, error) { +func (c *LicenseCodesTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) - var body io.Reader = nil - body, err := googleapi.WithoutDataWrapper.JSONReader(c.instancessetnamerequest) + body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.testpermissionsrequest) if err != nil { return nil, err } c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instances/{instance}/setName") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/licenseCodes/{resource}/testIamPermissions") urls += "?" + c.urlParams_.Encode() req, err := http.NewRequest("POST", urls, body) if err != nil { @@ -33364,18 +54380,19 @@ func (c *InstancesSetNameCall) doRequest(alt string) (*http.Response, error) { req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ "project": c.project, - "zone": c.zone, - "instance": c.instance, + "resource": c.resource, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.licenseCodes.testIamPermissions", "request", internallog.HTTPRequest(req, body.Bytes())) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.instances.setName" call. +// Do executes the "compute.licenseCodes.testIamPermissions" call. // 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 *InstancesSetNameCall) Do(opts ...googleapi.CallOption) (*Operation, error) { +// *TestPermissionsResponse.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 *LicenseCodesTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -33394,59 +54411,65 @@ func (c *InstancesSetNameCall) Do(opts ...googleapi.CallOption) (*Operation, err if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } - ret := &Operation{ + ret := &TestPermissionsResponse{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.licenseCodes.testIamPermissions", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type InstancesSetSchedulingCall struct { +type LicensesDeleteCall struct { s *Service project string - zone string - instance string - scheduling *Scheduling + license string urlParams_ gensupport.URLParams ctx_ context.Context header_ http.Header } -// SetScheduling: Sets an instance's scheduling options. You can only call this -// method on a stopped instance, that is, a VM instance that is in a -// `TERMINATED` state. See Instance Life Cycle for more information on the -// possible instance states. For more information about setting scheduling -// options for a VM, see Set VM host maintenance policy. +// Delete: Deletes the specified license. // -// - instance: Instance name for this request. +// *Caution* This resource is intended +// +// for use only by third-party partners who are creatingCloud +// Marketplace +// images. +// +// - license: Name of the license resource to delete. // - project: Project ID for this request. -// - zone: The name of the zone for this request. -func (r *InstancesService) SetScheduling(project string, zone string, instance string, scheduling *Scheduling) *InstancesSetSchedulingCall { - c := &InstancesSetSchedulingCall{s: r.s, urlParams_: make(gensupport.URLParams)} +func (r *LicensesService) Delete(project string, license string) *LicensesDeleteCall { + c := &LicensesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project - c.zone = zone - c.instance = instance - c.scheduling = scheduling + c.license = license 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 *InstancesSetSchedulingCall) RequestId(requestId string) *InstancesSetSchedulingCall { +// 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 *LicensesDeleteCall) RequestId(requestId string) *LicensesDeleteCall { c.urlParams_.Set("requestId", requestId) return c } @@ -33454,56 +54477,51 @@ func (c *InstancesSetSchedulingCall) RequestId(requestId string) *InstancesSetSc // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *InstancesSetSchedulingCall) Fields(s ...googleapi.Field) *InstancesSetSchedulingCall { +func (c *LicensesDeleteCall) Fields(s ...googleapi.Field) *LicensesDeleteCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } // Context sets the context to be used in this call's Do method. -func (c *InstancesSetSchedulingCall) Context(ctx context.Context) *InstancesSetSchedulingCall { +func (c *LicensesDeleteCall) Context(ctx context.Context) *LicensesDeleteCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *InstancesSetSchedulingCall) Header() http.Header { +func (c *LicensesDeleteCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *InstancesSetSchedulingCall) doRequest(alt string) (*http.Response, error) { - reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) - var body io.Reader = nil - body, err := googleapi.WithoutDataWrapper.JSONReader(c.scheduling) - if err != nil { - return nil, err - } +func (c *LicensesDeleteCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instances/{instance}/setScheduling") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/licenses/{license}") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("POST", urls, body) + req, err := http.NewRequest("DELETE", urls, nil) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "zone": c.zone, - "instance": c.instance, + "project": c.project, + "license": c.license, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.licenses.delete", "request", internallog.HTTPRequest(req, nil)) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.instances.setScheduling" call. +// Do executes the "compute.licenses.delete" call. // 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 *InstancesSetSchedulingCall) Do(opts ...googleapi.CallOption) (*Operation, error) { +func (c *LicensesDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -33529,107 +54547,100 @@ func (c *InstancesSetSchedulingCall) Do(opts ...googleapi.CallOption) (*Operatio }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.licenses.delete", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type InstancesSetSecurityPolicyCall struct { - s *Service - project string - zone string - instance string - instancessetsecuritypolicyrequest *InstancesSetSecurityPolicyRequest - urlParams_ gensupport.URLParams - ctx_ context.Context - header_ http.Header +type LicensesGetCall struct { + s *Service + project string + license string + urlParams_ gensupport.URLParams + ifNoneMatch_ string + ctx_ context.Context + header_ http.Header } -// SetSecurityPolicy: Sets the Google Cloud Armor security policy for the -// specified instance. For more information, see Google Cloud Armor Overview +// Get: Returns the specified License resource. // -// - instance: Name of the Instance resource to which the security policy -// should be set. The name should conform to RFC1035. -// - project: Project ID for this request. -// - zone: Name of the zone scoping this request. -func (r *InstancesService) SetSecurityPolicy(project string, zone string, instance string, instancessetsecuritypolicyrequest *InstancesSetSecurityPolicyRequest) *InstancesSetSecurityPolicyCall { - c := &InstancesSetSecurityPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)} +// *Caution* This resource is intended +// +// for use only by third-party partners who are creatingCloud +// Marketplace +// images. +// +// - license: Name of the License resource to return. +// - project: Project ID for this request. +func (r *LicensesService) Get(project string, license string) *LicensesGetCall { + c := &LicensesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project - c.zone = zone - c.instance = instance - c.instancessetsecuritypolicyrequest = instancessetsecuritypolicyrequest - 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 *InstancesSetSecurityPolicyCall) RequestId(requestId string) *InstancesSetSecurityPolicyCall { - c.urlParams_.Set("requestId", requestId) + c.license = license return c } // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *InstancesSetSecurityPolicyCall) Fields(s ...googleapi.Field) *InstancesSetSecurityPolicyCall { +func (c *LicensesGetCall) Fields(s ...googleapi.Field) *LicensesGetCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } +// IfNoneMatch sets an 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. +func (c *LicensesGetCall) IfNoneMatch(entityTag string) *LicensesGetCall { + c.ifNoneMatch_ = entityTag + return c +} + // Context sets the context to be used in this call's Do method. -func (c *InstancesSetSecurityPolicyCall) Context(ctx context.Context) *InstancesSetSecurityPolicyCall { +func (c *LicensesGetCall) Context(ctx context.Context) *LicensesGetCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *InstancesSetSecurityPolicyCall) Header() http.Header { +func (c *LicensesGetCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *InstancesSetSecurityPolicyCall) doRequest(alt string) (*http.Response, error) { - reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) - var body io.Reader = nil - body, err := googleapi.WithoutDataWrapper.JSONReader(c.instancessetsecuritypolicyrequest) - if err != nil { - return nil, err +func (c *LicensesGetCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) + if c.ifNoneMatch_ != "" { + reqHeaders.Set("If-None-Match", c.ifNoneMatch_) } c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instances/{instance}/setSecurityPolicy") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/licenses/{license}") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("POST", urls, body) + req, err := http.NewRequest("GET", urls, nil) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "zone": c.zone, - "instance": c.instance, + "project": c.project, + "license": c.license, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.licenses.get", "request", internallog.HTTPRequest(req, nil)) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.instances.setSecurityPolicy" call. +// Do executes the "compute.licenses.get" call. // 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 +// *License.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 *InstancesSetSecurityPolicyCall) Do(opts ...googleapi.CallOption) (*Operation, error) { +func (c *LicensesGetCall) Do(opts ...googleapi.CallOption) (*License, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -33648,114 +54659,116 @@ func (c *InstancesSetSecurityPolicyCall) Do(opts ...googleapi.CallOption) (*Oper if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } - ret := &Operation{ + ret := &License{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.licenses.get", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type InstancesSetServiceAccountCall struct { - s *Service - project string - zone string - instance string - instancessetserviceaccountrequest *InstancesSetServiceAccountRequest - urlParams_ gensupport.URLParams - ctx_ context.Context - header_ http.Header +type LicensesGetIamPolicyCall struct { + s *Service + project string + resource string + urlParams_ gensupport.URLParams + ifNoneMatch_ string + ctx_ context.Context + header_ http.Header } -// SetServiceAccount: Sets the service account on the instance. For more -// information, read Changing the service account and access scopes for an -// instance. +// GetIamPolicy: Gets the access control policy for a resource. May be empty if +// no such +// policy or resource exists. +// +// *Caution* This resource is intended +// +// for use only by third-party partners who are creatingCloud +// Marketplace +// images. // -// - instance: Name of the instance resource to start. // - project: Project ID for this request. -// - zone: The name of the zone for this request. -func (r *InstancesService) SetServiceAccount(project string, zone string, instance string, instancessetserviceaccountrequest *InstancesSetServiceAccountRequest) *InstancesSetServiceAccountCall { - c := &InstancesSetServiceAccountCall{s: r.s, urlParams_: make(gensupport.URLParams)} +// - resource: Name or id of the resource for this request. +func (r *LicensesService) GetIamPolicy(project string, resource string) *LicensesGetIamPolicyCall { + c := &LicensesGetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project - c.zone = zone - c.instance = instance - c.instancessetserviceaccountrequest = instancessetserviceaccountrequest + c.resource = resource 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 *InstancesSetServiceAccountCall) RequestId(requestId string) *InstancesSetServiceAccountCall { - c.urlParams_.Set("requestId", requestId) +// OptionsRequestedPolicyVersion sets the optional parameter +// "optionsRequestedPolicyVersion": Requested IAM Policy version. +func (c *LicensesGetIamPolicyCall) OptionsRequestedPolicyVersion(optionsRequestedPolicyVersion int64) *LicensesGetIamPolicyCall { + c.urlParams_.Set("optionsRequestedPolicyVersion", fmt.Sprint(optionsRequestedPolicyVersion)) return c } // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *InstancesSetServiceAccountCall) Fields(s ...googleapi.Field) *InstancesSetServiceAccountCall { +func (c *LicensesGetIamPolicyCall) Fields(s ...googleapi.Field) *LicensesGetIamPolicyCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } +// IfNoneMatch sets an 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. +func (c *LicensesGetIamPolicyCall) IfNoneMatch(entityTag string) *LicensesGetIamPolicyCall { + c.ifNoneMatch_ = entityTag + return c +} + // Context sets the context to be used in this call's Do method. -func (c *InstancesSetServiceAccountCall) Context(ctx context.Context) *InstancesSetServiceAccountCall { +func (c *LicensesGetIamPolicyCall) Context(ctx context.Context) *LicensesGetIamPolicyCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *InstancesSetServiceAccountCall) Header() http.Header { +func (c *LicensesGetIamPolicyCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *InstancesSetServiceAccountCall) doRequest(alt string) (*http.Response, error) { - reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) - var body io.Reader = nil - body, err := googleapi.WithoutDataWrapper.JSONReader(c.instancessetserviceaccountrequest) - if err != nil { - return nil, err +func (c *LicensesGetIamPolicyCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) + if c.ifNoneMatch_ != "" { + reqHeaders.Set("If-None-Match", c.ifNoneMatch_) } c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instances/{instance}/setServiceAccount") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/licenses/{resource}/getIamPolicy") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("POST", urls, body) + req, err := http.NewRequest("GET", urls, nil) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ "project": c.project, - "zone": c.zone, - "instance": c.instance, + "resource": c.resource, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.licenses.getIamPolicy", "request", internallog.HTTPRequest(req, nil)) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.instances.setServiceAccount" call. +// Do executes the "compute.licenses.getIamPolicy" call. // 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 +// *Policy.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 *InstancesSetServiceAccountCall) Do(opts ...googleapi.CallOption) (*Operation, error) { +func (c *LicensesGetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -33774,58 +54787,64 @@ func (c *InstancesSetServiceAccountCall) Do(opts ...googleapi.CallOption) (*Oper if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } - ret := &Operation{ + ret := &Policy{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.licenses.getIamPolicy", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type InstancesSetShieldedInstanceIntegrityPolicyCall struct { - s *Service - project string - zone string - instance string - shieldedinstanceintegritypolicy *ShieldedInstanceIntegrityPolicy - urlParams_ gensupport.URLParams - ctx_ context.Context - header_ http.Header +type LicensesInsertCall struct { + s *Service + project string + license *License + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header } -// SetShieldedInstanceIntegrityPolicy: Sets the Shielded Instance integrity -// policy for an instance. You can only use this method on a running instance. -// This method supports PATCH semantics and uses the JSON merge patch format -// and processing rules. +// Insert: Create a License resource in the specified project. +// +// *Caution* This resource is intended +// +// for use only by third-party partners who are creatingCloud +// Marketplace +// images. // -// - instance: Name or id of the instance scoping this request. // - project: Project ID for this request. -// - zone: The name of the zone for this request. -func (r *InstancesService) SetShieldedInstanceIntegrityPolicy(project string, zone string, instance string, shieldedinstanceintegritypolicy *ShieldedInstanceIntegrityPolicy) *InstancesSetShieldedInstanceIntegrityPolicyCall { - c := &InstancesSetShieldedInstanceIntegrityPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)} +func (r *LicensesService) Insert(project string, license *License) *LicensesInsertCall { + c := &LicensesInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project - c.zone = zone - c.instance = instance - c.shieldedinstanceintegritypolicy = shieldedinstanceintegritypolicy + c.license = license 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 *InstancesSetShieldedInstanceIntegrityPolicyCall) RequestId(requestId string) *InstancesSetShieldedInstanceIntegrityPolicyCall { +// 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 *LicensesInsertCall) RequestId(requestId string) *LicensesInsertCall { c.urlParams_.Set("requestId", requestId) return c } @@ -33833,56 +54852,54 @@ func (c *InstancesSetShieldedInstanceIntegrityPolicyCall) RequestId(requestId st // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *InstancesSetShieldedInstanceIntegrityPolicyCall) Fields(s ...googleapi.Field) *InstancesSetShieldedInstanceIntegrityPolicyCall { +func (c *LicensesInsertCall) Fields(s ...googleapi.Field) *LicensesInsertCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } // Context sets the context to be used in this call's Do method. -func (c *InstancesSetShieldedInstanceIntegrityPolicyCall) Context(ctx context.Context) *InstancesSetShieldedInstanceIntegrityPolicyCall { +func (c *LicensesInsertCall) Context(ctx context.Context) *LicensesInsertCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *InstancesSetShieldedInstanceIntegrityPolicyCall) Header() http.Header { +func (c *LicensesInsertCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *InstancesSetShieldedInstanceIntegrityPolicyCall) doRequest(alt string) (*http.Response, error) { +func (c *LicensesInsertCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) - var body io.Reader = nil - body, err := googleapi.WithoutDataWrapper.JSONReader(c.shieldedinstanceintegritypolicy) + body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.license) if err != nil { return nil, err } c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instances/{instance}/setShieldedInstanceIntegrityPolicy") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/licenses") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("PATCH", urls, body) + req, err := http.NewRequest("POST", urls, body) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "zone": c.zone, - "instance": c.instance, + "project": c.project, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.licenses.insert", "request", internallog.HTTPRequest(req, body.Bytes())) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.instances.setShieldedInstanceIntegrityPolicy" call. +// Do executes the "compute.licenses.insert" call. // 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 *InstancesSetShieldedInstanceIntegrityPolicyCall) Do(opts ...googleapi.CallOption) (*Operation, error) { +func (c *LicensesInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -33908,106 +54925,233 @@ func (c *InstancesSetShieldedInstanceIntegrityPolicyCall) Do(opts ...googleapi.C }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.licenses.insert", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type InstancesSetTagsCall struct { - s *Service - project string - zone string - instance string - tags *Tags - urlParams_ gensupport.URLParams - ctx_ context.Context - header_ http.Header +type LicensesListCall struct { + s *Service + project string + urlParams_ gensupport.URLParams + ifNoneMatch_ string + ctx_ context.Context + header_ http.Header } -// SetTags: Sets network tags for the specified instance to the data included -// in the request. +// List: Retrieves the list of licenses +// available in the specified project. This method does not +// get any licenses that belong to other projects, including licenses +// attached +// to publicly-available images, like Debian 9. If you want to get a list +// of +// publicly-available licenses, use this method to make a request to +// the +// respective image project, such as debian-cloud orwindows-cloud. +// +// *Caution* This resource is intended +// +// for use only by third-party partners who are creatingCloud +// Marketplace +// images. // -// - instance: Name of the instance scoping this request. // - project: Project ID for this request. -// - zone: The name of the zone for this request. -func (r *InstancesService) SetTags(project string, zone string, instance string, tags *Tags) *InstancesSetTagsCall { - c := &InstancesSetTagsCall{s: r.s, urlParams_: make(gensupport.URLParams)} +func (r *LicensesService) List(project string) *LicensesListCall { + c := &LicensesListCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project - c.zone = zone - c.instance = instance - c.tags = tags 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 *InstancesSetTagsCall) RequestId(requestId string) *InstancesSetTagsCall { - c.urlParams_.Set("requestId", requestId) +// Filter sets the optional parameter "filter": A filter expression that +// filters resources listed in the response. Most +// Compute resources support two types of filter expressions: +// expressions that support regular expressions and expressions that follow +// API improvement proposal AIP-160. +// These two types of filter expressions cannot be mixed in one request. +// +// If you want to use AIP-160, your expression must specify the field name, +// an +// operator, and the value that you want to use for filtering. The value +// must be a string, a number, or a boolean. The 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`. +// +// The `:*` comparison can be used to test whether a key has been defined. +// For example, to find all objects with `owner` label +// use: +// ``` +// labels.owner:* +// ``` +// +// 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 onresource 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) +// ``` +// +// If you want to use a regular expression, use the `eq` (equal) or `ne` +// (not equal) operator against a single un-parenthesized expression with +// or +// without quotes or against multiple parenthesized expressions. +// Examples: +// +// `fieldname eq unquoted literal` +// `fieldname eq 'single quoted literal'` +// `fieldname eq "double quoted literal" +// `(fieldname1 eq literal) (fieldname2 ne "literal")` +// +// The literal value is interpreted as a regular expression using GoogleRE2 +// library syntax. +// The literal value must match the entire field. +// +// For example, to filter for instances that do not end with name +// "instance", +// you would use `name ne .*instance`. +// +// You cannot combine constraints on multiple fields using regular +// expressions. +func (c *LicensesListCall) Filter(filter string) *LicensesListCall { + 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 *LicensesListCall) MaxResults(maxResults int64) *LicensesListCall { + 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 *LicensesListCall) OrderBy(orderBy string) *LicensesListCall { + 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 *LicensesListCall) PageToken(pageToken string) *LicensesListCall { + c.urlParams_.Set("pageToken", pageToken) + return c +} + +// ReturnPartialSuccess sets the optional parameter "returnPartialSuccess": +// Opt-in for partial success behavior which provides partial results in +// case +// of failure. The default value is false. +// +// For example, when partial success behavior is enabled, aggregatedList for +// a +// single zone scope either returns all resources in the zone or no +// resources, +// with an error code. +func (c *LicensesListCall) ReturnPartialSuccess(returnPartialSuccess bool) *LicensesListCall { + c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess)) return c } // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *InstancesSetTagsCall) Fields(s ...googleapi.Field) *InstancesSetTagsCall { +func (c *LicensesListCall) Fields(s ...googleapi.Field) *LicensesListCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } +// IfNoneMatch sets an 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. +func (c *LicensesListCall) IfNoneMatch(entityTag string) *LicensesListCall { + c.ifNoneMatch_ = entityTag + return c +} + // Context sets the context to be used in this call's Do method. -func (c *InstancesSetTagsCall) Context(ctx context.Context) *InstancesSetTagsCall { +func (c *LicensesListCall) Context(ctx context.Context) *LicensesListCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *InstancesSetTagsCall) Header() http.Header { +func (c *LicensesListCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *InstancesSetTagsCall) doRequest(alt string) (*http.Response, error) { - reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) - var body io.Reader = nil - body, err := googleapi.WithoutDataWrapper.JSONReader(c.tags) - if err != nil { - return nil, err +func (c *LicensesListCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) + if c.ifNoneMatch_ != "" { + reqHeaders.Set("If-None-Match", c.ifNoneMatch_) } c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instances/{instance}/setTags") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/licenses") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("POST", urls, body) + req, err := http.NewRequest("GET", urls, nil) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "zone": c.zone, - "instance": c.instance, + "project": c.project, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.licenses.list", "request", internallog.HTTPRequest(req, nil)) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.instances.setTags" call. +// Do executes the "compute.licenses.list" call. // 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 *InstancesSetTagsCall) Do(opts ...googleapi.CallOption) (*Operation, error) { +// *LicensesListResponse.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 *LicensesListCall) Do(opts ...googleapi.CallOption) (*LicensesListResponse, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -34026,95 +55170,104 @@ func (c *InstancesSetTagsCall) Do(opts ...googleapi.CallOption) (*Operation, err if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } - ret := &Operation{ + ret := &LicensesListResponse{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.licenses.list", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type InstancesSimulateMaintenanceEventCall struct { - s *Service - project string - zone string - instance string - urlParams_ gensupport.URLParams - ctx_ context.Context - header_ http.Header +// 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 *LicensesListCall) Pages(ctx context.Context, f func(*LicensesListResponse) error) error { + c.ctx_ = ctx + defer c.PageToken(c.urlParams_.Get("pageToken")) + 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) + } } -// SimulateMaintenanceEvent: Simulates a host maintenance event on a VM. For -// more information, see Simulate a host maintenance event. +type LicensesSetIamPolicyCall struct { + s *Service + project string + resource string + globalsetpolicyrequest *GlobalSetPolicyRequest + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header +} + +// SetIamPolicy: Sets the access control policy on the specified +// resource. +// Replaces any existing policy. +// +// *Caution* This resource is intended +// +// for use only by third-party partners who are creatingCloud +// Marketplace +// images. // -// - instance: Name of the instance scoping this request. // - project: Project ID for this request. -// - zone: The name of the zone for this request. -func (r *InstancesService) SimulateMaintenanceEvent(project string, zone string, instance string) *InstancesSimulateMaintenanceEventCall { - c := &InstancesSimulateMaintenanceEventCall{s: r.s, urlParams_: make(gensupport.URLParams)} +// - resource: Name or id of the resource for this request. +func (r *LicensesService) SetIamPolicy(project string, resource string, globalsetpolicyrequest *GlobalSetPolicyRequest) *LicensesSetIamPolicyCall { + c := &LicensesSetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project - c.zone = zone - c.instance = instance - 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 *InstancesSimulateMaintenanceEventCall) RequestId(requestId string) *InstancesSimulateMaintenanceEventCall { - c.urlParams_.Set("requestId", requestId) - return c -} - -// WithExtendedNotifications sets the optional parameter -// "withExtendedNotifications": Determines whether the customers receive -// notifications before migration. Only applicable to SF vms. -func (c *InstancesSimulateMaintenanceEventCall) WithExtendedNotifications(withExtendedNotifications bool) *InstancesSimulateMaintenanceEventCall { - c.urlParams_.Set("withExtendedNotifications", fmt.Sprint(withExtendedNotifications)) + c.resource = resource + c.globalsetpolicyrequest = globalsetpolicyrequest return c } // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *InstancesSimulateMaintenanceEventCall) Fields(s ...googleapi.Field) *InstancesSimulateMaintenanceEventCall { +func (c *LicensesSetIamPolicyCall) Fields(s ...googleapi.Field) *LicensesSetIamPolicyCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } // Context sets the context to be used in this call's Do method. -func (c *InstancesSimulateMaintenanceEventCall) Context(ctx context.Context) *InstancesSimulateMaintenanceEventCall { +func (c *LicensesSetIamPolicyCall) Context(ctx context.Context) *LicensesSetIamPolicyCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *InstancesSimulateMaintenanceEventCall) Header() http.Header { +func (c *LicensesSetIamPolicyCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *InstancesSimulateMaintenanceEventCall) doRequest(alt string) (*http.Response, error) { - reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) - var body io.Reader = nil +func (c *LicensesSetIamPolicyCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) + body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.globalsetpolicyrequest) + if err != nil { + return nil, err + } c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instances/{instance}/simulateMaintenanceEvent") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/licenses/{resource}/setIamPolicy") urls += "?" + c.urlParams_.Encode() req, err := http.NewRequest("POST", urls, body) if err != nil { @@ -34123,18 +55276,18 @@ func (c *InstancesSimulateMaintenanceEventCall) doRequest(alt string) (*http.Res req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ "project": c.project, - "zone": c.zone, - "instance": c.instance, + "resource": c.resource, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.licenses.setIamPolicy", "request", internallog.HTTPRequest(req, body.Bytes())) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.instances.simulateMaintenanceEvent" call. +// Do executes the "compute.licenses.setIamPolicy" call. // 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 +// *Policy.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 *InstancesSimulateMaintenanceEventCall) Do(opts ...googleapi.CallOption) (*Operation, error) { +func (c *LicensesSetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -34153,87 +55306,82 @@ func (c *InstancesSimulateMaintenanceEventCall) Do(opts ...googleapi.CallOption) if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } - ret := &Operation{ + ret := &Policy{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.licenses.setIamPolicy", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type InstancesStartCall struct { - s *Service - project string - zone string - instance string - urlParams_ gensupport.URLParams - ctx_ context.Context - header_ http.Header +type LicensesTestIamPermissionsCall struct { + s *Service + project string + resource string + testpermissionsrequest *TestPermissionsRequest + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header } -// Start: Starts an instance that was stopped using the instances().stop -// method. For more information, see Restart an instance. +// TestIamPermissions: Returns permissions that a caller has on the specified +// resource. +// +// *Caution* This resource is intended +// +// for use only by third-party partners who are creatingCloud +// Marketplace +// images. // -// - instance: Name of the instance resource to start. // - project: Project ID for this request. -// - zone: The name of the zone for this request. -func (r *InstancesService) Start(project string, zone string, instance string) *InstancesStartCall { - c := &InstancesStartCall{s: r.s, urlParams_: make(gensupport.URLParams)} +// - resource: Name or id of the resource for this request. +func (r *LicensesService) TestIamPermissions(project string, resource string, testpermissionsrequest *TestPermissionsRequest) *LicensesTestIamPermissionsCall { + c := &LicensesTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project - c.zone = zone - c.instance = instance - 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 *InstancesStartCall) RequestId(requestId string) *InstancesStartCall { - c.urlParams_.Set("requestId", requestId) + c.resource = resource + c.testpermissionsrequest = testpermissionsrequest return c } // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *InstancesStartCall) Fields(s ...googleapi.Field) *InstancesStartCall { +func (c *LicensesTestIamPermissionsCall) Fields(s ...googleapi.Field) *LicensesTestIamPermissionsCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } // Context sets the context to be used in this call's Do method. -func (c *InstancesStartCall) Context(ctx context.Context) *InstancesStartCall { +func (c *LicensesTestIamPermissionsCall) Context(ctx context.Context) *LicensesTestIamPermissionsCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *InstancesStartCall) Header() http.Header { +func (c *LicensesTestIamPermissionsCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *InstancesStartCall) doRequest(alt string) (*http.Response, error) { - reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) - var body io.Reader = nil +func (c *LicensesTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) + body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.testpermissionsrequest) + if err != nil { + return nil, err + } c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instances/{instance}/start") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/licenses/{resource}/testIamPermissions") urls += "?" + c.urlParams_.Encode() req, err := http.NewRequest("POST", urls, body) if err != nil { @@ -34242,18 +55390,19 @@ func (c *InstancesStartCall) doRequest(alt string) (*http.Response, error) { req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ "project": c.project, - "zone": c.zone, - "instance": c.instance, + "resource": c.resource, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.licenses.testIamPermissions", "request", internallog.HTTPRequest(req, body.Bytes())) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.instances.start" call. +// Do executes the "compute.licenses.testIamPermissions" call. // 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 *InstancesStartCall) Do(opts ...googleapi.CallOption) (*Operation, error) { +// *TestPermissionsResponse.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 *LicensesTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -34272,113 +55421,130 @@ func (c *InstancesStartCall) Do(opts ...googleapi.CallOption) (*Operation, error if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } - ret := &Operation{ + ret := &TestPermissionsResponse{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.licenses.testIamPermissions", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type InstancesStartWithEncryptionKeyCall struct { - s *Service - project string - zone string - instance string - instancesstartwithencryptionkeyrequest *InstancesStartWithEncryptionKeyRequest - urlParams_ gensupport.URLParams - ctx_ context.Context - header_ http.Header +type LicensesUpdateCall struct { + s *Service + project string + license string + license2 *License + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header } -// StartWithEncryptionKey: Starts an instance that was stopped using the -// instances().stop method. For more information, see Restart an instance. +// Update: Updates a License resource in the specified project. // -// - instance: Name of the instance resource to start. +// *Caution* This resource is intended +// +// for use only by third-party partners who are creatingCloud +// Marketplace +// images. +// +// - license: The license name for this request. // - project: Project ID for this request. -// - zone: The name of the zone for this request. -func (r *InstancesService) StartWithEncryptionKey(project string, zone string, instance string, instancesstartwithencryptionkeyrequest *InstancesStartWithEncryptionKeyRequest) *InstancesStartWithEncryptionKeyCall { - c := &InstancesStartWithEncryptionKeyCall{s: r.s, urlParams_: make(gensupport.URLParams)} +func (r *LicensesService) Update(project string, license string, license2 *License) *LicensesUpdateCall { + c := &LicensesUpdateCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project - c.zone = zone - c.instance = instance - c.instancesstartwithencryptionkeyrequest = instancesstartwithencryptionkeyrequest + c.license = license + c.license2 = license2 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 *InstancesStartWithEncryptionKeyCall) RequestId(requestId string) *InstancesStartWithEncryptionKeyCall { +// 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 *LicensesUpdateCall) RequestId(requestId string) *LicensesUpdateCall { c.urlParams_.Set("requestId", requestId) return c } +// UpdateMask sets the optional parameter "updateMask": update_mask indicates +// fields to be updated as part of this request. +func (c *LicensesUpdateCall) UpdateMask(updateMask string) *LicensesUpdateCall { + c.urlParams_.Set("updateMask", updateMask) + return c +} + // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *InstancesStartWithEncryptionKeyCall) Fields(s ...googleapi.Field) *InstancesStartWithEncryptionKeyCall { +func (c *LicensesUpdateCall) Fields(s ...googleapi.Field) *LicensesUpdateCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } // Context sets the context to be used in this call's Do method. -func (c *InstancesStartWithEncryptionKeyCall) Context(ctx context.Context) *InstancesStartWithEncryptionKeyCall { +func (c *LicensesUpdateCall) Context(ctx context.Context) *LicensesUpdateCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *InstancesStartWithEncryptionKeyCall) Header() http.Header { +func (c *LicensesUpdateCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *InstancesStartWithEncryptionKeyCall) doRequest(alt string) (*http.Response, error) { +func (c *LicensesUpdateCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) - var body io.Reader = nil - body, err := googleapi.WithoutDataWrapper.JSONReader(c.instancesstartwithencryptionkeyrequest) + body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.license2) if err != nil { return nil, err } c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instances/{instance}/startWithEncryptionKey") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/licenses/{license}") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("POST", urls, body) + req, err := http.NewRequest("PATCH", urls, body) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "zone": c.zone, - "instance": c.instance, + "project": c.project, + "license": c.license, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.licenses.update", "request", internallog.HTTPRequest(req, body.Bytes())) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.instances.startWithEncryptionKey" call. +// Do executes the "compute.licenses.update" call. // 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 *InstancesStartWithEncryptionKeyCall) Do(opts ...googleapi.CallOption) (*Operation, error) { +func (c *LicensesUpdateCall) Do(opts ...googleapi.CallOption) (*Operation, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -34404,60 +55570,54 @@ func (c *InstancesStartWithEncryptionKeyCall) Do(opts ...googleapi.CallOption) ( }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.licenses.update", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type InstancesStopCall struct { - s *Service - project string - zone string - instance string - urlParams_ gensupport.URLParams - ctx_ context.Context - header_ http.Header +type MachineImagesDeleteCall struct { + s *Service + project string + machineImage string + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header } -// Stop: Stops a running instance, shutting it down cleanly, and allows you to -// restart the instance at a later time. Stopped instances do not incur VM -// usage charges while they are stopped. However, resources that the VM is -// using, such as persistent disks and static IP addresses, will continue to be -// charged until they are deleted. For more information, see Stopping an -// instance. +// Delete: Deletes the specified machine image. Deleting a machine image is +// permanent +// and cannot be undone. // -// - instance: Name of the instance resource to stop. +// - machineImage: The name of the machine image to delete. // - project: Project ID for this request. -// - zone: The name of the zone for this request. -func (r *InstancesService) Stop(project string, zone string, instance string) *InstancesStopCall { - c := &InstancesStopCall{s: r.s, urlParams_: make(gensupport.URLParams)} +func (r *MachineImagesService) Delete(project string, machineImage string) *MachineImagesDeleteCall { + c := &MachineImagesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project - c.zone = zone - c.instance = instance - return c -} - -// DiscardLocalSsd sets the optional parameter "discardLocalSsd": This property -// is required if the instance has any attached Local SSD disks. If false, -// Local SSD data will be preserved when the instance is suspended. If true, -// the contents of any attached Local SSD disks will be discarded. -func (c *InstancesStopCall) DiscardLocalSsd(discardLocalSsd bool) *InstancesStopCall { - c.urlParams_.Set("discardLocalSsd", fmt.Sprint(discardLocalSsd)) + c.machineImage = machineImage 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 *InstancesStopCall) RequestId(requestId string) *InstancesStopCall { +// 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 *MachineImagesDeleteCall) RequestId(requestId string) *MachineImagesDeleteCall { c.urlParams_.Set("requestId", requestId) return c } @@ -34465,52 +55625,51 @@ func (c *InstancesStopCall) RequestId(requestId string) *InstancesStopCall { // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *InstancesStopCall) Fields(s ...googleapi.Field) *InstancesStopCall { +func (c *MachineImagesDeleteCall) Fields(s ...googleapi.Field) *MachineImagesDeleteCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } // Context sets the context to be used in this call's Do method. -func (c *InstancesStopCall) Context(ctx context.Context) *InstancesStopCall { +func (c *MachineImagesDeleteCall) Context(ctx context.Context) *MachineImagesDeleteCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *InstancesStopCall) Header() http.Header { +func (c *MachineImagesDeleteCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *InstancesStopCall) doRequest(alt string) (*http.Response, error) { +func (c *MachineImagesDeleteCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) - var body io.Reader = nil c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instances/{instance}/stop") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/machineImages/{machineImage}") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("POST", urls, body) + req, err := http.NewRequest("DELETE", urls, nil) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "zone": c.zone, - "instance": c.instance, + "project": c.project, + "machineImage": c.machineImage, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.machineImages.delete", "request", internallog.HTTPRequest(req, nil)) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.instances.stop" call. +// Do executes the "compute.machineImages.delete" call. // 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 *InstancesStopCall) Do(opts ...googleapi.CallOption) (*Operation, error) { +func (c *MachineImagesDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -34536,114 +55695,94 @@ func (c *InstancesStopCall) Do(opts ...googleapi.CallOption) (*Operation, error) }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.machineImages.delete", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type InstancesSuspendCall struct { - s *Service - project string - zone string - instance string - urlParams_ gensupport.URLParams - ctx_ context.Context - header_ http.Header +type MachineImagesGetCall struct { + s *Service + project string + machineImage string + urlParams_ gensupport.URLParams + ifNoneMatch_ string + ctx_ context.Context + header_ http.Header } -// Suspend: This method suspends a running instance, saving its state to -// persistent storage, and allows you to resume the instance at a later time. -// Suspended instances have no compute costs (cores or RAM), and incur only -// storage charges for the saved VM memory and localSSD data. Any charged -// resources the virtual machine was using, such as persistent disks and static -// IP addresses, will continue to be charged while the instance is suspended. -// For more information, see Suspending and resuming an instance. +// Get: Returns the specified machine image. // -// - instance: Name of the instance resource to suspend. +// - machineImage: The name of the machine image. // - project: Project ID for this request. -// - zone: The name of the zone for this request. -func (r *InstancesService) Suspend(project string, zone string, instance string) *InstancesSuspendCall { - c := &InstancesSuspendCall{s: r.s, urlParams_: make(gensupport.URLParams)} +func (r *MachineImagesService) Get(project string, machineImage string) *MachineImagesGetCall { + c := &MachineImagesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project - c.zone = zone - c.instance = instance - return c -} - -// DiscardLocalSsd sets the optional parameter "discardLocalSsd": This property -// is required if the instance has any attached Local SSD disks. If false, -// Local SSD data will be preserved when the instance is suspended. If true, -// the contents of any attached Local SSD disks will be discarded. -func (c *InstancesSuspendCall) DiscardLocalSsd(discardLocalSsd bool) *InstancesSuspendCall { - c.urlParams_.Set("discardLocalSsd", fmt.Sprint(discardLocalSsd)) - 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 *InstancesSuspendCall) RequestId(requestId string) *InstancesSuspendCall { - c.urlParams_.Set("requestId", requestId) + c.machineImage = machineImage return c } // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *InstancesSuspendCall) Fields(s ...googleapi.Field) *InstancesSuspendCall { +func (c *MachineImagesGetCall) Fields(s ...googleapi.Field) *MachineImagesGetCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } +// IfNoneMatch sets an 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. +func (c *MachineImagesGetCall) IfNoneMatch(entityTag string) *MachineImagesGetCall { + c.ifNoneMatch_ = entityTag + return c +} + // Context sets the context to be used in this call's Do method. -func (c *InstancesSuspendCall) Context(ctx context.Context) *InstancesSuspendCall { +func (c *MachineImagesGetCall) Context(ctx context.Context) *MachineImagesGetCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *InstancesSuspendCall) Header() http.Header { +func (c *MachineImagesGetCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *InstancesSuspendCall) doRequest(alt string) (*http.Response, error) { +func (c *MachineImagesGetCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) - var body io.Reader = nil + if c.ifNoneMatch_ != "" { + reqHeaders.Set("If-None-Match", c.ifNoneMatch_) + } c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instances/{instance}/suspend") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/machineImages/{machineImage}") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("POST", urls, body) + req, err := http.NewRequest("GET", urls, nil) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "zone": c.zone, - "instance": c.instance, + "project": c.project, + "machineImage": c.machineImage, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.machineImages.get", "request", internallog.HTTPRequest(req, nil)) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.instances.suspend" call. +// Do executes the "compute.machineImages.get" call. // 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 +// *MachineImage.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 *InstancesSuspendCall) Do(opts ...googleapi.CallOption) (*Operation, error) { +func (c *MachineImagesGetCall) Do(opts ...googleapi.CallOption) (*MachineImage, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -34662,99 +55801,110 @@ func (c *InstancesSuspendCall) Do(opts ...googleapi.CallOption) (*Operation, err if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } - ret := &Operation{ + ret := &MachineImage{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.machineImages.get", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type InstancesTestIamPermissionsCall struct { - s *Service - project string - zone string - resource string - testpermissionsrequest *TestPermissionsRequest - urlParams_ gensupport.URLParams - ctx_ context.Context - header_ http.Header +type MachineImagesGetIamPolicyCall struct { + s *Service + project string + resource string + urlParams_ gensupport.URLParams + ifNoneMatch_ string + ctx_ context.Context + header_ http.Header } -// TestIamPermissions: Returns permissions that a caller has on the specified -// resource. +// GetIamPolicy: Gets the access control policy for a resource. May be empty if +// no such +// policy or resource exists. // // - project: Project ID for this request. // - resource: Name or id of the resource for this request. -// - zone: The name of the zone for this request. -func (r *InstancesService) TestIamPermissions(project string, zone string, resource string, testpermissionsrequest *TestPermissionsRequest) *InstancesTestIamPermissionsCall { - c := &InstancesTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)} +func (r *MachineImagesService) GetIamPolicy(project string, resource string) *MachineImagesGetIamPolicyCall { + c := &MachineImagesGetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project - c.zone = zone c.resource = resource - c.testpermissionsrequest = testpermissionsrequest + return c +} + +// OptionsRequestedPolicyVersion sets the optional parameter +// "optionsRequestedPolicyVersion": Requested IAM Policy version. +func (c *MachineImagesGetIamPolicyCall) OptionsRequestedPolicyVersion(optionsRequestedPolicyVersion int64) *MachineImagesGetIamPolicyCall { + c.urlParams_.Set("optionsRequestedPolicyVersion", fmt.Sprint(optionsRequestedPolicyVersion)) return c } // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *InstancesTestIamPermissionsCall) Fields(s ...googleapi.Field) *InstancesTestIamPermissionsCall { +func (c *MachineImagesGetIamPolicyCall) Fields(s ...googleapi.Field) *MachineImagesGetIamPolicyCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } +// IfNoneMatch sets an 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. +func (c *MachineImagesGetIamPolicyCall) IfNoneMatch(entityTag string) *MachineImagesGetIamPolicyCall { + c.ifNoneMatch_ = entityTag + return c +} + // Context sets the context to be used in this call's Do method. -func (c *InstancesTestIamPermissionsCall) Context(ctx context.Context) *InstancesTestIamPermissionsCall { +func (c *MachineImagesGetIamPolicyCall) Context(ctx context.Context) *MachineImagesGetIamPolicyCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *InstancesTestIamPermissionsCall) Header() http.Header { +func (c *MachineImagesGetIamPolicyCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *InstancesTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) { - reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) - var body io.Reader = nil - body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest) - if err != nil { - return nil, err +func (c *MachineImagesGetIamPolicyCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) + if c.ifNoneMatch_ != "" { + reqHeaders.Set("If-None-Match", c.ifNoneMatch_) } c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instances/{resource}/testIamPermissions") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/machineImages/{resource}/getIamPolicy") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("POST", urls, body) + req, err := http.NewRequest("GET", urls, nil) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ "project": c.project, - "zone": c.zone, "resource": c.resource, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.machineImages.getIamPolicy", "request", internallog.HTTPRequest(req, nil)) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.instances.testIamPermissions" call. +// Do executes the "compute.machineImages.getIamPolicy" call. // Any non-2xx status code is an error. Response headers are in either -// *TestPermissionsResponse.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 *InstancesTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) { +// *Policy.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 *MachineImagesGetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -34773,148 +55923,127 @@ func (c *InstancesTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*Tes if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } - ret := &TestPermissionsResponse{ + ret := &Policy{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.machineImages.getIamPolicy", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type InstancesUpdateCall struct { - s *Service - project string - zone string - instance string - instance2 *Instance - urlParams_ gensupport.URLParams - ctx_ context.Context - header_ http.Header +type MachineImagesInsertCall struct { + s *Service + project string + machineimage *MachineImage + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header } -// Update: Updates an instance only if the necessary resources are available. -// This method can update only a specific set of instance properties. See -// Updating a running instance for a list of updatable instance properties. +// Insert: Creates a machine image in the specified project using the +// data that is included in the request. If you are creating a new +// machine +// image to update an existing instance, your new machine image should use +// the +// same network or, if applicable, the same subnetwork as the +// original +// instance. // -// - instance: Name of the instance resource to update. // - project: Project ID for this request. -// - zone: The name of the zone for this request. -func (r *InstancesService) Update(project string, zone string, instance string, instance2 *Instance) *InstancesUpdateCall { - c := &InstancesUpdateCall{s: r.s, urlParams_: make(gensupport.URLParams)} +func (r *MachineImagesService) Insert(project string, machineimage *MachineImage) *MachineImagesInsertCall { + c := &MachineImagesInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project - c.zone = zone - c.instance = instance - c.instance2 = instance2 - return c -} - -// MinimalAction sets the optional parameter "minimalAction": Specifies the -// action to take when updating an instance even if the updated properties do -// not require it. If not specified, then Compute Engine acts based on the -// minimum action that the updated properties require. -// -// Possible values: -// -// "INVALID" -// "NO_EFFECT" - No changes can be made to the instance. -// "REFRESH" - The instance will not restart. -// "RESTART" - The instance will restart. -func (c *InstancesUpdateCall) MinimalAction(minimalAction string) *InstancesUpdateCall { - c.urlParams_.Set("minimalAction", minimalAction) + c.machineimage = machineimage return c } -// MostDisruptiveAllowedAction sets the optional parameter -// "mostDisruptiveAllowedAction": Specifies the most disruptive action that can -// be taken on the instance as part of the update. Compute Engine returns an -// error if the instance properties require a more disruptive action as part of -// the instance update. Valid options from lowest to highest are NO_EFFECT, -// REFRESH, and RESTART. +// 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. // -// Possible values: +// 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. // -// "INVALID" -// "NO_EFFECT" - No changes can be made to the instance. -// "REFRESH" - The instance will not restart. -// "RESTART" - The instance will restart. -func (c *InstancesUpdateCall) MostDisruptiveAllowedAction(mostDisruptiveAllowedAction string) *InstancesUpdateCall { - c.urlParams_.Set("mostDisruptiveAllowedAction", mostDisruptiveAllowedAction) +// The request ID must be +// a valid UUID with the exception that zero UUID is not +// supported +// (00000000-0000-0000-0000-000000000000). +func (c *MachineImagesInsertCall) RequestId(requestId string) *MachineImagesInsertCall { + c.urlParams_.Set("requestId", requestId) 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 *InstancesUpdateCall) RequestId(requestId string) *InstancesUpdateCall { - c.urlParams_.Set("requestId", requestId) +// SourceInstance sets the optional parameter "sourceInstance": Required. +// Source instance that is used to create the machine image from. +func (c *MachineImagesInsertCall) SourceInstance(sourceInstance string) *MachineImagesInsertCall { + c.urlParams_.Set("sourceInstance", sourceInstance) return c } // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *InstancesUpdateCall) Fields(s ...googleapi.Field) *InstancesUpdateCall { +func (c *MachineImagesInsertCall) Fields(s ...googleapi.Field) *MachineImagesInsertCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } // Context sets the context to be used in this call's Do method. -func (c *InstancesUpdateCall) Context(ctx context.Context) *InstancesUpdateCall { +func (c *MachineImagesInsertCall) Context(ctx context.Context) *MachineImagesInsertCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *InstancesUpdateCall) Header() http.Header { +func (c *MachineImagesInsertCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *InstancesUpdateCall) doRequest(alt string) (*http.Response, error) { +func (c *MachineImagesInsertCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) - var body io.Reader = nil - body, err := googleapi.WithoutDataWrapper.JSONReader(c.instance2) + body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.machineimage) if err != nil { return nil, err } c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instances/{instance}") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/machineImages") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("PUT", urls, body) + req, err := http.NewRequest("POST", urls, body) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "zone": c.zone, - "instance": c.instance, + "project": c.project, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.machineImages.insert", "request", internallog.HTTPRequest(req, body.Bytes())) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.instances.update" call. +// Do executes the "compute.machineImages.insert" call. // 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 *InstancesUpdateCall) Do(opts ...googleapi.CallOption) (*Operation, error) { +func (c *MachineImagesInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -34940,111 +56069,220 @@ func (c *InstancesUpdateCall) Do(opts ...googleapi.CallOption) (*Operation, erro }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.machineImages.insert", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type InstancesUpdateAccessConfigCall struct { +type MachineImagesListCall struct { s *Service project string - zone string - instance string - accessconfig *AccessConfig urlParams_ gensupport.URLParams + ifNoneMatch_ string ctx_ context.Context header_ http.Header } -// UpdateAccessConfig: Updates the specified access config from an instance's -// network interface with the data included in the request. This method -// supports PATCH semantics and uses the JSON merge patch format and processing -// rules. +// List: Retrieves a list of machine images that are contained within +// the specified project. // -// - instance: The instance name for this request. -// - networkInterface: The name of the network interface where the access -// config is attached. -// - project: Project ID for this request. -// - zone: The name of the zone for this request. -func (r *InstancesService) UpdateAccessConfig(project string, zone string, instance string, networkInterface string, accessconfig *AccessConfig) *InstancesUpdateAccessConfigCall { - c := &InstancesUpdateAccessConfigCall{s: r.s, urlParams_: make(gensupport.URLParams)} +// - project: Project ID for this request. +func (r *MachineImagesService) List(project string) *MachineImagesListCall { + c := &MachineImagesListCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project - c.zone = zone - c.instance = instance - c.urlParams_.Set("networkInterface", networkInterface) - c.accessconfig = accessconfig 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 *InstancesUpdateAccessConfigCall) RequestId(requestId string) *InstancesUpdateAccessConfigCall { - c.urlParams_.Set("requestId", requestId) +// Filter sets the optional parameter "filter": A filter expression that +// filters resources listed in the response. Most +// Compute resources support two types of filter expressions: +// expressions that support regular expressions and expressions that follow +// API improvement proposal AIP-160. +// These two types of filter expressions cannot be mixed in one request. +// +// If you want to use AIP-160, your expression must specify the field name, +// an +// operator, and the value that you want to use for filtering. The value +// must be a string, a number, or a boolean. The 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`. +// +// The `:*` comparison can be used to test whether a key has been defined. +// For example, to find all objects with `owner` label +// use: +// ``` +// labels.owner:* +// ``` +// +// 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 onresource 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) +// ``` +// +// If you want to use a regular expression, use the `eq` (equal) or `ne` +// (not equal) operator against a single un-parenthesized expression with +// or +// without quotes or against multiple parenthesized expressions. +// Examples: +// +// `fieldname eq unquoted literal` +// `fieldname eq 'single quoted literal'` +// `fieldname eq "double quoted literal" +// `(fieldname1 eq literal) (fieldname2 ne "literal")` +// +// The literal value is interpreted as a regular expression using GoogleRE2 +// library syntax. +// The literal value must match the entire field. +// +// For example, to filter for instances that do not end with name +// "instance", +// you would use `name ne .*instance`. +// +// You cannot combine constraints on multiple fields using regular +// expressions. +func (c *MachineImagesListCall) Filter(filter string) *MachineImagesListCall { + 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 *MachineImagesListCall) MaxResults(maxResults int64) *MachineImagesListCall { + 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 *MachineImagesListCall) OrderBy(orderBy string) *MachineImagesListCall { + 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 *MachineImagesListCall) PageToken(pageToken string) *MachineImagesListCall { + c.urlParams_.Set("pageToken", pageToken) + return c +} + +// ReturnPartialSuccess sets the optional parameter "returnPartialSuccess": +// Opt-in for partial success behavior which provides partial results in +// case +// of failure. The default value is false. +// +// For example, when partial success behavior is enabled, aggregatedList for +// a +// single zone scope either returns all resources in the zone or no +// resources, +// with an error code. +func (c *MachineImagesListCall) ReturnPartialSuccess(returnPartialSuccess bool) *MachineImagesListCall { + c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess)) return c } // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *InstancesUpdateAccessConfigCall) Fields(s ...googleapi.Field) *InstancesUpdateAccessConfigCall { +func (c *MachineImagesListCall) Fields(s ...googleapi.Field) *MachineImagesListCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } +// IfNoneMatch sets an 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. +func (c *MachineImagesListCall) IfNoneMatch(entityTag string) *MachineImagesListCall { + c.ifNoneMatch_ = entityTag + return c +} + // Context sets the context to be used in this call's Do method. -func (c *InstancesUpdateAccessConfigCall) Context(ctx context.Context) *InstancesUpdateAccessConfigCall { +func (c *MachineImagesListCall) Context(ctx context.Context) *MachineImagesListCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *InstancesUpdateAccessConfigCall) Header() http.Header { +func (c *MachineImagesListCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *InstancesUpdateAccessConfigCall) doRequest(alt string) (*http.Response, error) { - reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) - var body io.Reader = nil - body, err := googleapi.WithoutDataWrapper.JSONReader(c.accessconfig) - if err != nil { - return nil, err +func (c *MachineImagesListCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) + if c.ifNoneMatch_ != "" { + reqHeaders.Set("If-None-Match", c.ifNoneMatch_) } c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instances/{instance}/updateAccessConfig") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/machineImages") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("POST", urls, body) + req, err := http.NewRequest("GET", urls, nil) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "zone": c.zone, - "instance": c.instance, + "project": c.project, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.machineImages.list", "request", internallog.HTTPRequest(req, nil)) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.instances.updateAccessConfig" call. +// Do executes the "compute.machineImages.list" call. // 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 *InstancesUpdateAccessConfigCall) Do(opts ...googleapi.CallOption) (*Operation, error) { +// *MachineImageList.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 *MachineImagesListCall) Do(opts ...googleapi.CallOption) (*MachineImageList, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -35063,114 +56301,118 @@ func (c *InstancesUpdateAccessConfigCall) Do(opts ...googleapi.CallOption) (*Ope if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } - ret := &Operation{ + ret := &MachineImageList{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.machineImages.list", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type InstancesUpdateDisplayDeviceCall struct { - s *Service - project string - zone string - instance string - displaydevice *DisplayDevice - urlParams_ gensupport.URLParams - ctx_ context.Context - header_ http.Header +// 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 *MachineImagesListCall) Pages(ctx context.Context, f func(*MachineImageList) error) error { + c.ctx_ = ctx + defer c.PageToken(c.urlParams_.Get("pageToken")) + 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) + } +} + +type MachineImagesSetIamPolicyCall struct { + s *Service + project string + resource string + globalsetpolicyrequest *GlobalSetPolicyRequest + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header } -// UpdateDisplayDevice: Updates the Display config for a VM instance. You can -// only use this method on a stopped VM instance. This method supports PATCH -// semantics and uses the JSON merge patch format and processing rules. +// SetIamPolicy: Sets the access control policy on the specified +// resource. +// Replaces any existing policy. // -// - instance: Name of the instance scoping this request. // - project: Project ID for this request. -// - zone: The name of the zone for this request. -func (r *InstancesService) UpdateDisplayDevice(project string, zone string, instance string, displaydevice *DisplayDevice) *InstancesUpdateDisplayDeviceCall { - c := &InstancesUpdateDisplayDeviceCall{s: r.s, urlParams_: make(gensupport.URLParams)} +// - resource: Name or id of the resource for this request. +func (r *MachineImagesService) SetIamPolicy(project string, resource string, globalsetpolicyrequest *GlobalSetPolicyRequest) *MachineImagesSetIamPolicyCall { + c := &MachineImagesSetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project - c.zone = zone - c.instance = instance - c.displaydevice = displaydevice - 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 *InstancesUpdateDisplayDeviceCall) RequestId(requestId string) *InstancesUpdateDisplayDeviceCall { - c.urlParams_.Set("requestId", requestId) + c.resource = resource + c.globalsetpolicyrequest = globalsetpolicyrequest return c } // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *InstancesUpdateDisplayDeviceCall) Fields(s ...googleapi.Field) *InstancesUpdateDisplayDeviceCall { +func (c *MachineImagesSetIamPolicyCall) Fields(s ...googleapi.Field) *MachineImagesSetIamPolicyCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } // Context sets the context to be used in this call's Do method. -func (c *InstancesUpdateDisplayDeviceCall) Context(ctx context.Context) *InstancesUpdateDisplayDeviceCall { +func (c *MachineImagesSetIamPolicyCall) Context(ctx context.Context) *MachineImagesSetIamPolicyCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *InstancesUpdateDisplayDeviceCall) Header() http.Header { +func (c *MachineImagesSetIamPolicyCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *InstancesUpdateDisplayDeviceCall) doRequest(alt string) (*http.Response, error) { +func (c *MachineImagesSetIamPolicyCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) - var body io.Reader = nil - body, err := googleapi.WithoutDataWrapper.JSONReader(c.displaydevice) + body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.globalsetpolicyrequest) if err != nil { return nil, err } c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instances/{instance}/updateDisplayDevice") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/machineImages/{resource}/setIamPolicy") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("PATCH", urls, body) + req, err := http.NewRequest("POST", urls, body) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ "project": c.project, - "zone": c.zone, - "instance": c.instance, + "resource": c.resource, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.machineImages.setIamPolicy", "request", internallog.HTTPRequest(req, body.Bytes())) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.instances.updateDisplayDevice" call. +// Do executes the "compute.machineImages.setIamPolicy" call. // 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 +// *Policy.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 *InstancesUpdateDisplayDeviceCall) Do(opts ...googleapi.CallOption) (*Operation, error) { +func (c *MachineImagesSetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -35189,118 +56431,97 @@ func (c *InstancesUpdateDisplayDeviceCall) Do(opts ...googleapi.CallOption) (*Op if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } - ret := &Operation{ + ret := &Policy{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.machineImages.setIamPolicy", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type InstancesUpdateNetworkInterfaceCall struct { - s *Service - project string - zone string - instance string - networkinterface *NetworkInterface - urlParams_ gensupport.URLParams - ctx_ context.Context - header_ http.Header +type MachineImagesSetLabelsCall struct { + s *Service + project string + resource string + globalsetlabelsrequest *GlobalSetLabelsRequest + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header } -// UpdateNetworkInterface: Updates an instance's network interface. This method -// can only update an interface's alias IP range and attached network. See -// Modifying alias IP ranges for an existing instance for instructions on -// changing alias IP ranges. See Migrating a VM between networks for -// instructions on migrating an interface. This method follows PATCH semantics. +// SetLabels: Sets the labels on a machine image. To learn more about labels, +// read theLabeling +// Resources documentation. // -// - instance: The instance name for this request. -// - networkInterface: The name of the network interface to update. // - project: Project ID for this request. -// - zone: The name of the zone for this request. -func (r *InstancesService) UpdateNetworkInterface(project string, zone string, instance string, networkInterface string, networkinterface *NetworkInterface) *InstancesUpdateNetworkInterfaceCall { - c := &InstancesUpdateNetworkInterfaceCall{s: r.s, urlParams_: make(gensupport.URLParams)} +// - resource: Name or id of the resource for this request. +func (r *MachineImagesService) SetLabels(project string, resource string, globalsetlabelsrequest *GlobalSetLabelsRequest) *MachineImagesSetLabelsCall { + c := &MachineImagesSetLabelsCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project - c.zone = zone - c.instance = instance - c.urlParams_.Set("networkInterface", networkInterface) - c.networkinterface = networkinterface - 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 *InstancesUpdateNetworkInterfaceCall) RequestId(requestId string) *InstancesUpdateNetworkInterfaceCall { - c.urlParams_.Set("requestId", requestId) + c.resource = resource + c.globalsetlabelsrequest = globalsetlabelsrequest return c } // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *InstancesUpdateNetworkInterfaceCall) Fields(s ...googleapi.Field) *InstancesUpdateNetworkInterfaceCall { +func (c *MachineImagesSetLabelsCall) Fields(s ...googleapi.Field) *MachineImagesSetLabelsCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } // Context sets the context to be used in this call's Do method. -func (c *InstancesUpdateNetworkInterfaceCall) Context(ctx context.Context) *InstancesUpdateNetworkInterfaceCall { +func (c *MachineImagesSetLabelsCall) Context(ctx context.Context) *MachineImagesSetLabelsCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *InstancesUpdateNetworkInterfaceCall) Header() http.Header { +func (c *MachineImagesSetLabelsCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *InstancesUpdateNetworkInterfaceCall) doRequest(alt string) (*http.Response, error) { +func (c *MachineImagesSetLabelsCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) - var body io.Reader = nil - body, err := googleapi.WithoutDataWrapper.JSONReader(c.networkinterface) + body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.globalsetlabelsrequest) if err != nil { return nil, err } c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instances/{instance}/updateNetworkInterface") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/machineImages/{resource}/setLabels") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("PATCH", urls, body) + req, err := http.NewRequest("POST", urls, body) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ "project": c.project, - "zone": c.zone, - "instance": c.instance, + "resource": c.resource, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.machineImages.setLabels", "request", internallog.HTTPRequest(req, body.Bytes())) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.instances.updateNetworkInterface" call. +// Do executes the "compute.machineImages.setLabels" call. // 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 *InstancesUpdateNetworkInterfaceCall) Do(opts ...googleapi.CallOption) (*Operation, error) { +func (c *MachineImagesSetLabelsCall) Do(opts ...googleapi.CallOption) (*Operation, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -35326,108 +56547,90 @@ func (c *InstancesUpdateNetworkInterfaceCall) Do(opts ...googleapi.CallOption) ( }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.machineImages.setLabels", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type InstancesUpdateShieldedInstanceConfigCall struct { +type MachineImagesTestIamPermissionsCall struct { s *Service project string - zone string - instance string - shieldedinstanceconfig *ShieldedInstanceConfig + resource string + testpermissionsrequest *TestPermissionsRequest urlParams_ gensupport.URLParams ctx_ context.Context header_ http.Header } -// UpdateShieldedInstanceConfig: Updates the Shielded Instance config for an -// instance. You can only use this method on a stopped instance. This method -// supports PATCH semantics and uses the JSON merge patch format and processing -// rules. +// TestIamPermissions: Returns permissions that a caller has on the specified +// resource. // -// - instance: Name or id of the instance scoping this request. // - project: Project ID for this request. -// - zone: The name of the zone for this request. -func (r *InstancesService) UpdateShieldedInstanceConfig(project string, zone string, instance string, shieldedinstanceconfig *ShieldedInstanceConfig) *InstancesUpdateShieldedInstanceConfigCall { - c := &InstancesUpdateShieldedInstanceConfigCall{s: r.s, urlParams_: make(gensupport.URLParams)} - c.project = project - c.zone = zone - c.instance = instance - c.shieldedinstanceconfig = shieldedinstanceconfig - 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 *InstancesUpdateShieldedInstanceConfigCall) RequestId(requestId string) *InstancesUpdateShieldedInstanceConfigCall { - c.urlParams_.Set("requestId", requestId) +// - resource: Name or id of the resource for this request. +func (r *MachineImagesService) TestIamPermissions(project string, resource string, testpermissionsrequest *TestPermissionsRequest) *MachineImagesTestIamPermissionsCall { + c := &MachineImagesTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)} + c.project = project + c.resource = resource + c.testpermissionsrequest = testpermissionsrequest return c } // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *InstancesUpdateShieldedInstanceConfigCall) Fields(s ...googleapi.Field) *InstancesUpdateShieldedInstanceConfigCall { +func (c *MachineImagesTestIamPermissionsCall) Fields(s ...googleapi.Field) *MachineImagesTestIamPermissionsCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } // Context sets the context to be used in this call's Do method. -func (c *InstancesUpdateShieldedInstanceConfigCall) Context(ctx context.Context) *InstancesUpdateShieldedInstanceConfigCall { +func (c *MachineImagesTestIamPermissionsCall) Context(ctx context.Context) *MachineImagesTestIamPermissionsCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *InstancesUpdateShieldedInstanceConfigCall) Header() http.Header { +func (c *MachineImagesTestIamPermissionsCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *InstancesUpdateShieldedInstanceConfigCall) doRequest(alt string) (*http.Response, error) { +func (c *MachineImagesTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) - var body io.Reader = nil - body, err := googleapi.WithoutDataWrapper.JSONReader(c.shieldedinstanceconfig) + body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.testpermissionsrequest) if err != nil { return nil, err } c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instances/{instance}/updateShieldedInstanceConfig") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/machineImages/{resource}/testIamPermissions") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("PATCH", urls, body) + req, err := http.NewRequest("POST", urls, body) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ "project": c.project, - "zone": c.zone, - "instance": c.instance, + "resource": c.resource, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.machineImages.testIamPermissions", "request", internallog.HTTPRequest(req, body.Bytes())) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.instances.updateShieldedInstanceConfig" call. +// Do executes the "compute.machineImages.testIamPermissions" call. // 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 *InstancesUpdateShieldedInstanceConfigCall) Do(opts ...googleapi.CallOption) (*Operation, error) { +// *TestPermissionsResponse.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 *MachineImagesTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -35446,20 +56649,22 @@ func (c *InstancesUpdateShieldedInstanceConfigCall) Do(opts ...googleapi.CallOpt if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } - ret := &Operation{ + ret := &TestPermissionsResponse{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.machineImages.testIamPermissions", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type InstantSnapshotsAggregatedListCall struct { +type MachineTypesAggregatedListCall struct { s *Service project string urlParams_ gensupport.URLParams @@ -35468,112 +56673,169 @@ type InstantSnapshotsAggregatedListCall struct { header_ http.Header } -// AggregatedList: Retrieves an aggregated list of instantSnapshots. To prevent -// failure, Google recommends that you set the `returnPartialSuccess` parameter -// to `true`. +// AggregatedList: Retrieves an aggregated list of machine types. +// +// To prevent failure, Google recommends that you set +// the +// `returnPartialSuccess` parameter to `true`. // // - project: Project ID for this request. -func (r *InstantSnapshotsService) AggregatedList(project string) *InstantSnapshotsAggregatedListCall { - c := &InstantSnapshotsAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)} +func (r *MachineTypesService) AggregatedList(project string) *MachineTypesAggregatedListCall { + c := &MachineTypesAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project return c } // Filter sets the optional parameter "filter": A filter expression that -// filters resources listed in the response. Most Compute resources support two -// types of filter expressions: expressions that support regular expressions -// and expressions that follow API improvement proposal AIP-160. These two -// types of filter expressions cannot be mixed in one request. If you want to -// use AIP-160, your expression must specify the field name, an operator, and -// the value that you want to use for filtering. The value must be a string, a -// number, or a boolean. The 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`. The `:*` comparison can be used to test whether a key has -// been defined. For example, to find all objects with `owner` label use: ``` -// labels.owner:* ``` 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) ``` If you want to use a regular -// expression, use the `eq` (equal) or `ne` (not equal) operator against a -// single un-parenthesized expression with or without quotes or against -// multiple parenthesized expressions. Examples: `fieldname eq unquoted -// literal` `fieldname eq 'single quoted literal'` `fieldname eq "double quoted -// literal" `(fieldname1 eq literal) (fieldname2 ne "literal")` The literal -// value is interpreted as a regular expression using Google RE2 library -// syntax. The literal value must match the entire field. For example, to -// filter for instances that do not end with name "instance", you would use -// `name ne .*instance`. You cannot combine constraints on multiple fields -// using regular expressions. -func (c *InstantSnapshotsAggregatedListCall) Filter(filter string) *InstantSnapshotsAggregatedListCall { +// filters resources listed in the response. Most +// Compute resources support two types of filter expressions: +// expressions that support regular expressions and expressions that follow +// API improvement proposal AIP-160. +// These two types of filter expressions cannot be mixed in one request. +// +// If you want to use AIP-160, your expression must specify the field name, +// an +// operator, and the value that you want to use for filtering. The value +// must be a string, a number, or a boolean. The 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`. +// +// The `:*` comparison can be used to test whether a key has been defined. +// For example, to find all objects with `owner` label +// use: +// ``` +// labels.owner:* +// ``` +// +// 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 onresource 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) +// ``` +// +// If you want to use a regular expression, use the `eq` (equal) or `ne` +// (not equal) operator against a single un-parenthesized expression with +// or +// without quotes or against multiple parenthesized expressions. +// Examples: +// +// `fieldname eq unquoted literal` +// `fieldname eq 'single quoted literal'` +// `fieldname eq "double quoted literal" +// `(fieldname1 eq literal) (fieldname2 ne "literal")` +// +// The literal value is interpreted as a regular expression using GoogleRE2 +// library syntax. +// The literal value must match the entire field. +// +// For example, to filter for instances that do not end with name +// "instance", +// you would use `name ne .*instance`. +// +// You cannot combine constraints on multiple fields using regular +// expressions. +func (c *MachineTypesAggregatedListCall) Filter(filter string) *MachineTypesAggregatedListCall { c.urlParams_.Set("filter", filter) return c } // IncludeAllScopes sets the optional parameter "includeAllScopes": Indicates -// whether every visible scope for each scope type (zone, region, global) -// should be included in the response. For new resource types added after this -// field, the flag has no effect as new resource types will always include -// every visible scope for each scope type in response. For resource types -// which predate this field, if this flag is omitted or false, only scopes of -// the scope types where the resource type is expected to be found will be -// included. -func (c *InstantSnapshotsAggregatedListCall) IncludeAllScopes(includeAllScopes bool) *InstantSnapshotsAggregatedListCall { +// whether every visible scope for each scope type (zone, region, +// global) should be included in the response. For new resource types +// added +// after this field, the flag has no effect as new resource types will +// always +// include every visible scope for each scope type in response. For +// resource +// types which predate this field, if this flag is omitted or false, +// only +// scopes of the scope types where the resource type is expected to be +// found +// will be included. +func (c *MachineTypesAggregatedListCall) IncludeAllScopes(includeAllScopes bool) *MachineTypesAggregatedListCall { c.urlParams_.Set("includeAllScopes", fmt.Sprint(includeAllScopes)) 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 *InstantSnapshotsAggregatedListCall) MaxResults(maxResults int64) *InstantSnapshotsAggregatedListCall { +// 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 *MachineTypesAggregatedListCall) MaxResults(maxResults int64) *MachineTypesAggregatedListCall { 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 *InstantSnapshotsAggregatedListCall) OrderBy(orderBy string) *InstantSnapshotsAggregatedListCall { +// 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 *MachineTypesAggregatedListCall) OrderBy(orderBy string) *MachineTypesAggregatedListCall { 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 *InstantSnapshotsAggregatedListCall) PageToken(pageToken string) *InstantSnapshotsAggregatedListCall { +// use. Set `pageToken` to the +// `nextPageToken` returned by a previous list request to get +// the next page of results. +func (c *MachineTypesAggregatedListCall) PageToken(pageToken string) *MachineTypesAggregatedListCall { c.urlParams_.Set("pageToken", pageToken) return c } // ReturnPartialSuccess sets the optional parameter "returnPartialSuccess": -// Opt-in for partial success behavior which provides partial results in case -// of failure. The default value is false. For example, when partial success -// behavior is enabled, aggregatedList for a single zone scope either returns -// all resources in the zone or no resources, with an error code. -func (c *InstantSnapshotsAggregatedListCall) ReturnPartialSuccess(returnPartialSuccess bool) *InstantSnapshotsAggregatedListCall { +// Opt-in for partial success behavior which provides partial results in +// case +// of failure. The default value is false. +// +// For example, when partial success behavior is enabled, aggregatedList for +// a +// single zone scope either returns all resources in the zone or no +// resources, +// with an error code. +func (c *MachineTypesAggregatedListCall) ReturnPartialSuccess(returnPartialSuccess bool) *MachineTypesAggregatedListCall { c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess)) return c } // ServiceProjectNumber sets the optional parameter "serviceProjectNumber": The -// Shared VPC service project id or service project number for which aggregated -// list request is invoked for subnetworks list-usable api. -func (c *InstantSnapshotsAggregatedListCall) ServiceProjectNumber(serviceProjectNumber int64) *InstantSnapshotsAggregatedListCall { +// Shared VPC service project id or service project number for which +// aggregated list request is invoked for subnetworks list-usable api. +func (c *MachineTypesAggregatedListCall) ServiceProjectNumber(serviceProjectNumber int64) *MachineTypesAggregatedListCall { c.urlParams_.Set("serviceProjectNumber", fmt.Sprint(serviceProjectNumber)) return c } @@ -35581,7 +56843,7 @@ func (c *InstantSnapshotsAggregatedListCall) ServiceProjectNumber(serviceProject // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *InstantSnapshotsAggregatedListCall) Fields(s ...googleapi.Field) *InstantSnapshotsAggregatedListCall { +func (c *MachineTypesAggregatedListCall) Fields(s ...googleapi.Field) *MachineTypesAggregatedListCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } @@ -35589,37 +56851,36 @@ func (c *InstantSnapshotsAggregatedListCall) Fields(s ...googleapi.Field) *Insta // IfNoneMatch sets an 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. -func (c *InstantSnapshotsAggregatedListCall) IfNoneMatch(entityTag string) *InstantSnapshotsAggregatedListCall { +func (c *MachineTypesAggregatedListCall) IfNoneMatch(entityTag string) *MachineTypesAggregatedListCall { c.ifNoneMatch_ = entityTag return c } // Context sets the context to be used in this call's Do method. -func (c *InstantSnapshotsAggregatedListCall) Context(ctx context.Context) *InstantSnapshotsAggregatedListCall { +func (c *MachineTypesAggregatedListCall) Context(ctx context.Context) *MachineTypesAggregatedListCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *InstantSnapshotsAggregatedListCall) Header() http.Header { +func (c *MachineTypesAggregatedListCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *InstantSnapshotsAggregatedListCall) doRequest(alt string) (*http.Response, error) { +func (c *MachineTypesAggregatedListCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) if c.ifNoneMatch_ != "" { reqHeaders.Set("If-None-Match", c.ifNoneMatch_) } - var body io.Reader = nil c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/aggregated/instantSnapshots") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/aggregated/machineTypes") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("GET", urls, body) + req, err := http.NewRequest("GET", urls, nil) if err != nil { return nil, err } @@ -35627,16 +56888,17 @@ func (c *InstantSnapshotsAggregatedListCall) doRequest(alt string) (*http.Respon googleapi.Expand(req.URL, map[string]string{ "project": c.project, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.machineTypes.aggregatedList", "request", internallog.HTTPRequest(req, nil)) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.instantSnapshots.aggregatedList" call. +// Do executes the "compute.machineTypes.aggregatedList" call. // Any non-2xx status code is an error. Response headers are in either -// *InstantSnapshotAggregatedList.ServerResponse.Header or (if a response was +// *MachineTypeAggregatedList.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 *InstantSnapshotsAggregatedListCall) Do(opts ...googleapi.CallOption) (*InstantSnapshotAggregatedList, error) { +func (c *MachineTypesAggregatedListCall) Do(opts ...googleapi.CallOption) (*MachineTypeAggregatedList, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -35655,23 +56917,25 @@ func (c *InstantSnapshotsAggregatedListCall) Do(opts ...googleapi.CallOption) (* if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } - ret := &InstantSnapshotAggregatedList{ + ret := &MachineTypeAggregatedList{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.machineTypes.aggregatedList", "response", internallog.HTTPResponse(res, b)) return ret, nil } // 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 *InstantSnapshotsAggregatedListCall) Pages(ctx context.Context, f func(*InstantSnapshotAggregatedList) error) error { +func (c *MachineTypesAggregatedListCall) Pages(ctx context.Context, f func(*MachineTypeAggregatedList) error) error { c.ctx_ = ctx defer c.PageToken(c.urlParams_.Get("pageToken")) for { @@ -35689,98 +56953,90 @@ func (c *InstantSnapshotsAggregatedListCall) Pages(ctx context.Context, f func(* } } -type InstantSnapshotsDeleteCall struct { - s *Service - project string - zone string - instantSnapshot string - urlParams_ gensupport.URLParams - ctx_ context.Context - header_ http.Header +type MachineTypesGetCall struct { + s *Service + project string + zone string + machineType string + urlParams_ gensupport.URLParams + ifNoneMatch_ string + ctx_ context.Context + header_ http.Header } -// Delete: Deletes the specified InstantSnapshot resource. Keep in mind that -// deleting a single instantSnapshot might not necessarily delete all the data -// on that instantSnapshot. If any data on the instantSnapshot that is marked -// for deletion is needed for subsequent instantSnapshots, the data will be -// moved to the next corresponding instantSnapshot. For more information, see -// Deleting instantSnapshots. +// Get: Returns the specified machine type. // -// - instantSnapshot: Name of the InstantSnapshot resource to delete. +// - machineType: Name of the machine type to return. // - project: Project ID for this request. // - zone: The name of the zone for this request. -func (r *InstantSnapshotsService) Delete(project string, zone string, instantSnapshot string) *InstantSnapshotsDeleteCall { - c := &InstantSnapshotsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)} +func (r *MachineTypesService) Get(project string, zone string, machineType string) *MachineTypesGetCall { + c := &MachineTypesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project c.zone = zone - c.instantSnapshot = instantSnapshot - 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 *InstantSnapshotsDeleteCall) RequestId(requestId string) *InstantSnapshotsDeleteCall { - c.urlParams_.Set("requestId", requestId) + c.machineType = machineType return c } // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *InstantSnapshotsDeleteCall) Fields(s ...googleapi.Field) *InstantSnapshotsDeleteCall { +func (c *MachineTypesGetCall) Fields(s ...googleapi.Field) *MachineTypesGetCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } +// IfNoneMatch sets an 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. +func (c *MachineTypesGetCall) IfNoneMatch(entityTag string) *MachineTypesGetCall { + c.ifNoneMatch_ = entityTag + return c +} + // Context sets the context to be used in this call's Do method. -func (c *InstantSnapshotsDeleteCall) Context(ctx context.Context) *InstantSnapshotsDeleteCall { +func (c *MachineTypesGetCall) Context(ctx context.Context) *MachineTypesGetCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *InstantSnapshotsDeleteCall) Header() http.Header { +func (c *MachineTypesGetCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *InstantSnapshotsDeleteCall) doRequest(alt string) (*http.Response, error) { +func (c *MachineTypesGetCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) - var body io.Reader = nil + if c.ifNoneMatch_ != "" { + reqHeaders.Set("If-None-Match", c.ifNoneMatch_) + } c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instantSnapshots/{instantSnapshot}") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/machineTypes/{machineType}") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("DELETE", urls, body) + req, err := http.NewRequest("GET", urls, nil) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "zone": c.zone, - "instantSnapshot": c.instantSnapshot, + "project": c.project, + "zone": c.zone, + "machineType": c.machineType, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.machineTypes.get", "request", internallog.HTTPRequest(req, nil)) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.instantSnapshots.delete" call. +// Do executes the "compute.machineTypes.get" call. // 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 +// *MachineType.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 *InstantSnapshotsDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) { +func (c *MachineTypesGetCall) Do(opts ...googleapi.CallOption) (*MachineType, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -35799,47 +57055,175 @@ func (c *InstantSnapshotsDeleteCall) Do(opts ...googleapi.CallOption) (*Operatio if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } - ret := &Operation{ + ret := &MachineType{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.machineTypes.get", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type InstantSnapshotsGetCall struct { - s *Service - project string - zone string - instantSnapshot string - urlParams_ gensupport.URLParams - ifNoneMatch_ string - ctx_ context.Context - header_ http.Header +type MachineTypesListCall struct { + s *Service + project string + zone string + urlParams_ gensupport.URLParams + ifNoneMatch_ string + ctx_ context.Context + header_ http.Header } -// Get: Returns the specified InstantSnapshot resource in the specified zone. +// List: Retrieves a list of machine types available to the specified +// project. // -// - instantSnapshot: Name of the InstantSnapshot resource to return. // - project: Project ID for this request. // - zone: The name of the zone for this request. -func (r *InstantSnapshotsService) Get(project string, zone string, instantSnapshot string) *InstantSnapshotsGetCall { - c := &InstantSnapshotsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)} +func (r *MachineTypesService) List(project string, zone string) *MachineTypesListCall { + c := &MachineTypesListCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project c.zone = zone - c.instantSnapshot = instantSnapshot + return c +} + +// Filter sets the optional parameter "filter": A filter expression that +// filters resources listed in the response. Most +// Compute resources support two types of filter expressions: +// expressions that support regular expressions and expressions that follow +// API improvement proposal AIP-160. +// These two types of filter expressions cannot be mixed in one request. +// +// If you want to use AIP-160, your expression must specify the field name, +// an +// operator, and the value that you want to use for filtering. The value +// must be a string, a number, or a boolean. The 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`. +// +// The `:*` comparison can be used to test whether a key has been defined. +// For example, to find all objects with `owner` label +// use: +// ``` +// labels.owner:* +// ``` +// +// 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 onresource 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) +// ``` +// +// If you want to use a regular expression, use the `eq` (equal) or `ne` +// (not equal) operator against a single un-parenthesized expression with +// or +// without quotes or against multiple parenthesized expressions. +// Examples: +// +// `fieldname eq unquoted literal` +// `fieldname eq 'single quoted literal'` +// `fieldname eq "double quoted literal" +// `(fieldname1 eq literal) (fieldname2 ne "literal")` +// +// The literal value is interpreted as a regular expression using GoogleRE2 +// library syntax. +// The literal value must match the entire field. +// +// For example, to filter for instances that do not end with name +// "instance", +// you would use `name ne .*instance`. +// +// You cannot combine constraints on multiple fields using regular +// expressions. +func (c *MachineTypesListCall) Filter(filter string) *MachineTypesListCall { + 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 *MachineTypesListCall) MaxResults(maxResults int64) *MachineTypesListCall { + 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 *MachineTypesListCall) OrderBy(orderBy string) *MachineTypesListCall { + 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 *MachineTypesListCall) PageToken(pageToken string) *MachineTypesListCall { + c.urlParams_.Set("pageToken", pageToken) + return c +} + +// ReturnPartialSuccess sets the optional parameter "returnPartialSuccess": +// Opt-in for partial success behavior which provides partial results in +// case +// of failure. The default value is false. +// +// For example, when partial success behavior is enabled, aggregatedList for +// a +// single zone scope either returns all resources in the zone or no +// resources, +// with an error code. +func (c *MachineTypesListCall) ReturnPartialSuccess(returnPartialSuccess bool) *MachineTypesListCall { + c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess)) return c } // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *InstantSnapshotsGetCall) Fields(s ...googleapi.Field) *InstantSnapshotsGetCall { +func (c *MachineTypesListCall) Fields(s ...googleapi.Field) *MachineTypesListCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } @@ -35847,56 +57231,55 @@ func (c *InstantSnapshotsGetCall) Fields(s ...googleapi.Field) *InstantSnapshots // IfNoneMatch sets an 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. -func (c *InstantSnapshotsGetCall) IfNoneMatch(entityTag string) *InstantSnapshotsGetCall { +func (c *MachineTypesListCall) IfNoneMatch(entityTag string) *MachineTypesListCall { c.ifNoneMatch_ = entityTag return c } // Context sets the context to be used in this call's Do method. -func (c *InstantSnapshotsGetCall) Context(ctx context.Context) *InstantSnapshotsGetCall { +func (c *MachineTypesListCall) Context(ctx context.Context) *MachineTypesListCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *InstantSnapshotsGetCall) Header() http.Header { +func (c *MachineTypesListCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *InstantSnapshotsGetCall) doRequest(alt string) (*http.Response, error) { +func (c *MachineTypesListCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) if c.ifNoneMatch_ != "" { reqHeaders.Set("If-None-Match", c.ifNoneMatch_) } - var body io.Reader = nil c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instantSnapshots/{instantSnapshot}") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/machineTypes") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("GET", urls, body) + req, err := http.NewRequest("GET", urls, nil) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "zone": c.zone, - "instantSnapshot": c.instantSnapshot, + "project": c.project, + "zone": c.zone, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.machineTypes.list", "request", internallog.HTTPRequest(req, nil)) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.instantSnapshots.get" call. +// Do executes the "compute.machineTypes.list" call. // Any non-2xx status code is an error. Response headers are in either -// *InstantSnapshot.ServerResponse.Header or (if a response was returned at +// *MachineTypeList.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 *InstantSnapshotsGetCall) Do(opts ...googleapi.CallOption) (*InstantSnapshot, error) { +func (c *MachineTypesListCall) Do(opts ...googleapi.CallOption) (*MachineTypeList, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -35915,231 +57298,279 @@ func (c *InstantSnapshotsGetCall) Do(opts ...googleapi.CallOption) (*InstantSnap if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } - ret := &InstantSnapshot{ + ret := &MachineTypeList{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.machineTypes.list", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type InstantSnapshotsGetIamPolicyCall struct { +// 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 *MachineTypesListCall) Pages(ctx context.Context, f func(*MachineTypeList) error) error { + c.ctx_ = ctx + defer c.PageToken(c.urlParams_.Get("pageToken")) + 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) + } +} + +type NetworkAttachmentsAggregatedListCall struct { s *Service project string - zone string - resource string urlParams_ gensupport.URLParams ifNoneMatch_ string ctx_ context.Context header_ http.Header } -// GetIamPolicy: Gets the access control policy for a resource. May be empty if -// no such policy or resource exists. +// AggregatedList: Retrieves the list of all NetworkAttachment +// resources, +// regional and global, available to the specified project. +// +// To prevent failure, Google recommends that you set +// the +// `returnPartialSuccess` parameter to `true`. // // - project: Project ID for this request. -// - resource: Name or id of the resource for this request. -// - zone: The name of the zone for this request. -func (r *InstantSnapshotsService) GetIamPolicy(project string, zone string, resource string) *InstantSnapshotsGetIamPolicyCall { - c := &InstantSnapshotsGetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)} +func (r *NetworkAttachmentsService) AggregatedList(project string) *NetworkAttachmentsAggregatedListCall { + c := &NetworkAttachmentsAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project - c.zone = zone - c.resource = resource return c } -// OptionsRequestedPolicyVersion sets the optional parameter -// "optionsRequestedPolicyVersion": Requested IAM Policy version. -func (c *InstantSnapshotsGetIamPolicyCall) OptionsRequestedPolicyVersion(optionsRequestedPolicyVersion int64) *InstantSnapshotsGetIamPolicyCall { - c.urlParams_.Set("optionsRequestedPolicyVersion", fmt.Sprint(optionsRequestedPolicyVersion)) +// Filter sets the optional parameter "filter": A filter expression that +// filters resources listed in the response. Most +// Compute resources support two types of filter expressions: +// expressions that support regular expressions and expressions that follow +// API improvement proposal AIP-160. +// These two types of filter expressions cannot be mixed in one request. +// +// If you want to use AIP-160, your expression must specify the field name, +// an +// operator, and the value that you want to use for filtering. The value +// must be a string, a number, or a boolean. The 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`. +// +// The `:*` comparison can be used to test whether a key has been defined. +// For example, to find all objects with `owner` label +// use: +// ``` +// labels.owner:* +// ``` +// +// 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 onresource 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) +// ``` +// +// If you want to use a regular expression, use the `eq` (equal) or `ne` +// (not equal) operator against a single un-parenthesized expression with +// or +// without quotes or against multiple parenthesized expressions. +// Examples: +// +// `fieldname eq unquoted literal` +// `fieldname eq 'single quoted literal'` +// `fieldname eq "double quoted literal" +// `(fieldname1 eq literal) (fieldname2 ne "literal")` +// +// The literal value is interpreted as a regular expression using GoogleRE2 +// library syntax. +// The literal value must match the entire field. +// +// For example, to filter for instances that do not end with name +// "instance", +// you would use `name ne .*instance`. +// +// You cannot combine constraints on multiple fields using regular +// expressions. +func (c *NetworkAttachmentsAggregatedListCall) Filter(filter string) *NetworkAttachmentsAggregatedListCall { + c.urlParams_.Set("filter", filter) return c } -// Fields allows partial responses to be retrieved. See -// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more -// details. -func (c *InstantSnapshotsGetIamPolicyCall) Fields(s ...googleapi.Field) *InstantSnapshotsGetIamPolicyCall { - c.urlParams_.Set("fields", googleapi.CombineFields(s)) +// IncludeAllScopes sets the optional parameter "includeAllScopes": Indicates +// whether every visible scope for each scope type (zone, region, +// global) should be included in the response. For new resource types +// added +// after this field, the flag has no effect as new resource types will +// always +// include every visible scope for each scope type in response. For +// resource +// types which predate this field, if this flag is omitted or false, +// only +// scopes of the scope types where the resource type is expected to be +// found +// will be included. +func (c *NetworkAttachmentsAggregatedListCall) IncludeAllScopes(includeAllScopes bool) *NetworkAttachmentsAggregatedListCall { + c.urlParams_.Set("includeAllScopes", fmt.Sprint(includeAllScopes)) return c } -// IfNoneMatch sets an 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. -func (c *InstantSnapshotsGetIamPolicyCall) IfNoneMatch(entityTag string) *InstantSnapshotsGetIamPolicyCall { - c.ifNoneMatch_ = entityTag +// 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 *NetworkAttachmentsAggregatedListCall) MaxResults(maxResults int64) *NetworkAttachmentsAggregatedListCall { + c.urlParams_.Set("maxResults", fmt.Sprint(maxResults)) return c } -// Context sets the context to be used in this call's Do method. -func (c *InstantSnapshotsGetIamPolicyCall) Context(ctx context.Context) *InstantSnapshotsGetIamPolicyCall { - c.ctx_ = ctx +// 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 *NetworkAttachmentsAggregatedListCall) OrderBy(orderBy string) *NetworkAttachmentsAggregatedListCall { + c.urlParams_.Set("orderBy", orderBy) return c } -// Header returns a http.Header that can be modified by the caller to add -// headers to the request. -func (c *InstantSnapshotsGetIamPolicyCall) Header() http.Header { - if c.header_ == nil { - c.header_ = make(http.Header) - } - return c.header_ -} - -func (c *InstantSnapshotsGetIamPolicyCall) doRequest(alt string) (*http.Response, error) { - reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) - if c.ifNoneMatch_ != "" { - reqHeaders.Set("If-None-Match", c.ifNoneMatch_) - } - var body io.Reader = nil - c.urlParams_.Set("alt", alt) - c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instantSnapshots/{resource}/getIamPolicy") - urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("GET", urls, body) - if err != nil { - return nil, err - } - req.Header = reqHeaders - googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "zone": c.zone, - "resource": c.resource, - }) - return gensupport.SendRequest(c.ctx_, c.s.client, req) -} - -// Do executes the "compute.instantSnapshots.getIamPolicy" call. -// Any non-2xx status code is an error. Response headers are in either -// *Policy.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 *InstantSnapshotsGetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, 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, gensupport.WrapError(&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, gensupport.WrapError(err) - } - ret := &Policy{ - 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 -} - -type InstantSnapshotsInsertCall struct { - s *Service - project string - zone string - instantsnapshot *InstantSnapshot - urlParams_ gensupport.URLParams - ctx_ context.Context - header_ http.Header +// 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 *NetworkAttachmentsAggregatedListCall) PageToken(pageToken string) *NetworkAttachmentsAggregatedListCall { + c.urlParams_.Set("pageToken", pageToken) + return c } -// Insert: Creates an instant snapshot in the specified zone. +// ReturnPartialSuccess sets the optional parameter "returnPartialSuccess": +// Opt-in for partial success behavior which provides partial results in +// case +// of failure. The default value is false. // -// - project: Project ID for this request. -// - zone: Name of the zone for this request. -func (r *InstantSnapshotsService) Insert(project string, zone string, instantsnapshot *InstantSnapshot) *InstantSnapshotsInsertCall { - c := &InstantSnapshotsInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)} - c.project = project - c.zone = zone - c.instantsnapshot = instantsnapshot +// For example, when partial success behavior is enabled, aggregatedList for +// a +// single zone scope either returns all resources in the zone or no +// resources, +// with an error code. +func (c *NetworkAttachmentsAggregatedListCall) ReturnPartialSuccess(returnPartialSuccess bool) *NetworkAttachmentsAggregatedListCall { + c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess)) 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 *InstantSnapshotsInsertCall) RequestId(requestId string) *InstantSnapshotsInsertCall { - c.urlParams_.Set("requestId", requestId) +// ServiceProjectNumber sets the optional parameter "serviceProjectNumber": The +// Shared VPC service project id or service project number for which +// aggregated list request is invoked for subnetworks list-usable api. +func (c *NetworkAttachmentsAggregatedListCall) ServiceProjectNumber(serviceProjectNumber int64) *NetworkAttachmentsAggregatedListCall { + c.urlParams_.Set("serviceProjectNumber", fmt.Sprint(serviceProjectNumber)) return c } // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *InstantSnapshotsInsertCall) Fields(s ...googleapi.Field) *InstantSnapshotsInsertCall { +func (c *NetworkAttachmentsAggregatedListCall) Fields(s ...googleapi.Field) *NetworkAttachmentsAggregatedListCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } +// IfNoneMatch sets an 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. +func (c *NetworkAttachmentsAggregatedListCall) IfNoneMatch(entityTag string) *NetworkAttachmentsAggregatedListCall { + c.ifNoneMatch_ = entityTag + return c +} + // Context sets the context to be used in this call's Do method. -func (c *InstantSnapshotsInsertCall) Context(ctx context.Context) *InstantSnapshotsInsertCall { +func (c *NetworkAttachmentsAggregatedListCall) Context(ctx context.Context) *NetworkAttachmentsAggregatedListCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *InstantSnapshotsInsertCall) Header() http.Header { +func (c *NetworkAttachmentsAggregatedListCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *InstantSnapshotsInsertCall) doRequest(alt string) (*http.Response, error) { - reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) - var body io.Reader = nil - body, err := googleapi.WithoutDataWrapper.JSONReader(c.instantsnapshot) - if err != nil { - return nil, err +func (c *NetworkAttachmentsAggregatedListCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) + if c.ifNoneMatch_ != "" { + reqHeaders.Set("If-None-Match", c.ifNoneMatch_) } c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instantSnapshots") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/aggregated/networkAttachments") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("POST", urls, body) + req, err := http.NewRequest("GET", urls, nil) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ "project": c.project, - "zone": c.zone, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.networkAttachments.aggregatedList", "request", internallog.HTTPRequest(req, nil)) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.instantSnapshots.insert" call. +// Do executes the "compute.networkAttachments.aggregatedList" call. // 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 *InstantSnapshotsInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) { +// *NetworkAttachmentAggregatedList.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 *NetworkAttachmentsAggregatedListCall) Do(opts ...googleapi.CallOption) (*NetworkAttachmentAggregatedList, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -36158,179 +57589,137 @@ func (c *InstantSnapshotsInsertCall) Do(opts ...googleapi.CallOption) (*Operatio if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } - ret := &Operation{ + ret := &NetworkAttachmentAggregatedList{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.networkAttachments.aggregatedList", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type InstantSnapshotsListCall struct { - s *Service - project string - zone string - urlParams_ gensupport.URLParams - ifNoneMatch_ string - ctx_ context.Context - header_ http.Header -} - -// List: Retrieves the list of InstantSnapshot resources contained within the -// specified zone. -// -// - project: Project ID for this request. -// - zone: The name of the zone for this request. -func (r *InstantSnapshotsService) List(project string, zone string) *InstantSnapshotsListCall { - c := &InstantSnapshotsListCall{s: r.s, urlParams_: make(gensupport.URLParams)} - c.project = project - c.zone = zone - return c -} - -// Filter sets the optional parameter "filter": A filter expression that -// filters resources listed in the response. Most Compute resources support two -// types of filter expressions: expressions that support regular expressions -// and expressions that follow API improvement proposal AIP-160. These two -// types of filter expressions cannot be mixed in one request. If you want to -// use AIP-160, your expression must specify the field name, an operator, and -// the value that you want to use for filtering. The value must be a string, a -// number, or a boolean. The 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`. The `:*` comparison can be used to test whether a key has -// been defined. For example, to find all objects with `owner` label use: ``` -// labels.owner:* ``` 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) ``` If you want to use a regular -// expression, use the `eq` (equal) or `ne` (not equal) operator against a -// single un-parenthesized expression with or without quotes or against -// multiple parenthesized expressions. Examples: `fieldname eq unquoted -// literal` `fieldname eq 'single quoted literal'` `fieldname eq "double quoted -// literal" `(fieldname1 eq literal) (fieldname2 ne "literal")` The literal -// value is interpreted as a regular expression using Google RE2 library -// syntax. The literal value must match the entire field. For example, to -// filter for instances that do not end with name "instance", you would use -// `name ne .*instance`. You cannot combine constraints on multiple fields -// using regular expressions. -func (c *InstantSnapshotsListCall) Filter(filter string) *InstantSnapshotsListCall { - 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 *InstantSnapshotsListCall) MaxResults(maxResults int64) *InstantSnapshotsListCall { - c.urlParams_.Set("maxResults", fmt.Sprint(maxResults)) - return c +// 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 *NetworkAttachmentsAggregatedListCall) Pages(ctx context.Context, f func(*NetworkAttachmentAggregatedList) error) error { + c.ctx_ = ctx + defer c.PageToken(c.urlParams_.Get("pageToken")) + 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) + } } -// 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 *InstantSnapshotsListCall) OrderBy(orderBy string) *InstantSnapshotsListCall { - c.urlParams_.Set("orderBy", orderBy) - return c +type NetworkAttachmentsDeleteCall struct { + s *Service + project string + region string + networkAttachment string + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header } -// 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 *InstantSnapshotsListCall) PageToken(pageToken string) *InstantSnapshotsListCall { - c.urlParams_.Set("pageToken", pageToken) +// Delete: Deletes the specified NetworkAttachment in the given scope +// +// - networkAttachment: Name of the NetworkAttachment resource to delete. +// - project: Project ID for this request. +// - region: Name of the region of this request. +func (r *NetworkAttachmentsService) Delete(project string, region string, networkAttachment string) *NetworkAttachmentsDeleteCall { + c := &NetworkAttachmentsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)} + c.project = project + c.region = region + c.networkAttachment = networkAttachment return c } -// ReturnPartialSuccess sets the optional parameter "returnPartialSuccess": -// Opt-in for partial success behavior which provides partial results in case -// of failure. The default value is false. For example, when partial success -// behavior is enabled, aggregatedList for a single zone scope either returns -// all resources in the zone or no resources, with an error code. -func (c *InstantSnapshotsListCall) ReturnPartialSuccess(returnPartialSuccess bool) *InstantSnapshotsListCall { - c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess)) +// 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). +// end_interface: MixerMutationRequestBuilder +func (c *NetworkAttachmentsDeleteCall) RequestId(requestId string) *NetworkAttachmentsDeleteCall { + 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 // details. -func (c *InstantSnapshotsListCall) Fields(s ...googleapi.Field) *InstantSnapshotsListCall { +func (c *NetworkAttachmentsDeleteCall) Fields(s ...googleapi.Field) *NetworkAttachmentsDeleteCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } -// IfNoneMatch sets an 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. -func (c *InstantSnapshotsListCall) IfNoneMatch(entityTag string) *InstantSnapshotsListCall { - c.ifNoneMatch_ = entityTag - return c -} - // Context sets the context to be used in this call's Do method. -func (c *InstantSnapshotsListCall) Context(ctx context.Context) *InstantSnapshotsListCall { +func (c *NetworkAttachmentsDeleteCall) Context(ctx context.Context) *NetworkAttachmentsDeleteCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *InstantSnapshotsListCall) Header() http.Header { +func (c *NetworkAttachmentsDeleteCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *InstantSnapshotsListCall) doRequest(alt string) (*http.Response, error) { +func (c *NetworkAttachmentsDeleteCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) - if c.ifNoneMatch_ != "" { - reqHeaders.Set("If-None-Match", c.ifNoneMatch_) - } - var body io.Reader = nil c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instantSnapshots") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/networkAttachments/{networkAttachment}") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("GET", urls, body) + req, err := http.NewRequest("DELETE", urls, nil) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "zone": c.zone, + "project": c.project, + "region": c.region, + "networkAttachment": c.networkAttachment, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.networkAttachments.delete", "request", internallog.HTTPRequest(req, nil)) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.instantSnapshots.list" call. +// Do executes the "compute.networkAttachments.delete" call. // Any non-2xx status code is an error. Response headers are in either -// *InstantSnapshotList.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 *InstantSnapshotsListCall) Do(opts ...googleapi.CallOption) (*InstantSnapshotList, error) { +// *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 *NetworkAttachmentsDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -36349,119 +57738,106 @@ func (c *InstantSnapshotsListCall) Do(opts ...googleapi.CallOption) (*InstantSna if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } - ret := &InstantSnapshotList{ + ret := &Operation{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.networkAttachments.delete", "response", internallog.HTTPResponse(res, b)) return ret, nil } -// 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 *InstantSnapshotsListCall) Pages(ctx context.Context, f func(*InstantSnapshotList) error) error { - c.ctx_ = ctx - defer c.PageToken(c.urlParams_.Get("pageToken")) - 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) - } -} - -type InstantSnapshotsSetIamPolicyCall struct { - s *Service - project string - zone string - resource string - zonesetpolicyrequest *ZoneSetPolicyRequest - urlParams_ gensupport.URLParams - ctx_ context.Context - header_ http.Header +type NetworkAttachmentsGetCall struct { + s *Service + project string + region string + networkAttachment string + urlParams_ gensupport.URLParams + ifNoneMatch_ string + ctx_ context.Context + header_ http.Header } -// SetIamPolicy: Sets the access control policy on the specified resource. -// Replaces any existing policy. +// Get: Returns the specified NetworkAttachment resource in the given scope. // +// - networkAttachment: Name of the NetworkAttachment resource to return. // - project: Project ID for this request. -// - resource: Name or id of the resource for this request. -// - zone: The name of the zone for this request. -func (r *InstantSnapshotsService) SetIamPolicy(project string, zone string, resource string, zonesetpolicyrequest *ZoneSetPolicyRequest) *InstantSnapshotsSetIamPolicyCall { - c := &InstantSnapshotsSetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)} +// - region: Name of the region of this request. +func (r *NetworkAttachmentsService) Get(project string, region string, networkAttachment string) *NetworkAttachmentsGetCall { + c := &NetworkAttachmentsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project - c.zone = zone - c.resource = resource - c.zonesetpolicyrequest = zonesetpolicyrequest + c.region = region + c.networkAttachment = networkAttachment return c } // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *InstantSnapshotsSetIamPolicyCall) Fields(s ...googleapi.Field) *InstantSnapshotsSetIamPolicyCall { +func (c *NetworkAttachmentsGetCall) Fields(s ...googleapi.Field) *NetworkAttachmentsGetCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } +// IfNoneMatch sets an 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. +func (c *NetworkAttachmentsGetCall) IfNoneMatch(entityTag string) *NetworkAttachmentsGetCall { + c.ifNoneMatch_ = entityTag + return c +} + // Context sets the context to be used in this call's Do method. -func (c *InstantSnapshotsSetIamPolicyCall) Context(ctx context.Context) *InstantSnapshotsSetIamPolicyCall { +func (c *NetworkAttachmentsGetCall) Context(ctx context.Context) *NetworkAttachmentsGetCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *InstantSnapshotsSetIamPolicyCall) Header() http.Header { +func (c *NetworkAttachmentsGetCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *InstantSnapshotsSetIamPolicyCall) doRequest(alt string) (*http.Response, error) { - reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) - var body io.Reader = nil - body, err := googleapi.WithoutDataWrapper.JSONReader(c.zonesetpolicyrequest) - if err != nil { - return nil, err +func (c *NetworkAttachmentsGetCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) + if c.ifNoneMatch_ != "" { + reqHeaders.Set("If-None-Match", c.ifNoneMatch_) } c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instantSnapshots/{resource}/setIamPolicy") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/networkAttachments/{networkAttachment}") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("POST", urls, body) + req, err := http.NewRequest("GET", urls, nil) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "zone": c.zone, - "resource": c.resource, + "project": c.project, + "region": c.region, + "networkAttachment": c.networkAttachment, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.networkAttachments.get", "request", internallog.HTTPRequest(req, nil)) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.instantSnapshots.setIamPolicy" call. +// Do executes the "compute.networkAttachments.get" call. // Any non-2xx status code is an error. Response headers are in either -// *Policy.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 *InstantSnapshotsSetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, error) { +// *NetworkAttachment.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 *NetworkAttachmentsGetCall) Do(opts ...googleapi.CallOption) (*NetworkAttachment, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -36480,113 +57856,114 @@ func (c *InstantSnapshotsSetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Po if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } - ret := &Policy{ + ret := &NetworkAttachment{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.networkAttachments.get", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type InstantSnapshotsSetLabelsCall struct { - s *Service - project string - zone string - resource string - zonesetlabelsrequest *ZoneSetLabelsRequest - urlParams_ gensupport.URLParams - ctx_ context.Context - header_ http.Header +type NetworkAttachmentsGetIamPolicyCall struct { + s *Service + project string + region string + resource string + urlParams_ gensupport.URLParams + ifNoneMatch_ string + ctx_ context.Context + header_ http.Header } -// SetLabels: Sets the labels on a instantSnapshot in the given zone. To learn -// more about labels, read the Labeling Resources documentation. +// GetIamPolicy: Gets the access control policy for a resource. May be empty if +// no such +// policy or resource exists. // // - project: Project ID for this request. +// - region: The name of the region for this request. // - resource: Name or id of the resource for this request. -// - zone: The name of the zone for this request. -func (r *InstantSnapshotsService) SetLabels(project string, zone string, resource string, zonesetlabelsrequest *ZoneSetLabelsRequest) *InstantSnapshotsSetLabelsCall { - c := &InstantSnapshotsSetLabelsCall{s: r.s, urlParams_: make(gensupport.URLParams)} +func (r *NetworkAttachmentsService) GetIamPolicy(project string, region string, resource string) *NetworkAttachmentsGetIamPolicyCall { + c := &NetworkAttachmentsGetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project - c.zone = zone + c.region = region c.resource = resource - c.zonesetlabelsrequest = zonesetlabelsrequest 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 *InstantSnapshotsSetLabelsCall) RequestId(requestId string) *InstantSnapshotsSetLabelsCall { - c.urlParams_.Set("requestId", requestId) +// OptionsRequestedPolicyVersion sets the optional parameter +// "optionsRequestedPolicyVersion": Requested IAM Policy version. +func (c *NetworkAttachmentsGetIamPolicyCall) OptionsRequestedPolicyVersion(optionsRequestedPolicyVersion int64) *NetworkAttachmentsGetIamPolicyCall { + c.urlParams_.Set("optionsRequestedPolicyVersion", fmt.Sprint(optionsRequestedPolicyVersion)) return c } // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *InstantSnapshotsSetLabelsCall) Fields(s ...googleapi.Field) *InstantSnapshotsSetLabelsCall { +func (c *NetworkAttachmentsGetIamPolicyCall) Fields(s ...googleapi.Field) *NetworkAttachmentsGetIamPolicyCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } +// IfNoneMatch sets an 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. +func (c *NetworkAttachmentsGetIamPolicyCall) IfNoneMatch(entityTag string) *NetworkAttachmentsGetIamPolicyCall { + c.ifNoneMatch_ = entityTag + return c +} + // Context sets the context to be used in this call's Do method. -func (c *InstantSnapshotsSetLabelsCall) Context(ctx context.Context) *InstantSnapshotsSetLabelsCall { +func (c *NetworkAttachmentsGetIamPolicyCall) Context(ctx context.Context) *NetworkAttachmentsGetIamPolicyCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *InstantSnapshotsSetLabelsCall) Header() http.Header { +func (c *NetworkAttachmentsGetIamPolicyCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *InstantSnapshotsSetLabelsCall) doRequest(alt string) (*http.Response, error) { - reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) - var body io.Reader = nil - body, err := googleapi.WithoutDataWrapper.JSONReader(c.zonesetlabelsrequest) - if err != nil { - return nil, err +func (c *NetworkAttachmentsGetIamPolicyCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) + if c.ifNoneMatch_ != "" { + reqHeaders.Set("If-None-Match", c.ifNoneMatch_) } c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instantSnapshots/{resource}/setLabels") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/networkAttachments/{resource}/getIamPolicy") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("POST", urls, body) + req, err := http.NewRequest("GET", urls, nil) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ "project": c.project, - "zone": c.zone, + "region": c.region, "resource": c.resource, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.networkAttachments.getIamPolicy", "request", internallog.HTTPRequest(req, nil)) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.instantSnapshots.setLabels" call. +// Do executes the "compute.networkAttachments.getIamPolicy" call. // 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 +// *Policy.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 *InstantSnapshotsSetLabelsCall) Do(opts ...googleapi.CallOption) (*Operation, error) { +func (c *NetworkAttachmentsGetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -36605,78 +57982,100 @@ func (c *InstantSnapshotsSetLabelsCall) Do(opts ...googleapi.CallOption) (*Opera if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } - ret := &Operation{ + ret := &Policy{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.networkAttachments.getIamPolicy", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type InstantSnapshotsTestIamPermissionsCall struct { - s *Service - project string - zone string - resource string - testpermissionsrequest *TestPermissionsRequest - urlParams_ gensupport.URLParams - ctx_ context.Context - header_ http.Header +type NetworkAttachmentsInsertCall struct { + s *Service + project string + region string + networkattachment *NetworkAttachment + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header } -// TestIamPermissions: Returns permissions that a caller has on the specified -// resource. +// Insert: Creates a NetworkAttachment in the specified project in the given +// scope +// using the parameters that are included in the request. // // - project: Project ID for this request. -// - resource: Name or id of the resource for this request. -// - zone: The name of the zone for this request. -func (r *InstantSnapshotsService) TestIamPermissions(project string, zone string, resource string, testpermissionsrequest *TestPermissionsRequest) *InstantSnapshotsTestIamPermissionsCall { - c := &InstantSnapshotsTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)} +// - region: Name of the region of this request. +func (r *NetworkAttachmentsService) Insert(project string, region string, networkattachment *NetworkAttachment) *NetworkAttachmentsInsertCall { + c := &NetworkAttachmentsInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project - c.zone = zone - c.resource = resource - c.testpermissionsrequest = testpermissionsrequest + c.region = region + c.networkattachment = networkattachment + 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). +// end_interface: MixerMutationRequestBuilder +func (c *NetworkAttachmentsInsertCall) RequestId(requestId string) *NetworkAttachmentsInsertCall { + 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 // details. -func (c *InstantSnapshotsTestIamPermissionsCall) Fields(s ...googleapi.Field) *InstantSnapshotsTestIamPermissionsCall { +func (c *NetworkAttachmentsInsertCall) Fields(s ...googleapi.Field) *NetworkAttachmentsInsertCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } // Context sets the context to be used in this call's Do method. -func (c *InstantSnapshotsTestIamPermissionsCall) Context(ctx context.Context) *InstantSnapshotsTestIamPermissionsCall { +func (c *NetworkAttachmentsInsertCall) Context(ctx context.Context) *NetworkAttachmentsInsertCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *InstantSnapshotsTestIamPermissionsCall) Header() http.Header { +func (c *NetworkAttachmentsInsertCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *InstantSnapshotsTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) { +func (c *NetworkAttachmentsInsertCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) - var body io.Reader = nil - body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest) + body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.networkattachment) if err != nil { return nil, err } c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instantSnapshots/{resource}/testIamPermissions") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/networkAttachments") urls += "?" + c.urlParams_.Encode() req, err := http.NewRequest("POST", urls, body) if err != nil { @@ -36684,20 +58083,19 @@ func (c *InstantSnapshotsTestIamPermissionsCall) doRequest(alt string) (*http.Re } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "zone": c.zone, - "resource": c.resource, + "project": c.project, + "region": c.region, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.networkAttachments.insert", "request", internallog.HTTPRequest(req, body.Bytes())) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.instantSnapshots.testIamPermissions" call. +// Do executes the "compute.networkAttachments.insert" call. // Any non-2xx status code is an error. Response headers are in either -// *TestPermissionsResponse.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 *InstantSnapshotsTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) { +// *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 *NetworkAttachmentsInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -36716,142 +58114,174 @@ func (c *InstantSnapshotsTestIamPermissionsCall) Do(opts ...googleapi.CallOption if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } - ret := &TestPermissionsResponse{ + ret := &Operation{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.networkAttachments.insert", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type InterconnectAttachmentsAggregatedListCall struct { +type NetworkAttachmentsListCall struct { s *Service project string + region string urlParams_ gensupport.URLParams ifNoneMatch_ string ctx_ context.Context header_ http.Header } -// AggregatedList: Retrieves an aggregated list of interconnect attachments. To -// prevent failure, Google recommends that you set the `returnPartialSuccess` -// parameter to `true`. +// List: Lists the NetworkAttachments for a project in the given scope. // // - project: Project ID for this request. -func (r *InterconnectAttachmentsService) AggregatedList(project string) *InterconnectAttachmentsAggregatedListCall { - c := &InterconnectAttachmentsAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)} +// - region: Name of the region of this request. +func (r *NetworkAttachmentsService) List(project string, region string) *NetworkAttachmentsListCall { + c := &NetworkAttachmentsListCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project + c.region = region return c } // Filter sets the optional parameter "filter": A filter expression that -// filters resources listed in the response. Most Compute resources support two -// types of filter expressions: expressions that support regular expressions -// and expressions that follow API improvement proposal AIP-160. These two -// types of filter expressions cannot be mixed in one request. If you want to -// use AIP-160, your expression must specify the field name, an operator, and -// the value that you want to use for filtering. The value must be a string, a -// number, or a boolean. The 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`. The `:*` comparison can be used to test whether a key has -// been defined. For example, to find all objects with `owner` label use: ``` -// labels.owner:* ``` 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) ``` If you want to use a regular -// expression, use the `eq` (equal) or `ne` (not equal) operator against a -// single un-parenthesized expression with or without quotes or against -// multiple parenthesized expressions. Examples: `fieldname eq unquoted -// literal` `fieldname eq 'single quoted literal'` `fieldname eq "double quoted -// literal" `(fieldname1 eq literal) (fieldname2 ne "literal")` The literal -// value is interpreted as a regular expression using Google RE2 library -// syntax. The literal value must match the entire field. For example, to -// filter for instances that do not end with name "instance", you would use -// `name ne .*instance`. You cannot combine constraints on multiple fields -// using regular expressions. -func (c *InterconnectAttachmentsAggregatedListCall) Filter(filter string) *InterconnectAttachmentsAggregatedListCall { +// filters resources listed in the response. Most +// Compute resources support two types of filter expressions: +// expressions that support regular expressions and expressions that follow +// API improvement proposal AIP-160. +// These two types of filter expressions cannot be mixed in one request. +// +// If you want to use AIP-160, your expression must specify the field name, +// an +// operator, and the value that you want to use for filtering. The value +// must be a string, a number, or a boolean. The 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`. +// +// The `:*` comparison can be used to test whether a key has been defined. +// For example, to find all objects with `owner` label +// use: +// ``` +// labels.owner:* +// ``` +// +// 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 onresource 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) +// ``` +// +// If you want to use a regular expression, use the `eq` (equal) or `ne` +// (not equal) operator against a single un-parenthesized expression with +// or +// without quotes or against multiple parenthesized expressions. +// Examples: +// +// `fieldname eq unquoted literal` +// `fieldname eq 'single quoted literal'` +// `fieldname eq "double quoted literal" +// `(fieldname1 eq literal) (fieldname2 ne "literal")` +// +// The literal value is interpreted as a regular expression using GoogleRE2 +// library syntax. +// The literal value must match the entire field. +// +// For example, to filter for instances that do not end with name +// "instance", +// you would use `name ne .*instance`. +// +// You cannot combine constraints on multiple fields using regular +// expressions. +func (c *NetworkAttachmentsListCall) Filter(filter string) *NetworkAttachmentsListCall { c.urlParams_.Set("filter", filter) return c } -// IncludeAllScopes sets the optional parameter "includeAllScopes": Indicates -// whether every visible scope for each scope type (zone, region, global) -// should be included in the response. For new resource types added after this -// field, the flag has no effect as new resource types will always include -// every visible scope for each scope type in response. For resource types -// which predate this field, if this flag is omitted or false, only scopes of -// the scope types where the resource type is expected to be found will be -// included. -func (c *InterconnectAttachmentsAggregatedListCall) IncludeAllScopes(includeAllScopes bool) *InterconnectAttachmentsAggregatedListCall { - c.urlParams_.Set("includeAllScopes", fmt.Sprint(includeAllScopes)) - 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 *InterconnectAttachmentsAggregatedListCall) MaxResults(maxResults int64) *InterconnectAttachmentsAggregatedListCall { +// 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 *NetworkAttachmentsListCall) MaxResults(maxResults int64) *NetworkAttachmentsListCall { 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 *InterconnectAttachmentsAggregatedListCall) OrderBy(orderBy string) *InterconnectAttachmentsAggregatedListCall { +// 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 *NetworkAttachmentsListCall) OrderBy(orderBy string) *NetworkAttachmentsListCall { 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 *InterconnectAttachmentsAggregatedListCall) PageToken(pageToken string) *InterconnectAttachmentsAggregatedListCall { +// use. Set `pageToken` to the +// `nextPageToken` returned by a previous list request to get +// the next page of results. +func (c *NetworkAttachmentsListCall) PageToken(pageToken string) *NetworkAttachmentsListCall { c.urlParams_.Set("pageToken", pageToken) return c } // ReturnPartialSuccess sets the optional parameter "returnPartialSuccess": -// Opt-in for partial success behavior which provides partial results in case -// of failure. The default value is false. For example, when partial success -// behavior is enabled, aggregatedList for a single zone scope either returns -// all resources in the zone or no resources, with an error code. -func (c *InterconnectAttachmentsAggregatedListCall) ReturnPartialSuccess(returnPartialSuccess bool) *InterconnectAttachmentsAggregatedListCall { +// Opt-in for partial success behavior which provides partial results in +// case +// of failure. The default value is false. +// +// For example, when partial success behavior is enabled, aggregatedList for +// a +// single zone scope either returns all resources in the zone or no +// resources, +// with an error code. +func (c *NetworkAttachmentsListCall) ReturnPartialSuccess(returnPartialSuccess bool) *NetworkAttachmentsListCall { c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess)) return c } -// ServiceProjectNumber sets the optional parameter "serviceProjectNumber": The -// Shared VPC service project id or service project number for which aggregated -// list request is invoked for subnetworks list-usable api. -func (c *InterconnectAttachmentsAggregatedListCall) ServiceProjectNumber(serviceProjectNumber int64) *InterconnectAttachmentsAggregatedListCall { - c.urlParams_.Set("serviceProjectNumber", fmt.Sprint(serviceProjectNumber)) - return c -} - // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *InterconnectAttachmentsAggregatedListCall) Fields(s ...googleapi.Field) *InterconnectAttachmentsAggregatedListCall { +func (c *NetworkAttachmentsListCall) Fields(s ...googleapi.Field) *NetworkAttachmentsListCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } @@ -36859,54 +58289,55 @@ func (c *InterconnectAttachmentsAggregatedListCall) Fields(s ...googleapi.Field) // IfNoneMatch sets an 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. -func (c *InterconnectAttachmentsAggregatedListCall) IfNoneMatch(entityTag string) *InterconnectAttachmentsAggregatedListCall { +func (c *NetworkAttachmentsListCall) IfNoneMatch(entityTag string) *NetworkAttachmentsListCall { c.ifNoneMatch_ = entityTag return c } // Context sets the context to be used in this call's Do method. -func (c *InterconnectAttachmentsAggregatedListCall) Context(ctx context.Context) *InterconnectAttachmentsAggregatedListCall { +func (c *NetworkAttachmentsListCall) Context(ctx context.Context) *NetworkAttachmentsListCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *InterconnectAttachmentsAggregatedListCall) Header() http.Header { +func (c *NetworkAttachmentsListCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *InterconnectAttachmentsAggregatedListCall) doRequest(alt string) (*http.Response, error) { +func (c *NetworkAttachmentsListCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) if c.ifNoneMatch_ != "" { reqHeaders.Set("If-None-Match", c.ifNoneMatch_) } - var body io.Reader = nil c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/aggregated/interconnectAttachments") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/networkAttachments") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("GET", urls, body) + req, err := http.NewRequest("GET", urls, nil) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ "project": c.project, + "region": c.region, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.networkAttachments.list", "request", internallog.HTTPRequest(req, nil)) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.interconnectAttachments.aggregatedList" call. +// Do executes the "compute.networkAttachments.list" call. // Any non-2xx status code is an error. Response headers are in either -// *InterconnectAttachmentAggregatedList.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 *InterconnectAttachmentsAggregatedListCall) Do(opts ...googleapi.CallOption) (*InterconnectAttachmentAggregatedList, error) { +// *NetworkAttachmentList.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 *NetworkAttachmentsListCall) Do(opts ...googleapi.CallOption) (*NetworkAttachmentList, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -36925,23 +58356,25 @@ func (c *InterconnectAttachmentsAggregatedListCall) Do(opts ...googleapi.CallOpt if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } - ret := &InterconnectAttachmentAggregatedList{ + ret := &NetworkAttachmentList{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.networkAttachments.list", "response", internallog.HTTPResponse(res, b)) return ret, nil } // 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 *InterconnectAttachmentsAggregatedListCall) Pages(ctx context.Context, f func(*InterconnectAttachmentAggregatedList) error) error { +func (c *NetworkAttachmentsListCall) Pages(ctx context.Context, f func(*NetworkAttachmentList) error) error { c.ctx_ = ctx defer c.PageToken(c.urlParams_.Get("pageToken")) for { @@ -36959,40 +58392,54 @@ func (c *InterconnectAttachmentsAggregatedListCall) Pages(ctx context.Context, f } } -type InterconnectAttachmentsDeleteCall struct { - s *Service - project string - region string - interconnectAttachment string - urlParams_ gensupport.URLParams - ctx_ context.Context - header_ http.Header +type NetworkAttachmentsPatchCall struct { + s *Service + project string + region string + networkAttachment string + networkattachment *NetworkAttachment + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header } -// Delete: Deletes the specified interconnect attachment. +// Patch: Patches the specified NetworkAttachment resource with the data +// included in +// the request. This method supports PATCH +// semantics and usesJSON merge +// patch format and processing rules. // -// - interconnectAttachment: Name of the interconnect attachment to delete. +// - networkAttachment: Name of the NetworkAttachment resource to patch. // - project: Project ID for this request. // - region: Name of the region for this request. -func (r *InterconnectAttachmentsService) Delete(project string, region string, interconnectAttachment string) *InterconnectAttachmentsDeleteCall { - c := &InterconnectAttachmentsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)} +func (r *NetworkAttachmentsService) Patch(project string, region string, networkAttachment string, networkattachment *NetworkAttachment) *NetworkAttachmentsPatchCall { + c := &NetworkAttachmentsPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project c.region = region - c.interconnectAttachment = interconnectAttachment + c.networkAttachment = networkAttachment + c.networkattachment = networkattachment 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 *InterconnectAttachmentsDeleteCall) RequestId(requestId string) *InterconnectAttachmentsDeleteCall { +// 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). +// end_interface: MixerMutationRequestBuilder +func (c *NetworkAttachmentsPatchCall) RequestId(requestId string) *NetworkAttachmentsPatchCall { c.urlParams_.Set("requestId", requestId) return c } @@ -37000,52 +58447,56 @@ func (c *InterconnectAttachmentsDeleteCall) RequestId(requestId string) *Interco // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *InterconnectAttachmentsDeleteCall) Fields(s ...googleapi.Field) *InterconnectAttachmentsDeleteCall { +func (c *NetworkAttachmentsPatchCall) Fields(s ...googleapi.Field) *NetworkAttachmentsPatchCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } // Context sets the context to be used in this call's Do method. -func (c *InterconnectAttachmentsDeleteCall) Context(ctx context.Context) *InterconnectAttachmentsDeleteCall { +func (c *NetworkAttachmentsPatchCall) Context(ctx context.Context) *NetworkAttachmentsPatchCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *InterconnectAttachmentsDeleteCall) Header() http.Header { +func (c *NetworkAttachmentsPatchCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *InterconnectAttachmentsDeleteCall) doRequest(alt string) (*http.Response, error) { - reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) - var body io.Reader = nil +func (c *NetworkAttachmentsPatchCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) + body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.networkattachment) + if err != nil { + return nil, err + } c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/interconnectAttachments/{interconnectAttachment}") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/networkAttachments/{networkAttachment}") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("DELETE", urls, body) + req, err := http.NewRequest("PATCH", urls, body) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "region": c.region, - "interconnectAttachment": c.interconnectAttachment, + "project": c.project, + "region": c.region, + "networkAttachment": c.networkAttachment, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.networkAttachments.patch", "request", internallog.HTTPRequest(req, body.Bytes())) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.interconnectAttachments.delete" call. +// Do executes the "compute.networkAttachments.patch" call. // 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 *InterconnectAttachmentsDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) { +func (c *NetworkAttachmentsPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -37071,97 +58522,94 @@ func (c *InterconnectAttachmentsDeleteCall) Do(opts ...googleapi.CallOption) (*O }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.networkAttachments.patch", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type InterconnectAttachmentsGetCall struct { +type NetworkAttachmentsSetIamPolicyCall struct { s *Service project string region string - interconnectAttachment string + resource string + regionsetpolicyrequest *RegionSetPolicyRequest urlParams_ gensupport.URLParams - ifNoneMatch_ string ctx_ context.Context header_ http.Header } -// Get: Returns the specified interconnect attachment. +// SetIamPolicy: Sets the access control policy on the specified +// resource. +// Replaces any existing policy. // -// - interconnectAttachment: Name of the interconnect attachment to return. // - project: Project ID for this request. -// - region: Name of the region for this request. -func (r *InterconnectAttachmentsService) Get(project string, region string, interconnectAttachment string) *InterconnectAttachmentsGetCall { - c := &InterconnectAttachmentsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)} +// - region: The name of the region for this request. +// - resource: Name or id of the resource for this request. +func (r *NetworkAttachmentsService) SetIamPolicy(project string, region string, resource string, regionsetpolicyrequest *RegionSetPolicyRequest) *NetworkAttachmentsSetIamPolicyCall { + c := &NetworkAttachmentsSetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project c.region = region - c.interconnectAttachment = interconnectAttachment + c.resource = resource + c.regionsetpolicyrequest = regionsetpolicyrequest return c } // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *InterconnectAttachmentsGetCall) Fields(s ...googleapi.Field) *InterconnectAttachmentsGetCall { +func (c *NetworkAttachmentsSetIamPolicyCall) Fields(s ...googleapi.Field) *NetworkAttachmentsSetIamPolicyCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } -// IfNoneMatch sets an 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. -func (c *InterconnectAttachmentsGetCall) IfNoneMatch(entityTag string) *InterconnectAttachmentsGetCall { - c.ifNoneMatch_ = entityTag - return c -} - // Context sets the context to be used in this call's Do method. -func (c *InterconnectAttachmentsGetCall) Context(ctx context.Context) *InterconnectAttachmentsGetCall { +func (c *NetworkAttachmentsSetIamPolicyCall) Context(ctx context.Context) *NetworkAttachmentsSetIamPolicyCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *InterconnectAttachmentsGetCall) Header() http.Header { +func (c *NetworkAttachmentsSetIamPolicyCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *InterconnectAttachmentsGetCall) doRequest(alt string) (*http.Response, error) { - reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) - if c.ifNoneMatch_ != "" { - reqHeaders.Set("If-None-Match", c.ifNoneMatch_) +func (c *NetworkAttachmentsSetIamPolicyCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) + body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.regionsetpolicyrequest) + if err != nil { + return nil, err } - var body io.Reader = nil c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/interconnectAttachments/{interconnectAttachment}") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/networkAttachments/{resource}/setIamPolicy") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("GET", urls, body) + req, err := http.NewRequest("POST", urls, body) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "region": c.region, - "interconnectAttachment": c.interconnectAttachment, + "project": c.project, + "region": c.region, + "resource": c.resource, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.networkAttachments.setIamPolicy", "request", internallog.HTTPRequest(req, body.Bytes())) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.interconnectAttachments.get" call. +// Do executes the "compute.networkAttachments.setIamPolicy" call. // Any non-2xx status code is an error. Response headers are in either -// *InterconnectAttachment.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 *InterconnectAttachmentsGetCall) Do(opts ...googleapi.CallOption) (*InterconnectAttachment, error) { +// *Policy.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 *NetworkAttachmentsSetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -37180,97 +58628,79 @@ func (c *InterconnectAttachmentsGetCall) Do(opts ...googleapi.CallOption) (*Inte if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } - ret := &InterconnectAttachment{ + ret := &Policy{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.networkAttachments.setIamPolicy", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type InterconnectAttachmentsInsertCall struct { +type NetworkAttachmentsTestIamPermissionsCall struct { s *Service project string region string - interconnectattachment *InterconnectAttachment + resource string + testpermissionsrequest *TestPermissionsRequest urlParams_ gensupport.URLParams ctx_ context.Context header_ http.Header } -// Insert: Creates an InterconnectAttachment in the specified project using the -// data included in the request. +// TestIamPermissions: Returns permissions that a caller has on the specified +// resource. // // - project: Project ID for this request. -// - region: Name of the region for this request. -func (r *InterconnectAttachmentsService) Insert(project string, region string, interconnectattachment *InterconnectAttachment) *InterconnectAttachmentsInsertCall { - c := &InterconnectAttachmentsInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)} +// - region: The name of the region for this request. +// - resource: Name or id of the resource for this request. +func (r *NetworkAttachmentsService) TestIamPermissions(project string, region string, resource string, testpermissionsrequest *TestPermissionsRequest) *NetworkAttachmentsTestIamPermissionsCall { + c := &NetworkAttachmentsTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project c.region = region - c.interconnectattachment = interconnectattachment - 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 *InterconnectAttachmentsInsertCall) RequestId(requestId string) *InterconnectAttachmentsInsertCall { - c.urlParams_.Set("requestId", requestId) - return c -} - -// ValidateOnly sets the optional parameter "validateOnly": If true, the -// request will not be committed. -func (c *InterconnectAttachmentsInsertCall) ValidateOnly(validateOnly bool) *InterconnectAttachmentsInsertCall { - c.urlParams_.Set("validateOnly", fmt.Sprint(validateOnly)) + c.resource = resource + c.testpermissionsrequest = testpermissionsrequest return c } // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *InterconnectAttachmentsInsertCall) Fields(s ...googleapi.Field) *InterconnectAttachmentsInsertCall { +func (c *NetworkAttachmentsTestIamPermissionsCall) Fields(s ...googleapi.Field) *NetworkAttachmentsTestIamPermissionsCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } // Context sets the context to be used in this call's Do method. -func (c *InterconnectAttachmentsInsertCall) Context(ctx context.Context) *InterconnectAttachmentsInsertCall { +func (c *NetworkAttachmentsTestIamPermissionsCall) Context(ctx context.Context) *NetworkAttachmentsTestIamPermissionsCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *InterconnectAttachmentsInsertCall) Header() http.Header { +func (c *NetworkAttachmentsTestIamPermissionsCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *InterconnectAttachmentsInsertCall) doRequest(alt string) (*http.Response, error) { +func (c *NetworkAttachmentsTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) - var body io.Reader = nil - body, err := googleapi.WithoutDataWrapper.JSONReader(c.interconnectattachment) + body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.testpermissionsrequest) if err != nil { return nil, err } c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/interconnectAttachments") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/networkAttachments/{resource}/testIamPermissions") urls += "?" + c.urlParams_.Encode() req, err := http.NewRequest("POST", urls, body) if err != nil { @@ -37278,18 +58708,21 @@ func (c *InterconnectAttachmentsInsertCall) doRequest(alt string) (*http.Respons } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "region": c.region, + "project": c.project, + "region": c.region, + "resource": c.resource, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.networkAttachments.testIamPermissions", "request", internallog.HTTPRequest(req, body.Bytes())) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.interconnectAttachments.insert" call. +// Do executes the "compute.networkAttachments.testIamPermissions" call. // 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 *InterconnectAttachmentsInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) { +// *TestPermissionsResponse.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 *NetworkAttachmentsTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -37308,123 +58741,203 @@ func (c *InterconnectAttachmentsInsertCall) Do(opts ...googleapi.CallOption) (*O if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } - ret := &Operation{ + ret := &TestPermissionsResponse{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.networkAttachments.testIamPermissions", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type InterconnectAttachmentsListCall struct { +type NetworkEdgeSecurityServicesAggregatedListCall struct { s *Service project string - region string urlParams_ gensupport.URLParams ifNoneMatch_ string ctx_ context.Context header_ http.Header } -// List: Retrieves the list of interconnect attachments contained within the -// specified region. +// AggregatedList: Retrieves the list of all NetworkEdgeSecurityService +// resources available to +// the specified project. // -// - project: Project ID for this request. -// - region: Name of the region for this request. -func (r *InterconnectAttachmentsService) List(project string, region string) *InterconnectAttachmentsListCall { - c := &InterconnectAttachmentsListCall{s: r.s, urlParams_: make(gensupport.URLParams)} +// To prevent failure, Google recommends that you set +// the +// `returnPartialSuccess` parameter to `true`. +// +// - project: Name of the project scoping this request. +func (r *NetworkEdgeSecurityServicesService) AggregatedList(project string) *NetworkEdgeSecurityServicesAggregatedListCall { + c := &NetworkEdgeSecurityServicesAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project - c.region = region return c } // Filter sets the optional parameter "filter": A filter expression that -// filters resources listed in the response. Most Compute resources support two -// types of filter expressions: expressions that support regular expressions -// and expressions that follow API improvement proposal AIP-160. These two -// types of filter expressions cannot be mixed in one request. If you want to -// use AIP-160, your expression must specify the field name, an operator, and -// the value that you want to use for filtering. The value must be a string, a -// number, or a boolean. The 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`. The `:*` comparison can be used to test whether a key has -// been defined. For example, to find all objects with `owner` label use: ``` -// labels.owner:* ``` 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) ``` If you want to use a regular -// expression, use the `eq` (equal) or `ne` (not equal) operator against a -// single un-parenthesized expression with or without quotes or against -// multiple parenthesized expressions. Examples: `fieldname eq unquoted -// literal` `fieldname eq 'single quoted literal'` `fieldname eq "double quoted -// literal" `(fieldname1 eq literal) (fieldname2 ne "literal")` The literal -// value is interpreted as a regular expression using Google RE2 library -// syntax. The literal value must match the entire field. For example, to -// filter for instances that do not end with name "instance", you would use -// `name ne .*instance`. You cannot combine constraints on multiple fields -// using regular expressions. -func (c *InterconnectAttachmentsListCall) Filter(filter string) *InterconnectAttachmentsListCall { +// filters resources listed in the response. Most +// Compute resources support two types of filter expressions: +// expressions that support regular expressions and expressions that follow +// API improvement proposal AIP-160. +// These two types of filter expressions cannot be mixed in one request. +// +// If you want to use AIP-160, your expression must specify the field name, +// an +// operator, and the value that you want to use for filtering. The value +// must be a string, a number, or a boolean. The 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`. +// +// The `:*` comparison can be used to test whether a key has been defined. +// For example, to find all objects with `owner` label +// use: +// ``` +// labels.owner:* +// ``` +// +// 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 onresource 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) +// ``` +// +// If you want to use a regular expression, use the `eq` (equal) or `ne` +// (not equal) operator against a single un-parenthesized expression with +// or +// without quotes or against multiple parenthesized expressions. +// Examples: +// +// `fieldname eq unquoted literal` +// `fieldname eq 'single quoted literal'` +// `fieldname eq "double quoted literal" +// `(fieldname1 eq literal) (fieldname2 ne "literal")` +// +// The literal value is interpreted as a regular expression using GoogleRE2 +// library syntax. +// The literal value must match the entire field. +// +// For example, to filter for instances that do not end with name +// "instance", +// you would use `name ne .*instance`. +// +// You cannot combine constraints on multiple fields using regular +// expressions. +func (c *NetworkEdgeSecurityServicesAggregatedListCall) Filter(filter string) *NetworkEdgeSecurityServicesAggregatedListCall { c.urlParams_.Set("filter", filter) return c } +// IncludeAllScopes sets the optional parameter "includeAllScopes": Indicates +// whether every visible scope for each scope type (zone, region, +// global) should be included in the response. For new resource types +// added +// after this field, the flag has no effect as new resource types will +// always +// include every visible scope for each scope type in response. For +// resource +// types which predate this field, if this flag is omitted or false, +// only +// scopes of the scope types where the resource type is expected to be +// found +// will be included. +func (c *NetworkEdgeSecurityServicesAggregatedListCall) IncludeAllScopes(includeAllScopes bool) *NetworkEdgeSecurityServicesAggregatedListCall { + c.urlParams_.Set("includeAllScopes", fmt.Sprint(includeAllScopes)) + 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 *InterconnectAttachmentsListCall) MaxResults(maxResults int64) *InterconnectAttachmentsListCall { +// 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 *NetworkEdgeSecurityServicesAggregatedListCall) MaxResults(maxResults int64) *NetworkEdgeSecurityServicesAggregatedListCall { 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 *InterconnectAttachmentsListCall) OrderBy(orderBy string) *InterconnectAttachmentsListCall { +// 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 *NetworkEdgeSecurityServicesAggregatedListCall) OrderBy(orderBy string) *NetworkEdgeSecurityServicesAggregatedListCall { 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 *InterconnectAttachmentsListCall) PageToken(pageToken string) *InterconnectAttachmentsListCall { +// use. Set `pageToken` to the +// `nextPageToken` returned by a previous list request to get +// the next page of results. +func (c *NetworkEdgeSecurityServicesAggregatedListCall) PageToken(pageToken string) *NetworkEdgeSecurityServicesAggregatedListCall { c.urlParams_.Set("pageToken", pageToken) return c } // ReturnPartialSuccess sets the optional parameter "returnPartialSuccess": -// Opt-in for partial success behavior which provides partial results in case -// of failure. The default value is false. For example, when partial success -// behavior is enabled, aggregatedList for a single zone scope either returns -// all resources in the zone or no resources, with an error code. -func (c *InterconnectAttachmentsListCall) ReturnPartialSuccess(returnPartialSuccess bool) *InterconnectAttachmentsListCall { +// Opt-in for partial success behavior which provides partial results in +// case +// of failure. The default value is false. +// +// For example, when partial success behavior is enabled, aggregatedList for +// a +// single zone scope either returns all resources in the zone or no +// resources, +// with an error code. +func (c *NetworkEdgeSecurityServicesAggregatedListCall) ReturnPartialSuccess(returnPartialSuccess bool) *NetworkEdgeSecurityServicesAggregatedListCall { c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess)) return c } +// ServiceProjectNumber sets the optional parameter "serviceProjectNumber": The +// Shared VPC service project id or service project number for which +// aggregated list request is invoked for subnetworks list-usable api. +func (c *NetworkEdgeSecurityServicesAggregatedListCall) ServiceProjectNumber(serviceProjectNumber int64) *NetworkEdgeSecurityServicesAggregatedListCall { + c.urlParams_.Set("serviceProjectNumber", fmt.Sprint(serviceProjectNumber)) + return c +} + // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *InterconnectAttachmentsListCall) Fields(s ...googleapi.Field) *InterconnectAttachmentsListCall { +func (c *NetworkEdgeSecurityServicesAggregatedListCall) Fields(s ...googleapi.Field) *NetworkEdgeSecurityServicesAggregatedListCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } @@ -37432,55 +58945,54 @@ func (c *InterconnectAttachmentsListCall) Fields(s ...googleapi.Field) *Intercon // IfNoneMatch sets an 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. -func (c *InterconnectAttachmentsListCall) IfNoneMatch(entityTag string) *InterconnectAttachmentsListCall { +func (c *NetworkEdgeSecurityServicesAggregatedListCall) IfNoneMatch(entityTag string) *NetworkEdgeSecurityServicesAggregatedListCall { c.ifNoneMatch_ = entityTag return c } // Context sets the context to be used in this call's Do method. -func (c *InterconnectAttachmentsListCall) Context(ctx context.Context) *InterconnectAttachmentsListCall { +func (c *NetworkEdgeSecurityServicesAggregatedListCall) Context(ctx context.Context) *NetworkEdgeSecurityServicesAggregatedListCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *InterconnectAttachmentsListCall) Header() http.Header { +func (c *NetworkEdgeSecurityServicesAggregatedListCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *InterconnectAttachmentsListCall) doRequest(alt string) (*http.Response, error) { +func (c *NetworkEdgeSecurityServicesAggregatedListCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) if c.ifNoneMatch_ != "" { reqHeaders.Set("If-None-Match", c.ifNoneMatch_) } - var body io.Reader = nil c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/interconnectAttachments") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/aggregated/networkEdgeSecurityServices") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("GET", urls, body) + req, err := http.NewRequest("GET", urls, nil) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ "project": c.project, - "region": c.region, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.networkEdgeSecurityServices.aggregatedList", "request", internallog.HTTPRequest(req, nil)) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.interconnectAttachments.list" call. +// Do executes the "compute.networkEdgeSecurityServices.aggregatedList" call. // Any non-2xx status code is an error. Response headers are in either -// *InterconnectAttachmentList.ServerResponse.Header or (if a response was -// returned at all) in error.(*googleapi.Error).Header. Use +// *NetworkEdgeSecurityServiceAggregatedList.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 *InterconnectAttachmentsListCall) Do(opts ...googleapi.CallOption) (*InterconnectAttachmentList, error) { +func (c *NetworkEdgeSecurityServicesAggregatedListCall) Do(opts ...googleapi.CallOption) (*NetworkEdgeSecurityServiceAggregatedList, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -37499,23 +59011,25 @@ func (c *InterconnectAttachmentsListCall) Do(opts ...googleapi.CallOption) (*Int if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } - ret := &InterconnectAttachmentList{ + ret := &NetworkEdgeSecurityServiceAggregatedList{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.networkEdgeSecurityServices.aggregatedList", "response", internallog.HTTPResponse(res, b)) return ret, nil } // 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 *InterconnectAttachmentsListCall) Pages(ctx context.Context, f func(*InterconnectAttachmentList) error) error { +func (c *NetworkEdgeSecurityServicesAggregatedListCall) Pages(ctx context.Context, f func(*NetworkEdgeSecurityServiceAggregatedList) error) error { c.ctx_ = ctx defer c.PageToken(c.urlParams_.Get("pageToken")) for { @@ -37533,44 +59047,48 @@ func (c *InterconnectAttachmentsListCall) Pages(ctx context.Context, f func(*Int } } -type InterconnectAttachmentsPatchCall struct { - s *Service - project string - region string - interconnectAttachment string - interconnectattachment *InterconnectAttachment - urlParams_ gensupport.URLParams - ctx_ context.Context - header_ http.Header +type NetworkEdgeSecurityServicesDeleteCall struct { + s *Service + project string + region string + networkEdgeSecurityService string + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header } -// Patch: Updates the specified interconnect attachment with the data included -// in the request. This method supports PATCH semantics and uses the JSON merge -// patch format and processing rules. +// Delete: Deletes the specified service. // -// - interconnectAttachment: Name of the interconnect attachment to patch. -// - project: Project ID for this request. -// - region: Name of the region scoping this request. -func (r *InterconnectAttachmentsService) Patch(project string, region string, interconnectAttachment string, interconnectattachment *InterconnectAttachment) *InterconnectAttachmentsPatchCall { - c := &InterconnectAttachmentsPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)} +// - networkEdgeSecurityService: Name of the network edge security service to +// delete. +// - project: Project ID for this request. +// - region: Name of the region scoping this request. +func (r *NetworkEdgeSecurityServicesService) Delete(project string, region string, networkEdgeSecurityService string) *NetworkEdgeSecurityServicesDeleteCall { + c := &NetworkEdgeSecurityServicesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project c.region = region - c.interconnectAttachment = interconnectAttachment - c.interconnectattachment = interconnectattachment + c.networkEdgeSecurityService = networkEdgeSecurityService 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 *InterconnectAttachmentsPatchCall) RequestId(requestId string) *InterconnectAttachmentsPatchCall { +// 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 *NetworkEdgeSecurityServicesDeleteCall) RequestId(requestId string) *NetworkEdgeSecurityServicesDeleteCall { c.urlParams_.Set("requestId", requestId) return c } @@ -37578,56 +59096,52 @@ func (c *InterconnectAttachmentsPatchCall) RequestId(requestId string) *Intercon // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *InterconnectAttachmentsPatchCall) Fields(s ...googleapi.Field) *InterconnectAttachmentsPatchCall { +func (c *NetworkEdgeSecurityServicesDeleteCall) Fields(s ...googleapi.Field) *NetworkEdgeSecurityServicesDeleteCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } // Context sets the context to be used in this call's Do method. -func (c *InterconnectAttachmentsPatchCall) Context(ctx context.Context) *InterconnectAttachmentsPatchCall { +func (c *NetworkEdgeSecurityServicesDeleteCall) Context(ctx context.Context) *NetworkEdgeSecurityServicesDeleteCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *InterconnectAttachmentsPatchCall) Header() http.Header { +func (c *NetworkEdgeSecurityServicesDeleteCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *InterconnectAttachmentsPatchCall) doRequest(alt string) (*http.Response, error) { - reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) - var body io.Reader = nil - body, err := googleapi.WithoutDataWrapper.JSONReader(c.interconnectattachment) - if err != nil { - return nil, err - } +func (c *NetworkEdgeSecurityServicesDeleteCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/interconnectAttachments/{interconnectAttachment}") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/networkEdgeSecurityServices/{networkEdgeSecurityService}") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("PATCH", urls, body) + req, err := http.NewRequest("DELETE", urls, nil) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "region": c.region, - "interconnectAttachment": c.interconnectAttachment, + "project": c.project, + "region": c.region, + "networkEdgeSecurityService": c.networkEdgeSecurityService, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.networkEdgeSecurityServices.delete", "request", internallog.HTTPRequest(req, nil)) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.interconnectAttachments.patch" call. +// Do executes the "compute.networkEdgeSecurityServices.delete" call. // 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 *InterconnectAttachmentsPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) { +func (c *NetworkEdgeSecurityServicesDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -37653,86 +59167,218 @@ func (c *InterconnectAttachmentsPatchCall) Do(opts ...googleapi.CallOption) (*Op }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.networkEdgeSecurityServices.delete", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type InterconnectAttachmentsSetLabelsCall struct { - s *Service - project string - region string - resource string - regionsetlabelsrequest *RegionSetLabelsRequest - urlParams_ gensupport.URLParams - ctx_ context.Context - header_ http.Header +type NetworkEdgeSecurityServicesGetCall struct { + s *Service + project string + region string + networkEdgeSecurityService string + urlParams_ gensupport.URLParams + ifNoneMatch_ string + ctx_ context.Context + header_ http.Header } -// SetLabels: Sets the labels on an InterconnectAttachment. To learn more about -// labels, read the Labeling Resources documentation. +// Get: Gets a specified NetworkEdgeSecurityService. +// +// - networkEdgeSecurityService: Name of the network edge security service to +// get. +// - project: Project ID for this request. +// - region: Name of the region scoping this request. +func (r *NetworkEdgeSecurityServicesService) Get(project string, region string, networkEdgeSecurityService string) *NetworkEdgeSecurityServicesGetCall { + c := &NetworkEdgeSecurityServicesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)} + c.project = project + c.region = region + c.networkEdgeSecurityService = networkEdgeSecurityService + return c +} + +// Fields allows partial responses to be retrieved. See +// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more +// details. +func (c *NetworkEdgeSecurityServicesGetCall) Fields(s ...googleapi.Field) *NetworkEdgeSecurityServicesGetCall { + c.urlParams_.Set("fields", googleapi.CombineFields(s)) + return c +} + +// IfNoneMatch sets an 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. +func (c *NetworkEdgeSecurityServicesGetCall) IfNoneMatch(entityTag string) *NetworkEdgeSecurityServicesGetCall { + c.ifNoneMatch_ = entityTag + return c +} + +// Context sets the context to be used in this call's Do method. +func (c *NetworkEdgeSecurityServicesGetCall) Context(ctx context.Context) *NetworkEdgeSecurityServicesGetCall { + c.ctx_ = ctx + return c +} + +// Header returns a http.Header that can be modified by the caller to add +// headers to the request. +func (c *NetworkEdgeSecurityServicesGetCall) Header() http.Header { + if c.header_ == nil { + c.header_ = make(http.Header) + } + return c.header_ +} + +func (c *NetworkEdgeSecurityServicesGetCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) + if c.ifNoneMatch_ != "" { + reqHeaders.Set("If-None-Match", c.ifNoneMatch_) + } + c.urlParams_.Set("alt", alt) + c.urlParams_.Set("prettyPrint", "false") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/networkEdgeSecurityServices/{networkEdgeSecurityService}") + urls += "?" + c.urlParams_.Encode() + req, err := http.NewRequest("GET", urls, nil) + if err != nil { + return nil, err + } + req.Header = reqHeaders + googleapi.Expand(req.URL, map[string]string{ + "project": c.project, + "region": c.region, + "networkEdgeSecurityService": c.networkEdgeSecurityService, + }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.networkEdgeSecurityServices.get", "request", internallog.HTTPRequest(req, nil)) + return gensupport.SendRequest(c.ctx_, c.s.client, req) +} + +// Do executes the "compute.networkEdgeSecurityServices.get" call. +// Any non-2xx status code is an error. Response headers are in either +// *NetworkEdgeSecurityService.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 *NetworkEdgeSecurityServicesGetCall) Do(opts ...googleapi.CallOption) (*NetworkEdgeSecurityService, 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, gensupport.WrapError(&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, gensupport.WrapError(err) + } + ret := &NetworkEdgeSecurityService{ + ServerResponse: googleapi.ServerResponse{ + Header: res.Header, + HTTPStatusCode: res.StatusCode, + }, + } + target := &ret + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { + return nil, err + } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.networkEdgeSecurityServices.get", "response", internallog.HTTPResponse(res, b)) + return ret, nil +} + +type NetworkEdgeSecurityServicesInsertCall struct { + s *Service + project string + region string + networkedgesecurityservice *NetworkEdgeSecurityService + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header +} + +// Insert: Creates a new service in the specified project using the data +// included in +// the request. // // - project: Project ID for this request. -// - region: The region for this request. -// - resource: Name or id of the resource for this request. -func (r *InterconnectAttachmentsService) SetLabels(project string, region string, resource string, regionsetlabelsrequest *RegionSetLabelsRequest) *InterconnectAttachmentsSetLabelsCall { - c := &InterconnectAttachmentsSetLabelsCall{s: r.s, urlParams_: make(gensupport.URLParams)} +// - region: Name of the region scoping this request. +func (r *NetworkEdgeSecurityServicesService) Insert(project string, region string, networkedgesecurityservice *NetworkEdgeSecurityService) *NetworkEdgeSecurityServicesInsertCall { + c := &NetworkEdgeSecurityServicesInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project c.region = region - c.resource = resource - c.regionsetlabelsrequest = regionsetlabelsrequest + c.networkedgesecurityservice = networkedgesecurityservice 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 *InterconnectAttachmentsSetLabelsCall) RequestId(requestId string) *InterconnectAttachmentsSetLabelsCall { +// 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 *NetworkEdgeSecurityServicesInsertCall) RequestId(requestId string) *NetworkEdgeSecurityServicesInsertCall { c.urlParams_.Set("requestId", requestId) return c } +// ValidateOnly sets the optional parameter "validateOnly": If true, the +// request will not be committed. +func (c *NetworkEdgeSecurityServicesInsertCall) ValidateOnly(validateOnly bool) *NetworkEdgeSecurityServicesInsertCall { + c.urlParams_.Set("validateOnly", fmt.Sprint(validateOnly)) + return c +} + // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *InterconnectAttachmentsSetLabelsCall) Fields(s ...googleapi.Field) *InterconnectAttachmentsSetLabelsCall { +func (c *NetworkEdgeSecurityServicesInsertCall) Fields(s ...googleapi.Field) *NetworkEdgeSecurityServicesInsertCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } // Context sets the context to be used in this call's Do method. -func (c *InterconnectAttachmentsSetLabelsCall) Context(ctx context.Context) *InterconnectAttachmentsSetLabelsCall { +func (c *NetworkEdgeSecurityServicesInsertCall) Context(ctx context.Context) *NetworkEdgeSecurityServicesInsertCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *InterconnectAttachmentsSetLabelsCall) Header() http.Header { +func (c *NetworkEdgeSecurityServicesInsertCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *InterconnectAttachmentsSetLabelsCall) doRequest(alt string) (*http.Response, error) { +func (c *NetworkEdgeSecurityServicesInsertCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) - var body io.Reader = nil - body, err := googleapi.WithoutDataWrapper.JSONReader(c.regionsetlabelsrequest) + body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.networkedgesecurityservice) if err != nil { return nil, err } c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/interconnectAttachments/{resource}/setLabels") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/networkEdgeSecurityServices") urls += "?" + c.urlParams_.Encode() req, err := http.NewRequest("POST", urls, body) if err != nil { @@ -37740,19 +59386,19 @@ func (c *InterconnectAttachmentsSetLabelsCall) doRequest(alt string) (*http.Resp } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "region": c.region, - "resource": c.resource, + "project": c.project, + "region": c.region, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.networkEdgeSecurityServices.insert", "request", internallog.HTTPRequest(req, body.Bytes())) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.interconnectAttachments.setLabels" call. +// Do executes the "compute.networkEdgeSecurityServices.insert" call. // 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 *InterconnectAttachmentsSetLabelsCall) Do(opts ...googleapi.CallOption) (*Operation, error) { +func (c *NetworkEdgeSecurityServicesInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -37778,94 +59424,128 @@ func (c *InterconnectAttachmentsSetLabelsCall) Do(opts ...googleapi.CallOption) }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.networkEdgeSecurityServices.insert", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type InterconnectLocationsGetCall struct { - s *Service - project string - interconnectLocation string - urlParams_ gensupport.URLParams - ifNoneMatch_ string - ctx_ context.Context - header_ http.Header +type NetworkEdgeSecurityServicesPatchCall struct { + s *Service + project string + region string + networkEdgeSecurityService string + networkedgesecurityservice *NetworkEdgeSecurityService + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header } -// Get: Returns the details for the specified interconnect location. Gets a -// list of available interconnect locations by making a list() request. +// Patch: Patches the specified policy with the data included in the request. // -// - interconnectLocation: Name of the interconnect location to return. -// - project: Project ID for this request. -func (r *InterconnectLocationsService) Get(project string, interconnectLocation string) *InterconnectLocationsGetCall { - c := &InterconnectLocationsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)} +// - networkEdgeSecurityService: Name of the network edge security service to +// update. +// - project: Project ID for this request. +// - region: Name of the region scoping this request. +func (r *NetworkEdgeSecurityServicesService) Patch(project string, region string, networkEdgeSecurityService string, networkedgesecurityservice *NetworkEdgeSecurityService) *NetworkEdgeSecurityServicesPatchCall { + c := &NetworkEdgeSecurityServicesPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project - c.interconnectLocation = interconnectLocation + c.region = region + c.networkEdgeSecurityService = networkEdgeSecurityService + c.networkedgesecurityservice = networkedgesecurityservice + return c +} + +// Paths sets the optional parameter "paths": +func (c *NetworkEdgeSecurityServicesPatchCall) Paths(paths ...string) *NetworkEdgeSecurityServicesPatchCall { + c.urlParams_.SetMulti("paths", append([]string{}, paths...)) + 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 *NetworkEdgeSecurityServicesPatchCall) RequestId(requestId string) *NetworkEdgeSecurityServicesPatchCall { + c.urlParams_.Set("requestId", requestId) + return c +} + +// UpdateMask sets the optional parameter "updateMask": Indicates fields to be +// updated as part of this request. +func (c *NetworkEdgeSecurityServicesPatchCall) UpdateMask(updateMask string) *NetworkEdgeSecurityServicesPatchCall { + c.urlParams_.Set("updateMask", updateMask) return c } // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *InterconnectLocationsGetCall) Fields(s ...googleapi.Field) *InterconnectLocationsGetCall { +func (c *NetworkEdgeSecurityServicesPatchCall) Fields(s ...googleapi.Field) *NetworkEdgeSecurityServicesPatchCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } -// IfNoneMatch sets an 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. -func (c *InterconnectLocationsGetCall) IfNoneMatch(entityTag string) *InterconnectLocationsGetCall { - c.ifNoneMatch_ = entityTag - return c -} - // Context sets the context to be used in this call's Do method. -func (c *InterconnectLocationsGetCall) Context(ctx context.Context) *InterconnectLocationsGetCall { +func (c *NetworkEdgeSecurityServicesPatchCall) Context(ctx context.Context) *NetworkEdgeSecurityServicesPatchCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *InterconnectLocationsGetCall) Header() http.Header { +func (c *NetworkEdgeSecurityServicesPatchCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *InterconnectLocationsGetCall) doRequest(alt string) (*http.Response, error) { - reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) - if c.ifNoneMatch_ != "" { - reqHeaders.Set("If-None-Match", c.ifNoneMatch_) +func (c *NetworkEdgeSecurityServicesPatchCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) + body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.networkedgesecurityservice) + if err != nil { + return nil, err } - var body io.Reader = nil c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/interconnectLocations/{interconnectLocation}") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/networkEdgeSecurityServices/{networkEdgeSecurityService}") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("GET", urls, body) + req, err := http.NewRequest("PATCH", urls, body) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "interconnectLocation": c.interconnectLocation, + "project": c.project, + "region": c.region, + "networkEdgeSecurityService": c.networkEdgeSecurityService, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.networkEdgeSecurityServices.patch", "request", internallog.HTTPRequest(req, body.Bytes())) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.interconnectLocations.get" call. +// Do executes the "compute.networkEdgeSecurityServices.patch" call. // Any non-2xx status code is an error. Response headers are in either -// *InterconnectLocation.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 *InterconnectLocationsGetCall) Do(opts ...googleapi.CallOption) (*InterconnectLocation, error) { +// *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 *NetworkEdgeSecurityServicesPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -37884,20 +59564,22 @@ func (c *InterconnectLocationsGetCall) Do(opts ...googleapi.CallOption) (*Interc if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } - ret := &InterconnectLocation{ + ret := &Operation{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.networkEdgeSecurityServices.patch", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type InterconnectLocationsListCall struct { +type NetworkEndpointGroupsAggregatedListCall struct { s *Service project string urlParams_ gensupport.URLParams @@ -37906,98 +59588,178 @@ type InterconnectLocationsListCall struct { header_ http.Header } -// List: Retrieves the list of interconnect locations available to the -// specified project. +// AggregatedList: Retrieves the list of network endpoint groups and sorts them +// by zone. +// +// To prevent failure, Google recommends that you set +// the +// `returnPartialSuccess` parameter to `true`. // // - project: Project ID for this request. -func (r *InterconnectLocationsService) List(project string) *InterconnectLocationsListCall { - c := &InterconnectLocationsListCall{s: r.s, urlParams_: make(gensupport.URLParams)} +func (r *NetworkEndpointGroupsService) AggregatedList(project string) *NetworkEndpointGroupsAggregatedListCall { + c := &NetworkEndpointGroupsAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project return c } // Filter sets the optional parameter "filter": A filter expression that -// filters resources listed in the response. Most Compute resources support two -// types of filter expressions: expressions that support regular expressions -// and expressions that follow API improvement proposal AIP-160. These two -// types of filter expressions cannot be mixed in one request. If you want to -// use AIP-160, your expression must specify the field name, an operator, and -// the value that you want to use for filtering. The value must be a string, a -// number, or a boolean. The 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`. The `:*` comparison can be used to test whether a key has -// been defined. For example, to find all objects with `owner` label use: ``` -// labels.owner:* ``` 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) ``` If you want to use a regular -// expression, use the `eq` (equal) or `ne` (not equal) operator against a -// single un-parenthesized expression with or without quotes or against -// multiple parenthesized expressions. Examples: `fieldname eq unquoted -// literal` `fieldname eq 'single quoted literal'` `fieldname eq "double quoted -// literal" `(fieldname1 eq literal) (fieldname2 ne "literal")` The literal -// value is interpreted as a regular expression using Google RE2 library -// syntax. The literal value must match the entire field. For example, to -// filter for instances that do not end with name "instance", you would use -// `name ne .*instance`. You cannot combine constraints on multiple fields -// using regular expressions. -func (c *InterconnectLocationsListCall) Filter(filter string) *InterconnectLocationsListCall { +// filters resources listed in the response. Most +// Compute resources support two types of filter expressions: +// expressions that support regular expressions and expressions that follow +// API improvement proposal AIP-160. +// These two types of filter expressions cannot be mixed in one request. +// +// If you want to use AIP-160, your expression must specify the field name, +// an +// operator, and the value that you want to use for filtering. The value +// must be a string, a number, or a boolean. The 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`. +// +// The `:*` comparison can be used to test whether a key has been defined. +// For example, to find all objects with `owner` label +// use: +// ``` +// labels.owner:* +// ``` +// +// 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 onresource 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) +// ``` +// +// If you want to use a regular expression, use the `eq` (equal) or `ne` +// (not equal) operator against a single un-parenthesized expression with +// or +// without quotes or against multiple parenthesized expressions. +// Examples: +// +// `fieldname eq unquoted literal` +// `fieldname eq 'single quoted literal'` +// `fieldname eq "double quoted literal" +// `(fieldname1 eq literal) (fieldname2 ne "literal")` +// +// The literal value is interpreted as a regular expression using GoogleRE2 +// library syntax. +// The literal value must match the entire field. +// +// For example, to filter for instances that do not end with name +// "instance", +// you would use `name ne .*instance`. +// +// You cannot combine constraints on multiple fields using regular +// expressions. +func (c *NetworkEndpointGroupsAggregatedListCall) Filter(filter string) *NetworkEndpointGroupsAggregatedListCall { c.urlParams_.Set("filter", filter) return c } +// IncludeAllScopes sets the optional parameter "includeAllScopes": Indicates +// whether every visible scope for each scope type (zone, region, +// global) should be included in the response. For new resource types +// added +// after this field, the flag has no effect as new resource types will +// always +// include every visible scope for each scope type in response. For +// resource +// types which predate this field, if this flag is omitted or false, +// only +// scopes of the scope types where the resource type is expected to be +// found +// will be included. +func (c *NetworkEndpointGroupsAggregatedListCall) IncludeAllScopes(includeAllScopes bool) *NetworkEndpointGroupsAggregatedListCall { + c.urlParams_.Set("includeAllScopes", fmt.Sprint(includeAllScopes)) + 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 *InterconnectLocationsListCall) MaxResults(maxResults int64) *InterconnectLocationsListCall { +// 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 *NetworkEndpointGroupsAggregatedListCall) MaxResults(maxResults int64) *NetworkEndpointGroupsAggregatedListCall { 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 *InterconnectLocationsListCall) OrderBy(orderBy string) *InterconnectLocationsListCall { +// 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 *NetworkEndpointGroupsAggregatedListCall) OrderBy(orderBy string) *NetworkEndpointGroupsAggregatedListCall { 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 *InterconnectLocationsListCall) PageToken(pageToken string) *InterconnectLocationsListCall { +// use. Set `pageToken` to the +// `nextPageToken` returned by a previous list request to get +// the next page of results. +func (c *NetworkEndpointGroupsAggregatedListCall) PageToken(pageToken string) *NetworkEndpointGroupsAggregatedListCall { c.urlParams_.Set("pageToken", pageToken) return c } // ReturnPartialSuccess sets the optional parameter "returnPartialSuccess": -// Opt-in for partial success behavior which provides partial results in case -// of failure. The default value is false. For example, when partial success -// behavior is enabled, aggregatedList for a single zone scope either returns -// all resources in the zone or no resources, with an error code. -func (c *InterconnectLocationsListCall) ReturnPartialSuccess(returnPartialSuccess bool) *InterconnectLocationsListCall { +// Opt-in for partial success behavior which provides partial results in +// case +// of failure. The default value is false. +// +// For example, when partial success behavior is enabled, aggregatedList for +// a +// single zone scope either returns all resources in the zone or no +// resources, +// with an error code. +func (c *NetworkEndpointGroupsAggregatedListCall) ReturnPartialSuccess(returnPartialSuccess bool) *NetworkEndpointGroupsAggregatedListCall { c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess)) return c } +// ServiceProjectNumber sets the optional parameter "serviceProjectNumber": The +// Shared VPC service project id or service project number for which +// aggregated list request is invoked for subnetworks list-usable api. +func (c *NetworkEndpointGroupsAggregatedListCall) ServiceProjectNumber(serviceProjectNumber int64) *NetworkEndpointGroupsAggregatedListCall { + c.urlParams_.Set("serviceProjectNumber", fmt.Sprint(serviceProjectNumber)) + return c +} + // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *InterconnectLocationsListCall) Fields(s ...googleapi.Field) *InterconnectLocationsListCall { +func (c *NetworkEndpointGroupsAggregatedListCall) Fields(s ...googleapi.Field) *NetworkEndpointGroupsAggregatedListCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } @@ -38005,37 +59767,36 @@ func (c *InterconnectLocationsListCall) Fields(s ...googleapi.Field) *Interconne // IfNoneMatch sets an 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. -func (c *InterconnectLocationsListCall) IfNoneMatch(entityTag string) *InterconnectLocationsListCall { +func (c *NetworkEndpointGroupsAggregatedListCall) IfNoneMatch(entityTag string) *NetworkEndpointGroupsAggregatedListCall { c.ifNoneMatch_ = entityTag return c } // Context sets the context to be used in this call's Do method. -func (c *InterconnectLocationsListCall) Context(ctx context.Context) *InterconnectLocationsListCall { +func (c *NetworkEndpointGroupsAggregatedListCall) Context(ctx context.Context) *NetworkEndpointGroupsAggregatedListCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *InterconnectLocationsListCall) Header() http.Header { +func (c *NetworkEndpointGroupsAggregatedListCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *InterconnectLocationsListCall) doRequest(alt string) (*http.Response, error) { +func (c *NetworkEndpointGroupsAggregatedListCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) if c.ifNoneMatch_ != "" { reqHeaders.Set("If-None-Match", c.ifNoneMatch_) } - var body io.Reader = nil c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/interconnectLocations") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/aggregated/networkEndpointGroups") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("GET", urls, body) + req, err := http.NewRequest("GET", urls, nil) if err != nil { return nil, err } @@ -38043,16 +59804,17 @@ func (c *InterconnectLocationsListCall) doRequest(alt string) (*http.Response, e googleapi.Expand(req.URL, map[string]string{ "project": c.project, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.networkEndpointGroups.aggregatedList", "request", internallog.HTTPRequest(req, nil)) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.interconnectLocations.list" call. +// Do executes the "compute.networkEndpointGroups.aggregatedList" call. // Any non-2xx status code is an error. Response headers are in either -// *InterconnectLocationList.ServerResponse.Header or (if a response was -// returned at all) in error.(*googleapi.Error).Header. Use +// *NetworkEndpointGroupAggregatedList.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 *InterconnectLocationsListCall) Do(opts ...googleapi.CallOption) (*InterconnectLocationList, error) { +func (c *NetworkEndpointGroupsAggregatedListCall) Do(opts ...googleapi.CallOption) (*NetworkEndpointGroupAggregatedList, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -38071,23 +59833,25 @@ func (c *InterconnectLocationsListCall) Do(opts ...googleapi.CallOption) (*Inter if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } - ret := &InterconnectLocationList{ + ret := &NetworkEndpointGroupAggregatedList{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.networkEndpointGroups.aggregatedList", "response", internallog.HTTPResponse(res, b)) return ret, nil } // 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 *InterconnectLocationsListCall) Pages(ctx context.Context, f func(*InterconnectLocationList) error) error { +func (c *NetworkEndpointGroupsAggregatedListCall) Pages(ctx context.Context, f func(*NetworkEndpointGroupAggregatedList) error) error { c.ctx_ = ctx defer c.PageToken(c.urlParams_.Get("pageToken")) for { @@ -38105,90 +59869,111 @@ func (c *InterconnectLocationsListCall) Pages(ctx context.Context, f func(*Inter } } -type InterconnectRemoteLocationsGetCall struct { - s *Service - project string - interconnectRemoteLocation string - urlParams_ gensupport.URLParams - ifNoneMatch_ string - ctx_ context.Context - header_ http.Header +type NetworkEndpointGroupsAttachNetworkEndpointsCall struct { + s *Service + project string + zone string + networkEndpointGroup string + networkendpointgroupsattachendpointsrequest *NetworkEndpointGroupsAttachEndpointsRequest + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header } -// Get: Returns the details for the specified interconnect remote location. -// Gets a list of available interconnect remote locations by making a list() -// request. +// AttachNetworkEndpoints: Attach a list of network endpoints to the specified +// network endpoint group. // -// - interconnectRemoteLocation: Name of the interconnect remote location to -// return. +// - networkEndpointGroup: The name of the network endpoint group where you are +// attaching network +// +// endpoints to. It should comply with RFC1035. // - project: Project ID for this request. -func (r *InterconnectRemoteLocationsService) Get(project string, interconnectRemoteLocation string) *InterconnectRemoteLocationsGetCall { - c := &InterconnectRemoteLocationsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)} +// - zone: The name of the zone where +// the network endpoint group is located. It should comply with RFC1035. +func (r *NetworkEndpointGroupsService) AttachNetworkEndpoints(project string, zone string, networkEndpointGroup string, networkendpointgroupsattachendpointsrequest *NetworkEndpointGroupsAttachEndpointsRequest) *NetworkEndpointGroupsAttachNetworkEndpointsCall { + c := &NetworkEndpointGroupsAttachNetworkEndpointsCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project - c.interconnectRemoteLocation = interconnectRemoteLocation + c.zone = zone + c.networkEndpointGroup = networkEndpointGroup + c.networkendpointgroupsattachendpointsrequest = networkendpointgroupsattachendpointsrequest + 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 *NetworkEndpointGroupsAttachNetworkEndpointsCall) RequestId(requestId string) *NetworkEndpointGroupsAttachNetworkEndpointsCall { + 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 // details. -func (c *InterconnectRemoteLocationsGetCall) Fields(s ...googleapi.Field) *InterconnectRemoteLocationsGetCall { +func (c *NetworkEndpointGroupsAttachNetworkEndpointsCall) Fields(s ...googleapi.Field) *NetworkEndpointGroupsAttachNetworkEndpointsCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } -// IfNoneMatch sets an 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. -func (c *InterconnectRemoteLocationsGetCall) IfNoneMatch(entityTag string) *InterconnectRemoteLocationsGetCall { - c.ifNoneMatch_ = entityTag - return c -} - // Context sets the context to be used in this call's Do method. -func (c *InterconnectRemoteLocationsGetCall) Context(ctx context.Context) *InterconnectRemoteLocationsGetCall { +func (c *NetworkEndpointGroupsAttachNetworkEndpointsCall) Context(ctx context.Context) *NetworkEndpointGroupsAttachNetworkEndpointsCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *InterconnectRemoteLocationsGetCall) Header() http.Header { +func (c *NetworkEndpointGroupsAttachNetworkEndpointsCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *InterconnectRemoteLocationsGetCall) doRequest(alt string) (*http.Response, error) { - reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) - if c.ifNoneMatch_ != "" { - reqHeaders.Set("If-None-Match", c.ifNoneMatch_) +func (c *NetworkEndpointGroupsAttachNetworkEndpointsCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) + body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.networkendpointgroupsattachendpointsrequest) + if err != nil { + return nil, err } - var body io.Reader = nil c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/interconnectRemoteLocations/{interconnectRemoteLocation}") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/networkEndpointGroups/{networkEndpointGroup}/attachNetworkEndpoints") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("GET", urls, body) + req, err := http.NewRequest("POST", urls, body) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "interconnectRemoteLocation": c.interconnectRemoteLocation, + "project": c.project, + "zone": c.zone, + "networkEndpointGroup": c.networkEndpointGroup, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.networkEndpointGroups.attachNetworkEndpoints", "request", internallog.HTTPRequest(req, body.Bytes())) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.interconnectRemoteLocations.get" call. +// Do executes the "compute.networkEndpointGroups.attachNetworkEndpoints" call. // Any non-2xx status code is an error. Response headers are in either -// *InterconnectRemoteLocation.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 *InterconnectRemoteLocationsGetCall) Do(opts ...googleapi.CallOption) (*InterconnectRemoteLocation, error) { +// *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 *NetworkEndpointGroupsAttachNetworkEndpointsCall) Do(opts ...googleapi.CallOption) (*Operation, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -38207,175 +59992,125 @@ func (c *InterconnectRemoteLocationsGetCall) Do(opts ...googleapi.CallOption) (* if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } - ret := &InterconnectRemoteLocation{ + ret := &Operation{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.networkEndpointGroups.attachNetworkEndpoints", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type InterconnectRemoteLocationsListCall struct { - s *Service - project string - urlParams_ gensupport.URLParams - ifNoneMatch_ string - ctx_ context.Context - header_ http.Header +type NetworkEndpointGroupsDeleteCall struct { + s *Service + project string + zone string + networkEndpointGroup string + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header } -// List: Retrieves the list of interconnect remote locations available to the -// specified project. +// Delete: Deletes the specified network endpoint group. The network endpoints +// in the +// NEG and the VM instances they belong to are not terminated when the NEG +// is +// deleted. Note that the NEG cannot be deleted if there are backend +// services +// referencing it. // -// - project: Project ID for this request. -func (r *InterconnectRemoteLocationsService) List(project string) *InterconnectRemoteLocationsListCall { - c := &InterconnectRemoteLocationsListCall{s: r.s, urlParams_: make(gensupport.URLParams)} +// - networkEndpointGroup: The name of the network endpoint group to delete. It +// should comply with +// +// RFC1035. +// - project: Project ID for this request. +// - zone: The name of the zone where +// the network endpoint group is located. It should comply with RFC1035. +func (r *NetworkEndpointGroupsService) Delete(project string, zone string, networkEndpointGroup string) *NetworkEndpointGroupsDeleteCall { + c := &NetworkEndpointGroupsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project + c.zone = zone + c.networkEndpointGroup = networkEndpointGroup return c } -// Filter sets the optional parameter "filter": A filter expression that -// filters resources listed in the response. Most Compute resources support two -// types of filter expressions: expressions that support regular expressions -// and expressions that follow API improvement proposal AIP-160. These two -// types of filter expressions cannot be mixed in one request. If you want to -// use AIP-160, your expression must specify the field name, an operator, and -// the value that you want to use for filtering. The value must be a string, a -// number, or a boolean. The 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`. The `:*` comparison can be used to test whether a key has -// been defined. For example, to find all objects with `owner` label use: ``` -// labels.owner:* ``` 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) ``` If you want to use a regular -// expression, use the `eq` (equal) or `ne` (not equal) operator against a -// single un-parenthesized expression with or without quotes or against -// multiple parenthesized expressions. Examples: `fieldname eq unquoted -// literal` `fieldname eq 'single quoted literal'` `fieldname eq "double quoted -// literal" `(fieldname1 eq literal) (fieldname2 ne "literal")` The literal -// value is interpreted as a regular expression using Google RE2 library -// syntax. The literal value must match the entire field. For example, to -// filter for instances that do not end with name "instance", you would use -// `name ne .*instance`. You cannot combine constraints on multiple fields -// using regular expressions. -func (c *InterconnectRemoteLocationsListCall) Filter(filter string) *InterconnectRemoteLocationsListCall { - 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 *InterconnectRemoteLocationsListCall) MaxResults(maxResults int64) *InterconnectRemoteLocationsListCall { - 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 *InterconnectRemoteLocationsListCall) OrderBy(orderBy string) *InterconnectRemoteLocationsListCall { - 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 *InterconnectRemoteLocationsListCall) PageToken(pageToken string) *InterconnectRemoteLocationsListCall { - c.urlParams_.Set("pageToken", pageToken) - return c -} - -// ReturnPartialSuccess sets the optional parameter "returnPartialSuccess": -// Opt-in for partial success behavior which provides partial results in case -// of failure. The default value is false. For example, when partial success -// behavior is enabled, aggregatedList for a single zone scope either returns -// all resources in the zone or no resources, with an error code. -func (c *InterconnectRemoteLocationsListCall) ReturnPartialSuccess(returnPartialSuccess bool) *InterconnectRemoteLocationsListCall { - c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess)) +// 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 *NetworkEndpointGroupsDeleteCall) RequestId(requestId string) *NetworkEndpointGroupsDeleteCall { + 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 // details. -func (c *InterconnectRemoteLocationsListCall) Fields(s ...googleapi.Field) *InterconnectRemoteLocationsListCall { +func (c *NetworkEndpointGroupsDeleteCall) Fields(s ...googleapi.Field) *NetworkEndpointGroupsDeleteCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } -// IfNoneMatch sets an 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. -func (c *InterconnectRemoteLocationsListCall) IfNoneMatch(entityTag string) *InterconnectRemoteLocationsListCall { - c.ifNoneMatch_ = entityTag - return c -} - // Context sets the context to be used in this call's Do method. -func (c *InterconnectRemoteLocationsListCall) Context(ctx context.Context) *InterconnectRemoteLocationsListCall { +func (c *NetworkEndpointGroupsDeleteCall) Context(ctx context.Context) *NetworkEndpointGroupsDeleteCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *InterconnectRemoteLocationsListCall) Header() http.Header { +func (c *NetworkEndpointGroupsDeleteCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *InterconnectRemoteLocationsListCall) doRequest(alt string) (*http.Response, error) { +func (c *NetworkEndpointGroupsDeleteCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) - if c.ifNoneMatch_ != "" { - reqHeaders.Set("If-None-Match", c.ifNoneMatch_) - } - var body io.Reader = nil c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/interconnectRemoteLocations") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/networkEndpointGroups/{networkEndpointGroup}") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("GET", urls, body) + req, err := http.NewRequest("DELETE", urls, nil) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, + "project": c.project, + "zone": c.zone, + "networkEndpointGroup": c.networkEndpointGroup, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.networkEndpointGroups.delete", "request", internallog.HTTPRequest(req, nil)) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.interconnectRemoteLocations.list" call. +// Do executes the "compute.networkEndpointGroups.delete" call. // Any non-2xx status code is an error. Response headers are in either -// *InterconnectRemoteLocationList.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 *InterconnectRemoteLocationsListCall) Do(opts ...googleapi.CallOption) (*InterconnectRemoteLocationList, error) { +// *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 *NetworkEndpointGroupsDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -38394,71 +60129,70 @@ func (c *InterconnectRemoteLocationsListCall) Do(opts ...googleapi.CallOption) ( if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } - ret := &InterconnectRemoteLocationList{ + ret := &Operation{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.networkEndpointGroups.delete", "response", internallog.HTTPResponse(res, b)) return ret, nil } -// 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 *InterconnectRemoteLocationsListCall) Pages(ctx context.Context, f func(*InterconnectRemoteLocationList) error) error { - c.ctx_ = ctx - defer c.PageToken(c.urlParams_.Get("pageToken")) - 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) - } -} - -type InterconnectsDeleteCall struct { - s *Service - project string - interconnect string - urlParams_ gensupport.URLParams - ctx_ context.Context - header_ http.Header +type NetworkEndpointGroupsDetachNetworkEndpointsCall struct { + s *Service + project string + zone string + networkEndpointGroup string + networkendpointgroupsdetachendpointsrequest *NetworkEndpointGroupsDetachEndpointsRequest + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header } -// Delete: Deletes the specified Interconnect. +// DetachNetworkEndpoints: Detach a list of network endpoints from the +// specified network endpoint +// group. // -// - interconnect: Name of the interconnect to delete. -// - project: Project ID for this request. -func (r *InterconnectsService) Delete(project string, interconnect string) *InterconnectsDeleteCall { - c := &InterconnectsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)} +// - networkEndpointGroup: The name of the network endpoint group where you are +// removing network +// +// endpoints. It should comply with RFC1035. +// - project: Project ID for this request. +// - zone: The name of the zone where +// the network endpoint group is located. It should comply with RFC1035. +func (r *NetworkEndpointGroupsService) DetachNetworkEndpoints(project string, zone string, networkEndpointGroup string, networkendpointgroupsdetachendpointsrequest *NetworkEndpointGroupsDetachEndpointsRequest) *NetworkEndpointGroupsDetachNetworkEndpointsCall { + c := &NetworkEndpointGroupsDetachNetworkEndpointsCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project - c.interconnect = interconnect + c.zone = zone + c.networkEndpointGroup = networkEndpointGroup + c.networkendpointgroupsdetachendpointsrequest = networkendpointgroupsdetachendpointsrequest 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 *InterconnectsDeleteCall) RequestId(requestId string) *InterconnectsDeleteCall { +// 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 *NetworkEndpointGroupsDetachNetworkEndpointsCall) RequestId(requestId string) *NetworkEndpointGroupsDetachNetworkEndpointsCall { c.urlParams_.Set("requestId", requestId) return c } @@ -38466,51 +60200,56 @@ func (c *InterconnectsDeleteCall) RequestId(requestId string) *InterconnectsDele // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *InterconnectsDeleteCall) Fields(s ...googleapi.Field) *InterconnectsDeleteCall { +func (c *NetworkEndpointGroupsDetachNetworkEndpointsCall) Fields(s ...googleapi.Field) *NetworkEndpointGroupsDetachNetworkEndpointsCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } // Context sets the context to be used in this call's Do method. -func (c *InterconnectsDeleteCall) Context(ctx context.Context) *InterconnectsDeleteCall { +func (c *NetworkEndpointGroupsDetachNetworkEndpointsCall) Context(ctx context.Context) *NetworkEndpointGroupsDetachNetworkEndpointsCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *InterconnectsDeleteCall) Header() http.Header { +func (c *NetworkEndpointGroupsDetachNetworkEndpointsCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *InterconnectsDeleteCall) doRequest(alt string) (*http.Response, error) { - reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) - var body io.Reader = nil +func (c *NetworkEndpointGroupsDetachNetworkEndpointsCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) + body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.networkendpointgroupsdetachendpointsrequest) + if err != nil { + return nil, err + } c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/interconnects/{interconnect}") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/networkEndpointGroups/{networkEndpointGroup}/detachNetworkEndpoints") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("DELETE", urls, body) + req, err := http.NewRequest("POST", urls, body) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "interconnect": c.interconnect, + "project": c.project, + "zone": c.zone, + "networkEndpointGroup": c.networkEndpointGroup, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.networkEndpointGroups.detachNetworkEndpoints", "request", internallog.HTTPRequest(req, body.Bytes())) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.interconnects.delete" call. +// Do executes the "compute.networkEndpointGroups.detachNetworkEndpoints" call. // 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 *InterconnectsDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) { +func (c *NetworkEndpointGroupsDetachNetworkEndpointsCall) Do(opts ...googleapi.CallOption) (*Operation, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -38536,38 +60275,44 @@ func (c *InterconnectsDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.networkEndpointGroups.detachNetworkEndpoints", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type InterconnectsGetCall struct { - s *Service - project string - interconnect string - urlParams_ gensupport.URLParams - ifNoneMatch_ string - ctx_ context.Context - header_ http.Header +type NetworkEndpointGroupsGetCall struct { + s *Service + project string + zone string + networkEndpointGroup string + urlParams_ gensupport.URLParams + ifNoneMatch_ string + ctx_ context.Context + header_ http.Header } -// Get: Returns the specified Interconnect. Get a list of available -// Interconnects by making a list() request. +// Get: Returns the specified network endpoint group. // -// - interconnect: Name of the interconnect to return. -// - project: Project ID for this request. -func (r *InterconnectsService) Get(project string, interconnect string) *InterconnectsGetCall { - c := &InterconnectsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)} +// - networkEndpointGroup: The name of the network endpoint group. It should +// comply with RFC1035. +// - project: Project ID for this request. +// - zone: The name of the zone where +// the network endpoint group is located. It should comply with RFC1035. +func (r *NetworkEndpointGroupsService) Get(project string, zone string, networkEndpointGroup string) *NetworkEndpointGroupsGetCall { + c := &NetworkEndpointGroupsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project - c.interconnect = interconnect + c.zone = zone + c.networkEndpointGroup = networkEndpointGroup return c } // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *InterconnectsGetCall) Fields(s ...googleapi.Field) *InterconnectsGetCall { +func (c *NetworkEndpointGroupsGetCall) Fields(s ...googleapi.Field) *NetworkEndpointGroupsGetCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } @@ -38575,54 +60320,205 @@ func (c *InterconnectsGetCall) Fields(s ...googleapi.Field) *InterconnectsGetCal // IfNoneMatch sets an 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. -func (c *InterconnectsGetCall) IfNoneMatch(entityTag string) *InterconnectsGetCall { +func (c *NetworkEndpointGroupsGetCall) IfNoneMatch(entityTag string) *NetworkEndpointGroupsGetCall { c.ifNoneMatch_ = entityTag return c } // Context sets the context to be used in this call's Do method. -func (c *InterconnectsGetCall) Context(ctx context.Context) *InterconnectsGetCall { +func (c *NetworkEndpointGroupsGetCall) Context(ctx context.Context) *NetworkEndpointGroupsGetCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *InterconnectsGetCall) Header() http.Header { +func (c *NetworkEndpointGroupsGetCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *InterconnectsGetCall) doRequest(alt string) (*http.Response, error) { +func (c *NetworkEndpointGroupsGetCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) if c.ifNoneMatch_ != "" { reqHeaders.Set("If-None-Match", c.ifNoneMatch_) } - var body io.Reader = nil c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/interconnects/{interconnect}") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/networkEndpointGroups/{networkEndpointGroup}") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("GET", urls, body) + req, err := http.NewRequest("GET", urls, nil) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "interconnect": c.interconnect, + "project": c.project, + "zone": c.zone, + "networkEndpointGroup": c.networkEndpointGroup, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.networkEndpointGroups.get", "request", internallog.HTTPRequest(req, nil)) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.interconnects.get" call. +// Do executes the "compute.networkEndpointGroups.get" call. // Any non-2xx status code is an error. Response headers are in either -// *Interconnect.ServerResponse.Header or (if a response was returned at all) -// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check +// *NetworkEndpointGroup.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 *NetworkEndpointGroupsGetCall) Do(opts ...googleapi.CallOption) (*NetworkEndpointGroup, 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, gensupport.WrapError(&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, gensupport.WrapError(err) + } + ret := &NetworkEndpointGroup{ + ServerResponse: googleapi.ServerResponse{ + Header: res.Header, + HTTPStatusCode: res.StatusCode, + }, + } + target := &ret + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { + return nil, err + } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.networkEndpointGroups.get", "response", internallog.HTTPResponse(res, b)) + return ret, nil +} + +type NetworkEndpointGroupsInsertCall struct { + s *Service + project string + zone string + networkendpointgroup *NetworkEndpointGroup + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header +} + +// Insert: Creates a network endpoint group in the specified project using +// the +// parameters that are included in the request. +// +// Note: Use the following APIs to manage network endpoint groups: +// +// - +// To manage NEGs with zonal scope (such as zonal NEGs, hybrid connectivity +// NEGs): zonal +// API +// - +// To manage NEGs with regional scope (such as regional internet NEGs, +// serverless NEGs, Private Service Connect NEGs): regional +// API +// - +// To manage NEGs with global scope (such as global internet NEGs):global +// API +// +// - project: Project ID for this request. +// - zone: The name of the zone where +// you want to create the network endpoint group. It should comply +// with +// +// RFC1035. +func (r *NetworkEndpointGroupsService) Insert(project string, zone string, networkendpointgroup *NetworkEndpointGroup) *NetworkEndpointGroupsInsertCall { + c := &NetworkEndpointGroupsInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)} + c.project = project + c.zone = zone + c.networkendpointgroup = networkendpointgroup + 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 *NetworkEndpointGroupsInsertCall) RequestId(requestId string) *NetworkEndpointGroupsInsertCall { + 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 +// details. +func (c *NetworkEndpointGroupsInsertCall) Fields(s ...googleapi.Field) *NetworkEndpointGroupsInsertCall { + c.urlParams_.Set("fields", googleapi.CombineFields(s)) + return c +} + +// Context sets the context to be used in this call's Do method. +func (c *NetworkEndpointGroupsInsertCall) Context(ctx context.Context) *NetworkEndpointGroupsInsertCall { + c.ctx_ = ctx + return c +} + +// Header returns a http.Header that can be modified by the caller to add +// headers to the request. +func (c *NetworkEndpointGroupsInsertCall) Header() http.Header { + if c.header_ == nil { + c.header_ = make(http.Header) + } + return c.header_ +} + +func (c *NetworkEndpointGroupsInsertCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) + body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.networkendpointgroup) + if err != nil { + return nil, err + } + c.urlParams_.Set("alt", alt) + c.urlParams_.Set("prettyPrint", "false") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/networkEndpointGroups") + urls += "?" + c.urlParams_.Encode() + req, err := http.NewRequest("POST", urls, body) + if err != nil { + return nil, err + } + req.Header = reqHeaders + googleapi.Expand(req.URL, map[string]string{ + "project": c.project, + "zone": c.zone, + }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.networkEndpointGroups.insert", "request", internallog.HTTPRequest(req, body.Bytes())) + return gensupport.SendRequest(c.ctx_, c.s.client, req) +} + +// Do executes the "compute.networkEndpointGroups.insert" call. +// 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 *InterconnectsGetCall) Do(opts ...googleapi.CallOption) (*Interconnect, error) { +func (c *NetworkEndpointGroupsInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -38641,48 +60537,178 @@ func (c *InterconnectsGetCall) Do(opts ...googleapi.CallOption) (*Interconnect, if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } - ret := &Interconnect{ + ret := &Operation{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.networkEndpointGroups.insert", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type InterconnectsGetDiagnosticsCall struct { - s *Service - project string - interconnect string - urlParams_ gensupport.URLParams - ifNoneMatch_ string - ctx_ context.Context - header_ http.Header +type NetworkEndpointGroupsListCall struct { + s *Service + project string + zone string + urlParams_ gensupport.URLParams + ifNoneMatch_ string + ctx_ context.Context + header_ http.Header +} + +// List: Retrieves the list of network endpoint groups that are located in +// the +// specified project and zone. +// +// - project: Project ID for this request. +// - zone: The name of thezone +// where the network endpoint group is located. It should comply with +// RFC1035. +func (r *NetworkEndpointGroupsService) List(project string, zone string) *NetworkEndpointGroupsListCall { + c := &NetworkEndpointGroupsListCall{s: r.s, urlParams_: make(gensupport.URLParams)} + c.project = project + c.zone = zone + return c +} + +// Filter sets the optional parameter "filter": A filter expression that +// filters resources listed in the response. Most +// Compute resources support two types of filter expressions: +// expressions that support regular expressions and expressions that follow +// API improvement proposal AIP-160. +// These two types of filter expressions cannot be mixed in one request. +// +// If you want to use AIP-160, your expression must specify the field name, +// an +// operator, and the value that you want to use for filtering. The value +// must be a string, a number, or a boolean. The 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`. +// +// The `:*` comparison can be used to test whether a key has been defined. +// For example, to find all objects with `owner` label +// use: +// ``` +// labels.owner:* +// ``` +// +// 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 onresource 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) +// ``` +// +// If you want to use a regular expression, use the `eq` (equal) or `ne` +// (not equal) operator against a single un-parenthesized expression with +// or +// without quotes or against multiple parenthesized expressions. +// Examples: +// +// `fieldname eq unquoted literal` +// `fieldname eq 'single quoted literal'` +// `fieldname eq "double quoted literal" +// `(fieldname1 eq literal) (fieldname2 ne "literal")` +// +// The literal value is interpreted as a regular expression using GoogleRE2 +// library syntax. +// The literal value must match the entire field. +// +// For example, to filter for instances that do not end with name +// "instance", +// you would use `name ne .*instance`. +// +// You cannot combine constraints on multiple fields using regular +// expressions. +func (c *NetworkEndpointGroupsListCall) Filter(filter string) *NetworkEndpointGroupsListCall { + 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 *NetworkEndpointGroupsListCall) MaxResults(maxResults int64) *NetworkEndpointGroupsListCall { + c.urlParams_.Set("maxResults", fmt.Sprint(maxResults)) + return c } -// GetDiagnostics: Returns the interconnectDiagnostics for the specified -// Interconnect. In the event of a global outage, do not use this API to make -// decisions about where to redirect your network traffic. Unlike a VLAN -// attachment, which is regional, a Cloud Interconnect connection is a global -// resource. A global outage can prevent this API from functioning properly. +// 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. // -// - interconnect: Name of the interconnect resource to query. -// - project: Project ID for this request. -func (r *InterconnectsService) GetDiagnostics(project string, interconnect string) *InterconnectsGetDiagnosticsCall { - c := &InterconnectsGetDiagnosticsCall{s: r.s, urlParams_: make(gensupport.URLParams)} - c.project = project - c.interconnect = interconnect +// 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 *NetworkEndpointGroupsListCall) OrderBy(orderBy string) *NetworkEndpointGroupsListCall { + 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 *NetworkEndpointGroupsListCall) PageToken(pageToken string) *NetworkEndpointGroupsListCall { + c.urlParams_.Set("pageToken", pageToken) + return c +} + +// ReturnPartialSuccess sets the optional parameter "returnPartialSuccess": +// Opt-in for partial success behavior which provides partial results in +// case +// of failure. The default value is false. +// +// For example, when partial success behavior is enabled, aggregatedList for +// a +// single zone scope either returns all resources in the zone or no +// resources, +// with an error code. +func (c *NetworkEndpointGroupsListCall) ReturnPartialSuccess(returnPartialSuccess bool) *NetworkEndpointGroupsListCall { + c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess)) return c } // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *InterconnectsGetDiagnosticsCall) Fields(s ...googleapi.Field) *InterconnectsGetDiagnosticsCall { +func (c *NetworkEndpointGroupsListCall) Fields(s ...googleapi.Field) *NetworkEndpointGroupsListCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } @@ -38690,55 +60716,55 @@ func (c *InterconnectsGetDiagnosticsCall) Fields(s ...googleapi.Field) *Intercon // IfNoneMatch sets an 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. -func (c *InterconnectsGetDiagnosticsCall) IfNoneMatch(entityTag string) *InterconnectsGetDiagnosticsCall { +func (c *NetworkEndpointGroupsListCall) IfNoneMatch(entityTag string) *NetworkEndpointGroupsListCall { c.ifNoneMatch_ = entityTag return c } // Context sets the context to be used in this call's Do method. -func (c *InterconnectsGetDiagnosticsCall) Context(ctx context.Context) *InterconnectsGetDiagnosticsCall { +func (c *NetworkEndpointGroupsListCall) Context(ctx context.Context) *NetworkEndpointGroupsListCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *InterconnectsGetDiagnosticsCall) Header() http.Header { +func (c *NetworkEndpointGroupsListCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *InterconnectsGetDiagnosticsCall) doRequest(alt string) (*http.Response, error) { +func (c *NetworkEndpointGroupsListCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) if c.ifNoneMatch_ != "" { reqHeaders.Set("If-None-Match", c.ifNoneMatch_) } - var body io.Reader = nil c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/interconnects/{interconnect}/getDiagnostics") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/networkEndpointGroups") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("GET", urls, body) + req, err := http.NewRequest("GET", urls, nil) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "interconnect": c.interconnect, + "project": c.project, + "zone": c.zone, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.networkEndpointGroups.list", "request", internallog.HTTPRequest(req, nil)) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.interconnects.getDiagnostics" call. +// Do executes the "compute.networkEndpointGroups.list" call. // Any non-2xx status code is an error. Response headers are in either -// *InterconnectsGetDiagnosticsResponse.ServerResponse.Header or (if a response -// was returned at all) in error.(*googleapi.Error).Header. Use +// *NetworkEndpointGroupList.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 *InterconnectsGetDiagnosticsCall) Do(opts ...googleapi.CallOption) (*InterconnectsGetDiagnosticsResponse, error) { +func (c *NetworkEndpointGroupsListCall) Do(opts ...googleapi.CallOption) (*NetworkEndpointGroupList, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -38757,101 +60783,253 @@ func (c *InterconnectsGetDiagnosticsCall) Do(opts ...googleapi.CallOption) (*Int if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } - ret := &InterconnectsGetDiagnosticsResponse{ + ret := &NetworkEndpointGroupList{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.networkEndpointGroups.list", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type InterconnectsGetMacsecConfigCall struct { - s *Service - project string - interconnect string - urlParams_ gensupport.URLParams - ifNoneMatch_ string - ctx_ context.Context - header_ http.Header +// 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 *NetworkEndpointGroupsListCall) Pages(ctx context.Context, f func(*NetworkEndpointGroupList) error) error { + c.ctx_ = ctx + defer c.PageToken(c.urlParams_.Get("pageToken")) + 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) + } } -// GetMacsecConfig: Returns the interconnectMacsecConfig for the specified -// Interconnect. +type NetworkEndpointGroupsListNetworkEndpointsCall struct { + s *Service + project string + zone string + networkEndpointGroup string + networkendpointgroupslistendpointsrequest *NetworkEndpointGroupsListEndpointsRequest + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header +} + +// ListNetworkEndpoints: Lists the network endpoints in the specified network +// endpoint group. // -// - interconnect: Name of the interconnect resource to query. -// - project: Project ID for this request. -func (r *InterconnectsService) GetMacsecConfig(project string, interconnect string) *InterconnectsGetMacsecConfigCall { - c := &InterconnectsGetMacsecConfigCall{s: r.s, urlParams_: make(gensupport.URLParams)} +// - networkEndpointGroup: The name of the network endpoint group from which +// you want to generate a +// list of included network endpoints. It should comply with RFC1035. +// - project: Project ID for this request. +// - zone: The name of the zone where +// the network endpoint group is located. It should comply with RFC1035. +func (r *NetworkEndpointGroupsService) ListNetworkEndpoints(project string, zone string, networkEndpointGroup string, networkendpointgroupslistendpointsrequest *NetworkEndpointGroupsListEndpointsRequest) *NetworkEndpointGroupsListNetworkEndpointsCall { + c := &NetworkEndpointGroupsListNetworkEndpointsCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project - c.interconnect = interconnect + c.zone = zone + c.networkEndpointGroup = networkEndpointGroup + c.networkendpointgroupslistendpointsrequest = networkendpointgroupslistendpointsrequest + return c +} + +// Filter sets the optional parameter "filter": A filter expression that +// filters resources listed in the response. Most +// Compute resources support two types of filter expressions: +// expressions that support regular expressions and expressions that follow +// API improvement proposal AIP-160. +// These two types of filter expressions cannot be mixed in one request. +// +// If you want to use AIP-160, your expression must specify the field name, +// an +// operator, and the value that you want to use for filtering. The value +// must be a string, a number, or a boolean. The 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`. +// +// The `:*` comparison can be used to test whether a key has been defined. +// For example, to find all objects with `owner` label +// use: +// ``` +// labels.owner:* +// ``` +// +// 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 onresource 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) +// ``` +// +// If you want to use a regular expression, use the `eq` (equal) or `ne` +// (not equal) operator against a single un-parenthesized expression with +// or +// without quotes or against multiple parenthesized expressions. +// Examples: +// +// `fieldname eq unquoted literal` +// `fieldname eq 'single quoted literal'` +// `fieldname eq "double quoted literal" +// `(fieldname1 eq literal) (fieldname2 ne "literal")` +// +// The literal value is interpreted as a regular expression using GoogleRE2 +// library syntax. +// The literal value must match the entire field. +// +// For example, to filter for instances that do not end with name +// "instance", +// you would use `name ne .*instance`. +// +// You cannot combine constraints on multiple fields using regular +// expressions. +func (c *NetworkEndpointGroupsListNetworkEndpointsCall) Filter(filter string) *NetworkEndpointGroupsListNetworkEndpointsCall { + 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 *NetworkEndpointGroupsListNetworkEndpointsCall) MaxResults(maxResults int64) *NetworkEndpointGroupsListNetworkEndpointsCall { + 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 *NetworkEndpointGroupsListNetworkEndpointsCall) OrderBy(orderBy string) *NetworkEndpointGroupsListNetworkEndpointsCall { + 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 *NetworkEndpointGroupsListNetworkEndpointsCall) PageToken(pageToken string) *NetworkEndpointGroupsListNetworkEndpointsCall { + c.urlParams_.Set("pageToken", pageToken) + return c +} + +// ReturnPartialSuccess sets the optional parameter "returnPartialSuccess": +// Opt-in for partial success behavior which provides partial results in +// case +// of failure. The default value is false. +// +// For example, when partial success behavior is enabled, aggregatedList for +// a +// single zone scope either returns all resources in the zone or no +// resources, +// with an error code. +func (c *NetworkEndpointGroupsListNetworkEndpointsCall) ReturnPartialSuccess(returnPartialSuccess bool) *NetworkEndpointGroupsListNetworkEndpointsCall { + c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess)) return c } // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *InterconnectsGetMacsecConfigCall) Fields(s ...googleapi.Field) *InterconnectsGetMacsecConfigCall { +func (c *NetworkEndpointGroupsListNetworkEndpointsCall) Fields(s ...googleapi.Field) *NetworkEndpointGroupsListNetworkEndpointsCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } -// IfNoneMatch sets an 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. -func (c *InterconnectsGetMacsecConfigCall) IfNoneMatch(entityTag string) *InterconnectsGetMacsecConfigCall { - c.ifNoneMatch_ = entityTag - return c -} - // Context sets the context to be used in this call's Do method. -func (c *InterconnectsGetMacsecConfigCall) Context(ctx context.Context) *InterconnectsGetMacsecConfigCall { +func (c *NetworkEndpointGroupsListNetworkEndpointsCall) Context(ctx context.Context) *NetworkEndpointGroupsListNetworkEndpointsCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *InterconnectsGetMacsecConfigCall) Header() http.Header { +func (c *NetworkEndpointGroupsListNetworkEndpointsCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *InterconnectsGetMacsecConfigCall) doRequest(alt string) (*http.Response, error) { - reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) - if c.ifNoneMatch_ != "" { - reqHeaders.Set("If-None-Match", c.ifNoneMatch_) +func (c *NetworkEndpointGroupsListNetworkEndpointsCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) + body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.networkendpointgroupslistendpointsrequest) + if err != nil { + return nil, err } - var body io.Reader = nil c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/interconnects/{interconnect}/getMacsecConfig") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/networkEndpointGroups/{networkEndpointGroup}/listNetworkEndpoints") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("GET", urls, body) + req, err := http.NewRequest("POST", urls, body) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "interconnect": c.interconnect, + "project": c.project, + "zone": c.zone, + "networkEndpointGroup": c.networkEndpointGroup, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.networkEndpointGroups.listNetworkEndpoints", "request", internallog.HTTPRequest(req, body.Bytes())) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.interconnects.getMacsecConfig" call. +// Do executes the "compute.networkEndpointGroups.listNetworkEndpoints" call. // Any non-2xx status code is an error. Response headers are in either -// *InterconnectsGetMacsecConfigResponse.ServerResponse.Header or (if a +// *NetworkEndpointGroupsListNetworkEndpoints.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 *InterconnectsGetMacsecConfigCall) Do(opts ...googleapi.CallOption) (*InterconnectsGetMacsecConfigResponse, error) { +func (c *NetworkEndpointGroupsListNetworkEndpointsCall) Do(opts ...googleapi.CallOption) (*NetworkEndpointGroupsListNetworkEndpoints, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -38870,87 +61048,100 @@ func (c *InterconnectsGetMacsecConfigCall) Do(opts ...googleapi.CallOption) (*In if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } - ret := &InterconnectsGetMacsecConfigResponse{ + ret := &NetworkEndpointGroupsListNetworkEndpoints{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.networkEndpointGroups.listNetworkEndpoints", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type InterconnectsInsertCall struct { - s *Service - project string - interconnect *Interconnect - urlParams_ gensupport.URLParams - ctx_ context.Context - header_ http.Header +// 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 *NetworkEndpointGroupsListNetworkEndpointsCall) Pages(ctx context.Context, f func(*NetworkEndpointGroupsListNetworkEndpoints) error) error { + c.ctx_ = ctx + defer c.PageToken(c.urlParams_.Get("pageToken")) + 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) + } } -// Insert: Creates an Interconnect in the specified project using the data -// included in the request. +type NetworkEndpointGroupsTestIamPermissionsCall struct { + s *Service + project string + zone string + resource string + testpermissionsrequest *TestPermissionsRequest + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header +} + +// TestIamPermissions: Returns permissions that a caller has on the specified +// resource. // // - project: Project ID for this request. -func (r *InterconnectsService) Insert(project string, interconnect *Interconnect) *InterconnectsInsertCall { - c := &InterconnectsInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)} +// - resource: Name or id of the resource for this request. +// - zone: The name of the zone for this request. +func (r *NetworkEndpointGroupsService) TestIamPermissions(project string, zone string, resource string, testpermissionsrequest *TestPermissionsRequest) *NetworkEndpointGroupsTestIamPermissionsCall { + c := &NetworkEndpointGroupsTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project - c.interconnect = interconnect - 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 *InterconnectsInsertCall) RequestId(requestId string) *InterconnectsInsertCall { - c.urlParams_.Set("requestId", requestId) + c.zone = zone + c.resource = resource + c.testpermissionsrequest = testpermissionsrequest return c } // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *InterconnectsInsertCall) Fields(s ...googleapi.Field) *InterconnectsInsertCall { +func (c *NetworkEndpointGroupsTestIamPermissionsCall) Fields(s ...googleapi.Field) *NetworkEndpointGroupsTestIamPermissionsCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } // Context sets the context to be used in this call's Do method. -func (c *InterconnectsInsertCall) Context(ctx context.Context) *InterconnectsInsertCall { +func (c *NetworkEndpointGroupsTestIamPermissionsCall) Context(ctx context.Context) *NetworkEndpointGroupsTestIamPermissionsCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *InterconnectsInsertCall) Header() http.Header { +func (c *NetworkEndpointGroupsTestIamPermissionsCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *InterconnectsInsertCall) doRequest(alt string) (*http.Response, error) { +func (c *NetworkEndpointGroupsTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) - var body io.Reader = nil - body, err := googleapi.WithoutDataWrapper.JSONReader(c.interconnect) + body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.testpermissionsrequest) if err != nil { return nil, err } c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/interconnects") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/networkEndpointGroups/{resource}/testIamPermissions") urls += "?" + c.urlParams_.Encode() req, err := http.NewRequest("POST", urls, body) if err != nil { @@ -38958,17 +61149,21 @@ func (c *InterconnectsInsertCall) doRequest(alt string) (*http.Response, error) } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, + "project": c.project, + "zone": c.zone, + "resource": c.resource, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.networkEndpointGroups.testIamPermissions", "request", internallog.HTTPRequest(req, body.Bytes())) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.interconnects.insert" call. +// Do executes the "compute.networkEndpointGroups.testIamPermissions" call. // 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 *InterconnectsInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) { +// *TestPermissionsResponse.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 *NetworkEndpointGroupsTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -38987,175 +61182,128 @@ func (c *InterconnectsInsertCall) Do(opts ...googleapi.CallOption) (*Operation, if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } - ret := &Operation{ + ret := &TestPermissionsResponse{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.networkEndpointGroups.testIamPermissions", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type InterconnectsListCall struct { - s *Service - project string - urlParams_ gensupport.URLParams - ifNoneMatch_ string - ctx_ context.Context - header_ http.Header +type NetworkFirewallPoliciesAddAssociationCall struct { + s *Service + project string + firewallPolicy string + firewallpolicyassociation *FirewallPolicyAssociation + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header } -// List: Retrieves the list of Interconnects available to the specified -// project. +// AddAssociation: Inserts an association for the specified firewall policy. // +// - firewallPolicy: Name of the firewall policy to update. // - project: Project ID for this request. -func (r *InterconnectsService) List(project string) *InterconnectsListCall { - c := &InterconnectsListCall{s: r.s, urlParams_: make(gensupport.URLParams)} +func (r *NetworkFirewallPoliciesService) AddAssociation(project string, firewallPolicy string, firewallpolicyassociation *FirewallPolicyAssociation) *NetworkFirewallPoliciesAddAssociationCall { + c := &NetworkFirewallPoliciesAddAssociationCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project + c.firewallPolicy = firewallPolicy + c.firewallpolicyassociation = firewallpolicyassociation return c } -// Filter sets the optional parameter "filter": A filter expression that -// filters resources listed in the response. Most Compute resources support two -// types of filter expressions: expressions that support regular expressions -// and expressions that follow API improvement proposal AIP-160. These two -// types of filter expressions cannot be mixed in one request. If you want to -// use AIP-160, your expression must specify the field name, an operator, and -// the value that you want to use for filtering. The value must be a string, a -// number, or a boolean. The 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`. The `:*` comparison can be used to test whether a key has -// been defined. For example, to find all objects with `owner` label use: ``` -// labels.owner:* ``` 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) ``` If you want to use a regular -// expression, use the `eq` (equal) or `ne` (not equal) operator against a -// single un-parenthesized expression with or without quotes or against -// multiple parenthesized expressions. Examples: `fieldname eq unquoted -// literal` `fieldname eq 'single quoted literal'` `fieldname eq "double quoted -// literal" `(fieldname1 eq literal) (fieldname2 ne "literal")` The literal -// value is interpreted as a regular expression using Google RE2 library -// syntax. The literal value must match the entire field. For example, to -// filter for instances that do not end with name "instance", you would use -// `name ne .*instance`. You cannot combine constraints on multiple fields -// using regular expressions. -func (c *InterconnectsListCall) Filter(filter string) *InterconnectsListCall { - 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 *InterconnectsListCall) MaxResults(maxResults int64) *InterconnectsListCall { - 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 *InterconnectsListCall) OrderBy(orderBy string) *InterconnectsListCall { - 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 *InterconnectsListCall) PageToken(pageToken string) *InterconnectsListCall { - c.urlParams_.Set("pageToken", pageToken) +// ReplaceExistingAssociation sets the optional parameter +// "replaceExistingAssociation": Indicates whether or not to replace it if an +// association of the attachment +// already exists. This is false by default, in which case an error will +// be +// returned if an association already exists. +func (c *NetworkFirewallPoliciesAddAssociationCall) ReplaceExistingAssociation(replaceExistingAssociation bool) *NetworkFirewallPoliciesAddAssociationCall { + c.urlParams_.Set("replaceExistingAssociation", fmt.Sprint(replaceExistingAssociation)) return c } -// ReturnPartialSuccess sets the optional parameter "returnPartialSuccess": -// Opt-in for partial success behavior which provides partial results in case -// of failure. The default value is false. For example, when partial success -// behavior is enabled, aggregatedList for a single zone scope either returns -// all resources in the zone or no resources, with an error code. -func (c *InterconnectsListCall) ReturnPartialSuccess(returnPartialSuccess bool) *InterconnectsListCall { - c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess)) +// 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 *NetworkFirewallPoliciesAddAssociationCall) RequestId(requestId string) *NetworkFirewallPoliciesAddAssociationCall { + 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 // details. -func (c *InterconnectsListCall) Fields(s ...googleapi.Field) *InterconnectsListCall { +func (c *NetworkFirewallPoliciesAddAssociationCall) Fields(s ...googleapi.Field) *NetworkFirewallPoliciesAddAssociationCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } -// IfNoneMatch sets an 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. -func (c *InterconnectsListCall) IfNoneMatch(entityTag string) *InterconnectsListCall { - c.ifNoneMatch_ = entityTag - return c -} - // Context sets the context to be used in this call's Do method. -func (c *InterconnectsListCall) Context(ctx context.Context) *InterconnectsListCall { +func (c *NetworkFirewallPoliciesAddAssociationCall) Context(ctx context.Context) *NetworkFirewallPoliciesAddAssociationCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *InterconnectsListCall) Header() http.Header { +func (c *NetworkFirewallPoliciesAddAssociationCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *InterconnectsListCall) doRequest(alt string) (*http.Response, error) { - reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) - if c.ifNoneMatch_ != "" { - reqHeaders.Set("If-None-Match", c.ifNoneMatch_) +func (c *NetworkFirewallPoliciesAddAssociationCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) + body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.firewallpolicyassociation) + if err != nil { + return nil, err } - var body io.Reader = nil c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/interconnects") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/firewallPolicies/{firewallPolicy}/addAssociation") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("GET", urls, body) + req, err := http.NewRequest("POST", urls, body) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, + "project": c.project, + "firewallPolicy": c.firewallPolicy, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.networkFirewallPolicies.addAssociation", "request", internallog.HTTPRequest(req, body.Bytes())) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.interconnects.list" call. +// Do executes the "compute.networkFirewallPolicies.addAssociation" call. // Any non-2xx status code is an error. Response headers are in either -// *InterconnectList.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 *InterconnectsListCall) Do(opts ...googleapi.CallOption) (*InterconnectList, error) { +// *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 *NetworkFirewallPoliciesAddAssociationCall) Do(opts ...googleapi.CallOption) (*Operation, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -39174,75 +61322,80 @@ func (c *InterconnectsListCall) Do(opts ...googleapi.CallOption) (*InterconnectL if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } - ret := &InterconnectList{ + ret := &Operation{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.networkFirewallPolicies.addAssociation", "response", internallog.HTTPResponse(res, b)) return ret, nil } -// 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 *InterconnectsListCall) Pages(ctx context.Context, f func(*InterconnectList) error) error { - c.ctx_ = ctx - defer c.PageToken(c.urlParams_.Get("pageToken")) - 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) - } -} - -type InterconnectsPatchCall struct { - s *Service - project string - interconnect string - interconnect2 *Interconnect - urlParams_ gensupport.URLParams - ctx_ context.Context - header_ http.Header +type NetworkFirewallPoliciesAddPacketMirroringRuleCall struct { + s *Service + project string + firewallPolicy string + firewallpolicyrule *FirewallPolicyRule + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header } -// Patch: Updates the specified Interconnect with the data included in the -// request. This method supports PATCH semantics and uses the JSON merge patch -// format and processing rules. +// AddPacketMirroringRule: Inserts a packet mirroring rule into a firewall +// policy. // -// - interconnect: Name of the interconnect to update. +// - firewallPolicy: Name of the firewall policy to update. // - project: Project ID for this request. -func (r *InterconnectsService) Patch(project string, interconnect string, interconnect2 *Interconnect) *InterconnectsPatchCall { - c := &InterconnectsPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)} +func (r *NetworkFirewallPoliciesService) AddPacketMirroringRule(project string, firewallPolicy string, firewallpolicyrule *FirewallPolicyRule) *NetworkFirewallPoliciesAddPacketMirroringRuleCall { + c := &NetworkFirewallPoliciesAddPacketMirroringRuleCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project - c.interconnect = interconnect - c.interconnect2 = interconnect2 + c.firewallPolicy = firewallPolicy + c.firewallpolicyrule = firewallpolicyrule + return c +} + +// MaxPriority sets the optional parameter "maxPriority": When rule.priority is +// not specified, auto choose a unused priority betweenminPriority and +// maxPriority>. +// This field is exclusive with rule.priority. +func (c *NetworkFirewallPoliciesAddPacketMirroringRuleCall) MaxPriority(maxPriority int64) *NetworkFirewallPoliciesAddPacketMirroringRuleCall { + c.urlParams_.Set("maxPriority", fmt.Sprint(maxPriority)) + return c +} + +// MinPriority sets the optional parameter "minPriority": When rule.priority is +// not specified, auto choose a unused priority betweenminPriority and +// maxPriority>. +// This field is exclusive with rule.priority. +func (c *NetworkFirewallPoliciesAddPacketMirroringRuleCall) MinPriority(minPriority int64) *NetworkFirewallPoliciesAddPacketMirroringRuleCall { + c.urlParams_.Set("minPriority", fmt.Sprint(minPriority)) 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 *InterconnectsPatchCall) RequestId(requestId string) *InterconnectsPatchCall { +// 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 *NetworkFirewallPoliciesAddPacketMirroringRuleCall) RequestId(requestId string) *NetworkFirewallPoliciesAddPacketMirroringRuleCall { c.urlParams_.Set("requestId", requestId) return c } @@ -39250,55 +61403,55 @@ func (c *InterconnectsPatchCall) RequestId(requestId string) *InterconnectsPatch // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *InterconnectsPatchCall) Fields(s ...googleapi.Field) *InterconnectsPatchCall { +func (c *NetworkFirewallPoliciesAddPacketMirroringRuleCall) Fields(s ...googleapi.Field) *NetworkFirewallPoliciesAddPacketMirroringRuleCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } // Context sets the context to be used in this call's Do method. -func (c *InterconnectsPatchCall) Context(ctx context.Context) *InterconnectsPatchCall { +func (c *NetworkFirewallPoliciesAddPacketMirroringRuleCall) Context(ctx context.Context) *NetworkFirewallPoliciesAddPacketMirroringRuleCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *InterconnectsPatchCall) Header() http.Header { +func (c *NetworkFirewallPoliciesAddPacketMirroringRuleCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *InterconnectsPatchCall) doRequest(alt string) (*http.Response, error) { +func (c *NetworkFirewallPoliciesAddPacketMirroringRuleCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) - var body io.Reader = nil - body, err := googleapi.WithoutDataWrapper.JSONReader(c.interconnect2) + body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.firewallpolicyrule) if err != nil { return nil, err } c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/interconnects/{interconnect}") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/firewallPolicies/{firewallPolicy}/addPacketMirroringRule") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("PATCH", urls, body) + req, err := http.NewRequest("POST", urls, body) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "interconnect": c.interconnect, + "project": c.project, + "firewallPolicy": c.firewallPolicy, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.networkFirewallPolicies.addPacketMirroringRule", "request", internallog.HTTPRequest(req, body.Bytes())) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.interconnects.patch" call. +// Do executes the "compute.networkFirewallPolicies.addPacketMirroringRule" call. // 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 *InterconnectsPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) { +func (c *NetworkFirewallPoliciesAddPacketMirroringRuleCall) Do(opts ...googleapi.CallOption) (*Operation, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -39324,68 +61477,108 @@ func (c *InterconnectsPatchCall) Do(opts ...googleapi.CallOption) (*Operation, e }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.networkFirewallPolicies.addPacketMirroringRule", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type InterconnectsSetLabelsCall struct { - s *Service - project string - resource string - globalsetlabelsrequest *GlobalSetLabelsRequest - urlParams_ gensupport.URLParams - ctx_ context.Context - header_ http.Header +type NetworkFirewallPoliciesAddRuleCall struct { + s *Service + project string + firewallPolicy string + firewallpolicyrule *FirewallPolicyRule + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header } -// SetLabels: Sets the labels on an Interconnect. To learn more about labels, -// read the Labeling Resources documentation. +// AddRule: Inserts a rule into a firewall policy. // +// - firewallPolicy: Name of the firewall policy to update. // - project: Project ID for this request. -// - resource: Name or id of the resource for this request. -func (r *InterconnectsService) SetLabels(project string, resource string, globalsetlabelsrequest *GlobalSetLabelsRequest) *InterconnectsSetLabelsCall { - c := &InterconnectsSetLabelsCall{s: r.s, urlParams_: make(gensupport.URLParams)} +func (r *NetworkFirewallPoliciesService) AddRule(project string, firewallPolicy string, firewallpolicyrule *FirewallPolicyRule) *NetworkFirewallPoliciesAddRuleCall { + c := &NetworkFirewallPoliciesAddRuleCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project - c.resource = resource - c.globalsetlabelsrequest = globalsetlabelsrequest + c.firewallPolicy = firewallPolicy + c.firewallpolicyrule = firewallpolicyrule + return c +} + +// MaxPriority sets the optional parameter "maxPriority": When rule.priority is +// not specified, auto choose a unused priority betweenminPriority and +// maxPriority>. +// This field is exclusive with rule.priority. +func (c *NetworkFirewallPoliciesAddRuleCall) MaxPriority(maxPriority int64) *NetworkFirewallPoliciesAddRuleCall { + c.urlParams_.Set("maxPriority", fmt.Sprint(maxPriority)) + return c +} + +// MinPriority sets the optional parameter "minPriority": When rule.priority is +// not specified, auto choose a unused priority betweenminPriority and +// maxPriority>. +// This field is exclusive with rule.priority. +func (c *NetworkFirewallPoliciesAddRuleCall) MinPriority(minPriority int64) *NetworkFirewallPoliciesAddRuleCall { + c.urlParams_.Set("minPriority", fmt.Sprint(minPriority)) + 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 *NetworkFirewallPoliciesAddRuleCall) RequestId(requestId string) *NetworkFirewallPoliciesAddRuleCall { + 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 // details. -func (c *InterconnectsSetLabelsCall) Fields(s ...googleapi.Field) *InterconnectsSetLabelsCall { +func (c *NetworkFirewallPoliciesAddRuleCall) Fields(s ...googleapi.Field) *NetworkFirewallPoliciesAddRuleCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } // Context sets the context to be used in this call's Do method. -func (c *InterconnectsSetLabelsCall) Context(ctx context.Context) *InterconnectsSetLabelsCall { +func (c *NetworkFirewallPoliciesAddRuleCall) Context(ctx context.Context) *NetworkFirewallPoliciesAddRuleCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *InterconnectsSetLabelsCall) Header() http.Header { +func (c *NetworkFirewallPoliciesAddRuleCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *InterconnectsSetLabelsCall) doRequest(alt string) (*http.Response, error) { +func (c *NetworkFirewallPoliciesAddRuleCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) - var body io.Reader = nil - body, err := googleapi.WithoutDataWrapper.JSONReader(c.globalsetlabelsrequest) + body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.firewallpolicyrule) if err != nil { return nil, err } c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/interconnects/{resource}/setLabels") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/firewallPolicies/{firewallPolicy}/addRule") urls += "?" + c.urlParams_.Encode() req, err := http.NewRequest("POST", urls, body) if err != nil { @@ -39393,18 +61586,19 @@ func (c *InterconnectsSetLabelsCall) doRequest(alt string) (*http.Response, erro } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "resource": c.resource, + "project": c.project, + "firewallPolicy": c.firewallPolicy, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.networkFirewallPolicies.addRule", "request", internallog.HTTPRequest(req, body.Bytes())) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.interconnects.setLabels" call. +// Do executes the "compute.networkFirewallPolicies.addRule" call. // 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 *InterconnectsSetLabelsCall) Do(opts ...googleapi.CallOption) (*Operation, error) { +func (c *NetworkFirewallPoliciesAddRuleCall) Do(opts ...googleapi.CallOption) (*Operation, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -39430,40 +61624,198 @@ func (c *InterconnectsSetLabelsCall) Do(opts ...googleapi.CallOption) (*Operatio }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.networkFirewallPolicies.addRule", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type LicenseCodesGetCall struct { +type NetworkFirewallPoliciesAggregatedListCall struct { s *Service project string - licenseCode string urlParams_ gensupport.URLParams ifNoneMatch_ string ctx_ context.Context header_ http.Header } -// Get: Return a specified license code. License codes are mirrored across all -// projects that have permissions to read the License Code. *Caution* This -// resource is intended for use only by third-party partners who are creating -// Cloud Marketplace images. +// AggregatedList: Retrieves an aggregated list of network firewall policies, +// listing network +// firewall policies from all applicable scopes (global and regional) +// and +// grouping the results per scope. +// +// To prevent failure, it is recommended that you set +// the +// `returnPartialSuccess` parameter to `true`. // -// - licenseCode: Number corresponding to the License code resource to return. // - project: Project ID for this request. -func (r *LicenseCodesService) Get(project string, licenseCode string) *LicenseCodesGetCall { - c := &LicenseCodesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)} +func (r *NetworkFirewallPoliciesService) AggregatedList(project string) *NetworkFirewallPoliciesAggregatedListCall { + c := &NetworkFirewallPoliciesAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project - c.licenseCode = licenseCode + return c +} + +// Filter sets the optional parameter "filter": A filter expression that +// filters resources listed in the response. Most +// Compute resources support two types of filter expressions: +// expressions that support regular expressions and expressions that follow +// API improvement proposal AIP-160. +// These two types of filter expressions cannot be mixed in one request. +// +// If you want to use AIP-160, your expression must specify the field name, +// an +// operator, and the value that you want to use for filtering. The value +// must be a string, a number, or a boolean. The 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`. +// +// The `:*` comparison can be used to test whether a key has been defined. +// For example, to find all objects with `owner` label +// use: +// ``` +// labels.owner:* +// ``` +// +// 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 onresource 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) +// ``` +// +// If you want to use a regular expression, use the `eq` (equal) or `ne` +// (not equal) operator against a single un-parenthesized expression with +// or +// without quotes or against multiple parenthesized expressions. +// Examples: +// +// `fieldname eq unquoted literal` +// `fieldname eq 'single quoted literal'` +// `fieldname eq "double quoted literal" +// `(fieldname1 eq literal) (fieldname2 ne "literal")` +// +// The literal value is interpreted as a regular expression using GoogleRE2 +// library syntax. +// The literal value must match the entire field. +// +// For example, to filter for instances that do not end with name +// "instance", +// you would use `name ne .*instance`. +// +// You cannot combine constraints on multiple fields using regular +// expressions. +func (c *NetworkFirewallPoliciesAggregatedListCall) Filter(filter string) *NetworkFirewallPoliciesAggregatedListCall { + c.urlParams_.Set("filter", filter) + return c +} + +// IncludeAllScopes sets the optional parameter "includeAllScopes": Indicates +// whether every visible scope for each scope type (zone, region, +// global) should be included in the response. For new resource types +// added +// after this field, the flag has no effect as new resource types will +// always +// include every visible scope for each scope type in response. For +// resource +// types which predate this field, if this flag is omitted or false, +// only +// scopes of the scope types where the resource type is expected to be +// found +// will be included. +func (c *NetworkFirewallPoliciesAggregatedListCall) IncludeAllScopes(includeAllScopes bool) *NetworkFirewallPoliciesAggregatedListCall { + c.urlParams_.Set("includeAllScopes", fmt.Sprint(includeAllScopes)) + 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 *NetworkFirewallPoliciesAggregatedListCall) MaxResults(maxResults int64) *NetworkFirewallPoliciesAggregatedListCall { + 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 *NetworkFirewallPoliciesAggregatedListCall) OrderBy(orderBy string) *NetworkFirewallPoliciesAggregatedListCall { + 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 *NetworkFirewallPoliciesAggregatedListCall) PageToken(pageToken string) *NetworkFirewallPoliciesAggregatedListCall { + c.urlParams_.Set("pageToken", pageToken) + return c +} + +// ReturnPartialSuccess sets the optional parameter "returnPartialSuccess": +// Opt-in for partial success behavior which provides partial results in +// case +// of failure. The default value is false. +// +// For example, when partial success behavior is enabled, aggregatedList for +// a +// single zone scope either returns all resources in the zone or no +// resources, +// with an error code. +func (c *NetworkFirewallPoliciesAggregatedListCall) ReturnPartialSuccess(returnPartialSuccess bool) *NetworkFirewallPoliciesAggregatedListCall { + c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess)) + return c +} + +// ServiceProjectNumber sets the optional parameter "serviceProjectNumber": The +// Shared VPC service project id or service project number for which +// aggregated list request is invoked for subnetworks list-usable api. +func (c *NetworkFirewallPoliciesAggregatedListCall) ServiceProjectNumber(serviceProjectNumber int64) *NetworkFirewallPoliciesAggregatedListCall { + c.urlParams_.Set("serviceProjectNumber", fmt.Sprint(serviceProjectNumber)) return c } // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *LicenseCodesGetCall) Fields(s ...googleapi.Field) *LicenseCodesGetCall { +func (c *NetworkFirewallPoliciesAggregatedListCall) Fields(s ...googleapi.Field) *NetworkFirewallPoliciesAggregatedListCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } @@ -39471,54 +61823,54 @@ func (c *LicenseCodesGetCall) Fields(s ...googleapi.Field) *LicenseCodesGetCall // IfNoneMatch sets an 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. -func (c *LicenseCodesGetCall) IfNoneMatch(entityTag string) *LicenseCodesGetCall { +func (c *NetworkFirewallPoliciesAggregatedListCall) IfNoneMatch(entityTag string) *NetworkFirewallPoliciesAggregatedListCall { c.ifNoneMatch_ = entityTag return c } // Context sets the context to be used in this call's Do method. -func (c *LicenseCodesGetCall) Context(ctx context.Context) *LicenseCodesGetCall { +func (c *NetworkFirewallPoliciesAggregatedListCall) Context(ctx context.Context) *NetworkFirewallPoliciesAggregatedListCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *LicenseCodesGetCall) Header() http.Header { +func (c *NetworkFirewallPoliciesAggregatedListCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *LicenseCodesGetCall) doRequest(alt string) (*http.Response, error) { +func (c *NetworkFirewallPoliciesAggregatedListCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) if c.ifNoneMatch_ != "" { reqHeaders.Set("If-None-Match", c.ifNoneMatch_) } - var body io.Reader = nil c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/licenseCodes/{licenseCode}") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/aggregated/firewallPolicies") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("GET", urls, body) + req, err := http.NewRequest("GET", urls, nil) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "licenseCode": c.licenseCode, + "project": c.project, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.networkFirewallPolicies.aggregatedList", "request", internallog.HTTPRequest(req, nil)) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.licenseCodes.get" call. +// Do executes the "compute.networkFirewallPolicies.aggregatedList" call. // Any non-2xx status code is an error. Response headers are in either -// *LicenseCode.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 *LicenseCodesGetCall) Do(opts ...googleapi.CallOption) (*LicenseCode, error) { +// *NetworkFirewallPolicyAggregatedList.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 *NetworkFirewallPoliciesAggregatedListCall) Do(opts ...googleapi.CallOption) (*NetworkFirewallPolicyAggregatedList, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -39537,96 +61889,139 @@ func (c *LicenseCodesGetCall) Do(opts ...googleapi.CallOption) (*LicenseCode, er if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } - ret := &LicenseCode{ + ret := &NetworkFirewallPolicyAggregatedList{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.networkFirewallPolicies.aggregatedList", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type LicenseCodesTestIamPermissionsCall struct { - s *Service - project string - resource string - testpermissionsrequest *TestPermissionsRequest - urlParams_ gensupport.URLParams - ctx_ context.Context - header_ http.Header +// 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 *NetworkFirewallPoliciesAggregatedListCall) Pages(ctx context.Context, f func(*NetworkFirewallPolicyAggregatedList) error) error { + c.ctx_ = ctx + defer c.PageToken(c.urlParams_.Get("pageToken")) + 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) + } } -// TestIamPermissions: Returns permissions that a caller has on the specified -// resource. *Caution* This resource is intended for use only by third-party -// partners who are creating Cloud Marketplace images. +type NetworkFirewallPoliciesCloneRulesCall struct { + s *Service + project string + firewallPolicy string + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header +} + +// CloneRules: Copies rules to the specified firewall policy. // +// - firewallPolicy: Name of the firewall policy to update. // - project: Project ID for this request. -// - resource: Name or id of the resource for this request. -func (r *LicenseCodesService) TestIamPermissions(project string, resource string, testpermissionsrequest *TestPermissionsRequest) *LicenseCodesTestIamPermissionsCall { - c := &LicenseCodesTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)} +func (r *NetworkFirewallPoliciesService) CloneRules(project string, firewallPolicy string) *NetworkFirewallPoliciesCloneRulesCall { + c := &NetworkFirewallPoliciesCloneRulesCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project - c.resource = resource - c.testpermissionsrequest = testpermissionsrequest + c.firewallPolicy = firewallPolicy + 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 *NetworkFirewallPoliciesCloneRulesCall) RequestId(requestId string) *NetworkFirewallPoliciesCloneRulesCall { + c.urlParams_.Set("requestId", requestId) + return c +} + +// SourceFirewallPolicy sets the optional parameter "sourceFirewallPolicy": The +// firewall policy from which to copy rules. +func (c *NetworkFirewallPoliciesCloneRulesCall) SourceFirewallPolicy(sourceFirewallPolicy string) *NetworkFirewallPoliciesCloneRulesCall { + c.urlParams_.Set("sourceFirewallPolicy", sourceFirewallPolicy) return c } // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *LicenseCodesTestIamPermissionsCall) Fields(s ...googleapi.Field) *LicenseCodesTestIamPermissionsCall { +func (c *NetworkFirewallPoliciesCloneRulesCall) Fields(s ...googleapi.Field) *NetworkFirewallPoliciesCloneRulesCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } // Context sets the context to be used in this call's Do method. -func (c *LicenseCodesTestIamPermissionsCall) Context(ctx context.Context) *LicenseCodesTestIamPermissionsCall { +func (c *NetworkFirewallPoliciesCloneRulesCall) Context(ctx context.Context) *NetworkFirewallPoliciesCloneRulesCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *LicenseCodesTestIamPermissionsCall) Header() http.Header { +func (c *NetworkFirewallPoliciesCloneRulesCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *LicenseCodesTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) { - reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) - var body io.Reader = nil - body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest) - if err != nil { - return nil, err - } +func (c *NetworkFirewallPoliciesCloneRulesCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/licenseCodes/{resource}/testIamPermissions") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/firewallPolicies/{firewallPolicy}/cloneRules") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("POST", urls, body) + req, err := http.NewRequest("POST", urls, nil) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "resource": c.resource, + "project": c.project, + "firewallPolicy": c.firewallPolicy, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.networkFirewallPolicies.cloneRules", "request", internallog.HTTPRequest(req, nil)) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.licenseCodes.testIamPermissions" call. +// Do executes the "compute.networkFirewallPolicies.cloneRules" call. // Any non-2xx status code is an error. Response headers are in either -// *TestPermissionsResponse.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 *LicenseCodesTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) { +// *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 *NetworkFirewallPoliciesCloneRulesCall) Do(opts ...googleapi.CallOption) (*Operation, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -39645,52 +62040,59 @@ func (c *LicenseCodesTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (* if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } - ret := &TestPermissionsResponse{ + ret := &Operation{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.networkFirewallPolicies.cloneRules", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type LicensesDeleteCall struct { - s *Service - project string - license string - urlParams_ gensupport.URLParams - ctx_ context.Context - header_ http.Header +type NetworkFirewallPoliciesDeleteCall struct { + s *Service + project string + firewallPolicy string + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header } -// Delete: Deletes the specified license. *Caution* This resource is intended -// for use only by third-party partners who are creating Cloud Marketplace -// images. +// Delete: Deletes the specified policy. // -// - license: Name of the license resource to delete. +// - firewallPolicy: Name of the firewall policy to delete. // - project: Project ID for this request. -func (r *LicensesService) Delete(project string, license string) *LicensesDeleteCall { - c := &LicensesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)} +func (r *NetworkFirewallPoliciesService) Delete(project string, firewallPolicy string) *NetworkFirewallPoliciesDeleteCall { + c := &NetworkFirewallPoliciesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project - c.license = license + c.firewallPolicy = firewallPolicy 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 *LicensesDeleteCall) RequestId(requestId string) *LicensesDeleteCall { +// 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 *NetworkFirewallPoliciesDeleteCall) RequestId(requestId string) *NetworkFirewallPoliciesDeleteCall { c.urlParams_.Set("requestId", requestId) return c } @@ -39698,51 +62100,51 @@ func (c *LicensesDeleteCall) RequestId(requestId string) *LicensesDeleteCall { // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *LicensesDeleteCall) Fields(s ...googleapi.Field) *LicensesDeleteCall { +func (c *NetworkFirewallPoliciesDeleteCall) Fields(s ...googleapi.Field) *NetworkFirewallPoliciesDeleteCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } // Context sets the context to be used in this call's Do method. -func (c *LicensesDeleteCall) Context(ctx context.Context) *LicensesDeleteCall { +func (c *NetworkFirewallPoliciesDeleteCall) Context(ctx context.Context) *NetworkFirewallPoliciesDeleteCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *LicensesDeleteCall) Header() http.Header { +func (c *NetworkFirewallPoliciesDeleteCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *LicensesDeleteCall) doRequest(alt string) (*http.Response, error) { +func (c *NetworkFirewallPoliciesDeleteCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) - var body io.Reader = nil c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/licenses/{license}") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/firewallPolicies/{firewallPolicy}") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("DELETE", urls, body) + req, err := http.NewRequest("DELETE", urls, nil) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "license": c.license, + "project": c.project, + "firewallPolicy": c.firewallPolicy, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.networkFirewallPolicies.delete", "request", internallog.HTTPRequest(req, nil)) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.licenses.delete" call. +// Do executes the "compute.networkFirewallPolicies.delete" call. // 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 *LicensesDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) { +func (c *NetworkFirewallPoliciesDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -39768,39 +62170,39 @@ func (c *LicensesDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.networkFirewallPolicies.delete", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type LicensesGetCall struct { - s *Service - project string - license string - urlParams_ gensupport.URLParams - ifNoneMatch_ string - ctx_ context.Context - header_ http.Header +type NetworkFirewallPoliciesGetCall struct { + s *Service + project string + firewallPolicy string + urlParams_ gensupport.URLParams + ifNoneMatch_ string + ctx_ context.Context + header_ http.Header } -// Get: Returns the specified License resource. *Caution* This resource is -// intended for use only by third-party partners who are creating Cloud -// Marketplace images. +// Get: Returns the specified network firewall policy. // -// - license: Name of the License resource to return. +// - firewallPolicy: Name of the firewall policy to get. // - project: Project ID for this request. -func (r *LicensesService) Get(project string, license string) *LicensesGetCall { - c := &LicensesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)} +func (r *NetworkFirewallPoliciesService) Get(project string, firewallPolicy string) *NetworkFirewallPoliciesGetCall { + c := &NetworkFirewallPoliciesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project - c.license = license + c.firewallPolicy = firewallPolicy return c } // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *LicensesGetCall) Fields(s ...googleapi.Field) *LicensesGetCall { +func (c *NetworkFirewallPoliciesGetCall) Fields(s ...googleapi.Field) *NetworkFirewallPoliciesGetCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } @@ -39808,54 +62210,54 @@ func (c *LicensesGetCall) Fields(s ...googleapi.Field) *LicensesGetCall { // IfNoneMatch sets an 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. -func (c *LicensesGetCall) IfNoneMatch(entityTag string) *LicensesGetCall { +func (c *NetworkFirewallPoliciesGetCall) IfNoneMatch(entityTag string) *NetworkFirewallPoliciesGetCall { c.ifNoneMatch_ = entityTag return c } // Context sets the context to be used in this call's Do method. -func (c *LicensesGetCall) Context(ctx context.Context) *LicensesGetCall { +func (c *NetworkFirewallPoliciesGetCall) Context(ctx context.Context) *NetworkFirewallPoliciesGetCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *LicensesGetCall) Header() http.Header { +func (c *NetworkFirewallPoliciesGetCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *LicensesGetCall) doRequest(alt string) (*http.Response, error) { +func (c *NetworkFirewallPoliciesGetCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) if c.ifNoneMatch_ != "" { reqHeaders.Set("If-None-Match", c.ifNoneMatch_) } - var body io.Reader = nil c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/licenses/{license}") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/firewallPolicies/{firewallPolicy}") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("GET", urls, body) + req, err := http.NewRequest("GET", urls, nil) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "license": c.license, + "project": c.project, + "firewallPolicy": c.firewallPolicy, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.networkFirewallPolicies.get", "request", internallog.HTTPRequest(req, nil)) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.licenses.get" call. +// Do executes the "compute.networkFirewallPolicies.get" call. // Any non-2xx status code is an error. Response headers are in either -// *License.ServerResponse.Header or (if a response was returned at all) in -// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check +// *FirewallPolicy.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 *LicensesGetCall) Do(opts ...googleapi.CallOption) (*License, error) { +func (c *NetworkFirewallPoliciesGetCall) Do(opts ...googleapi.CallOption) (*FirewallPolicy, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -39874,53 +62276,54 @@ func (c *LicensesGetCall) Do(opts ...googleapi.CallOption) (*License, error) { if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } - ret := &License{ + ret := &FirewallPolicy{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.networkFirewallPolicies.get", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type LicensesGetIamPolicyCall struct { - s *Service - project string - resource string - urlParams_ gensupport.URLParams - ifNoneMatch_ string - ctx_ context.Context - header_ http.Header +type NetworkFirewallPoliciesGetAssociationCall struct { + s *Service + project string + firewallPolicy string + urlParams_ gensupport.URLParams + ifNoneMatch_ string + ctx_ context.Context + header_ http.Header } -// GetIamPolicy: Gets the access control policy for a resource. May be empty if -// no such policy or resource exists. *Caution* This resource is intended for -// use only by third-party partners who are creating Cloud Marketplace images. +// GetAssociation: Gets an association with the specified name. // -// - project: Project ID for this request. -// - resource: Name or id of the resource for this request. -func (r *LicensesService) GetIamPolicy(project string, resource string) *LicensesGetIamPolicyCall { - c := &LicensesGetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)} +// - firewallPolicy: Name of the firewall policy to which the queried +// association belongs. +// - project: Project ID for this request. +func (r *NetworkFirewallPoliciesService) GetAssociation(project string, firewallPolicy string) *NetworkFirewallPoliciesGetAssociationCall { + c := &NetworkFirewallPoliciesGetAssociationCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project - c.resource = resource + c.firewallPolicy = firewallPolicy return c } -// OptionsRequestedPolicyVersion sets the optional parameter -// "optionsRequestedPolicyVersion": Requested IAM Policy version. -func (c *LicensesGetIamPolicyCall) OptionsRequestedPolicyVersion(optionsRequestedPolicyVersion int64) *LicensesGetIamPolicyCall { - c.urlParams_.Set("optionsRequestedPolicyVersion", fmt.Sprint(optionsRequestedPolicyVersion)) +// Name sets the optional parameter "name": The name of the association to get +// from the firewall policy. +func (c *NetworkFirewallPoliciesGetAssociationCall) Name(name string) *NetworkFirewallPoliciesGetAssociationCall { + c.urlParams_.Set("name", name) return c } // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *LicensesGetIamPolicyCall) Fields(s ...googleapi.Field) *LicensesGetIamPolicyCall { +func (c *NetworkFirewallPoliciesGetAssociationCall) Fields(s ...googleapi.Field) *NetworkFirewallPoliciesGetAssociationCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } @@ -39928,54 +62331,55 @@ func (c *LicensesGetIamPolicyCall) Fields(s ...googleapi.Field) *LicensesGetIamP // IfNoneMatch sets an 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. -func (c *LicensesGetIamPolicyCall) IfNoneMatch(entityTag string) *LicensesGetIamPolicyCall { +func (c *NetworkFirewallPoliciesGetAssociationCall) IfNoneMatch(entityTag string) *NetworkFirewallPoliciesGetAssociationCall { c.ifNoneMatch_ = entityTag return c } // Context sets the context to be used in this call's Do method. -func (c *LicensesGetIamPolicyCall) Context(ctx context.Context) *LicensesGetIamPolicyCall { +func (c *NetworkFirewallPoliciesGetAssociationCall) Context(ctx context.Context) *NetworkFirewallPoliciesGetAssociationCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *LicensesGetIamPolicyCall) Header() http.Header { +func (c *NetworkFirewallPoliciesGetAssociationCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *LicensesGetIamPolicyCall) doRequest(alt string) (*http.Response, error) { +func (c *NetworkFirewallPoliciesGetAssociationCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) if c.ifNoneMatch_ != "" { reqHeaders.Set("If-None-Match", c.ifNoneMatch_) } - var body io.Reader = nil c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/licenses/{resource}/getIamPolicy") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/firewallPolicies/{firewallPolicy}/getAssociation") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("GET", urls, body) + req, err := http.NewRequest("GET", urls, nil) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "resource": c.resource, + "project": c.project, + "firewallPolicy": c.firewallPolicy, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.networkFirewallPolicies.getAssociation", "request", internallog.HTTPRequest(req, nil)) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.licenses.getIamPolicy" call. +// Do executes the "compute.networkFirewallPolicies.getAssociation" call. // Any non-2xx status code is an error. Response headers are in either -// *Policy.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 *LicensesGetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, error) { +// *FirewallPolicyAssociation.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 *NetworkFirewallPoliciesGetAssociationCall) Do(opts ...googleapi.CallOption) (*FirewallPolicyAssociation, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -39994,106 +62398,110 @@ func (c *LicensesGetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, er if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } - ret := &Policy{ + ret := &FirewallPolicyAssociation{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.networkFirewallPolicies.getAssociation", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type LicensesInsertCall struct { - s *Service - project string - license *License - urlParams_ gensupport.URLParams - ctx_ context.Context - header_ http.Header +type NetworkFirewallPoliciesGetIamPolicyCall struct { + s *Service + project string + resource string + urlParams_ gensupport.URLParams + ifNoneMatch_ string + ctx_ context.Context + header_ http.Header } -// Insert: Create a License resource in the specified project. *Caution* This -// resource is intended for use only by third-party partners who are creating -// Cloud Marketplace images. +// GetIamPolicy: Gets the access control policy for a resource. May be empty if +// no such +// policy or resource exists. // // - project: Project ID for this request. -func (r *LicensesService) Insert(project string, license *License) *LicensesInsertCall { - c := &LicensesInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)} +// - resource: Name or id of the resource for this request. +func (r *NetworkFirewallPoliciesService) GetIamPolicy(project string, resource string) *NetworkFirewallPoliciesGetIamPolicyCall { + c := &NetworkFirewallPoliciesGetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project - c.license = license + c.resource = resource 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 *LicensesInsertCall) RequestId(requestId string) *LicensesInsertCall { - c.urlParams_.Set("requestId", requestId) +// OptionsRequestedPolicyVersion sets the optional parameter +// "optionsRequestedPolicyVersion": Requested IAM Policy version. +func (c *NetworkFirewallPoliciesGetIamPolicyCall) OptionsRequestedPolicyVersion(optionsRequestedPolicyVersion int64) *NetworkFirewallPoliciesGetIamPolicyCall { + c.urlParams_.Set("optionsRequestedPolicyVersion", fmt.Sprint(optionsRequestedPolicyVersion)) return c } // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *LicensesInsertCall) Fields(s ...googleapi.Field) *LicensesInsertCall { +func (c *NetworkFirewallPoliciesGetIamPolicyCall) Fields(s ...googleapi.Field) *NetworkFirewallPoliciesGetIamPolicyCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } +// IfNoneMatch sets an 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. +func (c *NetworkFirewallPoliciesGetIamPolicyCall) IfNoneMatch(entityTag string) *NetworkFirewallPoliciesGetIamPolicyCall { + c.ifNoneMatch_ = entityTag + return c +} + // Context sets the context to be used in this call's Do method. -func (c *LicensesInsertCall) Context(ctx context.Context) *LicensesInsertCall { +func (c *NetworkFirewallPoliciesGetIamPolicyCall) Context(ctx context.Context) *NetworkFirewallPoliciesGetIamPolicyCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *LicensesInsertCall) Header() http.Header { +func (c *NetworkFirewallPoliciesGetIamPolicyCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *LicensesInsertCall) doRequest(alt string) (*http.Response, error) { - reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) - var body io.Reader = nil - body, err := googleapi.WithoutDataWrapper.JSONReader(c.license) - if err != nil { - return nil, err +func (c *NetworkFirewallPoliciesGetIamPolicyCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) + if c.ifNoneMatch_ != "" { + reqHeaders.Set("If-None-Match", c.ifNoneMatch_) } c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/licenses") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/firewallPolicies/{resource}/getIamPolicy") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("POST", urls, body) + req, err := http.NewRequest("GET", urls, nil) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, + "project": c.project, + "resource": c.resource, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.networkFirewallPolicies.getIamPolicy", "request", internallog.HTTPRequest(req, nil)) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.licenses.insert" call. +// Do executes the "compute.networkFirewallPolicies.getIamPolicy" call. // 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 +// *Policy.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 *LicensesInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) { +func (c *NetworkFirewallPoliciesGetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -40112,125 +62520,177 @@ func (c *LicensesInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } - ret := &Operation{ + ret := &Policy{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.networkFirewallPolicies.getIamPolicy", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type LicensesListCall struct { - s *Service - project string - urlParams_ gensupport.URLParams - ifNoneMatch_ string - ctx_ context.Context - header_ http.Header +type NetworkFirewallPoliciesGetPacketMirroringRuleCall struct { + s *Service + project string + firewallPolicy string + urlParams_ gensupport.URLParams + ifNoneMatch_ string + ctx_ context.Context + header_ http.Header } -// List: Retrieves the list of licenses available in the specified project. -// This method does not get any licenses that belong to other projects, -// including licenses attached to publicly-available images, like Debian 9. If -// you want to get a list of publicly-available licenses, use this method to -// make a request to the respective image project, such as debian-cloud or -// windows-cloud. *Caution* This resource is intended for use only by -// third-party partners who are creating Cloud Marketplace images. +// GetPacketMirroringRule: Gets a packet mirroring rule of the specified +// priority. // -// - project: Project ID for this request. -func (r *LicensesService) List(project string) *LicensesListCall { - c := &LicensesListCall{s: r.s, urlParams_: make(gensupport.URLParams)} +// - firewallPolicy: Name of the firewall policy to which the queried rule +// belongs. +// - project: Project ID for this request. +func (r *NetworkFirewallPoliciesService) GetPacketMirroringRule(project string, firewallPolicy string) *NetworkFirewallPoliciesGetPacketMirroringRuleCall { + c := &NetworkFirewallPoliciesGetPacketMirroringRuleCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project + c.firewallPolicy = firewallPolicy return c } -// Filter sets the optional parameter "filter": A filter expression that -// filters resources listed in the response. Most Compute resources support two -// types of filter expressions: expressions that support regular expressions -// and expressions that follow API improvement proposal AIP-160. These two -// types of filter expressions cannot be mixed in one request. If you want to -// use AIP-160, your expression must specify the field name, an operator, and -// the value that you want to use for filtering. The value must be a string, a -// number, or a boolean. The 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`. The `:*` comparison can be used to test whether a key has -// been defined. For example, to find all objects with `owner` label use: ``` -// labels.owner:* ``` 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) ``` If you want to use a regular -// expression, use the `eq` (equal) or `ne` (not equal) operator against a -// single un-parenthesized expression with or without quotes or against -// multiple parenthesized expressions. Examples: `fieldname eq unquoted -// literal` `fieldname eq 'single quoted literal'` `fieldname eq "double quoted -// literal" `(fieldname1 eq literal) (fieldname2 ne "literal")` The literal -// value is interpreted as a regular expression using Google RE2 library -// syntax. The literal value must match the entire field. For example, to -// filter for instances that do not end with name "instance", you would use -// `name ne .*instance`. You cannot combine constraints on multiple fields -// using regular expressions. -func (c *LicensesListCall) Filter(filter string) *LicensesListCall { - c.urlParams_.Set("filter", filter) +// Priority sets the optional parameter "priority": The priority of the rule to +// get from the firewall policy. +func (c *NetworkFirewallPoliciesGetPacketMirroringRuleCall) Priority(priority int64) *NetworkFirewallPoliciesGetPacketMirroringRuleCall { + c.urlParams_.Set("priority", fmt.Sprint(priority)) 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 *LicensesListCall) MaxResults(maxResults int64) *LicensesListCall { - c.urlParams_.Set("maxResults", fmt.Sprint(maxResults)) +// Fields allows partial responses to be retrieved. See +// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more +// details. +func (c *NetworkFirewallPoliciesGetPacketMirroringRuleCall) Fields(s ...googleapi.Field) *NetworkFirewallPoliciesGetPacketMirroringRuleCall { + c.urlParams_.Set("fields", googleapi.CombineFields(s)) + return c +} + +// IfNoneMatch sets an 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. +func (c *NetworkFirewallPoliciesGetPacketMirroringRuleCall) IfNoneMatch(entityTag string) *NetworkFirewallPoliciesGetPacketMirroringRuleCall { + c.ifNoneMatch_ = entityTag + return c +} + +// Context sets the context to be used in this call's Do method. +func (c *NetworkFirewallPoliciesGetPacketMirroringRuleCall) Context(ctx context.Context) *NetworkFirewallPoliciesGetPacketMirroringRuleCall { + c.ctx_ = ctx 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 *LicensesListCall) OrderBy(orderBy string) *LicensesListCall { - c.urlParams_.Set("orderBy", orderBy) - return c +// Header returns a http.Header that can be modified by the caller to add +// headers to the request. +func (c *NetworkFirewallPoliciesGetPacketMirroringRuleCall) Header() http.Header { + if c.header_ == nil { + c.header_ = make(http.Header) + } + return c.header_ +} + +func (c *NetworkFirewallPoliciesGetPacketMirroringRuleCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) + if c.ifNoneMatch_ != "" { + reqHeaders.Set("If-None-Match", c.ifNoneMatch_) + } + c.urlParams_.Set("alt", alt) + c.urlParams_.Set("prettyPrint", "false") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/firewallPolicies/{firewallPolicy}/getPacketMirroringRule") + urls += "?" + c.urlParams_.Encode() + req, err := http.NewRequest("GET", urls, nil) + if err != nil { + return nil, err + } + req.Header = reqHeaders + googleapi.Expand(req.URL, map[string]string{ + "project": c.project, + "firewallPolicy": c.firewallPolicy, + }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.networkFirewallPolicies.getPacketMirroringRule", "request", internallog.HTTPRequest(req, nil)) + return gensupport.SendRequest(c.ctx_, c.s.client, req) +} + +// Do executes the "compute.networkFirewallPolicies.getPacketMirroringRule" call. +// Any non-2xx status code is an error. Response headers are in either +// *FirewallPolicyRule.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 *NetworkFirewallPoliciesGetPacketMirroringRuleCall) Do(opts ...googleapi.CallOption) (*FirewallPolicyRule, 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, gensupport.WrapError(&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, gensupport.WrapError(err) + } + ret := &FirewallPolicyRule{ + ServerResponse: googleapi.ServerResponse{ + Header: res.Header, + HTTPStatusCode: res.StatusCode, + }, + } + target := &ret + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { + return nil, err + } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.networkFirewallPolicies.getPacketMirroringRule", "response", internallog.HTTPResponse(res, b)) + return ret, nil +} + +type NetworkFirewallPoliciesGetRuleCall struct { + s *Service + project string + firewallPolicy string + urlParams_ gensupport.URLParams + ifNoneMatch_ string + ctx_ context.Context + header_ http.Header } -// 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 *LicensesListCall) PageToken(pageToken string) *LicensesListCall { - c.urlParams_.Set("pageToken", pageToken) +// GetRule: Gets a rule of the specified priority. +// +// - firewallPolicy: Name of the firewall policy to which the queried rule +// belongs. +// - project: Project ID for this request. +func (r *NetworkFirewallPoliciesService) GetRule(project string, firewallPolicy string) *NetworkFirewallPoliciesGetRuleCall { + c := &NetworkFirewallPoliciesGetRuleCall{s: r.s, urlParams_: make(gensupport.URLParams)} + c.project = project + c.firewallPolicy = firewallPolicy return c } -// ReturnPartialSuccess sets the optional parameter "returnPartialSuccess": -// Opt-in for partial success behavior which provides partial results in case -// of failure. The default value is false. For example, when partial success -// behavior is enabled, aggregatedList for a single zone scope either returns -// all resources in the zone or no resources, with an error code. -func (c *LicensesListCall) ReturnPartialSuccess(returnPartialSuccess bool) *LicensesListCall { - c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess)) +// Priority sets the optional parameter "priority": The priority of the rule to +// get from the firewall policy. +func (c *NetworkFirewallPoliciesGetRuleCall) Priority(priority int64) *NetworkFirewallPoliciesGetRuleCall { + c.urlParams_.Set("priority", fmt.Sprint(priority)) return c } // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *LicensesListCall) Fields(s ...googleapi.Field) *LicensesListCall { +func (c *NetworkFirewallPoliciesGetRuleCall) Fields(s ...googleapi.Field) *NetworkFirewallPoliciesGetRuleCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } @@ -40238,54 +62698,55 @@ func (c *LicensesListCall) Fields(s ...googleapi.Field) *LicensesListCall { // IfNoneMatch sets an 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. -func (c *LicensesListCall) IfNoneMatch(entityTag string) *LicensesListCall { +func (c *NetworkFirewallPoliciesGetRuleCall) IfNoneMatch(entityTag string) *NetworkFirewallPoliciesGetRuleCall { c.ifNoneMatch_ = entityTag return c } // Context sets the context to be used in this call's Do method. -func (c *LicensesListCall) Context(ctx context.Context) *LicensesListCall { +func (c *NetworkFirewallPoliciesGetRuleCall) Context(ctx context.Context) *NetworkFirewallPoliciesGetRuleCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *LicensesListCall) Header() http.Header { +func (c *NetworkFirewallPoliciesGetRuleCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *LicensesListCall) doRequest(alt string) (*http.Response, error) { +func (c *NetworkFirewallPoliciesGetRuleCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) if c.ifNoneMatch_ != "" { reqHeaders.Set("If-None-Match", c.ifNoneMatch_) } - var body io.Reader = nil c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/licenses") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/firewallPolicies/{firewallPolicy}/getRule") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("GET", urls, body) + req, err := http.NewRequest("GET", urls, nil) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, + "project": c.project, + "firewallPolicy": c.firewallPolicy, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.networkFirewallPolicies.getRule", "request", internallog.HTTPRequest(req, nil)) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.licenses.list" call. +// Do executes the "compute.networkFirewallPolicies.getRule" call. // Any non-2xx status code is an error. Response headers are in either -// *LicensesListResponse.ServerResponse.Header or (if a response was returned -// at all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to +// *FirewallPolicyRule.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 *LicensesListCall) Do(opts ...googleapi.CallOption) (*LicensesListResponse, error) { +func (c *NetworkFirewallPoliciesGetRuleCall) Do(opts ...googleapi.CallOption) (*FirewallPolicyRule, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -40304,97 +62765,96 @@ func (c *LicensesListCall) Do(opts ...googleapi.CallOption) (*LicensesListRespon if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } - ret := &LicensesListResponse{ + ret := &FirewallPolicyRule{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.networkFirewallPolicies.getRule", "response", internallog.HTTPResponse(res, b)) return ret, nil } -// 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 *LicensesListCall) Pages(ctx context.Context, f func(*LicensesListResponse) error) error { - c.ctx_ = ctx - defer c.PageToken(c.urlParams_.Get("pageToken")) - 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) - } -} - -type LicensesSetIamPolicyCall struct { - s *Service - project string - resource string - globalsetpolicyrequest *GlobalSetPolicyRequest - urlParams_ gensupport.URLParams - ctx_ context.Context - header_ http.Header +type NetworkFirewallPoliciesInsertCall struct { + s *Service + project string + firewallpolicy *FirewallPolicy + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header } -// SetIamPolicy: Sets the access control policy on the specified resource. -// Replaces any existing policy. *Caution* This resource is intended for use -// only by third-party partners who are creating Cloud Marketplace images. +// Insert: Creates a new policy in the specified project using the data +// included in +// the request. // // - project: Project ID for this request. -// - resource: Name or id of the resource for this request. -func (r *LicensesService) SetIamPolicy(project string, resource string, globalsetpolicyrequest *GlobalSetPolicyRequest) *LicensesSetIamPolicyCall { - c := &LicensesSetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)} +func (r *NetworkFirewallPoliciesService) Insert(project string, firewallpolicy *FirewallPolicy) *NetworkFirewallPoliciesInsertCall { + c := &NetworkFirewallPoliciesInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project - c.resource = resource - c.globalsetpolicyrequest = globalsetpolicyrequest + c.firewallpolicy = firewallpolicy + 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 *NetworkFirewallPoliciesInsertCall) RequestId(requestId string) *NetworkFirewallPoliciesInsertCall { + 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 // details. -func (c *LicensesSetIamPolicyCall) Fields(s ...googleapi.Field) *LicensesSetIamPolicyCall { +func (c *NetworkFirewallPoliciesInsertCall) Fields(s ...googleapi.Field) *NetworkFirewallPoliciesInsertCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } // Context sets the context to be used in this call's Do method. -func (c *LicensesSetIamPolicyCall) Context(ctx context.Context) *LicensesSetIamPolicyCall { +func (c *NetworkFirewallPoliciesInsertCall) Context(ctx context.Context) *NetworkFirewallPoliciesInsertCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *LicensesSetIamPolicyCall) Header() http.Header { +func (c *NetworkFirewallPoliciesInsertCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *LicensesSetIamPolicyCall) doRequest(alt string) (*http.Response, error) { +func (c *NetworkFirewallPoliciesInsertCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) - var body io.Reader = nil - body, err := googleapi.WithoutDataWrapper.JSONReader(c.globalsetpolicyrequest) + body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.firewallpolicy) if err != nil { return nil, err } c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/licenses/{resource}/setIamPolicy") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/firewallPolicies") urls += "?" + c.urlParams_.Encode() req, err := http.NewRequest("POST", urls, body) if err != nil { @@ -40402,18 +62862,18 @@ func (c *LicensesSetIamPolicyCall) doRequest(alt string) (*http.Response, error) } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "resource": c.resource, + "project": c.project, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.networkFirewallPolicies.insert", "request", internallog.HTTPRequest(req, body.Bytes())) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.licenses.setIamPolicy" call. +// Do executes the "compute.networkFirewallPolicies.insert" call. // Any non-2xx status code is an error. Response headers are in either -// *Policy.ServerResponse.Header or (if a response was returned at all) in +// *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 *LicensesSetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, error) { +func (c *NetworkFirewallPoliciesInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -40432,96 +62892,227 @@ func (c *LicensesSetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, er if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } - ret := &Policy{ + ret := &Operation{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.networkFirewallPolicies.insert", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type LicensesTestIamPermissionsCall struct { - s *Service - project string - resource string - testpermissionsrequest *TestPermissionsRequest - urlParams_ gensupport.URLParams - ctx_ context.Context - header_ http.Header +type NetworkFirewallPoliciesListCall struct { + s *Service + project string + urlParams_ gensupport.URLParams + ifNoneMatch_ string + ctx_ context.Context + header_ http.Header } -// TestIamPermissions: Returns permissions that a caller has on the specified -// resource. *Caution* This resource is intended for use only by third-party -// partners who are creating Cloud Marketplace images. +// List: Lists all the policies that have been configured for the specified +// project. // // - project: Project ID for this request. -// - resource: Name or id of the resource for this request. -func (r *LicensesService) TestIamPermissions(project string, resource string, testpermissionsrequest *TestPermissionsRequest) *LicensesTestIamPermissionsCall { - c := &LicensesTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)} +func (r *NetworkFirewallPoliciesService) List(project string) *NetworkFirewallPoliciesListCall { + c := &NetworkFirewallPoliciesListCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project - c.resource = resource - c.testpermissionsrequest = testpermissionsrequest + return c +} + +// Filter sets the optional parameter "filter": A filter expression that +// filters resources listed in the response. Most +// Compute resources support two types of filter expressions: +// expressions that support regular expressions and expressions that follow +// API improvement proposal AIP-160. +// These two types of filter expressions cannot be mixed in one request. +// +// If you want to use AIP-160, your expression must specify the field name, +// an +// operator, and the value that you want to use for filtering. The value +// must be a string, a number, or a boolean. The 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`. +// +// The `:*` comparison can be used to test whether a key has been defined. +// For example, to find all objects with `owner` label +// use: +// ``` +// labels.owner:* +// ``` +// +// 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 onresource 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) +// ``` +// +// If you want to use a regular expression, use the `eq` (equal) or `ne` +// (not equal) operator against a single un-parenthesized expression with +// or +// without quotes or against multiple parenthesized expressions. +// Examples: +// +// `fieldname eq unquoted literal` +// `fieldname eq 'single quoted literal'` +// `fieldname eq "double quoted literal" +// `(fieldname1 eq literal) (fieldname2 ne "literal")` +// +// The literal value is interpreted as a regular expression using GoogleRE2 +// library syntax. +// The literal value must match the entire field. +// +// For example, to filter for instances that do not end with name +// "instance", +// you would use `name ne .*instance`. +// +// You cannot combine constraints on multiple fields using regular +// expressions. +func (c *NetworkFirewallPoliciesListCall) Filter(filter string) *NetworkFirewallPoliciesListCall { + 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 *NetworkFirewallPoliciesListCall) MaxResults(maxResults int64) *NetworkFirewallPoliciesListCall { + 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 *NetworkFirewallPoliciesListCall) OrderBy(orderBy string) *NetworkFirewallPoliciesListCall { + 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 *NetworkFirewallPoliciesListCall) PageToken(pageToken string) *NetworkFirewallPoliciesListCall { + c.urlParams_.Set("pageToken", pageToken) + return c +} + +// ReturnPartialSuccess sets the optional parameter "returnPartialSuccess": +// Opt-in for partial success behavior which provides partial results in +// case +// of failure. The default value is false. +// +// For example, when partial success behavior is enabled, aggregatedList for +// a +// single zone scope either returns all resources in the zone or no +// resources, +// with an error code. +func (c *NetworkFirewallPoliciesListCall) ReturnPartialSuccess(returnPartialSuccess bool) *NetworkFirewallPoliciesListCall { + c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess)) return c } // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *LicensesTestIamPermissionsCall) Fields(s ...googleapi.Field) *LicensesTestIamPermissionsCall { +func (c *NetworkFirewallPoliciesListCall) Fields(s ...googleapi.Field) *NetworkFirewallPoliciesListCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } +// IfNoneMatch sets an 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. +func (c *NetworkFirewallPoliciesListCall) IfNoneMatch(entityTag string) *NetworkFirewallPoliciesListCall { + c.ifNoneMatch_ = entityTag + return c +} + // Context sets the context to be used in this call's Do method. -func (c *LicensesTestIamPermissionsCall) Context(ctx context.Context) *LicensesTestIamPermissionsCall { +func (c *NetworkFirewallPoliciesListCall) Context(ctx context.Context) *NetworkFirewallPoliciesListCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *LicensesTestIamPermissionsCall) Header() http.Header { +func (c *NetworkFirewallPoliciesListCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *LicensesTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) { - reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) - var body io.Reader = nil - body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest) - if err != nil { - return nil, err +func (c *NetworkFirewallPoliciesListCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) + if c.ifNoneMatch_ != "" { + reqHeaders.Set("If-None-Match", c.ifNoneMatch_) } c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/licenses/{resource}/testIamPermissions") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/firewallPolicies") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("POST", urls, body) + req, err := http.NewRequest("GET", urls, nil) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "resource": c.resource, + "project": c.project, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.networkFirewallPolicies.list", "request", internallog.HTTPRequest(req, nil)) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.licenses.testIamPermissions" call. +// Do executes the "compute.networkFirewallPolicies.list" call. // Any non-2xx status code is an error. Response headers are in either -// *TestPermissionsResponse.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 *LicensesTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) { +// *FirewallPolicyList.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 *NetworkFirewallPoliciesListCall) Do(opts ...googleapi.CallOption) (*FirewallPolicyList, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -40540,51 +63131,82 @@ func (c *LicensesTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*Test if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } - ret := &TestPermissionsResponse{ + ret := &FirewallPolicyList{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.networkFirewallPolicies.list", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type MachineImagesDeleteCall struct { - s *Service - project string - machineImage string - urlParams_ gensupport.URLParams - ctx_ context.Context - header_ http.Header +// 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 *NetworkFirewallPoliciesListCall) Pages(ctx context.Context, f func(*FirewallPolicyList) error) error { + c.ctx_ = ctx + defer c.PageToken(c.urlParams_.Get("pageToken")) + 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) + } } -// Delete: Deletes the specified machine image. Deleting a machine image is -// permanent and cannot be undone. +type NetworkFirewallPoliciesPatchCall struct { + s *Service + project string + firewallPolicy string + firewallpolicy *FirewallPolicy + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header +} + +// Patch: Patches the specified policy with the data included in the request. // -// - machineImage: The name of the machine image to delete. +// - firewallPolicy: Name of the firewall policy to update. // - project: Project ID for this request. -func (r *MachineImagesService) Delete(project string, machineImage string) *MachineImagesDeleteCall { - c := &MachineImagesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)} +func (r *NetworkFirewallPoliciesService) Patch(project string, firewallPolicy string, firewallpolicy *FirewallPolicy) *NetworkFirewallPoliciesPatchCall { + c := &NetworkFirewallPoliciesPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project - c.machineImage = machineImage + c.firewallPolicy = firewallPolicy + c.firewallpolicy = firewallpolicy 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 *MachineImagesDeleteCall) RequestId(requestId string) *MachineImagesDeleteCall { +// 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 *NetworkFirewallPoliciesPatchCall) RequestId(requestId string) *NetworkFirewallPoliciesPatchCall { c.urlParams_.Set("requestId", requestId) return c } @@ -40592,51 +63214,55 @@ func (c *MachineImagesDeleteCall) RequestId(requestId string) *MachineImagesDele // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *MachineImagesDeleteCall) Fields(s ...googleapi.Field) *MachineImagesDeleteCall { +func (c *NetworkFirewallPoliciesPatchCall) Fields(s ...googleapi.Field) *NetworkFirewallPoliciesPatchCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } // Context sets the context to be used in this call's Do method. -func (c *MachineImagesDeleteCall) Context(ctx context.Context) *MachineImagesDeleteCall { +func (c *NetworkFirewallPoliciesPatchCall) Context(ctx context.Context) *NetworkFirewallPoliciesPatchCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *MachineImagesDeleteCall) Header() http.Header { +func (c *NetworkFirewallPoliciesPatchCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *MachineImagesDeleteCall) doRequest(alt string) (*http.Response, error) { - reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) - var body io.Reader = nil +func (c *NetworkFirewallPoliciesPatchCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) + body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.firewallpolicy) + if err != nil { + return nil, err + } c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/machineImages/{machineImage}") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/firewallPolicies/{firewallPolicy}") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("DELETE", urls, body) + req, err := http.NewRequest("PATCH", urls, body) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "machineImage": c.machineImage, + "project": c.project, + "firewallPolicy": c.firewallPolicy, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.networkFirewallPolicies.patch", "request", internallog.HTTPRequest(req, body.Bytes())) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.machineImages.delete" call. +// Do executes the "compute.networkFirewallPolicies.patch" call. // 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 *MachineImagesDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) { +func (c *NetworkFirewallPoliciesPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -40662,92 +63288,118 @@ func (c *MachineImagesDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.networkFirewallPolicies.patch", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type MachineImagesGetCall struct { - s *Service - project string - machineImage string - urlParams_ gensupport.URLParams - ifNoneMatch_ string - ctx_ context.Context - header_ http.Header +type NetworkFirewallPoliciesPatchPacketMirroringRuleCall struct { + s *Service + project string + firewallPolicy string + firewallpolicyrule *FirewallPolicyRule + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header } -// Get: Returns the specified machine image. +// PatchPacketMirroringRule: Patches a packet mirroring rule of the specified +// priority. // -// - machineImage: The name of the machine image. +// - firewallPolicy: Name of the firewall policy to update. // - project: Project ID for this request. -func (r *MachineImagesService) Get(project string, machineImage string) *MachineImagesGetCall { - c := &MachineImagesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)} +func (r *NetworkFirewallPoliciesService) PatchPacketMirroringRule(project string, firewallPolicy string, firewallpolicyrule *FirewallPolicyRule) *NetworkFirewallPoliciesPatchPacketMirroringRuleCall { + c := &NetworkFirewallPoliciesPatchPacketMirroringRuleCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project - c.machineImage = machineImage + c.firewallPolicy = firewallPolicy + c.firewallpolicyrule = firewallpolicyrule + return c +} + +// Priority sets the optional parameter "priority": The priority of the rule to +// patch. +func (c *NetworkFirewallPoliciesPatchPacketMirroringRuleCall) Priority(priority int64) *NetworkFirewallPoliciesPatchPacketMirroringRuleCall { + c.urlParams_.Set("priority", fmt.Sprint(priority)) + 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 *NetworkFirewallPoliciesPatchPacketMirroringRuleCall) RequestId(requestId string) *NetworkFirewallPoliciesPatchPacketMirroringRuleCall { + 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 // details. -func (c *MachineImagesGetCall) Fields(s ...googleapi.Field) *MachineImagesGetCall { +func (c *NetworkFirewallPoliciesPatchPacketMirroringRuleCall) Fields(s ...googleapi.Field) *NetworkFirewallPoliciesPatchPacketMirroringRuleCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } -// IfNoneMatch sets an 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. -func (c *MachineImagesGetCall) IfNoneMatch(entityTag string) *MachineImagesGetCall { - c.ifNoneMatch_ = entityTag - return c -} - // Context sets the context to be used in this call's Do method. -func (c *MachineImagesGetCall) Context(ctx context.Context) *MachineImagesGetCall { +func (c *NetworkFirewallPoliciesPatchPacketMirroringRuleCall) Context(ctx context.Context) *NetworkFirewallPoliciesPatchPacketMirroringRuleCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *MachineImagesGetCall) Header() http.Header { +func (c *NetworkFirewallPoliciesPatchPacketMirroringRuleCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *MachineImagesGetCall) doRequest(alt string) (*http.Response, error) { - reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) - if c.ifNoneMatch_ != "" { - reqHeaders.Set("If-None-Match", c.ifNoneMatch_) +func (c *NetworkFirewallPoliciesPatchPacketMirroringRuleCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) + body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.firewallpolicyrule) + if err != nil { + return nil, err } - var body io.Reader = nil c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/machineImages/{machineImage}") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/firewallPolicies/{firewallPolicy}/patchPacketMirroringRule") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("GET", urls, body) + req, err := http.NewRequest("POST", urls, body) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "machineImage": c.machineImage, + "project": c.project, + "firewallPolicy": c.firewallPolicy, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.networkFirewallPolicies.patchPacketMirroringRule", "request", internallog.HTTPRequest(req, body.Bytes())) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.machineImages.get" call. +// Do executes the "compute.networkFirewallPolicies.patchPacketMirroringRule" call. // Any non-2xx status code is an error. Response headers are in either -// *MachineImage.ServerResponse.Header or (if a response was returned at all) -// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check +// *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 *MachineImagesGetCall) Do(opts ...googleapi.CallOption) (*MachineImage, error) { +func (c *NetworkFirewallPoliciesPatchPacketMirroringRuleCall) Do(opts ...googleapi.CallOption) (*Operation, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -40766,107 +63418,124 @@ func (c *MachineImagesGetCall) Do(opts ...googleapi.CallOption) (*MachineImage, if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } - ret := &MachineImage{ + ret := &Operation{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.networkFirewallPolicies.patchPacketMirroringRule", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type MachineImagesGetIamPolicyCall struct { - s *Service - project string - resource string - urlParams_ gensupport.URLParams - ifNoneMatch_ string - ctx_ context.Context - header_ http.Header +type NetworkFirewallPoliciesPatchRuleCall struct { + s *Service + project string + firewallPolicy string + firewallpolicyrule *FirewallPolicyRule + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header } -// GetIamPolicy: Gets the access control policy for a resource. May be empty if -// no such policy or resource exists. +// PatchRule: Patches a rule of the specified priority. // +// - firewallPolicy: Name of the firewall policy to update. // - project: Project ID for this request. -// - resource: Name or id of the resource for this request. -func (r *MachineImagesService) GetIamPolicy(project string, resource string) *MachineImagesGetIamPolicyCall { - c := &MachineImagesGetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)} +func (r *NetworkFirewallPoliciesService) PatchRule(project string, firewallPolicy string, firewallpolicyrule *FirewallPolicyRule) *NetworkFirewallPoliciesPatchRuleCall { + c := &NetworkFirewallPoliciesPatchRuleCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project - c.resource = resource + c.firewallPolicy = firewallPolicy + c.firewallpolicyrule = firewallpolicyrule return c } -// OptionsRequestedPolicyVersion sets the optional parameter -// "optionsRequestedPolicyVersion": Requested IAM Policy version. -func (c *MachineImagesGetIamPolicyCall) OptionsRequestedPolicyVersion(optionsRequestedPolicyVersion int64) *MachineImagesGetIamPolicyCall { - c.urlParams_.Set("optionsRequestedPolicyVersion", fmt.Sprint(optionsRequestedPolicyVersion)) +// Priority sets the optional parameter "priority": The priority of the rule to +// patch. +func (c *NetworkFirewallPoliciesPatchRuleCall) Priority(priority int64) *NetworkFirewallPoliciesPatchRuleCall { + c.urlParams_.Set("priority", fmt.Sprint(priority)) + 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 *NetworkFirewallPoliciesPatchRuleCall) RequestId(requestId string) *NetworkFirewallPoliciesPatchRuleCall { + 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 // details. -func (c *MachineImagesGetIamPolicyCall) Fields(s ...googleapi.Field) *MachineImagesGetIamPolicyCall { +func (c *NetworkFirewallPoliciesPatchRuleCall) Fields(s ...googleapi.Field) *NetworkFirewallPoliciesPatchRuleCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } -// IfNoneMatch sets an 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. -func (c *MachineImagesGetIamPolicyCall) IfNoneMatch(entityTag string) *MachineImagesGetIamPolicyCall { - c.ifNoneMatch_ = entityTag - return c -} - // Context sets the context to be used in this call's Do method. -func (c *MachineImagesGetIamPolicyCall) Context(ctx context.Context) *MachineImagesGetIamPolicyCall { +func (c *NetworkFirewallPoliciesPatchRuleCall) Context(ctx context.Context) *NetworkFirewallPoliciesPatchRuleCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *MachineImagesGetIamPolicyCall) Header() http.Header { +func (c *NetworkFirewallPoliciesPatchRuleCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *MachineImagesGetIamPolicyCall) doRequest(alt string) (*http.Response, error) { - reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) - if c.ifNoneMatch_ != "" { - reqHeaders.Set("If-None-Match", c.ifNoneMatch_) +func (c *NetworkFirewallPoliciesPatchRuleCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) + body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.firewallpolicyrule) + if err != nil { + return nil, err } - var body io.Reader = nil c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/machineImages/{resource}/getIamPolicy") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/firewallPolicies/{firewallPolicy}/patchRule") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("GET", urls, body) + req, err := http.NewRequest("POST", urls, body) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "resource": c.resource, + "project": c.project, + "firewallPolicy": c.firewallPolicy, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.networkFirewallPolicies.patchRule", "request", internallog.HTTPRequest(req, body.Bytes())) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.machineImages.getIamPolicy" call. +// Do executes the "compute.networkFirewallPolicies.patchRule" call. // Any non-2xx status code is an error. Response headers are in either -// *Policy.ServerResponse.Header or (if a response was returned at all) in +// *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 *MachineImagesGetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, error) { +func (c *NetworkFirewallPoliciesPatchRuleCall) Do(opts ...googleapi.CallOption) (*Operation, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -40885,114 +63554,118 @@ func (c *MachineImagesGetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Polic if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } - ret := &Policy{ + ret := &Operation{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.networkFirewallPolicies.patchRule", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type MachineImagesInsertCall struct { - s *Service - project string - machineimage *MachineImage - urlParams_ gensupport.URLParams - ctx_ context.Context - header_ http.Header +type NetworkFirewallPoliciesRemoveAssociationCall struct { + s *Service + project string + firewallPolicy string + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header } -// Insert: Creates a machine image in the specified project using the data that -// is included in the request. If you are creating a new machine image to -// update an existing instance, your new machine image should use the same -// network or, if applicable, the same subnetwork as the original instance. +// RemoveAssociation: Removes an association for the specified firewall policy. // +// - firewallPolicy: Name of the firewall policy to update. // - project: Project ID for this request. -func (r *MachineImagesService) Insert(project string, machineimage *MachineImage) *MachineImagesInsertCall { - c := &MachineImagesInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)} +func (r *NetworkFirewallPoliciesService) RemoveAssociation(project string, firewallPolicy string) *NetworkFirewallPoliciesRemoveAssociationCall { + c := &NetworkFirewallPoliciesRemoveAssociationCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project - c.machineimage = machineimage + c.firewallPolicy = firewallPolicy + return c +} + +// Name sets the optional parameter "name": Name for the attachment that will +// be removed. +func (c *NetworkFirewallPoliciesRemoveAssociationCall) Name(name string) *NetworkFirewallPoliciesRemoveAssociationCall { + c.urlParams_.Set("name", name) 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 *MachineImagesInsertCall) RequestId(requestId string) *MachineImagesInsertCall { +// 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 *NetworkFirewallPoliciesRemoveAssociationCall) RequestId(requestId string) *NetworkFirewallPoliciesRemoveAssociationCall { c.urlParams_.Set("requestId", requestId) return c } -// SourceInstance sets the optional parameter "sourceInstance": Required. -// Source instance that is used to create the machine image from. -func (c *MachineImagesInsertCall) SourceInstance(sourceInstance string) *MachineImagesInsertCall { - c.urlParams_.Set("sourceInstance", sourceInstance) - return c -} - // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *MachineImagesInsertCall) Fields(s ...googleapi.Field) *MachineImagesInsertCall { +func (c *NetworkFirewallPoliciesRemoveAssociationCall) Fields(s ...googleapi.Field) *NetworkFirewallPoliciesRemoveAssociationCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } // Context sets the context to be used in this call's Do method. -func (c *MachineImagesInsertCall) Context(ctx context.Context) *MachineImagesInsertCall { +func (c *NetworkFirewallPoliciesRemoveAssociationCall) Context(ctx context.Context) *NetworkFirewallPoliciesRemoveAssociationCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *MachineImagesInsertCall) Header() http.Header { +func (c *NetworkFirewallPoliciesRemoveAssociationCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *MachineImagesInsertCall) doRequest(alt string) (*http.Response, error) { - reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) - var body io.Reader = nil - body, err := googleapi.WithoutDataWrapper.JSONReader(c.machineimage) - if err != nil { - return nil, err - } +func (c *NetworkFirewallPoliciesRemoveAssociationCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/machineImages") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/firewallPolicies/{firewallPolicy}/removeAssociation") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("POST", urls, body) + req, err := http.NewRequest("POST", urls, nil) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, + "project": c.project, + "firewallPolicy": c.firewallPolicy, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.networkFirewallPolicies.removeAssociation", "request", internallog.HTTPRequest(req, nil)) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.machineImages.insert" call. +// Do executes the "compute.networkFirewallPolicies.removeAssociation" call. // 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 *MachineImagesInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) { +func (c *NetworkFirewallPoliciesRemoveAssociationCall) Do(opts ...googleapi.CallOption) (*Operation, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -41018,168 +63691,112 @@ func (c *MachineImagesInsertCall) Do(opts ...googleapi.CallOption) (*Operation, }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.networkFirewallPolicies.removeAssociation", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type MachineImagesListCall struct { - s *Service - project string - urlParams_ gensupport.URLParams - ifNoneMatch_ string - ctx_ context.Context - header_ http.Header +type NetworkFirewallPoliciesRemovePacketMirroringRuleCall struct { + s *Service + project string + firewallPolicy string + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header } -// List: Retrieves a list of machine images that are contained within the -// specified project. +// RemovePacketMirroringRule: Deletes a packet mirroring rule of the specified +// priority. // +// - firewallPolicy: Name of the firewall policy to update. // - project: Project ID for this request. -func (r *MachineImagesService) List(project string) *MachineImagesListCall { - c := &MachineImagesListCall{s: r.s, urlParams_: make(gensupport.URLParams)} +func (r *NetworkFirewallPoliciesService) RemovePacketMirroringRule(project string, firewallPolicy string) *NetworkFirewallPoliciesRemovePacketMirroringRuleCall { + c := &NetworkFirewallPoliciesRemovePacketMirroringRuleCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project + c.firewallPolicy = firewallPolicy return c } -// Filter sets the optional parameter "filter": A filter expression that -// filters resources listed in the response. Most Compute resources support two -// types of filter expressions: expressions that support regular expressions -// and expressions that follow API improvement proposal AIP-160. These two -// types of filter expressions cannot be mixed in one request. If you want to -// use AIP-160, your expression must specify the field name, an operator, and -// the value that you want to use for filtering. The value must be a string, a -// number, or a boolean. The 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`. The `:*` comparison can be used to test whether a key has -// been defined. For example, to find all objects with `owner` label use: ``` -// labels.owner:* ``` 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) ``` If you want to use a regular -// expression, use the `eq` (equal) or `ne` (not equal) operator against a -// single un-parenthesized expression with or without quotes or against -// multiple parenthesized expressions. Examples: `fieldname eq unquoted -// literal` `fieldname eq 'single quoted literal'` `fieldname eq "double quoted -// literal" `(fieldname1 eq literal) (fieldname2 ne "literal")` The literal -// value is interpreted as a regular expression using Google RE2 library -// syntax. The literal value must match the entire field. For example, to -// filter for instances that do not end with name "instance", you would use -// `name ne .*instance`. You cannot combine constraints on multiple fields -// using regular expressions. -func (c *MachineImagesListCall) Filter(filter string) *MachineImagesListCall { - 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 *MachineImagesListCall) MaxResults(maxResults int64) *MachineImagesListCall { - 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 *MachineImagesListCall) OrderBy(orderBy string) *MachineImagesListCall { - 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 *MachineImagesListCall) PageToken(pageToken string) *MachineImagesListCall { - c.urlParams_.Set("pageToken", pageToken) +// Priority sets the optional parameter "priority": The priority of the rule to +// remove from the firewall policy. +func (c *NetworkFirewallPoliciesRemovePacketMirroringRuleCall) Priority(priority int64) *NetworkFirewallPoliciesRemovePacketMirroringRuleCall { + c.urlParams_.Set("priority", fmt.Sprint(priority)) return c } -// ReturnPartialSuccess sets the optional parameter "returnPartialSuccess": -// Opt-in for partial success behavior which provides partial results in case -// of failure. The default value is false. For example, when partial success -// behavior is enabled, aggregatedList for a single zone scope either returns -// all resources in the zone or no resources, with an error code. -func (c *MachineImagesListCall) ReturnPartialSuccess(returnPartialSuccess bool) *MachineImagesListCall { - c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess)) +// 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 *NetworkFirewallPoliciesRemovePacketMirroringRuleCall) RequestId(requestId string) *NetworkFirewallPoliciesRemovePacketMirroringRuleCall { + 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 // details. -func (c *MachineImagesListCall) Fields(s ...googleapi.Field) *MachineImagesListCall { +func (c *NetworkFirewallPoliciesRemovePacketMirroringRuleCall) Fields(s ...googleapi.Field) *NetworkFirewallPoliciesRemovePacketMirroringRuleCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } -// IfNoneMatch sets an 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. -func (c *MachineImagesListCall) IfNoneMatch(entityTag string) *MachineImagesListCall { - c.ifNoneMatch_ = entityTag - return c -} - // Context sets the context to be used in this call's Do method. -func (c *MachineImagesListCall) Context(ctx context.Context) *MachineImagesListCall { +func (c *NetworkFirewallPoliciesRemovePacketMirroringRuleCall) Context(ctx context.Context) *NetworkFirewallPoliciesRemovePacketMirroringRuleCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *MachineImagesListCall) Header() http.Header { +func (c *NetworkFirewallPoliciesRemovePacketMirroringRuleCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *MachineImagesListCall) doRequest(alt string) (*http.Response, error) { +func (c *NetworkFirewallPoliciesRemovePacketMirroringRuleCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) - if c.ifNoneMatch_ != "" { - reqHeaders.Set("If-None-Match", c.ifNoneMatch_) - } - var body io.Reader = nil c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/machineImages") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/firewallPolicies/{firewallPolicy}/removePacketMirroringRule") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("GET", urls, body) + req, err := http.NewRequest("POST", urls, nil) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, + "project": c.project, + "firewallPolicy": c.firewallPolicy, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.networkFirewallPolicies.removePacketMirroringRule", "request", internallog.HTTPRequest(req, nil)) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.machineImages.list" call. +// Do executes the "compute.networkFirewallPolicies.removePacketMirroringRule" call. // Any non-2xx status code is an error. Response headers are in either -// *MachineImageList.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 *MachineImagesListCall) Do(opts ...googleapi.CallOption) (*MachineImageList, error) { +// *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 *NetworkFirewallPoliciesRemovePacketMirroringRuleCall) Do(opts ...googleapi.CallOption) (*Operation, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -41198,115 +63815,118 @@ func (c *MachineImagesListCall) Do(opts ...googleapi.CallOption) (*MachineImageL if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } - ret := &MachineImageList{ + ret := &Operation{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.networkFirewallPolicies.removePacketMirroringRule", "response", internallog.HTTPResponse(res, b)) return ret, nil } -// 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 *MachineImagesListCall) Pages(ctx context.Context, f func(*MachineImageList) error) error { - c.ctx_ = ctx - defer c.PageToken(c.urlParams_.Get("pageToken")) - 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) - } -} - -type MachineImagesSetIamPolicyCall struct { - s *Service - project string - resource string - globalsetpolicyrequest *GlobalSetPolicyRequest - urlParams_ gensupport.URLParams - ctx_ context.Context - header_ http.Header +type NetworkFirewallPoliciesRemoveRuleCall struct { + s *Service + project string + firewallPolicy string + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header } -// SetIamPolicy: Sets the access control policy on the specified resource. -// Replaces any existing policy. +// RemoveRule: Deletes a rule of the specified priority. // +// - firewallPolicy: Name of the firewall policy to update. // - project: Project ID for this request. -// - resource: Name or id of the resource for this request. -func (r *MachineImagesService) SetIamPolicy(project string, resource string, globalsetpolicyrequest *GlobalSetPolicyRequest) *MachineImagesSetIamPolicyCall { - c := &MachineImagesSetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)} +func (r *NetworkFirewallPoliciesService) RemoveRule(project string, firewallPolicy string) *NetworkFirewallPoliciesRemoveRuleCall { + c := &NetworkFirewallPoliciesRemoveRuleCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project - c.resource = resource - c.globalsetpolicyrequest = globalsetpolicyrequest + c.firewallPolicy = firewallPolicy + return c +} + +// Priority sets the optional parameter "priority": The priority of the rule to +// remove from the firewall policy. +func (c *NetworkFirewallPoliciesRemoveRuleCall) Priority(priority int64) *NetworkFirewallPoliciesRemoveRuleCall { + c.urlParams_.Set("priority", fmt.Sprint(priority)) + 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 *NetworkFirewallPoliciesRemoveRuleCall) RequestId(requestId string) *NetworkFirewallPoliciesRemoveRuleCall { + 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 // details. -func (c *MachineImagesSetIamPolicyCall) Fields(s ...googleapi.Field) *MachineImagesSetIamPolicyCall { +func (c *NetworkFirewallPoliciesRemoveRuleCall) Fields(s ...googleapi.Field) *NetworkFirewallPoliciesRemoveRuleCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } // Context sets the context to be used in this call's Do method. -func (c *MachineImagesSetIamPolicyCall) Context(ctx context.Context) *MachineImagesSetIamPolicyCall { +func (c *NetworkFirewallPoliciesRemoveRuleCall) Context(ctx context.Context) *NetworkFirewallPoliciesRemoveRuleCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *MachineImagesSetIamPolicyCall) Header() http.Header { +func (c *NetworkFirewallPoliciesRemoveRuleCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *MachineImagesSetIamPolicyCall) doRequest(alt string) (*http.Response, error) { - reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) - var body io.Reader = nil - body, err := googleapi.WithoutDataWrapper.JSONReader(c.globalsetpolicyrequest) - if err != nil { - return nil, err - } +func (c *NetworkFirewallPoliciesRemoveRuleCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/machineImages/{resource}/setIamPolicy") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/firewallPolicies/{firewallPolicy}/removeRule") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("POST", urls, body) + req, err := http.NewRequest("POST", urls, nil) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "resource": c.resource, + "project": c.project, + "firewallPolicy": c.firewallPolicy, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.networkFirewallPolicies.removeRule", "request", internallog.HTTPRequest(req, nil)) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.machineImages.setIamPolicy" call. +// Do executes the "compute.networkFirewallPolicies.removeRule" call. // Any non-2xx status code is an error. Response headers are in either -// *Policy.ServerResponse.Header or (if a response was returned at all) in +// *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 *MachineImagesSetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, error) { +func (c *NetworkFirewallPoliciesRemoveRuleCall) Do(opts ...googleapi.CallOption) (*Operation, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -41325,75 +63945,77 @@ func (c *MachineImagesSetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Polic if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } - ret := &Policy{ + ret := &Operation{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.networkFirewallPolicies.removeRule", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type MachineImagesTestIamPermissionsCall struct { +type NetworkFirewallPoliciesSetIamPolicyCall struct { s *Service project string resource string - testpermissionsrequest *TestPermissionsRequest + globalsetpolicyrequest *GlobalSetPolicyRequest urlParams_ gensupport.URLParams ctx_ context.Context header_ http.Header } -// TestIamPermissions: Returns permissions that a caller has on the specified +// SetIamPolicy: Sets the access control policy on the specified // resource. +// Replaces any existing policy. // // - project: Project ID for this request. // - resource: Name or id of the resource for this request. -func (r *MachineImagesService) TestIamPermissions(project string, resource string, testpermissionsrequest *TestPermissionsRequest) *MachineImagesTestIamPermissionsCall { - c := &MachineImagesTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)} +func (r *NetworkFirewallPoliciesService) SetIamPolicy(project string, resource string, globalsetpolicyrequest *GlobalSetPolicyRequest) *NetworkFirewallPoliciesSetIamPolicyCall { + c := &NetworkFirewallPoliciesSetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project c.resource = resource - c.testpermissionsrequest = testpermissionsrequest + c.globalsetpolicyrequest = globalsetpolicyrequest return c } // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *MachineImagesTestIamPermissionsCall) Fields(s ...googleapi.Field) *MachineImagesTestIamPermissionsCall { +func (c *NetworkFirewallPoliciesSetIamPolicyCall) Fields(s ...googleapi.Field) *NetworkFirewallPoliciesSetIamPolicyCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } // Context sets the context to be used in this call's Do method. -func (c *MachineImagesTestIamPermissionsCall) Context(ctx context.Context) *MachineImagesTestIamPermissionsCall { +func (c *NetworkFirewallPoliciesSetIamPolicyCall) Context(ctx context.Context) *NetworkFirewallPoliciesSetIamPolicyCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *MachineImagesTestIamPermissionsCall) Header() http.Header { +func (c *NetworkFirewallPoliciesSetIamPolicyCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *MachineImagesTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) { +func (c *NetworkFirewallPoliciesSetIamPolicyCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) - var body io.Reader = nil - body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest) + body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.globalsetpolicyrequest) if err != nil { return nil, err } c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/machineImages/{resource}/testIamPermissions") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/firewallPolicies/{resource}/setIamPolicy") urls += "?" + c.urlParams_.Encode() req, err := http.NewRequest("POST", urls, body) if err != nil { @@ -41404,16 +64026,16 @@ func (c *MachineImagesTestIamPermissionsCall) doRequest(alt string) (*http.Respo "project": c.project, "resource": c.resource, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.networkFirewallPolicies.setIamPolicy", "request", internallog.HTTPRequest(req, body.Bytes())) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.machineImages.testIamPermissions" call. +// Do executes the "compute.networkFirewallPolicies.setIamPolicy" call. // Any non-2xx status code is an error. Response headers are in either -// *TestPermissionsResponse.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 *MachineImagesTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) { +// *Policy.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 *NetworkFirewallPoliciesSetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -41432,197 +64054,97 @@ func (c *MachineImagesTestIamPermissionsCall) Do(opts ...googleapi.CallOption) ( if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } - ret := &TestPermissionsResponse{ + ret := &Policy{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.networkFirewallPolicies.setIamPolicy", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type MachineTypesAggregatedListCall struct { - s *Service - project string - urlParams_ gensupport.URLParams - ifNoneMatch_ string - ctx_ context.Context - header_ http.Header +type NetworkFirewallPoliciesTestIamPermissionsCall struct { + s *Service + project string + resource string + testpermissionsrequest *TestPermissionsRequest + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header } -// AggregatedList: Retrieves an aggregated list of machine types. To prevent -// failure, Google recommends that you set the `returnPartialSuccess` parameter -// to `true`. +// TestIamPermissions: Returns permissions that a caller has on the specified +// resource. // // - project: Project ID for this request. -func (r *MachineTypesService) AggregatedList(project string) *MachineTypesAggregatedListCall { - c := &MachineTypesAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)} +// - resource: Name or id of the resource for this request. +func (r *NetworkFirewallPoliciesService) TestIamPermissions(project string, resource string, testpermissionsrequest *TestPermissionsRequest) *NetworkFirewallPoliciesTestIamPermissionsCall { + c := &NetworkFirewallPoliciesTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project - return c -} - -// Filter sets the optional parameter "filter": A filter expression that -// filters resources listed in the response. Most Compute resources support two -// types of filter expressions: expressions that support regular expressions -// and expressions that follow API improvement proposal AIP-160. These two -// types of filter expressions cannot be mixed in one request. If you want to -// use AIP-160, your expression must specify the field name, an operator, and -// the value that you want to use for filtering. The value must be a string, a -// number, or a boolean. The 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`. The `:*` comparison can be used to test whether a key has -// been defined. For example, to find all objects with `owner` label use: ``` -// labels.owner:* ``` 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) ``` If you want to use a regular -// expression, use the `eq` (equal) or `ne` (not equal) operator against a -// single un-parenthesized expression with or without quotes or against -// multiple parenthesized expressions. Examples: `fieldname eq unquoted -// literal` `fieldname eq 'single quoted literal'` `fieldname eq "double quoted -// literal" `(fieldname1 eq literal) (fieldname2 ne "literal")` The literal -// value is interpreted as a regular expression using Google RE2 library -// syntax. The literal value must match the entire field. For example, to -// filter for instances that do not end with name "instance", you would use -// `name ne .*instance`. You cannot combine constraints on multiple fields -// using regular expressions. -func (c *MachineTypesAggregatedListCall) Filter(filter string) *MachineTypesAggregatedListCall { - c.urlParams_.Set("filter", filter) - return c -} - -// IncludeAllScopes sets the optional parameter "includeAllScopes": Indicates -// whether every visible scope for each scope type (zone, region, global) -// should be included in the response. For new resource types added after this -// field, the flag has no effect as new resource types will always include -// every visible scope for each scope type in response. For resource types -// which predate this field, if this flag is omitted or false, only scopes of -// the scope types where the resource type is expected to be found will be -// included. -func (c *MachineTypesAggregatedListCall) IncludeAllScopes(includeAllScopes bool) *MachineTypesAggregatedListCall { - c.urlParams_.Set("includeAllScopes", fmt.Sprint(includeAllScopes)) - 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 *MachineTypesAggregatedListCall) MaxResults(maxResults int64) *MachineTypesAggregatedListCall { - 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 *MachineTypesAggregatedListCall) OrderBy(orderBy string) *MachineTypesAggregatedListCall { - 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 *MachineTypesAggregatedListCall) PageToken(pageToken string) *MachineTypesAggregatedListCall { - c.urlParams_.Set("pageToken", pageToken) - return c -} - -// ReturnPartialSuccess sets the optional parameter "returnPartialSuccess": -// Opt-in for partial success behavior which provides partial results in case -// of failure. The default value is false. For example, when partial success -// behavior is enabled, aggregatedList for a single zone scope either returns -// all resources in the zone or no resources, with an error code. -func (c *MachineTypesAggregatedListCall) ReturnPartialSuccess(returnPartialSuccess bool) *MachineTypesAggregatedListCall { - c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess)) - return c -} - -// ServiceProjectNumber sets the optional parameter "serviceProjectNumber": The -// Shared VPC service project id or service project number for which aggregated -// list request is invoked for subnetworks list-usable api. -func (c *MachineTypesAggregatedListCall) ServiceProjectNumber(serviceProjectNumber int64) *MachineTypesAggregatedListCall { - c.urlParams_.Set("serviceProjectNumber", fmt.Sprint(serviceProjectNumber)) + c.resource = resource + c.testpermissionsrequest = testpermissionsrequest return c } // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *MachineTypesAggregatedListCall) Fields(s ...googleapi.Field) *MachineTypesAggregatedListCall { +func (c *NetworkFirewallPoliciesTestIamPermissionsCall) Fields(s ...googleapi.Field) *NetworkFirewallPoliciesTestIamPermissionsCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } -// IfNoneMatch sets an 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. -func (c *MachineTypesAggregatedListCall) IfNoneMatch(entityTag string) *MachineTypesAggregatedListCall { - c.ifNoneMatch_ = entityTag - return c -} - // Context sets the context to be used in this call's Do method. -func (c *MachineTypesAggregatedListCall) Context(ctx context.Context) *MachineTypesAggregatedListCall { +func (c *NetworkFirewallPoliciesTestIamPermissionsCall) Context(ctx context.Context) *NetworkFirewallPoliciesTestIamPermissionsCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *MachineTypesAggregatedListCall) Header() http.Header { +func (c *NetworkFirewallPoliciesTestIamPermissionsCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *MachineTypesAggregatedListCall) doRequest(alt string) (*http.Response, error) { - reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) - if c.ifNoneMatch_ != "" { - reqHeaders.Set("If-None-Match", c.ifNoneMatch_) +func (c *NetworkFirewallPoliciesTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) + body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.testpermissionsrequest) + if err != nil { + return nil, err } - var body io.Reader = nil c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/aggregated/machineTypes") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/firewallPolicies/{resource}/testIamPermissions") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("GET", urls, body) + req, err := http.NewRequest("POST", urls, body) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, + "project": c.project, + "resource": c.resource, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.networkFirewallPolicies.testIamPermissions", "request", internallog.HTTPRequest(req, body.Bytes())) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.machineTypes.aggregatedList" call. +// Do executes the "compute.networkFirewallPolicies.testIamPermissions" call. // Any non-2xx status code is an error. Response headers are in either -// *MachineTypeAggregatedList.ServerResponse.Header or (if a response was +// *TestPermissionsResponse.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 *MachineTypesAggregatedListCall) Do(opts ...googleapi.CallOption) (*MachineTypeAggregatedList, error) { +func (c *NetworkFirewallPoliciesTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -41641,68 +64163,46 @@ func (c *MachineTypesAggregatedListCall) Do(opts ...googleapi.CallOption) (*Mach if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } - ret := &MachineTypeAggregatedList{ + ret := &TestPermissionsResponse{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.networkFirewallPolicies.testIamPermissions", "response", internallog.HTTPResponse(res, b)) return ret, nil } -// 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 *MachineTypesAggregatedListCall) Pages(ctx context.Context, f func(*MachineTypeAggregatedList) error) error { - c.ctx_ = ctx - defer c.PageToken(c.urlParams_.Get("pageToken")) - 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) - } -} - -type MachineTypesGetCall struct { - s *Service - project string - zone string - machineType string - urlParams_ gensupport.URLParams - ifNoneMatch_ string - ctx_ context.Context - header_ http.Header +type NetworkProfilesGetCall struct { + s *Service + project string + networkProfile string + urlParams_ gensupport.URLParams + ifNoneMatch_ string + ctx_ context.Context + header_ http.Header } -// Get: Returns the specified machine type. +// Get: Returns the specified network profile. // -// - machineType: Name of the machine type to return. +// - networkProfile: Name of the network profile to return. // - project: Project ID for this request. -// - zone: The name of the zone for this request. -func (r *MachineTypesService) Get(project string, zone string, machineType string) *MachineTypesGetCall { - c := &MachineTypesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)} +func (r *NetworkProfilesService) Get(project string, networkProfile string) *NetworkProfilesGetCall { + c := &NetworkProfilesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project - c.zone = zone - c.machineType = machineType + c.networkProfile = networkProfile return c } // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *MachineTypesGetCall) Fields(s ...googleapi.Field) *MachineTypesGetCall { +func (c *NetworkProfilesGetCall) Fields(s ...googleapi.Field) *NetworkProfilesGetCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } @@ -41710,55 +64210,54 @@ func (c *MachineTypesGetCall) Fields(s ...googleapi.Field) *MachineTypesGetCall // IfNoneMatch sets an 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. -func (c *MachineTypesGetCall) IfNoneMatch(entityTag string) *MachineTypesGetCall { +func (c *NetworkProfilesGetCall) IfNoneMatch(entityTag string) *NetworkProfilesGetCall { c.ifNoneMatch_ = entityTag return c } // Context sets the context to be used in this call's Do method. -func (c *MachineTypesGetCall) Context(ctx context.Context) *MachineTypesGetCall { +func (c *NetworkProfilesGetCall) Context(ctx context.Context) *NetworkProfilesGetCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *MachineTypesGetCall) Header() http.Header { +func (c *NetworkProfilesGetCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *MachineTypesGetCall) doRequest(alt string) (*http.Response, error) { +func (c *NetworkProfilesGetCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) if c.ifNoneMatch_ != "" { reqHeaders.Set("If-None-Match", c.ifNoneMatch_) } - var body io.Reader = nil c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/machineTypes/{machineType}") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/networkProfiles/{networkProfile}") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("GET", urls, body) + req, err := http.NewRequest("GET", urls, nil) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "zone": c.zone, - "machineType": c.machineType, + "project": c.project, + "networkProfile": c.networkProfile, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.networkProfiles.get", "request", internallog.HTTPRequest(req, nil)) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.machineTypes.get" call. +// Do executes the "compute.networkProfiles.get" call. // Any non-2xx status code is an error. Response headers are in either -// *MachineType.ServerResponse.Header or (if a response was returned at all) in -// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check +// *NetworkProfile.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 *MachineTypesGetCall) Do(opts ...googleapi.CallOption) (*MachineType, error) { +func (c *NetworkProfilesGetCall) Do(opts ...googleapi.CallOption) (*NetworkProfile, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -41777,114 +64276,165 @@ func (c *MachineTypesGetCall) Do(opts ...googleapi.CallOption) (*MachineType, er if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } - ret := &MachineType{ + ret := &NetworkProfile{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.networkProfiles.get", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type MachineTypesListCall struct { +type NetworkProfilesListCall struct { s *Service project string - zone string urlParams_ gensupport.URLParams ifNoneMatch_ string ctx_ context.Context header_ http.Header } -// List: Retrieves a list of machine types available to the specified project. +// List: Retrieves a list of network profiles available to the +// specified +// project. // // - project: Project ID for this request. -// - zone: The name of the zone for this request. -func (r *MachineTypesService) List(project string, zone string) *MachineTypesListCall { - c := &MachineTypesListCall{s: r.s, urlParams_: make(gensupport.URLParams)} +func (r *NetworkProfilesService) List(project string) *NetworkProfilesListCall { + c := &NetworkProfilesListCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project - c.zone = zone return c } // Filter sets the optional parameter "filter": A filter expression that -// filters resources listed in the response. Most Compute resources support two -// types of filter expressions: expressions that support regular expressions -// and expressions that follow API improvement proposal AIP-160. These two -// types of filter expressions cannot be mixed in one request. If you want to -// use AIP-160, your expression must specify the field name, an operator, and -// the value that you want to use for filtering. The value must be a string, a -// number, or a boolean. The 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`. The `:*` comparison can be used to test whether a key has -// been defined. For example, to find all objects with `owner` label use: ``` -// labels.owner:* ``` 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) ``` If you want to use a regular -// expression, use the `eq` (equal) or `ne` (not equal) operator against a -// single un-parenthesized expression with or without quotes or against -// multiple parenthesized expressions. Examples: `fieldname eq unquoted -// literal` `fieldname eq 'single quoted literal'` `fieldname eq "double quoted -// literal" `(fieldname1 eq literal) (fieldname2 ne "literal")` The literal -// value is interpreted as a regular expression using Google RE2 library -// syntax. The literal value must match the entire field. For example, to -// filter for instances that do not end with name "instance", you would use -// `name ne .*instance`. You cannot combine constraints on multiple fields -// using regular expressions. -func (c *MachineTypesListCall) Filter(filter string) *MachineTypesListCall { +// filters resources listed in the response. Most +// Compute resources support two types of filter expressions: +// expressions that support regular expressions and expressions that follow +// API improvement proposal AIP-160. +// These two types of filter expressions cannot be mixed in one request. +// +// If you want to use AIP-160, your expression must specify the field name, +// an +// operator, and the value that you want to use for filtering. The value +// must be a string, a number, or a boolean. The 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`. +// +// The `:*` comparison can be used to test whether a key has been defined. +// For example, to find all objects with `owner` label +// use: +// ``` +// labels.owner:* +// ``` +// +// 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 onresource 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) +// ``` +// +// If you want to use a regular expression, use the `eq` (equal) or `ne` +// (not equal) operator against a single un-parenthesized expression with +// or +// without quotes or against multiple parenthesized expressions. +// Examples: +// +// `fieldname eq unquoted literal` +// `fieldname eq 'single quoted literal'` +// `fieldname eq "double quoted literal" +// `(fieldname1 eq literal) (fieldname2 ne "literal")` +// +// The literal value is interpreted as a regular expression using GoogleRE2 +// library syntax. +// The literal value must match the entire field. +// +// For example, to filter for instances that do not end with name +// "instance", +// you would use `name ne .*instance`. +// +// You cannot combine constraints on multiple fields using regular +// expressions. +func (c *NetworkProfilesListCall) Filter(filter string) *NetworkProfilesListCall { 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 *MachineTypesListCall) MaxResults(maxResults int64) *MachineTypesListCall { +// 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 *NetworkProfilesListCall) MaxResults(maxResults int64) *NetworkProfilesListCall { 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 *MachineTypesListCall) OrderBy(orderBy string) *MachineTypesListCall { +// 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 *NetworkProfilesListCall) OrderBy(orderBy string) *NetworkProfilesListCall { 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 *MachineTypesListCall) PageToken(pageToken string) *MachineTypesListCall { +// use. Set `pageToken` to the +// `nextPageToken` returned by a previous list request to get +// the next page of results. +func (c *NetworkProfilesListCall) PageToken(pageToken string) *NetworkProfilesListCall { c.urlParams_.Set("pageToken", pageToken) return c } // ReturnPartialSuccess sets the optional parameter "returnPartialSuccess": -// Opt-in for partial success behavior which provides partial results in case -// of failure. The default value is false. For example, when partial success -// behavior is enabled, aggregatedList for a single zone scope either returns -// all resources in the zone or no resources, with an error code. -func (c *MachineTypesListCall) ReturnPartialSuccess(returnPartialSuccess bool) *MachineTypesListCall { +// Opt-in for partial success behavior which provides partial results in +// case +// of failure. The default value is false. +// +// For example, when partial success behavior is enabled, aggregatedList for +// a +// single zone scope either returns all resources in the zone or no +// resources, +// with an error code. +func (c *NetworkProfilesListCall) ReturnPartialSuccess(returnPartialSuccess bool) *NetworkProfilesListCall { c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess)) return c } @@ -41892,7 +64442,7 @@ func (c *MachineTypesListCall) ReturnPartialSuccess(returnPartialSuccess bool) * // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *MachineTypesListCall) Fields(s ...googleapi.Field) *MachineTypesListCall { +func (c *NetworkProfilesListCall) Fields(s ...googleapi.Field) *NetworkProfilesListCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } @@ -41900,55 +64450,54 @@ func (c *MachineTypesListCall) Fields(s ...googleapi.Field) *MachineTypesListCal // IfNoneMatch sets an 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. -func (c *MachineTypesListCall) IfNoneMatch(entityTag string) *MachineTypesListCall { +func (c *NetworkProfilesListCall) IfNoneMatch(entityTag string) *NetworkProfilesListCall { c.ifNoneMatch_ = entityTag return c } // Context sets the context to be used in this call's Do method. -func (c *MachineTypesListCall) Context(ctx context.Context) *MachineTypesListCall { +func (c *NetworkProfilesListCall) Context(ctx context.Context) *NetworkProfilesListCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *MachineTypesListCall) Header() http.Header { +func (c *NetworkProfilesListCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *MachineTypesListCall) doRequest(alt string) (*http.Response, error) { +func (c *NetworkProfilesListCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) if c.ifNoneMatch_ != "" { reqHeaders.Set("If-None-Match", c.ifNoneMatch_) } - var body io.Reader = nil c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/machineTypes") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/networkProfiles") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("GET", urls, body) + req, err := http.NewRequest("GET", urls, nil) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ "project": c.project, - "zone": c.zone, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.networkProfiles.list", "request", internallog.HTTPRequest(req, nil)) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.machineTypes.list" call. +// Do executes the "compute.networkProfiles.list" call. // Any non-2xx status code is an error. Response headers are in either -// *MachineTypeList.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 *MachineTypesListCall) Do(opts ...googleapi.CallOption) (*MachineTypeList, error) { +// *NetworkProfilesListResponse.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 *NetworkProfilesListCall) Do(opts ...googleapi.CallOption) (*NetworkProfilesListResponse, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -41967,23 +64516,25 @@ func (c *MachineTypesListCall) Do(opts ...googleapi.CallOption) (*MachineTypeLis if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } - ret := &MachineTypeList{ + ret := &NetworkProfilesListResponse{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.networkProfiles.list", "response", internallog.HTTPResponse(res, b)) return ret, nil } // 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 *MachineTypesListCall) Pages(ctx context.Context, f func(*MachineTypeList) error) error { +func (c *NetworkProfilesListCall) Pages(ctx context.Context, f func(*NetworkProfilesListResponse) error) error { c.ctx_ = ctx defer c.PageToken(c.urlParams_.Get("pageToken")) for { @@ -42001,185 +64552,102 @@ func (c *MachineTypesListCall) Pages(ctx context.Context, f func(*MachineTypeLis } } -type NetworkAttachmentsAggregatedListCall struct { - s *Service - project string - urlParams_ gensupport.URLParams - ifNoneMatch_ string - ctx_ context.Context - header_ http.Header +type NetworksAddPeeringCall struct { + s *Service + project string + network string + networksaddpeeringrequest *NetworksAddPeeringRequest + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header } -// AggregatedList: Retrieves the list of all NetworkAttachment resources, -// regional and global, available to the specified project. To prevent failure, -// Google recommends that you set the `returnPartialSuccess` parameter to -// `true`. +// AddPeering: Adds a peering to the specified network. // +// - network: Name of the network resource to add peering to. // - project: Project ID for this request. -func (r *NetworkAttachmentsService) AggregatedList(project string) *NetworkAttachmentsAggregatedListCall { - c := &NetworkAttachmentsAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)} +func (r *NetworksService) AddPeering(project string, network string, networksaddpeeringrequest *NetworksAddPeeringRequest) *NetworksAddPeeringCall { + c := &NetworksAddPeeringCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project + c.network = network + c.networksaddpeeringrequest = networksaddpeeringrequest return c } -// Filter sets the optional parameter "filter": A filter expression that -// filters resources listed in the response. Most Compute resources support two -// types of filter expressions: expressions that support regular expressions -// and expressions that follow API improvement proposal AIP-160. These two -// types of filter expressions cannot be mixed in one request. If you want to -// use AIP-160, your expression must specify the field name, an operator, and -// the value that you want to use for filtering. The value must be a string, a -// number, or a boolean. The 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`. The `:*` comparison can be used to test whether a key has -// been defined. For example, to find all objects with `owner` label use: ``` -// labels.owner:* ``` 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) ``` If you want to use a regular -// expression, use the `eq` (equal) or `ne` (not equal) operator against a -// single un-parenthesized expression with or without quotes or against -// multiple parenthesized expressions. Examples: `fieldname eq unquoted -// literal` `fieldname eq 'single quoted literal'` `fieldname eq "double quoted -// literal" `(fieldname1 eq literal) (fieldname2 ne "literal")` The literal -// value is interpreted as a regular expression using Google RE2 library -// syntax. The literal value must match the entire field. For example, to -// filter for instances that do not end with name "instance", you would use -// `name ne .*instance`. You cannot combine constraints on multiple fields -// using regular expressions. -func (c *NetworkAttachmentsAggregatedListCall) Filter(filter string) *NetworkAttachmentsAggregatedListCall { - c.urlParams_.Set("filter", filter) - return c -} - -// IncludeAllScopes sets the optional parameter "includeAllScopes": Indicates -// whether every visible scope for each scope type (zone, region, global) -// should be included in the response. For new resource types added after this -// field, the flag has no effect as new resource types will always include -// every visible scope for each scope type in response. For resource types -// which predate this field, if this flag is omitted or false, only scopes of -// the scope types where the resource type is expected to be found will be -// included. -func (c *NetworkAttachmentsAggregatedListCall) IncludeAllScopes(includeAllScopes bool) *NetworkAttachmentsAggregatedListCall { - c.urlParams_.Set("includeAllScopes", fmt.Sprint(includeAllScopes)) - 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 *NetworkAttachmentsAggregatedListCall) MaxResults(maxResults int64) *NetworkAttachmentsAggregatedListCall { - 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 *NetworkAttachmentsAggregatedListCall) OrderBy(orderBy string) *NetworkAttachmentsAggregatedListCall { - 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 *NetworkAttachmentsAggregatedListCall) PageToken(pageToken string) *NetworkAttachmentsAggregatedListCall { - c.urlParams_.Set("pageToken", pageToken) - return c -} - -// ReturnPartialSuccess sets the optional parameter "returnPartialSuccess": -// Opt-in for partial success behavior which provides partial results in case -// of failure. The default value is false. For example, when partial success -// behavior is enabled, aggregatedList for a single zone scope either returns -// all resources in the zone or no resources, with an error code. -func (c *NetworkAttachmentsAggregatedListCall) ReturnPartialSuccess(returnPartialSuccess bool) *NetworkAttachmentsAggregatedListCall { - c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess)) - return c -} - -// ServiceProjectNumber sets the optional parameter "serviceProjectNumber": The -// Shared VPC service project id or service project number for which aggregated -// list request is invoked for subnetworks list-usable api. -func (c *NetworkAttachmentsAggregatedListCall) ServiceProjectNumber(serviceProjectNumber int64) *NetworkAttachmentsAggregatedListCall { - c.urlParams_.Set("serviceProjectNumber", fmt.Sprint(serviceProjectNumber)) +// 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 *NetworksAddPeeringCall) RequestId(requestId string) *NetworksAddPeeringCall { + 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 // details. -func (c *NetworkAttachmentsAggregatedListCall) Fields(s ...googleapi.Field) *NetworkAttachmentsAggregatedListCall { +func (c *NetworksAddPeeringCall) Fields(s ...googleapi.Field) *NetworksAddPeeringCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } -// IfNoneMatch sets an 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. -func (c *NetworkAttachmentsAggregatedListCall) IfNoneMatch(entityTag string) *NetworkAttachmentsAggregatedListCall { - c.ifNoneMatch_ = entityTag - return c -} - // Context sets the context to be used in this call's Do method. -func (c *NetworkAttachmentsAggregatedListCall) Context(ctx context.Context) *NetworkAttachmentsAggregatedListCall { +func (c *NetworksAddPeeringCall) Context(ctx context.Context) *NetworksAddPeeringCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *NetworkAttachmentsAggregatedListCall) Header() http.Header { +func (c *NetworksAddPeeringCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *NetworkAttachmentsAggregatedListCall) doRequest(alt string) (*http.Response, error) { - reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) - if c.ifNoneMatch_ != "" { - reqHeaders.Set("If-None-Match", c.ifNoneMatch_) +func (c *NetworksAddPeeringCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) + body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.networksaddpeeringrequest) + if err != nil { + return nil, err } - var body io.Reader = nil c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/aggregated/networkAttachments") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/networks/{network}/addPeering") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("GET", urls, body) + req, err := http.NewRequest("POST", urls, body) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ "project": c.project, + "network": c.network, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.networks.addPeering", "request", internallog.HTTPRequest(req, body.Bytes())) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.networkAttachments.aggregatedList" call. +// Do executes the "compute.networks.addPeering" call. // Any non-2xx status code is an error. Response headers are in either -// *NetworkAttachmentAggregatedList.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 *NetworkAttachmentsAggregatedListCall) Do(opts ...googleapi.CallOption) (*NetworkAttachmentAggregatedList, error) { +// *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 *NetworksAddPeeringCall) Do(opts ...googleapi.CallOption) (*Operation, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -42198,75 +64666,65 @@ func (c *NetworkAttachmentsAggregatedListCall) Do(opts ...googleapi.CallOption) if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } - ret := &NetworkAttachmentAggregatedList{ + ret := &Operation{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.networks.addPeering", "response", internallog.HTTPResponse(res, b)) return ret, nil } -// 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 *NetworkAttachmentsAggregatedListCall) Pages(ctx context.Context, f func(*NetworkAttachmentAggregatedList) error) error { - c.ctx_ = ctx - defer c.PageToken(c.urlParams_.Get("pageToken")) - 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) - } -} - -type NetworkAttachmentsDeleteCall struct { - s *Service - project string - region string - networkAttachment string - urlParams_ gensupport.URLParams - ctx_ context.Context - header_ http.Header +type NetworksCancelRequestRemovePeeringCall struct { + s *Service + project string + network string + networkscancelrequestremovepeeringrequest *NetworksCancelRequestRemovePeeringRequest + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header } -// Delete: Deletes the specified NetworkAttachment in the given scope +// CancelRequestRemovePeering: Cancel requests to remove a peering from the +// specified network. Applicable +// only for PeeringConnection with update_strategy=CONSENSUS. Cancels +// a +// request to remove a peering from the specified network. // -// - networkAttachment: Name of the NetworkAttachment resource to delete. +// - network: Name of the network resource to remove peering from. // - project: Project ID for this request. -// - region: Name of the region of this request. -func (r *NetworkAttachmentsService) Delete(project string, region string, networkAttachment string) *NetworkAttachmentsDeleteCall { - c := &NetworkAttachmentsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)} +func (r *NetworksService) CancelRequestRemovePeering(project string, network string, networkscancelrequestremovepeeringrequest *NetworksCancelRequestRemovePeeringRequest) *NetworksCancelRequestRemovePeeringCall { + c := &NetworksCancelRequestRemovePeeringCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project - c.region = region - c.networkAttachment = networkAttachment + c.network = network + c.networkscancelrequestremovepeeringrequest = networkscancelrequestremovepeeringrequest 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). end_interface: -// MixerMutationRequestBuilder -func (c *NetworkAttachmentsDeleteCall) RequestId(requestId string) *NetworkAttachmentsDeleteCall { +// 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 *NetworksCancelRequestRemovePeeringCall) RequestId(requestId string) *NetworksCancelRequestRemovePeeringCall { c.urlParams_.Set("requestId", requestId) return c } @@ -42274,52 +64732,55 @@ func (c *NetworkAttachmentsDeleteCall) RequestId(requestId string) *NetworkAttac // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *NetworkAttachmentsDeleteCall) Fields(s ...googleapi.Field) *NetworkAttachmentsDeleteCall { +func (c *NetworksCancelRequestRemovePeeringCall) Fields(s ...googleapi.Field) *NetworksCancelRequestRemovePeeringCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } // Context sets the context to be used in this call's Do method. -func (c *NetworkAttachmentsDeleteCall) Context(ctx context.Context) *NetworkAttachmentsDeleteCall { +func (c *NetworksCancelRequestRemovePeeringCall) Context(ctx context.Context) *NetworksCancelRequestRemovePeeringCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *NetworkAttachmentsDeleteCall) Header() http.Header { +func (c *NetworksCancelRequestRemovePeeringCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *NetworkAttachmentsDeleteCall) doRequest(alt string) (*http.Response, error) { - reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) - var body io.Reader = nil +func (c *NetworksCancelRequestRemovePeeringCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) + body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.networkscancelrequestremovepeeringrequest) + if err != nil { + return nil, err + } c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/networkAttachments/{networkAttachment}") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/networks/{network}/cancelRequestRemovePeering") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("DELETE", urls, body) + req, err := http.NewRequest("POST", urls, body) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "region": c.region, - "networkAttachment": c.networkAttachment, + "project": c.project, + "network": c.network, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.networks.cancelRequestRemovePeering", "request", internallog.HTTPRequest(req, body.Bytes())) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.networkAttachments.delete" call. +// Do executes the "compute.networks.cancelRequestRemovePeering" call. // 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 *NetworkAttachmentsDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) { +func (c *NetworksCancelRequestRemovePeeringCall) Do(opts ...googleapi.CallOption) (*Operation, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -42345,97 +64806,104 @@ func (c *NetworkAttachmentsDeleteCall) Do(opts ...googleapi.CallOption) (*Operat }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.networks.cancelRequestRemovePeering", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type NetworkAttachmentsGetCall struct { - s *Service - project string - region string - networkAttachment string - urlParams_ gensupport.URLParams - ifNoneMatch_ string - ctx_ context.Context - header_ http.Header +type NetworksDeleteCall struct { + s *Service + project string + network string + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header } -// Get: Returns the specified NetworkAttachment resource in the given scope. +// Delete: Deletes the specified network. // -// - networkAttachment: Name of the NetworkAttachment resource to return. +// - network: Name of the network to delete. // - project: Project ID for this request. -// - region: Name of the region of this request. -func (r *NetworkAttachmentsService) Get(project string, region string, networkAttachment string) *NetworkAttachmentsGetCall { - c := &NetworkAttachmentsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)} +func (r *NetworksService) Delete(project string, network string) *NetworksDeleteCall { + c := &NetworksDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project - c.region = region - c.networkAttachment = networkAttachment + c.network = network + 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 *NetworksDeleteCall) RequestId(requestId string) *NetworksDeleteCall { + 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 // details. -func (c *NetworkAttachmentsGetCall) Fields(s ...googleapi.Field) *NetworkAttachmentsGetCall { +func (c *NetworksDeleteCall) Fields(s ...googleapi.Field) *NetworksDeleteCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } -// IfNoneMatch sets an 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. -func (c *NetworkAttachmentsGetCall) IfNoneMatch(entityTag string) *NetworkAttachmentsGetCall { - c.ifNoneMatch_ = entityTag - return c -} - // Context sets the context to be used in this call's Do method. -func (c *NetworkAttachmentsGetCall) Context(ctx context.Context) *NetworkAttachmentsGetCall { +func (c *NetworksDeleteCall) Context(ctx context.Context) *NetworksDeleteCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *NetworkAttachmentsGetCall) Header() http.Header { +func (c *NetworksDeleteCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *NetworkAttachmentsGetCall) doRequest(alt string) (*http.Response, error) { +func (c *NetworksDeleteCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) - if c.ifNoneMatch_ != "" { - reqHeaders.Set("If-None-Match", c.ifNoneMatch_) - } - var body io.Reader = nil c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/networkAttachments/{networkAttachment}") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/networks/{network}") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("GET", urls, body) + req, err := http.NewRequest("DELETE", urls, nil) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "region": c.region, - "networkAttachment": c.networkAttachment, + "project": c.project, + "network": c.network, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.networks.delete", "request", internallog.HTTPRequest(req, nil)) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.networkAttachments.get" call. +// Do executes the "compute.networks.delete" call. // Any non-2xx status code is an error. Response headers are in either -// *NetworkAttachment.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 *NetworkAttachmentsGetCall) Do(opts ...googleapi.CallOption) (*NetworkAttachment, error) { +// *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 *NetworksDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -42454,55 +64922,46 @@ func (c *NetworkAttachmentsGetCall) Do(opts ...googleapi.CallOption) (*NetworkAt if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } - ret := &NetworkAttachment{ + ret := &Operation{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.networks.delete", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type NetworkAttachmentsGetIamPolicyCall struct { +type NetworksGetCall struct { s *Service project string - region string - resource string + network string urlParams_ gensupport.URLParams ifNoneMatch_ string ctx_ context.Context header_ http.Header } -// GetIamPolicy: Gets the access control policy for a resource. May be empty if -// no such policy or resource exists. +// Get: Returns the specified network. // +// - network: Name of the network to return. // - project: Project ID for this request. -// - region: The name of the region for this request. -// - resource: Name or id of the resource for this request. -func (r *NetworkAttachmentsService) GetIamPolicy(project string, region string, resource string) *NetworkAttachmentsGetIamPolicyCall { - c := &NetworkAttachmentsGetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)} +func (r *NetworksService) Get(project string, network string) *NetworksGetCall { + c := &NetworksGetCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project - c.region = region - c.resource = resource - return c -} - -// OptionsRequestedPolicyVersion sets the optional parameter -// "optionsRequestedPolicyVersion": Requested IAM Policy version. -func (c *NetworkAttachmentsGetIamPolicyCall) OptionsRequestedPolicyVersion(optionsRequestedPolicyVersion int64) *NetworkAttachmentsGetIamPolicyCall { - c.urlParams_.Set("optionsRequestedPolicyVersion", fmt.Sprint(optionsRequestedPolicyVersion)) + c.network = network return c } // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *NetworkAttachmentsGetIamPolicyCall) Fields(s ...googleapi.Field) *NetworkAttachmentsGetIamPolicyCall { +func (c *NetworksGetCall) Fields(s ...googleapi.Field) *NetworksGetCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } @@ -42510,55 +64969,54 @@ func (c *NetworkAttachmentsGetIamPolicyCall) Fields(s ...googleapi.Field) *Netwo // IfNoneMatch sets an 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. -func (c *NetworkAttachmentsGetIamPolicyCall) IfNoneMatch(entityTag string) *NetworkAttachmentsGetIamPolicyCall { +func (c *NetworksGetCall) IfNoneMatch(entityTag string) *NetworksGetCall { c.ifNoneMatch_ = entityTag return c } // Context sets the context to be used in this call's Do method. -func (c *NetworkAttachmentsGetIamPolicyCall) Context(ctx context.Context) *NetworkAttachmentsGetIamPolicyCall { +func (c *NetworksGetCall) Context(ctx context.Context) *NetworksGetCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *NetworkAttachmentsGetIamPolicyCall) Header() http.Header { +func (c *NetworksGetCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *NetworkAttachmentsGetIamPolicyCall) doRequest(alt string) (*http.Response, error) { +func (c *NetworksGetCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) if c.ifNoneMatch_ != "" { reqHeaders.Set("If-None-Match", c.ifNoneMatch_) } - var body io.Reader = nil c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/networkAttachments/{resource}/getIamPolicy") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/networks/{network}") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("GET", urls, body) + req, err := http.NewRequest("GET", urls, nil) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "region": c.region, - "resource": c.resource, + "project": c.project, + "network": c.network, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.networks.get", "request", internallog.HTTPRequest(req, nil)) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.networkAttachments.getIamPolicy" call. +// Do executes the "compute.networks.get" call. // Any non-2xx status code is an error. Response headers are in either -// *Policy.ServerResponse.Header or (if a response was returned at all) in +// *Network.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 *NetworkAttachmentsGetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, error) { +func (c *NetworksGetCall) Do(opts ...googleapi.CallOption) (*Network, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -42577,110 +65035,102 @@ func (c *NetworkAttachmentsGetIamPolicyCall) Do(opts ...googleapi.CallOption) (* if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } - ret := &Policy{ + ret := &Network{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.networks.get", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type NetworkAttachmentsInsertCall struct { - s *Service - project string - region string - networkattachment *NetworkAttachment - urlParams_ gensupport.URLParams - ctx_ context.Context - header_ http.Header +type NetworksGetEffectiveFirewallsCall struct { + s *Service + project string + network string + urlParams_ gensupport.URLParams + ifNoneMatch_ string + ctx_ context.Context + header_ http.Header } -// Insert: Creates a NetworkAttachment in the specified project in the given -// scope using the parameters that are included in the request. +// GetEffectiveFirewalls: Returns the effective firewalls on a given network. // +// - network: Name of the network for this request. // - project: Project ID for this request. -// - region: Name of the region of this request. -func (r *NetworkAttachmentsService) Insert(project string, region string, networkattachment *NetworkAttachment) *NetworkAttachmentsInsertCall { - c := &NetworkAttachmentsInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)} +func (r *NetworksService) GetEffectiveFirewalls(project string, network string) *NetworksGetEffectiveFirewallsCall { + c := &NetworksGetEffectiveFirewallsCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project - c.region = region - c.networkattachment = networkattachment - 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). end_interface: -// MixerMutationRequestBuilder -func (c *NetworkAttachmentsInsertCall) RequestId(requestId string) *NetworkAttachmentsInsertCall { - c.urlParams_.Set("requestId", requestId) + c.network = network return c } // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *NetworkAttachmentsInsertCall) Fields(s ...googleapi.Field) *NetworkAttachmentsInsertCall { +func (c *NetworksGetEffectiveFirewallsCall) Fields(s ...googleapi.Field) *NetworksGetEffectiveFirewallsCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } +// IfNoneMatch sets an 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. +func (c *NetworksGetEffectiveFirewallsCall) IfNoneMatch(entityTag string) *NetworksGetEffectiveFirewallsCall { + c.ifNoneMatch_ = entityTag + return c +} + // Context sets the context to be used in this call's Do method. -func (c *NetworkAttachmentsInsertCall) Context(ctx context.Context) *NetworkAttachmentsInsertCall { +func (c *NetworksGetEffectiveFirewallsCall) Context(ctx context.Context) *NetworksGetEffectiveFirewallsCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *NetworkAttachmentsInsertCall) Header() http.Header { +func (c *NetworksGetEffectiveFirewallsCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *NetworkAttachmentsInsertCall) doRequest(alt string) (*http.Response, error) { - reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) - var body io.Reader = nil - body, err := googleapi.WithoutDataWrapper.JSONReader(c.networkattachment) - if err != nil { - return nil, err +func (c *NetworksGetEffectiveFirewallsCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) + if c.ifNoneMatch_ != "" { + reqHeaders.Set("If-None-Match", c.ifNoneMatch_) } c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/networkAttachments") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/networks/{network}/getEffectiveFirewalls") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("POST", urls, body) + req, err := http.NewRequest("GET", urls, nil) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ "project": c.project, - "region": c.region, + "network": c.network, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.networks.getEffectiveFirewalls", "request", internallog.HTTPRequest(req, nil)) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.networkAttachments.insert" call. +// Do executes the "compute.networks.getEffectiveFirewalls" call. // 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 *NetworkAttachmentsInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) { +// *NetworksGetEffectiveFirewallsResponse.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 *NetworksGetEffectiveFirewallsCall) Do(opts ...googleapi.CallOption) (*NetworksGetEffectiveFirewallsResponse, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -42699,178 +65149,115 @@ func (c *NetworkAttachmentsInsertCall) Do(opts ...googleapi.CallOption) (*Operat if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } - ret := &Operation{ + ret := &NetworksGetEffectiveFirewallsResponse{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.networks.getEffectiveFirewalls", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type NetworkAttachmentsListCall struct { - s *Service - project string - region string - urlParams_ gensupport.URLParams - ifNoneMatch_ string - ctx_ context.Context - header_ http.Header +type NetworksInsertCall struct { + s *Service + project string + network *Network + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header } -// List: Lists the NetworkAttachments for a project in the given scope. +// Insert: Creates a network in the specified project using the data +// included +// in the request. // // - project: Project ID for this request. -// - region: Name of the region of this request. -func (r *NetworkAttachmentsService) List(project string, region string) *NetworkAttachmentsListCall { - c := &NetworkAttachmentsListCall{s: r.s, urlParams_: make(gensupport.URLParams)} +func (r *NetworksService) Insert(project string, network *Network) *NetworksInsertCall { + c := &NetworksInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project - c.region = region - return c -} - -// Filter sets the optional parameter "filter": A filter expression that -// filters resources listed in the response. Most Compute resources support two -// types of filter expressions: expressions that support regular expressions -// and expressions that follow API improvement proposal AIP-160. These two -// types of filter expressions cannot be mixed in one request. If you want to -// use AIP-160, your expression must specify the field name, an operator, and -// the value that you want to use for filtering. The value must be a string, a -// number, or a boolean. The 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`. The `:*` comparison can be used to test whether a key has -// been defined. For example, to find all objects with `owner` label use: ``` -// labels.owner:* ``` 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) ``` If you want to use a regular -// expression, use the `eq` (equal) or `ne` (not equal) operator against a -// single un-parenthesized expression with or without quotes or against -// multiple parenthesized expressions. Examples: `fieldname eq unquoted -// literal` `fieldname eq 'single quoted literal'` `fieldname eq "double quoted -// literal" `(fieldname1 eq literal) (fieldname2 ne "literal")` The literal -// value is interpreted as a regular expression using Google RE2 library -// syntax. The literal value must match the entire field. For example, to -// filter for instances that do not end with name "instance", you would use -// `name ne .*instance`. You cannot combine constraints on multiple fields -// using regular expressions. -func (c *NetworkAttachmentsListCall) Filter(filter string) *NetworkAttachmentsListCall { - 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 *NetworkAttachmentsListCall) MaxResults(maxResults int64) *NetworkAttachmentsListCall { - 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 *NetworkAttachmentsListCall) OrderBy(orderBy string) *NetworkAttachmentsListCall { - 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 *NetworkAttachmentsListCall) PageToken(pageToken string) *NetworkAttachmentsListCall { - c.urlParams_.Set("pageToken", pageToken) + c.network = network return c } -// ReturnPartialSuccess sets the optional parameter "returnPartialSuccess": -// Opt-in for partial success behavior which provides partial results in case -// of failure. The default value is false. For example, when partial success -// behavior is enabled, aggregatedList for a single zone scope either returns -// all resources in the zone or no resources, with an error code. -func (c *NetworkAttachmentsListCall) ReturnPartialSuccess(returnPartialSuccess bool) *NetworkAttachmentsListCall { - c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess)) +// 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 *NetworksInsertCall) RequestId(requestId string) *NetworksInsertCall { + 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 // details. -func (c *NetworkAttachmentsListCall) Fields(s ...googleapi.Field) *NetworkAttachmentsListCall { +func (c *NetworksInsertCall) Fields(s ...googleapi.Field) *NetworksInsertCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } -// IfNoneMatch sets an 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. -func (c *NetworkAttachmentsListCall) IfNoneMatch(entityTag string) *NetworkAttachmentsListCall { - c.ifNoneMatch_ = entityTag - return c -} - // Context sets the context to be used in this call's Do method. -func (c *NetworkAttachmentsListCall) Context(ctx context.Context) *NetworkAttachmentsListCall { +func (c *NetworksInsertCall) Context(ctx context.Context) *NetworksInsertCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *NetworkAttachmentsListCall) Header() http.Header { +func (c *NetworksInsertCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *NetworkAttachmentsListCall) doRequest(alt string) (*http.Response, error) { - reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) - if c.ifNoneMatch_ != "" { - reqHeaders.Set("If-None-Match", c.ifNoneMatch_) +func (c *NetworksInsertCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) + body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.network) + if err != nil { + return nil, err } - var body io.Reader = nil c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/networkAttachments") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/networks") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("GET", urls, body) + req, err := http.NewRequest("POST", urls, body) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ "project": c.project, - "region": c.region, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.networks.insert", "request", internallog.HTTPRequest(req, body.Bytes())) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.networkAttachments.list" call. +// Do executes the "compute.networks.insert" call. // Any non-2xx status code is an error. Response headers are in either -// *NetworkAttachmentList.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 *NetworkAttachmentsListCall) Do(opts ...googleapi.CallOption) (*NetworkAttachmentList, error) { +// *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 *NetworksInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -42889,136 +65276,225 @@ func (c *NetworkAttachmentsListCall) Do(opts ...googleapi.CallOption) (*NetworkA if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } - ret := &NetworkAttachmentList{ + ret := &Operation{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.networks.insert", "response", internallog.HTTPResponse(res, b)) return ret, nil } -// 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 *NetworkAttachmentsListCall) Pages(ctx context.Context, f func(*NetworkAttachmentList) error) error { - c.ctx_ = ctx - defer c.PageToken(c.urlParams_.Get("pageToken")) - 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) - } -} - -type NetworkAttachmentsPatchCall struct { - s *Service - project string - region string - networkAttachment string - networkattachment *NetworkAttachment - urlParams_ gensupport.URLParams - ctx_ context.Context - header_ http.Header +type NetworksListCall struct { + s *Service + project string + urlParams_ gensupport.URLParams + ifNoneMatch_ string + ctx_ context.Context + header_ http.Header } -// Patch: Patches the specified NetworkAttachment resource with the data -// included in the request. This method supports PATCH semantics and uses JSON -// merge patch format and processing rules. +// List: Retrieves the list of networks available to the specified project. // -// - networkAttachment: Name of the NetworkAttachment resource to patch. // - project: Project ID for this request. -// - region: Name of the region for this request. -func (r *NetworkAttachmentsService) Patch(project string, region string, networkAttachment string, networkattachment *NetworkAttachment) *NetworkAttachmentsPatchCall { - c := &NetworkAttachmentsPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)} +func (r *NetworksService) List(project string) *NetworksListCall { + c := &NetworksListCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project - c.region = region - c.networkAttachment = networkAttachment - c.networkattachment = networkattachment 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). end_interface: -// MixerMutationRequestBuilder -func (c *NetworkAttachmentsPatchCall) RequestId(requestId string) *NetworkAttachmentsPatchCall { - c.urlParams_.Set("requestId", requestId) +// Filter sets the optional parameter "filter": A filter expression that +// filters resources listed in the response. Most +// Compute resources support two types of filter expressions: +// expressions that support regular expressions and expressions that follow +// API improvement proposal AIP-160. +// These two types of filter expressions cannot be mixed in one request. +// +// If you want to use AIP-160, your expression must specify the field name, +// an +// operator, and the value that you want to use for filtering. The value +// must be a string, a number, or a boolean. The 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`. +// +// The `:*` comparison can be used to test whether a key has been defined. +// For example, to find all objects with `owner` label +// use: +// ``` +// labels.owner:* +// ``` +// +// 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 onresource 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) +// ``` +// +// If you want to use a regular expression, use the `eq` (equal) or `ne` +// (not equal) operator against a single un-parenthesized expression with +// or +// without quotes or against multiple parenthesized expressions. +// Examples: +// +// `fieldname eq unquoted literal` +// `fieldname eq 'single quoted literal'` +// `fieldname eq "double quoted literal" +// `(fieldname1 eq literal) (fieldname2 ne "literal")` +// +// The literal value is interpreted as a regular expression using GoogleRE2 +// library syntax. +// The literal value must match the entire field. +// +// For example, to filter for instances that do not end with name +// "instance", +// you would use `name ne .*instance`. +// +// You cannot combine constraints on multiple fields using regular +// expressions. +func (c *NetworksListCall) Filter(filter string) *NetworksListCall { + 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 *NetworksListCall) MaxResults(maxResults int64) *NetworksListCall { + 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 *NetworksListCall) OrderBy(orderBy string) *NetworksListCall { + 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 *NetworksListCall) PageToken(pageToken string) *NetworksListCall { + c.urlParams_.Set("pageToken", pageToken) + return c +} + +// ReturnPartialSuccess sets the optional parameter "returnPartialSuccess": +// Opt-in for partial success behavior which provides partial results in +// case +// of failure. The default value is false. +// +// For example, when partial success behavior is enabled, aggregatedList for +// a +// single zone scope either returns all resources in the zone or no +// resources, +// with an error code. +func (c *NetworksListCall) ReturnPartialSuccess(returnPartialSuccess bool) *NetworksListCall { + c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess)) return c } // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *NetworkAttachmentsPatchCall) Fields(s ...googleapi.Field) *NetworkAttachmentsPatchCall { +func (c *NetworksListCall) Fields(s ...googleapi.Field) *NetworksListCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } +// IfNoneMatch sets an 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. +func (c *NetworksListCall) IfNoneMatch(entityTag string) *NetworksListCall { + c.ifNoneMatch_ = entityTag + return c +} + // Context sets the context to be used in this call's Do method. -func (c *NetworkAttachmentsPatchCall) Context(ctx context.Context) *NetworkAttachmentsPatchCall { +func (c *NetworksListCall) Context(ctx context.Context) *NetworksListCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *NetworkAttachmentsPatchCall) Header() http.Header { +func (c *NetworksListCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *NetworkAttachmentsPatchCall) doRequest(alt string) (*http.Response, error) { - reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) - var body io.Reader = nil - body, err := googleapi.WithoutDataWrapper.JSONReader(c.networkattachment) - if err != nil { - return nil, err +func (c *NetworksListCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) + if c.ifNoneMatch_ != "" { + reqHeaders.Set("If-None-Match", c.ifNoneMatch_) } c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/networkAttachments/{networkAttachment}") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/networks") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("PATCH", urls, body) + req, err := http.NewRequest("GET", urls, nil) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "region": c.region, - "networkAttachment": c.networkAttachment, + "project": c.project, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.networks.list", "request", internallog.HTTPRequest(req, nil)) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.networkAttachments.patch" call. +// Do executes the "compute.networks.list" call. // 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 +// *NetworkList.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 *NetworkAttachmentsPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) { +func (c *NetworksListCall) Do(opts ...googleapi.CallOption) (*NetworkList, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -43037,98 +65513,279 @@ func (c *NetworkAttachmentsPatchCall) Do(opts ...googleapi.CallOption) (*Operati if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } - ret := &Operation{ + ret := &NetworkList{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.networks.list", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type NetworkAttachmentsSetIamPolicyCall struct { - s *Service - project string - region string - resource string - regionsetpolicyrequest *RegionSetPolicyRequest - urlParams_ gensupport.URLParams - ctx_ context.Context - header_ http.Header +// 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 *NetworksListCall) Pages(ctx context.Context, f func(*NetworkList) error) error { + c.ctx_ = ctx + defer c.PageToken(c.urlParams_.Get("pageToken")) + 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) + } } -// SetIamPolicy: Sets the access control policy on the specified resource. -// Replaces any existing policy. +type NetworksListPeeringRoutesCall struct { + s *Service + project string + network string + urlParams_ gensupport.URLParams + ifNoneMatch_ string + ctx_ context.Context + header_ http.Header +} + +// ListPeeringRoutes: Lists the peering routes exchanged over peering +// connection. // +// - network: Name of the network for this request. // - project: Project ID for this request. -// - region: The name of the region for this request. -// - resource: Name or id of the resource for this request. -func (r *NetworkAttachmentsService) SetIamPolicy(project string, region string, resource string, regionsetpolicyrequest *RegionSetPolicyRequest) *NetworkAttachmentsSetIamPolicyCall { - c := &NetworkAttachmentsSetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)} +func (r *NetworksService) ListPeeringRoutes(project string, network string) *NetworksListPeeringRoutesCall { + c := &NetworksListPeeringRoutesCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project - c.region = region - c.resource = resource - c.regionsetpolicyrequest = regionsetpolicyrequest + c.network = network + return c +} + +// Direction sets the optional parameter "direction": The direction of the +// exchanged routes. +// +// Possible values: +// +// "INCOMING" - For routes exported from peer network. +// "OUTGOING" - For routes exported from local network. +func (c *NetworksListPeeringRoutesCall) Direction(direction string) *NetworksListPeeringRoutesCall { + c.urlParams_.Set("direction", direction) + return c +} + +// Filter sets the optional parameter "filter": A filter expression that +// filters resources listed in the response. Most +// Compute resources support two types of filter expressions: +// expressions that support regular expressions and expressions that follow +// API improvement proposal AIP-160. +// These two types of filter expressions cannot be mixed in one request. +// +// If you want to use AIP-160, your expression must specify the field name, +// an +// operator, and the value that you want to use for filtering. The value +// must be a string, a number, or a boolean. The 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`. +// +// The `:*` comparison can be used to test whether a key has been defined. +// For example, to find all objects with `owner` label +// use: +// ``` +// labels.owner:* +// ``` +// +// 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 onresource 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) +// ``` +// +// If you want to use a regular expression, use the `eq` (equal) or `ne` +// (not equal) operator against a single un-parenthesized expression with +// or +// without quotes or against multiple parenthesized expressions. +// Examples: +// +// `fieldname eq unquoted literal` +// `fieldname eq 'single quoted literal'` +// `fieldname eq "double quoted literal" +// `(fieldname1 eq literal) (fieldname2 ne "literal")` +// +// The literal value is interpreted as a regular expression using GoogleRE2 +// library syntax. +// The literal value must match the entire field. +// +// For example, to filter for instances that do not end with name +// "instance", +// you would use `name ne .*instance`. +// +// You cannot combine constraints on multiple fields using regular +// expressions. +func (c *NetworksListPeeringRoutesCall) Filter(filter string) *NetworksListPeeringRoutesCall { + 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 *NetworksListPeeringRoutesCall) MaxResults(maxResults int64) *NetworksListPeeringRoutesCall { + 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 *NetworksListPeeringRoutesCall) OrderBy(orderBy string) *NetworksListPeeringRoutesCall { + 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 *NetworksListPeeringRoutesCall) PageToken(pageToken string) *NetworksListPeeringRoutesCall { + c.urlParams_.Set("pageToken", pageToken) + return c +} + +// PeeringName sets the optional parameter "peeringName": The response will +// show routes exchanged over the given peering connection. +func (c *NetworksListPeeringRoutesCall) PeeringName(peeringName string) *NetworksListPeeringRoutesCall { + c.urlParams_.Set("peeringName", peeringName) + return c +} + +// Region sets the optional parameter "region": The region of the request. The +// response will include all subnet routes, +// static routes and dynamic routes in the region. +func (c *NetworksListPeeringRoutesCall) Region(region string) *NetworksListPeeringRoutesCall { + c.urlParams_.Set("region", region) + return c +} + +// ReturnPartialSuccess sets the optional parameter "returnPartialSuccess": +// Opt-in for partial success behavior which provides partial results in +// case +// of failure. The default value is false. +// +// For example, when partial success behavior is enabled, aggregatedList for +// a +// single zone scope either returns all resources in the zone or no +// resources, +// with an error code. +func (c *NetworksListPeeringRoutesCall) ReturnPartialSuccess(returnPartialSuccess bool) *NetworksListPeeringRoutesCall { + c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess)) return c } // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *NetworkAttachmentsSetIamPolicyCall) Fields(s ...googleapi.Field) *NetworkAttachmentsSetIamPolicyCall { +func (c *NetworksListPeeringRoutesCall) Fields(s ...googleapi.Field) *NetworksListPeeringRoutesCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } +// IfNoneMatch sets an 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. +func (c *NetworksListPeeringRoutesCall) IfNoneMatch(entityTag string) *NetworksListPeeringRoutesCall { + c.ifNoneMatch_ = entityTag + return c +} + // Context sets the context to be used in this call's Do method. -func (c *NetworkAttachmentsSetIamPolicyCall) Context(ctx context.Context) *NetworkAttachmentsSetIamPolicyCall { +func (c *NetworksListPeeringRoutesCall) Context(ctx context.Context) *NetworksListPeeringRoutesCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *NetworkAttachmentsSetIamPolicyCall) Header() http.Header { +func (c *NetworksListPeeringRoutesCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *NetworkAttachmentsSetIamPolicyCall) doRequest(alt string) (*http.Response, error) { - reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) - var body io.Reader = nil - body, err := googleapi.WithoutDataWrapper.JSONReader(c.regionsetpolicyrequest) - if err != nil { - return nil, err +func (c *NetworksListPeeringRoutesCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) + if c.ifNoneMatch_ != "" { + reqHeaders.Set("If-None-Match", c.ifNoneMatch_) } c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/networkAttachments/{resource}/setIamPolicy") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/networks/{network}/listPeeringRoutes") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("POST", urls, body) + req, err := http.NewRequest("GET", urls, nil) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "region": c.region, - "resource": c.resource, + "project": c.project, + "network": c.network, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.networks.listPeeringRoutes", "request", internallog.HTTPRequest(req, nil)) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.networkAttachments.setIamPolicy" call. +// Do executes the "compute.networks.listPeeringRoutes" call. // Any non-2xx status code is an error. Response headers are in either -// *Policy.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 *NetworkAttachmentsSetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, error) { +// *ExchangedPeeringRoutesList.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 *NetworksListPeeringRoutesCall) Do(opts ...googleapi.CallOption) (*ExchangedPeeringRoutesList, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -43147,99 +65804,140 @@ func (c *NetworkAttachmentsSetIamPolicyCall) Do(opts ...googleapi.CallOption) (* if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } - ret := &Policy{ + ret := &ExchangedPeeringRoutesList{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.networks.listPeeringRoutes", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type NetworkAttachmentsTestIamPermissionsCall struct { - s *Service - project string - region string - resource string - testpermissionsrequest *TestPermissionsRequest - urlParams_ gensupport.URLParams - ctx_ context.Context - header_ http.Header +// 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 *NetworksListPeeringRoutesCall) Pages(ctx context.Context, f func(*ExchangedPeeringRoutesList) error) error { + c.ctx_ = ctx + defer c.PageToken(c.urlParams_.Get("pageToken")) + 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) + } } -// TestIamPermissions: Returns permissions that a caller has on the specified -// resource. +type NetworksPatchCall struct { + s *Service + project string + network string + network2 *Network + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header +} + +// Patch: Patches the specified network with the data included in the +// request. +// Only routingConfig can be modified. // +// - network: Name of the network to update. // - project: Project ID for this request. -// - region: The name of the region for this request. -// - resource: Name or id of the resource for this request. -func (r *NetworkAttachmentsService) TestIamPermissions(project string, region string, resource string, testpermissionsrequest *TestPermissionsRequest) *NetworkAttachmentsTestIamPermissionsCall { - c := &NetworkAttachmentsTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)} +func (r *NetworksService) Patch(project string, network string, network2 *Network) *NetworksPatchCall { + c := &NetworksPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project - c.region = region - c.resource = resource - c.testpermissionsrequest = testpermissionsrequest + c.network = network + c.network2 = network2 + 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 *NetworksPatchCall) RequestId(requestId string) *NetworksPatchCall { + 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 // details. -func (c *NetworkAttachmentsTestIamPermissionsCall) Fields(s ...googleapi.Field) *NetworkAttachmentsTestIamPermissionsCall { +func (c *NetworksPatchCall) Fields(s ...googleapi.Field) *NetworksPatchCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } // Context sets the context to be used in this call's Do method. -func (c *NetworkAttachmentsTestIamPermissionsCall) Context(ctx context.Context) *NetworkAttachmentsTestIamPermissionsCall { +func (c *NetworksPatchCall) Context(ctx context.Context) *NetworksPatchCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *NetworkAttachmentsTestIamPermissionsCall) Header() http.Header { +func (c *NetworksPatchCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *NetworkAttachmentsTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) { +func (c *NetworksPatchCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) - var body io.Reader = nil - body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest) + body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.network2) if err != nil { return nil, err } c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/networkAttachments/{resource}/testIamPermissions") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/networks/{network}") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("POST", urls, body) + req, err := http.NewRequest("PATCH", urls, body) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "region": c.region, - "resource": c.resource, + "project": c.project, + "network": c.network, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.networks.patch", "request", internallog.HTTPRequest(req, body.Bytes())) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.networkAttachments.testIamPermissions" call. +// Do executes the "compute.networks.patch" call. // Any non-2xx status code is an error. Response headers are in either -// *TestPermissionsResponse.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 *NetworkAttachmentsTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) { +// *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 *NetworksPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -43258,197 +65956,117 @@ func (c *NetworkAttachmentsTestIamPermissionsCall) Do(opts ...googleapi.CallOpti if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } - ret := &TestPermissionsResponse{ + ret := &Operation{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.networks.patch", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type NetworkEdgeSecurityServicesAggregatedListCall struct { - s *Service - project string - urlParams_ gensupport.URLParams - ifNoneMatch_ string - ctx_ context.Context - header_ http.Header +type NetworksRemovePeeringCall struct { + s *Service + project string + network string + networksremovepeeringrequest *NetworksRemovePeeringRequest + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header } -// AggregatedList: Retrieves the list of all NetworkEdgeSecurityService -// resources available to the specified project. To prevent failure, Google -// recommends that you set the `returnPartialSuccess` parameter to `true`. +// RemovePeering: Removes a peering from the specified network. // -// - project: Name of the project scoping this request. -func (r *NetworkEdgeSecurityServicesService) AggregatedList(project string) *NetworkEdgeSecurityServicesAggregatedListCall { - c := &NetworkEdgeSecurityServicesAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)} +// - network: Name of the network resource to remove peering from. +// - project: Project ID for this request. +func (r *NetworksService) RemovePeering(project string, network string, networksremovepeeringrequest *NetworksRemovePeeringRequest) *NetworksRemovePeeringCall { + c := &NetworksRemovePeeringCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project + c.network = network + c.networksremovepeeringrequest = networksremovepeeringrequest return c } -// Filter sets the optional parameter "filter": A filter expression that -// filters resources listed in the response. Most Compute resources support two -// types of filter expressions: expressions that support regular expressions -// and expressions that follow API improvement proposal AIP-160. These two -// types of filter expressions cannot be mixed in one request. If you want to -// use AIP-160, your expression must specify the field name, an operator, and -// the value that you want to use for filtering. The value must be a string, a -// number, or a boolean. The 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`. The `:*` comparison can be used to test whether a key has -// been defined. For example, to find all objects with `owner` label use: ``` -// labels.owner:* ``` 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) ``` If you want to use a regular -// expression, use the `eq` (equal) or `ne` (not equal) operator against a -// single un-parenthesized expression with or without quotes or against -// multiple parenthesized expressions. Examples: `fieldname eq unquoted -// literal` `fieldname eq 'single quoted literal'` `fieldname eq "double quoted -// literal" `(fieldname1 eq literal) (fieldname2 ne "literal")` The literal -// value is interpreted as a regular expression using Google RE2 library -// syntax. The literal value must match the entire field. For example, to -// filter for instances that do not end with name "instance", you would use -// `name ne .*instance`. You cannot combine constraints on multiple fields -// using regular expressions. -func (c *NetworkEdgeSecurityServicesAggregatedListCall) Filter(filter string) *NetworkEdgeSecurityServicesAggregatedListCall { - c.urlParams_.Set("filter", filter) - return c -} - -// IncludeAllScopes sets the optional parameter "includeAllScopes": Indicates -// whether every visible scope for each scope type (zone, region, global) -// should be included in the response. For new resource types added after this -// field, the flag has no effect as new resource types will always include -// every visible scope for each scope type in response. For resource types -// which predate this field, if this flag is omitted or false, only scopes of -// the scope types where the resource type is expected to be found will be -// included. -func (c *NetworkEdgeSecurityServicesAggregatedListCall) IncludeAllScopes(includeAllScopes bool) *NetworkEdgeSecurityServicesAggregatedListCall { - c.urlParams_.Set("includeAllScopes", fmt.Sprint(includeAllScopes)) - 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 *NetworkEdgeSecurityServicesAggregatedListCall) MaxResults(maxResults int64) *NetworkEdgeSecurityServicesAggregatedListCall { - 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 *NetworkEdgeSecurityServicesAggregatedListCall) OrderBy(orderBy string) *NetworkEdgeSecurityServicesAggregatedListCall { - 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 *NetworkEdgeSecurityServicesAggregatedListCall) PageToken(pageToken string) *NetworkEdgeSecurityServicesAggregatedListCall { - c.urlParams_.Set("pageToken", pageToken) - return c -} - -// ReturnPartialSuccess sets the optional parameter "returnPartialSuccess": -// Opt-in for partial success behavior which provides partial results in case -// of failure. The default value is false. For example, when partial success -// behavior is enabled, aggregatedList for a single zone scope either returns -// all resources in the zone or no resources, with an error code. -func (c *NetworkEdgeSecurityServicesAggregatedListCall) ReturnPartialSuccess(returnPartialSuccess bool) *NetworkEdgeSecurityServicesAggregatedListCall { - c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess)) - return c -} - -// ServiceProjectNumber sets the optional parameter "serviceProjectNumber": The -// Shared VPC service project id or service project number for which aggregated -// list request is invoked for subnetworks list-usable api. -func (c *NetworkEdgeSecurityServicesAggregatedListCall) ServiceProjectNumber(serviceProjectNumber int64) *NetworkEdgeSecurityServicesAggregatedListCall { - c.urlParams_.Set("serviceProjectNumber", fmt.Sprint(serviceProjectNumber)) +// 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 *NetworksRemovePeeringCall) RequestId(requestId string) *NetworksRemovePeeringCall { + 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 // details. -func (c *NetworkEdgeSecurityServicesAggregatedListCall) Fields(s ...googleapi.Field) *NetworkEdgeSecurityServicesAggregatedListCall { +func (c *NetworksRemovePeeringCall) Fields(s ...googleapi.Field) *NetworksRemovePeeringCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } -// IfNoneMatch sets an 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. -func (c *NetworkEdgeSecurityServicesAggregatedListCall) IfNoneMatch(entityTag string) *NetworkEdgeSecurityServicesAggregatedListCall { - c.ifNoneMatch_ = entityTag - return c -} - // Context sets the context to be used in this call's Do method. -func (c *NetworkEdgeSecurityServicesAggregatedListCall) Context(ctx context.Context) *NetworkEdgeSecurityServicesAggregatedListCall { +func (c *NetworksRemovePeeringCall) Context(ctx context.Context) *NetworksRemovePeeringCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *NetworkEdgeSecurityServicesAggregatedListCall) Header() http.Header { +func (c *NetworksRemovePeeringCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *NetworkEdgeSecurityServicesAggregatedListCall) doRequest(alt string) (*http.Response, error) { - reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) - if c.ifNoneMatch_ != "" { - reqHeaders.Set("If-None-Match", c.ifNoneMatch_) +func (c *NetworksRemovePeeringCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) + body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.networksremovepeeringrequest) + if err != nil { + return nil, err } - var body io.Reader = nil c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/aggregated/networkEdgeSecurityServices") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/networks/{network}/removePeering") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("GET", urls, body) + req, err := http.NewRequest("POST", urls, body) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ "project": c.project, + "network": c.network, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.networks.removePeering", "request", internallog.HTTPRequest(req, body.Bytes())) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.networkEdgeSecurityServices.aggregatedList" call. +// Do executes the "compute.networks.removePeering" call. // Any non-2xx status code is an error. Response headers are in either -// *NetworkEdgeSecurityServiceAggregatedList.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 *NetworkEdgeSecurityServicesAggregatedListCall) Do(opts ...googleapi.CallOption) (*NetworkEdgeSecurityServiceAggregatedList, error) { +// *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 *NetworksRemovePeeringCall) Do(opts ...googleapi.CallOption) (*Operation, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -43467,75 +66085,63 @@ func (c *NetworkEdgeSecurityServicesAggregatedListCall) Do(opts ...googleapi.Cal if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } - ret := &NetworkEdgeSecurityServiceAggregatedList{ + ret := &Operation{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.networks.removePeering", "response", internallog.HTTPResponse(res, b)) return ret, nil } -// 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 *NetworkEdgeSecurityServicesAggregatedListCall) Pages(ctx context.Context, f func(*NetworkEdgeSecurityServiceAggregatedList) error) error { - c.ctx_ = ctx - defer c.PageToken(c.urlParams_.Get("pageToken")) - 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) - } -} - -type NetworkEdgeSecurityServicesDeleteCall struct { - s *Service - project string - region string - networkEdgeSecurityService string - urlParams_ gensupport.URLParams - ctx_ context.Context - header_ http.Header +type NetworksRequestRemovePeeringCall struct { + s *Service + project string + network string + networksrequestremovepeeringrequest *NetworksRequestRemovePeeringRequest + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header } -// Delete: Deletes the specified service. +// RequestRemovePeering: Requests to remove a peering from the specified +// network. Applicable only +// for PeeringConnection with update_strategy=CONSENSUS. // -// - networkEdgeSecurityService: Name of the network edge security service to -// delete. -// - project: Project ID for this request. -// - region: Name of the region scoping this request. -func (r *NetworkEdgeSecurityServicesService) Delete(project string, region string, networkEdgeSecurityService string) *NetworkEdgeSecurityServicesDeleteCall { - c := &NetworkEdgeSecurityServicesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)} +// - network: Name of the network resource to remove peering from. +// - project: Project ID for this request. +func (r *NetworksService) RequestRemovePeering(project string, network string, networksrequestremovepeeringrequest *NetworksRequestRemovePeeringRequest) *NetworksRequestRemovePeeringCall { + c := &NetworksRequestRemovePeeringCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project - c.region = region - c.networkEdgeSecurityService = networkEdgeSecurityService + c.network = network + c.networksrequestremovepeeringrequest = networksrequestremovepeeringrequest 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 *NetworkEdgeSecurityServicesDeleteCall) RequestId(requestId string) *NetworkEdgeSecurityServicesDeleteCall { +// 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 *NetworksRequestRemovePeeringCall) RequestId(requestId string) *NetworksRequestRemovePeeringCall { c.urlParams_.Set("requestId", requestId) return c } @@ -43543,52 +66149,55 @@ func (c *NetworkEdgeSecurityServicesDeleteCall) RequestId(requestId string) *Net // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *NetworkEdgeSecurityServicesDeleteCall) Fields(s ...googleapi.Field) *NetworkEdgeSecurityServicesDeleteCall { +func (c *NetworksRequestRemovePeeringCall) Fields(s ...googleapi.Field) *NetworksRequestRemovePeeringCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } // Context sets the context to be used in this call's Do method. -func (c *NetworkEdgeSecurityServicesDeleteCall) Context(ctx context.Context) *NetworkEdgeSecurityServicesDeleteCall { +func (c *NetworksRequestRemovePeeringCall) Context(ctx context.Context) *NetworksRequestRemovePeeringCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *NetworkEdgeSecurityServicesDeleteCall) Header() http.Header { +func (c *NetworksRequestRemovePeeringCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *NetworkEdgeSecurityServicesDeleteCall) doRequest(alt string) (*http.Response, error) { - reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) - var body io.Reader = nil +func (c *NetworksRequestRemovePeeringCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) + body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.networksrequestremovepeeringrequest) + if err != nil { + return nil, err + } c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/networkEdgeSecurityServices/{networkEdgeSecurityService}") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/networks/{network}/requestRemovePeering") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("DELETE", urls, body) + req, err := http.NewRequest("POST", urls, body) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "region": c.region, - "networkEdgeSecurityService": c.networkEdgeSecurityService, + "project": c.project, + "network": c.network, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.networks.requestRemovePeering", "request", internallog.HTTPRequest(req, body.Bytes())) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.networkEdgeSecurityServices.delete" call. +// Do executes the "compute.networks.requestRemovePeering" call. // 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 *NetworkEdgeSecurityServicesDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) { +func (c *NetworksRequestRemovePeeringCall) Do(opts ...googleapi.CallOption) (*Operation, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -43614,98 +66223,105 @@ func (c *NetworkEdgeSecurityServicesDeleteCall) Do(opts ...googleapi.CallOption) }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.networks.requestRemovePeering", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type NetworkEdgeSecurityServicesGetCall struct { - s *Service - project string - region string - networkEdgeSecurityService string - urlParams_ gensupport.URLParams - ifNoneMatch_ string - ctx_ context.Context - header_ http.Header +type NetworksSwitchToCustomModeCall struct { + s *Service + project string + network string + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header } -// Get: Gets a specified NetworkEdgeSecurityService. +// SwitchToCustomMode: Switches the network mode from auto subnet mode to +// custom subnet mode. // -// - networkEdgeSecurityService: Name of the network edge security service to -// get. -// - project: Project ID for this request. -// - region: Name of the region scoping this request. -func (r *NetworkEdgeSecurityServicesService) Get(project string, region string, networkEdgeSecurityService string) *NetworkEdgeSecurityServicesGetCall { - c := &NetworkEdgeSecurityServicesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)} +// - network: Name of the network to be updated. +// - project: Project ID for this request. +func (r *NetworksService) SwitchToCustomMode(project string, network string) *NetworksSwitchToCustomModeCall { + c := &NetworksSwitchToCustomModeCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project - c.region = region - c.networkEdgeSecurityService = networkEdgeSecurityService + c.network = network + 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 *NetworksSwitchToCustomModeCall) RequestId(requestId string) *NetworksSwitchToCustomModeCall { + 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 // details. -func (c *NetworkEdgeSecurityServicesGetCall) Fields(s ...googleapi.Field) *NetworkEdgeSecurityServicesGetCall { +func (c *NetworksSwitchToCustomModeCall) Fields(s ...googleapi.Field) *NetworksSwitchToCustomModeCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } -// IfNoneMatch sets an 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. -func (c *NetworkEdgeSecurityServicesGetCall) IfNoneMatch(entityTag string) *NetworkEdgeSecurityServicesGetCall { - c.ifNoneMatch_ = entityTag - return c -} - // Context sets the context to be used in this call's Do method. -func (c *NetworkEdgeSecurityServicesGetCall) Context(ctx context.Context) *NetworkEdgeSecurityServicesGetCall { +func (c *NetworksSwitchToCustomModeCall) Context(ctx context.Context) *NetworksSwitchToCustomModeCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *NetworkEdgeSecurityServicesGetCall) Header() http.Header { +func (c *NetworksSwitchToCustomModeCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *NetworkEdgeSecurityServicesGetCall) doRequest(alt string) (*http.Response, error) { +func (c *NetworksSwitchToCustomModeCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) - if c.ifNoneMatch_ != "" { - reqHeaders.Set("If-None-Match", c.ifNoneMatch_) - } - var body io.Reader = nil c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/networkEdgeSecurityServices/{networkEdgeSecurityService}") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/networks/{network}/switchToCustomMode") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("GET", urls, body) + req, err := http.NewRequest("POST", urls, nil) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "region": c.region, - "networkEdgeSecurityService": c.networkEdgeSecurityService, + "project": c.project, + "network": c.network, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.networks.switchToCustomMode", "request", internallog.HTTPRequest(req, nil)) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.networkEdgeSecurityServices.get" call. +// Do executes the "compute.networks.switchToCustomMode" call. // Any non-2xx status code is an error. Response headers are in either -// *NetworkEdgeSecurityService.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 *NetworkEdgeSecurityServicesGetCall) Do(opts ...googleapi.CallOption) (*NetworkEdgeSecurityService, error) { +// *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 *NetworksSwitchToCustomModeCall) Do(opts ...googleapi.CallOption) (*Operation, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -43724,116 +66340,122 @@ func (c *NetworkEdgeSecurityServicesGetCall) Do(opts ...googleapi.CallOption) (* if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } - ret := &NetworkEdgeSecurityService{ + ret := &Operation{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.networks.switchToCustomMode", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type NetworkEdgeSecurityServicesInsertCall struct { - s *Service - project string - region string - networkedgesecurityservice *NetworkEdgeSecurityService - urlParams_ gensupport.URLParams - ctx_ context.Context - header_ http.Header +type NetworksUpdatePeeringCall struct { + s *Service + project string + network string + networksupdatepeeringrequest *NetworksUpdatePeeringRequest + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header } -// Insert: Creates a new service in the specified project using the data -// included in the request. +// UpdatePeering: Updates the specified network peering with the data included +// in the +// request. You can only modify the NetworkPeering.export_custom_routes +// field +// and the NetworkPeering.import_custom_routes field. // -// - project: Project ID for this request. -// - region: Name of the region scoping this request. -func (r *NetworkEdgeSecurityServicesService) Insert(project string, region string, networkedgesecurityservice *NetworkEdgeSecurityService) *NetworkEdgeSecurityServicesInsertCall { - c := &NetworkEdgeSecurityServicesInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)} +// - network: Name of the network resource which the updated peering is +// belonging to. +// - project: Project ID for this request. +func (r *NetworksService) UpdatePeering(project string, network string, networksupdatepeeringrequest *NetworksUpdatePeeringRequest) *NetworksUpdatePeeringCall { + c := &NetworksUpdatePeeringCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project - c.region = region - c.networkedgesecurityservice = networkedgesecurityservice + c.network = network + c.networksupdatepeeringrequest = networksupdatepeeringrequest 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 *NetworkEdgeSecurityServicesInsertCall) RequestId(requestId string) *NetworkEdgeSecurityServicesInsertCall { +// 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 *NetworksUpdatePeeringCall) RequestId(requestId string) *NetworksUpdatePeeringCall { c.urlParams_.Set("requestId", requestId) return c } -// ValidateOnly sets the optional parameter "validateOnly": If true, the -// request will not be committed. -func (c *NetworkEdgeSecurityServicesInsertCall) ValidateOnly(validateOnly bool) *NetworkEdgeSecurityServicesInsertCall { - c.urlParams_.Set("validateOnly", fmt.Sprint(validateOnly)) - return c -} - // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *NetworkEdgeSecurityServicesInsertCall) Fields(s ...googleapi.Field) *NetworkEdgeSecurityServicesInsertCall { +func (c *NetworksUpdatePeeringCall) Fields(s ...googleapi.Field) *NetworksUpdatePeeringCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } // Context sets the context to be used in this call's Do method. -func (c *NetworkEdgeSecurityServicesInsertCall) Context(ctx context.Context) *NetworkEdgeSecurityServicesInsertCall { +func (c *NetworksUpdatePeeringCall) Context(ctx context.Context) *NetworksUpdatePeeringCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *NetworkEdgeSecurityServicesInsertCall) Header() http.Header { +func (c *NetworksUpdatePeeringCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *NetworkEdgeSecurityServicesInsertCall) doRequest(alt string) (*http.Response, error) { +func (c *NetworksUpdatePeeringCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) - var body io.Reader = nil - body, err := googleapi.WithoutDataWrapper.JSONReader(c.networkedgesecurityservice) + body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.networksupdatepeeringrequest) if err != nil { return nil, err } c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/networkEdgeSecurityServices") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/networks/{network}/updatePeering") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("POST", urls, body) + req, err := http.NewRequest("PATCH", urls, body) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ "project": c.project, - "region": c.region, + "network": c.network, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.networks.updatePeering", "request", internallog.HTTPRequest(req, body.Bytes())) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.networkEdgeSecurityServices.insert" call. +// Do executes the "compute.networks.updatePeering" call. // 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 *NetworkEdgeSecurityServicesInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) { +func (c *NetworksUpdatePeeringCall) Do(opts ...googleapi.CallOption) (*Operation, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -43859,119 +66481,114 @@ func (c *NetworkEdgeSecurityServicesInsertCall) Do(opts ...googleapi.CallOption) }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.networks.updatePeering", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type NetworkEdgeSecurityServicesPatchCall struct { - s *Service - project string - region string - networkEdgeSecurityService string - networkedgesecurityservice *NetworkEdgeSecurityService - urlParams_ gensupport.URLParams - ctx_ context.Context - header_ http.Header +type NodeGroupsAddNodesCall struct { + s *Service + project string + zone string + nodeGroup string + nodegroupsaddnodesrequest *NodeGroupsAddNodesRequest + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header } -// Patch: Patches the specified policy with the data included in the request. +// AddNodes: Adds specified number of nodes to the node group. // -// - networkEdgeSecurityService: Name of the network edge security service to -// update. -// - project: Project ID for this request. -// - region: Name of the region scoping this request. -func (r *NetworkEdgeSecurityServicesService) Patch(project string, region string, networkEdgeSecurityService string, networkedgesecurityservice *NetworkEdgeSecurityService) *NetworkEdgeSecurityServicesPatchCall { - c := &NetworkEdgeSecurityServicesPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)} +// - nodeGroup: Name of the NodeGroup resource. +// - project: Project ID for this request. +// - zone: The name of the zone for this request. +func (r *NodeGroupsService) AddNodes(project string, zone string, nodeGroup string, nodegroupsaddnodesrequest *NodeGroupsAddNodesRequest) *NodeGroupsAddNodesCall { + c := &NodeGroupsAddNodesCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project - c.region = region - c.networkEdgeSecurityService = networkEdgeSecurityService - c.networkedgesecurityservice = networkedgesecurityservice - return c -} - -// Paths sets the optional parameter "paths": -func (c *NetworkEdgeSecurityServicesPatchCall) Paths(paths ...string) *NetworkEdgeSecurityServicesPatchCall { - c.urlParams_.SetMulti("paths", append([]string{}, paths...)) + c.zone = zone + c.nodeGroup = nodeGroup + c.nodegroupsaddnodesrequest = nodegroupsaddnodesrequest 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 *NetworkEdgeSecurityServicesPatchCall) RequestId(requestId string) *NetworkEdgeSecurityServicesPatchCall { +// 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 *NodeGroupsAddNodesCall) RequestId(requestId string) *NodeGroupsAddNodesCall { c.urlParams_.Set("requestId", requestId) return c } -// UpdateMask sets the optional parameter "updateMask": Indicates fields to be -// updated as part of this request. -func (c *NetworkEdgeSecurityServicesPatchCall) UpdateMask(updateMask string) *NetworkEdgeSecurityServicesPatchCall { - c.urlParams_.Set("updateMask", updateMask) - return c -} - // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *NetworkEdgeSecurityServicesPatchCall) Fields(s ...googleapi.Field) *NetworkEdgeSecurityServicesPatchCall { +func (c *NodeGroupsAddNodesCall) Fields(s ...googleapi.Field) *NodeGroupsAddNodesCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } // Context sets the context to be used in this call's Do method. -func (c *NetworkEdgeSecurityServicesPatchCall) Context(ctx context.Context) *NetworkEdgeSecurityServicesPatchCall { +func (c *NodeGroupsAddNodesCall) Context(ctx context.Context) *NodeGroupsAddNodesCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *NetworkEdgeSecurityServicesPatchCall) Header() http.Header { +func (c *NodeGroupsAddNodesCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *NetworkEdgeSecurityServicesPatchCall) doRequest(alt string) (*http.Response, error) { +func (c *NodeGroupsAddNodesCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) - var body io.Reader = nil - body, err := googleapi.WithoutDataWrapper.JSONReader(c.networkedgesecurityservice) + body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.nodegroupsaddnodesrequest) if err != nil { return nil, err } c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/networkEdgeSecurityServices/{networkEdgeSecurityService}") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/nodeGroups/{nodeGroup}/addNodes") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("PATCH", urls, body) + req, err := http.NewRequest("POST", urls, body) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "region": c.region, - "networkEdgeSecurityService": c.networkEdgeSecurityService, + "project": c.project, + "zone": c.zone, + "nodeGroup": c.nodeGroup, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.nodeGroups.addNodes", "request", internallog.HTTPRequest(req, body.Bytes())) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.networkEdgeSecurityServices.patch" call. +// Do executes the "compute.nodeGroups.addNodes" call. // 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 *NetworkEdgeSecurityServicesPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) { +func (c *NodeGroupsAddNodesCall) Do(opts ...googleapi.CallOption) (*Operation, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -43997,13 +66614,15 @@ func (c *NetworkEdgeSecurityServicesPatchCall) Do(opts ...googleapi.CallOption) }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.nodeGroups.addNodes", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type NetworkEndpointGroupsAggregatedListCall struct { +type NodeGroupsAggregatedListCall struct { s *Service project string urlParams_ gensupport.URLParams @@ -44012,112 +66631,170 @@ type NetworkEndpointGroupsAggregatedListCall struct { header_ http.Header } -// AggregatedList: Retrieves the list of network endpoint groups and sorts them -// by zone. To prevent failure, Google recommends that you set the +// AggregatedList: Retrieves an aggregated list of node groups. +// Note: use nodeGroups.listNodes for more details about each group. +// +// To prevent failure, Google recommends that you set +// the // `returnPartialSuccess` parameter to `true`. // // - project: Project ID for this request. -func (r *NetworkEndpointGroupsService) AggregatedList(project string) *NetworkEndpointGroupsAggregatedListCall { - c := &NetworkEndpointGroupsAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)} +func (r *NodeGroupsService) AggregatedList(project string) *NodeGroupsAggregatedListCall { + c := &NodeGroupsAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project return c } // Filter sets the optional parameter "filter": A filter expression that -// filters resources listed in the response. Most Compute resources support two -// types of filter expressions: expressions that support regular expressions -// and expressions that follow API improvement proposal AIP-160. These two -// types of filter expressions cannot be mixed in one request. If you want to -// use AIP-160, your expression must specify the field name, an operator, and -// the value that you want to use for filtering. The value must be a string, a -// number, or a boolean. The 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`. The `:*` comparison can be used to test whether a key has -// been defined. For example, to find all objects with `owner` label use: ``` -// labels.owner:* ``` 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) ``` If you want to use a regular -// expression, use the `eq` (equal) or `ne` (not equal) operator against a -// single un-parenthesized expression with or without quotes or against -// multiple parenthesized expressions. Examples: `fieldname eq unquoted -// literal` `fieldname eq 'single quoted literal'` `fieldname eq "double quoted -// literal" `(fieldname1 eq literal) (fieldname2 ne "literal")` The literal -// value is interpreted as a regular expression using Google RE2 library -// syntax. The literal value must match the entire field. For example, to -// filter for instances that do not end with name "instance", you would use -// `name ne .*instance`. You cannot combine constraints on multiple fields -// using regular expressions. -func (c *NetworkEndpointGroupsAggregatedListCall) Filter(filter string) *NetworkEndpointGroupsAggregatedListCall { +// filters resources listed in the response. Most +// Compute resources support two types of filter expressions: +// expressions that support regular expressions and expressions that follow +// API improvement proposal AIP-160. +// These two types of filter expressions cannot be mixed in one request. +// +// If you want to use AIP-160, your expression must specify the field name, +// an +// operator, and the value that you want to use for filtering. The value +// must be a string, a number, or a boolean. The 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`. +// +// The `:*` comparison can be used to test whether a key has been defined. +// For example, to find all objects with `owner` label +// use: +// ``` +// labels.owner:* +// ``` +// +// 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 onresource 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) +// ``` +// +// If you want to use a regular expression, use the `eq` (equal) or `ne` +// (not equal) operator against a single un-parenthesized expression with +// or +// without quotes or against multiple parenthesized expressions. +// Examples: +// +// `fieldname eq unquoted literal` +// `fieldname eq 'single quoted literal'` +// `fieldname eq "double quoted literal" +// `(fieldname1 eq literal) (fieldname2 ne "literal")` +// +// The literal value is interpreted as a regular expression using GoogleRE2 +// library syntax. +// The literal value must match the entire field. +// +// For example, to filter for instances that do not end with name +// "instance", +// you would use `name ne .*instance`. +// +// You cannot combine constraints on multiple fields using regular +// expressions. +func (c *NodeGroupsAggregatedListCall) Filter(filter string) *NodeGroupsAggregatedListCall { c.urlParams_.Set("filter", filter) return c } // IncludeAllScopes sets the optional parameter "includeAllScopes": Indicates -// whether every visible scope for each scope type (zone, region, global) -// should be included in the response. For new resource types added after this -// field, the flag has no effect as new resource types will always include -// every visible scope for each scope type in response. For resource types -// which predate this field, if this flag is omitted or false, only scopes of -// the scope types where the resource type is expected to be found will be -// included. -func (c *NetworkEndpointGroupsAggregatedListCall) IncludeAllScopes(includeAllScopes bool) *NetworkEndpointGroupsAggregatedListCall { +// whether every visible scope for each scope type (zone, region, +// global) should be included in the response. For new resource types +// added +// after this field, the flag has no effect as new resource types will +// always +// include every visible scope for each scope type in response. For +// resource +// types which predate this field, if this flag is omitted or false, +// only +// scopes of the scope types where the resource type is expected to be +// found +// will be included. +func (c *NodeGroupsAggregatedListCall) IncludeAllScopes(includeAllScopes bool) *NodeGroupsAggregatedListCall { c.urlParams_.Set("includeAllScopes", fmt.Sprint(includeAllScopes)) 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 *NetworkEndpointGroupsAggregatedListCall) MaxResults(maxResults int64) *NetworkEndpointGroupsAggregatedListCall { +// 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 *NodeGroupsAggregatedListCall) MaxResults(maxResults int64) *NodeGroupsAggregatedListCall { 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 *NetworkEndpointGroupsAggregatedListCall) OrderBy(orderBy string) *NetworkEndpointGroupsAggregatedListCall { +// 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 *NodeGroupsAggregatedListCall) OrderBy(orderBy string) *NodeGroupsAggregatedListCall { 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 *NetworkEndpointGroupsAggregatedListCall) PageToken(pageToken string) *NetworkEndpointGroupsAggregatedListCall { +// use. Set `pageToken` to the +// `nextPageToken` returned by a previous list request to get +// the next page of results. +func (c *NodeGroupsAggregatedListCall) PageToken(pageToken string) *NodeGroupsAggregatedListCall { c.urlParams_.Set("pageToken", pageToken) return c } // ReturnPartialSuccess sets the optional parameter "returnPartialSuccess": -// Opt-in for partial success behavior which provides partial results in case -// of failure. The default value is false. For example, when partial success -// behavior is enabled, aggregatedList for a single zone scope either returns -// all resources in the zone or no resources, with an error code. -func (c *NetworkEndpointGroupsAggregatedListCall) ReturnPartialSuccess(returnPartialSuccess bool) *NetworkEndpointGroupsAggregatedListCall { +// Opt-in for partial success behavior which provides partial results in +// case +// of failure. The default value is false. +// +// For example, when partial success behavior is enabled, aggregatedList for +// a +// single zone scope either returns all resources in the zone or no +// resources, +// with an error code. +func (c *NodeGroupsAggregatedListCall) ReturnPartialSuccess(returnPartialSuccess bool) *NodeGroupsAggregatedListCall { c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess)) return c } // ServiceProjectNumber sets the optional parameter "serviceProjectNumber": The -// Shared VPC service project id or service project number for which aggregated -// list request is invoked for subnetworks list-usable api. -func (c *NetworkEndpointGroupsAggregatedListCall) ServiceProjectNumber(serviceProjectNumber int64) *NetworkEndpointGroupsAggregatedListCall { +// Shared VPC service project id or service project number for which +// aggregated list request is invoked for subnetworks list-usable api. +func (c *NodeGroupsAggregatedListCall) ServiceProjectNumber(serviceProjectNumber int64) *NodeGroupsAggregatedListCall { c.urlParams_.Set("serviceProjectNumber", fmt.Sprint(serviceProjectNumber)) return c } @@ -44125,7 +66802,7 @@ func (c *NetworkEndpointGroupsAggregatedListCall) ServiceProjectNumber(servicePr // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *NetworkEndpointGroupsAggregatedListCall) Fields(s ...googleapi.Field) *NetworkEndpointGroupsAggregatedListCall { +func (c *NodeGroupsAggregatedListCall) Fields(s ...googleapi.Field) *NodeGroupsAggregatedListCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } @@ -44133,37 +66810,36 @@ func (c *NetworkEndpointGroupsAggregatedListCall) Fields(s ...googleapi.Field) * // IfNoneMatch sets an 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. -func (c *NetworkEndpointGroupsAggregatedListCall) IfNoneMatch(entityTag string) *NetworkEndpointGroupsAggregatedListCall { +func (c *NodeGroupsAggregatedListCall) IfNoneMatch(entityTag string) *NodeGroupsAggregatedListCall { c.ifNoneMatch_ = entityTag return c } // Context sets the context to be used in this call's Do method. -func (c *NetworkEndpointGroupsAggregatedListCall) Context(ctx context.Context) *NetworkEndpointGroupsAggregatedListCall { +func (c *NodeGroupsAggregatedListCall) Context(ctx context.Context) *NodeGroupsAggregatedListCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *NetworkEndpointGroupsAggregatedListCall) Header() http.Header { +func (c *NodeGroupsAggregatedListCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *NetworkEndpointGroupsAggregatedListCall) doRequest(alt string) (*http.Response, error) { +func (c *NodeGroupsAggregatedListCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) if c.ifNoneMatch_ != "" { reqHeaders.Set("If-None-Match", c.ifNoneMatch_) } - var body io.Reader = nil c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/aggregated/networkEndpointGroups") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/aggregated/nodeGroups") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("GET", urls, body) + req, err := http.NewRequest("GET", urls, nil) if err != nil { return nil, err } @@ -44171,16 +66847,17 @@ func (c *NetworkEndpointGroupsAggregatedListCall) doRequest(alt string) (*http.R googleapi.Expand(req.URL, map[string]string{ "project": c.project, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.nodeGroups.aggregatedList", "request", internallog.HTTPRequest(req, nil)) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.networkEndpointGroups.aggregatedList" call. +// Do executes the "compute.nodeGroups.aggregatedList" call. // Any non-2xx status code is an error. Response headers are in either -// *NetworkEndpointGroupAggregatedList.ServerResponse.Header or (if a response -// was returned at all) in error.(*googleapi.Error).Header. Use +// *NodeGroupAggregatedList.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 *NetworkEndpointGroupsAggregatedListCall) Do(opts ...googleapi.CallOption) (*NetworkEndpointGroupAggregatedList, error) { +func (c *NodeGroupsAggregatedListCall) Do(opts ...googleapi.CallOption) (*NodeGroupAggregatedList, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -44199,23 +66876,25 @@ func (c *NetworkEndpointGroupsAggregatedListCall) Do(opts ...googleapi.CallOptio if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } - ret := &NetworkEndpointGroupAggregatedList{ + ret := &NodeGroupAggregatedList{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.nodeGroups.aggregatedList", "response", internallog.HTTPResponse(res, b)) return ret, nil } // 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 *NetworkEndpointGroupsAggregatedListCall) Pages(ctx context.Context, f func(*NetworkEndpointGroupAggregatedList) error) error { +func (c *NodeGroupsAggregatedListCall) Pages(ctx context.Context, f func(*NodeGroupAggregatedList) error) error { c.ctx_ = ctx defer c.PageToken(c.urlParams_.Get("pageToken")) for { @@ -44233,45 +66912,47 @@ func (c *NetworkEndpointGroupsAggregatedListCall) Pages(ctx context.Context, f f } } -type NetworkEndpointGroupsAttachNetworkEndpointsCall struct { - s *Service - project string - zone string - networkEndpointGroup string - networkendpointgroupsattachendpointsrequest *NetworkEndpointGroupsAttachEndpointsRequest - urlParams_ gensupport.URLParams - ctx_ context.Context - header_ http.Header +type NodeGroupsDeleteCall struct { + s *Service + project string + zone string + nodeGroup string + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header } -// AttachNetworkEndpoints: Attach a list of network endpoints to the specified -// network endpoint group. +// Delete: Deletes the specified NodeGroup resource. // -// - networkEndpointGroup: The name of the network endpoint group where you are -// attaching network endpoints to. It should comply with RFC1035. -// - project: Project ID for this request. -// - zone: The name of the zone where the network endpoint group is located. It -// should comply with RFC1035. -func (r *NetworkEndpointGroupsService) AttachNetworkEndpoints(project string, zone string, networkEndpointGroup string, networkendpointgroupsattachendpointsrequest *NetworkEndpointGroupsAttachEndpointsRequest) *NetworkEndpointGroupsAttachNetworkEndpointsCall { - c := &NetworkEndpointGroupsAttachNetworkEndpointsCall{s: r.s, urlParams_: make(gensupport.URLParams)} +// - nodeGroup: Name of the NodeGroup resource to delete. +// - project: Project ID for this request. +// - zone: The name of the zone for this request. +func (r *NodeGroupsService) Delete(project string, zone string, nodeGroup string) *NodeGroupsDeleteCall { + c := &NodeGroupsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project c.zone = zone - c.networkEndpointGroup = networkEndpointGroup - c.networkendpointgroupsattachendpointsrequest = networkendpointgroupsattachendpointsrequest + c.nodeGroup = nodeGroup 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 *NetworkEndpointGroupsAttachNetworkEndpointsCall) RequestId(requestId string) *NetworkEndpointGroupsAttachNetworkEndpointsCall { +// 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 *NodeGroupsDeleteCall) RequestId(requestId string) *NodeGroupsDeleteCall { c.urlParams_.Set("requestId", requestId) return c } @@ -44279,56 +66960,52 @@ func (c *NetworkEndpointGroupsAttachNetworkEndpointsCall) RequestId(requestId st // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *NetworkEndpointGroupsAttachNetworkEndpointsCall) Fields(s ...googleapi.Field) *NetworkEndpointGroupsAttachNetworkEndpointsCall { +func (c *NodeGroupsDeleteCall) Fields(s ...googleapi.Field) *NodeGroupsDeleteCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } // Context sets the context to be used in this call's Do method. -func (c *NetworkEndpointGroupsAttachNetworkEndpointsCall) Context(ctx context.Context) *NetworkEndpointGroupsAttachNetworkEndpointsCall { +func (c *NodeGroupsDeleteCall) Context(ctx context.Context) *NodeGroupsDeleteCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *NetworkEndpointGroupsAttachNetworkEndpointsCall) Header() http.Header { +func (c *NodeGroupsDeleteCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *NetworkEndpointGroupsAttachNetworkEndpointsCall) doRequest(alt string) (*http.Response, error) { - reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) - var body io.Reader = nil - body, err := googleapi.WithoutDataWrapper.JSONReader(c.networkendpointgroupsattachendpointsrequest) - if err != nil { - return nil, err - } +func (c *NodeGroupsDeleteCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/networkEndpointGroups/{networkEndpointGroup}/attachNetworkEndpoints") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/nodeGroups/{nodeGroup}") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("POST", urls, body) + req, err := http.NewRequest("DELETE", urls, nil) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "zone": c.zone, - "networkEndpointGroup": c.networkEndpointGroup, + "project": c.project, + "zone": c.zone, + "nodeGroup": c.nodeGroup, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.nodeGroups.delete", "request", internallog.HTTPRequest(req, nil)) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.networkEndpointGroups.attachNetworkEndpoints" call. +// Do executes the "compute.nodeGroups.delete" call. // 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 *NetworkEndpointGroupsAttachNetworkEndpointsCall) Do(opts ...googleapi.CallOption) (*Operation, error) { +func (c *NodeGroupsDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -44354,51 +67031,57 @@ func (c *NetworkEndpointGroupsAttachNetworkEndpointsCall) Do(opts ...googleapi.C }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.nodeGroups.delete", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type NetworkEndpointGroupsDeleteCall struct { - s *Service - project string - zone string - networkEndpointGroup string - urlParams_ gensupport.URLParams - ctx_ context.Context - header_ http.Header +type NodeGroupsDeleteNodesCall struct { + s *Service + project string + zone string + nodeGroup string + nodegroupsdeletenodesrequest *NodeGroupsDeleteNodesRequest + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header } -// Delete: Deletes the specified network endpoint group. The network endpoints -// in the NEG and the VM instances they belong to are not terminated when the -// NEG is deleted. Note that the NEG cannot be deleted if there are backend -// services referencing it. +// DeleteNodes: Deletes specified nodes from the node group. // -// - networkEndpointGroup: The name of the network endpoint group to delete. It -// should comply with RFC1035. -// - project: Project ID for this request. -// - zone: The name of the zone where the network endpoint group is located. It -// should comply with RFC1035. -func (r *NetworkEndpointGroupsService) Delete(project string, zone string, networkEndpointGroup string) *NetworkEndpointGroupsDeleteCall { - c := &NetworkEndpointGroupsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)} +// - nodeGroup: Name of the NodeGroup resource whose nodes will be deleted. +// - project: Project ID for this request. +// - zone: The name of the zone for this request. +func (r *NodeGroupsService) DeleteNodes(project string, zone string, nodeGroup string, nodegroupsdeletenodesrequest *NodeGroupsDeleteNodesRequest) *NodeGroupsDeleteNodesCall { + c := &NodeGroupsDeleteNodesCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project c.zone = zone - c.networkEndpointGroup = networkEndpointGroup + c.nodeGroup = nodeGroup + c.nodegroupsdeletenodesrequest = nodegroupsdeletenodesrequest 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 *NetworkEndpointGroupsDeleteCall) RequestId(requestId string) *NetworkEndpointGroupsDeleteCall { +// 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 *NodeGroupsDeleteNodesCall) RequestId(requestId string) *NodeGroupsDeleteNodesCall { c.urlParams_.Set("requestId", requestId) return c } @@ -44406,52 +67089,56 @@ func (c *NetworkEndpointGroupsDeleteCall) RequestId(requestId string) *NetworkEn // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *NetworkEndpointGroupsDeleteCall) Fields(s ...googleapi.Field) *NetworkEndpointGroupsDeleteCall { +func (c *NodeGroupsDeleteNodesCall) Fields(s ...googleapi.Field) *NodeGroupsDeleteNodesCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } // Context sets the context to be used in this call's Do method. -func (c *NetworkEndpointGroupsDeleteCall) Context(ctx context.Context) *NetworkEndpointGroupsDeleteCall { +func (c *NodeGroupsDeleteNodesCall) Context(ctx context.Context) *NodeGroupsDeleteNodesCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *NetworkEndpointGroupsDeleteCall) Header() http.Header { +func (c *NodeGroupsDeleteNodesCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *NetworkEndpointGroupsDeleteCall) doRequest(alt string) (*http.Response, error) { - reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) - var body io.Reader = nil +func (c *NodeGroupsDeleteNodesCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) + body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.nodegroupsdeletenodesrequest) + if err != nil { + return nil, err + } c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/networkEndpointGroups/{networkEndpointGroup}") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/nodeGroups/{nodeGroup}/deleteNodes") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("DELETE", urls, body) + req, err := http.NewRequest("POST", urls, body) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "zone": c.zone, - "networkEndpointGroup": c.networkEndpointGroup, + "project": c.project, + "zone": c.zone, + "nodeGroup": c.nodeGroup, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.nodeGroups.deleteNodes", "request", internallog.HTTPRequest(req, body.Bytes())) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.networkEndpointGroups.delete" call. +// Do executes the "compute.nodeGroups.deleteNodes" call. // 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 *NetworkEndpointGroupsDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) { +func (c *NodeGroupsDeleteNodesCall) Do(opts ...googleapi.CallOption) (*Operation, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -44477,108 +67164,102 @@ func (c *NetworkEndpointGroupsDeleteCall) Do(opts ...googleapi.CallOption) (*Ope }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.nodeGroups.deleteNodes", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type NetworkEndpointGroupsDetachNetworkEndpointsCall struct { - s *Service - project string - zone string - networkEndpointGroup string - networkendpointgroupsdetachendpointsrequest *NetworkEndpointGroupsDetachEndpointsRequest - urlParams_ gensupport.URLParams - ctx_ context.Context - header_ http.Header +type NodeGroupsGetCall struct { + s *Service + project string + zone string + nodeGroup string + urlParams_ gensupport.URLParams + ifNoneMatch_ string + ctx_ context.Context + header_ http.Header } -// DetachNetworkEndpoints: Detach a list of network endpoints from the -// specified network endpoint group. +// Get: Returns the specified NodeGroup. Get a list of available NodeGroups +// by making a list() request. +// Note: the "nodes" field should not be used. Use +// nodeGroups.listNodes +// instead. // -// - networkEndpointGroup: The name of the network endpoint group where you are -// removing network endpoints. It should comply with RFC1035. -// - project: Project ID for this request. -// - zone: The name of the zone where the network endpoint group is located. It -// should comply with RFC1035. -func (r *NetworkEndpointGroupsService) DetachNetworkEndpoints(project string, zone string, networkEndpointGroup string, networkendpointgroupsdetachendpointsrequest *NetworkEndpointGroupsDetachEndpointsRequest) *NetworkEndpointGroupsDetachNetworkEndpointsCall { - c := &NetworkEndpointGroupsDetachNetworkEndpointsCall{s: r.s, urlParams_: make(gensupport.URLParams)} +// - nodeGroup: Name of the node group to return. +// - project: Project ID for this request. +// - zone: The name of the zone for this request. +func (r *NodeGroupsService) Get(project string, zone string, nodeGroup string) *NodeGroupsGetCall { + c := &NodeGroupsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project c.zone = zone - c.networkEndpointGroup = networkEndpointGroup - c.networkendpointgroupsdetachendpointsrequest = networkendpointgroupsdetachendpointsrequest - 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 *NetworkEndpointGroupsDetachNetworkEndpointsCall) RequestId(requestId string) *NetworkEndpointGroupsDetachNetworkEndpointsCall { - c.urlParams_.Set("requestId", requestId) + c.nodeGroup = nodeGroup return c } // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *NetworkEndpointGroupsDetachNetworkEndpointsCall) Fields(s ...googleapi.Field) *NetworkEndpointGroupsDetachNetworkEndpointsCall { +func (c *NodeGroupsGetCall) Fields(s ...googleapi.Field) *NodeGroupsGetCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } +// IfNoneMatch sets an 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. +func (c *NodeGroupsGetCall) IfNoneMatch(entityTag string) *NodeGroupsGetCall { + c.ifNoneMatch_ = entityTag + return c +} + // Context sets the context to be used in this call's Do method. -func (c *NetworkEndpointGroupsDetachNetworkEndpointsCall) Context(ctx context.Context) *NetworkEndpointGroupsDetachNetworkEndpointsCall { +func (c *NodeGroupsGetCall) Context(ctx context.Context) *NodeGroupsGetCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *NetworkEndpointGroupsDetachNetworkEndpointsCall) Header() http.Header { +func (c *NodeGroupsGetCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *NetworkEndpointGroupsDetachNetworkEndpointsCall) doRequest(alt string) (*http.Response, error) { - reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) - var body io.Reader = nil - body, err := googleapi.WithoutDataWrapper.JSONReader(c.networkendpointgroupsdetachendpointsrequest) - if err != nil { - return nil, err +func (c *NodeGroupsGetCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) + if c.ifNoneMatch_ != "" { + reqHeaders.Set("If-None-Match", c.ifNoneMatch_) } c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/networkEndpointGroups/{networkEndpointGroup}/detachNetworkEndpoints") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/nodeGroups/{nodeGroup}") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("POST", urls, body) + req, err := http.NewRequest("GET", urls, nil) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "zone": c.zone, - "networkEndpointGroup": c.networkEndpointGroup, + "project": c.project, + "zone": c.zone, + "nodeGroup": c.nodeGroup, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.nodeGroups.get", "request", internallog.HTTPRequest(req, nil)) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.networkEndpointGroups.detachNetworkEndpoints" call. +// Do executes the "compute.nodeGroups.get" call. // 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 +// *NodeGroup.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 *NetworkEndpointGroupsDetachNetworkEndpointsCall) Do(opts ...googleapi.CallOption) (*Operation, error) { +func (c *NodeGroupsGetCall) Do(opts ...googleapi.CallOption) (*NodeGroup, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -44597,49 +67278,58 @@ func (c *NetworkEndpointGroupsDetachNetworkEndpointsCall) Do(opts ...googleapi.C if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } - ret := &Operation{ + ret := &NodeGroup{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.nodeGroups.get", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type NetworkEndpointGroupsGetCall struct { - s *Service - project string - zone string - networkEndpointGroup string - urlParams_ gensupport.URLParams - ifNoneMatch_ string - ctx_ context.Context - header_ http.Header +type NodeGroupsGetIamPolicyCall struct { + s *Service + project string + zone string + resource string + urlParams_ gensupport.URLParams + ifNoneMatch_ string + ctx_ context.Context + header_ http.Header } -// Get: Returns the specified network endpoint group. +// GetIamPolicy: Gets the access control policy for a resource. May be empty if +// no such +// policy or resource exists. // -// - networkEndpointGroup: The name of the network endpoint group. It should -// comply with RFC1035. -// - project: Project ID for this request. -// - zone: The name of the zone where the network endpoint group is located. It -// should comply with RFC1035. -func (r *NetworkEndpointGroupsService) Get(project string, zone string, networkEndpointGroup string) *NetworkEndpointGroupsGetCall { - c := &NetworkEndpointGroupsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)} +// - project: Project ID for this request. +// - resource: Name or id of the resource for this request. +// - zone: The name of the zone for this request. +func (r *NodeGroupsService) GetIamPolicy(project string, zone string, resource string) *NodeGroupsGetIamPolicyCall { + c := &NodeGroupsGetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project c.zone = zone - c.networkEndpointGroup = networkEndpointGroup + c.resource = resource + return c +} + +// OptionsRequestedPolicyVersion sets the optional parameter +// "optionsRequestedPolicyVersion": Requested IAM Policy version. +func (c *NodeGroupsGetIamPolicyCall) OptionsRequestedPolicyVersion(optionsRequestedPolicyVersion int64) *NodeGroupsGetIamPolicyCall { + c.urlParams_.Set("optionsRequestedPolicyVersion", fmt.Sprint(optionsRequestedPolicyVersion)) return c } // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *NetworkEndpointGroupsGetCall) Fields(s ...googleapi.Field) *NetworkEndpointGroupsGetCall { +func (c *NodeGroupsGetIamPolicyCall) Fields(s ...googleapi.Field) *NodeGroupsGetIamPolicyCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } @@ -44647,56 +67337,55 @@ func (c *NetworkEndpointGroupsGetCall) Fields(s ...googleapi.Field) *NetworkEndp // IfNoneMatch sets an 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. -func (c *NetworkEndpointGroupsGetCall) IfNoneMatch(entityTag string) *NetworkEndpointGroupsGetCall { +func (c *NodeGroupsGetIamPolicyCall) IfNoneMatch(entityTag string) *NodeGroupsGetIamPolicyCall { c.ifNoneMatch_ = entityTag return c } // Context sets the context to be used in this call's Do method. -func (c *NetworkEndpointGroupsGetCall) Context(ctx context.Context) *NetworkEndpointGroupsGetCall { +func (c *NodeGroupsGetIamPolicyCall) Context(ctx context.Context) *NodeGroupsGetIamPolicyCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *NetworkEndpointGroupsGetCall) Header() http.Header { +func (c *NodeGroupsGetIamPolicyCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *NetworkEndpointGroupsGetCall) doRequest(alt string) (*http.Response, error) { +func (c *NodeGroupsGetIamPolicyCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) if c.ifNoneMatch_ != "" { reqHeaders.Set("If-None-Match", c.ifNoneMatch_) } - var body io.Reader = nil c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/networkEndpointGroups/{networkEndpointGroup}") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/nodeGroups/{resource}/getIamPolicy") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("GET", urls, body) + req, err := http.NewRequest("GET", urls, nil) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "zone": c.zone, - "networkEndpointGroup": c.networkEndpointGroup, + "project": c.project, + "zone": c.zone, + "resource": c.resource, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.nodeGroups.getIamPolicy", "request", internallog.HTTPRequest(req, nil)) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.networkEndpointGroups.get" call. +// Do executes the "compute.nodeGroups.getIamPolicy" call. // Any non-2xx status code is an error. Response headers are in either -// *NetworkEndpointGroup.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 *NetworkEndpointGroupsGetCall) Do(opts ...googleapi.CallOption) (*NetworkEndpointGroup, error) { +// *Policy.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 *NodeGroupsGetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -44715,54 +67404,65 @@ func (c *NetworkEndpointGroupsGetCall) Do(opts ...googleapi.CallOption) (*Networ if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } - ret := &NetworkEndpointGroup{ + ret := &Policy{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err - } - return ret, nil -} - -type NetworkEndpointGroupsInsertCall struct { - s *Service - project string - zone string - networkendpointgroup *NetworkEndpointGroup - urlParams_ gensupport.URLParams - ctx_ context.Context - header_ http.Header + } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.nodeGroups.getIamPolicy", "response", internallog.HTTPResponse(res, b)) + return ret, nil } -// Insert: Creates a network endpoint group in the specified project using the -// parameters that are included in the request. +type NodeGroupsInsertCall struct { + s *Service + project string + zone string + nodegroup *NodeGroup + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header +} + +// Insert: Creates a NodeGroup resource in the specified project using the +// data +// included in the request. // -// - project: Project ID for this request. -// - zone: The name of the zone where you want to create the network endpoint -// group. It should comply with RFC1035. -func (r *NetworkEndpointGroupsService) Insert(project string, zone string, networkendpointgroup *NetworkEndpointGroup) *NetworkEndpointGroupsInsertCall { - c := &NetworkEndpointGroupsInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)} +// - initialNodeCount: Initial count of nodes in the node group. +// - project: Project ID for this request. +// - zone: The name of the zone for this request. +func (r *NodeGroupsService) Insert(project string, zone string, initialNodeCount int64, nodegroup *NodeGroup) *NodeGroupsInsertCall { + c := &NodeGroupsInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project c.zone = zone - c.networkendpointgroup = networkendpointgroup + c.urlParams_.Set("initialNodeCount", fmt.Sprint(initialNodeCount)) + c.nodegroup = nodegroup 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 *NetworkEndpointGroupsInsertCall) RequestId(requestId string) *NetworkEndpointGroupsInsertCall { +// 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 *NodeGroupsInsertCall) RequestId(requestId string) *NodeGroupsInsertCall { c.urlParams_.Set("requestId", requestId) return c } @@ -44770,36 +67470,35 @@ func (c *NetworkEndpointGroupsInsertCall) RequestId(requestId string) *NetworkEn // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *NetworkEndpointGroupsInsertCall) Fields(s ...googleapi.Field) *NetworkEndpointGroupsInsertCall { +func (c *NodeGroupsInsertCall) Fields(s ...googleapi.Field) *NodeGroupsInsertCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } // Context sets the context to be used in this call's Do method. -func (c *NetworkEndpointGroupsInsertCall) Context(ctx context.Context) *NetworkEndpointGroupsInsertCall { +func (c *NodeGroupsInsertCall) Context(ctx context.Context) *NodeGroupsInsertCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *NetworkEndpointGroupsInsertCall) Header() http.Header { +func (c *NodeGroupsInsertCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *NetworkEndpointGroupsInsertCall) doRequest(alt string) (*http.Response, error) { +func (c *NodeGroupsInsertCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) - var body io.Reader = nil - body, err := googleapi.WithoutDataWrapper.JSONReader(c.networkendpointgroup) + body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.nodegroup) if err != nil { return nil, err } c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/networkEndpointGroups") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/nodeGroups") urls += "?" + c.urlParams_.Encode() req, err := http.NewRequest("POST", urls, body) if err != nil { @@ -44810,15 +67509,16 @@ func (c *NetworkEndpointGroupsInsertCall) doRequest(alt string) (*http.Response, "project": c.project, "zone": c.zone, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.nodeGroups.insert", "request", internallog.HTTPRequest(req, body.Bytes())) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.networkEndpointGroups.insert" call. +// Do executes the "compute.nodeGroups.insert" call. // 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 *NetworkEndpointGroupsInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) { +func (c *NodeGroupsInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -44844,13 +67544,15 @@ func (c *NetworkEndpointGroupsInsertCall) Do(opts ...googleapi.CallOption) (*Ope }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.nodeGroups.insert", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type NetworkEndpointGroupsListCall struct { +type NodeGroupsListCall struct { s *Service project string zone string @@ -44860,93 +67562,143 @@ type NetworkEndpointGroupsListCall struct { header_ http.Header } -// List: Retrieves the list of network endpoint groups that are located in the -// specified project and zone. +// List: Retrieves a list of node groups available to the specified +// project. +// Note: use nodeGroups.listNodes for more details about each group. // -// - project: Project ID for this request. -// - zone: The name of the zone where the network endpoint group is located. It -// should comply with RFC1035. -func (r *NetworkEndpointGroupsService) List(project string, zone string) *NetworkEndpointGroupsListCall { - c := &NetworkEndpointGroupsListCall{s: r.s, urlParams_: make(gensupport.URLParams)} +// - project: Project ID for this request. +// - zone: The name of the zone for this request. +func (r *NodeGroupsService) List(project string, zone string) *NodeGroupsListCall { + c := &NodeGroupsListCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project c.zone = zone return c } // Filter sets the optional parameter "filter": A filter expression that -// filters resources listed in the response. Most Compute resources support two -// types of filter expressions: expressions that support regular expressions -// and expressions that follow API improvement proposal AIP-160. These two -// types of filter expressions cannot be mixed in one request. If you want to -// use AIP-160, your expression must specify the field name, an operator, and -// the value that you want to use for filtering. The value must be a string, a -// number, or a boolean. The 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`. The `:*` comparison can be used to test whether a key has -// been defined. For example, to find all objects with `owner` label use: ``` -// labels.owner:* ``` 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) ``` If you want to use a regular -// expression, use the `eq` (equal) or `ne` (not equal) operator against a -// single un-parenthesized expression with or without quotes or against -// multiple parenthesized expressions. Examples: `fieldname eq unquoted -// literal` `fieldname eq 'single quoted literal'` `fieldname eq "double quoted -// literal" `(fieldname1 eq literal) (fieldname2 ne "literal")` The literal -// value is interpreted as a regular expression using Google RE2 library -// syntax. The literal value must match the entire field. For example, to -// filter for instances that do not end with name "instance", you would use -// `name ne .*instance`. You cannot combine constraints on multiple fields -// using regular expressions. -func (c *NetworkEndpointGroupsListCall) Filter(filter string) *NetworkEndpointGroupsListCall { +// filters resources listed in the response. Most +// Compute resources support two types of filter expressions: +// expressions that support regular expressions and expressions that follow +// API improvement proposal AIP-160. +// These two types of filter expressions cannot be mixed in one request. +// +// If you want to use AIP-160, your expression must specify the field name, +// an +// operator, and the value that you want to use for filtering. The value +// must be a string, a number, or a boolean. The 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`. +// +// The `:*` comparison can be used to test whether a key has been defined. +// For example, to find all objects with `owner` label +// use: +// ``` +// labels.owner:* +// ``` +// +// 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 onresource 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) +// ``` +// +// If you want to use a regular expression, use the `eq` (equal) or `ne` +// (not equal) operator against a single un-parenthesized expression with +// or +// without quotes or against multiple parenthesized expressions. +// Examples: +// +// `fieldname eq unquoted literal` +// `fieldname eq 'single quoted literal'` +// `fieldname eq "double quoted literal" +// `(fieldname1 eq literal) (fieldname2 ne "literal")` +// +// The literal value is interpreted as a regular expression using GoogleRE2 +// library syntax. +// The literal value must match the entire field. +// +// For example, to filter for instances that do not end with name +// "instance", +// you would use `name ne .*instance`. +// +// You cannot combine constraints on multiple fields using regular +// expressions. +func (c *NodeGroupsListCall) Filter(filter string) *NodeGroupsListCall { 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 *NetworkEndpointGroupsListCall) MaxResults(maxResults int64) *NetworkEndpointGroupsListCall { +// 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 *NodeGroupsListCall) MaxResults(maxResults int64) *NodeGroupsListCall { 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 *NetworkEndpointGroupsListCall) OrderBy(orderBy string) *NetworkEndpointGroupsListCall { +// 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 *NodeGroupsListCall) OrderBy(orderBy string) *NodeGroupsListCall { 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 *NetworkEndpointGroupsListCall) PageToken(pageToken string) *NetworkEndpointGroupsListCall { +// use. Set `pageToken` to the +// `nextPageToken` returned by a previous list request to get +// the next page of results. +func (c *NodeGroupsListCall) PageToken(pageToken string) *NodeGroupsListCall { c.urlParams_.Set("pageToken", pageToken) return c } // ReturnPartialSuccess sets the optional parameter "returnPartialSuccess": -// Opt-in for partial success behavior which provides partial results in case -// of failure. The default value is false. For example, when partial success -// behavior is enabled, aggregatedList for a single zone scope either returns -// all resources in the zone or no resources, with an error code. -func (c *NetworkEndpointGroupsListCall) ReturnPartialSuccess(returnPartialSuccess bool) *NetworkEndpointGroupsListCall { +// Opt-in for partial success behavior which provides partial results in +// case +// of failure. The default value is false. +// +// For example, when partial success behavior is enabled, aggregatedList for +// a +// single zone scope either returns all resources in the zone or no +// resources, +// with an error code. +func (c *NodeGroupsListCall) ReturnPartialSuccess(returnPartialSuccess bool) *NodeGroupsListCall { c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess)) return c } @@ -44954,7 +67706,7 @@ func (c *NetworkEndpointGroupsListCall) ReturnPartialSuccess(returnPartialSucces // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *NetworkEndpointGroupsListCall) Fields(s ...googleapi.Field) *NetworkEndpointGroupsListCall { +func (c *NodeGroupsListCall) Fields(s ...googleapi.Field) *NodeGroupsListCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } @@ -44962,37 +67714,36 @@ func (c *NetworkEndpointGroupsListCall) Fields(s ...googleapi.Field) *NetworkEnd // IfNoneMatch sets an 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. -func (c *NetworkEndpointGroupsListCall) IfNoneMatch(entityTag string) *NetworkEndpointGroupsListCall { +func (c *NodeGroupsListCall) IfNoneMatch(entityTag string) *NodeGroupsListCall { c.ifNoneMatch_ = entityTag return c } // Context sets the context to be used in this call's Do method. -func (c *NetworkEndpointGroupsListCall) Context(ctx context.Context) *NetworkEndpointGroupsListCall { +func (c *NodeGroupsListCall) Context(ctx context.Context) *NodeGroupsListCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *NetworkEndpointGroupsListCall) Header() http.Header { +func (c *NodeGroupsListCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *NetworkEndpointGroupsListCall) doRequest(alt string) (*http.Response, error) { +func (c *NodeGroupsListCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) if c.ifNoneMatch_ != "" { reqHeaders.Set("If-None-Match", c.ifNoneMatch_) } - var body io.Reader = nil c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/networkEndpointGroups") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/nodeGroups") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("GET", urls, body) + req, err := http.NewRequest("GET", urls, nil) if err != nil { return nil, err } @@ -45001,16 +67752,16 @@ func (c *NetworkEndpointGroupsListCall) doRequest(alt string) (*http.Response, e "project": c.project, "zone": c.zone, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.nodeGroups.list", "request", internallog.HTTPRequest(req, nil)) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.networkEndpointGroups.list" call. +// Do executes the "compute.nodeGroups.list" call. // Any non-2xx status code is an error. Response headers are in either -// *NetworkEndpointGroupList.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 *NetworkEndpointGroupsListCall) Do(opts ...googleapi.CallOption) (*NetworkEndpointGroupList, error) { +// *NodeGroupList.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 *NodeGroupsListCall) Do(opts ...googleapi.CallOption) (*NodeGroupList, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -45029,23 +67780,25 @@ func (c *NetworkEndpointGroupsListCall) Do(opts ...googleapi.CallOption) (*Netwo if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } - ret := &NetworkEndpointGroupList{ + ret := &NodeGroupList{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.nodeGroups.list", "response", internallog.HTTPResponse(res, b)) return ret, nil } // 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 *NetworkEndpointGroupsListCall) Pages(ctx context.Context, f func(*NetworkEndpointGroupList) error) error { +func (c *NodeGroupsListCall) Pages(ctx context.Context, f func(*NodeGroupList) error) error { c.ctx_ = ctx defer c.PageToken(c.urlParams_.Get("pageToken")) for { @@ -45063,109 +67816,153 @@ func (c *NetworkEndpointGroupsListCall) Pages(ctx context.Context, f func(*Netwo } } -type NetworkEndpointGroupsListNetworkEndpointsCall struct { - s *Service - project string - zone string - networkEndpointGroup string - networkendpointgroupslistendpointsrequest *NetworkEndpointGroupsListEndpointsRequest - urlParams_ gensupport.URLParams - ctx_ context.Context - header_ http.Header +type NodeGroupsListNodesCall struct { + s *Service + project string + zone string + nodeGroup string + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header } -// ListNetworkEndpoints: Lists the network endpoints in the specified network -// endpoint group. +// ListNodes: Lists nodes in the node group. // -// - networkEndpointGroup: The name of the network endpoint group from which -// you want to generate a list of included network endpoints. It should -// comply with RFC1035. -// - project: Project ID for this request. -// - zone: The name of the zone where the network endpoint group is located. It -// should comply with RFC1035. -func (r *NetworkEndpointGroupsService) ListNetworkEndpoints(project string, zone string, networkEndpointGroup string, networkendpointgroupslistendpointsrequest *NetworkEndpointGroupsListEndpointsRequest) *NetworkEndpointGroupsListNetworkEndpointsCall { - c := &NetworkEndpointGroupsListNetworkEndpointsCall{s: r.s, urlParams_: make(gensupport.URLParams)} +// - nodeGroup: Name of the NodeGroup resource whose nodes you want to list. +// - project: Project ID for this request. +// - zone: The name of the zone for this request. +func (r *NodeGroupsService) ListNodes(project string, zone string, nodeGroup string) *NodeGroupsListNodesCall { + c := &NodeGroupsListNodesCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project c.zone = zone - c.networkEndpointGroup = networkEndpointGroup - c.networkendpointgroupslistendpointsrequest = networkendpointgroupslistendpointsrequest + c.nodeGroup = nodeGroup return c } // Filter sets the optional parameter "filter": A filter expression that -// filters resources listed in the response. Most Compute resources support two -// types of filter expressions: expressions that support regular expressions -// and expressions that follow API improvement proposal AIP-160. These two -// types of filter expressions cannot be mixed in one request. If you want to -// use AIP-160, your expression must specify the field name, an operator, and -// the value that you want to use for filtering. The value must be a string, a -// number, or a boolean. The 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`. The `:*` comparison can be used to test whether a key has -// been defined. For example, to find all objects with `owner` label use: ``` -// labels.owner:* ``` 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) ``` If you want to use a regular -// expression, use the `eq` (equal) or `ne` (not equal) operator against a -// single un-parenthesized expression with or without quotes or against -// multiple parenthesized expressions. Examples: `fieldname eq unquoted -// literal` `fieldname eq 'single quoted literal'` `fieldname eq "double quoted -// literal" `(fieldname1 eq literal) (fieldname2 ne "literal")` The literal -// value is interpreted as a regular expression using Google RE2 library -// syntax. The literal value must match the entire field. For example, to -// filter for instances that do not end with name "instance", you would use -// `name ne .*instance`. You cannot combine constraints on multiple fields -// using regular expressions. -func (c *NetworkEndpointGroupsListNetworkEndpointsCall) Filter(filter string) *NetworkEndpointGroupsListNetworkEndpointsCall { +// filters resources listed in the response. Most +// Compute resources support two types of filter expressions: +// expressions that support regular expressions and expressions that follow +// API improvement proposal AIP-160. +// These two types of filter expressions cannot be mixed in one request. +// +// If you want to use AIP-160, your expression must specify the field name, +// an +// operator, and the value that you want to use for filtering. The value +// must be a string, a number, or a boolean. The 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`. +// +// The `:*` comparison can be used to test whether a key has been defined. +// For example, to find all objects with `owner` label +// use: +// ``` +// labels.owner:* +// ``` +// +// 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 onresource 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) +// ``` +// +// If you want to use a regular expression, use the `eq` (equal) or `ne` +// (not equal) operator against a single un-parenthesized expression with +// or +// without quotes or against multiple parenthesized expressions. +// Examples: +// +// `fieldname eq unquoted literal` +// `fieldname eq 'single quoted literal'` +// `fieldname eq "double quoted literal" +// `(fieldname1 eq literal) (fieldname2 ne "literal")` +// +// The literal value is interpreted as a regular expression using GoogleRE2 +// library syntax. +// The literal value must match the entire field. +// +// For example, to filter for instances that do not end with name +// "instance", +// you would use `name ne .*instance`. +// +// You cannot combine constraints on multiple fields using regular +// expressions. +func (c *NodeGroupsListNodesCall) Filter(filter string) *NodeGroupsListNodesCall { 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 *NetworkEndpointGroupsListNetworkEndpointsCall) MaxResults(maxResults int64) *NetworkEndpointGroupsListNetworkEndpointsCall { +// 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 *NodeGroupsListNodesCall) MaxResults(maxResults int64) *NodeGroupsListNodesCall { 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 *NetworkEndpointGroupsListNetworkEndpointsCall) OrderBy(orderBy string) *NetworkEndpointGroupsListNetworkEndpointsCall { +// 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 *NodeGroupsListNodesCall) OrderBy(orderBy string) *NodeGroupsListNodesCall { 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 *NetworkEndpointGroupsListNetworkEndpointsCall) PageToken(pageToken string) *NetworkEndpointGroupsListNetworkEndpointsCall { +// use. Set `pageToken` to the +// `nextPageToken` returned by a previous list request to get +// the next page of results. +func (c *NodeGroupsListNodesCall) PageToken(pageToken string) *NodeGroupsListNodesCall { c.urlParams_.Set("pageToken", pageToken) return c } // ReturnPartialSuccess sets the optional parameter "returnPartialSuccess": -// Opt-in for partial success behavior which provides partial results in case -// of failure. The default value is false. For example, when partial success -// behavior is enabled, aggregatedList for a single zone scope either returns -// all resources in the zone or no resources, with an error code. -func (c *NetworkEndpointGroupsListNetworkEndpointsCall) ReturnPartialSuccess(returnPartialSuccess bool) *NetworkEndpointGroupsListNetworkEndpointsCall { +// Opt-in for partial success behavior which provides partial results in +// case +// of failure. The default value is false. +// +// For example, when partial success behavior is enabled, aggregatedList for +// a +// single zone scope either returns all resources in the zone or no +// resources, +// with an error code. +func (c *NodeGroupsListNodesCall) ReturnPartialSuccess(returnPartialSuccess bool) *NodeGroupsListNodesCall { c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess)) return c } @@ -45173,57 +67970,53 @@ func (c *NetworkEndpointGroupsListNetworkEndpointsCall) ReturnPartialSuccess(ret // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *NetworkEndpointGroupsListNetworkEndpointsCall) Fields(s ...googleapi.Field) *NetworkEndpointGroupsListNetworkEndpointsCall { +func (c *NodeGroupsListNodesCall) Fields(s ...googleapi.Field) *NodeGroupsListNodesCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } // Context sets the context to be used in this call's Do method. -func (c *NetworkEndpointGroupsListNetworkEndpointsCall) Context(ctx context.Context) *NetworkEndpointGroupsListNetworkEndpointsCall { +func (c *NodeGroupsListNodesCall) Context(ctx context.Context) *NodeGroupsListNodesCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *NetworkEndpointGroupsListNetworkEndpointsCall) Header() http.Header { +func (c *NodeGroupsListNodesCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *NetworkEndpointGroupsListNetworkEndpointsCall) doRequest(alt string) (*http.Response, error) { - reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) - var body io.Reader = nil - body, err := googleapi.WithoutDataWrapper.JSONReader(c.networkendpointgroupslistendpointsrequest) - if err != nil { - return nil, err - } +func (c *NodeGroupsListNodesCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/networkEndpointGroups/{networkEndpointGroup}/listNetworkEndpoints") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/nodeGroups/{nodeGroup}/listNodes") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("POST", urls, body) + req, err := http.NewRequest("POST", urls, nil) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "zone": c.zone, - "networkEndpointGroup": c.networkEndpointGroup, + "project": c.project, + "zone": c.zone, + "nodeGroup": c.nodeGroup, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.nodeGroups.listNodes", "request", internallog.HTTPRequest(req, nil)) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.networkEndpointGroups.listNetworkEndpoints" call. +// Do executes the "compute.nodeGroups.listNodes" call. // Any non-2xx status code is an error. Response headers are in either -// *NetworkEndpointGroupsListNetworkEndpoints.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 *NetworkEndpointGroupsListNetworkEndpointsCall) Do(opts ...googleapi.CallOption) (*NetworkEndpointGroupsListNetworkEndpoints, error) { +// *NodeGroupsListNodes.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 *NodeGroupsListNodesCall) Do(opts ...googleapi.CallOption) (*NodeGroupsListNodes, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -45242,23 +68035,25 @@ func (c *NetworkEndpointGroupsListNetworkEndpointsCall) Do(opts ...googleapi.Cal if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } - ret := &NetworkEndpointGroupsListNetworkEndpoints{ + ret := &NodeGroupsListNodes{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.nodeGroups.listNodes", "response", internallog.HTTPResponse(res, b)) return ret, nil } // 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 *NetworkEndpointGroupsListNetworkEndpointsCall) Pages(ctx context.Context, f func(*NetworkEndpointGroupsListNetworkEndpoints) error) error { +func (c *NodeGroupsListNodesCall) Pages(ctx context.Context, f func(*NodeGroupsListNodes) error) error { c.ctx_ = ctx defer c.PageToken(c.urlParams_.Get("pageToken")) for { @@ -45276,86 +68071,106 @@ func (c *NetworkEndpointGroupsListNetworkEndpointsCall) Pages(ctx context.Contex } } -type NetworkEndpointGroupsTestIamPermissionsCall struct { - s *Service - project string - zone string - resource string - testpermissionsrequest *TestPermissionsRequest - urlParams_ gensupport.URLParams - ctx_ context.Context - header_ http.Header +type NodeGroupsPatchCall struct { + s *Service + project string + zone string + nodeGroup string + nodegroup *NodeGroup + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header } -// TestIamPermissions: Returns permissions that a caller has on the specified -// resource. +// Patch: Updates the specified node group. // +// - nodeGroup: Name of the NodeGroup resource to update. // - project: Project ID for this request. -// - resource: Name or id of the resource for this request. // - zone: The name of the zone for this request. -func (r *NetworkEndpointGroupsService) TestIamPermissions(project string, zone string, resource string, testpermissionsrequest *TestPermissionsRequest) *NetworkEndpointGroupsTestIamPermissionsCall { - c := &NetworkEndpointGroupsTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)} +func (r *NodeGroupsService) Patch(project string, zone string, nodeGroup string, nodegroup *NodeGroup) *NodeGroupsPatchCall { + c := &NodeGroupsPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project c.zone = zone - c.resource = resource - c.testpermissionsrequest = testpermissionsrequest + c.nodeGroup = nodeGroup + c.nodegroup = nodegroup + 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 *NodeGroupsPatchCall) RequestId(requestId string) *NodeGroupsPatchCall { + 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 // details. -func (c *NetworkEndpointGroupsTestIamPermissionsCall) Fields(s ...googleapi.Field) *NetworkEndpointGroupsTestIamPermissionsCall { +func (c *NodeGroupsPatchCall) Fields(s ...googleapi.Field) *NodeGroupsPatchCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } // Context sets the context to be used in this call's Do method. -func (c *NetworkEndpointGroupsTestIamPermissionsCall) Context(ctx context.Context) *NetworkEndpointGroupsTestIamPermissionsCall { +func (c *NodeGroupsPatchCall) Context(ctx context.Context) *NodeGroupsPatchCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *NetworkEndpointGroupsTestIamPermissionsCall) Header() http.Header { +func (c *NodeGroupsPatchCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *NetworkEndpointGroupsTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) { +func (c *NodeGroupsPatchCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) - var body io.Reader = nil - body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest) + body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.nodegroup) if err != nil { return nil, err } c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/networkEndpointGroups/{resource}/testIamPermissions") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/nodeGroups/{nodeGroup}") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("POST", urls, body) + req, err := http.NewRequest("PATCH", urls, body) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "zone": c.zone, - "resource": c.resource, + "project": c.project, + "zone": c.zone, + "nodeGroup": c.nodeGroup, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.nodeGroups.patch", "request", internallog.HTTPRequest(req, body.Bytes())) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.networkEndpointGroups.testIamPermissions" call. +// Do executes the "compute.nodeGroups.patch" call. // Any non-2xx status code is an error. Response headers are in either -// *TestPermissionsResponse.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 *NetworkEndpointGroupsTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) { +// *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 *NodeGroupsPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -45374,61 +68189,65 @@ func (c *NetworkEndpointGroupsTestIamPermissionsCall) Do(opts ...googleapi.CallO if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } - ret := &TestPermissionsResponse{ + ret := &Operation{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.nodeGroups.patch", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type NetworkFirewallPoliciesAddAssociationCall struct { - s *Service - project string - firewallPolicy string - firewallpolicyassociation *FirewallPolicyAssociation - urlParams_ gensupport.URLParams - ctx_ context.Context - header_ http.Header +type NodeGroupsPerformMaintenanceCall struct { + s *Service + project string + zone string + nodeGroup string + nodegroupsperformmaintenancerequest *NodeGroupsPerformMaintenanceRequest + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header } -// AddAssociation: Inserts an association for the specified firewall policy. +// PerformMaintenance: Perform maintenance on a subset of nodes in the node +// group. // -// - firewallPolicy: Name of the firewall policy to update. +// - nodeGroup: Name of the node group scoping this request. // - project: Project ID for this request. -func (r *NetworkFirewallPoliciesService) AddAssociation(project string, firewallPolicy string, firewallpolicyassociation *FirewallPolicyAssociation) *NetworkFirewallPoliciesAddAssociationCall { - c := &NetworkFirewallPoliciesAddAssociationCall{s: r.s, urlParams_: make(gensupport.URLParams)} +// - zone: The name of the zone for this request. +func (r *NodeGroupsService) PerformMaintenance(project string, zone string, nodeGroup string, nodegroupsperformmaintenancerequest *NodeGroupsPerformMaintenanceRequest) *NodeGroupsPerformMaintenanceCall { + c := &NodeGroupsPerformMaintenanceCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project - c.firewallPolicy = firewallPolicy - c.firewallpolicyassociation = firewallpolicyassociation - return c -} - -// ReplaceExistingAssociation sets the optional parameter -// "replaceExistingAssociation": Indicates whether or not to replace it if an -// association of the attachment already exists. This is false by default, in -// which case an error will be returned if an association already exists. -func (c *NetworkFirewallPoliciesAddAssociationCall) ReplaceExistingAssociation(replaceExistingAssociation bool) *NetworkFirewallPoliciesAddAssociationCall { - c.urlParams_.Set("replaceExistingAssociation", fmt.Sprint(replaceExistingAssociation)) + c.zone = zone + c.nodeGroup = nodeGroup + c.nodegroupsperformmaintenancerequest = nodegroupsperformmaintenancerequest 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 *NetworkFirewallPoliciesAddAssociationCall) RequestId(requestId string) *NetworkFirewallPoliciesAddAssociationCall { +// 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 *NodeGroupsPerformMaintenanceCall) RequestId(requestId string) *NodeGroupsPerformMaintenanceCall { c.urlParams_.Set("requestId", requestId) return c } @@ -45436,36 +68255,35 @@ func (c *NetworkFirewallPoliciesAddAssociationCall) RequestId(requestId string) // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *NetworkFirewallPoliciesAddAssociationCall) Fields(s ...googleapi.Field) *NetworkFirewallPoliciesAddAssociationCall { +func (c *NodeGroupsPerformMaintenanceCall) Fields(s ...googleapi.Field) *NodeGroupsPerformMaintenanceCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } // Context sets the context to be used in this call's Do method. -func (c *NetworkFirewallPoliciesAddAssociationCall) Context(ctx context.Context) *NetworkFirewallPoliciesAddAssociationCall { +func (c *NodeGroupsPerformMaintenanceCall) Context(ctx context.Context) *NodeGroupsPerformMaintenanceCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *NetworkFirewallPoliciesAddAssociationCall) Header() http.Header { +func (c *NodeGroupsPerformMaintenanceCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *NetworkFirewallPoliciesAddAssociationCall) doRequest(alt string) (*http.Response, error) { +func (c *NodeGroupsPerformMaintenanceCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) - var body io.Reader = nil - body, err := googleapi.WithoutDataWrapper.JSONReader(c.firewallpolicyassociation) + body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.nodegroupsperformmaintenancerequest) if err != nil { return nil, err } c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/firewallPolicies/{firewallPolicy}/addAssociation") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/nodeGroups/{nodeGroup}/performMaintenance") urls += "?" + c.urlParams_.Encode() req, err := http.NewRequest("POST", urls, body) if err != nil { @@ -45473,18 +68291,20 @@ func (c *NetworkFirewallPoliciesAddAssociationCall) doRequest(alt string) (*http } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "firewallPolicy": c.firewallPolicy, + "project": c.project, + "zone": c.zone, + "nodeGroup": c.nodeGroup, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.nodeGroups.performMaintenance", "request", internallog.HTTPRequest(req, body.Bytes())) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.networkFirewallPolicies.addAssociation" call. +// Do executes the "compute.nodeGroups.performMaintenance" call. // 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 *NetworkFirewallPoliciesAddAssociationCall) Do(opts ...googleapi.CallOption) (*Operation, error) { +func (c *NodeGroupsPerformMaintenanceCall) Do(opts ...googleapi.CallOption) (*Operation, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -45510,61 +68330,170 @@ func (c *NetworkFirewallPoliciesAddAssociationCall) Do(opts ...googleapi.CallOpt }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.nodeGroups.performMaintenance", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type NetworkFirewallPoliciesAddRuleCall struct { - s *Service - project string - firewallPolicy string - firewallpolicyrule *FirewallPolicyRule - urlParams_ gensupport.URLParams - ctx_ context.Context - header_ http.Header +type NodeGroupsSetIamPolicyCall struct { + s *Service + project string + zone string + resource string + zonesetpolicyrequest *ZoneSetPolicyRequest + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header } -// AddRule: Inserts a rule into a firewall policy. +// SetIamPolicy: Sets the access control policy on the specified +// resource. +// Replaces any existing policy. // -// - firewallPolicy: Name of the firewall policy to update. // - project: Project ID for this request. -func (r *NetworkFirewallPoliciesService) AddRule(project string, firewallPolicy string, firewallpolicyrule *FirewallPolicyRule) *NetworkFirewallPoliciesAddRuleCall { - c := &NetworkFirewallPoliciesAddRuleCall{s: r.s, urlParams_: make(gensupport.URLParams)} +// - resource: Name or id of the resource for this request. +// - zone: The name of the zone for this request. +func (r *NodeGroupsService) SetIamPolicy(project string, zone string, resource string, zonesetpolicyrequest *ZoneSetPolicyRequest) *NodeGroupsSetIamPolicyCall { + c := &NodeGroupsSetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project - c.firewallPolicy = firewallPolicy - c.firewallpolicyrule = firewallpolicyrule + c.zone = zone + c.resource = resource + c.zonesetpolicyrequest = zonesetpolicyrequest return c } -// MaxPriority sets the optional parameter "maxPriority": When rule.priority is -// not specified, auto choose a unused priority between minPriority and -// maxPriority>. This field is exclusive with rule.priority. -func (c *NetworkFirewallPoliciesAddRuleCall) MaxPriority(maxPriority int64) *NetworkFirewallPoliciesAddRuleCall { - c.urlParams_.Set("maxPriority", fmt.Sprint(maxPriority)) +// Fields allows partial responses to be retrieved. See +// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more +// details. +func (c *NodeGroupsSetIamPolicyCall) Fields(s ...googleapi.Field) *NodeGroupsSetIamPolicyCall { + c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } -// MinPriority sets the optional parameter "minPriority": When rule.priority is -// not specified, auto choose a unused priority between minPriority and -// maxPriority>. This field is exclusive with rule.priority. -func (c *NetworkFirewallPoliciesAddRuleCall) MinPriority(minPriority int64) *NetworkFirewallPoliciesAddRuleCall { - c.urlParams_.Set("minPriority", fmt.Sprint(minPriority)) +// Context sets the context to be used in this call's Do method. +func (c *NodeGroupsSetIamPolicyCall) Context(ctx context.Context) *NodeGroupsSetIamPolicyCall { + c.ctx_ = ctx + return c +} + +// Header returns a http.Header that can be modified by the caller to add +// headers to the request. +func (c *NodeGroupsSetIamPolicyCall) Header() http.Header { + if c.header_ == nil { + c.header_ = make(http.Header) + } + return c.header_ +} + +func (c *NodeGroupsSetIamPolicyCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) + body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.zonesetpolicyrequest) + if err != nil { + return nil, err + } + c.urlParams_.Set("alt", alt) + c.urlParams_.Set("prettyPrint", "false") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/nodeGroups/{resource}/setIamPolicy") + urls += "?" + c.urlParams_.Encode() + req, err := http.NewRequest("POST", urls, body) + if err != nil { + return nil, err + } + req.Header = reqHeaders + googleapi.Expand(req.URL, map[string]string{ + "project": c.project, + "zone": c.zone, + "resource": c.resource, + }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.nodeGroups.setIamPolicy", "request", internallog.HTTPRequest(req, body.Bytes())) + return gensupport.SendRequest(c.ctx_, c.s.client, req) +} + +// Do executes the "compute.nodeGroups.setIamPolicy" call. +// Any non-2xx status code is an error. Response headers are in either +// *Policy.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 *NodeGroupsSetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, 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, gensupport.WrapError(&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, gensupport.WrapError(err) + } + ret := &Policy{ + ServerResponse: googleapi.ServerResponse{ + Header: res.Header, + HTTPStatusCode: res.StatusCode, + }, + } + target := &ret + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { + return nil, err + } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.nodeGroups.setIamPolicy", "response", internallog.HTTPResponse(res, b)) + return ret, nil +} + +type NodeGroupsSetNodeTemplateCall struct { + s *Service + project string + zone string + nodeGroup string + nodegroupssetnodetemplaterequest *NodeGroupsSetNodeTemplateRequest + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header +} + +// SetNodeTemplate: Updates the node template of the node group. +// +// - nodeGroup: Name of the NodeGroup resource to update. +// - project: Project ID for this request. +// - zone: The name of the zone for this request. +func (r *NodeGroupsService) SetNodeTemplate(project string, zone string, nodeGroup string, nodegroupssetnodetemplaterequest *NodeGroupsSetNodeTemplateRequest) *NodeGroupsSetNodeTemplateCall { + c := &NodeGroupsSetNodeTemplateCall{s: r.s, urlParams_: make(gensupport.URLParams)} + c.project = project + c.zone = zone + c.nodeGroup = nodeGroup + c.nodegroupssetnodetemplaterequest = nodegroupssetnodetemplaterequest 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 *NetworkFirewallPoliciesAddRuleCall) RequestId(requestId string) *NetworkFirewallPoliciesAddRuleCall { +// 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 *NodeGroupsSetNodeTemplateCall) RequestId(requestId string) *NodeGroupsSetNodeTemplateCall { c.urlParams_.Set("requestId", requestId) return c } @@ -45572,36 +68501,35 @@ func (c *NetworkFirewallPoliciesAddRuleCall) RequestId(requestId string) *Networ // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *NetworkFirewallPoliciesAddRuleCall) Fields(s ...googleapi.Field) *NetworkFirewallPoliciesAddRuleCall { +func (c *NodeGroupsSetNodeTemplateCall) Fields(s ...googleapi.Field) *NodeGroupsSetNodeTemplateCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } // Context sets the context to be used in this call's Do method. -func (c *NetworkFirewallPoliciesAddRuleCall) Context(ctx context.Context) *NetworkFirewallPoliciesAddRuleCall { +func (c *NodeGroupsSetNodeTemplateCall) Context(ctx context.Context) *NodeGroupsSetNodeTemplateCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *NetworkFirewallPoliciesAddRuleCall) Header() http.Header { +func (c *NodeGroupsSetNodeTemplateCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *NetworkFirewallPoliciesAddRuleCall) doRequest(alt string) (*http.Response, error) { +func (c *NodeGroupsSetNodeTemplateCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) - var body io.Reader = nil - body, err := googleapi.WithoutDataWrapper.JSONReader(c.firewallpolicyrule) + body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.nodegroupssetnodetemplaterequest) if err != nil { return nil, err } c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/firewallPolicies/{firewallPolicy}/addRule") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/nodeGroups/{nodeGroup}/setNodeTemplate") urls += "?" + c.urlParams_.Encode() req, err := http.NewRequest("POST", urls, body) if err != nil { @@ -45609,18 +68537,20 @@ func (c *NetworkFirewallPoliciesAddRuleCall) doRequest(alt string) (*http.Respon } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "firewallPolicy": c.firewallPolicy, + "project": c.project, + "zone": c.zone, + "nodeGroup": c.nodeGroup, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.nodeGroups.setNodeTemplate", "request", internallog.HTTPRequest(req, body.Bytes())) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.networkFirewallPolicies.addRule" call. +// Do executes the "compute.nodeGroups.setNodeTemplate" call. // 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 *NetworkFirewallPoliciesAddRuleCall) Do(opts ...googleapi.CallOption) (*Operation, error) { +func (c *NodeGroupsSetNodeTemplateCall) Do(opts ...googleapi.CallOption) (*Operation, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -45646,83 +68576,97 @@ func (c *NetworkFirewallPoliciesAddRuleCall) Do(opts ...googleapi.CallOption) (* }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { - return nil, err - } - return ret, nil -} - -type NetworkFirewallPoliciesCloneRulesCall struct { - s *Service - project string - firewallPolicy string - urlParams_ gensupport.URLParams - ctx_ context.Context - header_ http.Header + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { + return nil, err + } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.nodeGroups.setNodeTemplate", "response", internallog.HTTPResponse(res, b)) + return ret, nil } -// CloneRules: Copies rules to the specified firewall policy. +type NodeGroupsSimulateMaintenanceEventCall struct { + s *Service + project string + zone string + nodeGroup string + nodegroupssimulatemaintenanceeventrequest *NodeGroupsSimulateMaintenanceEventRequest + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header +} + +// SimulateMaintenanceEvent: Simulates maintenance event on specified nodes +// from the node group. // -// - firewallPolicy: Name of the firewall policy to update. +// - nodeGroup: Name of the NodeGroup resource whose nodes will go under +// maintenance +// +// simulation. // - project: Project ID for this request. -func (r *NetworkFirewallPoliciesService) CloneRules(project string, firewallPolicy string) *NetworkFirewallPoliciesCloneRulesCall { - c := &NetworkFirewallPoliciesCloneRulesCall{s: r.s, urlParams_: make(gensupport.URLParams)} +// - zone: The name of the zone for this request. +func (r *NodeGroupsService) SimulateMaintenanceEvent(project string, zone string, nodeGroup string, nodegroupssimulatemaintenanceeventrequest *NodeGroupsSimulateMaintenanceEventRequest) *NodeGroupsSimulateMaintenanceEventCall { + c := &NodeGroupsSimulateMaintenanceEventCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project - c.firewallPolicy = firewallPolicy + c.zone = zone + c.nodeGroup = nodeGroup + c.nodegroupssimulatemaintenanceeventrequest = nodegroupssimulatemaintenanceeventrequest 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 *NetworkFirewallPoliciesCloneRulesCall) RequestId(requestId string) *NetworkFirewallPoliciesCloneRulesCall { +// 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 *NodeGroupsSimulateMaintenanceEventCall) RequestId(requestId string) *NodeGroupsSimulateMaintenanceEventCall { c.urlParams_.Set("requestId", requestId) return c } -// SourceFirewallPolicy sets the optional parameter "sourceFirewallPolicy": The -// firewall policy from which to copy rules. -func (c *NetworkFirewallPoliciesCloneRulesCall) SourceFirewallPolicy(sourceFirewallPolicy string) *NetworkFirewallPoliciesCloneRulesCall { - c.urlParams_.Set("sourceFirewallPolicy", sourceFirewallPolicy) - return c -} - // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *NetworkFirewallPoliciesCloneRulesCall) Fields(s ...googleapi.Field) *NetworkFirewallPoliciesCloneRulesCall { +func (c *NodeGroupsSimulateMaintenanceEventCall) Fields(s ...googleapi.Field) *NodeGroupsSimulateMaintenanceEventCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } // Context sets the context to be used in this call's Do method. -func (c *NetworkFirewallPoliciesCloneRulesCall) Context(ctx context.Context) *NetworkFirewallPoliciesCloneRulesCall { +func (c *NodeGroupsSimulateMaintenanceEventCall) Context(ctx context.Context) *NodeGroupsSimulateMaintenanceEventCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *NetworkFirewallPoliciesCloneRulesCall) Header() http.Header { +func (c *NodeGroupsSimulateMaintenanceEventCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *NetworkFirewallPoliciesCloneRulesCall) doRequest(alt string) (*http.Response, error) { - reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) - var body io.Reader = nil +func (c *NodeGroupsSimulateMaintenanceEventCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) + body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.nodegroupssimulatemaintenanceeventrequest) + if err != nil { + return nil, err + } c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/firewallPolicies/{firewallPolicy}/cloneRules") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/nodeGroups/{nodeGroup}/simulateMaintenanceEvent") urls += "?" + c.urlParams_.Encode() req, err := http.NewRequest("POST", urls, body) if err != nil { @@ -45730,18 +68674,20 @@ func (c *NetworkFirewallPoliciesCloneRulesCall) doRequest(alt string) (*http.Res } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "firewallPolicy": c.firewallPolicy, + "project": c.project, + "zone": c.zone, + "nodeGroup": c.nodeGroup, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.nodeGroups.simulateMaintenanceEvent", "request", internallog.HTTPRequest(req, body.Bytes())) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.networkFirewallPolicies.cloneRules" call. +// Do executes the "compute.nodeGroups.simulateMaintenanceEvent" call. // 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 *NetworkFirewallPoliciesCloneRulesCall) Do(opts ...googleapi.CallOption) (*Operation, error) { +func (c *NodeGroupsSimulateMaintenanceEventCall) Do(opts ...googleapi.CallOption) (*Operation, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -45767,95 +68713,94 @@ func (c *NetworkFirewallPoliciesCloneRulesCall) Do(opts ...googleapi.CallOption) }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.nodeGroups.simulateMaintenanceEvent", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type NetworkFirewallPoliciesDeleteCall struct { - s *Service - project string - firewallPolicy string - urlParams_ gensupport.URLParams - ctx_ context.Context - header_ http.Header +type NodeGroupsTestIamPermissionsCall struct { + s *Service + project string + zone string + resource string + testpermissionsrequest *TestPermissionsRequest + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header } -// Delete: Deletes the specified policy. +// TestIamPermissions: Returns permissions that a caller has on the specified +// resource. // -// - firewallPolicy: Name of the firewall policy to delete. // - project: Project ID for this request. -func (r *NetworkFirewallPoliciesService) Delete(project string, firewallPolicy string) *NetworkFirewallPoliciesDeleteCall { - c := &NetworkFirewallPoliciesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)} +// - resource: Name or id of the resource for this request. +// - zone: The name of the zone for this request. +func (r *NodeGroupsService) TestIamPermissions(project string, zone string, resource string, testpermissionsrequest *TestPermissionsRequest) *NodeGroupsTestIamPermissionsCall { + c := &NodeGroupsTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project - c.firewallPolicy = firewallPolicy - 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 *NetworkFirewallPoliciesDeleteCall) RequestId(requestId string) *NetworkFirewallPoliciesDeleteCall { - c.urlParams_.Set("requestId", requestId) + c.zone = zone + c.resource = resource + c.testpermissionsrequest = testpermissionsrequest return c } // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *NetworkFirewallPoliciesDeleteCall) Fields(s ...googleapi.Field) *NetworkFirewallPoliciesDeleteCall { +func (c *NodeGroupsTestIamPermissionsCall) Fields(s ...googleapi.Field) *NodeGroupsTestIamPermissionsCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } // Context sets the context to be used in this call's Do method. -func (c *NetworkFirewallPoliciesDeleteCall) Context(ctx context.Context) *NetworkFirewallPoliciesDeleteCall { +func (c *NodeGroupsTestIamPermissionsCall) Context(ctx context.Context) *NodeGroupsTestIamPermissionsCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *NetworkFirewallPoliciesDeleteCall) Header() http.Header { +func (c *NodeGroupsTestIamPermissionsCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *NetworkFirewallPoliciesDeleteCall) doRequest(alt string) (*http.Response, error) { - reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) - var body io.Reader = nil +func (c *NodeGroupsTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) + body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.testpermissionsrequest) + if err != nil { + return nil, err + } c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/firewallPolicies/{firewallPolicy}") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/nodeGroups/{resource}/testIamPermissions") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("DELETE", urls, body) + req, err := http.NewRequest("POST", urls, body) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "firewallPolicy": c.firewallPolicy, + "project": c.project, + "zone": c.zone, + "resource": c.resource, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.nodeGroups.testIamPermissions", "request", internallog.HTTPRequest(req, body.Bytes())) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.networkFirewallPolicies.delete" call. +// Do executes the "compute.nodeGroups.testIamPermissions" call. // 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 *NetworkFirewallPoliciesDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) { +// *TestPermissionsResponse.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 *NodeGroupsTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -45874,44 +68819,201 @@ func (c *NetworkFirewallPoliciesDeleteCall) Do(opts ...googleapi.CallOption) (*O if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } - ret := &Operation{ + ret := &TestPermissionsResponse{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.nodeGroups.testIamPermissions", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type NetworkFirewallPoliciesGetCall struct { - s *Service - project string - firewallPolicy string - urlParams_ gensupport.URLParams - ifNoneMatch_ string - ctx_ context.Context - header_ http.Header +type NodeTemplatesAggregatedListCall struct { + s *Service + project string + urlParams_ gensupport.URLParams + ifNoneMatch_ string + ctx_ context.Context + header_ http.Header } -// Get: Returns the specified network firewall policy. +// AggregatedList: Retrieves an aggregated list of node templates. +// +// To prevent failure, Google recommends that you set +// the +// `returnPartialSuccess` parameter to `true`. // -// - firewallPolicy: Name of the firewall policy to get. // - project: Project ID for this request. -func (r *NetworkFirewallPoliciesService) Get(project string, firewallPolicy string) *NetworkFirewallPoliciesGetCall { - c := &NetworkFirewallPoliciesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)} +func (r *NodeTemplatesService) AggregatedList(project string) *NodeTemplatesAggregatedListCall { + c := &NodeTemplatesAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project - c.firewallPolicy = firewallPolicy + return c +} + +// Filter sets the optional parameter "filter": A filter expression that +// filters resources listed in the response. Most +// Compute resources support two types of filter expressions: +// expressions that support regular expressions and expressions that follow +// API improvement proposal AIP-160. +// These two types of filter expressions cannot be mixed in one request. +// +// If you want to use AIP-160, your expression must specify the field name, +// an +// operator, and the value that you want to use for filtering. The value +// must be a string, a number, or a boolean. The 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`. +// +// The `:*` comparison can be used to test whether a key has been defined. +// For example, to find all objects with `owner` label +// use: +// ``` +// labels.owner:* +// ``` +// +// 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 onresource 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) +// ``` +// +// If you want to use a regular expression, use the `eq` (equal) or `ne` +// (not equal) operator against a single un-parenthesized expression with +// or +// without quotes or against multiple parenthesized expressions. +// Examples: +// +// `fieldname eq unquoted literal` +// `fieldname eq 'single quoted literal'` +// `fieldname eq "double quoted literal" +// `(fieldname1 eq literal) (fieldname2 ne "literal")` +// +// The literal value is interpreted as a regular expression using GoogleRE2 +// library syntax. +// The literal value must match the entire field. +// +// For example, to filter for instances that do not end with name +// "instance", +// you would use `name ne .*instance`. +// +// You cannot combine constraints on multiple fields using regular +// expressions. +func (c *NodeTemplatesAggregatedListCall) Filter(filter string) *NodeTemplatesAggregatedListCall { + c.urlParams_.Set("filter", filter) + return c +} + +// IncludeAllScopes sets the optional parameter "includeAllScopes": Indicates +// whether every visible scope for each scope type (zone, region, +// global) should be included in the response. For new resource types +// added +// after this field, the flag has no effect as new resource types will +// always +// include every visible scope for each scope type in response. For +// resource +// types which predate this field, if this flag is omitted or false, +// only +// scopes of the scope types where the resource type is expected to be +// found +// will be included. +func (c *NodeTemplatesAggregatedListCall) IncludeAllScopes(includeAllScopes bool) *NodeTemplatesAggregatedListCall { + c.urlParams_.Set("includeAllScopes", fmt.Sprint(includeAllScopes)) + 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 *NodeTemplatesAggregatedListCall) MaxResults(maxResults int64) *NodeTemplatesAggregatedListCall { + 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 *NodeTemplatesAggregatedListCall) OrderBy(orderBy string) *NodeTemplatesAggregatedListCall { + 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 *NodeTemplatesAggregatedListCall) PageToken(pageToken string) *NodeTemplatesAggregatedListCall { + c.urlParams_.Set("pageToken", pageToken) + return c +} + +// ReturnPartialSuccess sets the optional parameter "returnPartialSuccess": +// Opt-in for partial success behavior which provides partial results in +// case +// of failure. The default value is false. +// +// For example, when partial success behavior is enabled, aggregatedList for +// a +// single zone scope either returns all resources in the zone or no +// resources, +// with an error code. +func (c *NodeTemplatesAggregatedListCall) ReturnPartialSuccess(returnPartialSuccess bool) *NodeTemplatesAggregatedListCall { + c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess)) + return c +} + +// ServiceProjectNumber sets the optional parameter "serviceProjectNumber": The +// Shared VPC service project id or service project number for which +// aggregated list request is invoked for subnetworks list-usable api. +func (c *NodeTemplatesAggregatedListCall) ServiceProjectNumber(serviceProjectNumber int64) *NodeTemplatesAggregatedListCall { + c.urlParams_.Set("serviceProjectNumber", fmt.Sprint(serviceProjectNumber)) return c } // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *NetworkFirewallPoliciesGetCall) Fields(s ...googleapi.Field) *NetworkFirewallPoliciesGetCall { +func (c *NodeTemplatesAggregatedListCall) Fields(s ...googleapi.Field) *NodeTemplatesAggregatedListCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } @@ -45919,54 +69021,54 @@ func (c *NetworkFirewallPoliciesGetCall) Fields(s ...googleapi.Field) *NetworkFi // IfNoneMatch sets an 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. -func (c *NetworkFirewallPoliciesGetCall) IfNoneMatch(entityTag string) *NetworkFirewallPoliciesGetCall { +func (c *NodeTemplatesAggregatedListCall) IfNoneMatch(entityTag string) *NodeTemplatesAggregatedListCall { c.ifNoneMatch_ = entityTag return c } // Context sets the context to be used in this call's Do method. -func (c *NetworkFirewallPoliciesGetCall) Context(ctx context.Context) *NetworkFirewallPoliciesGetCall { +func (c *NodeTemplatesAggregatedListCall) Context(ctx context.Context) *NodeTemplatesAggregatedListCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *NetworkFirewallPoliciesGetCall) Header() http.Header { +func (c *NodeTemplatesAggregatedListCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *NetworkFirewallPoliciesGetCall) doRequest(alt string) (*http.Response, error) { +func (c *NodeTemplatesAggregatedListCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) if c.ifNoneMatch_ != "" { reqHeaders.Set("If-None-Match", c.ifNoneMatch_) } - var body io.Reader = nil c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/firewallPolicies/{firewallPolicy}") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/aggregated/nodeTemplates") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("GET", urls, body) + req, err := http.NewRequest("GET", urls, nil) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "firewallPolicy": c.firewallPolicy, + "project": c.project, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.nodeTemplates.aggregatedList", "request", internallog.HTTPRequest(req, nil)) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.networkFirewallPolicies.get" call. +// Do executes the "compute.nodeTemplates.aggregatedList" call. // Any non-2xx status code is an error. Response headers are in either -// *FirewallPolicy.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 *NetworkFirewallPoliciesGetCall) Do(opts ...googleapi.CallOption) (*FirewallPolicy, error) { +// *NodeTemplateAggregatedList.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 *NodeTemplatesAggregatedListCall) Do(opts ...googleapi.CallOption) (*NodeTemplateAggregatedList, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -45985,108 +69087,136 @@ func (c *NetworkFirewallPoliciesGetCall) Do(opts ...googleapi.CallOption) (*Fire if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } - ret := &FirewallPolicy{ + ret := &NodeTemplateAggregatedList{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.nodeTemplates.aggregatedList", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type NetworkFirewallPoliciesGetAssociationCall struct { - s *Service - project string - firewallPolicy string - urlParams_ gensupport.URLParams - ifNoneMatch_ string - ctx_ context.Context - header_ http.Header +// 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 *NodeTemplatesAggregatedListCall) Pages(ctx context.Context, f func(*NodeTemplateAggregatedList) error) error { + c.ctx_ = ctx + defer c.PageToken(c.urlParams_.Get("pageToken")) + 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) + } } -// GetAssociation: Gets an association with the specified name. +type NodeTemplatesDeleteCall struct { + s *Service + project string + region string + nodeTemplate string + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header +} + +// Delete: Deletes the specified NodeTemplate resource. // -// - firewallPolicy: Name of the firewall policy to which the queried -// association belongs. -// - project: Project ID for this request. -func (r *NetworkFirewallPoliciesService) GetAssociation(project string, firewallPolicy string) *NetworkFirewallPoliciesGetAssociationCall { - c := &NetworkFirewallPoliciesGetAssociationCall{s: r.s, urlParams_: make(gensupport.URLParams)} +// - nodeTemplate: Name of the NodeTemplate resource to delete. +// - project: Project ID for this request. +// - region: The name of the region for this request. +func (r *NodeTemplatesService) Delete(project string, region string, nodeTemplate string) *NodeTemplatesDeleteCall { + c := &NodeTemplatesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project - c.firewallPolicy = firewallPolicy + c.region = region + c.nodeTemplate = nodeTemplate return c } -// Name sets the optional parameter "name": The name of the association to get -// from the firewall policy. -func (c *NetworkFirewallPoliciesGetAssociationCall) Name(name string) *NetworkFirewallPoliciesGetAssociationCall { - c.urlParams_.Set("name", name) +// 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 *NodeTemplatesDeleteCall) RequestId(requestId string) *NodeTemplatesDeleteCall { + 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 // details. -func (c *NetworkFirewallPoliciesGetAssociationCall) Fields(s ...googleapi.Field) *NetworkFirewallPoliciesGetAssociationCall { +func (c *NodeTemplatesDeleteCall) Fields(s ...googleapi.Field) *NodeTemplatesDeleteCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } -// IfNoneMatch sets an 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. -func (c *NetworkFirewallPoliciesGetAssociationCall) IfNoneMatch(entityTag string) *NetworkFirewallPoliciesGetAssociationCall { - c.ifNoneMatch_ = entityTag - return c -} - // Context sets the context to be used in this call's Do method. -func (c *NetworkFirewallPoliciesGetAssociationCall) Context(ctx context.Context) *NetworkFirewallPoliciesGetAssociationCall { +func (c *NodeTemplatesDeleteCall) Context(ctx context.Context) *NodeTemplatesDeleteCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *NetworkFirewallPoliciesGetAssociationCall) Header() http.Header { +func (c *NodeTemplatesDeleteCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *NetworkFirewallPoliciesGetAssociationCall) doRequest(alt string) (*http.Response, error) { +func (c *NodeTemplatesDeleteCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) - if c.ifNoneMatch_ != "" { - reqHeaders.Set("If-None-Match", c.ifNoneMatch_) - } - var body io.Reader = nil c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/firewallPolicies/{firewallPolicy}/getAssociation") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/nodeTemplates/{nodeTemplate}") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("GET", urls, body) + req, err := http.NewRequest("DELETE", urls, nil) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "firewallPolicy": c.firewallPolicy, + "project": c.project, + "region": c.region, + "nodeTemplate": c.nodeTemplate, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.nodeTemplates.delete", "request", internallog.HTTPRequest(req, nil)) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.networkFirewallPolicies.getAssociation" call. +// Do executes the "compute.nodeTemplates.delete" call. // Any non-2xx status code is an error. Response headers are in either -// *FirewallPolicyAssociation.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 *NetworkFirewallPoliciesGetAssociationCall) Do(opts ...googleapi.CallOption) (*FirewallPolicyAssociation, error) { +// *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 *NodeTemplatesDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -46105,52 +69235,49 @@ func (c *NetworkFirewallPoliciesGetAssociationCall) Do(opts ...googleapi.CallOpt if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } - ret := &FirewallPolicyAssociation{ + ret := &Operation{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.nodeTemplates.delete", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type NetworkFirewallPoliciesGetIamPolicyCall struct { +type NodeTemplatesGetCall struct { s *Service project string - resource string + region string + nodeTemplate string urlParams_ gensupport.URLParams ifNoneMatch_ string ctx_ context.Context header_ http.Header } -// GetIamPolicy: Gets the access control policy for a resource. May be empty if -// no such policy or resource exists. +// Get: Returns the specified node template. // +// - nodeTemplate: Name of the node template to return. // - project: Project ID for this request. -// - resource: Name or id of the resource for this request. -func (r *NetworkFirewallPoliciesService) GetIamPolicy(project string, resource string) *NetworkFirewallPoliciesGetIamPolicyCall { - c := &NetworkFirewallPoliciesGetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)} +// - region: The name of the region for this request. +func (r *NodeTemplatesService) Get(project string, region string, nodeTemplate string) *NodeTemplatesGetCall { + c := &NodeTemplatesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project - c.resource = resource - return c -} - -// OptionsRequestedPolicyVersion sets the optional parameter -// "optionsRequestedPolicyVersion": Requested IAM Policy version. -func (c *NetworkFirewallPoliciesGetIamPolicyCall) OptionsRequestedPolicyVersion(optionsRequestedPolicyVersion int64) *NetworkFirewallPoliciesGetIamPolicyCall { - c.urlParams_.Set("optionsRequestedPolicyVersion", fmt.Sprint(optionsRequestedPolicyVersion)) + c.region = region + c.nodeTemplate = nodeTemplate return c } // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *NetworkFirewallPoliciesGetIamPolicyCall) Fields(s ...googleapi.Field) *NetworkFirewallPoliciesGetIamPolicyCall { +func (c *NodeTemplatesGetCall) Fields(s ...googleapi.Field) *NodeTemplatesGetCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } @@ -46158,54 +69285,55 @@ func (c *NetworkFirewallPoliciesGetIamPolicyCall) Fields(s ...googleapi.Field) * // IfNoneMatch sets an 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. -func (c *NetworkFirewallPoliciesGetIamPolicyCall) IfNoneMatch(entityTag string) *NetworkFirewallPoliciesGetIamPolicyCall { +func (c *NodeTemplatesGetCall) IfNoneMatch(entityTag string) *NodeTemplatesGetCall { c.ifNoneMatch_ = entityTag return c } // Context sets the context to be used in this call's Do method. -func (c *NetworkFirewallPoliciesGetIamPolicyCall) Context(ctx context.Context) *NetworkFirewallPoliciesGetIamPolicyCall { +func (c *NodeTemplatesGetCall) Context(ctx context.Context) *NodeTemplatesGetCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *NetworkFirewallPoliciesGetIamPolicyCall) Header() http.Header { +func (c *NodeTemplatesGetCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *NetworkFirewallPoliciesGetIamPolicyCall) doRequest(alt string) (*http.Response, error) { +func (c *NodeTemplatesGetCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) if c.ifNoneMatch_ != "" { reqHeaders.Set("If-None-Match", c.ifNoneMatch_) } - var body io.Reader = nil c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/firewallPolicies/{resource}/getIamPolicy") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/nodeTemplates/{nodeTemplate}") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("GET", urls, body) + req, err := http.NewRequest("GET", urls, nil) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "resource": c.resource, + "project": c.project, + "region": c.region, + "nodeTemplate": c.nodeTemplate, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.nodeTemplates.get", "request", internallog.HTTPRequest(req, nil)) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.networkFirewallPolicies.getIamPolicy" call. +// Do executes the "compute.nodeTemplates.get" call. // Any non-2xx status code is an error. Response headers are in either -// *Policy.ServerResponse.Header or (if a response was returned at all) in -// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check +// *NodeTemplate.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 *NetworkFirewallPoliciesGetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, error) { +func (c *NodeTemplatesGetCall) Do(opts ...googleapi.CallOption) (*NodeTemplate, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -46224,52 +69352,58 @@ func (c *NetworkFirewallPoliciesGetIamPolicyCall) Do(opts ...googleapi.CallOptio if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } - ret := &Policy{ + ret := &NodeTemplate{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.nodeTemplates.get", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type NetworkFirewallPoliciesGetRuleCall struct { - s *Service - project string - firewallPolicy string - urlParams_ gensupport.URLParams - ifNoneMatch_ string - ctx_ context.Context - header_ http.Header +type NodeTemplatesGetIamPolicyCall struct { + s *Service + project string + region string + resource string + urlParams_ gensupport.URLParams + ifNoneMatch_ string + ctx_ context.Context + header_ http.Header } -// GetRule: Gets a rule of the specified priority. +// GetIamPolicy: Gets the access control policy for a resource. May be empty if +// no such +// policy or resource exists. // -// - firewallPolicy: Name of the firewall policy to which the queried rule -// belongs. -// - project: Project ID for this request. -func (r *NetworkFirewallPoliciesService) GetRule(project string, firewallPolicy string) *NetworkFirewallPoliciesGetRuleCall { - c := &NetworkFirewallPoliciesGetRuleCall{s: r.s, urlParams_: make(gensupport.URLParams)} +// - project: Project ID for this request. +// - region: The name of the region for this request. +// - resource: Name or id of the resource for this request. +func (r *NodeTemplatesService) GetIamPolicy(project string, region string, resource string) *NodeTemplatesGetIamPolicyCall { + c := &NodeTemplatesGetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project - c.firewallPolicy = firewallPolicy + c.region = region + c.resource = resource return c } -// Priority sets the optional parameter "priority": The priority of the rule to -// get from the firewall policy. -func (c *NetworkFirewallPoliciesGetRuleCall) Priority(priority int64) *NetworkFirewallPoliciesGetRuleCall { - c.urlParams_.Set("priority", fmt.Sprint(priority)) +// OptionsRequestedPolicyVersion sets the optional parameter +// "optionsRequestedPolicyVersion": Requested IAM Policy version. +func (c *NodeTemplatesGetIamPolicyCall) OptionsRequestedPolicyVersion(optionsRequestedPolicyVersion int64) *NodeTemplatesGetIamPolicyCall { + c.urlParams_.Set("optionsRequestedPolicyVersion", fmt.Sprint(optionsRequestedPolicyVersion)) return c } // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *NetworkFirewallPoliciesGetRuleCall) Fields(s ...googleapi.Field) *NetworkFirewallPoliciesGetRuleCall { +func (c *NodeTemplatesGetIamPolicyCall) Fields(s ...googleapi.Field) *NodeTemplatesGetIamPolicyCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } @@ -46277,55 +69411,55 @@ func (c *NetworkFirewallPoliciesGetRuleCall) Fields(s ...googleapi.Field) *Netwo // IfNoneMatch sets an 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. -func (c *NetworkFirewallPoliciesGetRuleCall) IfNoneMatch(entityTag string) *NetworkFirewallPoliciesGetRuleCall { +func (c *NodeTemplatesGetIamPolicyCall) IfNoneMatch(entityTag string) *NodeTemplatesGetIamPolicyCall { c.ifNoneMatch_ = entityTag return c } // Context sets the context to be used in this call's Do method. -func (c *NetworkFirewallPoliciesGetRuleCall) Context(ctx context.Context) *NetworkFirewallPoliciesGetRuleCall { +func (c *NodeTemplatesGetIamPolicyCall) Context(ctx context.Context) *NodeTemplatesGetIamPolicyCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *NetworkFirewallPoliciesGetRuleCall) Header() http.Header { +func (c *NodeTemplatesGetIamPolicyCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *NetworkFirewallPoliciesGetRuleCall) doRequest(alt string) (*http.Response, error) { +func (c *NodeTemplatesGetIamPolicyCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) if c.ifNoneMatch_ != "" { reqHeaders.Set("If-None-Match", c.ifNoneMatch_) } - var body io.Reader = nil c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/firewallPolicies/{firewallPolicy}/getRule") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/nodeTemplates/{resource}/getIamPolicy") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("GET", urls, body) + req, err := http.NewRequest("GET", urls, nil) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "firewallPolicy": c.firewallPolicy, + "project": c.project, + "region": c.region, + "resource": c.resource, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.nodeTemplates.getIamPolicy", "request", internallog.HTTPRequest(req, nil)) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.networkFirewallPolicies.getRule" call. +// Do executes the "compute.nodeTemplates.getIamPolicy" call. // Any non-2xx status code is an error. Response headers are in either -// *FirewallPolicyRule.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 *NetworkFirewallPoliciesGetRuleCall) Do(opts ...googleapi.CallOption) (*FirewallPolicyRule, error) { +// *Policy.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 *NodeTemplatesGetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -46344,50 +69478,63 @@ func (c *NetworkFirewallPoliciesGetRuleCall) Do(opts ...googleapi.CallOption) (* if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } - ret := &FirewallPolicyRule{ + ret := &Policy{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.nodeTemplates.getIamPolicy", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type NetworkFirewallPoliciesInsertCall struct { - s *Service - project string - firewallpolicy *FirewallPolicy - urlParams_ gensupport.URLParams - ctx_ context.Context - header_ http.Header +type NodeTemplatesInsertCall struct { + s *Service + project string + region string + nodetemplate *NodeTemplate + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header } -// Insert: Creates a new policy in the specified project using the data +// Insert: Creates a NodeTemplate resource in the specified project using the +// data // included in the request. // // - project: Project ID for this request. -func (r *NetworkFirewallPoliciesService) Insert(project string, firewallpolicy *FirewallPolicy) *NetworkFirewallPoliciesInsertCall { - c := &NetworkFirewallPoliciesInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)} +// - region: The name of the region for this request. +func (r *NodeTemplatesService) Insert(project string, region string, nodetemplate *NodeTemplate) *NodeTemplatesInsertCall { + c := &NodeTemplatesInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project - c.firewallpolicy = firewallpolicy + c.region = region + c.nodetemplate = nodetemplate 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 *NetworkFirewallPoliciesInsertCall) RequestId(requestId string) *NetworkFirewallPoliciesInsertCall { +// 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 *NodeTemplatesInsertCall) RequestId(requestId string) *NodeTemplatesInsertCall { c.urlParams_.Set("requestId", requestId) return c } @@ -46395,36 +69542,35 @@ func (c *NetworkFirewallPoliciesInsertCall) RequestId(requestId string) *Network // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *NetworkFirewallPoliciesInsertCall) Fields(s ...googleapi.Field) *NetworkFirewallPoliciesInsertCall { +func (c *NodeTemplatesInsertCall) Fields(s ...googleapi.Field) *NodeTemplatesInsertCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } // Context sets the context to be used in this call's Do method. -func (c *NetworkFirewallPoliciesInsertCall) Context(ctx context.Context) *NetworkFirewallPoliciesInsertCall { +func (c *NodeTemplatesInsertCall) Context(ctx context.Context) *NodeTemplatesInsertCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *NetworkFirewallPoliciesInsertCall) Header() http.Header { +func (c *NodeTemplatesInsertCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *NetworkFirewallPoliciesInsertCall) doRequest(alt string) (*http.Response, error) { +func (c *NodeTemplatesInsertCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) - var body io.Reader = nil - body, err := googleapi.WithoutDataWrapper.JSONReader(c.firewallpolicy) + body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.nodetemplate) if err != nil { return nil, err } c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/firewallPolicies") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/nodeTemplates") urls += "?" + c.urlParams_.Encode() req, err := http.NewRequest("POST", urls, body) if err != nil { @@ -46433,16 +69579,18 @@ func (c *NetworkFirewallPoliciesInsertCall) doRequest(alt string) (*http.Respons req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ "project": c.project, + "region": c.region, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.nodeTemplates.insert", "request", internallog.HTTPRequest(req, body.Bytes())) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.networkFirewallPolicies.insert" call. +// Do executes the "compute.nodeTemplates.insert" call. // 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 *NetworkFirewallPoliciesInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) { +func (c *NodeTemplatesInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -46468,105 +69616,160 @@ func (c *NetworkFirewallPoliciesInsertCall) Do(opts ...googleapi.CallOption) (*O }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.nodeTemplates.insert", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type NetworkFirewallPoliciesListCall struct { +type NodeTemplatesListCall struct { s *Service project string + region string urlParams_ gensupport.URLParams ifNoneMatch_ string ctx_ context.Context header_ http.Header } -// List: Lists all the policies that have been configured for the specified +// List: Retrieves a list of node templates available to the specified // project. // // - project: Project ID for this request. -func (r *NetworkFirewallPoliciesService) List(project string) *NetworkFirewallPoliciesListCall { - c := &NetworkFirewallPoliciesListCall{s: r.s, urlParams_: make(gensupport.URLParams)} +// - region: The name of the region for this request. +func (r *NodeTemplatesService) List(project string, region string) *NodeTemplatesListCall { + c := &NodeTemplatesListCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project + c.region = region return c } // Filter sets the optional parameter "filter": A filter expression that -// filters resources listed in the response. Most Compute resources support two -// types of filter expressions: expressions that support regular expressions -// and expressions that follow API improvement proposal AIP-160. These two -// types of filter expressions cannot be mixed in one request. If you want to -// use AIP-160, your expression must specify the field name, an operator, and -// the value that you want to use for filtering. The value must be a string, a -// number, or a boolean. The 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`. The `:*` comparison can be used to test whether a key has -// been defined. For example, to find all objects with `owner` label use: ``` -// labels.owner:* ``` 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) ``` If you want to use a regular -// expression, use the `eq` (equal) or `ne` (not equal) operator against a -// single un-parenthesized expression with or without quotes or against -// multiple parenthesized expressions. Examples: `fieldname eq unquoted -// literal` `fieldname eq 'single quoted literal'` `fieldname eq "double quoted -// literal" `(fieldname1 eq literal) (fieldname2 ne "literal")` The literal -// value is interpreted as a regular expression using Google RE2 library -// syntax. The literal value must match the entire field. For example, to -// filter for instances that do not end with name "instance", you would use -// `name ne .*instance`. You cannot combine constraints on multiple fields -// using regular expressions. -func (c *NetworkFirewallPoliciesListCall) Filter(filter string) *NetworkFirewallPoliciesListCall { +// filters resources listed in the response. Most +// Compute resources support two types of filter expressions: +// expressions that support regular expressions and expressions that follow +// API improvement proposal AIP-160. +// These two types of filter expressions cannot be mixed in one request. +// +// If you want to use AIP-160, your expression must specify the field name, +// an +// operator, and the value that you want to use for filtering. The value +// must be a string, a number, or a boolean. The 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`. +// +// The `:*` comparison can be used to test whether a key has been defined. +// For example, to find all objects with `owner` label +// use: +// ``` +// labels.owner:* +// ``` +// +// 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 onresource 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) +// ``` +// +// If you want to use a regular expression, use the `eq` (equal) or `ne` +// (not equal) operator against a single un-parenthesized expression with +// or +// without quotes or against multiple parenthesized expressions. +// Examples: +// +// `fieldname eq unquoted literal` +// `fieldname eq 'single quoted literal'` +// `fieldname eq "double quoted literal" +// `(fieldname1 eq literal) (fieldname2 ne "literal")` +// +// The literal value is interpreted as a regular expression using GoogleRE2 +// library syntax. +// The literal value must match the entire field. +// +// For example, to filter for instances that do not end with name +// "instance", +// you would use `name ne .*instance`. +// +// You cannot combine constraints on multiple fields using regular +// expressions. +func (c *NodeTemplatesListCall) Filter(filter string) *NodeTemplatesListCall { 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 *NetworkFirewallPoliciesListCall) MaxResults(maxResults int64) *NetworkFirewallPoliciesListCall { +// 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 *NodeTemplatesListCall) MaxResults(maxResults int64) *NodeTemplatesListCall { 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 *NetworkFirewallPoliciesListCall) OrderBy(orderBy string) *NetworkFirewallPoliciesListCall { +// 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 *NodeTemplatesListCall) OrderBy(orderBy string) *NodeTemplatesListCall { 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 *NetworkFirewallPoliciesListCall) PageToken(pageToken string) *NetworkFirewallPoliciesListCall { +// use. Set `pageToken` to the +// `nextPageToken` returned by a previous list request to get +// the next page of results. +func (c *NodeTemplatesListCall) PageToken(pageToken string) *NodeTemplatesListCall { c.urlParams_.Set("pageToken", pageToken) return c } // ReturnPartialSuccess sets the optional parameter "returnPartialSuccess": -// Opt-in for partial success behavior which provides partial results in case -// of failure. The default value is false. For example, when partial success -// behavior is enabled, aggregatedList for a single zone scope either returns -// all resources in the zone or no resources, with an error code. -func (c *NetworkFirewallPoliciesListCall) ReturnPartialSuccess(returnPartialSuccess bool) *NetworkFirewallPoliciesListCall { +// Opt-in for partial success behavior which provides partial results in +// case +// of failure. The default value is false. +// +// For example, when partial success behavior is enabled, aggregatedList for +// a +// single zone scope either returns all resources in the zone or no +// resources, +// with an error code. +func (c *NodeTemplatesListCall) ReturnPartialSuccess(returnPartialSuccess bool) *NodeTemplatesListCall { c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess)) return c } @@ -46574,7 +69777,7 @@ func (c *NetworkFirewallPoliciesListCall) ReturnPartialSuccess(returnPartialSucc // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *NetworkFirewallPoliciesListCall) Fields(s ...googleapi.Field) *NetworkFirewallPoliciesListCall { +func (c *NodeTemplatesListCall) Fields(s ...googleapi.Field) *NodeTemplatesListCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } @@ -46582,54 +69785,55 @@ func (c *NetworkFirewallPoliciesListCall) Fields(s ...googleapi.Field) *NetworkF // IfNoneMatch sets an 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. -func (c *NetworkFirewallPoliciesListCall) IfNoneMatch(entityTag string) *NetworkFirewallPoliciesListCall { +func (c *NodeTemplatesListCall) IfNoneMatch(entityTag string) *NodeTemplatesListCall { c.ifNoneMatch_ = entityTag return c } // Context sets the context to be used in this call's Do method. -func (c *NetworkFirewallPoliciesListCall) Context(ctx context.Context) *NetworkFirewallPoliciesListCall { +func (c *NodeTemplatesListCall) Context(ctx context.Context) *NodeTemplatesListCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *NetworkFirewallPoliciesListCall) Header() http.Header { +func (c *NodeTemplatesListCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *NetworkFirewallPoliciesListCall) doRequest(alt string) (*http.Response, error) { +func (c *NodeTemplatesListCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) if c.ifNoneMatch_ != "" { reqHeaders.Set("If-None-Match", c.ifNoneMatch_) } - var body io.Reader = nil c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/firewallPolicies") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/nodeTemplates") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("GET", urls, body) + req, err := http.NewRequest("GET", urls, nil) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ "project": c.project, + "region": c.region, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.nodeTemplates.list", "request", internallog.HTTPRequest(req, nil)) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.networkFirewallPolicies.list" call. +// Do executes the "compute.nodeTemplates.list" call. // Any non-2xx status code is an error. Response headers are in either -// *FirewallPolicyList.ServerResponse.Header or (if a response was returned at +// *NodeTemplateList.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 *NetworkFirewallPoliciesListCall) Do(opts ...googleapi.CallOption) (*FirewallPolicyList, error) { +func (c *NodeTemplatesListCall) Do(opts ...googleapi.CallOption) (*NodeTemplateList, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -46648,23 +69852,25 @@ func (c *NetworkFirewallPoliciesListCall) Do(opts ...googleapi.CallOption) (*Fir if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } - ret := &FirewallPolicyList{ + ret := &NodeTemplateList{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.nodeTemplates.list", "response", internallog.HTTPResponse(res, b)) return ret, nil } // 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 *NetworkFirewallPoliciesListCall) Pages(ctx context.Context, f func(*FirewallPolicyList) error) error { +func (c *NodeTemplatesListCall) Pages(ctx context.Context, f func(*NodeTemplateList) error) error { c.ctx_ = ctx defer c.PageToken(c.urlParams_.Get("pageToken")) for { @@ -46682,95 +69888,86 @@ func (c *NetworkFirewallPoliciesListCall) Pages(ctx context.Context, f func(*Fir } } -type NetworkFirewallPoliciesPatchCall struct { - s *Service - project string - firewallPolicy string - firewallpolicy *FirewallPolicy - urlParams_ gensupport.URLParams - ctx_ context.Context - header_ http.Header +type NodeTemplatesSetIamPolicyCall struct { + s *Service + project string + region string + resource string + regionsetpolicyrequest *RegionSetPolicyRequest + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header } -// Patch: Patches the specified policy with the data included in the request. +// SetIamPolicy: Sets the access control policy on the specified +// resource. +// Replaces any existing policy. // -// - firewallPolicy: Name of the firewall policy to update. // - project: Project ID for this request. -func (r *NetworkFirewallPoliciesService) Patch(project string, firewallPolicy string, firewallpolicy *FirewallPolicy) *NetworkFirewallPoliciesPatchCall { - c := &NetworkFirewallPoliciesPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)} +// - region: The name of the region for this request. +// - resource: Name or id of the resource for this request. +func (r *NodeTemplatesService) SetIamPolicy(project string, region string, resource string, regionsetpolicyrequest *RegionSetPolicyRequest) *NodeTemplatesSetIamPolicyCall { + c := &NodeTemplatesSetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project - c.firewallPolicy = firewallPolicy - c.firewallpolicy = firewallpolicy - 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 *NetworkFirewallPoliciesPatchCall) RequestId(requestId string) *NetworkFirewallPoliciesPatchCall { - c.urlParams_.Set("requestId", requestId) + c.region = region + c.resource = resource + c.regionsetpolicyrequest = regionsetpolicyrequest return c } // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *NetworkFirewallPoliciesPatchCall) Fields(s ...googleapi.Field) *NetworkFirewallPoliciesPatchCall { +func (c *NodeTemplatesSetIamPolicyCall) Fields(s ...googleapi.Field) *NodeTemplatesSetIamPolicyCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } // Context sets the context to be used in this call's Do method. -func (c *NetworkFirewallPoliciesPatchCall) Context(ctx context.Context) *NetworkFirewallPoliciesPatchCall { +func (c *NodeTemplatesSetIamPolicyCall) Context(ctx context.Context) *NodeTemplatesSetIamPolicyCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *NetworkFirewallPoliciesPatchCall) Header() http.Header { +func (c *NodeTemplatesSetIamPolicyCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *NetworkFirewallPoliciesPatchCall) doRequest(alt string) (*http.Response, error) { +func (c *NodeTemplatesSetIamPolicyCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) - var body io.Reader = nil - body, err := googleapi.WithoutDataWrapper.JSONReader(c.firewallpolicy) + body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.regionsetpolicyrequest) if err != nil { return nil, err } c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/firewallPolicies/{firewallPolicy}") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/nodeTemplates/{resource}/setIamPolicy") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("PATCH", urls, body) + req, err := http.NewRequest("POST", urls, body) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "firewallPolicy": c.firewallPolicy, + "project": c.project, + "region": c.region, + "resource": c.resource, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.nodeTemplates.setIamPolicy", "request", internallog.HTTPRequest(req, body.Bytes())) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.networkFirewallPolicies.patch" call. +// Do executes the "compute.nodeTemplates.setIamPolicy" call. // 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 +// *Policy.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 *NetworkFirewallPoliciesPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) { +func (c *NodeTemplatesSetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -46789,96 +69986,79 @@ func (c *NetworkFirewallPoliciesPatchCall) Do(opts ...googleapi.CallOption) (*Op if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } - ret := &Operation{ + ret := &Policy{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.nodeTemplates.setIamPolicy", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type NetworkFirewallPoliciesPatchRuleCall struct { - s *Service - project string - firewallPolicy string - firewallpolicyrule *FirewallPolicyRule - urlParams_ gensupport.URLParams - ctx_ context.Context - header_ http.Header +type NodeTemplatesTestIamPermissionsCall struct { + s *Service + project string + region string + resource string + testpermissionsrequest *TestPermissionsRequest + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header } -// PatchRule: Patches a rule of the specified priority. +// TestIamPermissions: Returns permissions that a caller has on the specified +// resource. // -// - firewallPolicy: Name of the firewall policy to update. // - project: Project ID for this request. -func (r *NetworkFirewallPoliciesService) PatchRule(project string, firewallPolicy string, firewallpolicyrule *FirewallPolicyRule) *NetworkFirewallPoliciesPatchRuleCall { - c := &NetworkFirewallPoliciesPatchRuleCall{s: r.s, urlParams_: make(gensupport.URLParams)} +// - region: The name of the region for this request. +// - resource: Name or id of the resource for this request. +func (r *NodeTemplatesService) TestIamPermissions(project string, region string, resource string, testpermissionsrequest *TestPermissionsRequest) *NodeTemplatesTestIamPermissionsCall { + c := &NodeTemplatesTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project - c.firewallPolicy = firewallPolicy - c.firewallpolicyrule = firewallpolicyrule - return c -} - -// Priority sets the optional parameter "priority": The priority of the rule to -// patch. -func (c *NetworkFirewallPoliciesPatchRuleCall) Priority(priority int64) *NetworkFirewallPoliciesPatchRuleCall { - c.urlParams_.Set("priority", fmt.Sprint(priority)) - 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 *NetworkFirewallPoliciesPatchRuleCall) RequestId(requestId string) *NetworkFirewallPoliciesPatchRuleCall { - c.urlParams_.Set("requestId", requestId) + c.region = region + c.resource = resource + c.testpermissionsrequest = testpermissionsrequest return c } // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *NetworkFirewallPoliciesPatchRuleCall) Fields(s ...googleapi.Field) *NetworkFirewallPoliciesPatchRuleCall { +func (c *NodeTemplatesTestIamPermissionsCall) Fields(s ...googleapi.Field) *NodeTemplatesTestIamPermissionsCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } // Context sets the context to be used in this call's Do method. -func (c *NetworkFirewallPoliciesPatchRuleCall) Context(ctx context.Context) *NetworkFirewallPoliciesPatchRuleCall { +func (c *NodeTemplatesTestIamPermissionsCall) Context(ctx context.Context) *NodeTemplatesTestIamPermissionsCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *NetworkFirewallPoliciesPatchRuleCall) Header() http.Header { +func (c *NodeTemplatesTestIamPermissionsCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *NetworkFirewallPoliciesPatchRuleCall) doRequest(alt string) (*http.Response, error) { +func (c *NodeTemplatesTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) - var body io.Reader = nil - body, err := googleapi.WithoutDataWrapper.JSONReader(c.firewallpolicyrule) + body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.testpermissionsrequest) if err != nil { return nil, err } c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/firewallPolicies/{firewallPolicy}/patchRule") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/nodeTemplates/{resource}/testIamPermissions") urls += "?" + c.urlParams_.Encode() req, err := http.NewRequest("POST", urls, body) if err != nil { @@ -46886,18 +70066,21 @@ func (c *NetworkFirewallPoliciesPatchRuleCall) doRequest(alt string) (*http.Resp } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "firewallPolicy": c.firewallPolicy, + "project": c.project, + "region": c.region, + "resource": c.resource, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.nodeTemplates.testIamPermissions", "request", internallog.HTTPRequest(req, body.Bytes())) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.networkFirewallPolicies.patchRule" call. +// Do executes the "compute.nodeTemplates.testIamPermissions" call. // 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 *NetworkFirewallPoliciesPatchRuleCall) Do(opts ...googleapi.CallOption) (*Operation, error) { +// *TestPermissionsResponse.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 *NodeTemplatesTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -46916,109 +70099,394 @@ func (c *NetworkFirewallPoliciesPatchRuleCall) Do(opts ...googleapi.CallOption) if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } - ret := &Operation{ + ret := &TestPermissionsResponse{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.nodeTemplates.testIamPermissions", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type NetworkFirewallPoliciesRemoveAssociationCall struct { - s *Service - project string - firewallPolicy string - urlParams_ gensupport.URLParams - ctx_ context.Context - header_ http.Header +type NodeTypesAggregatedListCall struct { + s *Service + project string + urlParams_ gensupport.URLParams + ifNoneMatch_ string + ctx_ context.Context + header_ http.Header } -// RemoveAssociation: Removes an association for the specified firewall policy. +// AggregatedList: Retrieves an aggregated list of node types. +// +// To prevent failure, Google recommends that you set +// the +// `returnPartialSuccess` parameter to `true`. // -// - firewallPolicy: Name of the firewall policy to update. // - project: Project ID for this request. -func (r *NetworkFirewallPoliciesService) RemoveAssociation(project string, firewallPolicy string) *NetworkFirewallPoliciesRemoveAssociationCall { - c := &NetworkFirewallPoliciesRemoveAssociationCall{s: r.s, urlParams_: make(gensupport.URLParams)} +func (r *NodeTypesService) AggregatedList(project string) *NodeTypesAggregatedListCall { + c := &NodeTypesAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project - c.firewallPolicy = firewallPolicy return c } -// Name sets the optional parameter "name": Name for the attachment that will -// be removed. -func (c *NetworkFirewallPoliciesRemoveAssociationCall) Name(name string) *NetworkFirewallPoliciesRemoveAssociationCall { - c.urlParams_.Set("name", name) +// Filter sets the optional parameter "filter": A filter expression that +// filters resources listed in the response. Most +// Compute resources support two types of filter expressions: +// expressions that support regular expressions and expressions that follow +// API improvement proposal AIP-160. +// These two types of filter expressions cannot be mixed in one request. +// +// If you want to use AIP-160, your expression must specify the field name, +// an +// operator, and the value that you want to use for filtering. The value +// must be a string, a number, or a boolean. The 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`. +// +// The `:*` comparison can be used to test whether a key has been defined. +// For example, to find all objects with `owner` label +// use: +// ``` +// labels.owner:* +// ``` +// +// 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 onresource 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) +// ``` +// +// If you want to use a regular expression, use the `eq` (equal) or `ne` +// (not equal) operator against a single un-parenthesized expression with +// or +// without quotes or against multiple parenthesized expressions. +// Examples: +// +// `fieldname eq unquoted literal` +// `fieldname eq 'single quoted literal'` +// `fieldname eq "double quoted literal" +// `(fieldname1 eq literal) (fieldname2 ne "literal")` +// +// The literal value is interpreted as a regular expression using GoogleRE2 +// library syntax. +// The literal value must match the entire field. +// +// For example, to filter for instances that do not end with name +// "instance", +// you would use `name ne .*instance`. +// +// You cannot combine constraints on multiple fields using regular +// expressions. +func (c *NodeTypesAggregatedListCall) Filter(filter string) *NodeTypesAggregatedListCall { + c.urlParams_.Set("filter", filter) 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 *NetworkFirewallPoliciesRemoveAssociationCall) RequestId(requestId string) *NetworkFirewallPoliciesRemoveAssociationCall { - c.urlParams_.Set("requestId", requestId) +// IncludeAllScopes sets the optional parameter "includeAllScopes": Indicates +// whether every visible scope for each scope type (zone, region, +// global) should be included in the response. For new resource types +// added +// after this field, the flag has no effect as new resource types will +// always +// include every visible scope for each scope type in response. For +// resource +// types which predate this field, if this flag is omitted or false, +// only +// scopes of the scope types where the resource type is expected to be +// found +// will be included. +func (c *NodeTypesAggregatedListCall) IncludeAllScopes(includeAllScopes bool) *NodeTypesAggregatedListCall { + c.urlParams_.Set("includeAllScopes", fmt.Sprint(includeAllScopes)) + 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 *NodeTypesAggregatedListCall) MaxResults(maxResults int64) *NodeTypesAggregatedListCall { + 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 *NodeTypesAggregatedListCall) OrderBy(orderBy string) *NodeTypesAggregatedListCall { + 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 *NodeTypesAggregatedListCall) PageToken(pageToken string) *NodeTypesAggregatedListCall { + c.urlParams_.Set("pageToken", pageToken) + return c +} + +// ReturnPartialSuccess sets the optional parameter "returnPartialSuccess": +// Opt-in for partial success behavior which provides partial results in +// case +// of failure. The default value is false. +// +// For example, when partial success behavior is enabled, aggregatedList for +// a +// single zone scope either returns all resources in the zone or no +// resources, +// with an error code. +func (c *NodeTypesAggregatedListCall) ReturnPartialSuccess(returnPartialSuccess bool) *NodeTypesAggregatedListCall { + c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess)) + return c +} + +// ServiceProjectNumber sets the optional parameter "serviceProjectNumber": The +// Shared VPC service project id or service project number for which +// aggregated list request is invoked for subnetworks list-usable api. +func (c *NodeTypesAggregatedListCall) ServiceProjectNumber(serviceProjectNumber int64) *NodeTypesAggregatedListCall { + c.urlParams_.Set("serviceProjectNumber", fmt.Sprint(serviceProjectNumber)) return c } // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *NetworkFirewallPoliciesRemoveAssociationCall) Fields(s ...googleapi.Field) *NetworkFirewallPoliciesRemoveAssociationCall { +func (c *NodeTypesAggregatedListCall) Fields(s ...googleapi.Field) *NodeTypesAggregatedListCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } +// IfNoneMatch sets an 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. +func (c *NodeTypesAggregatedListCall) IfNoneMatch(entityTag string) *NodeTypesAggregatedListCall { + c.ifNoneMatch_ = entityTag + return c +} + // Context sets the context to be used in this call's Do method. -func (c *NetworkFirewallPoliciesRemoveAssociationCall) Context(ctx context.Context) *NetworkFirewallPoliciesRemoveAssociationCall { +func (c *NodeTypesAggregatedListCall) Context(ctx context.Context) *NodeTypesAggregatedListCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *NetworkFirewallPoliciesRemoveAssociationCall) Header() http.Header { +func (c *NodeTypesAggregatedListCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *NetworkFirewallPoliciesRemoveAssociationCall) doRequest(alt string) (*http.Response, error) { +func (c *NodeTypesAggregatedListCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) - var body io.Reader = nil + if c.ifNoneMatch_ != "" { + reqHeaders.Set("If-None-Match", c.ifNoneMatch_) + } c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/firewallPolicies/{firewallPolicy}/removeAssociation") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/aggregated/nodeTypes") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("POST", urls, body) + req, err := http.NewRequest("GET", urls, nil) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "firewallPolicy": c.firewallPolicy, + "project": c.project, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.nodeTypes.aggregatedList", "request", internallog.HTTPRequest(req, nil)) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.networkFirewallPolicies.removeAssociation" call. +// Do executes the "compute.nodeTypes.aggregatedList" call. // 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 +// *NodeTypeAggregatedList.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 *NodeTypesAggregatedListCall) Do(opts ...googleapi.CallOption) (*NodeTypeAggregatedList, 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, gensupport.WrapError(&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, gensupport.WrapError(err) + } + ret := &NodeTypeAggregatedList{ + ServerResponse: googleapi.ServerResponse{ + Header: res.Header, + HTTPStatusCode: res.StatusCode, + }, + } + target := &ret + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { + return nil, err + } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.nodeTypes.aggregatedList", "response", internallog.HTTPResponse(res, b)) + return ret, nil +} + +// 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 *NodeTypesAggregatedListCall) Pages(ctx context.Context, f func(*NodeTypeAggregatedList) error) error { + c.ctx_ = ctx + defer c.PageToken(c.urlParams_.Get("pageToken")) + 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) + } +} + +type NodeTypesGetCall struct { + s *Service + project string + zone string + nodeType string + urlParams_ gensupport.URLParams + ifNoneMatch_ string + ctx_ context.Context + header_ http.Header +} + +// Get: Returns the specified node type. +// +// - nodeType: Name of the node type to return. +// - project: Project ID for this request. +// - zone: The name of the zone for this request. +func (r *NodeTypesService) Get(project string, zone string, nodeType string) *NodeTypesGetCall { + c := &NodeTypesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)} + c.project = project + c.zone = zone + c.nodeType = nodeType + return c +} + +// Fields allows partial responses to be retrieved. See +// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more +// details. +func (c *NodeTypesGetCall) Fields(s ...googleapi.Field) *NodeTypesGetCall { + c.urlParams_.Set("fields", googleapi.CombineFields(s)) + return c +} + +// IfNoneMatch sets an 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. +func (c *NodeTypesGetCall) IfNoneMatch(entityTag string) *NodeTypesGetCall { + c.ifNoneMatch_ = entityTag + return c +} + +// Context sets the context to be used in this call's Do method. +func (c *NodeTypesGetCall) Context(ctx context.Context) *NodeTypesGetCall { + c.ctx_ = ctx + return c +} + +// Header returns a http.Header that can be modified by the caller to add +// headers to the request. +func (c *NodeTypesGetCall) Header() http.Header { + if c.header_ == nil { + c.header_ = make(http.Header) + } + return c.header_ +} + +func (c *NodeTypesGetCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) + if c.ifNoneMatch_ != "" { + reqHeaders.Set("If-None-Match", c.ifNoneMatch_) + } + c.urlParams_.Set("alt", alt) + c.urlParams_.Set("prettyPrint", "false") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/nodeTypes/{nodeType}") + urls += "?" + c.urlParams_.Encode() + req, err := http.NewRequest("GET", urls, nil) + if err != nil { + return nil, err + } + req.Header = reqHeaders + googleapi.Expand(req.URL, map[string]string{ + "project": c.project, + "zone": c.zone, + "nodeType": c.nodeType, + }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.nodeTypes.get", "request", internallog.HTTPRequest(req, nil)) + return gensupport.SendRequest(c.ctx_, c.s.client, req) +} + +// Do executes the "compute.nodeTypes.get" call. +// Any non-2xx status code is an error. Response headers are in either +// *NodeType.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 *NetworkFirewallPoliciesRemoveAssociationCall) Do(opts ...googleapi.CallOption) (*Operation, error) { +func (c *NodeTypesGetCall) Do(opts ...googleapi.CallOption) (*NodeType, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -47037,109 +70505,230 @@ func (c *NetworkFirewallPoliciesRemoveAssociationCall) Do(opts ...googleapi.Call if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } - ret := &Operation{ + ret := &NodeType{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.nodeTypes.get", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type NetworkFirewallPoliciesRemoveRuleCall struct { - s *Service - project string - firewallPolicy string - urlParams_ gensupport.URLParams - ctx_ context.Context - header_ http.Header +type NodeTypesListCall struct { + s *Service + project string + zone string + urlParams_ gensupport.URLParams + ifNoneMatch_ string + ctx_ context.Context + header_ http.Header } -// RemoveRule: Deletes a rule of the specified priority. +// List: Retrieves a list of node types available to the specified +// project. // -// - firewallPolicy: Name of the firewall policy to update. // - project: Project ID for this request. -func (r *NetworkFirewallPoliciesService) RemoveRule(project string, firewallPolicy string) *NetworkFirewallPoliciesRemoveRuleCall { - c := &NetworkFirewallPoliciesRemoveRuleCall{s: r.s, urlParams_: make(gensupport.URLParams)} +// - zone: The name of the zone for this request. +func (r *NodeTypesService) List(project string, zone string) *NodeTypesListCall { + c := &NodeTypesListCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project - c.firewallPolicy = firewallPolicy + c.zone = zone return c } -// Priority sets the optional parameter "priority": The priority of the rule to -// remove from the firewall policy. -func (c *NetworkFirewallPoliciesRemoveRuleCall) Priority(priority int64) *NetworkFirewallPoliciesRemoveRuleCall { - c.urlParams_.Set("priority", fmt.Sprint(priority)) +// Filter sets the optional parameter "filter": A filter expression that +// filters resources listed in the response. Most +// Compute resources support two types of filter expressions: +// expressions that support regular expressions and expressions that follow +// API improvement proposal AIP-160. +// These two types of filter expressions cannot be mixed in one request. +// +// If you want to use AIP-160, your expression must specify the field name, +// an +// operator, and the value that you want to use for filtering. The value +// must be a string, a number, or a boolean. The 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`. +// +// The `:*` comparison can be used to test whether a key has been defined. +// For example, to find all objects with `owner` label +// use: +// ``` +// labels.owner:* +// ``` +// +// 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 onresource 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) +// ``` +// +// If you want to use a regular expression, use the `eq` (equal) or `ne` +// (not equal) operator against a single un-parenthesized expression with +// or +// without quotes or against multiple parenthesized expressions. +// Examples: +// +// `fieldname eq unquoted literal` +// `fieldname eq 'single quoted literal'` +// `fieldname eq "double quoted literal" +// `(fieldname1 eq literal) (fieldname2 ne "literal")` +// +// The literal value is interpreted as a regular expression using GoogleRE2 +// library syntax. +// The literal value must match the entire field. +// +// For example, to filter for instances that do not end with name +// "instance", +// you would use `name ne .*instance`. +// +// You cannot combine constraints on multiple fields using regular +// expressions. +func (c *NodeTypesListCall) Filter(filter string) *NodeTypesListCall { + c.urlParams_.Set("filter", filter) 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 *NetworkFirewallPoliciesRemoveRuleCall) RequestId(requestId string) *NetworkFirewallPoliciesRemoveRuleCall { - c.urlParams_.Set("requestId", requestId) +// 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 *NodeTypesListCall) MaxResults(maxResults int64) *NodeTypesListCall { + 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 *NodeTypesListCall) OrderBy(orderBy string) *NodeTypesListCall { + 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 *NodeTypesListCall) PageToken(pageToken string) *NodeTypesListCall { + c.urlParams_.Set("pageToken", pageToken) + return c +} + +// ReturnPartialSuccess sets the optional parameter "returnPartialSuccess": +// Opt-in for partial success behavior which provides partial results in +// case +// of failure. The default value is false. +// +// For example, when partial success behavior is enabled, aggregatedList for +// a +// single zone scope either returns all resources in the zone or no +// resources, +// with an error code. +func (c *NodeTypesListCall) ReturnPartialSuccess(returnPartialSuccess bool) *NodeTypesListCall { + c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess)) return c } // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *NetworkFirewallPoliciesRemoveRuleCall) Fields(s ...googleapi.Field) *NetworkFirewallPoliciesRemoveRuleCall { +func (c *NodeTypesListCall) Fields(s ...googleapi.Field) *NodeTypesListCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } +// IfNoneMatch sets an 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. +func (c *NodeTypesListCall) IfNoneMatch(entityTag string) *NodeTypesListCall { + c.ifNoneMatch_ = entityTag + return c +} + // Context sets the context to be used in this call's Do method. -func (c *NetworkFirewallPoliciesRemoveRuleCall) Context(ctx context.Context) *NetworkFirewallPoliciesRemoveRuleCall { +func (c *NodeTypesListCall) Context(ctx context.Context) *NodeTypesListCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *NetworkFirewallPoliciesRemoveRuleCall) Header() http.Header { +func (c *NodeTypesListCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *NetworkFirewallPoliciesRemoveRuleCall) doRequest(alt string) (*http.Response, error) { +func (c *NodeTypesListCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) - var body io.Reader = nil + if c.ifNoneMatch_ != "" { + reqHeaders.Set("If-None-Match", c.ifNoneMatch_) + } c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/firewallPolicies/{firewallPolicy}/removeRule") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/nodeTypes") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("POST", urls, body) + req, err := http.NewRequest("GET", urls, nil) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "firewallPolicy": c.firewallPolicy, + "project": c.project, + "zone": c.zone, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.nodeTypes.list", "request", internallog.HTTPRequest(req, nil)) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.networkFirewallPolicies.removeRule" call. +// Do executes the "compute.nodeTypes.list" call. // 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 +// *NodeTypeList.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 *NetworkFirewallPoliciesRemoveRuleCall) Do(opts ...googleapi.CallOption) (*Operation, error) { +func (c *NodeTypesListCall) Do(opts ...googleapi.CallOption) (*NodeTypeList, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -47158,75 +70747,141 @@ func (c *NetworkFirewallPoliciesRemoveRuleCall) Do(opts ...googleapi.CallOption) if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } - ret := &Operation{ + ret := &NodeTypeList{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.nodeTypes.list", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type NetworkFirewallPoliciesSetIamPolicyCall struct { - s *Service - project string - resource string - globalsetpolicyrequest *GlobalSetPolicyRequest - urlParams_ gensupport.URLParams - ctx_ context.Context - header_ http.Header +// 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 *NodeTypesListCall) Pages(ctx context.Context, f func(*NodeTypeList) error) error { + c.ctx_ = ctx + defer c.PageToken(c.urlParams_.Get("pageToken")) + 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) + } } -// SetIamPolicy: Sets the access control policy on the specified resource. -// Replaces any existing policy. +type OrganizationSecurityPoliciesAddAssociationCall struct { + s *Service + securityPolicy string + securitypolicyassociation *SecurityPolicyAssociation + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header +} + +// AddAssociation: Inserts an association for the specified security +// policy. // -// - project: Project ID for this request. -// - resource: Name or id of the resource for this request. -func (r *NetworkFirewallPoliciesService) SetIamPolicy(project string, resource string, globalsetpolicyrequest *GlobalSetPolicyRequest) *NetworkFirewallPoliciesSetIamPolicyCall { - c := &NetworkFirewallPoliciesSetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)} - c.project = project - c.resource = resource - c.globalsetpolicyrequest = globalsetpolicyrequest +// This has billing implications. Projects in the hierarchy with +// effective +// hierarchical security policies will be automatically enrolled into +// Cloud +// Armor Enterprise if not already enrolled. +// +// Use this API to modify Cloud Armor policies. Previously, alpha and +// beta +// versions of this API were used to modify firewall policies. This usage +// is +// now disabled for most organizations. Use +// firewallPolicies.addAssociation +// instead. +// +// - securityPolicy: Name of the security policy to update. +func (r *OrganizationSecurityPoliciesService) AddAssociation(securityPolicy string, securitypolicyassociation *SecurityPolicyAssociation) *OrganizationSecurityPoliciesAddAssociationCall { + c := &OrganizationSecurityPoliciesAddAssociationCall{s: r.s, urlParams_: make(gensupport.URLParams)} + c.securityPolicy = securityPolicy + c.securitypolicyassociation = securitypolicyassociation + return c +} + +// ReplaceExistingAssociation sets the optional parameter +// "replaceExistingAssociation": Indicates whether or not to replace it if an +// association of the attachment +// already exists. This is false by default, in which case an error will +// be +// returned if an association already exists. +func (c *OrganizationSecurityPoliciesAddAssociationCall) ReplaceExistingAssociation(replaceExistingAssociation bool) *OrganizationSecurityPoliciesAddAssociationCall { + c.urlParams_.Set("replaceExistingAssociation", fmt.Sprint(replaceExistingAssociation)) + 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 *OrganizationSecurityPoliciesAddAssociationCall) RequestId(requestId string) *OrganizationSecurityPoliciesAddAssociationCall { + 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 // details. -func (c *NetworkFirewallPoliciesSetIamPolicyCall) Fields(s ...googleapi.Field) *NetworkFirewallPoliciesSetIamPolicyCall { +func (c *OrganizationSecurityPoliciesAddAssociationCall) Fields(s ...googleapi.Field) *OrganizationSecurityPoliciesAddAssociationCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } // Context sets the context to be used in this call's Do method. -func (c *NetworkFirewallPoliciesSetIamPolicyCall) Context(ctx context.Context) *NetworkFirewallPoliciesSetIamPolicyCall { +func (c *OrganizationSecurityPoliciesAddAssociationCall) Context(ctx context.Context) *OrganizationSecurityPoliciesAddAssociationCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *NetworkFirewallPoliciesSetIamPolicyCall) Header() http.Header { +func (c *OrganizationSecurityPoliciesAddAssociationCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *NetworkFirewallPoliciesSetIamPolicyCall) doRequest(alt string) (*http.Response, error) { +func (c *OrganizationSecurityPoliciesAddAssociationCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) - var body io.Reader = nil - body, err := googleapi.WithoutDataWrapper.JSONReader(c.globalsetpolicyrequest) + body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.securitypolicyassociation) if err != nil { return nil, err } c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/firewallPolicies/{resource}/setIamPolicy") + urls := googleapi.ResolveRelative(c.s.BasePath, "locations/global/securityPolicies/{securityPolicy}/addAssociation") urls += "?" + c.urlParams_.Encode() req, err := http.NewRequest("POST", urls, body) if err != nil { @@ -47234,18 +70889,18 @@ func (c *NetworkFirewallPoliciesSetIamPolicyCall) doRequest(alt string) (*http.R } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "resource": c.resource, + "securityPolicy": c.securityPolicy, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.organizationSecurityPolicies.addAssociation", "request", internallog.HTTPRequest(req, body.Bytes())) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.networkFirewallPolicies.setIamPolicy" call. +// Do executes the "compute.organizationSecurityPolicies.addAssociation" call. // Any non-2xx status code is an error. Response headers are in either -// *Policy.ServerResponse.Header or (if a response was returned at all) in +// *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 *NetworkFirewallPoliciesSetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, error) { +func (c *OrganizationSecurityPoliciesAddAssociationCall) Do(opts ...googleapi.CallOption) (*Operation, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -47264,75 +70919,100 @@ func (c *NetworkFirewallPoliciesSetIamPolicyCall) Do(opts ...googleapi.CallOptio if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } - ret := &Policy{ + ret := &Operation{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.organizationSecurityPolicies.addAssociation", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type NetworkFirewallPoliciesTestIamPermissionsCall struct { - s *Service - project string - resource string - testpermissionsrequest *TestPermissionsRequest - urlParams_ gensupport.URLParams - ctx_ context.Context - header_ http.Header +type OrganizationSecurityPoliciesAddRuleCall struct { + s *Service + securityPolicy string + securitypolicyrule *SecurityPolicyRule + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header } -// TestIamPermissions: Returns permissions that a caller has on the specified -// resource. +// AddRule: Inserts a rule into a security policy. // -// - project: Project ID for this request. -// - resource: Name or id of the resource for this request. -func (r *NetworkFirewallPoliciesService) TestIamPermissions(project string, resource string, testpermissionsrequest *TestPermissionsRequest) *NetworkFirewallPoliciesTestIamPermissionsCall { - c := &NetworkFirewallPoliciesTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)} - c.project = project - c.resource = resource - c.testpermissionsrequest = testpermissionsrequest +// Use this API to modify Cloud Armor policies. Previously, alpha and +// beta +// versions of this API were used to modify firewall policies. This usage +// is +// now disabled for most organizations. Use firewallPolicies.addRule instead. +// +// - securityPolicy: Name of the security policy to update. +func (r *OrganizationSecurityPoliciesService) AddRule(securityPolicy string, securitypolicyrule *SecurityPolicyRule) *OrganizationSecurityPoliciesAddRuleCall { + c := &OrganizationSecurityPoliciesAddRuleCall{s: r.s, urlParams_: make(gensupport.URLParams)} + c.securityPolicy = securityPolicy + c.securitypolicyrule = securitypolicyrule + 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 *OrganizationSecurityPoliciesAddRuleCall) RequestId(requestId string) *OrganizationSecurityPoliciesAddRuleCall { + 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 // details. -func (c *NetworkFirewallPoliciesTestIamPermissionsCall) Fields(s ...googleapi.Field) *NetworkFirewallPoliciesTestIamPermissionsCall { +func (c *OrganizationSecurityPoliciesAddRuleCall) Fields(s ...googleapi.Field) *OrganizationSecurityPoliciesAddRuleCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } // Context sets the context to be used in this call's Do method. -func (c *NetworkFirewallPoliciesTestIamPermissionsCall) Context(ctx context.Context) *NetworkFirewallPoliciesTestIamPermissionsCall { +func (c *OrganizationSecurityPoliciesAddRuleCall) Context(ctx context.Context) *OrganizationSecurityPoliciesAddRuleCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *NetworkFirewallPoliciesTestIamPermissionsCall) Header() http.Header { +func (c *OrganizationSecurityPoliciesAddRuleCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *NetworkFirewallPoliciesTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) { +func (c *OrganizationSecurityPoliciesAddRuleCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) - var body io.Reader = nil - body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest) + body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.securitypolicyrule) if err != nil { return nil, err } c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/firewallPolicies/{resource}/testIamPermissions") + urls := googleapi.ResolveRelative(c.s.BasePath, "locations/global/securityPolicies/{securityPolicy}/addRule") urls += "?" + c.urlParams_.Encode() req, err := http.NewRequest("POST", urls, body) if err != nil { @@ -47340,19 +71020,18 @@ func (c *NetworkFirewallPoliciesTestIamPermissionsCall) doRequest(alt string) (* } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "resource": c.resource, + "securityPolicy": c.securityPolicy, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.organizationSecurityPolicies.addRule", "request", internallog.HTTPRequest(req, body.Bytes())) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.networkFirewallPolicies.testIamPermissions" call. +// Do executes the "compute.organizationSecurityPolicies.addRule" call. // Any non-2xx status code is an error. Response headers are in either -// *TestPermissionsResponse.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 *NetworkFirewallPoliciesTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) { +// *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 *OrganizationSecurityPoliciesAddRuleCall) Do(opts ...googleapi.CallOption) (*Operation, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -47371,108 +71050,122 @@ func (c *NetworkFirewallPoliciesTestIamPermissionsCall) Do(opts ...googleapi.Cal if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } - ret := &TestPermissionsResponse{ + ret := &Operation{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.organizationSecurityPolicies.addRule", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type NetworksAddPeeringCall struct { - s *Service - project string - network string - networksaddpeeringrequest *NetworksAddPeeringRequest - urlParams_ gensupport.URLParams - ctx_ context.Context - header_ http.Header +type OrganizationSecurityPoliciesCopyRulesCall struct { + s *Service + securityPolicy string + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header } -// AddPeering: Adds a peering to the specified network. +// CopyRules: Copies rules to the specified security policy. // -// - network: Name of the network resource to add peering to. -// - project: Project ID for this request. -func (r *NetworksService) AddPeering(project string, network string, networksaddpeeringrequest *NetworksAddPeeringRequest) *NetworksAddPeeringCall { - c := &NetworksAddPeeringCall{s: r.s, urlParams_: make(gensupport.URLParams)} - c.project = project - c.network = network - c.networksaddpeeringrequest = networksaddpeeringrequest +// Use this API to modify Cloud Armor policies. Previously, alpha and +// beta +// versions of this API were used to modify firewall policies. This usage +// is +// now disabled for most organizations. Use +// firewallPolicies.cloneRules +// instead. +// +// - securityPolicy: Name of the security policy to update. +func (r *OrganizationSecurityPoliciesService) CopyRules(securityPolicy string) *OrganizationSecurityPoliciesCopyRulesCall { + c := &OrganizationSecurityPoliciesCopyRulesCall{s: r.s, urlParams_: make(gensupport.URLParams)} + c.securityPolicy = securityPolicy 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 *NetworksAddPeeringCall) RequestId(requestId string) *NetworksAddPeeringCall { +// 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 *OrganizationSecurityPoliciesCopyRulesCall) RequestId(requestId string) *OrganizationSecurityPoliciesCopyRulesCall { c.urlParams_.Set("requestId", requestId) return c } +// SourceSecurityPolicy sets the optional parameter "sourceSecurityPolicy": The +// security policy from which to copy rules. +func (c *OrganizationSecurityPoliciesCopyRulesCall) SourceSecurityPolicy(sourceSecurityPolicy string) *OrganizationSecurityPoliciesCopyRulesCall { + c.urlParams_.Set("sourceSecurityPolicy", sourceSecurityPolicy) + return c +} + // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *NetworksAddPeeringCall) Fields(s ...googleapi.Field) *NetworksAddPeeringCall { +func (c *OrganizationSecurityPoliciesCopyRulesCall) Fields(s ...googleapi.Field) *OrganizationSecurityPoliciesCopyRulesCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } // Context sets the context to be used in this call's Do method. -func (c *NetworksAddPeeringCall) Context(ctx context.Context) *NetworksAddPeeringCall { +func (c *OrganizationSecurityPoliciesCopyRulesCall) Context(ctx context.Context) *OrganizationSecurityPoliciesCopyRulesCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *NetworksAddPeeringCall) Header() http.Header { +func (c *OrganizationSecurityPoliciesCopyRulesCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *NetworksAddPeeringCall) doRequest(alt string) (*http.Response, error) { - reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) - var body io.Reader = nil - body, err := googleapi.WithoutDataWrapper.JSONReader(c.networksaddpeeringrequest) - if err != nil { - return nil, err - } +func (c *OrganizationSecurityPoliciesCopyRulesCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/networks/{network}/addPeering") + urls := googleapi.ResolveRelative(c.s.BasePath, "locations/global/securityPolicies/{securityPolicy}/copyRules") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("POST", urls, body) + req, err := http.NewRequest("POST", urls, nil) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "network": c.network, + "securityPolicy": c.securityPolicy, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.organizationSecurityPolicies.copyRules", "request", internallog.HTTPRequest(req, nil)) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.networks.addPeering" call. +// Do executes the "compute.organizationSecurityPolicies.copyRules" call. // 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 *NetworksAddPeeringCall) Do(opts ...googleapi.CallOption) (*Operation, error) { +func (c *OrganizationSecurityPoliciesCopyRulesCall) Do(opts ...googleapi.CallOption) (*Operation, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -47498,43 +71191,55 @@ func (c *NetworksAddPeeringCall) Do(opts ...googleapi.CallOption) (*Operation, e }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.organizationSecurityPolicies.copyRules", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type NetworksDeleteCall struct { - s *Service - project string - network string - urlParams_ gensupport.URLParams - ctx_ context.Context - header_ http.Header +type OrganizationSecurityPoliciesDeleteCall struct { + s *Service + securityPolicy string + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header } -// Delete: Deletes the specified network. +// Delete: Deletes the specified policy. // -// - network: Name of the network to delete. -// - project: Project ID for this request. -func (r *NetworksService) Delete(project string, network string) *NetworksDeleteCall { - c := &NetworksDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)} - c.project = project - c.network = network +// Use this API to remove Cloud Armor policies. Previously, alpha and +// beta +// versions of this API were used to remove firewall policies. This usage +// is +// now disabled for most organizations. Use firewallPolicies.delete instead. +// +// - securityPolicy: Name of the security policy to delete. +func (r *OrganizationSecurityPoliciesService) Delete(securityPolicy string) *OrganizationSecurityPoliciesDeleteCall { + c := &OrganizationSecurityPoliciesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)} + c.securityPolicy = securityPolicy 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 *NetworksDeleteCall) RequestId(requestId string) *NetworksDeleteCall { +// 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 *OrganizationSecurityPoliciesDeleteCall) RequestId(requestId string) *OrganizationSecurityPoliciesDeleteCall { c.urlParams_.Set("requestId", requestId) return c } @@ -47542,51 +71247,50 @@ func (c *NetworksDeleteCall) RequestId(requestId string) *NetworksDeleteCall { // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *NetworksDeleteCall) Fields(s ...googleapi.Field) *NetworksDeleteCall { +func (c *OrganizationSecurityPoliciesDeleteCall) Fields(s ...googleapi.Field) *OrganizationSecurityPoliciesDeleteCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } // Context sets the context to be used in this call's Do method. -func (c *NetworksDeleteCall) Context(ctx context.Context) *NetworksDeleteCall { +func (c *OrganizationSecurityPoliciesDeleteCall) Context(ctx context.Context) *OrganizationSecurityPoliciesDeleteCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *NetworksDeleteCall) Header() http.Header { +func (c *OrganizationSecurityPoliciesDeleteCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *NetworksDeleteCall) doRequest(alt string) (*http.Response, error) { +func (c *OrganizationSecurityPoliciesDeleteCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) - var body io.Reader = nil c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/networks/{network}") + urls := googleapi.ResolveRelative(c.s.BasePath, "locations/global/securityPolicies/{securityPolicy}") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("DELETE", urls, body) + req, err := http.NewRequest("DELETE", urls, nil) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "network": c.network, + "securityPolicy": c.securityPolicy, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.organizationSecurityPolicies.delete", "request", internallog.HTTPRequest(req, nil)) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.networks.delete" call. +// Do executes the "compute.organizationSecurityPolicies.delete" call. // 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 *NetworksDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) { +func (c *OrganizationSecurityPoliciesDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -47612,37 +71316,43 @@ func (c *NetworksDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.organizationSecurityPolicies.delete", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type NetworksGetCall struct { - s *Service - project string - network string - urlParams_ gensupport.URLParams - ifNoneMatch_ string - ctx_ context.Context - header_ http.Header +type OrganizationSecurityPoliciesGetCall struct { + s *Service + securityPolicy string + urlParams_ gensupport.URLParams + ifNoneMatch_ string + ctx_ context.Context + header_ http.Header } -// Get: Returns the specified network. +// Get: List all of the ordered rules present in a single specified +// policy. // -// - network: Name of the network to return. -// - project: Project ID for this request. -func (r *NetworksService) Get(project string, network string) *NetworksGetCall { - c := &NetworksGetCall{s: r.s, urlParams_: make(gensupport.URLParams)} - c.project = project - c.network = network +// Use this API to read Cloud Armor policies. Previously, alpha and +// beta +// versions of this API were used to read firewall policies. This usage is +// now +// disabled for most organizations. Use firewallPolicies.get instead. +// +// - securityPolicy: Name of the security policy to get. +func (r *OrganizationSecurityPoliciesService) Get(securityPolicy string) *OrganizationSecurityPoliciesGetCall { + c := &OrganizationSecurityPoliciesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)} + c.securityPolicy = securityPolicy return c } // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *NetworksGetCall) Fields(s ...googleapi.Field) *NetworksGetCall { +func (c *OrganizationSecurityPoliciesGetCall) Fields(s ...googleapi.Field) *OrganizationSecurityPoliciesGetCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } @@ -47650,54 +71360,53 @@ func (c *NetworksGetCall) Fields(s ...googleapi.Field) *NetworksGetCall { // IfNoneMatch sets an 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. -func (c *NetworksGetCall) IfNoneMatch(entityTag string) *NetworksGetCall { +func (c *OrganizationSecurityPoliciesGetCall) IfNoneMatch(entityTag string) *OrganizationSecurityPoliciesGetCall { c.ifNoneMatch_ = entityTag return c } // Context sets the context to be used in this call's Do method. -func (c *NetworksGetCall) Context(ctx context.Context) *NetworksGetCall { +func (c *OrganizationSecurityPoliciesGetCall) Context(ctx context.Context) *OrganizationSecurityPoliciesGetCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *NetworksGetCall) Header() http.Header { +func (c *OrganizationSecurityPoliciesGetCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *NetworksGetCall) doRequest(alt string) (*http.Response, error) { +func (c *OrganizationSecurityPoliciesGetCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) if c.ifNoneMatch_ != "" { reqHeaders.Set("If-None-Match", c.ifNoneMatch_) } - var body io.Reader = nil c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/networks/{network}") + urls := googleapi.ResolveRelative(c.s.BasePath, "locations/global/securityPolicies/{securityPolicy}") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("GET", urls, body) + req, err := http.NewRequest("GET", urls, nil) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "network": c.network, + "securityPolicy": c.securityPolicy, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.organizationSecurityPolicies.get", "request", internallog.HTTPRequest(req, nil)) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.networks.get" call. +// Do executes the "compute.organizationSecurityPolicies.get" call. // Any non-2xx status code is an error. Response headers are in either -// *Network.ServerResponse.Header or (if a response was returned at all) in -// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check +// *SecurityPolicy.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 *NetworksGetCall) Do(opts ...googleapi.CallOption) (*Network, error) { +func (c *OrganizationSecurityPoliciesGetCall) Do(opts ...googleapi.CallOption) (*SecurityPolicy, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -47716,44 +71425,58 @@ func (c *NetworksGetCall) Do(opts ...googleapi.CallOption) (*Network, error) { if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } - ret := &Network{ + ret := &SecurityPolicy{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.organizationSecurityPolicies.get", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type NetworksGetEffectiveFirewallsCall struct { - s *Service - project string - network string - urlParams_ gensupport.URLParams - ifNoneMatch_ string - ctx_ context.Context - header_ http.Header +type OrganizationSecurityPoliciesGetAssociationCall struct { + s *Service + securityPolicy string + urlParams_ gensupport.URLParams + ifNoneMatch_ string + ctx_ context.Context + header_ http.Header } -// GetEffectiveFirewalls: Returns the effective firewalls on a given network. +// GetAssociation: Gets an association with the specified name. // -// - network: Name of the network for this request. -// - project: Project ID for this request. -func (r *NetworksService) GetEffectiveFirewalls(project string, network string) *NetworksGetEffectiveFirewallsCall { - c := &NetworksGetEffectiveFirewallsCall{s: r.s, urlParams_: make(gensupport.URLParams)} - c.project = project - c.network = network +// Use this API to read Cloud Armor policies. Previously, alpha and +// beta +// versions of this API were used to read firewall policies. This usage is +// now disabled for most organizations. Use +// firewallPolicies.getAssociation +// instead. +// +// - securityPolicy: Name of the security policy to which the queried rule +// belongs. +func (r *OrganizationSecurityPoliciesService) GetAssociation(securityPolicy string) *OrganizationSecurityPoliciesGetAssociationCall { + c := &OrganizationSecurityPoliciesGetAssociationCall{s: r.s, urlParams_: make(gensupport.URLParams)} + c.securityPolicy = securityPolicy + return c +} + +// Name sets the optional parameter "name": The name of the association to get +// from the security policy. +func (c *OrganizationSecurityPoliciesGetAssociationCall) Name(name string) *OrganizationSecurityPoliciesGetAssociationCall { + c.urlParams_.Set("name", name) return c } // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *NetworksGetEffectiveFirewallsCall) Fields(s ...googleapi.Field) *NetworksGetEffectiveFirewallsCall { +func (c *OrganizationSecurityPoliciesGetAssociationCall) Fields(s ...googleapi.Field) *OrganizationSecurityPoliciesGetAssociationCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } @@ -47761,55 +71484,54 @@ func (c *NetworksGetEffectiveFirewallsCall) Fields(s ...googleapi.Field) *Networ // IfNoneMatch sets an 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. -func (c *NetworksGetEffectiveFirewallsCall) IfNoneMatch(entityTag string) *NetworksGetEffectiveFirewallsCall { +func (c *OrganizationSecurityPoliciesGetAssociationCall) IfNoneMatch(entityTag string) *OrganizationSecurityPoliciesGetAssociationCall { c.ifNoneMatch_ = entityTag return c } // Context sets the context to be used in this call's Do method. -func (c *NetworksGetEffectiveFirewallsCall) Context(ctx context.Context) *NetworksGetEffectiveFirewallsCall { +func (c *OrganizationSecurityPoliciesGetAssociationCall) Context(ctx context.Context) *OrganizationSecurityPoliciesGetAssociationCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *NetworksGetEffectiveFirewallsCall) Header() http.Header { +func (c *OrganizationSecurityPoliciesGetAssociationCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *NetworksGetEffectiveFirewallsCall) doRequest(alt string) (*http.Response, error) { +func (c *OrganizationSecurityPoliciesGetAssociationCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) if c.ifNoneMatch_ != "" { reqHeaders.Set("If-None-Match", c.ifNoneMatch_) } - var body io.Reader = nil c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/networks/{network}/getEffectiveFirewalls") + urls := googleapi.ResolveRelative(c.s.BasePath, "locations/global/securityPolicies/{securityPolicy}/getAssociation") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("GET", urls, body) + req, err := http.NewRequest("GET", urls, nil) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "network": c.network, + "securityPolicy": c.securityPolicy, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.organizationSecurityPolicies.getAssociation", "request", internallog.HTTPRequest(req, nil)) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.networks.getEffectiveFirewalls" call. +// Do executes the "compute.organizationSecurityPolicies.getAssociation" call. // Any non-2xx status code is an error. Response headers are in either -// *NetworksGetEffectiveFirewallsResponse.ServerResponse.Header or (if a -// response was returned at all) in error.(*googleapi.Error).Header. Use +// *SecurityPolicyAssociation.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 *NetworksGetEffectiveFirewallsCall) Do(opts ...googleapi.CallOption) (*NetworksGetEffectiveFirewallsResponse, error) { +func (c *OrganizationSecurityPoliciesGetAssociationCall) Do(opts ...googleapi.CallOption) (*SecurityPolicyAssociation, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -47828,105 +71550,112 @@ func (c *NetworksGetEffectiveFirewallsCall) Do(opts ...googleapi.CallOption) (*N if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } - ret := &NetworksGetEffectiveFirewallsResponse{ + ret := &SecurityPolicyAssociation{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.organizationSecurityPolicies.getAssociation", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type NetworksInsertCall struct { - s *Service - project string - network *Network - urlParams_ gensupport.URLParams - ctx_ context.Context - header_ http.Header +type OrganizationSecurityPoliciesGetRuleCall struct { + s *Service + securityPolicy string + urlParams_ gensupport.URLParams + ifNoneMatch_ string + ctx_ context.Context + header_ http.Header } -// Insert: Creates a network in the specified project using the data included -// in the request. +// GetRule: Gets a rule at the specified priority. // -// - project: Project ID for this request. -func (r *NetworksService) Insert(project string, network *Network) *NetworksInsertCall { - c := &NetworksInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)} - c.project = project - c.network = network +// Use this API to read Cloud Armor policies. Previously, alpha and +// beta +// versions of this API were used to read firewall policies. This usage is +// now +// disabled for most organizations. Use firewallPolicies.getRule instead. +// +// - securityPolicy: Name of the security policy to which the queried rule +// belongs. +func (r *OrganizationSecurityPoliciesService) GetRule(securityPolicy string) *OrganizationSecurityPoliciesGetRuleCall { + c := &OrganizationSecurityPoliciesGetRuleCall{s: r.s, urlParams_: make(gensupport.URLParams)} + c.securityPolicy = securityPolicy 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 *NetworksInsertCall) RequestId(requestId string) *NetworksInsertCall { - c.urlParams_.Set("requestId", requestId) +// Priority sets the optional parameter "priority": The priority of the rule to +// get from the security policy. +func (c *OrganizationSecurityPoliciesGetRuleCall) Priority(priority int64) *OrganizationSecurityPoliciesGetRuleCall { + c.urlParams_.Set("priority", fmt.Sprint(priority)) return c } // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *NetworksInsertCall) Fields(s ...googleapi.Field) *NetworksInsertCall { +func (c *OrganizationSecurityPoliciesGetRuleCall) Fields(s ...googleapi.Field) *OrganizationSecurityPoliciesGetRuleCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } +// IfNoneMatch sets an 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. +func (c *OrganizationSecurityPoliciesGetRuleCall) IfNoneMatch(entityTag string) *OrganizationSecurityPoliciesGetRuleCall { + c.ifNoneMatch_ = entityTag + return c +} + // Context sets the context to be used in this call's Do method. -func (c *NetworksInsertCall) Context(ctx context.Context) *NetworksInsertCall { +func (c *OrganizationSecurityPoliciesGetRuleCall) Context(ctx context.Context) *OrganizationSecurityPoliciesGetRuleCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *NetworksInsertCall) Header() http.Header { +func (c *OrganizationSecurityPoliciesGetRuleCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *NetworksInsertCall) doRequest(alt string) (*http.Response, error) { - reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) - var body io.Reader = nil - body, err := googleapi.WithoutDataWrapper.JSONReader(c.network) - if err != nil { - return nil, err +func (c *OrganizationSecurityPoliciesGetRuleCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) + if c.ifNoneMatch_ != "" { + reqHeaders.Set("If-None-Match", c.ifNoneMatch_) } c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/networks") + urls := googleapi.ResolveRelative(c.s.BasePath, "locations/global/securityPolicies/{securityPolicy}/getRule") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("POST", urls, body) + req, err := http.NewRequest("GET", urls, nil) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, + "securityPolicy": c.securityPolicy, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.organizationSecurityPolicies.getRule", "request", internallog.HTTPRequest(req, nil)) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.networks.insert" call. +// Do executes the "compute.organizationSecurityPolicies.getRule" call. // 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 *NetworksInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) { +// *SecurityPolicyRule.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 *OrganizationSecurityPoliciesGetRuleCall) Do(opts ...googleapi.CallOption) (*SecurityPolicyRule, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -47945,173 +71674,123 @@ func (c *NetworksInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } - ret := &Operation{ + ret := &SecurityPolicyRule{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.organizationSecurityPolicies.getRule", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type NetworksListCall struct { - s *Service - project string - urlParams_ gensupport.URLParams - ifNoneMatch_ string - ctx_ context.Context - header_ http.Header +type OrganizationSecurityPoliciesInsertCall struct { + s *Service + securitypolicy *SecurityPolicy + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header } -// List: Retrieves the list of networks available to the specified project. +// Insert: Creates a new policy in the specified organization using the data +// included +// in the request. // -// - project: Project ID for this request. -func (r *NetworksService) List(project string) *NetworksListCall { - c := &NetworksListCall{s: r.s, urlParams_: make(gensupport.URLParams)} - c.project = project - return c -} - -// Filter sets the optional parameter "filter": A filter expression that -// filters resources listed in the response. Most Compute resources support two -// types of filter expressions: expressions that support regular expressions -// and expressions that follow API improvement proposal AIP-160. These two -// types of filter expressions cannot be mixed in one request. If you want to -// use AIP-160, your expression must specify the field name, an operator, and -// the value that you want to use for filtering. The value must be a string, a -// number, or a boolean. The 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`. The `:*` comparison can be used to test whether a key has -// been defined. For example, to find all objects with `owner` label use: ``` -// labels.owner:* ``` 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) ``` If you want to use a regular -// expression, use the `eq` (equal) or `ne` (not equal) operator against a -// single un-parenthesized expression with or without quotes or against -// multiple parenthesized expressions. Examples: `fieldname eq unquoted -// literal` `fieldname eq 'single quoted literal'` `fieldname eq "double quoted -// literal" `(fieldname1 eq literal) (fieldname2 ne "literal")` The literal -// value is interpreted as a regular expression using Google RE2 library -// syntax. The literal value must match the entire field. For example, to -// filter for instances that do not end with name "instance", you would use -// `name ne .*instance`. You cannot combine constraints on multiple fields -// using regular expressions. -func (c *NetworksListCall) Filter(filter string) *NetworksListCall { - 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 *NetworksListCall) MaxResults(maxResults int64) *NetworksListCall { - 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 *NetworksListCall) OrderBy(orderBy string) *NetworksListCall { - c.urlParams_.Set("orderBy", orderBy) +// Use this API to add Cloud Armor policies. Previously, alpha and +// beta +// versions of this API were used to add firewall policies. This usage is +// now +// disabled for most organizations. Use firewallPolicies.insert instead. +func (r *OrganizationSecurityPoliciesService) Insert(securitypolicy *SecurityPolicy) *OrganizationSecurityPoliciesInsertCall { + c := &OrganizationSecurityPoliciesInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)} + c.securitypolicy = securitypolicy 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 *NetworksListCall) PageToken(pageToken string) *NetworksListCall { - c.urlParams_.Set("pageToken", pageToken) +// ParentId sets the optional parameter "parentId": Parent ID for this request. +// The ID can be either be "folders/[FOLDER_ID]" +// if the parent is a folder or "organizations/[ORGANIZATION_ID]" if the +// parent is an organization. +func (c *OrganizationSecurityPoliciesInsertCall) ParentId(parentId string) *OrganizationSecurityPoliciesInsertCall { + c.urlParams_.Set("parentId", parentId) return c } -// ReturnPartialSuccess sets the optional parameter "returnPartialSuccess": -// Opt-in for partial success behavior which provides partial results in case -// of failure. The default value is false. For example, when partial success -// behavior is enabled, aggregatedList for a single zone scope either returns -// all resources in the zone or no resources, with an error code. -func (c *NetworksListCall) ReturnPartialSuccess(returnPartialSuccess bool) *NetworksListCall { - c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess)) +// 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 *OrganizationSecurityPoliciesInsertCall) RequestId(requestId string) *OrganizationSecurityPoliciesInsertCall { + 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 // details. -func (c *NetworksListCall) Fields(s ...googleapi.Field) *NetworksListCall { +func (c *OrganizationSecurityPoliciesInsertCall) Fields(s ...googleapi.Field) *OrganizationSecurityPoliciesInsertCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } -// IfNoneMatch sets an 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. -func (c *NetworksListCall) IfNoneMatch(entityTag string) *NetworksListCall { - c.ifNoneMatch_ = entityTag - return c -} - // Context sets the context to be used in this call's Do method. -func (c *NetworksListCall) Context(ctx context.Context) *NetworksListCall { +func (c *OrganizationSecurityPoliciesInsertCall) Context(ctx context.Context) *OrganizationSecurityPoliciesInsertCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *NetworksListCall) Header() http.Header { +func (c *OrganizationSecurityPoliciesInsertCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *NetworksListCall) doRequest(alt string) (*http.Response, error) { - reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) - if c.ifNoneMatch_ != "" { - reqHeaders.Set("If-None-Match", c.ifNoneMatch_) +func (c *OrganizationSecurityPoliciesInsertCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) + body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.securitypolicy) + if err != nil { + return nil, err } - var body io.Reader = nil c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/networks") + urls := googleapi.ResolveRelative(c.s.BasePath, "locations/global/securityPolicies") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("GET", urls, body) + req, err := http.NewRequest("POST", urls, body) if err != nil { return nil, err } req.Header = reqHeaders - googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.organizationSecurityPolicies.insert", "request", internallog.HTTPRequest(req, body.Bytes())) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.networks.list" call. +// Do executes the "compute.organizationSecurityPolicies.insert" call. // Any non-2xx status code is an error. Response headers are in either -// *NetworkList.ServerResponse.Header or (if a response was returned at all) in +// *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 *NetworksListCall) Do(opts ...googleapi.CallOption) (*NetworkList, error) { +func (c *OrganizationSecurityPoliciesInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -48130,163 +71809,173 @@ func (c *NetworksListCall) Do(opts ...googleapi.CallOption) (*NetworkList, error if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } - ret := &NetworkList{ + ret := &Operation{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.organizationSecurityPolicies.insert", "response", internallog.HTTPResponse(res, b)) return ret, nil } -// 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 *NetworksListCall) Pages(ctx context.Context, f func(*NetworkList) error) error { - c.ctx_ = ctx - defer c.PageToken(c.urlParams_.Get("pageToken")) - 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) - } -} - -type NetworksListPeeringRoutesCall struct { +type OrganizationSecurityPoliciesListCall struct { s *Service - project string - network string urlParams_ gensupport.URLParams ifNoneMatch_ string ctx_ context.Context header_ http.Header } -// ListPeeringRoutes: Lists the peering routes exchanged over peering -// connection. +// List: List all the policies that have been configured for the +// specified +// organization. // -// - network: Name of the network for this request. -// - project: Project ID for this request. -func (r *NetworksService) ListPeeringRoutes(project string, network string) *NetworksListPeeringRoutesCall { - c := &NetworksListPeeringRoutesCall{s: r.s, urlParams_: make(gensupport.URLParams)} - c.project = project - c.network = network +// Use this API to read Cloud Armor policies. Previously, alpha and +// beta +// versions of this API were used to read firewall policies. This usage is +// now +// disabled for most organizations. Use firewallPolicies.list instead. +func (r *OrganizationSecurityPoliciesService) List() *OrganizationSecurityPoliciesListCall { + c := &OrganizationSecurityPoliciesListCall{s: r.s, urlParams_: make(gensupport.URLParams)} return c } -// Direction sets the optional parameter "direction": The direction of the -// exchanged routes. +// Filter sets the optional parameter "filter": A filter expression that +// filters resources listed in the response. Most +// Compute resources support two types of filter expressions: +// expressions that support regular expressions and expressions that follow +// API improvement proposal AIP-160. +// These two types of filter expressions cannot be mixed in one request. // -// Possible values: +// If you want to use AIP-160, your expression must specify the field name, +// an +// operator, and the value that you want to use for filtering. The value +// must be a string, a number, or a boolean. The operator +// must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. // -// "INCOMING" - For routes exported from peer network. -// "OUTGOING" - For routes exported from local network. -func (c *NetworksListPeeringRoutesCall) Direction(direction string) *NetworksListPeeringRoutesCall { - c.urlParams_.Set("direction", direction) - return c -} - -// Filter sets the optional parameter "filter": A filter expression that -// filters resources listed in the response. Most Compute resources support two -// types of filter expressions: expressions that support regular expressions -// and expressions that follow API improvement proposal AIP-160. These two -// types of filter expressions cannot be mixed in one request. If you want to -// use AIP-160, your expression must specify the field name, an operator, and -// the value that you want to use for filtering. The value must be a string, a -// number, or a boolean. The 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`. The `:*` comparison can be used to test whether a key has -// been defined. For example, to find all objects with `owner` label use: ``` -// labels.owner:* ``` 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) ``` If you want to use a regular -// expression, use the `eq` (equal) or `ne` (not equal) operator against a -// single un-parenthesized expression with or without quotes or against -// multiple parenthesized expressions. Examples: `fieldname eq unquoted -// literal` `fieldname eq 'single quoted literal'` `fieldname eq "double quoted -// literal" `(fieldname1 eq literal) (fieldname2 ne "literal")` The literal -// value is interpreted as a regular expression using Google RE2 library -// syntax. The literal value must match the entire field. For example, to -// filter for instances that do not end with name "instance", you would use -// `name ne .*instance`. You cannot combine constraints on multiple fields -// using regular expressions. -func (c *NetworksListPeeringRoutesCall) Filter(filter string) *NetworksListPeeringRoutesCall { +// For example, if you are filtering Compute Engine instances, you can +// exclude instances named `example-instance` by specifying +// `name != example-instance`. +// +// The `:*` comparison can be used to test whether a key has been defined. +// For example, to find all objects with `owner` label +// use: +// ``` +// labels.owner:* +// ``` +// +// 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 onresource 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) +// ``` +// +// If you want to use a regular expression, use the `eq` (equal) or `ne` +// (not equal) operator against a single un-parenthesized expression with +// or +// without quotes or against multiple parenthesized expressions. +// Examples: +// +// `fieldname eq unquoted literal` +// `fieldname eq 'single quoted literal'` +// `fieldname eq "double quoted literal" +// `(fieldname1 eq literal) (fieldname2 ne "literal")` +// +// The literal value is interpreted as a regular expression using GoogleRE2 +// library syntax. +// The literal value must match the entire field. +// +// For example, to filter for instances that do not end with name +// "instance", +// you would use `name ne .*instance`. +// +// You cannot combine constraints on multiple fields using regular +// expressions. +func (c *OrganizationSecurityPoliciesListCall) Filter(filter string) *OrganizationSecurityPoliciesListCall { 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 *NetworksListPeeringRoutesCall) MaxResults(maxResults int64) *NetworksListPeeringRoutesCall { +// 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 *OrganizationSecurityPoliciesListCall) MaxResults(maxResults int64) *OrganizationSecurityPoliciesListCall { 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 *NetworksListPeeringRoutesCall) OrderBy(orderBy string) *NetworksListPeeringRoutesCall { - 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 *NetworksListPeeringRoutesCall) PageToken(pageToken string) *NetworksListPeeringRoutesCall { - c.urlParams_.Set("pageToken", pageToken) +// 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 *OrganizationSecurityPoliciesListCall) OrderBy(orderBy string) *OrganizationSecurityPoliciesListCall { + c.urlParams_.Set("orderBy", orderBy) return c } -// PeeringName sets the optional parameter "peeringName": The response will -// show routes exchanged over the given peering connection. -func (c *NetworksListPeeringRoutesCall) PeeringName(peeringName string) *NetworksListPeeringRoutesCall { - c.urlParams_.Set("peeringName", peeringName) +// 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 *OrganizationSecurityPoliciesListCall) PageToken(pageToken string) *OrganizationSecurityPoliciesListCall { + c.urlParams_.Set("pageToken", pageToken) return c } -// Region sets the optional parameter "region": The region of the request. The -// response will include all subnet routes, static routes and dynamic routes in -// the region. -func (c *NetworksListPeeringRoutesCall) Region(region string) *NetworksListPeeringRoutesCall { - c.urlParams_.Set("region", region) +// ParentId sets the optional parameter "parentId": Parent ID for this request. +func (c *OrganizationSecurityPoliciesListCall) ParentId(parentId string) *OrganizationSecurityPoliciesListCall { + c.urlParams_.Set("parentId", parentId) return c } // ReturnPartialSuccess sets the optional parameter "returnPartialSuccess": -// Opt-in for partial success behavior which provides partial results in case -// of failure. The default value is false. For example, when partial success -// behavior is enabled, aggregatedList for a single zone scope either returns -// all resources in the zone or no resources, with an error code. -func (c *NetworksListPeeringRoutesCall) ReturnPartialSuccess(returnPartialSuccess bool) *NetworksListPeeringRoutesCall { +// Opt-in for partial success behavior which provides partial results in +// case +// of failure. The default value is false. +// +// For example, when partial success behavior is enabled, aggregatedList for +// a +// single zone scope either returns all resources in the zone or no +// resources, +// with an error code. +func (c *OrganizationSecurityPoliciesListCall) ReturnPartialSuccess(returnPartialSuccess bool) *OrganizationSecurityPoliciesListCall { c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess)) return c } @@ -48294,7 +71983,7 @@ func (c *NetworksListPeeringRoutesCall) ReturnPartialSuccess(returnPartialSucces // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *NetworksListPeeringRoutesCall) Fields(s ...googleapi.Field) *NetworksListPeeringRoutesCall { +func (c *OrganizationSecurityPoliciesListCall) Fields(s ...googleapi.Field) *OrganizationSecurityPoliciesListCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } @@ -48302,55 +71991,51 @@ func (c *NetworksListPeeringRoutesCall) Fields(s ...googleapi.Field) *NetworksLi // IfNoneMatch sets an 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. -func (c *NetworksListPeeringRoutesCall) IfNoneMatch(entityTag string) *NetworksListPeeringRoutesCall { +func (c *OrganizationSecurityPoliciesListCall) IfNoneMatch(entityTag string) *OrganizationSecurityPoliciesListCall { c.ifNoneMatch_ = entityTag return c } // Context sets the context to be used in this call's Do method. -func (c *NetworksListPeeringRoutesCall) Context(ctx context.Context) *NetworksListPeeringRoutesCall { +func (c *OrganizationSecurityPoliciesListCall) Context(ctx context.Context) *OrganizationSecurityPoliciesListCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *NetworksListPeeringRoutesCall) Header() http.Header { +func (c *OrganizationSecurityPoliciesListCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *NetworksListPeeringRoutesCall) doRequest(alt string) (*http.Response, error) { +func (c *OrganizationSecurityPoliciesListCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) if c.ifNoneMatch_ != "" { reqHeaders.Set("If-None-Match", c.ifNoneMatch_) } - var body io.Reader = nil c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/networks/{network}/listPeeringRoutes") + urls := googleapi.ResolveRelative(c.s.BasePath, "locations/global/securityPolicies") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("GET", urls, body) + req, err := http.NewRequest("GET", urls, nil) if err != nil { return nil, err } req.Header = reqHeaders - googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "network": c.network, - }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.organizationSecurityPolicies.list", "request", internallog.HTTPRequest(req, nil)) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.networks.listPeeringRoutes" call. +// Do executes the "compute.organizationSecurityPolicies.list" call. // Any non-2xx status code is an error. Response headers are in either -// *ExchangedPeeringRoutesList.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 *NetworksListPeeringRoutesCall) Do(opts ...googleapi.CallOption) (*ExchangedPeeringRoutesList, error) { +// *SecurityPolicyList.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 *OrganizationSecurityPoliciesListCall) Do(opts ...googleapi.CallOption) (*SecurityPolicyList, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -48369,23 +72054,25 @@ func (c *NetworksListPeeringRoutesCall) Do(opts ...googleapi.CallOption) (*Excha if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } - ret := &ExchangedPeeringRoutesList{ + ret := &SecurityPolicyList{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.organizationSecurityPolicies.list", "response", internallog.HTTPResponse(res, b)) return ret, nil } // 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 *NetworksListPeeringRoutesCall) Pages(ctx context.Context, f func(*ExchangedPeeringRoutesList) error) error { +func (c *OrganizationSecurityPoliciesListCall) Pages(ctx context.Context, f func(*SecurityPolicyList) error) error { c.ctx_ = ctx defer c.PageToken(c.urlParams_.Get("pageToken")) for { @@ -48403,96 +72090,92 @@ func (c *NetworksListPeeringRoutesCall) Pages(ctx context.Context, f func(*Excha } } -type NetworksPatchCall struct { - s *Service - project string - network string - network2 *Network - urlParams_ gensupport.URLParams - ctx_ context.Context - header_ http.Header +type OrganizationSecurityPoliciesListAssociationsCall struct { + s *Service + urlParams_ gensupport.URLParams + ifNoneMatch_ string + ctx_ context.Context + header_ http.Header } -// Patch: Patches the specified network with the data included in the request. -// Only the following fields can be modified: routingConfig.routingMode. +// ListAssociations: Lists associations of a specified target, i.e., +// organization or folder. // -// - network: Name of the network to update. -// - project: Project ID for this request. -func (r *NetworksService) Patch(project string, network string, network2 *Network) *NetworksPatchCall { - c := &NetworksPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)} - c.project = project - c.network = network - c.network2 = network2 +// Use this API to read Cloud Armor policies. Previously, alpha and +// beta +// versions of this API were used to read firewall policies. This usage is +// now disabled for most organizations. Use +// firewallPolicies.listAssociations +// instead. +func (r *OrganizationSecurityPoliciesService) ListAssociations() *OrganizationSecurityPoliciesListAssociationsCall { + c := &OrganizationSecurityPoliciesListAssociationsCall{s: r.s, urlParams_: make(gensupport.URLParams)} 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 *NetworksPatchCall) RequestId(requestId string) *NetworksPatchCall { - c.urlParams_.Set("requestId", requestId) +// TargetResource sets the optional parameter "targetResource": The target +// resource to list associations. It is an organization, or a +// folder. +func (c *OrganizationSecurityPoliciesListAssociationsCall) TargetResource(targetResource string) *OrganizationSecurityPoliciesListAssociationsCall { + c.urlParams_.Set("targetResource", targetResource) return c } // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *NetworksPatchCall) Fields(s ...googleapi.Field) *NetworksPatchCall { +func (c *OrganizationSecurityPoliciesListAssociationsCall) Fields(s ...googleapi.Field) *OrganizationSecurityPoliciesListAssociationsCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } +// IfNoneMatch sets an 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. +func (c *OrganizationSecurityPoliciesListAssociationsCall) IfNoneMatch(entityTag string) *OrganizationSecurityPoliciesListAssociationsCall { + c.ifNoneMatch_ = entityTag + return c +} + // Context sets the context to be used in this call's Do method. -func (c *NetworksPatchCall) Context(ctx context.Context) *NetworksPatchCall { +func (c *OrganizationSecurityPoliciesListAssociationsCall) Context(ctx context.Context) *OrganizationSecurityPoliciesListAssociationsCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *NetworksPatchCall) Header() http.Header { +func (c *OrganizationSecurityPoliciesListAssociationsCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *NetworksPatchCall) doRequest(alt string) (*http.Response, error) { - reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) - var body io.Reader = nil - body, err := googleapi.WithoutDataWrapper.JSONReader(c.network2) - if err != nil { - return nil, err +func (c *OrganizationSecurityPoliciesListAssociationsCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) + if c.ifNoneMatch_ != "" { + reqHeaders.Set("If-None-Match", c.ifNoneMatch_) } c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/networks/{network}") + urls := googleapi.ResolveRelative(c.s.BasePath, "locations/global/securityPolicies/listAssociations") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("PATCH", urls, body) + req, err := http.NewRequest("GET", urls, nil) if err != nil { return nil, err } req.Header = reqHeaders - googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "network": c.network, - }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.organizationSecurityPolicies.listAssociations", "request", internallog.HTTPRequest(req, nil)) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.networks.patch" call. +// Do executes the "compute.organizationSecurityPolicies.listAssociations" call. // 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 *NetworksPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) { +// *OrganizationSecurityPoliciesListAssociationsResponse.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 *OrganizationSecurityPoliciesListAssociationsCall) Do(opts ...googleapi.CallOption) (*OrganizationSecurityPoliciesListAssociationsResponse, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -48511,108 +72194,227 @@ func (c *NetworksPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } - ret := &Operation{ + ret := &OrganizationSecurityPoliciesListAssociationsResponse{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.organizationSecurityPolicies.listAssociations", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type NetworksRemovePeeringCall struct { - s *Service - project string - network string - networksremovepeeringrequest *NetworksRemovePeeringRequest - urlParams_ gensupport.URLParams - ctx_ context.Context - header_ http.Header +type OrganizationSecurityPoliciesListPreconfiguredExpressionSetsCall struct { + s *Service + urlParams_ gensupport.URLParams + ifNoneMatch_ string + ctx_ context.Context + header_ http.Header } -// RemovePeering: Removes a peering from the specified network. +// ListPreconfiguredExpressionSets: Gets the current list of preconfigured Web +// Application Firewall (WAF) +// expressions. +func (r *OrganizationSecurityPoliciesService) ListPreconfiguredExpressionSets() *OrganizationSecurityPoliciesListPreconfiguredExpressionSetsCall { + c := &OrganizationSecurityPoliciesListPreconfiguredExpressionSetsCall{s: r.s, urlParams_: make(gensupport.URLParams)} + return c +} + +// Filter sets the optional parameter "filter": A filter expression that +// filters resources listed in the response. Most +// Compute resources support two types of filter expressions: +// expressions that support regular expressions and expressions that follow +// API improvement proposal AIP-160. +// These two types of filter expressions cannot be mixed in one request. // -// - network: Name of the network resource to remove peering from. -// - project: Project ID for this request. -func (r *NetworksService) RemovePeering(project string, network string, networksremovepeeringrequest *NetworksRemovePeeringRequest) *NetworksRemovePeeringCall { - c := &NetworksRemovePeeringCall{s: r.s, urlParams_: make(gensupport.URLParams)} - c.project = project - c.network = network - c.networksremovepeeringrequest = networksremovepeeringrequest +// If you want to use AIP-160, your expression must specify the field name, +// an +// operator, and the value that you want to use for filtering. The value +// must be a string, a number, or a boolean. The 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`. +// +// The `:*` comparison can be used to test whether a key has been defined. +// For example, to find all objects with `owner` label +// use: +// ``` +// labels.owner:* +// ``` +// +// 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 onresource 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) +// ``` +// +// If you want to use a regular expression, use the `eq` (equal) or `ne` +// (not equal) operator against a single un-parenthesized expression with +// or +// without quotes or against multiple parenthesized expressions. +// Examples: +// +// `fieldname eq unquoted literal` +// `fieldname eq 'single quoted literal'` +// `fieldname eq "double quoted literal" +// `(fieldname1 eq literal) (fieldname2 ne "literal")` +// +// The literal value is interpreted as a regular expression using GoogleRE2 +// library syntax. +// The literal value must match the entire field. +// +// For example, to filter for instances that do not end with name +// "instance", +// you would use `name ne .*instance`. +// +// You cannot combine constraints on multiple fields using regular +// expressions. +func (c *OrganizationSecurityPoliciesListPreconfiguredExpressionSetsCall) Filter(filter string) *OrganizationSecurityPoliciesListPreconfiguredExpressionSetsCall { + c.urlParams_.Set("filter", filter) 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 *NetworksRemovePeeringCall) RequestId(requestId string) *NetworksRemovePeeringCall { - c.urlParams_.Set("requestId", requestId) +// 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 *OrganizationSecurityPoliciesListPreconfiguredExpressionSetsCall) MaxResults(maxResults int64) *OrganizationSecurityPoliciesListPreconfiguredExpressionSetsCall { + 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 *OrganizationSecurityPoliciesListPreconfiguredExpressionSetsCall) OrderBy(orderBy string) *OrganizationSecurityPoliciesListPreconfiguredExpressionSetsCall { + 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 *OrganizationSecurityPoliciesListPreconfiguredExpressionSetsCall) PageToken(pageToken string) *OrganizationSecurityPoliciesListPreconfiguredExpressionSetsCall { + c.urlParams_.Set("pageToken", pageToken) + return c +} + +// ParentId sets the optional parameter "parentId": Parent ID for this request. +func (c *OrganizationSecurityPoliciesListPreconfiguredExpressionSetsCall) ParentId(parentId string) *OrganizationSecurityPoliciesListPreconfiguredExpressionSetsCall { + c.urlParams_.Set("parentId", parentId) + return c +} + +// ReturnPartialSuccess sets the optional parameter "returnPartialSuccess": +// Opt-in for partial success behavior which provides partial results in +// case +// of failure. The default value is false. +// +// For example, when partial success behavior is enabled, aggregatedList for +// a +// single zone scope either returns all resources in the zone or no +// resources, +// with an error code. +func (c *OrganizationSecurityPoliciesListPreconfiguredExpressionSetsCall) ReturnPartialSuccess(returnPartialSuccess bool) *OrganizationSecurityPoliciesListPreconfiguredExpressionSetsCall { + c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess)) return c } // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *NetworksRemovePeeringCall) Fields(s ...googleapi.Field) *NetworksRemovePeeringCall { +func (c *OrganizationSecurityPoliciesListPreconfiguredExpressionSetsCall) Fields(s ...googleapi.Field) *OrganizationSecurityPoliciesListPreconfiguredExpressionSetsCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } +// IfNoneMatch sets an 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. +func (c *OrganizationSecurityPoliciesListPreconfiguredExpressionSetsCall) IfNoneMatch(entityTag string) *OrganizationSecurityPoliciesListPreconfiguredExpressionSetsCall { + c.ifNoneMatch_ = entityTag + return c +} + // Context sets the context to be used in this call's Do method. -func (c *NetworksRemovePeeringCall) Context(ctx context.Context) *NetworksRemovePeeringCall { +func (c *OrganizationSecurityPoliciesListPreconfiguredExpressionSetsCall) Context(ctx context.Context) *OrganizationSecurityPoliciesListPreconfiguredExpressionSetsCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *NetworksRemovePeeringCall) Header() http.Header { +func (c *OrganizationSecurityPoliciesListPreconfiguredExpressionSetsCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *NetworksRemovePeeringCall) doRequest(alt string) (*http.Response, error) { - reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) - var body io.Reader = nil - body, err := googleapi.WithoutDataWrapper.JSONReader(c.networksremovepeeringrequest) - if err != nil { - return nil, err +func (c *OrganizationSecurityPoliciesListPreconfiguredExpressionSetsCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) + if c.ifNoneMatch_ != "" { + reqHeaders.Set("If-None-Match", c.ifNoneMatch_) } c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/networks/{network}/removePeering") + urls := googleapi.ResolveRelative(c.s.BasePath, "locations/global/securityPolicies/listPreconfiguredExpressionSets") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("POST", urls, body) + req, err := http.NewRequest("GET", urls, nil) if err != nil { return nil, err } req.Header = reqHeaders - googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "network": c.network, - }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.organizationSecurityPolicies.listPreconfiguredExpressionSets", "request", internallog.HTTPRequest(req, nil)) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.networks.removePeering" call. +// Do executes the "compute.organizationSecurityPolicies.listPreconfiguredExpressionSets" call. // 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 *NetworksRemovePeeringCall) Do(opts ...googleapi.CallOption) (*Operation, error) { +// *SecurityPoliciesListPreconfiguredExpressionSetsResponse.ServerResponse.Heade +// r 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 *OrganizationSecurityPoliciesListPreconfiguredExpressionSetsCall) Do(opts ...googleapi.CallOption) (*SecurityPoliciesListPreconfiguredExpressionSetsResponse, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -48631,51 +72433,69 @@ func (c *NetworksRemovePeeringCall) Do(opts ...googleapi.CallOption) (*Operation if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } - ret := &Operation{ + ret := &SecurityPoliciesListPreconfiguredExpressionSetsResponse{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.organizationSecurityPolicies.listPreconfiguredExpressionSets", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type NetworksSwitchToCustomModeCall struct { - s *Service - project string - network string - urlParams_ gensupport.URLParams - ctx_ context.Context - header_ http.Header +type OrganizationSecurityPoliciesMoveCall struct { + s *Service + securityPolicy string + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header } -// SwitchToCustomMode: Switches the network mode from auto subnet mode to -// custom subnet mode. +// Move: Moves the specified security policy. // -// - network: Name of the network to be updated. -// - project: Project ID for this request. -func (r *NetworksService) SwitchToCustomMode(project string, network string) *NetworksSwitchToCustomModeCall { - c := &NetworksSwitchToCustomModeCall{s: r.s, urlParams_: make(gensupport.URLParams)} - c.project = project - c.network = network +// Use this API to modify Cloud Armor policies. Previously, alpha and +// beta +// versions of this API were used to modify firewall policies. This usage +// is +// now disabled for most organizations. Use firewallPolicies.move instead. +// +// - securityPolicy: Name of the security policy to update. +func (r *OrganizationSecurityPoliciesService) Move(securityPolicy string) *OrganizationSecurityPoliciesMoveCall { + c := &OrganizationSecurityPoliciesMoveCall{s: r.s, urlParams_: make(gensupport.URLParams)} + c.securityPolicy = securityPolicy + return c +} + +// ParentId sets the optional parameter "parentId": The new parent of the +// security policy. +func (c *OrganizationSecurityPoliciesMoveCall) ParentId(parentId string) *OrganizationSecurityPoliciesMoveCall { + c.urlParams_.Set("parentId", parentId) 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 *NetworksSwitchToCustomModeCall) RequestId(requestId string) *NetworksSwitchToCustomModeCall { +// 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 *OrganizationSecurityPoliciesMoveCall) RequestId(requestId string) *OrganizationSecurityPoliciesMoveCall { c.urlParams_.Set("requestId", requestId) return c } @@ -48683,51 +72503,50 @@ func (c *NetworksSwitchToCustomModeCall) RequestId(requestId string) *NetworksSw // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *NetworksSwitchToCustomModeCall) Fields(s ...googleapi.Field) *NetworksSwitchToCustomModeCall { +func (c *OrganizationSecurityPoliciesMoveCall) Fields(s ...googleapi.Field) *OrganizationSecurityPoliciesMoveCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } // Context sets the context to be used in this call's Do method. -func (c *NetworksSwitchToCustomModeCall) Context(ctx context.Context) *NetworksSwitchToCustomModeCall { +func (c *OrganizationSecurityPoliciesMoveCall) Context(ctx context.Context) *OrganizationSecurityPoliciesMoveCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *NetworksSwitchToCustomModeCall) Header() http.Header { +func (c *OrganizationSecurityPoliciesMoveCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *NetworksSwitchToCustomModeCall) doRequest(alt string) (*http.Response, error) { +func (c *OrganizationSecurityPoliciesMoveCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) - var body io.Reader = nil c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/networks/{network}/switchToCustomMode") + urls := googleapi.ResolveRelative(c.s.BasePath, "locations/global/securityPolicies/{securityPolicy}/move") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("POST", urls, body) + req, err := http.NewRequest("POST", urls, nil) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "network": c.network, + "securityPolicy": c.securityPolicy, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.organizationSecurityPolicies.move", "request", internallog.HTTPRequest(req, nil)) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.networks.switchToCustomMode" call. +// Do executes the "compute.organizationSecurityPolicies.move" call. // 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 *NetworksSwitchToCustomModeCall) Do(opts ...googleapi.CallOption) (*Operation, error) { +func (c *OrganizationSecurityPoliciesMoveCall) Do(opts ...googleapi.CallOption) (*Operation, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -48753,48 +72572,58 @@ func (c *NetworksSwitchToCustomModeCall) Do(opts ...googleapi.CallOption) (*Oper }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.organizationSecurityPolicies.move", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type NetworksUpdatePeeringCall struct { - s *Service - project string - network string - networksupdatepeeringrequest *NetworksUpdatePeeringRequest - urlParams_ gensupport.URLParams - ctx_ context.Context - header_ http.Header +type OrganizationSecurityPoliciesPatchCall struct { + s *Service + securityPolicy string + securitypolicy *SecurityPolicy + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header } -// UpdatePeering: Updates the specified network peering with the data included -// in the request. You can only modify the NetworkPeering.export_custom_routes -// field and the NetworkPeering.import_custom_routes field. +// Patch: Patches the specified policy with the data included in the +// request. // -// - network: Name of the network resource which the updated peering is -// belonging to. -// - project: Project ID for this request. -func (r *NetworksService) UpdatePeering(project string, network string, networksupdatepeeringrequest *NetworksUpdatePeeringRequest) *NetworksUpdatePeeringCall { - c := &NetworksUpdatePeeringCall{s: r.s, urlParams_: make(gensupport.URLParams)} - c.project = project - c.network = network - c.networksupdatepeeringrequest = networksupdatepeeringrequest +// Use this API to modify Cloud Armor policies. Previously, alpha and +// beta +// versions of this API were used to modify firewall policies. This usage +// is +// now disabled for most organizations. Use firewallPolicies.patch instead. +// +// - securityPolicy: Name of the security policy to update. +func (r *OrganizationSecurityPoliciesService) Patch(securityPolicy string, securitypolicy *SecurityPolicy) *OrganizationSecurityPoliciesPatchCall { + c := &OrganizationSecurityPoliciesPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)} + c.securityPolicy = securityPolicy + c.securitypolicy = securitypolicy 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 *NetworksUpdatePeeringCall) RequestId(requestId string) *NetworksUpdatePeeringCall { +// 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 *OrganizationSecurityPoliciesPatchCall) RequestId(requestId string) *OrganizationSecurityPoliciesPatchCall { c.urlParams_.Set("requestId", requestId) return c } @@ -48802,36 +72631,35 @@ func (c *NetworksUpdatePeeringCall) RequestId(requestId string) *NetworksUpdateP // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *NetworksUpdatePeeringCall) Fields(s ...googleapi.Field) *NetworksUpdatePeeringCall { +func (c *OrganizationSecurityPoliciesPatchCall) Fields(s ...googleapi.Field) *OrganizationSecurityPoliciesPatchCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } // Context sets the context to be used in this call's Do method. -func (c *NetworksUpdatePeeringCall) Context(ctx context.Context) *NetworksUpdatePeeringCall { +func (c *OrganizationSecurityPoliciesPatchCall) Context(ctx context.Context) *OrganizationSecurityPoliciesPatchCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *NetworksUpdatePeeringCall) Header() http.Header { +func (c *OrganizationSecurityPoliciesPatchCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *NetworksUpdatePeeringCall) doRequest(alt string) (*http.Response, error) { +func (c *OrganizationSecurityPoliciesPatchCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) - var body io.Reader = nil - body, err := googleapi.WithoutDataWrapper.JSONReader(c.networksupdatepeeringrequest) + body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.securitypolicy) if err != nil { return nil, err } c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/networks/{network}/updatePeering") + urls := googleapi.ResolveRelative(c.s.BasePath, "locations/global/securityPolicies/{securityPolicy}") urls += "?" + c.urlParams_.Encode() req, err := http.NewRequest("PATCH", urls, body) if err != nil { @@ -48839,18 +72667,18 @@ func (c *NetworksUpdatePeeringCall) doRequest(alt string) (*http.Response, error } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "network": c.network, + "securityPolicy": c.securityPolicy, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.organizationSecurityPolicies.patch", "request", internallog.HTTPRequest(req, body.Bytes())) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.networks.updatePeering" call. +// Do executes the "compute.organizationSecurityPolicies.patch" call. // 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 *NetworksUpdatePeeringCall) Do(opts ...googleapi.CallOption) (*Operation, error) { +func (c *OrganizationSecurityPoliciesPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -48876,48 +72704,65 @@ func (c *NetworksUpdatePeeringCall) Do(opts ...googleapi.CallOption) (*Operation }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.organizationSecurityPolicies.patch", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type NodeGroupsAddNodesCall struct { - s *Service - project string - zone string - nodeGroup string - nodegroupsaddnodesrequest *NodeGroupsAddNodesRequest - urlParams_ gensupport.URLParams - ctx_ context.Context - header_ http.Header +type OrganizationSecurityPoliciesPatchRuleCall struct { + s *Service + securityPolicy string + securitypolicyrule *SecurityPolicyRule + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header } -// AddNodes: Adds specified number of nodes to the node group. +// PatchRule: Patches a rule at the specified priority. // -// - nodeGroup: Name of the NodeGroup resource. -// - project: Project ID for this request. -// - zone: The name of the zone for this request. -func (r *NodeGroupsService) AddNodes(project string, zone string, nodeGroup string, nodegroupsaddnodesrequest *NodeGroupsAddNodesRequest) *NodeGroupsAddNodesCall { - c := &NodeGroupsAddNodesCall{s: r.s, urlParams_: make(gensupport.URLParams)} - c.project = project - c.zone = zone - c.nodeGroup = nodeGroup - c.nodegroupsaddnodesrequest = nodegroupsaddnodesrequest +// Use this API to modify Cloud Armor policies. Previously, alpha and +// beta +// versions of this API were used to modify firewall policies. This usage +// is +// now disabled for most organizations. Use firewallPolicies.patchRule +// instead. +// +// - securityPolicy: Name of the security policy to update. +func (r *OrganizationSecurityPoliciesService) PatchRule(securityPolicy string, securitypolicyrule *SecurityPolicyRule) *OrganizationSecurityPoliciesPatchRuleCall { + c := &OrganizationSecurityPoliciesPatchRuleCall{s: r.s, urlParams_: make(gensupport.URLParams)} + c.securityPolicy = securityPolicy + c.securitypolicyrule = securitypolicyrule + return c +} + +// Priority sets the optional parameter "priority": The priority of the rule to +// patch. +func (c *OrganizationSecurityPoliciesPatchRuleCall) Priority(priority int64) *OrganizationSecurityPoliciesPatchRuleCall { + c.urlParams_.Set("priority", fmt.Sprint(priority)) 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 *NodeGroupsAddNodesCall) RequestId(requestId string) *NodeGroupsAddNodesCall { +// 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 *OrganizationSecurityPoliciesPatchRuleCall) RequestId(requestId string) *OrganizationSecurityPoliciesPatchRuleCall { c.urlParams_.Set("requestId", requestId) return c } @@ -48925,36 +72770,35 @@ func (c *NodeGroupsAddNodesCall) RequestId(requestId string) *NodeGroupsAddNodes // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *NodeGroupsAddNodesCall) Fields(s ...googleapi.Field) *NodeGroupsAddNodesCall { +func (c *OrganizationSecurityPoliciesPatchRuleCall) Fields(s ...googleapi.Field) *OrganizationSecurityPoliciesPatchRuleCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } // Context sets the context to be used in this call's Do method. -func (c *NodeGroupsAddNodesCall) Context(ctx context.Context) *NodeGroupsAddNodesCall { +func (c *OrganizationSecurityPoliciesPatchRuleCall) Context(ctx context.Context) *OrganizationSecurityPoliciesPatchRuleCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *NodeGroupsAddNodesCall) Header() http.Header { +func (c *OrganizationSecurityPoliciesPatchRuleCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *NodeGroupsAddNodesCall) doRequest(alt string) (*http.Response, error) { +func (c *OrganizationSecurityPoliciesPatchRuleCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) - var body io.Reader = nil - body, err := googleapi.WithoutDataWrapper.JSONReader(c.nodegroupsaddnodesrequest) + body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.securitypolicyrule) if err != nil { return nil, err } c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/nodeGroups/{nodeGroup}/addNodes") + urls := googleapi.ResolveRelative(c.s.BasePath, "locations/global/securityPolicies/{securityPolicy}/patchRule") urls += "?" + c.urlParams_.Encode() req, err := http.NewRequest("POST", urls, body) if err != nil { @@ -48962,19 +72806,18 @@ func (c *NodeGroupsAddNodesCall) doRequest(alt string) (*http.Response, error) { } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "zone": c.zone, - "nodeGroup": c.nodeGroup, + "securityPolicy": c.securityPolicy, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.organizationSecurityPolicies.patchRule", "request", internallog.HTTPRequest(req, body.Bytes())) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.nodeGroups.addNodes" call. +// Do executes the "compute.organizationSecurityPolicies.patchRule" call. // 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 *NodeGroupsAddNodesCall) Do(opts ...googleapi.CallOption) (*Operation, error) { +func (c *OrganizationSecurityPoliciesPatchRuleCall) Do(opts ...googleapi.CallOption) (*Operation, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -49000,191 +72843,116 @@ func (c *NodeGroupsAddNodesCall) Do(opts ...googleapi.CallOption) (*Operation, e }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.organizationSecurityPolicies.patchRule", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type NodeGroupsAggregatedListCall struct { - s *Service - project string - urlParams_ gensupport.URLParams - ifNoneMatch_ string - ctx_ context.Context - header_ http.Header +type OrganizationSecurityPoliciesRemoveAssociationCall struct { + s *Service + securityPolicy string + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header } -// AggregatedList: Retrieves an aggregated list of node groups. Note: use -// nodeGroups.listNodes for more details about each group. To prevent failure, -// Google recommends that you set the `returnPartialSuccess` parameter to -// `true`. +// RemoveAssociation: Removes an association for the specified security +// policy. // -// - project: Project ID for this request. -func (r *NodeGroupsService) AggregatedList(project string) *NodeGroupsAggregatedListCall { - c := &NodeGroupsAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)} - c.project = project - return c -} - -// Filter sets the optional parameter "filter": A filter expression that -// filters resources listed in the response. Most Compute resources support two -// types of filter expressions: expressions that support regular expressions -// and expressions that follow API improvement proposal AIP-160. These two -// types of filter expressions cannot be mixed in one request. If you want to -// use AIP-160, your expression must specify the field name, an operator, and -// the value that you want to use for filtering. The value must be a string, a -// number, or a boolean. The 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`. The `:*` comparison can be used to test whether a key has -// been defined. For example, to find all objects with `owner` label use: ``` -// labels.owner:* ``` 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) ``` If you want to use a regular -// expression, use the `eq` (equal) or `ne` (not equal) operator against a -// single un-parenthesized expression with or without quotes or against -// multiple parenthesized expressions. Examples: `fieldname eq unquoted -// literal` `fieldname eq 'single quoted literal'` `fieldname eq "double quoted -// literal" `(fieldname1 eq literal) (fieldname2 ne "literal")` The literal -// value is interpreted as a regular expression using Google RE2 library -// syntax. The literal value must match the entire field. For example, to -// filter for instances that do not end with name "instance", you would use -// `name ne .*instance`. You cannot combine constraints on multiple fields -// using regular expressions. -func (c *NodeGroupsAggregatedListCall) Filter(filter string) *NodeGroupsAggregatedListCall { - c.urlParams_.Set("filter", filter) - return c -} - -// IncludeAllScopes sets the optional parameter "includeAllScopes": Indicates -// whether every visible scope for each scope type (zone, region, global) -// should be included in the response. For new resource types added after this -// field, the flag has no effect as new resource types will always include -// every visible scope for each scope type in response. For resource types -// which predate this field, if this flag is omitted or false, only scopes of -// the scope types where the resource type is expected to be found will be -// included. -func (c *NodeGroupsAggregatedListCall) IncludeAllScopes(includeAllScopes bool) *NodeGroupsAggregatedListCall { - c.urlParams_.Set("includeAllScopes", fmt.Sprint(includeAllScopes)) - 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 *NodeGroupsAggregatedListCall) MaxResults(maxResults int64) *NodeGroupsAggregatedListCall { - 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 *NodeGroupsAggregatedListCall) OrderBy(orderBy string) *NodeGroupsAggregatedListCall { - 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 *NodeGroupsAggregatedListCall) PageToken(pageToken string) *NodeGroupsAggregatedListCall { - c.urlParams_.Set("pageToken", pageToken) +// Use this API to modify Cloud Armor policies. Previously, alpha and +// beta +// versions of this API were used to modify firewall policies. This usage +// is +// now disabled for most organizations. Use +// firewallPolicies.removeAssociation +// instead. +// +// - securityPolicy: Name of the security policy to update. +func (r *OrganizationSecurityPoliciesService) RemoveAssociation(securityPolicy string) *OrganizationSecurityPoliciesRemoveAssociationCall { + c := &OrganizationSecurityPoliciesRemoveAssociationCall{s: r.s, urlParams_: make(gensupport.URLParams)} + c.securityPolicy = securityPolicy return c } -// ReturnPartialSuccess sets the optional parameter "returnPartialSuccess": -// Opt-in for partial success behavior which provides partial results in case -// of failure. The default value is false. For example, when partial success -// behavior is enabled, aggregatedList for a single zone scope either returns -// all resources in the zone or no resources, with an error code. -func (c *NodeGroupsAggregatedListCall) ReturnPartialSuccess(returnPartialSuccess bool) *NodeGroupsAggregatedListCall { - c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess)) +// Name sets the optional parameter "name": Name for the attachment that will +// be removed. +func (c *OrganizationSecurityPoliciesRemoveAssociationCall) Name(name string) *OrganizationSecurityPoliciesRemoveAssociationCall { + c.urlParams_.Set("name", name) return c } -// ServiceProjectNumber sets the optional parameter "serviceProjectNumber": The -// Shared VPC service project id or service project number for which aggregated -// list request is invoked for subnetworks list-usable api. -func (c *NodeGroupsAggregatedListCall) ServiceProjectNumber(serviceProjectNumber int64) *NodeGroupsAggregatedListCall { - c.urlParams_.Set("serviceProjectNumber", fmt.Sprint(serviceProjectNumber)) +// 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 *OrganizationSecurityPoliciesRemoveAssociationCall) RequestId(requestId string) *OrganizationSecurityPoliciesRemoveAssociationCall { + 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 // details. -func (c *NodeGroupsAggregatedListCall) Fields(s ...googleapi.Field) *NodeGroupsAggregatedListCall { +func (c *OrganizationSecurityPoliciesRemoveAssociationCall) Fields(s ...googleapi.Field) *OrganizationSecurityPoliciesRemoveAssociationCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } -// IfNoneMatch sets an 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. -func (c *NodeGroupsAggregatedListCall) IfNoneMatch(entityTag string) *NodeGroupsAggregatedListCall { - c.ifNoneMatch_ = entityTag - return c -} - // Context sets the context to be used in this call's Do method. -func (c *NodeGroupsAggregatedListCall) Context(ctx context.Context) *NodeGroupsAggregatedListCall { +func (c *OrganizationSecurityPoliciesRemoveAssociationCall) Context(ctx context.Context) *OrganizationSecurityPoliciesRemoveAssociationCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *NodeGroupsAggregatedListCall) Header() http.Header { +func (c *OrganizationSecurityPoliciesRemoveAssociationCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *NodeGroupsAggregatedListCall) doRequest(alt string) (*http.Response, error) { +func (c *OrganizationSecurityPoliciesRemoveAssociationCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) - if c.ifNoneMatch_ != "" { - reqHeaders.Set("If-None-Match", c.ifNoneMatch_) - } - var body io.Reader = nil c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/aggregated/nodeGroups") + urls := googleapi.ResolveRelative(c.s.BasePath, "locations/global/securityPolicies/{securityPolicy}/removeAssociation") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("GET", urls, body) + req, err := http.NewRequest("POST", urls, nil) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, + "securityPolicy": c.securityPolicy, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.organizationSecurityPolicies.removeAssociation", "request", internallog.HTTPRequest(req, nil)) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.nodeGroups.aggregatedList" call. +// Do executes the "compute.organizationSecurityPolicies.removeAssociation" call. // Any non-2xx status code is an error. Response headers are in either -// *NodeGroupAggregatedList.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 *NodeGroupsAggregatedListCall) Do(opts ...googleapi.CallOption) (*NodeGroupAggregatedList, error) { +// *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 *OrganizationSecurityPoliciesRemoveAssociationCall) Do(opts ...googleapi.CallOption) (*Operation, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -49203,74 +72971,71 @@ func (c *NodeGroupsAggregatedListCall) Do(opts ...googleapi.CallOption) (*NodeGr if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } - ret := &NodeGroupAggregatedList{ + ret := &Operation{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.organizationSecurityPolicies.removeAssociation", "response", internallog.HTTPResponse(res, b)) return ret, nil } -// 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 *NodeGroupsAggregatedListCall) Pages(ctx context.Context, f func(*NodeGroupAggregatedList) error) error { - c.ctx_ = ctx - defer c.PageToken(c.urlParams_.Get("pageToken")) - 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) - } +type OrganizationSecurityPoliciesRemoveRuleCall struct { + s *Service + securityPolicy string + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header } -type NodeGroupsDeleteCall struct { - s *Service - project string - zone string - nodeGroup string - urlParams_ gensupport.URLParams - ctx_ context.Context - header_ http.Header +// RemoveRule: Deletes a rule at the specified priority. +// +// Use this API to modify Cloud Armor policies. Previously, alpha and +// beta +// versions of this API were used to modify firewall policies. This usage +// is +// now disabled for most organizations. Use +// firewallPolicies.removeRule +// instead. +// +// - securityPolicy: Name of the security policy to update. +func (r *OrganizationSecurityPoliciesService) RemoveRule(securityPolicy string) *OrganizationSecurityPoliciesRemoveRuleCall { + c := &OrganizationSecurityPoliciesRemoveRuleCall{s: r.s, urlParams_: make(gensupport.URLParams)} + c.securityPolicy = securityPolicy + return c } -// Delete: Deletes the specified NodeGroup resource. -// -// - nodeGroup: Name of the NodeGroup resource to delete. -// - project: Project ID for this request. -// - zone: The name of the zone for this request. -func (r *NodeGroupsService) Delete(project string, zone string, nodeGroup string) *NodeGroupsDeleteCall { - c := &NodeGroupsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)} - c.project = project - c.zone = zone - c.nodeGroup = nodeGroup +// Priority sets the optional parameter "priority": The priority of the rule to +// remove from the security policy. +func (c *OrganizationSecurityPoliciesRemoveRuleCall) Priority(priority int64) *OrganizationSecurityPoliciesRemoveRuleCall { + c.urlParams_.Set("priority", fmt.Sprint(priority)) 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 *NodeGroupsDeleteCall) RequestId(requestId string) *NodeGroupsDeleteCall { +// 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 *OrganizationSecurityPoliciesRemoveRuleCall) RequestId(requestId string) *OrganizationSecurityPoliciesRemoveRuleCall { c.urlParams_.Set("requestId", requestId) return c } @@ -49278,52 +73043,50 @@ func (c *NodeGroupsDeleteCall) RequestId(requestId string) *NodeGroupsDeleteCall // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *NodeGroupsDeleteCall) Fields(s ...googleapi.Field) *NodeGroupsDeleteCall { +func (c *OrganizationSecurityPoliciesRemoveRuleCall) Fields(s ...googleapi.Field) *OrganizationSecurityPoliciesRemoveRuleCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } // Context sets the context to be used in this call's Do method. -func (c *NodeGroupsDeleteCall) Context(ctx context.Context) *NodeGroupsDeleteCall { +func (c *OrganizationSecurityPoliciesRemoveRuleCall) Context(ctx context.Context) *OrganizationSecurityPoliciesRemoveRuleCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *NodeGroupsDeleteCall) Header() http.Header { +func (c *OrganizationSecurityPoliciesRemoveRuleCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *NodeGroupsDeleteCall) doRequest(alt string) (*http.Response, error) { +func (c *OrganizationSecurityPoliciesRemoveRuleCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) - var body io.Reader = nil c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/nodeGroups/{nodeGroup}") + urls := googleapi.ResolveRelative(c.s.BasePath, "locations/global/securityPolicies/{securityPolicy}/removeRule") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("DELETE", urls, body) + req, err := http.NewRequest("POST", urls, nil) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "zone": c.zone, - "nodeGroup": c.nodeGroup, + "securityPolicy": c.securityPolicy, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.organizationSecurityPolicies.removeRule", "request", internallog.HTTPRequest(req, nil)) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.nodeGroups.delete" call. +// Do executes the "compute.organizationSecurityPolicies.removeRule" call. // 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 *NodeGroupsDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) { +func (c *OrganizationSecurityPoliciesRemoveRuleCall) Do(opts ...googleapi.CallOption) (*Operation, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -49349,105 +73112,249 @@ func (c *NodeGroupsDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, err }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.organizationSecurityPolicies.removeRule", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type NodeGroupsDeleteNodesCall struct { - s *Service - project string - zone string - nodeGroup string - nodegroupsdeletenodesrequest *NodeGroupsDeleteNodesRequest - urlParams_ gensupport.URLParams - ctx_ context.Context - header_ http.Header +type PacketMirroringsAggregatedListCall struct { + s *Service + project string + urlParams_ gensupport.URLParams + ifNoneMatch_ string + ctx_ context.Context + header_ http.Header +} + +// AggregatedList: Retrieves an aggregated list of packetMirrorings. +// +// To prevent failure, Google recommends that you set +// the +// `returnPartialSuccess` parameter to `true`. +// +// - project: Project ID for this request. +func (r *PacketMirroringsService) AggregatedList(project string) *PacketMirroringsAggregatedListCall { + c := &PacketMirroringsAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)} + c.project = project + return c +} + +// Filter sets the optional parameter "filter": A filter expression that +// filters resources listed in the response. Most +// Compute resources support two types of filter expressions: +// expressions that support regular expressions and expressions that follow +// API improvement proposal AIP-160. +// These two types of filter expressions cannot be mixed in one request. +// +// If you want to use AIP-160, your expression must specify the field name, +// an +// operator, and the value that you want to use for filtering. The value +// must be a string, a number, or a boolean. The 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`. +// +// The `:*` comparison can be used to test whether a key has been defined. +// For example, to find all objects with `owner` label +// use: +// ``` +// labels.owner:* +// ``` +// +// 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 onresource 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) +// ``` +// +// If you want to use a regular expression, use the `eq` (equal) or `ne` +// (not equal) operator against a single un-parenthesized expression with +// or +// without quotes or against multiple parenthesized expressions. +// Examples: +// +// `fieldname eq unquoted literal` +// `fieldname eq 'single quoted literal'` +// `fieldname eq "double quoted literal" +// `(fieldname1 eq literal) (fieldname2 ne "literal")` +// +// The literal value is interpreted as a regular expression using GoogleRE2 +// library syntax. +// The literal value must match the entire field. +// +// For example, to filter for instances that do not end with name +// "instance", +// you would use `name ne .*instance`. +// +// You cannot combine constraints on multiple fields using regular +// expressions. +func (c *PacketMirroringsAggregatedListCall) Filter(filter string) *PacketMirroringsAggregatedListCall { + c.urlParams_.Set("filter", filter) + return c +} + +// IncludeAllScopes sets the optional parameter "includeAllScopes": Indicates +// whether every visible scope for each scope type (zone, region, +// global) should be included in the response. For new resource types +// added +// after this field, the flag has no effect as new resource types will +// always +// include every visible scope for each scope type in response. For +// resource +// types which predate this field, if this flag is omitted or false, +// only +// scopes of the scope types where the resource type is expected to be +// found +// will be included. +func (c *PacketMirroringsAggregatedListCall) IncludeAllScopes(includeAllScopes bool) *PacketMirroringsAggregatedListCall { + c.urlParams_.Set("includeAllScopes", fmt.Sprint(includeAllScopes)) + 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 *PacketMirroringsAggregatedListCall) MaxResults(maxResults int64) *PacketMirroringsAggregatedListCall { + 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 *PacketMirroringsAggregatedListCall) OrderBy(orderBy string) *PacketMirroringsAggregatedListCall { + 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 *PacketMirroringsAggregatedListCall) PageToken(pageToken string) *PacketMirroringsAggregatedListCall { + c.urlParams_.Set("pageToken", pageToken) + return c } -// DeleteNodes: Deletes specified nodes from the node group. +// ReturnPartialSuccess sets the optional parameter "returnPartialSuccess": +// Opt-in for partial success behavior which provides partial results in +// case +// of failure. The default value is false. // -// - nodeGroup: Name of the NodeGroup resource whose nodes will be deleted. -// - project: Project ID for this request. -// - zone: The name of the zone for this request. -func (r *NodeGroupsService) DeleteNodes(project string, zone string, nodeGroup string, nodegroupsdeletenodesrequest *NodeGroupsDeleteNodesRequest) *NodeGroupsDeleteNodesCall { - c := &NodeGroupsDeleteNodesCall{s: r.s, urlParams_: make(gensupport.URLParams)} - c.project = project - c.zone = zone - c.nodeGroup = nodeGroup - c.nodegroupsdeletenodesrequest = nodegroupsdeletenodesrequest +// For example, when partial success behavior is enabled, aggregatedList for +// a +// single zone scope either returns all resources in the zone or no +// resources, +// with an error code. +func (c *PacketMirroringsAggregatedListCall) ReturnPartialSuccess(returnPartialSuccess bool) *PacketMirroringsAggregatedListCall { + c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess)) 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 *NodeGroupsDeleteNodesCall) RequestId(requestId string) *NodeGroupsDeleteNodesCall { - c.urlParams_.Set("requestId", requestId) +// ServiceProjectNumber sets the optional parameter "serviceProjectNumber": The +// Shared VPC service project id or service project number for which +// aggregated list request is invoked for subnetworks list-usable api. +func (c *PacketMirroringsAggregatedListCall) ServiceProjectNumber(serviceProjectNumber int64) *PacketMirroringsAggregatedListCall { + c.urlParams_.Set("serviceProjectNumber", fmt.Sprint(serviceProjectNumber)) return c } // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *NodeGroupsDeleteNodesCall) Fields(s ...googleapi.Field) *NodeGroupsDeleteNodesCall { +func (c *PacketMirroringsAggregatedListCall) Fields(s ...googleapi.Field) *PacketMirroringsAggregatedListCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } +// IfNoneMatch sets an 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. +func (c *PacketMirroringsAggregatedListCall) IfNoneMatch(entityTag string) *PacketMirroringsAggregatedListCall { + c.ifNoneMatch_ = entityTag + return c +} + // Context sets the context to be used in this call's Do method. -func (c *NodeGroupsDeleteNodesCall) Context(ctx context.Context) *NodeGroupsDeleteNodesCall { +func (c *PacketMirroringsAggregatedListCall) Context(ctx context.Context) *PacketMirroringsAggregatedListCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *NodeGroupsDeleteNodesCall) Header() http.Header { +func (c *PacketMirroringsAggregatedListCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *NodeGroupsDeleteNodesCall) doRequest(alt string) (*http.Response, error) { - reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) - var body io.Reader = nil - body, err := googleapi.WithoutDataWrapper.JSONReader(c.nodegroupsdeletenodesrequest) - if err != nil { - return nil, err +func (c *PacketMirroringsAggregatedListCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) + if c.ifNoneMatch_ != "" { + reqHeaders.Set("If-None-Match", c.ifNoneMatch_) } c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/nodeGroups/{nodeGroup}/deleteNodes") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/aggregated/packetMirrorings") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("POST", urls, body) + req, err := http.NewRequest("GET", urls, nil) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "zone": c.zone, - "nodeGroup": c.nodeGroup, + "project": c.project, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.packetMirrorings.aggregatedList", "request", internallog.HTTPRequest(req, nil)) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.nodeGroups.deleteNodes" call. +// Do executes the "compute.packetMirrorings.aggregatedList" call. // 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 *NodeGroupsDeleteNodesCall) Do(opts ...googleapi.CallOption) (*Operation, error) { +// *PacketMirroringAggregatedList.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 *PacketMirroringsAggregatedListCall) Do(opts ...googleapi.CallOption) (*PacketMirroringAggregatedList, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -49466,105 +73373,136 @@ func (c *NodeGroupsDeleteNodesCall) Do(opts ...googleapi.CallOption) (*Operation if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } - ret := &Operation{ + ret := &PacketMirroringAggregatedList{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.packetMirrorings.aggregatedList", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type NodeGroupsGetCall struct { - s *Service - project string - zone string - nodeGroup string - urlParams_ gensupport.URLParams - ifNoneMatch_ string - ctx_ context.Context - header_ http.Header +// 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 *PacketMirroringsAggregatedListCall) Pages(ctx context.Context, f func(*PacketMirroringAggregatedList) error) error { + c.ctx_ = ctx + defer c.PageToken(c.urlParams_.Get("pageToken")) + 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) + } +} + +type PacketMirroringsDeleteCall struct { + s *Service + project string + region string + packetMirroring string + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header } -// Get: Returns the specified NodeGroup. Get a list of available NodeGroups by -// making a list() request. Note: the "nodes" field should not be used. Use -// nodeGroups.listNodes instead. +// Delete: Deletes the specified PacketMirroring resource. // -// - nodeGroup: Name of the node group to return. +// - packetMirroring: Name of the PacketMirroring resource to delete. // - project: Project ID for this request. -// - zone: The name of the zone for this request. -func (r *NodeGroupsService) Get(project string, zone string, nodeGroup string) *NodeGroupsGetCall { - c := &NodeGroupsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)} +// - region: Name of the region for this request. +func (r *PacketMirroringsService) Delete(project string, region string, packetMirroring string) *PacketMirroringsDeleteCall { + c := &PacketMirroringsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project - c.zone = zone - c.nodeGroup = nodeGroup + c.region = region + c.packetMirroring = packetMirroring + 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 *PacketMirroringsDeleteCall) RequestId(requestId string) *PacketMirroringsDeleteCall { + 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 // details. -func (c *NodeGroupsGetCall) Fields(s ...googleapi.Field) *NodeGroupsGetCall { +func (c *PacketMirroringsDeleteCall) Fields(s ...googleapi.Field) *PacketMirroringsDeleteCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } -// IfNoneMatch sets an 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. -func (c *NodeGroupsGetCall) IfNoneMatch(entityTag string) *NodeGroupsGetCall { - c.ifNoneMatch_ = entityTag - return c -} - // Context sets the context to be used in this call's Do method. -func (c *NodeGroupsGetCall) Context(ctx context.Context) *NodeGroupsGetCall { +func (c *PacketMirroringsDeleteCall) Context(ctx context.Context) *PacketMirroringsDeleteCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *NodeGroupsGetCall) Header() http.Header { +func (c *PacketMirroringsDeleteCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *NodeGroupsGetCall) doRequest(alt string) (*http.Response, error) { +func (c *PacketMirroringsDeleteCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) - if c.ifNoneMatch_ != "" { - reqHeaders.Set("If-None-Match", c.ifNoneMatch_) - } - var body io.Reader = nil c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/nodeGroups/{nodeGroup}") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/packetMirrorings/{packetMirroring}") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("GET", urls, body) + req, err := http.NewRequest("DELETE", urls, nil) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "zone": c.zone, - "nodeGroup": c.nodeGroup, + "project": c.project, + "region": c.region, + "packetMirroring": c.packetMirroring, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.packetMirrorings.delete", "request", internallog.HTTPRequest(req, nil)) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.nodeGroups.get" call. +// Do executes the "compute.packetMirrorings.delete" call. // Any non-2xx status code is an error. Response headers are in either -// *NodeGroup.ServerResponse.Header or (if a response was returned at all) in +// *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 *NodeGroupsGetCall) Do(opts ...googleapi.CallOption) (*NodeGroup, error) { +func (c *PacketMirroringsDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -49583,55 +73521,49 @@ func (c *NodeGroupsGetCall) Do(opts ...googleapi.CallOption) (*NodeGroup, error) if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } - ret := &NodeGroup{ + ret := &Operation{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.packetMirrorings.delete", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type NodeGroupsGetIamPolicyCall struct { - s *Service - project string - zone string - resource string - urlParams_ gensupport.URLParams - ifNoneMatch_ string - ctx_ context.Context - header_ http.Header +type PacketMirroringsGetCall struct { + s *Service + project string + region string + packetMirroring string + urlParams_ gensupport.URLParams + ifNoneMatch_ string + ctx_ context.Context + header_ http.Header } -// GetIamPolicy: Gets the access control policy for a resource. May be empty if -// no such policy or resource exists. +// Get: Returns the specified PacketMirroring resource. // +// - packetMirroring: Name of the PacketMirroring resource to return. // - project: Project ID for this request. -// - resource: Name or id of the resource for this request. -// - zone: The name of the zone for this request. -func (r *NodeGroupsService) GetIamPolicy(project string, zone string, resource string) *NodeGroupsGetIamPolicyCall { - c := &NodeGroupsGetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)} +// - region: Name of the region for this request. +func (r *PacketMirroringsService) Get(project string, region string, packetMirroring string) *PacketMirroringsGetCall { + c := &PacketMirroringsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project - c.zone = zone - c.resource = resource - return c -} - -// OptionsRequestedPolicyVersion sets the optional parameter -// "optionsRequestedPolicyVersion": Requested IAM Policy version. -func (c *NodeGroupsGetIamPolicyCall) OptionsRequestedPolicyVersion(optionsRequestedPolicyVersion int64) *NodeGroupsGetIamPolicyCall { - c.urlParams_.Set("optionsRequestedPolicyVersion", fmt.Sprint(optionsRequestedPolicyVersion)) + c.region = region + c.packetMirroring = packetMirroring return c } // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *NodeGroupsGetIamPolicyCall) Fields(s ...googleapi.Field) *NodeGroupsGetIamPolicyCall { +func (c *PacketMirroringsGetCall) Fields(s ...googleapi.Field) *PacketMirroringsGetCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } @@ -49639,55 +73571,56 @@ func (c *NodeGroupsGetIamPolicyCall) Fields(s ...googleapi.Field) *NodeGroupsGet // IfNoneMatch sets an 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. -func (c *NodeGroupsGetIamPolicyCall) IfNoneMatch(entityTag string) *NodeGroupsGetIamPolicyCall { +func (c *PacketMirroringsGetCall) IfNoneMatch(entityTag string) *PacketMirroringsGetCall { c.ifNoneMatch_ = entityTag return c } // Context sets the context to be used in this call's Do method. -func (c *NodeGroupsGetIamPolicyCall) Context(ctx context.Context) *NodeGroupsGetIamPolicyCall { +func (c *PacketMirroringsGetCall) Context(ctx context.Context) *PacketMirroringsGetCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *NodeGroupsGetIamPolicyCall) Header() http.Header { +func (c *PacketMirroringsGetCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *NodeGroupsGetIamPolicyCall) doRequest(alt string) (*http.Response, error) { +func (c *PacketMirroringsGetCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) if c.ifNoneMatch_ != "" { reqHeaders.Set("If-None-Match", c.ifNoneMatch_) } - var body io.Reader = nil c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/nodeGroups/{resource}/getIamPolicy") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/packetMirrorings/{packetMirroring}") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("GET", urls, body) + req, err := http.NewRequest("GET", urls, nil) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "zone": c.zone, - "resource": c.resource, + "project": c.project, + "region": c.region, + "packetMirroring": c.packetMirroring, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.packetMirrorings.get", "request", internallog.HTTPRequest(req, nil)) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.nodeGroups.getIamPolicy" call. +// Do executes the "compute.packetMirrorings.get" call. // Any non-2xx status code is an error. Response headers are in either -// *Policy.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 *NodeGroupsGetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, error) { +// *PacketMirroring.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 *PacketMirroringsGetCall) Do(opts ...googleapi.CallOption) (*PacketMirroring, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -49706,55 +73639,63 @@ func (c *NodeGroupsGetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } - ret := &Policy{ + ret := &PacketMirroring{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.packetMirrorings.get", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type NodeGroupsInsertCall struct { - s *Service - project string - zone string - nodegroup *NodeGroup - urlParams_ gensupport.URLParams - ctx_ context.Context - header_ http.Header +type PacketMirroringsInsertCall struct { + s *Service + project string + region string + packetmirroring *PacketMirroring + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header } -// Insert: Creates a NodeGroup resource in the specified project using the data -// included in the request. +// Insert: Creates a PacketMirroring resource in the specified project and +// region +// using the data included in the request. // -// - initialNodeCount: Initial count of nodes in the node group. // - project: Project ID for this request. -// - zone: The name of the zone for this request. -func (r *NodeGroupsService) Insert(project string, zone string, initialNodeCount int64, nodegroup *NodeGroup) *NodeGroupsInsertCall { - c := &NodeGroupsInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)} +// - region: Name of the region for this request. +func (r *PacketMirroringsService) Insert(project string, region string, packetmirroring *PacketMirroring) *PacketMirroringsInsertCall { + c := &PacketMirroringsInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project - c.zone = zone - c.urlParams_.Set("initialNodeCount", fmt.Sprint(initialNodeCount)) - c.nodegroup = nodegroup + c.region = region + c.packetmirroring = packetmirroring 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 *NodeGroupsInsertCall) RequestId(requestId string) *NodeGroupsInsertCall { +// 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 *PacketMirroringsInsertCall) RequestId(requestId string) *PacketMirroringsInsertCall { c.urlParams_.Set("requestId", requestId) return c } @@ -49762,36 +73703,35 @@ func (c *NodeGroupsInsertCall) RequestId(requestId string) *NodeGroupsInsertCall // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *NodeGroupsInsertCall) Fields(s ...googleapi.Field) *NodeGroupsInsertCall { +func (c *PacketMirroringsInsertCall) Fields(s ...googleapi.Field) *PacketMirroringsInsertCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } // Context sets the context to be used in this call's Do method. -func (c *NodeGroupsInsertCall) Context(ctx context.Context) *NodeGroupsInsertCall { +func (c *PacketMirroringsInsertCall) Context(ctx context.Context) *PacketMirroringsInsertCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *NodeGroupsInsertCall) Header() http.Header { +func (c *PacketMirroringsInsertCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *NodeGroupsInsertCall) doRequest(alt string) (*http.Response, error) { +func (c *PacketMirroringsInsertCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) - var body io.Reader = nil - body, err := googleapi.WithoutDataWrapper.JSONReader(c.nodegroup) + body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.packetmirroring) if err != nil { return nil, err } c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/nodeGroups") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/packetMirrorings") urls += "?" + c.urlParams_.Encode() req, err := http.NewRequest("POST", urls, body) if err != nil { @@ -49800,17 +73740,18 @@ func (c *NodeGroupsInsertCall) doRequest(alt string) (*http.Response, error) { req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ "project": c.project, - "zone": c.zone, + "region": c.region, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.packetMirrorings.insert", "request", internallog.HTTPRequest(req, body.Bytes())) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.nodeGroups.insert" call. +// Do executes the "compute.packetMirrorings.insert" call. // 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 *NodeGroupsInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) { +func (c *PacketMirroringsInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -49836,108 +73777,161 @@ func (c *NodeGroupsInsertCall) Do(opts ...googleapi.CallOption) (*Operation, err }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.packetMirrorings.insert", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type NodeGroupsListCall struct { +type PacketMirroringsListCall struct { s *Service project string - zone string + region string urlParams_ gensupport.URLParams ifNoneMatch_ string ctx_ context.Context header_ http.Header } -// List: Retrieves a list of node groups available to the specified project. -// Note: use nodeGroups.listNodes for more details about each group. +// List: Retrieves a list of PacketMirroring resources available to the +// specified +// project and region. // // - project: Project ID for this request. -// - zone: The name of the zone for this request. -func (r *NodeGroupsService) List(project string, zone string) *NodeGroupsListCall { - c := &NodeGroupsListCall{s: r.s, urlParams_: make(gensupport.URLParams)} +// - region: Name of the region for this request. +func (r *PacketMirroringsService) List(project string, region string) *PacketMirroringsListCall { + c := &PacketMirroringsListCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project - c.zone = zone + c.region = region return c } // Filter sets the optional parameter "filter": A filter expression that -// filters resources listed in the response. Most Compute resources support two -// types of filter expressions: expressions that support regular expressions -// and expressions that follow API improvement proposal AIP-160. These two -// types of filter expressions cannot be mixed in one request. If you want to -// use AIP-160, your expression must specify the field name, an operator, and -// the value that you want to use for filtering. The value must be a string, a -// number, or a boolean. The 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`. The `:*` comparison can be used to test whether a key has -// been defined. For example, to find all objects with `owner` label use: ``` -// labels.owner:* ``` 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) ``` If you want to use a regular -// expression, use the `eq` (equal) or `ne` (not equal) operator against a -// single un-parenthesized expression with or without quotes or against -// multiple parenthesized expressions. Examples: `fieldname eq unquoted -// literal` `fieldname eq 'single quoted literal'` `fieldname eq "double quoted -// literal" `(fieldname1 eq literal) (fieldname2 ne "literal")` The literal -// value is interpreted as a regular expression using Google RE2 library -// syntax. The literal value must match the entire field. For example, to -// filter for instances that do not end with name "instance", you would use -// `name ne .*instance`. You cannot combine constraints on multiple fields -// using regular expressions. -func (c *NodeGroupsListCall) Filter(filter string) *NodeGroupsListCall { +// filters resources listed in the response. Most +// Compute resources support two types of filter expressions: +// expressions that support regular expressions and expressions that follow +// API improvement proposal AIP-160. +// These two types of filter expressions cannot be mixed in one request. +// +// If you want to use AIP-160, your expression must specify the field name, +// an +// operator, and the value that you want to use for filtering. The value +// must be a string, a number, or a boolean. The 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`. +// +// The `:*` comparison can be used to test whether a key has been defined. +// For example, to find all objects with `owner` label +// use: +// ``` +// labels.owner:* +// ``` +// +// 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 onresource 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) +// ``` +// +// If you want to use a regular expression, use the `eq` (equal) or `ne` +// (not equal) operator against a single un-parenthesized expression with +// or +// without quotes or against multiple parenthesized expressions. +// Examples: +// +// `fieldname eq unquoted literal` +// `fieldname eq 'single quoted literal'` +// `fieldname eq "double quoted literal" +// `(fieldname1 eq literal) (fieldname2 ne "literal")` +// +// The literal value is interpreted as a regular expression using GoogleRE2 +// library syntax. +// The literal value must match the entire field. +// +// For example, to filter for instances that do not end with name +// "instance", +// you would use `name ne .*instance`. +// +// You cannot combine constraints on multiple fields using regular +// expressions. +func (c *PacketMirroringsListCall) Filter(filter string) *PacketMirroringsListCall { 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 *NodeGroupsListCall) MaxResults(maxResults int64) *NodeGroupsListCall { +// 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 *PacketMirroringsListCall) MaxResults(maxResults int64) *PacketMirroringsListCall { 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 *NodeGroupsListCall) OrderBy(orderBy string) *NodeGroupsListCall { +// 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 *PacketMirroringsListCall) OrderBy(orderBy string) *PacketMirroringsListCall { 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 *NodeGroupsListCall) PageToken(pageToken string) *NodeGroupsListCall { +// use. Set `pageToken` to the +// `nextPageToken` returned by a previous list request to get +// the next page of results. +func (c *PacketMirroringsListCall) PageToken(pageToken string) *PacketMirroringsListCall { c.urlParams_.Set("pageToken", pageToken) return c } // ReturnPartialSuccess sets the optional parameter "returnPartialSuccess": -// Opt-in for partial success behavior which provides partial results in case -// of failure. The default value is false. For example, when partial success -// behavior is enabled, aggregatedList for a single zone scope either returns -// all resources in the zone or no resources, with an error code. -func (c *NodeGroupsListCall) ReturnPartialSuccess(returnPartialSuccess bool) *NodeGroupsListCall { +// Opt-in for partial success behavior which provides partial results in +// case +// of failure. The default value is false. +// +// For example, when partial success behavior is enabled, aggregatedList for +// a +// single zone scope either returns all resources in the zone or no +// resources, +// with an error code. +func (c *PacketMirroringsListCall) ReturnPartialSuccess(returnPartialSuccess bool) *PacketMirroringsListCall { c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess)) return c } @@ -49945,7 +73939,7 @@ func (c *NodeGroupsListCall) ReturnPartialSuccess(returnPartialSuccess bool) *No // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *NodeGroupsListCall) Fields(s ...googleapi.Field) *NodeGroupsListCall { +func (c *PacketMirroringsListCall) Fields(s ...googleapi.Field) *PacketMirroringsListCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } @@ -49953,54 +73947,55 @@ func (c *NodeGroupsListCall) Fields(s ...googleapi.Field) *NodeGroupsListCall { // IfNoneMatch sets an 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. -func (c *NodeGroupsListCall) IfNoneMatch(entityTag string) *NodeGroupsListCall { +func (c *PacketMirroringsListCall) IfNoneMatch(entityTag string) *PacketMirroringsListCall { c.ifNoneMatch_ = entityTag return c } // Context sets the context to be used in this call's Do method. -func (c *NodeGroupsListCall) Context(ctx context.Context) *NodeGroupsListCall { +func (c *PacketMirroringsListCall) Context(ctx context.Context) *PacketMirroringsListCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *NodeGroupsListCall) Header() http.Header { +func (c *PacketMirroringsListCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *NodeGroupsListCall) doRequest(alt string) (*http.Response, error) { +func (c *PacketMirroringsListCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) if c.ifNoneMatch_ != "" { reqHeaders.Set("If-None-Match", c.ifNoneMatch_) } - var body io.Reader = nil c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/nodeGroups") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/packetMirrorings") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("GET", urls, body) + req, err := http.NewRequest("GET", urls, nil) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ "project": c.project, - "zone": c.zone, + "region": c.region, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.packetMirrorings.list", "request", internallog.HTTPRequest(req, nil)) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.nodeGroups.list" call. +// Do executes the "compute.packetMirrorings.list" call. // Any non-2xx status code is an error. Response headers are in either -// *NodeGroupList.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 *NodeGroupsListCall) Do(opts ...googleapi.CallOption) (*NodeGroupList, error) { +// *PacketMirroringList.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 *PacketMirroringsListCall) Do(opts ...googleapi.CallOption) (*PacketMirroringList, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -50019,23 +74014,25 @@ func (c *NodeGroupsListCall) Do(opts ...googleapi.CallOption) (*NodeGroupList, e if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } - ret := &NodeGroupList{ + ret := &PacketMirroringList{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.packetMirrorings.list", "response", internallog.HTTPResponse(res, b)) return ret, nil } // 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 *NodeGroupsListCall) Pages(ctx context.Context, f func(*NodeGroupList) error) error { +func (c *PacketMirroringsListCall) Pages(ctx context.Context, f func(*PacketMirroringList) error) error { c.ctx_ = ctx defer c.PageToken(c.urlParams_.Get("pageToken")) for { @@ -50053,157 +74050,110 @@ func (c *NodeGroupsListCall) Pages(ctx context.Context, f func(*NodeGroupList) e } } -type NodeGroupsListNodesCall struct { - s *Service - project string - zone string - nodeGroup string - urlParams_ gensupport.URLParams - ctx_ context.Context - header_ http.Header +type PacketMirroringsPatchCall struct { + s *Service + project string + region string + packetMirroring string + packetmirroring *PacketMirroring + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header } -// ListNodes: Lists nodes in the node group. +// Patch: Patches the specified PacketMirroring resource with the data included +// in +// the request. This method supportsPATCH +// semantics and usesJSON merge +// patch format and processing rules. // -// - nodeGroup: Name of the NodeGroup resource whose nodes you want to list. +// - packetMirroring: Name of the PacketMirroring resource to patch. // - project: Project ID for this request. -// - zone: The name of the zone for this request. -func (r *NodeGroupsService) ListNodes(project string, zone string, nodeGroup string) *NodeGroupsListNodesCall { - c := &NodeGroupsListNodesCall{s: r.s, urlParams_: make(gensupport.URLParams)} +// - region: Name of the region for this request. +func (r *PacketMirroringsService) Patch(project string, region string, packetMirroring string, packetmirroring *PacketMirroring) *PacketMirroringsPatchCall { + c := &PacketMirroringsPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project - c.zone = zone - c.nodeGroup = nodeGroup - return c -} - -// Filter sets the optional parameter "filter": A filter expression that -// filters resources listed in the response. Most Compute resources support two -// types of filter expressions: expressions that support regular expressions -// and expressions that follow API improvement proposal AIP-160. These two -// types of filter expressions cannot be mixed in one request. If you want to -// use AIP-160, your expression must specify the field name, an operator, and -// the value that you want to use for filtering. The value must be a string, a -// number, or a boolean. The 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`. The `:*` comparison can be used to test whether a key has -// been defined. For example, to find all objects with `owner` label use: ``` -// labels.owner:* ``` 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) ``` If you want to use a regular -// expression, use the `eq` (equal) or `ne` (not equal) operator against a -// single un-parenthesized expression with or without quotes or against -// multiple parenthesized expressions. Examples: `fieldname eq unquoted -// literal` `fieldname eq 'single quoted literal'` `fieldname eq "double quoted -// literal" `(fieldname1 eq literal) (fieldname2 ne "literal")` The literal -// value is interpreted as a regular expression using Google RE2 library -// syntax. The literal value must match the entire field. For example, to -// filter for instances that do not end with name "instance", you would use -// `name ne .*instance`. You cannot combine constraints on multiple fields -// using regular expressions. -func (c *NodeGroupsListNodesCall) Filter(filter string) *NodeGroupsListNodesCall { - 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 *NodeGroupsListNodesCall) MaxResults(maxResults int64) *NodeGroupsListNodesCall { - 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 *NodeGroupsListNodesCall) OrderBy(orderBy string) *NodeGroupsListNodesCall { - 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 *NodeGroupsListNodesCall) PageToken(pageToken string) *NodeGroupsListNodesCall { - c.urlParams_.Set("pageToken", pageToken) + c.region = region + c.packetMirroring = packetMirroring + c.packetmirroring = packetmirroring return c } -// ReturnPartialSuccess sets the optional parameter "returnPartialSuccess": -// Opt-in for partial success behavior which provides partial results in case -// of failure. The default value is false. For example, when partial success -// behavior is enabled, aggregatedList for a single zone scope either returns -// all resources in the zone or no resources, with an error code. -func (c *NodeGroupsListNodesCall) ReturnPartialSuccess(returnPartialSuccess bool) *NodeGroupsListNodesCall { - c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess)) +// 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 *PacketMirroringsPatchCall) RequestId(requestId string) *PacketMirroringsPatchCall { + 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 // details. -func (c *NodeGroupsListNodesCall) Fields(s ...googleapi.Field) *NodeGroupsListNodesCall { +func (c *PacketMirroringsPatchCall) Fields(s ...googleapi.Field) *PacketMirroringsPatchCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } // Context sets the context to be used in this call's Do method. -func (c *NodeGroupsListNodesCall) Context(ctx context.Context) *NodeGroupsListNodesCall { +func (c *PacketMirroringsPatchCall) Context(ctx context.Context) *PacketMirroringsPatchCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *NodeGroupsListNodesCall) Header() http.Header { +func (c *PacketMirroringsPatchCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *NodeGroupsListNodesCall) doRequest(alt string) (*http.Response, error) { - reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) - var body io.Reader = nil +func (c *PacketMirroringsPatchCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) + body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.packetmirroring) + if err != nil { + return nil, err + } c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/nodeGroups/{nodeGroup}/listNodes") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/packetMirrorings/{packetMirroring}") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("POST", urls, body) + req, err := http.NewRequest("PATCH", urls, body) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "zone": c.zone, - "nodeGroup": c.nodeGroup, + "project": c.project, + "region": c.region, + "packetMirroring": c.packetMirroring, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.packetMirrorings.patch", "request", internallog.HTTPRequest(req, body.Bytes())) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.nodeGroups.listNodes" call. +// Do executes the "compute.packetMirrorings.patch" call. // Any non-2xx status code is an error. Response headers are in either -// *NodeGroupsListNodes.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 *NodeGroupsListNodesCall) Do(opts ...googleapi.CallOption) (*NodeGroupsListNodes, error) { +// *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 *PacketMirroringsPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -50222,133 +74172,101 @@ func (c *NodeGroupsListNodesCall) Do(opts ...googleapi.CallOption) (*NodeGroupsL if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } - ret := &NodeGroupsListNodes{ + ret := &Operation{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.packetMirrorings.patch", "response", internallog.HTTPResponse(res, b)) return ret, nil } -// 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 *NodeGroupsListNodesCall) Pages(ctx context.Context, f func(*NodeGroupsListNodes) error) error { - c.ctx_ = ctx - defer c.PageToken(c.urlParams_.Get("pageToken")) - 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) - } -} - -type NodeGroupsPatchCall struct { - s *Service - project string - zone string - nodeGroup string - nodegroup *NodeGroup - urlParams_ gensupport.URLParams - ctx_ context.Context - header_ http.Header +type PacketMirroringsTestIamPermissionsCall struct { + s *Service + project string + region string + resource string + testpermissionsrequest *TestPermissionsRequest + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header } -// Patch: Updates the specified node group. +// TestIamPermissions: Returns permissions that a caller has on the specified +// resource. // -// - nodeGroup: Name of the NodeGroup resource to update. // - project: Project ID for this request. -// - zone: The name of the zone for this request. -func (r *NodeGroupsService) Patch(project string, zone string, nodeGroup string, nodegroup *NodeGroup) *NodeGroupsPatchCall { - c := &NodeGroupsPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)} +// - region: The name of the region for this request. +// - resource: Name or id of the resource for this request. +func (r *PacketMirroringsService) TestIamPermissions(project string, region string, resource string, testpermissionsrequest *TestPermissionsRequest) *PacketMirroringsTestIamPermissionsCall { + c := &PacketMirroringsTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project - c.zone = zone - c.nodeGroup = nodeGroup - c.nodegroup = nodegroup - 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 *NodeGroupsPatchCall) RequestId(requestId string) *NodeGroupsPatchCall { - c.urlParams_.Set("requestId", requestId) + c.region = region + c.resource = resource + c.testpermissionsrequest = testpermissionsrequest return c } // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *NodeGroupsPatchCall) Fields(s ...googleapi.Field) *NodeGroupsPatchCall { +func (c *PacketMirroringsTestIamPermissionsCall) Fields(s ...googleapi.Field) *PacketMirroringsTestIamPermissionsCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } // Context sets the context to be used in this call's Do method. -func (c *NodeGroupsPatchCall) Context(ctx context.Context) *NodeGroupsPatchCall { +func (c *PacketMirroringsTestIamPermissionsCall) Context(ctx context.Context) *PacketMirroringsTestIamPermissionsCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *NodeGroupsPatchCall) Header() http.Header { +func (c *PacketMirroringsTestIamPermissionsCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *NodeGroupsPatchCall) doRequest(alt string) (*http.Response, error) { +func (c *PacketMirroringsTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) - var body io.Reader = nil - body, err := googleapi.WithoutDataWrapper.JSONReader(c.nodegroup) + body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.testpermissionsrequest) if err != nil { return nil, err } c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/nodeGroups/{nodeGroup}") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/packetMirrorings/{resource}/testIamPermissions") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("PATCH", urls, body) + req, err := http.NewRequest("POST", urls, body) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "zone": c.zone, - "nodeGroup": c.nodeGroup, + "project": c.project, + "region": c.region, + "resource": c.resource, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.packetMirrorings.testIamPermissions", "request", internallog.HTTPRequest(req, body.Bytes())) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.nodeGroups.patch" call. +// Do executes the "compute.packetMirrorings.testIamPermissions" call. // 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 *NodeGroupsPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) { +// *TestPermissionsResponse.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 *PacketMirroringsTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -50367,113 +74285,101 @@ func (c *NodeGroupsPatchCall) Do(opts ...googleapi.CallOption) (*Operation, erro if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } - ret := &Operation{ + ret := &TestPermissionsResponse{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.packetMirrorings.testIamPermissions", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type NodeGroupsPerformMaintenanceCall struct { - s *Service - project string - zone string - nodeGroup string - nodegroupsperformmaintenancerequest *NodeGroupsPerformMaintenanceRequest - urlParams_ gensupport.URLParams - ctx_ context.Context - header_ http.Header +type PreviewFeaturesGetCall struct { + s *Service + project string + previewFeature string + urlParams_ gensupport.URLParams + ifNoneMatch_ string + ctx_ context.Context + header_ http.Header } -// PerformMaintenance: Perform maintenance on a subset of nodes in the node -// group. +// Get: Returns the details of the given PreviewFeature. // -// - nodeGroup: Name of the node group scoping this request. +// - previewFeature: Name of the PreviewFeature for this request. // - project: Project ID for this request. -// - zone: The name of the zone for this request. -func (r *NodeGroupsService) PerformMaintenance(project string, zone string, nodeGroup string, nodegroupsperformmaintenancerequest *NodeGroupsPerformMaintenanceRequest) *NodeGroupsPerformMaintenanceCall { - c := &NodeGroupsPerformMaintenanceCall{s: r.s, urlParams_: make(gensupport.URLParams)} +func (r *PreviewFeaturesService) Get(project string, previewFeature string) *PreviewFeaturesGetCall { + c := &PreviewFeaturesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project - c.zone = zone - c.nodeGroup = nodeGroup - c.nodegroupsperformmaintenancerequest = nodegroupsperformmaintenancerequest - 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 *NodeGroupsPerformMaintenanceCall) RequestId(requestId string) *NodeGroupsPerformMaintenanceCall { - c.urlParams_.Set("requestId", requestId) + c.previewFeature = previewFeature return c } // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *NodeGroupsPerformMaintenanceCall) Fields(s ...googleapi.Field) *NodeGroupsPerformMaintenanceCall { +func (c *PreviewFeaturesGetCall) Fields(s ...googleapi.Field) *PreviewFeaturesGetCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } +// IfNoneMatch sets an 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. +func (c *PreviewFeaturesGetCall) IfNoneMatch(entityTag string) *PreviewFeaturesGetCall { + c.ifNoneMatch_ = entityTag + return c +} + // Context sets the context to be used in this call's Do method. -func (c *NodeGroupsPerformMaintenanceCall) Context(ctx context.Context) *NodeGroupsPerformMaintenanceCall { +func (c *PreviewFeaturesGetCall) Context(ctx context.Context) *PreviewFeaturesGetCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *NodeGroupsPerformMaintenanceCall) Header() http.Header { +func (c *PreviewFeaturesGetCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *NodeGroupsPerformMaintenanceCall) doRequest(alt string) (*http.Response, error) { - reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) - var body io.Reader = nil - body, err := googleapi.WithoutDataWrapper.JSONReader(c.nodegroupsperformmaintenancerequest) - if err != nil { - return nil, err +func (c *PreviewFeaturesGetCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) + if c.ifNoneMatch_ != "" { + reqHeaders.Set("If-None-Match", c.ifNoneMatch_) } c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/nodeGroups/{nodeGroup}/performMaintenance") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/previewFeatures/{previewFeature}") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("POST", urls, body) + req, err := http.NewRequest("GET", urls, nil) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "zone": c.zone, - "nodeGroup": c.nodeGroup, + "project": c.project, + "previewFeature": c.previewFeature, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.previewFeatures.get", "request", internallog.HTTPRequest(req, nil)) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.nodeGroups.performMaintenance" call. +// Do executes the "compute.previewFeatures.get" call. // 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 +// *PreviewFeature.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 *NodeGroupsPerformMaintenanceCall) Do(opts ...googleapi.CallOption) (*Operation, error) { +func (c *PreviewFeaturesGetCall) Do(opts ...googleapi.CallOption) (*PreviewFeature, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -50492,98 +74398,226 @@ func (c *NodeGroupsPerformMaintenanceCall) Do(opts ...googleapi.CallOption) (*Op if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } - ret := &Operation{ + ret := &PreviewFeature{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.previewFeatures.get", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type NodeGroupsSetIamPolicyCall struct { - s *Service - project string - zone string - resource string - zonesetpolicyrequest *ZoneSetPolicyRequest - urlParams_ gensupport.URLParams - ctx_ context.Context - header_ http.Header +type PreviewFeaturesListCall struct { + s *Service + project string + urlParams_ gensupport.URLParams + ifNoneMatch_ string + ctx_ context.Context + header_ http.Header } -// SetIamPolicy: Sets the access control policy on the specified resource. -// Replaces any existing policy. +// List: Returns the details of the given PreviewFeature. // // - project: Project ID for this request. -// - resource: Name or id of the resource for this request. -// - zone: The name of the zone for this request. -func (r *NodeGroupsService) SetIamPolicy(project string, zone string, resource string, zonesetpolicyrequest *ZoneSetPolicyRequest) *NodeGroupsSetIamPolicyCall { - c := &NodeGroupsSetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)} +func (r *PreviewFeaturesService) List(project string) *PreviewFeaturesListCall { + c := &PreviewFeaturesListCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project - c.zone = zone - c.resource = resource - c.zonesetpolicyrequest = zonesetpolicyrequest + return c +} + +// Filter sets the optional parameter "filter": A filter expression that +// filters resources listed in the response. Most +// Compute resources support two types of filter expressions: +// expressions that support regular expressions and expressions that follow +// API improvement proposal AIP-160. +// These two types of filter expressions cannot be mixed in one request. +// +// If you want to use AIP-160, your expression must specify the field name, +// an +// operator, and the value that you want to use for filtering. The value +// must be a string, a number, or a boolean. The 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`. +// +// The `:*` comparison can be used to test whether a key has been defined. +// For example, to find all objects with `owner` label +// use: +// ``` +// labels.owner:* +// ``` +// +// 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 onresource 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) +// ``` +// +// If you want to use a regular expression, use the `eq` (equal) or `ne` +// (not equal) operator against a single un-parenthesized expression with +// or +// without quotes or against multiple parenthesized expressions. +// Examples: +// +// `fieldname eq unquoted literal` +// `fieldname eq 'single quoted literal'` +// `fieldname eq "double quoted literal" +// `(fieldname1 eq literal) (fieldname2 ne "literal")` +// +// The literal value is interpreted as a regular expression using GoogleRE2 +// library syntax. +// The literal value must match the entire field. +// +// For example, to filter for instances that do not end with name +// "instance", +// you would use `name ne .*instance`. +// +// You cannot combine constraints on multiple fields using regular +// expressions. +func (c *PreviewFeaturesListCall) Filter(filter string) *PreviewFeaturesListCall { + 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 *PreviewFeaturesListCall) MaxResults(maxResults int64) *PreviewFeaturesListCall { + 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 *PreviewFeaturesListCall) OrderBy(orderBy string) *PreviewFeaturesListCall { + 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 *PreviewFeaturesListCall) PageToken(pageToken string) *PreviewFeaturesListCall { + c.urlParams_.Set("pageToken", pageToken) + return c +} + +// ReturnPartialSuccess sets the optional parameter "returnPartialSuccess": +// Opt-in for partial success behavior which provides partial results in +// case +// of failure. The default value is false. +// +// For example, when partial success behavior is enabled, aggregatedList for +// a +// single zone scope either returns all resources in the zone or no +// resources, +// with an error code. +func (c *PreviewFeaturesListCall) ReturnPartialSuccess(returnPartialSuccess bool) *PreviewFeaturesListCall { + c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess)) return c } // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *NodeGroupsSetIamPolicyCall) Fields(s ...googleapi.Field) *NodeGroupsSetIamPolicyCall { +func (c *PreviewFeaturesListCall) Fields(s ...googleapi.Field) *PreviewFeaturesListCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } +// IfNoneMatch sets an 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. +func (c *PreviewFeaturesListCall) IfNoneMatch(entityTag string) *PreviewFeaturesListCall { + c.ifNoneMatch_ = entityTag + return c +} + // Context sets the context to be used in this call's Do method. -func (c *NodeGroupsSetIamPolicyCall) Context(ctx context.Context) *NodeGroupsSetIamPolicyCall { +func (c *PreviewFeaturesListCall) Context(ctx context.Context) *PreviewFeaturesListCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *NodeGroupsSetIamPolicyCall) Header() http.Header { +func (c *PreviewFeaturesListCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *NodeGroupsSetIamPolicyCall) doRequest(alt string) (*http.Response, error) { - reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) - var body io.Reader = nil - body, err := googleapi.WithoutDataWrapper.JSONReader(c.zonesetpolicyrequest) - if err != nil { - return nil, err +func (c *PreviewFeaturesListCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) + if c.ifNoneMatch_ != "" { + reqHeaders.Set("If-None-Match", c.ifNoneMatch_) } c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/nodeGroups/{resource}/setIamPolicy") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/previewFeatures") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("POST", urls, body) + req, err := http.NewRequest("GET", urls, nil) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "zone": c.zone, - "resource": c.resource, + "project": c.project, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.previewFeatures.list", "request", internallog.HTTPRequest(req, nil)) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.nodeGroups.setIamPolicy" call. +// Do executes the "compute.previewFeatures.list" call. // Any non-2xx status code is an error. Response headers are in either -// *Policy.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 *NodeGroupsSetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, error) { +// *PreviewFeatureList.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 *PreviewFeaturesListCall) Do(opts ...googleapi.CallOption) (*PreviewFeatureList, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -50602,55 +74636,84 @@ func (c *NodeGroupsSetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } - ret := &Policy{ + ret := &PreviewFeatureList{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.previewFeatures.list", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type NodeGroupsSetNodeTemplateCall struct { - s *Service - project string - zone string - nodeGroup string - nodegroupssetnodetemplaterequest *NodeGroupsSetNodeTemplateRequest - urlParams_ gensupport.URLParams - ctx_ context.Context - header_ http.Header +// 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 *PreviewFeaturesListCall) Pages(ctx context.Context, f func(*PreviewFeatureList) error) error { + c.ctx_ = ctx + defer c.PageToken(c.urlParams_.Get("pageToken")) + 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) + } } -// SetNodeTemplate: Updates the node template of the node group. +type PreviewFeaturesUpdateCall struct { + s *Service + project string + previewFeature string + previewfeature *PreviewFeature + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header +} + +// Update: Patches the given PreviewFeature. This method is used to enable or +// disable +// a PreviewFeature. // -// - nodeGroup: Name of the NodeGroup resource to update. +// - previewFeature: Name of the PreviewFeature for this request. // - project: Project ID for this request. -// - zone: The name of the zone for this request. -func (r *NodeGroupsService) SetNodeTemplate(project string, zone string, nodeGroup string, nodegroupssetnodetemplaterequest *NodeGroupsSetNodeTemplateRequest) *NodeGroupsSetNodeTemplateCall { - c := &NodeGroupsSetNodeTemplateCall{s: r.s, urlParams_: make(gensupport.URLParams)} +func (r *PreviewFeaturesService) Update(project string, previewFeature string, previewfeature *PreviewFeature) *PreviewFeaturesUpdateCall { + c := &PreviewFeaturesUpdateCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project - c.zone = zone - c.nodeGroup = nodeGroup - c.nodegroupssetnodetemplaterequest = nodegroupssetnodetemplaterequest + c.previewFeature = previewFeature + c.previewfeature = previewfeature 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 *NodeGroupsSetNodeTemplateCall) RequestId(requestId string) *NodeGroupsSetNodeTemplateCall { +// 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 *PreviewFeaturesUpdateCall) RequestId(requestId string) *PreviewFeaturesUpdateCall { c.urlParams_.Set("requestId", requestId) return c } @@ -50658,56 +74721,55 @@ func (c *NodeGroupsSetNodeTemplateCall) RequestId(requestId string) *NodeGroupsS // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *NodeGroupsSetNodeTemplateCall) Fields(s ...googleapi.Field) *NodeGroupsSetNodeTemplateCall { +func (c *PreviewFeaturesUpdateCall) Fields(s ...googleapi.Field) *PreviewFeaturesUpdateCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } // Context sets the context to be used in this call's Do method. -func (c *NodeGroupsSetNodeTemplateCall) Context(ctx context.Context) *NodeGroupsSetNodeTemplateCall { +func (c *PreviewFeaturesUpdateCall) Context(ctx context.Context) *PreviewFeaturesUpdateCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *NodeGroupsSetNodeTemplateCall) Header() http.Header { +func (c *PreviewFeaturesUpdateCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *NodeGroupsSetNodeTemplateCall) doRequest(alt string) (*http.Response, error) { +func (c *PreviewFeaturesUpdateCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) - var body io.Reader = nil - body, err := googleapi.WithoutDataWrapper.JSONReader(c.nodegroupssetnodetemplaterequest) + body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.previewfeature) if err != nil { return nil, err } c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/nodeGroups/{nodeGroup}/setNodeTemplate") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/previewFeatures/{previewFeature}") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("POST", urls, body) + req, err := http.NewRequest("PATCH", urls, body) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "zone": c.zone, - "nodeGroup": c.nodeGroup, + "project": c.project, + "previewFeature": c.previewFeature, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.previewFeatures.update", "request", internallog.HTTPRequest(req, body.Bytes())) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.nodeGroups.setNodeTemplate" call. +// Do executes the "compute.previewFeatures.update" call. // 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 *NodeGroupsSetNodeTemplateCall) Do(opts ...googleapi.CallOption) (*Operation, error) { +func (c *PreviewFeaturesUpdateCall) Do(opts ...googleapi.CallOption) (*Operation, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -50733,50 +74795,49 @@ func (c *NodeGroupsSetNodeTemplateCall) Do(opts ...googleapi.CallOption) (*Opera }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.previewFeatures.update", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type NodeGroupsSimulateMaintenanceEventCall struct { - s *Service - project string - zone string - nodeGroup string - nodegroupssimulatemaintenanceeventrequest *NodeGroupsSimulateMaintenanceEventRequest - urlParams_ gensupport.URLParams - ctx_ context.Context - header_ http.Header +type ProjectsDisableXpnHostCall struct { + s *Service + project string + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header } -// SimulateMaintenanceEvent: Simulates maintenance event on specified nodes -// from the node group. +// DisableXpnHost: Disable this project as a shared VPC host project. // -// - nodeGroup: Name of the NodeGroup resource whose nodes will go under -// maintenance simulation. -// - project: Project ID for this request. -// - zone: The name of the zone for this request. -func (r *NodeGroupsService) SimulateMaintenanceEvent(project string, zone string, nodeGroup string, nodegroupssimulatemaintenanceeventrequest *NodeGroupsSimulateMaintenanceEventRequest) *NodeGroupsSimulateMaintenanceEventCall { - c := &NodeGroupsSimulateMaintenanceEventCall{s: r.s, urlParams_: make(gensupport.URLParams)} +// - project: Project ID for this request. +func (r *ProjectsService) DisableXpnHost(project string) *ProjectsDisableXpnHostCall { + c := &ProjectsDisableXpnHostCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project - c.zone = zone - c.nodeGroup = nodeGroup - c.nodegroupssimulatemaintenanceeventrequest = nodegroupssimulatemaintenanceeventrequest 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 *NodeGroupsSimulateMaintenanceEventCall) RequestId(requestId string) *NodeGroupsSimulateMaintenanceEventCall { +// 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 *ProjectsDisableXpnHostCall) RequestId(requestId string) *ProjectsDisableXpnHostCall { c.urlParams_.Set("requestId", requestId) return c } @@ -50784,56 +74845,50 @@ func (c *NodeGroupsSimulateMaintenanceEventCall) RequestId(requestId string) *No // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *NodeGroupsSimulateMaintenanceEventCall) Fields(s ...googleapi.Field) *NodeGroupsSimulateMaintenanceEventCall { +func (c *ProjectsDisableXpnHostCall) Fields(s ...googleapi.Field) *ProjectsDisableXpnHostCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } // Context sets the context to be used in this call's Do method. -func (c *NodeGroupsSimulateMaintenanceEventCall) Context(ctx context.Context) *NodeGroupsSimulateMaintenanceEventCall { +func (c *ProjectsDisableXpnHostCall) Context(ctx context.Context) *ProjectsDisableXpnHostCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *NodeGroupsSimulateMaintenanceEventCall) Header() http.Header { +func (c *ProjectsDisableXpnHostCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *NodeGroupsSimulateMaintenanceEventCall) doRequest(alt string) (*http.Response, error) { - reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) - var body io.Reader = nil - body, err := googleapi.WithoutDataWrapper.JSONReader(c.nodegroupssimulatemaintenanceeventrequest) - if err != nil { - return nil, err - } +func (c *ProjectsDisableXpnHostCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/nodeGroups/{nodeGroup}/simulateMaintenanceEvent") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/disableXpnHost") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("POST", urls, body) + req, err := http.NewRequest("POST", urls, nil) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "zone": c.zone, - "nodeGroup": c.nodeGroup, + "project": c.project, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.projects.disableXpnHost", "request", internallog.HTTPRequest(req, nil)) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.nodeGroups.simulateMaintenanceEvent" call. +// Do executes the "compute.projects.disableXpnHost" call. // 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 *NodeGroupsSimulateMaintenanceEventCall) Do(opts ...googleapi.CallOption) (*Operation, error) { +func (c *ProjectsDisableXpnHostCall) Do(opts ...googleapi.CallOption) (*Operation, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -50859,71 +74914,89 @@ func (c *NodeGroupsSimulateMaintenanceEventCall) Do(opts ...googleapi.CallOption }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.projects.disableXpnHost", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type NodeGroupsTestIamPermissionsCall struct { - s *Service - project string - zone string - resource string - testpermissionsrequest *TestPermissionsRequest - urlParams_ gensupport.URLParams - ctx_ context.Context - header_ http.Header +type ProjectsDisableXpnResourceCall struct { + s *Service + project string + projectsdisablexpnresourcerequest *ProjectsDisableXpnResourceRequest + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header } -// TestIamPermissions: Returns permissions that a caller has on the specified -// resource. +// DisableXpnResource: Disable a service resource (also known as service +// project) associated with +// this host project. // // - project: Project ID for this request. -// - resource: Name or id of the resource for this request. -// - zone: The name of the zone for this request. -func (r *NodeGroupsService) TestIamPermissions(project string, zone string, resource string, testpermissionsrequest *TestPermissionsRequest) *NodeGroupsTestIamPermissionsCall { - c := &NodeGroupsTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)} +func (r *ProjectsService) DisableXpnResource(project string, projectsdisablexpnresourcerequest *ProjectsDisableXpnResourceRequest) *ProjectsDisableXpnResourceCall { + c := &ProjectsDisableXpnResourceCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project - c.zone = zone - c.resource = resource - c.testpermissionsrequest = testpermissionsrequest + c.projectsdisablexpnresourcerequest = projectsdisablexpnresourcerequest + 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 *ProjectsDisableXpnResourceCall) RequestId(requestId string) *ProjectsDisableXpnResourceCall { + 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 // details. -func (c *NodeGroupsTestIamPermissionsCall) Fields(s ...googleapi.Field) *NodeGroupsTestIamPermissionsCall { +func (c *ProjectsDisableXpnResourceCall) Fields(s ...googleapi.Field) *ProjectsDisableXpnResourceCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } // Context sets the context to be used in this call's Do method. -func (c *NodeGroupsTestIamPermissionsCall) Context(ctx context.Context) *NodeGroupsTestIamPermissionsCall { +func (c *ProjectsDisableXpnResourceCall) Context(ctx context.Context) *ProjectsDisableXpnResourceCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *NodeGroupsTestIamPermissionsCall) Header() http.Header { +func (c *ProjectsDisableXpnResourceCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *NodeGroupsTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) { +func (c *ProjectsDisableXpnResourceCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) - var body io.Reader = nil - body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest) + body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.projectsdisablexpnresourcerequest) if err != nil { return nil, err } c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/nodeGroups/{resource}/testIamPermissions") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/disableXpnResource") urls += "?" + c.urlParams_.Encode() req, err := http.NewRequest("POST", urls, body) if err != nil { @@ -50931,20 +75004,18 @@ func (c *NodeGroupsTestIamPermissionsCall) doRequest(alt string) (*http.Response } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "zone": c.zone, - "resource": c.resource, + "project": c.project, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.projects.disableXpnResource", "request", internallog.HTTPRequest(req, body.Bytes())) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.nodeGroups.testIamPermissions" call. +// Do executes the "compute.projects.disableXpnResource" call. // Any non-2xx status code is an error. Response headers are in either -// *TestPermissionsResponse.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 *NodeGroupsTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) { +// *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 *ProjectsDisableXpnResourceCall) Do(opts ...googleapi.CallOption) (*Operation, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -50963,180 +75034,90 @@ func (c *NodeGroupsTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*Te if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } - ret := &TestPermissionsResponse{ + ret := &Operation{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.projects.disableXpnResource", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type NodeTemplatesAggregatedListCall struct { - s *Service - project string - urlParams_ gensupport.URLParams - ifNoneMatch_ string - ctx_ context.Context - header_ http.Header +type ProjectsEnableXpnHostCall struct { + s *Service + project string + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header } -// AggregatedList: Retrieves an aggregated list of node templates. To prevent -// failure, Google recommends that you set the `returnPartialSuccess` parameter -// to `true`. +// EnableXpnHost: Enable this project as a shared VPC host project. // // - project: Project ID for this request. -func (r *NodeTemplatesService) AggregatedList(project string) *NodeTemplatesAggregatedListCall { - c := &NodeTemplatesAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)} +func (r *ProjectsService) EnableXpnHost(project string) *ProjectsEnableXpnHostCall { + c := &ProjectsEnableXpnHostCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project return c } -// Filter sets the optional parameter "filter": A filter expression that -// filters resources listed in the response. Most Compute resources support two -// types of filter expressions: expressions that support regular expressions -// and expressions that follow API improvement proposal AIP-160. These two -// types of filter expressions cannot be mixed in one request. If you want to -// use AIP-160, your expression must specify the field name, an operator, and -// the value that you want to use for filtering. The value must be a string, a -// number, or a boolean. The 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`. The `:*` comparison can be used to test whether a key has -// been defined. For example, to find all objects with `owner` label use: ``` -// labels.owner:* ``` 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) ``` If you want to use a regular -// expression, use the `eq` (equal) or `ne` (not equal) operator against a -// single un-parenthesized expression with or without quotes or against -// multiple parenthesized expressions. Examples: `fieldname eq unquoted -// literal` `fieldname eq 'single quoted literal'` `fieldname eq "double quoted -// literal" `(fieldname1 eq literal) (fieldname2 ne "literal")` The literal -// value is interpreted as a regular expression using Google RE2 library -// syntax. The literal value must match the entire field. For example, to -// filter for instances that do not end with name "instance", you would use -// `name ne .*instance`. You cannot combine constraints on multiple fields -// using regular expressions. -func (c *NodeTemplatesAggregatedListCall) Filter(filter string) *NodeTemplatesAggregatedListCall { - c.urlParams_.Set("filter", filter) - return c -} - -// IncludeAllScopes sets the optional parameter "includeAllScopes": Indicates -// whether every visible scope for each scope type (zone, region, global) -// should be included in the response. For new resource types added after this -// field, the flag has no effect as new resource types will always include -// every visible scope for each scope type in response. For resource types -// which predate this field, if this flag is omitted or false, only scopes of -// the scope types where the resource type is expected to be found will be -// included. -func (c *NodeTemplatesAggregatedListCall) IncludeAllScopes(includeAllScopes bool) *NodeTemplatesAggregatedListCall { - c.urlParams_.Set("includeAllScopes", fmt.Sprint(includeAllScopes)) - 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 *NodeTemplatesAggregatedListCall) MaxResults(maxResults int64) *NodeTemplatesAggregatedListCall { - 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 *NodeTemplatesAggregatedListCall) OrderBy(orderBy string) *NodeTemplatesAggregatedListCall { - 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 *NodeTemplatesAggregatedListCall) PageToken(pageToken string) *NodeTemplatesAggregatedListCall { - c.urlParams_.Set("pageToken", pageToken) - return c -} - -// ReturnPartialSuccess sets the optional parameter "returnPartialSuccess": -// Opt-in for partial success behavior which provides partial results in case -// of failure. The default value is false. For example, when partial success -// behavior is enabled, aggregatedList for a single zone scope either returns -// all resources in the zone or no resources, with an error code. -func (c *NodeTemplatesAggregatedListCall) ReturnPartialSuccess(returnPartialSuccess bool) *NodeTemplatesAggregatedListCall { - c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess)) - return c -} - -// ServiceProjectNumber sets the optional parameter "serviceProjectNumber": The -// Shared VPC service project id or service project number for which aggregated -// list request is invoked for subnetworks list-usable api. -func (c *NodeTemplatesAggregatedListCall) ServiceProjectNumber(serviceProjectNumber int64) *NodeTemplatesAggregatedListCall { - c.urlParams_.Set("serviceProjectNumber", fmt.Sprint(serviceProjectNumber)) +// 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 *ProjectsEnableXpnHostCall) RequestId(requestId string) *ProjectsEnableXpnHostCall { + 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 // details. -func (c *NodeTemplatesAggregatedListCall) Fields(s ...googleapi.Field) *NodeTemplatesAggregatedListCall { +func (c *ProjectsEnableXpnHostCall) Fields(s ...googleapi.Field) *ProjectsEnableXpnHostCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } -// IfNoneMatch sets an 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. -func (c *NodeTemplatesAggregatedListCall) IfNoneMatch(entityTag string) *NodeTemplatesAggregatedListCall { - c.ifNoneMatch_ = entityTag - return c -} - // Context sets the context to be used in this call's Do method. -func (c *NodeTemplatesAggregatedListCall) Context(ctx context.Context) *NodeTemplatesAggregatedListCall { +func (c *ProjectsEnableXpnHostCall) Context(ctx context.Context) *ProjectsEnableXpnHostCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *NodeTemplatesAggregatedListCall) Header() http.Header { +func (c *ProjectsEnableXpnHostCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *NodeTemplatesAggregatedListCall) doRequest(alt string) (*http.Response, error) { +func (c *ProjectsEnableXpnHostCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) - if c.ifNoneMatch_ != "" { - reqHeaders.Set("If-None-Match", c.ifNoneMatch_) - } - var body io.Reader = nil c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/aggregated/nodeTemplates") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/enableXpnHost") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("GET", urls, body) + req, err := http.NewRequest("POST", urls, nil) if err != nil { return nil, err } @@ -51144,16 +75125,16 @@ func (c *NodeTemplatesAggregatedListCall) doRequest(alt string) (*http.Response, googleapi.Expand(req.URL, map[string]string{ "project": c.project, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.projects.enableXpnHost", "request", internallog.HTTPRequest(req, nil)) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.nodeTemplates.aggregatedList" call. +// Do executes the "compute.projects.enableXpnHost" call. // Any non-2xx status code is an error. Response headers are in either -// *NodeTemplateAggregatedList.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 *NodeTemplatesAggregatedListCall) Do(opts ...googleapi.CallOption) (*NodeTemplateAggregatedList, error) { +// *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 *ProjectsEnableXpnHostCall) Do(opts ...googleapi.CallOption) (*Operation, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -51172,74 +75153,61 @@ func (c *NodeTemplatesAggregatedListCall) Do(opts ...googleapi.CallOption) (*Nod if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } - ret := &NodeTemplateAggregatedList{ + ret := &Operation{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.projects.enableXpnHost", "response", internallog.HTTPResponse(res, b)) return ret, nil } -// 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 *NodeTemplatesAggregatedListCall) Pages(ctx context.Context, f func(*NodeTemplateAggregatedList) error) error { - c.ctx_ = ctx - defer c.PageToken(c.urlParams_.Get("pageToken")) - 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) - } -} - -type NodeTemplatesDeleteCall struct { - s *Service - project string - region string - nodeTemplate string - urlParams_ gensupport.URLParams - ctx_ context.Context - header_ http.Header +type ProjectsEnableXpnResourceCall struct { + s *Service + project string + projectsenablexpnresourcerequest *ProjectsEnableXpnResourceRequest + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header } -// Delete: Deletes the specified NodeTemplate resource. +// EnableXpnResource: Enable service resource (a.k.a service project) for a +// host project, so that +// subnets in the host project can be used by instances in the service +// project. // -// - nodeTemplate: Name of the NodeTemplate resource to delete. // - project: Project ID for this request. -// - region: The name of the region for this request. -func (r *NodeTemplatesService) Delete(project string, region string, nodeTemplate string) *NodeTemplatesDeleteCall { - c := &NodeTemplatesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)} +func (r *ProjectsService) EnableXpnResource(project string, projectsenablexpnresourcerequest *ProjectsEnableXpnResourceRequest) *ProjectsEnableXpnResourceCall { + c := &ProjectsEnableXpnResourceCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project - c.region = region - c.nodeTemplate = nodeTemplate + c.projectsenablexpnresourcerequest = projectsenablexpnresourcerequest 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 *NodeTemplatesDeleteCall) RequestId(requestId string) *NodeTemplatesDeleteCall { +// 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 *ProjectsEnableXpnResourceCall) RequestId(requestId string) *ProjectsEnableXpnResourceCall { c.urlParams_.Set("requestId", requestId) return c } @@ -51247,52 +75215,54 @@ func (c *NodeTemplatesDeleteCall) RequestId(requestId string) *NodeTemplatesDele // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *NodeTemplatesDeleteCall) Fields(s ...googleapi.Field) *NodeTemplatesDeleteCall { +func (c *ProjectsEnableXpnResourceCall) Fields(s ...googleapi.Field) *ProjectsEnableXpnResourceCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } // Context sets the context to be used in this call's Do method. -func (c *NodeTemplatesDeleteCall) Context(ctx context.Context) *NodeTemplatesDeleteCall { +func (c *ProjectsEnableXpnResourceCall) Context(ctx context.Context) *ProjectsEnableXpnResourceCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *NodeTemplatesDeleteCall) Header() http.Header { +func (c *ProjectsEnableXpnResourceCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *NodeTemplatesDeleteCall) doRequest(alt string) (*http.Response, error) { - reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) - var body io.Reader = nil +func (c *ProjectsEnableXpnResourceCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) + body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.projectsenablexpnresourcerequest) + if err != nil { + return nil, err + } c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/nodeTemplates/{nodeTemplate}") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/enableXpnResource") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("DELETE", urls, body) + req, err := http.NewRequest("POST", urls, body) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "region": c.region, - "nodeTemplate": c.nodeTemplate, + "project": c.project, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.projects.enableXpnResource", "request", internallog.HTTPRequest(req, body.Bytes())) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.nodeTemplates.delete" call. +// Do executes the "compute.projects.enableXpnResource" call. // 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 *NodeTemplatesDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) { +func (c *ProjectsEnableXpnResourceCall) Do(opts ...googleapi.CallOption) (*Operation, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -51318,40 +75288,48 @@ func (c *NodeTemplatesDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.projects.enableXpnResource", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type NodeTemplatesGetCall struct { +type ProjectsGetCall struct { s *Service project string - region string - nodeTemplate string urlParams_ gensupport.URLParams ifNoneMatch_ string ctx_ context.Context header_ http.Header } -// Get: Returns the specified node template. +// Get: Returns the specified Project resource. +// +// To decrease latency for this method, you can optionally omit any +// unneeded +// information from the response by using a field mask. This practice +// is +// especially recommended for unused quota information (the `quotas` field). +// To exclude one or more fields, set your request's `fields` query +// parameter +// to only include the fields you need. For example, to only include the +// `id` +// and `selfLink` fields, add the query parameter `?fields=id,selfLink` to +// your request. // -// - nodeTemplate: Name of the node template to return. // - project: Project ID for this request. -// - region: The name of the region for this request. -func (r *NodeTemplatesService) Get(project string, region string, nodeTemplate string) *NodeTemplatesGetCall { - c := &NodeTemplatesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)} +func (r *ProjectsService) Get(project string) *ProjectsGetCall { + c := &ProjectsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project - c.region = region - c.nodeTemplate = nodeTemplate return c } // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *NodeTemplatesGetCall) Fields(s ...googleapi.Field) *NodeTemplatesGetCall { +func (c *ProjectsGetCall) Fields(s ...googleapi.Field) *ProjectsGetCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } @@ -51359,55 +75337,53 @@ func (c *NodeTemplatesGetCall) Fields(s ...googleapi.Field) *NodeTemplatesGetCal // IfNoneMatch sets an 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. -func (c *NodeTemplatesGetCall) IfNoneMatch(entityTag string) *NodeTemplatesGetCall { +func (c *ProjectsGetCall) IfNoneMatch(entityTag string) *ProjectsGetCall { c.ifNoneMatch_ = entityTag return c } // Context sets the context to be used in this call's Do method. -func (c *NodeTemplatesGetCall) Context(ctx context.Context) *NodeTemplatesGetCall { +func (c *ProjectsGetCall) Context(ctx context.Context) *ProjectsGetCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *NodeTemplatesGetCall) Header() http.Header { +func (c *ProjectsGetCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *NodeTemplatesGetCall) doRequest(alt string) (*http.Response, error) { +func (c *ProjectsGetCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) if c.ifNoneMatch_ != "" { reqHeaders.Set("If-None-Match", c.ifNoneMatch_) } - var body io.Reader = nil c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/nodeTemplates/{nodeTemplate}") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("GET", urls, body) + req, err := http.NewRequest("GET", urls, nil) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "region": c.region, - "nodeTemplate": c.nodeTemplate, + "project": c.project, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.projects.get", "request", internallog.HTTPRequest(req, nil)) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.nodeTemplates.get" call. +// Do executes the "compute.projects.get" call. // Any non-2xx status code is an error. Response headers are in either -// *NodeTemplate.ServerResponse.Header or (if a response was returned at all) -// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check +// *Project.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 *NodeTemplatesGetCall) Do(opts ...googleapi.CallOption) (*NodeTemplate, error) { +func (c *ProjectsGetCall) Do(opts ...googleapi.CallOption) (*Project, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -51426,55 +75402,45 @@ func (c *NodeTemplatesGetCall) Do(opts ...googleapi.CallOption) (*NodeTemplate, if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } - ret := &NodeTemplate{ + ret := &Project{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.projects.get", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type NodeTemplatesGetIamPolicyCall struct { +type ProjectsGetXpnHostCall struct { s *Service project string - region string - resource string urlParams_ gensupport.URLParams ifNoneMatch_ string ctx_ context.Context header_ http.Header } -// GetIamPolicy: Gets the access control policy for a resource. May be empty if -// no such policy or resource exists. +// GetXpnHost: Gets the shared VPC host project that this project links to. May +// be empty +// if no link exists. // // - project: Project ID for this request. -// - region: The name of the region for this request. -// - resource: Name or id of the resource for this request. -func (r *NodeTemplatesService) GetIamPolicy(project string, region string, resource string) *NodeTemplatesGetIamPolicyCall { - c := &NodeTemplatesGetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)} +func (r *ProjectsService) GetXpnHost(project string) *ProjectsGetXpnHostCall { + c := &ProjectsGetXpnHostCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project - c.region = region - c.resource = resource - return c -} - -// OptionsRequestedPolicyVersion sets the optional parameter -// "optionsRequestedPolicyVersion": Requested IAM Policy version. -func (c *NodeTemplatesGetIamPolicyCall) OptionsRequestedPolicyVersion(optionsRequestedPolicyVersion int64) *NodeTemplatesGetIamPolicyCall { - c.urlParams_.Set("optionsRequestedPolicyVersion", fmt.Sprint(optionsRequestedPolicyVersion)) return c } // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *NodeTemplatesGetIamPolicyCall) Fields(s ...googleapi.Field) *NodeTemplatesGetIamPolicyCall { +func (c *ProjectsGetXpnHostCall) Fields(s ...googleapi.Field) *ProjectsGetXpnHostCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } @@ -51482,55 +75448,53 @@ func (c *NodeTemplatesGetIamPolicyCall) Fields(s ...googleapi.Field) *NodeTempla // IfNoneMatch sets an 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. -func (c *NodeTemplatesGetIamPolicyCall) IfNoneMatch(entityTag string) *NodeTemplatesGetIamPolicyCall { +func (c *ProjectsGetXpnHostCall) IfNoneMatch(entityTag string) *ProjectsGetXpnHostCall { c.ifNoneMatch_ = entityTag return c } // Context sets the context to be used in this call's Do method. -func (c *NodeTemplatesGetIamPolicyCall) Context(ctx context.Context) *NodeTemplatesGetIamPolicyCall { +func (c *ProjectsGetXpnHostCall) Context(ctx context.Context) *ProjectsGetXpnHostCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *NodeTemplatesGetIamPolicyCall) Header() http.Header { +func (c *ProjectsGetXpnHostCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *NodeTemplatesGetIamPolicyCall) doRequest(alt string) (*http.Response, error) { +func (c *ProjectsGetXpnHostCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) if c.ifNoneMatch_ != "" { reqHeaders.Set("If-None-Match", c.ifNoneMatch_) } - var body io.Reader = nil c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/nodeTemplates/{resource}/getIamPolicy") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/getXpnHost") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("GET", urls, body) + req, err := http.NewRequest("GET", urls, nil) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "region": c.region, - "resource": c.resource, + "project": c.project, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.projects.getXpnHost", "request", internallog.HTTPRequest(req, nil)) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.nodeTemplates.getIamPolicy" call. +// Do executes the "compute.projects.getXpnHost" call. // Any non-2xx status code is an error. Response headers are in either -// *Policy.ServerResponse.Header or (if a response was returned at all) in +// *Project.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 *NodeTemplatesGetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, error) { +func (c *ProjectsGetXpnHostCall) Do(opts ...googleapi.CallOption) (*Project, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -51549,109 +75513,228 @@ func (c *NodeTemplatesGetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Polic if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } - ret := &Policy{ + ret := &Project{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.projects.getXpnHost", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type NodeTemplatesInsertCall struct { +type ProjectsGetXpnResourcesCall struct { s *Service project string - region string - nodetemplate *NodeTemplate urlParams_ gensupport.URLParams + ifNoneMatch_ string ctx_ context.Context header_ http.Header } -// Insert: Creates a NodeTemplate resource in the specified project using the -// data included in the request. +// GetXpnResources: Gets service resources (a.k.a service project) associated +// with this host +// project. // // - project: Project ID for this request. -// - region: The name of the region for this request. -func (r *NodeTemplatesService) Insert(project string, region string, nodetemplate *NodeTemplate) *NodeTemplatesInsertCall { - c := &NodeTemplatesInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)} +func (r *ProjectsService) GetXpnResources(project string) *ProjectsGetXpnResourcesCall { + c := &ProjectsGetXpnResourcesCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project - c.region = region - c.nodetemplate = nodetemplate 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 *NodeTemplatesInsertCall) RequestId(requestId string) *NodeTemplatesInsertCall { - c.urlParams_.Set("requestId", requestId) +// Filter sets the optional parameter "filter": A filter expression that +// filters resources listed in the response. Most +// Compute resources support two types of filter expressions: +// expressions that support regular expressions and expressions that follow +// API improvement proposal AIP-160. +// These two types of filter expressions cannot be mixed in one request. +// +// If you want to use AIP-160, your expression must specify the field name, +// an +// operator, and the value that you want to use for filtering. The value +// must be a string, a number, or a boolean. The 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`. +// +// The `:*` comparison can be used to test whether a key has been defined. +// For example, to find all objects with `owner` label +// use: +// ``` +// labels.owner:* +// ``` +// +// 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 onresource 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) +// ``` +// +// If you want to use a regular expression, use the `eq` (equal) or `ne` +// (not equal) operator against a single un-parenthesized expression with +// or +// without quotes or against multiple parenthesized expressions. +// Examples: +// +// `fieldname eq unquoted literal` +// `fieldname eq 'single quoted literal'` +// `fieldname eq "double quoted literal" +// `(fieldname1 eq literal) (fieldname2 ne "literal")` +// +// The literal value is interpreted as a regular expression using GoogleRE2 +// library syntax. +// The literal value must match the entire field. +// +// For example, to filter for instances that do not end with name +// "instance", +// you would use `name ne .*instance`. +// +// You cannot combine constraints on multiple fields using regular +// expressions. +func (c *ProjectsGetXpnResourcesCall) Filter(filter string) *ProjectsGetXpnResourcesCall { + 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 *ProjectsGetXpnResourcesCall) MaxResults(maxResults int64) *ProjectsGetXpnResourcesCall { + 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 *ProjectsGetXpnResourcesCall) OrderBy(orderBy string) *ProjectsGetXpnResourcesCall { + 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 *ProjectsGetXpnResourcesCall) PageToken(pageToken string) *ProjectsGetXpnResourcesCall { + c.urlParams_.Set("pageToken", pageToken) + return c +} + +// ReturnPartialSuccess sets the optional parameter "returnPartialSuccess": +// Opt-in for partial success behavior which provides partial results in +// case +// of failure. The default value is false. +// +// For example, when partial success behavior is enabled, aggregatedList for +// a +// single zone scope either returns all resources in the zone or no +// resources, +// with an error code. +func (c *ProjectsGetXpnResourcesCall) ReturnPartialSuccess(returnPartialSuccess bool) *ProjectsGetXpnResourcesCall { + c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess)) return c } // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *NodeTemplatesInsertCall) Fields(s ...googleapi.Field) *NodeTemplatesInsertCall { +func (c *ProjectsGetXpnResourcesCall) Fields(s ...googleapi.Field) *ProjectsGetXpnResourcesCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } +// IfNoneMatch sets an 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. +func (c *ProjectsGetXpnResourcesCall) IfNoneMatch(entityTag string) *ProjectsGetXpnResourcesCall { + c.ifNoneMatch_ = entityTag + return c +} + // Context sets the context to be used in this call's Do method. -func (c *NodeTemplatesInsertCall) Context(ctx context.Context) *NodeTemplatesInsertCall { +func (c *ProjectsGetXpnResourcesCall) Context(ctx context.Context) *ProjectsGetXpnResourcesCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *NodeTemplatesInsertCall) Header() http.Header { +func (c *ProjectsGetXpnResourcesCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *NodeTemplatesInsertCall) doRequest(alt string) (*http.Response, error) { - reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) - var body io.Reader = nil - body, err := googleapi.WithoutDataWrapper.JSONReader(c.nodetemplate) - if err != nil { - return nil, err +func (c *ProjectsGetXpnResourcesCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) + if c.ifNoneMatch_ != "" { + reqHeaders.Set("If-None-Match", c.ifNoneMatch_) } c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/nodeTemplates") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/getXpnResources") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("POST", urls, body) + req, err := http.NewRequest("GET", urls, nil) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ "project": c.project, - "region": c.region, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.projects.getXpnResources", "request", internallog.HTTPRequest(req, nil)) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.nodeTemplates.insert" call. +// Do executes the "compute.projects.getXpnResources" call. // 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 *NodeTemplatesInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) { +// *ProjectsGetXpnResources.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 *ProjectsGetXpnResourcesCall) Do(opts ...googleapi.CallOption) (*ProjectsGetXpnResources, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -51670,114 +75753,186 @@ func (c *NodeTemplatesInsertCall) Do(opts ...googleapi.CallOption) (*Operation, if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } - ret := &Operation{ + ret := &ProjectsGetXpnResources{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.projects.getXpnResources", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type NodeTemplatesListCall struct { - s *Service - project string - region string - urlParams_ gensupport.URLParams - ifNoneMatch_ string - ctx_ context.Context - header_ http.Header +// 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 *ProjectsGetXpnResourcesCall) Pages(ctx context.Context, f func(*ProjectsGetXpnResources) error) error { + c.ctx_ = ctx + defer c.PageToken(c.urlParams_.Get("pageToken")) + 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) + } } -// List: Retrieves a list of node templates available to the specified project. +type ProjectsListXpnHostsCall struct { + s *Service + project string + projectslistxpnhostsrequest *ProjectsListXpnHostsRequest + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header +} + +// ListXpnHosts: Lists all shared VPC host projects visible to the user in an +// organization. // // - project: Project ID for this request. -// - region: The name of the region for this request. -func (r *NodeTemplatesService) List(project string, region string) *NodeTemplatesListCall { - c := &NodeTemplatesListCall{s: r.s, urlParams_: make(gensupport.URLParams)} +func (r *ProjectsService) ListXpnHosts(project string, projectslistxpnhostsrequest *ProjectsListXpnHostsRequest) *ProjectsListXpnHostsCall { + c := &ProjectsListXpnHostsCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project - c.region = region + c.projectslistxpnhostsrequest = projectslistxpnhostsrequest return c } // Filter sets the optional parameter "filter": A filter expression that -// filters resources listed in the response. Most Compute resources support two -// types of filter expressions: expressions that support regular expressions -// and expressions that follow API improvement proposal AIP-160. These two -// types of filter expressions cannot be mixed in one request. If you want to -// use AIP-160, your expression must specify the field name, an operator, and -// the value that you want to use for filtering. The value must be a string, a -// number, or a boolean. The 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`. The `:*` comparison can be used to test whether a key has -// been defined. For example, to find all objects with `owner` label use: ``` -// labels.owner:* ``` 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) ``` If you want to use a regular -// expression, use the `eq` (equal) or `ne` (not equal) operator against a -// single un-parenthesized expression with or without quotes or against -// multiple parenthesized expressions. Examples: `fieldname eq unquoted -// literal` `fieldname eq 'single quoted literal'` `fieldname eq "double quoted -// literal" `(fieldname1 eq literal) (fieldname2 ne "literal")` The literal -// value is interpreted as a regular expression using Google RE2 library -// syntax. The literal value must match the entire field. For example, to -// filter for instances that do not end with name "instance", you would use -// `name ne .*instance`. You cannot combine constraints on multiple fields -// using regular expressions. -func (c *NodeTemplatesListCall) Filter(filter string) *NodeTemplatesListCall { +// filters resources listed in the response. Most +// Compute resources support two types of filter expressions: +// expressions that support regular expressions and expressions that follow +// API improvement proposal AIP-160. +// These two types of filter expressions cannot be mixed in one request. +// +// If you want to use AIP-160, your expression must specify the field name, +// an +// operator, and the value that you want to use for filtering. The value +// must be a string, a number, or a boolean. The 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`. +// +// The `:*` comparison can be used to test whether a key has been defined. +// For example, to find all objects with `owner` label +// use: +// ``` +// labels.owner:* +// ``` +// +// 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 onresource 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) +// ``` +// +// If you want to use a regular expression, use the `eq` (equal) or `ne` +// (not equal) operator against a single un-parenthesized expression with +// or +// without quotes or against multiple parenthesized expressions. +// Examples: +// +// `fieldname eq unquoted literal` +// `fieldname eq 'single quoted literal'` +// `fieldname eq "double quoted literal" +// `(fieldname1 eq literal) (fieldname2 ne "literal")` +// +// The literal value is interpreted as a regular expression using GoogleRE2 +// library syntax. +// The literal value must match the entire field. +// +// For example, to filter for instances that do not end with name +// "instance", +// you would use `name ne .*instance`. +// +// You cannot combine constraints on multiple fields using regular +// expressions. +func (c *ProjectsListXpnHostsCall) Filter(filter string) *ProjectsListXpnHostsCall { 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 *NodeTemplatesListCall) MaxResults(maxResults int64) *NodeTemplatesListCall { +// 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 *ProjectsListXpnHostsCall) MaxResults(maxResults int64) *ProjectsListXpnHostsCall { 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 *NodeTemplatesListCall) OrderBy(orderBy string) *NodeTemplatesListCall { +// 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 *ProjectsListXpnHostsCall) OrderBy(orderBy string) *ProjectsListXpnHostsCall { 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 *NodeTemplatesListCall) PageToken(pageToken string) *NodeTemplatesListCall { +// use. Set `pageToken` to the +// `nextPageToken` returned by a previous list request to get +// the next page of results. +func (c *ProjectsListXpnHostsCall) PageToken(pageToken string) *ProjectsListXpnHostsCall { c.urlParams_.Set("pageToken", pageToken) return c } // ReturnPartialSuccess sets the optional parameter "returnPartialSuccess": -// Opt-in for partial success behavior which provides partial results in case -// of failure. The default value is false. For example, when partial success -// behavior is enabled, aggregatedList for a single zone scope either returns -// all resources in the zone or no resources, with an error code. -func (c *NodeTemplatesListCall) ReturnPartialSuccess(returnPartialSuccess bool) *NodeTemplatesListCall { +// Opt-in for partial success behavior which provides partial results in +// case +// of failure. The default value is false. +// +// For example, when partial success behavior is enabled, aggregatedList for +// a +// single zone scope either returns all resources in the zone or no +// resources, +// with an error code. +func (c *ProjectsListXpnHostsCall) ReturnPartialSuccess(returnPartialSuccess bool) *ProjectsListXpnHostsCall { c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess)) return c } @@ -51785,63 +75940,54 @@ func (c *NodeTemplatesListCall) ReturnPartialSuccess(returnPartialSuccess bool) // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *NodeTemplatesListCall) Fields(s ...googleapi.Field) *NodeTemplatesListCall { +func (c *ProjectsListXpnHostsCall) Fields(s ...googleapi.Field) *ProjectsListXpnHostsCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } -// IfNoneMatch sets an 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. -func (c *NodeTemplatesListCall) IfNoneMatch(entityTag string) *NodeTemplatesListCall { - c.ifNoneMatch_ = entityTag - return c -} - // Context sets the context to be used in this call's Do method. -func (c *NodeTemplatesListCall) Context(ctx context.Context) *NodeTemplatesListCall { +func (c *ProjectsListXpnHostsCall) Context(ctx context.Context) *ProjectsListXpnHostsCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *NodeTemplatesListCall) Header() http.Header { +func (c *ProjectsListXpnHostsCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *NodeTemplatesListCall) doRequest(alt string) (*http.Response, error) { - reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) - if c.ifNoneMatch_ != "" { - reqHeaders.Set("If-None-Match", c.ifNoneMatch_) +func (c *ProjectsListXpnHostsCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) + body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.projectslistxpnhostsrequest) + if err != nil { + return nil, err } - var body io.Reader = nil c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/nodeTemplates") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/listXpnHosts") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("GET", urls, body) + req, err := http.NewRequest("POST", urls, body) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ "project": c.project, - "region": c.region, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.projects.listXpnHosts", "request", internallog.HTTPRequest(req, body.Bytes())) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.nodeTemplates.list" call. +// Do executes the "compute.projects.listXpnHosts" call. // Any non-2xx status code is an error. Response headers are in either -// *NodeTemplateList.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 *NodeTemplatesListCall) Do(opts ...googleapi.CallOption) (*NodeTemplateList, error) { +// *XpnHostList.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 *ProjectsListXpnHostsCall) Do(opts ...googleapi.CallOption) (*XpnHostList, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -51860,23 +76006,25 @@ func (c *NodeTemplatesListCall) Do(opts ...googleapi.CallOption) (*NodeTemplateL if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } - ret := &NodeTemplateList{ + ret := &XpnHostList{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.projects.listXpnHosts", "response", internallog.HTTPResponse(res, b)) return ret, nil } // 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 *NodeTemplatesListCall) Pages(ctx context.Context, f func(*NodeTemplateList) error) error { +func (c *ProjectsListXpnHostsCall) Pages(ctx context.Context, f func(*XpnHostList) error) error { c.ctx_ = ctx defer c.PageToken(c.urlParams_.Get("pageToken")) for { @@ -51894,65 +76042,97 @@ func (c *NodeTemplatesListCall) Pages(ctx context.Context, f func(*NodeTemplateL } } -type NodeTemplatesSetIamPolicyCall struct { - s *Service - project string - region string - resource string - regionsetpolicyrequest *RegionSetPolicyRequest - urlParams_ gensupport.URLParams - ctx_ context.Context - header_ http.Header +type ProjectsMoveDiskCall struct { + s *Service + project string + diskmoverequest *DiskMoveRequest + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header } -// SetIamPolicy: Sets the access control policy on the specified resource. -// Replaces any existing policy. +// MoveDisk: Moves a persistent disk from one zone to another. +// *Note*: The moveDisk API will be deprecated on September 29, 2026. +// +// Starting September 29, 2025, you can't use the moveDisk API on new +// projects. To move a disk to a different region or zone, follow the steps +// in +// Change the location of a +// disk +// (https://cloud.google.com/compute/docs/disks/migrate-to-hyperdisk#migrate-to-hd). +// +// Projects that already use the moveDisk API can continue usage +// until +// September 29, 2026. +// +// Starting November 1, 2025, API responses will include a warning message +// in +// the response body about the upcoming deprecation. You can skip the +// message +// to continue using the service without interruption. // // - project: Project ID for this request. -// - region: The name of the region for this request. -// - resource: Name or id of the resource for this request. -func (r *NodeTemplatesService) SetIamPolicy(project string, region string, resource string, regionsetpolicyrequest *RegionSetPolicyRequest) *NodeTemplatesSetIamPolicyCall { - c := &NodeTemplatesSetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)} +func (r *ProjectsService) MoveDisk(project string, diskmoverequest *DiskMoveRequest) *ProjectsMoveDiskCall { + c := &ProjectsMoveDiskCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project - c.region = region - c.resource = resource - c.regionsetpolicyrequest = regionsetpolicyrequest + c.diskmoverequest = diskmoverequest + 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 *ProjectsMoveDiskCall) RequestId(requestId string) *ProjectsMoveDiskCall { + 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 // details. -func (c *NodeTemplatesSetIamPolicyCall) Fields(s ...googleapi.Field) *NodeTemplatesSetIamPolicyCall { +func (c *ProjectsMoveDiskCall) Fields(s ...googleapi.Field) *ProjectsMoveDiskCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } // Context sets the context to be used in this call's Do method. -func (c *NodeTemplatesSetIamPolicyCall) Context(ctx context.Context) *NodeTemplatesSetIamPolicyCall { +func (c *ProjectsMoveDiskCall) Context(ctx context.Context) *ProjectsMoveDiskCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *NodeTemplatesSetIamPolicyCall) Header() http.Header { +func (c *ProjectsMoveDiskCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *NodeTemplatesSetIamPolicyCall) doRequest(alt string) (*http.Response, error) { +func (c *ProjectsMoveDiskCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) - var body io.Reader = nil - body, err := googleapi.WithoutDataWrapper.JSONReader(c.regionsetpolicyrequest) + body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.diskmoverequest) if err != nil { return nil, err } c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/nodeTemplates/{resource}/setIamPolicy") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/moveDisk") urls += "?" + c.urlParams_.Encode() req, err := http.NewRequest("POST", urls, body) if err != nil { @@ -51960,19 +76140,18 @@ func (c *NodeTemplatesSetIamPolicyCall) doRequest(alt string) (*http.Response, e } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "region": c.region, - "resource": c.resource, + "project": c.project, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.projects.moveDisk", "request", internallog.HTTPRequest(req, body.Bytes())) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.nodeTemplates.setIamPolicy" call. +// Do executes the "compute.projects.moveDisk" call. // Any non-2xx status code is an error. Response headers are in either -// *Policy.ServerResponse.Header or (if a response was returned at all) in +// *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 *NodeTemplatesSetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, error) { +func (c *ProjectsMoveDiskCall) Do(opts ...googleapi.CallOption) (*Operation, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -51991,78 +76170,234 @@ func (c *NodeTemplatesSetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Polic if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } - ret := &Policy{ + ret := &Operation{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.projects.moveDisk", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type NodeTemplatesTestIamPermissionsCall struct { - s *Service - project string - region string - resource string - testpermissionsrequest *TestPermissionsRequest - urlParams_ gensupport.URLParams - ctx_ context.Context - header_ http.Header +type ProjectsMoveInstanceCall struct { + s *Service + project string + instancemoverequest *InstanceMoveRequest + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header +} + +// MoveInstance: Moves an instance and its attached persistent disks from one +// zone to +// another. +// *Note*: Moving VMs or disks by using this method might +// +// cause unexpected behavior. For more information, see the known +// issue +// +// (/compute/docs/troubleshooting/known-issues#moving_vms_or_disks_using_the_mov +// einstance_api_or_the_causes_unexpected_behavior). +// [Deprecated] This method is deprecated. See moving instance across +// zones (/compute/docs/instances/moving-instance-across-zones) instead. +// +// - project: Project ID for this request. +func (r *ProjectsService) MoveInstance(project string, instancemoverequest *InstanceMoveRequest) *ProjectsMoveInstanceCall { + c := &ProjectsMoveInstanceCall{s: r.s, urlParams_: make(gensupport.URLParams)} + c.project = project + c.instancemoverequest = instancemoverequest + 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 *ProjectsMoveInstanceCall) RequestId(requestId string) *ProjectsMoveInstanceCall { + 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 +// details. +func (c *ProjectsMoveInstanceCall) Fields(s ...googleapi.Field) *ProjectsMoveInstanceCall { + c.urlParams_.Set("fields", googleapi.CombineFields(s)) + return c +} + +// Context sets the context to be used in this call's Do method. +func (c *ProjectsMoveInstanceCall) Context(ctx context.Context) *ProjectsMoveInstanceCall { + c.ctx_ = ctx + return c +} + +// Header returns a http.Header that can be modified by the caller to add +// headers to the request. +func (c *ProjectsMoveInstanceCall) Header() http.Header { + if c.header_ == nil { + c.header_ = make(http.Header) + } + return c.header_ +} + +func (c *ProjectsMoveInstanceCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) + body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.instancemoverequest) + if err != nil { + return nil, err + } + c.urlParams_.Set("alt", alt) + c.urlParams_.Set("prettyPrint", "false") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/moveInstance") + urls += "?" + c.urlParams_.Encode() + req, err := http.NewRequest("POST", urls, body) + if err != nil { + return nil, err + } + req.Header = reqHeaders + googleapi.Expand(req.URL, map[string]string{ + "project": c.project, + }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.projects.moveInstance", "request", internallog.HTTPRequest(req, body.Bytes())) + return gensupport.SendRequest(c.ctx_, c.s.client, req) +} + +// Do executes the "compute.projects.moveInstance" call. +// 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 *ProjectsMoveInstanceCall) 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, gensupport.WrapError(&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, gensupport.WrapError(err) + } + ret := &Operation{ + ServerResponse: googleapi.ServerResponse{ + Header: res.Header, + HTTPStatusCode: res.StatusCode, + }, + } + target := &ret + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { + return nil, err + } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.projects.moveInstance", "response", internallog.HTTPResponse(res, b)) + return ret, nil } -// TestIamPermissions: Returns permissions that a caller has on the specified -// resource. +type ProjectsSetCloudArmorTierCall struct { + s *Service + project string + projectssetcloudarmortierrequest *ProjectsSetCloudArmorTierRequest + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header +} + +// SetCloudArmorTier: Sets the Cloud Armor tier of the project. To set +// ENTERPRISE or above the +// billing account of the project must be subscribed to Cloud Armor +// Enterprise. See Subscribing +// to Cloud Armor Enterprise for more information. // // - project: Project ID for this request. -// - region: The name of the region for this request. -// - resource: Name or id of the resource for this request. -func (r *NodeTemplatesService) TestIamPermissions(project string, region string, resource string, testpermissionsrequest *TestPermissionsRequest) *NodeTemplatesTestIamPermissionsCall { - c := &NodeTemplatesTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)} +func (r *ProjectsService) SetCloudArmorTier(project string, projectssetcloudarmortierrequest *ProjectsSetCloudArmorTierRequest) *ProjectsSetCloudArmorTierCall { + c := &ProjectsSetCloudArmorTierCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project - c.region = region - c.resource = resource - c.testpermissionsrequest = testpermissionsrequest + c.projectssetcloudarmortierrequest = projectssetcloudarmortierrequest + 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 *ProjectsSetCloudArmorTierCall) RequestId(requestId string) *ProjectsSetCloudArmorTierCall { + 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 // details. -func (c *NodeTemplatesTestIamPermissionsCall) Fields(s ...googleapi.Field) *NodeTemplatesTestIamPermissionsCall { +func (c *ProjectsSetCloudArmorTierCall) Fields(s ...googleapi.Field) *ProjectsSetCloudArmorTierCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } // Context sets the context to be used in this call's Do method. -func (c *NodeTemplatesTestIamPermissionsCall) Context(ctx context.Context) *NodeTemplatesTestIamPermissionsCall { +func (c *ProjectsSetCloudArmorTierCall) Context(ctx context.Context) *ProjectsSetCloudArmorTierCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *NodeTemplatesTestIamPermissionsCall) Header() http.Header { +func (c *ProjectsSetCloudArmorTierCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *NodeTemplatesTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) { +func (c *ProjectsSetCloudArmorTierCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) - var body io.Reader = nil - body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest) + body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.projectssetcloudarmortierrequest) if err != nil { return nil, err } c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/nodeTemplates/{resource}/testIamPermissions") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/setCloudArmorTier") urls += "?" + c.urlParams_.Encode() req, err := http.NewRequest("POST", urls, body) if err != nil { @@ -52070,20 +76405,18 @@ func (c *NodeTemplatesTestIamPermissionsCall) doRequest(alt string) (*http.Respo } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "region": c.region, - "resource": c.resource, + "project": c.project, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.projects.setCloudArmorTier", "request", internallog.HTTPRequest(req, body.Bytes())) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.nodeTemplates.testIamPermissions" call. +// Do executes the "compute.projects.setCloudArmorTier" call. // Any non-2xx status code is an error. Response headers are in either -// *TestPermissionsResponse.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 *NodeTemplatesTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) { +// *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 *ProjectsSetCloudArmorTierCall) Do(opts ...googleapi.CallOption) (*Operation, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -52102,180 +76435,98 @@ func (c *NodeTemplatesTestIamPermissionsCall) Do(opts ...googleapi.CallOption) ( if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } - ret := &TestPermissionsResponse{ + ret := &Operation{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.projects.setCloudArmorTier", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type NodeTypesAggregatedListCall struct { - s *Service - project string - urlParams_ gensupport.URLParams - ifNoneMatch_ string - ctx_ context.Context - header_ http.Header +type ProjectsSetCommonInstanceMetadataCall struct { + s *Service + project string + metadata *Metadata + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header } -// AggregatedList: Retrieves an aggregated list of node types. To prevent -// failure, Google recommends that you set the `returnPartialSuccess` parameter -// to `true`. +// SetCommonInstanceMetadata: Sets metadata common to all instances within the +// specified project using +// the data included in the request. // // - project: Project ID for this request. -func (r *NodeTypesService) AggregatedList(project string) *NodeTypesAggregatedListCall { - c := &NodeTypesAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)} +func (r *ProjectsService) SetCommonInstanceMetadata(project string, metadata *Metadata) *ProjectsSetCommonInstanceMetadataCall { + c := &ProjectsSetCommonInstanceMetadataCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project + c.metadata = metadata return c } -// Filter sets the optional parameter "filter": A filter expression that -// filters resources listed in the response. Most Compute resources support two -// types of filter expressions: expressions that support regular expressions -// and expressions that follow API improvement proposal AIP-160. These two -// types of filter expressions cannot be mixed in one request. If you want to -// use AIP-160, your expression must specify the field name, an operator, and -// the value that you want to use for filtering. The value must be a string, a -// number, or a boolean. The 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`. The `:*` comparison can be used to test whether a key has -// been defined. For example, to find all objects with `owner` label use: ``` -// labels.owner:* ``` 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) ``` If you want to use a regular -// expression, use the `eq` (equal) or `ne` (not equal) operator against a -// single un-parenthesized expression with or without quotes or against -// multiple parenthesized expressions. Examples: `fieldname eq unquoted -// literal` `fieldname eq 'single quoted literal'` `fieldname eq "double quoted -// literal" `(fieldname1 eq literal) (fieldname2 ne "literal")` The literal -// value is interpreted as a regular expression using Google RE2 library -// syntax. The literal value must match the entire field. For example, to -// filter for instances that do not end with name "instance", you would use -// `name ne .*instance`. You cannot combine constraints on multiple fields -// using regular expressions. -func (c *NodeTypesAggregatedListCall) Filter(filter string) *NodeTypesAggregatedListCall { - c.urlParams_.Set("filter", filter) - return c -} - -// IncludeAllScopes sets the optional parameter "includeAllScopes": Indicates -// whether every visible scope for each scope type (zone, region, global) -// should be included in the response. For new resource types added after this -// field, the flag has no effect as new resource types will always include -// every visible scope for each scope type in response. For resource types -// which predate this field, if this flag is omitted or false, only scopes of -// the scope types where the resource type is expected to be found will be -// included. -func (c *NodeTypesAggregatedListCall) IncludeAllScopes(includeAllScopes bool) *NodeTypesAggregatedListCall { - c.urlParams_.Set("includeAllScopes", fmt.Sprint(includeAllScopes)) - 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 *NodeTypesAggregatedListCall) MaxResults(maxResults int64) *NodeTypesAggregatedListCall { - 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 *NodeTypesAggregatedListCall) OrderBy(orderBy string) *NodeTypesAggregatedListCall { - 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 *NodeTypesAggregatedListCall) PageToken(pageToken string) *NodeTypesAggregatedListCall { - c.urlParams_.Set("pageToken", pageToken) - return c -} - -// ReturnPartialSuccess sets the optional parameter "returnPartialSuccess": -// Opt-in for partial success behavior which provides partial results in case -// of failure. The default value is false. For example, when partial success -// behavior is enabled, aggregatedList for a single zone scope either returns -// all resources in the zone or no resources, with an error code. -func (c *NodeTypesAggregatedListCall) ReturnPartialSuccess(returnPartialSuccess bool) *NodeTypesAggregatedListCall { - c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess)) - return c -} - -// ServiceProjectNumber sets the optional parameter "serviceProjectNumber": The -// Shared VPC service project id or service project number for which aggregated -// list request is invoked for subnetworks list-usable api. -func (c *NodeTypesAggregatedListCall) ServiceProjectNumber(serviceProjectNumber int64) *NodeTypesAggregatedListCall { - c.urlParams_.Set("serviceProjectNumber", fmt.Sprint(serviceProjectNumber)) +// 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 *ProjectsSetCommonInstanceMetadataCall) RequestId(requestId string) *ProjectsSetCommonInstanceMetadataCall { + 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 // details. -func (c *NodeTypesAggregatedListCall) Fields(s ...googleapi.Field) *NodeTypesAggregatedListCall { +func (c *ProjectsSetCommonInstanceMetadataCall) Fields(s ...googleapi.Field) *ProjectsSetCommonInstanceMetadataCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } -// IfNoneMatch sets an 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. -func (c *NodeTypesAggregatedListCall) IfNoneMatch(entityTag string) *NodeTypesAggregatedListCall { - c.ifNoneMatch_ = entityTag - return c -} - // Context sets the context to be used in this call's Do method. -func (c *NodeTypesAggregatedListCall) Context(ctx context.Context) *NodeTypesAggregatedListCall { +func (c *ProjectsSetCommonInstanceMetadataCall) Context(ctx context.Context) *ProjectsSetCommonInstanceMetadataCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *NodeTypesAggregatedListCall) Header() http.Header { +func (c *ProjectsSetCommonInstanceMetadataCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *NodeTypesAggregatedListCall) doRequest(alt string) (*http.Response, error) { - reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) - if c.ifNoneMatch_ != "" { - reqHeaders.Set("If-None-Match", c.ifNoneMatch_) +func (c *ProjectsSetCommonInstanceMetadataCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) + body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.metadata) + if err != nil { + return nil, err } - var body io.Reader = nil c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/aggregated/nodeTypes") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/setCommonInstanceMetadata") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("GET", urls, body) + req, err := http.NewRequest("POST", urls, body) if err != nil { return nil, err } @@ -52283,16 +76534,16 @@ func (c *NodeTypesAggregatedListCall) doRequest(alt string) (*http.Response, err googleapi.Expand(req.URL, map[string]string{ "project": c.project, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.projects.setCommonInstanceMetadata", "request", internallog.HTTPRequest(req, body.Bytes())) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.nodeTypes.aggregatedList" call. +// Do executes the "compute.projects.setCommonInstanceMetadata" call. // Any non-2xx status code is an error. Response headers are in either -// *NodeTypeAggregatedList.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 *NodeTypesAggregatedListCall) Do(opts ...googleapi.CallOption) (*NodeTypeAggregatedList, error) { +// *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 *ProjectsSetCommonInstanceMetadataCall) Do(opts ...googleapi.CallOption) (*Operation, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -52311,124 +76562,117 @@ func (c *NodeTypesAggregatedListCall) Do(opts ...googleapi.CallOption) (*NodeTyp if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } - ret := &NodeTypeAggregatedList{ + ret := &Operation{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.projects.setCommonInstanceMetadata", "response", internallog.HTTPResponse(res, b)) return ret, nil } -// 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 *NodeTypesAggregatedListCall) Pages(ctx context.Context, f func(*NodeTypeAggregatedList) error) error { - c.ctx_ = ctx - defer c.PageToken(c.urlParams_.Get("pageToken")) - 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) - } -} - -type NodeTypesGetCall struct { - s *Service - project string - zone string - nodeType string - urlParams_ gensupport.URLParams - ifNoneMatch_ string - ctx_ context.Context - header_ http.Header +type ProjectsSetDefaultNetworkTierCall struct { + s *Service + project string + projectssetdefaultnetworktierrequest *ProjectsSetDefaultNetworkTierRequest + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header } -// Get: Returns the specified node type. +// SetDefaultNetworkTier: Sets the default network tier of the project. The +// default network tier is +// used when an address/forwardingRule/instance is created without +// specifying +// the network tier field. // -// - nodeType: Name of the node type to return. // - project: Project ID for this request. -// - zone: The name of the zone for this request. -func (r *NodeTypesService) Get(project string, zone string, nodeType string) *NodeTypesGetCall { - c := &NodeTypesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)} +func (r *ProjectsService) SetDefaultNetworkTier(project string, projectssetdefaultnetworktierrequest *ProjectsSetDefaultNetworkTierRequest) *ProjectsSetDefaultNetworkTierCall { + c := &ProjectsSetDefaultNetworkTierCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project - c.zone = zone - c.nodeType = nodeType + c.projectssetdefaultnetworktierrequest = projectssetdefaultnetworktierrequest + 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 *ProjectsSetDefaultNetworkTierCall) RequestId(requestId string) *ProjectsSetDefaultNetworkTierCall { + 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 // details. -func (c *NodeTypesGetCall) Fields(s ...googleapi.Field) *NodeTypesGetCall { +func (c *ProjectsSetDefaultNetworkTierCall) Fields(s ...googleapi.Field) *ProjectsSetDefaultNetworkTierCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } -// IfNoneMatch sets an 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. -func (c *NodeTypesGetCall) IfNoneMatch(entityTag string) *NodeTypesGetCall { - c.ifNoneMatch_ = entityTag - return c -} - // Context sets the context to be used in this call's Do method. -func (c *NodeTypesGetCall) Context(ctx context.Context) *NodeTypesGetCall { +func (c *ProjectsSetDefaultNetworkTierCall) Context(ctx context.Context) *ProjectsSetDefaultNetworkTierCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *NodeTypesGetCall) Header() http.Header { +func (c *ProjectsSetDefaultNetworkTierCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *NodeTypesGetCall) doRequest(alt string) (*http.Response, error) { - reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) - if c.ifNoneMatch_ != "" { - reqHeaders.Set("If-None-Match", c.ifNoneMatch_) +func (c *ProjectsSetDefaultNetworkTierCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) + body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.projectssetdefaultnetworktierrequest) + if err != nil { + return nil, err } - var body io.Reader = nil c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/nodeTypes/{nodeType}") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/setDefaultNetworkTier") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("GET", urls, body) + req, err := http.NewRequest("POST", urls, body) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "zone": c.zone, - "nodeType": c.nodeType, + "project": c.project, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.projects.setDefaultNetworkTier", "request", internallog.HTTPRequest(req, body.Bytes())) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.nodeTypes.get" call. +// Do executes the "compute.projects.setDefaultNetworkTier" call. // Any non-2xx status code is an error. Response headers are in either -// *NodeType.ServerResponse.Header or (if a response was returned at all) in +// *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 *NodeTypesGetCall) Do(opts ...googleapi.CallOption) (*NodeType, error) { +func (c *ProjectsSetDefaultNetworkTierCall) Do(opts ...googleapi.CallOption) (*Operation, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -52447,177 +76691,117 @@ func (c *NodeTypesGetCall) Do(opts ...googleapi.CallOption) (*NodeType, error) { if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } - ret := &NodeType{ + ret := &Operation{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.projects.setDefaultNetworkTier", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type NodeTypesListCall struct { - s *Service - project string - zone string - urlParams_ gensupport.URLParams - ifNoneMatch_ string - ctx_ context.Context - header_ http.Header +type ProjectsSetUsageExportBucketCall struct { + s *Service + project string + usageexportlocation *UsageExportLocation + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header } -// List: Retrieves a list of node types available to the specified project. +// SetUsageExportBucket: Enables the usage export feature and sets theusage +// export bucket +// where reports are stored. If you provide an empty request body using +// this +// method, the usage export feature will be disabled. // // - project: Project ID for this request. -// - zone: The name of the zone for this request. -func (r *NodeTypesService) List(project string, zone string) *NodeTypesListCall { - c := &NodeTypesListCall{s: r.s, urlParams_: make(gensupport.URLParams)} +func (r *ProjectsService) SetUsageExportBucket(project string, usageexportlocation *UsageExportLocation) *ProjectsSetUsageExportBucketCall { + c := &ProjectsSetUsageExportBucketCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project - c.zone = zone - return c -} - -// Filter sets the optional parameter "filter": A filter expression that -// filters resources listed in the response. Most Compute resources support two -// types of filter expressions: expressions that support regular expressions -// and expressions that follow API improvement proposal AIP-160. These two -// types of filter expressions cannot be mixed in one request. If you want to -// use AIP-160, your expression must specify the field name, an operator, and -// the value that you want to use for filtering. The value must be a string, a -// number, or a boolean. The 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`. The `:*` comparison can be used to test whether a key has -// been defined. For example, to find all objects with `owner` label use: ``` -// labels.owner:* ``` 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) ``` If you want to use a regular -// expression, use the `eq` (equal) or `ne` (not equal) operator against a -// single un-parenthesized expression with or without quotes or against -// multiple parenthesized expressions. Examples: `fieldname eq unquoted -// literal` `fieldname eq 'single quoted literal'` `fieldname eq "double quoted -// literal" `(fieldname1 eq literal) (fieldname2 ne "literal")` The literal -// value is interpreted as a regular expression using Google RE2 library -// syntax. The literal value must match the entire field. For example, to -// filter for instances that do not end with name "instance", you would use -// `name ne .*instance`. You cannot combine constraints on multiple fields -// using regular expressions. -func (c *NodeTypesListCall) Filter(filter string) *NodeTypesListCall { - 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 *NodeTypesListCall) MaxResults(maxResults int64) *NodeTypesListCall { - 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 *NodeTypesListCall) OrderBy(orderBy string) *NodeTypesListCall { - 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 *NodeTypesListCall) PageToken(pageToken string) *NodeTypesListCall { - c.urlParams_.Set("pageToken", pageToken) + c.usageexportlocation = usageexportlocation return c } -// ReturnPartialSuccess sets the optional parameter "returnPartialSuccess": -// Opt-in for partial success behavior which provides partial results in case -// of failure. The default value is false. For example, when partial success -// behavior is enabled, aggregatedList for a single zone scope either returns -// all resources in the zone or no resources, with an error code. -func (c *NodeTypesListCall) ReturnPartialSuccess(returnPartialSuccess bool) *NodeTypesListCall { - c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess)) +// 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 *ProjectsSetUsageExportBucketCall) RequestId(requestId string) *ProjectsSetUsageExportBucketCall { + 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 // details. -func (c *NodeTypesListCall) Fields(s ...googleapi.Field) *NodeTypesListCall { +func (c *ProjectsSetUsageExportBucketCall) Fields(s ...googleapi.Field) *ProjectsSetUsageExportBucketCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } -// IfNoneMatch sets an 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. -func (c *NodeTypesListCall) IfNoneMatch(entityTag string) *NodeTypesListCall { - c.ifNoneMatch_ = entityTag - return c -} - // Context sets the context to be used in this call's Do method. -func (c *NodeTypesListCall) Context(ctx context.Context) *NodeTypesListCall { +func (c *ProjectsSetUsageExportBucketCall) Context(ctx context.Context) *ProjectsSetUsageExportBucketCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *NodeTypesListCall) Header() http.Header { +func (c *ProjectsSetUsageExportBucketCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *NodeTypesListCall) doRequest(alt string) (*http.Response, error) { - reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) - if c.ifNoneMatch_ != "" { - reqHeaders.Set("If-None-Match", c.ifNoneMatch_) +func (c *ProjectsSetUsageExportBucketCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) + body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.usageexportlocation) + if err != nil { + return nil, err } - var body io.Reader = nil c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/nodeTypes") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/setUsageExportBucket") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("GET", urls, body) + req, err := http.NewRequest("POST", urls, body) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ "project": c.project, - "zone": c.zone, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.projects.setUsageExportBucket", "request", internallog.HTTPRequest(req, body.Bytes())) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.nodeTypes.list" call. +// Do executes the "compute.projects.setUsageExportBucket" call. // Any non-2xx status code is an error. Response headers are in either -// *NodeTypeList.ServerResponse.Header or (if a response was returned at all) -// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check +// *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 *NodeTypesListCall) Do(opts ...googleapi.CallOption) (*NodeTypeList, error) { +func (c *ProjectsSetUsageExportBucketCall) Do(opts ...googleapi.CallOption) (*Operation, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -52636,218 +76820,112 @@ func (c *NodeTypesListCall) Do(opts ...googleapi.CallOption) (*NodeTypeList, err if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } - ret := &NodeTypeList{ + ret := &Operation{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.projects.setUsageExportBucket", "response", internallog.HTTPResponse(res, b)) return ret, nil } -// 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 *NodeTypesListCall) Pages(ctx context.Context, f func(*NodeTypeList) error) error { - c.ctx_ = ctx - defer c.PageToken(c.urlParams_.Get("pageToken")) - 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) - } -} - -type PacketMirroringsAggregatedListCall struct { - s *Service - project string - urlParams_ gensupport.URLParams - ifNoneMatch_ string - ctx_ context.Context - header_ http.Header +type PublicAdvertisedPrefixesAnnounceCall struct { + s *Service + project string + publicAdvertisedPrefix string + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header } -// AggregatedList: Retrieves an aggregated list of packetMirrorings. To prevent -// failure, Google recommends that you set the `returnPartialSuccess` parameter -// to `true`. +// Announce: Announces the specified PublicAdvertisedPrefix // -// - project: Project ID for this request. -func (r *PacketMirroringsService) AggregatedList(project string) *PacketMirroringsAggregatedListCall { - c := &PacketMirroringsAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)} +// - project: Project ID for this request. +// - publicAdvertisedPrefix: The name of the public advertised prefix. It +// should comply with RFC1035. +func (r *PublicAdvertisedPrefixesService) Announce(project string, publicAdvertisedPrefix string) *PublicAdvertisedPrefixesAnnounceCall { + c := &PublicAdvertisedPrefixesAnnounceCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project + c.publicAdvertisedPrefix = publicAdvertisedPrefix return c } -// Filter sets the optional parameter "filter": A filter expression that -// filters resources listed in the response. Most Compute resources support two -// types of filter expressions: expressions that support regular expressions -// and expressions that follow API improvement proposal AIP-160. These two -// types of filter expressions cannot be mixed in one request. If you want to -// use AIP-160, your expression must specify the field name, an operator, and -// the value that you want to use for filtering. The value must be a string, a -// number, or a boolean. The 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`. The `:*` comparison can be used to test whether a key has -// been defined. For example, to find all objects with `owner` label use: ``` -// labels.owner:* ``` 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) ``` If you want to use a regular -// expression, use the `eq` (equal) or `ne` (not equal) operator against a -// single un-parenthesized expression with or without quotes or against -// multiple parenthesized expressions. Examples: `fieldname eq unquoted -// literal` `fieldname eq 'single quoted literal'` `fieldname eq "double quoted -// literal" `(fieldname1 eq literal) (fieldname2 ne "literal")` The literal -// value is interpreted as a regular expression using Google RE2 library -// syntax. The literal value must match the entire field. For example, to -// filter for instances that do not end with name "instance", you would use -// `name ne .*instance`. You cannot combine constraints on multiple fields -// using regular expressions. -func (c *PacketMirroringsAggregatedListCall) Filter(filter string) *PacketMirroringsAggregatedListCall { - c.urlParams_.Set("filter", filter) - return c -} - -// IncludeAllScopes sets the optional parameter "includeAllScopes": Indicates -// whether every visible scope for each scope type (zone, region, global) -// should be included in the response. For new resource types added after this -// field, the flag has no effect as new resource types will always include -// every visible scope for each scope type in response. For resource types -// which predate this field, if this flag is omitted or false, only scopes of -// the scope types where the resource type is expected to be found will be -// included. -func (c *PacketMirroringsAggregatedListCall) IncludeAllScopes(includeAllScopes bool) *PacketMirroringsAggregatedListCall { - c.urlParams_.Set("includeAllScopes", fmt.Sprint(includeAllScopes)) - 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 *PacketMirroringsAggregatedListCall) MaxResults(maxResults int64) *PacketMirroringsAggregatedListCall { - 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 *PacketMirroringsAggregatedListCall) OrderBy(orderBy string) *PacketMirroringsAggregatedListCall { - 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 *PacketMirroringsAggregatedListCall) PageToken(pageToken string) *PacketMirroringsAggregatedListCall { - c.urlParams_.Set("pageToken", pageToken) - return c -} - -// ReturnPartialSuccess sets the optional parameter "returnPartialSuccess": -// Opt-in for partial success behavior which provides partial results in case -// of failure. The default value is false. For example, when partial success -// behavior is enabled, aggregatedList for a single zone scope either returns -// all resources in the zone or no resources, with an error code. -func (c *PacketMirroringsAggregatedListCall) ReturnPartialSuccess(returnPartialSuccess bool) *PacketMirroringsAggregatedListCall { - c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess)) - return c -} - -// ServiceProjectNumber sets the optional parameter "serviceProjectNumber": The -// Shared VPC service project id or service project number for which aggregated -// list request is invoked for subnetworks list-usable api. -func (c *PacketMirroringsAggregatedListCall) ServiceProjectNumber(serviceProjectNumber int64) *PacketMirroringsAggregatedListCall { - c.urlParams_.Set("serviceProjectNumber", fmt.Sprint(serviceProjectNumber)) +// 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 *PublicAdvertisedPrefixesAnnounceCall) RequestId(requestId string) *PublicAdvertisedPrefixesAnnounceCall { + 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 // details. -func (c *PacketMirroringsAggregatedListCall) Fields(s ...googleapi.Field) *PacketMirroringsAggregatedListCall { +func (c *PublicAdvertisedPrefixesAnnounceCall) Fields(s ...googleapi.Field) *PublicAdvertisedPrefixesAnnounceCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } -// IfNoneMatch sets an 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. -func (c *PacketMirroringsAggregatedListCall) IfNoneMatch(entityTag string) *PacketMirroringsAggregatedListCall { - c.ifNoneMatch_ = entityTag - return c -} - // Context sets the context to be used in this call's Do method. -func (c *PacketMirroringsAggregatedListCall) Context(ctx context.Context) *PacketMirroringsAggregatedListCall { +func (c *PublicAdvertisedPrefixesAnnounceCall) Context(ctx context.Context) *PublicAdvertisedPrefixesAnnounceCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *PacketMirroringsAggregatedListCall) Header() http.Header { +func (c *PublicAdvertisedPrefixesAnnounceCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *PacketMirroringsAggregatedListCall) doRequest(alt string) (*http.Response, error) { +func (c *PublicAdvertisedPrefixesAnnounceCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) - if c.ifNoneMatch_ != "" { - reqHeaders.Set("If-None-Match", c.ifNoneMatch_) - } - var body io.Reader = nil c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/aggregated/packetMirrorings") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/publicAdvertisedPrefixes/{publicAdvertisedPrefix}/announce") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("GET", urls, body) + req, err := http.NewRequest("POST", urls, nil) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, + "project": c.project, + "publicAdvertisedPrefix": c.publicAdvertisedPrefix, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.publicAdvertisedPrefixes.announce", "request", internallog.HTTPRequest(req, nil)) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.packetMirrorings.aggregatedList" call. +// Do executes the "compute.publicAdvertisedPrefixes.announce" call. // Any non-2xx status code is an error. Response headers are in either -// *PacketMirroringAggregatedList.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 *PacketMirroringsAggregatedListCall) Do(opts ...googleapi.CallOption) (*PacketMirroringAggregatedList, error) { +// *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 *PublicAdvertisedPrefixesAnnounceCall) Do(opts ...googleapi.CallOption) (*Operation, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -52862,78 +76940,64 @@ func (c *PacketMirroringsAggregatedListCall) Do(opts ...googleapi.CallOption) (* if err != nil { return nil, err } - defer googleapi.CloseBody(res) - if err := googleapi.CheckResponse(res); err != nil { - return nil, gensupport.WrapError(err) - } - ret := &PacketMirroringAggregatedList{ - 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 -} - -// 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 *PacketMirroringsAggregatedListCall) Pages(ctx context.Context, f func(*PacketMirroringAggregatedList) error) error { - c.ctx_ = ctx - defer c.PageToken(c.urlParams_.Get("pageToken")) - 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) - } + defer googleapi.CloseBody(res) + if err := googleapi.CheckResponse(res); err != nil { + return nil, gensupport.WrapError(err) + } + ret := &Operation{ + ServerResponse: googleapi.ServerResponse{ + Header: res.Header, + HTTPStatusCode: res.StatusCode, + }, + } + target := &ret + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { + return nil, err + } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.publicAdvertisedPrefixes.announce", "response", internallog.HTTPResponse(res, b)) + return ret, nil } -type PacketMirroringsDeleteCall struct { - s *Service - project string - region string - packetMirroring string - urlParams_ gensupport.URLParams - ctx_ context.Context - header_ http.Header +type PublicAdvertisedPrefixesDeleteCall struct { + s *Service + project string + publicAdvertisedPrefix string + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header } -// Delete: Deletes the specified PacketMirroring resource. +// Delete: Deletes the specified PublicAdvertisedPrefix // -// - packetMirroring: Name of the PacketMirroring resource to delete. -// - project: Project ID for this request. -// - region: Name of the region for this request. -func (r *PacketMirroringsService) Delete(project string, region string, packetMirroring string) *PacketMirroringsDeleteCall { - c := &PacketMirroringsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)} +// - project: Project ID for this request. +// - publicAdvertisedPrefix: Name of the PublicAdvertisedPrefix resource to +// delete. +func (r *PublicAdvertisedPrefixesService) Delete(project string, publicAdvertisedPrefix string) *PublicAdvertisedPrefixesDeleteCall { + c := &PublicAdvertisedPrefixesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project - c.region = region - c.packetMirroring = packetMirroring + c.publicAdvertisedPrefix = publicAdvertisedPrefix 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 *PacketMirroringsDeleteCall) RequestId(requestId string) *PacketMirroringsDeleteCall { +// 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 *PublicAdvertisedPrefixesDeleteCall) RequestId(requestId string) *PublicAdvertisedPrefixesDeleteCall { c.urlParams_.Set("requestId", requestId) return c } @@ -52941,52 +77005,51 @@ func (c *PacketMirroringsDeleteCall) RequestId(requestId string) *PacketMirrorin // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *PacketMirroringsDeleteCall) Fields(s ...googleapi.Field) *PacketMirroringsDeleteCall { +func (c *PublicAdvertisedPrefixesDeleteCall) Fields(s ...googleapi.Field) *PublicAdvertisedPrefixesDeleteCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } // Context sets the context to be used in this call's Do method. -func (c *PacketMirroringsDeleteCall) Context(ctx context.Context) *PacketMirroringsDeleteCall { +func (c *PublicAdvertisedPrefixesDeleteCall) Context(ctx context.Context) *PublicAdvertisedPrefixesDeleteCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *PacketMirroringsDeleteCall) Header() http.Header { +func (c *PublicAdvertisedPrefixesDeleteCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *PacketMirroringsDeleteCall) doRequest(alt string) (*http.Response, error) { +func (c *PublicAdvertisedPrefixesDeleteCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) - var body io.Reader = nil c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/packetMirrorings/{packetMirroring}") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/publicAdvertisedPrefixes/{publicAdvertisedPrefix}") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("DELETE", urls, body) + req, err := http.NewRequest("DELETE", urls, nil) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "region": c.region, - "packetMirroring": c.packetMirroring, + "project": c.project, + "publicAdvertisedPrefix": c.publicAdvertisedPrefix, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.publicAdvertisedPrefixes.delete", "request", internallog.HTTPRequest(req, nil)) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.packetMirrorings.delete" call. +// Do executes the "compute.publicAdvertisedPrefixes.delete" call. // 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 *PacketMirroringsDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) { +func (c *PublicAdvertisedPrefixesDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -53012,40 +77075,40 @@ func (c *PacketMirroringsDeleteCall) Do(opts ...googleapi.CallOption) (*Operatio }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.publicAdvertisedPrefixes.delete", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type PacketMirroringsGetCall struct { - s *Service - project string - region string - packetMirroring string - urlParams_ gensupport.URLParams - ifNoneMatch_ string - ctx_ context.Context - header_ http.Header +type PublicAdvertisedPrefixesGetCall struct { + s *Service + project string + publicAdvertisedPrefix string + urlParams_ gensupport.URLParams + ifNoneMatch_ string + ctx_ context.Context + header_ http.Header } -// Get: Returns the specified PacketMirroring resource. +// Get: Returns the specified PublicAdvertisedPrefix resource. // -// - packetMirroring: Name of the PacketMirroring resource to return. -// - project: Project ID for this request. -// - region: Name of the region for this request. -func (r *PacketMirroringsService) Get(project string, region string, packetMirroring string) *PacketMirroringsGetCall { - c := &PacketMirroringsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)} +// - project: Project ID for this request. +// - publicAdvertisedPrefix: Name of the PublicAdvertisedPrefix resource to +// return. +func (r *PublicAdvertisedPrefixesService) Get(project string, publicAdvertisedPrefix string) *PublicAdvertisedPrefixesGetCall { + c := &PublicAdvertisedPrefixesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project - c.region = region - c.packetMirroring = packetMirroring + c.publicAdvertisedPrefix = publicAdvertisedPrefix return c } // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *PacketMirroringsGetCall) Fields(s ...googleapi.Field) *PacketMirroringsGetCall { +func (c *PublicAdvertisedPrefixesGetCall) Fields(s ...googleapi.Field) *PublicAdvertisedPrefixesGetCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } @@ -53053,56 +77116,55 @@ func (c *PacketMirroringsGetCall) Fields(s ...googleapi.Field) *PacketMirrorings // IfNoneMatch sets an 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. -func (c *PacketMirroringsGetCall) IfNoneMatch(entityTag string) *PacketMirroringsGetCall { +func (c *PublicAdvertisedPrefixesGetCall) IfNoneMatch(entityTag string) *PublicAdvertisedPrefixesGetCall { c.ifNoneMatch_ = entityTag return c } // Context sets the context to be used in this call's Do method. -func (c *PacketMirroringsGetCall) Context(ctx context.Context) *PacketMirroringsGetCall { +func (c *PublicAdvertisedPrefixesGetCall) Context(ctx context.Context) *PublicAdvertisedPrefixesGetCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *PacketMirroringsGetCall) Header() http.Header { +func (c *PublicAdvertisedPrefixesGetCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *PacketMirroringsGetCall) doRequest(alt string) (*http.Response, error) { +func (c *PublicAdvertisedPrefixesGetCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) if c.ifNoneMatch_ != "" { reqHeaders.Set("If-None-Match", c.ifNoneMatch_) } - var body io.Reader = nil c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/packetMirrorings/{packetMirroring}") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/publicAdvertisedPrefixes/{publicAdvertisedPrefix}") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("GET", urls, body) + req, err := http.NewRequest("GET", urls, nil) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "region": c.region, - "packetMirroring": c.packetMirroring, + "project": c.project, + "publicAdvertisedPrefix": c.publicAdvertisedPrefix, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.publicAdvertisedPrefixes.get", "request", internallog.HTTPRequest(req, nil)) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.packetMirrorings.get" call. +// Do executes the "compute.publicAdvertisedPrefixes.get" call. // Any non-2xx status code is an error. Response headers are in either -// *PacketMirroring.ServerResponse.Header or (if a response was returned at -// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to +// *PublicAdvertisedPrefix.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 *PacketMirroringsGetCall) Do(opts ...googleapi.CallOption) (*PacketMirroring, error) { +func (c *PublicAdvertisedPrefixesGetCall) Do(opts ...googleapi.CallOption) (*PublicAdvertisedPrefix, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -53121,53 +77183,59 @@ func (c *PacketMirroringsGetCall) Do(opts ...googleapi.CallOption) (*PacketMirro if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } - ret := &PacketMirroring{ + ret := &PublicAdvertisedPrefix{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.publicAdvertisedPrefixes.get", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type PacketMirroringsInsertCall struct { - s *Service - project string - region string - packetmirroring *PacketMirroring - urlParams_ gensupport.URLParams - ctx_ context.Context - header_ http.Header +type PublicAdvertisedPrefixesInsertCall struct { + s *Service + project string + publicadvertisedprefix *PublicAdvertisedPrefix + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header } -// Insert: Creates a PacketMirroring resource in the specified project and -// region using the data included in the request. +// Insert: Creates a PublicAdvertisedPrefix in the specified project +// using the parameters that are included in the request. // // - project: Project ID for this request. -// - region: Name of the region for this request. -func (r *PacketMirroringsService) Insert(project string, region string, packetmirroring *PacketMirroring) *PacketMirroringsInsertCall { - c := &PacketMirroringsInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)} +func (r *PublicAdvertisedPrefixesService) Insert(project string, publicadvertisedprefix *PublicAdvertisedPrefix) *PublicAdvertisedPrefixesInsertCall { + c := &PublicAdvertisedPrefixesInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project - c.region = region - c.packetmirroring = packetmirroring + c.publicadvertisedprefix = publicadvertisedprefix 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 *PacketMirroringsInsertCall) RequestId(requestId string) *PacketMirroringsInsertCall { +// 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 *PublicAdvertisedPrefixesInsertCall) RequestId(requestId string) *PublicAdvertisedPrefixesInsertCall { c.urlParams_.Set("requestId", requestId) return c } @@ -53175,36 +77243,35 @@ func (c *PacketMirroringsInsertCall) RequestId(requestId string) *PacketMirrorin // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *PacketMirroringsInsertCall) Fields(s ...googleapi.Field) *PacketMirroringsInsertCall { +func (c *PublicAdvertisedPrefixesInsertCall) Fields(s ...googleapi.Field) *PublicAdvertisedPrefixesInsertCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } // Context sets the context to be used in this call's Do method. -func (c *PacketMirroringsInsertCall) Context(ctx context.Context) *PacketMirroringsInsertCall { +func (c *PublicAdvertisedPrefixesInsertCall) Context(ctx context.Context) *PublicAdvertisedPrefixesInsertCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *PacketMirroringsInsertCall) Header() http.Header { +func (c *PublicAdvertisedPrefixesInsertCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *PacketMirroringsInsertCall) doRequest(alt string) (*http.Response, error) { +func (c *PublicAdvertisedPrefixesInsertCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) - var body io.Reader = nil - body, err := googleapi.WithoutDataWrapper.JSONReader(c.packetmirroring) + body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.publicadvertisedprefix) if err != nil { return nil, err } c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/packetMirrorings") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/publicAdvertisedPrefixes") urls += "?" + c.urlParams_.Encode() req, err := http.NewRequest("POST", urls, body) if err != nil { @@ -53213,17 +77280,17 @@ func (c *PacketMirroringsInsertCall) doRequest(alt string) (*http.Response, erro req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ "project": c.project, - "region": c.region, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.publicAdvertisedPrefixes.insert", "request", internallog.HTTPRequest(req, body.Bytes())) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.packetMirrorings.insert" call. +// Do executes the "compute.publicAdvertisedPrefixes.insert" call. // 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 *PacketMirroringsInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) { +func (c *PublicAdvertisedPrefixesInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -53249,108 +77316,156 @@ func (c *PacketMirroringsInsertCall) Do(opts ...googleapi.CallOption) (*Operatio }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.publicAdvertisedPrefixes.insert", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type PacketMirroringsListCall struct { +type PublicAdvertisedPrefixesListCall struct { s *Service project string - region string urlParams_ gensupport.URLParams ifNoneMatch_ string ctx_ context.Context header_ http.Header } -// List: Retrieves a list of PacketMirroring resources available to the -// specified project and region. +// List: Lists the PublicAdvertisedPrefixes for a project. // // - project: Project ID for this request. -// - region: Name of the region for this request. -func (r *PacketMirroringsService) List(project string, region string) *PacketMirroringsListCall { - c := &PacketMirroringsListCall{s: r.s, urlParams_: make(gensupport.URLParams)} +func (r *PublicAdvertisedPrefixesService) List(project string) *PublicAdvertisedPrefixesListCall { + c := &PublicAdvertisedPrefixesListCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project - c.region = region return c } // Filter sets the optional parameter "filter": A filter expression that -// filters resources listed in the response. Most Compute resources support two -// types of filter expressions: expressions that support regular expressions -// and expressions that follow API improvement proposal AIP-160. These two -// types of filter expressions cannot be mixed in one request. If you want to -// use AIP-160, your expression must specify the field name, an operator, and -// the value that you want to use for filtering. The value must be a string, a -// number, or a boolean. The 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`. The `:*` comparison can be used to test whether a key has -// been defined. For example, to find all objects with `owner` label use: ``` -// labels.owner:* ``` 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) ``` If you want to use a regular -// expression, use the `eq` (equal) or `ne` (not equal) operator against a -// single un-parenthesized expression with or without quotes or against -// multiple parenthesized expressions. Examples: `fieldname eq unquoted -// literal` `fieldname eq 'single quoted literal'` `fieldname eq "double quoted -// literal" `(fieldname1 eq literal) (fieldname2 ne "literal")` The literal -// value is interpreted as a regular expression using Google RE2 library -// syntax. The literal value must match the entire field. For example, to -// filter for instances that do not end with name "instance", you would use -// `name ne .*instance`. You cannot combine constraints on multiple fields -// using regular expressions. -func (c *PacketMirroringsListCall) Filter(filter string) *PacketMirroringsListCall { +// filters resources listed in the response. Most +// Compute resources support two types of filter expressions: +// expressions that support regular expressions and expressions that follow +// API improvement proposal AIP-160. +// These two types of filter expressions cannot be mixed in one request. +// +// If you want to use AIP-160, your expression must specify the field name, +// an +// operator, and the value that you want to use for filtering. The value +// must be a string, a number, or a boolean. The 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`. +// +// The `:*` comparison can be used to test whether a key has been defined. +// For example, to find all objects with `owner` label +// use: +// ``` +// labels.owner:* +// ``` +// +// 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 onresource 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) +// ``` +// +// If you want to use a regular expression, use the `eq` (equal) or `ne` +// (not equal) operator against a single un-parenthesized expression with +// or +// without quotes or against multiple parenthesized expressions. +// Examples: +// +// `fieldname eq unquoted literal` +// `fieldname eq 'single quoted literal'` +// `fieldname eq "double quoted literal" +// `(fieldname1 eq literal) (fieldname2 ne "literal")` +// +// The literal value is interpreted as a regular expression using GoogleRE2 +// library syntax. +// The literal value must match the entire field. +// +// For example, to filter for instances that do not end with name +// "instance", +// you would use `name ne .*instance`. +// +// You cannot combine constraints on multiple fields using regular +// expressions. +func (c *PublicAdvertisedPrefixesListCall) Filter(filter string) *PublicAdvertisedPrefixesListCall { 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 *PacketMirroringsListCall) MaxResults(maxResults int64) *PacketMirroringsListCall { +// 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 *PublicAdvertisedPrefixesListCall) MaxResults(maxResults int64) *PublicAdvertisedPrefixesListCall { 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 *PacketMirroringsListCall) OrderBy(orderBy string) *PacketMirroringsListCall { +// 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 *PublicAdvertisedPrefixesListCall) OrderBy(orderBy string) *PublicAdvertisedPrefixesListCall { 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 *PacketMirroringsListCall) PageToken(pageToken string) *PacketMirroringsListCall { +// use. Set `pageToken` to the +// `nextPageToken` returned by a previous list request to get +// the next page of results. +func (c *PublicAdvertisedPrefixesListCall) PageToken(pageToken string) *PublicAdvertisedPrefixesListCall { c.urlParams_.Set("pageToken", pageToken) return c } // ReturnPartialSuccess sets the optional parameter "returnPartialSuccess": -// Opt-in for partial success behavior which provides partial results in case -// of failure. The default value is false. For example, when partial success -// behavior is enabled, aggregatedList for a single zone scope either returns -// all resources in the zone or no resources, with an error code. -func (c *PacketMirroringsListCall) ReturnPartialSuccess(returnPartialSuccess bool) *PacketMirroringsListCall { +// Opt-in for partial success behavior which provides partial results in +// case +// of failure. The default value is false. +// +// For example, when partial success behavior is enabled, aggregatedList for +// a +// single zone scope either returns all resources in the zone or no +// resources, +// with an error code. +func (c *PublicAdvertisedPrefixesListCall) ReturnPartialSuccess(returnPartialSuccess bool) *PublicAdvertisedPrefixesListCall { c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess)) return c } @@ -53358,7 +77473,7 @@ func (c *PacketMirroringsListCall) ReturnPartialSuccess(returnPartialSuccess boo // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *PacketMirroringsListCall) Fields(s ...googleapi.Field) *PacketMirroringsListCall { +func (c *PublicAdvertisedPrefixesListCall) Fields(s ...googleapi.Field) *PublicAdvertisedPrefixesListCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } @@ -53366,55 +77481,54 @@ func (c *PacketMirroringsListCall) Fields(s ...googleapi.Field) *PacketMirroring // IfNoneMatch sets an 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. -func (c *PacketMirroringsListCall) IfNoneMatch(entityTag string) *PacketMirroringsListCall { +func (c *PublicAdvertisedPrefixesListCall) IfNoneMatch(entityTag string) *PublicAdvertisedPrefixesListCall { c.ifNoneMatch_ = entityTag return c } // Context sets the context to be used in this call's Do method. -func (c *PacketMirroringsListCall) Context(ctx context.Context) *PacketMirroringsListCall { +func (c *PublicAdvertisedPrefixesListCall) Context(ctx context.Context) *PublicAdvertisedPrefixesListCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *PacketMirroringsListCall) Header() http.Header { +func (c *PublicAdvertisedPrefixesListCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *PacketMirroringsListCall) doRequest(alt string) (*http.Response, error) { +func (c *PublicAdvertisedPrefixesListCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) if c.ifNoneMatch_ != "" { reqHeaders.Set("If-None-Match", c.ifNoneMatch_) } - var body io.Reader = nil c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/packetMirrorings") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/publicAdvertisedPrefixes") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("GET", urls, body) + req, err := http.NewRequest("GET", urls, nil) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ "project": c.project, - "region": c.region, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.publicAdvertisedPrefixes.list", "request", internallog.HTTPRequest(req, nil)) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.packetMirrorings.list" call. +// Do executes the "compute.publicAdvertisedPrefixes.list" call. // Any non-2xx status code is an error. Response headers are in either -// *PacketMirroringList.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 *PacketMirroringsListCall) Do(opts ...googleapi.CallOption) (*PacketMirroringList, error) { +// *PublicAdvertisedPrefixList.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 *PublicAdvertisedPrefixesListCall) Do(opts ...googleapi.CallOption) (*PublicAdvertisedPrefixList, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -53433,23 +77547,25 @@ func (c *PacketMirroringsListCall) Do(opts ...googleapi.CallOption) (*PacketMirr if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } - ret := &PacketMirroringList{ + ret := &PublicAdvertisedPrefixList{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.publicAdvertisedPrefixes.list", "response", internallog.HTTPResponse(res, b)) return ret, nil } // 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 *PacketMirroringsListCall) Pages(ctx context.Context, f func(*PacketMirroringList) error) error { +func (c *PublicAdvertisedPrefixesListCall) Pages(ctx context.Context, f func(*PublicAdvertisedPrefixList) error) error { c.ctx_ = ctx defer c.PageToken(c.urlParams_.Get("pageToken")) for { @@ -53467,44 +77583,51 @@ func (c *PacketMirroringsListCall) Pages(ctx context.Context, f func(*PacketMirr } } -type PacketMirroringsPatchCall struct { - s *Service - project string - region string - packetMirroring string - packetmirroring *PacketMirroring - urlParams_ gensupport.URLParams - ctx_ context.Context - header_ http.Header +type PublicAdvertisedPrefixesPatchCall struct { + s *Service + project string + publicAdvertisedPrefix string + publicadvertisedprefix *PublicAdvertisedPrefix + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header } -// Patch: Patches the specified PacketMirroring resource with the data included -// in the request. This method supports PATCH semantics and uses JSON merge +// Patch: Patches the specified Router resource with the data included in +// the +// request. This method supportsPATCH +// semantics and usesJSON merge // patch format and processing rules. // -// - packetMirroring: Name of the PacketMirroring resource to patch. -// - project: Project ID for this request. -// - region: Name of the region for this request. -func (r *PacketMirroringsService) Patch(project string, region string, packetMirroring string, packetmirroring *PacketMirroring) *PacketMirroringsPatchCall { - c := &PacketMirroringsPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)} +// - project: Project ID for this request. +// - publicAdvertisedPrefix: Name of the PublicAdvertisedPrefix resource to +// patch. +func (r *PublicAdvertisedPrefixesService) Patch(project string, publicAdvertisedPrefix string, publicadvertisedprefix *PublicAdvertisedPrefix) *PublicAdvertisedPrefixesPatchCall { + c := &PublicAdvertisedPrefixesPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project - c.region = region - c.packetMirroring = packetMirroring - c.packetmirroring = packetmirroring + c.publicAdvertisedPrefix = publicAdvertisedPrefix + c.publicadvertisedprefix = publicadvertisedprefix 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 *PacketMirroringsPatchCall) RequestId(requestId string) *PacketMirroringsPatchCall { +// 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 *PublicAdvertisedPrefixesPatchCall) RequestId(requestId string) *PublicAdvertisedPrefixesPatchCall { c.urlParams_.Set("requestId", requestId) return c } @@ -53512,36 +77635,35 @@ func (c *PacketMirroringsPatchCall) RequestId(requestId string) *PacketMirroring // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *PacketMirroringsPatchCall) Fields(s ...googleapi.Field) *PacketMirroringsPatchCall { +func (c *PublicAdvertisedPrefixesPatchCall) Fields(s ...googleapi.Field) *PublicAdvertisedPrefixesPatchCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } // Context sets the context to be used in this call's Do method. -func (c *PacketMirroringsPatchCall) Context(ctx context.Context) *PacketMirroringsPatchCall { +func (c *PublicAdvertisedPrefixesPatchCall) Context(ctx context.Context) *PublicAdvertisedPrefixesPatchCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *PacketMirroringsPatchCall) Header() http.Header { +func (c *PublicAdvertisedPrefixesPatchCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *PacketMirroringsPatchCall) doRequest(alt string) (*http.Response, error) { +func (c *PublicAdvertisedPrefixesPatchCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) - var body io.Reader = nil - body, err := googleapi.WithoutDataWrapper.JSONReader(c.packetmirroring) + body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.publicadvertisedprefix) if err != nil { return nil, err } c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/packetMirrorings/{packetMirroring}") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/publicAdvertisedPrefixes/{publicAdvertisedPrefix}") urls += "?" + c.urlParams_.Encode() req, err := http.NewRequest("PATCH", urls, body) if err != nil { @@ -53549,19 +77671,19 @@ func (c *PacketMirroringsPatchCall) doRequest(alt string) (*http.Response, error } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "region": c.region, - "packetMirroring": c.packetMirroring, + "project": c.project, + "publicAdvertisedPrefix": c.publicAdvertisedPrefix, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.publicAdvertisedPrefixes.patch", "request", internallog.HTTPRequest(req, body.Bytes())) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.packetMirrorings.patch" call. +// Do executes the "compute.publicAdvertisedPrefixes.patch" call. // 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 *PacketMirroringsPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) { +func (c *PublicAdvertisedPrefixesPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -53587,92 +77709,375 @@ func (c *PacketMirroringsPatchCall) Do(opts ...googleapi.CallOption) (*Operation }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.publicAdvertisedPrefixes.patch", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type PacketMirroringsTestIamPermissionsCall struct { +type PublicAdvertisedPrefixesWithdrawCall struct { s *Service project string - region string - resource string - testpermissionsrequest *TestPermissionsRequest + publicAdvertisedPrefix string urlParams_ gensupport.URLParams ctx_ context.Context header_ http.Header } -// TestIamPermissions: Returns permissions that a caller has on the specified -// resource. +// Withdraw: Withdraws the specified PublicAdvertisedPrefix // -// - project: Project ID for this request. -// - region: The name of the region for this request. -// - resource: Name or id of the resource for this request. -func (r *PacketMirroringsService) TestIamPermissions(project string, region string, resource string, testpermissionsrequest *TestPermissionsRequest) *PacketMirroringsTestIamPermissionsCall { - c := &PacketMirroringsTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)} +// - project: Project ID for this request. +// - publicAdvertisedPrefix: The name of the public advertised prefix. It +// should comply with RFC1035. +func (r *PublicAdvertisedPrefixesService) Withdraw(project string, publicAdvertisedPrefix string) *PublicAdvertisedPrefixesWithdrawCall { + c := &PublicAdvertisedPrefixesWithdrawCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project - c.region = region - c.resource = resource - c.testpermissionsrequest = testpermissionsrequest + c.publicAdvertisedPrefix = publicAdvertisedPrefix + 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 *PublicAdvertisedPrefixesWithdrawCall) RequestId(requestId string) *PublicAdvertisedPrefixesWithdrawCall { + 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 // details. -func (c *PacketMirroringsTestIamPermissionsCall) Fields(s ...googleapi.Field) *PacketMirroringsTestIamPermissionsCall { +func (c *PublicAdvertisedPrefixesWithdrawCall) Fields(s ...googleapi.Field) *PublicAdvertisedPrefixesWithdrawCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } // Context sets the context to be used in this call's Do method. -func (c *PacketMirroringsTestIamPermissionsCall) Context(ctx context.Context) *PacketMirroringsTestIamPermissionsCall { +func (c *PublicAdvertisedPrefixesWithdrawCall) Context(ctx context.Context) *PublicAdvertisedPrefixesWithdrawCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *PacketMirroringsTestIamPermissionsCall) Header() http.Header { +func (c *PublicAdvertisedPrefixesWithdrawCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *PacketMirroringsTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) { - reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) - var body io.Reader = nil - body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest) +func (c *PublicAdvertisedPrefixesWithdrawCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) + c.urlParams_.Set("alt", alt) + c.urlParams_.Set("prettyPrint", "false") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/publicAdvertisedPrefixes/{publicAdvertisedPrefix}/withdraw") + urls += "?" + c.urlParams_.Encode() + req, err := http.NewRequest("POST", urls, nil) + if err != nil { + return nil, err + } + req.Header = reqHeaders + googleapi.Expand(req.URL, map[string]string{ + "project": c.project, + "publicAdvertisedPrefix": c.publicAdvertisedPrefix, + }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.publicAdvertisedPrefixes.withdraw", "request", internallog.HTTPRequest(req, nil)) + return gensupport.SendRequest(c.ctx_, c.s.client, req) +} + +// Do executes the "compute.publicAdvertisedPrefixes.withdraw" call. +// 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 *PublicAdvertisedPrefixesWithdrawCall) 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, gensupport.WrapError(&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, gensupport.WrapError(err) + } + ret := &Operation{ + ServerResponse: googleapi.ServerResponse{ + Header: res.Header, + HTTPStatusCode: res.StatusCode, + }, + } + target := &ret + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { + return nil, err + } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.publicAdvertisedPrefixes.withdraw", "response", internallog.HTTPResponse(res, b)) + return ret, nil +} + +type PublicDelegatedPrefixesAggregatedListCall struct { + s *Service + project string + urlParams_ gensupport.URLParams + ifNoneMatch_ string + ctx_ context.Context + header_ http.Header +} + +// AggregatedList: Lists all PublicDelegatedPrefix resources owned by the +// specific project +// across all scopes. +// +// To prevent failure, Google recommends that you set +// the +// `returnPartialSuccess` parameter to `true`. +// +// - project: Name of the project scoping this request. +func (r *PublicDelegatedPrefixesService) AggregatedList(project string) *PublicDelegatedPrefixesAggregatedListCall { + c := &PublicDelegatedPrefixesAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)} + c.project = project + return c +} + +// Filter sets the optional parameter "filter": A filter expression that +// filters resources listed in the response. Most +// Compute resources support two types of filter expressions: +// expressions that support regular expressions and expressions that follow +// API improvement proposal AIP-160. +// These two types of filter expressions cannot be mixed in one request. +// +// If you want to use AIP-160, your expression must specify the field name, +// an +// operator, and the value that you want to use for filtering. The value +// must be a string, a number, or a boolean. The 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`. +// +// The `:*` comparison can be used to test whether a key has been defined. +// For example, to find all objects with `owner` label +// use: +// ``` +// labels.owner:* +// ``` +// +// 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 onresource 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) +// ``` +// +// If you want to use a regular expression, use the `eq` (equal) or `ne` +// (not equal) operator against a single un-parenthesized expression with +// or +// without quotes or against multiple parenthesized expressions. +// Examples: +// +// `fieldname eq unquoted literal` +// `fieldname eq 'single quoted literal'` +// `fieldname eq "double quoted literal" +// `(fieldname1 eq literal) (fieldname2 ne "literal")` +// +// The literal value is interpreted as a regular expression using GoogleRE2 +// library syntax. +// The literal value must match the entire field. +// +// For example, to filter for instances that do not end with name +// "instance", +// you would use `name ne .*instance`. +// +// You cannot combine constraints on multiple fields using regular +// expressions. +func (c *PublicDelegatedPrefixesAggregatedListCall) Filter(filter string) *PublicDelegatedPrefixesAggregatedListCall { + c.urlParams_.Set("filter", filter) + return c +} + +// IncludeAllScopes sets the optional parameter "includeAllScopes": Indicates +// whether every visible scope for each scope type (zone, region, +// global) should be included in the response. For new resource types +// added +// after this field, the flag has no effect as new resource types will +// always +// include every visible scope for each scope type in response. For +// resource +// types which predate this field, if this flag is omitted or false, +// only +// scopes of the scope types where the resource type is expected to be +// found +// will be included. +func (c *PublicDelegatedPrefixesAggregatedListCall) IncludeAllScopes(includeAllScopes bool) *PublicDelegatedPrefixesAggregatedListCall { + c.urlParams_.Set("includeAllScopes", fmt.Sprint(includeAllScopes)) + 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 *PublicDelegatedPrefixesAggregatedListCall) MaxResults(maxResults int64) *PublicDelegatedPrefixesAggregatedListCall { + 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 *PublicDelegatedPrefixesAggregatedListCall) OrderBy(orderBy string) *PublicDelegatedPrefixesAggregatedListCall { + 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 *PublicDelegatedPrefixesAggregatedListCall) PageToken(pageToken string) *PublicDelegatedPrefixesAggregatedListCall { + c.urlParams_.Set("pageToken", pageToken) + return c +} + +// ReturnPartialSuccess sets the optional parameter "returnPartialSuccess": +// Opt-in for partial success behavior which provides partial results in +// case +// of failure. The default value is false. +// +// For example, when partial success behavior is enabled, aggregatedList for +// a +// single zone scope either returns all resources in the zone or no +// resources, +// with an error code. +func (c *PublicDelegatedPrefixesAggregatedListCall) ReturnPartialSuccess(returnPartialSuccess bool) *PublicDelegatedPrefixesAggregatedListCall { + c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess)) + return c +} + +// ServiceProjectNumber sets the optional parameter "serviceProjectNumber": The +// Shared VPC service project id or service project number for which +// aggregated list request is invoked for subnetworks list-usable api. +func (c *PublicDelegatedPrefixesAggregatedListCall) ServiceProjectNumber(serviceProjectNumber int64) *PublicDelegatedPrefixesAggregatedListCall { + c.urlParams_.Set("serviceProjectNumber", fmt.Sprint(serviceProjectNumber)) + return c +} + +// Fields allows partial responses to be retrieved. See +// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more +// details. +func (c *PublicDelegatedPrefixesAggregatedListCall) Fields(s ...googleapi.Field) *PublicDelegatedPrefixesAggregatedListCall { + c.urlParams_.Set("fields", googleapi.CombineFields(s)) + return c +} + +// IfNoneMatch sets an 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. +func (c *PublicDelegatedPrefixesAggregatedListCall) IfNoneMatch(entityTag string) *PublicDelegatedPrefixesAggregatedListCall { + c.ifNoneMatch_ = entityTag + return c +} + +// Context sets the context to be used in this call's Do method. +func (c *PublicDelegatedPrefixesAggregatedListCall) Context(ctx context.Context) *PublicDelegatedPrefixesAggregatedListCall { + c.ctx_ = ctx + return c +} + +// Header returns a http.Header that can be modified by the caller to add +// headers to the request. +func (c *PublicDelegatedPrefixesAggregatedListCall) Header() http.Header { + if c.header_ == nil { + c.header_ = make(http.Header) + } + return c.header_ +} + +func (c *PublicDelegatedPrefixesAggregatedListCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) + if c.ifNoneMatch_ != "" { + reqHeaders.Set("If-None-Match", c.ifNoneMatch_) + } c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/packetMirrorings/{resource}/testIamPermissions") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/aggregated/publicDelegatedPrefixes") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("POST", urls, body) + req, err := http.NewRequest("GET", urls, nil) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "region": c.region, - "resource": c.resource, + "project": c.project, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.publicDelegatedPrefixes.aggregatedList", "request", internallog.HTTPRequest(req, nil)) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.packetMirrorings.testIamPermissions" call. +// Do executes the "compute.publicDelegatedPrefixes.aggregatedList" call. // Any non-2xx status code is an error. Response headers are in either -// *TestPermissionsResponse.ServerResponse.Header or (if a response was -// returned at all) in error.(*googleapi.Error).Header. Use +// *PublicDelegatedPrefixAggregatedList.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 *PacketMirroringsTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) { +func (c *PublicDelegatedPrefixesAggregatedListCall) Do(opts ...googleapi.CallOption) (*PublicDelegatedPrefixAggregatedList, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -53691,47 +78096,85 @@ func (c *PacketMirroringsTestIamPermissionsCall) Do(opts ...googleapi.CallOption if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } - ret := &TestPermissionsResponse{ + ret := &PublicDelegatedPrefixAggregatedList{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.publicDelegatedPrefixes.aggregatedList", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type ProjectsDisableXpnHostCall struct { - s *Service - project string - urlParams_ gensupport.URLParams - ctx_ context.Context - header_ http.Header +// 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 *PublicDelegatedPrefixesAggregatedListCall) Pages(ctx context.Context, f func(*PublicDelegatedPrefixAggregatedList) error) error { + c.ctx_ = ctx + defer c.PageToken(c.urlParams_.Get("pageToken")) + 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) + } } -// DisableXpnHost: Disable this project as a shared VPC host project. +type PublicDelegatedPrefixesAnnounceCall struct { + s *Service + project string + region string + publicDelegatedPrefix string + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header +} + +// Announce: Announces the specified PublicDelegatedPrefix in the given region. // -// - project: Project ID for this request. -func (r *ProjectsService) DisableXpnHost(project string) *ProjectsDisableXpnHostCall { - c := &ProjectsDisableXpnHostCall{s: r.s, urlParams_: make(gensupport.URLParams)} +// - project: Project ID for this request. +// - publicDelegatedPrefix: The name of the public delegated prefix. It should +// comply with RFC1035. +// - region: The name of theregion where +// the public delegated prefix is located. It should comply with RFC1035. +func (r *PublicDelegatedPrefixesService) Announce(project string, region string, publicDelegatedPrefix string) *PublicDelegatedPrefixesAnnounceCall { + c := &PublicDelegatedPrefixesAnnounceCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project + c.region = region + c.publicDelegatedPrefix = publicDelegatedPrefix 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 *ProjectsDisableXpnHostCall) RequestId(requestId string) *ProjectsDisableXpnHostCall { +// 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 *PublicDelegatedPrefixesAnnounceCall) RequestId(requestId string) *PublicDelegatedPrefixesAnnounceCall { c.urlParams_.Set("requestId", requestId) return c } @@ -53739,50 +78182,52 @@ func (c *ProjectsDisableXpnHostCall) RequestId(requestId string) *ProjectsDisabl // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *ProjectsDisableXpnHostCall) Fields(s ...googleapi.Field) *ProjectsDisableXpnHostCall { +func (c *PublicDelegatedPrefixesAnnounceCall) Fields(s ...googleapi.Field) *PublicDelegatedPrefixesAnnounceCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } // Context sets the context to be used in this call's Do method. -func (c *ProjectsDisableXpnHostCall) Context(ctx context.Context) *ProjectsDisableXpnHostCall { +func (c *PublicDelegatedPrefixesAnnounceCall) Context(ctx context.Context) *PublicDelegatedPrefixesAnnounceCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *ProjectsDisableXpnHostCall) Header() http.Header { +func (c *PublicDelegatedPrefixesAnnounceCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *ProjectsDisableXpnHostCall) doRequest(alt string) (*http.Response, error) { +func (c *PublicDelegatedPrefixesAnnounceCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) - var body io.Reader = nil c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/disableXpnHost") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/publicDelegatedPrefixes/{publicDelegatedPrefix}/announce") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("POST", urls, body) + req, err := http.NewRequest("POST", urls, nil) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, + "project": c.project, + "region": c.region, + "publicDelegatedPrefix": c.publicDelegatedPrefix, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.publicDelegatedPrefixes.announce", "request", internallog.HTTPRequest(req, nil)) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.projects.disableXpnHost" call. +// Do executes the "compute.publicDelegatedPrefixes.announce" call. // 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 *ProjectsDisableXpnHostCall) Do(opts ...googleapi.CallOption) (*Operation, error) { +func (c *PublicDelegatedPrefixesAnnounceCall) Do(opts ...googleapi.CallOption) (*Operation, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -53808,43 +78253,56 @@ func (c *ProjectsDisableXpnHostCall) Do(opts ...googleapi.CallOption) (*Operatio }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.publicDelegatedPrefixes.announce", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type ProjectsDisableXpnResourceCall struct { - s *Service - project string - projectsdisablexpnresourcerequest *ProjectsDisableXpnResourceRequest - urlParams_ gensupport.URLParams - ctx_ context.Context - header_ http.Header +type PublicDelegatedPrefixesDeleteCall struct { + s *Service + project string + region string + publicDelegatedPrefix string + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header } -// DisableXpnResource: Disable a service resource (also known as service -// project) associated with this host project. +// Delete: Deletes the specified PublicDelegatedPrefix in the given region. // -// - project: Project ID for this request. -func (r *ProjectsService) DisableXpnResource(project string, projectsdisablexpnresourcerequest *ProjectsDisableXpnResourceRequest) *ProjectsDisableXpnResourceCall { - c := &ProjectsDisableXpnResourceCall{s: r.s, urlParams_: make(gensupport.URLParams)} +// - project: Project ID for this request. +// - publicDelegatedPrefix: Name of the PublicDelegatedPrefix resource to +// delete. +// - region: Name of the region of this request. +func (r *PublicDelegatedPrefixesService) Delete(project string, region string, publicDelegatedPrefix string) *PublicDelegatedPrefixesDeleteCall { + c := &PublicDelegatedPrefixesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project - c.projectsdisablexpnresourcerequest = projectsdisablexpnresourcerequest + c.region = region + c.publicDelegatedPrefix = publicDelegatedPrefix 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 *ProjectsDisableXpnResourceCall) RequestId(requestId string) *ProjectsDisableXpnResourceCall { +// 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 *PublicDelegatedPrefixesDeleteCall) RequestId(requestId string) *PublicDelegatedPrefixesDeleteCall { c.urlParams_.Set("requestId", requestId) return c } @@ -53852,54 +78310,52 @@ func (c *ProjectsDisableXpnResourceCall) RequestId(requestId string) *ProjectsDi // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *ProjectsDisableXpnResourceCall) Fields(s ...googleapi.Field) *ProjectsDisableXpnResourceCall { +func (c *PublicDelegatedPrefixesDeleteCall) Fields(s ...googleapi.Field) *PublicDelegatedPrefixesDeleteCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } // Context sets the context to be used in this call's Do method. -func (c *ProjectsDisableXpnResourceCall) Context(ctx context.Context) *ProjectsDisableXpnResourceCall { +func (c *PublicDelegatedPrefixesDeleteCall) Context(ctx context.Context) *PublicDelegatedPrefixesDeleteCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *ProjectsDisableXpnResourceCall) Header() http.Header { +func (c *PublicDelegatedPrefixesDeleteCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *ProjectsDisableXpnResourceCall) doRequest(alt string) (*http.Response, error) { - reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) - var body io.Reader = nil - body, err := googleapi.WithoutDataWrapper.JSONReader(c.projectsdisablexpnresourcerequest) - if err != nil { - return nil, err - } +func (c *PublicDelegatedPrefixesDeleteCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/disableXpnResource") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/publicDelegatedPrefixes/{publicDelegatedPrefix}") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("POST", urls, body) + req, err := http.NewRequest("DELETE", urls, nil) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, + "project": c.project, + "region": c.region, + "publicDelegatedPrefix": c.publicDelegatedPrefix, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.publicDelegatedPrefixes.delete", "request", internallog.HTTPRequest(req, nil)) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.projects.disableXpnResource" call. +// Do executes the "compute.publicDelegatedPrefixes.delete" call. // 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 *ProjectsDisableXpnResourceCall) Do(opts ...googleapi.CallOption) (*Operation, error) { +func (c *PublicDelegatedPrefixesDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -53925,91 +78381,101 @@ func (c *ProjectsDisableXpnResourceCall) Do(opts ...googleapi.CallOption) (*Oper }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.publicDelegatedPrefixes.delete", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type ProjectsEnableXpnHostCall struct { - s *Service - project string - urlParams_ gensupport.URLParams - ctx_ context.Context - header_ http.Header +type PublicDelegatedPrefixesGetCall struct { + s *Service + project string + region string + publicDelegatedPrefix string + urlParams_ gensupport.URLParams + ifNoneMatch_ string + ctx_ context.Context + header_ http.Header } -// EnableXpnHost: Enable this project as a shared VPC host project. +// Get: Returns the specified PublicDelegatedPrefix resource in the given +// region. // -// - project: Project ID for this request. -func (r *ProjectsService) EnableXpnHost(project string) *ProjectsEnableXpnHostCall { - c := &ProjectsEnableXpnHostCall{s: r.s, urlParams_: make(gensupport.URLParams)} +// - project: Project ID for this request. +// - publicDelegatedPrefix: Name of the PublicDelegatedPrefix resource to +// return. +// - region: Name of the region of this request. +func (r *PublicDelegatedPrefixesService) Get(project string, region string, publicDelegatedPrefix string) *PublicDelegatedPrefixesGetCall { + c := &PublicDelegatedPrefixesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project - 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 *ProjectsEnableXpnHostCall) RequestId(requestId string) *ProjectsEnableXpnHostCall { - c.urlParams_.Set("requestId", requestId) + c.region = region + c.publicDelegatedPrefix = publicDelegatedPrefix return c } // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *ProjectsEnableXpnHostCall) Fields(s ...googleapi.Field) *ProjectsEnableXpnHostCall { +func (c *PublicDelegatedPrefixesGetCall) Fields(s ...googleapi.Field) *PublicDelegatedPrefixesGetCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } +// IfNoneMatch sets an 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. +func (c *PublicDelegatedPrefixesGetCall) IfNoneMatch(entityTag string) *PublicDelegatedPrefixesGetCall { + c.ifNoneMatch_ = entityTag + return c +} + // Context sets the context to be used in this call's Do method. -func (c *ProjectsEnableXpnHostCall) Context(ctx context.Context) *ProjectsEnableXpnHostCall { +func (c *PublicDelegatedPrefixesGetCall) Context(ctx context.Context) *PublicDelegatedPrefixesGetCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *ProjectsEnableXpnHostCall) Header() http.Header { +func (c *PublicDelegatedPrefixesGetCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *ProjectsEnableXpnHostCall) doRequest(alt string) (*http.Response, error) { +func (c *PublicDelegatedPrefixesGetCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) - var body io.Reader = nil + if c.ifNoneMatch_ != "" { + reqHeaders.Set("If-None-Match", c.ifNoneMatch_) + } c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/enableXpnHost") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/publicDelegatedPrefixes/{publicDelegatedPrefix}") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("POST", urls, body) + req, err := http.NewRequest("GET", urls, nil) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, + "project": c.project, + "region": c.region, + "publicDelegatedPrefix": c.publicDelegatedPrefix, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.publicDelegatedPrefixes.get", "request", internallog.HTTPRequest(req, nil)) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.projects.enableXpnHost" call. +// Do executes the "compute.publicDelegatedPrefixes.get" call. // 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 *ProjectsEnableXpnHostCall) Do(opts ...googleapi.CallOption) (*Operation, error) { +// *PublicDelegatedPrefix.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 *PublicDelegatedPrefixesGetCall) Do(opts ...googleapi.CallOption) (*PublicDelegatedPrefix, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -54028,51 +78494,63 @@ func (c *ProjectsEnableXpnHostCall) Do(opts ...googleapi.CallOption) (*Operation if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } - ret := &Operation{ + ret := &PublicDelegatedPrefix{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.publicDelegatedPrefixes.get", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type ProjectsEnableXpnResourceCall struct { - s *Service - project string - projectsenablexpnresourcerequest *ProjectsEnableXpnResourceRequest - urlParams_ gensupport.URLParams - ctx_ context.Context - header_ http.Header +type PublicDelegatedPrefixesInsertCall struct { + s *Service + project string + region string + publicdelegatedprefix *PublicDelegatedPrefix + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header } -// EnableXpnResource: Enable service resource (a.k.a service project) for a -// host project, so that subnets in the host project can be used by instances -// in the service project. +// Insert: Creates a PublicDelegatedPrefix in the specified project in the +// given +// region using the parameters that are included in the request. // // - project: Project ID for this request. -func (r *ProjectsService) EnableXpnResource(project string, projectsenablexpnresourcerequest *ProjectsEnableXpnResourceRequest) *ProjectsEnableXpnResourceCall { - c := &ProjectsEnableXpnResourceCall{s: r.s, urlParams_: make(gensupport.URLParams)} +// - region: Name of the region of this request. +func (r *PublicDelegatedPrefixesService) Insert(project string, region string, publicdelegatedprefix *PublicDelegatedPrefix) *PublicDelegatedPrefixesInsertCall { + c := &PublicDelegatedPrefixesInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project - c.projectsenablexpnresourcerequest = projectsenablexpnresourcerequest + c.region = region + c.publicdelegatedprefix = publicdelegatedprefix 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 *ProjectsEnableXpnResourceCall) RequestId(requestId string) *ProjectsEnableXpnResourceCall { +// 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 *PublicDelegatedPrefixesInsertCall) RequestId(requestId string) *PublicDelegatedPrefixesInsertCall { c.urlParams_.Set("requestId", requestId) return c } @@ -54080,36 +78558,35 @@ func (c *ProjectsEnableXpnResourceCall) RequestId(requestId string) *ProjectsEna // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *ProjectsEnableXpnResourceCall) Fields(s ...googleapi.Field) *ProjectsEnableXpnResourceCall { +func (c *PublicDelegatedPrefixesInsertCall) Fields(s ...googleapi.Field) *PublicDelegatedPrefixesInsertCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } // Context sets the context to be used in this call's Do method. -func (c *ProjectsEnableXpnResourceCall) Context(ctx context.Context) *ProjectsEnableXpnResourceCall { +func (c *PublicDelegatedPrefixesInsertCall) Context(ctx context.Context) *PublicDelegatedPrefixesInsertCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *ProjectsEnableXpnResourceCall) Header() http.Header { +func (c *PublicDelegatedPrefixesInsertCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *ProjectsEnableXpnResourceCall) doRequest(alt string) (*http.Response, error) { +func (c *PublicDelegatedPrefixesInsertCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) - var body io.Reader = nil - body, err := googleapi.WithoutDataWrapper.JSONReader(c.projectsenablexpnresourcerequest) + body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.publicdelegatedprefix) if err != nil { return nil, err } c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/enableXpnResource") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/publicDelegatedPrefixes") urls += "?" + c.urlParams_.Encode() req, err := http.NewRequest("POST", urls, body) if err != nil { @@ -54118,16 +78595,18 @@ func (c *ProjectsEnableXpnResourceCall) doRequest(alt string) (*http.Response, e req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ "project": c.project, + "region": c.region, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.publicDelegatedPrefixes.insert", "request", internallog.HTTPRequest(req, body.Bytes())) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.projects.enableXpnResource" call. +// Do executes the "compute.publicDelegatedPrefixes.insert" call. // 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 *ProjectsEnableXpnResourceCall) Do(opts ...googleapi.CallOption) (*Operation, error) { +func (c *PublicDelegatedPrefixesInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -54153,40 +78632,167 @@ func (c *ProjectsEnableXpnResourceCall) Do(opts ...googleapi.CallOption) (*Opera }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.publicDelegatedPrefixes.insert", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type ProjectsGetCall struct { +type PublicDelegatedPrefixesListCall struct { s *Service project string + region string urlParams_ gensupport.URLParams ifNoneMatch_ string ctx_ context.Context header_ http.Header } -// Get: Returns the specified Project resource. To decrease latency for this -// method, you can optionally omit any unneeded information from the response -// by using a field mask. This practice is especially recommended for unused -// quota information (the `quotas` field). To exclude one or more fields, set -// your request's `fields` query parameter to only include the fields you need. -// For example, to only include the `id` and `selfLink` fields, add the query -// parameter `?fields=id,selfLink` to your request. +// List: Lists the PublicDelegatedPrefixes for a project in the given region. // // - project: Project ID for this request. -func (r *ProjectsService) Get(project string) *ProjectsGetCall { - c := &ProjectsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)} +// - region: Name of the region of this request. +func (r *PublicDelegatedPrefixesService) List(project string, region string) *PublicDelegatedPrefixesListCall { + c := &PublicDelegatedPrefixesListCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project + c.region = region + return c +} + +// Filter sets the optional parameter "filter": A filter expression that +// filters resources listed in the response. Most +// Compute resources support two types of filter expressions: +// expressions that support regular expressions and expressions that follow +// API improvement proposal AIP-160. +// These two types of filter expressions cannot be mixed in one request. +// +// If you want to use AIP-160, your expression must specify the field name, +// an +// operator, and the value that you want to use for filtering. The value +// must be a string, a number, or a boolean. The 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`. +// +// The `:*` comparison can be used to test whether a key has been defined. +// For example, to find all objects with `owner` label +// use: +// ``` +// labels.owner:* +// ``` +// +// 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 onresource 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) +// ``` +// +// If you want to use a regular expression, use the `eq` (equal) or `ne` +// (not equal) operator against a single un-parenthesized expression with +// or +// without quotes or against multiple parenthesized expressions. +// Examples: +// +// `fieldname eq unquoted literal` +// `fieldname eq 'single quoted literal'` +// `fieldname eq "double quoted literal" +// `(fieldname1 eq literal) (fieldname2 ne "literal")` +// +// The literal value is interpreted as a regular expression using GoogleRE2 +// library syntax. +// The literal value must match the entire field. +// +// For example, to filter for instances that do not end with name +// "instance", +// you would use `name ne .*instance`. +// +// You cannot combine constraints on multiple fields using regular +// expressions. +func (c *PublicDelegatedPrefixesListCall) Filter(filter string) *PublicDelegatedPrefixesListCall { + 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 *PublicDelegatedPrefixesListCall) MaxResults(maxResults int64) *PublicDelegatedPrefixesListCall { + 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 *PublicDelegatedPrefixesListCall) OrderBy(orderBy string) *PublicDelegatedPrefixesListCall { + 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 *PublicDelegatedPrefixesListCall) PageToken(pageToken string) *PublicDelegatedPrefixesListCall { + c.urlParams_.Set("pageToken", pageToken) + return c +} + +// ReturnPartialSuccess sets the optional parameter "returnPartialSuccess": +// Opt-in for partial success behavior which provides partial results in +// case +// of failure. The default value is false. +// +// For example, when partial success behavior is enabled, aggregatedList for +// a +// single zone scope either returns all resources in the zone or no +// resources, +// with an error code. +func (c *PublicDelegatedPrefixesListCall) ReturnPartialSuccess(returnPartialSuccess bool) *PublicDelegatedPrefixesListCall { + c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess)) return c } // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *ProjectsGetCall) Fields(s ...googleapi.Field) *ProjectsGetCall { +func (c *PublicDelegatedPrefixesListCall) Fields(s ...googleapi.Field) *PublicDelegatedPrefixesListCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } @@ -54194,53 +78800,55 @@ func (c *ProjectsGetCall) Fields(s ...googleapi.Field) *ProjectsGetCall { // IfNoneMatch sets an 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. -func (c *ProjectsGetCall) IfNoneMatch(entityTag string) *ProjectsGetCall { +func (c *PublicDelegatedPrefixesListCall) IfNoneMatch(entityTag string) *PublicDelegatedPrefixesListCall { c.ifNoneMatch_ = entityTag return c } // Context sets the context to be used in this call's Do method. -func (c *ProjectsGetCall) Context(ctx context.Context) *ProjectsGetCall { +func (c *PublicDelegatedPrefixesListCall) Context(ctx context.Context) *PublicDelegatedPrefixesListCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *ProjectsGetCall) Header() http.Header { +func (c *PublicDelegatedPrefixesListCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *ProjectsGetCall) doRequest(alt string) (*http.Response, error) { +func (c *PublicDelegatedPrefixesListCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) if c.ifNoneMatch_ != "" { reqHeaders.Set("If-None-Match", c.ifNoneMatch_) } - var body io.Reader = nil c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/publicDelegatedPrefixes") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("GET", urls, body) + req, err := http.NewRequest("GET", urls, nil) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ "project": c.project, + "region": c.region, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.publicDelegatedPrefixes.list", "request", internallog.HTTPRequest(req, nil)) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.projects.get" call. +// Do executes the "compute.publicDelegatedPrefixes.list" call. // Any non-2xx status code is an error. Response headers are in either -// *Project.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 *ProjectsGetCall) Do(opts ...googleapi.CallOption) (*Project, error) { +// *PublicDelegatedPrefixList.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 *PublicDelegatedPrefixesListCall) Do(opts ...googleapi.CallOption) (*PublicDelegatedPrefixList, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -54259,96 +78867,147 @@ func (c *ProjectsGetCall) Do(opts ...googleapi.CallOption) (*Project, error) { if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } - ret := &Project{ + ret := &PublicDelegatedPrefixList{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.publicDelegatedPrefixes.list", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type ProjectsGetXpnHostCall struct { - s *Service - project string - urlParams_ gensupport.URLParams - ifNoneMatch_ string - ctx_ context.Context - header_ http.Header +// 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 *PublicDelegatedPrefixesListCall) Pages(ctx context.Context, f func(*PublicDelegatedPrefixList) error) error { + c.ctx_ = ctx + defer c.PageToken(c.urlParams_.Get("pageToken")) + 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) + } } -// GetXpnHost: Gets the shared VPC host project that this project links to. May -// be empty if no link exists. +type PublicDelegatedPrefixesPatchCall struct { + s *Service + project string + region string + publicDelegatedPrefix string + publicdelegatedprefix *PublicDelegatedPrefix + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header +} + +// Patch: Patches the specified PublicDelegatedPrefix resource with the data +// included +// in the request. This method supportsPATCH +// semantics and usesJSON merge +// patch format and processing rules. // -// - project: Project ID for this request. -func (r *ProjectsService) GetXpnHost(project string) *ProjectsGetXpnHostCall { - c := &ProjectsGetXpnHostCall{s: r.s, urlParams_: make(gensupport.URLParams)} +// - project: Project ID for this request. +// - publicDelegatedPrefix: Name of the PublicDelegatedPrefix resource to +// patch. +// - region: Name of the region for this request. +func (r *PublicDelegatedPrefixesService) Patch(project string, region string, publicDelegatedPrefix string, publicdelegatedprefix *PublicDelegatedPrefix) *PublicDelegatedPrefixesPatchCall { + c := &PublicDelegatedPrefixesPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project + c.region = region + c.publicDelegatedPrefix = publicDelegatedPrefix + c.publicdelegatedprefix = publicdelegatedprefix + 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 *PublicDelegatedPrefixesPatchCall) RequestId(requestId string) *PublicDelegatedPrefixesPatchCall { + 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 // details. -func (c *ProjectsGetXpnHostCall) Fields(s ...googleapi.Field) *ProjectsGetXpnHostCall { +func (c *PublicDelegatedPrefixesPatchCall) Fields(s ...googleapi.Field) *PublicDelegatedPrefixesPatchCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } -// IfNoneMatch sets an 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. -func (c *ProjectsGetXpnHostCall) IfNoneMatch(entityTag string) *ProjectsGetXpnHostCall { - c.ifNoneMatch_ = entityTag - return c -} - // Context sets the context to be used in this call's Do method. -func (c *ProjectsGetXpnHostCall) Context(ctx context.Context) *ProjectsGetXpnHostCall { +func (c *PublicDelegatedPrefixesPatchCall) Context(ctx context.Context) *PublicDelegatedPrefixesPatchCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *ProjectsGetXpnHostCall) Header() http.Header { +func (c *PublicDelegatedPrefixesPatchCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *ProjectsGetXpnHostCall) doRequest(alt string) (*http.Response, error) { - reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) - if c.ifNoneMatch_ != "" { - reqHeaders.Set("If-None-Match", c.ifNoneMatch_) +func (c *PublicDelegatedPrefixesPatchCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) + body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.publicdelegatedprefix) + if err != nil { + return nil, err } - var body io.Reader = nil c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/getXpnHost") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/publicDelegatedPrefixes/{publicDelegatedPrefix}") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("GET", urls, body) + req, err := http.NewRequest("PATCH", urls, body) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, + "project": c.project, + "region": c.region, + "publicDelegatedPrefix": c.publicDelegatedPrefix, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.publicDelegatedPrefixes.patch", "request", internallog.HTTPRequest(req, body.Bytes())) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.projects.getXpnHost" call. +// Do executes the "compute.publicDelegatedPrefixes.patch" call. // Any non-2xx status code is an error. Response headers are in either -// *Project.ServerResponse.Header or (if a response was returned at all) in +// *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 *ProjectsGetXpnHostCall) Do(opts ...googleapi.CallOption) (*Project, error) { +func (c *PublicDelegatedPrefixesPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -54367,175 +79026,117 @@ func (c *ProjectsGetXpnHostCall) Do(opts ...googleapi.CallOption) (*Project, err if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } - ret := &Project{ + ret := &Operation{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.publicDelegatedPrefixes.patch", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type ProjectsGetXpnResourcesCall struct { - s *Service - project string - urlParams_ gensupport.URLParams - ifNoneMatch_ string - ctx_ context.Context - header_ http.Header +type PublicDelegatedPrefixesWithdrawCall struct { + s *Service + project string + region string + publicDelegatedPrefix string + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header } -// GetXpnResources: Gets service resources (a.k.a service project) associated -// with this host project. +// Withdraw: Withdraws the specified PublicDelegatedPrefix in the given region. // -// - project: Project ID for this request. -func (r *ProjectsService) GetXpnResources(project string) *ProjectsGetXpnResourcesCall { - c := &ProjectsGetXpnResourcesCall{s: r.s, urlParams_: make(gensupport.URLParams)} +// - project: Project ID for this request. +// - publicDelegatedPrefix: The name of the public delegated prefix. It should +// comply with RFC1035. +// - region: The name of theregion where +// the public delegated prefix is located. It should comply with RFC1035. +func (r *PublicDelegatedPrefixesService) Withdraw(project string, region string, publicDelegatedPrefix string) *PublicDelegatedPrefixesWithdrawCall { + c := &PublicDelegatedPrefixesWithdrawCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project + c.region = region + c.publicDelegatedPrefix = publicDelegatedPrefix return c } -// Filter sets the optional parameter "filter": A filter expression that -// filters resources listed in the response. Most Compute resources support two -// types of filter expressions: expressions that support regular expressions -// and expressions that follow API improvement proposal AIP-160. These two -// types of filter expressions cannot be mixed in one request. If you want to -// use AIP-160, your expression must specify the field name, an operator, and -// the value that you want to use for filtering. The value must be a string, a -// number, or a boolean. The 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`. The `:*` comparison can be used to test whether a key has -// been defined. For example, to find all objects with `owner` label use: ``` -// labels.owner:* ``` 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) ``` If you want to use a regular -// expression, use the `eq` (equal) or `ne` (not equal) operator against a -// single un-parenthesized expression with or without quotes or against -// multiple parenthesized expressions. Examples: `fieldname eq unquoted -// literal` `fieldname eq 'single quoted literal'` `fieldname eq "double quoted -// literal" `(fieldname1 eq literal) (fieldname2 ne "literal")` The literal -// value is interpreted as a regular expression using Google RE2 library -// syntax. The literal value must match the entire field. For example, to -// filter for instances that do not end with name "instance", you would use -// `name ne .*instance`. You cannot combine constraints on multiple fields -// using regular expressions. -func (c *ProjectsGetXpnResourcesCall) Filter(filter string) *ProjectsGetXpnResourcesCall { - 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 *ProjectsGetXpnResourcesCall) MaxResults(maxResults int64) *ProjectsGetXpnResourcesCall { - 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 *ProjectsGetXpnResourcesCall) OrderBy(orderBy string) *ProjectsGetXpnResourcesCall { - 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 *ProjectsGetXpnResourcesCall) PageToken(pageToken string) *ProjectsGetXpnResourcesCall { - c.urlParams_.Set("pageToken", pageToken) - return c -} - -// ReturnPartialSuccess sets the optional parameter "returnPartialSuccess": -// Opt-in for partial success behavior which provides partial results in case -// of failure. The default value is false. For example, when partial success -// behavior is enabled, aggregatedList for a single zone scope either returns -// all resources in the zone or no resources, with an error code. -func (c *ProjectsGetXpnResourcesCall) ReturnPartialSuccess(returnPartialSuccess bool) *ProjectsGetXpnResourcesCall { - c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess)) +// 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 *PublicDelegatedPrefixesWithdrawCall) RequestId(requestId string) *PublicDelegatedPrefixesWithdrawCall { + 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 // details. -func (c *ProjectsGetXpnResourcesCall) Fields(s ...googleapi.Field) *ProjectsGetXpnResourcesCall { +func (c *PublicDelegatedPrefixesWithdrawCall) Fields(s ...googleapi.Field) *PublicDelegatedPrefixesWithdrawCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } -// IfNoneMatch sets an 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. -func (c *ProjectsGetXpnResourcesCall) IfNoneMatch(entityTag string) *ProjectsGetXpnResourcesCall { - c.ifNoneMatch_ = entityTag - return c -} - // Context sets the context to be used in this call's Do method. -func (c *ProjectsGetXpnResourcesCall) Context(ctx context.Context) *ProjectsGetXpnResourcesCall { +func (c *PublicDelegatedPrefixesWithdrawCall) Context(ctx context.Context) *PublicDelegatedPrefixesWithdrawCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *ProjectsGetXpnResourcesCall) Header() http.Header { +func (c *PublicDelegatedPrefixesWithdrawCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *ProjectsGetXpnResourcesCall) doRequest(alt string) (*http.Response, error) { +func (c *PublicDelegatedPrefixesWithdrawCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) - if c.ifNoneMatch_ != "" { - reqHeaders.Set("If-None-Match", c.ifNoneMatch_) - } - var body io.Reader = nil c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/getXpnResources") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/publicDelegatedPrefixes/{publicDelegatedPrefix}/withdraw") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("GET", urls, body) + req, err := http.NewRequest("POST", urls, nil) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, + "project": c.project, + "region": c.region, + "publicDelegatedPrefix": c.publicDelegatedPrefix, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.publicDelegatedPrefixes.withdraw", "request", internallog.HTTPRequest(req, nil)) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.projects.getXpnResources" call. +// Do executes the "compute.publicDelegatedPrefixes.withdraw" call. // Any non-2xx status code is an error. Response headers are in either -// *ProjectsGetXpnResources.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 *ProjectsGetXpnResourcesCall) Do(opts ...googleapi.CallOption) (*ProjectsGetXpnResources, error) { +// *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 *PublicDelegatedPrefixesWithdrawCall) Do(opts ...googleapi.CallOption) (*Operation, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -54554,189 +79155,115 @@ func (c *ProjectsGetXpnResourcesCall) Do(opts ...googleapi.CallOption) (*Project if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } - ret := &ProjectsGetXpnResources{ + ret := &Operation{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.publicDelegatedPrefixes.withdraw", "response", internallog.HTTPResponse(res, b)) return ret, nil } -// 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 *ProjectsGetXpnResourcesCall) Pages(ctx context.Context, f func(*ProjectsGetXpnResources) error) error { - c.ctx_ = ctx - defer c.PageToken(c.urlParams_.Get("pageToken")) - 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) - } -} - -type ProjectsListXpnHostsCall struct { - s *Service - project string - projectslistxpnhostsrequest *ProjectsListXpnHostsRequest - urlParams_ gensupport.URLParams - ctx_ context.Context - header_ http.Header +type RegionAutoscalersDeleteCall struct { + s *Service + project string + region string + autoscaler string + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header } -// ListXpnHosts: Lists all shared VPC host projects visible to the user in an -// organization. +// Delete: Deletes the specified autoscaler. // +// - autoscaler: Name of the autoscaler to delete. // - project: Project ID for this request. -func (r *ProjectsService) ListXpnHosts(project string, projectslistxpnhostsrequest *ProjectsListXpnHostsRequest) *ProjectsListXpnHostsCall { - c := &ProjectsListXpnHostsCall{s: r.s, urlParams_: make(gensupport.URLParams)} +// - region: Name of the region scoping this request. +func (r *RegionAutoscalersService) Delete(project string, region string, autoscaler string) *RegionAutoscalersDeleteCall { + c := &RegionAutoscalersDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project - c.projectslistxpnhostsrequest = projectslistxpnhostsrequest - return c -} - -// Filter sets the optional parameter "filter": A filter expression that -// filters resources listed in the response. Most Compute resources support two -// types of filter expressions: expressions that support regular expressions -// and expressions that follow API improvement proposal AIP-160. These two -// types of filter expressions cannot be mixed in one request. If you want to -// use AIP-160, your expression must specify the field name, an operator, and -// the value that you want to use for filtering. The value must be a string, a -// number, or a boolean. The 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`. The `:*` comparison can be used to test whether a key has -// been defined. For example, to find all objects with `owner` label use: ``` -// labels.owner:* ``` 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) ``` If you want to use a regular -// expression, use the `eq` (equal) or `ne` (not equal) operator against a -// single un-parenthesized expression with or without quotes or against -// multiple parenthesized expressions. Examples: `fieldname eq unquoted -// literal` `fieldname eq 'single quoted literal'` `fieldname eq "double quoted -// literal" `(fieldname1 eq literal) (fieldname2 ne "literal")` The literal -// value is interpreted as a regular expression using Google RE2 library -// syntax. The literal value must match the entire field. For example, to -// filter for instances that do not end with name "instance", you would use -// `name ne .*instance`. You cannot combine constraints on multiple fields -// using regular expressions. -func (c *ProjectsListXpnHostsCall) Filter(filter string) *ProjectsListXpnHostsCall { - 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 *ProjectsListXpnHostsCall) MaxResults(maxResults int64) *ProjectsListXpnHostsCall { - 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 *ProjectsListXpnHostsCall) OrderBy(orderBy string) *ProjectsListXpnHostsCall { - 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 *ProjectsListXpnHostsCall) PageToken(pageToken string) *ProjectsListXpnHostsCall { - c.urlParams_.Set("pageToken", pageToken) + c.region = region + c.autoscaler = autoscaler return c } -// ReturnPartialSuccess sets the optional parameter "returnPartialSuccess": -// Opt-in for partial success behavior which provides partial results in case -// of failure. The default value is false. For example, when partial success -// behavior is enabled, aggregatedList for a single zone scope either returns -// all resources in the zone or no resources, with an error code. -func (c *ProjectsListXpnHostsCall) ReturnPartialSuccess(returnPartialSuccess bool) *ProjectsListXpnHostsCall { - c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess)) +// 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 *RegionAutoscalersDeleteCall) RequestId(requestId string) *RegionAutoscalersDeleteCall { + 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 // details. -func (c *ProjectsListXpnHostsCall) Fields(s ...googleapi.Field) *ProjectsListXpnHostsCall { +func (c *RegionAutoscalersDeleteCall) Fields(s ...googleapi.Field) *RegionAutoscalersDeleteCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } // Context sets the context to be used in this call's Do method. -func (c *ProjectsListXpnHostsCall) Context(ctx context.Context) *ProjectsListXpnHostsCall { +func (c *RegionAutoscalersDeleteCall) Context(ctx context.Context) *RegionAutoscalersDeleteCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *ProjectsListXpnHostsCall) Header() http.Header { +func (c *RegionAutoscalersDeleteCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *ProjectsListXpnHostsCall) doRequest(alt string) (*http.Response, error) { - reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) - var body io.Reader = nil - body, err := googleapi.WithoutDataWrapper.JSONReader(c.projectslistxpnhostsrequest) - if err != nil { - return nil, err - } +func (c *RegionAutoscalersDeleteCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/listXpnHosts") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/autoscalers/{autoscaler}") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("POST", urls, body) + req, err := http.NewRequest("DELETE", urls, nil) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, + "project": c.project, + "region": c.region, + "autoscaler": c.autoscaler, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.regionAutoscalers.delete", "request", internallog.HTTPRequest(req, nil)) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.projects.listXpnHosts" call. +// Do executes the "compute.regionAutoscalers.delete" call. // Any non-2xx status code is an error. Response headers are in either -// *XpnHostList.ServerResponse.Header or (if a response was returned at all) in +// *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 *ProjectsListXpnHostsCall) Do(opts ...googleapi.CallOption) (*XpnHostList, error) { +func (c *RegionAutoscalersDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -54755,125 +79282,105 @@ func (c *ProjectsListXpnHostsCall) Do(opts ...googleapi.CallOption) (*XpnHostLis if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } - ret := &XpnHostList{ + ret := &Operation{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.regionAutoscalers.delete", "response", internallog.HTTPResponse(res, b)) return ret, nil } -// 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 *ProjectsListXpnHostsCall) Pages(ctx context.Context, f func(*XpnHostList) error) error { - c.ctx_ = ctx - defer c.PageToken(c.urlParams_.Get("pageToken")) - 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) - } -} - -type ProjectsMoveDiskCall struct { - s *Service - project string - diskmoverequest *DiskMoveRequest - urlParams_ gensupport.URLParams - ctx_ context.Context - header_ http.Header +type RegionAutoscalersGetCall struct { + s *Service + project string + region string + autoscaler string + urlParams_ gensupport.URLParams + ifNoneMatch_ string + ctx_ context.Context + header_ http.Header } -// MoveDisk: Moves a persistent disk from one zone to another. +// Get: Returns the specified autoscaler. // +// - autoscaler: Name of the autoscaler to return. // - project: Project ID for this request. -func (r *ProjectsService) MoveDisk(project string, diskmoverequest *DiskMoveRequest) *ProjectsMoveDiskCall { - c := &ProjectsMoveDiskCall{s: r.s, urlParams_: make(gensupport.URLParams)} +// - region: Name of the region scoping this request. +func (r *RegionAutoscalersService) Get(project string, region string, autoscaler string) *RegionAutoscalersGetCall { + c := &RegionAutoscalersGetCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project - c.diskmoverequest = diskmoverequest - 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 *ProjectsMoveDiskCall) RequestId(requestId string) *ProjectsMoveDiskCall { - c.urlParams_.Set("requestId", requestId) + c.region = region + c.autoscaler = autoscaler return c } // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *ProjectsMoveDiskCall) Fields(s ...googleapi.Field) *ProjectsMoveDiskCall { +func (c *RegionAutoscalersGetCall) Fields(s ...googleapi.Field) *RegionAutoscalersGetCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } +// IfNoneMatch sets an 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. +func (c *RegionAutoscalersGetCall) IfNoneMatch(entityTag string) *RegionAutoscalersGetCall { + c.ifNoneMatch_ = entityTag + return c +} + // Context sets the context to be used in this call's Do method. -func (c *ProjectsMoveDiskCall) Context(ctx context.Context) *ProjectsMoveDiskCall { +func (c *RegionAutoscalersGetCall) Context(ctx context.Context) *RegionAutoscalersGetCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *ProjectsMoveDiskCall) Header() http.Header { +func (c *RegionAutoscalersGetCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *ProjectsMoveDiskCall) doRequest(alt string) (*http.Response, error) { - reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) - var body io.Reader = nil - body, err := googleapi.WithoutDataWrapper.JSONReader(c.diskmoverequest) - if err != nil { - return nil, err +func (c *RegionAutoscalersGetCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) + if c.ifNoneMatch_ != "" { + reqHeaders.Set("If-None-Match", c.ifNoneMatch_) } c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/moveDisk") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/autoscalers/{autoscaler}") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("POST", urls, body) + req, err := http.NewRequest("GET", urls, nil) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, + "project": c.project, + "region": c.region, + "autoscaler": c.autoscaler, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.regionAutoscalers.get", "request", internallog.HTTPRequest(req, nil)) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.projects.moveDisk" call. +// Do executes the "compute.regionAutoscalers.get" call. // 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 +// *Autoscaler.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 *ProjectsMoveDiskCall) Do(opts ...googleapi.CallOption) (*Operation, error) { +func (c *RegionAutoscalersGetCall) Do(opts ...googleapi.CallOption) (*Autoscaler, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -54892,55 +79399,62 @@ func (c *ProjectsMoveDiskCall) Do(opts ...googleapi.CallOption) (*Operation, err if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } - ret := &Operation{ + ret := &Autoscaler{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.regionAutoscalers.get", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type ProjectsMoveInstanceCall struct { - s *Service - project string - instancemoverequest *InstanceMoveRequest - urlParams_ gensupport.URLParams - ctx_ context.Context - header_ http.Header +type RegionAutoscalersInsertCall struct { + s *Service + project string + region string + autoscaler *Autoscaler + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header } -// MoveInstance: Moves an instance and its attached persistent disks from one -// zone to another. *Note*: Moving VMs or disks by using this method might -// cause unexpected behavior. For more information, see the known issue -// (/compute/docs/troubleshooting/known-issues#moving_vms_or_disks_using_the_mov -// einstance_api_or_the_causes_unexpected_behavior). [Deprecated] This method -// is deprecated. See moving instance across zones -// (/compute/docs/instances/moving-instance-across-zones) instead. +// Insert: Creates an autoscaler in the specified project using +// the data included in the request. // // - project: Project ID for this request. -func (r *ProjectsService) MoveInstance(project string, instancemoverequest *InstanceMoveRequest) *ProjectsMoveInstanceCall { - c := &ProjectsMoveInstanceCall{s: r.s, urlParams_: make(gensupport.URLParams)} +// - region: Name of the region scoping this request. +func (r *RegionAutoscalersService) Insert(project string, region string, autoscaler *Autoscaler) *RegionAutoscalersInsertCall { + c := &RegionAutoscalersInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project - c.instancemoverequest = instancemoverequest + c.region = region + c.autoscaler = autoscaler 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 *ProjectsMoveInstanceCall) RequestId(requestId string) *ProjectsMoveInstanceCall { +// 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 *RegionAutoscalersInsertCall) RequestId(requestId string) *RegionAutoscalersInsertCall { c.urlParams_.Set("requestId", requestId) return c } @@ -54948,36 +79462,35 @@ func (c *ProjectsMoveInstanceCall) RequestId(requestId string) *ProjectsMoveInst // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *ProjectsMoveInstanceCall) Fields(s ...googleapi.Field) *ProjectsMoveInstanceCall { +func (c *RegionAutoscalersInsertCall) Fields(s ...googleapi.Field) *RegionAutoscalersInsertCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } // Context sets the context to be used in this call's Do method. -func (c *ProjectsMoveInstanceCall) Context(ctx context.Context) *ProjectsMoveInstanceCall { +func (c *RegionAutoscalersInsertCall) Context(ctx context.Context) *RegionAutoscalersInsertCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *ProjectsMoveInstanceCall) Header() http.Header { +func (c *RegionAutoscalersInsertCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *ProjectsMoveInstanceCall) doRequest(alt string) (*http.Response, error) { +func (c *RegionAutoscalersInsertCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) - var body io.Reader = nil - body, err := googleapi.WithoutDataWrapper.JSONReader(c.instancemoverequest) + body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.autoscaler) if err != nil { return nil, err } c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/moveInstance") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/autoscalers") urls += "?" + c.urlParams_.Encode() req, err := http.NewRequest("POST", urls, body) if err != nil { @@ -54986,16 +79499,18 @@ func (c *ProjectsMoveInstanceCall) doRequest(alt string) (*http.Response, error) req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ "project": c.project, + "region": c.region, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.regionAutoscalers.insert", "request", internallog.HTTPRequest(req, body.Bytes())) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.projects.moveInstance" call. +// Do executes the "compute.regionAutoscalers.insert" call. // 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 *ProjectsMoveInstanceCall) Do(opts ...googleapi.CallOption) (*Operation, error) { +func (c *RegionAutoscalersInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -55021,100 +79536,224 @@ func (c *ProjectsMoveInstanceCall) Do(opts ...googleapi.CallOption) (*Operation, }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.regionAutoscalers.insert", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type ProjectsSetCloudArmorTierCall struct { - s *Service - project string - projectssetcloudarmortierrequest *ProjectsSetCloudArmorTierRequest - urlParams_ gensupport.URLParams - ctx_ context.Context - header_ http.Header +type RegionAutoscalersListCall struct { + s *Service + project string + region string + urlParams_ gensupport.URLParams + ifNoneMatch_ string + ctx_ context.Context + header_ http.Header } -// SetCloudArmorTier: Sets the Cloud Armor tier of the project. To set -// ENTERPRISE or above the billing account of the project must be subscribed to -// Cloud Armor Enterprise. See Subscribing to Cloud Armor Enterprise for more -// information. +// List: Retrieves a list of autoscalers contained within +// the specified region. // // - project: Project ID for this request. -func (r *ProjectsService) SetCloudArmorTier(project string, projectssetcloudarmortierrequest *ProjectsSetCloudArmorTierRequest) *ProjectsSetCloudArmorTierCall { - c := &ProjectsSetCloudArmorTierCall{s: r.s, urlParams_: make(gensupport.URLParams)} +// - region: Name of the region scoping this request. +func (r *RegionAutoscalersService) List(project string, region string) *RegionAutoscalersListCall { + c := &RegionAutoscalersListCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project - c.projectssetcloudarmortierrequest = projectssetcloudarmortierrequest + c.region = region 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 *ProjectsSetCloudArmorTierCall) RequestId(requestId string) *ProjectsSetCloudArmorTierCall { - c.urlParams_.Set("requestId", requestId) +// Filter sets the optional parameter "filter": A filter expression that +// filters resources listed in the response. Most +// Compute resources support two types of filter expressions: +// expressions that support regular expressions and expressions that follow +// API improvement proposal AIP-160. +// These two types of filter expressions cannot be mixed in one request. +// +// If you want to use AIP-160, your expression must specify the field name, +// an +// operator, and the value that you want to use for filtering. The value +// must be a string, a number, or a boolean. The 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`. +// +// The `:*` comparison can be used to test whether a key has been defined. +// For example, to find all objects with `owner` label +// use: +// ``` +// labels.owner:* +// ``` +// +// 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 onresource 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) +// ``` +// +// If you want to use a regular expression, use the `eq` (equal) or `ne` +// (not equal) operator against a single un-parenthesized expression with +// or +// without quotes or against multiple parenthesized expressions. +// Examples: +// +// `fieldname eq unquoted literal` +// `fieldname eq 'single quoted literal'` +// `fieldname eq "double quoted literal" +// `(fieldname1 eq literal) (fieldname2 ne "literal")` +// +// The literal value is interpreted as a regular expression using GoogleRE2 +// library syntax. +// The literal value must match the entire field. +// +// For example, to filter for instances that do not end with name +// "instance", +// you would use `name ne .*instance`. +// +// You cannot combine constraints on multiple fields using regular +// expressions. +func (c *RegionAutoscalersListCall) Filter(filter string) *RegionAutoscalersListCall { + 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 *RegionAutoscalersListCall) MaxResults(maxResults int64) *RegionAutoscalersListCall { + 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 *RegionAutoscalersListCall) OrderBy(orderBy string) *RegionAutoscalersListCall { + 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 *RegionAutoscalersListCall) PageToken(pageToken string) *RegionAutoscalersListCall { + c.urlParams_.Set("pageToken", pageToken) + return c +} + +// ReturnPartialSuccess sets the optional parameter "returnPartialSuccess": +// Opt-in for partial success behavior which provides partial results in +// case +// of failure. The default value is false. +// +// For example, when partial success behavior is enabled, aggregatedList for +// a +// single zone scope either returns all resources in the zone or no +// resources, +// with an error code. +func (c *RegionAutoscalersListCall) ReturnPartialSuccess(returnPartialSuccess bool) *RegionAutoscalersListCall { + c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess)) return c } // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *ProjectsSetCloudArmorTierCall) Fields(s ...googleapi.Field) *ProjectsSetCloudArmorTierCall { +func (c *RegionAutoscalersListCall) Fields(s ...googleapi.Field) *RegionAutoscalersListCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } +// IfNoneMatch sets an 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. +func (c *RegionAutoscalersListCall) IfNoneMatch(entityTag string) *RegionAutoscalersListCall { + c.ifNoneMatch_ = entityTag + return c +} + // Context sets the context to be used in this call's Do method. -func (c *ProjectsSetCloudArmorTierCall) Context(ctx context.Context) *ProjectsSetCloudArmorTierCall { +func (c *RegionAutoscalersListCall) Context(ctx context.Context) *RegionAutoscalersListCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *ProjectsSetCloudArmorTierCall) Header() http.Header { +func (c *RegionAutoscalersListCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *ProjectsSetCloudArmorTierCall) doRequest(alt string) (*http.Response, error) { - reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) - var body io.Reader = nil - body, err := googleapi.WithoutDataWrapper.JSONReader(c.projectssetcloudarmortierrequest) - if err != nil { - return nil, err +func (c *RegionAutoscalersListCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) + if c.ifNoneMatch_ != "" { + reqHeaders.Set("If-None-Match", c.ifNoneMatch_) } c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/setCloudArmorTier") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/autoscalers") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("POST", urls, body) + req, err := http.NewRequest("GET", urls, nil) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ "project": c.project, + "region": c.region, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.regionAutoscalers.list", "request", internallog.HTTPRequest(req, nil)) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.projects.setCloudArmorTier" call. +// Do executes the "compute.regionAutoscalers.list" call. // 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 *ProjectsSetCloudArmorTierCall) Do(opts ...googleapi.CallOption) (*Operation, error) { +// *RegionAutoscalerList.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 *RegionAutoscalersListCall) Do(opts ...googleapi.CallOption) (*RegionAutoscalerList, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -55133,50 +79772,92 @@ func (c *ProjectsSetCloudArmorTierCall) Do(opts ...googleapi.CallOption) (*Opera if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } - ret := &Operation{ + ret := &RegionAutoscalerList{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.regionAutoscalers.list", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type ProjectsSetCommonInstanceMetadataCall struct { +// 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 *RegionAutoscalersListCall) Pages(ctx context.Context, f func(*RegionAutoscalerList) error) error { + c.ctx_ = ctx + defer c.PageToken(c.urlParams_.Get("pageToken")) + 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) + } +} + +type RegionAutoscalersPatchCall struct { s *Service project string - metadata *Metadata + region string + autoscaler *Autoscaler urlParams_ gensupport.URLParams ctx_ context.Context header_ http.Header } -// SetCommonInstanceMetadata: Sets metadata common to all instances within the -// specified project using the data included in the request. +// Patch: Updates an autoscaler in the specified project using +// the data included in the request. This method supportsPATCH +// semantics and uses theJSON merge +// patch format and processing rules. // // - project: Project ID for this request. -func (r *ProjectsService) SetCommonInstanceMetadata(project string, metadata *Metadata) *ProjectsSetCommonInstanceMetadataCall { - c := &ProjectsSetCommonInstanceMetadataCall{s: r.s, urlParams_: make(gensupport.URLParams)} +// - region: Name of the region scoping this request. +func (r *RegionAutoscalersService) Patch(project string, region string, autoscaler *Autoscaler) *RegionAutoscalersPatchCall { + c := &RegionAutoscalersPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project - c.metadata = metadata + c.region = region + c.autoscaler = autoscaler + return c +} + +// Autoscaler sets the optional parameter "autoscaler": Name of the autoscaler +// to patch. +func (c *RegionAutoscalersPatchCall) Autoscaler(autoscaler string) *RegionAutoscalersPatchCall { + c.urlParams_.Set("autoscaler", autoscaler) 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 *ProjectsSetCommonInstanceMetadataCall) RequestId(requestId string) *ProjectsSetCommonInstanceMetadataCall { +// 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 *RegionAutoscalersPatchCall) RequestId(requestId string) *RegionAutoscalersPatchCall { c.urlParams_.Set("requestId", requestId) return c } @@ -55184,54 +79865,55 @@ func (c *ProjectsSetCommonInstanceMetadataCall) RequestId(requestId string) *Pro // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *ProjectsSetCommonInstanceMetadataCall) Fields(s ...googleapi.Field) *ProjectsSetCommonInstanceMetadataCall { +func (c *RegionAutoscalersPatchCall) Fields(s ...googleapi.Field) *RegionAutoscalersPatchCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } // Context sets the context to be used in this call's Do method. -func (c *ProjectsSetCommonInstanceMetadataCall) Context(ctx context.Context) *ProjectsSetCommonInstanceMetadataCall { +func (c *RegionAutoscalersPatchCall) Context(ctx context.Context) *RegionAutoscalersPatchCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *ProjectsSetCommonInstanceMetadataCall) Header() http.Header { +func (c *RegionAutoscalersPatchCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *ProjectsSetCommonInstanceMetadataCall) doRequest(alt string) (*http.Response, error) { +func (c *RegionAutoscalersPatchCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) - var body io.Reader = nil - body, err := googleapi.WithoutDataWrapper.JSONReader(c.metadata) + body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.autoscaler) if err != nil { return nil, err } c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/setCommonInstanceMetadata") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/autoscalers") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("POST", urls, body) + req, err := http.NewRequest("PATCH", urls, body) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ "project": c.project, + "region": c.region, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.regionAutoscalers.patch", "request", internallog.HTTPRequest(req, body.Bytes())) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.projects.setCommonInstanceMetadata" call. +// Do executes the "compute.regionAutoscalers.patch" call. // 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 *ProjectsSetCommonInstanceMetadataCall) Do(opts ...googleapi.CallOption) (*Operation, error) { +func (c *RegionAutoscalersPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -55257,81 +79939,72 @@ func (c *ProjectsSetCommonInstanceMetadataCall) Do(opts ...googleapi.CallOption) }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.regionAutoscalers.patch", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type ProjectsSetDefaultNetworkTierCall struct { - s *Service - project string - projectssetdefaultnetworktierrequest *ProjectsSetDefaultNetworkTierRequest - urlParams_ gensupport.URLParams - ctx_ context.Context - header_ http.Header +type RegionAutoscalersTestIamPermissionsCall struct { + s *Service + project string + region string + resource string + testpermissionsrequest *TestPermissionsRequest + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header } -// SetDefaultNetworkTier: Sets the default network tier of the project. The -// default network tier is used when an address/forwardingRule/instance is -// created without specifying the network tier field. +// TestIamPermissions: Returns permissions that a caller has on the specified +// resource. // // - project: Project ID for this request. -func (r *ProjectsService) SetDefaultNetworkTier(project string, projectssetdefaultnetworktierrequest *ProjectsSetDefaultNetworkTierRequest) *ProjectsSetDefaultNetworkTierCall { - c := &ProjectsSetDefaultNetworkTierCall{s: r.s, urlParams_: make(gensupport.URLParams)} +// - region: The name of the region for this request. +// - resource: Name or id of the resource for this request. +func (r *RegionAutoscalersService) TestIamPermissions(project string, region string, resource string, testpermissionsrequest *TestPermissionsRequest) *RegionAutoscalersTestIamPermissionsCall { + c := &RegionAutoscalersTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project - c.projectssetdefaultnetworktierrequest = projectssetdefaultnetworktierrequest - 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 *ProjectsSetDefaultNetworkTierCall) RequestId(requestId string) *ProjectsSetDefaultNetworkTierCall { - c.urlParams_.Set("requestId", requestId) + c.region = region + c.resource = resource + c.testpermissionsrequest = testpermissionsrequest return c } // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *ProjectsSetDefaultNetworkTierCall) Fields(s ...googleapi.Field) *ProjectsSetDefaultNetworkTierCall { +func (c *RegionAutoscalersTestIamPermissionsCall) Fields(s ...googleapi.Field) *RegionAutoscalersTestIamPermissionsCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } // Context sets the context to be used in this call's Do method. -func (c *ProjectsSetDefaultNetworkTierCall) Context(ctx context.Context) *ProjectsSetDefaultNetworkTierCall { +func (c *RegionAutoscalersTestIamPermissionsCall) Context(ctx context.Context) *RegionAutoscalersTestIamPermissionsCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *ProjectsSetDefaultNetworkTierCall) Header() http.Header { +func (c *RegionAutoscalersTestIamPermissionsCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *ProjectsSetDefaultNetworkTierCall) doRequest(alt string) (*http.Response, error) { +func (c *RegionAutoscalersTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) - var body io.Reader = nil - body, err := googleapi.WithoutDataWrapper.JSONReader(c.projectssetdefaultnetworktierrequest) + body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.testpermissionsrequest) if err != nil { return nil, err } c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/setDefaultNetworkTier") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/autoscalers/{resource}/testIamPermissions") urls += "?" + c.urlParams_.Encode() req, err := http.NewRequest("POST", urls, body) if err != nil { @@ -55339,17 +80012,21 @@ func (c *ProjectsSetDefaultNetworkTierCall) doRequest(alt string) (*http.Respons } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, + "project": c.project, + "region": c.region, + "resource": c.resource, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.regionAutoscalers.testIamPermissions", "request", internallog.HTTPRequest(req, body.Bytes())) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.projects.setDefaultNetworkTier" call. +// Do executes the "compute.regionAutoscalers.testIamPermissions" call. // 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 *ProjectsSetDefaultNetworkTierCall) Do(opts ...googleapi.CallOption) (*Operation, error) { +// *TestPermissionsResponse.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 *RegionAutoscalersTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -55368,51 +80045,69 @@ func (c *ProjectsSetDefaultNetworkTierCall) Do(opts ...googleapi.CallOption) (*O if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } - ret := &Operation{ + ret := &TestPermissionsResponse{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.regionAutoscalers.testIamPermissions", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type ProjectsSetUsageExportBucketCall struct { - s *Service - project string - usageexportlocation *UsageExportLocation - urlParams_ gensupport.URLParams - ctx_ context.Context - header_ http.Header +type RegionAutoscalersUpdateCall struct { + s *Service + project string + region string + autoscaler *Autoscaler + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header +} + +// Update: Updates an autoscaler in the specified project using +// the data included in the request. +// +// - project: Project ID for this request. +// - region: Name of the region scoping this request. +func (r *RegionAutoscalersService) Update(project string, region string, autoscaler *Autoscaler) *RegionAutoscalersUpdateCall { + c := &RegionAutoscalersUpdateCall{s: r.s, urlParams_: make(gensupport.URLParams)} + c.project = project + c.region = region + c.autoscaler = autoscaler + return c } -// SetUsageExportBucket: Enables the usage export feature and sets the usage -// export bucket where reports are stored. If you provide an empty request body -// using this method, the usage export feature will be disabled. -// -// - project: Project ID for this request. -func (r *ProjectsService) SetUsageExportBucket(project string, usageexportlocation *UsageExportLocation) *ProjectsSetUsageExportBucketCall { - c := &ProjectsSetUsageExportBucketCall{s: r.s, urlParams_: make(gensupport.URLParams)} - c.project = project - c.usageexportlocation = usageexportlocation +// Autoscaler sets the optional parameter "autoscaler": Name of the autoscaler +// to update. +func (c *RegionAutoscalersUpdateCall) Autoscaler(autoscaler string) *RegionAutoscalersUpdateCall { + c.urlParams_.Set("autoscaler", autoscaler) 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 *ProjectsSetUsageExportBucketCall) RequestId(requestId string) *ProjectsSetUsageExportBucketCall { +// 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 *RegionAutoscalersUpdateCall) RequestId(requestId string) *RegionAutoscalersUpdateCall { c.urlParams_.Set("requestId", requestId) return c } @@ -55420,54 +80115,55 @@ func (c *ProjectsSetUsageExportBucketCall) RequestId(requestId string) *Projects // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *ProjectsSetUsageExportBucketCall) Fields(s ...googleapi.Field) *ProjectsSetUsageExportBucketCall { +func (c *RegionAutoscalersUpdateCall) Fields(s ...googleapi.Field) *RegionAutoscalersUpdateCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } // Context sets the context to be used in this call's Do method. -func (c *ProjectsSetUsageExportBucketCall) Context(ctx context.Context) *ProjectsSetUsageExportBucketCall { +func (c *RegionAutoscalersUpdateCall) Context(ctx context.Context) *RegionAutoscalersUpdateCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *ProjectsSetUsageExportBucketCall) Header() http.Header { +func (c *RegionAutoscalersUpdateCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *ProjectsSetUsageExportBucketCall) doRequest(alt string) (*http.Response, error) { +func (c *RegionAutoscalersUpdateCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) - var body io.Reader = nil - body, err := googleapi.WithoutDataWrapper.JSONReader(c.usageexportlocation) + body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.autoscaler) if err != nil { return nil, err } c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/setUsageExportBucket") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/autoscalers") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("POST", urls, body) + req, err := http.NewRequest("PUT", urls, body) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ "project": c.project, + "region": c.region, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.regionAutoscalers.update", "request", internallog.HTTPRequest(req, body.Bytes())) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.projects.setUsageExportBucket" call. +// Do executes the "compute.regionAutoscalers.update" call. // 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 *ProjectsSetUsageExportBucketCall) Do(opts ...googleapi.CallOption) (*Operation, error) { +func (c *RegionAutoscalersUpdateCall) Do(opts ...googleapi.CallOption) (*Operation, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -55493,44 +80189,56 @@ func (c *ProjectsSetUsageExportBucketCall) Do(opts ...googleapi.CallOption) (*Op }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.regionAutoscalers.update", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type PublicAdvertisedPrefixesAnnounceCall struct { - s *Service - project string - publicAdvertisedPrefix string - urlParams_ gensupport.URLParams - ctx_ context.Context - header_ http.Header +type RegionBackendBucketsDeleteCall struct { + s *Service + project string + region string + backendBucket string + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header } -// Announce: Announces the specified PublicAdvertisedPrefix +// Delete: Deletes the specified regional BackendBucket resource. // -// - project: Project ID for this request. -// - publicAdvertisedPrefix: The name of the public advertised prefix. It -// should comply with RFC1035. -func (r *PublicAdvertisedPrefixesService) Announce(project string, publicAdvertisedPrefix string) *PublicAdvertisedPrefixesAnnounceCall { - c := &PublicAdvertisedPrefixesAnnounceCall{s: r.s, urlParams_: make(gensupport.URLParams)} +// - backendBucket: Name of the BackendBucket resource to delete. +// - project: Project ID for this request. +// - region: Name of the region scoping this request. +func (r *RegionBackendBucketsService) Delete(project string, region string, backendBucket string) *RegionBackendBucketsDeleteCall { + c := &RegionBackendBucketsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project - c.publicAdvertisedPrefix = publicAdvertisedPrefix + c.region = region + c.backendBucket = backendBucket 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 *PublicAdvertisedPrefixesAnnounceCall) RequestId(requestId string) *PublicAdvertisedPrefixesAnnounceCall { +// 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). +// end_interface: MixerMutationRequestBuilder +func (c *RegionBackendBucketsDeleteCall) RequestId(requestId string) *RegionBackendBucketsDeleteCall { c.urlParams_.Set("requestId", requestId) return c } @@ -55538,51 +80246,52 @@ func (c *PublicAdvertisedPrefixesAnnounceCall) RequestId(requestId string) *Publ // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *PublicAdvertisedPrefixesAnnounceCall) Fields(s ...googleapi.Field) *PublicAdvertisedPrefixesAnnounceCall { +func (c *RegionBackendBucketsDeleteCall) Fields(s ...googleapi.Field) *RegionBackendBucketsDeleteCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } // Context sets the context to be used in this call's Do method. -func (c *PublicAdvertisedPrefixesAnnounceCall) Context(ctx context.Context) *PublicAdvertisedPrefixesAnnounceCall { +func (c *RegionBackendBucketsDeleteCall) Context(ctx context.Context) *RegionBackendBucketsDeleteCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *PublicAdvertisedPrefixesAnnounceCall) Header() http.Header { +func (c *RegionBackendBucketsDeleteCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *PublicAdvertisedPrefixesAnnounceCall) doRequest(alt string) (*http.Response, error) { +func (c *RegionBackendBucketsDeleteCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) - var body io.Reader = nil c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/publicAdvertisedPrefixes/{publicAdvertisedPrefix}/announce") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/backendBuckets/{backendBucket}") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("POST", urls, body) + req, err := http.NewRequest("DELETE", urls, nil) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "publicAdvertisedPrefix": c.publicAdvertisedPrefix, + "project": c.project, + "region": c.region, + "backendBucket": c.backendBucket, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.regionBackendBuckets.delete", "request", internallog.HTTPRequest(req, nil)) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.publicAdvertisedPrefixes.announce" call. +// Do executes the "compute.regionBackendBuckets.delete" call. // 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 *PublicAdvertisedPrefixesAnnounceCall) Do(opts ...googleapi.CallOption) (*Operation, error) { +func (c *RegionBackendBucketsDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -55608,96 +80317,98 @@ func (c *PublicAdvertisedPrefixesAnnounceCall) Do(opts ...googleapi.CallOption) }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.regionBackendBuckets.delete", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type PublicAdvertisedPrefixesDeleteCall struct { - s *Service - project string - publicAdvertisedPrefix string - urlParams_ gensupport.URLParams - ctx_ context.Context - header_ http.Header +type RegionBackendBucketsGetCall struct { + s *Service + project string + region string + backendBucket string + urlParams_ gensupport.URLParams + ifNoneMatch_ string + ctx_ context.Context + header_ http.Header } -// Delete: Deletes the specified PublicAdvertisedPrefix +// Get: Returns the specified regional BackendBucket resource. // -// - project: Project ID for this request. -// - publicAdvertisedPrefix: Name of the PublicAdvertisedPrefix resource to -// delete. -func (r *PublicAdvertisedPrefixesService) Delete(project string, publicAdvertisedPrefix string) *PublicAdvertisedPrefixesDeleteCall { - c := &PublicAdvertisedPrefixesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)} +// - backendBucket: Name of the BackendBucket resource to return. +// - project: Project ID for this request. +// - region: Name of the region scoping this request. +func (r *RegionBackendBucketsService) Get(project string, region string, backendBucket string) *RegionBackendBucketsGetCall { + c := &RegionBackendBucketsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project - c.publicAdvertisedPrefix = publicAdvertisedPrefix - 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 *PublicAdvertisedPrefixesDeleteCall) RequestId(requestId string) *PublicAdvertisedPrefixesDeleteCall { - c.urlParams_.Set("requestId", requestId) + c.region = region + c.backendBucket = backendBucket return c } // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *PublicAdvertisedPrefixesDeleteCall) Fields(s ...googleapi.Field) *PublicAdvertisedPrefixesDeleteCall { +func (c *RegionBackendBucketsGetCall) Fields(s ...googleapi.Field) *RegionBackendBucketsGetCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } +// IfNoneMatch sets an 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. +func (c *RegionBackendBucketsGetCall) IfNoneMatch(entityTag string) *RegionBackendBucketsGetCall { + c.ifNoneMatch_ = entityTag + return c +} + // Context sets the context to be used in this call's Do method. -func (c *PublicAdvertisedPrefixesDeleteCall) Context(ctx context.Context) *PublicAdvertisedPrefixesDeleteCall { +func (c *RegionBackendBucketsGetCall) Context(ctx context.Context) *RegionBackendBucketsGetCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *PublicAdvertisedPrefixesDeleteCall) Header() http.Header { +func (c *RegionBackendBucketsGetCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *PublicAdvertisedPrefixesDeleteCall) doRequest(alt string) (*http.Response, error) { +func (c *RegionBackendBucketsGetCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) - var body io.Reader = nil + if c.ifNoneMatch_ != "" { + reqHeaders.Set("If-None-Match", c.ifNoneMatch_) + } c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/publicAdvertisedPrefixes/{publicAdvertisedPrefix}") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/backendBuckets/{backendBucket}") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("DELETE", urls, body) + req, err := http.NewRequest("GET", urls, nil) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "publicAdvertisedPrefix": c.publicAdvertisedPrefix, + "project": c.project, + "region": c.region, + "backendBucket": c.backendBucket, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.regionBackendBuckets.get", "request", internallog.HTTPRequest(req, nil)) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.publicAdvertisedPrefixes.delete" call. +// Do executes the "compute.regionBackendBuckets.get" call. // 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 +// *BackendBucket.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 *PublicAdvertisedPrefixesDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) { +func (c *RegionBackendBucketsGetCall) Do(opts ...googleapi.CallOption) (*BackendBucket, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -55716,45 +80427,58 @@ func (c *PublicAdvertisedPrefixesDeleteCall) Do(opts ...googleapi.CallOption) (* if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } - ret := &Operation{ + ret := &BackendBucket{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.regionBackendBuckets.get", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type PublicAdvertisedPrefixesGetCall struct { - s *Service - project string - publicAdvertisedPrefix string - urlParams_ gensupport.URLParams - ifNoneMatch_ string - ctx_ context.Context - header_ http.Header +type RegionBackendBucketsGetIamPolicyCall struct { + s *Service + project string + region string + resource string + urlParams_ gensupport.URLParams + ifNoneMatch_ string + ctx_ context.Context + header_ http.Header } -// Get: Returns the specified PublicAdvertisedPrefix resource. +// GetIamPolicy: Gets the access control policy for a resource. May be empty if +// no such +// policy or resource exists. // -// - project: Project ID for this request. -// - publicAdvertisedPrefix: Name of the PublicAdvertisedPrefix resource to -// return. -func (r *PublicAdvertisedPrefixesService) Get(project string, publicAdvertisedPrefix string) *PublicAdvertisedPrefixesGetCall { - c := &PublicAdvertisedPrefixesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)} +// - project: Project ID for this request. +// - region: The name of the region for this request. +// - resource: Name or id of the resource for this request. +func (r *RegionBackendBucketsService) GetIamPolicy(project string, region string, resource string) *RegionBackendBucketsGetIamPolicyCall { + c := &RegionBackendBucketsGetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project - c.publicAdvertisedPrefix = publicAdvertisedPrefix + c.region = region + c.resource = resource + return c +} + +// OptionsRequestedPolicyVersion sets the optional parameter +// "optionsRequestedPolicyVersion": Requested IAM Policy version. +func (c *RegionBackendBucketsGetIamPolicyCall) OptionsRequestedPolicyVersion(optionsRequestedPolicyVersion int64) *RegionBackendBucketsGetIamPolicyCall { + c.urlParams_.Set("optionsRequestedPolicyVersion", fmt.Sprint(optionsRequestedPolicyVersion)) return c } // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *PublicAdvertisedPrefixesGetCall) Fields(s ...googleapi.Field) *PublicAdvertisedPrefixesGetCall { +func (c *RegionBackendBucketsGetIamPolicyCall) Fields(s ...googleapi.Field) *RegionBackendBucketsGetIamPolicyCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } @@ -55762,55 +80486,55 @@ func (c *PublicAdvertisedPrefixesGetCall) Fields(s ...googleapi.Field) *PublicAd // IfNoneMatch sets an 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. -func (c *PublicAdvertisedPrefixesGetCall) IfNoneMatch(entityTag string) *PublicAdvertisedPrefixesGetCall { +func (c *RegionBackendBucketsGetIamPolicyCall) IfNoneMatch(entityTag string) *RegionBackendBucketsGetIamPolicyCall { c.ifNoneMatch_ = entityTag return c } // Context sets the context to be used in this call's Do method. -func (c *PublicAdvertisedPrefixesGetCall) Context(ctx context.Context) *PublicAdvertisedPrefixesGetCall { +func (c *RegionBackendBucketsGetIamPolicyCall) Context(ctx context.Context) *RegionBackendBucketsGetIamPolicyCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *PublicAdvertisedPrefixesGetCall) Header() http.Header { +func (c *RegionBackendBucketsGetIamPolicyCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *PublicAdvertisedPrefixesGetCall) doRequest(alt string) (*http.Response, error) { +func (c *RegionBackendBucketsGetIamPolicyCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) if c.ifNoneMatch_ != "" { reqHeaders.Set("If-None-Match", c.ifNoneMatch_) } - var body io.Reader = nil c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/publicAdvertisedPrefixes/{publicAdvertisedPrefix}") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/backendBuckets/{resource}/getIamPolicy") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("GET", urls, body) + req, err := http.NewRequest("GET", urls, nil) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "publicAdvertisedPrefix": c.publicAdvertisedPrefix, + "project": c.project, + "region": c.region, + "resource": c.resource, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.regionBackendBuckets.getIamPolicy", "request", internallog.HTTPRequest(req, nil)) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.publicAdvertisedPrefixes.get" call. +// Do executes the "compute.regionBackendBuckets.getIamPolicy" call. // Any non-2xx status code is an error. Response headers are in either -// *PublicAdvertisedPrefix.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 *PublicAdvertisedPrefixesGetCall) Do(opts ...googleapi.CallOption) (*PublicAdvertisedPrefix, error) { +// *Policy.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 *RegionBackendBucketsGetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -55829,50 +80553,63 @@ func (c *PublicAdvertisedPrefixesGetCall) Do(opts ...googleapi.CallOption) (*Pub if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } - ret := &PublicAdvertisedPrefix{ + ret := &Policy{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.regionBackendBuckets.getIamPolicy", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type PublicAdvertisedPrefixesInsertCall struct { - s *Service - project string - publicadvertisedprefix *PublicAdvertisedPrefix - urlParams_ gensupport.URLParams - ctx_ context.Context - header_ http.Header +type RegionBackendBucketsInsertCall struct { + s *Service + project string + region string + backendbucket *BackendBucket + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header } -// Insert: Creates a PublicAdvertisedPrefix in the specified project using the -// parameters that are included in the request. +// Insert: Creates a RegionBackendBucket in the specified project in the given +// scope +// using the parameters that are included in the request. // // - project: Project ID for this request. -func (r *PublicAdvertisedPrefixesService) Insert(project string, publicadvertisedprefix *PublicAdvertisedPrefix) *PublicAdvertisedPrefixesInsertCall { - c := &PublicAdvertisedPrefixesInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)} +// - region: Name of the region of this request. +func (r *RegionBackendBucketsService) Insert(project string, region string, backendbucket *BackendBucket) *RegionBackendBucketsInsertCall { + c := &RegionBackendBucketsInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project - c.publicadvertisedprefix = publicadvertisedprefix + c.region = region + c.backendbucket = backendbucket 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 *PublicAdvertisedPrefixesInsertCall) RequestId(requestId string) *PublicAdvertisedPrefixesInsertCall { +// 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 *RegionBackendBucketsInsertCall) RequestId(requestId string) *RegionBackendBucketsInsertCall { c.urlParams_.Set("requestId", requestId) return c } @@ -55880,36 +80617,35 @@ func (c *PublicAdvertisedPrefixesInsertCall) RequestId(requestId string) *Public // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *PublicAdvertisedPrefixesInsertCall) Fields(s ...googleapi.Field) *PublicAdvertisedPrefixesInsertCall { +func (c *RegionBackendBucketsInsertCall) Fields(s ...googleapi.Field) *RegionBackendBucketsInsertCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } // Context sets the context to be used in this call's Do method. -func (c *PublicAdvertisedPrefixesInsertCall) Context(ctx context.Context) *PublicAdvertisedPrefixesInsertCall { +func (c *RegionBackendBucketsInsertCall) Context(ctx context.Context) *RegionBackendBucketsInsertCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *PublicAdvertisedPrefixesInsertCall) Header() http.Header { +func (c *RegionBackendBucketsInsertCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *PublicAdvertisedPrefixesInsertCall) doRequest(alt string) (*http.Response, error) { +func (c *RegionBackendBucketsInsertCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) - var body io.Reader = nil - body, err := googleapi.WithoutDataWrapper.JSONReader(c.publicadvertisedprefix) + body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.backendbucket) if err != nil { return nil, err } c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/publicAdvertisedPrefixes") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/backendBuckets") urls += "?" + c.urlParams_.Encode() req, err := http.NewRequest("POST", urls, body) if err != nil { @@ -55918,16 +80654,18 @@ func (c *PublicAdvertisedPrefixesInsertCall) doRequest(alt string) (*http.Respon req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ "project": c.project, + "region": c.region, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.regionBackendBuckets.insert", "request", internallog.HTTPRequest(req, body.Bytes())) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.publicAdvertisedPrefixes.insert" call. +// Do executes the "compute.regionBackendBuckets.insert" call. // 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 *PublicAdvertisedPrefixesInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) { +func (c *RegionBackendBucketsInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -55953,104 +80691,161 @@ func (c *PublicAdvertisedPrefixesInsertCall) Do(opts ...googleapi.CallOption) (* }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.regionBackendBuckets.insert", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type PublicAdvertisedPrefixesListCall struct { +type RegionBackendBucketsListCall struct { s *Service project string + region string urlParams_ gensupport.URLParams ifNoneMatch_ string ctx_ context.Context header_ http.Header } -// List: Lists the PublicAdvertisedPrefixes for a project. +// List: Retrieves the list of BackendBucket resources available to the +// specified +// project in the given region. // // - project: Project ID for this request. -func (r *PublicAdvertisedPrefixesService) List(project string) *PublicAdvertisedPrefixesListCall { - c := &PublicAdvertisedPrefixesListCall{s: r.s, urlParams_: make(gensupport.URLParams)} +// - region: Name of the region of this request. +func (r *RegionBackendBucketsService) List(project string, region string) *RegionBackendBucketsListCall { + c := &RegionBackendBucketsListCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project + c.region = region return c } // Filter sets the optional parameter "filter": A filter expression that -// filters resources listed in the response. Most Compute resources support two -// types of filter expressions: expressions that support regular expressions -// and expressions that follow API improvement proposal AIP-160. These two -// types of filter expressions cannot be mixed in one request. If you want to -// use AIP-160, your expression must specify the field name, an operator, and -// the value that you want to use for filtering. The value must be a string, a -// number, or a boolean. The 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`. The `:*` comparison can be used to test whether a key has -// been defined. For example, to find all objects with `owner` label use: ``` -// labels.owner:* ``` 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) ``` If you want to use a regular -// expression, use the `eq` (equal) or `ne` (not equal) operator against a -// single un-parenthesized expression with or without quotes or against -// multiple parenthesized expressions. Examples: `fieldname eq unquoted -// literal` `fieldname eq 'single quoted literal'` `fieldname eq "double quoted -// literal" `(fieldname1 eq literal) (fieldname2 ne "literal")` The literal -// value is interpreted as a regular expression using Google RE2 library -// syntax. The literal value must match the entire field. For example, to -// filter for instances that do not end with name "instance", you would use -// `name ne .*instance`. You cannot combine constraints on multiple fields -// using regular expressions. -func (c *PublicAdvertisedPrefixesListCall) Filter(filter string) *PublicAdvertisedPrefixesListCall { +// filters resources listed in the response. Most +// Compute resources support two types of filter expressions: +// expressions that support regular expressions and expressions that follow +// API improvement proposal AIP-160. +// These two types of filter expressions cannot be mixed in one request. +// +// If you want to use AIP-160, your expression must specify the field name, +// an +// operator, and the value that you want to use for filtering. The value +// must be a string, a number, or a boolean. The 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`. +// +// The `:*` comparison can be used to test whether a key has been defined. +// For example, to find all objects with `owner` label +// use: +// ``` +// labels.owner:* +// ``` +// +// 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 onresource 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) +// ``` +// +// If you want to use a regular expression, use the `eq` (equal) or `ne` +// (not equal) operator against a single un-parenthesized expression with +// or +// without quotes or against multiple parenthesized expressions. +// Examples: +// +// `fieldname eq unquoted literal` +// `fieldname eq 'single quoted literal'` +// `fieldname eq "double quoted literal" +// `(fieldname1 eq literal) (fieldname2 ne "literal")` +// +// The literal value is interpreted as a regular expression using GoogleRE2 +// library syntax. +// The literal value must match the entire field. +// +// For example, to filter for instances that do not end with name +// "instance", +// you would use `name ne .*instance`. +// +// You cannot combine constraints on multiple fields using regular +// expressions. +func (c *RegionBackendBucketsListCall) Filter(filter string) *RegionBackendBucketsListCall { 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 *PublicAdvertisedPrefixesListCall) MaxResults(maxResults int64) *PublicAdvertisedPrefixesListCall { +// 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 *RegionBackendBucketsListCall) MaxResults(maxResults int64) *RegionBackendBucketsListCall { 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 *PublicAdvertisedPrefixesListCall) OrderBy(orderBy string) *PublicAdvertisedPrefixesListCall { +// 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 *RegionBackendBucketsListCall) OrderBy(orderBy string) *RegionBackendBucketsListCall { 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 *PublicAdvertisedPrefixesListCall) PageToken(pageToken string) *PublicAdvertisedPrefixesListCall { +// use. Set `pageToken` to the +// `nextPageToken` returned by a previous list request to get +// the next page of results. +func (c *RegionBackendBucketsListCall) PageToken(pageToken string) *RegionBackendBucketsListCall { c.urlParams_.Set("pageToken", pageToken) return c } // ReturnPartialSuccess sets the optional parameter "returnPartialSuccess": -// Opt-in for partial success behavior which provides partial results in case -// of failure. The default value is false. For example, when partial success -// behavior is enabled, aggregatedList for a single zone scope either returns -// all resources in the zone or no resources, with an error code. -func (c *PublicAdvertisedPrefixesListCall) ReturnPartialSuccess(returnPartialSuccess bool) *PublicAdvertisedPrefixesListCall { +// Opt-in for partial success behavior which provides partial results in +// case +// of failure. The default value is false. +// +// For example, when partial success behavior is enabled, aggregatedList for +// a +// single zone scope either returns all resources in the zone or no +// resources, +// with an error code. +func (c *RegionBackendBucketsListCall) ReturnPartialSuccess(returnPartialSuccess bool) *RegionBackendBucketsListCall { c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess)) return c } @@ -56058,7 +80853,7 @@ func (c *PublicAdvertisedPrefixesListCall) ReturnPartialSuccess(returnPartialSuc // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *PublicAdvertisedPrefixesListCall) Fields(s ...googleapi.Field) *PublicAdvertisedPrefixesListCall { +func (c *RegionBackendBucketsListCall) Fields(s ...googleapi.Field) *RegionBackendBucketsListCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } @@ -56066,54 +80861,55 @@ func (c *PublicAdvertisedPrefixesListCall) Fields(s ...googleapi.Field) *PublicA // IfNoneMatch sets an 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. -func (c *PublicAdvertisedPrefixesListCall) IfNoneMatch(entityTag string) *PublicAdvertisedPrefixesListCall { +func (c *RegionBackendBucketsListCall) IfNoneMatch(entityTag string) *RegionBackendBucketsListCall { c.ifNoneMatch_ = entityTag return c } // Context sets the context to be used in this call's Do method. -func (c *PublicAdvertisedPrefixesListCall) Context(ctx context.Context) *PublicAdvertisedPrefixesListCall { +func (c *RegionBackendBucketsListCall) Context(ctx context.Context) *RegionBackendBucketsListCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *PublicAdvertisedPrefixesListCall) Header() http.Header { +func (c *RegionBackendBucketsListCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *PublicAdvertisedPrefixesListCall) doRequest(alt string) (*http.Response, error) { +func (c *RegionBackendBucketsListCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) if c.ifNoneMatch_ != "" { reqHeaders.Set("If-None-Match", c.ifNoneMatch_) } - var body io.Reader = nil c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/publicAdvertisedPrefixes") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/backendBuckets") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("GET", urls, body) + req, err := http.NewRequest("GET", urls, nil) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ "project": c.project, + "region": c.region, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.regionBackendBuckets.list", "request", internallog.HTTPRequest(req, nil)) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.publicAdvertisedPrefixes.list" call. +// Do executes the "compute.regionBackendBuckets.list" call. // Any non-2xx status code is an error. Response headers are in either -// *PublicAdvertisedPrefixList.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 *PublicAdvertisedPrefixesListCall) Do(opts ...googleapi.CallOption) (*PublicAdvertisedPrefixList, error) { +// *BackendBucketList.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 *RegionBackendBucketsListCall) Do(opts ...googleapi.CallOption) (*BackendBucketList, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -56132,23 +80928,25 @@ func (c *PublicAdvertisedPrefixesListCall) Do(opts ...googleapi.CallOption) (*Pu if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } - ret := &PublicAdvertisedPrefixList{ + ret := &BackendBucketList{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.regionBackendBuckets.list", "response", internallog.HTTPResponse(res, b)) return ret, nil } // 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 *PublicAdvertisedPrefixesListCall) Pages(ctx context.Context, f func(*PublicAdvertisedPrefixList) error) error { +func (c *RegionBackendBucketsListCall) Pages(ctx context.Context, f func(*BackendBucketList) error) error { c.ctx_ = ctx defer c.PageToken(c.urlParams_.Get("pageToken")) for { @@ -56166,98 +80964,218 @@ func (c *PublicAdvertisedPrefixesListCall) Pages(ctx context.Context, f func(*Pu } } -type PublicAdvertisedPrefixesPatchCall struct { - s *Service - project string - publicAdvertisedPrefix string - publicadvertisedprefix *PublicAdvertisedPrefix - urlParams_ gensupport.URLParams - ctx_ context.Context - header_ http.Header +type RegionBackendBucketsListUsableCall struct { + s *Service + project string + region string + urlParams_ gensupport.URLParams + ifNoneMatch_ string + ctx_ context.Context + header_ http.Header } -// Patch: Patches the specified Router resource with the data included in the -// request. This method supports PATCH semantics and uses JSON merge patch -// format and processing rules. +// ListUsable: Retrieves a list of all usable backend buckets in the specified +// project in +// the given region. // // - project: Project ID for this request. -// - publicAdvertisedPrefix: Name of the PublicAdvertisedPrefix resource to -// patch. -func (r *PublicAdvertisedPrefixesService) Patch(project string, publicAdvertisedPrefix string, publicadvertisedprefix *PublicAdvertisedPrefix) *PublicAdvertisedPrefixesPatchCall { - c := &PublicAdvertisedPrefixesPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)} +// - region: Name of the region scoping this request. +// It must be a string that meets the requirements in RFC1035. +func (r *RegionBackendBucketsService) ListUsable(project string, region string) *RegionBackendBucketsListUsableCall { + c := &RegionBackendBucketsListUsableCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project - c.publicAdvertisedPrefix = publicAdvertisedPrefix - c.publicadvertisedprefix = publicadvertisedprefix + c.region = region 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 *PublicAdvertisedPrefixesPatchCall) RequestId(requestId string) *PublicAdvertisedPrefixesPatchCall { - c.urlParams_.Set("requestId", requestId) +// Filter sets the optional parameter "filter": A filter expression that +// filters resources listed in the response. Most +// Compute resources support two types of filter expressions: +// expressions that support regular expressions and expressions that follow +// API improvement proposal AIP-160. +// These two types of filter expressions cannot be mixed in one request. +// +// If you want to use AIP-160, your expression must specify the field name, +// an +// operator, and the value that you want to use for filtering. The value +// must be a string, a number, or a boolean. The 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`. +// +// The `:*` comparison can be used to test whether a key has been defined. +// For example, to find all objects with `owner` label +// use: +// ``` +// labels.owner:* +// ``` +// +// 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 onresource 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) +// ``` +// +// If you want to use a regular expression, use the `eq` (equal) or `ne` +// (not equal) operator against a single un-parenthesized expression with +// or +// without quotes or against multiple parenthesized expressions. +// Examples: +// +// `fieldname eq unquoted literal` +// `fieldname eq 'single quoted literal'` +// `fieldname eq "double quoted literal" +// `(fieldname1 eq literal) (fieldname2 ne "literal")` +// +// The literal value is interpreted as a regular expression using GoogleRE2 +// library syntax. +// The literal value must match the entire field. +// +// For example, to filter for instances that do not end with name +// "instance", +// you would use `name ne .*instance`. +// +// You cannot combine constraints on multiple fields using regular +// expressions. +func (c *RegionBackendBucketsListUsableCall) Filter(filter string) *RegionBackendBucketsListUsableCall { + 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 *RegionBackendBucketsListUsableCall) MaxResults(maxResults int64) *RegionBackendBucketsListUsableCall { + 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 *RegionBackendBucketsListUsableCall) OrderBy(orderBy string) *RegionBackendBucketsListUsableCall { + 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 *RegionBackendBucketsListUsableCall) PageToken(pageToken string) *RegionBackendBucketsListUsableCall { + c.urlParams_.Set("pageToken", pageToken) + return c +} + +// ReturnPartialSuccess sets the optional parameter "returnPartialSuccess": +// Opt-in for partial success behavior which provides partial results in +// case +// of failure. The default value is false. +// +// For example, when partial success behavior is enabled, aggregatedList for +// a +// single zone scope either returns all resources in the zone or no +// resources, +// with an error code. +func (c *RegionBackendBucketsListUsableCall) ReturnPartialSuccess(returnPartialSuccess bool) *RegionBackendBucketsListUsableCall { + c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess)) return c } // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *PublicAdvertisedPrefixesPatchCall) Fields(s ...googleapi.Field) *PublicAdvertisedPrefixesPatchCall { +func (c *RegionBackendBucketsListUsableCall) Fields(s ...googleapi.Field) *RegionBackendBucketsListUsableCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } +// IfNoneMatch sets an 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. +func (c *RegionBackendBucketsListUsableCall) IfNoneMatch(entityTag string) *RegionBackendBucketsListUsableCall { + c.ifNoneMatch_ = entityTag + return c +} + // Context sets the context to be used in this call's Do method. -func (c *PublicAdvertisedPrefixesPatchCall) Context(ctx context.Context) *PublicAdvertisedPrefixesPatchCall { +func (c *RegionBackendBucketsListUsableCall) Context(ctx context.Context) *RegionBackendBucketsListUsableCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *PublicAdvertisedPrefixesPatchCall) Header() http.Header { +func (c *RegionBackendBucketsListUsableCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *PublicAdvertisedPrefixesPatchCall) doRequest(alt string) (*http.Response, error) { - reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) - var body io.Reader = nil - body, err := googleapi.WithoutDataWrapper.JSONReader(c.publicadvertisedprefix) - if err != nil { - return nil, err +func (c *RegionBackendBucketsListUsableCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) + if c.ifNoneMatch_ != "" { + reqHeaders.Set("If-None-Match", c.ifNoneMatch_) } c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/publicAdvertisedPrefixes/{publicAdvertisedPrefix}") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/backendBuckets/listUsable") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("PATCH", urls, body) + req, err := http.NewRequest("GET", urls, nil) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "publicAdvertisedPrefix": c.publicAdvertisedPrefix, + "project": c.project, + "region": c.region, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.regionBackendBuckets.listUsable", "request", internallog.HTTPRequest(req, nil)) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.publicAdvertisedPrefixes.patch" call. +// Do executes the "compute.regionBackendBuckets.listUsable" call. // 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 *PublicAdvertisedPrefixesPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) { +// *BackendBucketListUsable.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 *RegionBackendBucketsListUsableCall) Do(opts ...googleapi.CallOption) (*BackendBucketListUsable, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -56276,51 +81194,90 @@ func (c *PublicAdvertisedPrefixesPatchCall) Do(opts ...googleapi.CallOption) (*O if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } - ret := &Operation{ + ret := &BackendBucketListUsable{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.regionBackendBuckets.listUsable", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type PublicAdvertisedPrefixesWithdrawCall struct { - s *Service - project string - publicAdvertisedPrefix string - urlParams_ gensupport.URLParams - ctx_ context.Context - header_ http.Header +// 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 *RegionBackendBucketsListUsableCall) Pages(ctx context.Context, f func(*BackendBucketListUsable) error) error { + c.ctx_ = ctx + defer c.PageToken(c.urlParams_.Get("pageToken")) + 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) + } } -// Withdraw: Withdraws the specified PublicAdvertisedPrefix +type RegionBackendBucketsPatchCall struct { + s *Service + project string + region string + backendBucket string + backendbucket *BackendBucket + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header +} + +// Patch: Updates the specified BackendBucket resource with the data included +// in the +// request. This method supportsPATCH +// semantics and uses theJSON merge +// patch format and processing rules. // -// - project: Project ID for this request. -// - publicAdvertisedPrefix: The name of the public advertised prefix. It -// should comply with RFC1035. -func (r *PublicAdvertisedPrefixesService) Withdraw(project string, publicAdvertisedPrefix string) *PublicAdvertisedPrefixesWithdrawCall { - c := &PublicAdvertisedPrefixesWithdrawCall{s: r.s, urlParams_: make(gensupport.URLParams)} +// - backendBucket: Name of the BackendBucket resource to patch. +// - project: Project ID for this request. +// - region: Name of the region scoping this request. +func (r *RegionBackendBucketsService) Patch(project string, region string, backendBucket string, backendbucket *BackendBucket) *RegionBackendBucketsPatchCall { + c := &RegionBackendBucketsPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project - c.publicAdvertisedPrefix = publicAdvertisedPrefix + c.region = region + c.backendBucket = backendBucket + c.backendbucket = backendbucket 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 *PublicAdvertisedPrefixesWithdrawCall) RequestId(requestId string) *PublicAdvertisedPrefixesWithdrawCall { +// 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). +// end_interface: MixerMutationRequestBuilder +func (c *RegionBackendBucketsPatchCall) RequestId(requestId string) *RegionBackendBucketsPatchCall { c.urlParams_.Set("requestId", requestId) return c } @@ -56328,260 +81285,169 @@ func (c *PublicAdvertisedPrefixesWithdrawCall) RequestId(requestId string) *Publ // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *PublicAdvertisedPrefixesWithdrawCall) Fields(s ...googleapi.Field) *PublicAdvertisedPrefixesWithdrawCall { +func (c *RegionBackendBucketsPatchCall) Fields(s ...googleapi.Field) *RegionBackendBucketsPatchCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } // Context sets the context to be used in this call's Do method. -func (c *PublicAdvertisedPrefixesWithdrawCall) Context(ctx context.Context) *PublicAdvertisedPrefixesWithdrawCall { +func (c *RegionBackendBucketsPatchCall) Context(ctx context.Context) *RegionBackendBucketsPatchCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *PublicAdvertisedPrefixesWithdrawCall) Header() http.Header { +func (c *RegionBackendBucketsPatchCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *PublicAdvertisedPrefixesWithdrawCall) doRequest(alt string) (*http.Response, error) { - reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) - var body io.Reader = nil +func (c *RegionBackendBucketsPatchCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) + body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.backendbucket) + if err != nil { + return nil, err + } c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/publicAdvertisedPrefixes/{publicAdvertisedPrefix}/withdraw") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/backendBuckets/{backendBucket}") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("POST", urls, body) + req, err := http.NewRequest("PATCH", urls, body) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "publicAdvertisedPrefix": c.publicAdvertisedPrefix, + "project": c.project, + "region": c.region, + "backendBucket": c.backendBucket, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.regionBackendBuckets.patch", "request", internallog.HTTPRequest(req, body.Bytes())) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.publicAdvertisedPrefixes.withdraw" call. +// Do executes the "compute.regionBackendBuckets.patch" call. // 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 *PublicAdvertisedPrefixesWithdrawCall) 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, gensupport.WrapError(&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, gensupport.WrapError(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 -} - -type PublicDelegatedPrefixesAggregatedListCall struct { - s *Service - project string - urlParams_ gensupport.URLParams - ifNoneMatch_ string - ctx_ context.Context - header_ http.Header -} - -// AggregatedList: Lists all PublicDelegatedPrefix resources owned by the -// specific project across all scopes. To prevent failure, Google recommends -// that you set the `returnPartialSuccess` parameter to `true`. -// -// - project: Name of the project scoping this request. -func (r *PublicDelegatedPrefixesService) AggregatedList(project string) *PublicDelegatedPrefixesAggregatedListCall { - c := &PublicDelegatedPrefixesAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)} - c.project = project - return c -} - -// Filter sets the optional parameter "filter": A filter expression that -// filters resources listed in the response. Most Compute resources support two -// types of filter expressions: expressions that support regular expressions -// and expressions that follow API improvement proposal AIP-160. These two -// types of filter expressions cannot be mixed in one request. If you want to -// use AIP-160, your expression must specify the field name, an operator, and -// the value that you want to use for filtering. The value must be a string, a -// number, or a boolean. The 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`. The `:*` comparison can be used to test whether a key has -// been defined. For example, to find all objects with `owner` label use: ``` -// labels.owner:* ``` 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) ``` If you want to use a regular -// expression, use the `eq` (equal) or `ne` (not equal) operator against a -// single un-parenthesized expression with or without quotes or against -// multiple parenthesized expressions. Examples: `fieldname eq unquoted -// literal` `fieldname eq 'single quoted literal'` `fieldname eq "double quoted -// literal" `(fieldname1 eq literal) (fieldname2 ne "literal")` The literal -// value is interpreted as a regular expression using Google RE2 library -// syntax. The literal value must match the entire field. For example, to -// filter for instances that do not end with name "instance", you would use -// `name ne .*instance`. You cannot combine constraints on multiple fields -// using regular expressions. -func (c *PublicDelegatedPrefixesAggregatedListCall) Filter(filter string) *PublicDelegatedPrefixesAggregatedListCall { - c.urlParams_.Set("filter", filter) - return c -} - -// IncludeAllScopes sets the optional parameter "includeAllScopes": Indicates -// whether every visible scope for each scope type (zone, region, global) -// should be included in the response. For new resource types added after this -// field, the flag has no effect as new resource types will always include -// every visible scope for each scope type in response. For resource types -// which predate this field, if this flag is omitted or false, only scopes of -// the scope types where the resource type is expected to be found will be -// included. -func (c *PublicDelegatedPrefixesAggregatedListCall) IncludeAllScopes(includeAllScopes bool) *PublicDelegatedPrefixesAggregatedListCall { - c.urlParams_.Set("includeAllScopes", fmt.Sprint(includeAllScopes)) - 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 *PublicDelegatedPrefixesAggregatedListCall) MaxResults(maxResults int64) *PublicDelegatedPrefixesAggregatedListCall { - 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 *PublicDelegatedPrefixesAggregatedListCall) OrderBy(orderBy string) *PublicDelegatedPrefixesAggregatedListCall { - 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 *PublicDelegatedPrefixesAggregatedListCall) PageToken(pageToken string) *PublicDelegatedPrefixesAggregatedListCall { - c.urlParams_.Set("pageToken", pageToken) - return c +// whether the returned error was because http.StatusNotModified was returned. +func (c *RegionBackendBucketsPatchCall) 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, gensupport.WrapError(&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, gensupport.WrapError(err) + } + ret := &Operation{ + ServerResponse: googleapi.ServerResponse{ + Header: res.Header, + HTTPStatusCode: res.StatusCode, + }, + } + target := &ret + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { + return nil, err + } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.regionBackendBuckets.patch", "response", internallog.HTTPResponse(res, b)) + return ret, nil } -// ReturnPartialSuccess sets the optional parameter "returnPartialSuccess": -// Opt-in for partial success behavior which provides partial results in case -// of failure. The default value is false. For example, when partial success -// behavior is enabled, aggregatedList for a single zone scope either returns -// all resources in the zone or no resources, with an error code. -func (c *PublicDelegatedPrefixesAggregatedListCall) ReturnPartialSuccess(returnPartialSuccess bool) *PublicDelegatedPrefixesAggregatedListCall { - c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess)) - return c +type RegionBackendBucketsSetIamPolicyCall struct { + s *Service + project string + region string + resource string + regionsetpolicyrequest *RegionSetPolicyRequest + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header } -// ServiceProjectNumber sets the optional parameter "serviceProjectNumber": The -// Shared VPC service project id or service project number for which aggregated -// list request is invoked for subnetworks list-usable api. -func (c *PublicDelegatedPrefixesAggregatedListCall) ServiceProjectNumber(serviceProjectNumber int64) *PublicDelegatedPrefixesAggregatedListCall { - c.urlParams_.Set("serviceProjectNumber", fmt.Sprint(serviceProjectNumber)) +// SetIamPolicy: Sets the access control policy on the specified +// resource. +// Replaces any existing policy. +// +// - project: Project ID for this request. +// - region: The name of the region for this request. +// - resource: Name or id of the resource for this request. +func (r *RegionBackendBucketsService) SetIamPolicy(project string, region string, resource string, regionsetpolicyrequest *RegionSetPolicyRequest) *RegionBackendBucketsSetIamPolicyCall { + c := &RegionBackendBucketsSetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)} + c.project = project + c.region = region + c.resource = resource + c.regionsetpolicyrequest = regionsetpolicyrequest return c } // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *PublicDelegatedPrefixesAggregatedListCall) Fields(s ...googleapi.Field) *PublicDelegatedPrefixesAggregatedListCall { +func (c *RegionBackendBucketsSetIamPolicyCall) Fields(s ...googleapi.Field) *RegionBackendBucketsSetIamPolicyCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } -// IfNoneMatch sets an 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. -func (c *PublicDelegatedPrefixesAggregatedListCall) IfNoneMatch(entityTag string) *PublicDelegatedPrefixesAggregatedListCall { - c.ifNoneMatch_ = entityTag - return c -} - // Context sets the context to be used in this call's Do method. -func (c *PublicDelegatedPrefixesAggregatedListCall) Context(ctx context.Context) *PublicDelegatedPrefixesAggregatedListCall { +func (c *RegionBackendBucketsSetIamPolicyCall) Context(ctx context.Context) *RegionBackendBucketsSetIamPolicyCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *PublicDelegatedPrefixesAggregatedListCall) Header() http.Header { +func (c *RegionBackendBucketsSetIamPolicyCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *PublicDelegatedPrefixesAggregatedListCall) doRequest(alt string) (*http.Response, error) { - reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) - if c.ifNoneMatch_ != "" { - reqHeaders.Set("If-None-Match", c.ifNoneMatch_) +func (c *RegionBackendBucketsSetIamPolicyCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) + body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.regionsetpolicyrequest) + if err != nil { + return nil, err } - var body io.Reader = nil c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/aggregated/publicDelegatedPrefixes") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/backendBuckets/{resource}/setIamPolicy") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("GET", urls, body) + req, err := http.NewRequest("POST", urls, body) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, + "project": c.project, + "region": c.region, + "resource": c.resource, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.regionBackendBuckets.setIamPolicy", "request", internallog.HTTPRequest(req, body.Bytes())) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.publicDelegatedPrefixes.aggregatedList" call. +// Do executes the "compute.regionBackendBuckets.setIamPolicy" call. // Any non-2xx status code is an error. Response headers are in either -// *PublicDelegatedPrefixAggregatedList.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 *PublicDelegatedPrefixesAggregatedListCall) Do(opts ...googleapi.CallOption) (*PublicDelegatedPrefixAggregatedList, error) { +// *Policy.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 *RegionBackendBucketsSetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -56600,109 +81466,79 @@ func (c *PublicDelegatedPrefixesAggregatedListCall) Do(opts ...googleapi.CallOpt if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } - ret := &PublicDelegatedPrefixAggregatedList{ + ret := &Policy{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.regionBackendBuckets.setIamPolicy", "response", internallog.HTTPResponse(res, b)) return ret, nil } -// 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 *PublicDelegatedPrefixesAggregatedListCall) Pages(ctx context.Context, f func(*PublicDelegatedPrefixAggregatedList) error) error { - c.ctx_ = ctx - defer c.PageToken(c.urlParams_.Get("pageToken")) - 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) - } -} - -type PublicDelegatedPrefixesAnnounceCall struct { - s *Service - project string - region string - publicDelegatedPrefix string - urlParams_ gensupport.URLParams - ctx_ context.Context - header_ http.Header +type RegionBackendBucketsTestIamPermissionsCall struct { + s *Service + project string + region string + resource string + testpermissionsrequest *TestPermissionsRequest + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header } -// Announce: Announces the specified PublicDelegatedPrefix in the given region. +// TestIamPermissions: Returns permissions that a caller has on the specified +// resource. // -// - project: Project ID for this request. -// - publicDelegatedPrefix: The name of the public delegated prefix. It should -// comply with RFC1035. -// - region: The name of the region where the public delegated prefix is -// located. It should comply with RFC1035. -func (r *PublicDelegatedPrefixesService) Announce(project string, region string, publicDelegatedPrefix string) *PublicDelegatedPrefixesAnnounceCall { - c := &PublicDelegatedPrefixesAnnounceCall{s: r.s, urlParams_: make(gensupport.URLParams)} +// - project: Project ID for this request. +// - region: The name of the region for this request. +// - resource: Name or id of the resource for this request. +func (r *RegionBackendBucketsService) TestIamPermissions(project string, region string, resource string, testpermissionsrequest *TestPermissionsRequest) *RegionBackendBucketsTestIamPermissionsCall { + c := &RegionBackendBucketsTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project c.region = region - c.publicDelegatedPrefix = publicDelegatedPrefix - 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 *PublicDelegatedPrefixesAnnounceCall) RequestId(requestId string) *PublicDelegatedPrefixesAnnounceCall { - c.urlParams_.Set("requestId", requestId) + c.resource = resource + c.testpermissionsrequest = testpermissionsrequest return c } // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *PublicDelegatedPrefixesAnnounceCall) Fields(s ...googleapi.Field) *PublicDelegatedPrefixesAnnounceCall { +func (c *RegionBackendBucketsTestIamPermissionsCall) Fields(s ...googleapi.Field) *RegionBackendBucketsTestIamPermissionsCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } // Context sets the context to be used in this call's Do method. -func (c *PublicDelegatedPrefixesAnnounceCall) Context(ctx context.Context) *PublicDelegatedPrefixesAnnounceCall { +func (c *RegionBackendBucketsTestIamPermissionsCall) Context(ctx context.Context) *RegionBackendBucketsTestIamPermissionsCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *PublicDelegatedPrefixesAnnounceCall) Header() http.Header { +func (c *RegionBackendBucketsTestIamPermissionsCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *PublicDelegatedPrefixesAnnounceCall) doRequest(alt string) (*http.Response, error) { - reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) - var body io.Reader = nil +func (c *RegionBackendBucketsTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) + body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.testpermissionsrequest) + if err != nil { + return nil, err + } c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/publicDelegatedPrefixes/{publicDelegatedPrefix}/announce") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/backendBuckets/{resource}/testIamPermissions") urls += "?" + c.urlParams_.Encode() req, err := http.NewRequest("POST", urls, body) if err != nil { @@ -56710,19 +81546,21 @@ func (c *PublicDelegatedPrefixesAnnounceCall) doRequest(alt string) (*http.Respo } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "region": c.region, - "publicDelegatedPrefix": c.publicDelegatedPrefix, + "project": c.project, + "region": c.region, + "resource": c.resource, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.regionBackendBuckets.testIamPermissions", "request", internallog.HTTPRequest(req, body.Bytes())) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.publicDelegatedPrefixes.announce" call. +// Do executes the "compute.regionBackendBuckets.testIamPermissions" call. // 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 *PublicDelegatedPrefixesAnnounceCall) Do(opts ...googleapi.CallOption) (*Operation, error) { +// *TestPermissionsResponse.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 *RegionBackendBucketsTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -56741,54 +81579,62 @@ func (c *PublicDelegatedPrefixesAnnounceCall) Do(opts ...googleapi.CallOption) ( if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } - ret := &Operation{ + ret := &TestPermissionsResponse{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.regionBackendBuckets.testIamPermissions", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type PublicDelegatedPrefixesDeleteCall struct { - s *Service - project string - region string - publicDelegatedPrefix string - urlParams_ gensupport.URLParams - ctx_ context.Context - header_ http.Header +type RegionBackendServicesDeleteCall struct { + s *Service + project string + region string + backendService string + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header } -// Delete: Deletes the specified PublicDelegatedPrefix in the given region. +// Delete: Deletes the specified regional BackendService resource. // -// - project: Project ID for this request. -// - publicDelegatedPrefix: Name of the PublicDelegatedPrefix resource to -// delete. -// - region: Name of the region of this request. -func (r *PublicDelegatedPrefixesService) Delete(project string, region string, publicDelegatedPrefix string) *PublicDelegatedPrefixesDeleteCall { - c := &PublicDelegatedPrefixesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)} +// - backendService: Name of the BackendService resource to delete. +// - project: Project ID for this request. +// - region: Name of the region scoping this request. +func (r *RegionBackendServicesService) Delete(project string, region string, backendService string) *RegionBackendServicesDeleteCall { + c := &RegionBackendServicesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project c.region = region - c.publicDelegatedPrefix = publicDelegatedPrefix + c.backendService = backendService 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 *PublicDelegatedPrefixesDeleteCall) RequestId(requestId string) *PublicDelegatedPrefixesDeleteCall { +// 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 *RegionBackendServicesDeleteCall) RequestId(requestId string) *RegionBackendServicesDeleteCall { c.urlParams_.Set("requestId", requestId) return c } @@ -56796,52 +81642,52 @@ func (c *PublicDelegatedPrefixesDeleteCall) RequestId(requestId string) *PublicD // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *PublicDelegatedPrefixesDeleteCall) Fields(s ...googleapi.Field) *PublicDelegatedPrefixesDeleteCall { +func (c *RegionBackendServicesDeleteCall) Fields(s ...googleapi.Field) *RegionBackendServicesDeleteCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } // Context sets the context to be used in this call's Do method. -func (c *PublicDelegatedPrefixesDeleteCall) Context(ctx context.Context) *PublicDelegatedPrefixesDeleteCall { +func (c *RegionBackendServicesDeleteCall) Context(ctx context.Context) *RegionBackendServicesDeleteCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *PublicDelegatedPrefixesDeleteCall) Header() http.Header { +func (c *RegionBackendServicesDeleteCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *PublicDelegatedPrefixesDeleteCall) doRequest(alt string) (*http.Response, error) { +func (c *RegionBackendServicesDeleteCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) - var body io.Reader = nil c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/publicDelegatedPrefixes/{publicDelegatedPrefix}") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/backendServices/{backendService}") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("DELETE", urls, body) + req, err := http.NewRequest("DELETE", urls, nil) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "region": c.region, - "publicDelegatedPrefix": c.publicDelegatedPrefix, + "project": c.project, + "region": c.region, + "backendService": c.backendService, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.regionBackendServices.delete", "request", internallog.HTTPRequest(req, nil)) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.publicDelegatedPrefixes.delete" call. +// Do executes the "compute.regionBackendServices.delete" call. // 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 *PublicDelegatedPrefixesDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) { +func (c *RegionBackendServicesDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -56867,42 +81713,42 @@ func (c *PublicDelegatedPrefixesDeleteCall) Do(opts ...googleapi.CallOption) (*O }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.regionBackendServices.delete", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type PublicDelegatedPrefixesGetCall struct { - s *Service - project string - region string - publicDelegatedPrefix string - urlParams_ gensupport.URLParams - ifNoneMatch_ string - ctx_ context.Context - header_ http.Header +type RegionBackendServicesGetCall struct { + s *Service + project string + region string + backendService string + urlParams_ gensupport.URLParams + ifNoneMatch_ string + ctx_ context.Context + header_ http.Header } -// Get: Returns the specified PublicDelegatedPrefix resource in the given -// region. +// Get: Returns the specified regional BackendService resource. // -// - project: Project ID for this request. -// - publicDelegatedPrefix: Name of the PublicDelegatedPrefix resource to -// return. -// - region: Name of the region of this request. -func (r *PublicDelegatedPrefixesService) Get(project string, region string, publicDelegatedPrefix string) *PublicDelegatedPrefixesGetCall { - c := &PublicDelegatedPrefixesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)} +// - backendService: Name of the BackendService resource to return. +// - project: Project ID for this request. +// - region: Name of the region scoping this request. +func (r *RegionBackendServicesService) Get(project string, region string, backendService string) *RegionBackendServicesGetCall { + c := &RegionBackendServicesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project c.region = region - c.publicDelegatedPrefix = publicDelegatedPrefix + c.backendService = backendService return c } // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *PublicDelegatedPrefixesGetCall) Fields(s ...googleapi.Field) *PublicDelegatedPrefixesGetCall { +func (c *RegionBackendServicesGetCall) Fields(s ...googleapi.Field) *RegionBackendServicesGetCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } @@ -56910,56 +81756,55 @@ func (c *PublicDelegatedPrefixesGetCall) Fields(s ...googleapi.Field) *PublicDel // IfNoneMatch sets an 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. -func (c *PublicDelegatedPrefixesGetCall) IfNoneMatch(entityTag string) *PublicDelegatedPrefixesGetCall { +func (c *RegionBackendServicesGetCall) IfNoneMatch(entityTag string) *RegionBackendServicesGetCall { c.ifNoneMatch_ = entityTag return c } // Context sets the context to be used in this call's Do method. -func (c *PublicDelegatedPrefixesGetCall) Context(ctx context.Context) *PublicDelegatedPrefixesGetCall { +func (c *RegionBackendServicesGetCall) Context(ctx context.Context) *RegionBackendServicesGetCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *PublicDelegatedPrefixesGetCall) Header() http.Header { +func (c *RegionBackendServicesGetCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *PublicDelegatedPrefixesGetCall) doRequest(alt string) (*http.Response, error) { +func (c *RegionBackendServicesGetCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) if c.ifNoneMatch_ != "" { reqHeaders.Set("If-None-Match", c.ifNoneMatch_) } - var body io.Reader = nil c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/publicDelegatedPrefixes/{publicDelegatedPrefix}") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/backendServices/{backendService}") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("GET", urls, body) + req, err := http.NewRequest("GET", urls, nil) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "region": c.region, - "publicDelegatedPrefix": c.publicDelegatedPrefix, + "project": c.project, + "region": c.region, + "backendService": c.backendService, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.regionBackendServices.get", "request", internallog.HTTPRequest(req, nil)) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.publicDelegatedPrefixes.get" call. +// Do executes the "compute.regionBackendServices.get" call. // Any non-2xx status code is an error. Response headers are in either -// *PublicDelegatedPrefix.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 *PublicDelegatedPrefixesGetCall) Do(opts ...googleapi.CallOption) (*PublicDelegatedPrefix, error) { +// *BackendService.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 *RegionBackendServicesGetCall) Do(opts ...googleapi.CallOption) (*BackendService, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -56978,90 +81823,80 @@ func (c *PublicDelegatedPrefixesGetCall) Do(opts ...googleapi.CallOption) (*Publ if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } - ret := &PublicDelegatedPrefix{ + ret := &BackendService{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.regionBackendServices.get", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type PublicDelegatedPrefixesInsertCall struct { - s *Service - project string - region string - publicdelegatedprefix *PublicDelegatedPrefix - urlParams_ gensupport.URLParams - ctx_ context.Context - header_ http.Header +type RegionBackendServicesGetHealthCall struct { + s *Service + project string + region string + backendService string + resourcegroupreference *ResourceGroupReference + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header } -// Insert: Creates a PublicDelegatedPrefix in the specified project in the -// given region using the parameters that are included in the request. +// GetHealth: Gets the most recent health check results for this +// regional BackendService. // -// - project: Project ID for this request. -// - region: Name of the region of this request. -func (r *PublicDelegatedPrefixesService) Insert(project string, region string, publicdelegatedprefix *PublicDelegatedPrefix) *PublicDelegatedPrefixesInsertCall { - c := &PublicDelegatedPrefixesInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)} +// - backendService: Name of the BackendService resource for which to get +// health. +// - project: . +// - region: Name of the region scoping this request. +func (r *RegionBackendServicesService) GetHealth(project string, region string, backendService string, resourcegroupreference *ResourceGroupReference) *RegionBackendServicesGetHealthCall { + c := &RegionBackendServicesGetHealthCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project c.region = region - c.publicdelegatedprefix = publicdelegatedprefix - 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 *PublicDelegatedPrefixesInsertCall) RequestId(requestId string) *PublicDelegatedPrefixesInsertCall { - c.urlParams_.Set("requestId", requestId) + c.backendService = backendService + c.resourcegroupreference = resourcegroupreference return c } // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *PublicDelegatedPrefixesInsertCall) Fields(s ...googleapi.Field) *PublicDelegatedPrefixesInsertCall { +func (c *RegionBackendServicesGetHealthCall) Fields(s ...googleapi.Field) *RegionBackendServicesGetHealthCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } // Context sets the context to be used in this call's Do method. -func (c *PublicDelegatedPrefixesInsertCall) Context(ctx context.Context) *PublicDelegatedPrefixesInsertCall { +func (c *RegionBackendServicesGetHealthCall) Context(ctx context.Context) *RegionBackendServicesGetHealthCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *PublicDelegatedPrefixesInsertCall) Header() http.Header { +func (c *RegionBackendServicesGetHealthCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *PublicDelegatedPrefixesInsertCall) doRequest(alt string) (*http.Response, error) { +func (c *RegionBackendServicesGetHealthCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) - var body io.Reader = nil - body, err := googleapi.WithoutDataWrapper.JSONReader(c.publicdelegatedprefix) + body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.resourcegroupreference) if err != nil { return nil, err } c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/publicDelegatedPrefixes") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/backendServices/{backendService}/getHealth") urls += "?" + c.urlParams_.Encode() req, err := http.NewRequest("POST", urls, body) if err != nil { @@ -57069,18 +81904,21 @@ func (c *PublicDelegatedPrefixesInsertCall) doRequest(alt string) (*http.Respons } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "region": c.region, + "project": c.project, + "region": c.region, + "backendService": c.backendService, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.regionBackendServices.getHealth", "request", internallog.HTTPRequest(req, body.Bytes())) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.publicDelegatedPrefixes.insert" call. +// Do executes the "compute.regionBackendServices.getHealth" call. // 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 *PublicDelegatedPrefixesInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) { +// *BackendServiceGroupHealth.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 *RegionBackendServicesGetHealthCall) Do(opts ...googleapi.CallOption) (*BackendServiceGroupHealth, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -57099,122 +81937,58 @@ func (c *PublicDelegatedPrefixesInsertCall) Do(opts ...googleapi.CallOption) (*O if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } - ret := &Operation{ + ret := &BackendServiceGroupHealth{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.regionBackendServices.getHealth", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type PublicDelegatedPrefixesListCall struct { +type RegionBackendServicesGetIamPolicyCall struct { s *Service project string region string + resource string urlParams_ gensupport.URLParams ifNoneMatch_ string ctx_ context.Context header_ http.Header } -// List: Lists the PublicDelegatedPrefixes for a project in the given region. +// GetIamPolicy: Gets the access control policy for a resource. May be empty if +// no such +// policy or resource exists. // // - project: Project ID for this request. -// - region: Name of the region of this request. -func (r *PublicDelegatedPrefixesService) List(project string, region string) *PublicDelegatedPrefixesListCall { - c := &PublicDelegatedPrefixesListCall{s: r.s, urlParams_: make(gensupport.URLParams)} +// - region: The name of the region for this request. +// - resource: Name or id of the resource for this request. +func (r *RegionBackendServicesService) GetIamPolicy(project string, region string, resource string) *RegionBackendServicesGetIamPolicyCall { + c := &RegionBackendServicesGetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project c.region = region + c.resource = resource return c } -// Filter sets the optional parameter "filter": A filter expression that -// filters resources listed in the response. Most Compute resources support two -// types of filter expressions: expressions that support regular expressions -// and expressions that follow API improvement proposal AIP-160. These two -// types of filter expressions cannot be mixed in one request. If you want to -// use AIP-160, your expression must specify the field name, an operator, and -// the value that you want to use for filtering. The value must be a string, a -// number, or a boolean. The 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`. The `:*` comparison can be used to test whether a key has -// been defined. For example, to find all objects with `owner` label use: ``` -// labels.owner:* ``` 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) ``` If you want to use a regular -// expression, use the `eq` (equal) or `ne` (not equal) operator against a -// single un-parenthesized expression with or without quotes or against -// multiple parenthesized expressions. Examples: `fieldname eq unquoted -// literal` `fieldname eq 'single quoted literal'` `fieldname eq "double quoted -// literal" `(fieldname1 eq literal) (fieldname2 ne "literal")` The literal -// value is interpreted as a regular expression using Google RE2 library -// syntax. The literal value must match the entire field. For example, to -// filter for instances that do not end with name "instance", you would use -// `name ne .*instance`. You cannot combine constraints on multiple fields -// using regular expressions. -func (c *PublicDelegatedPrefixesListCall) Filter(filter string) *PublicDelegatedPrefixesListCall { - 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 *PublicDelegatedPrefixesListCall) MaxResults(maxResults int64) *PublicDelegatedPrefixesListCall { - 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 *PublicDelegatedPrefixesListCall) OrderBy(orderBy string) *PublicDelegatedPrefixesListCall { - 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 *PublicDelegatedPrefixesListCall) PageToken(pageToken string) *PublicDelegatedPrefixesListCall { - c.urlParams_.Set("pageToken", pageToken) - return c -} - -// ReturnPartialSuccess sets the optional parameter "returnPartialSuccess": -// Opt-in for partial success behavior which provides partial results in case -// of failure. The default value is false. For example, when partial success -// behavior is enabled, aggregatedList for a single zone scope either returns -// all resources in the zone or no resources, with an error code. -func (c *PublicDelegatedPrefixesListCall) ReturnPartialSuccess(returnPartialSuccess bool) *PublicDelegatedPrefixesListCall { - c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess)) +// OptionsRequestedPolicyVersion sets the optional parameter +// "optionsRequestedPolicyVersion": Requested IAM Policy version. +func (c *RegionBackendServicesGetIamPolicyCall) OptionsRequestedPolicyVersion(optionsRequestedPolicyVersion int64) *RegionBackendServicesGetIamPolicyCall { + c.urlParams_.Set("optionsRequestedPolicyVersion", fmt.Sprint(optionsRequestedPolicyVersion)) return c } // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *PublicDelegatedPrefixesListCall) Fields(s ...googleapi.Field) *PublicDelegatedPrefixesListCall { +func (c *RegionBackendServicesGetIamPolicyCall) Fields(s ...googleapi.Field) *RegionBackendServicesGetIamPolicyCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } @@ -57222,55 +81996,55 @@ func (c *PublicDelegatedPrefixesListCall) Fields(s ...googleapi.Field) *PublicDe // IfNoneMatch sets an 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. -func (c *PublicDelegatedPrefixesListCall) IfNoneMatch(entityTag string) *PublicDelegatedPrefixesListCall { +func (c *RegionBackendServicesGetIamPolicyCall) IfNoneMatch(entityTag string) *RegionBackendServicesGetIamPolicyCall { c.ifNoneMatch_ = entityTag return c } // Context sets the context to be used in this call's Do method. -func (c *PublicDelegatedPrefixesListCall) Context(ctx context.Context) *PublicDelegatedPrefixesListCall { +func (c *RegionBackendServicesGetIamPolicyCall) Context(ctx context.Context) *RegionBackendServicesGetIamPolicyCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *PublicDelegatedPrefixesListCall) Header() http.Header { +func (c *RegionBackendServicesGetIamPolicyCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *PublicDelegatedPrefixesListCall) doRequest(alt string) (*http.Response, error) { +func (c *RegionBackendServicesGetIamPolicyCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) if c.ifNoneMatch_ != "" { reqHeaders.Set("If-None-Match", c.ifNoneMatch_) } - var body io.Reader = nil c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/publicDelegatedPrefixes") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/backendServices/{resource}/getIamPolicy") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("GET", urls, body) + req, err := http.NewRequest("GET", urls, nil) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "region": c.region, + "project": c.project, + "region": c.region, + "resource": c.resource, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.regionBackendServices.getIamPolicy", "request", internallog.HTTPRequest(req, nil)) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.publicDelegatedPrefixes.list" call. +// Do executes the "compute.regionBackendServices.getIamPolicy" call. // Any non-2xx status code is an error. Response headers are in either -// *PublicDelegatedPrefixList.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 *PublicDelegatedPrefixesListCall) Do(opts ...googleapi.CallOption) (*PublicDelegatedPrefixList, error) { +// *Policy.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 *RegionBackendServicesGetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -57289,79 +82063,64 @@ func (c *PublicDelegatedPrefixesListCall) Do(opts ...googleapi.CallOption) (*Pub if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } - ret := &PublicDelegatedPrefixList{ + ret := &Policy{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.regionBackendServices.getIamPolicy", "response", internallog.HTTPResponse(res, b)) return ret, nil } -// 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 *PublicDelegatedPrefixesListCall) Pages(ctx context.Context, f func(*PublicDelegatedPrefixList) error) error { - c.ctx_ = ctx - defer c.PageToken(c.urlParams_.Get("pageToken")) - 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) - } -} - -type PublicDelegatedPrefixesPatchCall struct { - s *Service - project string - region string - publicDelegatedPrefix string - publicdelegatedprefix *PublicDelegatedPrefix - urlParams_ gensupport.URLParams - ctx_ context.Context - header_ http.Header +type RegionBackendServicesInsertCall struct { + s *Service + project string + region string + backendservice *BackendService + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header } -// Patch: Patches the specified PublicDelegatedPrefix resource with the data -// included in the request. This method supports PATCH semantics and uses JSON -// merge patch format and processing rules. +// Insert: Creates a regional BackendService resource in the specified project +// using +// the data included in the request. For more information, see +// Backend services overview. // -// - project: Project ID for this request. -// - publicDelegatedPrefix: Name of the PublicDelegatedPrefix resource to -// patch. -// - region: Name of the region for this request. -func (r *PublicDelegatedPrefixesService) Patch(project string, region string, publicDelegatedPrefix string, publicdelegatedprefix *PublicDelegatedPrefix) *PublicDelegatedPrefixesPatchCall { - c := &PublicDelegatedPrefixesPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)} +// - project: Project ID for this request. +// - region: Name of the region scoping this request. +func (r *RegionBackendServicesService) Insert(project string, region string, backendservice *BackendService) *RegionBackendServicesInsertCall { + c := &RegionBackendServicesInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project c.region = region - c.publicDelegatedPrefix = publicDelegatedPrefix - c.publicdelegatedprefix = publicdelegatedprefix + c.backendservice = backendservice 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 *PublicDelegatedPrefixesPatchCall) RequestId(requestId string) *PublicDelegatedPrefixesPatchCall { +// 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 *RegionBackendServicesInsertCall) RequestId(requestId string) *RegionBackendServicesInsertCall { c.urlParams_.Set("requestId", requestId) return c } @@ -57369,56 +82128,55 @@ func (c *PublicDelegatedPrefixesPatchCall) RequestId(requestId string) *PublicDe // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *PublicDelegatedPrefixesPatchCall) Fields(s ...googleapi.Field) *PublicDelegatedPrefixesPatchCall { +func (c *RegionBackendServicesInsertCall) Fields(s ...googleapi.Field) *RegionBackendServicesInsertCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } // Context sets the context to be used in this call's Do method. -func (c *PublicDelegatedPrefixesPatchCall) Context(ctx context.Context) *PublicDelegatedPrefixesPatchCall { +func (c *RegionBackendServicesInsertCall) Context(ctx context.Context) *RegionBackendServicesInsertCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *PublicDelegatedPrefixesPatchCall) Header() http.Header { +func (c *RegionBackendServicesInsertCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *PublicDelegatedPrefixesPatchCall) doRequest(alt string) (*http.Response, error) { +func (c *RegionBackendServicesInsertCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) - var body io.Reader = nil - body, err := googleapi.WithoutDataWrapper.JSONReader(c.publicdelegatedprefix) + body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.backendservice) if err != nil { return nil, err } c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/publicDelegatedPrefixes/{publicDelegatedPrefix}") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/backendServices") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("PATCH", urls, body) + req, err := http.NewRequest("POST", urls, body) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "region": c.region, - "publicDelegatedPrefix": c.publicDelegatedPrefix, + "project": c.project, + "region": c.region, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.regionBackendServices.insert", "request", internallog.HTTPRequest(req, body.Bytes())) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.publicDelegatedPrefixes.patch" call. +// Do executes the "compute.regionBackendServices.insert" call. // 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 *PublicDelegatedPrefixesPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) { +func (c *RegionBackendServicesInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -57444,101 +82202,225 @@ func (c *PublicDelegatedPrefixesPatchCall) Do(opts ...googleapi.CallOption) (*Op }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.regionBackendServices.insert", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type PublicDelegatedPrefixesWithdrawCall struct { - s *Service - project string - region string - publicDelegatedPrefix string - urlParams_ gensupport.URLParams - ctx_ context.Context - header_ http.Header +type RegionBackendServicesListCall struct { + s *Service + project string + region string + urlParams_ gensupport.URLParams + ifNoneMatch_ string + ctx_ context.Context + header_ http.Header } -// Withdraw: Withdraws the specified PublicDelegatedPrefix in the given region. +// List: Retrieves the list of regional BackendService resources available to +// the +// specified project in the given region. // -// - project: Project ID for this request. -// - publicDelegatedPrefix: The name of the public delegated prefix. It should -// comply with RFC1035. -// - region: The name of the region where the public delegated prefix is -// located. It should comply with RFC1035. -func (r *PublicDelegatedPrefixesService) Withdraw(project string, region string, publicDelegatedPrefix string) *PublicDelegatedPrefixesWithdrawCall { - c := &PublicDelegatedPrefixesWithdrawCall{s: r.s, urlParams_: make(gensupport.URLParams)} +// - project: Project ID for this request. +// - region: Name of the region scoping this request. +func (r *RegionBackendServicesService) List(project string, region string) *RegionBackendServicesListCall { + c := &RegionBackendServicesListCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project c.region = region - c.publicDelegatedPrefix = publicDelegatedPrefix 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 *PublicDelegatedPrefixesWithdrawCall) RequestId(requestId string) *PublicDelegatedPrefixesWithdrawCall { - c.urlParams_.Set("requestId", requestId) +// Filter sets the optional parameter "filter": A filter expression that +// filters resources listed in the response. Most +// Compute resources support two types of filter expressions: +// expressions that support regular expressions and expressions that follow +// API improvement proposal AIP-160. +// These two types of filter expressions cannot be mixed in one request. +// +// If you want to use AIP-160, your expression must specify the field name, +// an +// operator, and the value that you want to use for filtering. The value +// must be a string, a number, or a boolean. The 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`. +// +// The `:*` comparison can be used to test whether a key has been defined. +// For example, to find all objects with `owner` label +// use: +// ``` +// labels.owner:* +// ``` +// +// 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 onresource 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) +// ``` +// +// If you want to use a regular expression, use the `eq` (equal) or `ne` +// (not equal) operator against a single un-parenthesized expression with +// or +// without quotes or against multiple parenthesized expressions. +// Examples: +// +// `fieldname eq unquoted literal` +// `fieldname eq 'single quoted literal'` +// `fieldname eq "double quoted literal" +// `(fieldname1 eq literal) (fieldname2 ne "literal")` +// +// The literal value is interpreted as a regular expression using GoogleRE2 +// library syntax. +// The literal value must match the entire field. +// +// For example, to filter for instances that do not end with name +// "instance", +// you would use `name ne .*instance`. +// +// You cannot combine constraints on multiple fields using regular +// expressions. +func (c *RegionBackendServicesListCall) Filter(filter string) *RegionBackendServicesListCall { + 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 *RegionBackendServicesListCall) MaxResults(maxResults int64) *RegionBackendServicesListCall { + 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 *RegionBackendServicesListCall) OrderBy(orderBy string) *RegionBackendServicesListCall { + 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 *RegionBackendServicesListCall) PageToken(pageToken string) *RegionBackendServicesListCall { + c.urlParams_.Set("pageToken", pageToken) + return c +} + +// ReturnPartialSuccess sets the optional parameter "returnPartialSuccess": +// Opt-in for partial success behavior which provides partial results in +// case +// of failure. The default value is false. +// +// For example, when partial success behavior is enabled, aggregatedList for +// a +// single zone scope either returns all resources in the zone or no +// resources, +// with an error code. +func (c *RegionBackendServicesListCall) ReturnPartialSuccess(returnPartialSuccess bool) *RegionBackendServicesListCall { + c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess)) return c } // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *PublicDelegatedPrefixesWithdrawCall) Fields(s ...googleapi.Field) *PublicDelegatedPrefixesWithdrawCall { +func (c *RegionBackendServicesListCall) Fields(s ...googleapi.Field) *RegionBackendServicesListCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } +// IfNoneMatch sets an 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. +func (c *RegionBackendServicesListCall) IfNoneMatch(entityTag string) *RegionBackendServicesListCall { + c.ifNoneMatch_ = entityTag + return c +} + // Context sets the context to be used in this call's Do method. -func (c *PublicDelegatedPrefixesWithdrawCall) Context(ctx context.Context) *PublicDelegatedPrefixesWithdrawCall { +func (c *RegionBackendServicesListCall) Context(ctx context.Context) *RegionBackendServicesListCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *PublicDelegatedPrefixesWithdrawCall) Header() http.Header { +func (c *RegionBackendServicesListCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *PublicDelegatedPrefixesWithdrawCall) doRequest(alt string) (*http.Response, error) { +func (c *RegionBackendServicesListCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) - var body io.Reader = nil + if c.ifNoneMatch_ != "" { + reqHeaders.Set("If-None-Match", c.ifNoneMatch_) + } c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/publicDelegatedPrefixes/{publicDelegatedPrefix}/withdraw") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/backendServices") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("POST", urls, body) + req, err := http.NewRequest("GET", urls, nil) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "region": c.region, - "publicDelegatedPrefix": c.publicDelegatedPrefix, + "project": c.project, + "region": c.region, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.regionBackendServices.list", "request", internallog.HTTPRequest(req, nil)) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.publicDelegatedPrefixes.withdraw" call. +// Do executes the "compute.regionBackendServices.list" call. // 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 *PublicDelegatedPrefixesWithdrawCall) Do(opts ...googleapi.CallOption) (*Operation, error) { +// *BackendServiceList.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 *RegionBackendServicesListCall) Do(opts ...googleapi.CallOption) (*BackendServiceList, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -57557,106 +82439,257 @@ func (c *PublicDelegatedPrefixesWithdrawCall) Do(opts ...googleapi.CallOption) ( if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } - ret := &Operation{ + ret := &BackendServiceList{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.regionBackendServices.list", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type RegionAutoscalersDeleteCall struct { - s *Service - project string - region string - autoscaler string - urlParams_ gensupport.URLParams - ctx_ context.Context - header_ http.Header +// 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 *RegionBackendServicesListCall) Pages(ctx context.Context, f func(*BackendServiceList) error) error { + c.ctx_ = ctx + defer c.PageToken(c.urlParams_.Get("pageToken")) + 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) + } } -// Delete: Deletes the specified autoscaler. +type RegionBackendServicesListUsableCall struct { + s *Service + project string + region string + urlParams_ gensupport.URLParams + ifNoneMatch_ string + ctx_ context.Context + header_ http.Header +} + +// ListUsable: Retrieves a list of all usable backend services for Application +// Load +// Balancers and Proxy Network Load Balancers in the specified project in +// the +// given region. Backend services for external and internal passthrough +// Network Load Balancers are not included in the response. // -// - autoscaler: Name of the autoscaler to delete. -// - project: Project ID for this request. -// - region: Name of the region scoping this request. -func (r *RegionAutoscalersService) Delete(project string, region string, autoscaler string) *RegionAutoscalersDeleteCall { - c := &RegionAutoscalersDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)} +// - project: Project ID for this request. +// - region: Name of the region scoping this request. +// It must be a string that meets the requirements in RFC1035. +func (r *RegionBackendServicesService) ListUsable(project string, region string) *RegionBackendServicesListUsableCall { + c := &RegionBackendServicesListUsableCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project c.region = region - c.autoscaler = autoscaler 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 *RegionAutoscalersDeleteCall) RequestId(requestId string) *RegionAutoscalersDeleteCall { - c.urlParams_.Set("requestId", requestId) +// Filter sets the optional parameter "filter": A filter expression that +// filters resources listed in the response. Most +// Compute resources support two types of filter expressions: +// expressions that support regular expressions and expressions that follow +// API improvement proposal AIP-160. +// These two types of filter expressions cannot be mixed in one request. +// +// If you want to use AIP-160, your expression must specify the field name, +// an +// operator, and the value that you want to use for filtering. The value +// must be a string, a number, or a boolean. The 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`. +// +// The `:*` comparison can be used to test whether a key has been defined. +// For example, to find all objects with `owner` label +// use: +// ``` +// labels.owner:* +// ``` +// +// 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 onresource 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) +// ``` +// +// If you want to use a regular expression, use the `eq` (equal) or `ne` +// (not equal) operator against a single un-parenthesized expression with +// or +// without quotes or against multiple parenthesized expressions. +// Examples: +// +// `fieldname eq unquoted literal` +// `fieldname eq 'single quoted literal'` +// `fieldname eq "double quoted literal" +// `(fieldname1 eq literal) (fieldname2 ne "literal")` +// +// The literal value is interpreted as a regular expression using GoogleRE2 +// library syntax. +// The literal value must match the entire field. +// +// For example, to filter for instances that do not end with name +// "instance", +// you would use `name ne .*instance`. +// +// You cannot combine constraints on multiple fields using regular +// expressions. +func (c *RegionBackendServicesListUsableCall) Filter(filter string) *RegionBackendServicesListUsableCall { + 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 *RegionBackendServicesListUsableCall) MaxResults(maxResults int64) *RegionBackendServicesListUsableCall { + 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 *RegionBackendServicesListUsableCall) OrderBy(orderBy string) *RegionBackendServicesListUsableCall { + 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 *RegionBackendServicesListUsableCall) PageToken(pageToken string) *RegionBackendServicesListUsableCall { + c.urlParams_.Set("pageToken", pageToken) + return c +} + +// ReturnPartialSuccess sets the optional parameter "returnPartialSuccess": +// Opt-in for partial success behavior which provides partial results in +// case +// of failure. The default value is false. +// +// For example, when partial success behavior is enabled, aggregatedList for +// a +// single zone scope either returns all resources in the zone or no +// resources, +// with an error code. +func (c *RegionBackendServicesListUsableCall) ReturnPartialSuccess(returnPartialSuccess bool) *RegionBackendServicesListUsableCall { + c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess)) return c } // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *RegionAutoscalersDeleteCall) Fields(s ...googleapi.Field) *RegionAutoscalersDeleteCall { +func (c *RegionBackendServicesListUsableCall) Fields(s ...googleapi.Field) *RegionBackendServicesListUsableCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } +// IfNoneMatch sets an 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. +func (c *RegionBackendServicesListUsableCall) IfNoneMatch(entityTag string) *RegionBackendServicesListUsableCall { + c.ifNoneMatch_ = entityTag + return c +} + // Context sets the context to be used in this call's Do method. -func (c *RegionAutoscalersDeleteCall) Context(ctx context.Context) *RegionAutoscalersDeleteCall { +func (c *RegionBackendServicesListUsableCall) Context(ctx context.Context) *RegionBackendServicesListUsableCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *RegionAutoscalersDeleteCall) Header() http.Header { +func (c *RegionBackendServicesListUsableCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *RegionAutoscalersDeleteCall) doRequest(alt string) (*http.Response, error) { +func (c *RegionBackendServicesListUsableCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) - var body io.Reader = nil + if c.ifNoneMatch_ != "" { + reqHeaders.Set("If-None-Match", c.ifNoneMatch_) + } c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/autoscalers/{autoscaler}") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/backendServices/listUsable") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("DELETE", urls, body) + req, err := http.NewRequest("GET", urls, nil) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "region": c.region, - "autoscaler": c.autoscaler, + "project": c.project, + "region": c.region, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.regionBackendServices.listUsable", "request", internallog.HTTPRequest(req, nil)) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.regionAutoscalers.delete" call. +// Do executes the "compute.regionBackendServices.listUsable" call. // 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 *RegionAutoscalersDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) { +// *BackendServiceListUsable.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 *RegionBackendServicesListUsableCall) Do(opts ...googleapi.CallOption) (*BackendServiceListUsable, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -57675,103 +82708,147 @@ func (c *RegionAutoscalersDeleteCall) Do(opts ...googleapi.CallOption) (*Operati if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } - ret := &Operation{ + ret := &BackendServiceListUsable{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.regionBackendServices.listUsable", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type RegionAutoscalersGetCall struct { - s *Service - project string - region string - autoscaler string - urlParams_ gensupport.URLParams - ifNoneMatch_ string - ctx_ context.Context - header_ http.Header +// 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 *RegionBackendServicesListUsableCall) Pages(ctx context.Context, f func(*BackendServiceListUsable) error) error { + c.ctx_ = ctx + defer c.PageToken(c.urlParams_.Get("pageToken")) + 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) + } } -// Get: Returns the specified autoscaler. +type RegionBackendServicesPatchCall struct { + s *Service + project string + region string + backendService string + backendservice *BackendService + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header +} + +// Patch: Updates the specified regional BackendService resource with the +// data +// included in the request. For more information, see +// Understanding backend services This method +// supports PATCH semantics and uses the JSON merge +// patch format and processing rules. // -// - autoscaler: Name of the autoscaler to return. +// - backendService: Name of the BackendService resource to patch. // - project: Project ID for this request. // - region: Name of the region scoping this request. -func (r *RegionAutoscalersService) Get(project string, region string, autoscaler string) *RegionAutoscalersGetCall { - c := &RegionAutoscalersGetCall{s: r.s, urlParams_: make(gensupport.URLParams)} +func (r *RegionBackendServicesService) Patch(project string, region string, backendService string, backendservice *BackendService) *RegionBackendServicesPatchCall { + c := &RegionBackendServicesPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project c.region = region - c.autoscaler = autoscaler + c.backendService = backendService + c.backendservice = backendservice + 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 *RegionBackendServicesPatchCall) RequestId(requestId string) *RegionBackendServicesPatchCall { + 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 // details. -func (c *RegionAutoscalersGetCall) Fields(s ...googleapi.Field) *RegionAutoscalersGetCall { +func (c *RegionBackendServicesPatchCall) Fields(s ...googleapi.Field) *RegionBackendServicesPatchCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } -// IfNoneMatch sets an 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. -func (c *RegionAutoscalersGetCall) IfNoneMatch(entityTag string) *RegionAutoscalersGetCall { - c.ifNoneMatch_ = entityTag - return c -} - // Context sets the context to be used in this call's Do method. -func (c *RegionAutoscalersGetCall) Context(ctx context.Context) *RegionAutoscalersGetCall { +func (c *RegionBackendServicesPatchCall) Context(ctx context.Context) *RegionBackendServicesPatchCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *RegionAutoscalersGetCall) Header() http.Header { +func (c *RegionBackendServicesPatchCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *RegionAutoscalersGetCall) doRequest(alt string) (*http.Response, error) { - reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) - if c.ifNoneMatch_ != "" { - reqHeaders.Set("If-None-Match", c.ifNoneMatch_) +func (c *RegionBackendServicesPatchCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) + body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.backendservice) + if err != nil { + return nil, err } - var body io.Reader = nil c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/autoscalers/{autoscaler}") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/backendServices/{backendService}") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("GET", urls, body) + req, err := http.NewRequest("PATCH", urls, body) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "region": c.region, - "autoscaler": c.autoscaler, + "project": c.project, + "region": c.region, + "backendService": c.backendService, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.regionBackendServices.patch", "request", internallog.HTTPRequest(req, body.Bytes())) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.regionAutoscalers.get" call. +// Do executes the "compute.regionBackendServices.patch" call. // Any non-2xx status code is an error. Response headers are in either -// *Autoscaler.ServerResponse.Header or (if a response was returned at all) in +// *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 *RegionAutoscalersGetCall) Do(opts ...googleapi.CallOption) (*Autoscaler, error) { +func (c *RegionBackendServicesPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -57790,90 +82867,80 @@ func (c *RegionAutoscalersGetCall) Do(opts ...googleapi.CallOption) (*Autoscaler if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } - ret := &Autoscaler{ + ret := &Operation{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.regionBackendServices.patch", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type RegionAutoscalersInsertCall struct { - s *Service - project string - region string - autoscaler *Autoscaler - urlParams_ gensupport.URLParams - ctx_ context.Context - header_ http.Header +type RegionBackendServicesSetIamPolicyCall struct { + s *Service + project string + region string + resource string + regionsetpolicyrequest *RegionSetPolicyRequest + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header } -// Insert: Creates an autoscaler in the specified project using the data -// included in the request. +// SetIamPolicy: Sets the access control policy on the specified +// resource. +// Replaces any existing policy. // // - project: Project ID for this request. -// - region: Name of the region scoping this request. -func (r *RegionAutoscalersService) Insert(project string, region string, autoscaler *Autoscaler) *RegionAutoscalersInsertCall { - c := &RegionAutoscalersInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)} +// - region: The name of the region for this request. +// - resource: Name or id of the resource for this request. +func (r *RegionBackendServicesService) SetIamPolicy(project string, region string, resource string, regionsetpolicyrequest *RegionSetPolicyRequest) *RegionBackendServicesSetIamPolicyCall { + c := &RegionBackendServicesSetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project c.region = region - c.autoscaler = autoscaler - 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 *RegionAutoscalersInsertCall) RequestId(requestId string) *RegionAutoscalersInsertCall { - c.urlParams_.Set("requestId", requestId) + c.resource = resource + c.regionsetpolicyrequest = regionsetpolicyrequest return c } // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *RegionAutoscalersInsertCall) Fields(s ...googleapi.Field) *RegionAutoscalersInsertCall { +func (c *RegionBackendServicesSetIamPolicyCall) Fields(s ...googleapi.Field) *RegionBackendServicesSetIamPolicyCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } // Context sets the context to be used in this call's Do method. -func (c *RegionAutoscalersInsertCall) Context(ctx context.Context) *RegionAutoscalersInsertCall { +func (c *RegionBackendServicesSetIamPolicyCall) Context(ctx context.Context) *RegionBackendServicesSetIamPolicyCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *RegionAutoscalersInsertCall) Header() http.Header { +func (c *RegionBackendServicesSetIamPolicyCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *RegionAutoscalersInsertCall) doRequest(alt string) (*http.Response, error) { +func (c *RegionBackendServicesSetIamPolicyCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) - var body io.Reader = nil - body, err := googleapi.WithoutDataWrapper.JSONReader(c.autoscaler) + body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.regionsetpolicyrequest) if err != nil { return nil, err } c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/autoscalers") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/backendServices/{resource}/setIamPolicy") urls += "?" + c.urlParams_.Encode() req, err := http.NewRequest("POST", urls, body) if err != nil { @@ -57881,18 +82948,20 @@ func (c *RegionAutoscalersInsertCall) doRequest(alt string) (*http.Response, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "region": c.region, + "project": c.project, + "region": c.region, + "resource": c.resource, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.regionBackendServices.setIamPolicy", "request", internallog.HTTPRequest(req, body.Bytes())) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.regionAutoscalers.insert" call. +// Do executes the "compute.regionBackendServices.setIamPolicy" call. // 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 +// *Policy.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 *RegionAutoscalersInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) { +func (c *RegionBackendServicesSetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -57911,178 +82980,127 @@ func (c *RegionAutoscalersInsertCall) Do(opts ...googleapi.CallOption) (*Operati if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } - ret := &Operation{ + ret := &Policy{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.regionBackendServices.setIamPolicy", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type RegionAutoscalersListCall struct { - s *Service - project string - region string - urlParams_ gensupport.URLParams - ifNoneMatch_ string - ctx_ context.Context - header_ http.Header +type RegionBackendServicesSetSecurityPolicyCall struct { + s *Service + project string + region string + backendService string + securitypolicyreference *SecurityPolicyReference + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header } -// List: Retrieves a list of autoscalers contained within the specified region. +// SetSecurityPolicy: Sets the Google Cloud Armor security policy for the +// specified backend +// service. For more information, seeGoogle +// Cloud Armor Overview // +// - backendService: Name of the BackendService resource to which the security +// policy should be +// +// set. The name should conform to RFC1035. // - project: Project ID for this request. // - region: Name of the region scoping this request. -func (r *RegionAutoscalersService) List(project string, region string) *RegionAutoscalersListCall { - c := &RegionAutoscalersListCall{s: r.s, urlParams_: make(gensupport.URLParams)} +func (r *RegionBackendServicesService) SetSecurityPolicy(project string, region string, backendService string, securitypolicyreference *SecurityPolicyReference) *RegionBackendServicesSetSecurityPolicyCall { + c := &RegionBackendServicesSetSecurityPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project c.region = region + c.backendService = backendService + c.securitypolicyreference = securitypolicyreference return c } -// Filter sets the optional parameter "filter": A filter expression that -// filters resources listed in the response. Most Compute resources support two -// types of filter expressions: expressions that support regular expressions -// and expressions that follow API improvement proposal AIP-160. These two -// types of filter expressions cannot be mixed in one request. If you want to -// use AIP-160, your expression must specify the field name, an operator, and -// the value that you want to use for filtering. The value must be a string, a -// number, or a boolean. The 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`. The `:*` comparison can be used to test whether a key has -// been defined. For example, to find all objects with `owner` label use: ``` -// labels.owner:* ``` 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) ``` If you want to use a regular -// expression, use the `eq` (equal) or `ne` (not equal) operator against a -// single un-parenthesized expression with or without quotes or against -// multiple parenthesized expressions. Examples: `fieldname eq unquoted -// literal` `fieldname eq 'single quoted literal'` `fieldname eq "double quoted -// literal" `(fieldname1 eq literal) (fieldname2 ne "literal")` The literal -// value is interpreted as a regular expression using Google RE2 library -// syntax. The literal value must match the entire field. For example, to -// filter for instances that do not end with name "instance", you would use -// `name ne .*instance`. You cannot combine constraints on multiple fields -// using regular expressions. -func (c *RegionAutoscalersListCall) Filter(filter string) *RegionAutoscalersListCall { - 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 *RegionAutoscalersListCall) MaxResults(maxResults int64) *RegionAutoscalersListCall { - 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 *RegionAutoscalersListCall) OrderBy(orderBy string) *RegionAutoscalersListCall { - 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 *RegionAutoscalersListCall) PageToken(pageToken string) *RegionAutoscalersListCall { - c.urlParams_.Set("pageToken", pageToken) - return c -} - -// ReturnPartialSuccess sets the optional parameter "returnPartialSuccess": -// Opt-in for partial success behavior which provides partial results in case -// of failure. The default value is false. For example, when partial success -// behavior is enabled, aggregatedList for a single zone scope either returns -// all resources in the zone or no resources, with an error code. -func (c *RegionAutoscalersListCall) ReturnPartialSuccess(returnPartialSuccess bool) *RegionAutoscalersListCall { - c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess)) +// 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 *RegionBackendServicesSetSecurityPolicyCall) RequestId(requestId string) *RegionBackendServicesSetSecurityPolicyCall { + 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 // details. -func (c *RegionAutoscalersListCall) Fields(s ...googleapi.Field) *RegionAutoscalersListCall { +func (c *RegionBackendServicesSetSecurityPolicyCall) Fields(s ...googleapi.Field) *RegionBackendServicesSetSecurityPolicyCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } -// IfNoneMatch sets an 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. -func (c *RegionAutoscalersListCall) IfNoneMatch(entityTag string) *RegionAutoscalersListCall { - c.ifNoneMatch_ = entityTag - return c -} - // Context sets the context to be used in this call's Do method. -func (c *RegionAutoscalersListCall) Context(ctx context.Context) *RegionAutoscalersListCall { +func (c *RegionBackendServicesSetSecurityPolicyCall) Context(ctx context.Context) *RegionBackendServicesSetSecurityPolicyCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *RegionAutoscalersListCall) Header() http.Header { +func (c *RegionBackendServicesSetSecurityPolicyCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *RegionAutoscalersListCall) doRequest(alt string) (*http.Response, error) { - reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) - if c.ifNoneMatch_ != "" { - reqHeaders.Set("If-None-Match", c.ifNoneMatch_) +func (c *RegionBackendServicesSetSecurityPolicyCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) + body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.securitypolicyreference) + if err != nil { + return nil, err } - var body io.Reader = nil c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/autoscalers") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/backendServices/{backendService}/setSecurityPolicy") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("GET", urls, body) + req, err := http.NewRequest("POST", urls, body) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "region": c.region, + "project": c.project, + "region": c.region, + "backendService": c.backendService, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.regionBackendServices.setSecurityPolicy", "request", internallog.HTTPRequest(req, body.Bytes())) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.regionAutoscalers.list" call. +// Do executes the "compute.regionBackendServices.setSecurityPolicy" call. // Any non-2xx status code is an error. Response headers are in either -// *RegionAutoscalerList.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 *RegionAutoscalersListCall) Do(opts ...googleapi.CallOption) (*RegionAutoscalerList, error) { +// *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 *RegionBackendServicesSetSecurityPolicyCall) Do(opts ...googleapi.CallOption) (*Operation, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -58101,138 +83119,101 @@ func (c *RegionAutoscalersListCall) Do(opts ...googleapi.CallOption) (*RegionAut if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } - ret := &RegionAutoscalerList{ + ret := &Operation{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.regionBackendServices.setSecurityPolicy", "response", internallog.HTTPResponse(res, b)) return ret, nil } -// 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 *RegionAutoscalersListCall) Pages(ctx context.Context, f func(*RegionAutoscalerList) error) error { - c.ctx_ = ctx - defer c.PageToken(c.urlParams_.Get("pageToken")) - 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) - } -} - -type RegionAutoscalersPatchCall struct { - s *Service - project string - region string - autoscaler *Autoscaler - urlParams_ gensupport.URLParams - ctx_ context.Context - header_ http.Header +type RegionBackendServicesTestIamPermissionsCall struct { + s *Service + project string + region string + resource string + testpermissionsrequest *TestPermissionsRequest + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header } -// Patch: Updates an autoscaler in the specified project using the data -// included in the request. This method supports PATCH semantics and uses the -// JSON merge patch format and processing rules. +// TestIamPermissions: Returns permissions that a caller has on the specified +// resource. // // - project: Project ID for this request. -// - region: Name of the region scoping this request. -func (r *RegionAutoscalersService) Patch(project string, region string, autoscaler *Autoscaler) *RegionAutoscalersPatchCall { - c := &RegionAutoscalersPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)} +// - region: The name of the region for this request. +// - resource: Name or id of the resource for this request. +func (r *RegionBackendServicesService) TestIamPermissions(project string, region string, resource string, testpermissionsrequest *TestPermissionsRequest) *RegionBackendServicesTestIamPermissionsCall { + c := &RegionBackendServicesTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project c.region = region - c.autoscaler = autoscaler - return c -} - -// Autoscaler sets the optional parameter "autoscaler": Name of the autoscaler -// to patch. -func (c *RegionAutoscalersPatchCall) Autoscaler(autoscaler string) *RegionAutoscalersPatchCall { - c.urlParams_.Set("autoscaler", autoscaler) - 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 *RegionAutoscalersPatchCall) RequestId(requestId string) *RegionAutoscalersPatchCall { - c.urlParams_.Set("requestId", requestId) + c.resource = resource + c.testpermissionsrequest = testpermissionsrequest return c } // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *RegionAutoscalersPatchCall) Fields(s ...googleapi.Field) *RegionAutoscalersPatchCall { +func (c *RegionBackendServicesTestIamPermissionsCall) Fields(s ...googleapi.Field) *RegionBackendServicesTestIamPermissionsCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } // Context sets the context to be used in this call's Do method. -func (c *RegionAutoscalersPatchCall) Context(ctx context.Context) *RegionAutoscalersPatchCall { +func (c *RegionBackendServicesTestIamPermissionsCall) Context(ctx context.Context) *RegionBackendServicesTestIamPermissionsCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *RegionAutoscalersPatchCall) Header() http.Header { +func (c *RegionBackendServicesTestIamPermissionsCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *RegionAutoscalersPatchCall) doRequest(alt string) (*http.Response, error) { +func (c *RegionBackendServicesTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) - var body io.Reader = nil - body, err := googleapi.WithoutDataWrapper.JSONReader(c.autoscaler) + body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.testpermissionsrequest) if err != nil { return nil, err } c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/autoscalers") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/backendServices/{resource}/testIamPermissions") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("PATCH", urls, body) + req, err := http.NewRequest("POST", urls, body) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "region": c.region, + "project": c.project, + "region": c.region, + "resource": c.resource, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.regionBackendServices.testIamPermissions", "request", internallog.HTTPRequest(req, body.Bytes())) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.regionAutoscalers.patch" call. +// Do executes the "compute.regionBackendServices.testIamPermissions" call. // 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 *RegionAutoscalersPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) { +// *TestPermissionsResponse.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 *RegionBackendServicesTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -58251,60 +83232,68 @@ func (c *RegionAutoscalersPatchCall) Do(opts ...googleapi.CallOption) (*Operatio if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } - ret := &Operation{ + ret := &TestPermissionsResponse{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.regionBackendServices.testIamPermissions", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type RegionAutoscalersUpdateCall struct { - s *Service - project string - region string - autoscaler *Autoscaler - urlParams_ gensupport.URLParams - ctx_ context.Context - header_ http.Header +type RegionBackendServicesUpdateCall struct { + s *Service + project string + region string + backendService string + backendservice *BackendService + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header } -// Update: Updates an autoscaler in the specified project using the data -// included in the request. +// Update: Updates the specified regional BackendService resource with the +// data +// included in the request. For more information, +// see +// Backend services overview. // +// - backendService: Name of the BackendService resource to update. // - project: Project ID for this request. // - region: Name of the region scoping this request. -func (r *RegionAutoscalersService) Update(project string, region string, autoscaler *Autoscaler) *RegionAutoscalersUpdateCall { - c := &RegionAutoscalersUpdateCall{s: r.s, urlParams_: make(gensupport.URLParams)} +func (r *RegionBackendServicesService) Update(project string, region string, backendService string, backendservice *BackendService) *RegionBackendServicesUpdateCall { + c := &RegionBackendServicesUpdateCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project c.region = region - c.autoscaler = autoscaler - return c -} - -// Autoscaler sets the optional parameter "autoscaler": Name of the autoscaler -// to update. -func (c *RegionAutoscalersUpdateCall) Autoscaler(autoscaler string) *RegionAutoscalersUpdateCall { - c.urlParams_.Set("autoscaler", autoscaler) + c.backendService = backendService + c.backendservice = backendservice 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 *RegionAutoscalersUpdateCall) RequestId(requestId string) *RegionAutoscalersUpdateCall { +// 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 *RegionBackendServicesUpdateCall) RequestId(requestId string) *RegionBackendServicesUpdateCall { c.urlParams_.Set("requestId", requestId) return c } @@ -58312,36 +83301,35 @@ func (c *RegionAutoscalersUpdateCall) RequestId(requestId string) *RegionAutosca // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *RegionAutoscalersUpdateCall) Fields(s ...googleapi.Field) *RegionAutoscalersUpdateCall { +func (c *RegionBackendServicesUpdateCall) Fields(s ...googleapi.Field) *RegionBackendServicesUpdateCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } // Context sets the context to be used in this call's Do method. -func (c *RegionAutoscalersUpdateCall) Context(ctx context.Context) *RegionAutoscalersUpdateCall { +func (c *RegionBackendServicesUpdateCall) Context(ctx context.Context) *RegionBackendServicesUpdateCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *RegionAutoscalersUpdateCall) Header() http.Header { +func (c *RegionBackendServicesUpdateCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *RegionAutoscalersUpdateCall) doRequest(alt string) (*http.Response, error) { +func (c *RegionBackendServicesUpdateCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) - var body io.Reader = nil - body, err := googleapi.WithoutDataWrapper.JSONReader(c.autoscaler) + body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.backendservice) if err != nil { return nil, err } c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/autoscalers") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/backendServices/{backendService}") urls += "?" + c.urlParams_.Encode() req, err := http.NewRequest("PUT", urls, body) if err != nil { @@ -58349,18 +83337,20 @@ func (c *RegionAutoscalersUpdateCall) doRequest(alt string) (*http.Response, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "region": c.region, + "project": c.project, + "region": c.region, + "backendService": c.backendService, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.regionBackendServices.update", "request", internallog.HTTPRequest(req, body.Bytes())) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.regionAutoscalers.update" call. +// Do executes the "compute.regionBackendServices.update" call. // 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 *RegionAutoscalersUpdateCall) Do(opts ...googleapi.CallOption) (*Operation, error) { +func (c *RegionBackendServicesUpdateCall) Do(opts ...googleapi.CallOption) (*Operation, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -58386,8 +83376,10 @@ func (c *RegionAutoscalersUpdateCall) Do(opts ...googleapi.CallOption) (*Operati }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.regionBackendServices.update", "response", internallog.HTTPResponse(res, b)) return ret, nil } diff --git a/vendor/google.golang.org/api/compute/v1/compute3-gen.go b/vendor/google.golang.org/api/compute/v1/compute3-gen.go index a78dcd5b5..03a4af666 100644 --- a/vendor/google.golang.org/api/compute/v1/compute3-gen.go +++ b/vendor/google.golang.org/api/compute/v1/compute3-gen.go @@ -1,4 +1,4 @@ -// Copyright 2024 Google LLC. +// Copyright 2026 Google LLC. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. @@ -9,100 +9,248 @@ package compute import ( "context" "fmt" - "io" "net/http" + internallog "github.com/googleapis/gax-go/v2/internallog" googleapi "google.golang.org/api/googleapi" gensupport "google.golang.org/api/internal/gensupport" ) -type RegionBackendServicesDeleteCall struct { - s *Service - project string - region string - backendService string - urlParams_ gensupport.URLParams - ctx_ context.Context - header_ http.Header +type RegionCommitmentsAggregatedListCall struct { + s *Service + project string + urlParams_ gensupport.URLParams + ifNoneMatch_ string + ctx_ context.Context + header_ http.Header } -// Delete: Deletes the specified regional BackendService resource. +// AggregatedList: Retrieves an aggregated list of commitments by region. +// +// To prevent failure, it is recommended that you set +// the +// `returnPartialSuccess` parameter to `true`. // -// - backendService: Name of the BackendService resource to delete. // - project: Project ID for this request. -// - region: Name of the region scoping this request. -func (r *RegionBackendServicesService) Delete(project string, region string, backendService string) *RegionBackendServicesDeleteCall { - c := &RegionBackendServicesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)} +func (r *RegionCommitmentsService) AggregatedList(project string) *RegionCommitmentsAggregatedListCall { + c := &RegionCommitmentsAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project - c.region = region - c.backendService = backendService 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 *RegionBackendServicesDeleteCall) RequestId(requestId string) *RegionBackendServicesDeleteCall { - c.urlParams_.Set("requestId", requestId) +// Filter sets the optional parameter "filter": A filter expression that +// filters resources listed in the response. Most +// Compute resources support two types of filter expressions: +// expressions that support regular expressions and expressions that follow +// API improvement proposal AIP-160. +// These two types of filter expressions cannot be mixed in one request. +// +// If you want to use AIP-160, your expression must specify the field name, +// an +// operator, and the value that you want to use for filtering. The value +// must be a string, a number, or a boolean. The 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`. +// +// The `:*` comparison can be used to test whether a key has been defined. +// For example, to find all objects with `owner` label +// use: +// ``` +// labels.owner:* +// ``` +// +// 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 onresource 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) +// ``` +// +// If you want to use a regular expression, use the `eq` (equal) or `ne` +// (not equal) operator against a single un-parenthesized expression with +// or +// without quotes or against multiple parenthesized expressions. +// Examples: +// +// `fieldname eq unquoted literal` +// `fieldname eq 'single quoted literal'` +// `fieldname eq "double quoted literal" +// `(fieldname1 eq literal) (fieldname2 ne "literal")` +// +// The literal value is interpreted as a regular expression using GoogleRE2 +// library syntax. +// The literal value must match the entire field. +// +// For example, to filter for instances that do not end with name +// "instance", +// you would use `name ne .*instance`. +// +// You cannot combine constraints on multiple fields using regular +// expressions. +func (c *RegionCommitmentsAggregatedListCall) Filter(filter string) *RegionCommitmentsAggregatedListCall { + c.urlParams_.Set("filter", filter) + return c +} + +// IncludeAllScopes sets the optional parameter "includeAllScopes": Indicates +// whether every visible scope for each scope type (zone, region, +// global) should be included in the response. For new resource types +// added +// after this field, the flag has no effect as new resource types will +// always +// include every visible scope for each scope type in response. For +// resource +// types which predate this field, if this flag is omitted or false, +// only +// scopes of the scope types where the resource type is expected to be +// found +// will be included. +func (c *RegionCommitmentsAggregatedListCall) IncludeAllScopes(includeAllScopes bool) *RegionCommitmentsAggregatedListCall { + c.urlParams_.Set("includeAllScopes", fmt.Sprint(includeAllScopes)) + 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 *RegionCommitmentsAggregatedListCall) MaxResults(maxResults int64) *RegionCommitmentsAggregatedListCall { + 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 *RegionCommitmentsAggregatedListCall) OrderBy(orderBy string) *RegionCommitmentsAggregatedListCall { + 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 *RegionCommitmentsAggregatedListCall) PageToken(pageToken string) *RegionCommitmentsAggregatedListCall { + c.urlParams_.Set("pageToken", pageToken) + return c +} + +// ReturnPartialSuccess sets the optional parameter "returnPartialSuccess": +// Opt-in for partial success behavior which provides partial results in +// case +// of failure. The default value is false. +// +// For example, when partial success behavior is enabled, aggregatedList for +// a +// single zone scope either returns all resources in the zone or no +// resources, +// with an error code. +func (c *RegionCommitmentsAggregatedListCall) ReturnPartialSuccess(returnPartialSuccess bool) *RegionCommitmentsAggregatedListCall { + c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess)) + return c +} + +// ServiceProjectNumber sets the optional parameter "serviceProjectNumber": The +// Shared VPC service project id or service project number for which +// aggregated list request is invoked for subnetworks list-usable api. +func (c *RegionCommitmentsAggregatedListCall) ServiceProjectNumber(serviceProjectNumber int64) *RegionCommitmentsAggregatedListCall { + c.urlParams_.Set("serviceProjectNumber", fmt.Sprint(serviceProjectNumber)) return c } // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *RegionBackendServicesDeleteCall) Fields(s ...googleapi.Field) *RegionBackendServicesDeleteCall { +func (c *RegionCommitmentsAggregatedListCall) Fields(s ...googleapi.Field) *RegionCommitmentsAggregatedListCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } +// IfNoneMatch sets an 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. +func (c *RegionCommitmentsAggregatedListCall) IfNoneMatch(entityTag string) *RegionCommitmentsAggregatedListCall { + c.ifNoneMatch_ = entityTag + return c +} + // Context sets the context to be used in this call's Do method. -func (c *RegionBackendServicesDeleteCall) Context(ctx context.Context) *RegionBackendServicesDeleteCall { +func (c *RegionCommitmentsAggregatedListCall) Context(ctx context.Context) *RegionCommitmentsAggregatedListCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *RegionBackendServicesDeleteCall) Header() http.Header { +func (c *RegionCommitmentsAggregatedListCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *RegionBackendServicesDeleteCall) doRequest(alt string) (*http.Response, error) { +func (c *RegionCommitmentsAggregatedListCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) - var body io.Reader = nil + if c.ifNoneMatch_ != "" { + reqHeaders.Set("If-None-Match", c.ifNoneMatch_) + } c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/backendServices/{backendService}") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/aggregated/commitments") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("DELETE", urls, body) + req, err := http.NewRequest("GET", urls, nil) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "region": c.region, - "backendService": c.backendService, + "project": c.project, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.regionCommitments.aggregatedList", "request", internallog.HTTPRequest(req, nil)) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.regionBackendServices.delete" call. +// Do executes the "compute.regionCommitments.aggregatedList" call. // 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 *RegionBackendServicesDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) { +// *CommitmentAggregatedList.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 *RegionCommitmentsAggregatedListCall) Do(opts ...googleapi.CallOption) (*CommitmentAggregatedList, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -121,47 +269,70 @@ func (c *RegionBackendServicesDeleteCall) Do(opts ...googleapi.CallOption) (*Ope if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } - ret := &Operation{ + ret := &CommitmentAggregatedList{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.regionCommitments.aggregatedList", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type RegionBackendServicesGetCall struct { - s *Service - project string - region string - backendService string - urlParams_ gensupport.URLParams - ifNoneMatch_ string - ctx_ context.Context - header_ http.Header +// 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 *RegionCommitmentsAggregatedListCall) Pages(ctx context.Context, f func(*CommitmentAggregatedList) error) error { + c.ctx_ = ctx + defer c.PageToken(c.urlParams_.Get("pageToken")) + 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) + } +} + +type RegionCommitmentsGetCall struct { + s *Service + project string + region string + commitment string + urlParams_ gensupport.URLParams + ifNoneMatch_ string + ctx_ context.Context + header_ http.Header } -// Get: Returns the specified regional BackendService resource. +// Get: Returns the specified commitment resource. // -// - backendService: Name of the BackendService resource to return. +// - commitment: Name of the commitment to return. // - project: Project ID for this request. -// - region: Name of the region scoping this request. -func (r *RegionBackendServicesService) Get(project string, region string, backendService string) *RegionBackendServicesGetCall { - c := &RegionBackendServicesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)} +// - region: Name of the region for this request. +func (r *RegionCommitmentsService) Get(project string, region string, commitment string) *RegionCommitmentsGetCall { + c := &RegionCommitmentsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project c.region = region - c.backendService = backendService + c.commitment = commitment return c } // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *RegionBackendServicesGetCall) Fields(s ...googleapi.Field) *RegionBackendServicesGetCall { +func (c *RegionCommitmentsGetCall) Fields(s ...googleapi.Field) *RegionCommitmentsGetCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } @@ -169,55 +340,55 @@ func (c *RegionBackendServicesGetCall) Fields(s ...googleapi.Field) *RegionBacke // IfNoneMatch sets an 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. -func (c *RegionBackendServicesGetCall) IfNoneMatch(entityTag string) *RegionBackendServicesGetCall { +func (c *RegionCommitmentsGetCall) IfNoneMatch(entityTag string) *RegionCommitmentsGetCall { c.ifNoneMatch_ = entityTag return c } // Context sets the context to be used in this call's Do method. -func (c *RegionBackendServicesGetCall) Context(ctx context.Context) *RegionBackendServicesGetCall { +func (c *RegionCommitmentsGetCall) Context(ctx context.Context) *RegionCommitmentsGetCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *RegionBackendServicesGetCall) Header() http.Header { +func (c *RegionCommitmentsGetCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *RegionBackendServicesGetCall) doRequest(alt string) (*http.Response, error) { +func (c *RegionCommitmentsGetCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) if c.ifNoneMatch_ != "" { reqHeaders.Set("If-None-Match", c.ifNoneMatch_) } - var body io.Reader = nil c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/backendServices/{backendService}") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/commitments/{commitment}") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("GET", urls, body) + req, err := http.NewRequest("GET", urls, nil) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "region": c.region, - "backendService": c.backendService, + "project": c.project, + "region": c.region, + "commitment": c.commitment, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.regionCommitments.get", "request", internallog.HTTPRequest(req, nil)) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.regionBackendServices.get" call. +// Do executes the "compute.regionCommitments.get" call. // Any non-2xx status code is an error. Response headers are in either -// *BackendService.ServerResponse.Header or (if a response was returned at all) -// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check +// *Commitment.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 *RegionBackendServicesGetCall) Do(opts ...googleapi.CallOption) (*BackendService, error) { +func (c *RegionCommitmentsGetCall) Do(opts ...googleapi.CallOption) (*Commitment, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -236,79 +407,99 @@ func (c *RegionBackendServicesGetCall) Do(opts ...googleapi.CallOption) (*Backen if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } - ret := &BackendService{ + ret := &Commitment{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.regionCommitments.get", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type RegionBackendServicesGetHealthCall struct { - s *Service - project string - region string - backendService string - resourcegroupreference *ResourceGroupReference - urlParams_ gensupport.URLParams - ctx_ context.Context - header_ http.Header +type RegionCommitmentsInsertCall struct { + s *Service + project string + region string + commitment *Commitment + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header } -// GetHealth: Gets the most recent health check results for this regional -// BackendService. +// Insert: Creates a commitment in the specified project using the +// data +// included in the request. // -// - backendService: Name of the BackendService resource for which to get -// health. -// - project: . -// - region: Name of the region scoping this request. -func (r *RegionBackendServicesService) GetHealth(project string, region string, backendService string, resourcegroupreference *ResourceGroupReference) *RegionBackendServicesGetHealthCall { - c := &RegionBackendServicesGetHealthCall{s: r.s, urlParams_: make(gensupport.URLParams)} +// - project: Project ID for this request. +// - region: Name of the region for this request. +func (r *RegionCommitmentsService) Insert(project string, region string, commitment *Commitment) *RegionCommitmentsInsertCall { + c := &RegionCommitmentsInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project c.region = region - c.backendService = backendService - c.resourcegroupreference = resourcegroupreference + c.commitment = commitment + 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 *RegionCommitmentsInsertCall) RequestId(requestId string) *RegionCommitmentsInsertCall { + 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 // details. -func (c *RegionBackendServicesGetHealthCall) Fields(s ...googleapi.Field) *RegionBackendServicesGetHealthCall { +func (c *RegionCommitmentsInsertCall) Fields(s ...googleapi.Field) *RegionCommitmentsInsertCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } // Context sets the context to be used in this call's Do method. -func (c *RegionBackendServicesGetHealthCall) Context(ctx context.Context) *RegionBackendServicesGetHealthCall { +func (c *RegionCommitmentsInsertCall) Context(ctx context.Context) *RegionCommitmentsInsertCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *RegionBackendServicesGetHealthCall) Header() http.Header { +func (c *RegionCommitmentsInsertCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *RegionBackendServicesGetHealthCall) doRequest(alt string) (*http.Response, error) { +func (c *RegionCommitmentsInsertCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) - var body io.Reader = nil - body, err := googleapi.WithoutDataWrapper.JSONReader(c.resourcegroupreference) + body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.commitment) if err != nil { return nil, err } c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/backendServices/{backendService}/getHealth") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/commitments") urls += "?" + c.urlParams_.Encode() req, err := http.NewRequest("POST", urls, body) if err != nil { @@ -316,20 +507,19 @@ func (c *RegionBackendServicesGetHealthCall) doRequest(alt string) (*http.Respon } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "region": c.region, - "backendService": c.backendService, + "project": c.project, + "region": c.region, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.regionCommitments.insert", "request", internallog.HTTPRequest(req, body.Bytes())) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.regionBackendServices.getHealth" call. +// Do executes the "compute.regionCommitments.insert" call. // Any non-2xx status code is an error. Response headers are in either -// *BackendServiceGroupHealth.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 *RegionBackendServicesGetHealthCall) Do(opts ...googleapi.CallOption) (*BackendServiceGroupHealth, error) { +// *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 *RegionCommitmentsInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -348,55 +538,175 @@ func (c *RegionBackendServicesGetHealthCall) Do(opts ...googleapi.CallOption) (* if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } - ret := &BackendServiceGroupHealth{ + ret := &Operation{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.regionCommitments.insert", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type RegionBackendServicesGetIamPolicyCall struct { +type RegionCommitmentsListCall struct { s *Service project string region string - resource string urlParams_ gensupport.URLParams ifNoneMatch_ string ctx_ context.Context header_ http.Header } -// GetIamPolicy: Gets the access control policy for a resource. May be empty if -// no such policy or resource exists. +// List: Retrieves a list of commitments contained within +// the specified region. // // - project: Project ID for this request. -// - region: The name of the region for this request. -// - resource: Name or id of the resource for this request. -func (r *RegionBackendServicesService) GetIamPolicy(project string, region string, resource string) *RegionBackendServicesGetIamPolicyCall { - c := &RegionBackendServicesGetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)} +// - region: Name of the region for this request. +func (r *RegionCommitmentsService) List(project string, region string) *RegionCommitmentsListCall { + c := &RegionCommitmentsListCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project c.region = region - c.resource = resource return c } -// OptionsRequestedPolicyVersion sets the optional parameter -// "optionsRequestedPolicyVersion": Requested IAM Policy version. -func (c *RegionBackendServicesGetIamPolicyCall) OptionsRequestedPolicyVersion(optionsRequestedPolicyVersion int64) *RegionBackendServicesGetIamPolicyCall { - c.urlParams_.Set("optionsRequestedPolicyVersion", fmt.Sprint(optionsRequestedPolicyVersion)) +// Filter sets the optional parameter "filter": A filter expression that +// filters resources listed in the response. Most +// Compute resources support two types of filter expressions: +// expressions that support regular expressions and expressions that follow +// API improvement proposal AIP-160. +// These two types of filter expressions cannot be mixed in one request. +// +// If you want to use AIP-160, your expression must specify the field name, +// an +// operator, and the value that you want to use for filtering. The value +// must be a string, a number, or a boolean. The 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`. +// +// The `:*` comparison can be used to test whether a key has been defined. +// For example, to find all objects with `owner` label +// use: +// ``` +// labels.owner:* +// ``` +// +// 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 onresource 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) +// ``` +// +// If you want to use a regular expression, use the `eq` (equal) or `ne` +// (not equal) operator against a single un-parenthesized expression with +// or +// without quotes or against multiple parenthesized expressions. +// Examples: +// +// `fieldname eq unquoted literal` +// `fieldname eq 'single quoted literal'` +// `fieldname eq "double quoted literal" +// `(fieldname1 eq literal) (fieldname2 ne "literal")` +// +// The literal value is interpreted as a regular expression using GoogleRE2 +// library syntax. +// The literal value must match the entire field. +// +// For example, to filter for instances that do not end with name +// "instance", +// you would use `name ne .*instance`. +// +// You cannot combine constraints on multiple fields using regular +// expressions. +func (c *RegionCommitmentsListCall) Filter(filter string) *RegionCommitmentsListCall { + 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 *RegionCommitmentsListCall) MaxResults(maxResults int64) *RegionCommitmentsListCall { + 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 *RegionCommitmentsListCall) OrderBy(orderBy string) *RegionCommitmentsListCall { + 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 *RegionCommitmentsListCall) PageToken(pageToken string) *RegionCommitmentsListCall { + c.urlParams_.Set("pageToken", pageToken) + return c +} + +// ReturnPartialSuccess sets the optional parameter "returnPartialSuccess": +// Opt-in for partial success behavior which provides partial results in +// case +// of failure. The default value is false. +// +// For example, when partial success behavior is enabled, aggregatedList for +// a +// single zone scope either returns all resources in the zone or no +// resources, +// with an error code. +func (c *RegionCommitmentsListCall) ReturnPartialSuccess(returnPartialSuccess bool) *RegionCommitmentsListCall { + c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess)) return c } // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *RegionBackendServicesGetIamPolicyCall) Fields(s ...googleapi.Field) *RegionBackendServicesGetIamPolicyCall { +func (c *RegionCommitmentsListCall) Fields(s ...googleapi.Field) *RegionCommitmentsListCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } @@ -404,55 +714,54 @@ func (c *RegionBackendServicesGetIamPolicyCall) Fields(s ...googleapi.Field) *Re // IfNoneMatch sets an 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. -func (c *RegionBackendServicesGetIamPolicyCall) IfNoneMatch(entityTag string) *RegionBackendServicesGetIamPolicyCall { +func (c *RegionCommitmentsListCall) IfNoneMatch(entityTag string) *RegionCommitmentsListCall { c.ifNoneMatch_ = entityTag return c } // Context sets the context to be used in this call's Do method. -func (c *RegionBackendServicesGetIamPolicyCall) Context(ctx context.Context) *RegionBackendServicesGetIamPolicyCall { +func (c *RegionCommitmentsListCall) Context(ctx context.Context) *RegionCommitmentsListCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *RegionBackendServicesGetIamPolicyCall) Header() http.Header { +func (c *RegionCommitmentsListCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *RegionBackendServicesGetIamPolicyCall) doRequest(alt string) (*http.Response, error) { +func (c *RegionCommitmentsListCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) if c.ifNoneMatch_ != "" { reqHeaders.Set("If-None-Match", c.ifNoneMatch_) } - var body io.Reader = nil c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/backendServices/{resource}/getIamPolicy") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/commitments") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("GET", urls, body) + req, err := http.NewRequest("GET", urls, nil) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "region": c.region, - "resource": c.resource, + "project": c.project, + "region": c.region, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.regionCommitments.list", "request", internallog.HTTPRequest(req, nil)) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.regionBackendServices.getIamPolicy" call. +// Do executes the "compute.regionCommitments.list" call. // Any non-2xx status code is an error. Response headers are in either -// *Policy.ServerResponse.Header or (if a response was returned at all) in -// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check +// *CommitmentList.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 *RegionBackendServicesGetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, error) { +func (c *RegionCommitmentsListCall) Do(opts ...googleapi.CallOption) (*CommitmentList, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -471,110 +780,158 @@ func (c *RegionBackendServicesGetIamPolicyCall) Do(opts ...googleapi.CallOption) if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } - ret := &Policy{ + ret := &CommitmentList{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.regionCommitments.list", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type RegionBackendServicesInsertCall struct { - s *Service - project string - region string - backendservice *BackendService - urlParams_ gensupport.URLParams - ctx_ context.Context - header_ http.Header +// 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 *RegionCommitmentsListCall) Pages(ctx context.Context, f func(*CommitmentList) error) error { + c.ctx_ = ctx + defer c.PageToken(c.urlParams_.Get("pageToken")) + 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) + } +} + +type RegionCommitmentsUpdateCall struct { + s *Service + project string + region string + commitment string + commitment2 *Commitment + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header } -// Insert: Creates a regional BackendService resource in the specified project -// using the data included in the request. For more information, see Backend -// services overview. +// Update: Updates the specified commitment with the data included in the +// request. +// Update is performed only on selected fields included as part of +// update-mask. Only the following fields can be updated: auto_renew and plan. // +// - commitment: Name of the commitment that you want to update. // - project: Project ID for this request. -// - region: Name of the region scoping this request. -func (r *RegionBackendServicesService) Insert(project string, region string, backendservice *BackendService) *RegionBackendServicesInsertCall { - c := &RegionBackendServicesInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)} +// - region: Name of the region for this request. +func (r *RegionCommitmentsService) Update(project string, region string, commitment string, commitment2 *Commitment) *RegionCommitmentsUpdateCall { + c := &RegionCommitmentsUpdateCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project c.region = region - c.backendservice = backendservice + c.commitment = commitment + c.commitment2 = commitment2 + return c +} + +// Paths sets the optional parameter "paths": +func (c *RegionCommitmentsUpdateCall) Paths(paths ...string) *RegionCommitmentsUpdateCall { + c.urlParams_.SetMulti("paths", append([]string{}, paths...)) 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 *RegionBackendServicesInsertCall) RequestId(requestId string) *RegionBackendServicesInsertCall { +// 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 *RegionCommitmentsUpdateCall) RequestId(requestId string) *RegionCommitmentsUpdateCall { c.urlParams_.Set("requestId", requestId) return c } +// UpdateMask sets the optional parameter "updateMask": update_mask indicates +// fields to be updated as part of this request. +func (c *RegionCommitmentsUpdateCall) UpdateMask(updateMask string) *RegionCommitmentsUpdateCall { + c.urlParams_.Set("updateMask", updateMask) + return c +} + // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *RegionBackendServicesInsertCall) Fields(s ...googleapi.Field) *RegionBackendServicesInsertCall { +func (c *RegionCommitmentsUpdateCall) Fields(s ...googleapi.Field) *RegionCommitmentsUpdateCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } // Context sets the context to be used in this call's Do method. -func (c *RegionBackendServicesInsertCall) Context(ctx context.Context) *RegionBackendServicesInsertCall { +func (c *RegionCommitmentsUpdateCall) Context(ctx context.Context) *RegionCommitmentsUpdateCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *RegionBackendServicesInsertCall) Header() http.Header { +func (c *RegionCommitmentsUpdateCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *RegionBackendServicesInsertCall) doRequest(alt string) (*http.Response, error) { +func (c *RegionCommitmentsUpdateCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) - var body io.Reader = nil - body, err := googleapi.WithoutDataWrapper.JSONReader(c.backendservice) + body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.commitment2) if err != nil { return nil, err } c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/backendServices") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/commitments/{commitment}") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("POST", urls, body) + req, err := http.NewRequest("PATCH", urls, body) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "region": c.region, + "project": c.project, + "region": c.region, + "commitment": c.commitment, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.regionCommitments.update", "request", internallog.HTTPRequest(req, body.Bytes())) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.regionBackendServices.insert" call. +// Do executes the "compute.regionCommitments.update" call. // 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 *RegionBackendServicesInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) { +func (c *RegionCommitmentsUpdateCall) Do(opts ...googleapi.CallOption) (*Operation, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -600,116 +957,196 @@ func (c *RegionBackendServicesInsertCall) Do(opts ...googleapi.CallOption) (*Ope }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.regionCommitments.update", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type RegionBackendServicesListCall struct { +type RegionCompositeHealthChecksAggregatedListCall struct { s *Service project string - region string urlParams_ gensupport.URLParams ifNoneMatch_ string ctx_ context.Context header_ http.Header } -// List: Retrieves the list of regional BackendService resources available to -// the specified project in the given region. +// AggregatedList: Retrieves the list of all CompositeHealthCheck resources +// (all +// regional) available to the specified project. // -// - project: Project ID for this request. -// - region: Name of the region scoping this request. -func (r *RegionBackendServicesService) List(project string, region string) *RegionBackendServicesListCall { - c := &RegionBackendServicesListCall{s: r.s, urlParams_: make(gensupport.URLParams)} +// To prevent failure, it is recommended that you set +// the +// `returnPartialSuccess` parameter to `true`. +// +// - project: Name of the project scoping this request. +func (r *RegionCompositeHealthChecksService) AggregatedList(project string) *RegionCompositeHealthChecksAggregatedListCall { + c := &RegionCompositeHealthChecksAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project - c.region = region return c } // Filter sets the optional parameter "filter": A filter expression that -// filters resources listed in the response. Most Compute resources support two -// types of filter expressions: expressions that support regular expressions -// and expressions that follow API improvement proposal AIP-160. These two -// types of filter expressions cannot be mixed in one request. If you want to -// use AIP-160, your expression must specify the field name, an operator, and -// the value that you want to use for filtering. The value must be a string, a -// number, or a boolean. The 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`. The `:*` comparison can be used to test whether a key has -// been defined. For example, to find all objects with `owner` label use: ``` -// labels.owner:* ``` 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) ``` If you want to use a regular -// expression, use the `eq` (equal) or `ne` (not equal) operator against a -// single un-parenthesized expression with or without quotes or against -// multiple parenthesized expressions. Examples: `fieldname eq unquoted -// literal` `fieldname eq 'single quoted literal'` `fieldname eq "double quoted -// literal" `(fieldname1 eq literal) (fieldname2 ne "literal")` The literal -// value is interpreted as a regular expression using Google RE2 library -// syntax. The literal value must match the entire field. For example, to -// filter for instances that do not end with name "instance", you would use -// `name ne .*instance`. You cannot combine constraints on multiple fields -// using regular expressions. -func (c *RegionBackendServicesListCall) Filter(filter string) *RegionBackendServicesListCall { +// filters resources listed in the response. Most +// Compute resources support two types of filter expressions: +// expressions that support regular expressions and expressions that follow +// API improvement proposal AIP-160. +// These two types of filter expressions cannot be mixed in one request. +// +// If you want to use AIP-160, your expression must specify the field name, +// an +// operator, and the value that you want to use for filtering. The value +// must be a string, a number, or a boolean. The 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`. +// +// The `:*` comparison can be used to test whether a key has been defined. +// For example, to find all objects with `owner` label +// use: +// ``` +// labels.owner:* +// ``` +// +// 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 onresource 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) +// ``` +// +// If you want to use a regular expression, use the `eq` (equal) or `ne` +// (not equal) operator against a single un-parenthesized expression with +// or +// without quotes or against multiple parenthesized expressions. +// Examples: +// +// `fieldname eq unquoted literal` +// `fieldname eq 'single quoted literal'` +// `fieldname eq "double quoted literal" +// `(fieldname1 eq literal) (fieldname2 ne "literal")` +// +// The literal value is interpreted as a regular expression using GoogleRE2 +// library syntax. +// The literal value must match the entire field. +// +// For example, to filter for instances that do not end with name +// "instance", +// you would use `name ne .*instance`. +// +// You cannot combine constraints on multiple fields using regular +// expressions. +func (c *RegionCompositeHealthChecksAggregatedListCall) Filter(filter string) *RegionCompositeHealthChecksAggregatedListCall { c.urlParams_.Set("filter", filter) return c } +// IncludeAllScopes sets the optional parameter "includeAllScopes": Indicates +// whether every visible scope for each scope type (zone, region, +// global) should be included in the response. For new resource types +// added +// after this field, the flag has no effect as new resource types will +// always +// include every visible scope for each scope type in response. For +// resource +// types which predate this field, if this flag is omitted or false, +// only +// scopes of the scope types where the resource type is expected to be +// found +// will be included. +func (c *RegionCompositeHealthChecksAggregatedListCall) IncludeAllScopes(includeAllScopes bool) *RegionCompositeHealthChecksAggregatedListCall { + c.urlParams_.Set("includeAllScopes", fmt.Sprint(includeAllScopes)) + 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 *RegionBackendServicesListCall) MaxResults(maxResults int64) *RegionBackendServicesListCall { +// 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 *RegionCompositeHealthChecksAggregatedListCall) MaxResults(maxResults int64) *RegionCompositeHealthChecksAggregatedListCall { 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 *RegionBackendServicesListCall) OrderBy(orderBy string) *RegionBackendServicesListCall { +// 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 *RegionCompositeHealthChecksAggregatedListCall) OrderBy(orderBy string) *RegionCompositeHealthChecksAggregatedListCall { 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 *RegionBackendServicesListCall) PageToken(pageToken string) *RegionBackendServicesListCall { +// use. Set `pageToken` to the +// `nextPageToken` returned by a previous list request to get +// the next page of results. +func (c *RegionCompositeHealthChecksAggregatedListCall) PageToken(pageToken string) *RegionCompositeHealthChecksAggregatedListCall { c.urlParams_.Set("pageToken", pageToken) return c } // ReturnPartialSuccess sets the optional parameter "returnPartialSuccess": -// Opt-in for partial success behavior which provides partial results in case -// of failure. The default value is false. For example, when partial success -// behavior is enabled, aggregatedList for a single zone scope either returns -// all resources in the zone or no resources, with an error code. -func (c *RegionBackendServicesListCall) ReturnPartialSuccess(returnPartialSuccess bool) *RegionBackendServicesListCall { +// Opt-in for partial success behavior which provides partial results in +// case +// of failure. The default value is false. +// +// For example, when partial success behavior is enabled, aggregatedList for +// a +// single zone scope either returns all resources in the zone or no +// resources, +// with an error code. +func (c *RegionCompositeHealthChecksAggregatedListCall) ReturnPartialSuccess(returnPartialSuccess bool) *RegionCompositeHealthChecksAggregatedListCall { c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess)) return c } +// ServiceProjectNumber sets the optional parameter "serviceProjectNumber": The +// Shared VPC service project id or service project number for which +// aggregated list request is invoked for subnetworks list-usable api. +func (c *RegionCompositeHealthChecksAggregatedListCall) ServiceProjectNumber(serviceProjectNumber int64) *RegionCompositeHealthChecksAggregatedListCall { + c.urlParams_.Set("serviceProjectNumber", fmt.Sprint(serviceProjectNumber)) + return c +} + // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *RegionBackendServicesListCall) Fields(s ...googleapi.Field) *RegionBackendServicesListCall { +func (c *RegionCompositeHealthChecksAggregatedListCall) Fields(s ...googleapi.Field) *RegionCompositeHealthChecksAggregatedListCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } @@ -717,55 +1154,54 @@ func (c *RegionBackendServicesListCall) Fields(s ...googleapi.Field) *RegionBack // IfNoneMatch sets an 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. -func (c *RegionBackendServicesListCall) IfNoneMatch(entityTag string) *RegionBackendServicesListCall { +func (c *RegionCompositeHealthChecksAggregatedListCall) IfNoneMatch(entityTag string) *RegionCompositeHealthChecksAggregatedListCall { c.ifNoneMatch_ = entityTag return c } // Context sets the context to be used in this call's Do method. -func (c *RegionBackendServicesListCall) Context(ctx context.Context) *RegionBackendServicesListCall { +func (c *RegionCompositeHealthChecksAggregatedListCall) Context(ctx context.Context) *RegionCompositeHealthChecksAggregatedListCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *RegionBackendServicesListCall) Header() http.Header { +func (c *RegionCompositeHealthChecksAggregatedListCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *RegionBackendServicesListCall) doRequest(alt string) (*http.Response, error) { +func (c *RegionCompositeHealthChecksAggregatedListCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) if c.ifNoneMatch_ != "" { reqHeaders.Set("If-None-Match", c.ifNoneMatch_) } - var body io.Reader = nil c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/backendServices") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/aggregated/compositeHealthChecks") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("GET", urls, body) + req, err := http.NewRequest("GET", urls, nil) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ "project": c.project, - "region": c.region, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.regionCompositeHealthChecks.aggregatedList", "request", internallog.HTTPRequest(req, nil)) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.regionBackendServices.list" call. +// Do executes the "compute.regionCompositeHealthChecks.aggregatedList" call. // Any non-2xx status code is an error. Response headers are in either -// *BackendServiceList.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 *RegionBackendServicesListCall) Do(opts ...googleapi.CallOption) (*BackendServiceList, error) { +// *CompositeHealthCheckAggregatedList.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 *RegionCompositeHealthChecksAggregatedListCall) Do(opts ...googleapi.CallOption) (*CompositeHealthCheckAggregatedList, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -784,23 +1220,25 @@ func (c *RegionBackendServicesListCall) Do(opts ...googleapi.CallOption) (*Backe if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } - ret := &BackendServiceList{ + ret := &CompositeHealthCheckAggregatedList{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.regionCompositeHealthChecks.aggregatedList", "response", internallog.HTTPResponse(res, b)) return ret, nil } // 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 *RegionBackendServicesListCall) Pages(ctx context.Context, f func(*BackendServiceList) error) error { +func (c *RegionCompositeHealthChecksAggregatedListCall) Pages(ctx context.Context, f func(*CompositeHealthCheckAggregatedList) error) error { c.ctx_ = ctx defer c.PageToken(c.urlParams_.Get("pageToken")) for { @@ -818,167 +1256,100 @@ func (c *RegionBackendServicesListCall) Pages(ctx context.Context, f func(*Backe } } -type RegionBackendServicesListUsableCall struct { - s *Service - project string - region string - urlParams_ gensupport.URLParams - ifNoneMatch_ string - ctx_ context.Context - header_ http.Header +type RegionCompositeHealthChecksDeleteCall struct { + s *Service + project string + region string + compositeHealthCheck string + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header } -// ListUsable: Retrieves an aggregated list of all usable backend services in -// the specified project in the given region. +// Delete: Deletes the specified CompositeHealthCheck in the given region // -// - project: Project ID for this request. -// - region: Name of the region scoping this request. It must be a string that -// meets the requirements in RFC1035. -func (r *RegionBackendServicesService) ListUsable(project string, region string) *RegionBackendServicesListUsableCall { - c := &RegionBackendServicesListUsableCall{s: r.s, urlParams_: make(gensupport.URLParams)} +// - compositeHealthCheck: Name of the CompositeHealthCheck resource to delete. +// - project: Project ID for this request. +// - region: Name of the region scoping this request. +func (r *RegionCompositeHealthChecksService) Delete(project string, region string, compositeHealthCheck string) *RegionCompositeHealthChecksDeleteCall { + c := &RegionCompositeHealthChecksDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project c.region = region + c.compositeHealthCheck = compositeHealthCheck return c } -// Filter sets the optional parameter "filter": A filter expression that -// filters resources listed in the response. Most Compute resources support two -// types of filter expressions: expressions that support regular expressions -// and expressions that follow API improvement proposal AIP-160. These two -// types of filter expressions cannot be mixed in one request. If you want to -// use AIP-160, your expression must specify the field name, an operator, and -// the value that you want to use for filtering. The value must be a string, a -// number, or a boolean. The 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`. The `:*` comparison can be used to test whether a key has -// been defined. For example, to find all objects with `owner` label use: ``` -// labels.owner:* ``` 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) ``` If you want to use a regular -// expression, use the `eq` (equal) or `ne` (not equal) operator against a -// single un-parenthesized expression with or without quotes or against -// multiple parenthesized expressions. Examples: `fieldname eq unquoted -// literal` `fieldname eq 'single quoted literal'` `fieldname eq "double quoted -// literal" `(fieldname1 eq literal) (fieldname2 ne "literal")` The literal -// value is interpreted as a regular expression using Google RE2 library -// syntax. The literal value must match the entire field. For example, to -// filter for instances that do not end with name "instance", you would use -// `name ne .*instance`. You cannot combine constraints on multiple fields -// using regular expressions. -func (c *RegionBackendServicesListUsableCall) Filter(filter string) *RegionBackendServicesListUsableCall { - 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 *RegionBackendServicesListUsableCall) MaxResults(maxResults int64) *RegionBackendServicesListUsableCall { - 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 *RegionBackendServicesListUsableCall) OrderBy(orderBy string) *RegionBackendServicesListUsableCall { - 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 *RegionBackendServicesListUsableCall) PageToken(pageToken string) *RegionBackendServicesListUsableCall { - c.urlParams_.Set("pageToken", pageToken) - return c -} - -// ReturnPartialSuccess sets the optional parameter "returnPartialSuccess": -// Opt-in for partial success behavior which provides partial results in case -// of failure. The default value is false. For example, when partial success -// behavior is enabled, aggregatedList for a single zone scope either returns -// all resources in the zone or no resources, with an error code. -func (c *RegionBackendServicesListUsableCall) ReturnPartialSuccess(returnPartialSuccess bool) *RegionBackendServicesListUsableCall { - c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess)) +// 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 *RegionCompositeHealthChecksDeleteCall) RequestId(requestId string) *RegionCompositeHealthChecksDeleteCall { + 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 // details. -func (c *RegionBackendServicesListUsableCall) Fields(s ...googleapi.Field) *RegionBackendServicesListUsableCall { +func (c *RegionCompositeHealthChecksDeleteCall) Fields(s ...googleapi.Field) *RegionCompositeHealthChecksDeleteCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } -// IfNoneMatch sets an 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. -func (c *RegionBackendServicesListUsableCall) IfNoneMatch(entityTag string) *RegionBackendServicesListUsableCall { - c.ifNoneMatch_ = entityTag - return c -} - // Context sets the context to be used in this call's Do method. -func (c *RegionBackendServicesListUsableCall) Context(ctx context.Context) *RegionBackendServicesListUsableCall { +func (c *RegionCompositeHealthChecksDeleteCall) Context(ctx context.Context) *RegionCompositeHealthChecksDeleteCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *RegionBackendServicesListUsableCall) Header() http.Header { +func (c *RegionCompositeHealthChecksDeleteCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *RegionBackendServicesListUsableCall) doRequest(alt string) (*http.Response, error) { +func (c *RegionCompositeHealthChecksDeleteCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) - if c.ifNoneMatch_ != "" { - reqHeaders.Set("If-None-Match", c.ifNoneMatch_) - } - var body io.Reader = nil c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/backendServices/listUsable") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/compositeHealthChecks/{compositeHealthCheck}") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("GET", urls, body) + req, err := http.NewRequest("DELETE", urls, nil) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "region": c.region, + "project": c.project, + "region": c.region, + "compositeHealthCheck": c.compositeHealthCheck, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.regionCompositeHealthChecks.delete", "request", internallog.HTTPRequest(req, nil)) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.regionBackendServices.listUsable" call. +// Do executes the "compute.regionCompositeHealthChecks.delete" call. // Any non-2xx status code is an error. Response headers are in either -// *BackendServiceListUsable.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 *RegionBackendServicesListUsableCall) Do(opts ...googleapi.CallOption) (*BackendServiceListUsable, error) { +// *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 *RegionCompositeHealthChecksDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -997,136 +1368,107 @@ func (c *RegionBackendServicesListUsableCall) Do(opts ...googleapi.CallOption) ( if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } - ret := &BackendServiceListUsable{ + ret := &Operation{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.regionCompositeHealthChecks.delete", "response", internallog.HTTPResponse(res, b)) return ret, nil } -// 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 *RegionBackendServicesListUsableCall) Pages(ctx context.Context, f func(*BackendServiceListUsable) error) error { - c.ctx_ = ctx - defer c.PageToken(c.urlParams_.Get("pageToken")) - 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) - } -} - -type RegionBackendServicesPatchCall struct { - s *Service - project string - region string - backendService string - backendservice *BackendService - urlParams_ gensupport.URLParams - ctx_ context.Context - header_ http.Header +type RegionCompositeHealthChecksGetCall struct { + s *Service + project string + region string + compositeHealthCheck string + urlParams_ gensupport.URLParams + ifNoneMatch_ string + ctx_ context.Context + header_ http.Header } -// Patch: Updates the specified regional BackendService resource with the data -// included in the request. For more information, see Understanding backend -// services This method supports PATCH semantics and uses the JSON merge patch -// format and processing rules. +// Get: Returns the specified CompositeHealthCheck resource in the given +// region. // -// - backendService: Name of the BackendService resource to patch. +// - compositeHealthCheck: Name of the CompositeHealthCheck resource to return. // - project: Project ID for this request. // - region: Name of the region scoping this request. -func (r *RegionBackendServicesService) Patch(project string, region string, backendService string, backendservice *BackendService) *RegionBackendServicesPatchCall { - c := &RegionBackendServicesPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)} +func (r *RegionCompositeHealthChecksService) Get(project string, region string, compositeHealthCheck string) *RegionCompositeHealthChecksGetCall { + c := &RegionCompositeHealthChecksGetCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project c.region = region - c.backendService = backendService - c.backendservice = backendservice - 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 *RegionBackendServicesPatchCall) RequestId(requestId string) *RegionBackendServicesPatchCall { - c.urlParams_.Set("requestId", requestId) + c.compositeHealthCheck = compositeHealthCheck return c } // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *RegionBackendServicesPatchCall) Fields(s ...googleapi.Field) *RegionBackendServicesPatchCall { +func (c *RegionCompositeHealthChecksGetCall) Fields(s ...googleapi.Field) *RegionCompositeHealthChecksGetCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } +// IfNoneMatch sets an 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. +func (c *RegionCompositeHealthChecksGetCall) IfNoneMatch(entityTag string) *RegionCompositeHealthChecksGetCall { + c.ifNoneMatch_ = entityTag + return c +} + // Context sets the context to be used in this call's Do method. -func (c *RegionBackendServicesPatchCall) Context(ctx context.Context) *RegionBackendServicesPatchCall { +func (c *RegionCompositeHealthChecksGetCall) Context(ctx context.Context) *RegionCompositeHealthChecksGetCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *RegionBackendServicesPatchCall) Header() http.Header { +func (c *RegionCompositeHealthChecksGetCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *RegionBackendServicesPatchCall) doRequest(alt string) (*http.Response, error) { - reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) - var body io.Reader = nil - body, err := googleapi.WithoutDataWrapper.JSONReader(c.backendservice) - if err != nil { - return nil, err - } - c.urlParams_.Set("alt", alt) +func (c *RegionCompositeHealthChecksGetCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) + if c.ifNoneMatch_ != "" { + reqHeaders.Set("If-None-Match", c.ifNoneMatch_) + } + c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/backendServices/{backendService}") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/compositeHealthChecks/{compositeHealthCheck}") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("PATCH", urls, body) + req, err := http.NewRequest("GET", urls, nil) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "region": c.region, - "backendService": c.backendService, + "project": c.project, + "region": c.region, + "compositeHealthCheck": c.compositeHealthCheck, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.regionCompositeHealthChecks.get", "request", internallog.HTTPRequest(req, nil)) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.regionBackendServices.patch" call. +// Do executes the "compute.regionCompositeHealthChecks.get" call. // 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 *RegionBackendServicesPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) { +// *CompositeHealthCheck.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 *RegionCompositeHealthChecksGetCall) Do(opts ...googleapi.CallOption) (*CompositeHealthCheck, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -1145,98 +1487,108 @@ func (c *RegionBackendServicesPatchCall) Do(opts ...googleapi.CallOption) (*Oper if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } - ret := &Operation{ + ret := &CompositeHealthCheck{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.regionCompositeHealthChecks.get", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type RegionBackendServicesSetIamPolicyCall struct { - s *Service - project string - region string - resource string - regionsetpolicyrequest *RegionSetPolicyRequest - urlParams_ gensupport.URLParams - ctx_ context.Context - header_ http.Header +type RegionCompositeHealthChecksGetHealthCall struct { + s *Service + project string + region string + compositeHealthCheck string + urlParams_ gensupport.URLParams + ifNoneMatch_ string + ctx_ context.Context + header_ http.Header } -// SetIamPolicy: Sets the access control policy on the specified resource. -// Replaces any existing policy. +// GetHealth: Gets the most recent health check results for this +// regional CompositeHealthCheck. // -// - project: Project ID for this request. -// - region: The name of the region for this request. -// - resource: Name or id of the resource for this request. -func (r *RegionBackendServicesService) SetIamPolicy(project string, region string, resource string, regionsetpolicyrequest *RegionSetPolicyRequest) *RegionBackendServicesSetIamPolicyCall { - c := &RegionBackendServicesSetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)} +// - compositeHealthCheck: Name of the CompositeHealthCheck resource to get +// health for. +// - project: Name of the project scoping this request. +// - region: Name of the region scoping this request. +func (r *RegionCompositeHealthChecksService) GetHealth(project string, region string, compositeHealthCheck string) *RegionCompositeHealthChecksGetHealthCall { + c := &RegionCompositeHealthChecksGetHealthCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project c.region = region - c.resource = resource - c.regionsetpolicyrequest = regionsetpolicyrequest + c.compositeHealthCheck = compositeHealthCheck return c } // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *RegionBackendServicesSetIamPolicyCall) Fields(s ...googleapi.Field) *RegionBackendServicesSetIamPolicyCall { +func (c *RegionCompositeHealthChecksGetHealthCall) Fields(s ...googleapi.Field) *RegionCompositeHealthChecksGetHealthCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } +// IfNoneMatch sets an 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. +func (c *RegionCompositeHealthChecksGetHealthCall) IfNoneMatch(entityTag string) *RegionCompositeHealthChecksGetHealthCall { + c.ifNoneMatch_ = entityTag + return c +} + // Context sets the context to be used in this call's Do method. -func (c *RegionBackendServicesSetIamPolicyCall) Context(ctx context.Context) *RegionBackendServicesSetIamPolicyCall { +func (c *RegionCompositeHealthChecksGetHealthCall) Context(ctx context.Context) *RegionCompositeHealthChecksGetHealthCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *RegionBackendServicesSetIamPolicyCall) Header() http.Header { +func (c *RegionCompositeHealthChecksGetHealthCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *RegionBackendServicesSetIamPolicyCall) doRequest(alt string) (*http.Response, error) { - reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) - var body io.Reader = nil - body, err := googleapi.WithoutDataWrapper.JSONReader(c.regionsetpolicyrequest) - if err != nil { - return nil, err +func (c *RegionCompositeHealthChecksGetHealthCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) + if c.ifNoneMatch_ != "" { + reqHeaders.Set("If-None-Match", c.ifNoneMatch_) } c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/backendServices/{resource}/setIamPolicy") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/compositeHealthChecks/{compositeHealthCheck}/getHealth") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("POST", urls, body) + req, err := http.NewRequest("GET", urls, nil) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "region": c.region, - "resource": c.resource, + "project": c.project, + "region": c.region, + "compositeHealthCheck": c.compositeHealthCheck, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.regionCompositeHealthChecks.getHealth", "request", internallog.HTTPRequest(req, nil)) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.regionBackendServices.setIamPolicy" call. +// Do executes the "compute.regionCompositeHealthChecks.getHealth" call. // Any non-2xx status code is an error. Response headers are in either -// *Policy.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 *RegionBackendServicesSetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, error) { +// *CompositeHealthCheckHealth.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 *RegionCompositeHealthChecksGetHealthCall) Do(opts ...googleapi.CallOption) (*CompositeHealthCheckHealth, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -1255,58 +1607,63 @@ func (c *RegionBackendServicesSetIamPolicyCall) Do(opts ...googleapi.CallOption) if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } - ret := &Policy{ + ret := &CompositeHealthCheckHealth{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.regionCompositeHealthChecks.getHealth", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type RegionBackendServicesSetSecurityPolicyCall struct { - s *Service - project string - region string - backendService string - securitypolicyreference *SecurityPolicyReference - urlParams_ gensupport.URLParams - ctx_ context.Context - header_ http.Header +type RegionCompositeHealthChecksInsertCall struct { + s *Service + project string + region string + compositehealthcheck *CompositeHealthCheck + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header } -// SetSecurityPolicy: Sets the Google Cloud Armor security policy for the -// specified backend service. For more information, see Google Cloud Armor -// Overview +// Insert: Create a CompositeHealthCheck in the specified project in the given +// region +// using the parameters that are included in the request. // -// - backendService: Name of the BackendService resource to which the security -// policy should be set. The name should conform to RFC1035. -// - project: Project ID for this request. -// - region: Name of the region scoping this request. -func (r *RegionBackendServicesService) SetSecurityPolicy(project string, region string, backendService string, securitypolicyreference *SecurityPolicyReference) *RegionBackendServicesSetSecurityPolicyCall { - c := &RegionBackendServicesSetSecurityPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)} +// - project: Project ID for this request. +// - region: Name of the region scoping this request. +func (r *RegionCompositeHealthChecksService) Insert(project string, region string, compositehealthcheck *CompositeHealthCheck) *RegionCompositeHealthChecksInsertCall { + c := &RegionCompositeHealthChecksInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project c.region = region - c.backendService = backendService - c.securitypolicyreference = securitypolicyreference + c.compositehealthcheck = compositehealthcheck 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 *RegionBackendServicesSetSecurityPolicyCall) RequestId(requestId string) *RegionBackendServicesSetSecurityPolicyCall { +// 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 *RegionCompositeHealthChecksInsertCall) RequestId(requestId string) *RegionCompositeHealthChecksInsertCall { c.urlParams_.Set("requestId", requestId) return c } @@ -1314,36 +1671,35 @@ func (c *RegionBackendServicesSetSecurityPolicyCall) RequestId(requestId string) // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *RegionBackendServicesSetSecurityPolicyCall) Fields(s ...googleapi.Field) *RegionBackendServicesSetSecurityPolicyCall { +func (c *RegionCompositeHealthChecksInsertCall) Fields(s ...googleapi.Field) *RegionCompositeHealthChecksInsertCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } // Context sets the context to be used in this call's Do method. -func (c *RegionBackendServicesSetSecurityPolicyCall) Context(ctx context.Context) *RegionBackendServicesSetSecurityPolicyCall { +func (c *RegionCompositeHealthChecksInsertCall) Context(ctx context.Context) *RegionCompositeHealthChecksInsertCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *RegionBackendServicesSetSecurityPolicyCall) Header() http.Header { +func (c *RegionCompositeHealthChecksInsertCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *RegionBackendServicesSetSecurityPolicyCall) doRequest(alt string) (*http.Response, error) { +func (c *RegionCompositeHealthChecksInsertCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) - var body io.Reader = nil - body, err := googleapi.WithoutDataWrapper.JSONReader(c.securitypolicyreference) + body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.compositehealthcheck) if err != nil { return nil, err } c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/backendServices/{backendService}/setSecurityPolicy") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/compositeHealthChecks") urls += "?" + c.urlParams_.Encode() req, err := http.NewRequest("POST", urls, body) if err != nil { @@ -1351,19 +1707,19 @@ func (c *RegionBackendServicesSetSecurityPolicyCall) doRequest(alt string) (*htt } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "region": c.region, - "backendService": c.backendService, + "project": c.project, + "region": c.region, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.regionCompositeHealthChecks.insert", "request", internallog.HTTPRequest(req, body.Bytes())) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.regionBackendServices.setSecurityPolicy" call. +// Do executes the "compute.regionCompositeHealthChecks.insert" call. // 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 *RegionBackendServicesSetSecurityPolicyCall) Do(opts ...googleapi.CallOption) (*Operation, error) { +func (c *RegionCompositeHealthChecksInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -1389,92 +1745,223 @@ func (c *RegionBackendServicesSetSecurityPolicyCall) Do(opts ...googleapi.CallOp }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.regionCompositeHealthChecks.insert", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type RegionBackendServicesTestIamPermissionsCall struct { - s *Service - project string - region string - resource string - testpermissionsrequest *TestPermissionsRequest - urlParams_ gensupport.URLParams - ctx_ context.Context - header_ http.Header +type RegionCompositeHealthChecksListCall struct { + s *Service + project string + region string + urlParams_ gensupport.URLParams + ifNoneMatch_ string + ctx_ context.Context + header_ http.Header } -// TestIamPermissions: Returns permissions that a caller has on the specified -// resource. +// List: Lists the CompositeHealthChecks for a project in the given region. // // - project: Project ID for this request. -// - region: The name of the region for this request. -// - resource: Name or id of the resource for this request. -func (r *RegionBackendServicesService) TestIamPermissions(project string, region string, resource string, testpermissionsrequest *TestPermissionsRequest) *RegionBackendServicesTestIamPermissionsCall { - c := &RegionBackendServicesTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)} +// - region: Name of the region scoping this request. +func (r *RegionCompositeHealthChecksService) List(project string, region string) *RegionCompositeHealthChecksListCall { + c := &RegionCompositeHealthChecksListCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project c.region = region - c.resource = resource - c.testpermissionsrequest = testpermissionsrequest + return c +} + +// Filter sets the optional parameter "filter": A filter expression that +// filters resources listed in the response. Most +// Compute resources support two types of filter expressions: +// expressions that support regular expressions and expressions that follow +// API improvement proposal AIP-160. +// These two types of filter expressions cannot be mixed in one request. +// +// If you want to use AIP-160, your expression must specify the field name, +// an +// operator, and the value that you want to use for filtering. The value +// must be a string, a number, or a boolean. The 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`. +// +// The `:*` comparison can be used to test whether a key has been defined. +// For example, to find all objects with `owner` label +// use: +// ``` +// labels.owner:* +// ``` +// +// 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 onresource 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) +// ``` +// +// If you want to use a regular expression, use the `eq` (equal) or `ne` +// (not equal) operator against a single un-parenthesized expression with +// or +// without quotes or against multiple parenthesized expressions. +// Examples: +// +// `fieldname eq unquoted literal` +// `fieldname eq 'single quoted literal'` +// `fieldname eq "double quoted literal" +// `(fieldname1 eq literal) (fieldname2 ne "literal")` +// +// The literal value is interpreted as a regular expression using GoogleRE2 +// library syntax. +// The literal value must match the entire field. +// +// For example, to filter for instances that do not end with name +// "instance", +// you would use `name ne .*instance`. +// +// You cannot combine constraints on multiple fields using regular +// expressions. +func (c *RegionCompositeHealthChecksListCall) Filter(filter string) *RegionCompositeHealthChecksListCall { + 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 *RegionCompositeHealthChecksListCall) MaxResults(maxResults int64) *RegionCompositeHealthChecksListCall { + 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 *RegionCompositeHealthChecksListCall) OrderBy(orderBy string) *RegionCompositeHealthChecksListCall { + 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 *RegionCompositeHealthChecksListCall) PageToken(pageToken string) *RegionCompositeHealthChecksListCall { + c.urlParams_.Set("pageToken", pageToken) + return c +} + +// ReturnPartialSuccess sets the optional parameter "returnPartialSuccess": +// Opt-in for partial success behavior which provides partial results in +// case +// of failure. The default value is false. +// +// For example, when partial success behavior is enabled, aggregatedList for +// a +// single zone scope either returns all resources in the zone or no +// resources, +// with an error code. +func (c *RegionCompositeHealthChecksListCall) ReturnPartialSuccess(returnPartialSuccess bool) *RegionCompositeHealthChecksListCall { + c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess)) return c } // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *RegionBackendServicesTestIamPermissionsCall) Fields(s ...googleapi.Field) *RegionBackendServicesTestIamPermissionsCall { +func (c *RegionCompositeHealthChecksListCall) Fields(s ...googleapi.Field) *RegionCompositeHealthChecksListCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } +// IfNoneMatch sets an 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. +func (c *RegionCompositeHealthChecksListCall) IfNoneMatch(entityTag string) *RegionCompositeHealthChecksListCall { + c.ifNoneMatch_ = entityTag + return c +} + // Context sets the context to be used in this call's Do method. -func (c *RegionBackendServicesTestIamPermissionsCall) Context(ctx context.Context) *RegionBackendServicesTestIamPermissionsCall { +func (c *RegionCompositeHealthChecksListCall) Context(ctx context.Context) *RegionCompositeHealthChecksListCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *RegionBackendServicesTestIamPermissionsCall) Header() http.Header { +func (c *RegionCompositeHealthChecksListCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *RegionBackendServicesTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) { - reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) - var body io.Reader = nil - body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest) - if err != nil { - return nil, err +func (c *RegionCompositeHealthChecksListCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) + if c.ifNoneMatch_ != "" { + reqHeaders.Set("If-None-Match", c.ifNoneMatch_) } c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/backendServices/{resource}/testIamPermissions") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/compositeHealthChecks") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("POST", urls, body) + req, err := http.NewRequest("GET", urls, nil) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "region": c.region, - "resource": c.resource, + "project": c.project, + "region": c.region, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.regionCompositeHealthChecks.list", "request", internallog.HTTPRequest(req, nil)) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.regionBackendServices.testIamPermissions" call. +// Do executes the "compute.regionCompositeHealthChecks.list" call. // Any non-2xx status code is an error. Response headers are in either -// *TestPermissionsResponse.ServerResponse.Header or (if a response was +// *CompositeHealthCheckList.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 *RegionBackendServicesTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) { +func (c *RegionCompositeHealthChecksListCall) Do(opts ...googleapi.CallOption) (*CompositeHealthCheckList, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -1493,57 +1980,91 @@ func (c *RegionBackendServicesTestIamPermissionsCall) Do(opts ...googleapi.CallO if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } - ret := &TestPermissionsResponse{ + ret := &CompositeHealthCheckList{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.regionCompositeHealthChecks.list", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type RegionBackendServicesUpdateCall struct { - s *Service - project string - region string - backendService string - backendservice *BackendService - urlParams_ gensupport.URLParams - ctx_ context.Context - header_ http.Header +// 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 *RegionCompositeHealthChecksListCall) Pages(ctx context.Context, f func(*CompositeHealthCheckList) error) error { + c.ctx_ = ctx + defer c.PageToken(c.urlParams_.Get("pageToken")) + 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) + } +} + +type RegionCompositeHealthChecksPatchCall struct { + s *Service + project string + region string + compositeHealthCheck string + compositehealthcheck *CompositeHealthCheck + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header } -// Update: Updates the specified regional BackendService resource with the data -// included in the request. For more information, see Backend services overview -// . +// Patch: Updates the specified regional CompositeHealthCheck resource +// with the data included in the request. This method supportsPATCH +// semantics and uses theJSON merge +// patch format and processing rules. // -// - backendService: Name of the BackendService resource to update. +// - compositeHealthCheck: Name of the CompositeHealthCheck to update. The +// name +// +// must be 1-63 characters long, and comply with RFC1035. // - project: Project ID for this request. // - region: Name of the region scoping this request. -func (r *RegionBackendServicesService) Update(project string, region string, backendService string, backendservice *BackendService) *RegionBackendServicesUpdateCall { - c := &RegionBackendServicesUpdateCall{s: r.s, urlParams_: make(gensupport.URLParams)} +func (r *RegionCompositeHealthChecksService) Patch(project string, region string, compositeHealthCheck string, compositehealthcheck *CompositeHealthCheck) *RegionCompositeHealthChecksPatchCall { + c := &RegionCompositeHealthChecksPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project c.region = region - c.backendService = backendService - c.backendservice = backendservice + c.compositeHealthCheck = compositeHealthCheck + c.compositehealthcheck = compositehealthcheck 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 *RegionBackendServicesUpdateCall) RequestId(requestId string) *RegionBackendServicesUpdateCall { +// 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 *RegionCompositeHealthChecksPatchCall) RequestId(requestId string) *RegionCompositeHealthChecksPatchCall { c.urlParams_.Set("requestId", requestId) return c } @@ -1551,56 +2072,56 @@ func (c *RegionBackendServicesUpdateCall) RequestId(requestId string) *RegionBac // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *RegionBackendServicesUpdateCall) Fields(s ...googleapi.Field) *RegionBackendServicesUpdateCall { +func (c *RegionCompositeHealthChecksPatchCall) Fields(s ...googleapi.Field) *RegionCompositeHealthChecksPatchCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } // Context sets the context to be used in this call's Do method. -func (c *RegionBackendServicesUpdateCall) Context(ctx context.Context) *RegionBackendServicesUpdateCall { +func (c *RegionCompositeHealthChecksPatchCall) Context(ctx context.Context) *RegionCompositeHealthChecksPatchCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *RegionBackendServicesUpdateCall) Header() http.Header { +func (c *RegionCompositeHealthChecksPatchCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *RegionBackendServicesUpdateCall) doRequest(alt string) (*http.Response, error) { +func (c *RegionCompositeHealthChecksPatchCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) - var body io.Reader = nil - body, err := googleapi.WithoutDataWrapper.JSONReader(c.backendservice) + body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.compositehealthcheck) if err != nil { return nil, err } c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/backendServices/{backendService}") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/compositeHealthChecks/{compositeHealthCheck}") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("PUT", urls, body) + req, err := http.NewRequest("PATCH", urls, body) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "region": c.region, - "backendService": c.backendService, + "project": c.project, + "region": c.region, + "compositeHealthCheck": c.compositeHealthCheck, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.regionCompositeHealthChecks.patch", "request", internallog.HTTPRequest(req, body.Bytes())) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.regionBackendServices.update" call. +// Do executes the "compute.regionCompositeHealthChecks.patch" call. // 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 *RegionBackendServicesUpdateCall) Do(opts ...googleapi.CallOption) (*Operation, error) { +func (c *RegionCompositeHealthChecksPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -1626,190 +2147,94 @@ func (c *RegionBackendServicesUpdateCall) Do(opts ...googleapi.CallOption) (*Ope }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.regionCompositeHealthChecks.patch", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type RegionCommitmentsAggregatedListCall struct { - s *Service - project string - urlParams_ gensupport.URLParams - ifNoneMatch_ string - ctx_ context.Context - header_ http.Header +type RegionCompositeHealthChecksTestIamPermissionsCall struct { + s *Service + project string + region string + resource string + testpermissionsrequest *TestPermissionsRequest + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header } -// AggregatedList: Retrieves an aggregated list of commitments by region. To -// prevent failure, Google recommends that you set the `returnPartialSuccess` -// parameter to `true`. +// TestIamPermissions: Returns permissions that a caller has on the specified +// resource. // // - project: Project ID for this request. -func (r *RegionCommitmentsService) AggregatedList(project string) *RegionCommitmentsAggregatedListCall { - c := &RegionCommitmentsAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)} +// - region: The name of the region for this request. +// - resource: Name or id of the resource for this request. +func (r *RegionCompositeHealthChecksService) TestIamPermissions(project string, region string, resource string, testpermissionsrequest *TestPermissionsRequest) *RegionCompositeHealthChecksTestIamPermissionsCall { + c := &RegionCompositeHealthChecksTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project - return c -} - -// Filter sets the optional parameter "filter": A filter expression that -// filters resources listed in the response. Most Compute resources support two -// types of filter expressions: expressions that support regular expressions -// and expressions that follow API improvement proposal AIP-160. These two -// types of filter expressions cannot be mixed in one request. If you want to -// use AIP-160, your expression must specify the field name, an operator, and -// the value that you want to use for filtering. The value must be a string, a -// number, or a boolean. The 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`. The `:*` comparison can be used to test whether a key has -// been defined. For example, to find all objects with `owner` label use: ``` -// labels.owner:* ``` 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) ``` If you want to use a regular -// expression, use the `eq` (equal) or `ne` (not equal) operator against a -// single un-parenthesized expression with or without quotes or against -// multiple parenthesized expressions. Examples: `fieldname eq unquoted -// literal` `fieldname eq 'single quoted literal'` `fieldname eq "double quoted -// literal" `(fieldname1 eq literal) (fieldname2 ne "literal")` The literal -// value is interpreted as a regular expression using Google RE2 library -// syntax. The literal value must match the entire field. For example, to -// filter for instances that do not end with name "instance", you would use -// `name ne .*instance`. You cannot combine constraints on multiple fields -// using regular expressions. -func (c *RegionCommitmentsAggregatedListCall) Filter(filter string) *RegionCommitmentsAggregatedListCall { - c.urlParams_.Set("filter", filter) - return c -} - -// IncludeAllScopes sets the optional parameter "includeAllScopes": Indicates -// whether every visible scope for each scope type (zone, region, global) -// should be included in the response. For new resource types added after this -// field, the flag has no effect as new resource types will always include -// every visible scope for each scope type in response. For resource types -// which predate this field, if this flag is omitted or false, only scopes of -// the scope types where the resource type is expected to be found will be -// included. -func (c *RegionCommitmentsAggregatedListCall) IncludeAllScopes(includeAllScopes bool) *RegionCommitmentsAggregatedListCall { - c.urlParams_.Set("includeAllScopes", fmt.Sprint(includeAllScopes)) - 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 *RegionCommitmentsAggregatedListCall) MaxResults(maxResults int64) *RegionCommitmentsAggregatedListCall { - 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 *RegionCommitmentsAggregatedListCall) OrderBy(orderBy string) *RegionCommitmentsAggregatedListCall { - 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 *RegionCommitmentsAggregatedListCall) PageToken(pageToken string) *RegionCommitmentsAggregatedListCall { - c.urlParams_.Set("pageToken", pageToken) - return c -} - -// ReturnPartialSuccess sets the optional parameter "returnPartialSuccess": -// Opt-in for partial success behavior which provides partial results in case -// of failure. The default value is false. For example, when partial success -// behavior is enabled, aggregatedList for a single zone scope either returns -// all resources in the zone or no resources, with an error code. -func (c *RegionCommitmentsAggregatedListCall) ReturnPartialSuccess(returnPartialSuccess bool) *RegionCommitmentsAggregatedListCall { - c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess)) - return c -} - -// ServiceProjectNumber sets the optional parameter "serviceProjectNumber": The -// Shared VPC service project id or service project number for which aggregated -// list request is invoked for subnetworks list-usable api. -func (c *RegionCommitmentsAggregatedListCall) ServiceProjectNumber(serviceProjectNumber int64) *RegionCommitmentsAggregatedListCall { - c.urlParams_.Set("serviceProjectNumber", fmt.Sprint(serviceProjectNumber)) + c.region = region + c.resource = resource + c.testpermissionsrequest = testpermissionsrequest return c } // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *RegionCommitmentsAggregatedListCall) Fields(s ...googleapi.Field) *RegionCommitmentsAggregatedListCall { +func (c *RegionCompositeHealthChecksTestIamPermissionsCall) Fields(s ...googleapi.Field) *RegionCompositeHealthChecksTestIamPermissionsCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } -// IfNoneMatch sets an 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. -func (c *RegionCommitmentsAggregatedListCall) IfNoneMatch(entityTag string) *RegionCommitmentsAggregatedListCall { - c.ifNoneMatch_ = entityTag - return c -} - // Context sets the context to be used in this call's Do method. -func (c *RegionCommitmentsAggregatedListCall) Context(ctx context.Context) *RegionCommitmentsAggregatedListCall { +func (c *RegionCompositeHealthChecksTestIamPermissionsCall) Context(ctx context.Context) *RegionCompositeHealthChecksTestIamPermissionsCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *RegionCommitmentsAggregatedListCall) Header() http.Header { +func (c *RegionCompositeHealthChecksTestIamPermissionsCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *RegionCommitmentsAggregatedListCall) doRequest(alt string) (*http.Response, error) { - reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) - if c.ifNoneMatch_ != "" { - reqHeaders.Set("If-None-Match", c.ifNoneMatch_) +func (c *RegionCompositeHealthChecksTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) + body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.testpermissionsrequest) + if err != nil { + return nil, err } - var body io.Reader = nil c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/aggregated/commitments") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/compositeHealthChecks/{resource}/testIamPermissions") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("GET", urls, body) + req, err := http.NewRequest("POST", urls, body) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, + "project": c.project, + "region": c.region, + "resource": c.resource, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.regionCompositeHealthChecks.testIamPermissions", "request", internallog.HTTPRequest(req, body.Bytes())) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.regionCommitments.aggregatedList" call. +// Do executes the "compute.regionCompositeHealthChecks.testIamPermissions" call. // Any non-2xx status code is an error. Response headers are in either -// *CommitmentAggregatedList.ServerResponse.Header or (if a response was +// *TestPermissionsResponse.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 *RegionCommitmentsAggregatedListCall) Do(opts ...googleapi.CallOption) (*CommitmentAggregatedList, error) { +func (c *RegionCompositeHealthChecksTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -1828,68 +2253,49 @@ func (c *RegionCommitmentsAggregatedListCall) Do(opts ...googleapi.CallOption) ( if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } - ret := &CommitmentAggregatedList{ + ret := &TestPermissionsResponse{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.regionCompositeHealthChecks.testIamPermissions", "response", internallog.HTTPResponse(res, b)) return ret, nil } -// 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 *RegionCommitmentsAggregatedListCall) Pages(ctx context.Context, f func(*CommitmentAggregatedList) error) error { - c.ctx_ = ctx - defer c.PageToken(c.urlParams_.Get("pageToken")) - 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) - } -} - -type RegionCommitmentsGetCall struct { +type RegionDiskTypesGetCall struct { s *Service project string region string - commitment string + diskType string urlParams_ gensupport.URLParams ifNoneMatch_ string ctx_ context.Context header_ http.Header } -// Get: Returns the specified commitment resource. +// Get: Returns the specified regional disk type. // -// - commitment: Name of the commitment to return. +// - diskType: Name of the disk type to return. // - project: Project ID for this request. -// - region: Name of the region for this request. -func (r *RegionCommitmentsService) Get(project string, region string, commitment string) *RegionCommitmentsGetCall { - c := &RegionCommitmentsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)} +// - region: The name of the region for this request. +func (r *RegionDiskTypesService) Get(project string, region string, diskType string) *RegionDiskTypesGetCall { + c := &RegionDiskTypesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project c.region = region - c.commitment = commitment + c.diskType = diskType return c } // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *RegionCommitmentsGetCall) Fields(s ...googleapi.Field) *RegionCommitmentsGetCall { +func (c *RegionDiskTypesGetCall) Fields(s ...googleapi.Field) *RegionDiskTypesGetCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } @@ -1897,55 +2303,55 @@ func (c *RegionCommitmentsGetCall) Fields(s ...googleapi.Field) *RegionCommitmen // IfNoneMatch sets an 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. -func (c *RegionCommitmentsGetCall) IfNoneMatch(entityTag string) *RegionCommitmentsGetCall { +func (c *RegionDiskTypesGetCall) IfNoneMatch(entityTag string) *RegionDiskTypesGetCall { c.ifNoneMatch_ = entityTag return c } // Context sets the context to be used in this call's Do method. -func (c *RegionCommitmentsGetCall) Context(ctx context.Context) *RegionCommitmentsGetCall { +func (c *RegionDiskTypesGetCall) Context(ctx context.Context) *RegionDiskTypesGetCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *RegionCommitmentsGetCall) Header() http.Header { +func (c *RegionDiskTypesGetCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *RegionCommitmentsGetCall) doRequest(alt string) (*http.Response, error) { +func (c *RegionDiskTypesGetCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) if c.ifNoneMatch_ != "" { reqHeaders.Set("If-None-Match", c.ifNoneMatch_) } - var body io.Reader = nil c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/commitments/{commitment}") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/diskTypes/{diskType}") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("GET", urls, body) + req, err := http.NewRequest("GET", urls, nil) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "region": c.region, - "commitment": c.commitment, + "project": c.project, + "region": c.region, + "diskType": c.diskType, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.regionDiskTypes.get", "request", internallog.HTTPRequest(req, nil)) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.regionCommitments.get" call. +// Do executes the "compute.regionDiskTypes.get" call. // Any non-2xx status code is an error. Response headers are in either -// *Commitment.ServerResponse.Header or (if a response was returned at all) in +// *DiskType.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 *RegionCommitmentsGetCall) Do(opts ...googleapi.CallOption) (*Commitment, error) { +func (c *RegionDiskTypesGetCall) Do(opts ...googleapi.CallOption) (*DiskType, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -1964,92 +2370,212 @@ func (c *RegionCommitmentsGetCall) Do(opts ...googleapi.CallOption) (*Commitment if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } - ret := &Commitment{ + ret := &DiskType{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.regionDiskTypes.get", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type RegionCommitmentsInsertCall struct { - s *Service - project string - region string - commitment *Commitment - urlParams_ gensupport.URLParams - ctx_ context.Context - header_ http.Header +type RegionDiskTypesListCall struct { + s *Service + project string + region string + urlParams_ gensupport.URLParams + ifNoneMatch_ string + ctx_ context.Context + header_ http.Header } -// Insert: Creates a commitment in the specified project using the data -// included in the request. +// List: Retrieves a list of regional disk types available to the specified +// project. // // - project: Project ID for this request. -// - region: Name of the region for this request. -func (r *RegionCommitmentsService) Insert(project string, region string, commitment *Commitment) *RegionCommitmentsInsertCall { - c := &RegionCommitmentsInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)} +// - region: The name of the region for this request. +func (r *RegionDiskTypesService) List(project string, region string) *RegionDiskTypesListCall { + c := &RegionDiskTypesListCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project c.region = region - c.commitment = commitment 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 *RegionCommitmentsInsertCall) RequestId(requestId string) *RegionCommitmentsInsertCall { - c.urlParams_.Set("requestId", requestId) +// Filter sets the optional parameter "filter": A filter expression that +// filters resources listed in the response. Most +// Compute resources support two types of filter expressions: +// expressions that support regular expressions and expressions that follow +// API improvement proposal AIP-160. +// These two types of filter expressions cannot be mixed in one request. +// +// If you want to use AIP-160, your expression must specify the field name, +// an +// operator, and the value that you want to use for filtering. The value +// must be a string, a number, or a boolean. The 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`. +// +// The `:*` comparison can be used to test whether a key has been defined. +// For example, to find all objects with `owner` label +// use: +// ``` +// labels.owner:* +// ``` +// +// 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 onresource 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) +// ``` +// +// If you want to use a regular expression, use the `eq` (equal) or `ne` +// (not equal) operator against a single un-parenthesized expression with +// or +// without quotes or against multiple parenthesized expressions. +// Examples: +// +// `fieldname eq unquoted literal` +// `fieldname eq 'single quoted literal'` +// `fieldname eq "double quoted literal" +// `(fieldname1 eq literal) (fieldname2 ne "literal")` +// +// The literal value is interpreted as a regular expression using GoogleRE2 +// library syntax. +// The literal value must match the entire field. +// +// For example, to filter for instances that do not end with name +// "instance", +// you would use `name ne .*instance`. +// +// You cannot combine constraints on multiple fields using regular +// expressions. +func (c *RegionDiskTypesListCall) Filter(filter string) *RegionDiskTypesListCall { + 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 *RegionDiskTypesListCall) MaxResults(maxResults int64) *RegionDiskTypesListCall { + 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 *RegionDiskTypesListCall) OrderBy(orderBy string) *RegionDiskTypesListCall { + 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 *RegionDiskTypesListCall) PageToken(pageToken string) *RegionDiskTypesListCall { + c.urlParams_.Set("pageToken", pageToken) + return c +} + +// ReturnPartialSuccess sets the optional parameter "returnPartialSuccess": +// Opt-in for partial success behavior which provides partial results in +// case +// of failure. The default value is false. +// +// For example, when partial success behavior is enabled, aggregatedList for +// a +// single zone scope either returns all resources in the zone or no +// resources, +// with an error code. +func (c *RegionDiskTypesListCall) ReturnPartialSuccess(returnPartialSuccess bool) *RegionDiskTypesListCall { + c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess)) return c } // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *RegionCommitmentsInsertCall) Fields(s ...googleapi.Field) *RegionCommitmentsInsertCall { +func (c *RegionDiskTypesListCall) Fields(s ...googleapi.Field) *RegionDiskTypesListCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } +// IfNoneMatch sets an 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. +func (c *RegionDiskTypesListCall) IfNoneMatch(entityTag string) *RegionDiskTypesListCall { + c.ifNoneMatch_ = entityTag + return c +} + // Context sets the context to be used in this call's Do method. -func (c *RegionCommitmentsInsertCall) Context(ctx context.Context) *RegionCommitmentsInsertCall { +func (c *RegionDiskTypesListCall) Context(ctx context.Context) *RegionDiskTypesListCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *RegionCommitmentsInsertCall) Header() http.Header { +func (c *RegionDiskTypesListCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *RegionCommitmentsInsertCall) doRequest(alt string) (*http.Response, error) { - reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) - var body io.Reader = nil - body, err := googleapi.WithoutDataWrapper.JSONReader(c.commitment) - if err != nil { - return nil, err +func (c *RegionDiskTypesListCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) + if c.ifNoneMatch_ != "" { + reqHeaders.Set("If-None-Match", c.ifNoneMatch_) } c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/commitments") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/diskTypes") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("POST", urls, body) + req, err := http.NewRequest("GET", urls, nil) if err != nil { return nil, err } @@ -2058,15 +2584,17 @@ func (c *RegionCommitmentsInsertCall) doRequest(alt string) (*http.Response, err "project": c.project, "region": c.region, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.regionDiskTypes.list", "request", internallog.HTTPRequest(req, nil)) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.regionCommitments.insert" call. +// Do executes the "compute.regionDiskTypes.list" call. // 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 *RegionCommitmentsInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) { +// *RegionDiskTypeList.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 *RegionDiskTypesListCall) Do(opts ...googleapi.CallOption) (*RegionDiskTypeList, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -2085,160 +2613,126 @@ func (c *RegionCommitmentsInsertCall) Do(opts ...googleapi.CallOption) (*Operati if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } - ret := &Operation{ + ret := &RegionDiskTypeList{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.regionDiskTypes.list", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type RegionCommitmentsListCall struct { - s *Service - project string - region string - urlParams_ gensupport.URLParams - ifNoneMatch_ string - ctx_ context.Context - header_ http.Header -} - -// List: Retrieves a list of commitments contained within the specified region. -// -// - project: Project ID for this request. -// - region: Name of the region for this request. -func (r *RegionCommitmentsService) List(project string, region string) *RegionCommitmentsListCall { - c := &RegionCommitmentsListCall{s: r.s, urlParams_: make(gensupport.URLParams)} - c.project = project - c.region = region - return c -} - -// Filter sets the optional parameter "filter": A filter expression that -// filters resources listed in the response. Most Compute resources support two -// types of filter expressions: expressions that support regular expressions -// and expressions that follow API improvement proposal AIP-160. These two -// types of filter expressions cannot be mixed in one request. If you want to -// use AIP-160, your expression must specify the field name, an operator, and -// the value that you want to use for filtering. The value must be a string, a -// number, or a boolean. The 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`. The `:*` comparison can be used to test whether a key has -// been defined. For example, to find all objects with `owner` label use: ``` -// labels.owner:* ``` 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) ``` If you want to use a regular -// expression, use the `eq` (equal) or `ne` (not equal) operator against a -// single un-parenthesized expression with or without quotes or against -// multiple parenthesized expressions. Examples: `fieldname eq unquoted -// literal` `fieldname eq 'single quoted literal'` `fieldname eq "double quoted -// literal" `(fieldname1 eq literal) (fieldname2 ne "literal")` The literal -// value is interpreted as a regular expression using Google RE2 library -// syntax. The literal value must match the entire field. For example, to -// filter for instances that do not end with name "instance", you would use -// `name ne .*instance`. You cannot combine constraints on multiple fields -// using regular expressions. -func (c *RegionCommitmentsListCall) Filter(filter string) *RegionCommitmentsListCall { - 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 *RegionCommitmentsListCall) MaxResults(maxResults int64) *RegionCommitmentsListCall { - c.urlParams_.Set("maxResults", fmt.Sprint(maxResults)) - return c +// 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 *RegionDiskTypesListCall) Pages(ctx context.Context, f func(*RegionDiskTypeList) error) error { + c.ctx_ = ctx + defer c.PageToken(c.urlParams_.Get("pageToken")) + 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) + } } -// 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 *RegionCommitmentsListCall) OrderBy(orderBy string) *RegionCommitmentsListCall { - c.urlParams_.Set("orderBy", orderBy) - return c +type RegionDisksAddResourcePoliciesCall struct { + s *Service + project string + region string + disk string + regiondisksaddresourcepoliciesrequest *RegionDisksAddResourcePoliciesRequest + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header } -// 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 *RegionCommitmentsListCall) PageToken(pageToken string) *RegionCommitmentsListCall { - c.urlParams_.Set("pageToken", pageToken) +// AddResourcePolicies: Adds existing resource policies to a regional disk. You +// can only add one +// policy which will be applied to this disk for scheduling snapshot +// creation. +// +// - disk: The disk name for this request. +// - project: Project ID for this request. +// - region: The name of the region for this request. +func (r *RegionDisksService) AddResourcePolicies(project string, region string, disk string, regiondisksaddresourcepoliciesrequest *RegionDisksAddResourcePoliciesRequest) *RegionDisksAddResourcePoliciesCall { + c := &RegionDisksAddResourcePoliciesCall{s: r.s, urlParams_: make(gensupport.URLParams)} + c.project = project + c.region = region + c.disk = disk + c.regiondisksaddresourcepoliciesrequest = regiondisksaddresourcepoliciesrequest return c } -// ReturnPartialSuccess sets the optional parameter "returnPartialSuccess": -// Opt-in for partial success behavior which provides partial results in case -// of failure. The default value is false. For example, when partial success -// behavior is enabled, aggregatedList for a single zone scope either returns -// all resources in the zone or no resources, with an error code. -func (c *RegionCommitmentsListCall) ReturnPartialSuccess(returnPartialSuccess bool) *RegionCommitmentsListCall { - c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess)) +// 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 *RegionDisksAddResourcePoliciesCall) RequestId(requestId string) *RegionDisksAddResourcePoliciesCall { + 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 // details. -func (c *RegionCommitmentsListCall) Fields(s ...googleapi.Field) *RegionCommitmentsListCall { +func (c *RegionDisksAddResourcePoliciesCall) Fields(s ...googleapi.Field) *RegionDisksAddResourcePoliciesCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } -// IfNoneMatch sets an 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. -func (c *RegionCommitmentsListCall) IfNoneMatch(entityTag string) *RegionCommitmentsListCall { - c.ifNoneMatch_ = entityTag - return c -} - // Context sets the context to be used in this call's Do method. -func (c *RegionCommitmentsListCall) Context(ctx context.Context) *RegionCommitmentsListCall { +func (c *RegionDisksAddResourcePoliciesCall) Context(ctx context.Context) *RegionDisksAddResourcePoliciesCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *RegionCommitmentsListCall) Header() http.Header { +func (c *RegionDisksAddResourcePoliciesCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *RegionCommitmentsListCall) doRequest(alt string) (*http.Response, error) { - reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) - if c.ifNoneMatch_ != "" { - reqHeaders.Set("If-None-Match", c.ifNoneMatch_) +func (c *RegionDisksAddResourcePoliciesCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) + body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.regiondisksaddresourcepoliciesrequest) + if err != nil { + return nil, err } - var body io.Reader = nil c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/commitments") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/disks/{disk}/addResourcePolicies") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("GET", urls, body) + req, err := http.NewRequest("POST", urls, body) if err != nil { return nil, err } @@ -2246,16 +2740,18 @@ func (c *RegionCommitmentsListCall) doRequest(alt string) (*http.Response, error googleapi.Expand(req.URL, map[string]string{ "project": c.project, "region": c.region, + "disk": c.disk, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.regionDisks.addResourcePolicies", "request", internallog.HTTPRequest(req, body.Bytes())) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.regionCommitments.list" call. +// Do executes the "compute.regionDisks.addResourcePolicies" call. // Any non-2xx status code is an error. Response headers are in either -// *CommitmentList.ServerResponse.Header or (if a response was returned at all) -// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check +// *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 *RegionCommitmentsListCall) Do(opts ...googleapi.CallOption) (*CommitmentList, error) { +func (c *RegionDisksAddResourcePoliciesCall) Do(opts ...googleapi.CallOption) (*Operation, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -2274,148 +2770,117 @@ func (c *RegionCommitmentsListCall) Do(opts ...googleapi.CallOption) (*Commitmen if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } - ret := &CommitmentList{ + ret := &Operation{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.regionDisks.addResourcePolicies", "response", internallog.HTTPResponse(res, b)) return ret, nil } -// 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 *RegionCommitmentsListCall) Pages(ctx context.Context, f func(*CommitmentList) error) error { - c.ctx_ = ctx - defer c.PageToken(c.urlParams_.Get("pageToken")) - 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) - } -} - -type RegionCommitmentsUpdateCall struct { - s *Service - project string - region string - commitment string - commitment2 *Commitment - urlParams_ gensupport.URLParams - ctx_ context.Context - header_ http.Header +type RegionDisksBulkInsertCall struct { + s *Service + project string + region string + bulkinsertdiskresource *BulkInsertDiskResource + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header } -// Update: Updates the specified commitment with the data included in the -// request. Update is performed only on selected fields included as part of -// update-mask. Only the following fields can be modified: auto_renew. +// BulkInsert: Bulk create a set of disks. // -// - commitment: Name of the commitment for which auto renew is being updated. // - project: Project ID for this request. -// - region: Name of the region for this request. -func (r *RegionCommitmentsService) Update(project string, region string, commitment string, commitment2 *Commitment) *RegionCommitmentsUpdateCall { - c := &RegionCommitmentsUpdateCall{s: r.s, urlParams_: make(gensupport.URLParams)} +// - region: The name of the region for this request. +func (r *RegionDisksService) BulkInsert(project string, region string, bulkinsertdiskresource *BulkInsertDiskResource) *RegionDisksBulkInsertCall { + c := &RegionDisksBulkInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project c.region = region - c.commitment = commitment - c.commitment2 = commitment2 - return c -} - -// Paths sets the optional parameter "paths": -func (c *RegionCommitmentsUpdateCall) Paths(paths ...string) *RegionCommitmentsUpdateCall { - c.urlParams_.SetMulti("paths", append([]string{}, paths...)) + c.bulkinsertdiskresource = bulkinsertdiskresource 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 *RegionCommitmentsUpdateCall) RequestId(requestId string) *RegionCommitmentsUpdateCall { +// 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 *RegionDisksBulkInsertCall) RequestId(requestId string) *RegionDisksBulkInsertCall { c.urlParams_.Set("requestId", requestId) return c } -// UpdateMask sets the optional parameter "updateMask": update_mask indicates -// fields to be updated as part of this request. -func (c *RegionCommitmentsUpdateCall) UpdateMask(updateMask string) *RegionCommitmentsUpdateCall { - c.urlParams_.Set("updateMask", updateMask) - return c -} - // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *RegionCommitmentsUpdateCall) Fields(s ...googleapi.Field) *RegionCommitmentsUpdateCall { +func (c *RegionDisksBulkInsertCall) Fields(s ...googleapi.Field) *RegionDisksBulkInsertCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } // Context sets the context to be used in this call's Do method. -func (c *RegionCommitmentsUpdateCall) Context(ctx context.Context) *RegionCommitmentsUpdateCall { +func (c *RegionDisksBulkInsertCall) Context(ctx context.Context) *RegionDisksBulkInsertCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *RegionCommitmentsUpdateCall) Header() http.Header { +func (c *RegionDisksBulkInsertCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *RegionCommitmentsUpdateCall) doRequest(alt string) (*http.Response, error) { +func (c *RegionDisksBulkInsertCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) - var body io.Reader = nil - body, err := googleapi.WithoutDataWrapper.JSONReader(c.commitment2) + body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.bulkinsertdiskresource) if err != nil { return nil, err } c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/commitments/{commitment}") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/disks/bulkInsert") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("PATCH", urls, body) + req, err := http.NewRequest("POST", urls, body) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "region": c.region, - "commitment": c.commitment, + "project": c.project, + "region": c.region, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.regionDisks.bulkInsert", "request", internallog.HTTPRequest(req, body.Bytes())) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.regionCommitments.update" call. +// Do executes the "compute.regionDisks.bulkInsert" call. // 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 *RegionCommitmentsUpdateCall) Do(opts ...googleapi.CallOption) (*Operation, error) { +func (c *RegionDisksBulkInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -2441,96 +2906,119 @@ func (c *RegionCommitmentsUpdateCall) Do(opts ...googleapi.CallOption) (*Operati }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.regionDisks.bulkInsert", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type RegionDiskTypesGetCall struct { - s *Service - project string - region string - diskType string - urlParams_ gensupport.URLParams - ifNoneMatch_ string - ctx_ context.Context - header_ http.Header +type RegionDisksCreateSnapshotCall struct { + s *Service + project string + region string + disk string + snapshot *Snapshot + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header } -// Get: Returns the specified regional disk type. +// CreateSnapshot: Creates a snapshot of a specified persistent disk. For +// regular snapshot +// creation, consider using snapshots.insert +// instead, as that method supports more features, such as creating +// snapshots +// in a project different from the source disk project. // -// - diskType: Name of the disk type to return. +// - disk: Name of the regional persistent disk to snapshot. // - project: Project ID for this request. -// - region: The name of the region for this request. -func (r *RegionDiskTypesService) Get(project string, region string, diskType string) *RegionDiskTypesGetCall { - c := &RegionDiskTypesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)} +// - region: Name of the region for this request. +func (r *RegionDisksService) CreateSnapshot(project string, region string, disk string, snapshot *Snapshot) *RegionDisksCreateSnapshotCall { + c := &RegionDisksCreateSnapshotCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project c.region = region - c.diskType = diskType + c.disk = disk + c.snapshot = snapshot + 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 *RegionDisksCreateSnapshotCall) RequestId(requestId string) *RegionDisksCreateSnapshotCall { + 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 // details. -func (c *RegionDiskTypesGetCall) Fields(s ...googleapi.Field) *RegionDiskTypesGetCall { +func (c *RegionDisksCreateSnapshotCall) Fields(s ...googleapi.Field) *RegionDisksCreateSnapshotCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } -// IfNoneMatch sets an 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. -func (c *RegionDiskTypesGetCall) IfNoneMatch(entityTag string) *RegionDiskTypesGetCall { - c.ifNoneMatch_ = entityTag - return c -} - // Context sets the context to be used in this call's Do method. -func (c *RegionDiskTypesGetCall) Context(ctx context.Context) *RegionDiskTypesGetCall { +func (c *RegionDisksCreateSnapshotCall) Context(ctx context.Context) *RegionDisksCreateSnapshotCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *RegionDiskTypesGetCall) Header() http.Header { +func (c *RegionDisksCreateSnapshotCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *RegionDiskTypesGetCall) doRequest(alt string) (*http.Response, error) { - reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) - if c.ifNoneMatch_ != "" { - reqHeaders.Set("If-None-Match", c.ifNoneMatch_) +func (c *RegionDisksCreateSnapshotCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) + body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.snapshot) + if err != nil { + return nil, err } - var body io.Reader = nil c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/diskTypes/{diskType}") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/disks/{disk}/createSnapshot") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("GET", urls, body) + req, err := http.NewRequest("POST", urls, body) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "region": c.region, - "diskType": c.diskType, + "project": c.project, + "region": c.region, + "disk": c.disk, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.regionDisks.createSnapshot", "request", internallog.HTTPRequest(req, body.Bytes())) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.regionDiskTypes.get" call. +// Do executes the "compute.regionDisks.createSnapshot" call. // Any non-2xx status code is an error. Response headers are in either -// *DiskType.ServerResponse.Header or (if a response was returned at all) in +// *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 *RegionDiskTypesGetCall) Do(opts ...googleapi.CallOption) (*DiskType, error) { +func (c *RegionDisksCreateSnapshotCall) Do(opts ...googleapi.CallOption) (*Operation, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -2549,161 +3037,102 @@ func (c *RegionDiskTypesGetCall) Do(opts ...googleapi.CallOption) (*DiskType, er if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } - ret := &DiskType{ + ret := &Operation{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.regionDisks.createSnapshot", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type RegionDiskTypesListCall struct { - s *Service - project string - region string - urlParams_ gensupport.URLParams - ifNoneMatch_ string - ctx_ context.Context - header_ http.Header +type RegionDisksDeleteCall struct { + s *Service + project string + region string + disk string + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header } -// List: Retrieves a list of regional disk types available to the specified -// project. +// Delete: Deletes the specified regional persistent disk. Deleting a regional +// disk +// removes all the replicas of its data permanently and is +// irreversible. +// However, deleting a disk does not delete anysnapshots +// previously made from the disk. You must separatelydelete +// snapshots. // +// - disk: Name of the regional persistent disk to delete. // - project: Project ID for this request. -// - region: The name of the region for this request. -func (r *RegionDiskTypesService) List(project string, region string) *RegionDiskTypesListCall { - c := &RegionDiskTypesListCall{s: r.s, urlParams_: make(gensupport.URLParams)} +// - region: Name of the region for this request. +func (r *RegionDisksService) Delete(project string, region string, disk string) *RegionDisksDeleteCall { + c := &RegionDisksDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project c.region = region + c.disk = disk return c } -// Filter sets the optional parameter "filter": A filter expression that -// filters resources listed in the response. Most Compute resources support two -// types of filter expressions: expressions that support regular expressions -// and expressions that follow API improvement proposal AIP-160. These two -// types of filter expressions cannot be mixed in one request. If you want to -// use AIP-160, your expression must specify the field name, an operator, and -// the value that you want to use for filtering. The value must be a string, a -// number, or a boolean. The 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`. The `:*` comparison can be used to test whether a key has -// been defined. For example, to find all objects with `owner` label use: ``` -// labels.owner:* ``` 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) ``` If you want to use a regular -// expression, use the `eq` (equal) or `ne` (not equal) operator against a -// single un-parenthesized expression with or without quotes or against -// multiple parenthesized expressions. Examples: `fieldname eq unquoted -// literal` `fieldname eq 'single quoted literal'` `fieldname eq "double quoted -// literal" `(fieldname1 eq literal) (fieldname2 ne "literal")` The literal -// value is interpreted as a regular expression using Google RE2 library -// syntax. The literal value must match the entire field. For example, to -// filter for instances that do not end with name "instance", you would use -// `name ne .*instance`. You cannot combine constraints on multiple fields -// using regular expressions. -func (c *RegionDiskTypesListCall) Filter(filter string) *RegionDiskTypesListCall { - 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 *RegionDiskTypesListCall) MaxResults(maxResults int64) *RegionDiskTypesListCall { - 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 *RegionDiskTypesListCall) OrderBy(orderBy string) *RegionDiskTypesListCall { - 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 *RegionDiskTypesListCall) PageToken(pageToken string) *RegionDiskTypesListCall { - c.urlParams_.Set("pageToken", pageToken) - return c -} - -// ReturnPartialSuccess sets the optional parameter "returnPartialSuccess": -// Opt-in for partial success behavior which provides partial results in case -// of failure. The default value is false. For example, when partial success -// behavior is enabled, aggregatedList for a single zone scope either returns -// all resources in the zone or no resources, with an error code. -func (c *RegionDiskTypesListCall) ReturnPartialSuccess(returnPartialSuccess bool) *RegionDiskTypesListCall { - c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess)) +// 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 *RegionDisksDeleteCall) RequestId(requestId string) *RegionDisksDeleteCall { + 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 // details. -func (c *RegionDiskTypesListCall) Fields(s ...googleapi.Field) *RegionDiskTypesListCall { +func (c *RegionDisksDeleteCall) Fields(s ...googleapi.Field) *RegionDisksDeleteCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } -// IfNoneMatch sets an 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. -func (c *RegionDiskTypesListCall) IfNoneMatch(entityTag string) *RegionDiskTypesListCall { - c.ifNoneMatch_ = entityTag - return c -} - // Context sets the context to be used in this call's Do method. -func (c *RegionDiskTypesListCall) Context(ctx context.Context) *RegionDiskTypesListCall { +func (c *RegionDisksDeleteCall) Context(ctx context.Context) *RegionDisksDeleteCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *RegionDiskTypesListCall) Header() http.Header { +func (c *RegionDisksDeleteCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *RegionDiskTypesListCall) doRequest(alt string) (*http.Response, error) { +func (c *RegionDisksDeleteCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) - if c.ifNoneMatch_ != "" { - reqHeaders.Set("If-None-Match", c.ifNoneMatch_) - } - var body io.Reader = nil c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/diskTypes") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/disks/{disk}") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("GET", urls, body) + req, err := http.NewRequest("DELETE", urls, nil) if err != nil { return nil, err } @@ -2711,17 +3140,18 @@ func (c *RegionDiskTypesListCall) doRequest(alt string) (*http.Response, error) googleapi.Expand(req.URL, map[string]string{ "project": c.project, "region": c.region, + "disk": c.disk, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.regionDisks.delete", "request", internallog.HTTPRequest(req, nil)) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.regionDiskTypes.list" call. +// Do executes the "compute.regionDisks.delete" call. // Any non-2xx status code is an error. Response headers are in either -// *RegionDiskTypeList.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 *RegionDiskTypesListCall) Do(opts ...googleapi.CallOption) (*RegionDiskTypeList, error) { +// *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 *RegionDisksDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -2740,117 +3170,86 @@ func (c *RegionDiskTypesListCall) Do(opts ...googleapi.CallOption) (*RegionDiskT if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } - ret := &RegionDiskTypeList{ + ret := &Operation{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.regionDisks.delete", "response", internallog.HTTPResponse(res, b)) return ret, nil } -// 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 *RegionDiskTypesListCall) Pages(ctx context.Context, f func(*RegionDiskTypeList) error) error { - c.ctx_ = ctx - defer c.PageToken(c.urlParams_.Get("pageToken")) - 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) - } -} - -type RegionDisksAddResourcePoliciesCall struct { - s *Service - project string - region string - disk string - regiondisksaddresourcepoliciesrequest *RegionDisksAddResourcePoliciesRequest - urlParams_ gensupport.URLParams - ctx_ context.Context - header_ http.Header +type RegionDisksGetCall struct { + s *Service + project string + region string + disk string + urlParams_ gensupport.URLParams + ifNoneMatch_ string + ctx_ context.Context + header_ http.Header } -// AddResourcePolicies: Adds existing resource policies to a regional disk. You -// can only add one policy which will be applied to this disk for scheduling -// snapshot creation. +// Get: Returns a specified regional persistent disk. // -// - disk: The disk name for this request. +// - disk: Name of the regional persistent disk to return. // - project: Project ID for this request. -// - region: The name of the region for this request. -func (r *RegionDisksService) AddResourcePolicies(project string, region string, disk string, regiondisksaddresourcepoliciesrequest *RegionDisksAddResourcePoliciesRequest) *RegionDisksAddResourcePoliciesCall { - c := &RegionDisksAddResourcePoliciesCall{s: r.s, urlParams_: make(gensupport.URLParams)} +// - region: Name of the region for this request. +func (r *RegionDisksService) Get(project string, region string, disk string) *RegionDisksGetCall { + c := &RegionDisksGetCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project c.region = region c.disk = disk - c.regiondisksaddresourcepoliciesrequest = regiondisksaddresourcepoliciesrequest - 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 *RegionDisksAddResourcePoliciesCall) RequestId(requestId string) *RegionDisksAddResourcePoliciesCall { - 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 // details. -func (c *RegionDisksAddResourcePoliciesCall) Fields(s ...googleapi.Field) *RegionDisksAddResourcePoliciesCall { +func (c *RegionDisksGetCall) Fields(s ...googleapi.Field) *RegionDisksGetCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } +// IfNoneMatch sets an 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. +func (c *RegionDisksGetCall) IfNoneMatch(entityTag string) *RegionDisksGetCall { + c.ifNoneMatch_ = entityTag + return c +} + // Context sets the context to be used in this call's Do method. -func (c *RegionDisksAddResourcePoliciesCall) Context(ctx context.Context) *RegionDisksAddResourcePoliciesCall { +func (c *RegionDisksGetCall) Context(ctx context.Context) *RegionDisksGetCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *RegionDisksAddResourcePoliciesCall) Header() http.Header { +func (c *RegionDisksGetCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *RegionDisksAddResourcePoliciesCall) doRequest(alt string) (*http.Response, error) { - reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) - var body io.Reader = nil - body, err := googleapi.WithoutDataWrapper.JSONReader(c.regiondisksaddresourcepoliciesrequest) - if err != nil { - return nil, err +func (c *RegionDisksGetCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) + if c.ifNoneMatch_ != "" { + reqHeaders.Set("If-None-Match", c.ifNoneMatch_) } c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/disks/{disk}/addResourcePolicies") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/disks/{disk}") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("POST", urls, body) + req, err := http.NewRequest("GET", urls, nil) if err != nil { return nil, err } @@ -2860,15 +3259,16 @@ func (c *RegionDisksAddResourcePoliciesCall) doRequest(alt string) (*http.Respon "region": c.region, "disk": c.disk, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.regionDisks.get", "request", internallog.HTTPRequest(req, nil)) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.regionDisks.addResourcePolicies" call. +// Do executes the "compute.regionDisks.get" call. // 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 +// *Disk.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 *RegionDisksAddResourcePoliciesCall) Do(opts ...googleapi.CallOption) (*Operation, error) { +func (c *RegionDisksGetCall) Do(opts ...googleapi.CallOption) (*Disk, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -2887,585 +3287,105 @@ func (c *RegionDisksAddResourcePoliciesCall) Do(opts ...googleapi.CallOption) (* if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } - ret := &Operation{ + ret := &Disk{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.regionDisks.get", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type RegionDisksBulkInsertCall struct { - s *Service - project string - region string - bulkinsertdiskresource *BulkInsertDiskResource - urlParams_ gensupport.URLParams - ctx_ context.Context - header_ http.Header +type RegionDisksGetIamPolicyCall struct { + s *Service + project string + region string + resource string + urlParams_ gensupport.URLParams + ifNoneMatch_ string + ctx_ context.Context + header_ http.Header } -// BulkInsert: Bulk create a set of disks. +// GetIamPolicy: Gets the access control policy for a resource. May be empty if +// no such +// policy or resource exists. // // - project: Project ID for this request. // - region: The name of the region for this request. -func (r *RegionDisksService) BulkInsert(project string, region string, bulkinsertdiskresource *BulkInsertDiskResource) *RegionDisksBulkInsertCall { - c := &RegionDisksBulkInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)} +// - resource: Name or id of the resource for this request. +func (r *RegionDisksService) GetIamPolicy(project string, region string, resource string) *RegionDisksGetIamPolicyCall { + c := &RegionDisksGetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project c.region = region - c.bulkinsertdiskresource = bulkinsertdiskresource + c.resource = resource 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 *RegionDisksBulkInsertCall) RequestId(requestId string) *RegionDisksBulkInsertCall { - c.urlParams_.Set("requestId", requestId) +// OptionsRequestedPolicyVersion sets the optional parameter +// "optionsRequestedPolicyVersion": Requested IAM Policy version. +func (c *RegionDisksGetIamPolicyCall) OptionsRequestedPolicyVersion(optionsRequestedPolicyVersion int64) *RegionDisksGetIamPolicyCall { + c.urlParams_.Set("optionsRequestedPolicyVersion", fmt.Sprint(optionsRequestedPolicyVersion)) return c } // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *RegionDisksBulkInsertCall) Fields(s ...googleapi.Field) *RegionDisksBulkInsertCall { +func (c *RegionDisksGetIamPolicyCall) Fields(s ...googleapi.Field) *RegionDisksGetIamPolicyCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } +// IfNoneMatch sets an 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. +func (c *RegionDisksGetIamPolicyCall) IfNoneMatch(entityTag string) *RegionDisksGetIamPolicyCall { + c.ifNoneMatch_ = entityTag + return c +} + // Context sets the context to be used in this call's Do method. -func (c *RegionDisksBulkInsertCall) Context(ctx context.Context) *RegionDisksBulkInsertCall { +func (c *RegionDisksGetIamPolicyCall) Context(ctx context.Context) *RegionDisksGetIamPolicyCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *RegionDisksBulkInsertCall) Header() http.Header { +func (c *RegionDisksGetIamPolicyCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *RegionDisksBulkInsertCall) doRequest(alt string) (*http.Response, error) { - reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) - var body io.Reader = nil - body, err := googleapi.WithoutDataWrapper.JSONReader(c.bulkinsertdiskresource) - if err != nil { - return nil, err +func (c *RegionDisksGetIamPolicyCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) + if c.ifNoneMatch_ != "" { + reqHeaders.Set("If-None-Match", c.ifNoneMatch_) } c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/disks/bulkInsert") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/disks/{resource}/getIamPolicy") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("POST", urls, body) + req, err := http.NewRequest("GET", urls, nil) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "region": c.region, - }) - return gensupport.SendRequest(c.ctx_, c.s.client, req) -} - -// Do executes the "compute.regionDisks.bulkInsert" call. -// 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 *RegionDisksBulkInsertCall) 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, gensupport.WrapError(&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, gensupport.WrapError(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 -} - -type RegionDisksCreateSnapshotCall struct { - s *Service - project string - region string - disk string - snapshot *Snapshot - urlParams_ gensupport.URLParams - ctx_ context.Context - header_ http.Header -} - -// CreateSnapshot: Creates a snapshot of a specified persistent disk. For -// regular snapshot creation, consider using snapshots.insert instead, as that -// method supports more features, such as creating snapshots in a project -// different from the source disk project. -// -// - disk: Name of the regional persistent disk to snapshot. -// - project: Project ID for this request. -// - region: Name of the region for this request. -func (r *RegionDisksService) CreateSnapshot(project string, region string, disk string, snapshot *Snapshot) *RegionDisksCreateSnapshotCall { - c := &RegionDisksCreateSnapshotCall{s: r.s, urlParams_: make(gensupport.URLParams)} - c.project = project - c.region = region - c.disk = disk - c.snapshot = snapshot - 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 *RegionDisksCreateSnapshotCall) RequestId(requestId string) *RegionDisksCreateSnapshotCall { - 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 -// details. -func (c *RegionDisksCreateSnapshotCall) Fields(s ...googleapi.Field) *RegionDisksCreateSnapshotCall { - c.urlParams_.Set("fields", googleapi.CombineFields(s)) - return c -} - -// Context sets the context to be used in this call's Do method. -func (c *RegionDisksCreateSnapshotCall) Context(ctx context.Context) *RegionDisksCreateSnapshotCall { - c.ctx_ = ctx - return c -} - -// Header returns a http.Header that can be modified by the caller to add -// headers to the request. -func (c *RegionDisksCreateSnapshotCall) Header() http.Header { - if c.header_ == nil { - c.header_ = make(http.Header) - } - return c.header_ -} - -func (c *RegionDisksCreateSnapshotCall) doRequest(alt string) (*http.Response, error) { - reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) - var body io.Reader = nil - body, err := googleapi.WithoutDataWrapper.JSONReader(c.snapshot) - if err != nil { - return nil, err - } - c.urlParams_.Set("alt", alt) - c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/disks/{disk}/createSnapshot") - urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("POST", urls, body) - if err != nil { - return nil, err - } - req.Header = reqHeaders - googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "region": c.region, - "disk": c.disk, - }) - return gensupport.SendRequest(c.ctx_, c.s.client, req) -} - -// Do executes the "compute.regionDisks.createSnapshot" call. -// 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 *RegionDisksCreateSnapshotCall) 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, gensupport.WrapError(&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, gensupport.WrapError(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 -} - -type RegionDisksDeleteCall struct { - s *Service - project string - region string - disk string - urlParams_ gensupport.URLParams - ctx_ context.Context - header_ http.Header -} - -// Delete: Deletes the specified regional persistent disk. Deleting a regional -// disk removes all the replicas of its data permanently and is irreversible. -// However, deleting a disk does not delete any snapshots previously made from -// the disk. You must separately delete snapshots. -// -// - disk: Name of the regional persistent disk to delete. -// - project: Project ID for this request. -// - region: Name of the region for this request. -func (r *RegionDisksService) Delete(project string, region string, disk string) *RegionDisksDeleteCall { - c := &RegionDisksDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)} - c.project = project - c.region = region - c.disk = disk - 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 *RegionDisksDeleteCall) RequestId(requestId string) *RegionDisksDeleteCall { - 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 -// details. -func (c *RegionDisksDeleteCall) Fields(s ...googleapi.Field) *RegionDisksDeleteCall { - c.urlParams_.Set("fields", googleapi.CombineFields(s)) - return c -} - -// Context sets the context to be used in this call's Do method. -func (c *RegionDisksDeleteCall) Context(ctx context.Context) *RegionDisksDeleteCall { - c.ctx_ = ctx - return c -} - -// Header returns a http.Header that can be modified by the caller to add -// headers to the request. -func (c *RegionDisksDeleteCall) Header() http.Header { - if c.header_ == nil { - c.header_ = make(http.Header) - } - return c.header_ -} - -func (c *RegionDisksDeleteCall) doRequest(alt string) (*http.Response, error) { - reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) - var body io.Reader = nil - c.urlParams_.Set("alt", alt) - c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/disks/{disk}") - urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("DELETE", urls, body) - if err != nil { - return nil, err - } - req.Header = reqHeaders - googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "region": c.region, - "disk": c.disk, - }) - return gensupport.SendRequest(c.ctx_, c.s.client, req) -} - -// Do executes the "compute.regionDisks.delete" call. -// 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 *RegionDisksDeleteCall) 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, gensupport.WrapError(&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, gensupport.WrapError(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 -} - -type RegionDisksGetCall struct { - s *Service - project string - region string - disk string - urlParams_ gensupport.URLParams - ifNoneMatch_ string - ctx_ context.Context - header_ http.Header -} - -// Get: Returns a specified regional persistent disk. -// -// - disk: Name of the regional persistent disk to return. -// - project: Project ID for this request. -// - region: Name of the region for this request. -func (r *RegionDisksService) Get(project string, region string, disk string) *RegionDisksGetCall { - c := &RegionDisksGetCall{s: r.s, urlParams_: make(gensupport.URLParams)} - c.project = project - c.region = region - c.disk = disk - return c -} - -// Fields allows partial responses to be retrieved. See -// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more -// details. -func (c *RegionDisksGetCall) Fields(s ...googleapi.Field) *RegionDisksGetCall { - c.urlParams_.Set("fields", googleapi.CombineFields(s)) - return c -} - -// IfNoneMatch sets an 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. -func (c *RegionDisksGetCall) IfNoneMatch(entityTag string) *RegionDisksGetCall { - c.ifNoneMatch_ = entityTag - return c -} - -// Context sets the context to be used in this call's Do method. -func (c *RegionDisksGetCall) Context(ctx context.Context) *RegionDisksGetCall { - c.ctx_ = ctx - return c -} - -// Header returns a http.Header that can be modified by the caller to add -// headers to the request. -func (c *RegionDisksGetCall) Header() http.Header { - if c.header_ == nil { - c.header_ = make(http.Header) - } - return c.header_ -} - -func (c *RegionDisksGetCall) doRequest(alt string) (*http.Response, error) { - reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) - if c.ifNoneMatch_ != "" { - reqHeaders.Set("If-None-Match", c.ifNoneMatch_) - } - var body io.Reader = nil - c.urlParams_.Set("alt", alt) - c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/disks/{disk}") - urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("GET", urls, body) - if err != nil { - return nil, err - } - req.Header = reqHeaders - googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "region": c.region, - "disk": c.disk, - }) - return gensupport.SendRequest(c.ctx_, c.s.client, req) -} - -// Do executes the "compute.regionDisks.get" call. -// Any non-2xx status code is an error. Response headers are in either -// *Disk.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 *RegionDisksGetCall) Do(opts ...googleapi.CallOption) (*Disk, 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, gensupport.WrapError(&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, gensupport.WrapError(err) - } - ret := &Disk{ - 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 -} - -type RegionDisksGetIamPolicyCall struct { - s *Service - project string - region string - resource string - urlParams_ gensupport.URLParams - ifNoneMatch_ string - ctx_ context.Context - header_ http.Header -} - -// GetIamPolicy: Gets the access control policy for a resource. May be empty if -// no such policy or resource exists. -// -// - project: Project ID for this request. -// - region: The name of the region for this request. -// - resource: Name or id of the resource for this request. -func (r *RegionDisksService) GetIamPolicy(project string, region string, resource string) *RegionDisksGetIamPolicyCall { - c := &RegionDisksGetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)} - c.project = project - c.region = region - c.resource = resource - return c -} - -// OptionsRequestedPolicyVersion sets the optional parameter -// "optionsRequestedPolicyVersion": Requested IAM Policy version. -func (c *RegionDisksGetIamPolicyCall) OptionsRequestedPolicyVersion(optionsRequestedPolicyVersion int64) *RegionDisksGetIamPolicyCall { - c.urlParams_.Set("optionsRequestedPolicyVersion", fmt.Sprint(optionsRequestedPolicyVersion)) - return c -} - -// Fields allows partial responses to be retrieved. See -// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more -// details. -func (c *RegionDisksGetIamPolicyCall) Fields(s ...googleapi.Field) *RegionDisksGetIamPolicyCall { - c.urlParams_.Set("fields", googleapi.CombineFields(s)) - return c -} - -// IfNoneMatch sets an 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. -func (c *RegionDisksGetIamPolicyCall) IfNoneMatch(entityTag string) *RegionDisksGetIamPolicyCall { - c.ifNoneMatch_ = entityTag - return c -} - -// Context sets the context to be used in this call's Do method. -func (c *RegionDisksGetIamPolicyCall) Context(ctx context.Context) *RegionDisksGetIamPolicyCall { - c.ctx_ = ctx - return c -} - -// Header returns a http.Header that can be modified by the caller to add -// headers to the request. -func (c *RegionDisksGetIamPolicyCall) Header() http.Header { - if c.header_ == nil { - c.header_ = make(http.Header) - } - return c.header_ -} - -func (c *RegionDisksGetIamPolicyCall) doRequest(alt string) (*http.Response, error) { - reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) - if c.ifNoneMatch_ != "" { - reqHeaders.Set("If-None-Match", c.ifNoneMatch_) - } - var body io.Reader = nil - c.urlParams_.Set("alt", alt) - c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/disks/{resource}/getIamPolicy") - urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("GET", urls, body) - if err != nil { - return nil, err - } - req.Header = reqHeaders - googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "region": c.region, - "resource": c.resource, + "project": c.project, + "region": c.region, + "resource": c.resource, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.regionDisks.getIamPolicy", "request", internallog.HTTPRequest(req, nil)) return gensupport.SendRequest(c.ctx_, c.s.client, req) } @@ -3500,9 +3420,11 @@ func (c *RegionDisksGetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.regionDisks.getIamPolicy", "response", internallog.HTTPResponse(res, b)) return ret, nil } @@ -3517,7 +3439,8 @@ type RegionDisksInsertCall struct { } // Insert: Creates a persistent regional disk in the specified project using -// the data included in the request. +// the data +// included in the request. // // - project: Project ID for this request. // - region: Name of the region for this request. @@ -3530,15 +3453,22 @@ func (r *RegionDisksService) Insert(project string, region string, disk *Disk) * } // 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). +// 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 *RegionDisksInsertCall) RequestId(requestId string) *RegionDisksInsertCall { c.urlParams_.Set("requestId", requestId) return c @@ -3576,8 +3506,7 @@ func (c *RegionDisksInsertCall) Header() http.Header { func (c *RegionDisksInsertCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) - var body io.Reader = nil - body, err := googleapi.WithoutDataWrapper.JSONReader(c.disk) + body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.disk) if err != nil { return nil, err } @@ -3594,6 +3523,7 @@ func (c *RegionDisksInsertCall) doRequest(alt string) (*http.Response, error) { "project": c.project, "region": c.region, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.regionDisks.insert", "request", internallog.HTTPRequest(req, body.Bytes())) return gensupport.SendRequest(c.ctx_, c.s.client, req) } @@ -3628,9 +3558,11 @@ func (c *RegionDisksInsertCall) Do(opts ...googleapi.CallOption) (*Operation, er }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.regionDisks.insert", "response", internallog.HTTPResponse(res, b)) return ret, nil } @@ -3644,8 +3576,8 @@ type RegionDisksListCall struct { header_ http.Header } -// List: Retrieves the list of persistent disks contained within the specified -// region. +// List: Retrieves the list of persistent disks contained within +// the specified region. // // - project: Project ID for this request. // - region: Name of the region for this request. @@ -3657,78 +3589,128 @@ func (r *RegionDisksService) List(project string, region string) *RegionDisksLis } // Filter sets the optional parameter "filter": A filter expression that -// filters resources listed in the response. Most Compute resources support two -// types of filter expressions: expressions that support regular expressions -// and expressions that follow API improvement proposal AIP-160. These two -// types of filter expressions cannot be mixed in one request. If you want to -// use AIP-160, your expression must specify the field name, an operator, and -// the value that you want to use for filtering. The value must be a string, a -// number, or a boolean. The 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`. The `:*` comparison can be used to test whether a key has -// been defined. For example, to find all objects with `owner` label use: ``` -// labels.owner:* ``` 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) ``` If you want to use a regular -// expression, use the `eq` (equal) or `ne` (not equal) operator against a -// single un-parenthesized expression with or without quotes or against -// multiple parenthesized expressions. Examples: `fieldname eq unquoted -// literal` `fieldname eq 'single quoted literal'` `fieldname eq "double quoted -// literal" `(fieldname1 eq literal) (fieldname2 ne "literal")` The literal -// value is interpreted as a regular expression using Google RE2 library -// syntax. The literal value must match the entire field. For example, to -// filter for instances that do not end with name "instance", you would use -// `name ne .*instance`. You cannot combine constraints on multiple fields -// using regular expressions. +// filters resources listed in the response. Most +// Compute resources support two types of filter expressions: +// expressions that support regular expressions and expressions that follow +// API improvement proposal AIP-160. +// These two types of filter expressions cannot be mixed in one request. +// +// If you want to use AIP-160, your expression must specify the field name, +// an +// operator, and the value that you want to use for filtering. The value +// must be a string, a number, or a boolean. The 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`. +// +// The `:*` comparison can be used to test whether a key has been defined. +// For example, to find all objects with `owner` label +// use: +// ``` +// labels.owner:* +// ``` +// +// 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 onresource 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) +// ``` +// +// If you want to use a regular expression, use the `eq` (equal) or `ne` +// (not equal) operator against a single un-parenthesized expression with +// or +// without quotes or against multiple parenthesized expressions. +// Examples: +// +// `fieldname eq unquoted literal` +// `fieldname eq 'single quoted literal'` +// `fieldname eq "double quoted literal" +// `(fieldname1 eq literal) (fieldname2 ne "literal")` +// +// The literal value is interpreted as a regular expression using GoogleRE2 +// library syntax. +// The literal value must match the entire field. +// +// For example, to filter for instances that do not end with name +// "instance", +// you would use `name ne .*instance`. +// +// You cannot combine constraints on multiple fields using regular +// expressions. func (c *RegionDisksListCall) Filter(filter string) *RegionDisksListCall { 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`) +// 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 *RegionDisksListCall) MaxResults(maxResults int64) *RegionDisksListCall { 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. +// 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 *RegionDisksListCall) OrderBy(orderBy string) *RegionDisksListCall { 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. +// use. Set `pageToken` to the +// `nextPageToken` returned by a previous list request to get +// the next page of results. func (c *RegionDisksListCall) PageToken(pageToken string) *RegionDisksListCall { c.urlParams_.Set("pageToken", pageToken) return c } // ReturnPartialSuccess sets the optional parameter "returnPartialSuccess": -// Opt-in for partial success behavior which provides partial results in case -// of failure. The default value is false. For example, when partial success -// behavior is enabled, aggregatedList for a single zone scope either returns -// all resources in the zone or no resources, with an error code. +// Opt-in for partial success behavior which provides partial results in +// case +// of failure. The default value is false. +// +// For example, when partial success behavior is enabled, aggregatedList for +// a +// single zone scope either returns all resources in the zone or no +// resources, +// with an error code. func (c *RegionDisksListCall) ReturnPartialSuccess(returnPartialSuccess bool) *RegionDisksListCall { c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess)) return c @@ -3770,12 +3752,11 @@ func (c *RegionDisksListCall) doRequest(alt string) (*http.Response, error) { if c.ifNoneMatch_ != "" { reqHeaders.Set("If-None-Match", c.ifNoneMatch_) } - var body io.Reader = nil c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/disks") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("GET", urls, body) + req, err := http.NewRequest("GET", urls, nil) if err != nil { return nil, err } @@ -3784,6 +3765,7 @@ func (c *RegionDisksListCall) doRequest(alt string) (*http.Response, error) { "project": c.project, "region": c.region, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.regionDisks.list", "request", internallog.HTTPRequest(req, nil)) return gensupport.SendRequest(c.ctx_, c.s.client, req) } @@ -3818,9 +3800,11 @@ func (c *RegionDisksListCall) Do(opts ...googleapi.CallOption) (*DiskList, error }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.regionDisks.list", "response", internallog.HTTPResponse(res, b)) return ret, nil } @@ -3871,15 +3855,22 @@ func (r *RegionDisksService) RemoveResourcePolicies(project string, region strin } // 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). +// 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 *RegionDisksRemoveResourcePoliciesCall) RequestId(requestId string) *RegionDisksRemoveResourcePoliciesCall { c.urlParams_.Set("requestId", requestId) return c @@ -3910,8 +3901,7 @@ func (c *RegionDisksRemoveResourcePoliciesCall) Header() http.Header { func (c *RegionDisksRemoveResourcePoliciesCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) - var body io.Reader = nil - body, err := googleapi.WithoutDataWrapper.JSONReader(c.regiondisksremoveresourcepoliciesrequest) + body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.regiondisksremoveresourcepoliciesrequest) if err != nil { return nil, err } @@ -3929,6 +3919,7 @@ func (c *RegionDisksRemoveResourcePoliciesCall) doRequest(alt string) (*http.Res "region": c.region, "disk": c.disk, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.regionDisks.removeResourcePolicies", "request", internallog.HTTPRequest(req, body.Bytes())) return gensupport.SendRequest(c.ctx_, c.s.client, req) } @@ -3963,9 +3954,11 @@ func (c *RegionDisksRemoveResourcePoliciesCall) Do(opts ...googleapi.CallOption) }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.regionDisks.removeResourcePolicies", "response", internallog.HTTPResponse(res, b)) return ret, nil } @@ -3995,15 +3988,22 @@ func (r *RegionDisksService) Resize(project string, region string, disk string, } // 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). +// 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 *RegionDisksResizeCall) RequestId(requestId string) *RegionDisksResizeCall { c.urlParams_.Set("requestId", requestId) return c @@ -4034,8 +4034,7 @@ func (c *RegionDisksResizeCall) Header() http.Header { func (c *RegionDisksResizeCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) - var body io.Reader = nil - body, err := googleapi.WithoutDataWrapper.JSONReader(c.regiondisksresizerequest) + body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.regiondisksresizerequest) if err != nil { return nil, err } @@ -4053,6 +4052,7 @@ func (c *RegionDisksResizeCall) doRequest(alt string) (*http.Response, error) { "region": c.region, "disk": c.disk, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.regionDisks.resize", "request", internallog.HTTPRequest(req, body.Bytes())) return gensupport.SendRequest(c.ctx_, c.s.client, req) } @@ -4087,9 +4087,11 @@ func (c *RegionDisksResizeCall) Do(opts ...googleapi.CallOption) (*Operation, er }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.regionDisks.resize", "response", internallog.HTTPResponse(res, b)) return ret, nil } @@ -4104,7 +4106,8 @@ type RegionDisksSetIamPolicyCall struct { header_ http.Header } -// SetIamPolicy: Sets the access control policy on the specified resource. +// SetIamPolicy: Sets the access control policy on the specified +// resource. // Replaces any existing policy. // // - project: Project ID for this request. @@ -4144,8 +4147,7 @@ func (c *RegionDisksSetIamPolicyCall) Header() http.Header { func (c *RegionDisksSetIamPolicyCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) - var body io.Reader = nil - body, err := googleapi.WithoutDataWrapper.JSONReader(c.regionsetpolicyrequest) + body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.regionsetpolicyrequest) if err != nil { return nil, err } @@ -4163,6 +4165,7 @@ func (c *RegionDisksSetIamPolicyCall) doRequest(alt string) (*http.Response, err "region": c.region, "resource": c.resource, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.regionDisks.setIamPolicy", "request", internallog.HTTPRequest(req, body.Bytes())) return gensupport.SendRequest(c.ctx_, c.s.client, req) } @@ -4197,9 +4200,11 @@ func (c *RegionDisksSetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.regionDisks.setIamPolicy", "response", internallog.HTTPResponse(res, b)) return ret, nil } @@ -4229,15 +4234,22 @@ func (r *RegionDisksService) SetLabels(project string, region string, resource s } // 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). +// 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 *RegionDisksSetLabelsCall) RequestId(requestId string) *RegionDisksSetLabelsCall { c.urlParams_.Set("requestId", requestId) return c @@ -4268,8 +4280,7 @@ func (c *RegionDisksSetLabelsCall) Header() http.Header { func (c *RegionDisksSetLabelsCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) - var body io.Reader = nil - body, err := googleapi.WithoutDataWrapper.JSONReader(c.regionsetlabelsrequest) + body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.regionsetlabelsrequest) if err != nil { return nil, err } @@ -4287,6 +4298,7 @@ func (c *RegionDisksSetLabelsCall) doRequest(alt string) (*http.Response, error) "region": c.region, "resource": c.resource, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.regionDisks.setLabels", "request", internallog.HTTPRequest(req, body.Bytes())) return gensupport.SendRequest(c.ctx_, c.s.client, req) } @@ -4321,9 +4333,11 @@ func (c *RegionDisksSetLabelsCall) Do(opts ...googleapi.CallOption) (*Operation, }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.regionDisks.setLabels", "response", internallog.HTTPResponse(res, b)) return ret, nil } @@ -4338,8 +4352,8 @@ type RegionDisksStartAsyncReplicationCall struct { header_ http.Header } -// StartAsyncReplication: Starts asynchronous replication. Must be invoked on -// the primary disk. +// StartAsyncReplication: Starts asynchronous replication. +// Must be invoked on the primary disk. // // - disk: The name of the persistent disk. // - project: Project ID for this request. @@ -4354,15 +4368,22 @@ func (r *RegionDisksService) StartAsyncReplication(project string, region string } // 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). +// 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 *RegionDisksStartAsyncReplicationCall) RequestId(requestId string) *RegionDisksStartAsyncReplicationCall { c.urlParams_.Set("requestId", requestId) return c @@ -4393,8 +4414,7 @@ func (c *RegionDisksStartAsyncReplicationCall) Header() http.Header { func (c *RegionDisksStartAsyncReplicationCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) - var body io.Reader = nil - body, err := googleapi.WithoutDataWrapper.JSONReader(c.regiondisksstartasyncreplicationrequest) + body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.regiondisksstartasyncreplicationrequest) if err != nil { return nil, err } @@ -4412,6 +4432,7 @@ func (c *RegionDisksStartAsyncReplicationCall) doRequest(alt string) (*http.Resp "region": c.region, "disk": c.disk, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.regionDisks.startAsyncReplication", "request", internallog.HTTPRequest(req, body.Bytes())) return gensupport.SendRequest(c.ctx_, c.s.client, req) } @@ -4446,9 +4467,11 @@ func (c *RegionDisksStartAsyncReplicationCall) Do(opts ...googleapi.CallOption) }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.regionDisks.startAsyncReplication", "response", internallog.HTTPResponse(res, b)) return ret, nil } @@ -4462,8 +4485,8 @@ type RegionDisksStopAsyncReplicationCall struct { header_ http.Header } -// StopAsyncReplication: Stops asynchronous replication. Can be invoked either -// on the primary or on the secondary disk. +// StopAsyncReplication: Stops asynchronous replication. +// Can be invoked either on the primary or on the secondary disk. // // - disk: The name of the persistent disk. // - project: Project ID for this request. @@ -4477,15 +4500,22 @@ func (r *RegionDisksService) StopAsyncReplication(project string, region string, } // 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). +// 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 *RegionDisksStopAsyncReplicationCall) RequestId(requestId string) *RegionDisksStopAsyncReplicationCall { c.urlParams_.Set("requestId", requestId) return c @@ -4516,12 +4546,11 @@ func (c *RegionDisksStopAsyncReplicationCall) Header() http.Header { func (c *RegionDisksStopAsyncReplicationCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) - var body io.Reader = nil c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/disks/{disk}/stopAsyncReplication") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("POST", urls, body) + req, err := http.NewRequest("POST", urls, nil) if err != nil { return nil, err } @@ -4531,6 +4560,7 @@ func (c *RegionDisksStopAsyncReplicationCall) doRequest(alt string) (*http.Respo "region": c.region, "disk": c.disk, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.regionDisks.stopAsyncReplication", "request", internallog.HTTPRequest(req, nil)) return gensupport.SendRequest(c.ctx_, c.s.client, req) } @@ -4565,9 +4595,11 @@ func (c *RegionDisksStopAsyncReplicationCall) Do(opts ...googleapi.CallOption) ( }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.regionDisks.stopAsyncReplication", "response", internallog.HTTPResponse(res, b)) return ret, nil } @@ -4582,11 +4614,14 @@ type RegionDisksStopGroupAsyncReplicationCall struct { } // StopGroupAsyncReplication: Stops asynchronous replication for a consistency -// group of disks. Can be invoked either in the primary or secondary scope. +// group of disks. +// Can be invoked either in the primary or secondary scope. // // - project: Project ID for this request. // - region: The name of the region for this request. This must be the region -// of the primary or secondary disks in the consistency group. +// of the +// +// primary or secondary disks in the consistency group. func (r *RegionDisksService) StopGroupAsyncReplication(project string, region string, disksstopgroupasyncreplicationresource *DisksStopGroupAsyncReplicationResource) *RegionDisksStopGroupAsyncReplicationCall { c := &RegionDisksStopGroupAsyncReplicationCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project @@ -4596,15 +4631,22 @@ func (r *RegionDisksService) StopGroupAsyncReplication(project string, region st } // 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). +// 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 *RegionDisksStopGroupAsyncReplicationCall) RequestId(requestId string) *RegionDisksStopGroupAsyncReplicationCall { c.urlParams_.Set("requestId", requestId) return c @@ -4635,8 +4677,7 @@ func (c *RegionDisksStopGroupAsyncReplicationCall) Header() http.Header { func (c *RegionDisksStopGroupAsyncReplicationCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) - var body io.Reader = nil - body, err := googleapi.WithoutDataWrapper.JSONReader(c.disksstopgroupasyncreplicationresource) + body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.disksstopgroupasyncreplicationresource) if err != nil { return nil, err } @@ -4653,6 +4694,7 @@ func (c *RegionDisksStopGroupAsyncReplicationCall) doRequest(alt string) (*http. "project": c.project, "region": c.region, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.regionDisks.stopGroupAsyncReplication", "request", internallog.HTTPRequest(req, body.Bytes())) return gensupport.SendRequest(c.ctx_, c.s.client, req) } @@ -4687,9 +4729,11 @@ func (c *RegionDisksStopGroupAsyncReplicationCall) Do(opts ...googleapi.CallOpti }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.regionDisks.stopGroupAsyncReplication", "response", internallog.HTTPResponse(res, b)) return ret, nil } @@ -4744,8 +4788,7 @@ func (c *RegionDisksTestIamPermissionsCall) Header() http.Header { func (c *RegionDisksTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) - var body io.Reader = nil - body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest) + body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.testpermissionsrequest) if err != nil { return nil, err } @@ -4763,6 +4806,7 @@ func (c *RegionDisksTestIamPermissionsCall) doRequest(alt string) (*http.Respons "region": c.region, "resource": c.resource, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.regionDisks.testIamPermissions", "request", internallog.HTTPRequest(req, body.Bytes())) return gensupport.SendRequest(c.ctx_, c.s.client, req) } @@ -4798,9 +4842,11 @@ func (c *RegionDisksTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*T }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.regionDisks.testIamPermissions", "response", internallog.HTTPResponse(res, b)) return ret, nil } @@ -4816,8 +4862,8 @@ type RegionDisksUpdateCall struct { } // Update: Update the specified disk with the data included in the request. -// Update is performed only on selected fields included as part of update-mask. -// Only the following fields can be modified: user_license. +// Update is +// performed only on selected fields included as part of update-mask. // // - disk: The disk name for this request. // - project: Project ID for this request. @@ -4838,15 +4884,22 @@ func (c *RegionDisksUpdateCall) Paths(paths ...string) *RegionDisksUpdateCall { } // 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). +// 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 *RegionDisksUpdateCall) RequestId(requestId string) *RegionDisksUpdateCall { c.urlParams_.Set("requestId", requestId) return c @@ -4884,8 +4937,7 @@ func (c *RegionDisksUpdateCall) Header() http.Header { func (c *RegionDisksUpdateCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) - var body io.Reader = nil - body, err := googleapi.WithoutDataWrapper.JSONReader(c.disk2) + body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.disk2) if err != nil { return nil, err } @@ -4903,6 +4955,7 @@ func (c *RegionDisksUpdateCall) doRequest(alt string) (*http.Response, error) { "region": c.region, "disk": c.disk, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.regionDisks.update", "request", internallog.HTTPRequest(req, body.Bytes())) return gensupport.SendRequest(c.ctx_, c.s.client, req) } @@ -4937,47 +4990,58 @@ func (c *RegionDisksUpdateCall) Do(opts ...googleapi.CallOption) (*Operation, er }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.regionDisks.update", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type RegionHealthCheckServicesDeleteCall struct { - s *Service - project string - region string - healthCheckService string - urlParams_ gensupport.URLParams - ctx_ context.Context - header_ http.Header +type RegionDisksUpdateKmsKeyCall struct { + s *Service + project string + region string + disk string + regiondiskupdatekmskeyrequest *RegionDiskUpdateKmsKeyRequest + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header } -// Delete: Deletes the specified regional HealthCheckService. +// UpdateKmsKey: Rotates the customer-managed +// encryption key to the latest version for the specified persistent disk. // -// - healthCheckService: Name of the HealthCheckService to delete. The name -// must be 1-63 characters long, and comply with RFC1035. -// - project: Project ID for this request. -// - region: Name of the region scoping this request. -func (r *RegionHealthCheckServicesService) Delete(project string, region string, healthCheckService string) *RegionHealthCheckServicesDeleteCall { - c := &RegionHealthCheckServicesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)} +// - disk: Name of the Disk resource, should conform to RFC1035. +// - project: Project ID for this request. +// - region: The name of the region for this request. +func (r *RegionDisksService) UpdateKmsKey(project string, region string, disk string, regiondiskupdatekmskeyrequest *RegionDiskUpdateKmsKeyRequest) *RegionDisksUpdateKmsKeyCall { + c := &RegionDisksUpdateKmsKeyCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project c.region = region - c.healthCheckService = healthCheckService + c.disk = disk + c.regiondiskupdatekmskeyrequest = regiondiskupdatekmskeyrequest 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 *RegionHealthCheckServicesDeleteCall) RequestId(requestId string) *RegionHealthCheckServicesDeleteCall { +// 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 *RegionDisksUpdateKmsKeyCall) RequestId(requestId string) *RegionDisksUpdateKmsKeyCall { c.urlParams_.Set("requestId", requestId) return c } @@ -4985,52 +5049,56 @@ func (c *RegionHealthCheckServicesDeleteCall) RequestId(requestId string) *Regio // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *RegionHealthCheckServicesDeleteCall) Fields(s ...googleapi.Field) *RegionHealthCheckServicesDeleteCall { +func (c *RegionDisksUpdateKmsKeyCall) Fields(s ...googleapi.Field) *RegionDisksUpdateKmsKeyCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } // Context sets the context to be used in this call's Do method. -func (c *RegionHealthCheckServicesDeleteCall) Context(ctx context.Context) *RegionHealthCheckServicesDeleteCall { +func (c *RegionDisksUpdateKmsKeyCall) Context(ctx context.Context) *RegionDisksUpdateKmsKeyCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *RegionHealthCheckServicesDeleteCall) Header() http.Header { +func (c *RegionDisksUpdateKmsKeyCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *RegionHealthCheckServicesDeleteCall) doRequest(alt string) (*http.Response, error) { - reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) - var body io.Reader = nil +func (c *RegionDisksUpdateKmsKeyCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) + body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.regiondiskupdatekmskeyrequest) + if err != nil { + return nil, err + } c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/healthCheckServices/{healthCheckService}") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/disks/{disk}/updateKmsKey") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("DELETE", urls, body) + req, err := http.NewRequest("POST", urls, body) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "region": c.region, - "healthCheckService": c.healthCheckService, + "project": c.project, + "region": c.region, + "disk": c.disk, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.regionDisks.updateKmsKey", "request", internallog.HTTPRequest(req, body.Bytes())) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.regionHealthCheckServices.delete" call. +// Do executes the "compute.regionDisks.updateKmsKey" call. // 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 *RegionHealthCheckServicesDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) { +func (c *RegionDisksUpdateKmsKeyCall) Do(opts ...googleapi.CallOption) (*Operation, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -5056,41 +5124,196 @@ func (c *RegionHealthCheckServicesDeleteCall) Do(opts ...googleapi.CallOption) ( }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.regionDisks.updateKmsKey", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type RegionHealthCheckServicesGetCall struct { - s *Service - project string - region string - healthCheckService string - urlParams_ gensupport.URLParams - ifNoneMatch_ string - ctx_ context.Context - header_ http.Header +type RegionHealthAggregationPoliciesAggregatedListCall struct { + s *Service + project string + urlParams_ gensupport.URLParams + ifNoneMatch_ string + ctx_ context.Context + header_ http.Header } -// Get: Returns the specified regional HealthCheckService resource. +// AggregatedList: Retrieves the list of all HealthAggregationPolicy +// resources, +// regional and global, available to the specified project. // -// - healthCheckService: Name of the HealthCheckService to update. The name -// must be 1-63 characters long, and comply with RFC1035. -// - project: Project ID for this request. -// - region: Name of the region scoping this request. -func (r *RegionHealthCheckServicesService) Get(project string, region string, healthCheckService string) *RegionHealthCheckServicesGetCall { - c := &RegionHealthCheckServicesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)} +// To prevent failure, it is recommended that you set +// the +// `returnPartialSuccess` parameter to `true`. +// +// - project: Name of the project scoping this request. +func (r *RegionHealthAggregationPoliciesService) AggregatedList(project string) *RegionHealthAggregationPoliciesAggregatedListCall { + c := &RegionHealthAggregationPoliciesAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project - c.region = region - c.healthCheckService = healthCheckService + return c +} + +// Filter sets the optional parameter "filter": A filter expression that +// filters resources listed in the response. Most +// Compute resources support two types of filter expressions: +// expressions that support regular expressions and expressions that follow +// API improvement proposal AIP-160. +// These two types of filter expressions cannot be mixed in one request. +// +// If you want to use AIP-160, your expression must specify the field name, +// an +// operator, and the value that you want to use for filtering. The value +// must be a string, a number, or a boolean. The 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`. +// +// The `:*` comparison can be used to test whether a key has been defined. +// For example, to find all objects with `owner` label +// use: +// ``` +// labels.owner:* +// ``` +// +// 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 onresource 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) +// ``` +// +// If you want to use a regular expression, use the `eq` (equal) or `ne` +// (not equal) operator against a single un-parenthesized expression with +// or +// without quotes or against multiple parenthesized expressions. +// Examples: +// +// `fieldname eq unquoted literal` +// `fieldname eq 'single quoted literal'` +// `fieldname eq "double quoted literal" +// `(fieldname1 eq literal) (fieldname2 ne "literal")` +// +// The literal value is interpreted as a regular expression using GoogleRE2 +// library syntax. +// The literal value must match the entire field. +// +// For example, to filter for instances that do not end with name +// "instance", +// you would use `name ne .*instance`. +// +// You cannot combine constraints on multiple fields using regular +// expressions. +func (c *RegionHealthAggregationPoliciesAggregatedListCall) Filter(filter string) *RegionHealthAggregationPoliciesAggregatedListCall { + c.urlParams_.Set("filter", filter) + return c +} + +// IncludeAllScopes sets the optional parameter "includeAllScopes": Indicates +// whether every visible scope for each scope type (zone, region, +// global) should be included in the response. For new resource types +// added +// after this field, the flag has no effect as new resource types will +// always +// include every visible scope for each scope type in response. For +// resource +// types which predate this field, if this flag is omitted or false, +// only +// scopes of the scope types where the resource type is expected to be +// found +// will be included. +func (c *RegionHealthAggregationPoliciesAggregatedListCall) IncludeAllScopes(includeAllScopes bool) *RegionHealthAggregationPoliciesAggregatedListCall { + c.urlParams_.Set("includeAllScopes", fmt.Sprint(includeAllScopes)) + 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 *RegionHealthAggregationPoliciesAggregatedListCall) MaxResults(maxResults int64) *RegionHealthAggregationPoliciesAggregatedListCall { + 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 *RegionHealthAggregationPoliciesAggregatedListCall) OrderBy(orderBy string) *RegionHealthAggregationPoliciesAggregatedListCall { + 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 *RegionHealthAggregationPoliciesAggregatedListCall) PageToken(pageToken string) *RegionHealthAggregationPoliciesAggregatedListCall { + c.urlParams_.Set("pageToken", pageToken) + return c +} + +// ReturnPartialSuccess sets the optional parameter "returnPartialSuccess": +// Opt-in for partial success behavior which provides partial results in +// case +// of failure. The default value is false. +// +// For example, when partial success behavior is enabled, aggregatedList for +// a +// single zone scope either returns all resources in the zone or no +// resources, +// with an error code. +func (c *RegionHealthAggregationPoliciesAggregatedListCall) ReturnPartialSuccess(returnPartialSuccess bool) *RegionHealthAggregationPoliciesAggregatedListCall { + c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess)) + return c +} + +// ServiceProjectNumber sets the optional parameter "serviceProjectNumber": The +// Shared VPC service project id or service project number for which +// aggregated list request is invoked for subnetworks list-usable api. +func (c *RegionHealthAggregationPoliciesAggregatedListCall) ServiceProjectNumber(serviceProjectNumber int64) *RegionHealthAggregationPoliciesAggregatedListCall { + c.urlParams_.Set("serviceProjectNumber", fmt.Sprint(serviceProjectNumber)) return c } // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *RegionHealthCheckServicesGetCall) Fields(s ...googleapi.Field) *RegionHealthCheckServicesGetCall { +func (c *RegionHealthAggregationPoliciesAggregatedListCall) Fields(s ...googleapi.Field) *RegionHealthAggregationPoliciesAggregatedListCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } @@ -5098,56 +5321,54 @@ func (c *RegionHealthCheckServicesGetCall) Fields(s ...googleapi.Field) *RegionH // IfNoneMatch sets an 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. -func (c *RegionHealthCheckServicesGetCall) IfNoneMatch(entityTag string) *RegionHealthCheckServicesGetCall { +func (c *RegionHealthAggregationPoliciesAggregatedListCall) IfNoneMatch(entityTag string) *RegionHealthAggregationPoliciesAggregatedListCall { c.ifNoneMatch_ = entityTag return c } // Context sets the context to be used in this call's Do method. -func (c *RegionHealthCheckServicesGetCall) Context(ctx context.Context) *RegionHealthCheckServicesGetCall { +func (c *RegionHealthAggregationPoliciesAggregatedListCall) Context(ctx context.Context) *RegionHealthAggregationPoliciesAggregatedListCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *RegionHealthCheckServicesGetCall) Header() http.Header { +func (c *RegionHealthAggregationPoliciesAggregatedListCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *RegionHealthCheckServicesGetCall) doRequest(alt string) (*http.Response, error) { +func (c *RegionHealthAggregationPoliciesAggregatedListCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) if c.ifNoneMatch_ != "" { reqHeaders.Set("If-None-Match", c.ifNoneMatch_) } - var body io.Reader = nil c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/healthCheckServices/{healthCheckService}") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/aggregated/healthAggregationPolicies") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("GET", urls, body) + req, err := http.NewRequest("GET", urls, nil) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "region": c.region, - "healthCheckService": c.healthCheckService, + "project": c.project, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.regionHealthAggregationPolicies.aggregatedList", "request", internallog.HTTPRequest(req, nil)) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.regionHealthCheckServices.get" call. +// Do executes the "compute.regionHealthAggregationPolicies.aggregatedList" call. // Any non-2xx status code is an error. Response headers are in either -// *HealthCheckService.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 *RegionHealthCheckServicesGetCall) Do(opts ...googleapi.CallOption) (*HealthCheckService, error) { +// *HealthAggregationPolicyAggregatedList.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 *RegionHealthAggregationPoliciesAggregatedListCall) Do(opts ...googleapi.CallOption) (*HealthAggregationPolicyAggregatedList, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -5166,53 +5387,84 @@ func (c *RegionHealthCheckServicesGetCall) Do(opts ...googleapi.CallOption) (*He if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } - ret := &HealthCheckService{ + ret := &HealthAggregationPolicyAggregatedList{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.regionHealthAggregationPolicies.aggregatedList", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type RegionHealthCheckServicesInsertCall struct { - s *Service - project string - region string - healthcheckservice *HealthCheckService - urlParams_ gensupport.URLParams - ctx_ context.Context - header_ http.Header +// 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 *RegionHealthAggregationPoliciesAggregatedListCall) Pages(ctx context.Context, f func(*HealthAggregationPolicyAggregatedList) error) error { + c.ctx_ = ctx + defer c.PageToken(c.urlParams_.Get("pageToken")) + 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) + } +} + +type RegionHealthAggregationPoliciesDeleteCall struct { + s *Service + project string + region string + healthAggregationPolicy string + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header } -// Insert: Creates a regional HealthCheckService resource in the specified -// project and region using the data included in the request. +// Delete: Deletes the specified HealthAggregationPolicy in the given region. // -// - project: Project ID for this request. -// - region: Name of the region scoping this request. -func (r *RegionHealthCheckServicesService) Insert(project string, region string, healthcheckservice *HealthCheckService) *RegionHealthCheckServicesInsertCall { - c := &RegionHealthCheckServicesInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)} +// - healthAggregationPolicy: Name of the HealthAggregationPolicy resource to +// delete. +// - project: Project ID for this request. +// - region: Name of the region scoping this request. +func (r *RegionHealthAggregationPoliciesService) Delete(project string, region string, healthAggregationPolicy string) *RegionHealthAggregationPoliciesDeleteCall { + c := &RegionHealthAggregationPoliciesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project c.region = region - c.healthcheckservice = healthcheckservice + c.healthAggregationPolicy = healthAggregationPolicy 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 *RegionHealthCheckServicesInsertCall) RequestId(requestId string) *RegionHealthCheckServicesInsertCall { +// 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 *RegionHealthAggregationPoliciesDeleteCall) RequestId(requestId string) *RegionHealthAggregationPoliciesDeleteCall { c.urlParams_.Set("requestId", requestId) return c } @@ -5220,55 +5472,52 @@ func (c *RegionHealthCheckServicesInsertCall) RequestId(requestId string) *Regio // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *RegionHealthCheckServicesInsertCall) Fields(s ...googleapi.Field) *RegionHealthCheckServicesInsertCall { +func (c *RegionHealthAggregationPoliciesDeleteCall) Fields(s ...googleapi.Field) *RegionHealthAggregationPoliciesDeleteCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } // Context sets the context to be used in this call's Do method. -func (c *RegionHealthCheckServicesInsertCall) Context(ctx context.Context) *RegionHealthCheckServicesInsertCall { +func (c *RegionHealthAggregationPoliciesDeleteCall) Context(ctx context.Context) *RegionHealthAggregationPoliciesDeleteCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *RegionHealthCheckServicesInsertCall) Header() http.Header { +func (c *RegionHealthAggregationPoliciesDeleteCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *RegionHealthCheckServicesInsertCall) doRequest(alt string) (*http.Response, error) { - reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) - var body io.Reader = nil - body, err := googleapi.WithoutDataWrapper.JSONReader(c.healthcheckservice) - if err != nil { - return nil, err - } +func (c *RegionHealthAggregationPoliciesDeleteCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/healthCheckServices") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/healthAggregationPolicies/{healthAggregationPolicy}") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("POST", urls, body) + req, err := http.NewRequest("DELETE", urls, nil) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "region": c.region, + "project": c.project, + "region": c.region, + "healthAggregationPolicy": c.healthAggregationPolicy, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.regionHealthAggregationPolicies.delete", "request", internallog.HTTPRequest(req, nil)) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.regionHealthCheckServices.insert" call. +// Do executes the "compute.regionHealthAggregationPolicies.delete" call. // 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 *RegionHealthCheckServicesInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) { +func (c *RegionHealthAggregationPoliciesDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -5294,116 +5543,44 @@ func (c *RegionHealthCheckServicesInsertCall) Do(opts ...googleapi.CallOption) ( }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.regionHealthAggregationPolicies.delete", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type RegionHealthCheckServicesListCall struct { - s *Service - project string - region string - urlParams_ gensupport.URLParams - ifNoneMatch_ string - ctx_ context.Context - header_ http.Header +type RegionHealthAggregationPoliciesGetCall struct { + s *Service + project string + region string + healthAggregationPolicy string + urlParams_ gensupport.URLParams + ifNoneMatch_ string + ctx_ context.Context + header_ http.Header } -// List: Lists all the HealthCheckService resources that have been configured -// for the specified project in the given region. +// Get: Returns the specified HealthAggregationPolicy resource in the given +// region. // -// - project: Project ID for this request. -// - region: Name of the region scoping this request. -func (r *RegionHealthCheckServicesService) List(project string, region string) *RegionHealthCheckServicesListCall { - c := &RegionHealthCheckServicesListCall{s: r.s, urlParams_: make(gensupport.URLParams)} +// - healthAggregationPolicy: Name of the HealthAggregationPolicy resource to +// return. +// - project: Project ID for this request. +// - region: Name of the region scoping this request. +func (r *RegionHealthAggregationPoliciesService) Get(project string, region string, healthAggregationPolicy string) *RegionHealthAggregationPoliciesGetCall { + c := &RegionHealthAggregationPoliciesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project c.region = region - return c -} - -// Filter sets the optional parameter "filter": A filter expression that -// filters resources listed in the response. Most Compute resources support two -// types of filter expressions: expressions that support regular expressions -// and expressions that follow API improvement proposal AIP-160. These two -// types of filter expressions cannot be mixed in one request. If you want to -// use AIP-160, your expression must specify the field name, an operator, and -// the value that you want to use for filtering. The value must be a string, a -// number, or a boolean. The 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`. The `:*` comparison can be used to test whether a key has -// been defined. For example, to find all objects with `owner` label use: ``` -// labels.owner:* ``` 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) ``` If you want to use a regular -// expression, use the `eq` (equal) or `ne` (not equal) operator against a -// single un-parenthesized expression with or without quotes or against -// multiple parenthesized expressions. Examples: `fieldname eq unquoted -// literal` `fieldname eq 'single quoted literal'` `fieldname eq "double quoted -// literal" `(fieldname1 eq literal) (fieldname2 ne "literal")` The literal -// value is interpreted as a regular expression using Google RE2 library -// syntax. The literal value must match the entire field. For example, to -// filter for instances that do not end with name "instance", you would use -// `name ne .*instance`. You cannot combine constraints on multiple fields -// using regular expressions. -func (c *RegionHealthCheckServicesListCall) Filter(filter string) *RegionHealthCheckServicesListCall { - 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 *RegionHealthCheckServicesListCall) MaxResults(maxResults int64) *RegionHealthCheckServicesListCall { - 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 *RegionHealthCheckServicesListCall) OrderBy(orderBy string) *RegionHealthCheckServicesListCall { - 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 *RegionHealthCheckServicesListCall) PageToken(pageToken string) *RegionHealthCheckServicesListCall { - c.urlParams_.Set("pageToken", pageToken) - return c -} - -// ReturnPartialSuccess sets the optional parameter "returnPartialSuccess": -// Opt-in for partial success behavior which provides partial results in case -// of failure. The default value is false. For example, when partial success -// behavior is enabled, aggregatedList for a single zone scope either returns -// all resources in the zone or no resources, with an error code. -func (c *RegionHealthCheckServicesListCall) ReturnPartialSuccess(returnPartialSuccess bool) *RegionHealthCheckServicesListCall { - c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess)) + c.healthAggregationPolicy = healthAggregationPolicy return c } // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *RegionHealthCheckServicesListCall) Fields(s ...googleapi.Field) *RegionHealthCheckServicesListCall { +func (c *RegionHealthAggregationPoliciesGetCall) Fields(s ...googleapi.Field) *RegionHealthAggregationPoliciesGetCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } @@ -5411,55 +5588,56 @@ func (c *RegionHealthCheckServicesListCall) Fields(s ...googleapi.Field) *Region // IfNoneMatch sets an 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. -func (c *RegionHealthCheckServicesListCall) IfNoneMatch(entityTag string) *RegionHealthCheckServicesListCall { +func (c *RegionHealthAggregationPoliciesGetCall) IfNoneMatch(entityTag string) *RegionHealthAggregationPoliciesGetCall { c.ifNoneMatch_ = entityTag return c } // Context sets the context to be used in this call's Do method. -func (c *RegionHealthCheckServicesListCall) Context(ctx context.Context) *RegionHealthCheckServicesListCall { +func (c *RegionHealthAggregationPoliciesGetCall) Context(ctx context.Context) *RegionHealthAggregationPoliciesGetCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *RegionHealthCheckServicesListCall) Header() http.Header { +func (c *RegionHealthAggregationPoliciesGetCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *RegionHealthCheckServicesListCall) doRequest(alt string) (*http.Response, error) { +func (c *RegionHealthAggregationPoliciesGetCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) if c.ifNoneMatch_ != "" { reqHeaders.Set("If-None-Match", c.ifNoneMatch_) } - var body io.Reader = nil c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/healthCheckServices") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/healthAggregationPolicies/{healthAggregationPolicy}") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("GET", urls, body) + req, err := http.NewRequest("GET", urls, nil) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "region": c.region, + "project": c.project, + "region": c.region, + "healthAggregationPolicy": c.healthAggregationPolicy, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.regionHealthAggregationPolicies.get", "request", internallog.HTTPRequest(req, nil)) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.regionHealthCheckServices.list" call. +// Do executes the "compute.regionHealthAggregationPolicies.get" call. // Any non-2xx status code is an error. Response headers are in either -// *HealthCheckServicesList.ServerResponse.Header or (if a response was +// *HealthAggregationPolicy.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 *RegionHealthCheckServicesListCall) Do(opts ...googleapi.CallOption) (*HealthCheckServicesList, error) { +func (c *RegionHealthAggregationPoliciesGetCall) Do(opts ...googleapi.CallOption) (*HealthAggregationPolicy, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -5478,79 +5656,63 @@ func (c *RegionHealthCheckServicesListCall) Do(opts ...googleapi.CallOption) (*H if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } - ret := &HealthCheckServicesList{ + ret := &HealthAggregationPolicy{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.regionHealthAggregationPolicies.get", "response", internallog.HTTPResponse(res, b)) return ret, nil } -// 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 *RegionHealthCheckServicesListCall) Pages(ctx context.Context, f func(*HealthCheckServicesList) error) error { - c.ctx_ = ctx - defer c.PageToken(c.urlParams_.Get("pageToken")) - 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) - } -} - -type RegionHealthCheckServicesPatchCall struct { - s *Service - project string - region string - healthCheckService string - healthcheckservice *HealthCheckService - urlParams_ gensupport.URLParams - ctx_ context.Context - header_ http.Header +type RegionHealthAggregationPoliciesInsertCall struct { + s *Service + project string + region string + healthaggregationpolicy *HealthAggregationPolicy + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header } -// Patch: Updates the specified regional HealthCheckService resource with the -// data included in the request. This method supports PATCH semantics and uses -// the JSON merge patch format and processing rules. +// Insert: Create a HealthAggregationPolicy in the specified project in the +// given +// region using the parameters that are included in the request. // -// - healthCheckService: Name of the HealthCheckService to update. The name -// must be 1-63 characters long, and comply with RFC1035. -// - project: Project ID for this request. -// - region: Name of the region scoping this request. -func (r *RegionHealthCheckServicesService) Patch(project string, region string, healthCheckService string, healthcheckservice *HealthCheckService) *RegionHealthCheckServicesPatchCall { - c := &RegionHealthCheckServicesPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)} +// - project: Project ID for this request. +// - region: Name of the region scoping this request. +func (r *RegionHealthAggregationPoliciesService) Insert(project string, region string, healthaggregationpolicy *HealthAggregationPolicy) *RegionHealthAggregationPoliciesInsertCall { + c := &RegionHealthAggregationPoliciesInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project c.region = region - c.healthCheckService = healthCheckService - c.healthcheckservice = healthcheckservice + c.healthaggregationpolicy = healthaggregationpolicy 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 *RegionHealthCheckServicesPatchCall) RequestId(requestId string) *RegionHealthCheckServicesPatchCall { +// 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 *RegionHealthAggregationPoliciesInsertCall) RequestId(requestId string) *RegionHealthAggregationPoliciesInsertCall { c.urlParams_.Set("requestId", requestId) return c } @@ -5558,56 +5720,55 @@ func (c *RegionHealthCheckServicesPatchCall) RequestId(requestId string) *Region // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *RegionHealthCheckServicesPatchCall) Fields(s ...googleapi.Field) *RegionHealthCheckServicesPatchCall { +func (c *RegionHealthAggregationPoliciesInsertCall) Fields(s ...googleapi.Field) *RegionHealthAggregationPoliciesInsertCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } // Context sets the context to be used in this call's Do method. -func (c *RegionHealthCheckServicesPatchCall) Context(ctx context.Context) *RegionHealthCheckServicesPatchCall { +func (c *RegionHealthAggregationPoliciesInsertCall) Context(ctx context.Context) *RegionHealthAggregationPoliciesInsertCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *RegionHealthCheckServicesPatchCall) Header() http.Header { +func (c *RegionHealthAggregationPoliciesInsertCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *RegionHealthCheckServicesPatchCall) doRequest(alt string) (*http.Response, error) { +func (c *RegionHealthAggregationPoliciesInsertCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) - var body io.Reader = nil - body, err := googleapi.WithoutDataWrapper.JSONReader(c.healthcheckservice) + body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.healthaggregationpolicy) if err != nil { return nil, err } c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/healthCheckServices/{healthCheckService}") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/healthAggregationPolicies") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("PATCH", urls, body) + req, err := http.NewRequest("POST", urls, body) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "region": c.region, - "healthCheckService": c.healthCheckService, + "project": c.project, + "region": c.region, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.regionHealthAggregationPolicies.insert", "request", internallog.HTTPRequest(req, body.Bytes())) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.regionHealthCheckServices.patch" call. +// Do executes the "compute.regionHealthAggregationPolicies.insert" call. // 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 *RegionHealthCheckServicesPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) { +func (c *RegionHealthAggregationPoliciesInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -5633,99 +5794,223 @@ func (c *RegionHealthCheckServicesPatchCall) Do(opts ...googleapi.CallOption) (* }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.regionHealthAggregationPolicies.insert", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type RegionHealthChecksDeleteCall struct { - s *Service - project string - region string - healthCheck string - urlParams_ gensupport.URLParams - ctx_ context.Context - header_ http.Header +type RegionHealthAggregationPoliciesListCall struct { + s *Service + project string + region string + urlParams_ gensupport.URLParams + ifNoneMatch_ string + ctx_ context.Context + header_ http.Header } -// Delete: Deletes the specified HealthCheck resource. +// List: Lists the HealthAggregationPolicies for a project in the given region. // -// - healthCheck: Name of the HealthCheck resource to delete. // - project: Project ID for this request. // - region: Name of the region scoping this request. -func (r *RegionHealthChecksService) Delete(project string, region string, healthCheck string) *RegionHealthChecksDeleteCall { - c := &RegionHealthChecksDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)} +func (r *RegionHealthAggregationPoliciesService) List(project string, region string) *RegionHealthAggregationPoliciesListCall { + c := &RegionHealthAggregationPoliciesListCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project c.region = region - c.healthCheck = healthCheck 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 *RegionHealthChecksDeleteCall) RequestId(requestId string) *RegionHealthChecksDeleteCall { - c.urlParams_.Set("requestId", requestId) +// Filter sets the optional parameter "filter": A filter expression that +// filters resources listed in the response. Most +// Compute resources support two types of filter expressions: +// expressions that support regular expressions and expressions that follow +// API improvement proposal AIP-160. +// These two types of filter expressions cannot be mixed in one request. +// +// If you want to use AIP-160, your expression must specify the field name, +// an +// operator, and the value that you want to use for filtering. The value +// must be a string, a number, or a boolean. The 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`. +// +// The `:*` comparison can be used to test whether a key has been defined. +// For example, to find all objects with `owner` label +// use: +// ``` +// labels.owner:* +// ``` +// +// 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 onresource 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) +// ``` +// +// If you want to use a regular expression, use the `eq` (equal) or `ne` +// (not equal) operator against a single un-parenthesized expression with +// or +// without quotes or against multiple parenthesized expressions. +// Examples: +// +// `fieldname eq unquoted literal` +// `fieldname eq 'single quoted literal'` +// `fieldname eq "double quoted literal" +// `(fieldname1 eq literal) (fieldname2 ne "literal")` +// +// The literal value is interpreted as a regular expression using GoogleRE2 +// library syntax. +// The literal value must match the entire field. +// +// For example, to filter for instances that do not end with name +// "instance", +// you would use `name ne .*instance`. +// +// You cannot combine constraints on multiple fields using regular +// expressions. +func (c *RegionHealthAggregationPoliciesListCall) Filter(filter string) *RegionHealthAggregationPoliciesListCall { + 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 *RegionHealthAggregationPoliciesListCall) MaxResults(maxResults int64) *RegionHealthAggregationPoliciesListCall { + 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 *RegionHealthAggregationPoliciesListCall) OrderBy(orderBy string) *RegionHealthAggregationPoliciesListCall { + 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 *RegionHealthAggregationPoliciesListCall) PageToken(pageToken string) *RegionHealthAggregationPoliciesListCall { + c.urlParams_.Set("pageToken", pageToken) + return c +} + +// ReturnPartialSuccess sets the optional parameter "returnPartialSuccess": +// Opt-in for partial success behavior which provides partial results in +// case +// of failure. The default value is false. +// +// For example, when partial success behavior is enabled, aggregatedList for +// a +// single zone scope either returns all resources in the zone or no +// resources, +// with an error code. +func (c *RegionHealthAggregationPoliciesListCall) ReturnPartialSuccess(returnPartialSuccess bool) *RegionHealthAggregationPoliciesListCall { + c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess)) return c } // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *RegionHealthChecksDeleteCall) Fields(s ...googleapi.Field) *RegionHealthChecksDeleteCall { +func (c *RegionHealthAggregationPoliciesListCall) Fields(s ...googleapi.Field) *RegionHealthAggregationPoliciesListCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } +// IfNoneMatch sets an 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. +func (c *RegionHealthAggregationPoliciesListCall) IfNoneMatch(entityTag string) *RegionHealthAggregationPoliciesListCall { + c.ifNoneMatch_ = entityTag + return c +} + // Context sets the context to be used in this call's Do method. -func (c *RegionHealthChecksDeleteCall) Context(ctx context.Context) *RegionHealthChecksDeleteCall { +func (c *RegionHealthAggregationPoliciesListCall) Context(ctx context.Context) *RegionHealthAggregationPoliciesListCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *RegionHealthChecksDeleteCall) Header() http.Header { +func (c *RegionHealthAggregationPoliciesListCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *RegionHealthChecksDeleteCall) doRequest(alt string) (*http.Response, error) { +func (c *RegionHealthAggregationPoliciesListCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) - var body io.Reader = nil + if c.ifNoneMatch_ != "" { + reqHeaders.Set("If-None-Match", c.ifNoneMatch_) + } c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/healthChecks/{healthCheck}") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/healthAggregationPolicies") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("DELETE", urls, body) + req, err := http.NewRequest("GET", urls, nil) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "region": c.region, - "healthCheck": c.healthCheck, + "project": c.project, + "region": c.region, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.regionHealthAggregationPolicies.list", "request", internallog.HTTPRequest(req, nil)) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.regionHealthChecks.delete" call. +// Do executes the "compute.regionHealthAggregationPolicies.list" call. // 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 *RegionHealthChecksDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) { +// *HealthAggregationPolicyList.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 *RegionHealthAggregationPoliciesListCall) Do(opts ...googleapi.CallOption) (*HealthAggregationPolicyList, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -5744,103 +6029,149 @@ func (c *RegionHealthChecksDeleteCall) Do(opts ...googleapi.CallOption) (*Operat if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } - ret := &Operation{ + ret := &HealthAggregationPolicyList{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.regionHealthAggregationPolicies.list", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type RegionHealthChecksGetCall struct { - s *Service - project string - region string - healthCheck string - urlParams_ gensupport.URLParams - ifNoneMatch_ string - ctx_ context.Context - header_ http.Header +// 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 *RegionHealthAggregationPoliciesListCall) Pages(ctx context.Context, f func(*HealthAggregationPolicyList) error) error { + c.ctx_ = ctx + defer c.PageToken(c.urlParams_.Get("pageToken")) + 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) + } } -// Get: Returns the specified HealthCheck resource. +type RegionHealthAggregationPoliciesPatchCall struct { + s *Service + project string + region string + healthAggregationPolicy string + healthaggregationpolicy *HealthAggregationPolicy + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header +} + +// Patch: Updates the specified regional HealthAggregationPolicy +// resource with the data included in the request. This method +// supportsPATCH +// semantics and uses theJSON merge +// patch format and processing rules. // -// - healthCheck: Name of the HealthCheck resource to return. +// - healthAggregationPolicy: Name of the HealthAggregationPolicy to update. +// The name +// +// must be 1-63 characters long, and comply with RFC1035. // - project: Project ID for this request. // - region: Name of the region scoping this request. -func (r *RegionHealthChecksService) Get(project string, region string, healthCheck string) *RegionHealthChecksGetCall { - c := &RegionHealthChecksGetCall{s: r.s, urlParams_: make(gensupport.URLParams)} +func (r *RegionHealthAggregationPoliciesService) Patch(project string, region string, healthAggregationPolicy string, healthaggregationpolicy *HealthAggregationPolicy) *RegionHealthAggregationPoliciesPatchCall { + c := &RegionHealthAggregationPoliciesPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project c.region = region - c.healthCheck = healthCheck + c.healthAggregationPolicy = healthAggregationPolicy + c.healthaggregationpolicy = healthaggregationpolicy + 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 *RegionHealthAggregationPoliciesPatchCall) RequestId(requestId string) *RegionHealthAggregationPoliciesPatchCall { + 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 // details. -func (c *RegionHealthChecksGetCall) Fields(s ...googleapi.Field) *RegionHealthChecksGetCall { +func (c *RegionHealthAggregationPoliciesPatchCall) Fields(s ...googleapi.Field) *RegionHealthAggregationPoliciesPatchCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } -// IfNoneMatch sets an 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. -func (c *RegionHealthChecksGetCall) IfNoneMatch(entityTag string) *RegionHealthChecksGetCall { - c.ifNoneMatch_ = entityTag - return c -} - // Context sets the context to be used in this call's Do method. -func (c *RegionHealthChecksGetCall) Context(ctx context.Context) *RegionHealthChecksGetCall { +func (c *RegionHealthAggregationPoliciesPatchCall) Context(ctx context.Context) *RegionHealthAggregationPoliciesPatchCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *RegionHealthChecksGetCall) Header() http.Header { +func (c *RegionHealthAggregationPoliciesPatchCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *RegionHealthChecksGetCall) doRequest(alt string) (*http.Response, error) { - reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) - if c.ifNoneMatch_ != "" { - reqHeaders.Set("If-None-Match", c.ifNoneMatch_) +func (c *RegionHealthAggregationPoliciesPatchCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) + body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.healthaggregationpolicy) + if err != nil { + return nil, err } - var body io.Reader = nil c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/healthChecks/{healthCheck}") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/healthAggregationPolicies/{healthAggregationPolicy}") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("GET", urls, body) + req, err := http.NewRequest("PATCH", urls, body) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "region": c.region, - "healthCheck": c.healthCheck, + "project": c.project, + "region": c.region, + "healthAggregationPolicy": c.healthAggregationPolicy, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.regionHealthAggregationPolicies.patch", "request", internallog.HTTPRequest(req, body.Bytes())) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.regionHealthChecks.get" call. +// Do executes the "compute.regionHealthAggregationPolicies.patch" call. // Any non-2xx status code is an error. Response headers are in either -// *HealthCheck.ServerResponse.Header or (if a response was returned at all) in +// *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 *RegionHealthChecksGetCall) Do(opts ...googleapi.CallOption) (*HealthCheck, error) { +func (c *RegionHealthAggregationPoliciesPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -5859,90 +6190,79 @@ func (c *RegionHealthChecksGetCall) Do(opts ...googleapi.CallOption) (*HealthChe if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } - ret := &HealthCheck{ + ret := &Operation{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.regionHealthAggregationPolicies.patch", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type RegionHealthChecksInsertCall struct { - s *Service - project string - region string - healthcheck *HealthCheck - urlParams_ gensupport.URLParams - ctx_ context.Context - header_ http.Header +type RegionHealthAggregationPoliciesTestIamPermissionsCall struct { + s *Service + project string + region string + resource string + testpermissionsrequest *TestPermissionsRequest + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header } -// Insert: Creates a HealthCheck resource in the specified project using the -// data included in the request. +// TestIamPermissions: Returns permissions that a caller has on the specified +// resource. // // - project: Project ID for this request. -// - region: Name of the region scoping this request. -func (r *RegionHealthChecksService) Insert(project string, region string, healthcheck *HealthCheck) *RegionHealthChecksInsertCall { - c := &RegionHealthChecksInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)} +// - region: The name of the region for this request. +// - resource: Name or id of the resource for this request. +func (r *RegionHealthAggregationPoliciesService) TestIamPermissions(project string, region string, resource string, testpermissionsrequest *TestPermissionsRequest) *RegionHealthAggregationPoliciesTestIamPermissionsCall { + c := &RegionHealthAggregationPoliciesTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project c.region = region - c.healthcheck = healthcheck - 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 *RegionHealthChecksInsertCall) RequestId(requestId string) *RegionHealthChecksInsertCall { - c.urlParams_.Set("requestId", requestId) + c.resource = resource + c.testpermissionsrequest = testpermissionsrequest return c } // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *RegionHealthChecksInsertCall) Fields(s ...googleapi.Field) *RegionHealthChecksInsertCall { +func (c *RegionHealthAggregationPoliciesTestIamPermissionsCall) Fields(s ...googleapi.Field) *RegionHealthAggregationPoliciesTestIamPermissionsCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } // Context sets the context to be used in this call's Do method. -func (c *RegionHealthChecksInsertCall) Context(ctx context.Context) *RegionHealthChecksInsertCall { +func (c *RegionHealthAggregationPoliciesTestIamPermissionsCall) Context(ctx context.Context) *RegionHealthAggregationPoliciesTestIamPermissionsCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *RegionHealthChecksInsertCall) Header() http.Header { +func (c *RegionHealthAggregationPoliciesTestIamPermissionsCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *RegionHealthChecksInsertCall) doRequest(alt string) (*http.Response, error) { +func (c *RegionHealthAggregationPoliciesTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) - var body io.Reader = nil - body, err := googleapi.WithoutDataWrapper.JSONReader(c.healthcheck) + body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.testpermissionsrequest) if err != nil { return nil, err } c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/healthChecks") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/healthAggregationPolicies/{resource}/testIamPermissions") urls += "?" + c.urlParams_.Encode() req, err := http.NewRequest("POST", urls, body) if err != nil { @@ -5950,18 +6270,21 @@ func (c *RegionHealthChecksInsertCall) doRequest(alt string) (*http.Response, er } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "region": c.region, + "project": c.project, + "region": c.region, + "resource": c.resource, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.regionHealthAggregationPolicies.testIamPermissions", "request", internallog.HTTPRequest(req, body.Bytes())) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.regionHealthChecks.insert" call. +// Do executes the "compute.regionHealthAggregationPolicies.testIamPermissions" call. // 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 *RegionHealthChecksInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) { +// *TestPermissionsResponse.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 *RegionHealthAggregationPoliciesTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -5980,123 +6303,203 @@ func (c *RegionHealthChecksInsertCall) Do(opts ...googleapi.CallOption) (*Operat if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } - ret := &Operation{ + ret := &TestPermissionsResponse{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.regionHealthAggregationPolicies.testIamPermissions", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type RegionHealthChecksListCall struct { +type RegionHealthCheckServicesAggregatedListCall struct { s *Service project string - region string urlParams_ gensupport.URLParams ifNoneMatch_ string ctx_ context.Context header_ http.Header } -// List: Retrieves the list of HealthCheck resources available to the specified -// project. +// AggregatedList: Retrieves the list of all HealthCheckService +// resources, +// regional and global, available to the specified project. // -// - project: Project ID for this request. -// - region: Name of the region scoping this request. -func (r *RegionHealthChecksService) List(project string, region string) *RegionHealthChecksListCall { - c := &RegionHealthChecksListCall{s: r.s, urlParams_: make(gensupport.URLParams)} +// To prevent failure, it is recommended that you set +// the +// `returnPartialSuccess` parameter to `true`. +// +// - project: Name of the project scoping this request. +func (r *RegionHealthCheckServicesService) AggregatedList(project string) *RegionHealthCheckServicesAggregatedListCall { + c := &RegionHealthCheckServicesAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project - c.region = region return c } // Filter sets the optional parameter "filter": A filter expression that -// filters resources listed in the response. Most Compute resources support two -// types of filter expressions: expressions that support regular expressions -// and expressions that follow API improvement proposal AIP-160. These two -// types of filter expressions cannot be mixed in one request. If you want to -// use AIP-160, your expression must specify the field name, an operator, and -// the value that you want to use for filtering. The value must be a string, a -// number, or a boolean. The 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`. The `:*` comparison can be used to test whether a key has -// been defined. For example, to find all objects with `owner` label use: ``` -// labels.owner:* ``` 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) ``` If you want to use a regular -// expression, use the `eq` (equal) or `ne` (not equal) operator against a -// single un-parenthesized expression with or without quotes or against -// multiple parenthesized expressions. Examples: `fieldname eq unquoted -// literal` `fieldname eq 'single quoted literal'` `fieldname eq "double quoted -// literal" `(fieldname1 eq literal) (fieldname2 ne "literal")` The literal -// value is interpreted as a regular expression using Google RE2 library -// syntax. The literal value must match the entire field. For example, to -// filter for instances that do not end with name "instance", you would use -// `name ne .*instance`. You cannot combine constraints on multiple fields -// using regular expressions. -func (c *RegionHealthChecksListCall) Filter(filter string) *RegionHealthChecksListCall { +// filters resources listed in the response. Most +// Compute resources support two types of filter expressions: +// expressions that support regular expressions and expressions that follow +// API improvement proposal AIP-160. +// These two types of filter expressions cannot be mixed in one request. +// +// If you want to use AIP-160, your expression must specify the field name, +// an +// operator, and the value that you want to use for filtering. The value +// must be a string, a number, or a boolean. The 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`. +// +// The `:*` comparison can be used to test whether a key has been defined. +// For example, to find all objects with `owner` label +// use: +// ``` +// labels.owner:* +// ``` +// +// 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 onresource 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) +// ``` +// +// If you want to use a regular expression, use the `eq` (equal) or `ne` +// (not equal) operator against a single un-parenthesized expression with +// or +// without quotes or against multiple parenthesized expressions. +// Examples: +// +// `fieldname eq unquoted literal` +// `fieldname eq 'single quoted literal'` +// `fieldname eq "double quoted literal" +// `(fieldname1 eq literal) (fieldname2 ne "literal")` +// +// The literal value is interpreted as a regular expression using GoogleRE2 +// library syntax. +// The literal value must match the entire field. +// +// For example, to filter for instances that do not end with name +// "instance", +// you would use `name ne .*instance`. +// +// You cannot combine constraints on multiple fields using regular +// expressions. +func (c *RegionHealthCheckServicesAggregatedListCall) Filter(filter string) *RegionHealthCheckServicesAggregatedListCall { c.urlParams_.Set("filter", filter) return c } +// IncludeAllScopes sets the optional parameter "includeAllScopes": Indicates +// whether every visible scope for each scope type (zone, region, +// global) should be included in the response. For new resource types +// added +// after this field, the flag has no effect as new resource types will +// always +// include every visible scope for each scope type in response. For +// resource +// types which predate this field, if this flag is omitted or false, +// only +// scopes of the scope types where the resource type is expected to be +// found +// will be included. +func (c *RegionHealthCheckServicesAggregatedListCall) IncludeAllScopes(includeAllScopes bool) *RegionHealthCheckServicesAggregatedListCall { + c.urlParams_.Set("includeAllScopes", fmt.Sprint(includeAllScopes)) + 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 *RegionHealthChecksListCall) MaxResults(maxResults int64) *RegionHealthChecksListCall { +// 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 *RegionHealthCheckServicesAggregatedListCall) MaxResults(maxResults int64) *RegionHealthCheckServicesAggregatedListCall { 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 *RegionHealthChecksListCall) OrderBy(orderBy string) *RegionHealthChecksListCall { +// 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 *RegionHealthCheckServicesAggregatedListCall) OrderBy(orderBy string) *RegionHealthCheckServicesAggregatedListCall { 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 *RegionHealthChecksListCall) PageToken(pageToken string) *RegionHealthChecksListCall { +// use. Set `pageToken` to the +// `nextPageToken` returned by a previous list request to get +// the next page of results. +func (c *RegionHealthCheckServicesAggregatedListCall) PageToken(pageToken string) *RegionHealthCheckServicesAggregatedListCall { c.urlParams_.Set("pageToken", pageToken) return c } // ReturnPartialSuccess sets the optional parameter "returnPartialSuccess": -// Opt-in for partial success behavior which provides partial results in case -// of failure. The default value is false. For example, when partial success -// behavior is enabled, aggregatedList for a single zone scope either returns -// all resources in the zone or no resources, with an error code. -func (c *RegionHealthChecksListCall) ReturnPartialSuccess(returnPartialSuccess bool) *RegionHealthChecksListCall { +// Opt-in for partial success behavior which provides partial results in +// case +// of failure. The default value is false. +// +// For example, when partial success behavior is enabled, aggregatedList for +// a +// single zone scope either returns all resources in the zone or no +// resources, +// with an error code. +func (c *RegionHealthCheckServicesAggregatedListCall) ReturnPartialSuccess(returnPartialSuccess bool) *RegionHealthCheckServicesAggregatedListCall { c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess)) return c } +// ServiceProjectNumber sets the optional parameter "serviceProjectNumber": The +// Shared VPC service project id or service project number for which +// aggregated list request is invoked for subnetworks list-usable api. +func (c *RegionHealthCheckServicesAggregatedListCall) ServiceProjectNumber(serviceProjectNumber int64) *RegionHealthCheckServicesAggregatedListCall { + c.urlParams_.Set("serviceProjectNumber", fmt.Sprint(serviceProjectNumber)) + return c +} + // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *RegionHealthChecksListCall) Fields(s ...googleapi.Field) *RegionHealthChecksListCall { +func (c *RegionHealthCheckServicesAggregatedListCall) Fields(s ...googleapi.Field) *RegionHealthCheckServicesAggregatedListCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } @@ -6104,55 +6507,54 @@ func (c *RegionHealthChecksListCall) Fields(s ...googleapi.Field) *RegionHealthC // IfNoneMatch sets an 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. -func (c *RegionHealthChecksListCall) IfNoneMatch(entityTag string) *RegionHealthChecksListCall { +func (c *RegionHealthCheckServicesAggregatedListCall) IfNoneMatch(entityTag string) *RegionHealthCheckServicesAggregatedListCall { c.ifNoneMatch_ = entityTag return c } // Context sets the context to be used in this call's Do method. -func (c *RegionHealthChecksListCall) Context(ctx context.Context) *RegionHealthChecksListCall { +func (c *RegionHealthCheckServicesAggregatedListCall) Context(ctx context.Context) *RegionHealthCheckServicesAggregatedListCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *RegionHealthChecksListCall) Header() http.Header { +func (c *RegionHealthCheckServicesAggregatedListCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *RegionHealthChecksListCall) doRequest(alt string) (*http.Response, error) { +func (c *RegionHealthCheckServicesAggregatedListCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) if c.ifNoneMatch_ != "" { reqHeaders.Set("If-None-Match", c.ifNoneMatch_) } - var body io.Reader = nil c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/healthChecks") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/aggregated/healthCheckServices") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("GET", urls, body) + req, err := http.NewRequest("GET", urls, nil) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ "project": c.project, - "region": c.region, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.regionHealthCheckServices.aggregatedList", "request", internallog.HTTPRequest(req, nil)) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.regionHealthChecks.list" call. +// Do executes the "compute.regionHealthCheckServices.aggregatedList" call. // Any non-2xx status code is an error. Response headers are in either -// *HealthCheckList.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 *RegionHealthChecksListCall) Do(opts ...googleapi.CallOption) (*HealthCheckList, error) { +// *HealthCheckServiceAggregatedList.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 *RegionHealthCheckServicesAggregatedListCall) Do(opts ...googleapi.CallOption) (*HealthCheckServiceAggregatedList, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -6171,23 +6573,25 @@ func (c *RegionHealthChecksListCall) Do(opts ...googleapi.CallOption) (*HealthCh if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } - ret := &HealthCheckList{ + ret := &HealthCheckServiceAggregatedList{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.regionHealthCheckServices.aggregatedList", "response", internallog.HTTPResponse(res, b)) return ret, nil } // 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 *RegionHealthChecksListCall) Pages(ctx context.Context, f func(*HealthCheckList) error) error { +func (c *RegionHealthCheckServicesAggregatedListCall) Pages(ctx context.Context, f func(*HealthCheckServiceAggregatedList) error) error { c.ctx_ = ctx defer c.PageToken(c.urlParams_.Get("pageToken")) for { @@ -6205,44 +6609,50 @@ func (c *RegionHealthChecksListCall) Pages(ctx context.Context, f func(*HealthCh } } -type RegionHealthChecksPatchCall struct { - s *Service - project string - region string - healthCheck string - healthcheck *HealthCheck - urlParams_ gensupport.URLParams - ctx_ context.Context - header_ http.Header +type RegionHealthCheckServicesDeleteCall struct { + s *Service + project string + region string + healthCheckService string + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header } -// Patch: Updates a HealthCheck resource in the specified project using the -// data included in the request. This method supports PATCH semantics and uses -// the JSON merge patch format and processing rules. +// Delete: Deletes the specified regional HealthCheckService. // -// - healthCheck: Name of the HealthCheck resource to patch. +// - healthCheckService: Name of the HealthCheckService to delete. The +// name +// +// must be 1-63 characters long, and comply with RFC1035. // - project: Project ID for this request. // - region: Name of the region scoping this request. -func (r *RegionHealthChecksService) Patch(project string, region string, healthCheck string, healthcheck *HealthCheck) *RegionHealthChecksPatchCall { - c := &RegionHealthChecksPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)} +func (r *RegionHealthCheckServicesService) Delete(project string, region string, healthCheckService string) *RegionHealthCheckServicesDeleteCall { + c := &RegionHealthCheckServicesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project c.region = region - c.healthCheck = healthCheck - c.healthcheck = healthcheck + c.healthCheckService = healthCheckService 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 *RegionHealthChecksPatchCall) RequestId(requestId string) *RegionHealthChecksPatchCall { +// 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 *RegionHealthCheckServicesDeleteCall) RequestId(requestId string) *RegionHealthCheckServicesDeleteCall { c.urlParams_.Set("requestId", requestId) return c } @@ -6250,56 +6660,52 @@ func (c *RegionHealthChecksPatchCall) RequestId(requestId string) *RegionHealthC // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *RegionHealthChecksPatchCall) Fields(s ...googleapi.Field) *RegionHealthChecksPatchCall { +func (c *RegionHealthCheckServicesDeleteCall) Fields(s ...googleapi.Field) *RegionHealthCheckServicesDeleteCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } // Context sets the context to be used in this call's Do method. -func (c *RegionHealthChecksPatchCall) Context(ctx context.Context) *RegionHealthChecksPatchCall { +func (c *RegionHealthCheckServicesDeleteCall) Context(ctx context.Context) *RegionHealthCheckServicesDeleteCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *RegionHealthChecksPatchCall) Header() http.Header { +func (c *RegionHealthCheckServicesDeleteCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *RegionHealthChecksPatchCall) doRequest(alt string) (*http.Response, error) { - reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) - var body io.Reader = nil - body, err := googleapi.WithoutDataWrapper.JSONReader(c.healthcheck) - if err != nil { - return nil, err - } +func (c *RegionHealthCheckServicesDeleteCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/healthChecks/{healthCheck}") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/healthCheckServices/{healthCheckService}") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("PATCH", urls, body) + req, err := http.NewRequest("DELETE", urls, nil) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "region": c.region, - "healthCheck": c.healthCheck, + "project": c.project, + "region": c.region, + "healthCheckService": c.healthCheckService, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.regionHealthCheckServices.delete", "request", internallog.HTTPRequest(req, nil)) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.regionHealthChecks.patch" call. +// Do executes the "compute.regionHealthCheckServices.delete" call. // 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 *RegionHealthChecksPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) { +func (c *RegionHealthCheckServicesDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -6325,106 +6731,102 @@ func (c *RegionHealthChecksPatchCall) Do(opts ...googleapi.CallOption) (*Operati }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.regionHealthCheckServices.delete", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type RegionHealthChecksUpdateCall struct { - s *Service - project string - region string - healthCheck string - healthcheck *HealthCheck - urlParams_ gensupport.URLParams - ctx_ context.Context - header_ http.Header +type RegionHealthCheckServicesGetCall struct { + s *Service + project string + region string + healthCheckService string + urlParams_ gensupport.URLParams + ifNoneMatch_ string + ctx_ context.Context + header_ http.Header } -// Update: Updates a HealthCheck resource in the specified project using the -// data included in the request. +// Get: Returns the specified regional HealthCheckService resource. // -// - healthCheck: Name of the HealthCheck resource to update. +// - healthCheckService: Name of the HealthCheckService to update. The +// name +// +// must be 1-63 characters long, and comply with RFC1035. // - project: Project ID for this request. // - region: Name of the region scoping this request. -func (r *RegionHealthChecksService) Update(project string, region string, healthCheck string, healthcheck *HealthCheck) *RegionHealthChecksUpdateCall { - c := &RegionHealthChecksUpdateCall{s: r.s, urlParams_: make(gensupport.URLParams)} +func (r *RegionHealthCheckServicesService) Get(project string, region string, healthCheckService string) *RegionHealthCheckServicesGetCall { + c := &RegionHealthCheckServicesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project c.region = region - c.healthCheck = healthCheck - c.healthcheck = healthcheck - 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 *RegionHealthChecksUpdateCall) RequestId(requestId string) *RegionHealthChecksUpdateCall { - c.urlParams_.Set("requestId", requestId) + c.healthCheckService = healthCheckService return c } // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *RegionHealthChecksUpdateCall) Fields(s ...googleapi.Field) *RegionHealthChecksUpdateCall { +func (c *RegionHealthCheckServicesGetCall) Fields(s ...googleapi.Field) *RegionHealthCheckServicesGetCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } +// IfNoneMatch sets an 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. +func (c *RegionHealthCheckServicesGetCall) IfNoneMatch(entityTag string) *RegionHealthCheckServicesGetCall { + c.ifNoneMatch_ = entityTag + return c +} + // Context sets the context to be used in this call's Do method. -func (c *RegionHealthChecksUpdateCall) Context(ctx context.Context) *RegionHealthChecksUpdateCall { +func (c *RegionHealthCheckServicesGetCall) Context(ctx context.Context) *RegionHealthCheckServicesGetCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *RegionHealthChecksUpdateCall) Header() http.Header { +func (c *RegionHealthCheckServicesGetCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *RegionHealthChecksUpdateCall) doRequest(alt string) (*http.Response, error) { - reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) - var body io.Reader = nil - body, err := googleapi.WithoutDataWrapper.JSONReader(c.healthcheck) - if err != nil { - return nil, err +func (c *RegionHealthCheckServicesGetCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) + if c.ifNoneMatch_ != "" { + reqHeaders.Set("If-None-Match", c.ifNoneMatch_) } c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/healthChecks/{healthCheck}") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/healthCheckServices/{healthCheckService}") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("PUT", urls, body) + req, err := http.NewRequest("GET", urls, nil) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "region": c.region, - "healthCheck": c.healthCheck, + "project": c.project, + "region": c.region, + "healthCheckService": c.healthCheckService, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.regionHealthCheckServices.get", "request", internallog.HTTPRequest(req, nil)) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.regionHealthChecks.update" call. +// Do executes the "compute.regionHealthCheckServices.get" call. // 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 *RegionHealthChecksUpdateCall) Do(opts ...googleapi.CallOption) (*Operation, error) { +// *HealthCheckService.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 *RegionHealthCheckServicesGetCall) Do(opts ...googleapi.CallOption) (*HealthCheckService, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -6443,66 +6845,62 @@ func (c *RegionHealthChecksUpdateCall) Do(opts ...googleapi.CallOption) (*Operat if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } - ret := &Operation{ + ret := &HealthCheckService{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.regionHealthCheckServices.get", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type RegionInstanceGroupManagersAbandonInstancesCall struct { - s *Service - project string - region string - instanceGroupManager string - regioninstancegroupmanagersabandoninstancesrequest *RegionInstanceGroupManagersAbandonInstancesRequest - urlParams_ gensupport.URLParams - ctx_ context.Context - header_ http.Header +type RegionHealthCheckServicesInsertCall struct { + s *Service + project string + region string + healthcheckservice *HealthCheckService + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header } -// AbandonInstances: Flags the specified instances to be immediately removed -// from the managed instance group. Abandoning an instance does not delete the -// instance, but it does remove the instance from any target pools that are -// applied by the managed instance group. This method reduces the targetSize of -// the managed instance group by the number of instances that you abandon. This -// operation is marked as DONE when the action is scheduled even if the -// instances have not yet been removed from the group. You must separately -// verify the status of the abandoning action with the listmanagedinstances -// method. If the group is part of a backend service that has enabled -// connection draining, it can take up to 60 seconds after the connection -// draining duration has elapsed before the VM instance is removed or deleted. -// You can specify a maximum of 1000 instances with this method per request. +// Insert: Creates a regional HealthCheckService resource in the +// specified project and region using the data included in the request. // -// - instanceGroupManager: Name of the managed instance group. // - project: Project ID for this request. // - region: Name of the region scoping this request. -func (r *RegionInstanceGroupManagersService) AbandonInstances(project string, region string, instanceGroupManager string, regioninstancegroupmanagersabandoninstancesrequest *RegionInstanceGroupManagersAbandonInstancesRequest) *RegionInstanceGroupManagersAbandonInstancesCall { - c := &RegionInstanceGroupManagersAbandonInstancesCall{s: r.s, urlParams_: make(gensupport.URLParams)} +func (r *RegionHealthCheckServicesService) Insert(project string, region string, healthcheckservice *HealthCheckService) *RegionHealthCheckServicesInsertCall { + c := &RegionHealthCheckServicesInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project c.region = region - c.instanceGroupManager = instanceGroupManager - c.regioninstancegroupmanagersabandoninstancesrequest = regioninstancegroupmanagersabandoninstancesrequest + c.healthcheckservice = healthcheckservice 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 *RegionInstanceGroupManagersAbandonInstancesCall) RequestId(requestId string) *RegionInstanceGroupManagersAbandonInstancesCall { +// 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 *RegionHealthCheckServicesInsertCall) RequestId(requestId string) *RegionHealthCheckServicesInsertCall { c.urlParams_.Set("requestId", requestId) return c } @@ -6510,36 +6908,35 @@ func (c *RegionInstanceGroupManagersAbandonInstancesCall) RequestId(requestId st // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *RegionInstanceGroupManagersAbandonInstancesCall) Fields(s ...googleapi.Field) *RegionInstanceGroupManagersAbandonInstancesCall { +func (c *RegionHealthCheckServicesInsertCall) Fields(s ...googleapi.Field) *RegionHealthCheckServicesInsertCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } // Context sets the context to be used in this call's Do method. -func (c *RegionInstanceGroupManagersAbandonInstancesCall) Context(ctx context.Context) *RegionInstanceGroupManagersAbandonInstancesCall { +func (c *RegionHealthCheckServicesInsertCall) Context(ctx context.Context) *RegionHealthCheckServicesInsertCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *RegionInstanceGroupManagersAbandonInstancesCall) Header() http.Header { +func (c *RegionHealthCheckServicesInsertCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *RegionInstanceGroupManagersAbandonInstancesCall) doRequest(alt string) (*http.Response, error) { +func (c *RegionHealthCheckServicesInsertCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) - var body io.Reader = nil - body, err := googleapi.WithoutDataWrapper.JSONReader(c.regioninstancegroupmanagersabandoninstancesrequest) + body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.healthcheckservice) if err != nil { return nil, err } c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/abandonInstances") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/healthCheckServices") urls += "?" + c.urlParams_.Encode() req, err := http.NewRequest("POST", urls, body) if err != nil { @@ -6547,19 +6944,19 @@ func (c *RegionInstanceGroupManagersAbandonInstancesCall) doRequest(alt string) } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "region": c.region, - "instanceGroupManager": c.instanceGroupManager, + "project": c.project, + "region": c.region, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.regionHealthCheckServices.insert", "request", internallog.HTTPRequest(req, body.Bytes())) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.regionInstanceGroupManagers.abandonInstances" call. +// Do executes the "compute.regionHealthCheckServices.insert" call. // 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 *RegionInstanceGroupManagersAbandonInstancesCall) Do(opts ...googleapi.CallOption) (*Operation, error) { +func (c *RegionHealthCheckServicesInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -6585,223 +6982,224 @@ func (c *RegionInstanceGroupManagersAbandonInstancesCall) Do(opts ...googleapi.C }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.regionHealthCheckServices.insert", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type RegionInstanceGroupManagersApplyUpdatesToInstancesCall struct { - s *Service - project string - region string - instanceGroupManager string - regioninstancegroupmanagersapplyupdatesrequest *RegionInstanceGroupManagersApplyUpdatesRequest - urlParams_ gensupport.URLParams - ctx_ context.Context - header_ http.Header +type RegionHealthCheckServicesListCall struct { + s *Service + project string + region string + urlParams_ gensupport.URLParams + ifNoneMatch_ string + ctx_ context.Context + header_ http.Header } -// ApplyUpdatesToInstances: Apply updates to selected instances the managed -// instance group. +// List: Lists all the HealthCheckService resources that have been +// configured for the specified project in the given region. // -// - instanceGroupManager: The name of the managed instance group, should -// conform to RFC1035. -// - project: Project ID for this request. -// - region: Name of the region scoping this request, should conform to -// RFC1035. -func (r *RegionInstanceGroupManagersService) ApplyUpdatesToInstances(project string, region string, instanceGroupManager string, regioninstancegroupmanagersapplyupdatesrequest *RegionInstanceGroupManagersApplyUpdatesRequest) *RegionInstanceGroupManagersApplyUpdatesToInstancesCall { - c := &RegionInstanceGroupManagersApplyUpdatesToInstancesCall{s: r.s, urlParams_: make(gensupport.URLParams)} +// - project: Project ID for this request. +// - region: Name of the region scoping this request. +func (r *RegionHealthCheckServicesService) List(project string, region string) *RegionHealthCheckServicesListCall { + c := &RegionHealthCheckServicesListCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project c.region = region - c.instanceGroupManager = instanceGroupManager - c.regioninstancegroupmanagersapplyupdatesrequest = regioninstancegroupmanagersapplyupdatesrequest - return c -} - -// Fields allows partial responses to be retrieved. See -// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more -// details. -func (c *RegionInstanceGroupManagersApplyUpdatesToInstancesCall) Fields(s ...googleapi.Field) *RegionInstanceGroupManagersApplyUpdatesToInstancesCall { - c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } -// Context sets the context to be used in this call's Do method. -func (c *RegionInstanceGroupManagersApplyUpdatesToInstancesCall) Context(ctx context.Context) *RegionInstanceGroupManagersApplyUpdatesToInstancesCall { - c.ctx_ = ctx +// Filter sets the optional parameter "filter": A filter expression that +// filters resources listed in the response. Most +// Compute resources support two types of filter expressions: +// expressions that support regular expressions and expressions that follow +// API improvement proposal AIP-160. +// These two types of filter expressions cannot be mixed in one request. +// +// If you want to use AIP-160, your expression must specify the field name, +// an +// operator, and the value that you want to use for filtering. The value +// must be a string, a number, or a boolean. The 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`. +// +// The `:*` comparison can be used to test whether a key has been defined. +// For example, to find all objects with `owner` label +// use: +// ``` +// labels.owner:* +// ``` +// +// 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 onresource 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) +// ``` +// +// If you want to use a regular expression, use the `eq` (equal) or `ne` +// (not equal) operator against a single un-parenthesized expression with +// or +// without quotes or against multiple parenthesized expressions. +// Examples: +// +// `fieldname eq unquoted literal` +// `fieldname eq 'single quoted literal'` +// `fieldname eq "double quoted literal" +// `(fieldname1 eq literal) (fieldname2 ne "literal")` +// +// The literal value is interpreted as a regular expression using GoogleRE2 +// library syntax. +// The literal value must match the entire field. +// +// For example, to filter for instances that do not end with name +// "instance", +// you would use `name ne .*instance`. +// +// You cannot combine constraints on multiple fields using regular +// expressions. +func (c *RegionHealthCheckServicesListCall) Filter(filter string) *RegionHealthCheckServicesListCall { + c.urlParams_.Set("filter", filter) return c } -// Header returns a http.Header that can be modified by the caller to add -// headers to the request. -func (c *RegionInstanceGroupManagersApplyUpdatesToInstancesCall) Header() http.Header { - if c.header_ == nil { - c.header_ = make(http.Header) - } - return c.header_ -} - -func (c *RegionInstanceGroupManagersApplyUpdatesToInstancesCall) doRequest(alt string) (*http.Response, error) { - reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) - var body io.Reader = nil - body, err := googleapi.WithoutDataWrapper.JSONReader(c.regioninstancegroupmanagersapplyupdatesrequest) - if err != nil { - return nil, err - } - c.urlParams_.Set("alt", alt) - c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/applyUpdatesToInstances") - urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("POST", urls, body) - if err != nil { - return nil, err - } - req.Header = reqHeaders - googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "region": c.region, - "instanceGroupManager": c.instanceGroupManager, - }) - return gensupport.SendRequest(c.ctx_, c.s.client, req) -} - -// Do executes the "compute.regionInstanceGroupManagers.applyUpdatesToInstances" call. -// 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 *RegionInstanceGroupManagersApplyUpdatesToInstancesCall) 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, gensupport.WrapError(&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, gensupport.WrapError(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 +// 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 *RegionHealthCheckServicesListCall) MaxResults(maxResults int64) *RegionHealthCheckServicesListCall { + c.urlParams_.Set("maxResults", fmt.Sprint(maxResults)) + return c } -type RegionInstanceGroupManagersCreateInstancesCall struct { - s *Service - project string - region string - instanceGroupManager string - regioninstancegroupmanagerscreateinstancesrequest *RegionInstanceGroupManagersCreateInstancesRequest - urlParams_ gensupport.URLParams - ctx_ context.Context - header_ http.Header +// 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 *RegionHealthCheckServicesListCall) OrderBy(orderBy string) *RegionHealthCheckServicesListCall { + c.urlParams_.Set("orderBy", orderBy) + return c } -// CreateInstances: Creates instances with per-instance configurations in this -// regional managed instance group. Instances are created using the current -// instance template. The create instances operation is marked DONE if the -// createInstances request is successful. The underlying actions take -// additional time. You must separately verify the status of the creating or -// actions with the listmanagedinstances method. -// -// - instanceGroupManager: The name of the managed instance group. It should -// conform to RFC1035. -// - project: Project ID for this request. -// - region: The name of the region where the managed instance group is -// located. It should conform to RFC1035. -func (r *RegionInstanceGroupManagersService) CreateInstances(project string, region string, instanceGroupManager string, regioninstancegroupmanagerscreateinstancesrequest *RegionInstanceGroupManagersCreateInstancesRequest) *RegionInstanceGroupManagersCreateInstancesCall { - c := &RegionInstanceGroupManagersCreateInstancesCall{s: r.s, urlParams_: make(gensupport.URLParams)} - c.project = project - c.region = region - c.instanceGroupManager = instanceGroupManager - c.regioninstancegroupmanagerscreateinstancesrequest = regioninstancegroupmanagerscreateinstancesrequest +// 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 *RegionHealthCheckServicesListCall) PageToken(pageToken string) *RegionHealthCheckServicesListCall { + c.urlParams_.Set("pageToken", pageToken) 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. The -// request ID must be a valid UUID with the exception that zero UUID is not -// supported ( 00000000-0000-0000-0000-000000000000). -func (c *RegionInstanceGroupManagersCreateInstancesCall) RequestId(requestId string) *RegionInstanceGroupManagersCreateInstancesCall { - c.urlParams_.Set("requestId", requestId) +// ReturnPartialSuccess sets the optional parameter "returnPartialSuccess": +// Opt-in for partial success behavior which provides partial results in +// case +// of failure. The default value is false. +// +// For example, when partial success behavior is enabled, aggregatedList for +// a +// single zone scope either returns all resources in the zone or no +// resources, +// with an error code. +func (c *RegionHealthCheckServicesListCall) ReturnPartialSuccess(returnPartialSuccess bool) *RegionHealthCheckServicesListCall { + c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess)) return c } // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *RegionInstanceGroupManagersCreateInstancesCall) Fields(s ...googleapi.Field) *RegionInstanceGroupManagersCreateInstancesCall { +func (c *RegionHealthCheckServicesListCall) Fields(s ...googleapi.Field) *RegionHealthCheckServicesListCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } +// IfNoneMatch sets an 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. +func (c *RegionHealthCheckServicesListCall) IfNoneMatch(entityTag string) *RegionHealthCheckServicesListCall { + c.ifNoneMatch_ = entityTag + return c +} + // Context sets the context to be used in this call's Do method. -func (c *RegionInstanceGroupManagersCreateInstancesCall) Context(ctx context.Context) *RegionInstanceGroupManagersCreateInstancesCall { +func (c *RegionHealthCheckServicesListCall) Context(ctx context.Context) *RegionHealthCheckServicesListCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *RegionInstanceGroupManagersCreateInstancesCall) Header() http.Header { +func (c *RegionHealthCheckServicesListCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *RegionInstanceGroupManagersCreateInstancesCall) doRequest(alt string) (*http.Response, error) { - reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) - var body io.Reader = nil - body, err := googleapi.WithoutDataWrapper.JSONReader(c.regioninstancegroupmanagerscreateinstancesrequest) - if err != nil { - return nil, err +func (c *RegionHealthCheckServicesListCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) + if c.ifNoneMatch_ != "" { + reqHeaders.Set("If-None-Match", c.ifNoneMatch_) } c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/createInstances") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/healthCheckServices") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("POST", urls, body) + req, err := http.NewRequest("GET", urls, nil) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "region": c.region, - "instanceGroupManager": c.instanceGroupManager, + "project": c.project, + "region": c.region, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.regionHealthCheckServices.list", "request", internallog.HTTPRequest(req, nil)) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.regionInstanceGroupManagers.createInstances" call. +// Do executes the "compute.regionHealthCheckServices.list" call. // 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 *RegionInstanceGroupManagersCreateInstancesCall) Do(opts ...googleapi.CallOption) (*Operation, error) { +// *HealthCheckServicesList.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 *RegionHealthCheckServicesListCall) Do(opts ...googleapi.CallOption) (*HealthCheckServicesList, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -6820,54 +7218,91 @@ func (c *RegionInstanceGroupManagersCreateInstancesCall) Do(opts ...googleapi.Ca if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } - ret := &Operation{ + ret := &HealthCheckServicesList{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.regionHealthCheckServices.list", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type RegionInstanceGroupManagersDeleteCall struct { - s *Service - project string - region string - instanceGroupManager string - urlParams_ gensupport.URLParams - ctx_ context.Context - header_ http.Header +// 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 *RegionHealthCheckServicesListCall) Pages(ctx context.Context, f func(*HealthCheckServicesList) error) error { + c.ctx_ = ctx + defer c.PageToken(c.urlParams_.Get("pageToken")) + 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) + } } -// Delete: Deletes the specified managed instance group and all of the -// instances in that group. +type RegionHealthCheckServicesPatchCall struct { + s *Service + project string + region string + healthCheckService string + healthcheckservice *HealthCheckService + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header +} + +// Patch: Updates the specified regional HealthCheckService resource +// with the data included in the request. This method supportsPATCH +// semantics and uses theJSON merge +// patch format and processing rules. // -// - instanceGroupManager: Name of the managed instance group to delete. +// - healthCheckService: Name of the HealthCheckService to update. The +// name +// +// must be 1-63 characters long, and comply with RFC1035. // - project: Project ID for this request. // - region: Name of the region scoping this request. -func (r *RegionInstanceGroupManagersService) Delete(project string, region string, instanceGroupManager string) *RegionInstanceGroupManagersDeleteCall { - c := &RegionInstanceGroupManagersDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)} +func (r *RegionHealthCheckServicesService) Patch(project string, region string, healthCheckService string, healthcheckservice *HealthCheckService) *RegionHealthCheckServicesPatchCall { + c := &RegionHealthCheckServicesPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project c.region = region - c.instanceGroupManager = instanceGroupManager + c.healthCheckService = healthCheckService + c.healthcheckservice = healthcheckservice 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 *RegionInstanceGroupManagersDeleteCall) RequestId(requestId string) *RegionInstanceGroupManagersDeleteCall { +// 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 *RegionHealthCheckServicesPatchCall) RequestId(requestId string) *RegionHealthCheckServicesPatchCall { c.urlParams_.Set("requestId", requestId) return c } @@ -6875,52 +7310,56 @@ func (c *RegionInstanceGroupManagersDeleteCall) RequestId(requestId string) *Reg // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *RegionInstanceGroupManagersDeleteCall) Fields(s ...googleapi.Field) *RegionInstanceGroupManagersDeleteCall { +func (c *RegionHealthCheckServicesPatchCall) Fields(s ...googleapi.Field) *RegionHealthCheckServicesPatchCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } // Context sets the context to be used in this call's Do method. -func (c *RegionInstanceGroupManagersDeleteCall) Context(ctx context.Context) *RegionInstanceGroupManagersDeleteCall { +func (c *RegionHealthCheckServicesPatchCall) Context(ctx context.Context) *RegionHealthCheckServicesPatchCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *RegionInstanceGroupManagersDeleteCall) Header() http.Header { +func (c *RegionHealthCheckServicesPatchCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *RegionInstanceGroupManagersDeleteCall) doRequest(alt string) (*http.Response, error) { - reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) - var body io.Reader = nil +func (c *RegionHealthCheckServicesPatchCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) + body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.healthcheckservice) + if err != nil { + return nil, err + } c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/healthCheckServices/{healthCheckService}") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("DELETE", urls, body) + req, err := http.NewRequest("PATCH", urls, body) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "region": c.region, - "instanceGroupManager": c.instanceGroupManager, + "project": c.project, + "region": c.region, + "healthCheckService": c.healthCheckService, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.regionHealthCheckServices.patch", "request", internallog.HTTPRequest(req, body.Bytes())) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.regionInstanceGroupManagers.delete" call. +// Do executes the "compute.regionHealthCheckServices.patch" call. // 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 *RegionInstanceGroupManagersDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) { +func (c *RegionHealthCheckServicesPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -6946,95 +7385,72 @@ func (c *RegionInstanceGroupManagersDeleteCall) Do(opts ...googleapi.CallOption) }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.regionHealthCheckServices.patch", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type RegionInstanceGroupManagersDeleteInstancesCall struct { - s *Service - project string - region string - instanceGroupManager string - regioninstancegroupmanagersdeleteinstancesrequest *RegionInstanceGroupManagersDeleteInstancesRequest - urlParams_ gensupport.URLParams - ctx_ context.Context - header_ http.Header +type RegionHealthCheckServicesTestIamPermissionsCall struct { + s *Service + project string + region string + resource string + testpermissionsrequest *TestPermissionsRequest + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header } -// DeleteInstances: Flags the specified instances in the managed instance group -// to be immediately deleted. The instances are also removed from any target -// pools of which they were a member. This method reduces the targetSize of the -// managed instance group by the number of instances that you delete. The -// deleteInstances operation is marked DONE if the deleteInstances request is -// successful. The underlying actions take additional time. You must separately -// verify the status of the deleting action with the listmanagedinstances -// method. If the group is part of a backend service that has enabled -// connection draining, it can take up to 60 seconds after the connection -// draining duration has elapsed before the VM instance is removed or deleted. -// You can specify a maximum of 1000 instances with this method per request. +// TestIamPermissions: Returns permissions that a caller has on the specified +// resource. // -// - instanceGroupManager: Name of the managed instance group. // - project: Project ID for this request. -// - region: Name of the region scoping this request. -func (r *RegionInstanceGroupManagersService) DeleteInstances(project string, region string, instanceGroupManager string, regioninstancegroupmanagersdeleteinstancesrequest *RegionInstanceGroupManagersDeleteInstancesRequest) *RegionInstanceGroupManagersDeleteInstancesCall { - c := &RegionInstanceGroupManagersDeleteInstancesCall{s: r.s, urlParams_: make(gensupport.URLParams)} +// - region: The name of the region for this request. +// - resource: Name or id of the resource for this request. +func (r *RegionHealthCheckServicesService) TestIamPermissions(project string, region string, resource string, testpermissionsrequest *TestPermissionsRequest) *RegionHealthCheckServicesTestIamPermissionsCall { + c := &RegionHealthCheckServicesTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project c.region = region - c.instanceGroupManager = instanceGroupManager - c.regioninstancegroupmanagersdeleteinstancesrequest = regioninstancegroupmanagersdeleteinstancesrequest - 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 *RegionInstanceGroupManagersDeleteInstancesCall) RequestId(requestId string) *RegionInstanceGroupManagersDeleteInstancesCall { - c.urlParams_.Set("requestId", requestId) + c.resource = resource + c.testpermissionsrequest = testpermissionsrequest return c } // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *RegionInstanceGroupManagersDeleteInstancesCall) Fields(s ...googleapi.Field) *RegionInstanceGroupManagersDeleteInstancesCall { +func (c *RegionHealthCheckServicesTestIamPermissionsCall) Fields(s ...googleapi.Field) *RegionHealthCheckServicesTestIamPermissionsCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } // Context sets the context to be used in this call's Do method. -func (c *RegionInstanceGroupManagersDeleteInstancesCall) Context(ctx context.Context) *RegionInstanceGroupManagersDeleteInstancesCall { +func (c *RegionHealthCheckServicesTestIamPermissionsCall) Context(ctx context.Context) *RegionHealthCheckServicesTestIamPermissionsCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *RegionInstanceGroupManagersDeleteInstancesCall) Header() http.Header { +func (c *RegionHealthCheckServicesTestIamPermissionsCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *RegionInstanceGroupManagersDeleteInstancesCall) doRequest(alt string) (*http.Response, error) { +func (c *RegionHealthCheckServicesTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) - var body io.Reader = nil - body, err := googleapi.WithoutDataWrapper.JSONReader(c.regioninstancegroupmanagersdeleteinstancesrequest) + body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.testpermissionsrequest) if err != nil { return nil, err } c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/deleteInstances") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/healthCheckServices/{resource}/testIamPermissions") urls += "?" + c.urlParams_.Encode() req, err := http.NewRequest("POST", urls, body) if err != nil { @@ -7042,19 +7458,21 @@ func (c *RegionInstanceGroupManagersDeleteInstancesCall) doRequest(alt string) ( } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "region": c.region, - "instanceGroupManager": c.instanceGroupManager, + "project": c.project, + "region": c.region, + "resource": c.resource, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.regionHealthCheckServices.testIamPermissions", "request", internallog.HTTPRequest(req, body.Bytes())) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.regionInstanceGroupManagers.deleteInstances" call. +// Do executes the "compute.regionHealthCheckServices.testIamPermissions" call. // 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 *RegionInstanceGroupManagersDeleteInstancesCall) Do(opts ...googleapi.CallOption) (*Operation, error) { +// *TestPermissionsResponse.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 *RegionHealthCheckServicesTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -7073,100 +7491,115 @@ func (c *RegionInstanceGroupManagersDeleteInstancesCall) Do(opts ...googleapi.Ca if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } - ret := &Operation{ + ret := &TestPermissionsResponse{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.regionHealthCheckServices.testIamPermissions", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type RegionInstanceGroupManagersDeletePerInstanceConfigsCall struct { - s *Service - project string - region string - instanceGroupManager string - regioninstancegroupmanagerdeleteinstanceconfigreq *RegionInstanceGroupManagerDeleteInstanceConfigReq - urlParams_ gensupport.URLParams - ctx_ context.Context - header_ http.Header +type RegionHealthChecksDeleteCall struct { + s *Service + project string + region string + healthCheck string + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header } -// DeletePerInstanceConfigs: Deletes selected per-instance configurations for -// the managed instance group. +// Delete: Deletes the specified HealthCheck resource. // -// - instanceGroupManager: The name of the managed instance group. It should -// conform to RFC1035. -// - project: Project ID for this request. -// - region: Name of the region scoping this request, should conform to -// RFC1035. -func (r *RegionInstanceGroupManagersService) DeletePerInstanceConfigs(project string, region string, instanceGroupManager string, regioninstancegroupmanagerdeleteinstanceconfigreq *RegionInstanceGroupManagerDeleteInstanceConfigReq) *RegionInstanceGroupManagersDeletePerInstanceConfigsCall { - c := &RegionInstanceGroupManagersDeletePerInstanceConfigsCall{s: r.s, urlParams_: make(gensupport.URLParams)} +// - healthCheck: Name of the HealthCheck resource to delete. +// - project: Project ID for this request. +// - region: Name of the region scoping this request. +func (r *RegionHealthChecksService) Delete(project string, region string, healthCheck string) *RegionHealthChecksDeleteCall { + c := &RegionHealthChecksDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project c.region = region - c.instanceGroupManager = instanceGroupManager - c.regioninstancegroupmanagerdeleteinstanceconfigreq = regioninstancegroupmanagerdeleteinstanceconfigreq + c.healthCheck = healthCheck + 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 *RegionHealthChecksDeleteCall) RequestId(requestId string) *RegionHealthChecksDeleteCall { + 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 // details. -func (c *RegionInstanceGroupManagersDeletePerInstanceConfigsCall) Fields(s ...googleapi.Field) *RegionInstanceGroupManagersDeletePerInstanceConfigsCall { +func (c *RegionHealthChecksDeleteCall) Fields(s ...googleapi.Field) *RegionHealthChecksDeleteCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } // Context sets the context to be used in this call's Do method. -func (c *RegionInstanceGroupManagersDeletePerInstanceConfigsCall) Context(ctx context.Context) *RegionInstanceGroupManagersDeletePerInstanceConfigsCall { +func (c *RegionHealthChecksDeleteCall) Context(ctx context.Context) *RegionHealthChecksDeleteCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *RegionInstanceGroupManagersDeletePerInstanceConfigsCall) Header() http.Header { +func (c *RegionHealthChecksDeleteCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *RegionInstanceGroupManagersDeletePerInstanceConfigsCall) doRequest(alt string) (*http.Response, error) { - reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) - var body io.Reader = nil - body, err := googleapi.WithoutDataWrapper.JSONReader(c.regioninstancegroupmanagerdeleteinstanceconfigreq) - if err != nil { - return nil, err - } +func (c *RegionHealthChecksDeleteCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/deletePerInstanceConfigs") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/healthChecks/{healthCheck}") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("POST", urls, body) + req, err := http.NewRequest("DELETE", urls, nil) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "region": c.region, - "instanceGroupManager": c.instanceGroupManager, + "project": c.project, + "region": c.region, + "healthCheck": c.healthCheck, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.regionHealthChecks.delete", "request", internallog.HTTPRequest(req, nil)) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.regionInstanceGroupManagers.deletePerInstanceConfigs" call. +// Do executes the "compute.regionHealthChecks.delete" call. // 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 *RegionInstanceGroupManagersDeletePerInstanceConfigsCall) Do(opts ...googleapi.CallOption) (*Operation, error) { +func (c *RegionHealthChecksDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -7192,40 +7625,42 @@ func (c *RegionInstanceGroupManagersDeletePerInstanceConfigsCall) Do(opts ...goo }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.regionHealthChecks.delete", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type RegionInstanceGroupManagersGetCall struct { - s *Service - project string - region string - instanceGroupManager string - urlParams_ gensupport.URLParams - ifNoneMatch_ string - ctx_ context.Context - header_ http.Header +type RegionHealthChecksGetCall struct { + s *Service + project string + region string + healthCheck string + urlParams_ gensupport.URLParams + ifNoneMatch_ string + ctx_ context.Context + header_ http.Header } -// Get: Returns all of the details about the specified managed instance group. +// Get: Returns the specified HealthCheck resource. // -// - instanceGroupManager: Name of the managed instance group to return. +// - healthCheck: Name of the HealthCheck resource to return. // - project: Project ID for this request. // - region: Name of the region scoping this request. -func (r *RegionInstanceGroupManagersService) Get(project string, region string, instanceGroupManager string) *RegionInstanceGroupManagersGetCall { - c := &RegionInstanceGroupManagersGetCall{s: r.s, urlParams_: make(gensupport.URLParams)} +func (r *RegionHealthChecksService) Get(project string, region string, healthCheck string) *RegionHealthChecksGetCall { + c := &RegionHealthChecksGetCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project c.region = region - c.instanceGroupManager = instanceGroupManager + c.healthCheck = healthCheck return c } // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *RegionInstanceGroupManagersGetCall) Fields(s ...googleapi.Field) *RegionInstanceGroupManagersGetCall { +func (c *RegionHealthChecksGetCall) Fields(s ...googleapi.Field) *RegionHealthChecksGetCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } @@ -7233,56 +7668,55 @@ func (c *RegionInstanceGroupManagersGetCall) Fields(s ...googleapi.Field) *Regio // IfNoneMatch sets an 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. -func (c *RegionInstanceGroupManagersGetCall) IfNoneMatch(entityTag string) *RegionInstanceGroupManagersGetCall { +func (c *RegionHealthChecksGetCall) IfNoneMatch(entityTag string) *RegionHealthChecksGetCall { c.ifNoneMatch_ = entityTag return c } // Context sets the context to be used in this call's Do method. -func (c *RegionInstanceGroupManagersGetCall) Context(ctx context.Context) *RegionInstanceGroupManagersGetCall { +func (c *RegionHealthChecksGetCall) Context(ctx context.Context) *RegionHealthChecksGetCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *RegionInstanceGroupManagersGetCall) Header() http.Header { +func (c *RegionHealthChecksGetCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *RegionInstanceGroupManagersGetCall) doRequest(alt string) (*http.Response, error) { +func (c *RegionHealthChecksGetCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) if c.ifNoneMatch_ != "" { reqHeaders.Set("If-None-Match", c.ifNoneMatch_) } - var body io.Reader = nil c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/healthChecks/{healthCheck}") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("GET", urls, body) + req, err := http.NewRequest("GET", urls, nil) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "region": c.region, - "instanceGroupManager": c.instanceGroupManager, + "project": c.project, + "region": c.region, + "healthCheck": c.healthCheck, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.regionHealthChecks.get", "request", internallog.HTTPRequest(req, nil)) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.regionInstanceGroupManagers.get" call. +// Do executes the "compute.regionHealthChecks.get" call. // Any non-2xx status code is an error. Response headers are in either -// *InstanceGroupManager.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 *RegionInstanceGroupManagersGetCall) Do(opts ...googleapi.CallOption) (*InstanceGroupManager, error) { +// *HealthCheck.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 *RegionHealthChecksGetCall) Do(opts ...googleapi.CallOption) (*HealthCheck, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -7301,58 +7735,63 @@ func (c *RegionInstanceGroupManagersGetCall) Do(opts ...googleapi.CallOption) (* if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } - ret := &InstanceGroupManager{ + ret := &HealthCheck{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.regionHealthChecks.get", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type RegionInstanceGroupManagersInsertCall struct { - s *Service - project string - region string - instancegroupmanager *InstanceGroupManager - urlParams_ gensupport.URLParams - ctx_ context.Context - header_ http.Header +type RegionHealthChecksInsertCall struct { + s *Service + project string + region string + healthcheck *HealthCheck + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header } -// Insert: Creates a managed instance group using the information that you -// specify in the request. After the group is created, instances in the group -// are created using the specified instance template. This operation is marked -// as DONE when the group is created even if the instances in the group have -// not yet been created. You must separately verify the status of the -// individual instances with the listmanagedinstances method. A regional -// managed instance group can contain up to 2000 instances. +// Insert: Creates a HealthCheck resource in the specified project using the +// data +// included in the request. // // - project: Project ID for this request. // - region: Name of the region scoping this request. -func (r *RegionInstanceGroupManagersService) Insert(project string, region string, instancegroupmanager *InstanceGroupManager) *RegionInstanceGroupManagersInsertCall { - c := &RegionInstanceGroupManagersInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)} +func (r *RegionHealthChecksService) Insert(project string, region string, healthcheck *HealthCheck) *RegionHealthChecksInsertCall { + c := &RegionHealthChecksInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project c.region = region - c.instancegroupmanager = instancegroupmanager + c.healthcheck = healthcheck 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 *RegionInstanceGroupManagersInsertCall) RequestId(requestId string) *RegionInstanceGroupManagersInsertCall { +// 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 *RegionHealthChecksInsertCall) RequestId(requestId string) *RegionHealthChecksInsertCall { c.urlParams_.Set("requestId", requestId) return c } @@ -7360,36 +7799,35 @@ func (c *RegionInstanceGroupManagersInsertCall) RequestId(requestId string) *Reg // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *RegionInstanceGroupManagersInsertCall) Fields(s ...googleapi.Field) *RegionInstanceGroupManagersInsertCall { +func (c *RegionHealthChecksInsertCall) Fields(s ...googleapi.Field) *RegionHealthChecksInsertCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } // Context sets the context to be used in this call's Do method. -func (c *RegionInstanceGroupManagersInsertCall) Context(ctx context.Context) *RegionInstanceGroupManagersInsertCall { +func (c *RegionHealthChecksInsertCall) Context(ctx context.Context) *RegionHealthChecksInsertCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *RegionInstanceGroupManagersInsertCall) Header() http.Header { +func (c *RegionHealthChecksInsertCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *RegionInstanceGroupManagersInsertCall) doRequest(alt string) (*http.Response, error) { +func (c *RegionHealthChecksInsertCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) - var body io.Reader = nil - body, err := googleapi.WithoutDataWrapper.JSONReader(c.instancegroupmanager) + body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.healthcheck) if err != nil { return nil, err } c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/instanceGroupManagers") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/healthChecks") urls += "?" + c.urlParams_.Encode() req, err := http.NewRequest("POST", urls, body) if err != nil { @@ -7400,15 +7838,16 @@ func (c *RegionInstanceGroupManagersInsertCall) doRequest(alt string) (*http.Res "project": c.project, "region": c.region, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.regionHealthChecks.insert", "request", internallog.HTTPRequest(req, body.Bytes())) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.regionInstanceGroupManagers.insert" call. +// Do executes the "compute.regionHealthChecks.insert" call. // 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 *RegionInstanceGroupManagersInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) { +func (c *RegionHealthChecksInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -7434,13 +7873,15 @@ func (c *RegionInstanceGroupManagersInsertCall) Do(opts ...googleapi.CallOption) }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.regionHealthChecks.insert", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type RegionInstanceGroupManagersListCall struct { +type RegionHealthChecksListCall struct { s *Service project string region string @@ -7450,92 +7891,143 @@ type RegionInstanceGroupManagersListCall struct { header_ http.Header } -// List: Retrieves the list of managed instance groups that are contained -// within the specified region. +// List: Retrieves the list of HealthCheck resources available to the +// specified +// project. // // - project: Project ID for this request. // - region: Name of the region scoping this request. -func (r *RegionInstanceGroupManagersService) List(project string, region string) *RegionInstanceGroupManagersListCall { - c := &RegionInstanceGroupManagersListCall{s: r.s, urlParams_: make(gensupport.URLParams)} +func (r *RegionHealthChecksService) List(project string, region string) *RegionHealthChecksListCall { + c := &RegionHealthChecksListCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project c.region = region return c } // Filter sets the optional parameter "filter": A filter expression that -// filters resources listed in the response. Most Compute resources support two -// types of filter expressions: expressions that support regular expressions -// and expressions that follow API improvement proposal AIP-160. These two -// types of filter expressions cannot be mixed in one request. If you want to -// use AIP-160, your expression must specify the field name, an operator, and -// the value that you want to use for filtering. The value must be a string, a -// number, or a boolean. The 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`. The `:*` comparison can be used to test whether a key has -// been defined. For example, to find all objects with `owner` label use: ``` -// labels.owner:* ``` 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) ``` If you want to use a regular -// expression, use the `eq` (equal) or `ne` (not equal) operator against a -// single un-parenthesized expression with or without quotes or against -// multiple parenthesized expressions. Examples: `fieldname eq unquoted -// literal` `fieldname eq 'single quoted literal'` `fieldname eq "double quoted -// literal" `(fieldname1 eq literal) (fieldname2 ne "literal")` The literal -// value is interpreted as a regular expression using Google RE2 library -// syntax. The literal value must match the entire field. For example, to -// filter for instances that do not end with name "instance", you would use -// `name ne .*instance`. You cannot combine constraints on multiple fields -// using regular expressions. -func (c *RegionInstanceGroupManagersListCall) Filter(filter string) *RegionInstanceGroupManagersListCall { +// filters resources listed in the response. Most +// Compute resources support two types of filter expressions: +// expressions that support regular expressions and expressions that follow +// API improvement proposal AIP-160. +// These two types of filter expressions cannot be mixed in one request. +// +// If you want to use AIP-160, your expression must specify the field name, +// an +// operator, and the value that you want to use for filtering. The value +// must be a string, a number, or a boolean. The 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`. +// +// The `:*` comparison can be used to test whether a key has been defined. +// For example, to find all objects with `owner` label +// use: +// ``` +// labels.owner:* +// ``` +// +// 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 onresource 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) +// ``` +// +// If you want to use a regular expression, use the `eq` (equal) or `ne` +// (not equal) operator against a single un-parenthesized expression with +// or +// without quotes or against multiple parenthesized expressions. +// Examples: +// +// `fieldname eq unquoted literal` +// `fieldname eq 'single quoted literal'` +// `fieldname eq "double quoted literal" +// `(fieldname1 eq literal) (fieldname2 ne "literal")` +// +// The literal value is interpreted as a regular expression using GoogleRE2 +// library syntax. +// The literal value must match the entire field. +// +// For example, to filter for instances that do not end with name +// "instance", +// you would use `name ne .*instance`. +// +// You cannot combine constraints on multiple fields using regular +// expressions. +func (c *RegionHealthChecksListCall) Filter(filter string) *RegionHealthChecksListCall { 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 *RegionInstanceGroupManagersListCall) MaxResults(maxResults int64) *RegionInstanceGroupManagersListCall { +// 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 *RegionHealthChecksListCall) MaxResults(maxResults int64) *RegionHealthChecksListCall { 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 *RegionInstanceGroupManagersListCall) OrderBy(orderBy string) *RegionInstanceGroupManagersListCall { +// 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 *RegionHealthChecksListCall) OrderBy(orderBy string) *RegionHealthChecksListCall { 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 *RegionInstanceGroupManagersListCall) PageToken(pageToken string) *RegionInstanceGroupManagersListCall { +// use. Set `pageToken` to the +// `nextPageToken` returned by a previous list request to get +// the next page of results. +func (c *RegionHealthChecksListCall) PageToken(pageToken string) *RegionHealthChecksListCall { c.urlParams_.Set("pageToken", pageToken) return c } // ReturnPartialSuccess sets the optional parameter "returnPartialSuccess": -// Opt-in for partial success behavior which provides partial results in case -// of failure. The default value is false. For example, when partial success -// behavior is enabled, aggregatedList for a single zone scope either returns -// all resources in the zone or no resources, with an error code. -func (c *RegionInstanceGroupManagersListCall) ReturnPartialSuccess(returnPartialSuccess bool) *RegionInstanceGroupManagersListCall { +// Opt-in for partial success behavior which provides partial results in +// case +// of failure. The default value is false. +// +// For example, when partial success behavior is enabled, aggregatedList for +// a +// single zone scope either returns all resources in the zone or no +// resources, +// with an error code. +func (c *RegionHealthChecksListCall) ReturnPartialSuccess(returnPartialSuccess bool) *RegionHealthChecksListCall { c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess)) return c } @@ -7543,7 +8035,7 @@ func (c *RegionInstanceGroupManagersListCall) ReturnPartialSuccess(returnPartial // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *RegionInstanceGroupManagersListCall) Fields(s ...googleapi.Field) *RegionInstanceGroupManagersListCall { +func (c *RegionHealthChecksListCall) Fields(s ...googleapi.Field) *RegionHealthChecksListCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } @@ -7551,37 +8043,36 @@ func (c *RegionInstanceGroupManagersListCall) Fields(s ...googleapi.Field) *Regi // IfNoneMatch sets an 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. -func (c *RegionInstanceGroupManagersListCall) IfNoneMatch(entityTag string) *RegionInstanceGroupManagersListCall { +func (c *RegionHealthChecksListCall) IfNoneMatch(entityTag string) *RegionHealthChecksListCall { c.ifNoneMatch_ = entityTag return c } // Context sets the context to be used in this call's Do method. -func (c *RegionInstanceGroupManagersListCall) Context(ctx context.Context) *RegionInstanceGroupManagersListCall { +func (c *RegionHealthChecksListCall) Context(ctx context.Context) *RegionHealthChecksListCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *RegionInstanceGroupManagersListCall) Header() http.Header { +func (c *RegionHealthChecksListCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *RegionInstanceGroupManagersListCall) doRequest(alt string) (*http.Response, error) { +func (c *RegionHealthChecksListCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) if c.ifNoneMatch_ != "" { reqHeaders.Set("If-None-Match", c.ifNoneMatch_) } - var body io.Reader = nil c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/instanceGroupManagers") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/healthChecks") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("GET", urls, body) + req, err := http.NewRequest("GET", urls, nil) if err != nil { return nil, err } @@ -7590,16 +8081,17 @@ func (c *RegionInstanceGroupManagersListCall) doRequest(alt string) (*http.Respo "project": c.project, "region": c.region, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.regionHealthChecks.list", "request", internallog.HTTPRequest(req, nil)) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.regionInstanceGroupManagers.list" call. +// Do executes the "compute.regionHealthChecks.list" call. // Any non-2xx status code is an error. Response headers are in either -// *RegionInstanceGroupManagerList.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 *RegionInstanceGroupManagersListCall) Do(opts ...googleapi.CallOption) (*RegionInstanceGroupManagerList, error) { +// *HealthCheckList.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 *RegionHealthChecksListCall) Do(opts ...googleapi.CallOption) (*HealthCheckList, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -7618,23 +8110,25 @@ func (c *RegionInstanceGroupManagersListCall) Do(opts ...googleapi.CallOption) ( if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } - ret := &RegionInstanceGroupManagerList{ + ret := &HealthCheckList{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.regionHealthChecks.list", "response", internallog.HTTPResponse(res, b)) return ret, nil } // 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 *RegionInstanceGroupManagersListCall) Pages(ctx context.Context, f func(*RegionInstanceGroupManagerList) error) error { +func (c *RegionHealthChecksListCall) Pages(ctx context.Context, f func(*HealthCheckList) error) error { c.ctx_ = ctx defer c.PageToken(c.urlParams_.Get("pageToken")) for { @@ -7652,175 +8146,223 @@ func (c *RegionInstanceGroupManagersListCall) Pages(ctx context.Context, f func( } } -type RegionInstanceGroupManagersListErrorsCall struct { - s *Service - project string - region string - instanceGroupManager string - urlParams_ gensupport.URLParams - ifNoneMatch_ string - ctx_ context.Context - header_ http.Header +type RegionHealthChecksPatchCall struct { + s *Service + project string + region string + healthCheck string + healthcheck *HealthCheck + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header } -// ListErrors: Lists all errors thrown by actions on instances for a given -// regional managed instance group. The filter and orderBy query parameters are -// not supported. +// Patch: Updates a HealthCheck resource in the specified project using the +// data +// included in the request. This method supportsPATCH +// semantics and uses theJSON merge +// patch format and processing rules. // -// - instanceGroupManager: The name of the managed instance group. It must be a -// string that meets the requirements in RFC1035, or an unsigned long -// integer: must match regexp pattern: (?:a-z -// (?:[-a-z0-9]{0,61}[a-z0-9])?)|1-9{0,19}. -// - project: Project ID for this request. -// - region: Name of the region scoping this request. This should conform to -// RFC1035. -func (r *RegionInstanceGroupManagersService) ListErrors(project string, region string, instanceGroupManager string) *RegionInstanceGroupManagersListErrorsCall { - c := &RegionInstanceGroupManagersListErrorsCall{s: r.s, urlParams_: make(gensupport.URLParams)} +// - healthCheck: Name of the HealthCheck resource to patch. +// - project: Project ID for this request. +// - region: Name of the region scoping this request. +func (r *RegionHealthChecksService) Patch(project string, region string, healthCheck string, healthcheck *HealthCheck) *RegionHealthChecksPatchCall { + c := &RegionHealthChecksPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project c.region = region - c.instanceGroupManager = instanceGroupManager + c.healthCheck = healthCheck + c.healthcheck = healthcheck return c } -// Filter sets the optional parameter "filter": A filter expression that -// filters resources listed in the response. Most Compute resources support two -// types of filter expressions: expressions that support regular expressions -// and expressions that follow API improvement proposal AIP-160. These two -// types of filter expressions cannot be mixed in one request. If you want to -// use AIP-160, your expression must specify the field name, an operator, and -// the value that you want to use for filtering. The value must be a string, a -// number, or a boolean. The 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`. The `:*` comparison can be used to test whether a key has -// been defined. For example, to find all objects with `owner` label use: ``` -// labels.owner:* ``` 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) ``` If you want to use a regular -// expression, use the `eq` (equal) or `ne` (not equal) operator against a -// single un-parenthesized expression with or without quotes or against -// multiple parenthesized expressions. Examples: `fieldname eq unquoted -// literal` `fieldname eq 'single quoted literal'` `fieldname eq "double quoted -// literal" `(fieldname1 eq literal) (fieldname2 ne "literal")` The literal -// value is interpreted as a regular expression using Google RE2 library -// syntax. The literal value must match the entire field. For example, to -// filter for instances that do not end with name "instance", you would use -// `name ne .*instance`. You cannot combine constraints on multiple fields -// using regular expressions. -func (c *RegionInstanceGroupManagersListErrorsCall) Filter(filter string) *RegionInstanceGroupManagersListErrorsCall { - c.urlParams_.Set("filter", filter) +// 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 *RegionHealthChecksPatchCall) RequestId(requestId string) *RegionHealthChecksPatchCall { + c.urlParams_.Set("requestId", requestId) 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 *RegionInstanceGroupManagersListErrorsCall) MaxResults(maxResults int64) *RegionInstanceGroupManagersListErrorsCall { - c.urlParams_.Set("maxResults", fmt.Sprint(maxResults)) +// Fields allows partial responses to be retrieved. See +// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more +// details. +func (c *RegionHealthChecksPatchCall) Fields(s ...googleapi.Field) *RegionHealthChecksPatchCall { + c.urlParams_.Set("fields", googleapi.CombineFields(s)) 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 *RegionInstanceGroupManagersListErrorsCall) OrderBy(orderBy string) *RegionInstanceGroupManagersListErrorsCall { - c.urlParams_.Set("orderBy", orderBy) +// Context sets the context to be used in this call's Do method. +func (c *RegionHealthChecksPatchCall) Context(ctx context.Context) *RegionHealthChecksPatchCall { + c.ctx_ = ctx 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 *RegionInstanceGroupManagersListErrorsCall) PageToken(pageToken string) *RegionInstanceGroupManagersListErrorsCall { - c.urlParams_.Set("pageToken", pageToken) - return c +// Header returns a http.Header that can be modified by the caller to add +// headers to the request. +func (c *RegionHealthChecksPatchCall) Header() http.Header { + if c.header_ == nil { + c.header_ = make(http.Header) + } + return c.header_ } -// ReturnPartialSuccess sets the optional parameter "returnPartialSuccess": -// Opt-in for partial success behavior which provides partial results in case -// of failure. The default value is false. For example, when partial success -// behavior is enabled, aggregatedList for a single zone scope either returns -// all resources in the zone or no resources, with an error code. -func (c *RegionInstanceGroupManagersListErrorsCall) ReturnPartialSuccess(returnPartialSuccess bool) *RegionInstanceGroupManagersListErrorsCall { - c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess)) +func (c *RegionHealthChecksPatchCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) + body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.healthcheck) + if err != nil { + return nil, err + } + c.urlParams_.Set("alt", alt) + c.urlParams_.Set("prettyPrint", "false") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/healthChecks/{healthCheck}") + urls += "?" + c.urlParams_.Encode() + req, err := http.NewRequest("PATCH", urls, body) + if err != nil { + return nil, err + } + req.Header = reqHeaders + googleapi.Expand(req.URL, map[string]string{ + "project": c.project, + "region": c.region, + "healthCheck": c.healthCheck, + }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.regionHealthChecks.patch", "request", internallog.HTTPRequest(req, body.Bytes())) + return gensupport.SendRequest(c.ctx_, c.s.client, req) +} + +// Do executes the "compute.regionHealthChecks.patch" call. +// 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 *RegionHealthChecksPatchCall) 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, gensupport.WrapError(&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, gensupport.WrapError(err) + } + ret := &Operation{ + ServerResponse: googleapi.ServerResponse{ + Header: res.Header, + HTTPStatusCode: res.StatusCode, + }, + } + target := &ret + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { + return nil, err + } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.regionHealthChecks.patch", "response", internallog.HTTPResponse(res, b)) + return ret, nil +} + +type RegionHealthChecksTestIamPermissionsCall struct { + s *Service + project string + region string + resource string + testpermissionsrequest *TestPermissionsRequest + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header +} + +// TestIamPermissions: Returns permissions that a caller has on the specified +// resource. +// +// - project: Project ID for this request. +// - region: The name of the region for this request. +// - resource: Name or id of the resource for this request. +func (r *RegionHealthChecksService) TestIamPermissions(project string, region string, resource string, testpermissionsrequest *TestPermissionsRequest) *RegionHealthChecksTestIamPermissionsCall { + c := &RegionHealthChecksTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)} + c.project = project + c.region = region + c.resource = resource + c.testpermissionsrequest = testpermissionsrequest return c } // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *RegionInstanceGroupManagersListErrorsCall) Fields(s ...googleapi.Field) *RegionInstanceGroupManagersListErrorsCall { +func (c *RegionHealthChecksTestIamPermissionsCall) Fields(s ...googleapi.Field) *RegionHealthChecksTestIamPermissionsCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } -// IfNoneMatch sets an 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. -func (c *RegionInstanceGroupManagersListErrorsCall) IfNoneMatch(entityTag string) *RegionInstanceGroupManagersListErrorsCall { - c.ifNoneMatch_ = entityTag - return c -} - // Context sets the context to be used in this call's Do method. -func (c *RegionInstanceGroupManagersListErrorsCall) Context(ctx context.Context) *RegionInstanceGroupManagersListErrorsCall { +func (c *RegionHealthChecksTestIamPermissionsCall) Context(ctx context.Context) *RegionHealthChecksTestIamPermissionsCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *RegionInstanceGroupManagersListErrorsCall) Header() http.Header { +func (c *RegionHealthChecksTestIamPermissionsCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *RegionInstanceGroupManagersListErrorsCall) doRequest(alt string) (*http.Response, error) { - reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) - if c.ifNoneMatch_ != "" { - reqHeaders.Set("If-None-Match", c.ifNoneMatch_) +func (c *RegionHealthChecksTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) + body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.testpermissionsrequest) + if err != nil { + return nil, err } - var body io.Reader = nil c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/listErrors") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/healthChecks/{resource}/testIamPermissions") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("GET", urls, body) + req, err := http.NewRequest("POST", urls, body) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "region": c.region, - "instanceGroupManager": c.instanceGroupManager, + "project": c.project, + "region": c.region, + "resource": c.resource, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.regionHealthChecks.testIamPermissions", "request", internallog.HTTPRequest(req, body.Bytes())) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.regionInstanceGroupManagers.listErrors" call. +// Do executes the "compute.regionHealthChecks.testIamPermissions" call. // Any non-2xx status code is an error. Response headers are in either -// *RegionInstanceGroupManagersListErrorsResponse.ServerResponse.Header or (if -// a response was returned at all) in error.(*googleapi.Error).Header. Use +// *TestPermissionsResponse.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 *RegionInstanceGroupManagersListErrorsCall) Do(opts ...googleapi.CallOption) (*RegionInstanceGroupManagersListErrorsResponse, error) { +func (c *RegionHealthChecksTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -7839,196 +8381,123 @@ func (c *RegionInstanceGroupManagersListErrorsCall) Do(opts ...googleapi.CallOpt if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } - ret := &RegionInstanceGroupManagersListErrorsResponse{ + ret := &TestPermissionsResponse{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.regionHealthChecks.testIamPermissions", "response", internallog.HTTPResponse(res, b)) return ret, nil } -// 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 *RegionInstanceGroupManagersListErrorsCall) Pages(ctx context.Context, f func(*RegionInstanceGroupManagersListErrorsResponse) error) error { - c.ctx_ = ctx - defer c.PageToken(c.urlParams_.Get("pageToken")) - 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) - } -} - -type RegionInstanceGroupManagersListManagedInstancesCall struct { - s *Service - project string - region string - instanceGroupManager string - urlParams_ gensupport.URLParams - ctx_ context.Context - header_ http.Header +type RegionHealthChecksUpdateCall struct { + s *Service + project string + region string + healthCheck string + healthcheck *HealthCheck + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header } -// ListManagedInstances: Lists the instances in the managed instance group and -// instances that are scheduled to be created. The list includes any current -// actions that the group has scheduled for its instances. The orderBy query -// parameter is not supported. The `pageToken` query parameter is supported -// only if the group's `listManagedInstancesResults` field is set to -// `PAGINATED`. +// Update: Updates a HealthCheck resource in the specified project using the +// data +// included in the request. // -// - instanceGroupManager: The name of the managed instance group. +// - healthCheck: Name of the HealthCheck resource to update. // - project: Project ID for this request. // - region: Name of the region scoping this request. -func (r *RegionInstanceGroupManagersService) ListManagedInstances(project string, region string, instanceGroupManager string) *RegionInstanceGroupManagersListManagedInstancesCall { - c := &RegionInstanceGroupManagersListManagedInstancesCall{s: r.s, urlParams_: make(gensupport.URLParams)} +func (r *RegionHealthChecksService) Update(project string, region string, healthCheck string, healthcheck *HealthCheck) *RegionHealthChecksUpdateCall { + c := &RegionHealthChecksUpdateCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project c.region = region - c.instanceGroupManager = instanceGroupManager - return c -} - -// Filter sets the optional parameter "filter": A filter expression that -// filters resources listed in the response. Most Compute resources support two -// types of filter expressions: expressions that support regular expressions -// and expressions that follow API improvement proposal AIP-160. These two -// types of filter expressions cannot be mixed in one request. If you want to -// use AIP-160, your expression must specify the field name, an operator, and -// the value that you want to use for filtering. The value must be a string, a -// number, or a boolean. The 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`. The `:*` comparison can be used to test whether a key has -// been defined. For example, to find all objects with `owner` label use: ``` -// labels.owner:* ``` 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) ``` If you want to use a regular -// expression, use the `eq` (equal) or `ne` (not equal) operator against a -// single un-parenthesized expression with or without quotes or against -// multiple parenthesized expressions. Examples: `fieldname eq unquoted -// literal` `fieldname eq 'single quoted literal'` `fieldname eq "double quoted -// literal" `(fieldname1 eq literal) (fieldname2 ne "literal")` The literal -// value is interpreted as a regular expression using Google RE2 library -// syntax. The literal value must match the entire field. For example, to -// filter for instances that do not end with name "instance", you would use -// `name ne .*instance`. You cannot combine constraints on multiple fields -// using regular expressions. -func (c *RegionInstanceGroupManagersListManagedInstancesCall) Filter(filter string) *RegionInstanceGroupManagersListManagedInstancesCall { - 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 *RegionInstanceGroupManagersListManagedInstancesCall) MaxResults(maxResults int64) *RegionInstanceGroupManagersListManagedInstancesCall { - 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 *RegionInstanceGroupManagersListManagedInstancesCall) OrderBy(orderBy string) *RegionInstanceGroupManagersListManagedInstancesCall { - 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 *RegionInstanceGroupManagersListManagedInstancesCall) PageToken(pageToken string) *RegionInstanceGroupManagersListManagedInstancesCall { - c.urlParams_.Set("pageToken", pageToken) + c.healthCheck = healthCheck + c.healthcheck = healthcheck return c } -// ReturnPartialSuccess sets the optional parameter "returnPartialSuccess": -// Opt-in for partial success behavior which provides partial results in case -// of failure. The default value is false. For example, when partial success -// behavior is enabled, aggregatedList for a single zone scope either returns -// all resources in the zone or no resources, with an error code. -func (c *RegionInstanceGroupManagersListManagedInstancesCall) ReturnPartialSuccess(returnPartialSuccess bool) *RegionInstanceGroupManagersListManagedInstancesCall { - c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess)) +// 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 *RegionHealthChecksUpdateCall) RequestId(requestId string) *RegionHealthChecksUpdateCall { + 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 // details. -func (c *RegionInstanceGroupManagersListManagedInstancesCall) Fields(s ...googleapi.Field) *RegionInstanceGroupManagersListManagedInstancesCall { +func (c *RegionHealthChecksUpdateCall) Fields(s ...googleapi.Field) *RegionHealthChecksUpdateCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } // Context sets the context to be used in this call's Do method. -func (c *RegionInstanceGroupManagersListManagedInstancesCall) Context(ctx context.Context) *RegionInstanceGroupManagersListManagedInstancesCall { +func (c *RegionHealthChecksUpdateCall) Context(ctx context.Context) *RegionHealthChecksUpdateCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *RegionInstanceGroupManagersListManagedInstancesCall) Header() http.Header { +func (c *RegionHealthChecksUpdateCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *RegionInstanceGroupManagersListManagedInstancesCall) doRequest(alt string) (*http.Response, error) { - reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) - var body io.Reader = nil +func (c *RegionHealthChecksUpdateCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) + body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.healthcheck) + if err != nil { + return nil, err + } c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/listManagedInstances") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/healthChecks/{healthCheck}") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("POST", urls, body) + req, err := http.NewRequest("PUT", urls, body) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "region": c.region, - "instanceGroupManager": c.instanceGroupManager, + "project": c.project, + "region": c.region, + "healthCheck": c.healthCheck, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.regionHealthChecks.update", "request", internallog.HTTPRequest(req, body.Bytes())) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.regionInstanceGroupManagers.listManagedInstances" call. +// Do executes the "compute.regionHealthChecks.update" call. // Any non-2xx status code is an error. Response headers are in either -// *RegionInstanceGroupManagersListInstancesResponse.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 *RegionInstanceGroupManagersListManagedInstancesCall) Do(opts ...googleapi.CallOption) (*RegionInstanceGroupManagersListInstancesResponse, error) { +// *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 *RegionHealthChecksUpdateCall) Do(opts ...googleapi.CallOption) (*Operation, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -8047,195 +8516,258 @@ func (c *RegionInstanceGroupManagersListManagedInstancesCall) Do(opts ...googlea if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } - ret := &RegionInstanceGroupManagersListInstancesResponse{ + ret := &Operation{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.regionHealthChecks.update", "response", internallog.HTTPResponse(res, b)) return ret, nil } -// 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 *RegionInstanceGroupManagersListManagedInstancesCall) Pages(ctx context.Context, f func(*RegionInstanceGroupManagersListInstancesResponse) error) error { - c.ctx_ = ctx - defer c.PageToken(c.urlParams_.Get("pageToken")) - 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) - } -} - -type RegionInstanceGroupManagersListPerInstanceConfigsCall struct { - s *Service - project string - region string - instanceGroupManager string - urlParams_ gensupport.URLParams - ctx_ context.Context - header_ http.Header +type RegionHealthSourcesAggregatedListCall struct { + s *Service + project string + urlParams_ gensupport.URLParams + ifNoneMatch_ string + ctx_ context.Context + header_ http.Header } -// ListPerInstanceConfigs: Lists all of the per-instance configurations defined -// for the managed instance group. The orderBy query parameter is not -// supported. +// AggregatedList: Retrieves the list of all HealthSource resources +// (all +// regional) available to the specified project. // -// - instanceGroupManager: The name of the managed instance group. It should -// conform to RFC1035. -// - project: Project ID for this request. -// - region: Name of the region scoping this request, should conform to -// RFC1035. -func (r *RegionInstanceGroupManagersService) ListPerInstanceConfigs(project string, region string, instanceGroupManager string) *RegionInstanceGroupManagersListPerInstanceConfigsCall { - c := &RegionInstanceGroupManagersListPerInstanceConfigsCall{s: r.s, urlParams_: make(gensupport.URLParams)} +// To prevent failure, Google recommends that you set +// the +// `returnPartialSuccess` parameter to `true`. +// +// - project: Name of the project scoping this request. +func (r *RegionHealthSourcesService) AggregatedList(project string) *RegionHealthSourcesAggregatedListCall { + c := &RegionHealthSourcesAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project - c.region = region - c.instanceGroupManager = instanceGroupManager return c } // Filter sets the optional parameter "filter": A filter expression that -// filters resources listed in the response. Most Compute resources support two -// types of filter expressions: expressions that support regular expressions -// and expressions that follow API improvement proposal AIP-160. These two -// types of filter expressions cannot be mixed in one request. If you want to -// use AIP-160, your expression must specify the field name, an operator, and -// the value that you want to use for filtering. The value must be a string, a -// number, or a boolean. The 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`. The `:*` comparison can be used to test whether a key has -// been defined. For example, to find all objects with `owner` label use: ``` -// labels.owner:* ``` 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) ``` If you want to use a regular -// expression, use the `eq` (equal) or `ne` (not equal) operator against a -// single un-parenthesized expression with or without quotes or against -// multiple parenthesized expressions. Examples: `fieldname eq unquoted -// literal` `fieldname eq 'single quoted literal'` `fieldname eq "double quoted -// literal" `(fieldname1 eq literal) (fieldname2 ne "literal")` The literal -// value is interpreted as a regular expression using Google RE2 library -// syntax. The literal value must match the entire field. For example, to -// filter for instances that do not end with name "instance", you would use -// `name ne .*instance`. You cannot combine constraints on multiple fields -// using regular expressions. -func (c *RegionInstanceGroupManagersListPerInstanceConfigsCall) Filter(filter string) *RegionInstanceGroupManagersListPerInstanceConfigsCall { +// filters resources listed in the response. Most +// Compute resources support two types of filter expressions: +// expressions that support regular expressions and expressions that follow +// API improvement proposal AIP-160. +// These two types of filter expressions cannot be mixed in one request. +// +// If you want to use AIP-160, your expression must specify the field name, +// an +// operator, and the value that you want to use for filtering. The value +// must be a string, a number, or a boolean. The 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`. +// +// The `:*` comparison can be used to test whether a key has been defined. +// For example, to find all objects with `owner` label +// use: +// ``` +// labels.owner:* +// ``` +// +// 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 onresource 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) +// ``` +// +// If you want to use a regular expression, use the `eq` (equal) or `ne` +// (not equal) operator against a single un-parenthesized expression with +// or +// without quotes or against multiple parenthesized expressions. +// Examples: +// +// `fieldname eq unquoted literal` +// `fieldname eq 'single quoted literal'` +// `fieldname eq "double quoted literal" +// `(fieldname1 eq literal) (fieldname2 ne "literal")` +// +// The literal value is interpreted as a regular expression using GoogleRE2 +// library syntax. +// The literal value must match the entire field. +// +// For example, to filter for instances that do not end with name +// "instance", +// you would use `name ne .*instance`. +// +// You cannot combine constraints on multiple fields using regular +// expressions. +func (c *RegionHealthSourcesAggregatedListCall) Filter(filter string) *RegionHealthSourcesAggregatedListCall { c.urlParams_.Set("filter", filter) return c } +// IncludeAllScopes sets the optional parameter "includeAllScopes": Indicates +// whether every visible scope for each scope type (zone, region, +// global) should be included in the response. For new resource types +// added +// after this field, the flag has no effect as new resource types will +// always +// include every visible scope for each scope type in response. For +// resource +// types which predate this field, if this flag is omitted or false, +// only +// scopes of the scope types where the resource type is expected to be +// found +// will be included. +func (c *RegionHealthSourcesAggregatedListCall) IncludeAllScopes(includeAllScopes bool) *RegionHealthSourcesAggregatedListCall { + c.urlParams_.Set("includeAllScopes", fmt.Sprint(includeAllScopes)) + 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 *RegionInstanceGroupManagersListPerInstanceConfigsCall) MaxResults(maxResults int64) *RegionInstanceGroupManagersListPerInstanceConfigsCall { +// 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 *RegionHealthSourcesAggregatedListCall) MaxResults(maxResults int64) *RegionHealthSourcesAggregatedListCall { 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 *RegionInstanceGroupManagersListPerInstanceConfigsCall) OrderBy(orderBy string) *RegionInstanceGroupManagersListPerInstanceConfigsCall { +// 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 *RegionHealthSourcesAggregatedListCall) OrderBy(orderBy string) *RegionHealthSourcesAggregatedListCall { 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 *RegionInstanceGroupManagersListPerInstanceConfigsCall) PageToken(pageToken string) *RegionInstanceGroupManagersListPerInstanceConfigsCall { +// use. Set `pageToken` to the +// `nextPageToken` returned by a previous list request to get +// the next page of results. +func (c *RegionHealthSourcesAggregatedListCall) PageToken(pageToken string) *RegionHealthSourcesAggregatedListCall { c.urlParams_.Set("pageToken", pageToken) return c } // ReturnPartialSuccess sets the optional parameter "returnPartialSuccess": -// Opt-in for partial success behavior which provides partial results in case -// of failure. The default value is false. For example, when partial success -// behavior is enabled, aggregatedList for a single zone scope either returns -// all resources in the zone or no resources, with an error code. -func (c *RegionInstanceGroupManagersListPerInstanceConfigsCall) ReturnPartialSuccess(returnPartialSuccess bool) *RegionInstanceGroupManagersListPerInstanceConfigsCall { +// Opt-in for partial success behavior which provides partial results in +// case +// of failure. The default value is false. +// +// For example, when partial success behavior is enabled, aggregatedList for +// a +// single zone scope either returns all resources in the zone or no +// resources, +// with an error code. +func (c *RegionHealthSourcesAggregatedListCall) ReturnPartialSuccess(returnPartialSuccess bool) *RegionHealthSourcesAggregatedListCall { c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess)) return c } +// ServiceProjectNumber sets the optional parameter "serviceProjectNumber": The +// Shared VPC service project id or service project number for which +// aggregated list request is invoked for subnetworks list-usable api. +func (c *RegionHealthSourcesAggregatedListCall) ServiceProjectNumber(serviceProjectNumber int64) *RegionHealthSourcesAggregatedListCall { + c.urlParams_.Set("serviceProjectNumber", fmt.Sprint(serviceProjectNumber)) + return c +} + // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *RegionInstanceGroupManagersListPerInstanceConfigsCall) Fields(s ...googleapi.Field) *RegionInstanceGroupManagersListPerInstanceConfigsCall { +func (c *RegionHealthSourcesAggregatedListCall) Fields(s ...googleapi.Field) *RegionHealthSourcesAggregatedListCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } +// IfNoneMatch sets an 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. +func (c *RegionHealthSourcesAggregatedListCall) IfNoneMatch(entityTag string) *RegionHealthSourcesAggregatedListCall { + c.ifNoneMatch_ = entityTag + return c +} + // Context sets the context to be used in this call's Do method. -func (c *RegionInstanceGroupManagersListPerInstanceConfigsCall) Context(ctx context.Context) *RegionInstanceGroupManagersListPerInstanceConfigsCall { +func (c *RegionHealthSourcesAggregatedListCall) Context(ctx context.Context) *RegionHealthSourcesAggregatedListCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *RegionInstanceGroupManagersListPerInstanceConfigsCall) Header() http.Header { +func (c *RegionHealthSourcesAggregatedListCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *RegionInstanceGroupManagersListPerInstanceConfigsCall) doRequest(alt string) (*http.Response, error) { +func (c *RegionHealthSourcesAggregatedListCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) - var body io.Reader = nil + if c.ifNoneMatch_ != "" { + reqHeaders.Set("If-None-Match", c.ifNoneMatch_) + } c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/listPerInstanceConfigs") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/aggregated/healthSources") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("POST", urls, body) + req, err := http.NewRequest("GET", urls, nil) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "region": c.region, - "instanceGroupManager": c.instanceGroupManager, + "project": c.project, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.regionHealthSources.aggregatedList", "request", internallog.HTTPRequest(req, nil)) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.regionInstanceGroupManagers.listPerInstanceConfigs" call. +// Do executes the "compute.regionHealthSources.aggregatedList" call. // Any non-2xx status code is an error. Response headers are in either -// *RegionInstanceGroupManagersListInstanceConfigsResp.ServerResponse.Header or -// (if a response was returned at all) in error.(*googleapi.Error).Header. Use +// *HealthSourceAggregatedList.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 *RegionInstanceGroupManagersListPerInstanceConfigsCall) Do(opts ...googleapi.CallOption) (*RegionInstanceGroupManagersListInstanceConfigsResp, error) { +func (c *RegionHealthSourcesAggregatedListCall) Do(opts ...googleapi.CallOption) (*HealthSourceAggregatedList, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -8254,23 +8786,25 @@ func (c *RegionInstanceGroupManagersListPerInstanceConfigsCall) Do(opts ...googl if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } - ret := &RegionInstanceGroupManagersListInstanceConfigsResp{ + ret := &HealthSourceAggregatedList{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.regionHealthSources.aggregatedList", "response", internallog.HTTPResponse(res, b)) return ret, nil } // 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 *RegionInstanceGroupManagersListPerInstanceConfigsCall) Pages(ctx context.Context, f func(*RegionInstanceGroupManagersListInstanceConfigsResp) error) error { +func (c *RegionHealthSourcesAggregatedListCall) Pages(ctx context.Context, f func(*HealthSourceAggregatedList) error) error { c.ctx_ = ctx defer c.PageToken(c.urlParams_.Get("pageToken")) for { @@ -8288,51 +8822,47 @@ func (c *RegionInstanceGroupManagersListPerInstanceConfigsCall) Pages(ctx contex } } -type RegionInstanceGroupManagersPatchCall struct { - s *Service - project string - region string - instanceGroupManager string - instancegroupmanager *InstanceGroupManager - urlParams_ gensupport.URLParams - ctx_ context.Context - header_ http.Header +type RegionHealthSourcesDeleteCall struct { + s *Service + project string + region string + healthSource string + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header } -// Patch: Updates a managed instance group using the information that you -// specify in the request. This operation is marked as DONE when the group is -// patched even if the instances in the group are still in the process of being -// patched. You must separately verify the status of the individual instances -// with the listmanagedinstances method. This method supports PATCH semantics -// and uses the JSON merge patch format and processing rules. If you update -// your group to specify a new template or instance configuration, it's -// possible that your intended specification for each VM in the group is -// different from the current state of that VM. To learn how to apply an -// updated configuration to the VMs in a MIG, see Updating instances in a MIG. +// Delete: Deletes the specified HealthSource in the given region // -// - instanceGroupManager: The name of the instance group manager. +// - healthSource: Name of the HealthSource resource to delete. // - project: Project ID for this request. // - region: Name of the region scoping this request. -func (r *RegionInstanceGroupManagersService) Patch(project string, region string, instanceGroupManager string, instancegroupmanager *InstanceGroupManager) *RegionInstanceGroupManagersPatchCall { - c := &RegionInstanceGroupManagersPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)} +func (r *RegionHealthSourcesService) Delete(project string, region string, healthSource string) *RegionHealthSourcesDeleteCall { + c := &RegionHealthSourcesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project c.region = region - c.instanceGroupManager = instanceGroupManager - c.instancegroupmanager = instancegroupmanager + c.healthSource = healthSource 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 *RegionInstanceGroupManagersPatchCall) RequestId(requestId string) *RegionInstanceGroupManagersPatchCall { +// 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 *RegionHealthSourcesDeleteCall) RequestId(requestId string) *RegionHealthSourcesDeleteCall { c.urlParams_.Set("requestId", requestId) return c } @@ -8340,56 +8870,52 @@ func (c *RegionInstanceGroupManagersPatchCall) RequestId(requestId string) *Regi // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *RegionInstanceGroupManagersPatchCall) Fields(s ...googleapi.Field) *RegionInstanceGroupManagersPatchCall { +func (c *RegionHealthSourcesDeleteCall) Fields(s ...googleapi.Field) *RegionHealthSourcesDeleteCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } // Context sets the context to be used in this call's Do method. -func (c *RegionInstanceGroupManagersPatchCall) Context(ctx context.Context) *RegionInstanceGroupManagersPatchCall { +func (c *RegionHealthSourcesDeleteCall) Context(ctx context.Context) *RegionHealthSourcesDeleteCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *RegionInstanceGroupManagersPatchCall) Header() http.Header { +func (c *RegionHealthSourcesDeleteCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *RegionInstanceGroupManagersPatchCall) doRequest(alt string) (*http.Response, error) { - reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) - var body io.Reader = nil - body, err := googleapi.WithoutDataWrapper.JSONReader(c.instancegroupmanager) - if err != nil { - return nil, err - } +func (c *RegionHealthSourcesDeleteCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/healthSources/{healthSource}") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("PATCH", urls, body) + req, err := http.NewRequest("DELETE", urls, nil) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "region": c.region, - "instanceGroupManager": c.instanceGroupManager, + "project": c.project, + "region": c.region, + "healthSource": c.healthSource, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.regionHealthSources.delete", "request", internallog.HTTPRequest(req, nil)) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.regionInstanceGroupManagers.patch" call. +// Do executes the "compute.regionHealthSources.delete" call. // 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 *RegionInstanceGroupManagersPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) { +func (c *RegionHealthSourcesDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -8415,109 +8941,98 @@ func (c *RegionInstanceGroupManagersPatchCall) Do(opts ...googleapi.CallOption) }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.regionHealthSources.delete", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type RegionInstanceGroupManagersPatchPerInstanceConfigsCall struct { - s *Service - project string - region string - instanceGroupManager string - regioninstancegroupmanagerpatchinstanceconfigreq *RegionInstanceGroupManagerPatchInstanceConfigReq - urlParams_ gensupport.URLParams - ctx_ context.Context - header_ http.Header +type RegionHealthSourcesGetCall struct { + s *Service + project string + region string + healthSource string + urlParams_ gensupport.URLParams + ifNoneMatch_ string + ctx_ context.Context + header_ http.Header } -// PatchPerInstanceConfigs: Inserts or patches per-instance configurations for -// the managed instance group. perInstanceConfig.name serves as a key used to -// distinguish whether to perform insert or patch. +// Get: Returns the specified HealthSource resource in the given region. // -// - instanceGroupManager: The name of the managed instance group. It should -// conform to RFC1035. -// - project: Project ID for this request. -// - region: Name of the region scoping this request, should conform to -// RFC1035. -func (r *RegionInstanceGroupManagersService) PatchPerInstanceConfigs(project string, region string, instanceGroupManager string, regioninstancegroupmanagerpatchinstanceconfigreq *RegionInstanceGroupManagerPatchInstanceConfigReq) *RegionInstanceGroupManagersPatchPerInstanceConfigsCall { - c := &RegionInstanceGroupManagersPatchPerInstanceConfigsCall{s: r.s, urlParams_: make(gensupport.URLParams)} +// - healthSource: Name of the HealthSource resource to return. +// - project: Project ID for this request. +// - region: Name of the region scoping this request. +func (r *RegionHealthSourcesService) Get(project string, region string, healthSource string) *RegionHealthSourcesGetCall { + c := &RegionHealthSourcesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project c.region = region - c.instanceGroupManager = instanceGroupManager - c.regioninstancegroupmanagerpatchinstanceconfigreq = regioninstancegroupmanagerpatchinstanceconfigreq - 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 *RegionInstanceGroupManagersPatchPerInstanceConfigsCall) RequestId(requestId string) *RegionInstanceGroupManagersPatchPerInstanceConfigsCall { - c.urlParams_.Set("requestId", requestId) + c.healthSource = healthSource return c } // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *RegionInstanceGroupManagersPatchPerInstanceConfigsCall) Fields(s ...googleapi.Field) *RegionInstanceGroupManagersPatchPerInstanceConfigsCall { +func (c *RegionHealthSourcesGetCall) Fields(s ...googleapi.Field) *RegionHealthSourcesGetCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } -// Context sets the context to be used in this call's Do method. -func (c *RegionInstanceGroupManagersPatchPerInstanceConfigsCall) Context(ctx context.Context) *RegionInstanceGroupManagersPatchPerInstanceConfigsCall { - c.ctx_ = ctx +// IfNoneMatch sets an 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. +func (c *RegionHealthSourcesGetCall) IfNoneMatch(entityTag string) *RegionHealthSourcesGetCall { + c.ifNoneMatch_ = entityTag + return c +} + +// Context sets the context to be used in this call's Do method. +func (c *RegionHealthSourcesGetCall) Context(ctx context.Context) *RegionHealthSourcesGetCall { + c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *RegionInstanceGroupManagersPatchPerInstanceConfigsCall) Header() http.Header { +func (c *RegionHealthSourcesGetCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *RegionInstanceGroupManagersPatchPerInstanceConfigsCall) doRequest(alt string) (*http.Response, error) { - reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) - var body io.Reader = nil - body, err := googleapi.WithoutDataWrapper.JSONReader(c.regioninstancegroupmanagerpatchinstanceconfigreq) - if err != nil { - return nil, err +func (c *RegionHealthSourcesGetCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) + if c.ifNoneMatch_ != "" { + reqHeaders.Set("If-None-Match", c.ifNoneMatch_) } c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/patchPerInstanceConfigs") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/healthSources/{healthSource}") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("POST", urls, body) + req, err := http.NewRequest("GET", urls, nil) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "region": c.region, - "instanceGroupManager": c.instanceGroupManager, + "project": c.project, + "region": c.region, + "healthSource": c.healthSource, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.regionHealthSources.get", "request", internallog.HTTPRequest(req, nil)) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.regionInstanceGroupManagers.patchPerInstanceConfigs" call. +// Do executes the "compute.regionHealthSources.get" call. // 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 +// *HealthSource.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 *RegionInstanceGroupManagersPatchPerInstanceConfigsCall) Do(opts ...googleapi.CallOption) (*Operation, error) { +func (c *RegionHealthSourcesGetCall) Do(opts ...googleapi.CallOption) (*HealthSource, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -8536,121 +9051,107 @@ func (c *RegionInstanceGroupManagersPatchPerInstanceConfigsCall) Do(opts ...goog if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } - ret := &Operation{ + ret := &HealthSource{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.regionHealthSources.get", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type RegionInstanceGroupManagersRecreateInstancesCall struct { - s *Service - project string - region string - instanceGroupManager string - regioninstancegroupmanagersrecreaterequest *RegionInstanceGroupManagersRecreateRequest - urlParams_ gensupport.URLParams - ctx_ context.Context - header_ http.Header +type RegionHealthSourcesGetHealthCall struct { + s *Service + project string + region string + healthSource string + urlParams_ gensupport.URLParams + ifNoneMatch_ string + ctx_ context.Context + header_ http.Header } -// RecreateInstances: Flags the specified VM instances in the managed instance -// group to be immediately recreated. Each instance is recreated using the -// group's current configuration. This operation is marked as DONE when the -// flag is set even if the instances have not yet been recreated. You must -// separately verify the status of each instance by checking its currentAction -// field; for more information, see Checking the status of managed instances. -// If the group is part of a backend service that has enabled connection -// draining, it can take up to 60 seconds after the connection draining -// duration has elapsed before the VM instance is removed or deleted. You can -// specify a maximum of 1000 instances with this method per request. +// GetHealth: Gets the most recent health check results for this +// regional HealthSource. // -// - instanceGroupManager: Name of the managed instance group. -// - project: Project ID for this request. +// - healthSource: Name of the HealthSource resource to get health for. +// - project: Name of the project scoping this request. // - region: Name of the region scoping this request. -func (r *RegionInstanceGroupManagersService) RecreateInstances(project string, region string, instanceGroupManager string, regioninstancegroupmanagersrecreaterequest *RegionInstanceGroupManagersRecreateRequest) *RegionInstanceGroupManagersRecreateInstancesCall { - c := &RegionInstanceGroupManagersRecreateInstancesCall{s: r.s, urlParams_: make(gensupport.URLParams)} +func (r *RegionHealthSourcesService) GetHealth(project string, region string, healthSource string) *RegionHealthSourcesGetHealthCall { + c := &RegionHealthSourcesGetHealthCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project c.region = region - c.instanceGroupManager = instanceGroupManager - c.regioninstancegroupmanagersrecreaterequest = regioninstancegroupmanagersrecreaterequest - 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 *RegionInstanceGroupManagersRecreateInstancesCall) RequestId(requestId string) *RegionInstanceGroupManagersRecreateInstancesCall { - c.urlParams_.Set("requestId", requestId) + c.healthSource = healthSource return c } // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *RegionInstanceGroupManagersRecreateInstancesCall) Fields(s ...googleapi.Field) *RegionInstanceGroupManagersRecreateInstancesCall { +func (c *RegionHealthSourcesGetHealthCall) Fields(s ...googleapi.Field) *RegionHealthSourcesGetHealthCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } +// IfNoneMatch sets an 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. +func (c *RegionHealthSourcesGetHealthCall) IfNoneMatch(entityTag string) *RegionHealthSourcesGetHealthCall { + c.ifNoneMatch_ = entityTag + return c +} + // Context sets the context to be used in this call's Do method. -func (c *RegionInstanceGroupManagersRecreateInstancesCall) Context(ctx context.Context) *RegionInstanceGroupManagersRecreateInstancesCall { +func (c *RegionHealthSourcesGetHealthCall) Context(ctx context.Context) *RegionHealthSourcesGetHealthCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *RegionInstanceGroupManagersRecreateInstancesCall) Header() http.Header { +func (c *RegionHealthSourcesGetHealthCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *RegionInstanceGroupManagersRecreateInstancesCall) doRequest(alt string) (*http.Response, error) { - reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) - var body io.Reader = nil - body, err := googleapi.WithoutDataWrapper.JSONReader(c.regioninstancegroupmanagersrecreaterequest) - if err != nil { - return nil, err +func (c *RegionHealthSourcesGetHealthCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) + if c.ifNoneMatch_ != "" { + reqHeaders.Set("If-None-Match", c.ifNoneMatch_) } c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/recreateInstances") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/healthSources/{healthSource}/getHealth") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("POST", urls, body) + req, err := http.NewRequest("GET", urls, nil) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "region": c.region, - "instanceGroupManager": c.instanceGroupManager, + "project": c.project, + "region": c.region, + "healthSource": c.healthSource, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.regionHealthSources.getHealth", "request", internallog.HTTPRequest(req, nil)) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.regionInstanceGroupManagers.recreateInstances" call. +// Do executes the "compute.regionHealthSources.getHealth" call. // 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 *RegionInstanceGroupManagersRecreateInstancesCall) Do(opts ...googleapi.CallOption) (*Operation, error) { +// *HealthSourceHealth.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 *RegionHealthSourcesGetHealthCall) Do(opts ...googleapi.CallOption) (*HealthSourceHealth, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -8669,65 +9170,63 @@ func (c *RegionInstanceGroupManagersRecreateInstancesCall) Do(opts ...googleapi. if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } - ret := &Operation{ + ret := &HealthSourceHealth{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.regionHealthSources.getHealth", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type RegionInstanceGroupManagersResizeCall struct { - s *Service - project string - region string - instanceGroupManager string - urlParams_ gensupport.URLParams - ctx_ context.Context - header_ http.Header +type RegionHealthSourcesInsertCall struct { + s *Service + project string + region string + healthsource *HealthSource + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header } -// Resize: Changes the intended size of the managed instance group. If you -// increase the size, the group creates new instances using the current -// instance template. If you decrease the size, the group deletes one or more -// instances. The resize operation is marked DONE if the resize request is -// successful. The underlying actions take additional time. You must separately -// verify the status of the creating or deleting actions with the -// listmanagedinstances method. If the group is part of a backend service that -// has enabled connection draining, it can take up to 60 seconds after the -// connection draining duration has elapsed before the VM instance is removed -// or deleted. +// Insert: Create a HealthSource in the specified project in the given +// region +// using the parameters that are included in the request. // -// - instanceGroupManager: Name of the managed instance group. -// - project: Project ID for this request. -// - region: Name of the region scoping this request. -// - size: Number of instances that should exist in this instance group -// manager. -func (r *RegionInstanceGroupManagersService) Resize(project string, region string, instanceGroupManager string, size int64) *RegionInstanceGroupManagersResizeCall { - c := &RegionInstanceGroupManagersResizeCall{s: r.s, urlParams_: make(gensupport.URLParams)} +// - project: Project ID for this request. +// - region: Name of the region scoping this request. +func (r *RegionHealthSourcesService) Insert(project string, region string, healthsource *HealthSource) *RegionHealthSourcesInsertCall { + c := &RegionHealthSourcesInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project c.region = region - c.instanceGroupManager = instanceGroupManager - c.urlParams_.Set("size", fmt.Sprint(size)) + c.healthsource = healthsource 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 *RegionInstanceGroupManagersResizeCall) RequestId(requestId string) *RegionInstanceGroupManagersResizeCall { +// 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 *RegionHealthSourcesInsertCall) RequestId(requestId string) *RegionHealthSourcesInsertCall { c.urlParams_.Set("requestId", requestId) return c } @@ -8735,32 +9234,35 @@ func (c *RegionInstanceGroupManagersResizeCall) RequestId(requestId string) *Reg // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *RegionInstanceGroupManagersResizeCall) Fields(s ...googleapi.Field) *RegionInstanceGroupManagersResizeCall { +func (c *RegionHealthSourcesInsertCall) Fields(s ...googleapi.Field) *RegionHealthSourcesInsertCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } // Context sets the context to be used in this call's Do method. -func (c *RegionInstanceGroupManagersResizeCall) Context(ctx context.Context) *RegionInstanceGroupManagersResizeCall { +func (c *RegionHealthSourcesInsertCall) Context(ctx context.Context) *RegionHealthSourcesInsertCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *RegionInstanceGroupManagersResizeCall) Header() http.Header { +func (c *RegionHealthSourcesInsertCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *RegionInstanceGroupManagersResizeCall) doRequest(alt string) (*http.Response, error) { - reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) - var body io.Reader = nil +func (c *RegionHealthSourcesInsertCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) + body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.healthsource) + if err != nil { + return nil, err + } c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/resize") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/healthSources") urls += "?" + c.urlParams_.Encode() req, err := http.NewRequest("POST", urls, body) if err != nil { @@ -8768,19 +9270,19 @@ func (c *RegionInstanceGroupManagersResizeCall) doRequest(alt string) (*http.Res } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "region": c.region, - "instanceGroupManager": c.instanceGroupManager, + "project": c.project, + "region": c.region, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.regionHealthSources.insert", "request", internallog.HTTPRequest(req, body.Bytes())) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.regionInstanceGroupManagers.resize" call. +// Do executes the "compute.regionHealthSources.insert" call. // 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 *RegionInstanceGroupManagersResizeCall) Do(opts ...googleapi.CallOption) (*Operation, error) { +func (c *RegionHealthSourcesInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -8806,107 +9308,223 @@ func (c *RegionInstanceGroupManagersResizeCall) Do(opts ...googleapi.CallOption) }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.regionHealthSources.insert", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type RegionInstanceGroupManagersSetInstanceTemplateCall struct { - s *Service - project string - region string - instanceGroupManager string - regioninstancegroupmanagerssettemplaterequest *RegionInstanceGroupManagersSetTemplateRequest - urlParams_ gensupport.URLParams - ctx_ context.Context - header_ http.Header +type RegionHealthSourcesListCall struct { + s *Service + project string + region string + urlParams_ gensupport.URLParams + ifNoneMatch_ string + ctx_ context.Context + header_ http.Header } -// SetInstanceTemplate: Sets the instance template to use when creating new -// instances or recreating instances in this group. Existing instances are not -// affected. +// List: Lists the HealthSources for a project in the given region. // -// - instanceGroupManager: The name of the managed instance group. // - project: Project ID for this request. // - region: Name of the region scoping this request. -func (r *RegionInstanceGroupManagersService) SetInstanceTemplate(project string, region string, instanceGroupManager string, regioninstancegroupmanagerssettemplaterequest *RegionInstanceGroupManagersSetTemplateRequest) *RegionInstanceGroupManagersSetInstanceTemplateCall { - c := &RegionInstanceGroupManagersSetInstanceTemplateCall{s: r.s, urlParams_: make(gensupport.URLParams)} +func (r *RegionHealthSourcesService) List(project string, region string) *RegionHealthSourcesListCall { + c := &RegionHealthSourcesListCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project c.region = region - c.instanceGroupManager = instanceGroupManager - c.regioninstancegroupmanagerssettemplaterequest = regioninstancegroupmanagerssettemplaterequest 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 *RegionInstanceGroupManagersSetInstanceTemplateCall) RequestId(requestId string) *RegionInstanceGroupManagersSetInstanceTemplateCall { - c.urlParams_.Set("requestId", requestId) +// Filter sets the optional parameter "filter": A filter expression that +// filters resources listed in the response. Most +// Compute resources support two types of filter expressions: +// expressions that support regular expressions and expressions that follow +// API improvement proposal AIP-160. +// These two types of filter expressions cannot be mixed in one request. +// +// If you want to use AIP-160, your expression must specify the field name, +// an +// operator, and the value that you want to use for filtering. The value +// must be a string, a number, or a boolean. The 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`. +// +// The `:*` comparison can be used to test whether a key has been defined. +// For example, to find all objects with `owner` label +// use: +// ``` +// labels.owner:* +// ``` +// +// 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 onresource 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) +// ``` +// +// If you want to use a regular expression, use the `eq` (equal) or `ne` +// (not equal) operator against a single un-parenthesized expression with +// or +// without quotes or against multiple parenthesized expressions. +// Examples: +// +// `fieldname eq unquoted literal` +// `fieldname eq 'single quoted literal'` +// `fieldname eq "double quoted literal" +// `(fieldname1 eq literal) (fieldname2 ne "literal")` +// +// The literal value is interpreted as a regular expression using GoogleRE2 +// library syntax. +// The literal value must match the entire field. +// +// For example, to filter for instances that do not end with name +// "instance", +// you would use `name ne .*instance`. +// +// You cannot combine constraints on multiple fields using regular +// expressions. +func (c *RegionHealthSourcesListCall) Filter(filter string) *RegionHealthSourcesListCall { + 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 *RegionHealthSourcesListCall) MaxResults(maxResults int64) *RegionHealthSourcesListCall { + 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 *RegionHealthSourcesListCall) OrderBy(orderBy string) *RegionHealthSourcesListCall { + 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 *RegionHealthSourcesListCall) PageToken(pageToken string) *RegionHealthSourcesListCall { + c.urlParams_.Set("pageToken", pageToken) + return c +} + +// ReturnPartialSuccess sets the optional parameter "returnPartialSuccess": +// Opt-in for partial success behavior which provides partial results in +// case +// of failure. The default value is false. +// +// For example, when partial success behavior is enabled, aggregatedList for +// a +// single zone scope either returns all resources in the zone or no +// resources, +// with an error code. +func (c *RegionHealthSourcesListCall) ReturnPartialSuccess(returnPartialSuccess bool) *RegionHealthSourcesListCall { + c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess)) return c } // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *RegionInstanceGroupManagersSetInstanceTemplateCall) Fields(s ...googleapi.Field) *RegionInstanceGroupManagersSetInstanceTemplateCall { +func (c *RegionHealthSourcesListCall) Fields(s ...googleapi.Field) *RegionHealthSourcesListCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } +// IfNoneMatch sets an 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. +func (c *RegionHealthSourcesListCall) IfNoneMatch(entityTag string) *RegionHealthSourcesListCall { + c.ifNoneMatch_ = entityTag + return c +} + // Context sets the context to be used in this call's Do method. -func (c *RegionInstanceGroupManagersSetInstanceTemplateCall) Context(ctx context.Context) *RegionInstanceGroupManagersSetInstanceTemplateCall { +func (c *RegionHealthSourcesListCall) Context(ctx context.Context) *RegionHealthSourcesListCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *RegionInstanceGroupManagersSetInstanceTemplateCall) Header() http.Header { +func (c *RegionHealthSourcesListCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *RegionInstanceGroupManagersSetInstanceTemplateCall) doRequest(alt string) (*http.Response, error) { - reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) - var body io.Reader = nil - body, err := googleapi.WithoutDataWrapper.JSONReader(c.regioninstancegroupmanagerssettemplaterequest) - if err != nil { - return nil, err +func (c *RegionHealthSourcesListCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) + if c.ifNoneMatch_ != "" { + reqHeaders.Set("If-None-Match", c.ifNoneMatch_) } c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/setInstanceTemplate") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/healthSources") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("POST", urls, body) + req, err := http.NewRequest("GET", urls, nil) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "region": c.region, - "instanceGroupManager": c.instanceGroupManager, + "project": c.project, + "region": c.region, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.regionHealthSources.list", "request", internallog.HTTPRequest(req, nil)) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.regionInstanceGroupManagers.setInstanceTemplate" call. +// Do executes the "compute.regionHealthSources.list" call. // 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 *RegionInstanceGroupManagersSetInstanceTemplateCall) Do(opts ...googleapi.CallOption) (*Operation, error) { +// *HealthSourceList.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 *RegionHealthSourcesListCall) Do(opts ...googleapi.CallOption) (*HealthSourceList, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -8925,56 +9543,89 @@ func (c *RegionInstanceGroupManagersSetInstanceTemplateCall) Do(opts ...googleap if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } - ret := &Operation{ + ret := &HealthSourceList{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.regionHealthSources.list", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type RegionInstanceGroupManagersSetTargetPoolsCall struct { - s *Service - project string - region string - instanceGroupManager string - regioninstancegroupmanagerssettargetpoolsrequest *RegionInstanceGroupManagersSetTargetPoolsRequest - urlParams_ gensupport.URLParams - ctx_ context.Context - header_ http.Header +// 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 *RegionHealthSourcesListCall) Pages(ctx context.Context, f func(*HealthSourceList) error) error { + c.ctx_ = ctx + defer c.PageToken(c.urlParams_.Get("pageToken")) + 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) + } } -// SetTargetPools: Modifies the target pools to which all new instances in this -// group are assigned. Existing instances in the group are not affected. +type RegionHealthSourcesPatchCall struct { + s *Service + project string + region string + healthSource string + healthsource *HealthSource + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header +} + +// Patch: Updates the specified regional HealthSource resource +// with the data included in the request. This method supportsPATCH +// semantics and uses theJSON merge +// patch format and processing rules. // -// - instanceGroupManager: Name of the managed instance group. -// - project: Project ID for this request. -// - region: Name of the region scoping this request. -func (r *RegionInstanceGroupManagersService) SetTargetPools(project string, region string, instanceGroupManager string, regioninstancegroupmanagerssettargetpoolsrequest *RegionInstanceGroupManagersSetTargetPoolsRequest) *RegionInstanceGroupManagersSetTargetPoolsCall { - c := &RegionInstanceGroupManagersSetTargetPoolsCall{s: r.s, urlParams_: make(gensupport.URLParams)} +// - healthSource: Name of the HealthSource to update. The name +// must be 1-63 characters long, and comply with RFC1035. +// - project: Project ID for this request. +// - region: Name of the region scoping this request. +func (r *RegionHealthSourcesService) Patch(project string, region string, healthSource string, healthsource *HealthSource) *RegionHealthSourcesPatchCall { + c := &RegionHealthSourcesPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project c.region = region - c.instanceGroupManager = instanceGroupManager - c.regioninstancegroupmanagerssettargetpoolsrequest = regioninstancegroupmanagerssettargetpoolsrequest + c.healthSource = healthSource + c.healthsource = healthsource 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 *RegionInstanceGroupManagersSetTargetPoolsCall) RequestId(requestId string) *RegionInstanceGroupManagersSetTargetPoolsCall { +// 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 *RegionHealthSourcesPatchCall) RequestId(requestId string) *RegionHealthSourcesPatchCall { c.urlParams_.Set("requestId", requestId) return c } @@ -8982,56 +9633,56 @@ func (c *RegionInstanceGroupManagersSetTargetPoolsCall) RequestId(requestId stri // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *RegionInstanceGroupManagersSetTargetPoolsCall) Fields(s ...googleapi.Field) *RegionInstanceGroupManagersSetTargetPoolsCall { +func (c *RegionHealthSourcesPatchCall) Fields(s ...googleapi.Field) *RegionHealthSourcesPatchCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } // Context sets the context to be used in this call's Do method. -func (c *RegionInstanceGroupManagersSetTargetPoolsCall) Context(ctx context.Context) *RegionInstanceGroupManagersSetTargetPoolsCall { +func (c *RegionHealthSourcesPatchCall) Context(ctx context.Context) *RegionHealthSourcesPatchCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *RegionInstanceGroupManagersSetTargetPoolsCall) Header() http.Header { +func (c *RegionHealthSourcesPatchCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *RegionInstanceGroupManagersSetTargetPoolsCall) doRequest(alt string) (*http.Response, error) { +func (c *RegionHealthSourcesPatchCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) - var body io.Reader = nil - body, err := googleapi.WithoutDataWrapper.JSONReader(c.regioninstancegroupmanagerssettargetpoolsrequest) + body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.healthsource) if err != nil { return nil, err } c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/setTargetPools") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/healthSources/{healthSource}") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("POST", urls, body) + req, err := http.NewRequest("PATCH", urls, body) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "region": c.region, - "instanceGroupManager": c.instanceGroupManager, + "project": c.project, + "region": c.region, + "healthSource": c.healthSource, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.regionHealthSources.patch", "request", internallog.HTTPRequest(req, body.Bytes())) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.regionInstanceGroupManagers.setTargetPools" call. +// Do executes the "compute.regionHealthSources.patch" call. // 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 *RegionInstanceGroupManagersSetTargetPoolsCall) Do(opts ...googleapi.CallOption) (*Operation, error) { +func (c *RegionHealthSourcesPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -9057,89 +9708,72 @@ func (c *RegionInstanceGroupManagersSetTargetPoolsCall) Do(opts ...googleapi.Cal }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.regionHealthSources.patch", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type RegionInstanceGroupManagersUpdatePerInstanceConfigsCall struct { - s *Service - project string - region string - instanceGroupManager string - regioninstancegroupmanagerupdateinstanceconfigreq *RegionInstanceGroupManagerUpdateInstanceConfigReq - urlParams_ gensupport.URLParams - ctx_ context.Context - header_ http.Header +type RegionHealthSourcesTestIamPermissionsCall struct { + s *Service + project string + region string + resource string + testpermissionsrequest *TestPermissionsRequest + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header } -// UpdatePerInstanceConfigs: Inserts or updates per-instance configurations for -// the managed instance group. perInstanceConfig.name serves as a key used to -// distinguish whether to perform insert or patch. +// TestIamPermissions: Returns permissions that a caller has on the specified +// resource. // -// - instanceGroupManager: The name of the managed instance group. It should -// conform to RFC1035. -// - project: Project ID for this request. -// - region: Name of the region scoping this request, should conform to -// RFC1035. -func (r *RegionInstanceGroupManagersService) UpdatePerInstanceConfigs(project string, region string, instanceGroupManager string, regioninstancegroupmanagerupdateinstanceconfigreq *RegionInstanceGroupManagerUpdateInstanceConfigReq) *RegionInstanceGroupManagersUpdatePerInstanceConfigsCall { - c := &RegionInstanceGroupManagersUpdatePerInstanceConfigsCall{s: r.s, urlParams_: make(gensupport.URLParams)} +// - project: Project ID for this request. +// - region: The name of the region for this request. +// - resource: Name or id of the resource for this request. +func (r *RegionHealthSourcesService) TestIamPermissions(project string, region string, resource string, testpermissionsrequest *TestPermissionsRequest) *RegionHealthSourcesTestIamPermissionsCall { + c := &RegionHealthSourcesTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project c.region = region - c.instanceGroupManager = instanceGroupManager - c.regioninstancegroupmanagerupdateinstanceconfigreq = regioninstancegroupmanagerupdateinstanceconfigreq - 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 *RegionInstanceGroupManagersUpdatePerInstanceConfigsCall) RequestId(requestId string) *RegionInstanceGroupManagersUpdatePerInstanceConfigsCall { - c.urlParams_.Set("requestId", requestId) + c.resource = resource + c.testpermissionsrequest = testpermissionsrequest return c } // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *RegionInstanceGroupManagersUpdatePerInstanceConfigsCall) Fields(s ...googleapi.Field) *RegionInstanceGroupManagersUpdatePerInstanceConfigsCall { +func (c *RegionHealthSourcesTestIamPermissionsCall) Fields(s ...googleapi.Field) *RegionHealthSourcesTestIamPermissionsCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } // Context sets the context to be used in this call's Do method. -func (c *RegionInstanceGroupManagersUpdatePerInstanceConfigsCall) Context(ctx context.Context) *RegionInstanceGroupManagersUpdatePerInstanceConfigsCall { +func (c *RegionHealthSourcesTestIamPermissionsCall) Context(ctx context.Context) *RegionHealthSourcesTestIamPermissionsCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *RegionInstanceGroupManagersUpdatePerInstanceConfigsCall) Header() http.Header { +func (c *RegionHealthSourcesTestIamPermissionsCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *RegionInstanceGroupManagersUpdatePerInstanceConfigsCall) doRequest(alt string) (*http.Response, error) { +func (c *RegionHealthSourcesTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) - var body io.Reader = nil - body, err := googleapi.WithoutDataWrapper.JSONReader(c.regioninstancegroupmanagerupdateinstanceconfigreq) + body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.testpermissionsrequest) if err != nil { return nil, err } c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/updatePerInstanceConfigs") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/healthSources/{resource}/testIamPermissions") urls += "?" + c.urlParams_.Encode() req, err := http.NewRequest("POST", urls, body) if err != nil { @@ -9147,19 +9781,21 @@ func (c *RegionInstanceGroupManagersUpdatePerInstanceConfigsCall) doRequest(alt } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "region": c.region, - "instanceGroupManager": c.instanceGroupManager, + "project": c.project, + "region": c.region, + "resource": c.resource, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.regionHealthSources.testIamPermissions", "request", internallog.HTTPRequest(req, body.Bytes())) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.regionInstanceGroupManagers.updatePerInstanceConfigs" call. +// Do executes the "compute.regionHealthSources.testIamPermissions" call. // 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 *RegionInstanceGroupManagersUpdatePerInstanceConfigsCall) Do(opts ...googleapi.CallOption) (*Operation, error) { +// *TestPermissionsResponse.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 *RegionHealthSourcesTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -9178,103 +9814,127 @@ func (c *RegionInstanceGroupManagersUpdatePerInstanceConfigsCall) Do(opts ...goo if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } - ret := &Operation{ + ret := &TestPermissionsResponse{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.regionHealthSources.testIamPermissions", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type RegionInstanceGroupsGetCall struct { - s *Service - project string - region string - instanceGroup string - urlParams_ gensupport.URLParams - ifNoneMatch_ string - ctx_ context.Context - header_ http.Header +type RegionInstanceGroupManagerResizeRequestsCancelCall struct { + s *Service + project string + region string + instanceGroupManager string + resizeRequest string + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header } -// Get: Returns the specified instance group resource. +// Cancel: Cancels the specified resize request. +// Cancelled resize request no longer waits for the resources to +// be +// provisioned. Cancel is only possible for requests that are in +// accepted +// state. // -// - instanceGroup: Name of the instance group resource to return. -// - project: Project ID for this request. -// - region: Name of the region scoping this request. -func (r *RegionInstanceGroupsService) Get(project string, region string, instanceGroup string) *RegionInstanceGroupsGetCall { - c := &RegionInstanceGroupsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)} +// - instanceGroupManager: The name of the managed instance group. +// Name should conform to RFC1035 or be a resource ID. +// - project: Project ID for this request. +// - region: The name of the region +// scoping this request. Name should conform to RFC1035. +// - resizeRequest: The name of the resize request to cancel. +// Name should conform to RFC1035 or be a resource ID. +func (r *RegionInstanceGroupManagerResizeRequestsService) Cancel(project string, region string, instanceGroupManager string, resizeRequest string) *RegionInstanceGroupManagerResizeRequestsCancelCall { + c := &RegionInstanceGroupManagerResizeRequestsCancelCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project c.region = region - c.instanceGroup = instanceGroup + c.instanceGroupManager = instanceGroupManager + c.resizeRequest = resizeRequest + 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 *RegionInstanceGroupManagerResizeRequestsCancelCall) RequestId(requestId string) *RegionInstanceGroupManagerResizeRequestsCancelCall { + 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 // details. -func (c *RegionInstanceGroupsGetCall) Fields(s ...googleapi.Field) *RegionInstanceGroupsGetCall { +func (c *RegionInstanceGroupManagerResizeRequestsCancelCall) Fields(s ...googleapi.Field) *RegionInstanceGroupManagerResizeRequestsCancelCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } -// IfNoneMatch sets an 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. -func (c *RegionInstanceGroupsGetCall) IfNoneMatch(entityTag string) *RegionInstanceGroupsGetCall { - c.ifNoneMatch_ = entityTag - return c -} - // Context sets the context to be used in this call's Do method. -func (c *RegionInstanceGroupsGetCall) Context(ctx context.Context) *RegionInstanceGroupsGetCall { +func (c *RegionInstanceGroupManagerResizeRequestsCancelCall) Context(ctx context.Context) *RegionInstanceGroupManagerResizeRequestsCancelCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *RegionInstanceGroupsGetCall) Header() http.Header { +func (c *RegionInstanceGroupManagerResizeRequestsCancelCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *RegionInstanceGroupsGetCall) doRequest(alt string) (*http.Response, error) { +func (c *RegionInstanceGroupManagerResizeRequestsCancelCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) - if c.ifNoneMatch_ != "" { - reqHeaders.Set("If-None-Match", c.ifNoneMatch_) - } - var body io.Reader = nil c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/instanceGroups/{instanceGroup}") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/resizeRequests/{resizeRequest}/cancel") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("GET", urls, body) + req, err := http.NewRequest("POST", urls, nil) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "region": c.region, - "instanceGroup": c.instanceGroup, + "project": c.project, + "region": c.region, + "instanceGroupManager": c.instanceGroupManager, + "resizeRequest": c.resizeRequest, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.regionInstanceGroupManagerResizeRequests.cancel", "request", internallog.HTTPRequest(req, nil)) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.regionInstanceGroups.get" call. +// Do executes the "compute.regionInstanceGroupManagerResizeRequests.cancel" call. // Any non-2xx status code is an error. Response headers are in either -// *InstanceGroup.ServerResponse.Header or (if a response was returned at all) -// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check +// *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 *RegionInstanceGroupsGetCall) Do(opts ...googleapi.CallOption) (*InstanceGroup, error) { +func (c *RegionInstanceGroupManagerResizeRequestsCancelCall) Do(opts ...googleapi.CallOption) (*Operation, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -9293,179 +9953,126 @@ func (c *RegionInstanceGroupsGetCall) Do(opts ...googleapi.CallOption) (*Instanc if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } - ret := &InstanceGroup{ + ret := &Operation{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.regionInstanceGroupManagerResizeRequests.cancel", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type RegionInstanceGroupsListCall struct { - s *Service - project string - region string - urlParams_ gensupport.URLParams - ifNoneMatch_ string - ctx_ context.Context - header_ http.Header +type RegionInstanceGroupManagerResizeRequestsDeleteCall struct { + s *Service + project string + region string + instanceGroupManager string + resizeRequest string + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header } -// List: Retrieves the list of instance group resources contained within the -// specified region. +// Delete: Deletes the specified, inactive resize request. Requests that are +// still +// active cannot be deleted. Deleting request does not delete instances +// that +// were provisioned previously. // -// - project: Project ID for this request. -// - region: Name of the region scoping this request. -func (r *RegionInstanceGroupsService) List(project string, region string) *RegionInstanceGroupsListCall { - c := &RegionInstanceGroupsListCall{s: r.s, urlParams_: make(gensupport.URLParams)} +// - instanceGroupManager: The name of the managed instance group. +// Name should conform to RFC1035 or be a resource ID. +// - project: Project ID for this request. +// - region: The name of the region +// scoping this request. Name should conform to RFC1035. +// - resizeRequest: The name of the resize request to delete. +// Name should conform to RFC1035 or be a resource ID. +func (r *RegionInstanceGroupManagerResizeRequestsService) Delete(project string, region string, instanceGroupManager string, resizeRequest string) *RegionInstanceGroupManagerResizeRequestsDeleteCall { + c := &RegionInstanceGroupManagerResizeRequestsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project c.region = region + c.instanceGroupManager = instanceGroupManager + c.resizeRequest = resizeRequest return c } -// Filter sets the optional parameter "filter": A filter expression that -// filters resources listed in the response. Most Compute resources support two -// types of filter expressions: expressions that support regular expressions -// and expressions that follow API improvement proposal AIP-160. These two -// types of filter expressions cannot be mixed in one request. If you want to -// use AIP-160, your expression must specify the field name, an operator, and -// the value that you want to use for filtering. The value must be a string, a -// number, or a boolean. The 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`. The `:*` comparison can be used to test whether a key has -// been defined. For example, to find all objects with `owner` label use: ``` -// labels.owner:* ``` 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) ``` If you want to use a regular -// expression, use the `eq` (equal) or `ne` (not equal) operator against a -// single un-parenthesized expression with or without quotes or against -// multiple parenthesized expressions. Examples: `fieldname eq unquoted -// literal` `fieldname eq 'single quoted literal'` `fieldname eq "double quoted -// literal" `(fieldname1 eq literal) (fieldname2 ne "literal")` The literal -// value is interpreted as a regular expression using Google RE2 library -// syntax. The literal value must match the entire field. For example, to -// filter for instances that do not end with name "instance", you would use -// `name ne .*instance`. You cannot combine constraints on multiple fields -// using regular expressions. -func (c *RegionInstanceGroupsListCall) Filter(filter string) *RegionInstanceGroupsListCall { - 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 *RegionInstanceGroupsListCall) MaxResults(maxResults int64) *RegionInstanceGroupsListCall { - 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 *RegionInstanceGroupsListCall) OrderBy(orderBy string) *RegionInstanceGroupsListCall { - 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 *RegionInstanceGroupsListCall) PageToken(pageToken string) *RegionInstanceGroupsListCall { - c.urlParams_.Set("pageToken", pageToken) - return c -} - -// ReturnPartialSuccess sets the optional parameter "returnPartialSuccess": -// Opt-in for partial success behavior which provides partial results in case -// of failure. The default value is false. For example, when partial success -// behavior is enabled, aggregatedList for a single zone scope either returns -// all resources in the zone or no resources, with an error code. -func (c *RegionInstanceGroupsListCall) ReturnPartialSuccess(returnPartialSuccess bool) *RegionInstanceGroupsListCall { - c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess)) +// 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 *RegionInstanceGroupManagerResizeRequestsDeleteCall) RequestId(requestId string) *RegionInstanceGroupManagerResizeRequestsDeleteCall { + 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 // details. -func (c *RegionInstanceGroupsListCall) Fields(s ...googleapi.Field) *RegionInstanceGroupsListCall { +func (c *RegionInstanceGroupManagerResizeRequestsDeleteCall) Fields(s ...googleapi.Field) *RegionInstanceGroupManagerResizeRequestsDeleteCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } -// IfNoneMatch sets an 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. -func (c *RegionInstanceGroupsListCall) IfNoneMatch(entityTag string) *RegionInstanceGroupsListCall { - c.ifNoneMatch_ = entityTag - return c -} - // Context sets the context to be used in this call's Do method. -func (c *RegionInstanceGroupsListCall) Context(ctx context.Context) *RegionInstanceGroupsListCall { +func (c *RegionInstanceGroupManagerResizeRequestsDeleteCall) Context(ctx context.Context) *RegionInstanceGroupManagerResizeRequestsDeleteCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *RegionInstanceGroupsListCall) Header() http.Header { +func (c *RegionInstanceGroupManagerResizeRequestsDeleteCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *RegionInstanceGroupsListCall) doRequest(alt string) (*http.Response, error) { +func (c *RegionInstanceGroupManagerResizeRequestsDeleteCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) - if c.ifNoneMatch_ != "" { - reqHeaders.Set("If-None-Match", c.ifNoneMatch_) - } - var body io.Reader = nil c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/instanceGroups") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/resizeRequests/{resizeRequest}") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("GET", urls, body) + req, err := http.NewRequest("DELETE", urls, nil) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "region": c.region, + "project": c.project, + "region": c.region, + "instanceGroupManager": c.instanceGroupManager, + "resizeRequest": c.resizeRequest, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.regionInstanceGroupManagerResizeRequests.delete", "request", internallog.HTTPRequest(req, nil)) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.regionInstanceGroups.list" call. +// Do executes the "compute.regionInstanceGroupManagerResizeRequests.delete" call. // Any non-2xx status code is an error. Response headers are in either -// *RegionInstanceGroupList.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 *RegionInstanceGroupsListCall) Do(opts ...googleapi.CallOption) (*RegionInstanceGroupList, error) { +// *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 *RegionInstanceGroupManagerResizeRequestsDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -9484,201 +10091,113 @@ func (c *RegionInstanceGroupsListCall) Do(opts ...googleapi.CallOption) (*Region if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } - ret := &RegionInstanceGroupList{ + ret := &Operation{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.regionInstanceGroupManagerResizeRequests.delete", "response", internallog.HTTPResponse(res, b)) return ret, nil } -// 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 *RegionInstanceGroupsListCall) Pages(ctx context.Context, f func(*RegionInstanceGroupList) error) error { - c.ctx_ = ctx - defer c.PageToken(c.urlParams_.Get("pageToken")) - 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) - } -} - -type RegionInstanceGroupsListInstancesCall struct { - s *Service - project string - region string - instanceGroup string - regioninstancegroupslistinstancesrequest *RegionInstanceGroupsListInstancesRequest - urlParams_ gensupport.URLParams - ctx_ context.Context - header_ http.Header +type RegionInstanceGroupManagerResizeRequestsGetCall struct { + s *Service + project string + region string + instanceGroupManager string + resizeRequest string + urlParams_ gensupport.URLParams + ifNoneMatch_ string + ctx_ context.Context + header_ http.Header } -// ListInstances: Lists the instances in the specified instance group and -// displays information about the named ports. Depending on the specified -// options, this method can list all instances or only the instances that are -// running. The orderBy query parameter is not supported. +// Get: Returns all of the details about the specified resize request. // -// - instanceGroup: Name of the regional instance group for which we want to -// list the instances. +// - instanceGroupManager: The name of the managed instance group. +// Name should conform to RFC1035 or be a resource ID. // - project: Project ID for this request. -// - region: Name of the region scoping this request. -func (r *RegionInstanceGroupsService) ListInstances(project string, region string, instanceGroup string, regioninstancegroupslistinstancesrequest *RegionInstanceGroupsListInstancesRequest) *RegionInstanceGroupsListInstancesCall { - c := &RegionInstanceGroupsListInstancesCall{s: r.s, urlParams_: make(gensupport.URLParams)} +// - region: The name of the region +// scoping this request. Name should conform to RFC1035. +// - resizeRequest: The name of the resize request. +// Name should conform to RFC1035 or be a resource ID. +func (r *RegionInstanceGroupManagerResizeRequestsService) Get(project string, region string, instanceGroupManager string, resizeRequest string) *RegionInstanceGroupManagerResizeRequestsGetCall { + c := &RegionInstanceGroupManagerResizeRequestsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project c.region = region - c.instanceGroup = instanceGroup - c.regioninstancegroupslistinstancesrequest = regioninstancegroupslistinstancesrequest - return c -} - -// Filter sets the optional parameter "filter": A filter expression that -// filters resources listed in the response. Most Compute resources support two -// types of filter expressions: expressions that support regular expressions -// and expressions that follow API improvement proposal AIP-160. These two -// types of filter expressions cannot be mixed in one request. If you want to -// use AIP-160, your expression must specify the field name, an operator, and -// the value that you want to use for filtering. The value must be a string, a -// number, or a boolean. The 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`. The `:*` comparison can be used to test whether a key has -// been defined. For example, to find all objects with `owner` label use: ``` -// labels.owner:* ``` 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) ``` If you want to use a regular -// expression, use the `eq` (equal) or `ne` (not equal) operator against a -// single un-parenthesized expression with or without quotes or against -// multiple parenthesized expressions. Examples: `fieldname eq unquoted -// literal` `fieldname eq 'single quoted literal'` `fieldname eq "double quoted -// literal" `(fieldname1 eq literal) (fieldname2 ne "literal")` The literal -// value is interpreted as a regular expression using Google RE2 library -// syntax. The literal value must match the entire field. For example, to -// filter for instances that do not end with name "instance", you would use -// `name ne .*instance`. You cannot combine constraints on multiple fields -// using regular expressions. -func (c *RegionInstanceGroupsListInstancesCall) Filter(filter string) *RegionInstanceGroupsListInstancesCall { - 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 *RegionInstanceGroupsListInstancesCall) MaxResults(maxResults int64) *RegionInstanceGroupsListInstancesCall { - 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 *RegionInstanceGroupsListInstancesCall) OrderBy(orderBy string) *RegionInstanceGroupsListInstancesCall { - 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 *RegionInstanceGroupsListInstancesCall) PageToken(pageToken string) *RegionInstanceGroupsListInstancesCall { - c.urlParams_.Set("pageToken", pageToken) - return c -} - -// ReturnPartialSuccess sets the optional parameter "returnPartialSuccess": -// Opt-in for partial success behavior which provides partial results in case -// of failure. The default value is false. For example, when partial success -// behavior is enabled, aggregatedList for a single zone scope either returns -// all resources in the zone or no resources, with an error code. -func (c *RegionInstanceGroupsListInstancesCall) ReturnPartialSuccess(returnPartialSuccess bool) *RegionInstanceGroupsListInstancesCall { - c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess)) + c.instanceGroupManager = instanceGroupManager + c.resizeRequest = resizeRequest return c } // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *RegionInstanceGroupsListInstancesCall) Fields(s ...googleapi.Field) *RegionInstanceGroupsListInstancesCall { +func (c *RegionInstanceGroupManagerResizeRequestsGetCall) Fields(s ...googleapi.Field) *RegionInstanceGroupManagerResizeRequestsGetCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } +// IfNoneMatch sets an 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. +func (c *RegionInstanceGroupManagerResizeRequestsGetCall) IfNoneMatch(entityTag string) *RegionInstanceGroupManagerResizeRequestsGetCall { + c.ifNoneMatch_ = entityTag + return c +} + // Context sets the context to be used in this call's Do method. -func (c *RegionInstanceGroupsListInstancesCall) Context(ctx context.Context) *RegionInstanceGroupsListInstancesCall { +func (c *RegionInstanceGroupManagerResizeRequestsGetCall) Context(ctx context.Context) *RegionInstanceGroupManagerResizeRequestsGetCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *RegionInstanceGroupsListInstancesCall) Header() http.Header { +func (c *RegionInstanceGroupManagerResizeRequestsGetCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *RegionInstanceGroupsListInstancesCall) doRequest(alt string) (*http.Response, error) { - reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) - var body io.Reader = nil - body, err := googleapi.WithoutDataWrapper.JSONReader(c.regioninstancegroupslistinstancesrequest) - if err != nil { - return nil, err +func (c *RegionInstanceGroupManagerResizeRequestsGetCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) + if c.ifNoneMatch_ != "" { + reqHeaders.Set("If-None-Match", c.ifNoneMatch_) } c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/instanceGroups/{instanceGroup}/listInstances") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/resizeRequests/{resizeRequest}") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("POST", urls, body) + req, err := http.NewRequest("GET", urls, nil) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "region": c.region, - "instanceGroup": c.instanceGroup, + "project": c.project, + "region": c.region, + "instanceGroupManager": c.instanceGroupManager, + "resizeRequest": c.resizeRequest, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.regionInstanceGroupManagerResizeRequests.get", "request", internallog.HTTPRequest(req, nil)) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.regionInstanceGroups.listInstances" call. +// Do executes the "compute.regionInstanceGroupManagerResizeRequests.get" call. // Any non-2xx status code is an error. Response headers are in either -// *RegionInstanceGroupsListInstances.ServerResponse.Header or (if a response +// *InstanceGroupManagerResizeRequest.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 *RegionInstanceGroupsListInstancesCall) Do(opts ...googleapi.CallOption) (*RegionInstanceGroupsListInstances, error) { +func (c *RegionInstanceGroupManagerResizeRequestsGetCall) Do(opts ...googleapi.CallOption) (*InstanceGroupManagerResizeRequest, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -9697,78 +10216,69 @@ func (c *RegionInstanceGroupsListInstancesCall) Do(opts ...googleapi.CallOption) if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } - ret := &RegionInstanceGroupsListInstances{ + ret := &InstanceGroupManagerResizeRequest{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.regionInstanceGroupManagerResizeRequests.get", "response", internallog.HTTPResponse(res, b)) return ret, nil } -// 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 *RegionInstanceGroupsListInstancesCall) Pages(ctx context.Context, f func(*RegionInstanceGroupsListInstances) error) error { - c.ctx_ = ctx - defer c.PageToken(c.urlParams_.Get("pageToken")) - 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) - } -} - -type RegionInstanceGroupsSetNamedPortsCall struct { - s *Service - project string - region string - instanceGroup string - regioninstancegroupssetnamedportsrequest *RegionInstanceGroupsSetNamedPortsRequest - urlParams_ gensupport.URLParams - ctx_ context.Context - header_ http.Header +type RegionInstanceGroupManagerResizeRequestsInsertCall struct { + s *Service + project string + region string + instanceGroupManager string + instancegroupmanagerresizerequest *InstanceGroupManagerResizeRequest + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header } -// SetNamedPorts: Sets the named ports for the specified regional instance -// group. +// Insert: Creates a new Resize Request that starts provisioning VMs +// immediately +// or queues VM creation. // -// - instanceGroup: The name of the regional instance group where the named -// ports are updated. +// - instanceGroupManager: Name of the managed instance group to which the +// resize request is scoped. +// Name should conform to RFC1035 or be a resource ID. // - project: Project ID for this request. -// - region: Name of the region scoping this request. -func (r *RegionInstanceGroupsService) SetNamedPorts(project string, region string, instanceGroup string, regioninstancegroupssetnamedportsrequest *RegionInstanceGroupsSetNamedPortsRequest) *RegionInstanceGroupsSetNamedPortsCall { - c := &RegionInstanceGroupsSetNamedPortsCall{s: r.s, urlParams_: make(gensupport.URLParams)} +// - region: Name of the region +// scoping this request. Name should conform to RFC1035. +func (r *RegionInstanceGroupManagerResizeRequestsService) Insert(project string, region string, instanceGroupManager string, instancegroupmanagerresizerequest *InstanceGroupManagerResizeRequest) *RegionInstanceGroupManagerResizeRequestsInsertCall { + c := &RegionInstanceGroupManagerResizeRequestsInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project c.region = region - c.instanceGroup = instanceGroup - c.regioninstancegroupssetnamedportsrequest = regioninstancegroupssetnamedportsrequest + c.instanceGroupManager = instanceGroupManager + c.instancegroupmanagerresizerequest = instancegroupmanagerresizerequest 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 *RegionInstanceGroupsSetNamedPortsCall) RequestId(requestId string) *RegionInstanceGroupsSetNamedPortsCall { +// 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 *RegionInstanceGroupManagerResizeRequestsInsertCall) RequestId(requestId string) *RegionInstanceGroupManagerResizeRequestsInsertCall { c.urlParams_.Set("requestId", requestId) return c } @@ -9776,36 +10286,35 @@ func (c *RegionInstanceGroupsSetNamedPortsCall) RequestId(requestId string) *Reg // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *RegionInstanceGroupsSetNamedPortsCall) Fields(s ...googleapi.Field) *RegionInstanceGroupsSetNamedPortsCall { +func (c *RegionInstanceGroupManagerResizeRequestsInsertCall) Fields(s ...googleapi.Field) *RegionInstanceGroupManagerResizeRequestsInsertCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } // Context sets the context to be used in this call's Do method. -func (c *RegionInstanceGroupsSetNamedPortsCall) Context(ctx context.Context) *RegionInstanceGroupsSetNamedPortsCall { +func (c *RegionInstanceGroupManagerResizeRequestsInsertCall) Context(ctx context.Context) *RegionInstanceGroupManagerResizeRequestsInsertCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *RegionInstanceGroupsSetNamedPortsCall) Header() http.Header { +func (c *RegionInstanceGroupManagerResizeRequestsInsertCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *RegionInstanceGroupsSetNamedPortsCall) doRequest(alt string) (*http.Response, error) { +func (c *RegionInstanceGroupManagerResizeRequestsInsertCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) - var body io.Reader = nil - body, err := googleapi.WithoutDataWrapper.JSONReader(c.regioninstancegroupssetnamedportsrequest) + body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.instancegroupmanagerresizerequest) if err != nil { return nil, err } c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/instanceGroups/{instanceGroup}/setNamedPorts") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/resizeRequests") urls += "?" + c.urlParams_.Encode() req, err := http.NewRequest("POST", urls, body) if err != nil { @@ -9813,19 +10322,20 @@ func (c *RegionInstanceGroupsSetNamedPortsCall) doRequest(alt string) (*http.Res } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "region": c.region, - "instanceGroup": c.instanceGroup, + "project": c.project, + "region": c.region, + "instanceGroupManager": c.instanceGroupManager, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.regionInstanceGroupManagerResizeRequests.insert", "request", internallog.HTTPRequest(req, body.Bytes())) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.regionInstanceGroups.setNamedPorts" call. +// Do executes the "compute.regionInstanceGroupManagerResizeRequests.insert" call. // 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 *RegionInstanceGroupsSetNamedPortsCall) Do(opts ...googleapi.CallOption) (*Operation, error) { +func (c *RegionInstanceGroupManagerResizeRequestsInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -9851,100 +10361,230 @@ func (c *RegionInstanceGroupsSetNamedPortsCall) Do(opts ...googleapi.CallOption) }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.regionInstanceGroupManagerResizeRequests.insert", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type RegionInstanceTemplatesDeleteCall struct { - s *Service - project string - region string - instanceTemplate string - urlParams_ gensupport.URLParams - ctx_ context.Context - header_ http.Header +type RegionInstanceGroupManagerResizeRequestsListCall struct { + s *Service + project string + region string + instanceGroupManager string + urlParams_ gensupport.URLParams + ifNoneMatch_ string + ctx_ context.Context + header_ http.Header } -// Delete: Deletes the specified instance template. Deleting an instance -// template is permanent and cannot be undone. +// List: Retrieves a list of Resize Requests that are contained in the +// managed instance group. // -// - instanceTemplate: The name of the instance template to delete. -// - project: Project ID for this request. -// - region: The name of the region for this request. -func (r *RegionInstanceTemplatesService) Delete(project string, region string, instanceTemplate string) *RegionInstanceTemplatesDeleteCall { - c := &RegionInstanceTemplatesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)} +// - instanceGroupManager: The name of the managed instance group. The name +// should conform to RFC1035. +// - project: Project ID for this request. +// - region: Name of the region +// scoping this request. Name should conform to RFC1035. +func (r *RegionInstanceGroupManagerResizeRequestsService) List(project string, region string, instanceGroupManager string) *RegionInstanceGroupManagerResizeRequestsListCall { + c := &RegionInstanceGroupManagerResizeRequestsListCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project c.region = region - c.instanceTemplate = instanceTemplate + c.instanceGroupManager = instanceGroupManager 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 *RegionInstanceTemplatesDeleteCall) RequestId(requestId string) *RegionInstanceTemplatesDeleteCall { - c.urlParams_.Set("requestId", requestId) +// Filter sets the optional parameter "filter": A filter expression that +// filters resources listed in the response. Most +// Compute resources support two types of filter expressions: +// expressions that support regular expressions and expressions that follow +// API improvement proposal AIP-160. +// These two types of filter expressions cannot be mixed in one request. +// +// If you want to use AIP-160, your expression must specify the field name, +// an +// operator, and the value that you want to use for filtering. The value +// must be a string, a number, or a boolean. The 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`. +// +// The `:*` comparison can be used to test whether a key has been defined. +// For example, to find all objects with `owner` label +// use: +// ``` +// labels.owner:* +// ``` +// +// 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 onresource 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) +// ``` +// +// If you want to use a regular expression, use the `eq` (equal) or `ne` +// (not equal) operator against a single un-parenthesized expression with +// or +// without quotes or against multiple parenthesized expressions. +// Examples: +// +// `fieldname eq unquoted literal` +// `fieldname eq 'single quoted literal'` +// `fieldname eq "double quoted literal" +// `(fieldname1 eq literal) (fieldname2 ne "literal")` +// +// The literal value is interpreted as a regular expression using GoogleRE2 +// library syntax. +// The literal value must match the entire field. +// +// For example, to filter for instances that do not end with name +// "instance", +// you would use `name ne .*instance`. +// +// You cannot combine constraints on multiple fields using regular +// expressions. +func (c *RegionInstanceGroupManagerResizeRequestsListCall) Filter(filter string) *RegionInstanceGroupManagerResizeRequestsListCall { + 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 *RegionInstanceGroupManagerResizeRequestsListCall) MaxResults(maxResults int64) *RegionInstanceGroupManagerResizeRequestsListCall { + 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 *RegionInstanceGroupManagerResizeRequestsListCall) OrderBy(orderBy string) *RegionInstanceGroupManagerResizeRequestsListCall { + 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 *RegionInstanceGroupManagerResizeRequestsListCall) PageToken(pageToken string) *RegionInstanceGroupManagerResizeRequestsListCall { + c.urlParams_.Set("pageToken", pageToken) + return c +} + +// ReturnPartialSuccess sets the optional parameter "returnPartialSuccess": +// Opt-in for partial success behavior which provides partial results in +// case +// of failure. The default value is false. +// +// For example, when partial success behavior is enabled, aggregatedList for +// a +// single zone scope either returns all resources in the zone or no +// resources, +// with an error code. +func (c *RegionInstanceGroupManagerResizeRequestsListCall) ReturnPartialSuccess(returnPartialSuccess bool) *RegionInstanceGroupManagerResizeRequestsListCall { + c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess)) return c } // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *RegionInstanceTemplatesDeleteCall) Fields(s ...googleapi.Field) *RegionInstanceTemplatesDeleteCall { +func (c *RegionInstanceGroupManagerResizeRequestsListCall) Fields(s ...googleapi.Field) *RegionInstanceGroupManagerResizeRequestsListCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } +// IfNoneMatch sets an 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. +func (c *RegionInstanceGroupManagerResizeRequestsListCall) IfNoneMatch(entityTag string) *RegionInstanceGroupManagerResizeRequestsListCall { + c.ifNoneMatch_ = entityTag + return c +} + // Context sets the context to be used in this call's Do method. -func (c *RegionInstanceTemplatesDeleteCall) Context(ctx context.Context) *RegionInstanceTemplatesDeleteCall { +func (c *RegionInstanceGroupManagerResizeRequestsListCall) Context(ctx context.Context) *RegionInstanceGroupManagerResizeRequestsListCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *RegionInstanceTemplatesDeleteCall) Header() http.Header { +func (c *RegionInstanceGroupManagerResizeRequestsListCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *RegionInstanceTemplatesDeleteCall) doRequest(alt string) (*http.Response, error) { +func (c *RegionInstanceGroupManagerResizeRequestsListCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) - var body io.Reader = nil + if c.ifNoneMatch_ != "" { + reqHeaders.Set("If-None-Match", c.ifNoneMatch_) + } c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/instanceTemplates/{instanceTemplate}") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/resizeRequests") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("DELETE", urls, body) + req, err := http.NewRequest("GET", urls, nil) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "region": c.region, - "instanceTemplate": c.instanceTemplate, + "project": c.project, + "region": c.region, + "instanceGroupManager": c.instanceGroupManager, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.regionInstanceGroupManagerResizeRequests.list", "request", internallog.HTTPRequest(req, nil)) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.regionInstanceTemplates.delete" call. +// Do executes the "compute.regionInstanceGroupManagerResizeRequests.list" call. // 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 *RegionInstanceTemplatesDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) { +// *RegionInstanceGroupManagerResizeRequestsListResponse.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 *RegionInstanceGroupManagerResizeRequestsListCall) Do(opts ...googleapi.CallOption) (*RegionInstanceGroupManagerResizeRequestsListResponse, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -9963,104 +10603,162 @@ func (c *RegionInstanceTemplatesDeleteCall) Do(opts ...googleapi.CallOption) (*O if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } - ret := &Operation{ + ret := &RegionInstanceGroupManagerResizeRequestsListResponse{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.regionInstanceGroupManagerResizeRequests.list", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type RegionInstanceTemplatesGetCall struct { - s *Service - project string - region string - instanceTemplate string - urlParams_ gensupport.URLParams - ifNoneMatch_ string - ctx_ context.Context - header_ http.Header +// 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 *RegionInstanceGroupManagerResizeRequestsListCall) Pages(ctx context.Context, f func(*RegionInstanceGroupManagerResizeRequestsListResponse) error) error { + c.ctx_ = ctx + defer c.PageToken(c.urlParams_.Get("pageToken")) + 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) + } } -// Get: Returns the specified instance template. +type RegionInstanceGroupManagersAbandonInstancesCall struct { + s *Service + project string + region string + instanceGroupManager string + regioninstancegroupmanagersabandoninstancesrequest *RegionInstanceGroupManagersAbandonInstancesRequest + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header +} + +// AbandonInstances: Flags the specified instances to be immediately removed +// from the managed +// instance group. Abandoning an instance does not delete the +// instance, but it does remove the instance from any target pools that +// are +// applied by the managed instance group. This method reduces thetargetSize of +// the managed instance group by the +// number of instances that you abandon. This operation is marked asDONE when +// the action is scheduled even if the instances have +// not yet been removed from the group. You must separately verify the +// status of the abandoning action with thelistmanagedinstances +// method. // -// - instanceTemplate: The name of the instance template. +// If the group is part of a backend +// service that has enabled +// connection draining, it can take up to 60 seconds after the +// connection +// draining duration has elapsed before the VM instance is removed or +// deleted. +// +// You can specify a maximum of 1000 instances with this method per request. +// +// - instanceGroupManager: Name of the managed instance group. // - project: Project ID for this request. -// - region: The name of the region for this request. -func (r *RegionInstanceTemplatesService) Get(project string, region string, instanceTemplate string) *RegionInstanceTemplatesGetCall { - c := &RegionInstanceTemplatesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)} +// - region: Name of the region scoping this request. +func (r *RegionInstanceGroupManagersService) AbandonInstances(project string, region string, instanceGroupManager string, regioninstancegroupmanagersabandoninstancesrequest *RegionInstanceGroupManagersAbandonInstancesRequest) *RegionInstanceGroupManagersAbandonInstancesCall { + c := &RegionInstanceGroupManagersAbandonInstancesCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project c.region = region - c.instanceTemplate = instanceTemplate + c.instanceGroupManager = instanceGroupManager + c.regioninstancegroupmanagersabandoninstancesrequest = regioninstancegroupmanagersabandoninstancesrequest + 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 *RegionInstanceGroupManagersAbandonInstancesCall) RequestId(requestId string) *RegionInstanceGroupManagersAbandonInstancesCall { + 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 // details. -func (c *RegionInstanceTemplatesGetCall) Fields(s ...googleapi.Field) *RegionInstanceTemplatesGetCall { +func (c *RegionInstanceGroupManagersAbandonInstancesCall) Fields(s ...googleapi.Field) *RegionInstanceGroupManagersAbandonInstancesCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } -// IfNoneMatch sets an 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. -func (c *RegionInstanceTemplatesGetCall) IfNoneMatch(entityTag string) *RegionInstanceTemplatesGetCall { - c.ifNoneMatch_ = entityTag - return c -} - // Context sets the context to be used in this call's Do method. -func (c *RegionInstanceTemplatesGetCall) Context(ctx context.Context) *RegionInstanceTemplatesGetCall { +func (c *RegionInstanceGroupManagersAbandonInstancesCall) Context(ctx context.Context) *RegionInstanceGroupManagersAbandonInstancesCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *RegionInstanceTemplatesGetCall) Header() http.Header { +func (c *RegionInstanceGroupManagersAbandonInstancesCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *RegionInstanceTemplatesGetCall) doRequest(alt string) (*http.Response, error) { - reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) - if c.ifNoneMatch_ != "" { - reqHeaders.Set("If-None-Match", c.ifNoneMatch_) +func (c *RegionInstanceGroupManagersAbandonInstancesCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) + body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.regioninstancegroupmanagersabandoninstancesrequest) + if err != nil { + return nil, err } - var body io.Reader = nil c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/instanceTemplates/{instanceTemplate}") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/abandonInstances") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("GET", urls, body) + req, err := http.NewRequest("POST", urls, body) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "region": c.region, - "instanceTemplate": c.instanceTemplate, + "project": c.project, + "region": c.region, + "instanceGroupManager": c.instanceGroupManager, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.regionInstanceGroupManagers.abandonInstances", "request", internallog.HTTPRequest(req, body.Bytes())) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.regionInstanceTemplates.get" call. +// Do executes the "compute.regionInstanceGroupManagers.abandonInstances" call. // Any non-2xx status code is an error. Response headers are in either -// *InstanceTemplate.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 *RegionInstanceTemplatesGetCall) Do(opts ...googleapi.CallOption) (*InstanceTemplate, error) { +// *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 *RegionInstanceGroupManagersAbandonInstancesCall) Do(opts ...googleapi.CallOption) (*Operation, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -10079,90 +10777,81 @@ func (c *RegionInstanceTemplatesGetCall) Do(opts ...googleapi.CallOption) (*Inst if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } - ret := &InstanceTemplate{ + ret := &Operation{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.regionInstanceGroupManagers.abandonInstances", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type RegionInstanceTemplatesInsertCall struct { - s *Service - project string - region string - instancetemplate *InstanceTemplate - urlParams_ gensupport.URLParams - ctx_ context.Context - header_ http.Header +type RegionInstanceGroupManagersApplyUpdatesToInstancesCall struct { + s *Service + project string + region string + instanceGroupManager string + regioninstancegroupmanagersapplyupdatesrequest *RegionInstanceGroupManagersApplyUpdatesRequest + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header } -// Insert: Creates an instance template in the specified project and region -// using the global instance template whose URL is included in the request. +// ApplyUpdatesToInstances: Apply updates to selected instances the managed +// instance group. // -// - project: Project ID for this request. -// - region: The name of the region for this request. -func (r *RegionInstanceTemplatesService) Insert(project string, region string, instancetemplate *InstanceTemplate) *RegionInstanceTemplatesInsertCall { - c := &RegionInstanceTemplatesInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)} +// - instanceGroupManager: The name of the managed instance group, should +// conform to RFC1035. +// - project: Project ID for this request. +// - region: Name of the region scoping this request, should conform to +// RFC1035. +func (r *RegionInstanceGroupManagersService) ApplyUpdatesToInstances(project string, region string, instanceGroupManager string, regioninstancegroupmanagersapplyupdatesrequest *RegionInstanceGroupManagersApplyUpdatesRequest) *RegionInstanceGroupManagersApplyUpdatesToInstancesCall { + c := &RegionInstanceGroupManagersApplyUpdatesToInstancesCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project c.region = region - c.instancetemplate = instancetemplate - 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 *RegionInstanceTemplatesInsertCall) RequestId(requestId string) *RegionInstanceTemplatesInsertCall { - c.urlParams_.Set("requestId", requestId) + c.instanceGroupManager = instanceGroupManager + c.regioninstancegroupmanagersapplyupdatesrequest = regioninstancegroupmanagersapplyupdatesrequest return c } // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *RegionInstanceTemplatesInsertCall) Fields(s ...googleapi.Field) *RegionInstanceTemplatesInsertCall { +func (c *RegionInstanceGroupManagersApplyUpdatesToInstancesCall) Fields(s ...googleapi.Field) *RegionInstanceGroupManagersApplyUpdatesToInstancesCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } // Context sets the context to be used in this call's Do method. -func (c *RegionInstanceTemplatesInsertCall) Context(ctx context.Context) *RegionInstanceTemplatesInsertCall { +func (c *RegionInstanceGroupManagersApplyUpdatesToInstancesCall) Context(ctx context.Context) *RegionInstanceGroupManagersApplyUpdatesToInstancesCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *RegionInstanceTemplatesInsertCall) Header() http.Header { +func (c *RegionInstanceGroupManagersApplyUpdatesToInstancesCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *RegionInstanceTemplatesInsertCall) doRequest(alt string) (*http.Response, error) { +func (c *RegionInstanceGroupManagersApplyUpdatesToInstancesCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) - var body io.Reader = nil - body, err := googleapi.WithoutDataWrapper.JSONReader(c.instancetemplate) + body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.regioninstancegroupmanagersapplyupdatesrequest) if err != nil { return nil, err } c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/instanceTemplates") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/applyUpdatesToInstances") urls += "?" + c.urlParams_.Encode() req, err := http.NewRequest("POST", urls, body) if err != nil { @@ -10170,18 +10859,20 @@ func (c *RegionInstanceTemplatesInsertCall) doRequest(alt string) (*http.Respons } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "region": c.region, + "project": c.project, + "region": c.region, + "instanceGroupManager": c.instanceGroupManager, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.regionInstanceGroupManagers.applyUpdatesToInstances", "request", internallog.HTTPRequest(req, body.Bytes())) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.regionInstanceTemplates.insert" call. +// Do executes the "compute.regionInstanceGroupManagers.applyUpdatesToInstances" call. // 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 *RegionInstanceTemplatesInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) { +func (c *RegionInstanceGroupManagersApplyUpdatesToInstancesCall) Do(opts ...googleapi.CallOption) (*Operation, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -10207,172 +10898,124 @@ func (c *RegionInstanceTemplatesInsertCall) Do(opts ...googleapi.CallOption) (*O }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.regionInstanceGroupManagers.applyUpdatesToInstances", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type RegionInstanceTemplatesListCall struct { - s *Service - project string - region string - urlParams_ gensupport.URLParams - ifNoneMatch_ string - ctx_ context.Context - header_ http.Header +type RegionInstanceGroupManagersCreateInstancesCall struct { + s *Service + project string + region string + instanceGroupManager string + regioninstancegroupmanagerscreateinstancesrequest *RegionInstanceGroupManagersCreateInstancesRequest + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header } -// List: Retrieves a list of instance templates that are contained within the -// specified project and region. +// CreateInstances: Creates instances with per-instance configurations in this +// regional managed +// instance group. Instances are created using the current instance +// template. +// The create instances operation is marked DONE if +// the createInstances request is successful. The underlying +// actions take additional time. You must separately verify the status of +// thecreating or actions with the listmanagedinstances +// method. // -// - project: Project ID for this request. -// - region: The name of the regions for this request. -func (r *RegionInstanceTemplatesService) List(project string, region string) *RegionInstanceTemplatesListCall { - c := &RegionInstanceTemplatesListCall{s: r.s, urlParams_: make(gensupport.URLParams)} +// - instanceGroupManager: The name of the managed instance group. +// It should conform to RFC1035. +// - project: Project ID for this request. +// - region: The name of theregion +// where the managed instance group is located. +// +// It should conform to RFC1035. +func (r *RegionInstanceGroupManagersService) CreateInstances(project string, region string, instanceGroupManager string, regioninstancegroupmanagerscreateinstancesrequest *RegionInstanceGroupManagersCreateInstancesRequest) *RegionInstanceGroupManagersCreateInstancesCall { + c := &RegionInstanceGroupManagersCreateInstancesCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project c.region = region + c.instanceGroupManager = instanceGroupManager + c.regioninstancegroupmanagerscreateinstancesrequest = regioninstancegroupmanagerscreateinstancesrequest return c } -// Filter sets the optional parameter "filter": A filter expression that -// filters resources listed in the response. Most Compute resources support two -// types of filter expressions: expressions that support regular expressions -// and expressions that follow API improvement proposal AIP-160. These two -// types of filter expressions cannot be mixed in one request. If you want to -// use AIP-160, your expression must specify the field name, an operator, and -// the value that you want to use for filtering. The value must be a string, a -// number, or a boolean. The 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`. The `:*` comparison can be used to test whether a key has -// been defined. For example, to find all objects with `owner` label use: ``` -// labels.owner:* ``` 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) ``` If you want to use a regular -// expression, use the `eq` (equal) or `ne` (not equal) operator against a -// single un-parenthesized expression with or without quotes or against -// multiple parenthesized expressions. Examples: `fieldname eq unquoted -// literal` `fieldname eq 'single quoted literal'` `fieldname eq "double quoted -// literal" `(fieldname1 eq literal) (fieldname2 ne "literal")` The literal -// value is interpreted as a regular expression using Google RE2 library -// syntax. The literal value must match the entire field. For example, to -// filter for instances that do not end with name "instance", you would use -// `name ne .*instance`. You cannot combine constraints on multiple fields -// using regular expressions. -func (c *RegionInstanceTemplatesListCall) Filter(filter string) *RegionInstanceTemplatesListCall { - 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 *RegionInstanceTemplatesListCall) MaxResults(maxResults int64) *RegionInstanceTemplatesListCall { - 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 *RegionInstanceTemplatesListCall) OrderBy(orderBy string) *RegionInstanceTemplatesListCall { - 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 *RegionInstanceTemplatesListCall) PageToken(pageToken string) *RegionInstanceTemplatesListCall { - c.urlParams_.Set("pageToken", pageToken) - return c -} - -// ReturnPartialSuccess sets the optional parameter "returnPartialSuccess": -// Opt-in for partial success behavior which provides partial results in case -// of failure. The default value is false. For example, when partial success -// behavior is enabled, aggregatedList for a single zone scope either returns -// all resources in the zone or no resources, with an error code. -func (c *RegionInstanceTemplatesListCall) ReturnPartialSuccess(returnPartialSuccess bool) *RegionInstanceTemplatesListCall { - c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess)) +// 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. +// +// The request ID must be +// a valid UUID with the exception that zero UUID is not +// supported +// (00000000-0000-0000-0000-000000000000). +func (c *RegionInstanceGroupManagersCreateInstancesCall) RequestId(requestId string) *RegionInstanceGroupManagersCreateInstancesCall { + 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 // details. -func (c *RegionInstanceTemplatesListCall) Fields(s ...googleapi.Field) *RegionInstanceTemplatesListCall { +func (c *RegionInstanceGroupManagersCreateInstancesCall) Fields(s ...googleapi.Field) *RegionInstanceGroupManagersCreateInstancesCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } -// IfNoneMatch sets an 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. -func (c *RegionInstanceTemplatesListCall) IfNoneMatch(entityTag string) *RegionInstanceTemplatesListCall { - c.ifNoneMatch_ = entityTag - return c -} - // Context sets the context to be used in this call's Do method. -func (c *RegionInstanceTemplatesListCall) Context(ctx context.Context) *RegionInstanceTemplatesListCall { +func (c *RegionInstanceGroupManagersCreateInstancesCall) Context(ctx context.Context) *RegionInstanceGroupManagersCreateInstancesCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *RegionInstanceTemplatesListCall) Header() http.Header { +func (c *RegionInstanceGroupManagersCreateInstancesCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *RegionInstanceTemplatesListCall) doRequest(alt string) (*http.Response, error) { - reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) - if c.ifNoneMatch_ != "" { - reqHeaders.Set("If-None-Match", c.ifNoneMatch_) +func (c *RegionInstanceGroupManagersCreateInstancesCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) + body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.regioninstancegroupmanagerscreateinstancesrequest) + if err != nil { + return nil, err } - var body io.Reader = nil c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/instanceTemplates") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/createInstances") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("GET", urls, body) + req, err := http.NewRequest("POST", urls, body) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "region": c.region, + "project": c.project, + "region": c.region, + "instanceGroupManager": c.instanceGroupManager, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.regionInstanceGroupManagers.createInstances", "request", internallog.HTTPRequest(req, body.Bytes())) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.regionInstanceTemplates.list" call. +// Do executes the "compute.regionInstanceGroupManagers.createInstances" call. // Any non-2xx status code is an error. Response headers are in either -// *InstanceTemplateList.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 *RegionInstanceTemplatesListCall) Do(opts ...googleapi.CallOption) (*InstanceTemplateList, error) { +// *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 *RegionInstanceGroupManagersCreateInstancesCall) Do(opts ...googleapi.CallOption) (*Operation, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -10391,74 +11034,73 @@ func (c *RegionInstanceTemplatesListCall) Do(opts ...googleapi.CallOption) (*Ins if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } - ret := &InstanceTemplateList{ + ret := &Operation{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.regionInstanceGroupManagers.createInstances", "response", internallog.HTTPResponse(res, b)) return ret, nil } -// 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 *RegionInstanceTemplatesListCall) Pages(ctx context.Context, f func(*InstanceTemplateList) error) error { - c.ctx_ = ctx - defer c.PageToken(c.urlParams_.Get("pageToken")) - 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) - } -} - -type RegionInstancesBulkInsertCall struct { - s *Service - project string - region string - bulkinsertinstanceresource *BulkInsertInstanceResource - urlParams_ gensupport.URLParams - ctx_ context.Context - header_ http.Header +type RegionInstanceGroupManagersDeleteCall struct { + s *Service + project string + region string + instanceGroupManager string + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header } -// BulkInsert: Creates multiple instances in a given region. Count specifies -// the number of instances to create. +// Delete: Deletes the specified managed instance group and all of the +// instances +// in that group. // +// - instanceGroupManager: Name of the managed instance group to delete. // - project: Project ID for this request. -// - region: The name of the region for this request. -func (r *RegionInstancesService) BulkInsert(project string, region string, bulkinsertinstanceresource *BulkInsertInstanceResource) *RegionInstancesBulkInsertCall { - c := &RegionInstancesBulkInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)} +// - region: Name of the region scoping this request. +func (r *RegionInstanceGroupManagersService) Delete(project string, region string, instanceGroupManager string) *RegionInstanceGroupManagersDeleteCall { + c := &RegionInstanceGroupManagersDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project c.region = region - c.bulkinsertinstanceresource = bulkinsertinstanceresource + c.instanceGroupManager = instanceGroupManager + return c +} + +// NoGracefulShutdown sets the optional parameter "noGracefulShutdown": When +// set, graceful shutdown is skipped for instance deletion even if +// it's +// configured for the instances. +func (c *RegionInstanceGroupManagersDeleteCall) NoGracefulShutdown(noGracefulShutdown bool) *RegionInstanceGroupManagersDeleteCall { + c.urlParams_.Set("noGracefulShutdown", fmt.Sprint(noGracefulShutdown)) 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 *RegionInstancesBulkInsertCall) RequestId(requestId string) *RegionInstancesBulkInsertCall { +// 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 *RegionInstanceGroupManagersDeleteCall) RequestId(requestId string) *RegionInstanceGroupManagersDeleteCall { c.urlParams_.Set("requestId", requestId) return c } @@ -10466,55 +11108,52 @@ func (c *RegionInstancesBulkInsertCall) RequestId(requestId string) *RegionInsta // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *RegionInstancesBulkInsertCall) Fields(s ...googleapi.Field) *RegionInstancesBulkInsertCall { +func (c *RegionInstanceGroupManagersDeleteCall) Fields(s ...googleapi.Field) *RegionInstanceGroupManagersDeleteCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } // Context sets the context to be used in this call's Do method. -func (c *RegionInstancesBulkInsertCall) Context(ctx context.Context) *RegionInstancesBulkInsertCall { +func (c *RegionInstanceGroupManagersDeleteCall) Context(ctx context.Context) *RegionInstanceGroupManagersDeleteCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *RegionInstancesBulkInsertCall) Header() http.Header { +func (c *RegionInstanceGroupManagersDeleteCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *RegionInstancesBulkInsertCall) doRequest(alt string) (*http.Response, error) { - reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) - var body io.Reader = nil - body, err := googleapi.WithoutDataWrapper.JSONReader(c.bulkinsertinstanceresource) - if err != nil { - return nil, err - } +func (c *RegionInstanceGroupManagersDeleteCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/instances/bulkInsert") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("POST", urls, body) + req, err := http.NewRequest("DELETE", urls, nil) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "region": c.region, + "project": c.project, + "region": c.region, + "instanceGroupManager": c.instanceGroupManager, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.regionInstanceGroupManagers.delete", "request", internallog.HTTPRequest(req, nil)) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.regionInstances.bulkInsert" call. +// Do executes the "compute.regionInstanceGroupManagers.delete" call. // 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 *RegionInstancesBulkInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) { +func (c *RegionInstanceGroupManagersDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -10540,51 +11179,85 @@ func (c *RegionInstancesBulkInsertCall) Do(opts ...googleapi.CallOption) (*Opera }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.regionInstanceGroupManagers.delete", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type RegionInstantSnapshotsDeleteCall struct { - s *Service - project string - region string - instantSnapshot string - urlParams_ gensupport.URLParams - ctx_ context.Context - header_ http.Header +type RegionInstanceGroupManagersDeleteInstancesCall struct { + s *Service + project string + region string + instanceGroupManager string + regioninstancegroupmanagersdeleteinstancesrequest *RegionInstanceGroupManagersDeleteInstancesRequest + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header } -// Delete: Deletes the specified InstantSnapshot resource. Keep in mind that -// deleting a single instantSnapshot might not necessarily delete all the data -// on that instantSnapshot. If any data on the instantSnapshot that is marked -// for deletion is needed for subsequent instantSnapshots, the data will be -// moved to the next corresponding instantSnapshot. For more information, see -// Deleting instantSnapshots. +// DeleteInstances: Flags the specified instances in the managed instance group +// to be +// immediately deleted. The instances are also removed from any target +// pools of which they were a member. This method reduces thetargetSize of the +// managed instance group by the number of +// instances that you delete. +// The deleteInstances operation is marked DONE if +// the deleteInstances request is successful. The underlying +// actions take additional time. You must separately verify the status of +// thedeleting action with thelistmanagedinstances +// method. // -// - instantSnapshot: Name of the InstantSnapshot resource to delete. +// If the group is part of a backend +// service that has enabled +// connection draining, it can take up to 60 seconds after the +// connection +// draining duration has elapsed before the VM instance is removed or +// deleted. +// +// You can specify a maximum of 1000 instances with this method per request. +// +// - instanceGroupManager: Name of the managed instance group. // - project: Project ID for this request. -// - region: The name of the region for this request. -func (r *RegionInstantSnapshotsService) Delete(project string, region string, instantSnapshot string) *RegionInstantSnapshotsDeleteCall { - c := &RegionInstantSnapshotsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)} +// - region: Name of the region scoping this request. +func (r *RegionInstanceGroupManagersService) DeleteInstances(project string, region string, instanceGroupManager string, regioninstancegroupmanagersdeleteinstancesrequest *RegionInstanceGroupManagersDeleteInstancesRequest) *RegionInstanceGroupManagersDeleteInstancesCall { + c := &RegionInstanceGroupManagersDeleteInstancesCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project c.region = region - c.instantSnapshot = instantSnapshot + c.instanceGroupManager = instanceGroupManager + c.regioninstancegroupmanagersdeleteinstancesrequest = regioninstancegroupmanagersdeleteinstancesrequest + return c +} + +// NoGracefulShutdown sets the optional parameter "noGracefulShutdown": When +// set, graceful shutdown is skipped for instance deletion even if +// it's +// configured for the instances. +func (c *RegionInstanceGroupManagersDeleteInstancesCall) NoGracefulShutdown(noGracefulShutdown bool) *RegionInstanceGroupManagersDeleteInstancesCall { + c.urlParams_.Set("noGracefulShutdown", fmt.Sprint(noGracefulShutdown)) 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 *RegionInstantSnapshotsDeleteCall) RequestId(requestId string) *RegionInstantSnapshotsDeleteCall { +// 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 *RegionInstanceGroupManagersDeleteInstancesCall) RequestId(requestId string) *RegionInstanceGroupManagersDeleteInstancesCall { c.urlParams_.Set("requestId", requestId) return c } @@ -10592,52 +11265,56 @@ func (c *RegionInstantSnapshotsDeleteCall) RequestId(requestId string) *RegionIn // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *RegionInstantSnapshotsDeleteCall) Fields(s ...googleapi.Field) *RegionInstantSnapshotsDeleteCall { +func (c *RegionInstanceGroupManagersDeleteInstancesCall) Fields(s ...googleapi.Field) *RegionInstanceGroupManagersDeleteInstancesCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } // Context sets the context to be used in this call's Do method. -func (c *RegionInstantSnapshotsDeleteCall) Context(ctx context.Context) *RegionInstantSnapshotsDeleteCall { +func (c *RegionInstanceGroupManagersDeleteInstancesCall) Context(ctx context.Context) *RegionInstanceGroupManagersDeleteInstancesCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *RegionInstantSnapshotsDeleteCall) Header() http.Header { +func (c *RegionInstanceGroupManagersDeleteInstancesCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *RegionInstantSnapshotsDeleteCall) doRequest(alt string) (*http.Response, error) { - reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) - var body io.Reader = nil +func (c *RegionInstanceGroupManagersDeleteInstancesCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) + body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.regioninstancegroupmanagersdeleteinstancesrequest) + if err != nil { + return nil, err + } c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/instantSnapshots/{instantSnapshot}") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/deleteInstances") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("DELETE", urls, body) + req, err := http.NewRequest("POST", urls, body) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "region": c.region, - "instantSnapshot": c.instantSnapshot, + "project": c.project, + "region": c.region, + "instanceGroupManager": c.instanceGroupManager, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.regionInstanceGroupManagers.deleteInstances", "request", internallog.HTTPRequest(req, body.Bytes())) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.regionInstantSnapshots.delete" call. +// Do executes the "compute.regionInstanceGroupManagers.deleteInstances" call. // 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 *RegionInstantSnapshotsDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) { +func (c *RegionInstanceGroupManagersDeleteInstancesCall) Do(opts ...googleapi.CallOption) (*Operation, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -10663,97 +11340,96 @@ func (c *RegionInstantSnapshotsDeleteCall) Do(opts ...googleapi.CallOption) (*Op }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.regionInstanceGroupManagers.deleteInstances", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type RegionInstantSnapshotsGetCall struct { - s *Service - project string - region string - instantSnapshot string - urlParams_ gensupport.URLParams - ifNoneMatch_ string - ctx_ context.Context - header_ http.Header +type RegionInstanceGroupManagersDeletePerInstanceConfigsCall struct { + s *Service + project string + region string + instanceGroupManager string + regioninstancegroupmanagerdeleteinstanceconfigreq *RegionInstanceGroupManagerDeleteInstanceConfigReq + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header } -// Get: Returns the specified InstantSnapshot resource in the specified region. +// DeletePerInstanceConfigs: Deletes selected per-instance configurations for +// the managed instance +// group. // -// - instantSnapshot: Name of the InstantSnapshot resource to return. -// - project: Project ID for this request. -// - region: The name of the region for this request. -func (r *RegionInstantSnapshotsService) Get(project string, region string, instantSnapshot string) *RegionInstantSnapshotsGetCall { - c := &RegionInstantSnapshotsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)} +// - instanceGroupManager: The name of the managed instance group. It should +// conform to RFC1035. +// - project: Project ID for this request. +// - region: Name of the region scoping this request, should conform to +// RFC1035. +func (r *RegionInstanceGroupManagersService) DeletePerInstanceConfigs(project string, region string, instanceGroupManager string, regioninstancegroupmanagerdeleteinstanceconfigreq *RegionInstanceGroupManagerDeleteInstanceConfigReq) *RegionInstanceGroupManagersDeletePerInstanceConfigsCall { + c := &RegionInstanceGroupManagersDeletePerInstanceConfigsCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project c.region = region - c.instantSnapshot = instantSnapshot + c.instanceGroupManager = instanceGroupManager + c.regioninstancegroupmanagerdeleteinstanceconfigreq = regioninstancegroupmanagerdeleteinstanceconfigreq return c } // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *RegionInstantSnapshotsGetCall) Fields(s ...googleapi.Field) *RegionInstantSnapshotsGetCall { +func (c *RegionInstanceGroupManagersDeletePerInstanceConfigsCall) Fields(s ...googleapi.Field) *RegionInstanceGroupManagersDeletePerInstanceConfigsCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } -// IfNoneMatch sets an 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. -func (c *RegionInstantSnapshotsGetCall) IfNoneMatch(entityTag string) *RegionInstantSnapshotsGetCall { - c.ifNoneMatch_ = entityTag - return c -} - // Context sets the context to be used in this call's Do method. -func (c *RegionInstantSnapshotsGetCall) Context(ctx context.Context) *RegionInstantSnapshotsGetCall { +func (c *RegionInstanceGroupManagersDeletePerInstanceConfigsCall) Context(ctx context.Context) *RegionInstanceGroupManagersDeletePerInstanceConfigsCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *RegionInstantSnapshotsGetCall) Header() http.Header { +func (c *RegionInstanceGroupManagersDeletePerInstanceConfigsCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *RegionInstantSnapshotsGetCall) doRequest(alt string) (*http.Response, error) { - reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) - if c.ifNoneMatch_ != "" { - reqHeaders.Set("If-None-Match", c.ifNoneMatch_) +func (c *RegionInstanceGroupManagersDeletePerInstanceConfigsCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) + body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.regioninstancegroupmanagerdeleteinstanceconfigreq) + if err != nil { + return nil, err } - var body io.Reader = nil c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/instantSnapshots/{instantSnapshot}") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/deletePerInstanceConfigs") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("GET", urls, body) + req, err := http.NewRequest("POST", urls, body) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "region": c.region, - "instantSnapshot": c.instantSnapshot, + "project": c.project, + "region": c.region, + "instanceGroupManager": c.instanceGroupManager, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.regionInstanceGroupManagers.deletePerInstanceConfigs", "request", internallog.HTTPRequest(req, body.Bytes())) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.regionInstantSnapshots.get" call. +// Do executes the "compute.regionInstanceGroupManagers.deletePerInstanceConfigs" call. // Any non-2xx status code is an error. Response headers are in either -// *InstantSnapshot.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 *RegionInstantSnapshotsGetCall) Do(opts ...googleapi.CallOption) (*InstantSnapshot, error) { +// *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 *RegionInstanceGroupManagersDeletePerInstanceConfigsCall) Do(opts ...googleapi.CallOption) (*Operation, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -10772,55 +11448,49 @@ func (c *RegionInstantSnapshotsGetCall) Do(opts ...googleapi.CallOption) (*Insta if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } - ret := &InstantSnapshot{ + ret := &Operation{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.regionInstanceGroupManagers.deletePerInstanceConfigs", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type RegionInstantSnapshotsGetIamPolicyCall struct { - s *Service - project string - region string - resource string - urlParams_ gensupport.URLParams - ifNoneMatch_ string - ctx_ context.Context - header_ http.Header +type RegionInstanceGroupManagersGetCall struct { + s *Service + project string + region string + instanceGroupManager string + urlParams_ gensupport.URLParams + ifNoneMatch_ string + ctx_ context.Context + header_ http.Header } -// GetIamPolicy: Gets the access control policy for a resource. May be empty if -// no such policy or resource exists. +// Get: Returns all of the details about the specified managed instance group. // +// - instanceGroupManager: Name of the managed instance group to return. // - project: Project ID for this request. -// - region: The name of the region for this request. -// - resource: Name or id of the resource for this request. -func (r *RegionInstantSnapshotsService) GetIamPolicy(project string, region string, resource string) *RegionInstantSnapshotsGetIamPolicyCall { - c := &RegionInstantSnapshotsGetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)} +// - region: Name of the region scoping this request. +func (r *RegionInstanceGroupManagersService) Get(project string, region string, instanceGroupManager string) *RegionInstanceGroupManagersGetCall { + c := &RegionInstanceGroupManagersGetCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project c.region = region - c.resource = resource - return c -} - -// OptionsRequestedPolicyVersion sets the optional parameter -// "optionsRequestedPolicyVersion": Requested IAM Policy version. -func (c *RegionInstantSnapshotsGetIamPolicyCall) OptionsRequestedPolicyVersion(optionsRequestedPolicyVersion int64) *RegionInstantSnapshotsGetIamPolicyCall { - c.urlParams_.Set("optionsRequestedPolicyVersion", fmt.Sprint(optionsRequestedPolicyVersion)) + c.instanceGroupManager = instanceGroupManager return c } // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *RegionInstantSnapshotsGetIamPolicyCall) Fields(s ...googleapi.Field) *RegionInstantSnapshotsGetIamPolicyCall { +func (c *RegionInstanceGroupManagersGetCall) Fields(s ...googleapi.Field) *RegionInstanceGroupManagersGetCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } @@ -10828,55 +11498,56 @@ func (c *RegionInstantSnapshotsGetIamPolicyCall) Fields(s ...googleapi.Field) *R // IfNoneMatch sets an 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. -func (c *RegionInstantSnapshotsGetIamPolicyCall) IfNoneMatch(entityTag string) *RegionInstantSnapshotsGetIamPolicyCall { +func (c *RegionInstanceGroupManagersGetCall) IfNoneMatch(entityTag string) *RegionInstanceGroupManagersGetCall { c.ifNoneMatch_ = entityTag return c } // Context sets the context to be used in this call's Do method. -func (c *RegionInstantSnapshotsGetIamPolicyCall) Context(ctx context.Context) *RegionInstantSnapshotsGetIamPolicyCall { +func (c *RegionInstanceGroupManagersGetCall) Context(ctx context.Context) *RegionInstanceGroupManagersGetCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *RegionInstantSnapshotsGetIamPolicyCall) Header() http.Header { +func (c *RegionInstanceGroupManagersGetCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *RegionInstantSnapshotsGetIamPolicyCall) doRequest(alt string) (*http.Response, error) { +func (c *RegionInstanceGroupManagersGetCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) if c.ifNoneMatch_ != "" { reqHeaders.Set("If-None-Match", c.ifNoneMatch_) } - var body io.Reader = nil c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/instantSnapshots/{resource}/getIamPolicy") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("GET", urls, body) + req, err := http.NewRequest("GET", urls, nil) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "region": c.region, - "resource": c.resource, + "project": c.project, + "region": c.region, + "instanceGroupManager": c.instanceGroupManager, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.regionInstanceGroupManagers.get", "request", internallog.HTTPRequest(req, nil)) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.regionInstantSnapshots.getIamPolicy" call. +// Do executes the "compute.regionInstanceGroupManagers.get" call. // Any non-2xx status code is an error. Response headers are in either -// *Policy.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 *RegionInstantSnapshotsGetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, error) { +// *InstanceGroupManager.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 *RegionInstanceGroupManagersGetCall) Do(opts ...googleapi.CallOption) (*InstanceGroupManager, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -10895,52 +11566,73 @@ func (c *RegionInstantSnapshotsGetIamPolicyCall) Do(opts ...googleapi.CallOption if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } - ret := &Policy{ + ret := &InstanceGroupManager{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.regionInstanceGroupManagers.get", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type RegionInstantSnapshotsInsertCall struct { - s *Service - project string - region string - instantsnapshot *InstantSnapshot - urlParams_ gensupport.URLParams - ctx_ context.Context - header_ http.Header +type RegionInstanceGroupManagersInsertCall struct { + s *Service + project string + region string + instancegroupmanager *InstanceGroupManager + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header } -// Insert: Creates an instant snapshot in the specified region. +// Insert: Creates a managed instance group using the information that you +// specify +// in the request. After the group is created, instances in the group +// are +// created using the specified instance template. +// This operation is marked as DONE when the group is created +// even if the instances in the group have not yet been created. You +// must +// separately verify the status of the individual instances with +// thelistmanagedinstances +// method. +// +// A regional managed instance group can contain up to 2000 instances. // // - project: Project ID for this request. -// - region: Name of the region for this request. -func (r *RegionInstantSnapshotsService) Insert(project string, region string, instantsnapshot *InstantSnapshot) *RegionInstantSnapshotsInsertCall { - c := &RegionInstantSnapshotsInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)} +// - region: Name of the region scoping this request. +func (r *RegionInstanceGroupManagersService) Insert(project string, region string, instancegroupmanager *InstanceGroupManager) *RegionInstanceGroupManagersInsertCall { + c := &RegionInstanceGroupManagersInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project c.region = region - c.instantsnapshot = instantsnapshot + c.instancegroupmanager = instancegroupmanager 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 *RegionInstantSnapshotsInsertCall) RequestId(requestId string) *RegionInstantSnapshotsInsertCall { +// 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 *RegionInstanceGroupManagersInsertCall) RequestId(requestId string) *RegionInstanceGroupManagersInsertCall { c.urlParams_.Set("requestId", requestId) return c } @@ -10948,36 +11640,35 @@ func (c *RegionInstantSnapshotsInsertCall) RequestId(requestId string) *RegionIn // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *RegionInstantSnapshotsInsertCall) Fields(s ...googleapi.Field) *RegionInstantSnapshotsInsertCall { +func (c *RegionInstanceGroupManagersInsertCall) Fields(s ...googleapi.Field) *RegionInstanceGroupManagersInsertCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } // Context sets the context to be used in this call's Do method. -func (c *RegionInstantSnapshotsInsertCall) Context(ctx context.Context) *RegionInstantSnapshotsInsertCall { +func (c *RegionInstanceGroupManagersInsertCall) Context(ctx context.Context) *RegionInstanceGroupManagersInsertCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *RegionInstantSnapshotsInsertCall) Header() http.Header { +func (c *RegionInstanceGroupManagersInsertCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *RegionInstantSnapshotsInsertCall) doRequest(alt string) (*http.Response, error) { +func (c *RegionInstanceGroupManagersInsertCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) - var body io.Reader = nil - body, err := googleapi.WithoutDataWrapper.JSONReader(c.instantsnapshot) + body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.instancegroupmanager) if err != nil { return nil, err } c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/instantSnapshots") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/instanceGroupManagers") urls += "?" + c.urlParams_.Encode() req, err := http.NewRequest("POST", urls, body) if err != nil { @@ -10988,15 +11679,16 @@ func (c *RegionInstantSnapshotsInsertCall) doRequest(alt string) (*http.Response "project": c.project, "region": c.region, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.regionInstanceGroupManagers.insert", "request", internallog.HTTPRequest(req, body.Bytes())) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.regionInstantSnapshots.insert" call. +// Do executes the "compute.regionInstanceGroupManagers.insert" call. // 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 *RegionInstantSnapshotsInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) { +func (c *RegionInstanceGroupManagersInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -11022,13 +11714,15 @@ func (c *RegionInstantSnapshotsInsertCall) Do(opts ...googleapi.CallOption) (*Op }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.regionInstanceGroupManagers.insert", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type RegionInstantSnapshotsListCall struct { +type RegionInstanceGroupManagersListCall struct { s *Service project string region string @@ -11038,92 +11732,143 @@ type RegionInstantSnapshotsListCall struct { header_ http.Header } -// List: Retrieves the list of InstantSnapshot resources contained within the -// specified region. +// List: Retrieves the list of managed instance groups that are +// contained +// within the specified region. // // - project: Project ID for this request. -// - region: The name of the region for this request. -func (r *RegionInstantSnapshotsService) List(project string, region string) *RegionInstantSnapshotsListCall { - c := &RegionInstantSnapshotsListCall{s: r.s, urlParams_: make(gensupport.URLParams)} +// - region: Name of the region scoping this request. +func (r *RegionInstanceGroupManagersService) List(project string, region string) *RegionInstanceGroupManagersListCall { + c := &RegionInstanceGroupManagersListCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project c.region = region return c } // Filter sets the optional parameter "filter": A filter expression that -// filters resources listed in the response. Most Compute resources support two -// types of filter expressions: expressions that support regular expressions -// and expressions that follow API improvement proposal AIP-160. These two -// types of filter expressions cannot be mixed in one request. If you want to -// use AIP-160, your expression must specify the field name, an operator, and -// the value that you want to use for filtering. The value must be a string, a -// number, or a boolean. The 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`. The `:*` comparison can be used to test whether a key has -// been defined. For example, to find all objects with `owner` label use: ``` -// labels.owner:* ``` 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) ``` If you want to use a regular -// expression, use the `eq` (equal) or `ne` (not equal) operator against a -// single un-parenthesized expression with or without quotes or against -// multiple parenthesized expressions. Examples: `fieldname eq unquoted -// literal` `fieldname eq 'single quoted literal'` `fieldname eq "double quoted -// literal" `(fieldname1 eq literal) (fieldname2 ne "literal")` The literal -// value is interpreted as a regular expression using Google RE2 library -// syntax. The literal value must match the entire field. For example, to -// filter for instances that do not end with name "instance", you would use -// `name ne .*instance`. You cannot combine constraints on multiple fields -// using regular expressions. -func (c *RegionInstantSnapshotsListCall) Filter(filter string) *RegionInstantSnapshotsListCall { +// filters resources listed in the response. Most +// Compute resources support two types of filter expressions: +// expressions that support regular expressions and expressions that follow +// API improvement proposal AIP-160. +// These two types of filter expressions cannot be mixed in one request. +// +// If you want to use AIP-160, your expression must specify the field name, +// an +// operator, and the value that you want to use for filtering. The value +// must be a string, a number, or a boolean. The 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`. +// +// The `:*` comparison can be used to test whether a key has been defined. +// For example, to find all objects with `owner` label +// use: +// ``` +// labels.owner:* +// ``` +// +// 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 onresource 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) +// ``` +// +// If you want to use a regular expression, use the `eq` (equal) or `ne` +// (not equal) operator against a single un-parenthesized expression with +// or +// without quotes or against multiple parenthesized expressions. +// Examples: +// +// `fieldname eq unquoted literal` +// `fieldname eq 'single quoted literal'` +// `fieldname eq "double quoted literal" +// `(fieldname1 eq literal) (fieldname2 ne "literal")` +// +// The literal value is interpreted as a regular expression using GoogleRE2 +// library syntax. +// The literal value must match the entire field. +// +// For example, to filter for instances that do not end with name +// "instance", +// you would use `name ne .*instance`. +// +// You cannot combine constraints on multiple fields using regular +// expressions. +func (c *RegionInstanceGroupManagersListCall) Filter(filter string) *RegionInstanceGroupManagersListCall { 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 *RegionInstantSnapshotsListCall) MaxResults(maxResults int64) *RegionInstantSnapshotsListCall { +// 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 *RegionInstanceGroupManagersListCall) MaxResults(maxResults int64) *RegionInstanceGroupManagersListCall { 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 *RegionInstantSnapshotsListCall) OrderBy(orderBy string) *RegionInstantSnapshotsListCall { +// 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 *RegionInstanceGroupManagersListCall) OrderBy(orderBy string) *RegionInstanceGroupManagersListCall { 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 *RegionInstantSnapshotsListCall) PageToken(pageToken string) *RegionInstantSnapshotsListCall { +// use. Set `pageToken` to the +// `nextPageToken` returned by a previous list request to get +// the next page of results. +func (c *RegionInstanceGroupManagersListCall) PageToken(pageToken string) *RegionInstanceGroupManagersListCall { c.urlParams_.Set("pageToken", pageToken) return c } // ReturnPartialSuccess sets the optional parameter "returnPartialSuccess": -// Opt-in for partial success behavior which provides partial results in case -// of failure. The default value is false. For example, when partial success -// behavior is enabled, aggregatedList for a single zone scope either returns -// all resources in the zone or no resources, with an error code. -func (c *RegionInstantSnapshotsListCall) ReturnPartialSuccess(returnPartialSuccess bool) *RegionInstantSnapshotsListCall { +// Opt-in for partial success behavior which provides partial results in +// case +// of failure. The default value is false. +// +// For example, when partial success behavior is enabled, aggregatedList for +// a +// single zone scope either returns all resources in the zone or no +// resources, +// with an error code. +func (c *RegionInstanceGroupManagersListCall) ReturnPartialSuccess(returnPartialSuccess bool) *RegionInstanceGroupManagersListCall { c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess)) return c } @@ -11131,7 +11876,7 @@ func (c *RegionInstantSnapshotsListCall) ReturnPartialSuccess(returnPartialSucce // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *RegionInstantSnapshotsListCall) Fields(s ...googleapi.Field) *RegionInstantSnapshotsListCall { +func (c *RegionInstanceGroupManagersListCall) Fields(s ...googleapi.Field) *RegionInstanceGroupManagersListCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } @@ -11139,37 +11884,36 @@ func (c *RegionInstantSnapshotsListCall) Fields(s ...googleapi.Field) *RegionIns // IfNoneMatch sets an 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. -func (c *RegionInstantSnapshotsListCall) IfNoneMatch(entityTag string) *RegionInstantSnapshotsListCall { +func (c *RegionInstanceGroupManagersListCall) IfNoneMatch(entityTag string) *RegionInstanceGroupManagersListCall { c.ifNoneMatch_ = entityTag return c } // Context sets the context to be used in this call's Do method. -func (c *RegionInstantSnapshotsListCall) Context(ctx context.Context) *RegionInstantSnapshotsListCall { +func (c *RegionInstanceGroupManagersListCall) Context(ctx context.Context) *RegionInstanceGroupManagersListCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *RegionInstantSnapshotsListCall) Header() http.Header { +func (c *RegionInstanceGroupManagersListCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *RegionInstantSnapshotsListCall) doRequest(alt string) (*http.Response, error) { +func (c *RegionInstanceGroupManagersListCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) if c.ifNoneMatch_ != "" { reqHeaders.Set("If-None-Match", c.ifNoneMatch_) } - var body io.Reader = nil c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/instantSnapshots") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/instanceGroupManagers") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("GET", urls, body) + req, err := http.NewRequest("GET", urls, nil) if err != nil { return nil, err } @@ -11178,16 +11922,17 @@ func (c *RegionInstantSnapshotsListCall) doRequest(alt string) (*http.Response, "project": c.project, "region": c.region, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.regionInstanceGroupManagers.list", "request", internallog.HTTPRequest(req, nil)) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.regionInstantSnapshots.list" call. +// Do executes the "compute.regionInstanceGroupManagers.list" call. // Any non-2xx status code is an error. Response headers are in either -// *InstantSnapshotList.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 *RegionInstantSnapshotsListCall) Do(opts ...googleapi.CallOption) (*InstantSnapshotList, error) { +// *RegionInstanceGroupManagerList.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 *RegionInstanceGroupManagersListCall) Do(opts ...googleapi.CallOption) (*RegionInstanceGroupManagerList, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -11206,23 +11951,25 @@ func (c *RegionInstantSnapshotsListCall) Do(opts ...googleapi.CallOption) (*Inst if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } - ret := &InstantSnapshotList{ + ret := &RegionInstanceGroupManagerList{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.regionInstanceGroupManagers.list", "response", internallog.HTTPResponse(res, b)) return ret, nil } // 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 *RegionInstantSnapshotsListCall) Pages(ctx context.Context, f func(*InstantSnapshotList) error) error { +func (c *RegionInstanceGroupManagersListCall) Pages(ctx context.Context, f func(*RegionInstanceGroupManagerList) error) error { c.ctx_ = ctx defer c.PageToken(c.urlParams_.Get("pageToken")) for { @@ -11240,85 +11987,226 @@ func (c *RegionInstantSnapshotsListCall) Pages(ctx context.Context, f func(*Inst } } -type RegionInstantSnapshotsSetIamPolicyCall struct { - s *Service - project string - region string - resource string - regionsetpolicyrequest *RegionSetPolicyRequest - urlParams_ gensupport.URLParams - ctx_ context.Context - header_ http.Header +type RegionInstanceGroupManagersListErrorsCall struct { + s *Service + project string + region string + instanceGroupManager string + urlParams_ gensupport.URLParams + ifNoneMatch_ string + ctx_ context.Context + header_ http.Header } -// SetIamPolicy: Sets the access control policy on the specified resource. -// Replaces any existing policy. +// ListErrors: Lists all errors thrown by actions on instances for a given +// regional +// managed instance group. The filter andorderBy query parameters are not +// supported. // -// - project: Project ID for this request. -// - region: The name of the region for this request. -// - resource: Name or id of the resource for this request. -func (r *RegionInstantSnapshotsService) SetIamPolicy(project string, region string, resource string, regionsetpolicyrequest *RegionSetPolicyRequest) *RegionInstantSnapshotsSetIamPolicyCall { - c := &RegionInstantSnapshotsSetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)} +// - instanceGroupManager: The name of the managed instance group. +// It must be a string that meets the requirements in RFC1035, or an +// unsigned long integer: must match regexp pattern: +// (?:a-z (?:[-a-z0-9]{0,61}[a-z0-9])?)|1-9{0,19}. +// - project: Project ID for this request. +// - region: Name of the region scoping this request. +// This should conform to RFC1035. +func (r *RegionInstanceGroupManagersService) ListErrors(project string, region string, instanceGroupManager string) *RegionInstanceGroupManagersListErrorsCall { + c := &RegionInstanceGroupManagersListErrorsCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project c.region = region - c.resource = resource - c.regionsetpolicyrequest = regionsetpolicyrequest + c.instanceGroupManager = instanceGroupManager + return c +} + +// Filter sets the optional parameter "filter": A filter expression that +// filters resources listed in the response. Most +// Compute resources support two types of filter expressions: +// expressions that support regular expressions and expressions that follow +// API improvement proposal AIP-160. +// These two types of filter expressions cannot be mixed in one request. +// +// If you want to use AIP-160, your expression must specify the field name, +// an +// operator, and the value that you want to use for filtering. The value +// must be a string, a number, or a boolean. The 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`. +// +// The `:*` comparison can be used to test whether a key has been defined. +// For example, to find all objects with `owner` label +// use: +// ``` +// labels.owner:* +// ``` +// +// 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 onresource 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) +// ``` +// +// If you want to use a regular expression, use the `eq` (equal) or `ne` +// (not equal) operator against a single un-parenthesized expression with +// or +// without quotes or against multiple parenthesized expressions. +// Examples: +// +// `fieldname eq unquoted literal` +// `fieldname eq 'single quoted literal'` +// `fieldname eq "double quoted literal" +// `(fieldname1 eq literal) (fieldname2 ne "literal")` +// +// The literal value is interpreted as a regular expression using GoogleRE2 +// library syntax. +// The literal value must match the entire field. +// +// For example, to filter for instances that do not end with name +// "instance", +// you would use `name ne .*instance`. +// +// You cannot combine constraints on multiple fields using regular +// expressions. +func (c *RegionInstanceGroupManagersListErrorsCall) Filter(filter string) *RegionInstanceGroupManagersListErrorsCall { + 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 *RegionInstanceGroupManagersListErrorsCall) MaxResults(maxResults int64) *RegionInstanceGroupManagersListErrorsCall { + 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 *RegionInstanceGroupManagersListErrorsCall) OrderBy(orderBy string) *RegionInstanceGroupManagersListErrorsCall { + 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 *RegionInstanceGroupManagersListErrorsCall) PageToken(pageToken string) *RegionInstanceGroupManagersListErrorsCall { + c.urlParams_.Set("pageToken", pageToken) + return c +} + +// ReturnPartialSuccess sets the optional parameter "returnPartialSuccess": +// Opt-in for partial success behavior which provides partial results in +// case +// of failure. The default value is false. +// +// For example, when partial success behavior is enabled, aggregatedList for +// a +// single zone scope either returns all resources in the zone or no +// resources, +// with an error code. +func (c *RegionInstanceGroupManagersListErrorsCall) ReturnPartialSuccess(returnPartialSuccess bool) *RegionInstanceGroupManagersListErrorsCall { + c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess)) return c } // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *RegionInstantSnapshotsSetIamPolicyCall) Fields(s ...googleapi.Field) *RegionInstantSnapshotsSetIamPolicyCall { +func (c *RegionInstanceGroupManagersListErrorsCall) Fields(s ...googleapi.Field) *RegionInstanceGroupManagersListErrorsCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } +// IfNoneMatch sets an 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. +func (c *RegionInstanceGroupManagersListErrorsCall) IfNoneMatch(entityTag string) *RegionInstanceGroupManagersListErrorsCall { + c.ifNoneMatch_ = entityTag + return c +} + // Context sets the context to be used in this call's Do method. -func (c *RegionInstantSnapshotsSetIamPolicyCall) Context(ctx context.Context) *RegionInstantSnapshotsSetIamPolicyCall { +func (c *RegionInstanceGroupManagersListErrorsCall) Context(ctx context.Context) *RegionInstanceGroupManagersListErrorsCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *RegionInstantSnapshotsSetIamPolicyCall) Header() http.Header { +func (c *RegionInstanceGroupManagersListErrorsCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *RegionInstantSnapshotsSetIamPolicyCall) doRequest(alt string) (*http.Response, error) { - reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) - var body io.Reader = nil - body, err := googleapi.WithoutDataWrapper.JSONReader(c.regionsetpolicyrequest) - if err != nil { - return nil, err +func (c *RegionInstanceGroupManagersListErrorsCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) + if c.ifNoneMatch_ != "" { + reqHeaders.Set("If-None-Match", c.ifNoneMatch_) } c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/instantSnapshots/{resource}/setIamPolicy") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/listErrors") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("POST", urls, body) + req, err := http.NewRequest("GET", urls, nil) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "region": c.region, - "resource": c.resource, + "project": c.project, + "region": c.region, + "instanceGroupManager": c.instanceGroupManager, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.regionInstanceGroupManagers.listErrors", "request", internallog.HTTPRequest(req, nil)) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.regionInstantSnapshots.setIamPolicy" call. +// Do executes the "compute.regionInstanceGroupManagers.listErrors" call. // Any non-2xx status code is an error. Response headers are in either -// *Policy.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 *RegionInstantSnapshotsSetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, error) { +// *RegionInstanceGroupManagersListErrorsResponse.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 *RegionInstanceGroupManagersListErrorsCall) Do(opts ...googleapi.CallOption) (*RegionInstanceGroupManagersListErrorsResponse, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -11337,113 +12225,250 @@ func (c *RegionInstantSnapshotsSetIamPolicyCall) Do(opts ...googleapi.CallOption if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } - ret := &Policy{ + ret := &RegionInstanceGroupManagersListErrorsResponse{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.regionInstanceGroupManagers.listErrors", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type RegionInstantSnapshotsSetLabelsCall struct { - s *Service - project string - region string - resource string - regionsetlabelsrequest *RegionSetLabelsRequest - urlParams_ gensupport.URLParams - ctx_ context.Context - header_ http.Header +// 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 *RegionInstanceGroupManagersListErrorsCall) Pages(ctx context.Context, f func(*RegionInstanceGroupManagersListErrorsResponse) error) error { + c.ctx_ = ctx + defer c.PageToken(c.urlParams_.Get("pageToken")) + 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) + } } -// SetLabels: Sets the labels on a instantSnapshot in the given region. To -// learn more about labels, read the Labeling Resources documentation. +type RegionInstanceGroupManagersListManagedInstancesCall struct { + s *Service + project string + region string + instanceGroupManager string + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header +} + +// ListManagedInstances: Lists the instances in the managed instance group and +// instances that are +// scheduled to be created. The list includes any current actions +// that the group has scheduled for its instances. The orderBy +// query parameter is not supported. The `pageToken` query parameter +// is +// supported only if the group's `listManagedInstancesResults` field is set +// to `PAGINATED`. // +// - instanceGroupManager: The name of the managed instance group. // - project: Project ID for this request. -// - region: The region for this request. -// - resource: Name or id of the resource for this request. -func (r *RegionInstantSnapshotsService) SetLabels(project string, region string, resource string, regionsetlabelsrequest *RegionSetLabelsRequest) *RegionInstantSnapshotsSetLabelsCall { - c := &RegionInstantSnapshotsSetLabelsCall{s: r.s, urlParams_: make(gensupport.URLParams)} +// - region: Name of the region scoping this request. +func (r *RegionInstanceGroupManagersService) ListManagedInstances(project string, region string, instanceGroupManager string) *RegionInstanceGroupManagersListManagedInstancesCall { + c := &RegionInstanceGroupManagersListManagedInstancesCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project c.region = region - c.resource = resource - c.regionsetlabelsrequest = regionsetlabelsrequest + c.instanceGroupManager = instanceGroupManager 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 *RegionInstantSnapshotsSetLabelsCall) RequestId(requestId string) *RegionInstantSnapshotsSetLabelsCall { - c.urlParams_.Set("requestId", requestId) +// Filter sets the optional parameter "filter": A filter expression that +// filters resources listed in the response. Most +// Compute resources support two types of filter expressions: +// expressions that support regular expressions and expressions that follow +// API improvement proposal AIP-160. +// These two types of filter expressions cannot be mixed in one request. +// +// If you want to use AIP-160, your expression must specify the field name, +// an +// operator, and the value that you want to use for filtering. The value +// must be a string, a number, or a boolean. The 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`. +// +// The `:*` comparison can be used to test whether a key has been defined. +// For example, to find all objects with `owner` label +// use: +// ``` +// labels.owner:* +// ``` +// +// 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 onresource 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) +// ``` +// +// If you want to use a regular expression, use the `eq` (equal) or `ne` +// (not equal) operator against a single un-parenthesized expression with +// or +// without quotes or against multiple parenthesized expressions. +// Examples: +// +// `fieldname eq unquoted literal` +// `fieldname eq 'single quoted literal'` +// `fieldname eq "double quoted literal" +// `(fieldname1 eq literal) (fieldname2 ne "literal")` +// +// The literal value is interpreted as a regular expression using GoogleRE2 +// library syntax. +// The literal value must match the entire field. +// +// For example, to filter for instances that do not end with name +// "instance", +// you would use `name ne .*instance`. +// +// You cannot combine constraints on multiple fields using regular +// expressions. +func (c *RegionInstanceGroupManagersListManagedInstancesCall) Filter(filter string) *RegionInstanceGroupManagersListManagedInstancesCall { + 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 *RegionInstanceGroupManagersListManagedInstancesCall) MaxResults(maxResults int64) *RegionInstanceGroupManagersListManagedInstancesCall { + 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 *RegionInstanceGroupManagersListManagedInstancesCall) OrderBy(orderBy string) *RegionInstanceGroupManagersListManagedInstancesCall { + 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 *RegionInstanceGroupManagersListManagedInstancesCall) PageToken(pageToken string) *RegionInstanceGroupManagersListManagedInstancesCall { + c.urlParams_.Set("pageToken", pageToken) + return c +} + +// ReturnPartialSuccess sets the optional parameter "returnPartialSuccess": +// Opt-in for partial success behavior which provides partial results in +// case +// of failure. The default value is false. +// +// For example, when partial success behavior is enabled, aggregatedList for +// a +// single zone scope either returns all resources in the zone or no +// resources, +// with an error code. +func (c *RegionInstanceGroupManagersListManagedInstancesCall) ReturnPartialSuccess(returnPartialSuccess bool) *RegionInstanceGroupManagersListManagedInstancesCall { + c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess)) return c } // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *RegionInstantSnapshotsSetLabelsCall) Fields(s ...googleapi.Field) *RegionInstantSnapshotsSetLabelsCall { +func (c *RegionInstanceGroupManagersListManagedInstancesCall) Fields(s ...googleapi.Field) *RegionInstanceGroupManagersListManagedInstancesCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } // Context sets the context to be used in this call's Do method. -func (c *RegionInstantSnapshotsSetLabelsCall) Context(ctx context.Context) *RegionInstantSnapshotsSetLabelsCall { +func (c *RegionInstanceGroupManagersListManagedInstancesCall) Context(ctx context.Context) *RegionInstanceGroupManagersListManagedInstancesCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *RegionInstantSnapshotsSetLabelsCall) Header() http.Header { +func (c *RegionInstanceGroupManagersListManagedInstancesCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *RegionInstantSnapshotsSetLabelsCall) doRequest(alt string) (*http.Response, error) { - reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) - var body io.Reader = nil - body, err := googleapi.WithoutDataWrapper.JSONReader(c.regionsetlabelsrequest) - if err != nil { - return nil, err - } +func (c *RegionInstanceGroupManagersListManagedInstancesCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/instantSnapshots/{resource}/setLabels") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/listManagedInstances") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("POST", urls, body) + req, err := http.NewRequest("POST", urls, nil) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "region": c.region, - "resource": c.resource, + "project": c.project, + "region": c.region, + "instanceGroupManager": c.instanceGroupManager, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.regionInstanceGroupManagers.listManagedInstances", "request", internallog.HTTPRequest(req, nil)) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.regionInstantSnapshots.setLabels" call. +// Do executes the "compute.regionInstanceGroupManagers.listManagedInstances" call. // 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 *RegionInstantSnapshotsSetLabelsCall) Do(opts ...googleapi.CallOption) (*Operation, error) { +// *RegionInstanceGroupManagersListInstancesResponse.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 *RegionInstanceGroupManagersListManagedInstancesCall) Do(opts ...googleapi.CallOption) (*RegionInstanceGroupManagersListInstancesResponse, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -11462,99 +12487,247 @@ func (c *RegionInstantSnapshotsSetLabelsCall) Do(opts ...googleapi.CallOption) ( if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } - ret := &Operation{ + ret := &RegionInstanceGroupManagersListInstancesResponse{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.regionInstanceGroupManagers.listManagedInstances", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type RegionInstantSnapshotsTestIamPermissionsCall struct { - s *Service - project string - region string - resource string - testpermissionsrequest *TestPermissionsRequest - urlParams_ gensupport.URLParams - ctx_ context.Context - header_ http.Header +// 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 *RegionInstanceGroupManagersListManagedInstancesCall) Pages(ctx context.Context, f func(*RegionInstanceGroupManagersListInstancesResponse) error) error { + c.ctx_ = ctx + defer c.PageToken(c.urlParams_.Get("pageToken")) + 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) + } } -// TestIamPermissions: Returns permissions that a caller has on the specified -// resource. +type RegionInstanceGroupManagersListPerInstanceConfigsCall struct { + s *Service + project string + region string + instanceGroupManager string + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header +} + +// ListPerInstanceConfigs: Lists all of the per-instance configurations defined +// for the managed +// instance group. The orderBy query parameter is not supported. // -// - project: Project ID for this request. -// - region: The name of the region for this request. -// - resource: Name or id of the resource for this request. -func (r *RegionInstantSnapshotsService) TestIamPermissions(project string, region string, resource string, testpermissionsrequest *TestPermissionsRequest) *RegionInstantSnapshotsTestIamPermissionsCall { - c := &RegionInstantSnapshotsTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)} +// - instanceGroupManager: The name of the managed instance group. It should +// conform to RFC1035. +// - project: Project ID for this request. +// - region: Name of the region scoping this request, should conform to +// RFC1035. +func (r *RegionInstanceGroupManagersService) ListPerInstanceConfigs(project string, region string, instanceGroupManager string) *RegionInstanceGroupManagersListPerInstanceConfigsCall { + c := &RegionInstanceGroupManagersListPerInstanceConfigsCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project c.region = region - c.resource = resource - c.testpermissionsrequest = testpermissionsrequest + c.instanceGroupManager = instanceGroupManager + return c +} + +// Filter sets the optional parameter "filter": A filter expression that +// filters resources listed in the response. Most +// Compute resources support two types of filter expressions: +// expressions that support regular expressions and expressions that follow +// API improvement proposal AIP-160. +// These two types of filter expressions cannot be mixed in one request. +// +// If you want to use AIP-160, your expression must specify the field name, +// an +// operator, and the value that you want to use for filtering. The value +// must be a string, a number, or a boolean. The 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`. +// +// The `:*` comparison can be used to test whether a key has been defined. +// For example, to find all objects with `owner` label +// use: +// ``` +// labels.owner:* +// ``` +// +// 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 onresource 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) +// ``` +// +// If you want to use a regular expression, use the `eq` (equal) or `ne` +// (not equal) operator against a single un-parenthesized expression with +// or +// without quotes or against multiple parenthesized expressions. +// Examples: +// +// `fieldname eq unquoted literal` +// `fieldname eq 'single quoted literal'` +// `fieldname eq "double quoted literal" +// `(fieldname1 eq literal) (fieldname2 ne "literal")` +// +// The literal value is interpreted as a regular expression using GoogleRE2 +// library syntax. +// The literal value must match the entire field. +// +// For example, to filter for instances that do not end with name +// "instance", +// you would use `name ne .*instance`. +// +// You cannot combine constraints on multiple fields using regular +// expressions. +func (c *RegionInstanceGroupManagersListPerInstanceConfigsCall) Filter(filter string) *RegionInstanceGroupManagersListPerInstanceConfigsCall { + 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 *RegionInstanceGroupManagersListPerInstanceConfigsCall) MaxResults(maxResults int64) *RegionInstanceGroupManagersListPerInstanceConfigsCall { + 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 *RegionInstanceGroupManagersListPerInstanceConfigsCall) OrderBy(orderBy string) *RegionInstanceGroupManagersListPerInstanceConfigsCall { + 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 *RegionInstanceGroupManagersListPerInstanceConfigsCall) PageToken(pageToken string) *RegionInstanceGroupManagersListPerInstanceConfigsCall { + c.urlParams_.Set("pageToken", pageToken) + return c +} + +// ReturnPartialSuccess sets the optional parameter "returnPartialSuccess": +// Opt-in for partial success behavior which provides partial results in +// case +// of failure. The default value is false. +// +// For example, when partial success behavior is enabled, aggregatedList for +// a +// single zone scope either returns all resources in the zone or no +// resources, +// with an error code. +func (c *RegionInstanceGroupManagersListPerInstanceConfigsCall) ReturnPartialSuccess(returnPartialSuccess bool) *RegionInstanceGroupManagersListPerInstanceConfigsCall { + c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess)) return c } // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *RegionInstantSnapshotsTestIamPermissionsCall) Fields(s ...googleapi.Field) *RegionInstantSnapshotsTestIamPermissionsCall { +func (c *RegionInstanceGroupManagersListPerInstanceConfigsCall) Fields(s ...googleapi.Field) *RegionInstanceGroupManagersListPerInstanceConfigsCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } // Context sets the context to be used in this call's Do method. -func (c *RegionInstantSnapshotsTestIamPermissionsCall) Context(ctx context.Context) *RegionInstantSnapshotsTestIamPermissionsCall { +func (c *RegionInstanceGroupManagersListPerInstanceConfigsCall) Context(ctx context.Context) *RegionInstanceGroupManagersListPerInstanceConfigsCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *RegionInstantSnapshotsTestIamPermissionsCall) Header() http.Header { +func (c *RegionInstanceGroupManagersListPerInstanceConfigsCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *RegionInstantSnapshotsTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) { - reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) - var body io.Reader = nil - body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest) - if err != nil { - return nil, err - } +func (c *RegionInstanceGroupManagersListPerInstanceConfigsCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/instantSnapshots/{resource}/testIamPermissions") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/listPerInstanceConfigs") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("POST", urls, body) + req, err := http.NewRequest("POST", urls, nil) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "region": c.region, - "resource": c.resource, + "project": c.project, + "region": c.region, + "instanceGroupManager": c.instanceGroupManager, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.regionInstanceGroupManagers.listPerInstanceConfigs", "request", internallog.HTTPRequest(req, nil)) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.regionInstantSnapshots.testIamPermissions" call. +// Do executes the "compute.regionInstanceGroupManagers.listPerInstanceConfigs" call. // Any non-2xx status code is an error. Response headers are in either -// *TestPermissionsResponse.ServerResponse.Header or (if a response was -// returned at all) in error.(*googleapi.Error).Header. Use +// *RegionInstanceGroupManagersListInstanceConfigsResp.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 *RegionInstantSnapshotsTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) { +func (c *RegionInstanceGroupManagersListPerInstanceConfigsCall) Do(opts ...googleapi.CallOption) (*RegionInstanceGroupManagersListInstanceConfigsResp, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -11573,58 +12746,104 @@ func (c *RegionInstantSnapshotsTestIamPermissionsCall) Do(opts ...googleapi.Call if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } - ret := &TestPermissionsResponse{ + ret := &RegionInstanceGroupManagersListInstanceConfigsResp{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.regionInstanceGroupManagers.listPerInstanceConfigs", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type RegionNetworkEndpointGroupsAttachNetworkEndpointsCall struct { - s *Service - project string - region string - networkEndpointGroup string - regionnetworkendpointgroupsattachendpointsrequest *RegionNetworkEndpointGroupsAttachEndpointsRequest - urlParams_ gensupport.URLParams - ctx_ context.Context - header_ http.Header +// 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 *RegionInstanceGroupManagersListPerInstanceConfigsCall) Pages(ctx context.Context, f func(*RegionInstanceGroupManagersListInstanceConfigsResp) error) error { + c.ctx_ = ctx + defer c.PageToken(c.urlParams_.Get("pageToken")) + 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) + } } -// AttachNetworkEndpoints: Attach a list of network endpoints to the specified -// network endpoint group. +type RegionInstanceGroupManagersPatchCall struct { + s *Service + project string + region string + instanceGroupManager string + instancegroupmanager *InstanceGroupManager + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header +} + +// Patch: Updates a managed instance group using the information that you +// specify +// in the request. +// This operation is marked as DONE when the group is patched +// even if the instances in the group are still in the process of +// being +// patched. You must separately verify the status of the individual +// instances +// with the listmanagedinstances +// method. This method supportsPATCH +// semantics and uses theJSON merge +// patch format and processing rules. // -// - networkEndpointGroup: The name of the network endpoint group where you are -// attaching network endpoints to. It should comply with RFC1035. -// - project: Project ID for this request. -// - region: The name of the region where you want to create the network -// endpoint group. It should comply with RFC1035. -func (r *RegionNetworkEndpointGroupsService) AttachNetworkEndpoints(project string, region string, networkEndpointGroup string, regionnetworkendpointgroupsattachendpointsrequest *RegionNetworkEndpointGroupsAttachEndpointsRequest) *RegionNetworkEndpointGroupsAttachNetworkEndpointsCall { - c := &RegionNetworkEndpointGroupsAttachNetworkEndpointsCall{s: r.s, urlParams_: make(gensupport.URLParams)} +// If you update your group to specify a new template or +// instance +// configuration, it's possible that your intended specification for each VM +// in the group is different from the current state of that VM. To learn how +// to apply an updated configuration to the VMs in a MIG, seeUpdating instances +// in +// a MIG. +// +// - instanceGroupManager: The name of the instance group manager. +// - project: Project ID for this request. +// - region: Name of the region scoping this request. +func (r *RegionInstanceGroupManagersService) Patch(project string, region string, instanceGroupManager string, instancegroupmanager *InstanceGroupManager) *RegionInstanceGroupManagersPatchCall { + c := &RegionInstanceGroupManagersPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project c.region = region - c.networkEndpointGroup = networkEndpointGroup - c.regionnetworkendpointgroupsattachendpointsrequest = regionnetworkendpointgroupsattachendpointsrequest + c.instanceGroupManager = instanceGroupManager + c.instancegroupmanager = instancegroupmanager 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 *RegionNetworkEndpointGroupsAttachNetworkEndpointsCall) RequestId(requestId string) *RegionNetworkEndpointGroupsAttachNetworkEndpointsCall { +// 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 *RegionInstanceGroupManagersPatchCall) RequestId(requestId string) *RegionInstanceGroupManagersPatchCall { c.urlParams_.Set("requestId", requestId) return c } @@ -11632,38 +12851,37 @@ func (c *RegionNetworkEndpointGroupsAttachNetworkEndpointsCall) RequestId(reques // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *RegionNetworkEndpointGroupsAttachNetworkEndpointsCall) Fields(s ...googleapi.Field) *RegionNetworkEndpointGroupsAttachNetworkEndpointsCall { +func (c *RegionInstanceGroupManagersPatchCall) Fields(s ...googleapi.Field) *RegionInstanceGroupManagersPatchCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } // Context sets the context to be used in this call's Do method. -func (c *RegionNetworkEndpointGroupsAttachNetworkEndpointsCall) Context(ctx context.Context) *RegionNetworkEndpointGroupsAttachNetworkEndpointsCall { +func (c *RegionInstanceGroupManagersPatchCall) Context(ctx context.Context) *RegionInstanceGroupManagersPatchCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *RegionNetworkEndpointGroupsAttachNetworkEndpointsCall) Header() http.Header { +func (c *RegionInstanceGroupManagersPatchCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *RegionNetworkEndpointGroupsAttachNetworkEndpointsCall) doRequest(alt string) (*http.Response, error) { +func (c *RegionInstanceGroupManagersPatchCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) - var body io.Reader = nil - body, err := googleapi.WithoutDataWrapper.JSONReader(c.regionnetworkendpointgroupsattachendpointsrequest) + body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.instancegroupmanager) if err != nil { return nil, err } c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/networkEndpointGroups/{networkEndpointGroup}/attachNetworkEndpoints") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("POST", urls, body) + req, err := http.NewRequest("PATCH", urls, body) if err != nil { return nil, err } @@ -11671,17 +12889,18 @@ func (c *RegionNetworkEndpointGroupsAttachNetworkEndpointsCall) doRequest(alt st googleapi.Expand(req.URL, map[string]string{ "project": c.project, "region": c.region, - "networkEndpointGroup": c.networkEndpointGroup, + "instanceGroupManager": c.instanceGroupManager, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.regionInstanceGroupManagers.patch", "request", internallog.HTTPRequest(req, body.Bytes())) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.regionNetworkEndpointGroups.attachNetworkEndpoints" call. +// Do executes the "compute.regionInstanceGroupManagers.patch" call. // 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 *RegionNetworkEndpointGroupsAttachNetworkEndpointsCall) Do(opts ...googleapi.CallOption) (*Operation, error) { +func (c *RegionInstanceGroupManagersPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -11707,49 +12926,62 @@ func (c *RegionNetworkEndpointGroupsAttachNetworkEndpointsCall) Do(opts ...googl }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.regionInstanceGroupManagers.patch", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type RegionNetworkEndpointGroupsDeleteCall struct { - s *Service - project string - region string - networkEndpointGroup string - urlParams_ gensupport.URLParams - ctx_ context.Context - header_ http.Header +type RegionInstanceGroupManagersPatchPerInstanceConfigsCall struct { + s *Service + project string + region string + instanceGroupManager string + regioninstancegroupmanagerpatchinstanceconfigreq *RegionInstanceGroupManagerPatchInstanceConfigReq + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header } -// Delete: Deletes the specified network endpoint group. Note that the NEG -// cannot be deleted if it is configured as a backend of a backend service. +// PatchPerInstanceConfigs: Inserts or patches per-instance configurations for +// the managed instance +// group. perInstanceConfig.name serves as a key used to +// distinguish whether to perform insert or patch. // -// - networkEndpointGroup: The name of the network endpoint group to delete. It -// should comply with RFC1035. +// - instanceGroupManager: The name of the managed instance group. +// It should conform to RFC1035. // - project: Project ID for this request. -// - region: The name of the region where the network endpoint group is -// located. It should comply with RFC1035. -func (r *RegionNetworkEndpointGroupsService) Delete(project string, region string, networkEndpointGroup string) *RegionNetworkEndpointGroupsDeleteCall { - c := &RegionNetworkEndpointGroupsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)} +// - region: Name of the region scoping this request, should conform to +// RFC1035. +func (r *RegionInstanceGroupManagersService) PatchPerInstanceConfigs(project string, region string, instanceGroupManager string, regioninstancegroupmanagerpatchinstanceconfigreq *RegionInstanceGroupManagerPatchInstanceConfigReq) *RegionInstanceGroupManagersPatchPerInstanceConfigsCall { + c := &RegionInstanceGroupManagersPatchPerInstanceConfigsCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project c.region = region - c.networkEndpointGroup = networkEndpointGroup + c.instanceGroupManager = instanceGroupManager + c.regioninstancegroupmanagerpatchinstanceconfigreq = regioninstancegroupmanagerpatchinstanceconfigreq 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 *RegionNetworkEndpointGroupsDeleteCall) RequestId(requestId string) *RegionNetworkEndpointGroupsDeleteCall { +// 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 *RegionInstanceGroupManagersPatchPerInstanceConfigsCall) RequestId(requestId string) *RegionInstanceGroupManagersPatchPerInstanceConfigsCall { c.urlParams_.Set("requestId", requestId) return c } @@ -11757,34 +12989,37 @@ func (c *RegionNetworkEndpointGroupsDeleteCall) RequestId(requestId string) *Reg // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *RegionNetworkEndpointGroupsDeleteCall) Fields(s ...googleapi.Field) *RegionNetworkEndpointGroupsDeleteCall { +func (c *RegionInstanceGroupManagersPatchPerInstanceConfigsCall) Fields(s ...googleapi.Field) *RegionInstanceGroupManagersPatchPerInstanceConfigsCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } // Context sets the context to be used in this call's Do method. -func (c *RegionNetworkEndpointGroupsDeleteCall) Context(ctx context.Context) *RegionNetworkEndpointGroupsDeleteCall { +func (c *RegionInstanceGroupManagersPatchPerInstanceConfigsCall) Context(ctx context.Context) *RegionInstanceGroupManagersPatchPerInstanceConfigsCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *RegionNetworkEndpointGroupsDeleteCall) Header() http.Header { +func (c *RegionInstanceGroupManagersPatchPerInstanceConfigsCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *RegionNetworkEndpointGroupsDeleteCall) doRequest(alt string) (*http.Response, error) { - reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) - var body io.Reader = nil +func (c *RegionInstanceGroupManagersPatchPerInstanceConfigsCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) + body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.regioninstancegroupmanagerpatchinstanceconfigreq) + if err != nil { + return nil, err + } c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/networkEndpointGroups/{networkEndpointGroup}") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/patchPerInstanceConfigs") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("DELETE", urls, body) + req, err := http.NewRequest("POST", urls, body) if err != nil { return nil, err } @@ -11792,17 +13027,18 @@ func (c *RegionNetworkEndpointGroupsDeleteCall) doRequest(alt string) (*http.Res googleapi.Expand(req.URL, map[string]string{ "project": c.project, "region": c.region, - "networkEndpointGroup": c.networkEndpointGroup, + "instanceGroupManager": c.instanceGroupManager, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.regionInstanceGroupManagers.patchPerInstanceConfigs", "request", internallog.HTTPRequest(req, body.Bytes())) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.regionNetworkEndpointGroups.delete" call. +// Do executes the "compute.regionInstanceGroupManagers.patchPerInstanceConfigs" call. // 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 *RegionNetworkEndpointGroupsDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) { +func (c *RegionInstanceGroupManagersPatchPerInstanceConfigsCall) Do(opts ...googleapi.CallOption) (*Operation, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -11828,52 +13064,84 @@ func (c *RegionNetworkEndpointGroupsDeleteCall) Do(opts ...googleapi.CallOption) }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.regionInstanceGroupManagers.patchPerInstanceConfigs", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type RegionNetworkEndpointGroupsDetachNetworkEndpointsCall struct { - s *Service - project string - region string - networkEndpointGroup string - regionnetworkendpointgroupsdetachendpointsrequest *RegionNetworkEndpointGroupsDetachEndpointsRequest - urlParams_ gensupport.URLParams - ctx_ context.Context - header_ http.Header +type RegionInstanceGroupManagersRecreateInstancesCall struct { + s *Service + project string + region string + instanceGroupManager string + regioninstancegroupmanagersrecreaterequest *RegionInstanceGroupManagersRecreateRequest + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header } -// DetachNetworkEndpoints: Detach the network endpoint from the specified -// network endpoint group. +// RecreateInstances: Flags the specified VM instances in the managed instance +// group to be +// immediately recreated. Each instance is recreated using the group's +// current +// configuration. This operation is marked as DONE when the flag +// is set even if the instances have not yet been recreated. You +// must +// separately verify the status of each instance by checking itscurrentAction +// field; for more information, see Checking +// the status of managed instances. // -// - networkEndpointGroup: The name of the network endpoint group you are -// detaching network endpoints from. It should comply with RFC1035. -// - project: Project ID for this request. -// - region: The name of the region where the network endpoint group is -// located. It should comply with RFC1035. -func (r *RegionNetworkEndpointGroupsService) DetachNetworkEndpoints(project string, region string, networkEndpointGroup string, regionnetworkendpointgroupsdetachendpointsrequest *RegionNetworkEndpointGroupsDetachEndpointsRequest) *RegionNetworkEndpointGroupsDetachNetworkEndpointsCall { - c := &RegionNetworkEndpointGroupsDetachNetworkEndpointsCall{s: r.s, urlParams_: make(gensupport.URLParams)} +// If the group is part of a backend +// service that has enabled +// connection draining, it can take up to 60 seconds after the +// connection +// draining duration has elapsed before the VM instance is removed or +// deleted. +// +// You can specify a maximum of 1000 instances with this method per request. +// +// - instanceGroupManager: Name of the managed instance group. +// - project: Project ID for this request. +// - region: Name of the region scoping this request. +func (r *RegionInstanceGroupManagersService) RecreateInstances(project string, region string, instanceGroupManager string, regioninstancegroupmanagersrecreaterequest *RegionInstanceGroupManagersRecreateRequest) *RegionInstanceGroupManagersRecreateInstancesCall { + c := &RegionInstanceGroupManagersRecreateInstancesCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project c.region = region - c.networkEndpointGroup = networkEndpointGroup - c.regionnetworkendpointgroupsdetachendpointsrequest = regionnetworkendpointgroupsdetachendpointsrequest + c.instanceGroupManager = instanceGroupManager + c.regioninstancegroupmanagersrecreaterequest = regioninstancegroupmanagersrecreaterequest + return c +} + +// NoGracefulShutdown sets the optional parameter "noGracefulShutdown": When +// set, graceful shutdown is skipped for instance recreation even if +// it's +// configured for the instances. +func (c *RegionInstanceGroupManagersRecreateInstancesCall) NoGracefulShutdown(noGracefulShutdown bool) *RegionInstanceGroupManagersRecreateInstancesCall { + c.urlParams_.Set("noGracefulShutdown", fmt.Sprint(noGracefulShutdown)) 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). end_interface: -// MixerMutationRequestBuilder -func (c *RegionNetworkEndpointGroupsDetachNetworkEndpointsCall) RequestId(requestId string) *RegionNetworkEndpointGroupsDetachNetworkEndpointsCall { +// 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 *RegionInstanceGroupManagersRecreateInstancesCall) RequestId(requestId string) *RegionInstanceGroupManagersRecreateInstancesCall { c.urlParams_.Set("requestId", requestId) return c } @@ -11881,36 +13149,35 @@ func (c *RegionNetworkEndpointGroupsDetachNetworkEndpointsCall) RequestId(reques // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *RegionNetworkEndpointGroupsDetachNetworkEndpointsCall) Fields(s ...googleapi.Field) *RegionNetworkEndpointGroupsDetachNetworkEndpointsCall { +func (c *RegionInstanceGroupManagersRecreateInstancesCall) Fields(s ...googleapi.Field) *RegionInstanceGroupManagersRecreateInstancesCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } // Context sets the context to be used in this call's Do method. -func (c *RegionNetworkEndpointGroupsDetachNetworkEndpointsCall) Context(ctx context.Context) *RegionNetworkEndpointGroupsDetachNetworkEndpointsCall { +func (c *RegionInstanceGroupManagersRecreateInstancesCall) Context(ctx context.Context) *RegionInstanceGroupManagersRecreateInstancesCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *RegionNetworkEndpointGroupsDetachNetworkEndpointsCall) Header() http.Header { +func (c *RegionInstanceGroupManagersRecreateInstancesCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *RegionNetworkEndpointGroupsDetachNetworkEndpointsCall) doRequest(alt string) (*http.Response, error) { +func (c *RegionInstanceGroupManagersRecreateInstancesCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) - var body io.Reader = nil - body, err := googleapi.WithoutDataWrapper.JSONReader(c.regionnetworkendpointgroupsdetachendpointsrequest) + body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.regioninstancegroupmanagersrecreaterequest) if err != nil { return nil, err } c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/networkEndpointGroups/{networkEndpointGroup}/detachNetworkEndpoints") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/recreateInstances") urls += "?" + c.urlParams_.Encode() req, err := http.NewRequest("POST", urls, body) if err != nil { @@ -11920,17 +13187,18 @@ func (c *RegionNetworkEndpointGroupsDetachNetworkEndpointsCall) doRequest(alt st googleapi.Expand(req.URL, map[string]string{ "project": c.project, "region": c.region, - "networkEndpointGroup": c.networkEndpointGroup, + "instanceGroupManager": c.instanceGroupManager, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.regionInstanceGroupManagers.recreateInstances", "request", internallog.HTTPRequest(req, body.Bytes())) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.regionNetworkEndpointGroups.detachNetworkEndpoints" call. +// Do executes the "compute.regionInstanceGroupManagers.recreateInstances" call. // 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 *RegionNetworkEndpointGroupsDetachNetworkEndpointsCall) Do(opts ...googleapi.CallOption) (*Operation, error) { +func (c *RegionInstanceGroupManagersRecreateInstancesCall) Do(opts ...googleapi.CallOption) (*Operation, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -11956,80 +13224,112 @@ func (c *RegionNetworkEndpointGroupsDetachNetworkEndpointsCall) Do(opts ...googl }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.regionInstanceGroupManagers.recreateInstances", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type RegionNetworkEndpointGroupsGetCall struct { +type RegionInstanceGroupManagersResizeCall struct { s *Service project string region string - networkEndpointGroup string + instanceGroupManager string urlParams_ gensupport.URLParams - ifNoneMatch_ string ctx_ context.Context header_ http.Header } -// Get: Returns the specified network endpoint group. +// Resize: Changes the intended size of the managed instance group. If you +// increase +// the size, the group creates new instances using the current +// instance +// template. If you decrease the size, the group deletes one or +// more +// instances. // -// - networkEndpointGroup: The name of the network endpoint group. It should -// comply with RFC1035. +// The resize operation is marked DONE if theresize request is successful. The +// underlying actions take +// additional time. You must separately verify the status of thecreating or +// deleting actions with thelistmanagedinstances +// method. +// +// If the group is part of a backend +// service that has enabled +// connection draining, it can take up to 60 seconds after the +// connection +// draining duration has elapsed before the VM instance is removed or deleted. +// +// - instanceGroupManager: Name of the managed instance group. // - project: Project ID for this request. -// - region: The name of the region where the network endpoint group is -// located. It should comply with RFC1035. -func (r *RegionNetworkEndpointGroupsService) Get(project string, region string, networkEndpointGroup string) *RegionNetworkEndpointGroupsGetCall { - c := &RegionNetworkEndpointGroupsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)} +// - region: Name of the region scoping this request. +// - size: Number of instances that should exist in this instance +// group +// +// manager. +func (r *RegionInstanceGroupManagersService) Resize(project string, region string, instanceGroupManager string, size int64) *RegionInstanceGroupManagersResizeCall { + c := &RegionInstanceGroupManagersResizeCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project c.region = region - c.networkEndpointGroup = networkEndpointGroup + c.instanceGroupManager = instanceGroupManager + c.urlParams_.Set("size", fmt.Sprint(size)) return c } -// Fields allows partial responses to be retrieved. See -// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more -// details. -func (c *RegionNetworkEndpointGroupsGetCall) Fields(s ...googleapi.Field) *RegionNetworkEndpointGroupsGetCall { - c.urlParams_.Set("fields", googleapi.CombineFields(s)) - 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 *RegionInstanceGroupManagersResizeCall) RequestId(requestId string) *RegionInstanceGroupManagersResizeCall { + c.urlParams_.Set("requestId", requestId) + return c } -// IfNoneMatch sets an 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. -func (c *RegionNetworkEndpointGroupsGetCall) IfNoneMatch(entityTag string) *RegionNetworkEndpointGroupsGetCall { - c.ifNoneMatch_ = entityTag +// Fields allows partial responses to be retrieved. See +// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more +// details. +func (c *RegionInstanceGroupManagersResizeCall) Fields(s ...googleapi.Field) *RegionInstanceGroupManagersResizeCall { + c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } // Context sets the context to be used in this call's Do method. -func (c *RegionNetworkEndpointGroupsGetCall) Context(ctx context.Context) *RegionNetworkEndpointGroupsGetCall { +func (c *RegionInstanceGroupManagersResizeCall) Context(ctx context.Context) *RegionInstanceGroupManagersResizeCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *RegionNetworkEndpointGroupsGetCall) Header() http.Header { +func (c *RegionInstanceGroupManagersResizeCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *RegionNetworkEndpointGroupsGetCall) doRequest(alt string) (*http.Response, error) { +func (c *RegionInstanceGroupManagersResizeCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) - if c.ifNoneMatch_ != "" { - reqHeaders.Set("If-None-Match", c.ifNoneMatch_) - } - var body io.Reader = nil c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/networkEndpointGroups/{networkEndpointGroup}") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/resize") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("GET", urls, body) + req, err := http.NewRequest("POST", urls, nil) if err != nil { return nil, err } @@ -12037,18 +13337,18 @@ func (c *RegionNetworkEndpointGroupsGetCall) doRequest(alt string) (*http.Respon googleapi.Expand(req.URL, map[string]string{ "project": c.project, "region": c.region, - "networkEndpointGroup": c.networkEndpointGroup, + "instanceGroupManager": c.instanceGroupManager, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.regionInstanceGroupManagers.resize", "request", internallog.HTTPRequest(req, nil)) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.regionNetworkEndpointGroups.get" call. +// Do executes the "compute.regionInstanceGroupManagers.resize" call. // Any non-2xx status code is an error. Response headers are in either -// *NetworkEndpointGroup.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 *RegionNetworkEndpointGroupsGetCall) Do(opts ...googleapi.CallOption) (*NetworkEndpointGroup, error) { +// *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 *RegionInstanceGroupManagersResizeCall) Do(opts ...googleapi.CallOption) (*Operation, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -12067,54 +13367,86 @@ func (c *RegionNetworkEndpointGroupsGetCall) Do(opts ...googleapi.CallOption) (* if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } - ret := &NetworkEndpointGroup{ + ret := &Operation{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.regionInstanceGroupManagers.resize", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type RegionNetworkEndpointGroupsInsertCall struct { - s *Service - project string - region string - networkendpointgroup *NetworkEndpointGroup - urlParams_ gensupport.URLParams - ctx_ context.Context - header_ http.Header +type RegionInstanceGroupManagersResumeInstancesCall struct { + s *Service + project string + region string + instanceGroupManager string + regioninstancegroupmanagersresumeinstancesrequest *RegionInstanceGroupManagersResumeInstancesRequest + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header } -// Insert: Creates a network endpoint group in the specified project using the -// parameters that are included in the request. +// ResumeInstances: Flags the specified instances in the managed instance group +// to be +// resumed. This method increases thetargetSize and decreases the +// targetSuspendedSize +// of the managed instance group by the number of instances that you +// resume. +// The resumeInstances operation is marked DONE if +// the resumeInstances request is successful. The underlying +// actions take additional time. You must separately verify the status of +// theRESUMING action with thelistmanagedinstances +// method. // -// - project: Project ID for this request. -// - region: The name of the region where you want to create the network -// endpoint group. It should comply with RFC1035. -func (r *RegionNetworkEndpointGroupsService) Insert(project string, region string, networkendpointgroup *NetworkEndpointGroup) *RegionNetworkEndpointGroupsInsertCall { - c := &RegionNetworkEndpointGroupsInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)} +// In this request, you can only specify instances that are suspended. +// For +// example, if an instance was previously suspended using the +// suspendInstances +// method, it can be resumed using the resumeInstances method. +// +// If a health check is attached to the managed instance group, the +// specified +// instances will be verified as healthy after they are resumed. +// +// You can specify a maximum of 1000 instances with this method per request. +// +// - instanceGroupManager: Name of the managed instance group. +// - project: Project ID for this request. +// - region: Name of the region scoping this request. +func (r *RegionInstanceGroupManagersService) ResumeInstances(project string, region string, instanceGroupManager string, regioninstancegroupmanagersresumeinstancesrequest *RegionInstanceGroupManagersResumeInstancesRequest) *RegionInstanceGroupManagersResumeInstancesCall { + c := &RegionInstanceGroupManagersResumeInstancesCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project c.region = region - c.networkendpointgroup = networkendpointgroup + c.instanceGroupManager = instanceGroupManager + c.regioninstancegroupmanagersresumeinstancesrequest = regioninstancegroupmanagersresumeinstancesrequest 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 *RegionNetworkEndpointGroupsInsertCall) RequestId(requestId string) *RegionNetworkEndpointGroupsInsertCall { +// 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 *RegionInstanceGroupManagersResumeInstancesCall) RequestId(requestId string) *RegionInstanceGroupManagersResumeInstancesCall { c.urlParams_.Set("requestId", requestId) return c } @@ -12122,36 +13454,35 @@ func (c *RegionNetworkEndpointGroupsInsertCall) RequestId(requestId string) *Reg // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *RegionNetworkEndpointGroupsInsertCall) Fields(s ...googleapi.Field) *RegionNetworkEndpointGroupsInsertCall { +func (c *RegionInstanceGroupManagersResumeInstancesCall) Fields(s ...googleapi.Field) *RegionInstanceGroupManagersResumeInstancesCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } // Context sets the context to be used in this call's Do method. -func (c *RegionNetworkEndpointGroupsInsertCall) Context(ctx context.Context) *RegionNetworkEndpointGroupsInsertCall { +func (c *RegionInstanceGroupManagersResumeInstancesCall) Context(ctx context.Context) *RegionInstanceGroupManagersResumeInstancesCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *RegionNetworkEndpointGroupsInsertCall) Header() http.Header { +func (c *RegionInstanceGroupManagersResumeInstancesCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *RegionNetworkEndpointGroupsInsertCall) doRequest(alt string) (*http.Response, error) { +func (c *RegionInstanceGroupManagersResumeInstancesCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) - var body io.Reader = nil - body, err := googleapi.WithoutDataWrapper.JSONReader(c.networkendpointgroup) + body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.regioninstancegroupmanagersresumeinstancesrequest) if err != nil { return nil, err } c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/networkEndpointGroups") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/resumeInstances") urls += "?" + c.urlParams_.Encode() req, err := http.NewRequest("POST", urls, body) if err != nil { @@ -12159,18 +13490,20 @@ func (c *RegionNetworkEndpointGroupsInsertCall) doRequest(alt string) (*http.Res } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "region": c.region, + "project": c.project, + "region": c.region, + "instanceGroupManager": c.instanceGroupManager, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.regionInstanceGroupManagers.resumeInstances", "request", internallog.HTTPRequest(req, body.Bytes())) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.regionNetworkEndpointGroups.insert" call. +// Do executes the "compute.regionInstanceGroupManagers.resumeInstances" call. // 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 *RegionNetworkEndpointGroupsInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) { +func (c *RegionInstanceGroupManagersResumeInstancesCall) Do(opts ...googleapi.CallOption) (*Operation, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -12196,173 +13529,116 @@ func (c *RegionNetworkEndpointGroupsInsertCall) Do(opts ...googleapi.CallOption) }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.regionInstanceGroupManagers.resumeInstances", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type RegionNetworkEndpointGroupsListCall struct { - s *Service - project string - region string - urlParams_ gensupport.URLParams - ifNoneMatch_ string - ctx_ context.Context - header_ http.Header +type RegionInstanceGroupManagersSetInstanceTemplateCall struct { + s *Service + project string + region string + instanceGroupManager string + regioninstancegroupmanagerssettemplaterequest *RegionInstanceGroupManagersSetTemplateRequest + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header } -// List: Retrieves the list of regional network endpoint groups available to -// the specified project in the given region. +// SetInstanceTemplate: Sets the instance template to use when creating new +// instances or recreating +// instances in this group. Existing instances are not affected. // -// - project: Project ID for this request. -// - region: The name of the region where the network endpoint group is -// located. It should comply with RFC1035. -func (r *RegionNetworkEndpointGroupsService) List(project string, region string) *RegionNetworkEndpointGroupsListCall { - c := &RegionNetworkEndpointGroupsListCall{s: r.s, urlParams_: make(gensupport.URLParams)} +// - instanceGroupManager: The name of the managed instance group. +// - project: Project ID for this request. +// - region: Name of the region scoping this request. +func (r *RegionInstanceGroupManagersService) SetInstanceTemplate(project string, region string, instanceGroupManager string, regioninstancegroupmanagerssettemplaterequest *RegionInstanceGroupManagersSetTemplateRequest) *RegionInstanceGroupManagersSetInstanceTemplateCall { + c := &RegionInstanceGroupManagersSetInstanceTemplateCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project c.region = region + c.instanceGroupManager = instanceGroupManager + c.regioninstancegroupmanagerssettemplaterequest = regioninstancegroupmanagerssettemplaterequest return c } -// Filter sets the optional parameter "filter": A filter expression that -// filters resources listed in the response. Most Compute resources support two -// types of filter expressions: expressions that support regular expressions -// and expressions that follow API improvement proposal AIP-160. These two -// types of filter expressions cannot be mixed in one request. If you want to -// use AIP-160, your expression must specify the field name, an operator, and -// the value that you want to use for filtering. The value must be a string, a -// number, or a boolean. The 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`. The `:*` comparison can be used to test whether a key has -// been defined. For example, to find all objects with `owner` label use: ``` -// labels.owner:* ``` 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) ``` If you want to use a regular -// expression, use the `eq` (equal) or `ne` (not equal) operator against a -// single un-parenthesized expression with or without quotes or against -// multiple parenthesized expressions. Examples: `fieldname eq unquoted -// literal` `fieldname eq 'single quoted literal'` `fieldname eq "double quoted -// literal" `(fieldname1 eq literal) (fieldname2 ne "literal")` The literal -// value is interpreted as a regular expression using Google RE2 library -// syntax. The literal value must match the entire field. For example, to -// filter for instances that do not end with name "instance", you would use -// `name ne .*instance`. You cannot combine constraints on multiple fields -// using regular expressions. -func (c *RegionNetworkEndpointGroupsListCall) Filter(filter string) *RegionNetworkEndpointGroupsListCall { - 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 *RegionNetworkEndpointGroupsListCall) MaxResults(maxResults int64) *RegionNetworkEndpointGroupsListCall { - 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 *RegionNetworkEndpointGroupsListCall) OrderBy(orderBy string) *RegionNetworkEndpointGroupsListCall { - 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 *RegionNetworkEndpointGroupsListCall) PageToken(pageToken string) *RegionNetworkEndpointGroupsListCall { - c.urlParams_.Set("pageToken", pageToken) - return c -} - -// ReturnPartialSuccess sets the optional parameter "returnPartialSuccess": -// Opt-in for partial success behavior which provides partial results in case -// of failure. The default value is false. For example, when partial success -// behavior is enabled, aggregatedList for a single zone scope either returns -// all resources in the zone or no resources, with an error code. -func (c *RegionNetworkEndpointGroupsListCall) ReturnPartialSuccess(returnPartialSuccess bool) *RegionNetworkEndpointGroupsListCall { - c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess)) +// 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 *RegionInstanceGroupManagersSetInstanceTemplateCall) RequestId(requestId string) *RegionInstanceGroupManagersSetInstanceTemplateCall { + 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 // details. -func (c *RegionNetworkEndpointGroupsListCall) Fields(s ...googleapi.Field) *RegionNetworkEndpointGroupsListCall { +func (c *RegionInstanceGroupManagersSetInstanceTemplateCall) Fields(s ...googleapi.Field) *RegionInstanceGroupManagersSetInstanceTemplateCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } -// IfNoneMatch sets an 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. -func (c *RegionNetworkEndpointGroupsListCall) IfNoneMatch(entityTag string) *RegionNetworkEndpointGroupsListCall { - c.ifNoneMatch_ = entityTag - return c -} - // Context sets the context to be used in this call's Do method. -func (c *RegionNetworkEndpointGroupsListCall) Context(ctx context.Context) *RegionNetworkEndpointGroupsListCall { +func (c *RegionInstanceGroupManagersSetInstanceTemplateCall) Context(ctx context.Context) *RegionInstanceGroupManagersSetInstanceTemplateCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *RegionNetworkEndpointGroupsListCall) Header() http.Header { +func (c *RegionInstanceGroupManagersSetInstanceTemplateCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *RegionNetworkEndpointGroupsListCall) doRequest(alt string) (*http.Response, error) { - reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) - if c.ifNoneMatch_ != "" { - reqHeaders.Set("If-None-Match", c.ifNoneMatch_) +func (c *RegionInstanceGroupManagersSetInstanceTemplateCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) + body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.regioninstancegroupmanagerssettemplaterequest) + if err != nil { + return nil, err } - var body io.Reader = nil c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/networkEndpointGroups") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/setInstanceTemplate") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("GET", urls, body) + req, err := http.NewRequest("POST", urls, body) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "region": c.region, + "project": c.project, + "region": c.region, + "instanceGroupManager": c.instanceGroupManager, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.regionInstanceGroupManagers.setInstanceTemplate", "request", internallog.HTTPRequest(req, body.Bytes())) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.regionNetworkEndpointGroups.list" call. +// Do executes the "compute.regionInstanceGroupManagers.setInstanceTemplate" call. // Any non-2xx status code is an error. Response headers are in either -// *NetworkEndpointGroupList.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 *RegionNetworkEndpointGroupsListCall) Do(opts ...googleapi.CallOption) (*NetworkEndpointGroupList, error) { +// *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 *RegionInstanceGroupManagersSetInstanceTemplateCall) Do(opts ...googleapi.CallOption) (*Operation, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -12381,174 +13657,102 @@ func (c *RegionNetworkEndpointGroupsListCall) Do(opts ...googleapi.CallOption) ( if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } - ret := &NetworkEndpointGroupList{ + ret := &Operation{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.regionInstanceGroupManagers.setInstanceTemplate", "response", internallog.HTTPResponse(res, b)) return ret, nil } -// 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 *RegionNetworkEndpointGroupsListCall) Pages(ctx context.Context, f func(*NetworkEndpointGroupList) error) error { - c.ctx_ = ctx - defer c.PageToken(c.urlParams_.Get("pageToken")) - 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) - } -} - -type RegionNetworkEndpointGroupsListNetworkEndpointsCall struct { - s *Service - project string - region string - networkEndpointGroup string - urlParams_ gensupport.URLParams - ctx_ context.Context - header_ http.Header +type RegionInstanceGroupManagersSetTargetPoolsCall struct { + s *Service + project string + region string + instanceGroupManager string + regioninstancegroupmanagerssettargetpoolsrequest *RegionInstanceGroupManagersSetTargetPoolsRequest + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header } -// ListNetworkEndpoints: Lists the network endpoints in the specified network -// endpoint group. +// SetTargetPools: Modifies the target pools to which all new instances in this +// group are +// assigned. Existing instances in the group are not affected. // -// - networkEndpointGroup: The name of the network endpoint group from which -// you want to generate a list of included network endpoints. It should -// comply with RFC1035. -// - project: Project ID for this request. -// - region: The name of the region where the network endpoint group is -// located. It should comply with RFC1035. -func (r *RegionNetworkEndpointGroupsService) ListNetworkEndpoints(project string, region string, networkEndpointGroup string) *RegionNetworkEndpointGroupsListNetworkEndpointsCall { - c := &RegionNetworkEndpointGroupsListNetworkEndpointsCall{s: r.s, urlParams_: make(gensupport.URLParams)} +// - instanceGroupManager: Name of the managed instance group. +// - project: Project ID for this request. +// - region: Name of the region scoping this request. +func (r *RegionInstanceGroupManagersService) SetTargetPools(project string, region string, instanceGroupManager string, regioninstancegroupmanagerssettargetpoolsrequest *RegionInstanceGroupManagersSetTargetPoolsRequest) *RegionInstanceGroupManagersSetTargetPoolsCall { + c := &RegionInstanceGroupManagersSetTargetPoolsCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project c.region = region - c.networkEndpointGroup = networkEndpointGroup - return c -} - -// Filter sets the optional parameter "filter": A filter expression that -// filters resources listed in the response. Most Compute resources support two -// types of filter expressions: expressions that support regular expressions -// and expressions that follow API improvement proposal AIP-160. These two -// types of filter expressions cannot be mixed in one request. If you want to -// use AIP-160, your expression must specify the field name, an operator, and -// the value that you want to use for filtering. The value must be a string, a -// number, or a boolean. The 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`. The `:*` comparison can be used to test whether a key has -// been defined. For example, to find all objects with `owner` label use: ``` -// labels.owner:* ``` 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) ``` If you want to use a regular -// expression, use the `eq` (equal) or `ne` (not equal) operator against a -// single un-parenthesized expression with or without quotes or against -// multiple parenthesized expressions. Examples: `fieldname eq unquoted -// literal` `fieldname eq 'single quoted literal'` `fieldname eq "double quoted -// literal" `(fieldname1 eq literal) (fieldname2 ne "literal")` The literal -// value is interpreted as a regular expression using Google RE2 library -// syntax. The literal value must match the entire field. For example, to -// filter for instances that do not end with name "instance", you would use -// `name ne .*instance`. You cannot combine constraints on multiple fields -// using regular expressions. -func (c *RegionNetworkEndpointGroupsListNetworkEndpointsCall) Filter(filter string) *RegionNetworkEndpointGroupsListNetworkEndpointsCall { - 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 *RegionNetworkEndpointGroupsListNetworkEndpointsCall) MaxResults(maxResults int64) *RegionNetworkEndpointGroupsListNetworkEndpointsCall { - 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 *RegionNetworkEndpointGroupsListNetworkEndpointsCall) OrderBy(orderBy string) *RegionNetworkEndpointGroupsListNetworkEndpointsCall { - 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 *RegionNetworkEndpointGroupsListNetworkEndpointsCall) PageToken(pageToken string) *RegionNetworkEndpointGroupsListNetworkEndpointsCall { - c.urlParams_.Set("pageToken", pageToken) + c.instanceGroupManager = instanceGroupManager + c.regioninstancegroupmanagerssettargetpoolsrequest = regioninstancegroupmanagerssettargetpoolsrequest return c } -// ReturnPartialSuccess sets the optional parameter "returnPartialSuccess": -// Opt-in for partial success behavior which provides partial results in case -// of failure. The default value is false. For example, when partial success -// behavior is enabled, aggregatedList for a single zone scope either returns -// all resources in the zone or no resources, with an error code. -func (c *RegionNetworkEndpointGroupsListNetworkEndpointsCall) ReturnPartialSuccess(returnPartialSuccess bool) *RegionNetworkEndpointGroupsListNetworkEndpointsCall { - c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess)) +// 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 *RegionInstanceGroupManagersSetTargetPoolsCall) RequestId(requestId string) *RegionInstanceGroupManagersSetTargetPoolsCall { + 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 // details. -func (c *RegionNetworkEndpointGroupsListNetworkEndpointsCall) Fields(s ...googleapi.Field) *RegionNetworkEndpointGroupsListNetworkEndpointsCall { +func (c *RegionInstanceGroupManagersSetTargetPoolsCall) Fields(s ...googleapi.Field) *RegionInstanceGroupManagersSetTargetPoolsCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } // Context sets the context to be used in this call's Do method. -func (c *RegionNetworkEndpointGroupsListNetworkEndpointsCall) Context(ctx context.Context) *RegionNetworkEndpointGroupsListNetworkEndpointsCall { +func (c *RegionInstanceGroupManagersSetTargetPoolsCall) Context(ctx context.Context) *RegionInstanceGroupManagersSetTargetPoolsCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *RegionNetworkEndpointGroupsListNetworkEndpointsCall) Header() http.Header { +func (c *RegionInstanceGroupManagersSetTargetPoolsCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *RegionNetworkEndpointGroupsListNetworkEndpointsCall) doRequest(alt string) (*http.Response, error) { - reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) - var body io.Reader = nil +func (c *RegionInstanceGroupManagersSetTargetPoolsCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) + body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.regioninstancegroupmanagerssettargetpoolsrequest) + if err != nil { + return nil, err + } c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/networkEndpointGroups/{networkEndpointGroup}/listNetworkEndpoints") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/setTargetPools") urls += "?" + c.urlParams_.Encode() req, err := http.NewRequest("POST", urls, body) if err != nil { @@ -12558,18 +13762,18 @@ func (c *RegionNetworkEndpointGroupsListNetworkEndpointsCall) doRequest(alt stri googleapi.Expand(req.URL, map[string]string{ "project": c.project, "region": c.region, - "networkEndpointGroup": c.networkEndpointGroup, + "instanceGroupManager": c.instanceGroupManager, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.regionInstanceGroupManagers.setTargetPools", "request", internallog.HTTPRequest(req, body.Bytes())) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.regionNetworkEndpointGroups.listNetworkEndpoints" call. +// Do executes the "compute.regionInstanceGroupManagers.setTargetPools" call. // Any non-2xx status code is an error. Response headers are in either -// *NetworkEndpointGroupsListNetworkEndpoints.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 *RegionNetworkEndpointGroupsListNetworkEndpointsCall) Do(opts ...googleapi.CallOption) (*NetworkEndpointGroupsListNetworkEndpoints, error) { +// *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 *RegionInstanceGroupManagersSetTargetPoolsCall) Do(opts ...googleapi.CallOption) (*Operation, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -12588,86 +13792,85 @@ func (c *RegionNetworkEndpointGroupsListNetworkEndpointsCall) Do(opts ...googlea if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } - ret := &NetworkEndpointGroupsListNetworkEndpoints{ + ret := &Operation{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.regionInstanceGroupManagers.setTargetPools", "response", internallog.HTTPResponse(res, b)) return ret, nil } -// 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 *RegionNetworkEndpointGroupsListNetworkEndpointsCall) Pages(ctx context.Context, f func(*NetworkEndpointGroupsListNetworkEndpoints) error) error { - c.ctx_ = ctx - defer c.PageToken(c.urlParams_.Get("pageToken")) - 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) - } -} - -type RegionNetworkFirewallPoliciesAddAssociationCall struct { - s *Service - project string - region string - firewallPolicy string - firewallpolicyassociation *FirewallPolicyAssociation - urlParams_ gensupport.URLParams - ctx_ context.Context - header_ http.Header +type RegionInstanceGroupManagersStartInstancesCall struct { + s *Service + project string + region string + instanceGroupManager string + regioninstancegroupmanagersstartinstancesrequest *RegionInstanceGroupManagersStartInstancesRequest + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header } -// AddAssociation: Inserts an association for the specified network firewall -// policy. +// StartInstances: Flags the specified instances in the managed instance group +// to be +// started. This method increases thetargetSize and decreases the +// targetStoppedSize +// of the managed instance group by the number of instances that you start. +// The startInstances operation is marked DONE if +// the startInstances request is successful. The underlying +// actions take additional time. You must separately verify the status of +// theSTARTING action with thelistmanagedinstances +// method. // -// - firewallPolicy: Name of the firewall policy to update. +// In this request, you can only specify instances that are stopped. +// For +// example, if an instance was previously stopped using the +// stopInstances +// method, it can be started using the startInstances method. +// +// If a health check is attached to the managed instance group, the +// specified +// instances will be verified as healthy after they are started. +// +// You can specify a maximum of 1000 instances with this method per request. +// +// - instanceGroupManager: Name of the managed instance group. // - project: Project ID for this request. // - region: Name of the region scoping this request. -func (r *RegionNetworkFirewallPoliciesService) AddAssociation(project string, region string, firewallPolicy string, firewallpolicyassociation *FirewallPolicyAssociation) *RegionNetworkFirewallPoliciesAddAssociationCall { - c := &RegionNetworkFirewallPoliciesAddAssociationCall{s: r.s, urlParams_: make(gensupport.URLParams)} +func (r *RegionInstanceGroupManagersService) StartInstances(project string, region string, instanceGroupManager string, regioninstancegroupmanagersstartinstancesrequest *RegionInstanceGroupManagersStartInstancesRequest) *RegionInstanceGroupManagersStartInstancesCall { + c := &RegionInstanceGroupManagersStartInstancesCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project c.region = region - c.firewallPolicy = firewallPolicy - c.firewallpolicyassociation = firewallpolicyassociation - return c -} - -// ReplaceExistingAssociation sets the optional parameter -// "replaceExistingAssociation": Indicates whether or not to replace it if an -// association already exists. This is false by default, in which case an error -// will be returned if an association already exists. -func (c *RegionNetworkFirewallPoliciesAddAssociationCall) ReplaceExistingAssociation(replaceExistingAssociation bool) *RegionNetworkFirewallPoliciesAddAssociationCall { - c.urlParams_.Set("replaceExistingAssociation", fmt.Sprint(replaceExistingAssociation)) + c.instanceGroupManager = instanceGroupManager + c.regioninstancegroupmanagersstartinstancesrequest = regioninstancegroupmanagersstartinstancesrequest 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 *RegionNetworkFirewallPoliciesAddAssociationCall) RequestId(requestId string) *RegionNetworkFirewallPoliciesAddAssociationCall { +// 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 *RegionInstanceGroupManagersStartInstancesCall) RequestId(requestId string) *RegionInstanceGroupManagersStartInstancesCall { c.urlParams_.Set("requestId", requestId) return c } @@ -12675,36 +13878,35 @@ func (c *RegionNetworkFirewallPoliciesAddAssociationCall) RequestId(requestId st // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *RegionNetworkFirewallPoliciesAddAssociationCall) Fields(s ...googleapi.Field) *RegionNetworkFirewallPoliciesAddAssociationCall { +func (c *RegionInstanceGroupManagersStartInstancesCall) Fields(s ...googleapi.Field) *RegionInstanceGroupManagersStartInstancesCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } // Context sets the context to be used in this call's Do method. -func (c *RegionNetworkFirewallPoliciesAddAssociationCall) Context(ctx context.Context) *RegionNetworkFirewallPoliciesAddAssociationCall { +func (c *RegionInstanceGroupManagersStartInstancesCall) Context(ctx context.Context) *RegionInstanceGroupManagersStartInstancesCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *RegionNetworkFirewallPoliciesAddAssociationCall) Header() http.Header { +func (c *RegionInstanceGroupManagersStartInstancesCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *RegionNetworkFirewallPoliciesAddAssociationCall) doRequest(alt string) (*http.Response, error) { +func (c *RegionInstanceGroupManagersStartInstancesCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) - var body io.Reader = nil - body, err := googleapi.WithoutDataWrapper.JSONReader(c.firewallpolicyassociation) + body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.regioninstancegroupmanagersstartinstancesrequest) if err != nil { return nil, err } c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/firewallPolicies/{firewallPolicy}/addAssociation") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/startInstances") urls += "?" + c.urlParams_.Encode() req, err := http.NewRequest("POST", urls, body) if err != nil { @@ -12712,19 +13914,20 @@ func (c *RegionNetworkFirewallPoliciesAddAssociationCall) doRequest(alt string) } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "region": c.region, - "firewallPolicy": c.firewallPolicy, + "project": c.project, + "region": c.region, + "instanceGroupManager": c.instanceGroupManager, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.regionInstanceGroupManagers.startInstances", "request", internallog.HTTPRequest(req, body.Bytes())) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.regionNetworkFirewallPolicies.addAssociation" call. +// Do executes the "compute.regionInstanceGroupManagers.startInstances" call. // 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 *RegionNetworkFirewallPoliciesAddAssociationCall) Do(opts ...googleapi.CallOption) (*Operation, error) { +func (c *RegionInstanceGroupManagersStartInstancesCall) Do(opts ...googleapi.CallOption) (*Operation, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -12750,64 +13953,96 @@ func (c *RegionNetworkFirewallPoliciesAddAssociationCall) Do(opts ...googleapi.C }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.regionInstanceGroupManagers.startInstances", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type RegionNetworkFirewallPoliciesAddRuleCall struct { - s *Service - project string - region string - firewallPolicy string - firewallpolicyrule *FirewallPolicyRule - urlParams_ gensupport.URLParams - ctx_ context.Context - header_ http.Header -} - -// AddRule: Inserts a rule into a network firewall policy. +type RegionInstanceGroupManagersStopInstancesCall struct { + s *Service + project string + region string + instanceGroupManager string + regioninstancegroupmanagersstopinstancesrequest *RegionInstanceGroupManagersStopInstancesRequest + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header +} + +// StopInstances: Flags the specified instances in the managed instance group +// to be +// immediately stopped. You can only specify instances that are running in +// this request. This method reduces thetargetSize and increases the +// targetStoppedSize +// of the managed instance group by the number of instances that you stop. +// The stopInstances operation is marked DONE if +// the stopInstances request is successful. The underlying +// actions take additional time. You must separately verify the status of +// theSTOPPING action with thelistmanagedinstances +// method. // -// - firewallPolicy: Name of the firewall policy to update. +// If the standbyPolicy.initialDelaySec field is set, the group +// delays stopping the instances until initialDelaySec have +// passed from instance.creationTimestamp (that is, when the +// instance was created). This delay gives your application time to +// set itself up and initialize on the instance. If more thaninitialDelaySec +// seconds have passed sinceinstance.creationTimestamp when this method is +// called, there +// will be zero delay. +// +// If the group is part of a backend +// service that has enabled +// connection draining, it can take up to 60 seconds after the +// connection +// draining duration has elapsed before the VM instance is stopped. +// +// Stopped instances can be started using the startInstances +// method. +// +// You can specify a maximum of 1000 instances with this method per request. +// +// - instanceGroupManager: The name of the managed instance group. // - project: Project ID for this request. // - region: Name of the region scoping this request. -func (r *RegionNetworkFirewallPoliciesService) AddRule(project string, region string, firewallPolicy string, firewallpolicyrule *FirewallPolicyRule) *RegionNetworkFirewallPoliciesAddRuleCall { - c := &RegionNetworkFirewallPoliciesAddRuleCall{s: r.s, urlParams_: make(gensupport.URLParams)} +func (r *RegionInstanceGroupManagersService) StopInstances(project string, region string, instanceGroupManager string, regioninstancegroupmanagersstopinstancesrequest *RegionInstanceGroupManagersStopInstancesRequest) *RegionInstanceGroupManagersStopInstancesCall { + c := &RegionInstanceGroupManagersStopInstancesCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project c.region = region - c.firewallPolicy = firewallPolicy - c.firewallpolicyrule = firewallpolicyrule - return c -} - -// MaxPriority sets the optional parameter "maxPriority": When rule.priority is -// not specified, auto choose a unused priority between minPriority and -// maxPriority>. This field is exclusive with rule.priority. -func (c *RegionNetworkFirewallPoliciesAddRuleCall) MaxPriority(maxPriority int64) *RegionNetworkFirewallPoliciesAddRuleCall { - c.urlParams_.Set("maxPriority", fmt.Sprint(maxPriority)) + c.instanceGroupManager = instanceGroupManager + c.regioninstancegroupmanagersstopinstancesrequest = regioninstancegroupmanagersstopinstancesrequest return c } -// MinPriority sets the optional parameter "minPriority": When rule.priority is -// not specified, auto choose a unused priority between minPriority and -// maxPriority>. This field is exclusive with rule.priority. -func (c *RegionNetworkFirewallPoliciesAddRuleCall) MinPriority(minPriority int64) *RegionNetworkFirewallPoliciesAddRuleCall { - c.urlParams_.Set("minPriority", fmt.Sprint(minPriority)) +// NoGracefulShutdown sets the optional parameter "noGracefulShutdown": When +// set, graceful shutdown is skipped for instance stopping even if +// it's +// configured for the instances. +func (c *RegionInstanceGroupManagersStopInstancesCall) NoGracefulShutdown(noGracefulShutdown bool) *RegionInstanceGroupManagersStopInstancesCall { + c.urlParams_.Set("noGracefulShutdown", fmt.Sprint(noGracefulShutdown)) 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 *RegionNetworkFirewallPoliciesAddRuleCall) RequestId(requestId string) *RegionNetworkFirewallPoliciesAddRuleCall { +// 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 *RegionInstanceGroupManagersStopInstancesCall) RequestId(requestId string) *RegionInstanceGroupManagersStopInstancesCall { c.urlParams_.Set("requestId", requestId) return c } @@ -12815,36 +14050,35 @@ func (c *RegionNetworkFirewallPoliciesAddRuleCall) RequestId(requestId string) * // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *RegionNetworkFirewallPoliciesAddRuleCall) Fields(s ...googleapi.Field) *RegionNetworkFirewallPoliciesAddRuleCall { +func (c *RegionInstanceGroupManagersStopInstancesCall) Fields(s ...googleapi.Field) *RegionInstanceGroupManagersStopInstancesCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } // Context sets the context to be used in this call's Do method. -func (c *RegionNetworkFirewallPoliciesAddRuleCall) Context(ctx context.Context) *RegionNetworkFirewallPoliciesAddRuleCall { +func (c *RegionInstanceGroupManagersStopInstancesCall) Context(ctx context.Context) *RegionInstanceGroupManagersStopInstancesCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *RegionNetworkFirewallPoliciesAddRuleCall) Header() http.Header { +func (c *RegionInstanceGroupManagersStopInstancesCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *RegionNetworkFirewallPoliciesAddRuleCall) doRequest(alt string) (*http.Response, error) { +func (c *RegionInstanceGroupManagersStopInstancesCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) - var body io.Reader = nil - body, err := googleapi.WithoutDataWrapper.JSONReader(c.firewallpolicyrule) + body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.regioninstancegroupmanagersstopinstancesrequest) if err != nil { return nil, err } c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/firewallPolicies/{firewallPolicy}/addRule") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/stopInstances") urls += "?" + c.urlParams_.Encode() req, err := http.NewRequest("POST", urls, body) if err != nil { @@ -12852,19 +14086,20 @@ func (c *RegionNetworkFirewallPoliciesAddRuleCall) doRequest(alt string) (*http. } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "region": c.region, - "firewallPolicy": c.firewallPolicy, + "project": c.project, + "region": c.region, + "instanceGroupManager": c.instanceGroupManager, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.regionInstanceGroupManagers.stopInstances", "request", internallog.HTTPRequest(req, body.Bytes())) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.regionNetworkFirewallPolicies.addRule" call. +// Do executes the "compute.regionInstanceGroupManagers.stopInstances" call. // 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 *RegionNetworkFirewallPoliciesAddRuleCall) Do(opts ...googleapi.CallOption) (*Operation, error) { +func (c *RegionInstanceGroupManagersStopInstancesCall) Do(opts ...googleapi.CallOption) (*Operation, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -12890,86 +14125,126 @@ func (c *RegionNetworkFirewallPoliciesAddRuleCall) Do(opts ...googleapi.CallOpti }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.regionInstanceGroupManagers.stopInstances", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type RegionNetworkFirewallPoliciesCloneRulesCall struct { - s *Service - project string - region string - firewallPolicy string - urlParams_ gensupport.URLParams - ctx_ context.Context - header_ http.Header +type RegionInstanceGroupManagersSuspendInstancesCall struct { + s *Service + project string + region string + instanceGroupManager string + regioninstancegroupmanagerssuspendinstancesrequest *RegionInstanceGroupManagersSuspendInstancesRequest + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header } -// CloneRules: Copies rules to the specified network firewall policy. +// SuspendInstances: Flags the specified instances in the managed instance +// group to be +// immediately suspended. You can only specify instances that are running +// in +// this request. This method reduces thetargetSize and increases the +// targetSuspendedSize +// of the managed instance group by the number of instances that you +// suspend. +// The suspendInstances operation is marked DONE if +// the suspendInstances request is successful. The underlying +// actions take additional time. You must separately verify the status of +// theSUSPENDING action with thelistmanagedinstances +// method. // -// - firewallPolicy: Name of the firewall policy to update. +// If the standbyPolicy.initialDelaySec field is set, the group +// delays suspension of the instances until initialDelaySec have +// passed from instance.creationTimestamp (that is, when the +// instance was created). This delay gives your application time to +// set itself up and initialize on the instance. If more thaninitialDelaySec +// seconds have passed sinceinstance.creationTimestamp when this method is +// called, there +// will be zero delay. +// +// If the group is part of a backend +// service that has enabled +// connection draining, it can take up to 60 seconds after the +// connection +// draining duration has elapsed before the VM instance is +// suspended. +// +// Suspended instances can be resumed using the resumeInstances +// method. +// +// You can specify a maximum of 1000 instances with this method per request. +// +// - instanceGroupManager: Name of the managed instance group. // - project: Project ID for this request. // - region: Name of the region scoping this request. -func (r *RegionNetworkFirewallPoliciesService) CloneRules(project string, region string, firewallPolicy string) *RegionNetworkFirewallPoliciesCloneRulesCall { - c := &RegionNetworkFirewallPoliciesCloneRulesCall{s: r.s, urlParams_: make(gensupport.URLParams)} +func (r *RegionInstanceGroupManagersService) SuspendInstances(project string, region string, instanceGroupManager string, regioninstancegroupmanagerssuspendinstancesrequest *RegionInstanceGroupManagersSuspendInstancesRequest) *RegionInstanceGroupManagersSuspendInstancesCall { + c := &RegionInstanceGroupManagersSuspendInstancesCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project c.region = region - c.firewallPolicy = firewallPolicy + c.instanceGroupManager = instanceGroupManager + c.regioninstancegroupmanagerssuspendinstancesrequest = regioninstancegroupmanagerssuspendinstancesrequest 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 *RegionNetworkFirewallPoliciesCloneRulesCall) RequestId(requestId string) *RegionNetworkFirewallPoliciesCloneRulesCall { +// 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 *RegionInstanceGroupManagersSuspendInstancesCall) RequestId(requestId string) *RegionInstanceGroupManagersSuspendInstancesCall { c.urlParams_.Set("requestId", requestId) return c } -// SourceFirewallPolicy sets the optional parameter "sourceFirewallPolicy": The -// firewall policy from which to copy rules. -func (c *RegionNetworkFirewallPoliciesCloneRulesCall) SourceFirewallPolicy(sourceFirewallPolicy string) *RegionNetworkFirewallPoliciesCloneRulesCall { - c.urlParams_.Set("sourceFirewallPolicy", sourceFirewallPolicy) - return c -} - // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *RegionNetworkFirewallPoliciesCloneRulesCall) Fields(s ...googleapi.Field) *RegionNetworkFirewallPoliciesCloneRulesCall { +func (c *RegionInstanceGroupManagersSuspendInstancesCall) Fields(s ...googleapi.Field) *RegionInstanceGroupManagersSuspendInstancesCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } // Context sets the context to be used in this call's Do method. -func (c *RegionNetworkFirewallPoliciesCloneRulesCall) Context(ctx context.Context) *RegionNetworkFirewallPoliciesCloneRulesCall { +func (c *RegionInstanceGroupManagersSuspendInstancesCall) Context(ctx context.Context) *RegionInstanceGroupManagersSuspendInstancesCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *RegionNetworkFirewallPoliciesCloneRulesCall) Header() http.Header { +func (c *RegionInstanceGroupManagersSuspendInstancesCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *RegionNetworkFirewallPoliciesCloneRulesCall) doRequest(alt string) (*http.Response, error) { - reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) - var body io.Reader = nil +func (c *RegionInstanceGroupManagersSuspendInstancesCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) + body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.regioninstancegroupmanagerssuspendinstancesrequest) + if err != nil { + return nil, err + } c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/firewallPolicies/{firewallPolicy}/cloneRules") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/suspendInstances") urls += "?" + c.urlParams_.Encode() req, err := http.NewRequest("POST", urls, body) if err != nil { @@ -12977,19 +14252,20 @@ func (c *RegionNetworkFirewallPoliciesCloneRulesCall) doRequest(alt string) (*ht } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "region": c.region, - "firewallPolicy": c.firewallPolicy, + "project": c.project, + "region": c.region, + "instanceGroupManager": c.instanceGroupManager, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.regionInstanceGroupManagers.suspendInstances", "request", internallog.HTTPRequest(req, body.Bytes())) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.regionNetworkFirewallPolicies.cloneRules" call. +// Do executes the "compute.regionInstanceGroupManagers.suspendInstances" call. // 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 *RegionNetworkFirewallPoliciesCloneRulesCall) Do(opts ...googleapi.CallOption) (*Operation, error) { +func (c *RegionInstanceGroupManagersSuspendInstancesCall) Do(opts ...googleapi.CallOption) (*Operation, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -13015,46 +14291,62 @@ func (c *RegionNetworkFirewallPoliciesCloneRulesCall) Do(opts ...googleapi.CallO }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.regionInstanceGroupManagers.suspendInstances", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type RegionNetworkFirewallPoliciesDeleteCall struct { - s *Service - project string - region string - firewallPolicy string - urlParams_ gensupport.URLParams - ctx_ context.Context - header_ http.Header +type RegionInstanceGroupManagersUpdatePerInstanceConfigsCall struct { + s *Service + project string + region string + instanceGroupManager string + regioninstancegroupmanagerupdateinstanceconfigreq *RegionInstanceGroupManagerUpdateInstanceConfigReq + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header } -// Delete: Deletes the specified network firewall policy. +// UpdatePerInstanceConfigs: Inserts or updates per-instance configurations for +// the managed instance +// group. perInstanceConfig.name serves as a key used to +// distinguish whether to perform insert or patch. // -// - firewallPolicy: Name of the firewall policy to delete. -// - project: Project ID for this request. -// - region: Name of the region scoping this request. -func (r *RegionNetworkFirewallPoliciesService) Delete(project string, region string, firewallPolicy string) *RegionNetworkFirewallPoliciesDeleteCall { - c := &RegionNetworkFirewallPoliciesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)} +// - instanceGroupManager: The name of the managed instance group. +// It should conform to RFC1035. +// - project: Project ID for this request. +// - region: Name of the region scoping this request, should conform to +// RFC1035. +func (r *RegionInstanceGroupManagersService) UpdatePerInstanceConfigs(project string, region string, instanceGroupManager string, regioninstancegroupmanagerupdateinstanceconfigreq *RegionInstanceGroupManagerUpdateInstanceConfigReq) *RegionInstanceGroupManagersUpdatePerInstanceConfigsCall { + c := &RegionInstanceGroupManagersUpdatePerInstanceConfigsCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project c.region = region - c.firewallPolicy = firewallPolicy + c.instanceGroupManager = instanceGroupManager + c.regioninstancegroupmanagerupdateinstanceconfigreq = regioninstancegroupmanagerupdateinstanceconfigreq 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 *RegionNetworkFirewallPoliciesDeleteCall) RequestId(requestId string) *RegionNetworkFirewallPoliciesDeleteCall { +// 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 *RegionInstanceGroupManagersUpdatePerInstanceConfigsCall) RequestId(requestId string) *RegionInstanceGroupManagersUpdatePerInstanceConfigsCall { c.urlParams_.Set("requestId", requestId) return c } @@ -13062,52 +14354,56 @@ func (c *RegionNetworkFirewallPoliciesDeleteCall) RequestId(requestId string) *R // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *RegionNetworkFirewallPoliciesDeleteCall) Fields(s ...googleapi.Field) *RegionNetworkFirewallPoliciesDeleteCall { +func (c *RegionInstanceGroupManagersUpdatePerInstanceConfigsCall) Fields(s ...googleapi.Field) *RegionInstanceGroupManagersUpdatePerInstanceConfigsCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } // Context sets the context to be used in this call's Do method. -func (c *RegionNetworkFirewallPoliciesDeleteCall) Context(ctx context.Context) *RegionNetworkFirewallPoliciesDeleteCall { +func (c *RegionInstanceGroupManagersUpdatePerInstanceConfigsCall) Context(ctx context.Context) *RegionInstanceGroupManagersUpdatePerInstanceConfigsCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *RegionNetworkFirewallPoliciesDeleteCall) Header() http.Header { +func (c *RegionInstanceGroupManagersUpdatePerInstanceConfigsCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *RegionNetworkFirewallPoliciesDeleteCall) doRequest(alt string) (*http.Response, error) { - reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) - var body io.Reader = nil +func (c *RegionInstanceGroupManagersUpdatePerInstanceConfigsCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) + body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.regioninstancegroupmanagerupdateinstanceconfigreq) + if err != nil { + return nil, err + } c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/firewallPolicies/{firewallPolicy}") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/updatePerInstanceConfigs") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("DELETE", urls, body) + req, err := http.NewRequest("POST", urls, body) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "region": c.region, - "firewallPolicy": c.firewallPolicy, + "project": c.project, + "region": c.region, + "instanceGroupManager": c.instanceGroupManager, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.regionInstanceGroupManagers.updatePerInstanceConfigs", "request", internallog.HTTPRequest(req, body.Bytes())) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.regionNetworkFirewallPolicies.delete" call. +// Do executes the "compute.regionInstanceGroupManagers.updatePerInstanceConfigs" call. // 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 *RegionNetworkFirewallPoliciesDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) { +func (c *RegionInstanceGroupManagersUpdatePerInstanceConfigsCall) Do(opts ...googleapi.CallOption) (*Operation, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -13133,40 +14429,42 @@ func (c *RegionNetworkFirewallPoliciesDeleteCall) Do(opts ...googleapi.CallOptio }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.regionInstanceGroupManagers.updatePerInstanceConfigs", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type RegionNetworkFirewallPoliciesGetCall struct { - s *Service - project string - region string - firewallPolicy string - urlParams_ gensupport.URLParams - ifNoneMatch_ string - ctx_ context.Context - header_ http.Header +type RegionInstanceGroupsGetCall struct { + s *Service + project string + region string + instanceGroup string + urlParams_ gensupport.URLParams + ifNoneMatch_ string + ctx_ context.Context + header_ http.Header } -// Get: Returns the specified network firewall policy. +// Get: Returns the specified instance group resource. // -// - firewallPolicy: Name of the firewall policy to get. +// - instanceGroup: Name of the instance group resource to return. // - project: Project ID for this request. // - region: Name of the region scoping this request. -func (r *RegionNetworkFirewallPoliciesService) Get(project string, region string, firewallPolicy string) *RegionNetworkFirewallPoliciesGetCall { - c := &RegionNetworkFirewallPoliciesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)} +func (r *RegionInstanceGroupsService) Get(project string, region string, instanceGroup string) *RegionInstanceGroupsGetCall { + c := &RegionInstanceGroupsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project c.region = region - c.firewallPolicy = firewallPolicy + c.instanceGroup = instanceGroup return c } // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *RegionNetworkFirewallPoliciesGetCall) Fields(s ...googleapi.Field) *RegionNetworkFirewallPoliciesGetCall { +func (c *RegionInstanceGroupsGetCall) Fields(s ...googleapi.Field) *RegionInstanceGroupsGetCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } @@ -13174,55 +14472,55 @@ func (c *RegionNetworkFirewallPoliciesGetCall) Fields(s ...googleapi.Field) *Reg // IfNoneMatch sets an 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. -func (c *RegionNetworkFirewallPoliciesGetCall) IfNoneMatch(entityTag string) *RegionNetworkFirewallPoliciesGetCall { +func (c *RegionInstanceGroupsGetCall) IfNoneMatch(entityTag string) *RegionInstanceGroupsGetCall { c.ifNoneMatch_ = entityTag return c } // Context sets the context to be used in this call's Do method. -func (c *RegionNetworkFirewallPoliciesGetCall) Context(ctx context.Context) *RegionNetworkFirewallPoliciesGetCall { +func (c *RegionInstanceGroupsGetCall) Context(ctx context.Context) *RegionInstanceGroupsGetCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *RegionNetworkFirewallPoliciesGetCall) Header() http.Header { +func (c *RegionInstanceGroupsGetCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *RegionNetworkFirewallPoliciesGetCall) doRequest(alt string) (*http.Response, error) { +func (c *RegionInstanceGroupsGetCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) if c.ifNoneMatch_ != "" { reqHeaders.Set("If-None-Match", c.ifNoneMatch_) } - var body io.Reader = nil c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/firewallPolicies/{firewallPolicy}") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/instanceGroups/{instanceGroup}") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("GET", urls, body) + req, err := http.NewRequest("GET", urls, nil) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "region": c.region, - "firewallPolicy": c.firewallPolicy, + "project": c.project, + "region": c.region, + "instanceGroup": c.instanceGroup, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.regionInstanceGroups.get", "request", internallog.HTTPRequest(req, nil)) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.regionNetworkFirewallPolicies.get" call. +// Do executes the "compute.regionInstanceGroups.get" call. // Any non-2xx status code is an error. Response headers are in either -// *FirewallPolicy.ServerResponse.Header or (if a response was returned at all) +// *InstanceGroup.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 *RegionNetworkFirewallPoliciesGetCall) Do(opts ...googleapi.CallOption) (*FirewallPolicy, error) { +func (c *RegionInstanceGroupsGetCall) Do(opts ...googleapi.CallOption) (*InstanceGroup, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -13241,55 +14539,175 @@ func (c *RegionNetworkFirewallPoliciesGetCall) Do(opts ...googleapi.CallOption) if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } - ret := &FirewallPolicy{ + ret := &InstanceGroup{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.regionInstanceGroups.get", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type RegionNetworkFirewallPoliciesGetAssociationCall struct { - s *Service - project string - region string - firewallPolicy string - urlParams_ gensupport.URLParams - ifNoneMatch_ string - ctx_ context.Context - header_ http.Header +type RegionInstanceGroupsListCall struct { + s *Service + project string + region string + urlParams_ gensupport.URLParams + ifNoneMatch_ string + ctx_ context.Context + header_ http.Header } -// GetAssociation: Gets an association with the specified name. +// List: Retrieves the list of instance group resources contained within +// the specified region. // -// - firewallPolicy: Name of the firewall policy to which the queried -// association belongs. -// - project: Project ID for this request. -// - region: Name of the region scoping this request. -func (r *RegionNetworkFirewallPoliciesService) GetAssociation(project string, region string, firewallPolicy string) *RegionNetworkFirewallPoliciesGetAssociationCall { - c := &RegionNetworkFirewallPoliciesGetAssociationCall{s: r.s, urlParams_: make(gensupport.URLParams)} +// - project: Project ID for this request. +// - region: Name of the region scoping this request. +func (r *RegionInstanceGroupsService) List(project string, region string) *RegionInstanceGroupsListCall { + c := &RegionInstanceGroupsListCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project c.region = region - c.firewallPolicy = firewallPolicy return c } -// Name sets the optional parameter "name": The name of the association to get -// from the firewall policy. -func (c *RegionNetworkFirewallPoliciesGetAssociationCall) Name(name string) *RegionNetworkFirewallPoliciesGetAssociationCall { - c.urlParams_.Set("name", name) +// Filter sets the optional parameter "filter": A filter expression that +// filters resources listed in the response. Most +// Compute resources support two types of filter expressions: +// expressions that support regular expressions and expressions that follow +// API improvement proposal AIP-160. +// These two types of filter expressions cannot be mixed in one request. +// +// If you want to use AIP-160, your expression must specify the field name, +// an +// operator, and the value that you want to use for filtering. The value +// must be a string, a number, or a boolean. The 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`. +// +// The `:*` comparison can be used to test whether a key has been defined. +// For example, to find all objects with `owner` label +// use: +// ``` +// labels.owner:* +// ``` +// +// 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 onresource 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) +// ``` +// +// If you want to use a regular expression, use the `eq` (equal) or `ne` +// (not equal) operator against a single un-parenthesized expression with +// or +// without quotes or against multiple parenthesized expressions. +// Examples: +// +// `fieldname eq unquoted literal` +// `fieldname eq 'single quoted literal'` +// `fieldname eq "double quoted literal" +// `(fieldname1 eq literal) (fieldname2 ne "literal")` +// +// The literal value is interpreted as a regular expression using GoogleRE2 +// library syntax. +// The literal value must match the entire field. +// +// For example, to filter for instances that do not end with name +// "instance", +// you would use `name ne .*instance`. +// +// You cannot combine constraints on multiple fields using regular +// expressions. +func (c *RegionInstanceGroupsListCall) Filter(filter string) *RegionInstanceGroupsListCall { + 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 *RegionInstanceGroupsListCall) MaxResults(maxResults int64) *RegionInstanceGroupsListCall { + 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 *RegionInstanceGroupsListCall) OrderBy(orderBy string) *RegionInstanceGroupsListCall { + 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 *RegionInstanceGroupsListCall) PageToken(pageToken string) *RegionInstanceGroupsListCall { + c.urlParams_.Set("pageToken", pageToken) + return c +} + +// ReturnPartialSuccess sets the optional parameter "returnPartialSuccess": +// Opt-in for partial success behavior which provides partial results in +// case +// of failure. The default value is false. +// +// For example, when partial success behavior is enabled, aggregatedList for +// a +// single zone scope either returns all resources in the zone or no +// resources, +// with an error code. +func (c *RegionInstanceGroupsListCall) ReturnPartialSuccess(returnPartialSuccess bool) *RegionInstanceGroupsListCall { + c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess)) return c } // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *RegionNetworkFirewallPoliciesGetAssociationCall) Fields(s ...googleapi.Field) *RegionNetworkFirewallPoliciesGetAssociationCall { +func (c *RegionInstanceGroupsListCall) Fields(s ...googleapi.Field) *RegionInstanceGroupsListCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } @@ -13297,56 +14715,55 @@ func (c *RegionNetworkFirewallPoliciesGetAssociationCall) Fields(s ...googleapi. // IfNoneMatch sets an 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. -func (c *RegionNetworkFirewallPoliciesGetAssociationCall) IfNoneMatch(entityTag string) *RegionNetworkFirewallPoliciesGetAssociationCall { +func (c *RegionInstanceGroupsListCall) IfNoneMatch(entityTag string) *RegionInstanceGroupsListCall { c.ifNoneMatch_ = entityTag return c } // Context sets the context to be used in this call's Do method. -func (c *RegionNetworkFirewallPoliciesGetAssociationCall) Context(ctx context.Context) *RegionNetworkFirewallPoliciesGetAssociationCall { +func (c *RegionInstanceGroupsListCall) Context(ctx context.Context) *RegionInstanceGroupsListCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *RegionNetworkFirewallPoliciesGetAssociationCall) Header() http.Header { +func (c *RegionInstanceGroupsListCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *RegionNetworkFirewallPoliciesGetAssociationCall) doRequest(alt string) (*http.Response, error) { +func (c *RegionInstanceGroupsListCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) if c.ifNoneMatch_ != "" { reqHeaders.Set("If-None-Match", c.ifNoneMatch_) } - var body io.Reader = nil c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/firewallPolicies/{firewallPolicy}/getAssociation") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/instanceGroups") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("GET", urls, body) + req, err := http.NewRequest("GET", urls, nil) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "region": c.region, - "firewallPolicy": c.firewallPolicy, + "project": c.project, + "region": c.region, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.regionInstanceGroups.list", "request", internallog.HTTPRequest(req, nil)) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.regionNetworkFirewallPolicies.getAssociation" call. +// Do executes the "compute.regionInstanceGroups.list" call. // Any non-2xx status code is an error. Response headers are in either -// *FirewallPolicyAssociation.ServerResponse.Header or (if a response was +// *RegionInstanceGroupList.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 *RegionNetworkFirewallPoliciesGetAssociationCall) Do(opts ...googleapi.CallOption) (*FirewallPolicyAssociation, error) { +func (c *RegionInstanceGroupsListCall) Do(opts ...googleapi.CallOption) (*RegionInstanceGroupList, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -13365,102 +14782,257 @@ func (c *RegionNetworkFirewallPoliciesGetAssociationCall) Do(opts ...googleapi.C if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } - ret := &FirewallPolicyAssociation{ + ret := &RegionInstanceGroupList{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.regionInstanceGroups.list", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type RegionNetworkFirewallPoliciesGetEffectiveFirewallsCall struct { - s *Service - project string - region string - urlParams_ gensupport.URLParams - ifNoneMatch_ string - ctx_ context.Context - header_ http.Header +// 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 *RegionInstanceGroupsListCall) Pages(ctx context.Context, f func(*RegionInstanceGroupList) error) error { + c.ctx_ = ctx + defer c.PageToken(c.urlParams_.Get("pageToken")) + 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) + } } -// GetEffectiveFirewalls: Returns the effective firewalls on a given network. +type RegionInstanceGroupsListInstancesCall struct { + s *Service + project string + region string + instanceGroup string + regioninstancegroupslistinstancesrequest *RegionInstanceGroupsListInstancesRequest + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header +} + +// ListInstances: Lists the instances in the specified instance group and +// displays +// information about the named ports. Depending on the specified options, +// this +// method can list all instances or only the instances that are running. +// The orderBy query parameter is not supported. // -// - network: Network reference. +// - instanceGroup: Name of the regional instance group for which we want to +// list the +// +// instances. // - project: Project ID for this request. // - region: Name of the region scoping this request. -func (r *RegionNetworkFirewallPoliciesService) GetEffectiveFirewalls(project string, region string, network string) *RegionNetworkFirewallPoliciesGetEffectiveFirewallsCall { - c := &RegionNetworkFirewallPoliciesGetEffectiveFirewallsCall{s: r.s, urlParams_: make(gensupport.URLParams)} +func (r *RegionInstanceGroupsService) ListInstances(project string, region string, instanceGroup string, regioninstancegroupslistinstancesrequest *RegionInstanceGroupsListInstancesRequest) *RegionInstanceGroupsListInstancesCall { + c := &RegionInstanceGroupsListInstancesCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project c.region = region - c.urlParams_.Set("network", network) + c.instanceGroup = instanceGroup + c.regioninstancegroupslistinstancesrequest = regioninstancegroupslistinstancesrequest + return c +} + +// Filter sets the optional parameter "filter": A filter expression that +// filters resources listed in the response. Most +// Compute resources support two types of filter expressions: +// expressions that support regular expressions and expressions that follow +// API improvement proposal AIP-160. +// These two types of filter expressions cannot be mixed in one request. +// +// If you want to use AIP-160, your expression must specify the field name, +// an +// operator, and the value that you want to use for filtering. The value +// must be a string, a number, or a boolean. The 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`. +// +// The `:*` comparison can be used to test whether a key has been defined. +// For example, to find all objects with `owner` label +// use: +// ``` +// labels.owner:* +// ``` +// +// 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 onresource 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) +// ``` +// +// If you want to use a regular expression, use the `eq` (equal) or `ne` +// (not equal) operator against a single un-parenthesized expression with +// or +// without quotes or against multiple parenthesized expressions. +// Examples: +// +// `fieldname eq unquoted literal` +// `fieldname eq 'single quoted literal'` +// `fieldname eq "double quoted literal" +// `(fieldname1 eq literal) (fieldname2 ne "literal")` +// +// The literal value is interpreted as a regular expression using GoogleRE2 +// library syntax. +// The literal value must match the entire field. +// +// For example, to filter for instances that do not end with name +// "instance", +// you would use `name ne .*instance`. +// +// You cannot combine constraints on multiple fields using regular +// expressions. +func (c *RegionInstanceGroupsListInstancesCall) Filter(filter string) *RegionInstanceGroupsListInstancesCall { + 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 *RegionInstanceGroupsListInstancesCall) MaxResults(maxResults int64) *RegionInstanceGroupsListInstancesCall { + 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 *RegionInstanceGroupsListInstancesCall) OrderBy(orderBy string) *RegionInstanceGroupsListInstancesCall { + 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 *RegionInstanceGroupsListInstancesCall) PageToken(pageToken string) *RegionInstanceGroupsListInstancesCall { + c.urlParams_.Set("pageToken", pageToken) + return c +} + +// ReturnPartialSuccess sets the optional parameter "returnPartialSuccess": +// Opt-in for partial success behavior which provides partial results in +// case +// of failure. The default value is false. +// +// For example, when partial success behavior is enabled, aggregatedList for +// a +// single zone scope either returns all resources in the zone or no +// resources, +// with an error code. +func (c *RegionInstanceGroupsListInstancesCall) ReturnPartialSuccess(returnPartialSuccess bool) *RegionInstanceGroupsListInstancesCall { + c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess)) return c } // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *RegionNetworkFirewallPoliciesGetEffectiveFirewallsCall) Fields(s ...googleapi.Field) *RegionNetworkFirewallPoliciesGetEffectiveFirewallsCall { +func (c *RegionInstanceGroupsListInstancesCall) Fields(s ...googleapi.Field) *RegionInstanceGroupsListInstancesCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } -// IfNoneMatch sets an 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. -func (c *RegionNetworkFirewallPoliciesGetEffectiveFirewallsCall) IfNoneMatch(entityTag string) *RegionNetworkFirewallPoliciesGetEffectiveFirewallsCall { - c.ifNoneMatch_ = entityTag - return c -} - // Context sets the context to be used in this call's Do method. -func (c *RegionNetworkFirewallPoliciesGetEffectiveFirewallsCall) Context(ctx context.Context) *RegionNetworkFirewallPoliciesGetEffectiveFirewallsCall { +func (c *RegionInstanceGroupsListInstancesCall) Context(ctx context.Context) *RegionInstanceGroupsListInstancesCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *RegionNetworkFirewallPoliciesGetEffectiveFirewallsCall) Header() http.Header { +func (c *RegionInstanceGroupsListInstancesCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *RegionNetworkFirewallPoliciesGetEffectiveFirewallsCall) doRequest(alt string) (*http.Response, error) { - reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) - if c.ifNoneMatch_ != "" { - reqHeaders.Set("If-None-Match", c.ifNoneMatch_) +func (c *RegionInstanceGroupsListInstancesCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) + body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.regioninstancegroupslistinstancesrequest) + if err != nil { + return nil, err } - var body io.Reader = nil c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/firewallPolicies/getEffectiveFirewalls") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/instanceGroups/{instanceGroup}/listInstances") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("GET", urls, body) + req, err := http.NewRequest("POST", urls, body) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "region": c.region, + "project": c.project, + "region": c.region, + "instanceGroup": c.instanceGroup, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.regionInstanceGroups.listInstances", "request", internallog.HTTPRequest(req, body.Bytes())) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.regionNetworkFirewallPolicies.getEffectiveFirewalls" call. +// Do executes the "compute.regionInstanceGroups.listInstances" call. // Any non-2xx status code is an error. Response headers are in either -// *RegionNetworkFirewallPoliciesGetEffectiveFirewallsResponse.ServerResponse.He -// ader 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 *RegionNetworkFirewallPoliciesGetEffectiveFirewallsCall) Do(opts ...googleapi.CallOption) (*RegionNetworkFirewallPoliciesGetEffectiveFirewallsResponse, error) { +// *RegionInstanceGroupsListInstances.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 *RegionInstanceGroupsListInstancesCall) Do(opts ...googleapi.CallOption) (*RegionInstanceGroupsListInstances, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -13479,111 +15051,144 @@ func (c *RegionNetworkFirewallPoliciesGetEffectiveFirewallsCall) Do(opts ...goog if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } - ret := &RegionNetworkFirewallPoliciesGetEffectiveFirewallsResponse{ + ret := &RegionInstanceGroupsListInstances{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.regionInstanceGroups.listInstances", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type RegionNetworkFirewallPoliciesGetIamPolicyCall struct { - s *Service - project string - region string - resource string - urlParams_ gensupport.URLParams - ifNoneMatch_ string - ctx_ context.Context - header_ http.Header +// 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 *RegionInstanceGroupsListInstancesCall) Pages(ctx context.Context, f func(*RegionInstanceGroupsListInstances) error) error { + c.ctx_ = ctx + defer c.PageToken(c.urlParams_.Get("pageToken")) + 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) + } } -// GetIamPolicy: Gets the access control policy for a resource. May be empty if -// no such policy or resource exists. +type RegionInstanceGroupsSetNamedPortsCall struct { + s *Service + project string + region string + instanceGroup string + regioninstancegroupssetnamedportsrequest *RegionInstanceGroupsSetNamedPortsRequest + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header +} + +// SetNamedPorts: Sets the named ports for the specified regional instance +// group. // -// - project: Project ID for this request. -// - region: The name of the region for this request. -// - resource: Name or id of the resource for this request. -func (r *RegionNetworkFirewallPoliciesService) GetIamPolicy(project string, region string, resource string) *RegionNetworkFirewallPoliciesGetIamPolicyCall { - c := &RegionNetworkFirewallPoliciesGetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)} +// - instanceGroup: The name of the regional instance group where the named +// ports are updated. +// - project: Project ID for this request. +// - region: Name of the region scoping this request. +func (r *RegionInstanceGroupsService) SetNamedPorts(project string, region string, instanceGroup string, regioninstancegroupssetnamedportsrequest *RegionInstanceGroupsSetNamedPortsRequest) *RegionInstanceGroupsSetNamedPortsCall { + c := &RegionInstanceGroupsSetNamedPortsCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project c.region = region - c.resource = resource + c.instanceGroup = instanceGroup + c.regioninstancegroupssetnamedportsrequest = regioninstancegroupssetnamedportsrequest return c } -// OptionsRequestedPolicyVersion sets the optional parameter -// "optionsRequestedPolicyVersion": Requested IAM Policy version. -func (c *RegionNetworkFirewallPoliciesGetIamPolicyCall) OptionsRequestedPolicyVersion(optionsRequestedPolicyVersion int64) *RegionNetworkFirewallPoliciesGetIamPolicyCall { - c.urlParams_.Set("optionsRequestedPolicyVersion", fmt.Sprint(optionsRequestedPolicyVersion)) +// 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 *RegionInstanceGroupsSetNamedPortsCall) RequestId(requestId string) *RegionInstanceGroupsSetNamedPortsCall { + 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 // details. -func (c *RegionNetworkFirewallPoliciesGetIamPolicyCall) Fields(s ...googleapi.Field) *RegionNetworkFirewallPoliciesGetIamPolicyCall { +func (c *RegionInstanceGroupsSetNamedPortsCall) Fields(s ...googleapi.Field) *RegionInstanceGroupsSetNamedPortsCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } -// IfNoneMatch sets an 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. -func (c *RegionNetworkFirewallPoliciesGetIamPolicyCall) IfNoneMatch(entityTag string) *RegionNetworkFirewallPoliciesGetIamPolicyCall { - c.ifNoneMatch_ = entityTag - return c -} - // Context sets the context to be used in this call's Do method. -func (c *RegionNetworkFirewallPoliciesGetIamPolicyCall) Context(ctx context.Context) *RegionNetworkFirewallPoliciesGetIamPolicyCall { +func (c *RegionInstanceGroupsSetNamedPortsCall) Context(ctx context.Context) *RegionInstanceGroupsSetNamedPortsCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *RegionNetworkFirewallPoliciesGetIamPolicyCall) Header() http.Header { +func (c *RegionInstanceGroupsSetNamedPortsCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *RegionNetworkFirewallPoliciesGetIamPolicyCall) doRequest(alt string) (*http.Response, error) { - reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) - if c.ifNoneMatch_ != "" { - reqHeaders.Set("If-None-Match", c.ifNoneMatch_) +func (c *RegionInstanceGroupsSetNamedPortsCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) + body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.regioninstancegroupssetnamedportsrequest) + if err != nil { + return nil, err } - var body io.Reader = nil c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/firewallPolicies/{resource}/getIamPolicy") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/instanceGroups/{instanceGroup}/setNamedPorts") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("GET", urls, body) + req, err := http.NewRequest("POST", urls, body) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "region": c.region, - "resource": c.resource, + "project": c.project, + "region": c.region, + "instanceGroup": c.instanceGroup, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.regionInstanceGroups.setNamedPorts", "request", internallog.HTTPRequest(req, body.Bytes())) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.regionNetworkFirewallPolicies.getIamPolicy" call. +// Do executes the "compute.regionInstanceGroups.setNamedPorts" call. // Any non-2xx status code is an error. Response headers are in either -// *Policy.ServerResponse.Header or (if a response was returned at all) in +// *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 *RegionNetworkFirewallPoliciesGetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, error) { +func (c *RegionInstanceGroupsSetNamedPortsCall) Do(opts ...googleapi.CallOption) (*Operation, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -13602,115 +15207,104 @@ func (c *RegionNetworkFirewallPoliciesGetIamPolicyCall) Do(opts ...googleapi.Cal if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } - ret := &Policy{ + ret := &Operation{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.regionInstanceGroups.setNamedPorts", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type RegionNetworkFirewallPoliciesGetRuleCall struct { - s *Service - project string - region string - firewallPolicy string - urlParams_ gensupport.URLParams - ifNoneMatch_ string - ctx_ context.Context - header_ http.Header +type RegionInstanceGroupsTestIamPermissionsCall struct { + s *Service + project string + region string + resource string + testpermissionsrequest *TestPermissionsRequest + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header } -// GetRule: Gets a rule of the specified priority. +// TestIamPermissions: Returns permissions that a caller has on the specified +// resource. // -// - firewallPolicy: Name of the firewall policy to which the queried rule -// belongs. -// - project: Project ID for this request. -// - region: Name of the region scoping this request. -func (r *RegionNetworkFirewallPoliciesService) GetRule(project string, region string, firewallPolicy string) *RegionNetworkFirewallPoliciesGetRuleCall { - c := &RegionNetworkFirewallPoliciesGetRuleCall{s: r.s, urlParams_: make(gensupport.URLParams)} +// - project: Project ID for this request. +// - region: The name of the region for this request. +// - resource: Name or id of the resource for this request. +func (r *RegionInstanceGroupsService) TestIamPermissions(project string, region string, resource string, testpermissionsrequest *TestPermissionsRequest) *RegionInstanceGroupsTestIamPermissionsCall { + c := &RegionInstanceGroupsTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project c.region = region - c.firewallPolicy = firewallPolicy - return c -} - -// Priority sets the optional parameter "priority": The priority of the rule to -// get from the firewall policy. -func (c *RegionNetworkFirewallPoliciesGetRuleCall) Priority(priority int64) *RegionNetworkFirewallPoliciesGetRuleCall { - c.urlParams_.Set("priority", fmt.Sprint(priority)) + c.resource = resource + c.testpermissionsrequest = testpermissionsrequest return c } // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *RegionNetworkFirewallPoliciesGetRuleCall) Fields(s ...googleapi.Field) *RegionNetworkFirewallPoliciesGetRuleCall { +func (c *RegionInstanceGroupsTestIamPermissionsCall) Fields(s ...googleapi.Field) *RegionInstanceGroupsTestIamPermissionsCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } -// IfNoneMatch sets an 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. -func (c *RegionNetworkFirewallPoliciesGetRuleCall) IfNoneMatch(entityTag string) *RegionNetworkFirewallPoliciesGetRuleCall { - c.ifNoneMatch_ = entityTag - return c -} - // Context sets the context to be used in this call's Do method. -func (c *RegionNetworkFirewallPoliciesGetRuleCall) Context(ctx context.Context) *RegionNetworkFirewallPoliciesGetRuleCall { +func (c *RegionInstanceGroupsTestIamPermissionsCall) Context(ctx context.Context) *RegionInstanceGroupsTestIamPermissionsCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *RegionNetworkFirewallPoliciesGetRuleCall) Header() http.Header { +func (c *RegionInstanceGroupsTestIamPermissionsCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *RegionNetworkFirewallPoliciesGetRuleCall) doRequest(alt string) (*http.Response, error) { - reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) - if c.ifNoneMatch_ != "" { - reqHeaders.Set("If-None-Match", c.ifNoneMatch_) +func (c *RegionInstanceGroupsTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) + body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.testpermissionsrequest) + if err != nil { + return nil, err } - var body io.Reader = nil c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/firewallPolicies/{firewallPolicy}/getRule") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/instanceGroups/{resource}/testIamPermissions") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("GET", urls, body) + req, err := http.NewRequest("POST", urls, body) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "region": c.region, - "firewallPolicy": c.firewallPolicy, + "project": c.project, + "region": c.region, + "resource": c.resource, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.regionInstanceGroups.testIamPermissions", "request", internallog.HTTPRequest(req, body.Bytes())) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.regionNetworkFirewallPolicies.getRule" call. +// Do executes the "compute.regionInstanceGroups.testIamPermissions" call. // Any non-2xx status code is an error. Response headers are in either -// *FirewallPolicyRule.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 *RegionNetworkFirewallPoliciesGetRuleCall) Do(opts ...googleapi.CallOption) (*FirewallPolicyRule, error) { - gensupport.SetOptions(c.urlParams_, opts...) - res, err := c.doRequest("json") - if res != nil && res.StatusCode == http.StatusNotModified { +// *TestPermissionsResponse.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 *RegionInstanceGroupsTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, 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() } @@ -13726,53 +15320,64 @@ func (c *RegionNetworkFirewallPoliciesGetRuleCall) Do(opts ...googleapi.CallOpti if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } - ret := &FirewallPolicyRule{ + ret := &TestPermissionsResponse{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.regionInstanceGroups.testIamPermissions", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type RegionNetworkFirewallPoliciesInsertCall struct { - s *Service - project string - region string - firewallpolicy *FirewallPolicy - urlParams_ gensupport.URLParams - ctx_ context.Context - header_ http.Header +type RegionInstanceTemplatesDeleteCall struct { + s *Service + project string + region string + instanceTemplate string + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header } -// Insert: Creates a new network firewall policy in the specified project and -// region. +// Delete: Deletes the specified instance template. Deleting an instance +// template is +// permanent and cannot be undone. // +// - instanceTemplate: The name of the instance template to delete. // - project: Project ID for this request. -// - region: Name of the region scoping this request. -func (r *RegionNetworkFirewallPoliciesService) Insert(project string, region string, firewallpolicy *FirewallPolicy) *RegionNetworkFirewallPoliciesInsertCall { - c := &RegionNetworkFirewallPoliciesInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)} +// - region: The name of the region for this request. +func (r *RegionInstanceTemplatesService) Delete(project string, region string, instanceTemplate string) *RegionInstanceTemplatesDeleteCall { + c := &RegionInstanceTemplatesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project c.region = region - c.firewallpolicy = firewallpolicy + c.instanceTemplate = instanceTemplate 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 *RegionNetworkFirewallPoliciesInsertCall) RequestId(requestId string) *RegionNetworkFirewallPoliciesInsertCall { +// 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 *RegionInstanceTemplatesDeleteCall) RequestId(requestId string) *RegionInstanceTemplatesDeleteCall { c.urlParams_.Set("requestId", requestId) return c } @@ -13780,55 +15385,52 @@ func (c *RegionNetworkFirewallPoliciesInsertCall) RequestId(requestId string) *R // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *RegionNetworkFirewallPoliciesInsertCall) Fields(s ...googleapi.Field) *RegionNetworkFirewallPoliciesInsertCall { +func (c *RegionInstanceTemplatesDeleteCall) Fields(s ...googleapi.Field) *RegionInstanceTemplatesDeleteCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } // Context sets the context to be used in this call's Do method. -func (c *RegionNetworkFirewallPoliciesInsertCall) Context(ctx context.Context) *RegionNetworkFirewallPoliciesInsertCall { +func (c *RegionInstanceTemplatesDeleteCall) Context(ctx context.Context) *RegionInstanceTemplatesDeleteCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *RegionNetworkFirewallPoliciesInsertCall) Header() http.Header { +func (c *RegionInstanceTemplatesDeleteCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *RegionNetworkFirewallPoliciesInsertCall) doRequest(alt string) (*http.Response, error) { - reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) - var body io.Reader = nil - body, err := googleapi.WithoutDataWrapper.JSONReader(c.firewallpolicy) - if err != nil { - return nil, err - } +func (c *RegionInstanceTemplatesDeleteCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/firewallPolicies") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/instanceTemplates/{instanceTemplate}") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("POST", urls, body) + req, err := http.NewRequest("DELETE", urls, nil) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "region": c.region, + "project": c.project, + "region": c.region, + "instanceTemplate": c.instanceTemplate, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.regionInstanceTemplates.delete", "request", internallog.HTTPRequest(req, nil)) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.regionNetworkFirewallPolicies.insert" call. +// Do executes the "compute.regionInstanceTemplates.delete" call. // 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 *RegionNetworkFirewallPoliciesInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) { +func (c *RegionInstanceTemplatesDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -13854,116 +15456,42 @@ func (c *RegionNetworkFirewallPoliciesInsertCall) Do(opts ...googleapi.CallOptio }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.regionInstanceTemplates.delete", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type RegionNetworkFirewallPoliciesListCall struct { - s *Service - project string - region string - urlParams_ gensupport.URLParams - ifNoneMatch_ string - ctx_ context.Context - header_ http.Header +type RegionInstanceTemplatesGetCall struct { + s *Service + project string + region string + instanceTemplate string + urlParams_ gensupport.URLParams + ifNoneMatch_ string + ctx_ context.Context + header_ http.Header } -// List: Lists all the network firewall policies that have been configured for -// the specified project in the given region. +// Get: Returns the specified instance template. // +// - instanceTemplate: The name of the instance template. // - project: Project ID for this request. -// - region: Name of the region scoping this request. -func (r *RegionNetworkFirewallPoliciesService) List(project string, region string) *RegionNetworkFirewallPoliciesListCall { - c := &RegionNetworkFirewallPoliciesListCall{s: r.s, urlParams_: make(gensupport.URLParams)} +// - region: The name of the region for this request. +func (r *RegionInstanceTemplatesService) Get(project string, region string, instanceTemplate string) *RegionInstanceTemplatesGetCall { + c := &RegionInstanceTemplatesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project c.region = region - return c -} - -// Filter sets the optional parameter "filter": A filter expression that -// filters resources listed in the response. Most Compute resources support two -// types of filter expressions: expressions that support regular expressions -// and expressions that follow API improvement proposal AIP-160. These two -// types of filter expressions cannot be mixed in one request. If you want to -// use AIP-160, your expression must specify the field name, an operator, and -// the value that you want to use for filtering. The value must be a string, a -// number, or a boolean. The 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`. The `:*` comparison can be used to test whether a key has -// been defined. For example, to find all objects with `owner` label use: ``` -// labels.owner:* ``` 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) ``` If you want to use a regular -// expression, use the `eq` (equal) or `ne` (not equal) operator against a -// single un-parenthesized expression with or without quotes or against -// multiple parenthesized expressions. Examples: `fieldname eq unquoted -// literal` `fieldname eq 'single quoted literal'` `fieldname eq "double quoted -// literal" `(fieldname1 eq literal) (fieldname2 ne "literal")` The literal -// value is interpreted as a regular expression using Google RE2 library -// syntax. The literal value must match the entire field. For example, to -// filter for instances that do not end with name "instance", you would use -// `name ne .*instance`. You cannot combine constraints on multiple fields -// using regular expressions. -func (c *RegionNetworkFirewallPoliciesListCall) Filter(filter string) *RegionNetworkFirewallPoliciesListCall { - 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 *RegionNetworkFirewallPoliciesListCall) MaxResults(maxResults int64) *RegionNetworkFirewallPoliciesListCall { - 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 *RegionNetworkFirewallPoliciesListCall) OrderBy(orderBy string) *RegionNetworkFirewallPoliciesListCall { - 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 *RegionNetworkFirewallPoliciesListCall) PageToken(pageToken string) *RegionNetworkFirewallPoliciesListCall { - c.urlParams_.Set("pageToken", pageToken) - return c -} - -// ReturnPartialSuccess sets the optional parameter "returnPartialSuccess": -// Opt-in for partial success behavior which provides partial results in case -// of failure. The default value is false. For example, when partial success -// behavior is enabled, aggregatedList for a single zone scope either returns -// all resources in the zone or no resources, with an error code. -func (c *RegionNetworkFirewallPoliciesListCall) ReturnPartialSuccess(returnPartialSuccess bool) *RegionNetworkFirewallPoliciesListCall { - c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess)) + c.instanceTemplate = instanceTemplate return c } // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *RegionNetworkFirewallPoliciesListCall) Fields(s ...googleapi.Field) *RegionNetworkFirewallPoliciesListCall { +func (c *RegionInstanceTemplatesGetCall) Fields(s ...googleapi.Field) *RegionInstanceTemplatesGetCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } @@ -13971,55 +15499,56 @@ func (c *RegionNetworkFirewallPoliciesListCall) Fields(s ...googleapi.Field) *Re // IfNoneMatch sets an 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. -func (c *RegionNetworkFirewallPoliciesListCall) IfNoneMatch(entityTag string) *RegionNetworkFirewallPoliciesListCall { +func (c *RegionInstanceTemplatesGetCall) IfNoneMatch(entityTag string) *RegionInstanceTemplatesGetCall { c.ifNoneMatch_ = entityTag return c } // Context sets the context to be used in this call's Do method. -func (c *RegionNetworkFirewallPoliciesListCall) Context(ctx context.Context) *RegionNetworkFirewallPoliciesListCall { +func (c *RegionInstanceTemplatesGetCall) Context(ctx context.Context) *RegionInstanceTemplatesGetCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *RegionNetworkFirewallPoliciesListCall) Header() http.Header { +func (c *RegionInstanceTemplatesGetCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *RegionNetworkFirewallPoliciesListCall) doRequest(alt string) (*http.Response, error) { +func (c *RegionInstanceTemplatesGetCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) if c.ifNoneMatch_ != "" { reqHeaders.Set("If-None-Match", c.ifNoneMatch_) } - var body io.Reader = nil c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/firewallPolicies") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/instanceTemplates/{instanceTemplate}") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("GET", urls, body) + req, err := http.NewRequest("GET", urls, nil) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "region": c.region, + "project": c.project, + "region": c.region, + "instanceTemplate": c.instanceTemplate, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.regionInstanceTemplates.get", "request", internallog.HTTPRequest(req, nil)) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.regionNetworkFirewallPolicies.list" call. +// Do executes the "compute.regionInstanceTemplates.get" call. // Any non-2xx status code is an error. Response headers are in either -// *FirewallPolicyList.ServerResponse.Header or (if a response was returned at +// *InstanceTemplate.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 *RegionNetworkFirewallPoliciesListCall) Do(opts ...googleapi.CallOption) (*FirewallPolicyList, error) { +func (c *RegionInstanceTemplatesGetCall) Do(opts ...googleapi.CallOption) (*InstanceTemplate, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -14038,76 +15567,63 @@ func (c *RegionNetworkFirewallPoliciesListCall) Do(opts ...googleapi.CallOption) if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } - ret := &FirewallPolicyList{ + ret := &InstanceTemplate{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.regionInstanceTemplates.get", "response", internallog.HTTPResponse(res, b)) return ret, nil } -// 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 *RegionNetworkFirewallPoliciesListCall) Pages(ctx context.Context, f func(*FirewallPolicyList) error) error { - c.ctx_ = ctx - defer c.PageToken(c.urlParams_.Get("pageToken")) - 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) - } -} - -type RegionNetworkFirewallPoliciesPatchCall struct { - s *Service - project string - region string - firewallPolicy string - firewallpolicy *FirewallPolicy - urlParams_ gensupport.URLParams - ctx_ context.Context - header_ http.Header +type RegionInstanceTemplatesInsertCall struct { + s *Service + project string + region string + instancetemplate *InstanceTemplate + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header } -// Patch: Patches the specified network firewall policy. +// Insert: Creates an instance template in the specified project and region +// using the +// global instance template whose URL is included in the request. // -// - firewallPolicy: Name of the firewall policy to update. // - project: Project ID for this request. -// - region: Name of the region scoping this request. -func (r *RegionNetworkFirewallPoliciesService) Patch(project string, region string, firewallPolicy string, firewallpolicy *FirewallPolicy) *RegionNetworkFirewallPoliciesPatchCall { - c := &RegionNetworkFirewallPoliciesPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)} +// - region: The name of the region for this request. +func (r *RegionInstanceTemplatesService) Insert(project string, region string, instancetemplate *InstanceTemplate) *RegionInstanceTemplatesInsertCall { + c := &RegionInstanceTemplatesInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project c.region = region - c.firewallPolicy = firewallPolicy - c.firewallpolicy = firewallpolicy + c.instancetemplate = instancetemplate 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 *RegionNetworkFirewallPoliciesPatchCall) RequestId(requestId string) *RegionNetworkFirewallPoliciesPatchCall { +// 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 *RegionInstanceTemplatesInsertCall) RequestId(requestId string) *RegionInstanceTemplatesInsertCall { c.urlParams_.Set("requestId", requestId) return c } @@ -14115,56 +15631,55 @@ func (c *RegionNetworkFirewallPoliciesPatchCall) RequestId(requestId string) *Re // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *RegionNetworkFirewallPoliciesPatchCall) Fields(s ...googleapi.Field) *RegionNetworkFirewallPoliciesPatchCall { +func (c *RegionInstanceTemplatesInsertCall) Fields(s ...googleapi.Field) *RegionInstanceTemplatesInsertCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } // Context sets the context to be used in this call's Do method. -func (c *RegionNetworkFirewallPoliciesPatchCall) Context(ctx context.Context) *RegionNetworkFirewallPoliciesPatchCall { +func (c *RegionInstanceTemplatesInsertCall) Context(ctx context.Context) *RegionInstanceTemplatesInsertCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *RegionNetworkFirewallPoliciesPatchCall) Header() http.Header { +func (c *RegionInstanceTemplatesInsertCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *RegionNetworkFirewallPoliciesPatchCall) doRequest(alt string) (*http.Response, error) { +func (c *RegionInstanceTemplatesInsertCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) - var body io.Reader = nil - body, err := googleapi.WithoutDataWrapper.JSONReader(c.firewallpolicy) + body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.instancetemplate) if err != nil { return nil, err } c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/firewallPolicies/{firewallPolicy}") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/instanceTemplates") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("PATCH", urls, body) + req, err := http.NewRequest("POST", urls, body) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "region": c.region, - "firewallPolicy": c.firewallPolicy, + "project": c.project, + "region": c.region, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.regionInstanceTemplates.insert", "request", internallog.HTTPRequest(req, body.Bytes())) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.regionNetworkFirewallPolicies.patch" call. +// Do executes the "compute.regionInstanceTemplates.insert" call. // 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 *RegionNetworkFirewallPoliciesPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) { +func (c *RegionInstanceTemplatesInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -14190,112 +15705,225 @@ func (c *RegionNetworkFirewallPoliciesPatchCall) Do(opts ...googleapi.CallOption }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.regionInstanceTemplates.insert", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type RegionNetworkFirewallPoliciesPatchRuleCall struct { - s *Service - project string - region string - firewallPolicy string - firewallpolicyrule *FirewallPolicyRule - urlParams_ gensupport.URLParams - ctx_ context.Context - header_ http.Header +type RegionInstanceTemplatesListCall struct { + s *Service + project string + region string + urlParams_ gensupport.URLParams + ifNoneMatch_ string + ctx_ context.Context + header_ http.Header } -// PatchRule: Patches a rule of the specified priority. +// List: Retrieves a list of instance templates that are contained within +// the +// specified project and region. // -// - firewallPolicy: Name of the firewall policy to update. // - project: Project ID for this request. -// - region: Name of the region scoping this request. -func (r *RegionNetworkFirewallPoliciesService) PatchRule(project string, region string, firewallPolicy string, firewallpolicyrule *FirewallPolicyRule) *RegionNetworkFirewallPoliciesPatchRuleCall { - c := &RegionNetworkFirewallPoliciesPatchRuleCall{s: r.s, urlParams_: make(gensupport.URLParams)} +// - region: The name of the regions for this request. +func (r *RegionInstanceTemplatesService) List(project string, region string) *RegionInstanceTemplatesListCall { + c := &RegionInstanceTemplatesListCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project c.region = region - c.firewallPolicy = firewallPolicy - c.firewallpolicyrule = firewallpolicyrule return c } -// Priority sets the optional parameter "priority": The priority of the rule to -// patch. -func (c *RegionNetworkFirewallPoliciesPatchRuleCall) Priority(priority int64) *RegionNetworkFirewallPoliciesPatchRuleCall { - c.urlParams_.Set("priority", fmt.Sprint(priority)) +// Filter sets the optional parameter "filter": A filter expression that +// filters resources listed in the response. Most +// Compute resources support two types of filter expressions: +// expressions that support regular expressions and expressions that follow +// API improvement proposal AIP-160. +// These two types of filter expressions cannot be mixed in one request. +// +// If you want to use AIP-160, your expression must specify the field name, +// an +// operator, and the value that you want to use for filtering. The value +// must be a string, a number, or a boolean. The 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`. +// +// The `:*` comparison can be used to test whether a key has been defined. +// For example, to find all objects with `owner` label +// use: +// ``` +// labels.owner:* +// ``` +// +// 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 onresource 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) +// ``` +// +// If you want to use a regular expression, use the `eq` (equal) or `ne` +// (not equal) operator against a single un-parenthesized expression with +// or +// without quotes or against multiple parenthesized expressions. +// Examples: +// +// `fieldname eq unquoted literal` +// `fieldname eq 'single quoted literal'` +// `fieldname eq "double quoted literal" +// `(fieldname1 eq literal) (fieldname2 ne "literal")` +// +// The literal value is interpreted as a regular expression using GoogleRE2 +// library syntax. +// The literal value must match the entire field. +// +// For example, to filter for instances that do not end with name +// "instance", +// you would use `name ne .*instance`. +// +// You cannot combine constraints on multiple fields using regular +// expressions. +func (c *RegionInstanceTemplatesListCall) Filter(filter string) *RegionInstanceTemplatesListCall { + c.urlParams_.Set("filter", filter) 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 *RegionNetworkFirewallPoliciesPatchRuleCall) RequestId(requestId string) *RegionNetworkFirewallPoliciesPatchRuleCall { - c.urlParams_.Set("requestId", requestId) +// 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 *RegionInstanceTemplatesListCall) MaxResults(maxResults int64) *RegionInstanceTemplatesListCall { + 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 *RegionInstanceTemplatesListCall) OrderBy(orderBy string) *RegionInstanceTemplatesListCall { + 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 *RegionInstanceTemplatesListCall) PageToken(pageToken string) *RegionInstanceTemplatesListCall { + c.urlParams_.Set("pageToken", pageToken) + return c +} + +// ReturnPartialSuccess sets the optional parameter "returnPartialSuccess": +// Opt-in for partial success behavior which provides partial results in +// case +// of failure. The default value is false. +// +// For example, when partial success behavior is enabled, aggregatedList for +// a +// single zone scope either returns all resources in the zone or no +// resources, +// with an error code. +func (c *RegionInstanceTemplatesListCall) ReturnPartialSuccess(returnPartialSuccess bool) *RegionInstanceTemplatesListCall { + c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess)) return c } // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *RegionNetworkFirewallPoliciesPatchRuleCall) Fields(s ...googleapi.Field) *RegionNetworkFirewallPoliciesPatchRuleCall { +func (c *RegionInstanceTemplatesListCall) Fields(s ...googleapi.Field) *RegionInstanceTemplatesListCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } +// IfNoneMatch sets an 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. +func (c *RegionInstanceTemplatesListCall) IfNoneMatch(entityTag string) *RegionInstanceTemplatesListCall { + c.ifNoneMatch_ = entityTag + return c +} + // Context sets the context to be used in this call's Do method. -func (c *RegionNetworkFirewallPoliciesPatchRuleCall) Context(ctx context.Context) *RegionNetworkFirewallPoliciesPatchRuleCall { +func (c *RegionInstanceTemplatesListCall) Context(ctx context.Context) *RegionInstanceTemplatesListCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *RegionNetworkFirewallPoliciesPatchRuleCall) Header() http.Header { +func (c *RegionInstanceTemplatesListCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *RegionNetworkFirewallPoliciesPatchRuleCall) doRequest(alt string) (*http.Response, error) { - reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) - var body io.Reader = nil - body, err := googleapi.WithoutDataWrapper.JSONReader(c.firewallpolicyrule) - if err != nil { - return nil, err +func (c *RegionInstanceTemplatesListCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) + if c.ifNoneMatch_ != "" { + reqHeaders.Set("If-None-Match", c.ifNoneMatch_) } c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/firewallPolicies/{firewallPolicy}/patchRule") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/instanceTemplates") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("POST", urls, body) + req, err := http.NewRequest("GET", urls, nil) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "region": c.region, - "firewallPolicy": c.firewallPolicy, + "project": c.project, + "region": c.region, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.regionInstanceTemplates.list", "request", internallog.HTTPRequest(req, nil)) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.regionNetworkFirewallPolicies.patchRule" call. +// Do executes the "compute.regionInstanceTemplates.list" call. // 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 *RegionNetworkFirewallPoliciesPatchRuleCall) Do(opts ...googleapi.CallOption) (*Operation, error) { +// *InstanceTemplateList.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 *RegionInstanceTemplatesListCall) Do(opts ...googleapi.CallOption) (*InstanceTemplateList, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -14314,61 +15942,84 @@ func (c *RegionNetworkFirewallPoliciesPatchRuleCall) Do(opts ...googleapi.CallOp if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } - ret := &Operation{ + ret := &InstanceTemplateList{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.regionInstanceTemplates.list", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type RegionNetworkFirewallPoliciesRemoveAssociationCall struct { - s *Service - project string - region string - firewallPolicy string - urlParams_ gensupport.URLParams - ctx_ context.Context - header_ http.Header +// 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 *RegionInstanceTemplatesListCall) Pages(ctx context.Context, f func(*InstanceTemplateList) error) error { + c.ctx_ = ctx + defer c.PageToken(c.urlParams_.Get("pageToken")) + 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) + } } -// RemoveAssociation: Removes an association for the specified network firewall -// policy. +type RegionInstancesBulkInsertCall struct { + s *Service + project string + region string + bulkinsertinstanceresource *BulkInsertInstanceResource + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header +} + +// BulkInsert: Creates multiple instances in a given region. Count specifies +// the number of +// instances to create. // -// - firewallPolicy: Name of the firewall policy to update. // - project: Project ID for this request. -// - region: Name of the region scoping this request. -func (r *RegionNetworkFirewallPoliciesService) RemoveAssociation(project string, region string, firewallPolicy string) *RegionNetworkFirewallPoliciesRemoveAssociationCall { - c := &RegionNetworkFirewallPoliciesRemoveAssociationCall{s: r.s, urlParams_: make(gensupport.URLParams)} +// - region: The name of the region for this request. +func (r *RegionInstancesService) BulkInsert(project string, region string, bulkinsertinstanceresource *BulkInsertInstanceResource) *RegionInstancesBulkInsertCall { + c := &RegionInstancesBulkInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project c.region = region - c.firewallPolicy = firewallPolicy - return c -} - -// Name sets the optional parameter "name": Name for the association that will -// be removed. -func (c *RegionNetworkFirewallPoliciesRemoveAssociationCall) Name(name string) *RegionNetworkFirewallPoliciesRemoveAssociationCall { - c.urlParams_.Set("name", name) + c.bulkinsertinstanceresource = bulkinsertinstanceresource 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 *RegionNetworkFirewallPoliciesRemoveAssociationCall) RequestId(requestId string) *RegionNetworkFirewallPoliciesRemoveAssociationCall { +// 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 *RegionInstancesBulkInsertCall) RequestId(requestId string) *RegionInstancesBulkInsertCall { c.urlParams_.Set("requestId", requestId) return c } @@ -14376,32 +16027,35 @@ func (c *RegionNetworkFirewallPoliciesRemoveAssociationCall) RequestId(requestId // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *RegionNetworkFirewallPoliciesRemoveAssociationCall) Fields(s ...googleapi.Field) *RegionNetworkFirewallPoliciesRemoveAssociationCall { +func (c *RegionInstancesBulkInsertCall) Fields(s ...googleapi.Field) *RegionInstancesBulkInsertCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } // Context sets the context to be used in this call's Do method. -func (c *RegionNetworkFirewallPoliciesRemoveAssociationCall) Context(ctx context.Context) *RegionNetworkFirewallPoliciesRemoveAssociationCall { +func (c *RegionInstancesBulkInsertCall) Context(ctx context.Context) *RegionInstancesBulkInsertCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *RegionNetworkFirewallPoliciesRemoveAssociationCall) Header() http.Header { +func (c *RegionInstancesBulkInsertCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *RegionNetworkFirewallPoliciesRemoveAssociationCall) doRequest(alt string) (*http.Response, error) { - reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) - var body io.Reader = nil +func (c *RegionInstancesBulkInsertCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) + body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.bulkinsertinstanceresource) + if err != nil { + return nil, err + } c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/firewallPolicies/{firewallPolicy}/removeAssociation") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/instances/bulkInsert") urls += "?" + c.urlParams_.Encode() req, err := http.NewRequest("POST", urls, body) if err != nil { @@ -14409,19 +16063,19 @@ func (c *RegionNetworkFirewallPoliciesRemoveAssociationCall) doRequest(alt strin } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "region": c.region, - "firewallPolicy": c.firewallPolicy, + "project": c.project, + "region": c.region, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.regionInstances.bulkInsert", "request", internallog.HTTPRequest(req, body.Bytes())) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.regionNetworkFirewallPolicies.removeAssociation" call. +// Do executes the "compute.regionInstances.bulkInsert" call. // 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 *RegionNetworkFirewallPoliciesRemoveAssociationCall) Do(opts ...googleapi.CallOption) (*Operation, error) { +func (c *RegionInstancesBulkInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -14447,53 +16101,55 @@ func (c *RegionNetworkFirewallPoliciesRemoveAssociationCall) Do(opts ...googleap }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.regionInstances.bulkInsert", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type RegionNetworkFirewallPoliciesRemoveRuleCall struct { - s *Service - project string - region string - firewallPolicy string - urlParams_ gensupport.URLParams - ctx_ context.Context - header_ http.Header +type RegionInstantSnapshotGroupsDeleteCall struct { + s *Service + project string + region string + instantSnapshotGroup string + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header } -// RemoveRule: Deletes a rule of the specified priority. +// Delete: deletes a Regional InstantSnapshotGroup resource // -// - firewallPolicy: Name of the firewall policy to update. +// - instantSnapshotGroup: Name of the InstantSnapshotGroup resource to delete. // - project: Project ID for this request. -// - region: Name of the region scoping this request. -func (r *RegionNetworkFirewallPoliciesService) RemoveRule(project string, region string, firewallPolicy string) *RegionNetworkFirewallPoliciesRemoveRuleCall { - c := &RegionNetworkFirewallPoliciesRemoveRuleCall{s: r.s, urlParams_: make(gensupport.URLParams)} +// - region: The name of the region for this request. +func (r *RegionInstantSnapshotGroupsService) Delete(project string, region string, instantSnapshotGroup string) *RegionInstantSnapshotGroupsDeleteCall { + c := &RegionInstantSnapshotGroupsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project c.region = region - c.firewallPolicy = firewallPolicy - return c -} - -// Priority sets the optional parameter "priority": The priority of the rule to -// remove from the firewall policy. -func (c *RegionNetworkFirewallPoliciesRemoveRuleCall) Priority(priority int64) *RegionNetworkFirewallPoliciesRemoveRuleCall { - c.urlParams_.Set("priority", fmt.Sprint(priority)) + c.instantSnapshotGroup = instantSnapshotGroup 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 *RegionNetworkFirewallPoliciesRemoveRuleCall) RequestId(requestId string) *RegionNetworkFirewallPoliciesRemoveRuleCall { +// 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 *RegionInstantSnapshotGroupsDeleteCall) RequestId(requestId string) *RegionInstantSnapshotGroupsDeleteCall { c.urlParams_.Set("requestId", requestId) return c } @@ -14501,52 +16157,52 @@ func (c *RegionNetworkFirewallPoliciesRemoveRuleCall) RequestId(requestId string // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *RegionNetworkFirewallPoliciesRemoveRuleCall) Fields(s ...googleapi.Field) *RegionNetworkFirewallPoliciesRemoveRuleCall { +func (c *RegionInstantSnapshotGroupsDeleteCall) Fields(s ...googleapi.Field) *RegionInstantSnapshotGroupsDeleteCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } // Context sets the context to be used in this call's Do method. -func (c *RegionNetworkFirewallPoliciesRemoveRuleCall) Context(ctx context.Context) *RegionNetworkFirewallPoliciesRemoveRuleCall { +func (c *RegionInstantSnapshotGroupsDeleteCall) Context(ctx context.Context) *RegionInstantSnapshotGroupsDeleteCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *RegionNetworkFirewallPoliciesRemoveRuleCall) Header() http.Header { +func (c *RegionInstantSnapshotGroupsDeleteCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *RegionNetworkFirewallPoliciesRemoveRuleCall) doRequest(alt string) (*http.Response, error) { +func (c *RegionInstantSnapshotGroupsDeleteCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) - var body io.Reader = nil c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/firewallPolicies/{firewallPolicy}/removeRule") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/instantSnapshotGroups/{instantSnapshotGroup}") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("POST", urls, body) + req, err := http.NewRequest("DELETE", urls, nil) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "region": c.region, - "firewallPolicy": c.firewallPolicy, + "project": c.project, + "region": c.region, + "instantSnapshotGroup": c.instantSnapshotGroup, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.regionInstantSnapshotGroups.delete", "request", internallog.HTTPRequest(req, nil)) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.regionNetworkFirewallPolicies.removeRule" call. +// Do executes the "compute.regionInstantSnapshotGroups.delete" call. // 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 *RegionNetworkFirewallPoliciesRemoveRuleCall) Do(opts ...googleapi.CallOption) (*Operation, error) { +func (c *RegionInstantSnapshotGroupsDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -14572,91 +16228,101 @@ func (c *RegionNetworkFirewallPoliciesRemoveRuleCall) Do(opts ...googleapi.CallO }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.regionInstantSnapshotGroups.delete", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type RegionNetworkFirewallPoliciesSetIamPolicyCall struct { - s *Service - project string - region string - resource string - regionsetpolicyrequest *RegionSetPolicyRequest - urlParams_ gensupport.URLParams - ctx_ context.Context - header_ http.Header +type RegionInstantSnapshotGroupsGetCall struct { + s *Service + project string + region string + instantSnapshotGroup string + urlParams_ gensupport.URLParams + ifNoneMatch_ string + ctx_ context.Context + header_ http.Header } -// SetIamPolicy: Sets the access control policy on the specified resource. -// Replaces any existing policy. +// Get: returns the specified InstantSnapshotGroup resource in the +// specified +// region. // +// - instantSnapshotGroup: Name of the InstantSnapshotGroup resource to return. // - project: Project ID for this request. // - region: The name of the region for this request. -// - resource: Name or id of the resource for this request. -func (r *RegionNetworkFirewallPoliciesService) SetIamPolicy(project string, region string, resource string, regionsetpolicyrequest *RegionSetPolicyRequest) *RegionNetworkFirewallPoliciesSetIamPolicyCall { - c := &RegionNetworkFirewallPoliciesSetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)} +func (r *RegionInstantSnapshotGroupsService) Get(project string, region string, instantSnapshotGroup string) *RegionInstantSnapshotGroupsGetCall { + c := &RegionInstantSnapshotGroupsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project c.region = region - c.resource = resource - c.regionsetpolicyrequest = regionsetpolicyrequest + c.instantSnapshotGroup = instantSnapshotGroup return c } // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *RegionNetworkFirewallPoliciesSetIamPolicyCall) Fields(s ...googleapi.Field) *RegionNetworkFirewallPoliciesSetIamPolicyCall { +func (c *RegionInstantSnapshotGroupsGetCall) Fields(s ...googleapi.Field) *RegionInstantSnapshotGroupsGetCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } +// IfNoneMatch sets an 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. +func (c *RegionInstantSnapshotGroupsGetCall) IfNoneMatch(entityTag string) *RegionInstantSnapshotGroupsGetCall { + c.ifNoneMatch_ = entityTag + return c +} + // Context sets the context to be used in this call's Do method. -func (c *RegionNetworkFirewallPoliciesSetIamPolicyCall) Context(ctx context.Context) *RegionNetworkFirewallPoliciesSetIamPolicyCall { +func (c *RegionInstantSnapshotGroupsGetCall) Context(ctx context.Context) *RegionInstantSnapshotGroupsGetCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *RegionNetworkFirewallPoliciesSetIamPolicyCall) Header() http.Header { +func (c *RegionInstantSnapshotGroupsGetCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *RegionNetworkFirewallPoliciesSetIamPolicyCall) doRequest(alt string) (*http.Response, error) { - reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) - var body io.Reader = nil - body, err := googleapi.WithoutDataWrapper.JSONReader(c.regionsetpolicyrequest) - if err != nil { - return nil, err +func (c *RegionInstantSnapshotGroupsGetCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) + if c.ifNoneMatch_ != "" { + reqHeaders.Set("If-None-Match", c.ifNoneMatch_) } c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/firewallPolicies/{resource}/setIamPolicy") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/instantSnapshotGroups/{instantSnapshotGroup}") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("POST", urls, body) + req, err := http.NewRequest("GET", urls, nil) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "region": c.region, - "resource": c.resource, + "project": c.project, + "region": c.region, + "instantSnapshotGroup": c.instantSnapshotGroup, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.regionInstantSnapshotGroups.get", "request", internallog.HTTPRequest(req, nil)) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.regionNetworkFirewallPolicies.setIamPolicy" call. +// Do executes the "compute.regionInstantSnapshotGroups.get" call. // Any non-2xx status code is an error. Response headers are in either -// *Policy.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 *RegionNetworkFirewallPoliciesSetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, error) { +// *InstantSnapshotGroup.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 *RegionInstantSnapshotGroupsGetCall) Do(opts ...googleapi.CallOption) (*InstantSnapshotGroup, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -14675,80 +16341,95 @@ func (c *RegionNetworkFirewallPoliciesSetIamPolicyCall) Do(opts ...googleapi.Cal if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } - ret := &Policy{ + ret := &InstantSnapshotGroup{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.regionInstantSnapshotGroups.get", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type RegionNetworkFirewallPoliciesTestIamPermissionsCall struct { - s *Service - project string - region string - resource string - testpermissionsrequest *TestPermissionsRequest - urlParams_ gensupport.URLParams - ctx_ context.Context - header_ http.Header +type RegionInstantSnapshotGroupsGetIamPolicyCall struct { + s *Service + project string + region string + resource string + urlParams_ gensupport.URLParams + ifNoneMatch_ string + ctx_ context.Context + header_ http.Header } -// TestIamPermissions: Returns permissions that a caller has on the specified -// resource. +// GetIamPolicy: Gets the access control policy for a resource. May be empty if +// no such +// policy or resource exists. // // - project: Project ID for this request. // - region: The name of the region for this request. // - resource: Name or id of the resource for this request. -func (r *RegionNetworkFirewallPoliciesService) TestIamPermissions(project string, region string, resource string, testpermissionsrequest *TestPermissionsRequest) *RegionNetworkFirewallPoliciesTestIamPermissionsCall { - c := &RegionNetworkFirewallPoliciesTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)} +func (r *RegionInstantSnapshotGroupsService) GetIamPolicy(project string, region string, resource string) *RegionInstantSnapshotGroupsGetIamPolicyCall { + c := &RegionInstantSnapshotGroupsGetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project c.region = region c.resource = resource - c.testpermissionsrequest = testpermissionsrequest + return c +} + +// OptionsRequestedPolicyVersion sets the optional parameter +// "optionsRequestedPolicyVersion": Requested IAM Policy version. +func (c *RegionInstantSnapshotGroupsGetIamPolicyCall) OptionsRequestedPolicyVersion(optionsRequestedPolicyVersion int64) *RegionInstantSnapshotGroupsGetIamPolicyCall { + c.urlParams_.Set("optionsRequestedPolicyVersion", fmt.Sprint(optionsRequestedPolicyVersion)) return c } // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *RegionNetworkFirewallPoliciesTestIamPermissionsCall) Fields(s ...googleapi.Field) *RegionNetworkFirewallPoliciesTestIamPermissionsCall { +func (c *RegionInstantSnapshotGroupsGetIamPolicyCall) Fields(s ...googleapi.Field) *RegionInstantSnapshotGroupsGetIamPolicyCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } +// IfNoneMatch sets an 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. +func (c *RegionInstantSnapshotGroupsGetIamPolicyCall) IfNoneMatch(entityTag string) *RegionInstantSnapshotGroupsGetIamPolicyCall { + c.ifNoneMatch_ = entityTag + return c +} + // Context sets the context to be used in this call's Do method. -func (c *RegionNetworkFirewallPoliciesTestIamPermissionsCall) Context(ctx context.Context) *RegionNetworkFirewallPoliciesTestIamPermissionsCall { +func (c *RegionInstantSnapshotGroupsGetIamPolicyCall) Context(ctx context.Context) *RegionInstantSnapshotGroupsGetIamPolicyCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *RegionNetworkFirewallPoliciesTestIamPermissionsCall) Header() http.Header { +func (c *RegionInstantSnapshotGroupsGetIamPolicyCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *RegionNetworkFirewallPoliciesTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) { - reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) - var body io.Reader = nil - body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest) - if err != nil { - return nil, err +func (c *RegionInstantSnapshotGroupsGetIamPolicyCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) + if c.ifNoneMatch_ != "" { + reqHeaders.Set("If-None-Match", c.ifNoneMatch_) } c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/firewallPolicies/{resource}/testIamPermissions") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/instantSnapshotGroups/{resource}/getIamPolicy") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("POST", urls, body) + req, err := http.NewRequest("GET", urls, nil) if err != nil { return nil, err } @@ -14758,16 +16439,16 @@ func (c *RegionNetworkFirewallPoliciesTestIamPermissionsCall) doRequest(alt stri "region": c.region, "resource": c.resource, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.regionInstantSnapshotGroups.getIamPolicy", "request", internallog.HTTPRequest(req, nil)) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.regionNetworkFirewallPolicies.testIamPermissions" call. +// Do executes the "compute.regionInstantSnapshotGroups.getIamPolicy" call. // Any non-2xx status code is an error. Response headers are in either -// *TestPermissionsResponse.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 *RegionNetworkFirewallPoliciesTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) { +// *Policy.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 *RegionInstantSnapshotGroupsGetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -14786,106 +16467,124 @@ func (c *RegionNetworkFirewallPoliciesTestIamPermissionsCall) Do(opts ...googlea if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } - ret := &TestPermissionsResponse{ + ret := &Policy{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.regionInstantSnapshotGroups.getIamPolicy", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type RegionNotificationEndpointsDeleteCall struct { +type RegionInstantSnapshotGroupsInsertCall struct { s *Service project string region string - notificationEndpoint string + instantsnapshotgroup *InstantSnapshotGroup urlParams_ gensupport.URLParams ctx_ context.Context header_ http.Header } -// Delete: Deletes the specified NotificationEndpoint in the given region +// Insert: creates a Regional InstantSnapshotGroup resource // -// - notificationEndpoint: Name of the NotificationEndpoint resource to delete. // - project: Project ID for this request. -// - region: Name of the region scoping this request. -func (r *RegionNotificationEndpointsService) Delete(project string, region string, notificationEndpoint string) *RegionNotificationEndpointsDeleteCall { - c := &RegionNotificationEndpointsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)} +// - region: Name of the region for this request. +func (r *RegionInstantSnapshotGroupsService) Insert(project string, region string, instantsnapshotgroup *InstantSnapshotGroup) *RegionInstantSnapshotGroupsInsertCall { + c := &RegionInstantSnapshotGroupsInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project c.region = region - c.notificationEndpoint = notificationEndpoint + c.instantsnapshotgroup = instantsnapshotgroup 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 *RegionNotificationEndpointsDeleteCall) RequestId(requestId string) *RegionNotificationEndpointsDeleteCall { +// 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 *RegionInstantSnapshotGroupsInsertCall) RequestId(requestId string) *RegionInstantSnapshotGroupsInsertCall { c.urlParams_.Set("requestId", requestId) return c } +// SourceConsistencyGroup sets the optional parameter "sourceConsistencyGroup": +// begin_interface: MixerMutationRequestBuilder +func (c *RegionInstantSnapshotGroupsInsertCall) SourceConsistencyGroup(sourceConsistencyGroup string) *RegionInstantSnapshotGroupsInsertCall { + c.urlParams_.Set("sourceConsistencyGroup", sourceConsistencyGroup) + return c +} + // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *RegionNotificationEndpointsDeleteCall) Fields(s ...googleapi.Field) *RegionNotificationEndpointsDeleteCall { +func (c *RegionInstantSnapshotGroupsInsertCall) Fields(s ...googleapi.Field) *RegionInstantSnapshotGroupsInsertCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } // Context sets the context to be used in this call's Do method. -func (c *RegionNotificationEndpointsDeleteCall) Context(ctx context.Context) *RegionNotificationEndpointsDeleteCall { +func (c *RegionInstantSnapshotGroupsInsertCall) Context(ctx context.Context) *RegionInstantSnapshotGroupsInsertCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *RegionNotificationEndpointsDeleteCall) Header() http.Header { +func (c *RegionInstantSnapshotGroupsInsertCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *RegionNotificationEndpointsDeleteCall) doRequest(alt string) (*http.Response, error) { - reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) - var body io.Reader = nil +func (c *RegionInstantSnapshotGroupsInsertCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) + body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.instantsnapshotgroup) + if err != nil { + return nil, err + } c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/notificationEndpoints/{notificationEndpoint}") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/instantSnapshotGroups") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("DELETE", urls, body) + req, err := http.NewRequest("POST", urls, body) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "region": c.region, - "notificationEndpoint": c.notificationEndpoint, + "project": c.project, + "region": c.region, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.regionInstantSnapshotGroups.insert", "request", internallog.HTTPRequest(req, body.Bytes())) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.regionNotificationEndpoints.delete" call. +// Do executes the "compute.regionInstantSnapshotGroups.insert" call. // 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 *RegionNotificationEndpointsDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) { +func (c *RegionInstantSnapshotGroupsInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -14911,41 +16610,169 @@ func (c *RegionNotificationEndpointsDeleteCall) Do(opts ...googleapi.CallOption) }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.regionInstantSnapshotGroups.insert", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type RegionNotificationEndpointsGetCall struct { - s *Service - project string - region string - notificationEndpoint string - urlParams_ gensupport.URLParams - ifNoneMatch_ string - ctx_ context.Context - header_ http.Header +type RegionInstantSnapshotGroupsListCall struct { + s *Service + project string + region string + urlParams_ gensupport.URLParams + ifNoneMatch_ string + ctx_ context.Context + header_ http.Header } -// Get: Returns the specified NotificationEndpoint resource in the given -// region. +// List: retrieves the list of InstantSnapshotGroup resources contained +// within +// the specified region. // -// - notificationEndpoint: Name of the NotificationEndpoint resource to return. // - project: Project ID for this request. -// - region: Name of the region scoping this request. -func (r *RegionNotificationEndpointsService) Get(project string, region string, notificationEndpoint string) *RegionNotificationEndpointsGetCall { - c := &RegionNotificationEndpointsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)} +// - region: The name of the region for this request. +func (r *RegionInstantSnapshotGroupsService) List(project string, region string) *RegionInstantSnapshotGroupsListCall { + c := &RegionInstantSnapshotGroupsListCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project c.region = region - c.notificationEndpoint = notificationEndpoint + return c +} + +// Filter sets the optional parameter "filter": A filter expression that +// filters resources listed in the response. Most +// Compute resources support two types of filter expressions: +// expressions that support regular expressions and expressions that follow +// API improvement proposal AIP-160. +// These two types of filter expressions cannot be mixed in one request. +// +// If you want to use AIP-160, your expression must specify the field name, +// an +// operator, and the value that you want to use for filtering. The value +// must be a string, a number, or a boolean. The 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`. +// +// The `:*` comparison can be used to test whether a key has been defined. +// For example, to find all objects with `owner` label +// use: +// ``` +// labels.owner:* +// ``` +// +// 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 onresource 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) +// ``` +// +// If you want to use a regular expression, use the `eq` (equal) or `ne` +// (not equal) operator against a single un-parenthesized expression with +// or +// without quotes or against multiple parenthesized expressions. +// Examples: +// +// `fieldname eq unquoted literal` +// `fieldname eq 'single quoted literal'` +// `fieldname eq "double quoted literal" +// `(fieldname1 eq literal) (fieldname2 ne "literal")` +// +// The literal value is interpreted as a regular expression using GoogleRE2 +// library syntax. +// The literal value must match the entire field. +// +// For example, to filter for instances that do not end with name +// "instance", +// you would use `name ne .*instance`. +// +// You cannot combine constraints on multiple fields using regular +// expressions. +func (c *RegionInstantSnapshotGroupsListCall) Filter(filter string) *RegionInstantSnapshotGroupsListCall { + 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 *RegionInstantSnapshotGroupsListCall) MaxResults(maxResults int64) *RegionInstantSnapshotGroupsListCall { + 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 *RegionInstantSnapshotGroupsListCall) OrderBy(orderBy string) *RegionInstantSnapshotGroupsListCall { + 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 *RegionInstantSnapshotGroupsListCall) PageToken(pageToken string) *RegionInstantSnapshotGroupsListCall { + c.urlParams_.Set("pageToken", pageToken) + return c +} + +// ReturnPartialSuccess sets the optional parameter "returnPartialSuccess": +// Opt-in for partial success behavior which provides partial results in +// case +// of failure. The default value is false. +// +// For example, when partial success behavior is enabled, aggregatedList for +// a +// single zone scope either returns all resources in the zone or no +// resources, +// with an error code. +func (c *RegionInstantSnapshotGroupsListCall) ReturnPartialSuccess(returnPartialSuccess bool) *RegionInstantSnapshotGroupsListCall { + c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess)) return c } // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *RegionNotificationEndpointsGetCall) Fields(s ...googleapi.Field) *RegionNotificationEndpointsGetCall { +func (c *RegionInstantSnapshotGroupsListCall) Fields(s ...googleapi.Field) *RegionInstantSnapshotGroupsListCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } @@ -14953,56 +16780,55 @@ func (c *RegionNotificationEndpointsGetCall) Fields(s ...googleapi.Field) *Regio // IfNoneMatch sets an 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. -func (c *RegionNotificationEndpointsGetCall) IfNoneMatch(entityTag string) *RegionNotificationEndpointsGetCall { +func (c *RegionInstantSnapshotGroupsListCall) IfNoneMatch(entityTag string) *RegionInstantSnapshotGroupsListCall { c.ifNoneMatch_ = entityTag return c } // Context sets the context to be used in this call's Do method. -func (c *RegionNotificationEndpointsGetCall) Context(ctx context.Context) *RegionNotificationEndpointsGetCall { +func (c *RegionInstantSnapshotGroupsListCall) Context(ctx context.Context) *RegionInstantSnapshotGroupsListCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *RegionNotificationEndpointsGetCall) Header() http.Header { +func (c *RegionInstantSnapshotGroupsListCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *RegionNotificationEndpointsGetCall) doRequest(alt string) (*http.Response, error) { +func (c *RegionInstantSnapshotGroupsListCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) if c.ifNoneMatch_ != "" { reqHeaders.Set("If-None-Match", c.ifNoneMatch_) } - var body io.Reader = nil c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/notificationEndpoints/{notificationEndpoint}") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/instantSnapshotGroups") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("GET", urls, body) + req, err := http.NewRequest("GET", urls, nil) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "region": c.region, - "notificationEndpoint": c.notificationEndpoint, + "project": c.project, + "region": c.region, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.regionInstantSnapshotGroups.list", "request", internallog.HTTPRequest(req, nil)) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.regionNotificationEndpoints.get" call. +// Do executes the "compute.regionInstantSnapshotGroups.list" call. // Any non-2xx status code is an error. Response headers are in either -// *NotificationEndpoint.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 *RegionNotificationEndpointsGetCall) Do(opts ...googleapi.CallOption) (*NotificationEndpoint, error) { +// *ListInstantSnapshotGroups.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 *RegionInstantSnapshotGroupsListCall) Do(opts ...googleapi.CallOption) (*ListInstantSnapshotGroups, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -15021,90 +16847,101 @@ func (c *RegionNotificationEndpointsGetCall) Do(opts ...googleapi.CallOption) (* if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } - ret := &NotificationEndpoint{ + ret := &ListInstantSnapshotGroups{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.regionInstantSnapshotGroups.list", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type RegionNotificationEndpointsInsertCall struct { - s *Service - project string - region string - notificationendpoint *NotificationEndpoint - urlParams_ gensupport.URLParams - ctx_ context.Context - header_ http.Header +// 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 *RegionInstantSnapshotGroupsListCall) Pages(ctx context.Context, f func(*ListInstantSnapshotGroups) error) error { + c.ctx_ = ctx + defer c.PageToken(c.urlParams_.Get("pageToken")) + 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) + } } -// Insert: Create a NotificationEndpoint in the specified project in the given -// region using the parameters that are included in the request. +type RegionInstantSnapshotGroupsSetIamPolicyCall struct { + s *Service + project string + region string + resource string + regionsetpolicyrequest *RegionSetPolicyRequest + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header +} + +// SetIamPolicy: Sets the access control policy on the specified +// resource. +// Replaces any existing policy. // // - project: Project ID for this request. -// - region: Name of the region scoping this request. -func (r *RegionNotificationEndpointsService) Insert(project string, region string, notificationendpoint *NotificationEndpoint) *RegionNotificationEndpointsInsertCall { - c := &RegionNotificationEndpointsInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)} +// - region: The name of the region for this request. +// - resource: Name or id of the resource for this request. +func (r *RegionInstantSnapshotGroupsService) SetIamPolicy(project string, region string, resource string, regionsetpolicyrequest *RegionSetPolicyRequest) *RegionInstantSnapshotGroupsSetIamPolicyCall { + c := &RegionInstantSnapshotGroupsSetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project c.region = region - c.notificationendpoint = notificationendpoint - 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 *RegionNotificationEndpointsInsertCall) RequestId(requestId string) *RegionNotificationEndpointsInsertCall { - c.urlParams_.Set("requestId", requestId) + c.resource = resource + c.regionsetpolicyrequest = regionsetpolicyrequest return c } // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *RegionNotificationEndpointsInsertCall) Fields(s ...googleapi.Field) *RegionNotificationEndpointsInsertCall { +func (c *RegionInstantSnapshotGroupsSetIamPolicyCall) Fields(s ...googleapi.Field) *RegionInstantSnapshotGroupsSetIamPolicyCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } // Context sets the context to be used in this call's Do method. -func (c *RegionNotificationEndpointsInsertCall) Context(ctx context.Context) *RegionNotificationEndpointsInsertCall { +func (c *RegionInstantSnapshotGroupsSetIamPolicyCall) Context(ctx context.Context) *RegionInstantSnapshotGroupsSetIamPolicyCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *RegionNotificationEndpointsInsertCall) Header() http.Header { +func (c *RegionInstantSnapshotGroupsSetIamPolicyCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *RegionNotificationEndpointsInsertCall) doRequest(alt string) (*http.Response, error) { +func (c *RegionInstantSnapshotGroupsSetIamPolicyCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) - var body io.Reader = nil - body, err := googleapi.WithoutDataWrapper.JSONReader(c.notificationendpoint) + body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.regionsetpolicyrequest) if err != nil { return nil, err } c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/notificationEndpoints") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/instantSnapshotGroups/{resource}/setIamPolicy") urls += "?" + c.urlParams_.Encode() req, err := http.NewRequest("POST", urls, body) if err != nil { @@ -15112,18 +16949,20 @@ func (c *RegionNotificationEndpointsInsertCall) doRequest(alt string) (*http.Res } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "region": c.region, + "project": c.project, + "region": c.region, + "resource": c.resource, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.regionInstantSnapshotGroups.setIamPolicy", "request", internallog.HTTPRequest(req, body.Bytes())) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.regionNotificationEndpoints.insert" call. +// Do executes the "compute.regionInstantSnapshotGroups.setIamPolicy" call. // 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 +// *Policy.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 *RegionNotificationEndpointsInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) { +func (c *RegionInstantSnapshotGroupsSetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -15142,178 +16981,101 @@ func (c *RegionNotificationEndpointsInsertCall) Do(opts ...googleapi.CallOption) if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } - ret := &Operation{ + ret := &Policy{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.regionInstantSnapshotGroups.setIamPolicy", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type RegionNotificationEndpointsListCall struct { - s *Service - project string - region string - urlParams_ gensupport.URLParams - ifNoneMatch_ string - ctx_ context.Context - header_ http.Header +type RegionInstantSnapshotGroupsTestIamPermissionsCall struct { + s *Service + project string + region string + resource string + testpermissionsrequest *TestPermissionsRequest + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header } -// List: Lists the NotificationEndpoints for a project in the given region. +// TestIamPermissions: Returns permissions that a caller has on the specified +// resource. // // - project: Project ID for this request. -// - region: Name of the region scoping this request. -func (r *RegionNotificationEndpointsService) List(project string, region string) *RegionNotificationEndpointsListCall { - c := &RegionNotificationEndpointsListCall{s: r.s, urlParams_: make(gensupport.URLParams)} +// - region: The name of the region for this request. +// - resource: Name or id of the resource for this request. +func (r *RegionInstantSnapshotGroupsService) TestIamPermissions(project string, region string, resource string, testpermissionsrequest *TestPermissionsRequest) *RegionInstantSnapshotGroupsTestIamPermissionsCall { + c := &RegionInstantSnapshotGroupsTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project c.region = region - return c -} - -// Filter sets the optional parameter "filter": A filter expression that -// filters resources listed in the response. Most Compute resources support two -// types of filter expressions: expressions that support regular expressions -// and expressions that follow API improvement proposal AIP-160. These two -// types of filter expressions cannot be mixed in one request. If you want to -// use AIP-160, your expression must specify the field name, an operator, and -// the value that you want to use for filtering. The value must be a string, a -// number, or a boolean. The 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`. The `:*` comparison can be used to test whether a key has -// been defined. For example, to find all objects with `owner` label use: ``` -// labels.owner:* ``` 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) ``` If you want to use a regular -// expression, use the `eq` (equal) or `ne` (not equal) operator against a -// single un-parenthesized expression with or without quotes or against -// multiple parenthesized expressions. Examples: `fieldname eq unquoted -// literal` `fieldname eq 'single quoted literal'` `fieldname eq "double quoted -// literal" `(fieldname1 eq literal) (fieldname2 ne "literal")` The literal -// value is interpreted as a regular expression using Google RE2 library -// syntax. The literal value must match the entire field. For example, to -// filter for instances that do not end with name "instance", you would use -// `name ne .*instance`. You cannot combine constraints on multiple fields -// using regular expressions. -func (c *RegionNotificationEndpointsListCall) Filter(filter string) *RegionNotificationEndpointsListCall { - 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 *RegionNotificationEndpointsListCall) MaxResults(maxResults int64) *RegionNotificationEndpointsListCall { - 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 *RegionNotificationEndpointsListCall) OrderBy(orderBy string) *RegionNotificationEndpointsListCall { - 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 *RegionNotificationEndpointsListCall) PageToken(pageToken string) *RegionNotificationEndpointsListCall { - c.urlParams_.Set("pageToken", pageToken) - return c -} - -// ReturnPartialSuccess sets the optional parameter "returnPartialSuccess": -// Opt-in for partial success behavior which provides partial results in case -// of failure. The default value is false. For example, when partial success -// behavior is enabled, aggregatedList for a single zone scope either returns -// all resources in the zone or no resources, with an error code. -func (c *RegionNotificationEndpointsListCall) ReturnPartialSuccess(returnPartialSuccess bool) *RegionNotificationEndpointsListCall { - c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess)) + c.resource = resource + c.testpermissionsrequest = testpermissionsrequest return c } // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *RegionNotificationEndpointsListCall) Fields(s ...googleapi.Field) *RegionNotificationEndpointsListCall { +func (c *RegionInstantSnapshotGroupsTestIamPermissionsCall) Fields(s ...googleapi.Field) *RegionInstantSnapshotGroupsTestIamPermissionsCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } -// IfNoneMatch sets an 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. -func (c *RegionNotificationEndpointsListCall) IfNoneMatch(entityTag string) *RegionNotificationEndpointsListCall { - c.ifNoneMatch_ = entityTag - return c -} - // Context sets the context to be used in this call's Do method. -func (c *RegionNotificationEndpointsListCall) Context(ctx context.Context) *RegionNotificationEndpointsListCall { +func (c *RegionInstantSnapshotGroupsTestIamPermissionsCall) Context(ctx context.Context) *RegionInstantSnapshotGroupsTestIamPermissionsCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *RegionNotificationEndpointsListCall) Header() http.Header { +func (c *RegionInstantSnapshotGroupsTestIamPermissionsCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *RegionNotificationEndpointsListCall) doRequest(alt string) (*http.Response, error) { - reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) - if c.ifNoneMatch_ != "" { - reqHeaders.Set("If-None-Match", c.ifNoneMatch_) +func (c *RegionInstantSnapshotGroupsTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) + body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.testpermissionsrequest) + if err != nil { + return nil, err } - var body io.Reader = nil c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/notificationEndpoints") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/instantSnapshotGroups/{resource}/testIamPermissions") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("GET", urls, body) + req, err := http.NewRequest("POST", urls, body) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "region": c.region, + "project": c.project, + "region": c.region, + "resource": c.resource, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.regionInstantSnapshotGroups.testIamPermissions", "request", internallog.HTTPRequest(req, body.Bytes())) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.regionNotificationEndpoints.list" call. +// Do executes the "compute.regionInstantSnapshotGroups.testIamPermissions" call. // Any non-2xx status code is an error. Response headers are in either -// *NotificationEndpointList.ServerResponse.Header or (if a response was +// *TestPermissionsResponse.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 *RegionNotificationEndpointsListCall) Do(opts ...googleapi.CallOption) (*NotificationEndpointList, error) { +func (c *RegionInstantSnapshotGroupsTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -15332,148 +17094,187 @@ func (c *RegionNotificationEndpointsListCall) Do(opts ...googleapi.CallOption) ( if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } - ret := &NotificationEndpointList{ + ret := &TestPermissionsResponse{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.regionInstantSnapshotGroups.testIamPermissions", "response", internallog.HTTPResponse(res, b)) return ret, nil } -// 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 *RegionNotificationEndpointsListCall) Pages(ctx context.Context, f func(*NotificationEndpointList) error) error { - c.ctx_ = ctx - defer c.PageToken(c.urlParams_.Get("pageToken")) - 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) - } -} - -type RegionOperationsDeleteCall struct { - s *Service - project string - region string - operation string - urlParams_ gensupport.URLParams - ctx_ context.Context - header_ http.Header +type RegionInstantSnapshotsDeleteCall struct { + s *Service + project string + region string + instantSnapshot string + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header } -// Delete: Deletes the specified region-specific Operations resource. +// Delete: Deletes the specified InstantSnapshot resource. Keep in mind that +// deleting +// a single instantSnapshot might not necessarily delete all the data on +// that +// instantSnapshot. If any data on the instantSnapshot that is marked +// for +// deletion is needed for subsequent instantSnapshots, the data will be +// moved +// to the next corresponding instantSnapshot. // -// - operation: Name of the Operations resource to delete. +// For more information, seeDeleting +// instantSnapshots. +// +// - instantSnapshot: Name of the InstantSnapshot resource to delete. // - project: Project ID for this request. -// - region: Name of the region for this request. -func (r *RegionOperationsService) Delete(project string, region string, operation string) *RegionOperationsDeleteCall { - c := &RegionOperationsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)} +// - region: The name of the region for this request. +func (r *RegionInstantSnapshotsService) Delete(project string, region string, instantSnapshot string) *RegionInstantSnapshotsDeleteCall { + c := &RegionInstantSnapshotsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project c.region = region - c.operation = operation + c.instantSnapshot = instantSnapshot + 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 *RegionInstantSnapshotsDeleteCall) RequestId(requestId string) *RegionInstantSnapshotsDeleteCall { + 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 // details. -func (c *RegionOperationsDeleteCall) Fields(s ...googleapi.Field) *RegionOperationsDeleteCall { +func (c *RegionInstantSnapshotsDeleteCall) Fields(s ...googleapi.Field) *RegionInstantSnapshotsDeleteCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } // Context sets the context to be used in this call's Do method. -func (c *RegionOperationsDeleteCall) Context(ctx context.Context) *RegionOperationsDeleteCall { +func (c *RegionInstantSnapshotsDeleteCall) Context(ctx context.Context) *RegionInstantSnapshotsDeleteCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *RegionOperationsDeleteCall) Header() http.Header { +func (c *RegionInstantSnapshotsDeleteCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *RegionOperationsDeleteCall) doRequest(alt string) (*http.Response, error) { +func (c *RegionInstantSnapshotsDeleteCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) - var body io.Reader = nil c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/operations/{operation}") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/instantSnapshots/{instantSnapshot}") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("DELETE", urls, body) + req, err := http.NewRequest("DELETE", urls, nil) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "region": c.region, - "operation": c.operation, + "project": c.project, + "region": c.region, + "instantSnapshot": c.instantSnapshot, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.regionInstantSnapshots.delete", "request", internallog.HTTPRequest(req, nil)) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.regionOperations.delete" call. -func (c *RegionOperationsDeleteCall) Do(opts ...googleapi.CallOption) error { +// Do executes the "compute.regionInstantSnapshots.delete" call. +// 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 *RegionInstantSnapshotsDeleteCall) 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, gensupport.WrapError(&googleapi.Error{ + Code: res.StatusCode, + Header: res.Header, + }) + } if err != nil { - return err + return nil, err } defer googleapi.CloseBody(res) if err := googleapi.CheckResponse(res); err != nil { - return gensupport.WrapError(err) + return nil, gensupport.WrapError(err) } - return nil + ret := &Operation{ + ServerResponse: googleapi.ServerResponse{ + Header: res.Header, + HTTPStatusCode: res.StatusCode, + }, + } + target := &ret + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { + return nil, err + } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.regionInstantSnapshots.delete", "response", internallog.HTTPResponse(res, b)) + return ret, nil } -type RegionOperationsGetCall struct { - s *Service - project string - region string - operation string - urlParams_ gensupport.URLParams - ifNoneMatch_ string - ctx_ context.Context - header_ http.Header +type RegionInstantSnapshotsGetCall struct { + s *Service + project string + region string + instantSnapshot string + urlParams_ gensupport.URLParams + ifNoneMatch_ string + ctx_ context.Context + header_ http.Header } -// Get: Retrieves the specified region-specific Operations resource. +// Get: Returns the specified InstantSnapshot resource in the specified region. // -// - operation: Name of the Operations resource to return. +// - instantSnapshot: Name of the InstantSnapshot resource to return. // - project: Project ID for this request. -// - region: Name of the region for this request. -func (r *RegionOperationsService) Get(project string, region string, operation string) *RegionOperationsGetCall { - c := &RegionOperationsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)} +// - region: The name of the region for this request. +func (r *RegionInstantSnapshotsService) Get(project string, region string, instantSnapshot string) *RegionInstantSnapshotsGetCall { + c := &RegionInstantSnapshotsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project c.region = region - c.operation = operation + c.instantSnapshot = instantSnapshot return c } // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *RegionOperationsGetCall) Fields(s ...googleapi.Field) *RegionOperationsGetCall { +func (c *RegionInstantSnapshotsGetCall) Fields(s ...googleapi.Field) *RegionInstantSnapshotsGetCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } @@ -15481,55 +17282,56 @@ func (c *RegionOperationsGetCall) Fields(s ...googleapi.Field) *RegionOperations // IfNoneMatch sets an 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. -func (c *RegionOperationsGetCall) IfNoneMatch(entityTag string) *RegionOperationsGetCall { +func (c *RegionInstantSnapshotsGetCall) IfNoneMatch(entityTag string) *RegionInstantSnapshotsGetCall { c.ifNoneMatch_ = entityTag return c } // Context sets the context to be used in this call's Do method. -func (c *RegionOperationsGetCall) Context(ctx context.Context) *RegionOperationsGetCall { +func (c *RegionInstantSnapshotsGetCall) Context(ctx context.Context) *RegionInstantSnapshotsGetCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *RegionOperationsGetCall) Header() http.Header { +func (c *RegionInstantSnapshotsGetCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *RegionOperationsGetCall) doRequest(alt string) (*http.Response, error) { +func (c *RegionInstantSnapshotsGetCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) if c.ifNoneMatch_ != "" { reqHeaders.Set("If-None-Match", c.ifNoneMatch_) } - var body io.Reader = nil c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/operations/{operation}") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/instantSnapshots/{instantSnapshot}") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("GET", urls, body) + req, err := http.NewRequest("GET", urls, nil) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "region": c.region, - "operation": c.operation, + "project": c.project, + "region": c.region, + "instantSnapshot": c.instantSnapshot, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.regionInstantSnapshots.get", "request", internallog.HTTPRequest(req, nil)) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.regionOperations.get" call. +// Do executes the "compute.regionInstantSnapshots.get" call. // 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 *RegionOperationsGetCall) Do(opts ...googleapi.CallOption) (*Operation, error) { +// *InstantSnapshot.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 *RegionInstantSnapshotsGetCall) Do(opts ...googleapi.CallOption) (*InstantSnapshot, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -15548,123 +17350,58 @@ func (c *RegionOperationsGetCall) Do(opts ...googleapi.CallOption) (*Operation, if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } - ret := &Operation{ + ret := &InstantSnapshot{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.regionInstantSnapshots.get", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type RegionOperationsListCall struct { +type RegionInstantSnapshotsGetIamPolicyCall struct { s *Service project string region string + resource string urlParams_ gensupport.URLParams ifNoneMatch_ string ctx_ context.Context header_ http.Header } -// List: Retrieves a list of Operation resources contained within the specified -// region. +// GetIamPolicy: Gets the access control policy for a resource. May be empty if +// no such +// policy or resource exists. // // - project: Project ID for this request. -// - region: Name of the region for this request. -func (r *RegionOperationsService) List(project string, region string) *RegionOperationsListCall { - c := &RegionOperationsListCall{s: r.s, urlParams_: make(gensupport.URLParams)} +// - region: The name of the region for this request. +// - resource: Name or id of the resource for this request. +func (r *RegionInstantSnapshotsService) GetIamPolicy(project string, region string, resource string) *RegionInstantSnapshotsGetIamPolicyCall { + c := &RegionInstantSnapshotsGetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project c.region = region + c.resource = resource return c } -// Filter sets the optional parameter "filter": A filter expression that -// filters resources listed in the response. Most Compute resources support two -// types of filter expressions: expressions that support regular expressions -// and expressions that follow API improvement proposal AIP-160. These two -// types of filter expressions cannot be mixed in one request. If you want to -// use AIP-160, your expression must specify the field name, an operator, and -// the value that you want to use for filtering. The value must be a string, a -// number, or a boolean. The 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`. The `:*` comparison can be used to test whether a key has -// been defined. For example, to find all objects with `owner` label use: ``` -// labels.owner:* ``` 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) ``` If you want to use a regular -// expression, use the `eq` (equal) or `ne` (not equal) operator against a -// single un-parenthesized expression with or without quotes or against -// multiple parenthesized expressions. Examples: `fieldname eq unquoted -// literal` `fieldname eq 'single quoted literal'` `fieldname eq "double quoted -// literal" `(fieldname1 eq literal) (fieldname2 ne "literal")` The literal -// value is interpreted as a regular expression using Google RE2 library -// syntax. The literal value must match the entire field. For example, to -// filter for instances that do not end with name "instance", you would use -// `name ne .*instance`. You cannot combine constraints on multiple fields -// using regular expressions. -func (c *RegionOperationsListCall) Filter(filter string) *RegionOperationsListCall { - 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 *RegionOperationsListCall) MaxResults(maxResults int64) *RegionOperationsListCall { - 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 *RegionOperationsListCall) OrderBy(orderBy string) *RegionOperationsListCall { - 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 *RegionOperationsListCall) PageToken(pageToken string) *RegionOperationsListCall { - c.urlParams_.Set("pageToken", pageToken) - return c -} - -// ReturnPartialSuccess sets the optional parameter "returnPartialSuccess": -// Opt-in for partial success behavior which provides partial results in case -// of failure. The default value is false. For example, when partial success -// behavior is enabled, aggregatedList for a single zone scope either returns -// all resources in the zone or no resources, with an error code. -func (c *RegionOperationsListCall) ReturnPartialSuccess(returnPartialSuccess bool) *RegionOperationsListCall { - c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess)) +// OptionsRequestedPolicyVersion sets the optional parameter +// "optionsRequestedPolicyVersion": Requested IAM Policy version. +func (c *RegionInstantSnapshotsGetIamPolicyCall) OptionsRequestedPolicyVersion(optionsRequestedPolicyVersion int64) *RegionInstantSnapshotsGetIamPolicyCall { + c.urlParams_.Set("optionsRequestedPolicyVersion", fmt.Sprint(optionsRequestedPolicyVersion)) return c } // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *RegionOperationsListCall) Fields(s ...googleapi.Field) *RegionOperationsListCall { +func (c *RegionInstantSnapshotsGetIamPolicyCall) Fields(s ...googleapi.Field) *RegionInstantSnapshotsGetIamPolicyCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } @@ -15672,54 +17409,55 @@ func (c *RegionOperationsListCall) Fields(s ...googleapi.Field) *RegionOperation // IfNoneMatch sets an 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. -func (c *RegionOperationsListCall) IfNoneMatch(entityTag string) *RegionOperationsListCall { +func (c *RegionInstantSnapshotsGetIamPolicyCall) IfNoneMatch(entityTag string) *RegionInstantSnapshotsGetIamPolicyCall { c.ifNoneMatch_ = entityTag return c } // Context sets the context to be used in this call's Do method. -func (c *RegionOperationsListCall) Context(ctx context.Context) *RegionOperationsListCall { +func (c *RegionInstantSnapshotsGetIamPolicyCall) Context(ctx context.Context) *RegionInstantSnapshotsGetIamPolicyCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *RegionOperationsListCall) Header() http.Header { +func (c *RegionInstantSnapshotsGetIamPolicyCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *RegionOperationsListCall) doRequest(alt string) (*http.Response, error) { +func (c *RegionInstantSnapshotsGetIamPolicyCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) if c.ifNoneMatch_ != "" { reqHeaders.Set("If-None-Match", c.ifNoneMatch_) } - var body io.Reader = nil c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/operations") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/instantSnapshots/{resource}/getIamPolicy") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("GET", urls, body) + req, err := http.NewRequest("GET", urls, nil) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "region": c.region, + "project": c.project, + "region": c.region, + "resource": c.resource, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.regionInstantSnapshots.getIamPolicy", "request", internallog.HTTPRequest(req, nil)) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.regionOperations.list" call. +// Do executes the "compute.regionInstantSnapshots.getIamPolicy" call. // Any non-2xx status code is an error. Response headers are in either -// *OperationList.ServerResponse.Header or (if a response was returned at all) -// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check +// *Policy.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 *RegionOperationsListCall) Do(opts ...googleapi.CallOption) (*OperationList, error) { +func (c *RegionInstantSnapshotsGetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -15738,102 +17476,97 @@ func (c *RegionOperationsListCall) Do(opts ...googleapi.CallOption) (*OperationL if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } - ret := &OperationList{ + ret := &Policy{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.regionInstantSnapshots.getIamPolicy", "response", internallog.HTTPResponse(res, b)) return ret, nil } -// 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 *RegionOperationsListCall) Pages(ctx context.Context, f func(*OperationList) error) error { - c.ctx_ = ctx - defer c.PageToken(c.urlParams_.Get("pageToken")) - 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) - } -} - -type RegionOperationsWaitCall struct { - s *Service - project string - region string - operation string - urlParams_ gensupport.URLParams - ctx_ context.Context - header_ http.Header +type RegionInstantSnapshotsInsertCall struct { + s *Service + project string + region string + instantsnapshot *InstantSnapshot + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header } -// Wait: Waits for the specified Operation resource to return as `DONE` or for -// the request to approach the 2 minute deadline, and retrieves the specified -// Operation resource. This method differs from the `GET` method in that it -// waits for no more than the default deadline (2 minutes) and then returns the -// current state of the operation, which might be `DONE` or still in progress. -// This method is called on a best-effort basis. Specifically: - In uncommon -// cases, when the server is overloaded, the request might return before the -// default deadline is reached, or might return after zero seconds. - If the -// default deadline is reached, there is no guarantee that the operation is -// actually done when the method returns. Be prepared to retry if the operation -// is not `DONE`. +// Insert: Creates an instant snapshot in the specified region. // -// - operation: Name of the Operations resource to return. // - project: Project ID for this request. // - region: Name of the region for this request. -func (r *RegionOperationsService) Wait(project string, region string, operation string) *RegionOperationsWaitCall { - c := &RegionOperationsWaitCall{s: r.s, urlParams_: make(gensupport.URLParams)} +func (r *RegionInstantSnapshotsService) Insert(project string, region string, instantsnapshot *InstantSnapshot) *RegionInstantSnapshotsInsertCall { + c := &RegionInstantSnapshotsInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project c.region = region - c.operation = operation + c.instantsnapshot = instantsnapshot + 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 *RegionInstantSnapshotsInsertCall) RequestId(requestId string) *RegionInstantSnapshotsInsertCall { + 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 // details. -func (c *RegionOperationsWaitCall) Fields(s ...googleapi.Field) *RegionOperationsWaitCall { +func (c *RegionInstantSnapshotsInsertCall) Fields(s ...googleapi.Field) *RegionInstantSnapshotsInsertCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } // Context sets the context to be used in this call's Do method. -func (c *RegionOperationsWaitCall) Context(ctx context.Context) *RegionOperationsWaitCall { +func (c *RegionInstantSnapshotsInsertCall) Context(ctx context.Context) *RegionInstantSnapshotsInsertCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *RegionOperationsWaitCall) Header() http.Header { +func (c *RegionInstantSnapshotsInsertCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *RegionOperationsWaitCall) doRequest(alt string) (*http.Response, error) { - reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) - var body io.Reader = nil +func (c *RegionInstantSnapshotsInsertCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) + body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.instantsnapshot) + if err != nil { + return nil, err + } c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/operations/{operation}/wait") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/instantSnapshots") urls += "?" + c.urlParams_.Encode() req, err := http.NewRequest("POST", urls, body) if err != nil { @@ -15841,19 +17574,19 @@ func (c *RegionOperationsWaitCall) doRequest(alt string) (*http.Response, error) } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "region": c.region, - "operation": c.operation, + "project": c.project, + "region": c.region, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.regionInstantSnapshots.insert", "request", internallog.HTTPRequest(req, body.Bytes())) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.regionOperations.wait" call. +// Do executes the "compute.regionInstantSnapshots.insert" call. // 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 *RegionOperationsWaitCall) Do(opts ...googleapi.CallOption) (*Operation, error) { +func (c *RegionInstantSnapshotsInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -15879,97 +17612,224 @@ func (c *RegionOperationsWaitCall) Do(opts ...googleapi.CallOption) (*Operation, }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.regionInstantSnapshots.insert", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type RegionSecurityPoliciesAddRuleCall struct { - s *Service - project string - region string - securityPolicy string - securitypolicyrule *SecurityPolicyRule - urlParams_ gensupport.URLParams - ctx_ context.Context - header_ http.Header +type RegionInstantSnapshotsListCall struct { + s *Service + project string + region string + urlParams_ gensupport.URLParams + ifNoneMatch_ string + ctx_ context.Context + header_ http.Header } -// AddRule: Inserts a rule into a security policy. +// List: Retrieves the list of InstantSnapshot resources contained within +// the specified region. // // - project: Project ID for this request. -// - region: Name of the region scoping this request. -// - securityPolicy: Name of the security policy to update. -func (r *RegionSecurityPoliciesService) AddRule(project string, region string, securityPolicy string, securitypolicyrule *SecurityPolicyRule) *RegionSecurityPoliciesAddRuleCall { - c := &RegionSecurityPoliciesAddRuleCall{s: r.s, urlParams_: make(gensupport.URLParams)} +// - region: The name of the region for this request. +func (r *RegionInstantSnapshotsService) List(project string, region string) *RegionInstantSnapshotsListCall { + c := &RegionInstantSnapshotsListCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project c.region = region - c.securityPolicy = securityPolicy - c.securitypolicyrule = securitypolicyrule return c } -// ValidateOnly sets the optional parameter "validateOnly": If true, the -// request will not be committed. -func (c *RegionSecurityPoliciesAddRuleCall) ValidateOnly(validateOnly bool) *RegionSecurityPoliciesAddRuleCall { - c.urlParams_.Set("validateOnly", fmt.Sprint(validateOnly)) +// Filter sets the optional parameter "filter": A filter expression that +// filters resources listed in the response. Most +// Compute resources support two types of filter expressions: +// expressions that support regular expressions and expressions that follow +// API improvement proposal AIP-160. +// These two types of filter expressions cannot be mixed in one request. +// +// If you want to use AIP-160, your expression must specify the field name, +// an +// operator, and the value that you want to use for filtering. The value +// must be a string, a number, or a boolean. The 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`. +// +// The `:*` comparison can be used to test whether a key has been defined. +// For example, to find all objects with `owner` label +// use: +// ``` +// labels.owner:* +// ``` +// +// 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 onresource 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) +// ``` +// +// If you want to use a regular expression, use the `eq` (equal) or `ne` +// (not equal) operator against a single un-parenthesized expression with +// or +// without quotes or against multiple parenthesized expressions. +// Examples: +// +// `fieldname eq unquoted literal` +// `fieldname eq 'single quoted literal'` +// `fieldname eq "double quoted literal" +// `(fieldname1 eq literal) (fieldname2 ne "literal")` +// +// The literal value is interpreted as a regular expression using GoogleRE2 +// library syntax. +// The literal value must match the entire field. +// +// For example, to filter for instances that do not end with name +// "instance", +// you would use `name ne .*instance`. +// +// You cannot combine constraints on multiple fields using regular +// expressions. +func (c *RegionInstantSnapshotsListCall) Filter(filter string) *RegionInstantSnapshotsListCall { + 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 *RegionInstantSnapshotsListCall) MaxResults(maxResults int64) *RegionInstantSnapshotsListCall { + 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 *RegionInstantSnapshotsListCall) OrderBy(orderBy string) *RegionInstantSnapshotsListCall { + 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 *RegionInstantSnapshotsListCall) PageToken(pageToken string) *RegionInstantSnapshotsListCall { + c.urlParams_.Set("pageToken", pageToken) + return c +} + +// ReturnPartialSuccess sets the optional parameter "returnPartialSuccess": +// Opt-in for partial success behavior which provides partial results in +// case +// of failure. The default value is false. +// +// For example, when partial success behavior is enabled, aggregatedList for +// a +// single zone scope either returns all resources in the zone or no +// resources, +// with an error code. +func (c *RegionInstantSnapshotsListCall) ReturnPartialSuccess(returnPartialSuccess bool) *RegionInstantSnapshotsListCall { + c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess)) return c } // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *RegionSecurityPoliciesAddRuleCall) Fields(s ...googleapi.Field) *RegionSecurityPoliciesAddRuleCall { +func (c *RegionInstantSnapshotsListCall) Fields(s ...googleapi.Field) *RegionInstantSnapshotsListCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } +// IfNoneMatch sets an 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. +func (c *RegionInstantSnapshotsListCall) IfNoneMatch(entityTag string) *RegionInstantSnapshotsListCall { + c.ifNoneMatch_ = entityTag + return c +} + // Context sets the context to be used in this call's Do method. -func (c *RegionSecurityPoliciesAddRuleCall) Context(ctx context.Context) *RegionSecurityPoliciesAddRuleCall { +func (c *RegionInstantSnapshotsListCall) Context(ctx context.Context) *RegionInstantSnapshotsListCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *RegionSecurityPoliciesAddRuleCall) Header() http.Header { +func (c *RegionInstantSnapshotsListCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *RegionSecurityPoliciesAddRuleCall) doRequest(alt string) (*http.Response, error) { - reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) - var body io.Reader = nil - body, err := googleapi.WithoutDataWrapper.JSONReader(c.securitypolicyrule) - if err != nil { - return nil, err +func (c *RegionInstantSnapshotsListCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) + if c.ifNoneMatch_ != "" { + reqHeaders.Set("If-None-Match", c.ifNoneMatch_) } c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/securityPolicies/{securityPolicy}/addRule") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/instantSnapshots") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("POST", urls, body) + req, err := http.NewRequest("GET", urls, nil) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "region": c.region, - "securityPolicy": c.securityPolicy, + "project": c.project, + "region": c.region, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.regionInstantSnapshots.list", "request", internallog.HTTPRequest(req, nil)) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.regionSecurityPolicies.addRule" call. +// Do executes the "compute.regionInstantSnapshots.list" call. // 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 *RegionSecurityPoliciesAddRuleCall) Do(opts ...googleapi.CallOption) (*Operation, error) { +// *InstantSnapshotList.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 *RegionInstantSnapshotsListCall) Do(opts ...googleapi.CallOption) (*InstantSnapshotList, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -15988,106 +17848,122 @@ func (c *RegionSecurityPoliciesAddRuleCall) Do(opts ...googleapi.CallOption) (*O if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } - ret := &Operation{ + ret := &InstantSnapshotList{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.regionInstantSnapshots.list", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type RegionSecurityPoliciesDeleteCall struct { - s *Service - project string - region string - securityPolicy string - urlParams_ gensupport.URLParams - ctx_ context.Context - header_ http.Header +// 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 *RegionInstantSnapshotsListCall) Pages(ctx context.Context, f func(*InstantSnapshotList) error) error { + c.ctx_ = ctx + defer c.PageToken(c.urlParams_.Get("pageToken")) + 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) + } } -// Delete: Deletes the specified policy. +type RegionInstantSnapshotsSetIamPolicyCall struct { + s *Service + project string + region string + resource string + regionsetpolicyrequest *RegionSetPolicyRequest + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header +} + +// SetIamPolicy: Sets the access control policy on the specified +// resource. +// Replaces any existing policy. // // - project: Project ID for this request. -// - region: Name of the region scoping this request. -// - securityPolicy: Name of the security policy to delete. -func (r *RegionSecurityPoliciesService) Delete(project string, region string, securityPolicy string) *RegionSecurityPoliciesDeleteCall { - c := &RegionSecurityPoliciesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)} +// - region: The name of the region for this request. +// - resource: Name or id of the resource for this request. +func (r *RegionInstantSnapshotsService) SetIamPolicy(project string, region string, resource string, regionsetpolicyrequest *RegionSetPolicyRequest) *RegionInstantSnapshotsSetIamPolicyCall { + c := &RegionInstantSnapshotsSetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project c.region = region - c.securityPolicy = securityPolicy - 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 *RegionSecurityPoliciesDeleteCall) RequestId(requestId string) *RegionSecurityPoliciesDeleteCall { - c.urlParams_.Set("requestId", requestId) + c.resource = resource + c.regionsetpolicyrequest = regionsetpolicyrequest return c } // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *RegionSecurityPoliciesDeleteCall) Fields(s ...googleapi.Field) *RegionSecurityPoliciesDeleteCall { +func (c *RegionInstantSnapshotsSetIamPolicyCall) Fields(s ...googleapi.Field) *RegionInstantSnapshotsSetIamPolicyCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } // Context sets the context to be used in this call's Do method. -func (c *RegionSecurityPoliciesDeleteCall) Context(ctx context.Context) *RegionSecurityPoliciesDeleteCall { +func (c *RegionInstantSnapshotsSetIamPolicyCall) Context(ctx context.Context) *RegionInstantSnapshotsSetIamPolicyCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *RegionSecurityPoliciesDeleteCall) Header() http.Header { +func (c *RegionInstantSnapshotsSetIamPolicyCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *RegionSecurityPoliciesDeleteCall) doRequest(alt string) (*http.Response, error) { - reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) - var body io.Reader = nil +func (c *RegionInstantSnapshotsSetIamPolicyCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) + body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.regionsetpolicyrequest) + if err != nil { + return nil, err + } c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/securityPolicies/{securityPolicy}") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/instantSnapshots/{resource}/setIamPolicy") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("DELETE", urls, body) + req, err := http.NewRequest("POST", urls, body) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "region": c.region, - "securityPolicy": c.securityPolicy, + "project": c.project, + "region": c.region, + "resource": c.resource, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.regionInstantSnapshots.setIamPolicy", "request", internallog.HTTPRequest(req, body.Bytes())) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.regionSecurityPolicies.delete" call. +// Do executes the "compute.regionInstantSnapshots.setIamPolicy" call. // 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 +// *Policy.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 *RegionSecurityPoliciesDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) { +func (c *RegionInstantSnapshotsSetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -16106,103 +17982,124 @@ func (c *RegionSecurityPoliciesDeleteCall) Do(opts ...googleapi.CallOption) (*Op if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } - ret := &Operation{ + ret := &Policy{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.regionInstantSnapshots.setIamPolicy", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type RegionSecurityPoliciesGetCall struct { - s *Service - project string - region string - securityPolicy string - urlParams_ gensupport.URLParams - ifNoneMatch_ string - ctx_ context.Context - header_ http.Header +type RegionInstantSnapshotsSetLabelsCall struct { + s *Service + project string + region string + resource string + regionsetlabelsrequest *RegionSetLabelsRequest + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header } -// Get: List all of the ordered rules present in a single specified policy. +// SetLabels: Sets the labels on a instantSnapshot in the given region. To +// learn more +// about labels, read the Labeling +// Resources documentation. // // - project: Project ID for this request. -// - region: Name of the region scoping this request. -// - securityPolicy: Name of the security policy to get. -func (r *RegionSecurityPoliciesService) Get(project string, region string, securityPolicy string) *RegionSecurityPoliciesGetCall { - c := &RegionSecurityPoliciesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)} +// - region: The region for this request. +// - resource: Name or id of the resource for this request. +func (r *RegionInstantSnapshotsService) SetLabels(project string, region string, resource string, regionsetlabelsrequest *RegionSetLabelsRequest) *RegionInstantSnapshotsSetLabelsCall { + c := &RegionInstantSnapshotsSetLabelsCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project c.region = region - c.securityPolicy = securityPolicy + c.resource = resource + c.regionsetlabelsrequest = regionsetlabelsrequest + 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 *RegionInstantSnapshotsSetLabelsCall) RequestId(requestId string) *RegionInstantSnapshotsSetLabelsCall { + 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 // details. -func (c *RegionSecurityPoliciesGetCall) Fields(s ...googleapi.Field) *RegionSecurityPoliciesGetCall { +func (c *RegionInstantSnapshotsSetLabelsCall) Fields(s ...googleapi.Field) *RegionInstantSnapshotsSetLabelsCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } -// IfNoneMatch sets an 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. -func (c *RegionSecurityPoliciesGetCall) IfNoneMatch(entityTag string) *RegionSecurityPoliciesGetCall { - c.ifNoneMatch_ = entityTag - return c -} - // Context sets the context to be used in this call's Do method. -func (c *RegionSecurityPoliciesGetCall) Context(ctx context.Context) *RegionSecurityPoliciesGetCall { +func (c *RegionInstantSnapshotsSetLabelsCall) Context(ctx context.Context) *RegionInstantSnapshotsSetLabelsCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *RegionSecurityPoliciesGetCall) Header() http.Header { +func (c *RegionInstantSnapshotsSetLabelsCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *RegionSecurityPoliciesGetCall) doRequest(alt string) (*http.Response, error) { - reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) - if c.ifNoneMatch_ != "" { - reqHeaders.Set("If-None-Match", c.ifNoneMatch_) +func (c *RegionInstantSnapshotsSetLabelsCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) + body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.regionsetlabelsrequest) + if err != nil { + return nil, err } - var body io.Reader = nil c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/securityPolicies/{securityPolicy}") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/instantSnapshots/{resource}/setLabels") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("GET", urls, body) + req, err := http.NewRequest("POST", urls, body) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "region": c.region, - "securityPolicy": c.securityPolicy, + "project": c.project, + "region": c.region, + "resource": c.resource, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.regionInstantSnapshots.setLabels", "request", internallog.HTTPRequest(req, body.Bytes())) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.regionSecurityPolicies.get" call. +// Do executes the "compute.regionInstantSnapshots.setLabels" call. // Any non-2xx status code is an error. Response headers are in either -// *SecurityPolicy.ServerResponse.Header or (if a response was returned at all) -// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check +// *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 *RegionSecurityPoliciesGetCall) Do(opts ...googleapi.CallOption) (*SecurityPolicy, error) { +func (c *RegionInstantSnapshotsSetLabelsCall) Do(opts ...googleapi.CallOption) (*Operation, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -16221,113 +18118,102 @@ func (c *RegionSecurityPoliciesGetCall) Do(opts ...googleapi.CallOption) (*Secur if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } - ret := &SecurityPolicy{ + ret := &Operation{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.regionInstantSnapshots.setLabels", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type RegionSecurityPoliciesGetRuleCall struct { - s *Service - project string - region string - securityPolicy string - urlParams_ gensupport.URLParams - ifNoneMatch_ string - ctx_ context.Context - header_ http.Header +type RegionInstantSnapshotsTestIamPermissionsCall struct { + s *Service + project string + region string + resource string + testpermissionsrequest *TestPermissionsRequest + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header } -// GetRule: Gets a rule at the specified priority. +// TestIamPermissions: Returns permissions that a caller has on the specified +// resource. // -// - project: Project ID for this request. -// - region: Name of the region scoping this request. -// - securityPolicy: Name of the security policy to which the queried rule -// belongs. -func (r *RegionSecurityPoliciesService) GetRule(project string, region string, securityPolicy string) *RegionSecurityPoliciesGetRuleCall { - c := &RegionSecurityPoliciesGetRuleCall{s: r.s, urlParams_: make(gensupport.URLParams)} +// - project: Project ID for this request. +// - region: The name of the region for this request. +// - resource: Name or id of the resource for this request. +func (r *RegionInstantSnapshotsService) TestIamPermissions(project string, region string, resource string, testpermissionsrequest *TestPermissionsRequest) *RegionInstantSnapshotsTestIamPermissionsCall { + c := &RegionInstantSnapshotsTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project c.region = region - c.securityPolicy = securityPolicy - return c -} - -// Priority sets the optional parameter "priority": The priority of the rule to -// get from the security policy. -func (c *RegionSecurityPoliciesGetRuleCall) Priority(priority int64) *RegionSecurityPoliciesGetRuleCall { - c.urlParams_.Set("priority", fmt.Sprint(priority)) + c.resource = resource + c.testpermissionsrequest = testpermissionsrequest return c } // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *RegionSecurityPoliciesGetRuleCall) Fields(s ...googleapi.Field) *RegionSecurityPoliciesGetRuleCall { +func (c *RegionInstantSnapshotsTestIamPermissionsCall) Fields(s ...googleapi.Field) *RegionInstantSnapshotsTestIamPermissionsCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } -// IfNoneMatch sets an 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. -func (c *RegionSecurityPoliciesGetRuleCall) IfNoneMatch(entityTag string) *RegionSecurityPoliciesGetRuleCall { - c.ifNoneMatch_ = entityTag - return c -} - // Context sets the context to be used in this call's Do method. -func (c *RegionSecurityPoliciesGetRuleCall) Context(ctx context.Context) *RegionSecurityPoliciesGetRuleCall { +func (c *RegionInstantSnapshotsTestIamPermissionsCall) Context(ctx context.Context) *RegionInstantSnapshotsTestIamPermissionsCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *RegionSecurityPoliciesGetRuleCall) Header() http.Header { +func (c *RegionInstantSnapshotsTestIamPermissionsCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *RegionSecurityPoliciesGetRuleCall) doRequest(alt string) (*http.Response, error) { - reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) - if c.ifNoneMatch_ != "" { - reqHeaders.Set("If-None-Match", c.ifNoneMatch_) +func (c *RegionInstantSnapshotsTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) + body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.testpermissionsrequest) + if err != nil { + return nil, err } - var body io.Reader = nil c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/securityPolicies/{securityPolicy}/getRule") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/instantSnapshots/{resource}/testIamPermissions") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("GET", urls, body) + req, err := http.NewRequest("POST", urls, body) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "region": c.region, - "securityPolicy": c.securityPolicy, + "project": c.project, + "region": c.region, + "resource": c.resource, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.regionInstantSnapshots.testIamPermissions", "request", internallog.HTTPRequest(req, body.Bytes())) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.regionSecurityPolicies.getRule" call. +// Do executes the "compute.regionInstantSnapshots.testIamPermissions" call. // Any non-2xx status code is an error. Response headers are in either -// *SecurityPolicyRule.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 *RegionSecurityPoliciesGetRuleCall) Do(opts ...googleapi.CallOption) (*SecurityPolicyRule, error) { - gensupport.SetOptions(c.urlParams_, opts...) +// *TestPermissionsResponse.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 *RegionInstantSnapshotsTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) { + gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { if res.Body != nil { @@ -16345,97 +18231,108 @@ func (c *RegionSecurityPoliciesGetRuleCall) Do(opts ...googleapi.CallOption) (*S if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } - ret := &SecurityPolicyRule{ + ret := &TestPermissionsResponse{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.regionInstantSnapshots.testIamPermissions", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type RegionSecurityPoliciesInsertCall struct { - s *Service - project string - region string - securitypolicy *SecurityPolicy - urlParams_ gensupport.URLParams - ctx_ context.Context - header_ http.Header +type RegionNetworkEndpointGroupsAttachNetworkEndpointsCall struct { + s *Service + project string + region string + networkEndpointGroup string + regionnetworkendpointgroupsattachendpointsrequest *RegionNetworkEndpointGroupsAttachEndpointsRequest + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header } -// Insert: Creates a new policy in the specified project using the data -// included in the request. +// AttachNetworkEndpoints: Attach a list of network endpoints to the specified +// network endpoint group. // -// - project: Project ID for this request. -// - region: Name of the region scoping this request. -func (r *RegionSecurityPoliciesService) Insert(project string, region string, securitypolicy *SecurityPolicy) *RegionSecurityPoliciesInsertCall { - c := &RegionSecurityPoliciesInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)} +// - networkEndpointGroup: The name of the network endpoint group where you are +// attaching network +// +// endpoints to. It should comply with RFC1035. +// - project: Project ID for this request. +// - region: The name of the region where +// you want to create the network endpoint group. It should comply +// with +// +// RFC1035. +func (r *RegionNetworkEndpointGroupsService) AttachNetworkEndpoints(project string, region string, networkEndpointGroup string, regionnetworkendpointgroupsattachendpointsrequest *RegionNetworkEndpointGroupsAttachEndpointsRequest) *RegionNetworkEndpointGroupsAttachNetworkEndpointsCall { + c := &RegionNetworkEndpointGroupsAttachNetworkEndpointsCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project c.region = region - c.securitypolicy = securitypolicy + c.networkEndpointGroup = networkEndpointGroup + c.regionnetworkendpointgroupsattachendpointsrequest = regionnetworkendpointgroupsattachendpointsrequest 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 *RegionSecurityPoliciesInsertCall) RequestId(requestId string) *RegionSecurityPoliciesInsertCall { +// 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 *RegionNetworkEndpointGroupsAttachNetworkEndpointsCall) RequestId(requestId string) *RegionNetworkEndpointGroupsAttachNetworkEndpointsCall { c.urlParams_.Set("requestId", requestId) return c } -// ValidateOnly sets the optional parameter "validateOnly": If true, the -// request will not be committed. -func (c *RegionSecurityPoliciesInsertCall) ValidateOnly(validateOnly bool) *RegionSecurityPoliciesInsertCall { - c.urlParams_.Set("validateOnly", fmt.Sprint(validateOnly)) - return c -} - // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *RegionSecurityPoliciesInsertCall) Fields(s ...googleapi.Field) *RegionSecurityPoliciesInsertCall { +func (c *RegionNetworkEndpointGroupsAttachNetworkEndpointsCall) Fields(s ...googleapi.Field) *RegionNetworkEndpointGroupsAttachNetworkEndpointsCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } // Context sets the context to be used in this call's Do method. -func (c *RegionSecurityPoliciesInsertCall) Context(ctx context.Context) *RegionSecurityPoliciesInsertCall { +func (c *RegionNetworkEndpointGroupsAttachNetworkEndpointsCall) Context(ctx context.Context) *RegionNetworkEndpointGroupsAttachNetworkEndpointsCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *RegionSecurityPoliciesInsertCall) Header() http.Header { +func (c *RegionNetworkEndpointGroupsAttachNetworkEndpointsCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *RegionSecurityPoliciesInsertCall) doRequest(alt string) (*http.Response, error) { +func (c *RegionNetworkEndpointGroupsAttachNetworkEndpointsCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) - var body io.Reader = nil - body, err := googleapi.WithoutDataWrapper.JSONReader(c.securitypolicy) + body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.regionnetworkendpointgroupsattachendpointsrequest) if err != nil { return nil, err } c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/securityPolicies") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/networkEndpointGroups/{networkEndpointGroup}/attachNetworkEndpoints") urls += "?" + c.urlParams_.Encode() req, err := http.NewRequest("POST", urls, body) if err != nil { @@ -16443,18 +18340,20 @@ func (c *RegionSecurityPoliciesInsertCall) doRequest(alt string) (*http.Response } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "region": c.region, + "project": c.project, + "region": c.region, + "networkEndpointGroup": c.networkEndpointGroup, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.regionNetworkEndpointGroups.attachNetworkEndpoints", "request", internallog.HTTPRequest(req, body.Bytes())) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.regionSecurityPolicies.insert" call. +// Do executes the "compute.regionNetworkEndpointGroups.attachNetworkEndpoints" call. // 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 *RegionSecurityPoliciesInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) { +func (c *RegionNetworkEndpointGroupsAttachNetworkEndpointsCall) Do(opts ...googleapi.CallOption) (*Operation, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -16480,172 +18379,114 @@ func (c *RegionSecurityPoliciesInsertCall) Do(opts ...googleapi.CallOption) (*Op }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.regionNetworkEndpointGroups.attachNetworkEndpoints", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type RegionSecurityPoliciesListCall struct { - s *Service - project string - region string - urlParams_ gensupport.URLParams - ifNoneMatch_ string - ctx_ context.Context - header_ http.Header +type RegionNetworkEndpointGroupsDeleteCall struct { + s *Service + project string + region string + networkEndpointGroup string + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header } -// List: List all the policies that have been configured for the specified -// project and region. +// Delete: Deletes the specified network endpoint group. Note that the NEG +// cannot be +// deleted if it is configured as a backend of a backend service. // -// - project: Project ID for this request. -// - region: Name of the region scoping this request. -func (r *RegionSecurityPoliciesService) List(project string, region string) *RegionSecurityPoliciesListCall { - c := &RegionSecurityPoliciesListCall{s: r.s, urlParams_: make(gensupport.URLParams)} +// - networkEndpointGroup: The name of the network endpoint group to delete. It +// should comply with +// +// RFC1035. +// - project: Project ID for this request. +// - region: The name of the region where +// the network endpoint group is located. It should comply with RFC1035. +func (r *RegionNetworkEndpointGroupsService) Delete(project string, region string, networkEndpointGroup string) *RegionNetworkEndpointGroupsDeleteCall { + c := &RegionNetworkEndpointGroupsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project c.region = region + c.networkEndpointGroup = networkEndpointGroup return c } -// Filter sets the optional parameter "filter": A filter expression that -// filters resources listed in the response. Most Compute resources support two -// types of filter expressions: expressions that support regular expressions -// and expressions that follow API improvement proposal AIP-160. These two -// types of filter expressions cannot be mixed in one request. If you want to -// use AIP-160, your expression must specify the field name, an operator, and -// the value that you want to use for filtering. The value must be a string, a -// number, or a boolean. The 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`. The `:*` comparison can be used to test whether a key has -// been defined. For example, to find all objects with `owner` label use: ``` -// labels.owner:* ``` 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) ``` If you want to use a regular -// expression, use the `eq` (equal) or `ne` (not equal) operator against a -// single un-parenthesized expression with or without quotes or against -// multiple parenthesized expressions. Examples: `fieldname eq unquoted -// literal` `fieldname eq 'single quoted literal'` `fieldname eq "double quoted -// literal" `(fieldname1 eq literal) (fieldname2 ne "literal")` The literal -// value is interpreted as a regular expression using Google RE2 library -// syntax. The literal value must match the entire field. For example, to -// filter for instances that do not end with name "instance", you would use -// `name ne .*instance`. You cannot combine constraints on multiple fields -// using regular expressions. -func (c *RegionSecurityPoliciesListCall) Filter(filter string) *RegionSecurityPoliciesListCall { - 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 *RegionSecurityPoliciesListCall) MaxResults(maxResults int64) *RegionSecurityPoliciesListCall { - 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 *RegionSecurityPoliciesListCall) OrderBy(orderBy string) *RegionSecurityPoliciesListCall { - 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 *RegionSecurityPoliciesListCall) PageToken(pageToken string) *RegionSecurityPoliciesListCall { - c.urlParams_.Set("pageToken", pageToken) - return c -} - -// ReturnPartialSuccess sets the optional parameter "returnPartialSuccess": -// Opt-in for partial success behavior which provides partial results in case -// of failure. The default value is false. For example, when partial success -// behavior is enabled, aggregatedList for a single zone scope either returns -// all resources in the zone or no resources, with an error code. -func (c *RegionSecurityPoliciesListCall) ReturnPartialSuccess(returnPartialSuccess bool) *RegionSecurityPoliciesListCall { - c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess)) +// 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 *RegionNetworkEndpointGroupsDeleteCall) RequestId(requestId string) *RegionNetworkEndpointGroupsDeleteCall { + 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 // details. -func (c *RegionSecurityPoliciesListCall) Fields(s ...googleapi.Field) *RegionSecurityPoliciesListCall { +func (c *RegionNetworkEndpointGroupsDeleteCall) Fields(s ...googleapi.Field) *RegionNetworkEndpointGroupsDeleteCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } -// IfNoneMatch sets an 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. -func (c *RegionSecurityPoliciesListCall) IfNoneMatch(entityTag string) *RegionSecurityPoliciesListCall { - c.ifNoneMatch_ = entityTag - return c -} - // Context sets the context to be used in this call's Do method. -func (c *RegionSecurityPoliciesListCall) Context(ctx context.Context) *RegionSecurityPoliciesListCall { +func (c *RegionNetworkEndpointGroupsDeleteCall) Context(ctx context.Context) *RegionNetworkEndpointGroupsDeleteCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *RegionSecurityPoliciesListCall) Header() http.Header { +func (c *RegionNetworkEndpointGroupsDeleteCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *RegionSecurityPoliciesListCall) doRequest(alt string) (*http.Response, error) { +func (c *RegionNetworkEndpointGroupsDeleteCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) - if c.ifNoneMatch_ != "" { - reqHeaders.Set("If-None-Match", c.ifNoneMatch_) - } - var body io.Reader = nil c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/securityPolicies") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/networkEndpointGroups/{networkEndpointGroup}") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("GET", urls, body) + req, err := http.NewRequest("DELETE", urls, nil) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "region": c.region, + "project": c.project, + "region": c.region, + "networkEndpointGroup": c.networkEndpointGroup, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.regionNetworkEndpointGroups.delete", "request", internallog.HTTPRequest(req, nil)) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.regionSecurityPolicies.list" call. +// Do executes the "compute.regionNetworkEndpointGroups.delete" call. // Any non-2xx status code is an error. Response headers are in either -// *SecurityPolicyList.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 *RegionSecurityPoliciesListCall) Do(opts ...googleapi.CallOption) (*SecurityPolicyList, error) { +// *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 *RegionNetworkEndpointGroupsDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -16664,144 +18505,129 @@ func (c *RegionSecurityPoliciesListCall) Do(opts ...googleapi.CallOption) (*Secu if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } - ret := &SecurityPolicyList{ + ret := &Operation{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.regionNetworkEndpointGroups.delete", "response", internallog.HTTPResponse(res, b)) return ret, nil } -// 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 *RegionSecurityPoliciesListCall) Pages(ctx context.Context, f func(*SecurityPolicyList) error) error { - c.ctx_ = ctx - defer c.PageToken(c.urlParams_.Get("pageToken")) - 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) - } -} - -type RegionSecurityPoliciesPatchCall struct { - s *Service - project string - region string - securityPolicy string - securitypolicy *SecurityPolicy - urlParams_ gensupport.URLParams - ctx_ context.Context - header_ http.Header +type RegionNetworkEndpointGroupsDetachNetworkEndpointsCall struct { + s *Service + project string + region string + networkEndpointGroup string + regionnetworkendpointgroupsdetachendpointsrequest *RegionNetworkEndpointGroupsDetachEndpointsRequest + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header } -// Patch: Patches the specified policy with the data included in the request. -// To clear fields in the policy, leave the fields empty and specify them in -// the updateMask. This cannot be used to be update the rules in the policy. -// Please use the per rule methods like addRule, patchRule, and removeRule -// instead. +// DetachNetworkEndpoints: Detach the network endpoint from the specified +// network endpoint group. // -// - project: Project ID for this request. -// - region: Name of the region scoping this request. -// - securityPolicy: Name of the security policy to update. -func (r *RegionSecurityPoliciesService) Patch(project string, region string, securityPolicy string, securitypolicy *SecurityPolicy) *RegionSecurityPoliciesPatchCall { - c := &RegionSecurityPoliciesPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)} +// - networkEndpointGroup: The name of the network endpoint group you are +// detaching network +// +// endpoints from. It should comply with RFC1035. +// - project: Project ID for this request. +// - region: The name of the region where +// the network endpoint group is located. It should comply with +// +// RFC1035. +func (r *RegionNetworkEndpointGroupsService) DetachNetworkEndpoints(project string, region string, networkEndpointGroup string, regionnetworkendpointgroupsdetachendpointsrequest *RegionNetworkEndpointGroupsDetachEndpointsRequest) *RegionNetworkEndpointGroupsDetachNetworkEndpointsCall { + c := &RegionNetworkEndpointGroupsDetachNetworkEndpointsCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project c.region = region - c.securityPolicy = securityPolicy - c.securitypolicy = securitypolicy + c.networkEndpointGroup = networkEndpointGroup + c.regionnetworkendpointgroupsdetachendpointsrequest = regionnetworkendpointgroupsdetachendpointsrequest 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 *RegionSecurityPoliciesPatchCall) RequestId(requestId string) *RegionSecurityPoliciesPatchCall { +// 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). +// end_interface: MixerMutationRequestBuilder +func (c *RegionNetworkEndpointGroupsDetachNetworkEndpointsCall) RequestId(requestId string) *RegionNetworkEndpointGroupsDetachNetworkEndpointsCall { c.urlParams_.Set("requestId", requestId) return c } -// UpdateMask sets the optional parameter "updateMask": Indicates fields to be -// cleared as part of this request. -func (c *RegionSecurityPoliciesPatchCall) UpdateMask(updateMask string) *RegionSecurityPoliciesPatchCall { - c.urlParams_.Set("updateMask", updateMask) - return c -} - // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *RegionSecurityPoliciesPatchCall) Fields(s ...googleapi.Field) *RegionSecurityPoliciesPatchCall { +func (c *RegionNetworkEndpointGroupsDetachNetworkEndpointsCall) Fields(s ...googleapi.Field) *RegionNetworkEndpointGroupsDetachNetworkEndpointsCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } // Context sets the context to be used in this call's Do method. -func (c *RegionSecurityPoliciesPatchCall) Context(ctx context.Context) *RegionSecurityPoliciesPatchCall { +func (c *RegionNetworkEndpointGroupsDetachNetworkEndpointsCall) Context(ctx context.Context) *RegionNetworkEndpointGroupsDetachNetworkEndpointsCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *RegionSecurityPoliciesPatchCall) Header() http.Header { +func (c *RegionNetworkEndpointGroupsDetachNetworkEndpointsCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *RegionSecurityPoliciesPatchCall) doRequest(alt string) (*http.Response, error) { +func (c *RegionNetworkEndpointGroupsDetachNetworkEndpointsCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) - var body io.Reader = nil - body, err := googleapi.WithoutDataWrapper.JSONReader(c.securitypolicy) + body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.regionnetworkendpointgroupsdetachendpointsrequest) if err != nil { return nil, err } c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/securityPolicies/{securityPolicy}") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/networkEndpointGroups/{networkEndpointGroup}/detachNetworkEndpoints") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("PATCH", urls, body) + req, err := http.NewRequest("POST", urls, body) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "region": c.region, - "securityPolicy": c.securityPolicy, + "project": c.project, + "region": c.region, + "networkEndpointGroup": c.networkEndpointGroup, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.regionNetworkEndpointGroups.detachNetworkEndpoints", "request", internallog.HTTPRequest(req, body.Bytes())) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.regionSecurityPolicies.patch" call. +// Do executes the "compute.regionNetworkEndpointGroups.detachNetworkEndpoints" call. // 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 *RegionSecurityPoliciesPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) { +func (c *RegionNetworkEndpointGroupsDetachNetworkEndpointsCall) Do(opts ...googleapi.CallOption) (*Operation, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -16827,112 +18653,101 @@ func (c *RegionSecurityPoliciesPatchCall) Do(opts ...googleapi.CallOption) (*Ope }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.regionNetworkEndpointGroups.detachNetworkEndpoints", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type RegionSecurityPoliciesPatchRuleCall struct { - s *Service - project string - region string - securityPolicy string - securitypolicyrule *SecurityPolicyRule - urlParams_ gensupport.URLParams - ctx_ context.Context - header_ http.Header +type RegionNetworkEndpointGroupsGetCall struct { + s *Service + project string + region string + networkEndpointGroup string + urlParams_ gensupport.URLParams + ifNoneMatch_ string + ctx_ context.Context + header_ http.Header } -// PatchRule: Patches a rule at the specified priority. To clear fields in the -// rule, leave the fields empty and specify them in the updateMask. +// Get: Returns the specified network endpoint group. // -// - project: Project ID for this request. -// - region: Name of the region scoping this request. -// - securityPolicy: Name of the security policy to update. -func (r *RegionSecurityPoliciesService) PatchRule(project string, region string, securityPolicy string, securitypolicyrule *SecurityPolicyRule) *RegionSecurityPoliciesPatchRuleCall { - c := &RegionSecurityPoliciesPatchRuleCall{s: r.s, urlParams_: make(gensupport.URLParams)} +// - networkEndpointGroup: The name of the network endpoint group. It should +// comply with RFC1035. +// - project: Project ID for this request. +// - region: The name of the region where +// the network endpoint group is located. It should comply with RFC1035. +func (r *RegionNetworkEndpointGroupsService) Get(project string, region string, networkEndpointGroup string) *RegionNetworkEndpointGroupsGetCall { + c := &RegionNetworkEndpointGroupsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project c.region = region - c.securityPolicy = securityPolicy - c.securitypolicyrule = securitypolicyrule - return c -} - -// Priority sets the optional parameter "priority": The priority of the rule to -// patch. -func (c *RegionSecurityPoliciesPatchRuleCall) Priority(priority int64) *RegionSecurityPoliciesPatchRuleCall { - c.urlParams_.Set("priority", fmt.Sprint(priority)) - return c -} - -// UpdateMask sets the optional parameter "updateMask": Indicates fields to be -// cleared as part of this request. -func (c *RegionSecurityPoliciesPatchRuleCall) UpdateMask(updateMask string) *RegionSecurityPoliciesPatchRuleCall { - c.urlParams_.Set("updateMask", updateMask) - return c -} - -// ValidateOnly sets the optional parameter "validateOnly": If true, the -// request will not be committed. -func (c *RegionSecurityPoliciesPatchRuleCall) ValidateOnly(validateOnly bool) *RegionSecurityPoliciesPatchRuleCall { - c.urlParams_.Set("validateOnly", fmt.Sprint(validateOnly)) + c.networkEndpointGroup = networkEndpointGroup return c } // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *RegionSecurityPoliciesPatchRuleCall) Fields(s ...googleapi.Field) *RegionSecurityPoliciesPatchRuleCall { +func (c *RegionNetworkEndpointGroupsGetCall) Fields(s ...googleapi.Field) *RegionNetworkEndpointGroupsGetCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } +// IfNoneMatch sets an 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. +func (c *RegionNetworkEndpointGroupsGetCall) IfNoneMatch(entityTag string) *RegionNetworkEndpointGroupsGetCall { + c.ifNoneMatch_ = entityTag + return c +} + // Context sets the context to be used in this call's Do method. -func (c *RegionSecurityPoliciesPatchRuleCall) Context(ctx context.Context) *RegionSecurityPoliciesPatchRuleCall { +func (c *RegionNetworkEndpointGroupsGetCall) Context(ctx context.Context) *RegionNetworkEndpointGroupsGetCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *RegionSecurityPoliciesPatchRuleCall) Header() http.Header { +func (c *RegionNetworkEndpointGroupsGetCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *RegionSecurityPoliciesPatchRuleCall) doRequest(alt string) (*http.Response, error) { - reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) - var body io.Reader = nil - body, err := googleapi.WithoutDataWrapper.JSONReader(c.securitypolicyrule) - if err != nil { - return nil, err +func (c *RegionNetworkEndpointGroupsGetCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) + if c.ifNoneMatch_ != "" { + reqHeaders.Set("If-None-Match", c.ifNoneMatch_) } c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/securityPolicies/{securityPolicy}/patchRule") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/networkEndpointGroups/{networkEndpointGroup}") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("POST", urls, body) + req, err := http.NewRequest("GET", urls, nil) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "region": c.region, - "securityPolicy": c.securityPolicy, + "project": c.project, + "region": c.region, + "networkEndpointGroup": c.networkEndpointGroup, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.regionNetworkEndpointGroups.get", "request", internallog.HTTPRequest(req, nil)) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.regionSecurityPolicies.patchRule" call. +// Do executes the "compute.regionNetworkEndpointGroups.get" call. // 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 *RegionSecurityPoliciesPatchRuleCall) Do(opts ...googleapi.CallOption) (*Operation, error) { +// *NetworkEndpointGroup.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 *RegionNetworkEndpointGroupsGetCall) Do(opts ...googleapi.CallOption) (*NetworkEndpointGroup, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -16951,78 +18766,117 @@ func (c *RegionSecurityPoliciesPatchRuleCall) Do(opts ...googleapi.CallOption) ( if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } - ret := &Operation{ + ret := &NetworkEndpointGroup{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.regionNetworkEndpointGroups.get", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type RegionSecurityPoliciesRemoveRuleCall struct { - s *Service - project string - region string - securityPolicy string - urlParams_ gensupport.URLParams - ctx_ context.Context - header_ http.Header +type RegionNetworkEndpointGroupsInsertCall struct { + s *Service + project string + region string + networkendpointgroup *NetworkEndpointGroup + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header } -// RemoveRule: Deletes a rule at the specified priority. +// Insert: Creates a network endpoint group in the specified project using +// the +// parameters that are included in the request. // -// - project: Project ID for this request. -// - region: Name of the region scoping this request. -// - securityPolicy: Name of the security policy to update. -func (r *RegionSecurityPoliciesService) RemoveRule(project string, region string, securityPolicy string) *RegionSecurityPoliciesRemoveRuleCall { - c := &RegionSecurityPoliciesRemoveRuleCall{s: r.s, urlParams_: make(gensupport.URLParams)} +// Note: Use the following APIs to manage network endpoint groups: +// +// - +// To manage NEGs with zonal scope (such as zonal NEGs, hybrid connectivity +// NEGs): zonal +// API +// - +// To manage NEGs with regional scope (such as regional internet NEGs, +// serverless NEGs, Private Service Connect NEGs): regional +// API +// - +// To manage NEGs with global scope (such as global internet NEGs):global +// API +// +// - project: Project ID for this request. +// - region: The name of the region where +// you want to create the network endpoint group. It should comply +// with +// +// RFC1035. +func (r *RegionNetworkEndpointGroupsService) Insert(project string, region string, networkendpointgroup *NetworkEndpointGroup) *RegionNetworkEndpointGroupsInsertCall { + c := &RegionNetworkEndpointGroupsInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project c.region = region - c.securityPolicy = securityPolicy + c.networkendpointgroup = networkendpointgroup return c } -// Priority sets the optional parameter "priority": The priority of the rule to -// remove from the security policy. -func (c *RegionSecurityPoliciesRemoveRuleCall) Priority(priority int64) *RegionSecurityPoliciesRemoveRuleCall { - c.urlParams_.Set("priority", fmt.Sprint(priority)) +// 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 *RegionNetworkEndpointGroupsInsertCall) RequestId(requestId string) *RegionNetworkEndpointGroupsInsertCall { + 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 // details. -func (c *RegionSecurityPoliciesRemoveRuleCall) Fields(s ...googleapi.Field) *RegionSecurityPoliciesRemoveRuleCall { +func (c *RegionNetworkEndpointGroupsInsertCall) Fields(s ...googleapi.Field) *RegionNetworkEndpointGroupsInsertCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } // Context sets the context to be used in this call's Do method. -func (c *RegionSecurityPoliciesRemoveRuleCall) Context(ctx context.Context) *RegionSecurityPoliciesRemoveRuleCall { +func (c *RegionNetworkEndpointGroupsInsertCall) Context(ctx context.Context) *RegionNetworkEndpointGroupsInsertCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *RegionSecurityPoliciesRemoveRuleCall) Header() http.Header { +func (c *RegionNetworkEndpointGroupsInsertCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *RegionSecurityPoliciesRemoveRuleCall) doRequest(alt string) (*http.Response, error) { - reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) - var body io.Reader = nil +func (c *RegionNetworkEndpointGroupsInsertCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) + body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.networkendpointgroup) + if err != nil { + return nil, err + } c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/securityPolicies/{securityPolicy}/removeRule") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/networkEndpointGroups") urls += "?" + c.urlParams_.Encode() req, err := http.NewRequest("POST", urls, body) if err != nil { @@ -17030,19 +18884,19 @@ func (c *RegionSecurityPoliciesRemoveRuleCall) doRequest(alt string) (*http.Resp } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "region": c.region, - "securityPolicy": c.securityPolicy, + "project": c.project, + "region": c.region, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.regionNetworkEndpointGroups.insert", "request", internallog.HTTPRequest(req, body.Bytes())) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.regionSecurityPolicies.removeRule" call. +// Do executes the "compute.regionNetworkEndpointGroups.insert" call. // 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 *RegionSecurityPoliciesRemoveRuleCall) Do(opts ...googleapi.CallOption) (*Operation, error) { +func (c *RegionNetworkEndpointGroupsInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -17068,99 +18922,227 @@ func (c *RegionSecurityPoliciesRemoveRuleCall) Do(opts ...googleapi.CallOption) }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.regionNetworkEndpointGroups.insert", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type RegionSslCertificatesDeleteCall struct { - s *Service - project string - region string - sslCertificate string - urlParams_ gensupport.URLParams - ctx_ context.Context - header_ http.Header +type RegionNetworkEndpointGroupsListCall struct { + s *Service + project string + region string + urlParams_ gensupport.URLParams + ifNoneMatch_ string + ctx_ context.Context + header_ http.Header } -// Delete: Deletes the specified SslCertificate resource in the region. +// List: Retrieves the list of regional network endpoint groups available to +// the +// specified project in the given region. // -// - project: Project ID for this request. -// - region: Name of the region scoping this request. -// - sslCertificate: Name of the SslCertificate resource to delete. -func (r *RegionSslCertificatesService) Delete(project string, region string, sslCertificate string) *RegionSslCertificatesDeleteCall { - c := &RegionSslCertificatesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)} +// - project: Project ID for this request. +// - region: The name of theregion +// where the network endpoint group is located. It should comply with +// RFC1035. +func (r *RegionNetworkEndpointGroupsService) List(project string, region string) *RegionNetworkEndpointGroupsListCall { + c := &RegionNetworkEndpointGroupsListCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project c.region = region - c.sslCertificate = sslCertificate 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 *RegionSslCertificatesDeleteCall) RequestId(requestId string) *RegionSslCertificatesDeleteCall { - c.urlParams_.Set("requestId", requestId) +// Filter sets the optional parameter "filter": A filter expression that +// filters resources listed in the response. Most +// Compute resources support two types of filter expressions: +// expressions that support regular expressions and expressions that follow +// API improvement proposal AIP-160. +// These two types of filter expressions cannot be mixed in one request. +// +// If you want to use AIP-160, your expression must specify the field name, +// an +// operator, and the value that you want to use for filtering. The value +// must be a string, a number, or a boolean. The 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`. +// +// The `:*` comparison can be used to test whether a key has been defined. +// For example, to find all objects with `owner` label +// use: +// ``` +// labels.owner:* +// ``` +// +// 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 onresource 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) +// ``` +// +// If you want to use a regular expression, use the `eq` (equal) or `ne` +// (not equal) operator against a single un-parenthesized expression with +// or +// without quotes or against multiple parenthesized expressions. +// Examples: +// +// `fieldname eq unquoted literal` +// `fieldname eq 'single quoted literal'` +// `fieldname eq "double quoted literal" +// `(fieldname1 eq literal) (fieldname2 ne "literal")` +// +// The literal value is interpreted as a regular expression using GoogleRE2 +// library syntax. +// The literal value must match the entire field. +// +// For example, to filter for instances that do not end with name +// "instance", +// you would use `name ne .*instance`. +// +// You cannot combine constraints on multiple fields using regular +// expressions. +func (c *RegionNetworkEndpointGroupsListCall) Filter(filter string) *RegionNetworkEndpointGroupsListCall { + 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 *RegionNetworkEndpointGroupsListCall) MaxResults(maxResults int64) *RegionNetworkEndpointGroupsListCall { + 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 *RegionNetworkEndpointGroupsListCall) OrderBy(orderBy string) *RegionNetworkEndpointGroupsListCall { + 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 *RegionNetworkEndpointGroupsListCall) PageToken(pageToken string) *RegionNetworkEndpointGroupsListCall { + c.urlParams_.Set("pageToken", pageToken) + return c +} + +// ReturnPartialSuccess sets the optional parameter "returnPartialSuccess": +// Opt-in for partial success behavior which provides partial results in +// case +// of failure. The default value is false. +// +// For example, when partial success behavior is enabled, aggregatedList for +// a +// single zone scope either returns all resources in the zone or no +// resources, +// with an error code. +func (c *RegionNetworkEndpointGroupsListCall) ReturnPartialSuccess(returnPartialSuccess bool) *RegionNetworkEndpointGroupsListCall { + c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess)) return c } // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *RegionSslCertificatesDeleteCall) Fields(s ...googleapi.Field) *RegionSslCertificatesDeleteCall { +func (c *RegionNetworkEndpointGroupsListCall) Fields(s ...googleapi.Field) *RegionNetworkEndpointGroupsListCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } -// Context sets the context to be used in this call's Do method. -func (c *RegionSslCertificatesDeleteCall) Context(ctx context.Context) *RegionSslCertificatesDeleteCall { - c.ctx_ = ctx +// IfNoneMatch sets an 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. +func (c *RegionNetworkEndpointGroupsListCall) IfNoneMatch(entityTag string) *RegionNetworkEndpointGroupsListCall { + c.ifNoneMatch_ = entityTag return c } -// Header returns a http.Header that can be modified by the caller to add +// Context sets the context to be used in this call's Do method. +func (c *RegionNetworkEndpointGroupsListCall) Context(ctx context.Context) *RegionNetworkEndpointGroupsListCall { + c.ctx_ = ctx + return c +} + +// Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *RegionSslCertificatesDeleteCall) Header() http.Header { +func (c *RegionNetworkEndpointGroupsListCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *RegionSslCertificatesDeleteCall) doRequest(alt string) (*http.Response, error) { +func (c *RegionNetworkEndpointGroupsListCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) - var body io.Reader = nil + if c.ifNoneMatch_ != "" { + reqHeaders.Set("If-None-Match", c.ifNoneMatch_) + } c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/sslCertificates/{sslCertificate}") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/networkEndpointGroups") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("DELETE", urls, body) + req, err := http.NewRequest("GET", urls, nil) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "region": c.region, - "sslCertificate": c.sslCertificate, + "project": c.project, + "region": c.region, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.regionNetworkEndpointGroups.list", "request", internallog.HTTPRequest(req, nil)) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.regionSslCertificates.delete" call. +// Do executes the "compute.regionNetworkEndpointGroups.list" call. // 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 *RegionSslCertificatesDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) { +// *NetworkEndpointGroupList.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 *RegionNetworkEndpointGroupsListCall) Do(opts ...googleapi.CallOption) (*NetworkEndpointGroupList, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -17179,104 +19161,248 @@ func (c *RegionSslCertificatesDeleteCall) Do(opts ...googleapi.CallOption) (*Ope if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } - ret := &Operation{ + ret := &NetworkEndpointGroupList{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.regionNetworkEndpointGroups.list", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type RegionSslCertificatesGetCall struct { - s *Service - project string - region string - sslCertificate string - urlParams_ gensupport.URLParams - ifNoneMatch_ string - ctx_ context.Context - header_ http.Header +// 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 *RegionNetworkEndpointGroupsListCall) Pages(ctx context.Context, f func(*NetworkEndpointGroupList) error) error { + c.ctx_ = ctx + defer c.PageToken(c.urlParams_.Get("pageToken")) + 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) + } } -// Get: Returns the specified SslCertificate resource in the specified region. -// Get a list of available SSL certificates by making a list() request. +type RegionNetworkEndpointGroupsListNetworkEndpointsCall struct { + s *Service + project string + region string + networkEndpointGroup string + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header +} + +// ListNetworkEndpoints: Lists the network endpoints in the specified network +// endpoint group. // -// - project: Project ID for this request. -// - region: Name of the region scoping this request. -// - sslCertificate: Name of the SslCertificate resource to return. -func (r *RegionSslCertificatesService) Get(project string, region string, sslCertificate string) *RegionSslCertificatesGetCall { - c := &RegionSslCertificatesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)} +// - networkEndpointGroup: The name of the network endpoint group from which +// you want to generate a +// list of included network endpoints. It should comply with RFC1035. +// - project: Project ID for this request. +// - region: The name of theregion +// where the network endpoint group is located. It should comply with +// RFC1035. +func (r *RegionNetworkEndpointGroupsService) ListNetworkEndpoints(project string, region string, networkEndpointGroup string) *RegionNetworkEndpointGroupsListNetworkEndpointsCall { + c := &RegionNetworkEndpointGroupsListNetworkEndpointsCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project c.region = region - c.sslCertificate = sslCertificate + c.networkEndpointGroup = networkEndpointGroup + return c +} + +// Filter sets the optional parameter "filter": A filter expression that +// filters resources listed in the response. Most +// Compute resources support two types of filter expressions: +// expressions that support regular expressions and expressions that follow +// API improvement proposal AIP-160. +// These two types of filter expressions cannot be mixed in one request. +// +// If you want to use AIP-160, your expression must specify the field name, +// an +// operator, and the value that you want to use for filtering. The value +// must be a string, a number, or a boolean. The 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`. +// +// The `:*` comparison can be used to test whether a key has been defined. +// For example, to find all objects with `owner` label +// use: +// ``` +// labels.owner:* +// ``` +// +// 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 onresource 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) +// ``` +// +// If you want to use a regular expression, use the `eq` (equal) or `ne` +// (not equal) operator against a single un-parenthesized expression with +// or +// without quotes or against multiple parenthesized expressions. +// Examples: +// +// `fieldname eq unquoted literal` +// `fieldname eq 'single quoted literal'` +// `fieldname eq "double quoted literal" +// `(fieldname1 eq literal) (fieldname2 ne "literal")` +// +// The literal value is interpreted as a regular expression using GoogleRE2 +// library syntax. +// The literal value must match the entire field. +// +// For example, to filter for instances that do not end with name +// "instance", +// you would use `name ne .*instance`. +// +// You cannot combine constraints on multiple fields using regular +// expressions. +func (c *RegionNetworkEndpointGroupsListNetworkEndpointsCall) Filter(filter string) *RegionNetworkEndpointGroupsListNetworkEndpointsCall { + 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 *RegionNetworkEndpointGroupsListNetworkEndpointsCall) MaxResults(maxResults int64) *RegionNetworkEndpointGroupsListNetworkEndpointsCall { + 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 *RegionNetworkEndpointGroupsListNetworkEndpointsCall) OrderBy(orderBy string) *RegionNetworkEndpointGroupsListNetworkEndpointsCall { + 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 *RegionNetworkEndpointGroupsListNetworkEndpointsCall) PageToken(pageToken string) *RegionNetworkEndpointGroupsListNetworkEndpointsCall { + c.urlParams_.Set("pageToken", pageToken) + return c +} + +// ReturnPartialSuccess sets the optional parameter "returnPartialSuccess": +// Opt-in for partial success behavior which provides partial results in +// case +// of failure. The default value is false. +// +// For example, when partial success behavior is enabled, aggregatedList for +// a +// single zone scope either returns all resources in the zone or no +// resources, +// with an error code. +func (c *RegionNetworkEndpointGroupsListNetworkEndpointsCall) ReturnPartialSuccess(returnPartialSuccess bool) *RegionNetworkEndpointGroupsListNetworkEndpointsCall { + c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess)) return c } // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *RegionSslCertificatesGetCall) Fields(s ...googleapi.Field) *RegionSslCertificatesGetCall { +func (c *RegionNetworkEndpointGroupsListNetworkEndpointsCall) Fields(s ...googleapi.Field) *RegionNetworkEndpointGroupsListNetworkEndpointsCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } -// IfNoneMatch sets an 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. -func (c *RegionSslCertificatesGetCall) IfNoneMatch(entityTag string) *RegionSslCertificatesGetCall { - c.ifNoneMatch_ = entityTag - return c -} - // Context sets the context to be used in this call's Do method. -func (c *RegionSslCertificatesGetCall) Context(ctx context.Context) *RegionSslCertificatesGetCall { +func (c *RegionNetworkEndpointGroupsListNetworkEndpointsCall) Context(ctx context.Context) *RegionNetworkEndpointGroupsListNetworkEndpointsCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *RegionSslCertificatesGetCall) Header() http.Header { +func (c *RegionNetworkEndpointGroupsListNetworkEndpointsCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *RegionSslCertificatesGetCall) doRequest(alt string) (*http.Response, error) { +func (c *RegionNetworkEndpointGroupsListNetworkEndpointsCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) - if c.ifNoneMatch_ != "" { - reqHeaders.Set("If-None-Match", c.ifNoneMatch_) - } - var body io.Reader = nil c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/sslCertificates/{sslCertificate}") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/networkEndpointGroups/{networkEndpointGroup}/listNetworkEndpoints") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("GET", urls, body) + req, err := http.NewRequest("POST", urls, nil) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "region": c.region, - "sslCertificate": c.sslCertificate, + "project": c.project, + "region": c.region, + "networkEndpointGroup": c.networkEndpointGroup, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.regionNetworkEndpointGroups.listNetworkEndpoints", "request", internallog.HTTPRequest(req, nil)) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.regionSslCertificates.get" call. +// Do executes the "compute.regionNetworkEndpointGroups.listNetworkEndpoints" call. // Any non-2xx status code is an error. Response headers are in either -// *SslCertificate.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 *RegionSslCertificatesGetCall) Do(opts ...googleapi.CallOption) (*SslCertificate, error) { +// *NetworkEndpointGroupsListNetworkEndpoints.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 *RegionNetworkEndpointGroupsListNetworkEndpointsCall) Do(opts ...googleapi.CallOption) (*NetworkEndpointGroupsListNetworkEndpoints, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -17295,53 +19421,97 @@ func (c *RegionSslCertificatesGetCall) Do(opts ...googleapi.CallOption) (*SslCer if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } - ret := &SslCertificate{ + ret := &NetworkEndpointGroupsListNetworkEndpoints{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.regionNetworkEndpointGroups.listNetworkEndpoints", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type RegionSslCertificatesInsertCall struct { - s *Service - project string - region string - sslcertificate *SslCertificate - urlParams_ gensupport.URLParams - ctx_ context.Context - header_ http.Header +// 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 *RegionNetworkEndpointGroupsListNetworkEndpointsCall) Pages(ctx context.Context, f func(*NetworkEndpointGroupsListNetworkEndpoints) error) error { + c.ctx_ = ctx + defer c.PageToken(c.urlParams_.Get("pageToken")) + 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) + } } -// Insert: Creates a SslCertificate resource in the specified project and -// region using the data included in the request +type RegionNetworkFirewallPoliciesAddAssociationCall struct { + s *Service + project string + region string + firewallPolicy string + firewallpolicyassociation *FirewallPolicyAssociation + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header +} + +// AddAssociation: Inserts an association for the specified network firewall +// policy. // +// - firewallPolicy: Name of the firewall policy to update. // - project: Project ID for this request. // - region: Name of the region scoping this request. -func (r *RegionSslCertificatesService) Insert(project string, region string, sslcertificate *SslCertificate) *RegionSslCertificatesInsertCall { - c := &RegionSslCertificatesInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)} +func (r *RegionNetworkFirewallPoliciesService) AddAssociation(project string, region string, firewallPolicy string, firewallpolicyassociation *FirewallPolicyAssociation) *RegionNetworkFirewallPoliciesAddAssociationCall { + c := &RegionNetworkFirewallPoliciesAddAssociationCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project c.region = region - c.sslcertificate = sslcertificate + c.firewallPolicy = firewallPolicy + c.firewallpolicyassociation = firewallpolicyassociation + return c +} + +// ReplaceExistingAssociation sets the optional parameter +// "replaceExistingAssociation": Indicates whether or not to replace it if an +// association already exists. +// This is false by default, in which case an error will be returned if +// an +// association already exists. +func (c *RegionNetworkFirewallPoliciesAddAssociationCall) ReplaceExistingAssociation(replaceExistingAssociation bool) *RegionNetworkFirewallPoliciesAddAssociationCall { + c.urlParams_.Set("replaceExistingAssociation", fmt.Sprint(replaceExistingAssociation)) 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 *RegionSslCertificatesInsertCall) RequestId(requestId string) *RegionSslCertificatesInsertCall { +// 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 *RegionNetworkFirewallPoliciesAddAssociationCall) RequestId(requestId string) *RegionNetworkFirewallPoliciesAddAssociationCall { c.urlParams_.Set("requestId", requestId) return c } @@ -17349,36 +19519,35 @@ func (c *RegionSslCertificatesInsertCall) RequestId(requestId string) *RegionSsl // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *RegionSslCertificatesInsertCall) Fields(s ...googleapi.Field) *RegionSslCertificatesInsertCall { +func (c *RegionNetworkFirewallPoliciesAddAssociationCall) Fields(s ...googleapi.Field) *RegionNetworkFirewallPoliciesAddAssociationCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } // Context sets the context to be used in this call's Do method. -func (c *RegionSslCertificatesInsertCall) Context(ctx context.Context) *RegionSslCertificatesInsertCall { +func (c *RegionNetworkFirewallPoliciesAddAssociationCall) Context(ctx context.Context) *RegionNetworkFirewallPoliciesAddAssociationCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *RegionSslCertificatesInsertCall) Header() http.Header { +func (c *RegionNetworkFirewallPoliciesAddAssociationCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *RegionSslCertificatesInsertCall) doRequest(alt string) (*http.Response, error) { +func (c *RegionNetworkFirewallPoliciesAddAssociationCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) - var body io.Reader = nil - body, err := googleapi.WithoutDataWrapper.JSONReader(c.sslcertificate) + body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.firewallpolicyassociation) if err != nil { return nil, err } c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/sslCertificates") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/firewallPolicies/{firewallPolicy}/addAssociation") urls += "?" + c.urlParams_.Encode() req, err := http.NewRequest("POST", urls, body) if err != nil { @@ -17386,18 +19555,20 @@ func (c *RegionSslCertificatesInsertCall) doRequest(alt string) (*http.Response, } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "region": c.region, + "project": c.project, + "region": c.region, + "firewallPolicy": c.firewallPolicy, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.regionNetworkFirewallPolicies.addAssociation", "request", internallog.HTTPRequest(req, body.Bytes())) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.regionSslCertificates.insert" call. +// Do executes the "compute.regionNetworkFirewallPolicies.addAssociation" call. // 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 *RegionSslCertificatesInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) { +func (c *RegionNetworkFirewallPoliciesAddAssociationCall) Do(opts ...googleapi.CallOption) (*Operation, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -17423,172 +19594,132 @@ func (c *RegionSslCertificatesInsertCall) Do(opts ...googleapi.CallOption) (*Ope }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.regionNetworkFirewallPolicies.addAssociation", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type RegionSslCertificatesListCall struct { - s *Service - project string - region string - urlParams_ gensupport.URLParams - ifNoneMatch_ string - ctx_ context.Context - header_ http.Header +type RegionNetworkFirewallPoliciesAddRuleCall struct { + s *Service + project string + region string + firewallPolicy string + firewallpolicyrule *FirewallPolicyRule + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header } -// List: Retrieves the list of SslCertificate resources available to the -// specified project in the specified region. +// AddRule: Inserts a rule into a network firewall policy. // +// - firewallPolicy: Name of the firewall policy to update. // - project: Project ID for this request. // - region: Name of the region scoping this request. -func (r *RegionSslCertificatesService) List(project string, region string) *RegionSslCertificatesListCall { - c := &RegionSslCertificatesListCall{s: r.s, urlParams_: make(gensupport.URLParams)} +func (r *RegionNetworkFirewallPoliciesService) AddRule(project string, region string, firewallPolicy string, firewallpolicyrule *FirewallPolicyRule) *RegionNetworkFirewallPoliciesAddRuleCall { + c := &RegionNetworkFirewallPoliciesAddRuleCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project c.region = region + c.firewallPolicy = firewallPolicy + c.firewallpolicyrule = firewallpolicyrule return c } -// Filter sets the optional parameter "filter": A filter expression that -// filters resources listed in the response. Most Compute resources support two -// types of filter expressions: expressions that support regular expressions -// and expressions that follow API improvement proposal AIP-160. These two -// types of filter expressions cannot be mixed in one request. If you want to -// use AIP-160, your expression must specify the field name, an operator, and -// the value that you want to use for filtering. The value must be a string, a -// number, or a boolean. The 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`. The `:*` comparison can be used to test whether a key has -// been defined. For example, to find all objects with `owner` label use: ``` -// labels.owner:* ``` 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) ``` If you want to use a regular -// expression, use the `eq` (equal) or `ne` (not equal) operator against a -// single un-parenthesized expression with or without quotes or against -// multiple parenthesized expressions. Examples: `fieldname eq unquoted -// literal` `fieldname eq 'single quoted literal'` `fieldname eq "double quoted -// literal" `(fieldname1 eq literal) (fieldname2 ne "literal")` The literal -// value is interpreted as a regular expression using Google RE2 library -// syntax. The literal value must match the entire field. For example, to -// filter for instances that do not end with name "instance", you would use -// `name ne .*instance`. You cannot combine constraints on multiple fields -// using regular expressions. -func (c *RegionSslCertificatesListCall) Filter(filter string) *RegionSslCertificatesListCall { - 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 *RegionSslCertificatesListCall) MaxResults(maxResults int64) *RegionSslCertificatesListCall { - 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 *RegionSslCertificatesListCall) OrderBy(orderBy string) *RegionSslCertificatesListCall { - c.urlParams_.Set("orderBy", orderBy) +// MaxPriority sets the optional parameter "maxPriority": When rule.priority is +// not specified, auto choose a unused priority betweenminPriority and +// maxPriority>. +// This field is exclusive with rule.priority. +func (c *RegionNetworkFirewallPoliciesAddRuleCall) MaxPriority(maxPriority int64) *RegionNetworkFirewallPoliciesAddRuleCall { + c.urlParams_.Set("maxPriority", fmt.Sprint(maxPriority)) 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 *RegionSslCertificatesListCall) PageToken(pageToken string) *RegionSslCertificatesListCall { - c.urlParams_.Set("pageToken", pageToken) +// MinPriority sets the optional parameter "minPriority": When rule.priority is +// not specified, auto choose a unused priority betweenminPriority and +// maxPriority>. +// This field is exclusive with rule.priority. +func (c *RegionNetworkFirewallPoliciesAddRuleCall) MinPriority(minPriority int64) *RegionNetworkFirewallPoliciesAddRuleCall { + c.urlParams_.Set("minPriority", fmt.Sprint(minPriority)) return c } -// ReturnPartialSuccess sets the optional parameter "returnPartialSuccess": -// Opt-in for partial success behavior which provides partial results in case -// of failure. The default value is false. For example, when partial success -// behavior is enabled, aggregatedList for a single zone scope either returns -// all resources in the zone or no resources, with an error code. -func (c *RegionSslCertificatesListCall) ReturnPartialSuccess(returnPartialSuccess bool) *RegionSslCertificatesListCall { - c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess)) +// 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 *RegionNetworkFirewallPoliciesAddRuleCall) RequestId(requestId string) *RegionNetworkFirewallPoliciesAddRuleCall { + 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 // details. -func (c *RegionSslCertificatesListCall) Fields(s ...googleapi.Field) *RegionSslCertificatesListCall { +func (c *RegionNetworkFirewallPoliciesAddRuleCall) Fields(s ...googleapi.Field) *RegionNetworkFirewallPoliciesAddRuleCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } -// IfNoneMatch sets an 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. -func (c *RegionSslCertificatesListCall) IfNoneMatch(entityTag string) *RegionSslCertificatesListCall { - c.ifNoneMatch_ = entityTag - return c -} - // Context sets the context to be used in this call's Do method. -func (c *RegionSslCertificatesListCall) Context(ctx context.Context) *RegionSslCertificatesListCall { +func (c *RegionNetworkFirewallPoliciesAddRuleCall) Context(ctx context.Context) *RegionNetworkFirewallPoliciesAddRuleCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *RegionSslCertificatesListCall) Header() http.Header { +func (c *RegionNetworkFirewallPoliciesAddRuleCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *RegionSslCertificatesListCall) doRequest(alt string) (*http.Response, error) { - reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) - if c.ifNoneMatch_ != "" { - reqHeaders.Set("If-None-Match", c.ifNoneMatch_) +func (c *RegionNetworkFirewallPoliciesAddRuleCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) + body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.firewallpolicyrule) + if err != nil { + return nil, err } - var body io.Reader = nil c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/sslCertificates") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/firewallPolicies/{firewallPolicy}/addRule") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("GET", urls, body) + req, err := http.NewRequest("POST", urls, body) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "region": c.region, + "project": c.project, + "region": c.region, + "firewallPolicy": c.firewallPolicy, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.regionNetworkFirewallPolicies.addRule", "request", internallog.HTTPRequest(req, body.Bytes())) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.regionSslCertificates.list" call. +// Do executes the "compute.regionNetworkFirewallPolicies.addRule" call. // Any non-2xx status code is an error. Response headers are in either -// *SslCertificateList.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 *RegionSslCertificatesListCall) Do(opts ...googleapi.CallOption) (*SslCertificateList, error) { +// *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 *RegionNetworkFirewallPoliciesAddRuleCall) Do(opts ...googleapi.CallOption) (*Operation, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -17607,130 +19738,122 @@ func (c *RegionSslCertificatesListCall) Do(opts ...googleapi.CallOption) (*SslCe if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } - ret := &SslCertificateList{ + ret := &Operation{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.regionNetworkFirewallPolicies.addRule", "response", internallog.HTTPResponse(res, b)) return ret, nil } -// 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 *RegionSslCertificatesListCall) Pages(ctx context.Context, f func(*SslCertificateList) error) error { - c.ctx_ = ctx - defer c.PageToken(c.urlParams_.Get("pageToken")) - 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) - } -} - -type RegionSslPoliciesDeleteCall struct { - s *Service - project string - region string - sslPolicy string - urlParams_ gensupport.URLParams - ctx_ context.Context - header_ http.Header +type RegionNetworkFirewallPoliciesCloneRulesCall struct { + s *Service + project string + region string + firewallPolicy string + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header } -// Delete: Deletes the specified SSL policy. The SSL policy resource can be -// deleted only if it is not in use by any TargetHttpsProxy or TargetSslProxy -// resources. +// CloneRules: Copies rules to the specified network firewall policy. // -// - project: Project ID for this request. -// - region: Name of the region scoping this request. -// - sslPolicy: Name of the SSL policy to delete. The name must be 1-63 -// characters long, and comply with RFC1035. -func (r *RegionSslPoliciesService) Delete(project string, region string, sslPolicy string) *RegionSslPoliciesDeleteCall { - c := &RegionSslPoliciesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)} +// - firewallPolicy: Name of the firewall policy to update. +// - project: Project ID for this request. +// - region: Name of the region scoping this request. +func (r *RegionNetworkFirewallPoliciesService) CloneRules(project string, region string, firewallPolicy string) *RegionNetworkFirewallPoliciesCloneRulesCall { + c := &RegionNetworkFirewallPoliciesCloneRulesCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project c.region = region - c.sslPolicy = sslPolicy + c.firewallPolicy = firewallPolicy 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 *RegionSslPoliciesDeleteCall) RequestId(requestId string) *RegionSslPoliciesDeleteCall { +// 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 *RegionNetworkFirewallPoliciesCloneRulesCall) RequestId(requestId string) *RegionNetworkFirewallPoliciesCloneRulesCall { c.urlParams_.Set("requestId", requestId) return c } +// SourceFirewallPolicy sets the optional parameter "sourceFirewallPolicy": The +// firewall policy from which to copy rules. +func (c *RegionNetworkFirewallPoliciesCloneRulesCall) SourceFirewallPolicy(sourceFirewallPolicy string) *RegionNetworkFirewallPoliciesCloneRulesCall { + c.urlParams_.Set("sourceFirewallPolicy", sourceFirewallPolicy) + return c +} + // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *RegionSslPoliciesDeleteCall) Fields(s ...googleapi.Field) *RegionSslPoliciesDeleteCall { +func (c *RegionNetworkFirewallPoliciesCloneRulesCall) Fields(s ...googleapi.Field) *RegionNetworkFirewallPoliciesCloneRulesCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } // Context sets the context to be used in this call's Do method. -func (c *RegionSslPoliciesDeleteCall) Context(ctx context.Context) *RegionSslPoliciesDeleteCall { +func (c *RegionNetworkFirewallPoliciesCloneRulesCall) Context(ctx context.Context) *RegionNetworkFirewallPoliciesCloneRulesCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *RegionSslPoliciesDeleteCall) Header() http.Header { +func (c *RegionNetworkFirewallPoliciesCloneRulesCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *RegionSslPoliciesDeleteCall) doRequest(alt string) (*http.Response, error) { +func (c *RegionNetworkFirewallPoliciesCloneRulesCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) - var body io.Reader = nil c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/sslPolicies/{sslPolicy}") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/firewallPolicies/{firewallPolicy}/cloneRules") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("DELETE", urls, body) + req, err := http.NewRequest("POST", urls, nil) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "region": c.region, - "sslPolicy": c.sslPolicy, + "project": c.project, + "region": c.region, + "firewallPolicy": c.firewallPolicy, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.regionNetworkFirewallPolicies.cloneRules", "request", internallog.HTTPRequest(req, nil)) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.regionSslPolicies.delete" call. +// Do executes the "compute.regionNetworkFirewallPolicies.cloneRules" call. // 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 *RegionSslPoliciesDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) { +func (c *RegionNetworkFirewallPoliciesCloneRulesCall) Do(opts ...googleapi.CallOption) (*Operation, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -17756,97 +19879,108 @@ func (c *RegionSslPoliciesDeleteCall) Do(opts ...googleapi.CallOption) (*Operati }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.regionNetworkFirewallPolicies.cloneRules", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type RegionSslPoliciesGetCall struct { - s *Service - project string - region string - sslPolicy string - urlParams_ gensupport.URLParams - ifNoneMatch_ string - ctx_ context.Context - header_ http.Header +type RegionNetworkFirewallPoliciesDeleteCall struct { + s *Service + project string + region string + firewallPolicy string + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header } -// Get: Lists all of the ordered rules present in a single specified policy. +// Delete: Deletes the specified network firewall policy. // -// - project: Project ID for this request. -// - region: Name of the region scoping this request. -// - sslPolicy: Name of the SSL policy to update. The name must be 1-63 -// characters long, and comply with RFC1035. -func (r *RegionSslPoliciesService) Get(project string, region string, sslPolicy string) *RegionSslPoliciesGetCall { - c := &RegionSslPoliciesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)} +// - firewallPolicy: Name of the firewall policy to delete. +// - project: Project ID for this request. +// - region: Name of the region scoping this request. +func (r *RegionNetworkFirewallPoliciesService) Delete(project string, region string, firewallPolicy string) *RegionNetworkFirewallPoliciesDeleteCall { + c := &RegionNetworkFirewallPoliciesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project c.region = region - c.sslPolicy = sslPolicy + c.firewallPolicy = firewallPolicy + 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 *RegionNetworkFirewallPoliciesDeleteCall) RequestId(requestId string) *RegionNetworkFirewallPoliciesDeleteCall { + 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 // details. -func (c *RegionSslPoliciesGetCall) Fields(s ...googleapi.Field) *RegionSslPoliciesGetCall { +func (c *RegionNetworkFirewallPoliciesDeleteCall) Fields(s ...googleapi.Field) *RegionNetworkFirewallPoliciesDeleteCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } -// IfNoneMatch sets an 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. -func (c *RegionSslPoliciesGetCall) IfNoneMatch(entityTag string) *RegionSslPoliciesGetCall { - c.ifNoneMatch_ = entityTag - return c -} - // Context sets the context to be used in this call's Do method. -func (c *RegionSslPoliciesGetCall) Context(ctx context.Context) *RegionSslPoliciesGetCall { +func (c *RegionNetworkFirewallPoliciesDeleteCall) Context(ctx context.Context) *RegionNetworkFirewallPoliciesDeleteCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *RegionSslPoliciesGetCall) Header() http.Header { +func (c *RegionNetworkFirewallPoliciesDeleteCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *RegionSslPoliciesGetCall) doRequest(alt string) (*http.Response, error) { +func (c *RegionNetworkFirewallPoliciesDeleteCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) - if c.ifNoneMatch_ != "" { - reqHeaders.Set("If-None-Match", c.ifNoneMatch_) - } - var body io.Reader = nil c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/sslPolicies/{sslPolicy}") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/firewallPolicies/{firewallPolicy}") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("GET", urls, body) + req, err := http.NewRequest("DELETE", urls, nil) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "region": c.region, - "sslPolicy": c.sslPolicy, + "project": c.project, + "region": c.region, + "firewallPolicy": c.firewallPolicy, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.regionNetworkFirewallPolicies.delete", "request", internallog.HTTPRequest(req, nil)) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.regionSslPolicies.get" call. +// Do executes the "compute.regionNetworkFirewallPolicies.delete" call. // Any non-2xx status code is an error. Response headers are in either -// *SslPolicy.ServerResponse.Header or (if a response was returned at all) in +// *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 *RegionSslPoliciesGetCall) Do(opts ...googleapi.CallOption) (*SslPolicy, error) { +func (c *RegionNetworkFirewallPoliciesDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -17865,109 +19999,105 @@ func (c *RegionSslPoliciesGetCall) Do(opts ...googleapi.CallOption) (*SslPolicy, if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } - ret := &SslPolicy{ + ret := &Operation{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.regionNetworkFirewallPolicies.delete", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type RegionSslPoliciesInsertCall struct { - s *Service - project string - region string - sslpolicy *SslPolicy - urlParams_ gensupport.URLParams - ctx_ context.Context - header_ http.Header +type RegionNetworkFirewallPoliciesGetCall struct { + s *Service + project string + region string + firewallPolicy string + urlParams_ gensupport.URLParams + ifNoneMatch_ string + ctx_ context.Context + header_ http.Header } -// Insert: Creates a new policy in the specified project and region using the -// data included in the request. +// Get: Returns the specified network firewall policy. // +// - firewallPolicy: Name of the firewall policy to get. // - project: Project ID for this request. // - region: Name of the region scoping this request. -func (r *RegionSslPoliciesService) Insert(project string, region string, sslpolicy *SslPolicy) *RegionSslPoliciesInsertCall { - c := &RegionSslPoliciesInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)} +func (r *RegionNetworkFirewallPoliciesService) Get(project string, region string, firewallPolicy string) *RegionNetworkFirewallPoliciesGetCall { + c := &RegionNetworkFirewallPoliciesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project c.region = region - c.sslpolicy = sslpolicy - 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 *RegionSslPoliciesInsertCall) RequestId(requestId string) *RegionSslPoliciesInsertCall { - c.urlParams_.Set("requestId", requestId) + c.firewallPolicy = firewallPolicy return c } // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *RegionSslPoliciesInsertCall) Fields(s ...googleapi.Field) *RegionSslPoliciesInsertCall { +func (c *RegionNetworkFirewallPoliciesGetCall) Fields(s ...googleapi.Field) *RegionNetworkFirewallPoliciesGetCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } +// IfNoneMatch sets an 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. +func (c *RegionNetworkFirewallPoliciesGetCall) IfNoneMatch(entityTag string) *RegionNetworkFirewallPoliciesGetCall { + c.ifNoneMatch_ = entityTag + return c +} + // Context sets the context to be used in this call's Do method. -func (c *RegionSslPoliciesInsertCall) Context(ctx context.Context) *RegionSslPoliciesInsertCall { +func (c *RegionNetworkFirewallPoliciesGetCall) Context(ctx context.Context) *RegionNetworkFirewallPoliciesGetCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *RegionSslPoliciesInsertCall) Header() http.Header { +func (c *RegionNetworkFirewallPoliciesGetCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *RegionSslPoliciesInsertCall) doRequest(alt string) (*http.Response, error) { - reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) - var body io.Reader = nil - body, err := googleapi.WithoutDataWrapper.JSONReader(c.sslpolicy) - if err != nil { - return nil, err +func (c *RegionNetworkFirewallPoliciesGetCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) + if c.ifNoneMatch_ != "" { + reqHeaders.Set("If-None-Match", c.ifNoneMatch_) } c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/sslPolicies") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/firewallPolicies/{firewallPolicy}") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("POST", urls, body) + req, err := http.NewRequest("GET", urls, nil) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "region": c.region, + "project": c.project, + "region": c.region, + "firewallPolicy": c.firewallPolicy, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.regionNetworkFirewallPolicies.get", "request", internallog.HTTPRequest(req, nil)) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.regionSslPolicies.insert" call. +// Do executes the "compute.regionNetworkFirewallPolicies.get" call. // 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 +// *FirewallPolicy.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 *RegionSslPoliciesInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) { +func (c *RegionNetworkFirewallPoliciesGetCall) Do(opts ...googleapi.CallOption) (*FirewallPolicy, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -17986,123 +20116,57 @@ func (c *RegionSslPoliciesInsertCall) Do(opts ...googleapi.CallOption) (*Operati if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } - ret := &Operation{ + ret := &FirewallPolicy{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.regionNetworkFirewallPolicies.get", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type RegionSslPoliciesListCall struct { - s *Service - project string - region string - urlParams_ gensupport.URLParams - ifNoneMatch_ string - ctx_ context.Context - header_ http.Header +type RegionNetworkFirewallPoliciesGetAssociationCall struct { + s *Service + project string + region string + firewallPolicy string + urlParams_ gensupport.URLParams + ifNoneMatch_ string + ctx_ context.Context + header_ http.Header } -// List: Lists all the SSL policies that have been configured for the specified -// project and region. +// GetAssociation: Gets an association with the specified name. // -// - project: Project ID for this request. -// - region: Name of the region scoping this request. -func (r *RegionSslPoliciesService) List(project string, region string) *RegionSslPoliciesListCall { - c := &RegionSslPoliciesListCall{s: r.s, urlParams_: make(gensupport.URLParams)} +// - firewallPolicy: Name of the firewall policy to which the queried +// association belongs. +// - project: Project ID for this request. +// - region: Name of the region scoping this request. +func (r *RegionNetworkFirewallPoliciesService) GetAssociation(project string, region string, firewallPolicy string) *RegionNetworkFirewallPoliciesGetAssociationCall { + c := &RegionNetworkFirewallPoliciesGetAssociationCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project c.region = region + c.firewallPolicy = firewallPolicy return c } -// Filter sets the optional parameter "filter": A filter expression that -// filters resources listed in the response. Most Compute resources support two -// types of filter expressions: expressions that support regular expressions -// and expressions that follow API improvement proposal AIP-160. These two -// types of filter expressions cannot be mixed in one request. If you want to -// use AIP-160, your expression must specify the field name, an operator, and -// the value that you want to use for filtering. The value must be a string, a -// number, or a boolean. The 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`. The `:*` comparison can be used to test whether a key has -// been defined. For example, to find all objects with `owner` label use: ``` -// labels.owner:* ``` 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) ``` If you want to use a regular -// expression, use the `eq` (equal) or `ne` (not equal) operator against a -// single un-parenthesized expression with or without quotes or against -// multiple parenthesized expressions. Examples: `fieldname eq unquoted -// literal` `fieldname eq 'single quoted literal'` `fieldname eq "double quoted -// literal" `(fieldname1 eq literal) (fieldname2 ne "literal")` The literal -// value is interpreted as a regular expression using Google RE2 library -// syntax. The literal value must match the entire field. For example, to -// filter for instances that do not end with name "instance", you would use -// `name ne .*instance`. You cannot combine constraints on multiple fields -// using regular expressions. -func (c *RegionSslPoliciesListCall) Filter(filter string) *RegionSslPoliciesListCall { - 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 *RegionSslPoliciesListCall) MaxResults(maxResults int64) *RegionSslPoliciesListCall { - 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 *RegionSslPoliciesListCall) OrderBy(orderBy string) *RegionSslPoliciesListCall { - 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 *RegionSslPoliciesListCall) PageToken(pageToken string) *RegionSslPoliciesListCall { - c.urlParams_.Set("pageToken", pageToken) - return c -} - -// ReturnPartialSuccess sets the optional parameter "returnPartialSuccess": -// Opt-in for partial success behavior which provides partial results in case -// of failure. The default value is false. For example, when partial success -// behavior is enabled, aggregatedList for a single zone scope either returns -// all resources in the zone or no resources, with an error code. -func (c *RegionSslPoliciesListCall) ReturnPartialSuccess(returnPartialSuccess bool) *RegionSslPoliciesListCall { - c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess)) +// Name sets the optional parameter "name": The name of the association to get +// from the firewall policy. +func (c *RegionNetworkFirewallPoliciesGetAssociationCall) Name(name string) *RegionNetworkFirewallPoliciesGetAssociationCall { + c.urlParams_.Set("name", name) return c } // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *RegionSslPoliciesListCall) Fields(s ...googleapi.Field) *RegionSslPoliciesListCall { +func (c *RegionNetworkFirewallPoliciesGetAssociationCall) Fields(s ...googleapi.Field) *RegionNetworkFirewallPoliciesGetAssociationCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } @@ -18110,55 +20174,56 @@ func (c *RegionSslPoliciesListCall) Fields(s ...googleapi.Field) *RegionSslPolic // IfNoneMatch sets an 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. -func (c *RegionSslPoliciesListCall) IfNoneMatch(entityTag string) *RegionSslPoliciesListCall { +func (c *RegionNetworkFirewallPoliciesGetAssociationCall) IfNoneMatch(entityTag string) *RegionNetworkFirewallPoliciesGetAssociationCall { c.ifNoneMatch_ = entityTag return c } // Context sets the context to be used in this call's Do method. -func (c *RegionSslPoliciesListCall) Context(ctx context.Context) *RegionSslPoliciesListCall { +func (c *RegionNetworkFirewallPoliciesGetAssociationCall) Context(ctx context.Context) *RegionNetworkFirewallPoliciesGetAssociationCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *RegionSslPoliciesListCall) Header() http.Header { +func (c *RegionNetworkFirewallPoliciesGetAssociationCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *RegionSslPoliciesListCall) doRequest(alt string) (*http.Response, error) { +func (c *RegionNetworkFirewallPoliciesGetAssociationCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) if c.ifNoneMatch_ != "" { reqHeaders.Set("If-None-Match", c.ifNoneMatch_) } - var body io.Reader = nil c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/sslPolicies") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/firewallPolicies/{firewallPolicy}/getAssociation") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("GET", urls, body) + req, err := http.NewRequest("GET", urls, nil) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "region": c.region, + "project": c.project, + "region": c.region, + "firewallPolicy": c.firewallPolicy, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.regionNetworkFirewallPolicies.getAssociation", "request", internallog.HTTPRequest(req, nil)) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.regionSslPolicies.list" call. +// Do executes the "compute.regionNetworkFirewallPolicies.getAssociation" call. // Any non-2xx status code is an error. Response headers are in either -// *SslPoliciesList.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 *RegionSslPoliciesListCall) Do(opts ...googleapi.CallOption) (*SslPoliciesList, error) { +// *FirewallPolicyAssociation.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 *RegionNetworkFirewallPoliciesGetAssociationCall) Do(opts ...googleapi.CallOption) (*FirewallPolicyAssociation, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -18177,41 +20242,22 @@ func (c *RegionSslPoliciesListCall) Do(opts ...googleapi.CallOption) (*SslPolici if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } - ret := &SslPoliciesList{ + ret := &FirewallPolicyAssociation{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.regionNetworkFirewallPolicies.getAssociation", "response", internallog.HTTPResponse(res, b)) return ret, nil } -// 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 *RegionSslPoliciesListCall) Pages(ctx context.Context, f func(*SslPoliciesList) error) error { - c.ctx_ = ctx - defer c.PageToken(c.urlParams_.Get("pageToken")) - 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) - } -} - -type RegionSslPoliciesListAvailableFeaturesCall struct { +type RegionNetworkFirewallPoliciesGetEffectiveFirewallsCall struct { s *Service project string region string @@ -18221,100 +20267,23 @@ type RegionSslPoliciesListAvailableFeaturesCall struct { header_ http.Header } -// ListAvailableFeatures: Lists all features that can be specified in the SSL -// policy when using custom profile. +// GetEffectiveFirewalls: Returns the effective firewalls on a given network. // +// - network: Network reference. // - project: Project ID for this request. // - region: Name of the region scoping this request. -func (r *RegionSslPoliciesService) ListAvailableFeatures(project string, region string) *RegionSslPoliciesListAvailableFeaturesCall { - c := &RegionSslPoliciesListAvailableFeaturesCall{s: r.s, urlParams_: make(gensupport.URLParams)} +func (r *RegionNetworkFirewallPoliciesService) GetEffectiveFirewalls(project string, region string, network string) *RegionNetworkFirewallPoliciesGetEffectiveFirewallsCall { + c := &RegionNetworkFirewallPoliciesGetEffectiveFirewallsCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project c.region = region - return c -} - -// Filter sets the optional parameter "filter": A filter expression that -// filters resources listed in the response. Most Compute resources support two -// types of filter expressions: expressions that support regular expressions -// and expressions that follow API improvement proposal AIP-160. These two -// types of filter expressions cannot be mixed in one request. If you want to -// use AIP-160, your expression must specify the field name, an operator, and -// the value that you want to use for filtering. The value must be a string, a -// number, or a boolean. The 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`. The `:*` comparison can be used to test whether a key has -// been defined. For example, to find all objects with `owner` label use: ``` -// labels.owner:* ``` 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) ``` If you want to use a regular -// expression, use the `eq` (equal) or `ne` (not equal) operator against a -// single un-parenthesized expression with or without quotes or against -// multiple parenthesized expressions. Examples: `fieldname eq unquoted -// literal` `fieldname eq 'single quoted literal'` `fieldname eq "double quoted -// literal" `(fieldname1 eq literal) (fieldname2 ne "literal")` The literal -// value is interpreted as a regular expression using Google RE2 library -// syntax. The literal value must match the entire field. For example, to -// filter for instances that do not end with name "instance", you would use -// `name ne .*instance`. You cannot combine constraints on multiple fields -// using regular expressions. -func (c *RegionSslPoliciesListAvailableFeaturesCall) Filter(filter string) *RegionSslPoliciesListAvailableFeaturesCall { - 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 *RegionSslPoliciesListAvailableFeaturesCall) MaxResults(maxResults int64) *RegionSslPoliciesListAvailableFeaturesCall { - 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 *RegionSslPoliciesListAvailableFeaturesCall) OrderBy(orderBy string) *RegionSslPoliciesListAvailableFeaturesCall { - 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 *RegionSslPoliciesListAvailableFeaturesCall) PageToken(pageToken string) *RegionSslPoliciesListAvailableFeaturesCall { - c.urlParams_.Set("pageToken", pageToken) - return c -} - -// ReturnPartialSuccess sets the optional parameter "returnPartialSuccess": -// Opt-in for partial success behavior which provides partial results in case -// of failure. The default value is false. For example, when partial success -// behavior is enabled, aggregatedList for a single zone scope either returns -// all resources in the zone or no resources, with an error code. -func (c *RegionSslPoliciesListAvailableFeaturesCall) ReturnPartialSuccess(returnPartialSuccess bool) *RegionSslPoliciesListAvailableFeaturesCall { - c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess)) + c.urlParams_.Set("network", network) return c } // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *RegionSslPoliciesListAvailableFeaturesCall) Fields(s ...googleapi.Field) *RegionSslPoliciesListAvailableFeaturesCall { +func (c *RegionNetworkFirewallPoliciesGetEffectiveFirewallsCall) Fields(s ...googleapi.Field) *RegionNetworkFirewallPoliciesGetEffectiveFirewallsCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } @@ -18322,37 +20291,36 @@ func (c *RegionSslPoliciesListAvailableFeaturesCall) Fields(s ...googleapi.Field // IfNoneMatch sets an 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. -func (c *RegionSslPoliciesListAvailableFeaturesCall) IfNoneMatch(entityTag string) *RegionSslPoliciesListAvailableFeaturesCall { +func (c *RegionNetworkFirewallPoliciesGetEffectiveFirewallsCall) IfNoneMatch(entityTag string) *RegionNetworkFirewallPoliciesGetEffectiveFirewallsCall { c.ifNoneMatch_ = entityTag return c } // Context sets the context to be used in this call's Do method. -func (c *RegionSslPoliciesListAvailableFeaturesCall) Context(ctx context.Context) *RegionSslPoliciesListAvailableFeaturesCall { +func (c *RegionNetworkFirewallPoliciesGetEffectiveFirewallsCall) Context(ctx context.Context) *RegionNetworkFirewallPoliciesGetEffectiveFirewallsCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *RegionSslPoliciesListAvailableFeaturesCall) Header() http.Header { +func (c *RegionNetworkFirewallPoliciesGetEffectiveFirewallsCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *RegionSslPoliciesListAvailableFeaturesCall) doRequest(alt string) (*http.Response, error) { +func (c *RegionNetworkFirewallPoliciesGetEffectiveFirewallsCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) if c.ifNoneMatch_ != "" { reqHeaders.Set("If-None-Match", c.ifNoneMatch_) } - var body io.Reader = nil c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/sslPolicies/listAvailableFeatures") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/firewallPolicies/getEffectiveFirewalls") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("GET", urls, body) + req, err := http.NewRequest("GET", urls, nil) if err != nil { return nil, err } @@ -18361,16 +20329,17 @@ func (c *RegionSslPoliciesListAvailableFeaturesCall) doRequest(alt string) (*htt "project": c.project, "region": c.region, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.regionNetworkFirewallPolicies.getEffectiveFirewalls", "request", internallog.HTTPRequest(req, nil)) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.regionSslPolicies.listAvailableFeatures" call. +// Do executes the "compute.regionNetworkFirewallPolicies.getEffectiveFirewalls" call. // Any non-2xx status code is an error. Response headers are in either -// *SslPoliciesListAvailableFeaturesResponse.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 *RegionSslPoliciesListAvailableFeaturesCall) Do(opts ...googleapi.CallOption) (*SslPoliciesListAvailableFeaturesResponse, error) { +// *RegionNetworkFirewallPoliciesGetEffectiveFirewallsResponse.ServerResponse.He +// ader 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 *RegionNetworkFirewallPoliciesGetEffectiveFirewallsCall) Do(opts ...googleapi.CallOption) (*RegionNetworkFirewallPoliciesGetEffectiveFirewallsResponse, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -18389,114 +20358,114 @@ func (c *RegionSslPoliciesListAvailableFeaturesCall) Do(opts ...googleapi.CallOp if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } - ret := &SslPoliciesListAvailableFeaturesResponse{ + ret := &RegionNetworkFirewallPoliciesGetEffectiveFirewallsResponse{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.regionNetworkFirewallPolicies.getEffectiveFirewalls", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type RegionSslPoliciesPatchCall struct { - s *Service - project string - region string - sslPolicy string - sslpolicy *SslPolicy - urlParams_ gensupport.URLParams - ctx_ context.Context - header_ http.Header +type RegionNetworkFirewallPoliciesGetIamPolicyCall struct { + s *Service + project string + region string + resource string + urlParams_ gensupport.URLParams + ifNoneMatch_ string + ctx_ context.Context + header_ http.Header } -// Patch: Patches the specified SSL policy with the data included in the -// request. +// GetIamPolicy: Gets the access control policy for a resource. May be empty if +// no such +// policy or resource exists. // -// - project: Project ID for this request. -// - region: Name of the region scoping this request. -// - sslPolicy: Name of the SSL policy to update. The name must be 1-63 -// characters long, and comply with RFC1035. -func (r *RegionSslPoliciesService) Patch(project string, region string, sslPolicy string, sslpolicy *SslPolicy) *RegionSslPoliciesPatchCall { - c := &RegionSslPoliciesPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)} +// - project: Project ID for this request. +// - region: The name of the region for this request. +// - resource: Name or id of the resource for this request. +func (r *RegionNetworkFirewallPoliciesService) GetIamPolicy(project string, region string, resource string) *RegionNetworkFirewallPoliciesGetIamPolicyCall { + c := &RegionNetworkFirewallPoliciesGetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project c.region = region - c.sslPolicy = sslPolicy - c.sslpolicy = sslpolicy + c.resource = resource 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 *RegionSslPoliciesPatchCall) RequestId(requestId string) *RegionSslPoliciesPatchCall { - c.urlParams_.Set("requestId", requestId) +// OptionsRequestedPolicyVersion sets the optional parameter +// "optionsRequestedPolicyVersion": Requested IAM Policy version. +func (c *RegionNetworkFirewallPoliciesGetIamPolicyCall) OptionsRequestedPolicyVersion(optionsRequestedPolicyVersion int64) *RegionNetworkFirewallPoliciesGetIamPolicyCall { + c.urlParams_.Set("optionsRequestedPolicyVersion", fmt.Sprint(optionsRequestedPolicyVersion)) return c } // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *RegionSslPoliciesPatchCall) Fields(s ...googleapi.Field) *RegionSslPoliciesPatchCall { +func (c *RegionNetworkFirewallPoliciesGetIamPolicyCall) Fields(s ...googleapi.Field) *RegionNetworkFirewallPoliciesGetIamPolicyCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } +// IfNoneMatch sets an 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. +func (c *RegionNetworkFirewallPoliciesGetIamPolicyCall) IfNoneMatch(entityTag string) *RegionNetworkFirewallPoliciesGetIamPolicyCall { + c.ifNoneMatch_ = entityTag + return c +} + // Context sets the context to be used in this call's Do method. -func (c *RegionSslPoliciesPatchCall) Context(ctx context.Context) *RegionSslPoliciesPatchCall { +func (c *RegionNetworkFirewallPoliciesGetIamPolicyCall) Context(ctx context.Context) *RegionNetworkFirewallPoliciesGetIamPolicyCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *RegionSslPoliciesPatchCall) Header() http.Header { +func (c *RegionNetworkFirewallPoliciesGetIamPolicyCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *RegionSslPoliciesPatchCall) doRequest(alt string) (*http.Response, error) { - reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) - var body io.Reader = nil - body, err := googleapi.WithoutDataWrapper.JSONReader(c.sslpolicy) - if err != nil { - return nil, err +func (c *RegionNetworkFirewallPoliciesGetIamPolicyCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) + if c.ifNoneMatch_ != "" { + reqHeaders.Set("If-None-Match", c.ifNoneMatch_) } c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/sslPolicies/{sslPolicy}") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/firewallPolicies/{resource}/getIamPolicy") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("PATCH", urls, body) + req, err := http.NewRequest("GET", urls, nil) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "region": c.region, - "sslPolicy": c.sslPolicy, + "project": c.project, + "region": c.region, + "resource": c.resource, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.regionNetworkFirewallPolicies.getIamPolicy", "request", internallog.HTTPRequest(req, nil)) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.regionSslPolicies.patch" call. +// Do executes the "compute.regionNetworkFirewallPolicies.getIamPolicy" call. // 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 +// *Policy.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 *RegionSslPoliciesPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) { +func (c *RegionNetworkFirewallPoliciesGetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -18515,106 +20484,114 @@ func (c *RegionSslPoliciesPatchCall) Do(opts ...googleapi.CallOption) (*Operatio if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } - ret := &Operation{ + ret := &Policy{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.regionNetworkFirewallPolicies.getIamPolicy", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type RegionTargetHttpProxiesDeleteCall struct { - s *Service - project string - region string - targetHttpProxy string - urlParams_ gensupport.URLParams - ctx_ context.Context - header_ http.Header +type RegionNetworkFirewallPoliciesGetRuleCall struct { + s *Service + project string + region string + firewallPolicy string + urlParams_ gensupport.URLParams + ifNoneMatch_ string + ctx_ context.Context + header_ http.Header } -// Delete: Deletes the specified TargetHttpProxy resource. +// GetRule: Gets a rule of the specified priority. // -// - project: Project ID for this request. -// - region: Name of the region scoping this request. -// - targetHttpProxy: Name of the TargetHttpProxy resource to delete. -func (r *RegionTargetHttpProxiesService) Delete(project string, region string, targetHttpProxy string) *RegionTargetHttpProxiesDeleteCall { - c := &RegionTargetHttpProxiesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)} +// - firewallPolicy: Name of the firewall policy to which the queried rule +// belongs. +// - project: Project ID for this request. +// - region: Name of the region scoping this request. +func (r *RegionNetworkFirewallPoliciesService) GetRule(project string, region string, firewallPolicy string) *RegionNetworkFirewallPoliciesGetRuleCall { + c := &RegionNetworkFirewallPoliciesGetRuleCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project c.region = region - c.targetHttpProxy = targetHttpProxy + c.firewallPolicy = firewallPolicy 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 *RegionTargetHttpProxiesDeleteCall) RequestId(requestId string) *RegionTargetHttpProxiesDeleteCall { - c.urlParams_.Set("requestId", requestId) +// Priority sets the optional parameter "priority": The priority of the rule to +// get from the firewall policy. +func (c *RegionNetworkFirewallPoliciesGetRuleCall) Priority(priority int64) *RegionNetworkFirewallPoliciesGetRuleCall { + c.urlParams_.Set("priority", fmt.Sprint(priority)) return c } // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *RegionTargetHttpProxiesDeleteCall) Fields(s ...googleapi.Field) *RegionTargetHttpProxiesDeleteCall { +func (c *RegionNetworkFirewallPoliciesGetRuleCall) Fields(s ...googleapi.Field) *RegionNetworkFirewallPoliciesGetRuleCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } +// IfNoneMatch sets an 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. +func (c *RegionNetworkFirewallPoliciesGetRuleCall) IfNoneMatch(entityTag string) *RegionNetworkFirewallPoliciesGetRuleCall { + c.ifNoneMatch_ = entityTag + return c +} + // Context sets the context to be used in this call's Do method. -func (c *RegionTargetHttpProxiesDeleteCall) Context(ctx context.Context) *RegionTargetHttpProxiesDeleteCall { +func (c *RegionNetworkFirewallPoliciesGetRuleCall) Context(ctx context.Context) *RegionNetworkFirewallPoliciesGetRuleCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *RegionTargetHttpProxiesDeleteCall) Header() http.Header { +func (c *RegionNetworkFirewallPoliciesGetRuleCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *RegionTargetHttpProxiesDeleteCall) doRequest(alt string) (*http.Response, error) { +func (c *RegionNetworkFirewallPoliciesGetRuleCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) - var body io.Reader = nil + if c.ifNoneMatch_ != "" { + reqHeaders.Set("If-None-Match", c.ifNoneMatch_) + } c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/targetHttpProxies/{targetHttpProxy}") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/firewallPolicies/{firewallPolicy}/getRule") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("DELETE", urls, body) + req, err := http.NewRequest("GET", urls, nil) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "region": c.region, - "targetHttpProxy": c.targetHttpProxy, + "project": c.project, + "region": c.region, + "firewallPolicy": c.firewallPolicy, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.regionNetworkFirewallPolicies.getRule", "request", internallog.HTTPRequest(req, nil)) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.regionTargetHttpProxies.delete" call. +// Do executes the "compute.regionNetworkFirewallPolicies.getRule" call. // 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 *RegionTargetHttpProxiesDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) { +// *FirewallPolicyRule.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 *RegionNetworkFirewallPoliciesGetRuleCall) Do(opts ...googleapi.CallOption) (*FirewallPolicyRule, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -18633,104 +20610,118 @@ func (c *RegionTargetHttpProxiesDeleteCall) Do(opts ...googleapi.CallOption) (*O if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } - ret := &Operation{ + ret := &FirewallPolicyRule{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.regionNetworkFirewallPolicies.getRule", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type RegionTargetHttpProxiesGetCall struct { - s *Service - project string - region string - targetHttpProxy string - urlParams_ gensupport.URLParams - ifNoneMatch_ string - ctx_ context.Context - header_ http.Header +type RegionNetworkFirewallPoliciesInsertCall struct { + s *Service + project string + region string + firewallpolicy *FirewallPolicy + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header } -// Get: Returns the specified TargetHttpProxy resource in the specified region. +// Insert: Creates a new network firewall policy in the specified project and +// region. // // - project: Project ID for this request. // - region: Name of the region scoping this request. -// - targetHttpProxy: Name of the TargetHttpProxy resource to return. -func (r *RegionTargetHttpProxiesService) Get(project string, region string, targetHttpProxy string) *RegionTargetHttpProxiesGetCall { - c := &RegionTargetHttpProxiesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)} +func (r *RegionNetworkFirewallPoliciesService) Insert(project string, region string, firewallpolicy *FirewallPolicy) *RegionNetworkFirewallPoliciesInsertCall { + c := &RegionNetworkFirewallPoliciesInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project c.region = region - c.targetHttpProxy = targetHttpProxy + c.firewallpolicy = firewallpolicy + 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 *RegionNetworkFirewallPoliciesInsertCall) RequestId(requestId string) *RegionNetworkFirewallPoliciesInsertCall { + 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 // details. -func (c *RegionTargetHttpProxiesGetCall) Fields(s ...googleapi.Field) *RegionTargetHttpProxiesGetCall { +func (c *RegionNetworkFirewallPoliciesInsertCall) Fields(s ...googleapi.Field) *RegionNetworkFirewallPoliciesInsertCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } -// IfNoneMatch sets an 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. -func (c *RegionTargetHttpProxiesGetCall) IfNoneMatch(entityTag string) *RegionTargetHttpProxiesGetCall { - c.ifNoneMatch_ = entityTag - return c -} - // Context sets the context to be used in this call's Do method. -func (c *RegionTargetHttpProxiesGetCall) Context(ctx context.Context) *RegionTargetHttpProxiesGetCall { +func (c *RegionNetworkFirewallPoliciesInsertCall) Context(ctx context.Context) *RegionNetworkFirewallPoliciesInsertCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *RegionTargetHttpProxiesGetCall) Header() http.Header { +func (c *RegionNetworkFirewallPoliciesInsertCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *RegionTargetHttpProxiesGetCall) doRequest(alt string) (*http.Response, error) { - reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) - if c.ifNoneMatch_ != "" { - reqHeaders.Set("If-None-Match", c.ifNoneMatch_) +func (c *RegionNetworkFirewallPoliciesInsertCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) + body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.firewallpolicy) + if err != nil { + return nil, err } - var body io.Reader = nil c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/targetHttpProxies/{targetHttpProxy}") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/firewallPolicies") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("GET", urls, body) + req, err := http.NewRequest("POST", urls, body) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "region": c.region, - "targetHttpProxy": c.targetHttpProxy, + "project": c.project, + "region": c.region, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.regionNetworkFirewallPolicies.insert", "request", internallog.HTTPRequest(req, body.Bytes())) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.regionTargetHttpProxies.get" call. +// Do executes the "compute.regionNetworkFirewallPolicies.insert" call. // Any non-2xx status code is an error. Response headers are in either -// *TargetHttpProxy.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 *RegionTargetHttpProxiesGetCall) Do(opts ...googleapi.CallOption) (*TargetHttpProxy, error) { +// *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 *RegionNetworkFirewallPoliciesInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -18749,236 +20740,167 @@ func (c *RegionTargetHttpProxiesGetCall) Do(opts ...googleapi.CallOption) (*Targ if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } - ret := &TargetHttpProxy{ + ret := &Operation{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.regionNetworkFirewallPolicies.insert", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type RegionTargetHttpProxiesInsertCall struct { - s *Service - project string - region string - targethttpproxy *TargetHttpProxy - urlParams_ gensupport.URLParams - ctx_ context.Context - header_ http.Header +type RegionNetworkFirewallPoliciesListCall struct { + s *Service + project string + region string + urlParams_ gensupport.URLParams + ifNoneMatch_ string + ctx_ context.Context + header_ http.Header } -// Insert: Creates a TargetHttpProxy resource in the specified project and -// region using the data included in the request. -// -// - project: Project ID for this request. -// - region: Name of the region scoping this request. -func (r *RegionTargetHttpProxiesService) Insert(project string, region string, targethttpproxy *TargetHttpProxy) *RegionTargetHttpProxiesInsertCall { - c := &RegionTargetHttpProxiesInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)} - c.project = project - c.region = region - c.targethttpproxy = targethttpproxy - 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 *RegionTargetHttpProxiesInsertCall) RequestId(requestId string) *RegionTargetHttpProxiesInsertCall { - 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 -// details. -func (c *RegionTargetHttpProxiesInsertCall) Fields(s ...googleapi.Field) *RegionTargetHttpProxiesInsertCall { - c.urlParams_.Set("fields", googleapi.CombineFields(s)) - return c -} - -// Context sets the context to be used in this call's Do method. -func (c *RegionTargetHttpProxiesInsertCall) Context(ctx context.Context) *RegionTargetHttpProxiesInsertCall { - c.ctx_ = ctx - return c -} - -// Header returns a http.Header that can be modified by the caller to add -// headers to the request. -func (c *RegionTargetHttpProxiesInsertCall) Header() http.Header { - if c.header_ == nil { - c.header_ = make(http.Header) - } - return c.header_ -} - -func (c *RegionTargetHttpProxiesInsertCall) doRequest(alt string) (*http.Response, error) { - reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) - var body io.Reader = nil - body, err := googleapi.WithoutDataWrapper.JSONReader(c.targethttpproxy) - if err != nil { - return nil, err - } - c.urlParams_.Set("alt", alt) - c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/targetHttpProxies") - urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("POST", urls, body) - if err != nil { - return nil, err - } - req.Header = reqHeaders - googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "region": c.region, - }) - return gensupport.SendRequest(c.ctx_, c.s.client, req) -} - -// Do executes the "compute.regionTargetHttpProxies.insert" call. -// 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 *RegionTargetHttpProxiesInsertCall) 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, gensupport.WrapError(&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, gensupport.WrapError(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 -} - -type RegionTargetHttpProxiesListCall struct { - s *Service - project string - region string - urlParams_ gensupport.URLParams - ifNoneMatch_ string - ctx_ context.Context - header_ http.Header -} - -// List: Retrieves the list of TargetHttpProxy resources available to the -// specified project in the specified region. +// List: Lists all the network firewall policies that have been configured +// for the specified project in the given region. // // - project: Project ID for this request. // - region: Name of the region scoping this request. -func (r *RegionTargetHttpProxiesService) List(project string, region string) *RegionTargetHttpProxiesListCall { - c := &RegionTargetHttpProxiesListCall{s: r.s, urlParams_: make(gensupport.URLParams)} +func (r *RegionNetworkFirewallPoliciesService) List(project string, region string) *RegionNetworkFirewallPoliciesListCall { + c := &RegionNetworkFirewallPoliciesListCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project c.region = region return c } // Filter sets the optional parameter "filter": A filter expression that -// filters resources listed in the response. Most Compute resources support two -// types of filter expressions: expressions that support regular expressions -// and expressions that follow API improvement proposal AIP-160. These two -// types of filter expressions cannot be mixed in one request. If you want to -// use AIP-160, your expression must specify the field name, an operator, and -// the value that you want to use for filtering. The value must be a string, a -// number, or a boolean. The 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`. The `:*` comparison can be used to test whether a key has -// been defined. For example, to find all objects with `owner` label use: ``` -// labels.owner:* ``` 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) ``` If you want to use a regular -// expression, use the `eq` (equal) or `ne` (not equal) operator against a -// single un-parenthesized expression with or without quotes or against -// multiple parenthesized expressions. Examples: `fieldname eq unquoted -// literal` `fieldname eq 'single quoted literal'` `fieldname eq "double quoted -// literal" `(fieldname1 eq literal) (fieldname2 ne "literal")` The literal -// value is interpreted as a regular expression using Google RE2 library -// syntax. The literal value must match the entire field. For example, to -// filter for instances that do not end with name "instance", you would use -// `name ne .*instance`. You cannot combine constraints on multiple fields -// using regular expressions. -func (c *RegionTargetHttpProxiesListCall) Filter(filter string) *RegionTargetHttpProxiesListCall { +// filters resources listed in the response. Most +// Compute resources support two types of filter expressions: +// expressions that support regular expressions and expressions that follow +// API improvement proposal AIP-160. +// These two types of filter expressions cannot be mixed in one request. +// +// If you want to use AIP-160, your expression must specify the field name, +// an +// operator, and the value that you want to use for filtering. The value +// must be a string, a number, or a boolean. The 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`. +// +// The `:*` comparison can be used to test whether a key has been defined. +// For example, to find all objects with `owner` label +// use: +// ``` +// labels.owner:* +// ``` +// +// 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 onresource 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) +// ``` +// +// If you want to use a regular expression, use the `eq` (equal) or `ne` +// (not equal) operator against a single un-parenthesized expression with +// or +// without quotes or against multiple parenthesized expressions. +// Examples: +// +// `fieldname eq unquoted literal` +// `fieldname eq 'single quoted literal'` +// `fieldname eq "double quoted literal" +// `(fieldname1 eq literal) (fieldname2 ne "literal")` +// +// The literal value is interpreted as a regular expression using GoogleRE2 +// library syntax. +// The literal value must match the entire field. +// +// For example, to filter for instances that do not end with name +// "instance", +// you would use `name ne .*instance`. +// +// You cannot combine constraints on multiple fields using regular +// expressions. +func (c *RegionNetworkFirewallPoliciesListCall) Filter(filter string) *RegionNetworkFirewallPoliciesListCall { 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 *RegionTargetHttpProxiesListCall) MaxResults(maxResults int64) *RegionTargetHttpProxiesListCall { +// 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 *RegionNetworkFirewallPoliciesListCall) MaxResults(maxResults int64) *RegionNetworkFirewallPoliciesListCall { 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 *RegionTargetHttpProxiesListCall) OrderBy(orderBy string) *RegionTargetHttpProxiesListCall { +// 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 *RegionNetworkFirewallPoliciesListCall) OrderBy(orderBy string) *RegionNetworkFirewallPoliciesListCall { 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 *RegionTargetHttpProxiesListCall) PageToken(pageToken string) *RegionTargetHttpProxiesListCall { +// use. Set `pageToken` to the +// `nextPageToken` returned by a previous list request to get +// the next page of results. +func (c *RegionNetworkFirewallPoliciesListCall) PageToken(pageToken string) *RegionNetworkFirewallPoliciesListCall { c.urlParams_.Set("pageToken", pageToken) return c } // ReturnPartialSuccess sets the optional parameter "returnPartialSuccess": -// Opt-in for partial success behavior which provides partial results in case -// of failure. The default value is false. For example, when partial success -// behavior is enabled, aggregatedList for a single zone scope either returns -// all resources in the zone or no resources, with an error code. -func (c *RegionTargetHttpProxiesListCall) ReturnPartialSuccess(returnPartialSuccess bool) *RegionTargetHttpProxiesListCall { +// Opt-in for partial success behavior which provides partial results in +// case +// of failure. The default value is false. +// +// For example, when partial success behavior is enabled, aggregatedList for +// a +// single zone scope either returns all resources in the zone or no +// resources, +// with an error code. +func (c *RegionNetworkFirewallPoliciesListCall) ReturnPartialSuccess(returnPartialSuccess bool) *RegionNetworkFirewallPoliciesListCall { c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess)) return c } @@ -18986,7 +20908,7 @@ func (c *RegionTargetHttpProxiesListCall) ReturnPartialSuccess(returnPartialSucc // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *RegionTargetHttpProxiesListCall) Fields(s ...googleapi.Field) *RegionTargetHttpProxiesListCall { +func (c *RegionNetworkFirewallPoliciesListCall) Fields(s ...googleapi.Field) *RegionNetworkFirewallPoliciesListCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } @@ -18994,37 +20916,36 @@ func (c *RegionTargetHttpProxiesListCall) Fields(s ...googleapi.Field) *RegionTa // IfNoneMatch sets an 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. -func (c *RegionTargetHttpProxiesListCall) IfNoneMatch(entityTag string) *RegionTargetHttpProxiesListCall { +func (c *RegionNetworkFirewallPoliciesListCall) IfNoneMatch(entityTag string) *RegionNetworkFirewallPoliciesListCall { c.ifNoneMatch_ = entityTag return c } // Context sets the context to be used in this call's Do method. -func (c *RegionTargetHttpProxiesListCall) Context(ctx context.Context) *RegionTargetHttpProxiesListCall { +func (c *RegionNetworkFirewallPoliciesListCall) Context(ctx context.Context) *RegionNetworkFirewallPoliciesListCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *RegionTargetHttpProxiesListCall) Header() http.Header { +func (c *RegionNetworkFirewallPoliciesListCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *RegionTargetHttpProxiesListCall) doRequest(alt string) (*http.Response, error) { +func (c *RegionNetworkFirewallPoliciesListCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) if c.ifNoneMatch_ != "" { reqHeaders.Set("If-None-Match", c.ifNoneMatch_) } - var body io.Reader = nil c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/targetHttpProxies") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/firewallPolicies") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("GET", urls, body) + req, err := http.NewRequest("GET", urls, nil) if err != nil { return nil, err } @@ -19033,16 +20954,17 @@ func (c *RegionTargetHttpProxiesListCall) doRequest(alt string) (*http.Response, "project": c.project, "region": c.region, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.regionNetworkFirewallPolicies.list", "request", internallog.HTTPRequest(req, nil)) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.regionTargetHttpProxies.list" call. +// Do executes the "compute.regionNetworkFirewallPolicies.list" call. // Any non-2xx status code is an error. Response headers are in either -// *TargetHttpProxyList.ServerResponse.Header or (if a response was returned at +// *FirewallPolicyList.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 *RegionTargetHttpProxiesListCall) Do(opts ...googleapi.CallOption) (*TargetHttpProxyList, error) { +func (c *RegionNetworkFirewallPoliciesListCall) Do(opts ...googleapi.CallOption) (*FirewallPolicyList, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -19061,23 +20983,25 @@ func (c *RegionTargetHttpProxiesListCall) Do(opts ...googleapi.CallOption) (*Tar if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } - ret := &TargetHttpProxyList{ + ret := &FirewallPolicyList{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.regionNetworkFirewallPolicies.list", "response", internallog.HTTPResponse(res, b)) return ret, nil } // 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 *RegionTargetHttpProxiesListCall) Pages(ctx context.Context, f func(*TargetHttpProxyList) error) error { +func (c *RegionNetworkFirewallPoliciesListCall) Pages(ctx context.Context, f func(*FirewallPolicyList) error) error { c.ctx_ = ctx defer c.PageToken(c.urlParams_.Get("pageToken")) for { @@ -19095,42 +21019,49 @@ func (c *RegionTargetHttpProxiesListCall) Pages(ctx context.Context, f func(*Tar } } -type RegionTargetHttpProxiesSetUrlMapCall struct { - s *Service - project string - region string - targetHttpProxy string - urlmapreference *UrlMapReference - urlParams_ gensupport.URLParams - ctx_ context.Context - header_ http.Header +type RegionNetworkFirewallPoliciesPatchCall struct { + s *Service + project string + region string + firewallPolicy string + firewallpolicy *FirewallPolicy + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header } -// SetUrlMap: Changes the URL map for TargetHttpProxy. +// Patch: Patches the specified network firewall policy. // +// - firewallPolicy: Name of the firewall policy to update. // - project: Project ID for this request. // - region: Name of the region scoping this request. -// - targetHttpProxy: Name of the TargetHttpProxy to set a URL map for. -func (r *RegionTargetHttpProxiesService) SetUrlMap(project string, region string, targetHttpProxy string, urlmapreference *UrlMapReference) *RegionTargetHttpProxiesSetUrlMapCall { - c := &RegionTargetHttpProxiesSetUrlMapCall{s: r.s, urlParams_: make(gensupport.URLParams)} +func (r *RegionNetworkFirewallPoliciesService) Patch(project string, region string, firewallPolicy string, firewallpolicy *FirewallPolicy) *RegionNetworkFirewallPoliciesPatchCall { + c := &RegionNetworkFirewallPoliciesPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project c.region = region - c.targetHttpProxy = targetHttpProxy - c.urlmapreference = urlmapreference + c.firewallPolicy = firewallPolicy + c.firewallpolicy = firewallpolicy 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 *RegionTargetHttpProxiesSetUrlMapCall) RequestId(requestId string) *RegionTargetHttpProxiesSetUrlMapCall { +// 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 *RegionNetworkFirewallPoliciesPatchCall) RequestId(requestId string) *RegionNetworkFirewallPoliciesPatchCall { c.urlParams_.Set("requestId", requestId) return c } @@ -19138,56 +21069,56 @@ func (c *RegionTargetHttpProxiesSetUrlMapCall) RequestId(requestId string) *Regi // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *RegionTargetHttpProxiesSetUrlMapCall) Fields(s ...googleapi.Field) *RegionTargetHttpProxiesSetUrlMapCall { +func (c *RegionNetworkFirewallPoliciesPatchCall) Fields(s ...googleapi.Field) *RegionNetworkFirewallPoliciesPatchCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } // Context sets the context to be used in this call's Do method. -func (c *RegionTargetHttpProxiesSetUrlMapCall) Context(ctx context.Context) *RegionTargetHttpProxiesSetUrlMapCall { +func (c *RegionNetworkFirewallPoliciesPatchCall) Context(ctx context.Context) *RegionNetworkFirewallPoliciesPatchCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *RegionTargetHttpProxiesSetUrlMapCall) Header() http.Header { +func (c *RegionNetworkFirewallPoliciesPatchCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *RegionTargetHttpProxiesSetUrlMapCall) doRequest(alt string) (*http.Response, error) { +func (c *RegionNetworkFirewallPoliciesPatchCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) - var body io.Reader = nil - body, err := googleapi.WithoutDataWrapper.JSONReader(c.urlmapreference) + body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.firewallpolicy) if err != nil { return nil, err } c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/targetHttpProxies/{targetHttpProxy}/setUrlMap") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/firewallPolicies/{firewallPolicy}") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("POST", urls, body) + req, err := http.NewRequest("PATCH", urls, body) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "region": c.region, - "targetHttpProxy": c.targetHttpProxy, + "project": c.project, + "region": c.region, + "firewallPolicy": c.firewallPolicy, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.regionNetworkFirewallPolicies.patch", "request", internallog.HTTPRequest(req, body.Bytes())) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.regionTargetHttpProxies.setUrlMap" call. +// Do executes the "compute.regionNetworkFirewallPolicies.patch" call. // 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 *RegionTargetHttpProxiesSetUrlMapCall) Do(opts ...googleapi.CallOption) (*Operation, error) { +func (c *RegionNetworkFirewallPoliciesPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -19213,46 +21144,64 @@ func (c *RegionTargetHttpProxiesSetUrlMapCall) Do(opts ...googleapi.CallOption) }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.regionNetworkFirewallPolicies.patch", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type RegionTargetHttpsProxiesDeleteCall struct { - s *Service - project string - region string - targetHttpsProxy string - urlParams_ gensupport.URLParams - ctx_ context.Context - header_ http.Header +type RegionNetworkFirewallPoliciesPatchRuleCall struct { + s *Service + project string + region string + firewallPolicy string + firewallpolicyrule *FirewallPolicyRule + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header } -// Delete: Deletes the specified TargetHttpsProxy resource. +// PatchRule: Patches a rule of the specified priority. // +// - firewallPolicy: Name of the firewall policy to update. // - project: Project ID for this request. // - region: Name of the region scoping this request. -// - targetHttpsProxy: Name of the TargetHttpsProxy resource to delete. -func (r *RegionTargetHttpsProxiesService) Delete(project string, region string, targetHttpsProxy string) *RegionTargetHttpsProxiesDeleteCall { - c := &RegionTargetHttpsProxiesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)} +func (r *RegionNetworkFirewallPoliciesService) PatchRule(project string, region string, firewallPolicy string, firewallpolicyrule *FirewallPolicyRule) *RegionNetworkFirewallPoliciesPatchRuleCall { + c := &RegionNetworkFirewallPoliciesPatchRuleCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project c.region = region - c.targetHttpsProxy = targetHttpsProxy + c.firewallPolicy = firewallPolicy + c.firewallpolicyrule = firewallpolicyrule + return c +} + +// Priority sets the optional parameter "priority": The priority of the rule to +// patch. +func (c *RegionNetworkFirewallPoliciesPatchRuleCall) Priority(priority int64) *RegionNetworkFirewallPoliciesPatchRuleCall { + c.urlParams_.Set("priority", fmt.Sprint(priority)) 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 *RegionTargetHttpsProxiesDeleteCall) RequestId(requestId string) *RegionTargetHttpsProxiesDeleteCall { +// 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 *RegionNetworkFirewallPoliciesPatchRuleCall) RequestId(requestId string) *RegionNetworkFirewallPoliciesPatchRuleCall { c.urlParams_.Set("requestId", requestId) return c } @@ -19260,52 +21209,56 @@ func (c *RegionTargetHttpsProxiesDeleteCall) RequestId(requestId string) *Region // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *RegionTargetHttpsProxiesDeleteCall) Fields(s ...googleapi.Field) *RegionTargetHttpsProxiesDeleteCall { +func (c *RegionNetworkFirewallPoliciesPatchRuleCall) Fields(s ...googleapi.Field) *RegionNetworkFirewallPoliciesPatchRuleCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } // Context sets the context to be used in this call's Do method. -func (c *RegionTargetHttpsProxiesDeleteCall) Context(ctx context.Context) *RegionTargetHttpsProxiesDeleteCall { +func (c *RegionNetworkFirewallPoliciesPatchRuleCall) Context(ctx context.Context) *RegionNetworkFirewallPoliciesPatchRuleCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *RegionTargetHttpsProxiesDeleteCall) Header() http.Header { +func (c *RegionNetworkFirewallPoliciesPatchRuleCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *RegionTargetHttpsProxiesDeleteCall) doRequest(alt string) (*http.Response, error) { - reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) - var body io.Reader = nil +func (c *RegionNetworkFirewallPoliciesPatchRuleCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) + body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.firewallpolicyrule) + if err != nil { + return nil, err + } c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/targetHttpsProxies/{targetHttpsProxy}") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/firewallPolicies/{firewallPolicy}/patchRule") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("DELETE", urls, body) + req, err := http.NewRequest("POST", urls, body) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "region": c.region, - "targetHttpsProxy": c.targetHttpsProxy, + "project": c.project, + "region": c.region, + "firewallPolicy": c.firewallPolicy, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.regionNetworkFirewallPolicies.patchRule", "request", internallog.HTTPRequest(req, body.Bytes())) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.regionTargetHttpsProxies.delete" call. +// Do executes the "compute.regionNetworkFirewallPolicies.patchRule" call. // 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 *RegionTargetHttpsProxiesDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) { +func (c *RegionNetworkFirewallPoliciesPatchRuleCall) Do(opts ...googleapi.CallOption) (*Operation, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -19331,98 +21284,116 @@ func (c *RegionTargetHttpsProxiesDeleteCall) Do(opts ...googleapi.CallOption) (* }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.regionNetworkFirewallPolicies.patchRule", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type RegionTargetHttpsProxiesGetCall struct { - s *Service - project string - region string - targetHttpsProxy string - urlParams_ gensupport.URLParams - ifNoneMatch_ string - ctx_ context.Context - header_ http.Header +type RegionNetworkFirewallPoliciesRemoveAssociationCall struct { + s *Service + project string + region string + firewallPolicy string + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header } -// Get: Returns the specified TargetHttpsProxy resource in the specified -// region. +// RemoveAssociation: Removes an association for the specified network firewall +// policy. // +// - firewallPolicy: Name of the firewall policy to update. // - project: Project ID for this request. // - region: Name of the region scoping this request. -// - targetHttpsProxy: Name of the TargetHttpsProxy resource to return. -func (r *RegionTargetHttpsProxiesService) Get(project string, region string, targetHttpsProxy string) *RegionTargetHttpsProxiesGetCall { - c := &RegionTargetHttpsProxiesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)} +func (r *RegionNetworkFirewallPoliciesService) RemoveAssociation(project string, region string, firewallPolicy string) *RegionNetworkFirewallPoliciesRemoveAssociationCall { + c := &RegionNetworkFirewallPoliciesRemoveAssociationCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project c.region = region - c.targetHttpsProxy = targetHttpsProxy + c.firewallPolicy = firewallPolicy + return c +} + +// Name sets the optional parameter "name": Name for the association that will +// be removed. +func (c *RegionNetworkFirewallPoliciesRemoveAssociationCall) Name(name string) *RegionNetworkFirewallPoliciesRemoveAssociationCall { + c.urlParams_.Set("name", name) + 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 *RegionNetworkFirewallPoliciesRemoveAssociationCall) RequestId(requestId string) *RegionNetworkFirewallPoliciesRemoveAssociationCall { + 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 // details. -func (c *RegionTargetHttpsProxiesGetCall) Fields(s ...googleapi.Field) *RegionTargetHttpsProxiesGetCall { +func (c *RegionNetworkFirewallPoliciesRemoveAssociationCall) Fields(s ...googleapi.Field) *RegionNetworkFirewallPoliciesRemoveAssociationCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } -// IfNoneMatch sets an 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. -func (c *RegionTargetHttpsProxiesGetCall) IfNoneMatch(entityTag string) *RegionTargetHttpsProxiesGetCall { - c.ifNoneMatch_ = entityTag - return c -} - // Context sets the context to be used in this call's Do method. -func (c *RegionTargetHttpsProxiesGetCall) Context(ctx context.Context) *RegionTargetHttpsProxiesGetCall { +func (c *RegionNetworkFirewallPoliciesRemoveAssociationCall) Context(ctx context.Context) *RegionNetworkFirewallPoliciesRemoveAssociationCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *RegionTargetHttpsProxiesGetCall) Header() http.Header { +func (c *RegionNetworkFirewallPoliciesRemoveAssociationCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *RegionTargetHttpsProxiesGetCall) doRequest(alt string) (*http.Response, error) { +func (c *RegionNetworkFirewallPoliciesRemoveAssociationCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) - if c.ifNoneMatch_ != "" { - reqHeaders.Set("If-None-Match", c.ifNoneMatch_) - } - var body io.Reader = nil c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/targetHttpsProxies/{targetHttpsProxy}") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/firewallPolicies/{firewallPolicy}/removeAssociation") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("GET", urls, body) + req, err := http.NewRequest("POST", urls, nil) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "region": c.region, - "targetHttpsProxy": c.targetHttpsProxy, + "project": c.project, + "region": c.region, + "firewallPolicy": c.firewallPolicy, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.regionNetworkFirewallPolicies.removeAssociation", "request", internallog.HTTPRequest(req, nil)) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.regionTargetHttpsProxies.get" call. +// Do executes the "compute.regionNetworkFirewallPolicies.removeAssociation" call. // Any non-2xx status code is an error. Response headers are in either -// *TargetHttpsProxy.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 *RegionTargetHttpsProxiesGetCall) Do(opts ...googleapi.CallOption) (*TargetHttpsProxy, error) { +// *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 *RegionNetworkFirewallPoliciesRemoveAssociationCall) Do(opts ...googleapi.CallOption) (*Operation, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -19441,53 +21412,69 @@ func (c *RegionTargetHttpsProxiesGetCall) Do(opts ...googleapi.CallOption) (*Tar if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } - ret := &TargetHttpsProxy{ + ret := &Operation{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.regionNetworkFirewallPolicies.removeAssociation", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type RegionTargetHttpsProxiesInsertCall struct { - s *Service - project string - region string - targethttpsproxy *TargetHttpsProxy - urlParams_ gensupport.URLParams - ctx_ context.Context - header_ http.Header +type RegionNetworkFirewallPoliciesRemoveRuleCall struct { + s *Service + project string + region string + firewallPolicy string + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header } -// Insert: Creates a TargetHttpsProxy resource in the specified project and -// region using the data included in the request. +// RemoveRule: Deletes a rule of the specified priority. // +// - firewallPolicy: Name of the firewall policy to update. // - project: Project ID for this request. // - region: Name of the region scoping this request. -func (r *RegionTargetHttpsProxiesService) Insert(project string, region string, targethttpsproxy *TargetHttpsProxy) *RegionTargetHttpsProxiesInsertCall { - c := &RegionTargetHttpsProxiesInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)} +func (r *RegionNetworkFirewallPoliciesService) RemoveRule(project string, region string, firewallPolicy string) *RegionNetworkFirewallPoliciesRemoveRuleCall { + c := &RegionNetworkFirewallPoliciesRemoveRuleCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project c.region = region - c.targethttpsproxy = targethttpsproxy + c.firewallPolicy = firewallPolicy + return c +} + +// Priority sets the optional parameter "priority": The priority of the rule to +// remove from the firewall policy. +func (c *RegionNetworkFirewallPoliciesRemoveRuleCall) Priority(priority int64) *RegionNetworkFirewallPoliciesRemoveRuleCall { + c.urlParams_.Set("priority", fmt.Sprint(priority)) 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 *RegionTargetHttpsProxiesInsertCall) RequestId(requestId string) *RegionTargetHttpsProxiesInsertCall { +// 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 *RegionNetworkFirewallPoliciesRemoveRuleCall) RequestId(requestId string) *RegionNetworkFirewallPoliciesRemoveRuleCall { c.urlParams_.Set("requestId", requestId) return c } @@ -19495,55 +21482,52 @@ func (c *RegionTargetHttpsProxiesInsertCall) RequestId(requestId string) *Region // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *RegionTargetHttpsProxiesInsertCall) Fields(s ...googleapi.Field) *RegionTargetHttpsProxiesInsertCall { +func (c *RegionNetworkFirewallPoliciesRemoveRuleCall) Fields(s ...googleapi.Field) *RegionNetworkFirewallPoliciesRemoveRuleCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } // Context sets the context to be used in this call's Do method. -func (c *RegionTargetHttpsProxiesInsertCall) Context(ctx context.Context) *RegionTargetHttpsProxiesInsertCall { +func (c *RegionNetworkFirewallPoliciesRemoveRuleCall) Context(ctx context.Context) *RegionNetworkFirewallPoliciesRemoveRuleCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *RegionTargetHttpsProxiesInsertCall) Header() http.Header { +func (c *RegionNetworkFirewallPoliciesRemoveRuleCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *RegionTargetHttpsProxiesInsertCall) doRequest(alt string) (*http.Response, error) { - reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) - var body io.Reader = nil - body, err := googleapi.WithoutDataWrapper.JSONReader(c.targethttpsproxy) - if err != nil { - return nil, err - } +func (c *RegionNetworkFirewallPoliciesRemoveRuleCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/targetHttpsProxies") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/firewallPolicies/{firewallPolicy}/removeRule") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("POST", urls, body) + req, err := http.NewRequest("POST", urls, nil) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "region": c.region, + "project": c.project, + "region": c.region, + "firewallPolicy": c.firewallPolicy, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.regionNetworkFirewallPolicies.removeRule", "request", internallog.HTTPRequest(req, nil)) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.regionTargetHttpsProxies.insert" call. +// Do executes the "compute.regionNetworkFirewallPolicies.removeRule" call. // 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 *RegionTargetHttpsProxiesInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) { +func (c *RegionNetworkFirewallPoliciesRemoveRuleCall) Do(opts ...googleapi.CallOption) (*Operation, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -19569,172 +21553,94 @@ func (c *RegionTargetHttpsProxiesInsertCall) Do(opts ...googleapi.CallOption) (* }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.regionNetworkFirewallPolicies.removeRule", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type RegionTargetHttpsProxiesListCall struct { - s *Service - project string - region string - urlParams_ gensupport.URLParams - ifNoneMatch_ string - ctx_ context.Context - header_ http.Header +type RegionNetworkFirewallPoliciesSetIamPolicyCall struct { + s *Service + project string + region string + resource string + regionsetpolicyrequest *RegionSetPolicyRequest + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header } -// List: Retrieves the list of TargetHttpsProxy resources available to the -// specified project in the specified region. +// SetIamPolicy: Sets the access control policy on the specified +// resource. +// Replaces any existing policy. // // - project: Project ID for this request. -// - region: Name of the region scoping this request. -func (r *RegionTargetHttpsProxiesService) List(project string, region string) *RegionTargetHttpsProxiesListCall { - c := &RegionTargetHttpsProxiesListCall{s: r.s, urlParams_: make(gensupport.URLParams)} +// - region: The name of the region for this request. +// - resource: Name or id of the resource for this request. +func (r *RegionNetworkFirewallPoliciesService) SetIamPolicy(project string, region string, resource string, regionsetpolicyrequest *RegionSetPolicyRequest) *RegionNetworkFirewallPoliciesSetIamPolicyCall { + c := &RegionNetworkFirewallPoliciesSetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project c.region = region - return c -} - -// Filter sets the optional parameter "filter": A filter expression that -// filters resources listed in the response. Most Compute resources support two -// types of filter expressions: expressions that support regular expressions -// and expressions that follow API improvement proposal AIP-160. These two -// types of filter expressions cannot be mixed in one request. If you want to -// use AIP-160, your expression must specify the field name, an operator, and -// the value that you want to use for filtering. The value must be a string, a -// number, or a boolean. The 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`. The `:*` comparison can be used to test whether a key has -// been defined. For example, to find all objects with `owner` label use: ``` -// labels.owner:* ``` 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) ``` If you want to use a regular -// expression, use the `eq` (equal) or `ne` (not equal) operator against a -// single un-parenthesized expression with or without quotes or against -// multiple parenthesized expressions. Examples: `fieldname eq unquoted -// literal` `fieldname eq 'single quoted literal'` `fieldname eq "double quoted -// literal" `(fieldname1 eq literal) (fieldname2 ne "literal")` The literal -// value is interpreted as a regular expression using Google RE2 library -// syntax. The literal value must match the entire field. For example, to -// filter for instances that do not end with name "instance", you would use -// `name ne .*instance`. You cannot combine constraints on multiple fields -// using regular expressions. -func (c *RegionTargetHttpsProxiesListCall) Filter(filter string) *RegionTargetHttpsProxiesListCall { - 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 *RegionTargetHttpsProxiesListCall) MaxResults(maxResults int64) *RegionTargetHttpsProxiesListCall { - 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 *RegionTargetHttpsProxiesListCall) OrderBy(orderBy string) *RegionTargetHttpsProxiesListCall { - 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 *RegionTargetHttpsProxiesListCall) PageToken(pageToken string) *RegionTargetHttpsProxiesListCall { - c.urlParams_.Set("pageToken", pageToken) - return c -} - -// ReturnPartialSuccess sets the optional parameter "returnPartialSuccess": -// Opt-in for partial success behavior which provides partial results in case -// of failure. The default value is false. For example, when partial success -// behavior is enabled, aggregatedList for a single zone scope either returns -// all resources in the zone or no resources, with an error code. -func (c *RegionTargetHttpsProxiesListCall) ReturnPartialSuccess(returnPartialSuccess bool) *RegionTargetHttpsProxiesListCall { - c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess)) + c.resource = resource + c.regionsetpolicyrequest = regionsetpolicyrequest return c } // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *RegionTargetHttpsProxiesListCall) Fields(s ...googleapi.Field) *RegionTargetHttpsProxiesListCall { +func (c *RegionNetworkFirewallPoliciesSetIamPolicyCall) Fields(s ...googleapi.Field) *RegionNetworkFirewallPoliciesSetIamPolicyCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } -// IfNoneMatch sets an 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. -func (c *RegionTargetHttpsProxiesListCall) IfNoneMatch(entityTag string) *RegionTargetHttpsProxiesListCall { - c.ifNoneMatch_ = entityTag - return c -} - // Context sets the context to be used in this call's Do method. -func (c *RegionTargetHttpsProxiesListCall) Context(ctx context.Context) *RegionTargetHttpsProxiesListCall { +func (c *RegionNetworkFirewallPoliciesSetIamPolicyCall) Context(ctx context.Context) *RegionNetworkFirewallPoliciesSetIamPolicyCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *RegionTargetHttpsProxiesListCall) Header() http.Header { +func (c *RegionNetworkFirewallPoliciesSetIamPolicyCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *RegionTargetHttpsProxiesListCall) doRequest(alt string) (*http.Response, error) { - reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) - if c.ifNoneMatch_ != "" { - reqHeaders.Set("If-None-Match", c.ifNoneMatch_) +func (c *RegionNetworkFirewallPoliciesSetIamPolicyCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) + body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.regionsetpolicyrequest) + if err != nil { + return nil, err } - var body io.Reader = nil c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/targetHttpsProxies") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/firewallPolicies/{resource}/setIamPolicy") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("GET", urls, body) + req, err := http.NewRequest("POST", urls, body) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "region": c.region, + "project": c.project, + "region": c.region, + "resource": c.resource, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.regionNetworkFirewallPolicies.setIamPolicy", "request", internallog.HTTPRequest(req, body.Bytes())) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.regionTargetHttpsProxies.list" call. +// Do executes the "compute.regionNetworkFirewallPolicies.setIamPolicy" call. // Any non-2xx status code is an error. Response headers are in either -// *TargetHttpsProxyList.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 *RegionTargetHttpsProxiesListCall) Do(opts ...googleapi.CallOption) (*TargetHttpsProxyList, error) { +// *Policy.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 *RegionNetworkFirewallPoliciesSetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -19753,135 +21659,101 @@ func (c *RegionTargetHttpsProxiesListCall) Do(opts ...googleapi.CallOption) (*Ta if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } - ret := &TargetHttpsProxyList{ + ret := &Policy{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.regionNetworkFirewallPolicies.setIamPolicy", "response", internallog.HTTPResponse(res, b)) return ret, nil } -// 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 *RegionTargetHttpsProxiesListCall) Pages(ctx context.Context, f func(*TargetHttpsProxyList) error) error { - c.ctx_ = ctx - defer c.PageToken(c.urlParams_.Get("pageToken")) - 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) - } -} - -type RegionTargetHttpsProxiesPatchCall struct { - s *Service - project string - region string - targetHttpsProxy string - targethttpsproxy *TargetHttpsProxy - urlParams_ gensupport.URLParams - ctx_ context.Context - header_ http.Header +type RegionNetworkFirewallPoliciesTestIamPermissionsCall struct { + s *Service + project string + region string + resource string + testpermissionsrequest *TestPermissionsRequest + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header } -// Patch: Patches the specified regional TargetHttpsProxy resource with the -// data included in the request. This method supports PATCH semantics and uses -// JSON merge patch format and processing rules. +// TestIamPermissions: Returns permissions that a caller has on the specified +// resource. // // - project: Project ID for this request. -// - region: Name of the region for this request. -// - targetHttpsProxy: Name of the TargetHttpsProxy resource to patch. -func (r *RegionTargetHttpsProxiesService) Patch(project string, region string, targetHttpsProxy string, targethttpsproxy *TargetHttpsProxy) *RegionTargetHttpsProxiesPatchCall { - c := &RegionTargetHttpsProxiesPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)} +// - region: The name of the region for this request. +// - resource: Name or id of the resource for this request. +func (r *RegionNetworkFirewallPoliciesService) TestIamPermissions(project string, region string, resource string, testpermissionsrequest *TestPermissionsRequest) *RegionNetworkFirewallPoliciesTestIamPermissionsCall { + c := &RegionNetworkFirewallPoliciesTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project c.region = region - c.targetHttpsProxy = targetHttpsProxy - c.targethttpsproxy = targethttpsproxy - 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 *RegionTargetHttpsProxiesPatchCall) RequestId(requestId string) *RegionTargetHttpsProxiesPatchCall { - c.urlParams_.Set("requestId", requestId) + c.resource = resource + c.testpermissionsrequest = testpermissionsrequest return c } // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *RegionTargetHttpsProxiesPatchCall) Fields(s ...googleapi.Field) *RegionTargetHttpsProxiesPatchCall { +func (c *RegionNetworkFirewallPoliciesTestIamPermissionsCall) Fields(s ...googleapi.Field) *RegionNetworkFirewallPoliciesTestIamPermissionsCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } // Context sets the context to be used in this call's Do method. -func (c *RegionTargetHttpsProxiesPatchCall) Context(ctx context.Context) *RegionTargetHttpsProxiesPatchCall { +func (c *RegionNetworkFirewallPoliciesTestIamPermissionsCall) Context(ctx context.Context) *RegionNetworkFirewallPoliciesTestIamPermissionsCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *RegionTargetHttpsProxiesPatchCall) Header() http.Header { +func (c *RegionNetworkFirewallPoliciesTestIamPermissionsCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *RegionTargetHttpsProxiesPatchCall) doRequest(alt string) (*http.Response, error) { +func (c *RegionNetworkFirewallPoliciesTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) - var body io.Reader = nil - body, err := googleapi.WithoutDataWrapper.JSONReader(c.targethttpsproxy) + body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.testpermissionsrequest) if err != nil { return nil, err } c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/targetHttpsProxies/{targetHttpsProxy}") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/firewallPolicies/{resource}/testIamPermissions") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("PATCH", urls, body) + req, err := http.NewRequest("POST", urls, body) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "region": c.region, - "targetHttpsProxy": c.targetHttpsProxy, + "project": c.project, + "region": c.region, + "resource": c.resource, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.regionNetworkFirewallPolicies.testIamPermissions", "request", internallog.HTTPRequest(req, body.Bytes())) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.regionTargetHttpsProxies.patch" call. +// Do executes the "compute.regionNetworkFirewallPolicies.testIamPermissions" call. // 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 *RegionTargetHttpsProxiesPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) { +// *TestPermissionsResponse.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 *RegionNetworkFirewallPoliciesTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -19900,237 +21772,254 @@ func (c *RegionTargetHttpsProxiesPatchCall) Do(opts ...googleapi.CallOption) (*O if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } - ret := &Operation{ + ret := &TestPermissionsResponse{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.regionNetworkFirewallPolicies.testIamPermissions", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type RegionTargetHttpsProxiesSetSslCertificatesCall struct { - s *Service - project string - region string - targetHttpsProxy string - regiontargethttpsproxiessetsslcertificatesrequest *RegionTargetHttpsProxiesSetSslCertificatesRequest - urlParams_ gensupport.URLParams - ctx_ context.Context - header_ http.Header +type RegionNotificationEndpointsAggregatedListCall struct { + s *Service + project string + urlParams_ gensupport.URLParams + ifNoneMatch_ string + ctx_ context.Context + header_ http.Header } -// SetSslCertificates: Replaces SslCertificates for TargetHttpsProxy. +// AggregatedList: Retrieves the list of all NotificationEndpoint +// resources, +// regional and global, available to the specified project. // -// - project: Project ID for this request. -// - region: Name of the region scoping this request. -// - targetHttpsProxy: Name of the TargetHttpsProxy resource to set an -// SslCertificates resource for. -func (r *RegionTargetHttpsProxiesService) SetSslCertificates(project string, region string, targetHttpsProxy string, regiontargethttpsproxiessetsslcertificatesrequest *RegionTargetHttpsProxiesSetSslCertificatesRequest) *RegionTargetHttpsProxiesSetSslCertificatesCall { - c := &RegionTargetHttpsProxiesSetSslCertificatesCall{s: r.s, urlParams_: make(gensupport.URLParams)} +// - project: Name of the project scoping this request. +func (r *RegionNotificationEndpointsService) AggregatedList(project string) *RegionNotificationEndpointsAggregatedListCall { + c := &RegionNotificationEndpointsAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project - c.region = region - c.targetHttpsProxy = targetHttpsProxy - c.regiontargethttpsproxiessetsslcertificatesrequest = regiontargethttpsproxiessetsslcertificatesrequest 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 *RegionTargetHttpsProxiesSetSslCertificatesCall) RequestId(requestId string) *RegionTargetHttpsProxiesSetSslCertificatesCall { - c.urlParams_.Set("requestId", requestId) +// Filter sets the optional parameter "filter": A filter expression that +// filters resources listed in the response. Most +// Compute resources support two types of filter expressions: +// expressions that support regular expressions and expressions that follow +// API improvement proposal AIP-160. +// These two types of filter expressions cannot be mixed in one request. +// +// If you want to use AIP-160, your expression must specify the field name, +// an +// operator, and the value that you want to use for filtering. The value +// must be a string, a number, or a boolean. The 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`. +// +// The `:*` comparison can be used to test whether a key has been defined. +// For example, to find all objects with `owner` label +// use: +// ``` +// labels.owner:* +// ``` +// +// 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 onresource 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) +// ``` +// +// If you want to use a regular expression, use the `eq` (equal) or `ne` +// (not equal) operator against a single un-parenthesized expression with +// or +// without quotes or against multiple parenthesized expressions. +// Examples: +// +// `fieldname eq unquoted literal` +// `fieldname eq 'single quoted literal'` +// `fieldname eq "double quoted literal" +// `(fieldname1 eq literal) (fieldname2 ne "literal")` +// +// The literal value is interpreted as a regular expression using GoogleRE2 +// library syntax. +// The literal value must match the entire field. +// +// For example, to filter for instances that do not end with name +// "instance", +// you would use `name ne .*instance`. +// +// You cannot combine constraints on multiple fields using regular +// expressions. +func (c *RegionNotificationEndpointsAggregatedListCall) Filter(filter string) *RegionNotificationEndpointsAggregatedListCall { + c.urlParams_.Set("filter", filter) return c } -// Fields allows partial responses to be retrieved. See -// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more -// details. -func (c *RegionTargetHttpsProxiesSetSslCertificatesCall) Fields(s ...googleapi.Field) *RegionTargetHttpsProxiesSetSslCertificatesCall { - c.urlParams_.Set("fields", googleapi.CombineFields(s)) +// IncludeAllScopes sets the optional parameter "includeAllScopes": Indicates +// whether every visible scope for each scope type (zone, region, +// global) should be included in the response. For new resource types +// added +// after this field, the flag has no effect as new resource types will +// always +// include every visible scope for each scope type in response. For +// resource +// types which predate this field, if this flag is omitted or false, +// only +// scopes of the scope types where the resource type is expected to be +// found +// will be included. +func (c *RegionNotificationEndpointsAggregatedListCall) IncludeAllScopes(includeAllScopes bool) *RegionNotificationEndpointsAggregatedListCall { + c.urlParams_.Set("includeAllScopes", fmt.Sprint(includeAllScopes)) return c } -// Context sets the context to be used in this call's Do method. -func (c *RegionTargetHttpsProxiesSetSslCertificatesCall) Context(ctx context.Context) *RegionTargetHttpsProxiesSetSslCertificatesCall { - c.ctx_ = ctx +// 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 *RegionNotificationEndpointsAggregatedListCall) MaxResults(maxResults int64) *RegionNotificationEndpointsAggregatedListCall { + c.urlParams_.Set("maxResults", fmt.Sprint(maxResults)) return c } -// Header returns a http.Header that can be modified by the caller to add -// headers to the request. -func (c *RegionTargetHttpsProxiesSetSslCertificatesCall) Header() http.Header { - if c.header_ == nil { - c.header_ = make(http.Header) - } - return c.header_ -} - -func (c *RegionTargetHttpsProxiesSetSslCertificatesCall) doRequest(alt string) (*http.Response, error) { - reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) - var body io.Reader = nil - body, err := googleapi.WithoutDataWrapper.JSONReader(c.regiontargethttpsproxiessetsslcertificatesrequest) - if err != nil { - return nil, err - } - c.urlParams_.Set("alt", alt) - c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/targetHttpsProxies/{targetHttpsProxy}/setSslCertificates") - urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("POST", urls, body) - if err != nil { - return nil, err - } - req.Header = reqHeaders - googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "region": c.region, - "targetHttpsProxy": c.targetHttpsProxy, - }) - return gensupport.SendRequest(c.ctx_, c.s.client, req) -} - -// Do executes the "compute.regionTargetHttpsProxies.setSslCertificates" call. -// 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 *RegionTargetHttpsProxiesSetSslCertificatesCall) 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, gensupport.WrapError(&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, gensupport.WrapError(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 +// 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 *RegionNotificationEndpointsAggregatedListCall) OrderBy(orderBy string) *RegionNotificationEndpointsAggregatedListCall { + c.urlParams_.Set("orderBy", orderBy) + return c } -type RegionTargetHttpsProxiesSetUrlMapCall struct { - s *Service - project string - region string - targetHttpsProxy string - urlmapreference *UrlMapReference - urlParams_ gensupport.URLParams - ctx_ context.Context - header_ http.Header +// 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 *RegionNotificationEndpointsAggregatedListCall) PageToken(pageToken string) *RegionNotificationEndpointsAggregatedListCall { + c.urlParams_.Set("pageToken", pageToken) + return c } -// SetUrlMap: Changes the URL map for TargetHttpsProxy. +// ReturnPartialSuccess sets the optional parameter "returnPartialSuccess": +// Opt-in for partial success behavior which provides partial results in +// case +// of failure. The default value is false. // -// - project: Project ID for this request. -// - region: Name of the region scoping this request. -// - targetHttpsProxy: Name of the TargetHttpsProxy to set a URL map for. -func (r *RegionTargetHttpsProxiesService) SetUrlMap(project string, region string, targetHttpsProxy string, urlmapreference *UrlMapReference) *RegionTargetHttpsProxiesSetUrlMapCall { - c := &RegionTargetHttpsProxiesSetUrlMapCall{s: r.s, urlParams_: make(gensupport.URLParams)} - c.project = project - c.region = region - c.targetHttpsProxy = targetHttpsProxy - c.urlmapreference = urlmapreference +// For example, when partial success behavior is enabled, aggregatedList for +// a +// single zone scope either returns all resources in the zone or no +// resources, +// with an error code. +func (c *RegionNotificationEndpointsAggregatedListCall) ReturnPartialSuccess(returnPartialSuccess bool) *RegionNotificationEndpointsAggregatedListCall { + c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess)) 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 *RegionTargetHttpsProxiesSetUrlMapCall) RequestId(requestId string) *RegionTargetHttpsProxiesSetUrlMapCall { - c.urlParams_.Set("requestId", requestId) +// ServiceProjectNumber sets the optional parameter "serviceProjectNumber": The +// Shared VPC service project id or service project number for which +// aggregated list request is invoked for subnetworks list-usable api. +func (c *RegionNotificationEndpointsAggregatedListCall) ServiceProjectNumber(serviceProjectNumber int64) *RegionNotificationEndpointsAggregatedListCall { + c.urlParams_.Set("serviceProjectNumber", fmt.Sprint(serviceProjectNumber)) return c } // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *RegionTargetHttpsProxiesSetUrlMapCall) Fields(s ...googleapi.Field) *RegionTargetHttpsProxiesSetUrlMapCall { +func (c *RegionNotificationEndpointsAggregatedListCall) Fields(s ...googleapi.Field) *RegionNotificationEndpointsAggregatedListCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } +// IfNoneMatch sets an 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. +func (c *RegionNotificationEndpointsAggregatedListCall) IfNoneMatch(entityTag string) *RegionNotificationEndpointsAggregatedListCall { + c.ifNoneMatch_ = entityTag + return c +} + // Context sets the context to be used in this call's Do method. -func (c *RegionTargetHttpsProxiesSetUrlMapCall) Context(ctx context.Context) *RegionTargetHttpsProxiesSetUrlMapCall { +func (c *RegionNotificationEndpointsAggregatedListCall) Context(ctx context.Context) *RegionNotificationEndpointsAggregatedListCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *RegionTargetHttpsProxiesSetUrlMapCall) Header() http.Header { +func (c *RegionNotificationEndpointsAggregatedListCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *RegionTargetHttpsProxiesSetUrlMapCall) doRequest(alt string) (*http.Response, error) { - reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) - var body io.Reader = nil - body, err := googleapi.WithoutDataWrapper.JSONReader(c.urlmapreference) - if err != nil { - return nil, err +func (c *RegionNotificationEndpointsAggregatedListCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) + if c.ifNoneMatch_ != "" { + reqHeaders.Set("If-None-Match", c.ifNoneMatch_) } c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/targetHttpsProxies/{targetHttpsProxy}/setUrlMap") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/aggregated/notificationEndpoints") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("POST", urls, body) + req, err := http.NewRequest("GET", urls, nil) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "region": c.region, - "targetHttpsProxy": c.targetHttpsProxy, + "project": c.project, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.regionNotificationEndpoints.aggregatedList", "request", internallog.HTTPRequest(req, nil)) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.regionTargetHttpsProxies.setUrlMap" call. +// Do executes the "compute.regionNotificationEndpoints.aggregatedList" call. // 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 *RegionTargetHttpsProxiesSetUrlMapCall) Do(opts ...googleapi.CallOption) (*Operation, error) { +// *NotificationEndpointAggregatedList.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 *RegionNotificationEndpointsAggregatedListCall) Do(opts ...googleapi.CallOption) (*NotificationEndpointAggregatedList, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -20149,53 +22038,83 @@ func (c *RegionTargetHttpsProxiesSetUrlMapCall) Do(opts ...googleapi.CallOption) if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } - ret := &Operation{ + ret := &NotificationEndpointAggregatedList{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.regionNotificationEndpoints.aggregatedList", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type RegionTargetTcpProxiesDeleteCall struct { - s *Service - project string - region string - targetTcpProxy string - urlParams_ gensupport.URLParams - ctx_ context.Context - header_ http.Header +// 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 *RegionNotificationEndpointsAggregatedListCall) Pages(ctx context.Context, f func(*NotificationEndpointAggregatedList) error) error { + c.ctx_ = ctx + defer c.PageToken(c.urlParams_.Get("pageToken")) + 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) + } } -// Delete: Deletes the specified TargetTcpProxy resource. +type RegionNotificationEndpointsDeleteCall struct { + s *Service + project string + region string + notificationEndpoint string + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header +} + +// Delete: Deletes the specified NotificationEndpoint in the given region // +// - notificationEndpoint: Name of the NotificationEndpoint resource to delete. // - project: Project ID for this request. // - region: Name of the region scoping this request. -// - targetTcpProxy: Name of the TargetTcpProxy resource to delete. -func (r *RegionTargetTcpProxiesService) Delete(project string, region string, targetTcpProxy string) *RegionTargetTcpProxiesDeleteCall { - c := &RegionTargetTcpProxiesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)} +func (r *RegionNotificationEndpointsService) Delete(project string, region string, notificationEndpoint string) *RegionNotificationEndpointsDeleteCall { + c := &RegionNotificationEndpointsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project c.region = region - c.targetTcpProxy = targetTcpProxy + c.notificationEndpoint = notificationEndpoint 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 *RegionTargetTcpProxiesDeleteCall) RequestId(requestId string) *RegionTargetTcpProxiesDeleteCall { +// 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 *RegionNotificationEndpointsDeleteCall) RequestId(requestId string) *RegionNotificationEndpointsDeleteCall { c.urlParams_.Set("requestId", requestId) return c } @@ -20203,52 +22122,52 @@ func (c *RegionTargetTcpProxiesDeleteCall) RequestId(requestId string) *RegionTa // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *RegionTargetTcpProxiesDeleteCall) Fields(s ...googleapi.Field) *RegionTargetTcpProxiesDeleteCall { +func (c *RegionNotificationEndpointsDeleteCall) Fields(s ...googleapi.Field) *RegionNotificationEndpointsDeleteCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } // Context sets the context to be used in this call's Do method. -func (c *RegionTargetTcpProxiesDeleteCall) Context(ctx context.Context) *RegionTargetTcpProxiesDeleteCall { +func (c *RegionNotificationEndpointsDeleteCall) Context(ctx context.Context) *RegionNotificationEndpointsDeleteCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *RegionTargetTcpProxiesDeleteCall) Header() http.Header { +func (c *RegionNotificationEndpointsDeleteCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *RegionTargetTcpProxiesDeleteCall) doRequest(alt string) (*http.Response, error) { +func (c *RegionNotificationEndpointsDeleteCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) - var body io.Reader = nil c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/targetTcpProxies/{targetTcpProxy}") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/notificationEndpoints/{notificationEndpoint}") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("DELETE", urls, body) + req, err := http.NewRequest("DELETE", urls, nil) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "region": c.region, - "targetTcpProxy": c.targetTcpProxy, + "project": c.project, + "region": c.region, + "notificationEndpoint": c.notificationEndpoint, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.regionNotificationEndpoints.delete", "request", internallog.HTTPRequest(req, nil)) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.regionTargetTcpProxies.delete" call. +// Do executes the "compute.regionNotificationEndpoints.delete" call. // 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 *RegionTargetTcpProxiesDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) { +func (c *RegionNotificationEndpointsDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -20274,40 +22193,43 @@ func (c *RegionTargetTcpProxiesDeleteCall) Do(opts ...googleapi.CallOption) (*Op }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.regionNotificationEndpoints.delete", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type RegionTargetTcpProxiesGetCall struct { - s *Service - project string - region string - targetTcpProxy string - urlParams_ gensupport.URLParams - ifNoneMatch_ string - ctx_ context.Context - header_ http.Header +type RegionNotificationEndpointsGetCall struct { + s *Service + project string + region string + notificationEndpoint string + urlParams_ gensupport.URLParams + ifNoneMatch_ string + ctx_ context.Context + header_ http.Header } -// Get: Returns the specified TargetTcpProxy resource. +// Get: Returns the specified NotificationEndpoint resource in the given +// region. // +// - notificationEndpoint: Name of the NotificationEndpoint resource to return. // - project: Project ID for this request. // - region: Name of the region scoping this request. -// - targetTcpProxy: Name of the TargetTcpProxy resource to return. -func (r *RegionTargetTcpProxiesService) Get(project string, region string, targetTcpProxy string) *RegionTargetTcpProxiesGetCall { - c := &RegionTargetTcpProxiesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)} +func (r *RegionNotificationEndpointsService) Get(project string, region string, notificationEndpoint string) *RegionNotificationEndpointsGetCall { + c := &RegionNotificationEndpointsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project c.region = region - c.targetTcpProxy = targetTcpProxy + c.notificationEndpoint = notificationEndpoint return c } // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *RegionTargetTcpProxiesGetCall) Fields(s ...googleapi.Field) *RegionTargetTcpProxiesGetCall { +func (c *RegionNotificationEndpointsGetCall) Fields(s ...googleapi.Field) *RegionNotificationEndpointsGetCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } @@ -20315,55 +22237,56 @@ func (c *RegionTargetTcpProxiesGetCall) Fields(s ...googleapi.Field) *RegionTarg // IfNoneMatch sets an 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. -func (c *RegionTargetTcpProxiesGetCall) IfNoneMatch(entityTag string) *RegionTargetTcpProxiesGetCall { +func (c *RegionNotificationEndpointsGetCall) IfNoneMatch(entityTag string) *RegionNotificationEndpointsGetCall { c.ifNoneMatch_ = entityTag return c } // Context sets the context to be used in this call's Do method. -func (c *RegionTargetTcpProxiesGetCall) Context(ctx context.Context) *RegionTargetTcpProxiesGetCall { +func (c *RegionNotificationEndpointsGetCall) Context(ctx context.Context) *RegionNotificationEndpointsGetCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *RegionTargetTcpProxiesGetCall) Header() http.Header { +func (c *RegionNotificationEndpointsGetCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *RegionTargetTcpProxiesGetCall) doRequest(alt string) (*http.Response, error) { +func (c *RegionNotificationEndpointsGetCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) if c.ifNoneMatch_ != "" { reqHeaders.Set("If-None-Match", c.ifNoneMatch_) } - var body io.Reader = nil c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/targetTcpProxies/{targetTcpProxy}") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/notificationEndpoints/{notificationEndpoint}") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("GET", urls, body) + req, err := http.NewRequest("GET", urls, nil) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "region": c.region, - "targetTcpProxy": c.targetTcpProxy, + "project": c.project, + "region": c.region, + "notificationEndpoint": c.notificationEndpoint, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.regionNotificationEndpoints.get", "request", internallog.HTTPRequest(req, nil)) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.regionTargetTcpProxies.get" call. +// Do executes the "compute.regionNotificationEndpoints.get" call. // Any non-2xx status code is an error. Response headers are in either -// *TargetTcpProxy.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 *RegionTargetTcpProxiesGetCall) Do(opts ...googleapi.CallOption) (*TargetTcpProxy, error) { +// *NotificationEndpoint.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 *RegionNotificationEndpointsGetCall) Do(opts ...googleapi.CallOption) (*NotificationEndpoint, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -20382,53 +22305,63 @@ func (c *RegionTargetTcpProxiesGetCall) Do(opts ...googleapi.CallOption) (*Targe if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } - ret := &TargetTcpProxy{ + ret := &NotificationEndpoint{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.regionNotificationEndpoints.get", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type RegionTargetTcpProxiesInsertCall struct { - s *Service - project string - region string - targettcpproxy *TargetTcpProxy - urlParams_ gensupport.URLParams - ctx_ context.Context - header_ http.Header +type RegionNotificationEndpointsInsertCall struct { + s *Service + project string + region string + notificationendpoint *NotificationEndpoint + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header } -// Insert: Creates a TargetTcpProxy resource in the specified project and -// region using the data included in the request. +// Insert: Create a NotificationEndpoint in the specified project in the given +// region +// using the parameters that are included in the request. // // - project: Project ID for this request. // - region: Name of the region scoping this request. -func (r *RegionTargetTcpProxiesService) Insert(project string, region string, targettcpproxy *TargetTcpProxy) *RegionTargetTcpProxiesInsertCall { - c := &RegionTargetTcpProxiesInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)} +func (r *RegionNotificationEndpointsService) Insert(project string, region string, notificationendpoint *NotificationEndpoint) *RegionNotificationEndpointsInsertCall { + c := &RegionNotificationEndpointsInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project c.region = region - c.targettcpproxy = targettcpproxy + c.notificationendpoint = notificationendpoint 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 *RegionTargetTcpProxiesInsertCall) RequestId(requestId string) *RegionTargetTcpProxiesInsertCall { +// 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 *RegionNotificationEndpointsInsertCall) RequestId(requestId string) *RegionNotificationEndpointsInsertCall { c.urlParams_.Set("requestId", requestId) return c } @@ -20436,36 +22369,35 @@ func (c *RegionTargetTcpProxiesInsertCall) RequestId(requestId string) *RegionTa // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *RegionTargetTcpProxiesInsertCall) Fields(s ...googleapi.Field) *RegionTargetTcpProxiesInsertCall { +func (c *RegionNotificationEndpointsInsertCall) Fields(s ...googleapi.Field) *RegionNotificationEndpointsInsertCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } // Context sets the context to be used in this call's Do method. -func (c *RegionTargetTcpProxiesInsertCall) Context(ctx context.Context) *RegionTargetTcpProxiesInsertCall { +func (c *RegionNotificationEndpointsInsertCall) Context(ctx context.Context) *RegionNotificationEndpointsInsertCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *RegionTargetTcpProxiesInsertCall) Header() http.Header { +func (c *RegionNotificationEndpointsInsertCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *RegionTargetTcpProxiesInsertCall) doRequest(alt string) (*http.Response, error) { +func (c *RegionNotificationEndpointsInsertCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) - var body io.Reader = nil - body, err := googleapi.WithoutDataWrapper.JSONReader(c.targettcpproxy) + body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.notificationendpoint) if err != nil { return nil, err } c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/targetTcpProxies") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/notificationEndpoints") urls += "?" + c.urlParams_.Encode() req, err := http.NewRequest("POST", urls, body) if err != nil { @@ -20476,15 +22408,16 @@ func (c *RegionTargetTcpProxiesInsertCall) doRequest(alt string) (*http.Response "project": c.project, "region": c.region, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.regionNotificationEndpoints.insert", "request", internallog.HTTPRequest(req, body.Bytes())) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.regionTargetTcpProxies.insert" call. +// Do executes the "compute.regionNotificationEndpoints.insert" call. // 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 *RegionTargetTcpProxiesInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) { +func (c *RegionNotificationEndpointsInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -20510,13 +22443,15 @@ func (c *RegionTargetTcpProxiesInsertCall) Do(opts ...googleapi.CallOption) (*Op }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.regionNotificationEndpoints.insert", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type RegionTargetTcpProxiesListCall struct { +type RegionNotificationEndpointsListCall struct { s *Service project string region string @@ -20526,92 +22461,141 @@ type RegionTargetTcpProxiesListCall struct { header_ http.Header } -// List: Retrieves a list of TargetTcpProxy resources available to the -// specified project in a given region. +// List: Lists the NotificationEndpoints for a project in the given region. // // - project: Project ID for this request. // - region: Name of the region scoping this request. -func (r *RegionTargetTcpProxiesService) List(project string, region string) *RegionTargetTcpProxiesListCall { - c := &RegionTargetTcpProxiesListCall{s: r.s, urlParams_: make(gensupport.URLParams)} +func (r *RegionNotificationEndpointsService) List(project string, region string) *RegionNotificationEndpointsListCall { + c := &RegionNotificationEndpointsListCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project c.region = region return c } // Filter sets the optional parameter "filter": A filter expression that -// filters resources listed in the response. Most Compute resources support two -// types of filter expressions: expressions that support regular expressions -// and expressions that follow API improvement proposal AIP-160. These two -// types of filter expressions cannot be mixed in one request. If you want to -// use AIP-160, your expression must specify the field name, an operator, and -// the value that you want to use for filtering. The value must be a string, a -// number, or a boolean. The 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`. The `:*` comparison can be used to test whether a key has -// been defined. For example, to find all objects with `owner` label use: ``` -// labels.owner:* ``` 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) ``` If you want to use a regular -// expression, use the `eq` (equal) or `ne` (not equal) operator against a -// single un-parenthesized expression with or without quotes or against -// multiple parenthesized expressions. Examples: `fieldname eq unquoted -// literal` `fieldname eq 'single quoted literal'` `fieldname eq "double quoted -// literal" `(fieldname1 eq literal) (fieldname2 ne "literal")` The literal -// value is interpreted as a regular expression using Google RE2 library -// syntax. The literal value must match the entire field. For example, to -// filter for instances that do not end with name "instance", you would use -// `name ne .*instance`. You cannot combine constraints on multiple fields -// using regular expressions. -func (c *RegionTargetTcpProxiesListCall) Filter(filter string) *RegionTargetTcpProxiesListCall { +// filters resources listed in the response. Most +// Compute resources support two types of filter expressions: +// expressions that support regular expressions and expressions that follow +// API improvement proposal AIP-160. +// These two types of filter expressions cannot be mixed in one request. +// +// If you want to use AIP-160, your expression must specify the field name, +// an +// operator, and the value that you want to use for filtering. The value +// must be a string, a number, or a boolean. The 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`. +// +// The `:*` comparison can be used to test whether a key has been defined. +// For example, to find all objects with `owner` label +// use: +// ``` +// labels.owner:* +// ``` +// +// 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 onresource 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) +// ``` +// +// If you want to use a regular expression, use the `eq` (equal) or `ne` +// (not equal) operator against a single un-parenthesized expression with +// or +// without quotes or against multiple parenthesized expressions. +// Examples: +// +// `fieldname eq unquoted literal` +// `fieldname eq 'single quoted literal'` +// `fieldname eq "double quoted literal" +// `(fieldname1 eq literal) (fieldname2 ne "literal")` +// +// The literal value is interpreted as a regular expression using GoogleRE2 +// library syntax. +// The literal value must match the entire field. +// +// For example, to filter for instances that do not end with name +// "instance", +// you would use `name ne .*instance`. +// +// You cannot combine constraints on multiple fields using regular +// expressions. +func (c *RegionNotificationEndpointsListCall) Filter(filter string) *RegionNotificationEndpointsListCall { 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 *RegionTargetTcpProxiesListCall) MaxResults(maxResults int64) *RegionTargetTcpProxiesListCall { +// 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 *RegionNotificationEndpointsListCall) MaxResults(maxResults int64) *RegionNotificationEndpointsListCall { 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 *RegionTargetTcpProxiesListCall) OrderBy(orderBy string) *RegionTargetTcpProxiesListCall { +// 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 *RegionNotificationEndpointsListCall) OrderBy(orderBy string) *RegionNotificationEndpointsListCall { 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 *RegionTargetTcpProxiesListCall) PageToken(pageToken string) *RegionTargetTcpProxiesListCall { +// use. Set `pageToken` to the +// `nextPageToken` returned by a previous list request to get +// the next page of results. +func (c *RegionNotificationEndpointsListCall) PageToken(pageToken string) *RegionNotificationEndpointsListCall { c.urlParams_.Set("pageToken", pageToken) return c } // ReturnPartialSuccess sets the optional parameter "returnPartialSuccess": -// Opt-in for partial success behavior which provides partial results in case -// of failure. The default value is false. For example, when partial success -// behavior is enabled, aggregatedList for a single zone scope either returns -// all resources in the zone or no resources, with an error code. -func (c *RegionTargetTcpProxiesListCall) ReturnPartialSuccess(returnPartialSuccess bool) *RegionTargetTcpProxiesListCall { +// Opt-in for partial success behavior which provides partial results in +// case +// of failure. The default value is false. +// +// For example, when partial success behavior is enabled, aggregatedList for +// a +// single zone scope either returns all resources in the zone or no +// resources, +// with an error code. +func (c *RegionNotificationEndpointsListCall) ReturnPartialSuccess(returnPartialSuccess bool) *RegionNotificationEndpointsListCall { c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess)) return c } @@ -20619,7 +22603,7 @@ func (c *RegionTargetTcpProxiesListCall) ReturnPartialSuccess(returnPartialSucce // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *RegionTargetTcpProxiesListCall) Fields(s ...googleapi.Field) *RegionTargetTcpProxiesListCall { +func (c *RegionNotificationEndpointsListCall) Fields(s ...googleapi.Field) *RegionNotificationEndpointsListCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } @@ -20627,37 +22611,36 @@ func (c *RegionTargetTcpProxiesListCall) Fields(s ...googleapi.Field) *RegionTar // IfNoneMatch sets an 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. -func (c *RegionTargetTcpProxiesListCall) IfNoneMatch(entityTag string) *RegionTargetTcpProxiesListCall { +func (c *RegionNotificationEndpointsListCall) IfNoneMatch(entityTag string) *RegionNotificationEndpointsListCall { c.ifNoneMatch_ = entityTag return c } // Context sets the context to be used in this call's Do method. -func (c *RegionTargetTcpProxiesListCall) Context(ctx context.Context) *RegionTargetTcpProxiesListCall { +func (c *RegionNotificationEndpointsListCall) Context(ctx context.Context) *RegionNotificationEndpointsListCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *RegionTargetTcpProxiesListCall) Header() http.Header { +func (c *RegionNotificationEndpointsListCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *RegionTargetTcpProxiesListCall) doRequest(alt string) (*http.Response, error) { +func (c *RegionNotificationEndpointsListCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) if c.ifNoneMatch_ != "" { reqHeaders.Set("If-None-Match", c.ifNoneMatch_) } - var body io.Reader = nil c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/targetTcpProxies") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/notificationEndpoints") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("GET", urls, body) + req, err := http.NewRequest("GET", urls, nil) if err != nil { return nil, err } @@ -20666,16 +22649,17 @@ func (c *RegionTargetTcpProxiesListCall) doRequest(alt string) (*http.Response, "project": c.project, "region": c.region, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.regionNotificationEndpoints.list", "request", internallog.HTTPRequest(req, nil)) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.regionTargetTcpProxies.list" call. +// Do executes the "compute.regionNotificationEndpoints.list" call. // Any non-2xx status code is an error. Response headers are in either -// *TargetTcpProxyList.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 *RegionTargetTcpProxiesListCall) Do(opts ...googleapi.CallOption) (*TargetTcpProxyList, error) { +// *NotificationEndpointList.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 *RegionNotificationEndpointsListCall) Do(opts ...googleapi.CallOption) (*NotificationEndpointList, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -20694,23 +22678,25 @@ func (c *RegionTargetTcpProxiesListCall) Do(opts ...googleapi.CallOption) (*Targ if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } - ret := &TargetTcpProxyList{ + ret := &NotificationEndpointList{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.regionNotificationEndpoints.list", "response", internallog.HTTPResponse(res, b)) return ret, nil } // 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 *RegionTargetTcpProxiesListCall) Pages(ctx context.Context, f func(*TargetTcpProxyList) error) error { +func (c *RegionNotificationEndpointsListCall) Pages(ctx context.Context, f func(*NotificationEndpointList) error) error { c.ctx_ = ctx defer c.PageToken(c.urlParams_.Get("pageToken")) for { @@ -20728,85 +22714,86 @@ func (c *RegionTargetTcpProxiesListCall) Pages(ctx context.Context, f func(*Targ } } -type RegionUrlMapsDeleteCall struct { - s *Service - project string - region string - urlMap string - urlParams_ gensupport.URLParams - ctx_ context.Context - header_ http.Header +type RegionNotificationEndpointsTestIamPermissionsCall struct { + s *Service + project string + region string + resource string + testpermissionsrequest *TestPermissionsRequest + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header } -// Delete: Deletes the specified UrlMap resource. +// TestIamPermissions: Returns permissions that a caller has on the specified +// resource. // // - project: Project ID for this request. -// - region: Name of the region scoping this request. -// - urlMap: Name of the UrlMap resource to delete. -func (r *RegionUrlMapsService) Delete(project string, region string, urlMap string) *RegionUrlMapsDeleteCall { - c := &RegionUrlMapsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)} +// - region: The name of the region for this request. +// - resource: Name or id of the resource for this request. +func (r *RegionNotificationEndpointsService) TestIamPermissions(project string, region string, resource string, testpermissionsrequest *TestPermissionsRequest) *RegionNotificationEndpointsTestIamPermissionsCall { + c := &RegionNotificationEndpointsTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project c.region = region - c.urlMap = urlMap - return c -} - -// RequestId sets the optional parameter "requestId": begin_interface: -// MixerMutationRequestBuilder Request ID to support idempotency. -func (c *RegionUrlMapsDeleteCall) RequestId(requestId string) *RegionUrlMapsDeleteCall { - c.urlParams_.Set("requestId", requestId) + c.resource = resource + c.testpermissionsrequest = testpermissionsrequest return c } // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *RegionUrlMapsDeleteCall) Fields(s ...googleapi.Field) *RegionUrlMapsDeleteCall { +func (c *RegionNotificationEndpointsTestIamPermissionsCall) Fields(s ...googleapi.Field) *RegionNotificationEndpointsTestIamPermissionsCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } // Context sets the context to be used in this call's Do method. -func (c *RegionUrlMapsDeleteCall) Context(ctx context.Context) *RegionUrlMapsDeleteCall { +func (c *RegionNotificationEndpointsTestIamPermissionsCall) Context(ctx context.Context) *RegionNotificationEndpointsTestIamPermissionsCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *RegionUrlMapsDeleteCall) Header() http.Header { +func (c *RegionNotificationEndpointsTestIamPermissionsCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *RegionUrlMapsDeleteCall) doRequest(alt string) (*http.Response, error) { - reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) - var body io.Reader = nil +func (c *RegionNotificationEndpointsTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) + body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.testpermissionsrequest) + if err != nil { + return nil, err + } c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/urlMaps/{urlMap}") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/notificationEndpoints/{resource}/testIamPermissions") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("DELETE", urls, body) + req, err := http.NewRequest("POST", urls, body) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "region": c.region, - "urlMap": c.urlMap, + "project": c.project, + "region": c.region, + "resource": c.resource, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.regionNotificationEndpoints.testIamPermissions", "request", internallog.HTTPRequest(req, body.Bytes())) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.regionUrlMaps.delete" call. +// Do executes the "compute.regionNotificationEndpoints.testIamPermissions" call. // 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 *RegionUrlMapsDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) { +// *TestPermissionsResponse.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 *RegionNotificationEndpointsTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -20825,216 +22812,192 @@ func (c *RegionUrlMapsDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } - ret := &Operation{ + ret := &TestPermissionsResponse{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.regionNotificationEndpoints.testIamPermissions", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type RegionUrlMapsGetCall struct { - s *Service - project string - region string - urlMap string - urlParams_ gensupport.URLParams - ifNoneMatch_ string - ctx_ context.Context - header_ http.Header +type RegionOperationsDeleteCall struct { + s *Service + project string + region string + operationid string + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header } -// Get: Returns the specified UrlMap resource. +// Delete: Deletes the specified region-specific Operations resource. // +// - operation: Name of the Operations resource to delete, or its unique +// numeric +// +// identifier. // - project: Project ID for this request. -// - region: Name of the region scoping this request. -// - urlMap: Name of the UrlMap resource to return. -func (r *RegionUrlMapsService) Get(project string, region string, urlMap string) *RegionUrlMapsGetCall { - c := &RegionUrlMapsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)} +// - region: Name of the region for this request. +func (r *RegionOperationsService) Delete(project string, region string, operationid string) *RegionOperationsDeleteCall { + c := &RegionOperationsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project c.region = region - c.urlMap = urlMap + c.operationid = operationid return c } // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *RegionUrlMapsGetCall) Fields(s ...googleapi.Field) *RegionUrlMapsGetCall { +func (c *RegionOperationsDeleteCall) Fields(s ...googleapi.Field) *RegionOperationsDeleteCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } -// IfNoneMatch sets an 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. -func (c *RegionUrlMapsGetCall) IfNoneMatch(entityTag string) *RegionUrlMapsGetCall { - c.ifNoneMatch_ = entityTag - return c -} - // Context sets the context to be used in this call's Do method. -func (c *RegionUrlMapsGetCall) Context(ctx context.Context) *RegionUrlMapsGetCall { +func (c *RegionOperationsDeleteCall) Context(ctx context.Context) *RegionOperationsDeleteCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *RegionUrlMapsGetCall) Header() http.Header { +func (c *RegionOperationsDeleteCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *RegionUrlMapsGetCall) doRequest(alt string) (*http.Response, error) { +func (c *RegionOperationsDeleteCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) - if c.ifNoneMatch_ != "" { - reqHeaders.Set("If-None-Match", c.ifNoneMatch_) - } - var body io.Reader = nil c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/urlMaps/{urlMap}") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/operations/{operation}") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("GET", urls, body) + req, err := http.NewRequest("DELETE", urls, nil) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "region": c.region, - "urlMap": c.urlMap, + "project": c.project, + "region": c.region, + "operation": c.operationid, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.regionOperations.delete", "request", internallog.HTTPRequest(req, nil)) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.regionUrlMaps.get" call. -// Any non-2xx status code is an error. Response headers are in either -// *UrlMap.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 *RegionUrlMapsGetCall) Do(opts ...googleapi.CallOption) (*UrlMap, error) { +// Do executes the "compute.regionOperations.delete" call. +func (c *RegionOperationsDeleteCall) Do(opts ...googleapi.CallOption) 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, gensupport.WrapError(&googleapi.Error{ - Code: res.StatusCode, - Header: res.Header, - }) - } if err != nil { - return nil, err + return err } defer googleapi.CloseBody(res) if err := googleapi.CheckResponse(res); err != nil { - return nil, gensupport.WrapError(err) - } - ret := &UrlMap{ - ServerResponse: googleapi.ServerResponse{ - Header: res.Header, - HTTPStatusCode: res.StatusCode, - }, - } - target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { - return nil, err + return gensupport.WrapError(err) } - return ret, nil + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.regionOperations.delete", "response", internallog.HTTPResponse(res, nil)) + return nil } -type RegionUrlMapsInsertCall struct { - s *Service - project string - region string - urlmap *UrlMap - urlParams_ gensupport.URLParams - ctx_ context.Context - header_ http.Header +type RegionOperationsGetCall struct { + s *Service + project string + region string + operationid string + urlParams_ gensupport.URLParams + ifNoneMatch_ string + ctx_ context.Context + header_ http.Header } -// Insert: Creates a UrlMap resource in the specified project using the data -// included in the request. +// Get: Retrieves the specified region-specific Operations resource. // +// - operation: Name of the Operations resource to return, or its unique +// numeric +// +// identifier. // - project: Project ID for this request. -// - region: Name of the region scoping this request. -func (r *RegionUrlMapsService) Insert(project string, region string, urlmap *UrlMap) *RegionUrlMapsInsertCall { - c := &RegionUrlMapsInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)} +// - region: Name of the region for this request. +func (r *RegionOperationsService) Get(project string, region string, operationid string) *RegionOperationsGetCall { + c := &RegionOperationsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project c.region = region - c.urlmap = urlmap - return c -} - -// RequestId sets the optional parameter "requestId": begin_interface: -// MixerMutationRequestBuilder Request ID to support idempotency. -func (c *RegionUrlMapsInsertCall) RequestId(requestId string) *RegionUrlMapsInsertCall { - c.urlParams_.Set("requestId", requestId) + c.operationid = operationid return c } // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *RegionUrlMapsInsertCall) Fields(s ...googleapi.Field) *RegionUrlMapsInsertCall { +func (c *RegionOperationsGetCall) Fields(s ...googleapi.Field) *RegionOperationsGetCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } +// IfNoneMatch sets an 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. +func (c *RegionOperationsGetCall) IfNoneMatch(entityTag string) *RegionOperationsGetCall { + c.ifNoneMatch_ = entityTag + return c +} + // Context sets the context to be used in this call's Do method. -func (c *RegionUrlMapsInsertCall) Context(ctx context.Context) *RegionUrlMapsInsertCall { +func (c *RegionOperationsGetCall) Context(ctx context.Context) *RegionOperationsGetCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *RegionUrlMapsInsertCall) Header() http.Header { +func (c *RegionOperationsGetCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *RegionUrlMapsInsertCall) doRequest(alt string) (*http.Response, error) { - reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) - var body io.Reader = nil - body, err := googleapi.WithoutDataWrapper.JSONReader(c.urlmap) - if err != nil { - return nil, err +func (c *RegionOperationsGetCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) + if c.ifNoneMatch_ != "" { + reqHeaders.Set("If-None-Match", c.ifNoneMatch_) } c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/urlMaps") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/operations/{operation}") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("POST", urls, body) + req, err := http.NewRequest("GET", urls, nil) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "region": c.region, + "project": c.project, + "region": c.region, + "operation": c.operationid, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.regionOperations.get", "request", internallog.HTTPRequest(req, nil)) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.regionUrlMaps.insert" call. +// Do executes the "compute.regionOperations.get" call. // 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 *RegionUrlMapsInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) { +func (c *RegionOperationsGetCall) Do(opts ...googleapi.CallOption) (*Operation, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -21060,13 +23023,15 @@ func (c *RegionUrlMapsInsertCall) Do(opts ...googleapi.CallOption) (*Operation, }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.regionOperations.get", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type RegionUrlMapsListCall struct { +type RegionOperationsListCall struct { s *Service project string region string @@ -21076,92 +23041,142 @@ type RegionUrlMapsListCall struct { header_ http.Header } -// List: Retrieves the list of UrlMap resources available to the specified -// project in the specified region. +// List: Retrieves a list of Operation resources contained within +// the specified region. // // - project: Project ID for this request. -// - region: Name of the region scoping this request. -func (r *RegionUrlMapsService) List(project string, region string) *RegionUrlMapsListCall { - c := &RegionUrlMapsListCall{s: r.s, urlParams_: make(gensupport.URLParams)} +// - region: Name of the region for this request. +func (r *RegionOperationsService) List(project string, region string) *RegionOperationsListCall { + c := &RegionOperationsListCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project c.region = region return c } // Filter sets the optional parameter "filter": A filter expression that -// filters resources listed in the response. Most Compute resources support two -// types of filter expressions: expressions that support regular expressions -// and expressions that follow API improvement proposal AIP-160. These two -// types of filter expressions cannot be mixed in one request. If you want to -// use AIP-160, your expression must specify the field name, an operator, and -// the value that you want to use for filtering. The value must be a string, a -// number, or a boolean. The 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`. The `:*` comparison can be used to test whether a key has -// been defined. For example, to find all objects with `owner` label use: ``` -// labels.owner:* ``` 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) ``` If you want to use a regular -// expression, use the `eq` (equal) or `ne` (not equal) operator against a -// single un-parenthesized expression with or without quotes or against -// multiple parenthesized expressions. Examples: `fieldname eq unquoted -// literal` `fieldname eq 'single quoted literal'` `fieldname eq "double quoted -// literal" `(fieldname1 eq literal) (fieldname2 ne "literal")` The literal -// value is interpreted as a regular expression using Google RE2 library -// syntax. The literal value must match the entire field. For example, to -// filter for instances that do not end with name "instance", you would use -// `name ne .*instance`. You cannot combine constraints on multiple fields -// using regular expressions. -func (c *RegionUrlMapsListCall) Filter(filter string) *RegionUrlMapsListCall { +// filters resources listed in the response. Most +// Compute resources support two types of filter expressions: +// expressions that support regular expressions and expressions that follow +// API improvement proposal AIP-160. +// These two types of filter expressions cannot be mixed in one request. +// +// If you want to use AIP-160, your expression must specify the field name, +// an +// operator, and the value that you want to use for filtering. The value +// must be a string, a number, or a boolean. The 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`. +// +// The `:*` comparison can be used to test whether a key has been defined. +// For example, to find all objects with `owner` label +// use: +// ``` +// labels.owner:* +// ``` +// +// 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 onresource 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) +// ``` +// +// If you want to use a regular expression, use the `eq` (equal) or `ne` +// (not equal) operator against a single un-parenthesized expression with +// or +// without quotes or against multiple parenthesized expressions. +// Examples: +// +// `fieldname eq unquoted literal` +// `fieldname eq 'single quoted literal'` +// `fieldname eq "double quoted literal" +// `(fieldname1 eq literal) (fieldname2 ne "literal")` +// +// The literal value is interpreted as a regular expression using GoogleRE2 +// library syntax. +// The literal value must match the entire field. +// +// For example, to filter for instances that do not end with name +// "instance", +// you would use `name ne .*instance`. +// +// You cannot combine constraints on multiple fields using regular +// expressions. +func (c *RegionOperationsListCall) Filter(filter string) *RegionOperationsListCall { 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 *RegionUrlMapsListCall) MaxResults(maxResults int64) *RegionUrlMapsListCall { +// 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 *RegionOperationsListCall) MaxResults(maxResults int64) *RegionOperationsListCall { 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 *RegionUrlMapsListCall) OrderBy(orderBy string) *RegionUrlMapsListCall { +// 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 *RegionOperationsListCall) OrderBy(orderBy string) *RegionOperationsListCall { 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 *RegionUrlMapsListCall) PageToken(pageToken string) *RegionUrlMapsListCall { +// use. Set `pageToken` to the +// `nextPageToken` returned by a previous list request to get +// the next page of results. +func (c *RegionOperationsListCall) PageToken(pageToken string) *RegionOperationsListCall { c.urlParams_.Set("pageToken", pageToken) return c } // ReturnPartialSuccess sets the optional parameter "returnPartialSuccess": -// Opt-in for partial success behavior which provides partial results in case -// of failure. The default value is false. For example, when partial success -// behavior is enabled, aggregatedList for a single zone scope either returns -// all resources in the zone or no resources, with an error code. -func (c *RegionUrlMapsListCall) ReturnPartialSuccess(returnPartialSuccess bool) *RegionUrlMapsListCall { +// Opt-in for partial success behavior which provides partial results in +// case +// of failure. The default value is false. +// +// For example, when partial success behavior is enabled, aggregatedList for +// a +// single zone scope either returns all resources in the zone or no +// resources, +// with an error code. +func (c *RegionOperationsListCall) ReturnPartialSuccess(returnPartialSuccess bool) *RegionOperationsListCall { c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess)) return c } @@ -21169,7 +23184,7 @@ func (c *RegionUrlMapsListCall) ReturnPartialSuccess(returnPartialSuccess bool) // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *RegionUrlMapsListCall) Fields(s ...googleapi.Field) *RegionUrlMapsListCall { +func (c *RegionOperationsListCall) Fields(s ...googleapi.Field) *RegionOperationsListCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } @@ -21177,37 +23192,36 @@ func (c *RegionUrlMapsListCall) Fields(s ...googleapi.Field) *RegionUrlMapsListC // IfNoneMatch sets an 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. -func (c *RegionUrlMapsListCall) IfNoneMatch(entityTag string) *RegionUrlMapsListCall { +func (c *RegionOperationsListCall) IfNoneMatch(entityTag string) *RegionOperationsListCall { c.ifNoneMatch_ = entityTag return c } // Context sets the context to be used in this call's Do method. -func (c *RegionUrlMapsListCall) Context(ctx context.Context) *RegionUrlMapsListCall { +func (c *RegionOperationsListCall) Context(ctx context.Context) *RegionOperationsListCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *RegionUrlMapsListCall) Header() http.Header { +func (c *RegionOperationsListCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *RegionUrlMapsListCall) doRequest(alt string) (*http.Response, error) { +func (c *RegionOperationsListCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) if c.ifNoneMatch_ != "" { reqHeaders.Set("If-None-Match", c.ifNoneMatch_) } - var body io.Reader = nil c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/urlMaps") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/operations") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("GET", urls, body) + req, err := http.NewRequest("GET", urls, nil) if err != nil { return nil, err } @@ -21216,15 +23230,16 @@ func (c *RegionUrlMapsListCall) doRequest(alt string) (*http.Response, error) { "project": c.project, "region": c.region, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.regionOperations.list", "request", internallog.HTTPRequest(req, nil)) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.regionUrlMaps.list" call. +// Do executes the "compute.regionOperations.list" call. // Any non-2xx status code is an error. Response headers are in either -// *UrlMapList.ServerResponse.Header or (if a response was returned at all) in -// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check +// *OperationList.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 *RegionUrlMapsListCall) Do(opts ...googleapi.CallOption) (*UrlMapList, error) { +func (c *RegionOperationsListCall) Do(opts ...googleapi.CallOption) (*OperationList, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -21243,23 +23258,25 @@ func (c *RegionUrlMapsListCall) Do(opts ...googleapi.CallOption) (*UrlMapList, e if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } - ret := &UrlMapList{ + ret := &OperationList{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.regionOperations.list", "response", internallog.HTTPResponse(res, b)) return ret, nil } // 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 *RegionUrlMapsListCall) Pages(ctx context.Context, f func(*UrlMapList) error) error { +func (c *RegionOperationsListCall) Pages(ctx context.Context, f func(*OperationList) error) error { c.ctx_ = ctx defer c.PageToken(c.urlParams_.Get("pageToken")) for { @@ -21277,93 +23294,103 @@ func (c *RegionUrlMapsListCall) Pages(ctx context.Context, f func(*UrlMapList) e } } -type RegionUrlMapsPatchCall struct { - s *Service - project string - region string - urlMap string - urlmap *UrlMap - urlParams_ gensupport.URLParams - ctx_ context.Context - header_ http.Header +type RegionOperationsWaitCall struct { + s *Service + project string + region string + operationid string + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header } -// Patch: Patches the specified UrlMap resource with the data included in the -// request. This method supports PATCH semantics and uses JSON merge patch -// format and processing rules. +// Wait: Waits for the specified Operation resource to return as `DONE` +// or for the request to approach the 2 minute deadline, and retrieves +// the +// specified Operation resource. This method differs from the +// `GET` method in that it waits for no more than the default +// deadline (2 minutes) and then returns the current state of the +// operation, +// which might be `DONE` or still in progress. +// +// This method is called on a best-effort basis. Specifically: +// +// - In uncommon cases, when the server is overloaded, the request might +// return before the default deadline is reached, or might return after +// +// zero +// +// seconds. +// - If the default deadline is reached, there is no guarantee that the +// operation is actually done when the method returns. Be prepared to // +// retry +// +// if the operation is not `DONE`. +// +// - operation: Name of the Operations resource to return, or its unique +// numeric +// +// identifier. // - project: Project ID for this request. -// - region: Name of the region scoping this request. -// - urlMap: Name of the UrlMap resource to patch. -func (r *RegionUrlMapsService) Patch(project string, region string, urlMap string, urlmap *UrlMap) *RegionUrlMapsPatchCall { - c := &RegionUrlMapsPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)} +// - region: Name of the region for this request. +func (r *RegionOperationsService) Wait(project string, region string, operationid string) *RegionOperationsWaitCall { + c := &RegionOperationsWaitCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project c.region = region - c.urlMap = urlMap - c.urlmap = urlmap - return c -} - -// RequestId sets the optional parameter "requestId": begin_interface: -// MixerMutationRequestBuilder Request ID to support idempotency. -func (c *RegionUrlMapsPatchCall) RequestId(requestId string) *RegionUrlMapsPatchCall { - c.urlParams_.Set("requestId", requestId) + c.operationid = operationid return c } // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *RegionUrlMapsPatchCall) Fields(s ...googleapi.Field) *RegionUrlMapsPatchCall { +func (c *RegionOperationsWaitCall) Fields(s ...googleapi.Field) *RegionOperationsWaitCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } // Context sets the context to be used in this call's Do method. -func (c *RegionUrlMapsPatchCall) Context(ctx context.Context) *RegionUrlMapsPatchCall { +func (c *RegionOperationsWaitCall) Context(ctx context.Context) *RegionOperationsWaitCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *RegionUrlMapsPatchCall) Header() http.Header { +func (c *RegionOperationsWaitCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *RegionUrlMapsPatchCall) doRequest(alt string) (*http.Response, error) { - reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) - var body io.Reader = nil - body, err := googleapi.WithoutDataWrapper.JSONReader(c.urlmap) - if err != nil { - return nil, err - } +func (c *RegionOperationsWaitCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/urlMaps/{urlMap}") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/operations/{operation}/wait") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("PATCH", urls, body) + req, err := http.NewRequest("POST", urls, nil) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "region": c.region, - "urlMap": c.urlMap, + "project": c.project, + "region": c.region, + "operation": c.operationid, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.regionOperations.wait", "request", internallog.HTTPRequest(req, nil)) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.regionUrlMaps.patch" call. +// Do executes the "compute.regionOperations.wait" call. // 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 *RegionUrlMapsPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) { +func (c *RegionOperationsWaitCall) Do(opts ...googleapi.CallOption) (*Operation, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -21389,98 +23416,99 @@ func (c *RegionUrlMapsPatchCall) Do(opts ...googleapi.CallOption) (*Operation, e }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.regionOperations.wait", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type RegionUrlMapsUpdateCall struct { - s *Service - project string - region string - urlMap string - urlmap *UrlMap - urlParams_ gensupport.URLParams - ctx_ context.Context - header_ http.Header +type RegionSecurityPoliciesAddRuleCall struct { + s *Service + project string + region string + securityPolicy string + securitypolicyrule *SecurityPolicyRule + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header } -// Update: Updates the specified UrlMap resource with the data included in the -// request. +// AddRule: Inserts a rule into a security policy. // // - project: Project ID for this request. // - region: Name of the region scoping this request. -// - urlMap: Name of the UrlMap resource to update. -func (r *RegionUrlMapsService) Update(project string, region string, urlMap string, urlmap *UrlMap) *RegionUrlMapsUpdateCall { - c := &RegionUrlMapsUpdateCall{s: r.s, urlParams_: make(gensupport.URLParams)} +// - securityPolicy: Name of the security policy to update. +func (r *RegionSecurityPoliciesService) AddRule(project string, region string, securityPolicy string, securitypolicyrule *SecurityPolicyRule) *RegionSecurityPoliciesAddRuleCall { + c := &RegionSecurityPoliciesAddRuleCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project c.region = region - c.urlMap = urlMap - c.urlmap = urlmap + c.securityPolicy = securityPolicy + c.securitypolicyrule = securitypolicyrule return c } -// RequestId sets the optional parameter "requestId": begin_interface: -// MixerMutationRequestBuilder Request ID to support idempotency. -func (c *RegionUrlMapsUpdateCall) RequestId(requestId string) *RegionUrlMapsUpdateCall { - c.urlParams_.Set("requestId", requestId) +// ValidateOnly sets the optional parameter "validateOnly": If true, the +// request will not be committed. +func (c *RegionSecurityPoliciesAddRuleCall) ValidateOnly(validateOnly bool) *RegionSecurityPoliciesAddRuleCall { + c.urlParams_.Set("validateOnly", fmt.Sprint(validateOnly)) return c } // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *RegionUrlMapsUpdateCall) Fields(s ...googleapi.Field) *RegionUrlMapsUpdateCall { +func (c *RegionSecurityPoliciesAddRuleCall) Fields(s ...googleapi.Field) *RegionSecurityPoliciesAddRuleCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } // Context sets the context to be used in this call's Do method. -func (c *RegionUrlMapsUpdateCall) Context(ctx context.Context) *RegionUrlMapsUpdateCall { +func (c *RegionSecurityPoliciesAddRuleCall) Context(ctx context.Context) *RegionSecurityPoliciesAddRuleCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *RegionUrlMapsUpdateCall) Header() http.Header { +func (c *RegionSecurityPoliciesAddRuleCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *RegionUrlMapsUpdateCall) doRequest(alt string) (*http.Response, error) { +func (c *RegionSecurityPoliciesAddRuleCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) - var body io.Reader = nil - body, err := googleapi.WithoutDataWrapper.JSONReader(c.urlmap) + body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.securitypolicyrule) if err != nil { return nil, err } c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/urlMaps/{urlMap}") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/securityPolicies/{securityPolicy}/addRule") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("PUT", urls, body) + req, err := http.NewRequest("POST", urls, body) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "region": c.region, - "urlMap": c.urlMap, + "project": c.project, + "region": c.region, + "securityPolicy": c.securityPolicy, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.regionSecurityPolicies.addRule", "request", internallog.HTTPRequest(req, body.Bytes())) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.regionUrlMaps.update" call. +// Do executes the "compute.regionSecurityPolicies.addRule" call. // 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 *RegionUrlMapsUpdateCall) Do(opts ...googleapi.CallOption) (*Operation, error) { +func (c *RegionSecurityPoliciesAddRuleCall) Do(opts ...googleapi.CallOption) (*Operation, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -21506,93 +23534,108 @@ func (c *RegionUrlMapsUpdateCall) Do(opts ...googleapi.CallOption) (*Operation, }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.regionSecurityPolicies.addRule", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type RegionUrlMapsValidateCall struct { - s *Service - project string - region string - urlMap string - regionurlmapsvalidaterequest *RegionUrlMapsValidateRequest - urlParams_ gensupport.URLParams - ctx_ context.Context - header_ http.Header +type RegionSecurityPoliciesDeleteCall struct { + s *Service + project string + region string + securityPolicy string + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header } -// Validate: Runs static validation for the UrlMap. In particular, the tests of -// the provided UrlMap will be run. Calling this method does NOT create the -// UrlMap. +// Delete: Deletes the specified policy. // // - project: Project ID for this request. // - region: Name of the region scoping this request. -// - urlMap: Name of the UrlMap resource to be validated as. -func (r *RegionUrlMapsService) Validate(project string, region string, urlMap string, regionurlmapsvalidaterequest *RegionUrlMapsValidateRequest) *RegionUrlMapsValidateCall { - c := &RegionUrlMapsValidateCall{s: r.s, urlParams_: make(gensupport.URLParams)} +// - securityPolicy: Name of the security policy to delete. +func (r *RegionSecurityPoliciesService) Delete(project string, region string, securityPolicy string) *RegionSecurityPoliciesDeleteCall { + c := &RegionSecurityPoliciesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project c.region = region - c.urlMap = urlMap - c.regionurlmapsvalidaterequest = regionurlmapsvalidaterequest + c.securityPolicy = securityPolicy + 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 *RegionSecurityPoliciesDeleteCall) RequestId(requestId string) *RegionSecurityPoliciesDeleteCall { + 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 // details. -func (c *RegionUrlMapsValidateCall) Fields(s ...googleapi.Field) *RegionUrlMapsValidateCall { +func (c *RegionSecurityPoliciesDeleteCall) Fields(s ...googleapi.Field) *RegionSecurityPoliciesDeleteCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } // Context sets the context to be used in this call's Do method. -func (c *RegionUrlMapsValidateCall) Context(ctx context.Context) *RegionUrlMapsValidateCall { +func (c *RegionSecurityPoliciesDeleteCall) Context(ctx context.Context) *RegionSecurityPoliciesDeleteCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *RegionUrlMapsValidateCall) Header() http.Header { +func (c *RegionSecurityPoliciesDeleteCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *RegionUrlMapsValidateCall) doRequest(alt string) (*http.Response, error) { - reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) - var body io.Reader = nil - body, err := googleapi.WithoutDataWrapper.JSONReader(c.regionurlmapsvalidaterequest) - if err != nil { - return nil, err - } +func (c *RegionSecurityPoliciesDeleteCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/urlMaps/{urlMap}/validate") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/securityPolicies/{securityPolicy}") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("POST", urls, body) + req, err := http.NewRequest("DELETE", urls, nil) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "region": c.region, - "urlMap": c.urlMap, + "project": c.project, + "region": c.region, + "securityPolicy": c.securityPolicy, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.regionSecurityPolicies.delete", "request", internallog.HTTPRequest(req, nil)) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.regionUrlMaps.validate" call. +// Do executes the "compute.regionSecurityPolicies.delete" call. // Any non-2xx status code is an error. Response headers are in either -// *UrlMapsValidateResponse.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 *RegionUrlMapsValidateCall) Do(opts ...googleapi.CallOption) (*UrlMapsValidateResponse, error) { +// *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 *RegionSecurityPoliciesDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -21611,123 +23654,49 @@ func (c *RegionUrlMapsValidateCall) Do(opts ...googleapi.CallOption) (*UrlMapsVa if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } - ret := &UrlMapsValidateResponse{ + ret := &Operation{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.regionSecurityPolicies.delete", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type RegionZonesListCall struct { - s *Service - project string - region string - urlParams_ gensupport.URLParams - ifNoneMatch_ string - ctx_ context.Context - header_ http.Header +type RegionSecurityPoliciesGetCall struct { + s *Service + project string + region string + securityPolicy string + urlParams_ gensupport.URLParams + ifNoneMatch_ string + ctx_ context.Context + header_ http.Header } -// List: Retrieves the list of Zone resources under the specific region -// available to the specified project. +// Get: List all of the ordered rules present in a single specified policy. // // - project: Project ID for this request. -// - region: Region for this request. -func (r *RegionZonesService) List(project string, region string) *RegionZonesListCall { - c := &RegionZonesListCall{s: r.s, urlParams_: make(gensupport.URLParams)} +// - region: Name of the region scoping this request. +// - securityPolicy: Name of the security policy to get. +func (r *RegionSecurityPoliciesService) Get(project string, region string, securityPolicy string) *RegionSecurityPoliciesGetCall { + c := &RegionSecurityPoliciesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project c.region = region - return c -} - -// Filter sets the optional parameter "filter": A filter expression that -// filters resources listed in the response. Most Compute resources support two -// types of filter expressions: expressions that support regular expressions -// and expressions that follow API improvement proposal AIP-160. These two -// types of filter expressions cannot be mixed in one request. If you want to -// use AIP-160, your expression must specify the field name, an operator, and -// the value that you want to use for filtering. The value must be a string, a -// number, or a boolean. The 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`. The `:*` comparison can be used to test whether a key has -// been defined. For example, to find all objects with `owner` label use: ``` -// labels.owner:* ``` 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) ``` If you want to use a regular -// expression, use the `eq` (equal) or `ne` (not equal) operator against a -// single un-parenthesized expression with or without quotes or against -// multiple parenthesized expressions. Examples: `fieldname eq unquoted -// literal` `fieldname eq 'single quoted literal'` `fieldname eq "double quoted -// literal" `(fieldname1 eq literal) (fieldname2 ne "literal")` The literal -// value is interpreted as a regular expression using Google RE2 library -// syntax. The literal value must match the entire field. For example, to -// filter for instances that do not end with name "instance", you would use -// `name ne .*instance`. You cannot combine constraints on multiple fields -// using regular expressions. -func (c *RegionZonesListCall) Filter(filter string) *RegionZonesListCall { - 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 *RegionZonesListCall) MaxResults(maxResults int64) *RegionZonesListCall { - 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 *RegionZonesListCall) OrderBy(orderBy string) *RegionZonesListCall { - 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 *RegionZonesListCall) PageToken(pageToken string) *RegionZonesListCall { - c.urlParams_.Set("pageToken", pageToken) - return c -} - -// ReturnPartialSuccess sets the optional parameter "returnPartialSuccess": -// Opt-in for partial success behavior which provides partial results in case -// of failure. The default value is false. For example, when partial success -// behavior is enabled, aggregatedList for a single zone scope either returns -// all resources in the zone or no resources, with an error code. -func (c *RegionZonesListCall) ReturnPartialSuccess(returnPartialSuccess bool) *RegionZonesListCall { - c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess)) + c.securityPolicy = securityPolicy return c } // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *RegionZonesListCall) Fields(s ...googleapi.Field) *RegionZonesListCall { +func (c *RegionSecurityPoliciesGetCall) Fields(s ...googleapi.Field) *RegionSecurityPoliciesGetCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } @@ -21735,54 +23704,55 @@ func (c *RegionZonesListCall) Fields(s ...googleapi.Field) *RegionZonesListCall // IfNoneMatch sets an 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. -func (c *RegionZonesListCall) IfNoneMatch(entityTag string) *RegionZonesListCall { +func (c *RegionSecurityPoliciesGetCall) IfNoneMatch(entityTag string) *RegionSecurityPoliciesGetCall { c.ifNoneMatch_ = entityTag return c } // Context sets the context to be used in this call's Do method. -func (c *RegionZonesListCall) Context(ctx context.Context) *RegionZonesListCall { +func (c *RegionSecurityPoliciesGetCall) Context(ctx context.Context) *RegionSecurityPoliciesGetCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *RegionZonesListCall) Header() http.Header { +func (c *RegionSecurityPoliciesGetCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *RegionZonesListCall) doRequest(alt string) (*http.Response, error) { +func (c *RegionSecurityPoliciesGetCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) if c.ifNoneMatch_ != "" { reqHeaders.Set("If-None-Match", c.ifNoneMatch_) } - var body io.Reader = nil c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/zones") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/securityPolicies/{securityPolicy}") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("GET", urls, body) + req, err := http.NewRequest("GET", urls, nil) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "region": c.region, + "project": c.project, + "region": c.region, + "securityPolicy": c.securityPolicy, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.regionSecurityPolicies.get", "request", internallog.HTTPRequest(req, nil)) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.regionZones.list" call. +// Do executes the "compute.regionSecurityPolicies.get" call. // Any non-2xx status code is an error. Response headers are in either -// *ZoneList.ServerResponse.Header or (if a response was returned at all) in -// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check +// *SecurityPolicy.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 *RegionZonesListCall) Do(opts ...googleapi.CallOption) (*ZoneList, error) { +func (c *RegionSecurityPoliciesGetCall) Do(opts ...googleapi.CallOption) (*SecurityPolicy, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -21801,71 +23771,57 @@ func (c *RegionZonesListCall) Do(opts ...googleapi.CallOption) (*ZoneList, error if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } - ret := &ZoneList{ + ret := &SecurityPolicy{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.regionSecurityPolicies.get", "response", internallog.HTTPResponse(res, b)) return ret, nil } -// 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 *RegionZonesListCall) Pages(ctx context.Context, f func(*ZoneList) error) error { - c.ctx_ = ctx - defer c.PageToken(c.urlParams_.Get("pageToken")) - 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) - } -} - -type RegionsGetCall struct { - s *Service - project string - region string - urlParams_ gensupport.URLParams - ifNoneMatch_ string - ctx_ context.Context - header_ http.Header +type RegionSecurityPoliciesGetRuleCall struct { + s *Service + project string + region string + securityPolicy string + urlParams_ gensupport.URLParams + ifNoneMatch_ string + ctx_ context.Context + header_ http.Header } -// Get: Returns the specified Region resource. To decrease latency for this -// method, you can optionally omit any unneeded information from the response -// by using a field mask. This practice is especially recommended for unused -// quota information (the `quotas` field). To exclude one or more fields, set -// your request's `fields` query parameter to only include the fields you need. -// For example, to only include the `id` and `selfLink` fields, add the query -// parameter `?fields=id,selfLink` to your request. +// GetRule: Gets a rule at the specified priority. // -// - project: Project ID for this request. -// - region: Name of the region resource to return. -func (r *RegionsService) Get(project string, region string) *RegionsGetCall { - c := &RegionsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)} +// - project: Project ID for this request. +// - region: Name of the region scoping this request. +// - securityPolicy: Name of the security policy to which the queried rule +// belongs. +func (r *RegionSecurityPoliciesService) GetRule(project string, region string, securityPolicy string) *RegionSecurityPoliciesGetRuleCall { + c := &RegionSecurityPoliciesGetRuleCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project c.region = region + c.securityPolicy = securityPolicy + return c +} + +// Priority sets the optional parameter "priority": The priority of the rule to +// get from the security policy. +func (c *RegionSecurityPoliciesGetRuleCall) Priority(priority int64) *RegionSecurityPoliciesGetRuleCall { + c.urlParams_.Set("priority", fmt.Sprint(priority)) return c } // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *RegionsGetCall) Fields(s ...googleapi.Field) *RegionsGetCall { +func (c *RegionSecurityPoliciesGetRuleCall) Fields(s ...googleapi.Field) *RegionSecurityPoliciesGetRuleCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } @@ -21873,54 +23829,56 @@ func (c *RegionsGetCall) Fields(s ...googleapi.Field) *RegionsGetCall { // IfNoneMatch sets an 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. -func (c *RegionsGetCall) IfNoneMatch(entityTag string) *RegionsGetCall { +func (c *RegionSecurityPoliciesGetRuleCall) IfNoneMatch(entityTag string) *RegionSecurityPoliciesGetRuleCall { c.ifNoneMatch_ = entityTag return c } // Context sets the context to be used in this call's Do method. -func (c *RegionsGetCall) Context(ctx context.Context) *RegionsGetCall { +func (c *RegionSecurityPoliciesGetRuleCall) Context(ctx context.Context) *RegionSecurityPoliciesGetRuleCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *RegionsGetCall) Header() http.Header { +func (c *RegionSecurityPoliciesGetRuleCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *RegionsGetCall) doRequest(alt string) (*http.Response, error) { +func (c *RegionSecurityPoliciesGetRuleCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) if c.ifNoneMatch_ != "" { reqHeaders.Set("If-None-Match", c.ifNoneMatch_) } - var body io.Reader = nil c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/securityPolicies/{securityPolicy}/getRule") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("GET", urls, body) + req, err := http.NewRequest("GET", urls, nil) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "region": c.region, + "project": c.project, + "region": c.region, + "securityPolicy": c.securityPolicy, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.regionSecurityPolicies.getRule", "request", internallog.HTTPRequest(req, nil)) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.regions.get" call. +// Do executes the "compute.regionSecurityPolicies.getRule" call. // Any non-2xx status code is an error. Response headers are in either -// *Region.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 *RegionsGetCall) Do(opts ...googleapi.CallOption) (*Region, error) { +// *SecurityPolicyRule.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 *RegionSecurityPoliciesGetRuleCall) Do(opts ...googleapi.CallOption) (*SecurityPolicyRule, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -21939,180 +23897,126 @@ func (c *RegionsGetCall) Do(opts ...googleapi.CallOption) (*Region, error) { if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } - ret := &Region{ + ret := &SecurityPolicyRule{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.regionSecurityPolicies.getRule", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type RegionsListCall struct { - s *Service - project string - urlParams_ gensupport.URLParams - ifNoneMatch_ string - ctx_ context.Context - header_ http.Header +type RegionSecurityPoliciesInsertCall struct { + s *Service + project string + region string + securitypolicy *SecurityPolicy + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header } -// List: Retrieves the list of region resources available to the specified -// project. To decrease latency for this method, you can optionally omit any -// unneeded information from the response by using a field mask. This practice -// is especially recommended for unused quota information (the `items.quotas` -// field). To exclude one or more fields, set your request's `fields` query -// parameter to only include the fields you need. For example, to only include -// the `id` and `selfLink` fields, add the query parameter -// `?fields=id,selfLink` to your request. +// Insert: Creates a new policy in the specified project using the data +// included in +// the request. // // - project: Project ID for this request. -func (r *RegionsService) List(project string) *RegionsListCall { - c := &RegionsListCall{s: r.s, urlParams_: make(gensupport.URLParams)} +// - region: Name of the region scoping this request. +func (r *RegionSecurityPoliciesService) Insert(project string, region string, securitypolicy *SecurityPolicy) *RegionSecurityPoliciesInsertCall { + c := &RegionSecurityPoliciesInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project + c.region = region + c.securitypolicy = securitypolicy return c } -// Filter sets the optional parameter "filter": A filter expression that -// filters resources listed in the response. Most Compute resources support two -// types of filter expressions: expressions that support regular expressions -// and expressions that follow API improvement proposal AIP-160. These two -// types of filter expressions cannot be mixed in one request. If you want to -// use AIP-160, your expression must specify the field name, an operator, and -// the value that you want to use for filtering. The value must be a string, a -// number, or a boolean. The 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`. The `:*` comparison can be used to test whether a key has -// been defined. For example, to find all objects with `owner` label use: ``` -// labels.owner:* ``` 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) ``` If you want to use a regular -// expression, use the `eq` (equal) or `ne` (not equal) operator against a -// single un-parenthesized expression with or without quotes or against -// multiple parenthesized expressions. Examples: `fieldname eq unquoted -// literal` `fieldname eq 'single quoted literal'` `fieldname eq "double quoted -// literal" `(fieldname1 eq literal) (fieldname2 ne "literal")` The literal -// value is interpreted as a regular expression using Google RE2 library -// syntax. The literal value must match the entire field. For example, to -// filter for instances that do not end with name "instance", you would use -// `name ne .*instance`. You cannot combine constraints on multiple fields -// using regular expressions. -func (c *RegionsListCall) Filter(filter string) *RegionsListCall { - 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 *RegionsListCall) MaxResults(maxResults int64) *RegionsListCall { - 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 *RegionsListCall) OrderBy(orderBy string) *RegionsListCall { - 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 *RegionsListCall) PageToken(pageToken string) *RegionsListCall { - c.urlParams_.Set("pageToken", pageToken) +// 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 *RegionSecurityPoliciesInsertCall) RequestId(requestId string) *RegionSecurityPoliciesInsertCall { + c.urlParams_.Set("requestId", requestId) return c } -// ReturnPartialSuccess sets the optional parameter "returnPartialSuccess": -// Opt-in for partial success behavior which provides partial results in case -// of failure. The default value is false. For example, when partial success -// behavior is enabled, aggregatedList for a single zone scope either returns -// all resources in the zone or no resources, with an error code. -func (c *RegionsListCall) ReturnPartialSuccess(returnPartialSuccess bool) *RegionsListCall { - c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess)) +// ValidateOnly sets the optional parameter "validateOnly": If true, the +// request will not be committed. +func (c *RegionSecurityPoliciesInsertCall) ValidateOnly(validateOnly bool) *RegionSecurityPoliciesInsertCall { + c.urlParams_.Set("validateOnly", fmt.Sprint(validateOnly)) return c } // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *RegionsListCall) Fields(s ...googleapi.Field) *RegionsListCall { +func (c *RegionSecurityPoliciesInsertCall) Fields(s ...googleapi.Field) *RegionSecurityPoliciesInsertCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } -// IfNoneMatch sets an 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. -func (c *RegionsListCall) IfNoneMatch(entityTag string) *RegionsListCall { - c.ifNoneMatch_ = entityTag - return c -} - // Context sets the context to be used in this call's Do method. -func (c *RegionsListCall) Context(ctx context.Context) *RegionsListCall { +func (c *RegionSecurityPoliciesInsertCall) Context(ctx context.Context) *RegionSecurityPoliciesInsertCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *RegionsListCall) Header() http.Header { +func (c *RegionSecurityPoliciesInsertCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *RegionsListCall) doRequest(alt string) (*http.Response, error) { - reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) - if c.ifNoneMatch_ != "" { - reqHeaders.Set("If-None-Match", c.ifNoneMatch_) +func (c *RegionSecurityPoliciesInsertCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) + body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.securitypolicy) + if err != nil { + return nil, err } - var body io.Reader = nil c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/securityPolicies") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("GET", urls, body) + req, err := http.NewRequest("POST", urls, body) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ "project": c.project, + "region": c.region, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.regionSecurityPolicies.insert", "request", internallog.HTTPRequest(req, body.Bytes())) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.regions.list" call. +// Do executes the "compute.regionSecurityPolicies.insert" call. // Any non-2xx status code is an error. Response headers are in either -// *RegionList.ServerResponse.Header or (if a response was returned at all) in +// *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 *RegionsListCall) Do(opts ...googleapi.CallOption) (*RegionList, error) { +func (c *RegionSecurityPoliciesInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -22131,163 +24035,176 @@ func (c *RegionsListCall) Do(opts ...googleapi.CallOption) (*RegionList, error) if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } - ret := &RegionList{ + ret := &Operation{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.regionSecurityPolicies.insert", "response", internallog.HTTPResponse(res, b)) return ret, nil } -// 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 *RegionsListCall) Pages(ctx context.Context, f func(*RegionList) error) error { - c.ctx_ = ctx - defer c.PageToken(c.urlParams_.Get("pageToken")) - 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) - } -} - -type ReservationsAggregatedListCall struct { +type RegionSecurityPoliciesListCall struct { s *Service project string + region string urlParams_ gensupport.URLParams ifNoneMatch_ string ctx_ context.Context header_ http.Header } -// AggregatedList: Retrieves an aggregated list of reservations. To prevent -// failure, Google recommends that you set the `returnPartialSuccess` parameter -// to `true`. +// List: List all the policies that have been configured for the specified +// project +// and region. // // - project: Project ID for this request. -func (r *ReservationsService) AggregatedList(project string) *ReservationsAggregatedListCall { - c := &ReservationsAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)} +// - region: Name of the region scoping this request. +func (r *RegionSecurityPoliciesService) List(project string, region string) *RegionSecurityPoliciesListCall { + c := &RegionSecurityPoliciesListCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project + c.region = region return c } // Filter sets the optional parameter "filter": A filter expression that -// filters resources listed in the response. Most Compute resources support two -// types of filter expressions: expressions that support regular expressions -// and expressions that follow API improvement proposal AIP-160. These two -// types of filter expressions cannot be mixed in one request. If you want to -// use AIP-160, your expression must specify the field name, an operator, and -// the value that you want to use for filtering. The value must be a string, a -// number, or a boolean. The 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`. The `:*` comparison can be used to test whether a key has -// been defined. For example, to find all objects with `owner` label use: ``` -// labels.owner:* ``` 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) ``` If you want to use a regular -// expression, use the `eq` (equal) or `ne` (not equal) operator against a -// single un-parenthesized expression with or without quotes or against -// multiple parenthesized expressions. Examples: `fieldname eq unquoted -// literal` `fieldname eq 'single quoted literal'` `fieldname eq "double quoted -// literal" `(fieldname1 eq literal) (fieldname2 ne "literal")` The literal -// value is interpreted as a regular expression using Google RE2 library -// syntax. The literal value must match the entire field. For example, to -// filter for instances that do not end with name "instance", you would use -// `name ne .*instance`. You cannot combine constraints on multiple fields -// using regular expressions. -func (c *ReservationsAggregatedListCall) Filter(filter string) *ReservationsAggregatedListCall { +// filters resources listed in the response. Most +// Compute resources support two types of filter expressions: +// expressions that support regular expressions and expressions that follow +// API improvement proposal AIP-160. +// These two types of filter expressions cannot be mixed in one request. +// +// If you want to use AIP-160, your expression must specify the field name, +// an +// operator, and the value that you want to use for filtering. The value +// must be a string, a number, or a boolean. The 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`. +// +// The `:*` comparison can be used to test whether a key has been defined. +// For example, to find all objects with `owner` label +// use: +// ``` +// labels.owner:* +// ``` +// +// 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 onresource 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) +// ``` +// +// If you want to use a regular expression, use the `eq` (equal) or `ne` +// (not equal) operator against a single un-parenthesized expression with +// or +// without quotes or against multiple parenthesized expressions. +// Examples: +// +// `fieldname eq unquoted literal` +// `fieldname eq 'single quoted literal'` +// `fieldname eq "double quoted literal" +// `(fieldname1 eq literal) (fieldname2 ne "literal")` +// +// The literal value is interpreted as a regular expression using GoogleRE2 +// library syntax. +// The literal value must match the entire field. +// +// For example, to filter for instances that do not end with name +// "instance", +// you would use `name ne .*instance`. +// +// You cannot combine constraints on multiple fields using regular +// expressions. +func (c *RegionSecurityPoliciesListCall) Filter(filter string) *RegionSecurityPoliciesListCall { c.urlParams_.Set("filter", filter) return c } -// IncludeAllScopes sets the optional parameter "includeAllScopes": Indicates -// whether every visible scope for each scope type (zone, region, global) -// should be included in the response. For new resource types added after this -// field, the flag has no effect as new resource types will always include -// every visible scope for each scope type in response. For resource types -// which predate this field, if this flag is omitted or false, only scopes of -// the scope types where the resource type is expected to be found will be -// included. -func (c *ReservationsAggregatedListCall) IncludeAllScopes(includeAllScopes bool) *ReservationsAggregatedListCall { - c.urlParams_.Set("includeAllScopes", fmt.Sprint(includeAllScopes)) - 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 *ReservationsAggregatedListCall) MaxResults(maxResults int64) *ReservationsAggregatedListCall { +// 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 *RegionSecurityPoliciesListCall) MaxResults(maxResults int64) *RegionSecurityPoliciesListCall { 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 *ReservationsAggregatedListCall) OrderBy(orderBy string) *ReservationsAggregatedListCall { +// 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 *RegionSecurityPoliciesListCall) OrderBy(orderBy string) *RegionSecurityPoliciesListCall { 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 *ReservationsAggregatedListCall) PageToken(pageToken string) *ReservationsAggregatedListCall { +// use. Set `pageToken` to the +// `nextPageToken` returned by a previous list request to get +// the next page of results. +func (c *RegionSecurityPoliciesListCall) PageToken(pageToken string) *RegionSecurityPoliciesListCall { c.urlParams_.Set("pageToken", pageToken) return c } // ReturnPartialSuccess sets the optional parameter "returnPartialSuccess": -// Opt-in for partial success behavior which provides partial results in case -// of failure. The default value is false. For example, when partial success -// behavior is enabled, aggregatedList for a single zone scope either returns -// all resources in the zone or no resources, with an error code. -func (c *ReservationsAggregatedListCall) ReturnPartialSuccess(returnPartialSuccess bool) *ReservationsAggregatedListCall { +// Opt-in for partial success behavior which provides partial results in +// case +// of failure. The default value is false. +// +// For example, when partial success behavior is enabled, aggregatedList for +// a +// single zone scope either returns all resources in the zone or no +// resources, +// with an error code. +func (c *RegionSecurityPoliciesListCall) ReturnPartialSuccess(returnPartialSuccess bool) *RegionSecurityPoliciesListCall { c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess)) return c } -// ServiceProjectNumber sets the optional parameter "serviceProjectNumber": The -// Shared VPC service project id or service project number for which aggregated -// list request is invoked for subnetworks list-usable api. -func (c *ReservationsAggregatedListCall) ServiceProjectNumber(serviceProjectNumber int64) *ReservationsAggregatedListCall { - c.urlParams_.Set("serviceProjectNumber", fmt.Sprint(serviceProjectNumber)) - return c -} - // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *ReservationsAggregatedListCall) Fields(s ...googleapi.Field) *ReservationsAggregatedListCall { +func (c *RegionSecurityPoliciesListCall) Fields(s ...googleapi.Field) *RegionSecurityPoliciesListCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } @@ -22295,54 +24212,55 @@ func (c *ReservationsAggregatedListCall) Fields(s ...googleapi.Field) *Reservati // IfNoneMatch sets an 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. -func (c *ReservationsAggregatedListCall) IfNoneMatch(entityTag string) *ReservationsAggregatedListCall { +func (c *RegionSecurityPoliciesListCall) IfNoneMatch(entityTag string) *RegionSecurityPoliciesListCall { c.ifNoneMatch_ = entityTag return c } // Context sets the context to be used in this call's Do method. -func (c *ReservationsAggregatedListCall) Context(ctx context.Context) *ReservationsAggregatedListCall { +func (c *RegionSecurityPoliciesListCall) Context(ctx context.Context) *RegionSecurityPoliciesListCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *ReservationsAggregatedListCall) Header() http.Header { +func (c *RegionSecurityPoliciesListCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *ReservationsAggregatedListCall) doRequest(alt string) (*http.Response, error) { +func (c *RegionSecurityPoliciesListCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) if c.ifNoneMatch_ != "" { reqHeaders.Set("If-None-Match", c.ifNoneMatch_) } - var body io.Reader = nil c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/aggregated/reservations") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/securityPolicies") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("GET", urls, body) + req, err := http.NewRequest("GET", urls, nil) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ "project": c.project, + "region": c.region, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.regionSecurityPolicies.list", "request", internallog.HTTPRequest(req, nil)) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.reservations.aggregatedList" call. +// Do executes the "compute.regionSecurityPolicies.list" call. // Any non-2xx status code is an error. Response headers are in either -// *ReservationAggregatedList.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 *ReservationsAggregatedListCall) Do(opts ...googleapi.CallOption) (*ReservationAggregatedList, error) { +// *SecurityPolicyList.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 *RegionSecurityPoliciesListCall) Do(opts ...googleapi.CallOption) (*SecurityPolicyList, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -22361,23 +24279,25 @@ func (c *ReservationsAggregatedListCall) Do(opts ...googleapi.CallOption) (*Rese if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } - ret := &ReservationAggregatedList{ + ret := &SecurityPolicyList{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.regionSecurityPolicies.list", "response", internallog.HTTPResponse(res, b)) return ret, nil } // 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 *ReservationsAggregatedListCall) Pages(ctx context.Context, f func(*ReservationAggregatedList) error) error { +func (c *RegionSecurityPoliciesListCall) Pages(ctx context.Context, f func(*SecurityPolicyList) error) error { c.ctx_ = ctx defer c.PageToken(c.urlParams_.Get("pageToken")) for { @@ -22395,93 +24315,120 @@ func (c *ReservationsAggregatedListCall) Pages(ctx context.Context, f func(*Rese } } -type ReservationsDeleteCall struct { - s *Service - project string - zone string - reservation string - urlParams_ gensupport.URLParams - ctx_ context.Context - header_ http.Header +type RegionSecurityPoliciesPatchCall struct { + s *Service + project string + region string + securityPolicy string + securitypolicy *SecurityPolicy + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header } -// Delete: Deletes the specified reservation. +// Patch: Patches the specified policy with the data included in the request. +// To +// clear fields in the policy, leave the fields empty and specify them in +// the +// updateMask. This cannot be used to be update the rules in the policy. +// Please use the per rule methods like addRule, patchRule, and +// removeRule +// instead. // // - project: Project ID for this request. -// - reservation: Name of the reservation to delete. -// - zone: Name of the zone for this request. -func (r *ReservationsService) Delete(project string, zone string, reservation string) *ReservationsDeleteCall { - c := &ReservationsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)} +// - region: Name of the region scoping this request. +// - securityPolicy: Name of the security policy to update. +func (r *RegionSecurityPoliciesService) Patch(project string, region string, securityPolicy string, securitypolicy *SecurityPolicy) *RegionSecurityPoliciesPatchCall { + c := &RegionSecurityPoliciesPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project - c.zone = zone - c.reservation = reservation + c.region = region + c.securityPolicy = securityPolicy + c.securitypolicy = securitypolicy 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 *ReservationsDeleteCall) RequestId(requestId string) *ReservationsDeleteCall { +// 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 *RegionSecurityPoliciesPatchCall) RequestId(requestId string) *RegionSecurityPoliciesPatchCall { c.urlParams_.Set("requestId", requestId) return c } +// UpdateMask sets the optional parameter "updateMask": Indicates fields to be +// cleared as part of this request. +func (c *RegionSecurityPoliciesPatchCall) UpdateMask(updateMask string) *RegionSecurityPoliciesPatchCall { + c.urlParams_.Set("updateMask", updateMask) + return c +} + // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *ReservationsDeleteCall) Fields(s ...googleapi.Field) *ReservationsDeleteCall { +func (c *RegionSecurityPoliciesPatchCall) Fields(s ...googleapi.Field) *RegionSecurityPoliciesPatchCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } // Context sets the context to be used in this call's Do method. -func (c *ReservationsDeleteCall) Context(ctx context.Context) *ReservationsDeleteCall { +func (c *RegionSecurityPoliciesPatchCall) Context(ctx context.Context) *RegionSecurityPoliciesPatchCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *ReservationsDeleteCall) Header() http.Header { +func (c *RegionSecurityPoliciesPatchCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *ReservationsDeleteCall) doRequest(alt string) (*http.Response, error) { - reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) - var body io.Reader = nil +func (c *RegionSecurityPoliciesPatchCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) + body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.securitypolicy) + if err != nil { + return nil, err + } c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/reservations/{reservation}") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/securityPolicies/{securityPolicy}") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("DELETE", urls, body) + req, err := http.NewRequest("PATCH", urls, body) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "zone": c.zone, - "reservation": c.reservation, + "project": c.project, + "region": c.region, + "securityPolicy": c.securityPolicy, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.regionSecurityPolicies.patch", "request", internallog.HTTPRequest(req, body.Bytes())) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.reservations.delete" call. +// Do executes the "compute.regionSecurityPolicies.patch" call. // 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 *ReservationsDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) { +func (c *RegionSecurityPoliciesPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -22507,96 +24454,115 @@ func (c *ReservationsDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, e }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.regionSecurityPolicies.patch", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type ReservationsGetCall struct { - s *Service - project string - zone string - reservation string - urlParams_ gensupport.URLParams - ifNoneMatch_ string - ctx_ context.Context - header_ http.Header +type RegionSecurityPoliciesPatchRuleCall struct { + s *Service + project string + region string + securityPolicy string + securitypolicyrule *SecurityPolicyRule + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header } -// Get: Retrieves information about the specified reservation. +// PatchRule: Patches a rule at the specified priority. To clear fields in the +// rule, +// leave the fields empty and specify them in the updateMask. // // - project: Project ID for this request. -// - reservation: Name of the reservation to retrieve. -// - zone: Name of the zone for this request. -func (r *ReservationsService) Get(project string, zone string, reservation string) *ReservationsGetCall { - c := &ReservationsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)} +// - region: Name of the region scoping this request. +// - securityPolicy: Name of the security policy to update. +func (r *RegionSecurityPoliciesService) PatchRule(project string, region string, securityPolicy string, securitypolicyrule *SecurityPolicyRule) *RegionSecurityPoliciesPatchRuleCall { + c := &RegionSecurityPoliciesPatchRuleCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project - c.zone = zone - c.reservation = reservation + c.region = region + c.securityPolicy = securityPolicy + c.securitypolicyrule = securitypolicyrule + return c +} + +// Priority sets the optional parameter "priority": The priority of the rule to +// patch. +func (c *RegionSecurityPoliciesPatchRuleCall) Priority(priority int64) *RegionSecurityPoliciesPatchRuleCall { + c.urlParams_.Set("priority", fmt.Sprint(priority)) + return c +} + +// UpdateMask sets the optional parameter "updateMask": Indicates fields to be +// cleared as part of this request. +func (c *RegionSecurityPoliciesPatchRuleCall) UpdateMask(updateMask string) *RegionSecurityPoliciesPatchRuleCall { + c.urlParams_.Set("updateMask", updateMask) + return c +} + +// ValidateOnly sets the optional parameter "validateOnly": If true, the +// request will not be committed. +func (c *RegionSecurityPoliciesPatchRuleCall) ValidateOnly(validateOnly bool) *RegionSecurityPoliciesPatchRuleCall { + c.urlParams_.Set("validateOnly", fmt.Sprint(validateOnly)) return c } // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *ReservationsGetCall) Fields(s ...googleapi.Field) *ReservationsGetCall { +func (c *RegionSecurityPoliciesPatchRuleCall) Fields(s ...googleapi.Field) *RegionSecurityPoliciesPatchRuleCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } -// IfNoneMatch sets an 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. -func (c *ReservationsGetCall) IfNoneMatch(entityTag string) *ReservationsGetCall { - c.ifNoneMatch_ = entityTag - return c -} - // Context sets the context to be used in this call's Do method. -func (c *ReservationsGetCall) Context(ctx context.Context) *ReservationsGetCall { +func (c *RegionSecurityPoliciesPatchRuleCall) Context(ctx context.Context) *RegionSecurityPoliciesPatchRuleCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *ReservationsGetCall) Header() http.Header { +func (c *RegionSecurityPoliciesPatchRuleCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *ReservationsGetCall) doRequest(alt string) (*http.Response, error) { - reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) - if c.ifNoneMatch_ != "" { - reqHeaders.Set("If-None-Match", c.ifNoneMatch_) +func (c *RegionSecurityPoliciesPatchRuleCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) + body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.securitypolicyrule) + if err != nil { + return nil, err } - var body io.Reader = nil c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/reservations/{reservation}") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/securityPolicies/{securityPolicy}/patchRule") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("GET", urls, body) + req, err := http.NewRequest("POST", urls, body) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "zone": c.zone, - "reservation": c.reservation, + "project": c.project, + "region": c.region, + "securityPolicy": c.securityPolicy, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.regionSecurityPolicies.patchRule", "request", internallog.HTTPRequest(req, body.Bytes())) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.reservations.get" call. +// Do executes the "compute.regionSecurityPolicies.patchRule" call. // Any non-2xx status code is an error. Response headers are in either -// *Reservation.ServerResponse.Header or (if a response was returned at all) in +// *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 *ReservationsGetCall) Do(opts ...googleapi.CallOption) (*Reservation, error) { +func (c *RegionSecurityPoliciesPatchRuleCall) Do(opts ...googleapi.CallOption) (*Operation, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -22615,111 +24581,100 @@ func (c *ReservationsGetCall) Do(opts ...googleapi.CallOption) (*Reservation, er if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } - ret := &Reservation{ + ret := &Operation{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.regionSecurityPolicies.patchRule", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type ReservationsGetIamPolicyCall struct { - s *Service - project string - zone string - resource string - urlParams_ gensupport.URLParams - ifNoneMatch_ string - ctx_ context.Context - header_ http.Header -} - -// GetIamPolicy: Gets the access control policy for a resource. May be empty if -// no such policy or resource exists. -// -// - project: Project ID for this request. -// - resource: Name or id of the resource for this request. -// - zone: The name of the zone for this request. -func (r *ReservationsService) GetIamPolicy(project string, zone string, resource string) *ReservationsGetIamPolicyCall { - c := &ReservationsGetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)} +type RegionSecurityPoliciesRemoveRuleCall struct { + s *Service + project string + region string + securityPolicy string + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header +} + +// RemoveRule: Deletes a rule at the specified priority. +// +// - project: Project ID for this request. +// - region: Name of the region scoping this request. +// - securityPolicy: Name of the security policy to update. +func (r *RegionSecurityPoliciesService) RemoveRule(project string, region string, securityPolicy string) *RegionSecurityPoliciesRemoveRuleCall { + c := &RegionSecurityPoliciesRemoveRuleCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project - c.zone = zone - c.resource = resource + c.region = region + c.securityPolicy = securityPolicy return c } -// OptionsRequestedPolicyVersion sets the optional parameter -// "optionsRequestedPolicyVersion": Requested IAM Policy version. -func (c *ReservationsGetIamPolicyCall) OptionsRequestedPolicyVersion(optionsRequestedPolicyVersion int64) *ReservationsGetIamPolicyCall { - c.urlParams_.Set("optionsRequestedPolicyVersion", fmt.Sprint(optionsRequestedPolicyVersion)) +// Priority sets the optional parameter "priority": The priority of the rule to +// remove from the security policy. +func (c *RegionSecurityPoliciesRemoveRuleCall) Priority(priority int64) *RegionSecurityPoliciesRemoveRuleCall { + c.urlParams_.Set("priority", fmt.Sprint(priority)) return c } // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *ReservationsGetIamPolicyCall) Fields(s ...googleapi.Field) *ReservationsGetIamPolicyCall { +func (c *RegionSecurityPoliciesRemoveRuleCall) Fields(s ...googleapi.Field) *RegionSecurityPoliciesRemoveRuleCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } -// IfNoneMatch sets an 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. -func (c *ReservationsGetIamPolicyCall) IfNoneMatch(entityTag string) *ReservationsGetIamPolicyCall { - c.ifNoneMatch_ = entityTag - return c -} - // Context sets the context to be used in this call's Do method. -func (c *ReservationsGetIamPolicyCall) Context(ctx context.Context) *ReservationsGetIamPolicyCall { +func (c *RegionSecurityPoliciesRemoveRuleCall) Context(ctx context.Context) *RegionSecurityPoliciesRemoveRuleCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *ReservationsGetIamPolicyCall) Header() http.Header { +func (c *RegionSecurityPoliciesRemoveRuleCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *ReservationsGetIamPolicyCall) doRequest(alt string) (*http.Response, error) { +func (c *RegionSecurityPoliciesRemoveRuleCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) - if c.ifNoneMatch_ != "" { - reqHeaders.Set("If-None-Match", c.ifNoneMatch_) - } - var body io.Reader = nil c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/reservations/{resource}/getIamPolicy") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/securityPolicies/{securityPolicy}/removeRule") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("GET", urls, body) + req, err := http.NewRequest("POST", urls, nil) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "zone": c.zone, - "resource": c.resource, + "project": c.project, + "region": c.region, + "securityPolicy": c.securityPolicy, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.regionSecurityPolicies.removeRule", "request", internallog.HTTPRequest(req, nil)) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.reservations.getIamPolicy" call. +// Do executes the "compute.regionSecurityPolicies.removeRule" call. // Any non-2xx status code is an error. Response headers are in either -// *Policy.ServerResponse.Header or (if a response was returned at all) in +// *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 *ReservationsGetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, error) { +func (c *RegionSecurityPoliciesRemoveRuleCall) Do(opts ...googleapi.CallOption) (*Operation, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -22738,53 +24693,67 @@ func (c *ReservationsGetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } - ret := &Policy{ + ret := &Operation{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.regionSecurityPolicies.removeRule", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type ReservationsInsertCall struct { - s *Service - project string - zone string - reservation *Reservation - urlParams_ gensupport.URLParams - ctx_ context.Context - header_ http.Header +type RegionSecurityPoliciesSetLabelsCall struct { + s *Service + project string + region string + resource string + regionsetlabelsrequest *RegionSetLabelsRequest + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header } -// Insert: Creates a new reservation. For more information, read Reserving -// zonal resources. +// SetLabels: Sets the labels on a security policy. To learn more about +// labels, +// read the Labeling Resources +// documentation. // // - project: Project ID for this request. -// - zone: Name of the zone for this request. -func (r *ReservationsService) Insert(project string, zone string, reservation *Reservation) *ReservationsInsertCall { - c := &ReservationsInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)} +// - region: The region for this request. +// - resource: Name or id of the resource for this request. +func (r *RegionSecurityPoliciesService) SetLabels(project string, region string, resource string, regionsetlabelsrequest *RegionSetLabelsRequest) *RegionSecurityPoliciesSetLabelsCall { + c := &RegionSecurityPoliciesSetLabelsCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project - c.zone = zone - c.reservation = reservation + c.region = region + c.resource = resource + c.regionsetlabelsrequest = regionsetlabelsrequest 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 *ReservationsInsertCall) RequestId(requestId string) *ReservationsInsertCall { +// 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 *RegionSecurityPoliciesSetLabelsCall) RequestId(requestId string) *RegionSecurityPoliciesSetLabelsCall { c.urlParams_.Set("requestId", requestId) return c } @@ -22792,36 +24761,35 @@ func (c *ReservationsInsertCall) RequestId(requestId string) *ReservationsInsert // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *ReservationsInsertCall) Fields(s ...googleapi.Field) *ReservationsInsertCall { +func (c *RegionSecurityPoliciesSetLabelsCall) Fields(s ...googleapi.Field) *RegionSecurityPoliciesSetLabelsCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } // Context sets the context to be used in this call's Do method. -func (c *ReservationsInsertCall) Context(ctx context.Context) *ReservationsInsertCall { +func (c *RegionSecurityPoliciesSetLabelsCall) Context(ctx context.Context) *RegionSecurityPoliciesSetLabelsCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *ReservationsInsertCall) Header() http.Header { +func (c *RegionSecurityPoliciesSetLabelsCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *ReservationsInsertCall) doRequest(alt string) (*http.Response, error) { +func (c *RegionSecurityPoliciesSetLabelsCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) - var body io.Reader = nil - body, err := googleapi.WithoutDataWrapper.JSONReader(c.reservation) + body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.regionsetlabelsrequest) if err != nil { return nil, err } c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/reservations") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/securityPolicies/{resource}/setLabels") urls += "?" + c.urlParams_.Encode() req, err := http.NewRequest("POST", urls, body) if err != nil { @@ -22829,18 +24797,20 @@ func (c *ReservationsInsertCall) doRequest(alt string) (*http.Response, error) { } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "zone": c.zone, + "project": c.project, + "region": c.region, + "resource": c.resource, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.regionSecurityPolicies.setLabels", "request", internallog.HTTPRequest(req, body.Bytes())) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.reservations.insert" call. +// Do executes the "compute.regionSecurityPolicies.setLabels" call. // 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 *ReservationsInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) { +func (c *RegionSecurityPoliciesSetLabelsCall) Do(opts ...googleapi.CallOption) (*Operation, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -22866,116 +24836,39 @@ func (c *ReservationsInsertCall) Do(opts ...googleapi.CallOption) (*Operation, e }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.regionSecurityPolicies.setLabels", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type ReservationsListCall struct { +type RegionSnapshotSettingsGetCall struct { s *Service project string - zone string + region string urlParams_ gensupport.URLParams ifNoneMatch_ string ctx_ context.Context header_ http.Header } -// List: A list of all the reservations that have been configured for the -// specified project in specified zone. +// Get: Get region snapshot settings. // // - project: Project ID for this request. -// - zone: Name of the zone for this request. -func (r *ReservationsService) List(project string, zone string) *ReservationsListCall { - c := &ReservationsListCall{s: r.s, urlParams_: make(gensupport.URLParams)} +// - region: Name of the region for this request. +func (r *RegionSnapshotSettingsService) Get(project string, region string) *RegionSnapshotSettingsGetCall { + c := &RegionSnapshotSettingsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project - c.zone = zone - return c -} - -// Filter sets the optional parameter "filter": A filter expression that -// filters resources listed in the response. Most Compute resources support two -// types of filter expressions: expressions that support regular expressions -// and expressions that follow API improvement proposal AIP-160. These two -// types of filter expressions cannot be mixed in one request. If you want to -// use AIP-160, your expression must specify the field name, an operator, and -// the value that you want to use for filtering. The value must be a string, a -// number, or a boolean. The 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`. The `:*` comparison can be used to test whether a key has -// been defined. For example, to find all objects with `owner` label use: ``` -// labels.owner:* ``` 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) ``` If you want to use a regular -// expression, use the `eq` (equal) or `ne` (not equal) operator against a -// single un-parenthesized expression with or without quotes or against -// multiple parenthesized expressions. Examples: `fieldname eq unquoted -// literal` `fieldname eq 'single quoted literal'` `fieldname eq "double quoted -// literal" `(fieldname1 eq literal) (fieldname2 ne "literal")` The literal -// value is interpreted as a regular expression using Google RE2 library -// syntax. The literal value must match the entire field. For example, to -// filter for instances that do not end with name "instance", you would use -// `name ne .*instance`. You cannot combine constraints on multiple fields -// using regular expressions. -func (c *ReservationsListCall) Filter(filter string) *ReservationsListCall { - 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 *ReservationsListCall) MaxResults(maxResults int64) *ReservationsListCall { - 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 *ReservationsListCall) OrderBy(orderBy string) *ReservationsListCall { - 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 *ReservationsListCall) PageToken(pageToken string) *ReservationsListCall { - c.urlParams_.Set("pageToken", pageToken) - return c -} - -// ReturnPartialSuccess sets the optional parameter "returnPartialSuccess": -// Opt-in for partial success behavior which provides partial results in case -// of failure. The default value is false. For example, when partial success -// behavior is enabled, aggregatedList for a single zone scope either returns -// all resources in the zone or no resources, with an error code. -func (c *ReservationsListCall) ReturnPartialSuccess(returnPartialSuccess bool) *ReservationsListCall { - c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess)) + c.region = region return c } // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *ReservationsListCall) Fields(s ...googleapi.Field) *ReservationsListCall { +func (c *RegionSnapshotSettingsGetCall) Fields(s ...googleapi.Field) *RegionSnapshotSettingsGetCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } @@ -22983,55 +24876,55 @@ func (c *ReservationsListCall) Fields(s ...googleapi.Field) *ReservationsListCal // IfNoneMatch sets an 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. -func (c *ReservationsListCall) IfNoneMatch(entityTag string) *ReservationsListCall { +func (c *RegionSnapshotSettingsGetCall) IfNoneMatch(entityTag string) *RegionSnapshotSettingsGetCall { c.ifNoneMatch_ = entityTag return c } // Context sets the context to be used in this call's Do method. -func (c *ReservationsListCall) Context(ctx context.Context) *ReservationsListCall { +func (c *RegionSnapshotSettingsGetCall) Context(ctx context.Context) *RegionSnapshotSettingsGetCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *ReservationsListCall) Header() http.Header { +func (c *RegionSnapshotSettingsGetCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *ReservationsListCall) doRequest(alt string) (*http.Response, error) { +func (c *RegionSnapshotSettingsGetCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) if c.ifNoneMatch_ != "" { reqHeaders.Set("If-None-Match", c.ifNoneMatch_) } - var body io.Reader = nil c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/reservations") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/snapshotSettings") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("GET", urls, body) + req, err := http.NewRequest("GET", urls, nil) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ "project": c.project, - "zone": c.zone, + "region": c.region, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.regionSnapshotSettings.get", "request", internallog.HTTPRequest(req, nil)) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.reservations.list" call. +// Do executes the "compute.regionSnapshotSettings.get" call. // Any non-2xx status code is an error. Response headers are in either -// *ReservationList.ServerResponse.Header or (if a response was returned at +// *SnapshotSettings.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 *ReservationsListCall) Do(opts ...googleapi.CallOption) (*ReservationList, error) { +func (c *RegionSnapshotSettingsGetCall) Do(opts ...googleapi.CallOption) (*SnapshotSettings, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -23050,134 +24943,124 @@ func (c *ReservationsListCall) Do(opts ...googleapi.CallOption) (*ReservationLis if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } - ret := &ReservationList{ + ret := &SnapshotSettings{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.regionSnapshotSettings.get", "response", internallog.HTTPResponse(res, b)) return ret, nil } -// 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 *ReservationsListCall) Pages(ctx context.Context, f func(*ReservationList) error) error { - c.ctx_ = ctx - defer c.PageToken(c.urlParams_.Get("pageToken")) - 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) - } -} - -type ReservationsResizeCall struct { - s *Service - project string - zone string - reservation string - reservationsresizerequest *ReservationsResizeRequest - urlParams_ gensupport.URLParams - ctx_ context.Context - header_ http.Header +type RegionSnapshotSettingsPatchCall struct { + s *Service + project string + region string + snapshotsettings *SnapshotSettings + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header } -// Resize: Resizes the reservation (applicable to standalone reservations -// only). For more information, read Modifying reservations. +// Patch: Patch region snapshot settings. // // - project: Project ID for this request. -// - reservation: Name of the reservation to update. -// - zone: Name of the zone for this request. -func (r *ReservationsService) Resize(project string, zone string, reservation string, reservationsresizerequest *ReservationsResizeRequest) *ReservationsResizeCall { - c := &ReservationsResizeCall{s: r.s, urlParams_: make(gensupport.URLParams)} +// - region: Name of the region for this request. +func (r *RegionSnapshotSettingsService) Patch(project string, region string, snapshotsettings *SnapshotSettings) *RegionSnapshotSettingsPatchCall { + c := &RegionSnapshotSettingsPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project - c.zone = zone - c.reservation = reservation - c.reservationsresizerequest = reservationsresizerequest + c.region = region + c.snapshotsettings = snapshotsettings 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 *ReservationsResizeCall) RequestId(requestId string) *ReservationsResizeCall { +// 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 *RegionSnapshotSettingsPatchCall) RequestId(requestId string) *RegionSnapshotSettingsPatchCall { c.urlParams_.Set("requestId", requestId) return c } +// UpdateMask sets the optional parameter "updateMask": update_mask indicates +// fields to be updated as part of this request. +func (c *RegionSnapshotSettingsPatchCall) UpdateMask(updateMask string) *RegionSnapshotSettingsPatchCall { + c.urlParams_.Set("updateMask", updateMask) + return c +} + // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *ReservationsResizeCall) Fields(s ...googleapi.Field) *ReservationsResizeCall { +func (c *RegionSnapshotSettingsPatchCall) Fields(s ...googleapi.Field) *RegionSnapshotSettingsPatchCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } // Context sets the context to be used in this call's Do method. -func (c *ReservationsResizeCall) Context(ctx context.Context) *ReservationsResizeCall { +func (c *RegionSnapshotSettingsPatchCall) Context(ctx context.Context) *RegionSnapshotSettingsPatchCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *ReservationsResizeCall) Header() http.Header { +func (c *RegionSnapshotSettingsPatchCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *ReservationsResizeCall) doRequest(alt string) (*http.Response, error) { +func (c *RegionSnapshotSettingsPatchCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) - var body io.Reader = nil - body, err := googleapi.WithoutDataWrapper.JSONReader(c.reservationsresizerequest) + body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.snapshotsettings) if err != nil { return nil, err } c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/reservations/{reservation}/resize") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/snapshotSettings") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("POST", urls, body) + req, err := http.NewRequest("PATCH", urls, body) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "zone": c.zone, - "reservation": c.reservation, + "project": c.project, + "region": c.region, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.regionSnapshotSettings.patch", "request", internallog.HTTPRequest(req, body.Bytes())) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.reservations.resize" call. +// Do executes the "compute.regionSnapshotSettings.patch" call. // 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 *ReservationsResizeCall) Do(opts ...googleapi.CallOption) (*Operation, error) { +func (c *RegionSnapshotSettingsPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -23203,91 +25086,118 @@ func (c *ReservationsResizeCall) Do(opts ...googleapi.CallOption) (*Operation, e }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.regionSnapshotSettings.patch", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type ReservationsSetIamPolicyCall struct { - s *Service - project string - zone string - resource string - zonesetpolicyrequest *ZoneSetPolicyRequest - urlParams_ gensupport.URLParams - ctx_ context.Context - header_ http.Header +type RegionSnapshotsDeleteCall struct { + s *Service + project string + region string + snapshot string + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header } -// SetIamPolicy: Sets the access control policy on the specified resource. -// Replaces any existing policy. +// Delete: Deletes the specified Snapshot resource. Keep in mind that +// deleting +// a single snapshot might not necessarily delete all the data on +// that +// snapshot. If any data on the snapshot that is marked for deletion is +// needed for subsequent snapshots, the data will be moved to the +// next +// corresponding snapshot. +// +// For more information, seeDeleting +// snapshots. // // - project: Project ID for this request. -// - resource: Name or id of the resource for this request. -// - zone: The name of the zone for this request. -func (r *ReservationsService) SetIamPolicy(project string, zone string, resource string, zonesetpolicyrequest *ZoneSetPolicyRequest) *ReservationsSetIamPolicyCall { - c := &ReservationsSetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)} +// - region: The name of the region for this request. +// - snapshot: Name of the snapshot resource to delete. +func (r *RegionSnapshotsService) Delete(project string, region string, snapshot string) *RegionSnapshotsDeleteCall { + c := &RegionSnapshotsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project - c.zone = zone - c.resource = resource - c.zonesetpolicyrequest = zonesetpolicyrequest + c.region = region + c.snapshot = snapshot + 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 *RegionSnapshotsDeleteCall) RequestId(requestId string) *RegionSnapshotsDeleteCall { + 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 // details. -func (c *ReservationsSetIamPolicyCall) Fields(s ...googleapi.Field) *ReservationsSetIamPolicyCall { +func (c *RegionSnapshotsDeleteCall) Fields(s ...googleapi.Field) *RegionSnapshotsDeleteCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } // Context sets the context to be used in this call's Do method. -func (c *ReservationsSetIamPolicyCall) Context(ctx context.Context) *ReservationsSetIamPolicyCall { +func (c *RegionSnapshotsDeleteCall) Context(ctx context.Context) *RegionSnapshotsDeleteCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *ReservationsSetIamPolicyCall) Header() http.Header { +func (c *RegionSnapshotsDeleteCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *ReservationsSetIamPolicyCall) doRequest(alt string) (*http.Response, error) { - reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) - var body io.Reader = nil - body, err := googleapi.WithoutDataWrapper.JSONReader(c.zonesetpolicyrequest) - if err != nil { - return nil, err - } +func (c *RegionSnapshotsDeleteCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/reservations/{resource}/setIamPolicy") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/snapshots/{snapshot}") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("POST", urls, body) + req, err := http.NewRequest("DELETE", urls, nil) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ "project": c.project, - "zone": c.zone, - "resource": c.resource, + "region": c.region, + "snapshot": c.snapshot, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.regionSnapshots.delete", "request", internallog.HTTPRequest(req, nil)) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.reservations.setIamPolicy" call. +// Do executes the "compute.regionSnapshots.delete" call. // Any non-2xx status code is an error. Response headers are in either -// *Policy.ServerResponse.Header or (if a response was returned at all) in +// *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 *ReservationsSetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, error) { +func (c *RegionSnapshotsDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -23306,99 +25216,105 @@ func (c *ReservationsSetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } - ret := &Policy{ + ret := &Operation{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.regionSnapshots.delete", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type ReservationsTestIamPermissionsCall struct { - s *Service - project string - zone string - resource string - testpermissionsrequest *TestPermissionsRequest - urlParams_ gensupport.URLParams - ctx_ context.Context - header_ http.Header +type RegionSnapshotsGetCall struct { + s *Service + project string + region string + snapshot string + urlParams_ gensupport.URLParams + ifNoneMatch_ string + ctx_ context.Context + header_ http.Header } -// TestIamPermissions: Returns permissions that a caller has on the specified -// resource. +// Get: Returns the specified Snapshot resource. // // - project: Project ID for this request. -// - resource: Name or id of the resource for this request. -// - zone: The name of the zone for this request. -func (r *ReservationsService) TestIamPermissions(project string, zone string, resource string, testpermissionsrequest *TestPermissionsRequest) *ReservationsTestIamPermissionsCall { - c := &ReservationsTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)} +// - region: Name of the region for this request. +// - snapshot: Name of the Snapshot resource to return. +func (r *RegionSnapshotsService) Get(project string, region string, snapshot string) *RegionSnapshotsGetCall { + c := &RegionSnapshotsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project - c.zone = zone - c.resource = resource - c.testpermissionsrequest = testpermissionsrequest + c.region = region + c.snapshot = snapshot return c } // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *ReservationsTestIamPermissionsCall) Fields(s ...googleapi.Field) *ReservationsTestIamPermissionsCall { +func (c *RegionSnapshotsGetCall) Fields(s ...googleapi.Field) *RegionSnapshotsGetCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } +// IfNoneMatch sets an 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. +func (c *RegionSnapshotsGetCall) IfNoneMatch(entityTag string) *RegionSnapshotsGetCall { + c.ifNoneMatch_ = entityTag + return c +} + // Context sets the context to be used in this call's Do method. -func (c *ReservationsTestIamPermissionsCall) Context(ctx context.Context) *ReservationsTestIamPermissionsCall { +func (c *RegionSnapshotsGetCall) Context(ctx context.Context) *RegionSnapshotsGetCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *ReservationsTestIamPermissionsCall) Header() http.Header { +func (c *RegionSnapshotsGetCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *ReservationsTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) { - reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) - var body io.Reader = nil - body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest) - if err != nil { - return nil, err +func (c *RegionSnapshotsGetCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) + if c.ifNoneMatch_ != "" { + reqHeaders.Set("If-None-Match", c.ifNoneMatch_) } c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/reservations/{resource}/testIamPermissions") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/snapshots/{snapshot}") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("POST", urls, body) + req, err := http.NewRequest("GET", urls, nil) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ "project": c.project, - "zone": c.zone, - "resource": c.resource, + "region": c.region, + "snapshot": c.snapshot, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.regionSnapshots.get", "request", internallog.HTTPRequest(req, nil)) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.reservations.testIamPermissions" call. +// Do executes the "compute.regionSnapshots.get" call. // Any non-2xx status code is an error. Response headers are in either -// *TestPermissionsResponse.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 *ReservationsTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) { +// *Snapshot.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 *RegionSnapshotsGetCall) Do(opts ...googleapi.CallOption) (*Snapshot, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -23417,125 +25333,114 @@ func (c *ReservationsTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (* if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } - ret := &TestPermissionsResponse{ + ret := &Snapshot{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.regionSnapshots.get", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type ReservationsUpdateCall struct { +type RegionSnapshotsGetIamPolicyCall struct { s *Service project string - zone string - reservation string - reservation2 *Reservation + region string + resource string urlParams_ gensupport.URLParams + ifNoneMatch_ string ctx_ context.Context header_ http.Header } -// Update: Update share settings of the reservation. +// GetIamPolicy: Gets the access control policy for a resource. May be empty if +// no such +// policy or resource exists. // // - project: Project ID for this request. -// - reservation: Name of the reservation to update. -// - zone: Name of the zone for this request. -func (r *ReservationsService) Update(project string, zone string, reservation string, reservation2 *Reservation) *ReservationsUpdateCall { - c := &ReservationsUpdateCall{s: r.s, urlParams_: make(gensupport.URLParams)} +// - region: The name of the region for this request. +// - resource: Name or id of the resource for this request. +func (r *RegionSnapshotsService) GetIamPolicy(project string, region string, resource string) *RegionSnapshotsGetIamPolicyCall { + c := &RegionSnapshotsGetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project - c.zone = zone - c.reservation = reservation - c.reservation2 = reservation2 - return c -} - -// Paths sets the optional parameter "paths": -func (c *ReservationsUpdateCall) Paths(paths ...string) *ReservationsUpdateCall { - c.urlParams_.SetMulti("paths", append([]string{}, paths...)) - 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 *ReservationsUpdateCall) RequestId(requestId string) *ReservationsUpdateCall { - c.urlParams_.Set("requestId", requestId) + c.region = region + c.resource = resource return c } -// UpdateMask sets the optional parameter "updateMask": Update_mask indicates -// fields to be updated as part of this request. -func (c *ReservationsUpdateCall) UpdateMask(updateMask string) *ReservationsUpdateCall { - c.urlParams_.Set("updateMask", updateMask) +// OptionsRequestedPolicyVersion sets the optional parameter +// "optionsRequestedPolicyVersion": Requested IAM Policy version. +func (c *RegionSnapshotsGetIamPolicyCall) OptionsRequestedPolicyVersion(optionsRequestedPolicyVersion int64) *RegionSnapshotsGetIamPolicyCall { + c.urlParams_.Set("optionsRequestedPolicyVersion", fmt.Sprint(optionsRequestedPolicyVersion)) return c } // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *ReservationsUpdateCall) Fields(s ...googleapi.Field) *ReservationsUpdateCall { +func (c *RegionSnapshotsGetIamPolicyCall) Fields(s ...googleapi.Field) *RegionSnapshotsGetIamPolicyCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } +// IfNoneMatch sets an 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. +func (c *RegionSnapshotsGetIamPolicyCall) IfNoneMatch(entityTag string) *RegionSnapshotsGetIamPolicyCall { + c.ifNoneMatch_ = entityTag + return c +} + // Context sets the context to be used in this call's Do method. -func (c *ReservationsUpdateCall) Context(ctx context.Context) *ReservationsUpdateCall { +func (c *RegionSnapshotsGetIamPolicyCall) Context(ctx context.Context) *RegionSnapshotsGetIamPolicyCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *ReservationsUpdateCall) Header() http.Header { +func (c *RegionSnapshotsGetIamPolicyCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *ReservationsUpdateCall) doRequest(alt string) (*http.Response, error) { - reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) - var body io.Reader = nil - body, err := googleapi.WithoutDataWrapper.JSONReader(c.reservation2) - if err != nil { - return nil, err +func (c *RegionSnapshotsGetIamPolicyCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) + if c.ifNoneMatch_ != "" { + reqHeaders.Set("If-None-Match", c.ifNoneMatch_) } c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/reservations/{reservation}") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/snapshots/{resource}/getIamPolicy") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("PATCH", urls, body) + req, err := http.NewRequest("GET", urls, nil) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "zone": c.zone, - "reservation": c.reservation, + "project": c.project, + "region": c.region, + "resource": c.resource, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.regionSnapshots.getIamPolicy", "request", internallog.HTTPRequest(req, nil)) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.reservations.update" call. +// Do executes the "compute.regionSnapshots.getIamPolicy" call. // 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 +// *Policy.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 *ReservationsUpdateCall) Do(opts ...googleapi.CallOption) (*Operation, error) { +func (c *RegionSnapshotsGetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -23554,197 +25459,119 @@ func (c *ReservationsUpdateCall) Do(opts ...googleapi.CallOption) (*Operation, e if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } - ret := &Operation{ + ret := &Policy{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.regionSnapshots.getIamPolicy", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type ResourcePoliciesAggregatedListCall struct { - s *Service - project string - urlParams_ gensupport.URLParams - ifNoneMatch_ string - ctx_ context.Context - header_ http.Header +type RegionSnapshotsInsertCall struct { + s *Service + project string + region string + snapshot *Snapshot + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header } -// AggregatedList: Retrieves an aggregated list of resource policies. To -// prevent failure, Google recommends that you set the `returnPartialSuccess` -// parameter to `true`. +// Insert: Creates a snapshot in the specified region using the data +// included +// in the request. // // - project: Project ID for this request. -func (r *ResourcePoliciesService) AggregatedList(project string) *ResourcePoliciesAggregatedListCall { - c := &ResourcePoliciesAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)} +// - region: Name of the region for this request. +func (r *RegionSnapshotsService) Insert(project string, region string, snapshot *Snapshot) *RegionSnapshotsInsertCall { + c := &RegionSnapshotsInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project + c.region = region + c.snapshot = snapshot return c } -// Filter sets the optional parameter "filter": A filter expression that -// filters resources listed in the response. Most Compute resources support two -// types of filter expressions: expressions that support regular expressions -// and expressions that follow API improvement proposal AIP-160. These two -// types of filter expressions cannot be mixed in one request. If you want to -// use AIP-160, your expression must specify the field name, an operator, and -// the value that you want to use for filtering. The value must be a string, a -// number, or a boolean. The 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`. The `:*` comparison can be used to test whether a key has -// been defined. For example, to find all objects with `owner` label use: ``` -// labels.owner:* ``` 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) ``` If you want to use a regular -// expression, use the `eq` (equal) or `ne` (not equal) operator against a -// single un-parenthesized expression with or without quotes or against -// multiple parenthesized expressions. Examples: `fieldname eq unquoted -// literal` `fieldname eq 'single quoted literal'` `fieldname eq "double quoted -// literal" `(fieldname1 eq literal) (fieldname2 ne "literal")` The literal -// value is interpreted as a regular expression using Google RE2 library -// syntax. The literal value must match the entire field. For example, to -// filter for instances that do not end with name "instance", you would use -// `name ne .*instance`. You cannot combine constraints on multiple fields -// using regular expressions. -func (c *ResourcePoliciesAggregatedListCall) Filter(filter string) *ResourcePoliciesAggregatedListCall { - c.urlParams_.Set("filter", filter) - return c -} - -// IncludeAllScopes sets the optional parameter "includeAllScopes": Indicates -// whether every visible scope for each scope type (zone, region, global) -// should be included in the response. For new resource types added after this -// field, the flag has no effect as new resource types will always include -// every visible scope for each scope type in response. For resource types -// which predate this field, if this flag is omitted or false, only scopes of -// the scope types where the resource type is expected to be found will be -// included. -func (c *ResourcePoliciesAggregatedListCall) IncludeAllScopes(includeAllScopes bool) *ResourcePoliciesAggregatedListCall { - c.urlParams_.Set("includeAllScopes", fmt.Sprint(includeAllScopes)) - 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 *ResourcePoliciesAggregatedListCall) MaxResults(maxResults int64) *ResourcePoliciesAggregatedListCall { - 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 *ResourcePoliciesAggregatedListCall) OrderBy(orderBy string) *ResourcePoliciesAggregatedListCall { - 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 *ResourcePoliciesAggregatedListCall) PageToken(pageToken string) *ResourcePoliciesAggregatedListCall { - c.urlParams_.Set("pageToken", pageToken) - return c -} - -// ReturnPartialSuccess sets the optional parameter "returnPartialSuccess": -// Opt-in for partial success behavior which provides partial results in case -// of failure. The default value is false. For example, when partial success -// behavior is enabled, aggregatedList for a single zone scope either returns -// all resources in the zone or no resources, with an error code. -func (c *ResourcePoliciesAggregatedListCall) ReturnPartialSuccess(returnPartialSuccess bool) *ResourcePoliciesAggregatedListCall { - c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess)) - return c -} - -// ServiceProjectNumber sets the optional parameter "serviceProjectNumber": The -// Shared VPC service project id or service project number for which aggregated -// list request is invoked for subnetworks list-usable api. -func (c *ResourcePoliciesAggregatedListCall) ServiceProjectNumber(serviceProjectNumber int64) *ResourcePoliciesAggregatedListCall { - c.urlParams_.Set("serviceProjectNumber", fmt.Sprint(serviceProjectNumber)) +// 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 *RegionSnapshotsInsertCall) RequestId(requestId string) *RegionSnapshotsInsertCall { + 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 // details. -func (c *ResourcePoliciesAggregatedListCall) Fields(s ...googleapi.Field) *ResourcePoliciesAggregatedListCall { +func (c *RegionSnapshotsInsertCall) Fields(s ...googleapi.Field) *RegionSnapshotsInsertCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } -// IfNoneMatch sets an 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. -func (c *ResourcePoliciesAggregatedListCall) IfNoneMatch(entityTag string) *ResourcePoliciesAggregatedListCall { - c.ifNoneMatch_ = entityTag - return c -} - // Context sets the context to be used in this call's Do method. -func (c *ResourcePoliciesAggregatedListCall) Context(ctx context.Context) *ResourcePoliciesAggregatedListCall { +func (c *RegionSnapshotsInsertCall) Context(ctx context.Context) *RegionSnapshotsInsertCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *ResourcePoliciesAggregatedListCall) Header() http.Header { +func (c *RegionSnapshotsInsertCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *ResourcePoliciesAggregatedListCall) doRequest(alt string) (*http.Response, error) { - reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) - if c.ifNoneMatch_ != "" { - reqHeaders.Set("If-None-Match", c.ifNoneMatch_) +func (c *RegionSnapshotsInsertCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) + body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.snapshot) + if err != nil { + return nil, err } - var body io.Reader = nil c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/aggregated/resourcePolicies") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/snapshots") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("GET", urls, body) + req, err := http.NewRequest("POST", urls, body) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ "project": c.project, + "region": c.region, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.regionSnapshots.insert", "request", internallog.HTTPRequest(req, body.Bytes())) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.resourcePolicies.aggregatedList" call. +// Do executes the "compute.regionSnapshots.insert" call. // Any non-2xx status code is an error. Response headers are in either -// *ResourcePolicyAggregatedList.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 *ResourcePoliciesAggregatedListCall) Do(opts ...googleapi.CallOption) (*ResourcePolicyAggregatedList, error) { +// *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 *RegionSnapshotsInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -23763,127 +25590,230 @@ func (c *ResourcePoliciesAggregatedListCall) Do(opts ...googleapi.CallOption) (* if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } - ret := &ResourcePolicyAggregatedList{ + ret := &Operation{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.regionSnapshots.insert", "response", internallog.HTTPResponse(res, b)) return ret, nil } -// 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 *ResourcePoliciesAggregatedListCall) Pages(ctx context.Context, f func(*ResourcePolicyAggregatedList) error) error { - c.ctx_ = ctx - defer c.PageToken(c.urlParams_.Get("pageToken")) - 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) - } -} - -type ResourcePoliciesDeleteCall struct { - s *Service - project string - region string - resourcePolicy string - urlParams_ gensupport.URLParams - ctx_ context.Context - header_ http.Header +type RegionSnapshotsListCall struct { + s *Service + project string + region string + urlParams_ gensupport.URLParams + ifNoneMatch_ string + ctx_ context.Context + header_ http.Header } -// Delete: Deletes the specified resource policy. +// List: Retrieves the list of Snapshot resources contained within +// the specified region. // // - project: Project ID for this request. // - region: Name of the region for this request. -// - resourcePolicy: Name of the resource policy to delete. -func (r *ResourcePoliciesService) Delete(project string, region string, resourcePolicy string) *ResourcePoliciesDeleteCall { - c := &ResourcePoliciesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)} +func (r *RegionSnapshotsService) List(project string, region string) *RegionSnapshotsListCall { + c := &RegionSnapshotsListCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project c.region = region - c.resourcePolicy = resourcePolicy 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 *ResourcePoliciesDeleteCall) RequestId(requestId string) *ResourcePoliciesDeleteCall { - c.urlParams_.Set("requestId", requestId) +// Filter sets the optional parameter "filter": A filter expression that +// filters resources listed in the response. Most +// Compute resources support two types of filter expressions: +// expressions that support regular expressions and expressions that follow +// API improvement proposal AIP-160. +// These two types of filter expressions cannot be mixed in one request. +// +// If you want to use AIP-160, your expression must specify the field name, +// an +// operator, and the value that you want to use for filtering. The value +// must be a string, a number, or a boolean. The 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`. +// +// The `:*` comparison can be used to test whether a key has been defined. +// For example, to find all objects with `owner` label +// use: +// ``` +// labels.owner:* +// ``` +// +// 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 onresource 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) +// ``` +// +// If you want to use a regular expression, use the `eq` (equal) or `ne` +// (not equal) operator against a single un-parenthesized expression with +// or +// without quotes or against multiple parenthesized expressions. +// Examples: +// +// `fieldname eq unquoted literal` +// `fieldname eq 'single quoted literal'` +// `fieldname eq "double quoted literal" +// `(fieldname1 eq literal) (fieldname2 ne "literal")` +// +// The literal value is interpreted as a regular expression using GoogleRE2 +// library syntax. +// The literal value must match the entire field. +// +// For example, to filter for instances that do not end with name +// "instance", +// you would use `name ne .*instance`. +// +// You cannot combine constraints on multiple fields using regular +// expressions. +func (c *RegionSnapshotsListCall) Filter(filter string) *RegionSnapshotsListCall { + 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 *RegionSnapshotsListCall) MaxResults(maxResults int64) *RegionSnapshotsListCall { + 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 *RegionSnapshotsListCall) OrderBy(orderBy string) *RegionSnapshotsListCall { + 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 *RegionSnapshotsListCall) PageToken(pageToken string) *RegionSnapshotsListCall { + c.urlParams_.Set("pageToken", pageToken) + return c +} + +// ReturnPartialSuccess sets the optional parameter "returnPartialSuccess": +// Opt-in for partial success behavior which provides partial results in +// case +// of failure. The default value is false. +// +// For example, when partial success behavior is enabled, aggregatedList for +// a +// single zone scope either returns all resources in the zone or no +// resources, +// with an error code. +func (c *RegionSnapshotsListCall) ReturnPartialSuccess(returnPartialSuccess bool) *RegionSnapshotsListCall { + c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess)) return c } // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *ResourcePoliciesDeleteCall) Fields(s ...googleapi.Field) *ResourcePoliciesDeleteCall { +func (c *RegionSnapshotsListCall) Fields(s ...googleapi.Field) *RegionSnapshotsListCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } +// IfNoneMatch sets an 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. +func (c *RegionSnapshotsListCall) IfNoneMatch(entityTag string) *RegionSnapshotsListCall { + c.ifNoneMatch_ = entityTag + return c +} + // Context sets the context to be used in this call's Do method. -func (c *ResourcePoliciesDeleteCall) Context(ctx context.Context) *ResourcePoliciesDeleteCall { +func (c *RegionSnapshotsListCall) Context(ctx context.Context) *RegionSnapshotsListCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *ResourcePoliciesDeleteCall) Header() http.Header { +func (c *RegionSnapshotsListCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *ResourcePoliciesDeleteCall) doRequest(alt string) (*http.Response, error) { +func (c *RegionSnapshotsListCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) - var body io.Reader = nil + if c.ifNoneMatch_ != "" { + reqHeaders.Set("If-None-Match", c.ifNoneMatch_) + } c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/resourcePolicies/{resourcePolicy}") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/snapshots") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("DELETE", urls, body) + req, err := http.NewRequest("GET", urls, nil) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "region": c.region, - "resourcePolicy": c.resourcePolicy, + "project": c.project, + "region": c.region, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.regionSnapshots.list", "request", internallog.HTTPRequest(req, nil)) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.resourcePolicies.delete" call. +// Do executes the "compute.regionSnapshots.list" call. // 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 +// *SnapshotList.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 *ResourcePoliciesDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) { +func (c *RegionSnapshotsListCall) Do(opts ...googleapi.CallOption) (*SnapshotList, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -23902,103 +25832,122 @@ func (c *ResourcePoliciesDeleteCall) Do(opts ...googleapi.CallOption) (*Operatio if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } - ret := &Operation{ + ret := &SnapshotList{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.regionSnapshots.list", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type ResourcePoliciesGetCall struct { - s *Service - project string - region string - resourcePolicy string - urlParams_ gensupport.URLParams - ifNoneMatch_ string - ctx_ context.Context - header_ http.Header +// 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 *RegionSnapshotsListCall) Pages(ctx context.Context, f func(*SnapshotList) error) error { + c.ctx_ = ctx + defer c.PageToken(c.urlParams_.Get("pageToken")) + 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) + } } -// Get: Retrieves all information of the specified resource policy. +type RegionSnapshotsSetIamPolicyCall struct { + s *Service + project string + region string + resource string + regionsetpolicyrequest *RegionSetPolicyRequest + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header +} + +// SetIamPolicy: Sets the access control policy on the specified +// resource. +// Replaces any existing policy. // // - project: Project ID for this request. -// - region: Name of the region for this request. -// - resourcePolicy: Name of the resource policy to retrieve. -func (r *ResourcePoliciesService) Get(project string, region string, resourcePolicy string) *ResourcePoliciesGetCall { - c := &ResourcePoliciesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)} +// - region: The name of the region for this request. +// - resource: Name or id of the resource for this request. +func (r *RegionSnapshotsService) SetIamPolicy(project string, region string, resource string, regionsetpolicyrequest *RegionSetPolicyRequest) *RegionSnapshotsSetIamPolicyCall { + c := &RegionSnapshotsSetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project c.region = region - c.resourcePolicy = resourcePolicy + c.resource = resource + c.regionsetpolicyrequest = regionsetpolicyrequest return c } // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *ResourcePoliciesGetCall) Fields(s ...googleapi.Field) *ResourcePoliciesGetCall { +func (c *RegionSnapshotsSetIamPolicyCall) Fields(s ...googleapi.Field) *RegionSnapshotsSetIamPolicyCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } -// IfNoneMatch sets an 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. -func (c *ResourcePoliciesGetCall) IfNoneMatch(entityTag string) *ResourcePoliciesGetCall { - c.ifNoneMatch_ = entityTag - return c -} - // Context sets the context to be used in this call's Do method. -func (c *ResourcePoliciesGetCall) Context(ctx context.Context) *ResourcePoliciesGetCall { +func (c *RegionSnapshotsSetIamPolicyCall) Context(ctx context.Context) *RegionSnapshotsSetIamPolicyCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *ResourcePoliciesGetCall) Header() http.Header { +func (c *RegionSnapshotsSetIamPolicyCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *ResourcePoliciesGetCall) doRequest(alt string) (*http.Response, error) { - reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) - if c.ifNoneMatch_ != "" { - reqHeaders.Set("If-None-Match", c.ifNoneMatch_) +func (c *RegionSnapshotsSetIamPolicyCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) + body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.regionsetpolicyrequest) + if err != nil { + return nil, err } - var body io.Reader = nil c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/resourcePolicies/{resourcePolicy}") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/snapshots/{resource}/setIamPolicy") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("GET", urls, body) + req, err := http.NewRequest("POST", urls, body) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "region": c.region, - "resourcePolicy": c.resourcePolicy, + "project": c.project, + "region": c.region, + "resource": c.resource, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.regionSnapshots.setIamPolicy", "request", internallog.HTTPRequest(req, body.Bytes())) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.resourcePolicies.get" call. +// Do executes the "compute.regionSnapshots.setIamPolicy" call. // Any non-2xx status code is an error. Response headers are in either -// *ResourcePolicy.ServerResponse.Header or (if a response was returned at all) -// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check +// *Policy.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 *ResourcePoliciesGetCall) Do(opts ...googleapi.CallOption) (*ResourcePolicy, error) { +func (c *RegionSnapshotsSetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -24017,93 +25966,105 @@ func (c *ResourcePoliciesGetCall) Do(opts ...googleapi.CallOption) (*ResourcePol if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } - ret := &ResourcePolicy{ + ret := &Policy{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.regionSnapshots.setIamPolicy", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type ResourcePoliciesGetIamPolicyCall struct { - s *Service - project string - region string - resource string - urlParams_ gensupport.URLParams - ifNoneMatch_ string - ctx_ context.Context - header_ http.Header +type RegionSnapshotsSetLabelsCall struct { + s *Service + project string + region string + resource string + regionsetlabelsrequest *RegionSetLabelsRequest + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header } -// GetIamPolicy: Gets the access control policy for a resource. May be empty if -// no such policy or resource exists. +// SetLabels: Sets the labels on a regional snapshot. To learn more about +// labels, read +// the Labeling Resources +// documentation. // // - project: Project ID for this request. -// - region: The name of the region for this request. +// - region: The region for this request. // - resource: Name or id of the resource for this request. -func (r *ResourcePoliciesService) GetIamPolicy(project string, region string, resource string) *ResourcePoliciesGetIamPolicyCall { - c := &ResourcePoliciesGetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)} +func (r *RegionSnapshotsService) SetLabels(project string, region string, resource string, regionsetlabelsrequest *RegionSetLabelsRequest) *RegionSnapshotsSetLabelsCall { + c := &RegionSnapshotsSetLabelsCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project c.region = region c.resource = resource + c.regionsetlabelsrequest = regionsetlabelsrequest return c } -// OptionsRequestedPolicyVersion sets the optional parameter -// "optionsRequestedPolicyVersion": Requested IAM Policy version. -func (c *ResourcePoliciesGetIamPolicyCall) OptionsRequestedPolicyVersion(optionsRequestedPolicyVersion int64) *ResourcePoliciesGetIamPolicyCall { - c.urlParams_.Set("optionsRequestedPolicyVersion", fmt.Sprint(optionsRequestedPolicyVersion)) +// 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 *RegionSnapshotsSetLabelsCall) RequestId(requestId string) *RegionSnapshotsSetLabelsCall { + 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 // details. -func (c *ResourcePoliciesGetIamPolicyCall) Fields(s ...googleapi.Field) *ResourcePoliciesGetIamPolicyCall { +func (c *RegionSnapshotsSetLabelsCall) Fields(s ...googleapi.Field) *RegionSnapshotsSetLabelsCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } -// IfNoneMatch sets an 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. -func (c *ResourcePoliciesGetIamPolicyCall) IfNoneMatch(entityTag string) *ResourcePoliciesGetIamPolicyCall { - c.ifNoneMatch_ = entityTag - return c -} - // Context sets the context to be used in this call's Do method. -func (c *ResourcePoliciesGetIamPolicyCall) Context(ctx context.Context) *ResourcePoliciesGetIamPolicyCall { +func (c *RegionSnapshotsSetLabelsCall) Context(ctx context.Context) *RegionSnapshotsSetLabelsCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *ResourcePoliciesGetIamPolicyCall) Header() http.Header { +func (c *RegionSnapshotsSetLabelsCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *ResourcePoliciesGetIamPolicyCall) doRequest(alt string) (*http.Response, error) { - reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) - if c.ifNoneMatch_ != "" { - reqHeaders.Set("If-None-Match", c.ifNoneMatch_) +func (c *RegionSnapshotsSetLabelsCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) + body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.regionsetlabelsrequest) + if err != nil { + return nil, err } - var body io.Reader = nil c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/resourcePolicies/{resource}/getIamPolicy") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/snapshots/{resource}/setLabels") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("GET", urls, body) + req, err := http.NewRequest("POST", urls, body) if err != nil { return nil, err } @@ -24113,15 +26074,16 @@ func (c *ResourcePoliciesGetIamPolicyCall) doRequest(alt string) (*http.Response "region": c.region, "resource": c.resource, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.regionSnapshots.setLabels", "request", internallog.HTTPRequest(req, body.Bytes())) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.resourcePolicies.getIamPolicy" call. +// Do executes the "compute.regionSnapshots.setLabels" call. // Any non-2xx status code is an error. Response headers are in either -// *Policy.ServerResponse.Header or (if a response was returned at all) in +// *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 *ResourcePoliciesGetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, error) { +func (c *RegionSnapshotsSetLabelsCall) Do(opts ...googleapi.CallOption) (*Operation, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -24140,89 +26102,79 @@ func (c *ResourcePoliciesGetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Po if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } - ret := &Policy{ + ret := &Operation{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.regionSnapshots.setLabels", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type ResourcePoliciesInsertCall struct { - s *Service - project string - region string - resourcepolicy *ResourcePolicy - urlParams_ gensupport.URLParams - ctx_ context.Context - header_ http.Header +type RegionSnapshotsTestIamPermissionsCall struct { + s *Service + project string + region string + resource string + testpermissionsrequest *TestPermissionsRequest + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header } -// Insert: Creates a new resource policy. +// TestIamPermissions: Returns permissions that a caller has on the specified +// resource. // // - project: Project ID for this request. -// - region: Name of the region for this request. -func (r *ResourcePoliciesService) Insert(project string, region string, resourcepolicy *ResourcePolicy) *ResourcePoliciesInsertCall { - c := &ResourcePoliciesInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)} +// - region: The name of the region for this request. +// - resource: Name or id of the resource for this request. +func (r *RegionSnapshotsService) TestIamPermissions(project string, region string, resource string, testpermissionsrequest *TestPermissionsRequest) *RegionSnapshotsTestIamPermissionsCall { + c := &RegionSnapshotsTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project c.region = region - c.resourcepolicy = resourcepolicy - 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 *ResourcePoliciesInsertCall) RequestId(requestId string) *ResourcePoliciesInsertCall { - c.urlParams_.Set("requestId", requestId) + c.resource = resource + c.testpermissionsrequest = testpermissionsrequest return c } // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *ResourcePoliciesInsertCall) Fields(s ...googleapi.Field) *ResourcePoliciesInsertCall { +func (c *RegionSnapshotsTestIamPermissionsCall) Fields(s ...googleapi.Field) *RegionSnapshotsTestIamPermissionsCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } // Context sets the context to be used in this call's Do method. -func (c *ResourcePoliciesInsertCall) Context(ctx context.Context) *ResourcePoliciesInsertCall { +func (c *RegionSnapshotsTestIamPermissionsCall) Context(ctx context.Context) *RegionSnapshotsTestIamPermissionsCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *ResourcePoliciesInsertCall) Header() http.Header { +func (c *RegionSnapshotsTestIamPermissionsCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *ResourcePoliciesInsertCall) doRequest(alt string) (*http.Response, error) { +func (c *RegionSnapshotsTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) - var body io.Reader = nil - body, err := googleapi.WithoutDataWrapper.JSONReader(c.resourcepolicy) + body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.testpermissionsrequest) if err != nil { return nil, err } c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/resourcePolicies") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/snapshots/{resource}/testIamPermissions") urls += "?" + c.urlParams_.Encode() req, err := http.NewRequest("POST", urls, body) if err != nil { @@ -24230,18 +26182,21 @@ func (c *ResourcePoliciesInsertCall) doRequest(alt string) (*http.Response, erro } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "region": c.region, + "project": c.project, + "region": c.region, + "resource": c.resource, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.regionSnapshots.testIamPermissions", "request", internallog.HTTPRequest(req, body.Bytes())) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.resourcePolicies.insert" call. +// Do executes the "compute.regionSnapshots.testIamPermissions" call. // 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 *ResourcePoliciesInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) { +// *TestPermissionsResponse.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 *RegionSnapshotsTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -24260,179 +26215,123 @@ func (c *ResourcePoliciesInsertCall) Do(opts ...googleapi.CallOption) (*Operatio if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } - ret := &Operation{ + ret := &TestPermissionsResponse{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.regionSnapshots.testIamPermissions", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type ResourcePoliciesListCall struct { - s *Service - project string - region string - urlParams_ gensupport.URLParams - ifNoneMatch_ string - ctx_ context.Context - header_ http.Header +type RegionSnapshotsUpdateKmsKeyCall struct { + s *Service + project string + region string + snapshot string + regionsnapshotupdatekmskeyrequest *RegionSnapshotUpdateKmsKeyRequest + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header } -// List: A list all the resource policies that have been configured for the -// specified project in specified region. +// UpdateKmsKey: Rotates the customer-managed +// encryption key to the latest version for the specified snapshot. // -// - project: Project ID for this request. -// - region: Name of the region for this request. -func (r *ResourcePoliciesService) List(project string, region string) *ResourcePoliciesListCall { - c := &ResourcePoliciesListCall{s: r.s, urlParams_: make(gensupport.URLParams)} +// - project: Project ID for this request. +// - region: Name of the region for this request. +// - snapshot: Name of the snapshot resource to update. Should conform to +// RFC1035. +func (r *RegionSnapshotsService) UpdateKmsKey(project string, region string, snapshot string, regionsnapshotupdatekmskeyrequest *RegionSnapshotUpdateKmsKeyRequest) *RegionSnapshotsUpdateKmsKeyCall { + c := &RegionSnapshotsUpdateKmsKeyCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project c.region = region + c.snapshot = snapshot + c.regionsnapshotupdatekmskeyrequest = regionsnapshotupdatekmskeyrequest return c } -// Filter sets the optional parameter "filter": A filter expression that -// filters resources listed in the response. Most Compute resources support two -// types of filter expressions: expressions that support regular expressions -// and expressions that follow API improvement proposal AIP-160. These two -// types of filter expressions cannot be mixed in one request. If you want to -// use AIP-160, your expression must specify the field name, an operator, and -// the value that you want to use for filtering. The value must be a string, a -// number, or a boolean. The 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`. The `:*` comparison can be used to test whether a key has -// been defined. For example, to find all objects with `owner` label use: ``` -// labels.owner:* ``` 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) ``` If you want to use a regular -// expression, use the `eq` (equal) or `ne` (not equal) operator against a -// single un-parenthesized expression with or without quotes or against -// multiple parenthesized expressions. Examples: `fieldname eq unquoted -// literal` `fieldname eq 'single quoted literal'` `fieldname eq "double quoted -// literal" `(fieldname1 eq literal) (fieldname2 ne "literal")` The literal -// value is interpreted as a regular expression using Google RE2 library -// syntax. The literal value must match the entire field. For example, to -// filter for instances that do not end with name "instance", you would use -// `name ne .*instance`. You cannot combine constraints on multiple fields -// using regular expressions. -func (c *ResourcePoliciesListCall) Filter(filter string) *ResourcePoliciesListCall { - 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 *ResourcePoliciesListCall) MaxResults(maxResults int64) *ResourcePoliciesListCall { - 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 *ResourcePoliciesListCall) OrderBy(orderBy string) *ResourcePoliciesListCall { - 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 *ResourcePoliciesListCall) PageToken(pageToken string) *ResourcePoliciesListCall { - c.urlParams_.Set("pageToken", pageToken) - return c -} - -// ReturnPartialSuccess sets the optional parameter "returnPartialSuccess": -// Opt-in for partial success behavior which provides partial results in case -// of failure. The default value is false. For example, when partial success -// behavior is enabled, aggregatedList for a single zone scope either returns -// all resources in the zone or no resources, with an error code. -func (c *ResourcePoliciesListCall) ReturnPartialSuccess(returnPartialSuccess bool) *ResourcePoliciesListCall { - c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess)) +// 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 *RegionSnapshotsUpdateKmsKeyCall) RequestId(requestId string) *RegionSnapshotsUpdateKmsKeyCall { + 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 // details. -func (c *ResourcePoliciesListCall) Fields(s ...googleapi.Field) *ResourcePoliciesListCall { +func (c *RegionSnapshotsUpdateKmsKeyCall) Fields(s ...googleapi.Field) *RegionSnapshotsUpdateKmsKeyCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } -// IfNoneMatch sets an 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. -func (c *ResourcePoliciesListCall) IfNoneMatch(entityTag string) *ResourcePoliciesListCall { - c.ifNoneMatch_ = entityTag - return c -} - // Context sets the context to be used in this call's Do method. -func (c *ResourcePoliciesListCall) Context(ctx context.Context) *ResourcePoliciesListCall { +func (c *RegionSnapshotsUpdateKmsKeyCall) Context(ctx context.Context) *RegionSnapshotsUpdateKmsKeyCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *ResourcePoliciesListCall) Header() http.Header { +func (c *RegionSnapshotsUpdateKmsKeyCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *ResourcePoliciesListCall) doRequest(alt string) (*http.Response, error) { - reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) - if c.ifNoneMatch_ != "" { - reqHeaders.Set("If-None-Match", c.ifNoneMatch_) +func (c *RegionSnapshotsUpdateKmsKeyCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) + body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.regionsnapshotupdatekmskeyrequest) + if err != nil { + return nil, err } - var body io.Reader = nil c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/resourcePolicies") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/snapshots/{snapshot}/updateKmsKey") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("GET", urls, body) + req, err := http.NewRequest("POST", urls, body) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "region": c.region, + "project": c.project, + "region": c.region, + "snapshot": c.snapshot, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.regionSnapshots.updateKmsKey", "request", internallog.HTTPRequest(req, body.Bytes())) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.resourcePolicies.list" call. +// Do executes the "compute.regionSnapshots.updateKmsKey" call. // Any non-2xx status code is an error. Response headers are in either -// *ResourcePolicyList.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 *ResourcePoliciesListCall) Do(opts ...googleapi.CallOption) (*ResourcePolicyList, error) { +// *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 *RegionSnapshotsUpdateKmsKeyCall) Do(opts ...googleapi.CallOption) (*Operation, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -24451,122 +26350,96 @@ func (c *ResourcePoliciesListCall) Do(opts ...googleapi.CallOption) (*ResourcePo if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } - ret := &ResourcePolicyList{ + ret := &Operation{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.regionSnapshots.updateKmsKey", "response", internallog.HTTPResponse(res, b)) return ret, nil } -// 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 *ResourcePoliciesListCall) Pages(ctx context.Context, f func(*ResourcePolicyList) error) error { - c.ctx_ = ctx - defer c.PageToken(c.urlParams_.Get("pageToken")) - 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) - } -} - -type ResourcePoliciesPatchCall struct { +type RegionSslCertificatesDeleteCall struct { s *Service project string region string - resourcePolicy string - resourcepolicy *ResourcePolicy + sslCertificate string urlParams_ gensupport.URLParams ctx_ context.Context header_ http.Header } -// Patch: Modify the specified resource policy. +// Delete: Deletes the specified SslCertificate resource in the region. // // - project: Project ID for this request. -// - region: Name of the region for this request. -// - resourcePolicy: Id of the resource policy to patch. -func (r *ResourcePoliciesService) Patch(project string, region string, resourcePolicy string, resourcepolicy *ResourcePolicy) *ResourcePoliciesPatchCall { - c := &ResourcePoliciesPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)} +// - region: Name of the region scoping this request. +// - sslCertificate: Name of the SslCertificate resource to delete. +func (r *RegionSslCertificatesService) Delete(project string, region string, sslCertificate string) *RegionSslCertificatesDeleteCall { + c := &RegionSslCertificatesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project c.region = region - c.resourcePolicy = resourcePolicy - c.resourcepolicy = resourcepolicy + c.sslCertificate = sslCertificate 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 *ResourcePoliciesPatchCall) RequestId(requestId string) *ResourcePoliciesPatchCall { +// 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 *RegionSslCertificatesDeleteCall) RequestId(requestId string) *RegionSslCertificatesDeleteCall { c.urlParams_.Set("requestId", requestId) return c } -// UpdateMask sets the optional parameter "updateMask": update_mask indicates -// fields to be updated as part of this request. -func (c *ResourcePoliciesPatchCall) UpdateMask(updateMask string) *ResourcePoliciesPatchCall { - c.urlParams_.Set("updateMask", updateMask) - return c -} - // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *ResourcePoliciesPatchCall) Fields(s ...googleapi.Field) *ResourcePoliciesPatchCall { +func (c *RegionSslCertificatesDeleteCall) Fields(s ...googleapi.Field) *RegionSslCertificatesDeleteCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } // Context sets the context to be used in this call's Do method. -func (c *ResourcePoliciesPatchCall) Context(ctx context.Context) *ResourcePoliciesPatchCall { +func (c *RegionSslCertificatesDeleteCall) Context(ctx context.Context) *RegionSslCertificatesDeleteCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *ResourcePoliciesPatchCall) Header() http.Header { +func (c *RegionSslCertificatesDeleteCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *ResourcePoliciesPatchCall) doRequest(alt string) (*http.Response, error) { - reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) - var body io.Reader = nil - body, err := googleapi.WithoutDataWrapper.JSONReader(c.resourcepolicy) - if err != nil { - return nil, err - } +func (c *RegionSslCertificatesDeleteCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/resourcePolicies/{resourcePolicy}") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/sslCertificates/{sslCertificate}") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("PATCH", urls, body) + req, err := http.NewRequest("DELETE", urls, nil) if err != nil { return nil, err } @@ -24574,17 +26447,18 @@ func (c *ResourcePoliciesPatchCall) doRequest(alt string) (*http.Response, error googleapi.Expand(req.URL, map[string]string{ "project": c.project, "region": c.region, - "resourcePolicy": c.resourcePolicy, + "sslCertificate": c.sslCertificate, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.regionSslCertificates.delete", "request", internallog.HTTPRequest(req, nil)) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.resourcePolicies.patch" call. +// Do executes the "compute.regionSslCertificates.delete" call. // 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 *ResourcePoliciesPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) { +func (c *RegionSslCertificatesDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -24610,91 +26484,101 @@ func (c *ResourcePoliciesPatchCall) Do(opts ...googleapi.CallOption) (*Operation }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.regionSslCertificates.delete", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type ResourcePoliciesSetIamPolicyCall struct { - s *Service - project string - region string - resource string - regionsetpolicyrequest *RegionSetPolicyRequest - urlParams_ gensupport.URLParams - ctx_ context.Context - header_ http.Header +type RegionSslCertificatesGetCall struct { + s *Service + project string + region string + sslCertificate string + urlParams_ gensupport.URLParams + ifNoneMatch_ string + ctx_ context.Context + header_ http.Header } -// SetIamPolicy: Sets the access control policy on the specified resource. -// Replaces any existing policy. +// Get: Returns the specified SslCertificate resource in the specified region. +// Get +// a list of available SSL certificates by making a list() +// request. // // - project: Project ID for this request. -// - region: The name of the region for this request. -// - resource: Name or id of the resource for this request. -func (r *ResourcePoliciesService) SetIamPolicy(project string, region string, resource string, regionsetpolicyrequest *RegionSetPolicyRequest) *ResourcePoliciesSetIamPolicyCall { - c := &ResourcePoliciesSetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)} +// - region: Name of the region scoping this request. +// - sslCertificate: Name of the SslCertificate resource to return. +func (r *RegionSslCertificatesService) Get(project string, region string, sslCertificate string) *RegionSslCertificatesGetCall { + c := &RegionSslCertificatesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project c.region = region - c.resource = resource - c.regionsetpolicyrequest = regionsetpolicyrequest + c.sslCertificate = sslCertificate return c } // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *ResourcePoliciesSetIamPolicyCall) Fields(s ...googleapi.Field) *ResourcePoliciesSetIamPolicyCall { +func (c *RegionSslCertificatesGetCall) Fields(s ...googleapi.Field) *RegionSslCertificatesGetCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } -// Context sets the context to be used in this call's Do method. -func (c *ResourcePoliciesSetIamPolicyCall) Context(ctx context.Context) *ResourcePoliciesSetIamPolicyCall { +// IfNoneMatch sets an 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. +func (c *RegionSslCertificatesGetCall) IfNoneMatch(entityTag string) *RegionSslCertificatesGetCall { + c.ifNoneMatch_ = entityTag + return c +} + +// Context sets the context to be used in this call's Do method. +func (c *RegionSslCertificatesGetCall) Context(ctx context.Context) *RegionSslCertificatesGetCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *ResourcePoliciesSetIamPolicyCall) Header() http.Header { +func (c *RegionSslCertificatesGetCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *ResourcePoliciesSetIamPolicyCall) doRequest(alt string) (*http.Response, error) { - reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) - var body io.Reader = nil - body, err := googleapi.WithoutDataWrapper.JSONReader(c.regionsetpolicyrequest) - if err != nil { - return nil, err +func (c *RegionSslCertificatesGetCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) + if c.ifNoneMatch_ != "" { + reqHeaders.Set("If-None-Match", c.ifNoneMatch_) } c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/resourcePolicies/{resource}/setIamPolicy") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/sslCertificates/{sslCertificate}") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("POST", urls, body) + req, err := http.NewRequest("GET", urls, nil) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "region": c.region, - "resource": c.resource, + "project": c.project, + "region": c.region, + "sslCertificate": c.sslCertificate, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.regionSslCertificates.get", "request", internallog.HTTPRequest(req, nil)) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.resourcePolicies.setIamPolicy" call. +// Do executes the "compute.regionSslCertificates.get" call. // Any non-2xx status code is an error. Response headers are in either -// *Policy.ServerResponse.Header or (if a response was returned at all) in -// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check +// *SslCertificate.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 *ResourcePoliciesSetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, error) { +func (c *RegionSslCertificatesGetCall) Do(opts ...googleapi.CallOption) (*SslCertificate, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -24713,78 +26597,99 @@ func (c *ResourcePoliciesSetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Po if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } - ret := &Policy{ + ret := &SslCertificate{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.regionSslCertificates.get", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type ResourcePoliciesTestIamPermissionsCall struct { - s *Service - project string - region string - resource string - testpermissionsrequest *TestPermissionsRequest - urlParams_ gensupport.URLParams - ctx_ context.Context - header_ http.Header +type RegionSslCertificatesInsertCall struct { + s *Service + project string + region string + sslcertificate *SslCertificate + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header } -// TestIamPermissions: Returns permissions that a caller has on the specified -// resource. +// Insert: Creates a SslCertificate resource in the specified project and +// region using +// the data included in the request // // - project: Project ID for this request. -// - region: The name of the region for this request. -// - resource: Name or id of the resource for this request. -func (r *ResourcePoliciesService) TestIamPermissions(project string, region string, resource string, testpermissionsrequest *TestPermissionsRequest) *ResourcePoliciesTestIamPermissionsCall { - c := &ResourcePoliciesTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)} +// - region: Name of the region scoping this request. +func (r *RegionSslCertificatesService) Insert(project string, region string, sslcertificate *SslCertificate) *RegionSslCertificatesInsertCall { + c := &RegionSslCertificatesInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project c.region = region - c.resource = resource - c.testpermissionsrequest = testpermissionsrequest + c.sslcertificate = sslcertificate + 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 *RegionSslCertificatesInsertCall) RequestId(requestId string) *RegionSslCertificatesInsertCall { + 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 // details. -func (c *ResourcePoliciesTestIamPermissionsCall) Fields(s ...googleapi.Field) *ResourcePoliciesTestIamPermissionsCall { +func (c *RegionSslCertificatesInsertCall) Fields(s ...googleapi.Field) *RegionSslCertificatesInsertCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } // Context sets the context to be used in this call's Do method. -func (c *ResourcePoliciesTestIamPermissionsCall) Context(ctx context.Context) *ResourcePoliciesTestIamPermissionsCall { +func (c *RegionSslCertificatesInsertCall) Context(ctx context.Context) *RegionSslCertificatesInsertCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *ResourcePoliciesTestIamPermissionsCall) Header() http.Header { +func (c *RegionSslCertificatesInsertCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *ResourcePoliciesTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) { +func (c *RegionSslCertificatesInsertCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) - var body io.Reader = nil - body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest) + body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.sslcertificate) if err != nil { return nil, err } c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/resourcePolicies/{resource}/testIamPermissions") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/sslCertificates") urls += "?" + c.urlParams_.Encode() req, err := http.NewRequest("POST", urls, body) if err != nil { @@ -24792,20 +26697,19 @@ func (c *ResourcePoliciesTestIamPermissionsCall) doRequest(alt string) (*http.Re } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "region": c.region, - "resource": c.resource, + "project": c.project, + "region": c.region, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.regionSslCertificates.insert", "request", internallog.HTTPRequest(req, body.Bytes())) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.resourcePolicies.testIamPermissions" call. +// Do executes the "compute.regionSslCertificates.insert" call. // Any non-2xx status code is an error. Response headers are in either -// *TestPermissionsResponse.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 *ResourcePoliciesTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) { +// *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 *RegionSslCertificatesInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -24824,142 +26728,176 @@ func (c *ResourcePoliciesTestIamPermissionsCall) Do(opts ...googleapi.CallOption if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } - ret := &TestPermissionsResponse{ + ret := &Operation{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.regionSslCertificates.insert", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type RoutersAggregatedListCall struct { +type RegionSslCertificatesListCall struct { s *Service project string + region string urlParams_ gensupport.URLParams ifNoneMatch_ string ctx_ context.Context header_ http.Header } -// AggregatedList: Retrieves an aggregated list of routers. To prevent failure, -// Google recommends that you set the `returnPartialSuccess` parameter to -// `true`. +// List: Retrieves the list of SslCertificate resources available to the +// specified +// project in the specified region. // // - project: Project ID for this request. -func (r *RoutersService) AggregatedList(project string) *RoutersAggregatedListCall { - c := &RoutersAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)} +// - region: Name of the region scoping this request. +func (r *RegionSslCertificatesService) List(project string, region string) *RegionSslCertificatesListCall { + c := &RegionSslCertificatesListCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project + c.region = region return c } // Filter sets the optional parameter "filter": A filter expression that -// filters resources listed in the response. Most Compute resources support two -// types of filter expressions: expressions that support regular expressions -// and expressions that follow API improvement proposal AIP-160. These two -// types of filter expressions cannot be mixed in one request. If you want to -// use AIP-160, your expression must specify the field name, an operator, and -// the value that you want to use for filtering. The value must be a string, a -// number, or a boolean. The 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`. The `:*` comparison can be used to test whether a key has -// been defined. For example, to find all objects with `owner` label use: ``` -// labels.owner:* ``` 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) ``` If you want to use a regular -// expression, use the `eq` (equal) or `ne` (not equal) operator against a -// single un-parenthesized expression with or without quotes or against -// multiple parenthesized expressions. Examples: `fieldname eq unquoted -// literal` `fieldname eq 'single quoted literal'` `fieldname eq "double quoted -// literal" `(fieldname1 eq literal) (fieldname2 ne "literal")` The literal -// value is interpreted as a regular expression using Google RE2 library -// syntax. The literal value must match the entire field. For example, to -// filter for instances that do not end with name "instance", you would use -// `name ne .*instance`. You cannot combine constraints on multiple fields -// using regular expressions. -func (c *RoutersAggregatedListCall) Filter(filter string) *RoutersAggregatedListCall { +// filters resources listed in the response. Most +// Compute resources support two types of filter expressions: +// expressions that support regular expressions and expressions that follow +// API improvement proposal AIP-160. +// These two types of filter expressions cannot be mixed in one request. +// +// If you want to use AIP-160, your expression must specify the field name, +// an +// operator, and the value that you want to use for filtering. The value +// must be a string, a number, or a boolean. The 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`. +// +// The `:*` comparison can be used to test whether a key has been defined. +// For example, to find all objects with `owner` label +// use: +// ``` +// labels.owner:* +// ``` +// +// 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 onresource 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) +// ``` +// +// If you want to use a regular expression, use the `eq` (equal) or `ne` +// (not equal) operator against a single un-parenthesized expression with +// or +// without quotes or against multiple parenthesized expressions. +// Examples: +// +// `fieldname eq unquoted literal` +// `fieldname eq 'single quoted literal'` +// `fieldname eq "double quoted literal" +// `(fieldname1 eq literal) (fieldname2 ne "literal")` +// +// The literal value is interpreted as a regular expression using GoogleRE2 +// library syntax. +// The literal value must match the entire field. +// +// For example, to filter for instances that do not end with name +// "instance", +// you would use `name ne .*instance`. +// +// You cannot combine constraints on multiple fields using regular +// expressions. +func (c *RegionSslCertificatesListCall) Filter(filter string) *RegionSslCertificatesListCall { c.urlParams_.Set("filter", filter) return c } -// IncludeAllScopes sets the optional parameter "includeAllScopes": Indicates -// whether every visible scope for each scope type (zone, region, global) -// should be included in the response. For new resource types added after this -// field, the flag has no effect as new resource types will always include -// every visible scope for each scope type in response. For resource types -// which predate this field, if this flag is omitted or false, only scopes of -// the scope types where the resource type is expected to be found will be -// included. -func (c *RoutersAggregatedListCall) IncludeAllScopes(includeAllScopes bool) *RoutersAggregatedListCall { - c.urlParams_.Set("includeAllScopes", fmt.Sprint(includeAllScopes)) - 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 *RoutersAggregatedListCall) MaxResults(maxResults int64) *RoutersAggregatedListCall { +// 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 *RegionSslCertificatesListCall) MaxResults(maxResults int64) *RegionSslCertificatesListCall { 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 *RoutersAggregatedListCall) OrderBy(orderBy string) *RoutersAggregatedListCall { +// 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 *RegionSslCertificatesListCall) OrderBy(orderBy string) *RegionSslCertificatesListCall { 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 *RoutersAggregatedListCall) PageToken(pageToken string) *RoutersAggregatedListCall { +// use. Set `pageToken` to the +// `nextPageToken` returned by a previous list request to get +// the next page of results. +func (c *RegionSslCertificatesListCall) PageToken(pageToken string) *RegionSslCertificatesListCall { c.urlParams_.Set("pageToken", pageToken) return c } // ReturnPartialSuccess sets the optional parameter "returnPartialSuccess": -// Opt-in for partial success behavior which provides partial results in case -// of failure. The default value is false. For example, when partial success -// behavior is enabled, aggregatedList for a single zone scope either returns -// all resources in the zone or no resources, with an error code. -func (c *RoutersAggregatedListCall) ReturnPartialSuccess(returnPartialSuccess bool) *RoutersAggregatedListCall { +// Opt-in for partial success behavior which provides partial results in +// case +// of failure. The default value is false. +// +// For example, when partial success behavior is enabled, aggregatedList for +// a +// single zone scope either returns all resources in the zone or no +// resources, +// with an error code. +func (c *RegionSslCertificatesListCall) ReturnPartialSuccess(returnPartialSuccess bool) *RegionSslCertificatesListCall { c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess)) return c } -// ServiceProjectNumber sets the optional parameter "serviceProjectNumber": The -// Shared VPC service project id or service project number for which aggregated -// list request is invoked for subnetworks list-usable api. -func (c *RoutersAggregatedListCall) ServiceProjectNumber(serviceProjectNumber int64) *RoutersAggregatedListCall { - c.urlParams_.Set("serviceProjectNumber", fmt.Sprint(serviceProjectNumber)) - return c -} - // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *RoutersAggregatedListCall) Fields(s ...googleapi.Field) *RoutersAggregatedListCall { +func (c *RegionSslCertificatesListCall) Fields(s ...googleapi.Field) *RegionSslCertificatesListCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } @@ -24967,54 +26905,55 @@ func (c *RoutersAggregatedListCall) Fields(s ...googleapi.Field) *RoutersAggrega // IfNoneMatch sets an 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. -func (c *RoutersAggregatedListCall) IfNoneMatch(entityTag string) *RoutersAggregatedListCall { +func (c *RegionSslCertificatesListCall) IfNoneMatch(entityTag string) *RegionSslCertificatesListCall { c.ifNoneMatch_ = entityTag return c } // Context sets the context to be used in this call's Do method. -func (c *RoutersAggregatedListCall) Context(ctx context.Context) *RoutersAggregatedListCall { +func (c *RegionSslCertificatesListCall) Context(ctx context.Context) *RegionSslCertificatesListCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *RoutersAggregatedListCall) Header() http.Header { +func (c *RegionSslCertificatesListCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *RoutersAggregatedListCall) doRequest(alt string) (*http.Response, error) { +func (c *RegionSslCertificatesListCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) if c.ifNoneMatch_ != "" { reqHeaders.Set("If-None-Match", c.ifNoneMatch_) } - var body io.Reader = nil c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/aggregated/routers") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/sslCertificates") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("GET", urls, body) + req, err := http.NewRequest("GET", urls, nil) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ "project": c.project, + "region": c.region, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.regionSslCertificates.list", "request", internallog.HTTPRequest(req, nil)) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.routers.aggregatedList" call. +// Do executes the "compute.regionSslCertificates.list" call. // Any non-2xx status code is an error. Response headers are in either -// *RouterAggregatedList.ServerResponse.Header or (if a response was returned -// at all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to +// *SslCertificateList.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 *RoutersAggregatedListCall) Do(opts ...googleapi.CallOption) (*RouterAggregatedList, error) { +func (c *RegionSslCertificatesListCall) Do(opts ...googleapi.CallOption) (*SslCertificateList, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -25033,23 +26972,25 @@ func (c *RoutersAggregatedListCall) Do(opts ...googleapi.CallOption) (*RouterAgg if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } - ret := &RouterAggregatedList{ + ret := &SslCertificateList{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.regionSslCertificates.list", "response", internallog.HTTPResponse(res, b)) return ret, nil } // 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 *RoutersAggregatedListCall) Pages(ctx context.Context, f func(*RouterAggregatedList) error) error { +func (c *RegionSslCertificatesListCall) Pages(ctx context.Context, f func(*SslCertificateList) error) error { c.ctx_ = ctx defer c.PageToken(c.urlParams_.Get("pageToken")) for { @@ -25067,40 +27008,54 @@ func (c *RoutersAggregatedListCall) Pages(ctx context.Context, f func(*RouterAgg } } -type RoutersDeleteCall struct { +type RegionSslPoliciesDeleteCall struct { s *Service project string region string - router string + sslPolicy string urlParams_ gensupport.URLParams ctx_ context.Context header_ http.Header } -// Delete: Deletes the specified Router resource. +// Delete: Deletes the specified SSL policy. The SSL policy resource can be +// deleted +// only if it is not in use by any TargetHttpsProxy or +// TargetSslProxy +// resources. // -// - project: Project ID for this request. -// - region: Name of the region for this request. -// - router: Name of the Router resource to delete. -func (r *RoutersService) Delete(project string, region string, router string) *RoutersDeleteCall { - c := &RoutersDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)} +// - project: Project ID for this request. +// - region: Name of the region scoping this request. +// - sslPolicy: Name of the SSL policy to delete. The name must be 1-63 +// characters long, +// +// and comply with RFC1035. +func (r *RegionSslPoliciesService) Delete(project string, region string, sslPolicy string) *RegionSslPoliciesDeleteCall { + c := &RegionSslPoliciesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project c.region = region - c.router = router + c.sslPolicy = sslPolicy 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 *RoutersDeleteCall) RequestId(requestId string) *RoutersDeleteCall { +// 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 *RegionSslPoliciesDeleteCall) RequestId(requestId string) *RegionSslPoliciesDeleteCall { c.urlParams_.Set("requestId", requestId) return c } @@ -25108,52 +27063,52 @@ func (c *RoutersDeleteCall) RequestId(requestId string) *RoutersDeleteCall { // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *RoutersDeleteCall) Fields(s ...googleapi.Field) *RoutersDeleteCall { +func (c *RegionSslPoliciesDeleteCall) Fields(s ...googleapi.Field) *RegionSslPoliciesDeleteCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } // Context sets the context to be used in this call's Do method. -func (c *RoutersDeleteCall) Context(ctx context.Context) *RoutersDeleteCall { +func (c *RegionSslPoliciesDeleteCall) Context(ctx context.Context) *RegionSslPoliciesDeleteCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *RoutersDeleteCall) Header() http.Header { +func (c *RegionSslPoliciesDeleteCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *RoutersDeleteCall) doRequest(alt string) (*http.Response, error) { +func (c *RegionSslPoliciesDeleteCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) - var body io.Reader = nil c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/routers/{router}") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/sslPolicies/{sslPolicy}") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("DELETE", urls, body) + req, err := http.NewRequest("DELETE", urls, nil) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "region": c.region, - "router": c.router, + "project": c.project, + "region": c.region, + "sslPolicy": c.sslPolicy, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.regionSslPolicies.delete", "request", internallog.HTTPRequest(req, nil)) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.routers.delete" call. +// Do executes the "compute.regionSslPolicies.delete" call. // 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 *RoutersDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) { +func (c *RegionSslPoliciesDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -25179,40 +27134,45 @@ func (c *RoutersDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.regionSslPolicies.delete", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type RoutersGetCall struct { +type RegionSslPoliciesGetCall struct { s *Service project string region string - router string + sslPolicy string urlParams_ gensupport.URLParams ifNoneMatch_ string ctx_ context.Context header_ http.Header } -// Get: Returns the specified Router resource. +// Get: Lists all of the ordered rules present in a single specified policy. // -// - project: Project ID for this request. -// - region: Name of the region for this request. -// - router: Name of the Router resource to return. -func (r *RoutersService) Get(project string, region string, router string) *RoutersGetCall { - c := &RoutersGetCall{s: r.s, urlParams_: make(gensupport.URLParams)} +// - project: Project ID for this request. +// - region: Name of the region scoping this request. +// - sslPolicy: Name of the SSL policy to update. The name must be 1-63 +// characters long, +// +// and comply with RFC1035. +func (r *RegionSslPoliciesService) Get(project string, region string, sslPolicy string) *RegionSslPoliciesGetCall { + c := &RegionSslPoliciesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project c.region = region - c.router = router + c.sslPolicy = sslPolicy return c } // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *RoutersGetCall) Fields(s ...googleapi.Field) *RoutersGetCall { +func (c *RegionSslPoliciesGetCall) Fields(s ...googleapi.Field) *RegionSslPoliciesGetCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } @@ -25220,55 +27180,55 @@ func (c *RoutersGetCall) Fields(s ...googleapi.Field) *RoutersGetCall { // IfNoneMatch sets an 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. -func (c *RoutersGetCall) IfNoneMatch(entityTag string) *RoutersGetCall { +func (c *RegionSslPoliciesGetCall) IfNoneMatch(entityTag string) *RegionSslPoliciesGetCall { c.ifNoneMatch_ = entityTag return c } // Context sets the context to be used in this call's Do method. -func (c *RoutersGetCall) Context(ctx context.Context) *RoutersGetCall { +func (c *RegionSslPoliciesGetCall) Context(ctx context.Context) *RegionSslPoliciesGetCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *RoutersGetCall) Header() http.Header { +func (c *RegionSslPoliciesGetCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *RoutersGetCall) doRequest(alt string) (*http.Response, error) { +func (c *RegionSslPoliciesGetCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) if c.ifNoneMatch_ != "" { reqHeaders.Set("If-None-Match", c.ifNoneMatch_) } - var body io.Reader = nil c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/routers/{router}") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/sslPolicies/{sslPolicy}") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("GET", urls, body) + req, err := http.NewRequest("GET", urls, nil) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "region": c.region, - "router": c.router, + "project": c.project, + "region": c.region, + "sslPolicy": c.sslPolicy, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.regionSslPolicies.get", "request", internallog.HTTPRequest(req, nil)) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.routers.get" call. +// Do executes the "compute.regionSslPolicies.get" call. // Any non-2xx status code is an error. Response headers are in either -// *Router.ServerResponse.Header or (if a response was returned at all) in +// *SslPolicy.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 *RoutersGetCall) Do(opts ...googleapi.CallOption) (*Router, error) { +func (c *RegionSslPoliciesGetCall) Do(opts ...googleapi.CallOption) (*SslPolicy, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -25287,94 +27247,101 @@ func (c *RoutersGetCall) Do(opts ...googleapi.CallOption) (*Router, error) { if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } - ret := &Router{ + ret := &SslPolicy{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.regionSslPolicies.get", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type RoutersGetNatIpInfoCall struct { - s *Service - project string - region string - router string - urlParams_ gensupport.URLParams - ifNoneMatch_ string - ctx_ context.Context - header_ http.Header +type RegionSslPoliciesInsertCall struct { + s *Service + project string + region string + sslpolicy *SslPolicy + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header } -// GetNatIpInfo: Retrieves runtime NAT IP information. +// Insert: Creates a new policy in the specified project and region using the +// data +// included in the request. // -// - project: Project ID for this request. -// - region: Name of the region for this request. -// - router: Name of the Router resource to query for Nat IP information. The -// name should conform to RFC1035. -func (r *RoutersService) GetNatIpInfo(project string, region string, router string) *RoutersGetNatIpInfoCall { - c := &RoutersGetNatIpInfoCall{s: r.s, urlParams_: make(gensupport.URLParams)} +// - project: Project ID for this request. +// - region: Name of the region scoping this request. +func (r *RegionSslPoliciesService) Insert(project string, region string, sslpolicy *SslPolicy) *RegionSslPoliciesInsertCall { + c := &RegionSslPoliciesInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project c.region = region - c.router = router + c.sslpolicy = sslpolicy return c } -// NatName sets the optional parameter "natName": Name of the nat service to -// filter the NAT IP information. If it is omitted, all nats for this router -// will be returned. Name should conform to RFC1035. -func (c *RoutersGetNatIpInfoCall) NatName(natName string) *RoutersGetNatIpInfoCall { - c.urlParams_.Set("natName", natName) +// 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 *RegionSslPoliciesInsertCall) RequestId(requestId string) *RegionSslPoliciesInsertCall { + 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 // details. -func (c *RoutersGetNatIpInfoCall) Fields(s ...googleapi.Field) *RoutersGetNatIpInfoCall { +func (c *RegionSslPoliciesInsertCall) Fields(s ...googleapi.Field) *RegionSslPoliciesInsertCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } -// IfNoneMatch sets an 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. -func (c *RoutersGetNatIpInfoCall) IfNoneMatch(entityTag string) *RoutersGetNatIpInfoCall { - c.ifNoneMatch_ = entityTag - return c -} - // Context sets the context to be used in this call's Do method. -func (c *RoutersGetNatIpInfoCall) Context(ctx context.Context) *RoutersGetNatIpInfoCall { +func (c *RegionSslPoliciesInsertCall) Context(ctx context.Context) *RegionSslPoliciesInsertCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *RoutersGetNatIpInfoCall) Header() http.Header { +func (c *RegionSslPoliciesInsertCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *RoutersGetNatIpInfoCall) doRequest(alt string) (*http.Response, error) { - reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) - if c.ifNoneMatch_ != "" { - reqHeaders.Set("If-None-Match", c.ifNoneMatch_) +func (c *RegionSslPoliciesInsertCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) + body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.sslpolicy) + if err != nil { + return nil, err } - var body io.Reader = nil c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/routers/{router}/getNatIpInfo") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/sslPolicies") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("GET", urls, body) + req, err := http.NewRequest("POST", urls, body) if err != nil { return nil, err } @@ -25382,18 +27349,17 @@ func (c *RoutersGetNatIpInfoCall) doRequest(alt string) (*http.Response, error) googleapi.Expand(req.URL, map[string]string{ "project": c.project, "region": c.region, - "router": c.router, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.regionSslPolicies.insert", "request", internallog.HTTPRequest(req, body.Bytes())) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.routers.getNatIpInfo" call. +// Do executes the "compute.regionSslPolicies.insert" call. // Any non-2xx status code is an error. Response headers are in either -// *NatIpInfoResponse.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 *RoutersGetNatIpInfoCall) Do(opts ...googleapi.CallOption) (*NatIpInfoResponse, error) { +// *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 *RegionSslPoliciesInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -25412,127 +27378,168 @@ func (c *RoutersGetNatIpInfoCall) Do(opts ...googleapi.CallOption) (*NatIpInfoRe if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } - ret := &NatIpInfoResponse{ + ret := &Operation{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.regionSslPolicies.insert", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type RoutersGetNatMappingInfoCall struct { +type RegionSslPoliciesListCall 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. +// List: Lists all the SSL policies that have been configured for the +// specified +// project and region. // -// - project: Project ID for this request. -// - region: Name of the region for this request. -// - router: Name of the Router resource to query for 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)} +// - project: Project ID for this request. +// - region: Name of the region scoping this request. +func (r *RegionSslPoliciesService) List(project string, region string) *RegionSslPoliciesListCall { + c := &RegionSslPoliciesListCall{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. Most Compute resources support two -// types of filter expressions: expressions that support regular expressions -// and expressions that follow API improvement proposal AIP-160. These two -// types of filter expressions cannot be mixed in one request. If you want to -// use AIP-160, your expression must specify the field name, an operator, and -// the value that you want to use for filtering. The value must be a string, a -// number, or a boolean. The 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`. The `:*` comparison can be used to test whether a key has -// been defined. For example, to find all objects with `owner` label use: ``` -// labels.owner:* ``` 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) ``` If you want to use a regular -// expression, use the `eq` (equal) or `ne` (not equal) operator against a -// single un-parenthesized expression with or without quotes or against -// multiple parenthesized expressions. Examples: `fieldname eq unquoted -// literal` `fieldname eq 'single quoted literal'` `fieldname eq "double quoted -// literal" `(fieldname1 eq literal) (fieldname2 ne "literal")` The literal -// value is interpreted as a regular expression using Google RE2 library -// syntax. The literal value must match the entire field. For example, to -// filter for instances that do not end with name "instance", you would use -// `name ne .*instance`. You cannot combine constraints on multiple fields -// using regular expressions. -func (c *RoutersGetNatMappingInfoCall) Filter(filter string) *RoutersGetNatMappingInfoCall { +// filters resources listed in the response. Most +// Compute resources support two types of filter expressions: +// expressions that support regular expressions and expressions that follow +// API improvement proposal AIP-160. +// These two types of filter expressions cannot be mixed in one request. +// +// If you want to use AIP-160, your expression must specify the field name, +// an +// operator, and the value that you want to use for filtering. The value +// must be a string, a number, or a boolean. The 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`. +// +// The `:*` comparison can be used to test whether a key has been defined. +// For example, to find all objects with `owner` label +// use: +// ``` +// labels.owner:* +// ``` +// +// 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 onresource 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) +// ``` +// +// If you want to use a regular expression, use the `eq` (equal) or `ne` +// (not equal) operator against a single un-parenthesized expression with +// or +// without quotes or against multiple parenthesized expressions. +// Examples: +// +// `fieldname eq unquoted literal` +// `fieldname eq 'single quoted literal'` +// `fieldname eq "double quoted literal" +// `(fieldname1 eq literal) (fieldname2 ne "literal")` +// +// The literal value is interpreted as a regular expression using GoogleRE2 +// library syntax. +// The literal value must match the entire field. +// +// For example, to filter for instances that do not end with name +// "instance", +// you would use `name ne .*instance`. +// +// You cannot combine constraints on multiple fields using regular +// expressions. +func (c *RegionSslPoliciesListCall) Filter(filter string) *RegionSslPoliciesListCall { 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 { +// 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 *RegionSslPoliciesListCall) MaxResults(maxResults int64) *RegionSslPoliciesListCall { c.urlParams_.Set("maxResults", fmt.Sprint(maxResults)) return c } -// NatName sets the optional parameter "natName": Name of the nat service to -// filter the Nat Mapping information. If it is omitted, all nats for this -// router will be returned. Name should conform to RFC1035. -func (c *RoutersGetNatMappingInfoCall) NatName(natName string) *RoutersGetNatMappingInfoCall { - c.urlParams_.Set("natName", natName) - 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 { +// 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 *RegionSslPoliciesListCall) OrderBy(orderBy string) *RegionSslPoliciesListCall { 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 { +// use. Set `pageToken` to the +// `nextPageToken` returned by a previous list request to get +// the next page of results. +func (c *RegionSslPoliciesListCall) PageToken(pageToken string) *RegionSslPoliciesListCall { c.urlParams_.Set("pageToken", pageToken) return c } // ReturnPartialSuccess sets the optional parameter "returnPartialSuccess": -// Opt-in for partial success behavior which provides partial results in case -// of failure. The default value is false. For example, when partial success -// behavior is enabled, aggregatedList for a single zone scope either returns -// all resources in the zone or no resources, with an error code. -func (c *RoutersGetNatMappingInfoCall) ReturnPartialSuccess(returnPartialSuccess bool) *RoutersGetNatMappingInfoCall { +// Opt-in for partial success behavior which provides partial results in +// case +// of failure. The default value is false. +// +// For example, when partial success behavior is enabled, aggregatedList for +// a +// single zone scope either returns all resources in the zone or no +// resources, +// with an error code. +func (c *RegionSslPoliciesListCall) ReturnPartialSuccess(returnPartialSuccess bool) *RegionSslPoliciesListCall { c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess)) return c } @@ -25540,7 +27547,7 @@ func (c *RoutersGetNatMappingInfoCall) ReturnPartialSuccess(returnPartialSuccess // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *RoutersGetNatMappingInfoCall) Fields(s ...googleapi.Field) *RoutersGetNatMappingInfoCall { +func (c *RegionSslPoliciesListCall) Fields(s ...googleapi.Field) *RegionSslPoliciesListCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } @@ -25548,37 +27555,36 @@ func (c *RoutersGetNatMappingInfoCall) Fields(s ...googleapi.Field) *RoutersGetN // IfNoneMatch sets an 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. -func (c *RoutersGetNatMappingInfoCall) IfNoneMatch(entityTag string) *RoutersGetNatMappingInfoCall { +func (c *RegionSslPoliciesListCall) IfNoneMatch(entityTag string) *RegionSslPoliciesListCall { c.ifNoneMatch_ = entityTag return c } // Context sets the context to be used in this call's Do method. -func (c *RoutersGetNatMappingInfoCall) Context(ctx context.Context) *RoutersGetNatMappingInfoCall { +func (c *RegionSslPoliciesListCall) Context(ctx context.Context) *RegionSslPoliciesListCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *RoutersGetNatMappingInfoCall) Header() http.Header { +func (c *RegionSslPoliciesListCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *RoutersGetNatMappingInfoCall) doRequest(alt string) (*http.Response, error) { +func (c *RegionSslPoliciesListCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) if c.ifNoneMatch_ != "" { reqHeaders.Set("If-None-Match", c.ifNoneMatch_) } - var body io.Reader = nil c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/routers/{router}/getNatMappingInfo") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/sslPolicies") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("GET", urls, body) + req, err := http.NewRequest("GET", urls, nil) if err != nil { return nil, err } @@ -25586,18 +27592,18 @@ func (c *RoutersGetNatMappingInfoCall) doRequest(alt string) (*http.Response, er googleapi.Expand(req.URL, map[string]string{ "project": c.project, "region": c.region, - "router": c.router, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.regionSslPolicies.list", "request", internallog.HTTPRequest(req, nil)) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.routers.getNatMappingInfo" call. +// Do executes the "compute.regionSslPolicies.list" call. // 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) { +// *SslPoliciesList.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 *RegionSslPoliciesListCall) Do(opts ...googleapi.CallOption) (*SslPoliciesList, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -25616,23 +27622,25 @@ func (c *RoutersGetNatMappingInfoCall) Do(opts ...googleapi.CallOption) (*VmEndp if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } - ret := &VmEndpointNatMappingsList{ + ret := &SslPoliciesList{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.regionSslPolicies.list", "response", internallog.HTTPResponse(res, b)) return ret, nil } // 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 { +func (c *RegionSslPoliciesListCall) Pages(ctx context.Context, f func(*SslPoliciesList) error) error { c.ctx_ = ctx defer c.PageToken(c.urlParams_.Get("pageToken")) for { @@ -25650,34 +27658,161 @@ func (c *RoutersGetNatMappingInfoCall) Pages(ctx context.Context, f func(*VmEndp } } -type RoutersGetRouterStatusCall struct { +type RegionSslPoliciesListAvailableFeaturesCall struct { s *Service project string region string - router string urlParams_ gensupport.URLParams ifNoneMatch_ string ctx_ context.Context header_ http.Header } -// GetRouterStatus: Retrieves runtime information of the specified router. +// ListAvailableFeatures: Lists all features that can be specified in the SSL +// policy when using +// custom profile. // // - project: Project ID for this request. -// - region: Name of the region for this request. -// - router: Name of the Router resource to query. -func (r *RoutersService) GetRouterStatus(project string, region string, router string) *RoutersGetRouterStatusCall { - c := &RoutersGetRouterStatusCall{s: r.s, urlParams_: make(gensupport.URLParams)} +// - region: Name of the region scoping this request. +func (r *RegionSslPoliciesService) ListAvailableFeatures(project string, region string) *RegionSslPoliciesListAvailableFeaturesCall { + c := &RegionSslPoliciesListAvailableFeaturesCall{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. Most +// Compute resources support two types of filter expressions: +// expressions that support regular expressions and expressions that follow +// API improvement proposal AIP-160. +// These two types of filter expressions cannot be mixed in one request. +// +// If you want to use AIP-160, your expression must specify the field name, +// an +// operator, and the value that you want to use for filtering. The value +// must be a string, a number, or a boolean. The 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`. +// +// The `:*` comparison can be used to test whether a key has been defined. +// For example, to find all objects with `owner` label +// use: +// ``` +// labels.owner:* +// ``` +// +// 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 onresource 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) +// ``` +// +// If you want to use a regular expression, use the `eq` (equal) or `ne` +// (not equal) operator against a single un-parenthesized expression with +// or +// without quotes or against multiple parenthesized expressions. +// Examples: +// +// `fieldname eq unquoted literal` +// `fieldname eq 'single quoted literal'` +// `fieldname eq "double quoted literal" +// `(fieldname1 eq literal) (fieldname2 ne "literal")` +// +// The literal value is interpreted as a regular expression using GoogleRE2 +// library syntax. +// The literal value must match the entire field. +// +// For example, to filter for instances that do not end with name +// "instance", +// you would use `name ne .*instance`. +// +// You cannot combine constraints on multiple fields using regular +// expressions. +func (c *RegionSslPoliciesListAvailableFeaturesCall) Filter(filter string) *RegionSslPoliciesListAvailableFeaturesCall { + 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 *RegionSslPoliciesListAvailableFeaturesCall) MaxResults(maxResults int64) *RegionSslPoliciesListAvailableFeaturesCall { + 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 *RegionSslPoliciesListAvailableFeaturesCall) OrderBy(orderBy string) *RegionSslPoliciesListAvailableFeaturesCall { + 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 *RegionSslPoliciesListAvailableFeaturesCall) PageToken(pageToken string) *RegionSslPoliciesListAvailableFeaturesCall { + c.urlParams_.Set("pageToken", pageToken) + return c +} + +// ReturnPartialSuccess sets the optional parameter "returnPartialSuccess": +// Opt-in for partial success behavior which provides partial results in +// case +// of failure. The default value is false. +// +// For example, when partial success behavior is enabled, aggregatedList for +// a +// single zone scope either returns all resources in the zone or no +// resources, +// with an error code. +func (c *RegionSslPoliciesListAvailableFeaturesCall) ReturnPartialSuccess(returnPartialSuccess bool) *RegionSslPoliciesListAvailableFeaturesCall { + c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess)) return c } // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *RoutersGetRouterStatusCall) Fields(s ...googleapi.Field) *RoutersGetRouterStatusCall { +func (c *RegionSslPoliciesListAvailableFeaturesCall) Fields(s ...googleapi.Field) *RegionSslPoliciesListAvailableFeaturesCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } @@ -25685,37 +27820,36 @@ func (c *RoutersGetRouterStatusCall) Fields(s ...googleapi.Field) *RoutersGetRou // IfNoneMatch sets an 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. -func (c *RoutersGetRouterStatusCall) IfNoneMatch(entityTag string) *RoutersGetRouterStatusCall { +func (c *RegionSslPoliciesListAvailableFeaturesCall) IfNoneMatch(entityTag string) *RegionSslPoliciesListAvailableFeaturesCall { c.ifNoneMatch_ = entityTag return c } // Context sets the context to be used in this call's Do method. -func (c *RoutersGetRouterStatusCall) Context(ctx context.Context) *RoutersGetRouterStatusCall { +func (c *RegionSslPoliciesListAvailableFeaturesCall) Context(ctx context.Context) *RegionSslPoliciesListAvailableFeaturesCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *RoutersGetRouterStatusCall) Header() http.Header { +func (c *RegionSslPoliciesListAvailableFeaturesCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *RoutersGetRouterStatusCall) doRequest(alt string) (*http.Response, error) { +func (c *RegionSslPoliciesListAvailableFeaturesCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) if c.ifNoneMatch_ != "" { reqHeaders.Set("If-None-Match", c.ifNoneMatch_) } - var body io.Reader = nil c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/routers/{router}/getRouterStatus") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/sslPolicies/listAvailableFeatures") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("GET", urls, body) + req, err := http.NewRequest("GET", urls, nil) if err != nil { return nil, err } @@ -25723,18 +27857,18 @@ func (c *RoutersGetRouterStatusCall) doRequest(alt string) (*http.Response, erro googleapi.Expand(req.URL, map[string]string{ "project": c.project, "region": c.region, - "router": c.router, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.regionSslPolicies.listAvailableFeatures", "request", internallog.HTTPRequest(req, nil)) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.routers.getRouterStatus" call. +// Do executes the "compute.regionSslPolicies.listAvailableFeatures" call. // Any non-2xx status code is an error. Response headers are in either -// *RouterStatusResponse.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 *RoutersGetRouterStatusCall) Do(opts ...googleapi.CallOption) (*RouterStatusResponse, error) { +// *SslPoliciesListAvailableFeaturesResponse.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 *RegionSslPoliciesListAvailableFeaturesCall) Do(opts ...googleapi.CallOption) (*SslPoliciesListAvailableFeaturesResponse, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -25753,53 +27887,68 @@ func (c *RoutersGetRouterStatusCall) Do(opts ...googleapi.CallOption) (*RouterSt if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } - ret := &RouterStatusResponse{ + ret := &SslPoliciesListAvailableFeaturesResponse{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.regionSslPolicies.listAvailableFeatures", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type RoutersInsertCall struct { +type RegionSslPoliciesPatchCall struct { s *Service project string region string - router *Router + sslPolicy string + sslpolicy *SslPolicy urlParams_ gensupport.URLParams ctx_ context.Context header_ http.Header } -// Insert: Creates a Router resource in the specified project and region using -// the data included in the request. +// Patch: Patches the specified SSL policy with the data included in the +// request. // -// - project: Project ID for this request. -// - region: Name of the region for this request. -func (r *RoutersService) Insert(project string, region string, router *Router) *RoutersInsertCall { - c := &RoutersInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)} +// - project: Project ID for this request. +// - region: Name of the region scoping this request. +// - sslPolicy: Name of the SSL policy to update. The name must be 1-63 +// characters long, +// +// and comply with RFC1035. +func (r *RegionSslPoliciesService) Patch(project string, region string, sslPolicy string, sslpolicy *SslPolicy) *RegionSslPoliciesPatchCall { + c := &RegionSslPoliciesPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project c.region = region - c.router = router + c.sslPolicy = sslPolicy + c.sslpolicy = sslpolicy 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 *RoutersInsertCall) RequestId(requestId string) *RoutersInsertCall { +// 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 *RegionSslPoliciesPatchCall) RequestId(requestId string) *RegionSslPoliciesPatchCall { c.urlParams_.Set("requestId", requestId) return c } @@ -25807,55 +27956,56 @@ func (c *RoutersInsertCall) RequestId(requestId string) *RoutersInsertCall { // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *RoutersInsertCall) Fields(s ...googleapi.Field) *RoutersInsertCall { +func (c *RegionSslPoliciesPatchCall) Fields(s ...googleapi.Field) *RegionSslPoliciesPatchCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } // Context sets the context to be used in this call's Do method. -func (c *RoutersInsertCall) Context(ctx context.Context) *RoutersInsertCall { +func (c *RegionSslPoliciesPatchCall) Context(ctx context.Context) *RegionSslPoliciesPatchCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *RoutersInsertCall) Header() http.Header { +func (c *RegionSslPoliciesPatchCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *RoutersInsertCall) doRequest(alt string) (*http.Response, error) { +func (c *RegionSslPoliciesPatchCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) - var body io.Reader = nil - body, err := googleapi.WithoutDataWrapper.JSONReader(c.router) + body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.sslpolicy) if err != nil { return nil, err } c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/routers") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/sslPolicies/{sslPolicy}") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("POST", urls, body) + req, err := http.NewRequest("PATCH", urls, body) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "region": c.region, + "project": c.project, + "region": c.region, + "sslPolicy": c.sslPolicy, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.regionSslPolicies.patch", "request", internallog.HTTPRequest(req, body.Bytes())) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.routers.insert" call. +// Do executes the "compute.regionSslPolicies.patch" call. // 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 *RoutersInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) { +func (c *RegionSslPoliciesPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -25881,171 +28031,108 @@ func (c *RoutersInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.regionSslPolicies.patch", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type RoutersListCall struct { - s *Service - project string - region string - urlParams_ gensupport.URLParams - ifNoneMatch_ string - ctx_ context.Context - header_ http.Header +type RegionTargetHttpProxiesDeleteCall struct { + s *Service + project string + region string + targetHttpProxy string + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header } -// List: Retrieves a list of Router resources available to the specified -// project. +// Delete: Deletes the specified TargetHttpProxy resource. // // - project: Project ID for this request. -// - region: Name of the region for this request. -func (r *RoutersService) List(project string, region string) *RoutersListCall { - c := &RoutersListCall{s: r.s, urlParams_: make(gensupport.URLParams)} +// - region: Name of the region scoping this request. +// - targetHttpProxy: Name of the TargetHttpProxy resource to delete. +func (r *RegionTargetHttpProxiesService) Delete(project string, region string, targetHttpProxy string) *RegionTargetHttpProxiesDeleteCall { + c := &RegionTargetHttpProxiesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project c.region = region + c.targetHttpProxy = targetHttpProxy return c } -// Filter sets the optional parameter "filter": A filter expression that -// filters resources listed in the response. Most Compute resources support two -// types of filter expressions: expressions that support regular expressions -// and expressions that follow API improvement proposal AIP-160. These two -// types of filter expressions cannot be mixed in one request. If you want to -// use AIP-160, your expression must specify the field name, an operator, and -// the value that you want to use for filtering. The value must be a string, a -// number, or a boolean. The 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`. The `:*` comparison can be used to test whether a key has -// been defined. For example, to find all objects with `owner` label use: ``` -// labels.owner:* ``` 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) ``` If you want to use a regular -// expression, use the `eq` (equal) or `ne` (not equal) operator against a -// single un-parenthesized expression with or without quotes or against -// multiple parenthesized expressions. Examples: `fieldname eq unquoted -// literal` `fieldname eq 'single quoted literal'` `fieldname eq "double quoted -// literal" `(fieldname1 eq literal) (fieldname2 ne "literal")` The literal -// value is interpreted as a regular expression using Google RE2 library -// syntax. The literal value must match the entire field. For example, to -// filter for instances that do not end with name "instance", you would use -// `name ne .*instance`. You cannot combine constraints on multiple fields -// using regular expressions. -func (c *RoutersListCall) Filter(filter string) *RoutersListCall { - 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 *RoutersListCall) MaxResults(maxResults int64) *RoutersListCall { - 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 *RoutersListCall) OrderBy(orderBy string) *RoutersListCall { - 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 *RoutersListCall) PageToken(pageToken string) *RoutersListCall { - c.urlParams_.Set("pageToken", pageToken) - return c -} - -// ReturnPartialSuccess sets the optional parameter "returnPartialSuccess": -// Opt-in for partial success behavior which provides partial results in case -// of failure. The default value is false. For example, when partial success -// behavior is enabled, aggregatedList for a single zone scope either returns -// all resources in the zone or no resources, with an error code. -func (c *RoutersListCall) ReturnPartialSuccess(returnPartialSuccess bool) *RoutersListCall { - c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess)) +// 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 *RegionTargetHttpProxiesDeleteCall) RequestId(requestId string) *RegionTargetHttpProxiesDeleteCall { + 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 // details. -func (c *RoutersListCall) Fields(s ...googleapi.Field) *RoutersListCall { +func (c *RegionTargetHttpProxiesDeleteCall) Fields(s ...googleapi.Field) *RegionTargetHttpProxiesDeleteCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } -// IfNoneMatch sets an 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. -func (c *RoutersListCall) IfNoneMatch(entityTag string) *RoutersListCall { - c.ifNoneMatch_ = entityTag - return c -} - // Context sets the context to be used in this call's Do method. -func (c *RoutersListCall) Context(ctx context.Context) *RoutersListCall { +func (c *RegionTargetHttpProxiesDeleteCall) Context(ctx context.Context) *RegionTargetHttpProxiesDeleteCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *RoutersListCall) Header() http.Header { +func (c *RegionTargetHttpProxiesDeleteCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *RoutersListCall) doRequest(alt string) (*http.Response, error) { +func (c *RegionTargetHttpProxiesDeleteCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) - if c.ifNoneMatch_ != "" { - reqHeaders.Set("If-None-Match", c.ifNoneMatch_) - } - var body io.Reader = nil c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/routers") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/targetHttpProxies/{targetHttpProxy}") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("GET", urls, body) + req, err := http.NewRequest("DELETE", urls, nil) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "region": c.region, + "project": c.project, + "region": c.region, + "targetHttpProxy": c.targetHttpProxy, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.regionTargetHttpProxies.delete", "request", internallog.HTTPRequest(req, nil)) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.routers.list" call. +// Do executes the "compute.regionTargetHttpProxies.delete" call. // Any non-2xx status code is an error. Response headers are in either -// *RouterList.ServerResponse.Header or (if a response was returned at all) in +// *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 *RoutersListCall) Do(opts ...googleapi.CallOption) (*RouterList, error) { +func (c *RegionTargetHttpProxiesDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -26064,135 +28151,106 @@ func (c *RoutersListCall) Do(opts ...googleapi.CallOption) (*RouterList, error) if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } - ret := &RouterList{ + ret := &Operation{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.regionTargetHttpProxies.delete", "response", internallog.HTTPResponse(res, b)) return ret, nil } -// 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 *RoutersListCall) Pages(ctx context.Context, f func(*RouterList) error) error { - c.ctx_ = ctx - defer c.PageToken(c.urlParams_.Get("pageToken")) - 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) - } -} - -type RoutersPatchCall struct { - s *Service - project string - region string - router string - router2 *Router - urlParams_ gensupport.URLParams - ctx_ context.Context - header_ http.Header +type RegionTargetHttpProxiesGetCall struct { + s *Service + project string + region string + targetHttpProxy string + urlParams_ gensupport.URLParams + ifNoneMatch_ string + ctx_ context.Context + header_ http.Header } -// Patch: Patches the specified Router resource with the data included in the -// request. This method supports PATCH semantics and uses JSON merge patch -// format and processing rules. +// Get: Returns the specified TargetHttpProxy resource in the specified region. // // - project: Project ID for this request. -// - region: Name of the region for this request. -// - router: Name of the Router resource to patch. -func (r *RoutersService) Patch(project string, region string, router string, router2 *Router) *RoutersPatchCall { - c := &RoutersPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)} +// - region: Name of the region scoping this request. +// - targetHttpProxy: Name of the TargetHttpProxy resource to return. +func (r *RegionTargetHttpProxiesService) Get(project string, region string, targetHttpProxy string) *RegionTargetHttpProxiesGetCall { + c := &RegionTargetHttpProxiesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project c.region = region - c.router = router - c.router2 = router2 - 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 *RoutersPatchCall) RequestId(requestId string) *RoutersPatchCall { - c.urlParams_.Set("requestId", requestId) + c.targetHttpProxy = targetHttpProxy return c } // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *RoutersPatchCall) Fields(s ...googleapi.Field) *RoutersPatchCall { +func (c *RegionTargetHttpProxiesGetCall) Fields(s ...googleapi.Field) *RegionTargetHttpProxiesGetCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } +// IfNoneMatch sets an 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. +func (c *RegionTargetHttpProxiesGetCall) IfNoneMatch(entityTag string) *RegionTargetHttpProxiesGetCall { + c.ifNoneMatch_ = entityTag + return c +} + // Context sets the context to be used in this call's Do method. -func (c *RoutersPatchCall) Context(ctx context.Context) *RoutersPatchCall { +func (c *RegionTargetHttpProxiesGetCall) Context(ctx context.Context) *RegionTargetHttpProxiesGetCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *RoutersPatchCall) Header() http.Header { +func (c *RegionTargetHttpProxiesGetCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *RoutersPatchCall) doRequest(alt string) (*http.Response, error) { - reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) - var body io.Reader = nil - body, err := googleapi.WithoutDataWrapper.JSONReader(c.router2) - if err != nil { - return nil, err +func (c *RegionTargetHttpProxiesGetCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) + if c.ifNoneMatch_ != "" { + reqHeaders.Set("If-None-Match", c.ifNoneMatch_) } c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/routers/{router}") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/targetHttpProxies/{targetHttpProxy}") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("PATCH", urls, body) + req, err := http.NewRequest("GET", urls, nil) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "region": c.region, - "router": c.router, + "project": c.project, + "region": c.region, + "targetHttpProxy": c.targetHttpProxy, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.regionTargetHttpProxies.get", "request", internallog.HTTPRequest(req, nil)) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.routers.patch" call. +// Do executes the "compute.regionTargetHttpProxies.get" call. // 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 *RoutersPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) { +// *TargetHttpProxy.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 *RegionTargetHttpProxiesGetCall) Do(opts ...googleapi.CallOption) (*TargetHttpProxy, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -26211,78 +28269,99 @@ func (c *RoutersPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } - ret := &Operation{ + ret := &TargetHttpProxy{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.regionTargetHttpProxies.get", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type RoutersPreviewCall struct { - s *Service - project string - region string - router string - router2 *Router - urlParams_ gensupport.URLParams - ctx_ context.Context - header_ http.Header +type RegionTargetHttpProxiesInsertCall struct { + s *Service + project string + region string + targethttpproxy *TargetHttpProxy + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header } -// Preview: Preview fields auto-generated during router create and update -// operations. Calling this method does NOT create or update the router. +// Insert: Creates a TargetHttpProxy resource in the specified project and +// region +// using the data included in the request. // // - project: Project ID for this request. -// - region: Name of the region for this request. -// - router: Name of the Router resource to query. -func (r *RoutersService) Preview(project string, region string, router string, router2 *Router) *RoutersPreviewCall { - c := &RoutersPreviewCall{s: r.s, urlParams_: make(gensupport.URLParams)} +// - region: Name of the region scoping this request. +func (r *RegionTargetHttpProxiesService) Insert(project string, region string, targethttpproxy *TargetHttpProxy) *RegionTargetHttpProxiesInsertCall { + c := &RegionTargetHttpProxiesInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project c.region = region - c.router = router - c.router2 = router2 + c.targethttpproxy = targethttpproxy + 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 *RegionTargetHttpProxiesInsertCall) RequestId(requestId string) *RegionTargetHttpProxiesInsertCall { + 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 // details. -func (c *RoutersPreviewCall) Fields(s ...googleapi.Field) *RoutersPreviewCall { +func (c *RegionTargetHttpProxiesInsertCall) Fields(s ...googleapi.Field) *RegionTargetHttpProxiesInsertCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } // Context sets the context to be used in this call's Do method. -func (c *RoutersPreviewCall) Context(ctx context.Context) *RoutersPreviewCall { +func (c *RegionTargetHttpProxiesInsertCall) Context(ctx context.Context) *RegionTargetHttpProxiesInsertCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *RoutersPreviewCall) Header() http.Header { +func (c *RegionTargetHttpProxiesInsertCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *RoutersPreviewCall) doRequest(alt string) (*http.Response, error) { +func (c *RegionTargetHttpProxiesInsertCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) - var body io.Reader = nil - body, err := googleapi.WithoutDataWrapper.JSONReader(c.router2) + body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.targethttpproxy) if err != nil { return nil, err } c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/routers/{router}/preview") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/targetHttpProxies") urls += "?" + c.urlParams_.Encode() req, err := http.NewRequest("POST", urls, body) if err != nil { @@ -26292,18 +28371,17 @@ func (c *RoutersPreviewCall) doRequest(alt string) (*http.Response, error) { googleapi.Expand(req.URL, map[string]string{ "project": c.project, "region": c.region, - "router": c.router, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.regionTargetHttpProxies.insert", "request", internallog.HTTPRequest(req, body.Bytes())) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.routers.preview" call. +// Do executes the "compute.regionTargetHttpProxies.insert" call. // Any non-2xx status code is an error. Response headers are in either -// *RoutersPreviewResponse.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 *RoutersPreviewCall) Do(opts ...googleapi.CallOption) (*RoutersPreviewResponse, error) { +// *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 *RegionTargetHttpProxiesInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -26322,97 +28400,212 @@ func (c *RoutersPreviewCall) Do(opts ...googleapi.CallOption) (*RoutersPreviewRe if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } - ret := &RoutersPreviewResponse{ + ret := &Operation{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.regionTargetHttpProxies.insert", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type RoutersUpdateCall struct { - s *Service - project string - region string - router string - router2 *Router - urlParams_ gensupport.URLParams - ctx_ context.Context - header_ http.Header +type RegionTargetHttpProxiesListCall struct { + s *Service + project string + region string + urlParams_ gensupport.URLParams + ifNoneMatch_ string + ctx_ context.Context + header_ http.Header } -// Update: Updates the specified Router resource with the data included in the -// request. This method conforms to PUT semantics, which requests that the -// state of the target resource be created or replaced with the state defined -// by the representation enclosed in the request message payload. +// List: Retrieves the list of TargetHttpProxy resources available +// to the specified project in the specified region. // // - project: Project ID for this request. -// - region: Name of the region for this request. -// - router: Name of the Router resource to update. -func (r *RoutersService) Update(project string, region string, router string, router2 *Router) *RoutersUpdateCall { - c := &RoutersUpdateCall{s: r.s, urlParams_: make(gensupport.URLParams)} +// - region: Name of the region scoping this request. +func (r *RegionTargetHttpProxiesService) List(project string, region string) *RegionTargetHttpProxiesListCall { + c := &RegionTargetHttpProxiesListCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project c.region = region - c.router = router - c.router2 = router2 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 *RoutersUpdateCall) RequestId(requestId string) *RoutersUpdateCall { - c.urlParams_.Set("requestId", requestId) +// Filter sets the optional parameter "filter": A filter expression that +// filters resources listed in the response. Most +// Compute resources support two types of filter expressions: +// expressions that support regular expressions and expressions that follow +// API improvement proposal AIP-160. +// These two types of filter expressions cannot be mixed in one request. +// +// If you want to use AIP-160, your expression must specify the field name, +// an +// operator, and the value that you want to use for filtering. The value +// must be a string, a number, or a boolean. The 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`. +// +// The `:*` comparison can be used to test whether a key has been defined. +// For example, to find all objects with `owner` label +// use: +// ``` +// labels.owner:* +// ``` +// +// 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 onresource 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) +// ``` +// +// If you want to use a regular expression, use the `eq` (equal) or `ne` +// (not equal) operator against a single un-parenthesized expression with +// or +// without quotes or against multiple parenthesized expressions. +// Examples: +// +// `fieldname eq unquoted literal` +// `fieldname eq 'single quoted literal'` +// `fieldname eq "double quoted literal" +// `(fieldname1 eq literal) (fieldname2 ne "literal")` +// +// The literal value is interpreted as a regular expression using GoogleRE2 +// library syntax. +// The literal value must match the entire field. +// +// For example, to filter for instances that do not end with name +// "instance", +// you would use `name ne .*instance`. +// +// You cannot combine constraints on multiple fields using regular +// expressions. +func (c *RegionTargetHttpProxiesListCall) Filter(filter string) *RegionTargetHttpProxiesListCall { + 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 *RegionTargetHttpProxiesListCall) MaxResults(maxResults int64) *RegionTargetHttpProxiesListCall { + 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 *RegionTargetHttpProxiesListCall) OrderBy(orderBy string) *RegionTargetHttpProxiesListCall { + 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 *RegionTargetHttpProxiesListCall) PageToken(pageToken string) *RegionTargetHttpProxiesListCall { + c.urlParams_.Set("pageToken", pageToken) + return c +} + +// ReturnPartialSuccess sets the optional parameter "returnPartialSuccess": +// Opt-in for partial success behavior which provides partial results in +// case +// of failure. The default value is false. +// +// For example, when partial success behavior is enabled, aggregatedList for +// a +// single zone scope either returns all resources in the zone or no +// resources, +// with an error code. +func (c *RegionTargetHttpProxiesListCall) ReturnPartialSuccess(returnPartialSuccess bool) *RegionTargetHttpProxiesListCall { + c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess)) return c } // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *RoutersUpdateCall) Fields(s ...googleapi.Field) *RoutersUpdateCall { +func (c *RegionTargetHttpProxiesListCall) Fields(s ...googleapi.Field) *RegionTargetHttpProxiesListCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } +// IfNoneMatch sets an 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. +func (c *RegionTargetHttpProxiesListCall) IfNoneMatch(entityTag string) *RegionTargetHttpProxiesListCall { + c.ifNoneMatch_ = entityTag + return c +} + // Context sets the context to be used in this call's Do method. -func (c *RoutersUpdateCall) Context(ctx context.Context) *RoutersUpdateCall { +func (c *RegionTargetHttpProxiesListCall) Context(ctx context.Context) *RegionTargetHttpProxiesListCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *RoutersUpdateCall) Header() http.Header { +func (c *RegionTargetHttpProxiesListCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *RoutersUpdateCall) doRequest(alt string) (*http.Response, error) { - reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) - var body io.Reader = nil - body, err := googleapi.WithoutDataWrapper.JSONReader(c.router2) - if err != nil { - return nil, err +func (c *RegionTargetHttpProxiesListCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) + if c.ifNoneMatch_ != "" { + reqHeaders.Set("If-None-Match", c.ifNoneMatch_) } c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/routers/{router}") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/targetHttpProxies") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("PUT", urls, body) + req, err := http.NewRequest("GET", urls, nil) if err != nil { return nil, err } @@ -26420,17 +28613,18 @@ func (c *RoutersUpdateCall) doRequest(alt string) (*http.Response, error) { googleapi.Expand(req.URL, map[string]string{ "project": c.project, "region": c.region, - "router": c.router, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.regionTargetHttpProxies.list", "request", internallog.HTTPRequest(req, nil)) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.routers.update" call. +// Do executes the "compute.regionTargetHttpProxies.list" call. // 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 *RoutersUpdateCall) Do(opts ...googleapi.CallOption) (*Operation, error) { +// *TargetHttpProxyList.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 *RegionTargetHttpProxiesListCall) Do(opts ...googleapi.CallOption) (*TargetHttpProxyList, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -26449,50 +28643,85 @@ func (c *RoutersUpdateCall) Do(opts ...googleapi.CallOption) (*Operation, error) if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } - ret := &Operation{ + ret := &TargetHttpProxyList{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.regionTargetHttpProxies.list", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type RoutesDeleteCall struct { - s *Service - project string - route string - urlParams_ gensupport.URLParams - ctx_ context.Context - header_ http.Header +// 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 *RegionTargetHttpProxiesListCall) Pages(ctx context.Context, f func(*TargetHttpProxyList) error) error { + c.ctx_ = ctx + defer c.PageToken(c.urlParams_.Get("pageToken")) + 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) + } } -// Delete: Deletes the specified Route resource. +type RegionTargetHttpProxiesSetUrlMapCall struct { + s *Service + project string + region string + targetHttpProxy string + urlmapreference *UrlMapReference + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header +} + +// SetUrlMap: Changes the URL map for TargetHttpProxy. // // - project: Project ID for this request. -// - route: Name of the Route resource to delete. -func (r *RoutesService) Delete(project string, route string) *RoutesDeleteCall { - c := &RoutesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)} +// - region: Name of the region scoping this request. +// - targetHttpProxy: Name of the TargetHttpProxy to set a URL map for. +func (r *RegionTargetHttpProxiesService) SetUrlMap(project string, region string, targetHttpProxy string, urlmapreference *UrlMapReference) *RegionTargetHttpProxiesSetUrlMapCall { + c := &RegionTargetHttpProxiesSetUrlMapCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project - c.route = route + c.region = region + c.targetHttpProxy = targetHttpProxy + c.urlmapreference = urlmapreference 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 *RoutesDeleteCall) RequestId(requestId string) *RoutesDeleteCall { +// 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 *RegionTargetHttpProxiesSetUrlMapCall) RequestId(requestId string) *RegionTargetHttpProxiesSetUrlMapCall { c.urlParams_.Set("requestId", requestId) return c } @@ -26500,51 +28729,56 @@ func (c *RoutesDeleteCall) RequestId(requestId string) *RoutesDeleteCall { // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *RoutesDeleteCall) Fields(s ...googleapi.Field) *RoutesDeleteCall { +func (c *RegionTargetHttpProxiesSetUrlMapCall) Fields(s ...googleapi.Field) *RegionTargetHttpProxiesSetUrlMapCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } // Context sets the context to be used in this call's Do method. -func (c *RoutesDeleteCall) Context(ctx context.Context) *RoutesDeleteCall { +func (c *RegionTargetHttpProxiesSetUrlMapCall) Context(ctx context.Context) *RegionTargetHttpProxiesSetUrlMapCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *RoutesDeleteCall) Header() http.Header { +func (c *RegionTargetHttpProxiesSetUrlMapCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *RoutesDeleteCall) doRequest(alt string) (*http.Response, error) { - reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) - var body io.Reader = nil +func (c *RegionTargetHttpProxiesSetUrlMapCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) + body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.urlmapreference) + if err != nil { + return nil, err + } c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/routes/{route}") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/targetHttpProxies/{targetHttpProxy}/setUrlMap") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("DELETE", urls, body) + req, err := http.NewRequest("POST", urls, body) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "route": c.route, + "project": c.project, + "region": c.region, + "targetHttpProxy": c.targetHttpProxy, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.regionTargetHttpProxies.setUrlMap", "request", internallog.HTTPRequest(req, body.Bytes())) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.routes.delete" call. +// Do executes the "compute.regionTargetHttpProxies.setUrlMap" call. // 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 *RoutesDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) { +func (c *RegionTargetHttpProxiesSetUrlMapCall) Do(opts ...googleapi.CallOption) (*Operation, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -26570,37 +28804,170 @@ func (c *RoutesDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.regionTargetHttpProxies.setUrlMap", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type RoutesGetCall struct { - s *Service - project string - route string - urlParams_ gensupport.URLParams - ifNoneMatch_ string - ctx_ context.Context - header_ http.Header +type RegionTargetHttpsProxiesDeleteCall struct { + s *Service + project string + region string + targetHttpsProxy string + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header } -// Get: Returns the specified Route resource. +// Delete: Deletes the specified TargetHttpsProxy resource. // // - project: Project ID for this request. -// - route: Name of the Route resource to return. -func (r *RoutesService) Get(project string, route string) *RoutesGetCall { - c := &RoutesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)} +// - region: Name of the region scoping this request. +// - targetHttpsProxy: Name of the TargetHttpsProxy resource to delete. +func (r *RegionTargetHttpsProxiesService) Delete(project string, region string, targetHttpsProxy string) *RegionTargetHttpsProxiesDeleteCall { + c := &RegionTargetHttpsProxiesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project - c.route = route + c.region = region + c.targetHttpsProxy = targetHttpsProxy + 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 *RegionTargetHttpsProxiesDeleteCall) RequestId(requestId string) *RegionTargetHttpsProxiesDeleteCall { + 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 // details. -func (c *RoutesGetCall) Fields(s ...googleapi.Field) *RoutesGetCall { +func (c *RegionTargetHttpsProxiesDeleteCall) Fields(s ...googleapi.Field) *RegionTargetHttpsProxiesDeleteCall { + c.urlParams_.Set("fields", googleapi.CombineFields(s)) + return c +} + +// Context sets the context to be used in this call's Do method. +func (c *RegionTargetHttpsProxiesDeleteCall) Context(ctx context.Context) *RegionTargetHttpsProxiesDeleteCall { + c.ctx_ = ctx + return c +} + +// Header returns a http.Header that can be modified by the caller to add +// headers to the request. +func (c *RegionTargetHttpsProxiesDeleteCall) Header() http.Header { + if c.header_ == nil { + c.header_ = make(http.Header) + } + return c.header_ +} + +func (c *RegionTargetHttpsProxiesDeleteCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) + c.urlParams_.Set("alt", alt) + c.urlParams_.Set("prettyPrint", "false") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/targetHttpsProxies/{targetHttpsProxy}") + urls += "?" + c.urlParams_.Encode() + req, err := http.NewRequest("DELETE", urls, nil) + if err != nil { + return nil, err + } + req.Header = reqHeaders + googleapi.Expand(req.URL, map[string]string{ + "project": c.project, + "region": c.region, + "targetHttpsProxy": c.targetHttpsProxy, + }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.regionTargetHttpsProxies.delete", "request", internallog.HTTPRequest(req, nil)) + return gensupport.SendRequest(c.ctx_, c.s.client, req) +} + +// Do executes the "compute.regionTargetHttpsProxies.delete" call. +// 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 *RegionTargetHttpsProxiesDeleteCall) 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, gensupport.WrapError(&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, gensupport.WrapError(err) + } + ret := &Operation{ + ServerResponse: googleapi.ServerResponse{ + Header: res.Header, + HTTPStatusCode: res.StatusCode, + }, + } + target := &ret + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { + return nil, err + } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.regionTargetHttpsProxies.delete", "response", internallog.HTTPResponse(res, b)) + return ret, nil +} + +type RegionTargetHttpsProxiesGetCall struct { + s *Service + project string + region string + targetHttpsProxy string + urlParams_ gensupport.URLParams + ifNoneMatch_ string + ctx_ context.Context + header_ http.Header +} + +// Get: Returns the specified TargetHttpsProxy resource in the specified +// region. +// +// - project: Project ID for this request. +// - region: Name of the region scoping this request. +// - targetHttpsProxy: Name of the TargetHttpsProxy resource to return. +func (r *RegionTargetHttpsProxiesService) Get(project string, region string, targetHttpsProxy string) *RegionTargetHttpsProxiesGetCall { + c := &RegionTargetHttpsProxiesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)} + c.project = project + c.region = region + c.targetHttpsProxy = targetHttpsProxy + return c +} + +// Fields allows partial responses to be retrieved. See +// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more +// details. +func (c *RegionTargetHttpsProxiesGetCall) Fields(s ...googleapi.Field) *RegionTargetHttpsProxiesGetCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } @@ -26608,54 +28975,56 @@ func (c *RoutesGetCall) Fields(s ...googleapi.Field) *RoutesGetCall { // IfNoneMatch sets an 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. -func (c *RoutesGetCall) IfNoneMatch(entityTag string) *RoutesGetCall { +func (c *RegionTargetHttpsProxiesGetCall) IfNoneMatch(entityTag string) *RegionTargetHttpsProxiesGetCall { c.ifNoneMatch_ = entityTag return c } // Context sets the context to be used in this call's Do method. -func (c *RoutesGetCall) Context(ctx context.Context) *RoutesGetCall { +func (c *RegionTargetHttpsProxiesGetCall) Context(ctx context.Context) *RegionTargetHttpsProxiesGetCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *RoutesGetCall) Header() http.Header { +func (c *RegionTargetHttpsProxiesGetCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *RoutesGetCall) doRequest(alt string) (*http.Response, error) { +func (c *RegionTargetHttpsProxiesGetCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) if c.ifNoneMatch_ != "" { reqHeaders.Set("If-None-Match", c.ifNoneMatch_) } - var body io.Reader = nil c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/routes/{route}") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/targetHttpsProxies/{targetHttpsProxy}") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("GET", urls, body) + req, err := http.NewRequest("GET", urls, nil) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "route": c.route, + "project": c.project, + "region": c.region, + "targetHttpsProxy": c.targetHttpsProxy, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.regionTargetHttpsProxies.get", "request", internallog.HTTPRequest(req, nil)) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.routes.get" call. +// Do executes the "compute.regionTargetHttpsProxies.get" call. // Any non-2xx status code is an error. Response headers are in either -// *Route.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 *RoutesGetCall) Do(opts ...googleapi.CallOption) (*Route, error) { +// *TargetHttpsProxy.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 *RegionTargetHttpsProxiesGetCall) Do(opts ...googleapi.CallOption) (*TargetHttpsProxy, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -26674,50 +29043,63 @@ func (c *RoutesGetCall) Do(opts ...googleapi.CallOption) (*Route, error) { if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } - ret := &Route{ + ret := &TargetHttpsProxy{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.regionTargetHttpsProxies.get", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type RoutesInsertCall struct { - s *Service - project string - route *Route - urlParams_ gensupport.URLParams - ctx_ context.Context - header_ http.Header +type RegionTargetHttpsProxiesInsertCall struct { + s *Service + project string + region string + targethttpsproxy *TargetHttpsProxy + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header } -// Insert: Creates a Route resource in the specified project using the data -// included in the request. +// Insert: Creates a TargetHttpsProxy resource in the specified project and +// region +// using the data included in the request. // // - project: Project ID for this request. -func (r *RoutesService) Insert(project string, route *Route) *RoutesInsertCall { - c := &RoutesInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)} +// - region: Name of the region scoping this request. +func (r *RegionTargetHttpsProxiesService) Insert(project string, region string, targethttpsproxy *TargetHttpsProxy) *RegionTargetHttpsProxiesInsertCall { + c := &RegionTargetHttpsProxiesInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project - c.route = route + c.region = region + c.targethttpsproxy = targethttpsproxy 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 *RoutesInsertCall) RequestId(requestId string) *RoutesInsertCall { +// 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 *RegionTargetHttpsProxiesInsertCall) RequestId(requestId string) *RegionTargetHttpsProxiesInsertCall { c.urlParams_.Set("requestId", requestId) return c } @@ -26725,36 +29107,35 @@ func (c *RoutesInsertCall) RequestId(requestId string) *RoutesInsertCall { // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *RoutesInsertCall) Fields(s ...googleapi.Field) *RoutesInsertCall { +func (c *RegionTargetHttpsProxiesInsertCall) Fields(s ...googleapi.Field) *RegionTargetHttpsProxiesInsertCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } // Context sets the context to be used in this call's Do method. -func (c *RoutesInsertCall) Context(ctx context.Context) *RoutesInsertCall { +func (c *RegionTargetHttpsProxiesInsertCall) Context(ctx context.Context) *RegionTargetHttpsProxiesInsertCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *RoutesInsertCall) Header() http.Header { +func (c *RegionTargetHttpsProxiesInsertCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *RoutesInsertCall) doRequest(alt string) (*http.Response, error) { +func (c *RegionTargetHttpsProxiesInsertCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) - var body io.Reader = nil - body, err := googleapi.WithoutDataWrapper.JSONReader(c.route) + body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.targethttpsproxy) if err != nil { return nil, err } c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/routes") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/targetHttpsProxies") urls += "?" + c.urlParams_.Encode() req, err := http.NewRequest("POST", urls, body) if err != nil { @@ -26763,16 +29144,18 @@ func (c *RoutesInsertCall) doRequest(alt string) (*http.Response, error) { req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ "project": c.project, + "region": c.region, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.regionTargetHttpsProxies.insert", "request", internallog.HTTPRequest(req, body.Bytes())) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.routes.insert" call. +// Do executes the "compute.regionTargetHttpsProxies.insert" call. // 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 *RoutesInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) { +func (c *RegionTargetHttpsProxiesInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -26798,105 +29181,160 @@ func (c *RoutesInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.regionTargetHttpsProxies.insert", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type RoutesListCall struct { +type RegionTargetHttpsProxiesListCall struct { s *Service project string + region string urlParams_ gensupport.URLParams ifNoneMatch_ string ctx_ context.Context header_ http.Header } -// List: Retrieves the list of Route resources available to the specified -// project. +// List: Retrieves the list of TargetHttpsProxy resources available +// to the specified project in the specified region. // // - project: Project ID for this request. -func (r *RoutesService) List(project string) *RoutesListCall { - c := &RoutesListCall{s: r.s, urlParams_: make(gensupport.URLParams)} +// - region: Name of the region scoping this request. +func (r *RegionTargetHttpsProxiesService) List(project string, region string) *RegionTargetHttpsProxiesListCall { + c := &RegionTargetHttpsProxiesListCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project + c.region = region return c } // Filter sets the optional parameter "filter": A filter expression that -// filters resources listed in the response. Most Compute resources support two -// types of filter expressions: expressions that support regular expressions -// and expressions that follow API improvement proposal AIP-160. These two -// types of filter expressions cannot be mixed in one request. If you want to -// use AIP-160, your expression must specify the field name, an operator, and -// the value that you want to use for filtering. The value must be a string, a -// number, or a boolean. The 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`. The `:*` comparison can be used to test whether a key has -// been defined. For example, to find all objects with `owner` label use: ``` -// labels.owner:* ``` 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) ``` If you want to use a regular -// expression, use the `eq` (equal) or `ne` (not equal) operator against a -// single un-parenthesized expression with or without quotes or against -// multiple parenthesized expressions. Examples: `fieldname eq unquoted -// literal` `fieldname eq 'single quoted literal'` `fieldname eq "double quoted -// literal" `(fieldname1 eq literal) (fieldname2 ne "literal")` The literal -// value is interpreted as a regular expression using Google RE2 library -// syntax. The literal value must match the entire field. For example, to -// filter for instances that do not end with name "instance", you would use -// `name ne .*instance`. You cannot combine constraints on multiple fields -// using regular expressions. -func (c *RoutesListCall) Filter(filter string) *RoutesListCall { +// filters resources listed in the response. Most +// Compute resources support two types of filter expressions: +// expressions that support regular expressions and expressions that follow +// API improvement proposal AIP-160. +// These two types of filter expressions cannot be mixed in one request. +// +// If you want to use AIP-160, your expression must specify the field name, +// an +// operator, and the value that you want to use for filtering. The value +// must be a string, a number, or a boolean. The 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`. +// +// The `:*` comparison can be used to test whether a key has been defined. +// For example, to find all objects with `owner` label +// use: +// ``` +// labels.owner:* +// ``` +// +// 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 onresource 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) +// ``` +// +// If you want to use a regular expression, use the `eq` (equal) or `ne` +// (not equal) operator against a single un-parenthesized expression with +// or +// without quotes or against multiple parenthesized expressions. +// Examples: +// +// `fieldname eq unquoted literal` +// `fieldname eq 'single quoted literal'` +// `fieldname eq "double quoted literal" +// `(fieldname1 eq literal) (fieldname2 ne "literal")` +// +// The literal value is interpreted as a regular expression using GoogleRE2 +// library syntax. +// The literal value must match the entire field. +// +// For example, to filter for instances that do not end with name +// "instance", +// you would use `name ne .*instance`. +// +// You cannot combine constraints on multiple fields using regular +// expressions. +func (c *RegionTargetHttpsProxiesListCall) Filter(filter string) *RegionTargetHttpsProxiesListCall { 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 *RoutesListCall) MaxResults(maxResults int64) *RoutesListCall { +// 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 *RegionTargetHttpsProxiesListCall) MaxResults(maxResults int64) *RegionTargetHttpsProxiesListCall { 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 *RoutesListCall) OrderBy(orderBy string) *RoutesListCall { +// 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 *RegionTargetHttpsProxiesListCall) OrderBy(orderBy string) *RegionTargetHttpsProxiesListCall { 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 *RoutesListCall) PageToken(pageToken string) *RoutesListCall { +// use. Set `pageToken` to the +// `nextPageToken` returned by a previous list request to get +// the next page of results. +func (c *RegionTargetHttpsProxiesListCall) PageToken(pageToken string) *RegionTargetHttpsProxiesListCall { c.urlParams_.Set("pageToken", pageToken) return c } // ReturnPartialSuccess sets the optional parameter "returnPartialSuccess": -// Opt-in for partial success behavior which provides partial results in case -// of failure. The default value is false. For example, when partial success -// behavior is enabled, aggregatedList for a single zone scope either returns -// all resources in the zone or no resources, with an error code. -func (c *RoutesListCall) ReturnPartialSuccess(returnPartialSuccess bool) *RoutesListCall { +// Opt-in for partial success behavior which provides partial results in +// case +// of failure. The default value is false. +// +// For example, when partial success behavior is enabled, aggregatedList for +// a +// single zone scope either returns all resources in the zone or no +// resources, +// with an error code. +func (c *RegionTargetHttpsProxiesListCall) ReturnPartialSuccess(returnPartialSuccess bool) *RegionTargetHttpsProxiesListCall { c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess)) return c } @@ -26904,7 +29342,7 @@ func (c *RoutesListCall) ReturnPartialSuccess(returnPartialSuccess bool) *Routes // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *RoutesListCall) Fields(s ...googleapi.Field) *RoutesListCall { +func (c *RegionTargetHttpsProxiesListCall) Fields(s ...googleapi.Field) *RegionTargetHttpsProxiesListCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } @@ -26912,53 +29350,55 @@ func (c *RoutesListCall) Fields(s ...googleapi.Field) *RoutesListCall { // IfNoneMatch sets an 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. -func (c *RoutesListCall) IfNoneMatch(entityTag string) *RoutesListCall { +func (c *RegionTargetHttpsProxiesListCall) IfNoneMatch(entityTag string) *RegionTargetHttpsProxiesListCall { c.ifNoneMatch_ = entityTag return c } // Context sets the context to be used in this call's Do method. -func (c *RoutesListCall) Context(ctx context.Context) *RoutesListCall { +func (c *RegionTargetHttpsProxiesListCall) Context(ctx context.Context) *RegionTargetHttpsProxiesListCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *RoutesListCall) Header() http.Header { +func (c *RegionTargetHttpsProxiesListCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *RoutesListCall) doRequest(alt string) (*http.Response, error) { +func (c *RegionTargetHttpsProxiesListCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) if c.ifNoneMatch_ != "" { reqHeaders.Set("If-None-Match", c.ifNoneMatch_) } - var body io.Reader = nil c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/routes") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/targetHttpsProxies") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("GET", urls, body) + req, err := http.NewRequest("GET", urls, nil) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ "project": c.project, + "region": c.region, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.regionTargetHttpsProxies.list", "request", internallog.HTTPRequest(req, nil)) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.routes.list" call. +// Do executes the "compute.regionTargetHttpsProxies.list" call. // Any non-2xx status code is an error. Response headers are in either -// *RouteList.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 *RoutesListCall) Do(opts ...googleapi.CallOption) (*RouteList, error) { +// *TargetHttpsProxyList.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 *RegionTargetHttpsProxiesListCall) Do(opts ...googleapi.CallOption) (*TargetHttpsProxyList, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -26977,23 +29417,25 @@ func (c *RoutesListCall) Do(opts ...googleapi.CallOption) (*RouteList, error) { if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } - ret := &RouteList{ + ret := &TargetHttpsProxyList{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.regionTargetHttpsProxies.list", "response", internallog.HTTPResponse(res, b)) return ret, nil } // 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 *RoutesListCall) Pages(ctx context.Context, f func(*RouteList) error) error { +func (c *RegionTargetHttpsProxiesListCall) Pages(ctx context.Context, f func(*TargetHttpsProxyList) error) error { c.ctx_ = ctx defer c.PageToken(c.urlParams_.Get("pageToken")) for { @@ -27011,87 +29453,110 @@ func (c *RoutesListCall) Pages(ctx context.Context, f func(*RouteList) error) er } } -type SecurityPoliciesAddRuleCall struct { - s *Service - project string - securityPolicy string - securitypolicyrule *SecurityPolicyRule - urlParams_ gensupport.URLParams - ctx_ context.Context - header_ http.Header +type RegionTargetHttpsProxiesPatchCall struct { + s *Service + project string + region string + targetHttpsProxy string + targethttpsproxy *TargetHttpsProxy + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header } -// AddRule: Inserts a rule into a security policy. +// Patch: Patches the specified regional TargetHttpsProxy resource with the +// data +// included in the request. This method supports PATCH +// semantics and usesJSON merge +// patch format and processing rules. // // - project: Project ID for this request. -// - securityPolicy: Name of the security policy to update. -func (r *SecurityPoliciesService) AddRule(project string, securityPolicy string, securitypolicyrule *SecurityPolicyRule) *SecurityPoliciesAddRuleCall { - c := &SecurityPoliciesAddRuleCall{s: r.s, urlParams_: make(gensupport.URLParams)} +// - region: Name of the region for this request. +// - targetHttpsProxy: Name of the TargetHttpsProxy resource to patch. +func (r *RegionTargetHttpsProxiesService) Patch(project string, region string, targetHttpsProxy string, targethttpsproxy *TargetHttpsProxy) *RegionTargetHttpsProxiesPatchCall { + c := &RegionTargetHttpsProxiesPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project - c.securityPolicy = securityPolicy - c.securitypolicyrule = securitypolicyrule + c.region = region + c.targetHttpsProxy = targetHttpsProxy + c.targethttpsproxy = targethttpsproxy return c } -// ValidateOnly sets the optional parameter "validateOnly": If true, the -// request will not be committed. -func (c *SecurityPoliciesAddRuleCall) ValidateOnly(validateOnly bool) *SecurityPoliciesAddRuleCall { - c.urlParams_.Set("validateOnly", fmt.Sprint(validateOnly)) +// 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 *RegionTargetHttpsProxiesPatchCall) RequestId(requestId string) *RegionTargetHttpsProxiesPatchCall { + 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 // details. -func (c *SecurityPoliciesAddRuleCall) Fields(s ...googleapi.Field) *SecurityPoliciesAddRuleCall { +func (c *RegionTargetHttpsProxiesPatchCall) Fields(s ...googleapi.Field) *RegionTargetHttpsProxiesPatchCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } // Context sets the context to be used in this call's Do method. -func (c *SecurityPoliciesAddRuleCall) Context(ctx context.Context) *SecurityPoliciesAddRuleCall { +func (c *RegionTargetHttpsProxiesPatchCall) Context(ctx context.Context) *RegionTargetHttpsProxiesPatchCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *SecurityPoliciesAddRuleCall) Header() http.Header { +func (c *RegionTargetHttpsProxiesPatchCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *SecurityPoliciesAddRuleCall) doRequest(alt string) (*http.Response, error) { +func (c *RegionTargetHttpsProxiesPatchCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) - var body io.Reader = nil - body, err := googleapi.WithoutDataWrapper.JSONReader(c.securitypolicyrule) + body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.targethttpsproxy) if err != nil { return nil, err } c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/securityPolicies/{securityPolicy}/addRule") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/targetHttpsProxies/{targetHttpsProxy}") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("POST", urls, body) + req, err := http.NewRequest("PATCH", urls, body) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "securityPolicy": c.securityPolicy, + "project": c.project, + "region": c.region, + "targetHttpsProxy": c.targetHttpsProxy, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.regionTargetHttpsProxies.patch", "request", internallog.HTTPRequest(req, body.Bytes())) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.securityPolicies.addRule" call. +// Do executes the "compute.regionTargetHttpsProxies.patch" call. // 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 *SecurityPoliciesAddRuleCall) Do(opts ...googleapi.CallOption) (*Operation, error) { +func (c *RegionTargetHttpsProxiesPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -27117,190 +29582,117 @@ func (c *SecurityPoliciesAddRuleCall) Do(opts ...googleapi.CallOption) (*Operati }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.regionTargetHttpsProxies.patch", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type SecurityPoliciesAggregatedListCall struct { - s *Service - project string - urlParams_ gensupport.URLParams - ifNoneMatch_ string - ctx_ context.Context - header_ http.Header +type RegionTargetHttpsProxiesSetSslCertificatesCall struct { + s *Service + project string + region string + targetHttpsProxy string + regiontargethttpsproxiessetsslcertificatesrequest *RegionTargetHttpsProxiesSetSslCertificatesRequest + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header } -// AggregatedList: Retrieves the list of all SecurityPolicy resources, regional -// and global, available to the specified project. To prevent failure, Google -// recommends that you set the `returnPartialSuccess` parameter to `true`. +// SetSslCertificates: Replaces SslCertificates for TargetHttpsProxy. // -// - project: Name of the project scoping this request. -func (r *SecurityPoliciesService) AggregatedList(project string) *SecurityPoliciesAggregatedListCall { - c := &SecurityPoliciesAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)} +// - project: Project ID for this request. +// - region: Name of the region scoping this request. +// - targetHttpsProxy: Name of the TargetHttpsProxy resource to set +// an +// +// SslCertificates resource for. +func (r *RegionTargetHttpsProxiesService) SetSslCertificates(project string, region string, targetHttpsProxy string, regiontargethttpsproxiessetsslcertificatesrequest *RegionTargetHttpsProxiesSetSslCertificatesRequest) *RegionTargetHttpsProxiesSetSslCertificatesCall { + c := &RegionTargetHttpsProxiesSetSslCertificatesCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project + c.region = region + c.targetHttpsProxy = targetHttpsProxy + c.regiontargethttpsproxiessetsslcertificatesrequest = regiontargethttpsproxiessetsslcertificatesrequest return c } -// Filter sets the optional parameter "filter": A filter expression that -// filters resources listed in the response. Most Compute resources support two -// types of filter expressions: expressions that support regular expressions -// and expressions that follow API improvement proposal AIP-160. These two -// types of filter expressions cannot be mixed in one request. If you want to -// use AIP-160, your expression must specify the field name, an operator, and -// the value that you want to use for filtering. The value must be a string, a -// number, or a boolean. The 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`. The `:*` comparison can be used to test whether a key has -// been defined. For example, to find all objects with `owner` label use: ``` -// labels.owner:* ``` 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) ``` If you want to use a regular -// expression, use the `eq` (equal) or `ne` (not equal) operator against a -// single un-parenthesized expression with or without quotes or against -// multiple parenthesized expressions. Examples: `fieldname eq unquoted -// literal` `fieldname eq 'single quoted literal'` `fieldname eq "double quoted -// literal" `(fieldname1 eq literal) (fieldname2 ne "literal")` The literal -// value is interpreted as a regular expression using Google RE2 library -// syntax. The literal value must match the entire field. For example, to -// filter for instances that do not end with name "instance", you would use -// `name ne .*instance`. You cannot combine constraints on multiple fields -// using regular expressions. -func (c *SecurityPoliciesAggregatedListCall) Filter(filter string) *SecurityPoliciesAggregatedListCall { - c.urlParams_.Set("filter", filter) - return c -} - -// IncludeAllScopes sets the optional parameter "includeAllScopes": Indicates -// whether every visible scope for each scope type (zone, region, global) -// should be included in the response. For new resource types added after this -// field, the flag has no effect as new resource types will always include -// every visible scope for each scope type in response. For resource types -// which predate this field, if this flag is omitted or false, only scopes of -// the scope types where the resource type is expected to be found will be -// included. -func (c *SecurityPoliciesAggregatedListCall) IncludeAllScopes(includeAllScopes bool) *SecurityPoliciesAggregatedListCall { - c.urlParams_.Set("includeAllScopes", fmt.Sprint(includeAllScopes)) - 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 *SecurityPoliciesAggregatedListCall) MaxResults(maxResults int64) *SecurityPoliciesAggregatedListCall { - 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 *SecurityPoliciesAggregatedListCall) OrderBy(orderBy string) *SecurityPoliciesAggregatedListCall { - 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 *SecurityPoliciesAggregatedListCall) PageToken(pageToken string) *SecurityPoliciesAggregatedListCall { - c.urlParams_.Set("pageToken", pageToken) - return c -} - -// ReturnPartialSuccess sets the optional parameter "returnPartialSuccess": -// Opt-in for partial success behavior which provides partial results in case -// of failure. The default value is false. For example, when partial success -// behavior is enabled, aggregatedList for a single zone scope either returns -// all resources in the zone or no resources, with an error code. -func (c *SecurityPoliciesAggregatedListCall) ReturnPartialSuccess(returnPartialSuccess bool) *SecurityPoliciesAggregatedListCall { - c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess)) - return c -} - -// ServiceProjectNumber sets the optional parameter "serviceProjectNumber": The -// Shared VPC service project id or service project number for which aggregated -// list request is invoked for subnetworks list-usable api. -func (c *SecurityPoliciesAggregatedListCall) ServiceProjectNumber(serviceProjectNumber int64) *SecurityPoliciesAggregatedListCall { - c.urlParams_.Set("serviceProjectNumber", fmt.Sprint(serviceProjectNumber)) +// 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 *RegionTargetHttpsProxiesSetSslCertificatesCall) RequestId(requestId string) *RegionTargetHttpsProxiesSetSslCertificatesCall { + 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 // details. -func (c *SecurityPoliciesAggregatedListCall) Fields(s ...googleapi.Field) *SecurityPoliciesAggregatedListCall { +func (c *RegionTargetHttpsProxiesSetSslCertificatesCall) Fields(s ...googleapi.Field) *RegionTargetHttpsProxiesSetSslCertificatesCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } -// IfNoneMatch sets an 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. -func (c *SecurityPoliciesAggregatedListCall) IfNoneMatch(entityTag string) *SecurityPoliciesAggregatedListCall { - c.ifNoneMatch_ = entityTag - return c -} - // Context sets the context to be used in this call's Do method. -func (c *SecurityPoliciesAggregatedListCall) Context(ctx context.Context) *SecurityPoliciesAggregatedListCall { +func (c *RegionTargetHttpsProxiesSetSslCertificatesCall) Context(ctx context.Context) *RegionTargetHttpsProxiesSetSslCertificatesCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *SecurityPoliciesAggregatedListCall) Header() http.Header { +func (c *RegionTargetHttpsProxiesSetSslCertificatesCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *SecurityPoliciesAggregatedListCall) doRequest(alt string) (*http.Response, error) { - reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) - if c.ifNoneMatch_ != "" { - reqHeaders.Set("If-None-Match", c.ifNoneMatch_) +func (c *RegionTargetHttpsProxiesSetSslCertificatesCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) + body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.regiontargethttpsproxiessetsslcertificatesrequest) + if err != nil { + return nil, err } - var body io.Reader = nil c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/aggregated/securityPolicies") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/targetHttpsProxies/{targetHttpsProxy}/setSslCertificates") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("GET", urls, body) + req, err := http.NewRequest("POST", urls, body) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, + "project": c.project, + "region": c.region, + "targetHttpsProxy": c.targetHttpsProxy, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.regionTargetHttpsProxies.setSslCertificates", "request", internallog.HTTPRequest(req, body.Bytes())) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.securityPolicies.aggregatedList" call. +// Do executes the "compute.regionTargetHttpsProxies.setSslCertificates" call. // Any non-2xx status code is an error. Response headers are in either -// *SecurityPoliciesAggregatedList.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 *SecurityPoliciesAggregatedListCall) Do(opts ...googleapi.CallOption) (*SecurityPoliciesAggregatedList, error) { +// *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 *RegionTargetHttpsProxiesSetSslCertificatesCall) Do(opts ...googleapi.CallOption) (*Operation, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -27319,71 +29711,64 @@ func (c *SecurityPoliciesAggregatedListCall) Do(opts ...googleapi.CallOption) (* if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } - ret := &SecurityPoliciesAggregatedList{ + ret := &Operation{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.regionTargetHttpsProxies.setSslCertificates", "response", internallog.HTTPResponse(res, b)) return ret, nil } -// 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 *SecurityPoliciesAggregatedListCall) Pages(ctx context.Context, f func(*SecurityPoliciesAggregatedList) error) error { - c.ctx_ = ctx - defer c.PageToken(c.urlParams_.Get("pageToken")) - 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) - } -} - -type SecurityPoliciesDeleteCall struct { - s *Service - project string - securityPolicy string - urlParams_ gensupport.URLParams - ctx_ context.Context - header_ http.Header +type RegionTargetHttpsProxiesSetUrlMapCall struct { + s *Service + project string + region string + targetHttpsProxy string + urlmapreference *UrlMapReference + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header } -// Delete: Deletes the specified policy. +// SetUrlMap: Changes the URL map for TargetHttpsProxy. // // - project: Project ID for this request. -// - securityPolicy: Name of the security policy to delete. -func (r *SecurityPoliciesService) Delete(project string, securityPolicy string) *SecurityPoliciesDeleteCall { - c := &SecurityPoliciesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)} +// - region: Name of the region scoping this request. +// - targetHttpsProxy: Name of the TargetHttpsProxy to set a URL map for. +func (r *RegionTargetHttpsProxiesService) SetUrlMap(project string, region string, targetHttpsProxy string, urlmapreference *UrlMapReference) *RegionTargetHttpsProxiesSetUrlMapCall { + c := &RegionTargetHttpsProxiesSetUrlMapCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project - c.securityPolicy = securityPolicy + c.region = region + c.targetHttpsProxy = targetHttpsProxy + c.urlmapreference = urlmapreference 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 *SecurityPoliciesDeleteCall) RequestId(requestId string) *SecurityPoliciesDeleteCall { +// 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 *RegionTargetHttpsProxiesSetUrlMapCall) RequestId(requestId string) *RegionTargetHttpsProxiesSetUrlMapCall { c.urlParams_.Set("requestId", requestId) return c } @@ -27391,51 +29776,56 @@ func (c *SecurityPoliciesDeleteCall) RequestId(requestId string) *SecurityPolici // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *SecurityPoliciesDeleteCall) Fields(s ...googleapi.Field) *SecurityPoliciesDeleteCall { +func (c *RegionTargetHttpsProxiesSetUrlMapCall) Fields(s ...googleapi.Field) *RegionTargetHttpsProxiesSetUrlMapCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } // Context sets the context to be used in this call's Do method. -func (c *SecurityPoliciesDeleteCall) Context(ctx context.Context) *SecurityPoliciesDeleteCall { +func (c *RegionTargetHttpsProxiesSetUrlMapCall) Context(ctx context.Context) *RegionTargetHttpsProxiesSetUrlMapCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *SecurityPoliciesDeleteCall) Header() http.Header { +func (c *RegionTargetHttpsProxiesSetUrlMapCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *SecurityPoliciesDeleteCall) doRequest(alt string) (*http.Response, error) { - reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) - var body io.Reader = nil +func (c *RegionTargetHttpsProxiesSetUrlMapCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) + body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.urlmapreference) + if err != nil { + return nil, err + } c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/securityPolicies/{securityPolicy}") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/targetHttpsProxies/{targetHttpsProxy}/setUrlMap") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("DELETE", urls, body) + req, err := http.NewRequest("POST", urls, body) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "securityPolicy": c.securityPolicy, - }) - return gensupport.SendRequest(c.ctx_, c.s.client, req) + "project": c.project, + "region": c.region, + "targetHttpsProxy": c.targetHttpsProxy, + }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.regionTargetHttpsProxies.setUrlMap", "request", internallog.HTTPRequest(req, body.Bytes())) + return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.securityPolicies.delete" call. +// Do executes the "compute.regionTargetHttpsProxies.setUrlMap" call. // 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 *SecurityPoliciesDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) { +func (c *RegionTargetHttpsProxiesSetUrlMapCall) Do(opts ...googleapi.CallOption) (*Operation, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -27461,92 +29851,108 @@ func (c *SecurityPoliciesDeleteCall) Do(opts ...googleapi.CallOption) (*Operatio }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.regionTargetHttpsProxies.setUrlMap", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type SecurityPoliciesGetCall struct { +type RegionTargetTcpProxiesDeleteCall struct { s *Service project string - securityPolicy string + region string + targetTcpProxy string urlParams_ gensupport.URLParams - ifNoneMatch_ string ctx_ context.Context header_ http.Header } -// Get: List all of the ordered rules present in a single specified policy. +// Delete: Deletes the specified TargetTcpProxy resource. // // - project: Project ID for this request. -// - securityPolicy: Name of the security policy to get. -func (r *SecurityPoliciesService) Get(project string, securityPolicy string) *SecurityPoliciesGetCall { - c := &SecurityPoliciesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)} +// - region: Name of the region scoping this request. +// - targetTcpProxy: Name of the TargetTcpProxy resource to delete. +func (r *RegionTargetTcpProxiesService) Delete(project string, region string, targetTcpProxy string) *RegionTargetTcpProxiesDeleteCall { + c := &RegionTargetTcpProxiesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project - c.securityPolicy = securityPolicy + c.region = region + c.targetTcpProxy = targetTcpProxy + 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 *RegionTargetTcpProxiesDeleteCall) RequestId(requestId string) *RegionTargetTcpProxiesDeleteCall { + 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 // details. -func (c *SecurityPoliciesGetCall) Fields(s ...googleapi.Field) *SecurityPoliciesGetCall { +func (c *RegionTargetTcpProxiesDeleteCall) Fields(s ...googleapi.Field) *RegionTargetTcpProxiesDeleteCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } -// IfNoneMatch sets an 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. -func (c *SecurityPoliciesGetCall) IfNoneMatch(entityTag string) *SecurityPoliciesGetCall { - c.ifNoneMatch_ = entityTag - return c -} - // Context sets the context to be used in this call's Do method. -func (c *SecurityPoliciesGetCall) Context(ctx context.Context) *SecurityPoliciesGetCall { +func (c *RegionTargetTcpProxiesDeleteCall) Context(ctx context.Context) *RegionTargetTcpProxiesDeleteCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *SecurityPoliciesGetCall) Header() http.Header { +func (c *RegionTargetTcpProxiesDeleteCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *SecurityPoliciesGetCall) doRequest(alt string) (*http.Response, error) { +func (c *RegionTargetTcpProxiesDeleteCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) - if c.ifNoneMatch_ != "" { - reqHeaders.Set("If-None-Match", c.ifNoneMatch_) - } - var body io.Reader = nil c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/securityPolicies/{securityPolicy}") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/targetTcpProxies/{targetTcpProxy}") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("GET", urls, body) + req, err := http.NewRequest("DELETE", urls, nil) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ "project": c.project, - "securityPolicy": c.securityPolicy, + "region": c.region, + "targetTcpProxy": c.targetTcpProxy, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.regionTargetTcpProxies.delete", "request", internallog.HTTPRequest(req, nil)) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.securityPolicies.get" call. +// Do executes the "compute.regionTargetTcpProxies.delete" call. // Any non-2xx status code is an error. Response headers are in either -// *SecurityPolicy.ServerResponse.Header or (if a response was returned at all) -// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check +// *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 *SecurityPoliciesGetCall) Do(opts ...googleapi.CallOption) (*SecurityPolicy, error) { +func (c *RegionTargetTcpProxiesDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -27565,52 +29971,49 @@ func (c *SecurityPoliciesGetCall) Do(opts ...googleapi.CallOption) (*SecurityPol if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } - ret := &SecurityPolicy{ + ret := &Operation{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.regionTargetTcpProxies.delete", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type SecurityPoliciesGetRuleCall struct { +type RegionTargetTcpProxiesGetCall struct { s *Service project string - securityPolicy string + region string + targetTcpProxy string urlParams_ gensupport.URLParams ifNoneMatch_ string ctx_ context.Context header_ http.Header } -// GetRule: Gets a rule at the specified priority. +// Get: Returns the specified TargetTcpProxy resource. // -// - project: Project ID for this request. -// - securityPolicy: Name of the security policy to which the queried rule -// belongs. -func (r *SecurityPoliciesService) GetRule(project string, securityPolicy string) *SecurityPoliciesGetRuleCall { - c := &SecurityPoliciesGetRuleCall{s: r.s, urlParams_: make(gensupport.URLParams)} +// - project: Project ID for this request. +// - region: Name of the region scoping this request. +// - targetTcpProxy: Name of the TargetTcpProxy resource to return. +func (r *RegionTargetTcpProxiesService) Get(project string, region string, targetTcpProxy string) *RegionTargetTcpProxiesGetCall { + c := &RegionTargetTcpProxiesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project - c.securityPolicy = securityPolicy - return c -} - -// Priority sets the optional parameter "priority": The priority of the rule to -// get from the security policy. -func (c *SecurityPoliciesGetRuleCall) Priority(priority int64) *SecurityPoliciesGetRuleCall { - c.urlParams_.Set("priority", fmt.Sprint(priority)) + c.region = region + c.targetTcpProxy = targetTcpProxy return c } // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *SecurityPoliciesGetRuleCall) Fields(s ...googleapi.Field) *SecurityPoliciesGetRuleCall { +func (c *RegionTargetTcpProxiesGetCall) Fields(s ...googleapi.Field) *RegionTargetTcpProxiesGetCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } @@ -27618,55 +30021,55 @@ func (c *SecurityPoliciesGetRuleCall) Fields(s ...googleapi.Field) *SecurityPoli // IfNoneMatch sets an 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. -func (c *SecurityPoliciesGetRuleCall) IfNoneMatch(entityTag string) *SecurityPoliciesGetRuleCall { +func (c *RegionTargetTcpProxiesGetCall) IfNoneMatch(entityTag string) *RegionTargetTcpProxiesGetCall { c.ifNoneMatch_ = entityTag return c } // Context sets the context to be used in this call's Do method. -func (c *SecurityPoliciesGetRuleCall) Context(ctx context.Context) *SecurityPoliciesGetRuleCall { +func (c *RegionTargetTcpProxiesGetCall) Context(ctx context.Context) *RegionTargetTcpProxiesGetCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *SecurityPoliciesGetRuleCall) Header() http.Header { +func (c *RegionTargetTcpProxiesGetCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *SecurityPoliciesGetRuleCall) doRequest(alt string) (*http.Response, error) { +func (c *RegionTargetTcpProxiesGetCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) if c.ifNoneMatch_ != "" { reqHeaders.Set("If-None-Match", c.ifNoneMatch_) } - var body io.Reader = nil c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/securityPolicies/{securityPolicy}/getRule") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/targetTcpProxies/{targetTcpProxy}") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("GET", urls, body) + req, err := http.NewRequest("GET", urls, nil) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ "project": c.project, - "securityPolicy": c.securityPolicy, + "region": c.region, + "targetTcpProxy": c.targetTcpProxy, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.regionTargetTcpProxies.get", "request", internallog.HTTPRequest(req, nil)) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.securityPolicies.getRule" call. +// Do executes the "compute.regionTargetTcpProxies.get" call. // Any non-2xx status code is an error. Response headers are in either -// *SecurityPolicyRule.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 *SecurityPoliciesGetRuleCall) Do(opts ...googleapi.CallOption) (*SecurityPolicyRule, error) { +// *TargetTcpProxy.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 *RegionTargetTcpProxiesGetCall) Do(opts ...googleapi.CallOption) (*TargetTcpProxy, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -27685,94 +30088,99 @@ func (c *SecurityPoliciesGetRuleCall) Do(opts ...googleapi.CallOption) (*Securit if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } - ret := &SecurityPolicyRule{ + ret := &TargetTcpProxy{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.regionTargetTcpProxies.get", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type SecurityPoliciesInsertCall struct { +type RegionTargetTcpProxiesInsertCall struct { s *Service project string - securitypolicy *SecurityPolicy + region string + targettcpproxy *TargetTcpProxy urlParams_ gensupport.URLParams ctx_ context.Context header_ http.Header } -// Insert: Creates a new policy in the specified project using the data -// included in the request. +// Insert: Creates a TargetTcpProxy resource in the specified project and +// region using +// the data included in the request. // // - project: Project ID for this request. -func (r *SecurityPoliciesService) Insert(project string, securitypolicy *SecurityPolicy) *SecurityPoliciesInsertCall { - c := &SecurityPoliciesInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)} +// - region: Name of the region scoping this request. +func (r *RegionTargetTcpProxiesService) Insert(project string, region string, targettcpproxy *TargetTcpProxy) *RegionTargetTcpProxiesInsertCall { + c := &RegionTargetTcpProxiesInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project - c.securitypolicy = securitypolicy + c.region = region + c.targettcpproxy = targettcpproxy 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 *SecurityPoliciesInsertCall) RequestId(requestId string) *SecurityPoliciesInsertCall { +// 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 *RegionTargetTcpProxiesInsertCall) RequestId(requestId string) *RegionTargetTcpProxiesInsertCall { c.urlParams_.Set("requestId", requestId) return c } -// ValidateOnly sets the optional parameter "validateOnly": If true, the -// request will not be committed. -func (c *SecurityPoliciesInsertCall) ValidateOnly(validateOnly bool) *SecurityPoliciesInsertCall { - c.urlParams_.Set("validateOnly", fmt.Sprint(validateOnly)) - return c -} - // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *SecurityPoliciesInsertCall) Fields(s ...googleapi.Field) *SecurityPoliciesInsertCall { +func (c *RegionTargetTcpProxiesInsertCall) Fields(s ...googleapi.Field) *RegionTargetTcpProxiesInsertCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } // Context sets the context to be used in this call's Do method. -func (c *SecurityPoliciesInsertCall) Context(ctx context.Context) *SecurityPoliciesInsertCall { +func (c *RegionTargetTcpProxiesInsertCall) Context(ctx context.Context) *RegionTargetTcpProxiesInsertCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *SecurityPoliciesInsertCall) Header() http.Header { +func (c *RegionTargetTcpProxiesInsertCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *SecurityPoliciesInsertCall) doRequest(alt string) (*http.Response, error) { +func (c *RegionTargetTcpProxiesInsertCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) - var body io.Reader = nil - body, err := googleapi.WithoutDataWrapper.JSONReader(c.securitypolicy) + body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.targettcpproxy) if err != nil { return nil, err } c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/securityPolicies") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/targetTcpProxies") urls += "?" + c.urlParams_.Encode() req, err := http.NewRequest("POST", urls, body) if err != nil { @@ -27781,16 +30189,18 @@ func (c *SecurityPoliciesInsertCall) doRequest(alt string) (*http.Response, erro req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ "project": c.project, + "region": c.region, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.regionTargetTcpProxies.insert", "request", internallog.HTTPRequest(req, body.Bytes())) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.securityPolicies.insert" call. +// Do executes the "compute.regionTargetTcpProxies.insert" call. // 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 *SecurityPoliciesInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) { +func (c *RegionTargetTcpProxiesInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -27816,105 +30226,160 @@ func (c *SecurityPoliciesInsertCall) Do(opts ...googleapi.CallOption) (*Operatio }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.regionTargetTcpProxies.insert", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type SecurityPoliciesListCall struct { +type RegionTargetTcpProxiesListCall struct { s *Service project string + region string urlParams_ gensupport.URLParams ifNoneMatch_ string ctx_ context.Context header_ http.Header } -// List: List all the policies that have been configured for the specified -// project. +// List: Retrieves a list of TargetTcpProxy resources +// available to the specified project in a given region. // // - project: Project ID for this request. -func (r *SecurityPoliciesService) List(project string) *SecurityPoliciesListCall { - c := &SecurityPoliciesListCall{s: r.s, urlParams_: make(gensupport.URLParams)} +// - region: Name of the region scoping this request. +func (r *RegionTargetTcpProxiesService) List(project string, region string) *RegionTargetTcpProxiesListCall { + c := &RegionTargetTcpProxiesListCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project + c.region = region return c } // Filter sets the optional parameter "filter": A filter expression that -// filters resources listed in the response. Most Compute resources support two -// types of filter expressions: expressions that support regular expressions -// and expressions that follow API improvement proposal AIP-160. These two -// types of filter expressions cannot be mixed in one request. If you want to -// use AIP-160, your expression must specify the field name, an operator, and -// the value that you want to use for filtering. The value must be a string, a -// number, or a boolean. The 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`. The `:*` comparison can be used to test whether a key has -// been defined. For example, to find all objects with `owner` label use: ``` -// labels.owner:* ``` 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) ``` If you want to use a regular -// expression, use the `eq` (equal) or `ne` (not equal) operator against a -// single un-parenthesized expression with or without quotes or against -// multiple parenthesized expressions. Examples: `fieldname eq unquoted -// literal` `fieldname eq 'single quoted literal'` `fieldname eq "double quoted -// literal" `(fieldname1 eq literal) (fieldname2 ne "literal")` The literal -// value is interpreted as a regular expression using Google RE2 library -// syntax. The literal value must match the entire field. For example, to -// filter for instances that do not end with name "instance", you would use -// `name ne .*instance`. You cannot combine constraints on multiple fields -// using regular expressions. -func (c *SecurityPoliciesListCall) Filter(filter string) *SecurityPoliciesListCall { +// filters resources listed in the response. Most +// Compute resources support two types of filter expressions: +// expressions that support regular expressions and expressions that follow +// API improvement proposal AIP-160. +// These two types of filter expressions cannot be mixed in one request. +// +// If you want to use AIP-160, your expression must specify the field name, +// an +// operator, and the value that you want to use for filtering. The value +// must be a string, a number, or a boolean. The 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`. +// +// The `:*` comparison can be used to test whether a key has been defined. +// For example, to find all objects with `owner` label +// use: +// ``` +// labels.owner:* +// ``` +// +// 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 onresource 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) +// ``` +// +// If you want to use a regular expression, use the `eq` (equal) or `ne` +// (not equal) operator against a single un-parenthesized expression with +// or +// without quotes or against multiple parenthesized expressions. +// Examples: +// +// `fieldname eq unquoted literal` +// `fieldname eq 'single quoted literal'` +// `fieldname eq "double quoted literal" +// `(fieldname1 eq literal) (fieldname2 ne "literal")` +// +// The literal value is interpreted as a regular expression using GoogleRE2 +// library syntax. +// The literal value must match the entire field. +// +// For example, to filter for instances that do not end with name +// "instance", +// you would use `name ne .*instance`. +// +// You cannot combine constraints on multiple fields using regular +// expressions. +func (c *RegionTargetTcpProxiesListCall) Filter(filter string) *RegionTargetTcpProxiesListCall { 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 *SecurityPoliciesListCall) MaxResults(maxResults int64) *SecurityPoliciesListCall { +// 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 *RegionTargetTcpProxiesListCall) MaxResults(maxResults int64) *RegionTargetTcpProxiesListCall { 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 *SecurityPoliciesListCall) OrderBy(orderBy string) *SecurityPoliciesListCall { +// 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 *RegionTargetTcpProxiesListCall) OrderBy(orderBy string) *RegionTargetTcpProxiesListCall { 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 *SecurityPoliciesListCall) PageToken(pageToken string) *SecurityPoliciesListCall { +// use. Set `pageToken` to the +// `nextPageToken` returned by a previous list request to get +// the next page of results. +func (c *RegionTargetTcpProxiesListCall) PageToken(pageToken string) *RegionTargetTcpProxiesListCall { c.urlParams_.Set("pageToken", pageToken) return c } // ReturnPartialSuccess sets the optional parameter "returnPartialSuccess": -// Opt-in for partial success behavior which provides partial results in case -// of failure. The default value is false. For example, when partial success -// behavior is enabled, aggregatedList for a single zone scope either returns -// all resources in the zone or no resources, with an error code. -func (c *SecurityPoliciesListCall) ReturnPartialSuccess(returnPartialSuccess bool) *SecurityPoliciesListCall { +// Opt-in for partial success behavior which provides partial results in +// case +// of failure. The default value is false. +// +// For example, when partial success behavior is enabled, aggregatedList for +// a +// single zone scope either returns all resources in the zone or no +// resources, +// with an error code. +func (c *RegionTargetTcpProxiesListCall) ReturnPartialSuccess(returnPartialSuccess bool) *RegionTargetTcpProxiesListCall { c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess)) return c } @@ -27922,7 +30387,7 @@ func (c *SecurityPoliciesListCall) ReturnPartialSuccess(returnPartialSuccess boo // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *SecurityPoliciesListCall) Fields(s ...googleapi.Field) *SecurityPoliciesListCall { +func (c *RegionTargetTcpProxiesListCall) Fields(s ...googleapi.Field) *RegionTargetTcpProxiesListCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } @@ -27930,54 +30395,55 @@ func (c *SecurityPoliciesListCall) Fields(s ...googleapi.Field) *SecurityPolicie // IfNoneMatch sets an 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. -func (c *SecurityPoliciesListCall) IfNoneMatch(entityTag string) *SecurityPoliciesListCall { +func (c *RegionTargetTcpProxiesListCall) IfNoneMatch(entityTag string) *RegionTargetTcpProxiesListCall { c.ifNoneMatch_ = entityTag return c } // Context sets the context to be used in this call's Do method. -func (c *SecurityPoliciesListCall) Context(ctx context.Context) *SecurityPoliciesListCall { +func (c *RegionTargetTcpProxiesListCall) Context(ctx context.Context) *RegionTargetTcpProxiesListCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *SecurityPoliciesListCall) Header() http.Header { +func (c *RegionTargetTcpProxiesListCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *SecurityPoliciesListCall) doRequest(alt string) (*http.Response, error) { +func (c *RegionTargetTcpProxiesListCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) if c.ifNoneMatch_ != "" { reqHeaders.Set("If-None-Match", c.ifNoneMatch_) } - var body io.Reader = nil c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/securityPolicies") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/targetTcpProxies") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("GET", urls, body) + req, err := http.NewRequest("GET", urls, nil) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ "project": c.project, + "region": c.region, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.regionTargetTcpProxies.list", "request", internallog.HTTPRequest(req, nil)) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.securityPolicies.list" call. +// Do executes the "compute.regionTargetTcpProxies.list" call. // Any non-2xx status code is an error. Response headers are in either -// *SecurityPolicyList.ServerResponse.Header or (if a response was returned at +// *TargetTcpProxyList.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 *SecurityPoliciesListCall) Do(opts ...googleapi.CallOption) (*SecurityPolicyList, error) { +func (c *RegionTargetTcpProxiesListCall) Do(opts ...googleapi.CallOption) (*TargetTcpProxyList, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -27996,23 +30462,25 @@ func (c *SecurityPoliciesListCall) Do(opts ...googleapi.CallOption) (*SecurityPo if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } - ret := &SecurityPolicyList{ + ret := &TargetTcpProxyList{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.regionTargetTcpProxies.list", "response", internallog.HTTPResponse(res, b)) return ret, nil } // 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 *SecurityPoliciesListCall) Pages(ctx context.Context, f func(*SecurityPolicyList) error) error { +func (c *RegionTargetTcpProxiesListCall) Pages(ctx context.Context, f func(*TargetTcpProxyList) error) error { c.ctx_ = ctx defer c.PageToken(c.urlParams_.Get("pageToken")) for { @@ -28030,162 +30498,86 @@ func (c *SecurityPoliciesListCall) Pages(ctx context.Context, f func(*SecurityPo } } -type SecurityPoliciesListPreconfiguredExpressionSetsCall struct { - s *Service - project string - urlParams_ gensupport.URLParams - ifNoneMatch_ string - ctx_ context.Context - header_ http.Header +type RegionUrlMapsDeleteCall struct { + s *Service + project string + region string + urlMap string + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header } -// ListPreconfiguredExpressionSets: Gets the current list of preconfigured Web -// Application Firewall (WAF) expressions. +// Delete: Deletes the specified UrlMap resource. // // - project: Project ID for this request. -func (r *SecurityPoliciesService) ListPreconfiguredExpressionSets(project string) *SecurityPoliciesListPreconfiguredExpressionSetsCall { - c := &SecurityPoliciesListPreconfiguredExpressionSetsCall{s: r.s, urlParams_: make(gensupport.URLParams)} +// - region: Name of the region scoping this request. +// - urlMap: Name of the UrlMap resource to delete. +func (r *RegionUrlMapsService) Delete(project string, region string, urlMap string) *RegionUrlMapsDeleteCall { + c := &RegionUrlMapsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project + c.region = region + c.urlMap = urlMap return c } -// Filter sets the optional parameter "filter": A filter expression that -// filters resources listed in the response. Most Compute resources support two -// types of filter expressions: expressions that support regular expressions -// and expressions that follow API improvement proposal AIP-160. These two -// types of filter expressions cannot be mixed in one request. If you want to -// use AIP-160, your expression must specify the field name, an operator, and -// the value that you want to use for filtering. The value must be a string, a -// number, or a boolean. The 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`. The `:*` comparison can be used to test whether a key has -// been defined. For example, to find all objects with `owner` label use: ``` -// labels.owner:* ``` 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) ``` If you want to use a regular -// expression, use the `eq` (equal) or `ne` (not equal) operator against a -// single un-parenthesized expression with or without quotes or against -// multiple parenthesized expressions. Examples: `fieldname eq unquoted -// literal` `fieldname eq 'single quoted literal'` `fieldname eq "double quoted -// literal" `(fieldname1 eq literal) (fieldname2 ne "literal")` The literal -// value is interpreted as a regular expression using Google RE2 library -// syntax. The literal value must match the entire field. For example, to -// filter for instances that do not end with name "instance", you would use -// `name ne .*instance`. You cannot combine constraints on multiple fields -// using regular expressions. -func (c *SecurityPoliciesListPreconfiguredExpressionSetsCall) Filter(filter string) *SecurityPoliciesListPreconfiguredExpressionSetsCall { - 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 *SecurityPoliciesListPreconfiguredExpressionSetsCall) MaxResults(maxResults int64) *SecurityPoliciesListPreconfiguredExpressionSetsCall { - 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 *SecurityPoliciesListPreconfiguredExpressionSetsCall) OrderBy(orderBy string) *SecurityPoliciesListPreconfiguredExpressionSetsCall { - 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 *SecurityPoliciesListPreconfiguredExpressionSetsCall) PageToken(pageToken string) *SecurityPoliciesListPreconfiguredExpressionSetsCall { - c.urlParams_.Set("pageToken", pageToken) - return c -} - -// ReturnPartialSuccess sets the optional parameter "returnPartialSuccess": -// Opt-in for partial success behavior which provides partial results in case -// of failure. The default value is false. For example, when partial success -// behavior is enabled, aggregatedList for a single zone scope either returns -// all resources in the zone or no resources, with an error code. -func (c *SecurityPoliciesListPreconfiguredExpressionSetsCall) ReturnPartialSuccess(returnPartialSuccess bool) *SecurityPoliciesListPreconfiguredExpressionSetsCall { - c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess)) +// RequestId sets the optional parameter "requestId": begin_interface: +// MixerMutationRequestBuilder +// Request ID to support idempotency. +func (c *RegionUrlMapsDeleteCall) RequestId(requestId string) *RegionUrlMapsDeleteCall { + 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 // details. -func (c *SecurityPoliciesListPreconfiguredExpressionSetsCall) Fields(s ...googleapi.Field) *SecurityPoliciesListPreconfiguredExpressionSetsCall { +func (c *RegionUrlMapsDeleteCall) Fields(s ...googleapi.Field) *RegionUrlMapsDeleteCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } -// IfNoneMatch sets an 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. -func (c *SecurityPoliciesListPreconfiguredExpressionSetsCall) IfNoneMatch(entityTag string) *SecurityPoliciesListPreconfiguredExpressionSetsCall { - c.ifNoneMatch_ = entityTag - return c -} - // Context sets the context to be used in this call's Do method. -func (c *SecurityPoliciesListPreconfiguredExpressionSetsCall) Context(ctx context.Context) *SecurityPoliciesListPreconfiguredExpressionSetsCall { +func (c *RegionUrlMapsDeleteCall) Context(ctx context.Context) *RegionUrlMapsDeleteCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *SecurityPoliciesListPreconfiguredExpressionSetsCall) Header() http.Header { +func (c *RegionUrlMapsDeleteCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *SecurityPoliciesListPreconfiguredExpressionSetsCall) doRequest(alt string) (*http.Response, error) { +func (c *RegionUrlMapsDeleteCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) - if c.ifNoneMatch_ != "" { - reqHeaders.Set("If-None-Match", c.ifNoneMatch_) - } - var body io.Reader = nil c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/securityPolicies/listPreconfiguredExpressionSets") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/urlMaps/{urlMap}") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("GET", urls, body) + req, err := http.NewRequest("DELETE", urls, nil) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ "project": c.project, + "region": c.region, + "urlMap": c.urlMap, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.regionUrlMaps.delete", "request", internallog.HTTPRequest(req, nil)) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.securityPolicies.listPreconfiguredExpressionSets" call. +// Do executes the "compute.regionUrlMaps.delete" call. // Any non-2xx status code is an error. Response headers are in either -// *SecurityPoliciesListPreconfiguredExpressionSetsResponse.ServerResponse.Heade -// r 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 *SecurityPoliciesListPreconfiguredExpressionSetsCall) Do(opts ...googleapi.CallOption) (*SecurityPoliciesListPreconfiguredExpressionSetsResponse, error) { +// *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 *RegionUrlMapsDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -28204,119 +30596,105 @@ func (c *SecurityPoliciesListPreconfiguredExpressionSetsCall) Do(opts ...googlea if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } - ret := &SecurityPoliciesListPreconfiguredExpressionSetsResponse{ + ret := &Operation{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.regionUrlMaps.delete", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type SecurityPoliciesPatchCall struct { - s *Service - project string - securityPolicy string - securitypolicy *SecurityPolicy - urlParams_ gensupport.URLParams - ctx_ context.Context - header_ http.Header +type RegionUrlMapsGetCall struct { + s *Service + project string + region string + urlMap string + urlParams_ gensupport.URLParams + ifNoneMatch_ string + ctx_ context.Context + header_ http.Header } -// Patch: Patches the specified policy with the data included in the request. -// To clear fields in the policy, leave the fields empty and specify them in -// the updateMask. This cannot be used to be update the rules in the policy. -// Please use the per rule methods like addRule, patchRule, and removeRule -// instead. +// Get: Returns the specified UrlMap resource. // // - project: Project ID for this request. -// - securityPolicy: Name of the security policy to update. -func (r *SecurityPoliciesService) Patch(project string, securityPolicy string, securitypolicy *SecurityPolicy) *SecurityPoliciesPatchCall { - c := &SecurityPoliciesPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)} +// - region: Name of the region scoping this request. +// - urlMap: Name of the UrlMap resource to return. +func (r *RegionUrlMapsService) Get(project string, region string, urlMap string) *RegionUrlMapsGetCall { + c := &RegionUrlMapsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project - c.securityPolicy = securityPolicy - c.securitypolicy = securitypolicy - 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 *SecurityPoliciesPatchCall) RequestId(requestId string) *SecurityPoliciesPatchCall { - c.urlParams_.Set("requestId", requestId) - return c -} - -// UpdateMask sets the optional parameter "updateMask": Indicates fields to be -// cleared as part of this request. -func (c *SecurityPoliciesPatchCall) UpdateMask(updateMask string) *SecurityPoliciesPatchCall { - c.urlParams_.Set("updateMask", updateMask) + c.region = region + c.urlMap = urlMap return c } // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *SecurityPoliciesPatchCall) Fields(s ...googleapi.Field) *SecurityPoliciesPatchCall { +func (c *RegionUrlMapsGetCall) Fields(s ...googleapi.Field) *RegionUrlMapsGetCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } +// IfNoneMatch sets an 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. +func (c *RegionUrlMapsGetCall) IfNoneMatch(entityTag string) *RegionUrlMapsGetCall { + c.ifNoneMatch_ = entityTag + return c +} + // Context sets the context to be used in this call's Do method. -func (c *SecurityPoliciesPatchCall) Context(ctx context.Context) *SecurityPoliciesPatchCall { +func (c *RegionUrlMapsGetCall) Context(ctx context.Context) *RegionUrlMapsGetCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *SecurityPoliciesPatchCall) Header() http.Header { +func (c *RegionUrlMapsGetCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *SecurityPoliciesPatchCall) doRequest(alt string) (*http.Response, error) { - reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) - var body io.Reader = nil - body, err := googleapi.WithoutDataWrapper.JSONReader(c.securitypolicy) - if err != nil { - return nil, err +func (c *RegionUrlMapsGetCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) + if c.ifNoneMatch_ != "" { + reqHeaders.Set("If-None-Match", c.ifNoneMatch_) } c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/securityPolicies/{securityPolicy}") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/urlMaps/{urlMap}") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("PATCH", urls, body) + req, err := http.NewRequest("GET", urls, nil) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "securityPolicy": c.securityPolicy, + "project": c.project, + "region": c.region, + "urlMap": c.urlMap, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.regionUrlMaps.get", "request", internallog.HTTPRequest(req, nil)) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.securityPolicies.patch" call. +// Do executes the "compute.regionUrlMaps.get" call. // 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 +// *UrlMap.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 *SecurityPoliciesPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) { +func (c *RegionUrlMapsGetCall) Do(opts ...googleapi.CallOption) (*UrlMap, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -28335,96 +30713,84 @@ func (c *SecurityPoliciesPatchCall) Do(opts ...googleapi.CallOption) (*Operation if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } - ret := &Operation{ + ret := &UrlMap{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.regionUrlMaps.get", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type SecurityPoliciesPatchRuleCall struct { - s *Service - project string - securityPolicy string - securitypolicyrule *SecurityPolicyRule - urlParams_ gensupport.URLParams - ctx_ context.Context - header_ http.Header +type RegionUrlMapsInsertCall struct { + s *Service + project string + region string + urlmap *UrlMap + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header } -// PatchRule: Patches a rule at the specified priority. To clear fields in the -// rule, leave the fields empty and specify them in the updateMask. +// Insert: Creates a UrlMap resource in the specified project using +// the data included in the request. // // - project: Project ID for this request. -// - securityPolicy: Name of the security policy to update. -func (r *SecurityPoliciesService) PatchRule(project string, securityPolicy string, securitypolicyrule *SecurityPolicyRule) *SecurityPoliciesPatchRuleCall { - c := &SecurityPoliciesPatchRuleCall{s: r.s, urlParams_: make(gensupport.URLParams)} +// - region: Name of the region scoping this request. +func (r *RegionUrlMapsService) Insert(project string, region string, urlmap *UrlMap) *RegionUrlMapsInsertCall { + c := &RegionUrlMapsInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project - c.securityPolicy = securityPolicy - c.securitypolicyrule = securitypolicyrule - return c -} - -// Priority sets the optional parameter "priority": The priority of the rule to -// patch. -func (c *SecurityPoliciesPatchRuleCall) Priority(priority int64) *SecurityPoliciesPatchRuleCall { - c.urlParams_.Set("priority", fmt.Sprint(priority)) - return c -} - -// UpdateMask sets the optional parameter "updateMask": Indicates fields to be -// cleared as part of this request. -func (c *SecurityPoliciesPatchRuleCall) UpdateMask(updateMask string) *SecurityPoliciesPatchRuleCall { - c.urlParams_.Set("updateMask", updateMask) + c.region = region + c.urlmap = urlmap return c } -// ValidateOnly sets the optional parameter "validateOnly": If true, the -// request will not be committed. -func (c *SecurityPoliciesPatchRuleCall) ValidateOnly(validateOnly bool) *SecurityPoliciesPatchRuleCall { - c.urlParams_.Set("validateOnly", fmt.Sprint(validateOnly)) +// RequestId sets the optional parameter "requestId": begin_interface: +// MixerMutationRequestBuilder +// Request ID to support idempotency. +func (c *RegionUrlMapsInsertCall) RequestId(requestId string) *RegionUrlMapsInsertCall { + 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 // details. -func (c *SecurityPoliciesPatchRuleCall) Fields(s ...googleapi.Field) *SecurityPoliciesPatchRuleCall { +func (c *RegionUrlMapsInsertCall) Fields(s ...googleapi.Field) *RegionUrlMapsInsertCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } // Context sets the context to be used in this call's Do method. -func (c *SecurityPoliciesPatchRuleCall) Context(ctx context.Context) *SecurityPoliciesPatchRuleCall { +func (c *RegionUrlMapsInsertCall) Context(ctx context.Context) *RegionUrlMapsInsertCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *SecurityPoliciesPatchRuleCall) Header() http.Header { +func (c *RegionUrlMapsInsertCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *SecurityPoliciesPatchRuleCall) doRequest(alt string) (*http.Response, error) { +func (c *RegionUrlMapsInsertCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) - var body io.Reader = nil - body, err := googleapi.WithoutDataWrapper.JSONReader(c.securitypolicyrule) + body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.urlmap) if err != nil { return nil, err } c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/securityPolicies/{securityPolicy}/patchRule") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/urlMaps") urls += "?" + c.urlParams_.Encode() req, err := http.NewRequest("POST", urls, body) if err != nil { @@ -28432,18 +30798,19 @@ func (c *SecurityPoliciesPatchRuleCall) doRequest(alt string) (*http.Response, e } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "securityPolicy": c.securityPolicy, + "project": c.project, + "region": c.region, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.regionUrlMaps.insert", "request", internallog.HTTPRequest(req, body.Bytes())) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.securityPolicies.patchRule" call. +// Do executes the "compute.regionUrlMaps.insert" call. // 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 *SecurityPoliciesPatchRuleCall) Do(opts ...googleapi.CallOption) (*Operation, error) { +func (c *RegionUrlMapsInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -28469,87 +30836,17127 @@ func (c *SecurityPoliciesPatchRuleCall) Do(opts ...googleapi.CallOption) (*Opera }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.regionUrlMaps.insert", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type SecurityPoliciesRemoveRuleCall struct { - s *Service - project string - securityPolicy string - urlParams_ gensupport.URLParams - ctx_ context.Context - header_ http.Header +type RegionUrlMapsListCall struct { + s *Service + project string + region string + urlParams_ gensupport.URLParams + ifNoneMatch_ string + ctx_ context.Context + header_ http.Header } -// RemoveRule: Deletes a rule at the specified priority. +// List: Retrieves the list of UrlMap resources available to the +// specified +// project in the specified region. // // - project: Project ID for this request. -// - securityPolicy: Name of the security policy to update. -func (r *SecurityPoliciesService) RemoveRule(project string, securityPolicy string) *SecurityPoliciesRemoveRuleCall { - c := &SecurityPoliciesRemoveRuleCall{s: r.s, urlParams_: make(gensupport.URLParams)} +// - region: Name of the region scoping this request. +func (r *RegionUrlMapsService) List(project string, region string) *RegionUrlMapsListCall { + c := &RegionUrlMapsListCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project - c.securityPolicy = securityPolicy - return c -} - -// Priority sets the optional parameter "priority": The priority of the rule to -// remove from the security policy. -func (c *SecurityPoliciesRemoveRuleCall) Priority(priority int64) *SecurityPoliciesRemoveRuleCall { - c.urlParams_.Set("priority", fmt.Sprint(priority)) + c.region = region return c } -// Fields allows partial responses to be retrieved. See -// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more -// details. -func (c *SecurityPoliciesRemoveRuleCall) Fields(s ...googleapi.Field) *SecurityPoliciesRemoveRuleCall { - c.urlParams_.Set("fields", googleapi.CombineFields(s)) - return c +// Filter sets the optional parameter "filter": A filter expression that +// filters resources listed in the response. Most +// Compute resources support two types of filter expressions: +// expressions that support regular expressions and expressions that follow +// API improvement proposal AIP-160. +// These two types of filter expressions cannot be mixed in one request. +// +// If you want to use AIP-160, your expression must specify the field name, +// an +// operator, and the value that you want to use for filtering. The value +// must be a string, a number, or a boolean. The 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`. +// +// The `:*` comparison can be used to test whether a key has been defined. +// For example, to find all objects with `owner` label +// use: +// ``` +// labels.owner:* +// ``` +// +// 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 onresource 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) +// ``` +// +// If you want to use a regular expression, use the `eq` (equal) or `ne` +// (not equal) operator against a single un-parenthesized expression with +// or +// without quotes or against multiple parenthesized expressions. +// Examples: +// +// `fieldname eq unquoted literal` +// `fieldname eq 'single quoted literal'` +// `fieldname eq "double quoted literal" +// `(fieldname1 eq literal) (fieldname2 ne "literal")` +// +// The literal value is interpreted as a regular expression using GoogleRE2 +// library syntax. +// The literal value must match the entire field. +// +// For example, to filter for instances that do not end with name +// "instance", +// you would use `name ne .*instance`. +// +// You cannot combine constraints on multiple fields using regular +// expressions. +func (c *RegionUrlMapsListCall) Filter(filter string) *RegionUrlMapsListCall { + 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 *RegionUrlMapsListCall) MaxResults(maxResults int64) *RegionUrlMapsListCall { + 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 *RegionUrlMapsListCall) OrderBy(orderBy string) *RegionUrlMapsListCall { + 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 *RegionUrlMapsListCall) PageToken(pageToken string) *RegionUrlMapsListCall { + c.urlParams_.Set("pageToken", pageToken) + return c +} + +// ReturnPartialSuccess sets the optional parameter "returnPartialSuccess": +// Opt-in for partial success behavior which provides partial results in +// case +// of failure. The default value is false. +// +// For example, when partial success behavior is enabled, aggregatedList for +// a +// single zone scope either returns all resources in the zone or no +// resources, +// with an error code. +func (c *RegionUrlMapsListCall) ReturnPartialSuccess(returnPartialSuccess bool) *RegionUrlMapsListCall { + c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess)) + return c +} + +// Fields allows partial responses to be retrieved. See +// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more +// details. +func (c *RegionUrlMapsListCall) Fields(s ...googleapi.Field) *RegionUrlMapsListCall { + c.urlParams_.Set("fields", googleapi.CombineFields(s)) + return c +} + +// IfNoneMatch sets an 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. +func (c *RegionUrlMapsListCall) IfNoneMatch(entityTag string) *RegionUrlMapsListCall { + c.ifNoneMatch_ = entityTag + return c +} + +// Context sets the context to be used in this call's Do method. +func (c *RegionUrlMapsListCall) Context(ctx context.Context) *RegionUrlMapsListCall { + c.ctx_ = ctx + return c +} + +// Header returns a http.Header that can be modified by the caller to add +// headers to the request. +func (c *RegionUrlMapsListCall) Header() http.Header { + if c.header_ == nil { + c.header_ = make(http.Header) + } + return c.header_ +} + +func (c *RegionUrlMapsListCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) + if c.ifNoneMatch_ != "" { + reqHeaders.Set("If-None-Match", c.ifNoneMatch_) + } + c.urlParams_.Set("alt", alt) + c.urlParams_.Set("prettyPrint", "false") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/urlMaps") + urls += "?" + c.urlParams_.Encode() + req, err := http.NewRequest("GET", urls, nil) + if err != nil { + return nil, err + } + req.Header = reqHeaders + googleapi.Expand(req.URL, map[string]string{ + "project": c.project, + "region": c.region, + }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.regionUrlMaps.list", "request", internallog.HTTPRequest(req, nil)) + return gensupport.SendRequest(c.ctx_, c.s.client, req) +} + +// Do executes the "compute.regionUrlMaps.list" call. +// Any non-2xx status code is an error. Response headers are in either +// *UrlMapList.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 *RegionUrlMapsListCall) Do(opts ...googleapi.CallOption) (*UrlMapList, 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, gensupport.WrapError(&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, gensupport.WrapError(err) + } + ret := &UrlMapList{ + ServerResponse: googleapi.ServerResponse{ + Header: res.Header, + HTTPStatusCode: res.StatusCode, + }, + } + target := &ret + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { + return nil, err + } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.regionUrlMaps.list", "response", internallog.HTTPResponse(res, b)) + return ret, nil +} + +// 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 *RegionUrlMapsListCall) Pages(ctx context.Context, f func(*UrlMapList) error) error { + c.ctx_ = ctx + defer c.PageToken(c.urlParams_.Get("pageToken")) + 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) + } +} + +type RegionUrlMapsPatchCall struct { + s *Service + project string + region string + urlMap string + urlmap *UrlMap + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header +} + +// Patch: Patches the specified UrlMap resource with the data included in +// the +// request. This method supportsPATCH +// semantics and usesJSON merge +// patch format and processing rules. +// +// - project: Project ID for this request. +// - region: Name of the region scoping this request. +// - urlMap: Name of the UrlMap resource to patch. +func (r *RegionUrlMapsService) Patch(project string, region string, urlMap string, urlmap *UrlMap) *RegionUrlMapsPatchCall { + c := &RegionUrlMapsPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)} + c.project = project + c.region = region + c.urlMap = urlMap + c.urlmap = urlmap + return c +} + +// RequestId sets the optional parameter "requestId": begin_interface: +// MixerMutationRequestBuilder +// Request ID to support idempotency. +func (c *RegionUrlMapsPatchCall) RequestId(requestId string) *RegionUrlMapsPatchCall { + 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 +// details. +func (c *RegionUrlMapsPatchCall) Fields(s ...googleapi.Field) *RegionUrlMapsPatchCall { + c.urlParams_.Set("fields", googleapi.CombineFields(s)) + return c +} + +// Context sets the context to be used in this call's Do method. +func (c *RegionUrlMapsPatchCall) Context(ctx context.Context) *RegionUrlMapsPatchCall { + c.ctx_ = ctx + return c +} + +// Header returns a http.Header that can be modified by the caller to add +// headers to the request. +func (c *RegionUrlMapsPatchCall) Header() http.Header { + if c.header_ == nil { + c.header_ = make(http.Header) + } + return c.header_ +} + +func (c *RegionUrlMapsPatchCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) + body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.urlmap) + if err != nil { + return nil, err + } + c.urlParams_.Set("alt", alt) + c.urlParams_.Set("prettyPrint", "false") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/urlMaps/{urlMap}") + urls += "?" + c.urlParams_.Encode() + req, err := http.NewRequest("PATCH", urls, body) + if err != nil { + return nil, err + } + req.Header = reqHeaders + googleapi.Expand(req.URL, map[string]string{ + "project": c.project, + "region": c.region, + "urlMap": c.urlMap, + }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.regionUrlMaps.patch", "request", internallog.HTTPRequest(req, body.Bytes())) + return gensupport.SendRequest(c.ctx_, c.s.client, req) +} + +// Do executes the "compute.regionUrlMaps.patch" call. +// 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 *RegionUrlMapsPatchCall) 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, gensupport.WrapError(&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, gensupport.WrapError(err) + } + ret := &Operation{ + ServerResponse: googleapi.ServerResponse{ + Header: res.Header, + HTTPStatusCode: res.StatusCode, + }, + } + target := &ret + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { + return nil, err + } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.regionUrlMaps.patch", "response", internallog.HTTPResponse(res, b)) + return ret, nil +} + +type RegionUrlMapsUpdateCall struct { + s *Service + project string + region string + urlMap string + urlmap *UrlMap + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header +} + +// Update: Updates the specified UrlMap resource with the data included in +// the +// request. +// +// - project: Project ID for this request. +// - region: Name of the region scoping this request. +// - urlMap: Name of the UrlMap resource to update. +func (r *RegionUrlMapsService) Update(project string, region string, urlMap string, urlmap *UrlMap) *RegionUrlMapsUpdateCall { + c := &RegionUrlMapsUpdateCall{s: r.s, urlParams_: make(gensupport.URLParams)} + c.project = project + c.region = region + c.urlMap = urlMap + c.urlmap = urlmap + return c +} + +// RequestId sets the optional parameter "requestId": begin_interface: +// MixerMutationRequestBuilder +// Request ID to support idempotency. +func (c *RegionUrlMapsUpdateCall) RequestId(requestId string) *RegionUrlMapsUpdateCall { + 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 +// details. +func (c *RegionUrlMapsUpdateCall) Fields(s ...googleapi.Field) *RegionUrlMapsUpdateCall { + c.urlParams_.Set("fields", googleapi.CombineFields(s)) + return c +} + +// Context sets the context to be used in this call's Do method. +func (c *RegionUrlMapsUpdateCall) Context(ctx context.Context) *RegionUrlMapsUpdateCall { + c.ctx_ = ctx + return c +} + +// Header returns a http.Header that can be modified by the caller to add +// headers to the request. +func (c *RegionUrlMapsUpdateCall) Header() http.Header { + if c.header_ == nil { + c.header_ = make(http.Header) + } + return c.header_ +} + +func (c *RegionUrlMapsUpdateCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) + body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.urlmap) + if err != nil { + return nil, err + } + c.urlParams_.Set("alt", alt) + c.urlParams_.Set("prettyPrint", "false") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/urlMaps/{urlMap}") + urls += "?" + c.urlParams_.Encode() + req, err := http.NewRequest("PUT", urls, body) + if err != nil { + return nil, err + } + req.Header = reqHeaders + googleapi.Expand(req.URL, map[string]string{ + "project": c.project, + "region": c.region, + "urlMap": c.urlMap, + }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.regionUrlMaps.update", "request", internallog.HTTPRequest(req, body.Bytes())) + return gensupport.SendRequest(c.ctx_, c.s.client, req) +} + +// Do executes the "compute.regionUrlMaps.update" call. +// 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 *RegionUrlMapsUpdateCall) 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, gensupport.WrapError(&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, gensupport.WrapError(err) + } + ret := &Operation{ + ServerResponse: googleapi.ServerResponse{ + Header: res.Header, + HTTPStatusCode: res.StatusCode, + }, + } + target := &ret + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { + return nil, err + } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.regionUrlMaps.update", "response", internallog.HTTPResponse(res, b)) + return ret, nil +} + +type RegionUrlMapsValidateCall struct { + s *Service + project string + region string + urlMap string + regionurlmapsvalidaterequest *RegionUrlMapsValidateRequest + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header +} + +// Validate: Runs static validation for the UrlMap. In particular, the tests of +// the +// provided UrlMap will be run. Calling this method does NOT create the +// UrlMap. +// +// - project: Project ID for this request. +// - region: Name of the region scoping this request. +// - urlMap: Name of the UrlMap resource to be validated as. +func (r *RegionUrlMapsService) Validate(project string, region string, urlMap string, regionurlmapsvalidaterequest *RegionUrlMapsValidateRequest) *RegionUrlMapsValidateCall { + c := &RegionUrlMapsValidateCall{s: r.s, urlParams_: make(gensupport.URLParams)} + c.project = project + c.region = region + c.urlMap = urlMap + c.regionurlmapsvalidaterequest = regionurlmapsvalidaterequest + return c +} + +// Fields allows partial responses to be retrieved. See +// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more +// details. +func (c *RegionUrlMapsValidateCall) Fields(s ...googleapi.Field) *RegionUrlMapsValidateCall { + c.urlParams_.Set("fields", googleapi.CombineFields(s)) + return c +} + +// Context sets the context to be used in this call's Do method. +func (c *RegionUrlMapsValidateCall) Context(ctx context.Context) *RegionUrlMapsValidateCall { + c.ctx_ = ctx + return c +} + +// Header returns a http.Header that can be modified by the caller to add +// headers to the request. +func (c *RegionUrlMapsValidateCall) Header() http.Header { + if c.header_ == nil { + c.header_ = make(http.Header) + } + return c.header_ +} + +func (c *RegionUrlMapsValidateCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) + body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.regionurlmapsvalidaterequest) + if err != nil { + return nil, err + } + c.urlParams_.Set("alt", alt) + c.urlParams_.Set("prettyPrint", "false") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/urlMaps/{urlMap}/validate") + urls += "?" + c.urlParams_.Encode() + req, err := http.NewRequest("POST", urls, body) + if err != nil { + return nil, err + } + req.Header = reqHeaders + googleapi.Expand(req.URL, map[string]string{ + "project": c.project, + "region": c.region, + "urlMap": c.urlMap, + }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.regionUrlMaps.validate", "request", internallog.HTTPRequest(req, body.Bytes())) + return gensupport.SendRequest(c.ctx_, c.s.client, req) +} + +// Do executes the "compute.regionUrlMaps.validate" call. +// Any non-2xx status code is an error. Response headers are in either +// *UrlMapsValidateResponse.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 *RegionUrlMapsValidateCall) Do(opts ...googleapi.CallOption) (*UrlMapsValidateResponse, 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, gensupport.WrapError(&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, gensupport.WrapError(err) + } + ret := &UrlMapsValidateResponse{ + ServerResponse: googleapi.ServerResponse{ + Header: res.Header, + HTTPStatusCode: res.StatusCode, + }, + } + target := &ret + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { + return nil, err + } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.regionUrlMaps.validate", "response", internallog.HTTPResponse(res, b)) + return ret, nil +} + +type RegionZonesListCall struct { + s *Service + project string + region string + urlParams_ gensupport.URLParams + ifNoneMatch_ string + ctx_ context.Context + header_ http.Header +} + +// List: Retrieves the list of Zone resources under the specific region +// available to +// the specified project. +// +// - project: Project ID for this request. +// - region: Region for this request. +func (r *RegionZonesService) List(project string, region string) *RegionZonesListCall { + c := &RegionZonesListCall{s: r.s, urlParams_: make(gensupport.URLParams)} + c.project = project + c.region = region + return c +} + +// Filter sets the optional parameter "filter": A filter expression that +// filters resources listed in the response. Most +// Compute resources support two types of filter expressions: +// expressions that support regular expressions and expressions that follow +// API improvement proposal AIP-160. +// These two types of filter expressions cannot be mixed in one request. +// +// If you want to use AIP-160, your expression must specify the field name, +// an +// operator, and the value that you want to use for filtering. The value +// must be a string, a number, or a boolean. The 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`. +// +// The `:*` comparison can be used to test whether a key has been defined. +// For example, to find all objects with `owner` label +// use: +// ``` +// labels.owner:* +// ``` +// +// 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 onresource 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) +// ``` +// +// If you want to use a regular expression, use the `eq` (equal) or `ne` +// (not equal) operator against a single un-parenthesized expression with +// or +// without quotes or against multiple parenthesized expressions. +// Examples: +// +// `fieldname eq unquoted literal` +// `fieldname eq 'single quoted literal'` +// `fieldname eq "double quoted literal" +// `(fieldname1 eq literal) (fieldname2 ne "literal")` +// +// The literal value is interpreted as a regular expression using GoogleRE2 +// library syntax. +// The literal value must match the entire field. +// +// For example, to filter for instances that do not end with name +// "instance", +// you would use `name ne .*instance`. +// +// You cannot combine constraints on multiple fields using regular +// expressions. +func (c *RegionZonesListCall) Filter(filter string) *RegionZonesListCall { + 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 *RegionZonesListCall) MaxResults(maxResults int64) *RegionZonesListCall { + 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 *RegionZonesListCall) OrderBy(orderBy string) *RegionZonesListCall { + 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 *RegionZonesListCall) PageToken(pageToken string) *RegionZonesListCall { + c.urlParams_.Set("pageToken", pageToken) + return c +} + +// ReturnPartialSuccess sets the optional parameter "returnPartialSuccess": +// Opt-in for partial success behavior which provides partial results in +// case +// of failure. The default value is false. +// +// For example, when partial success behavior is enabled, aggregatedList for +// a +// single zone scope either returns all resources in the zone or no +// resources, +// with an error code. +func (c *RegionZonesListCall) ReturnPartialSuccess(returnPartialSuccess bool) *RegionZonesListCall { + c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess)) + return c +} + +// Fields allows partial responses to be retrieved. See +// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more +// details. +func (c *RegionZonesListCall) Fields(s ...googleapi.Field) *RegionZonesListCall { + c.urlParams_.Set("fields", googleapi.CombineFields(s)) + return c +} + +// IfNoneMatch sets an 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. +func (c *RegionZonesListCall) IfNoneMatch(entityTag string) *RegionZonesListCall { + c.ifNoneMatch_ = entityTag + return c +} + +// Context sets the context to be used in this call's Do method. +func (c *RegionZonesListCall) Context(ctx context.Context) *RegionZonesListCall { + c.ctx_ = ctx + return c +} + +// Header returns a http.Header that can be modified by the caller to add +// headers to the request. +func (c *RegionZonesListCall) Header() http.Header { + if c.header_ == nil { + c.header_ = make(http.Header) + } + return c.header_ +} + +func (c *RegionZonesListCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) + if c.ifNoneMatch_ != "" { + reqHeaders.Set("If-None-Match", c.ifNoneMatch_) + } + c.urlParams_.Set("alt", alt) + c.urlParams_.Set("prettyPrint", "false") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/zones") + urls += "?" + c.urlParams_.Encode() + req, err := http.NewRequest("GET", urls, nil) + if err != nil { + return nil, err + } + req.Header = reqHeaders + googleapi.Expand(req.URL, map[string]string{ + "project": c.project, + "region": c.region, + }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.regionZones.list", "request", internallog.HTTPRequest(req, nil)) + return gensupport.SendRequest(c.ctx_, c.s.client, req) +} + +// Do executes the "compute.regionZones.list" call. +// Any non-2xx status code is an error. Response headers are in either +// *ZoneList.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 *RegionZonesListCall) Do(opts ...googleapi.CallOption) (*ZoneList, 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, gensupport.WrapError(&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, gensupport.WrapError(err) + } + ret := &ZoneList{ + ServerResponse: googleapi.ServerResponse{ + Header: res.Header, + HTTPStatusCode: res.StatusCode, + }, + } + target := &ret + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { + return nil, err + } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.regionZones.list", "response", internallog.HTTPResponse(res, b)) + return ret, nil +} + +// 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 *RegionZonesListCall) Pages(ctx context.Context, f func(*ZoneList) error) error { + c.ctx_ = ctx + defer c.PageToken(c.urlParams_.Get("pageToken")) + 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) + } +} + +type RegionsGetCall struct { + s *Service + project string + region string + urlParams_ gensupport.URLParams + ifNoneMatch_ string + ctx_ context.Context + header_ http.Header +} + +// Get: Returns the specified Region resource. +// +// To decrease latency for this method, you can optionally omit any +// unneeded +// information from the response by using a field mask. This practice +// is +// especially recommended for unused quota information (the `quotas` field). +// To exclude one or more fields, set your request's `fields` query +// parameter +// to only include the fields you need. For example, to only include the +// `id` +// and `selfLink` fields, add the query parameter `?fields=id,selfLink` to +// your request. +// +// This method fails if the quota information is unavailable for the region +// and if the organization policy +// constraint +// compute.requireBasicQuotaInResponse is enforced. This +// constraint, when enforced, disables the fail-open behaviour when +// quota +// information (the `items.quotas` field) is unavailable for the region. +// It is recommended to use the default setting +// for the constraint unless your application requires the +// fail-closed +// behaviour for this method. +// +// - project: Project ID for this request. +// - region: Name of the region resource to return. +func (r *RegionsService) Get(project string, region string) *RegionsGetCall { + c := &RegionsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)} + c.project = project + c.region = region + return c +} + +// Fields allows partial responses to be retrieved. See +// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more +// details. +func (c *RegionsGetCall) Fields(s ...googleapi.Field) *RegionsGetCall { + c.urlParams_.Set("fields", googleapi.CombineFields(s)) + return c +} + +// IfNoneMatch sets an 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. +func (c *RegionsGetCall) IfNoneMatch(entityTag string) *RegionsGetCall { + c.ifNoneMatch_ = entityTag + return c +} + +// Context sets the context to be used in this call's Do method. +func (c *RegionsGetCall) Context(ctx context.Context) *RegionsGetCall { + c.ctx_ = ctx + return c +} + +// Header returns a http.Header that can be modified by the caller to add +// headers to the request. +func (c *RegionsGetCall) Header() http.Header { + if c.header_ == nil { + c.header_ = make(http.Header) + } + return c.header_ +} + +func (c *RegionsGetCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) + if c.ifNoneMatch_ != "" { + reqHeaders.Set("If-None-Match", c.ifNoneMatch_) + } + c.urlParams_.Set("alt", alt) + c.urlParams_.Set("prettyPrint", "false") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}") + urls += "?" + c.urlParams_.Encode() + req, err := http.NewRequest("GET", urls, nil) + if err != nil { + return nil, err + } + req.Header = reqHeaders + googleapi.Expand(req.URL, map[string]string{ + "project": c.project, + "region": c.region, + }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.regions.get", "request", internallog.HTTPRequest(req, nil)) + return gensupport.SendRequest(c.ctx_, c.s.client, req) +} + +// Do executes the "compute.regions.get" call. +// Any non-2xx status code is an error. Response headers are in either +// *Region.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 *RegionsGetCall) Do(opts ...googleapi.CallOption) (*Region, 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, gensupport.WrapError(&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, gensupport.WrapError(err) + } + ret := &Region{ + ServerResponse: googleapi.ServerResponse{ + Header: res.Header, + HTTPStatusCode: res.StatusCode, + }, + } + target := &ret + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { + return nil, err + } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.regions.get", "response", internallog.HTTPResponse(res, b)) + return ret, nil +} + +type RegionsListCall struct { + s *Service + project string + urlParams_ gensupport.URLParams + ifNoneMatch_ string + ctx_ context.Context + header_ http.Header +} + +// List: Retrieves the list of region resources available to the specified +// project. +// +// To decrease latency for this method, you can optionally omit any +// unneeded +// information from the response by using a field mask. This practice +// is +// especially recommended for unused quota information +// (the `items.quotas` field). +// To exclude one or more fields, set your request's `fields` query +// parameter +// to only include the fields you need. For example, to only include the +// `id` +// and `selfLink` fields, add the query parameter `?fields=id,selfLink` to +// your request. +// +// This method fails if the quota information is unavailable for the region +// and if the organization policy +// constraint +// compute.requireBasicQuotaInResponse is enforced. This +// constraint, when enforced, disables the fail-open behaviour when +// quota +// information (the `items.quotas` field) is unavailable for the region. +// It is recommended to use the default setting +// for the constraint unless your application requires the +// fail-closed +// behaviour for this method. +// +// - project: Project ID for this request. +func (r *RegionsService) List(project string) *RegionsListCall { + c := &RegionsListCall{s: r.s, urlParams_: make(gensupport.URLParams)} + c.project = project + return c +} + +// Filter sets the optional parameter "filter": A filter expression that +// filters resources listed in the response. Most +// Compute resources support two types of filter expressions: +// expressions that support regular expressions and expressions that follow +// API improvement proposal AIP-160. +// These two types of filter expressions cannot be mixed in one request. +// +// If you want to use AIP-160, your expression must specify the field name, +// an +// operator, and the value that you want to use for filtering. The value +// must be a string, a number, or a boolean. The 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`. +// +// The `:*` comparison can be used to test whether a key has been defined. +// For example, to find all objects with `owner` label +// use: +// ``` +// labels.owner:* +// ``` +// +// 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 onresource 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) +// ``` +// +// If you want to use a regular expression, use the `eq` (equal) or `ne` +// (not equal) operator against a single un-parenthesized expression with +// or +// without quotes or against multiple parenthesized expressions. +// Examples: +// +// `fieldname eq unquoted literal` +// `fieldname eq 'single quoted literal'` +// `fieldname eq "double quoted literal" +// `(fieldname1 eq literal) (fieldname2 ne "literal")` +// +// The literal value is interpreted as a regular expression using GoogleRE2 +// library syntax. +// The literal value must match the entire field. +// +// For example, to filter for instances that do not end with name +// "instance", +// you would use `name ne .*instance`. +// +// You cannot combine constraints on multiple fields using regular +// expressions. +func (c *RegionsListCall) Filter(filter string) *RegionsListCall { + 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 *RegionsListCall) MaxResults(maxResults int64) *RegionsListCall { + 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 *RegionsListCall) OrderBy(orderBy string) *RegionsListCall { + 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 *RegionsListCall) PageToken(pageToken string) *RegionsListCall { + c.urlParams_.Set("pageToken", pageToken) + return c +} + +// ReturnPartialSuccess sets the optional parameter "returnPartialSuccess": +// Opt-in for partial success behavior which provides partial results in +// case +// of failure. The default value is false. +// +// For example, when partial success behavior is enabled, aggregatedList for +// a +// single zone scope either returns all resources in the zone or no +// resources, +// with an error code. +func (c *RegionsListCall) ReturnPartialSuccess(returnPartialSuccess bool) *RegionsListCall { + c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess)) + return c +} + +// Fields allows partial responses to be retrieved. See +// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more +// details. +func (c *RegionsListCall) Fields(s ...googleapi.Field) *RegionsListCall { + c.urlParams_.Set("fields", googleapi.CombineFields(s)) + return c +} + +// IfNoneMatch sets an 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. +func (c *RegionsListCall) IfNoneMatch(entityTag string) *RegionsListCall { + c.ifNoneMatch_ = entityTag + return c +} + +// Context sets the context to be used in this call's Do method. +func (c *RegionsListCall) Context(ctx context.Context) *RegionsListCall { + c.ctx_ = ctx + return c +} + +// Header returns a http.Header that can be modified by the caller to add +// headers to the request. +func (c *RegionsListCall) Header() http.Header { + if c.header_ == nil { + c.header_ = make(http.Header) + } + return c.header_ +} + +func (c *RegionsListCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) + if c.ifNoneMatch_ != "" { + reqHeaders.Set("If-None-Match", c.ifNoneMatch_) + } + c.urlParams_.Set("alt", alt) + c.urlParams_.Set("prettyPrint", "false") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions") + urls += "?" + c.urlParams_.Encode() + req, err := http.NewRequest("GET", urls, nil) + if err != nil { + return nil, err + } + req.Header = reqHeaders + googleapi.Expand(req.URL, map[string]string{ + "project": c.project, + }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.regions.list", "request", internallog.HTTPRequest(req, nil)) + return gensupport.SendRequest(c.ctx_, c.s.client, req) +} + +// Do executes the "compute.regions.list" call. +// Any non-2xx status code is an error. Response headers are in either +// *RegionList.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 *RegionsListCall) Do(opts ...googleapi.CallOption) (*RegionList, 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, gensupport.WrapError(&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, gensupport.WrapError(err) + } + ret := &RegionList{ + ServerResponse: googleapi.ServerResponse{ + Header: res.Header, + HTTPStatusCode: res.StatusCode, + }, + } + target := &ret + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { + return nil, err + } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.regions.list", "response", internallog.HTTPResponse(res, b)) + return ret, nil +} + +// 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 *RegionsListCall) Pages(ctx context.Context, f func(*RegionList) error) error { + c.ctx_ = ctx + defer c.PageToken(c.urlParams_.Get("pageToken")) + 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) + } +} + +type ReservationBlocksGetCall struct { + s *Service + project string + zone string + reservation string + reservationBlock string + urlParams_ gensupport.URLParams + ifNoneMatch_ string + ctx_ context.Context + header_ http.Header +} + +// Get: Retrieves information about the specified reservation block. +// +// - project: Project ID for this request. +// - reservation: The name of the reservation. +// Name should conform to RFC1035 or be a resource ID. +// - reservationBlock: The name of the reservation block. +// Name should conform to RFC1035 or be a resource ID. +// - zone: Name of the zone for this request. Zone name should conform to +// RFC1035. +func (r *ReservationBlocksService) Get(project string, zone string, reservation string, reservationBlock string) *ReservationBlocksGetCall { + c := &ReservationBlocksGetCall{s: r.s, urlParams_: make(gensupport.URLParams)} + c.project = project + c.zone = zone + c.reservation = reservation + c.reservationBlock = reservationBlock + return c +} + +// View sets the optional parameter "view": View of the Block. +// +// Possible values: +// +// "BASIC" - This view includes basic information about the reservation block +// "BLOCK_VIEW_UNSPECIFIED" - The default / unset value. The API will default +// +// to the BASIC view. +// +// "FULL" - Includes detailed topology view. +func (c *ReservationBlocksGetCall) View(view string) *ReservationBlocksGetCall { + c.urlParams_.Set("view", view) + return c +} + +// Fields allows partial responses to be retrieved. See +// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more +// details. +func (c *ReservationBlocksGetCall) Fields(s ...googleapi.Field) *ReservationBlocksGetCall { + c.urlParams_.Set("fields", googleapi.CombineFields(s)) + return c +} + +// IfNoneMatch sets an 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. +func (c *ReservationBlocksGetCall) IfNoneMatch(entityTag string) *ReservationBlocksGetCall { + c.ifNoneMatch_ = entityTag + return c +} + +// Context sets the context to be used in this call's Do method. +func (c *ReservationBlocksGetCall) Context(ctx context.Context) *ReservationBlocksGetCall { + c.ctx_ = ctx + return c +} + +// Header returns a http.Header that can be modified by the caller to add +// headers to the request. +func (c *ReservationBlocksGetCall) Header() http.Header { + if c.header_ == nil { + c.header_ = make(http.Header) + } + return c.header_ +} + +func (c *ReservationBlocksGetCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) + if c.ifNoneMatch_ != "" { + reqHeaders.Set("If-None-Match", c.ifNoneMatch_) + } + c.urlParams_.Set("alt", alt) + c.urlParams_.Set("prettyPrint", "false") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/reservations/{reservation}/reservationBlocks/{reservationBlock}") + urls += "?" + c.urlParams_.Encode() + req, err := http.NewRequest("GET", urls, nil) + if err != nil { + return nil, err + } + req.Header = reqHeaders + googleapi.Expand(req.URL, map[string]string{ + "project": c.project, + "zone": c.zone, + "reservation": c.reservation, + "reservationBlock": c.reservationBlock, + }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.reservationBlocks.get", "request", internallog.HTTPRequest(req, nil)) + return gensupport.SendRequest(c.ctx_, c.s.client, req) +} + +// Do executes the "compute.reservationBlocks.get" call. +// Any non-2xx status code is an error. Response headers are in either +// *ReservationBlocksGetResponse.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 *ReservationBlocksGetCall) Do(opts ...googleapi.CallOption) (*ReservationBlocksGetResponse, 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, gensupport.WrapError(&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, gensupport.WrapError(err) + } + ret := &ReservationBlocksGetResponse{ + ServerResponse: googleapi.ServerResponse{ + Header: res.Header, + HTTPStatusCode: res.StatusCode, + }, + } + target := &ret + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { + return nil, err + } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.reservationBlocks.get", "response", internallog.HTTPResponse(res, b)) + return ret, nil +} + +type ReservationBlocksGetIamPolicyCall struct { + s *Service + project string + zone string + parentResource string + resource string + urlParams_ gensupport.URLParams + ifNoneMatch_ string + ctx_ context.Context + header_ http.Header +} + +// GetIamPolicy: Gets the access control policy for a resource. May be empty if +// no such +// policy or resource exists. +// +// - parentResource: Name or id of parent resource of the resource for this +// request. +// - project: Project ID for this request. +// - resource: Name or id of the resource for this request. +// - zone: The name of the zone for this request. +func (r *ReservationBlocksService) GetIamPolicy(project string, zone string, parentResource string, resource string) *ReservationBlocksGetIamPolicyCall { + c := &ReservationBlocksGetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)} + c.project = project + c.zone = zone + c.parentResource = parentResource + c.resource = resource + return c +} + +// OptionsRequestedPolicyVersion sets the optional parameter +// "optionsRequestedPolicyVersion": Requested IAM Policy version. +func (c *ReservationBlocksGetIamPolicyCall) OptionsRequestedPolicyVersion(optionsRequestedPolicyVersion int64) *ReservationBlocksGetIamPolicyCall { + c.urlParams_.Set("optionsRequestedPolicyVersion", fmt.Sprint(optionsRequestedPolicyVersion)) + return c +} + +// Fields allows partial responses to be retrieved. See +// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more +// details. +func (c *ReservationBlocksGetIamPolicyCall) Fields(s ...googleapi.Field) *ReservationBlocksGetIamPolicyCall { + c.urlParams_.Set("fields", googleapi.CombineFields(s)) + return c +} + +// IfNoneMatch sets an 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. +func (c *ReservationBlocksGetIamPolicyCall) IfNoneMatch(entityTag string) *ReservationBlocksGetIamPolicyCall { + c.ifNoneMatch_ = entityTag + return c +} + +// Context sets the context to be used in this call's Do method. +func (c *ReservationBlocksGetIamPolicyCall) Context(ctx context.Context) *ReservationBlocksGetIamPolicyCall { + c.ctx_ = ctx + return c +} + +// Header returns a http.Header that can be modified by the caller to add +// headers to the request. +func (c *ReservationBlocksGetIamPolicyCall) Header() http.Header { + if c.header_ == nil { + c.header_ = make(http.Header) + } + return c.header_ +} + +func (c *ReservationBlocksGetIamPolicyCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) + if c.ifNoneMatch_ != "" { + reqHeaders.Set("If-None-Match", c.ifNoneMatch_) + } + c.urlParams_.Set("alt", alt) + c.urlParams_.Set("prettyPrint", "false") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/reservations/{parentResource}/reservationBlocks/{resource}/getIamPolicy") + urls += "?" + c.urlParams_.Encode() + req, err := http.NewRequest("GET", urls, nil) + if err != nil { + return nil, err + } + req.Header = reqHeaders + googleapi.Expand(req.URL, map[string]string{ + "project": c.project, + "zone": c.zone, + "parentResource": c.parentResource, + "resource": c.resource, + }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.reservationBlocks.getIamPolicy", "request", internallog.HTTPRequest(req, nil)) + return gensupport.SendRequest(c.ctx_, c.s.client, req) +} + +// Do executes the "compute.reservationBlocks.getIamPolicy" call. +// Any non-2xx status code is an error. Response headers are in either +// *Policy.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 *ReservationBlocksGetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, 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, gensupport.WrapError(&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, gensupport.WrapError(err) + } + ret := &Policy{ + ServerResponse: googleapi.ServerResponse{ + Header: res.Header, + HTTPStatusCode: res.StatusCode, + }, + } + target := &ret + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { + return nil, err + } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.reservationBlocks.getIamPolicy", "response", internallog.HTTPResponse(res, b)) + return ret, nil +} + +type ReservationBlocksListCall struct { + s *Service + project string + zone string + reservation string + urlParams_ gensupport.URLParams + ifNoneMatch_ string + ctx_ context.Context + header_ http.Header +} + +// List: Retrieves a list of reservation blocks under a single reservation. +// +// - project: Project ID for this request. +// - reservation: The name of the reservation. +// Name should conform to RFC1035 or be a resource ID. +// - zone: Name of the zone for this request. Zone name should conform to +// RFC1035. +func (r *ReservationBlocksService) List(project string, zone string, reservation string) *ReservationBlocksListCall { + c := &ReservationBlocksListCall{s: r.s, urlParams_: make(gensupport.URLParams)} + c.project = project + c.zone = zone + c.reservation = reservation + return c +} + +// Filter sets the optional parameter "filter": A filter expression that +// filters resources listed in the response. Most +// Compute resources support two types of filter expressions: +// expressions that support regular expressions and expressions that follow +// API improvement proposal AIP-160. +// These two types of filter expressions cannot be mixed in one request. +// +// If you want to use AIP-160, your expression must specify the field name, +// an +// operator, and the value that you want to use for filtering. The value +// must be a string, a number, or a boolean. The 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`. +// +// The `:*` comparison can be used to test whether a key has been defined. +// For example, to find all objects with `owner` label +// use: +// ``` +// labels.owner:* +// ``` +// +// 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 onresource 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) +// ``` +// +// If you want to use a regular expression, use the `eq` (equal) or `ne` +// (not equal) operator against a single un-parenthesized expression with +// or +// without quotes or against multiple parenthesized expressions. +// Examples: +// +// `fieldname eq unquoted literal` +// `fieldname eq 'single quoted literal'` +// `fieldname eq "double quoted literal" +// `(fieldname1 eq literal) (fieldname2 ne "literal")` +// +// The literal value is interpreted as a regular expression using GoogleRE2 +// library syntax. +// The literal value must match the entire field. +// +// For example, to filter for instances that do not end with name +// "instance", +// you would use `name ne .*instance`. +// +// You cannot combine constraints on multiple fields using regular +// expressions. +func (c *ReservationBlocksListCall) Filter(filter string) *ReservationBlocksListCall { + 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 *ReservationBlocksListCall) MaxResults(maxResults int64) *ReservationBlocksListCall { + 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 *ReservationBlocksListCall) OrderBy(orderBy string) *ReservationBlocksListCall { + 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 *ReservationBlocksListCall) PageToken(pageToken string) *ReservationBlocksListCall { + c.urlParams_.Set("pageToken", pageToken) + return c +} + +// ReturnPartialSuccess sets the optional parameter "returnPartialSuccess": +// Opt-in for partial success behavior which provides partial results in +// case +// of failure. The default value is false. +// +// For example, when partial success behavior is enabled, aggregatedList for +// a +// single zone scope either returns all resources in the zone or no +// resources, +// with an error code. +func (c *ReservationBlocksListCall) ReturnPartialSuccess(returnPartialSuccess bool) *ReservationBlocksListCall { + c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess)) + return c +} + +// Fields allows partial responses to be retrieved. See +// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more +// details. +func (c *ReservationBlocksListCall) Fields(s ...googleapi.Field) *ReservationBlocksListCall { + c.urlParams_.Set("fields", googleapi.CombineFields(s)) + return c +} + +// IfNoneMatch sets an 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. +func (c *ReservationBlocksListCall) IfNoneMatch(entityTag string) *ReservationBlocksListCall { + c.ifNoneMatch_ = entityTag + return c +} + +// Context sets the context to be used in this call's Do method. +func (c *ReservationBlocksListCall) Context(ctx context.Context) *ReservationBlocksListCall { + c.ctx_ = ctx + return c +} + +// Header returns a http.Header that can be modified by the caller to add +// headers to the request. +func (c *ReservationBlocksListCall) Header() http.Header { + if c.header_ == nil { + c.header_ = make(http.Header) + } + return c.header_ +} + +func (c *ReservationBlocksListCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) + if c.ifNoneMatch_ != "" { + reqHeaders.Set("If-None-Match", c.ifNoneMatch_) + } + c.urlParams_.Set("alt", alt) + c.urlParams_.Set("prettyPrint", "false") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/reservations/{reservation}/reservationBlocks") + urls += "?" + c.urlParams_.Encode() + req, err := http.NewRequest("GET", urls, nil) + if err != nil { + return nil, err + } + req.Header = reqHeaders + googleapi.Expand(req.URL, map[string]string{ + "project": c.project, + "zone": c.zone, + "reservation": c.reservation, + }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.reservationBlocks.list", "request", internallog.HTTPRequest(req, nil)) + return gensupport.SendRequest(c.ctx_, c.s.client, req) +} + +// Do executes the "compute.reservationBlocks.list" call. +// Any non-2xx status code is an error. Response headers are in either +// *ReservationBlocksListResponse.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 *ReservationBlocksListCall) Do(opts ...googleapi.CallOption) (*ReservationBlocksListResponse, 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, gensupport.WrapError(&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, gensupport.WrapError(err) + } + ret := &ReservationBlocksListResponse{ + ServerResponse: googleapi.ServerResponse{ + Header: res.Header, + HTTPStatusCode: res.StatusCode, + }, + } + target := &ret + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { + return nil, err + } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.reservationBlocks.list", "response", internallog.HTTPResponse(res, b)) + return ret, nil +} + +// 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 *ReservationBlocksListCall) Pages(ctx context.Context, f func(*ReservationBlocksListResponse) error) error { + c.ctx_ = ctx + defer c.PageToken(c.urlParams_.Get("pageToken")) + 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) + } +} + +type ReservationBlocksPerformMaintenanceCall struct { + s *Service + project string + zone string + reservation string + reservationBlock string + reservationsblocksperformmaintenancerequest *ReservationsBlocksPerformMaintenanceRequest + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header +} + +// PerformMaintenance: Allows customers to perform maintenance on a reservation +// block +// +// - project: Project ID for this request. +// - reservation: The name of the reservation. +// Name should conform to RFC1035 or be a resource ID. +// - reservationBlock: The name of the reservation block. +// Name should conform to RFC1035 or be a resource ID. +// - zone: Name of the zone for this request. Zone name should conform to +// RFC1035. +func (r *ReservationBlocksService) PerformMaintenance(project string, zone string, reservation string, reservationBlock string, reservationsblocksperformmaintenancerequest *ReservationsBlocksPerformMaintenanceRequest) *ReservationBlocksPerformMaintenanceCall { + c := &ReservationBlocksPerformMaintenanceCall{s: r.s, urlParams_: make(gensupport.URLParams)} + c.project = project + c.zone = zone + c.reservation = reservation + c.reservationBlock = reservationBlock + c.reservationsblocksperformmaintenancerequest = reservationsblocksperformmaintenancerequest + 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 *ReservationBlocksPerformMaintenanceCall) RequestId(requestId string) *ReservationBlocksPerformMaintenanceCall { + 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 +// details. +func (c *ReservationBlocksPerformMaintenanceCall) Fields(s ...googleapi.Field) *ReservationBlocksPerformMaintenanceCall { + c.urlParams_.Set("fields", googleapi.CombineFields(s)) + return c +} + +// Context sets the context to be used in this call's Do method. +func (c *ReservationBlocksPerformMaintenanceCall) Context(ctx context.Context) *ReservationBlocksPerformMaintenanceCall { + c.ctx_ = ctx + return c +} + +// Header returns a http.Header that can be modified by the caller to add +// headers to the request. +func (c *ReservationBlocksPerformMaintenanceCall) Header() http.Header { + if c.header_ == nil { + c.header_ = make(http.Header) + } + return c.header_ +} + +func (c *ReservationBlocksPerformMaintenanceCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) + body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.reservationsblocksperformmaintenancerequest) + if err != nil { + return nil, err + } + c.urlParams_.Set("alt", alt) + c.urlParams_.Set("prettyPrint", "false") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/reservations/{reservation}/reservationBlocks/{reservationBlock}/performMaintenance") + urls += "?" + c.urlParams_.Encode() + req, err := http.NewRequest("POST", urls, body) + if err != nil { + return nil, err + } + req.Header = reqHeaders + googleapi.Expand(req.URL, map[string]string{ + "project": c.project, + "zone": c.zone, + "reservation": c.reservation, + "reservationBlock": c.reservationBlock, + }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.reservationBlocks.performMaintenance", "request", internallog.HTTPRequest(req, body.Bytes())) + return gensupport.SendRequest(c.ctx_, c.s.client, req) +} + +// Do executes the "compute.reservationBlocks.performMaintenance" call. +// 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 *ReservationBlocksPerformMaintenanceCall) 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, gensupport.WrapError(&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, gensupport.WrapError(err) + } + ret := &Operation{ + ServerResponse: googleapi.ServerResponse{ + Header: res.Header, + HTTPStatusCode: res.StatusCode, + }, + } + target := &ret + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { + return nil, err + } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.reservationBlocks.performMaintenance", "response", internallog.HTTPResponse(res, b)) + return ret, nil +} + +type ReservationBlocksSetIamPolicyCall struct { + s *Service + project string + zone string + parentResource string + resource string + zonesetnestedpolicyrequest *ZoneSetNestedPolicyRequest + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header +} + +// SetIamPolicy: Sets the access control policy on the specified +// resource. +// Replaces any existing policy. +// +// - parentResource: Name or id of parent resource of the resource for this +// request. +// - project: Project ID for this request. +// - resource: Name or id of the resource for this request. +// - zone: The name of the zone for this request. +func (r *ReservationBlocksService) SetIamPolicy(project string, zone string, parentResource string, resource string, zonesetnestedpolicyrequest *ZoneSetNestedPolicyRequest) *ReservationBlocksSetIamPolicyCall { + c := &ReservationBlocksSetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)} + c.project = project + c.zone = zone + c.parentResource = parentResource + c.resource = resource + c.zonesetnestedpolicyrequest = zonesetnestedpolicyrequest + return c +} + +// Fields allows partial responses to be retrieved. See +// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more +// details. +func (c *ReservationBlocksSetIamPolicyCall) Fields(s ...googleapi.Field) *ReservationBlocksSetIamPolicyCall { + c.urlParams_.Set("fields", googleapi.CombineFields(s)) + return c +} + +// Context sets the context to be used in this call's Do method. +func (c *ReservationBlocksSetIamPolicyCall) Context(ctx context.Context) *ReservationBlocksSetIamPolicyCall { + c.ctx_ = ctx + return c +} + +// Header returns a http.Header that can be modified by the caller to add +// headers to the request. +func (c *ReservationBlocksSetIamPolicyCall) Header() http.Header { + if c.header_ == nil { + c.header_ = make(http.Header) + } + return c.header_ +} + +func (c *ReservationBlocksSetIamPolicyCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) + body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.zonesetnestedpolicyrequest) + if err != nil { + return nil, err + } + c.urlParams_.Set("alt", alt) + c.urlParams_.Set("prettyPrint", "false") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/reservations/{parentResource}/reservationBlocks/{resource}/setIamPolicy") + urls += "?" + c.urlParams_.Encode() + req, err := http.NewRequest("POST", urls, body) + if err != nil { + return nil, err + } + req.Header = reqHeaders + googleapi.Expand(req.URL, map[string]string{ + "project": c.project, + "zone": c.zone, + "parentResource": c.parentResource, + "resource": c.resource, + }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.reservationBlocks.setIamPolicy", "request", internallog.HTTPRequest(req, body.Bytes())) + return gensupport.SendRequest(c.ctx_, c.s.client, req) +} + +// Do executes the "compute.reservationBlocks.setIamPolicy" call. +// Any non-2xx status code is an error. Response headers are in either +// *Policy.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 *ReservationBlocksSetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, 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, gensupport.WrapError(&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, gensupport.WrapError(err) + } + ret := &Policy{ + ServerResponse: googleapi.ServerResponse{ + Header: res.Header, + HTTPStatusCode: res.StatusCode, + }, + } + target := &ret + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { + return nil, err + } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.reservationBlocks.setIamPolicy", "response", internallog.HTTPResponse(res, b)) + return ret, nil +} + +type ReservationBlocksTestIamPermissionsCall struct { + s *Service + project string + zone string + parentResource string + resource string + testpermissionsrequest *TestPermissionsRequest + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header +} + +// TestIamPermissions: Returns permissions that a caller has on the specified +// resource. +// +// - parentResource: Name or id of parent resource of the resource for this +// request. +// - project: Project ID for this request. +// - resource: Name or id of the resource for this request. +// - zone: The name of the zone for this request. +func (r *ReservationBlocksService) TestIamPermissions(project string, zone string, parentResource string, resource string, testpermissionsrequest *TestPermissionsRequest) *ReservationBlocksTestIamPermissionsCall { + c := &ReservationBlocksTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)} + c.project = project + c.zone = zone + c.parentResource = parentResource + c.resource = resource + c.testpermissionsrequest = testpermissionsrequest + return c +} + +// Fields allows partial responses to be retrieved. See +// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more +// details. +func (c *ReservationBlocksTestIamPermissionsCall) Fields(s ...googleapi.Field) *ReservationBlocksTestIamPermissionsCall { + c.urlParams_.Set("fields", googleapi.CombineFields(s)) + return c +} + +// Context sets the context to be used in this call's Do method. +func (c *ReservationBlocksTestIamPermissionsCall) Context(ctx context.Context) *ReservationBlocksTestIamPermissionsCall { + c.ctx_ = ctx + return c +} + +// Header returns a http.Header that can be modified by the caller to add +// headers to the request. +func (c *ReservationBlocksTestIamPermissionsCall) Header() http.Header { + if c.header_ == nil { + c.header_ = make(http.Header) + } + return c.header_ +} + +func (c *ReservationBlocksTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) + body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.testpermissionsrequest) + if err != nil { + return nil, err + } + c.urlParams_.Set("alt", alt) + c.urlParams_.Set("prettyPrint", "false") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/reservations/{parentResource}/reservationBlocks/{resource}/testIamPermissions") + urls += "?" + c.urlParams_.Encode() + req, err := http.NewRequest("POST", urls, body) + if err != nil { + return nil, err + } + req.Header = reqHeaders + googleapi.Expand(req.URL, map[string]string{ + "project": c.project, + "zone": c.zone, + "parentResource": c.parentResource, + "resource": c.resource, + }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.reservationBlocks.testIamPermissions", "request", internallog.HTTPRequest(req, body.Bytes())) + return gensupport.SendRequest(c.ctx_, c.s.client, req) +} + +// Do executes the "compute.reservationBlocks.testIamPermissions" call. +// Any non-2xx status code is an error. Response headers are in either +// *TestPermissionsResponse.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 *ReservationBlocksTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, 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, gensupport.WrapError(&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, gensupport.WrapError(err) + } + ret := &TestPermissionsResponse{ + ServerResponse: googleapi.ServerResponse{ + Header: res.Header, + HTTPStatusCode: res.StatusCode, + }, + } + target := &ret + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { + return nil, err + } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.reservationBlocks.testIamPermissions", "response", internallog.HTTPResponse(res, b)) + return ret, nil +} + +type ReservationSlotsGetCall struct { + s *Service + project string + zone string + parentName string + reservationSlot string + urlParams_ gensupport.URLParams + ifNoneMatch_ string + ctx_ context.Context + header_ http.Header +} + +// Get: Retrieves information about the specified reservation slot. +// +// - parentName: The name of the parent reservation and parent block, formatted +// as +// reservations/{reservation_name}/reservationBlocks/{reservation_block_name}/ +// reservationSubBlocks/{reservation_sub_block_name}. +// - project: The project ID for this request. +// - reservationSlot: The name of the reservation slot, formatted as RFC1035 or +// a resource ID +// +// number. +// - zone: The name of the zone for this request, formatted as RFC1035. +func (r *ReservationSlotsService) Get(project string, zone string, parentName string, reservationSlot string) *ReservationSlotsGetCall { + c := &ReservationSlotsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)} + c.project = project + c.zone = zone + c.parentName = parentName + c.reservationSlot = reservationSlot + return c +} + +// Fields allows partial responses to be retrieved. See +// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more +// details. +func (c *ReservationSlotsGetCall) Fields(s ...googleapi.Field) *ReservationSlotsGetCall { + c.urlParams_.Set("fields", googleapi.CombineFields(s)) + return c +} + +// IfNoneMatch sets an 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. +func (c *ReservationSlotsGetCall) IfNoneMatch(entityTag string) *ReservationSlotsGetCall { + c.ifNoneMatch_ = entityTag + return c +} + +// Context sets the context to be used in this call's Do method. +func (c *ReservationSlotsGetCall) Context(ctx context.Context) *ReservationSlotsGetCall { + c.ctx_ = ctx + return c +} + +// Header returns a http.Header that can be modified by the caller to add +// headers to the request. +func (c *ReservationSlotsGetCall) Header() http.Header { + if c.header_ == nil { + c.header_ = make(http.Header) + } + return c.header_ +} + +func (c *ReservationSlotsGetCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) + if c.ifNoneMatch_ != "" { + reqHeaders.Set("If-None-Match", c.ifNoneMatch_) + } + c.urlParams_.Set("alt", alt) + c.urlParams_.Set("prettyPrint", "false") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/{+parentName}/reservationSlots/{reservationSlot}") + urls += "?" + c.urlParams_.Encode() + req, err := http.NewRequest("GET", urls, nil) + if err != nil { + return nil, err + } + req.Header = reqHeaders + googleapi.Expand(req.URL, map[string]string{ + "project": c.project, + "zone": c.zone, + "parentName": c.parentName, + "reservationSlot": c.reservationSlot, + }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.reservationSlots.get", "request", internallog.HTTPRequest(req, nil)) + return gensupport.SendRequest(c.ctx_, c.s.client, req) +} + +// Do executes the "compute.reservationSlots.get" call. +// Any non-2xx status code is an error. Response headers are in either +// *ReservationSlotsGetResponse.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 *ReservationSlotsGetCall) Do(opts ...googleapi.CallOption) (*ReservationSlotsGetResponse, 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, gensupport.WrapError(&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, gensupport.WrapError(err) + } + ret := &ReservationSlotsGetResponse{ + ServerResponse: googleapi.ServerResponse{ + Header: res.Header, + HTTPStatusCode: res.StatusCode, + }, + } + target := &ret + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { + return nil, err + } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.reservationSlots.get", "response", internallog.HTTPResponse(res, b)) + return ret, nil +} + +type ReservationSlotsGetVersionCall struct { + s *Service + project string + zone string + parentName string + reservationSlot string + reservationslotsgetversionrequest *ReservationSlotsGetVersionRequest + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header +} + +// GetVersion: Allows customers to get SBOM versions of a reservation slot. +// +// - parentName: The name of the parent reservation and parent block. In the +// format +// of +// reservations/{reservation_name}/reservationBlocks/{reservation_block_name}/ +// reservationSubBlocks/{reservation_sub_block_name}. +// - project: Project ID for this request. +// - reservationSlot: The name of the reservation slot. +// Name should conform to RFC1035 or be a resource ID. +// - zone: Name of the zone for this request. Zone name should conform to +// RFC1035. +func (r *ReservationSlotsService) GetVersion(project string, zone string, parentName string, reservationSlot string, reservationslotsgetversionrequest *ReservationSlotsGetVersionRequest) *ReservationSlotsGetVersionCall { + c := &ReservationSlotsGetVersionCall{s: r.s, urlParams_: make(gensupport.URLParams)} + c.project = project + c.zone = zone + c.parentName = parentName + c.reservationSlot = reservationSlot + c.reservationslotsgetversionrequest = reservationslotsgetversionrequest + 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 *ReservationSlotsGetVersionCall) RequestId(requestId string) *ReservationSlotsGetVersionCall { + 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 +// details. +func (c *ReservationSlotsGetVersionCall) Fields(s ...googleapi.Field) *ReservationSlotsGetVersionCall { + c.urlParams_.Set("fields", googleapi.CombineFields(s)) + return c +} + +// Context sets the context to be used in this call's Do method. +func (c *ReservationSlotsGetVersionCall) Context(ctx context.Context) *ReservationSlotsGetVersionCall { + c.ctx_ = ctx + return c +} + +// Header returns a http.Header that can be modified by the caller to add +// headers to the request. +func (c *ReservationSlotsGetVersionCall) Header() http.Header { + if c.header_ == nil { + c.header_ = make(http.Header) + } + return c.header_ +} + +func (c *ReservationSlotsGetVersionCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) + body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.reservationslotsgetversionrequest) + if err != nil { + return nil, err + } + c.urlParams_.Set("alt", alt) + c.urlParams_.Set("prettyPrint", "false") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/{+parentName}/reservationSlots/{reservationSlot}/getVersion") + urls += "?" + c.urlParams_.Encode() + req, err := http.NewRequest("POST", urls, body) + if err != nil { + return nil, err + } + req.Header = reqHeaders + googleapi.Expand(req.URL, map[string]string{ + "project": c.project, + "zone": c.zone, + "parentName": c.parentName, + "reservationSlot": c.reservationSlot, + }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.reservationSlots.getVersion", "request", internallog.HTTPRequest(req, body.Bytes())) + return gensupport.SendRequest(c.ctx_, c.s.client, req) +} + +// Do executes the "compute.reservationSlots.getVersion" call. +// 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 *ReservationSlotsGetVersionCall) 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, gensupport.WrapError(&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, gensupport.WrapError(err) + } + ret := &Operation{ + ServerResponse: googleapi.ServerResponse{ + Header: res.Header, + HTTPStatusCode: res.StatusCode, + }, + } + target := &ret + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { + return nil, err + } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.reservationSlots.getVersion", "response", internallog.HTTPResponse(res, b)) + return ret, nil +} + +type ReservationSlotsListCall struct { + s *Service + project string + zone string + parentName string + urlParams_ gensupport.URLParams + ifNoneMatch_ string + ctx_ context.Context + header_ http.Header +} + +// List: Retrieves a list of reservation slots under a single reservation. +// +// - parentName: The name of the parent reservation and parent block, formatted +// as +// reservations/{reservation_name}/reservationBlocks/{reservation_block_name}/ +// reservationSubBlocks/{reservation_sub_block_name}. +// - project: The project ID for this request. +// - zone: The name of the zone for this request, formatted as RFC1035. +func (r *ReservationSlotsService) List(project string, zone string, parentName string) *ReservationSlotsListCall { + c := &ReservationSlotsListCall{s: r.s, urlParams_: make(gensupport.URLParams)} + c.project = project + c.zone = zone + c.parentName = parentName + return c +} + +// Filter sets the optional parameter "filter": A filter expression that +// filters resources listed in the response. Most +// Compute resources support two types of filter expressions: +// expressions that support regular expressions and expressions that follow +// API improvement proposal AIP-160. +// These two types of filter expressions cannot be mixed in one request. +// +// If you want to use AIP-160, your expression must specify the field name, +// an +// operator, and the value that you want to use for filtering. The value +// must be a string, a number, or a boolean. The 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`. +// +// The `:*` comparison can be used to test whether a key has been defined. +// For example, to find all objects with `owner` label +// use: +// ``` +// labels.owner:* +// ``` +// +// 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 onresource 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) +// ``` +// +// If you want to use a regular expression, use the `eq` (equal) or `ne` +// (not equal) operator against a single un-parenthesized expression with +// or +// without quotes or against multiple parenthesized expressions. +// Examples: +// +// `fieldname eq unquoted literal` +// `fieldname eq 'single quoted literal'` +// `fieldname eq "double quoted literal" +// `(fieldname1 eq literal) (fieldname2 ne "literal")` +// +// The literal value is interpreted as a regular expression using GoogleRE2 +// library syntax. +// The literal value must match the entire field. +// +// For example, to filter for instances that do not end with name +// "instance", +// you would use `name ne .*instance`. +// +// You cannot combine constraints on multiple fields using regular +// expressions. +func (c *ReservationSlotsListCall) Filter(filter string) *ReservationSlotsListCall { + 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 *ReservationSlotsListCall) MaxResults(maxResults int64) *ReservationSlotsListCall { + 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 *ReservationSlotsListCall) OrderBy(orderBy string) *ReservationSlotsListCall { + 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 *ReservationSlotsListCall) PageToken(pageToken string) *ReservationSlotsListCall { + c.urlParams_.Set("pageToken", pageToken) + return c +} + +// ReturnPartialSuccess sets the optional parameter "returnPartialSuccess": +// Opt-in for partial success behavior which provides partial results in +// case +// of failure. The default value is false. +// +// For example, when partial success behavior is enabled, aggregatedList for +// a +// single zone scope either returns all resources in the zone or no +// resources, +// with an error code. +func (c *ReservationSlotsListCall) ReturnPartialSuccess(returnPartialSuccess bool) *ReservationSlotsListCall { + c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess)) + return c +} + +// Fields allows partial responses to be retrieved. See +// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more +// details. +func (c *ReservationSlotsListCall) Fields(s ...googleapi.Field) *ReservationSlotsListCall { + c.urlParams_.Set("fields", googleapi.CombineFields(s)) + return c +} + +// IfNoneMatch sets an 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. +func (c *ReservationSlotsListCall) IfNoneMatch(entityTag string) *ReservationSlotsListCall { + c.ifNoneMatch_ = entityTag + return c +} + +// Context sets the context to be used in this call's Do method. +func (c *ReservationSlotsListCall) Context(ctx context.Context) *ReservationSlotsListCall { + c.ctx_ = ctx + return c +} + +// Header returns a http.Header that can be modified by the caller to add +// headers to the request. +func (c *ReservationSlotsListCall) Header() http.Header { + if c.header_ == nil { + c.header_ = make(http.Header) + } + return c.header_ +} + +func (c *ReservationSlotsListCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) + if c.ifNoneMatch_ != "" { + reqHeaders.Set("If-None-Match", c.ifNoneMatch_) + } + c.urlParams_.Set("alt", alt) + c.urlParams_.Set("prettyPrint", "false") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/{+parentName}/reservationSlots") + urls += "?" + c.urlParams_.Encode() + req, err := http.NewRequest("GET", urls, nil) + if err != nil { + return nil, err + } + req.Header = reqHeaders + googleapi.Expand(req.URL, map[string]string{ + "project": c.project, + "zone": c.zone, + "parentName": c.parentName, + }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.reservationSlots.list", "request", internallog.HTTPRequest(req, nil)) + return gensupport.SendRequest(c.ctx_, c.s.client, req) +} + +// Do executes the "compute.reservationSlots.list" call. +// Any non-2xx status code is an error. Response headers are in either +// *ReservationSlotsListResponse.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 *ReservationSlotsListCall) Do(opts ...googleapi.CallOption) (*ReservationSlotsListResponse, 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, gensupport.WrapError(&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, gensupport.WrapError(err) + } + ret := &ReservationSlotsListResponse{ + ServerResponse: googleapi.ServerResponse{ + Header: res.Header, + HTTPStatusCode: res.StatusCode, + }, + } + target := &ret + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { + return nil, err + } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.reservationSlots.list", "response", internallog.HTTPResponse(res, b)) + return ret, nil +} + +// 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 *ReservationSlotsListCall) Pages(ctx context.Context, f func(*ReservationSlotsListResponse) error) error { + c.ctx_ = ctx + defer c.PageToken(c.urlParams_.Get("pageToken")) + 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) + } +} + +type ReservationSlotsUpdateCall struct { + s *Service + project string + zone string + parentName string + reservationSlot string + reservationslot *ReservationSlot + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header +} + +// Update: Update a reservation slot in the specified sub-block. +// +// - parentName: The name of the sub-block resource. +// - project: The project ID for this request. +// - reservationSlot: The name of the slot resource. +// - zone: The name of the zone for this request, formatted as RFC1035. +func (r *ReservationSlotsService) Update(project string, zone string, parentName string, reservationSlot string, reservationslot *ReservationSlot) *ReservationSlotsUpdateCall { + c := &ReservationSlotsUpdateCall{s: r.s, urlParams_: make(gensupport.URLParams)} + c.project = project + c.zone = zone + c.parentName = parentName + c.reservationSlot = reservationSlot + c.reservationslot = reservationslot + return c +} + +// UpdateMask sets the optional parameter "updateMask": The fields to be +// updated as part of this request. +func (c *ReservationSlotsUpdateCall) UpdateMask(updateMask string) *ReservationSlotsUpdateCall { + c.urlParams_.Set("updateMask", updateMask) + return c +} + +// Fields allows partial responses to be retrieved. See +// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more +// details. +func (c *ReservationSlotsUpdateCall) Fields(s ...googleapi.Field) *ReservationSlotsUpdateCall { + c.urlParams_.Set("fields", googleapi.CombineFields(s)) + return c +} + +// Context sets the context to be used in this call's Do method. +func (c *ReservationSlotsUpdateCall) Context(ctx context.Context) *ReservationSlotsUpdateCall { + c.ctx_ = ctx + return c +} + +// Header returns a http.Header that can be modified by the caller to add +// headers to the request. +func (c *ReservationSlotsUpdateCall) Header() http.Header { + if c.header_ == nil { + c.header_ = make(http.Header) + } + return c.header_ +} + +func (c *ReservationSlotsUpdateCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) + body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.reservationslot) + if err != nil { + return nil, err + } + c.urlParams_.Set("alt", alt) + c.urlParams_.Set("prettyPrint", "false") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/{+parentName}/reservationSlots/{reservationSlot}") + urls += "?" + c.urlParams_.Encode() + req, err := http.NewRequest("POST", urls, body) + if err != nil { + return nil, err + } + req.Header = reqHeaders + googleapi.Expand(req.URL, map[string]string{ + "project": c.project, + "zone": c.zone, + "parentName": c.parentName, + "reservationSlot": c.reservationSlot, + }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.reservationSlots.update", "request", internallog.HTTPRequest(req, body.Bytes())) + return gensupport.SendRequest(c.ctx_, c.s.client, req) +} + +// Do executes the "compute.reservationSlots.update" call. +// 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 *ReservationSlotsUpdateCall) 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, gensupport.WrapError(&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, gensupport.WrapError(err) + } + ret := &Operation{ + ServerResponse: googleapi.ServerResponse{ + Header: res.Header, + HTTPStatusCode: res.StatusCode, + }, + } + target := &ret + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { + return nil, err + } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.reservationSlots.update", "response", internallog.HTTPResponse(res, b)) + return ret, nil +} + +type ReservationSubBlocksGetCall struct { + s *Service + project string + zone string + parentName string + reservationSubBlock string + urlParams_ gensupport.URLParams + ifNoneMatch_ string + ctx_ context.Context + header_ http.Header +} + +// Get: Retrieves information about the specified reservation subBlock. +// +// - parentName: The name of the parent reservation and parent block. In the +// format +// of +// reservations/{reservation_name}/reservationBlocks/{reservation_block_name}. +// - project: Project ID for this request. +// - reservationSubBlock: The name of the reservation subBlock. +// Name should conform to RFC1035 or be a resource ID. +// - zone: Name of the zone for this request. Zone name should conform to +// RFC1035. +func (r *ReservationSubBlocksService) Get(project string, zone string, parentName string, reservationSubBlock string) *ReservationSubBlocksGetCall { + c := &ReservationSubBlocksGetCall{s: r.s, urlParams_: make(gensupport.URLParams)} + c.project = project + c.zone = zone + c.parentName = parentName + c.reservationSubBlock = reservationSubBlock + return c +} + +// View sets the optional parameter "view": View of the subBlock. +// +// Possible values: +// +// "SUB_BLOCK_VIEW_BASIC" - This view includes basic information about the +// +// reservation sub block +// +// "SUB_BLOCK_VIEW_FULL" - Includes detailed topology view. +// "SUB_BLOCK_VIEW_UNSPECIFIED" - The default / unset value. The API will +// +// default to the BASIC view. +func (c *ReservationSubBlocksGetCall) View(view string) *ReservationSubBlocksGetCall { + c.urlParams_.Set("view", view) + return c +} + +// Fields allows partial responses to be retrieved. See +// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more +// details. +func (c *ReservationSubBlocksGetCall) Fields(s ...googleapi.Field) *ReservationSubBlocksGetCall { + c.urlParams_.Set("fields", googleapi.CombineFields(s)) + return c +} + +// IfNoneMatch sets an 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. +func (c *ReservationSubBlocksGetCall) IfNoneMatch(entityTag string) *ReservationSubBlocksGetCall { + c.ifNoneMatch_ = entityTag + return c +} + +// Context sets the context to be used in this call's Do method. +func (c *ReservationSubBlocksGetCall) Context(ctx context.Context) *ReservationSubBlocksGetCall { + c.ctx_ = ctx + return c +} + +// Header returns a http.Header that can be modified by the caller to add +// headers to the request. +func (c *ReservationSubBlocksGetCall) Header() http.Header { + if c.header_ == nil { + c.header_ = make(http.Header) + } + return c.header_ +} + +func (c *ReservationSubBlocksGetCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) + if c.ifNoneMatch_ != "" { + reqHeaders.Set("If-None-Match", c.ifNoneMatch_) + } + c.urlParams_.Set("alt", alt) + c.urlParams_.Set("prettyPrint", "false") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/{+parentName}/reservationSubBlocks/{reservationSubBlock}") + urls += "?" + c.urlParams_.Encode() + req, err := http.NewRequest("GET", urls, nil) + if err != nil { + return nil, err + } + req.Header = reqHeaders + googleapi.Expand(req.URL, map[string]string{ + "project": c.project, + "zone": c.zone, + "parentName": c.parentName, + "reservationSubBlock": c.reservationSubBlock, + }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.reservationSubBlocks.get", "request", internallog.HTTPRequest(req, nil)) + return gensupport.SendRequest(c.ctx_, c.s.client, req) +} + +// Do executes the "compute.reservationSubBlocks.get" call. +// Any non-2xx status code is an error. Response headers are in either +// *ReservationSubBlocksGetResponse.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 *ReservationSubBlocksGetCall) Do(opts ...googleapi.CallOption) (*ReservationSubBlocksGetResponse, 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, gensupport.WrapError(&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, gensupport.WrapError(err) + } + ret := &ReservationSubBlocksGetResponse{ + ServerResponse: googleapi.ServerResponse{ + Header: res.Header, + HTTPStatusCode: res.StatusCode, + }, + } + target := &ret + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { + return nil, err + } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.reservationSubBlocks.get", "response", internallog.HTTPResponse(res, b)) + return ret, nil +} + +type ReservationSubBlocksGetIamPolicyCall struct { + s *Service + project string + zone string + parentResource string + resource string + urlParams_ gensupport.URLParams + ifNoneMatch_ string + ctx_ context.Context + header_ http.Header +} + +// GetIamPolicy: Gets the access control policy for a resource. May be empty if +// no such +// policy or resource exists. +// +// - parentResource: Name or id of parent resource of the resource for this +// request. +// - project: Project ID for this request. +// - resource: Name or id of the resource for this request. +// - zone: The name of the zone for this request. +func (r *ReservationSubBlocksService) GetIamPolicy(project string, zone string, parentResource string, resource string) *ReservationSubBlocksGetIamPolicyCall { + c := &ReservationSubBlocksGetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)} + c.project = project + c.zone = zone + c.parentResource = parentResource + c.resource = resource + return c +} + +// OptionsRequestedPolicyVersion sets the optional parameter +// "optionsRequestedPolicyVersion": Requested IAM Policy version. +func (c *ReservationSubBlocksGetIamPolicyCall) OptionsRequestedPolicyVersion(optionsRequestedPolicyVersion int64) *ReservationSubBlocksGetIamPolicyCall { + c.urlParams_.Set("optionsRequestedPolicyVersion", fmt.Sprint(optionsRequestedPolicyVersion)) + return c +} + +// Fields allows partial responses to be retrieved. See +// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more +// details. +func (c *ReservationSubBlocksGetIamPolicyCall) Fields(s ...googleapi.Field) *ReservationSubBlocksGetIamPolicyCall { + c.urlParams_.Set("fields", googleapi.CombineFields(s)) + return c +} + +// IfNoneMatch sets an 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. +func (c *ReservationSubBlocksGetIamPolicyCall) IfNoneMatch(entityTag string) *ReservationSubBlocksGetIamPolicyCall { + c.ifNoneMatch_ = entityTag + return c +} + +// Context sets the context to be used in this call's Do method. +func (c *ReservationSubBlocksGetIamPolicyCall) Context(ctx context.Context) *ReservationSubBlocksGetIamPolicyCall { + c.ctx_ = ctx + return c +} + +// Header returns a http.Header that can be modified by the caller to add +// headers to the request. +func (c *ReservationSubBlocksGetIamPolicyCall) Header() http.Header { + if c.header_ == nil { + c.header_ = make(http.Header) + } + return c.header_ +} + +func (c *ReservationSubBlocksGetIamPolicyCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) + if c.ifNoneMatch_ != "" { + reqHeaders.Set("If-None-Match", c.ifNoneMatch_) + } + c.urlParams_.Set("alt", alt) + c.urlParams_.Set("prettyPrint", "false") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/{+parentResource}/reservationSubBlocks/{resource}/getIamPolicy") + urls += "?" + c.urlParams_.Encode() + req, err := http.NewRequest("GET", urls, nil) + if err != nil { + return nil, err + } + req.Header = reqHeaders + googleapi.Expand(req.URL, map[string]string{ + "project": c.project, + "zone": c.zone, + "parentResource": c.parentResource, + "resource": c.resource, + }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.reservationSubBlocks.getIamPolicy", "request", internallog.HTTPRequest(req, nil)) + return gensupport.SendRequest(c.ctx_, c.s.client, req) +} + +// Do executes the "compute.reservationSubBlocks.getIamPolicy" call. +// Any non-2xx status code is an error. Response headers are in either +// *Policy.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 *ReservationSubBlocksGetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, 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, gensupport.WrapError(&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, gensupport.WrapError(err) + } + ret := &Policy{ + ServerResponse: googleapi.ServerResponse{ + Header: res.Header, + HTTPStatusCode: res.StatusCode, + }, + } + target := &ret + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { + return nil, err + } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.reservationSubBlocks.getIamPolicy", "response", internallog.HTTPResponse(res, b)) + return ret, nil +} + +type ReservationSubBlocksGetVersionCall struct { + s *Service + project string + zone string + parentName string + reservationSubBlock string + reservationsubblocksgetversionrequest *ReservationSubBlocksGetVersionRequest + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header +} + +// GetVersion: Allows customers to get SBOM versions of a reservation subBlock. +// +// - parentName: The name of the parent reservation and parent block. In the +// format +// of +// reservations/{reservation_name}/reservationBlocks/{reservation_block_name}. +// - project: Project ID for this request. +// - reservationSubBlock: The name of the reservation subBlock. +// Name should conform to RFC1035 or be a resource ID. +// - zone: Name of the zone for this request. Zone name should conform to +// RFC1035. +func (r *ReservationSubBlocksService) GetVersion(project string, zone string, parentName string, reservationSubBlock string, reservationsubblocksgetversionrequest *ReservationSubBlocksGetVersionRequest) *ReservationSubBlocksGetVersionCall { + c := &ReservationSubBlocksGetVersionCall{s: r.s, urlParams_: make(gensupport.URLParams)} + c.project = project + c.zone = zone + c.parentName = parentName + c.reservationSubBlock = reservationSubBlock + c.reservationsubblocksgetversionrequest = reservationsubblocksgetversionrequest + 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 *ReservationSubBlocksGetVersionCall) RequestId(requestId string) *ReservationSubBlocksGetVersionCall { + 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 +// details. +func (c *ReservationSubBlocksGetVersionCall) Fields(s ...googleapi.Field) *ReservationSubBlocksGetVersionCall { + c.urlParams_.Set("fields", googleapi.CombineFields(s)) + return c +} + +// Context sets the context to be used in this call's Do method. +func (c *ReservationSubBlocksGetVersionCall) Context(ctx context.Context) *ReservationSubBlocksGetVersionCall { + c.ctx_ = ctx + return c +} + +// Header returns a http.Header that can be modified by the caller to add +// headers to the request. +func (c *ReservationSubBlocksGetVersionCall) Header() http.Header { + if c.header_ == nil { + c.header_ = make(http.Header) + } + return c.header_ +} + +func (c *ReservationSubBlocksGetVersionCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) + body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.reservationsubblocksgetversionrequest) + if err != nil { + return nil, err + } + c.urlParams_.Set("alt", alt) + c.urlParams_.Set("prettyPrint", "false") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/{+parentName}/reservationSubBlocks/{reservationSubBlock}/getVersion") + urls += "?" + c.urlParams_.Encode() + req, err := http.NewRequest("POST", urls, body) + if err != nil { + return nil, err + } + req.Header = reqHeaders + googleapi.Expand(req.URL, map[string]string{ + "project": c.project, + "zone": c.zone, + "parentName": c.parentName, + "reservationSubBlock": c.reservationSubBlock, + }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.reservationSubBlocks.getVersion", "request", internallog.HTTPRequest(req, body.Bytes())) + return gensupport.SendRequest(c.ctx_, c.s.client, req) +} + +// Do executes the "compute.reservationSubBlocks.getVersion" call. +// 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 *ReservationSubBlocksGetVersionCall) 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, gensupport.WrapError(&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, gensupport.WrapError(err) + } + ret := &Operation{ + ServerResponse: googleapi.ServerResponse{ + Header: res.Header, + HTTPStatusCode: res.StatusCode, + }, + } + target := &ret + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { + return nil, err + } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.reservationSubBlocks.getVersion", "response", internallog.HTTPResponse(res, b)) + return ret, nil +} + +type ReservationSubBlocksListCall struct { + s *Service + project string + zone string + parentName string + urlParams_ gensupport.URLParams + ifNoneMatch_ string + ctx_ context.Context + header_ http.Header +} + +// List: Retrieves a list of reservation subBlocks under a single reservation. +// +// - parentName: The name of the parent reservation and parent block. In the +// format +// of +// reservations/{reservation_name}/reservationBlocks/{reservation_block_name}. +// - project: Project ID for this request. +// - zone: Name of the zone for this request. Zone name should conform to +// RFC1035. +func (r *ReservationSubBlocksService) List(project string, zone string, parentName string) *ReservationSubBlocksListCall { + c := &ReservationSubBlocksListCall{s: r.s, urlParams_: make(gensupport.URLParams)} + c.project = project + c.zone = zone + c.parentName = parentName + return c +} + +// Filter sets the optional parameter "filter": A filter expression that +// filters resources listed in the response. Most +// Compute resources support two types of filter expressions: +// expressions that support regular expressions and expressions that follow +// API improvement proposal AIP-160. +// These two types of filter expressions cannot be mixed in one request. +// +// If you want to use AIP-160, your expression must specify the field name, +// an +// operator, and the value that you want to use for filtering. The value +// must be a string, a number, or a boolean. The 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`. +// +// The `:*` comparison can be used to test whether a key has been defined. +// For example, to find all objects with `owner` label +// use: +// ``` +// labels.owner:* +// ``` +// +// 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 onresource 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) +// ``` +// +// If you want to use a regular expression, use the `eq` (equal) or `ne` +// (not equal) operator against a single un-parenthesized expression with +// or +// without quotes or against multiple parenthesized expressions. +// Examples: +// +// `fieldname eq unquoted literal` +// `fieldname eq 'single quoted literal'` +// `fieldname eq "double quoted literal" +// `(fieldname1 eq literal) (fieldname2 ne "literal")` +// +// The literal value is interpreted as a regular expression using GoogleRE2 +// library syntax. +// The literal value must match the entire field. +// +// For example, to filter for instances that do not end with name +// "instance", +// you would use `name ne .*instance`. +// +// You cannot combine constraints on multiple fields using regular +// expressions. +func (c *ReservationSubBlocksListCall) Filter(filter string) *ReservationSubBlocksListCall { + 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 *ReservationSubBlocksListCall) MaxResults(maxResults int64) *ReservationSubBlocksListCall { + 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 *ReservationSubBlocksListCall) OrderBy(orderBy string) *ReservationSubBlocksListCall { + 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 *ReservationSubBlocksListCall) PageToken(pageToken string) *ReservationSubBlocksListCall { + c.urlParams_.Set("pageToken", pageToken) + return c +} + +// ReturnPartialSuccess sets the optional parameter "returnPartialSuccess": +// Opt-in for partial success behavior which provides partial results in +// case +// of failure. The default value is false. +// +// For example, when partial success behavior is enabled, aggregatedList for +// a +// single zone scope either returns all resources in the zone or no +// resources, +// with an error code. +func (c *ReservationSubBlocksListCall) ReturnPartialSuccess(returnPartialSuccess bool) *ReservationSubBlocksListCall { + c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess)) + return c +} + +// Fields allows partial responses to be retrieved. See +// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more +// details. +func (c *ReservationSubBlocksListCall) Fields(s ...googleapi.Field) *ReservationSubBlocksListCall { + c.urlParams_.Set("fields", googleapi.CombineFields(s)) + return c +} + +// IfNoneMatch sets an 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. +func (c *ReservationSubBlocksListCall) IfNoneMatch(entityTag string) *ReservationSubBlocksListCall { + c.ifNoneMatch_ = entityTag + return c +} + +// Context sets the context to be used in this call's Do method. +func (c *ReservationSubBlocksListCall) Context(ctx context.Context) *ReservationSubBlocksListCall { + c.ctx_ = ctx + return c +} + +// Header returns a http.Header that can be modified by the caller to add +// headers to the request. +func (c *ReservationSubBlocksListCall) Header() http.Header { + if c.header_ == nil { + c.header_ = make(http.Header) + } + return c.header_ +} + +func (c *ReservationSubBlocksListCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) + if c.ifNoneMatch_ != "" { + reqHeaders.Set("If-None-Match", c.ifNoneMatch_) + } + c.urlParams_.Set("alt", alt) + c.urlParams_.Set("prettyPrint", "false") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/{+parentName}/reservationSubBlocks") + urls += "?" + c.urlParams_.Encode() + req, err := http.NewRequest("GET", urls, nil) + if err != nil { + return nil, err + } + req.Header = reqHeaders + googleapi.Expand(req.URL, map[string]string{ + "project": c.project, + "zone": c.zone, + "parentName": c.parentName, + }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.reservationSubBlocks.list", "request", internallog.HTTPRequest(req, nil)) + return gensupport.SendRequest(c.ctx_, c.s.client, req) +} + +// Do executes the "compute.reservationSubBlocks.list" call. +// Any non-2xx status code is an error. Response headers are in either +// *ReservationSubBlocksListResponse.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 *ReservationSubBlocksListCall) Do(opts ...googleapi.CallOption) (*ReservationSubBlocksListResponse, 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, gensupport.WrapError(&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, gensupport.WrapError(err) + } + ret := &ReservationSubBlocksListResponse{ + ServerResponse: googleapi.ServerResponse{ + Header: res.Header, + HTTPStatusCode: res.StatusCode, + }, + } + target := &ret + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { + return nil, err + } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.reservationSubBlocks.list", "response", internallog.HTTPResponse(res, b)) + return ret, nil +} + +// 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 *ReservationSubBlocksListCall) Pages(ctx context.Context, f func(*ReservationSubBlocksListResponse) error) error { + c.ctx_ = ctx + defer c.PageToken(c.urlParams_.Get("pageToken")) + 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) + } +} + +type ReservationSubBlocksPerformMaintenanceCall struct { + s *Service + project string + zone string + parentName string + reservationSubBlock string + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header +} + +// PerformMaintenance: Allows customers to perform maintenance on a reservation +// subBlock +// +// - parentName: The name of the parent reservation and parent block. In the +// format +// of +// reservations/{reservation_name}/reservationBlocks/{reservation_block_name}. +// - project: Project ID for this request. +// - reservationSubBlock: The name of the reservation subBlock. +// Name should conform to RFC1035 or be a resource ID. +// - zone: Name of the zone for this request. Zone name should conform to +// RFC1035. +func (r *ReservationSubBlocksService) PerformMaintenance(project string, zone string, parentName string, reservationSubBlock string) *ReservationSubBlocksPerformMaintenanceCall { + c := &ReservationSubBlocksPerformMaintenanceCall{s: r.s, urlParams_: make(gensupport.URLParams)} + c.project = project + c.zone = zone + c.parentName = parentName + c.reservationSubBlock = reservationSubBlock + 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 *ReservationSubBlocksPerformMaintenanceCall) RequestId(requestId string) *ReservationSubBlocksPerformMaintenanceCall { + 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 +// details. +func (c *ReservationSubBlocksPerformMaintenanceCall) Fields(s ...googleapi.Field) *ReservationSubBlocksPerformMaintenanceCall { + c.urlParams_.Set("fields", googleapi.CombineFields(s)) + return c +} + +// Context sets the context to be used in this call's Do method. +func (c *ReservationSubBlocksPerformMaintenanceCall) Context(ctx context.Context) *ReservationSubBlocksPerformMaintenanceCall { + c.ctx_ = ctx + return c +} + +// Header returns a http.Header that can be modified by the caller to add +// headers to the request. +func (c *ReservationSubBlocksPerformMaintenanceCall) Header() http.Header { + if c.header_ == nil { + c.header_ = make(http.Header) + } + return c.header_ +} + +func (c *ReservationSubBlocksPerformMaintenanceCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) + c.urlParams_.Set("alt", alt) + c.urlParams_.Set("prettyPrint", "false") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/{+parentName}/reservationSubBlocks/{reservationSubBlock}/performMaintenance") + urls += "?" + c.urlParams_.Encode() + req, err := http.NewRequest("POST", urls, nil) + if err != nil { + return nil, err + } + req.Header = reqHeaders + googleapi.Expand(req.URL, map[string]string{ + "project": c.project, + "zone": c.zone, + "parentName": c.parentName, + "reservationSubBlock": c.reservationSubBlock, + }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.reservationSubBlocks.performMaintenance", "request", internallog.HTTPRequest(req, nil)) + return gensupport.SendRequest(c.ctx_, c.s.client, req) +} + +// Do executes the "compute.reservationSubBlocks.performMaintenance" call. +// 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 *ReservationSubBlocksPerformMaintenanceCall) 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, gensupport.WrapError(&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, gensupport.WrapError(err) + } + ret := &Operation{ + ServerResponse: googleapi.ServerResponse{ + Header: res.Header, + HTTPStatusCode: res.StatusCode, + }, + } + target := &ret + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { + return nil, err + } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.reservationSubBlocks.performMaintenance", "response", internallog.HTTPResponse(res, b)) + return ret, nil +} + +type ReservationSubBlocksReportFaultyCall struct { + s *Service + project string + zone string + parentName string + reservationSubBlock string + reservationsubblocksreportfaultyrequest *ReservationSubBlocksReportFaultyRequest + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header +} + +// ReportFaulty: Allows customers to report a faulty subBlock. +// +// - parentName: The name of the parent reservation and parent block. In the +// format +// of +// reservations/{reservation_name}/reservationBlocks/{reservation_block_name}. +// - project: Project ID for this request. +// - reservationSubBlock: The name of the reservation subBlock. +// Name should conform to RFC1035 or be a resource ID. +// - zone: Name of the zone for this request. Zone name should conform to +// RFC1035. +func (r *ReservationSubBlocksService) ReportFaulty(project string, zone string, parentName string, reservationSubBlock string, reservationsubblocksreportfaultyrequest *ReservationSubBlocksReportFaultyRequest) *ReservationSubBlocksReportFaultyCall { + c := &ReservationSubBlocksReportFaultyCall{s: r.s, urlParams_: make(gensupport.URLParams)} + c.project = project + c.zone = zone + c.parentName = parentName + c.reservationSubBlock = reservationSubBlock + c.reservationsubblocksreportfaultyrequest = reservationsubblocksreportfaultyrequest + 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 *ReservationSubBlocksReportFaultyCall) RequestId(requestId string) *ReservationSubBlocksReportFaultyCall { + 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 +// details. +func (c *ReservationSubBlocksReportFaultyCall) Fields(s ...googleapi.Field) *ReservationSubBlocksReportFaultyCall { + c.urlParams_.Set("fields", googleapi.CombineFields(s)) + return c +} + +// Context sets the context to be used in this call's Do method. +func (c *ReservationSubBlocksReportFaultyCall) Context(ctx context.Context) *ReservationSubBlocksReportFaultyCall { + c.ctx_ = ctx + return c +} + +// Header returns a http.Header that can be modified by the caller to add +// headers to the request. +func (c *ReservationSubBlocksReportFaultyCall) Header() http.Header { + if c.header_ == nil { + c.header_ = make(http.Header) + } + return c.header_ +} + +func (c *ReservationSubBlocksReportFaultyCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) + body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.reservationsubblocksreportfaultyrequest) + if err != nil { + return nil, err + } + c.urlParams_.Set("alt", alt) + c.urlParams_.Set("prettyPrint", "false") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/{+parentName}/reservationSubBlocks/{reservationSubBlock}/reportFaulty") + urls += "?" + c.urlParams_.Encode() + req, err := http.NewRequest("POST", urls, body) + if err != nil { + return nil, err + } + req.Header = reqHeaders + googleapi.Expand(req.URL, map[string]string{ + "project": c.project, + "zone": c.zone, + "parentName": c.parentName, + "reservationSubBlock": c.reservationSubBlock, + }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.reservationSubBlocks.reportFaulty", "request", internallog.HTTPRequest(req, body.Bytes())) + return gensupport.SendRequest(c.ctx_, c.s.client, req) +} + +// Do executes the "compute.reservationSubBlocks.reportFaulty" call. +// 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 *ReservationSubBlocksReportFaultyCall) 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, gensupport.WrapError(&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, gensupport.WrapError(err) + } + ret := &Operation{ + ServerResponse: googleapi.ServerResponse{ + Header: res.Header, + HTTPStatusCode: res.StatusCode, + }, + } + target := &ret + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { + return nil, err + } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.reservationSubBlocks.reportFaulty", "response", internallog.HTTPResponse(res, b)) + return ret, nil +} + +type ReservationSubBlocksSetIamPolicyCall struct { + s *Service + project string + zone string + parentResource string + resource string + zonesetnestedpolicyrequest *ZoneSetNestedPolicyRequest + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header +} + +// SetIamPolicy: Sets the access control policy on the specified +// resource. +// Replaces any existing policy. +// +// - parentResource: Name or id of parent resource of the resource for this +// request. +// - project: Project ID for this request. +// - resource: Name or id of the resource for this request. +// - zone: The name of the zone for this request. +func (r *ReservationSubBlocksService) SetIamPolicy(project string, zone string, parentResource string, resource string, zonesetnestedpolicyrequest *ZoneSetNestedPolicyRequest) *ReservationSubBlocksSetIamPolicyCall { + c := &ReservationSubBlocksSetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)} + c.project = project + c.zone = zone + c.parentResource = parentResource + c.resource = resource + c.zonesetnestedpolicyrequest = zonesetnestedpolicyrequest + return c +} + +// Fields allows partial responses to be retrieved. See +// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more +// details. +func (c *ReservationSubBlocksSetIamPolicyCall) Fields(s ...googleapi.Field) *ReservationSubBlocksSetIamPolicyCall { + c.urlParams_.Set("fields", googleapi.CombineFields(s)) + return c +} + +// Context sets the context to be used in this call's Do method. +func (c *ReservationSubBlocksSetIamPolicyCall) Context(ctx context.Context) *ReservationSubBlocksSetIamPolicyCall { + c.ctx_ = ctx + return c +} + +// Header returns a http.Header that can be modified by the caller to add +// headers to the request. +func (c *ReservationSubBlocksSetIamPolicyCall) Header() http.Header { + if c.header_ == nil { + c.header_ = make(http.Header) + } + return c.header_ +} + +func (c *ReservationSubBlocksSetIamPolicyCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) + body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.zonesetnestedpolicyrequest) + if err != nil { + return nil, err + } + c.urlParams_.Set("alt", alt) + c.urlParams_.Set("prettyPrint", "false") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/{+parentResource}/reservationSubBlocks/{resource}/setIamPolicy") + urls += "?" + c.urlParams_.Encode() + req, err := http.NewRequest("POST", urls, body) + if err != nil { + return nil, err + } + req.Header = reqHeaders + googleapi.Expand(req.URL, map[string]string{ + "project": c.project, + "zone": c.zone, + "parentResource": c.parentResource, + "resource": c.resource, + }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.reservationSubBlocks.setIamPolicy", "request", internallog.HTTPRequest(req, body.Bytes())) + return gensupport.SendRequest(c.ctx_, c.s.client, req) +} + +// Do executes the "compute.reservationSubBlocks.setIamPolicy" call. +// Any non-2xx status code is an error. Response headers are in either +// *Policy.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 *ReservationSubBlocksSetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, 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, gensupport.WrapError(&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, gensupport.WrapError(err) + } + ret := &Policy{ + ServerResponse: googleapi.ServerResponse{ + Header: res.Header, + HTTPStatusCode: res.StatusCode, + }, + } + target := &ret + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { + return nil, err + } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.reservationSubBlocks.setIamPolicy", "response", internallog.HTTPResponse(res, b)) + return ret, nil +} + +type ReservationSubBlocksTestIamPermissionsCall struct { + s *Service + project string + zone string + parentResource string + resource string + testpermissionsrequest *TestPermissionsRequest + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header +} + +// TestIamPermissions: Returns permissions that a caller has on the specified +// resource. +// +// - parentResource: Name or id of parent resource of the resource for this +// request. +// - project: Project ID for this request. +// - resource: Name or id of the resource for this request. +// - zone: The name of the zone for this request. +func (r *ReservationSubBlocksService) TestIamPermissions(project string, zone string, parentResource string, resource string, testpermissionsrequest *TestPermissionsRequest) *ReservationSubBlocksTestIamPermissionsCall { + c := &ReservationSubBlocksTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)} + c.project = project + c.zone = zone + c.parentResource = parentResource + c.resource = resource + c.testpermissionsrequest = testpermissionsrequest + return c +} + +// Fields allows partial responses to be retrieved. See +// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more +// details. +func (c *ReservationSubBlocksTestIamPermissionsCall) Fields(s ...googleapi.Field) *ReservationSubBlocksTestIamPermissionsCall { + c.urlParams_.Set("fields", googleapi.CombineFields(s)) + return c +} + +// Context sets the context to be used in this call's Do method. +func (c *ReservationSubBlocksTestIamPermissionsCall) Context(ctx context.Context) *ReservationSubBlocksTestIamPermissionsCall { + c.ctx_ = ctx + return c +} + +// Header returns a http.Header that can be modified by the caller to add +// headers to the request. +func (c *ReservationSubBlocksTestIamPermissionsCall) Header() http.Header { + if c.header_ == nil { + c.header_ = make(http.Header) + } + return c.header_ +} + +func (c *ReservationSubBlocksTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) + body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.testpermissionsrequest) + if err != nil { + return nil, err + } + c.urlParams_.Set("alt", alt) + c.urlParams_.Set("prettyPrint", "false") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/{+parentResource}/reservationSubBlocks/{resource}/testIamPermissions") + urls += "?" + c.urlParams_.Encode() + req, err := http.NewRequest("POST", urls, body) + if err != nil { + return nil, err + } + req.Header = reqHeaders + googleapi.Expand(req.URL, map[string]string{ + "project": c.project, + "zone": c.zone, + "parentResource": c.parentResource, + "resource": c.resource, + }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.reservationSubBlocks.testIamPermissions", "request", internallog.HTTPRequest(req, body.Bytes())) + return gensupport.SendRequest(c.ctx_, c.s.client, req) +} + +// Do executes the "compute.reservationSubBlocks.testIamPermissions" call. +// Any non-2xx status code is an error. Response headers are in either +// *TestPermissionsResponse.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 *ReservationSubBlocksTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, 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, gensupport.WrapError(&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, gensupport.WrapError(err) + } + ret := &TestPermissionsResponse{ + ServerResponse: googleapi.ServerResponse{ + Header: res.Header, + HTTPStatusCode: res.StatusCode, + }, + } + target := &ret + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { + return nil, err + } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.reservationSubBlocks.testIamPermissions", "response", internallog.HTTPResponse(res, b)) + return ret, nil +} + +type ReservationsAggregatedListCall struct { + s *Service + project string + urlParams_ gensupport.URLParams + ifNoneMatch_ string + ctx_ context.Context + header_ http.Header +} + +// AggregatedList: Retrieves an aggregated list of reservations. +// +// To prevent failure, it is recommended that you set +// the +// `returnPartialSuccess` parameter to `true`. +// +// - project: Project ID for this request. +func (r *ReservationsService) AggregatedList(project string) *ReservationsAggregatedListCall { + c := &ReservationsAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)} + c.project = project + return c +} + +// Filter sets the optional parameter "filter": A filter expression that +// filters resources listed in the response. Most +// Compute resources support two types of filter expressions: +// expressions that support regular expressions and expressions that follow +// API improvement proposal AIP-160. +// These two types of filter expressions cannot be mixed in one request. +// +// If you want to use AIP-160, your expression must specify the field name, +// an +// operator, and the value that you want to use for filtering. The value +// must be a string, a number, or a boolean. The 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`. +// +// The `:*` comparison can be used to test whether a key has been defined. +// For example, to find all objects with `owner` label +// use: +// ``` +// labels.owner:* +// ``` +// +// 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 onresource 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) +// ``` +// +// If you want to use a regular expression, use the `eq` (equal) or `ne` +// (not equal) operator against a single un-parenthesized expression with +// or +// without quotes or against multiple parenthesized expressions. +// Examples: +// +// `fieldname eq unquoted literal` +// `fieldname eq 'single quoted literal'` +// `fieldname eq "double quoted literal" +// `(fieldname1 eq literal) (fieldname2 ne "literal")` +// +// The literal value is interpreted as a regular expression using GoogleRE2 +// library syntax. +// The literal value must match the entire field. +// +// For example, to filter for instances that do not end with name +// "instance", +// you would use `name ne .*instance`. +// +// You cannot combine constraints on multiple fields using regular +// expressions. +func (c *ReservationsAggregatedListCall) Filter(filter string) *ReservationsAggregatedListCall { + c.urlParams_.Set("filter", filter) + return c +} + +// IncludeAllScopes sets the optional parameter "includeAllScopes": Indicates +// whether every visible scope for each scope type (zone, region, +// global) should be included in the response. For new resource types +// added +// after this field, the flag has no effect as new resource types will +// always +// include every visible scope for each scope type in response. For +// resource +// types which predate this field, if this flag is omitted or false, +// only +// scopes of the scope types where the resource type is expected to be +// found +// will be included. +func (c *ReservationsAggregatedListCall) IncludeAllScopes(includeAllScopes bool) *ReservationsAggregatedListCall { + c.urlParams_.Set("includeAllScopes", fmt.Sprint(includeAllScopes)) + 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 *ReservationsAggregatedListCall) MaxResults(maxResults int64) *ReservationsAggregatedListCall { + 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 *ReservationsAggregatedListCall) OrderBy(orderBy string) *ReservationsAggregatedListCall { + 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 *ReservationsAggregatedListCall) PageToken(pageToken string) *ReservationsAggregatedListCall { + c.urlParams_.Set("pageToken", pageToken) + return c +} + +// ReturnPartialSuccess sets the optional parameter "returnPartialSuccess": +// Opt-in for partial success behavior which provides partial results in +// case +// of failure. The default value is false. +// +// For example, when partial success behavior is enabled, aggregatedList for +// a +// single zone scope either returns all resources in the zone or no +// resources, +// with an error code. +func (c *ReservationsAggregatedListCall) ReturnPartialSuccess(returnPartialSuccess bool) *ReservationsAggregatedListCall { + c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess)) + return c +} + +// ServiceProjectNumber sets the optional parameter "serviceProjectNumber": The +// Shared VPC service project id or service project number for which +// aggregated list request is invoked for subnetworks list-usable api. +func (c *ReservationsAggregatedListCall) ServiceProjectNumber(serviceProjectNumber int64) *ReservationsAggregatedListCall { + c.urlParams_.Set("serviceProjectNumber", fmt.Sprint(serviceProjectNumber)) + return c +} + +// Fields allows partial responses to be retrieved. See +// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more +// details. +func (c *ReservationsAggregatedListCall) Fields(s ...googleapi.Field) *ReservationsAggregatedListCall { + c.urlParams_.Set("fields", googleapi.CombineFields(s)) + return c +} + +// IfNoneMatch sets an 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. +func (c *ReservationsAggregatedListCall) IfNoneMatch(entityTag string) *ReservationsAggregatedListCall { + c.ifNoneMatch_ = entityTag + return c +} + +// Context sets the context to be used in this call's Do method. +func (c *ReservationsAggregatedListCall) Context(ctx context.Context) *ReservationsAggregatedListCall { + c.ctx_ = ctx + return c +} + +// Header returns a http.Header that can be modified by the caller to add +// headers to the request. +func (c *ReservationsAggregatedListCall) Header() http.Header { + if c.header_ == nil { + c.header_ = make(http.Header) + } + return c.header_ +} + +func (c *ReservationsAggregatedListCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) + if c.ifNoneMatch_ != "" { + reqHeaders.Set("If-None-Match", c.ifNoneMatch_) + } + c.urlParams_.Set("alt", alt) + c.urlParams_.Set("prettyPrint", "false") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/aggregated/reservations") + urls += "?" + c.urlParams_.Encode() + req, err := http.NewRequest("GET", urls, nil) + if err != nil { + return nil, err + } + req.Header = reqHeaders + googleapi.Expand(req.URL, map[string]string{ + "project": c.project, + }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.reservations.aggregatedList", "request", internallog.HTTPRequest(req, nil)) + return gensupport.SendRequest(c.ctx_, c.s.client, req) +} + +// Do executes the "compute.reservations.aggregatedList" call. +// Any non-2xx status code is an error. Response headers are in either +// *ReservationAggregatedList.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 *ReservationsAggregatedListCall) Do(opts ...googleapi.CallOption) (*ReservationAggregatedList, 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, gensupport.WrapError(&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, gensupport.WrapError(err) + } + ret := &ReservationAggregatedList{ + ServerResponse: googleapi.ServerResponse{ + Header: res.Header, + HTTPStatusCode: res.StatusCode, + }, + } + target := &ret + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { + return nil, err + } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.reservations.aggregatedList", "response", internallog.HTTPResponse(res, b)) + return ret, nil +} + +// 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 *ReservationsAggregatedListCall) Pages(ctx context.Context, f func(*ReservationAggregatedList) error) error { + c.ctx_ = ctx + defer c.PageToken(c.urlParams_.Get("pageToken")) + 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) + } +} + +type ReservationsDeleteCall struct { + s *Service + project string + zone string + reservation string + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header +} + +// Delete: Deletes the specified reservation. +// +// - project: Project ID for this request. +// - reservation: Name of the reservation to delete. +// - zone: Name of the zone for this request. +func (r *ReservationsService) Delete(project string, zone string, reservation string) *ReservationsDeleteCall { + c := &ReservationsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)} + c.project = project + c.zone = zone + c.reservation = reservation + 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 *ReservationsDeleteCall) RequestId(requestId string) *ReservationsDeleteCall { + 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 +// details. +func (c *ReservationsDeleteCall) Fields(s ...googleapi.Field) *ReservationsDeleteCall { + c.urlParams_.Set("fields", googleapi.CombineFields(s)) + return c +} + +// Context sets the context to be used in this call's Do method. +func (c *ReservationsDeleteCall) Context(ctx context.Context) *ReservationsDeleteCall { + c.ctx_ = ctx + return c +} + +// Header returns a http.Header that can be modified by the caller to add +// headers to the request. +func (c *ReservationsDeleteCall) Header() http.Header { + if c.header_ == nil { + c.header_ = make(http.Header) + } + return c.header_ +} + +func (c *ReservationsDeleteCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) + c.urlParams_.Set("alt", alt) + c.urlParams_.Set("prettyPrint", "false") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/reservations/{reservation}") + urls += "?" + c.urlParams_.Encode() + req, err := http.NewRequest("DELETE", urls, nil) + if err != nil { + return nil, err + } + req.Header = reqHeaders + googleapi.Expand(req.URL, map[string]string{ + "project": c.project, + "zone": c.zone, + "reservation": c.reservation, + }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.reservations.delete", "request", internallog.HTTPRequest(req, nil)) + return gensupport.SendRequest(c.ctx_, c.s.client, req) +} + +// Do executes the "compute.reservations.delete" call. +// 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 *ReservationsDeleteCall) 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, gensupport.WrapError(&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, gensupport.WrapError(err) + } + ret := &Operation{ + ServerResponse: googleapi.ServerResponse{ + Header: res.Header, + HTTPStatusCode: res.StatusCode, + }, + } + target := &ret + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { + return nil, err + } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.reservations.delete", "response", internallog.HTTPResponse(res, b)) + return ret, nil +} + +type ReservationsGetCall struct { + s *Service + project string + zone string + reservation string + urlParams_ gensupport.URLParams + ifNoneMatch_ string + ctx_ context.Context + header_ http.Header +} + +// Get: Retrieves information about the specified reservation. +// +// - project: Project ID for this request. +// - reservation: Name of the reservation to retrieve. +// - zone: Name of the zone for this request. +func (r *ReservationsService) Get(project string, zone string, reservation string) *ReservationsGetCall { + c := &ReservationsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)} + c.project = project + c.zone = zone + c.reservation = reservation + return c +} + +// Fields allows partial responses to be retrieved. See +// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more +// details. +func (c *ReservationsGetCall) Fields(s ...googleapi.Field) *ReservationsGetCall { + c.urlParams_.Set("fields", googleapi.CombineFields(s)) + return c +} + +// IfNoneMatch sets an 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. +func (c *ReservationsGetCall) IfNoneMatch(entityTag string) *ReservationsGetCall { + c.ifNoneMatch_ = entityTag + return c +} + +// Context sets the context to be used in this call's Do method. +func (c *ReservationsGetCall) Context(ctx context.Context) *ReservationsGetCall { + c.ctx_ = ctx + return c +} + +// Header returns a http.Header that can be modified by the caller to add +// headers to the request. +func (c *ReservationsGetCall) Header() http.Header { + if c.header_ == nil { + c.header_ = make(http.Header) + } + return c.header_ +} + +func (c *ReservationsGetCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) + if c.ifNoneMatch_ != "" { + reqHeaders.Set("If-None-Match", c.ifNoneMatch_) + } + c.urlParams_.Set("alt", alt) + c.urlParams_.Set("prettyPrint", "false") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/reservations/{reservation}") + urls += "?" + c.urlParams_.Encode() + req, err := http.NewRequest("GET", urls, nil) + if err != nil { + return nil, err + } + req.Header = reqHeaders + googleapi.Expand(req.URL, map[string]string{ + "project": c.project, + "zone": c.zone, + "reservation": c.reservation, + }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.reservations.get", "request", internallog.HTTPRequest(req, nil)) + return gensupport.SendRequest(c.ctx_, c.s.client, req) +} + +// Do executes the "compute.reservations.get" call. +// Any non-2xx status code is an error. Response headers are in either +// *Reservation.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 *ReservationsGetCall) Do(opts ...googleapi.CallOption) (*Reservation, 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, gensupport.WrapError(&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, gensupport.WrapError(err) + } + ret := &Reservation{ + ServerResponse: googleapi.ServerResponse{ + Header: res.Header, + HTTPStatusCode: res.StatusCode, + }, + } + target := &ret + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { + return nil, err + } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.reservations.get", "response", internallog.HTTPResponse(res, b)) + return ret, nil +} + +type ReservationsGetIamPolicyCall struct { + s *Service + project string + zone string + resource string + urlParams_ gensupport.URLParams + ifNoneMatch_ string + ctx_ context.Context + header_ http.Header +} + +// GetIamPolicy: Gets the access control policy for a resource. May be empty if +// no such +// policy or resource exists. +// +// - project: Project ID for this request. +// - resource: Name or id of the resource for this request. +// - zone: The name of the zone for this request. +func (r *ReservationsService) GetIamPolicy(project string, zone string, resource string) *ReservationsGetIamPolicyCall { + c := &ReservationsGetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)} + c.project = project + c.zone = zone + c.resource = resource + return c +} + +// OptionsRequestedPolicyVersion sets the optional parameter +// "optionsRequestedPolicyVersion": Requested IAM Policy version. +func (c *ReservationsGetIamPolicyCall) OptionsRequestedPolicyVersion(optionsRequestedPolicyVersion int64) *ReservationsGetIamPolicyCall { + c.urlParams_.Set("optionsRequestedPolicyVersion", fmt.Sprint(optionsRequestedPolicyVersion)) + return c +} + +// Fields allows partial responses to be retrieved. See +// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more +// details. +func (c *ReservationsGetIamPolicyCall) Fields(s ...googleapi.Field) *ReservationsGetIamPolicyCall { + c.urlParams_.Set("fields", googleapi.CombineFields(s)) + return c +} + +// IfNoneMatch sets an 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. +func (c *ReservationsGetIamPolicyCall) IfNoneMatch(entityTag string) *ReservationsGetIamPolicyCall { + c.ifNoneMatch_ = entityTag + return c +} + +// Context sets the context to be used in this call's Do method. +func (c *ReservationsGetIamPolicyCall) Context(ctx context.Context) *ReservationsGetIamPolicyCall { + c.ctx_ = ctx + return c +} + +// Header returns a http.Header that can be modified by the caller to add +// headers to the request. +func (c *ReservationsGetIamPolicyCall) Header() http.Header { + if c.header_ == nil { + c.header_ = make(http.Header) + } + return c.header_ +} + +func (c *ReservationsGetIamPolicyCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) + if c.ifNoneMatch_ != "" { + reqHeaders.Set("If-None-Match", c.ifNoneMatch_) + } + c.urlParams_.Set("alt", alt) + c.urlParams_.Set("prettyPrint", "false") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/reservations/{resource}/getIamPolicy") + urls += "?" + c.urlParams_.Encode() + req, err := http.NewRequest("GET", urls, nil) + if err != nil { + return nil, err + } + req.Header = reqHeaders + googleapi.Expand(req.URL, map[string]string{ + "project": c.project, + "zone": c.zone, + "resource": c.resource, + }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.reservations.getIamPolicy", "request", internallog.HTTPRequest(req, nil)) + return gensupport.SendRequest(c.ctx_, c.s.client, req) +} + +// Do executes the "compute.reservations.getIamPolicy" call. +// Any non-2xx status code is an error. Response headers are in either +// *Policy.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 *ReservationsGetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, 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, gensupport.WrapError(&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, gensupport.WrapError(err) + } + ret := &Policy{ + ServerResponse: googleapi.ServerResponse{ + Header: res.Header, + HTTPStatusCode: res.StatusCode, + }, + } + target := &ret + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { + return nil, err + } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.reservations.getIamPolicy", "response", internallog.HTTPResponse(res, b)) + return ret, nil +} + +type ReservationsInsertCall struct { + s *Service + project string + zone string + reservation *Reservation + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header +} + +// Insert: Creates a new reservation. For more information, readReserving +// zonal +// resources. +// +// - project: Project ID for this request. +// - zone: Name of the zone for this request. +func (r *ReservationsService) Insert(project string, zone string, reservation *Reservation) *ReservationsInsertCall { + c := &ReservationsInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)} + c.project = project + c.zone = zone + c.reservation = reservation + 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 *ReservationsInsertCall) RequestId(requestId string) *ReservationsInsertCall { + 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 +// details. +func (c *ReservationsInsertCall) Fields(s ...googleapi.Field) *ReservationsInsertCall { + c.urlParams_.Set("fields", googleapi.CombineFields(s)) + return c +} + +// Context sets the context to be used in this call's Do method. +func (c *ReservationsInsertCall) Context(ctx context.Context) *ReservationsInsertCall { + c.ctx_ = ctx + return c +} + +// Header returns a http.Header that can be modified by the caller to add +// headers to the request. +func (c *ReservationsInsertCall) Header() http.Header { + if c.header_ == nil { + c.header_ = make(http.Header) + } + return c.header_ +} + +func (c *ReservationsInsertCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) + body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.reservation) + if err != nil { + return nil, err + } + c.urlParams_.Set("alt", alt) + c.urlParams_.Set("prettyPrint", "false") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/reservations") + urls += "?" + c.urlParams_.Encode() + req, err := http.NewRequest("POST", urls, body) + if err != nil { + return nil, err + } + req.Header = reqHeaders + googleapi.Expand(req.URL, map[string]string{ + "project": c.project, + "zone": c.zone, + }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.reservations.insert", "request", internallog.HTTPRequest(req, body.Bytes())) + return gensupport.SendRequest(c.ctx_, c.s.client, req) +} + +// Do executes the "compute.reservations.insert" call. +// 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 *ReservationsInsertCall) 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, gensupport.WrapError(&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, gensupport.WrapError(err) + } + ret := &Operation{ + ServerResponse: googleapi.ServerResponse{ + Header: res.Header, + HTTPStatusCode: res.StatusCode, + }, + } + target := &ret + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { + return nil, err + } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.reservations.insert", "response", internallog.HTTPResponse(res, b)) + return ret, nil +} + +type ReservationsListCall struct { + s *Service + project string + zone string + urlParams_ gensupport.URLParams + ifNoneMatch_ string + ctx_ context.Context + header_ http.Header +} + +// List: A list of all the reservations that have been configured for +// the +// specified project in specified zone. +// +// - project: Project ID for this request. +// - zone: Name of the zone for this request. +func (r *ReservationsService) List(project string, zone string) *ReservationsListCall { + c := &ReservationsListCall{s: r.s, urlParams_: make(gensupport.URLParams)} + c.project = project + c.zone = zone + return c +} + +// Filter sets the optional parameter "filter": A filter expression that +// filters resources listed in the response. Most +// Compute resources support two types of filter expressions: +// expressions that support regular expressions and expressions that follow +// API improvement proposal AIP-160. +// These two types of filter expressions cannot be mixed in one request. +// +// If you want to use AIP-160, your expression must specify the field name, +// an +// operator, and the value that you want to use for filtering. The value +// must be a string, a number, or a boolean. The 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`. +// +// The `:*` comparison can be used to test whether a key has been defined. +// For example, to find all objects with `owner` label +// use: +// ``` +// labels.owner:* +// ``` +// +// 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 onresource 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) +// ``` +// +// If you want to use a regular expression, use the `eq` (equal) or `ne` +// (not equal) operator against a single un-parenthesized expression with +// or +// without quotes or against multiple parenthesized expressions. +// Examples: +// +// `fieldname eq unquoted literal` +// `fieldname eq 'single quoted literal'` +// `fieldname eq "double quoted literal" +// `(fieldname1 eq literal) (fieldname2 ne "literal")` +// +// The literal value is interpreted as a regular expression using GoogleRE2 +// library syntax. +// The literal value must match the entire field. +// +// For example, to filter for instances that do not end with name +// "instance", +// you would use `name ne .*instance`. +// +// You cannot combine constraints on multiple fields using regular +// expressions. +func (c *ReservationsListCall) Filter(filter string) *ReservationsListCall { + 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 *ReservationsListCall) MaxResults(maxResults int64) *ReservationsListCall { + 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 *ReservationsListCall) OrderBy(orderBy string) *ReservationsListCall { + 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 *ReservationsListCall) PageToken(pageToken string) *ReservationsListCall { + c.urlParams_.Set("pageToken", pageToken) + return c +} + +// ReturnPartialSuccess sets the optional parameter "returnPartialSuccess": +// Opt-in for partial success behavior which provides partial results in +// case +// of failure. The default value is false. +// +// For example, when partial success behavior is enabled, aggregatedList for +// a +// single zone scope either returns all resources in the zone or no +// resources, +// with an error code. +func (c *ReservationsListCall) ReturnPartialSuccess(returnPartialSuccess bool) *ReservationsListCall { + c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess)) + return c +} + +// Fields allows partial responses to be retrieved. See +// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more +// details. +func (c *ReservationsListCall) Fields(s ...googleapi.Field) *ReservationsListCall { + c.urlParams_.Set("fields", googleapi.CombineFields(s)) + return c +} + +// IfNoneMatch sets an 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. +func (c *ReservationsListCall) IfNoneMatch(entityTag string) *ReservationsListCall { + c.ifNoneMatch_ = entityTag + return c +} + +// Context sets the context to be used in this call's Do method. +func (c *ReservationsListCall) Context(ctx context.Context) *ReservationsListCall { + c.ctx_ = ctx + return c +} + +// Header returns a http.Header that can be modified by the caller to add +// headers to the request. +func (c *ReservationsListCall) Header() http.Header { + if c.header_ == nil { + c.header_ = make(http.Header) + } + return c.header_ +} + +func (c *ReservationsListCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) + if c.ifNoneMatch_ != "" { + reqHeaders.Set("If-None-Match", c.ifNoneMatch_) + } + c.urlParams_.Set("alt", alt) + c.urlParams_.Set("prettyPrint", "false") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/reservations") + urls += "?" + c.urlParams_.Encode() + req, err := http.NewRequest("GET", urls, nil) + if err != nil { + return nil, err + } + req.Header = reqHeaders + googleapi.Expand(req.URL, map[string]string{ + "project": c.project, + "zone": c.zone, + }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.reservations.list", "request", internallog.HTTPRequest(req, nil)) + return gensupport.SendRequest(c.ctx_, c.s.client, req) +} + +// Do executes the "compute.reservations.list" call. +// Any non-2xx status code is an error. Response headers are in either +// *ReservationList.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 *ReservationsListCall) Do(opts ...googleapi.CallOption) (*ReservationList, 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, gensupport.WrapError(&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, gensupport.WrapError(err) + } + ret := &ReservationList{ + ServerResponse: googleapi.ServerResponse{ + Header: res.Header, + HTTPStatusCode: res.StatusCode, + }, + } + target := &ret + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { + return nil, err + } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.reservations.list", "response", internallog.HTTPResponse(res, b)) + return ret, nil +} + +// 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 *ReservationsListCall) Pages(ctx context.Context, f func(*ReservationList) error) error { + c.ctx_ = ctx + defer c.PageToken(c.urlParams_.Get("pageToken")) + 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) + } +} + +type ReservationsPerformMaintenanceCall struct { + s *Service + project string + zone string + reservation string + reservationsperformmaintenancerequest *ReservationsPerformMaintenanceRequest + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header +} + +// PerformMaintenance: Perform maintenance on an extended reservation +// +// - project: Project ID for this request. +// - reservation: The name of the reservation. +// Name should conform to RFC1035 or be a resource ID. +// - zone: Name of the zone for this request. Zone name should conform to +// RFC1035. +func (r *ReservationsService) PerformMaintenance(project string, zone string, reservation string, reservationsperformmaintenancerequest *ReservationsPerformMaintenanceRequest) *ReservationsPerformMaintenanceCall { + c := &ReservationsPerformMaintenanceCall{s: r.s, urlParams_: make(gensupport.URLParams)} + c.project = project + c.zone = zone + c.reservation = reservation + c.reservationsperformmaintenancerequest = reservationsperformmaintenancerequest + 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 *ReservationsPerformMaintenanceCall) RequestId(requestId string) *ReservationsPerformMaintenanceCall { + 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 +// details. +func (c *ReservationsPerformMaintenanceCall) Fields(s ...googleapi.Field) *ReservationsPerformMaintenanceCall { + c.urlParams_.Set("fields", googleapi.CombineFields(s)) + return c +} + +// Context sets the context to be used in this call's Do method. +func (c *ReservationsPerformMaintenanceCall) Context(ctx context.Context) *ReservationsPerformMaintenanceCall { + c.ctx_ = ctx + return c +} + +// Header returns a http.Header that can be modified by the caller to add +// headers to the request. +func (c *ReservationsPerformMaintenanceCall) Header() http.Header { + if c.header_ == nil { + c.header_ = make(http.Header) + } + return c.header_ +} + +func (c *ReservationsPerformMaintenanceCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) + body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.reservationsperformmaintenancerequest) + if err != nil { + return nil, err + } + c.urlParams_.Set("alt", alt) + c.urlParams_.Set("prettyPrint", "false") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/reservations/{reservation}/performMaintenance") + urls += "?" + c.urlParams_.Encode() + req, err := http.NewRequest("POST", urls, body) + if err != nil { + return nil, err + } + req.Header = reqHeaders + googleapi.Expand(req.URL, map[string]string{ + "project": c.project, + "zone": c.zone, + "reservation": c.reservation, + }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.reservations.performMaintenance", "request", internallog.HTTPRequest(req, body.Bytes())) + return gensupport.SendRequest(c.ctx_, c.s.client, req) +} + +// Do executes the "compute.reservations.performMaintenance" call. +// 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 *ReservationsPerformMaintenanceCall) 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, gensupport.WrapError(&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, gensupport.WrapError(err) + } + ret := &Operation{ + ServerResponse: googleapi.ServerResponse{ + Header: res.Header, + HTTPStatusCode: res.StatusCode, + }, + } + target := &ret + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { + return nil, err + } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.reservations.performMaintenance", "response", internallog.HTTPResponse(res, b)) + return ret, nil +} + +type ReservationsResizeCall struct { + s *Service + project string + zone string + reservation string + reservationsresizerequest *ReservationsResizeRequest + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header +} + +// Resize: Resizes the reservation (applicable to standalone reservations +// only). For +// more information, readModifying +// reservations. +// +// - project: Project ID for this request. +// - reservation: Name of the reservation to update. +// - zone: Name of the zone for this request. +func (r *ReservationsService) Resize(project string, zone string, reservation string, reservationsresizerequest *ReservationsResizeRequest) *ReservationsResizeCall { + c := &ReservationsResizeCall{s: r.s, urlParams_: make(gensupport.URLParams)} + c.project = project + c.zone = zone + c.reservation = reservation + c.reservationsresizerequest = reservationsresizerequest + 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 *ReservationsResizeCall) RequestId(requestId string) *ReservationsResizeCall { + 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 +// details. +func (c *ReservationsResizeCall) Fields(s ...googleapi.Field) *ReservationsResizeCall { + c.urlParams_.Set("fields", googleapi.CombineFields(s)) + return c +} + +// Context sets the context to be used in this call's Do method. +func (c *ReservationsResizeCall) Context(ctx context.Context) *ReservationsResizeCall { + c.ctx_ = ctx + return c +} + +// Header returns a http.Header that can be modified by the caller to add +// headers to the request. +func (c *ReservationsResizeCall) Header() http.Header { + if c.header_ == nil { + c.header_ = make(http.Header) + } + return c.header_ +} + +func (c *ReservationsResizeCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) + body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.reservationsresizerequest) + if err != nil { + return nil, err + } + c.urlParams_.Set("alt", alt) + c.urlParams_.Set("prettyPrint", "false") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/reservations/{reservation}/resize") + urls += "?" + c.urlParams_.Encode() + req, err := http.NewRequest("POST", urls, body) + if err != nil { + return nil, err + } + req.Header = reqHeaders + googleapi.Expand(req.URL, map[string]string{ + "project": c.project, + "zone": c.zone, + "reservation": c.reservation, + }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.reservations.resize", "request", internallog.HTTPRequest(req, body.Bytes())) + return gensupport.SendRequest(c.ctx_, c.s.client, req) +} + +// Do executes the "compute.reservations.resize" call. +// 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 *ReservationsResizeCall) 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, gensupport.WrapError(&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, gensupport.WrapError(err) + } + ret := &Operation{ + ServerResponse: googleapi.ServerResponse{ + Header: res.Header, + HTTPStatusCode: res.StatusCode, + }, + } + target := &ret + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { + return nil, err + } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.reservations.resize", "response", internallog.HTTPResponse(res, b)) + return ret, nil +} + +type ReservationsSetIamPolicyCall struct { + s *Service + project string + zone string + resource string + zonesetpolicyrequest *ZoneSetPolicyRequest + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header +} + +// SetIamPolicy: Sets the access control policy on the specified +// resource. +// Replaces any existing policy. +// +// - project: Project ID for this request. +// - resource: Name or id of the resource for this request. +// - zone: The name of the zone for this request. +func (r *ReservationsService) SetIamPolicy(project string, zone string, resource string, zonesetpolicyrequest *ZoneSetPolicyRequest) *ReservationsSetIamPolicyCall { + c := &ReservationsSetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)} + c.project = project + c.zone = zone + c.resource = resource + c.zonesetpolicyrequest = zonesetpolicyrequest + return c +} + +// Fields allows partial responses to be retrieved. See +// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more +// details. +func (c *ReservationsSetIamPolicyCall) Fields(s ...googleapi.Field) *ReservationsSetIamPolicyCall { + c.urlParams_.Set("fields", googleapi.CombineFields(s)) + return c +} + +// Context sets the context to be used in this call's Do method. +func (c *ReservationsSetIamPolicyCall) Context(ctx context.Context) *ReservationsSetIamPolicyCall { + c.ctx_ = ctx + return c +} + +// Header returns a http.Header that can be modified by the caller to add +// headers to the request. +func (c *ReservationsSetIamPolicyCall) Header() http.Header { + if c.header_ == nil { + c.header_ = make(http.Header) + } + return c.header_ +} + +func (c *ReservationsSetIamPolicyCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) + body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.zonesetpolicyrequest) + if err != nil { + return nil, err + } + c.urlParams_.Set("alt", alt) + c.urlParams_.Set("prettyPrint", "false") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/reservations/{resource}/setIamPolicy") + urls += "?" + c.urlParams_.Encode() + req, err := http.NewRequest("POST", urls, body) + if err != nil { + return nil, err + } + req.Header = reqHeaders + googleapi.Expand(req.URL, map[string]string{ + "project": c.project, + "zone": c.zone, + "resource": c.resource, + }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.reservations.setIamPolicy", "request", internallog.HTTPRequest(req, body.Bytes())) + return gensupport.SendRequest(c.ctx_, c.s.client, req) +} + +// Do executes the "compute.reservations.setIamPolicy" call. +// Any non-2xx status code is an error. Response headers are in either +// *Policy.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 *ReservationsSetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, 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, gensupport.WrapError(&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, gensupport.WrapError(err) + } + ret := &Policy{ + ServerResponse: googleapi.ServerResponse{ + Header: res.Header, + HTTPStatusCode: res.StatusCode, + }, + } + target := &ret + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { + return nil, err + } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.reservations.setIamPolicy", "response", internallog.HTTPResponse(res, b)) + return ret, nil +} + +type ReservationsTestIamPermissionsCall struct { + s *Service + project string + zone string + resource string + testpermissionsrequest *TestPermissionsRequest + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header +} + +// TestIamPermissions: Returns permissions that a caller has on the specified +// resource. +// +// - project: Project ID for this request. +// - resource: Name or id of the resource for this request. +// - zone: The name of the zone for this request. +func (r *ReservationsService) TestIamPermissions(project string, zone string, resource string, testpermissionsrequest *TestPermissionsRequest) *ReservationsTestIamPermissionsCall { + c := &ReservationsTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)} + c.project = project + c.zone = zone + c.resource = resource + c.testpermissionsrequest = testpermissionsrequest + return c +} + +// Fields allows partial responses to be retrieved. See +// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more +// details. +func (c *ReservationsTestIamPermissionsCall) Fields(s ...googleapi.Field) *ReservationsTestIamPermissionsCall { + c.urlParams_.Set("fields", googleapi.CombineFields(s)) + return c +} + +// Context sets the context to be used in this call's Do method. +func (c *ReservationsTestIamPermissionsCall) Context(ctx context.Context) *ReservationsTestIamPermissionsCall { + c.ctx_ = ctx + return c +} + +// Header returns a http.Header that can be modified by the caller to add +// headers to the request. +func (c *ReservationsTestIamPermissionsCall) Header() http.Header { + if c.header_ == nil { + c.header_ = make(http.Header) + } + return c.header_ +} + +func (c *ReservationsTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) + body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.testpermissionsrequest) + if err != nil { + return nil, err + } + c.urlParams_.Set("alt", alt) + c.urlParams_.Set("prettyPrint", "false") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/reservations/{resource}/testIamPermissions") + urls += "?" + c.urlParams_.Encode() + req, err := http.NewRequest("POST", urls, body) + if err != nil { + return nil, err + } + req.Header = reqHeaders + googleapi.Expand(req.URL, map[string]string{ + "project": c.project, + "zone": c.zone, + "resource": c.resource, + }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.reservations.testIamPermissions", "request", internallog.HTTPRequest(req, body.Bytes())) + return gensupport.SendRequest(c.ctx_, c.s.client, req) +} + +// Do executes the "compute.reservations.testIamPermissions" call. +// Any non-2xx status code is an error. Response headers are in either +// *TestPermissionsResponse.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 *ReservationsTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, 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, gensupport.WrapError(&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, gensupport.WrapError(err) + } + ret := &TestPermissionsResponse{ + ServerResponse: googleapi.ServerResponse{ + Header: res.Header, + HTTPStatusCode: res.StatusCode, + }, + } + target := &ret + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { + return nil, err + } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.reservations.testIamPermissions", "response", internallog.HTTPResponse(res, b)) + return ret, nil +} + +type ReservationsUpdateCall struct { + s *Service + project string + zone string + reservation string + reservation2 *Reservation + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header +} + +// Update: Update share settings of the reservation. +// +// - project: Project ID for this request. +// - reservation: Name of the reservation to update. +// - zone: Name of the zone for this request. +func (r *ReservationsService) Update(project string, zone string, reservation string, reservation2 *Reservation) *ReservationsUpdateCall { + c := &ReservationsUpdateCall{s: r.s, urlParams_: make(gensupport.URLParams)} + c.project = project + c.zone = zone + c.reservation = reservation + c.reservation2 = reservation2 + return c +} + +// Paths sets the optional parameter "paths": +func (c *ReservationsUpdateCall) Paths(paths ...string) *ReservationsUpdateCall { + c.urlParams_.SetMulti("paths", append([]string{}, paths...)) + 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 *ReservationsUpdateCall) RequestId(requestId string) *ReservationsUpdateCall { + c.urlParams_.Set("requestId", requestId) + return c +} + +// UpdateMask sets the optional parameter "updateMask": Update_mask indicates +// fields to be updated as part of this request. +func (c *ReservationsUpdateCall) UpdateMask(updateMask string) *ReservationsUpdateCall { + c.urlParams_.Set("updateMask", updateMask) + return c +} + +// Fields allows partial responses to be retrieved. See +// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more +// details. +func (c *ReservationsUpdateCall) Fields(s ...googleapi.Field) *ReservationsUpdateCall { + c.urlParams_.Set("fields", googleapi.CombineFields(s)) + return c +} + +// Context sets the context to be used in this call's Do method. +func (c *ReservationsUpdateCall) Context(ctx context.Context) *ReservationsUpdateCall { + c.ctx_ = ctx + return c +} + +// Header returns a http.Header that can be modified by the caller to add +// headers to the request. +func (c *ReservationsUpdateCall) Header() http.Header { + if c.header_ == nil { + c.header_ = make(http.Header) + } + return c.header_ +} + +func (c *ReservationsUpdateCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) + body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.reservation2) + if err != nil { + return nil, err + } + c.urlParams_.Set("alt", alt) + c.urlParams_.Set("prettyPrint", "false") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/reservations/{reservation}") + urls += "?" + c.urlParams_.Encode() + req, err := http.NewRequest("PATCH", urls, body) + if err != nil { + return nil, err + } + req.Header = reqHeaders + googleapi.Expand(req.URL, map[string]string{ + "project": c.project, + "zone": c.zone, + "reservation": c.reservation, + }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.reservations.update", "request", internallog.HTTPRequest(req, body.Bytes())) + return gensupport.SendRequest(c.ctx_, c.s.client, req) +} + +// Do executes the "compute.reservations.update" call. +// 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 *ReservationsUpdateCall) 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, gensupport.WrapError(&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, gensupport.WrapError(err) + } + ret := &Operation{ + ServerResponse: googleapi.ServerResponse{ + Header: res.Header, + HTTPStatusCode: res.StatusCode, + }, + } + target := &ret + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { + return nil, err + } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.reservations.update", "response", internallog.HTTPResponse(res, b)) + return ret, nil +} + +type ResourcePoliciesAggregatedListCall struct { + s *Service + project string + urlParams_ gensupport.URLParams + ifNoneMatch_ string + ctx_ context.Context + header_ http.Header +} + +// AggregatedList: Retrieves an aggregated list of resource policies. +// +// To prevent failure, Google recommends that you set +// the +// `returnPartialSuccess` parameter to `true`. +// +// - project: Project ID for this request. +func (r *ResourcePoliciesService) AggregatedList(project string) *ResourcePoliciesAggregatedListCall { + c := &ResourcePoliciesAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)} + c.project = project + return c +} + +// Filter sets the optional parameter "filter": A filter expression that +// filters resources listed in the response. Most +// Compute resources support two types of filter expressions: +// expressions that support regular expressions and expressions that follow +// API improvement proposal AIP-160. +// These two types of filter expressions cannot be mixed in one request. +// +// If you want to use AIP-160, your expression must specify the field name, +// an +// operator, and the value that you want to use for filtering. The value +// must be a string, a number, or a boolean. The 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`. +// +// The `:*` comparison can be used to test whether a key has been defined. +// For example, to find all objects with `owner` label +// use: +// ``` +// labels.owner:* +// ``` +// +// 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 onresource 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) +// ``` +// +// If you want to use a regular expression, use the `eq` (equal) or `ne` +// (not equal) operator against a single un-parenthesized expression with +// or +// without quotes or against multiple parenthesized expressions. +// Examples: +// +// `fieldname eq unquoted literal` +// `fieldname eq 'single quoted literal'` +// `fieldname eq "double quoted literal" +// `(fieldname1 eq literal) (fieldname2 ne "literal")` +// +// The literal value is interpreted as a regular expression using GoogleRE2 +// library syntax. +// The literal value must match the entire field. +// +// For example, to filter for instances that do not end with name +// "instance", +// you would use `name ne .*instance`. +// +// You cannot combine constraints on multiple fields using regular +// expressions. +func (c *ResourcePoliciesAggregatedListCall) Filter(filter string) *ResourcePoliciesAggregatedListCall { + c.urlParams_.Set("filter", filter) + return c +} + +// IncludeAllScopes sets the optional parameter "includeAllScopes": Indicates +// whether every visible scope for each scope type (zone, region, +// global) should be included in the response. For new resource types +// added +// after this field, the flag has no effect as new resource types will +// always +// include every visible scope for each scope type in response. For +// resource +// types which predate this field, if this flag is omitted or false, +// only +// scopes of the scope types where the resource type is expected to be +// found +// will be included. +func (c *ResourcePoliciesAggregatedListCall) IncludeAllScopes(includeAllScopes bool) *ResourcePoliciesAggregatedListCall { + c.urlParams_.Set("includeAllScopes", fmt.Sprint(includeAllScopes)) + 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 *ResourcePoliciesAggregatedListCall) MaxResults(maxResults int64) *ResourcePoliciesAggregatedListCall { + 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 *ResourcePoliciesAggregatedListCall) OrderBy(orderBy string) *ResourcePoliciesAggregatedListCall { + 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 *ResourcePoliciesAggregatedListCall) PageToken(pageToken string) *ResourcePoliciesAggregatedListCall { + c.urlParams_.Set("pageToken", pageToken) + return c +} + +// ReturnPartialSuccess sets the optional parameter "returnPartialSuccess": +// Opt-in for partial success behavior which provides partial results in +// case +// of failure. The default value is false. +// +// For example, when partial success behavior is enabled, aggregatedList for +// a +// single zone scope either returns all resources in the zone or no +// resources, +// with an error code. +func (c *ResourcePoliciesAggregatedListCall) ReturnPartialSuccess(returnPartialSuccess bool) *ResourcePoliciesAggregatedListCall { + c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess)) + return c +} + +// ServiceProjectNumber sets the optional parameter "serviceProjectNumber": The +// Shared VPC service project id or service project number for which +// aggregated list request is invoked for subnetworks list-usable api. +func (c *ResourcePoliciesAggregatedListCall) ServiceProjectNumber(serviceProjectNumber int64) *ResourcePoliciesAggregatedListCall { + c.urlParams_.Set("serviceProjectNumber", fmt.Sprint(serviceProjectNumber)) + return c +} + +// Fields allows partial responses to be retrieved. See +// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more +// details. +func (c *ResourcePoliciesAggregatedListCall) Fields(s ...googleapi.Field) *ResourcePoliciesAggregatedListCall { + c.urlParams_.Set("fields", googleapi.CombineFields(s)) + return c +} + +// IfNoneMatch sets an 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. +func (c *ResourcePoliciesAggregatedListCall) IfNoneMatch(entityTag string) *ResourcePoliciesAggregatedListCall { + c.ifNoneMatch_ = entityTag + return c +} + +// Context sets the context to be used in this call's Do method. +func (c *ResourcePoliciesAggregatedListCall) Context(ctx context.Context) *ResourcePoliciesAggregatedListCall { + c.ctx_ = ctx + return c +} + +// Header returns a http.Header that can be modified by the caller to add +// headers to the request. +func (c *ResourcePoliciesAggregatedListCall) Header() http.Header { + if c.header_ == nil { + c.header_ = make(http.Header) + } + return c.header_ +} + +func (c *ResourcePoliciesAggregatedListCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) + if c.ifNoneMatch_ != "" { + reqHeaders.Set("If-None-Match", c.ifNoneMatch_) + } + c.urlParams_.Set("alt", alt) + c.urlParams_.Set("prettyPrint", "false") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/aggregated/resourcePolicies") + urls += "?" + c.urlParams_.Encode() + req, err := http.NewRequest("GET", urls, nil) + if err != nil { + return nil, err + } + req.Header = reqHeaders + googleapi.Expand(req.URL, map[string]string{ + "project": c.project, + }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.resourcePolicies.aggregatedList", "request", internallog.HTTPRequest(req, nil)) + return gensupport.SendRequest(c.ctx_, c.s.client, req) +} + +// Do executes the "compute.resourcePolicies.aggregatedList" call. +// Any non-2xx status code is an error. Response headers are in either +// *ResourcePolicyAggregatedList.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 *ResourcePoliciesAggregatedListCall) Do(opts ...googleapi.CallOption) (*ResourcePolicyAggregatedList, 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, gensupport.WrapError(&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, gensupport.WrapError(err) + } + ret := &ResourcePolicyAggregatedList{ + ServerResponse: googleapi.ServerResponse{ + Header: res.Header, + HTTPStatusCode: res.StatusCode, + }, + } + target := &ret + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { + return nil, err + } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.resourcePolicies.aggregatedList", "response", internallog.HTTPResponse(res, b)) + return ret, nil +} + +// 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 *ResourcePoliciesAggregatedListCall) Pages(ctx context.Context, f func(*ResourcePolicyAggregatedList) error) error { + c.ctx_ = ctx + defer c.PageToken(c.urlParams_.Get("pageToken")) + 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) + } +} + +type ResourcePoliciesDeleteCall struct { + s *Service + project string + region string + resourcePolicy string + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header +} + +// Delete: Deletes the specified resource policy. +// +// - project: Project ID for this request. +// - region: Name of the region for this request. +// - resourcePolicy: Name of the resource policy to delete. +func (r *ResourcePoliciesService) Delete(project string, region string, resourcePolicy string) *ResourcePoliciesDeleteCall { + c := &ResourcePoliciesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)} + c.project = project + c.region = region + c.resourcePolicy = resourcePolicy + 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 *ResourcePoliciesDeleteCall) RequestId(requestId string) *ResourcePoliciesDeleteCall { + 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 +// details. +func (c *ResourcePoliciesDeleteCall) Fields(s ...googleapi.Field) *ResourcePoliciesDeleteCall { + c.urlParams_.Set("fields", googleapi.CombineFields(s)) + return c +} + +// Context sets the context to be used in this call's Do method. +func (c *ResourcePoliciesDeleteCall) Context(ctx context.Context) *ResourcePoliciesDeleteCall { + c.ctx_ = ctx + return c +} + +// Header returns a http.Header that can be modified by the caller to add +// headers to the request. +func (c *ResourcePoliciesDeleteCall) Header() http.Header { + if c.header_ == nil { + c.header_ = make(http.Header) + } + return c.header_ +} + +func (c *ResourcePoliciesDeleteCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) + c.urlParams_.Set("alt", alt) + c.urlParams_.Set("prettyPrint", "false") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/resourcePolicies/{resourcePolicy}") + urls += "?" + c.urlParams_.Encode() + req, err := http.NewRequest("DELETE", urls, nil) + if err != nil { + return nil, err + } + req.Header = reqHeaders + googleapi.Expand(req.URL, map[string]string{ + "project": c.project, + "region": c.region, + "resourcePolicy": c.resourcePolicy, + }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.resourcePolicies.delete", "request", internallog.HTTPRequest(req, nil)) + return gensupport.SendRequest(c.ctx_, c.s.client, req) +} + +// Do executes the "compute.resourcePolicies.delete" call. +// 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 *ResourcePoliciesDeleteCall) 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, gensupport.WrapError(&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, gensupport.WrapError(err) + } + ret := &Operation{ + ServerResponse: googleapi.ServerResponse{ + Header: res.Header, + HTTPStatusCode: res.StatusCode, + }, + } + target := &ret + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { + return nil, err + } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.resourcePolicies.delete", "response", internallog.HTTPResponse(res, b)) + return ret, nil +} + +type ResourcePoliciesGetCall struct { + s *Service + project string + region string + resourcePolicy string + urlParams_ gensupport.URLParams + ifNoneMatch_ string + ctx_ context.Context + header_ http.Header +} + +// Get: Retrieves all information of the specified resource policy. +// +// - project: Project ID for this request. +// - region: Name of the region for this request. +// - resourcePolicy: Name of the resource policy to retrieve. +func (r *ResourcePoliciesService) Get(project string, region string, resourcePolicy string) *ResourcePoliciesGetCall { + c := &ResourcePoliciesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)} + c.project = project + c.region = region + c.resourcePolicy = resourcePolicy + return c +} + +// Fields allows partial responses to be retrieved. See +// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more +// details. +func (c *ResourcePoliciesGetCall) Fields(s ...googleapi.Field) *ResourcePoliciesGetCall { + c.urlParams_.Set("fields", googleapi.CombineFields(s)) + return c +} + +// IfNoneMatch sets an 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. +func (c *ResourcePoliciesGetCall) IfNoneMatch(entityTag string) *ResourcePoliciesGetCall { + c.ifNoneMatch_ = entityTag + return c +} + +// Context sets the context to be used in this call's Do method. +func (c *ResourcePoliciesGetCall) Context(ctx context.Context) *ResourcePoliciesGetCall { + c.ctx_ = ctx + return c +} + +// Header returns a http.Header that can be modified by the caller to add +// headers to the request. +func (c *ResourcePoliciesGetCall) Header() http.Header { + if c.header_ == nil { + c.header_ = make(http.Header) + } + return c.header_ +} + +func (c *ResourcePoliciesGetCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) + if c.ifNoneMatch_ != "" { + reqHeaders.Set("If-None-Match", c.ifNoneMatch_) + } + c.urlParams_.Set("alt", alt) + c.urlParams_.Set("prettyPrint", "false") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/resourcePolicies/{resourcePolicy}") + urls += "?" + c.urlParams_.Encode() + req, err := http.NewRequest("GET", urls, nil) + if err != nil { + return nil, err + } + req.Header = reqHeaders + googleapi.Expand(req.URL, map[string]string{ + "project": c.project, + "region": c.region, + "resourcePolicy": c.resourcePolicy, + }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.resourcePolicies.get", "request", internallog.HTTPRequest(req, nil)) + return gensupport.SendRequest(c.ctx_, c.s.client, req) +} + +// Do executes the "compute.resourcePolicies.get" call. +// Any non-2xx status code is an error. Response headers are in either +// *ResourcePolicy.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 *ResourcePoliciesGetCall) Do(opts ...googleapi.CallOption) (*ResourcePolicy, 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, gensupport.WrapError(&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, gensupport.WrapError(err) + } + ret := &ResourcePolicy{ + ServerResponse: googleapi.ServerResponse{ + Header: res.Header, + HTTPStatusCode: res.StatusCode, + }, + } + target := &ret + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { + return nil, err + } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.resourcePolicies.get", "response", internallog.HTTPResponse(res, b)) + return ret, nil +} + +type ResourcePoliciesGetIamPolicyCall struct { + s *Service + project string + region string + resource string + urlParams_ gensupport.URLParams + ifNoneMatch_ string + ctx_ context.Context + header_ http.Header +} + +// GetIamPolicy: Gets the access control policy for a resource. May be empty if +// no such +// policy or resource exists. +// +// - project: Project ID for this request. +// - region: The name of the region for this request. +// - resource: Name or id of the resource for this request. +func (r *ResourcePoliciesService) GetIamPolicy(project string, region string, resource string) *ResourcePoliciesGetIamPolicyCall { + c := &ResourcePoliciesGetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)} + c.project = project + c.region = region + c.resource = resource + return c +} + +// OptionsRequestedPolicyVersion sets the optional parameter +// "optionsRequestedPolicyVersion": Requested IAM Policy version. +func (c *ResourcePoliciesGetIamPolicyCall) OptionsRequestedPolicyVersion(optionsRequestedPolicyVersion int64) *ResourcePoliciesGetIamPolicyCall { + c.urlParams_.Set("optionsRequestedPolicyVersion", fmt.Sprint(optionsRequestedPolicyVersion)) + return c +} + +// Fields allows partial responses to be retrieved. See +// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more +// details. +func (c *ResourcePoliciesGetIamPolicyCall) Fields(s ...googleapi.Field) *ResourcePoliciesGetIamPolicyCall { + c.urlParams_.Set("fields", googleapi.CombineFields(s)) + return c +} + +// IfNoneMatch sets an 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. +func (c *ResourcePoliciesGetIamPolicyCall) IfNoneMatch(entityTag string) *ResourcePoliciesGetIamPolicyCall { + c.ifNoneMatch_ = entityTag + return c +} + +// Context sets the context to be used in this call's Do method. +func (c *ResourcePoliciesGetIamPolicyCall) Context(ctx context.Context) *ResourcePoliciesGetIamPolicyCall { + c.ctx_ = ctx + return c +} + +// Header returns a http.Header that can be modified by the caller to add +// headers to the request. +func (c *ResourcePoliciesGetIamPolicyCall) Header() http.Header { + if c.header_ == nil { + c.header_ = make(http.Header) + } + return c.header_ +} + +func (c *ResourcePoliciesGetIamPolicyCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) + if c.ifNoneMatch_ != "" { + reqHeaders.Set("If-None-Match", c.ifNoneMatch_) + } + c.urlParams_.Set("alt", alt) + c.urlParams_.Set("prettyPrint", "false") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/resourcePolicies/{resource}/getIamPolicy") + urls += "?" + c.urlParams_.Encode() + req, err := http.NewRequest("GET", urls, nil) + if err != nil { + return nil, err + } + req.Header = reqHeaders + googleapi.Expand(req.URL, map[string]string{ + "project": c.project, + "region": c.region, + "resource": c.resource, + }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.resourcePolicies.getIamPolicy", "request", internallog.HTTPRequest(req, nil)) + return gensupport.SendRequest(c.ctx_, c.s.client, req) +} + +// Do executes the "compute.resourcePolicies.getIamPolicy" call. +// Any non-2xx status code is an error. Response headers are in either +// *Policy.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 *ResourcePoliciesGetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, 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, gensupport.WrapError(&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, gensupport.WrapError(err) + } + ret := &Policy{ + ServerResponse: googleapi.ServerResponse{ + Header: res.Header, + HTTPStatusCode: res.StatusCode, + }, + } + target := &ret + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { + return nil, err + } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.resourcePolicies.getIamPolicy", "response", internallog.HTTPResponse(res, b)) + return ret, nil +} + +type ResourcePoliciesInsertCall struct { + s *Service + project string + region string + resourcepolicy *ResourcePolicy + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header +} + +// Insert: Creates a new resource policy. +// +// - project: Project ID for this request. +// - region: Name of the region for this request. +func (r *ResourcePoliciesService) Insert(project string, region string, resourcepolicy *ResourcePolicy) *ResourcePoliciesInsertCall { + c := &ResourcePoliciesInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)} + c.project = project + c.region = region + c.resourcepolicy = resourcepolicy + 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 *ResourcePoliciesInsertCall) RequestId(requestId string) *ResourcePoliciesInsertCall { + 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 +// details. +func (c *ResourcePoliciesInsertCall) Fields(s ...googleapi.Field) *ResourcePoliciesInsertCall { + c.urlParams_.Set("fields", googleapi.CombineFields(s)) + return c +} + +// Context sets the context to be used in this call's Do method. +func (c *ResourcePoliciesInsertCall) Context(ctx context.Context) *ResourcePoliciesInsertCall { + c.ctx_ = ctx + return c +} + +// Header returns a http.Header that can be modified by the caller to add +// headers to the request. +func (c *ResourcePoliciesInsertCall) Header() http.Header { + if c.header_ == nil { + c.header_ = make(http.Header) + } + return c.header_ +} + +func (c *ResourcePoliciesInsertCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) + body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.resourcepolicy) + if err != nil { + return nil, err + } + c.urlParams_.Set("alt", alt) + c.urlParams_.Set("prettyPrint", "false") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/resourcePolicies") + urls += "?" + c.urlParams_.Encode() + req, err := http.NewRequest("POST", urls, body) + if err != nil { + return nil, err + } + req.Header = reqHeaders + googleapi.Expand(req.URL, map[string]string{ + "project": c.project, + "region": c.region, + }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.resourcePolicies.insert", "request", internallog.HTTPRequest(req, body.Bytes())) + return gensupport.SendRequest(c.ctx_, c.s.client, req) +} + +// Do executes the "compute.resourcePolicies.insert" call. +// 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 *ResourcePoliciesInsertCall) 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, gensupport.WrapError(&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, gensupport.WrapError(err) + } + ret := &Operation{ + ServerResponse: googleapi.ServerResponse{ + Header: res.Header, + HTTPStatusCode: res.StatusCode, + }, + } + target := &ret + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { + return nil, err + } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.resourcePolicies.insert", "response", internallog.HTTPResponse(res, b)) + return ret, nil +} + +type ResourcePoliciesListCall struct { + s *Service + project string + region string + urlParams_ gensupport.URLParams + ifNoneMatch_ string + ctx_ context.Context + header_ http.Header +} + +// List: A list all the resource policies that have been configured for +// the +// specified project in specified region. +// +// - project: Project ID for this request. +// - region: Name of the region for this request. +func (r *ResourcePoliciesService) List(project string, region string) *ResourcePoliciesListCall { + c := &ResourcePoliciesListCall{s: r.s, urlParams_: make(gensupport.URLParams)} + c.project = project + c.region = region + return c +} + +// Filter sets the optional parameter "filter": A filter expression that +// filters resources listed in the response. Most +// Compute resources support two types of filter expressions: +// expressions that support regular expressions and expressions that follow +// API improvement proposal AIP-160. +// These two types of filter expressions cannot be mixed in one request. +// +// If you want to use AIP-160, your expression must specify the field name, +// an +// operator, and the value that you want to use for filtering. The value +// must be a string, a number, or a boolean. The 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`. +// +// The `:*` comparison can be used to test whether a key has been defined. +// For example, to find all objects with `owner` label +// use: +// ``` +// labels.owner:* +// ``` +// +// 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 onresource 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) +// ``` +// +// If you want to use a regular expression, use the `eq` (equal) or `ne` +// (not equal) operator against a single un-parenthesized expression with +// or +// without quotes or against multiple parenthesized expressions. +// Examples: +// +// `fieldname eq unquoted literal` +// `fieldname eq 'single quoted literal'` +// `fieldname eq "double quoted literal" +// `(fieldname1 eq literal) (fieldname2 ne "literal")` +// +// The literal value is interpreted as a regular expression using GoogleRE2 +// library syntax. +// The literal value must match the entire field. +// +// For example, to filter for instances that do not end with name +// "instance", +// you would use `name ne .*instance`. +// +// You cannot combine constraints on multiple fields using regular +// expressions. +func (c *ResourcePoliciesListCall) Filter(filter string) *ResourcePoliciesListCall { + 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 *ResourcePoliciesListCall) MaxResults(maxResults int64) *ResourcePoliciesListCall { + 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 *ResourcePoliciesListCall) OrderBy(orderBy string) *ResourcePoliciesListCall { + 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 *ResourcePoliciesListCall) PageToken(pageToken string) *ResourcePoliciesListCall { + c.urlParams_.Set("pageToken", pageToken) + return c +} + +// ReturnPartialSuccess sets the optional parameter "returnPartialSuccess": +// Opt-in for partial success behavior which provides partial results in +// case +// of failure. The default value is false. +// +// For example, when partial success behavior is enabled, aggregatedList for +// a +// single zone scope either returns all resources in the zone or no +// resources, +// with an error code. +func (c *ResourcePoliciesListCall) ReturnPartialSuccess(returnPartialSuccess bool) *ResourcePoliciesListCall { + c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess)) + return c +} + +// Fields allows partial responses to be retrieved. See +// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more +// details. +func (c *ResourcePoliciesListCall) Fields(s ...googleapi.Field) *ResourcePoliciesListCall { + c.urlParams_.Set("fields", googleapi.CombineFields(s)) + return c +} + +// IfNoneMatch sets an 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. +func (c *ResourcePoliciesListCall) IfNoneMatch(entityTag string) *ResourcePoliciesListCall { + c.ifNoneMatch_ = entityTag + return c +} + +// Context sets the context to be used in this call's Do method. +func (c *ResourcePoliciesListCall) Context(ctx context.Context) *ResourcePoliciesListCall { + c.ctx_ = ctx + return c +} + +// Header returns a http.Header that can be modified by the caller to add +// headers to the request. +func (c *ResourcePoliciesListCall) Header() http.Header { + if c.header_ == nil { + c.header_ = make(http.Header) + } + return c.header_ +} + +func (c *ResourcePoliciesListCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) + if c.ifNoneMatch_ != "" { + reqHeaders.Set("If-None-Match", c.ifNoneMatch_) + } + c.urlParams_.Set("alt", alt) + c.urlParams_.Set("prettyPrint", "false") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/resourcePolicies") + urls += "?" + c.urlParams_.Encode() + req, err := http.NewRequest("GET", urls, nil) + if err != nil { + return nil, err + } + req.Header = reqHeaders + googleapi.Expand(req.URL, map[string]string{ + "project": c.project, + "region": c.region, + }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.resourcePolicies.list", "request", internallog.HTTPRequest(req, nil)) + return gensupport.SendRequest(c.ctx_, c.s.client, req) +} + +// Do executes the "compute.resourcePolicies.list" call. +// Any non-2xx status code is an error. Response headers are in either +// *ResourcePolicyList.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 *ResourcePoliciesListCall) Do(opts ...googleapi.CallOption) (*ResourcePolicyList, 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, gensupport.WrapError(&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, gensupport.WrapError(err) + } + ret := &ResourcePolicyList{ + ServerResponse: googleapi.ServerResponse{ + Header: res.Header, + HTTPStatusCode: res.StatusCode, + }, + } + target := &ret + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { + return nil, err + } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.resourcePolicies.list", "response", internallog.HTTPResponse(res, b)) + return ret, nil +} + +// 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 *ResourcePoliciesListCall) Pages(ctx context.Context, f func(*ResourcePolicyList) error) error { + c.ctx_ = ctx + defer c.PageToken(c.urlParams_.Get("pageToken")) + 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) + } +} + +type ResourcePoliciesPatchCall struct { + s *Service + project string + region string + resourcePolicy string + resourcepolicy *ResourcePolicy + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header +} + +// Patch: Modify the specified resource policy. +// +// - project: Project ID for this request. +// - region: Name of the region for this request. +// - resourcePolicy: Id of the resource policy to patch. +func (r *ResourcePoliciesService) Patch(project string, region string, resourcePolicy string, resourcepolicy *ResourcePolicy) *ResourcePoliciesPatchCall { + c := &ResourcePoliciesPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)} + c.project = project + c.region = region + c.resourcePolicy = resourcePolicy + c.resourcepolicy = resourcepolicy + 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 *ResourcePoliciesPatchCall) RequestId(requestId string) *ResourcePoliciesPatchCall { + c.urlParams_.Set("requestId", requestId) + return c +} + +// UpdateMask sets the optional parameter "updateMask": update_mask indicates +// fields to be updated as part of this request. +func (c *ResourcePoliciesPatchCall) UpdateMask(updateMask string) *ResourcePoliciesPatchCall { + c.urlParams_.Set("updateMask", updateMask) + return c +} + +// Fields allows partial responses to be retrieved. See +// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more +// details. +func (c *ResourcePoliciesPatchCall) Fields(s ...googleapi.Field) *ResourcePoliciesPatchCall { + c.urlParams_.Set("fields", googleapi.CombineFields(s)) + return c +} + +// Context sets the context to be used in this call's Do method. +func (c *ResourcePoliciesPatchCall) Context(ctx context.Context) *ResourcePoliciesPatchCall { + c.ctx_ = ctx + return c +} + +// Header returns a http.Header that can be modified by the caller to add +// headers to the request. +func (c *ResourcePoliciesPatchCall) Header() http.Header { + if c.header_ == nil { + c.header_ = make(http.Header) + } + return c.header_ +} + +func (c *ResourcePoliciesPatchCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) + body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.resourcepolicy) + if err != nil { + return nil, err + } + c.urlParams_.Set("alt", alt) + c.urlParams_.Set("prettyPrint", "false") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/resourcePolicies/{resourcePolicy}") + urls += "?" + c.urlParams_.Encode() + req, err := http.NewRequest("PATCH", urls, body) + if err != nil { + return nil, err + } + req.Header = reqHeaders + googleapi.Expand(req.URL, map[string]string{ + "project": c.project, + "region": c.region, + "resourcePolicy": c.resourcePolicy, + }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.resourcePolicies.patch", "request", internallog.HTTPRequest(req, body.Bytes())) + return gensupport.SendRequest(c.ctx_, c.s.client, req) +} + +// Do executes the "compute.resourcePolicies.patch" call. +// 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 *ResourcePoliciesPatchCall) 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, gensupport.WrapError(&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, gensupport.WrapError(err) + } + ret := &Operation{ + ServerResponse: googleapi.ServerResponse{ + Header: res.Header, + HTTPStatusCode: res.StatusCode, + }, + } + target := &ret + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { + return nil, err + } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.resourcePolicies.patch", "response", internallog.HTTPResponse(res, b)) + return ret, nil +} + +type ResourcePoliciesSetIamPolicyCall struct { + s *Service + project string + region string + resource string + regionsetpolicyrequest *RegionSetPolicyRequest + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header +} + +// SetIamPolicy: Sets the access control policy on the specified +// resource. +// Replaces any existing policy. +// +// - project: Project ID for this request. +// - region: The name of the region for this request. +// - resource: Name or id of the resource for this request. +func (r *ResourcePoliciesService) SetIamPolicy(project string, region string, resource string, regionsetpolicyrequest *RegionSetPolicyRequest) *ResourcePoliciesSetIamPolicyCall { + c := &ResourcePoliciesSetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)} + c.project = project + c.region = region + c.resource = resource + c.regionsetpolicyrequest = regionsetpolicyrequest + return c +} + +// Fields allows partial responses to be retrieved. See +// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more +// details. +func (c *ResourcePoliciesSetIamPolicyCall) Fields(s ...googleapi.Field) *ResourcePoliciesSetIamPolicyCall { + c.urlParams_.Set("fields", googleapi.CombineFields(s)) + return c +} + +// Context sets the context to be used in this call's Do method. +func (c *ResourcePoliciesSetIamPolicyCall) Context(ctx context.Context) *ResourcePoliciesSetIamPolicyCall { + c.ctx_ = ctx + return c +} + +// Header returns a http.Header that can be modified by the caller to add +// headers to the request. +func (c *ResourcePoliciesSetIamPolicyCall) Header() http.Header { + if c.header_ == nil { + c.header_ = make(http.Header) + } + return c.header_ +} + +func (c *ResourcePoliciesSetIamPolicyCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) + body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.regionsetpolicyrequest) + if err != nil { + return nil, err + } + c.urlParams_.Set("alt", alt) + c.urlParams_.Set("prettyPrint", "false") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/resourcePolicies/{resource}/setIamPolicy") + urls += "?" + c.urlParams_.Encode() + req, err := http.NewRequest("POST", urls, body) + if err != nil { + return nil, err + } + req.Header = reqHeaders + googleapi.Expand(req.URL, map[string]string{ + "project": c.project, + "region": c.region, + "resource": c.resource, + }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.resourcePolicies.setIamPolicy", "request", internallog.HTTPRequest(req, body.Bytes())) + return gensupport.SendRequest(c.ctx_, c.s.client, req) +} + +// Do executes the "compute.resourcePolicies.setIamPolicy" call. +// Any non-2xx status code is an error. Response headers are in either +// *Policy.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 *ResourcePoliciesSetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, 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, gensupport.WrapError(&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, gensupport.WrapError(err) + } + ret := &Policy{ + ServerResponse: googleapi.ServerResponse{ + Header: res.Header, + HTTPStatusCode: res.StatusCode, + }, + } + target := &ret + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { + return nil, err + } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.resourcePolicies.setIamPolicy", "response", internallog.HTTPResponse(res, b)) + return ret, nil +} + +type ResourcePoliciesTestIamPermissionsCall struct { + s *Service + project string + region string + resource string + testpermissionsrequest *TestPermissionsRequest + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header +} + +// TestIamPermissions: Returns permissions that a caller has on the specified +// resource. +// +// - project: Project ID for this request. +// - region: The name of the region for this request. +// - resource: Name or id of the resource for this request. +func (r *ResourcePoliciesService) TestIamPermissions(project string, region string, resource string, testpermissionsrequest *TestPermissionsRequest) *ResourcePoliciesTestIamPermissionsCall { + c := &ResourcePoliciesTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)} + c.project = project + c.region = region + c.resource = resource + c.testpermissionsrequest = testpermissionsrequest + return c +} + +// Fields allows partial responses to be retrieved. See +// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more +// details. +func (c *ResourcePoliciesTestIamPermissionsCall) Fields(s ...googleapi.Field) *ResourcePoliciesTestIamPermissionsCall { + c.urlParams_.Set("fields", googleapi.CombineFields(s)) + return c +} + +// Context sets the context to be used in this call's Do method. +func (c *ResourcePoliciesTestIamPermissionsCall) Context(ctx context.Context) *ResourcePoliciesTestIamPermissionsCall { + c.ctx_ = ctx + return c +} + +// Header returns a http.Header that can be modified by the caller to add +// headers to the request. +func (c *ResourcePoliciesTestIamPermissionsCall) Header() http.Header { + if c.header_ == nil { + c.header_ = make(http.Header) + } + return c.header_ +} + +func (c *ResourcePoliciesTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) + body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.testpermissionsrequest) + if err != nil { + return nil, err + } + c.urlParams_.Set("alt", alt) + c.urlParams_.Set("prettyPrint", "false") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/resourcePolicies/{resource}/testIamPermissions") + urls += "?" + c.urlParams_.Encode() + req, err := http.NewRequest("POST", urls, body) + if err != nil { + return nil, err + } + req.Header = reqHeaders + googleapi.Expand(req.URL, map[string]string{ + "project": c.project, + "region": c.region, + "resource": c.resource, + }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.resourcePolicies.testIamPermissions", "request", internallog.HTTPRequest(req, body.Bytes())) + return gensupport.SendRequest(c.ctx_, c.s.client, req) +} + +// Do executes the "compute.resourcePolicies.testIamPermissions" call. +// Any non-2xx status code is an error. Response headers are in either +// *TestPermissionsResponse.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 *ResourcePoliciesTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, 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, gensupport.WrapError(&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, gensupport.WrapError(err) + } + ret := &TestPermissionsResponse{ + ServerResponse: googleapi.ServerResponse{ + Header: res.Header, + HTTPStatusCode: res.StatusCode, + }, + } + target := &ret + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { + return nil, err + } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.resourcePolicies.testIamPermissions", "response", internallog.HTTPResponse(res, b)) + return ret, nil +} + +type RolloutPlansDeleteCall struct { + s *Service + project string + rolloutPlan string + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header +} + +// Delete: Deletes a RolloutPlan. +// +// - project: Project ID for this request. +// - rolloutPlan: Name of the RolloutPlan resource to delete. +func (r *RolloutPlansService) Delete(project string, rolloutPlan string) *RolloutPlansDeleteCall { + c := &RolloutPlansDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)} + c.project = project + c.rolloutPlan = rolloutPlan + 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 *RolloutPlansDeleteCall) RequestId(requestId string) *RolloutPlansDeleteCall { + 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 +// details. +func (c *RolloutPlansDeleteCall) Fields(s ...googleapi.Field) *RolloutPlansDeleteCall { + c.urlParams_.Set("fields", googleapi.CombineFields(s)) + return c +} + +// Context sets the context to be used in this call's Do method. +func (c *RolloutPlansDeleteCall) Context(ctx context.Context) *RolloutPlansDeleteCall { + c.ctx_ = ctx + return c +} + +// Header returns a http.Header that can be modified by the caller to add +// headers to the request. +func (c *RolloutPlansDeleteCall) Header() http.Header { + if c.header_ == nil { + c.header_ = make(http.Header) + } + return c.header_ +} + +func (c *RolloutPlansDeleteCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) + c.urlParams_.Set("alt", alt) + c.urlParams_.Set("prettyPrint", "false") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/rolloutPlans/{rolloutPlan}") + urls += "?" + c.urlParams_.Encode() + req, err := http.NewRequest("DELETE", urls, nil) + if err != nil { + return nil, err + } + req.Header = reqHeaders + googleapi.Expand(req.URL, map[string]string{ + "project": c.project, + "rolloutPlan": c.rolloutPlan, + }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.rolloutPlans.delete", "request", internallog.HTTPRequest(req, nil)) + return gensupport.SendRequest(c.ctx_, c.s.client, req) +} + +// Do executes the "compute.rolloutPlans.delete" call. +// 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 *RolloutPlansDeleteCall) 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, gensupport.WrapError(&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, gensupport.WrapError(err) + } + ret := &Operation{ + ServerResponse: googleapi.ServerResponse{ + Header: res.Header, + HTTPStatusCode: res.StatusCode, + }, + } + target := &ret + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { + return nil, err + } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.rolloutPlans.delete", "response", internallog.HTTPResponse(res, b)) + return ret, nil +} + +type RolloutPlansGetCall struct { + s *Service + project string + rolloutPlan string + urlParams_ gensupport.URLParams + ifNoneMatch_ string + ctx_ context.Context + header_ http.Header +} + +// Get: Gets details of a single project-scoped RolloutPlan. +// +// - project: Project ID for this request. +// - rolloutPlan: Name of the persistent rollout plan to return. +func (r *RolloutPlansService) Get(project string, rolloutPlan string) *RolloutPlansGetCall { + c := &RolloutPlansGetCall{s: r.s, urlParams_: make(gensupport.URLParams)} + c.project = project + c.rolloutPlan = rolloutPlan + return c +} + +// Fields allows partial responses to be retrieved. See +// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more +// details. +func (c *RolloutPlansGetCall) Fields(s ...googleapi.Field) *RolloutPlansGetCall { + c.urlParams_.Set("fields", googleapi.CombineFields(s)) + return c +} + +// IfNoneMatch sets an 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. +func (c *RolloutPlansGetCall) IfNoneMatch(entityTag string) *RolloutPlansGetCall { + c.ifNoneMatch_ = entityTag + return c +} + +// Context sets the context to be used in this call's Do method. +func (c *RolloutPlansGetCall) Context(ctx context.Context) *RolloutPlansGetCall { + c.ctx_ = ctx + return c +} + +// Header returns a http.Header that can be modified by the caller to add +// headers to the request. +func (c *RolloutPlansGetCall) Header() http.Header { + if c.header_ == nil { + c.header_ = make(http.Header) + } + return c.header_ +} + +func (c *RolloutPlansGetCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) + if c.ifNoneMatch_ != "" { + reqHeaders.Set("If-None-Match", c.ifNoneMatch_) + } + c.urlParams_.Set("alt", alt) + c.urlParams_.Set("prettyPrint", "false") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/rolloutPlans/{rolloutPlan}") + urls += "?" + c.urlParams_.Encode() + req, err := http.NewRequest("GET", urls, nil) + if err != nil { + return nil, err + } + req.Header = reqHeaders + googleapi.Expand(req.URL, map[string]string{ + "project": c.project, + "rolloutPlan": c.rolloutPlan, + }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.rolloutPlans.get", "request", internallog.HTTPRequest(req, nil)) + return gensupport.SendRequest(c.ctx_, c.s.client, req) +} + +// Do executes the "compute.rolloutPlans.get" call. +// Any non-2xx status code is an error. Response headers are in either +// *RolloutPlan.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 *RolloutPlansGetCall) Do(opts ...googleapi.CallOption) (*RolloutPlan, 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, gensupport.WrapError(&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, gensupport.WrapError(err) + } + ret := &RolloutPlan{ + ServerResponse: googleapi.ServerResponse{ + Header: res.Header, + HTTPStatusCode: res.StatusCode, + }, + } + target := &ret + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { + return nil, err + } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.rolloutPlans.get", "response", internallog.HTTPResponse(res, b)) + return ret, nil +} + +type RolloutPlansInsertCall struct { + s *Service + project string + rolloutplan *RolloutPlan + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header +} + +// Insert: Creates a new RolloutPlan in a given project and location. +// +// - project: Project ID for this request. +func (r *RolloutPlansService) Insert(project string, rolloutplan *RolloutPlan) *RolloutPlansInsertCall { + c := &RolloutPlansInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)} + c.project = project + c.rolloutplan = rolloutplan + 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 *RolloutPlansInsertCall) RequestId(requestId string) *RolloutPlansInsertCall { + 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 +// details. +func (c *RolloutPlansInsertCall) Fields(s ...googleapi.Field) *RolloutPlansInsertCall { + c.urlParams_.Set("fields", googleapi.CombineFields(s)) + return c +} + +// Context sets the context to be used in this call's Do method. +func (c *RolloutPlansInsertCall) Context(ctx context.Context) *RolloutPlansInsertCall { + c.ctx_ = ctx + return c +} + +// Header returns a http.Header that can be modified by the caller to add +// headers to the request. +func (c *RolloutPlansInsertCall) Header() http.Header { + if c.header_ == nil { + c.header_ = make(http.Header) + } + return c.header_ +} + +func (c *RolloutPlansInsertCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) + body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.rolloutplan) + if err != nil { + return nil, err + } + c.urlParams_.Set("alt", alt) + c.urlParams_.Set("prettyPrint", "false") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/rolloutPlans") + urls += "?" + c.urlParams_.Encode() + req, err := http.NewRequest("POST", urls, body) + if err != nil { + return nil, err + } + req.Header = reqHeaders + googleapi.Expand(req.URL, map[string]string{ + "project": c.project, + }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.rolloutPlans.insert", "request", internallog.HTTPRequest(req, body.Bytes())) + return gensupport.SendRequest(c.ctx_, c.s.client, req) +} + +// Do executes the "compute.rolloutPlans.insert" call. +// 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 *RolloutPlansInsertCall) 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, gensupport.WrapError(&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, gensupport.WrapError(err) + } + ret := &Operation{ + ServerResponse: googleapi.ServerResponse{ + Header: res.Header, + HTTPStatusCode: res.StatusCode, + }, + } + target := &ret + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { + return nil, err + } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.rolloutPlans.insert", "response", internallog.HTTPResponse(res, b)) + return ret, nil +} + +type RolloutPlansListCall struct { + s *Service + project string + urlParams_ gensupport.URLParams + ifNoneMatch_ string + ctx_ context.Context + header_ http.Header +} + +// List: Lists RolloutPlans in a given project and location. +// +// - project: Project ID for this request. +func (r *RolloutPlansService) List(project string) *RolloutPlansListCall { + c := &RolloutPlansListCall{s: r.s, urlParams_: make(gensupport.URLParams)} + c.project = project + return c +} + +// Filter sets the optional parameter "filter": A filter expression that +// filters resources listed in the response. Most +// Compute resources support two types of filter expressions: +// expressions that support regular expressions and expressions that follow +// API improvement proposal AIP-160. +// These two types of filter expressions cannot be mixed in one request. +// +// If you want to use AIP-160, your expression must specify the field name, +// an +// operator, and the value that you want to use for filtering. The value +// must be a string, a number, or a boolean. The 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`. +// +// The `:*` comparison can be used to test whether a key has been defined. +// For example, to find all objects with `owner` label +// use: +// ``` +// labels.owner:* +// ``` +// +// 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 onresource 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) +// ``` +// +// If you want to use a regular expression, use the `eq` (equal) or `ne` +// (not equal) operator against a single un-parenthesized expression with +// or +// without quotes or against multiple parenthesized expressions. +// Examples: +// +// `fieldname eq unquoted literal` +// `fieldname eq 'single quoted literal'` +// `fieldname eq "double quoted literal" +// `(fieldname1 eq literal) (fieldname2 ne "literal")` +// +// The literal value is interpreted as a regular expression using GoogleRE2 +// library syntax. +// The literal value must match the entire field. +// +// For example, to filter for instances that do not end with name +// "instance", +// you would use `name ne .*instance`. +// +// You cannot combine constraints on multiple fields using regular +// expressions. +func (c *RolloutPlansListCall) Filter(filter string) *RolloutPlansListCall { + 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 *RolloutPlansListCall) MaxResults(maxResults int64) *RolloutPlansListCall { + 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 *RolloutPlansListCall) OrderBy(orderBy string) *RolloutPlansListCall { + 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 *RolloutPlansListCall) PageToken(pageToken string) *RolloutPlansListCall { + c.urlParams_.Set("pageToken", pageToken) + return c +} + +// ReturnPartialSuccess sets the optional parameter "returnPartialSuccess": +// Opt-in for partial success behavior which provides partial results in +// case +// of failure. The default value is false. +// +// For example, when partial success behavior is enabled, aggregatedList for +// a +// single zone scope either returns all resources in the zone or no +// resources, +// with an error code. +func (c *RolloutPlansListCall) ReturnPartialSuccess(returnPartialSuccess bool) *RolloutPlansListCall { + c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess)) + return c +} + +// Fields allows partial responses to be retrieved. See +// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more +// details. +func (c *RolloutPlansListCall) Fields(s ...googleapi.Field) *RolloutPlansListCall { + c.urlParams_.Set("fields", googleapi.CombineFields(s)) + return c +} + +// IfNoneMatch sets an 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. +func (c *RolloutPlansListCall) IfNoneMatch(entityTag string) *RolloutPlansListCall { + c.ifNoneMatch_ = entityTag + return c +} + +// Context sets the context to be used in this call's Do method. +func (c *RolloutPlansListCall) Context(ctx context.Context) *RolloutPlansListCall { + c.ctx_ = ctx + return c +} + +// Header returns a http.Header that can be modified by the caller to add +// headers to the request. +func (c *RolloutPlansListCall) Header() http.Header { + if c.header_ == nil { + c.header_ = make(http.Header) + } + return c.header_ +} + +func (c *RolloutPlansListCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) + if c.ifNoneMatch_ != "" { + reqHeaders.Set("If-None-Match", c.ifNoneMatch_) + } + c.urlParams_.Set("alt", alt) + c.urlParams_.Set("prettyPrint", "false") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/rolloutPlans") + urls += "?" + c.urlParams_.Encode() + req, err := http.NewRequest("GET", urls, nil) + if err != nil { + return nil, err + } + req.Header = reqHeaders + googleapi.Expand(req.URL, map[string]string{ + "project": c.project, + }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.rolloutPlans.list", "request", internallog.HTTPRequest(req, nil)) + return gensupport.SendRequest(c.ctx_, c.s.client, req) +} + +// Do executes the "compute.rolloutPlans.list" call. +// Any non-2xx status code is an error. Response headers are in either +// *RolloutPlansListResponse.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 *RolloutPlansListCall) Do(opts ...googleapi.CallOption) (*RolloutPlansListResponse, 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, gensupport.WrapError(&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, gensupport.WrapError(err) + } + ret := &RolloutPlansListResponse{ + ServerResponse: googleapi.ServerResponse{ + Header: res.Header, + HTTPStatusCode: res.StatusCode, + }, + } + target := &ret + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { + return nil, err + } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.rolloutPlans.list", "response", internallog.HTTPResponse(res, b)) + return ret, nil +} + +// 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 *RolloutPlansListCall) Pages(ctx context.Context, f func(*RolloutPlansListResponse) error) error { + c.ctx_ = ctx + defer c.PageToken(c.urlParams_.Get("pageToken")) + 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) + } +} + +type RolloutsAdvanceCall struct { + s *Service + project string + rollout string + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header +} + +// Advance: Advances a Rollout to the next wave, or completes it if no waves +// remain. +// +// - project: Project ID for this request. +// - rollout: Name of the Rollout resource to advance. +func (r *RolloutsService) Advance(project string, rollout string) *RolloutsAdvanceCall { + c := &RolloutsAdvanceCall{s: r.s, urlParams_: make(gensupport.URLParams)} + c.project = project + c.rollout = rollout + return c +} + +// CurrentWaveNumber sets the optional parameter "currentWaveNumber": Required. +// Wave number of the current wave. +func (c *RolloutsAdvanceCall) CurrentWaveNumber(currentWaveNumber int64) *RolloutsAdvanceCall { + c.urlParams_.Set("currentWaveNumber", fmt.Sprint(currentWaveNumber)) + 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 *RolloutsAdvanceCall) RequestId(requestId string) *RolloutsAdvanceCall { + 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 +// details. +func (c *RolloutsAdvanceCall) Fields(s ...googleapi.Field) *RolloutsAdvanceCall { + c.urlParams_.Set("fields", googleapi.CombineFields(s)) + return c +} + +// Context sets the context to be used in this call's Do method. +func (c *RolloutsAdvanceCall) Context(ctx context.Context) *RolloutsAdvanceCall { + c.ctx_ = ctx + return c +} + +// Header returns a http.Header that can be modified by the caller to add +// headers to the request. +func (c *RolloutsAdvanceCall) Header() http.Header { + if c.header_ == nil { + c.header_ = make(http.Header) + } + return c.header_ +} + +func (c *RolloutsAdvanceCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) + c.urlParams_.Set("alt", alt) + c.urlParams_.Set("prettyPrint", "false") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/rollouts/{rollout}/advance") + urls += "?" + c.urlParams_.Encode() + req, err := http.NewRequest("POST", urls, nil) + if err != nil { + return nil, err + } + req.Header = reqHeaders + googleapi.Expand(req.URL, map[string]string{ + "project": c.project, + "rollout": c.rollout, + }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.rollouts.advance", "request", internallog.HTTPRequest(req, nil)) + return gensupport.SendRequest(c.ctx_, c.s.client, req) +} + +// Do executes the "compute.rollouts.advance" call. +// 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 *RolloutsAdvanceCall) 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, gensupport.WrapError(&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, gensupport.WrapError(err) + } + ret := &Operation{ + ServerResponse: googleapi.ServerResponse{ + Header: res.Header, + HTTPStatusCode: res.StatusCode, + }, + } + target := &ret + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { + return nil, err + } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.rollouts.advance", "response", internallog.HTTPResponse(res, b)) + return ret, nil +} + +type RolloutsCancelCall struct { + s *Service + project string + rollout string + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header +} + +// Cancel: Cancels a Rollout. +// +// - project: Project ID for this request. +// - rollout: Name of the Rollout resource to cancel. +func (r *RolloutsService) Cancel(project string, rollout string) *RolloutsCancelCall { + c := &RolloutsCancelCall{s: r.s, urlParams_: make(gensupport.URLParams)} + c.project = project + c.rollout = rollout + 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 *RolloutsCancelCall) RequestId(requestId string) *RolloutsCancelCall { + c.urlParams_.Set("requestId", requestId) + return c +} + +// Rollback sets the optional parameter "rollback": If true, then the ongoing +// rollout must be rolled back. Else, just cancel +// the rollout without taking any further actions. Note that products +// must +// support at least one of these options, however, it does not need to +// support +// both. +func (c *RolloutsCancelCall) Rollback(rollback bool) *RolloutsCancelCall { + c.urlParams_.Set("rollback", fmt.Sprint(rollback)) + return c +} + +// Fields allows partial responses to be retrieved. See +// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more +// details. +func (c *RolloutsCancelCall) Fields(s ...googleapi.Field) *RolloutsCancelCall { + c.urlParams_.Set("fields", googleapi.CombineFields(s)) + return c +} + +// Context sets the context to be used in this call's Do method. +func (c *RolloutsCancelCall) Context(ctx context.Context) *RolloutsCancelCall { + c.ctx_ = ctx + return c +} + +// Header returns a http.Header that can be modified by the caller to add +// headers to the request. +func (c *RolloutsCancelCall) Header() http.Header { + if c.header_ == nil { + c.header_ = make(http.Header) + } + return c.header_ +} + +func (c *RolloutsCancelCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) + c.urlParams_.Set("alt", alt) + c.urlParams_.Set("prettyPrint", "false") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/rollouts/{rollout}") + urls += "?" + c.urlParams_.Encode() + req, err := http.NewRequest("PATCH", urls, nil) + if err != nil { + return nil, err + } + req.Header = reqHeaders + googleapi.Expand(req.URL, map[string]string{ + "project": c.project, + "rollout": c.rollout, + }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.rollouts.cancel", "request", internallog.HTTPRequest(req, nil)) + return gensupport.SendRequest(c.ctx_, c.s.client, req) +} + +// Do executes the "compute.rollouts.cancel" call. +// 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 *RolloutsCancelCall) 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, gensupport.WrapError(&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, gensupport.WrapError(err) + } + ret := &Operation{ + ServerResponse: googleapi.ServerResponse{ + Header: res.Header, + HTTPStatusCode: res.StatusCode, + }, + } + target := &ret + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { + return nil, err + } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.rollouts.cancel", "response", internallog.HTTPResponse(res, b)) + return ret, nil +} + +type RolloutsDeleteCall struct { + s *Service + project string + rollout string + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header +} + +// Delete: Deletes a Rollout. +// +// - project: Project ID for this request. +// - rollout: Name of the Rollout resource to delete. +func (r *RolloutsService) Delete(project string, rollout string) *RolloutsDeleteCall { + c := &RolloutsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)} + c.project = project + c.rollout = rollout + 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 *RolloutsDeleteCall) RequestId(requestId string) *RolloutsDeleteCall { + 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 +// details. +func (c *RolloutsDeleteCall) Fields(s ...googleapi.Field) *RolloutsDeleteCall { + c.urlParams_.Set("fields", googleapi.CombineFields(s)) + return c +} + +// Context sets the context to be used in this call's Do method. +func (c *RolloutsDeleteCall) Context(ctx context.Context) *RolloutsDeleteCall { + c.ctx_ = ctx + return c +} + +// Header returns a http.Header that can be modified by the caller to add +// headers to the request. +func (c *RolloutsDeleteCall) Header() http.Header { + if c.header_ == nil { + c.header_ = make(http.Header) + } + return c.header_ +} + +func (c *RolloutsDeleteCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) + c.urlParams_.Set("alt", alt) + c.urlParams_.Set("prettyPrint", "false") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/rollouts/{rollout}") + urls += "?" + c.urlParams_.Encode() + req, err := http.NewRequest("DELETE", urls, nil) + if err != nil { + return nil, err + } + req.Header = reqHeaders + googleapi.Expand(req.URL, map[string]string{ + "project": c.project, + "rollout": c.rollout, + }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.rollouts.delete", "request", internallog.HTTPRequest(req, nil)) + return gensupport.SendRequest(c.ctx_, c.s.client, req) +} + +// Do executes the "compute.rollouts.delete" call. +// 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 *RolloutsDeleteCall) 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, gensupport.WrapError(&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, gensupport.WrapError(err) + } + ret := &Operation{ + ServerResponse: googleapi.ServerResponse{ + Header: res.Header, + HTTPStatusCode: res.StatusCode, + }, + } + target := &ret + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { + return nil, err + } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.rollouts.delete", "response", internallog.HTTPResponse(res, b)) + return ret, nil +} + +type RolloutsGetCall struct { + s *Service + project string + rollout string + urlParams_ gensupport.URLParams + ifNoneMatch_ string + ctx_ context.Context + header_ http.Header +} + +// Get: Gets details of a single project-scoped Rollout. +// +// - project: Project ID for this request. +// - rollout: Name of the persistent rollout to return. +func (r *RolloutsService) Get(project string, rollout string) *RolloutsGetCall { + c := &RolloutsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)} + c.project = project + c.rollout = rollout + return c +} + +// Fields allows partial responses to be retrieved. See +// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more +// details. +func (c *RolloutsGetCall) Fields(s ...googleapi.Field) *RolloutsGetCall { + c.urlParams_.Set("fields", googleapi.CombineFields(s)) + return c +} + +// IfNoneMatch sets an 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. +func (c *RolloutsGetCall) IfNoneMatch(entityTag string) *RolloutsGetCall { + c.ifNoneMatch_ = entityTag + return c +} + +// Context sets the context to be used in this call's Do method. +func (c *RolloutsGetCall) Context(ctx context.Context) *RolloutsGetCall { + c.ctx_ = ctx + return c +} + +// Header returns a http.Header that can be modified by the caller to add +// headers to the request. +func (c *RolloutsGetCall) Header() http.Header { + if c.header_ == nil { + c.header_ = make(http.Header) + } + return c.header_ +} + +func (c *RolloutsGetCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) + if c.ifNoneMatch_ != "" { + reqHeaders.Set("If-None-Match", c.ifNoneMatch_) + } + c.urlParams_.Set("alt", alt) + c.urlParams_.Set("prettyPrint", "false") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/rollouts/{rollout}") + urls += "?" + c.urlParams_.Encode() + req, err := http.NewRequest("GET", urls, nil) + if err != nil { + return nil, err + } + req.Header = reqHeaders + googleapi.Expand(req.URL, map[string]string{ + "project": c.project, + "rollout": c.rollout, + }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.rollouts.get", "request", internallog.HTTPRequest(req, nil)) + return gensupport.SendRequest(c.ctx_, c.s.client, req) +} + +// Do executes the "compute.rollouts.get" call. +// Any non-2xx status code is an error. Response headers are in either +// *Rollout.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 *RolloutsGetCall) Do(opts ...googleapi.CallOption) (*Rollout, 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, gensupport.WrapError(&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, gensupport.WrapError(err) + } + ret := &Rollout{ + ServerResponse: googleapi.ServerResponse{ + Header: res.Header, + HTTPStatusCode: res.StatusCode, + }, + } + target := &ret + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { + return nil, err + } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.rollouts.get", "response", internallog.HTTPResponse(res, b)) + return ret, nil +} + +type RolloutsListCall struct { + s *Service + project string + urlParams_ gensupport.URLParams + ifNoneMatch_ string + ctx_ context.Context + header_ http.Header +} + +// List: Lists Rollouts in a given project and location. +// +// - project: Project ID for this request. +func (r *RolloutsService) List(project string) *RolloutsListCall { + c := &RolloutsListCall{s: r.s, urlParams_: make(gensupport.URLParams)} + c.project = project + return c +} + +// Filter sets the optional parameter "filter": A filter expression that +// filters resources listed in the response. Most +// Compute resources support two types of filter expressions: +// expressions that support regular expressions and expressions that follow +// API improvement proposal AIP-160. +// These two types of filter expressions cannot be mixed in one request. +// +// If you want to use AIP-160, your expression must specify the field name, +// an +// operator, and the value that you want to use for filtering. The value +// must be a string, a number, or a boolean. The 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`. +// +// The `:*` comparison can be used to test whether a key has been defined. +// For example, to find all objects with `owner` label +// use: +// ``` +// labels.owner:* +// ``` +// +// 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 onresource 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) +// ``` +// +// If you want to use a regular expression, use the `eq` (equal) or `ne` +// (not equal) operator against a single un-parenthesized expression with +// or +// without quotes or against multiple parenthesized expressions. +// Examples: +// +// `fieldname eq unquoted literal` +// `fieldname eq 'single quoted literal'` +// `fieldname eq "double quoted literal" +// `(fieldname1 eq literal) (fieldname2 ne "literal")` +// +// The literal value is interpreted as a regular expression using GoogleRE2 +// library syntax. +// The literal value must match the entire field. +// +// For example, to filter for instances that do not end with name +// "instance", +// you would use `name ne .*instance`. +// +// You cannot combine constraints on multiple fields using regular +// expressions. +func (c *RolloutsListCall) Filter(filter string) *RolloutsListCall { + 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 *RolloutsListCall) MaxResults(maxResults int64) *RolloutsListCall { + 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 *RolloutsListCall) OrderBy(orderBy string) *RolloutsListCall { + 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 *RolloutsListCall) PageToken(pageToken string) *RolloutsListCall { + c.urlParams_.Set("pageToken", pageToken) + return c +} + +// ReturnPartialSuccess sets the optional parameter "returnPartialSuccess": +// Opt-in for partial success behavior which provides partial results in +// case +// of failure. The default value is false. +// +// For example, when partial success behavior is enabled, aggregatedList for +// a +// single zone scope either returns all resources in the zone or no +// resources, +// with an error code. +func (c *RolloutsListCall) ReturnPartialSuccess(returnPartialSuccess bool) *RolloutsListCall { + c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess)) + return c +} + +// Fields allows partial responses to be retrieved. See +// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more +// details. +func (c *RolloutsListCall) Fields(s ...googleapi.Field) *RolloutsListCall { + c.urlParams_.Set("fields", googleapi.CombineFields(s)) + return c +} + +// IfNoneMatch sets an 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. +func (c *RolloutsListCall) IfNoneMatch(entityTag string) *RolloutsListCall { + c.ifNoneMatch_ = entityTag + return c +} + +// Context sets the context to be used in this call's Do method. +func (c *RolloutsListCall) Context(ctx context.Context) *RolloutsListCall { + c.ctx_ = ctx + return c +} + +// Header returns a http.Header that can be modified by the caller to add +// headers to the request. +func (c *RolloutsListCall) Header() http.Header { + if c.header_ == nil { + c.header_ = make(http.Header) + } + return c.header_ +} + +func (c *RolloutsListCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) + if c.ifNoneMatch_ != "" { + reqHeaders.Set("If-None-Match", c.ifNoneMatch_) + } + c.urlParams_.Set("alt", alt) + c.urlParams_.Set("prettyPrint", "false") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/rollouts") + urls += "?" + c.urlParams_.Encode() + req, err := http.NewRequest("GET", urls, nil) + if err != nil { + return nil, err + } + req.Header = reqHeaders + googleapi.Expand(req.URL, map[string]string{ + "project": c.project, + }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.rollouts.list", "request", internallog.HTTPRequest(req, nil)) + return gensupport.SendRequest(c.ctx_, c.s.client, req) +} + +// Do executes the "compute.rollouts.list" call. +// Any non-2xx status code is an error. Response headers are in either +// *RolloutsListResponse.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 *RolloutsListCall) Do(opts ...googleapi.CallOption) (*RolloutsListResponse, 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, gensupport.WrapError(&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, gensupport.WrapError(err) + } + ret := &RolloutsListResponse{ + ServerResponse: googleapi.ServerResponse{ + Header: res.Header, + HTTPStatusCode: res.StatusCode, + }, + } + target := &ret + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { + return nil, err + } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.rollouts.list", "response", internallog.HTTPResponse(res, b)) + return ret, nil +} + +// 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 *RolloutsListCall) Pages(ctx context.Context, f func(*RolloutsListResponse) error) error { + c.ctx_ = ctx + defer c.PageToken(c.urlParams_.Get("pageToken")) + 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) + } +} + +type RolloutsPauseCall struct { + s *Service + project string + rollout string + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header +} + +// Pause: Pauses a Rollout. +// +// - project: Project ID for this request. +// - rollout: Name of the Rollout resource to pause. +func (r *RolloutsService) Pause(project string, rollout string) *RolloutsPauseCall { + c := &RolloutsPauseCall{s: r.s, urlParams_: make(gensupport.URLParams)} + c.project = project + c.rollout = rollout + return c +} + +// Etag sets the optional parameter "etag": The etag of the Rollout. +// If this is provided, the request will only succeed if the etag matches +// the current etag of the Rollout. +func (c *RolloutsPauseCall) Etag(etag string) *RolloutsPauseCall { + c.urlParams_.Set("etag", etag) + 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 *RolloutsPauseCall) RequestId(requestId string) *RolloutsPauseCall { + 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 +// details. +func (c *RolloutsPauseCall) Fields(s ...googleapi.Field) *RolloutsPauseCall { + c.urlParams_.Set("fields", googleapi.CombineFields(s)) + return c +} + +// Context sets the context to be used in this call's Do method. +func (c *RolloutsPauseCall) Context(ctx context.Context) *RolloutsPauseCall { + c.ctx_ = ctx + return c +} + +// Header returns a http.Header that can be modified by the caller to add +// headers to the request. +func (c *RolloutsPauseCall) Header() http.Header { + if c.header_ == nil { + c.header_ = make(http.Header) + } + return c.header_ +} + +func (c *RolloutsPauseCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) + c.urlParams_.Set("alt", alt) + c.urlParams_.Set("prettyPrint", "false") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/rollouts/{rollout}/pause") + urls += "?" + c.urlParams_.Encode() + req, err := http.NewRequest("POST", urls, nil) + if err != nil { + return nil, err + } + req.Header = reqHeaders + googleapi.Expand(req.URL, map[string]string{ + "project": c.project, + "rollout": c.rollout, + }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.rollouts.pause", "request", internallog.HTTPRequest(req, nil)) + return gensupport.SendRequest(c.ctx_, c.s.client, req) +} + +// Do executes the "compute.rollouts.pause" call. +// 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 *RolloutsPauseCall) 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, gensupport.WrapError(&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, gensupport.WrapError(err) + } + ret := &Operation{ + ServerResponse: googleapi.ServerResponse{ + Header: res.Header, + HTTPStatusCode: res.StatusCode, + }, + } + target := &ret + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { + return nil, err + } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.rollouts.pause", "response", internallog.HTTPResponse(res, b)) + return ret, nil +} + +type RolloutsResumeCall struct { + s *Service + project string + rollout string + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header +} + +// Resume: Resumes a Rollout. +// +// - project: Project ID for this request. +// - rollout: Name of the Rollout resource to resume. +func (r *RolloutsService) Resume(project string, rollout string) *RolloutsResumeCall { + c := &RolloutsResumeCall{s: r.s, urlParams_: make(gensupport.URLParams)} + c.project = project + c.rollout = rollout + return c +} + +// Etag sets the optional parameter "etag": The etag of the Rollout. +// If this is provided, the request will only succeed if the etag matches +// the current etag of the Rollout. +func (c *RolloutsResumeCall) Etag(etag string) *RolloutsResumeCall { + c.urlParams_.Set("etag", etag) + 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 *RolloutsResumeCall) RequestId(requestId string) *RolloutsResumeCall { + 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 +// details. +func (c *RolloutsResumeCall) Fields(s ...googleapi.Field) *RolloutsResumeCall { + c.urlParams_.Set("fields", googleapi.CombineFields(s)) + return c +} + +// Context sets the context to be used in this call's Do method. +func (c *RolloutsResumeCall) Context(ctx context.Context) *RolloutsResumeCall { + c.ctx_ = ctx + return c +} + +// Header returns a http.Header that can be modified by the caller to add +// headers to the request. +func (c *RolloutsResumeCall) Header() http.Header { + if c.header_ == nil { + c.header_ = make(http.Header) + } + return c.header_ +} + +func (c *RolloutsResumeCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) + c.urlParams_.Set("alt", alt) + c.urlParams_.Set("prettyPrint", "false") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/rollouts/{rollout}/resume") + urls += "?" + c.urlParams_.Encode() + req, err := http.NewRequest("POST", urls, nil) + if err != nil { + return nil, err + } + req.Header = reqHeaders + googleapi.Expand(req.URL, map[string]string{ + "project": c.project, + "rollout": c.rollout, + }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.rollouts.resume", "request", internallog.HTTPRequest(req, nil)) + return gensupport.SendRequest(c.ctx_, c.s.client, req) +} + +// Do executes the "compute.rollouts.resume" call. +// 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 *RolloutsResumeCall) 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, gensupport.WrapError(&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, gensupport.WrapError(err) + } + ret := &Operation{ + ServerResponse: googleapi.ServerResponse{ + Header: res.Header, + HTTPStatusCode: res.StatusCode, + }, + } + target := &ret + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { + return nil, err + } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.rollouts.resume", "response", internallog.HTTPResponse(res, b)) + return ret, nil +} + +type RoutersAggregatedListCall struct { + s *Service + project string + urlParams_ gensupport.URLParams + ifNoneMatch_ string + ctx_ context.Context + header_ http.Header +} + +// AggregatedList: Retrieves an aggregated list of routers. +// +// To prevent failure, Google recommends that you set +// the +// `returnPartialSuccess` parameter to `true`. +// +// - project: Project ID for this request. +func (r *RoutersService) AggregatedList(project string) *RoutersAggregatedListCall { + c := &RoutersAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)} + c.project = project + return c +} + +// Filter sets the optional parameter "filter": A filter expression that +// filters resources listed in the response. Most +// Compute resources support two types of filter expressions: +// expressions that support regular expressions and expressions that follow +// API improvement proposal AIP-160. +// These two types of filter expressions cannot be mixed in one request. +// +// If you want to use AIP-160, your expression must specify the field name, +// an +// operator, and the value that you want to use for filtering. The value +// must be a string, a number, or a boolean. The 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`. +// +// The `:*` comparison can be used to test whether a key has been defined. +// For example, to find all objects with `owner` label +// use: +// ``` +// labels.owner:* +// ``` +// +// 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 onresource 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) +// ``` +// +// If you want to use a regular expression, use the `eq` (equal) or `ne` +// (not equal) operator against a single un-parenthesized expression with +// or +// without quotes or against multiple parenthesized expressions. +// Examples: +// +// `fieldname eq unquoted literal` +// `fieldname eq 'single quoted literal'` +// `fieldname eq "double quoted literal" +// `(fieldname1 eq literal) (fieldname2 ne "literal")` +// +// The literal value is interpreted as a regular expression using GoogleRE2 +// library syntax. +// The literal value must match the entire field. +// +// For example, to filter for instances that do not end with name +// "instance", +// you would use `name ne .*instance`. +// +// You cannot combine constraints on multiple fields using regular +// expressions. +func (c *RoutersAggregatedListCall) Filter(filter string) *RoutersAggregatedListCall { + c.urlParams_.Set("filter", filter) + return c +} + +// IncludeAllScopes sets the optional parameter "includeAllScopes": Indicates +// whether every visible scope for each scope type (zone, region, +// global) should be included in the response. For new resource types +// added +// after this field, the flag has no effect as new resource types will +// always +// include every visible scope for each scope type in response. For +// resource +// types which predate this field, if this flag is omitted or false, +// only +// scopes of the scope types where the resource type is expected to be +// found +// will be included. +func (c *RoutersAggregatedListCall) IncludeAllScopes(includeAllScopes bool) *RoutersAggregatedListCall { + c.urlParams_.Set("includeAllScopes", fmt.Sprint(includeAllScopes)) + 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 *RoutersAggregatedListCall) MaxResults(maxResults int64) *RoutersAggregatedListCall { + 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 *RoutersAggregatedListCall) OrderBy(orderBy string) *RoutersAggregatedListCall { + 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 *RoutersAggregatedListCall) PageToken(pageToken string) *RoutersAggregatedListCall { + c.urlParams_.Set("pageToken", pageToken) + return c +} + +// ReturnPartialSuccess sets the optional parameter "returnPartialSuccess": +// Opt-in for partial success behavior which provides partial results in +// case +// of failure. The default value is false. +// +// For example, when partial success behavior is enabled, aggregatedList for +// a +// single zone scope either returns all resources in the zone or no +// resources, +// with an error code. +func (c *RoutersAggregatedListCall) ReturnPartialSuccess(returnPartialSuccess bool) *RoutersAggregatedListCall { + c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess)) + return c +} + +// ServiceProjectNumber sets the optional parameter "serviceProjectNumber": The +// Shared VPC service project id or service project number for which +// aggregated list request is invoked for subnetworks list-usable api. +func (c *RoutersAggregatedListCall) ServiceProjectNumber(serviceProjectNumber int64) *RoutersAggregatedListCall { + c.urlParams_.Set("serviceProjectNumber", fmt.Sprint(serviceProjectNumber)) + return c +} + +// Fields allows partial responses to be retrieved. See +// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more +// details. +func (c *RoutersAggregatedListCall) Fields(s ...googleapi.Field) *RoutersAggregatedListCall { + c.urlParams_.Set("fields", googleapi.CombineFields(s)) + return c +} + +// IfNoneMatch sets an 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. +func (c *RoutersAggregatedListCall) IfNoneMatch(entityTag string) *RoutersAggregatedListCall { + c.ifNoneMatch_ = entityTag + return c +} + +// Context sets the context to be used in this call's Do method. +func (c *RoutersAggregatedListCall) Context(ctx context.Context) *RoutersAggregatedListCall { + c.ctx_ = ctx + return c +} + +// Header returns a http.Header that can be modified by the caller to add +// headers to the request. +func (c *RoutersAggregatedListCall) Header() http.Header { + if c.header_ == nil { + c.header_ = make(http.Header) + } + return c.header_ +} + +func (c *RoutersAggregatedListCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) + if c.ifNoneMatch_ != "" { + reqHeaders.Set("If-None-Match", c.ifNoneMatch_) + } + c.urlParams_.Set("alt", alt) + c.urlParams_.Set("prettyPrint", "false") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/aggregated/routers") + urls += "?" + c.urlParams_.Encode() + req, err := http.NewRequest("GET", urls, nil) + if err != nil { + return nil, err + } + req.Header = reqHeaders + googleapi.Expand(req.URL, map[string]string{ + "project": c.project, + }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.routers.aggregatedList", "request", internallog.HTTPRequest(req, nil)) + return gensupport.SendRequest(c.ctx_, c.s.client, req) +} + +// Do executes the "compute.routers.aggregatedList" call. +// Any non-2xx status code is an error. Response headers are in either +// *RouterAggregatedList.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 *RoutersAggregatedListCall) Do(opts ...googleapi.CallOption) (*RouterAggregatedList, 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, gensupport.WrapError(&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, gensupport.WrapError(err) + } + ret := &RouterAggregatedList{ + ServerResponse: googleapi.ServerResponse{ + Header: res.Header, + HTTPStatusCode: res.StatusCode, + }, + } + target := &ret + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { + return nil, err + } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.routers.aggregatedList", "response", internallog.HTTPResponse(res, b)) + return ret, nil +} + +// 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 *RoutersAggregatedListCall) Pages(ctx context.Context, f func(*RouterAggregatedList) error) error { + c.ctx_ = ctx + defer c.PageToken(c.urlParams_.Get("pageToken")) + 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) + } +} + +type RoutersDeleteCall struct { + s *Service + project string + region string + router string + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header +} + +// Delete: Deletes the specified Router resource. +// +// - project: Project ID for this request. +// - region: Name of the region for this request. +// - router: Name of the Router resource to delete. +func (r *RoutersService) Delete(project string, region string, router string) *RoutersDeleteCall { + c := &RoutersDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)} + c.project = project + c.region = region + c.router = router + 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 *RoutersDeleteCall) RequestId(requestId string) *RoutersDeleteCall { + 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 +// details. +func (c *RoutersDeleteCall) Fields(s ...googleapi.Field) *RoutersDeleteCall { + c.urlParams_.Set("fields", googleapi.CombineFields(s)) + return c +} + +// Context sets the context to be used in this call's Do method. +func (c *RoutersDeleteCall) Context(ctx context.Context) *RoutersDeleteCall { + c.ctx_ = ctx + return c +} + +// Header returns a http.Header that can be modified by the caller to add +// headers to the request. +func (c *RoutersDeleteCall) Header() http.Header { + if c.header_ == nil { + c.header_ = make(http.Header) + } + return c.header_ +} + +func (c *RoutersDeleteCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) + c.urlParams_.Set("alt", alt) + c.urlParams_.Set("prettyPrint", "false") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/routers/{router}") + urls += "?" + c.urlParams_.Encode() + req, err := http.NewRequest("DELETE", urls, nil) + if err != nil { + return nil, err + } + req.Header = reqHeaders + googleapi.Expand(req.URL, map[string]string{ + "project": c.project, + "region": c.region, + "router": c.router, + }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.routers.delete", "request", internallog.HTTPRequest(req, nil)) + return gensupport.SendRequest(c.ctx_, c.s.client, req) +} + +// Do executes the "compute.routers.delete" call. +// 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 *RoutersDeleteCall) 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, gensupport.WrapError(&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, gensupport.WrapError(err) + } + ret := &Operation{ + ServerResponse: googleapi.ServerResponse{ + Header: res.Header, + HTTPStatusCode: res.StatusCode, + }, + } + target := &ret + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { + return nil, err + } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.routers.delete", "response", internallog.HTTPResponse(res, b)) + return ret, nil +} + +type RoutersDeleteNamedSetCall struct { + s *Service + project string + region string + router string + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header +} + +// DeleteNamedSet: Deletes Named Set +// +// - project: Project ID for this request. +// - region: Name of the region for this request. +// - router: Name of the Router resource where Named Set is defined. +func (r *RoutersService) DeleteNamedSet(project string, region string, router string) *RoutersDeleteNamedSetCall { + c := &RoutersDeleteNamedSetCall{s: r.s, urlParams_: make(gensupport.URLParams)} + c.project = project + c.region = region + c.router = router + return c +} + +// NamedSet sets the optional parameter "namedSet": The Named Set name for this +// request. Name must conform to RFC1035 +func (c *RoutersDeleteNamedSetCall) NamedSet(namedSet string) *RoutersDeleteNamedSetCall { + c.urlParams_.Set("namedSet", namedSet) + 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 *RoutersDeleteNamedSetCall) RequestId(requestId string) *RoutersDeleteNamedSetCall { + 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 +// details. +func (c *RoutersDeleteNamedSetCall) Fields(s ...googleapi.Field) *RoutersDeleteNamedSetCall { + c.urlParams_.Set("fields", googleapi.CombineFields(s)) + return c +} + +// Context sets the context to be used in this call's Do method. +func (c *RoutersDeleteNamedSetCall) Context(ctx context.Context) *RoutersDeleteNamedSetCall { + c.ctx_ = ctx + return c +} + +// Header returns a http.Header that can be modified by the caller to add +// headers to the request. +func (c *RoutersDeleteNamedSetCall) Header() http.Header { + if c.header_ == nil { + c.header_ = make(http.Header) + } + return c.header_ +} + +func (c *RoutersDeleteNamedSetCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) + c.urlParams_.Set("alt", alt) + c.urlParams_.Set("prettyPrint", "false") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/routers/{router}/deleteNamedSet") + urls += "?" + c.urlParams_.Encode() + req, err := http.NewRequest("POST", urls, nil) + if err != nil { + return nil, err + } + req.Header = reqHeaders + googleapi.Expand(req.URL, map[string]string{ + "project": c.project, + "region": c.region, + "router": c.router, + }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.routers.deleteNamedSet", "request", internallog.HTTPRequest(req, nil)) + return gensupport.SendRequest(c.ctx_, c.s.client, req) +} + +// Do executes the "compute.routers.deleteNamedSet" call. +// 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 *RoutersDeleteNamedSetCall) 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, gensupport.WrapError(&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, gensupport.WrapError(err) + } + ret := &Operation{ + ServerResponse: googleapi.ServerResponse{ + Header: res.Header, + HTTPStatusCode: res.StatusCode, + }, + } + target := &ret + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { + return nil, err + } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.routers.deleteNamedSet", "response", internallog.HTTPResponse(res, b)) + return ret, nil +} + +type RoutersDeleteRoutePolicyCall struct { + s *Service + project string + region string + router string + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header +} + +// DeleteRoutePolicy: Deletes Route Policy +// +// - project: Project ID for this request. +// - region: Name of the region for this request. +// - router: Name of the Router resource where Route Policy is defined. +func (r *RoutersService) DeleteRoutePolicy(project string, region string, router string) *RoutersDeleteRoutePolicyCall { + c := &RoutersDeleteRoutePolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)} + c.project = project + c.region = region + c.router = router + return c +} + +// Policy sets the optional parameter "policy": The Policy name for this +// request. Name must conform to RFC1035 +func (c *RoutersDeleteRoutePolicyCall) Policy(policy string) *RoutersDeleteRoutePolicyCall { + c.urlParams_.Set("policy", policy) + 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 *RoutersDeleteRoutePolicyCall) RequestId(requestId string) *RoutersDeleteRoutePolicyCall { + 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 +// details. +func (c *RoutersDeleteRoutePolicyCall) Fields(s ...googleapi.Field) *RoutersDeleteRoutePolicyCall { + c.urlParams_.Set("fields", googleapi.CombineFields(s)) + return c +} + +// Context sets the context to be used in this call's Do method. +func (c *RoutersDeleteRoutePolicyCall) Context(ctx context.Context) *RoutersDeleteRoutePolicyCall { + c.ctx_ = ctx + return c +} + +// Header returns a http.Header that can be modified by the caller to add +// headers to the request. +func (c *RoutersDeleteRoutePolicyCall) Header() http.Header { + if c.header_ == nil { + c.header_ = make(http.Header) + } + return c.header_ +} + +func (c *RoutersDeleteRoutePolicyCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) + c.urlParams_.Set("alt", alt) + c.urlParams_.Set("prettyPrint", "false") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/routers/{router}/deleteRoutePolicy") + urls += "?" + c.urlParams_.Encode() + req, err := http.NewRequest("POST", urls, nil) + if err != nil { + return nil, err + } + req.Header = reqHeaders + googleapi.Expand(req.URL, map[string]string{ + "project": c.project, + "region": c.region, + "router": c.router, + }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.routers.deleteRoutePolicy", "request", internallog.HTTPRequest(req, nil)) + return gensupport.SendRequest(c.ctx_, c.s.client, req) +} + +// Do executes the "compute.routers.deleteRoutePolicy" call. +// 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 *RoutersDeleteRoutePolicyCall) 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, gensupport.WrapError(&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, gensupport.WrapError(err) + } + ret := &Operation{ + ServerResponse: googleapi.ServerResponse{ + Header: res.Header, + HTTPStatusCode: res.StatusCode, + }, + } + target := &ret + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { + return nil, err + } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.routers.deleteRoutePolicy", "response", internallog.HTTPResponse(res, b)) + return ret, nil +} + +type RoutersGetCall struct { + s *Service + project string + region string + router string + urlParams_ gensupport.URLParams + ifNoneMatch_ string + ctx_ context.Context + header_ http.Header +} + +// Get: Returns the specified Router resource. +// +// - project: Project ID for this request. +// - region: Name of the region for this request. +// - router: Name of the Router resource to return. +func (r *RoutersService) Get(project string, region string, router string) *RoutersGetCall { + c := &RoutersGetCall{s: r.s, urlParams_: make(gensupport.URLParams)} + c.project = project + c.region = region + c.router = router + return c +} + +// Fields allows partial responses to be retrieved. See +// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more +// details. +func (c *RoutersGetCall) Fields(s ...googleapi.Field) *RoutersGetCall { + c.urlParams_.Set("fields", googleapi.CombineFields(s)) + return c +} + +// IfNoneMatch sets an 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. +func (c *RoutersGetCall) IfNoneMatch(entityTag string) *RoutersGetCall { + c.ifNoneMatch_ = entityTag + return c +} + +// Context sets the context to be used in this call's Do method. +func (c *RoutersGetCall) Context(ctx context.Context) *RoutersGetCall { + c.ctx_ = ctx + return c +} + +// Header returns a http.Header that can be modified by the caller to add +// headers to the request. +func (c *RoutersGetCall) Header() http.Header { + if c.header_ == nil { + c.header_ = make(http.Header) + } + return c.header_ +} + +func (c *RoutersGetCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) + if c.ifNoneMatch_ != "" { + reqHeaders.Set("If-None-Match", c.ifNoneMatch_) + } + c.urlParams_.Set("alt", alt) + c.urlParams_.Set("prettyPrint", "false") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/routers/{router}") + urls += "?" + c.urlParams_.Encode() + req, err := http.NewRequest("GET", urls, nil) + if err != nil { + return nil, err + } + req.Header = reqHeaders + googleapi.Expand(req.URL, map[string]string{ + "project": c.project, + "region": c.region, + "router": c.router, + }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.routers.get", "request", internallog.HTTPRequest(req, nil)) + return gensupport.SendRequest(c.ctx_, c.s.client, req) +} + +// Do executes the "compute.routers.get" call. +// Any non-2xx status code is an error. Response headers are in either +// *Router.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 *RoutersGetCall) Do(opts ...googleapi.CallOption) (*Router, 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, gensupport.WrapError(&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, gensupport.WrapError(err) + } + ret := &Router{ + ServerResponse: googleapi.ServerResponse{ + Header: res.Header, + HTTPStatusCode: res.StatusCode, + }, + } + target := &ret + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { + return nil, err + } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.routers.get", "response", internallog.HTTPResponse(res, b)) + return ret, nil +} + +type RoutersGetNamedSetCall struct { + s *Service + project string + region string + router string + urlParams_ gensupport.URLParams + ifNoneMatch_ string + ctx_ context.Context + header_ http.Header +} + +// GetNamedSet: Returns specified Named Set +// +// - project: Project ID for this request. +// - region: Name of the region for this request. +// - router: Name of the Router resource to query for the named set. The name +// should +// +// conform to RFC1035. +func (r *RoutersService) GetNamedSet(project string, region string, router string) *RoutersGetNamedSetCall { + c := &RoutersGetNamedSetCall{s: r.s, urlParams_: make(gensupport.URLParams)} + c.project = project + c.region = region + c.router = router + return c +} + +// NamedSet sets the optional parameter "namedSet": The Named Set name for this +// request. Name must conform to RFC1035 +func (c *RoutersGetNamedSetCall) NamedSet(namedSet string) *RoutersGetNamedSetCall { + c.urlParams_.Set("namedSet", namedSet) + return c +} + +// Fields allows partial responses to be retrieved. See +// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more +// details. +func (c *RoutersGetNamedSetCall) Fields(s ...googleapi.Field) *RoutersGetNamedSetCall { + c.urlParams_.Set("fields", googleapi.CombineFields(s)) + return c +} + +// IfNoneMatch sets an 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. +func (c *RoutersGetNamedSetCall) IfNoneMatch(entityTag string) *RoutersGetNamedSetCall { + c.ifNoneMatch_ = entityTag + return c +} + +// Context sets the context to be used in this call's Do method. +func (c *RoutersGetNamedSetCall) Context(ctx context.Context) *RoutersGetNamedSetCall { + c.ctx_ = ctx + return c +} + +// Header returns a http.Header that can be modified by the caller to add +// headers to the request. +func (c *RoutersGetNamedSetCall) Header() http.Header { + if c.header_ == nil { + c.header_ = make(http.Header) + } + return c.header_ +} + +func (c *RoutersGetNamedSetCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) + if c.ifNoneMatch_ != "" { + reqHeaders.Set("If-None-Match", c.ifNoneMatch_) + } + c.urlParams_.Set("alt", alt) + c.urlParams_.Set("prettyPrint", "false") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/routers/{router}/getNamedSet") + urls += "?" + c.urlParams_.Encode() + req, err := http.NewRequest("GET", urls, nil) + if err != nil { + return nil, err + } + req.Header = reqHeaders + googleapi.Expand(req.URL, map[string]string{ + "project": c.project, + "region": c.region, + "router": c.router, + }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.routers.getNamedSet", "request", internallog.HTTPRequest(req, nil)) + return gensupport.SendRequest(c.ctx_, c.s.client, req) +} + +// Do executes the "compute.routers.getNamedSet" call. +// Any non-2xx status code is an error. Response headers are in either +// *RoutersGetNamedSetResponse.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 *RoutersGetNamedSetCall) Do(opts ...googleapi.CallOption) (*RoutersGetNamedSetResponse, 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, gensupport.WrapError(&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, gensupport.WrapError(err) + } + ret := &RoutersGetNamedSetResponse{ + ServerResponse: googleapi.ServerResponse{ + Header: res.Header, + HTTPStatusCode: res.StatusCode, + }, + } + target := &ret + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { + return nil, err + } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.routers.getNamedSet", "response", internallog.HTTPResponse(res, b)) + return ret, nil +} + +type RoutersGetNatIpInfoCall struct { + s *Service + project string + region string + router string + urlParams_ gensupport.URLParams + ifNoneMatch_ string + ctx_ context.Context + header_ http.Header +} + +// GetNatIpInfo: Retrieves runtime NAT IP information. +// +// - project: Project ID for this request. +// - region: Name of the region for this request. +// - router: Name of the Router resource to query for Nat IP information. The +// name +// +// should conform to RFC1035. +func (r *RoutersService) GetNatIpInfo(project string, region string, router string) *RoutersGetNatIpInfoCall { + c := &RoutersGetNatIpInfoCall{s: r.s, urlParams_: make(gensupport.URLParams)} + c.project = project + c.region = region + c.router = router + return c +} + +// NatName sets the optional parameter "natName": Name of the nat service to +// filter the NAT IP information. +// If it is omitted, all nats for this router will be returned. +// Name should conform to RFC1035. +func (c *RoutersGetNatIpInfoCall) NatName(natName string) *RoutersGetNatIpInfoCall { + c.urlParams_.Set("natName", natName) + return c +} + +// Fields allows partial responses to be retrieved. See +// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more +// details. +func (c *RoutersGetNatIpInfoCall) Fields(s ...googleapi.Field) *RoutersGetNatIpInfoCall { + c.urlParams_.Set("fields", googleapi.CombineFields(s)) + return c +} + +// IfNoneMatch sets an 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. +func (c *RoutersGetNatIpInfoCall) IfNoneMatch(entityTag string) *RoutersGetNatIpInfoCall { + c.ifNoneMatch_ = entityTag + return c +} + +// Context sets the context to be used in this call's Do method. +func (c *RoutersGetNatIpInfoCall) Context(ctx context.Context) *RoutersGetNatIpInfoCall { + c.ctx_ = ctx + return c +} + +// Header returns a http.Header that can be modified by the caller to add +// headers to the request. +func (c *RoutersGetNatIpInfoCall) Header() http.Header { + if c.header_ == nil { + c.header_ = make(http.Header) + } + return c.header_ +} + +func (c *RoutersGetNatIpInfoCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) + if c.ifNoneMatch_ != "" { + reqHeaders.Set("If-None-Match", c.ifNoneMatch_) + } + c.urlParams_.Set("alt", alt) + c.urlParams_.Set("prettyPrint", "false") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/routers/{router}/getNatIpInfo") + urls += "?" + c.urlParams_.Encode() + req, err := http.NewRequest("GET", urls, nil) + if err != nil { + return nil, err + } + req.Header = reqHeaders + googleapi.Expand(req.URL, map[string]string{ + "project": c.project, + "region": c.region, + "router": c.router, + }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.routers.getNatIpInfo", "request", internallog.HTTPRequest(req, nil)) + return gensupport.SendRequest(c.ctx_, c.s.client, req) +} + +// Do executes the "compute.routers.getNatIpInfo" call. +// Any non-2xx status code is an error. Response headers are in either +// *NatIpInfoResponse.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 *RoutersGetNatIpInfoCall) Do(opts ...googleapi.CallOption) (*NatIpInfoResponse, 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, gensupport.WrapError(&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, gensupport.WrapError(err) + } + ret := &NatIpInfoResponse{ + ServerResponse: googleapi.ServerResponse{ + Header: res.Header, + HTTPStatusCode: res.StatusCode, + }, + } + target := &ret + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { + return nil, err + } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.routers.getNatIpInfo", "response", internallog.HTTPResponse(res, b)) + return ret, nil +} + +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. +// +// - project: Project ID for this request. +// - region: Name of the region for this request. +// - router: Name of the Router resource to query for 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. Most +// Compute resources support two types of filter expressions: +// expressions that support regular expressions and expressions that follow +// API improvement proposal AIP-160. +// These two types of filter expressions cannot be mixed in one request. +// +// If you want to use AIP-160, your expression must specify the field name, +// an +// operator, and the value that you want to use for filtering. The value +// must be a string, a number, or a boolean. The 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`. +// +// The `:*` comparison can be used to test whether a key has been defined. +// For example, to find all objects with `owner` label +// use: +// ``` +// labels.owner:* +// ``` +// +// 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 onresource 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) +// ``` +// +// If you want to use a regular expression, use the `eq` (equal) or `ne` +// (not equal) operator against a single un-parenthesized expression with +// or +// without quotes or against multiple parenthesized expressions. +// Examples: +// +// `fieldname eq unquoted literal` +// `fieldname eq 'single quoted literal'` +// `fieldname eq "double quoted literal" +// `(fieldname1 eq literal) (fieldname2 ne "literal")` +// +// The literal value is interpreted as a regular expression using GoogleRE2 +// library syntax. +// The literal value must match the entire field. +// +// For example, to filter for instances that do not end with name +// "instance", +// you would use `name ne .*instance`. +// +// You cannot combine constraints on multiple fields using regular +// expressions. +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 +} + +// NatName sets the optional parameter "natName": Name of the nat service to +// filter the Nat Mapping information. +// If it is omitted, all nats for this router will be returned. +// Name should conform to RFC1035. +func (c *RoutersGetNatMappingInfoCall) NatName(natName string) *RoutersGetNatMappingInfoCall { + c.urlParams_.Set("natName", natName) + 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 +} + +// ReturnPartialSuccess sets the optional parameter "returnPartialSuccess": +// Opt-in for partial success behavior which provides partial results in +// case +// of failure. The default value is false. +// +// For example, when partial success behavior is enabled, aggregatedList for +// a +// single zone scope either returns all resources in the zone or no +// resources, +// with an error code. +func (c *RoutersGetNatMappingInfoCall) ReturnPartialSuccess(returnPartialSuccess bool) *RoutersGetNatMappingInfoCall { + c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess)) + return c +} + +// Fields allows partial responses to be retrieved. See +// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more +// details. +func (c *RoutersGetNatMappingInfoCall) Fields(s ...googleapi.Field) *RoutersGetNatMappingInfoCall { + c.urlParams_.Set("fields", googleapi.CombineFields(s)) + return c +} + +// IfNoneMatch sets an 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. +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. +func (c *RoutersGetNatMappingInfoCall) Context(ctx context.Context) *RoutersGetNatMappingInfoCall { + c.ctx_ = ctx + return c +} + +// Header returns a http.Header that can be modified by the caller to add +// 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 := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) + if c.ifNoneMatch_ != "" { + reqHeaders.Set("If-None-Match", c.ifNoneMatch_) + } + c.urlParams_.Set("alt", alt) + c.urlParams_.Set("prettyPrint", "false") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/routers/{router}/getNatMappingInfo") + urls += "?" + c.urlParams_.Encode() + req, err := http.NewRequest("GET", urls, nil) + if err != nil { + return nil, err + } + req.Header = reqHeaders + googleapi.Expand(req.URL, map[string]string{ + "project": c.project, + "region": c.region, + "router": c.router, + }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.routers.getNatMappingInfo", "request", internallog.HTTPRequest(req, nil)) + return gensupport.SendRequest(c.ctx_, c.s.client, req) +} + +// Do executes the "compute.routers.getNatMappingInfo" call. +// 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, gensupport.WrapError(&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, gensupport.WrapError(err) + } + ret := &VmEndpointNatMappingsList{ + ServerResponse: googleapi.ServerResponse{ + Header: res.Header, + HTTPStatusCode: res.StatusCode, + }, + } + target := &ret + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { + return nil, err + } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.routers.getNatMappingInfo", "response", internallog.HTTPResponse(res, b)) + return ret, nil +} + +// 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")) + 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) + } +} + +type RoutersGetRoutePolicyCall struct { + s *Service + project string + region string + router string + urlParams_ gensupport.URLParams + ifNoneMatch_ string + ctx_ context.Context + header_ http.Header +} + +// GetRoutePolicy: Returns specified Route Policy +// +// - project: Project ID for this request. +// - region: Name of the region for this request. +// - router: Name of the Router resource to query for the route policy. The +// name should +// +// conform to RFC1035. +func (r *RoutersService) GetRoutePolicy(project string, region string, router string) *RoutersGetRoutePolicyCall { + c := &RoutersGetRoutePolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)} + c.project = project + c.region = region + c.router = router + return c +} + +// Policy sets the optional parameter "policy": The Policy name for this +// request. Name must conform to RFC1035 +func (c *RoutersGetRoutePolicyCall) Policy(policy string) *RoutersGetRoutePolicyCall { + c.urlParams_.Set("policy", policy) + return c +} + +// Fields allows partial responses to be retrieved. See +// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more +// details. +func (c *RoutersGetRoutePolicyCall) Fields(s ...googleapi.Field) *RoutersGetRoutePolicyCall { + c.urlParams_.Set("fields", googleapi.CombineFields(s)) + return c +} + +// IfNoneMatch sets an 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. +func (c *RoutersGetRoutePolicyCall) IfNoneMatch(entityTag string) *RoutersGetRoutePolicyCall { + c.ifNoneMatch_ = entityTag + return c +} + +// Context sets the context to be used in this call's Do method. +func (c *RoutersGetRoutePolicyCall) Context(ctx context.Context) *RoutersGetRoutePolicyCall { + c.ctx_ = ctx + return c +} + +// Header returns a http.Header that can be modified by the caller to add +// headers to the request. +func (c *RoutersGetRoutePolicyCall) Header() http.Header { + if c.header_ == nil { + c.header_ = make(http.Header) + } + return c.header_ +} + +func (c *RoutersGetRoutePolicyCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) + if c.ifNoneMatch_ != "" { + reqHeaders.Set("If-None-Match", c.ifNoneMatch_) + } + c.urlParams_.Set("alt", alt) + c.urlParams_.Set("prettyPrint", "false") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/routers/{router}/getRoutePolicy") + urls += "?" + c.urlParams_.Encode() + req, err := http.NewRequest("GET", urls, nil) + if err != nil { + return nil, err + } + req.Header = reqHeaders + googleapi.Expand(req.URL, map[string]string{ + "project": c.project, + "region": c.region, + "router": c.router, + }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.routers.getRoutePolicy", "request", internallog.HTTPRequest(req, nil)) + return gensupport.SendRequest(c.ctx_, c.s.client, req) +} + +// Do executes the "compute.routers.getRoutePolicy" call. +// Any non-2xx status code is an error. Response headers are in either +// *RoutersGetRoutePolicyResponse.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 *RoutersGetRoutePolicyCall) Do(opts ...googleapi.CallOption) (*RoutersGetRoutePolicyResponse, 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, gensupport.WrapError(&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, gensupport.WrapError(err) + } + ret := &RoutersGetRoutePolicyResponse{ + ServerResponse: googleapi.ServerResponse{ + Header: res.Header, + HTTPStatusCode: res.StatusCode, + }, + } + target := &ret + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { + return nil, err + } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.routers.getRoutePolicy", "response", internallog.HTTPResponse(res, b)) + return ret, nil +} + +type RoutersGetRouterStatusCall struct { + s *Service + project string + region string + router string + urlParams_ gensupport.URLParams + ifNoneMatch_ string + ctx_ context.Context + header_ http.Header +} + +// GetRouterStatus: Retrieves runtime information of the specified router. +// +// - project: Project ID for this request. +// - region: Name of the region for this request. +// - router: Name of the Router resource to query. +func (r *RoutersService) GetRouterStatus(project string, region string, router string) *RoutersGetRouterStatusCall { + c := &RoutersGetRouterStatusCall{s: r.s, urlParams_: make(gensupport.URLParams)} + c.project = project + c.region = region + c.router = router + return c +} + +// Fields allows partial responses to be retrieved. See +// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more +// details. +func (c *RoutersGetRouterStatusCall) Fields(s ...googleapi.Field) *RoutersGetRouterStatusCall { + c.urlParams_.Set("fields", googleapi.CombineFields(s)) + return c +} + +// IfNoneMatch sets an 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. +func (c *RoutersGetRouterStatusCall) IfNoneMatch(entityTag string) *RoutersGetRouterStatusCall { + c.ifNoneMatch_ = entityTag + return c +} + +// Context sets the context to be used in this call's Do method. +func (c *RoutersGetRouterStatusCall) Context(ctx context.Context) *RoutersGetRouterStatusCall { + c.ctx_ = ctx + return c +} + +// Header returns a http.Header that can be modified by the caller to add +// headers to the request. +func (c *RoutersGetRouterStatusCall) Header() http.Header { + if c.header_ == nil { + c.header_ = make(http.Header) + } + return c.header_ +} + +func (c *RoutersGetRouterStatusCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) + if c.ifNoneMatch_ != "" { + reqHeaders.Set("If-None-Match", c.ifNoneMatch_) + } + c.urlParams_.Set("alt", alt) + c.urlParams_.Set("prettyPrint", "false") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/routers/{router}/getRouterStatus") + urls += "?" + c.urlParams_.Encode() + req, err := http.NewRequest("GET", urls, nil) + if err != nil { + return nil, err + } + req.Header = reqHeaders + googleapi.Expand(req.URL, map[string]string{ + "project": c.project, + "region": c.region, + "router": c.router, + }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.routers.getRouterStatus", "request", internallog.HTTPRequest(req, nil)) + return gensupport.SendRequest(c.ctx_, c.s.client, req) +} + +// Do executes the "compute.routers.getRouterStatus" call. +// Any non-2xx status code is an error. Response headers are in either +// *RouterStatusResponse.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 *RoutersGetRouterStatusCall) Do(opts ...googleapi.CallOption) (*RouterStatusResponse, 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, gensupport.WrapError(&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, gensupport.WrapError(err) + } + ret := &RouterStatusResponse{ + ServerResponse: googleapi.ServerResponse{ + Header: res.Header, + HTTPStatusCode: res.StatusCode, + }, + } + target := &ret + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { + return nil, err + } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.routers.getRouterStatus", "response", internallog.HTTPResponse(res, b)) + return ret, nil +} + +type RoutersInsertCall struct { + s *Service + project string + region string + router *Router + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header +} + +// Insert: Creates a Router resource in the specified project and region +// using +// the data included in the request. +// +// - project: Project ID for this request. +// - region: Name of the region for this request. +func (r *RoutersService) Insert(project string, region string, router *Router) *RoutersInsertCall { + c := &RoutersInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)} + c.project = project + c.region = region + c.router = router + 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 *RoutersInsertCall) RequestId(requestId string) *RoutersInsertCall { + 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 +// details. +func (c *RoutersInsertCall) Fields(s ...googleapi.Field) *RoutersInsertCall { + c.urlParams_.Set("fields", googleapi.CombineFields(s)) + return c +} + +// Context sets the context to be used in this call's Do method. +func (c *RoutersInsertCall) Context(ctx context.Context) *RoutersInsertCall { + c.ctx_ = ctx + return c +} + +// Header returns a http.Header that can be modified by the caller to add +// headers to the request. +func (c *RoutersInsertCall) Header() http.Header { + if c.header_ == nil { + c.header_ = make(http.Header) + } + return c.header_ +} + +func (c *RoutersInsertCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) + body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.router) + if err != nil { + return nil, err + } + c.urlParams_.Set("alt", alt) + c.urlParams_.Set("prettyPrint", "false") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/routers") + urls += "?" + c.urlParams_.Encode() + req, err := http.NewRequest("POST", urls, body) + if err != nil { + return nil, err + } + req.Header = reqHeaders + googleapi.Expand(req.URL, map[string]string{ + "project": c.project, + "region": c.region, + }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.routers.insert", "request", internallog.HTTPRequest(req, body.Bytes())) + return gensupport.SendRequest(c.ctx_, c.s.client, req) +} + +// Do executes the "compute.routers.insert" call. +// 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 *RoutersInsertCall) 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, gensupport.WrapError(&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, gensupport.WrapError(err) + } + ret := &Operation{ + ServerResponse: googleapi.ServerResponse{ + Header: res.Header, + HTTPStatusCode: res.StatusCode, + }, + } + target := &ret + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { + return nil, err + } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.routers.insert", "response", internallog.HTTPResponse(res, b)) + return ret, nil +} + +type RoutersListCall struct { + s *Service + project string + region string + urlParams_ gensupport.URLParams + ifNoneMatch_ string + ctx_ context.Context + header_ http.Header +} + +// List: Retrieves a list of Router resources available to the specified +// project. +// +// - project: Project ID for this request. +// - region: Name of the region for this request. +func (r *RoutersService) List(project string, region string) *RoutersListCall { + c := &RoutersListCall{s: r.s, urlParams_: make(gensupport.URLParams)} + c.project = project + c.region = region + return c +} + +// Filter sets the optional parameter "filter": A filter expression that +// filters resources listed in the response. Most +// Compute resources support two types of filter expressions: +// expressions that support regular expressions and expressions that follow +// API improvement proposal AIP-160. +// These two types of filter expressions cannot be mixed in one request. +// +// If you want to use AIP-160, your expression must specify the field name, +// an +// operator, and the value that you want to use for filtering. The value +// must be a string, a number, or a boolean. The 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`. +// +// The `:*` comparison can be used to test whether a key has been defined. +// For example, to find all objects with `owner` label +// use: +// ``` +// labels.owner:* +// ``` +// +// 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 onresource 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) +// ``` +// +// If you want to use a regular expression, use the `eq` (equal) or `ne` +// (not equal) operator against a single un-parenthesized expression with +// or +// without quotes or against multiple parenthesized expressions. +// Examples: +// +// `fieldname eq unquoted literal` +// `fieldname eq 'single quoted literal'` +// `fieldname eq "double quoted literal" +// `(fieldname1 eq literal) (fieldname2 ne "literal")` +// +// The literal value is interpreted as a regular expression using GoogleRE2 +// library syntax. +// The literal value must match the entire field. +// +// For example, to filter for instances that do not end with name +// "instance", +// you would use `name ne .*instance`. +// +// You cannot combine constraints on multiple fields using regular +// expressions. +func (c *RoutersListCall) Filter(filter string) *RoutersListCall { + 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 *RoutersListCall) MaxResults(maxResults int64) *RoutersListCall { + 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 *RoutersListCall) OrderBy(orderBy string) *RoutersListCall { + 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 *RoutersListCall) PageToken(pageToken string) *RoutersListCall { + c.urlParams_.Set("pageToken", pageToken) + return c +} + +// ReturnPartialSuccess sets the optional parameter "returnPartialSuccess": +// Opt-in for partial success behavior which provides partial results in +// case +// of failure. The default value is false. +// +// For example, when partial success behavior is enabled, aggregatedList for +// a +// single zone scope either returns all resources in the zone or no +// resources, +// with an error code. +func (c *RoutersListCall) ReturnPartialSuccess(returnPartialSuccess bool) *RoutersListCall { + c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess)) + return c +} + +// Fields allows partial responses to be retrieved. See +// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more +// details. +func (c *RoutersListCall) Fields(s ...googleapi.Field) *RoutersListCall { + c.urlParams_.Set("fields", googleapi.CombineFields(s)) + return c +} + +// IfNoneMatch sets an 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. +func (c *RoutersListCall) IfNoneMatch(entityTag string) *RoutersListCall { + c.ifNoneMatch_ = entityTag + return c +} + +// Context sets the context to be used in this call's Do method. +func (c *RoutersListCall) Context(ctx context.Context) *RoutersListCall { + c.ctx_ = ctx + return c +} + +// Header returns a http.Header that can be modified by the caller to add +// headers to the request. +func (c *RoutersListCall) Header() http.Header { + if c.header_ == nil { + c.header_ = make(http.Header) + } + return c.header_ +} + +func (c *RoutersListCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) + if c.ifNoneMatch_ != "" { + reqHeaders.Set("If-None-Match", c.ifNoneMatch_) + } + c.urlParams_.Set("alt", alt) + c.urlParams_.Set("prettyPrint", "false") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/routers") + urls += "?" + c.urlParams_.Encode() + req, err := http.NewRequest("GET", urls, nil) + if err != nil { + return nil, err + } + req.Header = reqHeaders + googleapi.Expand(req.URL, map[string]string{ + "project": c.project, + "region": c.region, + }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.routers.list", "request", internallog.HTTPRequest(req, nil)) + return gensupport.SendRequest(c.ctx_, c.s.client, req) +} + +// Do executes the "compute.routers.list" call. +// Any non-2xx status code is an error. Response headers are in either +// *RouterList.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 *RoutersListCall) Do(opts ...googleapi.CallOption) (*RouterList, 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, gensupport.WrapError(&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, gensupport.WrapError(err) + } + ret := &RouterList{ + ServerResponse: googleapi.ServerResponse{ + Header: res.Header, + HTTPStatusCode: res.StatusCode, + }, + } + target := &ret + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { + return nil, err + } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.routers.list", "response", internallog.HTTPResponse(res, b)) + return ret, nil +} + +// 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 *RoutersListCall) Pages(ctx context.Context, f func(*RouterList) error) error { + c.ctx_ = ctx + defer c.PageToken(c.urlParams_.Get("pageToken")) + 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) + } +} + +type RoutersListBgpRoutesCall struct { + s *Service + project string + region string + router string + urlParams_ gensupport.URLParams + ifNoneMatch_ string + ctx_ context.Context + header_ http.Header +} + +// ListBgpRoutes: Retrieves a list of router bgp routes available to the +// specified project. +// +// - project: Project ID for this request. +// - region: Name of the region for this request. +// - router: Name or id of the resource for this request. +// Name should conform to RFC1035. +func (r *RoutersService) ListBgpRoutes(project string, region string, router string) *RoutersListBgpRoutesCall { + c := &RoutersListBgpRoutesCall{s: r.s, urlParams_: make(gensupport.URLParams)} + c.project = project + c.region = region + c.router = router + return c +} + +// AddressFamily sets the optional parameter "addressFamily": (Required) limit +// results to this address family (either IPv4 or IPv6) +// +// Possible values: +// +// "IPV4" +// "IPV6" +// "UNSPECIFIED_IP_VERSION" (default) +func (c *RoutersListBgpRoutesCall) AddressFamily(addressFamily string) *RoutersListBgpRoutesCall { + c.urlParams_.Set("addressFamily", addressFamily) + return c +} + +// DestinationPrefix sets the optional parameter "destinationPrefix": Limit +// results to destinations that are subnets of this CIDR range +func (c *RoutersListBgpRoutesCall) DestinationPrefix(destinationPrefix string) *RoutersListBgpRoutesCall { + c.urlParams_.Set("destinationPrefix", destinationPrefix) + return c +} + +// Filter sets the optional parameter "filter": A filter expression that +// filters resources listed in the response. Most +// Compute resources support two types of filter expressions: +// expressions that support regular expressions and expressions that follow +// API improvement proposal AIP-160. +// These two types of filter expressions cannot be mixed in one request. +// +// If you want to use AIP-160, your expression must specify the field name, +// an +// operator, and the value that you want to use for filtering. The value +// must be a string, a number, or a boolean. The 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`. +// +// The `:*` comparison can be used to test whether a key has been defined. +// For example, to find all objects with `owner` label +// use: +// ``` +// labels.owner:* +// ``` +// +// 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 onresource 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) +// ``` +// +// If you want to use a regular expression, use the `eq` (equal) or `ne` +// (not equal) operator against a single un-parenthesized expression with +// or +// without quotes or against multiple parenthesized expressions. +// Examples: +// +// `fieldname eq unquoted literal` +// `fieldname eq 'single quoted literal'` +// `fieldname eq "double quoted literal" +// `(fieldname1 eq literal) (fieldname2 ne "literal")` +// +// The literal value is interpreted as a regular expression using GoogleRE2 +// library syntax. +// The literal value must match the entire field. +// +// For example, to filter for instances that do not end with name +// "instance", +// you would use `name ne .*instance`. +// +// You cannot combine constraints on multiple fields using regular +// expressions. +func (c *RoutersListBgpRoutesCall) Filter(filter string) *RoutersListBgpRoutesCall { + 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 *RoutersListBgpRoutesCall) MaxResults(maxResults int64) *RoutersListBgpRoutesCall { + 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 *RoutersListBgpRoutesCall) OrderBy(orderBy string) *RoutersListBgpRoutesCall { + 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 *RoutersListBgpRoutesCall) PageToken(pageToken string) *RoutersListBgpRoutesCall { + c.urlParams_.Set("pageToken", pageToken) + return c +} + +// Peer sets the optional parameter "peer": (Required) limit results to the BGP +// peer with the given name. +// Name should conform to RFC1035. +func (c *RoutersListBgpRoutesCall) Peer(peer string) *RoutersListBgpRoutesCall { + c.urlParams_.Set("peer", peer) + return c +} + +// PolicyApplied sets the optional parameter "policyApplied": When true, the +// method returns post-policy routes. Otherwise, it returns +// pre-policy routes. +func (c *RoutersListBgpRoutesCall) PolicyApplied(policyApplied bool) *RoutersListBgpRoutesCall { + c.urlParams_.Set("policyApplied", fmt.Sprint(policyApplied)) + return c +} + +// ReturnPartialSuccess sets the optional parameter "returnPartialSuccess": +// Opt-in for partial success behavior which provides partial results in +// case +// of failure. The default value is false. +// +// For example, when partial success behavior is enabled, aggregatedList for +// a +// single zone scope either returns all resources in the zone or no +// resources, +// with an error code. +func (c *RoutersListBgpRoutesCall) ReturnPartialSuccess(returnPartialSuccess bool) *RoutersListBgpRoutesCall { + c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess)) + return c +} + +// RouteType sets the optional parameter "routeType": (Required) limit results +// to this type of route (either LEARNED or +// ADVERTISED) +// +// Possible values: +// +// "ADVERTISED" +// "LEARNED" +// "UNSPECIFIED_ROUTE_TYPE" (default) +func (c *RoutersListBgpRoutesCall) RouteType(routeType string) *RoutersListBgpRoutesCall { + c.urlParams_.Set("routeType", routeType) + return c +} + +// Fields allows partial responses to be retrieved. See +// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more +// details. +func (c *RoutersListBgpRoutesCall) Fields(s ...googleapi.Field) *RoutersListBgpRoutesCall { + c.urlParams_.Set("fields", googleapi.CombineFields(s)) + return c +} + +// IfNoneMatch sets an 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. +func (c *RoutersListBgpRoutesCall) IfNoneMatch(entityTag string) *RoutersListBgpRoutesCall { + c.ifNoneMatch_ = entityTag + return c +} + +// Context sets the context to be used in this call's Do method. +func (c *RoutersListBgpRoutesCall) Context(ctx context.Context) *RoutersListBgpRoutesCall { + c.ctx_ = ctx + return c +} + +// Header returns a http.Header that can be modified by the caller to add +// headers to the request. +func (c *RoutersListBgpRoutesCall) Header() http.Header { + if c.header_ == nil { + c.header_ = make(http.Header) + } + return c.header_ +} + +func (c *RoutersListBgpRoutesCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) + if c.ifNoneMatch_ != "" { + reqHeaders.Set("If-None-Match", c.ifNoneMatch_) + } + c.urlParams_.Set("alt", alt) + c.urlParams_.Set("prettyPrint", "false") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/routers/{router}/listBgpRoutes") + urls += "?" + c.urlParams_.Encode() + req, err := http.NewRequest("GET", urls, nil) + if err != nil { + return nil, err + } + req.Header = reqHeaders + googleapi.Expand(req.URL, map[string]string{ + "project": c.project, + "region": c.region, + "router": c.router, + }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.routers.listBgpRoutes", "request", internallog.HTTPRequest(req, nil)) + return gensupport.SendRequest(c.ctx_, c.s.client, req) +} + +// Do executes the "compute.routers.listBgpRoutes" call. +// Any non-2xx status code is an error. Response headers are in either +// *RoutersListBgpRoutes.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 *RoutersListBgpRoutesCall) Do(opts ...googleapi.CallOption) (*RoutersListBgpRoutes, 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, gensupport.WrapError(&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, gensupport.WrapError(err) + } + ret := &RoutersListBgpRoutes{ + ServerResponse: googleapi.ServerResponse{ + Header: res.Header, + HTTPStatusCode: res.StatusCode, + }, + } + target := &ret + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { + return nil, err + } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.routers.listBgpRoutes", "response", internallog.HTTPResponse(res, b)) + return ret, nil +} + +// 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 *RoutersListBgpRoutesCall) Pages(ctx context.Context, f func(*RoutersListBgpRoutes) error) error { + c.ctx_ = ctx + defer c.PageToken(c.urlParams_.Get("pageToken")) + 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) + } +} + +type RoutersListNamedSetsCall struct { + s *Service + project string + region string + router string + urlParams_ gensupport.URLParams + ifNoneMatch_ string + ctx_ context.Context + header_ http.Header +} + +// ListNamedSets: Retrieves a list of router named set subresources available +// to the +// specified project. +// +// - project: Project ID for this request. +// - region: Name of the region for this request. +// - router: Name or id of the resource for this request. +// Name should conform to RFC1035. +func (r *RoutersService) ListNamedSets(project string, region string, router string) *RoutersListNamedSetsCall { + c := &RoutersListNamedSetsCall{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. Most +// Compute resources support two types of filter expressions: +// expressions that support regular expressions and expressions that follow +// API improvement proposal AIP-160. +// These two types of filter expressions cannot be mixed in one request. +// +// If you want to use AIP-160, your expression must specify the field name, +// an +// operator, and the value that you want to use for filtering. The value +// must be a string, a number, or a boolean. The 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`. +// +// The `:*` comparison can be used to test whether a key has been defined. +// For example, to find all objects with `owner` label +// use: +// ``` +// labels.owner:* +// ``` +// +// 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 onresource 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) +// ``` +// +// If you want to use a regular expression, use the `eq` (equal) or `ne` +// (not equal) operator against a single un-parenthesized expression with +// or +// without quotes or against multiple parenthesized expressions. +// Examples: +// +// `fieldname eq unquoted literal` +// `fieldname eq 'single quoted literal'` +// `fieldname eq "double quoted literal" +// `(fieldname1 eq literal) (fieldname2 ne "literal")` +// +// The literal value is interpreted as a regular expression using GoogleRE2 +// library syntax. +// The literal value must match the entire field. +// +// For example, to filter for instances that do not end with name +// "instance", +// you would use `name ne .*instance`. +// +// You cannot combine constraints on multiple fields using regular +// expressions. +func (c *RoutersListNamedSetsCall) Filter(filter string) *RoutersListNamedSetsCall { + 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 *RoutersListNamedSetsCall) MaxResults(maxResults int64) *RoutersListNamedSetsCall { + 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 *RoutersListNamedSetsCall) OrderBy(orderBy string) *RoutersListNamedSetsCall { + 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 *RoutersListNamedSetsCall) PageToken(pageToken string) *RoutersListNamedSetsCall { + c.urlParams_.Set("pageToken", pageToken) + return c +} + +// ReturnPartialSuccess sets the optional parameter "returnPartialSuccess": +// Opt-in for partial success behavior which provides partial results in +// case +// of failure. The default value is false. +// +// For example, when partial success behavior is enabled, aggregatedList for +// a +// single zone scope either returns all resources in the zone or no +// resources, +// with an error code. +func (c *RoutersListNamedSetsCall) ReturnPartialSuccess(returnPartialSuccess bool) *RoutersListNamedSetsCall { + c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess)) + return c +} + +// Fields allows partial responses to be retrieved. See +// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more +// details. +func (c *RoutersListNamedSetsCall) Fields(s ...googleapi.Field) *RoutersListNamedSetsCall { + c.urlParams_.Set("fields", googleapi.CombineFields(s)) + return c +} + +// IfNoneMatch sets an 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. +func (c *RoutersListNamedSetsCall) IfNoneMatch(entityTag string) *RoutersListNamedSetsCall { + c.ifNoneMatch_ = entityTag + return c +} + +// Context sets the context to be used in this call's Do method. +func (c *RoutersListNamedSetsCall) Context(ctx context.Context) *RoutersListNamedSetsCall { + c.ctx_ = ctx + return c +} + +// Header returns a http.Header that can be modified by the caller to add +// headers to the request. +func (c *RoutersListNamedSetsCall) Header() http.Header { + if c.header_ == nil { + c.header_ = make(http.Header) + } + return c.header_ +} + +func (c *RoutersListNamedSetsCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) + if c.ifNoneMatch_ != "" { + reqHeaders.Set("If-None-Match", c.ifNoneMatch_) + } + c.urlParams_.Set("alt", alt) + c.urlParams_.Set("prettyPrint", "false") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/routers/{router}/listNamedSets") + urls += "?" + c.urlParams_.Encode() + req, err := http.NewRequest("GET", urls, nil) + if err != nil { + return nil, err + } + req.Header = reqHeaders + googleapi.Expand(req.URL, map[string]string{ + "project": c.project, + "region": c.region, + "router": c.router, + }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.routers.listNamedSets", "request", internallog.HTTPRequest(req, nil)) + return gensupport.SendRequest(c.ctx_, c.s.client, req) +} + +// Do executes the "compute.routers.listNamedSets" call. +// Any non-2xx status code is an error. Response headers are in either +// *RoutersListNamedSets.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 *RoutersListNamedSetsCall) Do(opts ...googleapi.CallOption) (*RoutersListNamedSets, 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, gensupport.WrapError(&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, gensupport.WrapError(err) + } + ret := &RoutersListNamedSets{ + ServerResponse: googleapi.ServerResponse{ + Header: res.Header, + HTTPStatusCode: res.StatusCode, + }, + } + target := &ret + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { + return nil, err + } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.routers.listNamedSets", "response", internallog.HTTPResponse(res, b)) + return ret, nil +} + +// 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 *RoutersListNamedSetsCall) Pages(ctx context.Context, f func(*RoutersListNamedSets) error) error { + c.ctx_ = ctx + defer c.PageToken(c.urlParams_.Get("pageToken")) + 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) + } +} + +type RoutersListRoutePoliciesCall struct { + s *Service + project string + region string + router string + urlParams_ gensupport.URLParams + ifNoneMatch_ string + ctx_ context.Context + header_ http.Header +} + +// ListRoutePolicies: Retrieves a list of router route policy subresources +// available to the +// specified project. +// +// - project: Project ID for this request. +// - region: Name of the region for this request. +// - router: Name or id of the resource for this request. +// Name should conform to RFC1035. +func (r *RoutersService) ListRoutePolicies(project string, region string, router string) *RoutersListRoutePoliciesCall { + c := &RoutersListRoutePoliciesCall{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. Most +// Compute resources support two types of filter expressions: +// expressions that support regular expressions and expressions that follow +// API improvement proposal AIP-160. +// These two types of filter expressions cannot be mixed in one request. +// +// If you want to use AIP-160, your expression must specify the field name, +// an +// operator, and the value that you want to use for filtering. The value +// must be a string, a number, or a boolean. The 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`. +// +// The `:*` comparison can be used to test whether a key has been defined. +// For example, to find all objects with `owner` label +// use: +// ``` +// labels.owner:* +// ``` +// +// 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 onresource 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) +// ``` +// +// If you want to use a regular expression, use the `eq` (equal) or `ne` +// (not equal) operator against a single un-parenthesized expression with +// or +// without quotes or against multiple parenthesized expressions. +// Examples: +// +// `fieldname eq unquoted literal` +// `fieldname eq 'single quoted literal'` +// `fieldname eq "double quoted literal" +// `(fieldname1 eq literal) (fieldname2 ne "literal")` +// +// The literal value is interpreted as a regular expression using GoogleRE2 +// library syntax. +// The literal value must match the entire field. +// +// For example, to filter for instances that do not end with name +// "instance", +// you would use `name ne .*instance`. +// +// You cannot combine constraints on multiple fields using regular +// expressions. +func (c *RoutersListRoutePoliciesCall) Filter(filter string) *RoutersListRoutePoliciesCall { + 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 *RoutersListRoutePoliciesCall) MaxResults(maxResults int64) *RoutersListRoutePoliciesCall { + 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 *RoutersListRoutePoliciesCall) OrderBy(orderBy string) *RoutersListRoutePoliciesCall { + 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 *RoutersListRoutePoliciesCall) PageToken(pageToken string) *RoutersListRoutePoliciesCall { + c.urlParams_.Set("pageToken", pageToken) + return c +} + +// ReturnPartialSuccess sets the optional parameter "returnPartialSuccess": +// Opt-in for partial success behavior which provides partial results in +// case +// of failure. The default value is false. +// +// For example, when partial success behavior is enabled, aggregatedList for +// a +// single zone scope either returns all resources in the zone or no +// resources, +// with an error code. +func (c *RoutersListRoutePoliciesCall) ReturnPartialSuccess(returnPartialSuccess bool) *RoutersListRoutePoliciesCall { + c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess)) + return c +} + +// Fields allows partial responses to be retrieved. See +// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more +// details. +func (c *RoutersListRoutePoliciesCall) Fields(s ...googleapi.Field) *RoutersListRoutePoliciesCall { + c.urlParams_.Set("fields", googleapi.CombineFields(s)) + return c +} + +// IfNoneMatch sets an 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. +func (c *RoutersListRoutePoliciesCall) IfNoneMatch(entityTag string) *RoutersListRoutePoliciesCall { + c.ifNoneMatch_ = entityTag + return c +} + +// Context sets the context to be used in this call's Do method. +func (c *RoutersListRoutePoliciesCall) Context(ctx context.Context) *RoutersListRoutePoliciesCall { + c.ctx_ = ctx + return c +} + +// Header returns a http.Header that can be modified by the caller to add +// headers to the request. +func (c *RoutersListRoutePoliciesCall) Header() http.Header { + if c.header_ == nil { + c.header_ = make(http.Header) + } + return c.header_ +} + +func (c *RoutersListRoutePoliciesCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) + if c.ifNoneMatch_ != "" { + reqHeaders.Set("If-None-Match", c.ifNoneMatch_) + } + c.urlParams_.Set("alt", alt) + c.urlParams_.Set("prettyPrint", "false") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/routers/{router}/listRoutePolicies") + urls += "?" + c.urlParams_.Encode() + req, err := http.NewRequest("GET", urls, nil) + if err != nil { + return nil, err + } + req.Header = reqHeaders + googleapi.Expand(req.URL, map[string]string{ + "project": c.project, + "region": c.region, + "router": c.router, + }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.routers.listRoutePolicies", "request", internallog.HTTPRequest(req, nil)) + return gensupport.SendRequest(c.ctx_, c.s.client, req) +} + +// Do executes the "compute.routers.listRoutePolicies" call. +// Any non-2xx status code is an error. Response headers are in either +// *RoutersListRoutePolicies.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 *RoutersListRoutePoliciesCall) Do(opts ...googleapi.CallOption) (*RoutersListRoutePolicies, 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, gensupport.WrapError(&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, gensupport.WrapError(err) + } + ret := &RoutersListRoutePolicies{ + ServerResponse: googleapi.ServerResponse{ + Header: res.Header, + HTTPStatusCode: res.StatusCode, + }, + } + target := &ret + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { + return nil, err + } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.routers.listRoutePolicies", "response", internallog.HTTPResponse(res, b)) + return ret, nil +} + +// 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 *RoutersListRoutePoliciesCall) Pages(ctx context.Context, f func(*RoutersListRoutePolicies) error) error { + c.ctx_ = ctx + defer c.PageToken(c.urlParams_.Get("pageToken")) + 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) + } +} + +type RoutersPatchCall struct { + s *Service + project string + region string + router string + router2 *Router + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header +} + +// Patch: Patches the specified Router resource with the data included in +// the +// request. This method supportsPATCH +// semantics and usesJSON merge +// patch format and processing rules. +// +// - project: Project ID for this request. +// - region: Name of the region for this request. +// - router: Name of the Router resource to patch. +func (r *RoutersService) Patch(project string, region string, router string, router2 *Router) *RoutersPatchCall { + c := &RoutersPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)} + c.project = project + c.region = region + c.router = router + c.router2 = router2 + 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 *RoutersPatchCall) RequestId(requestId string) *RoutersPatchCall { + 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 +// details. +func (c *RoutersPatchCall) Fields(s ...googleapi.Field) *RoutersPatchCall { + c.urlParams_.Set("fields", googleapi.CombineFields(s)) + return c +} + +// Context sets the context to be used in this call's Do method. +func (c *RoutersPatchCall) Context(ctx context.Context) *RoutersPatchCall { + c.ctx_ = ctx + return c +} + +// Header returns a http.Header that can be modified by the caller to add +// headers to the request. +func (c *RoutersPatchCall) Header() http.Header { + if c.header_ == nil { + c.header_ = make(http.Header) + } + return c.header_ +} + +func (c *RoutersPatchCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) + body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.router2) + if err != nil { + return nil, err + } + c.urlParams_.Set("alt", alt) + c.urlParams_.Set("prettyPrint", "false") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/routers/{router}") + urls += "?" + c.urlParams_.Encode() + req, err := http.NewRequest("PATCH", urls, body) + if err != nil { + return nil, err + } + req.Header = reqHeaders + googleapi.Expand(req.URL, map[string]string{ + "project": c.project, + "region": c.region, + "router": c.router, + }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.routers.patch", "request", internallog.HTTPRequest(req, body.Bytes())) + return gensupport.SendRequest(c.ctx_, c.s.client, req) +} + +// Do executes the "compute.routers.patch" call. +// 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 *RoutersPatchCall) 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, gensupport.WrapError(&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, gensupport.WrapError(err) + } + ret := &Operation{ + ServerResponse: googleapi.ServerResponse{ + Header: res.Header, + HTTPStatusCode: res.StatusCode, + }, + } + target := &ret + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { + return nil, err + } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.routers.patch", "response", internallog.HTTPResponse(res, b)) + return ret, nil +} + +type RoutersPatchNamedSetCall struct { + s *Service + project string + region string + router string + namedset *NamedSet + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header +} + +// PatchNamedSet: Patches Named Set +// +// - project: Project ID for this request. +// - region: Name of the region for this request. +// - router: Name of the Router resource where Named Set is defined. +func (r *RoutersService) PatchNamedSet(project string, region string, router string, namedset *NamedSet) *RoutersPatchNamedSetCall { + c := &RoutersPatchNamedSetCall{s: r.s, urlParams_: make(gensupport.URLParams)} + c.project = project + c.region = region + c.router = router + c.namedset = namedset + 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 *RoutersPatchNamedSetCall) RequestId(requestId string) *RoutersPatchNamedSetCall { + 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 +// details. +func (c *RoutersPatchNamedSetCall) Fields(s ...googleapi.Field) *RoutersPatchNamedSetCall { + c.urlParams_.Set("fields", googleapi.CombineFields(s)) + return c +} + +// Context sets the context to be used in this call's Do method. +func (c *RoutersPatchNamedSetCall) Context(ctx context.Context) *RoutersPatchNamedSetCall { + c.ctx_ = ctx + return c +} + +// Header returns a http.Header that can be modified by the caller to add +// headers to the request. +func (c *RoutersPatchNamedSetCall) Header() http.Header { + if c.header_ == nil { + c.header_ = make(http.Header) + } + return c.header_ +} + +func (c *RoutersPatchNamedSetCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) + body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.namedset) + if err != nil { + return nil, err + } + c.urlParams_.Set("alt", alt) + c.urlParams_.Set("prettyPrint", "false") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/routers/{router}/patchNamedSet") + urls += "?" + c.urlParams_.Encode() + req, err := http.NewRequest("POST", urls, body) + if err != nil { + return nil, err + } + req.Header = reqHeaders + googleapi.Expand(req.URL, map[string]string{ + "project": c.project, + "region": c.region, + "router": c.router, + }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.routers.patchNamedSet", "request", internallog.HTTPRequest(req, body.Bytes())) + return gensupport.SendRequest(c.ctx_, c.s.client, req) +} + +// Do executes the "compute.routers.patchNamedSet" call. +// 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 *RoutersPatchNamedSetCall) 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, gensupport.WrapError(&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, gensupport.WrapError(err) + } + ret := &Operation{ + ServerResponse: googleapi.ServerResponse{ + Header: res.Header, + HTTPStatusCode: res.StatusCode, + }, + } + target := &ret + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { + return nil, err + } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.routers.patchNamedSet", "response", internallog.HTTPResponse(res, b)) + return ret, nil +} + +type RoutersPatchRoutePolicyCall struct { + s *Service + project string + region string + router string + routepolicy *RoutePolicy + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header +} + +// PatchRoutePolicy: Patches Route Policy +// +// - project: Project ID for this request. +// - region: Name of the region for this request. +// - router: Name of the Router resource where Route Policy is defined. +func (r *RoutersService) PatchRoutePolicy(project string, region string, router string, routepolicy *RoutePolicy) *RoutersPatchRoutePolicyCall { + c := &RoutersPatchRoutePolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)} + c.project = project + c.region = region + c.router = router + c.routepolicy = routepolicy + 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 *RoutersPatchRoutePolicyCall) RequestId(requestId string) *RoutersPatchRoutePolicyCall { + 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 +// details. +func (c *RoutersPatchRoutePolicyCall) Fields(s ...googleapi.Field) *RoutersPatchRoutePolicyCall { + c.urlParams_.Set("fields", googleapi.CombineFields(s)) + return c +} + +// Context sets the context to be used in this call's Do method. +func (c *RoutersPatchRoutePolicyCall) Context(ctx context.Context) *RoutersPatchRoutePolicyCall { + c.ctx_ = ctx + return c +} + +// Header returns a http.Header that can be modified by the caller to add +// headers to the request. +func (c *RoutersPatchRoutePolicyCall) Header() http.Header { + if c.header_ == nil { + c.header_ = make(http.Header) + } + return c.header_ +} + +func (c *RoutersPatchRoutePolicyCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) + body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.routepolicy) + if err != nil { + return nil, err + } + c.urlParams_.Set("alt", alt) + c.urlParams_.Set("prettyPrint", "false") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/routers/{router}/patchRoutePolicy") + urls += "?" + c.urlParams_.Encode() + req, err := http.NewRequest("POST", urls, body) + if err != nil { + return nil, err + } + req.Header = reqHeaders + googleapi.Expand(req.URL, map[string]string{ + "project": c.project, + "region": c.region, + "router": c.router, + }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.routers.patchRoutePolicy", "request", internallog.HTTPRequest(req, body.Bytes())) + return gensupport.SendRequest(c.ctx_, c.s.client, req) +} + +// Do executes the "compute.routers.patchRoutePolicy" call. +// 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 *RoutersPatchRoutePolicyCall) 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, gensupport.WrapError(&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, gensupport.WrapError(err) + } + ret := &Operation{ + ServerResponse: googleapi.ServerResponse{ + Header: res.Header, + HTTPStatusCode: res.StatusCode, + }, + } + target := &ret + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { + return nil, err + } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.routers.patchRoutePolicy", "response", internallog.HTTPResponse(res, b)) + return ret, nil +} + +type RoutersPreviewCall struct { + s *Service + project string + region string + router string + router2 *Router + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header +} + +// Preview: Preview fields auto-generated during router create andupdate +// operations. +// Calling this method does NOT create or update the router. +// +// - project: Project ID for this request. +// - region: Name of the region for this request. +// - router: Name of the Router resource to query. +func (r *RoutersService) Preview(project string, region string, router string, router2 *Router) *RoutersPreviewCall { + c := &RoutersPreviewCall{s: r.s, urlParams_: make(gensupport.URLParams)} + c.project = project + c.region = region + c.router = router + c.router2 = router2 + return c +} + +// Fields allows partial responses to be retrieved. See +// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more +// details. +func (c *RoutersPreviewCall) Fields(s ...googleapi.Field) *RoutersPreviewCall { + c.urlParams_.Set("fields", googleapi.CombineFields(s)) + return c +} + +// Context sets the context to be used in this call's Do method. +func (c *RoutersPreviewCall) Context(ctx context.Context) *RoutersPreviewCall { + c.ctx_ = ctx + return c +} + +// Header returns a http.Header that can be modified by the caller to add +// headers to the request. +func (c *RoutersPreviewCall) Header() http.Header { + if c.header_ == nil { + c.header_ = make(http.Header) + } + return c.header_ +} + +func (c *RoutersPreviewCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) + body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.router2) + if err != nil { + return nil, err + } + c.urlParams_.Set("alt", alt) + c.urlParams_.Set("prettyPrint", "false") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/routers/{router}/preview") + urls += "?" + c.urlParams_.Encode() + req, err := http.NewRequest("POST", urls, body) + if err != nil { + return nil, err + } + req.Header = reqHeaders + googleapi.Expand(req.URL, map[string]string{ + "project": c.project, + "region": c.region, + "router": c.router, + }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.routers.preview", "request", internallog.HTTPRequest(req, body.Bytes())) + return gensupport.SendRequest(c.ctx_, c.s.client, req) +} + +// Do executes the "compute.routers.preview" call. +// Any non-2xx status code is an error. Response headers are in either +// *RoutersPreviewResponse.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 *RoutersPreviewCall) Do(opts ...googleapi.CallOption) (*RoutersPreviewResponse, 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, gensupport.WrapError(&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, gensupport.WrapError(err) + } + ret := &RoutersPreviewResponse{ + ServerResponse: googleapi.ServerResponse{ + Header: res.Header, + HTTPStatusCode: res.StatusCode, + }, + } + target := &ret + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { + return nil, err + } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.routers.preview", "response", internallog.HTTPResponse(res, b)) + return ret, nil +} + +type RoutersUpdateCall struct { + s *Service + project string + region string + router string + router2 *Router + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header +} + +// Update: Updates the specified Router resource with the data included in +// the +// request. This method conforms toPUT semantics, which requests that the +// state of the +// target resource be created or replaced with the state defined by +// the +// representation enclosed in the request message payload. +// +// - project: Project ID for this request. +// - region: Name of the region for this request. +// - router: Name of the Router resource to update. +func (r *RoutersService) Update(project string, region string, router string, router2 *Router) *RoutersUpdateCall { + c := &RoutersUpdateCall{s: r.s, urlParams_: make(gensupport.URLParams)} + c.project = project + c.region = region + c.router = router + c.router2 = router2 + 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 *RoutersUpdateCall) RequestId(requestId string) *RoutersUpdateCall { + 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 +// details. +func (c *RoutersUpdateCall) Fields(s ...googleapi.Field) *RoutersUpdateCall { + c.urlParams_.Set("fields", googleapi.CombineFields(s)) + return c +} + +// Context sets the context to be used in this call's Do method. +func (c *RoutersUpdateCall) Context(ctx context.Context) *RoutersUpdateCall { + c.ctx_ = ctx + return c +} + +// Header returns a http.Header that can be modified by the caller to add +// headers to the request. +func (c *RoutersUpdateCall) Header() http.Header { + if c.header_ == nil { + c.header_ = make(http.Header) + } + return c.header_ +} + +func (c *RoutersUpdateCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) + body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.router2) + if err != nil { + return nil, err + } + c.urlParams_.Set("alt", alt) + c.urlParams_.Set("prettyPrint", "false") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/routers/{router}") + urls += "?" + c.urlParams_.Encode() + req, err := http.NewRequest("PUT", urls, body) + if err != nil { + return nil, err + } + req.Header = reqHeaders + googleapi.Expand(req.URL, map[string]string{ + "project": c.project, + "region": c.region, + "router": c.router, + }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.routers.update", "request", internallog.HTTPRequest(req, body.Bytes())) + return gensupport.SendRequest(c.ctx_, c.s.client, req) +} + +// Do executes the "compute.routers.update" call. +// 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 *RoutersUpdateCall) 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, gensupport.WrapError(&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, gensupport.WrapError(err) + } + ret := &Operation{ + ServerResponse: googleapi.ServerResponse{ + Header: res.Header, + HTTPStatusCode: res.StatusCode, + }, + } + target := &ret + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { + return nil, err + } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.routers.update", "response", internallog.HTTPResponse(res, b)) + return ret, nil +} + +type RoutersUpdateNamedSetCall struct { + s *Service + project string + region string + router string + namedset *NamedSet + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header +} + +// UpdateNamedSet: Updates or creates new Named Set +// +// - project: Project ID for this request. +// - region: Name of the region for this request. +// - router: Name of the Router resource where Named Set is defined. +func (r *RoutersService) UpdateNamedSet(project string, region string, router string, namedset *NamedSet) *RoutersUpdateNamedSetCall { + c := &RoutersUpdateNamedSetCall{s: r.s, urlParams_: make(gensupport.URLParams)} + c.project = project + c.region = region + c.router = router + c.namedset = namedset + 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 *RoutersUpdateNamedSetCall) RequestId(requestId string) *RoutersUpdateNamedSetCall { + 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 +// details. +func (c *RoutersUpdateNamedSetCall) Fields(s ...googleapi.Field) *RoutersUpdateNamedSetCall { + c.urlParams_.Set("fields", googleapi.CombineFields(s)) + return c +} + +// Context sets the context to be used in this call's Do method. +func (c *RoutersUpdateNamedSetCall) Context(ctx context.Context) *RoutersUpdateNamedSetCall { + c.ctx_ = ctx + return c +} + +// Header returns a http.Header that can be modified by the caller to add +// headers to the request. +func (c *RoutersUpdateNamedSetCall) Header() http.Header { + if c.header_ == nil { + c.header_ = make(http.Header) + } + return c.header_ +} + +func (c *RoutersUpdateNamedSetCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) + body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.namedset) + if err != nil { + return nil, err + } + c.urlParams_.Set("alt", alt) + c.urlParams_.Set("prettyPrint", "false") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/routers/{router}/updateNamedSet") + urls += "?" + c.urlParams_.Encode() + req, err := http.NewRequest("POST", urls, body) + if err != nil { + return nil, err + } + req.Header = reqHeaders + googleapi.Expand(req.URL, map[string]string{ + "project": c.project, + "region": c.region, + "router": c.router, + }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.routers.updateNamedSet", "request", internallog.HTTPRequest(req, body.Bytes())) + return gensupport.SendRequest(c.ctx_, c.s.client, req) +} + +// Do executes the "compute.routers.updateNamedSet" call. +// 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 *RoutersUpdateNamedSetCall) 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, gensupport.WrapError(&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, gensupport.WrapError(err) + } + ret := &Operation{ + ServerResponse: googleapi.ServerResponse{ + Header: res.Header, + HTTPStatusCode: res.StatusCode, + }, + } + target := &ret + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { + return nil, err + } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.routers.updateNamedSet", "response", internallog.HTTPResponse(res, b)) + return ret, nil +} + +type RoutersUpdateRoutePolicyCall struct { + s *Service + project string + region string + router string + routepolicy *RoutePolicy + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header +} + +// UpdateRoutePolicy: Updates or creates new Route Policy +// +// - project: Project ID for this request. +// - region: Name of the region for this request. +// - router: Name of the Router resource where Route Policy is defined. +func (r *RoutersService) UpdateRoutePolicy(project string, region string, router string, routepolicy *RoutePolicy) *RoutersUpdateRoutePolicyCall { + c := &RoutersUpdateRoutePolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)} + c.project = project + c.region = region + c.router = router + c.routepolicy = routepolicy + 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 *RoutersUpdateRoutePolicyCall) RequestId(requestId string) *RoutersUpdateRoutePolicyCall { + 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 +// details. +func (c *RoutersUpdateRoutePolicyCall) Fields(s ...googleapi.Field) *RoutersUpdateRoutePolicyCall { + c.urlParams_.Set("fields", googleapi.CombineFields(s)) + return c +} + +// Context sets the context to be used in this call's Do method. +func (c *RoutersUpdateRoutePolicyCall) Context(ctx context.Context) *RoutersUpdateRoutePolicyCall { + c.ctx_ = ctx + return c +} + +// Header returns a http.Header that can be modified by the caller to add +// headers to the request. +func (c *RoutersUpdateRoutePolicyCall) Header() http.Header { + if c.header_ == nil { + c.header_ = make(http.Header) + } + return c.header_ +} + +func (c *RoutersUpdateRoutePolicyCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) + body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.routepolicy) + if err != nil { + return nil, err + } + c.urlParams_.Set("alt", alt) + c.urlParams_.Set("prettyPrint", "false") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/routers/{router}/updateRoutePolicy") + urls += "?" + c.urlParams_.Encode() + req, err := http.NewRequest("POST", urls, body) + if err != nil { + return nil, err + } + req.Header = reqHeaders + googleapi.Expand(req.URL, map[string]string{ + "project": c.project, + "region": c.region, + "router": c.router, + }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.routers.updateRoutePolicy", "request", internallog.HTTPRequest(req, body.Bytes())) + return gensupport.SendRequest(c.ctx_, c.s.client, req) +} + +// Do executes the "compute.routers.updateRoutePolicy" call. +// 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 *RoutersUpdateRoutePolicyCall) 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, gensupport.WrapError(&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, gensupport.WrapError(err) + } + ret := &Operation{ + ServerResponse: googleapi.ServerResponse{ + Header: res.Header, + HTTPStatusCode: res.StatusCode, + }, + } + target := &ret + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { + return nil, err + } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.routers.updateRoutePolicy", "response", internallog.HTTPResponse(res, b)) + return ret, nil +} + +type RoutesDeleteCall struct { + s *Service + project string + route string + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header +} + +// Delete: Deletes the specified Route resource. +// +// - project: Project ID for this request. +// - route: Name of the Route resource to delete. +func (r *RoutesService) Delete(project string, route string) *RoutesDeleteCall { + c := &RoutesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)} + c.project = project + c.route = route + 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 *RoutesDeleteCall) RequestId(requestId string) *RoutesDeleteCall { + 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 +// details. +func (c *RoutesDeleteCall) Fields(s ...googleapi.Field) *RoutesDeleteCall { + c.urlParams_.Set("fields", googleapi.CombineFields(s)) + return c +} + +// Context sets the context to be used in this call's Do method. +func (c *RoutesDeleteCall) Context(ctx context.Context) *RoutesDeleteCall { + c.ctx_ = ctx + return c +} + +// Header returns a http.Header that can be modified by the caller to add +// headers to the request. +func (c *RoutesDeleteCall) Header() http.Header { + if c.header_ == nil { + c.header_ = make(http.Header) + } + return c.header_ +} + +func (c *RoutesDeleteCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) + c.urlParams_.Set("alt", alt) + c.urlParams_.Set("prettyPrint", "false") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/routes/{route}") + urls += "?" + c.urlParams_.Encode() + req, err := http.NewRequest("DELETE", urls, nil) + if err != nil { + return nil, err + } + req.Header = reqHeaders + googleapi.Expand(req.URL, map[string]string{ + "project": c.project, + "route": c.route, + }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.routes.delete", "request", internallog.HTTPRequest(req, nil)) + return gensupport.SendRequest(c.ctx_, c.s.client, req) +} + +// Do executes the "compute.routes.delete" call. +// 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 *RoutesDeleteCall) 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, gensupport.WrapError(&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, gensupport.WrapError(err) + } + ret := &Operation{ + ServerResponse: googleapi.ServerResponse{ + Header: res.Header, + HTTPStatusCode: res.StatusCode, + }, + } + target := &ret + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { + return nil, err + } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.routes.delete", "response", internallog.HTTPResponse(res, b)) + return ret, nil +} + +type RoutesGetCall struct { + s *Service + project string + route string + urlParams_ gensupport.URLParams + ifNoneMatch_ string + ctx_ context.Context + header_ http.Header +} + +// Get: Returns the specified Route resource. +// +// - project: Project ID for this request. +// - route: Name of the Route resource to return. +func (r *RoutesService) Get(project string, route string) *RoutesGetCall { + c := &RoutesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)} + c.project = project + c.route = route + return c +} + +// Fields allows partial responses to be retrieved. See +// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more +// details. +func (c *RoutesGetCall) Fields(s ...googleapi.Field) *RoutesGetCall { + c.urlParams_.Set("fields", googleapi.CombineFields(s)) + return c +} + +// IfNoneMatch sets an 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. +func (c *RoutesGetCall) IfNoneMatch(entityTag string) *RoutesGetCall { + c.ifNoneMatch_ = entityTag + return c +} + +// Context sets the context to be used in this call's Do method. +func (c *RoutesGetCall) Context(ctx context.Context) *RoutesGetCall { + c.ctx_ = ctx + return c +} + +// Header returns a http.Header that can be modified by the caller to add +// headers to the request. +func (c *RoutesGetCall) Header() http.Header { + if c.header_ == nil { + c.header_ = make(http.Header) + } + return c.header_ +} + +func (c *RoutesGetCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) + if c.ifNoneMatch_ != "" { + reqHeaders.Set("If-None-Match", c.ifNoneMatch_) + } + c.urlParams_.Set("alt", alt) + c.urlParams_.Set("prettyPrint", "false") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/routes/{route}") + urls += "?" + c.urlParams_.Encode() + req, err := http.NewRequest("GET", urls, nil) + if err != nil { + return nil, err + } + req.Header = reqHeaders + googleapi.Expand(req.URL, map[string]string{ + "project": c.project, + "route": c.route, + }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.routes.get", "request", internallog.HTTPRequest(req, nil)) + return gensupport.SendRequest(c.ctx_, c.s.client, req) +} + +// Do executes the "compute.routes.get" call. +// Any non-2xx status code is an error. Response headers are in either +// *Route.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 *RoutesGetCall) Do(opts ...googleapi.CallOption) (*Route, 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, gensupport.WrapError(&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, gensupport.WrapError(err) + } + ret := &Route{ + ServerResponse: googleapi.ServerResponse{ + Header: res.Header, + HTTPStatusCode: res.StatusCode, + }, + } + target := &ret + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { + return nil, err + } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.routes.get", "response", internallog.HTTPResponse(res, b)) + return ret, nil +} + +type RoutesInsertCall struct { + s *Service + project string + route *Route + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header +} + +// Insert: Creates a Route resource in the specified project using the data +// included +// in the request. +// +// - project: Project ID for this request. +func (r *RoutesService) Insert(project string, route *Route) *RoutesInsertCall { + c := &RoutesInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)} + c.project = project + c.route = route + 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 *RoutesInsertCall) RequestId(requestId string) *RoutesInsertCall { + 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 +// details. +func (c *RoutesInsertCall) Fields(s ...googleapi.Field) *RoutesInsertCall { + c.urlParams_.Set("fields", googleapi.CombineFields(s)) + return c +} + +// Context sets the context to be used in this call's Do method. +func (c *RoutesInsertCall) Context(ctx context.Context) *RoutesInsertCall { + c.ctx_ = ctx + return c +} + +// Header returns a http.Header that can be modified by the caller to add +// headers to the request. +func (c *RoutesInsertCall) Header() http.Header { + if c.header_ == nil { + c.header_ = make(http.Header) + } + return c.header_ +} + +func (c *RoutesInsertCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) + body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.route) + if err != nil { + return nil, err + } + c.urlParams_.Set("alt", alt) + c.urlParams_.Set("prettyPrint", "false") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/routes") + urls += "?" + c.urlParams_.Encode() + req, err := http.NewRequest("POST", urls, body) + if err != nil { + return nil, err + } + req.Header = reqHeaders + googleapi.Expand(req.URL, map[string]string{ + "project": c.project, + }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.routes.insert", "request", internallog.HTTPRequest(req, body.Bytes())) + return gensupport.SendRequest(c.ctx_, c.s.client, req) +} + +// Do executes the "compute.routes.insert" call. +// 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 *RoutesInsertCall) 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, gensupport.WrapError(&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, gensupport.WrapError(err) + } + ret := &Operation{ + ServerResponse: googleapi.ServerResponse{ + Header: res.Header, + HTTPStatusCode: res.StatusCode, + }, + } + target := &ret + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { + return nil, err + } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.routes.insert", "response", internallog.HTTPResponse(res, b)) + return ret, nil +} + +type RoutesListCall struct { + s *Service + project string + urlParams_ gensupport.URLParams + ifNoneMatch_ string + ctx_ context.Context + header_ http.Header +} + +// List: Retrieves the list of Route resources available to the specified +// project. +// +// - project: Project ID for this request. +func (r *RoutesService) List(project string) *RoutesListCall { + c := &RoutesListCall{s: r.s, urlParams_: make(gensupport.URLParams)} + c.project = project + return c +} + +// Filter sets the optional parameter "filter": A filter expression that +// filters resources listed in the response. Most +// Compute resources support two types of filter expressions: +// expressions that support regular expressions and expressions that follow +// API improvement proposal AIP-160. +// These two types of filter expressions cannot be mixed in one request. +// +// If you want to use AIP-160, your expression must specify the field name, +// an +// operator, and the value that you want to use for filtering. The value +// must be a string, a number, or a boolean. The 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`. +// +// The `:*` comparison can be used to test whether a key has been defined. +// For example, to find all objects with `owner` label +// use: +// ``` +// labels.owner:* +// ``` +// +// 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 onresource 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) +// ``` +// +// If you want to use a regular expression, use the `eq` (equal) or `ne` +// (not equal) operator against a single un-parenthesized expression with +// or +// without quotes or against multiple parenthesized expressions. +// Examples: +// +// `fieldname eq unquoted literal` +// `fieldname eq 'single quoted literal'` +// `fieldname eq "double quoted literal" +// `(fieldname1 eq literal) (fieldname2 ne "literal")` +// +// The literal value is interpreted as a regular expression using GoogleRE2 +// library syntax. +// The literal value must match the entire field. +// +// For example, to filter for instances that do not end with name +// "instance", +// you would use `name ne .*instance`. +// +// You cannot combine constraints on multiple fields using regular +// expressions. +func (c *RoutesListCall) Filter(filter string) *RoutesListCall { + 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 *RoutesListCall) MaxResults(maxResults int64) *RoutesListCall { + 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 *RoutesListCall) OrderBy(orderBy string) *RoutesListCall { + 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 *RoutesListCall) PageToken(pageToken string) *RoutesListCall { + c.urlParams_.Set("pageToken", pageToken) + return c +} + +// ReturnPartialSuccess sets the optional parameter "returnPartialSuccess": +// Opt-in for partial success behavior which provides partial results in +// case +// of failure. The default value is false. +// +// For example, when partial success behavior is enabled, aggregatedList for +// a +// single zone scope either returns all resources in the zone or no +// resources, +// with an error code. +func (c *RoutesListCall) ReturnPartialSuccess(returnPartialSuccess bool) *RoutesListCall { + c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess)) + return c +} + +// Fields allows partial responses to be retrieved. See +// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more +// details. +func (c *RoutesListCall) Fields(s ...googleapi.Field) *RoutesListCall { + c.urlParams_.Set("fields", googleapi.CombineFields(s)) + return c +} + +// IfNoneMatch sets an 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. +func (c *RoutesListCall) IfNoneMatch(entityTag string) *RoutesListCall { + c.ifNoneMatch_ = entityTag + return c +} + +// Context sets the context to be used in this call's Do method. +func (c *RoutesListCall) Context(ctx context.Context) *RoutesListCall { + c.ctx_ = ctx + return c +} + +// Header returns a http.Header that can be modified by the caller to add +// headers to the request. +func (c *RoutesListCall) Header() http.Header { + if c.header_ == nil { + c.header_ = make(http.Header) + } + return c.header_ +} + +func (c *RoutesListCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) + if c.ifNoneMatch_ != "" { + reqHeaders.Set("If-None-Match", c.ifNoneMatch_) + } + c.urlParams_.Set("alt", alt) + c.urlParams_.Set("prettyPrint", "false") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/routes") + urls += "?" + c.urlParams_.Encode() + req, err := http.NewRequest("GET", urls, nil) + if err != nil { + return nil, err + } + req.Header = reqHeaders + googleapi.Expand(req.URL, map[string]string{ + "project": c.project, + }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.routes.list", "request", internallog.HTTPRequest(req, nil)) + return gensupport.SendRequest(c.ctx_, c.s.client, req) +} + +// Do executes the "compute.routes.list" call. +// Any non-2xx status code is an error. Response headers are in either +// *RouteList.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 *RoutesListCall) Do(opts ...googleapi.CallOption) (*RouteList, 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, gensupport.WrapError(&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, gensupport.WrapError(err) + } + ret := &RouteList{ + ServerResponse: googleapi.ServerResponse{ + Header: res.Header, + HTTPStatusCode: res.StatusCode, + }, + } + target := &ret + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { + return nil, err + } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.routes.list", "response", internallog.HTTPResponse(res, b)) + return ret, nil +} + +// 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 *RoutesListCall) Pages(ctx context.Context, f func(*RouteList) error) error { + c.ctx_ = ctx + defer c.PageToken(c.urlParams_.Get("pageToken")) + 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) + } +} + +type RoutesTestIamPermissionsCall struct { + s *Service + project string + resource string + testpermissionsrequest *TestPermissionsRequest + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header +} + +// TestIamPermissions: Returns permissions that a caller has on the specified +// resource. +// +// - project: Project ID for this request. +// - resource: Name or id of the resource for this request. +func (r *RoutesService) TestIamPermissions(project string, resource string, testpermissionsrequest *TestPermissionsRequest) *RoutesTestIamPermissionsCall { + c := &RoutesTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)} + c.project = project + c.resource = resource + c.testpermissionsrequest = testpermissionsrequest + return c +} + +// Fields allows partial responses to be retrieved. See +// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more +// details. +func (c *RoutesTestIamPermissionsCall) Fields(s ...googleapi.Field) *RoutesTestIamPermissionsCall { + c.urlParams_.Set("fields", googleapi.CombineFields(s)) + return c +} + +// Context sets the context to be used in this call's Do method. +func (c *RoutesTestIamPermissionsCall) Context(ctx context.Context) *RoutesTestIamPermissionsCall { + c.ctx_ = ctx + return c +} + +// Header returns a http.Header that can be modified by the caller to add +// headers to the request. +func (c *RoutesTestIamPermissionsCall) Header() http.Header { + if c.header_ == nil { + c.header_ = make(http.Header) + } + return c.header_ +} + +func (c *RoutesTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) + body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.testpermissionsrequest) + if err != nil { + return nil, err + } + c.urlParams_.Set("alt", alt) + c.urlParams_.Set("prettyPrint", "false") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/routes/{resource}/testIamPermissions") + urls += "?" + c.urlParams_.Encode() + req, err := http.NewRequest("POST", urls, body) + if err != nil { + return nil, err + } + req.Header = reqHeaders + googleapi.Expand(req.URL, map[string]string{ + "project": c.project, + "resource": c.resource, + }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.routes.testIamPermissions", "request", internallog.HTTPRequest(req, body.Bytes())) + return gensupport.SendRequest(c.ctx_, c.s.client, req) +} + +// Do executes the "compute.routes.testIamPermissions" call. +// Any non-2xx status code is an error. Response headers are in either +// *TestPermissionsResponse.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 *RoutesTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, 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, gensupport.WrapError(&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, gensupport.WrapError(err) + } + ret := &TestPermissionsResponse{ + ServerResponse: googleapi.ServerResponse{ + Header: res.Header, + HTTPStatusCode: res.StatusCode, + }, + } + target := &ret + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { + return nil, err + } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.routes.testIamPermissions", "response", internallog.HTTPResponse(res, b)) + return ret, nil +} + +type SecurityPoliciesAddRuleCall struct { + s *Service + project string + securityPolicy string + securitypolicyrule *SecurityPolicyRule + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header +} + +// AddRule: Inserts a rule into a security policy. +// +// - project: Project ID for this request. +// - securityPolicy: Name of the security policy to update. +func (r *SecurityPoliciesService) AddRule(project string, securityPolicy string, securitypolicyrule *SecurityPolicyRule) *SecurityPoliciesAddRuleCall { + c := &SecurityPoliciesAddRuleCall{s: r.s, urlParams_: make(gensupport.URLParams)} + c.project = project + c.securityPolicy = securityPolicy + c.securitypolicyrule = securitypolicyrule + return c +} + +// ValidateOnly sets the optional parameter "validateOnly": If true, the +// request will not be committed. +func (c *SecurityPoliciesAddRuleCall) ValidateOnly(validateOnly bool) *SecurityPoliciesAddRuleCall { + c.urlParams_.Set("validateOnly", fmt.Sprint(validateOnly)) + return c +} + +// Fields allows partial responses to be retrieved. See +// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more +// details. +func (c *SecurityPoliciesAddRuleCall) Fields(s ...googleapi.Field) *SecurityPoliciesAddRuleCall { + c.urlParams_.Set("fields", googleapi.CombineFields(s)) + return c +} + +// Context sets the context to be used in this call's Do method. +func (c *SecurityPoliciesAddRuleCall) Context(ctx context.Context) *SecurityPoliciesAddRuleCall { + c.ctx_ = ctx + return c +} + +// Header returns a http.Header that can be modified by the caller to add +// headers to the request. +func (c *SecurityPoliciesAddRuleCall) Header() http.Header { + if c.header_ == nil { + c.header_ = make(http.Header) + } + return c.header_ +} + +func (c *SecurityPoliciesAddRuleCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) + body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.securitypolicyrule) + if err != nil { + return nil, err + } + c.urlParams_.Set("alt", alt) + c.urlParams_.Set("prettyPrint", "false") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/securityPolicies/{securityPolicy}/addRule") + urls += "?" + c.urlParams_.Encode() + req, err := http.NewRequest("POST", urls, body) + if err != nil { + return nil, err + } + req.Header = reqHeaders + googleapi.Expand(req.URL, map[string]string{ + "project": c.project, + "securityPolicy": c.securityPolicy, + }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.securityPolicies.addRule", "request", internallog.HTTPRequest(req, body.Bytes())) + return gensupport.SendRequest(c.ctx_, c.s.client, req) +} + +// Do executes the "compute.securityPolicies.addRule" call. +// 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 *SecurityPoliciesAddRuleCall) 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, gensupport.WrapError(&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, gensupport.WrapError(err) + } + ret := &Operation{ + ServerResponse: googleapi.ServerResponse{ + Header: res.Header, + HTTPStatusCode: res.StatusCode, + }, + } + target := &ret + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { + return nil, err + } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.securityPolicies.addRule", "response", internallog.HTTPResponse(res, b)) + return ret, nil +} + +type SecurityPoliciesAggregatedListCall struct { + s *Service + project string + urlParams_ gensupport.URLParams + ifNoneMatch_ string + ctx_ context.Context + header_ http.Header +} + +// AggregatedList: Retrieves the list of all SecurityPolicy resources, regional +// and global, +// available to the specified project. +// +// To prevent failure, Google recommends that you set +// the +// `returnPartialSuccess` parameter to `true`. +// +// - project: Name of the project scoping this request. +func (r *SecurityPoliciesService) AggregatedList(project string) *SecurityPoliciesAggregatedListCall { + c := &SecurityPoliciesAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)} + c.project = project + return c +} + +// Filter sets the optional parameter "filter": A filter expression that +// filters resources listed in the response. Most +// Compute resources support two types of filter expressions: +// expressions that support regular expressions and expressions that follow +// API improvement proposal AIP-160. +// These two types of filter expressions cannot be mixed in one request. +// +// If you want to use AIP-160, your expression must specify the field name, +// an +// operator, and the value that you want to use for filtering. The value +// must be a string, a number, or a boolean. The 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`. +// +// The `:*` comparison can be used to test whether a key has been defined. +// For example, to find all objects with `owner` label +// use: +// ``` +// labels.owner:* +// ``` +// +// 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 onresource 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) +// ``` +// +// If you want to use a regular expression, use the `eq` (equal) or `ne` +// (not equal) operator against a single un-parenthesized expression with +// or +// without quotes or against multiple parenthesized expressions. +// Examples: +// +// `fieldname eq unquoted literal` +// `fieldname eq 'single quoted literal'` +// `fieldname eq "double quoted literal" +// `(fieldname1 eq literal) (fieldname2 ne "literal")` +// +// The literal value is interpreted as a regular expression using GoogleRE2 +// library syntax. +// The literal value must match the entire field. +// +// For example, to filter for instances that do not end with name +// "instance", +// you would use `name ne .*instance`. +// +// You cannot combine constraints on multiple fields using regular +// expressions. +func (c *SecurityPoliciesAggregatedListCall) Filter(filter string) *SecurityPoliciesAggregatedListCall { + c.urlParams_.Set("filter", filter) + return c +} + +// IncludeAllScopes sets the optional parameter "includeAllScopes": Indicates +// whether every visible scope for each scope type (zone, region, +// global) should be included in the response. For new resource types +// added +// after this field, the flag has no effect as new resource types will +// always +// include every visible scope for each scope type in response. For +// resource +// types which predate this field, if this flag is omitted or false, +// only +// scopes of the scope types where the resource type is expected to be +// found +// will be included. +func (c *SecurityPoliciesAggregatedListCall) IncludeAllScopes(includeAllScopes bool) *SecurityPoliciesAggregatedListCall { + c.urlParams_.Set("includeAllScopes", fmt.Sprint(includeAllScopes)) + 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 *SecurityPoliciesAggregatedListCall) MaxResults(maxResults int64) *SecurityPoliciesAggregatedListCall { + 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 *SecurityPoliciesAggregatedListCall) OrderBy(orderBy string) *SecurityPoliciesAggregatedListCall { + 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 *SecurityPoliciesAggregatedListCall) PageToken(pageToken string) *SecurityPoliciesAggregatedListCall { + c.urlParams_.Set("pageToken", pageToken) + return c +} + +// ReturnPartialSuccess sets the optional parameter "returnPartialSuccess": +// Opt-in for partial success behavior which provides partial results in +// case +// of failure. The default value is false. +// +// For example, when partial success behavior is enabled, aggregatedList for +// a +// single zone scope either returns all resources in the zone or no +// resources, +// with an error code. +func (c *SecurityPoliciesAggregatedListCall) ReturnPartialSuccess(returnPartialSuccess bool) *SecurityPoliciesAggregatedListCall { + c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess)) + return c +} + +// ServiceProjectNumber sets the optional parameter "serviceProjectNumber": The +// Shared VPC service project id or service project number for which +// aggregated list request is invoked for subnetworks list-usable api. +func (c *SecurityPoliciesAggregatedListCall) ServiceProjectNumber(serviceProjectNumber int64) *SecurityPoliciesAggregatedListCall { + c.urlParams_.Set("serviceProjectNumber", fmt.Sprint(serviceProjectNumber)) + return c +} + +// Fields allows partial responses to be retrieved. See +// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more +// details. +func (c *SecurityPoliciesAggregatedListCall) Fields(s ...googleapi.Field) *SecurityPoliciesAggregatedListCall { + c.urlParams_.Set("fields", googleapi.CombineFields(s)) + return c +} + +// IfNoneMatch sets an 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. +func (c *SecurityPoliciesAggregatedListCall) IfNoneMatch(entityTag string) *SecurityPoliciesAggregatedListCall { + c.ifNoneMatch_ = entityTag + return c +} + +// Context sets the context to be used in this call's Do method. +func (c *SecurityPoliciesAggregatedListCall) Context(ctx context.Context) *SecurityPoliciesAggregatedListCall { + c.ctx_ = ctx + return c +} + +// Header returns a http.Header that can be modified by the caller to add +// headers to the request. +func (c *SecurityPoliciesAggregatedListCall) Header() http.Header { + if c.header_ == nil { + c.header_ = make(http.Header) + } + return c.header_ +} + +func (c *SecurityPoliciesAggregatedListCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) + if c.ifNoneMatch_ != "" { + reqHeaders.Set("If-None-Match", c.ifNoneMatch_) + } + c.urlParams_.Set("alt", alt) + c.urlParams_.Set("prettyPrint", "false") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/aggregated/securityPolicies") + urls += "?" + c.urlParams_.Encode() + req, err := http.NewRequest("GET", urls, nil) + if err != nil { + return nil, err + } + req.Header = reqHeaders + googleapi.Expand(req.URL, map[string]string{ + "project": c.project, + }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.securityPolicies.aggregatedList", "request", internallog.HTTPRequest(req, nil)) + return gensupport.SendRequest(c.ctx_, c.s.client, req) +} + +// Do executes the "compute.securityPolicies.aggregatedList" call. +// Any non-2xx status code is an error. Response headers are in either +// *SecurityPoliciesAggregatedList.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 *SecurityPoliciesAggregatedListCall) Do(opts ...googleapi.CallOption) (*SecurityPoliciesAggregatedList, 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, gensupport.WrapError(&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, gensupport.WrapError(err) + } + ret := &SecurityPoliciesAggregatedList{ + ServerResponse: googleapi.ServerResponse{ + Header: res.Header, + HTTPStatusCode: res.StatusCode, + }, + } + target := &ret + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { + return nil, err + } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.securityPolicies.aggregatedList", "response", internallog.HTTPResponse(res, b)) + return ret, nil +} + +// 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 *SecurityPoliciesAggregatedListCall) Pages(ctx context.Context, f func(*SecurityPoliciesAggregatedList) error) error { + c.ctx_ = ctx + defer c.PageToken(c.urlParams_.Get("pageToken")) + 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) + } +} + +type SecurityPoliciesDeleteCall struct { + s *Service + project string + securityPolicy string + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header +} + +// Delete: Deletes the specified policy. +// +// - project: Project ID for this request. +// - securityPolicy: Name of the security policy to delete. +func (r *SecurityPoliciesService) Delete(project string, securityPolicy string) *SecurityPoliciesDeleteCall { + c := &SecurityPoliciesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)} + c.project = project + c.securityPolicy = securityPolicy + 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 *SecurityPoliciesDeleteCall) RequestId(requestId string) *SecurityPoliciesDeleteCall { + 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 +// details. +func (c *SecurityPoliciesDeleteCall) Fields(s ...googleapi.Field) *SecurityPoliciesDeleteCall { + c.urlParams_.Set("fields", googleapi.CombineFields(s)) + return c +} + +// Context sets the context to be used in this call's Do method. +func (c *SecurityPoliciesDeleteCall) Context(ctx context.Context) *SecurityPoliciesDeleteCall { + c.ctx_ = ctx + return c +} + +// Header returns a http.Header that can be modified by the caller to add +// headers to the request. +func (c *SecurityPoliciesDeleteCall) Header() http.Header { + if c.header_ == nil { + c.header_ = make(http.Header) + } + return c.header_ +} + +func (c *SecurityPoliciesDeleteCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) + c.urlParams_.Set("alt", alt) + c.urlParams_.Set("prettyPrint", "false") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/securityPolicies/{securityPolicy}") + urls += "?" + c.urlParams_.Encode() + req, err := http.NewRequest("DELETE", urls, nil) + if err != nil { + return nil, err + } + req.Header = reqHeaders + googleapi.Expand(req.URL, map[string]string{ + "project": c.project, + "securityPolicy": c.securityPolicy, + }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.securityPolicies.delete", "request", internallog.HTTPRequest(req, nil)) + return gensupport.SendRequest(c.ctx_, c.s.client, req) +} + +// Do executes the "compute.securityPolicies.delete" call. +// 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 *SecurityPoliciesDeleteCall) 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, gensupport.WrapError(&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, gensupport.WrapError(err) + } + ret := &Operation{ + ServerResponse: googleapi.ServerResponse{ + Header: res.Header, + HTTPStatusCode: res.StatusCode, + }, + } + target := &ret + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { + return nil, err + } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.securityPolicies.delete", "response", internallog.HTTPResponse(res, b)) + return ret, nil +} + +type SecurityPoliciesGetCall struct { + s *Service + project string + securityPolicy string + urlParams_ gensupport.URLParams + ifNoneMatch_ string + ctx_ context.Context + header_ http.Header +} + +// Get: List all of the ordered rules present in a single specified policy. +// +// - project: Project ID for this request. +// - securityPolicy: Name of the security policy to get. +func (r *SecurityPoliciesService) Get(project string, securityPolicy string) *SecurityPoliciesGetCall { + c := &SecurityPoliciesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)} + c.project = project + c.securityPolicy = securityPolicy + return c +} + +// Fields allows partial responses to be retrieved. See +// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more +// details. +func (c *SecurityPoliciesGetCall) Fields(s ...googleapi.Field) *SecurityPoliciesGetCall { + c.urlParams_.Set("fields", googleapi.CombineFields(s)) + return c +} + +// IfNoneMatch sets an 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. +func (c *SecurityPoliciesGetCall) IfNoneMatch(entityTag string) *SecurityPoliciesGetCall { + c.ifNoneMatch_ = entityTag + return c +} + +// Context sets the context to be used in this call's Do method. +func (c *SecurityPoliciesGetCall) Context(ctx context.Context) *SecurityPoliciesGetCall { + c.ctx_ = ctx + return c +} + +// Header returns a http.Header that can be modified by the caller to add +// headers to the request. +func (c *SecurityPoliciesGetCall) Header() http.Header { + if c.header_ == nil { + c.header_ = make(http.Header) + } + return c.header_ +} + +func (c *SecurityPoliciesGetCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) + if c.ifNoneMatch_ != "" { + reqHeaders.Set("If-None-Match", c.ifNoneMatch_) + } + c.urlParams_.Set("alt", alt) + c.urlParams_.Set("prettyPrint", "false") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/securityPolicies/{securityPolicy}") + urls += "?" + c.urlParams_.Encode() + req, err := http.NewRequest("GET", urls, nil) + if err != nil { + return nil, err + } + req.Header = reqHeaders + googleapi.Expand(req.URL, map[string]string{ + "project": c.project, + "securityPolicy": c.securityPolicy, + }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.securityPolicies.get", "request", internallog.HTTPRequest(req, nil)) + return gensupport.SendRequest(c.ctx_, c.s.client, req) +} + +// Do executes the "compute.securityPolicies.get" call. +// Any non-2xx status code is an error. Response headers are in either +// *SecurityPolicy.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 *SecurityPoliciesGetCall) Do(opts ...googleapi.CallOption) (*SecurityPolicy, 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, gensupport.WrapError(&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, gensupport.WrapError(err) + } + ret := &SecurityPolicy{ + ServerResponse: googleapi.ServerResponse{ + Header: res.Header, + HTTPStatusCode: res.StatusCode, + }, + } + target := &ret + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { + return nil, err + } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.securityPolicies.get", "response", internallog.HTTPResponse(res, b)) + return ret, nil +} + +type SecurityPoliciesGetRuleCall struct { + s *Service + project string + securityPolicy string + urlParams_ gensupport.URLParams + ifNoneMatch_ string + ctx_ context.Context + header_ http.Header +} + +// GetRule: Gets a rule at the specified priority. +// +// - project: Project ID for this request. +// - securityPolicy: Name of the security policy to which the queried rule +// belongs. +func (r *SecurityPoliciesService) GetRule(project string, securityPolicy string) *SecurityPoliciesGetRuleCall { + c := &SecurityPoliciesGetRuleCall{s: r.s, urlParams_: make(gensupport.URLParams)} + c.project = project + c.securityPolicy = securityPolicy + return c +} + +// Priority sets the optional parameter "priority": The priority of the rule to +// get from the security policy. +func (c *SecurityPoliciesGetRuleCall) Priority(priority int64) *SecurityPoliciesGetRuleCall { + c.urlParams_.Set("priority", fmt.Sprint(priority)) + return c +} + +// Fields allows partial responses to be retrieved. See +// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more +// details. +func (c *SecurityPoliciesGetRuleCall) Fields(s ...googleapi.Field) *SecurityPoliciesGetRuleCall { + c.urlParams_.Set("fields", googleapi.CombineFields(s)) + return c +} + +// IfNoneMatch sets an 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. +func (c *SecurityPoliciesGetRuleCall) IfNoneMatch(entityTag string) *SecurityPoliciesGetRuleCall { + c.ifNoneMatch_ = entityTag + return c +} + +// Context sets the context to be used in this call's Do method. +func (c *SecurityPoliciesGetRuleCall) Context(ctx context.Context) *SecurityPoliciesGetRuleCall { + c.ctx_ = ctx + return c +} + +// Header returns a http.Header that can be modified by the caller to add +// headers to the request. +func (c *SecurityPoliciesGetRuleCall) Header() http.Header { + if c.header_ == nil { + c.header_ = make(http.Header) + } + return c.header_ +} + +func (c *SecurityPoliciesGetRuleCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) + if c.ifNoneMatch_ != "" { + reqHeaders.Set("If-None-Match", c.ifNoneMatch_) + } + c.urlParams_.Set("alt", alt) + c.urlParams_.Set("prettyPrint", "false") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/securityPolicies/{securityPolicy}/getRule") + urls += "?" + c.urlParams_.Encode() + req, err := http.NewRequest("GET", urls, nil) + if err != nil { + return nil, err + } + req.Header = reqHeaders + googleapi.Expand(req.URL, map[string]string{ + "project": c.project, + "securityPolicy": c.securityPolicy, + }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.securityPolicies.getRule", "request", internallog.HTTPRequest(req, nil)) + return gensupport.SendRequest(c.ctx_, c.s.client, req) +} + +// Do executes the "compute.securityPolicies.getRule" call. +// Any non-2xx status code is an error. Response headers are in either +// *SecurityPolicyRule.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 *SecurityPoliciesGetRuleCall) Do(opts ...googleapi.CallOption) (*SecurityPolicyRule, 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, gensupport.WrapError(&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, gensupport.WrapError(err) + } + ret := &SecurityPolicyRule{ + ServerResponse: googleapi.ServerResponse{ + Header: res.Header, + HTTPStatusCode: res.StatusCode, + }, + } + target := &ret + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { + return nil, err + } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.securityPolicies.getRule", "response", internallog.HTTPResponse(res, b)) + return ret, nil +} + +type SecurityPoliciesInsertCall struct { + s *Service + project string + securitypolicy *SecurityPolicy + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header +} + +// Insert: Creates a new policy in the specified project using the data +// included in +// the request. +// +// - project: Project ID for this request. +func (r *SecurityPoliciesService) Insert(project string, securitypolicy *SecurityPolicy) *SecurityPoliciesInsertCall { + c := &SecurityPoliciesInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)} + c.project = project + c.securitypolicy = securitypolicy + 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 *SecurityPoliciesInsertCall) RequestId(requestId string) *SecurityPoliciesInsertCall { + c.urlParams_.Set("requestId", requestId) + return c +} + +// ValidateOnly sets the optional parameter "validateOnly": If true, the +// request will not be committed. +func (c *SecurityPoliciesInsertCall) ValidateOnly(validateOnly bool) *SecurityPoliciesInsertCall { + c.urlParams_.Set("validateOnly", fmt.Sprint(validateOnly)) + return c +} + +// Fields allows partial responses to be retrieved. See +// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more +// details. +func (c *SecurityPoliciesInsertCall) Fields(s ...googleapi.Field) *SecurityPoliciesInsertCall { + c.urlParams_.Set("fields", googleapi.CombineFields(s)) + return c +} + +// Context sets the context to be used in this call's Do method. +func (c *SecurityPoliciesInsertCall) Context(ctx context.Context) *SecurityPoliciesInsertCall { + c.ctx_ = ctx + return c +} + +// Header returns a http.Header that can be modified by the caller to add +// headers to the request. +func (c *SecurityPoliciesInsertCall) Header() http.Header { + if c.header_ == nil { + c.header_ = make(http.Header) + } + return c.header_ +} + +func (c *SecurityPoliciesInsertCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) + body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.securitypolicy) + if err != nil { + return nil, err + } + c.urlParams_.Set("alt", alt) + c.urlParams_.Set("prettyPrint", "false") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/securityPolicies") + urls += "?" + c.urlParams_.Encode() + req, err := http.NewRequest("POST", urls, body) + if err != nil { + return nil, err + } + req.Header = reqHeaders + googleapi.Expand(req.URL, map[string]string{ + "project": c.project, + }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.securityPolicies.insert", "request", internallog.HTTPRequest(req, body.Bytes())) + return gensupport.SendRequest(c.ctx_, c.s.client, req) +} + +// Do executes the "compute.securityPolicies.insert" call. +// 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 *SecurityPoliciesInsertCall) 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, gensupport.WrapError(&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, gensupport.WrapError(err) + } + ret := &Operation{ + ServerResponse: googleapi.ServerResponse{ + Header: res.Header, + HTTPStatusCode: res.StatusCode, + }, + } + target := &ret + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { + return nil, err + } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.securityPolicies.insert", "response", internallog.HTTPResponse(res, b)) + return ret, nil +} + +type SecurityPoliciesListCall struct { + s *Service + project string + urlParams_ gensupport.URLParams + ifNoneMatch_ string + ctx_ context.Context + header_ http.Header +} + +// List: List all the policies that have been configured for the specified +// project. +// +// - project: Project ID for this request. +func (r *SecurityPoliciesService) List(project string) *SecurityPoliciesListCall { + c := &SecurityPoliciesListCall{s: r.s, urlParams_: make(gensupport.URLParams)} + c.project = project + return c +} + +// Filter sets the optional parameter "filter": A filter expression that +// filters resources listed in the response. Most +// Compute resources support two types of filter expressions: +// expressions that support regular expressions and expressions that follow +// API improvement proposal AIP-160. +// These two types of filter expressions cannot be mixed in one request. +// +// If you want to use AIP-160, your expression must specify the field name, +// an +// operator, and the value that you want to use for filtering. The value +// must be a string, a number, or a boolean. The 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`. +// +// The `:*` comparison can be used to test whether a key has been defined. +// For example, to find all objects with `owner` label +// use: +// ``` +// labels.owner:* +// ``` +// +// 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 onresource 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) +// ``` +// +// If you want to use a regular expression, use the `eq` (equal) or `ne` +// (not equal) operator against a single un-parenthesized expression with +// or +// without quotes or against multiple parenthesized expressions. +// Examples: +// +// `fieldname eq unquoted literal` +// `fieldname eq 'single quoted literal'` +// `fieldname eq "double quoted literal" +// `(fieldname1 eq literal) (fieldname2 ne "literal")` +// +// The literal value is interpreted as a regular expression using GoogleRE2 +// library syntax. +// The literal value must match the entire field. +// +// For example, to filter for instances that do not end with name +// "instance", +// you would use `name ne .*instance`. +// +// You cannot combine constraints on multiple fields using regular +// expressions. +func (c *SecurityPoliciesListCall) Filter(filter string) *SecurityPoliciesListCall { + 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 *SecurityPoliciesListCall) MaxResults(maxResults int64) *SecurityPoliciesListCall { + 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 *SecurityPoliciesListCall) OrderBy(orderBy string) *SecurityPoliciesListCall { + 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 *SecurityPoliciesListCall) PageToken(pageToken string) *SecurityPoliciesListCall { + c.urlParams_.Set("pageToken", pageToken) + return c +} + +// ReturnPartialSuccess sets the optional parameter "returnPartialSuccess": +// Opt-in for partial success behavior which provides partial results in +// case +// of failure. The default value is false. +// +// For example, when partial success behavior is enabled, aggregatedList for +// a +// single zone scope either returns all resources in the zone or no +// resources, +// with an error code. +func (c *SecurityPoliciesListCall) ReturnPartialSuccess(returnPartialSuccess bool) *SecurityPoliciesListCall { + c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess)) + return c +} + +// Fields allows partial responses to be retrieved. See +// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more +// details. +func (c *SecurityPoliciesListCall) Fields(s ...googleapi.Field) *SecurityPoliciesListCall { + c.urlParams_.Set("fields", googleapi.CombineFields(s)) + return c +} + +// IfNoneMatch sets an 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. +func (c *SecurityPoliciesListCall) IfNoneMatch(entityTag string) *SecurityPoliciesListCall { + c.ifNoneMatch_ = entityTag + return c +} + +// Context sets the context to be used in this call's Do method. +func (c *SecurityPoliciesListCall) Context(ctx context.Context) *SecurityPoliciesListCall { + c.ctx_ = ctx + return c +} + +// Header returns a http.Header that can be modified by the caller to add +// headers to the request. +func (c *SecurityPoliciesListCall) Header() http.Header { + if c.header_ == nil { + c.header_ = make(http.Header) + } + return c.header_ +} + +func (c *SecurityPoliciesListCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) + if c.ifNoneMatch_ != "" { + reqHeaders.Set("If-None-Match", c.ifNoneMatch_) + } + c.urlParams_.Set("alt", alt) + c.urlParams_.Set("prettyPrint", "false") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/securityPolicies") + urls += "?" + c.urlParams_.Encode() + req, err := http.NewRequest("GET", urls, nil) + if err != nil { + return nil, err + } + req.Header = reqHeaders + googleapi.Expand(req.URL, map[string]string{ + "project": c.project, + }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.securityPolicies.list", "request", internallog.HTTPRequest(req, nil)) + return gensupport.SendRequest(c.ctx_, c.s.client, req) +} + +// Do executes the "compute.securityPolicies.list" call. +// Any non-2xx status code is an error. Response headers are in either +// *SecurityPolicyList.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 *SecurityPoliciesListCall) Do(opts ...googleapi.CallOption) (*SecurityPolicyList, 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, gensupport.WrapError(&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, gensupport.WrapError(err) + } + ret := &SecurityPolicyList{ + ServerResponse: googleapi.ServerResponse{ + Header: res.Header, + HTTPStatusCode: res.StatusCode, + }, + } + target := &ret + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { + return nil, err + } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.securityPolicies.list", "response", internallog.HTTPResponse(res, b)) + return ret, nil +} + +// 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 *SecurityPoliciesListCall) Pages(ctx context.Context, f func(*SecurityPolicyList) error) error { + c.ctx_ = ctx + defer c.PageToken(c.urlParams_.Get("pageToken")) + 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) + } +} + +type SecurityPoliciesListPreconfiguredExpressionSetsCall struct { + s *Service + project string + urlParams_ gensupport.URLParams + ifNoneMatch_ string + ctx_ context.Context + header_ http.Header +} + +// ListPreconfiguredExpressionSets: Gets the current list of preconfigured Web +// Application Firewall (WAF) +// expressions. +// +// - project: Project ID for this request. +func (r *SecurityPoliciesService) ListPreconfiguredExpressionSets(project string) *SecurityPoliciesListPreconfiguredExpressionSetsCall { + c := &SecurityPoliciesListPreconfiguredExpressionSetsCall{s: r.s, urlParams_: make(gensupport.URLParams)} + c.project = project + return c +} + +// Filter sets the optional parameter "filter": A filter expression that +// filters resources listed in the response. Most +// Compute resources support two types of filter expressions: +// expressions that support regular expressions and expressions that follow +// API improvement proposal AIP-160. +// These two types of filter expressions cannot be mixed in one request. +// +// If you want to use AIP-160, your expression must specify the field name, +// an +// operator, and the value that you want to use for filtering. The value +// must be a string, a number, or a boolean. The 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`. +// +// The `:*` comparison can be used to test whether a key has been defined. +// For example, to find all objects with `owner` label +// use: +// ``` +// labels.owner:* +// ``` +// +// 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 onresource 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) +// ``` +// +// If you want to use a regular expression, use the `eq` (equal) or `ne` +// (not equal) operator against a single un-parenthesized expression with +// or +// without quotes or against multiple parenthesized expressions. +// Examples: +// +// `fieldname eq unquoted literal` +// `fieldname eq 'single quoted literal'` +// `fieldname eq "double quoted literal" +// `(fieldname1 eq literal) (fieldname2 ne "literal")` +// +// The literal value is interpreted as a regular expression using GoogleRE2 +// library syntax. +// The literal value must match the entire field. +// +// For example, to filter for instances that do not end with name +// "instance", +// you would use `name ne .*instance`. +// +// You cannot combine constraints on multiple fields using regular +// expressions. +func (c *SecurityPoliciesListPreconfiguredExpressionSetsCall) Filter(filter string) *SecurityPoliciesListPreconfiguredExpressionSetsCall { + 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 *SecurityPoliciesListPreconfiguredExpressionSetsCall) MaxResults(maxResults int64) *SecurityPoliciesListPreconfiguredExpressionSetsCall { + 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 *SecurityPoliciesListPreconfiguredExpressionSetsCall) OrderBy(orderBy string) *SecurityPoliciesListPreconfiguredExpressionSetsCall { + 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 *SecurityPoliciesListPreconfiguredExpressionSetsCall) PageToken(pageToken string) *SecurityPoliciesListPreconfiguredExpressionSetsCall { + c.urlParams_.Set("pageToken", pageToken) + return c +} + +// ReturnPartialSuccess sets the optional parameter "returnPartialSuccess": +// Opt-in for partial success behavior which provides partial results in +// case +// of failure. The default value is false. +// +// For example, when partial success behavior is enabled, aggregatedList for +// a +// single zone scope either returns all resources in the zone or no +// resources, +// with an error code. +func (c *SecurityPoliciesListPreconfiguredExpressionSetsCall) ReturnPartialSuccess(returnPartialSuccess bool) *SecurityPoliciesListPreconfiguredExpressionSetsCall { + c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess)) + return c +} + +// Fields allows partial responses to be retrieved. See +// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more +// details. +func (c *SecurityPoliciesListPreconfiguredExpressionSetsCall) Fields(s ...googleapi.Field) *SecurityPoliciesListPreconfiguredExpressionSetsCall { + c.urlParams_.Set("fields", googleapi.CombineFields(s)) + return c +} + +// IfNoneMatch sets an 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. +func (c *SecurityPoliciesListPreconfiguredExpressionSetsCall) IfNoneMatch(entityTag string) *SecurityPoliciesListPreconfiguredExpressionSetsCall { + c.ifNoneMatch_ = entityTag + return c +} + +// Context sets the context to be used in this call's Do method. +func (c *SecurityPoliciesListPreconfiguredExpressionSetsCall) Context(ctx context.Context) *SecurityPoliciesListPreconfiguredExpressionSetsCall { + c.ctx_ = ctx + return c +} + +// Header returns a http.Header that can be modified by the caller to add +// headers to the request. +func (c *SecurityPoliciesListPreconfiguredExpressionSetsCall) Header() http.Header { + if c.header_ == nil { + c.header_ = make(http.Header) + } + return c.header_ +} + +func (c *SecurityPoliciesListPreconfiguredExpressionSetsCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) + if c.ifNoneMatch_ != "" { + reqHeaders.Set("If-None-Match", c.ifNoneMatch_) + } + c.urlParams_.Set("alt", alt) + c.urlParams_.Set("prettyPrint", "false") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/securityPolicies/listPreconfiguredExpressionSets") + urls += "?" + c.urlParams_.Encode() + req, err := http.NewRequest("GET", urls, nil) + if err != nil { + return nil, err + } + req.Header = reqHeaders + googleapi.Expand(req.URL, map[string]string{ + "project": c.project, + }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.securityPolicies.listPreconfiguredExpressionSets", "request", internallog.HTTPRequest(req, nil)) + return gensupport.SendRequest(c.ctx_, c.s.client, req) +} + +// Do executes the "compute.securityPolicies.listPreconfiguredExpressionSets" call. +// Any non-2xx status code is an error. Response headers are in either +// *SecurityPoliciesListPreconfiguredExpressionSetsResponse.ServerResponse.Heade +// r 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 *SecurityPoliciesListPreconfiguredExpressionSetsCall) Do(opts ...googleapi.CallOption) (*SecurityPoliciesListPreconfiguredExpressionSetsResponse, 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, gensupport.WrapError(&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, gensupport.WrapError(err) + } + ret := &SecurityPoliciesListPreconfiguredExpressionSetsResponse{ + ServerResponse: googleapi.ServerResponse{ + Header: res.Header, + HTTPStatusCode: res.StatusCode, + }, + } + target := &ret + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { + return nil, err + } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.securityPolicies.listPreconfiguredExpressionSets", "response", internallog.HTTPResponse(res, b)) + return ret, nil +} + +type SecurityPoliciesPatchCall struct { + s *Service + project string + securityPolicy string + securitypolicy *SecurityPolicy + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header +} + +// Patch: Patches the specified policy with the data included in the request. +// To +// clear fields in the policy, leave the fields empty and specify them in +// the +// updateMask. This cannot be used to be update the rules in the policy. +// Please use the per rule methods like addRule, patchRule, and +// removeRule +// instead. +// +// - project: Project ID for this request. +// - securityPolicy: Name of the security policy to update. +func (r *SecurityPoliciesService) Patch(project string, securityPolicy string, securitypolicy *SecurityPolicy) *SecurityPoliciesPatchCall { + c := &SecurityPoliciesPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)} + c.project = project + c.securityPolicy = securityPolicy + c.securitypolicy = securitypolicy + 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 *SecurityPoliciesPatchCall) RequestId(requestId string) *SecurityPoliciesPatchCall { + c.urlParams_.Set("requestId", requestId) + return c +} + +// UpdateMask sets the optional parameter "updateMask": Indicates fields to be +// cleared as part of this request. +func (c *SecurityPoliciesPatchCall) UpdateMask(updateMask string) *SecurityPoliciesPatchCall { + c.urlParams_.Set("updateMask", updateMask) + return c +} + +// Fields allows partial responses to be retrieved. See +// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more +// details. +func (c *SecurityPoliciesPatchCall) Fields(s ...googleapi.Field) *SecurityPoliciesPatchCall { + c.urlParams_.Set("fields", googleapi.CombineFields(s)) + return c +} + +// Context sets the context to be used in this call's Do method. +func (c *SecurityPoliciesPatchCall) Context(ctx context.Context) *SecurityPoliciesPatchCall { + c.ctx_ = ctx + return c +} + +// Header returns a http.Header that can be modified by the caller to add +// headers to the request. +func (c *SecurityPoliciesPatchCall) Header() http.Header { + if c.header_ == nil { + c.header_ = make(http.Header) + } + return c.header_ +} + +func (c *SecurityPoliciesPatchCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) + body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.securitypolicy) + if err != nil { + return nil, err + } + c.urlParams_.Set("alt", alt) + c.urlParams_.Set("prettyPrint", "false") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/securityPolicies/{securityPolicy}") + urls += "?" + c.urlParams_.Encode() + req, err := http.NewRequest("PATCH", urls, body) + if err != nil { + return nil, err + } + req.Header = reqHeaders + googleapi.Expand(req.URL, map[string]string{ + "project": c.project, + "securityPolicy": c.securityPolicy, + }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.securityPolicies.patch", "request", internallog.HTTPRequest(req, body.Bytes())) + return gensupport.SendRequest(c.ctx_, c.s.client, req) +} + +// Do executes the "compute.securityPolicies.patch" call. +// 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 *SecurityPoliciesPatchCall) 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, gensupport.WrapError(&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, gensupport.WrapError(err) + } + ret := &Operation{ + ServerResponse: googleapi.ServerResponse{ + Header: res.Header, + HTTPStatusCode: res.StatusCode, + }, + } + target := &ret + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { + return nil, err + } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.securityPolicies.patch", "response", internallog.HTTPResponse(res, b)) + return ret, nil +} + +type SecurityPoliciesPatchRuleCall struct { + s *Service + project string + securityPolicy string + securitypolicyrule *SecurityPolicyRule + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header +} + +// PatchRule: Patches a rule at the specified priority. To clear fields in the +// rule, +// leave the fields empty and specify them in the updateMask. +// +// - project: Project ID for this request. +// - securityPolicy: Name of the security policy to update. +func (r *SecurityPoliciesService) PatchRule(project string, securityPolicy string, securitypolicyrule *SecurityPolicyRule) *SecurityPoliciesPatchRuleCall { + c := &SecurityPoliciesPatchRuleCall{s: r.s, urlParams_: make(gensupport.URLParams)} + c.project = project + c.securityPolicy = securityPolicy + c.securitypolicyrule = securitypolicyrule + return c +} + +// Priority sets the optional parameter "priority": The priority of the rule to +// patch. +func (c *SecurityPoliciesPatchRuleCall) Priority(priority int64) *SecurityPoliciesPatchRuleCall { + c.urlParams_.Set("priority", fmt.Sprint(priority)) + return c +} + +// UpdateMask sets the optional parameter "updateMask": Indicates fields to be +// cleared as part of this request. +func (c *SecurityPoliciesPatchRuleCall) UpdateMask(updateMask string) *SecurityPoliciesPatchRuleCall { + c.urlParams_.Set("updateMask", updateMask) + return c +} + +// ValidateOnly sets the optional parameter "validateOnly": If true, the +// request will not be committed. +func (c *SecurityPoliciesPatchRuleCall) ValidateOnly(validateOnly bool) *SecurityPoliciesPatchRuleCall { + c.urlParams_.Set("validateOnly", fmt.Sprint(validateOnly)) + return c +} + +// Fields allows partial responses to be retrieved. See +// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more +// details. +func (c *SecurityPoliciesPatchRuleCall) Fields(s ...googleapi.Field) *SecurityPoliciesPatchRuleCall { + c.urlParams_.Set("fields", googleapi.CombineFields(s)) + return c +} + +// Context sets the context to be used in this call's Do method. +func (c *SecurityPoliciesPatchRuleCall) Context(ctx context.Context) *SecurityPoliciesPatchRuleCall { + c.ctx_ = ctx + return c +} + +// Header returns a http.Header that can be modified by the caller to add +// headers to the request. +func (c *SecurityPoliciesPatchRuleCall) Header() http.Header { + if c.header_ == nil { + c.header_ = make(http.Header) + } + return c.header_ +} + +func (c *SecurityPoliciesPatchRuleCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) + body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.securitypolicyrule) + if err != nil { + return nil, err + } + c.urlParams_.Set("alt", alt) + c.urlParams_.Set("prettyPrint", "false") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/securityPolicies/{securityPolicy}/patchRule") + urls += "?" + c.urlParams_.Encode() + req, err := http.NewRequest("POST", urls, body) + if err != nil { + return nil, err + } + req.Header = reqHeaders + googleapi.Expand(req.URL, map[string]string{ + "project": c.project, + "securityPolicy": c.securityPolicy, + }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.securityPolicies.patchRule", "request", internallog.HTTPRequest(req, body.Bytes())) + return gensupport.SendRequest(c.ctx_, c.s.client, req) +} + +// Do executes the "compute.securityPolicies.patchRule" call. +// 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 *SecurityPoliciesPatchRuleCall) 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, gensupport.WrapError(&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, gensupport.WrapError(err) + } + ret := &Operation{ + ServerResponse: googleapi.ServerResponse{ + Header: res.Header, + HTTPStatusCode: res.StatusCode, + }, + } + target := &ret + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { + return nil, err + } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.securityPolicies.patchRule", "response", internallog.HTTPResponse(res, b)) + return ret, nil +} + +type SecurityPoliciesRemoveRuleCall struct { + s *Service + project string + securityPolicy string + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header +} + +// RemoveRule: Deletes a rule at the specified priority. +// +// - project: Project ID for this request. +// - securityPolicy: Name of the security policy to update. +func (r *SecurityPoliciesService) RemoveRule(project string, securityPolicy string) *SecurityPoliciesRemoveRuleCall { + c := &SecurityPoliciesRemoveRuleCall{s: r.s, urlParams_: make(gensupport.URLParams)} + c.project = project + c.securityPolicy = securityPolicy + return c +} + +// Priority sets the optional parameter "priority": The priority of the rule to +// remove from the security policy. +func (c *SecurityPoliciesRemoveRuleCall) Priority(priority int64) *SecurityPoliciesRemoveRuleCall { + c.urlParams_.Set("priority", fmt.Sprint(priority)) + return c +} + +// Fields allows partial responses to be retrieved. See +// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more +// details. +func (c *SecurityPoliciesRemoveRuleCall) Fields(s ...googleapi.Field) *SecurityPoliciesRemoveRuleCall { + c.urlParams_.Set("fields", googleapi.CombineFields(s)) + return c +} + +// Context sets the context to be used in this call's Do method. +func (c *SecurityPoliciesRemoveRuleCall) Context(ctx context.Context) *SecurityPoliciesRemoveRuleCall { + c.ctx_ = ctx + return c +} + +// Header returns a http.Header that can be modified by the caller to add +// headers to the request. +func (c *SecurityPoliciesRemoveRuleCall) Header() http.Header { + if c.header_ == nil { + c.header_ = make(http.Header) + } + return c.header_ +} + +func (c *SecurityPoliciesRemoveRuleCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) + c.urlParams_.Set("alt", alt) + c.urlParams_.Set("prettyPrint", "false") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/securityPolicies/{securityPolicy}/removeRule") + urls += "?" + c.urlParams_.Encode() + req, err := http.NewRequest("POST", urls, nil) + if err != nil { + return nil, err + } + req.Header = reqHeaders + googleapi.Expand(req.URL, map[string]string{ + "project": c.project, + "securityPolicy": c.securityPolicy, + }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.securityPolicies.removeRule", "request", internallog.HTTPRequest(req, nil)) + return gensupport.SendRequest(c.ctx_, c.s.client, req) +} + +// Do executes the "compute.securityPolicies.removeRule" call. +// 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 *SecurityPoliciesRemoveRuleCall) 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, gensupport.WrapError(&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, gensupport.WrapError(err) + } + ret := &Operation{ + ServerResponse: googleapi.ServerResponse{ + Header: res.Header, + HTTPStatusCode: res.StatusCode, + }, + } + target := &ret + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { + return nil, err + } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.securityPolicies.removeRule", "response", internallog.HTTPResponse(res, b)) + return ret, nil +} + +type SecurityPoliciesSetLabelsCall struct { + s *Service + project string + resource string + globalsetlabelsrequest *GlobalSetLabelsRequest + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header +} + +// SetLabels: Sets the labels on a security policy. To learn more about +// labels, +// read the Labeling Resources +// documentation. +// +// - project: Project ID for this request. +// - resource: Name or id of the resource for this request. +func (r *SecurityPoliciesService) SetLabels(project string, resource string, globalsetlabelsrequest *GlobalSetLabelsRequest) *SecurityPoliciesSetLabelsCall { + c := &SecurityPoliciesSetLabelsCall{s: r.s, urlParams_: make(gensupport.URLParams)} + c.project = project + c.resource = resource + c.globalsetlabelsrequest = globalsetlabelsrequest + return c +} + +// Fields allows partial responses to be retrieved. See +// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more +// details. +func (c *SecurityPoliciesSetLabelsCall) Fields(s ...googleapi.Field) *SecurityPoliciesSetLabelsCall { + c.urlParams_.Set("fields", googleapi.CombineFields(s)) + return c +} + +// Context sets the context to be used in this call's Do method. +func (c *SecurityPoliciesSetLabelsCall) Context(ctx context.Context) *SecurityPoliciesSetLabelsCall { + c.ctx_ = ctx + return c +} + +// Header returns a http.Header that can be modified by the caller to add +// headers to the request. +func (c *SecurityPoliciesSetLabelsCall) Header() http.Header { + if c.header_ == nil { + c.header_ = make(http.Header) + } + return c.header_ +} + +func (c *SecurityPoliciesSetLabelsCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) + body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.globalsetlabelsrequest) + if err != nil { + return nil, err + } + c.urlParams_.Set("alt", alt) + c.urlParams_.Set("prettyPrint", "false") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/securityPolicies/{resource}/setLabels") + urls += "?" + c.urlParams_.Encode() + req, err := http.NewRequest("POST", urls, body) + if err != nil { + return nil, err + } + req.Header = reqHeaders + googleapi.Expand(req.URL, map[string]string{ + "project": c.project, + "resource": c.resource, + }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.securityPolicies.setLabels", "request", internallog.HTTPRequest(req, body.Bytes())) + return gensupport.SendRequest(c.ctx_, c.s.client, req) +} + +// Do executes the "compute.securityPolicies.setLabels" call. +// 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 *SecurityPoliciesSetLabelsCall) 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, gensupport.WrapError(&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, gensupport.WrapError(err) + } + ret := &Operation{ + ServerResponse: googleapi.ServerResponse{ + Header: res.Header, + HTTPStatusCode: res.StatusCode, + }, + } + target := &ret + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { + return nil, err + } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.securityPolicies.setLabels", "response", internallog.HTTPResponse(res, b)) + return ret, nil +} + +type ServiceAttachmentsAggregatedListCall struct { + s *Service + project string + urlParams_ gensupport.URLParams + ifNoneMatch_ string + ctx_ context.Context + header_ http.Header +} + +// AggregatedList: Retrieves the list of all ServiceAttachment +// resources, +// regional and global, available to the specified project. +// +// To prevent failure, Google recommends that you set +// the +// `returnPartialSuccess` parameter to `true`. +// +// - project: Name of the project scoping this request. +func (r *ServiceAttachmentsService) AggregatedList(project string) *ServiceAttachmentsAggregatedListCall { + c := &ServiceAttachmentsAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)} + c.project = project + return c +} + +// Filter sets the optional parameter "filter": A filter expression that +// filters resources listed in the response. Most +// Compute resources support two types of filter expressions: +// expressions that support regular expressions and expressions that follow +// API improvement proposal AIP-160. +// These two types of filter expressions cannot be mixed in one request. +// +// If you want to use AIP-160, your expression must specify the field name, +// an +// operator, and the value that you want to use for filtering. The value +// must be a string, a number, or a boolean. The 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`. +// +// The `:*` comparison can be used to test whether a key has been defined. +// For example, to find all objects with `owner` label +// use: +// ``` +// labels.owner:* +// ``` +// +// 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 onresource 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) +// ``` +// +// If you want to use a regular expression, use the `eq` (equal) or `ne` +// (not equal) operator against a single un-parenthesized expression with +// or +// without quotes or against multiple parenthesized expressions. +// Examples: +// +// `fieldname eq unquoted literal` +// `fieldname eq 'single quoted literal'` +// `fieldname eq "double quoted literal" +// `(fieldname1 eq literal) (fieldname2 ne "literal")` +// +// The literal value is interpreted as a regular expression using GoogleRE2 +// library syntax. +// The literal value must match the entire field. +// +// For example, to filter for instances that do not end with name +// "instance", +// you would use `name ne .*instance`. +// +// You cannot combine constraints on multiple fields using regular +// expressions. +func (c *ServiceAttachmentsAggregatedListCall) Filter(filter string) *ServiceAttachmentsAggregatedListCall { + c.urlParams_.Set("filter", filter) + return c +} + +// IncludeAllScopes sets the optional parameter "includeAllScopes": Indicates +// whether every visible scope for each scope type (zone, region, +// global) should be included in the response. For new resource types +// added +// after this field, the flag has no effect as new resource types will +// always +// include every visible scope for each scope type in response. For +// resource +// types which predate this field, if this flag is omitted or false, +// only +// scopes of the scope types where the resource type is expected to be +// found +// will be included. +func (c *ServiceAttachmentsAggregatedListCall) IncludeAllScopes(includeAllScopes bool) *ServiceAttachmentsAggregatedListCall { + c.urlParams_.Set("includeAllScopes", fmt.Sprint(includeAllScopes)) + 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 *ServiceAttachmentsAggregatedListCall) MaxResults(maxResults int64) *ServiceAttachmentsAggregatedListCall { + 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 *ServiceAttachmentsAggregatedListCall) OrderBy(orderBy string) *ServiceAttachmentsAggregatedListCall { + 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 *ServiceAttachmentsAggregatedListCall) PageToken(pageToken string) *ServiceAttachmentsAggregatedListCall { + c.urlParams_.Set("pageToken", pageToken) + return c +} + +// ReturnPartialSuccess sets the optional parameter "returnPartialSuccess": +// Opt-in for partial success behavior which provides partial results in +// case +// of failure. The default value is false. +// +// For example, when partial success behavior is enabled, aggregatedList for +// a +// single zone scope either returns all resources in the zone or no +// resources, +// with an error code. +func (c *ServiceAttachmentsAggregatedListCall) ReturnPartialSuccess(returnPartialSuccess bool) *ServiceAttachmentsAggregatedListCall { + c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess)) + return c +} + +// ServiceProjectNumber sets the optional parameter "serviceProjectNumber": The +// Shared VPC service project id or service project number for which +// aggregated list request is invoked for subnetworks list-usable api. +func (c *ServiceAttachmentsAggregatedListCall) ServiceProjectNumber(serviceProjectNumber int64) *ServiceAttachmentsAggregatedListCall { + c.urlParams_.Set("serviceProjectNumber", fmt.Sprint(serviceProjectNumber)) + return c +} + +// Fields allows partial responses to be retrieved. See +// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more +// details. +func (c *ServiceAttachmentsAggregatedListCall) Fields(s ...googleapi.Field) *ServiceAttachmentsAggregatedListCall { + c.urlParams_.Set("fields", googleapi.CombineFields(s)) + return c +} + +// IfNoneMatch sets an 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. +func (c *ServiceAttachmentsAggregatedListCall) IfNoneMatch(entityTag string) *ServiceAttachmentsAggregatedListCall { + c.ifNoneMatch_ = entityTag + return c +} + +// Context sets the context to be used in this call's Do method. +func (c *ServiceAttachmentsAggregatedListCall) Context(ctx context.Context) *ServiceAttachmentsAggregatedListCall { + c.ctx_ = ctx + return c +} + +// Header returns a http.Header that can be modified by the caller to add +// headers to the request. +func (c *ServiceAttachmentsAggregatedListCall) Header() http.Header { + if c.header_ == nil { + c.header_ = make(http.Header) + } + return c.header_ +} + +func (c *ServiceAttachmentsAggregatedListCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) + if c.ifNoneMatch_ != "" { + reqHeaders.Set("If-None-Match", c.ifNoneMatch_) + } + c.urlParams_.Set("alt", alt) + c.urlParams_.Set("prettyPrint", "false") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/aggregated/serviceAttachments") + urls += "?" + c.urlParams_.Encode() + req, err := http.NewRequest("GET", urls, nil) + if err != nil { + return nil, err + } + req.Header = reqHeaders + googleapi.Expand(req.URL, map[string]string{ + "project": c.project, + }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.serviceAttachments.aggregatedList", "request", internallog.HTTPRequest(req, nil)) + return gensupport.SendRequest(c.ctx_, c.s.client, req) +} + +// Do executes the "compute.serviceAttachments.aggregatedList" call. +// Any non-2xx status code is an error. Response headers are in either +// *ServiceAttachmentAggregatedList.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 *ServiceAttachmentsAggregatedListCall) Do(opts ...googleapi.CallOption) (*ServiceAttachmentAggregatedList, 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, gensupport.WrapError(&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, gensupport.WrapError(err) + } + ret := &ServiceAttachmentAggregatedList{ + ServerResponse: googleapi.ServerResponse{ + Header: res.Header, + HTTPStatusCode: res.StatusCode, + }, + } + target := &ret + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { + return nil, err + } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.serviceAttachments.aggregatedList", "response", internallog.HTTPResponse(res, b)) + return ret, nil +} + +// 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 *ServiceAttachmentsAggregatedListCall) Pages(ctx context.Context, f func(*ServiceAttachmentAggregatedList) error) error { + c.ctx_ = ctx + defer c.PageToken(c.urlParams_.Get("pageToken")) + 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) + } +} + +type ServiceAttachmentsDeleteCall struct { + s *Service + project string + region string + serviceAttachment string + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header +} + +// Delete: Deletes the specified ServiceAttachment in the given scope +// +// - project: Project ID for this request. +// - region: Name of the region of this request. +// - serviceAttachment: Name of the ServiceAttachment resource to delete. +func (r *ServiceAttachmentsService) Delete(project string, region string, serviceAttachment string) *ServiceAttachmentsDeleteCall { + c := &ServiceAttachmentsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)} + c.project = project + c.region = region + c.serviceAttachment = serviceAttachment + 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 *ServiceAttachmentsDeleteCall) RequestId(requestId string) *ServiceAttachmentsDeleteCall { + 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 +// details. +func (c *ServiceAttachmentsDeleteCall) Fields(s ...googleapi.Field) *ServiceAttachmentsDeleteCall { + c.urlParams_.Set("fields", googleapi.CombineFields(s)) + return c +} + +// Context sets the context to be used in this call's Do method. +func (c *ServiceAttachmentsDeleteCall) Context(ctx context.Context) *ServiceAttachmentsDeleteCall { + c.ctx_ = ctx + return c +} + +// Header returns a http.Header that can be modified by the caller to add +// headers to the request. +func (c *ServiceAttachmentsDeleteCall) Header() http.Header { + if c.header_ == nil { + c.header_ = make(http.Header) + } + return c.header_ +} + +func (c *ServiceAttachmentsDeleteCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) + c.urlParams_.Set("alt", alt) + c.urlParams_.Set("prettyPrint", "false") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/serviceAttachments/{serviceAttachment}") + urls += "?" + c.urlParams_.Encode() + req, err := http.NewRequest("DELETE", urls, nil) + if err != nil { + return nil, err + } + req.Header = reqHeaders + googleapi.Expand(req.URL, map[string]string{ + "project": c.project, + "region": c.region, + "serviceAttachment": c.serviceAttachment, + }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.serviceAttachments.delete", "request", internallog.HTTPRequest(req, nil)) + return gensupport.SendRequest(c.ctx_, c.s.client, req) +} + +// Do executes the "compute.serviceAttachments.delete" call. +// 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 *ServiceAttachmentsDeleteCall) 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, gensupport.WrapError(&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, gensupport.WrapError(err) + } + ret := &Operation{ + ServerResponse: googleapi.ServerResponse{ + Header: res.Header, + HTTPStatusCode: res.StatusCode, + }, + } + target := &ret + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { + return nil, err + } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.serviceAttachments.delete", "response", internallog.HTTPResponse(res, b)) + return ret, nil +} + +type ServiceAttachmentsGetCall struct { + s *Service + project string + region string + serviceAttachment string + urlParams_ gensupport.URLParams + ifNoneMatch_ string + ctx_ context.Context + header_ http.Header +} + +// Get: Returns the specified ServiceAttachment resource in the given scope. +// +// - project: Project ID for this request. +// - region: Name of the region of this request. +// - serviceAttachment: Name of the ServiceAttachment resource to return. +func (r *ServiceAttachmentsService) Get(project string, region string, serviceAttachment string) *ServiceAttachmentsGetCall { + c := &ServiceAttachmentsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)} + c.project = project + c.region = region + c.serviceAttachment = serviceAttachment + return c +} + +// ShowNatIps sets the optional parameter "showNatIps": Indicates whether NAT +// IPs should be included in the response. +func (c *ServiceAttachmentsGetCall) ShowNatIps(showNatIps bool) *ServiceAttachmentsGetCall { + c.urlParams_.Set("showNatIps", fmt.Sprint(showNatIps)) + return c +} + +// Fields allows partial responses to be retrieved. See +// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more +// details. +func (c *ServiceAttachmentsGetCall) Fields(s ...googleapi.Field) *ServiceAttachmentsGetCall { + c.urlParams_.Set("fields", googleapi.CombineFields(s)) + return c +} + +// IfNoneMatch sets an 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. +func (c *ServiceAttachmentsGetCall) IfNoneMatch(entityTag string) *ServiceAttachmentsGetCall { + c.ifNoneMatch_ = entityTag + return c +} + +// Context sets the context to be used in this call's Do method. +func (c *ServiceAttachmentsGetCall) Context(ctx context.Context) *ServiceAttachmentsGetCall { + c.ctx_ = ctx + return c +} + +// Header returns a http.Header that can be modified by the caller to add +// headers to the request. +func (c *ServiceAttachmentsGetCall) Header() http.Header { + if c.header_ == nil { + c.header_ = make(http.Header) + } + return c.header_ +} + +func (c *ServiceAttachmentsGetCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) + if c.ifNoneMatch_ != "" { + reqHeaders.Set("If-None-Match", c.ifNoneMatch_) + } + c.urlParams_.Set("alt", alt) + c.urlParams_.Set("prettyPrint", "false") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/serviceAttachments/{serviceAttachment}") + urls += "?" + c.urlParams_.Encode() + req, err := http.NewRequest("GET", urls, nil) + if err != nil { + return nil, err + } + req.Header = reqHeaders + googleapi.Expand(req.URL, map[string]string{ + "project": c.project, + "region": c.region, + "serviceAttachment": c.serviceAttachment, + }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.serviceAttachments.get", "request", internallog.HTTPRequest(req, nil)) + return gensupport.SendRequest(c.ctx_, c.s.client, req) +} + +// Do executes the "compute.serviceAttachments.get" call. +// Any non-2xx status code is an error. Response headers are in either +// *ServiceAttachment.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 *ServiceAttachmentsGetCall) Do(opts ...googleapi.CallOption) (*ServiceAttachment, 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, gensupport.WrapError(&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, gensupport.WrapError(err) + } + ret := &ServiceAttachment{ + ServerResponse: googleapi.ServerResponse{ + Header: res.Header, + HTTPStatusCode: res.StatusCode, + }, + } + target := &ret + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { + return nil, err + } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.serviceAttachments.get", "response", internallog.HTTPResponse(res, b)) + return ret, nil +} + +type ServiceAttachmentsGetIamPolicyCall struct { + s *Service + project string + region string + resource string + urlParams_ gensupport.URLParams + ifNoneMatch_ string + ctx_ context.Context + header_ http.Header +} + +// GetIamPolicy: Gets the access control policy for a resource. May be empty if +// no such +// policy or resource exists. +// +// - project: Project ID for this request. +// - region: The name of the region for this request. +// - resource: Name or id of the resource for this request. +func (r *ServiceAttachmentsService) GetIamPolicy(project string, region string, resource string) *ServiceAttachmentsGetIamPolicyCall { + c := &ServiceAttachmentsGetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)} + c.project = project + c.region = region + c.resource = resource + return c +} + +// OptionsRequestedPolicyVersion sets the optional parameter +// "optionsRequestedPolicyVersion": Requested IAM Policy version. +func (c *ServiceAttachmentsGetIamPolicyCall) OptionsRequestedPolicyVersion(optionsRequestedPolicyVersion int64) *ServiceAttachmentsGetIamPolicyCall { + c.urlParams_.Set("optionsRequestedPolicyVersion", fmt.Sprint(optionsRequestedPolicyVersion)) + return c +} + +// Fields allows partial responses to be retrieved. See +// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more +// details. +func (c *ServiceAttachmentsGetIamPolicyCall) Fields(s ...googleapi.Field) *ServiceAttachmentsGetIamPolicyCall { + c.urlParams_.Set("fields", googleapi.CombineFields(s)) + return c +} + +// IfNoneMatch sets an 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. +func (c *ServiceAttachmentsGetIamPolicyCall) IfNoneMatch(entityTag string) *ServiceAttachmentsGetIamPolicyCall { + c.ifNoneMatch_ = entityTag + return c +} + +// Context sets the context to be used in this call's Do method. +func (c *ServiceAttachmentsGetIamPolicyCall) Context(ctx context.Context) *ServiceAttachmentsGetIamPolicyCall { + c.ctx_ = ctx + return c +} + +// Header returns a http.Header that can be modified by the caller to add +// headers to the request. +func (c *ServiceAttachmentsGetIamPolicyCall) Header() http.Header { + if c.header_ == nil { + c.header_ = make(http.Header) + } + return c.header_ +} + +func (c *ServiceAttachmentsGetIamPolicyCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) + if c.ifNoneMatch_ != "" { + reqHeaders.Set("If-None-Match", c.ifNoneMatch_) + } + c.urlParams_.Set("alt", alt) + c.urlParams_.Set("prettyPrint", "false") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/serviceAttachments/{resource}/getIamPolicy") + urls += "?" + c.urlParams_.Encode() + req, err := http.NewRequest("GET", urls, nil) + if err != nil { + return nil, err + } + req.Header = reqHeaders + googleapi.Expand(req.URL, map[string]string{ + "project": c.project, + "region": c.region, + "resource": c.resource, + }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.serviceAttachments.getIamPolicy", "request", internallog.HTTPRequest(req, nil)) + return gensupport.SendRequest(c.ctx_, c.s.client, req) +} + +// Do executes the "compute.serviceAttachments.getIamPolicy" call. +// Any non-2xx status code is an error. Response headers are in either +// *Policy.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 *ServiceAttachmentsGetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, 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, gensupport.WrapError(&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, gensupport.WrapError(err) + } + ret := &Policy{ + ServerResponse: googleapi.ServerResponse{ + Header: res.Header, + HTTPStatusCode: res.StatusCode, + }, + } + target := &ret + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { + return nil, err + } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.serviceAttachments.getIamPolicy", "response", internallog.HTTPResponse(res, b)) + return ret, nil +} + +type ServiceAttachmentsInsertCall struct { + s *Service + project string + region string + serviceattachment *ServiceAttachment + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header +} + +// Insert: Creates a ServiceAttachment in the specified project in the given +// scope +// using the parameters that are included in the request. +// +// - project: Project ID for this request. +// - region: Name of the region of this request. +func (r *ServiceAttachmentsService) Insert(project string, region string, serviceattachment *ServiceAttachment) *ServiceAttachmentsInsertCall { + c := &ServiceAttachmentsInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)} + c.project = project + c.region = region + c.serviceattachment = serviceattachment + 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 *ServiceAttachmentsInsertCall) RequestId(requestId string) *ServiceAttachmentsInsertCall { + 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 +// details. +func (c *ServiceAttachmentsInsertCall) Fields(s ...googleapi.Field) *ServiceAttachmentsInsertCall { + c.urlParams_.Set("fields", googleapi.CombineFields(s)) + return c +} + +// Context sets the context to be used in this call's Do method. +func (c *ServiceAttachmentsInsertCall) Context(ctx context.Context) *ServiceAttachmentsInsertCall { + c.ctx_ = ctx + return c +} + +// Header returns a http.Header that can be modified by the caller to add +// headers to the request. +func (c *ServiceAttachmentsInsertCall) Header() http.Header { + if c.header_ == nil { + c.header_ = make(http.Header) + } + return c.header_ +} + +func (c *ServiceAttachmentsInsertCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) + body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.serviceattachment) + if err != nil { + return nil, err + } + c.urlParams_.Set("alt", alt) + c.urlParams_.Set("prettyPrint", "false") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/serviceAttachments") + urls += "?" + c.urlParams_.Encode() + req, err := http.NewRequest("POST", urls, body) + if err != nil { + return nil, err + } + req.Header = reqHeaders + googleapi.Expand(req.URL, map[string]string{ + "project": c.project, + "region": c.region, + }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.serviceAttachments.insert", "request", internallog.HTTPRequest(req, body.Bytes())) + return gensupport.SendRequest(c.ctx_, c.s.client, req) +} + +// Do executes the "compute.serviceAttachments.insert" call. +// 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 *ServiceAttachmentsInsertCall) 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, gensupport.WrapError(&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, gensupport.WrapError(err) + } + ret := &Operation{ + ServerResponse: googleapi.ServerResponse{ + Header: res.Header, + HTTPStatusCode: res.StatusCode, + }, + } + target := &ret + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { + return nil, err + } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.serviceAttachments.insert", "response", internallog.HTTPResponse(res, b)) + return ret, nil +} + +type ServiceAttachmentsListCall struct { + s *Service + project string + region string + urlParams_ gensupport.URLParams + ifNoneMatch_ string + ctx_ context.Context + header_ http.Header +} + +// List: Lists the ServiceAttachments for a project in the given scope. +// +// - project: Project ID for this request. +// - region: Name of the region of this request. +func (r *ServiceAttachmentsService) List(project string, region string) *ServiceAttachmentsListCall { + c := &ServiceAttachmentsListCall{s: r.s, urlParams_: make(gensupport.URLParams)} + c.project = project + c.region = region + return c +} + +// Filter sets the optional parameter "filter": A filter expression that +// filters resources listed in the response. Most +// Compute resources support two types of filter expressions: +// expressions that support regular expressions and expressions that follow +// API improvement proposal AIP-160. +// These two types of filter expressions cannot be mixed in one request. +// +// If you want to use AIP-160, your expression must specify the field name, +// an +// operator, and the value that you want to use for filtering. The value +// must be a string, a number, or a boolean. The 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`. +// +// The `:*` comparison can be used to test whether a key has been defined. +// For example, to find all objects with `owner` label +// use: +// ``` +// labels.owner:* +// ``` +// +// 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 onresource 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) +// ``` +// +// If you want to use a regular expression, use the `eq` (equal) or `ne` +// (not equal) operator against a single un-parenthesized expression with +// or +// without quotes or against multiple parenthesized expressions. +// Examples: +// +// `fieldname eq unquoted literal` +// `fieldname eq 'single quoted literal'` +// `fieldname eq "double quoted literal" +// `(fieldname1 eq literal) (fieldname2 ne "literal")` +// +// The literal value is interpreted as a regular expression using GoogleRE2 +// library syntax. +// The literal value must match the entire field. +// +// For example, to filter for instances that do not end with name +// "instance", +// you would use `name ne .*instance`. +// +// You cannot combine constraints on multiple fields using regular +// expressions. +func (c *ServiceAttachmentsListCall) Filter(filter string) *ServiceAttachmentsListCall { + 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 *ServiceAttachmentsListCall) MaxResults(maxResults int64) *ServiceAttachmentsListCall { + 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 *ServiceAttachmentsListCall) OrderBy(orderBy string) *ServiceAttachmentsListCall { + 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 *ServiceAttachmentsListCall) PageToken(pageToken string) *ServiceAttachmentsListCall { + c.urlParams_.Set("pageToken", pageToken) + return c +} + +// ReturnPartialSuccess sets the optional parameter "returnPartialSuccess": +// Opt-in for partial success behavior which provides partial results in +// case +// of failure. The default value is false. +// +// For example, when partial success behavior is enabled, aggregatedList for +// a +// single zone scope either returns all resources in the zone or no +// resources, +// with an error code. +func (c *ServiceAttachmentsListCall) ReturnPartialSuccess(returnPartialSuccess bool) *ServiceAttachmentsListCall { + c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess)) + return c +} + +// Fields allows partial responses to be retrieved. See +// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more +// details. +func (c *ServiceAttachmentsListCall) Fields(s ...googleapi.Field) *ServiceAttachmentsListCall { + c.urlParams_.Set("fields", googleapi.CombineFields(s)) + return c +} + +// IfNoneMatch sets an 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. +func (c *ServiceAttachmentsListCall) IfNoneMatch(entityTag string) *ServiceAttachmentsListCall { + c.ifNoneMatch_ = entityTag + return c +} + +// Context sets the context to be used in this call's Do method. +func (c *ServiceAttachmentsListCall) Context(ctx context.Context) *ServiceAttachmentsListCall { + c.ctx_ = ctx + return c +} + +// Header returns a http.Header that can be modified by the caller to add +// headers to the request. +func (c *ServiceAttachmentsListCall) Header() http.Header { + if c.header_ == nil { + c.header_ = make(http.Header) + } + return c.header_ +} + +func (c *ServiceAttachmentsListCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) + if c.ifNoneMatch_ != "" { + reqHeaders.Set("If-None-Match", c.ifNoneMatch_) + } + c.urlParams_.Set("alt", alt) + c.urlParams_.Set("prettyPrint", "false") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/serviceAttachments") + urls += "?" + c.urlParams_.Encode() + req, err := http.NewRequest("GET", urls, nil) + if err != nil { + return nil, err + } + req.Header = reqHeaders + googleapi.Expand(req.URL, map[string]string{ + "project": c.project, + "region": c.region, + }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.serviceAttachments.list", "request", internallog.HTTPRequest(req, nil)) + return gensupport.SendRequest(c.ctx_, c.s.client, req) +} + +// Do executes the "compute.serviceAttachments.list" call. +// Any non-2xx status code is an error. Response headers are in either +// *ServiceAttachmentList.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 *ServiceAttachmentsListCall) Do(opts ...googleapi.CallOption) (*ServiceAttachmentList, 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, gensupport.WrapError(&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, gensupport.WrapError(err) + } + ret := &ServiceAttachmentList{ + ServerResponse: googleapi.ServerResponse{ + Header: res.Header, + HTTPStatusCode: res.StatusCode, + }, + } + target := &ret + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { + return nil, err + } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.serviceAttachments.list", "response", internallog.HTTPResponse(res, b)) + return ret, nil +} + +// 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 *ServiceAttachmentsListCall) Pages(ctx context.Context, f func(*ServiceAttachmentList) error) error { + c.ctx_ = ctx + defer c.PageToken(c.urlParams_.Get("pageToken")) + 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) + } +} + +type ServiceAttachmentsPatchCall struct { + s *Service + project string + region string + serviceAttachment string + serviceattachment *ServiceAttachment + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header +} + +// Patch: Patches the specified ServiceAttachment resource with the data +// included in +// the request. This method supports PATCH +// semantics and usesJSON merge +// patch format and processing rules. +// +// - project: Project ID for this request. +// - region: The region scoping this request and should conform to RFC1035. +// - serviceAttachment: The resource id of the ServiceAttachment to patch. It +// should conform to +// RFC1035 resource name or be a string form on an unsigned long number. +func (r *ServiceAttachmentsService) Patch(project string, region string, serviceAttachment string, serviceattachment *ServiceAttachment) *ServiceAttachmentsPatchCall { + c := &ServiceAttachmentsPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)} + c.project = project + c.region = region + c.serviceAttachment = serviceAttachment + c.serviceattachment = serviceattachment + 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 *ServiceAttachmentsPatchCall) RequestId(requestId string) *ServiceAttachmentsPatchCall { + 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 +// details. +func (c *ServiceAttachmentsPatchCall) Fields(s ...googleapi.Field) *ServiceAttachmentsPatchCall { + c.urlParams_.Set("fields", googleapi.CombineFields(s)) + return c +} + +// Context sets the context to be used in this call's Do method. +func (c *ServiceAttachmentsPatchCall) Context(ctx context.Context) *ServiceAttachmentsPatchCall { + c.ctx_ = ctx + return c +} + +// Header returns a http.Header that can be modified by the caller to add +// headers to the request. +func (c *ServiceAttachmentsPatchCall) Header() http.Header { + if c.header_ == nil { + c.header_ = make(http.Header) + } + return c.header_ +} + +func (c *ServiceAttachmentsPatchCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) + body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.serviceattachment) + if err != nil { + return nil, err + } + c.urlParams_.Set("alt", alt) + c.urlParams_.Set("prettyPrint", "false") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/serviceAttachments/{serviceAttachment}") + urls += "?" + c.urlParams_.Encode() + req, err := http.NewRequest("PATCH", urls, body) + if err != nil { + return nil, err + } + req.Header = reqHeaders + googleapi.Expand(req.URL, map[string]string{ + "project": c.project, + "region": c.region, + "serviceAttachment": c.serviceAttachment, + }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.serviceAttachments.patch", "request", internallog.HTTPRequest(req, body.Bytes())) + return gensupport.SendRequest(c.ctx_, c.s.client, req) +} + +// Do executes the "compute.serviceAttachments.patch" call. +// 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 *ServiceAttachmentsPatchCall) 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, gensupport.WrapError(&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, gensupport.WrapError(err) + } + ret := &Operation{ + ServerResponse: googleapi.ServerResponse{ + Header: res.Header, + HTTPStatusCode: res.StatusCode, + }, + } + target := &ret + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { + return nil, err + } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.serviceAttachments.patch", "response", internallog.HTTPResponse(res, b)) + return ret, nil +} + +type ServiceAttachmentsSetIamPolicyCall struct { + s *Service + project string + region string + resource string + regionsetpolicyrequest *RegionSetPolicyRequest + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header +} + +// SetIamPolicy: Sets the access control policy on the specified +// resource. +// Replaces any existing policy. +// +// - project: Project ID for this request. +// - region: The name of the region for this request. +// - resource: Name or id of the resource for this request. +func (r *ServiceAttachmentsService) SetIamPolicy(project string, region string, resource string, regionsetpolicyrequest *RegionSetPolicyRequest) *ServiceAttachmentsSetIamPolicyCall { + c := &ServiceAttachmentsSetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)} + c.project = project + c.region = region + c.resource = resource + c.regionsetpolicyrequest = regionsetpolicyrequest + return c +} + +// Fields allows partial responses to be retrieved. See +// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more +// details. +func (c *ServiceAttachmentsSetIamPolicyCall) Fields(s ...googleapi.Field) *ServiceAttachmentsSetIamPolicyCall { + c.urlParams_.Set("fields", googleapi.CombineFields(s)) + return c +} + +// Context sets the context to be used in this call's Do method. +func (c *ServiceAttachmentsSetIamPolicyCall) Context(ctx context.Context) *ServiceAttachmentsSetIamPolicyCall { + c.ctx_ = ctx + return c +} + +// Header returns a http.Header that can be modified by the caller to add +// headers to the request. +func (c *ServiceAttachmentsSetIamPolicyCall) Header() http.Header { + if c.header_ == nil { + c.header_ = make(http.Header) + } + return c.header_ +} + +func (c *ServiceAttachmentsSetIamPolicyCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) + body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.regionsetpolicyrequest) + if err != nil { + return nil, err + } + c.urlParams_.Set("alt", alt) + c.urlParams_.Set("prettyPrint", "false") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/serviceAttachments/{resource}/setIamPolicy") + urls += "?" + c.urlParams_.Encode() + req, err := http.NewRequest("POST", urls, body) + if err != nil { + return nil, err + } + req.Header = reqHeaders + googleapi.Expand(req.URL, map[string]string{ + "project": c.project, + "region": c.region, + "resource": c.resource, + }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.serviceAttachments.setIamPolicy", "request", internallog.HTTPRequest(req, body.Bytes())) + return gensupport.SendRequest(c.ctx_, c.s.client, req) +} + +// Do executes the "compute.serviceAttachments.setIamPolicy" call. +// Any non-2xx status code is an error. Response headers are in either +// *Policy.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 *ServiceAttachmentsSetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, 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, gensupport.WrapError(&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, gensupport.WrapError(err) + } + ret := &Policy{ + ServerResponse: googleapi.ServerResponse{ + Header: res.Header, + HTTPStatusCode: res.StatusCode, + }, + } + target := &ret + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { + return nil, err + } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.serviceAttachments.setIamPolicy", "response", internallog.HTTPResponse(res, b)) + return ret, nil +} + +type ServiceAttachmentsTestIamPermissionsCall struct { + s *Service + project string + region string + resource string + testpermissionsrequest *TestPermissionsRequest + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header +} + +// TestIamPermissions: Returns permissions that a caller has on the specified +// resource. +// +// - project: Project ID for this request. +// - region: The name of the region for this request. +// - resource: Name or id of the resource for this request. +func (r *ServiceAttachmentsService) TestIamPermissions(project string, region string, resource string, testpermissionsrequest *TestPermissionsRequest) *ServiceAttachmentsTestIamPermissionsCall { + c := &ServiceAttachmentsTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)} + c.project = project + c.region = region + c.resource = resource + c.testpermissionsrequest = testpermissionsrequest + return c +} + +// Fields allows partial responses to be retrieved. See +// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more +// details. +func (c *ServiceAttachmentsTestIamPermissionsCall) Fields(s ...googleapi.Field) *ServiceAttachmentsTestIamPermissionsCall { + c.urlParams_.Set("fields", googleapi.CombineFields(s)) + return c +} + +// Context sets the context to be used in this call's Do method. +func (c *ServiceAttachmentsTestIamPermissionsCall) Context(ctx context.Context) *ServiceAttachmentsTestIamPermissionsCall { + c.ctx_ = ctx + return c +} + +// Header returns a http.Header that can be modified by the caller to add +// headers to the request. +func (c *ServiceAttachmentsTestIamPermissionsCall) Header() http.Header { + if c.header_ == nil { + c.header_ = make(http.Header) + } + return c.header_ +} + +func (c *ServiceAttachmentsTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) + body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.testpermissionsrequest) + if err != nil { + return nil, err + } + c.urlParams_.Set("alt", alt) + c.urlParams_.Set("prettyPrint", "false") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/serviceAttachments/{resource}/testIamPermissions") + urls += "?" + c.urlParams_.Encode() + req, err := http.NewRequest("POST", urls, body) + if err != nil { + return nil, err + } + req.Header = reqHeaders + googleapi.Expand(req.URL, map[string]string{ + "project": c.project, + "region": c.region, + "resource": c.resource, + }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.serviceAttachments.testIamPermissions", "request", internallog.HTTPRequest(req, body.Bytes())) + return gensupport.SendRequest(c.ctx_, c.s.client, req) +} + +// Do executes the "compute.serviceAttachments.testIamPermissions" call. +// Any non-2xx status code is an error. Response headers are in either +// *TestPermissionsResponse.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 *ServiceAttachmentsTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, 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, gensupport.WrapError(&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, gensupport.WrapError(err) + } + ret := &TestPermissionsResponse{ + ServerResponse: googleapi.ServerResponse{ + Header: res.Header, + HTTPStatusCode: res.StatusCode, + }, + } + target := &ret + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { + return nil, err + } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.serviceAttachments.testIamPermissions", "response", internallog.HTTPResponse(res, b)) + return ret, nil +} + +type SnapshotSettingsGetCall struct { + s *Service + project string + urlParams_ gensupport.URLParams + ifNoneMatch_ string + ctx_ context.Context + header_ http.Header +} + +// Get: Get snapshot settings. +// +// - project: Project ID for this request. +func (r *SnapshotSettingsService) Get(project string) *SnapshotSettingsGetCall { + c := &SnapshotSettingsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)} + c.project = project + return c +} + +// Fields allows partial responses to be retrieved. See +// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more +// details. +func (c *SnapshotSettingsGetCall) Fields(s ...googleapi.Field) *SnapshotSettingsGetCall { + c.urlParams_.Set("fields", googleapi.CombineFields(s)) + return c +} + +// IfNoneMatch sets an 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. +func (c *SnapshotSettingsGetCall) IfNoneMatch(entityTag string) *SnapshotSettingsGetCall { + c.ifNoneMatch_ = entityTag + return c +} + +// Context sets the context to be used in this call's Do method. +func (c *SnapshotSettingsGetCall) Context(ctx context.Context) *SnapshotSettingsGetCall { + c.ctx_ = ctx + return c +} + +// Header returns a http.Header that can be modified by the caller to add +// headers to the request. +func (c *SnapshotSettingsGetCall) Header() http.Header { + if c.header_ == nil { + c.header_ = make(http.Header) + } + return c.header_ +} + +func (c *SnapshotSettingsGetCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) + if c.ifNoneMatch_ != "" { + reqHeaders.Set("If-None-Match", c.ifNoneMatch_) + } + c.urlParams_.Set("alt", alt) + c.urlParams_.Set("prettyPrint", "false") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/snapshotSettings") + urls += "?" + c.urlParams_.Encode() + req, err := http.NewRequest("GET", urls, nil) + if err != nil { + return nil, err + } + req.Header = reqHeaders + googleapi.Expand(req.URL, map[string]string{ + "project": c.project, + }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.snapshotSettings.get", "request", internallog.HTTPRequest(req, nil)) + return gensupport.SendRequest(c.ctx_, c.s.client, req) +} + +// Do executes the "compute.snapshotSettings.get" call. +// Any non-2xx status code is an error. Response headers are in either +// *SnapshotSettings.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 *SnapshotSettingsGetCall) Do(opts ...googleapi.CallOption) (*SnapshotSettings, 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, gensupport.WrapError(&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, gensupport.WrapError(err) + } + ret := &SnapshotSettings{ + ServerResponse: googleapi.ServerResponse{ + Header: res.Header, + HTTPStatusCode: res.StatusCode, + }, + } + target := &ret + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { + return nil, err + } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.snapshotSettings.get", "response", internallog.HTTPResponse(res, b)) + return ret, nil +} + +type SnapshotSettingsPatchCall struct { + s *Service + project string + snapshotsettings *SnapshotSettings + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header +} + +// Patch: Patch snapshot settings. +// +// - project: Project ID for this request. +func (r *SnapshotSettingsService) Patch(project string, snapshotsettings *SnapshotSettings) *SnapshotSettingsPatchCall { + c := &SnapshotSettingsPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)} + c.project = project + c.snapshotsettings = snapshotsettings + 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 *SnapshotSettingsPatchCall) RequestId(requestId string) *SnapshotSettingsPatchCall { + c.urlParams_.Set("requestId", requestId) + return c +} + +// UpdateMask sets the optional parameter "updateMask": update_mask indicates +// fields to be updated as part of this request. +func (c *SnapshotSettingsPatchCall) UpdateMask(updateMask string) *SnapshotSettingsPatchCall { + c.urlParams_.Set("updateMask", updateMask) + return c +} + +// Fields allows partial responses to be retrieved. See +// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more +// details. +func (c *SnapshotSettingsPatchCall) Fields(s ...googleapi.Field) *SnapshotSettingsPatchCall { + c.urlParams_.Set("fields", googleapi.CombineFields(s)) + return c +} + +// Context sets the context to be used in this call's Do method. +func (c *SnapshotSettingsPatchCall) Context(ctx context.Context) *SnapshotSettingsPatchCall { + c.ctx_ = ctx + return c +} + +// Header returns a http.Header that can be modified by the caller to add +// headers to the request. +func (c *SnapshotSettingsPatchCall) Header() http.Header { + if c.header_ == nil { + c.header_ = make(http.Header) + } + return c.header_ +} + +func (c *SnapshotSettingsPatchCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) + body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.snapshotsettings) + if err != nil { + return nil, err + } + c.urlParams_.Set("alt", alt) + c.urlParams_.Set("prettyPrint", "false") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/snapshotSettings") + urls += "?" + c.urlParams_.Encode() + req, err := http.NewRequest("PATCH", urls, body) + if err != nil { + return nil, err + } + req.Header = reqHeaders + googleapi.Expand(req.URL, map[string]string{ + "project": c.project, + }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.snapshotSettings.patch", "request", internallog.HTTPRequest(req, body.Bytes())) + return gensupport.SendRequest(c.ctx_, c.s.client, req) +} + +// Do executes the "compute.snapshotSettings.patch" call. +// 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 *SnapshotSettingsPatchCall) 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, gensupport.WrapError(&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, gensupport.WrapError(err) + } + ret := &Operation{ + ServerResponse: googleapi.ServerResponse{ + Header: res.Header, + HTTPStatusCode: res.StatusCode, + }, + } + target := &ret + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { + return nil, err + } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.snapshotSettings.patch", "response", internallog.HTTPResponse(res, b)) + return ret, nil +} + +type SnapshotsDeleteCall struct { + s *Service + project string + snapshot string + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header +} + +// Delete: Deletes the specified Snapshot resource. Keep in mind that +// deleting +// a single snapshot might not necessarily delete all the data on +// that +// snapshot. If any data on the snapshot that is marked for deletion is +// needed for subsequent snapshots, the data will be moved to the +// next +// corresponding snapshot. +// +// For more information, seeDeleting +// snapshots. +// +// - project: Project ID for this request. +// - snapshot: Name of the Snapshot resource to delete. +func (r *SnapshotsService) Delete(project string, snapshot string) *SnapshotsDeleteCall { + c := &SnapshotsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)} + c.project = project + c.snapshot = snapshot + 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 *SnapshotsDeleteCall) RequestId(requestId string) *SnapshotsDeleteCall { + 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 +// details. +func (c *SnapshotsDeleteCall) Fields(s ...googleapi.Field) *SnapshotsDeleteCall { + c.urlParams_.Set("fields", googleapi.CombineFields(s)) + return c +} + +// Context sets the context to be used in this call's Do method. +func (c *SnapshotsDeleteCall) Context(ctx context.Context) *SnapshotsDeleteCall { + c.ctx_ = ctx + return c +} + +// Header returns a http.Header that can be modified by the caller to add +// headers to the request. +func (c *SnapshotsDeleteCall) Header() http.Header { + if c.header_ == nil { + c.header_ = make(http.Header) + } + return c.header_ +} + +func (c *SnapshotsDeleteCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) + c.urlParams_.Set("alt", alt) + c.urlParams_.Set("prettyPrint", "false") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/snapshots/{snapshot}") + urls += "?" + c.urlParams_.Encode() + req, err := http.NewRequest("DELETE", urls, nil) + if err != nil { + return nil, err + } + req.Header = reqHeaders + googleapi.Expand(req.URL, map[string]string{ + "project": c.project, + "snapshot": c.snapshot, + }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.snapshots.delete", "request", internallog.HTTPRequest(req, nil)) + return gensupport.SendRequest(c.ctx_, c.s.client, req) +} + +// Do executes the "compute.snapshots.delete" call. +// 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 *SnapshotsDeleteCall) 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, gensupport.WrapError(&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, gensupport.WrapError(err) + } + ret := &Operation{ + ServerResponse: googleapi.ServerResponse{ + Header: res.Header, + HTTPStatusCode: res.StatusCode, + }, + } + target := &ret + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { + return nil, err + } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.snapshots.delete", "response", internallog.HTTPResponse(res, b)) + return ret, nil +} + +type SnapshotsGetCall struct { + s *Service + project string + snapshot string + urlParams_ gensupport.URLParams + ifNoneMatch_ string + ctx_ context.Context + header_ http.Header +} + +// Get: Returns the specified Snapshot resource. +// +// - project: Project ID for this request. +// - snapshot: Name of the Snapshot resource to return. +func (r *SnapshotsService) Get(project string, snapshot string) *SnapshotsGetCall { + c := &SnapshotsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)} + c.project = project + c.snapshot = snapshot + return c +} + +// Fields allows partial responses to be retrieved. See +// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more +// details. +func (c *SnapshotsGetCall) Fields(s ...googleapi.Field) *SnapshotsGetCall { + c.urlParams_.Set("fields", googleapi.CombineFields(s)) + return c +} + +// IfNoneMatch sets an 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. +func (c *SnapshotsGetCall) IfNoneMatch(entityTag string) *SnapshotsGetCall { + c.ifNoneMatch_ = entityTag + return c } // Context sets the context to be used in this call's Do method. -func (c *SecurityPoliciesRemoveRuleCall) Context(ctx context.Context) *SecurityPoliciesRemoveRuleCall { +func (c *SnapshotsGetCall) Context(ctx context.Context) *SnapshotsGetCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *SecurityPoliciesRemoveRuleCall) Header() http.Header { +func (c *SnapshotsGetCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *SecurityPoliciesRemoveRuleCall) doRequest(alt string) (*http.Response, error) { +func (c *SnapshotsGetCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) - var body io.Reader = nil + if c.ifNoneMatch_ != "" { + reqHeaders.Set("If-None-Match", c.ifNoneMatch_) + } c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/securityPolicies/{securityPolicy}/removeRule") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/snapshots/{snapshot}") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("POST", urls, body) + req, err := http.NewRequest("GET", urls, nil) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "securityPolicy": c.securityPolicy, + "project": c.project, + "snapshot": c.snapshot, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.snapshots.get", "request", internallog.HTTPRequest(req, nil)) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.securityPolicies.removeRule" call. +// Do executes the "compute.snapshots.get" call. // 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 +// *Snapshot.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 *SecurityPoliciesRemoveRuleCall) Do(opts ...googleapi.CallOption) (*Operation, error) { +func (c *SnapshotsGetCall) Do(opts ...googleapi.CallOption) (*Snapshot, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -28568,75 +47975,223 @@ func (c *SecurityPoliciesRemoveRuleCall) Do(opts ...googleapi.CallOption) (*Oper if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } - ret := &Operation{ + ret := &Snapshot{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.snapshots.get", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type SecurityPoliciesSetLabelsCall struct { - s *Service - project string - resource string - globalsetlabelsrequest *GlobalSetLabelsRequest - urlParams_ gensupport.URLParams - ctx_ context.Context - header_ http.Header +type SnapshotsGetIamPolicyCall struct { + s *Service + project string + resource string + urlParams_ gensupport.URLParams + ifNoneMatch_ string + ctx_ context.Context + header_ http.Header } -// SetLabels: Sets the labels on a security policy. To learn more about labels, -// read the Labeling Resources documentation. +// GetIamPolicy: Gets the access control policy for a resource. May be empty if +// no such +// policy or resource exists. // // - project: Project ID for this request. // - resource: Name or id of the resource for this request. -func (r *SecurityPoliciesService) SetLabels(project string, resource string, globalsetlabelsrequest *GlobalSetLabelsRequest) *SecurityPoliciesSetLabelsCall { - c := &SecurityPoliciesSetLabelsCall{s: r.s, urlParams_: make(gensupport.URLParams)} +func (r *SnapshotsService) GetIamPolicy(project string, resource string) *SnapshotsGetIamPolicyCall { + c := &SnapshotsGetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project c.resource = resource - c.globalsetlabelsrequest = globalsetlabelsrequest + return c +} + +// OptionsRequestedPolicyVersion sets the optional parameter +// "optionsRequestedPolicyVersion": Requested IAM Policy version. +func (c *SnapshotsGetIamPolicyCall) OptionsRequestedPolicyVersion(optionsRequestedPolicyVersion int64) *SnapshotsGetIamPolicyCall { + c.urlParams_.Set("optionsRequestedPolicyVersion", fmt.Sprint(optionsRequestedPolicyVersion)) return c } // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *SecurityPoliciesSetLabelsCall) Fields(s ...googleapi.Field) *SecurityPoliciesSetLabelsCall { +func (c *SnapshotsGetIamPolicyCall) Fields(s ...googleapi.Field) *SnapshotsGetIamPolicyCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } +// IfNoneMatch sets an 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. +func (c *SnapshotsGetIamPolicyCall) IfNoneMatch(entityTag string) *SnapshotsGetIamPolicyCall { + c.ifNoneMatch_ = entityTag + return c +} + // Context sets the context to be used in this call's Do method. -func (c *SecurityPoliciesSetLabelsCall) Context(ctx context.Context) *SecurityPoliciesSetLabelsCall { +func (c *SnapshotsGetIamPolicyCall) Context(ctx context.Context) *SnapshotsGetIamPolicyCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *SecurityPoliciesSetLabelsCall) Header() http.Header { +func (c *SnapshotsGetIamPolicyCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *SecurityPoliciesSetLabelsCall) doRequest(alt string) (*http.Response, error) { +func (c *SnapshotsGetIamPolicyCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) + if c.ifNoneMatch_ != "" { + reqHeaders.Set("If-None-Match", c.ifNoneMatch_) + } + c.urlParams_.Set("alt", alt) + c.urlParams_.Set("prettyPrint", "false") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/snapshots/{resource}/getIamPolicy") + urls += "?" + c.urlParams_.Encode() + req, err := http.NewRequest("GET", urls, nil) + if err != nil { + return nil, err + } + req.Header = reqHeaders + googleapi.Expand(req.URL, map[string]string{ + "project": c.project, + "resource": c.resource, + }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.snapshots.getIamPolicy", "request", internallog.HTTPRequest(req, nil)) + return gensupport.SendRequest(c.ctx_, c.s.client, req) +} + +// Do executes the "compute.snapshots.getIamPolicy" call. +// Any non-2xx status code is an error. Response headers are in either +// *Policy.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 *SnapshotsGetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, 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, gensupport.WrapError(&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, gensupport.WrapError(err) + } + ret := &Policy{ + ServerResponse: googleapi.ServerResponse{ + Header: res.Header, + HTTPStatusCode: res.StatusCode, + }, + } + target := &ret + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { + return nil, err + } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.snapshots.getIamPolicy", "response", internallog.HTTPResponse(res, b)) + return ret, nil +} + +type SnapshotsInsertCall struct { + s *Service + project string + snapshot *Snapshot + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header +} + +// Insert: Creates a snapshot in the specified project using the data +// included +// in the request. For regular snapshot creation, consider using this +// method +// instead of disks.createSnapshot, +// as this method supports more features, such as creating snapshots in +// a +// project different from the source disk project. +// +// - project: Project ID for this request. +func (r *SnapshotsService) Insert(project string, snapshot *Snapshot) *SnapshotsInsertCall { + c := &SnapshotsInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)} + c.project = project + c.snapshot = snapshot + 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 *SnapshotsInsertCall) RequestId(requestId string) *SnapshotsInsertCall { + 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 +// details. +func (c *SnapshotsInsertCall) Fields(s ...googleapi.Field) *SnapshotsInsertCall { + c.urlParams_.Set("fields", googleapi.CombineFields(s)) + return c +} + +// Context sets the context to be used in this call's Do method. +func (c *SnapshotsInsertCall) Context(ctx context.Context) *SnapshotsInsertCall { + c.ctx_ = ctx + return c +} + +// Header returns a http.Header that can be modified by the caller to add +// headers to the request. +func (c *SnapshotsInsertCall) Header() http.Header { + if c.header_ == nil { + c.header_ = make(http.Header) + } + return c.header_ +} + +func (c *SnapshotsInsertCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) - var body io.Reader = nil - body, err := googleapi.WithoutDataWrapper.JSONReader(c.globalsetlabelsrequest) + body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.snapshot) if err != nil { return nil, err } c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/securityPolicies/{resource}/setLabels") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/snapshots") urls += "?" + c.urlParams_.Encode() req, err := http.NewRequest("POST", urls, body) if err != nil { @@ -28644,18 +48199,18 @@ func (c *SecurityPoliciesSetLabelsCall) doRequest(alt string) (*http.Response, e } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "resource": c.resource, + "project": c.project, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.snapshots.insert", "request", internallog.HTTPRequest(req, body.Bytes())) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.securityPolicies.setLabels" call. +// Do executes the "compute.snapshots.insert" call. // 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 *SecurityPoliciesSetLabelsCall) Do(opts ...googleapi.CallOption) (*Operation, error) { +func (c *SnapshotsInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -28681,13 +48236,15 @@ func (c *SecurityPoliciesSetLabelsCall) Do(opts ...googleapi.CallOption) (*Opera }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.snapshots.insert", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type ServiceAttachmentsAggregatedListCall struct { +type SnapshotsListCall struct { s *Service project string urlParams_ gensupport.URLParams @@ -28696,121 +48253,148 @@ type ServiceAttachmentsAggregatedListCall struct { header_ http.Header } -// AggregatedList: Retrieves the list of all ServiceAttachment resources, -// regional and global, available to the specified project. To prevent failure, -// Google recommends that you set the `returnPartialSuccess` parameter to -// `true`. +// List: Retrieves the list of Snapshot resources contained within +// the specified project. // -// - project: Name of the project scoping this request. -func (r *ServiceAttachmentsService) AggregatedList(project string) *ServiceAttachmentsAggregatedListCall { - c := &ServiceAttachmentsAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)} +// - project: Project ID for this request. +func (r *SnapshotsService) List(project string) *SnapshotsListCall { + c := &SnapshotsListCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project return c } // Filter sets the optional parameter "filter": A filter expression that -// filters resources listed in the response. Most Compute resources support two -// types of filter expressions: expressions that support regular expressions -// and expressions that follow API improvement proposal AIP-160. These two -// types of filter expressions cannot be mixed in one request. If you want to -// use AIP-160, your expression must specify the field name, an operator, and -// the value that you want to use for filtering. The value must be a string, a -// number, or a boolean. The 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`. The `:*` comparison can be used to test whether a key has -// been defined. For example, to find all objects with `owner` label use: ``` -// labels.owner:* ``` 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) ``` If you want to use a regular -// expression, use the `eq` (equal) or `ne` (not equal) operator against a -// single un-parenthesized expression with or without quotes or against -// multiple parenthesized expressions. Examples: `fieldname eq unquoted -// literal` `fieldname eq 'single quoted literal'` `fieldname eq "double quoted -// literal" `(fieldname1 eq literal) (fieldname2 ne "literal")` The literal -// value is interpreted as a regular expression using Google RE2 library -// syntax. The literal value must match the entire field. For example, to -// filter for instances that do not end with name "instance", you would use -// `name ne .*instance`. You cannot combine constraints on multiple fields -// using regular expressions. -func (c *ServiceAttachmentsAggregatedListCall) Filter(filter string) *ServiceAttachmentsAggregatedListCall { +// filters resources listed in the response. Most +// Compute resources support two types of filter expressions: +// expressions that support regular expressions and expressions that follow +// API improvement proposal AIP-160. +// These two types of filter expressions cannot be mixed in one request. +// +// If you want to use AIP-160, your expression must specify the field name, +// an +// operator, and the value that you want to use for filtering. The value +// must be a string, a number, or a boolean. The 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`. +// +// The `:*` comparison can be used to test whether a key has been defined. +// For example, to find all objects with `owner` label +// use: +// ``` +// labels.owner:* +// ``` +// +// 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 onresource 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) +// ``` +// +// If you want to use a regular expression, use the `eq` (equal) or `ne` +// (not equal) operator against a single un-parenthesized expression with +// or +// without quotes or against multiple parenthesized expressions. +// Examples: +// +// `fieldname eq unquoted literal` +// `fieldname eq 'single quoted literal'` +// `fieldname eq "double quoted literal" +// `(fieldname1 eq literal) (fieldname2 ne "literal")` +// +// The literal value is interpreted as a regular expression using GoogleRE2 +// library syntax. +// The literal value must match the entire field. +// +// For example, to filter for instances that do not end with name +// "instance", +// you would use `name ne .*instance`. +// +// You cannot combine constraints on multiple fields using regular +// expressions. +func (c *SnapshotsListCall) Filter(filter string) *SnapshotsListCall { c.urlParams_.Set("filter", filter) return c } -// IncludeAllScopes sets the optional parameter "includeAllScopes": Indicates -// whether every visible scope for each scope type (zone, region, global) -// should be included in the response. For new resource types added after this -// field, the flag has no effect as new resource types will always include -// every visible scope for each scope type in response. For resource types -// which predate this field, if this flag is omitted or false, only scopes of -// the scope types where the resource type is expected to be found will be -// included. -func (c *ServiceAttachmentsAggregatedListCall) IncludeAllScopes(includeAllScopes bool) *ServiceAttachmentsAggregatedListCall { - c.urlParams_.Set("includeAllScopes", fmt.Sprint(includeAllScopes)) - 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 *ServiceAttachmentsAggregatedListCall) MaxResults(maxResults int64) *ServiceAttachmentsAggregatedListCall { +// 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 *SnapshotsListCall) MaxResults(maxResults int64) *SnapshotsListCall { 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 *ServiceAttachmentsAggregatedListCall) OrderBy(orderBy string) *ServiceAttachmentsAggregatedListCall { +// 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 *SnapshotsListCall) OrderBy(orderBy string) *SnapshotsListCall { 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 *ServiceAttachmentsAggregatedListCall) PageToken(pageToken string) *ServiceAttachmentsAggregatedListCall { +// use. Set `pageToken` to the +// `nextPageToken` returned by a previous list request to get +// the next page of results. +func (c *SnapshotsListCall) PageToken(pageToken string) *SnapshotsListCall { c.urlParams_.Set("pageToken", pageToken) return c } // ReturnPartialSuccess sets the optional parameter "returnPartialSuccess": -// Opt-in for partial success behavior which provides partial results in case -// of failure. The default value is false. For example, when partial success -// behavior is enabled, aggregatedList for a single zone scope either returns -// all resources in the zone or no resources, with an error code. -func (c *ServiceAttachmentsAggregatedListCall) ReturnPartialSuccess(returnPartialSuccess bool) *ServiceAttachmentsAggregatedListCall { +// Opt-in for partial success behavior which provides partial results in +// case +// of failure. The default value is false. +// +// For example, when partial success behavior is enabled, aggregatedList for +// a +// single zone scope either returns all resources in the zone or no +// resources, +// with an error code. +func (c *SnapshotsListCall) ReturnPartialSuccess(returnPartialSuccess bool) *SnapshotsListCall { c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess)) return c } -// ServiceProjectNumber sets the optional parameter "serviceProjectNumber": The -// Shared VPC service project id or service project number for which aggregated -// list request is invoked for subnetworks list-usable api. -func (c *ServiceAttachmentsAggregatedListCall) ServiceProjectNumber(serviceProjectNumber int64) *ServiceAttachmentsAggregatedListCall { - c.urlParams_.Set("serviceProjectNumber", fmt.Sprint(serviceProjectNumber)) - return c -} - // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *ServiceAttachmentsAggregatedListCall) Fields(s ...googleapi.Field) *ServiceAttachmentsAggregatedListCall { +func (c *SnapshotsListCall) Fields(s ...googleapi.Field) *SnapshotsListCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } @@ -28818,37 +48402,36 @@ func (c *ServiceAttachmentsAggregatedListCall) Fields(s ...googleapi.Field) *Ser // IfNoneMatch sets an 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. -func (c *ServiceAttachmentsAggregatedListCall) IfNoneMatch(entityTag string) *ServiceAttachmentsAggregatedListCall { +func (c *SnapshotsListCall) IfNoneMatch(entityTag string) *SnapshotsListCall { c.ifNoneMatch_ = entityTag return c } // Context sets the context to be used in this call's Do method. -func (c *ServiceAttachmentsAggregatedListCall) Context(ctx context.Context) *ServiceAttachmentsAggregatedListCall { +func (c *SnapshotsListCall) Context(ctx context.Context) *SnapshotsListCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *ServiceAttachmentsAggregatedListCall) Header() http.Header { +func (c *SnapshotsListCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *ServiceAttachmentsAggregatedListCall) doRequest(alt string) (*http.Response, error) { +func (c *SnapshotsListCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) if c.ifNoneMatch_ != "" { reqHeaders.Set("If-None-Match", c.ifNoneMatch_) } - var body io.Reader = nil c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/aggregated/serviceAttachments") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/snapshots") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("GET", urls, body) + req, err := http.NewRequest("GET", urls, nil) if err != nil { return nil, err } @@ -28856,16 +48439,16 @@ func (c *ServiceAttachmentsAggregatedListCall) doRequest(alt string) (*http.Resp googleapi.Expand(req.URL, map[string]string{ "project": c.project, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.snapshots.list", "request", internallog.HTTPRequest(req, nil)) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.serviceAttachments.aggregatedList" call. +// Do executes the "compute.snapshots.list" call. // Any non-2xx status code is an error. Response headers are in either -// *ServiceAttachmentAggregatedList.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 *ServiceAttachmentsAggregatedListCall) Do(opts ...googleapi.CallOption) (*ServiceAttachmentAggregatedList, error) { +// *SnapshotList.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 *SnapshotsListCall) Do(opts ...googleapi.CallOption) (*SnapshotList, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -28884,23 +48467,25 @@ func (c *ServiceAttachmentsAggregatedListCall) Do(opts ...googleapi.CallOption) if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } - ret := &ServiceAttachmentAggregatedList{ + ret := &SnapshotList{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.snapshots.list", "response", internallog.HTTPResponse(res, b)) return ret, nil } // 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 *ServiceAttachmentsAggregatedListCall) Pages(ctx context.Context, f func(*ServiceAttachmentAggregatedList) error) error { +func (c *SnapshotsListCall) Pages(ctx context.Context, f func(*SnapshotList) error) error { c.ctx_ = ctx defer c.PageToken(c.urlParams_.Get("pageToken")) for { @@ -28918,93 +48503,300 @@ func (c *ServiceAttachmentsAggregatedListCall) Pages(ctx context.Context, f func } } -type ServiceAttachmentsDeleteCall struct { - s *Service - project string - region string - serviceAttachment string - urlParams_ gensupport.URLParams - ctx_ context.Context - header_ http.Header +type SnapshotsSetIamPolicyCall struct { + s *Service + project string + resource string + globalsetpolicyrequest *GlobalSetPolicyRequest + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header } -// Delete: Deletes the specified ServiceAttachment in the given scope +// SetIamPolicy: Sets the access control policy on the specified +// resource. +// Replaces any existing policy. // // - project: Project ID for this request. -// - region: Name of the region of this request. -// - serviceAttachment: Name of the ServiceAttachment resource to delete. -func (r *ServiceAttachmentsService) Delete(project string, region string, serviceAttachment string) *ServiceAttachmentsDeleteCall { - c := &ServiceAttachmentsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)} +// - resource: Name or id of the resource for this request. +func (r *SnapshotsService) SetIamPolicy(project string, resource string, globalsetpolicyrequest *GlobalSetPolicyRequest) *SnapshotsSetIamPolicyCall { + c := &SnapshotsSetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)} + c.project = project + c.resource = resource + c.globalsetpolicyrequest = globalsetpolicyrequest + return c +} + +// Fields allows partial responses to be retrieved. See +// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more +// details. +func (c *SnapshotsSetIamPolicyCall) Fields(s ...googleapi.Field) *SnapshotsSetIamPolicyCall { + c.urlParams_.Set("fields", googleapi.CombineFields(s)) + return c +} + +// Context sets the context to be used in this call's Do method. +func (c *SnapshotsSetIamPolicyCall) Context(ctx context.Context) *SnapshotsSetIamPolicyCall { + c.ctx_ = ctx + return c +} + +// Header returns a http.Header that can be modified by the caller to add +// headers to the request. +func (c *SnapshotsSetIamPolicyCall) Header() http.Header { + if c.header_ == nil { + c.header_ = make(http.Header) + } + return c.header_ +} + +func (c *SnapshotsSetIamPolicyCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) + body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.globalsetpolicyrequest) + if err != nil { + return nil, err + } + c.urlParams_.Set("alt", alt) + c.urlParams_.Set("prettyPrint", "false") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/snapshots/{resource}/setIamPolicy") + urls += "?" + c.urlParams_.Encode() + req, err := http.NewRequest("POST", urls, body) + if err != nil { + return nil, err + } + req.Header = reqHeaders + googleapi.Expand(req.URL, map[string]string{ + "project": c.project, + "resource": c.resource, + }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.snapshots.setIamPolicy", "request", internallog.HTTPRequest(req, body.Bytes())) + return gensupport.SendRequest(c.ctx_, c.s.client, req) +} + +// Do executes the "compute.snapshots.setIamPolicy" call. +// Any non-2xx status code is an error. Response headers are in either +// *Policy.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 *SnapshotsSetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, 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, gensupport.WrapError(&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, gensupport.WrapError(err) + } + ret := &Policy{ + ServerResponse: googleapi.ServerResponse{ + Header: res.Header, + HTTPStatusCode: res.StatusCode, + }, + } + target := &ret + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { + return nil, err + } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.snapshots.setIamPolicy", "response", internallog.HTTPResponse(res, b)) + return ret, nil +} + +type SnapshotsSetLabelsCall struct { + s *Service + project string + resource string + globalsetlabelsrequest *GlobalSetLabelsRequest + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header +} + +// SetLabels: Sets the labels on a snapshot. To learn more about labels, read +// theLabeling +// Resources documentation. +// +// - project: Project ID for this request. +// - resource: Name or id of the resource for this request. +func (r *SnapshotsService) SetLabels(project string, resource string, globalsetlabelsrequest *GlobalSetLabelsRequest) *SnapshotsSetLabelsCall { + c := &SnapshotsSetLabelsCall{s: r.s, urlParams_: make(gensupport.URLParams)} + c.project = project + c.resource = resource + c.globalsetlabelsrequest = globalsetlabelsrequest + return c +} + +// Fields allows partial responses to be retrieved. See +// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more +// details. +func (c *SnapshotsSetLabelsCall) Fields(s ...googleapi.Field) *SnapshotsSetLabelsCall { + c.urlParams_.Set("fields", googleapi.CombineFields(s)) + return c +} + +// Context sets the context to be used in this call's Do method. +func (c *SnapshotsSetLabelsCall) Context(ctx context.Context) *SnapshotsSetLabelsCall { + c.ctx_ = ctx + return c +} + +// Header returns a http.Header that can be modified by the caller to add +// headers to the request. +func (c *SnapshotsSetLabelsCall) Header() http.Header { + if c.header_ == nil { + c.header_ = make(http.Header) + } + return c.header_ +} + +func (c *SnapshotsSetLabelsCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) + body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.globalsetlabelsrequest) + if err != nil { + return nil, err + } + c.urlParams_.Set("alt", alt) + c.urlParams_.Set("prettyPrint", "false") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/snapshots/{resource}/setLabels") + urls += "?" + c.urlParams_.Encode() + req, err := http.NewRequest("POST", urls, body) + if err != nil { + return nil, err + } + req.Header = reqHeaders + googleapi.Expand(req.URL, map[string]string{ + "project": c.project, + "resource": c.resource, + }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.snapshots.setLabels", "request", internallog.HTTPRequest(req, body.Bytes())) + return gensupport.SendRequest(c.ctx_, c.s.client, req) +} + +// Do executes the "compute.snapshots.setLabels" call. +// 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 *SnapshotsSetLabelsCall) 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, gensupport.WrapError(&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, gensupport.WrapError(err) + } + ret := &Operation{ + ServerResponse: googleapi.ServerResponse{ + Header: res.Header, + HTTPStatusCode: res.StatusCode, + }, + } + target := &ret + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { + return nil, err + } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.snapshots.setLabels", "response", internallog.HTTPResponse(res, b)) + return ret, nil +} + +type SnapshotsTestIamPermissionsCall struct { + s *Service + project string + resource string + testpermissionsrequest *TestPermissionsRequest + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header +} + +// TestIamPermissions: Returns permissions that a caller has on the specified +// resource. +// +// - project: Project ID for this request. +// - resource: Name or id of the resource for this request. +func (r *SnapshotsService) TestIamPermissions(project string, resource string, testpermissionsrequest *TestPermissionsRequest) *SnapshotsTestIamPermissionsCall { + c := &SnapshotsTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project - c.region = region - c.serviceAttachment = serviceAttachment - 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 *ServiceAttachmentsDeleteCall) RequestId(requestId string) *ServiceAttachmentsDeleteCall { - c.urlParams_.Set("requestId", requestId) + c.resource = resource + c.testpermissionsrequest = testpermissionsrequest return c } // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *ServiceAttachmentsDeleteCall) Fields(s ...googleapi.Field) *ServiceAttachmentsDeleteCall { +func (c *SnapshotsTestIamPermissionsCall) Fields(s ...googleapi.Field) *SnapshotsTestIamPermissionsCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } // Context sets the context to be used in this call's Do method. -func (c *ServiceAttachmentsDeleteCall) Context(ctx context.Context) *ServiceAttachmentsDeleteCall { +func (c *SnapshotsTestIamPermissionsCall) Context(ctx context.Context) *SnapshotsTestIamPermissionsCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *ServiceAttachmentsDeleteCall) Header() http.Header { +func (c *SnapshotsTestIamPermissionsCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *ServiceAttachmentsDeleteCall) doRequest(alt string) (*http.Response, error) { - reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) - var body io.Reader = nil +func (c *SnapshotsTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) + body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.testpermissionsrequest) + if err != nil { + return nil, err + } c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/serviceAttachments/{serviceAttachment}") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/snapshots/{resource}/testIamPermissions") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("DELETE", urls, body) + req, err := http.NewRequest("POST", urls, body) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "region": c.region, - "serviceAttachment": c.serviceAttachment, + "project": c.project, + "resource": c.resource, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.snapshots.testIamPermissions", "request", internallog.HTTPRequest(req, body.Bytes())) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.serviceAttachments.delete" call. +// Do executes the "compute.snapshots.testIamPermissions" call. // 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 *ServiceAttachmentsDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) { +// *TestPermissionsResponse.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 *SnapshotsTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -29023,104 +48815,119 @@ func (c *ServiceAttachmentsDeleteCall) Do(opts ...googleapi.CallOption) (*Operat if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } - ret := &Operation{ + ret := &TestPermissionsResponse{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.snapshots.testIamPermissions", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type ServiceAttachmentsGetCall struct { - s *Service - project string - region string - serviceAttachment string - urlParams_ gensupport.URLParams - ifNoneMatch_ string - ctx_ context.Context - header_ http.Header +type SnapshotsUpdateKmsKeyCall struct { + s *Service + project string + snapshot string + snapshotupdatekmskeyrequest *SnapshotUpdateKmsKeyRequest + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header } -// Get: Returns the specified ServiceAttachment resource in the given scope. +// UpdateKmsKey: Rotates the customer-managed +// encryption key to the latest version for the specified snapshot. // -// - project: Project ID for this request. -// - region: Name of the region of this request. -// - serviceAttachment: Name of the ServiceAttachment resource to return. -func (r *ServiceAttachmentsService) Get(project string, region string, serviceAttachment string) *ServiceAttachmentsGetCall { - c := &ServiceAttachmentsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)} +// - project: Project ID for this request. +// - snapshot: Name of the snapshot resource to update. Should conform to +// RFC1035. +func (r *SnapshotsService) UpdateKmsKey(project string, snapshot string, snapshotupdatekmskeyrequest *SnapshotUpdateKmsKeyRequest) *SnapshotsUpdateKmsKeyCall { + c := &SnapshotsUpdateKmsKeyCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project - c.region = region - c.serviceAttachment = serviceAttachment + c.snapshot = snapshot + c.snapshotupdatekmskeyrequest = snapshotupdatekmskeyrequest + 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 *SnapshotsUpdateKmsKeyCall) RequestId(requestId string) *SnapshotsUpdateKmsKeyCall { + 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 // details. -func (c *ServiceAttachmentsGetCall) Fields(s ...googleapi.Field) *ServiceAttachmentsGetCall { +func (c *SnapshotsUpdateKmsKeyCall) Fields(s ...googleapi.Field) *SnapshotsUpdateKmsKeyCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } -// IfNoneMatch sets an 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. -func (c *ServiceAttachmentsGetCall) IfNoneMatch(entityTag string) *ServiceAttachmentsGetCall { - c.ifNoneMatch_ = entityTag - return c -} - // Context sets the context to be used in this call's Do method. -func (c *ServiceAttachmentsGetCall) Context(ctx context.Context) *ServiceAttachmentsGetCall { +func (c *SnapshotsUpdateKmsKeyCall) Context(ctx context.Context) *SnapshotsUpdateKmsKeyCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *ServiceAttachmentsGetCall) Header() http.Header { +func (c *SnapshotsUpdateKmsKeyCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *ServiceAttachmentsGetCall) doRequest(alt string) (*http.Response, error) { - reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) - if c.ifNoneMatch_ != "" { - reqHeaders.Set("If-None-Match", c.ifNoneMatch_) +func (c *SnapshotsUpdateKmsKeyCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) + body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.snapshotupdatekmskeyrequest) + if err != nil { + return nil, err } - var body io.Reader = nil c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/serviceAttachments/{serviceAttachment}") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/snapshots/{snapshot}/updateKmsKey") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("GET", urls, body) + req, err := http.NewRequest("POST", urls, body) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "region": c.region, - "serviceAttachment": c.serviceAttachment, + "project": c.project, + "snapshot": c.snapshot, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.snapshots.updateKmsKey", "request", internallog.HTTPRequest(req, body.Bytes())) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.serviceAttachments.get" call. +// Do executes the "compute.snapshots.updateKmsKey" call. // Any non-2xx status code is an error. Response headers are in either -// *ServiceAttachment.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 *ServiceAttachmentsGetCall) Do(opts ...googleapi.CallOption) (*ServiceAttachment, error) { +// *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 *SnapshotsUpdateKmsKeyCall) Do(opts ...googleapi.CallOption) (*Operation, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -29139,55 +48946,203 @@ func (c *ServiceAttachmentsGetCall) Do(opts ...googleapi.CallOption) (*ServiceAt if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } - ret := &ServiceAttachment{ + ret := &Operation{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.snapshots.updateKmsKey", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type ServiceAttachmentsGetIamPolicyCall struct { +type SslCertificatesAggregatedListCall struct { s *Service project string - region string - resource string urlParams_ gensupport.URLParams ifNoneMatch_ string ctx_ context.Context header_ http.Header } -// GetIamPolicy: Gets the access control policy for a resource. May be empty if -// no such policy or resource exists. +// AggregatedList: Retrieves the list of all SslCertificate resources, regional +// and global, +// available to the specified project. // -// - project: Project ID for this request. -// - region: The name of the region for this request. -// - resource: Name or id of the resource for this request. -func (r *ServiceAttachmentsService) GetIamPolicy(project string, region string, resource string) *ServiceAttachmentsGetIamPolicyCall { - c := &ServiceAttachmentsGetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)} +// To prevent failure, Google recommends that you set +// the +// `returnPartialSuccess` parameter to `true`. +// +// - project: Name of the project scoping this request. +func (r *SslCertificatesService) AggregatedList(project string) *SslCertificatesAggregatedListCall { + c := &SslCertificatesAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project - c.region = region - c.resource = resource return c } -// OptionsRequestedPolicyVersion sets the optional parameter -// "optionsRequestedPolicyVersion": Requested IAM Policy version. -func (c *ServiceAttachmentsGetIamPolicyCall) OptionsRequestedPolicyVersion(optionsRequestedPolicyVersion int64) *ServiceAttachmentsGetIamPolicyCall { - c.urlParams_.Set("optionsRequestedPolicyVersion", fmt.Sprint(optionsRequestedPolicyVersion)) +// Filter sets the optional parameter "filter": A filter expression that +// filters resources listed in the response. Most +// Compute resources support two types of filter expressions: +// expressions that support regular expressions and expressions that follow +// API improvement proposal AIP-160. +// These two types of filter expressions cannot be mixed in one request. +// +// If you want to use AIP-160, your expression must specify the field name, +// an +// operator, and the value that you want to use for filtering. The value +// must be a string, a number, or a boolean. The 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`. +// +// The `:*` comparison can be used to test whether a key has been defined. +// For example, to find all objects with `owner` label +// use: +// ``` +// labels.owner:* +// ``` +// +// 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 onresource 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) +// ``` +// +// If you want to use a regular expression, use the `eq` (equal) or `ne` +// (not equal) operator against a single un-parenthesized expression with +// or +// without quotes or against multiple parenthesized expressions. +// Examples: +// +// `fieldname eq unquoted literal` +// `fieldname eq 'single quoted literal'` +// `fieldname eq "double quoted literal" +// `(fieldname1 eq literal) (fieldname2 ne "literal")` +// +// The literal value is interpreted as a regular expression using GoogleRE2 +// library syntax. +// The literal value must match the entire field. +// +// For example, to filter for instances that do not end with name +// "instance", +// you would use `name ne .*instance`. +// +// You cannot combine constraints on multiple fields using regular +// expressions. +func (c *SslCertificatesAggregatedListCall) Filter(filter string) *SslCertificatesAggregatedListCall { + c.urlParams_.Set("filter", filter) + return c +} + +// IncludeAllScopes sets the optional parameter "includeAllScopes": Indicates +// whether every visible scope for each scope type (zone, region, +// global) should be included in the response. For new resource types +// added +// after this field, the flag has no effect as new resource types will +// always +// include every visible scope for each scope type in response. For +// resource +// types which predate this field, if this flag is omitted or false, +// only +// scopes of the scope types where the resource type is expected to be +// found +// will be included. +func (c *SslCertificatesAggregatedListCall) IncludeAllScopes(includeAllScopes bool) *SslCertificatesAggregatedListCall { + c.urlParams_.Set("includeAllScopes", fmt.Sprint(includeAllScopes)) + 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 *SslCertificatesAggregatedListCall) MaxResults(maxResults int64) *SslCertificatesAggregatedListCall { + 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 *SslCertificatesAggregatedListCall) OrderBy(orderBy string) *SslCertificatesAggregatedListCall { + 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 *SslCertificatesAggregatedListCall) PageToken(pageToken string) *SslCertificatesAggregatedListCall { + c.urlParams_.Set("pageToken", pageToken) + return c +} + +// ReturnPartialSuccess sets the optional parameter "returnPartialSuccess": +// Opt-in for partial success behavior which provides partial results in +// case +// of failure. The default value is false. +// +// For example, when partial success behavior is enabled, aggregatedList for +// a +// single zone scope either returns all resources in the zone or no +// resources, +// with an error code. +func (c *SslCertificatesAggregatedListCall) ReturnPartialSuccess(returnPartialSuccess bool) *SslCertificatesAggregatedListCall { + c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess)) + return c +} + +// ServiceProjectNumber sets the optional parameter "serviceProjectNumber": The +// Shared VPC service project id or service project number for which +// aggregated list request is invoked for subnetworks list-usable api. +func (c *SslCertificatesAggregatedListCall) ServiceProjectNumber(serviceProjectNumber int64) *SslCertificatesAggregatedListCall { + c.urlParams_.Set("serviceProjectNumber", fmt.Sprint(serviceProjectNumber)) return c } // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *ServiceAttachmentsGetIamPolicyCall) Fields(s ...googleapi.Field) *ServiceAttachmentsGetIamPolicyCall { +func (c *SslCertificatesAggregatedListCall) Fields(s ...googleapi.Field) *SslCertificatesAggregatedListCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } @@ -29195,55 +49150,54 @@ func (c *ServiceAttachmentsGetIamPolicyCall) Fields(s ...googleapi.Field) *Servi // IfNoneMatch sets an 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. -func (c *ServiceAttachmentsGetIamPolicyCall) IfNoneMatch(entityTag string) *ServiceAttachmentsGetIamPolicyCall { +func (c *SslCertificatesAggregatedListCall) IfNoneMatch(entityTag string) *SslCertificatesAggregatedListCall { c.ifNoneMatch_ = entityTag return c } // Context sets the context to be used in this call's Do method. -func (c *ServiceAttachmentsGetIamPolicyCall) Context(ctx context.Context) *ServiceAttachmentsGetIamPolicyCall { +func (c *SslCertificatesAggregatedListCall) Context(ctx context.Context) *SslCertificatesAggregatedListCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *ServiceAttachmentsGetIamPolicyCall) Header() http.Header { +func (c *SslCertificatesAggregatedListCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *ServiceAttachmentsGetIamPolicyCall) doRequest(alt string) (*http.Response, error) { +func (c *SslCertificatesAggregatedListCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) if c.ifNoneMatch_ != "" { reqHeaders.Set("If-None-Match", c.ifNoneMatch_) } - var body io.Reader = nil c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/serviceAttachments/{resource}/getIamPolicy") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/aggregated/sslCertificates") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("GET", urls, body) + req, err := http.NewRequest("GET", urls, nil) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "region": c.region, - "resource": c.resource, + "project": c.project, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.sslCertificates.aggregatedList", "request", internallog.HTTPRequest(req, nil)) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.serviceAttachments.getIamPolicy" call. +// Do executes the "compute.sslCertificates.aggregatedList" call. // Any non-2xx status code is an error. Response headers are in either -// *Policy.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 *ServiceAttachmentsGetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, error) { +// *SslCertificateAggregatedList.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 *SslCertificatesAggregatedListCall) Do(opts ...googleapi.CallOption) (*SslCertificateAggregatedList, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -29262,53 +49216,80 @@ func (c *ServiceAttachmentsGetIamPolicyCall) Do(opts ...googleapi.CallOption) (* if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } - ret := &Policy{ + ret := &SslCertificateAggregatedList{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.sslCertificates.aggregatedList", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type ServiceAttachmentsInsertCall struct { - s *Service - project string - region string - serviceattachment *ServiceAttachment - urlParams_ gensupport.URLParams - ctx_ context.Context - header_ http.Header +// 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 *SslCertificatesAggregatedListCall) Pages(ctx context.Context, f func(*SslCertificateAggregatedList) error) error { + c.ctx_ = ctx + defer c.PageToken(c.urlParams_.Get("pageToken")) + 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) + } } -// Insert: Creates a ServiceAttachment in the specified project in the given -// scope using the parameters that are included in the request. +type SslCertificatesDeleteCall struct { + s *Service + project string + sslCertificate string + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header +} + +// Delete: Deletes the specified SslCertificate resource. // // - project: Project ID for this request. -// - region: Name of the region of this request. -func (r *ServiceAttachmentsService) Insert(project string, region string, serviceattachment *ServiceAttachment) *ServiceAttachmentsInsertCall { - c := &ServiceAttachmentsInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)} +// - sslCertificate: Name of the SslCertificate resource to delete. +func (r *SslCertificatesService) Delete(project string, sslCertificate string) *SslCertificatesDeleteCall { + c := &SslCertificatesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project - c.region = region - c.serviceattachment = serviceattachment + c.sslCertificate = sslCertificate 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 *ServiceAttachmentsInsertCall) RequestId(requestId string) *ServiceAttachmentsInsertCall { +// 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 *SslCertificatesDeleteCall) RequestId(requestId string) *SslCertificatesDeleteCall { c.urlParams_.Set("requestId", requestId) return c } @@ -29316,55 +49297,51 @@ func (c *ServiceAttachmentsInsertCall) RequestId(requestId string) *ServiceAttac // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *ServiceAttachmentsInsertCall) Fields(s ...googleapi.Field) *ServiceAttachmentsInsertCall { +func (c *SslCertificatesDeleteCall) Fields(s ...googleapi.Field) *SslCertificatesDeleteCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } // Context sets the context to be used in this call's Do method. -func (c *ServiceAttachmentsInsertCall) Context(ctx context.Context) *ServiceAttachmentsInsertCall { +func (c *SslCertificatesDeleteCall) Context(ctx context.Context) *SslCertificatesDeleteCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *ServiceAttachmentsInsertCall) Header() http.Header { +func (c *SslCertificatesDeleteCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *ServiceAttachmentsInsertCall) doRequest(alt string) (*http.Response, error) { - reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) - var body io.Reader = nil - body, err := googleapi.WithoutDataWrapper.JSONReader(c.serviceattachment) - if err != nil { - return nil, err - } +func (c *SslCertificatesDeleteCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/serviceAttachments") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/sslCertificates/{sslCertificate}") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("POST", urls, body) + req, err := http.NewRequest("DELETE", urls, nil) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "region": c.region, + "project": c.project, + "sslCertificate": c.sslCertificate, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.sslCertificates.delete", "request", internallog.HTTPRequest(req, nil)) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.serviceAttachments.insert" call. +// Do executes the "compute.sslCertificates.delete" call. // 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 *ServiceAttachmentsInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) { +func (c *SslCertificatesDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -29390,115 +49367,39 @@ func (c *ServiceAttachmentsInsertCall) Do(opts ...googleapi.CallOption) (*Operat }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.sslCertificates.delete", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type ServiceAttachmentsListCall struct { - s *Service - project string - region string - urlParams_ gensupport.URLParams - ifNoneMatch_ string - ctx_ context.Context - header_ http.Header +type SslCertificatesGetCall struct { + s *Service + project string + sslCertificate string + urlParams_ gensupport.URLParams + ifNoneMatch_ string + ctx_ context.Context + header_ http.Header } -// List: Lists the ServiceAttachments for a project in the given scope. +// Get: Returns the specified SslCertificate resource. // // - project: Project ID for this request. -// - region: Name of the region of this request. -func (r *ServiceAttachmentsService) List(project string, region string) *ServiceAttachmentsListCall { - c := &ServiceAttachmentsListCall{s: r.s, urlParams_: make(gensupport.URLParams)} +// - sslCertificate: Name of the SslCertificate resource to return. +func (r *SslCertificatesService) Get(project string, sslCertificate string) *SslCertificatesGetCall { + c := &SslCertificatesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project - c.region = region - return c -} - -// Filter sets the optional parameter "filter": A filter expression that -// filters resources listed in the response. Most Compute resources support two -// types of filter expressions: expressions that support regular expressions -// and expressions that follow API improvement proposal AIP-160. These two -// types of filter expressions cannot be mixed in one request. If you want to -// use AIP-160, your expression must specify the field name, an operator, and -// the value that you want to use for filtering. The value must be a string, a -// number, or a boolean. The 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`. The `:*` comparison can be used to test whether a key has -// been defined. For example, to find all objects with `owner` label use: ``` -// labels.owner:* ``` 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) ``` If you want to use a regular -// expression, use the `eq` (equal) or `ne` (not equal) operator against a -// single un-parenthesized expression with or without quotes or against -// multiple parenthesized expressions. Examples: `fieldname eq unquoted -// literal` `fieldname eq 'single quoted literal'` `fieldname eq "double quoted -// literal" `(fieldname1 eq literal) (fieldname2 ne "literal")` The literal -// value is interpreted as a regular expression using Google RE2 library -// syntax. The literal value must match the entire field. For example, to -// filter for instances that do not end with name "instance", you would use -// `name ne .*instance`. You cannot combine constraints on multiple fields -// using regular expressions. -func (c *ServiceAttachmentsListCall) Filter(filter string) *ServiceAttachmentsListCall { - 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 *ServiceAttachmentsListCall) MaxResults(maxResults int64) *ServiceAttachmentsListCall { - 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 *ServiceAttachmentsListCall) OrderBy(orderBy string) *ServiceAttachmentsListCall { - 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 *ServiceAttachmentsListCall) PageToken(pageToken string) *ServiceAttachmentsListCall { - c.urlParams_.Set("pageToken", pageToken) - return c -} - -// ReturnPartialSuccess sets the optional parameter "returnPartialSuccess": -// Opt-in for partial success behavior which provides partial results in case -// of failure. The default value is false. For example, when partial success -// behavior is enabled, aggregatedList for a single zone scope either returns -// all resources in the zone or no resources, with an error code. -func (c *ServiceAttachmentsListCall) ReturnPartialSuccess(returnPartialSuccess bool) *ServiceAttachmentsListCall { - c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess)) + c.sslCertificate = sslCertificate return c } // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *ServiceAttachmentsListCall) Fields(s ...googleapi.Field) *ServiceAttachmentsListCall { +func (c *SslCertificatesGetCall) Fields(s ...googleapi.Field) *SslCertificatesGetCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } @@ -29506,55 +49407,54 @@ func (c *ServiceAttachmentsListCall) Fields(s ...googleapi.Field) *ServiceAttach // IfNoneMatch sets an 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. -func (c *ServiceAttachmentsListCall) IfNoneMatch(entityTag string) *ServiceAttachmentsListCall { +func (c *SslCertificatesGetCall) IfNoneMatch(entityTag string) *SslCertificatesGetCall { c.ifNoneMatch_ = entityTag return c } // Context sets the context to be used in this call's Do method. -func (c *ServiceAttachmentsListCall) Context(ctx context.Context) *ServiceAttachmentsListCall { +func (c *SslCertificatesGetCall) Context(ctx context.Context) *SslCertificatesGetCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *ServiceAttachmentsListCall) Header() http.Header { +func (c *SslCertificatesGetCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *ServiceAttachmentsListCall) doRequest(alt string) (*http.Response, error) { +func (c *SslCertificatesGetCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) if c.ifNoneMatch_ != "" { reqHeaders.Set("If-None-Match", c.ifNoneMatch_) } - var body io.Reader = nil c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/serviceAttachments") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/sslCertificates/{sslCertificate}") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("GET", urls, body) + req, err := http.NewRequest("GET", urls, nil) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "region": c.region, + "project": c.project, + "sslCertificate": c.sslCertificate, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.sslCertificates.get", "request", internallog.HTTPRequest(req, nil)) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.serviceAttachments.list" call. +// Do executes the "compute.sslCertificates.get" call. // Any non-2xx status code is an error. Response headers are in either -// *ServiceAttachmentList.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 *ServiceAttachmentsListCall) Do(opts ...googleapi.CallOption) (*ServiceAttachmentList, error) { +// *SslCertificate.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 *SslCertificatesGetCall) Do(opts ...googleapi.CallOption) (*SslCertificate, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -29573,80 +49473,60 @@ func (c *ServiceAttachmentsListCall) Do(opts ...googleapi.CallOption) (*ServiceA if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } - ret := &ServiceAttachmentList{ + ret := &SslCertificate{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.sslCertificates.get", "response", internallog.HTTPResponse(res, b)) return ret, nil } -// 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 *ServiceAttachmentsListCall) Pages(ctx context.Context, f func(*ServiceAttachmentList) error) error { - c.ctx_ = ctx - defer c.PageToken(c.urlParams_.Get("pageToken")) - 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) - } -} - -type ServiceAttachmentsPatchCall struct { - s *Service - project string - region string - serviceAttachment string - serviceattachment *ServiceAttachment - urlParams_ gensupport.URLParams - ctx_ context.Context - header_ http.Header +type SslCertificatesInsertCall struct { + s *Service + project string + sslcertificate *SslCertificate + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header } -// Patch: Patches the specified ServiceAttachment resource with the data -// included in the request. This method supports PATCH semantics and uses JSON -// merge patch format and processing rules. +// Insert: Creates a SslCertificate resource in the specified project using the +// data +// included in the request. // -// - project: Project ID for this request. -// - region: The region scoping this request and should conform to RFC1035. -// - serviceAttachment: The resource id of the ServiceAttachment to patch. It -// should conform to RFC1035 resource name or be a string form on an unsigned -// long number. -func (r *ServiceAttachmentsService) Patch(project string, region string, serviceAttachment string, serviceattachment *ServiceAttachment) *ServiceAttachmentsPatchCall { - c := &ServiceAttachmentsPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)} +// - project: Project ID for this request. +func (r *SslCertificatesService) Insert(project string, sslcertificate *SslCertificate) *SslCertificatesInsertCall { + c := &SslCertificatesInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project - c.region = region - c.serviceAttachment = serviceAttachment - c.serviceattachment = serviceattachment + c.sslcertificate = sslcertificate 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 *ServiceAttachmentsPatchCall) RequestId(requestId string) *ServiceAttachmentsPatchCall { +// 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 *SslCertificatesInsertCall) RequestId(requestId string) *SslCertificatesInsertCall { c.urlParams_.Set("requestId", requestId) return c } @@ -29654,56 +49534,54 @@ func (c *ServiceAttachmentsPatchCall) RequestId(requestId string) *ServiceAttach // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *ServiceAttachmentsPatchCall) Fields(s ...googleapi.Field) *ServiceAttachmentsPatchCall { +func (c *SslCertificatesInsertCall) Fields(s ...googleapi.Field) *SslCertificatesInsertCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } // Context sets the context to be used in this call's Do method. -func (c *ServiceAttachmentsPatchCall) Context(ctx context.Context) *ServiceAttachmentsPatchCall { +func (c *SslCertificatesInsertCall) Context(ctx context.Context) *SslCertificatesInsertCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *ServiceAttachmentsPatchCall) Header() http.Header { +func (c *SslCertificatesInsertCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *ServiceAttachmentsPatchCall) doRequest(alt string) (*http.Response, error) { +func (c *SslCertificatesInsertCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) - var body io.Reader = nil - body, err := googleapi.WithoutDataWrapper.JSONReader(c.serviceattachment) + body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.sslcertificate) if err != nil { return nil, err } c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/serviceAttachments/{serviceAttachment}") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/sslCertificates") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("PATCH", urls, body) + req, err := http.NewRequest("POST", urls, body) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "region": c.region, - "serviceAttachment": c.serviceAttachment, + "project": c.project, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.sslCertificates.insert", "request", internallog.HTTPRequest(req, body.Bytes())) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.serviceAttachments.patch" call. +// Do executes the "compute.sslCertificates.insert" call. // 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 *ServiceAttachmentsPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) { +func (c *SslCertificatesInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -29729,91 +49607,221 @@ func (c *ServiceAttachmentsPatchCall) Do(opts ...googleapi.CallOption) (*Operati }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.sslCertificates.insert", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type ServiceAttachmentsSetIamPolicyCall struct { - s *Service - project string - region string - resource string - regionsetpolicyrequest *RegionSetPolicyRequest - urlParams_ gensupport.URLParams - ctx_ context.Context - header_ http.Header +type SslCertificatesListCall struct { + s *Service + project string + urlParams_ gensupport.URLParams + ifNoneMatch_ string + ctx_ context.Context + header_ http.Header +} + +// List: Retrieves the list of SslCertificate resources available to the +// specified +// project. +// +// - project: Project ID for this request. +func (r *SslCertificatesService) List(project string) *SslCertificatesListCall { + c := &SslCertificatesListCall{s: r.s, urlParams_: make(gensupport.URLParams)} + c.project = project + return c +} + +// Filter sets the optional parameter "filter": A filter expression that +// filters resources listed in the response. Most +// Compute resources support two types of filter expressions: +// expressions that support regular expressions and expressions that follow +// API improvement proposal AIP-160. +// These two types of filter expressions cannot be mixed in one request. +// +// If you want to use AIP-160, your expression must specify the field name, +// an +// operator, and the value that you want to use for filtering. The value +// must be a string, a number, or a boolean. The 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`. +// +// The `:*` comparison can be used to test whether a key has been defined. +// For example, to find all objects with `owner` label +// use: +// ``` +// labels.owner:* +// ``` +// +// 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 onresource 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) +// ``` +// +// If you want to use a regular expression, use the `eq` (equal) or `ne` +// (not equal) operator against a single un-parenthesized expression with +// or +// without quotes or against multiple parenthesized expressions. +// Examples: +// +// `fieldname eq unquoted literal` +// `fieldname eq 'single quoted literal'` +// `fieldname eq "double quoted literal" +// `(fieldname1 eq literal) (fieldname2 ne "literal")` +// +// The literal value is interpreted as a regular expression using GoogleRE2 +// library syntax. +// The literal value must match the entire field. +// +// For example, to filter for instances that do not end with name +// "instance", +// you would use `name ne .*instance`. +// +// You cannot combine constraints on multiple fields using regular +// expressions. +func (c *SslCertificatesListCall) Filter(filter string) *SslCertificatesListCall { + 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 *SslCertificatesListCall) MaxResults(maxResults int64) *SslCertificatesListCall { + 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 *SslCertificatesListCall) OrderBy(orderBy string) *SslCertificatesListCall { + 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 *SslCertificatesListCall) PageToken(pageToken string) *SslCertificatesListCall { + c.urlParams_.Set("pageToken", pageToken) + return c } -// SetIamPolicy: Sets the access control policy on the specified resource. -// Replaces any existing policy. +// ReturnPartialSuccess sets the optional parameter "returnPartialSuccess": +// Opt-in for partial success behavior which provides partial results in +// case +// of failure. The default value is false. // -// - project: Project ID for this request. -// - region: The name of the region for this request. -// - resource: Name or id of the resource for this request. -func (r *ServiceAttachmentsService) SetIamPolicy(project string, region string, resource string, regionsetpolicyrequest *RegionSetPolicyRequest) *ServiceAttachmentsSetIamPolicyCall { - c := &ServiceAttachmentsSetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)} - c.project = project - c.region = region - c.resource = resource - c.regionsetpolicyrequest = regionsetpolicyrequest +// For example, when partial success behavior is enabled, aggregatedList for +// a +// single zone scope either returns all resources in the zone or no +// resources, +// with an error code. +func (c *SslCertificatesListCall) ReturnPartialSuccess(returnPartialSuccess bool) *SslCertificatesListCall { + c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess)) return c } // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *ServiceAttachmentsSetIamPolicyCall) Fields(s ...googleapi.Field) *ServiceAttachmentsSetIamPolicyCall { +func (c *SslCertificatesListCall) Fields(s ...googleapi.Field) *SslCertificatesListCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } +// IfNoneMatch sets an 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. +func (c *SslCertificatesListCall) IfNoneMatch(entityTag string) *SslCertificatesListCall { + c.ifNoneMatch_ = entityTag + return c +} + // Context sets the context to be used in this call's Do method. -func (c *ServiceAttachmentsSetIamPolicyCall) Context(ctx context.Context) *ServiceAttachmentsSetIamPolicyCall { +func (c *SslCertificatesListCall) Context(ctx context.Context) *SslCertificatesListCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *ServiceAttachmentsSetIamPolicyCall) Header() http.Header { +func (c *SslCertificatesListCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *ServiceAttachmentsSetIamPolicyCall) doRequest(alt string) (*http.Response, error) { - reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) - var body io.Reader = nil - body, err := googleapi.WithoutDataWrapper.JSONReader(c.regionsetpolicyrequest) - if err != nil { - return nil, err +func (c *SslCertificatesListCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) + if c.ifNoneMatch_ != "" { + reqHeaders.Set("If-None-Match", c.ifNoneMatch_) } c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/serviceAttachments/{resource}/setIamPolicy") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/sslCertificates") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("POST", urls, body) + req, err := http.NewRequest("GET", urls, nil) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "region": c.region, - "resource": c.resource, + "project": c.project, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.sslCertificates.list", "request", internallog.HTTPRequest(req, nil)) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.serviceAttachments.setIamPolicy" call. +// Do executes the "compute.sslCertificates.list" call. // Any non-2xx status code is an error. Response headers are in either -// *Policy.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 *ServiceAttachmentsSetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, error) { +// *SslCertificateList.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 *SslCertificatesListCall) Do(opts ...googleapi.CallOption) (*SslCertificateList, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -29832,99 +49840,279 @@ func (c *ServiceAttachmentsSetIamPolicyCall) Do(opts ...googleapi.CallOption) (* if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } - ret := &Policy{ + ret := &SslCertificateList{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.sslCertificates.list", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type ServiceAttachmentsTestIamPermissionsCall struct { - s *Service - project string - region string - resource string - testpermissionsrequest *TestPermissionsRequest - urlParams_ gensupport.URLParams - ctx_ context.Context - header_ http.Header +// 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 *SslCertificatesListCall) Pages(ctx context.Context, f func(*SslCertificateList) error) error { + c.ctx_ = ctx + defer c.PageToken(c.urlParams_.Get("pageToken")) + 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) + } } -// TestIamPermissions: Returns permissions that a caller has on the specified -// resource. +type SslPoliciesAggregatedListCall struct { + s *Service + project string + urlParams_ gensupport.URLParams + ifNoneMatch_ string + ctx_ context.Context + header_ http.Header +} + +// AggregatedList: Retrieves the list of all SslPolicy resources, regional and +// global, +// available to the specified project. // -// - project: Project ID for this request. -// - region: The name of the region for this request. -// - resource: Name or id of the resource for this request. -func (r *ServiceAttachmentsService) TestIamPermissions(project string, region string, resource string, testpermissionsrequest *TestPermissionsRequest) *ServiceAttachmentsTestIamPermissionsCall { - c := &ServiceAttachmentsTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)} +// To prevent failure, Google recommends that you set +// the +// `returnPartialSuccess` parameter to `true`. +// +// - project: Name of the project scoping this request. +func (r *SslPoliciesService) AggregatedList(project string) *SslPoliciesAggregatedListCall { + c := &SslPoliciesAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project - c.region = region - c.resource = resource - c.testpermissionsrequest = testpermissionsrequest + return c +} + +// Filter sets the optional parameter "filter": A filter expression that +// filters resources listed in the response. Most +// Compute resources support two types of filter expressions: +// expressions that support regular expressions and expressions that follow +// API improvement proposal AIP-160. +// These two types of filter expressions cannot be mixed in one request. +// +// If you want to use AIP-160, your expression must specify the field name, +// an +// operator, and the value that you want to use for filtering. The value +// must be a string, a number, or a boolean. The 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`. +// +// The `:*` comparison can be used to test whether a key has been defined. +// For example, to find all objects with `owner` label +// use: +// ``` +// labels.owner:* +// ``` +// +// 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 onresource 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) +// ``` +// +// If you want to use a regular expression, use the `eq` (equal) or `ne` +// (not equal) operator against a single un-parenthesized expression with +// or +// without quotes or against multiple parenthesized expressions. +// Examples: +// +// `fieldname eq unquoted literal` +// `fieldname eq 'single quoted literal'` +// `fieldname eq "double quoted literal" +// `(fieldname1 eq literal) (fieldname2 ne "literal")` +// +// The literal value is interpreted as a regular expression using GoogleRE2 +// library syntax. +// The literal value must match the entire field. +// +// For example, to filter for instances that do not end with name +// "instance", +// you would use `name ne .*instance`. +// +// You cannot combine constraints on multiple fields using regular +// expressions. +func (c *SslPoliciesAggregatedListCall) Filter(filter string) *SslPoliciesAggregatedListCall { + c.urlParams_.Set("filter", filter) + return c +} + +// IncludeAllScopes sets the optional parameter "includeAllScopes": Indicates +// whether every visible scope for each scope type (zone, region, +// global) should be included in the response. For new resource types +// added +// after this field, the flag has no effect as new resource types will +// always +// include every visible scope for each scope type in response. For +// resource +// types which predate this field, if this flag is omitted or false, +// only +// scopes of the scope types where the resource type is expected to be +// found +// will be included. +func (c *SslPoliciesAggregatedListCall) IncludeAllScopes(includeAllScopes bool) *SslPoliciesAggregatedListCall { + c.urlParams_.Set("includeAllScopes", fmt.Sprint(includeAllScopes)) + 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 *SslPoliciesAggregatedListCall) MaxResults(maxResults int64) *SslPoliciesAggregatedListCall { + 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 *SslPoliciesAggregatedListCall) OrderBy(orderBy string) *SslPoliciesAggregatedListCall { + 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 *SslPoliciesAggregatedListCall) PageToken(pageToken string) *SslPoliciesAggregatedListCall { + c.urlParams_.Set("pageToken", pageToken) + return c +} + +// ReturnPartialSuccess sets the optional parameter "returnPartialSuccess": +// Opt-in for partial success behavior which provides partial results in +// case +// of failure. The default value is false. +// +// For example, when partial success behavior is enabled, aggregatedList for +// a +// single zone scope either returns all resources in the zone or no +// resources, +// with an error code. +func (c *SslPoliciesAggregatedListCall) ReturnPartialSuccess(returnPartialSuccess bool) *SslPoliciesAggregatedListCall { + c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess)) + return c +} + +// ServiceProjectNumber sets the optional parameter "serviceProjectNumber": The +// Shared VPC service project id or service project number for which +// aggregated list request is invoked for subnetworks list-usable api. +func (c *SslPoliciesAggregatedListCall) ServiceProjectNumber(serviceProjectNumber int64) *SslPoliciesAggregatedListCall { + c.urlParams_.Set("serviceProjectNumber", fmt.Sprint(serviceProjectNumber)) return c } // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *ServiceAttachmentsTestIamPermissionsCall) Fields(s ...googleapi.Field) *ServiceAttachmentsTestIamPermissionsCall { +func (c *SslPoliciesAggregatedListCall) Fields(s ...googleapi.Field) *SslPoliciesAggregatedListCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } +// IfNoneMatch sets an 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. +func (c *SslPoliciesAggregatedListCall) IfNoneMatch(entityTag string) *SslPoliciesAggregatedListCall { + c.ifNoneMatch_ = entityTag + return c +} + // Context sets the context to be used in this call's Do method. -func (c *ServiceAttachmentsTestIamPermissionsCall) Context(ctx context.Context) *ServiceAttachmentsTestIamPermissionsCall { +func (c *SslPoliciesAggregatedListCall) Context(ctx context.Context) *SslPoliciesAggregatedListCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *ServiceAttachmentsTestIamPermissionsCall) Header() http.Header { +func (c *SslPoliciesAggregatedListCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *ServiceAttachmentsTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) { - reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) - var body io.Reader = nil - body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest) - if err != nil { - return nil, err +func (c *SslPoliciesAggregatedListCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) + if c.ifNoneMatch_ != "" { + reqHeaders.Set("If-None-Match", c.ifNoneMatch_) } c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/serviceAttachments/{resource}/testIamPermissions") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/aggregated/sslPolicies") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("POST", urls, body) + req, err := http.NewRequest("GET", urls, nil) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "region": c.region, - "resource": c.resource, + "project": c.project, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.sslPolicies.aggregatedList", "request", internallog.HTTPRequest(req, nil)) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.serviceAttachments.testIamPermissions" call. +// Do executes the "compute.sslPolicies.aggregatedList" call. // Any non-2xx status code is an error. Response headers are in either -// *TestPermissionsResponse.ServerResponse.Header or (if a response was +// *SslPoliciesAggregatedList.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 *ServiceAttachmentsTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) { +func (c *SslPoliciesAggregatedListCall) Do(opts ...googleapi.CallOption) (*SslPoliciesAggregatedList, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -29943,96 +50131,139 @@ func (c *ServiceAttachmentsTestIamPermissionsCall) Do(opts ...googleapi.CallOpti if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } - ret := &TestPermissionsResponse{ + ret := &SslPoliciesAggregatedList{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.sslPolicies.aggregatedList", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type SnapshotSettingsGetCall struct { - s *Service - project string - urlParams_ gensupport.URLParams - ifNoneMatch_ string - ctx_ context.Context - header_ http.Header +// 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 *SslPoliciesAggregatedListCall) Pages(ctx context.Context, f func(*SslPoliciesAggregatedList) error) error { + c.ctx_ = ctx + defer c.PageToken(c.urlParams_.Get("pageToken")) + 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) + } } -// Get: Get snapshot settings. +type SslPoliciesDeleteCall struct { + s *Service + project string + sslPolicy string + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header +} + +// Delete: Deletes the specified SSL policy. The SSL policy resource can be +// deleted +// only if it is not in use by any TargetHttpsProxy or +// TargetSslProxy +// resources. // -// - project: Project ID for this request. -func (r *SnapshotSettingsService) Get(project string) *SnapshotSettingsGetCall { - c := &SnapshotSettingsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)} +// - project: Project ID for this request. +// - sslPolicy: Name of the SSL policy to delete. The name must be 1-63 +// characters long, +// +// and comply with RFC1035. +func (r *SslPoliciesService) Delete(project string, sslPolicy string) *SslPoliciesDeleteCall { + c := &SslPoliciesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project + c.sslPolicy = sslPolicy + 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 *SslPoliciesDeleteCall) RequestId(requestId string) *SslPoliciesDeleteCall { + 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 // details. -func (c *SnapshotSettingsGetCall) Fields(s ...googleapi.Field) *SnapshotSettingsGetCall { +func (c *SslPoliciesDeleteCall) Fields(s ...googleapi.Field) *SslPoliciesDeleteCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } -// IfNoneMatch sets an 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. -func (c *SnapshotSettingsGetCall) IfNoneMatch(entityTag string) *SnapshotSettingsGetCall { - c.ifNoneMatch_ = entityTag - return c -} - // Context sets the context to be used in this call's Do method. -func (c *SnapshotSettingsGetCall) Context(ctx context.Context) *SnapshotSettingsGetCall { +func (c *SslPoliciesDeleteCall) Context(ctx context.Context) *SslPoliciesDeleteCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *SnapshotSettingsGetCall) Header() http.Header { +func (c *SslPoliciesDeleteCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *SnapshotSettingsGetCall) doRequest(alt string) (*http.Response, error) { +func (c *SslPoliciesDeleteCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) - if c.ifNoneMatch_ != "" { - reqHeaders.Set("If-None-Match", c.ifNoneMatch_) - } - var body io.Reader = nil c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/snapshotSettings") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/sslPolicies/{sslPolicy}") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("GET", urls, body) + req, err := http.NewRequest("DELETE", urls, nil) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, + "project": c.project, + "sslPolicy": c.sslPolicy, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.sslPolicies.delete", "request", internallog.HTTPRequest(req, nil)) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.snapshotSettings.get" call. +// Do executes the "compute.sslPolicies.delete" call. // Any non-2xx status code is an error. Response headers are in either -// *SnapshotSettings.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 *SnapshotSettingsGetCall) Do(opts ...googleapi.CallOption) (*SnapshotSettings, error) { +// *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 *SslPoliciesDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -30051,111 +50282,104 @@ func (c *SnapshotSettingsGetCall) Do(opts ...googleapi.CallOption) (*SnapshotSet if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } - ret := &SnapshotSettings{ + ret := &Operation{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.sslPolicies.delete", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type SnapshotSettingsPatchCall struct { - s *Service - project string - snapshotsettings *SnapshotSettings - urlParams_ gensupport.URLParams - ctx_ context.Context - header_ http.Header +type SslPoliciesGetCall struct { + s *Service + project string + sslPolicy string + urlParams_ gensupport.URLParams + ifNoneMatch_ string + ctx_ context.Context + header_ http.Header } -// Patch: Patch snapshot settings. +// Get: Lists all of the ordered rules present in a single specified policy. // -// - project: Project ID for this request. -func (r *SnapshotSettingsService) Patch(project string, snapshotsettings *SnapshotSettings) *SnapshotSettingsPatchCall { - c := &SnapshotSettingsPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)} +// - project: Project ID for this request. +// - sslPolicy: Name of the SSL policy to update. The name must be 1-63 +// characters long, +// +// and comply with RFC1035. +func (r *SslPoliciesService) Get(project string, sslPolicy string) *SslPoliciesGetCall { + c := &SslPoliciesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project - c.snapshotsettings = snapshotsettings - 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 *SnapshotSettingsPatchCall) RequestId(requestId string) *SnapshotSettingsPatchCall { - c.urlParams_.Set("requestId", requestId) - return c -} - -// UpdateMask sets the optional parameter "updateMask": update_mask indicates -// fields to be updated as part of this request. -func (c *SnapshotSettingsPatchCall) UpdateMask(updateMask string) *SnapshotSettingsPatchCall { - c.urlParams_.Set("updateMask", updateMask) + c.sslPolicy = sslPolicy return c } // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *SnapshotSettingsPatchCall) Fields(s ...googleapi.Field) *SnapshotSettingsPatchCall { +func (c *SslPoliciesGetCall) Fields(s ...googleapi.Field) *SslPoliciesGetCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } +// IfNoneMatch sets an 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. +func (c *SslPoliciesGetCall) IfNoneMatch(entityTag string) *SslPoliciesGetCall { + c.ifNoneMatch_ = entityTag + return c +} + // Context sets the context to be used in this call's Do method. -func (c *SnapshotSettingsPatchCall) Context(ctx context.Context) *SnapshotSettingsPatchCall { +func (c *SslPoliciesGetCall) Context(ctx context.Context) *SslPoliciesGetCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *SnapshotSettingsPatchCall) Header() http.Header { +func (c *SslPoliciesGetCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *SnapshotSettingsPatchCall) doRequest(alt string) (*http.Response, error) { - reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) - var body io.Reader = nil - body, err := googleapi.WithoutDataWrapper.JSONReader(c.snapshotsettings) - if err != nil { - return nil, err +func (c *SslPoliciesGetCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) + if c.ifNoneMatch_ != "" { + reqHeaders.Set("If-None-Match", c.ifNoneMatch_) } c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/snapshotSettings") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/sslPolicies/{sslPolicy}") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("PATCH", urls, body) + req, err := http.NewRequest("GET", urls, nil) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, + "project": c.project, + "sslPolicy": c.sslPolicy, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.sslPolicies.get", "request", internallog.HTTPRequest(req, nil)) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.snapshotSettings.patch" call. +// Do executes the "compute.sslPolicies.get" call. // 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 +// *SslPolicy.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 *SnapshotSettingsPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) { +func (c *SslPoliciesGetCall) Do(opts ...googleapi.CallOption) (*SslPolicy, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -30174,54 +50398,58 @@ func (c *SnapshotSettingsPatchCall) Do(opts ...googleapi.CallOption) (*Operation if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } - ret := &Operation{ + ret := &SslPolicy{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.sslPolicies.get", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type SnapshotsDeleteCall struct { +type SslPoliciesInsertCall struct { s *Service project string - snapshot string + sslpolicy *SslPolicy urlParams_ gensupport.URLParams ctx_ context.Context header_ http.Header } -// Delete: Deletes the specified Snapshot resource. Keep in mind that deleting -// a single snapshot might not necessarily delete all the data on that -// snapshot. If any data on the snapshot that is marked for deletion is needed -// for subsequent snapshots, the data will be moved to the next corresponding -// snapshot. For more information, see Deleting snapshots. +// Insert: Returns the specified SSL policy resource. // // - project: Project ID for this request. -// - snapshot: Name of the Snapshot resource to delete. -func (r *SnapshotsService) Delete(project string, snapshot string) *SnapshotsDeleteCall { - c := &SnapshotsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)} +func (r *SslPoliciesService) Insert(project string, sslpolicy *SslPolicy) *SslPoliciesInsertCall { + c := &SslPoliciesInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project - c.snapshot = snapshot + c.sslpolicy = sslpolicy 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 *SnapshotsDeleteCall) RequestId(requestId string) *SnapshotsDeleteCall { +// 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 *SslPoliciesInsertCall) RequestId(requestId string) *SslPoliciesInsertCall { c.urlParams_.Set("requestId", requestId) return c } @@ -30229,51 +50457,54 @@ func (c *SnapshotsDeleteCall) RequestId(requestId string) *SnapshotsDeleteCall { // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *SnapshotsDeleteCall) Fields(s ...googleapi.Field) *SnapshotsDeleteCall { +func (c *SslPoliciesInsertCall) Fields(s ...googleapi.Field) *SslPoliciesInsertCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } // Context sets the context to be used in this call's Do method. -func (c *SnapshotsDeleteCall) Context(ctx context.Context) *SnapshotsDeleteCall { +func (c *SslPoliciesInsertCall) Context(ctx context.Context) *SslPoliciesInsertCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *SnapshotsDeleteCall) Header() http.Header { +func (c *SslPoliciesInsertCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *SnapshotsDeleteCall) doRequest(alt string) (*http.Response, error) { - reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) - var body io.Reader = nil +func (c *SslPoliciesInsertCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) + body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.sslpolicy) + if err != nil { + return nil, err + } c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/snapshots/{snapshot}") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/sslPolicies") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("DELETE", urls, body) + req, err := http.NewRequest("POST", urls, body) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "snapshot": c.snapshot, + "project": c.project, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.sslPolicies.insert", "request", internallog.HTTPRequest(req, body.Bytes())) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.snapshots.delete" call. +// Do executes the "compute.sslPolicies.insert" call. // 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 *SnapshotsDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) { +func (c *SslPoliciesInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -30299,37 +50530,166 @@ func (c *SnapshotsDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, erro }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.sslPolicies.insert", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type SnapshotsGetCall struct { +type SslPoliciesListCall struct { s *Service project string - snapshot string urlParams_ gensupport.URLParams ifNoneMatch_ string ctx_ context.Context header_ http.Header } -// Get: Returns the specified Snapshot resource. +// List: Lists all the SSL policies that have been configured for the +// specified +// project. // // - project: Project ID for this request. -// - snapshot: Name of the Snapshot resource to return. -func (r *SnapshotsService) Get(project string, snapshot string) *SnapshotsGetCall { - c := &SnapshotsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)} +func (r *SslPoliciesService) List(project string) *SslPoliciesListCall { + c := &SslPoliciesListCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project - c.snapshot = snapshot + return c +} + +// Filter sets the optional parameter "filter": A filter expression that +// filters resources listed in the response. Most +// Compute resources support two types of filter expressions: +// expressions that support regular expressions and expressions that follow +// API improvement proposal AIP-160. +// These two types of filter expressions cannot be mixed in one request. +// +// If you want to use AIP-160, your expression must specify the field name, +// an +// operator, and the value that you want to use for filtering. The value +// must be a string, a number, or a boolean. The 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`. +// +// The `:*` comparison can be used to test whether a key has been defined. +// For example, to find all objects with `owner` label +// use: +// ``` +// labels.owner:* +// ``` +// +// 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 onresource 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) +// ``` +// +// If you want to use a regular expression, use the `eq` (equal) or `ne` +// (not equal) operator against a single un-parenthesized expression with +// or +// without quotes or against multiple parenthesized expressions. +// Examples: +// +// `fieldname eq unquoted literal` +// `fieldname eq 'single quoted literal'` +// `fieldname eq "double quoted literal" +// `(fieldname1 eq literal) (fieldname2 ne "literal")` +// +// The literal value is interpreted as a regular expression using GoogleRE2 +// library syntax. +// The literal value must match the entire field. +// +// For example, to filter for instances that do not end with name +// "instance", +// you would use `name ne .*instance`. +// +// You cannot combine constraints on multiple fields using regular +// expressions. +func (c *SslPoliciesListCall) Filter(filter string) *SslPoliciesListCall { + 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 *SslPoliciesListCall) MaxResults(maxResults int64) *SslPoliciesListCall { + 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 *SslPoliciesListCall) OrderBy(orderBy string) *SslPoliciesListCall { + 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 *SslPoliciesListCall) PageToken(pageToken string) *SslPoliciesListCall { + c.urlParams_.Set("pageToken", pageToken) + return c +} + +// ReturnPartialSuccess sets the optional parameter "returnPartialSuccess": +// Opt-in for partial success behavior which provides partial results in +// case +// of failure. The default value is false. +// +// For example, when partial success behavior is enabled, aggregatedList for +// a +// single zone scope either returns all resources in the zone or no +// resources, +// with an error code. +func (c *SslPoliciesListCall) ReturnPartialSuccess(returnPartialSuccess bool) *SslPoliciesListCall { + c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess)) return c } // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *SnapshotsGetCall) Fields(s ...googleapi.Field) *SnapshotsGetCall { +func (c *SslPoliciesListCall) Fields(s ...googleapi.Field) *SslPoliciesListCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } @@ -30337,54 +50697,54 @@ func (c *SnapshotsGetCall) Fields(s ...googleapi.Field) *SnapshotsGetCall { // IfNoneMatch sets an 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. -func (c *SnapshotsGetCall) IfNoneMatch(entityTag string) *SnapshotsGetCall { +func (c *SslPoliciesListCall) IfNoneMatch(entityTag string) *SslPoliciesListCall { c.ifNoneMatch_ = entityTag return c } // Context sets the context to be used in this call's Do method. -func (c *SnapshotsGetCall) Context(ctx context.Context) *SnapshotsGetCall { +func (c *SslPoliciesListCall) Context(ctx context.Context) *SslPoliciesListCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *SnapshotsGetCall) Header() http.Header { +func (c *SslPoliciesListCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *SnapshotsGetCall) doRequest(alt string) (*http.Response, error) { +func (c *SslPoliciesListCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) if c.ifNoneMatch_ != "" { reqHeaders.Set("If-None-Match", c.ifNoneMatch_) } - var body io.Reader = nil c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/snapshots/{snapshot}") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/sslPolicies") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("GET", urls, body) + req, err := http.NewRequest("GET", urls, nil) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "snapshot": c.snapshot, + "project": c.project, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.sslPolicies.list", "request", internallog.HTTPRequest(req, nil)) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.snapshots.get" call. +// Do executes the "compute.sslPolicies.list" call. // Any non-2xx status code is an error. Response headers are in either -// *Snapshot.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 *SnapshotsGetCall) Do(opts ...googleapi.CallOption) (*Snapshot, error) { +// *SslPoliciesList.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 *SslPoliciesListCall) Do(opts ...googleapi.CallOption) (*SslPoliciesList, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -30403,52 +50763,194 @@ func (c *SnapshotsGetCall) Do(opts ...googleapi.CallOption) (*Snapshot, error) { if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } - ret := &Snapshot{ + ret := &SslPoliciesList{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } - return ret, nil + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.sslPolicies.list", "response", internallog.HTTPResponse(res, b)) + return ret, nil +} + +// 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 *SslPoliciesListCall) Pages(ctx context.Context, f func(*SslPoliciesList) error) error { + c.ctx_ = ctx + defer c.PageToken(c.urlParams_.Get("pageToken")) + 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) + } } -type SnapshotsGetIamPolicyCall struct { +type SslPoliciesListAvailableFeaturesCall struct { s *Service project string - resource string urlParams_ gensupport.URLParams ifNoneMatch_ string ctx_ context.Context header_ http.Header } -// GetIamPolicy: Gets the access control policy for a resource. May be empty if -// no such policy or resource exists. +// ListAvailableFeatures: Lists all features that can be specified in the SSL +// policy when using +// custom profile. // // - project: Project ID for this request. -// - resource: Name or id of the resource for this request. -func (r *SnapshotsService) GetIamPolicy(project string, resource string) *SnapshotsGetIamPolicyCall { - c := &SnapshotsGetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)} +func (r *SslPoliciesService) ListAvailableFeatures(project string) *SslPoliciesListAvailableFeaturesCall { + c := &SslPoliciesListAvailableFeaturesCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project - c.resource = resource return c } -// OptionsRequestedPolicyVersion sets the optional parameter -// "optionsRequestedPolicyVersion": Requested IAM Policy version. -func (c *SnapshotsGetIamPolicyCall) OptionsRequestedPolicyVersion(optionsRequestedPolicyVersion int64) *SnapshotsGetIamPolicyCall { - c.urlParams_.Set("optionsRequestedPolicyVersion", fmt.Sprint(optionsRequestedPolicyVersion)) +// Filter sets the optional parameter "filter": A filter expression that +// filters resources listed in the response. Most +// Compute resources support two types of filter expressions: +// expressions that support regular expressions and expressions that follow +// API improvement proposal AIP-160. +// These two types of filter expressions cannot be mixed in one request. +// +// If you want to use AIP-160, your expression must specify the field name, +// an +// operator, and the value that you want to use for filtering. The value +// must be a string, a number, or a boolean. The 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`. +// +// The `:*` comparison can be used to test whether a key has been defined. +// For example, to find all objects with `owner` label +// use: +// ``` +// labels.owner:* +// ``` +// +// 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 onresource 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) +// ``` +// +// If you want to use a regular expression, use the `eq` (equal) or `ne` +// (not equal) operator against a single un-parenthesized expression with +// or +// without quotes or against multiple parenthesized expressions. +// Examples: +// +// `fieldname eq unquoted literal` +// `fieldname eq 'single quoted literal'` +// `fieldname eq "double quoted literal" +// `(fieldname1 eq literal) (fieldname2 ne "literal")` +// +// The literal value is interpreted as a regular expression using GoogleRE2 +// library syntax. +// The literal value must match the entire field. +// +// For example, to filter for instances that do not end with name +// "instance", +// you would use `name ne .*instance`. +// +// You cannot combine constraints on multiple fields using regular +// expressions. +func (c *SslPoliciesListAvailableFeaturesCall) Filter(filter string) *SslPoliciesListAvailableFeaturesCall { + 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 *SslPoliciesListAvailableFeaturesCall) MaxResults(maxResults int64) *SslPoliciesListAvailableFeaturesCall { + 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 *SslPoliciesListAvailableFeaturesCall) OrderBy(orderBy string) *SslPoliciesListAvailableFeaturesCall { + 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 *SslPoliciesListAvailableFeaturesCall) PageToken(pageToken string) *SslPoliciesListAvailableFeaturesCall { + c.urlParams_.Set("pageToken", pageToken) + return c +} + +// ReturnPartialSuccess sets the optional parameter "returnPartialSuccess": +// Opt-in for partial success behavior which provides partial results in +// case +// of failure. The default value is false. +// +// For example, when partial success behavior is enabled, aggregatedList for +// a +// single zone scope either returns all resources in the zone or no +// resources, +// with an error code. +func (c *SslPoliciesListAvailableFeaturesCall) ReturnPartialSuccess(returnPartialSuccess bool) *SslPoliciesListAvailableFeaturesCall { + c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess)) return c } // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *SnapshotsGetIamPolicyCall) Fields(s ...googleapi.Field) *SnapshotsGetIamPolicyCall { +func (c *SslPoliciesListAvailableFeaturesCall) Fields(s ...googleapi.Field) *SslPoliciesListAvailableFeaturesCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } @@ -30456,54 +50958,54 @@ func (c *SnapshotsGetIamPolicyCall) Fields(s ...googleapi.Field) *SnapshotsGetIa // IfNoneMatch sets an 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. -func (c *SnapshotsGetIamPolicyCall) IfNoneMatch(entityTag string) *SnapshotsGetIamPolicyCall { +func (c *SslPoliciesListAvailableFeaturesCall) IfNoneMatch(entityTag string) *SslPoliciesListAvailableFeaturesCall { c.ifNoneMatch_ = entityTag return c } // Context sets the context to be used in this call's Do method. -func (c *SnapshotsGetIamPolicyCall) Context(ctx context.Context) *SnapshotsGetIamPolicyCall { +func (c *SslPoliciesListAvailableFeaturesCall) Context(ctx context.Context) *SslPoliciesListAvailableFeaturesCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *SnapshotsGetIamPolicyCall) Header() http.Header { +func (c *SslPoliciesListAvailableFeaturesCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *SnapshotsGetIamPolicyCall) doRequest(alt string) (*http.Response, error) { +func (c *SslPoliciesListAvailableFeaturesCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) if c.ifNoneMatch_ != "" { reqHeaders.Set("If-None-Match", c.ifNoneMatch_) } - var body io.Reader = nil c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/snapshots/{resource}/getIamPolicy") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/sslPolicies/listAvailableFeatures") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("GET", urls, body) + req, err := http.NewRequest("GET", urls, nil) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "resource": c.resource, + "project": c.project, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.sslPolicies.listAvailableFeatures", "request", internallog.HTTPRequest(req, nil)) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.snapshots.getIamPolicy" call. +// Do executes the "compute.sslPolicies.listAvailableFeatures" call. // Any non-2xx status code is an error. Response headers are in either -// *Policy.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 *SnapshotsGetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, error) { +// *SslPoliciesListAvailableFeaturesResponse.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 *SslPoliciesListAvailableFeaturesCall) Do(opts ...googleapi.CallOption) (*SslPoliciesListAvailableFeaturesResponse, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -30522,52 +51024,65 @@ func (c *SnapshotsGetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, e if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } - ret := &Policy{ + ret := &SslPoliciesListAvailableFeaturesResponse{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.sslPolicies.listAvailableFeatures", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type SnapshotsInsertCall struct { +type SslPoliciesPatchCall struct { s *Service project string - snapshot *Snapshot + sslPolicy string + sslpolicy *SslPolicy urlParams_ gensupport.URLParams ctx_ context.Context header_ http.Header } -// Insert: Creates a snapshot in the specified project using the data included -// in the request. For regular snapshot creation, consider using this method -// instead of disks.createSnapshot, as this method supports more features, such -// as creating snapshots in a project different from the source disk project. +// Patch: Patches the specified SSL policy with the data included in the +// request. // -// - project: Project ID for this request. -func (r *SnapshotsService) Insert(project string, snapshot *Snapshot) *SnapshotsInsertCall { - c := &SnapshotsInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)} +// - project: Project ID for this request. +// - sslPolicy: Name of the SSL policy to update. The name must be 1-63 +// characters long, +// +// and comply with RFC1035. +func (r *SslPoliciesService) Patch(project string, sslPolicy string, sslpolicy *SslPolicy) *SslPoliciesPatchCall { + c := &SslPoliciesPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project - c.snapshot = snapshot + c.sslPolicy = sslPolicy + c.sslpolicy = sslpolicy 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 *SnapshotsInsertCall) RequestId(requestId string) *SnapshotsInsertCall { +// 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 *SslPoliciesPatchCall) RequestId(requestId string) *SslPoliciesPatchCall { c.urlParams_.Set("requestId", requestId) return c } @@ -30575,54 +51090,55 @@ func (c *SnapshotsInsertCall) RequestId(requestId string) *SnapshotsInsertCall { // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *SnapshotsInsertCall) Fields(s ...googleapi.Field) *SnapshotsInsertCall { +func (c *SslPoliciesPatchCall) Fields(s ...googleapi.Field) *SslPoliciesPatchCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } // Context sets the context to be used in this call's Do method. -func (c *SnapshotsInsertCall) Context(ctx context.Context) *SnapshotsInsertCall { +func (c *SslPoliciesPatchCall) Context(ctx context.Context) *SslPoliciesPatchCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *SnapshotsInsertCall) Header() http.Header { +func (c *SslPoliciesPatchCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *SnapshotsInsertCall) doRequest(alt string) (*http.Response, error) { +func (c *SslPoliciesPatchCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) - var body io.Reader = nil - body, err := googleapi.WithoutDataWrapper.JSONReader(c.snapshot) + body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.sslpolicy) if err != nil { return nil, err } c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/snapshots") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/sslPolicies/{sslPolicy}") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("POST", urls, body) + req, err := http.NewRequest("PATCH", urls, body) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, + "project": c.project, + "sslPolicy": c.sslPolicy, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.sslPolicies.patch", "request", internallog.HTTPRequest(req, body.Bytes())) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.snapshots.insert" call. +// Do executes the "compute.sslPolicies.patch" call. // 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 *SnapshotsInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) { +func (c *SslPoliciesPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -30648,13 +51164,15 @@ func (c *SnapshotsInsertCall) Do(opts ...googleapi.CallOption) (*Operation, erro }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.sslPolicies.patch", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type SnapshotsListCall struct { +type StoragePoolTypesAggregatedListCall struct { s *Service project string urlParams_ gensupport.URLParams @@ -30663,98 +51181,177 @@ type SnapshotsListCall struct { header_ http.Header } -// List: Retrieves the list of Snapshot resources contained within the -// specified project. +// AggregatedList: Retrieves an aggregated list of storage pool types. +// +// To prevent failure, Google recommends that you set +// the +// `returnPartialSuccess` parameter to `true`. // // - project: Project ID for this request. -func (r *SnapshotsService) List(project string) *SnapshotsListCall { - c := &SnapshotsListCall{s: r.s, urlParams_: make(gensupport.URLParams)} +func (r *StoragePoolTypesService) AggregatedList(project string) *StoragePoolTypesAggregatedListCall { + c := &StoragePoolTypesAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project return c } // Filter sets the optional parameter "filter": A filter expression that -// filters resources listed in the response. Most Compute resources support two -// types of filter expressions: expressions that support regular expressions -// and expressions that follow API improvement proposal AIP-160. These two -// types of filter expressions cannot be mixed in one request. If you want to -// use AIP-160, your expression must specify the field name, an operator, and -// the value that you want to use for filtering. The value must be a string, a -// number, or a boolean. The 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`. The `:*` comparison can be used to test whether a key has -// been defined. For example, to find all objects with `owner` label use: ``` -// labels.owner:* ``` 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) ``` If you want to use a regular -// expression, use the `eq` (equal) or `ne` (not equal) operator against a -// single un-parenthesized expression with or without quotes or against -// multiple parenthesized expressions. Examples: `fieldname eq unquoted -// literal` `fieldname eq 'single quoted literal'` `fieldname eq "double quoted -// literal" `(fieldname1 eq literal) (fieldname2 ne "literal")` The literal -// value is interpreted as a regular expression using Google RE2 library -// syntax. The literal value must match the entire field. For example, to -// filter for instances that do not end with name "instance", you would use -// `name ne .*instance`. You cannot combine constraints on multiple fields -// using regular expressions. -func (c *SnapshotsListCall) Filter(filter string) *SnapshotsListCall { +// filters resources listed in the response. Most +// Compute resources support two types of filter expressions: +// expressions that support regular expressions and expressions that follow +// API improvement proposal AIP-160. +// These two types of filter expressions cannot be mixed in one request. +// +// If you want to use AIP-160, your expression must specify the field name, +// an +// operator, and the value that you want to use for filtering. The value +// must be a string, a number, or a boolean. The 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`. +// +// The `:*` comparison can be used to test whether a key has been defined. +// For example, to find all objects with `owner` label +// use: +// ``` +// labels.owner:* +// ``` +// +// 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 onresource 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) +// ``` +// +// If you want to use a regular expression, use the `eq` (equal) or `ne` +// (not equal) operator against a single un-parenthesized expression with +// or +// without quotes or against multiple parenthesized expressions. +// Examples: +// +// `fieldname eq unquoted literal` +// `fieldname eq 'single quoted literal'` +// `fieldname eq "double quoted literal" +// `(fieldname1 eq literal) (fieldname2 ne "literal")` +// +// The literal value is interpreted as a regular expression using GoogleRE2 +// library syntax. +// The literal value must match the entire field. +// +// For example, to filter for instances that do not end with name +// "instance", +// you would use `name ne .*instance`. +// +// You cannot combine constraints on multiple fields using regular +// expressions. +func (c *StoragePoolTypesAggregatedListCall) Filter(filter string) *StoragePoolTypesAggregatedListCall { c.urlParams_.Set("filter", filter) return c } +// IncludeAllScopes sets the optional parameter "includeAllScopes": Indicates +// whether every visible scope for each scope type (zone, region, +// global) should be included in the response. For new resource types +// added +// after this field, the flag has no effect as new resource types will +// always +// include every visible scope for each scope type in response. For +// resource +// types which predate this field, if this flag is omitted or false, +// only +// scopes of the scope types where the resource type is expected to be +// found +// will be included. +func (c *StoragePoolTypesAggregatedListCall) IncludeAllScopes(includeAllScopes bool) *StoragePoolTypesAggregatedListCall { + c.urlParams_.Set("includeAllScopes", fmt.Sprint(includeAllScopes)) + 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 *SnapshotsListCall) MaxResults(maxResults int64) *SnapshotsListCall { +// 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 *StoragePoolTypesAggregatedListCall) MaxResults(maxResults int64) *StoragePoolTypesAggregatedListCall { 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 *SnapshotsListCall) OrderBy(orderBy string) *SnapshotsListCall { +// 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 *StoragePoolTypesAggregatedListCall) OrderBy(orderBy string) *StoragePoolTypesAggregatedListCall { 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 *SnapshotsListCall) PageToken(pageToken string) *SnapshotsListCall { +// use. Set `pageToken` to the +// `nextPageToken` returned by a previous list request to get +// the next page of results. +func (c *StoragePoolTypesAggregatedListCall) PageToken(pageToken string) *StoragePoolTypesAggregatedListCall { c.urlParams_.Set("pageToken", pageToken) return c } // ReturnPartialSuccess sets the optional parameter "returnPartialSuccess": -// Opt-in for partial success behavior which provides partial results in case -// of failure. The default value is false. For example, when partial success -// behavior is enabled, aggregatedList for a single zone scope either returns -// all resources in the zone or no resources, with an error code. -func (c *SnapshotsListCall) ReturnPartialSuccess(returnPartialSuccess bool) *SnapshotsListCall { +// Opt-in for partial success behavior which provides partial results in +// case +// of failure. The default value is false. +// +// For example, when partial success behavior is enabled, aggregatedList for +// a +// single zone scope either returns all resources in the zone or no +// resources, +// with an error code. +func (c *StoragePoolTypesAggregatedListCall) ReturnPartialSuccess(returnPartialSuccess bool) *StoragePoolTypesAggregatedListCall { c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess)) return c } +// ServiceProjectNumber sets the optional parameter "serviceProjectNumber": The +// Shared VPC service project id or service project number for which +// aggregated list request is invoked for subnetworks list-usable api. +func (c *StoragePoolTypesAggregatedListCall) ServiceProjectNumber(serviceProjectNumber int64) *StoragePoolTypesAggregatedListCall { + c.urlParams_.Set("serviceProjectNumber", fmt.Sprint(serviceProjectNumber)) + return c +} + // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *SnapshotsListCall) Fields(s ...googleapi.Field) *SnapshotsListCall { +func (c *StoragePoolTypesAggregatedListCall) Fields(s ...googleapi.Field) *StoragePoolTypesAggregatedListCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } @@ -30762,37 +51359,36 @@ func (c *SnapshotsListCall) Fields(s ...googleapi.Field) *SnapshotsListCall { // IfNoneMatch sets an 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. -func (c *SnapshotsListCall) IfNoneMatch(entityTag string) *SnapshotsListCall { +func (c *StoragePoolTypesAggregatedListCall) IfNoneMatch(entityTag string) *StoragePoolTypesAggregatedListCall { c.ifNoneMatch_ = entityTag return c } // Context sets the context to be used in this call's Do method. -func (c *SnapshotsListCall) Context(ctx context.Context) *SnapshotsListCall { +func (c *StoragePoolTypesAggregatedListCall) Context(ctx context.Context) *StoragePoolTypesAggregatedListCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *SnapshotsListCall) Header() http.Header { +func (c *StoragePoolTypesAggregatedListCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *SnapshotsListCall) doRequest(alt string) (*http.Response, error) { +func (c *StoragePoolTypesAggregatedListCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) if c.ifNoneMatch_ != "" { reqHeaders.Set("If-None-Match", c.ifNoneMatch_) } - var body io.Reader = nil c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/snapshots") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/aggregated/storagePoolTypes") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("GET", urls, body) + req, err := http.NewRequest("GET", urls, nil) if err != nil { return nil, err } @@ -30800,15 +51396,17 @@ func (c *SnapshotsListCall) doRequest(alt string) (*http.Response, error) { googleapi.Expand(req.URL, map[string]string{ "project": c.project, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.storagePoolTypes.aggregatedList", "request", internallog.HTTPRequest(req, nil)) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.snapshots.list" call. +// Do executes the "compute.storagePoolTypes.aggregatedList" call. // Any non-2xx status code is an error. Response headers are in either -// *SnapshotList.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 *SnapshotsListCall) Do(opts ...googleapi.CallOption) (*SnapshotList, error) { +// *StoragePoolTypeAggregatedList.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 *StoragePoolTypesAggregatedListCall) Do(opts ...googleapi.CallOption) (*StoragePoolTypeAggregatedList, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -30827,23 +51425,25 @@ func (c *SnapshotsListCall) Do(opts ...googleapi.CallOption) (*SnapshotList, err if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } - ret := &SnapshotList{ + ret := &StoragePoolTypeAggregatedList{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.storagePoolTypes.aggregatedList", "response", internallog.HTTPResponse(res, b)) return ret, nil } // 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 *SnapshotsListCall) Pages(ctx context.Context, f func(*SnapshotList) error) error { +func (c *StoragePoolTypesAggregatedListCall) Pages(ctx context.Context, f func(*StoragePoolTypeAggregatedList) error) error { c.ctx_ = ctx defer c.PageToken(c.urlParams_.Get("pageToken")) for { @@ -30861,81 +51461,91 @@ func (c *SnapshotsListCall) Pages(ctx context.Context, f func(*SnapshotList) err } } -type SnapshotsSetIamPolicyCall struct { - s *Service - project string - resource string - globalsetpolicyrequest *GlobalSetPolicyRequest - urlParams_ gensupport.URLParams - ctx_ context.Context - header_ http.Header +type StoragePoolTypesGetCall struct { + s *Service + project string + zone string + storagePoolType string + urlParams_ gensupport.URLParams + ifNoneMatch_ string + ctx_ context.Context + header_ http.Header } -// SetIamPolicy: Sets the access control policy on the specified resource. -// Replaces any existing policy. +// Get: Returns the specified storage pool type. // // - project: Project ID for this request. -// - resource: Name or id of the resource for this request. -func (r *SnapshotsService) SetIamPolicy(project string, resource string, globalsetpolicyrequest *GlobalSetPolicyRequest) *SnapshotsSetIamPolicyCall { - c := &SnapshotsSetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)} +// - storagePoolType: Name of the storage pool type to return. +// - zone: The name of the zone for this request. +func (r *StoragePoolTypesService) Get(project string, zone string, storagePoolType string) *StoragePoolTypesGetCall { + c := &StoragePoolTypesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project - c.resource = resource - c.globalsetpolicyrequest = globalsetpolicyrequest + c.zone = zone + c.storagePoolType = storagePoolType return c } // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *SnapshotsSetIamPolicyCall) Fields(s ...googleapi.Field) *SnapshotsSetIamPolicyCall { +func (c *StoragePoolTypesGetCall) Fields(s ...googleapi.Field) *StoragePoolTypesGetCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } +// IfNoneMatch sets an 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. +func (c *StoragePoolTypesGetCall) IfNoneMatch(entityTag string) *StoragePoolTypesGetCall { + c.ifNoneMatch_ = entityTag + return c +} + // Context sets the context to be used in this call's Do method. -func (c *SnapshotsSetIamPolicyCall) Context(ctx context.Context) *SnapshotsSetIamPolicyCall { +func (c *StoragePoolTypesGetCall) Context(ctx context.Context) *StoragePoolTypesGetCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *SnapshotsSetIamPolicyCall) Header() http.Header { +func (c *StoragePoolTypesGetCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *SnapshotsSetIamPolicyCall) doRequest(alt string) (*http.Response, error) { - reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) - var body io.Reader = nil - body, err := googleapi.WithoutDataWrapper.JSONReader(c.globalsetpolicyrequest) - if err != nil { - return nil, err +func (c *StoragePoolTypesGetCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) + if c.ifNoneMatch_ != "" { + reqHeaders.Set("If-None-Match", c.ifNoneMatch_) } c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/snapshots/{resource}/setIamPolicy") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/storagePoolTypes/{storagePoolType}") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("POST", urls, body) + req, err := http.NewRequest("GET", urls, nil) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "resource": c.resource, + "project": c.project, + "zone": c.zone, + "storagePoolType": c.storagePoolType, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.storagePoolTypes.get", "request", internallog.HTTPRequest(req, nil)) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.snapshots.setIamPolicy" call. +// Do executes the "compute.storagePoolTypes.get" call. // Any non-2xx status code is an error. Response headers are in either -// *Policy.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 *SnapshotsSetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, error) { +// *StoragePoolType.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 *StoragePoolTypesGetCall) Do(opts ...googleapi.CallOption) (*StoragePoolType, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -30954,201 +51564,232 @@ func (c *SnapshotsSetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, e if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } - ret := &Policy{ + ret := &StoragePoolType{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.storagePoolTypes.get", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type SnapshotsSetLabelsCall struct { - s *Service - project string - resource string - globalsetlabelsrequest *GlobalSetLabelsRequest - urlParams_ gensupport.URLParams - ctx_ context.Context - header_ http.Header +type StoragePoolTypesListCall struct { + s *Service + project string + zone string + urlParams_ gensupport.URLParams + ifNoneMatch_ string + ctx_ context.Context + header_ http.Header } -// SetLabels: Sets the labels on a snapshot. To learn more about labels, read -// the Labeling Resources documentation. +// List: Retrieves a list of storage pool types available to the +// specified +// project. // // - project: Project ID for this request. -// - resource: Name or id of the resource for this request. -func (r *SnapshotsService) SetLabels(project string, resource string, globalsetlabelsrequest *GlobalSetLabelsRequest) *SnapshotsSetLabelsCall { - c := &SnapshotsSetLabelsCall{s: r.s, urlParams_: make(gensupport.URLParams)} +// - zone: The name of the zone for this request. +func (r *StoragePoolTypesService) List(project string, zone string) *StoragePoolTypesListCall { + c := &StoragePoolTypesListCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project - c.resource = resource - c.globalsetlabelsrequest = globalsetlabelsrequest + c.zone = zone return c } -// Fields allows partial responses to be retrieved. See -// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more -// details. -func (c *SnapshotsSetLabelsCall) Fields(s ...googleapi.Field) *SnapshotsSetLabelsCall { - c.urlParams_.Set("fields", googleapi.CombineFields(s)) +// Filter sets the optional parameter "filter": A filter expression that +// filters resources listed in the response. Most +// Compute resources support two types of filter expressions: +// expressions that support regular expressions and expressions that follow +// API improvement proposal AIP-160. +// These two types of filter expressions cannot be mixed in one request. +// +// If you want to use AIP-160, your expression must specify the field name, +// an +// operator, and the value that you want to use for filtering. The value +// must be a string, a number, or a boolean. The 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`. +// +// The `:*` comparison can be used to test whether a key has been defined. +// For example, to find all objects with `owner` label +// use: +// ``` +// labels.owner:* +// ``` +// +// 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 onresource 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) +// ``` +// +// If you want to use a regular expression, use the `eq` (equal) or `ne` +// (not equal) operator against a single un-parenthesized expression with +// or +// without quotes or against multiple parenthesized expressions. +// Examples: +// +// `fieldname eq unquoted literal` +// `fieldname eq 'single quoted literal'` +// `fieldname eq "double quoted literal" +// `(fieldname1 eq literal) (fieldname2 ne "literal")` +// +// The literal value is interpreted as a regular expression using GoogleRE2 +// library syntax. +// The literal value must match the entire field. +// +// For example, to filter for instances that do not end with name +// "instance", +// you would use `name ne .*instance`. +// +// You cannot combine constraints on multiple fields using regular +// expressions. +func (c *StoragePoolTypesListCall) Filter(filter string) *StoragePoolTypesListCall { + c.urlParams_.Set("filter", filter) return c } -// Context sets the context to be used in this call's Do method. -func (c *SnapshotsSetLabelsCall) Context(ctx context.Context) *SnapshotsSetLabelsCall { - c.ctx_ = ctx +// 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 *StoragePoolTypesListCall) MaxResults(maxResults int64) *StoragePoolTypesListCall { + c.urlParams_.Set("maxResults", fmt.Sprint(maxResults)) return c } -// Header returns a http.Header that can be modified by the caller to add -// headers to the request. -func (c *SnapshotsSetLabelsCall) Header() http.Header { - if c.header_ == nil { - c.header_ = make(http.Header) - } - return c.header_ -} - -func (c *SnapshotsSetLabelsCall) doRequest(alt string) (*http.Response, error) { - reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) - var body io.Reader = nil - body, err := googleapi.WithoutDataWrapper.JSONReader(c.globalsetlabelsrequest) - if err != nil { - return nil, err - } - c.urlParams_.Set("alt", alt) - c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/snapshots/{resource}/setLabels") - urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("POST", urls, body) - if err != nil { - return nil, err - } - req.Header = reqHeaders - googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "resource": c.resource, - }) - return gensupport.SendRequest(c.ctx_, c.s.client, req) -} - -// Do executes the "compute.snapshots.setLabels" call. -// 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 *SnapshotsSetLabelsCall) 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, gensupport.WrapError(&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, gensupport.WrapError(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 +// 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 *StoragePoolTypesListCall) OrderBy(orderBy string) *StoragePoolTypesListCall { + c.urlParams_.Set("orderBy", orderBy) + return c } -type SnapshotsTestIamPermissionsCall struct { - s *Service - project string - resource string - testpermissionsrequest *TestPermissionsRequest - urlParams_ gensupport.URLParams - ctx_ context.Context - header_ http.Header +// 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 *StoragePoolTypesListCall) PageToken(pageToken string) *StoragePoolTypesListCall { + c.urlParams_.Set("pageToken", pageToken) + return c } -// TestIamPermissions: Returns permissions that a caller has on the specified -// resource. +// ReturnPartialSuccess sets the optional parameter "returnPartialSuccess": +// Opt-in for partial success behavior which provides partial results in +// case +// of failure. The default value is false. // -// - project: Project ID for this request. -// - resource: Name or id of the resource for this request. -func (r *SnapshotsService) TestIamPermissions(project string, resource string, testpermissionsrequest *TestPermissionsRequest) *SnapshotsTestIamPermissionsCall { - c := &SnapshotsTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)} - c.project = project - c.resource = resource - c.testpermissionsrequest = testpermissionsrequest +// For example, when partial success behavior is enabled, aggregatedList for +// a +// single zone scope either returns all resources in the zone or no +// resources, +// with an error code. +func (c *StoragePoolTypesListCall) ReturnPartialSuccess(returnPartialSuccess bool) *StoragePoolTypesListCall { + c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess)) return c } // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *SnapshotsTestIamPermissionsCall) Fields(s ...googleapi.Field) *SnapshotsTestIamPermissionsCall { +func (c *StoragePoolTypesListCall) Fields(s ...googleapi.Field) *StoragePoolTypesListCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } +// IfNoneMatch sets an 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. +func (c *StoragePoolTypesListCall) IfNoneMatch(entityTag string) *StoragePoolTypesListCall { + c.ifNoneMatch_ = entityTag + return c +} + // Context sets the context to be used in this call's Do method. -func (c *SnapshotsTestIamPermissionsCall) Context(ctx context.Context) *SnapshotsTestIamPermissionsCall { +func (c *StoragePoolTypesListCall) Context(ctx context.Context) *StoragePoolTypesListCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *SnapshotsTestIamPermissionsCall) Header() http.Header { +func (c *StoragePoolTypesListCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *SnapshotsTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) { - reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) - var body io.Reader = nil - body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest) - if err != nil { - return nil, err +func (c *StoragePoolTypesListCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) + if c.ifNoneMatch_ != "" { + reqHeaders.Set("If-None-Match", c.ifNoneMatch_) } c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/snapshots/{resource}/testIamPermissions") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/storagePoolTypes") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("POST", urls, body) + req, err := http.NewRequest("GET", urls, nil) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "resource": c.resource, + "project": c.project, + "zone": c.zone, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.storagePoolTypes.list", "request", internallog.HTTPRequest(req, nil)) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.snapshots.testIamPermissions" call. +// Do executes the "compute.storagePoolTypes.list" call. // Any non-2xx status code is an error. Response headers are in either -// *TestPermissionsResponse.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 *SnapshotsTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) { +// *StoragePoolTypeList.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 *StoragePoolTypesListCall) Do(opts ...googleapi.CallOption) (*StoragePoolTypeList, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -31167,20 +51808,43 @@ func (c *SnapshotsTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*Tes if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } - ret := &TestPermissionsResponse{ + ret := &StoragePoolTypeList{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.storagePoolTypes.list", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type SslCertificatesAggregatedListCall struct { +// 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 *StoragePoolTypesListCall) Pages(ctx context.Context, f func(*StoragePoolTypeList) error) error { + c.ctx_ = ctx + defer c.PageToken(c.urlParams_.Get("pageToken")) + 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) + } +} + +type StoragePoolsAggregatedListCall struct { s *Service project string urlParams_ gensupport.URLParams @@ -31189,112 +51853,169 @@ type SslCertificatesAggregatedListCall struct { header_ http.Header } -// AggregatedList: Retrieves the list of all SslCertificate resources, regional -// and global, available to the specified project. To prevent failure, Google -// recommends that you set the `returnPartialSuccess` parameter to `true`. +// AggregatedList: Retrieves an aggregated list of storage pools. +// +// To prevent failure, Google recommends that you set +// the +// `returnPartialSuccess` parameter to `true`. +// +// - project: Project ID for this request. +func (r *StoragePoolsService) AggregatedList(project string) *StoragePoolsAggregatedListCall { + c := &StoragePoolsAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)} + c.project = project + return c +} + +// Filter sets the optional parameter "filter": A filter expression that +// filters resources listed in the response. Most +// Compute resources support two types of filter expressions: +// expressions that support regular expressions and expressions that follow +// API improvement proposal AIP-160. +// These two types of filter expressions cannot be mixed in one request. +// +// If you want to use AIP-160, your expression must specify the field name, +// an +// operator, and the value that you want to use for filtering. The value +// must be a string, a number, or a boolean. The 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`. +// +// The `:*` comparison can be used to test whether a key has been defined. +// For example, to find all objects with `owner` label +// use: +// ``` +// labels.owner:* +// ``` +// +// 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 onresource 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) +// ``` +// +// If you want to use a regular expression, use the `eq` (equal) or `ne` +// (not equal) operator against a single un-parenthesized expression with +// or +// without quotes or against multiple parenthesized expressions. +// Examples: +// +// `fieldname eq unquoted literal` +// `fieldname eq 'single quoted literal'` +// `fieldname eq "double quoted literal" +// `(fieldname1 eq literal) (fieldname2 ne "literal")` +// +// The literal value is interpreted as a regular expression using GoogleRE2 +// library syntax. +// The literal value must match the entire field. // -// - project: Name of the project scoping this request. -func (r *SslCertificatesService) AggregatedList(project string) *SslCertificatesAggregatedListCall { - c := &SslCertificatesAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)} - c.project = project - return c -} - -// Filter sets the optional parameter "filter": A filter expression that -// filters resources listed in the response. Most Compute resources support two -// types of filter expressions: expressions that support regular expressions -// and expressions that follow API improvement proposal AIP-160. These two -// types of filter expressions cannot be mixed in one request. If you want to -// use AIP-160, your expression must specify the field name, an operator, and -// the value that you want to use for filtering. The value must be a string, a -// number, or a boolean. The 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`. The `:*` comparison can be used to test whether a key has -// been defined. For example, to find all objects with `owner` label use: ``` -// labels.owner:* ``` 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) ``` If you want to use a regular -// expression, use the `eq` (equal) or `ne` (not equal) operator against a -// single un-parenthesized expression with or without quotes or against -// multiple parenthesized expressions. Examples: `fieldname eq unquoted -// literal` `fieldname eq 'single quoted literal'` `fieldname eq "double quoted -// literal" `(fieldname1 eq literal) (fieldname2 ne "literal")` The literal -// value is interpreted as a regular expression using Google RE2 library -// syntax. The literal value must match the entire field. For example, to -// filter for instances that do not end with name "instance", you would use -// `name ne .*instance`. You cannot combine constraints on multiple fields -// using regular expressions. -func (c *SslCertificatesAggregatedListCall) Filter(filter string) *SslCertificatesAggregatedListCall { +// For example, to filter for instances that do not end with name +// "instance", +// you would use `name ne .*instance`. +// +// You cannot combine constraints on multiple fields using regular +// expressions. +func (c *StoragePoolsAggregatedListCall) Filter(filter string) *StoragePoolsAggregatedListCall { c.urlParams_.Set("filter", filter) return c } // IncludeAllScopes sets the optional parameter "includeAllScopes": Indicates -// whether every visible scope for each scope type (zone, region, global) -// should be included in the response. For new resource types added after this -// field, the flag has no effect as new resource types will always include -// every visible scope for each scope type in response. For resource types -// which predate this field, if this flag is omitted or false, only scopes of -// the scope types where the resource type is expected to be found will be -// included. -func (c *SslCertificatesAggregatedListCall) IncludeAllScopes(includeAllScopes bool) *SslCertificatesAggregatedListCall { +// whether every visible scope for each scope type (zone, region, +// global) should be included in the response. For new resource types +// added +// after this field, the flag has no effect as new resource types will +// always +// include every visible scope for each scope type in response. For +// resource +// types which predate this field, if this flag is omitted or false, +// only +// scopes of the scope types where the resource type is expected to be +// found +// will be included. +func (c *StoragePoolsAggregatedListCall) IncludeAllScopes(includeAllScopes bool) *StoragePoolsAggregatedListCall { c.urlParams_.Set("includeAllScopes", fmt.Sprint(includeAllScopes)) 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 *SslCertificatesAggregatedListCall) MaxResults(maxResults int64) *SslCertificatesAggregatedListCall { +// 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 *StoragePoolsAggregatedListCall) MaxResults(maxResults int64) *StoragePoolsAggregatedListCall { 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 *SslCertificatesAggregatedListCall) OrderBy(orderBy string) *SslCertificatesAggregatedListCall { +// 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 *StoragePoolsAggregatedListCall) OrderBy(orderBy string) *StoragePoolsAggregatedListCall { 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 *SslCertificatesAggregatedListCall) PageToken(pageToken string) *SslCertificatesAggregatedListCall { +// use. Set `pageToken` to the +// `nextPageToken` returned by a previous list request to get +// the next page of results. +func (c *StoragePoolsAggregatedListCall) PageToken(pageToken string) *StoragePoolsAggregatedListCall { c.urlParams_.Set("pageToken", pageToken) return c } // ReturnPartialSuccess sets the optional parameter "returnPartialSuccess": -// Opt-in for partial success behavior which provides partial results in case -// of failure. The default value is false. For example, when partial success -// behavior is enabled, aggregatedList for a single zone scope either returns -// all resources in the zone or no resources, with an error code. -func (c *SslCertificatesAggregatedListCall) ReturnPartialSuccess(returnPartialSuccess bool) *SslCertificatesAggregatedListCall { +// Opt-in for partial success behavior which provides partial results in +// case +// of failure. The default value is false. +// +// For example, when partial success behavior is enabled, aggregatedList for +// a +// single zone scope either returns all resources in the zone or no +// resources, +// with an error code. +func (c *StoragePoolsAggregatedListCall) ReturnPartialSuccess(returnPartialSuccess bool) *StoragePoolsAggregatedListCall { c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess)) return c } // ServiceProjectNumber sets the optional parameter "serviceProjectNumber": The -// Shared VPC service project id or service project number for which aggregated -// list request is invoked for subnetworks list-usable api. -func (c *SslCertificatesAggregatedListCall) ServiceProjectNumber(serviceProjectNumber int64) *SslCertificatesAggregatedListCall { +// Shared VPC service project id or service project number for which +// aggregated list request is invoked for subnetworks list-usable api. +func (c *StoragePoolsAggregatedListCall) ServiceProjectNumber(serviceProjectNumber int64) *StoragePoolsAggregatedListCall { c.urlParams_.Set("serviceProjectNumber", fmt.Sprint(serviceProjectNumber)) return c } @@ -31302,7 +52023,7 @@ func (c *SslCertificatesAggregatedListCall) ServiceProjectNumber(serviceProjectN // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *SslCertificatesAggregatedListCall) Fields(s ...googleapi.Field) *SslCertificatesAggregatedListCall { +func (c *StoragePoolsAggregatedListCall) Fields(s ...googleapi.Field) *StoragePoolsAggregatedListCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } @@ -31310,37 +52031,36 @@ func (c *SslCertificatesAggregatedListCall) Fields(s ...googleapi.Field) *SslCer // IfNoneMatch sets an 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. -func (c *SslCertificatesAggregatedListCall) IfNoneMatch(entityTag string) *SslCertificatesAggregatedListCall { +func (c *StoragePoolsAggregatedListCall) IfNoneMatch(entityTag string) *StoragePoolsAggregatedListCall { c.ifNoneMatch_ = entityTag return c } // Context sets the context to be used in this call's Do method. -func (c *SslCertificatesAggregatedListCall) Context(ctx context.Context) *SslCertificatesAggregatedListCall { +func (c *StoragePoolsAggregatedListCall) Context(ctx context.Context) *StoragePoolsAggregatedListCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *SslCertificatesAggregatedListCall) Header() http.Header { +func (c *StoragePoolsAggregatedListCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *SslCertificatesAggregatedListCall) doRequest(alt string) (*http.Response, error) { +func (c *StoragePoolsAggregatedListCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) if c.ifNoneMatch_ != "" { reqHeaders.Set("If-None-Match", c.ifNoneMatch_) } - var body io.Reader = nil c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/aggregated/sslCertificates") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/aggregated/storagePools") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("GET", urls, body) + req, err := http.NewRequest("GET", urls, nil) if err != nil { return nil, err } @@ -31348,16 +52068,17 @@ func (c *SslCertificatesAggregatedListCall) doRequest(alt string) (*http.Respons googleapi.Expand(req.URL, map[string]string{ "project": c.project, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.storagePools.aggregatedList", "request", internallog.HTTPRequest(req, nil)) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.sslCertificates.aggregatedList" call. +// Do executes the "compute.storagePools.aggregatedList" call. // Any non-2xx status code is an error. Response headers are in either -// *SslCertificateAggregatedList.ServerResponse.Header or (if a response was +// *StoragePoolAggregatedList.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 *SslCertificatesAggregatedListCall) Do(opts ...googleapi.CallOption) (*SslCertificateAggregatedList, error) { +func (c *StoragePoolsAggregatedListCall) Do(opts ...googleapi.CallOption) (*StoragePoolAggregatedList, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -31376,23 +52097,25 @@ func (c *SslCertificatesAggregatedListCall) Do(opts ...googleapi.CallOption) (*S if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } - ret := &SslCertificateAggregatedList{ + ret := &StoragePoolAggregatedList{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.storagePools.aggregatedList", "response", internallog.HTTPResponse(res, b)) return ret, nil } // 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 *SslCertificatesAggregatedListCall) Pages(ctx context.Context, f func(*SslCertificateAggregatedList) error) error { +func (c *StoragePoolsAggregatedListCall) Pages(ctx context.Context, f func(*StoragePoolAggregatedList) error) error { c.ctx_ = ctx defer c.PageToken(c.urlParams_.Get("pageToken")) for { @@ -31410,37 +52133,52 @@ func (c *SslCertificatesAggregatedListCall) Pages(ctx context.Context, f func(*S } } -type SslCertificatesDeleteCall struct { - s *Service - project string - sslCertificate string - urlParams_ gensupport.URLParams - ctx_ context.Context - header_ http.Header +type StoragePoolsDeleteCall struct { + s *Service + project string + zone string + storagePool string + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header } -// Delete: Deletes the specified SslCertificate resource. +// Delete: Deletes the specified storage pool. Deleting a storagePool +// removes its data permanently and is irreversible. However, deleting +// a +// storagePool does not delete any snapshots previously +// made from the storagePool. You must separately delete +// snapshots. // // - project: Project ID for this request. -// - sslCertificate: Name of the SslCertificate resource to delete. -func (r *SslCertificatesService) Delete(project string, sslCertificate string) *SslCertificatesDeleteCall { - c := &SslCertificatesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)} +// - storagePool: Name of the storage pool to delete. +// - zone: The name of the zone for this request. +func (r *StoragePoolsService) Delete(project string, zone string, storagePool string) *StoragePoolsDeleteCall { + c := &StoragePoolsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project - c.sslCertificate = sslCertificate + c.zone = zone + c.storagePool = storagePool 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 *SslCertificatesDeleteCall) RequestId(requestId string) *SslCertificatesDeleteCall { +// 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 *StoragePoolsDeleteCall) RequestId(requestId string) *StoragePoolsDeleteCall { c.urlParams_.Set("requestId", requestId) return c } @@ -31448,51 +52186,52 @@ func (c *SslCertificatesDeleteCall) RequestId(requestId string) *SslCertificates // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *SslCertificatesDeleteCall) Fields(s ...googleapi.Field) *SslCertificatesDeleteCall { +func (c *StoragePoolsDeleteCall) Fields(s ...googleapi.Field) *StoragePoolsDeleteCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } // Context sets the context to be used in this call's Do method. -func (c *SslCertificatesDeleteCall) Context(ctx context.Context) *SslCertificatesDeleteCall { +func (c *StoragePoolsDeleteCall) Context(ctx context.Context) *StoragePoolsDeleteCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *SslCertificatesDeleteCall) Header() http.Header { +func (c *StoragePoolsDeleteCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *SslCertificatesDeleteCall) doRequest(alt string) (*http.Response, error) { +func (c *StoragePoolsDeleteCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) - var body io.Reader = nil c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/sslCertificates/{sslCertificate}") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/storagePools/{storagePool}") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("DELETE", urls, body) + req, err := http.NewRequest("DELETE", urls, nil) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "sslCertificate": c.sslCertificate, + "project": c.project, + "zone": c.zone, + "storagePool": c.storagePool, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.storagePools.delete", "request", internallog.HTTPRequest(req, nil)) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.sslCertificates.delete" call. +// Do executes the "compute.storagePools.delete" call. // 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 *SslCertificatesDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) { +func (c *StoragePoolsDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -31518,37 +52257,43 @@ func (c *SslCertificatesDeleteCall) Do(opts ...googleapi.CallOption) (*Operation }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.storagePools.delete", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type SslCertificatesGetCall struct { - s *Service - project string - sslCertificate string - urlParams_ gensupport.URLParams - ifNoneMatch_ string - ctx_ context.Context - header_ http.Header +type StoragePoolsGetCall struct { + s *Service + project string + zone string + storagePool string + urlParams_ gensupport.URLParams + ifNoneMatch_ string + ctx_ context.Context + header_ http.Header } -// Get: Returns the specified SslCertificate resource. +// Get: Returns a specified storage pool. Gets a list of available +// storage pools by making a list() request. // // - project: Project ID for this request. -// - sslCertificate: Name of the SslCertificate resource to return. -func (r *SslCertificatesService) Get(project string, sslCertificate string) *SslCertificatesGetCall { - c := &SslCertificatesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)} +// - storagePool: Name of the storage pool to return. +// - zone: The name of the zone for this request. +func (r *StoragePoolsService) Get(project string, zone string, storagePool string) *StoragePoolsGetCall { + c := &StoragePoolsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project - c.sslCertificate = sslCertificate + c.zone = zone + c.storagePool = storagePool return c } // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *SslCertificatesGetCall) Fields(s ...googleapi.Field) *SslCertificatesGetCall { +func (c *StoragePoolsGetCall) Fields(s ...googleapi.Field) *StoragePoolsGetCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } @@ -31556,54 +52301,55 @@ func (c *SslCertificatesGetCall) Fields(s ...googleapi.Field) *SslCertificatesGe // IfNoneMatch sets an 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. -func (c *SslCertificatesGetCall) IfNoneMatch(entityTag string) *SslCertificatesGetCall { +func (c *StoragePoolsGetCall) IfNoneMatch(entityTag string) *StoragePoolsGetCall { c.ifNoneMatch_ = entityTag return c } // Context sets the context to be used in this call's Do method. -func (c *SslCertificatesGetCall) Context(ctx context.Context) *SslCertificatesGetCall { +func (c *StoragePoolsGetCall) Context(ctx context.Context) *StoragePoolsGetCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *SslCertificatesGetCall) Header() http.Header { +func (c *StoragePoolsGetCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *SslCertificatesGetCall) doRequest(alt string) (*http.Response, error) { +func (c *StoragePoolsGetCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) if c.ifNoneMatch_ != "" { reqHeaders.Set("If-None-Match", c.ifNoneMatch_) } - var body io.Reader = nil c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/sslCertificates/{sslCertificate}") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/storagePools/{storagePool}") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("GET", urls, body) + req, err := http.NewRequest("GET", urls, nil) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "sslCertificate": c.sslCertificate, + "project": c.project, + "zone": c.zone, + "storagePool": c.storagePool, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.storagePools.get", "request", internallog.HTTPRequest(req, nil)) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.sslCertificates.get" call. +// Do executes the "compute.storagePools.get" call. // Any non-2xx status code is an error. Response headers are in either -// *SslCertificate.ServerResponse.Header or (if a response was returned at all) -// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check +// *StoragePool.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 *SslCertificatesGetCall) Do(opts ...googleapi.CallOption) (*SslCertificate, error) { +func (c *StoragePoolsGetCall) Do(opts ...googleapi.CallOption) (*StoragePool, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -31622,50 +52368,188 @@ func (c *SslCertificatesGetCall) Do(opts ...googleapi.CallOption) (*SslCertifica if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } - ret := &SslCertificate{ + ret := &StoragePool{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.storagePools.get", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type SslCertificatesInsertCall struct { - s *Service - project string - sslcertificate *SslCertificate - urlParams_ gensupport.URLParams - ctx_ context.Context - header_ http.Header +type StoragePoolsGetIamPolicyCall struct { + s *Service + project string + zone string + resource string + urlParams_ gensupport.URLParams + ifNoneMatch_ string + ctx_ context.Context + header_ http.Header } -// Insert: Creates a SslCertificate resource in the specified project using the -// data included in the request. +// GetIamPolicy: Gets the access control policy for a resource. May be empty if +// no such +// policy or resource exists. // // - project: Project ID for this request. -func (r *SslCertificatesService) Insert(project string, sslcertificate *SslCertificate) *SslCertificatesInsertCall { - c := &SslCertificatesInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)} +// - resource: Name or id of the resource for this request. +// - zone: The name of the zone for this request. +func (r *StoragePoolsService) GetIamPolicy(project string, zone string, resource string) *StoragePoolsGetIamPolicyCall { + c := &StoragePoolsGetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project - c.sslcertificate = sslcertificate + c.zone = zone + c.resource = resource + return c +} + +// OptionsRequestedPolicyVersion sets the optional parameter +// "optionsRequestedPolicyVersion": Requested IAM Policy version. +func (c *StoragePoolsGetIamPolicyCall) OptionsRequestedPolicyVersion(optionsRequestedPolicyVersion int64) *StoragePoolsGetIamPolicyCall { + c.urlParams_.Set("optionsRequestedPolicyVersion", fmt.Sprint(optionsRequestedPolicyVersion)) + return c +} + +// Fields allows partial responses to be retrieved. See +// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more +// details. +func (c *StoragePoolsGetIamPolicyCall) Fields(s ...googleapi.Field) *StoragePoolsGetIamPolicyCall { + c.urlParams_.Set("fields", googleapi.CombineFields(s)) + return c +} + +// IfNoneMatch sets an 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. +func (c *StoragePoolsGetIamPolicyCall) IfNoneMatch(entityTag string) *StoragePoolsGetIamPolicyCall { + c.ifNoneMatch_ = entityTag + return c +} + +// Context sets the context to be used in this call's Do method. +func (c *StoragePoolsGetIamPolicyCall) Context(ctx context.Context) *StoragePoolsGetIamPolicyCall { + c.ctx_ = ctx + return c +} + +// Header returns a http.Header that can be modified by the caller to add +// headers to the request. +func (c *StoragePoolsGetIamPolicyCall) Header() http.Header { + if c.header_ == nil { + c.header_ = make(http.Header) + } + return c.header_ +} + +func (c *StoragePoolsGetIamPolicyCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) + if c.ifNoneMatch_ != "" { + reqHeaders.Set("If-None-Match", c.ifNoneMatch_) + } + c.urlParams_.Set("alt", alt) + c.urlParams_.Set("prettyPrint", "false") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/storagePools/{resource}/getIamPolicy") + urls += "?" + c.urlParams_.Encode() + req, err := http.NewRequest("GET", urls, nil) + if err != nil { + return nil, err + } + req.Header = reqHeaders + googleapi.Expand(req.URL, map[string]string{ + "project": c.project, + "zone": c.zone, + "resource": c.resource, + }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.storagePools.getIamPolicy", "request", internallog.HTTPRequest(req, nil)) + return gensupport.SendRequest(c.ctx_, c.s.client, req) +} + +// Do executes the "compute.storagePools.getIamPolicy" call. +// Any non-2xx status code is an error. Response headers are in either +// *Policy.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 *StoragePoolsGetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, 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, gensupport.WrapError(&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, gensupport.WrapError(err) + } + ret := &Policy{ + ServerResponse: googleapi.ServerResponse{ + Header: res.Header, + HTTPStatusCode: res.StatusCode, + }, + } + target := &ret + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { + return nil, err + } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.storagePools.getIamPolicy", "response", internallog.HTTPResponse(res, b)) + return ret, nil +} + +type StoragePoolsInsertCall struct { + s *Service + project string + zone string + storagepool *StoragePool + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header +} + +// Insert: Creates a storage pool in the specified project using the data +// in the request. +// +// - project: Project ID for this request. +// - zone: The name of the zone for this request. +func (r *StoragePoolsService) Insert(project string, zone string, storagepool *StoragePool) *StoragePoolsInsertCall { + c := &StoragePoolsInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)} + c.project = project + c.zone = zone + c.storagepool = storagepool 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 *SslCertificatesInsertCall) RequestId(requestId string) *SslCertificatesInsertCall { +// 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 *StoragePoolsInsertCall) RequestId(requestId string) *StoragePoolsInsertCall { c.urlParams_.Set("requestId", requestId) return c } @@ -31673,36 +52557,35 @@ func (c *SslCertificatesInsertCall) RequestId(requestId string) *SslCertificates // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *SslCertificatesInsertCall) Fields(s ...googleapi.Field) *SslCertificatesInsertCall { +func (c *StoragePoolsInsertCall) Fields(s ...googleapi.Field) *StoragePoolsInsertCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } // Context sets the context to be used in this call's Do method. -func (c *SslCertificatesInsertCall) Context(ctx context.Context) *SslCertificatesInsertCall { +func (c *StoragePoolsInsertCall) Context(ctx context.Context) *StoragePoolsInsertCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *SslCertificatesInsertCall) Header() http.Header { +func (c *StoragePoolsInsertCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *SslCertificatesInsertCall) doRequest(alt string) (*http.Response, error) { +func (c *StoragePoolsInsertCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) - var body io.Reader = nil - body, err := googleapi.WithoutDataWrapper.JSONReader(c.sslcertificate) + body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.storagepool) if err != nil { return nil, err } c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/sslCertificates") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/storagePools") urls += "?" + c.urlParams_.Encode() req, err := http.NewRequest("POST", urls, body) if err != nil { @@ -31711,16 +52594,18 @@ func (c *SslCertificatesInsertCall) doRequest(alt string) (*http.Response, error req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ "project": c.project, + "zone": c.zone, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.storagePools.insert", "request", internallog.HTTPRequest(req, body.Bytes())) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.sslCertificates.insert" call. +// Do executes the "compute.storagePools.insert" call. // 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 *SslCertificatesInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) { +func (c *StoragePoolsInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -31746,105 +52631,160 @@ func (c *SslCertificatesInsertCall) Do(opts ...googleapi.CallOption) (*Operation }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.storagePools.insert", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type SslCertificatesListCall struct { +type StoragePoolsListCall struct { s *Service project string + zone string urlParams_ gensupport.URLParams ifNoneMatch_ string ctx_ context.Context header_ http.Header } -// List: Retrieves the list of SslCertificate resources available to the -// specified project. +// List: Retrieves a list of storage pools contained within +// the specified zone. // // - project: Project ID for this request. -func (r *SslCertificatesService) List(project string) *SslCertificatesListCall { - c := &SslCertificatesListCall{s: r.s, urlParams_: make(gensupport.URLParams)} +// - zone: The name of the zone for this request. +func (r *StoragePoolsService) List(project string, zone string) *StoragePoolsListCall { + c := &StoragePoolsListCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project + c.zone = zone return c } // Filter sets the optional parameter "filter": A filter expression that -// filters resources listed in the response. Most Compute resources support two -// types of filter expressions: expressions that support regular expressions -// and expressions that follow API improvement proposal AIP-160. These two -// types of filter expressions cannot be mixed in one request. If you want to -// use AIP-160, your expression must specify the field name, an operator, and -// the value that you want to use for filtering. The value must be a string, a -// number, or a boolean. The 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`. The `:*` comparison can be used to test whether a key has -// been defined. For example, to find all objects with `owner` label use: ``` -// labels.owner:* ``` 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) ``` If you want to use a regular -// expression, use the `eq` (equal) or `ne` (not equal) operator against a -// single un-parenthesized expression with or without quotes or against -// multiple parenthesized expressions. Examples: `fieldname eq unquoted -// literal` `fieldname eq 'single quoted literal'` `fieldname eq "double quoted -// literal" `(fieldname1 eq literal) (fieldname2 ne "literal")` The literal -// value is interpreted as a regular expression using Google RE2 library -// syntax. The literal value must match the entire field. For example, to -// filter for instances that do not end with name "instance", you would use -// `name ne .*instance`. You cannot combine constraints on multiple fields -// using regular expressions. -func (c *SslCertificatesListCall) Filter(filter string) *SslCertificatesListCall { +// filters resources listed in the response. Most +// Compute resources support two types of filter expressions: +// expressions that support regular expressions and expressions that follow +// API improvement proposal AIP-160. +// These two types of filter expressions cannot be mixed in one request. +// +// If you want to use AIP-160, your expression must specify the field name, +// an +// operator, and the value that you want to use for filtering. The value +// must be a string, a number, or a boolean. The 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`. +// +// The `:*` comparison can be used to test whether a key has been defined. +// For example, to find all objects with `owner` label +// use: +// ``` +// labels.owner:* +// ``` +// +// 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 onresource 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) +// ``` +// +// If you want to use a regular expression, use the `eq` (equal) or `ne` +// (not equal) operator against a single un-parenthesized expression with +// or +// without quotes or against multiple parenthesized expressions. +// Examples: +// +// `fieldname eq unquoted literal` +// `fieldname eq 'single quoted literal'` +// `fieldname eq "double quoted literal" +// `(fieldname1 eq literal) (fieldname2 ne "literal")` +// +// The literal value is interpreted as a regular expression using GoogleRE2 +// library syntax. +// The literal value must match the entire field. +// +// For example, to filter for instances that do not end with name +// "instance", +// you would use `name ne .*instance`. +// +// You cannot combine constraints on multiple fields using regular +// expressions. +func (c *StoragePoolsListCall) Filter(filter string) *StoragePoolsListCall { 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 *SslCertificatesListCall) MaxResults(maxResults int64) *SslCertificatesListCall { +// 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 *StoragePoolsListCall) MaxResults(maxResults int64) *StoragePoolsListCall { 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 *SslCertificatesListCall) OrderBy(orderBy string) *SslCertificatesListCall { +// 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 *StoragePoolsListCall) OrderBy(orderBy string) *StoragePoolsListCall { 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 *SslCertificatesListCall) PageToken(pageToken string) *SslCertificatesListCall { +// use. Set `pageToken` to the +// `nextPageToken` returned by a previous list request to get +// the next page of results. +func (c *StoragePoolsListCall) PageToken(pageToken string) *StoragePoolsListCall { c.urlParams_.Set("pageToken", pageToken) return c } // ReturnPartialSuccess sets the optional parameter "returnPartialSuccess": -// Opt-in for partial success behavior which provides partial results in case -// of failure. The default value is false. For example, when partial success -// behavior is enabled, aggregatedList for a single zone scope either returns -// all resources in the zone or no resources, with an error code. -func (c *SslCertificatesListCall) ReturnPartialSuccess(returnPartialSuccess bool) *SslCertificatesListCall { +// Opt-in for partial success behavior which provides partial results in +// case +// of failure. The default value is false. +// +// For example, when partial success behavior is enabled, aggregatedList for +// a +// single zone scope either returns all resources in the zone or no +// resources, +// with an error code. +func (c *StoragePoolsListCall) ReturnPartialSuccess(returnPartialSuccess bool) *StoragePoolsListCall { c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess)) return c } @@ -31852,7 +52792,7 @@ func (c *SslCertificatesListCall) ReturnPartialSuccess(returnPartialSuccess bool // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *SslCertificatesListCall) Fields(s ...googleapi.Field) *SslCertificatesListCall { +func (c *StoragePoolsListCall) Fields(s ...googleapi.Field) *StoragePoolsListCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } @@ -31860,54 +52800,55 @@ func (c *SslCertificatesListCall) Fields(s ...googleapi.Field) *SslCertificatesL // IfNoneMatch sets an 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. -func (c *SslCertificatesListCall) IfNoneMatch(entityTag string) *SslCertificatesListCall { +func (c *StoragePoolsListCall) IfNoneMatch(entityTag string) *StoragePoolsListCall { c.ifNoneMatch_ = entityTag return c } // Context sets the context to be used in this call's Do method. -func (c *SslCertificatesListCall) Context(ctx context.Context) *SslCertificatesListCall { +func (c *StoragePoolsListCall) Context(ctx context.Context) *StoragePoolsListCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *SslCertificatesListCall) Header() http.Header { +func (c *StoragePoolsListCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *SslCertificatesListCall) doRequest(alt string) (*http.Response, error) { +func (c *StoragePoolsListCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) if c.ifNoneMatch_ != "" { reqHeaders.Set("If-None-Match", c.ifNoneMatch_) } - var body io.Reader = nil c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/sslCertificates") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/storagePools") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("GET", urls, body) + req, err := http.NewRequest("GET", urls, nil) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ "project": c.project, + "zone": c.zone, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.storagePools.list", "request", internallog.HTTPRequest(req, nil)) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.sslCertificates.list" call. +// Do executes the "compute.storagePools.list" call. // Any non-2xx status code is an error. Response headers are in either -// *SslCertificateList.ServerResponse.Header or (if a response was returned at +// *StoragePoolList.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 *SslCertificatesListCall) Do(opts ...googleapi.CallOption) (*SslCertificateList, error) { +func (c *StoragePoolsListCall) Do(opts ...googleapi.CallOption) (*StoragePoolList, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -31926,23 +52867,25 @@ func (c *SslCertificatesListCall) Do(opts ...googleapi.CallOption) (*SslCertific if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } - ret := &SslCertificateList{ + ret := &StoragePoolList{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.storagePools.list", "response", internallog.HTTPResponse(res, b)) return ret, nil } // 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 *SslCertificatesListCall) Pages(ctx context.Context, f func(*SslCertificateList) error) error { +func (c *StoragePoolsListCall) Pages(ctx context.Context, f func(*StoragePoolList) error) error { c.ctx_ = ctx defer c.PageToken(c.urlParams_.Get("pageToken")) for { @@ -31960,129 +52903,162 @@ func (c *SslCertificatesListCall) Pages(ctx context.Context, f func(*SslCertific } } -type SslPoliciesAggregatedListCall struct { +type StoragePoolsListDisksCall struct { s *Service project string + zone string + storagePool string urlParams_ gensupport.URLParams ifNoneMatch_ string ctx_ context.Context header_ http.Header } -// AggregatedList: Retrieves the list of all SslPolicy resources, regional and -// global, available to the specified project. To prevent failure, Google -// recommends that you set the `returnPartialSuccess` parameter to `true`. +// ListDisks: Lists the disks in a specified storage pool. // -// - project: Name of the project scoping this request. -func (r *SslPoliciesService) AggregatedList(project string) *SslPoliciesAggregatedListCall { - c := &SslPoliciesAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)} +// - project: Project ID for this request. +// - storagePool: Name of the storage pool to list disks of. +// - zone: The name of the zone for this request. +func (r *StoragePoolsService) ListDisks(project string, zone string, storagePool string) *StoragePoolsListDisksCall { + c := &StoragePoolsListDisksCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project + c.zone = zone + c.storagePool = storagePool return c } // Filter sets the optional parameter "filter": A filter expression that -// filters resources listed in the response. Most Compute resources support two -// types of filter expressions: expressions that support regular expressions -// and expressions that follow API improvement proposal AIP-160. These two -// types of filter expressions cannot be mixed in one request. If you want to -// use AIP-160, your expression must specify the field name, an operator, and -// the value that you want to use for filtering. The value must be a string, a -// number, or a boolean. The 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`. The `:*` comparison can be used to test whether a key has -// been defined. For example, to find all objects with `owner` label use: ``` -// labels.owner:* ``` 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) ``` If you want to use a regular -// expression, use the `eq` (equal) or `ne` (not equal) operator against a -// single un-parenthesized expression with or without quotes or against -// multiple parenthesized expressions. Examples: `fieldname eq unquoted -// literal` `fieldname eq 'single quoted literal'` `fieldname eq "double quoted -// literal" `(fieldname1 eq literal) (fieldname2 ne "literal")` The literal -// value is interpreted as a regular expression using Google RE2 library -// syntax. The literal value must match the entire field. For example, to -// filter for instances that do not end with name "instance", you would use -// `name ne .*instance`. You cannot combine constraints on multiple fields -// using regular expressions. -func (c *SslPoliciesAggregatedListCall) Filter(filter string) *SslPoliciesAggregatedListCall { +// filters resources listed in the response. Most +// Compute resources support two types of filter expressions: +// expressions that support regular expressions and expressions that follow +// API improvement proposal AIP-160. +// These two types of filter expressions cannot be mixed in one request. +// +// If you want to use AIP-160, your expression must specify the field name, +// an +// operator, and the value that you want to use for filtering. The value +// must be a string, a number, or a boolean. The 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`. +// +// The `:*` comparison can be used to test whether a key has been defined. +// For example, to find all objects with `owner` label +// use: +// ``` +// labels.owner:* +// ``` +// +// 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 onresource 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) +// ``` +// +// If you want to use a regular expression, use the `eq` (equal) or `ne` +// (not equal) operator against a single un-parenthesized expression with +// or +// without quotes or against multiple parenthesized expressions. +// Examples: +// +// `fieldname eq unquoted literal` +// `fieldname eq 'single quoted literal'` +// `fieldname eq "double quoted literal" +// `(fieldname1 eq literal) (fieldname2 ne "literal")` +// +// The literal value is interpreted as a regular expression using GoogleRE2 +// library syntax. +// The literal value must match the entire field. +// +// For example, to filter for instances that do not end with name +// "instance", +// you would use `name ne .*instance`. +// +// You cannot combine constraints on multiple fields using regular +// expressions. +func (c *StoragePoolsListDisksCall) Filter(filter string) *StoragePoolsListDisksCall { c.urlParams_.Set("filter", filter) return c } -// IncludeAllScopes sets the optional parameter "includeAllScopes": Indicates -// whether every visible scope for each scope type (zone, region, global) -// should be included in the response. For new resource types added after this -// field, the flag has no effect as new resource types will always include -// every visible scope for each scope type in response. For resource types -// which predate this field, if this flag is omitted or false, only scopes of -// the scope types where the resource type is expected to be found will be -// included. -func (c *SslPoliciesAggregatedListCall) IncludeAllScopes(includeAllScopes bool) *SslPoliciesAggregatedListCall { - c.urlParams_.Set("includeAllScopes", fmt.Sprint(includeAllScopes)) - 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 *SslPoliciesAggregatedListCall) MaxResults(maxResults int64) *SslPoliciesAggregatedListCall { +// 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 *StoragePoolsListDisksCall) MaxResults(maxResults int64) *StoragePoolsListDisksCall { 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 *SslPoliciesAggregatedListCall) OrderBy(orderBy string) *SslPoliciesAggregatedListCall { +// 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 *StoragePoolsListDisksCall) OrderBy(orderBy string) *StoragePoolsListDisksCall { 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 *SslPoliciesAggregatedListCall) PageToken(pageToken string) *SslPoliciesAggregatedListCall { +// use. Set `pageToken` to the +// `nextPageToken` returned by a previous list request to get +// the next page of results. +func (c *StoragePoolsListDisksCall) PageToken(pageToken string) *StoragePoolsListDisksCall { c.urlParams_.Set("pageToken", pageToken) return c } // ReturnPartialSuccess sets the optional parameter "returnPartialSuccess": -// Opt-in for partial success behavior which provides partial results in case -// of failure. The default value is false. For example, when partial success -// behavior is enabled, aggregatedList for a single zone scope either returns -// all resources in the zone or no resources, with an error code. -func (c *SslPoliciesAggregatedListCall) ReturnPartialSuccess(returnPartialSuccess bool) *SslPoliciesAggregatedListCall { +// Opt-in for partial success behavior which provides partial results in +// case +// of failure. The default value is false. +// +// For example, when partial success behavior is enabled, aggregatedList for +// a +// single zone scope either returns all resources in the zone or no +// resources, +// with an error code. +func (c *StoragePoolsListDisksCall) ReturnPartialSuccess(returnPartialSuccess bool) *StoragePoolsListDisksCall { c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess)) return c } -// ServiceProjectNumber sets the optional parameter "serviceProjectNumber": The -// Shared VPC service project id or service project number for which aggregated -// list request is invoked for subnetworks list-usable api. -func (c *SslPoliciesAggregatedListCall) ServiceProjectNumber(serviceProjectNumber int64) *SslPoliciesAggregatedListCall { - c.urlParams_.Set("serviceProjectNumber", fmt.Sprint(serviceProjectNumber)) - return c -} - // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *SslPoliciesAggregatedListCall) Fields(s ...googleapi.Field) *SslPoliciesAggregatedListCall { +func (c *StoragePoolsListDisksCall) Fields(s ...googleapi.Field) *StoragePoolsListDisksCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } @@ -32090,54 +53066,56 @@ func (c *SslPoliciesAggregatedListCall) Fields(s ...googleapi.Field) *SslPolicie // IfNoneMatch sets an 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. -func (c *SslPoliciesAggregatedListCall) IfNoneMatch(entityTag string) *SslPoliciesAggregatedListCall { +func (c *StoragePoolsListDisksCall) IfNoneMatch(entityTag string) *StoragePoolsListDisksCall { c.ifNoneMatch_ = entityTag return c } // Context sets the context to be used in this call's Do method. -func (c *SslPoliciesAggregatedListCall) Context(ctx context.Context) *SslPoliciesAggregatedListCall { +func (c *StoragePoolsListDisksCall) Context(ctx context.Context) *StoragePoolsListDisksCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *SslPoliciesAggregatedListCall) Header() http.Header { +func (c *StoragePoolsListDisksCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *SslPoliciesAggregatedListCall) doRequest(alt string) (*http.Response, error) { +func (c *StoragePoolsListDisksCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) if c.ifNoneMatch_ != "" { reqHeaders.Set("If-None-Match", c.ifNoneMatch_) } - var body io.Reader = nil c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/aggregated/sslPolicies") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/storagePools/{storagePool}/listDisks") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("GET", urls, body) + req, err := http.NewRequest("GET", urls, nil) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, + "project": c.project, + "zone": c.zone, + "storagePool": c.storagePool, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.storagePools.listDisks", "request", internallog.HTTPRequest(req, nil)) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.sslPolicies.aggregatedList" call. +// Do executes the "compute.storagePools.listDisks" call. // Any non-2xx status code is an error. Response headers are in either -// *SslPoliciesAggregatedList.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 *SslPoliciesAggregatedListCall) Do(opts ...googleapi.CallOption) (*SslPoliciesAggregatedList, error) { +// *StoragePoolListDisks.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 *StoragePoolsListDisksCall) Do(opts ...googleapi.CallOption) (*StoragePoolListDisks, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -32156,23 +53134,25 @@ func (c *SslPoliciesAggregatedListCall) Do(opts ...googleapi.CallOption) (*SslPo if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } - ret := &SslPoliciesAggregatedList{ + ret := &StoragePoolListDisks{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.storagePools.listDisks", "response", internallog.HTTPResponse(res, b)) return ret, nil } // 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 *SslPoliciesAggregatedListCall) Pages(ctx context.Context, f func(*SslPoliciesAggregatedList) error) error { +func (c *StoragePoolsListDisksCall) Pages(ctx context.Context, f func(*StoragePoolListDisks) error) error { c.ctx_ = ctx defer c.PageToken(c.urlParams_.Get("pageToken")) for { @@ -32190,92 +53170,86 @@ func (c *SslPoliciesAggregatedListCall) Pages(ctx context.Context, f func(*SslPo } } -type SslPoliciesDeleteCall struct { - s *Service - project string - sslPolicy string - urlParams_ gensupport.URLParams - ctx_ context.Context - header_ http.Header +type StoragePoolsSetIamPolicyCall struct { + s *Service + project string + zone string + resource string + zonesetpolicyrequest *ZoneSetPolicyRequest + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header } -// Delete: Deletes the specified SSL policy. The SSL policy resource can be -// deleted only if it is not in use by any TargetHttpsProxy or TargetSslProxy -// resources. +// SetIamPolicy: Sets the access control policy on the specified +// resource. +// Replaces any existing policy. // -// - project: Project ID for this request. -// - sslPolicy: Name of the SSL policy to delete. The name must be 1-63 -// characters long, and comply with RFC1035. -func (r *SslPoliciesService) Delete(project string, sslPolicy string) *SslPoliciesDeleteCall { - c := &SslPoliciesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)} +// - project: Project ID for this request. +// - resource: Name or id of the resource for this request. +// - zone: The name of the zone for this request. +func (r *StoragePoolsService) SetIamPolicy(project string, zone string, resource string, zonesetpolicyrequest *ZoneSetPolicyRequest) *StoragePoolsSetIamPolicyCall { + c := &StoragePoolsSetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project - c.sslPolicy = sslPolicy - 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 *SslPoliciesDeleteCall) RequestId(requestId string) *SslPoliciesDeleteCall { - c.urlParams_.Set("requestId", requestId) + c.zone = zone + c.resource = resource + c.zonesetpolicyrequest = zonesetpolicyrequest return c } // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *SslPoliciesDeleteCall) Fields(s ...googleapi.Field) *SslPoliciesDeleteCall { +func (c *StoragePoolsSetIamPolicyCall) Fields(s ...googleapi.Field) *StoragePoolsSetIamPolicyCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } // Context sets the context to be used in this call's Do method. -func (c *SslPoliciesDeleteCall) Context(ctx context.Context) *SslPoliciesDeleteCall { +func (c *StoragePoolsSetIamPolicyCall) Context(ctx context.Context) *StoragePoolsSetIamPolicyCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *SslPoliciesDeleteCall) Header() http.Header { +func (c *StoragePoolsSetIamPolicyCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *SslPoliciesDeleteCall) doRequest(alt string) (*http.Response, error) { - reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) - var body io.Reader = nil +func (c *StoragePoolsSetIamPolicyCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) + body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.zonesetpolicyrequest) + if err != nil { + return nil, err + } c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/sslPolicies/{sslPolicy}") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/storagePools/{resource}/setIamPolicy") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("DELETE", urls, body) + req, err := http.NewRequest("POST", urls, body) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "sslPolicy": c.sslPolicy, + "project": c.project, + "zone": c.zone, + "resource": c.resource, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.storagePools.setIamPolicy", "request", internallog.HTTPRequest(req, body.Bytes())) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.sslPolicies.delete" call. +// Do executes the "compute.storagePools.setIamPolicy" call. // 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 +// *Policy.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 *SslPoliciesDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) { +func (c *StoragePoolsSetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -32294,100 +53268,101 @@ func (c *SslPoliciesDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, er if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } - ret := &Operation{ + ret := &Policy{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.storagePools.setIamPolicy", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type SslPoliciesGetCall struct { - s *Service - project string - sslPolicy string - urlParams_ gensupport.URLParams - ifNoneMatch_ string - ctx_ context.Context - header_ http.Header +type StoragePoolsTestIamPermissionsCall struct { + s *Service + project string + zone string + resource string + testpermissionsrequest *TestPermissionsRequest + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header } -// Get: Lists all of the ordered rules present in a single specified policy. +// TestIamPermissions: Returns permissions that a caller has on the specified +// resource. // -// - project: Project ID for this request. -// - sslPolicy: Name of the SSL policy to update. The name must be 1-63 -// characters long, and comply with RFC1035. -func (r *SslPoliciesService) Get(project string, sslPolicy string) *SslPoliciesGetCall { - c := &SslPoliciesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)} +// - project: Project ID for this request. +// - resource: Name or id of the resource for this request. +// - zone: The name of the zone for this request. +func (r *StoragePoolsService) TestIamPermissions(project string, zone string, resource string, testpermissionsrequest *TestPermissionsRequest) *StoragePoolsTestIamPermissionsCall { + c := &StoragePoolsTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project - c.sslPolicy = sslPolicy + c.zone = zone + c.resource = resource + c.testpermissionsrequest = testpermissionsrequest return c } // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *SslPoliciesGetCall) Fields(s ...googleapi.Field) *SslPoliciesGetCall { +func (c *StoragePoolsTestIamPermissionsCall) Fields(s ...googleapi.Field) *StoragePoolsTestIamPermissionsCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } -// IfNoneMatch sets an 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. -func (c *SslPoliciesGetCall) IfNoneMatch(entityTag string) *SslPoliciesGetCall { - c.ifNoneMatch_ = entityTag - return c -} - // Context sets the context to be used in this call's Do method. -func (c *SslPoliciesGetCall) Context(ctx context.Context) *SslPoliciesGetCall { +func (c *StoragePoolsTestIamPermissionsCall) Context(ctx context.Context) *StoragePoolsTestIamPermissionsCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *SslPoliciesGetCall) Header() http.Header { +func (c *StoragePoolsTestIamPermissionsCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *SslPoliciesGetCall) doRequest(alt string) (*http.Response, error) { - reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) - if c.ifNoneMatch_ != "" { - reqHeaders.Set("If-None-Match", c.ifNoneMatch_) +func (c *StoragePoolsTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) + body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.testpermissionsrequest) + if err != nil { + return nil, err } - var body io.Reader = nil c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/sslPolicies/{sslPolicy}") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/storagePools/{resource}/testIamPermissions") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("GET", urls, body) + req, err := http.NewRequest("POST", urls, body) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "sslPolicy": c.sslPolicy, + "project": c.project, + "zone": c.zone, + "resource": c.resource, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.storagePools.testIamPermissions", "request", internallog.HTTPRequest(req, body.Bytes())) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.sslPolicies.get" call. +// Do executes the "compute.storagePools.testIamPermissions" call. // Any non-2xx status code is an error. Response headers are in either -// *SslPolicy.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 *SslPoliciesGetCall) Do(opts ...googleapi.CallOption) (*SslPolicy, error) { +// *TestPermissionsResponse.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 *StoragePoolsTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -32406,104 +53381,135 @@ func (c *SslPoliciesGetCall) Do(opts ...googleapi.CallOption) (*SslPolicy, error if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } - ret := &SslPolicy{ + ret := &TestPermissionsResponse{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.storagePools.testIamPermissions", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type SslPoliciesInsertCall struct { - s *Service - project string - sslpolicy *SslPolicy - urlParams_ gensupport.URLParams - ctx_ context.Context - header_ http.Header +type StoragePoolsUpdateCall struct { + s *Service + project string + zone string + storagePool string + storagepool *StoragePool + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header } -// Insert: Returns the specified SSL policy resource. +// Update: Updates the specified storagePool with the data included in the +// request. +// The update is performed only on selected fields included as part +// of update-mask. Only the following fields can be +// modified: +// pool_provisioned_capacity_gb, pool_provisioned_iops +// and +// pool_provisioned_throughput. // // - project: Project ID for this request. -func (r *SslPoliciesService) Insert(project string, sslpolicy *SslPolicy) *SslPoliciesInsertCall { - c := &SslPoliciesInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)} +// - storagePool: The storagePool name for this request. +// - zone: The name of the zone for this request. +func (r *StoragePoolsService) Update(project string, zone string, storagePool string, storagepool *StoragePool) *StoragePoolsUpdateCall { + c := &StoragePoolsUpdateCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project - c.sslpolicy = sslpolicy + c.zone = zone + c.storagePool = storagePool + c.storagepool = storagepool 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 *SslPoliciesInsertCall) RequestId(requestId string) *SslPoliciesInsertCall { +// 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 *StoragePoolsUpdateCall) RequestId(requestId string) *StoragePoolsUpdateCall { c.urlParams_.Set("requestId", requestId) return c } +// UpdateMask sets the optional parameter "updateMask": update_mask indicates +// fields to be updated as part of this request. +func (c *StoragePoolsUpdateCall) UpdateMask(updateMask string) *StoragePoolsUpdateCall { + c.urlParams_.Set("updateMask", updateMask) + return c +} + // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *SslPoliciesInsertCall) Fields(s ...googleapi.Field) *SslPoliciesInsertCall { +func (c *StoragePoolsUpdateCall) Fields(s ...googleapi.Field) *StoragePoolsUpdateCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } // Context sets the context to be used in this call's Do method. -func (c *SslPoliciesInsertCall) Context(ctx context.Context) *SslPoliciesInsertCall { +func (c *StoragePoolsUpdateCall) Context(ctx context.Context) *StoragePoolsUpdateCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *SslPoliciesInsertCall) Header() http.Header { +func (c *StoragePoolsUpdateCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *SslPoliciesInsertCall) doRequest(alt string) (*http.Response, error) { +func (c *StoragePoolsUpdateCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) - var body io.Reader = nil - body, err := googleapi.WithoutDataWrapper.JSONReader(c.sslpolicy) + body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.storagepool) if err != nil { return nil, err } c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/sslPolicies") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/storagePools/{storagePool}") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("POST", urls, body) + req, err := http.NewRequest("PATCH", urls, body) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, + "project": c.project, + "zone": c.zone, + "storagePool": c.storagePool, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.storagePools.update", "request", internallog.HTTPRequest(req, body.Bytes())) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.sslPolicies.insert" call. +// Do executes the "compute.storagePools.update" call. // 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 *SslPoliciesInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) { +func (c *StoragePoolsUpdateCall) Do(opts ...googleapi.CallOption) (*Operation, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -32529,13 +53535,15 @@ func (c *SslPoliciesInsertCall) Do(opts ...googleapi.CallOption) (*Operation, er }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.storagePools.update", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type SslPoliciesListCall struct { +type SubnetworksAggregatedListCall struct { s *Service project string urlParams_ gensupport.URLParams @@ -32544,98 +53552,193 @@ type SslPoliciesListCall struct { header_ http.Header } -// List: Lists all the SSL policies that have been configured for the specified -// project. +// AggregatedList: Retrieves an aggregated list of subnetworks. +// +// To prevent failure, Google recommends that you set +// the +// `returnPartialSuccess` parameter to `true`. // // - project: Project ID for this request. -func (r *SslPoliciesService) List(project string) *SslPoliciesListCall { - c := &SslPoliciesListCall{s: r.s, urlParams_: make(gensupport.URLParams)} +func (r *SubnetworksService) AggregatedList(project string) *SubnetworksAggregatedListCall { + c := &SubnetworksAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project return c } // Filter sets the optional parameter "filter": A filter expression that -// filters resources listed in the response. Most Compute resources support two -// types of filter expressions: expressions that support regular expressions -// and expressions that follow API improvement proposal AIP-160. These two -// types of filter expressions cannot be mixed in one request. If you want to -// use AIP-160, your expression must specify the field name, an operator, and -// the value that you want to use for filtering. The value must be a string, a -// number, or a boolean. The 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`. The `:*` comparison can be used to test whether a key has -// been defined. For example, to find all objects with `owner` label use: ``` -// labels.owner:* ``` 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) ``` If you want to use a regular -// expression, use the `eq` (equal) or `ne` (not equal) operator against a -// single un-parenthesized expression with or without quotes or against -// multiple parenthesized expressions. Examples: `fieldname eq unquoted -// literal` `fieldname eq 'single quoted literal'` `fieldname eq "double quoted -// literal" `(fieldname1 eq literal) (fieldname2 ne "literal")` The literal -// value is interpreted as a regular expression using Google RE2 library -// syntax. The literal value must match the entire field. For example, to -// filter for instances that do not end with name "instance", you would use -// `name ne .*instance`. You cannot combine constraints on multiple fields -// using regular expressions. -func (c *SslPoliciesListCall) Filter(filter string) *SslPoliciesListCall { +// filters resources listed in the response. Most +// Compute resources support two types of filter expressions: +// expressions that support regular expressions and expressions that follow +// API improvement proposal AIP-160. +// These two types of filter expressions cannot be mixed in one request. +// +// If you want to use AIP-160, your expression must specify the field name, +// an +// operator, and the value that you want to use for filtering. The value +// must be a string, a number, or a boolean. The 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`. +// +// The `:*` comparison can be used to test whether a key has been defined. +// For example, to find all objects with `owner` label +// use: +// ``` +// labels.owner:* +// ``` +// +// 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 onresource 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) +// ``` +// +// If you want to use a regular expression, use the `eq` (equal) or `ne` +// (not equal) operator against a single un-parenthesized expression with +// or +// without quotes or against multiple parenthesized expressions. +// Examples: +// +// `fieldname eq unquoted literal` +// `fieldname eq 'single quoted literal'` +// `fieldname eq "double quoted literal" +// `(fieldname1 eq literal) (fieldname2 ne "literal")` +// +// The literal value is interpreted as a regular expression using GoogleRE2 +// library syntax. +// The literal value must match the entire field. +// +// For example, to filter for instances that do not end with name +// "instance", +// you would use `name ne .*instance`. +// +// You cannot combine constraints on multiple fields using regular +// expressions. +func (c *SubnetworksAggregatedListCall) Filter(filter string) *SubnetworksAggregatedListCall { c.urlParams_.Set("filter", filter) return c } +// IncludeAllScopes sets the optional parameter "includeAllScopes": Indicates +// whether every visible scope for each scope type (zone, region, +// global) should be included in the response. For new resource types +// added +// after this field, the flag has no effect as new resource types will +// always +// include every visible scope for each scope type in response. For +// resource +// types which predate this field, if this flag is omitted or false, +// only +// scopes of the scope types where the resource type is expected to be +// found +// will be included. +func (c *SubnetworksAggregatedListCall) IncludeAllScopes(includeAllScopes bool) *SubnetworksAggregatedListCall { + c.urlParams_.Set("includeAllScopes", fmt.Sprint(includeAllScopes)) + 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 *SslPoliciesListCall) MaxResults(maxResults int64) *SslPoliciesListCall { +// 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 *SubnetworksAggregatedListCall) MaxResults(maxResults int64) *SubnetworksAggregatedListCall { 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 *SslPoliciesListCall) OrderBy(orderBy string) *SslPoliciesListCall { +// 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 *SubnetworksAggregatedListCall) OrderBy(orderBy string) *SubnetworksAggregatedListCall { 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 *SslPoliciesListCall) PageToken(pageToken string) *SslPoliciesListCall { +// use. Set `pageToken` to the +// `nextPageToken` returned by a previous list request to get +// the next page of results. +func (c *SubnetworksAggregatedListCall) PageToken(pageToken string) *SubnetworksAggregatedListCall { c.urlParams_.Set("pageToken", pageToken) return c } // ReturnPartialSuccess sets the optional parameter "returnPartialSuccess": -// Opt-in for partial success behavior which provides partial results in case -// of failure. The default value is false. For example, when partial success -// behavior is enabled, aggregatedList for a single zone scope either returns -// all resources in the zone or no resources, with an error code. -func (c *SslPoliciesListCall) ReturnPartialSuccess(returnPartialSuccess bool) *SslPoliciesListCall { +// Opt-in for partial success behavior which provides partial results in +// case +// of failure. The default value is false. +// +// For example, when partial success behavior is enabled, aggregatedList for +// a +// single zone scope either returns all resources in the zone or no +// resources, +// with an error code. +func (c *SubnetworksAggregatedListCall) ReturnPartialSuccess(returnPartialSuccess bool) *SubnetworksAggregatedListCall { c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess)) return c } +// ServiceProjectNumber sets the optional parameter "serviceProjectNumber": The +// Shared VPC service project id or service project number for which +// aggregated list request is invoked for subnetworks list-usable api. +func (c *SubnetworksAggregatedListCall) ServiceProjectNumber(serviceProjectNumber int64) *SubnetworksAggregatedListCall { + c.urlParams_.Set("serviceProjectNumber", fmt.Sprint(serviceProjectNumber)) + return c +} + +// Views sets the optional parameter "views": Defines the extra views returned +// back in the subnetwork resource. +// Supported values: +// +// - WITH_UTILIZATION: Utilization data is included in the +// response. +// +// Possible values: +// +// "DEFAULT" +// "WITH_UTILIZATION" - Utilization data is included in the response. +func (c *SubnetworksAggregatedListCall) Views(views ...string) *SubnetworksAggregatedListCall { + c.urlParams_.SetMulti("views", append([]string{}, views...)) + return c +} + // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *SslPoliciesListCall) Fields(s ...googleapi.Field) *SslPoliciesListCall { +func (c *SubnetworksAggregatedListCall) Fields(s ...googleapi.Field) *SubnetworksAggregatedListCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } @@ -32643,37 +53746,36 @@ func (c *SslPoliciesListCall) Fields(s ...googleapi.Field) *SslPoliciesListCall // IfNoneMatch sets an 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. -func (c *SslPoliciesListCall) IfNoneMatch(entityTag string) *SslPoliciesListCall { +func (c *SubnetworksAggregatedListCall) IfNoneMatch(entityTag string) *SubnetworksAggregatedListCall { c.ifNoneMatch_ = entityTag return c } // Context sets the context to be used in this call's Do method. -func (c *SslPoliciesListCall) Context(ctx context.Context) *SslPoliciesListCall { +func (c *SubnetworksAggregatedListCall) Context(ctx context.Context) *SubnetworksAggregatedListCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *SslPoliciesListCall) Header() http.Header { +func (c *SubnetworksAggregatedListCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *SslPoliciesListCall) doRequest(alt string) (*http.Response, error) { +func (c *SubnetworksAggregatedListCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) if c.ifNoneMatch_ != "" { reqHeaders.Set("If-None-Match", c.ifNoneMatch_) } - var body io.Reader = nil c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/sslPolicies") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/aggregated/subnetworks") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("GET", urls, body) + req, err := http.NewRequest("GET", urls, nil) if err != nil { return nil, err } @@ -32681,16 +53783,17 @@ func (c *SslPoliciesListCall) doRequest(alt string) (*http.Response, error) { googleapi.Expand(req.URL, map[string]string{ "project": c.project, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.subnetworks.aggregatedList", "request", internallog.HTTPRequest(req, nil)) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.sslPolicies.list" call. +// Do executes the "compute.subnetworks.aggregatedList" call. // Any non-2xx status code is an error. Response headers are in either -// *SslPoliciesList.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 *SslPoliciesListCall) Do(opts ...googleapi.CallOption) (*SslPoliciesList, error) { +// *SubnetworkAggregatedList.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 *SubnetworksAggregatedListCall) Do(opts ...googleapi.CallOption) (*SubnetworkAggregatedList, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -32709,23 +53812,25 @@ func (c *SslPoliciesListCall) Do(opts ...googleapi.CallOption) (*SslPoliciesList if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } - ret := &SslPoliciesList{ + ret := &SubnetworkAggregatedList{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.subnetworks.aggregatedList", "response", internallog.HTTPResponse(res, b)) return ret, nil } // 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 *SslPoliciesListCall) Pages(ctx context.Context, f func(*SslPoliciesList) error) error { +func (c *SubnetworksAggregatedListCall) Pages(ctx context.Context, f func(*SubnetworkAggregatedList) error) error { c.ctx_ = ctx defer c.PageToken(c.urlParams_.Get("pageToken")) for { @@ -32743,162 +53848,100 @@ func (c *SslPoliciesListCall) Pages(ctx context.Context, f func(*SslPoliciesList } } -type SslPoliciesListAvailableFeaturesCall struct { - s *Service - project string - urlParams_ gensupport.URLParams - ifNoneMatch_ string - ctx_ context.Context - header_ http.Header +type SubnetworksDeleteCall struct { + s *Service + project string + region string + subnetwork string + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header } -// ListAvailableFeatures: Lists all features that can be specified in the SSL -// policy when using custom profile. +// Delete: Deletes the specified subnetwork. // // - project: Project ID for this request. -func (r *SslPoliciesService) ListAvailableFeatures(project string) *SslPoliciesListAvailableFeaturesCall { - c := &SslPoliciesListAvailableFeaturesCall{s: r.s, urlParams_: make(gensupport.URLParams)} +// - region: Name of the region scoping this request. +// - subnetwork: Name of the Subnetwork resource to delete. +func (r *SubnetworksService) Delete(project string, region string, subnetwork string) *SubnetworksDeleteCall { + c := &SubnetworksDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project + c.region = region + c.subnetwork = subnetwork return c } -// Filter sets the optional parameter "filter": A filter expression that -// filters resources listed in the response. Most Compute resources support two -// types of filter expressions: expressions that support regular expressions -// and expressions that follow API improvement proposal AIP-160. These two -// types of filter expressions cannot be mixed in one request. If you want to -// use AIP-160, your expression must specify the field name, an operator, and -// the value that you want to use for filtering. The value must be a string, a -// number, or a boolean. The 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`. The `:*` comparison can be used to test whether a key has -// been defined. For example, to find all objects with `owner` label use: ``` -// labels.owner:* ``` 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) ``` If you want to use a regular -// expression, use the `eq` (equal) or `ne` (not equal) operator against a -// single un-parenthesized expression with or without quotes or against -// multiple parenthesized expressions. Examples: `fieldname eq unquoted -// literal` `fieldname eq 'single quoted literal'` `fieldname eq "double quoted -// literal" `(fieldname1 eq literal) (fieldname2 ne "literal")` The literal -// value is interpreted as a regular expression using Google RE2 library -// syntax. The literal value must match the entire field. For example, to -// filter for instances that do not end with name "instance", you would use -// `name ne .*instance`. You cannot combine constraints on multiple fields -// using regular expressions. -func (c *SslPoliciesListAvailableFeaturesCall) Filter(filter string) *SslPoliciesListAvailableFeaturesCall { - 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 *SslPoliciesListAvailableFeaturesCall) MaxResults(maxResults int64) *SslPoliciesListAvailableFeaturesCall { - 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 *SslPoliciesListAvailableFeaturesCall) OrderBy(orderBy string) *SslPoliciesListAvailableFeaturesCall { - 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 *SslPoliciesListAvailableFeaturesCall) PageToken(pageToken string) *SslPoliciesListAvailableFeaturesCall { - c.urlParams_.Set("pageToken", pageToken) - return c -} - -// ReturnPartialSuccess sets the optional parameter "returnPartialSuccess": -// Opt-in for partial success behavior which provides partial results in case -// of failure. The default value is false. For example, when partial success -// behavior is enabled, aggregatedList for a single zone scope either returns -// all resources in the zone or no resources, with an error code. -func (c *SslPoliciesListAvailableFeaturesCall) ReturnPartialSuccess(returnPartialSuccess bool) *SslPoliciesListAvailableFeaturesCall { - c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess)) +// 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 *SubnetworksDeleteCall) RequestId(requestId string) *SubnetworksDeleteCall { + 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 // details. -func (c *SslPoliciesListAvailableFeaturesCall) Fields(s ...googleapi.Field) *SslPoliciesListAvailableFeaturesCall { +func (c *SubnetworksDeleteCall) Fields(s ...googleapi.Field) *SubnetworksDeleteCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } -// IfNoneMatch sets an 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. -func (c *SslPoliciesListAvailableFeaturesCall) IfNoneMatch(entityTag string) *SslPoliciesListAvailableFeaturesCall { - c.ifNoneMatch_ = entityTag - return c -} - // Context sets the context to be used in this call's Do method. -func (c *SslPoliciesListAvailableFeaturesCall) Context(ctx context.Context) *SslPoliciesListAvailableFeaturesCall { +func (c *SubnetworksDeleteCall) Context(ctx context.Context) *SubnetworksDeleteCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *SslPoliciesListAvailableFeaturesCall) Header() http.Header { +func (c *SubnetworksDeleteCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *SslPoliciesListAvailableFeaturesCall) doRequest(alt string) (*http.Response, error) { +func (c *SubnetworksDeleteCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) - if c.ifNoneMatch_ != "" { - reqHeaders.Set("If-None-Match", c.ifNoneMatch_) - } - var body io.Reader = nil c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/sslPolicies/listAvailableFeatures") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/subnetworks/{subnetwork}") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("GET", urls, body) + req, err := http.NewRequest("DELETE", urls, nil) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, + "project": c.project, + "region": c.region, + "subnetwork": c.subnetwork, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.subnetworks.delete", "request", internallog.HTTPRequest(req, nil)) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.sslPolicies.listAvailableFeatures" call. +// Do executes the "compute.subnetworks.delete" call. // Any non-2xx status code is an error. Response headers are in either -// *SslPoliciesListAvailableFeaturesResponse.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 *SslPoliciesListAvailableFeaturesCall) Do(opts ...googleapi.CallOption) (*SslPoliciesListAvailableFeaturesResponse, error) { +// *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 *SubnetworksDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -32917,54 +53960,65 @@ func (c *SslPoliciesListAvailableFeaturesCall) Do(opts ...googleapi.CallOption) if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } - ret := &SslPoliciesListAvailableFeaturesResponse{ + ret := &Operation{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.subnetworks.delete", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type SslPoliciesPatchCall struct { - s *Service - project string - sslPolicy string - sslpolicy *SslPolicy - urlParams_ gensupport.URLParams - ctx_ context.Context - header_ http.Header +type SubnetworksExpandIpCidrRangeCall struct { + s *Service + project string + region string + subnetwork string + subnetworksexpandipcidrrangerequest *SubnetworksExpandIpCidrRangeRequest + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header } -// Patch: Patches the specified SSL policy with the data included in the -// request. +// ExpandIpCidrRange: Expands the IP CIDR range of the subnetwork to a +// specified value. // -// - project: Project ID for this request. -// - sslPolicy: Name of the SSL policy to update. The name must be 1-63 -// characters long, and comply with RFC1035. -func (r *SslPoliciesService) Patch(project string, sslPolicy string, sslpolicy *SslPolicy) *SslPoliciesPatchCall { - c := &SslPoliciesPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)} +// - project: Project ID for this request. +// - region: Name of the region scoping this request. +// - subnetwork: Name of the Subnetwork resource to update. +func (r *SubnetworksService) ExpandIpCidrRange(project string, region string, subnetwork string, subnetworksexpandipcidrrangerequest *SubnetworksExpandIpCidrRangeRequest) *SubnetworksExpandIpCidrRangeCall { + c := &SubnetworksExpandIpCidrRangeCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project - c.sslPolicy = sslPolicy - c.sslpolicy = sslpolicy + c.region = region + c.subnetwork = subnetwork + c.subnetworksexpandipcidrrangerequest = subnetworksexpandipcidrrangerequest 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 *SslPoliciesPatchCall) RequestId(requestId string) *SslPoliciesPatchCall { +// 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 *SubnetworksExpandIpCidrRangeCall) RequestId(requestId string) *SubnetworksExpandIpCidrRangeCall { c.urlParams_.Set("requestId", requestId) return c } @@ -32972,55 +54026,56 @@ func (c *SslPoliciesPatchCall) RequestId(requestId string) *SslPoliciesPatchCall // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *SslPoliciesPatchCall) Fields(s ...googleapi.Field) *SslPoliciesPatchCall { +func (c *SubnetworksExpandIpCidrRangeCall) Fields(s ...googleapi.Field) *SubnetworksExpandIpCidrRangeCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } // Context sets the context to be used in this call's Do method. -func (c *SslPoliciesPatchCall) Context(ctx context.Context) *SslPoliciesPatchCall { +func (c *SubnetworksExpandIpCidrRangeCall) Context(ctx context.Context) *SubnetworksExpandIpCidrRangeCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *SslPoliciesPatchCall) Header() http.Header { +func (c *SubnetworksExpandIpCidrRangeCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *SslPoliciesPatchCall) doRequest(alt string) (*http.Response, error) { +func (c *SubnetworksExpandIpCidrRangeCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) - var body io.Reader = nil - body, err := googleapi.WithoutDataWrapper.JSONReader(c.sslpolicy) + body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.subnetworksexpandipcidrrangerequest) if err != nil { return nil, err } c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/sslPolicies/{sslPolicy}") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/subnetworks/{subnetwork}/expandIpCidrRange") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("PATCH", urls, body) + req, err := http.NewRequest("POST", urls, body) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "sslPolicy": c.sslPolicy, + "project": c.project, + "region": c.region, + "subnetwork": c.subnetwork, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.subnetworks.expandIpCidrRange", "request", internallog.HTTPRequest(req, body.Bytes())) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.sslPolicies.patch" call. +// Do executes the "compute.subnetworks.expandIpCidrRange" call. // 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 *SslPoliciesPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) { +func (c *SubnetworksExpandIpCidrRangeCall) Do(opts ...googleapi.CallOption) (*Operation, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -33046,135 +54101,184 @@ func (c *SslPoliciesPatchCall) Do(opts ...googleapi.CallOption) (*Operation, err }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.subnetworks.expandIpCidrRange", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type StoragePoolTypesAggregatedListCall struct { +type SubnetworksGetCall struct { s *Service project string + region string + subnetwork string urlParams_ gensupport.URLParams ifNoneMatch_ string ctx_ context.Context header_ http.Header } -// AggregatedList: Retrieves an aggregated list of storage pool types. To -// prevent failure, Google recommends that you set the `returnPartialSuccess` -// parameter to `true`. +// Get: Returns the specified subnetwork. // // - project: Project ID for this request. -func (r *StoragePoolTypesService) AggregatedList(project string) *StoragePoolTypesAggregatedListCall { - c := &StoragePoolTypesAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)} +// - region: Name of the region scoping this request. +// - subnetwork: Name of the Subnetwork resource to return. +func (r *SubnetworksService) Get(project string, region string, subnetwork string) *SubnetworksGetCall { + c := &SubnetworksGetCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project + c.region = region + c.subnetwork = subnetwork return c } -// Filter sets the optional parameter "filter": A filter expression that -// filters resources listed in the response. Most Compute resources support two -// types of filter expressions: expressions that support regular expressions -// and expressions that follow API improvement proposal AIP-160. These two -// types of filter expressions cannot be mixed in one request. If you want to -// use AIP-160, your expression must specify the field name, an operator, and -// the value that you want to use for filtering. The value must be a string, a -// number, or a boolean. The 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`. The `:*` comparison can be used to test whether a key has -// been defined. For example, to find all objects with `owner` label use: ``` -// labels.owner:* ``` 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) ``` If you want to use a regular -// expression, use the `eq` (equal) or `ne` (not equal) operator against a -// single un-parenthesized expression with or without quotes or against -// multiple parenthesized expressions. Examples: `fieldname eq unquoted -// literal` `fieldname eq 'single quoted literal'` `fieldname eq "double quoted -// literal" `(fieldname1 eq literal) (fieldname2 ne "literal")` The literal -// value is interpreted as a regular expression using Google RE2 library -// syntax. The literal value must match the entire field. For example, to -// filter for instances that do not end with name "instance", you would use -// `name ne .*instance`. You cannot combine constraints on multiple fields -// using regular expressions. -func (c *StoragePoolTypesAggregatedListCall) Filter(filter string) *StoragePoolTypesAggregatedListCall { - c.urlParams_.Set("filter", filter) +// Views sets the optional parameter "views": Defines the extra views returned +// back in the subnetwork resource. +// Supported values: +// +// - WITH_UTILIZATION: Utilization data is included in the +// response. +// +// Possible values: +// +// "DEFAULT" +// "WITH_UTILIZATION" - Utilization data is included in the response. +func (c *SubnetworksGetCall) Views(views ...string) *SubnetworksGetCall { + c.urlParams_.SetMulti("views", append([]string{}, views...)) return c } -// IncludeAllScopes sets the optional parameter "includeAllScopes": Indicates -// whether every visible scope for each scope type (zone, region, global) -// should be included in the response. For new resource types added after this -// field, the flag has no effect as new resource types will always include -// every visible scope for each scope type in response. For resource types -// which predate this field, if this flag is omitted or false, only scopes of -// the scope types where the resource type is expected to be found will be -// included. -func (c *StoragePoolTypesAggregatedListCall) IncludeAllScopes(includeAllScopes bool) *StoragePoolTypesAggregatedListCall { - c.urlParams_.Set("includeAllScopes", fmt.Sprint(includeAllScopes)) +// Fields allows partial responses to be retrieved. See +// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more +// details. +func (c *SubnetworksGetCall) Fields(s ...googleapi.Field) *SubnetworksGetCall { + c.urlParams_.Set("fields", googleapi.CombineFields(s)) 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 *StoragePoolTypesAggregatedListCall) MaxResults(maxResults int64) *StoragePoolTypesAggregatedListCall { - c.urlParams_.Set("maxResults", fmt.Sprint(maxResults)) +// IfNoneMatch sets an 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. +func (c *SubnetworksGetCall) IfNoneMatch(entityTag string) *SubnetworksGetCall { + c.ifNoneMatch_ = entityTag 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 *StoragePoolTypesAggregatedListCall) OrderBy(orderBy string) *StoragePoolTypesAggregatedListCall { - c.urlParams_.Set("orderBy", orderBy) +// Context sets the context to be used in this call's Do method. +func (c *SubnetworksGetCall) Context(ctx context.Context) *SubnetworksGetCall { + c.ctx_ = ctx 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 *StoragePoolTypesAggregatedListCall) PageToken(pageToken string) *StoragePoolTypesAggregatedListCall { - c.urlParams_.Set("pageToken", pageToken) - return c +// Header returns a http.Header that can be modified by the caller to add +// headers to the request. +func (c *SubnetworksGetCall) Header() http.Header { + if c.header_ == nil { + c.header_ = make(http.Header) + } + return c.header_ +} + +func (c *SubnetworksGetCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) + if c.ifNoneMatch_ != "" { + reqHeaders.Set("If-None-Match", c.ifNoneMatch_) + } + c.urlParams_.Set("alt", alt) + c.urlParams_.Set("prettyPrint", "false") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/subnetworks/{subnetwork}") + urls += "?" + c.urlParams_.Encode() + req, err := http.NewRequest("GET", urls, nil) + if err != nil { + return nil, err + } + req.Header = reqHeaders + googleapi.Expand(req.URL, map[string]string{ + "project": c.project, + "region": c.region, + "subnetwork": c.subnetwork, + }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.subnetworks.get", "request", internallog.HTTPRequest(req, nil)) + return gensupport.SendRequest(c.ctx_, c.s.client, req) +} + +// Do executes the "compute.subnetworks.get" call. +// Any non-2xx status code is an error. Response headers are in either +// *Subnetwork.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 *SubnetworksGetCall) Do(opts ...googleapi.CallOption) (*Subnetwork, 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, gensupport.WrapError(&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, gensupport.WrapError(err) + } + ret := &Subnetwork{ + ServerResponse: googleapi.ServerResponse{ + Header: res.Header, + HTTPStatusCode: res.StatusCode, + }, + } + target := &ret + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { + return nil, err + } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.subnetworks.get", "response", internallog.HTTPResponse(res, b)) + return ret, nil +} + +type SubnetworksGetIamPolicyCall struct { + s *Service + project string + region string + resource string + urlParams_ gensupport.URLParams + ifNoneMatch_ string + ctx_ context.Context + header_ http.Header } -// ReturnPartialSuccess sets the optional parameter "returnPartialSuccess": -// Opt-in for partial success behavior which provides partial results in case -// of failure. The default value is false. For example, when partial success -// behavior is enabled, aggregatedList for a single zone scope either returns -// all resources in the zone or no resources, with an error code. -func (c *StoragePoolTypesAggregatedListCall) ReturnPartialSuccess(returnPartialSuccess bool) *StoragePoolTypesAggregatedListCall { - c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess)) +// GetIamPolicy: Gets the access control policy for a resource. May be empty if +// no such +// policy or resource exists. +// +// - project: Project ID for this request. +// - region: The name of the region for this request. +// - resource: Name or id of the resource for this request. +func (r *SubnetworksService) GetIamPolicy(project string, region string, resource string) *SubnetworksGetIamPolicyCall { + c := &SubnetworksGetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)} + c.project = project + c.region = region + c.resource = resource return c } -// ServiceProjectNumber sets the optional parameter "serviceProjectNumber": The -// Shared VPC service project id or service project number for which aggregated -// list request is invoked for subnetworks list-usable api. -func (c *StoragePoolTypesAggregatedListCall) ServiceProjectNumber(serviceProjectNumber int64) *StoragePoolTypesAggregatedListCall { - c.urlParams_.Set("serviceProjectNumber", fmt.Sprint(serviceProjectNumber)) +// OptionsRequestedPolicyVersion sets the optional parameter +// "optionsRequestedPolicyVersion": Requested IAM Policy version. +func (c *SubnetworksGetIamPolicyCall) OptionsRequestedPolicyVersion(optionsRequestedPolicyVersion int64) *SubnetworksGetIamPolicyCall { + c.urlParams_.Set("optionsRequestedPolicyVersion", fmt.Sprint(optionsRequestedPolicyVersion)) return c } // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *StoragePoolTypesAggregatedListCall) Fields(s ...googleapi.Field) *StoragePoolTypesAggregatedListCall { +func (c *SubnetworksGetIamPolicyCall) Fields(s ...googleapi.Field) *SubnetworksGetIamPolicyCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } @@ -33182,54 +54286,55 @@ func (c *StoragePoolTypesAggregatedListCall) Fields(s ...googleapi.Field) *Stora // IfNoneMatch sets an 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. -func (c *StoragePoolTypesAggregatedListCall) IfNoneMatch(entityTag string) *StoragePoolTypesAggregatedListCall { +func (c *SubnetworksGetIamPolicyCall) IfNoneMatch(entityTag string) *SubnetworksGetIamPolicyCall { c.ifNoneMatch_ = entityTag return c } // Context sets the context to be used in this call's Do method. -func (c *StoragePoolTypesAggregatedListCall) Context(ctx context.Context) *StoragePoolTypesAggregatedListCall { +func (c *SubnetworksGetIamPolicyCall) Context(ctx context.Context) *SubnetworksGetIamPolicyCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *StoragePoolTypesAggregatedListCall) Header() http.Header { +func (c *SubnetworksGetIamPolicyCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *StoragePoolTypesAggregatedListCall) doRequest(alt string) (*http.Response, error) { +func (c *SubnetworksGetIamPolicyCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) if c.ifNoneMatch_ != "" { reqHeaders.Set("If-None-Match", c.ifNoneMatch_) } - var body io.Reader = nil c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/aggregated/storagePoolTypes") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/subnetworks/{resource}/getIamPolicy") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("GET", urls, body) + req, err := http.NewRequest("GET", urls, nil) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, + "project": c.project, + "region": c.region, + "resource": c.resource, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.subnetworks.getIamPolicy", "request", internallog.HTTPRequest(req, nil)) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.storagePoolTypes.aggregatedList" call. +// Do executes the "compute.subnetworks.getIamPolicy" call. // Any non-2xx status code is an error. Response headers are in either -// *StoragePoolTypeAggregatedList.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 *StoragePoolTypesAggregatedListCall) Do(opts ...googleapi.CallOption) (*StoragePoolTypeAggregatedList, error) { +// *Policy.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 *SubnetworksGetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -33248,125 +54353,119 @@ func (c *StoragePoolTypesAggregatedListCall) Do(opts ...googleapi.CallOption) (* if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } - ret := &StoragePoolTypeAggregatedList{ + ret := &Policy{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.subnetworks.getIamPolicy", "response", internallog.HTTPResponse(res, b)) return ret, nil } -// 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 *StoragePoolTypesAggregatedListCall) Pages(ctx context.Context, f func(*StoragePoolTypeAggregatedList) error) error { - c.ctx_ = ctx - defer c.PageToken(c.urlParams_.Get("pageToken")) - 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) - } -} - -type StoragePoolTypesGetCall struct { - s *Service - project string - zone string - storagePoolType string - urlParams_ gensupport.URLParams - ifNoneMatch_ string - ctx_ context.Context - header_ http.Header +type SubnetworksInsertCall struct { + s *Service + project string + region string + subnetwork *Subnetwork + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header } -// Get: Returns the specified storage pool type. +// Insert: Creates a subnetwork in the specified project using the +// data +// included in the request. // // - project: Project ID for this request. -// - storagePoolType: Name of the storage pool type to return. -// - zone: The name of the zone for this request. -func (r *StoragePoolTypesService) Get(project string, zone string, storagePoolType string) *StoragePoolTypesGetCall { - c := &StoragePoolTypesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)} +// - region: Name of the region scoping this request. +func (r *SubnetworksService) Insert(project string, region string, subnetwork *Subnetwork) *SubnetworksInsertCall { + c := &SubnetworksInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project - c.zone = zone - c.storagePoolType = storagePoolType + c.region = region + c.subnetwork = subnetwork + 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 *SubnetworksInsertCall) RequestId(requestId string) *SubnetworksInsertCall { + 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 // details. -func (c *StoragePoolTypesGetCall) Fields(s ...googleapi.Field) *StoragePoolTypesGetCall { +func (c *SubnetworksInsertCall) Fields(s ...googleapi.Field) *SubnetworksInsertCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } -// IfNoneMatch sets an 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. -func (c *StoragePoolTypesGetCall) IfNoneMatch(entityTag string) *StoragePoolTypesGetCall { - c.ifNoneMatch_ = entityTag - return c -} - // Context sets the context to be used in this call's Do method. -func (c *StoragePoolTypesGetCall) Context(ctx context.Context) *StoragePoolTypesGetCall { +func (c *SubnetworksInsertCall) Context(ctx context.Context) *SubnetworksInsertCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *StoragePoolTypesGetCall) Header() http.Header { +func (c *SubnetworksInsertCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *StoragePoolTypesGetCall) doRequest(alt string) (*http.Response, error) { - reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) - if c.ifNoneMatch_ != "" { - reqHeaders.Set("If-None-Match", c.ifNoneMatch_) +func (c *SubnetworksInsertCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) + body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.subnetwork) + if err != nil { + return nil, err } - var body io.Reader = nil c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/storagePoolTypes/{storagePoolType}") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/subnetworks") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("GET", urls, body) + req, err := http.NewRequest("POST", urls, body) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "zone": c.zone, - "storagePoolType": c.storagePoolType, + "project": c.project, + "region": c.region, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.subnetworks.insert", "request", internallog.HTTPRequest(req, body.Bytes())) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.storagePoolTypes.get" call. +// Do executes the "compute.subnetworks.insert" call. // Any non-2xx status code is an error. Response headers are in either -// *StoragePoolType.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 *StoragePoolTypesGetCall) Do(opts ...googleapi.CallOption) (*StoragePoolType, error) { +// *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 *SubnetworksInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -33385,123 +54484,191 @@ func (c *StoragePoolTypesGetCall) Do(opts ...googleapi.CallOption) (*StoragePool if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } - ret := &StoragePoolType{ + ret := &Operation{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.subnetworks.insert", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type StoragePoolTypesListCall struct { +type SubnetworksListCall struct { s *Service project string - zone string + region string urlParams_ gensupport.URLParams ifNoneMatch_ string ctx_ context.Context header_ http.Header } -// List: Retrieves a list of storage pool types available to the specified +// List: Retrieves a list of subnetworks available to the specified // project. // // - project: Project ID for this request. -// - zone: The name of the zone for this request. -func (r *StoragePoolTypesService) List(project string, zone string) *StoragePoolTypesListCall { - c := &StoragePoolTypesListCall{s: r.s, urlParams_: make(gensupport.URLParams)} +// - region: Name of the region scoping this request. +func (r *SubnetworksService) List(project string, region string) *SubnetworksListCall { + c := &SubnetworksListCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project - c.zone = zone + c.region = region return c } // Filter sets the optional parameter "filter": A filter expression that -// filters resources listed in the response. Most Compute resources support two -// types of filter expressions: expressions that support regular expressions -// and expressions that follow API improvement proposal AIP-160. These two -// types of filter expressions cannot be mixed in one request. If you want to -// use AIP-160, your expression must specify the field name, an operator, and -// the value that you want to use for filtering. The value must be a string, a -// number, or a boolean. The 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`. The `:*` comparison can be used to test whether a key has -// been defined. For example, to find all objects with `owner` label use: ``` -// labels.owner:* ``` 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) ``` If you want to use a regular -// expression, use the `eq` (equal) or `ne` (not equal) operator against a -// single un-parenthesized expression with or without quotes or against -// multiple parenthesized expressions. Examples: `fieldname eq unquoted -// literal` `fieldname eq 'single quoted literal'` `fieldname eq "double quoted -// literal" `(fieldname1 eq literal) (fieldname2 ne "literal")` The literal -// value is interpreted as a regular expression using Google RE2 library -// syntax. The literal value must match the entire field. For example, to -// filter for instances that do not end with name "instance", you would use -// `name ne .*instance`. You cannot combine constraints on multiple fields -// using regular expressions. -func (c *StoragePoolTypesListCall) Filter(filter string) *StoragePoolTypesListCall { +// filters resources listed in the response. Most +// Compute resources support two types of filter expressions: +// expressions that support regular expressions and expressions that follow +// API improvement proposal AIP-160. +// These two types of filter expressions cannot be mixed in one request. +// +// If you want to use AIP-160, your expression must specify the field name, +// an +// operator, and the value that you want to use for filtering. The value +// must be a string, a number, or a boolean. The 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`. +// +// The `:*` comparison can be used to test whether a key has been defined. +// For example, to find all objects with `owner` label +// use: +// ``` +// labels.owner:* +// ``` +// +// 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 onresource 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) +// ``` +// +// If you want to use a regular expression, use the `eq` (equal) or `ne` +// (not equal) operator against a single un-parenthesized expression with +// or +// without quotes or against multiple parenthesized expressions. +// Examples: +// +// `fieldname eq unquoted literal` +// `fieldname eq 'single quoted literal'` +// `fieldname eq "double quoted literal" +// `(fieldname1 eq literal) (fieldname2 ne "literal")` +// +// The literal value is interpreted as a regular expression using GoogleRE2 +// library syntax. +// The literal value must match the entire field. +// +// For example, to filter for instances that do not end with name +// "instance", +// you would use `name ne .*instance`. +// +// You cannot combine constraints on multiple fields using regular +// expressions. +func (c *SubnetworksListCall) Filter(filter string) *SubnetworksListCall { 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 *StoragePoolTypesListCall) MaxResults(maxResults int64) *StoragePoolTypesListCall { +// 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 *SubnetworksListCall) MaxResults(maxResults int64) *SubnetworksListCall { 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 *StoragePoolTypesListCall) OrderBy(orderBy string) *StoragePoolTypesListCall { +// 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 *SubnetworksListCall) OrderBy(orderBy string) *SubnetworksListCall { 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 *StoragePoolTypesListCall) PageToken(pageToken string) *StoragePoolTypesListCall { +// use. Set `pageToken` to the +// `nextPageToken` returned by a previous list request to get +// the next page of results. +func (c *SubnetworksListCall) PageToken(pageToken string) *SubnetworksListCall { c.urlParams_.Set("pageToken", pageToken) return c } // ReturnPartialSuccess sets the optional parameter "returnPartialSuccess": -// Opt-in for partial success behavior which provides partial results in case -// of failure. The default value is false. For example, when partial success -// behavior is enabled, aggregatedList for a single zone scope either returns -// all resources in the zone or no resources, with an error code. -func (c *StoragePoolTypesListCall) ReturnPartialSuccess(returnPartialSuccess bool) *StoragePoolTypesListCall { +// Opt-in for partial success behavior which provides partial results in +// case +// of failure. The default value is false. +// +// For example, when partial success behavior is enabled, aggregatedList for +// a +// single zone scope either returns all resources in the zone or no +// resources, +// with an error code. +func (c *SubnetworksListCall) ReturnPartialSuccess(returnPartialSuccess bool) *SubnetworksListCall { c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess)) return c } +// Views sets the optional parameter "views": Defines the extra views returned +// back in the subnetwork resource. +// Supported values: +// +// - WITH_UTILIZATION: Utilization data is included in the +// response. +// +// Possible values: +// +// "DEFAULT" +// "WITH_UTILIZATION" - Utilization data is included in the response. +func (c *SubnetworksListCall) Views(views ...string) *SubnetworksListCall { + c.urlParams_.SetMulti("views", append([]string{}, views...)) + return c +} + // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *StoragePoolTypesListCall) Fields(s ...googleapi.Field) *StoragePoolTypesListCall { +func (c *SubnetworksListCall) Fields(s ...googleapi.Field) *SubnetworksListCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } @@ -33509,55 +54676,54 @@ func (c *StoragePoolTypesListCall) Fields(s ...googleapi.Field) *StoragePoolType // IfNoneMatch sets an 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. -func (c *StoragePoolTypesListCall) IfNoneMatch(entityTag string) *StoragePoolTypesListCall { +func (c *SubnetworksListCall) IfNoneMatch(entityTag string) *SubnetworksListCall { c.ifNoneMatch_ = entityTag return c } // Context sets the context to be used in this call's Do method. -func (c *StoragePoolTypesListCall) Context(ctx context.Context) *StoragePoolTypesListCall { +func (c *SubnetworksListCall) Context(ctx context.Context) *SubnetworksListCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *StoragePoolTypesListCall) Header() http.Header { +func (c *SubnetworksListCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *StoragePoolTypesListCall) doRequest(alt string) (*http.Response, error) { +func (c *SubnetworksListCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) if c.ifNoneMatch_ != "" { reqHeaders.Set("If-None-Match", c.ifNoneMatch_) } - var body io.Reader = nil c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/storagePoolTypes") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/subnetworks") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("GET", urls, body) + req, err := http.NewRequest("GET", urls, nil) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ "project": c.project, - "zone": c.zone, + "region": c.region, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.subnetworks.list", "request", internallog.HTTPRequest(req, nil)) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.storagePoolTypes.list" call. +// Do executes the "compute.subnetworks.list" call. // Any non-2xx status code is an error. Response headers are in either -// *StoragePoolTypeList.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 *StoragePoolTypesListCall) Do(opts ...googleapi.CallOption) (*StoragePoolTypeList, error) { +// *SubnetworkList.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 *SubnetworksListCall) Do(opts ...googleapi.CallOption) (*SubnetworkList, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -33576,23 +54742,25 @@ func (c *StoragePoolTypesListCall) Do(opts ...googleapi.CallOption) (*StoragePoo if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } - ret := &StoragePoolTypeList{ + ret := &SubnetworkList{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.subnetworks.list", "response", internallog.HTTPResponse(res, b)) return ret, nil } // 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 *StoragePoolTypesListCall) Pages(ctx context.Context, f func(*StoragePoolTypeList) error) error { +func (c *SubnetworksListCall) Pages(ctx context.Context, f func(*SubnetworkList) error) error { c.ctx_ = ctx defer c.PageToken(c.urlParams_.Get("pageToken")) for { @@ -33610,7 +54778,7 @@ func (c *StoragePoolTypesListCall) Pages(ctx context.Context, f func(*StoragePoo } } -type StoragePoolsAggregatedListCall struct { +type SubnetworksListUsableCall struct { s *Service project string urlParams_ gensupport.URLParams @@ -33619,120 +54787,157 @@ type StoragePoolsAggregatedListCall struct { header_ http.Header } -// AggregatedList: Retrieves an aggregated list of storage pools. To prevent -// failure, Google recommends that you set the `returnPartialSuccess` parameter -// to `true`. +// ListUsable: Retrieves an aggregated list of all usable subnetworks in the +// project. // // - project: Project ID for this request. -func (r *StoragePoolsService) AggregatedList(project string) *StoragePoolsAggregatedListCall { - c := &StoragePoolsAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)} +func (r *SubnetworksService) ListUsable(project string) *SubnetworksListUsableCall { + c := &SubnetworksListUsableCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project return c } // Filter sets the optional parameter "filter": A filter expression that -// filters resources listed in the response. Most Compute resources support two -// types of filter expressions: expressions that support regular expressions -// and expressions that follow API improvement proposal AIP-160. These two -// types of filter expressions cannot be mixed in one request. If you want to -// use AIP-160, your expression must specify the field name, an operator, and -// the value that you want to use for filtering. The value must be a string, a -// number, or a boolean. The 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`. The `:*` comparison can be used to test whether a key has -// been defined. For example, to find all objects with `owner` label use: ``` -// labels.owner:* ``` 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) ``` If you want to use a regular -// expression, use the `eq` (equal) or `ne` (not equal) operator against a -// single un-parenthesized expression with or without quotes or against -// multiple parenthesized expressions. Examples: `fieldname eq unquoted -// literal` `fieldname eq 'single quoted literal'` `fieldname eq "double quoted -// literal" `(fieldname1 eq literal) (fieldname2 ne "literal")` The literal -// value is interpreted as a regular expression using Google RE2 library -// syntax. The literal value must match the entire field. For example, to -// filter for instances that do not end with name "instance", you would use -// `name ne .*instance`. You cannot combine constraints on multiple fields -// using regular expressions. -func (c *StoragePoolsAggregatedListCall) Filter(filter string) *StoragePoolsAggregatedListCall { +// filters resources listed in the response. Most +// Compute resources support two types of filter expressions: +// expressions that support regular expressions and expressions that follow +// API improvement proposal AIP-160. +// These two types of filter expressions cannot be mixed in one request. +// +// If you want to use AIP-160, your expression must specify the field name, +// an +// operator, and the value that you want to use for filtering. The value +// must be a string, a number, or a boolean. The 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`. +// +// The `:*` comparison can be used to test whether a key has been defined. +// For example, to find all objects with `owner` label +// use: +// ``` +// labels.owner:* +// ``` +// +// 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 onresource 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) +// ``` +// +// If you want to use a regular expression, use the `eq` (equal) or `ne` +// (not equal) operator against a single un-parenthesized expression with +// or +// without quotes or against multiple parenthesized expressions. +// Examples: +// +// `fieldname eq unquoted literal` +// `fieldname eq 'single quoted literal'` +// `fieldname eq "double quoted literal" +// `(fieldname1 eq literal) (fieldname2 ne "literal")` +// +// The literal value is interpreted as a regular expression using GoogleRE2 +// library syntax. +// The literal value must match the entire field. +// +// For example, to filter for instances that do not end with name +// "instance", +// you would use `name ne .*instance`. +// +// You cannot combine constraints on multiple fields using regular +// expressions. +func (c *SubnetworksListUsableCall) Filter(filter string) *SubnetworksListUsableCall { c.urlParams_.Set("filter", filter) return c } -// IncludeAllScopes sets the optional parameter "includeAllScopes": Indicates -// whether every visible scope for each scope type (zone, region, global) -// should be included in the response. For new resource types added after this -// field, the flag has no effect as new resource types will always include -// every visible scope for each scope type in response. For resource types -// which predate this field, if this flag is omitted or false, only scopes of -// the scope types where the resource type is expected to be found will be -// included. -func (c *StoragePoolsAggregatedListCall) IncludeAllScopes(includeAllScopes bool) *StoragePoolsAggregatedListCall { - c.urlParams_.Set("includeAllScopes", fmt.Sprint(includeAllScopes)) - 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 *StoragePoolsAggregatedListCall) MaxResults(maxResults int64) *StoragePoolsAggregatedListCall { +// 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 *SubnetworksListUsableCall) MaxResults(maxResults int64) *SubnetworksListUsableCall { 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 *StoragePoolsAggregatedListCall) OrderBy(orderBy string) *StoragePoolsAggregatedListCall { +// 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 *SubnetworksListUsableCall) OrderBy(orderBy string) *SubnetworksListUsableCall { 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 *StoragePoolsAggregatedListCall) PageToken(pageToken string) *StoragePoolsAggregatedListCall { +// use. Set `pageToken` to the +// `nextPageToken` returned by a previous list request to get +// the next page of results. +func (c *SubnetworksListUsableCall) PageToken(pageToken string) *SubnetworksListUsableCall { c.urlParams_.Set("pageToken", pageToken) return c } // ReturnPartialSuccess sets the optional parameter "returnPartialSuccess": -// Opt-in for partial success behavior which provides partial results in case -// of failure. The default value is false. For example, when partial success -// behavior is enabled, aggregatedList for a single zone scope either returns -// all resources in the zone or no resources, with an error code. -func (c *StoragePoolsAggregatedListCall) ReturnPartialSuccess(returnPartialSuccess bool) *StoragePoolsAggregatedListCall { +// Opt-in for partial success behavior which provides partial results in +// case +// of failure. The default value is false. +// +// For example, when partial success behavior is enabled, aggregatedList for +// a +// single zone scope either returns all resources in the zone or no +// resources, +// with an error code. +func (c *SubnetworksListUsableCall) ReturnPartialSuccess(returnPartialSuccess bool) *SubnetworksListUsableCall { c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess)) return c } -// ServiceProjectNumber sets the optional parameter "serviceProjectNumber": The -// Shared VPC service project id or service project number for which aggregated -// list request is invoked for subnetworks list-usable api. -func (c *StoragePoolsAggregatedListCall) ServiceProjectNumber(serviceProjectNumber int64) *StoragePoolsAggregatedListCall { - c.urlParams_.Set("serviceProjectNumber", fmt.Sprint(serviceProjectNumber)) +// ServiceProject sets the optional parameter "serviceProject": The project id +// or project number in which the subnetwork is intended to be +// used. Only applied for Shared VPC. See Shared VPC +// documentation (https://cloud.google.com/vpc/docs/shared-vpc/) +func (c *SubnetworksListUsableCall) ServiceProject(serviceProject string) *SubnetworksListUsableCall { + c.urlParams_.Set("serviceProject", serviceProject) return c } // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *StoragePoolsAggregatedListCall) Fields(s ...googleapi.Field) *StoragePoolsAggregatedListCall { +func (c *SubnetworksListUsableCall) Fields(s ...googleapi.Field) *SubnetworksListUsableCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } @@ -33740,37 +54945,36 @@ func (c *StoragePoolsAggregatedListCall) Fields(s ...googleapi.Field) *StoragePo // IfNoneMatch sets an 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. -func (c *StoragePoolsAggregatedListCall) IfNoneMatch(entityTag string) *StoragePoolsAggregatedListCall { +func (c *SubnetworksListUsableCall) IfNoneMatch(entityTag string) *SubnetworksListUsableCall { c.ifNoneMatch_ = entityTag return c } // Context sets the context to be used in this call's Do method. -func (c *StoragePoolsAggregatedListCall) Context(ctx context.Context) *StoragePoolsAggregatedListCall { +func (c *SubnetworksListUsableCall) Context(ctx context.Context) *SubnetworksListUsableCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *StoragePoolsAggregatedListCall) Header() http.Header { +func (c *SubnetworksListUsableCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *StoragePoolsAggregatedListCall) doRequest(alt string) (*http.Response, error) { +func (c *SubnetworksListUsableCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) if c.ifNoneMatch_ != "" { reqHeaders.Set("If-None-Match", c.ifNoneMatch_) } - var body io.Reader = nil c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/aggregated/storagePools") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/aggregated/subnetworks/listUsable") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("GET", urls, body) + req, err := http.NewRequest("GET", urls, nil) if err != nil { return nil, err } @@ -33778,16 +54982,17 @@ func (c *StoragePoolsAggregatedListCall) doRequest(alt string) (*http.Response, googleapi.Expand(req.URL, map[string]string{ "project": c.project, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.subnetworks.listUsable", "request", internallog.HTTPRequest(req, nil)) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.storagePools.aggregatedList" call. +// Do executes the "compute.subnetworks.listUsable" call. // Any non-2xx status code is an error. Response headers are in either -// *StoragePoolAggregatedList.ServerResponse.Header or (if a response was +// *UsableSubnetworksAggregatedList.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 *StoragePoolsAggregatedListCall) Do(opts ...googleapi.CallOption) (*StoragePoolAggregatedList, error) { +func (c *SubnetworksListUsableCall) Do(opts ...googleapi.CallOption) (*UsableSubnetworksAggregatedList, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -33806,23 +55011,25 @@ func (c *StoragePoolsAggregatedListCall) Do(opts ...googleapi.CallOption) (*Stor if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } - ret := &StoragePoolAggregatedList{ + ret := &UsableSubnetworksAggregatedList{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.subnetworks.listUsable", "response", internallog.HTTPResponse(res, b)) return ret, nil } // 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 *StoragePoolsAggregatedListCall) Pages(ctx context.Context, f func(*StoragePoolAggregatedList) error) error { +func (c *SubnetworksListUsableCall) Pages(ctx context.Context, f func(*UsableSubnetworksAggregatedList) error) error { c.ctx_ = ctx defer c.PageToken(c.urlParams_.Get("pageToken")) for { @@ -33840,335 +55047,126 @@ func (c *StoragePoolsAggregatedListCall) Pages(ctx context.Context, f func(*Stor } } -type StoragePoolsDeleteCall struct { +type SubnetworksPatchCall struct { s *Service project string - zone string - storagePool string - urlParams_ gensupport.URLParams - ctx_ context.Context - header_ http.Header -} - -// Delete: Deletes the specified storage pool. Deleting a storagePool removes -// its data permanently and is irreversible. However, deleting a storagePool -// does not delete any snapshots previously made from the storagePool. You must -// separately delete snapshots. -// -// - project: Project ID for this request. -// - storagePool: Name of the storage pool to delete. -// - zone: The name of the zone for this request. -func (r *StoragePoolsService) Delete(project string, zone string, storagePool string) *StoragePoolsDeleteCall { - c := &StoragePoolsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)} - c.project = project - c.zone = zone - c.storagePool = storagePool - 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 *StoragePoolsDeleteCall) RequestId(requestId string) *StoragePoolsDeleteCall { - 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 -// details. -func (c *StoragePoolsDeleteCall) Fields(s ...googleapi.Field) *StoragePoolsDeleteCall { - c.urlParams_.Set("fields", googleapi.CombineFields(s)) - return c -} - -// Context sets the context to be used in this call's Do method. -func (c *StoragePoolsDeleteCall) Context(ctx context.Context) *StoragePoolsDeleteCall { - c.ctx_ = ctx - return c -} - -// Header returns a http.Header that can be modified by the caller to add -// headers to the request. -func (c *StoragePoolsDeleteCall) Header() http.Header { - if c.header_ == nil { - c.header_ = make(http.Header) - } - return c.header_ -} - -func (c *StoragePoolsDeleteCall) doRequest(alt string) (*http.Response, error) { - reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) - var body io.Reader = nil - c.urlParams_.Set("alt", alt) - c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/storagePools/{storagePool}") - urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("DELETE", urls, body) - if err != nil { - return nil, err - } - req.Header = reqHeaders - googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "zone": c.zone, - "storagePool": c.storagePool, - }) - return gensupport.SendRequest(c.ctx_, c.s.client, req) -} - -// Do executes the "compute.storagePools.delete" call. -// 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 *StoragePoolsDeleteCall) 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, gensupport.WrapError(&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, gensupport.WrapError(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 -} - -type StoragePoolsGetCall struct { - s *Service - project string - zone string - storagePool string - urlParams_ gensupport.URLParams - ifNoneMatch_ string - ctx_ context.Context - header_ http.Header -} - -// Get: Returns a specified storage pool. Gets a list of available storage -// pools by making a list() request. -// -// - project: Project ID for this request. -// - storagePool: Name of the storage pool to return. -// - zone: The name of the zone for this request. -func (r *StoragePoolsService) Get(project string, zone string, storagePool string) *StoragePoolsGetCall { - c := &StoragePoolsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)} - c.project = project - c.zone = zone - c.storagePool = storagePool - return c -} - -// Fields allows partial responses to be retrieved. See -// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more -// details. -func (c *StoragePoolsGetCall) Fields(s ...googleapi.Field) *StoragePoolsGetCall { - c.urlParams_.Set("fields", googleapi.CombineFields(s)) - return c -} - -// IfNoneMatch sets an 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. -func (c *StoragePoolsGetCall) IfNoneMatch(entityTag string) *StoragePoolsGetCall { - c.ifNoneMatch_ = entityTag - return c -} - -// Context sets the context to be used in this call's Do method. -func (c *StoragePoolsGetCall) Context(ctx context.Context) *StoragePoolsGetCall { - c.ctx_ = ctx - return c -} - -// Header returns a http.Header that can be modified by the caller to add -// headers to the request. -func (c *StoragePoolsGetCall) Header() http.Header { - if c.header_ == nil { - c.header_ = make(http.Header) - } - return c.header_ -} - -func (c *StoragePoolsGetCall) doRequest(alt string) (*http.Response, error) { - reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) - if c.ifNoneMatch_ != "" { - reqHeaders.Set("If-None-Match", c.ifNoneMatch_) - } - var body io.Reader = nil - c.urlParams_.Set("alt", alt) - c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/storagePools/{storagePool}") - urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("GET", urls, body) - if err != nil { - return nil, err - } - req.Header = reqHeaders - googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "zone": c.zone, - "storagePool": c.storagePool, - }) - return gensupport.SendRequest(c.ctx_, c.s.client, req) -} - -// Do executes the "compute.storagePools.get" call. -// Any non-2xx status code is an error. Response headers are in either -// *StoragePool.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 *StoragePoolsGetCall) Do(opts ...googleapi.CallOption) (*StoragePool, 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, gensupport.WrapError(&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, gensupport.WrapError(err) - } - ret := &StoragePool{ - 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 -} - -type StoragePoolsGetIamPolicyCall struct { - s *Service - project string - zone string - resource string - urlParams_ gensupport.URLParams - ifNoneMatch_ string - ctx_ context.Context - header_ http.Header + region string + subnetwork string + subnetwork2 *Subnetwork + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header } -// GetIamPolicy: Gets the access control policy for a resource. May be empty if -// no such policy or resource exists. +// Patch: Patches the specified subnetwork with the data included in the +// request. +// Only certain fields can be updated with a patch request +// as indicated in the field descriptions. +// You must specify the current fingerprint of the +// subnetwork resource being patched. // // - project: Project ID for this request. -// - resource: Name or id of the resource for this request. -// - zone: The name of the zone for this request. -func (r *StoragePoolsService) GetIamPolicy(project string, zone string, resource string) *StoragePoolsGetIamPolicyCall { - c := &StoragePoolsGetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)} +// - region: Name of the region scoping this request. +// - subnetwork: Name of the Subnetwork resource to patch. +func (r *SubnetworksService) Patch(project string, region string, subnetwork string, subnetwork2 *Subnetwork) *SubnetworksPatchCall { + c := &SubnetworksPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project - c.zone = zone - c.resource = resource + c.region = region + c.subnetwork = subnetwork + c.subnetwork2 = subnetwork2 return c } -// OptionsRequestedPolicyVersion sets the optional parameter -// "optionsRequestedPolicyVersion": Requested IAM Policy version. -func (c *StoragePoolsGetIamPolicyCall) OptionsRequestedPolicyVersion(optionsRequestedPolicyVersion int64) *StoragePoolsGetIamPolicyCall { - c.urlParams_.Set("optionsRequestedPolicyVersion", fmt.Sprint(optionsRequestedPolicyVersion)) +// DrainTimeoutSeconds sets the optional parameter "drainTimeoutSeconds": The +// drain timeout specifies the upper bound in seconds on the amount of +// time allowed to drain connections from the current ACTIVE subnetwork +// to the current BACKUP subnetwork. The drain timeout is only applicable +// when the following conditions are true: +// - the subnetwork being patched has purpose = INTERNAL_HTTPS_LOAD_BALANCER +// - the subnetwork being patched has role = BACKUP +// - the patch request is setting the role to ACTIVE. Note that after this +// patch operation the roles of the ACTIVE and BACKUP subnetworks will be +// swapped. +func (c *SubnetworksPatchCall) DrainTimeoutSeconds(drainTimeoutSeconds int64) *SubnetworksPatchCall { + c.urlParams_.Set("drainTimeoutSeconds", fmt.Sprint(drainTimeoutSeconds)) + 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 *SubnetworksPatchCall) RequestId(requestId string) *SubnetworksPatchCall { + 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 // details. -func (c *StoragePoolsGetIamPolicyCall) Fields(s ...googleapi.Field) *StoragePoolsGetIamPolicyCall { +func (c *SubnetworksPatchCall) Fields(s ...googleapi.Field) *SubnetworksPatchCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } -// IfNoneMatch sets an 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. -func (c *StoragePoolsGetIamPolicyCall) IfNoneMatch(entityTag string) *StoragePoolsGetIamPolicyCall { - c.ifNoneMatch_ = entityTag - return c -} - // Context sets the context to be used in this call's Do method. -func (c *StoragePoolsGetIamPolicyCall) Context(ctx context.Context) *StoragePoolsGetIamPolicyCall { +func (c *SubnetworksPatchCall) Context(ctx context.Context) *SubnetworksPatchCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *StoragePoolsGetIamPolicyCall) Header() http.Header { +func (c *SubnetworksPatchCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *StoragePoolsGetIamPolicyCall) doRequest(alt string) (*http.Response, error) { - reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) - if c.ifNoneMatch_ != "" { - reqHeaders.Set("If-None-Match", c.ifNoneMatch_) +func (c *SubnetworksPatchCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) + body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.subnetwork2) + if err != nil { + return nil, err } - var body io.Reader = nil c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/storagePools/{resource}/getIamPolicy") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/subnetworks/{subnetwork}") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("GET", urls, body) + req, err := http.NewRequest("PATCH", urls, body) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "zone": c.zone, - "resource": c.resource, + "project": c.project, + "region": c.region, + "subnetwork": c.subnetwork, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.subnetworks.patch", "request", internallog.HTTPRequest(req, body.Bytes())) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.storagePools.getIamPolicy" call. +// Do executes the "compute.subnetworks.patch" call. // Any non-2xx status code is an error. Response headers are in either -// *Policy.ServerResponse.Header or (if a response was returned at all) in +// *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 *StoragePoolsGetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, error) { +func (c *SubnetworksPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -34187,90 +55185,80 @@ func (c *StoragePoolsGetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } - ret := &Policy{ + ret := &Operation{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.subnetworks.patch", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type StoragePoolsInsertCall struct { - s *Service - project string - zone string - storagepool *StoragePool - urlParams_ gensupport.URLParams - ctx_ context.Context - header_ http.Header +type SubnetworksSetIamPolicyCall struct { + s *Service + project string + region string + resource string + regionsetpolicyrequest *RegionSetPolicyRequest + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header } -// Insert: Creates a storage pool in the specified project using the data in -// the request. +// SetIamPolicy: Sets the access control policy on the specified +// resource. +// Replaces any existing policy. // // - project: Project ID for this request. -// - zone: The name of the zone for this request. -func (r *StoragePoolsService) Insert(project string, zone string, storagepool *StoragePool) *StoragePoolsInsertCall { - c := &StoragePoolsInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)} +// - region: The name of the region for this request. +// - resource: Name or id of the resource for this request. +func (r *SubnetworksService) SetIamPolicy(project string, region string, resource string, regionsetpolicyrequest *RegionSetPolicyRequest) *SubnetworksSetIamPolicyCall { + c := &SubnetworksSetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project - c.zone = zone - c.storagepool = storagepool - 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 *StoragePoolsInsertCall) RequestId(requestId string) *StoragePoolsInsertCall { - c.urlParams_.Set("requestId", requestId) + c.region = region + c.resource = resource + c.regionsetpolicyrequest = regionsetpolicyrequest return c } // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *StoragePoolsInsertCall) Fields(s ...googleapi.Field) *StoragePoolsInsertCall { +func (c *SubnetworksSetIamPolicyCall) Fields(s ...googleapi.Field) *SubnetworksSetIamPolicyCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } // Context sets the context to be used in this call's Do method. -func (c *StoragePoolsInsertCall) Context(ctx context.Context) *StoragePoolsInsertCall { +func (c *SubnetworksSetIamPolicyCall) Context(ctx context.Context) *SubnetworksSetIamPolicyCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *StoragePoolsInsertCall) Header() http.Header { +func (c *SubnetworksSetIamPolicyCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *StoragePoolsInsertCall) doRequest(alt string) (*http.Response, error) { +func (c *SubnetworksSetIamPolicyCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) - var body io.Reader = nil - body, err := googleapi.WithoutDataWrapper.JSONReader(c.storagepool) + body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.regionsetpolicyrequest) if err != nil { return nil, err } c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/storagePools") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/subnetworks/{resource}/setIamPolicy") urls += "?" + c.urlParams_.Encode() req, err := http.NewRequest("POST", urls, body) if err != nil { @@ -34278,18 +55266,20 @@ func (c *StoragePoolsInsertCall) doRequest(alt string) (*http.Response, error) { } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "zone": c.zone, + "project": c.project, + "region": c.region, + "resource": c.resource, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.subnetworks.setIamPolicy", "request", internallog.HTTPRequest(req, body.Bytes())) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.storagePools.insert" call. +// Do executes the "compute.subnetworks.setIamPolicy" call. // 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 +// *Policy.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 *StoragePoolsInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) { +func (c *SubnetworksSetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -34308,178 +55298,123 @@ func (c *StoragePoolsInsertCall) Do(opts ...googleapi.CallOption) (*Operation, e if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } - ret := &Operation{ + ret := &Policy{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.subnetworks.setIamPolicy", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type StoragePoolsListCall struct { - s *Service - project string - zone string - urlParams_ gensupport.URLParams - ifNoneMatch_ string - ctx_ context.Context - header_ http.Header +type SubnetworksSetPrivateIpGoogleAccessCall struct { + s *Service + project string + region string + subnetwork string + subnetworkssetprivateipgoogleaccessrequest *SubnetworksSetPrivateIpGoogleAccessRequest + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header } -// List: Retrieves a list of storage pools contained within the specified zone. +// SetPrivateIpGoogleAccess: Set whether VMs in this subnet can access Google +// services without assigning +// external IP addresses through Private Google Access. // // - project: Project ID for this request. -// - zone: The name of the zone for this request. -func (r *StoragePoolsService) List(project string, zone string) *StoragePoolsListCall { - c := &StoragePoolsListCall{s: r.s, urlParams_: make(gensupport.URLParams)} +// - region: Name of the region scoping this request. +// - subnetwork: Name of the Subnetwork resource. +func (r *SubnetworksService) SetPrivateIpGoogleAccess(project string, region string, subnetwork string, subnetworkssetprivateipgoogleaccessrequest *SubnetworksSetPrivateIpGoogleAccessRequest) *SubnetworksSetPrivateIpGoogleAccessCall { + c := &SubnetworksSetPrivateIpGoogleAccessCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project - c.zone = zone - return c -} - -// Filter sets the optional parameter "filter": A filter expression that -// filters resources listed in the response. Most Compute resources support two -// types of filter expressions: expressions that support regular expressions -// and expressions that follow API improvement proposal AIP-160. These two -// types of filter expressions cannot be mixed in one request. If you want to -// use AIP-160, your expression must specify the field name, an operator, and -// the value that you want to use for filtering. The value must be a string, a -// number, or a boolean. The 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`. The `:*` comparison can be used to test whether a key has -// been defined. For example, to find all objects with `owner` label use: ``` -// labels.owner:* ``` 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) ``` If you want to use a regular -// expression, use the `eq` (equal) or `ne` (not equal) operator against a -// single un-parenthesized expression with or without quotes or against -// multiple parenthesized expressions. Examples: `fieldname eq unquoted -// literal` `fieldname eq 'single quoted literal'` `fieldname eq "double quoted -// literal" `(fieldname1 eq literal) (fieldname2 ne "literal")` The literal -// value is interpreted as a regular expression using Google RE2 library -// syntax. The literal value must match the entire field. For example, to -// filter for instances that do not end with name "instance", you would use -// `name ne .*instance`. You cannot combine constraints on multiple fields -// using regular expressions. -func (c *StoragePoolsListCall) Filter(filter string) *StoragePoolsListCall { - 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 *StoragePoolsListCall) MaxResults(maxResults int64) *StoragePoolsListCall { - 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 *StoragePoolsListCall) OrderBy(orderBy string) *StoragePoolsListCall { - 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 *StoragePoolsListCall) PageToken(pageToken string) *StoragePoolsListCall { - c.urlParams_.Set("pageToken", pageToken) + c.region = region + c.subnetwork = subnetwork + c.subnetworkssetprivateipgoogleaccessrequest = subnetworkssetprivateipgoogleaccessrequest return c } -// ReturnPartialSuccess sets the optional parameter "returnPartialSuccess": -// Opt-in for partial success behavior which provides partial results in case -// of failure. The default value is false. For example, when partial success -// behavior is enabled, aggregatedList for a single zone scope either returns -// all resources in the zone or no resources, with an error code. -func (c *StoragePoolsListCall) ReturnPartialSuccess(returnPartialSuccess bool) *StoragePoolsListCall { - c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess)) +// 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 *SubnetworksSetPrivateIpGoogleAccessCall) RequestId(requestId string) *SubnetworksSetPrivateIpGoogleAccessCall { + 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 // details. -func (c *StoragePoolsListCall) Fields(s ...googleapi.Field) *StoragePoolsListCall { +func (c *SubnetworksSetPrivateIpGoogleAccessCall) Fields(s ...googleapi.Field) *SubnetworksSetPrivateIpGoogleAccessCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } -// IfNoneMatch sets an 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. -func (c *StoragePoolsListCall) IfNoneMatch(entityTag string) *StoragePoolsListCall { - c.ifNoneMatch_ = entityTag - return c -} - // Context sets the context to be used in this call's Do method. -func (c *StoragePoolsListCall) Context(ctx context.Context) *StoragePoolsListCall { +func (c *SubnetworksSetPrivateIpGoogleAccessCall) Context(ctx context.Context) *SubnetworksSetPrivateIpGoogleAccessCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *StoragePoolsListCall) Header() http.Header { +func (c *SubnetworksSetPrivateIpGoogleAccessCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *StoragePoolsListCall) doRequest(alt string) (*http.Response, error) { - reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) - if c.ifNoneMatch_ != "" { - reqHeaders.Set("If-None-Match", c.ifNoneMatch_) +func (c *SubnetworksSetPrivateIpGoogleAccessCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) + body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.subnetworkssetprivateipgoogleaccessrequest) + if err != nil { + return nil, err } - var body io.Reader = nil c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/storagePools") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/subnetworks/{subnetwork}/setPrivateIpGoogleAccess") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("GET", urls, body) + req, err := http.NewRequest("POST", urls, body) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "zone": c.zone, + "project": c.project, + "region": c.region, + "subnetwork": c.subnetwork, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.subnetworks.setPrivateIpGoogleAccess", "request", internallog.HTTPRequest(req, body.Bytes())) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.storagePools.list" call. +// Do executes the "compute.subnetworks.setPrivateIpGoogleAccess" call. // Any non-2xx status code is an error. Response headers are in either -// *StoragePoolList.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 *StoragePoolsListCall) Do(opts ...googleapi.CallOption) (*StoragePoolList, error) { +// *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 *SubnetworksSetPrivateIpGoogleAccessCall) Do(opts ...googleapi.CallOption) (*Operation, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -34498,203 +55433,101 @@ func (c *StoragePoolsListCall) Do(opts ...googleapi.CallOption) (*StoragePoolLis if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } - ret := &StoragePoolList{ + ret := &Operation{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.subnetworks.setPrivateIpGoogleAccess", "response", internallog.HTTPResponse(res, b)) return ret, nil } -// 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 *StoragePoolsListCall) Pages(ctx context.Context, f func(*StoragePoolList) error) error { - c.ctx_ = ctx - defer c.PageToken(c.urlParams_.Get("pageToken")) - 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) - } -} - -type StoragePoolsListDisksCall struct { - s *Service - project string - zone string - storagePool string - urlParams_ gensupport.URLParams - ifNoneMatch_ string - ctx_ context.Context - header_ http.Header +type SubnetworksTestIamPermissionsCall struct { + s *Service + project string + region string + resource string + testpermissionsrequest *TestPermissionsRequest + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header } -// ListDisks: Lists the disks in a specified storage pool. +// TestIamPermissions: Returns permissions that a caller has on the specified +// resource. // // - project: Project ID for this request. -// - storagePool: Name of the storage pool to list disks of. -// - zone: The name of the zone for this request. -func (r *StoragePoolsService) ListDisks(project string, zone string, storagePool string) *StoragePoolsListDisksCall { - c := &StoragePoolsListDisksCall{s: r.s, urlParams_: make(gensupport.URLParams)} +// - region: The name of the region for this request. +// - resource: Name or id of the resource for this request. +func (r *SubnetworksService) TestIamPermissions(project string, region string, resource string, testpermissionsrequest *TestPermissionsRequest) *SubnetworksTestIamPermissionsCall { + c := &SubnetworksTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project - c.zone = zone - c.storagePool = storagePool - return c -} - -// Filter sets the optional parameter "filter": A filter expression that -// filters resources listed in the response. Most Compute resources support two -// types of filter expressions: expressions that support regular expressions -// and expressions that follow API improvement proposal AIP-160. These two -// types of filter expressions cannot be mixed in one request. If you want to -// use AIP-160, your expression must specify the field name, an operator, and -// the value that you want to use for filtering. The value must be a string, a -// number, or a boolean. The 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`. The `:*` comparison can be used to test whether a key has -// been defined. For example, to find all objects with `owner` label use: ``` -// labels.owner:* ``` 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) ``` If you want to use a regular -// expression, use the `eq` (equal) or `ne` (not equal) operator against a -// single un-parenthesized expression with or without quotes or against -// multiple parenthesized expressions. Examples: `fieldname eq unquoted -// literal` `fieldname eq 'single quoted literal'` `fieldname eq "double quoted -// literal" `(fieldname1 eq literal) (fieldname2 ne "literal")` The literal -// value is interpreted as a regular expression using Google RE2 library -// syntax. The literal value must match the entire field. For example, to -// filter for instances that do not end with name "instance", you would use -// `name ne .*instance`. You cannot combine constraints on multiple fields -// using regular expressions. -func (c *StoragePoolsListDisksCall) Filter(filter string) *StoragePoolsListDisksCall { - 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 *StoragePoolsListDisksCall) MaxResults(maxResults int64) *StoragePoolsListDisksCall { - 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 *StoragePoolsListDisksCall) OrderBy(orderBy string) *StoragePoolsListDisksCall { - 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 *StoragePoolsListDisksCall) PageToken(pageToken string) *StoragePoolsListDisksCall { - c.urlParams_.Set("pageToken", pageToken) - return c -} - -// ReturnPartialSuccess sets the optional parameter "returnPartialSuccess": -// Opt-in for partial success behavior which provides partial results in case -// of failure. The default value is false. For example, when partial success -// behavior is enabled, aggregatedList for a single zone scope either returns -// all resources in the zone or no resources, with an error code. -func (c *StoragePoolsListDisksCall) ReturnPartialSuccess(returnPartialSuccess bool) *StoragePoolsListDisksCall { - c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess)) + c.region = region + c.resource = resource + c.testpermissionsrequest = testpermissionsrequest return c } // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *StoragePoolsListDisksCall) Fields(s ...googleapi.Field) *StoragePoolsListDisksCall { +func (c *SubnetworksTestIamPermissionsCall) Fields(s ...googleapi.Field) *SubnetworksTestIamPermissionsCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } -// IfNoneMatch sets an 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. -func (c *StoragePoolsListDisksCall) IfNoneMatch(entityTag string) *StoragePoolsListDisksCall { - c.ifNoneMatch_ = entityTag - return c -} - // Context sets the context to be used in this call's Do method. -func (c *StoragePoolsListDisksCall) Context(ctx context.Context) *StoragePoolsListDisksCall { +func (c *SubnetworksTestIamPermissionsCall) Context(ctx context.Context) *SubnetworksTestIamPermissionsCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *StoragePoolsListDisksCall) Header() http.Header { +func (c *SubnetworksTestIamPermissionsCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *StoragePoolsListDisksCall) doRequest(alt string) (*http.Response, error) { - reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) - if c.ifNoneMatch_ != "" { - reqHeaders.Set("If-None-Match", c.ifNoneMatch_) +func (c *SubnetworksTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) + body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.testpermissionsrequest) + if err != nil { + return nil, err } - var body io.Reader = nil c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/storagePools/{storagePool}/listDisks") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/subnetworks/{resource}/testIamPermissions") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("GET", urls, body) + req, err := http.NewRequest("POST", urls, body) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "zone": c.zone, - "storagePool": c.storagePool, + "project": c.project, + "region": c.region, + "resource": c.resource, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.subnetworks.testIamPermissions", "request", internallog.HTTPRequest(req, body.Bytes())) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.storagePools.listDisks" call. +// Do executes the "compute.subnetworks.testIamPermissions" call. // Any non-2xx status code is an error. Response headers are in either -// *StoragePoolListDisks.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 *StoragePoolsListDisksCall) Do(opts ...googleapi.CallOption) (*StoragePoolListDisks, error) { +// *TestPermissionsResponse.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 *SubnetworksTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -34713,119 +55546,111 @@ func (c *StoragePoolsListDisksCall) Do(opts ...googleapi.CallOption) (*StoragePo if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } - ret := &StoragePoolListDisks{ + ret := &TestPermissionsResponse{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.subnetworks.testIamPermissions", "response", internallog.HTTPResponse(res, b)) return ret, nil } -// 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 *StoragePoolsListDisksCall) Pages(ctx context.Context, f func(*StoragePoolListDisks) error) error { - c.ctx_ = ctx - defer c.PageToken(c.urlParams_.Get("pageToken")) - 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) - } -} - -type StoragePoolsSetIamPolicyCall struct { - s *Service - project string - zone string - resource string - zonesetpolicyrequest *ZoneSetPolicyRequest - urlParams_ gensupport.URLParams - ctx_ context.Context - header_ http.Header +type TargetGrpcProxiesDeleteCall struct { + s *Service + project string + targetGrpcProxy string + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header } -// SetIamPolicy: Sets the access control policy on the specified resource. -// Replaces any existing policy. +// Delete: Deletes the specified TargetGrpcProxy in the given scope // // - project: Project ID for this request. -// - resource: Name or id of the resource for this request. -// - zone: The name of the zone for this request. -func (r *StoragePoolsService) SetIamPolicy(project string, zone string, resource string, zonesetpolicyrequest *ZoneSetPolicyRequest) *StoragePoolsSetIamPolicyCall { - c := &StoragePoolsSetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)} +// - targetGrpcProxy: Name of the TargetGrpcProxy resource to delete. +func (r *TargetGrpcProxiesService) Delete(project string, targetGrpcProxy string) *TargetGrpcProxiesDeleteCall { + c := &TargetGrpcProxiesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project - c.zone = zone - c.resource = resource - c.zonesetpolicyrequest = zonesetpolicyrequest + c.targetGrpcProxy = targetGrpcProxy + 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 *TargetGrpcProxiesDeleteCall) RequestId(requestId string) *TargetGrpcProxiesDeleteCall { + 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 // details. -func (c *StoragePoolsSetIamPolicyCall) Fields(s ...googleapi.Field) *StoragePoolsSetIamPolicyCall { +func (c *TargetGrpcProxiesDeleteCall) Fields(s ...googleapi.Field) *TargetGrpcProxiesDeleteCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } // Context sets the context to be used in this call's Do method. -func (c *StoragePoolsSetIamPolicyCall) Context(ctx context.Context) *StoragePoolsSetIamPolicyCall { +func (c *TargetGrpcProxiesDeleteCall) Context(ctx context.Context) *TargetGrpcProxiesDeleteCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *StoragePoolsSetIamPolicyCall) Header() http.Header { +func (c *TargetGrpcProxiesDeleteCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *StoragePoolsSetIamPolicyCall) doRequest(alt string) (*http.Response, error) { - reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) - var body io.Reader = nil - body, err := googleapi.WithoutDataWrapper.JSONReader(c.zonesetpolicyrequest) - if err != nil { - return nil, err - } +func (c *TargetGrpcProxiesDeleteCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/storagePools/{resource}/setIamPolicy") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/targetGrpcProxies/{targetGrpcProxy}") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("POST", urls, body) + req, err := http.NewRequest("DELETE", urls, nil) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "zone": c.zone, - "resource": c.resource, + "project": c.project, + "targetGrpcProxy": c.targetGrpcProxy, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.targetGrpcProxies.delete", "request", internallog.HTTPRequest(req, nil)) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.storagePools.setIamPolicy" call. +// Do executes the "compute.targetGrpcProxies.delete" call. // Any non-2xx status code is an error. Response headers are in either -// *Policy.ServerResponse.Header or (if a response was returned at all) in +// *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 *StoragePoolsSetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, error) { +func (c *TargetGrpcProxiesDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -34844,99 +55669,102 @@ func (c *StoragePoolsSetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } - ret := &Policy{ + ret := &Operation{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.targetGrpcProxies.delete", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type StoragePoolsTestIamPermissionsCall struct { - s *Service - project string - zone string - resource string - testpermissionsrequest *TestPermissionsRequest - urlParams_ gensupport.URLParams - ctx_ context.Context - header_ http.Header +type TargetGrpcProxiesGetCall struct { + s *Service + project string + targetGrpcProxy string + urlParams_ gensupport.URLParams + ifNoneMatch_ string + ctx_ context.Context + header_ http.Header } -// TestIamPermissions: Returns permissions that a caller has on the specified -// resource. +// Get: Returns the specified TargetGrpcProxy resource in the given scope. // // - project: Project ID for this request. -// - resource: Name or id of the resource for this request. -// - zone: The name of the zone for this request. -func (r *StoragePoolsService) TestIamPermissions(project string, zone string, resource string, testpermissionsrequest *TestPermissionsRequest) *StoragePoolsTestIamPermissionsCall { - c := &StoragePoolsTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)} +// - targetGrpcProxy: Name of the TargetGrpcProxy resource to return. +func (r *TargetGrpcProxiesService) Get(project string, targetGrpcProxy string) *TargetGrpcProxiesGetCall { + c := &TargetGrpcProxiesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project - c.zone = zone - c.resource = resource - c.testpermissionsrequest = testpermissionsrequest + c.targetGrpcProxy = targetGrpcProxy return c } // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *StoragePoolsTestIamPermissionsCall) Fields(s ...googleapi.Field) *StoragePoolsTestIamPermissionsCall { +func (c *TargetGrpcProxiesGetCall) Fields(s ...googleapi.Field) *TargetGrpcProxiesGetCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } +// IfNoneMatch sets an 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. +func (c *TargetGrpcProxiesGetCall) IfNoneMatch(entityTag string) *TargetGrpcProxiesGetCall { + c.ifNoneMatch_ = entityTag + return c +} + // Context sets the context to be used in this call's Do method. -func (c *StoragePoolsTestIamPermissionsCall) Context(ctx context.Context) *StoragePoolsTestIamPermissionsCall { +func (c *TargetGrpcProxiesGetCall) Context(ctx context.Context) *TargetGrpcProxiesGetCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *StoragePoolsTestIamPermissionsCall) Header() http.Header { +func (c *TargetGrpcProxiesGetCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *StoragePoolsTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) { - reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) - var body io.Reader = nil - body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest) - if err != nil { - return nil, err +func (c *TargetGrpcProxiesGetCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) + if c.ifNoneMatch_ != "" { + reqHeaders.Set("If-None-Match", c.ifNoneMatch_) } c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/storagePools/{resource}/testIamPermissions") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/targetGrpcProxies/{targetGrpcProxy}") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("POST", urls, body) + req, err := http.NewRequest("GET", urls, nil) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "zone": c.zone, - "resource": c.resource, + "project": c.project, + "targetGrpcProxy": c.targetGrpcProxy, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.targetGrpcProxies.get", "request", internallog.HTTPRequest(req, nil)) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.storagePools.testIamPermissions" call. +// Do executes the "compute.targetGrpcProxies.get" call. // Any non-2xx status code is an error. Response headers are in either -// *TestPermissionsResponse.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 *StoragePoolsTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) { +// *TargetGrpcProxy.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 *TargetGrpcProxiesGetCall) Do(opts ...googleapi.CallOption) (*TargetGrpcProxy, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -34955,122 +55783,115 @@ func (c *StoragePoolsTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (* if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } - ret := &TestPermissionsResponse{ + ret := &TargetGrpcProxy{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.targetGrpcProxies.get", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type StoragePoolsUpdateCall struct { - s *Service - project string - zone string - storagePool string - storagepool *StoragePool - urlParams_ gensupport.URLParams - ctx_ context.Context - header_ http.Header +type TargetGrpcProxiesInsertCall struct { + s *Service + project string + targetgrpcproxy *TargetGrpcProxy + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header } -// Update: Updates the specified storagePool with the data included in the -// request. The update is performed only on selected fields included as part of -// update-mask. Only the following fields can be modified: size_tb and -// provisioned_iops. +// Insert: Creates a TargetGrpcProxy in the specified project in the given +// scope +// using the parameters that are included in the request. // // - project: Project ID for this request. -// - storagePool: The storagePool name for this request. -// - zone: The name of the zone for this request. -func (r *StoragePoolsService) Update(project string, zone string, storagePool string, storagepool *StoragePool) *StoragePoolsUpdateCall { - c := &StoragePoolsUpdateCall{s: r.s, urlParams_: make(gensupport.URLParams)} +func (r *TargetGrpcProxiesService) Insert(project string, targetgrpcproxy *TargetGrpcProxy) *TargetGrpcProxiesInsertCall { + c := &TargetGrpcProxiesInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project - c.zone = zone - c.storagePool = storagePool - c.storagepool = storagepool + c.targetgrpcproxy = targetgrpcproxy 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 *StoragePoolsUpdateCall) RequestId(requestId string) *StoragePoolsUpdateCall { +// 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 *TargetGrpcProxiesInsertCall) RequestId(requestId string) *TargetGrpcProxiesInsertCall { c.urlParams_.Set("requestId", requestId) return c } -// UpdateMask sets the optional parameter "updateMask": update_mask indicates -// fields to be updated as part of this request. -func (c *StoragePoolsUpdateCall) UpdateMask(updateMask string) *StoragePoolsUpdateCall { - c.urlParams_.Set("updateMask", updateMask) - return c -} - // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *StoragePoolsUpdateCall) Fields(s ...googleapi.Field) *StoragePoolsUpdateCall { +func (c *TargetGrpcProxiesInsertCall) Fields(s ...googleapi.Field) *TargetGrpcProxiesInsertCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } // Context sets the context to be used in this call's Do method. -func (c *StoragePoolsUpdateCall) Context(ctx context.Context) *StoragePoolsUpdateCall { +func (c *TargetGrpcProxiesInsertCall) Context(ctx context.Context) *TargetGrpcProxiesInsertCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *StoragePoolsUpdateCall) Header() http.Header { +func (c *TargetGrpcProxiesInsertCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *StoragePoolsUpdateCall) doRequest(alt string) (*http.Response, error) { +func (c *TargetGrpcProxiesInsertCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) - var body io.Reader = nil - body, err := googleapi.WithoutDataWrapper.JSONReader(c.storagepool) + body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.targetgrpcproxy) if err != nil { return nil, err } c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/storagePools/{storagePool}") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/targetGrpcProxies") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("PATCH", urls, body) + req, err := http.NewRequest("POST", urls, body) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "zone": c.zone, - "storagePool": c.storagePool, + "project": c.project, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.targetGrpcProxies.insert", "request", internallog.HTTPRequest(req, body.Bytes())) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.storagePools.update" call. +// Do executes the "compute.targetGrpcProxies.insert" call. // 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 *StoragePoolsUpdateCall) Do(opts ...googleapi.CallOption) (*Operation, error) { +func (c *TargetGrpcProxiesInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -35096,13 +55917,15 @@ func (c *StoragePoolsUpdateCall) Do(opts ...googleapi.CallOption) (*Operation, e }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.targetGrpcProxies.insert", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type SubnetworksAggregatedListCall struct { +type TargetGrpcProxiesListCall struct { s *Service project string urlParams_ gensupport.URLParams @@ -35111,120 +55934,147 @@ type SubnetworksAggregatedListCall struct { header_ http.Header } -// AggregatedList: Retrieves an aggregated list of subnetworks. To prevent -// failure, Google recommends that you set the `returnPartialSuccess` parameter -// to `true`. +// List: Lists the TargetGrpcProxies for a project in the given scope. // // - project: Project ID for this request. -func (r *SubnetworksService) AggregatedList(project string) *SubnetworksAggregatedListCall { - c := &SubnetworksAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)} +func (r *TargetGrpcProxiesService) List(project string) *TargetGrpcProxiesListCall { + c := &TargetGrpcProxiesListCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project return c } // Filter sets the optional parameter "filter": A filter expression that -// filters resources listed in the response. Most Compute resources support two -// types of filter expressions: expressions that support regular expressions -// and expressions that follow API improvement proposal AIP-160. These two -// types of filter expressions cannot be mixed in one request. If you want to -// use AIP-160, your expression must specify the field name, an operator, and -// the value that you want to use for filtering. The value must be a string, a -// number, or a boolean. The 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`. The `:*` comparison can be used to test whether a key has -// been defined. For example, to find all objects with `owner` label use: ``` -// labels.owner:* ``` 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) ``` If you want to use a regular -// expression, use the `eq` (equal) or `ne` (not equal) operator against a -// single un-parenthesized expression with or without quotes or against -// multiple parenthesized expressions. Examples: `fieldname eq unquoted -// literal` `fieldname eq 'single quoted literal'` `fieldname eq "double quoted -// literal" `(fieldname1 eq literal) (fieldname2 ne "literal")` The literal -// value is interpreted as a regular expression using Google RE2 library -// syntax. The literal value must match the entire field. For example, to -// filter for instances that do not end with name "instance", you would use -// `name ne .*instance`. You cannot combine constraints on multiple fields -// using regular expressions. -func (c *SubnetworksAggregatedListCall) Filter(filter string) *SubnetworksAggregatedListCall { +// filters resources listed in the response. Most +// Compute resources support two types of filter expressions: +// expressions that support regular expressions and expressions that follow +// API improvement proposal AIP-160. +// These two types of filter expressions cannot be mixed in one request. +// +// If you want to use AIP-160, your expression must specify the field name, +// an +// operator, and the value that you want to use for filtering. The value +// must be a string, a number, or a boolean. The 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`. +// +// The `:*` comparison can be used to test whether a key has been defined. +// For example, to find all objects with `owner` label +// use: +// ``` +// labels.owner:* +// ``` +// +// 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 onresource 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) +// ``` +// +// If you want to use a regular expression, use the `eq` (equal) or `ne` +// (not equal) operator against a single un-parenthesized expression with +// or +// without quotes or against multiple parenthesized expressions. +// Examples: +// +// `fieldname eq unquoted literal` +// `fieldname eq 'single quoted literal'` +// `fieldname eq "double quoted literal" +// `(fieldname1 eq literal) (fieldname2 ne "literal")` +// +// The literal value is interpreted as a regular expression using GoogleRE2 +// library syntax. +// The literal value must match the entire field. +// +// For example, to filter for instances that do not end with name +// "instance", +// you would use `name ne .*instance`. +// +// You cannot combine constraints on multiple fields using regular +// expressions. +func (c *TargetGrpcProxiesListCall) Filter(filter string) *TargetGrpcProxiesListCall { c.urlParams_.Set("filter", filter) return c } -// IncludeAllScopes sets the optional parameter "includeAllScopes": Indicates -// whether every visible scope for each scope type (zone, region, global) -// should be included in the response. For new resource types added after this -// field, the flag has no effect as new resource types will always include -// every visible scope for each scope type in response. For resource types -// which predate this field, if this flag is omitted or false, only scopes of -// the scope types where the resource type is expected to be found will be -// included. -func (c *SubnetworksAggregatedListCall) IncludeAllScopes(includeAllScopes bool) *SubnetworksAggregatedListCall { - c.urlParams_.Set("includeAllScopes", fmt.Sprint(includeAllScopes)) - 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 *SubnetworksAggregatedListCall) MaxResults(maxResults int64) *SubnetworksAggregatedListCall { +// 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 *TargetGrpcProxiesListCall) MaxResults(maxResults int64) *TargetGrpcProxiesListCall { 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 *SubnetworksAggregatedListCall) OrderBy(orderBy string) *SubnetworksAggregatedListCall { +// 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 *TargetGrpcProxiesListCall) OrderBy(orderBy string) *TargetGrpcProxiesListCall { 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 *SubnetworksAggregatedListCall) PageToken(pageToken string) *SubnetworksAggregatedListCall { +// use. Set `pageToken` to the +// `nextPageToken` returned by a previous list request to get +// the next page of results. +func (c *TargetGrpcProxiesListCall) PageToken(pageToken string) *TargetGrpcProxiesListCall { c.urlParams_.Set("pageToken", pageToken) return c } // ReturnPartialSuccess sets the optional parameter "returnPartialSuccess": -// Opt-in for partial success behavior which provides partial results in case -// of failure. The default value is false. For example, when partial success -// behavior is enabled, aggregatedList for a single zone scope either returns -// all resources in the zone or no resources, with an error code. -func (c *SubnetworksAggregatedListCall) ReturnPartialSuccess(returnPartialSuccess bool) *SubnetworksAggregatedListCall { +// Opt-in for partial success behavior which provides partial results in +// case +// of failure. The default value is false. +// +// For example, when partial success behavior is enabled, aggregatedList for +// a +// single zone scope either returns all resources in the zone or no +// resources, +// with an error code. +func (c *TargetGrpcProxiesListCall) ReturnPartialSuccess(returnPartialSuccess bool) *TargetGrpcProxiesListCall { c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess)) return c } -// ServiceProjectNumber sets the optional parameter "serviceProjectNumber": The -// Shared VPC service project id or service project number for which aggregated -// list request is invoked for subnetworks list-usable api. -func (c *SubnetworksAggregatedListCall) ServiceProjectNumber(serviceProjectNumber int64) *SubnetworksAggregatedListCall { - c.urlParams_.Set("serviceProjectNumber", fmt.Sprint(serviceProjectNumber)) - return c -} - // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *SubnetworksAggregatedListCall) Fields(s ...googleapi.Field) *SubnetworksAggregatedListCall { +func (c *TargetGrpcProxiesListCall) Fields(s ...googleapi.Field) *TargetGrpcProxiesListCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } @@ -35232,37 +56082,36 @@ func (c *SubnetworksAggregatedListCall) Fields(s ...googleapi.Field) *Subnetwork // IfNoneMatch sets an 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. -func (c *SubnetworksAggregatedListCall) IfNoneMatch(entityTag string) *SubnetworksAggregatedListCall { +func (c *TargetGrpcProxiesListCall) IfNoneMatch(entityTag string) *TargetGrpcProxiesListCall { c.ifNoneMatch_ = entityTag return c } // Context sets the context to be used in this call's Do method. -func (c *SubnetworksAggregatedListCall) Context(ctx context.Context) *SubnetworksAggregatedListCall { +func (c *TargetGrpcProxiesListCall) Context(ctx context.Context) *TargetGrpcProxiesListCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *SubnetworksAggregatedListCall) Header() http.Header { +func (c *TargetGrpcProxiesListCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *SubnetworksAggregatedListCall) doRequest(alt string) (*http.Response, error) { +func (c *TargetGrpcProxiesListCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) if c.ifNoneMatch_ != "" { reqHeaders.Set("If-None-Match", c.ifNoneMatch_) } - var body io.Reader = nil c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/aggregated/subnetworks") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/targetGrpcProxies") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("GET", urls, body) + req, err := http.NewRequest("GET", urls, nil) if err != nil { return nil, err } @@ -35270,16 +56119,17 @@ func (c *SubnetworksAggregatedListCall) doRequest(alt string) (*http.Response, e googleapi.Expand(req.URL, map[string]string{ "project": c.project, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.targetGrpcProxies.list", "request", internallog.HTTPRequest(req, nil)) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.subnetworks.aggregatedList" call. +// Do executes the "compute.targetGrpcProxies.list" call. // Any non-2xx status code is an error. Response headers are in either -// *SubnetworkAggregatedList.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 *SubnetworksAggregatedListCall) Do(opts ...googleapi.CallOption) (*SubnetworkAggregatedList, error) { +// *TargetGrpcProxyList.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 *TargetGrpcProxiesListCall) Do(opts ...googleapi.CallOption) (*TargetGrpcProxyList, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -35298,23 +56148,25 @@ func (c *SubnetworksAggregatedListCall) Do(opts ...googleapi.CallOption) (*Subne if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } - ret := &SubnetworkAggregatedList{ + ret := &TargetGrpcProxyList{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.targetGrpcProxies.list", "response", internallog.HTTPResponse(res, b)) return ret, nil } // 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 *SubnetworksAggregatedListCall) Pages(ctx context.Context, f func(*SubnetworkAggregatedList) error) error { +func (c *TargetGrpcProxiesListCall) Pages(ctx context.Context, f func(*TargetGrpcProxyList) error) error { c.ctx_ = ctx defer c.PageToken(c.urlParams_.Get("pageToken")) for { @@ -35332,40 +56184,50 @@ func (c *SubnetworksAggregatedListCall) Pages(ctx context.Context, f func(*Subne } } -type SubnetworksDeleteCall struct { - s *Service - project string - region string - subnetwork string - urlParams_ gensupport.URLParams - ctx_ context.Context - header_ http.Header +type TargetGrpcProxiesPatchCall struct { + s *Service + project string + targetGrpcProxy string + targetgrpcproxy *TargetGrpcProxy + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header } -// Delete: Deletes the specified subnetwork. +// Patch: Patches the specified TargetGrpcProxy resource with the data included +// in +// the request. This method supports PATCH +// semantics and usesJSON merge +// patch format and processing rules. // // - project: Project ID for this request. -// - region: Name of the region scoping this request. -// - subnetwork: Name of the Subnetwork resource to delete. -func (r *SubnetworksService) Delete(project string, region string, subnetwork string) *SubnetworksDeleteCall { - c := &SubnetworksDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)} +// - targetGrpcProxy: Name of the TargetGrpcProxy resource to patch. +func (r *TargetGrpcProxiesService) Patch(project string, targetGrpcProxy string, targetgrpcproxy *TargetGrpcProxy) *TargetGrpcProxiesPatchCall { + c := &TargetGrpcProxiesPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project - c.region = region - c.subnetwork = subnetwork + c.targetGrpcProxy = targetGrpcProxy + c.targetgrpcproxy = targetgrpcproxy 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 *SubnetworksDeleteCall) RequestId(requestId string) *SubnetworksDeleteCall { +// 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 *TargetGrpcProxiesPatchCall) RequestId(requestId string) *TargetGrpcProxiesPatchCall { c.urlParams_.Set("requestId", requestId) return c } @@ -35373,52 +56235,55 @@ func (c *SubnetworksDeleteCall) RequestId(requestId string) *SubnetworksDeleteCa // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *SubnetworksDeleteCall) Fields(s ...googleapi.Field) *SubnetworksDeleteCall { +func (c *TargetGrpcProxiesPatchCall) Fields(s ...googleapi.Field) *TargetGrpcProxiesPatchCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } // Context sets the context to be used in this call's Do method. -func (c *SubnetworksDeleteCall) Context(ctx context.Context) *SubnetworksDeleteCall { +func (c *TargetGrpcProxiesPatchCall) Context(ctx context.Context) *TargetGrpcProxiesPatchCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *SubnetworksDeleteCall) Header() http.Header { +func (c *TargetGrpcProxiesPatchCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *SubnetworksDeleteCall) doRequest(alt string) (*http.Response, error) { - reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) - var body io.Reader = nil +func (c *TargetGrpcProxiesPatchCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) + body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.targetgrpcproxy) + if err != nil { + return nil, err + } c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/subnetworks/{subnetwork}") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/targetGrpcProxies/{targetGrpcProxy}") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("DELETE", urls, body) + req, err := http.NewRequest("PATCH", urls, body) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "region": c.region, - "subnetwork": c.subnetwork, + "project": c.project, + "targetGrpcProxy": c.targetGrpcProxy, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.targetGrpcProxies.patch", "request", internallog.HTTPRequest(req, body.Bytes())) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.subnetworks.delete" call. +// Do executes the "compute.targetGrpcProxies.patch" call. // 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 *SubnetworksDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) { +func (c *TargetGrpcProxiesPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -35444,165 +56309,196 @@ func (c *SubnetworksDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, er }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.targetGrpcProxies.patch", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type SubnetworksExpandIpCidrRangeCall struct { - s *Service - project string - region string - subnetwork string - subnetworksexpandipcidrrangerequest *SubnetworksExpandIpCidrRangeRequest - urlParams_ gensupport.URLParams - ctx_ context.Context - header_ http.Header +type TargetHttpProxiesAggregatedListCall struct { + s *Service + project string + urlParams_ gensupport.URLParams + ifNoneMatch_ string + ctx_ context.Context + header_ http.Header } -// ExpandIpCidrRange: Expands the IP CIDR range of the subnetwork to a -// specified value. +// AggregatedList: Retrieves the list of all TargetHttpProxy resources, +// regional and global, +// available to the specified project. // -// - project: Project ID for this request. -// - region: Name of the region scoping this request. -// - subnetwork: Name of the Subnetwork resource to update. -func (r *SubnetworksService) ExpandIpCidrRange(project string, region string, subnetwork string, subnetworksexpandipcidrrangerequest *SubnetworksExpandIpCidrRangeRequest) *SubnetworksExpandIpCidrRangeCall { - c := &SubnetworksExpandIpCidrRangeCall{s: r.s, urlParams_: make(gensupport.URLParams)} +// To prevent failure, Google recommends that you set +// the +// `returnPartialSuccess` parameter to `true`. +// +// - project: Name of the project scoping this request. +func (r *TargetHttpProxiesService) AggregatedList(project string) *TargetHttpProxiesAggregatedListCall { + c := &TargetHttpProxiesAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project - c.region = region - c.subnetwork = subnetwork - c.subnetworksexpandipcidrrangerequest = subnetworksexpandipcidrrangerequest 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 *SubnetworksExpandIpCidrRangeCall) RequestId(requestId string) *SubnetworksExpandIpCidrRangeCall { - c.urlParams_.Set("requestId", requestId) +// Filter sets the optional parameter "filter": A filter expression that +// filters resources listed in the response. Most +// Compute resources support two types of filter expressions: +// expressions that support regular expressions and expressions that follow +// API improvement proposal AIP-160. +// These two types of filter expressions cannot be mixed in one request. +// +// If you want to use AIP-160, your expression must specify the field name, +// an +// operator, and the value that you want to use for filtering. The value +// must be a string, a number, or a boolean. The 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`. +// +// The `:*` comparison can be used to test whether a key has been defined. +// For example, to find all objects with `owner` label +// use: +// ``` +// labels.owner:* +// ``` +// +// 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 onresource 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) +// ``` +// +// If you want to use a regular expression, use the `eq` (equal) or `ne` +// (not equal) operator against a single un-parenthesized expression with +// or +// without quotes or against multiple parenthesized expressions. +// Examples: +// +// `fieldname eq unquoted literal` +// `fieldname eq 'single quoted literal'` +// `fieldname eq "double quoted literal" +// `(fieldname1 eq literal) (fieldname2 ne "literal")` +// +// The literal value is interpreted as a regular expression using GoogleRE2 +// library syntax. +// The literal value must match the entire field. +// +// For example, to filter for instances that do not end with name +// "instance", +// you would use `name ne .*instance`. +// +// You cannot combine constraints on multiple fields using regular +// expressions. +func (c *TargetHttpProxiesAggregatedListCall) Filter(filter string) *TargetHttpProxiesAggregatedListCall { + c.urlParams_.Set("filter", filter) return c } -// Fields allows partial responses to be retrieved. See -// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more -// details. -func (c *SubnetworksExpandIpCidrRangeCall) Fields(s ...googleapi.Field) *SubnetworksExpandIpCidrRangeCall { - c.urlParams_.Set("fields", googleapi.CombineFields(s)) +// IncludeAllScopes sets the optional parameter "includeAllScopes": Indicates +// whether every visible scope for each scope type (zone, region, +// global) should be included in the response. For new resource types +// added +// after this field, the flag has no effect as new resource types will +// always +// include every visible scope for each scope type in response. For +// resource +// types which predate this field, if this flag is omitted or false, +// only +// scopes of the scope types where the resource type is expected to be +// found +// will be included. +func (c *TargetHttpProxiesAggregatedListCall) IncludeAllScopes(includeAllScopes bool) *TargetHttpProxiesAggregatedListCall { + c.urlParams_.Set("includeAllScopes", fmt.Sprint(includeAllScopes)) return c } -// Context sets the context to be used in this call's Do method. -func (c *SubnetworksExpandIpCidrRangeCall) Context(ctx context.Context) *SubnetworksExpandIpCidrRangeCall { - c.ctx_ = ctx +// 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 *TargetHttpProxiesAggregatedListCall) MaxResults(maxResults int64) *TargetHttpProxiesAggregatedListCall { + c.urlParams_.Set("maxResults", fmt.Sprint(maxResults)) return c } -// Header returns a http.Header that can be modified by the caller to add -// headers to the request. -func (c *SubnetworksExpandIpCidrRangeCall) Header() http.Header { - if c.header_ == nil { - c.header_ = make(http.Header) - } - return c.header_ -} - -func (c *SubnetworksExpandIpCidrRangeCall) doRequest(alt string) (*http.Response, error) { - reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) - var body io.Reader = nil - body, err := googleapi.WithoutDataWrapper.JSONReader(c.subnetworksexpandipcidrrangerequest) - if err != nil { - return nil, err - } - c.urlParams_.Set("alt", alt) - c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/subnetworks/{subnetwork}/expandIpCidrRange") - urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("POST", urls, body) - if err != nil { - return nil, err - } - req.Header = reqHeaders - googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "region": c.region, - "subnetwork": c.subnetwork, - }) - return gensupport.SendRequest(c.ctx_, c.s.client, req) +// 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 *TargetHttpProxiesAggregatedListCall) OrderBy(orderBy string) *TargetHttpProxiesAggregatedListCall { + c.urlParams_.Set("orderBy", orderBy) + return c } -// Do executes the "compute.subnetworks.expandIpCidrRange" call. -// 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 *SubnetworksExpandIpCidrRangeCall) 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, gensupport.WrapError(&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, gensupport.WrapError(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 +// 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 *TargetHttpProxiesAggregatedListCall) PageToken(pageToken string) *TargetHttpProxiesAggregatedListCall { + c.urlParams_.Set("pageToken", pageToken) + return c } -type SubnetworksGetCall struct { - s *Service - project string - region string - subnetwork string - urlParams_ gensupport.URLParams - ifNoneMatch_ string - ctx_ context.Context - header_ http.Header +// ReturnPartialSuccess sets the optional parameter "returnPartialSuccess": +// Opt-in for partial success behavior which provides partial results in +// case +// of failure. The default value is false. +// +// For example, when partial success behavior is enabled, aggregatedList for +// a +// single zone scope either returns all resources in the zone or no +// resources, +// with an error code. +func (c *TargetHttpProxiesAggregatedListCall) ReturnPartialSuccess(returnPartialSuccess bool) *TargetHttpProxiesAggregatedListCall { + c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess)) + return c } -// Get: Returns the specified subnetwork. -// -// - project: Project ID for this request. -// - region: Name of the region scoping this request. -// - subnetwork: Name of the Subnetwork resource to return. -func (r *SubnetworksService) Get(project string, region string, subnetwork string) *SubnetworksGetCall { - c := &SubnetworksGetCall{s: r.s, urlParams_: make(gensupport.URLParams)} - c.project = project - c.region = region - c.subnetwork = subnetwork +// ServiceProjectNumber sets the optional parameter "serviceProjectNumber": The +// Shared VPC service project id or service project number for which +// aggregated list request is invoked for subnetworks list-usable api. +func (c *TargetHttpProxiesAggregatedListCall) ServiceProjectNumber(serviceProjectNumber int64) *TargetHttpProxiesAggregatedListCall { + c.urlParams_.Set("serviceProjectNumber", fmt.Sprint(serviceProjectNumber)) return c } // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *SubnetworksGetCall) Fields(s ...googleapi.Field) *SubnetworksGetCall { +func (c *TargetHttpProxiesAggregatedListCall) Fields(s ...googleapi.Field) *TargetHttpProxiesAggregatedListCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } @@ -35610,55 +56506,54 @@ func (c *SubnetworksGetCall) Fields(s ...googleapi.Field) *SubnetworksGetCall { // IfNoneMatch sets an 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. -func (c *SubnetworksGetCall) IfNoneMatch(entityTag string) *SubnetworksGetCall { +func (c *TargetHttpProxiesAggregatedListCall) IfNoneMatch(entityTag string) *TargetHttpProxiesAggregatedListCall { c.ifNoneMatch_ = entityTag return c } // Context sets the context to be used in this call's Do method. -func (c *SubnetworksGetCall) Context(ctx context.Context) *SubnetworksGetCall { +func (c *TargetHttpProxiesAggregatedListCall) Context(ctx context.Context) *TargetHttpProxiesAggregatedListCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *SubnetworksGetCall) Header() http.Header { +func (c *TargetHttpProxiesAggregatedListCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *SubnetworksGetCall) doRequest(alt string) (*http.Response, error) { +func (c *TargetHttpProxiesAggregatedListCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) if c.ifNoneMatch_ != "" { reqHeaders.Set("If-None-Match", c.ifNoneMatch_) } - var body io.Reader = nil c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/subnetworks/{subnetwork}") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/aggregated/targetHttpProxies") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("GET", urls, body) + req, err := http.NewRequest("GET", urls, nil) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "region": c.region, - "subnetwork": c.subnetwork, + "project": c.project, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.targetHttpProxies.aggregatedList", "request", internallog.HTTPRequest(req, nil)) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.subnetworks.get" call. +// Do executes the "compute.targetHttpProxies.aggregatedList" call. // Any non-2xx status code is an error. Response headers are in either -// *Subnetwork.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 *SubnetworksGetCall) Do(opts ...googleapi.CallOption) (*Subnetwork, error) { +// *TargetHttpProxyAggregatedList.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 *TargetHttpProxiesAggregatedListCall) Do(opts ...googleapi.CallOption) (*TargetHttpProxyAggregatedList, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -35677,111 +56572,132 @@ func (c *SubnetworksGetCall) Do(opts ...googleapi.CallOption) (*Subnetwork, erro if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } - ret := &Subnetwork{ + ret := &TargetHttpProxyAggregatedList{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.targetHttpProxies.aggregatedList", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type SubnetworksGetIamPolicyCall struct { - s *Service - project string - region string - resource string - urlParams_ gensupport.URLParams - ifNoneMatch_ string - ctx_ context.Context - header_ http.Header +// 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 *TargetHttpProxiesAggregatedListCall) Pages(ctx context.Context, f func(*TargetHttpProxyAggregatedList) error) error { + c.ctx_ = ctx + defer c.PageToken(c.urlParams_.Get("pageToken")) + 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) + } } -// GetIamPolicy: Gets the access control policy for a resource. May be empty if -// no such policy or resource exists. +type TargetHttpProxiesDeleteCall struct { + s *Service + project string + targetHttpProxy string + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header +} + +// Delete: Deletes the specified TargetHttpProxy resource. // // - project: Project ID for this request. -// - region: The name of the region for this request. -// - resource: Name or id of the resource for this request. -func (r *SubnetworksService) GetIamPolicy(project string, region string, resource string) *SubnetworksGetIamPolicyCall { - c := &SubnetworksGetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)} +// - targetHttpProxy: Name of the TargetHttpProxy resource to delete. +func (r *TargetHttpProxiesService) Delete(project string, targetHttpProxy string) *TargetHttpProxiesDeleteCall { + c := &TargetHttpProxiesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project - c.region = region - c.resource = resource + c.targetHttpProxy = targetHttpProxy return c } -// OptionsRequestedPolicyVersion sets the optional parameter -// "optionsRequestedPolicyVersion": Requested IAM Policy version. -func (c *SubnetworksGetIamPolicyCall) OptionsRequestedPolicyVersion(optionsRequestedPolicyVersion int64) *SubnetworksGetIamPolicyCall { - c.urlParams_.Set("optionsRequestedPolicyVersion", fmt.Sprint(optionsRequestedPolicyVersion)) +// 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 *TargetHttpProxiesDeleteCall) RequestId(requestId string) *TargetHttpProxiesDeleteCall { + 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 // details. -func (c *SubnetworksGetIamPolicyCall) Fields(s ...googleapi.Field) *SubnetworksGetIamPolicyCall { +func (c *TargetHttpProxiesDeleteCall) Fields(s ...googleapi.Field) *TargetHttpProxiesDeleteCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } -// IfNoneMatch sets an 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. -func (c *SubnetworksGetIamPolicyCall) IfNoneMatch(entityTag string) *SubnetworksGetIamPolicyCall { - c.ifNoneMatch_ = entityTag - return c -} - // Context sets the context to be used in this call's Do method. -func (c *SubnetworksGetIamPolicyCall) Context(ctx context.Context) *SubnetworksGetIamPolicyCall { +func (c *TargetHttpProxiesDeleteCall) Context(ctx context.Context) *TargetHttpProxiesDeleteCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *SubnetworksGetIamPolicyCall) Header() http.Header { +func (c *TargetHttpProxiesDeleteCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *SubnetworksGetIamPolicyCall) doRequest(alt string) (*http.Response, error) { +func (c *TargetHttpProxiesDeleteCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) - if c.ifNoneMatch_ != "" { - reqHeaders.Set("If-None-Match", c.ifNoneMatch_) - } - var body io.Reader = nil c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/subnetworks/{resource}/getIamPolicy") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/targetHttpProxies/{targetHttpProxy}") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("GET", urls, body) + req, err := http.NewRequest("DELETE", urls, nil) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "region": c.region, - "resource": c.resource, + "project": c.project, + "targetHttpProxy": c.targetHttpProxy, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.targetHttpProxies.delete", "request", internallog.HTTPRequest(req, nil)) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.subnetworks.getIamPolicy" call. +// Do executes the "compute.targetHttpProxies.delete" call. // Any non-2xx status code is an error. Response headers are in either -// *Policy.ServerResponse.Header or (if a response was returned at all) in +// *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 *SubnetworksGetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, error) { +func (c *TargetHttpProxiesDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -35800,109 +56716,102 @@ func (c *SubnetworksGetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } - ret := &Policy{ + ret := &Operation{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.targetHttpProxies.delete", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type SubnetworksInsertCall struct { - s *Service - project string - region string - subnetwork *Subnetwork - urlParams_ gensupport.URLParams - ctx_ context.Context - header_ http.Header -} - -// Insert: Creates a subnetwork in the specified project using the data -// included in the request. +type TargetHttpProxiesGetCall struct { + s *Service + project string + targetHttpProxy string + urlParams_ gensupport.URLParams + ifNoneMatch_ string + ctx_ context.Context + header_ http.Header +} + +// Get: Returns the specified TargetHttpProxy resource. // // - project: Project ID for this request. -// - region: Name of the region scoping this request. -func (r *SubnetworksService) Insert(project string, region string, subnetwork *Subnetwork) *SubnetworksInsertCall { - c := &SubnetworksInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)} +// - targetHttpProxy: Name of the TargetHttpProxy resource to return. +func (r *TargetHttpProxiesService) Get(project string, targetHttpProxy string) *TargetHttpProxiesGetCall { + c := &TargetHttpProxiesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project - c.region = region - c.subnetwork = subnetwork - 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 *SubnetworksInsertCall) RequestId(requestId string) *SubnetworksInsertCall { - c.urlParams_.Set("requestId", requestId) + c.targetHttpProxy = targetHttpProxy return c } // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *SubnetworksInsertCall) Fields(s ...googleapi.Field) *SubnetworksInsertCall { +func (c *TargetHttpProxiesGetCall) Fields(s ...googleapi.Field) *TargetHttpProxiesGetCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } +// IfNoneMatch sets an 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. +func (c *TargetHttpProxiesGetCall) IfNoneMatch(entityTag string) *TargetHttpProxiesGetCall { + c.ifNoneMatch_ = entityTag + return c +} + // Context sets the context to be used in this call's Do method. -func (c *SubnetworksInsertCall) Context(ctx context.Context) *SubnetworksInsertCall { +func (c *TargetHttpProxiesGetCall) Context(ctx context.Context) *TargetHttpProxiesGetCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *SubnetworksInsertCall) Header() http.Header { +func (c *TargetHttpProxiesGetCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *SubnetworksInsertCall) doRequest(alt string) (*http.Response, error) { - reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) - var body io.Reader = nil - body, err := googleapi.WithoutDataWrapper.JSONReader(c.subnetwork) - if err != nil { - return nil, err +func (c *TargetHttpProxiesGetCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) + if c.ifNoneMatch_ != "" { + reqHeaders.Set("If-None-Match", c.ifNoneMatch_) } c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/subnetworks") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/targetHttpProxies/{targetHttpProxy}") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("POST", urls, body) + req, err := http.NewRequest("GET", urls, nil) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "region": c.region, + "project": c.project, + "targetHttpProxy": c.targetHttpProxy, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.targetHttpProxies.get", "request", internallog.HTTPRequest(req, nil)) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.subnetworks.insert" call. +// Do executes the "compute.targetHttpProxies.get" call. // 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 *SubnetworksInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) { +// *TargetHttpProxy.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 *TargetHttpProxiesGetCall) Do(opts ...googleapi.CallOption) (*TargetHttpProxy, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -35921,177 +56830,114 @@ func (c *SubnetworksInsertCall) Do(opts ...googleapi.CallOption) (*Operation, er if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } - ret := &Operation{ + ret := &TargetHttpProxy{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.targetHttpProxies.get", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type SubnetworksListCall struct { - s *Service - project string - region string - urlParams_ gensupport.URLParams - ifNoneMatch_ string - ctx_ context.Context - header_ http.Header +type TargetHttpProxiesInsertCall struct { + s *Service + project string + targethttpproxy *TargetHttpProxy + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header } -// List: Retrieves a list of subnetworks available to the specified project. +// Insert: Creates a TargetHttpProxy resource in the specified +// project using the data included in the request. // // - project: Project ID for this request. -// - region: Name of the region scoping this request. -func (r *SubnetworksService) List(project string, region string) *SubnetworksListCall { - c := &SubnetworksListCall{s: r.s, urlParams_: make(gensupport.URLParams)} +func (r *TargetHttpProxiesService) Insert(project string, targethttpproxy *TargetHttpProxy) *TargetHttpProxiesInsertCall { + c := &TargetHttpProxiesInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project - c.region = region - return c -} - -// Filter sets the optional parameter "filter": A filter expression that -// filters resources listed in the response. Most Compute resources support two -// types of filter expressions: expressions that support regular expressions -// and expressions that follow API improvement proposal AIP-160. These two -// types of filter expressions cannot be mixed in one request. If you want to -// use AIP-160, your expression must specify the field name, an operator, and -// the value that you want to use for filtering. The value must be a string, a -// number, or a boolean. The 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`. The `:*` comparison can be used to test whether a key has -// been defined. For example, to find all objects with `owner` label use: ``` -// labels.owner:* ``` 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) ``` If you want to use a regular -// expression, use the `eq` (equal) or `ne` (not equal) operator against a -// single un-parenthesized expression with or without quotes or against -// multiple parenthesized expressions. Examples: `fieldname eq unquoted -// literal` `fieldname eq 'single quoted literal'` `fieldname eq "double quoted -// literal" `(fieldname1 eq literal) (fieldname2 ne "literal")` The literal -// value is interpreted as a regular expression using Google RE2 library -// syntax. The literal value must match the entire field. For example, to -// filter for instances that do not end with name "instance", you would use -// `name ne .*instance`. You cannot combine constraints on multiple fields -// using regular expressions. -func (c *SubnetworksListCall) Filter(filter string) *SubnetworksListCall { - 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 *SubnetworksListCall) MaxResults(maxResults int64) *SubnetworksListCall { - 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 *SubnetworksListCall) OrderBy(orderBy string) *SubnetworksListCall { - 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 *SubnetworksListCall) PageToken(pageToken string) *SubnetworksListCall { - c.urlParams_.Set("pageToken", pageToken) + c.targethttpproxy = targethttpproxy return c } -// ReturnPartialSuccess sets the optional parameter "returnPartialSuccess": -// Opt-in for partial success behavior which provides partial results in case -// of failure. The default value is false. For example, when partial success -// behavior is enabled, aggregatedList for a single zone scope either returns -// all resources in the zone or no resources, with an error code. -func (c *SubnetworksListCall) ReturnPartialSuccess(returnPartialSuccess bool) *SubnetworksListCall { - c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess)) +// 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 *TargetHttpProxiesInsertCall) RequestId(requestId string) *TargetHttpProxiesInsertCall { + 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 // details. -func (c *SubnetworksListCall) Fields(s ...googleapi.Field) *SubnetworksListCall { +func (c *TargetHttpProxiesInsertCall) Fields(s ...googleapi.Field) *TargetHttpProxiesInsertCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } -// IfNoneMatch sets an 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. -func (c *SubnetworksListCall) IfNoneMatch(entityTag string) *SubnetworksListCall { - c.ifNoneMatch_ = entityTag - return c -} - // Context sets the context to be used in this call's Do method. -func (c *SubnetworksListCall) Context(ctx context.Context) *SubnetworksListCall { +func (c *TargetHttpProxiesInsertCall) Context(ctx context.Context) *TargetHttpProxiesInsertCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *SubnetworksListCall) Header() http.Header { +func (c *TargetHttpProxiesInsertCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *SubnetworksListCall) doRequest(alt string) (*http.Response, error) { - reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) - if c.ifNoneMatch_ != "" { - reqHeaders.Set("If-None-Match", c.ifNoneMatch_) +func (c *TargetHttpProxiesInsertCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) + body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.targethttpproxy) + if err != nil { + return nil, err } - var body io.Reader = nil c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/subnetworks") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/targetHttpProxies") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("GET", urls, body) + req, err := http.NewRequest("POST", urls, body) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ "project": c.project, - "region": c.region, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.targetHttpProxies.insert", "request", internallog.HTTPRequest(req, body.Bytes())) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.subnetworks.list" call. +// Do executes the "compute.targetHttpProxies.insert" call. // Any non-2xx status code is an error. Response headers are in either -// *SubnetworkList.ServerResponse.Header or (if a response was returned at all) -// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check +// *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 *SubnetworksListCall) Do(opts ...googleapi.CallOption) (*SubnetworkList, error) { +func (c *TargetHttpProxiesInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -36110,41 +56956,22 @@ func (c *SubnetworksListCall) Do(opts ...googleapi.CallOption) (*SubnetworkList, if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } - ret := &SubnetworkList{ + ret := &Operation{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.targetHttpProxies.insert", "response", internallog.HTTPResponse(res, b)) return ret, nil } -// 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 *SubnetworksListCall) Pages(ctx context.Context, f func(*SubnetworkList) error) error { - c.ctx_ = ctx - defer c.PageToken(c.urlParams_.Get("pageToken")) - 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) - } -} - -type SubnetworksListUsableCall struct { +type TargetHttpProxiesListCall struct { s *Service project string urlParams_ gensupport.URLParams @@ -36153,90 +56980,140 @@ type SubnetworksListUsableCall struct { header_ http.Header } -// ListUsable: Retrieves an aggregated list of all usable subnetworks in the -// project. +// List: Retrieves the list of TargetHttpProxy resources available +// to the specified project. // // - project: Project ID for this request. -func (r *SubnetworksService) ListUsable(project string) *SubnetworksListUsableCall { - c := &SubnetworksListUsableCall{s: r.s, urlParams_: make(gensupport.URLParams)} +func (r *TargetHttpProxiesService) List(project string) *TargetHttpProxiesListCall { + c := &TargetHttpProxiesListCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project return c } // Filter sets the optional parameter "filter": A filter expression that -// filters resources listed in the response. Most Compute resources support two -// types of filter expressions: expressions that support regular expressions -// and expressions that follow API improvement proposal AIP-160. These two -// types of filter expressions cannot be mixed in one request. If you want to -// use AIP-160, your expression must specify the field name, an operator, and -// the value that you want to use for filtering. The value must be a string, a -// number, or a boolean. The 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`. The `:*` comparison can be used to test whether a key has -// been defined. For example, to find all objects with `owner` label use: ``` -// labels.owner:* ``` 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) ``` If you want to use a regular -// expression, use the `eq` (equal) or `ne` (not equal) operator against a -// single un-parenthesized expression with or without quotes or against -// multiple parenthesized expressions. Examples: `fieldname eq unquoted -// literal` `fieldname eq 'single quoted literal'` `fieldname eq "double quoted -// literal" `(fieldname1 eq literal) (fieldname2 ne "literal")` The literal -// value is interpreted as a regular expression using Google RE2 library -// syntax. The literal value must match the entire field. For example, to -// filter for instances that do not end with name "instance", you would use -// `name ne .*instance`. You cannot combine constraints on multiple fields -// using regular expressions. -func (c *SubnetworksListUsableCall) Filter(filter string) *SubnetworksListUsableCall { +// filters resources listed in the response. Most +// Compute resources support two types of filter expressions: +// expressions that support regular expressions and expressions that follow +// API improvement proposal AIP-160. +// These two types of filter expressions cannot be mixed in one request. +// +// If you want to use AIP-160, your expression must specify the field name, +// an +// operator, and the value that you want to use for filtering. The value +// must be a string, a number, or a boolean. The 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`. +// +// The `:*` comparison can be used to test whether a key has been defined. +// For example, to find all objects with `owner` label +// use: +// ``` +// labels.owner:* +// ``` +// +// 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 onresource 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) +// ``` +// +// If you want to use a regular expression, use the `eq` (equal) or `ne` +// (not equal) operator against a single un-parenthesized expression with +// or +// without quotes or against multiple parenthesized expressions. +// Examples: +// +// `fieldname eq unquoted literal` +// `fieldname eq 'single quoted literal'` +// `fieldname eq "double quoted literal" +// `(fieldname1 eq literal) (fieldname2 ne "literal")` +// +// The literal value is interpreted as a regular expression using GoogleRE2 +// library syntax. +// The literal value must match the entire field. +// +// For example, to filter for instances that do not end with name +// "instance", +// you would use `name ne .*instance`. +// +// You cannot combine constraints on multiple fields using regular +// expressions. +func (c *TargetHttpProxiesListCall) Filter(filter string) *TargetHttpProxiesListCall { 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 *SubnetworksListUsableCall) MaxResults(maxResults int64) *SubnetworksListUsableCall { +// 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 *TargetHttpProxiesListCall) MaxResults(maxResults int64) *TargetHttpProxiesListCall { 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 *SubnetworksListUsableCall) OrderBy(orderBy string) *SubnetworksListUsableCall { +// 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 *TargetHttpProxiesListCall) OrderBy(orderBy string) *TargetHttpProxiesListCall { 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 *SubnetworksListUsableCall) PageToken(pageToken string) *SubnetworksListUsableCall { +// use. Set `pageToken` to the +// `nextPageToken` returned by a previous list request to get +// the next page of results. +func (c *TargetHttpProxiesListCall) PageToken(pageToken string) *TargetHttpProxiesListCall { c.urlParams_.Set("pageToken", pageToken) return c } // ReturnPartialSuccess sets the optional parameter "returnPartialSuccess": -// Opt-in for partial success behavior which provides partial results in case -// of failure. The default value is false. For example, when partial success -// behavior is enabled, aggregatedList for a single zone scope either returns -// all resources in the zone or no resources, with an error code. -func (c *SubnetworksListUsableCall) ReturnPartialSuccess(returnPartialSuccess bool) *SubnetworksListUsableCall { +// Opt-in for partial success behavior which provides partial results in +// case +// of failure. The default value is false. +// +// For example, when partial success behavior is enabled, aggregatedList for +// a +// single zone scope either returns all resources in the zone or no +// resources, +// with an error code. +func (c *TargetHttpProxiesListCall) ReturnPartialSuccess(returnPartialSuccess bool) *TargetHttpProxiesListCall { c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess)) return c } @@ -36244,7 +57121,7 @@ func (c *SubnetworksListUsableCall) ReturnPartialSuccess(returnPartialSuccess bo // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *SubnetworksListUsableCall) Fields(s ...googleapi.Field) *SubnetworksListUsableCall { +func (c *TargetHttpProxiesListCall) Fields(s ...googleapi.Field) *TargetHttpProxiesListCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } @@ -36252,37 +57129,36 @@ func (c *SubnetworksListUsableCall) Fields(s ...googleapi.Field) *SubnetworksLis // IfNoneMatch sets an 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. -func (c *SubnetworksListUsableCall) IfNoneMatch(entityTag string) *SubnetworksListUsableCall { +func (c *TargetHttpProxiesListCall) IfNoneMatch(entityTag string) *TargetHttpProxiesListCall { c.ifNoneMatch_ = entityTag return c } // Context sets the context to be used in this call's Do method. -func (c *SubnetworksListUsableCall) Context(ctx context.Context) *SubnetworksListUsableCall { +func (c *TargetHttpProxiesListCall) Context(ctx context.Context) *TargetHttpProxiesListCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *SubnetworksListUsableCall) Header() http.Header { +func (c *TargetHttpProxiesListCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *SubnetworksListUsableCall) doRequest(alt string) (*http.Response, error) { +func (c *TargetHttpProxiesListCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) if c.ifNoneMatch_ != "" { reqHeaders.Set("If-None-Match", c.ifNoneMatch_) } - var body io.Reader = nil c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/aggregated/subnetworks/listUsable") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/targetHttpProxies") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("GET", urls, body) + req, err := http.NewRequest("GET", urls, nil) if err != nil { return nil, err } @@ -36290,16 +57166,17 @@ func (c *SubnetworksListUsableCall) doRequest(alt string) (*http.Response, error googleapi.Expand(req.URL, map[string]string{ "project": c.project, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.targetHttpProxies.list", "request", internallog.HTTPRequest(req, nil)) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.subnetworks.listUsable" call. +// Do executes the "compute.targetHttpProxies.list" call. // Any non-2xx status code is an error. Response headers are in either -// *UsableSubnetworksAggregatedList.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 *SubnetworksListUsableCall) Do(opts ...googleapi.CallOption) (*UsableSubnetworksAggregatedList, error) { +// *TargetHttpProxyList.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 *TargetHttpProxiesListCall) Do(opts ...googleapi.CallOption) (*TargetHttpProxyList, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -36318,23 +57195,25 @@ func (c *SubnetworksListUsableCall) Do(opts ...googleapi.CallOption) (*UsableSub if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } - ret := &UsableSubnetworksAggregatedList{ + ret := &TargetHttpProxyList{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.targetHttpProxies.list", "response", internallog.HTTPResponse(res, b)) return ret, nil } // 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 *SubnetworksListUsableCall) Pages(ctx context.Context, f func(*UsableSubnetworksAggregatedList) error) error { +func (c *TargetHttpProxiesListCall) Pages(ctx context.Context, f func(*TargetHttpProxyList) error) error { c.ctx_ = ctx defer c.PageToken(c.urlParams_.Get("pageToken")) for { @@ -36352,59 +57231,50 @@ func (c *SubnetworksListUsableCall) Pages(ctx context.Context, f func(*UsableSub } } -type SubnetworksPatchCall struct { - s *Service - project string - region string - subnetwork string - subnetwork2 *Subnetwork - urlParams_ gensupport.URLParams - ctx_ context.Context - header_ http.Header +type TargetHttpProxiesPatchCall struct { + s *Service + project string + targetHttpProxy string + targethttpproxy *TargetHttpProxy + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header } -// Patch: Patches the specified subnetwork with the data included in the -// request. Only certain fields can be updated with a patch request as -// indicated in the field descriptions. You must specify the current -// fingerprint of the subnetwork resource being patched. +// Patch: Patches the specified TargetHttpProxy resource with the data included +// in +// the request. This method supports PATCH +// semantics and usesJSON merge +// patch format and processing rules. // // - project: Project ID for this request. -// - region: Name of the region scoping this request. -// - subnetwork: Name of the Subnetwork resource to patch. -func (r *SubnetworksService) Patch(project string, region string, subnetwork string, subnetwork2 *Subnetwork) *SubnetworksPatchCall { - c := &SubnetworksPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)} +// - targetHttpProxy: Name of the TargetHttpProxy resource to patch. +func (r *TargetHttpProxiesService) Patch(project string, targetHttpProxy string, targethttpproxy *TargetHttpProxy) *TargetHttpProxiesPatchCall { + c := &TargetHttpProxiesPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project - c.region = region - c.subnetwork = subnetwork - c.subnetwork2 = subnetwork2 - return c -} - -// DrainTimeoutSeconds sets the optional parameter "drainTimeoutSeconds": The -// drain timeout specifies the upper bound in seconds on the amount of time -// allowed to drain connections from the current ACTIVE subnetwork to the -// current BACKUP subnetwork. The drain timeout is only applicable when the -// following conditions are true: - the subnetwork being patched has purpose = -// INTERNAL_HTTPS_LOAD_BALANCER - the subnetwork being patched has role = -// BACKUP - the patch request is setting the role to ACTIVE. Note that after -// this patch operation the roles of the ACTIVE and BACKUP subnetworks will be -// swapped. -func (c *SubnetworksPatchCall) DrainTimeoutSeconds(drainTimeoutSeconds int64) *SubnetworksPatchCall { - c.urlParams_.Set("drainTimeoutSeconds", fmt.Sprint(drainTimeoutSeconds)) + c.targetHttpProxy = targetHttpProxy + c.targethttpproxy = targethttpproxy 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 *SubnetworksPatchCall) RequestId(requestId string) *SubnetworksPatchCall { +// 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 *TargetHttpProxiesPatchCall) RequestId(requestId string) *TargetHttpProxiesPatchCall { c.urlParams_.Set("requestId", requestId) return c } @@ -36412,36 +57282,35 @@ func (c *SubnetworksPatchCall) RequestId(requestId string) *SubnetworksPatchCall // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *SubnetworksPatchCall) Fields(s ...googleapi.Field) *SubnetworksPatchCall { +func (c *TargetHttpProxiesPatchCall) Fields(s ...googleapi.Field) *TargetHttpProxiesPatchCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } // Context sets the context to be used in this call's Do method. -func (c *SubnetworksPatchCall) Context(ctx context.Context) *SubnetworksPatchCall { +func (c *TargetHttpProxiesPatchCall) Context(ctx context.Context) *TargetHttpProxiesPatchCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *SubnetworksPatchCall) Header() http.Header { +func (c *TargetHttpProxiesPatchCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *SubnetworksPatchCall) doRequest(alt string) (*http.Response, error) { +func (c *TargetHttpProxiesPatchCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) - var body io.Reader = nil - body, err := googleapi.WithoutDataWrapper.JSONReader(c.subnetwork2) + body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.targethttpproxy) if err != nil { return nil, err } c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/subnetworks/{subnetwork}") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/targetHttpProxies/{targetHttpProxy}") urls += "?" + c.urlParams_.Encode() req, err := http.NewRequest("PATCH", urls, body) if err != nil { @@ -36449,19 +57318,19 @@ func (c *SubnetworksPatchCall) doRequest(alt string) (*http.Response, error) { } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "region": c.region, - "subnetwork": c.subnetwork, + "project": c.project, + "targetHttpProxy": c.targetHttpProxy, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.targetHttpProxies.patch", "request", internallog.HTTPRequest(req, body.Bytes())) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.subnetworks.patch" call. +// Do executes the "compute.targetHttpProxies.patch" call. // 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 *SubnetworksPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) { +func (c *TargetHttpProxiesPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -36487,71 +57356,90 @@ func (c *SubnetworksPatchCall) Do(opts ...googleapi.CallOption) (*Operation, err }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.targetHttpProxies.patch", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type SubnetworksSetIamPolicyCall struct { - s *Service - project string - region string - resource string - regionsetpolicyrequest *RegionSetPolicyRequest - urlParams_ gensupport.URLParams - ctx_ context.Context - header_ http.Header +type TargetHttpProxiesSetUrlMapCall struct { + s *Service + project string + targetHttpProxy string + urlmapreference *UrlMapReference + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header } -// SetIamPolicy: Sets the access control policy on the specified resource. -// Replaces any existing policy. +// SetUrlMap: Changes the URL map for TargetHttpProxy. // // - project: Project ID for this request. -// - region: The name of the region for this request. -// - resource: Name or id of the resource for this request. -func (r *SubnetworksService) SetIamPolicy(project string, region string, resource string, regionsetpolicyrequest *RegionSetPolicyRequest) *SubnetworksSetIamPolicyCall { - c := &SubnetworksSetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)} +// - targetHttpProxy: Name of the TargetHttpProxy to set a URL map for. +func (r *TargetHttpProxiesService) SetUrlMap(project string, targetHttpProxy string, urlmapreference *UrlMapReference) *TargetHttpProxiesSetUrlMapCall { + c := &TargetHttpProxiesSetUrlMapCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project - c.region = region - c.resource = resource - c.regionsetpolicyrequest = regionsetpolicyrequest + c.targetHttpProxy = targetHttpProxy + c.urlmapreference = urlmapreference + 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 *TargetHttpProxiesSetUrlMapCall) RequestId(requestId string) *TargetHttpProxiesSetUrlMapCall { + 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 // details. -func (c *SubnetworksSetIamPolicyCall) Fields(s ...googleapi.Field) *SubnetworksSetIamPolicyCall { +func (c *TargetHttpProxiesSetUrlMapCall) Fields(s ...googleapi.Field) *TargetHttpProxiesSetUrlMapCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } // Context sets the context to be used in this call's Do method. -func (c *SubnetworksSetIamPolicyCall) Context(ctx context.Context) *SubnetworksSetIamPolicyCall { +func (c *TargetHttpProxiesSetUrlMapCall) Context(ctx context.Context) *TargetHttpProxiesSetUrlMapCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *SubnetworksSetIamPolicyCall) Header() http.Header { +func (c *TargetHttpProxiesSetUrlMapCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *SubnetworksSetIamPolicyCall) doRequest(alt string) (*http.Response, error) { +func (c *TargetHttpProxiesSetUrlMapCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) - var body io.Reader = nil - body, err := googleapi.WithoutDataWrapper.JSONReader(c.regionsetpolicyrequest) + body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.urlmapreference) if err != nil { return nil, err } c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/subnetworks/{resource}/setIamPolicy") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/targetHttpProxies/{targetHttpProxy}/setUrlMap") urls += "?" + c.urlParams_.Encode() req, err := http.NewRequest("POST", urls, body) if err != nil { @@ -36559,19 +57447,19 @@ func (c *SubnetworksSetIamPolicyCall) doRequest(alt string) (*http.Response, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "region": c.region, - "resource": c.resource, + "project": c.project, + "targetHttpProxy": c.targetHttpProxy, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.targetHttpProxies.setUrlMap", "request", internallog.HTTPRequest(req, body.Bytes())) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.subnetworks.setIamPolicy" call. +// Do executes the "compute.targetHttpProxies.setUrlMap" call. // Any non-2xx status code is an error. Response headers are in either -// *Policy.ServerResponse.Header or (if a response was returned at all) in +// *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 *SubnetworksSetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, error) { +func (c *TargetHttpProxiesSetUrlMapCall) Do(opts ...googleapi.CallOption) (*Operation, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -36590,225 +57478,258 @@ func (c *SubnetworksSetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } - ret := &Policy{ + ret := &Operation{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.targetHttpProxies.setUrlMap", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type SubnetworksSetPrivateIpGoogleAccessCall struct { - s *Service - project string - region string - subnetwork string - subnetworkssetprivateipgoogleaccessrequest *SubnetworksSetPrivateIpGoogleAccessRequest - urlParams_ gensupport.URLParams - ctx_ context.Context - header_ http.Header +type TargetHttpsProxiesAggregatedListCall struct { + s *Service + project string + urlParams_ gensupport.URLParams + ifNoneMatch_ string + ctx_ context.Context + header_ http.Header } -// SetPrivateIpGoogleAccess: Set whether VMs in this subnet can access Google -// services without assigning external IP addresses through Private Google -// Access. +// AggregatedList: Retrieves the list of all TargetHttpsProxy resources, +// regional and global, +// available to the specified project. // -// - project: Project ID for this request. -// - region: Name of the region scoping this request. -// - subnetwork: Name of the Subnetwork resource. -func (r *SubnetworksService) SetPrivateIpGoogleAccess(project string, region string, subnetwork string, subnetworkssetprivateipgoogleaccessrequest *SubnetworksSetPrivateIpGoogleAccessRequest) *SubnetworksSetPrivateIpGoogleAccessCall { - c := &SubnetworksSetPrivateIpGoogleAccessCall{s: r.s, urlParams_: make(gensupport.URLParams)} +// To prevent failure, Google recommends that you set +// the +// `returnPartialSuccess` parameter to `true`. +// +// - project: Name of the project scoping this request. +func (r *TargetHttpsProxiesService) AggregatedList(project string) *TargetHttpsProxiesAggregatedListCall { + c := &TargetHttpsProxiesAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project - c.region = region - c.subnetwork = subnetwork - c.subnetworkssetprivateipgoogleaccessrequest = subnetworkssetprivateipgoogleaccessrequest 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 *SubnetworksSetPrivateIpGoogleAccessCall) RequestId(requestId string) *SubnetworksSetPrivateIpGoogleAccessCall { - c.urlParams_.Set("requestId", requestId) +// Filter sets the optional parameter "filter": A filter expression that +// filters resources listed in the response. Most +// Compute resources support two types of filter expressions: +// expressions that support regular expressions and expressions that follow +// API improvement proposal AIP-160. +// These two types of filter expressions cannot be mixed in one request. +// +// If you want to use AIP-160, your expression must specify the field name, +// an +// operator, and the value that you want to use for filtering. The value +// must be a string, a number, or a boolean. The 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`. +// +// The `:*` comparison can be used to test whether a key has been defined. +// For example, to find all objects with `owner` label +// use: +// ``` +// labels.owner:* +// ``` +// +// 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 onresource 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) +// ``` +// +// If you want to use a regular expression, use the `eq` (equal) or `ne` +// (not equal) operator against a single un-parenthesized expression with +// or +// without quotes or against multiple parenthesized expressions. +// Examples: +// +// `fieldname eq unquoted literal` +// `fieldname eq 'single quoted literal'` +// `fieldname eq "double quoted literal" +// `(fieldname1 eq literal) (fieldname2 ne "literal")` +// +// The literal value is interpreted as a regular expression using GoogleRE2 +// library syntax. +// The literal value must match the entire field. +// +// For example, to filter for instances that do not end with name +// "instance", +// you would use `name ne .*instance`. +// +// You cannot combine constraints on multiple fields using regular +// expressions. +func (c *TargetHttpsProxiesAggregatedListCall) Filter(filter string) *TargetHttpsProxiesAggregatedListCall { + c.urlParams_.Set("filter", filter) return c } -// Fields allows partial responses to be retrieved. See -// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more -// details. -func (c *SubnetworksSetPrivateIpGoogleAccessCall) Fields(s ...googleapi.Field) *SubnetworksSetPrivateIpGoogleAccessCall { - c.urlParams_.Set("fields", googleapi.CombineFields(s)) +// IncludeAllScopes sets the optional parameter "includeAllScopes": Indicates +// whether every visible scope for each scope type (zone, region, +// global) should be included in the response. For new resource types +// added +// after this field, the flag has no effect as new resource types will +// always +// include every visible scope for each scope type in response. For +// resource +// types which predate this field, if this flag is omitted or false, +// only +// scopes of the scope types where the resource type is expected to be +// found +// will be included. +func (c *TargetHttpsProxiesAggregatedListCall) IncludeAllScopes(includeAllScopes bool) *TargetHttpsProxiesAggregatedListCall { + c.urlParams_.Set("includeAllScopes", fmt.Sprint(includeAllScopes)) return c } -// Context sets the context to be used in this call's Do method. -func (c *SubnetworksSetPrivateIpGoogleAccessCall) Context(ctx context.Context) *SubnetworksSetPrivateIpGoogleAccessCall { - c.ctx_ = ctx +// 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 *TargetHttpsProxiesAggregatedListCall) MaxResults(maxResults int64) *TargetHttpsProxiesAggregatedListCall { + c.urlParams_.Set("maxResults", fmt.Sprint(maxResults)) return c } -// Header returns a http.Header that can be modified by the caller to add -// headers to the request. -func (c *SubnetworksSetPrivateIpGoogleAccessCall) Header() http.Header { - if c.header_ == nil { - c.header_ = make(http.Header) - } - return c.header_ -} - -func (c *SubnetworksSetPrivateIpGoogleAccessCall) doRequest(alt string) (*http.Response, error) { - reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) - var body io.Reader = nil - body, err := googleapi.WithoutDataWrapper.JSONReader(c.subnetworkssetprivateipgoogleaccessrequest) - if err != nil { - return nil, err - } - c.urlParams_.Set("alt", alt) - c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/subnetworks/{subnetwork}/setPrivateIpGoogleAccess") - urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("POST", urls, body) - if err != nil { - return nil, err - } - req.Header = reqHeaders - googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "region": c.region, - "subnetwork": c.subnetwork, - }) - return gensupport.SendRequest(c.ctx_, c.s.client, req) -} - -// Do executes the "compute.subnetworks.setPrivateIpGoogleAccess" call. -// 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 *SubnetworksSetPrivateIpGoogleAccessCall) 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, gensupport.WrapError(&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, gensupport.WrapError(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 +// 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 *TargetHttpsProxiesAggregatedListCall) OrderBy(orderBy string) *TargetHttpsProxiesAggregatedListCall { + c.urlParams_.Set("orderBy", orderBy) + return c } -type SubnetworksTestIamPermissionsCall struct { - s *Service - project string - region string - resource string - testpermissionsrequest *TestPermissionsRequest - urlParams_ gensupport.URLParams - ctx_ context.Context - header_ http.Header +// 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 *TargetHttpsProxiesAggregatedListCall) PageToken(pageToken string) *TargetHttpsProxiesAggregatedListCall { + c.urlParams_.Set("pageToken", pageToken) + return c } -// TestIamPermissions: Returns permissions that a caller has on the specified -// resource. +// ReturnPartialSuccess sets the optional parameter "returnPartialSuccess": +// Opt-in for partial success behavior which provides partial results in +// case +// of failure. The default value is false. // -// - project: Project ID for this request. -// - region: The name of the region for this request. -// - resource: Name or id of the resource for this request. -func (r *SubnetworksService) TestIamPermissions(project string, region string, resource string, testpermissionsrequest *TestPermissionsRequest) *SubnetworksTestIamPermissionsCall { - c := &SubnetworksTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)} - c.project = project - c.region = region - c.resource = resource - c.testpermissionsrequest = testpermissionsrequest +// For example, when partial success behavior is enabled, aggregatedList for +// a +// single zone scope either returns all resources in the zone or no +// resources, +// with an error code. +func (c *TargetHttpsProxiesAggregatedListCall) ReturnPartialSuccess(returnPartialSuccess bool) *TargetHttpsProxiesAggregatedListCall { + c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess)) + return c +} + +// ServiceProjectNumber sets the optional parameter "serviceProjectNumber": The +// Shared VPC service project id or service project number for which +// aggregated list request is invoked for subnetworks list-usable api. +func (c *TargetHttpsProxiesAggregatedListCall) ServiceProjectNumber(serviceProjectNumber int64) *TargetHttpsProxiesAggregatedListCall { + c.urlParams_.Set("serviceProjectNumber", fmt.Sprint(serviceProjectNumber)) return c } // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *SubnetworksTestIamPermissionsCall) Fields(s ...googleapi.Field) *SubnetworksTestIamPermissionsCall { +func (c *TargetHttpsProxiesAggregatedListCall) Fields(s ...googleapi.Field) *TargetHttpsProxiesAggregatedListCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } +// IfNoneMatch sets an 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. +func (c *TargetHttpsProxiesAggregatedListCall) IfNoneMatch(entityTag string) *TargetHttpsProxiesAggregatedListCall { + c.ifNoneMatch_ = entityTag + return c +} + // Context sets the context to be used in this call's Do method. -func (c *SubnetworksTestIamPermissionsCall) Context(ctx context.Context) *SubnetworksTestIamPermissionsCall { +func (c *TargetHttpsProxiesAggregatedListCall) Context(ctx context.Context) *TargetHttpsProxiesAggregatedListCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *SubnetworksTestIamPermissionsCall) Header() http.Header { +func (c *TargetHttpsProxiesAggregatedListCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *SubnetworksTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) { - reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) - var body io.Reader = nil - body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest) - if err != nil { - return nil, err +func (c *TargetHttpsProxiesAggregatedListCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) + if c.ifNoneMatch_ != "" { + reqHeaders.Set("If-None-Match", c.ifNoneMatch_) } c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/subnetworks/{resource}/testIamPermissions") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/aggregated/targetHttpsProxies") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("POST", urls, body) + req, err := http.NewRequest("GET", urls, nil) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "region": c.region, - "resource": c.resource, + "project": c.project, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.targetHttpsProxies.aggregatedList", "request", internallog.HTTPRequest(req, nil)) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.subnetworks.testIamPermissions" call. +// Do executes the "compute.targetHttpsProxies.aggregatedList" call. // Any non-2xx status code is an error. Response headers are in either -// *TestPermissionsResponse.ServerResponse.Header or (if a response was +// *TargetHttpsProxyAggregatedList.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 *SubnetworksTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) { +func (c *TargetHttpsProxiesAggregatedListCall) Do(opts ...googleapi.CallOption) (*TargetHttpsProxyAggregatedList, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -36827,50 +57748,80 @@ func (c *SubnetworksTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*T if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } - ret := &TestPermissionsResponse{ + ret := &TargetHttpsProxyAggregatedList{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.targetHttpsProxies.aggregatedList", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type TargetGrpcProxiesDeleteCall struct { - s *Service - project string - targetGrpcProxy string - urlParams_ gensupport.URLParams - ctx_ context.Context - header_ http.Header +// 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 *TargetHttpsProxiesAggregatedListCall) Pages(ctx context.Context, f func(*TargetHttpsProxyAggregatedList) error) error { + c.ctx_ = ctx + defer c.PageToken(c.urlParams_.Get("pageToken")) + 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) + } } -// Delete: Deletes the specified TargetGrpcProxy in the given scope +type TargetHttpsProxiesDeleteCall struct { + s *Service + project string + targetHttpsProxy string + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header +} + +// Delete: Deletes the specified TargetHttpsProxy resource. // // - project: Project ID for this request. -// - targetGrpcProxy: Name of the TargetGrpcProxy resource to delete. -func (r *TargetGrpcProxiesService) Delete(project string, targetGrpcProxy string) *TargetGrpcProxiesDeleteCall { - c := &TargetGrpcProxiesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)} +// - targetHttpsProxy: Name of the TargetHttpsProxy resource to delete. +func (r *TargetHttpsProxiesService) Delete(project string, targetHttpsProxy string) *TargetHttpsProxiesDeleteCall { + c := &TargetHttpsProxiesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project - c.targetGrpcProxy = targetGrpcProxy + c.targetHttpsProxy = targetHttpsProxy 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 *TargetGrpcProxiesDeleteCall) RequestId(requestId string) *TargetGrpcProxiesDeleteCall { +// 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 *TargetHttpsProxiesDeleteCall) RequestId(requestId string) *TargetHttpsProxiesDeleteCall { c.urlParams_.Set("requestId", requestId) return c } @@ -36878,51 +57829,51 @@ func (c *TargetGrpcProxiesDeleteCall) RequestId(requestId string) *TargetGrpcPro // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *TargetGrpcProxiesDeleteCall) Fields(s ...googleapi.Field) *TargetGrpcProxiesDeleteCall { +func (c *TargetHttpsProxiesDeleteCall) Fields(s ...googleapi.Field) *TargetHttpsProxiesDeleteCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } // Context sets the context to be used in this call's Do method. -func (c *TargetGrpcProxiesDeleteCall) Context(ctx context.Context) *TargetGrpcProxiesDeleteCall { +func (c *TargetHttpsProxiesDeleteCall) Context(ctx context.Context) *TargetHttpsProxiesDeleteCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *TargetGrpcProxiesDeleteCall) Header() http.Header { +func (c *TargetHttpsProxiesDeleteCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *TargetGrpcProxiesDeleteCall) doRequest(alt string) (*http.Response, error) { +func (c *TargetHttpsProxiesDeleteCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) - var body io.Reader = nil c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/targetGrpcProxies/{targetGrpcProxy}") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/targetHttpsProxies/{targetHttpsProxy}") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("DELETE", urls, body) + req, err := http.NewRequest("DELETE", urls, nil) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "targetGrpcProxy": c.targetGrpcProxy, + "project": c.project, + "targetHttpsProxy": c.targetHttpsProxy, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.targetHttpsProxies.delete", "request", internallog.HTTPRequest(req, nil)) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.targetGrpcProxies.delete" call. +// Do executes the "compute.targetHttpsProxies.delete" call. // 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 *TargetGrpcProxiesDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) { +func (c *TargetHttpsProxiesDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -36948,37 +57899,39 @@ func (c *TargetGrpcProxiesDeleteCall) Do(opts ...googleapi.CallOption) (*Operati }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.targetHttpsProxies.delete", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type TargetGrpcProxiesGetCall struct { - s *Service - project string - targetGrpcProxy string - urlParams_ gensupport.URLParams - ifNoneMatch_ string - ctx_ context.Context - header_ http.Header +type TargetHttpsProxiesGetCall struct { + s *Service + project string + targetHttpsProxy string + urlParams_ gensupport.URLParams + ifNoneMatch_ string + ctx_ context.Context + header_ http.Header } -// Get: Returns the specified TargetGrpcProxy resource in the given scope. +// Get: Returns the specified TargetHttpsProxy resource. // // - project: Project ID for this request. -// - targetGrpcProxy: Name of the TargetGrpcProxy resource to return. -func (r *TargetGrpcProxiesService) Get(project string, targetGrpcProxy string) *TargetGrpcProxiesGetCall { - c := &TargetGrpcProxiesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)} +// - targetHttpsProxy: Name of the TargetHttpsProxy resource to return. +func (r *TargetHttpsProxiesService) Get(project string, targetHttpsProxy string) *TargetHttpsProxiesGetCall { + c := &TargetHttpsProxiesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project - c.targetGrpcProxy = targetGrpcProxy + c.targetHttpsProxy = targetHttpsProxy return c } // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *TargetGrpcProxiesGetCall) Fields(s ...googleapi.Field) *TargetGrpcProxiesGetCall { +func (c *TargetHttpsProxiesGetCall) Fields(s ...googleapi.Field) *TargetHttpsProxiesGetCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } @@ -36986,55 +57939,55 @@ func (c *TargetGrpcProxiesGetCall) Fields(s ...googleapi.Field) *TargetGrpcProxi // IfNoneMatch sets an 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. -func (c *TargetGrpcProxiesGetCall) IfNoneMatch(entityTag string) *TargetGrpcProxiesGetCall { +func (c *TargetHttpsProxiesGetCall) IfNoneMatch(entityTag string) *TargetHttpsProxiesGetCall { c.ifNoneMatch_ = entityTag return c } // Context sets the context to be used in this call's Do method. -func (c *TargetGrpcProxiesGetCall) Context(ctx context.Context) *TargetGrpcProxiesGetCall { +func (c *TargetHttpsProxiesGetCall) Context(ctx context.Context) *TargetHttpsProxiesGetCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *TargetGrpcProxiesGetCall) Header() http.Header { +func (c *TargetHttpsProxiesGetCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *TargetGrpcProxiesGetCall) doRequest(alt string) (*http.Response, error) { +func (c *TargetHttpsProxiesGetCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) if c.ifNoneMatch_ != "" { reqHeaders.Set("If-None-Match", c.ifNoneMatch_) } - var body io.Reader = nil c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/targetGrpcProxies/{targetGrpcProxy}") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/targetHttpsProxies/{targetHttpsProxy}") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("GET", urls, body) + req, err := http.NewRequest("GET", urls, nil) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "targetGrpcProxy": c.targetGrpcProxy, + "project": c.project, + "targetHttpsProxy": c.targetHttpsProxy, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.targetHttpsProxies.get", "request", internallog.HTTPRequest(req, nil)) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.targetGrpcProxies.get" call. +// Do executes the "compute.targetHttpsProxies.get" call. // Any non-2xx status code is an error. Response headers are in either -// *TargetGrpcProxy.ServerResponse.Header or (if a response was returned at +// *TargetHttpsProxy.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 *TargetGrpcProxiesGetCall) Do(opts ...googleapi.CallOption) (*TargetGrpcProxy, error) { +func (c *TargetHttpsProxiesGetCall) Do(opts ...googleapi.CallOption) (*TargetHttpsProxy, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -37053,50 +58006,59 @@ func (c *TargetGrpcProxiesGetCall) Do(opts ...googleapi.CallOption) (*TargetGrpc if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } - ret := &TargetGrpcProxy{ + ret := &TargetHttpsProxy{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.targetHttpsProxies.get", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type TargetGrpcProxiesInsertCall struct { - s *Service - project string - targetgrpcproxy *TargetGrpcProxy - urlParams_ gensupport.URLParams - ctx_ context.Context - header_ http.Header +type TargetHttpsProxiesInsertCall struct { + s *Service + project string + targethttpsproxy *TargetHttpsProxy + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header } -// Insert: Creates a TargetGrpcProxy in the specified project in the given -// scope using the parameters that are included in the request. +// Insert: Creates a TargetHttpsProxy resource in the specified +// project using the data included in the request. // // - project: Project ID for this request. -func (r *TargetGrpcProxiesService) Insert(project string, targetgrpcproxy *TargetGrpcProxy) *TargetGrpcProxiesInsertCall { - c := &TargetGrpcProxiesInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)} +func (r *TargetHttpsProxiesService) Insert(project string, targethttpsproxy *TargetHttpsProxy) *TargetHttpsProxiesInsertCall { + c := &TargetHttpsProxiesInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project - c.targetgrpcproxy = targetgrpcproxy + c.targethttpsproxy = targethttpsproxy 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 *TargetGrpcProxiesInsertCall) RequestId(requestId string) *TargetGrpcProxiesInsertCall { +// 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 *TargetHttpsProxiesInsertCall) RequestId(requestId string) *TargetHttpsProxiesInsertCall { c.urlParams_.Set("requestId", requestId) return c } @@ -37104,36 +58066,35 @@ func (c *TargetGrpcProxiesInsertCall) RequestId(requestId string) *TargetGrpcPro // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *TargetGrpcProxiesInsertCall) Fields(s ...googleapi.Field) *TargetGrpcProxiesInsertCall { +func (c *TargetHttpsProxiesInsertCall) Fields(s ...googleapi.Field) *TargetHttpsProxiesInsertCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } // Context sets the context to be used in this call's Do method. -func (c *TargetGrpcProxiesInsertCall) Context(ctx context.Context) *TargetGrpcProxiesInsertCall { +func (c *TargetHttpsProxiesInsertCall) Context(ctx context.Context) *TargetHttpsProxiesInsertCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *TargetGrpcProxiesInsertCall) Header() http.Header { +func (c *TargetHttpsProxiesInsertCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *TargetGrpcProxiesInsertCall) doRequest(alt string) (*http.Response, error) { +func (c *TargetHttpsProxiesInsertCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) - var body io.Reader = nil - body, err := googleapi.WithoutDataWrapper.JSONReader(c.targetgrpcproxy) + body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.targethttpsproxy) if err != nil { return nil, err } c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/targetGrpcProxies") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/targetHttpsProxies") urls += "?" + c.urlParams_.Encode() req, err := http.NewRequest("POST", urls, body) if err != nil { @@ -37143,15 +58104,16 @@ func (c *TargetGrpcProxiesInsertCall) doRequest(alt string) (*http.Response, err googleapi.Expand(req.URL, map[string]string{ "project": c.project, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.targetHttpsProxies.insert", "request", internallog.HTTPRequest(req, body.Bytes())) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.targetGrpcProxies.insert" call. +// Do executes the "compute.targetHttpsProxies.insert" call. // 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 *TargetGrpcProxiesInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) { +func (c *TargetHttpsProxiesInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -37177,13 +58139,15 @@ func (c *TargetGrpcProxiesInsertCall) Do(opts ...googleapi.CallOption) (*Operati }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.targetHttpsProxies.insert", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type TargetGrpcProxiesListCall struct { +type TargetHttpsProxiesListCall struct { s *Service project string urlParams_ gensupport.URLParams @@ -37192,89 +58156,140 @@ type TargetGrpcProxiesListCall struct { header_ http.Header } -// List: Lists the TargetGrpcProxies for a project in the given scope. +// List: Retrieves the list of TargetHttpsProxy resources +// available to the specified project. // // - project: Project ID for this request. -func (r *TargetGrpcProxiesService) List(project string) *TargetGrpcProxiesListCall { - c := &TargetGrpcProxiesListCall{s: r.s, urlParams_: make(gensupport.URLParams)} +func (r *TargetHttpsProxiesService) List(project string) *TargetHttpsProxiesListCall { + c := &TargetHttpsProxiesListCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project return c } // Filter sets the optional parameter "filter": A filter expression that -// filters resources listed in the response. Most Compute resources support two -// types of filter expressions: expressions that support regular expressions -// and expressions that follow API improvement proposal AIP-160. These two -// types of filter expressions cannot be mixed in one request. If you want to -// use AIP-160, your expression must specify the field name, an operator, and -// the value that you want to use for filtering. The value must be a string, a -// number, or a boolean. The 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`. The `:*` comparison can be used to test whether a key has -// been defined. For example, to find all objects with `owner` label use: ``` -// labels.owner:* ``` 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) ``` If you want to use a regular -// expression, use the `eq` (equal) or `ne` (not equal) operator against a -// single un-parenthesized expression with or without quotes or against -// multiple parenthesized expressions. Examples: `fieldname eq unquoted -// literal` `fieldname eq 'single quoted literal'` `fieldname eq "double quoted -// literal" `(fieldname1 eq literal) (fieldname2 ne "literal")` The literal -// value is interpreted as a regular expression using Google RE2 library -// syntax. The literal value must match the entire field. For example, to -// filter for instances that do not end with name "instance", you would use -// `name ne .*instance`. You cannot combine constraints on multiple fields -// using regular expressions. -func (c *TargetGrpcProxiesListCall) Filter(filter string) *TargetGrpcProxiesListCall { +// filters resources listed in the response. Most +// Compute resources support two types of filter expressions: +// expressions that support regular expressions and expressions that follow +// API improvement proposal AIP-160. +// These two types of filter expressions cannot be mixed in one request. +// +// If you want to use AIP-160, your expression must specify the field name, +// an +// operator, and the value that you want to use for filtering. The value +// must be a string, a number, or a boolean. The 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`. +// +// The `:*` comparison can be used to test whether a key has been defined. +// For example, to find all objects with `owner` label +// use: +// ``` +// labels.owner:* +// ``` +// +// 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 onresource 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) +// ``` +// +// If you want to use a regular expression, use the `eq` (equal) or `ne` +// (not equal) operator against a single un-parenthesized expression with +// or +// without quotes or against multiple parenthesized expressions. +// Examples: +// +// `fieldname eq unquoted literal` +// `fieldname eq 'single quoted literal'` +// `fieldname eq "double quoted literal" +// `(fieldname1 eq literal) (fieldname2 ne "literal")` +// +// The literal value is interpreted as a regular expression using GoogleRE2 +// library syntax. +// The literal value must match the entire field. +// +// For example, to filter for instances that do not end with name +// "instance", +// you would use `name ne .*instance`. +// +// You cannot combine constraints on multiple fields using regular +// expressions. +func (c *TargetHttpsProxiesListCall) Filter(filter string) *TargetHttpsProxiesListCall { 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 *TargetGrpcProxiesListCall) MaxResults(maxResults int64) *TargetGrpcProxiesListCall { +// 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 *TargetHttpsProxiesListCall) MaxResults(maxResults int64) *TargetHttpsProxiesListCall { 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 *TargetGrpcProxiesListCall) OrderBy(orderBy string) *TargetGrpcProxiesListCall { +// 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 *TargetHttpsProxiesListCall) OrderBy(orderBy string) *TargetHttpsProxiesListCall { 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 *TargetGrpcProxiesListCall) PageToken(pageToken string) *TargetGrpcProxiesListCall { +// use. Set `pageToken` to the +// `nextPageToken` returned by a previous list request to get +// the next page of results. +func (c *TargetHttpsProxiesListCall) PageToken(pageToken string) *TargetHttpsProxiesListCall { c.urlParams_.Set("pageToken", pageToken) return c } // ReturnPartialSuccess sets the optional parameter "returnPartialSuccess": -// Opt-in for partial success behavior which provides partial results in case -// of failure. The default value is false. For example, when partial success -// behavior is enabled, aggregatedList for a single zone scope either returns -// all resources in the zone or no resources, with an error code. -func (c *TargetGrpcProxiesListCall) ReturnPartialSuccess(returnPartialSuccess bool) *TargetGrpcProxiesListCall { +// Opt-in for partial success behavior which provides partial results in +// case +// of failure. The default value is false. +// +// For example, when partial success behavior is enabled, aggregatedList for +// a +// single zone scope either returns all resources in the zone or no +// resources, +// with an error code. +func (c *TargetHttpsProxiesListCall) ReturnPartialSuccess(returnPartialSuccess bool) *TargetHttpsProxiesListCall { c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess)) return c } @@ -37282,7 +58297,7 @@ func (c *TargetGrpcProxiesListCall) ReturnPartialSuccess(returnPartialSuccess bo // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *TargetGrpcProxiesListCall) Fields(s ...googleapi.Field) *TargetGrpcProxiesListCall { +func (c *TargetHttpsProxiesListCall) Fields(s ...googleapi.Field) *TargetHttpsProxiesListCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } @@ -37290,37 +58305,36 @@ func (c *TargetGrpcProxiesListCall) Fields(s ...googleapi.Field) *TargetGrpcProx // IfNoneMatch sets an 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. -func (c *TargetGrpcProxiesListCall) IfNoneMatch(entityTag string) *TargetGrpcProxiesListCall { +func (c *TargetHttpsProxiesListCall) IfNoneMatch(entityTag string) *TargetHttpsProxiesListCall { c.ifNoneMatch_ = entityTag return c } // Context sets the context to be used in this call's Do method. -func (c *TargetGrpcProxiesListCall) Context(ctx context.Context) *TargetGrpcProxiesListCall { +func (c *TargetHttpsProxiesListCall) Context(ctx context.Context) *TargetHttpsProxiesListCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *TargetGrpcProxiesListCall) Header() http.Header { +func (c *TargetHttpsProxiesListCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *TargetGrpcProxiesListCall) doRequest(alt string) (*http.Response, error) { +func (c *TargetHttpsProxiesListCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) if c.ifNoneMatch_ != "" { reqHeaders.Set("If-None-Match", c.ifNoneMatch_) } - var body io.Reader = nil c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/targetGrpcProxies") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/targetHttpsProxies") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("GET", urls, body) + req, err := http.NewRequest("GET", urls, nil) if err != nil { return nil, err } @@ -37328,16 +58342,17 @@ func (c *TargetGrpcProxiesListCall) doRequest(alt string) (*http.Response, error googleapi.Expand(req.URL, map[string]string{ "project": c.project, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.targetHttpsProxies.list", "request", internallog.HTTPRequest(req, nil)) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.targetGrpcProxies.list" call. +// Do executes the "compute.targetHttpsProxies.list" call. // Any non-2xx status code is an error. Response headers are in either -// *TargetGrpcProxyList.ServerResponse.Header or (if a response was returned at -// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to +// *TargetHttpsProxyList.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 *TargetGrpcProxiesListCall) Do(opts ...googleapi.CallOption) (*TargetGrpcProxyList, error) { +func (c *TargetHttpsProxiesListCall) Do(opts ...googleapi.CallOption) (*TargetHttpsProxyList, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -37356,23 +58371,25 @@ func (c *TargetGrpcProxiesListCall) Do(opts ...googleapi.CallOption) (*TargetGrp if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } - ret := &TargetGrpcProxyList{ + ret := &TargetHttpsProxyList{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.targetHttpsProxies.list", "response", internallog.HTTPResponse(res, b)) return ret, nil } // 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 *TargetGrpcProxiesListCall) Pages(ctx context.Context, f func(*TargetGrpcProxyList) error) error { +func (c *TargetHttpsProxiesListCall) Pages(ctx context.Context, f func(*TargetHttpsProxyList) error) error { c.ctx_ = ctx defer c.PageToken(c.urlParams_.Get("pageToken")) for { @@ -37390,41 +58407,50 @@ func (c *TargetGrpcProxiesListCall) Pages(ctx context.Context, f func(*TargetGrp } } -type TargetGrpcProxiesPatchCall struct { - s *Service - project string - targetGrpcProxy string - targetgrpcproxy *TargetGrpcProxy - urlParams_ gensupport.URLParams - ctx_ context.Context - header_ http.Header +type TargetHttpsProxiesPatchCall struct { + s *Service + project string + targetHttpsProxy string + targethttpsproxy *TargetHttpsProxy + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header } -// Patch: Patches the specified TargetGrpcProxy resource with the data included -// in the request. This method supports PATCH semantics and uses JSON merge +// Patch: Patches the specified TargetHttpsProxy resource with the data +// included in +// the request. This method supports PATCH +// semantics and usesJSON merge // patch format and processing rules. // // - project: Project ID for this request. -// - targetGrpcProxy: Name of the TargetGrpcProxy resource to patch. -func (r *TargetGrpcProxiesService) Patch(project string, targetGrpcProxy string, targetgrpcproxy *TargetGrpcProxy) *TargetGrpcProxiesPatchCall { - c := &TargetGrpcProxiesPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)} +// - targetHttpsProxy: Name of the TargetHttpsProxy resource to patch. +func (r *TargetHttpsProxiesService) Patch(project string, targetHttpsProxy string, targethttpsproxy *TargetHttpsProxy) *TargetHttpsProxiesPatchCall { + c := &TargetHttpsProxiesPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project - c.targetGrpcProxy = targetGrpcProxy - c.targetgrpcproxy = targetgrpcproxy + c.targetHttpsProxy = targetHttpsProxy + c.targethttpsproxy = targethttpsproxy 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 *TargetGrpcProxiesPatchCall) RequestId(requestId string) *TargetGrpcProxiesPatchCall { +// 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 *TargetHttpsProxiesPatchCall) RequestId(requestId string) *TargetHttpsProxiesPatchCall { c.urlParams_.Set("requestId", requestId) return c } @@ -37432,36 +58458,35 @@ func (c *TargetGrpcProxiesPatchCall) RequestId(requestId string) *TargetGrpcProx // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *TargetGrpcProxiesPatchCall) Fields(s ...googleapi.Field) *TargetGrpcProxiesPatchCall { +func (c *TargetHttpsProxiesPatchCall) Fields(s ...googleapi.Field) *TargetHttpsProxiesPatchCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } // Context sets the context to be used in this call's Do method. -func (c *TargetGrpcProxiesPatchCall) Context(ctx context.Context) *TargetGrpcProxiesPatchCall { +func (c *TargetHttpsProxiesPatchCall) Context(ctx context.Context) *TargetHttpsProxiesPatchCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *TargetGrpcProxiesPatchCall) Header() http.Header { +func (c *TargetHttpsProxiesPatchCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *TargetGrpcProxiesPatchCall) doRequest(alt string) (*http.Response, error) { +func (c *TargetHttpsProxiesPatchCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) - var body io.Reader = nil - body, err := googleapi.WithoutDataWrapper.JSONReader(c.targetgrpcproxy) + body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.targethttpsproxy) if err != nil { return nil, err } c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/targetGrpcProxies/{targetGrpcProxy}") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/targetHttpsProxies/{targetHttpsProxy}") urls += "?" + c.urlParams_.Encode() req, err := http.NewRequest("PATCH", urls, body) if err != nil { @@ -37469,18 +58494,19 @@ func (c *TargetGrpcProxiesPatchCall) doRequest(alt string) (*http.Response, erro } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "targetGrpcProxy": c.targetGrpcProxy, + "project": c.project, + "targetHttpsProxy": c.targetHttpsProxy, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.targetHttpsProxies.patch", "request", internallog.HTTPRequest(req, body.Bytes())) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.targetGrpcProxies.patch" call. +// Do executes the "compute.targetHttpsProxies.patch" call. // 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 *TargetGrpcProxiesPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) { +func (c *TargetHttpsProxiesPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -37506,191 +58532,244 @@ func (c *TargetGrpcProxiesPatchCall) Do(opts ...googleapi.CallOption) (*Operatio }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.targetHttpsProxies.patch", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type TargetHttpProxiesAggregatedListCall struct { - s *Service - project string - urlParams_ gensupport.URLParams - ifNoneMatch_ string - ctx_ context.Context - header_ http.Header +type TargetHttpsProxiesSetCertificateMapCall struct { + s *Service + project string + targetHttpsProxy string + targethttpsproxiessetcertificatemaprequest *TargetHttpsProxiesSetCertificateMapRequest + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header } -// AggregatedList: Retrieves the list of all TargetHttpProxy resources, -// regional and global, available to the specified project. To prevent failure, -// Google recommends that you set the `returnPartialSuccess` parameter to -// `true`. +// SetCertificateMap: Changes the Certificate Map for TargetHttpsProxy. // -// - project: Name of the project scoping this request. -func (r *TargetHttpProxiesService) AggregatedList(project string) *TargetHttpProxiesAggregatedListCall { - c := &TargetHttpProxiesAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)} +// - project: Project ID for this request. +// - targetHttpsProxy: Name of the TargetHttpsProxy resource whose +// CertificateMap is +// to be set. The name must be 1-63 characters long, and comply with RFC1035. +func (r *TargetHttpsProxiesService) SetCertificateMap(project string, targetHttpsProxy string, targethttpsproxiessetcertificatemaprequest *TargetHttpsProxiesSetCertificateMapRequest) *TargetHttpsProxiesSetCertificateMapCall { + c := &TargetHttpsProxiesSetCertificateMapCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project + c.targetHttpsProxy = targetHttpsProxy + c.targethttpsproxiessetcertificatemaprequest = targethttpsproxiessetcertificatemaprequest return c } -// Filter sets the optional parameter "filter": A filter expression that -// filters resources listed in the response. Most Compute resources support two -// types of filter expressions: expressions that support regular expressions -// and expressions that follow API improvement proposal AIP-160. These two -// types of filter expressions cannot be mixed in one request. If you want to -// use AIP-160, your expression must specify the field name, an operator, and -// the value that you want to use for filtering. The value must be a string, a -// number, or a boolean. The 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`. The `:*` comparison can be used to test whether a key has -// been defined. For example, to find all objects with `owner` label use: ``` -// labels.owner:* ``` 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) ``` If you want to use a regular -// expression, use the `eq` (equal) or `ne` (not equal) operator against a -// single un-parenthesized expression with or without quotes or against -// multiple parenthesized expressions. Examples: `fieldname eq unquoted -// literal` `fieldname eq 'single quoted literal'` `fieldname eq "double quoted -// literal" `(fieldname1 eq literal) (fieldname2 ne "literal")` The literal -// value is interpreted as a regular expression using Google RE2 library -// syntax. The literal value must match the entire field. For example, to -// filter for instances that do not end with name "instance", you would use -// `name ne .*instance`. You cannot combine constraints on multiple fields -// using regular expressions. -func (c *TargetHttpProxiesAggregatedListCall) Filter(filter string) *TargetHttpProxiesAggregatedListCall { - c.urlParams_.Set("filter", filter) +// 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 *TargetHttpsProxiesSetCertificateMapCall) RequestId(requestId string) *TargetHttpsProxiesSetCertificateMapCall { + c.urlParams_.Set("requestId", requestId) return c } -// IncludeAllScopes sets the optional parameter "includeAllScopes": Indicates -// whether every visible scope for each scope type (zone, region, global) -// should be included in the response. For new resource types added after this -// field, the flag has no effect as new resource types will always include -// every visible scope for each scope type in response. For resource types -// which predate this field, if this flag is omitted or false, only scopes of -// the scope types where the resource type is expected to be found will be -// included. -func (c *TargetHttpProxiesAggregatedListCall) IncludeAllScopes(includeAllScopes bool) *TargetHttpProxiesAggregatedListCall { - c.urlParams_.Set("includeAllScopes", fmt.Sprint(includeAllScopes)) +// Fields allows partial responses to be retrieved. See +// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more +// details. +func (c *TargetHttpsProxiesSetCertificateMapCall) Fields(s ...googleapi.Field) *TargetHttpsProxiesSetCertificateMapCall { + c.urlParams_.Set("fields", googleapi.CombineFields(s)) 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 *TargetHttpProxiesAggregatedListCall) MaxResults(maxResults int64) *TargetHttpProxiesAggregatedListCall { - c.urlParams_.Set("maxResults", fmt.Sprint(maxResults)) +// Context sets the context to be used in this call's Do method. +func (c *TargetHttpsProxiesSetCertificateMapCall) Context(ctx context.Context) *TargetHttpsProxiesSetCertificateMapCall { + c.ctx_ = ctx 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 *TargetHttpProxiesAggregatedListCall) OrderBy(orderBy string) *TargetHttpProxiesAggregatedListCall { - c.urlParams_.Set("orderBy", orderBy) - return c +// Header returns a http.Header that can be modified by the caller to add +// headers to the request. +func (c *TargetHttpsProxiesSetCertificateMapCall) Header() http.Header { + if c.header_ == nil { + c.header_ = make(http.Header) + } + return c.header_ } -// 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 *TargetHttpProxiesAggregatedListCall) PageToken(pageToken string) *TargetHttpProxiesAggregatedListCall { - c.urlParams_.Set("pageToken", pageToken) - return c +func (c *TargetHttpsProxiesSetCertificateMapCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) + body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.targethttpsproxiessetcertificatemaprequest) + if err != nil { + return nil, err + } + c.urlParams_.Set("alt", alt) + c.urlParams_.Set("prettyPrint", "false") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/targetHttpsProxies/{targetHttpsProxy}/setCertificateMap") + urls += "?" + c.urlParams_.Encode() + req, err := http.NewRequest("POST", urls, body) + if err != nil { + return nil, err + } + req.Header = reqHeaders + googleapi.Expand(req.URL, map[string]string{ + "project": c.project, + "targetHttpsProxy": c.targetHttpsProxy, + }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.targetHttpsProxies.setCertificateMap", "request", internallog.HTTPRequest(req, body.Bytes())) + return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// ReturnPartialSuccess sets the optional parameter "returnPartialSuccess": -// Opt-in for partial success behavior which provides partial results in case -// of failure. The default value is false. For example, when partial success -// behavior is enabled, aggregatedList for a single zone scope either returns -// all resources in the zone or no resources, with an error code. -func (c *TargetHttpProxiesAggregatedListCall) ReturnPartialSuccess(returnPartialSuccess bool) *TargetHttpProxiesAggregatedListCall { - c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess)) +// Do executes the "compute.targetHttpsProxies.setCertificateMap" call. +// 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 *TargetHttpsProxiesSetCertificateMapCall) 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, gensupport.WrapError(&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, gensupport.WrapError(err) + } + ret := &Operation{ + ServerResponse: googleapi.ServerResponse{ + Header: res.Header, + HTTPStatusCode: res.StatusCode, + }, + } + target := &ret + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { + return nil, err + } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.targetHttpsProxies.setCertificateMap", "response", internallog.HTTPResponse(res, b)) + return ret, nil +} + +type TargetHttpsProxiesSetQuicOverrideCall struct { + s *Service + project string + targetHttpsProxy string + targethttpsproxiessetquicoverriderequest *TargetHttpsProxiesSetQuicOverrideRequest + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header +} + +// SetQuicOverride: Sets the QUIC override policy for TargetHttpsProxy. +// +// - project: Project ID for this request. +// - targetHttpsProxy: Name of the TargetHttpsProxy resource to set the QUIC +// override policy for. +// +// The name should conform to RFC1035. +func (r *TargetHttpsProxiesService) SetQuicOverride(project string, targetHttpsProxy string, targethttpsproxiessetquicoverriderequest *TargetHttpsProxiesSetQuicOverrideRequest) *TargetHttpsProxiesSetQuicOverrideCall { + c := &TargetHttpsProxiesSetQuicOverrideCall{s: r.s, urlParams_: make(gensupport.URLParams)} + c.project = project + c.targetHttpsProxy = targetHttpsProxy + c.targethttpsproxiessetquicoverriderequest = targethttpsproxiessetquicoverriderequest return c } -// ServiceProjectNumber sets the optional parameter "serviceProjectNumber": The -// Shared VPC service project id or service project number for which aggregated -// list request is invoked for subnetworks list-usable api. -func (c *TargetHttpProxiesAggregatedListCall) ServiceProjectNumber(serviceProjectNumber int64) *TargetHttpProxiesAggregatedListCall { - c.urlParams_.Set("serviceProjectNumber", fmt.Sprint(serviceProjectNumber)) +// 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 *TargetHttpsProxiesSetQuicOverrideCall) RequestId(requestId string) *TargetHttpsProxiesSetQuicOverrideCall { + 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 // details. -func (c *TargetHttpProxiesAggregatedListCall) Fields(s ...googleapi.Field) *TargetHttpProxiesAggregatedListCall { +func (c *TargetHttpsProxiesSetQuicOverrideCall) Fields(s ...googleapi.Field) *TargetHttpsProxiesSetQuicOverrideCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } -// IfNoneMatch sets an 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. -func (c *TargetHttpProxiesAggregatedListCall) IfNoneMatch(entityTag string) *TargetHttpProxiesAggregatedListCall { - c.ifNoneMatch_ = entityTag - return c -} - // Context sets the context to be used in this call's Do method. -func (c *TargetHttpProxiesAggregatedListCall) Context(ctx context.Context) *TargetHttpProxiesAggregatedListCall { +func (c *TargetHttpsProxiesSetQuicOverrideCall) Context(ctx context.Context) *TargetHttpsProxiesSetQuicOverrideCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *TargetHttpProxiesAggregatedListCall) Header() http.Header { +func (c *TargetHttpsProxiesSetQuicOverrideCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *TargetHttpProxiesAggregatedListCall) doRequest(alt string) (*http.Response, error) { - reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) - if c.ifNoneMatch_ != "" { - reqHeaders.Set("If-None-Match", c.ifNoneMatch_) +func (c *TargetHttpsProxiesSetQuicOverrideCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) + body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.targethttpsproxiessetquicoverriderequest) + if err != nil { + return nil, err } - var body io.Reader = nil c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/aggregated/targetHttpProxies") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/targetHttpsProxies/{targetHttpsProxy}/setQuicOverride") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("GET", urls, body) + req, err := http.NewRequest("POST", urls, body) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, + "project": c.project, + "targetHttpsProxy": c.targetHttpsProxy, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.targetHttpsProxies.setQuicOverride", "request", internallog.HTTPRequest(req, body.Bytes())) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.targetHttpProxies.aggregatedList" call. +// Do executes the "compute.targetHttpsProxies.setQuicOverride" call. // Any non-2xx status code is an error. Response headers are in either -// *TargetHttpProxyAggregatedList.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 *TargetHttpProxiesAggregatedListCall) Do(opts ...googleapi.CallOption) (*TargetHttpProxyAggregatedList, error) { +// *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 *TargetHttpsProxiesSetQuicOverrideCall) Do(opts ...googleapi.CallOption) (*Operation, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -37709,71 +58788,64 @@ func (c *TargetHttpProxiesAggregatedListCall) Do(opts ...googleapi.CallOption) ( if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } - ret := &TargetHttpProxyAggregatedList{ + ret := &Operation{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.targetHttpsProxies.setQuicOverride", "response", internallog.HTTPResponse(res, b)) return ret, nil } -// 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 *TargetHttpProxiesAggregatedListCall) Pages(ctx context.Context, f func(*TargetHttpProxyAggregatedList) error) error { - c.ctx_ = ctx - defer c.PageToken(c.urlParams_.Get("pageToken")) - 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) - } -} - -type TargetHttpProxiesDeleteCall struct { - s *Service - project string - targetHttpProxy string - urlParams_ gensupport.URLParams - ctx_ context.Context - header_ http.Header +type TargetHttpsProxiesSetSslCertificatesCall struct { + s *Service + project string + targetHttpsProxy string + targethttpsproxiessetsslcertificatesrequest *TargetHttpsProxiesSetSslCertificatesRequest + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header } -// Delete: Deletes the specified TargetHttpProxy resource. +// SetSslCertificates: Replaces SslCertificates for TargetHttpsProxy. // -// - project: Project ID for this request. -// - targetHttpProxy: Name of the TargetHttpProxy resource to delete. -func (r *TargetHttpProxiesService) Delete(project string, targetHttpProxy string) *TargetHttpProxiesDeleteCall { - c := &TargetHttpProxiesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)} +// - project: Project ID for this request. +// - targetHttpsProxy: Name of the TargetHttpsProxy resource to set +// an +// +// SslCertificates resource for. +func (r *TargetHttpsProxiesService) SetSslCertificates(project string, targetHttpsProxy string, targethttpsproxiessetsslcertificatesrequest *TargetHttpsProxiesSetSslCertificatesRequest) *TargetHttpsProxiesSetSslCertificatesCall { + c := &TargetHttpsProxiesSetSslCertificatesCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project - c.targetHttpProxy = targetHttpProxy + c.targetHttpsProxy = targetHttpsProxy + c.targethttpsproxiessetsslcertificatesrequest = targethttpsproxiessetsslcertificatesrequest 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 *TargetHttpProxiesDeleteCall) RequestId(requestId string) *TargetHttpProxiesDeleteCall { +// 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 *TargetHttpsProxiesSetSslCertificatesCall) RequestId(requestId string) *TargetHttpsProxiesSetSslCertificatesCall { c.urlParams_.Set("requestId", requestId) return c } @@ -37781,51 +58853,55 @@ func (c *TargetHttpProxiesDeleteCall) RequestId(requestId string) *TargetHttpPro // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *TargetHttpProxiesDeleteCall) Fields(s ...googleapi.Field) *TargetHttpProxiesDeleteCall { +func (c *TargetHttpsProxiesSetSslCertificatesCall) Fields(s ...googleapi.Field) *TargetHttpsProxiesSetSslCertificatesCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } // Context sets the context to be used in this call's Do method. -func (c *TargetHttpProxiesDeleteCall) Context(ctx context.Context) *TargetHttpProxiesDeleteCall { +func (c *TargetHttpsProxiesSetSslCertificatesCall) Context(ctx context.Context) *TargetHttpsProxiesSetSslCertificatesCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *TargetHttpProxiesDeleteCall) Header() http.Header { +func (c *TargetHttpsProxiesSetSslCertificatesCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *TargetHttpProxiesDeleteCall) doRequest(alt string) (*http.Response, error) { - reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) - var body io.Reader = nil +func (c *TargetHttpsProxiesSetSslCertificatesCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) + body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.targethttpsproxiessetsslcertificatesrequest) + if err != nil { + return nil, err + } c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/targetHttpProxies/{targetHttpProxy}") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/targetHttpsProxies/{targetHttpsProxy}/setSslCertificates") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("DELETE", urls, body) + req, err := http.NewRequest("POST", urls, body) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "targetHttpProxy": c.targetHttpProxy, + "project": c.project, + "targetHttpsProxy": c.targetHttpsProxy, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.targetHttpsProxies.setSslCertificates", "request", internallog.HTTPRequest(req, body.Bytes())) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.targetHttpProxies.delete" call. +// Do executes the "compute.targetHttpsProxies.setSslCertificates" call. // 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 *TargetHttpProxiesDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) { +func (c *TargetHttpsProxiesSetSslCertificatesCall) Do(opts ...googleapi.CallOption) (*Operation, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -37851,93 +58927,117 @@ func (c *TargetHttpProxiesDeleteCall) Do(opts ...googleapi.CallOption) (*Operati }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.targetHttpsProxies.setSslCertificates", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type TargetHttpProxiesGetCall struct { - s *Service - project string - targetHttpProxy string - urlParams_ gensupport.URLParams - ifNoneMatch_ string - ctx_ context.Context - header_ http.Header +type TargetHttpsProxiesSetSslPolicyCall struct { + s *Service + project string + targetHttpsProxy string + sslpolicyreference *SslPolicyReference + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header } -// Get: Returns the specified TargetHttpProxy resource. +// SetSslPolicy: Sets the SSL policy for TargetHttpsProxy. The SSL policy +// specifies the +// server-side support for SSL features. This affects connections +// between +// clients and the HTTPS proxy load balancer. They do not affect the +// connection between the load balancer and the backends. // -// - project: Project ID for this request. -// - targetHttpProxy: Name of the TargetHttpProxy resource to return. -func (r *TargetHttpProxiesService) Get(project string, targetHttpProxy string) *TargetHttpProxiesGetCall { - c := &TargetHttpProxiesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)} +// - project: Project ID for this request. +// - targetHttpsProxy: Name of the TargetHttpsProxy resource whose SSL policy +// is +// to be set. The name must be 1-63 characters long, and comply with RFC1035. +func (r *TargetHttpsProxiesService) SetSslPolicy(project string, targetHttpsProxy string, sslpolicyreference *SslPolicyReference) *TargetHttpsProxiesSetSslPolicyCall { + c := &TargetHttpsProxiesSetSslPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project - c.targetHttpProxy = targetHttpProxy + c.targetHttpsProxy = targetHttpsProxy + c.sslpolicyreference = sslpolicyreference + 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 *TargetHttpsProxiesSetSslPolicyCall) RequestId(requestId string) *TargetHttpsProxiesSetSslPolicyCall { + 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 // details. -func (c *TargetHttpProxiesGetCall) Fields(s ...googleapi.Field) *TargetHttpProxiesGetCall { +func (c *TargetHttpsProxiesSetSslPolicyCall) Fields(s ...googleapi.Field) *TargetHttpsProxiesSetSslPolicyCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } -// IfNoneMatch sets an 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. -func (c *TargetHttpProxiesGetCall) IfNoneMatch(entityTag string) *TargetHttpProxiesGetCall { - c.ifNoneMatch_ = entityTag - return c -} - // Context sets the context to be used in this call's Do method. -func (c *TargetHttpProxiesGetCall) Context(ctx context.Context) *TargetHttpProxiesGetCall { +func (c *TargetHttpsProxiesSetSslPolicyCall) Context(ctx context.Context) *TargetHttpsProxiesSetSslPolicyCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *TargetHttpProxiesGetCall) Header() http.Header { +func (c *TargetHttpsProxiesSetSslPolicyCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *TargetHttpProxiesGetCall) doRequest(alt string) (*http.Response, error) { - reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) - if c.ifNoneMatch_ != "" { - reqHeaders.Set("If-None-Match", c.ifNoneMatch_) +func (c *TargetHttpsProxiesSetSslPolicyCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) + body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.sslpolicyreference) + if err != nil { + return nil, err } - var body io.Reader = nil c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/targetHttpProxies/{targetHttpProxy}") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/targetHttpsProxies/{targetHttpsProxy}/setSslPolicy") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("GET", urls, body) + req, err := http.NewRequest("POST", urls, body) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "targetHttpProxy": c.targetHttpProxy, + "project": c.project, + "targetHttpsProxy": c.targetHttpsProxy, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.targetHttpsProxies.setSslPolicy", "request", internallog.HTTPRequest(req, body.Bytes())) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.targetHttpProxies.get" call. +// Do executes the "compute.targetHttpsProxies.setSslPolicy" call. // Any non-2xx status code is an error. Response headers are in either -// *TargetHttpProxy.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 *TargetHttpProxiesGetCall) Do(opts ...googleapi.CallOption) (*TargetHttpProxy, error) { +// *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 *TargetHttpsProxiesSetSslPolicyCall) Do(opts ...googleapi.CallOption) (*Operation, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -37956,50 +59056,64 @@ func (c *TargetHttpProxiesGetCall) Do(opts ...googleapi.CallOption) (*TargetHttp if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } - ret := &TargetHttpProxy{ + ret := &Operation{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.targetHttpsProxies.setSslPolicy", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type TargetHttpProxiesInsertCall struct { - s *Service - project string - targethttpproxy *TargetHttpProxy - urlParams_ gensupport.URLParams - ctx_ context.Context - header_ http.Header +type TargetHttpsProxiesSetUrlMapCall struct { + s *Service + project string + targetHttpsProxy string + urlmapreference *UrlMapReference + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header } -// Insert: Creates a TargetHttpProxy resource in the specified project using -// the data included in the request. +// SetUrlMap: Changes the URL map for TargetHttpsProxy. // -// - project: Project ID for this request. -func (r *TargetHttpProxiesService) Insert(project string, targethttpproxy *TargetHttpProxy) *TargetHttpProxiesInsertCall { - c := &TargetHttpProxiesInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)} +// - project: Project ID for this request. +// - targetHttpsProxy: Name of the TargetHttpsProxy resource whose URL map +// is +// +// to be set. +func (r *TargetHttpsProxiesService) SetUrlMap(project string, targetHttpsProxy string, urlmapreference *UrlMapReference) *TargetHttpsProxiesSetUrlMapCall { + c := &TargetHttpsProxiesSetUrlMapCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project - c.targethttpproxy = targethttpproxy + c.targetHttpsProxy = targetHttpsProxy + c.urlmapreference = urlmapreference 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 *TargetHttpProxiesInsertCall) RequestId(requestId string) *TargetHttpProxiesInsertCall { +// 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 *TargetHttpsProxiesSetUrlMapCall) RequestId(requestId string) *TargetHttpsProxiesSetUrlMapCall { c.urlParams_.Set("requestId", requestId) return c } @@ -38007,36 +59121,35 @@ func (c *TargetHttpProxiesInsertCall) RequestId(requestId string) *TargetHttpPro // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *TargetHttpProxiesInsertCall) Fields(s ...googleapi.Field) *TargetHttpProxiesInsertCall { +func (c *TargetHttpsProxiesSetUrlMapCall) Fields(s ...googleapi.Field) *TargetHttpsProxiesSetUrlMapCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } // Context sets the context to be used in this call's Do method. -func (c *TargetHttpProxiesInsertCall) Context(ctx context.Context) *TargetHttpProxiesInsertCall { +func (c *TargetHttpsProxiesSetUrlMapCall) Context(ctx context.Context) *TargetHttpsProxiesSetUrlMapCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *TargetHttpProxiesInsertCall) Header() http.Header { +func (c *TargetHttpsProxiesSetUrlMapCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *TargetHttpProxiesInsertCall) doRequest(alt string) (*http.Response, error) { +func (c *TargetHttpsProxiesSetUrlMapCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) - var body io.Reader = nil - body, err := googleapi.WithoutDataWrapper.JSONReader(c.targethttpproxy) + body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.urlmapreference) if err != nil { return nil, err } c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/targetHttpProxies") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/targetHttpsProxies/{targetHttpsProxy}/setUrlMap") urls += "?" + c.urlParams_.Encode() req, err := http.NewRequest("POST", urls, body) if err != nil { @@ -38044,17 +59157,19 @@ func (c *TargetHttpProxiesInsertCall) doRequest(alt string) (*http.Response, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, + "project": c.project, + "targetHttpsProxy": c.targetHttpsProxy, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.targetHttpsProxies.setUrlMap", "request", internallog.HTTPRequest(req, body.Bytes())) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.targetHttpProxies.insert" call. +// Do executes the "compute.targetHttpsProxies.setUrlMap" call. // 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 *TargetHttpProxiesInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) { +func (c *TargetHttpsProxiesSetUrlMapCall) Do(opts ...googleapi.CallOption) (*Operation, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -38080,13 +59195,15 @@ func (c *TargetHttpProxiesInsertCall) Do(opts ...googleapi.CallOption) (*Operati }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.targetHttpsProxies.setUrlMap", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type TargetHttpProxiesListCall struct { +type TargetInstancesAggregatedListCall struct { s *Service project string urlParams_ gensupport.URLParams @@ -38095,98 +59212,177 @@ type TargetHttpProxiesListCall struct { header_ http.Header } -// List: Retrieves the list of TargetHttpProxy resources available to the -// specified project. +// AggregatedList: Retrieves an aggregated list of target instances. +// +// To prevent failure, Google recommends that you set +// the +// `returnPartialSuccess` parameter to `true`. // // - project: Project ID for this request. -func (r *TargetHttpProxiesService) List(project string) *TargetHttpProxiesListCall { - c := &TargetHttpProxiesListCall{s: r.s, urlParams_: make(gensupport.URLParams)} +func (r *TargetInstancesService) AggregatedList(project string) *TargetInstancesAggregatedListCall { + c := &TargetInstancesAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project return c } // Filter sets the optional parameter "filter": A filter expression that -// filters resources listed in the response. Most Compute resources support two -// types of filter expressions: expressions that support regular expressions -// and expressions that follow API improvement proposal AIP-160. These two -// types of filter expressions cannot be mixed in one request. If you want to -// use AIP-160, your expression must specify the field name, an operator, and -// the value that you want to use for filtering. The value must be a string, a -// number, or a boolean. The 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`. The `:*` comparison can be used to test whether a key has -// been defined. For example, to find all objects with `owner` label use: ``` -// labels.owner:* ``` 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) ``` If you want to use a regular -// expression, use the `eq` (equal) or `ne` (not equal) operator against a -// single un-parenthesized expression with or without quotes or against -// multiple parenthesized expressions. Examples: `fieldname eq unquoted -// literal` `fieldname eq 'single quoted literal'` `fieldname eq "double quoted -// literal" `(fieldname1 eq literal) (fieldname2 ne "literal")` The literal -// value is interpreted as a regular expression using Google RE2 library -// syntax. The literal value must match the entire field. For example, to -// filter for instances that do not end with name "instance", you would use -// `name ne .*instance`. You cannot combine constraints on multiple fields -// using regular expressions. -func (c *TargetHttpProxiesListCall) Filter(filter string) *TargetHttpProxiesListCall { +// filters resources listed in the response. Most +// Compute resources support two types of filter expressions: +// expressions that support regular expressions and expressions that follow +// API improvement proposal AIP-160. +// These two types of filter expressions cannot be mixed in one request. +// +// If you want to use AIP-160, your expression must specify the field name, +// an +// operator, and the value that you want to use for filtering. The value +// must be a string, a number, or a boolean. The 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`. +// +// The `:*` comparison can be used to test whether a key has been defined. +// For example, to find all objects with `owner` label +// use: +// ``` +// labels.owner:* +// ``` +// +// 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 onresource 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) +// ``` +// +// If you want to use a regular expression, use the `eq` (equal) or `ne` +// (not equal) operator against a single un-parenthesized expression with +// or +// without quotes or against multiple parenthesized expressions. +// Examples: +// +// `fieldname eq unquoted literal` +// `fieldname eq 'single quoted literal'` +// `fieldname eq "double quoted literal" +// `(fieldname1 eq literal) (fieldname2 ne "literal")` +// +// The literal value is interpreted as a regular expression using GoogleRE2 +// library syntax. +// The literal value must match the entire field. +// +// For example, to filter for instances that do not end with name +// "instance", +// you would use `name ne .*instance`. +// +// You cannot combine constraints on multiple fields using regular +// expressions. +func (c *TargetInstancesAggregatedListCall) Filter(filter string) *TargetInstancesAggregatedListCall { c.urlParams_.Set("filter", filter) return c } +// IncludeAllScopes sets the optional parameter "includeAllScopes": Indicates +// whether every visible scope for each scope type (zone, region, +// global) should be included in the response. For new resource types +// added +// after this field, the flag has no effect as new resource types will +// always +// include every visible scope for each scope type in response. For +// resource +// types which predate this field, if this flag is omitted or false, +// only +// scopes of the scope types where the resource type is expected to be +// found +// will be included. +func (c *TargetInstancesAggregatedListCall) IncludeAllScopes(includeAllScopes bool) *TargetInstancesAggregatedListCall { + c.urlParams_.Set("includeAllScopes", fmt.Sprint(includeAllScopes)) + 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 *TargetHttpProxiesListCall) MaxResults(maxResults int64) *TargetHttpProxiesListCall { +// 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 *TargetInstancesAggregatedListCall) MaxResults(maxResults int64) *TargetInstancesAggregatedListCall { 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 *TargetHttpProxiesListCall) OrderBy(orderBy string) *TargetHttpProxiesListCall { +// 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 *TargetInstancesAggregatedListCall) OrderBy(orderBy string) *TargetInstancesAggregatedListCall { 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 *TargetHttpProxiesListCall) PageToken(pageToken string) *TargetHttpProxiesListCall { +// use. Set `pageToken` to the +// `nextPageToken` returned by a previous list request to get +// the next page of results. +func (c *TargetInstancesAggregatedListCall) PageToken(pageToken string) *TargetInstancesAggregatedListCall { c.urlParams_.Set("pageToken", pageToken) return c } // ReturnPartialSuccess sets the optional parameter "returnPartialSuccess": -// Opt-in for partial success behavior which provides partial results in case -// of failure. The default value is false. For example, when partial success -// behavior is enabled, aggregatedList for a single zone scope either returns -// all resources in the zone or no resources, with an error code. -func (c *TargetHttpProxiesListCall) ReturnPartialSuccess(returnPartialSuccess bool) *TargetHttpProxiesListCall { +// Opt-in for partial success behavior which provides partial results in +// case +// of failure. The default value is false. +// +// For example, when partial success behavior is enabled, aggregatedList for +// a +// single zone scope either returns all resources in the zone or no +// resources, +// with an error code. +func (c *TargetInstancesAggregatedListCall) ReturnPartialSuccess(returnPartialSuccess bool) *TargetInstancesAggregatedListCall { c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess)) return c } +// ServiceProjectNumber sets the optional parameter "serviceProjectNumber": The +// Shared VPC service project id or service project number for which +// aggregated list request is invoked for subnetworks list-usable api. +func (c *TargetInstancesAggregatedListCall) ServiceProjectNumber(serviceProjectNumber int64) *TargetInstancesAggregatedListCall { + c.urlParams_.Set("serviceProjectNumber", fmt.Sprint(serviceProjectNumber)) + return c +} + // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *TargetHttpProxiesListCall) Fields(s ...googleapi.Field) *TargetHttpProxiesListCall { +func (c *TargetInstancesAggregatedListCall) Fields(s ...googleapi.Field) *TargetInstancesAggregatedListCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } @@ -38194,37 +59390,36 @@ func (c *TargetHttpProxiesListCall) Fields(s ...googleapi.Field) *TargetHttpProx // IfNoneMatch sets an 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. -func (c *TargetHttpProxiesListCall) IfNoneMatch(entityTag string) *TargetHttpProxiesListCall { +func (c *TargetInstancesAggregatedListCall) IfNoneMatch(entityTag string) *TargetInstancesAggregatedListCall { c.ifNoneMatch_ = entityTag return c } // Context sets the context to be used in this call's Do method. -func (c *TargetHttpProxiesListCall) Context(ctx context.Context) *TargetHttpProxiesListCall { +func (c *TargetInstancesAggregatedListCall) Context(ctx context.Context) *TargetInstancesAggregatedListCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *TargetHttpProxiesListCall) Header() http.Header { +func (c *TargetInstancesAggregatedListCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *TargetHttpProxiesListCall) doRequest(alt string) (*http.Response, error) { +func (c *TargetInstancesAggregatedListCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) if c.ifNoneMatch_ != "" { reqHeaders.Set("If-None-Match", c.ifNoneMatch_) } - var body io.Reader = nil c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/targetHttpProxies") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/aggregated/targetInstances") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("GET", urls, body) + req, err := http.NewRequest("GET", urls, nil) if err != nil { return nil, err } @@ -38232,16 +59427,17 @@ func (c *TargetHttpProxiesListCall) doRequest(alt string) (*http.Response, error googleapi.Expand(req.URL, map[string]string{ "project": c.project, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.targetInstances.aggregatedList", "request", internallog.HTTPRequest(req, nil)) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.targetHttpProxies.list" call. +// Do executes the "compute.targetInstances.aggregatedList" call. // Any non-2xx status code is an error. Response headers are in either -// *TargetHttpProxyList.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 *TargetHttpProxiesListCall) Do(opts ...googleapi.CallOption) (*TargetHttpProxyList, error) { +// *TargetInstanceAggregatedList.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 *TargetInstancesAggregatedListCall) Do(opts ...googleapi.CallOption) (*TargetInstanceAggregatedList, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -38260,23 +59456,25 @@ func (c *TargetHttpProxiesListCall) Do(opts ...googleapi.CallOption) (*TargetHtt if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } - ret := &TargetHttpProxyList{ + ret := &TargetInstanceAggregatedList{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.targetInstances.aggregatedList", "response", internallog.HTTPResponse(res, b)) return ret, nil } // 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 *TargetHttpProxiesListCall) Pages(ctx context.Context, f func(*TargetHttpProxyList) error) error { +func (c *TargetInstancesAggregatedListCall) Pages(ctx context.Context, f func(*TargetInstanceAggregatedList) error) error { c.ctx_ = ctx defer c.PageToken(c.urlParams_.Get("pageToken")) for { @@ -38294,41 +59492,47 @@ func (c *TargetHttpProxiesListCall) Pages(ctx context.Context, f func(*TargetHtt } } -type TargetHttpProxiesPatchCall struct { - s *Service - project string - targetHttpProxy string - targethttpproxy *TargetHttpProxy - urlParams_ gensupport.URLParams - ctx_ context.Context - header_ http.Header +type TargetInstancesDeleteCall struct { + s *Service + project string + zone string + targetInstance string + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header } -// Patch: Patches the specified TargetHttpProxy resource with the data included -// in the request. This method supports PATCH semantics and uses JSON merge -// patch format and processing rules. +// Delete: Deletes the specified TargetInstance resource. // // - project: Project ID for this request. -// - targetHttpProxy: Name of the TargetHttpProxy resource to patch. -func (r *TargetHttpProxiesService) Patch(project string, targetHttpProxy string, targethttpproxy *TargetHttpProxy) *TargetHttpProxiesPatchCall { - c := &TargetHttpProxiesPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)} +// - targetInstance: Name of the TargetInstance resource to delete. +// - zone: Name of the zone scoping this request. +func (r *TargetInstancesService) Delete(project string, zone string, targetInstance string) *TargetInstancesDeleteCall { + c := &TargetInstancesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project - c.targetHttpProxy = targetHttpProxy - c.targethttpproxy = targethttpproxy + c.zone = zone + c.targetInstance = targetInstance 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 *TargetHttpProxiesPatchCall) RequestId(requestId string) *TargetHttpProxiesPatchCall { +// 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 *TargetInstancesDeleteCall) RequestId(requestId string) *TargetInstancesDeleteCall { c.urlParams_.Set("requestId", requestId) return c } @@ -38336,55 +59540,52 @@ func (c *TargetHttpProxiesPatchCall) RequestId(requestId string) *TargetHttpProx // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *TargetHttpProxiesPatchCall) Fields(s ...googleapi.Field) *TargetHttpProxiesPatchCall { +func (c *TargetInstancesDeleteCall) Fields(s ...googleapi.Field) *TargetInstancesDeleteCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } // Context sets the context to be used in this call's Do method. -func (c *TargetHttpProxiesPatchCall) Context(ctx context.Context) *TargetHttpProxiesPatchCall { +func (c *TargetInstancesDeleteCall) Context(ctx context.Context) *TargetInstancesDeleteCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *TargetHttpProxiesPatchCall) Header() http.Header { +func (c *TargetInstancesDeleteCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *TargetHttpProxiesPatchCall) doRequest(alt string) (*http.Response, error) { - reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) - var body io.Reader = nil - body, err := googleapi.WithoutDataWrapper.JSONReader(c.targethttpproxy) - if err != nil { - return nil, err - } +func (c *TargetInstancesDeleteCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/targetHttpProxies/{targetHttpProxy}") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/targetInstances/{targetInstance}") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("PATCH", urls, body) + req, err := http.NewRequest("DELETE", urls, nil) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "targetHttpProxy": c.targetHttpProxy, + "project": c.project, + "zone": c.zone, + "targetInstance": c.targetInstance, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.targetInstances.delete", "request", internallog.HTTPRequest(req, nil)) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.targetHttpProxies.patch" call. +// Do executes the "compute.targetInstances.delete" call. // 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 *TargetHttpProxiesPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) { +func (c *TargetInstancesDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -38410,45 +59611,173 @@ func (c *TargetHttpProxiesPatchCall) Do(opts ...googleapi.CallOption) (*Operatio }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.targetInstances.delete", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type TargetHttpProxiesSetUrlMapCall struct { - s *Service - project string - targetHttpProxy string - urlmapreference *UrlMapReference - urlParams_ gensupport.URLParams - ctx_ context.Context - header_ http.Header +type TargetInstancesGetCall struct { + s *Service + project string + zone string + targetInstance string + urlParams_ gensupport.URLParams + ifNoneMatch_ string + ctx_ context.Context + header_ http.Header } -// SetUrlMap: Changes the URL map for TargetHttpProxy. +// Get: Returns the specified TargetInstance resource. // // - project: Project ID for this request. -// - targetHttpProxy: Name of the TargetHttpProxy to set a URL map for. -func (r *TargetHttpProxiesService) SetUrlMap(project string, targetHttpProxy string, urlmapreference *UrlMapReference) *TargetHttpProxiesSetUrlMapCall { - c := &TargetHttpProxiesSetUrlMapCall{s: r.s, urlParams_: make(gensupport.URLParams)} +// - targetInstance: Name of the TargetInstance resource to return. +// - zone: Name of the zone scoping this request. +func (r *TargetInstancesService) Get(project string, zone string, targetInstance string) *TargetInstancesGetCall { + c := &TargetInstancesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project - c.targetHttpProxy = targetHttpProxy - c.urlmapreference = urlmapreference + c.zone = zone + c.targetInstance = targetInstance + return c +} + +// Fields allows partial responses to be retrieved. See +// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more +// details. +func (c *TargetInstancesGetCall) Fields(s ...googleapi.Field) *TargetInstancesGetCall { + c.urlParams_.Set("fields", googleapi.CombineFields(s)) + return c +} + +// IfNoneMatch sets an 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. +func (c *TargetInstancesGetCall) IfNoneMatch(entityTag string) *TargetInstancesGetCall { + c.ifNoneMatch_ = entityTag + return c +} + +// Context sets the context to be used in this call's Do method. +func (c *TargetInstancesGetCall) Context(ctx context.Context) *TargetInstancesGetCall { + c.ctx_ = ctx + return c +} + +// Header returns a http.Header that can be modified by the caller to add +// headers to the request. +func (c *TargetInstancesGetCall) Header() http.Header { + if c.header_ == nil { + c.header_ = make(http.Header) + } + return c.header_ +} + +func (c *TargetInstancesGetCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) + if c.ifNoneMatch_ != "" { + reqHeaders.Set("If-None-Match", c.ifNoneMatch_) + } + c.urlParams_.Set("alt", alt) + c.urlParams_.Set("prettyPrint", "false") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/targetInstances/{targetInstance}") + urls += "?" + c.urlParams_.Encode() + req, err := http.NewRequest("GET", urls, nil) + if err != nil { + return nil, err + } + req.Header = reqHeaders + googleapi.Expand(req.URL, map[string]string{ + "project": c.project, + "zone": c.zone, + "targetInstance": c.targetInstance, + }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.targetInstances.get", "request", internallog.HTTPRequest(req, nil)) + return gensupport.SendRequest(c.ctx_, c.s.client, req) +} + +// Do executes the "compute.targetInstances.get" call. +// Any non-2xx status code is an error. Response headers are in either +// *TargetInstance.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 *TargetInstancesGetCall) Do(opts ...googleapi.CallOption) (*TargetInstance, 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, gensupport.WrapError(&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, gensupport.WrapError(err) + } + ret := &TargetInstance{ + ServerResponse: googleapi.ServerResponse{ + Header: res.Header, + HTTPStatusCode: res.StatusCode, + }, + } + target := &ret + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { + return nil, err + } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.targetInstances.get", "response", internallog.HTTPResponse(res, b)) + return ret, nil +} + +type TargetInstancesInsertCall struct { + s *Service + project string + zone string + targetinstance *TargetInstance + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header +} + +// Insert: Creates a TargetInstance resource in the specified project and zone +// using +// the data included in the request. +// +// - project: Project ID for this request. +// - zone: Name of the zone scoping this request. +func (r *TargetInstancesService) Insert(project string, zone string, targetinstance *TargetInstance) *TargetInstancesInsertCall { + c := &TargetInstancesInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)} + c.project = project + c.zone = zone + c.targetinstance = targetinstance 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 *TargetHttpProxiesSetUrlMapCall) RequestId(requestId string) *TargetHttpProxiesSetUrlMapCall { +// 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 *TargetInstancesInsertCall) RequestId(requestId string) *TargetInstancesInsertCall { c.urlParams_.Set("requestId", requestId) return c } @@ -38456,36 +59785,35 @@ func (c *TargetHttpProxiesSetUrlMapCall) RequestId(requestId string) *TargetHttp // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *TargetHttpProxiesSetUrlMapCall) Fields(s ...googleapi.Field) *TargetHttpProxiesSetUrlMapCall { +func (c *TargetInstancesInsertCall) Fields(s ...googleapi.Field) *TargetInstancesInsertCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } // Context sets the context to be used in this call's Do method. -func (c *TargetHttpProxiesSetUrlMapCall) Context(ctx context.Context) *TargetHttpProxiesSetUrlMapCall { +func (c *TargetInstancesInsertCall) Context(ctx context.Context) *TargetInstancesInsertCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *TargetHttpProxiesSetUrlMapCall) Header() http.Header { +func (c *TargetInstancesInsertCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *TargetHttpProxiesSetUrlMapCall) doRequest(alt string) (*http.Response, error) { +func (c *TargetInstancesInsertCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) - var body io.Reader = nil - body, err := googleapi.WithoutDataWrapper.JSONReader(c.urlmapreference) + body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.targetinstance) if err != nil { return nil, err } c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/targetHttpProxies/{targetHttpProxy}/setUrlMap") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/targetInstances") urls += "?" + c.urlParams_.Encode() req, err := http.NewRequest("POST", urls, body) if err != nil { @@ -38493,18 +59821,19 @@ func (c *TargetHttpProxiesSetUrlMapCall) doRequest(alt string) (*http.Response, } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "targetHttpProxy": c.targetHttpProxy, + "project": c.project, + "zone": c.zone, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.targetInstances.insert", "request", internallog.HTTPRequest(req, body.Bytes())) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.targetHttpProxies.setUrlMap" call. +// Do executes the "compute.targetInstances.insert" call. // 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 *TargetHttpProxiesSetUrlMapCall) Do(opts ...googleapi.CallOption) (*Operation, error) { +func (c *TargetInstancesInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -38530,136 +59859,169 @@ func (c *TargetHttpProxiesSetUrlMapCall) Do(opts ...googleapi.CallOption) (*Oper }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.targetInstances.insert", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type TargetHttpsProxiesAggregatedListCall struct { +type TargetInstancesListCall struct { s *Service project string + zone string urlParams_ gensupport.URLParams ifNoneMatch_ string ctx_ context.Context header_ http.Header } -// AggregatedList: Retrieves the list of all TargetHttpsProxy resources, -// regional and global, available to the specified project. To prevent failure, -// Google recommends that you set the `returnPartialSuccess` parameter to -// `true`. +// List: Retrieves a list of TargetInstance resources available to the +// specified +// project and zone. // -// - project: Name of the project scoping this request. -func (r *TargetHttpsProxiesService) AggregatedList(project string) *TargetHttpsProxiesAggregatedListCall { - c := &TargetHttpsProxiesAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)} +// - project: Project ID for this request. +// - zone: Name of the zone scoping this request. +func (r *TargetInstancesService) List(project string, zone string) *TargetInstancesListCall { + c := &TargetInstancesListCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project + c.zone = zone return c } // Filter sets the optional parameter "filter": A filter expression that -// filters resources listed in the response. Most Compute resources support two -// types of filter expressions: expressions that support regular expressions -// and expressions that follow API improvement proposal AIP-160. These two -// types of filter expressions cannot be mixed in one request. If you want to -// use AIP-160, your expression must specify the field name, an operator, and -// the value that you want to use for filtering. The value must be a string, a -// number, or a boolean. The 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`. The `:*` comparison can be used to test whether a key has -// been defined. For example, to find all objects with `owner` label use: ``` -// labels.owner:* ``` 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) ``` If you want to use a regular -// expression, use the `eq` (equal) or `ne` (not equal) operator against a -// single un-parenthesized expression with or without quotes or against -// multiple parenthesized expressions. Examples: `fieldname eq unquoted -// literal` `fieldname eq 'single quoted literal'` `fieldname eq "double quoted -// literal" `(fieldname1 eq literal) (fieldname2 ne "literal")` The literal -// value is interpreted as a regular expression using Google RE2 library -// syntax. The literal value must match the entire field. For example, to -// filter for instances that do not end with name "instance", you would use -// `name ne .*instance`. You cannot combine constraints on multiple fields -// using regular expressions. -func (c *TargetHttpsProxiesAggregatedListCall) Filter(filter string) *TargetHttpsProxiesAggregatedListCall { +// filters resources listed in the response. Most +// Compute resources support two types of filter expressions: +// expressions that support regular expressions and expressions that follow +// API improvement proposal AIP-160. +// These two types of filter expressions cannot be mixed in one request. +// +// If you want to use AIP-160, your expression must specify the field name, +// an +// operator, and the value that you want to use for filtering. The value +// must be a string, a number, or a boolean. The 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`. +// +// The `:*` comparison can be used to test whether a key has been defined. +// For example, to find all objects with `owner` label +// use: +// ``` +// labels.owner:* +// ``` +// +// 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 onresource 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) +// ``` +// +// If you want to use a regular expression, use the `eq` (equal) or `ne` +// (not equal) operator against a single un-parenthesized expression with +// or +// without quotes or against multiple parenthesized expressions. +// Examples: +// +// `fieldname eq unquoted literal` +// `fieldname eq 'single quoted literal'` +// `fieldname eq "double quoted literal" +// `(fieldname1 eq literal) (fieldname2 ne "literal")` +// +// The literal value is interpreted as a regular expression using GoogleRE2 +// library syntax. +// The literal value must match the entire field. +// +// For example, to filter for instances that do not end with name +// "instance", +// you would use `name ne .*instance`. +// +// You cannot combine constraints on multiple fields using regular +// expressions. +func (c *TargetInstancesListCall) Filter(filter string) *TargetInstancesListCall { c.urlParams_.Set("filter", filter) return c } -// IncludeAllScopes sets the optional parameter "includeAllScopes": Indicates -// whether every visible scope for each scope type (zone, region, global) -// should be included in the response. For new resource types added after this -// field, the flag has no effect as new resource types will always include -// every visible scope for each scope type in response. For resource types -// which predate this field, if this flag is omitted or false, only scopes of -// the scope types where the resource type is expected to be found will be -// included. -func (c *TargetHttpsProxiesAggregatedListCall) IncludeAllScopes(includeAllScopes bool) *TargetHttpsProxiesAggregatedListCall { - c.urlParams_.Set("includeAllScopes", fmt.Sprint(includeAllScopes)) - 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 *TargetHttpsProxiesAggregatedListCall) MaxResults(maxResults int64) *TargetHttpsProxiesAggregatedListCall { +// 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 *TargetInstancesListCall) MaxResults(maxResults int64) *TargetInstancesListCall { 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 *TargetHttpsProxiesAggregatedListCall) OrderBy(orderBy string) *TargetHttpsProxiesAggregatedListCall { +// 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 *TargetInstancesListCall) OrderBy(orderBy string) *TargetInstancesListCall { 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 *TargetHttpsProxiesAggregatedListCall) PageToken(pageToken string) *TargetHttpsProxiesAggregatedListCall { +// use. Set `pageToken` to the +// `nextPageToken` returned by a previous list request to get +// the next page of results. +func (c *TargetInstancesListCall) PageToken(pageToken string) *TargetInstancesListCall { c.urlParams_.Set("pageToken", pageToken) return c } // ReturnPartialSuccess sets the optional parameter "returnPartialSuccess": -// Opt-in for partial success behavior which provides partial results in case -// of failure. The default value is false. For example, when partial success -// behavior is enabled, aggregatedList for a single zone scope either returns -// all resources in the zone or no resources, with an error code. -func (c *TargetHttpsProxiesAggregatedListCall) ReturnPartialSuccess(returnPartialSuccess bool) *TargetHttpsProxiesAggregatedListCall { +// Opt-in for partial success behavior which provides partial results in +// case +// of failure. The default value is false. +// +// For example, when partial success behavior is enabled, aggregatedList for +// a +// single zone scope either returns all resources in the zone or no +// resources, +// with an error code. +func (c *TargetInstancesListCall) ReturnPartialSuccess(returnPartialSuccess bool) *TargetInstancesListCall { c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess)) return c } -// ServiceProjectNumber sets the optional parameter "serviceProjectNumber": The -// Shared VPC service project id or service project number for which aggregated -// list request is invoked for subnetworks list-usable api. -func (c *TargetHttpsProxiesAggregatedListCall) ServiceProjectNumber(serviceProjectNumber int64) *TargetHttpsProxiesAggregatedListCall { - c.urlParams_.Set("serviceProjectNumber", fmt.Sprint(serviceProjectNumber)) - return c -} - // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *TargetHttpsProxiesAggregatedListCall) Fields(s ...googleapi.Field) *TargetHttpsProxiesAggregatedListCall { +func (c *TargetInstancesListCall) Fields(s ...googleapi.Field) *TargetInstancesListCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } @@ -38667,54 +60029,55 @@ func (c *TargetHttpsProxiesAggregatedListCall) Fields(s ...googleapi.Field) *Tar // IfNoneMatch sets an 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. -func (c *TargetHttpsProxiesAggregatedListCall) IfNoneMatch(entityTag string) *TargetHttpsProxiesAggregatedListCall { +func (c *TargetInstancesListCall) IfNoneMatch(entityTag string) *TargetInstancesListCall { c.ifNoneMatch_ = entityTag return c } // Context sets the context to be used in this call's Do method. -func (c *TargetHttpsProxiesAggregatedListCall) Context(ctx context.Context) *TargetHttpsProxiesAggregatedListCall { +func (c *TargetInstancesListCall) Context(ctx context.Context) *TargetInstancesListCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *TargetHttpsProxiesAggregatedListCall) Header() http.Header { +func (c *TargetInstancesListCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *TargetHttpsProxiesAggregatedListCall) doRequest(alt string) (*http.Response, error) { +func (c *TargetInstancesListCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) if c.ifNoneMatch_ != "" { reqHeaders.Set("If-None-Match", c.ifNoneMatch_) } - var body io.Reader = nil c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/aggregated/targetHttpsProxies") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/targetInstances") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("GET", urls, body) + req, err := http.NewRequest("GET", urls, nil) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ "project": c.project, + "zone": c.zone, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.targetInstances.list", "request", internallog.HTTPRequest(req, nil)) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.targetHttpsProxies.aggregatedList" call. +// Do executes the "compute.targetInstances.list" call. // Any non-2xx status code is an error. Response headers are in either -// *TargetHttpsProxyAggregatedList.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 *TargetHttpsProxiesAggregatedListCall) Do(opts ...googleapi.CallOption) (*TargetHttpsProxyAggregatedList, error) { +// *TargetInstanceList.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 *TargetInstancesListCall) Do(opts ...googleapi.CallOption) (*TargetInstanceList, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -38733,23 +60096,25 @@ func (c *TargetHttpsProxiesAggregatedListCall) Do(opts ...googleapi.CallOption) if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } - ret := &TargetHttpsProxyAggregatedList{ + ret := &TargetInstanceList{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.targetInstances.list", "response", internallog.HTTPResponse(res, b)) return ret, nil } // 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 *TargetHttpsProxiesAggregatedListCall) Pages(ctx context.Context, f func(*TargetHttpsProxyAggregatedList) error) error { +func (c *TargetInstancesListCall) Pages(ctx context.Context, f func(*TargetInstanceList) error) error { c.ctx_ = ctx defer c.PageToken(c.urlParams_.Get("pageToken")) for { @@ -38767,37 +60132,55 @@ func (c *TargetHttpsProxiesAggregatedListCall) Pages(ctx context.Context, f func } } -type TargetHttpsProxiesDeleteCall struct { - s *Service - project string - targetHttpsProxy string - urlParams_ gensupport.URLParams - ctx_ context.Context - header_ http.Header +type TargetInstancesSetSecurityPolicyCall struct { + s *Service + project string + zone string + targetInstance string + securitypolicyreference *SecurityPolicyReference + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header } -// Delete: Deletes the specified TargetHttpsProxy resource. +// SetSecurityPolicy: Sets the Google Cloud Armor security policy for the +// specified target +// instance. For more information, seeGoogle +// Cloud Armor Overview // -// - project: Project ID for this request. -// - targetHttpsProxy: Name of the TargetHttpsProxy resource to delete. -func (r *TargetHttpsProxiesService) Delete(project string, targetHttpsProxy string) *TargetHttpsProxiesDeleteCall { - c := &TargetHttpsProxiesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)} +// - project: Project ID for this request. +// - targetInstance: Name of the TargetInstance resource to which the security +// policy should be +// +// set. The name should conform to RFC1035. +// - zone: Name of the zone scoping this request. +func (r *TargetInstancesService) SetSecurityPolicy(project string, zone string, targetInstance string, securitypolicyreference *SecurityPolicyReference) *TargetInstancesSetSecurityPolicyCall { + c := &TargetInstancesSetSecurityPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project - c.targetHttpsProxy = targetHttpsProxy + c.zone = zone + c.targetInstance = targetInstance + c.securitypolicyreference = securitypolicyreference 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 *TargetHttpsProxiesDeleteCall) RequestId(requestId string) *TargetHttpsProxiesDeleteCall { +// 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 *TargetInstancesSetSecurityPolicyCall) RequestId(requestId string) *TargetInstancesSetSecurityPolicyCall { c.urlParams_.Set("requestId", requestId) return c } @@ -38805,51 +60188,56 @@ func (c *TargetHttpsProxiesDeleteCall) RequestId(requestId string) *TargetHttpsP // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *TargetHttpsProxiesDeleteCall) Fields(s ...googleapi.Field) *TargetHttpsProxiesDeleteCall { +func (c *TargetInstancesSetSecurityPolicyCall) Fields(s ...googleapi.Field) *TargetInstancesSetSecurityPolicyCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } // Context sets the context to be used in this call's Do method. -func (c *TargetHttpsProxiesDeleteCall) Context(ctx context.Context) *TargetHttpsProxiesDeleteCall { +func (c *TargetInstancesSetSecurityPolicyCall) Context(ctx context.Context) *TargetInstancesSetSecurityPolicyCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *TargetHttpsProxiesDeleteCall) Header() http.Header { +func (c *TargetInstancesSetSecurityPolicyCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *TargetHttpsProxiesDeleteCall) doRequest(alt string) (*http.Response, error) { - reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) - var body io.Reader = nil +func (c *TargetInstancesSetSecurityPolicyCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) + body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.securitypolicyreference) + if err != nil { + return nil, err + } c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/targetHttpsProxies/{targetHttpsProxy}") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/targetInstances/{targetInstance}/setSecurityPolicy") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("DELETE", urls, body) + req, err := http.NewRequest("POST", urls, body) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "targetHttpsProxy": c.targetHttpsProxy, + "project": c.project, + "zone": c.zone, + "targetInstance": c.targetInstance, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.targetInstances.setSecurityPolicy", "request", internallog.HTTPRequest(req, body.Bytes())) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.targetHttpsProxies.delete" call. +// Do executes the "compute.targetInstances.setSecurityPolicy" call. // 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 *TargetHttpsProxiesDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) { +func (c *TargetInstancesSetSecurityPolicyCall) Do(opts ...googleapi.CallOption) (*Operation, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -38875,93 +60263,94 @@ func (c *TargetHttpsProxiesDeleteCall) Do(opts ...googleapi.CallOption) (*Operat }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.targetInstances.setSecurityPolicy", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type TargetHttpsProxiesGetCall struct { - s *Service - project string - targetHttpsProxy string - urlParams_ gensupport.URLParams - ifNoneMatch_ string - ctx_ context.Context - header_ http.Header +type TargetInstancesTestIamPermissionsCall struct { + s *Service + project string + zone string + resource string + testpermissionsrequest *TestPermissionsRequest + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header } -// Get: Returns the specified TargetHttpsProxy resource. +// TestIamPermissions: Returns permissions that a caller has on the specified +// resource. // // - project: Project ID for this request. -// - targetHttpsProxy: Name of the TargetHttpsProxy resource to return. -func (r *TargetHttpsProxiesService) Get(project string, targetHttpsProxy string) *TargetHttpsProxiesGetCall { - c := &TargetHttpsProxiesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)} +// - resource: Name or id of the resource for this request. +// - zone: The name of the zone for this request. +func (r *TargetInstancesService) TestIamPermissions(project string, zone string, resource string, testpermissionsrequest *TestPermissionsRequest) *TargetInstancesTestIamPermissionsCall { + c := &TargetInstancesTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project - c.targetHttpsProxy = targetHttpsProxy + c.zone = zone + c.resource = resource + c.testpermissionsrequest = testpermissionsrequest return c } // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *TargetHttpsProxiesGetCall) Fields(s ...googleapi.Field) *TargetHttpsProxiesGetCall { +func (c *TargetInstancesTestIamPermissionsCall) Fields(s ...googleapi.Field) *TargetInstancesTestIamPermissionsCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } -// IfNoneMatch sets an 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. -func (c *TargetHttpsProxiesGetCall) IfNoneMatch(entityTag string) *TargetHttpsProxiesGetCall { - c.ifNoneMatch_ = entityTag - return c -} - // Context sets the context to be used in this call's Do method. -func (c *TargetHttpsProxiesGetCall) Context(ctx context.Context) *TargetHttpsProxiesGetCall { +func (c *TargetInstancesTestIamPermissionsCall) Context(ctx context.Context) *TargetInstancesTestIamPermissionsCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *TargetHttpsProxiesGetCall) Header() http.Header { +func (c *TargetInstancesTestIamPermissionsCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *TargetHttpsProxiesGetCall) doRequest(alt string) (*http.Response, error) { - reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) - if c.ifNoneMatch_ != "" { - reqHeaders.Set("If-None-Match", c.ifNoneMatch_) +func (c *TargetInstancesTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) + body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.testpermissionsrequest) + if err != nil { + return nil, err } - var body io.Reader = nil c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/targetHttpsProxies/{targetHttpsProxy}") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/targetInstances/{resource}/testIamPermissions") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("GET", urls, body) + req, err := http.NewRequest("POST", urls, body) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "targetHttpsProxy": c.targetHttpsProxy, + "project": c.project, + "zone": c.zone, + "resource": c.resource, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.targetInstances.testIamPermissions", "request", internallog.HTTPRequest(req, body.Bytes())) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.targetHttpsProxies.get" call. +// Do executes the "compute.targetInstances.testIamPermissions" call. // Any non-2xx status code is an error. Response headers are in either -// *TargetHttpsProxy.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 *TargetHttpsProxiesGetCall) Do(opts ...googleapi.CallOption) (*TargetHttpsProxy, error) { +// *TestPermissionsResponse.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 *TargetInstancesTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -38980,50 +60369,64 @@ func (c *TargetHttpsProxiesGetCall) Do(opts ...googleapi.CallOption) (*TargetHtt if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } - ret := &TargetHttpsProxy{ + ret := &TestPermissionsResponse{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.targetInstances.testIamPermissions", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type TargetHttpsProxiesInsertCall struct { - s *Service - project string - targethttpsproxy *TargetHttpsProxy - urlParams_ gensupport.URLParams - ctx_ context.Context - header_ http.Header +type TargetPoolsAddHealthCheckCall struct { + s *Service + project string + region string + targetPool string + targetpoolsaddhealthcheckrequest *TargetPoolsAddHealthCheckRequest + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header } -// Insert: Creates a TargetHttpsProxy resource in the specified project using -// the data included in the request. +// AddHealthCheck: Adds health check URLs to a target pool. // // - project: Project ID for this request. -func (r *TargetHttpsProxiesService) Insert(project string, targethttpsproxy *TargetHttpsProxy) *TargetHttpsProxiesInsertCall { - c := &TargetHttpsProxiesInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)} +// - region: Name of the region scoping this request. +// - targetPool: Name of the target pool to add a health check to. +func (r *TargetPoolsService) AddHealthCheck(project string, region string, targetPool string, targetpoolsaddhealthcheckrequest *TargetPoolsAddHealthCheckRequest) *TargetPoolsAddHealthCheckCall { + c := &TargetPoolsAddHealthCheckCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project - c.targethttpsproxy = targethttpsproxy + c.region = region + c.targetPool = targetPool + c.targetpoolsaddhealthcheckrequest = targetpoolsaddhealthcheckrequest 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 *TargetHttpsProxiesInsertCall) RequestId(requestId string) *TargetHttpsProxiesInsertCall { +// 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 *TargetPoolsAddHealthCheckCall) RequestId(requestId string) *TargetPoolsAddHealthCheckCall { c.urlParams_.Set("requestId", requestId) return c } @@ -39031,36 +60434,35 @@ func (c *TargetHttpsProxiesInsertCall) RequestId(requestId string) *TargetHttpsP // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *TargetHttpsProxiesInsertCall) Fields(s ...googleapi.Field) *TargetHttpsProxiesInsertCall { +func (c *TargetPoolsAddHealthCheckCall) Fields(s ...googleapi.Field) *TargetPoolsAddHealthCheckCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } // Context sets the context to be used in this call's Do method. -func (c *TargetHttpsProxiesInsertCall) Context(ctx context.Context) *TargetHttpsProxiesInsertCall { +func (c *TargetPoolsAddHealthCheckCall) Context(ctx context.Context) *TargetPoolsAddHealthCheckCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *TargetHttpsProxiesInsertCall) Header() http.Header { +func (c *TargetPoolsAddHealthCheckCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *TargetHttpsProxiesInsertCall) doRequest(alt string) (*http.Response, error) { +func (c *TargetPoolsAddHealthCheckCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) - var body io.Reader = nil - body, err := googleapi.WithoutDataWrapper.JSONReader(c.targethttpsproxy) + body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.targetpoolsaddhealthcheckrequest) if err != nil { return nil, err } c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/targetHttpsProxies") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/targetPools/{targetPool}/addHealthCheck") urls += "?" + c.urlParams_.Encode() req, err := http.NewRequest("POST", urls, body) if err != nil { @@ -39068,17 +60470,20 @@ func (c *TargetHttpsProxiesInsertCall) doRequest(alt string) (*http.Response, er } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, + "project": c.project, + "region": c.region, + "targetPool": c.targetPool, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.targetPools.addHealthCheck", "request", internallog.HTTPRequest(req, body.Bytes())) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.targetHttpsProxies.insert" call. +// Do executes the "compute.targetPools.addHealthCheck" call. // 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 *TargetHttpsProxiesInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) { +func (c *TargetPoolsAddHealthCheckCall) Do(opts ...googleapi.CallOption) (*Operation, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -39104,168 +60509,114 @@ func (c *TargetHttpsProxiesInsertCall) Do(opts ...googleapi.CallOption) (*Operat }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.targetPools.addHealthCheck", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type TargetHttpsProxiesListCall struct { - s *Service - project string - urlParams_ gensupport.URLParams - ifNoneMatch_ string - ctx_ context.Context - header_ http.Header +type TargetPoolsAddInstanceCall struct { + s *Service + project string + region string + targetPool string + targetpoolsaddinstancerequest *TargetPoolsAddInstanceRequest + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header } -// List: Retrieves the list of TargetHttpsProxy resources available to the -// specified project. +// AddInstance: Adds an instance to a target pool. // // - project: Project ID for this request. -func (r *TargetHttpsProxiesService) List(project string) *TargetHttpsProxiesListCall { - c := &TargetHttpsProxiesListCall{s: r.s, urlParams_: make(gensupport.URLParams)} +// - region: Name of the region scoping this request. +// - targetPool: Name of the TargetPool resource to add instances to. +func (r *TargetPoolsService) AddInstance(project string, region string, targetPool string, targetpoolsaddinstancerequest *TargetPoolsAddInstanceRequest) *TargetPoolsAddInstanceCall { + c := &TargetPoolsAddInstanceCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project + c.region = region + c.targetPool = targetPool + c.targetpoolsaddinstancerequest = targetpoolsaddinstancerequest return c } -// Filter sets the optional parameter "filter": A filter expression that -// filters resources listed in the response. Most Compute resources support two -// types of filter expressions: expressions that support regular expressions -// and expressions that follow API improvement proposal AIP-160. These two -// types of filter expressions cannot be mixed in one request. If you want to -// use AIP-160, your expression must specify the field name, an operator, and -// the value that you want to use for filtering. The value must be a string, a -// number, or a boolean. The 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`. The `:*` comparison can be used to test whether a key has -// been defined. For example, to find all objects with `owner` label use: ``` -// labels.owner:* ``` 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) ``` If you want to use a regular -// expression, use the `eq` (equal) or `ne` (not equal) operator against a -// single un-parenthesized expression with or without quotes or against -// multiple parenthesized expressions. Examples: `fieldname eq unquoted -// literal` `fieldname eq 'single quoted literal'` `fieldname eq "double quoted -// literal" `(fieldname1 eq literal) (fieldname2 ne "literal")` The literal -// value is interpreted as a regular expression using Google RE2 library -// syntax. The literal value must match the entire field. For example, to -// filter for instances that do not end with name "instance", you would use -// `name ne .*instance`. You cannot combine constraints on multiple fields -// using regular expressions. -func (c *TargetHttpsProxiesListCall) Filter(filter string) *TargetHttpsProxiesListCall { - 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 *TargetHttpsProxiesListCall) MaxResults(maxResults int64) *TargetHttpsProxiesListCall { - 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 *TargetHttpsProxiesListCall) OrderBy(orderBy string) *TargetHttpsProxiesListCall { - 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 *TargetHttpsProxiesListCall) PageToken(pageToken string) *TargetHttpsProxiesListCall { - c.urlParams_.Set("pageToken", pageToken) - return c -} - -// ReturnPartialSuccess sets the optional parameter "returnPartialSuccess": -// Opt-in for partial success behavior which provides partial results in case -// of failure. The default value is false. For example, when partial success -// behavior is enabled, aggregatedList for a single zone scope either returns -// all resources in the zone or no resources, with an error code. -func (c *TargetHttpsProxiesListCall) ReturnPartialSuccess(returnPartialSuccess bool) *TargetHttpsProxiesListCall { - c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess)) +// 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 *TargetPoolsAddInstanceCall) RequestId(requestId string) *TargetPoolsAddInstanceCall { + 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 // details. -func (c *TargetHttpsProxiesListCall) Fields(s ...googleapi.Field) *TargetHttpsProxiesListCall { +func (c *TargetPoolsAddInstanceCall) Fields(s ...googleapi.Field) *TargetPoolsAddInstanceCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } -// IfNoneMatch sets an 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. -func (c *TargetHttpsProxiesListCall) IfNoneMatch(entityTag string) *TargetHttpsProxiesListCall { - c.ifNoneMatch_ = entityTag - return c -} - // Context sets the context to be used in this call's Do method. -func (c *TargetHttpsProxiesListCall) Context(ctx context.Context) *TargetHttpsProxiesListCall { +func (c *TargetPoolsAddInstanceCall) Context(ctx context.Context) *TargetPoolsAddInstanceCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *TargetHttpsProxiesListCall) Header() http.Header { +func (c *TargetPoolsAddInstanceCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *TargetHttpsProxiesListCall) doRequest(alt string) (*http.Response, error) { - reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) - if c.ifNoneMatch_ != "" { - reqHeaders.Set("If-None-Match", c.ifNoneMatch_) +func (c *TargetPoolsAddInstanceCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) + body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.targetpoolsaddinstancerequest) + if err != nil { + return nil, err } - var body io.Reader = nil c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/targetHttpsProxies") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/targetPools/{targetPool}/addInstance") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("GET", urls, body) + req, err := http.NewRequest("POST", urls, body) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, + "project": c.project, + "region": c.region, + "targetPool": c.targetPool, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.targetPools.addInstance", "request", internallog.HTTPRequest(req, body.Bytes())) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.targetHttpsProxies.list" call. +// Do executes the "compute.targetPools.addInstance" call. // Any non-2xx status code is an error. Response headers are in either -// *TargetHttpsProxyList.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 *TargetHttpsProxiesListCall) Do(opts ...googleapi.CallOption) (*TargetHttpsProxyList, error) { +// *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 *TargetPoolsAddInstanceCall) Do(opts ...googleapi.CallOption) (*Operation, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -39284,253 +60635,256 @@ func (c *TargetHttpsProxiesListCall) Do(opts ...googleapi.CallOption) (*TargetHt if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } - ret := &TargetHttpsProxyList{ + ret := &Operation{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.targetPools.addInstance", "response", internallog.HTTPResponse(res, b)) return ret, nil } -// 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 *TargetHttpsProxiesListCall) Pages(ctx context.Context, f func(*TargetHttpsProxyList) error) error { - c.ctx_ = ctx - defer c.PageToken(c.urlParams_.Get("pageToken")) - 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) - } -} - -type TargetHttpsProxiesPatchCall struct { - s *Service - project string - targetHttpsProxy string - targethttpsproxy *TargetHttpsProxy - urlParams_ gensupport.URLParams - ctx_ context.Context - header_ http.Header +type TargetPoolsAggregatedListCall struct { + s *Service + project string + urlParams_ gensupport.URLParams + ifNoneMatch_ string + ctx_ context.Context + header_ http.Header } -// Patch: Patches the specified TargetHttpsProxy resource with the data -// included in the request. This method supports PATCH semantics and uses JSON -// merge patch format and processing rules. +// AggregatedList: Retrieves an aggregated list of target pools. +// +// To prevent failure, Google recommends that you set +// the +// `returnPartialSuccess` parameter to `true`. // // - project: Project ID for this request. -// - targetHttpsProxy: Name of the TargetHttpsProxy resource to patch. -func (r *TargetHttpsProxiesService) Patch(project string, targetHttpsProxy string, targethttpsproxy *TargetHttpsProxy) *TargetHttpsProxiesPatchCall { - c := &TargetHttpsProxiesPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)} +func (r *TargetPoolsService) AggregatedList(project string) *TargetPoolsAggregatedListCall { + c := &TargetPoolsAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project - c.targetHttpsProxy = targetHttpsProxy - c.targethttpsproxy = targethttpsproxy 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 *TargetHttpsProxiesPatchCall) RequestId(requestId string) *TargetHttpsProxiesPatchCall { - c.urlParams_.Set("requestId", requestId) +// Filter sets the optional parameter "filter": A filter expression that +// filters resources listed in the response. Most +// Compute resources support two types of filter expressions: +// expressions that support regular expressions and expressions that follow +// API improvement proposal AIP-160. +// These two types of filter expressions cannot be mixed in one request. +// +// If you want to use AIP-160, your expression must specify the field name, +// an +// operator, and the value that you want to use for filtering. The value +// must be a string, a number, or a boolean. The 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`. +// +// The `:*` comparison can be used to test whether a key has been defined. +// For example, to find all objects with `owner` label +// use: +// ``` +// labels.owner:* +// ``` +// +// 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 onresource 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) +// ``` +// +// If you want to use a regular expression, use the `eq` (equal) or `ne` +// (not equal) operator against a single un-parenthesized expression with +// or +// without quotes or against multiple parenthesized expressions. +// Examples: +// +// `fieldname eq unquoted literal` +// `fieldname eq 'single quoted literal'` +// `fieldname eq "double quoted literal" +// `(fieldname1 eq literal) (fieldname2 ne "literal")` +// +// The literal value is interpreted as a regular expression using GoogleRE2 +// library syntax. +// The literal value must match the entire field. +// +// For example, to filter for instances that do not end with name +// "instance", +// you would use `name ne .*instance`. +// +// You cannot combine constraints on multiple fields using regular +// expressions. +func (c *TargetPoolsAggregatedListCall) Filter(filter string) *TargetPoolsAggregatedListCall { + c.urlParams_.Set("filter", filter) return c } -// Fields allows partial responses to be retrieved. See -// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more -// details. -func (c *TargetHttpsProxiesPatchCall) Fields(s ...googleapi.Field) *TargetHttpsProxiesPatchCall { - c.urlParams_.Set("fields", googleapi.CombineFields(s)) +// IncludeAllScopes sets the optional parameter "includeAllScopes": Indicates +// whether every visible scope for each scope type (zone, region, +// global) should be included in the response. For new resource types +// added +// after this field, the flag has no effect as new resource types will +// always +// include every visible scope for each scope type in response. For +// resource +// types which predate this field, if this flag is omitted or false, +// only +// scopes of the scope types where the resource type is expected to be +// found +// will be included. +func (c *TargetPoolsAggregatedListCall) IncludeAllScopes(includeAllScopes bool) *TargetPoolsAggregatedListCall { + c.urlParams_.Set("includeAllScopes", fmt.Sprint(includeAllScopes)) return c } -// Context sets the context to be used in this call's Do method. -func (c *TargetHttpsProxiesPatchCall) Context(ctx context.Context) *TargetHttpsProxiesPatchCall { - c.ctx_ = ctx +// 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 *TargetPoolsAggregatedListCall) MaxResults(maxResults int64) *TargetPoolsAggregatedListCall { + c.urlParams_.Set("maxResults", fmt.Sprint(maxResults)) return c } -// Header returns a http.Header that can be modified by the caller to add -// headers to the request. -func (c *TargetHttpsProxiesPatchCall) Header() http.Header { - if c.header_ == nil { - c.header_ = make(http.Header) - } - return c.header_ -} - -func (c *TargetHttpsProxiesPatchCall) doRequest(alt string) (*http.Response, error) { - reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) - var body io.Reader = nil - body, err := googleapi.WithoutDataWrapper.JSONReader(c.targethttpsproxy) - if err != nil { - return nil, err - } - c.urlParams_.Set("alt", alt) - c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/targetHttpsProxies/{targetHttpsProxy}") - urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("PATCH", urls, body) - if err != nil { - return nil, err - } - req.Header = reqHeaders - googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "targetHttpsProxy": c.targetHttpsProxy, - }) - return gensupport.SendRequest(c.ctx_, c.s.client, req) -} - -// Do executes the "compute.targetHttpsProxies.patch" call. -// 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 *TargetHttpsProxiesPatchCall) 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, gensupport.WrapError(&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, gensupport.WrapError(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 +// 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 *TargetPoolsAggregatedListCall) OrderBy(orderBy string) *TargetPoolsAggregatedListCall { + c.urlParams_.Set("orderBy", orderBy) + return c } -type TargetHttpsProxiesSetCertificateMapCall struct { - s *Service - project string - targetHttpsProxy string - targethttpsproxiessetcertificatemaprequest *TargetHttpsProxiesSetCertificateMapRequest - urlParams_ gensupport.URLParams - ctx_ context.Context - header_ http.Header +// 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 *TargetPoolsAggregatedListCall) PageToken(pageToken string) *TargetPoolsAggregatedListCall { + c.urlParams_.Set("pageToken", pageToken) + return c } -// SetCertificateMap: Changes the Certificate Map for TargetHttpsProxy. +// ReturnPartialSuccess sets the optional parameter "returnPartialSuccess": +// Opt-in for partial success behavior which provides partial results in +// case +// of failure. The default value is false. // -// - project: Project ID for this request. -// - targetHttpsProxy: Name of the TargetHttpsProxy resource whose -// CertificateMap is to be set. The name must be 1-63 characters long, and -// comply with RFC1035. -func (r *TargetHttpsProxiesService) SetCertificateMap(project string, targetHttpsProxy string, targethttpsproxiessetcertificatemaprequest *TargetHttpsProxiesSetCertificateMapRequest) *TargetHttpsProxiesSetCertificateMapCall { - c := &TargetHttpsProxiesSetCertificateMapCall{s: r.s, urlParams_: make(gensupport.URLParams)} - c.project = project - c.targetHttpsProxy = targetHttpsProxy - c.targethttpsproxiessetcertificatemaprequest = targethttpsproxiessetcertificatemaprequest +// For example, when partial success behavior is enabled, aggregatedList for +// a +// single zone scope either returns all resources in the zone or no +// resources, +// with an error code. +func (c *TargetPoolsAggregatedListCall) ReturnPartialSuccess(returnPartialSuccess bool) *TargetPoolsAggregatedListCall { + c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess)) 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 *TargetHttpsProxiesSetCertificateMapCall) RequestId(requestId string) *TargetHttpsProxiesSetCertificateMapCall { - c.urlParams_.Set("requestId", requestId) +// ServiceProjectNumber sets the optional parameter "serviceProjectNumber": The +// Shared VPC service project id or service project number for which +// aggregated list request is invoked for subnetworks list-usable api. +func (c *TargetPoolsAggregatedListCall) ServiceProjectNumber(serviceProjectNumber int64) *TargetPoolsAggregatedListCall { + c.urlParams_.Set("serviceProjectNumber", fmt.Sprint(serviceProjectNumber)) return c } // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *TargetHttpsProxiesSetCertificateMapCall) Fields(s ...googleapi.Field) *TargetHttpsProxiesSetCertificateMapCall { +func (c *TargetPoolsAggregatedListCall) Fields(s ...googleapi.Field) *TargetPoolsAggregatedListCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } +// IfNoneMatch sets an 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. +func (c *TargetPoolsAggregatedListCall) IfNoneMatch(entityTag string) *TargetPoolsAggregatedListCall { + c.ifNoneMatch_ = entityTag + return c +} + // Context sets the context to be used in this call's Do method. -func (c *TargetHttpsProxiesSetCertificateMapCall) Context(ctx context.Context) *TargetHttpsProxiesSetCertificateMapCall { +func (c *TargetPoolsAggregatedListCall) Context(ctx context.Context) *TargetPoolsAggregatedListCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *TargetHttpsProxiesSetCertificateMapCall) Header() http.Header { +func (c *TargetPoolsAggregatedListCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *TargetHttpsProxiesSetCertificateMapCall) doRequest(alt string) (*http.Response, error) { - reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) - var body io.Reader = nil - body, err := googleapi.WithoutDataWrapper.JSONReader(c.targethttpsproxiessetcertificatemaprequest) - if err != nil { - return nil, err +func (c *TargetPoolsAggregatedListCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) + if c.ifNoneMatch_ != "" { + reqHeaders.Set("If-None-Match", c.ifNoneMatch_) } c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/targetHttpsProxies/{targetHttpsProxy}/setCertificateMap") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/aggregated/targetPools") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("POST", urls, body) + req, err := http.NewRequest("GET", urls, nil) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "targetHttpsProxy": c.targetHttpsProxy, + "project": c.project, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.targetPools.aggregatedList", "request", internallog.HTTPRequest(req, nil)) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.targetHttpsProxies.setCertificateMap" call. +// Do executes the "compute.targetPools.aggregatedList" call. // 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 *TargetHttpsProxiesSetCertificateMapCall) Do(opts ...googleapi.CallOption) (*Operation, error) { +// *TargetPoolAggregatedList.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 *TargetPoolsAggregatedListCall) Do(opts ...googleapi.CallOption) (*TargetPoolAggregatedList, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -39549,53 +60903,83 @@ func (c *TargetHttpsProxiesSetCertificateMapCall) Do(opts ...googleapi.CallOptio if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } - ret := &Operation{ + ret := &TargetPoolAggregatedList{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.targetPools.aggregatedList", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type TargetHttpsProxiesSetQuicOverrideCall struct { - s *Service - project string - targetHttpsProxy string - targethttpsproxiessetquicoverriderequest *TargetHttpsProxiesSetQuicOverrideRequest - urlParams_ gensupport.URLParams - ctx_ context.Context - header_ http.Header +// 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 *TargetPoolsAggregatedListCall) Pages(ctx context.Context, f func(*TargetPoolAggregatedList) error) error { + c.ctx_ = ctx + defer c.PageToken(c.urlParams_.Get("pageToken")) + 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) + } } -// SetQuicOverride: Sets the QUIC override policy for TargetHttpsProxy. +type TargetPoolsDeleteCall struct { + s *Service + project string + region string + targetPool string + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header +} + +// Delete: Deletes the specified target pool. // -// - project: Project ID for this request. -// - targetHttpsProxy: Name of the TargetHttpsProxy resource to set the QUIC -// override policy for. The name should conform to RFC1035. -func (r *TargetHttpsProxiesService) SetQuicOverride(project string, targetHttpsProxy string, targethttpsproxiessetquicoverriderequest *TargetHttpsProxiesSetQuicOverrideRequest) *TargetHttpsProxiesSetQuicOverrideCall { - c := &TargetHttpsProxiesSetQuicOverrideCall{s: r.s, urlParams_: make(gensupport.URLParams)} +// - project: Project ID for this request. +// - region: Name of the region scoping this request. +// - targetPool: Name of the TargetPool resource to delete. +func (r *TargetPoolsService) Delete(project string, region string, targetPool string) *TargetPoolsDeleteCall { + c := &TargetPoolsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project - c.targetHttpsProxy = targetHttpsProxy - c.targethttpsproxiessetquicoverriderequest = targethttpsproxiessetquicoverriderequest + c.region = region + c.targetPool = targetPool 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 *TargetHttpsProxiesSetQuicOverrideCall) RequestId(requestId string) *TargetHttpsProxiesSetQuicOverrideCall { +// 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 *TargetPoolsDeleteCall) RequestId(requestId string) *TargetPoolsDeleteCall { c.urlParams_.Set("requestId", requestId) return c } @@ -39603,55 +60987,52 @@ func (c *TargetHttpsProxiesSetQuicOverrideCall) RequestId(requestId string) *Tar // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *TargetHttpsProxiesSetQuicOverrideCall) Fields(s ...googleapi.Field) *TargetHttpsProxiesSetQuicOverrideCall { +func (c *TargetPoolsDeleteCall) Fields(s ...googleapi.Field) *TargetPoolsDeleteCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } // Context sets the context to be used in this call's Do method. -func (c *TargetHttpsProxiesSetQuicOverrideCall) Context(ctx context.Context) *TargetHttpsProxiesSetQuicOverrideCall { +func (c *TargetPoolsDeleteCall) Context(ctx context.Context) *TargetPoolsDeleteCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *TargetHttpsProxiesSetQuicOverrideCall) Header() http.Header { +func (c *TargetPoolsDeleteCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *TargetHttpsProxiesSetQuicOverrideCall) doRequest(alt string) (*http.Response, error) { - reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) - var body io.Reader = nil - body, err := googleapi.WithoutDataWrapper.JSONReader(c.targethttpsproxiessetquicoverriderequest) - if err != nil { - return nil, err - } +func (c *TargetPoolsDeleteCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/targetHttpsProxies/{targetHttpsProxy}/setQuicOverride") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/targetPools/{targetPool}") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("POST", urls, body) + req, err := http.NewRequest("DELETE", urls, nil) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "targetHttpsProxy": c.targetHttpsProxy, + "project": c.project, + "region": c.region, + "targetPool": c.targetPool, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.targetPools.delete", "request", internallog.HTTPRequest(req, nil)) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.targetHttpsProxies.setQuicOverride" call. +// Do executes the "compute.targetPools.delete" call. // 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 *TargetHttpsProxiesSetQuicOverrideCall) Do(opts ...googleapi.CallOption) (*Operation, error) { +func (c *TargetPoolsDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -39677,102 +61058,98 @@ func (c *TargetHttpsProxiesSetQuicOverrideCall) Do(opts ...googleapi.CallOption) }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.targetPools.delete", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type TargetHttpsProxiesSetSslCertificatesCall struct { - s *Service - project string - targetHttpsProxy string - targethttpsproxiessetsslcertificatesrequest *TargetHttpsProxiesSetSslCertificatesRequest - urlParams_ gensupport.URLParams - ctx_ context.Context - header_ http.Header +type TargetPoolsGetCall struct { + s *Service + project string + region string + targetPool string + urlParams_ gensupport.URLParams + ifNoneMatch_ string + ctx_ context.Context + header_ http.Header } -// SetSslCertificates: Replaces SslCertificates for TargetHttpsProxy. +// Get: Returns the specified target pool. // -// - project: Project ID for this request. -// - targetHttpsProxy: Name of the TargetHttpsProxy resource to set an -// SslCertificates resource for. -func (r *TargetHttpsProxiesService) SetSslCertificates(project string, targetHttpsProxy string, targethttpsproxiessetsslcertificatesrequest *TargetHttpsProxiesSetSslCertificatesRequest) *TargetHttpsProxiesSetSslCertificatesCall { - c := &TargetHttpsProxiesSetSslCertificatesCall{s: r.s, urlParams_: make(gensupport.URLParams)} +// - project: Project ID for this request. +// - region: Name of the region scoping this request. +// - targetPool: Name of the TargetPool resource to return. +func (r *TargetPoolsService) Get(project string, region string, targetPool string) *TargetPoolsGetCall { + c := &TargetPoolsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project - c.targetHttpsProxy = targetHttpsProxy - c.targethttpsproxiessetsslcertificatesrequest = targethttpsproxiessetsslcertificatesrequest - 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 *TargetHttpsProxiesSetSslCertificatesCall) RequestId(requestId string) *TargetHttpsProxiesSetSslCertificatesCall { - c.urlParams_.Set("requestId", requestId) + c.region = region + c.targetPool = targetPool return c } // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *TargetHttpsProxiesSetSslCertificatesCall) Fields(s ...googleapi.Field) *TargetHttpsProxiesSetSslCertificatesCall { +func (c *TargetPoolsGetCall) Fields(s ...googleapi.Field) *TargetPoolsGetCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } +// IfNoneMatch sets an 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. +func (c *TargetPoolsGetCall) IfNoneMatch(entityTag string) *TargetPoolsGetCall { + c.ifNoneMatch_ = entityTag + return c +} + // Context sets the context to be used in this call's Do method. -func (c *TargetHttpsProxiesSetSslCertificatesCall) Context(ctx context.Context) *TargetHttpsProxiesSetSslCertificatesCall { +func (c *TargetPoolsGetCall) Context(ctx context.Context) *TargetPoolsGetCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *TargetHttpsProxiesSetSslCertificatesCall) Header() http.Header { +func (c *TargetPoolsGetCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *TargetHttpsProxiesSetSslCertificatesCall) doRequest(alt string) (*http.Response, error) { - reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) - var body io.Reader = nil - body, err := googleapi.WithoutDataWrapper.JSONReader(c.targethttpsproxiessetsslcertificatesrequest) - if err != nil { - return nil, err +func (c *TargetPoolsGetCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) + if c.ifNoneMatch_ != "" { + reqHeaders.Set("If-None-Match", c.ifNoneMatch_) } c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/targetHttpsProxies/{targetHttpsProxy}/setSslCertificates") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/targetPools/{targetPool}") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("POST", urls, body) + req, err := http.NewRequest("GET", urls, nil) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "targetHttpsProxy": c.targetHttpsProxy, + "project": c.project, + "region": c.region, + "targetPool": c.targetPool, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.targetPools.get", "request", internallog.HTTPRequest(req, nil)) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.targetHttpsProxies.setSslCertificates" call. +// Do executes the "compute.targetPools.get" call. // 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 +// *TargetPool.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 *TargetHttpsProxiesSetSslCertificatesCall) Do(opts ...googleapi.CallOption) (*Operation, error) { +func (c *TargetPoolsGetCall) Do(opts ...googleapi.CallOption) (*TargetPool, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -39791,94 +61168,81 @@ func (c *TargetHttpsProxiesSetSslCertificatesCall) Do(opts ...googleapi.CallOpti if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } - ret := &Operation{ + ret := &TargetPool{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.targetPools.get", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type TargetHttpsProxiesSetSslPolicyCall struct { - s *Service - project string - targetHttpsProxy string - sslpolicyreference *SslPolicyReference - urlParams_ gensupport.URLParams - ctx_ context.Context - header_ http.Header +type TargetPoolsGetHealthCall struct { + s *Service + project string + region string + targetPool string + instancereference *InstanceReference + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header } -// SetSslPolicy: Sets the SSL policy for TargetHttpsProxy. The SSL policy -// specifies the server-side support for SSL features. This affects connections -// between clients and the HTTPS proxy load balancer. They do not affect the -// connection between the load balancer and the backends. +// GetHealth: Gets the most recent health check results for each IP for +// the +// instance that is referenced by the given target pool. // // - project: Project ID for this request. -// - targetHttpsProxy: Name of the TargetHttpsProxy resource whose SSL policy -// is to be set. The name must be 1-63 characters long, and comply with -// RFC1035. -func (r *TargetHttpsProxiesService) SetSslPolicy(project string, targetHttpsProxy string, sslpolicyreference *SslPolicyReference) *TargetHttpsProxiesSetSslPolicyCall { - c := &TargetHttpsProxiesSetSslPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)} +// - region: Name of the region scoping this request. +// - targetPool: Name of the TargetPool resource to which the queried instance +// belongs. +func (r *TargetPoolsService) GetHealth(project string, region string, targetPool string, instancereference *InstanceReference) *TargetPoolsGetHealthCall { + c := &TargetPoolsGetHealthCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project - c.targetHttpsProxy = targetHttpsProxy - c.sslpolicyreference = sslpolicyreference - 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 *TargetHttpsProxiesSetSslPolicyCall) RequestId(requestId string) *TargetHttpsProxiesSetSslPolicyCall { - c.urlParams_.Set("requestId", requestId) + c.region = region + c.targetPool = targetPool + c.instancereference = instancereference return c } // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *TargetHttpsProxiesSetSslPolicyCall) Fields(s ...googleapi.Field) *TargetHttpsProxiesSetSslPolicyCall { +func (c *TargetPoolsGetHealthCall) Fields(s ...googleapi.Field) *TargetPoolsGetHealthCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } // Context sets the context to be used in this call's Do method. -func (c *TargetHttpsProxiesSetSslPolicyCall) Context(ctx context.Context) *TargetHttpsProxiesSetSslPolicyCall { +func (c *TargetPoolsGetHealthCall) Context(ctx context.Context) *TargetPoolsGetHealthCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *TargetHttpsProxiesSetSslPolicyCall) Header() http.Header { +func (c *TargetPoolsGetHealthCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *TargetHttpsProxiesSetSslPolicyCall) doRequest(alt string) (*http.Response, error) { +func (c *TargetPoolsGetHealthCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) - var body io.Reader = nil - body, err := googleapi.WithoutDataWrapper.JSONReader(c.sslpolicyreference) + body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.instancereference) if err != nil { return nil, err } c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/targetHttpsProxies/{targetHttpsProxy}/setSslPolicy") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/targetPools/{targetPool}/getHealth") urls += "?" + c.urlParams_.Encode() req, err := http.NewRequest("POST", urls, body) if err != nil { @@ -39886,18 +61250,21 @@ func (c *TargetHttpsProxiesSetSslPolicyCall) doRequest(alt string) (*http.Respon } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "targetHttpsProxy": c.targetHttpsProxy, + "project": c.project, + "region": c.region, + "targetPool": c.targetPool, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.targetPools.getHealth", "request", internallog.HTTPRequest(req, body.Bytes())) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.targetHttpsProxies.setSslPolicy" call. +// Do executes the "compute.targetPools.getHealth" call. // 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 *TargetHttpsProxiesSetSslPolicyCall) Do(opts ...googleapi.CallOption) (*Operation, error) { +// *TargetPoolInstanceHealth.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 *TargetPoolsGetHealthCall) Do(opts ...googleapi.CallOption) (*TargetPoolInstanceHealth, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -39916,53 +61283,62 @@ func (c *TargetHttpsProxiesSetSslPolicyCall) Do(opts ...googleapi.CallOption) (* if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } - ret := &Operation{ + ret := &TargetPoolInstanceHealth{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.targetPools.getHealth", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type TargetHttpsProxiesSetUrlMapCall struct { - s *Service - project string - targetHttpsProxy string - urlmapreference *UrlMapReference - urlParams_ gensupport.URLParams - ctx_ context.Context - header_ http.Header +type TargetPoolsInsertCall struct { + s *Service + project string + region string + targetpool *TargetPool + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header } -// SetUrlMap: Changes the URL map for TargetHttpsProxy. +// Insert: Creates a target pool in the specified project and region using +// the data included in the request. // -// - project: Project ID for this request. -// - targetHttpsProxy: Name of the TargetHttpsProxy resource whose URL map is -// to be set. -func (r *TargetHttpsProxiesService) SetUrlMap(project string, targetHttpsProxy string, urlmapreference *UrlMapReference) *TargetHttpsProxiesSetUrlMapCall { - c := &TargetHttpsProxiesSetUrlMapCall{s: r.s, urlParams_: make(gensupport.URLParams)} +// - project: Project ID for this request. +// - region: Name of the region scoping this request. +func (r *TargetPoolsService) Insert(project string, region string, targetpool *TargetPool) *TargetPoolsInsertCall { + c := &TargetPoolsInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project - c.targetHttpsProxy = targetHttpsProxy - c.urlmapreference = urlmapreference + c.region = region + c.targetpool = targetpool 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 *TargetHttpsProxiesSetUrlMapCall) RequestId(requestId string) *TargetHttpsProxiesSetUrlMapCall { +// 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 *TargetPoolsInsertCall) RequestId(requestId string) *TargetPoolsInsertCall { c.urlParams_.Set("requestId", requestId) return c } @@ -39970,36 +61346,35 @@ func (c *TargetHttpsProxiesSetUrlMapCall) RequestId(requestId string) *TargetHtt // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *TargetHttpsProxiesSetUrlMapCall) Fields(s ...googleapi.Field) *TargetHttpsProxiesSetUrlMapCall { +func (c *TargetPoolsInsertCall) Fields(s ...googleapi.Field) *TargetPoolsInsertCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } // Context sets the context to be used in this call's Do method. -func (c *TargetHttpsProxiesSetUrlMapCall) Context(ctx context.Context) *TargetHttpsProxiesSetUrlMapCall { +func (c *TargetPoolsInsertCall) Context(ctx context.Context) *TargetPoolsInsertCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *TargetHttpsProxiesSetUrlMapCall) Header() http.Header { +func (c *TargetPoolsInsertCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *TargetHttpsProxiesSetUrlMapCall) doRequest(alt string) (*http.Response, error) { +func (c *TargetPoolsInsertCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) - var body io.Reader = nil - body, err := googleapi.WithoutDataWrapper.JSONReader(c.urlmapreference) + body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.targetpool) if err != nil { return nil, err } c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/targetHttpsProxies/{targetHttpsProxy}/setUrlMap") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/targetPools") urls += "?" + c.urlParams_.Encode() req, err := http.NewRequest("POST", urls, body) if err != nil { @@ -40007,18 +61382,19 @@ func (c *TargetHttpsProxiesSetUrlMapCall) doRequest(alt string) (*http.Response, } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "targetHttpsProxy": c.targetHttpsProxy, + "project": c.project, + "region": c.region, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.targetPools.insert", "request", internallog.HTTPRequest(req, body.Bytes())) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.targetHttpsProxies.setUrlMap" call. +// Do executes the "compute.targetPools.insert" call. // 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 *TargetHttpsProxiesSetUrlMapCall) Do(opts ...googleapi.CallOption) (*Operation, error) { +func (c *TargetPoolsInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -40044,135 +61420,168 @@ func (c *TargetHttpsProxiesSetUrlMapCall) Do(opts ...googleapi.CallOption) (*Ope }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.targetPools.insert", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type TargetInstancesAggregatedListCall struct { +type TargetPoolsListCall struct { s *Service project string + region string urlParams_ gensupport.URLParams ifNoneMatch_ string ctx_ context.Context header_ http.Header } -// AggregatedList: Retrieves an aggregated list of target instances. To prevent -// failure, Google recommends that you set the `returnPartialSuccess` parameter -// to `true`. +// List: Retrieves a list of target pools available to the specified +// project and region. // // - project: Project ID for this request. -func (r *TargetInstancesService) AggregatedList(project string) *TargetInstancesAggregatedListCall { - c := &TargetInstancesAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)} +// - region: Name of the region scoping this request. +func (r *TargetPoolsService) List(project string, region string) *TargetPoolsListCall { + c := &TargetPoolsListCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project + c.region = region return c } // Filter sets the optional parameter "filter": A filter expression that -// filters resources listed in the response. Most Compute resources support two -// types of filter expressions: expressions that support regular expressions -// and expressions that follow API improvement proposal AIP-160. These two -// types of filter expressions cannot be mixed in one request. If you want to -// use AIP-160, your expression must specify the field name, an operator, and -// the value that you want to use for filtering. The value must be a string, a -// number, or a boolean. The 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`. The `:*` comparison can be used to test whether a key has -// been defined. For example, to find all objects with `owner` label use: ``` -// labels.owner:* ``` 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) ``` If you want to use a regular -// expression, use the `eq` (equal) or `ne` (not equal) operator against a -// single un-parenthesized expression with or without quotes or against -// multiple parenthesized expressions. Examples: `fieldname eq unquoted -// literal` `fieldname eq 'single quoted literal'` `fieldname eq "double quoted -// literal" `(fieldname1 eq literal) (fieldname2 ne "literal")` The literal -// value is interpreted as a regular expression using Google RE2 library -// syntax. The literal value must match the entire field. For example, to -// filter for instances that do not end with name "instance", you would use -// `name ne .*instance`. You cannot combine constraints on multiple fields -// using regular expressions. -func (c *TargetInstancesAggregatedListCall) Filter(filter string) *TargetInstancesAggregatedListCall { +// filters resources listed in the response. Most +// Compute resources support two types of filter expressions: +// expressions that support regular expressions and expressions that follow +// API improvement proposal AIP-160. +// These two types of filter expressions cannot be mixed in one request. +// +// If you want to use AIP-160, your expression must specify the field name, +// an +// operator, and the value that you want to use for filtering. The value +// must be a string, a number, or a boolean. The 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`. +// +// The `:*` comparison can be used to test whether a key has been defined. +// For example, to find all objects with `owner` label +// use: +// ``` +// labels.owner:* +// ``` +// +// 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 onresource 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) +// ``` +// +// If you want to use a regular expression, use the `eq` (equal) or `ne` +// (not equal) operator against a single un-parenthesized expression with +// or +// without quotes or against multiple parenthesized expressions. +// Examples: +// +// `fieldname eq unquoted literal` +// `fieldname eq 'single quoted literal'` +// `fieldname eq "double quoted literal" +// `(fieldname1 eq literal) (fieldname2 ne "literal")` +// +// The literal value is interpreted as a regular expression using GoogleRE2 +// library syntax. +// The literal value must match the entire field. +// +// For example, to filter for instances that do not end with name +// "instance", +// you would use `name ne .*instance`. +// +// You cannot combine constraints on multiple fields using regular +// expressions. +func (c *TargetPoolsListCall) Filter(filter string) *TargetPoolsListCall { c.urlParams_.Set("filter", filter) return c } -// IncludeAllScopes sets the optional parameter "includeAllScopes": Indicates -// whether every visible scope for each scope type (zone, region, global) -// should be included in the response. For new resource types added after this -// field, the flag has no effect as new resource types will always include -// every visible scope for each scope type in response. For resource types -// which predate this field, if this flag is omitted or false, only scopes of -// the scope types where the resource type is expected to be found will be -// included. -func (c *TargetInstancesAggregatedListCall) IncludeAllScopes(includeAllScopes bool) *TargetInstancesAggregatedListCall { - c.urlParams_.Set("includeAllScopes", fmt.Sprint(includeAllScopes)) - 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 *TargetInstancesAggregatedListCall) MaxResults(maxResults int64) *TargetInstancesAggregatedListCall { +// 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 *TargetPoolsListCall) MaxResults(maxResults int64) *TargetPoolsListCall { 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 *TargetInstancesAggregatedListCall) OrderBy(orderBy string) *TargetInstancesAggregatedListCall { +// 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 *TargetPoolsListCall) OrderBy(orderBy string) *TargetPoolsListCall { 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 *TargetInstancesAggregatedListCall) PageToken(pageToken string) *TargetInstancesAggregatedListCall { +// use. Set `pageToken` to the +// `nextPageToken` returned by a previous list request to get +// the next page of results. +func (c *TargetPoolsListCall) PageToken(pageToken string) *TargetPoolsListCall { c.urlParams_.Set("pageToken", pageToken) return c } // ReturnPartialSuccess sets the optional parameter "returnPartialSuccess": -// Opt-in for partial success behavior which provides partial results in case -// of failure. The default value is false. For example, when partial success -// behavior is enabled, aggregatedList for a single zone scope either returns -// all resources in the zone or no resources, with an error code. -func (c *TargetInstancesAggregatedListCall) ReturnPartialSuccess(returnPartialSuccess bool) *TargetInstancesAggregatedListCall { +// Opt-in for partial success behavior which provides partial results in +// case +// of failure. The default value is false. +// +// For example, when partial success behavior is enabled, aggregatedList for +// a +// single zone scope either returns all resources in the zone or no +// resources, +// with an error code. +func (c *TargetPoolsListCall) ReturnPartialSuccess(returnPartialSuccess bool) *TargetPoolsListCall { c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess)) return c } -// ServiceProjectNumber sets the optional parameter "serviceProjectNumber": The -// Shared VPC service project id or service project number for which aggregated -// list request is invoked for subnetworks list-usable api. -func (c *TargetInstancesAggregatedListCall) ServiceProjectNumber(serviceProjectNumber int64) *TargetInstancesAggregatedListCall { - c.urlParams_.Set("serviceProjectNumber", fmt.Sprint(serviceProjectNumber)) - return c -} - // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *TargetInstancesAggregatedListCall) Fields(s ...googleapi.Field) *TargetInstancesAggregatedListCall { +func (c *TargetPoolsListCall) Fields(s ...googleapi.Field) *TargetPoolsListCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } @@ -40180,54 +61589,54 @@ func (c *TargetInstancesAggregatedListCall) Fields(s ...googleapi.Field) *Target // IfNoneMatch sets an 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. -func (c *TargetInstancesAggregatedListCall) IfNoneMatch(entityTag string) *TargetInstancesAggregatedListCall { +func (c *TargetPoolsListCall) IfNoneMatch(entityTag string) *TargetPoolsListCall { c.ifNoneMatch_ = entityTag return c } // Context sets the context to be used in this call's Do method. -func (c *TargetInstancesAggregatedListCall) Context(ctx context.Context) *TargetInstancesAggregatedListCall { +func (c *TargetPoolsListCall) Context(ctx context.Context) *TargetPoolsListCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *TargetInstancesAggregatedListCall) Header() http.Header { +func (c *TargetPoolsListCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *TargetInstancesAggregatedListCall) doRequest(alt string) (*http.Response, error) { +func (c *TargetPoolsListCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) if c.ifNoneMatch_ != "" { reqHeaders.Set("If-None-Match", c.ifNoneMatch_) } - var body io.Reader = nil c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/aggregated/targetInstances") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/targetPools") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("GET", urls, body) + req, err := http.NewRequest("GET", urls, nil) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ "project": c.project, + "region": c.region, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.targetPools.list", "request", internallog.HTTPRequest(req, nil)) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.targetInstances.aggregatedList" call. +// Do executes the "compute.targetPools.list" call. // Any non-2xx status code is an error. Response headers are in either -// *TargetInstanceAggregatedList.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 *TargetInstancesAggregatedListCall) Do(opts ...googleapi.CallOption) (*TargetInstanceAggregatedList, error) { +// *TargetPoolList.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 *TargetPoolsListCall) Do(opts ...googleapi.CallOption) (*TargetPoolList, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -40246,23 +61655,25 @@ func (c *TargetInstancesAggregatedListCall) Do(opts ...googleapi.CallOption) (*T if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } - ret := &TargetInstanceAggregatedList{ + ret := &TargetPoolList{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.targetPools.list", "response", internallog.HTTPResponse(res, b)) return ret, nil } // 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 *TargetInstancesAggregatedListCall) Pages(ctx context.Context, f func(*TargetInstanceAggregatedList) error) error { +func (c *TargetPoolsListCall) Pages(ctx context.Context, f func(*TargetPoolList) error) error { c.ctx_ = ctx defer c.PageToken(c.urlParams_.Get("pageToken")) for { @@ -40280,40 +61691,182 @@ func (c *TargetInstancesAggregatedListCall) Pages(ctx context.Context, f func(*T } } -type TargetInstancesDeleteCall struct { - s *Service - project string - zone string - targetInstance string - urlParams_ gensupport.URLParams - ctx_ context.Context - header_ http.Header +type TargetPoolsRemoveHealthCheckCall struct { + s *Service + project string + region string + targetPool string + targetpoolsremovehealthcheckrequest *TargetPoolsRemoveHealthCheckRequest + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header +} + +// RemoveHealthCheck: Removes health check URL from a target pool. +// +// - project: Project ID for this request. +// - region: Name of the region for this request. +// - targetPool: Name of the target pool to remove health checks from. +func (r *TargetPoolsService) RemoveHealthCheck(project string, region string, targetPool string, targetpoolsremovehealthcheckrequest *TargetPoolsRemoveHealthCheckRequest) *TargetPoolsRemoveHealthCheckCall { + c := &TargetPoolsRemoveHealthCheckCall{s: r.s, urlParams_: make(gensupport.URLParams)} + c.project = project + c.region = region + c.targetPool = targetPool + c.targetpoolsremovehealthcheckrequest = targetpoolsremovehealthcheckrequest + 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 *TargetPoolsRemoveHealthCheckCall) RequestId(requestId string) *TargetPoolsRemoveHealthCheckCall { + 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 +// details. +func (c *TargetPoolsRemoveHealthCheckCall) Fields(s ...googleapi.Field) *TargetPoolsRemoveHealthCheckCall { + c.urlParams_.Set("fields", googleapi.CombineFields(s)) + return c +} + +// Context sets the context to be used in this call's Do method. +func (c *TargetPoolsRemoveHealthCheckCall) Context(ctx context.Context) *TargetPoolsRemoveHealthCheckCall { + c.ctx_ = ctx + return c +} + +// Header returns a http.Header that can be modified by the caller to add +// headers to the request. +func (c *TargetPoolsRemoveHealthCheckCall) Header() http.Header { + if c.header_ == nil { + c.header_ = make(http.Header) + } + return c.header_ +} + +func (c *TargetPoolsRemoveHealthCheckCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) + body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.targetpoolsremovehealthcheckrequest) + if err != nil { + return nil, err + } + c.urlParams_.Set("alt", alt) + c.urlParams_.Set("prettyPrint", "false") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/targetPools/{targetPool}/removeHealthCheck") + urls += "?" + c.urlParams_.Encode() + req, err := http.NewRequest("POST", urls, body) + if err != nil { + return nil, err + } + req.Header = reqHeaders + googleapi.Expand(req.URL, map[string]string{ + "project": c.project, + "region": c.region, + "targetPool": c.targetPool, + }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.targetPools.removeHealthCheck", "request", internallog.HTTPRequest(req, body.Bytes())) + return gensupport.SendRequest(c.ctx_, c.s.client, req) +} + +// Do executes the "compute.targetPools.removeHealthCheck" call. +// 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 *TargetPoolsRemoveHealthCheckCall) 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, gensupport.WrapError(&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, gensupport.WrapError(err) + } + ret := &Operation{ + ServerResponse: googleapi.ServerResponse{ + Header: res.Header, + HTTPStatusCode: res.StatusCode, + }, + } + target := &ret + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { + return nil, err + } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.targetPools.removeHealthCheck", "response", internallog.HTTPResponse(res, b)) + return ret, nil +} + +type TargetPoolsRemoveInstanceCall struct { + s *Service + project string + region string + targetPool string + targetpoolsremoveinstancerequest *TargetPoolsRemoveInstanceRequest + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header } -// Delete: Deletes the specified TargetInstance resource. +// RemoveInstance: Removes instance URL from a target pool. // // - project: Project ID for this request. -// - targetInstance: Name of the TargetInstance resource to delete. -// - zone: Name of the zone scoping this request. -func (r *TargetInstancesService) Delete(project string, zone string, targetInstance string) *TargetInstancesDeleteCall { - c := &TargetInstancesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)} +// - region: Name of the region scoping this request. +// - targetPool: Name of the TargetPool resource to remove instances from. +func (r *TargetPoolsService) RemoveInstance(project string, region string, targetPool string, targetpoolsremoveinstancerequest *TargetPoolsRemoveInstanceRequest) *TargetPoolsRemoveInstanceCall { + c := &TargetPoolsRemoveInstanceCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project - c.zone = zone - c.targetInstance = targetInstance + c.region = region + c.targetPool = targetPool + c.targetpoolsremoveinstancerequest = targetpoolsremoveinstancerequest 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 *TargetInstancesDeleteCall) RequestId(requestId string) *TargetInstancesDeleteCall { +// 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 *TargetPoolsRemoveInstanceCall) RequestId(requestId string) *TargetPoolsRemoveInstanceCall { c.urlParams_.Set("requestId", requestId) return c } @@ -40321,52 +61874,56 @@ func (c *TargetInstancesDeleteCall) RequestId(requestId string) *TargetInstances // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *TargetInstancesDeleteCall) Fields(s ...googleapi.Field) *TargetInstancesDeleteCall { +func (c *TargetPoolsRemoveInstanceCall) Fields(s ...googleapi.Field) *TargetPoolsRemoveInstanceCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } // Context sets the context to be used in this call's Do method. -func (c *TargetInstancesDeleteCall) Context(ctx context.Context) *TargetInstancesDeleteCall { +func (c *TargetPoolsRemoveInstanceCall) Context(ctx context.Context) *TargetPoolsRemoveInstanceCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *TargetInstancesDeleteCall) Header() http.Header { +func (c *TargetPoolsRemoveInstanceCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *TargetInstancesDeleteCall) doRequest(alt string) (*http.Response, error) { - reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) - var body io.Reader = nil +func (c *TargetPoolsRemoveInstanceCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) + body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.targetpoolsremoveinstancerequest) + if err != nil { + return nil, err + } c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/targetInstances/{targetInstance}") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/targetPools/{targetPool}/removeInstance") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("DELETE", urls, body) + req, err := http.NewRequest("POST", urls, body) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "zone": c.zone, - "targetInstance": c.targetInstance, + "project": c.project, + "region": c.region, + "targetPool": c.targetPool, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.targetPools.removeInstance", "request", internallog.HTTPRequest(req, body.Bytes())) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.targetInstances.delete" call. +// Do executes the "compute.targetPools.removeInstance" call. // 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 *TargetInstancesDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) { +func (c *TargetPoolsRemoveInstanceCall) Do(opts ...googleapi.CallOption) (*Operation, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -40392,96 +61949,121 @@ func (c *TargetInstancesDeleteCall) Do(opts ...googleapi.CallOption) (*Operation }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.targetPools.removeInstance", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type TargetInstancesGetCall struct { - s *Service - project string - zone string - targetInstance string - urlParams_ gensupport.URLParams - ifNoneMatch_ string - ctx_ context.Context - header_ http.Header +type TargetPoolsSetBackupCall struct { + s *Service + project string + region string + targetPool string + targetreference *TargetReference + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header } -// Get: Returns the specified TargetInstance resource. +// SetBackup: Changes a backup target pool's configurations. // // - project: Project ID for this request. -// - targetInstance: Name of the TargetInstance resource to return. -// - zone: Name of the zone scoping this request. -func (r *TargetInstancesService) Get(project string, zone string, targetInstance string) *TargetInstancesGetCall { - c := &TargetInstancesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)} +// - region: Name of the region scoping this request. +// - targetPool: Name of the TargetPool resource to set a backup pool for. +func (r *TargetPoolsService) SetBackup(project string, region string, targetPool string, targetreference *TargetReference) *TargetPoolsSetBackupCall { + c := &TargetPoolsSetBackupCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project - c.zone = zone - c.targetInstance = targetInstance + c.region = region + c.targetPool = targetPool + c.targetreference = targetreference + return c +} + +// FailoverRatio sets the optional parameter "failoverRatio": New failoverRatio +// value for the target pool. +func (c *TargetPoolsSetBackupCall) FailoverRatio(failoverRatio float64) *TargetPoolsSetBackupCall { + c.urlParams_.Set("failoverRatio", fmt.Sprint(failoverRatio)) + 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 *TargetPoolsSetBackupCall) RequestId(requestId string) *TargetPoolsSetBackupCall { + 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 // details. -func (c *TargetInstancesGetCall) Fields(s ...googleapi.Field) *TargetInstancesGetCall { +func (c *TargetPoolsSetBackupCall) Fields(s ...googleapi.Field) *TargetPoolsSetBackupCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } -// IfNoneMatch sets an 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. -func (c *TargetInstancesGetCall) IfNoneMatch(entityTag string) *TargetInstancesGetCall { - c.ifNoneMatch_ = entityTag - return c -} - // Context sets the context to be used in this call's Do method. -func (c *TargetInstancesGetCall) Context(ctx context.Context) *TargetInstancesGetCall { +func (c *TargetPoolsSetBackupCall) Context(ctx context.Context) *TargetPoolsSetBackupCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *TargetInstancesGetCall) Header() http.Header { +func (c *TargetPoolsSetBackupCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *TargetInstancesGetCall) doRequest(alt string) (*http.Response, error) { - reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) - if c.ifNoneMatch_ != "" { - reqHeaders.Set("If-None-Match", c.ifNoneMatch_) +func (c *TargetPoolsSetBackupCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) + body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.targetreference) + if err != nil { + return nil, err } - var body io.Reader = nil c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/targetInstances/{targetInstance}") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/targetPools/{targetPool}/setBackup") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("GET", urls, body) + req, err := http.NewRequest("POST", urls, body) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "zone": c.zone, - "targetInstance": c.targetInstance, + "project": c.project, + "region": c.region, + "targetPool": c.targetPool, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.targetPools.setBackup", "request", internallog.HTTPRequest(req, body.Bytes())) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.targetInstances.get" call. +// Do executes the "compute.targetPools.setBackup" call. // Any non-2xx status code is an error. Response headers are in either -// *TargetInstance.ServerResponse.Header or (if a response was returned at all) -// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check +// *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 *TargetInstancesGetCall) Do(opts ...googleapi.CallOption) (*TargetInstance, error) { +func (c *TargetPoolsSetBackupCall) Do(opts ...googleapi.CallOption) (*Operation, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -40500,53 +62082,70 @@ func (c *TargetInstancesGetCall) Do(opts ...googleapi.CallOption) (*TargetInstan if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } - ret := &TargetInstance{ + ret := &Operation{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.targetPools.setBackup", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type TargetInstancesInsertCall struct { - s *Service - project string - zone string - targetinstance *TargetInstance - urlParams_ gensupport.URLParams - ctx_ context.Context - header_ http.Header +type TargetPoolsSetSecurityPolicyCall struct { + s *Service + project string + region string + targetPool string + securitypolicyreference *SecurityPolicyReference + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header } -// Insert: Creates a TargetInstance resource in the specified project and zone -// using the data included in the request. +// SetSecurityPolicy: Sets the Google Cloud Armor security policy for the +// specified target pool. +// For more information, seeGoogle +// Cloud Armor Overview // -// - project: Project ID for this request. -// - zone: Name of the zone scoping this request. -func (r *TargetInstancesService) Insert(project string, zone string, targetinstance *TargetInstance) *TargetInstancesInsertCall { - c := &TargetInstancesInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)} +// - project: Project ID for this request. +// - region: Name of the region scoping this request. +// - targetPool: Name of the TargetPool resource to which the security policy +// should be +// +// set. The name should conform to RFC1035. +func (r *TargetPoolsService) SetSecurityPolicy(project string, region string, targetPool string, securitypolicyreference *SecurityPolicyReference) *TargetPoolsSetSecurityPolicyCall { + c := &TargetPoolsSetSecurityPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project - c.zone = zone - c.targetinstance = targetinstance + c.region = region + c.targetPool = targetPool + c.securitypolicyreference = securitypolicyreference 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 *TargetInstancesInsertCall) RequestId(requestId string) *TargetInstancesInsertCall { +// 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 *TargetPoolsSetSecurityPolicyCall) RequestId(requestId string) *TargetPoolsSetSecurityPolicyCall { c.urlParams_.Set("requestId", requestId) return c } @@ -40554,36 +62153,35 @@ func (c *TargetInstancesInsertCall) RequestId(requestId string) *TargetInstances // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *TargetInstancesInsertCall) Fields(s ...googleapi.Field) *TargetInstancesInsertCall { +func (c *TargetPoolsSetSecurityPolicyCall) Fields(s ...googleapi.Field) *TargetPoolsSetSecurityPolicyCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } // Context sets the context to be used in this call's Do method. -func (c *TargetInstancesInsertCall) Context(ctx context.Context) *TargetInstancesInsertCall { +func (c *TargetPoolsSetSecurityPolicyCall) Context(ctx context.Context) *TargetPoolsSetSecurityPolicyCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *TargetInstancesInsertCall) Header() http.Header { +func (c *TargetPoolsSetSecurityPolicyCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *TargetInstancesInsertCall) doRequest(alt string) (*http.Response, error) { +func (c *TargetPoolsSetSecurityPolicyCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) - var body io.Reader = nil - body, err := googleapi.WithoutDataWrapper.JSONReader(c.targetinstance) + body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.securitypolicyreference) if err != nil { return nil, err } c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/targetInstances") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/targetPools/{targetPool}/setSecurityPolicy") urls += "?" + c.urlParams_.Encode() req, err := http.NewRequest("POST", urls, body) if err != nil { @@ -40591,18 +62189,20 @@ func (c *TargetInstancesInsertCall) doRequest(alt string) (*http.Response, error } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "zone": c.zone, + "project": c.project, + "region": c.region, + "targetPool": c.targetPool, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.targetPools.setSecurityPolicy", "request", internallog.HTTPRequest(req, body.Bytes())) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.targetInstances.insert" call. +// Do executes the "compute.targetPools.setSecurityPolicy" call. // 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 *TargetInstancesInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) { +func (c *TargetPoolsSetSecurityPolicyCall) Do(opts ...googleapi.CallOption) (*Operation, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -40628,172 +62228,94 @@ func (c *TargetInstancesInsertCall) Do(opts ...googleapi.CallOption) (*Operation }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.targetPools.setSecurityPolicy", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type TargetInstancesListCall struct { - s *Service - project string - zone string - urlParams_ gensupport.URLParams - ifNoneMatch_ string - ctx_ context.Context - header_ http.Header +type TargetPoolsTestIamPermissionsCall struct { + s *Service + project string + region string + resource string + testpermissionsrequest *TestPermissionsRequest + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header } -// List: Retrieves a list of TargetInstance resources available to the -// specified project and zone. +// TestIamPermissions: Returns permissions that a caller has on the specified +// resource. // // - project: Project ID for this request. -// - zone: Name of the zone scoping this request. -func (r *TargetInstancesService) List(project string, zone string) *TargetInstancesListCall { - c := &TargetInstancesListCall{s: r.s, urlParams_: make(gensupport.URLParams)} +// - region: The name of the region for this request. +// - resource: Name or id of the resource for this request. +func (r *TargetPoolsService) TestIamPermissions(project string, region string, resource string, testpermissionsrequest *TestPermissionsRequest) *TargetPoolsTestIamPermissionsCall { + c := &TargetPoolsTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project - c.zone = zone - return c -} - -// Filter sets the optional parameter "filter": A filter expression that -// filters resources listed in the response. Most Compute resources support two -// types of filter expressions: expressions that support regular expressions -// and expressions that follow API improvement proposal AIP-160. These two -// types of filter expressions cannot be mixed in one request. If you want to -// use AIP-160, your expression must specify the field name, an operator, and -// the value that you want to use for filtering. The value must be a string, a -// number, or a boolean. The 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`. The `:*` comparison can be used to test whether a key has -// been defined. For example, to find all objects with `owner` label use: ``` -// labels.owner:* ``` 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) ``` If you want to use a regular -// expression, use the `eq` (equal) or `ne` (not equal) operator against a -// single un-parenthesized expression with or without quotes or against -// multiple parenthesized expressions. Examples: `fieldname eq unquoted -// literal` `fieldname eq 'single quoted literal'` `fieldname eq "double quoted -// literal" `(fieldname1 eq literal) (fieldname2 ne "literal")` The literal -// value is interpreted as a regular expression using Google RE2 library -// syntax. The literal value must match the entire field. For example, to -// filter for instances that do not end with name "instance", you would use -// `name ne .*instance`. You cannot combine constraints on multiple fields -// using regular expressions. -func (c *TargetInstancesListCall) Filter(filter string) *TargetInstancesListCall { - 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 *TargetInstancesListCall) MaxResults(maxResults int64) *TargetInstancesListCall { - 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 *TargetInstancesListCall) OrderBy(orderBy string) *TargetInstancesListCall { - 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 *TargetInstancesListCall) PageToken(pageToken string) *TargetInstancesListCall { - c.urlParams_.Set("pageToken", pageToken) - return c -} - -// ReturnPartialSuccess sets the optional parameter "returnPartialSuccess": -// Opt-in for partial success behavior which provides partial results in case -// of failure. The default value is false. For example, when partial success -// behavior is enabled, aggregatedList for a single zone scope either returns -// all resources in the zone or no resources, with an error code. -func (c *TargetInstancesListCall) ReturnPartialSuccess(returnPartialSuccess bool) *TargetInstancesListCall { - c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess)) + c.region = region + c.resource = resource + c.testpermissionsrequest = testpermissionsrequest return c } // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *TargetInstancesListCall) Fields(s ...googleapi.Field) *TargetInstancesListCall { +func (c *TargetPoolsTestIamPermissionsCall) Fields(s ...googleapi.Field) *TargetPoolsTestIamPermissionsCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } -// IfNoneMatch sets an 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. -func (c *TargetInstancesListCall) IfNoneMatch(entityTag string) *TargetInstancesListCall { - c.ifNoneMatch_ = entityTag - return c -} - // Context sets the context to be used in this call's Do method. -func (c *TargetInstancesListCall) Context(ctx context.Context) *TargetInstancesListCall { +func (c *TargetPoolsTestIamPermissionsCall) Context(ctx context.Context) *TargetPoolsTestIamPermissionsCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *TargetInstancesListCall) Header() http.Header { +func (c *TargetPoolsTestIamPermissionsCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *TargetInstancesListCall) doRequest(alt string) (*http.Response, error) { - reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) - if c.ifNoneMatch_ != "" { - reqHeaders.Set("If-None-Match", c.ifNoneMatch_) +func (c *TargetPoolsTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) + body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.testpermissionsrequest) + if err != nil { + return nil, err } - var body io.Reader = nil c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/targetInstances") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/targetPools/{resource}/testIamPermissions") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("GET", urls, body) + req, err := http.NewRequest("POST", urls, body) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "zone": c.zone, + "project": c.project, + "region": c.region, + "resource": c.resource, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.targetPools.testIamPermissions", "request", internallog.HTTPRequest(req, body.Bytes())) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.targetInstances.list" call. +// Do executes the "compute.targetPools.testIamPermissions" call. // Any non-2xx status code is an error. Response headers are in either -// *TargetInstanceList.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 *TargetInstancesListCall) Do(opts ...googleapi.CallOption) (*TargetInstanceList, error) { +// *TestPermissionsResponse.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 *TargetPoolsTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -40812,79 +62334,59 @@ func (c *TargetInstancesListCall) Do(opts ...googleapi.CallOption) (*TargetInsta if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } - ret := &TargetInstanceList{ + ret := &TestPermissionsResponse{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.targetPools.testIamPermissions", "response", internallog.HTTPResponse(res, b)) return ret, nil } -// 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 *TargetInstancesListCall) Pages(ctx context.Context, f func(*TargetInstanceList) error) error { - c.ctx_ = ctx - defer c.PageToken(c.urlParams_.Get("pageToken")) - 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) - } -} - -type TargetInstancesSetSecurityPolicyCall struct { - s *Service - project string - zone string - targetInstance string - securitypolicyreference *SecurityPolicyReference - urlParams_ gensupport.URLParams - ctx_ context.Context - header_ http.Header +type TargetSslProxiesDeleteCall struct { + s *Service + project string + targetSslProxy string + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header } -// SetSecurityPolicy: Sets the Google Cloud Armor security policy for the -// specified target instance. For more information, see Google Cloud Armor -// Overview +// Delete: Deletes the specified TargetSslProxy resource. // -// - project: Project ID for this request. -// - targetInstance: Name of the TargetInstance resource to which the security -// policy should be set. The name should conform to RFC1035. -// - zone: Name of the zone scoping this request. -func (r *TargetInstancesService) SetSecurityPolicy(project string, zone string, targetInstance string, securitypolicyreference *SecurityPolicyReference) *TargetInstancesSetSecurityPolicyCall { - c := &TargetInstancesSetSecurityPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)} +// - project: Project ID for this request. +// - targetSslProxy: Name of the TargetSslProxy resource to delete. +func (r *TargetSslProxiesService) Delete(project string, targetSslProxy string) *TargetSslProxiesDeleteCall { + c := &TargetSslProxiesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project - c.zone = zone - c.targetInstance = targetInstance - c.securitypolicyreference = securitypolicyreference + c.targetSslProxy = targetSslProxy 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 *TargetInstancesSetSecurityPolicyCall) RequestId(requestId string) *TargetInstancesSetSecurityPolicyCall { +// 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 *TargetSslProxiesDeleteCall) RequestId(requestId string) *TargetSslProxiesDeleteCall { c.urlParams_.Set("requestId", requestId) return c } @@ -40892,56 +62394,51 @@ func (c *TargetInstancesSetSecurityPolicyCall) RequestId(requestId string) *Targ // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *TargetInstancesSetSecurityPolicyCall) Fields(s ...googleapi.Field) *TargetInstancesSetSecurityPolicyCall { +func (c *TargetSslProxiesDeleteCall) Fields(s ...googleapi.Field) *TargetSslProxiesDeleteCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } // Context sets the context to be used in this call's Do method. -func (c *TargetInstancesSetSecurityPolicyCall) Context(ctx context.Context) *TargetInstancesSetSecurityPolicyCall { +func (c *TargetSslProxiesDeleteCall) Context(ctx context.Context) *TargetSslProxiesDeleteCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *TargetInstancesSetSecurityPolicyCall) Header() http.Header { +func (c *TargetSslProxiesDeleteCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *TargetInstancesSetSecurityPolicyCall) doRequest(alt string) (*http.Response, error) { - reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) - var body io.Reader = nil - body, err := googleapi.WithoutDataWrapper.JSONReader(c.securitypolicyreference) - if err != nil { - return nil, err - } +func (c *TargetSslProxiesDeleteCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/targetInstances/{targetInstance}/setSecurityPolicy") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/targetSslProxies/{targetSslProxy}") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("POST", urls, body) + req, err := http.NewRequest("DELETE", urls, nil) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ "project": c.project, - "zone": c.zone, - "targetInstance": c.targetInstance, + "targetSslProxy": c.targetSslProxy, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.targetSslProxies.delete", "request", internallog.HTTPRequest(req, nil)) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.targetInstances.setSecurityPolicy" call. +// Do executes the "compute.targetSslProxies.delete" call. // 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 *TargetInstancesSetSecurityPolicyCall) Do(opts ...googleapi.CallOption) (*Operation, error) { +func (c *TargetSslProxiesDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -40967,105 +62464,94 @@ func (c *TargetInstancesSetSecurityPolicyCall) Do(opts ...googleapi.CallOption) }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.targetSslProxies.delete", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type TargetPoolsAddHealthCheckCall struct { - s *Service - project string - region string - targetPool string - targetpoolsaddhealthcheckrequest *TargetPoolsAddHealthCheckRequest - urlParams_ gensupport.URLParams - ctx_ context.Context - header_ http.Header +type TargetSslProxiesGetCall struct { + s *Service + project string + targetSslProxy string + urlParams_ gensupport.URLParams + ifNoneMatch_ string + ctx_ context.Context + header_ http.Header } -// AddHealthCheck: Adds health check URLs to a target pool. +// Get: Returns the specified TargetSslProxy resource. // // - project: Project ID for this request. -// - region: Name of the region scoping this request. -// - targetPool: Name of the target pool to add a health check to. -func (r *TargetPoolsService) AddHealthCheck(project string, region string, targetPool string, targetpoolsaddhealthcheckrequest *TargetPoolsAddHealthCheckRequest) *TargetPoolsAddHealthCheckCall { - c := &TargetPoolsAddHealthCheckCall{s: r.s, urlParams_: make(gensupport.URLParams)} +// - targetSslProxy: Name of the TargetSslProxy resource to return. +func (r *TargetSslProxiesService) Get(project string, targetSslProxy string) *TargetSslProxiesGetCall { + c := &TargetSslProxiesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project - c.region = region - c.targetPool = targetPool - c.targetpoolsaddhealthcheckrequest = targetpoolsaddhealthcheckrequest - 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 *TargetPoolsAddHealthCheckCall) RequestId(requestId string) *TargetPoolsAddHealthCheckCall { - c.urlParams_.Set("requestId", requestId) + c.targetSslProxy = targetSslProxy return c } // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *TargetPoolsAddHealthCheckCall) Fields(s ...googleapi.Field) *TargetPoolsAddHealthCheckCall { +func (c *TargetSslProxiesGetCall) Fields(s ...googleapi.Field) *TargetSslProxiesGetCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } +// IfNoneMatch sets an 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. +func (c *TargetSslProxiesGetCall) IfNoneMatch(entityTag string) *TargetSslProxiesGetCall { + c.ifNoneMatch_ = entityTag + return c +} + // Context sets the context to be used in this call's Do method. -func (c *TargetPoolsAddHealthCheckCall) Context(ctx context.Context) *TargetPoolsAddHealthCheckCall { +func (c *TargetSslProxiesGetCall) Context(ctx context.Context) *TargetSslProxiesGetCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *TargetPoolsAddHealthCheckCall) Header() http.Header { +func (c *TargetSslProxiesGetCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *TargetPoolsAddHealthCheckCall) doRequest(alt string) (*http.Response, error) { - reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) - var body io.Reader = nil - body, err := googleapi.WithoutDataWrapper.JSONReader(c.targetpoolsaddhealthcheckrequest) - if err != nil { - return nil, err +func (c *TargetSslProxiesGetCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) + if c.ifNoneMatch_ != "" { + reqHeaders.Set("If-None-Match", c.ifNoneMatch_) } c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/targetPools/{targetPool}/addHealthCheck") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/targetSslProxies/{targetSslProxy}") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("POST", urls, body) + req, err := http.NewRequest("GET", urls, nil) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "region": c.region, - "targetPool": c.targetPool, + "project": c.project, + "targetSslProxy": c.targetSslProxy, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.targetSslProxies.get", "request", internallog.HTTPRequest(req, nil)) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.targetPools.addHealthCheck" call. +// Do executes the "compute.targetSslProxies.get" call. // 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 +// *TargetSslProxy.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 *TargetPoolsAddHealthCheckCall) Do(opts ...googleapi.CallOption) (*Operation, error) { +func (c *TargetSslProxiesGetCall) Do(opts ...googleapi.CallOption) (*TargetSslProxy, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -41084,55 +62570,59 @@ func (c *TargetPoolsAddHealthCheckCall) Do(opts ...googleapi.CallOption) (*Opera if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } - ret := &Operation{ + ret := &TargetSslProxy{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.targetSslProxies.get", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type TargetPoolsAddInstanceCall struct { - s *Service - project string - region string - targetPool string - targetpoolsaddinstancerequest *TargetPoolsAddInstanceRequest - urlParams_ gensupport.URLParams - ctx_ context.Context - header_ http.Header +type TargetSslProxiesInsertCall struct { + s *Service + project string + targetsslproxy *TargetSslProxy + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header } -// AddInstance: Adds an instance to a target pool. +// Insert: Creates a TargetSslProxy resource in the specified project using +// the data included in the request. // // - project: Project ID for this request. -// - region: Name of the region scoping this request. -// - targetPool: Name of the TargetPool resource to add instances to. -func (r *TargetPoolsService) AddInstance(project string, region string, targetPool string, targetpoolsaddinstancerequest *TargetPoolsAddInstanceRequest) *TargetPoolsAddInstanceCall { - c := &TargetPoolsAddInstanceCall{s: r.s, urlParams_: make(gensupport.URLParams)} +func (r *TargetSslProxiesService) Insert(project string, targetsslproxy *TargetSslProxy) *TargetSslProxiesInsertCall { + c := &TargetSslProxiesInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project - c.region = region - c.targetPool = targetPool - c.targetpoolsaddinstancerequest = targetpoolsaddinstancerequest + c.targetsslproxy = targetsslproxy 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 *TargetPoolsAddInstanceCall) RequestId(requestId string) *TargetPoolsAddInstanceCall { +// 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 *TargetSslProxiesInsertCall) RequestId(requestId string) *TargetSslProxiesInsertCall { c.urlParams_.Set("requestId", requestId) return c } @@ -41140,36 +62630,35 @@ func (c *TargetPoolsAddInstanceCall) RequestId(requestId string) *TargetPoolsAdd // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *TargetPoolsAddInstanceCall) Fields(s ...googleapi.Field) *TargetPoolsAddInstanceCall { +func (c *TargetSslProxiesInsertCall) Fields(s ...googleapi.Field) *TargetSslProxiesInsertCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } // Context sets the context to be used in this call's Do method. -func (c *TargetPoolsAddInstanceCall) Context(ctx context.Context) *TargetPoolsAddInstanceCall { +func (c *TargetSslProxiesInsertCall) Context(ctx context.Context) *TargetSslProxiesInsertCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *TargetPoolsAddInstanceCall) Header() http.Header { +func (c *TargetSslProxiesInsertCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *TargetPoolsAddInstanceCall) doRequest(alt string) (*http.Response, error) { +func (c *TargetSslProxiesInsertCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) - var body io.Reader = nil - body, err := googleapi.WithoutDataWrapper.JSONReader(c.targetpoolsaddinstancerequest) + body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.targetsslproxy) if err != nil { return nil, err } c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/targetPools/{targetPool}/addInstance") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/targetSslProxies") urls += "?" + c.urlParams_.Encode() req, err := http.NewRequest("POST", urls, body) if err != nil { @@ -41177,19 +62666,18 @@ func (c *TargetPoolsAddInstanceCall) doRequest(alt string) (*http.Response, erro } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "region": c.region, - "targetPool": c.targetPool, + "project": c.project, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.targetSslProxies.insert", "request", internallog.HTTPRequest(req, body.Bytes())) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.targetPools.addInstance" call. +// Do executes the "compute.targetSslProxies.insert" call. // 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 *TargetPoolsAddInstanceCall) Do(opts ...googleapi.CallOption) (*Operation, error) { +func (c *TargetSslProxiesInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -41215,13 +62703,15 @@ func (c *TargetPoolsAddInstanceCall) Do(opts ...googleapi.CallOption) (*Operatio }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.targetSslProxies.insert", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type TargetPoolsAggregatedListCall struct { +type TargetSslProxiesListCall struct { s *Service project string urlParams_ gensupport.URLParams @@ -41230,120 +62720,148 @@ type TargetPoolsAggregatedListCall struct { header_ http.Header } -// AggregatedList: Retrieves an aggregated list of target pools. To prevent -// failure, Google recommends that you set the `returnPartialSuccess` parameter -// to `true`. +// List: Retrieves the list of TargetSslProxy resources +// available to the specified project. // // - project: Project ID for this request. -func (r *TargetPoolsService) AggregatedList(project string) *TargetPoolsAggregatedListCall { - c := &TargetPoolsAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)} +func (r *TargetSslProxiesService) List(project string) *TargetSslProxiesListCall { + c := &TargetSslProxiesListCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project return c } // Filter sets the optional parameter "filter": A filter expression that -// filters resources listed in the response. Most Compute resources support two -// types of filter expressions: expressions that support regular expressions -// and expressions that follow API improvement proposal AIP-160. These two -// types of filter expressions cannot be mixed in one request. If you want to -// use AIP-160, your expression must specify the field name, an operator, and -// the value that you want to use for filtering. The value must be a string, a -// number, or a boolean. The 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`. The `:*` comparison can be used to test whether a key has -// been defined. For example, to find all objects with `owner` label use: ``` -// labels.owner:* ``` 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) ``` If you want to use a regular -// expression, use the `eq` (equal) or `ne` (not equal) operator against a -// single un-parenthesized expression with or without quotes or against -// multiple parenthesized expressions. Examples: `fieldname eq unquoted -// literal` `fieldname eq 'single quoted literal'` `fieldname eq "double quoted -// literal" `(fieldname1 eq literal) (fieldname2 ne "literal")` The literal -// value is interpreted as a regular expression using Google RE2 library -// syntax. The literal value must match the entire field. For example, to -// filter for instances that do not end with name "instance", you would use -// `name ne .*instance`. You cannot combine constraints on multiple fields -// using regular expressions. -func (c *TargetPoolsAggregatedListCall) Filter(filter string) *TargetPoolsAggregatedListCall { +// filters resources listed in the response. Most +// Compute resources support two types of filter expressions: +// expressions that support regular expressions and expressions that follow +// API improvement proposal AIP-160. +// These two types of filter expressions cannot be mixed in one request. +// +// If you want to use AIP-160, your expression must specify the field name, +// an +// operator, and the value that you want to use for filtering. The value +// must be a string, a number, or a boolean. The 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`. +// +// The `:*` comparison can be used to test whether a key has been defined. +// For example, to find all objects with `owner` label +// use: +// ``` +// labels.owner:* +// ``` +// +// 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 onresource 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) +// ``` +// +// If you want to use a regular expression, use the `eq` (equal) or `ne` +// (not equal) operator against a single un-parenthesized expression with +// or +// without quotes or against multiple parenthesized expressions. +// Examples: +// +// `fieldname eq unquoted literal` +// `fieldname eq 'single quoted literal'` +// `fieldname eq "double quoted literal" +// `(fieldname1 eq literal) (fieldname2 ne "literal")` +// +// The literal value is interpreted as a regular expression using GoogleRE2 +// library syntax. +// The literal value must match the entire field. +// +// For example, to filter for instances that do not end with name +// "instance", +// you would use `name ne .*instance`. +// +// You cannot combine constraints on multiple fields using regular +// expressions. +func (c *TargetSslProxiesListCall) Filter(filter string) *TargetSslProxiesListCall { c.urlParams_.Set("filter", filter) return c } -// IncludeAllScopes sets the optional parameter "includeAllScopes": Indicates -// whether every visible scope for each scope type (zone, region, global) -// should be included in the response. For new resource types added after this -// field, the flag has no effect as new resource types will always include -// every visible scope for each scope type in response. For resource types -// which predate this field, if this flag is omitted or false, only scopes of -// the scope types where the resource type is expected to be found will be -// included. -func (c *TargetPoolsAggregatedListCall) IncludeAllScopes(includeAllScopes bool) *TargetPoolsAggregatedListCall { - c.urlParams_.Set("includeAllScopes", fmt.Sprint(includeAllScopes)) - 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 *TargetPoolsAggregatedListCall) MaxResults(maxResults int64) *TargetPoolsAggregatedListCall { +// 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 *TargetSslProxiesListCall) MaxResults(maxResults int64) *TargetSslProxiesListCall { 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 *TargetPoolsAggregatedListCall) OrderBy(orderBy string) *TargetPoolsAggregatedListCall { +// 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 *TargetSslProxiesListCall) OrderBy(orderBy string) *TargetSslProxiesListCall { 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 *TargetPoolsAggregatedListCall) PageToken(pageToken string) *TargetPoolsAggregatedListCall { +// use. Set `pageToken` to the +// `nextPageToken` returned by a previous list request to get +// the next page of results. +func (c *TargetSslProxiesListCall) PageToken(pageToken string) *TargetSslProxiesListCall { c.urlParams_.Set("pageToken", pageToken) return c } // ReturnPartialSuccess sets the optional parameter "returnPartialSuccess": -// Opt-in for partial success behavior which provides partial results in case -// of failure. The default value is false. For example, when partial success -// behavior is enabled, aggregatedList for a single zone scope either returns -// all resources in the zone or no resources, with an error code. -func (c *TargetPoolsAggregatedListCall) ReturnPartialSuccess(returnPartialSuccess bool) *TargetPoolsAggregatedListCall { +// Opt-in for partial success behavior which provides partial results in +// case +// of failure. The default value is false. +// +// For example, when partial success behavior is enabled, aggregatedList for +// a +// single zone scope either returns all resources in the zone or no +// resources, +// with an error code. +func (c *TargetSslProxiesListCall) ReturnPartialSuccess(returnPartialSuccess bool) *TargetSslProxiesListCall { c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess)) return c } -// ServiceProjectNumber sets the optional parameter "serviceProjectNumber": The -// Shared VPC service project id or service project number for which aggregated -// list request is invoked for subnetworks list-usable api. -func (c *TargetPoolsAggregatedListCall) ServiceProjectNumber(serviceProjectNumber int64) *TargetPoolsAggregatedListCall { - c.urlParams_.Set("serviceProjectNumber", fmt.Sprint(serviceProjectNumber)) - return c -} - // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *TargetPoolsAggregatedListCall) Fields(s ...googleapi.Field) *TargetPoolsAggregatedListCall { +func (c *TargetSslProxiesListCall) Fields(s ...googleapi.Field) *TargetSslProxiesListCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } @@ -41351,37 +62869,36 @@ func (c *TargetPoolsAggregatedListCall) Fields(s ...googleapi.Field) *TargetPool // IfNoneMatch sets an 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. -func (c *TargetPoolsAggregatedListCall) IfNoneMatch(entityTag string) *TargetPoolsAggregatedListCall { +func (c *TargetSslProxiesListCall) IfNoneMatch(entityTag string) *TargetSslProxiesListCall { c.ifNoneMatch_ = entityTag return c } // Context sets the context to be used in this call's Do method. -func (c *TargetPoolsAggregatedListCall) Context(ctx context.Context) *TargetPoolsAggregatedListCall { +func (c *TargetSslProxiesListCall) Context(ctx context.Context) *TargetSslProxiesListCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *TargetPoolsAggregatedListCall) Header() http.Header { +func (c *TargetSslProxiesListCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *TargetPoolsAggregatedListCall) doRequest(alt string) (*http.Response, error) { +func (c *TargetSslProxiesListCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) if c.ifNoneMatch_ != "" { reqHeaders.Set("If-None-Match", c.ifNoneMatch_) } - var body io.Reader = nil c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/aggregated/targetPools") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/targetSslProxies") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("GET", urls, body) + req, err := http.NewRequest("GET", urls, nil) if err != nil { return nil, err } @@ -41389,16 +62906,17 @@ func (c *TargetPoolsAggregatedListCall) doRequest(alt string) (*http.Response, e googleapi.Expand(req.URL, map[string]string{ "project": c.project, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.targetSslProxies.list", "request", internallog.HTTPRequest(req, nil)) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.targetPools.aggregatedList" call. +// Do executes the "compute.targetSslProxies.list" call. // Any non-2xx status code is an error. Response headers are in either -// *TargetPoolAggregatedList.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 *TargetPoolsAggregatedListCall) Do(opts ...googleapi.CallOption) (*TargetPoolAggregatedList, error) { +// *TargetSslProxyList.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 *TargetSslProxiesListCall) Do(opts ...googleapi.CallOption) (*TargetSslProxyList, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -41417,23 +62935,25 @@ func (c *TargetPoolsAggregatedListCall) Do(opts ...googleapi.CallOption) (*Targe if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } - ret := &TargetPoolAggregatedList{ + ret := &TargetSslProxyList{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.targetSslProxies.list", "response", internallog.HTTPResponse(res, b)) return ret, nil } // 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 *TargetPoolsAggregatedListCall) Pages(ctx context.Context, f func(*TargetPoolAggregatedList) error) error { +func (c *TargetSslProxiesListCall) Pages(ctx context.Context, f func(*TargetSslProxyList) error) error { c.ctx_ = ctx defer c.PageToken(c.urlParams_.Get("pageToken")) for { @@ -41451,40 +62971,49 @@ func (c *TargetPoolsAggregatedListCall) Pages(ctx context.Context, f func(*Targe } } -type TargetPoolsDeleteCall struct { - s *Service - project string - region string - targetPool string - urlParams_ gensupport.URLParams - ctx_ context.Context - header_ http.Header +type TargetSslProxiesSetBackendServiceCall struct { + s *Service + project string + targetSslProxy string + targetsslproxiessetbackendservicerequest *TargetSslProxiesSetBackendServiceRequest + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header } -// Delete: Deletes the specified target pool. +// SetBackendService: Changes the BackendService for TargetSslProxy. // -// - project: Project ID for this request. -// - region: Name of the region scoping this request. -// - targetPool: Name of the TargetPool resource to delete. -func (r *TargetPoolsService) Delete(project string, region string, targetPool string) *TargetPoolsDeleteCall { - c := &TargetPoolsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)} +// - project: Project ID for this request. +// - targetSslProxy: Name of the TargetSslProxy resource whose BackendService +// resource +// +// is to be set. +func (r *TargetSslProxiesService) SetBackendService(project string, targetSslProxy string, targetsslproxiessetbackendservicerequest *TargetSslProxiesSetBackendServiceRequest) *TargetSslProxiesSetBackendServiceCall { + c := &TargetSslProxiesSetBackendServiceCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project - c.region = region - c.targetPool = targetPool + c.targetSslProxy = targetSslProxy + c.targetsslproxiessetbackendservicerequest = targetsslproxiessetbackendservicerequest 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 *TargetPoolsDeleteCall) RequestId(requestId string) *TargetPoolsDeleteCall { +// 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 *TargetSslProxiesSetBackendServiceCall) RequestId(requestId string) *TargetSslProxiesSetBackendServiceCall { c.urlParams_.Set("requestId", requestId) return c } @@ -41492,52 +63021,55 @@ func (c *TargetPoolsDeleteCall) RequestId(requestId string) *TargetPoolsDeleteCa // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *TargetPoolsDeleteCall) Fields(s ...googleapi.Field) *TargetPoolsDeleteCall { +func (c *TargetSslProxiesSetBackendServiceCall) Fields(s ...googleapi.Field) *TargetSslProxiesSetBackendServiceCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } // Context sets the context to be used in this call's Do method. -func (c *TargetPoolsDeleteCall) Context(ctx context.Context) *TargetPoolsDeleteCall { +func (c *TargetSslProxiesSetBackendServiceCall) Context(ctx context.Context) *TargetSslProxiesSetBackendServiceCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *TargetPoolsDeleteCall) Header() http.Header { +func (c *TargetSslProxiesSetBackendServiceCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *TargetPoolsDeleteCall) doRequest(alt string) (*http.Response, error) { - reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) - var body io.Reader = nil +func (c *TargetSslProxiesSetBackendServiceCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) + body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.targetsslproxiessetbackendservicerequest) + if err != nil { + return nil, err + } c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/targetPools/{targetPool}") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/targetSslProxies/{targetSslProxy}/setBackendService") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("DELETE", urls, body) + req, err := http.NewRequest("POST", urls, body) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "region": c.region, - "targetPool": c.targetPool, + "project": c.project, + "targetSslProxy": c.targetSslProxy, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.targetSslProxies.setBackendService", "request", internallog.HTTPRequest(req, body.Bytes())) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.targetPools.delete" call. +// Do executes the "compute.targetSslProxies.setBackendService" call. // 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 *TargetPoolsDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) { +func (c *TargetSslProxiesSetBackendServiceCall) Do(opts ...googleapi.CallOption) (*Operation, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -41563,96 +63095,112 @@ func (c *TargetPoolsDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, er }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.targetSslProxies.setBackendService", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type TargetPoolsGetCall struct { - s *Service - project string - region string - targetPool string - urlParams_ gensupport.URLParams - ifNoneMatch_ string - ctx_ context.Context - header_ http.Header +type TargetSslProxiesSetCertificateMapCall struct { + s *Service + project string + targetSslProxy string + targetsslproxiessetcertificatemaprequest *TargetSslProxiesSetCertificateMapRequest + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header } -// Get: Returns the specified target pool. +// SetCertificateMap: Changes the Certificate Map for TargetSslProxy. // -// - project: Project ID for this request. -// - region: Name of the region scoping this request. -// - targetPool: Name of the TargetPool resource to return. -func (r *TargetPoolsService) Get(project string, region string, targetPool string) *TargetPoolsGetCall { - c := &TargetPoolsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)} +// - project: Project ID for this request. +// - targetSslProxy: Name of the TargetSslProxy resource whose CertificateMap +// is +// to be set. The name must be 1-63 characters long, and comply with RFC1035. +func (r *TargetSslProxiesService) SetCertificateMap(project string, targetSslProxy string, targetsslproxiessetcertificatemaprequest *TargetSslProxiesSetCertificateMapRequest) *TargetSslProxiesSetCertificateMapCall { + c := &TargetSslProxiesSetCertificateMapCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project - c.region = region - c.targetPool = targetPool + c.targetSslProxy = targetSslProxy + c.targetsslproxiessetcertificatemaprequest = targetsslproxiessetcertificatemaprequest + 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 *TargetSslProxiesSetCertificateMapCall) RequestId(requestId string) *TargetSslProxiesSetCertificateMapCall { + 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 // details. -func (c *TargetPoolsGetCall) Fields(s ...googleapi.Field) *TargetPoolsGetCall { +func (c *TargetSslProxiesSetCertificateMapCall) Fields(s ...googleapi.Field) *TargetSslProxiesSetCertificateMapCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } -// IfNoneMatch sets an 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. -func (c *TargetPoolsGetCall) IfNoneMatch(entityTag string) *TargetPoolsGetCall { - c.ifNoneMatch_ = entityTag - return c -} - // Context sets the context to be used in this call's Do method. -func (c *TargetPoolsGetCall) Context(ctx context.Context) *TargetPoolsGetCall { +func (c *TargetSslProxiesSetCertificateMapCall) Context(ctx context.Context) *TargetSslProxiesSetCertificateMapCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *TargetPoolsGetCall) Header() http.Header { +func (c *TargetSslProxiesSetCertificateMapCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *TargetPoolsGetCall) doRequest(alt string) (*http.Response, error) { - reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) - if c.ifNoneMatch_ != "" { - reqHeaders.Set("If-None-Match", c.ifNoneMatch_) +func (c *TargetSslProxiesSetCertificateMapCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) + body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.targetsslproxiessetcertificatemaprequest) + if err != nil { + return nil, err } - var body io.Reader = nil c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/targetPools/{targetPool}") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/targetSslProxies/{targetSslProxy}/setCertificateMap") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("GET", urls, body) + req, err := http.NewRequest("POST", urls, body) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "region": c.region, - "targetPool": c.targetPool, + "project": c.project, + "targetSslProxy": c.targetSslProxy, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.targetSslProxies.setCertificateMap", "request", internallog.HTTPRequest(req, body.Bytes())) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.targetPools.get" call. +// Do executes the "compute.targetSslProxies.setCertificateMap" call. // Any non-2xx status code is an error. Response headers are in either -// *TargetPool.ServerResponse.Header or (if a response was returned at all) in +// *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 *TargetPoolsGetCall) Do(opts ...googleapi.CallOption) (*TargetPool, error) { +func (c *TargetSslProxiesSetCertificateMapCall) Do(opts ...googleapi.CallOption) (*Operation, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -41671,79 +63219,98 @@ func (c *TargetPoolsGetCall) Do(opts ...googleapi.CallOption) (*TargetPool, erro if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } - ret := &TargetPool{ + ret := &Operation{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.targetSslProxies.setCertificateMap", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type TargetPoolsGetHealthCall struct { - s *Service - project string - region string - targetPool string - instancereference *InstanceReference - urlParams_ gensupport.URLParams - ctx_ context.Context - header_ http.Header +type TargetSslProxiesSetProxyHeaderCall struct { + s *Service + project string + targetSslProxy string + targetsslproxiessetproxyheaderrequest *TargetSslProxiesSetProxyHeaderRequest + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header } -// GetHealth: Gets the most recent health check results for each IP for the -// instance that is referenced by the given target pool. +// SetProxyHeader: Changes the ProxyHeaderType for TargetSslProxy. // // - project: Project ID for this request. -// - region: Name of the region scoping this request. -// - targetPool: Name of the TargetPool resource to which the queried instance -// belongs. -func (r *TargetPoolsService) GetHealth(project string, region string, targetPool string, instancereference *InstanceReference) *TargetPoolsGetHealthCall { - c := &TargetPoolsGetHealthCall{s: r.s, urlParams_: make(gensupport.URLParams)} +// - targetSslProxy: Name of the TargetSslProxy resource whose ProxyHeader is +// to be set. +func (r *TargetSslProxiesService) SetProxyHeader(project string, targetSslProxy string, targetsslproxiessetproxyheaderrequest *TargetSslProxiesSetProxyHeaderRequest) *TargetSslProxiesSetProxyHeaderCall { + c := &TargetSslProxiesSetProxyHeaderCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project - c.region = region - c.targetPool = targetPool - c.instancereference = instancereference + c.targetSslProxy = targetSslProxy + c.targetsslproxiessetproxyheaderrequest = targetsslproxiessetproxyheaderrequest + 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 *TargetSslProxiesSetProxyHeaderCall) RequestId(requestId string) *TargetSslProxiesSetProxyHeaderCall { + 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 // details. -func (c *TargetPoolsGetHealthCall) Fields(s ...googleapi.Field) *TargetPoolsGetHealthCall { +func (c *TargetSslProxiesSetProxyHeaderCall) Fields(s ...googleapi.Field) *TargetSslProxiesSetProxyHeaderCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } // Context sets the context to be used in this call's Do method. -func (c *TargetPoolsGetHealthCall) Context(ctx context.Context) *TargetPoolsGetHealthCall { +func (c *TargetSslProxiesSetProxyHeaderCall) Context(ctx context.Context) *TargetSslProxiesSetProxyHeaderCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *TargetPoolsGetHealthCall) Header() http.Header { +func (c *TargetSslProxiesSetProxyHeaderCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *TargetPoolsGetHealthCall) doRequest(alt string) (*http.Response, error) { +func (c *TargetSslProxiesSetProxyHeaderCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) - var body io.Reader = nil - body, err := googleapi.WithoutDataWrapper.JSONReader(c.instancereference) + body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.targetsslproxiessetproxyheaderrequest) if err != nil { return nil, err } c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/targetPools/{targetPool}/getHealth") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/targetSslProxies/{targetSslProxy}/setProxyHeader") urls += "?" + c.urlParams_.Encode() req, err := http.NewRequest("POST", urls, body) if err != nil { @@ -41751,20 +63318,19 @@ func (c *TargetPoolsGetHealthCall) doRequest(alt string) (*http.Response, error) } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "region": c.region, - "targetPool": c.targetPool, + "project": c.project, + "targetSslProxy": c.targetSslProxy, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.targetSslProxies.setProxyHeader", "request", internallog.HTTPRequest(req, body.Bytes())) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.targetPools.getHealth" call. +// Do executes the "compute.targetSslProxies.setProxyHeader" call. // Any non-2xx status code is an error. Response headers are in either -// *TargetPoolInstanceHealth.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 *TargetPoolsGetHealthCall) Do(opts ...googleapi.CallOption) (*TargetPoolInstanceHealth, error) { +// *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 *TargetSslProxiesSetProxyHeaderCall) Do(opts ...googleapi.CallOption) (*Operation, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -41783,53 +63349,64 @@ func (c *TargetPoolsGetHealthCall) Do(opts ...googleapi.CallOption) (*TargetPool if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } - ret := &TargetPoolInstanceHealth{ + ret := &Operation{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.targetSslProxies.setProxyHeader", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type TargetPoolsInsertCall struct { - s *Service - project string - region string - targetpool *TargetPool - urlParams_ gensupport.URLParams - ctx_ context.Context - header_ http.Header +type TargetSslProxiesSetSslCertificatesCall struct { + s *Service + project string + targetSslProxy string + targetsslproxiessetsslcertificatesrequest *TargetSslProxiesSetSslCertificatesRequest + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header } -// Insert: Creates a target pool in the specified project and region using the -// data included in the request. +// SetSslCertificates: Changes SslCertificates for TargetSslProxy. // -// - project: Project ID for this request. -// - region: Name of the region scoping this request. -func (r *TargetPoolsService) Insert(project string, region string, targetpool *TargetPool) *TargetPoolsInsertCall { - c := &TargetPoolsInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)} +// - project: Project ID for this request. +// - targetSslProxy: Name of the TargetSslProxy resource whose SslCertificate +// resource +// +// is to be set. +func (r *TargetSslProxiesService) SetSslCertificates(project string, targetSslProxy string, targetsslproxiessetsslcertificatesrequest *TargetSslProxiesSetSslCertificatesRequest) *TargetSslProxiesSetSslCertificatesCall { + c := &TargetSslProxiesSetSslCertificatesCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project - c.region = region - c.targetpool = targetpool + c.targetSslProxy = targetSslProxy + c.targetsslproxiessetsslcertificatesrequest = targetsslproxiessetsslcertificatesrequest 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 *TargetPoolsInsertCall) RequestId(requestId string) *TargetPoolsInsertCall { +// 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 *TargetSslProxiesSetSslCertificatesCall) RequestId(requestId string) *TargetSslProxiesSetSslCertificatesCall { c.urlParams_.Set("requestId", requestId) return c } @@ -41837,36 +63414,35 @@ func (c *TargetPoolsInsertCall) RequestId(requestId string) *TargetPoolsInsertCa // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *TargetPoolsInsertCall) Fields(s ...googleapi.Field) *TargetPoolsInsertCall { +func (c *TargetSslProxiesSetSslCertificatesCall) Fields(s ...googleapi.Field) *TargetSslProxiesSetSslCertificatesCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } // Context sets the context to be used in this call's Do method. -func (c *TargetPoolsInsertCall) Context(ctx context.Context) *TargetPoolsInsertCall { +func (c *TargetSslProxiesSetSslCertificatesCall) Context(ctx context.Context) *TargetSslProxiesSetSslCertificatesCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *TargetPoolsInsertCall) Header() http.Header { +func (c *TargetSslProxiesSetSslCertificatesCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *TargetPoolsInsertCall) doRequest(alt string) (*http.Response, error) { +func (c *TargetSslProxiesSetSslCertificatesCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) - var body io.Reader = nil - body, err := googleapi.WithoutDataWrapper.JSONReader(c.targetpool) + body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.targetsslproxiessetsslcertificatesrequest) if err != nil { return nil, err } c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/targetPools") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/targetSslProxies/{targetSslProxy}/setSslCertificates") urls += "?" + c.urlParams_.Encode() req, err := http.NewRequest("POST", urls, body) if err != nil { @@ -41874,18 +63450,19 @@ func (c *TargetPoolsInsertCall) doRequest(alt string) (*http.Response, error) { } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "region": c.region, + "project": c.project, + "targetSslProxy": c.targetSslProxy, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.targetSslProxies.setSslCertificates", "request", internallog.HTTPRequest(req, body.Bytes())) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.targetPools.insert" call. +// Do executes the "compute.targetSslProxies.setSslCertificates" call. // 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 *TargetPoolsInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) { +func (c *TargetSslProxiesSetSslCertificatesCall) Do(opts ...googleapi.CallOption) (*Operation, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -41911,171 +63488,116 @@ func (c *TargetPoolsInsertCall) Do(opts ...googleapi.CallOption) (*Operation, er }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.targetSslProxies.setSslCertificates", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type TargetPoolsListCall struct { - s *Service - project string - region string - urlParams_ gensupport.URLParams - ifNoneMatch_ string - ctx_ context.Context - header_ http.Header +type TargetSslProxiesSetSslPolicyCall struct { + s *Service + project string + targetSslProxy string + sslpolicyreference *SslPolicyReference + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header } -// List: Retrieves a list of target pools available to the specified project -// and region. +// SetSslPolicy: Sets the SSL policy for TargetSslProxy. The SSL policy +// specifies the +// server-side support for SSL features. This affects connections +// between +// clients and the load balancer. They do not affect the +// connection between the load balancer and the backends. // -// - project: Project ID for this request. -// - region: Name of the region scoping this request. -func (r *TargetPoolsService) List(project string, region string) *TargetPoolsListCall { - c := &TargetPoolsListCall{s: r.s, urlParams_: make(gensupport.URLParams)} +// - project: Project ID for this request. +// - targetSslProxy: Name of the TargetSslProxy resource whose SSL policy is +// to be set. The name must be 1-63 characters long, and comply with RFC1035. +func (r *TargetSslProxiesService) SetSslPolicy(project string, targetSslProxy string, sslpolicyreference *SslPolicyReference) *TargetSslProxiesSetSslPolicyCall { + c := &TargetSslProxiesSetSslPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project - c.region = region - return c -} - -// Filter sets the optional parameter "filter": A filter expression that -// filters resources listed in the response. Most Compute resources support two -// types of filter expressions: expressions that support regular expressions -// and expressions that follow API improvement proposal AIP-160. These two -// types of filter expressions cannot be mixed in one request. If you want to -// use AIP-160, your expression must specify the field name, an operator, and -// the value that you want to use for filtering. The value must be a string, a -// number, or a boolean. The 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`. The `:*` comparison can be used to test whether a key has -// been defined. For example, to find all objects with `owner` label use: ``` -// labels.owner:* ``` 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) ``` If you want to use a regular -// expression, use the `eq` (equal) or `ne` (not equal) operator against a -// single un-parenthesized expression with or without quotes or against -// multiple parenthesized expressions. Examples: `fieldname eq unquoted -// literal` `fieldname eq 'single quoted literal'` `fieldname eq "double quoted -// literal" `(fieldname1 eq literal) (fieldname2 ne "literal")` The literal -// value is interpreted as a regular expression using Google RE2 library -// syntax. The literal value must match the entire field. For example, to -// filter for instances that do not end with name "instance", you would use -// `name ne .*instance`. You cannot combine constraints on multiple fields -// using regular expressions. -func (c *TargetPoolsListCall) Filter(filter string) *TargetPoolsListCall { - 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 *TargetPoolsListCall) MaxResults(maxResults int64) *TargetPoolsListCall { - 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 *TargetPoolsListCall) OrderBy(orderBy string) *TargetPoolsListCall { - 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 *TargetPoolsListCall) PageToken(pageToken string) *TargetPoolsListCall { - c.urlParams_.Set("pageToken", pageToken) + c.targetSslProxy = targetSslProxy + c.sslpolicyreference = sslpolicyreference return c } -// ReturnPartialSuccess sets the optional parameter "returnPartialSuccess": -// Opt-in for partial success behavior which provides partial results in case -// of failure. The default value is false. For example, when partial success -// behavior is enabled, aggregatedList for a single zone scope either returns -// all resources in the zone or no resources, with an error code. -func (c *TargetPoolsListCall) ReturnPartialSuccess(returnPartialSuccess bool) *TargetPoolsListCall { - c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess)) +// 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 *TargetSslProxiesSetSslPolicyCall) RequestId(requestId string) *TargetSslProxiesSetSslPolicyCall { + 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 // details. -func (c *TargetPoolsListCall) Fields(s ...googleapi.Field) *TargetPoolsListCall { +func (c *TargetSslProxiesSetSslPolicyCall) Fields(s ...googleapi.Field) *TargetSslProxiesSetSslPolicyCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } -// IfNoneMatch sets an 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. -func (c *TargetPoolsListCall) IfNoneMatch(entityTag string) *TargetPoolsListCall { - c.ifNoneMatch_ = entityTag - return c -} - // Context sets the context to be used in this call's Do method. -func (c *TargetPoolsListCall) Context(ctx context.Context) *TargetPoolsListCall { +func (c *TargetSslProxiesSetSslPolicyCall) Context(ctx context.Context) *TargetSslProxiesSetSslPolicyCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *TargetPoolsListCall) Header() http.Header { +func (c *TargetSslProxiesSetSslPolicyCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *TargetPoolsListCall) doRequest(alt string) (*http.Response, error) { - reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) - if c.ifNoneMatch_ != "" { - reqHeaders.Set("If-None-Match", c.ifNoneMatch_) +func (c *TargetSslProxiesSetSslPolicyCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) + body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.sslpolicyreference) + if err != nil { + return nil, err } - var body io.Reader = nil c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/targetPools") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/targetSslProxies/{targetSslProxy}/setSslPolicy") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("GET", urls, body) + req, err := http.NewRequest("POST", urls, body) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "region": c.region, + "project": c.project, + "targetSslProxy": c.targetSslProxy, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.targetSslProxies.setSslPolicy", "request", internallog.HTTPRequest(req, body.Bytes())) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.targetPools.list" call. +// Do executes the "compute.targetSslProxies.setSslPolicy" call. // Any non-2xx status code is an error. Response headers are in either -// *TargetPoolList.ServerResponse.Header or (if a response was returned at all) -// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check +// *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 *TargetPoolsListCall) Do(opts ...googleapi.CallOption) (*TargetPoolList, error) { +func (c *TargetSslProxiesSetSslPolicyCall) Do(opts ...googleapi.CallOption) (*Operation, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -42094,113 +63616,76 @@ func (c *TargetPoolsListCall) Do(opts ...googleapi.CallOption) (*TargetPoolList, if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } - ret := &TargetPoolList{ + ret := &Operation{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.targetSslProxies.setSslPolicy", "response", internallog.HTTPResponse(res, b)) return ret, nil } -// 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 *TargetPoolsListCall) Pages(ctx context.Context, f func(*TargetPoolList) error) error { - c.ctx_ = ctx - defer c.PageToken(c.urlParams_.Get("pageToken")) - 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) - } -} - -type TargetPoolsRemoveHealthCheckCall struct { - s *Service - project string - region string - targetPool string - targetpoolsremovehealthcheckrequest *TargetPoolsRemoveHealthCheckRequest - urlParams_ gensupport.URLParams - ctx_ context.Context - header_ http.Header +type TargetSslProxiesTestIamPermissionsCall struct { + s *Service + project string + resource string + testpermissionsrequest *TestPermissionsRequest + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header } -// RemoveHealthCheck: Removes health check URL from a target pool. +// TestIamPermissions: Returns permissions that a caller has on the specified +// resource. // -// - project: Project ID for this request. -// - region: Name of the region for this request. -// - targetPool: Name of the target pool to remove health checks from. -func (r *TargetPoolsService) RemoveHealthCheck(project string, region string, targetPool string, targetpoolsremovehealthcheckrequest *TargetPoolsRemoveHealthCheckRequest) *TargetPoolsRemoveHealthCheckCall { - c := &TargetPoolsRemoveHealthCheckCall{s: r.s, urlParams_: make(gensupport.URLParams)} - c.project = project - c.region = region - c.targetPool = targetPool - c.targetpoolsremovehealthcheckrequest = targetpoolsremovehealthcheckrequest - 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 *TargetPoolsRemoveHealthCheckCall) RequestId(requestId string) *TargetPoolsRemoveHealthCheckCall { - c.urlParams_.Set("requestId", requestId) +// - project: Project ID for this request. +// - resource: Name or id of the resource for this request. +func (r *TargetSslProxiesService) TestIamPermissions(project string, resource string, testpermissionsrequest *TestPermissionsRequest) *TargetSslProxiesTestIamPermissionsCall { + c := &TargetSslProxiesTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)} + c.project = project + c.resource = resource + c.testpermissionsrequest = testpermissionsrequest return c } // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *TargetPoolsRemoveHealthCheckCall) Fields(s ...googleapi.Field) *TargetPoolsRemoveHealthCheckCall { +func (c *TargetSslProxiesTestIamPermissionsCall) Fields(s ...googleapi.Field) *TargetSslProxiesTestIamPermissionsCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } // Context sets the context to be used in this call's Do method. -func (c *TargetPoolsRemoveHealthCheckCall) Context(ctx context.Context) *TargetPoolsRemoveHealthCheckCall { +func (c *TargetSslProxiesTestIamPermissionsCall) Context(ctx context.Context) *TargetSslProxiesTestIamPermissionsCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *TargetPoolsRemoveHealthCheckCall) Header() http.Header { +func (c *TargetSslProxiesTestIamPermissionsCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *TargetPoolsRemoveHealthCheckCall) doRequest(alt string) (*http.Response, error) { +func (c *TargetSslProxiesTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) - var body io.Reader = nil - body, err := googleapi.WithoutDataWrapper.JSONReader(c.targetpoolsremovehealthcheckrequest) + body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.testpermissionsrequest) if err != nil { return nil, err } c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/targetPools/{targetPool}/removeHealthCheck") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/targetSslProxies/{resource}/testIamPermissions") urls += "?" + c.urlParams_.Encode() req, err := http.NewRequest("POST", urls, body) if err != nil { @@ -42208,19 +63693,20 @@ func (c *TargetPoolsRemoveHealthCheckCall) doRequest(alt string) (*http.Response } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "region": c.region, - "targetPool": c.targetPool, + "project": c.project, + "resource": c.resource, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.targetSslProxies.testIamPermissions", "request", internallog.HTTPRequest(req, body.Bytes())) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.targetPools.removeHealthCheck" call. +// Do executes the "compute.targetSslProxies.testIamPermissions" call. // 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 *TargetPoolsRemoveHealthCheckCall) Do(opts ...googleapi.CallOption) (*Operation, error) { +// *TestPermissionsResponse.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 *TargetSslProxiesTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -42239,112 +63725,258 @@ func (c *TargetPoolsRemoveHealthCheckCall) Do(opts ...googleapi.CallOption) (*Op if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } - ret := &Operation{ + ret := &TestPermissionsResponse{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.targetSslProxies.testIamPermissions", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type TargetPoolsRemoveInstanceCall struct { - s *Service - project string - region string - targetPool string - targetpoolsremoveinstancerequest *TargetPoolsRemoveInstanceRequest - urlParams_ gensupport.URLParams - ctx_ context.Context - header_ http.Header +type TargetTcpProxiesAggregatedListCall struct { + s *Service + project string + urlParams_ gensupport.URLParams + ifNoneMatch_ string + ctx_ context.Context + header_ http.Header } -// RemoveInstance: Removes instance URL from a target pool. +// AggregatedList: Retrieves the list of all TargetTcpProxy resources, regional +// and global, +// available to the specified project. // -// - project: Project ID for this request. -// - region: Name of the region scoping this request. -// - targetPool: Name of the TargetPool resource to remove instances from. -func (r *TargetPoolsService) RemoveInstance(project string, region string, targetPool string, targetpoolsremoveinstancerequest *TargetPoolsRemoveInstanceRequest) *TargetPoolsRemoveInstanceCall { - c := &TargetPoolsRemoveInstanceCall{s: r.s, urlParams_: make(gensupport.URLParams)} +// To prevent failure, Google recommends that you set +// the +// `returnPartialSuccess` parameter to `true`. +// +// - project: Name of the project scoping this request. +func (r *TargetTcpProxiesService) AggregatedList(project string) *TargetTcpProxiesAggregatedListCall { + c := &TargetTcpProxiesAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project - c.region = region - c.targetPool = targetPool - c.targetpoolsremoveinstancerequest = targetpoolsremoveinstancerequest 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 *TargetPoolsRemoveInstanceCall) RequestId(requestId string) *TargetPoolsRemoveInstanceCall { - c.urlParams_.Set("requestId", requestId) +// Filter sets the optional parameter "filter": A filter expression that +// filters resources listed in the response. Most +// Compute resources support two types of filter expressions: +// expressions that support regular expressions and expressions that follow +// API improvement proposal AIP-160. +// These two types of filter expressions cannot be mixed in one request. +// +// If you want to use AIP-160, your expression must specify the field name, +// an +// operator, and the value that you want to use for filtering. The value +// must be a string, a number, or a boolean. The 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`. +// +// The `:*` comparison can be used to test whether a key has been defined. +// For example, to find all objects with `owner` label +// use: +// ``` +// labels.owner:* +// ``` +// +// 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 onresource 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) +// ``` +// +// If you want to use a regular expression, use the `eq` (equal) or `ne` +// (not equal) operator against a single un-parenthesized expression with +// or +// without quotes or against multiple parenthesized expressions. +// Examples: +// +// `fieldname eq unquoted literal` +// `fieldname eq 'single quoted literal'` +// `fieldname eq "double quoted literal" +// `(fieldname1 eq literal) (fieldname2 ne "literal")` +// +// The literal value is interpreted as a regular expression using GoogleRE2 +// library syntax. +// The literal value must match the entire field. +// +// For example, to filter for instances that do not end with name +// "instance", +// you would use `name ne .*instance`. +// +// You cannot combine constraints on multiple fields using regular +// expressions. +func (c *TargetTcpProxiesAggregatedListCall) Filter(filter string) *TargetTcpProxiesAggregatedListCall { + c.urlParams_.Set("filter", filter) + return c +} + +// IncludeAllScopes sets the optional parameter "includeAllScopes": Indicates +// whether every visible scope for each scope type (zone, region, +// global) should be included in the response. For new resource types +// added +// after this field, the flag has no effect as new resource types will +// always +// include every visible scope for each scope type in response. For +// resource +// types which predate this field, if this flag is omitted or false, +// only +// scopes of the scope types where the resource type is expected to be +// found +// will be included. +func (c *TargetTcpProxiesAggregatedListCall) IncludeAllScopes(includeAllScopes bool) *TargetTcpProxiesAggregatedListCall { + c.urlParams_.Set("includeAllScopes", fmt.Sprint(includeAllScopes)) + 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 *TargetTcpProxiesAggregatedListCall) MaxResults(maxResults int64) *TargetTcpProxiesAggregatedListCall { + 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 *TargetTcpProxiesAggregatedListCall) OrderBy(orderBy string) *TargetTcpProxiesAggregatedListCall { + 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 *TargetTcpProxiesAggregatedListCall) PageToken(pageToken string) *TargetTcpProxiesAggregatedListCall { + c.urlParams_.Set("pageToken", pageToken) + return c +} + +// ReturnPartialSuccess sets the optional parameter "returnPartialSuccess": +// Opt-in for partial success behavior which provides partial results in +// case +// of failure. The default value is false. +// +// For example, when partial success behavior is enabled, aggregatedList for +// a +// single zone scope either returns all resources in the zone or no +// resources, +// with an error code. +func (c *TargetTcpProxiesAggregatedListCall) ReturnPartialSuccess(returnPartialSuccess bool) *TargetTcpProxiesAggregatedListCall { + c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess)) + return c +} + +// ServiceProjectNumber sets the optional parameter "serviceProjectNumber": The +// Shared VPC service project id or service project number for which +// aggregated list request is invoked for subnetworks list-usable api. +func (c *TargetTcpProxiesAggregatedListCall) ServiceProjectNumber(serviceProjectNumber int64) *TargetTcpProxiesAggregatedListCall { + c.urlParams_.Set("serviceProjectNumber", fmt.Sprint(serviceProjectNumber)) return c } // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *TargetPoolsRemoveInstanceCall) Fields(s ...googleapi.Field) *TargetPoolsRemoveInstanceCall { +func (c *TargetTcpProxiesAggregatedListCall) Fields(s ...googleapi.Field) *TargetTcpProxiesAggregatedListCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } +// IfNoneMatch sets an 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. +func (c *TargetTcpProxiesAggregatedListCall) IfNoneMatch(entityTag string) *TargetTcpProxiesAggregatedListCall { + c.ifNoneMatch_ = entityTag + return c +} + // Context sets the context to be used in this call's Do method. -func (c *TargetPoolsRemoveInstanceCall) Context(ctx context.Context) *TargetPoolsRemoveInstanceCall { +func (c *TargetTcpProxiesAggregatedListCall) Context(ctx context.Context) *TargetTcpProxiesAggregatedListCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *TargetPoolsRemoveInstanceCall) Header() http.Header { +func (c *TargetTcpProxiesAggregatedListCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *TargetPoolsRemoveInstanceCall) doRequest(alt string) (*http.Response, error) { - reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) - var body io.Reader = nil - body, err := googleapi.WithoutDataWrapper.JSONReader(c.targetpoolsremoveinstancerequest) - if err != nil { - return nil, err +func (c *TargetTcpProxiesAggregatedListCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) + if c.ifNoneMatch_ != "" { + reqHeaders.Set("If-None-Match", c.ifNoneMatch_) } c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/targetPools/{targetPool}/removeInstance") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/aggregated/targetTcpProxies") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("POST", urls, body) + req, err := http.NewRequest("GET", urls, nil) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "region": c.region, - "targetPool": c.targetPool, + "project": c.project, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.targetTcpProxies.aggregatedList", "request", internallog.HTTPRequest(req, nil)) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.targetPools.removeInstance" call. +// Do executes the "compute.targetTcpProxies.aggregatedList" call. // 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 *TargetPoolsRemoveInstanceCall) Do(opts ...googleapi.CallOption) (*Operation, error) { +// *TargetTcpProxyAggregatedList.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 *TargetTcpProxiesAggregatedListCall) Do(opts ...googleapi.CallOption) (*TargetTcpProxyAggregatedList, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -42363,62 +63995,80 @@ func (c *TargetPoolsRemoveInstanceCall) Do(opts ...googleapi.CallOption) (*Opera if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } - ret := &Operation{ + ret := &TargetTcpProxyAggregatedList{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.targetTcpProxies.aggregatedList", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type TargetPoolsSetBackupCall struct { - s *Service - project string - region string - targetPool string - targetreference *TargetReference - urlParams_ gensupport.URLParams - ctx_ context.Context - header_ http.Header +// 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 *TargetTcpProxiesAggregatedListCall) Pages(ctx context.Context, f func(*TargetTcpProxyAggregatedList) error) error { + c.ctx_ = ctx + defer c.PageToken(c.urlParams_.Get("pageToken")) + 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) + } } -// SetBackup: Changes a backup target pool's configurations. +type TargetTcpProxiesDeleteCall struct { + s *Service + project string + targetTcpProxy string + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header +} + +// Delete: Deletes the specified TargetTcpProxy resource. // // - project: Project ID for this request. -// - region: Name of the region scoping this request. -// - targetPool: Name of the TargetPool resource to set a backup pool for. -func (r *TargetPoolsService) SetBackup(project string, region string, targetPool string, targetreference *TargetReference) *TargetPoolsSetBackupCall { - c := &TargetPoolsSetBackupCall{s: r.s, urlParams_: make(gensupport.URLParams)} +// - targetTcpProxy: Name of the TargetTcpProxy resource to delete. +func (r *TargetTcpProxiesService) Delete(project string, targetTcpProxy string) *TargetTcpProxiesDeleteCall { + c := &TargetTcpProxiesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project - c.region = region - c.targetPool = targetPool - c.targetreference = targetreference - return c -} - -// FailoverRatio sets the optional parameter "failoverRatio": New failoverRatio -// value for the target pool. -func (c *TargetPoolsSetBackupCall) FailoverRatio(failoverRatio float64) *TargetPoolsSetBackupCall { - c.urlParams_.Set("failoverRatio", fmt.Sprint(failoverRatio)) + c.targetTcpProxy = targetTcpProxy 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 *TargetPoolsSetBackupCall) RequestId(requestId string) *TargetPoolsSetBackupCall { +// 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 *TargetTcpProxiesDeleteCall) RequestId(requestId string) *TargetTcpProxiesDeleteCall { c.urlParams_.Set("requestId", requestId) return c } @@ -42426,56 +64076,51 @@ func (c *TargetPoolsSetBackupCall) RequestId(requestId string) *TargetPoolsSetBa // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *TargetPoolsSetBackupCall) Fields(s ...googleapi.Field) *TargetPoolsSetBackupCall { +func (c *TargetTcpProxiesDeleteCall) Fields(s ...googleapi.Field) *TargetTcpProxiesDeleteCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } // Context sets the context to be used in this call's Do method. -func (c *TargetPoolsSetBackupCall) Context(ctx context.Context) *TargetPoolsSetBackupCall { +func (c *TargetTcpProxiesDeleteCall) Context(ctx context.Context) *TargetTcpProxiesDeleteCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *TargetPoolsSetBackupCall) Header() http.Header { +func (c *TargetTcpProxiesDeleteCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *TargetPoolsSetBackupCall) doRequest(alt string) (*http.Response, error) { - reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) - var body io.Reader = nil - body, err := googleapi.WithoutDataWrapper.JSONReader(c.targetreference) - if err != nil { - return nil, err - } +func (c *TargetTcpProxiesDeleteCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/targetPools/{targetPool}/setBackup") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/targetTcpProxies/{targetTcpProxy}") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("POST", urls, body) + req, err := http.NewRequest("DELETE", urls, nil) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "region": c.region, - "targetPool": c.targetPool, + "project": c.project, + "targetTcpProxy": c.targetTcpProxy, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.targetTcpProxies.delete", "request", internallog.HTTPRequest(req, nil)) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.targetPools.setBackup" call. +// Do executes the "compute.targetTcpProxies.delete" call. // 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 *TargetPoolsSetBackupCall) Do(opts ...googleapi.CallOption) (*Operation, error) { +func (c *TargetTcpProxiesDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -42501,107 +64146,94 @@ func (c *TargetPoolsSetBackupCall) Do(opts ...googleapi.CallOption) (*Operation, }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.targetTcpProxies.delete", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type TargetPoolsSetSecurityPolicyCall struct { - s *Service - project string - region string - targetPool string - securitypolicyreference *SecurityPolicyReference - urlParams_ gensupport.URLParams - ctx_ context.Context - header_ http.Header +type TargetTcpProxiesGetCall struct { + s *Service + project string + targetTcpProxy string + urlParams_ gensupport.URLParams + ifNoneMatch_ string + ctx_ context.Context + header_ http.Header } -// SetSecurityPolicy: Sets the Google Cloud Armor security policy for the -// specified target pool. For more information, see Google Cloud Armor Overview +// Get: Returns the specified TargetTcpProxy resource. // -// - project: Project ID for this request. -// - region: Name of the region scoping this request. -// - targetPool: Name of the TargetPool resource to which the security policy -// should be set. The name should conform to RFC1035. -func (r *TargetPoolsService) SetSecurityPolicy(project string, region string, targetPool string, securitypolicyreference *SecurityPolicyReference) *TargetPoolsSetSecurityPolicyCall { - c := &TargetPoolsSetSecurityPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)} +// - project: Project ID for this request. +// - targetTcpProxy: Name of the TargetTcpProxy resource to return. +func (r *TargetTcpProxiesService) Get(project string, targetTcpProxy string) *TargetTcpProxiesGetCall { + c := &TargetTcpProxiesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project - c.region = region - c.targetPool = targetPool - c.securitypolicyreference = securitypolicyreference - 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 *TargetPoolsSetSecurityPolicyCall) RequestId(requestId string) *TargetPoolsSetSecurityPolicyCall { - c.urlParams_.Set("requestId", requestId) + c.targetTcpProxy = targetTcpProxy return c } // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *TargetPoolsSetSecurityPolicyCall) Fields(s ...googleapi.Field) *TargetPoolsSetSecurityPolicyCall { +func (c *TargetTcpProxiesGetCall) Fields(s ...googleapi.Field) *TargetTcpProxiesGetCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } +// IfNoneMatch sets an 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. +func (c *TargetTcpProxiesGetCall) IfNoneMatch(entityTag string) *TargetTcpProxiesGetCall { + c.ifNoneMatch_ = entityTag + return c +} + // Context sets the context to be used in this call's Do method. -func (c *TargetPoolsSetSecurityPolicyCall) Context(ctx context.Context) *TargetPoolsSetSecurityPolicyCall { +func (c *TargetTcpProxiesGetCall) Context(ctx context.Context) *TargetTcpProxiesGetCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *TargetPoolsSetSecurityPolicyCall) Header() http.Header { +func (c *TargetTcpProxiesGetCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *TargetPoolsSetSecurityPolicyCall) doRequest(alt string) (*http.Response, error) { - reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) - var body io.Reader = nil - body, err := googleapi.WithoutDataWrapper.JSONReader(c.securitypolicyreference) - if err != nil { - return nil, err +func (c *TargetTcpProxiesGetCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) + if c.ifNoneMatch_ != "" { + reqHeaders.Set("If-None-Match", c.ifNoneMatch_) } c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/targetPools/{targetPool}/setSecurityPolicy") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/targetTcpProxies/{targetTcpProxy}") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("POST", urls, body) + req, err := http.NewRequest("GET", urls, nil) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "region": c.region, - "targetPool": c.targetPool, + "project": c.project, + "targetTcpProxy": c.targetTcpProxy, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.targetTcpProxies.get", "request", internallog.HTTPRequest(req, nil)) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.targetPools.setSecurityPolicy" call. +// Do executes the "compute.targetTcpProxies.get" call. // 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 +// *TargetTcpProxy.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 *TargetPoolsSetSecurityPolicyCall) Do(opts ...googleapi.CallOption) (*Operation, error) { +func (c *TargetTcpProxiesGetCall) Do(opts ...googleapi.CallOption) (*TargetTcpProxy, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -42620,50 +64252,59 @@ func (c *TargetPoolsSetSecurityPolicyCall) Do(opts ...googleapi.CallOption) (*Op if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } - ret := &Operation{ + ret := &TargetTcpProxy{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.targetTcpProxies.get", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type TargetSslProxiesDeleteCall struct { +type TargetTcpProxiesInsertCall struct { s *Service project string - targetSslProxy string + targettcpproxy *TargetTcpProxy urlParams_ gensupport.URLParams ctx_ context.Context header_ http.Header } -// Delete: Deletes the specified TargetSslProxy resource. +// Insert: Creates a TargetTcpProxy resource in the specified project using +// the data included in the request. // // - project: Project ID for this request. -// - targetSslProxy: Name of the TargetSslProxy resource to delete. -func (r *TargetSslProxiesService) Delete(project string, targetSslProxy string) *TargetSslProxiesDeleteCall { - c := &TargetSslProxiesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)} +func (r *TargetTcpProxiesService) Insert(project string, targettcpproxy *TargetTcpProxy) *TargetTcpProxiesInsertCall { + c := &TargetTcpProxiesInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project - c.targetSslProxy = targetSslProxy + c.targettcpproxy = targettcpproxy 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 *TargetSslProxiesDeleteCall) RequestId(requestId string) *TargetSslProxiesDeleteCall { +// 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 *TargetTcpProxiesInsertCall) RequestId(requestId string) *TargetTcpProxiesInsertCall { c.urlParams_.Set("requestId", requestId) return c } @@ -42671,51 +64312,54 @@ func (c *TargetSslProxiesDeleteCall) RequestId(requestId string) *TargetSslProxi // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *TargetSslProxiesDeleteCall) Fields(s ...googleapi.Field) *TargetSslProxiesDeleteCall { +func (c *TargetTcpProxiesInsertCall) Fields(s ...googleapi.Field) *TargetTcpProxiesInsertCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } // Context sets the context to be used in this call's Do method. -func (c *TargetSslProxiesDeleteCall) Context(ctx context.Context) *TargetSslProxiesDeleteCall { +func (c *TargetTcpProxiesInsertCall) Context(ctx context.Context) *TargetTcpProxiesInsertCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *TargetSslProxiesDeleteCall) Header() http.Header { +func (c *TargetTcpProxiesInsertCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *TargetSslProxiesDeleteCall) doRequest(alt string) (*http.Response, error) { - reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) - var body io.Reader = nil +func (c *TargetTcpProxiesInsertCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) + body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.targettcpproxy) + if err != nil { + return nil, err + } c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/targetSslProxies/{targetSslProxy}") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/targetTcpProxies") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("DELETE", urls, body) + req, err := http.NewRequest("POST", urls, body) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "targetSslProxy": c.targetSslProxy, + "project": c.project, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.targetTcpProxies.insert", "request", internallog.HTTPRequest(req, body.Bytes())) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.targetSslProxies.delete" call. +// Do executes the "compute.targetTcpProxies.insert" call. // 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 *TargetSslProxiesDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) { +func (c *TargetTcpProxiesInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -42741,37 +64385,165 @@ func (c *TargetSslProxiesDeleteCall) Do(opts ...googleapi.CallOption) (*Operatio }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.targetTcpProxies.insert", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type TargetSslProxiesGetCall struct { - s *Service - project string - targetSslProxy string - urlParams_ gensupport.URLParams - ifNoneMatch_ string - ctx_ context.Context - header_ http.Header +type TargetTcpProxiesListCall struct { + s *Service + project string + urlParams_ gensupport.URLParams + ifNoneMatch_ string + ctx_ context.Context + header_ http.Header } -// Get: Returns the specified TargetSslProxy resource. +// List: Retrieves the list of TargetTcpProxy resources +// available to the specified project. // // - project: Project ID for this request. -// - targetSslProxy: Name of the TargetSslProxy resource to return. -func (r *TargetSslProxiesService) Get(project string, targetSslProxy string) *TargetSslProxiesGetCall { - c := &TargetSslProxiesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)} +func (r *TargetTcpProxiesService) List(project string) *TargetTcpProxiesListCall { + c := &TargetTcpProxiesListCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project - c.targetSslProxy = targetSslProxy + return c +} + +// Filter sets the optional parameter "filter": A filter expression that +// filters resources listed in the response. Most +// Compute resources support two types of filter expressions: +// expressions that support regular expressions and expressions that follow +// API improvement proposal AIP-160. +// These two types of filter expressions cannot be mixed in one request. +// +// If you want to use AIP-160, your expression must specify the field name, +// an +// operator, and the value that you want to use for filtering. The value +// must be a string, a number, or a boolean. The 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`. +// +// The `:*` comparison can be used to test whether a key has been defined. +// For example, to find all objects with `owner` label +// use: +// ``` +// labels.owner:* +// ``` +// +// 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 onresource 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) +// ``` +// +// If you want to use a regular expression, use the `eq` (equal) or `ne` +// (not equal) operator against a single un-parenthesized expression with +// or +// without quotes or against multiple parenthesized expressions. +// Examples: +// +// `fieldname eq unquoted literal` +// `fieldname eq 'single quoted literal'` +// `fieldname eq "double quoted literal" +// `(fieldname1 eq literal) (fieldname2 ne "literal")` +// +// The literal value is interpreted as a regular expression using GoogleRE2 +// library syntax. +// The literal value must match the entire field. +// +// For example, to filter for instances that do not end with name +// "instance", +// you would use `name ne .*instance`. +// +// You cannot combine constraints on multiple fields using regular +// expressions. +func (c *TargetTcpProxiesListCall) Filter(filter string) *TargetTcpProxiesListCall { + 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 *TargetTcpProxiesListCall) MaxResults(maxResults int64) *TargetTcpProxiesListCall { + 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 *TargetTcpProxiesListCall) OrderBy(orderBy string) *TargetTcpProxiesListCall { + 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 *TargetTcpProxiesListCall) PageToken(pageToken string) *TargetTcpProxiesListCall { + c.urlParams_.Set("pageToken", pageToken) + return c +} + +// ReturnPartialSuccess sets the optional parameter "returnPartialSuccess": +// Opt-in for partial success behavior which provides partial results in +// case +// of failure. The default value is false. +// +// For example, when partial success behavior is enabled, aggregatedList for +// a +// single zone scope either returns all resources in the zone or no +// resources, +// with an error code. +func (c *TargetTcpProxiesListCall) ReturnPartialSuccess(returnPartialSuccess bool) *TargetTcpProxiesListCall { + c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess)) return c } // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *TargetSslProxiesGetCall) Fields(s ...googleapi.Field) *TargetSslProxiesGetCall { +func (c *TargetTcpProxiesListCall) Fields(s ...googleapi.Field) *TargetTcpProxiesListCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } @@ -42779,54 +64551,54 @@ func (c *TargetSslProxiesGetCall) Fields(s ...googleapi.Field) *TargetSslProxies // IfNoneMatch sets an 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. -func (c *TargetSslProxiesGetCall) IfNoneMatch(entityTag string) *TargetSslProxiesGetCall { +func (c *TargetTcpProxiesListCall) IfNoneMatch(entityTag string) *TargetTcpProxiesListCall { c.ifNoneMatch_ = entityTag return c } // Context sets the context to be used in this call's Do method. -func (c *TargetSslProxiesGetCall) Context(ctx context.Context) *TargetSslProxiesGetCall { +func (c *TargetTcpProxiesListCall) Context(ctx context.Context) *TargetTcpProxiesListCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *TargetSslProxiesGetCall) Header() http.Header { +func (c *TargetTcpProxiesListCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *TargetSslProxiesGetCall) doRequest(alt string) (*http.Response, error) { +func (c *TargetTcpProxiesListCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) if c.ifNoneMatch_ != "" { reqHeaders.Set("If-None-Match", c.ifNoneMatch_) } - var body io.Reader = nil c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/targetSslProxies/{targetSslProxy}") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/targetTcpProxies") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("GET", urls, body) + req, err := http.NewRequest("GET", urls, nil) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "targetSslProxy": c.targetSslProxy, + "project": c.project, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.targetTcpProxies.list", "request", internallog.HTTPRequest(req, nil)) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.targetSslProxies.get" call. +// Do executes the "compute.targetTcpProxies.list" call. // Any non-2xx status code is an error. Response headers are in either -// *TargetSslProxy.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 *TargetSslProxiesGetCall) Do(opts ...googleapi.CallOption) (*TargetSslProxy, error) { +// *TargetTcpProxyList.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 *TargetTcpProxiesListCall) Do(opts ...googleapi.CallOption) (*TargetTcpProxyList, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -42845,50 +64617,85 @@ func (c *TargetSslProxiesGetCall) Do(opts ...googleapi.CallOption) (*TargetSslPr if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } - ret := &TargetSslProxy{ + ret := &TargetTcpProxyList{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.targetTcpProxies.list", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type TargetSslProxiesInsertCall struct { - s *Service - project string - targetsslproxy *TargetSslProxy - urlParams_ gensupport.URLParams - ctx_ context.Context - header_ http.Header +// 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 *TargetTcpProxiesListCall) Pages(ctx context.Context, f func(*TargetTcpProxyList) error) error { + c.ctx_ = ctx + defer c.PageToken(c.urlParams_.Get("pageToken")) + 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) + } +} + +type TargetTcpProxiesSetBackendServiceCall struct { + s *Service + project string + targetTcpProxy string + targettcpproxiessetbackendservicerequest *TargetTcpProxiesSetBackendServiceRequest + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header } -// Insert: Creates a TargetSslProxy resource in the specified project using the -// data included in the request. +// SetBackendService: Changes the BackendService for TargetTcpProxy. // -// - project: Project ID for this request. -func (r *TargetSslProxiesService) Insert(project string, targetsslproxy *TargetSslProxy) *TargetSslProxiesInsertCall { - c := &TargetSslProxiesInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)} +// - project: Project ID for this request. +// - targetTcpProxy: Name of the TargetTcpProxy resource whose BackendService +// resource +// +// is to be set. +func (r *TargetTcpProxiesService) SetBackendService(project string, targetTcpProxy string, targettcpproxiessetbackendservicerequest *TargetTcpProxiesSetBackendServiceRequest) *TargetTcpProxiesSetBackendServiceCall { + c := &TargetTcpProxiesSetBackendServiceCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project - c.targetsslproxy = targetsslproxy + c.targetTcpProxy = targetTcpProxy + c.targettcpproxiessetbackendservicerequest = targettcpproxiessetbackendservicerequest 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 *TargetSslProxiesInsertCall) RequestId(requestId string) *TargetSslProxiesInsertCall { +// 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 *TargetTcpProxiesSetBackendServiceCall) RequestId(requestId string) *TargetTcpProxiesSetBackendServiceCall { c.urlParams_.Set("requestId", requestId) return c } @@ -42896,36 +64703,35 @@ func (c *TargetSslProxiesInsertCall) RequestId(requestId string) *TargetSslProxi // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *TargetSslProxiesInsertCall) Fields(s ...googleapi.Field) *TargetSslProxiesInsertCall { +func (c *TargetTcpProxiesSetBackendServiceCall) Fields(s ...googleapi.Field) *TargetTcpProxiesSetBackendServiceCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } // Context sets the context to be used in this call's Do method. -func (c *TargetSslProxiesInsertCall) Context(ctx context.Context) *TargetSslProxiesInsertCall { +func (c *TargetTcpProxiesSetBackendServiceCall) Context(ctx context.Context) *TargetTcpProxiesSetBackendServiceCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *TargetSslProxiesInsertCall) Header() http.Header { +func (c *TargetTcpProxiesSetBackendServiceCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *TargetSslProxiesInsertCall) doRequest(alt string) (*http.Response, error) { +func (c *TargetTcpProxiesSetBackendServiceCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) - var body io.Reader = nil - body, err := googleapi.WithoutDataWrapper.JSONReader(c.targetsslproxy) + body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.targettcpproxiessetbackendservicerequest) if err != nil { return nil, err } c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/targetSslProxies") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/targetTcpProxies/{targetTcpProxy}/setBackendService") urls += "?" + c.urlParams_.Encode() req, err := http.NewRequest("POST", urls, body) if err != nil { @@ -42933,17 +64739,19 @@ func (c *TargetSslProxiesInsertCall) doRequest(alt string) (*http.Response, erro } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, + "project": c.project, + "targetTcpProxy": c.targetTcpProxy, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.targetTcpProxies.setBackendService", "request", internallog.HTTPRequest(req, body.Bytes())) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.targetSslProxies.insert" call. +// Do executes the "compute.targetTcpProxies.setBackendService" call. // 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 *TargetSslProxiesInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) { +func (c *TargetTcpProxiesSetBackendServiceCall) Do(opts ...googleapi.CallOption) (*Operation, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -42969,168 +64777,111 @@ func (c *TargetSslProxiesInsertCall) Do(opts ...googleapi.CallOption) (*Operatio }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.targetTcpProxies.setBackendService", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type TargetSslProxiesListCall struct { - s *Service - project string - urlParams_ gensupport.URLParams - ifNoneMatch_ string - ctx_ context.Context - header_ http.Header +type TargetTcpProxiesSetProxyHeaderCall struct { + s *Service + project string + targetTcpProxy string + targettcpproxiessetproxyheaderrequest *TargetTcpProxiesSetProxyHeaderRequest + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header } -// List: Retrieves the list of TargetSslProxy resources available to the -// specified project. +// SetProxyHeader: Changes the ProxyHeaderType for TargetTcpProxy. // -// - project: Project ID for this request. -func (r *TargetSslProxiesService) List(project string) *TargetSslProxiesListCall { - c := &TargetSslProxiesListCall{s: r.s, urlParams_: make(gensupport.URLParams)} +// - project: Project ID for this request. +// - targetTcpProxy: Name of the TargetTcpProxy resource whose ProxyHeader is +// to be set. +func (r *TargetTcpProxiesService) SetProxyHeader(project string, targetTcpProxy string, targettcpproxiessetproxyheaderrequest *TargetTcpProxiesSetProxyHeaderRequest) *TargetTcpProxiesSetProxyHeaderCall { + c := &TargetTcpProxiesSetProxyHeaderCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project + c.targetTcpProxy = targetTcpProxy + c.targettcpproxiessetproxyheaderrequest = targettcpproxiessetproxyheaderrequest return c } -// Filter sets the optional parameter "filter": A filter expression that -// filters resources listed in the response. Most Compute resources support two -// types of filter expressions: expressions that support regular expressions -// and expressions that follow API improvement proposal AIP-160. These two -// types of filter expressions cannot be mixed in one request. If you want to -// use AIP-160, your expression must specify the field name, an operator, and -// the value that you want to use for filtering. The value must be a string, a -// number, or a boolean. The 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`. The `:*` comparison can be used to test whether a key has -// been defined. For example, to find all objects with `owner` label use: ``` -// labels.owner:* ``` 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) ``` If you want to use a regular -// expression, use the `eq` (equal) or `ne` (not equal) operator against a -// single un-parenthesized expression with or without quotes or against -// multiple parenthesized expressions. Examples: `fieldname eq unquoted -// literal` `fieldname eq 'single quoted literal'` `fieldname eq "double quoted -// literal" `(fieldname1 eq literal) (fieldname2 ne "literal")` The literal -// value is interpreted as a regular expression using Google RE2 library -// syntax. The literal value must match the entire field. For example, to -// filter for instances that do not end with name "instance", you would use -// `name ne .*instance`. You cannot combine constraints on multiple fields -// using regular expressions. -func (c *TargetSslProxiesListCall) Filter(filter string) *TargetSslProxiesListCall { - 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 *TargetSslProxiesListCall) MaxResults(maxResults int64) *TargetSslProxiesListCall { - 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 *TargetSslProxiesListCall) OrderBy(orderBy string) *TargetSslProxiesListCall { - 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 *TargetSslProxiesListCall) PageToken(pageToken string) *TargetSslProxiesListCall { - c.urlParams_.Set("pageToken", pageToken) - return c -} - -// ReturnPartialSuccess sets the optional parameter "returnPartialSuccess": -// Opt-in for partial success behavior which provides partial results in case -// of failure. The default value is false. For example, when partial success -// behavior is enabled, aggregatedList for a single zone scope either returns -// all resources in the zone or no resources, with an error code. -func (c *TargetSslProxiesListCall) ReturnPartialSuccess(returnPartialSuccess bool) *TargetSslProxiesListCall { - c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess)) +// 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 *TargetTcpProxiesSetProxyHeaderCall) RequestId(requestId string) *TargetTcpProxiesSetProxyHeaderCall { + 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 // details. -func (c *TargetSslProxiesListCall) Fields(s ...googleapi.Field) *TargetSslProxiesListCall { +func (c *TargetTcpProxiesSetProxyHeaderCall) Fields(s ...googleapi.Field) *TargetTcpProxiesSetProxyHeaderCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } -// IfNoneMatch sets an 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. -func (c *TargetSslProxiesListCall) IfNoneMatch(entityTag string) *TargetSslProxiesListCall { - c.ifNoneMatch_ = entityTag - return c -} - // Context sets the context to be used in this call's Do method. -func (c *TargetSslProxiesListCall) Context(ctx context.Context) *TargetSslProxiesListCall { +func (c *TargetTcpProxiesSetProxyHeaderCall) Context(ctx context.Context) *TargetTcpProxiesSetProxyHeaderCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *TargetSslProxiesListCall) Header() http.Header { +func (c *TargetTcpProxiesSetProxyHeaderCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *TargetSslProxiesListCall) doRequest(alt string) (*http.Response, error) { - reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) - if c.ifNoneMatch_ != "" { - reqHeaders.Set("If-None-Match", c.ifNoneMatch_) +func (c *TargetTcpProxiesSetProxyHeaderCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) + body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.targettcpproxiessetproxyheaderrequest) + if err != nil { + return nil, err } - var body io.Reader = nil c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/targetSslProxies") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/targetTcpProxies/{targetTcpProxy}/setProxyHeader") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("GET", urls, body) + req, err := http.NewRequest("POST", urls, body) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, + "project": c.project, + "targetTcpProxy": c.targetTcpProxy, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.targetTcpProxies.setProxyHeader", "request", internallog.HTTPRequest(req, body.Bytes())) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.targetSslProxies.list" call. +// Do executes the "compute.targetTcpProxies.setProxyHeader" call. // Any non-2xx status code is an error. Response headers are in either -// *TargetSslProxyList.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 *TargetSslProxiesListCall) Do(opts ...googleapi.CallOption) (*TargetSslProxyList, error) { +// *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 *TargetTcpProxiesSetProxyHeaderCall) Do(opts ...googleapi.CallOption) (*Operation, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -43149,111 +64900,76 @@ func (c *TargetSslProxiesListCall) Do(opts ...googleapi.CallOption) (*TargetSslP if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } - ret := &TargetSslProxyList{ + ret := &Operation{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.targetTcpProxies.setProxyHeader", "response", internallog.HTTPResponse(res, b)) return ret, nil } -// 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 *TargetSslProxiesListCall) Pages(ctx context.Context, f func(*TargetSslProxyList) error) error { - c.ctx_ = ctx - defer c.PageToken(c.urlParams_.Get("pageToken")) - 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) - } -} - -type TargetSslProxiesSetBackendServiceCall struct { - s *Service - project string - targetSslProxy string - targetsslproxiessetbackendservicerequest *TargetSslProxiesSetBackendServiceRequest - urlParams_ gensupport.URLParams - ctx_ context.Context - header_ http.Header +type TargetTcpProxiesTestIamPermissionsCall struct { + s *Service + project string + resource string + testpermissionsrequest *TestPermissionsRequest + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header } -// SetBackendService: Changes the BackendService for TargetSslProxy. +// TestIamPermissions: Returns permissions that a caller has on the specified +// resource. // -// - project: Project ID for this request. -// - targetSslProxy: Name of the TargetSslProxy resource whose BackendService -// resource is to be set. -func (r *TargetSslProxiesService) SetBackendService(project string, targetSslProxy string, targetsslproxiessetbackendservicerequest *TargetSslProxiesSetBackendServiceRequest) *TargetSslProxiesSetBackendServiceCall { - c := &TargetSslProxiesSetBackendServiceCall{s: r.s, urlParams_: make(gensupport.URLParams)} +// - project: Project ID for this request. +// - resource: Name or id of the resource for this request. +func (r *TargetTcpProxiesService) TestIamPermissions(project string, resource string, testpermissionsrequest *TestPermissionsRequest) *TargetTcpProxiesTestIamPermissionsCall { + c := &TargetTcpProxiesTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project - c.targetSslProxy = targetSslProxy - c.targetsslproxiessetbackendservicerequest = targetsslproxiessetbackendservicerequest - 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 *TargetSslProxiesSetBackendServiceCall) RequestId(requestId string) *TargetSslProxiesSetBackendServiceCall { - c.urlParams_.Set("requestId", requestId) + c.resource = resource + c.testpermissionsrequest = testpermissionsrequest return c } // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *TargetSslProxiesSetBackendServiceCall) Fields(s ...googleapi.Field) *TargetSslProxiesSetBackendServiceCall { +func (c *TargetTcpProxiesTestIamPermissionsCall) Fields(s ...googleapi.Field) *TargetTcpProxiesTestIamPermissionsCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } // Context sets the context to be used in this call's Do method. -func (c *TargetSslProxiesSetBackendServiceCall) Context(ctx context.Context) *TargetSslProxiesSetBackendServiceCall { +func (c *TargetTcpProxiesTestIamPermissionsCall) Context(ctx context.Context) *TargetTcpProxiesTestIamPermissionsCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *TargetSslProxiesSetBackendServiceCall) Header() http.Header { +func (c *TargetTcpProxiesTestIamPermissionsCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *TargetSslProxiesSetBackendServiceCall) doRequest(alt string) (*http.Response, error) { +func (c *TargetTcpProxiesTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) - var body io.Reader = nil - body, err := googleapi.WithoutDataWrapper.JSONReader(c.targetsslproxiessetbackendservicerequest) + body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.testpermissionsrequest) if err != nil { return nil, err } c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/targetSslProxies/{targetSslProxy}/setBackendService") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/targetTcpProxies/{resource}/testIamPermissions") urls += "?" + c.urlParams_.Encode() req, err := http.NewRequest("POST", urls, body) if err != nil { @@ -43261,18 +64977,20 @@ func (c *TargetSslProxiesSetBackendServiceCall) doRequest(alt string) (*http.Res } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "targetSslProxy": c.targetSslProxy, + "project": c.project, + "resource": c.resource, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.targetTcpProxies.testIamPermissions", "request", internallog.HTTPRequest(req, body.Bytes())) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.targetSslProxies.setBackendService" call. +// Do executes the "compute.targetTcpProxies.testIamPermissions" call. // 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 *TargetSslProxiesSetBackendServiceCall) Do(opts ...googleapi.CallOption) (*Operation, error) { +// *TestPermissionsResponse.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 *TargetTcpProxiesTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -43291,110 +65009,256 @@ func (c *TargetSslProxiesSetBackendServiceCall) Do(opts ...googleapi.CallOption) if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } - ret := &Operation{ + ret := &TestPermissionsResponse{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.targetTcpProxies.testIamPermissions", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type TargetSslProxiesSetCertificateMapCall struct { - s *Service - project string - targetSslProxy string - targetsslproxiessetcertificatemaprequest *TargetSslProxiesSetCertificateMapRequest - urlParams_ gensupport.URLParams - ctx_ context.Context - header_ http.Header +type TargetVpnGatewaysAggregatedListCall struct { + s *Service + project string + urlParams_ gensupport.URLParams + ifNoneMatch_ string + ctx_ context.Context + header_ http.Header } -// SetCertificateMap: Changes the Certificate Map for TargetSslProxy. +// AggregatedList: Retrieves an aggregated list of target VPN gateways. // -// - project: Project ID for this request. -// - targetSslProxy: Name of the TargetSslProxy resource whose CertificateMap -// is to be set. The name must be 1-63 characters long, and comply with -// RFC1035. -func (r *TargetSslProxiesService) SetCertificateMap(project string, targetSslProxy string, targetsslproxiessetcertificatemaprequest *TargetSslProxiesSetCertificateMapRequest) *TargetSslProxiesSetCertificateMapCall { - c := &TargetSslProxiesSetCertificateMapCall{s: r.s, urlParams_: make(gensupport.URLParams)} +// To prevent failure, Google recommends that you set +// the +// `returnPartialSuccess` parameter to `true`. +// +// - project: Project ID for this request. +func (r *TargetVpnGatewaysService) AggregatedList(project string) *TargetVpnGatewaysAggregatedListCall { + c := &TargetVpnGatewaysAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project - c.targetSslProxy = targetSslProxy - c.targetsslproxiessetcertificatemaprequest = targetsslproxiessetcertificatemaprequest 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 *TargetSslProxiesSetCertificateMapCall) RequestId(requestId string) *TargetSslProxiesSetCertificateMapCall { - c.urlParams_.Set("requestId", requestId) +// Filter sets the optional parameter "filter": A filter expression that +// filters resources listed in the response. Most +// Compute resources support two types of filter expressions: +// expressions that support regular expressions and expressions that follow +// API improvement proposal AIP-160. +// These two types of filter expressions cannot be mixed in one request. +// +// If you want to use AIP-160, your expression must specify the field name, +// an +// operator, and the value that you want to use for filtering. The value +// must be a string, a number, or a boolean. The 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`. +// +// The `:*` comparison can be used to test whether a key has been defined. +// For example, to find all objects with `owner` label +// use: +// ``` +// labels.owner:* +// ``` +// +// 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 onresource 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) +// ``` +// +// If you want to use a regular expression, use the `eq` (equal) or `ne` +// (not equal) operator against a single un-parenthesized expression with +// or +// without quotes or against multiple parenthesized expressions. +// Examples: +// +// `fieldname eq unquoted literal` +// `fieldname eq 'single quoted literal'` +// `fieldname eq "double quoted literal" +// `(fieldname1 eq literal) (fieldname2 ne "literal")` +// +// The literal value is interpreted as a regular expression using GoogleRE2 +// library syntax. +// The literal value must match the entire field. +// +// For example, to filter for instances that do not end with name +// "instance", +// you would use `name ne .*instance`. +// +// You cannot combine constraints on multiple fields using regular +// expressions. +func (c *TargetVpnGatewaysAggregatedListCall) Filter(filter string) *TargetVpnGatewaysAggregatedListCall { + c.urlParams_.Set("filter", filter) + return c +} + +// IncludeAllScopes sets the optional parameter "includeAllScopes": Indicates +// whether every visible scope for each scope type (zone, region, +// global) should be included in the response. For new resource types +// added +// after this field, the flag has no effect as new resource types will +// always +// include every visible scope for each scope type in response. For +// resource +// types which predate this field, if this flag is omitted or false, +// only +// scopes of the scope types where the resource type is expected to be +// found +// will be included. +func (c *TargetVpnGatewaysAggregatedListCall) IncludeAllScopes(includeAllScopes bool) *TargetVpnGatewaysAggregatedListCall { + c.urlParams_.Set("includeAllScopes", fmt.Sprint(includeAllScopes)) + 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 *TargetVpnGatewaysAggregatedListCall) MaxResults(maxResults int64) *TargetVpnGatewaysAggregatedListCall { + 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 *TargetVpnGatewaysAggregatedListCall) OrderBy(orderBy string) *TargetVpnGatewaysAggregatedListCall { + 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 *TargetVpnGatewaysAggregatedListCall) PageToken(pageToken string) *TargetVpnGatewaysAggregatedListCall { + c.urlParams_.Set("pageToken", pageToken) + return c +} + +// ReturnPartialSuccess sets the optional parameter "returnPartialSuccess": +// Opt-in for partial success behavior which provides partial results in +// case +// of failure. The default value is false. +// +// For example, when partial success behavior is enabled, aggregatedList for +// a +// single zone scope either returns all resources in the zone or no +// resources, +// with an error code. +func (c *TargetVpnGatewaysAggregatedListCall) ReturnPartialSuccess(returnPartialSuccess bool) *TargetVpnGatewaysAggregatedListCall { + c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess)) + return c +} + +// ServiceProjectNumber sets the optional parameter "serviceProjectNumber": The +// Shared VPC service project id or service project number for which +// aggregated list request is invoked for subnetworks list-usable api. +func (c *TargetVpnGatewaysAggregatedListCall) ServiceProjectNumber(serviceProjectNumber int64) *TargetVpnGatewaysAggregatedListCall { + c.urlParams_.Set("serviceProjectNumber", fmt.Sprint(serviceProjectNumber)) return c } // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *TargetSslProxiesSetCertificateMapCall) Fields(s ...googleapi.Field) *TargetSslProxiesSetCertificateMapCall { +func (c *TargetVpnGatewaysAggregatedListCall) Fields(s ...googleapi.Field) *TargetVpnGatewaysAggregatedListCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } +// IfNoneMatch sets an 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. +func (c *TargetVpnGatewaysAggregatedListCall) IfNoneMatch(entityTag string) *TargetVpnGatewaysAggregatedListCall { + c.ifNoneMatch_ = entityTag + return c +} + // Context sets the context to be used in this call's Do method. -func (c *TargetSslProxiesSetCertificateMapCall) Context(ctx context.Context) *TargetSslProxiesSetCertificateMapCall { +func (c *TargetVpnGatewaysAggregatedListCall) Context(ctx context.Context) *TargetVpnGatewaysAggregatedListCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *TargetSslProxiesSetCertificateMapCall) Header() http.Header { +func (c *TargetVpnGatewaysAggregatedListCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *TargetSslProxiesSetCertificateMapCall) doRequest(alt string) (*http.Response, error) { - reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) - var body io.Reader = nil - body, err := googleapi.WithoutDataWrapper.JSONReader(c.targetsslproxiessetcertificatemaprequest) - if err != nil { - return nil, err +func (c *TargetVpnGatewaysAggregatedListCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) + if c.ifNoneMatch_ != "" { + reqHeaders.Set("If-None-Match", c.ifNoneMatch_) } c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/targetSslProxies/{targetSslProxy}/setCertificateMap") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/aggregated/targetVpnGateways") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("POST", urls, body) + req, err := http.NewRequest("GET", urls, nil) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "targetSslProxy": c.targetSslProxy, + "project": c.project, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.targetVpnGateways.aggregatedList", "request", internallog.HTTPRequest(req, nil)) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.targetSslProxies.setCertificateMap" call. +// Do executes the "compute.targetVpnGateways.aggregatedList" call. // 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 *TargetSslProxiesSetCertificateMapCall) Do(opts ...googleapi.CallOption) (*Operation, error) { +// *TargetVpnGatewayAggregatedList.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 *TargetVpnGatewaysAggregatedListCall) Do(opts ...googleapi.CallOption) (*TargetVpnGatewayAggregatedList, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -43413,53 +65277,83 @@ func (c *TargetSslProxiesSetCertificateMapCall) Do(opts ...googleapi.CallOption) if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } - ret := &Operation{ + ret := &TargetVpnGatewayAggregatedList{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.targetVpnGateways.aggregatedList", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type TargetSslProxiesSetProxyHeaderCall struct { - s *Service - project string - targetSslProxy string - targetsslproxiessetproxyheaderrequest *TargetSslProxiesSetProxyHeaderRequest - urlParams_ gensupport.URLParams - ctx_ context.Context - header_ http.Header +// 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 *TargetVpnGatewaysAggregatedListCall) Pages(ctx context.Context, f func(*TargetVpnGatewayAggregatedList) error) error { + c.ctx_ = ctx + defer c.PageToken(c.urlParams_.Get("pageToken")) + 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) + } } -// SetProxyHeader: Changes the ProxyHeaderType for TargetSslProxy. +type TargetVpnGatewaysDeleteCall struct { + s *Service + project string + region string + targetVpnGateway string + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header +} + +// Delete: Deletes the specified target VPN gateway. // -// - project: Project ID for this request. -// - targetSslProxy: Name of the TargetSslProxy resource whose ProxyHeader is -// to be set. -func (r *TargetSslProxiesService) SetProxyHeader(project string, targetSslProxy string, targetsslproxiessetproxyheaderrequest *TargetSslProxiesSetProxyHeaderRequest) *TargetSslProxiesSetProxyHeaderCall { - c := &TargetSslProxiesSetProxyHeaderCall{s: r.s, urlParams_: make(gensupport.URLParams)} +// - project: Project ID for this request. +// - region: Name of the region for this request. +// - targetVpnGateway: Name of the target VPN gateway to delete. +func (r *TargetVpnGatewaysService) Delete(project string, region string, targetVpnGateway string) *TargetVpnGatewaysDeleteCall { + c := &TargetVpnGatewaysDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project - c.targetSslProxy = targetSslProxy - c.targetsslproxiessetproxyheaderrequest = targetsslproxiessetproxyheaderrequest + c.region = region + c.targetVpnGateway = targetVpnGateway 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 *TargetSslProxiesSetProxyHeaderCall) RequestId(requestId string) *TargetSslProxiesSetProxyHeaderCall { +// 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 *TargetVpnGatewaysDeleteCall) RequestId(requestId string) *TargetVpnGatewaysDeleteCall { c.urlParams_.Set("requestId", requestId) return c } @@ -43467,55 +65361,52 @@ func (c *TargetSslProxiesSetProxyHeaderCall) RequestId(requestId string) *Target // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *TargetSslProxiesSetProxyHeaderCall) Fields(s ...googleapi.Field) *TargetSslProxiesSetProxyHeaderCall { +func (c *TargetVpnGatewaysDeleteCall) Fields(s ...googleapi.Field) *TargetVpnGatewaysDeleteCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } // Context sets the context to be used in this call's Do method. -func (c *TargetSslProxiesSetProxyHeaderCall) Context(ctx context.Context) *TargetSslProxiesSetProxyHeaderCall { +func (c *TargetVpnGatewaysDeleteCall) Context(ctx context.Context) *TargetVpnGatewaysDeleteCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *TargetSslProxiesSetProxyHeaderCall) Header() http.Header { +func (c *TargetVpnGatewaysDeleteCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *TargetSslProxiesSetProxyHeaderCall) doRequest(alt string) (*http.Response, error) { - reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) - var body io.Reader = nil - body, err := googleapi.WithoutDataWrapper.JSONReader(c.targetsslproxiessetproxyheaderrequest) - if err != nil { - return nil, err - } +func (c *TargetVpnGatewaysDeleteCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/targetSslProxies/{targetSslProxy}/setProxyHeader") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/targetVpnGateways/{targetVpnGateway}") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("POST", urls, body) + req, err := http.NewRequest("DELETE", urls, nil) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "targetSslProxy": c.targetSslProxy, + "project": c.project, + "region": c.region, + "targetVpnGateway": c.targetVpnGateway, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.targetVpnGateways.delete", "request", internallog.HTTPRequest(req, nil)) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.targetSslProxies.setProxyHeader" call. +// Do executes the "compute.targetVpnGateways.delete" call. // 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 *TargetSslProxiesSetProxyHeaderCall) Do(opts ...googleapi.CallOption) (*Operation, error) { +func (c *TargetVpnGatewaysDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -43541,102 +65432,99 @@ func (c *TargetSslProxiesSetProxyHeaderCall) Do(opts ...googleapi.CallOption) (* }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.targetVpnGateways.delete", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type TargetSslProxiesSetSslCertificatesCall struct { - s *Service - project string - targetSslProxy string - targetsslproxiessetsslcertificatesrequest *TargetSslProxiesSetSslCertificatesRequest - urlParams_ gensupport.URLParams - ctx_ context.Context - header_ http.Header +type TargetVpnGatewaysGetCall struct { + s *Service + project string + region string + targetVpnGateway string + urlParams_ gensupport.URLParams + ifNoneMatch_ string + ctx_ context.Context + header_ http.Header } -// SetSslCertificates: Changes SslCertificates for TargetSslProxy. +// Get: Returns the specified target VPN gateway. // -// - project: Project ID for this request. -// - targetSslProxy: Name of the TargetSslProxy resource whose SslCertificate -// resource is to be set. -func (r *TargetSslProxiesService) SetSslCertificates(project string, targetSslProxy string, targetsslproxiessetsslcertificatesrequest *TargetSslProxiesSetSslCertificatesRequest) *TargetSslProxiesSetSslCertificatesCall { - c := &TargetSslProxiesSetSslCertificatesCall{s: r.s, urlParams_: make(gensupport.URLParams)} +// - project: Project ID for this request. +// - region: Name of the region for this request. +// - targetVpnGateway: Name of the target VPN gateway to return. +func (r *TargetVpnGatewaysService) Get(project string, region string, targetVpnGateway string) *TargetVpnGatewaysGetCall { + c := &TargetVpnGatewaysGetCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project - c.targetSslProxy = targetSslProxy - c.targetsslproxiessetsslcertificatesrequest = targetsslproxiessetsslcertificatesrequest - 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 *TargetSslProxiesSetSslCertificatesCall) RequestId(requestId string) *TargetSslProxiesSetSslCertificatesCall { - c.urlParams_.Set("requestId", requestId) + c.region = region + c.targetVpnGateway = targetVpnGateway return c } // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *TargetSslProxiesSetSslCertificatesCall) Fields(s ...googleapi.Field) *TargetSslProxiesSetSslCertificatesCall { +func (c *TargetVpnGatewaysGetCall) Fields(s ...googleapi.Field) *TargetVpnGatewaysGetCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } +// IfNoneMatch sets an 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. +func (c *TargetVpnGatewaysGetCall) IfNoneMatch(entityTag string) *TargetVpnGatewaysGetCall { + c.ifNoneMatch_ = entityTag + return c +} + // Context sets the context to be used in this call's Do method. -func (c *TargetSslProxiesSetSslCertificatesCall) Context(ctx context.Context) *TargetSslProxiesSetSslCertificatesCall { +func (c *TargetVpnGatewaysGetCall) Context(ctx context.Context) *TargetVpnGatewaysGetCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *TargetSslProxiesSetSslCertificatesCall) Header() http.Header { +func (c *TargetVpnGatewaysGetCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *TargetSslProxiesSetSslCertificatesCall) doRequest(alt string) (*http.Response, error) { - reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) - var body io.Reader = nil - body, err := googleapi.WithoutDataWrapper.JSONReader(c.targetsslproxiessetsslcertificatesrequest) - if err != nil { - return nil, err +func (c *TargetVpnGatewaysGetCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) + if c.ifNoneMatch_ != "" { + reqHeaders.Set("If-None-Match", c.ifNoneMatch_) } c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/targetSslProxies/{targetSslProxy}/setSslCertificates") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/targetVpnGateways/{targetVpnGateway}") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("POST", urls, body) + req, err := http.NewRequest("GET", urls, nil) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "targetSslProxy": c.targetSslProxy, + "project": c.project, + "region": c.region, + "targetVpnGateway": c.targetVpnGateway, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.targetVpnGateways.get", "request", internallog.HTTPRequest(req, nil)) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.targetSslProxies.setSslCertificates" call. +// Do executes the "compute.targetVpnGateways.get" call. // 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 *TargetSslProxiesSetSslCertificatesCall) Do(opts ...googleapi.CallOption) (*Operation, error) { +// *TargetVpnGateway.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 *TargetVpnGatewaysGetCall) Do(opts ...googleapi.CallOption) (*TargetVpnGateway, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -43655,56 +65543,63 @@ func (c *TargetSslProxiesSetSslCertificatesCall) Do(opts ...googleapi.CallOption if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } - ret := &Operation{ + ret := &TargetVpnGateway{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.targetVpnGateways.get", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type TargetSslProxiesSetSslPolicyCall struct { - s *Service - project string - targetSslProxy string - sslpolicyreference *SslPolicyReference - urlParams_ gensupport.URLParams - ctx_ context.Context - header_ http.Header +type TargetVpnGatewaysInsertCall struct { + s *Service + project string + region string + targetvpngateway *TargetVpnGateway + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header } -// SetSslPolicy: Sets the SSL policy for TargetSslProxy. The SSL policy -// specifies the server-side support for SSL features. This affects connections -// between clients and the load balancer. They do not affect the connection -// between the load balancer and the backends. +// Insert: Creates a target VPN gateway in the specified project and region +// using +// the data included in the request. // -// - project: Project ID for this request. -// - targetSslProxy: Name of the TargetSslProxy resource whose SSL policy is to -// be set. The name must be 1-63 characters long, and comply with RFC1035. -func (r *TargetSslProxiesService) SetSslPolicy(project string, targetSslProxy string, sslpolicyreference *SslPolicyReference) *TargetSslProxiesSetSslPolicyCall { - c := &TargetSslProxiesSetSslPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)} +// - project: Project ID for this request. +// - region: Name of the region for this request. +func (r *TargetVpnGatewaysService) Insert(project string, region string, targetvpngateway *TargetVpnGateway) *TargetVpnGatewaysInsertCall { + c := &TargetVpnGatewaysInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project - c.targetSslProxy = targetSslProxy - c.sslpolicyreference = sslpolicyreference + c.region = region + c.targetvpngateway = targetvpngateway 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 *TargetSslProxiesSetSslPolicyCall) RequestId(requestId string) *TargetSslProxiesSetSslPolicyCall { +// 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 *TargetVpnGatewaysInsertCall) RequestId(requestId string) *TargetVpnGatewaysInsertCall { c.urlParams_.Set("requestId", requestId) return c } @@ -43712,36 +65607,35 @@ func (c *TargetSslProxiesSetSslPolicyCall) RequestId(requestId string) *TargetSs // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *TargetSslProxiesSetSslPolicyCall) Fields(s ...googleapi.Field) *TargetSslProxiesSetSslPolicyCall { +func (c *TargetVpnGatewaysInsertCall) Fields(s ...googleapi.Field) *TargetVpnGatewaysInsertCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } // Context sets the context to be used in this call's Do method. -func (c *TargetSslProxiesSetSslPolicyCall) Context(ctx context.Context) *TargetSslProxiesSetSslPolicyCall { +func (c *TargetVpnGatewaysInsertCall) Context(ctx context.Context) *TargetVpnGatewaysInsertCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *TargetSslProxiesSetSslPolicyCall) Header() http.Header { +func (c *TargetVpnGatewaysInsertCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *TargetSslProxiesSetSslPolicyCall) doRequest(alt string) (*http.Response, error) { +func (c *TargetVpnGatewaysInsertCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) - var body io.Reader = nil - body, err := googleapi.WithoutDataWrapper.JSONReader(c.sslpolicyreference) + body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.targetvpngateway) if err != nil { return nil, err } c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/targetSslProxies/{targetSslProxy}/setSslPolicy") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/targetVpnGateways") urls += "?" + c.urlParams_.Encode() req, err := http.NewRequest("POST", urls, body) if err != nil { @@ -43749,18 +65643,19 @@ func (c *TargetSslProxiesSetSslPolicyCall) doRequest(alt string) (*http.Response } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "targetSslProxy": c.targetSslProxy, + "project": c.project, + "region": c.region, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.targetVpnGateways.insert", "request", internallog.HTTPRequest(req, body.Bytes())) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.targetSslProxies.setSslPolicy" call. +// Do executes the "compute.targetVpnGateways.insert" call. // 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 *TargetSslProxiesSetSslPolicyCall) Do(opts ...googleapi.CallOption) (*Operation, error) { +func (c *TargetVpnGatewaysInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -43786,135 +65681,169 @@ func (c *TargetSslProxiesSetSslPolicyCall) Do(opts ...googleapi.CallOption) (*Op }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.targetVpnGateways.insert", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type TargetTcpProxiesAggregatedListCall struct { +type TargetVpnGatewaysListCall struct { s *Service project string + region string urlParams_ gensupport.URLParams ifNoneMatch_ string ctx_ context.Context header_ http.Header } -// AggregatedList: Retrieves the list of all TargetTcpProxy resources, regional -// and global, available to the specified project. To prevent failure, Google -// recommends that you set the `returnPartialSuccess` parameter to `true`. +// List: Retrieves a list of target VPN gateways available to the +// specified +// project and region. // -// - project: Name of the project scoping this request. -func (r *TargetTcpProxiesService) AggregatedList(project string) *TargetTcpProxiesAggregatedListCall { - c := &TargetTcpProxiesAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)} +// - project: Project ID for this request. +// - region: Name of the region for this request. +func (r *TargetVpnGatewaysService) List(project string, region string) *TargetVpnGatewaysListCall { + c := &TargetVpnGatewaysListCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project + c.region = region return c } // Filter sets the optional parameter "filter": A filter expression that -// filters resources listed in the response. Most Compute resources support two -// types of filter expressions: expressions that support regular expressions -// and expressions that follow API improvement proposal AIP-160. These two -// types of filter expressions cannot be mixed in one request. If you want to -// use AIP-160, your expression must specify the field name, an operator, and -// the value that you want to use for filtering. The value must be a string, a -// number, or a boolean. The 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`. The `:*` comparison can be used to test whether a key has -// been defined. For example, to find all objects with `owner` label use: ``` -// labels.owner:* ``` 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) ``` If you want to use a regular -// expression, use the `eq` (equal) or `ne` (not equal) operator against a -// single un-parenthesized expression with or without quotes or against -// multiple parenthesized expressions. Examples: `fieldname eq unquoted -// literal` `fieldname eq 'single quoted literal'` `fieldname eq "double quoted -// literal" `(fieldname1 eq literal) (fieldname2 ne "literal")` The literal -// value is interpreted as a regular expression using Google RE2 library -// syntax. The literal value must match the entire field. For example, to -// filter for instances that do not end with name "instance", you would use -// `name ne .*instance`. You cannot combine constraints on multiple fields -// using regular expressions. -func (c *TargetTcpProxiesAggregatedListCall) Filter(filter string) *TargetTcpProxiesAggregatedListCall { +// filters resources listed in the response. Most +// Compute resources support two types of filter expressions: +// expressions that support regular expressions and expressions that follow +// API improvement proposal AIP-160. +// These two types of filter expressions cannot be mixed in one request. +// +// If you want to use AIP-160, your expression must specify the field name, +// an +// operator, and the value that you want to use for filtering. The value +// must be a string, a number, or a boolean. The 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`. +// +// The `:*` comparison can be used to test whether a key has been defined. +// For example, to find all objects with `owner` label +// use: +// ``` +// labels.owner:* +// ``` +// +// 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 onresource 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) +// ``` +// +// If you want to use a regular expression, use the `eq` (equal) or `ne` +// (not equal) operator against a single un-parenthesized expression with +// or +// without quotes or against multiple parenthesized expressions. +// Examples: +// +// `fieldname eq unquoted literal` +// `fieldname eq 'single quoted literal'` +// `fieldname eq "double quoted literal" +// `(fieldname1 eq literal) (fieldname2 ne "literal")` +// +// The literal value is interpreted as a regular expression using GoogleRE2 +// library syntax. +// The literal value must match the entire field. +// +// For example, to filter for instances that do not end with name +// "instance", +// you would use `name ne .*instance`. +// +// You cannot combine constraints on multiple fields using regular +// expressions. +func (c *TargetVpnGatewaysListCall) Filter(filter string) *TargetVpnGatewaysListCall { c.urlParams_.Set("filter", filter) return c } -// IncludeAllScopes sets the optional parameter "includeAllScopes": Indicates -// whether every visible scope for each scope type (zone, region, global) -// should be included in the response. For new resource types added after this -// field, the flag has no effect as new resource types will always include -// every visible scope for each scope type in response. For resource types -// which predate this field, if this flag is omitted or false, only scopes of -// the scope types where the resource type is expected to be found will be -// included. -func (c *TargetTcpProxiesAggregatedListCall) IncludeAllScopes(includeAllScopes bool) *TargetTcpProxiesAggregatedListCall { - c.urlParams_.Set("includeAllScopes", fmt.Sprint(includeAllScopes)) - 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 *TargetTcpProxiesAggregatedListCall) MaxResults(maxResults int64) *TargetTcpProxiesAggregatedListCall { +// 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 *TargetVpnGatewaysListCall) MaxResults(maxResults int64) *TargetVpnGatewaysListCall { 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 *TargetTcpProxiesAggregatedListCall) OrderBy(orderBy string) *TargetTcpProxiesAggregatedListCall { +// 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 *TargetVpnGatewaysListCall) OrderBy(orderBy string) *TargetVpnGatewaysListCall { 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 *TargetTcpProxiesAggregatedListCall) PageToken(pageToken string) *TargetTcpProxiesAggregatedListCall { +// use. Set `pageToken` to the +// `nextPageToken` returned by a previous list request to get +// the next page of results. +func (c *TargetVpnGatewaysListCall) PageToken(pageToken string) *TargetVpnGatewaysListCall { c.urlParams_.Set("pageToken", pageToken) return c } // ReturnPartialSuccess sets the optional parameter "returnPartialSuccess": -// Opt-in for partial success behavior which provides partial results in case -// of failure. The default value is false. For example, when partial success -// behavior is enabled, aggregatedList for a single zone scope either returns -// all resources in the zone or no resources, with an error code. -func (c *TargetTcpProxiesAggregatedListCall) ReturnPartialSuccess(returnPartialSuccess bool) *TargetTcpProxiesAggregatedListCall { +// Opt-in for partial success behavior which provides partial results in +// case +// of failure. The default value is false. +// +// For example, when partial success behavior is enabled, aggregatedList for +// a +// single zone scope either returns all resources in the zone or no +// resources, +// with an error code. +func (c *TargetVpnGatewaysListCall) ReturnPartialSuccess(returnPartialSuccess bool) *TargetVpnGatewaysListCall { c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess)) return c } -// ServiceProjectNumber sets the optional parameter "serviceProjectNumber": The -// Shared VPC service project id or service project number for which aggregated -// list request is invoked for subnetworks list-usable api. -func (c *TargetTcpProxiesAggregatedListCall) ServiceProjectNumber(serviceProjectNumber int64) *TargetTcpProxiesAggregatedListCall { - c.urlParams_.Set("serviceProjectNumber", fmt.Sprint(serviceProjectNumber)) - return c -} - // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *TargetTcpProxiesAggregatedListCall) Fields(s ...googleapi.Field) *TargetTcpProxiesAggregatedListCall { +func (c *TargetVpnGatewaysListCall) Fields(s ...googleapi.Field) *TargetVpnGatewaysListCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } @@ -43922,54 +65851,55 @@ func (c *TargetTcpProxiesAggregatedListCall) Fields(s ...googleapi.Field) *Targe // IfNoneMatch sets an 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. -func (c *TargetTcpProxiesAggregatedListCall) IfNoneMatch(entityTag string) *TargetTcpProxiesAggregatedListCall { +func (c *TargetVpnGatewaysListCall) IfNoneMatch(entityTag string) *TargetVpnGatewaysListCall { c.ifNoneMatch_ = entityTag return c } // Context sets the context to be used in this call's Do method. -func (c *TargetTcpProxiesAggregatedListCall) Context(ctx context.Context) *TargetTcpProxiesAggregatedListCall { +func (c *TargetVpnGatewaysListCall) Context(ctx context.Context) *TargetVpnGatewaysListCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *TargetTcpProxiesAggregatedListCall) Header() http.Header { +func (c *TargetVpnGatewaysListCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *TargetTcpProxiesAggregatedListCall) doRequest(alt string) (*http.Response, error) { +func (c *TargetVpnGatewaysListCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) if c.ifNoneMatch_ != "" { reqHeaders.Set("If-None-Match", c.ifNoneMatch_) } - var body io.Reader = nil c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/aggregated/targetTcpProxies") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/targetVpnGateways") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("GET", urls, body) + req, err := http.NewRequest("GET", urls, nil) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ "project": c.project, + "region": c.region, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.targetVpnGateways.list", "request", internallog.HTTPRequest(req, nil)) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.targetTcpProxies.aggregatedList" call. +// Do executes the "compute.targetVpnGateways.list" call. // Any non-2xx status code is an error. Response headers are in either -// *TargetTcpProxyAggregatedList.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 *TargetTcpProxiesAggregatedListCall) Do(opts ...googleapi.CallOption) (*TargetTcpProxyAggregatedList, error) { +// *TargetVpnGatewayList.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 *TargetVpnGatewaysListCall) Do(opts ...googleapi.CallOption) (*TargetVpnGatewayList, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -43988,23 +65918,25 @@ func (c *TargetTcpProxiesAggregatedListCall) Do(opts ...googleapi.CallOption) (* if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } - ret := &TargetTcpProxyAggregatedList{ + ret := &TargetVpnGatewayList{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.targetVpnGateways.list", "response", internallog.HTTPResponse(res, b)) return ret, nil } // 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 *TargetTcpProxiesAggregatedListCall) Pages(ctx context.Context, f func(*TargetTcpProxyAggregatedList) error) error { +func (c *TargetVpnGatewaysListCall) Pages(ctx context.Context, f func(*TargetVpnGatewayList) error) error { c.ctx_ = ctx defer c.PageToken(c.urlParams_.Get("pageToken")) for { @@ -44022,37 +65954,51 @@ func (c *TargetTcpProxiesAggregatedListCall) Pages(ctx context.Context, f func(* } } -type TargetTcpProxiesDeleteCall struct { - s *Service - project string - targetTcpProxy string - urlParams_ gensupport.URLParams - ctx_ context.Context - header_ http.Header +type TargetVpnGatewaysSetLabelsCall struct { + s *Service + project string + region string + resource string + regionsetlabelsrequest *RegionSetLabelsRequest + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header } -// Delete: Deletes the specified TargetTcpProxy resource. +// SetLabels: Sets the labels on a TargetVpnGateway. To learn more about +// labels, read theLabeling +// Resources documentation. // // - project: Project ID for this request. -// - targetTcpProxy: Name of the TargetTcpProxy resource to delete. -func (r *TargetTcpProxiesService) Delete(project string, targetTcpProxy string) *TargetTcpProxiesDeleteCall { - c := &TargetTcpProxiesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)} +// - region: The region for this request. +// - resource: Name or id of the resource for this request. +func (r *TargetVpnGatewaysService) SetLabels(project string, region string, resource string, regionsetlabelsrequest *RegionSetLabelsRequest) *TargetVpnGatewaysSetLabelsCall { + c := &TargetVpnGatewaysSetLabelsCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project - c.targetTcpProxy = targetTcpProxy + c.region = region + c.resource = resource + c.regionsetlabelsrequest = regionsetlabelsrequest 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 *TargetTcpProxiesDeleteCall) RequestId(requestId string) *TargetTcpProxiesDeleteCall { +// 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 *TargetVpnGatewaysSetLabelsCall) RequestId(requestId string) *TargetVpnGatewaysSetLabelsCall { c.urlParams_.Set("requestId", requestId) return c } @@ -44060,51 +66006,56 @@ func (c *TargetTcpProxiesDeleteCall) RequestId(requestId string) *TargetTcpProxi // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *TargetTcpProxiesDeleteCall) Fields(s ...googleapi.Field) *TargetTcpProxiesDeleteCall { +func (c *TargetVpnGatewaysSetLabelsCall) Fields(s ...googleapi.Field) *TargetVpnGatewaysSetLabelsCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } // Context sets the context to be used in this call's Do method. -func (c *TargetTcpProxiesDeleteCall) Context(ctx context.Context) *TargetTcpProxiesDeleteCall { +func (c *TargetVpnGatewaysSetLabelsCall) Context(ctx context.Context) *TargetVpnGatewaysSetLabelsCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *TargetTcpProxiesDeleteCall) Header() http.Header { +func (c *TargetVpnGatewaysSetLabelsCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *TargetTcpProxiesDeleteCall) doRequest(alt string) (*http.Response, error) { - reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) - var body io.Reader = nil +func (c *TargetVpnGatewaysSetLabelsCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) + body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.regionsetlabelsrequest) + if err != nil { + return nil, err + } c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/targetTcpProxies/{targetTcpProxy}") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/targetVpnGateways/{resource}/setLabels") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("DELETE", urls, body) + req, err := http.NewRequest("POST", urls, body) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "targetTcpProxy": c.targetTcpProxy, + "project": c.project, + "region": c.region, + "resource": c.resource, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.targetVpnGateways.setLabels", "request", internallog.HTTPRequest(req, body.Bytes())) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.targetTcpProxies.delete" call. +// Do executes the "compute.targetVpnGateways.setLabels" call. // 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 *TargetTcpProxiesDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) { +func (c *TargetVpnGatewaysSetLabelsCall) Do(opts ...googleapi.CallOption) (*Operation, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -44130,37 +66081,196 @@ func (c *TargetTcpProxiesDeleteCall) Do(opts ...googleapi.CallOption) (*Operatio }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.targetVpnGateways.setLabels", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type TargetTcpProxiesGetCall struct { - s *Service - project string - targetTcpProxy string - urlParams_ gensupport.URLParams - ifNoneMatch_ string - ctx_ context.Context - header_ http.Header +type UrlMapsAggregatedListCall struct { + s *Service + project string + urlParams_ gensupport.URLParams + ifNoneMatch_ string + ctx_ context.Context + header_ http.Header } -// Get: Returns the specified TargetTcpProxy resource. +// AggregatedList: Retrieves the list of all UrlMap resources, regional and +// global, +// available to the specified project. // -// - project: Project ID for this request. -// - targetTcpProxy: Name of the TargetTcpProxy resource to return. -func (r *TargetTcpProxiesService) Get(project string, targetTcpProxy string) *TargetTcpProxiesGetCall { - c := &TargetTcpProxiesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)} +// To prevent failure, Google recommends that you set +// the +// `returnPartialSuccess` parameter to `true`. +// +// - project: Name of the project scoping this request. +func (r *UrlMapsService) AggregatedList(project string) *UrlMapsAggregatedListCall { + c := &UrlMapsAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project - c.targetTcpProxy = targetTcpProxy + return c +} + +// Filter sets the optional parameter "filter": A filter expression that +// filters resources listed in the response. Most +// Compute resources support two types of filter expressions: +// expressions that support regular expressions and expressions that follow +// API improvement proposal AIP-160. +// These two types of filter expressions cannot be mixed in one request. +// +// If you want to use AIP-160, your expression must specify the field name, +// an +// operator, and the value that you want to use for filtering. The value +// must be a string, a number, or a boolean. The 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`. +// +// The `:*` comparison can be used to test whether a key has been defined. +// For example, to find all objects with `owner` label +// use: +// ``` +// labels.owner:* +// ``` +// +// 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 onresource 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) +// ``` +// +// If you want to use a regular expression, use the `eq` (equal) or `ne` +// (not equal) operator against a single un-parenthesized expression with +// or +// without quotes or against multiple parenthesized expressions. +// Examples: +// +// `fieldname eq unquoted literal` +// `fieldname eq 'single quoted literal'` +// `fieldname eq "double quoted literal" +// `(fieldname1 eq literal) (fieldname2 ne "literal")` +// +// The literal value is interpreted as a regular expression using GoogleRE2 +// library syntax. +// The literal value must match the entire field. +// +// For example, to filter for instances that do not end with name +// "instance", +// you would use `name ne .*instance`. +// +// You cannot combine constraints on multiple fields using regular +// expressions. +func (c *UrlMapsAggregatedListCall) Filter(filter string) *UrlMapsAggregatedListCall { + c.urlParams_.Set("filter", filter) + return c +} + +// IncludeAllScopes sets the optional parameter "includeAllScopes": Indicates +// whether every visible scope for each scope type (zone, region, +// global) should be included in the response. For new resource types +// added +// after this field, the flag has no effect as new resource types will +// always +// include every visible scope for each scope type in response. For +// resource +// types which predate this field, if this flag is omitted or false, +// only +// scopes of the scope types where the resource type is expected to be +// found +// will be included. +func (c *UrlMapsAggregatedListCall) IncludeAllScopes(includeAllScopes bool) *UrlMapsAggregatedListCall { + c.urlParams_.Set("includeAllScopes", fmt.Sprint(includeAllScopes)) + 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 *UrlMapsAggregatedListCall) MaxResults(maxResults int64) *UrlMapsAggregatedListCall { + 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 *UrlMapsAggregatedListCall) OrderBy(orderBy string) *UrlMapsAggregatedListCall { + 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 *UrlMapsAggregatedListCall) PageToken(pageToken string) *UrlMapsAggregatedListCall { + c.urlParams_.Set("pageToken", pageToken) + return c +} + +// ReturnPartialSuccess sets the optional parameter "returnPartialSuccess": +// Opt-in for partial success behavior which provides partial results in +// case +// of failure. The default value is false. +// +// For example, when partial success behavior is enabled, aggregatedList for +// a +// single zone scope either returns all resources in the zone or no +// resources, +// with an error code. +func (c *UrlMapsAggregatedListCall) ReturnPartialSuccess(returnPartialSuccess bool) *UrlMapsAggregatedListCall { + c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess)) + return c +} + +// ServiceProjectNumber sets the optional parameter "serviceProjectNumber": The +// Shared VPC service project id or service project number for which +// aggregated list request is invoked for subnetworks list-usable api. +func (c *UrlMapsAggregatedListCall) ServiceProjectNumber(serviceProjectNumber int64) *UrlMapsAggregatedListCall { + c.urlParams_.Set("serviceProjectNumber", fmt.Sprint(serviceProjectNumber)) return c } // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *TargetTcpProxiesGetCall) Fields(s ...googleapi.Field) *TargetTcpProxiesGetCall { +func (c *UrlMapsAggregatedListCall) Fields(s ...googleapi.Field) *UrlMapsAggregatedListCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } @@ -44168,54 +66278,54 @@ func (c *TargetTcpProxiesGetCall) Fields(s ...googleapi.Field) *TargetTcpProxies // IfNoneMatch sets an 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. -func (c *TargetTcpProxiesGetCall) IfNoneMatch(entityTag string) *TargetTcpProxiesGetCall { +func (c *UrlMapsAggregatedListCall) IfNoneMatch(entityTag string) *UrlMapsAggregatedListCall { c.ifNoneMatch_ = entityTag return c } // Context sets the context to be used in this call's Do method. -func (c *TargetTcpProxiesGetCall) Context(ctx context.Context) *TargetTcpProxiesGetCall { +func (c *UrlMapsAggregatedListCall) Context(ctx context.Context) *UrlMapsAggregatedListCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *TargetTcpProxiesGetCall) Header() http.Header { +func (c *UrlMapsAggregatedListCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *TargetTcpProxiesGetCall) doRequest(alt string) (*http.Response, error) { +func (c *UrlMapsAggregatedListCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) if c.ifNoneMatch_ != "" { reqHeaders.Set("If-None-Match", c.ifNoneMatch_) } - var body io.Reader = nil c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/targetTcpProxies/{targetTcpProxy}") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/aggregated/urlMaps") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("GET", urls, body) + req, err := http.NewRequest("GET", urls, nil) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "targetTcpProxy": c.targetTcpProxy, + "project": c.project, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.urlMaps.aggregatedList", "request", internallog.HTTPRequest(req, nil)) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.targetTcpProxies.get" call. +// Do executes the "compute.urlMaps.aggregatedList" call. // Any non-2xx status code is an error. Response headers are in either -// *TargetTcpProxy.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 *TargetTcpProxiesGetCall) Do(opts ...googleapi.CallOption) (*TargetTcpProxy, error) { +// *UrlMapsAggregatedList.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 *UrlMapsAggregatedListCall) Do(opts ...googleapi.CallOption) (*UrlMapsAggregatedList, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -44234,50 +66344,80 @@ func (c *TargetTcpProxiesGetCall) Do(opts ...googleapi.CallOption) (*TargetTcpPr if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } - ret := &TargetTcpProxy{ + ret := &UrlMapsAggregatedList{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.urlMaps.aggregatedList", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type TargetTcpProxiesInsertCall struct { - s *Service - project string - targettcpproxy *TargetTcpProxy - urlParams_ gensupport.URLParams - ctx_ context.Context - header_ http.Header +// 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 *UrlMapsAggregatedListCall) Pages(ctx context.Context, f func(*UrlMapsAggregatedList) error) error { + c.ctx_ = ctx + defer c.PageToken(c.urlParams_.Get("pageToken")) + 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) + } +} + +type UrlMapsDeleteCall struct { + s *Service + project string + urlMap string + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header } -// Insert: Creates a TargetTcpProxy resource in the specified project using the -// data included in the request. +// Delete: Deletes the specified UrlMap resource. // // - project: Project ID for this request. -func (r *TargetTcpProxiesService) Insert(project string, targettcpproxy *TargetTcpProxy) *TargetTcpProxiesInsertCall { - c := &TargetTcpProxiesInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)} +// - urlMap: Name of the UrlMap resource to delete. +func (r *UrlMapsService) Delete(project string, urlMap string) *UrlMapsDeleteCall { + c := &UrlMapsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project - c.targettcpproxy = targettcpproxy + c.urlMap = urlMap 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 *TargetTcpProxiesInsertCall) RequestId(requestId string) *TargetTcpProxiesInsertCall { +// 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 *UrlMapsDeleteCall) RequestId(requestId string) *UrlMapsDeleteCall { c.urlParams_.Set("requestId", requestId) return c } @@ -44285,54 +66425,51 @@ func (c *TargetTcpProxiesInsertCall) RequestId(requestId string) *TargetTcpProxi // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *TargetTcpProxiesInsertCall) Fields(s ...googleapi.Field) *TargetTcpProxiesInsertCall { +func (c *UrlMapsDeleteCall) Fields(s ...googleapi.Field) *UrlMapsDeleteCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } // Context sets the context to be used in this call's Do method. -func (c *TargetTcpProxiesInsertCall) Context(ctx context.Context) *TargetTcpProxiesInsertCall { +func (c *UrlMapsDeleteCall) Context(ctx context.Context) *UrlMapsDeleteCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *TargetTcpProxiesInsertCall) Header() http.Header { +func (c *UrlMapsDeleteCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *TargetTcpProxiesInsertCall) doRequest(alt string) (*http.Response, error) { - reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) - var body io.Reader = nil - body, err := googleapi.WithoutDataWrapper.JSONReader(c.targettcpproxy) - if err != nil { - return nil, err - } +func (c *UrlMapsDeleteCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/targetTcpProxies") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/urlMaps/{urlMap}") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("POST", urls, body) + req, err := http.NewRequest("DELETE", urls, nil) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ "project": c.project, + "urlMap": c.urlMap, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.urlMaps.delete", "request", internallog.HTTPRequest(req, nil)) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.targetTcpProxies.insert" call. +// Do executes the "compute.urlMaps.delete" call. // 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 *TargetTcpProxiesInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) { +func (c *UrlMapsDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -44358,113 +66495,39 @@ func (c *TargetTcpProxiesInsertCall) Do(opts ...googleapi.CallOption) (*Operatio }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.urlMaps.delete", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type TargetTcpProxiesListCall struct { +type UrlMapsGetCall struct { s *Service project string + urlMap string urlParams_ gensupport.URLParams ifNoneMatch_ string ctx_ context.Context header_ http.Header } -// List: Retrieves the list of TargetTcpProxy resources available to the -// specified project. +// Get: Returns the specified UrlMap resource. // // - project: Project ID for this request. -func (r *TargetTcpProxiesService) List(project string) *TargetTcpProxiesListCall { - c := &TargetTcpProxiesListCall{s: r.s, urlParams_: make(gensupport.URLParams)} +// - urlMap: Name of the UrlMap resource to return. +func (r *UrlMapsService) Get(project string, urlMap string) *UrlMapsGetCall { + c := &UrlMapsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project - return c -} - -// Filter sets the optional parameter "filter": A filter expression that -// filters resources listed in the response. Most Compute resources support two -// types of filter expressions: expressions that support regular expressions -// and expressions that follow API improvement proposal AIP-160. These two -// types of filter expressions cannot be mixed in one request. If you want to -// use AIP-160, your expression must specify the field name, an operator, and -// the value that you want to use for filtering. The value must be a string, a -// number, or a boolean. The 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`. The `:*` comparison can be used to test whether a key has -// been defined. For example, to find all objects with `owner` label use: ``` -// labels.owner:* ``` 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) ``` If you want to use a regular -// expression, use the `eq` (equal) or `ne` (not equal) operator against a -// single un-parenthesized expression with or without quotes or against -// multiple parenthesized expressions. Examples: `fieldname eq unquoted -// literal` `fieldname eq 'single quoted literal'` `fieldname eq "double quoted -// literal" `(fieldname1 eq literal) (fieldname2 ne "literal")` The literal -// value is interpreted as a regular expression using Google RE2 library -// syntax. The literal value must match the entire field. For example, to -// filter for instances that do not end with name "instance", you would use -// `name ne .*instance`. You cannot combine constraints on multiple fields -// using regular expressions. -func (c *TargetTcpProxiesListCall) Filter(filter string) *TargetTcpProxiesListCall { - 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 *TargetTcpProxiesListCall) MaxResults(maxResults int64) *TargetTcpProxiesListCall { - 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 *TargetTcpProxiesListCall) OrderBy(orderBy string) *TargetTcpProxiesListCall { - 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 *TargetTcpProxiesListCall) PageToken(pageToken string) *TargetTcpProxiesListCall { - c.urlParams_.Set("pageToken", pageToken) - return c -} - -// ReturnPartialSuccess sets the optional parameter "returnPartialSuccess": -// Opt-in for partial success behavior which provides partial results in case -// of failure. The default value is false. For example, when partial success -// behavior is enabled, aggregatedList for a single zone scope either returns -// all resources in the zone or no resources, with an error code. -func (c *TargetTcpProxiesListCall) ReturnPartialSuccess(returnPartialSuccess bool) *TargetTcpProxiesListCall { - c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess)) + c.urlMap = urlMap return c } // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *TargetTcpProxiesListCall) Fields(s ...googleapi.Field) *TargetTcpProxiesListCall { +func (c *UrlMapsGetCall) Fields(s ...googleapi.Field) *UrlMapsGetCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } @@ -44472,54 +66535,54 @@ func (c *TargetTcpProxiesListCall) Fields(s ...googleapi.Field) *TargetTcpProxie // IfNoneMatch sets an 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. -func (c *TargetTcpProxiesListCall) IfNoneMatch(entityTag string) *TargetTcpProxiesListCall { +func (c *UrlMapsGetCall) IfNoneMatch(entityTag string) *UrlMapsGetCall { c.ifNoneMatch_ = entityTag return c } // Context sets the context to be used in this call's Do method. -func (c *TargetTcpProxiesListCall) Context(ctx context.Context) *TargetTcpProxiesListCall { +func (c *UrlMapsGetCall) Context(ctx context.Context) *UrlMapsGetCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *TargetTcpProxiesListCall) Header() http.Header { +func (c *UrlMapsGetCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *TargetTcpProxiesListCall) doRequest(alt string) (*http.Response, error) { +func (c *UrlMapsGetCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) if c.ifNoneMatch_ != "" { reqHeaders.Set("If-None-Match", c.ifNoneMatch_) } - var body io.Reader = nil c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/targetTcpProxies") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/urlMaps/{urlMap}") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("GET", urls, body) + req, err := http.NewRequest("GET", urls, nil) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ "project": c.project, + "urlMap": c.urlMap, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.urlMaps.get", "request", internallog.HTTPRequest(req, nil)) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.targetTcpProxies.list" call. +// Do executes the "compute.urlMaps.get" call. // Any non-2xx status code is an error. Response headers are in either -// *TargetTcpProxyList.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 *TargetTcpProxiesListCall) Do(opts ...googleapi.CallOption) (*TargetTcpProxyList, error) { +// *UrlMap.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 *UrlMapsGetCall) Do(opts ...googleapi.CallOption) (*UrlMap, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -44538,74 +66601,59 @@ func (c *TargetTcpProxiesListCall) Do(opts ...googleapi.CallOption) (*TargetTcpP if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } - ret := &TargetTcpProxyList{ + ret := &UrlMap{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.urlMaps.get", "response", internallog.HTTPResponse(res, b)) return ret, nil } -// 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 *TargetTcpProxiesListCall) Pages(ctx context.Context, f func(*TargetTcpProxyList) error) error { - c.ctx_ = ctx - defer c.PageToken(c.urlParams_.Get("pageToken")) - 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) - } -} - -type TargetTcpProxiesSetBackendServiceCall struct { - s *Service - project string - targetTcpProxy string - targettcpproxiessetbackendservicerequest *TargetTcpProxiesSetBackendServiceRequest - urlParams_ gensupport.URLParams - ctx_ context.Context - header_ http.Header +type UrlMapsInsertCall struct { + s *Service + project string + urlmap *UrlMap + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header } -// SetBackendService: Changes the BackendService for TargetTcpProxy. +// Insert: Creates a UrlMap resource in the specified project using +// the data included in the request. // -// - project: Project ID for this request. -// - targetTcpProxy: Name of the TargetTcpProxy resource whose BackendService -// resource is to be set. -func (r *TargetTcpProxiesService) SetBackendService(project string, targetTcpProxy string, targettcpproxiessetbackendservicerequest *TargetTcpProxiesSetBackendServiceRequest) *TargetTcpProxiesSetBackendServiceCall { - c := &TargetTcpProxiesSetBackendServiceCall{s: r.s, urlParams_: make(gensupport.URLParams)} +// - project: Project ID for this request. +func (r *UrlMapsService) Insert(project string, urlmap *UrlMap) *UrlMapsInsertCall { + c := &UrlMapsInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project - c.targetTcpProxy = targetTcpProxy - c.targettcpproxiessetbackendservicerequest = targettcpproxiessetbackendservicerequest + c.urlmap = urlmap 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 *TargetTcpProxiesSetBackendServiceCall) RequestId(requestId string) *TargetTcpProxiesSetBackendServiceCall { +// 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 *UrlMapsInsertCall) RequestId(requestId string) *UrlMapsInsertCall { c.urlParams_.Set("requestId", requestId) return c } @@ -44613,36 +66661,35 @@ func (c *TargetTcpProxiesSetBackendServiceCall) RequestId(requestId string) *Tar // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *TargetTcpProxiesSetBackendServiceCall) Fields(s ...googleapi.Field) *TargetTcpProxiesSetBackendServiceCall { +func (c *UrlMapsInsertCall) Fields(s ...googleapi.Field) *UrlMapsInsertCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } // Context sets the context to be used in this call's Do method. -func (c *TargetTcpProxiesSetBackendServiceCall) Context(ctx context.Context) *TargetTcpProxiesSetBackendServiceCall { +func (c *UrlMapsInsertCall) Context(ctx context.Context) *UrlMapsInsertCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *TargetTcpProxiesSetBackendServiceCall) Header() http.Header { +func (c *UrlMapsInsertCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *TargetTcpProxiesSetBackendServiceCall) doRequest(alt string) (*http.Response, error) { +func (c *UrlMapsInsertCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) - var body io.Reader = nil - body, err := googleapi.WithoutDataWrapper.JSONReader(c.targettcpproxiessetbackendservicerequest) + body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.urlmap) if err != nil { return nil, err } c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/targetTcpProxies/{targetTcpProxy}/setBackendService") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/urlMaps") urls += "?" + c.urlParams_.Encode() req, err := http.NewRequest("POST", urls, body) if err != nil { @@ -44650,18 +66697,18 @@ func (c *TargetTcpProxiesSetBackendServiceCall) doRequest(alt string) (*http.Res } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "targetTcpProxy": c.targetTcpProxy, + "project": c.project, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.urlMaps.insert", "request", internallog.HTTPRequest(req, body.Bytes())) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.targetTcpProxies.setBackendService" call. +// Do executes the "compute.urlMaps.insert" call. // 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 *TargetTcpProxiesSetBackendServiceCall) Do(opts ...googleapi.CallOption) (*Operation, error) { +func (c *UrlMapsInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -44687,46 +66734,59 @@ func (c *TargetTcpProxiesSetBackendServiceCall) Do(opts ...googleapi.CallOption) }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.urlMaps.insert", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type TargetTcpProxiesSetProxyHeaderCall struct { - s *Service - project string - targetTcpProxy string - targettcpproxiessetproxyheaderrequest *TargetTcpProxiesSetProxyHeaderRequest - urlParams_ gensupport.URLParams - ctx_ context.Context - header_ http.Header +type UrlMapsInvalidateCacheCall struct { + s *Service + project string + urlMap string + cacheinvalidationrule *CacheInvalidationRule + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header } -// SetProxyHeader: Changes the ProxyHeaderType for TargetTcpProxy. +// InvalidateCache: Initiates a cache invalidation operation, invalidating the +// specified path, +// scoped to the specified UrlMap. // -// - project: Project ID for this request. -// - targetTcpProxy: Name of the TargetTcpProxy resource whose ProxyHeader is -// to be set. -func (r *TargetTcpProxiesService) SetProxyHeader(project string, targetTcpProxy string, targettcpproxiessetproxyheaderrequest *TargetTcpProxiesSetProxyHeaderRequest) *TargetTcpProxiesSetProxyHeaderCall { - c := &TargetTcpProxiesSetProxyHeaderCall{s: r.s, urlParams_: make(gensupport.URLParams)} +// For more information, see Invalidating cached +// content (/cdn/docs/invalidating-cached-content). +// +// - project: Project ID for this request. +// - urlMap: Name of the UrlMap scoping this request. +func (r *UrlMapsService) InvalidateCache(project string, urlMap string, cacheinvalidationrule *CacheInvalidationRule) *UrlMapsInvalidateCacheCall { + c := &UrlMapsInvalidateCacheCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project - c.targetTcpProxy = targetTcpProxy - c.targettcpproxiessetproxyheaderrequest = targettcpproxiessetproxyheaderrequest + c.urlMap = urlMap + c.cacheinvalidationrule = cacheinvalidationrule 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 *TargetTcpProxiesSetProxyHeaderCall) RequestId(requestId string) *TargetTcpProxiesSetProxyHeaderCall { +// 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 *UrlMapsInvalidateCacheCall) RequestId(requestId string) *UrlMapsInvalidateCacheCall { c.urlParams_.Set("requestId", requestId) return c } @@ -44734,36 +66794,35 @@ func (c *TargetTcpProxiesSetProxyHeaderCall) RequestId(requestId string) *Target // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *TargetTcpProxiesSetProxyHeaderCall) Fields(s ...googleapi.Field) *TargetTcpProxiesSetProxyHeaderCall { +func (c *UrlMapsInvalidateCacheCall) Fields(s ...googleapi.Field) *UrlMapsInvalidateCacheCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } // Context sets the context to be used in this call's Do method. -func (c *TargetTcpProxiesSetProxyHeaderCall) Context(ctx context.Context) *TargetTcpProxiesSetProxyHeaderCall { +func (c *UrlMapsInvalidateCacheCall) Context(ctx context.Context) *UrlMapsInvalidateCacheCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *TargetTcpProxiesSetProxyHeaderCall) Header() http.Header { +func (c *UrlMapsInvalidateCacheCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *TargetTcpProxiesSetProxyHeaderCall) doRequest(alt string) (*http.Response, error) { +func (c *UrlMapsInvalidateCacheCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) - var body io.Reader = nil - body, err := googleapi.WithoutDataWrapper.JSONReader(c.targettcpproxiessetproxyheaderrequest) + body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.cacheinvalidationrule) if err != nil { return nil, err } c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/targetTcpProxies/{targetTcpProxy}/setProxyHeader") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/urlMaps/{urlMap}/invalidateCache") urls += "?" + c.urlParams_.Encode() req, err := http.NewRequest("POST", urls, body) if err != nil { @@ -44771,18 +66830,19 @@ func (c *TargetTcpProxiesSetProxyHeaderCall) doRequest(alt string) (*http.Respon } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "targetTcpProxy": c.targetTcpProxy, + "project": c.project, + "urlMap": c.urlMap, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.urlMaps.invalidateCache", "request", internallog.HTTPRequest(req, body.Bytes())) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.targetTcpProxies.setProxyHeader" call. +// Do executes the "compute.urlMaps.invalidateCache" call. // 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 *TargetTcpProxiesSetProxyHeaderCall) Do(opts ...googleapi.CallOption) (*Operation, error) { +func (c *UrlMapsInvalidateCacheCall) Do(opts ...googleapi.CallOption) (*Operation, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -44808,13 +66868,15 @@ func (c *TargetTcpProxiesSetProxyHeaderCall) Do(opts ...googleapi.CallOption) (* }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.urlMaps.invalidateCache", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type TargetVpnGatewaysAggregatedListCall struct { +type UrlMapsListCall struct { s *Service project string urlParams_ gensupport.URLParams @@ -44823,120 +66885,149 @@ type TargetVpnGatewaysAggregatedListCall struct { header_ http.Header } -// AggregatedList: Retrieves an aggregated list of target VPN gateways. To -// prevent failure, Google recommends that you set the `returnPartialSuccess` -// parameter to `true`. +// List: Retrieves the list of UrlMap resources available to the +// specified +// project. // // - project: Project ID for this request. -func (r *TargetVpnGatewaysService) AggregatedList(project string) *TargetVpnGatewaysAggregatedListCall { - c := &TargetVpnGatewaysAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)} +func (r *UrlMapsService) List(project string) *UrlMapsListCall { + c := &UrlMapsListCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project return c } // Filter sets the optional parameter "filter": A filter expression that -// filters resources listed in the response. Most Compute resources support two -// types of filter expressions: expressions that support regular expressions -// and expressions that follow API improvement proposal AIP-160. These two -// types of filter expressions cannot be mixed in one request. If you want to -// use AIP-160, your expression must specify the field name, an operator, and -// the value that you want to use for filtering. The value must be a string, a -// number, or a boolean. The 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`. The `:*` comparison can be used to test whether a key has -// been defined. For example, to find all objects with `owner` label use: ``` -// labels.owner:* ``` 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) ``` If you want to use a regular -// expression, use the `eq` (equal) or `ne` (not equal) operator against a -// single un-parenthesized expression with or without quotes or against -// multiple parenthesized expressions. Examples: `fieldname eq unquoted -// literal` `fieldname eq 'single quoted literal'` `fieldname eq "double quoted -// literal" `(fieldname1 eq literal) (fieldname2 ne "literal")` The literal -// value is interpreted as a regular expression using Google RE2 library -// syntax. The literal value must match the entire field. For example, to -// filter for instances that do not end with name "instance", you would use -// `name ne .*instance`. You cannot combine constraints on multiple fields -// using regular expressions. -func (c *TargetVpnGatewaysAggregatedListCall) Filter(filter string) *TargetVpnGatewaysAggregatedListCall { +// filters resources listed in the response. Most +// Compute resources support two types of filter expressions: +// expressions that support regular expressions and expressions that follow +// API improvement proposal AIP-160. +// These two types of filter expressions cannot be mixed in one request. +// +// If you want to use AIP-160, your expression must specify the field name, +// an +// operator, and the value that you want to use for filtering. The value +// must be a string, a number, or a boolean. The 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`. +// +// The `:*` comparison can be used to test whether a key has been defined. +// For example, to find all objects with `owner` label +// use: +// ``` +// labels.owner:* +// ``` +// +// 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 onresource 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) +// ``` +// +// If you want to use a regular expression, use the `eq` (equal) or `ne` +// (not equal) operator against a single un-parenthesized expression with +// or +// without quotes or against multiple parenthesized expressions. +// Examples: +// +// `fieldname eq unquoted literal` +// `fieldname eq 'single quoted literal'` +// `fieldname eq "double quoted literal" +// `(fieldname1 eq literal) (fieldname2 ne "literal")` +// +// The literal value is interpreted as a regular expression using GoogleRE2 +// library syntax. +// The literal value must match the entire field. +// +// For example, to filter for instances that do not end with name +// "instance", +// you would use `name ne .*instance`. +// +// You cannot combine constraints on multiple fields using regular +// expressions. +func (c *UrlMapsListCall) Filter(filter string) *UrlMapsListCall { c.urlParams_.Set("filter", filter) return c } -// IncludeAllScopes sets the optional parameter "includeAllScopes": Indicates -// whether every visible scope for each scope type (zone, region, global) -// should be included in the response. For new resource types added after this -// field, the flag has no effect as new resource types will always include -// every visible scope for each scope type in response. For resource types -// which predate this field, if this flag is omitted or false, only scopes of -// the scope types where the resource type is expected to be found will be -// included. -func (c *TargetVpnGatewaysAggregatedListCall) IncludeAllScopes(includeAllScopes bool) *TargetVpnGatewaysAggregatedListCall { - c.urlParams_.Set("includeAllScopes", fmt.Sprint(includeAllScopes)) - 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 *TargetVpnGatewaysAggregatedListCall) MaxResults(maxResults int64) *TargetVpnGatewaysAggregatedListCall { +// 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 *UrlMapsListCall) MaxResults(maxResults int64) *UrlMapsListCall { 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 *TargetVpnGatewaysAggregatedListCall) OrderBy(orderBy string) *TargetVpnGatewaysAggregatedListCall { +// 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 *UrlMapsListCall) OrderBy(orderBy string) *UrlMapsListCall { 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 *TargetVpnGatewaysAggregatedListCall) PageToken(pageToken string) *TargetVpnGatewaysAggregatedListCall { +// use. Set `pageToken` to the +// `nextPageToken` returned by a previous list request to get +// the next page of results. +func (c *UrlMapsListCall) PageToken(pageToken string) *UrlMapsListCall { c.urlParams_.Set("pageToken", pageToken) return c } // ReturnPartialSuccess sets the optional parameter "returnPartialSuccess": -// Opt-in for partial success behavior which provides partial results in case -// of failure. The default value is false. For example, when partial success -// behavior is enabled, aggregatedList for a single zone scope either returns -// all resources in the zone or no resources, with an error code. -func (c *TargetVpnGatewaysAggregatedListCall) ReturnPartialSuccess(returnPartialSuccess bool) *TargetVpnGatewaysAggregatedListCall { +// Opt-in for partial success behavior which provides partial results in +// case +// of failure. The default value is false. +// +// For example, when partial success behavior is enabled, aggregatedList for +// a +// single zone scope either returns all resources in the zone or no +// resources, +// with an error code. +func (c *UrlMapsListCall) ReturnPartialSuccess(returnPartialSuccess bool) *UrlMapsListCall { c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess)) return c } -// ServiceProjectNumber sets the optional parameter "serviceProjectNumber": The -// Shared VPC service project id or service project number for which aggregated -// list request is invoked for subnetworks list-usable api. -func (c *TargetVpnGatewaysAggregatedListCall) ServiceProjectNumber(serviceProjectNumber int64) *TargetVpnGatewaysAggregatedListCall { - c.urlParams_.Set("serviceProjectNumber", fmt.Sprint(serviceProjectNumber)) - return c -} - // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *TargetVpnGatewaysAggregatedListCall) Fields(s ...googleapi.Field) *TargetVpnGatewaysAggregatedListCall { +func (c *UrlMapsListCall) Fields(s ...googleapi.Field) *UrlMapsListCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } @@ -44944,37 +67035,36 @@ func (c *TargetVpnGatewaysAggregatedListCall) Fields(s ...googleapi.Field) *Targ // IfNoneMatch sets an 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. -func (c *TargetVpnGatewaysAggregatedListCall) IfNoneMatch(entityTag string) *TargetVpnGatewaysAggregatedListCall { +func (c *UrlMapsListCall) IfNoneMatch(entityTag string) *UrlMapsListCall { c.ifNoneMatch_ = entityTag return c } // Context sets the context to be used in this call's Do method. -func (c *TargetVpnGatewaysAggregatedListCall) Context(ctx context.Context) *TargetVpnGatewaysAggregatedListCall { +func (c *UrlMapsListCall) Context(ctx context.Context) *UrlMapsListCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *TargetVpnGatewaysAggregatedListCall) Header() http.Header { +func (c *UrlMapsListCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *TargetVpnGatewaysAggregatedListCall) doRequest(alt string) (*http.Response, error) { +func (c *UrlMapsListCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) if c.ifNoneMatch_ != "" { reqHeaders.Set("If-None-Match", c.ifNoneMatch_) } - var body io.Reader = nil c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/aggregated/targetVpnGateways") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/urlMaps") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("GET", urls, body) + req, err := http.NewRequest("GET", urls, nil) if err != nil { return nil, err } @@ -44982,16 +67072,16 @@ func (c *TargetVpnGatewaysAggregatedListCall) doRequest(alt string) (*http.Respo googleapi.Expand(req.URL, map[string]string{ "project": c.project, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.urlMaps.list", "request", internallog.HTTPRequest(req, nil)) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.targetVpnGateways.aggregatedList" call. +// Do executes the "compute.urlMaps.list" call. // Any non-2xx status code is an error. Response headers are in either -// *TargetVpnGatewayAggregatedList.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 *TargetVpnGatewaysAggregatedListCall) Do(opts ...googleapi.CallOption) (*TargetVpnGatewayAggregatedList, error) { +// *UrlMapList.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 *UrlMapsListCall) Do(opts ...googleapi.CallOption) (*UrlMapList, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -45010,23 +67100,25 @@ func (c *TargetVpnGatewaysAggregatedListCall) Do(opts ...googleapi.CallOption) ( if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } - ret := &TargetVpnGatewayAggregatedList{ + ret := &UrlMapList{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.urlMaps.list", "response", internallog.HTTPResponse(res, b)) return ret, nil } // 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 *TargetVpnGatewaysAggregatedListCall) Pages(ctx context.Context, f func(*TargetVpnGatewayAggregatedList) error) error { +func (c *UrlMapsListCall) Pages(ctx context.Context, f func(*UrlMapList) error) error { c.ctx_ = ctx defer c.PageToken(c.urlParams_.Get("pageToken")) for { @@ -45044,40 +67136,50 @@ func (c *TargetVpnGatewaysAggregatedListCall) Pages(ctx context.Context, f func( } } -type TargetVpnGatewaysDeleteCall struct { - s *Service - project string - region string - targetVpnGateway string - urlParams_ gensupport.URLParams - ctx_ context.Context - header_ http.Header +type UrlMapsPatchCall struct { + s *Service + project string + urlMap string + urlmap *UrlMap + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header } -// Delete: Deletes the specified target VPN gateway. +// Patch: Patches the specified UrlMap resource with the data included in +// the +// request. This method supportsPATCH +// semantics and uses theJSON merge +// patch format and processing rules. // // - project: Project ID for this request. -// - region: Name of the region for this request. -// - targetVpnGateway: Name of the target VPN gateway to delete. -func (r *TargetVpnGatewaysService) Delete(project string, region string, targetVpnGateway string) *TargetVpnGatewaysDeleteCall { - c := &TargetVpnGatewaysDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)} +// - urlMap: Name of the UrlMap resource to patch. +func (r *UrlMapsService) Patch(project string, urlMap string, urlmap *UrlMap) *UrlMapsPatchCall { + c := &UrlMapsPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project - c.region = region - c.targetVpnGateway = targetVpnGateway + c.urlMap = urlMap + c.urlmap = urlmap 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 *TargetVpnGatewaysDeleteCall) RequestId(requestId string) *TargetVpnGatewaysDeleteCall { +// 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 *UrlMapsPatchCall) RequestId(requestId string) *UrlMapsPatchCall { c.urlParams_.Set("requestId", requestId) return c } @@ -45085,52 +67187,55 @@ func (c *TargetVpnGatewaysDeleteCall) RequestId(requestId string) *TargetVpnGate // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *TargetVpnGatewaysDeleteCall) Fields(s ...googleapi.Field) *TargetVpnGatewaysDeleteCall { +func (c *UrlMapsPatchCall) Fields(s ...googleapi.Field) *UrlMapsPatchCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } // Context sets the context to be used in this call's Do method. -func (c *TargetVpnGatewaysDeleteCall) Context(ctx context.Context) *TargetVpnGatewaysDeleteCall { +func (c *UrlMapsPatchCall) Context(ctx context.Context) *UrlMapsPatchCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *TargetVpnGatewaysDeleteCall) Header() http.Header { +func (c *UrlMapsPatchCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *TargetVpnGatewaysDeleteCall) doRequest(alt string) (*http.Response, error) { - reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) - var body io.Reader = nil +func (c *UrlMapsPatchCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) + body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.urlmap) + if err != nil { + return nil, err + } c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/targetVpnGateways/{targetVpnGateway}") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/urlMaps/{urlMap}") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("DELETE", urls, body) + req, err := http.NewRequest("PATCH", urls, body) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "region": c.region, - "targetVpnGateway": c.targetVpnGateway, + "project": c.project, + "urlMap": c.urlMap, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.urlMaps.patch", "request", internallog.HTTPRequest(req, body.Bytes())) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.targetVpnGateways.delete" call. +// Do executes the "compute.urlMaps.patch" call. // 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 *TargetVpnGatewaysDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) { +func (c *UrlMapsPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -45156,97 +67261,90 @@ func (c *TargetVpnGatewaysDeleteCall) Do(opts ...googleapi.CallOption) (*Operati }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.urlMaps.patch", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type TargetVpnGatewaysGetCall struct { - s *Service - project string - region string - targetVpnGateway string - urlParams_ gensupport.URLParams - ifNoneMatch_ string - ctx_ context.Context - header_ http.Header +type UrlMapsTestIamPermissionsCall struct { + s *Service + project string + resource string + testpermissionsrequest *TestPermissionsRequest + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header } -// Get: Returns the specified target VPN gateway. +// TestIamPermissions: Returns permissions that a caller has on the specified +// resource. // // - project: Project ID for this request. -// - region: Name of the region for this request. -// - targetVpnGateway: Name of the target VPN gateway to return. -func (r *TargetVpnGatewaysService) Get(project string, region string, targetVpnGateway string) *TargetVpnGatewaysGetCall { - c := &TargetVpnGatewaysGetCall{s: r.s, urlParams_: make(gensupport.URLParams)} +// - resource: Name or id of the resource for this request. +func (r *UrlMapsService) TestIamPermissions(project string, resource string, testpermissionsrequest *TestPermissionsRequest) *UrlMapsTestIamPermissionsCall { + c := &UrlMapsTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project - c.region = region - c.targetVpnGateway = targetVpnGateway + c.resource = resource + c.testpermissionsrequest = testpermissionsrequest return c } // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *TargetVpnGatewaysGetCall) Fields(s ...googleapi.Field) *TargetVpnGatewaysGetCall { +func (c *UrlMapsTestIamPermissionsCall) Fields(s ...googleapi.Field) *UrlMapsTestIamPermissionsCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } -// IfNoneMatch sets an 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. -func (c *TargetVpnGatewaysGetCall) IfNoneMatch(entityTag string) *TargetVpnGatewaysGetCall { - c.ifNoneMatch_ = entityTag - return c -} - // Context sets the context to be used in this call's Do method. -func (c *TargetVpnGatewaysGetCall) Context(ctx context.Context) *TargetVpnGatewaysGetCall { +func (c *UrlMapsTestIamPermissionsCall) Context(ctx context.Context) *UrlMapsTestIamPermissionsCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *TargetVpnGatewaysGetCall) Header() http.Header { +func (c *UrlMapsTestIamPermissionsCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *TargetVpnGatewaysGetCall) doRequest(alt string) (*http.Response, error) { - reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) - if c.ifNoneMatch_ != "" { - reqHeaders.Set("If-None-Match", c.ifNoneMatch_) +func (c *UrlMapsTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) + body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.testpermissionsrequest) + if err != nil { + return nil, err } - var body io.Reader = nil c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/targetVpnGateways/{targetVpnGateway}") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/urlMaps/{resource}/testIamPermissions") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("GET", urls, body) + req, err := http.NewRequest("POST", urls, body) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "region": c.region, - "targetVpnGateway": c.targetVpnGateway, + "project": c.project, + "resource": c.resource, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.urlMaps.testIamPermissions", "request", internallog.HTTPRequest(req, body.Bytes())) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.targetVpnGateways.get" call. +// Do executes the "compute.urlMaps.testIamPermissions" call. // Any non-2xx status code is an error. Response headers are in either -// *TargetVpnGateway.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 *TargetVpnGatewaysGetCall) Do(opts ...googleapi.CallOption) (*TargetVpnGateway, error) { +// *TestPermissionsResponse.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 *UrlMapsTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -45265,53 +67363,63 @@ func (c *TargetVpnGatewaysGetCall) Do(opts ...googleapi.CallOption) (*TargetVpnG if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } - ret := &TargetVpnGateway{ + ret := &TestPermissionsResponse{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.urlMaps.testIamPermissions", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type TargetVpnGatewaysInsertCall struct { - s *Service - project string - region string - targetvpngateway *TargetVpnGateway - urlParams_ gensupport.URLParams - ctx_ context.Context - header_ http.Header +type UrlMapsUpdateCall struct { + s *Service + project string + urlMap string + urlmap *UrlMap + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header } -// Insert: Creates a target VPN gateway in the specified project and region -// using the data included in the request. +// Update: Updates the specified UrlMap resource with the data included in +// the +// request. // // - project: Project ID for this request. -// - region: Name of the region for this request. -func (r *TargetVpnGatewaysService) Insert(project string, region string, targetvpngateway *TargetVpnGateway) *TargetVpnGatewaysInsertCall { - c := &TargetVpnGatewaysInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)} +// - urlMap: Name of the UrlMap resource to update. +func (r *UrlMapsService) Update(project string, urlMap string, urlmap *UrlMap) *UrlMapsUpdateCall { + c := &UrlMapsUpdateCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project - c.region = region - c.targetvpngateway = targetvpngateway + c.urlMap = urlMap + c.urlmap = urlmap 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 *TargetVpnGatewaysInsertCall) RequestId(requestId string) *TargetVpnGatewaysInsertCall { +// 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 *UrlMapsUpdateCall) RequestId(requestId string) *UrlMapsUpdateCall { c.urlParams_.Set("requestId", requestId) return c } @@ -45319,55 +67427,55 @@ func (c *TargetVpnGatewaysInsertCall) RequestId(requestId string) *TargetVpnGate // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *TargetVpnGatewaysInsertCall) Fields(s ...googleapi.Field) *TargetVpnGatewaysInsertCall { +func (c *UrlMapsUpdateCall) Fields(s ...googleapi.Field) *UrlMapsUpdateCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } // Context sets the context to be used in this call's Do method. -func (c *TargetVpnGatewaysInsertCall) Context(ctx context.Context) *TargetVpnGatewaysInsertCall { +func (c *UrlMapsUpdateCall) Context(ctx context.Context) *UrlMapsUpdateCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *TargetVpnGatewaysInsertCall) Header() http.Header { +func (c *UrlMapsUpdateCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *TargetVpnGatewaysInsertCall) doRequest(alt string) (*http.Response, error) { +func (c *UrlMapsUpdateCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) - var body io.Reader = nil - body, err := googleapi.WithoutDataWrapper.JSONReader(c.targetvpngateway) + body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.urlmap) if err != nil { return nil, err } c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/targetVpnGateways") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/urlMaps/{urlMap}") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("POST", urls, body) + req, err := http.NewRequest("PUT", urls, body) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ "project": c.project, - "region": c.region, + "urlMap": c.urlMap, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.urlMaps.update", "request", internallog.HTTPRequest(req, body.Bytes())) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.targetVpnGateways.insert" call. +// Do executes the "compute.urlMaps.update" call. // 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 *TargetVpnGatewaysInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) { +func (c *UrlMapsUpdateCall) Do(opts ...googleapi.CallOption) (*Operation, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -45393,298 +67501,71 @@ func (c *TargetVpnGatewaysInsertCall) Do(opts ...googleapi.CallOption) (*Operati }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { - return nil, err - } - return ret, nil -} - -type TargetVpnGatewaysListCall struct { - s *Service - project string - region string - urlParams_ gensupport.URLParams - ifNoneMatch_ string - ctx_ context.Context - header_ http.Header -} - -// List: Retrieves a list of target VPN gateways available to the specified -// project and region. -// -// - project: Project ID for this request. -// - region: Name of the region for this request. -func (r *TargetVpnGatewaysService) List(project string, region string) *TargetVpnGatewaysListCall { - c := &TargetVpnGatewaysListCall{s: r.s, urlParams_: make(gensupport.URLParams)} - c.project = project - c.region = region - return c -} - -// Filter sets the optional parameter "filter": A filter expression that -// filters resources listed in the response. Most Compute resources support two -// types of filter expressions: expressions that support regular expressions -// and expressions that follow API improvement proposal AIP-160. These two -// types of filter expressions cannot be mixed in one request. If you want to -// use AIP-160, your expression must specify the field name, an operator, and -// the value that you want to use for filtering. The value must be a string, a -// number, or a boolean. The 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`. The `:*` comparison can be used to test whether a key has -// been defined. For example, to find all objects with `owner` label use: ``` -// labels.owner:* ``` 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) ``` If you want to use a regular -// expression, use the `eq` (equal) or `ne` (not equal) operator against a -// single un-parenthesized expression with or without quotes or against -// multiple parenthesized expressions. Examples: `fieldname eq unquoted -// literal` `fieldname eq 'single quoted literal'` `fieldname eq "double quoted -// literal" `(fieldname1 eq literal) (fieldname2 ne "literal")` The literal -// value is interpreted as a regular expression using Google RE2 library -// syntax. The literal value must match the entire field. For example, to -// filter for instances that do not end with name "instance", you would use -// `name ne .*instance`. You cannot combine constraints on multiple fields -// using regular expressions. -func (c *TargetVpnGatewaysListCall) Filter(filter string) *TargetVpnGatewaysListCall { - 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 *TargetVpnGatewaysListCall) MaxResults(maxResults int64) *TargetVpnGatewaysListCall { - 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 *TargetVpnGatewaysListCall) OrderBy(orderBy string) *TargetVpnGatewaysListCall { - 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 *TargetVpnGatewaysListCall) PageToken(pageToken string) *TargetVpnGatewaysListCall { - c.urlParams_.Set("pageToken", pageToken) - return c -} - -// ReturnPartialSuccess sets the optional parameter "returnPartialSuccess": -// Opt-in for partial success behavior which provides partial results in case -// of failure. The default value is false. For example, when partial success -// behavior is enabled, aggregatedList for a single zone scope either returns -// all resources in the zone or no resources, with an error code. -func (c *TargetVpnGatewaysListCall) ReturnPartialSuccess(returnPartialSuccess bool) *TargetVpnGatewaysListCall { - c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess)) - return c -} - -// Fields allows partial responses to be retrieved. See -// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more -// details. -func (c *TargetVpnGatewaysListCall) Fields(s ...googleapi.Field) *TargetVpnGatewaysListCall { - c.urlParams_.Set("fields", googleapi.CombineFields(s)) - return c -} - -// IfNoneMatch sets an 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. -func (c *TargetVpnGatewaysListCall) IfNoneMatch(entityTag string) *TargetVpnGatewaysListCall { - c.ifNoneMatch_ = entityTag - return c -} - -// Context sets the context to be used in this call's Do method. -func (c *TargetVpnGatewaysListCall) Context(ctx context.Context) *TargetVpnGatewaysListCall { - c.ctx_ = ctx - return c -} - -// Header returns a http.Header that can be modified by the caller to add -// headers to the request. -func (c *TargetVpnGatewaysListCall) Header() http.Header { - if c.header_ == nil { - c.header_ = make(http.Header) - } - return c.header_ -} - -func (c *TargetVpnGatewaysListCall) doRequest(alt string) (*http.Response, error) { - reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) - if c.ifNoneMatch_ != "" { - reqHeaders.Set("If-None-Match", c.ifNoneMatch_) - } - var body io.Reader = nil - c.urlParams_.Set("alt", alt) - c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/targetVpnGateways") - urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("GET", urls, body) - if err != nil { - return nil, err - } - req.Header = reqHeaders - googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "region": c.region, - }) - return gensupport.SendRequest(c.ctx_, c.s.client, req) -} - -// Do executes the "compute.targetVpnGateways.list" call. -// Any non-2xx status code is an error. Response headers are in either -// *TargetVpnGatewayList.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 *TargetVpnGatewaysListCall) Do(opts ...googleapi.CallOption) (*TargetVpnGatewayList, 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, gensupport.WrapError(&googleapi.Error{ - Code: res.StatusCode, - Header: res.Header, - }) - } + b, err := gensupport.DecodeResponseBytes(target, res) if err != nil { return nil, err } - defer googleapi.CloseBody(res) - if err := googleapi.CheckResponse(res); err != nil { - return nil, gensupport.WrapError(err) - } - ret := &TargetVpnGatewayList{ - ServerResponse: googleapi.ServerResponse{ - Header: res.Header, - HTTPStatusCode: res.StatusCode, - }, - } - target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { - return nil, err - } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.urlMaps.update", "response", internallog.HTTPResponse(res, b)) return ret, nil } -// 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 *TargetVpnGatewaysListCall) Pages(ctx context.Context, f func(*TargetVpnGatewayList) error) error { - c.ctx_ = ctx - defer c.PageToken(c.urlParams_.Get("pageToken")) - 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) - } -} - -type TargetVpnGatewaysSetLabelsCall struct { +type UrlMapsValidateCall struct { s *Service project string - region string - resource string - regionsetlabelsrequest *RegionSetLabelsRequest + urlMap string + urlmapsvalidaterequest *UrlMapsValidateRequest urlParams_ gensupport.URLParams ctx_ context.Context header_ http.Header } -// SetLabels: Sets the labels on a TargetVpnGateway. To learn more about -// labels, read the Labeling Resources documentation. +// Validate: Runs static validation for the UrlMap. In particular, the tests of +// the +// provided UrlMap will be run. Calling this method does NOT create the +// UrlMap. // // - project: Project ID for this request. -// - region: The region for this request. -// - resource: Name or id of the resource for this request. -func (r *TargetVpnGatewaysService) SetLabels(project string, region string, resource string, regionsetlabelsrequest *RegionSetLabelsRequest) *TargetVpnGatewaysSetLabelsCall { - c := &TargetVpnGatewaysSetLabelsCall{s: r.s, urlParams_: make(gensupport.URLParams)} +// - urlMap: Name of the UrlMap resource to be validated as. +func (r *UrlMapsService) Validate(project string, urlMap string, urlmapsvalidaterequest *UrlMapsValidateRequest) *UrlMapsValidateCall { + c := &UrlMapsValidateCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project - c.region = region - c.resource = resource - c.regionsetlabelsrequest = regionsetlabelsrequest - 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 *TargetVpnGatewaysSetLabelsCall) RequestId(requestId string) *TargetVpnGatewaysSetLabelsCall { - c.urlParams_.Set("requestId", requestId) + c.urlMap = urlMap + c.urlmapsvalidaterequest = urlmapsvalidaterequest return c } // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *TargetVpnGatewaysSetLabelsCall) Fields(s ...googleapi.Field) *TargetVpnGatewaysSetLabelsCall { +func (c *UrlMapsValidateCall) Fields(s ...googleapi.Field) *UrlMapsValidateCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } // Context sets the context to be used in this call's Do method. -func (c *TargetVpnGatewaysSetLabelsCall) Context(ctx context.Context) *TargetVpnGatewaysSetLabelsCall { +func (c *UrlMapsValidateCall) Context(ctx context.Context) *UrlMapsValidateCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *TargetVpnGatewaysSetLabelsCall) Header() http.Header { +func (c *UrlMapsValidateCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *TargetVpnGatewaysSetLabelsCall) doRequest(alt string) (*http.Response, error) { +func (c *UrlMapsValidateCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) - var body io.Reader = nil - body, err := googleapi.WithoutDataWrapper.JSONReader(c.regionsetlabelsrequest) + body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.urlmapsvalidaterequest) if err != nil { return nil, err } c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/targetVpnGateways/{resource}/setLabels") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/urlMaps/{urlMap}/validate") urls += "?" + c.urlParams_.Encode() req, err := http.NewRequest("POST", urls, body) if err != nil { @@ -45692,19 +67573,20 @@ func (c *TargetVpnGatewaysSetLabelsCall) doRequest(alt string) (*http.Response, } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "region": c.region, - "resource": c.resource, + "project": c.project, + "urlMap": c.urlMap, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.urlMaps.validate", "request", internallog.HTTPRequest(req, body.Bytes())) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.targetVpnGateways.setLabels" call. +// Do executes the "compute.urlMaps.validate" call. // 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 *TargetVpnGatewaysSetLabelsCall) Do(opts ...googleapi.CallOption) (*Operation, error) { +// *UrlMapsValidateResponse.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 *UrlMapsValidateCall) Do(opts ...googleapi.CallOption) (*UrlMapsValidateResponse, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -45723,20 +67605,22 @@ func (c *TargetVpnGatewaysSetLabelsCall) Do(opts ...googleapi.CallOption) (*Oper if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } - ret := &Operation{ + ret := &UrlMapsValidateResponse{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.urlMaps.validate", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type UrlMapsAggregatedListCall struct { +type VpnGatewaysAggregatedListCall struct { s *Service project string urlParams_ gensupport.URLParams @@ -45745,112 +67629,169 @@ type UrlMapsAggregatedListCall struct { header_ http.Header } -// AggregatedList: Retrieves the list of all UrlMap resources, regional and -// global, available to the specified project. To prevent failure, Google -// recommends that you set the `returnPartialSuccess` parameter to `true`. +// AggregatedList: Retrieves an aggregated list of VPN gateways. // -// - project: Name of the project scoping this request. -func (r *UrlMapsService) AggregatedList(project string) *UrlMapsAggregatedListCall { - c := &UrlMapsAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)} +// To prevent failure, Google recommends that you set +// the +// `returnPartialSuccess` parameter to `true`. +// +// - project: Project ID for this request. +func (r *VpnGatewaysService) AggregatedList(project string) *VpnGatewaysAggregatedListCall { + c := &VpnGatewaysAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project return c } // Filter sets the optional parameter "filter": A filter expression that -// filters resources listed in the response. Most Compute resources support two -// types of filter expressions: expressions that support regular expressions -// and expressions that follow API improvement proposal AIP-160. These two -// types of filter expressions cannot be mixed in one request. If you want to -// use AIP-160, your expression must specify the field name, an operator, and -// the value that you want to use for filtering. The value must be a string, a -// number, or a boolean. The 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`. The `:*` comparison can be used to test whether a key has -// been defined. For example, to find all objects with `owner` label use: ``` -// labels.owner:* ``` 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) ``` If you want to use a regular -// expression, use the `eq` (equal) or `ne` (not equal) operator against a -// single un-parenthesized expression with or without quotes or against -// multiple parenthesized expressions. Examples: `fieldname eq unquoted -// literal` `fieldname eq 'single quoted literal'` `fieldname eq "double quoted -// literal" `(fieldname1 eq literal) (fieldname2 ne "literal")` The literal -// value is interpreted as a regular expression using Google RE2 library -// syntax. The literal value must match the entire field. For example, to -// filter for instances that do not end with name "instance", you would use -// `name ne .*instance`. You cannot combine constraints on multiple fields -// using regular expressions. -func (c *UrlMapsAggregatedListCall) Filter(filter string) *UrlMapsAggregatedListCall { +// filters resources listed in the response. Most +// Compute resources support two types of filter expressions: +// expressions that support regular expressions and expressions that follow +// API improvement proposal AIP-160. +// These two types of filter expressions cannot be mixed in one request. +// +// If you want to use AIP-160, your expression must specify the field name, +// an +// operator, and the value that you want to use for filtering. The value +// must be a string, a number, or a boolean. The 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`. +// +// The `:*` comparison can be used to test whether a key has been defined. +// For example, to find all objects with `owner` label +// use: +// ``` +// labels.owner:* +// ``` +// +// 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 onresource 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) +// ``` +// +// If you want to use a regular expression, use the `eq` (equal) or `ne` +// (not equal) operator against a single un-parenthesized expression with +// or +// without quotes or against multiple parenthesized expressions. +// Examples: +// +// `fieldname eq unquoted literal` +// `fieldname eq 'single quoted literal'` +// `fieldname eq "double quoted literal" +// `(fieldname1 eq literal) (fieldname2 ne "literal")` +// +// The literal value is interpreted as a regular expression using GoogleRE2 +// library syntax. +// The literal value must match the entire field. +// +// For example, to filter for instances that do not end with name +// "instance", +// you would use `name ne .*instance`. +// +// You cannot combine constraints on multiple fields using regular +// expressions. +func (c *VpnGatewaysAggregatedListCall) Filter(filter string) *VpnGatewaysAggregatedListCall { c.urlParams_.Set("filter", filter) return c } // IncludeAllScopes sets the optional parameter "includeAllScopes": Indicates -// whether every visible scope for each scope type (zone, region, global) -// should be included in the response. For new resource types added after this -// field, the flag has no effect as new resource types will always include -// every visible scope for each scope type in response. For resource types -// which predate this field, if this flag is omitted or false, only scopes of -// the scope types where the resource type is expected to be found will be -// included. -func (c *UrlMapsAggregatedListCall) IncludeAllScopes(includeAllScopes bool) *UrlMapsAggregatedListCall { +// whether every visible scope for each scope type (zone, region, +// global) should be included in the response. For new resource types +// added +// after this field, the flag has no effect as new resource types will +// always +// include every visible scope for each scope type in response. For +// resource +// types which predate this field, if this flag is omitted or false, +// only +// scopes of the scope types where the resource type is expected to be +// found +// will be included. +func (c *VpnGatewaysAggregatedListCall) IncludeAllScopes(includeAllScopes bool) *VpnGatewaysAggregatedListCall { c.urlParams_.Set("includeAllScopes", fmt.Sprint(includeAllScopes)) 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 *UrlMapsAggregatedListCall) MaxResults(maxResults int64) *UrlMapsAggregatedListCall { +// 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 *VpnGatewaysAggregatedListCall) MaxResults(maxResults int64) *VpnGatewaysAggregatedListCall { 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 *UrlMapsAggregatedListCall) OrderBy(orderBy string) *UrlMapsAggregatedListCall { +// 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 *VpnGatewaysAggregatedListCall) OrderBy(orderBy string) *VpnGatewaysAggregatedListCall { 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 *UrlMapsAggregatedListCall) PageToken(pageToken string) *UrlMapsAggregatedListCall { +// use. Set `pageToken` to the +// `nextPageToken` returned by a previous list request to get +// the next page of results. +func (c *VpnGatewaysAggregatedListCall) PageToken(pageToken string) *VpnGatewaysAggregatedListCall { c.urlParams_.Set("pageToken", pageToken) return c } // ReturnPartialSuccess sets the optional parameter "returnPartialSuccess": -// Opt-in for partial success behavior which provides partial results in case -// of failure. The default value is false. For example, when partial success -// behavior is enabled, aggregatedList for a single zone scope either returns -// all resources in the zone or no resources, with an error code. -func (c *UrlMapsAggregatedListCall) ReturnPartialSuccess(returnPartialSuccess bool) *UrlMapsAggregatedListCall { +// Opt-in for partial success behavior which provides partial results in +// case +// of failure. The default value is false. +// +// For example, when partial success behavior is enabled, aggregatedList for +// a +// single zone scope either returns all resources in the zone or no +// resources, +// with an error code. +func (c *VpnGatewaysAggregatedListCall) ReturnPartialSuccess(returnPartialSuccess bool) *VpnGatewaysAggregatedListCall { c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess)) return c } // ServiceProjectNumber sets the optional parameter "serviceProjectNumber": The -// Shared VPC service project id or service project number for which aggregated -// list request is invoked for subnetworks list-usable api. -func (c *UrlMapsAggregatedListCall) ServiceProjectNumber(serviceProjectNumber int64) *UrlMapsAggregatedListCall { +// Shared VPC service project id or service project number for which +// aggregated list request is invoked for subnetworks list-usable api. +func (c *VpnGatewaysAggregatedListCall) ServiceProjectNumber(serviceProjectNumber int64) *VpnGatewaysAggregatedListCall { c.urlParams_.Set("serviceProjectNumber", fmt.Sprint(serviceProjectNumber)) return c } @@ -45858,7 +67799,7 @@ func (c *UrlMapsAggregatedListCall) ServiceProjectNumber(serviceProjectNumber in // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *UrlMapsAggregatedListCall) Fields(s ...googleapi.Field) *UrlMapsAggregatedListCall { +func (c *VpnGatewaysAggregatedListCall) Fields(s ...googleapi.Field) *VpnGatewaysAggregatedListCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } @@ -45866,37 +67807,36 @@ func (c *UrlMapsAggregatedListCall) Fields(s ...googleapi.Field) *UrlMapsAggrega // IfNoneMatch sets an 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. -func (c *UrlMapsAggregatedListCall) IfNoneMatch(entityTag string) *UrlMapsAggregatedListCall { +func (c *VpnGatewaysAggregatedListCall) IfNoneMatch(entityTag string) *VpnGatewaysAggregatedListCall { c.ifNoneMatch_ = entityTag return c } // Context sets the context to be used in this call's Do method. -func (c *UrlMapsAggregatedListCall) Context(ctx context.Context) *UrlMapsAggregatedListCall { +func (c *VpnGatewaysAggregatedListCall) Context(ctx context.Context) *VpnGatewaysAggregatedListCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *UrlMapsAggregatedListCall) Header() http.Header { +func (c *VpnGatewaysAggregatedListCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *UrlMapsAggregatedListCall) doRequest(alt string) (*http.Response, error) { +func (c *VpnGatewaysAggregatedListCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) if c.ifNoneMatch_ != "" { reqHeaders.Set("If-None-Match", c.ifNoneMatch_) } - var body io.Reader = nil c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/aggregated/urlMaps") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/aggregated/vpnGateways") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("GET", urls, body) + req, err := http.NewRequest("GET", urls, nil) if err != nil { return nil, err } @@ -45904,16 +67844,17 @@ func (c *UrlMapsAggregatedListCall) doRequest(alt string) (*http.Response, error googleapi.Expand(req.URL, map[string]string{ "project": c.project, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.vpnGateways.aggregatedList", "request", internallog.HTTPRequest(req, nil)) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.urlMaps.aggregatedList" call. +// Do executes the "compute.vpnGateways.aggregatedList" call. // Any non-2xx status code is an error. Response headers are in either -// *UrlMapsAggregatedList.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 *UrlMapsAggregatedListCall) Do(opts ...googleapi.CallOption) (*UrlMapsAggregatedList, error) { +// *VpnGatewayAggregatedList.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 *VpnGatewaysAggregatedListCall) Do(opts ...googleapi.CallOption) (*VpnGatewayAggregatedList, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -45932,23 +67873,25 @@ func (c *UrlMapsAggregatedListCall) Do(opts ...googleapi.CallOption) (*UrlMapsAg if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } - ret := &UrlMapsAggregatedList{ + ret := &VpnGatewayAggregatedList{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.vpnGateways.aggregatedList", "response", internallog.HTTPResponse(res, b)) return ret, nil } // 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 *UrlMapsAggregatedListCall) Pages(ctx context.Context, f func(*UrlMapsAggregatedList) error) error { +func (c *VpnGatewaysAggregatedListCall) Pages(ctx context.Context, f func(*VpnGatewayAggregatedList) error) error { c.ctx_ = ctx defer c.PageToken(c.urlParams_.Get("pageToken")) for { @@ -45966,37 +67909,47 @@ func (c *UrlMapsAggregatedListCall) Pages(ctx context.Context, f func(*UrlMapsAg } } -type UrlMapsDeleteCall struct { +type VpnGatewaysDeleteCall struct { s *Service project string - urlMap string + region string + vpnGateway string urlParams_ gensupport.URLParams ctx_ context.Context header_ http.Header } -// Delete: Deletes the specified UrlMap resource. +// Delete: Deletes the specified VPN gateway. // // - project: Project ID for this request. -// - urlMap: Name of the UrlMap resource to delete. -func (r *UrlMapsService) Delete(project string, urlMap string) *UrlMapsDeleteCall { - c := &UrlMapsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)} +// - region: Name of the region for this request. +// - vpnGateway: Name of the VPN gateway to delete. +func (r *VpnGatewaysService) Delete(project string, region string, vpnGateway string) *VpnGatewaysDeleteCall { + c := &VpnGatewaysDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project - c.urlMap = urlMap + c.region = region + c.vpnGateway = vpnGateway 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 *UrlMapsDeleteCall) RequestId(requestId string) *UrlMapsDeleteCall { +// 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 *VpnGatewaysDeleteCall) RequestId(requestId string) *VpnGatewaysDeleteCall { c.urlParams_.Set("requestId", requestId) return c } @@ -46004,51 +67957,52 @@ func (c *UrlMapsDeleteCall) RequestId(requestId string) *UrlMapsDeleteCall { // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *UrlMapsDeleteCall) Fields(s ...googleapi.Field) *UrlMapsDeleteCall { +func (c *VpnGatewaysDeleteCall) Fields(s ...googleapi.Field) *VpnGatewaysDeleteCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } // Context sets the context to be used in this call's Do method. -func (c *UrlMapsDeleteCall) Context(ctx context.Context) *UrlMapsDeleteCall { +func (c *VpnGatewaysDeleteCall) Context(ctx context.Context) *VpnGatewaysDeleteCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *UrlMapsDeleteCall) Header() http.Header { +func (c *VpnGatewaysDeleteCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *UrlMapsDeleteCall) doRequest(alt string) (*http.Response, error) { +func (c *VpnGatewaysDeleteCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) - var body io.Reader = nil c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/urlMaps/{urlMap}") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/vpnGateways/{vpnGateway}") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("DELETE", urls, body) + req, err := http.NewRequest("DELETE", urls, nil) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "urlMap": c.urlMap, + "project": c.project, + "region": c.region, + "vpnGateway": c.vpnGateway, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.vpnGateways.delete", "request", internallog.HTTPRequest(req, nil)) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.urlMaps.delete" call. +// Do executes the "compute.vpnGateways.delete" call. // 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 *UrlMapsDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) { +func (c *VpnGatewaysDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -46074,37 +68028,42 @@ func (c *UrlMapsDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.vpnGateways.delete", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type UrlMapsGetCall struct { +type VpnGatewaysGetCall struct { s *Service project string - urlMap string + region string + vpnGateway string urlParams_ gensupport.URLParams ifNoneMatch_ string ctx_ context.Context header_ http.Header } -// Get: Returns the specified UrlMap resource. +// Get: Returns the specified VPN gateway. // // - project: Project ID for this request. -// - urlMap: Name of the UrlMap resource to return. -func (r *UrlMapsService) Get(project string, urlMap string) *UrlMapsGetCall { - c := &UrlMapsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)} +// - region: Name of the region for this request. +// - vpnGateway: Name of the VPN gateway to return. +func (r *VpnGatewaysService) Get(project string, region string, vpnGateway string) *VpnGatewaysGetCall { + c := &VpnGatewaysGetCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project - c.urlMap = urlMap + c.region = region + c.vpnGateway = vpnGateway return c } // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *UrlMapsGetCall) Fields(s ...googleapi.Field) *UrlMapsGetCall { +func (c *VpnGatewaysGetCall) Fields(s ...googleapi.Field) *VpnGatewaysGetCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } @@ -46112,54 +68071,55 @@ func (c *UrlMapsGetCall) Fields(s ...googleapi.Field) *UrlMapsGetCall { // IfNoneMatch sets an 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. -func (c *UrlMapsGetCall) IfNoneMatch(entityTag string) *UrlMapsGetCall { +func (c *VpnGatewaysGetCall) IfNoneMatch(entityTag string) *VpnGatewaysGetCall { c.ifNoneMatch_ = entityTag return c } // Context sets the context to be used in this call's Do method. -func (c *UrlMapsGetCall) Context(ctx context.Context) *UrlMapsGetCall { +func (c *VpnGatewaysGetCall) Context(ctx context.Context) *VpnGatewaysGetCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *UrlMapsGetCall) Header() http.Header { +func (c *VpnGatewaysGetCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *UrlMapsGetCall) doRequest(alt string) (*http.Response, error) { +func (c *VpnGatewaysGetCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) if c.ifNoneMatch_ != "" { reqHeaders.Set("If-None-Match", c.ifNoneMatch_) } - var body io.Reader = nil c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/urlMaps/{urlMap}") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/vpnGateways/{vpnGateway}") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("GET", urls, body) + req, err := http.NewRequest("GET", urls, nil) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "urlMap": c.urlMap, + "project": c.project, + "region": c.region, + "vpnGateway": c.vpnGateway, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.vpnGateways.get", "request", internallog.HTTPRequest(req, nil)) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.urlMaps.get" call. +// Do executes the "compute.vpnGateways.get" call. // Any non-2xx status code is an error. Response headers are in either -// *UrlMap.ServerResponse.Header or (if a response was returned at all) in +// *VpnGateway.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 *UrlMapsGetCall) Do(opts ...googleapi.CallOption) (*UrlMap, error) { +func (c *VpnGatewaysGetCall) Do(opts ...googleapi.CallOption) (*VpnGateway, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -46178,105 +68138,106 @@ func (c *UrlMapsGetCall) Do(opts ...googleapi.CallOption) (*UrlMap, error) { if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } - ret := &UrlMap{ + ret := &VpnGateway{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.vpnGateways.get", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type UrlMapsInsertCall struct { - s *Service - project string - urlmap *UrlMap - urlParams_ gensupport.URLParams - ctx_ context.Context - header_ http.Header +type VpnGatewaysGetStatusCall struct { + s *Service + project string + region string + vpnGateway string + urlParams_ gensupport.URLParams + ifNoneMatch_ string + ctx_ context.Context + header_ http.Header } -// Insert: Creates a UrlMap resource in the specified project using the data -// included in the request. +// GetStatus: Returns the status for the specified VPN gateway. // // - project: Project ID for this request. -func (r *UrlMapsService) Insert(project string, urlmap *UrlMap) *UrlMapsInsertCall { - c := &UrlMapsInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)} +// - region: Name of the region for this request. +// - vpnGateway: Name of the VPN gateway to return. +func (r *VpnGatewaysService) GetStatus(project string, region string, vpnGateway string) *VpnGatewaysGetStatusCall { + c := &VpnGatewaysGetStatusCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project - c.urlmap = urlmap - 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 *UrlMapsInsertCall) RequestId(requestId string) *UrlMapsInsertCall { - c.urlParams_.Set("requestId", requestId) + c.region = region + c.vpnGateway = vpnGateway return c } // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *UrlMapsInsertCall) Fields(s ...googleapi.Field) *UrlMapsInsertCall { +func (c *VpnGatewaysGetStatusCall) Fields(s ...googleapi.Field) *VpnGatewaysGetStatusCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } +// IfNoneMatch sets an 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. +func (c *VpnGatewaysGetStatusCall) IfNoneMatch(entityTag string) *VpnGatewaysGetStatusCall { + c.ifNoneMatch_ = entityTag + return c +} + // Context sets the context to be used in this call's Do method. -func (c *UrlMapsInsertCall) Context(ctx context.Context) *UrlMapsInsertCall { +func (c *VpnGatewaysGetStatusCall) Context(ctx context.Context) *VpnGatewaysGetStatusCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *UrlMapsInsertCall) Header() http.Header { +func (c *VpnGatewaysGetStatusCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *UrlMapsInsertCall) doRequest(alt string) (*http.Response, error) { - reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) - var body io.Reader = nil - body, err := googleapi.WithoutDataWrapper.JSONReader(c.urlmap) - if err != nil { - return nil, err +func (c *VpnGatewaysGetStatusCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) + if c.ifNoneMatch_ != "" { + reqHeaders.Set("If-None-Match", c.ifNoneMatch_) } c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/urlMaps") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/vpnGateways/{vpnGateway}/getStatus") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("POST", urls, body) + req, err := http.NewRequest("GET", urls, nil) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, + "project": c.project, + "region": c.region, + "vpnGateway": c.vpnGateway, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.vpnGateways.getStatus", "request", internallog.HTTPRequest(req, nil)) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.urlMaps.insert" call. +// Do executes the "compute.vpnGateways.getStatus" call. // 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 *UrlMapsInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) { +// *VpnGatewaysGetStatusResponse.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 *VpnGatewaysGetStatusCall) Do(opts ...googleapi.CallOption) (*VpnGatewaysGetStatusResponse, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -46295,54 +68256,62 @@ func (c *UrlMapsInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } - ret := &Operation{ + ret := &VpnGatewaysGetStatusResponse{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.vpnGateways.getStatus", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type UrlMapsInvalidateCacheCall struct { - s *Service - project string - urlMap string - cacheinvalidationrule *CacheInvalidationRule - urlParams_ gensupport.URLParams - ctx_ context.Context - header_ http.Header +type VpnGatewaysInsertCall struct { + s *Service + project string + region string + vpngateway *VpnGateway + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header } -// InvalidateCache: Initiates a cache invalidation operation, invalidating the -// specified path, scoped to the specified UrlMap. For more information, see -// Invalidating cached content (/cdn/docs/invalidating-cached-content). +// Insert: Creates a VPN gateway in the specified project and region using +// the data included in the request. // // - project: Project ID for this request. -// - urlMap: Name of the UrlMap scoping this request. -func (r *UrlMapsService) InvalidateCache(project string, urlMap string, cacheinvalidationrule *CacheInvalidationRule) *UrlMapsInvalidateCacheCall { - c := &UrlMapsInvalidateCacheCall{s: r.s, urlParams_: make(gensupport.URLParams)} +// - region: Name of the region for this request. +func (r *VpnGatewaysService) Insert(project string, region string, vpngateway *VpnGateway) *VpnGatewaysInsertCall { + c := &VpnGatewaysInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project - c.urlMap = urlMap - c.cacheinvalidationrule = cacheinvalidationrule + c.region = region + c.vpngateway = vpngateway 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 *UrlMapsInvalidateCacheCall) RequestId(requestId string) *UrlMapsInvalidateCacheCall { +// 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 *VpnGatewaysInsertCall) RequestId(requestId string) *VpnGatewaysInsertCall { c.urlParams_.Set("requestId", requestId) return c } @@ -46350,36 +68319,35 @@ func (c *UrlMapsInvalidateCacheCall) RequestId(requestId string) *UrlMapsInvalid // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *UrlMapsInvalidateCacheCall) Fields(s ...googleapi.Field) *UrlMapsInvalidateCacheCall { +func (c *VpnGatewaysInsertCall) Fields(s ...googleapi.Field) *VpnGatewaysInsertCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } // Context sets the context to be used in this call's Do method. -func (c *UrlMapsInvalidateCacheCall) Context(ctx context.Context) *UrlMapsInvalidateCacheCall { +func (c *VpnGatewaysInsertCall) Context(ctx context.Context) *VpnGatewaysInsertCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *UrlMapsInvalidateCacheCall) Header() http.Header { +func (c *VpnGatewaysInsertCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *UrlMapsInvalidateCacheCall) doRequest(alt string) (*http.Response, error) { +func (c *VpnGatewaysInsertCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) - var body io.Reader = nil - body, err := googleapi.WithoutDataWrapper.JSONReader(c.cacheinvalidationrule) + body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.vpngateway) if err != nil { return nil, err } c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/urlMaps/{urlMap}/invalidateCache") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/vpnGateways") urls += "?" + c.urlParams_.Encode() req, err := http.NewRequest("POST", urls, body) if err != nil { @@ -46388,17 +68356,18 @@ func (c *UrlMapsInvalidateCacheCall) doRequest(alt string) (*http.Response, erro req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ "project": c.project, - "urlMap": c.urlMap, + "region": c.region, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.vpnGateways.insert", "request", internallog.HTTPRequest(req, body.Bytes())) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.urlMaps.invalidateCache" call. +// Do executes the "compute.vpnGateways.insert" call. // 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 *UrlMapsInvalidateCacheCall) Do(opts ...googleapi.CallOption) (*Operation, error) { +func (c *VpnGatewaysInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -46424,105 +68393,160 @@ func (c *UrlMapsInvalidateCacheCall) Do(opts ...googleapi.CallOption) (*Operatio }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.vpnGateways.insert", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type UrlMapsListCall struct { +type VpnGatewaysListCall struct { s *Service project string + region string urlParams_ gensupport.URLParams ifNoneMatch_ string ctx_ context.Context header_ http.Header } -// List: Retrieves the list of UrlMap resources available to the specified -// project. +// List: Retrieves a list of VPN gateways available to the specified +// project and region. // // - project: Project ID for this request. -func (r *UrlMapsService) List(project string) *UrlMapsListCall { - c := &UrlMapsListCall{s: r.s, urlParams_: make(gensupport.URLParams)} +// - region: Name of the region for this request. +func (r *VpnGatewaysService) List(project string, region string) *VpnGatewaysListCall { + c := &VpnGatewaysListCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project + c.region = region return c } // Filter sets the optional parameter "filter": A filter expression that -// filters resources listed in the response. Most Compute resources support two -// types of filter expressions: expressions that support regular expressions -// and expressions that follow API improvement proposal AIP-160. These two -// types of filter expressions cannot be mixed in one request. If you want to -// use AIP-160, your expression must specify the field name, an operator, and -// the value that you want to use for filtering. The value must be a string, a -// number, or a boolean. The 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`. The `:*` comparison can be used to test whether a key has -// been defined. For example, to find all objects with `owner` label use: ``` -// labels.owner:* ``` 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) ``` If you want to use a regular -// expression, use the `eq` (equal) or `ne` (not equal) operator against a -// single un-parenthesized expression with or without quotes or against -// multiple parenthesized expressions. Examples: `fieldname eq unquoted -// literal` `fieldname eq 'single quoted literal'` `fieldname eq "double quoted -// literal" `(fieldname1 eq literal) (fieldname2 ne "literal")` The literal -// value is interpreted as a regular expression using Google RE2 library -// syntax. The literal value must match the entire field. For example, to -// filter for instances that do not end with name "instance", you would use -// `name ne .*instance`. You cannot combine constraints on multiple fields -// using regular expressions. -func (c *UrlMapsListCall) Filter(filter string) *UrlMapsListCall { +// filters resources listed in the response. Most +// Compute resources support two types of filter expressions: +// expressions that support regular expressions and expressions that follow +// API improvement proposal AIP-160. +// These two types of filter expressions cannot be mixed in one request. +// +// If you want to use AIP-160, your expression must specify the field name, +// an +// operator, and the value that you want to use for filtering. The value +// must be a string, a number, or a boolean. The 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`. +// +// The `:*` comparison can be used to test whether a key has been defined. +// For example, to find all objects with `owner` label +// use: +// ``` +// labels.owner:* +// ``` +// +// 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 onresource 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) +// ``` +// +// If you want to use a regular expression, use the `eq` (equal) or `ne` +// (not equal) operator against a single un-parenthesized expression with +// or +// without quotes or against multiple parenthesized expressions. +// Examples: +// +// `fieldname eq unquoted literal` +// `fieldname eq 'single quoted literal'` +// `fieldname eq "double quoted literal" +// `(fieldname1 eq literal) (fieldname2 ne "literal")` +// +// The literal value is interpreted as a regular expression using GoogleRE2 +// library syntax. +// The literal value must match the entire field. +// +// For example, to filter for instances that do not end with name +// "instance", +// you would use `name ne .*instance`. +// +// You cannot combine constraints on multiple fields using regular +// expressions. +func (c *VpnGatewaysListCall) Filter(filter string) *VpnGatewaysListCall { 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 *UrlMapsListCall) MaxResults(maxResults int64) *UrlMapsListCall { +// 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 *VpnGatewaysListCall) MaxResults(maxResults int64) *VpnGatewaysListCall { 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 *UrlMapsListCall) OrderBy(orderBy string) *UrlMapsListCall { +// 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 *VpnGatewaysListCall) OrderBy(orderBy string) *VpnGatewaysListCall { 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 *UrlMapsListCall) PageToken(pageToken string) *UrlMapsListCall { +// use. Set `pageToken` to the +// `nextPageToken` returned by a previous list request to get +// the next page of results. +func (c *VpnGatewaysListCall) PageToken(pageToken string) *VpnGatewaysListCall { c.urlParams_.Set("pageToken", pageToken) return c } // ReturnPartialSuccess sets the optional parameter "returnPartialSuccess": -// Opt-in for partial success behavior which provides partial results in case -// of failure. The default value is false. For example, when partial success -// behavior is enabled, aggregatedList for a single zone scope either returns -// all resources in the zone or no resources, with an error code. -func (c *UrlMapsListCall) ReturnPartialSuccess(returnPartialSuccess bool) *UrlMapsListCall { +// Opt-in for partial success behavior which provides partial results in +// case +// of failure. The default value is false. +// +// For example, when partial success behavior is enabled, aggregatedList for +// a +// single zone scope either returns all resources in the zone or no +// resources, +// with an error code. +func (c *VpnGatewaysListCall) ReturnPartialSuccess(returnPartialSuccess bool) *VpnGatewaysListCall { c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess)) return c } @@ -46530,7 +68554,7 @@ func (c *UrlMapsListCall) ReturnPartialSuccess(returnPartialSuccess bool) *UrlMa // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *UrlMapsListCall) Fields(s ...googleapi.Field) *UrlMapsListCall { +func (c *VpnGatewaysListCall) Fields(s ...googleapi.Field) *VpnGatewaysListCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } @@ -46538,53 +68562,54 @@ func (c *UrlMapsListCall) Fields(s ...googleapi.Field) *UrlMapsListCall { // IfNoneMatch sets an 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. -func (c *UrlMapsListCall) IfNoneMatch(entityTag string) *UrlMapsListCall { +func (c *VpnGatewaysListCall) IfNoneMatch(entityTag string) *VpnGatewaysListCall { c.ifNoneMatch_ = entityTag return c } // Context sets the context to be used in this call's Do method. -func (c *UrlMapsListCall) Context(ctx context.Context) *UrlMapsListCall { +func (c *VpnGatewaysListCall) Context(ctx context.Context) *VpnGatewaysListCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *UrlMapsListCall) Header() http.Header { +func (c *VpnGatewaysListCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *UrlMapsListCall) doRequest(alt string) (*http.Response, error) { +func (c *VpnGatewaysListCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) if c.ifNoneMatch_ != "" { reqHeaders.Set("If-None-Match", c.ifNoneMatch_) } - var body io.Reader = nil c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/urlMaps") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/vpnGateways") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("GET", urls, body) + req, err := http.NewRequest("GET", urls, nil) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ "project": c.project, + "region": c.region, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.vpnGateways.list", "request", internallog.HTTPRequest(req, nil)) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.urlMaps.list" call. +// Do executes the "compute.vpnGateways.list" call. // Any non-2xx status code is an error. Response headers are in either -// *UrlMapList.ServerResponse.Header or (if a response was returned at all) in -// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check +// *VpnGatewayList.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 *UrlMapsListCall) Do(opts ...googleapi.CallOption) (*UrlMapList, error) { +func (c *VpnGatewaysListCall) Do(opts ...googleapi.CallOption) (*VpnGatewayList, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -46603,23 +68628,25 @@ func (c *UrlMapsListCall) Do(opts ...googleapi.CallOption) (*UrlMapList, error) if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } - ret := &UrlMapList{ + ret := &VpnGatewayList{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.vpnGateways.list", "response", internallog.HTTPResponse(res, b)) return ret, nil } // 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 *UrlMapsListCall) Pages(ctx context.Context, f func(*UrlMapList) error) error { +func (c *VpnGatewaysListCall) Pages(ctx context.Context, f func(*VpnGatewayList) error) error { c.ctx_ = ctx defer c.PageToken(c.urlParams_.Get("pageToken")) for { @@ -46637,162 +68664,51 @@ func (c *UrlMapsListCall) Pages(ctx context.Context, f func(*UrlMapList) error) } } -type UrlMapsPatchCall struct { - s *Service - project string - urlMap string - urlmap *UrlMap - urlParams_ gensupport.URLParams - ctx_ context.Context - header_ http.Header +type VpnGatewaysSetLabelsCall struct { + s *Service + project string + region string + resource string + regionsetlabelsrequest *RegionSetLabelsRequest + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header } -// Patch: Patches the specified UrlMap resource with the data included in the -// request. This method supports PATCH semantics and uses the JSON merge patch -// format and processing rules. +// SetLabels: Sets the labels on a VpnGateway. To learn more about labels, read +// theLabeling +// Resources documentation. // // - project: Project ID for this request. -// - urlMap: Name of the UrlMap resource to patch. -func (r *UrlMapsService) Patch(project string, urlMap string, urlmap *UrlMap) *UrlMapsPatchCall { - c := &UrlMapsPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)} +// - region: The region for this request. +// - resource: Name or id of the resource for this request. +func (r *VpnGatewaysService) SetLabels(project string, region string, resource string, regionsetlabelsrequest *RegionSetLabelsRequest) *VpnGatewaysSetLabelsCall { + c := &VpnGatewaysSetLabelsCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project - c.urlMap = urlMap - c.urlmap = urlmap + c.region = region + c.resource = resource + c.regionsetlabelsrequest = regionsetlabelsrequest 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 *UrlMapsPatchCall) RequestId(requestId string) *UrlMapsPatchCall { - 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 -// details. -func (c *UrlMapsPatchCall) Fields(s ...googleapi.Field) *UrlMapsPatchCall { - c.urlParams_.Set("fields", googleapi.CombineFields(s)) - return c -} - -// Context sets the context to be used in this call's Do method. -func (c *UrlMapsPatchCall) Context(ctx context.Context) *UrlMapsPatchCall { - c.ctx_ = ctx - return c -} - -// Header returns a http.Header that can be modified by the caller to add -// headers to the request. -func (c *UrlMapsPatchCall) Header() http.Header { - if c.header_ == nil { - c.header_ = make(http.Header) - } - return c.header_ -} - -func (c *UrlMapsPatchCall) doRequest(alt string) (*http.Response, error) { - reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) - var body io.Reader = nil - body, err := googleapi.WithoutDataWrapper.JSONReader(c.urlmap) - if err != nil { - return nil, err - } - c.urlParams_.Set("alt", alt) - c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/urlMaps/{urlMap}") - urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("PATCH", urls, body) - if err != nil { - return nil, err - } - req.Header = reqHeaders - googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "urlMap": c.urlMap, - }) - return gensupport.SendRequest(c.ctx_, c.s.client, req) -} - -// Do executes the "compute.urlMaps.patch" call. -// 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 *UrlMapsPatchCall) 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, gensupport.WrapError(&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, gensupport.WrapError(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 -} - -type UrlMapsUpdateCall struct { - s *Service - project string - urlMap string - urlmap *UrlMap - urlParams_ gensupport.URLParams - ctx_ context.Context - header_ http.Header -} - -// Update: Updates the specified UrlMap resource with the data included in the -// request. +// 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. // -// - project: Project ID for this request. -// - urlMap: Name of the UrlMap resource to update. -func (r *UrlMapsService) Update(project string, urlMap string, urlmap *UrlMap) *UrlMapsUpdateCall { - c := &UrlMapsUpdateCall{s: r.s, urlParams_: make(gensupport.URLParams)} - c.project = project - c.urlMap = urlMap - c.urlmap = urlmap - 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 *UrlMapsUpdateCall) RequestId(requestId string) *UrlMapsUpdateCall { +// 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 *VpnGatewaysSetLabelsCall) RequestId(requestId string) *VpnGatewaysSetLabelsCall { c.urlParams_.Set("requestId", requestId) return c } @@ -46800,55 +68716,56 @@ func (c *UrlMapsUpdateCall) RequestId(requestId string) *UrlMapsUpdateCall { // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *UrlMapsUpdateCall) Fields(s ...googleapi.Field) *UrlMapsUpdateCall { +func (c *VpnGatewaysSetLabelsCall) Fields(s ...googleapi.Field) *VpnGatewaysSetLabelsCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } // Context sets the context to be used in this call's Do method. -func (c *UrlMapsUpdateCall) Context(ctx context.Context) *UrlMapsUpdateCall { +func (c *VpnGatewaysSetLabelsCall) Context(ctx context.Context) *VpnGatewaysSetLabelsCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *UrlMapsUpdateCall) Header() http.Header { +func (c *VpnGatewaysSetLabelsCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *UrlMapsUpdateCall) doRequest(alt string) (*http.Response, error) { +func (c *VpnGatewaysSetLabelsCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) - var body io.Reader = nil - body, err := googleapi.WithoutDataWrapper.JSONReader(c.urlmap) + body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.regionsetlabelsrequest) if err != nil { return nil, err } c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/urlMaps/{urlMap}") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/vpnGateways/{resource}/setLabels") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("PUT", urls, body) + req, err := http.NewRequest("POST", urls, body) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "urlMap": c.urlMap, + "project": c.project, + "region": c.region, + "resource": c.resource, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.vpnGateways.setLabels", "request", internallog.HTTPRequest(req, body.Bytes())) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.urlMaps.update" call. +// Do executes the "compute.vpnGateways.setLabels" call. // 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 *UrlMapsUpdateCall) Do(opts ...googleapi.CallOption) (*Operation, error) { +func (c *VpnGatewaysSetLabelsCall) Do(opts ...googleapi.CallOption) (*Operation, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -46874,69 +68791,72 @@ func (c *UrlMapsUpdateCall) Do(opts ...googleapi.CallOption) (*Operation, error) }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.vpnGateways.setLabels", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type UrlMapsValidateCall struct { +type VpnGatewaysTestIamPermissionsCall struct { s *Service project string - urlMap string - urlmapsvalidaterequest *UrlMapsValidateRequest + region string + resource string + testpermissionsrequest *TestPermissionsRequest urlParams_ gensupport.URLParams ctx_ context.Context header_ http.Header } -// Validate: Runs static validation for the UrlMap. In particular, the tests of -// the provided UrlMap will be run. Calling this method does NOT create the -// UrlMap. +// TestIamPermissions: Returns permissions that a caller has on the specified +// resource. // // - project: Project ID for this request. -// - urlMap: Name of the UrlMap resource to be validated as. -func (r *UrlMapsService) Validate(project string, urlMap string, urlmapsvalidaterequest *UrlMapsValidateRequest) *UrlMapsValidateCall { - c := &UrlMapsValidateCall{s: r.s, urlParams_: make(gensupport.URLParams)} +// - region: The name of the region for this request. +// - resource: Name or id of the resource for this request. +func (r *VpnGatewaysService) TestIamPermissions(project string, region string, resource string, testpermissionsrequest *TestPermissionsRequest) *VpnGatewaysTestIamPermissionsCall { + c := &VpnGatewaysTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project - c.urlMap = urlMap - c.urlmapsvalidaterequest = urlmapsvalidaterequest + c.region = region + c.resource = resource + c.testpermissionsrequest = testpermissionsrequest return c } // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *UrlMapsValidateCall) Fields(s ...googleapi.Field) *UrlMapsValidateCall { +func (c *VpnGatewaysTestIamPermissionsCall) Fields(s ...googleapi.Field) *VpnGatewaysTestIamPermissionsCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } // Context sets the context to be used in this call's Do method. -func (c *UrlMapsValidateCall) Context(ctx context.Context) *UrlMapsValidateCall { +func (c *VpnGatewaysTestIamPermissionsCall) Context(ctx context.Context) *VpnGatewaysTestIamPermissionsCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *UrlMapsValidateCall) Header() http.Header { +func (c *VpnGatewaysTestIamPermissionsCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *UrlMapsValidateCall) doRequest(alt string) (*http.Response, error) { +func (c *VpnGatewaysTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) - var body io.Reader = nil - body, err := googleapi.WithoutDataWrapper.JSONReader(c.urlmapsvalidaterequest) + body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.testpermissionsrequest) if err != nil { return nil, err } c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/urlMaps/{urlMap}/validate") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/vpnGateways/{resource}/testIamPermissions") urls += "?" + c.urlParams_.Encode() req, err := http.NewRequest("POST", urls, body) if err != nil { @@ -46944,19 +68864,21 @@ func (c *UrlMapsValidateCall) doRequest(alt string) (*http.Response, error) { } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "urlMap": c.urlMap, + "project": c.project, + "region": c.region, + "resource": c.resource, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.vpnGateways.testIamPermissions", "request", internallog.HTTPRequest(req, body.Bytes())) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.urlMaps.validate" call. +// Do executes the "compute.vpnGateways.testIamPermissions" call. // Any non-2xx status code is an error. Response headers are in either -// *UrlMapsValidateResponse.ServerResponse.Header or (if a response was +// *TestPermissionsResponse.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 *UrlMapsValidateCall) Do(opts ...googleapi.CallOption) (*UrlMapsValidateResponse, error) { +func (c *VpnGatewaysTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -46975,20 +68897,22 @@ func (c *UrlMapsValidateCall) Do(opts ...googleapi.CallOption) (*UrlMapsValidate if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } - ret := &UrlMapsValidateResponse{ + ret := &TestPermissionsResponse{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.vpnGateways.testIamPermissions", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type VpnGatewaysAggregatedListCall struct { +type VpnTunnelsAggregatedListCall struct { s *Service project string urlParams_ gensupport.URLParams @@ -46997,112 +68921,169 @@ type VpnGatewaysAggregatedListCall struct { header_ http.Header } -// AggregatedList: Retrieves an aggregated list of VPN gateways. To prevent -// failure, Google recommends that you set the `returnPartialSuccess` parameter -// to `true`. +// AggregatedList: Retrieves an aggregated list of VPN tunnels. +// +// To prevent failure, Google recommends that you set +// the +// `returnPartialSuccess` parameter to `true`. // // - project: Project ID for this request. -func (r *VpnGatewaysService) AggregatedList(project string) *VpnGatewaysAggregatedListCall { - c := &VpnGatewaysAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)} +func (r *VpnTunnelsService) AggregatedList(project string) *VpnTunnelsAggregatedListCall { + c := &VpnTunnelsAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project return c } // Filter sets the optional parameter "filter": A filter expression that -// filters resources listed in the response. Most Compute resources support two -// types of filter expressions: expressions that support regular expressions -// and expressions that follow API improvement proposal AIP-160. These two -// types of filter expressions cannot be mixed in one request. If you want to -// use AIP-160, your expression must specify the field name, an operator, and -// the value that you want to use for filtering. The value must be a string, a -// number, or a boolean. The 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`. The `:*` comparison can be used to test whether a key has -// been defined. For example, to find all objects with `owner` label use: ``` -// labels.owner:* ``` 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) ``` If you want to use a regular -// expression, use the `eq` (equal) or `ne` (not equal) operator against a -// single un-parenthesized expression with or without quotes or against -// multiple parenthesized expressions. Examples: `fieldname eq unquoted -// literal` `fieldname eq 'single quoted literal'` `fieldname eq "double quoted -// literal" `(fieldname1 eq literal) (fieldname2 ne "literal")` The literal -// value is interpreted as a regular expression using Google RE2 library -// syntax. The literal value must match the entire field. For example, to -// filter for instances that do not end with name "instance", you would use -// `name ne .*instance`. You cannot combine constraints on multiple fields -// using regular expressions. -func (c *VpnGatewaysAggregatedListCall) Filter(filter string) *VpnGatewaysAggregatedListCall { +// filters resources listed in the response. Most +// Compute resources support two types of filter expressions: +// expressions that support regular expressions and expressions that follow +// API improvement proposal AIP-160. +// These two types of filter expressions cannot be mixed in one request. +// +// If you want to use AIP-160, your expression must specify the field name, +// an +// operator, and the value that you want to use for filtering. The value +// must be a string, a number, or a boolean. The 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`. +// +// The `:*` comparison can be used to test whether a key has been defined. +// For example, to find all objects with `owner` label +// use: +// ``` +// labels.owner:* +// ``` +// +// 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 onresource 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) +// ``` +// +// If you want to use a regular expression, use the `eq` (equal) or `ne` +// (not equal) operator against a single un-parenthesized expression with +// or +// without quotes or against multiple parenthesized expressions. +// Examples: +// +// `fieldname eq unquoted literal` +// `fieldname eq 'single quoted literal'` +// `fieldname eq "double quoted literal" +// `(fieldname1 eq literal) (fieldname2 ne "literal")` +// +// The literal value is interpreted as a regular expression using GoogleRE2 +// library syntax. +// The literal value must match the entire field. +// +// For example, to filter for instances that do not end with name +// "instance", +// you would use `name ne .*instance`. +// +// You cannot combine constraints on multiple fields using regular +// expressions. +func (c *VpnTunnelsAggregatedListCall) Filter(filter string) *VpnTunnelsAggregatedListCall { c.urlParams_.Set("filter", filter) return c } // IncludeAllScopes sets the optional parameter "includeAllScopes": Indicates -// whether every visible scope for each scope type (zone, region, global) -// should be included in the response. For new resource types added after this -// field, the flag has no effect as new resource types will always include -// every visible scope for each scope type in response. For resource types -// which predate this field, if this flag is omitted or false, only scopes of -// the scope types where the resource type is expected to be found will be -// included. -func (c *VpnGatewaysAggregatedListCall) IncludeAllScopes(includeAllScopes bool) *VpnGatewaysAggregatedListCall { +// whether every visible scope for each scope type (zone, region, +// global) should be included in the response. For new resource types +// added +// after this field, the flag has no effect as new resource types will +// always +// include every visible scope for each scope type in response. For +// resource +// types which predate this field, if this flag is omitted or false, +// only +// scopes of the scope types where the resource type is expected to be +// found +// will be included. +func (c *VpnTunnelsAggregatedListCall) IncludeAllScopes(includeAllScopes bool) *VpnTunnelsAggregatedListCall { c.urlParams_.Set("includeAllScopes", fmt.Sprint(includeAllScopes)) 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 *VpnGatewaysAggregatedListCall) MaxResults(maxResults int64) *VpnGatewaysAggregatedListCall { +// 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 *VpnTunnelsAggregatedListCall) MaxResults(maxResults int64) *VpnTunnelsAggregatedListCall { 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 *VpnGatewaysAggregatedListCall) OrderBy(orderBy string) *VpnGatewaysAggregatedListCall { +// 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 *VpnTunnelsAggregatedListCall) OrderBy(orderBy string) *VpnTunnelsAggregatedListCall { 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 *VpnGatewaysAggregatedListCall) PageToken(pageToken string) *VpnGatewaysAggregatedListCall { +// use. Set `pageToken` to the +// `nextPageToken` returned by a previous list request to get +// the next page of results. +func (c *VpnTunnelsAggregatedListCall) PageToken(pageToken string) *VpnTunnelsAggregatedListCall { c.urlParams_.Set("pageToken", pageToken) return c } // ReturnPartialSuccess sets the optional parameter "returnPartialSuccess": -// Opt-in for partial success behavior which provides partial results in case -// of failure. The default value is false. For example, when partial success -// behavior is enabled, aggregatedList for a single zone scope either returns -// all resources in the zone or no resources, with an error code. -func (c *VpnGatewaysAggregatedListCall) ReturnPartialSuccess(returnPartialSuccess bool) *VpnGatewaysAggregatedListCall { +// Opt-in for partial success behavior which provides partial results in +// case +// of failure. The default value is false. +// +// For example, when partial success behavior is enabled, aggregatedList for +// a +// single zone scope either returns all resources in the zone or no +// resources, +// with an error code. +func (c *VpnTunnelsAggregatedListCall) ReturnPartialSuccess(returnPartialSuccess bool) *VpnTunnelsAggregatedListCall { c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess)) return c } // ServiceProjectNumber sets the optional parameter "serviceProjectNumber": The -// Shared VPC service project id or service project number for which aggregated -// list request is invoked for subnetworks list-usable api. -func (c *VpnGatewaysAggregatedListCall) ServiceProjectNumber(serviceProjectNumber int64) *VpnGatewaysAggregatedListCall { +// Shared VPC service project id or service project number for which +// aggregated list request is invoked for subnetworks list-usable api. +func (c *VpnTunnelsAggregatedListCall) ServiceProjectNumber(serviceProjectNumber int64) *VpnTunnelsAggregatedListCall { c.urlParams_.Set("serviceProjectNumber", fmt.Sprint(serviceProjectNumber)) return c } @@ -47110,7 +69091,7 @@ func (c *VpnGatewaysAggregatedListCall) ServiceProjectNumber(serviceProjectNumbe // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *VpnGatewaysAggregatedListCall) Fields(s ...googleapi.Field) *VpnGatewaysAggregatedListCall { +func (c *VpnTunnelsAggregatedListCall) Fields(s ...googleapi.Field) *VpnTunnelsAggregatedListCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } @@ -47118,37 +69099,36 @@ func (c *VpnGatewaysAggregatedListCall) Fields(s ...googleapi.Field) *VpnGateway // IfNoneMatch sets an 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. -func (c *VpnGatewaysAggregatedListCall) IfNoneMatch(entityTag string) *VpnGatewaysAggregatedListCall { +func (c *VpnTunnelsAggregatedListCall) IfNoneMatch(entityTag string) *VpnTunnelsAggregatedListCall { c.ifNoneMatch_ = entityTag return c } // Context sets the context to be used in this call's Do method. -func (c *VpnGatewaysAggregatedListCall) Context(ctx context.Context) *VpnGatewaysAggregatedListCall { +func (c *VpnTunnelsAggregatedListCall) Context(ctx context.Context) *VpnTunnelsAggregatedListCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *VpnGatewaysAggregatedListCall) Header() http.Header { +func (c *VpnTunnelsAggregatedListCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *VpnGatewaysAggregatedListCall) doRequest(alt string) (*http.Response, error) { +func (c *VpnTunnelsAggregatedListCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) if c.ifNoneMatch_ != "" { reqHeaders.Set("If-None-Match", c.ifNoneMatch_) } - var body io.Reader = nil c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/aggregated/vpnGateways") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/aggregated/vpnTunnels") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("GET", urls, body) + req, err := http.NewRequest("GET", urls, nil) if err != nil { return nil, err } @@ -47156,16 +69136,17 @@ func (c *VpnGatewaysAggregatedListCall) doRequest(alt string) (*http.Response, e googleapi.Expand(req.URL, map[string]string{ "project": c.project, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.vpnTunnels.aggregatedList", "request", internallog.HTTPRequest(req, nil)) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.vpnGateways.aggregatedList" call. +// Do executes the "compute.vpnTunnels.aggregatedList" call. // Any non-2xx status code is an error. Response headers are in either -// *VpnGatewayAggregatedList.ServerResponse.Header or (if a response was +// *VpnTunnelAggregatedList.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 *VpnGatewaysAggregatedListCall) Do(opts ...googleapi.CallOption) (*VpnGatewayAggregatedList, error) { +func (c *VpnTunnelsAggregatedListCall) Do(opts ...googleapi.CallOption) (*VpnTunnelAggregatedList, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -47184,23 +69165,25 @@ func (c *VpnGatewaysAggregatedListCall) Do(opts ...googleapi.CallOption) (*VpnGa if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } - ret := &VpnGatewayAggregatedList{ + ret := &VpnTunnelAggregatedList{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.vpnTunnels.aggregatedList", "response", internallog.HTTPResponse(res, b)) return ret, nil } // 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 *VpnGatewaysAggregatedListCall) Pages(ctx context.Context, f func(*VpnGatewayAggregatedList) error) error { +func (c *VpnTunnelsAggregatedListCall) Pages(ctx context.Context, f func(*VpnTunnelAggregatedList) error) error { c.ctx_ = ctx defer c.PageToken(c.urlParams_.Get("pageToken")) for { @@ -47218,40 +69201,47 @@ func (c *VpnGatewaysAggregatedListCall) Pages(ctx context.Context, f func(*VpnGa } } -type VpnGatewaysDeleteCall struct { +type VpnTunnelsDeleteCall struct { s *Service project string region string - vpnGateway string + vpnTunnel string urlParams_ gensupport.URLParams ctx_ context.Context header_ http.Header } -// Delete: Deletes the specified VPN gateway. +// Delete: Deletes the specified VpnTunnel resource. // // - project: Project ID for this request. // - region: Name of the region for this request. -// - vpnGateway: Name of the VPN gateway to delete. -func (r *VpnGatewaysService) Delete(project string, region string, vpnGateway string) *VpnGatewaysDeleteCall { - c := &VpnGatewaysDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)} +// - vpnTunnel: Name of the VpnTunnel resource to delete. +func (r *VpnTunnelsService) Delete(project string, region string, vpnTunnel string) *VpnTunnelsDeleteCall { + c := &VpnTunnelsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project c.region = region - c.vpnGateway = vpnGateway + c.vpnTunnel = vpnTunnel 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 *VpnGatewaysDeleteCall) RequestId(requestId string) *VpnGatewaysDeleteCall { +// 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 *VpnTunnelsDeleteCall) RequestId(requestId string) *VpnTunnelsDeleteCall { c.urlParams_.Set("requestId", requestId) return c } @@ -47259,52 +69249,52 @@ func (c *VpnGatewaysDeleteCall) RequestId(requestId string) *VpnGatewaysDeleteCa // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *VpnGatewaysDeleteCall) Fields(s ...googleapi.Field) *VpnGatewaysDeleteCall { +func (c *VpnTunnelsDeleteCall) Fields(s ...googleapi.Field) *VpnTunnelsDeleteCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } // Context sets the context to be used in this call's Do method. -func (c *VpnGatewaysDeleteCall) Context(ctx context.Context) *VpnGatewaysDeleteCall { +func (c *VpnTunnelsDeleteCall) Context(ctx context.Context) *VpnTunnelsDeleteCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *VpnGatewaysDeleteCall) Header() http.Header { +func (c *VpnTunnelsDeleteCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *VpnGatewaysDeleteCall) doRequest(alt string) (*http.Response, error) { +func (c *VpnTunnelsDeleteCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) - var body io.Reader = nil c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/vpnGateways/{vpnGateway}") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/vpnTunnels/{vpnTunnel}") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("DELETE", urls, body) + req, err := http.NewRequest("DELETE", urls, nil) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "region": c.region, - "vpnGateway": c.vpnGateway, + "project": c.project, + "region": c.region, + "vpnTunnel": c.vpnTunnel, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.vpnTunnels.delete", "request", internallog.HTTPRequest(req, nil)) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.vpnGateways.delete" call. +// Do executes the "compute.vpnTunnels.delete" call. // 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 *VpnGatewaysDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) { +func (c *VpnTunnelsDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -47330,40 +69320,42 @@ func (c *VpnGatewaysDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, er }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.vpnTunnels.delete", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type VpnGatewaysGetCall struct { +type VpnTunnelsGetCall struct { s *Service project string region string - vpnGateway string + vpnTunnel string urlParams_ gensupport.URLParams ifNoneMatch_ string ctx_ context.Context header_ http.Header } -// Get: Returns the specified VPN gateway. +// Get: Returns the specified VpnTunnel resource. // // - project: Project ID for this request. // - region: Name of the region for this request. -// - vpnGateway: Name of the VPN gateway to return. -func (r *VpnGatewaysService) Get(project string, region string, vpnGateway string) *VpnGatewaysGetCall { - c := &VpnGatewaysGetCall{s: r.s, urlParams_: make(gensupport.URLParams)} +// - vpnTunnel: Name of the VpnTunnel resource to return. +func (r *VpnTunnelsService) Get(project string, region string, vpnTunnel string) *VpnTunnelsGetCall { + c := &VpnTunnelsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project c.region = region - c.vpnGateway = vpnGateway + c.vpnTunnel = vpnTunnel return c } // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *VpnGatewaysGetCall) Fields(s ...googleapi.Field) *VpnGatewaysGetCall { +func (c *VpnTunnelsGetCall) Fields(s ...googleapi.Field) *VpnTunnelsGetCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } @@ -47371,55 +69363,55 @@ func (c *VpnGatewaysGetCall) Fields(s ...googleapi.Field) *VpnGatewaysGetCall { // IfNoneMatch sets an 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. -func (c *VpnGatewaysGetCall) IfNoneMatch(entityTag string) *VpnGatewaysGetCall { +func (c *VpnTunnelsGetCall) IfNoneMatch(entityTag string) *VpnTunnelsGetCall { c.ifNoneMatch_ = entityTag return c } // Context sets the context to be used in this call's Do method. -func (c *VpnGatewaysGetCall) Context(ctx context.Context) *VpnGatewaysGetCall { +func (c *VpnTunnelsGetCall) Context(ctx context.Context) *VpnTunnelsGetCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *VpnGatewaysGetCall) Header() http.Header { +func (c *VpnTunnelsGetCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *VpnGatewaysGetCall) doRequest(alt string) (*http.Response, error) { +func (c *VpnTunnelsGetCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) if c.ifNoneMatch_ != "" { reqHeaders.Set("If-None-Match", c.ifNoneMatch_) } - var body io.Reader = nil c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/vpnGateways/{vpnGateway}") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/vpnTunnels/{vpnTunnel}") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("GET", urls, body) + req, err := http.NewRequest("GET", urls, nil) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "region": c.region, - "vpnGateway": c.vpnGateway, + "project": c.project, + "region": c.region, + "vpnTunnel": c.vpnTunnel, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.vpnTunnels.get", "request", internallog.HTTPRequest(req, nil)) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.vpnGateways.get" call. +// Do executes the "compute.vpnTunnels.get" call. // Any non-2xx status code is an error. Response headers are in either -// *VpnGateway.ServerResponse.Header or (if a response was returned at all) in +// *VpnTunnel.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 *VpnGatewaysGetCall) Do(opts ...googleapi.CallOption) (*VpnGateway, error) { +func (c *VpnTunnelsGetCall) Do(opts ...googleapi.CallOption) (*VpnTunnel, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -47438,47 +69430,307 @@ func (c *VpnGatewaysGetCall) Do(opts ...googleapi.CallOption) (*VpnGateway, erro if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } - ret := &VpnGateway{ + ret := &VpnTunnel{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.vpnTunnels.get", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type VpnGatewaysGetStatusCall struct { +type VpnTunnelsInsertCall struct { + s *Service + project string + region string + vpntunnel *VpnTunnel + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header +} + +// Insert: Creates a VpnTunnel resource in the specified project and region +// using +// the data included in the request. +// +// - project: Project ID for this request. +// - region: Name of the region for this request. +func (r *VpnTunnelsService) Insert(project string, region string, vpntunnel *VpnTunnel) *VpnTunnelsInsertCall { + c := &VpnTunnelsInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)} + c.project = project + c.region = region + c.vpntunnel = vpntunnel + 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 *VpnTunnelsInsertCall) RequestId(requestId string) *VpnTunnelsInsertCall { + 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 +// details. +func (c *VpnTunnelsInsertCall) Fields(s ...googleapi.Field) *VpnTunnelsInsertCall { + c.urlParams_.Set("fields", googleapi.CombineFields(s)) + return c +} + +// Context sets the context to be used in this call's Do method. +func (c *VpnTunnelsInsertCall) Context(ctx context.Context) *VpnTunnelsInsertCall { + c.ctx_ = ctx + return c +} + +// Header returns a http.Header that can be modified by the caller to add +// headers to the request. +func (c *VpnTunnelsInsertCall) Header() http.Header { + if c.header_ == nil { + c.header_ = make(http.Header) + } + return c.header_ +} + +func (c *VpnTunnelsInsertCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) + body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.vpntunnel) + if err != nil { + return nil, err + } + c.urlParams_.Set("alt", alt) + c.urlParams_.Set("prettyPrint", "false") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/vpnTunnels") + urls += "?" + c.urlParams_.Encode() + req, err := http.NewRequest("POST", urls, body) + if err != nil { + return nil, err + } + req.Header = reqHeaders + googleapi.Expand(req.URL, map[string]string{ + "project": c.project, + "region": c.region, + }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.vpnTunnels.insert", "request", internallog.HTTPRequest(req, body.Bytes())) + return gensupport.SendRequest(c.ctx_, c.s.client, req) +} + +// Do executes the "compute.vpnTunnels.insert" call. +// 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 *VpnTunnelsInsertCall) 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, gensupport.WrapError(&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, gensupport.WrapError(err) + } + ret := &Operation{ + ServerResponse: googleapi.ServerResponse{ + Header: res.Header, + HTTPStatusCode: res.StatusCode, + }, + } + target := &ret + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { + return nil, err + } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.vpnTunnels.insert", "response", internallog.HTTPResponse(res, b)) + return ret, nil +} + +type VpnTunnelsListCall struct { s *Service project string region string - vpnGateway string urlParams_ gensupport.URLParams ifNoneMatch_ string ctx_ context.Context header_ http.Header } -// GetStatus: Returns the status for the specified VPN gateway. +// List: Retrieves a list of VpnTunnel resources contained in the +// specified +// project and region. // // - project: Project ID for this request. // - region: Name of the region for this request. -// - vpnGateway: Name of the VPN gateway to return. -func (r *VpnGatewaysService) GetStatus(project string, region string, vpnGateway string) *VpnGatewaysGetStatusCall { - c := &VpnGatewaysGetStatusCall{s: r.s, urlParams_: make(gensupport.URLParams)} +func (r *VpnTunnelsService) List(project string, region string) *VpnTunnelsListCall { + c := &VpnTunnelsListCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project c.region = region - c.vpnGateway = vpnGateway + return c +} + +// Filter sets the optional parameter "filter": A filter expression that +// filters resources listed in the response. Most +// Compute resources support two types of filter expressions: +// expressions that support regular expressions and expressions that follow +// API improvement proposal AIP-160. +// These two types of filter expressions cannot be mixed in one request. +// +// If you want to use AIP-160, your expression must specify the field name, +// an +// operator, and the value that you want to use for filtering. The value +// must be a string, a number, or a boolean. The 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`. +// +// The `:*` comparison can be used to test whether a key has been defined. +// For example, to find all objects with `owner` label +// use: +// ``` +// labels.owner:* +// ``` +// +// 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 onresource 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) +// ``` +// +// If you want to use a regular expression, use the `eq` (equal) or `ne` +// (not equal) operator against a single un-parenthesized expression with +// or +// without quotes or against multiple parenthesized expressions. +// Examples: +// +// `fieldname eq unquoted literal` +// `fieldname eq 'single quoted literal'` +// `fieldname eq "double quoted literal" +// `(fieldname1 eq literal) (fieldname2 ne "literal")` +// +// The literal value is interpreted as a regular expression using GoogleRE2 +// library syntax. +// The literal value must match the entire field. +// +// For example, to filter for instances that do not end with name +// "instance", +// you would use `name ne .*instance`. +// +// You cannot combine constraints on multiple fields using regular +// expressions. +func (c *VpnTunnelsListCall) Filter(filter string) *VpnTunnelsListCall { + 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 *VpnTunnelsListCall) MaxResults(maxResults int64) *VpnTunnelsListCall { + 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 *VpnTunnelsListCall) OrderBy(orderBy string) *VpnTunnelsListCall { + 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 *VpnTunnelsListCall) PageToken(pageToken string) *VpnTunnelsListCall { + c.urlParams_.Set("pageToken", pageToken) + return c +} + +// ReturnPartialSuccess sets the optional parameter "returnPartialSuccess": +// Opt-in for partial success behavior which provides partial results in +// case +// of failure. The default value is false. +// +// For example, when partial success behavior is enabled, aggregatedList for +// a +// single zone scope either returns all resources in the zone or no +// resources, +// with an error code. +func (c *VpnTunnelsListCall) ReturnPartialSuccess(returnPartialSuccess bool) *VpnTunnelsListCall { + c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess)) return c } // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *VpnGatewaysGetStatusCall) Fields(s ...googleapi.Field) *VpnGatewaysGetStatusCall { +func (c *VpnTunnelsListCall) Fields(s ...googleapi.Field) *VpnTunnelsListCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } @@ -47486,56 +69738,54 @@ func (c *VpnGatewaysGetStatusCall) Fields(s ...googleapi.Field) *VpnGatewaysGetS // IfNoneMatch sets an 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. -func (c *VpnGatewaysGetStatusCall) IfNoneMatch(entityTag string) *VpnGatewaysGetStatusCall { +func (c *VpnTunnelsListCall) IfNoneMatch(entityTag string) *VpnTunnelsListCall { c.ifNoneMatch_ = entityTag return c } // Context sets the context to be used in this call's Do method. -func (c *VpnGatewaysGetStatusCall) Context(ctx context.Context) *VpnGatewaysGetStatusCall { +func (c *VpnTunnelsListCall) Context(ctx context.Context) *VpnTunnelsListCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *VpnGatewaysGetStatusCall) Header() http.Header { +func (c *VpnTunnelsListCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *VpnGatewaysGetStatusCall) doRequest(alt string) (*http.Response, error) { +func (c *VpnTunnelsListCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) if c.ifNoneMatch_ != "" { reqHeaders.Set("If-None-Match", c.ifNoneMatch_) } - var body io.Reader = nil c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/vpnGateways/{vpnGateway}/getStatus") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/vpnTunnels") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("GET", urls, body) + req, err := http.NewRequest("GET", urls, nil) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "region": c.region, - "vpnGateway": c.vpnGateway, + "project": c.project, + "region": c.region, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.vpnTunnels.list", "request", internallog.HTTPRequest(req, nil)) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.vpnGateways.getStatus" call. +// Do executes the "compute.vpnTunnels.list" call. // Any non-2xx status code is an error. Response headers are in either -// *VpnGatewaysGetStatusResponse.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 *VpnGatewaysGetStatusCall) Do(opts ...googleapi.CallOption) (*VpnGatewaysGetStatusResponse, error) { +// *VpnTunnelList.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 *VpnTunnelsListCall) Do(opts ...googleapi.CallOption) (*VpnTunnelList, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -47554,53 +69804,87 @@ func (c *VpnGatewaysGetStatusCall) Do(opts ...googleapi.CallOption) (*VpnGateway if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } - ret := &VpnGatewaysGetStatusResponse{ + ret := &VpnTunnelList{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.vpnTunnels.list", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type VpnGatewaysInsertCall struct { - s *Service - project string - region string - vpngateway *VpnGateway - urlParams_ gensupport.URLParams - ctx_ context.Context - header_ http.Header +// 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 *VpnTunnelsListCall) Pages(ctx context.Context, f func(*VpnTunnelList) error) error { + c.ctx_ = ctx + defer c.PageToken(c.urlParams_.Get("pageToken")) + 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) + } +} + +type VpnTunnelsSetLabelsCall struct { + s *Service + project string + region string + resource string + regionsetlabelsrequest *RegionSetLabelsRequest + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header } -// Insert: Creates a VPN gateway in the specified project and region using the -// data included in the request. +// SetLabels: Sets the labels on a VpnTunnel. To learn more about labels, read +// theLabeling +// Resources documentation. // // - project: Project ID for this request. -// - region: Name of the region for this request. -func (r *VpnGatewaysService) Insert(project string, region string, vpngateway *VpnGateway) *VpnGatewaysInsertCall { - c := &VpnGatewaysInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)} +// - region: The region for this request. +// - resource: Name or id of the resource for this request. +func (r *VpnTunnelsService) SetLabels(project string, region string, resource string, regionsetlabelsrequest *RegionSetLabelsRequest) *VpnTunnelsSetLabelsCall { + c := &VpnTunnelsSetLabelsCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project c.region = region - c.vpngateway = vpngateway + c.resource = resource + c.regionsetlabelsrequest = regionsetlabelsrequest 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 *VpnGatewaysInsertCall) RequestId(requestId string) *VpnGatewaysInsertCall { +// 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 *VpnTunnelsSetLabelsCall) RequestId(requestId string) *VpnTunnelsSetLabelsCall { c.urlParams_.Set("requestId", requestId) return c } @@ -47608,36 +69892,35 @@ func (c *VpnGatewaysInsertCall) RequestId(requestId string) *VpnGatewaysInsertCa // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *VpnGatewaysInsertCall) Fields(s ...googleapi.Field) *VpnGatewaysInsertCall { +func (c *VpnTunnelsSetLabelsCall) Fields(s ...googleapi.Field) *VpnTunnelsSetLabelsCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } // Context sets the context to be used in this call's Do method. -func (c *VpnGatewaysInsertCall) Context(ctx context.Context) *VpnGatewaysInsertCall { +func (c *VpnTunnelsSetLabelsCall) Context(ctx context.Context) *VpnTunnelsSetLabelsCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *VpnGatewaysInsertCall) Header() http.Header { +func (c *VpnTunnelsSetLabelsCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *VpnGatewaysInsertCall) doRequest(alt string) (*http.Response, error) { +func (c *VpnTunnelsSetLabelsCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) - var body io.Reader = nil - body, err := googleapi.WithoutDataWrapper.JSONReader(c.vpngateway) + body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.regionsetlabelsrequest) if err != nil { return nil, err } c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/vpnGateways") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/vpnTunnels/{resource}/setLabels") urls += "?" + c.urlParams_.Encode() req, err := http.NewRequest("POST", urls, body) if err != nil { @@ -47645,18 +69928,20 @@ func (c *VpnGatewaysInsertCall) doRequest(alt string) (*http.Response, error) { } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "region": c.region, + "project": c.project, + "region": c.region, + "resource": c.resource, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.vpnTunnels.setLabels", "request", internallog.HTTPRequest(req, body.Bytes())) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.vpnGateways.insert" call. +// Do executes the "compute.vpnTunnels.setLabels" call. // 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 *VpnGatewaysInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) { +func (c *VpnTunnelsSetLabelsCall) Do(opts ...googleapi.CallOption) (*Operation, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -47682,171 +69967,109 @@ func (c *VpnGatewaysInsertCall) Do(opts ...googleapi.CallOption) (*Operation, er }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.vpnTunnels.setLabels", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type VpnGatewaysListCall struct { - s *Service - project string - region string - urlParams_ gensupport.URLParams - ifNoneMatch_ string - ctx_ context.Context - header_ http.Header +type WireGroupsDeleteCall struct { + s *Service + project string + crossSiteNetwork string + wireGroup string + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header } -// List: Retrieves a list of VPN gateways available to the specified project -// and region. +// Delete: Deletes the specified wire group in the given scope. // +// - crossSiteNetwork: . // - project: Project ID for this request. -// - region: Name of the region for this request. -func (r *VpnGatewaysService) List(project string, region string) *VpnGatewaysListCall { - c := &VpnGatewaysListCall{s: r.s, urlParams_: make(gensupport.URLParams)} +// - wireGroup: Name of the wire group resource to delete. +func (r *WireGroupsService) Delete(project string, crossSiteNetwork string, wireGroup string) *WireGroupsDeleteCall { + c := &WireGroupsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project - c.region = region - return c -} - -// Filter sets the optional parameter "filter": A filter expression that -// filters resources listed in the response. Most Compute resources support two -// types of filter expressions: expressions that support regular expressions -// and expressions that follow API improvement proposal AIP-160. These two -// types of filter expressions cannot be mixed in one request. If you want to -// use AIP-160, your expression must specify the field name, an operator, and -// the value that you want to use for filtering. The value must be a string, a -// number, or a boolean. The 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`. The `:*` comparison can be used to test whether a key has -// been defined. For example, to find all objects with `owner` label use: ``` -// labels.owner:* ``` 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) ``` If you want to use a regular -// expression, use the `eq` (equal) or `ne` (not equal) operator against a -// single un-parenthesized expression with or without quotes or against -// multiple parenthesized expressions. Examples: `fieldname eq unquoted -// literal` `fieldname eq 'single quoted literal'` `fieldname eq "double quoted -// literal" `(fieldname1 eq literal) (fieldname2 ne "literal")` The literal -// value is interpreted as a regular expression using Google RE2 library -// syntax. The literal value must match the entire field. For example, to -// filter for instances that do not end with name "instance", you would use -// `name ne .*instance`. You cannot combine constraints on multiple fields -// using regular expressions. -func (c *VpnGatewaysListCall) Filter(filter string) *VpnGatewaysListCall { - 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 *VpnGatewaysListCall) MaxResults(maxResults int64) *VpnGatewaysListCall { - 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 *VpnGatewaysListCall) OrderBy(orderBy string) *VpnGatewaysListCall { - 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 *VpnGatewaysListCall) PageToken(pageToken string) *VpnGatewaysListCall { - c.urlParams_.Set("pageToken", pageToken) + c.crossSiteNetwork = crossSiteNetwork + c.wireGroup = wireGroup return c } -// ReturnPartialSuccess sets the optional parameter "returnPartialSuccess": -// Opt-in for partial success behavior which provides partial results in case -// of failure. The default value is false. For example, when partial success -// behavior is enabled, aggregatedList for a single zone scope either returns -// all resources in the zone or no resources, with an error code. -func (c *VpnGatewaysListCall) ReturnPartialSuccess(returnPartialSuccess bool) *VpnGatewaysListCall { - c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess)) +// 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). +// end_interface: MixerMutationRequestBuilder +func (c *WireGroupsDeleteCall) RequestId(requestId string) *WireGroupsDeleteCall { + 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 // details. -func (c *VpnGatewaysListCall) Fields(s ...googleapi.Field) *VpnGatewaysListCall { +func (c *WireGroupsDeleteCall) Fields(s ...googleapi.Field) *WireGroupsDeleteCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } -// IfNoneMatch sets an 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. -func (c *VpnGatewaysListCall) IfNoneMatch(entityTag string) *VpnGatewaysListCall { - c.ifNoneMatch_ = entityTag - return c -} - // Context sets the context to be used in this call's Do method. -func (c *VpnGatewaysListCall) Context(ctx context.Context) *VpnGatewaysListCall { +func (c *WireGroupsDeleteCall) Context(ctx context.Context) *WireGroupsDeleteCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *VpnGatewaysListCall) Header() http.Header { +func (c *WireGroupsDeleteCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *VpnGatewaysListCall) doRequest(alt string) (*http.Response, error) { +func (c *WireGroupsDeleteCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) - if c.ifNoneMatch_ != "" { - reqHeaders.Set("If-None-Match", c.ifNoneMatch_) - } - var body io.Reader = nil c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/vpnGateways") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/crossSiteNetworks/{crossSiteNetwork}/wireGroups/{wireGroup}") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("GET", urls, body) + req, err := http.NewRequest("DELETE", urls, nil) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "region": c.region, + "project": c.project, + "crossSiteNetwork": c.crossSiteNetwork, + "wireGroup": c.wireGroup, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.wireGroups.delete", "request", internallog.HTTPRequest(req, nil)) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.vpnGateways.list" call. +// Do executes the "compute.wireGroups.delete" call. // Any non-2xx status code is an error. Response headers are in either -// *VpnGatewayList.ServerResponse.Header or (if a response was returned at all) -// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check +// *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 *VpnGatewaysListCall) Do(opts ...googleapi.CallOption) (*VpnGatewayList, error) { +func (c *WireGroupsDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -47865,134 +70088,105 @@ func (c *VpnGatewaysListCall) Do(opts ...googleapi.CallOption) (*VpnGatewayList, if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } - ret := &VpnGatewayList{ + 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 -} - -// 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 *VpnGatewaysListCall) Pages(ctx context.Context, f func(*VpnGatewayList) error) error { - c.ctx_ = ctx - defer c.PageToken(c.urlParams_.Get("pageToken")) - 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) + }, + } + target := &ret + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { + return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.wireGroups.delete", "response", internallog.HTTPResponse(res, b)) + return ret, nil } -type VpnGatewaysSetLabelsCall struct { - s *Service - project string - region string - resource string - regionsetlabelsrequest *RegionSetLabelsRequest - urlParams_ gensupport.URLParams - ctx_ context.Context - header_ http.Header +type WireGroupsGetCall struct { + s *Service + project string + crossSiteNetwork string + wireGroup string + urlParams_ gensupport.URLParams + ifNoneMatch_ string + ctx_ context.Context + header_ http.Header } -// SetLabels: Sets the labels on a VpnGateway. To learn more about labels, read -// the Labeling Resources documentation. +// Get: Gets the specified wire group resource in the given scope. // +// - crossSiteNetwork: . // - project: Project ID for this request. -// - region: The region for this request. -// - resource: Name or id of the resource for this request. -func (r *VpnGatewaysService) SetLabels(project string, region string, resource string, regionsetlabelsrequest *RegionSetLabelsRequest) *VpnGatewaysSetLabelsCall { - c := &VpnGatewaysSetLabelsCall{s: r.s, urlParams_: make(gensupport.URLParams)} +// - wireGroup: Name of the wire group resource to return. +func (r *WireGroupsService) Get(project string, crossSiteNetwork string, wireGroup string) *WireGroupsGetCall { + c := &WireGroupsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project - c.region = region - c.resource = resource - c.regionsetlabelsrequest = regionsetlabelsrequest - 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 *VpnGatewaysSetLabelsCall) RequestId(requestId string) *VpnGatewaysSetLabelsCall { - c.urlParams_.Set("requestId", requestId) + c.crossSiteNetwork = crossSiteNetwork + c.wireGroup = wireGroup return c } // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *VpnGatewaysSetLabelsCall) Fields(s ...googleapi.Field) *VpnGatewaysSetLabelsCall { +func (c *WireGroupsGetCall) Fields(s ...googleapi.Field) *WireGroupsGetCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } +// IfNoneMatch sets an 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. +func (c *WireGroupsGetCall) IfNoneMatch(entityTag string) *WireGroupsGetCall { + c.ifNoneMatch_ = entityTag + return c +} + // Context sets the context to be used in this call's Do method. -func (c *VpnGatewaysSetLabelsCall) Context(ctx context.Context) *VpnGatewaysSetLabelsCall { +func (c *WireGroupsGetCall) Context(ctx context.Context) *WireGroupsGetCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *VpnGatewaysSetLabelsCall) Header() http.Header { +func (c *WireGroupsGetCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *VpnGatewaysSetLabelsCall) doRequest(alt string) (*http.Response, error) { - reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) - var body io.Reader = nil - body, err := googleapi.WithoutDataWrapper.JSONReader(c.regionsetlabelsrequest) - if err != nil { - return nil, err +func (c *WireGroupsGetCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) + if c.ifNoneMatch_ != "" { + reqHeaders.Set("If-None-Match", c.ifNoneMatch_) } c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/vpnGateways/{resource}/setLabels") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/crossSiteNetworks/{crossSiteNetwork}/wireGroups/{wireGroup}") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("POST", urls, body) + req, err := http.NewRequest("GET", urls, nil) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "region": c.region, - "resource": c.resource, + "project": c.project, + "crossSiteNetwork": c.crossSiteNetwork, + "wireGroup": c.wireGroup, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.wireGroups.get", "request", internallog.HTTPRequest(req, nil)) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.vpnGateways.setLabels" call. +// Do executes the "compute.wireGroups.get" call. // 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 +// *WireGroup.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 *VpnGatewaysSetLabelsCall) Do(opts ...googleapi.CallOption) (*Operation, error) { +func (c *WireGroupsGetCall) Do(opts ...googleapi.CallOption) (*WireGroup, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -48011,78 +70205,107 @@ func (c *VpnGatewaysSetLabelsCall) Do(opts ...googleapi.CallOption) (*Operation, if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } - ret := &Operation{ + ret := &WireGroup{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.wireGroups.get", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type VpnGatewaysTestIamPermissionsCall struct { - s *Service - project string - region string - resource string - testpermissionsrequest *TestPermissionsRequest - urlParams_ gensupport.URLParams - ctx_ context.Context - header_ http.Header +type WireGroupsInsertCall struct { + s *Service + project string + crossSiteNetwork string + wiregroup *WireGroup + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header } -// TestIamPermissions: Returns permissions that a caller has on the specified -// resource. +// Insert: Creates a wire group in the specified project in the given +// scope +// using the parameters that are included in the request. // +// - crossSiteNetwork: . // - project: Project ID for this request. -// - region: The name of the region for this request. -// - resource: Name or id of the resource for this request. -func (r *VpnGatewaysService) TestIamPermissions(project string, region string, resource string, testpermissionsrequest *TestPermissionsRequest) *VpnGatewaysTestIamPermissionsCall { - c := &VpnGatewaysTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)} +func (r *WireGroupsService) Insert(project string, crossSiteNetwork string, wiregroup *WireGroup) *WireGroupsInsertCall { + c := &WireGroupsInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project - c.region = region - c.resource = resource - c.testpermissionsrequest = testpermissionsrequest + c.crossSiteNetwork = crossSiteNetwork + c.wiregroup = wiregroup + 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). +// end_interface: MixerMutationRequestBuilder +func (c *WireGroupsInsertCall) RequestId(requestId string) *WireGroupsInsertCall { + c.urlParams_.Set("requestId", requestId) + return c +} + +// ValidateOnly sets the optional parameter "validateOnly": [Input Only] +// Validate the new configuration, but don't create it. +func (c *WireGroupsInsertCall) ValidateOnly(validateOnly bool) *WireGroupsInsertCall { + c.urlParams_.Set("validateOnly", fmt.Sprint(validateOnly)) return c } // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *VpnGatewaysTestIamPermissionsCall) Fields(s ...googleapi.Field) *VpnGatewaysTestIamPermissionsCall { +func (c *WireGroupsInsertCall) Fields(s ...googleapi.Field) *WireGroupsInsertCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } // Context sets the context to be used in this call's Do method. -func (c *VpnGatewaysTestIamPermissionsCall) Context(ctx context.Context) *VpnGatewaysTestIamPermissionsCall { +func (c *WireGroupsInsertCall) Context(ctx context.Context) *WireGroupsInsertCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *VpnGatewaysTestIamPermissionsCall) Header() http.Header { +func (c *WireGroupsInsertCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *VpnGatewaysTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) { +func (c *WireGroupsInsertCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) - var body io.Reader = nil - body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest) + body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.wiregroup) if err != nil { return nil, err } c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/vpnGateways/{resource}/testIamPermissions") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/crossSiteNetworks/{crossSiteNetwork}/wireGroups") urls += "?" + c.urlParams_.Encode() req, err := http.NewRequest("POST", urls, body) if err != nil { @@ -48090,20 +70313,19 @@ func (c *VpnGatewaysTestIamPermissionsCall) doRequest(alt string) (*http.Respons } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "region": c.region, - "resource": c.resource, + "project": c.project, + "crossSiteNetwork": c.crossSiteNetwork, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.wireGroups.insert", "request", internallog.HTTPRequest(req, body.Bytes())) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.vpnGateways.testIamPermissions" call. +// Do executes the "compute.wireGroups.insert" call. // Any non-2xx status code is an error. Response headers are in either -// *TestPermissionsResponse.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 *VpnGatewaysTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) { +// *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 *WireGroupsInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -48122,142 +70344,174 @@ func (c *VpnGatewaysTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*T if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } - ret := &TestPermissionsResponse{ + ret := &Operation{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.wireGroups.insert", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type VpnTunnelsAggregatedListCall struct { - s *Service - project string - urlParams_ gensupport.URLParams - ifNoneMatch_ string - ctx_ context.Context - header_ http.Header +type WireGroupsListCall struct { + s *Service + project string + crossSiteNetwork string + urlParams_ gensupport.URLParams + ifNoneMatch_ string + ctx_ context.Context + header_ http.Header } -// AggregatedList: Retrieves an aggregated list of VPN tunnels. To prevent -// failure, Google recommends that you set the `returnPartialSuccess` parameter -// to `true`. +// List: Lists the wire groups for a project in the given scope. // +// - crossSiteNetwork: . // - project: Project ID for this request. -func (r *VpnTunnelsService) AggregatedList(project string) *VpnTunnelsAggregatedListCall { - c := &VpnTunnelsAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)} +func (r *WireGroupsService) List(project string, crossSiteNetwork string) *WireGroupsListCall { + c := &WireGroupsListCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project + c.crossSiteNetwork = crossSiteNetwork return c } // Filter sets the optional parameter "filter": A filter expression that -// filters resources listed in the response. Most Compute resources support two -// types of filter expressions: expressions that support regular expressions -// and expressions that follow API improvement proposal AIP-160. These two -// types of filter expressions cannot be mixed in one request. If you want to -// use AIP-160, your expression must specify the field name, an operator, and -// the value that you want to use for filtering. The value must be a string, a -// number, or a boolean. The 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`. The `:*` comparison can be used to test whether a key has -// been defined. For example, to find all objects with `owner` label use: ``` -// labels.owner:* ``` 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) ``` If you want to use a regular -// expression, use the `eq` (equal) or `ne` (not equal) operator against a -// single un-parenthesized expression with or without quotes or against -// multiple parenthesized expressions. Examples: `fieldname eq unquoted -// literal` `fieldname eq 'single quoted literal'` `fieldname eq "double quoted -// literal" `(fieldname1 eq literal) (fieldname2 ne "literal")` The literal -// value is interpreted as a regular expression using Google RE2 library -// syntax. The literal value must match the entire field. For example, to -// filter for instances that do not end with name "instance", you would use -// `name ne .*instance`. You cannot combine constraints on multiple fields -// using regular expressions. -func (c *VpnTunnelsAggregatedListCall) Filter(filter string) *VpnTunnelsAggregatedListCall { +// filters resources listed in the response. Most +// Compute resources support two types of filter expressions: +// expressions that support regular expressions and expressions that follow +// API improvement proposal AIP-160. +// These two types of filter expressions cannot be mixed in one request. +// +// If you want to use AIP-160, your expression must specify the field name, +// an +// operator, and the value that you want to use for filtering. The value +// must be a string, a number, or a boolean. The 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`. +// +// The `:*` comparison can be used to test whether a key has been defined. +// For example, to find all objects with `owner` label +// use: +// ``` +// labels.owner:* +// ``` +// +// 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 onresource 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) +// ``` +// +// If you want to use a regular expression, use the `eq` (equal) or `ne` +// (not equal) operator against a single un-parenthesized expression with +// or +// without quotes or against multiple parenthesized expressions. +// Examples: +// +// `fieldname eq unquoted literal` +// `fieldname eq 'single quoted literal'` +// `fieldname eq "double quoted literal" +// `(fieldname1 eq literal) (fieldname2 ne "literal")` +// +// The literal value is interpreted as a regular expression using GoogleRE2 +// library syntax. +// The literal value must match the entire field. +// +// For example, to filter for instances that do not end with name +// "instance", +// you would use `name ne .*instance`. +// +// You cannot combine constraints on multiple fields using regular +// expressions. +func (c *WireGroupsListCall) Filter(filter string) *WireGroupsListCall { c.urlParams_.Set("filter", filter) return c } -// IncludeAllScopes sets the optional parameter "includeAllScopes": Indicates -// whether every visible scope for each scope type (zone, region, global) -// should be included in the response. For new resource types added after this -// field, the flag has no effect as new resource types will always include -// every visible scope for each scope type in response. For resource types -// which predate this field, if this flag is omitted or false, only scopes of -// the scope types where the resource type is expected to be found will be -// included. -func (c *VpnTunnelsAggregatedListCall) IncludeAllScopes(includeAllScopes bool) *VpnTunnelsAggregatedListCall { - c.urlParams_.Set("includeAllScopes", fmt.Sprint(includeAllScopes)) - 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 *VpnTunnelsAggregatedListCall) MaxResults(maxResults int64) *VpnTunnelsAggregatedListCall { +// 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 *WireGroupsListCall) MaxResults(maxResults int64) *WireGroupsListCall { 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 *VpnTunnelsAggregatedListCall) OrderBy(orderBy string) *VpnTunnelsAggregatedListCall { +// 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 *WireGroupsListCall) OrderBy(orderBy string) *WireGroupsListCall { 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 *VpnTunnelsAggregatedListCall) PageToken(pageToken string) *VpnTunnelsAggregatedListCall { +// use. Set `pageToken` to the +// `nextPageToken` returned by a previous list request to get +// the next page of results. +func (c *WireGroupsListCall) PageToken(pageToken string) *WireGroupsListCall { c.urlParams_.Set("pageToken", pageToken) return c } // ReturnPartialSuccess sets the optional parameter "returnPartialSuccess": -// Opt-in for partial success behavior which provides partial results in case -// of failure. The default value is false. For example, when partial success -// behavior is enabled, aggregatedList for a single zone scope either returns -// all resources in the zone or no resources, with an error code. -func (c *VpnTunnelsAggregatedListCall) ReturnPartialSuccess(returnPartialSuccess bool) *VpnTunnelsAggregatedListCall { +// Opt-in for partial success behavior which provides partial results in +// case +// of failure. The default value is false. +// +// For example, when partial success behavior is enabled, aggregatedList for +// a +// single zone scope either returns all resources in the zone or no +// resources, +// with an error code. +func (c *WireGroupsListCall) ReturnPartialSuccess(returnPartialSuccess bool) *WireGroupsListCall { c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess)) return c } -// ServiceProjectNumber sets the optional parameter "serviceProjectNumber": The -// Shared VPC service project id or service project number for which aggregated -// list request is invoked for subnetworks list-usable api. -func (c *VpnTunnelsAggregatedListCall) ServiceProjectNumber(serviceProjectNumber int64) *VpnTunnelsAggregatedListCall { - c.urlParams_.Set("serviceProjectNumber", fmt.Sprint(serviceProjectNumber)) - return c -} - // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *VpnTunnelsAggregatedListCall) Fields(s ...googleapi.Field) *VpnTunnelsAggregatedListCall { +func (c *WireGroupsListCall) Fields(s ...googleapi.Field) *WireGroupsListCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } @@ -48265,54 +70519,54 @@ func (c *VpnTunnelsAggregatedListCall) Fields(s ...googleapi.Field) *VpnTunnelsA // IfNoneMatch sets an 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. -func (c *VpnTunnelsAggregatedListCall) IfNoneMatch(entityTag string) *VpnTunnelsAggregatedListCall { +func (c *WireGroupsListCall) IfNoneMatch(entityTag string) *WireGroupsListCall { c.ifNoneMatch_ = entityTag return c } // Context sets the context to be used in this call's Do method. -func (c *VpnTunnelsAggregatedListCall) Context(ctx context.Context) *VpnTunnelsAggregatedListCall { +func (c *WireGroupsListCall) Context(ctx context.Context) *WireGroupsListCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *VpnTunnelsAggregatedListCall) Header() http.Header { +func (c *WireGroupsListCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *VpnTunnelsAggregatedListCall) doRequest(alt string) (*http.Response, error) { +func (c *WireGroupsListCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) if c.ifNoneMatch_ != "" { reqHeaders.Set("If-None-Match", c.ifNoneMatch_) } - var body io.Reader = nil c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/aggregated/vpnTunnels") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/crossSiteNetworks/{crossSiteNetwork}/wireGroups") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("GET", urls, body) + req, err := http.NewRequest("GET", urls, nil) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, + "project": c.project, + "crossSiteNetwork": c.crossSiteNetwork, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.wireGroups.list", "request", internallog.HTTPRequest(req, nil)) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.vpnTunnels.aggregatedList" call. +// Do executes the "compute.wireGroups.list" call. // Any non-2xx status code is an error. Response headers are in either -// *VpnTunnelAggregatedList.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 *VpnTunnelsAggregatedListCall) Do(opts ...googleapi.CallOption) (*VpnTunnelAggregatedList, error) { +// *WireGroupList.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 *WireGroupsListCall) Do(opts ...googleapi.CallOption) (*WireGroupList, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -48331,23 +70585,25 @@ func (c *VpnTunnelsAggregatedListCall) Do(opts ...googleapi.CallOption) (*VpnTun if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } - ret := &VpnTunnelAggregatedList{ + ret := &WireGroupList{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.wireGroups.list", "response", internallog.HTTPResponse(res, b)) return ret, nil } // 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 *VpnTunnelsAggregatedListCall) Pages(ctx context.Context, f func(*VpnTunnelAggregatedList) error) error { +func (c *WireGroupsListCall) Pages(ctx context.Context, f func(*WireGroupList) error) error { c.ctx_ = ctx defer c.PageToken(c.urlParams_.Get("pageToken")) for { @@ -48365,93 +70621,125 @@ func (c *VpnTunnelsAggregatedListCall) Pages(ctx context.Context, f func(*VpnTun } } -type VpnTunnelsDeleteCall struct { - s *Service - project string - region string - vpnTunnel string - urlParams_ gensupport.URLParams - ctx_ context.Context - header_ http.Header +type WireGroupsPatchCall struct { + s *Service + project string + crossSiteNetwork string + wireGroup string + wiregroup *WireGroup + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header } -// Delete: Deletes the specified VpnTunnel resource. +// Patch: Updates the specified wire group resource with the data included in +// the +// request. This method supportsPATCH +// semantics and usesJSON merge +// patch format and processing rules. // +// - crossSiteNetwork: . // - project: Project ID for this request. -// - region: Name of the region for this request. -// - vpnTunnel: Name of the VpnTunnel resource to delete. -func (r *VpnTunnelsService) Delete(project string, region string, vpnTunnel string) *VpnTunnelsDeleteCall { - c := &VpnTunnelsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)} +// - wireGroup: Name of the WireGroups resource to patch. +func (r *WireGroupsService) Patch(project string, crossSiteNetwork string, wireGroup string, wiregroup *WireGroup) *WireGroupsPatchCall { + c := &WireGroupsPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project - c.region = region - c.vpnTunnel = vpnTunnel + c.crossSiteNetwork = crossSiteNetwork + c.wireGroup = wireGroup + c.wiregroup = wiregroup 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 *VpnTunnelsDeleteCall) RequestId(requestId string) *VpnTunnelsDeleteCall { +// 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). +// end_interface: MixerMutationRequestBuilder +func (c *WireGroupsPatchCall) RequestId(requestId string) *WireGroupsPatchCall { c.urlParams_.Set("requestId", requestId) return c } +// UpdateMask sets the optional parameter "updateMask": update_mask indicates +// fields to be updated as part of this request. +func (c *WireGroupsPatchCall) UpdateMask(updateMask string) *WireGroupsPatchCall { + c.urlParams_.Set("updateMask", updateMask) + return c +} + +// ValidateOnly sets the optional parameter "validateOnly": [Input Only] +// Validate the new configuration, but don't update it. +func (c *WireGroupsPatchCall) ValidateOnly(validateOnly bool) *WireGroupsPatchCall { + c.urlParams_.Set("validateOnly", fmt.Sprint(validateOnly)) + return c +} + // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *VpnTunnelsDeleteCall) Fields(s ...googleapi.Field) *VpnTunnelsDeleteCall { +func (c *WireGroupsPatchCall) Fields(s ...googleapi.Field) *WireGroupsPatchCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } // Context sets the context to be used in this call's Do method. -func (c *VpnTunnelsDeleteCall) Context(ctx context.Context) *VpnTunnelsDeleteCall { +func (c *WireGroupsPatchCall) Context(ctx context.Context) *WireGroupsPatchCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *VpnTunnelsDeleteCall) Header() http.Header { +func (c *WireGroupsPatchCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *VpnTunnelsDeleteCall) doRequest(alt string) (*http.Response, error) { - reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) - var body io.Reader = nil +func (c *WireGroupsPatchCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) + body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.wiregroup) + if err != nil { + return nil, err + } c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/vpnTunnels/{vpnTunnel}") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/crossSiteNetworks/{crossSiteNetwork}/wireGroups/{wireGroup}") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("DELETE", urls, body) + req, err := http.NewRequest("PATCH", urls, body) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "region": c.region, - "vpnTunnel": c.vpnTunnel, + "project": c.project, + "crossSiteNetwork": c.crossSiteNetwork, + "wireGroup": c.wireGroup, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.wireGroups.patch", "request", internallog.HTTPRequest(req, body.Bytes())) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.vpnTunnels.delete" call. +// Do executes the "compute.wireGroups.patch" call. // 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 *VpnTunnelsDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) { +func (c *WireGroupsPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -48477,217 +70765,185 @@ func (c *VpnTunnelsDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, err }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.wireGroups.patch", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type VpnTunnelsGetCall struct { - s *Service - project string - region string - vpnTunnel string - urlParams_ gensupport.URLParams - ifNoneMatch_ string - ctx_ context.Context - header_ http.Header +type ZoneOperationsDeleteCall struct { + s *Service + project string + zone string + operationid string + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header } -// Get: Returns the specified VpnTunnel resource. +// Delete: Deletes the specified zone-specific Operations resource. // +// - operation: Name of the Operations resource to delete, or its unique +// numeric +// +// identifier. // - project: Project ID for this request. -// - region: Name of the region for this request. -// - vpnTunnel: Name of the VpnTunnel resource to return. -func (r *VpnTunnelsService) Get(project string, region string, vpnTunnel string) *VpnTunnelsGetCall { - c := &VpnTunnelsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)} +// - zone: Name of the zone for this request. +func (r *ZoneOperationsService) Delete(project string, zone string, operationid string) *ZoneOperationsDeleteCall { + c := &ZoneOperationsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project - c.region = region - c.vpnTunnel = vpnTunnel + c.zone = zone + c.operationid = operationid return c } // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *VpnTunnelsGetCall) Fields(s ...googleapi.Field) *VpnTunnelsGetCall { +func (c *ZoneOperationsDeleteCall) Fields(s ...googleapi.Field) *ZoneOperationsDeleteCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } -// IfNoneMatch sets an 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. -func (c *VpnTunnelsGetCall) IfNoneMatch(entityTag string) *VpnTunnelsGetCall { - c.ifNoneMatch_ = entityTag - return c -} - // Context sets the context to be used in this call's Do method. -func (c *VpnTunnelsGetCall) Context(ctx context.Context) *VpnTunnelsGetCall { +func (c *ZoneOperationsDeleteCall) Context(ctx context.Context) *ZoneOperationsDeleteCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *VpnTunnelsGetCall) Header() http.Header { +func (c *ZoneOperationsDeleteCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *VpnTunnelsGetCall) doRequest(alt string) (*http.Response, error) { +func (c *ZoneOperationsDeleteCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) - if c.ifNoneMatch_ != "" { - reqHeaders.Set("If-None-Match", c.ifNoneMatch_) - } - var body io.Reader = nil c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/vpnTunnels/{vpnTunnel}") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/operations/{operation}") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("GET", urls, body) + req, err := http.NewRequest("DELETE", urls, nil) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ "project": c.project, - "region": c.region, - "vpnTunnel": c.vpnTunnel, + "zone": c.zone, + "operation": c.operationid, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.zoneOperations.delete", "request", internallog.HTTPRequest(req, nil)) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.vpnTunnels.get" call. -// Any non-2xx status code is an error. Response headers are in either -// *VpnTunnel.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 *VpnTunnelsGetCall) Do(opts ...googleapi.CallOption) (*VpnTunnel, error) { +// Do executes the "compute.zoneOperations.delete" call. +func (c *ZoneOperationsDeleteCall) Do(opts ...googleapi.CallOption) 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, gensupport.WrapError(&googleapi.Error{ - Code: res.StatusCode, - Header: res.Header, - }) - } if err != nil { - return nil, err + return err } defer googleapi.CloseBody(res) if err := googleapi.CheckResponse(res); err != nil { - return nil, gensupport.WrapError(err) - } - ret := &VpnTunnel{ - ServerResponse: googleapi.ServerResponse{ - Header: res.Header, - HTTPStatusCode: res.StatusCode, - }, - } - target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { - return nil, err + return gensupport.WrapError(err) } - return ret, nil + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.zoneOperations.delete", "response", internallog.HTTPResponse(res, nil)) + return nil } -type VpnTunnelsInsertCall struct { - s *Service - project string - region string - vpntunnel *VpnTunnel - urlParams_ gensupport.URLParams - ctx_ context.Context - header_ http.Header +type ZoneOperationsGetCall struct { + s *Service + project string + zone string + operationid string + urlParams_ gensupport.URLParams + ifNoneMatch_ string + ctx_ context.Context + header_ http.Header } -// Insert: Creates a VpnTunnel resource in the specified project and region -// using the data included in the request. +// Get: Retrieves the specified zone-specific Operations resource. +// +// - operation: Name of the Operations resource to return, or its unique +// numeric // +// identifier. // - project: Project ID for this request. -// - region: Name of the region for this request. -func (r *VpnTunnelsService) Insert(project string, region string, vpntunnel *VpnTunnel) *VpnTunnelsInsertCall { - c := &VpnTunnelsInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)} +// - zone: Name of the zone for this request. +func (r *ZoneOperationsService) Get(project string, zone string, operationid string) *ZoneOperationsGetCall { + c := &ZoneOperationsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project - c.region = region - c.vpntunnel = vpntunnel - 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 *VpnTunnelsInsertCall) RequestId(requestId string) *VpnTunnelsInsertCall { - c.urlParams_.Set("requestId", requestId) + c.zone = zone + c.operationid = operationid return c } // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *VpnTunnelsInsertCall) Fields(s ...googleapi.Field) *VpnTunnelsInsertCall { +func (c *ZoneOperationsGetCall) Fields(s ...googleapi.Field) *ZoneOperationsGetCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } +// IfNoneMatch sets an 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. +func (c *ZoneOperationsGetCall) IfNoneMatch(entityTag string) *ZoneOperationsGetCall { + c.ifNoneMatch_ = entityTag + return c +} + // Context sets the context to be used in this call's Do method. -func (c *VpnTunnelsInsertCall) Context(ctx context.Context) *VpnTunnelsInsertCall { +func (c *ZoneOperationsGetCall) Context(ctx context.Context) *ZoneOperationsGetCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *VpnTunnelsInsertCall) Header() http.Header { +func (c *ZoneOperationsGetCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *VpnTunnelsInsertCall) doRequest(alt string) (*http.Response, error) { - reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) - var body io.Reader = nil - body, err := googleapi.WithoutDataWrapper.JSONReader(c.vpntunnel) - if err != nil { - return nil, err +func (c *ZoneOperationsGetCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) + if c.ifNoneMatch_ != "" { + reqHeaders.Set("If-None-Match", c.ifNoneMatch_) } c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/vpnTunnels") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/operations/{operation}") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("POST", urls, body) + req, err := http.NewRequest("GET", urls, nil) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "region": c.region, + "project": c.project, + "zone": c.zone, + "operation": c.operationid, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.zoneOperations.get", "request", internallog.HTTPRequest(req, nil)) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.vpnTunnels.insert" call. +// Do executes the "compute.zoneOperations.get" call. // 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 *VpnTunnelsInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) { +func (c *ZoneOperationsGetCall) Do(opts ...googleapi.CallOption) (*Operation, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -48713,108 +70969,160 @@ func (c *VpnTunnelsInsertCall) Do(opts ...googleapi.CallOption) (*Operation, err }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.zoneOperations.get", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type VpnTunnelsListCall struct { +type ZoneOperationsListCall struct { s *Service project string - region string + zone string urlParams_ gensupport.URLParams ifNoneMatch_ string ctx_ context.Context header_ http.Header } -// List: Retrieves a list of VpnTunnel resources contained in the specified -// project and region. +// List: Retrieves a list of Operation resources contained within +// the specified zone. // // - project: Project ID for this request. -// - region: Name of the region for this request. -func (r *VpnTunnelsService) List(project string, region string) *VpnTunnelsListCall { - c := &VpnTunnelsListCall{s: r.s, urlParams_: make(gensupport.URLParams)} +// - zone: Name of the zone for request. +func (r *ZoneOperationsService) List(project string, zone string) *ZoneOperationsListCall { + c := &ZoneOperationsListCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project - c.region = region + c.zone = zone return c } // Filter sets the optional parameter "filter": A filter expression that -// filters resources listed in the response. Most Compute resources support two -// types of filter expressions: expressions that support regular expressions -// and expressions that follow API improvement proposal AIP-160. These two -// types of filter expressions cannot be mixed in one request. If you want to -// use AIP-160, your expression must specify the field name, an operator, and -// the value that you want to use for filtering. The value must be a string, a -// number, or a boolean. The 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`. The `:*` comparison can be used to test whether a key has -// been defined. For example, to find all objects with `owner` label use: ``` -// labels.owner:* ``` 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) ``` If you want to use a regular -// expression, use the `eq` (equal) or `ne` (not equal) operator against a -// single un-parenthesized expression with or without quotes or against -// multiple parenthesized expressions. Examples: `fieldname eq unquoted -// literal` `fieldname eq 'single quoted literal'` `fieldname eq "double quoted -// literal" `(fieldname1 eq literal) (fieldname2 ne "literal")` The literal -// value is interpreted as a regular expression using Google RE2 library -// syntax. The literal value must match the entire field. For example, to -// filter for instances that do not end with name "instance", you would use -// `name ne .*instance`. You cannot combine constraints on multiple fields -// using regular expressions. -func (c *VpnTunnelsListCall) Filter(filter string) *VpnTunnelsListCall { +// filters resources listed in the response. Most +// Compute resources support two types of filter expressions: +// expressions that support regular expressions and expressions that follow +// API improvement proposal AIP-160. +// These two types of filter expressions cannot be mixed in one request. +// +// If you want to use AIP-160, your expression must specify the field name, +// an +// operator, and the value that you want to use for filtering. The value +// must be a string, a number, or a boolean. The 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`. +// +// The `:*` comparison can be used to test whether a key has been defined. +// For example, to find all objects with `owner` label +// use: +// ``` +// labels.owner:* +// ``` +// +// 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 onresource 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) +// ``` +// +// If you want to use a regular expression, use the `eq` (equal) or `ne` +// (not equal) operator against a single un-parenthesized expression with +// or +// without quotes or against multiple parenthesized expressions. +// Examples: +// +// `fieldname eq unquoted literal` +// `fieldname eq 'single quoted literal'` +// `fieldname eq "double quoted literal" +// `(fieldname1 eq literal) (fieldname2 ne "literal")` +// +// The literal value is interpreted as a regular expression using GoogleRE2 +// library syntax. +// The literal value must match the entire field. +// +// For example, to filter for instances that do not end with name +// "instance", +// you would use `name ne .*instance`. +// +// You cannot combine constraints on multiple fields using regular +// expressions. +func (c *ZoneOperationsListCall) Filter(filter string) *ZoneOperationsListCall { 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 *VpnTunnelsListCall) MaxResults(maxResults int64) *VpnTunnelsListCall { +// 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 *ZoneOperationsListCall) MaxResults(maxResults int64) *ZoneOperationsListCall { 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 *VpnTunnelsListCall) OrderBy(orderBy string) *VpnTunnelsListCall { +// 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 *ZoneOperationsListCall) OrderBy(orderBy string) *ZoneOperationsListCall { 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 *VpnTunnelsListCall) PageToken(pageToken string) *VpnTunnelsListCall { +// use. Set `pageToken` to the +// `nextPageToken` returned by a previous list request to get +// the next page of results. +func (c *ZoneOperationsListCall) PageToken(pageToken string) *ZoneOperationsListCall { c.urlParams_.Set("pageToken", pageToken) return c } // ReturnPartialSuccess sets the optional parameter "returnPartialSuccess": -// Opt-in for partial success behavior which provides partial results in case -// of failure. The default value is false. For example, when partial success -// behavior is enabled, aggregatedList for a single zone scope either returns -// all resources in the zone or no resources, with an error code. -func (c *VpnTunnelsListCall) ReturnPartialSuccess(returnPartialSuccess bool) *VpnTunnelsListCall { +// Opt-in for partial success behavior which provides partial results in +// case +// of failure. The default value is false. +// +// For example, when partial success behavior is enabled, aggregatedList for +// a +// single zone scope either returns all resources in the zone or no +// resources, +// with an error code. +func (c *ZoneOperationsListCall) ReturnPartialSuccess(returnPartialSuccess bool) *ZoneOperationsListCall { c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess)) return c } @@ -48822,7 +71130,7 @@ func (c *VpnTunnelsListCall) ReturnPartialSuccess(returnPartialSuccess bool) *Vp // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *VpnTunnelsListCall) Fields(s ...googleapi.Field) *VpnTunnelsListCall { +func (c *ZoneOperationsListCall) Fields(s ...googleapi.Field) *ZoneOperationsListCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } @@ -48830,54 +71138,54 @@ func (c *VpnTunnelsListCall) Fields(s ...googleapi.Field) *VpnTunnelsListCall { // IfNoneMatch sets an 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. -func (c *VpnTunnelsListCall) IfNoneMatch(entityTag string) *VpnTunnelsListCall { +func (c *ZoneOperationsListCall) IfNoneMatch(entityTag string) *ZoneOperationsListCall { c.ifNoneMatch_ = entityTag return c } // Context sets the context to be used in this call's Do method. -func (c *VpnTunnelsListCall) Context(ctx context.Context) *VpnTunnelsListCall { +func (c *ZoneOperationsListCall) Context(ctx context.Context) *ZoneOperationsListCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *VpnTunnelsListCall) Header() http.Header { +func (c *ZoneOperationsListCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *VpnTunnelsListCall) doRequest(alt string) (*http.Response, error) { +func (c *ZoneOperationsListCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) if c.ifNoneMatch_ != "" { reqHeaders.Set("If-None-Match", c.ifNoneMatch_) } - var body io.Reader = nil c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/vpnTunnels") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/operations") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("GET", urls, body) + req, err := http.NewRequest("GET", urls, nil) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ "project": c.project, - "region": c.region, + "zone": c.zone, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.zoneOperations.list", "request", internallog.HTTPRequest(req, nil)) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.vpnTunnels.list" call. +// Do executes the "compute.zoneOperations.list" call. // Any non-2xx status code is an error. Response headers are in either -// *VpnTunnelList.ServerResponse.Header or (if a response was returned at all) +// *OperationList.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 *VpnTunnelsListCall) Do(opts ...googleapi.CallOption) (*VpnTunnelList, error) { +func (c *ZoneOperationsListCall) Do(opts ...googleapi.CallOption) (*OperationList, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -48896,23 +71204,25 @@ func (c *VpnTunnelsListCall) Do(opts ...googleapi.CallOption) (*VpnTunnelList, e if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } - ret := &VpnTunnelList{ + ret := &OperationList{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.zoneOperations.list", "response", internallog.HTTPResponse(res, b)) return ret, nil } // 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 *VpnTunnelsListCall) Pages(ctx context.Context, f func(*VpnTunnelList) error) error { +func (c *ZoneOperationsListCall) Pages(ctx context.Context, f func(*OperationList) error) error { c.ctx_ = ctx defer c.PageToken(c.urlParams_.Get("pageToken")) for { @@ -48930,100 +71240,101 @@ func (c *VpnTunnelsListCall) Pages(ctx context.Context, f func(*VpnTunnelList) e } } -type VpnTunnelsSetLabelsCall struct { - s *Service - project string - region string - resource string - regionsetlabelsrequest *RegionSetLabelsRequest - urlParams_ gensupport.URLParams - ctx_ context.Context - header_ http.Header +type ZoneOperationsWaitCall struct { + s *Service + project string + zone string + operationid string + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header } -// SetLabels: Sets the labels on a VpnTunnel. To learn more about labels, read -// the Labeling Resources documentation. +// Wait: Waits for the specified Operation resource to return as `DONE` +// or for the request to approach the 2 minute deadline, and retrieves +// the +// specified Operation resource. This method waits for no more than the +// 2 minutes and then returns the current state of the +// operation, which might be `DONE` or still in progress. // +// This method is called on a best-effort basis. Specifically: +// +// - In uncommon cases, when the server is overloaded, the request might +// return before the default deadline is reached, or might return after +// +// zero +// +// seconds. +// - If the default deadline is reached, there is no guarantee that the +// operation is actually done when the method returns. Be prepared to +// +// retry +// +// if the operation is not `DONE`. +// +// - operation: Name of the Operations resource to return, or its unique +// numeric +// +// identifier. // - project: Project ID for this request. -// - region: The region for this request. -// - resource: Name or id of the resource for this request. -func (r *VpnTunnelsService) SetLabels(project string, region string, resource string, regionsetlabelsrequest *RegionSetLabelsRequest) *VpnTunnelsSetLabelsCall { - c := &VpnTunnelsSetLabelsCall{s: r.s, urlParams_: make(gensupport.URLParams)} +// - zone: Name of the zone for this request. +func (r *ZoneOperationsService) Wait(project string, zone string, operationid string) *ZoneOperationsWaitCall { + c := &ZoneOperationsWaitCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project - c.region = region - c.resource = resource - c.regionsetlabelsrequest = regionsetlabelsrequest - 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 *VpnTunnelsSetLabelsCall) RequestId(requestId string) *VpnTunnelsSetLabelsCall { - c.urlParams_.Set("requestId", requestId) + c.zone = zone + c.operationid = operationid return c } // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *VpnTunnelsSetLabelsCall) Fields(s ...googleapi.Field) *VpnTunnelsSetLabelsCall { +func (c *ZoneOperationsWaitCall) Fields(s ...googleapi.Field) *ZoneOperationsWaitCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } // Context sets the context to be used in this call's Do method. -func (c *VpnTunnelsSetLabelsCall) Context(ctx context.Context) *VpnTunnelsSetLabelsCall { +func (c *ZoneOperationsWaitCall) Context(ctx context.Context) *ZoneOperationsWaitCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *VpnTunnelsSetLabelsCall) Header() http.Header { +func (c *ZoneOperationsWaitCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *VpnTunnelsSetLabelsCall) doRequest(alt string) (*http.Response, error) { - reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) - var body io.Reader = nil - body, err := googleapi.WithoutDataWrapper.JSONReader(c.regionsetlabelsrequest) - if err != nil { - return nil, err - } +func (c *ZoneOperationsWaitCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/vpnTunnels/{resource}/setLabels") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/operations/{operation}/wait") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("POST", urls, body) + req, err := http.NewRequest("POST", urls, nil) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "region": c.region, - "resource": c.resource, + "project": c.project, + "zone": c.zone, + "operation": c.operationid, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.zoneOperations.wait", "request", internallog.HTTPRequest(req, nil)) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.vpnTunnels.setLabels" call. +// Do executes the "compute.zoneOperations.wait" call. // 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 *VpnTunnelsSetLabelsCall) Do(opts ...googleapi.CallOption) (*Operation, error) { +func (c *ZoneOperationsWaitCall) Do(opts ...googleapi.CallOption) (*Operation, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -49049,120 +71360,170 @@ func (c *VpnTunnelsSetLabelsCall) Do(opts ...googleapi.CallOption) (*Operation, }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.zoneOperations.wait", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type ZoneOperationsDeleteCall struct { - s *Service - project string - zone string - operation string - urlParams_ gensupport.URLParams - ctx_ context.Context - header_ http.Header +type ZoneVmExtensionPoliciesDeleteCall struct { + s *Service + project string + zone string + vmExtensionPolicy string + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header } -// Delete: Deletes the specified zone-specific Operations resource. +// Delete: Deletes a specified zone VM extension policy within a project. // -// - operation: Name of the Operations resource to delete. // - project: Project ID for this request. +// - vmExtensionPolicy: Name of the zone VM extension policy to delete. // - zone: Name of the zone for this request. -func (r *ZoneOperationsService) Delete(project string, zone string, operation string) *ZoneOperationsDeleteCall { - c := &ZoneOperationsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)} +func (r *ZoneVmExtensionPoliciesService) Delete(project string, zone string, vmExtensionPolicy string) *ZoneVmExtensionPoliciesDeleteCall { + c := &ZoneVmExtensionPoliciesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project c.zone = zone - c.operation = operation + c.vmExtensionPolicy = vmExtensionPolicy + 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 *ZoneVmExtensionPoliciesDeleteCall) RequestId(requestId string) *ZoneVmExtensionPoliciesDeleteCall { + 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 // details. -func (c *ZoneOperationsDeleteCall) Fields(s ...googleapi.Field) *ZoneOperationsDeleteCall { +func (c *ZoneVmExtensionPoliciesDeleteCall) Fields(s ...googleapi.Field) *ZoneVmExtensionPoliciesDeleteCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } // Context sets the context to be used in this call's Do method. -func (c *ZoneOperationsDeleteCall) Context(ctx context.Context) *ZoneOperationsDeleteCall { +func (c *ZoneVmExtensionPoliciesDeleteCall) Context(ctx context.Context) *ZoneVmExtensionPoliciesDeleteCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *ZoneOperationsDeleteCall) Header() http.Header { +func (c *ZoneVmExtensionPoliciesDeleteCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *ZoneOperationsDeleteCall) doRequest(alt string) (*http.Response, error) { +func (c *ZoneVmExtensionPoliciesDeleteCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) - var body io.Reader = nil c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/operations/{operation}") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/vmExtensionPolicies/{vmExtensionPolicy}") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("DELETE", urls, body) + req, err := http.NewRequest("DELETE", urls, nil) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "zone": c.zone, - "operation": c.operation, + "project": c.project, + "zone": c.zone, + "vmExtensionPolicy": c.vmExtensionPolicy, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.zoneVmExtensionPolicies.delete", "request", internallog.HTTPRequest(req, nil)) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.zoneOperations.delete" call. -func (c *ZoneOperationsDeleteCall) Do(opts ...googleapi.CallOption) error { +// Do executes the "compute.zoneVmExtensionPolicies.delete" call. +// 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 *ZoneVmExtensionPoliciesDeleteCall) 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, gensupport.WrapError(&googleapi.Error{ + Code: res.StatusCode, + Header: res.Header, + }) + } if err != nil { - return err + return nil, err } defer googleapi.CloseBody(res) if err := googleapi.CheckResponse(res); err != nil { - return gensupport.WrapError(err) + return nil, gensupport.WrapError(err) } - return nil + ret := &Operation{ + ServerResponse: googleapi.ServerResponse{ + Header: res.Header, + HTTPStatusCode: res.StatusCode, + }, + } + target := &ret + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { + return nil, err + } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.zoneVmExtensionPolicies.delete", "response", internallog.HTTPResponse(res, b)) + return ret, nil } -type ZoneOperationsGetCall struct { - s *Service - project string - zone string - operation string - urlParams_ gensupport.URLParams - ifNoneMatch_ string - ctx_ context.Context - header_ http.Header +type ZoneVmExtensionPoliciesGetCall struct { + s *Service + project string + zone string + vmExtensionPolicy string + urlParams_ gensupport.URLParams + ifNoneMatch_ string + ctx_ context.Context + header_ http.Header } -// Get: Retrieves the specified zone-specific Operations resource. +// Get: Retrieves details of a specific zone VM extension policy within a +// project. // -// - operation: Name of the Operations resource to return. // - project: Project ID for this request. +// - vmExtensionPolicy: Name of the VM extension policy resource to return. // - zone: Name of the zone for this request. -func (r *ZoneOperationsService) Get(project string, zone string, operation string) *ZoneOperationsGetCall { - c := &ZoneOperationsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)} +func (r *ZoneVmExtensionPoliciesService) Get(project string, zone string, vmExtensionPolicy string) *ZoneVmExtensionPoliciesGetCall { + c := &ZoneVmExtensionPoliciesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project c.zone = zone - c.operation = operation + c.vmExtensionPolicy = vmExtensionPolicy return c } // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *ZoneOperationsGetCall) Fields(s ...googleapi.Field) *ZoneOperationsGetCall { +func (c *ZoneVmExtensionPoliciesGetCall) Fields(s ...googleapi.Field) *ZoneVmExtensionPoliciesGetCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } @@ -49170,55 +71531,185 @@ func (c *ZoneOperationsGetCall) Fields(s ...googleapi.Field) *ZoneOperationsGetC // IfNoneMatch sets an 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. -func (c *ZoneOperationsGetCall) IfNoneMatch(entityTag string) *ZoneOperationsGetCall { +func (c *ZoneVmExtensionPoliciesGetCall) IfNoneMatch(entityTag string) *ZoneVmExtensionPoliciesGetCall { c.ifNoneMatch_ = entityTag return c } // Context sets the context to be used in this call's Do method. -func (c *ZoneOperationsGetCall) Context(ctx context.Context) *ZoneOperationsGetCall { +func (c *ZoneVmExtensionPoliciesGetCall) Context(ctx context.Context) *ZoneVmExtensionPoliciesGetCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *ZoneOperationsGetCall) Header() http.Header { +func (c *ZoneVmExtensionPoliciesGetCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *ZoneOperationsGetCall) doRequest(alt string) (*http.Response, error) { +func (c *ZoneVmExtensionPoliciesGetCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) if c.ifNoneMatch_ != "" { reqHeaders.Set("If-None-Match", c.ifNoneMatch_) } - var body io.Reader = nil c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/operations/{operation}") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/vmExtensionPolicies/{vmExtensionPolicy}") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("GET", urls, body) + req, err := http.NewRequest("GET", urls, nil) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "zone": c.zone, - "operation": c.operation, + "project": c.project, + "zone": c.zone, + "vmExtensionPolicy": c.vmExtensionPolicy, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.zoneVmExtensionPolicies.get", "request", internallog.HTTPRequest(req, nil)) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.zoneOperations.get" call. +// Do executes the "compute.zoneVmExtensionPolicies.get" call. +// Any non-2xx status code is an error. Response headers are in either +// *VmExtensionPolicy.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 *ZoneVmExtensionPoliciesGetCall) Do(opts ...googleapi.CallOption) (*VmExtensionPolicy, 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, gensupport.WrapError(&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, gensupport.WrapError(err) + } + ret := &VmExtensionPolicy{ + ServerResponse: googleapi.ServerResponse{ + Header: res.Header, + HTTPStatusCode: res.StatusCode, + }, + } + target := &ret + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { + return nil, err + } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.zoneVmExtensionPolicies.get", "response", internallog.HTTPResponse(res, b)) + return ret, nil +} + +type ZoneVmExtensionPoliciesInsertCall struct { + s *Service + project string + zone string + vmextensionpolicy *VmExtensionPolicy + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header +} + +// Insert: Creates a new zone-level VM extension policy within a project. +// +// - project: Project ID for this request. +// - zone: Name of the zone for this request. +func (r *ZoneVmExtensionPoliciesService) Insert(project string, zone string, vmextensionpolicy *VmExtensionPolicy) *ZoneVmExtensionPoliciesInsertCall { + c := &ZoneVmExtensionPoliciesInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)} + c.project = project + c.zone = zone + c.vmextensionpolicy = vmextensionpolicy + 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 *ZoneVmExtensionPoliciesInsertCall) RequestId(requestId string) *ZoneVmExtensionPoliciesInsertCall { + 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 +// details. +func (c *ZoneVmExtensionPoliciesInsertCall) Fields(s ...googleapi.Field) *ZoneVmExtensionPoliciesInsertCall { + c.urlParams_.Set("fields", googleapi.CombineFields(s)) + return c +} + +// Context sets the context to be used in this call's Do method. +func (c *ZoneVmExtensionPoliciesInsertCall) Context(ctx context.Context) *ZoneVmExtensionPoliciesInsertCall { + c.ctx_ = ctx + return c +} + +// Header returns a http.Header that can be modified by the caller to add +// headers to the request. +func (c *ZoneVmExtensionPoliciesInsertCall) Header() http.Header { + if c.header_ == nil { + c.header_ = make(http.Header) + } + return c.header_ +} + +func (c *ZoneVmExtensionPoliciesInsertCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) + body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.vmextensionpolicy) + if err != nil { + return nil, err + } + c.urlParams_.Set("alt", alt) + c.urlParams_.Set("prettyPrint", "false") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/vmExtensionPolicies") + urls += "?" + c.urlParams_.Encode() + req, err := http.NewRequest("POST", urls, body) + if err != nil { + return nil, err + } + req.Header = reqHeaders + googleapi.Expand(req.URL, map[string]string{ + "project": c.project, + "zone": c.zone, + }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.zoneVmExtensionPolicies.insert", "request", internallog.HTTPRequest(req, body.Bytes())) + return gensupport.SendRequest(c.ctx_, c.s.client, req) +} + +// Do executes the "compute.zoneVmExtensionPolicies.insert" call. // 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 *ZoneOperationsGetCall) Do(opts ...googleapi.CallOption) (*Operation, error) { +func (c *ZoneVmExtensionPoliciesInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -49244,13 +71735,15 @@ func (c *ZoneOperationsGetCall) Do(opts ...googleapi.CallOption) (*Operation, er }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.zoneVmExtensionPolicies.insert", "response", internallog.HTTPResponse(res, b)) return ret, nil } -type ZoneOperationsListCall struct { +type ZoneVmExtensionPoliciesListCall struct { s *Service project string zone string @@ -49260,92 +71753,141 @@ type ZoneOperationsListCall struct { header_ http.Header } -// List: Retrieves a list of Operation resources contained within the specified -// zone. +// List: Lists all VM extension policies within a specific zone for a project. // // - project: Project ID for this request. -// - zone: Name of the zone for request. -func (r *ZoneOperationsService) List(project string, zone string) *ZoneOperationsListCall { - c := &ZoneOperationsListCall{s: r.s, urlParams_: make(gensupport.URLParams)} +// - zone: Name of the zone for this request. +func (r *ZoneVmExtensionPoliciesService) List(project string, zone string) *ZoneVmExtensionPoliciesListCall { + c := &ZoneVmExtensionPoliciesListCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project c.zone = zone return c } // Filter sets the optional parameter "filter": A filter expression that -// filters resources listed in the response. Most Compute resources support two -// types of filter expressions: expressions that support regular expressions -// and expressions that follow API improvement proposal AIP-160. These two -// types of filter expressions cannot be mixed in one request. If you want to -// use AIP-160, your expression must specify the field name, an operator, and -// the value that you want to use for filtering. The value must be a string, a -// number, or a boolean. The 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`. The `:*` comparison can be used to test whether a key has -// been defined. For example, to find all objects with `owner` label use: ``` -// labels.owner:* ``` 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) ``` If you want to use a regular -// expression, use the `eq` (equal) or `ne` (not equal) operator against a -// single un-parenthesized expression with or without quotes or against -// multiple parenthesized expressions. Examples: `fieldname eq unquoted -// literal` `fieldname eq 'single quoted literal'` `fieldname eq "double quoted -// literal" `(fieldname1 eq literal) (fieldname2 ne "literal")` The literal -// value is interpreted as a regular expression using Google RE2 library -// syntax. The literal value must match the entire field. For example, to -// filter for instances that do not end with name "instance", you would use -// `name ne .*instance`. You cannot combine constraints on multiple fields -// using regular expressions. -func (c *ZoneOperationsListCall) Filter(filter string) *ZoneOperationsListCall { +// filters resources listed in the response. Most +// Compute resources support two types of filter expressions: +// expressions that support regular expressions and expressions that follow +// API improvement proposal AIP-160. +// These two types of filter expressions cannot be mixed in one request. +// +// If you want to use AIP-160, your expression must specify the field name, +// an +// operator, and the value that you want to use for filtering. The value +// must be a string, a number, or a boolean. The 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`. +// +// The `:*` comparison can be used to test whether a key has been defined. +// For example, to find all objects with `owner` label +// use: +// ``` +// labels.owner:* +// ``` +// +// 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 onresource 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) +// ``` +// +// If you want to use a regular expression, use the `eq` (equal) or `ne` +// (not equal) operator against a single un-parenthesized expression with +// or +// without quotes or against multiple parenthesized expressions. +// Examples: +// +// `fieldname eq unquoted literal` +// `fieldname eq 'single quoted literal'` +// `fieldname eq "double quoted literal" +// `(fieldname1 eq literal) (fieldname2 ne "literal")` +// +// The literal value is interpreted as a regular expression using GoogleRE2 +// library syntax. +// The literal value must match the entire field. +// +// For example, to filter for instances that do not end with name +// "instance", +// you would use `name ne .*instance`. +// +// You cannot combine constraints on multiple fields using regular +// expressions. +func (c *ZoneVmExtensionPoliciesListCall) Filter(filter string) *ZoneVmExtensionPoliciesListCall { 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 *ZoneOperationsListCall) MaxResults(maxResults int64) *ZoneOperationsListCall { +// 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 *ZoneVmExtensionPoliciesListCall) MaxResults(maxResults int64) *ZoneVmExtensionPoliciesListCall { 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 *ZoneOperationsListCall) OrderBy(orderBy string) *ZoneOperationsListCall { +// 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 *ZoneVmExtensionPoliciesListCall) OrderBy(orderBy string) *ZoneVmExtensionPoliciesListCall { 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 *ZoneOperationsListCall) PageToken(pageToken string) *ZoneOperationsListCall { +// use. Set `pageToken` to the +// `nextPageToken` returned by a previous list request to get +// the next page of results. +func (c *ZoneVmExtensionPoliciesListCall) PageToken(pageToken string) *ZoneVmExtensionPoliciesListCall { c.urlParams_.Set("pageToken", pageToken) return c } // ReturnPartialSuccess sets the optional parameter "returnPartialSuccess": -// Opt-in for partial success behavior which provides partial results in case -// of failure. The default value is false. For example, when partial success -// behavior is enabled, aggregatedList for a single zone scope either returns -// all resources in the zone or no resources, with an error code. -func (c *ZoneOperationsListCall) ReturnPartialSuccess(returnPartialSuccess bool) *ZoneOperationsListCall { +// Opt-in for partial success behavior which provides partial results in +// case +// of failure. The default value is false. +// +// For example, when partial success behavior is enabled, aggregatedList for +// a +// single zone scope either returns all resources in the zone or no +// resources, +// with an error code. +func (c *ZoneVmExtensionPoliciesListCall) ReturnPartialSuccess(returnPartialSuccess bool) *ZoneVmExtensionPoliciesListCall { c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess)) return c } @@ -49353,7 +71895,7 @@ func (c *ZoneOperationsListCall) ReturnPartialSuccess(returnPartialSuccess bool) // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. -func (c *ZoneOperationsListCall) Fields(s ...googleapi.Field) *ZoneOperationsListCall { +func (c *ZoneVmExtensionPoliciesListCall) Fields(s ...googleapi.Field) *ZoneVmExtensionPoliciesListCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } @@ -49361,37 +71903,36 @@ func (c *ZoneOperationsListCall) Fields(s ...googleapi.Field) *ZoneOperationsLis // IfNoneMatch sets an 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. -func (c *ZoneOperationsListCall) IfNoneMatch(entityTag string) *ZoneOperationsListCall { +func (c *ZoneVmExtensionPoliciesListCall) IfNoneMatch(entityTag string) *ZoneVmExtensionPoliciesListCall { c.ifNoneMatch_ = entityTag return c } // Context sets the context to be used in this call's Do method. -func (c *ZoneOperationsListCall) Context(ctx context.Context) *ZoneOperationsListCall { +func (c *ZoneVmExtensionPoliciesListCall) Context(ctx context.Context) *ZoneVmExtensionPoliciesListCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *ZoneOperationsListCall) Header() http.Header { +func (c *ZoneVmExtensionPoliciesListCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *ZoneOperationsListCall) doRequest(alt string) (*http.Response, error) { +func (c *ZoneVmExtensionPoliciesListCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) if c.ifNoneMatch_ != "" { reqHeaders.Set("If-None-Match", c.ifNoneMatch_) } - var body io.Reader = nil c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/operations") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/vmExtensionPolicies") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("GET", urls, body) + req, err := http.NewRequest("GET", urls, nil) if err != nil { return nil, err } @@ -49400,15 +71941,17 @@ func (c *ZoneOperationsListCall) doRequest(alt string) (*http.Response, error) { "project": c.project, "zone": c.zone, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.zoneVmExtensionPolicies.list", "request", internallog.HTTPRequest(req, nil)) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.zoneOperations.list" call. +// Do executes the "compute.zoneVmExtensionPolicies.list" call. // Any non-2xx status code is an error. Response headers are in either -// *OperationList.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 *ZoneOperationsListCall) Do(opts ...googleapi.CallOption) (*OperationList, error) { +// *VmExtensionPolicyList.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 *ZoneVmExtensionPoliciesListCall) Do(opts ...googleapi.CallOption) (*VmExtensionPolicyList, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -49427,23 +71970,25 @@ func (c *ZoneOperationsListCall) Do(opts ...googleapi.CallOption) (*OperationLis if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } - ret := &OperationList{ + ret := &VmExtensionPolicyList{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.zoneVmExtensionPolicies.list", "response", internallog.HTTPResponse(res, b)) return ret, nil } // 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 *ZoneOperationsListCall) Pages(ctx context.Context, f func(*OperationList) error) error { +func (c *ZoneVmExtensionPoliciesListCall) Pages(ctx context.Context, f func(*VmExtensionPolicyList) error) error { c.ctx_ = ctx defer c.PageToken(c.urlParams_.Get("pageToken")) for { @@ -49461,87 +72006,106 @@ func (c *ZoneOperationsListCall) Pages(ctx context.Context, f func(*OperationLis } } -type ZoneOperationsWaitCall struct { - s *Service - project string - zone string - operation string - urlParams_ gensupport.URLParams - ctx_ context.Context - header_ http.Header +type ZoneVmExtensionPoliciesUpdateCall struct { + s *Service + project string + zone string + vmExtensionPolicy string + vmextensionpolicy *VmExtensionPolicy + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header } -// Wait: Waits for the specified Operation resource to return as `DONE` or for -// the request to approach the 2 minute deadline, and retrieves the specified -// Operation resource. This method waits for no more than the 2 minutes and -// then returns the current state of the operation, which might be `DONE` or -// still in progress. This method is called on a best-effort basis. -// Specifically: - In uncommon cases, when the server is overloaded, the -// request might return before the default deadline is reached, or might return -// after zero seconds. - If the default deadline is reached, there is no -// guarantee that the operation is actually done when the method returns. Be -// prepared to retry if the operation is not `DONE`. +// Update: Modifies an existing zone VM extension policy within a project. // -// - operation: Name of the Operations resource to return. // - project: Project ID for this request. +// - vmExtensionPolicy: Name of the zone VM extension policy to update. // - zone: Name of the zone for this request. -func (r *ZoneOperationsService) Wait(project string, zone string, operation string) *ZoneOperationsWaitCall { - c := &ZoneOperationsWaitCall{s: r.s, urlParams_: make(gensupport.URLParams)} +func (r *ZoneVmExtensionPoliciesService) Update(project string, zone string, vmExtensionPolicy string, vmextensionpolicy *VmExtensionPolicy) *ZoneVmExtensionPoliciesUpdateCall { + c := &ZoneVmExtensionPoliciesUpdateCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project c.zone = zone - c.operation = operation + c.vmExtensionPolicy = vmExtensionPolicy + c.vmextensionpolicy = vmextensionpolicy + 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 *ZoneVmExtensionPoliciesUpdateCall) RequestId(requestId string) *ZoneVmExtensionPoliciesUpdateCall { + 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 // details. -func (c *ZoneOperationsWaitCall) Fields(s ...googleapi.Field) *ZoneOperationsWaitCall { +func (c *ZoneVmExtensionPoliciesUpdateCall) Fields(s ...googleapi.Field) *ZoneVmExtensionPoliciesUpdateCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } // Context sets the context to be used in this call's Do method. -func (c *ZoneOperationsWaitCall) Context(ctx context.Context) *ZoneOperationsWaitCall { +func (c *ZoneVmExtensionPoliciesUpdateCall) Context(ctx context.Context) *ZoneVmExtensionPoliciesUpdateCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. -func (c *ZoneOperationsWaitCall) Header() http.Header { +func (c *ZoneVmExtensionPoliciesUpdateCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *ZoneOperationsWaitCall) doRequest(alt string) (*http.Response, error) { - reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) - var body io.Reader = nil +func (c *ZoneVmExtensionPoliciesUpdateCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) + body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.vmextensionpolicy) + if err != nil { + return nil, err + } c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/operations/{operation}/wait") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/vmExtensionPolicies/{vmExtensionPolicy}") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("POST", urls, body) + req, err := http.NewRequest("PATCH", urls, body) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "zone": c.zone, - "operation": c.operation, + "project": c.project, + "zone": c.zone, + "vmExtensionPolicy": c.vmExtensionPolicy, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.zoneVmExtensionPolicies.update", "request", internallog.HTTPRequest(req, body.Bytes())) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.zoneOperations.wait" call. +// Do executes the "compute.zoneVmExtensionPolicies.update" call. // 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 *ZoneOperationsWaitCall) Do(opts ...googleapi.CallOption) (*Operation, error) { +func (c *ZoneVmExtensionPoliciesUpdateCall) Do(opts ...googleapi.CallOption) (*Operation, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -49567,9 +72131,11 @@ func (c *ZoneOperationsWaitCall) Do(opts ...googleapi.CallOption) (*Operation, e }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.zoneVmExtensionPolicies.update", "response", internallog.HTTPResponse(res, b)) return ret, nil } @@ -49630,12 +72196,11 @@ func (c *ZonesGetCall) doRequest(alt string) (*http.Response, error) { if c.ifNoneMatch_ != "" { reqHeaders.Set("If-None-Match", c.ifNoneMatch_) } - var body io.Reader = nil c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("GET", urls, body) + req, err := http.NewRequest("GET", urls, nil) if err != nil { return nil, err } @@ -49644,6 +72209,7 @@ func (c *ZonesGetCall) doRequest(alt string) (*http.Response, error) { "project": c.project, "zone": c.zone, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.zones.get", "request", internallog.HTTPRequest(req, nil)) return gensupport.SendRequest(c.ctx_, c.s.client, req) } @@ -49678,9 +72244,11 @@ func (c *ZonesGetCall) Do(opts ...googleapi.CallOption) (*Zone, error) { }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.zones.get", "response", internallog.HTTPResponse(res, b)) return ret, nil } @@ -49704,78 +72272,128 @@ func (r *ZonesService) List(project string) *ZonesListCall { } // Filter sets the optional parameter "filter": A filter expression that -// filters resources listed in the response. Most Compute resources support two -// types of filter expressions: expressions that support regular expressions -// and expressions that follow API improvement proposal AIP-160. These two -// types of filter expressions cannot be mixed in one request. If you want to -// use AIP-160, your expression must specify the field name, an operator, and -// the value that you want to use for filtering. The value must be a string, a -// number, or a boolean. The 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`. The `:*` comparison can be used to test whether a key has -// been defined. For example, to find all objects with `owner` label use: ``` -// labels.owner:* ``` 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) ``` If you want to use a regular -// expression, use the `eq` (equal) or `ne` (not equal) operator against a -// single un-parenthesized expression with or without quotes or against -// multiple parenthesized expressions. Examples: `fieldname eq unquoted -// literal` `fieldname eq 'single quoted literal'` `fieldname eq "double quoted -// literal" `(fieldname1 eq literal) (fieldname2 ne "literal")` The literal -// value is interpreted as a regular expression using Google RE2 library -// syntax. The literal value must match the entire field. For example, to -// filter for instances that do not end with name "instance", you would use -// `name ne .*instance`. You cannot combine constraints on multiple fields -// using regular expressions. +// filters resources listed in the response. Most +// Compute resources support two types of filter expressions: +// expressions that support regular expressions and expressions that follow +// API improvement proposal AIP-160. +// These two types of filter expressions cannot be mixed in one request. +// +// If you want to use AIP-160, your expression must specify the field name, +// an +// operator, and the value that you want to use for filtering. The value +// must be a string, a number, or a boolean. The 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`. +// +// The `:*` comparison can be used to test whether a key has been defined. +// For example, to find all objects with `owner` label +// use: +// ``` +// labels.owner:* +// ``` +// +// 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 onresource 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) +// ``` +// +// If you want to use a regular expression, use the `eq` (equal) or `ne` +// (not equal) operator against a single un-parenthesized expression with +// or +// without quotes or against multiple parenthesized expressions. +// Examples: +// +// `fieldname eq unquoted literal` +// `fieldname eq 'single quoted literal'` +// `fieldname eq "double quoted literal" +// `(fieldname1 eq literal) (fieldname2 ne "literal")` +// +// The literal value is interpreted as a regular expression using GoogleRE2 +// library syntax. +// The literal value must match the entire field. +// +// For example, to filter for instances that do not end with name +// "instance", +// you would use `name ne .*instance`. +// +// You cannot combine constraints on multiple fields using regular +// expressions. func (c *ZonesListCall) Filter(filter string) *ZonesListCall { 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`) +// 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 *ZonesListCall) MaxResults(maxResults int64) *ZonesListCall { 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. +// 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 *ZonesListCall) OrderBy(orderBy string) *ZonesListCall { 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. +// use. Set `pageToken` to the +// `nextPageToken` returned by a previous list request to get +// the next page of results. func (c *ZonesListCall) PageToken(pageToken string) *ZonesListCall { c.urlParams_.Set("pageToken", pageToken) return c } // ReturnPartialSuccess sets the optional parameter "returnPartialSuccess": -// Opt-in for partial success behavior which provides partial results in case -// of failure. The default value is false. For example, when partial success -// behavior is enabled, aggregatedList for a single zone scope either returns -// all resources in the zone or no resources, with an error code. +// Opt-in for partial success behavior which provides partial results in +// case +// of failure. The default value is false. +// +// For example, when partial success behavior is enabled, aggregatedList for +// a +// single zone scope either returns all resources in the zone or no +// resources, +// with an error code. func (c *ZonesListCall) ReturnPartialSuccess(returnPartialSuccess bool) *ZonesListCall { c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess)) return c @@ -49817,12 +72435,11 @@ func (c *ZonesListCall) doRequest(alt string) (*http.Response, error) { if c.ifNoneMatch_ != "" { reqHeaders.Set("If-None-Match", c.ifNoneMatch_) } - var body io.Reader = nil c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("GET", urls, body) + req, err := http.NewRequest("GET", urls, nil) if err != nil { return nil, err } @@ -49830,6 +72447,7 @@ func (c *ZonesListCall) doRequest(alt string) (*http.Response, error) { googleapi.Expand(req.URL, map[string]string{ "project": c.project, }) + c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "compute.zones.list", "request", internallog.HTTPRequest(req, nil)) return gensupport.SendRequest(c.ctx_, c.s.client, req) } @@ -49864,9 +72482,11 @@ func (c *ZonesListCall) Do(opts ...googleapi.CallOption) (*ZoneList, error) { }, } target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { + b, err := gensupport.DecodeResponseBytes(target, res) + if err != nil { return nil, err } + c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "compute.zones.list", "response", internallog.HTTPResponse(res, b)) return ret, nil } diff --git a/vendor/google.golang.org/api/googleapi/googleapi.go b/vendor/google.golang.org/api/googleapi/googleapi.go index b5e38c662..167f06109 100644 --- a/vendor/google.golang.org/api/googleapi/googleapi.go +++ b/vendor/google.golang.org/api/googleapi/googleapi.go @@ -145,22 +145,54 @@ func CheckResponse(res *http.Response) error { } slurp, err := io.ReadAll(res.Body) if err == nil { - jerr := new(errorReply) - err = json.Unmarshal(slurp, jerr) - if err == nil && jerr.Error != nil { - if jerr.Error.Code == 0 { - jerr.Error.Code = res.StatusCode - } - jerr.Error.Body = string(slurp) - jerr.Error.Header = res.Header - return jerr.Error - } + return CheckResponseWithBody(res, slurp) } return &Error{ Code: res.StatusCode, Body: string(slurp), Header: res.Header, } + +} + +// CheckResponseWithBody returns an error (of type *Error) if the response +// status code is not 2xx. Distinct from CheckResponse to allow for checking +// a previously-read body to maintain error detail content. +func CheckResponseWithBody(res *http.Response, body []byte) error { + if res.StatusCode >= 200 && res.StatusCode <= 299 { + return nil + } + + jerr, err := errorReplyFromBody(body) + if err == nil && jerr.Error != nil { + if jerr.Error.Code == 0 { + jerr.Error.Code = res.StatusCode + } + jerr.Error.Body = string(body) + jerr.Error.Header = res.Header + return jerr.Error + } + + return &Error{ + Code: res.StatusCode, + Body: string(body), + Header: res.Header, + } +} + +// errorReplyFromBody attempts to get the error from body. The body +// may be a JSON object or JSON array, or may be something else. +func errorReplyFromBody(body []byte) (*errorReply, error) { + jerr := new(errorReply) + if len(body) > 0 && body[0] == '[' { + // Attempt JSON array + jsonArr := []*errorReply{jerr} + err := json.Unmarshal(body, &jsonArr) + return jerr, err + } + // Attempt JSON object + err := json.Unmarshal(body, jerr) + return jerr, err } // IsNotModified reports whether err is the result of the @@ -200,7 +232,17 @@ var WithDataWrapper = MarshalStyle(true) // WithoutDataWrapper marshals JSON without a {"data": ...} wrapper. var WithoutDataWrapper = MarshalStyle(false) +// JSONReader is like JSONBuffer, but returns an io.Reader instead. func (wrap MarshalStyle) JSONReader(v interface{}) (io.Reader, error) { + buf, err := wrap.JSONBuffer(v) + if err != nil { + return nil, err + } + return buf, nil +} + +// JSONBuffer encodes the body and wraps it if needed. +func (wrap MarshalStyle) JSONBuffer(v interface{}) (*bytes.Buffer, error) { buf := new(bytes.Buffer) if wrap { buf.Write([]byte(`{"data": `)) @@ -259,6 +301,20 @@ func ChunkSize(size int) MediaOption { return chunkSizeOption(size) } +type chunkTransferTimeoutOption time.Duration + +func (cd chunkTransferTimeoutOption) setOptions(o *MediaOptions) { + o.ChunkTransferTimeout = time.Duration(cd) +} + +// ChunkTransferTimeout returns a MediaOption which sets a per-chunk +// transfer timeout for resumable uploads. If a single chunk has been +// attempting to upload for longer than this time then the old req got canceled and retried. +// The default is no timeout for the request. +func ChunkTransferTimeout(timeout time.Duration) MediaOption { + return chunkTransferTimeoutOption(timeout) +} + type chunkRetryDeadlineOption time.Duration func (cd chunkRetryDeadlineOption) setOptions(o *MediaOptions) { @@ -277,12 +333,28 @@ func ChunkRetryDeadline(deadline time.Duration) MediaOption { return chunkRetryDeadlineOption(deadline) } +type enableAutoChecksumOption struct{} + +func (d enableAutoChecksumOption) setOptions(o *MediaOptions) { + o.EnableAutoChecksum = true +} + +// EnableAutoChecksum returns a MediaOption that enables automatic checksum +// calculation, which is only supported for resumable multi-chunk uploads. +// The computed checksum is sent on the final upload request to the server. +// Writes are rejected in the event of a checksum mismatch. +func EnableAutoChecksum() MediaOption { + return enableAutoChecksumOption{} +} + // MediaOptions stores options for customizing media upload. It is not used by developers directly. type MediaOptions struct { ContentType string ForceEmptyContentType bool ChunkSize int ChunkRetryDeadline time.Duration + ChunkTransferTimeout time.Duration + EnableAutoChecksum bool } // ProcessMediaOptions stores options from opts in a MediaOptions. diff --git a/vendor/google.golang.org/api/internal/cba.go b/vendor/google.golang.org/api/internal/cba.go index fbf4ef1c6..7b13dc836 100644 --- a/vendor/google.golang.org/api/internal/cba.go +++ b/vendor/google.golang.org/api/internal/cba.go @@ -42,7 +42,6 @@ import ( "strings" "github.com/google/s2a-go" - "github.com/google/s2a-go/fallback" "google.golang.org/api/internal/cert" "google.golang.org/grpc/credentials" ) @@ -242,17 +241,8 @@ func GetGRPCTransportConfigAndEndpoint(settings *DialSettings) (credentials.Tran return defaultTransportCreds, config.endpoint, nil } - var fallbackOpts *s2a.FallbackOptions - // In case of S2A failure, fall back to the endpoint that would've been used without S2A. - if fallbackHandshake, err := fallback.DefaultFallbackClientHandshakeFunc(config.endpoint); err == nil { - fallbackOpts = &s2a.FallbackOptions{ - FallbackClientHandshakeFunc: fallbackHandshake, - } - } - s2aTransportCreds, err := s2a.NewClientCreds(&s2a.ClientOptions{ - S2AAddress: config.s2aAddress, - FallbackOpts: fallbackOpts, + S2AAddress: config.s2aAddress, }) if err != nil { // Use default if we cannot initialize S2A client transport credentials. @@ -273,22 +263,8 @@ func GetHTTPTransportConfigAndEndpoint(settings *DialSettings) (cert.Source, fun return config.clientCertSource, nil, config.endpoint, nil } - var fallbackOpts *s2a.FallbackOptions - // In case of S2A failure, fall back to the endpoint that would've been used without S2A. - if fallbackURL, err := url.Parse(config.endpoint); err == nil { - if fallbackDialer, fallbackServerAddr, err := fallback.DefaultFallbackDialerAndAddress(fallbackURL.Hostname()); err == nil { - fallbackOpts = &s2a.FallbackOptions{ - FallbackDialer: &s2a.FallbackDialer{ - Dialer: fallbackDialer, - ServerAddr: fallbackServerAddr, - }, - } - } - } - dialTLSContextFunc := s2a.NewS2ADialTLSContextFunc(&s2a.ClientOptions{ - S2AAddress: config.s2aAddress, - FallbackOpts: fallbackOpts, + S2AAddress: config.s2aAddress, }) return nil, dialTLSContextFunc, config.s2aMTLSEndpoint, nil } diff --git a/vendor/google.golang.org/api/internal/credentialstype/credentialstype.go b/vendor/google.golang.org/api/internal/credentialstype/credentialstype.go new file mode 100644 index 000000000..0e2c4612c --- /dev/null +++ b/vendor/google.golang.org/api/internal/credentialstype/credentialstype.go @@ -0,0 +1,113 @@ +// Copyright 2024 Google LLC. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// Package credentialstype defines the CredType used for specifying the type of JSON credentials. +package credentialstype + +import ( + "encoding/json" + "fmt" + "slices" +) + +// CredType specifies the type of JSON credentials. +type CredType string + +const ( + // Unknown represents an unknown JSON file type. + Unknown CredType = "" + // ServiceAccount represents a service account file type. + ServiceAccount CredType = "service_account" + // AuthorizedUser represents an authorized user credentials file type. + AuthorizedUser CredType = "authorized_user" + // ImpersonatedServiceAccount represents an impersonated service account file type. + // + // IMPORTANT: + // This credential type does not validate the credential configuration. A security + // risk occurs when a credential configuration configured with malicious urls + // is used. + // You should validate credential configurations provided by untrusted sources. + // See [Security requirements when using credential configurations from an external + // source] https://cloud.google.com/docs/authentication/external/externally-sourced-credentials + // for more details. + ImpersonatedServiceAccount CredType = "impersonated_service_account" + // ExternalAccount represents an external account file type. + // + // IMPORTANT: + // This credential type does not validate the credential configuration. A security + // risk occurs when a credential configuration configured with malicious urls + // is used. + // You should validate credential configurations provided by untrusted sources. + // See [Security requirements when using credential configurations from an external + // source] https://cloud.google.com/docs/authentication/external/externally-sourced-credentials + // for more details. + ExternalAccount CredType = "external_account" + // GDCHServiceAccount represents a GDCH service account file type. + GDCHServiceAccount CredType = "gdc_service_account" + // ExternalAccountAuthorizedUser represents an external account authorized user file type. + ExternalAccountAuthorizedUser CredType = "external_account_authorized_user" +) + +var knownTypes = map[CredType]bool{ + ServiceAccount: true, + AuthorizedUser: true, + ImpersonatedServiceAccount: true, + ExternalAccount: true, + GDCHServiceAccount: true, + ExternalAccountAuthorizedUser: true, +} + +// GetCredType returns the credentials type or the Unknown type, +// or an error for empty data or failure to unmarshal JSON. +func GetCredType(data []byte) (CredType, error) { + var t CredType + if len(data) == 0 { + return t, fmt.Errorf("credential provided is 0 bytes") + } + var f struct { + Type string `json:"type"` + } + if err := json.Unmarshal(data, &f); err != nil { + return t, err + } + t = parseCredType(f.Type) + return t, nil +} + +// CheckCredentialType checks if the provided JSON bytes match the expected +// credential type and, if present, one of the allowed credential types. +// An error is returned if the JSON is invalid, the type field is missing, +// or the types do not match expected and (if present) allowed. +func CheckCredentialType(b []byte, expected CredType, allowed ...CredType) error { + var f struct { + Type string `json:"type"` + } + if err := json.Unmarshal(b, &f); err != nil { + return fmt.Errorf("unable to parse credential type: %w", err) + } + if f.Type == "" { + return fmt.Errorf("missing `type` field in credential") + } + credType := CredType(f.Type) + if credType != expected { + return fmt.Errorf("credential type mismatch: got %q, expected %q", credType, expected) + } + if len(allowed) == 0 { + return nil + } + if !slices.Contains(allowed, credType) { + return fmt.Errorf("credential type not allowed: %q", credType) + } + return nil +} + +// parseCredType returns the matching CredType for the JSON type string if +// it is in the list of publicly exposed types, otherwise Unknown. +func parseCredType(typeString string) CredType { + ct := CredType(typeString) + if knownTypes[ct] { + return ct + } + return Unknown +} diff --git a/vendor/google.golang.org/api/internal/creds.go b/vendor/google.golang.org/api/internal/creds.go index b6dbace4c..2172ba439 100644 --- a/vendor/google.golang.org/api/internal/creds.go +++ b/vendor/google.golang.org/api/internal/creds.go @@ -15,10 +15,12 @@ import ( "os" "time" + "cloud.google.com/go/auth" "cloud.google.com/go/auth/credentials" "cloud.google.com/go/auth/oauth2adapt" "golang.org/x/oauth2" "google.golang.org/api/internal/cert" + "google.golang.org/api/internal/credentialstype" "google.golang.org/api/internal/impersonate" "golang.org/x/oauth2/google" @@ -30,7 +32,7 @@ const quotaProjectEnvVar = "GOOGLE_CLOUD_QUOTA_PROJECT" // it returns default credential information. func Creds(ctx context.Context, ds *DialSettings) (*google.Credentials, error) { if ds.IsNewAuthLibraryEnabled() { - return credsNewAuth(ctx, ds) + return credsNewAuth(ds) } creds, err := baseCreds(ctx, ds) if err != nil { @@ -42,7 +44,57 @@ func Creds(ctx context.Context, ds *DialSettings) (*google.Credentials, error) { return creds, nil } -func credsNewAuth(ctx context.Context, settings *DialSettings) (*google.Credentials, error) { +// AuthCreds returns [cloud.google.com/go/auth.Credentials] based on credentials +// options provided via [option.ClientOption], including legacy oauth2/google +// options. If there are no applicable options, then it returns the result of +// [cloud.google.com/go/auth/credentials.DetectDefault]. +// Note: If NoAuth is true, when [google.golang.org/api/option.WithoutAuthentication] +// is passed, then no authentication will be performed and this function will +// return nil, nil. +func AuthCreds(ctx context.Context, settings *DialSettings) (*auth.Credentials, error) { + if settings.NoAuth { + return nil, nil + } + if settings.AuthCredentials != nil { + return settings.AuthCredentials, nil + } + // Support oauth2/google options + var oauth2Creds *google.Credentials + if settings.InternalCredentials != nil { + oauth2Creds = settings.InternalCredentials + } else if settings.Credentials != nil { + oauth2Creds = settings.Credentials + } else if settings.TokenSource != nil { + oauth2Creds = &google.Credentials{TokenSource: settings.TokenSource} + } + if oauth2Creds != nil { + return oauth2adapt.AuthCredentialsFromOauth2Credentials(oauth2Creds), nil + } + + return detectDefaultFromDialSettings(settings) +} + +// GetOAuth2Configuration determines configurations for the OAuth2 transport, which is separate from the API transport. +// The OAuth2 transport and endpoint will be configured for mTLS if applicable. +func GetOAuth2Configuration(ctx context.Context, settings *DialSettings) (string, *http.Client, error) { + clientCertSource, err := getClientCertificateSource(settings) + if err != nil { + return "", nil, err + } + tokenURL := oAuth2Endpoint(clientCertSource) + var oauth2Client *http.Client + if clientCertSource != nil { + tlsConfig := &tls.Config{ + GetClientCertificate: clientCertSource, + } + oauth2Client = customHTTPClient(tlsConfig) + } else { + oauth2Client = oauth2.NewClient(ctx, nil) + } + return tokenURL, oauth2Client, nil +} + +func credsNewAuth(settings *DialSettings) (*google.Credentials, error) { // Preserve old options behavior if settings.InternalCredentials != nil { return settings.InternalCredentials, nil @@ -56,6 +108,14 @@ func credsNewAuth(ctx context.Context, settings *DialSettings) (*google.Credenti return oauth2adapt.Oauth2CredentialsFromAuthCredentials(settings.AuthCredentials), nil } + creds, err := detectDefaultFromDialSettings(settings) + if err != nil { + return nil, err + } + return oauth2adapt.Oauth2CredentialsFromAuthCredentials(creds), nil +} + +func detectDefaultFromDialSettings(settings *DialSettings) (*auth.Credentials, error) { var useSelfSignedJWT bool var aud string var scopes []string @@ -80,19 +140,16 @@ func credsNewAuth(ctx context.Context, settings *DialSettings) (*google.Credenti aud = settings.DefaultAudience } - creds, err := credentials.DetectDefault(&credentials.DetectOptions{ + credsFile, _ := settings.GetAuthCredentialsFile() + credsJSON, _ := settings.GetAuthCredentialsJSON() + return credentials.DetectDefault(&credentials.DetectOptions{ Scopes: scopes, Audience: aud, - CredentialsFile: settings.CredentialsFile, - CredentialsJSON: settings.CredentialsJSON, + CredentialsFile: credsFile, + CredentialsJSON: credsJSON, UseSelfSignedJWT: useSelfSignedJWT, - Client: oauth2.NewClient(ctx, nil), + Logger: settings.Logger, }) - if err != nil { - return nil, err - } - - return oauth2adapt.Oauth2CredentialsFromAuthCredentials(creds), nil } func baseCreds(ctx context.Context, ds *DialSettings) (*google.Credentials, error) { @@ -102,15 +159,15 @@ func baseCreds(ctx context.Context, ds *DialSettings) (*google.Credentials, erro if ds.Credentials != nil { return ds.Credentials, nil } - if ds.CredentialsJSON != nil { - return credentialsFromJSON(ctx, ds.CredentialsJSON, ds) + if credsJSON, checkCredType := ds.GetAuthCredentialsJSON(); len(credsJSON) > 0 { + return credentialsFromJSON(ctx, credsJSON, ds, checkCredType) } - if ds.CredentialsFile != "" { - data, err := os.ReadFile(ds.CredentialsFile) + if credsFile, checkCredType := ds.GetAuthCredentialsFile(); credsFile != "" { + data, err := os.ReadFile(credsFile) if err != nil { return nil, fmt.Errorf("cannot read credentials file: %v", err) } - return credentialsFromJSON(ctx, data, ds) + return credentialsFromJSON(ctx, data, ds, checkCredType) } if ds.TokenSource != nil { return &google.Credentials{TokenSource: ds.TokenSource}, nil @@ -120,7 +177,7 @@ func baseCreds(ctx context.Context, ds *DialSettings) (*google.Credentials, erro return nil, err } if len(cred.JSON) > 0 { - return credentialsFromJSON(ctx, cred.JSON, ds) + return credentialsFromJSON(ctx, cred.JSON, ds, credentialstype.Unknown) } // For GAE and GCE, the JSON is empty so return the default credentials directly. return cred, nil @@ -143,23 +200,21 @@ const ( // // - Otherwise, executes standard OAuth 2.0 flow // More details: google.aip.dev/auth/4111 -func credentialsFromJSON(ctx context.Context, data []byte, ds *DialSettings) (*google.Credentials, error) { +func credentialsFromJSON(ctx context.Context, data []byte, ds *DialSettings, checkCredType credentialstype.CredType) (*google.Credentials, error) { + if checkCredType != credentialstype.Unknown { + if err := credentialstype.CheckCredentialType(data, checkCredType); err != nil { + return nil, err + } + } var params google.CredentialsParams params.Scopes = ds.GetScopes() - // Determine configurations for the OAuth2 transport, which is separate from the API transport. - // The OAuth2 transport and endpoint will be configured for mTLS if applicable. - clientCertSource, err := getClientCertificateSource(ds) + tokenURL, oauth2Client, err := GetOAuth2Configuration(ctx, ds) if err != nil { return nil, err } - params.TokenURL = oAuth2Endpoint(clientCertSource) - if clientCertSource != nil { - tlsConfig := &tls.Config{ - GetClientCertificate: clientCertSource, - } - ctx = context.WithValue(ctx, oauth2.HTTPClient, customHTTPClient(tlsConfig)) - } + params.TokenURL = tokenURL + ctx = context.WithValue(ctx, oauth2.HTTPClient, oauth2Client) // By default, a standard OAuth 2.0 token source is created cred, err := google.CredentialsFromJSONWithParams(ctx, data, params) @@ -284,14 +339,3 @@ func baseTransport() *http.Transport { ExpectContinueTimeout: 1 * time.Second, } } - -// ErrUniverseNotMatch composes an error string from the provided universe -// domain sources (DialSettings and Credentials, respectively). -func ErrUniverseNotMatch(settingsUD, credsUD string) error { - return fmt.Errorf( - "the configured universe domain (%q) does not match the universe "+ - "domain found in the credentials (%q). If you haven't configured "+ - "WithUniverseDomain explicitly, \"googleapis.com\" is the default", - settingsUD, - credsUD) -} diff --git a/vendor/google.golang.org/api/internal/gensupport/buffer.go b/vendor/google.golang.org/api/internal/gensupport/buffer.go index 3d0817ede..63f383490 100644 --- a/vendor/google.golang.org/api/internal/gensupport/buffer.go +++ b/vendor/google.golang.org/api/internal/gensupport/buffer.go @@ -6,6 +6,7 @@ package gensupport import ( "bytes" + "hash/crc32" "io" "google.golang.org/api/googleapi" @@ -21,8 +22,17 @@ type MediaBuffer struct { // The absolute position of chunk in the underlying media. off int64 + + // fullObjectChecksum holds the running checksum of streamed media chunks when automatic checksum + // calculation is enabled via enableAutoChecksum. + fullObjectChecksum uint32 + enableAutoChecksum bool } +var ( + crc32cTable = crc32.MakeTable(crc32.Castagnoli) +) + // NewMediaBuffer initializes a MediaBuffer. func NewMediaBuffer(media io.Reader, chunkSize int) *MediaBuffer { return &MediaBuffer{media: media, chunk: make([]byte, 0, chunkSize)} @@ -52,6 +62,9 @@ func (mb *MediaBuffer) loadChunk() error { read += n } mb.chunk = mb.chunk[:read] + if mb.enableAutoChecksum { + mb.fullObjectChecksum = crc32.Update(mb.fullObjectChecksum, crc32cTable, mb.chunk) + } return err } diff --git a/vendor/google.golang.org/api/internal/gensupport/media.go b/vendor/google.golang.org/api/internal/gensupport/media.go index c048a5708..4aa05f905 100644 --- a/vendor/google.golang.org/api/internal/gensupport/media.go +++ b/vendor/google.golang.org/api/internal/gensupport/media.go @@ -118,11 +118,12 @@ func typeHeader(contentType string) textproto.MIMEHeader { // // After PrepareUpload has been called, media should no longer be used: the // media content should be accessed via one of the return values. -func PrepareUpload(media io.Reader, chunkSize int) (r io.Reader, mb *MediaBuffer, singleChunk bool) { +func PrepareUpload(media io.Reader, chunkSize int, enableAutoChecksum bool) (r io.Reader, mb *MediaBuffer, singleChunk bool) { if chunkSize == 0 { // do not chunk return media, nil, true } mb = NewMediaBuffer(media, chunkSize) + mb.enableAutoChecksum = enableAutoChecksum _, _, _, err := mb.Chunk() // If err is io.EOF, we can upload this in a single request. Otherwise, err is // either nil or a non-EOF error. If it is the latter, then the next call to @@ -135,13 +136,14 @@ func PrepareUpload(media io.Reader, chunkSize int) (r io.Reader, mb *MediaBuffer // code only. type MediaInfo struct { // At most one of Media and MediaBuffer will be set. - media io.Reader - buffer *MediaBuffer - singleChunk bool - mType string - size int64 // mediaSize, if known. Used only for calls to progressUpdater_. - progressUpdater googleapi.ProgressUpdater - chunkRetryDeadline time.Duration + media io.Reader + buffer *MediaBuffer + singleChunk bool + mType string + size int64 // mediaSize, if known. Used only for calls to progressUpdater_. + progressUpdater googleapi.ProgressUpdater + chunkRetryDeadline time.Duration + chunkTransferTimeout time.Duration } // NewInfoFromMedia should be invoked from the Media method of a call. It returns a @@ -157,7 +159,8 @@ func NewInfoFromMedia(r io.Reader, options []googleapi.MediaOption) *MediaInfo { } } mi.chunkRetryDeadline = opts.ChunkRetryDeadline - mi.media, mi.buffer, mi.singleChunk = PrepareUpload(r, opts.ChunkSize) + mi.chunkTransferTimeout = opts.ChunkTransferTimeout + mi.media, mi.buffer, mi.singleChunk = PrepareUpload(r, opts.ChunkSize, opts.EnableAutoChecksum) return mi } @@ -195,9 +198,28 @@ func (mi *MediaInfo) UploadType() string { return "resumable" } +// ChecksumEnabled returns if auto checksum is enabled in buffer. +func (mi *MediaInfo) ChecksumEnabled() bool { + return mi.buffer != nil && mi.buffer.enableAutoChecksum +} + +// GetAutoChecksum returns the computed auto checksum from buffer (if enabled). +// Make sure whole data is written and read from the buffer before calling this +// function to get correct checksum of the data. +func (mi *MediaInfo) GetAutoChecksum() string { + if mi.buffer != nil && + mi.buffer.enableAutoChecksum { + return encodeUint32(mi.buffer.fullObjectChecksum) + } + return "" +} + // UploadRequest sets up an HTTP request for media upload. It adds headers // as necessary, and returns a replacement for the body and a function for http.Request.GetBody. func (mi *MediaInfo) UploadRequest(reqHeaders http.Header, body io.Reader) (newBody io.Reader, getBody func() (io.ReadCloser, error), cleanup func()) { + if body == nil { + body = new(bytes.Buffer) + } cleanup = func() {} if mi == nil { return body, nil, cleanup @@ -294,7 +316,8 @@ func (mi *MediaInfo) ResumableUpload(locURI string) *ResumableUpload { mi.progressUpdater(curr, mi.size) } }, - ChunkRetryDeadline: mi.chunkRetryDeadline, + ChunkRetryDeadline: mi.chunkRetryDeadline, + ChunkTransferTimeout: mi.chunkTransferTimeout, } } diff --git a/vendor/google.golang.org/api/internal/gensupport/resumable.go b/vendor/google.golang.org/api/internal/gensupport/resumable.go index 08e7aacef..a3b7acad5 100644 --- a/vendor/google.golang.org/api/internal/gensupport/resumable.go +++ b/vendor/google.golang.org/api/internal/gensupport/resumable.go @@ -6,6 +6,8 @@ package gensupport import ( "context" + "encoding/base64" + "encoding/binary" "errors" "fmt" "io" @@ -18,6 +20,11 @@ import ( "google.golang.org/api/internal" ) +const ( + crc32cPrefix = "crc32c" + hashHeaderKey = "X-Goog-Hash" +) + // ResumableUpload is used by the generated APIs to provide resumable uploads. // It is not used by developers directly. type ResumableUpload struct { @@ -43,6 +50,10 @@ type ResumableUpload struct { // retries should happen. ChunkRetryDeadline time.Duration + // ChunkTransferTimeout configures the per-chunk transfer timeout. If a chunk upload stalls for longer than + // this duration, the upload will be retried. + ChunkTransferTimeout time.Duration + // Track current request invocation ID and attempt count for retry metrics // and idempotency headers. invocationID string @@ -99,6 +110,11 @@ func (rx *ResumableUpload) doUploadRequest(ctx context.Context, data io.Reader, // 308" response header. req.Header.Set("X-GUploader-No-308", "yes") + // Server accepts checksum only on final request through header. + if final && rx.Media.enableAutoChecksum { + req.Header.Set(hashHeaderKey, fmt.Sprintf("%v=%v", crc32cPrefix, encodeUint32(rx.Media.fullObjectChecksum))) + } + return SendRequest(ctx, rx.Client, req) } @@ -122,148 +138,219 @@ func (rx *ResumableUpload) reportProgress(old, updated int64) { } } -// transferChunk performs a single HTTP request to upload a single chunk from rx.Media. -func (rx *ResumableUpload) transferChunk(ctx context.Context) (*http.Response, error) { - chunk, off, size, err := rx.Media.Chunk() - - done := err == io.EOF - if !done && err != nil { - return nil, err +// transferChunk performs a single HTTP request to upload a single chunk. +// It uses a goroutine to perform the upload and a timer to enforce ChunkTransferTimeout. +func (rx *ResumableUpload) transferChunk(ctx context.Context, chunk io.Reader, off, size int64, done bool) (*http.Response, error) { + // If no timeout is specified, perform the request synchronously without a timer. + if rx.ChunkTransferTimeout == 0 { + res, err := rx.doUploadRequest(ctx, chunk, off, size, done) + if err != nil { + return res, err + } + return res, nil } - res, err := rx.doUploadRequest(ctx, chunk, off, int64(size), done) - if err != nil { - return res, err + // Start a timer for the ChunkTransferTimeout duration. + timer := time.NewTimer(rx.ChunkTransferTimeout) + + // A struct to hold the result from the goroutine. + type uploadResult struct { + res *http.Response + err error } - // We sent "X-GUploader-No-308: yes" (see comment elsewhere in - // this file), so we don't expect to get a 308. - if res.StatusCode == 308 { - return nil, errors.New("unexpected 308 response status code") + // A buffered channel to receive the result of the upload. + resultCh := make(chan uploadResult, 1) + + // Create a cancellable context for the upload request. This allows us to + // abort the request if the timer fires first. + rCtx, cancel := context.WithCancel(ctx) + // NOTE: We do NOT use `defer cancel()` here. The context must remain valid + // for the caller to read the response body of a successful request. + // Cancellation is handled manually on timeout paths. + + // Starting the chunk upload in parallel. + go func() { + res, err := rx.doUploadRequest(rCtx, chunk, off, size, done) + resultCh <- uploadResult{res: res, err: err} + }() + + // Wait for timer to fire or result channel to have the uploadResult or ctx to be cancelled. + select { + // Note: Calling cancel() will guarantee that the goroutine finishes, + // so these two cases will never block forever on draining the resultCh. + case <-ctx.Done(): + // Context is cancelled for the overall upload. + cancel() + // Drain resultCh. + <-resultCh + return nil, ctx.Err() + case <-timer.C: + // Chunk Transfer timer fired before resultCh so we return context.DeadlineExceeded. + cancel() + // Drain resultCh. + <-resultCh + return nil, context.DeadlineExceeded + case result := <-resultCh: + // Handle the result from the upload. + if result.err != nil { + return result.res, result.err + } + return result.res, nil } +} - if res.StatusCode == http.StatusOK { - rx.reportProgress(off, off+int64(size)) +// uploadChunkWithRetries attempts to upload a single chunk, with retries +// within ChunkRetryDeadline if ChunkTransferTimeout is non-zero. +func (rx *ResumableUpload) uploadChunkWithRetries(ctx context.Context, chunk io.Reader, off, size int64, done bool) (*http.Response, error) { + // Configure error retryable criteria. + shouldRetry := rx.Retry.errorFunc() + + // Configure single chunk retry deadline. + chunkRetryDeadline := defaultRetryDeadline + if rx.ChunkRetryDeadline != 0 { + chunkRetryDeadline = rx.ChunkRetryDeadline } - if statusResumeIncomplete(res) { - rx.Media.Next() + // Each chunk gets its own initialized-at-zero backoff and invocation ID. + bo := rx.Retry.backoff() + quitAfterTimer := time.NewTimer(chunkRetryDeadline) + defer quitAfterTimer.Stop() + rx.attempts = 1 + rx.invocationID = uuid.New().String() + + var pause time.Duration + var resp *http.Response + var err error + + // Retry loop for a single chunk. + for { + // Wait for the backoff period, unless the context is canceled or the + // retry deadline is hit. + backoffPauseTimer := time.NewTimer(pause) + select { + case <-ctx.Done(): + backoffPauseTimer.Stop() + if err == nil { + err = ctx.Err() + } + return resp, err + case <-backoffPauseTimer.C: + case <-quitAfterTimer.C: + backoffPauseTimer.Stop() + return resp, err + } + backoffPauseTimer.Stop() + + // Check for context cancellation or timeout once more. If more than one + // case in the select statement above was satisfied at the same time, Go + // will choose one arbitrarily. + // That can cause an operation to go through even if the context was + // canceled before or the timeout was reached. + select { + case <-ctx.Done(): + if err == nil { + err = ctx.Err() + } + return resp, err + case <-quitAfterTimer.C: + return resp, err + default: + } + + // We close the response's body here, since we definitely will not + // return `resp` now. If we close it before the select case above, a + // timer may fire and cause us to return a response with a closed body + // (in which case, the caller will not get the error message in the body). + if resp != nil && resp.Body != nil { + // Read the body to EOF - if the Body is not both read to EOF and closed, + // the Client's underlying RoundTripper may not be able to re-use the + // persistent TCP connection to the server for a subsequent "keep-alive" request. + // See https://pkg.go.dev/net/http#Client.Do + io.Copy(io.Discard, resp.Body) + resp.Body.Close() + } + + resp, err = rx.transferChunk(ctx, chunk, off, size, done) + status := 0 + if resp != nil { + status = resp.StatusCode + } + // We sent "X-GUploader-No-308: yes" (see comment elsewhere in + // this file), so we don't expect to get a 308. + if status == 308 { + return nil, errors.New("unexpected 308 response status code") + } + // Chunk upload should be retried if the ChunkTransferTimeout is non-zero and err is context deadline exceeded + // or we encounter a retryable error. + if (rx.ChunkTransferTimeout != 0 && errors.Is(err, context.DeadlineExceeded)) || shouldRetry(status, err) { + rx.attempts++ + pause = bo.Pause() + chunk, _, _, _ = rx.Media.Chunk() + continue + } + return resp, err } - return res, nil } // Upload starts the process of a resumable upload with a cancellable context. -// It retries using the provided back off strategy until cancelled or the -// strategy indicates to stop retrying. // It is called from the auto-generated API code and is not visible to the user. // Before sending an HTTP request, Upload calls any registered hook functions, // and calls the returned functions after the request returns (see send.go). // rx is private to the auto-generated API code. // Exactly one of resp or err will be nil. If resp is non-nil, the caller must call resp.Body.Close. -func (rx *ResumableUpload) Upload(ctx context.Context) (resp *http.Response, err error) { +// Upload does not parse the response into the error on a non 200 response; +// it is the caller's responsibility to call resp.Body.Close. +func (rx *ResumableUpload) Upload(ctx context.Context) (*http.Response, error) { + for { + chunk, off, size, err := rx.Media.Chunk() + done := err == io.EOF + if !done && err != nil { + return nil, err + } - // There are a couple of cases where it's possible for err and resp to both - // be non-nil. However, we expose a simpler contract to our callers: exactly - // one of resp and err will be non-nil. This means that any response body - // must be closed here before returning a non-nil error. - var prepareReturn = func(resp *http.Response, err error) (*http.Response, error) { + resp, err := rx.uploadChunkWithRetries(ctx, chunk, off, int64(size), done) + // There are a couple of cases where it's possible for err and resp to both + // be non-nil. However, we expose a simpler contract to our callers: exactly + // one of resp and err will be non-nil. This means that any response body + // must be closed here before returning a non-nil error. if err != nil { if resp != nil && resp.Body != nil { resp.Body.Close() } + // If there were retries, indicate this in the error message and wrap the final error. + if rx.attempts > 1 { + return nil, fmt.Errorf("chunk upload failed after %d attempts, final error: %w", rx.attempts, err) + } return nil, err } + // This case is very unlikely but possible only if rx.ChunkRetryDeadline is // set to a very small value, in which case no requests will be sent before // the deadline. Return an error to avoid causing a panic. if resp == nil { - return nil, fmt.Errorf("upload request to %v not sent, choose larger value for ChunkRetryDealine", rx.URI) + return nil, fmt.Errorf("upload request to %v not sent, choose larger value for ChunkRetryDeadline", rx.URI) } - return resp, nil - } - // Configure retryable error criteria. - errorFunc := rx.Retry.errorFunc() - - // Configure per-chunk retry deadline. - var retryDeadline time.Duration - if rx.ChunkRetryDeadline != 0 { - retryDeadline = rx.ChunkRetryDeadline - } else { - retryDeadline = defaultRetryDeadline - } - - // Send all chunks. - for { - var pause time.Duration - - // Each chunk gets its own initialized-at-zero backoff and invocation ID. - bo := rx.Retry.backoff() - quitAfterTimer := time.NewTimer(retryDeadline) - rx.attempts = 1 - rx.invocationID = uuid.New().String() - - // Retry loop for a single chunk. - for { - pauseTimer := time.NewTimer(pause) - select { - case <-ctx.Done(): - quitAfterTimer.Stop() - pauseTimer.Stop() - if err == nil { - err = ctx.Err() - } - return prepareReturn(resp, err) - case <-pauseTimer.C: - case <-quitAfterTimer.C: - pauseTimer.Stop() - return prepareReturn(resp, err) - } - pauseTimer.Stop() - - // Check for context cancellation or timeout once more. If more than one - // case in the select statement above was satisfied at the same time, Go - // will choose one arbitrarily. - // That can cause an operation to go through even if the context was - // canceled before or the timeout was reached. - select { - case <-ctx.Done(): - quitAfterTimer.Stop() - if err == nil { - err = ctx.Err() - } - return prepareReturn(resp, err) - case <-quitAfterTimer.C: - return prepareReturn(resp, err) - default: - } - - resp, err = rx.transferChunk(ctx) - - var status int - if resp != nil { - status = resp.StatusCode - } - - // Check if we should retry the request. - if !errorFunc(status, err) { - quitAfterTimer.Stop() - break - } - - rx.attempts++ - pause = bo.Pause() - if resp != nil && resp.Body != nil { - resp.Body.Close() - } + if resp.StatusCode == http.StatusOK { + rx.reportProgress(off, off+int64(size)) } - - // If the chunk was uploaded successfully, but there's still - // more to go, upload the next chunk without any delay. if statusResumeIncomplete(resp) { - resp.Body.Close() + // The upload is not yet complete, but the server has acknowledged this chunk. + // We don't have anything to do with the response body. + if resp.Body != nil { + io.Copy(io.Discard, resp.Body) + resp.Body.Close() + } + rx.Media.Next() continue } - - return prepareReturn(resp, err) + return resp, nil } } + +// Encode a uint32 as Base64 in big-endian byte order. +func encodeUint32(u uint32) string { + b := make([]byte, 4) + binary.BigEndian.PutUint32(b, u) + return base64.StdEncoding.EncodeToString(b) +} diff --git a/vendor/google.golang.org/api/internal/gensupport/retry.go b/vendor/google.golang.org/api/internal/gensupport/retry.go index 20b57d925..089ee3189 100644 --- a/vendor/google.golang.org/api/internal/gensupport/retry.go +++ b/vendor/google.golang.org/api/internal/gensupport/retry.go @@ -8,6 +8,7 @@ import ( "errors" "io" "net" + "net/url" "strings" "time" @@ -29,8 +30,6 @@ var ( backoff = func() Backoff { return &gax.Backoff{Initial: 100 * time.Millisecond} } - // syscallRetryable is a platform-specific hook, specified in retryable_linux.go - syscallRetryable func(error) bool = func(err error) bool { return false } ) const ( @@ -56,30 +55,33 @@ func shouldRetry(status int, err error) bool { if status == statusTooManyRequests || status == statusRequestTimeout { return true } - if err == io.ErrUnexpectedEOF { + if errors.Is(err, io.ErrUnexpectedEOF) { return true } - // Transient network errors should be retried. - if syscallRetryable(err) { + if errors.Is(err, net.ErrClosed) { return true } - if err, ok := err.(interface{ Temporary() bool }); ok { - if err.Temporary() { - return true + switch e := err.(type) { + case *net.OpError, *url.Error: + // Retry socket-level errors ECONNREFUSED and ECONNRESET (from syscall). + // Unfortunately the error type is unexported, so we resort to string + // matching. + retriable := []string{"connection refused", "connection reset", "broken pipe"} + for _, s := range retriable { + if strings.Contains(e.Error(), s) { + return true + } } - } - var opErr *net.OpError - if errors.As(err, &opErr) { - if strings.Contains(opErr.Error(), "use of closed network connection") { - // TODO: check against net.ErrClosed (go 1.16+) instead of string + case interface{ Temporary() bool }: + if e.Temporary() { return true } } - // If Go 1.13 error unwrapping is available, use this to examine wrapped + // If error unwrapping is available, use this to examine wrapped // errors. - if err, ok := err.(interface{ Unwrap() error }); ok { - return shouldRetry(status, err.Unwrap()) + if e, ok := err.(interface{ Unwrap() error }); ok { + return shouldRetry(status, e.Unwrap()) } return false } diff --git a/vendor/google.golang.org/api/internal/gensupport/retryable_linux.go b/vendor/google.golang.org/api/internal/gensupport/retryable_linux.go deleted file mode 100644 index a916c3da2..000000000 --- a/vendor/google.golang.org/api/internal/gensupport/retryable_linux.go +++ /dev/null @@ -1,16 +0,0 @@ -// Copyright 2020 Google LLC. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -//go:build linux -// +build linux - -package gensupport - -import "syscall" - -func init() { - // Initialize syscallRetryable to return true on transient socket-level - // errors. These errors are specific to Linux. - syscallRetryable = func(err error) bool { return err == syscall.ECONNRESET || err == syscall.ECONNREFUSED } -} diff --git a/vendor/google.golang.org/api/internal/gensupport/send.go b/vendor/google.golang.org/api/internal/gensupport/send.go index f39dd00d9..86b9ac0e1 100644 --- a/vendor/google.golang.org/api/internal/gensupport/send.go +++ b/vendor/google.golang.org/api/internal/gensupport/send.go @@ -9,6 +9,7 @@ import ( "encoding/json" "errors" "fmt" + "io" "net/http" "strings" "time" @@ -39,20 +40,50 @@ func (e wrappedCallErr) Is(target error) bool { return errors.Is(e.ctxErr, target) || errors.Is(e.wrappedErr, target) } -// SendRequest sends a single HTTP request using the given client. -// If ctx is non-nil, it calls all hooks, then sends the request with -// req.WithContext, then calls any functions returned by the hooks in -// reverse order. -func SendRequest(ctx context.Context, client *http.Client, req *http.Request) (*http.Response, error) { - // Add headers set in context metadata. - if ctx != nil { - headers := callctx.HeadersFromContext(ctx) - for k, vals := range headers { +// addContextHeaders adds headers set in context metadata. +// x-goog-api-client and x-goog-request-params are merged properly. +func addContextHeaders(ctx context.Context, req *http.Request) { + if ctx == nil { + return + } + headers := callctx.HeadersFromContext(ctx) + for k, vals := range headers { + if strings.EqualFold(k, "x-goog-api-client") { + mergeHeader(req.Header, k, vals, ' ') + } else if strings.EqualFold(k, "x-goog-request-params") { + mergeHeader(req.Header, k, vals, '&') + } else { for _, v := range vals { req.Header.Add(k, v) } } } +} + +// mergeHeader merges multiple values into a single header. +func mergeHeader(header http.Header, key string, vals []string, separator rune) { + var mergedVal strings.Builder + baseHeader := header.Get(key) + if baseHeader != "" { + mergedVal.WriteString(baseHeader) + mergedVal.WriteRune(separator) + } + for _, v := range vals { + mergedVal.WriteString(v) + mergedVal.WriteRune(separator) + } + if mergedVal.Len() > 0 { + // Remove the last separator and replace the header on the request. + header.Set(key, mergedVal.String()[:mergedVal.Len()-1]) + } +} + +// SendRequest sends a single HTTP request using the given client. +// If ctx is non-nil, it calls all hooks, then sends the request with +// req.WithContext, then calls any functions returned by the hooks in +// reverse order. +func SendRequest(ctx context.Context, client *http.Client, req *http.Request) (*http.Response, error) { + addContextHeaders(ctx, req) // Disallow Accept-Encoding because it interferes with the automatic gzip handling // done by the default http.Transport. See https://github.com/google/google-api-go-client/issues/219. @@ -88,15 +119,7 @@ func send(ctx context.Context, client *http.Client, req *http.Request) (*http.Re // req.WithContext, then calls any functions returned by the hooks in // reverse order. func SendRequestWithRetry(ctx context.Context, client *http.Client, req *http.Request, retry *RetryConfig) (*http.Response, error) { - // Add headers set in context metadata. - if ctx != nil { - headers := callctx.HeadersFromContext(ctx) - for k, vals := range headers { - for _, v := range vals { - req.Header.Add(k, v) - } - } - } + addContextHeaders(ctx, req) // Disallow Accept-Encoding because it interferes with the automatic gzip handling // done by the default http.Transport. See https://github.com/google/google-api-go-client/issues/219. @@ -118,7 +141,9 @@ func sendAndRetry(ctx context.Context, client *http.Client, req *http.Request, r var err error attempts := 1 invocationID := uuid.New().String() - baseXGoogHeader := req.Header.Get("X-Goog-Api-Client") + + xGoogHeaderVals := req.Header.Values("X-Goog-Api-Client") + baseXGoogHeader := strings.Join(xGoogHeaderVals, " ") // Loop to retry the request, up to the context deadline. var pause time.Duration @@ -204,3 +229,19 @@ func DecodeResponse(target interface{}, res *http.Response) error { } return json.NewDecoder(res.Body).Decode(target) } + +// DecodeResponseBytes decodes the body of res into target and returns bytes read +// from the body. If there is no body, target is unchanged. +func DecodeResponseBytes(target interface{}, res *http.Response) ([]byte, error) { + if res.StatusCode == http.StatusNoContent { + return nil, nil + } + b, err := io.ReadAll(res.Body) + if err != nil { + return nil, err + } + if err := json.Unmarshal(b, target); err != nil { + return nil, err + } + return b, nil +} diff --git a/vendor/google.golang.org/api/internal/settings.go b/vendor/google.golang.org/api/internal/settings.go index 6d0c18e5a..03e928cd5 100644 --- a/vendor/google.golang.org/api/internal/settings.go +++ b/vendor/google.golang.org/api/internal/settings.go @@ -8,6 +8,7 @@ package internal import ( "crypto/tls" "errors" + "log/slog" "net/http" "os" "strconv" @@ -16,6 +17,7 @@ import ( "cloud.google.com/go/auth" "golang.org/x/oauth2" "golang.org/x/oauth2/google" + "google.golang.org/api/internal/credentialstype" "google.golang.org/api/internal/impersonate" "google.golang.org/grpc" ) @@ -30,16 +32,18 @@ const ( // DialSettings holds information needed to establish a connection with a // Google API service. type DialSettings struct { - Endpoint string - DefaultEndpoint string - DefaultEndpointTemplate string - DefaultMTLSEndpoint string - Scopes []string - DefaultScopes []string - EnableJwtWithScope bool - TokenSource oauth2.TokenSource - Credentials *google.Credentials - CredentialsFile string // if set, Token Source is ignored. + Endpoint string + DefaultEndpoint string + DefaultEndpointTemplate string + DefaultMTLSEndpoint string + Scopes []string + DefaultScopes []string + EnableJwtWithScope bool + TokenSource oauth2.TokenSource + Credentials *google.Credentials + // Deprecated: Use AuthCredentialsFile instead, due to security risk. + CredentialsFile string + // Deprecated: Use AuthCredentialsJSON instead, due to security risk. CredentialsJSON []byte InternalCredentials *google.Credentials UserAgent string @@ -62,14 +66,29 @@ type DialSettings struct { AllowNonDefaultServiceAccount bool DefaultUniverseDomain string UniverseDomain string + AllowHardBoundTokens []string + Logger *slog.Logger // Google API system parameters. For more information please read: // https://cloud.google.com/apis/docs/system-parameters QuotaProject string RequestReason string + // TelemetryAttributes specifies a map of telemetry attributes to be added + // to all OpenTelemetry signals, such as tracing and metrics, for purposes + // including representing the static identity of the client (e.g., service + // name, version). These attributes are expected to be consistent across all + // signals to enable cross-signal correlation. + TelemetryAttributes map[string]string + // New Auth library Options AuthCredentials *auth.Credentials + AuthCredentialsJSON []byte + AuthCredentialsFile string + AuthCredentialsType credentialstype.CredType EnableNewAuthLibrary bool + + // TODO(b/372244283): Remove after b/358175516 has been fixed + EnableAsyncRefreshDryRun func() } // GetScopes returns the user-provided scopes, if set, or else falls back to the @@ -104,29 +123,71 @@ func (ds *DialSettings) IsNewAuthLibraryEnabled() bool { if ds.EnableNewAuthLibrary { return true } + if ds.AuthCredentials != nil { + return true + } + if len(ds.AuthCredentialsJSON) > 0 { + return true + } + if ds.AuthCredentialsFile != "" { + return true + } if b, err := strconv.ParseBool(os.Getenv(newAuthLibEnvVar)); err == nil { return b } return false } +// GetAuthCredentialsJSON returns the AuthCredentialsJSON and AuthCredentialsType, if set. +// Otherwise it falls back to the deprecated CredentialsJSON with an Unknown type. +// +// Use AuthCredentialsJSON if provided, as it is the safer, recommended option. +// CredentialsJSON is populated by the deprecated WithCredentialsJSON. +func (ds *DialSettings) GetAuthCredentialsJSON() ([]byte, credentialstype.CredType) { + if len(ds.AuthCredentialsJSON) > 0 { + return ds.AuthCredentialsJSON, ds.AuthCredentialsType + } + return ds.CredentialsJSON, credentialstype.Unknown +} + +// GetAuthCredentialsFile returns the AuthCredentialsFile and AuthCredentialsType, if set. +// Otherwise it falls back to the deprecated CredentialsFile with an Unknown type. +// +// Use AuthCredentialsFile if provided, as it is the safer, recommended option. +// CredentialsFile is populated by the deprecated WithCredentialsFile. +func (ds *DialSettings) GetAuthCredentialsFile() (string, credentialstype.CredType) { + if ds.AuthCredentialsFile != "" { + return ds.AuthCredentialsFile, ds.AuthCredentialsType + } + return ds.CredentialsFile, credentialstype.Unknown +} + // Validate reports an error if ds is invalid. func (ds *DialSettings) Validate() error { if ds.SkipValidation { return nil } - hasCreds := ds.APIKey != "" || ds.TokenSource != nil || ds.CredentialsFile != "" || ds.Credentials != nil + hasCreds := ds.APIKey != "" || ds.TokenSource != nil || ds.CredentialsFile != "" || ds.Credentials != nil || ds.AuthCredentials != nil || len(ds.AuthCredentialsJSON) > 0 || ds.AuthCredentialsFile != "" if ds.NoAuth && hasCreds { return errors.New("options.WithoutAuthentication is incompatible with any option that provides credentials") } // Credentials should not appear with other options. + // AuthCredentials is a special case that may be present with + // with other options in order to facilitate automatic conversion of + // oauth2 types (old auth) to cloud.google.com/go/auth types (new auth). // We currently allow TokenSource and CredentialsFile to coexist. // TODO(jba): make TokenSource & CredentialsFile an error (breaking change). nCreds := 0 if ds.Credentials != nil { nCreds++ } - if ds.CredentialsJSON != nil { + if len(ds.CredentialsJSON) > 0 { + nCreds++ + } + if len(ds.AuthCredentialsJSON) > 0 { + nCreds++ + } + if ds.AuthCredentialsFile != "" { nCreds++ } if ds.CredentialsFile != "" { @@ -204,8 +265,7 @@ func (ds *DialSettings) IsUniverseDomainGDU() bool { } // GetUniverseDomain returns the default service domain for a given Cloud -// universe, from google.Credentials, for comparison with the value returned by -// (*DialSettings).GetUniverseDomain. This wrapper function should be removed +// universe, from google.Credentials. This wrapper function should be removed // to close https://github.com/googleapis/google-api-go-client/issues/2399. func GetUniverseDomain(creds *google.Credentials) (string, error) { timer := time.NewTimer(time.Second) diff --git a/vendor/google.golang.org/api/internal/version.go b/vendor/google.golang.org/api/internal/version.go index f1792faf3..571835047 100644 --- a/vendor/google.golang.org/api/internal/version.go +++ b/vendor/google.golang.org/api/internal/version.go @@ -5,4 +5,4 @@ package internal // Version is the current tagged release of the library. -const Version = "0.179.0" +const Version = "0.288.0" diff --git a/vendor/google.golang.org/api/option/internaloption/internaloption.go b/vendor/google.golang.org/api/option/internaloption/internaloption.go index e6b5c1025..6f9fdf23f 100644 --- a/vendor/google.golang.org/api/option/internaloption/internaloption.go +++ b/vendor/google.golang.org/api/option/internaloption/internaloption.go @@ -6,6 +6,12 @@ package internaloption import ( + "context" + "log/slog" + "maps" + + "cloud.google.com/go/auth" + "github.com/googleapis/gax-go/v2/internallog" "golang.org/x/oauth2/google" "google.golang.org/api/internal" "google.golang.org/api/option" @@ -148,6 +154,23 @@ func (w withDefaultScopes) Apply(o *internal.DialSettings) { copy(o.DefaultScopes, w) } +// WithTelemetryAttributes returns a ClientOption that specifies a map of +// telemetry attributes to be added to all telemetry signals, such as tracing +// and metrics, for purposes including representing the static identity of the +// client (e.g., service name, version). These attributes are expected to be +// consistent across all signals to enable cross-signal correlation. +// +// It should only be used internally by generated clients. +func WithTelemetryAttributes(attrs map[string]string) option.ClientOption { + return withTelemetryAttributes(attrs) +} + +type withTelemetryAttributes map[string]string + +func (w withTelemetryAttributes) Apply(o *internal.DialSettings) { + o.TelemetryAttributes = maps.Clone(w) +} + // WithDefaultUniverseDomain returns a ClientOption that sets the default universe domain. // // It should only be used internally by generated clients. @@ -181,6 +204,33 @@ func (w enableJwtWithScope) Apply(o *internal.DialSettings) { o.EnableJwtWithScope = bool(w) } +// AllowHardBoundTokens returns a ClientOption that allows libraries to request a hard-bound token. +// Obtaining hard-bound tokens requires the connection to be established using either Application +// Layer Transport Security (ALTS) or mutual TLS (mTLS) with S2A. For more information on ALTS, +// see: https://cloud.google.com/docs/security/encryption-in-transit/application-layer-transport-security +// +// The AllowHardBoundTokens option accepts the following values (or a combination thereof): +// +// - "MTLS_S2A": Allows obtaining hard-bound tokens when the connection uses mutual TLS with S2A. +// - "ALTS": Allows obtaining hard-bound tokens when the connection uses ALTS. +// +// For example, to allow obtaining hard-bound tokens with either MTLS_S2A or ALTS, you would +// provide both values (e.g., {"MTLS_S2A","ALTS"}). If no value is provided, hard-bound tokens +// will not be requested. +// +// It should only be used internally by generated clients. +// This is an EXPERIMENTAL API and may be changed or removed in the future. +func AllowHardBoundTokens(protocol ...string) option.ClientOption { + return allowHardBoundTokens(protocol) +} + +type allowHardBoundTokens []string + +func (a allowHardBoundTokens) Apply(o *internal.DialSettings) { + o.AllowHardBoundTokens = make([]string, len(a)) + copy(o.AllowHardBoundTokens, a) +} + // WithCredentials returns a client option to specify credentials which will be used to authenticate API calls. // This credential takes precedence over all other credential options. func WithCredentials(creds *google.Credentials) option.ClientOption { @@ -206,9 +256,82 @@ func (w enableNewAuthLibrary) Apply(o *internal.DialSettings) { o.EnableNewAuthLibrary = bool(w) } +// EnableAsyncRefreshDryRun returns a ClientOption that specifies if libraries in this +// module should asynchronously refresh auth token in parallel to sync refresh. +// +// This option can be used to determine whether refreshing the token asymnchronously +// prior to its actual expiry works without any issues in a particular environment. +// +// errHandler function will be called when there is an error while refreshing +// the token asynchronously. +// +// This is an EXPERIMENTAL option and will be removed in the future. +// TODO(b/372244283): Remove after b/358175516 has been fixed +func EnableAsyncRefreshDryRun(errHandler func()) option.ClientOption { + return enableAsyncRefreshDryRun{ + errHandler: errHandler, + } +} + +// TODO(b/372244283): Remove after b/358175516 has been fixed +type enableAsyncRefreshDryRun struct { + errHandler func() +} + +// TODO(b/372244283): Remove after b/358175516 has been fixed +func (w enableAsyncRefreshDryRun) Apply(o *internal.DialSettings) { + o.EnableAsyncRefreshDryRun = w.errHandler +} + // EmbeddableAdapter is a no-op option.ClientOption that allow libraries to // create their own client options by embedding this type into their own // client-specific option wrapper. See example for usage. type EmbeddableAdapter struct{} func (*EmbeddableAdapter) Apply(_ *internal.DialSettings) {} + +// GetLogger is a helper for client libraries to extract the [slog.Logger] from +// the provided options or return a default logger if one is not found. +// +// It should only be used internally by generated clients. This is an EXPERIMENTAL API +// and may be changed or removed in the future. +func GetLogger(opts []option.ClientOption) *slog.Logger { + var ds internal.DialSettings + for _, opt := range opts { + opt.Apply(&ds) + } + return internallog.New(ds.Logger) +} + +// AuthCreds returns [cloud.google.com/go/auth.Credentials] using the following +// options provided via [option.ClientOption], including legacy oauth2/google +// options, in this order: +// +// - [option.WithoutAuthentication] +// - [option.Credentials] +// - [WithCredentials] (internal use only) +// - [option.WithCredentials] +// - [option.WithTokenSource] +// +// If there are no applicable credentials options, then it passes the +// following options to [cloud.google.com/go/auth/credentials.DetectDefault] and +// returns the result: +// +// - [option.WithAudiences] +// - [option.WithAuthCredentialsFile] +// - [option.WithCredentialsFile] +// - [option.WithAuthCredentialsJSON] +// - [option.WithCredentialsJSON] +// - [option.WithScopes] +// - [WithDefaultScopes] (internal use only) +// - [EnableJwtWithScope] (internal use only) +// +// This function should only be used internally by generated clients. This is an +// EXPERIMENTAL API and may be changed or removed in the future. +func AuthCreds(ctx context.Context, opts []option.ClientOption) (*auth.Credentials, error) { + var ds internal.DialSettings + for _, opt := range opts { + opt.Apply(&ds) + } + return internal.AuthCreds(ctx, &ds) +} diff --git a/vendor/google.golang.org/api/option/internaloption/unsaferesolver.go b/vendor/google.golang.org/api/option/internaloption/unsaferesolver.go new file mode 100644 index 000000000..51a98c5a8 --- /dev/null +++ b/vendor/google.golang.org/api/option/internaloption/unsaferesolver.go @@ -0,0 +1,106 @@ +// Copyright 2026 Google LLC. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package internaloption + +import ( + "google.golang.org/api/internal" + "google.golang.org/api/option" +) + +// UnsafeResolver provides a mechanism for introspecting values passed through +// during client instantiations, which are defined as functional options. It +// is by its nature not meant for general use, as it requires understanding of +// internal implementations. It is intended for use solely by internal Google +// client code, and provides no stability contract. +// +// This is an EXPERIMENTAL API and may be changed or removed in the future. +type UnsafeResolver struct { + ds *internal.DialSettings +} + +// NewUnsafeResolver instantiates a new ClientOption resolver. It is intended +// for user solely by internal Google client code. See the corresponding +// UnsafeResolver type for more details. +// +// This is an EXPERIMENTAL API and may be changed or removed in the future. +func NewUnsafeResolver(opts ...option.ClientOption) (*UnsafeResolver, error) { + ds := new(internal.DialSettings) + for _, o := range opts { + o.Apply(ds) + } + return &UnsafeResolver{ + ds: ds, + }, nil +} + +// ResolvedWithAPIKeyIsCustom returns whether the option to supply an API key was +// populate. This corresponds to the WithAPIKey ClientOption in +// google.golang.org/option. +// +// This is an EXPERIMENTAL API and may be changed or removed in the future. +func (ur *UnsafeResolver) ResolvedWithAPIKeyIsCustom() bool { + return ur.ds.APIKey != "" +} + +// ResolvedGRPCConnPoolSize provides the passed in value correspnding to the +// WithGRPCConnectionPool option in google.golang.org/option. +// +// This is an EXPERIMENTAL API and may be changed or removed in the future. +func (ur *UnsafeResolver) ResolvedGRPCConnPoolSize() int { + return ur.ds.GRPCConnPoolSize +} + +// ResolvedGRPCEndpoint returns the resolved endpoint address used for +// establishing gRPC connections. +// +// This is an EXPERIMENTAL API and may be changed or removed in the future. +func (ur *UnsafeResolver) ResolvedGRPCEndpoint() (string, error) { + _, addr, err := internal.GetGRPCTransportConfigAndEndpoint(ur.ds) + return addr, err +} + +// ResolvedGRPCConnIsCustom exposes whether the provided options included +// directives for providing a customized transport, corresponding to the +// WithGRPCConn option. +// +// This is an EXPERIMENTAL API and may be changed or removed in the future. +func (ur *UnsafeResolver) ResolvedGRPCConnIsCustom() bool { + return ur.ds.GRPCConn != nil +} + +// ResolvedHTTPClientIsCustom returns whether the option to supply an API key was +// populate. This corresponds to the WithHTTPClient ClientOption in +// google.golang.org/option. +// +// This is an EXPERIMENTAL API and may be changed or removed in the future. +func (ur *UnsafeResolver) ResolvedHTTPClientIsCustom() bool { + return ur.ds.HTTPClient != nil +} + +// ResolvedEnableDirectPath returns whether DirectPath was explicitly enabled. +// This corresponds to the EnableDirectPath option in this package. +// +// This is an EXPERIMENTAL API and may be changed or removed in the future. +func (ur *UnsafeResolver) ResolvedEnableDirectPath() bool { + return ur.ds.EnableDirectPath +} + +// ResolvedEnableDirectPathXds returns whether extensible directory service (xDS) +// support was requested as part of direct path enablement. This corresponds to the +// EnableDirectPathXds option in this package. +// +// This is an EXPERIMENTAL API and may be changed or removed in the future. +func (ur *UnsafeResolver) ResolvedEnableDirectPathXds() bool { + return ur.ds.EnableDirectPathXds +} + +// ResolvedWithoutAuthentication returns whether the option to explicitly disable +// authentication was requested. This corresponds to the WithoutAuthentication +// ClientOption in google.golang.org/option. +// +// This is an EXPERIMENTAL API and may be changed or removed in the future. +func (ur *UnsafeResolver) ResolvedWithoutAuthentication() bool { + return ur.ds.NoAuth +} diff --git a/vendor/google.golang.org/api/option/option.go b/vendor/google.golang.org/api/option/option.go index 23aba01b6..4dbfc3a2a 100644 --- a/vendor/google.golang.org/api/option/option.go +++ b/vendor/google.golang.org/api/option/option.go @@ -7,16 +7,52 @@ package option import ( "crypto/tls" + "log/slog" "net/http" "cloud.google.com/go/auth" "golang.org/x/oauth2" "golang.org/x/oauth2/google" "google.golang.org/api/internal" + "google.golang.org/api/internal/credentialstype" "google.golang.org/api/internal/impersonate" "google.golang.org/grpc" ) +// CredentialsType specifies the type of JSON credentials being provided +// to a loading function such as [WithAuthCredentialsFile] or +// [WithAuthCredentialsJSON]. +type CredentialsType = credentialstype.CredType + +const ( + // ServiceAccount represents a service account file type. + ServiceAccount = credentialstype.ServiceAccount + // AuthorizedUser represents an authorized user credentials file type. + AuthorizedUser = credentialstype.AuthorizedUser + // ImpersonatedServiceAccount represents an impersonated service account file type. + // + // IMPORTANT: + // This credential type does not validate the credential configuration. A security + // risk occurs when a credential configuration configured with malicious urls + // is used. + // You should validate credential configurations provided by untrusted sources. + // See [Security requirements when using credential configurations from an external + // source] https://cloud.google.com/docs/authentication/external/externally-sourced-credentials + // for more details. + ImpersonatedServiceAccount = credentialstype.ImpersonatedServiceAccount + // ExternalAccount represents an external account file type. + // + // IMPORTANT: + // This credential type does not validate the credential configuration. A security + // risk occurs when a credential configuration configured with malicious urls + // is used. + // You should validate credential configurations provided by untrusted sources. + // See [Security requirements when using credential configurations from an external + // source] https://cloud.google.com/docs/authentication/external/externally-sourced-credentials + // for more details. + ExternalAccount = credentialstype.ExternalAccount +) + // A ClientOption is an option for a Google API client. type ClientOption interface { Apply(*internal.DialSettings) @@ -43,21 +79,104 @@ func (w withCredFile) Apply(o *internal.DialSettings) { // WithCredentialsFile returns a ClientOption that authenticates // API calls with the given service account or refresh token JSON // credentials file. +// +// Deprecated: This function is being deprecated because of a potential security risk. +// +// This function does not validate the credential configuration. The security +// risk occurs when a credential configuration is accepted from a source that +// is not under your control and used without validation on your side. +// +// If you know that you will be loading credential configurations of a +// specific type, it is recommended to use a credential-type-specific +// option function. +// This will ensure that an unexpected credential type with potential for +// malicious intent is not loaded unintentionally. You might still have to do +// validation for certain credential types. Please follow the recommendation +// for that function. For example, if you want to load only service accounts, +// you can use [WithAuthCredentialsFile] with [ServiceAccount]: +// +// option.WithAuthCredentialsFile(option.ServiceAccount, "/path/to/file.json") +// +// If you are loading your credential configuration from an untrusted source and have +// not mitigated the risks (e.g. by validating the configuration yourself), make +// these changes as soon as possible to prevent security risks to your environment. +// +// Regardless of the function used, it is always your responsibility to validate +// configurations received from external sources. func WithCredentialsFile(filename string) ClientOption { return withCredFile(filename) } +// WithAuthCredentialsFile returns a ClientOption that authenticates API calls +// with the given JSON credentials file and credential type. +// +// Important: If you accept a credential configuration (credential +// JSON/File/Stream) from an external source for authentication to Google +// Cloud Platform, you must validate it before providing it to any Google +// API or library. Providing an unvalidated credential configuration to +// Google APIs can compromise the security of your systems and data. For +// more information, refer to [Validate credential configurations from +// external sources](https://cloud.google.com/docs/authentication/external/externally-sourced-credentials). +func WithAuthCredentialsFile(credType CredentialsType, filename string) ClientOption { + return withAuthCredentialsFile{ + credsType: credType, + filename: filename, + } +} + +type withAuthCredentialsFile struct { + credsType CredentialsType + filename string +} + +func (w withAuthCredentialsFile) Apply(o *internal.DialSettings) { + o.AuthCredentialsFile = w.filename + o.AuthCredentialsType = w.credsType +} + // WithServiceAccountFile returns a ClientOption that uses a Google service // account credentials file to authenticate. // -// Deprecated: Use WithCredentialsFile instead. +// Important: If you accept a credential configuration (credential +// JSON/File/Stream) from an external source for authentication to Google +// Cloud Platform, you must validate it before providing it to any Google +// API or library. Providing an unvalidated credential configuration to +// Google APIs can compromise the security of your systems and data. For +// more information, refer to [Validate credential configurations from +// external sources](https://cloud.google.com/docs/authentication/external/externally-sourced-credentials). +// +// Deprecated: Use WithAuthCredentialsFile instead. func WithServiceAccountFile(filename string) ClientOption { - return WithCredentialsFile(filename) + return WithAuthCredentialsFile(ServiceAccount, filename) } // WithCredentialsJSON returns a ClientOption that authenticates // API calls with the given service account or refresh token JSON // credentials. +// +// Deprecated: This function is being deprecated because of a potential security risk. +// +// This function does not validate the credential configuration. The security +// risk occurs when a credential configuration is accepted from a source that +// is not under your control and used without validation on your side. +// +// If you know that you will be loading credential configurations of a +// specific type, it is recommended to use a credential-type-specific +// option function. +// This will ensure that an unexpected credential type with potential for +// malicious intent is not loaded unintentionally. You might still have to do +// validation for certain credential types. Please follow the recommendation +// for that function. For example, if you want to load only service accounts, +// you can use [WithAuthCredentialsJSON] with [ServiceAccount]: +// +// option.WithAuthCredentialsJSON(option.ServiceAccount, json) +// +// If you are loading your credential configuration from an untrusted source and have +// not mitigated the risks (e.g. by validating the configuration yourself), make +// these changes as soon as possible to prevent security risks to your environment. +// +// Regardless of the function used, it is always your responsibility to validate +// configurations received from external sources. func WithCredentialsJSON(p []byte) ClientOption { return withCredentialsJSON(p) } @@ -69,8 +188,42 @@ func (w withCredentialsJSON) Apply(o *internal.DialSettings) { copy(o.CredentialsJSON, w) } +// WithAuthCredentialsJSON returns a ClientOption that authenticates API calls +// with the given JSON credentials and credential type. +// +// Important: If you accept a credential configuration (credential +// JSON/File/Stream) from an external source for authentication to Google +// Cloud Platform, you must validate it before providing it to any Google +// API or library. Providing an unvalidated credential configuration to +// Google APIs can compromise the security of your systems and data. For +// more information, refer to [Validate credential configurations from +// external sources](https://cloud.google.com/docs/authentication/external/externally-sourced-credentials). +func WithAuthCredentialsJSON(credType CredentialsType, json []byte) ClientOption { + return withAuthCredentialsJSON{ + credsType: credType, + json: json, + } +} + +type withAuthCredentialsJSON struct { + credsType CredentialsType + json []byte +} + +func (w withAuthCredentialsJSON) Apply(o *internal.DialSettings) { + o.AuthCredentialsJSON = w.json + o.AuthCredentialsType = w.credsType +} + // WithEndpoint returns a ClientOption that overrides the default endpoint -// to be used for a service. +// to be used for a service. Please note that by default Google APIs only +// accept HTTPS traffic. +// +// For a gRPC client, the port number is typically included in the endpoint. +// Example: "us-central1-speech.googleapis.com:443". +// +// For a REST client, the port number is typically not included. Example: +// "https://speech.googleapis.com". func WithEndpoint(url string) ClientOption { return withEndpoint(url) } @@ -359,8 +512,6 @@ func (w withAuthCredentials) Apply(o *internal.DialSettings) { } // WithUniverseDomain returns a ClientOption that sets the universe domain. -// -// This is an EXPERIMENTAL API and may be changed or removed in the future. func WithUniverseDomain(ud string) ClientOption { return withUniverseDomain(ud) } @@ -370,3 +521,17 @@ type withUniverseDomain string func (w withUniverseDomain) Apply(o *internal.DialSettings) { o.UniverseDomain = string(w) } + +// WithLogger returns a ClientOption that sets the logger used throughout the +// client library call stack. If this option is provided it takes precedence +// over the value set in GOOGLE_SDK_GO_LOGGING_LEVEL. Specifying this option +// enables logging at the provided logger's configured level. +func WithLogger(l *slog.Logger) ClientOption { + return withLogger{l} +} + +type withLogger struct{ l *slog.Logger } + +func (w withLogger) Apply(o *internal.DialSettings) { + o.Logger = w.l +} diff --git a/vendor/google.golang.org/api/transport/http/dial.go b/vendor/google.golang.org/api/transport/http/dial.go index d1cd83b62..bd44cfa05 100644 --- a/vendor/google.golang.org/api/transport/http/dial.go +++ b/vendor/google.golang.org/api/transport/http/dial.go @@ -19,7 +19,6 @@ import ( "cloud.google.com/go/auth/credentials" "cloud.google.com/go/auth/httptransport" "cloud.google.com/go/auth/oauth2adapt" - "go.opencensus.io/plugin/ochttp" "go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp" "golang.org/x/net/http2" "golang.org/x/oauth2" @@ -27,7 +26,6 @@ import ( "google.golang.org/api/internal" "google.golang.org/api/internal/cert" "google.golang.org/api/option" - "google.golang.org/api/transport/http/internal/propagation" ) // NewClient returns an HTTP client for use communicating with a Google cloud @@ -107,6 +105,11 @@ func newClientNewAuth(ctx context.Context, base http.RoundTripper, ds *internal. if ds.RequestReason != "" { headers.Set("X-goog-request-reason", ds.RequestReason) } + if ds.UserAgent != "" { + headers.Set("User-Agent", ds.UserAgent) + } + credsJSON, _ := ds.GetAuthCredentialsJSON() + credsFile, _ := ds.GetAuthCredentialsFile() client, err := httptransport.NewClient(&httptransport.Options{ DisableTelemetry: ds.TelemetryDisabled, DisableAuthentication: ds.NoAuth, @@ -119,9 +122,9 @@ func newClientNewAuth(ctx context.Context, base http.RoundTripper, ds *internal. DetectOpts: &credentials.DetectOptions{ Scopes: ds.Scopes, Audience: aud, - CredentialsFile: ds.CredentialsFile, - CredentialsJSON: ds.CredentialsJSON, - Client: oauth2.NewClient(ctx, nil), + CredentialsFile: credsFile, + CredentialsJSON: credsJSON, + Logger: ds.Logger, }, InternalOptions: &httptransport.InternalOptions{ EnableJWTWithScope: ds.EnableJwtWithScope, @@ -130,7 +133,10 @@ func newClientNewAuth(ctx context.Context, base http.RoundTripper, ds *internal. DefaultMTLSEndpoint: ds.DefaultMTLSEndpoint, DefaultScopes: ds.DefaultScopes, SkipValidation: skipValidation, + TelemetryAttributes: ds.TelemetryAttributes, }, + UniverseDomain: ds.UniverseDomain, + Logger: ds.Logger, }) if err != nil { return nil, err @@ -165,10 +171,7 @@ func newTransport(ctx context.Context, base http.RoundTripper, settings *interna requestReason: settings.RequestReason, } var trans http.RoundTripper = paramTransport - // Give OpenTelemetry precedence over OpenCensus in case user configuration - // causes both to write the same header (`X-Cloud-Trace-Context`). trans = addOpenTelemetryTransport(trans, settings) - trans = addOCTransport(trans, settings) switch { case settings.NoAuth: // Do nothing. @@ -183,17 +186,6 @@ func newTransport(ctx context.Context, base http.RoundTripper, settings *interna if err != nil { return nil, err } - if settings.TokenSource == nil { - // We only validate non-tokensource creds, as TokenSource-based credentials - // don't propagate universe. - credsUniverseDomain, err := internal.GetUniverseDomain(creds) - if err != nil { - return nil, err - } - if settings.GetUniverseDomain() != credsUniverseDomain { - return nil, internal.ErrUniverseNotMatch(settings.GetUniverseDomain(), credsUniverseDomain) - } - } paramTransport.quotaProject = internal.GetQuotaProject(creds, settings.QuotaProject) ts := creds.TokenSource if settings.ImpersonationConfig == nil && settings.TokenSource != nil { @@ -320,16 +312,6 @@ func addOpenTelemetryTransport(trans http.RoundTripper, settings *internal.DialS return otelhttp.NewTransport(trans) } -func addOCTransport(trans http.RoundTripper, settings *internal.DialSettings) http.RoundTripper { - if settings.TelemetryDisabled { - return trans - } - return &ochttp.Transport{ - Base: trans, - Propagation: &propagation.HTTPFormat{}, - } -} - // clonedTransport returns the given RoundTripper as a cloned *http.Transport. // It returns nil if the RoundTripper can't be cloned or coerced to // *http.Transport. diff --git a/vendor/google.golang.org/api/transport/http/internal/propagation/http.go b/vendor/google.golang.org/api/transport/http/internal/propagation/http.go deleted file mode 100644 index ba7512aa2..000000000 --- a/vendor/google.golang.org/api/transport/http/internal/propagation/http.go +++ /dev/null @@ -1,87 +0,0 @@ -// Copyright 2018 Google LLC. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -//go:build go1.8 -// +build go1.8 - -// Package propagation implements X-Cloud-Trace-Context header propagation used -// by Google Cloud products. -package propagation - -import ( - "encoding/binary" - "encoding/hex" - "fmt" - "net/http" - "strconv" - "strings" - - "go.opencensus.io/trace" - "go.opencensus.io/trace/propagation" -) - -const ( - httpHeaderMaxSize = 200 - httpHeader = `X-Cloud-Trace-Context` -) - -var _ propagation.HTTPFormat = (*HTTPFormat)(nil) - -// HTTPFormat implements propagation.HTTPFormat to propagate -// traces in HTTP headers for Google Cloud Platform and Stackdriver Trace. -type HTTPFormat struct{} - -// SpanContextFromRequest extracts a Stackdriver Trace span context from incoming requests. -func (f *HTTPFormat) SpanContextFromRequest(req *http.Request) (sc trace.SpanContext, ok bool) { - h := req.Header.Get(httpHeader) - // See https://cloud.google.com/trace/docs/faq for the header HTTPFormat. - // Return if the header is empty or missing, or if the header is unreasonably - // large, to avoid making unnecessary copies of a large string. - if h == "" || len(h) > httpHeaderMaxSize { - return trace.SpanContext{}, false - } - - // Parse the trace id field. - slash := strings.Index(h, `/`) - if slash == -1 { - return trace.SpanContext{}, false - } - tid, h := h[:slash], h[slash+1:] - - buf, err := hex.DecodeString(tid) - if err != nil { - return trace.SpanContext{}, false - } - copy(sc.TraceID[:], buf) - - // Parse the span id field. - spanstr := h - semicolon := strings.Index(h, `;`) - if semicolon != -1 { - spanstr, h = h[:semicolon], h[semicolon+1:] - } - sid, err := strconv.ParseUint(spanstr, 10, 64) - if err != nil { - return trace.SpanContext{}, false - } - binary.BigEndian.PutUint64(sc.SpanID[:], sid) - - // Parse the options field, options field is optional. - if !strings.HasPrefix(h, "o=") { - return sc, true - } - o, err := strconv.ParseUint(h[2:], 10, 64) - if err != nil { - return trace.SpanContext{}, false - } - sc.TraceOptions = trace.TraceOptions(o) - return sc, true -} - -// SpanContextToRequest modifies the given request to include a Stackdriver Trace header. -func (f *HTTPFormat) SpanContextToRequest(sc trace.SpanContext, req *http.Request) { - sid := binary.BigEndian.Uint64(sc.SpanID[:]) - header := fmt.Sprintf("%s/%d;o=%d", hex.EncodeToString(sc.TraceID[:]), sid, int64(sc.TraceOptions)) - req.Header.Set(httpHeader, header) -} diff --git a/vendor/google.golang.org/genproto/googleapis/rpc/code/code.pb.go b/vendor/google.golang.org/genproto/googleapis/rpc/code/code.pb.go index 85a9387f7..d7e7647d8 100644 --- a/vendor/google.golang.org/genproto/googleapis/rpc/code/code.pb.go +++ b/vendor/google.golang.org/genproto/googleapis/rpc/code/code.pb.go @@ -1,4 +1,4 @@ -// Copyright 2025 Google LLC +// Copyright 2026 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/vendor/google.golang.org/genproto/googleapis/rpc/errdetails/error_details.pb.go b/vendor/google.golang.org/genproto/googleapis/rpc/errdetails/error_details.pb.go index e017ef071..842a5d9b5 100644 --- a/vendor/google.golang.org/genproto/googleapis/rpc/errdetails/error_details.pb.go +++ b/vendor/google.golang.org/genproto/googleapis/rpc/errdetails/error_details.pb.go @@ -1,4 +1,4 @@ -// Copyright 2025 Google LLC +// Copyright 2026 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -957,17 +957,17 @@ type BadRequest_FieldViolation struct { // In this example, in proto `field` could take one of the following values: // // - `full_name` for a violation in the `full_name` value - // - `email_addresses[1].email` for a violation in the `email` field of the + // - `email_addresses[0].email` for a violation in the `email` field of the // first `email_addresses` message - // - `email_addresses[3].type[2]` for a violation in the second `type` + // - `email_addresses[2].type[1]` for a violation in the second `type` // value in the third `email_addresses` message. // // In JSON, the same values are represented as: // // - `fullName` for a violation in the `fullName` value - // - `emailAddresses[1].email` for a violation in the `email` field of the + // - `emailAddresses[0].email` for a violation in the `email` field of the // first `emailAddresses` message - // - `emailAddresses[3].type[2]` for a violation in the second `type` + // - `emailAddresses[2].type[1]` for a violation in the second `type` // value in the third `emailAddresses` message. Field string `protobuf:"bytes,1,opt,name=field,proto3" json:"field,omitempty"` // A description of why the request element is bad. diff --git a/vendor/google.golang.org/genproto/googleapis/rpc/status/status.pb.go b/vendor/google.golang.org/genproto/googleapis/rpc/status/status.pb.go index 06a3f7106..f25a7bcc7 100644 --- a/vendor/google.golang.org/genproto/googleapis/rpc/status/status.pb.go +++ b/vendor/google.golang.org/genproto/googleapis/rpc/status/status.pb.go @@ -1,4 +1,4 @@ -// Copyright 2025 Google LLC +// Copyright 2026 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -127,14 +127,13 @@ var file_google_rpc_status_proto_rawDesc = []byte{ 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x2e, 0x0a, 0x07, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x41, 0x6e, 0x79, 0x52, - 0x07, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x42, 0x61, 0x0a, 0x0e, 0x63, 0x6f, 0x6d, 0x2e, + 0x07, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x42, 0x5e, 0x0a, 0x0e, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x72, 0x70, 0x63, 0x42, 0x0b, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x37, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x6f, 0x72, 0x67, 0x2f, 0x67, 0x65, 0x6e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2f, 0x72, 0x70, 0x63, 0x2f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x3b, 0x73, 0x74, 0x61, 0x74, - 0x75, 0x73, 0xf8, 0x01, 0x01, 0xa2, 0x02, 0x03, 0x52, 0x50, 0x43, 0x62, 0x06, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x33, + 0x75, 0x73, 0xa2, 0x02, 0x03, 0x52, 0x50, 0x43, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( diff --git a/vendor/google.golang.org/grpc/attributes/attributes.go b/vendor/google.golang.org/grpc/attributes/attributes.go index 52d530d7a..4c60518c7 100644 --- a/vendor/google.golang.org/grpc/attributes/attributes.go +++ b/vendor/google.golang.org/grpc/attributes/attributes.go @@ -27,6 +27,8 @@ package attributes import ( "fmt" + "iter" + "maps" "strings" ) @@ -37,37 +39,46 @@ import ( // any) bool', it will be called by (*Attributes).Equal to determine whether // two values with the same key should be considered equal. type Attributes struct { - m map[any]any + parent *Attributes + key, value any } // New returns a new Attributes containing the key/value pair. func New(key, value any) *Attributes { - return &Attributes{m: map[any]any{key: value}} + return &Attributes{ + key: key, + value: value, + } } // WithValue returns a new Attributes containing the previous keys and values // and the new key/value pair. If the same key appears multiple times, the -// last value overwrites all previous values for that key. To remove an -// existing key, use a nil value. value should not be modified later. +// last value overwrites all previous values for that key. value should not be +// modified later. +// +// Note that Attributes do not support deletion. Avoid using untyped nil values. +// Since the Value method returns an untyped nil when a key is absent, it is +// impossible to distinguish between a missing key and a key explicitly set to +// an untyped nil. If you need to represent a value being unset, consider +// storing a specific sentinel type or a wrapper struct with a boolean field +// indicating presence. func (a *Attributes) WithValue(key, value any) *Attributes { - if a == nil { - return New(key, value) + return &Attributes{ + parent: a, + key: key, + value: value, } - n := &Attributes{m: make(map[any]any, len(a.m)+1)} - for k, v := range a.m { - n.m[k] = v - } - n.m[key] = value - return n } // Value returns the value associated with these attributes for key, or nil if // no value is associated with key. The returned value should not be modified. func (a *Attributes) Value(key any) any { - if a == nil { - return nil + for cur := a; cur != nil; cur = cur.parent { + if cur.key == key { + return cur.value + } } - return a.m[key] + return nil } // Equal returns whether a and o are equivalent. If 'Equal(o any) bool' is @@ -83,11 +94,15 @@ func (a *Attributes) Equal(o *Attributes) bool { if a == nil || o == nil { return false } - if len(a.m) != len(o.m) { - return false + if a == o { + return true } - for k, v := range a.m { - ov, ok := o.m[k] + m := maps.Collect(o.all()) + lenA := 0 + + for k, v := range a.all() { + lenA++ + ov, ok := m[k] if !ok { // o missing element of a return false @@ -101,7 +116,7 @@ func (a *Attributes) Equal(o *Attributes) bool { return false } } - return true + return lenA == len(m) } // String prints the attribute map. If any key or values throughout the map @@ -110,11 +125,11 @@ func (a *Attributes) String() string { var sb strings.Builder sb.WriteString("{") first := true - for k, v := range a.m { + for k, v := range a.all() { if !first { sb.WriteString(", ") } - sb.WriteString(fmt.Sprintf("%q: %q ", str(k), str(v))) + fmt.Fprintf(&sb, "%q: %q ", str(k), str(v)) first = false } sb.WriteString("}") @@ -139,3 +154,21 @@ func str(x any) (s string) { func (a *Attributes) MarshalJSON() ([]byte, error) { return []byte(a.String()), nil } + +// all returns an iterator that yields all key-value pairs in the Attributes +// chain. If a key appears multiple times, only the most recently added value +// is yielded. +func (a *Attributes) all() iter.Seq2[any, any] { + return func(yield func(any, any) bool) { + seen := map[any]bool{} + for cur := a; cur != nil; cur = cur.parent { + if seen[cur.key] { + continue + } + if !yield(cur.key, cur.value) { + return + } + seen[cur.key] = true + } + } +} diff --git a/vendor/google.golang.org/grpc/balancer/balancer.go b/vendor/google.golang.org/grpc/balancer/balancer.go index d08b7ad63..7e3dbaad2 100644 --- a/vendor/google.golang.org/grpc/balancer/balancer.go +++ b/vendor/google.golang.org/grpc/balancer/balancer.go @@ -33,6 +33,7 @@ import ( estats "google.golang.org/grpc/experimental/stats" "google.golang.org/grpc/grpclog" "google.golang.org/grpc/internal" + "google.golang.org/grpc/internal/envconfig" "google.golang.org/grpc/metadata" "google.golang.org/grpc/resolver" "google.golang.org/grpc/serviceconfig" @@ -46,8 +47,8 @@ var ( ) // Register registers the balancer builder to the balancer map. b.Name -// (lowercased) will be used as the name registered with this builder. If the -// Builder implements ConfigParser, ParseConfig will be called when new service +// will be used as the name registered with this builder. If the Builder +// implements ConfigParser, ParseConfig will be called when new service // configs are received by the resolver, and the result will be provided to the // Balancer in UpdateClientConnState. // @@ -55,12 +56,12 @@ var ( // an init() function), and is not thread-safe. If multiple Balancers are // registered with the same name, the one registered last will take effect. func Register(b Builder) { - name := strings.ToLower(b.Name()) - if name != b.Name() { - // TODO: Skip the use of strings.ToLower() to index the map after v1.59 - // is released to switch to case sensitive balancer registry. Also, - // remove this warning and update the docstrings for Register and Get. - logger.Warningf("Balancer registered with name %q. grpc-go will be switching to case sensitive balancer registries soon", b.Name()) + name := b.Name() + if !envconfig.CaseSensitiveBalancerRegistries { + name = strings.ToLower(name) + if name != b.Name() { + logger.Warningf("Balancer registered with name %q. grpc-go has switched to case sensitive balancer registries. GRPC_GO_EXPERIMENTAL_CASE_SENSITIVE_BALANCER_REGISTRIES env variable will be removed in release v1.82.0", b.Name()) + } } m[name] = b } @@ -78,16 +79,17 @@ func init() { } // Get returns the resolver builder registered with the given name. -// Note that the compare is done in a case-insensitive fashion. +// Note that the compare is done in a case-sensitive fashion. // If no builder is register with the name, nil will be returned. func Get(name string) Builder { - if strings.ToLower(name) != name { - // TODO: Skip the use of strings.ToLower() to index the map after v1.59 - // is released to switch to case sensitive balancer registry. Also, - // remove this warning and update the docstrings for Register and Get. - logger.Warningf("Balancer retrieved for name %q. grpc-go will be switching to case sensitive balancer registries soon", name) + if !envconfig.CaseSensitiveBalancerRegistries { + lowerName := strings.ToLower(name) + if lowerName != name { + logger.Warningf("Balancer retrieved for name %q. grpc-go has switched to case sensitive balancer registries. GRPC_GO_EXPERIMENTAL_CASE_SENSITIVE_BALANCER_REGISTRIES env variable will be removed in release v1.82.0", name) + } + name = lowerName } - if b, ok := m[strings.ToLower(name)]; ok { + if b, ok := m[name]; ok { return b } return nil diff --git a/vendor/google.golang.org/grpc/balancer/base/balancer.go b/vendor/google.golang.org/grpc/balancer/base/balancer.go index 4d576876d..4399ba014 100644 --- a/vendor/google.golang.org/grpc/balancer/base/balancer.go +++ b/vendor/google.golang.org/grpc/balancer/base/balancer.go @@ -121,8 +121,7 @@ func (b *baseBalancer) UpdateClientConnState(s balancer.ClientConnState) error { sc.Connect() } } - for _, a := range b.subConns.Keys() { - sc, _ := b.subConns.Get(a) + for a, sc := range b.subConns.All() { // a was removed by resolver. if _, ok := addrsSet.Get(a); !ok { sc.Shutdown() @@ -171,8 +170,7 @@ func (b *baseBalancer) regeneratePicker() { readySCs := make(map[balancer.SubConn]SubConnInfo) // Filter out all ready SCs from full subConn map. - for _, addr := range b.subConns.Keys() { - sc, _ := b.subConns.Get(addr) + for addr, sc := range b.subConns.All() { if st, ok := b.scStates[sc]; ok && st == connectivity.Ready { readySCs[sc] = SubConnInfo{Address: addr} } diff --git a/vendor/google.golang.org/grpc/balancer/endpointsharding/endpointsharding.go b/vendor/google.golang.org/grpc/balancer/endpointsharding/endpointsharding.go index 360db08eb..12479f698 100644 --- a/vendor/google.golang.org/grpc/balancer/endpointsharding/endpointsharding.go +++ b/vendor/google.golang.org/grpc/balancer/endpointsharding/endpointsharding.go @@ -187,8 +187,7 @@ func (es *endpointSharding) UpdateClientConnState(state balancer.ClientConnState } } // Delete old children that are no longer present. - for _, e := range children.Keys() { - child, _ := children.Get(e) + for e, child := range children.All() { if _, ok := newChildren.Get(e); !ok { child.closeLocked() } @@ -212,7 +211,7 @@ func (es *endpointSharding) ResolverError(err error) { es.updateState() }() children := es.children.Load() - for _, child := range children.Values() { + for _, child := range children.All() { child.resolverErrorLocked(err) } } @@ -225,7 +224,7 @@ func (es *endpointSharding) Close() { es.childMu.Lock() defer es.childMu.Unlock() children := es.children.Load() - for _, child := range children.Values() { + for _, child := range children.All() { child.closeLocked() } } @@ -233,7 +232,7 @@ func (es *endpointSharding) Close() { func (es *endpointSharding) ExitIdle() { es.childMu.Lock() defer es.childMu.Unlock() - for _, bw := range es.children.Load().Values() { + for _, bw := range es.children.Load().All() { if !bw.isClosed { bw.child.ExitIdle() } @@ -255,7 +254,7 @@ func (es *endpointSharding) updateState() { children := es.children.Load() childStates := make([]ChildState, 0, children.Len()) - for _, child := range children.Values() { + for _, child := range children.All() { childState := child.childState childStates = append(childStates, childState) childPicker := childState.State.Picker diff --git a/vendor/google.golang.org/grpc/balancer/pickfirst/pickfirst.go b/vendor/google.golang.org/grpc/balancer/pickfirst/pickfirst.go index dccd9f0bf..d48bc304c 100644 --- a/vendor/google.golang.org/grpc/balancer/pickfirst/pickfirst.go +++ b/vendor/google.golang.org/grpc/balancer/pickfirst/pickfirst.go @@ -35,9 +35,9 @@ import ( "google.golang.org/grpc/balancer" "google.golang.org/grpc/balancer/pickfirst/internal" "google.golang.org/grpc/connectivity" + "google.golang.org/grpc/experimental/balancer/weight" expstats "google.golang.org/grpc/experimental/stats" "google.golang.org/grpc/grpclog" - "google.golang.org/grpc/internal/balancer/weight" "google.golang.org/grpc/internal/envconfig" internalgrpclog "google.golang.org/grpc/internal/grpclog" "google.golang.org/grpc/internal/pretty" @@ -399,14 +399,14 @@ func (b *pickfirstBalancer) startFirstPassLocked() { b.firstPass = true b.numTF = 0 // Reset the connection attempt record for existing SubConns. - for _, sd := range b.subConns.Values() { + for _, sd := range b.subConns.All() { sd.connectionFailedInFirstPass = false } b.requestConnectionLocked() } func (b *pickfirstBalancer) closeSubConnsLocked() { - for _, sd := range b.subConns.Values() { + for _, sd := range b.subConns.All() { sd.subConn.Shutdown() } b.subConns = resolver.NewAddressMapV2[*scData]() @@ -506,7 +506,7 @@ func (b *pickfirstBalancer) reconcileSubConnsLocked(newAddrs []resolver.Address) newAddrsMap.Set(addr, true) } - for _, oldAddr := range b.subConns.Keys() { + for oldAddr := range b.subConns.All() { if _, ok := newAddrsMap.Get(oldAddr); ok { continue } @@ -520,7 +520,7 @@ func (b *pickfirstBalancer) reconcileSubConnsLocked(newAddrs []resolver.Address) // becomes ready, which means that all other subConn must be shutdown. func (b *pickfirstBalancer) shutdownRemainingLocked(selected *scData) { b.cancelConnectionTimer() - for _, sd := range b.subConns.Values() { + for _, sd := range b.subConns.All() { if sd.subConn != selected.subConn { sd.subConn.Shutdown() } @@ -771,7 +771,7 @@ func (b *pickfirstBalancer) endFirstPassIfPossibleLocked(lastErr error) { } // Connect() has been called on all the SubConns. The first pass can be // ended if all the SubConns have reported a failure. - for _, sd := range b.subConns.Values() { + for _, sd := range b.subConns.All() { if !sd.connectionFailedInFirstPass { return } @@ -782,7 +782,7 @@ func (b *pickfirstBalancer) endFirstPassIfPossibleLocked(lastErr error) { Picker: &picker{err: lastErr}, }) // Start re-connecting all the SubConns that are already in IDLE. - for _, sd := range b.subConns.Values() { + for _, sd := range b.subConns.All() { if sd.rawConnectivityState == connectivity.Idle { sd.subConn.Connect() } diff --git a/vendor/google.golang.org/grpc/binarylog/grpc_binarylog_v1/binarylog.pb.go b/vendor/google.golang.org/grpc/binarylog/grpc_binarylog_v1/binarylog.pb.go index 42c61cf9f..296123e20 100644 --- a/vendor/google.golang.org/grpc/binarylog/grpc_binarylog_v1/binarylog.pb.go +++ b/vendor/google.golang.org/grpc/binarylog/grpc_binarylog_v1/binarylog.pb.go @@ -18,7 +18,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.36.10 +// protoc-gen-go v1.36.11 // protoc v5.27.1 // source: grpc/binlog/v1/binarylog.proto diff --git a/vendor/google.golang.org/grpc/clientconn.go b/vendor/google.golang.org/grpc/clientconn.go index 5dec2dacc..c4bca5203 100644 --- a/vendor/google.golang.org/grpc/clientconn.go +++ b/vendor/google.golang.org/grpc/clientconn.go @@ -24,10 +24,12 @@ import ( "fmt" "math" "net/url" + "os" "slices" "strings" "sync" "sync/atomic" + "syscall" "time" "google.golang.org/grpc/balancer" @@ -1268,8 +1270,9 @@ type addrConn struct { channelz *channelz.SubChannel - localityLabel string - backendServiceLabel string + localityLabel string + backendServiceLabel string + disconnectErrorLabel string } // Note: this requires a lock on ac.mu. @@ -1286,9 +1289,14 @@ func (ac *addrConn) updateConnectivityState(s connectivity.State, lastErr error) // TODO: https://github.com/grpc/grpc-go/issues/7862 - Remove the second // part of the if condition below once the issue is fixed. if ac.state == connectivity.Ready || (ac.state == connectivity.Connecting && s == connectivity.Idle) { - disconnectionsMetric.Record(ac.cc.metricsRecorderList, 1, ac.cc.target, ac.backendServiceLabel, ac.localityLabel, "unknown") + disconnectError := ac.disconnectErrorLabel + if disconnectError == "" { + disconnectError = "unknown" + } + disconnectionsMetric.Record(ac.cc.metricsRecorderList, 1, ac.cc.target, ac.backendServiceLabel, ac.localityLabel, disconnectError) openConnectionsMetric.Record(ac.cc.metricsRecorderList, -1, ac.cc.target, ac.backendServiceLabel, ac.securityLevelLocked(), ac.localityLabel) } + ac.disconnectErrorLabel = "" // Reset for next time ac.state = s ac.channelz.ChannelMetrics.State.Store(&s) if lastErr == nil { @@ -1483,11 +1491,11 @@ func (ac *addrConn) createTransport(ctx context.Context, addr resolver.Address, addr.ServerName = ac.cc.getServerName(addr) hctx, hcancel := context.WithCancel(ctx) - onClose := func(r transport.GoAwayReason) { + onClose := func(info transport.GoAwayInfo) { ac.mu.Lock() defer ac.mu.Unlock() // adjust params based on GoAwayReason - ac.adjustParams(r) + ac.adjustParams(info.Reason) if ctx.Err() != nil { // Already shut down or connection attempt canceled. tearDown() or // updateAddrs() already cleared the transport and canceled hctx @@ -1504,6 +1512,7 @@ func (ac *addrConn) createTransport(ctx context.Context, addr resolver.Address, return } ac.transport = nil + ac.disconnectErrorLabel = disconnectErrorString(info) // Refresh the name resolver on any connection loss. ac.cc.resolveNow(resolver.ResolveNowOptions{}) // Always go idle and wait for the LB policy to initiate a new @@ -1560,6 +1569,32 @@ func (ac *addrConn) createTransport(ctx context.Context, addr resolver.Address, return nil } +// disconnectErrorString returns the grpc.disconnect_error metric label corresponding +// to the provided transport.GoAwayInfo, as specified by gRFC A94: +// https://github.com/grpc/proposal/blob/master/A94-grpc-subchannel-disconnections-metrics.md +func disconnectErrorString(info transport.GoAwayInfo) string { + err := info.Err + var sysErr syscall.Errno + switch { + case info.Reason != transport.GoAwayInvalid: + return fmt.Sprintf("GOAWAY %s", info.GoAwayCode.String()) + case err == nil: + return "unknown" + case errors.Is(err, context.Canceled): + return "subchannel shutdown" + case errors.Is(err, syscall.ECONNRESET): + return "connection reset" + case errors.Is(err, syscall.ETIMEDOUT), errors.Is(err, context.DeadlineExceeded), errors.Is(err, os.ErrDeadlineExceeded): + return "connection timed out" + case errors.Is(err, syscall.ECONNABORTED): + return "connection aborted" + case errors.As(err, &sysErr): + return "socket error" + default: + return "unknown" + } +} + // startHealthCheck starts the health checking stream (RPC) to watch the health // stats of this connection if health checking is requested and configured. // @@ -1663,6 +1698,9 @@ func (ac *addrConn) tearDown(err error) { } curTr := ac.transport ac.transport = nil + if ac.disconnectErrorLabel == "" { + ac.disconnectErrorLabel = "subchannel shutdown" + } // We have to set the state to Shutdown before anything else to prevent races // between setting the state and logic that waits on context cancellation / etc. ac.updateConnectivityState(connectivity.Shutdown, nil) diff --git a/vendor/google.golang.org/grpc/credentials/tls.go b/vendor/google.golang.org/grpc/credentials/tls.go index 0bcd16dbb..a6083c3b0 100644 --- a/vendor/google.golang.org/grpc/credentials/tls.go +++ b/vendor/google.golang.org/grpc/credentials/tls.go @@ -22,7 +22,6 @@ import ( "context" "crypto/tls" "crypto/x509" - "errors" "fmt" "net" "net/url" @@ -52,22 +51,21 @@ func (t TLSInfo) AuthType() string { } // ValidateAuthority validates the provided authority being used to override the -// :authority header by verifying it against the peer certificates. It returns a +// :authority header by verifying it against the peer certificate. It returns a // non-nil error if the validation fails. func (t TLSInfo) ValidateAuthority(authority string) error { - var errs []error host, _, err := net.SplitHostPort(authority) if err != nil { host = authority } - for _, cert := range t.State.PeerCertificates { - var err error - if err = cert.VerifyHostname(host); err == nil { - return nil - } - errs = append(errs, err) + + // Verify authority against the leaf certificate. + if len(t.State.PeerCertificates) == 0 { + // This is not expected to happen as the TLS handshake has already + // completed and should have populated PeerCertificates. + return fmt.Errorf("credentials: no peer certificates found to verify authority %q", host) } - return fmt.Errorf("credentials: invalid authority %q: %v", authority, errors.Join(errs...)) + return t.State.PeerCertificates[0].VerifyHostname(host) } // cipherSuiteLookup returns the string version of a TLS cipher suite ID. diff --git a/vendor/google.golang.org/grpc/dialoptions.go b/vendor/google.golang.org/grpc/dialoptions.go index 7a5ac2e7c..3af08e1ab 100644 --- a/vendor/google.golang.org/grpc/dialoptions.go +++ b/vendor/google.golang.org/grpc/dialoptions.go @@ -173,10 +173,8 @@ func newJoinDialOption(opts ...DialOption) DialOption { // If this option is set to true every connection will release the buffer after // flushing the data on the wire. // -// # Experimental -// -// Notice: This API is EXPERIMENTAL and may be changed or removed in a -// later release. +// Deprecated: shared write buffer is enabled by default. WithSharedWriteBuffer +// will be removed in a future release. func WithSharedWriteBuffer(val bool) DialOption { return newFuncDialOption(func(o *dialOptions) { o.copts.SharedWriteBuffer = val @@ -229,6 +227,14 @@ func WithInitialConnWindowSize(s int32) DialOption { // WithStaticStreamWindowSize returns a DialOption which sets the initial // stream window size to the value provided and disables dynamic flow control. +// +// Note that this also disables dynamic flow control for the connection, +// falling back to a default static connection-level window of 64KB. To +// use a larger connection-level window, you must also use the +// [WithStaticConnWindowSize] DialOption. +// +// Most users should not configure static flow control windows unless +// operating in a memory-constrained environment. func WithStaticStreamWindowSize(s int32) DialOption { return newFuncDialOption(func(o *dialOptions) { o.copts.InitialWindowSize = s @@ -239,6 +245,14 @@ func WithStaticStreamWindowSize(s int32) DialOption { // WithStaticConnWindowSize returns a DialOption which sets the initial // connection window size to the value provided and disables dynamic flow // control. +// +// Note that this also disables dynamic flow control for individual streams, +// falling back to a default static connection-level window of 64KB. To +// explicitly configure the stream-level window size, you must also use the +// [WithStaticStreamWindowSize] DialOption. +// +// Most users should not configure static flow control windows unless +// operating in a memory-constrained environment. func WithStaticConnWindowSize(s int32) DialOption { return newFuncDialOption(func(o *dialOptions) { o.copts.InitialConnWindowSize = s @@ -705,10 +719,11 @@ func WithDisableHealthCheck() DialOption { func defaultDialOptions() dialOptions { return dialOptions{ copts: transport.ConnectOptions{ - ReadBufferSize: defaultReadBufSize, - WriteBufferSize: defaultWriteBufSize, - UserAgent: grpcUA, - BufferPool: mem.DefaultBufferPool(), + ReadBufferSize: defaultReadBufSize, + WriteBufferSize: defaultWriteBufSize, + SharedWriteBuffer: true, + UserAgent: grpcUA, + BufferPool: mem.DefaultBufferPool(), }, bs: internalbackoff.DefaultExponential, idleTimeout: 30 * time.Minute, diff --git a/vendor/google.golang.org/grpc/encoding/encoding.go b/vendor/google.golang.org/grpc/encoding/encoding.go index 296f38c3a..bfa8b268f 100644 --- a/vendor/google.golang.org/grpc/encoding/encoding.go +++ b/vendor/google.golang.org/grpc/encoding/encoding.go @@ -66,6 +66,9 @@ type Compressor interface { // Decompress reads data from r, decompresses it, and provides the // uncompressed data via the returned io.Reader. If an error occurs while // initializing the decompressor, that error is returned instead. + // + // The returned io.Reader may optionally implement io.ReadCloser, and if it + // does, gRPC will call Close() exactly once. Decompress(r io.Reader) (io.Reader, error) // Name is the name of the compression codec and is used to set the content // coding header. The result must be static; the result cannot change diff --git a/vendor/google.golang.org/grpc/internal/balancer/weight/weight.go b/vendor/google.golang.org/grpc/experimental/balancer/weight/weight.go similarity index 71% rename from vendor/google.golang.org/grpc/internal/balancer/weight/weight.go rename to vendor/google.golang.org/grpc/experimental/balancer/weight/weight.go index 11beb07d1..beab9e07c 100644 --- a/vendor/google.golang.org/grpc/internal/balancer/weight/weight.go +++ b/vendor/google.golang.org/grpc/experimental/balancer/weight/weight.go @@ -16,23 +16,23 @@ * */ -// Package weight contains utilities to manage endpoint weights. Weights are -// used by LB policies such as ringhash to distribute load across multiple -// endpoints. +// Package weight contains utilities to manage endpoint weights. +// Weights may be used by LB policies to distribute load across +// multiple endpoints. +// +// # Experimental +// +// Notice: All APIs in this package are EXPERIMENTAL and may be changed +// or removed in a later release. package weight -import ( - "fmt" - - "google.golang.org/grpc/resolver" -) +import "google.golang.org/grpc/resolver" // attributeKey is the type used as the key to store EndpointInfo in the // Attributes field of resolver.Endpoint. type attributeKey struct{} -// EndpointInfo will be stored in the Attributes field of Endpoints in order to -// use the ringhash balancer. +// EndpointInfo will be stored in the Attributes field of Endpoints. type EndpointInfo struct { Weight uint32 } @@ -43,22 +43,16 @@ func (a EndpointInfo) Equal(o any) bool { return ok && oa.Weight == a.Weight } -// Set returns a copy of endpoint in which the Attributes field is updated with -// EndpointInfo. +// Set returns a copy of endpoint in which the Attributes field is +// updated with EndpointInfo. func Set(endpoint resolver.Endpoint, epInfo EndpointInfo) resolver.Endpoint { endpoint.Attributes = endpoint.Attributes.WithValue(attributeKey{}, epInfo) return endpoint } -// String returns a human-readable representation of EndpointInfo. -// This method is intended for logging, testing, and debugging purposes only. -// Do not rely on the output format, as it is not guaranteed to remain stable. -func (a EndpointInfo) String() string { - return fmt.Sprintf("Weight: %d", a.Weight) -} - -// FromEndpoint returns the EndpointInfo stored in the Attributes field of an -// endpoint. It returns an empty EndpointInfo if attribute is not found. +// FromEndpoint returns the EndpointInfo stored in the Attributes +// field of an endpoint. It returns an empty EndpointInfo if attribute +// is not found. func FromEndpoint(endpoint resolver.Endpoint) EndpointInfo { v := endpoint.Attributes.Value(attributeKey{}) ei, _ := v.(EndpointInfo) diff --git a/vendor/google.golang.org/grpc/experimental/stats/metrics.go b/vendor/google.golang.org/grpc/experimental/stats/metrics.go index 88742724a..8732e53bd 100644 --- a/vendor/google.golang.org/grpc/experimental/stats/metrics.go +++ b/vendor/google.golang.org/grpc/experimental/stats/metrics.go @@ -20,10 +20,27 @@ package stats import ( + "context" + "google.golang.org/grpc/internal" "google.golang.org/grpc/stats" ) +type customLabelKey struct{} + +// NewContextWithCustomLabel returns a new context with the provided custom label +// attached. The label will be propagated to all metric instruments specified in gRFC A108. +func NewContextWithCustomLabel(ctx context.Context, label string) context.Context { + return context.WithValue(ctx, customLabelKey{}, label) +} + +// CustomLabelFromContext returns the custom label from the context if it exists. +// If the custom label is not present, it returns an empty string. +func CustomLabelFromContext(ctx context.Context) string { + label, _ := ctx.Value(customLabelKey{}).(string) + return label +} + // MetricsRecorder records on metrics derived from metric registry. // Implementors must embed UnimplementedMetricsRecorder. type MetricsRecorder interface { diff --git a/vendor/google.golang.org/grpc/internal/envconfig/envconfig.go b/vendor/google.golang.org/grpc/internal/envconfig/envconfig.go index 7ad6fb44c..29d332e7b 100644 --- a/vendor/google.golang.org/grpc/internal/envconfig/envconfig.go +++ b/vendor/google.golang.org/grpc/internal/envconfig/envconfig.go @@ -54,17 +54,25 @@ var ( // XDSEndpointHashKeyBackwardCompat controls the parsing of the endpoint hash // key from EDS LbEndpoint metadata. Endpoint hash keys can be disabled by - // setting "GRPC_XDS_ENDPOINT_HASH_KEY_BACKWARD_COMPAT" to "true". When the - // implementation of A76 is stable, we will flip the default value to false - // in a subsequent release. A final release will remove this environment - // variable, enabling the new behavior unconditionally. - XDSEndpointHashKeyBackwardCompat = boolFromEnv("GRPC_XDS_ENDPOINT_HASH_KEY_BACKWARD_COMPAT", true) + // setting "GRPC_XDS_ENDPOINT_HASH_KEY_BACKWARD_COMPAT" to "true". A future + // release will remove this environment variable, enabling the new behavior + // unconditionally. + XDSEndpointHashKeyBackwardCompat = boolFromEnv("GRPC_XDS_ENDPOINT_HASH_KEY_BACKWARD_COMPAT", false) + + // LabelServerGoroutines controls setting [runtime/pprof.Labels] on the + // goroutines spawned by [grpc.Server] type. + // For now, this is limited to the goroutines spawned to handle incoming + // requests on the server. + // Set "GRPC_GO_SERVER_GOROUTINE_LABELS" to "grpc.method=true" to + // enable this grpc.method label, or "all" to enable all valid labels. + // This variable is a bit-field. + LabelServerGoroutines = goroutineLabelsFromEnv("GRPC_GO_SERVER_GOROUTINE_LABELS", 0) // RingHashSetRequestHashKey is set if the ring hash balancer can get the // request hash header by setting the "requestHashHeader" field, according - // to gRFC A76. It can be enabled by setting the environment variable - // "GRPC_EXPERIMENTAL_RING_HASH_SET_REQUEST_HASH_KEY" to "true". - RingHashSetRequestHashKey = boolFromEnv("GRPC_EXPERIMENTAL_RING_HASH_SET_REQUEST_HASH_KEY", false) + // to gRFC A76. It can be disabled by setting the environment variable + // "GRPC_EXPERIMENTAL_RING_HASH_SET_REQUEST_HASH_KEY" to "false". + RingHashSetRequestHashKey = boolFromEnv("GRPC_EXPERIMENTAL_RING_HASH_SET_REQUEST_HASH_KEY", true) // ALTSHandshakerKeepaliveParams is set if we should add the // KeepaliveParams when dial the ALTS handshaker service. @@ -78,6 +86,14 @@ var ( // - The DNS resolver is being used. EnableDefaultPortForProxyTarget = boolFromEnv("GRPC_EXPERIMENTAL_ENABLE_DEFAULT_PORT_FOR_PROXY_TARGET", true) + // CaseSensitiveBalancerRegistries is set if the balancer registry should be + // case-sensitive. This is enabled by default, but can be disabled by setting + // the env variable "GRPC_GO_EXPERIMENTAL_CASE_SENSITIVE_BALANCER_REGISTRIES" + // to "false". + // + // This env varible will be removed in release v1.82.0. + CaseSensitiveBalancerRegistries = boolFromEnv("GRPC_GO_EXPERIMENTAL_CASE_SENSITIVE_BALANCER_REGISTRIES", true) + // XDSAuthorityRewrite indicates whether xDS authority rewriting is enabled. // This feature is defined in gRFC A81 and is enabled by setting the // environment variable GRPC_EXPERIMENTAL_XDS_AUTHORITY_REWRITE to "true". @@ -89,21 +105,53 @@ var ( // GRPC_EXPERIMENTAL_PF_WEIGHTED_SHUFFLING to "false". PickFirstWeightedShuffling = boolFromEnv("GRPC_EXPERIMENTAL_PF_WEIGHTED_SHUFFLING", true) - // DisableStrictPathChecking indicates whether strict path checking is - // disabled. This feature can be disabled by setting the environment - // variable GRPC_GO_EXPERIMENTAL_DISABLE_STRICT_PATH_CHECKING to "true". + // XDSRecoverPanicInResourceParsing indicates whether the xdsclient should + // recover from panics while parsing xDS resources. // - // When strict path checking is enabled, gRPC will reject requests with - // paths that do not conform to the gRPC over HTTP/2 specification found at - // https://github.com/grpc/grpc/blob/master/doc/PROTOCOL-HTTP2.md. + // This feature can be disabled (e.g. for fuzz testing) by setting the + // environment variable "GRPC_GO_EXPERIMENTAL_XDS_RESOURCE_PANIC_RECOVERY" + // to "false". + XDSRecoverPanicInResourceParsing = boolFromEnv("GRPC_GO_EXPERIMENTAL_XDS_RESOURCE_PANIC_RECOVERY", true) + + // EnablePriorityLBChildPolicyCache controls whether the priority balancer + // should cache child balancers that are removed from the LB policy config, + // for a period of 15 minutes. This is disabled by default, but can be + // enabled by setting the env variable + // GRPC_EXPERIMENTAL_ENABLE_PRIORITY_LB_CHILD_POLICY_CACHE to true. + EnablePriorityLBChildPolicyCache = boolFromEnv("GRPC_EXPERIMENTAL_ENABLE_PRIORITY_LB_CHILD_POLICY_CACHE", false) + + // Enable8KBDefaultHeaderListSize indicates that default maximum header list + // size is restricted to 8KB. This is disabled by default, but can be enabled + // by setting the environment variable + // "GRPC_GO_EXPERIMENTAL_ENABLE_8KB_DEFAULT_HEADER_LIST_SIZE" to "true". + // When disabled, the default maximum header list size of 16MB is used. // - // When disabled, gRPC will allow paths that do not contain a leading slash. - // Enabling strict path checking is recommended for security reasons, as it - // prevents potential path traversal vulnerabilities. + // When enabled, RPCs with a total size of headers exceeding 8KB will fail + // unless explicitly configured otherwise by the user. + // + // TODO: In release v1.82.0, env var will be enabled by default. + Enable8KBDefaultHeaderListSize = boolFromEnv("GRPC_GO_EXPERIMENTAL_ENABLE_8KB_DEFAULT_HEADER_LIST_SIZE", false) + + // EnableHTTPFramerReadBufferPooling enables the use of the + // readyreader.Reader interface to perform non-memory-pinning reads, + // provided the underlying net.Conn supports it. This reduces memory usage + // when subchannels are idle. // - // A future release will remove this environment variable, enabling strict - // path checking behavior unconditionally. - DisableStrictPathChecking = boolFromEnv("GRPC_GO_EXPERIMENTAL_DISABLE_STRICT_PATH_CHECKING", false) + // This environment variable serves as an escape hatch to disable the + // feature if unforeseen issues arise, and it will be removed in a future + // release. + EnableHTTPFramerReadBufferPooling = boolFromEnv("GRPC_GO_EXPERIMENTAL_HTTP_FRAMER_READ_BUFFER_POOLING", true) + + // ControlBufferThrottleLimit is the maximum number of control frames that can + // be queued in the control buffer before throttling is applied. The value + // must be between 1 and 10,000, and is set to 100 by default. + // + // This environment variable serves as an escape hatch to increase the + // throttling limit if unforeseen issues arise, and it will be removed in a + // future release. + // + // TODO: Remove this env var once v1.83.0 is release. + ControlBufferThrottleLimit = uint64FromEnv("GRPC_GO_EXPERIMENTAL_CONTROL_BUFFER_THROTTLE_LIMIT", 100, 1, 10000) ) func boolFromEnv(envVar string, def bool) bool { @@ -128,3 +176,52 @@ func uint64FromEnv(envVar string, def, min, max uint64) uint64 { } return v } + +// GoroutineLabels is a bitfield indicating which goroutine labels are enabled. +type GoroutineLabels uint16 + +func goroutineLabelsFromEnv(envVar string, def GoroutineLabels) GoroutineLabels { + val := def + v := os.Getenv(envVar) + if strings.EqualFold(v, "all") { + return AllGoroutineLabels + } else if strings.EqualFold(v, "none") { + return 0 + } + for s := range strings.SplitSeq(v, ",") { + s = strings.TrimSpace(s) + if len(s) == 0 { + continue + } + pre, post, ok := strings.Cut(s, "=") + if !ok { + // no equals sign + continue + } + post = strings.TrimSpace(post) + pre = strings.TrimSpace(pre) + bitDesignator := GoroutineLabels(0) + switch { + case strings.EqualFold(pre, "grpc.method"): + bitDesignator = GoroutineLabelServerMethod + default: + continue + } + if strings.EqualFold(post, "true") { + val |= bitDesignator + } else if strings.EqualFold(post, "false") { + val &^= bitDesignator + } + } + return val +} + +const ( + // GoroutineLabelServerMethod sets the grpc.method label on new + // server-side gRPC streams. + GoroutineLabelServerMethod GoroutineLabels = 1 << iota +) + +// AllGoroutineLabels is an or'd together bitfield of all valid GoroutineLabels +// constant values (above). +const AllGoroutineLabels = GoroutineLabelServerMethod diff --git a/vendor/google.golang.org/grpc/internal/envconfig/xds.go b/vendor/google.golang.org/grpc/internal/envconfig/xds.go index 7685d08b5..a2312f8ea 100644 --- a/vendor/google.golang.org/grpc/internal/envconfig/xds.go +++ b/vendor/google.golang.org/grpc/internal/envconfig/xds.go @@ -79,4 +79,24 @@ var ( // xDS bootstrap configuration via the `call_creds` field. For more details, // see: https://github.com/grpc/proposal/blob/master/A97-xds-jwt-call-creds.md XDSBootstrapCallCredsEnabled = boolFromEnv("GRPC_EXPERIMENTAL_XDS_BOOTSTRAP_CALL_CREDS", false) + + // XDSSNIEnabled controls if gRPC should send SNI information in xDS + // configured TLS handshakes. For more details, see: + // https://github.com/grpc/proposal/blob/master/A101-SNI-setting-and-SNI-SAN-validation.md + XDSSNIEnabled = boolFromEnv("GRPC_EXPERIMENTAL_XDS_SNI", false) + + // XDSORCAToLRSPropEnabled controls whether ORCA metrics are explicitly + // filtered and prefix-propagated to the LRS server. For more details, see: + // https://github.com/grpc/proposal/blob/master/A85-lrs-custom-metrics-changes.md + XDSORCAToLRSPropEnabled = boolFromEnv("GRPC_EXPERIMENTAL_XDS_ORCA_LRS_PROPAGATION", false) + + // XDSClientExtProcEnabled indicates whether ExtProc filter is enabled on + // the client side. For more details, see: + // https://github.com/grpc/proposal/blob/master/A93-xds-ext-proc.md + XDSClientExtProcEnabled = boolFromEnv("GRPC_EXPERIMENTAL_XDS_EXT_PROC_ON_CLIENT", false) + + // GCPAuthenticationFilterEnabled enables the xDS GCP Authentication + // filter. For more details, see: + // https://github.com/grpc/proposal/blob/master/A83-xds-gcp-authn-filter.md + GCPAuthenticationFilterEnabled = boolFromEnv("GRPC_EXPERIMENTAL_XDS_GCP_AUTHENTICATION_FILTER", false) ) diff --git a/vendor/google.golang.org/grpc/internal/grpcutil/encode_duration.go b/vendor/google.golang.org/grpc/internal/grpcutil/encode_duration.go index b25b0baec..1cc43fc6b 100644 --- a/vendor/google.golang.org/grpc/internal/grpcutil/encode_duration.go +++ b/vendor/google.golang.org/grpc/internal/grpcutil/encode_duration.go @@ -39,7 +39,6 @@ func div(d, r time.Duration) int64 { // // https://github.com/grpc/grpc/blob/master/doc/PROTOCOL-HTTP2.md#requests func EncodeDuration(t time.Duration) string { - // TODO: This is simplistic and not bandwidth efficient. Improve it. if t <= 0 { return "0n" } diff --git a/vendor/google.golang.org/grpc/internal/mem/buffer_pool.go b/vendor/google.golang.org/grpc/internal/mem/buffer_pool.go new file mode 100644 index 000000000..2d83b2ece --- /dev/null +++ b/vendor/google.golang.org/grpc/internal/mem/buffer_pool.go @@ -0,0 +1,349 @@ +/* + * + * Copyright 2026 gRPC authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ + +// Package mem provides utilities that facilitate memory reuse in byte slices +// that are used as buffers. +package mem + +import ( + "fmt" + "math/bits" + "slices" + "sort" + "sync" +) + +const ( + goPageSize = 4 * 1024 // 4KiB. N.B. this must be a power of 2. +) + +var uintSize = bits.UintSize // use a variable for mocking during tests. + +// bufferPool is a copy of the public bufferPool interface used to avoid +// circular dependencies. +type bufferPool interface { + // Get returns a buffer with specified length from the pool. + Get(length int) *[]byte + + // Put returns a buffer to the pool. + // + // The provided pointer must hold a prefix of the buffer obtained via + // BufferPool.Get to ensure the buffer's entire capacity can be re-used. + Put(*[]byte) +} + +// BinaryTieredBufferPool is a buffer pool that uses multiple sub-pools with +// power-of-two sizes. +type BinaryTieredBufferPool struct { + // exponentToNextLargestPoolMap maps a power-of-two exponent (e.g., 12 for + // 4KB) to the index of the next largest sizedBufferPool. This is used by + // Get() to find the smallest pool that can satisfy a request for a given + // size. + exponentToNextLargestPoolMap []int + // exponentToPreviousLargestPoolMap maps a power-of-two exponent to the + // index of the previous largest sizedBufferPool. This is used by Put() + // to return a buffer to the most appropriate pool based on its capacity. + exponentToPreviousLargestPoolMap []int + sizedPools []bufferPool + fallbackPool bufferPool + maxPoolCap int // Optimization: Cache max capacity +} + +// NewBinaryTieredBufferPool returns a BufferPool backed by multiple sub-pools. +// This structure enables O(1) lookup time for Get and Put operations. +// +// The arguments provided are the exponents for the buffer capacities (powers +// of 2), not the raw byte sizes. For example, to create a pool of 16KB buffers +// (2^14 bytes), pass 14 as the argument. +func NewBinaryTieredBufferPool(powerOfTwoExponents ...uint8) (*BinaryTieredBufferPool, error) { + return newBinaryTiered(func(size int) bufferPool { + return newSizedBufferPool(size, true) + }, &SimpleBufferPool{shouldZero: true}, powerOfTwoExponents...) +} + +// NewDirtyBinaryTieredBufferPool returns a BufferPool backed by multiple +// sub-pools. It is similar to NewBinaryTieredBufferPool but it does not +// initialize the buffers before returning them. +func NewDirtyBinaryTieredBufferPool(powerOfTwoExponents ...uint8) (*BinaryTieredBufferPool, error) { + return newBinaryTiered(func(size int) bufferPool { + return newSizedBufferPool(size, false) + }, NewDirtySimplePool(), powerOfTwoExponents...) +} + +func newBinaryTiered(sizedPoolFactory func(int) bufferPool, fallbackPool bufferPool, powerOfTwoExponents ...uint8) (*BinaryTieredBufferPool, error) { + slices.Sort(powerOfTwoExponents) + powerOfTwoExponents = slices.Compact(powerOfTwoExponents) + + // Determine the maximum exponent we need to support. This depends on the + // word size (32-bit vs 64-bit). + maxExponent := uintSize - 2 + indexOfNextLargestBit := slices.Repeat([]int{-1}, maxExponent+1) + indexOfPreviousLargestBit := slices.Repeat([]int{-1}, maxExponent+1) + + maxTier := 0 + pools := make([]bufferPool, 0, len(powerOfTwoExponents)) + + for i, exp := range powerOfTwoExponents { + // Allocating slices of size > 2^maxExponent isn't possible on + // maxExponent-bit machines. + if int(exp) > maxExponent { + return nil, fmt.Errorf("mem: allocating slice of size 2^%d is not possible", exp) + } + tierSize := 1 << exp + pools = append(pools, sizedPoolFactory(tierSize)) + maxTier = max(maxTier, tierSize) + + // Map the exact power of 2 to this pool index. + indexOfNextLargestBit[exp] = i + indexOfPreviousLargestBit[exp] = i + } + + // Fill gaps for Get() (Next Largest) + // We iterate backwards. If current is empty, take the value from the right (larger). + for i := maxExponent - 1; i >= 0; i-- { + if indexOfNextLargestBit[i] == -1 { + indexOfNextLargestBit[i] = indexOfNextLargestBit[i+1] + } + } + + // Fill gaps for Put() (Previous Largest) + // We iterate forwards. If current is empty, take the value from the left (smaller). + for i := 1; i <= maxExponent; i++ { + if indexOfPreviousLargestBit[i] == -1 { + indexOfPreviousLargestBit[i] = indexOfPreviousLargestBit[i-1] + } + } + + return &BinaryTieredBufferPool{ + exponentToNextLargestPoolMap: indexOfNextLargestBit, + exponentToPreviousLargestPoolMap: indexOfPreviousLargestBit, + sizedPools: pools, + maxPoolCap: maxTier, + fallbackPool: fallbackPool, + }, nil +} + +// Get returns a buffer with specified length from the pool. +func (b *BinaryTieredBufferPool) Get(size int) *[]byte { + return b.poolForGet(size).Get(size) +} + +func (b *BinaryTieredBufferPool) poolForGet(size int) bufferPool { + if size == 0 || size > b.maxPoolCap { + return b.fallbackPool + } + + // Calculate the exponent of the smallest power of 2 >= size. + // We subtract 1 from size to handle exact powers of 2 correctly. + // + // Examples: + // size=16 (0b10000) -> size-1=15 (0b01111) -> bits.Len=4 -> Pool for 2^4 + // size=17 (0b10001) -> size-1=16 (0b10000) -> bits.Len=5 -> Pool for 2^5 + querySize := uint(size - 1) + poolIdx := b.exponentToNextLargestPoolMap[bits.Len(querySize)] + + return b.sizedPools[poolIdx] +} + +// Put returns a buffer to the pool. +func (b *BinaryTieredBufferPool) Put(buf *[]byte) { + // We pass the capacity of the buffer, and not the size of the buffer here. + // If we did the latter, all buffers would eventually move to the smallest + // pool. + b.poolForPut(cap(*buf)).Put(buf) +} + +func (b *BinaryTieredBufferPool) poolForPut(bCap int) bufferPool { + if bCap == 0 { + return NopBufferPool{} + } + if bCap > b.maxPoolCap { + return b.fallbackPool + } + // Find the pool with the largest capacity <= bCap. + // + // We calculate the exponent of the largest power of 2 <= bCap. + // bits.Len(x) returns the minimum number of bits required to represent x; + // i.e. the number of bits up to and including the most significant bit. + // Subtracting 1 gives the 0-based index of the most significant bit, + // which is the exponent of the largest power of 2 <= bCap. + // + // Examples: + // cap=16 (0b10000) -> Len=5 -> 5-1=4 -> 2^4 + // cap=15 (0b01111) -> Len=4 -> 4-1=3 -> 2^3 + largestPowerOfTwo := bits.Len(uint(bCap)) - 1 + poolIdx := b.exponentToPreviousLargestPoolMap[largestPowerOfTwo] + // The buffer is smaller than the smallest power of 2, discard it. + if poolIdx == -1 { + // Buffer is smaller than our smallest pool bucket. + return NopBufferPool{} + } + return b.sizedPools[poolIdx] +} + +// NopBufferPool is a buffer pool that returns new buffers without pooling. +type NopBufferPool struct{} + +// Get returns a buffer with specified length from the pool. +func (NopBufferPool) Get(length int) *[]byte { + b := make([]byte, length) + return &b +} + +// Put returns a buffer to the pool. +func (NopBufferPool) Put(*[]byte) { +} + +// sizedBufferPool is a BufferPool implementation that is optimized for specific +// buffer sizes. For example, HTTP/2 frames within gRPC have a default max size +// of 16kb and a sizedBufferPool can be configured to only return buffers with a +// capacity of 16kb. Note that however it does not support returning larger +// buffers and in fact panics if such a buffer is requested. Because of this, +// this BufferPool implementation is not meant to be used on its own and rather +// is intended to be embedded in a TieredBufferPool such that Get is only +// invoked when the required size is smaller than or equal to defaultSize. +type sizedBufferPool struct { + pool sync.Pool + defaultSize int + shouldZero bool +} + +func (p *sizedBufferPool) Get(size int) *[]byte { + buf, ok := p.pool.Get().(*[]byte) + if !ok { + buf := make([]byte, size, p.defaultSize) + return &buf + } + b := *buf + if p.shouldZero { + clear(b[:cap(b)]) + } + *buf = b[:size] + return buf +} + +func (p *sizedBufferPool) Put(buf *[]byte) { + if cap(*buf) < p.defaultSize { + // Ignore buffers that are too small to fit in the pool. Otherwise, when + // Get is called it will panic as it tries to index outside the bounds + // of the buffer. + return + } + p.pool.Put(buf) +} + +func newSizedBufferPool(size int, zero bool) *sizedBufferPool { + return &sizedBufferPool{ + defaultSize: size, + shouldZero: zero, + } +} + +// TieredBufferPool implements the BufferPool interface with multiple tiers of +// buffer pools for different sizes of buffers. +type TieredBufferPool struct { + sizedPools []*sizedBufferPool + fallbackPool SimpleBufferPool +} + +// NewTieredBufferPool returns a BufferPool implementation that uses multiple +// underlying pools of the given pool sizes. +func NewTieredBufferPool(poolSizes ...int) *TieredBufferPool { + sort.Ints(poolSizes) + pools := make([]*sizedBufferPool, len(poolSizes)) + for i, s := range poolSizes { + pools[i] = newSizedBufferPool(s, true) + } + return &TieredBufferPool{ + sizedPools: pools, + fallbackPool: SimpleBufferPool{shouldZero: true}, + } +} + +// Get returns a buffer with specified length from the pool. +func (p *TieredBufferPool) Get(size int) *[]byte { + return p.getPool(size).Get(size) +} + +// Put returns a buffer to the pool. +func (p *TieredBufferPool) Put(buf *[]byte) { + p.getPool(cap(*buf)).Put(buf) +} + +func (p *TieredBufferPool) getPool(size int) bufferPool { + poolIdx := sort.Search(len(p.sizedPools), func(i int) bool { + return p.sizedPools[i].defaultSize >= size + }) + + if poolIdx == len(p.sizedPools) { + return &p.fallbackPool + } + + return p.sizedPools[poolIdx] +} + +// SimpleBufferPool is an implementation of the mem.BufferPool interface that +// attempts to pool buffers with a sync.Pool. When Get is invoked, it tries to +// acquire a buffer from the pool but if that buffer is too small, it returns it +// to the pool and creates a new one. +type SimpleBufferPool struct { + pool sync.Pool + shouldZero bool +} + +// NewDirtySimplePool constructs a [SimpleBufferPool]. It does not initialize +// the buffers before returning them. Callers must ensure they don't read the +// buffers before writing data to them. +func NewDirtySimplePool() *SimpleBufferPool { + return &SimpleBufferPool{ + shouldZero: false, + } +} + +// Get returns a buffer with specified length from the pool. +func (p *SimpleBufferPool) Get(size int) *[]byte { + bs, ok := p.pool.Get().(*[]byte) + if ok && cap(*bs) >= size { + if p.shouldZero { + clear((*bs)[:cap(*bs)]) + } + *bs = (*bs)[:size] + return bs + } + + // A buffer was pulled from the pool, but it is too small. Put it back in + // the pool and create one large enough. + if ok { + p.pool.Put(bs) + } + + // If we're going to allocate, round up to the nearest page. This way if + // requests frequently arrive with small variation we don't allocate + // repeatedly if we get unlucky and they increase over time. By default we + // only allocate here if size > 1MiB. Because goPageSize is a power of 2, we + // can round up efficiently. + allocSize := (size + goPageSize - 1) & ^(goPageSize - 1) + + b := make([]byte, size, allocSize) + return &b +} + +// Put returns a buffer to the pool. +func (p *SimpleBufferPool) Put(buf *[]byte) { + p.pool.Put(buf) +} diff --git a/vendor/google.golang.org/grpc/internal/resolver/config_selector.go b/vendor/google.golang.org/grpc/internal/resolver/config_selector.go index f0603871c..6320e9b57 100644 --- a/vendor/google.golang.org/grpc/internal/resolver/config_selector.go +++ b/vendor/google.golang.org/grpc/internal/resolver/config_selector.go @@ -106,15 +106,28 @@ type ClientStream interface { // ClientInterceptor is an interceptor for gRPC client streams. type ClientInterceptor interface { - // NewStream produces a ClientStream for an RPC which may optionally use - // the provided function to produce a stream for delegation. Note: - // RPCInfo.Context should not be used (will be nil). + // NewStream creates a ClientStream for an RPC. // - // done is invoked when the RPC is finished using its connection, or could - // not be assigned a connection. RPC operations may still occur on - // ClientStream after done is called, since the interceptor is invoked by - // application-layer operations. done must never be nil when called. + // Implementations must delegate stream creation to the provided newStream + // function. To intercept or override stream behavior, implementations + // may wrap the ClientStream returned by the delegate. + // + // Note: RPCInfo.Context is currently unused and will be nil. + // + // The done function is invoked when the RPC has finished using its + // underlying connection or if a connection could not be assigned. Because + // interceptors operate at the application layer, RPC operations may + // continue on the ClientStream even after done has been called. The + // caller must ensure done is non-nil. + // + // To ensure RPC completion notifications propagate through the entire + // interceptor chain, implementations must ensure that the done function + // passed to the delegate newStream invokes the done function passed to + // NewStream. NewStream(ctx context.Context, ri RPCInfo, done func(), newStream func(ctx context.Context, done func()) (ClientStream, error)) (ClientStream, error) + // Close closes the interceptor. Once called, no new calls to NewStream are + // accepted. Ongoing calls to NewStream are allowed to complete. + Close() } // ServerInterceptor is an interceptor for incoming RPC's on gRPC server side. @@ -123,6 +136,9 @@ type ServerInterceptor interface { // information about connection RPC was received on, and HTTP Headers. This // information will be piped into context. AllowRPC(ctx context.Context) error // TODO: Make this a real interceptor for filters such as rate limiting. + // Close closes the interceptor. Once called, no new calls to NewStream are + // accepted. Ongoing calls to NewStream are allowed to complete. + Close() } type csKeyType string diff --git a/vendor/google.golang.org/grpc/internal/stats/labels.go b/vendor/google.golang.org/grpc/internal/stats/labels.go index fd33af51a..5ea898cb5 100644 --- a/vendor/google.golang.org/grpc/internal/stats/labels.go +++ b/vendor/google.golang.org/grpc/internal/stats/labels.go @@ -19,24 +19,56 @@ // Package stats provides internal stats related functionality. package stats -import "context" +import ( + "context" + "maps" +) -// Labels are the labels for metrics. -type Labels struct { - // TelemetryLabels are the telemetry labels to record. - TelemetryLabels map[string]string +// LabelCallback is a function that is executed when telemetry +// label keys are updated. +type LabelCallback func(map[string]string) +type telemetryLabelCallbackKey struct{} + +// UpdateLabels executes registered telemetry callbacks with the update labels. Labels +// are copied before being processed by any callbacks to ensure mutations are not +// shared among derived contexts. +// +// It is the responsibility of the registrant to handle conflicts or label resets. +func UpdateLabels(ctx context.Context, update map[string]string) { + executeTelemetryLabelCallbacks(ctx, update) } -type labelsKey struct{} +// RegisterTelemetryLabelCallback registers a callback function that is executed whenever +// telemetry labels are updated. +func RegisterTelemetryLabelCallback(ctx context.Context, callback LabelCallback) context.Context { + if callback == nil { + return ctx + } + + callbacks, ok := ctx.Value(telemetryLabelCallbackKey{}).([]LabelCallback) + if !ok { + return context.WithValue(ctx, telemetryLabelCallbackKey{}, []LabelCallback{callback}) + } + return context.WithValue(ctx, telemetryLabelCallbackKey{}, append(append([]LabelCallback(nil), callbacks...), callback)) -// GetLabels returns the Labels stored in the context, or nil if there is one. -func GetLabels(ctx context.Context) *Labels { - labels, _ := ctx.Value(labelsKey{}).(*Labels) - return labels } -// SetLabels sets the Labels in the context. -func SetLabels(ctx context.Context, labels *Labels) context.Context { - // could also append - return context.WithValue(ctx, labelsKey{}, labels) +// executeTelemetryLabelCallback runs the registered callbacks in the order they were +// registered on the context with the provided labels. If no callbacks are registered +// it does nothing. +// +// To ensure callbacks do not mutate the state of the provided label map it is copied +// before execution. +func executeTelemetryLabelCallbacks(ctx context.Context, labels map[string]string) { + callbacks, ok := ctx.Value(telemetryLabelCallbackKey{}).([]LabelCallback) + if !ok { + return + } + + labelsCopy := map[string]string{} + maps.Copy(labelsCopy, labels) + for _, callback := range callbacks { + callback(labelsCopy) + } + } diff --git a/vendor/google.golang.org/grpc/internal/transport/client_stream.go b/vendor/google.golang.org/grpc/internal/transport/client_stream.go index cd8152ef1..ad382b0fd 100644 --- a/vendor/google.golang.org/grpc/internal/transport/client_stream.go +++ b/vendor/google.golang.org/grpc/internal/transport/client_stream.go @@ -19,6 +19,7 @@ package transport import ( + "fmt" "sync/atomic" "golang.org/x/net/http2" @@ -28,6 +29,12 @@ import ( "google.golang.org/grpc/status" ) +// nonGRPCDataMaxLen is the maximum length of nonGRPCDataBuf. +// +// NOTE: If changed this value, you MUST update the corresponding test in: +// - /test/end2end_test.go:TestHTTPServerSendsNonGRPCHeaderSurfaceFurtherData +const nonGRPCDataMaxLen = 1024 + // ClientStream implements streaming functionality for a gRPC client. type ClientStream struct { Stream // Embed for common stream functionality. @@ -46,7 +53,11 @@ type ClientStream struct { // headerValid indicates whether a valid header was received. Only // meaningful after headerChan is closed (always call waitOnHeader() before // reading its value). - headerValid bool + headerValid bool + + nonGRPCStatus *status.Status // the initial status from the non-gRPC response header, finalized with collected data before closing. + nonGRPCDataBuf []byte // stores the data of a non-gRPC response. + noHeaders bool // set if the client never received headers (set only after the stream is done). headerChanClosed uint32 // set when headerChan is closed. Used to avoid closing headerChan multiple times. bytesReceived atomic.Bool // indicates whether any bytes have been received on this stream @@ -54,6 +65,29 @@ type ClientStream struct { statsHandler stats.Handler // nil for internal streams (e.g., health check, ORCA) where telemetry is not supported. } +func (s *ClientStream) startNonGRPCDataCollection(st *status.Status) { + s.nonGRPCStatus = st + s.nonGRPCDataBuf = make([]byte, 0, nonGRPCDataMaxLen) +} + +// finalizeNonGRPCStatus builds the terminal status by appending the collected +// response body to the original non-gRPC status message. +func (s *ClientStream) finalizeNonGRPCStatus() *status.Status { + msg := fmt.Sprintf("%s\ndata: %q", s.nonGRPCStatus.Message(), s.nonGRPCDataBuf) + return status.New(s.nonGRPCStatus.Code(), msg) +} + +// handleNonGRPCData collects non-gRPC body from the given data frame. +// It returns non-nil value when the stream should be closed with it. +func (s *ClientStream) handleNonGRPCData(f *parsedDataFrame) *status.Status { + n := min(f.data.Len(), nonGRPCDataMaxLen-len(s.nonGRPCDataBuf)) + s.nonGRPCDataBuf = append(s.nonGRPCDataBuf, f.data.ReadOnlyData()[0:n]...) + if len(s.nonGRPCDataBuf) >= nonGRPCDataMaxLen || f.StreamEnded() { + return s.finalizeNonGRPCStatus() + } + return nil +} + // Read reads an n byte message from the input stream. func (s *ClientStream) Read(n int) (mem.BufferSlice, error) { b, err := s.Stream.read(n) diff --git a/vendor/google.golang.org/grpc/internal/transport/controlbuf.go b/vendor/google.golang.org/grpc/internal/transport/controlbuf.go index 7efa52478..b9bae0249 100644 --- a/vendor/google.golang.org/grpc/internal/transport/controlbuf.go +++ b/vendor/google.golang.org/grpc/internal/transport/controlbuf.go @@ -29,6 +29,7 @@ import ( "golang.org/x/net/http2" "golang.org/x/net/http2/hpack" + "google.golang.org/grpc/internal/envconfig" "google.golang.org/grpc/internal/grpclog" "google.golang.org/grpc/mem" ) @@ -96,61 +97,70 @@ func (il *itemList) isEmpty() bool { return il.head == nil } -// The following defines various control items which could flow through -// the control buffer of transport. They represent different aspects of -// control tasks, e.g., flow control, settings, streaming resetting, etc. - -// maxQueuedTransportResponseFrames is the most queued "transport response" -// frames we will buffer before preventing new reads from occurring on the -// transport. These are control frames sent in response to client requests, -// such as RST_STREAM due to bad headers or settings acks. -const maxQueuedTransportResponseFrames = 50 +// maxQueuedControlBufferItems is the maximum number of frames (other than +// HEADERS and DATA) that we will buffer before preventing new reads from +// occurring on the transport. These are control frames sent in response to +// client requests, or frames that result in work being scheduled, such as +// RST_STREAM due to bad headers or settings acks. +var maxQueuedControlBufferItems = int(envconfig.ControlBufferThrottleLimit) type cbItem interface { - isTransportResponseFrame() bool + isThrottled() bool } +// throttledItem represents every item in the controlBuffer to which the overall +// throttling limit applies, other than outgoing HEADERS and DATA frames. +type throttledItem struct{} + +func (throttledItem) isThrottled() bool { return true } + +// The following defines various control items which could flow through +// the control buffer of transport. They represent different aspects of +// control tasks, e.g., flow control, settings, streaming resetting, etc. + // registerStream is used to register an incoming stream with loopy writer. type registerStream struct { + throttledItem streamID uint32 wq *writeQuota } -func (*registerStream) isTransportResponseFrame() bool { return false } - -// headerFrame is also used to register stream on the client-side. -type headerFrame struct { +type clientHeaders struct { streamID uint32 hf []hpack.HeaderField - endStream bool // Valid on server side. - initStream func(uint32) error // Used only on the client side. + initStream func(uint32) error onWrite func() - wq *writeQuota // write quota for the stream created. - cleanup *cleanupStream // Valid on the server side. - onOrphaned func(error) // Valid on client-side + wq *writeQuota + onOrphaned func(error) } -func (h *headerFrame) isTransportResponseFrame() bool { - return h.cleanup != nil && h.cleanup.rst // Results in a RST_STREAM +func (*clientHeaders) isThrottled() bool { return false } + +type serverHeaders struct { + streamID uint32 + hf []hpack.HeaderField + endStream bool + onWrite func() + cleanup *cleanupStream } +func (h *serverHeaders) isThrottled() bool { return false } + type cleanupStream struct { + throttledItem streamID uint32 rst bool rstCode http2.ErrCode onWrite func() } -func (c *cleanupStream) isTransportResponseFrame() bool { return c.rst } // Results in a RST_STREAM - type earlyAbortStream struct { + throttledItem streamID uint32 rst bool hf []hpack.HeaderField // Pre-built header fields } -func (*earlyAbortStream) isTransportResponseFrame() bool { return false } - type dataFrame struct { streamID uint32 endStream bool @@ -162,70 +172,60 @@ type dataFrame struct { onEachWrite func() } -func (*dataFrame) isTransportResponseFrame() bool { return false } +func (*dataFrame) isThrottled() bool { return false } type incomingWindowUpdate struct { + throttledItem streamID uint32 increment uint32 } -func (*incomingWindowUpdate) isTransportResponseFrame() bool { return false } - type outgoingWindowUpdate struct { + throttledItem streamID uint32 increment uint32 } -func (*outgoingWindowUpdate) isTransportResponseFrame() bool { - return false // window updates are throttled by thresholds -} - type incomingSettings struct { + throttledItem ss []http2.Setting } -func (*incomingSettings) isTransportResponseFrame() bool { return true } // Results in a settings ACK - type outgoingSettings struct { + throttledItem ss []http2.Setting } -func (*outgoingSettings) isTransportResponseFrame() bool { return false } - type incomingGoAway struct { + throttledItem } -func (*incomingGoAway) isTransportResponseFrame() bool { return false } - type goAway struct { + throttledItem code http2.ErrCode debugData []byte headsUp bool closeConn error // if set, loopyWriter will exit with this error } -func (*goAway) isTransportResponseFrame() bool { return false } - type ping struct { + throttledItem ack bool data [8]byte } -func (*ping) isTransportResponseFrame() bool { return true } - type outFlowControlSizeRequest struct { + throttledItem resp chan uint32 } -func (*outFlowControlSizeRequest) isTransportResponseFrame() bool { return false } - // closeConnection is an instruction to tell the loopy writer to flush the // framer and exit, which will cause the transport's connection to be closed // (by the client or server). The transport itself will close after the reader // encounters the EOF caused by the connection closure. -type closeConnection struct{} - -func (closeConnection) isTransportResponseFrame() bool { return false } +type closeConnection struct { + throttledItem +} type outStreamState int @@ -379,9 +379,9 @@ func (c *controlBuffer) executeAndPut(f func() bool, it cbItem) (bool, error) { c.consumerWaiting = false } c.list.enqueue(it) - if it.isTransportResponseFrame() { + if it.isThrottled() { c.transportResponseFrames++ - if c.transportResponseFrames == maxQueuedTransportResponseFrames { + if c.transportResponseFrames == maxQueuedControlBufferItems { // We are adding the frame that puts us over the threshold; create // a throttling channel. ch := make(chan struct{}) @@ -436,8 +436,8 @@ func (c *controlBuffer) getOnceLocked() (any, error) { return nil, nil } h := c.list.dequeue().(cbItem) - if h.isTransportResponseFrame() { - if c.transportResponseFrames == maxQueuedTransportResponseFrames { + if h.isThrottled() { + if c.transportResponseFrames == maxQueuedControlBufferItems { // We are removing the frame that put us over the // threshold; close and clear the throttling channel. ch := c.trfChan.Swap(nil) @@ -464,10 +464,8 @@ func (c *controlBuffer) finish() { // is still not aware of these yet. for head := c.list.dequeueAll(); head != nil; head = head.next { switch v := head.it.(type) { - case *headerFrame: - if v.onOrphaned != nil { // It will be nil on the server-side. - v.onOrphaned(ErrConnClosing) - } + case *clientHeaders: + v.onOrphaned(ErrConnClosing) case *dataFrame: if !v.processing { v.data.Free() @@ -680,42 +678,38 @@ func (l *loopyWriter) registerStreamHandler(h *registerStream) { l.estdStreams[h.streamID] = str } -func (l *loopyWriter) headerHandler(h *headerFrame) error { - if l.side == serverSide { - str, ok := l.estdStreams[h.streamID] - if !ok { - if l.logger.V(logLevel) { - l.logger.Infof("Unrecognized streamID %d in loopyWriter", h.streamID) - } - return nil - } - // Case 1.A: Server is responding back with headers. - if !h.endStream { - return l.writeHeader(h.streamID, h.endStream, h.hf, h.onWrite) +func (l *loopyWriter) serverHeaderHandler(hdr *serverHeaders) error { + str, ok := l.estdStreams[hdr.streamID] + if !ok { + if l.logger.V(logLevel) { + l.logger.Infof("Unrecognized streamID %d in loopyWriter", hdr.streamID) } - // else: Case 1.B: Server wants to close stream. + return nil + } - if str.state != empty { // either active or waiting on stream quota. - // add it str's list of items. - str.itl.enqueue(h) - return nil - } - if err := l.writeHeader(h.streamID, h.endStream, h.hf, h.onWrite); err != nil { - return err - } - return l.cleanupStreamHandler(h.cleanup) + // Case 1: Server is responding back with headers. + if !hdr.endStream { + return l.writeHeader(hdr.streamID, hdr.endStream, hdr.hf, hdr.onWrite) + } + + // Case 2: Server is closing the stream. + if str.state != empty { // either active or waiting on stream quota. + str.itl.enqueue(hdr) + return nil + } + if err := l.writeHeader(hdr.streamID, hdr.endStream, hdr.hf, hdr.onWrite); err != nil { + return err } - // Case 2: Client wants to originate stream. + return l.cleanupStreamHandler(hdr.cleanup) +} + +func (l *loopyWriter) clientHeaderHandler(hdr *clientHeaders) error { str := &outStream{ - id: h.streamID, + id: hdr.streamID, state: empty, itl: &itemList{}, - wq: h.wq, + wq: hdr.wq, } - return l.originateStream(str, h) -} - -func (l *loopyWriter) originateStream(str *outStream, hdr *headerFrame) error { // l.draining is set when handling GoAway. In which case, we want to avoid // creating new streams. if l.draining { @@ -726,7 +720,7 @@ func (l *loopyWriter) originateStream(str *outStream, hdr *headerFrame) error { if err := hdr.initStream(str.id); err != nil { return err } - if err := l.writeHeader(str.id, hdr.endStream, hdr.hf, hdr.onWrite); err != nil { + if err := l.writeHeader(str.id, false, hdr.hf, hdr.onWrite); err != nil { return err } l.estdStreams[str.id] = str @@ -882,8 +876,10 @@ func (l *loopyWriter) handle(i any) error { return l.incomingSettingsHandler(i) case *outgoingSettings: return l.outgoingSettingsHandler(i) - case *headerFrame: - return l.headerHandler(i) + case *clientHeaders: + return l.clientHeaderHandler(i) + case *serverHeaders: + return l.serverHeaderHandler(i) case *registerStream: l.registerStreamHandler(i) case *cleanupStream: @@ -956,39 +952,16 @@ func (l *loopyWriter) processData() (bool, error) { // from data is copied to h to make as big as the maximum possible HTTP2 frame // size. - if len(dataItem.h) == 0 && reader.Remaining() == 0 { // Empty data frame - // Client sends out empty data frame with endStream = true - if err := l.framer.writeData(dataItem.streamID, dataItem.endStream, nil); err != nil { - return false, err - } - str.itl.dequeue() // remove the empty data item from stream - reader.Close() - if str.itl.isEmpty() { - str.state = empty - } else if trailer, ok := str.itl.peek().(*headerFrame); ok { // the next item is trailers. - if err := l.writeHeader(trailer.streamID, trailer.endStream, trailer.hf, trailer.onWrite); err != nil { - return false, err - } - if err := l.cleanupStreamHandler(trailer.cleanup); err != nil { - return false, err - } - } else { - l.activeStreams.enqueue(str) - } - return false, nil - } - + isEmpty := len(dataItem.h) == 0 && reader.Remaining() == 0 // Figure out the maximum size we can send maxSize := http2MaxFrameLen - if strQuota := int(l.oiws) - str.bytesOutStanding; strQuota <= 0 { // stream-level flow control. + strQuota := int(l.oiws) - str.bytesOutStanding + if strQuota <= 0 && !isEmpty { // stream-level flow control. str.state = waitingOnStreamQuota return false, nil - } else if maxSize > strQuota { - maxSize = strQuota - } - if maxSize > int(l.sendQuota) { // connection-level flow control. - maxSize = int(l.sendQuota) } + maxSize = min(maxSize, max(strQuota, 0)) + maxSize = min(maxSize, int(l.sendQuota)) // connection-level flow control. // Compute how much of the header and data we can send within quota and max frame length hSize := min(maxSize, len(dataItem.h)) dSize := min(maxSize-hSize, reader.Remaining()) @@ -1039,19 +1012,23 @@ func (l *loopyWriter) processData() (bool, error) { reader.Close() str.itl.dequeue() } + return false, l.updateStreamAfterWrite(str) +} + +func (l *loopyWriter) updateStreamAfterWrite(str *outStream) error { if str.itl.isEmpty() { str.state = empty - } else if trailer, ok := str.itl.peek().(*headerFrame); ok { // The next item is trailers. + } else if trailer, ok := str.itl.peek().(*serverHeaders); ok { // the next item is trailers. if err := l.writeHeader(trailer.streamID, trailer.endStream, trailer.hf, trailer.onWrite); err != nil { - return false, err + return err } if err := l.cleanupStreamHandler(trailer.cleanup); err != nil { - return false, err + return err } } else if int(l.oiws)-str.bytesOutStanding <= 0 { // Ran out of stream quota. str.state = waitingOnStreamQuota } else { // Otherwise add it back to the list of active streams. l.activeStreams.enqueue(str) } - return false, nil + return nil } diff --git a/vendor/google.golang.org/grpc/internal/transport/defaults.go b/vendor/google.golang.org/grpc/internal/transport/defaults.go index bc8ee0747..0b2269a50 100644 --- a/vendor/google.golang.org/grpc/internal/transport/defaults.go +++ b/vendor/google.golang.org/grpc/internal/transport/defaults.go @@ -46,6 +46,7 @@ const ( defaultWriteQuota = 64 * 1024 defaultClientMaxHeaderListSize = uint32(16 << 20) defaultServerMaxHeaderListSize = uint32(16 << 20) + upcomingDefaultHeaderListSize = uint32(8 << 10) ) // MaxStreamID is the upper bound for the stream ID before the current diff --git a/vendor/google.golang.org/grpc/internal/transport/flowcontrol.go b/vendor/google.golang.org/grpc/internal/transport/flowcontrol.go index 7cfbc9637..98cef9ec2 100644 --- a/vendor/google.golang.org/grpc/internal/transport/flowcontrol.go +++ b/vendor/google.golang.org/grpc/internal/transport/flowcontrol.go @@ -115,7 +115,6 @@ func (f *trInFlow) getSize() uint32 { return atomic.LoadUint32(&f.effectiveWindowSize) } -// TODO(mmukhi): Simplify this code. // inFlow deals with inbound flow control type inFlow struct { mu sync.Mutex @@ -174,14 +173,14 @@ func (f *inFlow) maybeAdjust(n uint32) uint32 { // onData is invoked when some data frame is received. It updates pendingData. func (f *inFlow) onData(n uint32) error { f.mu.Lock() + defer f.mu.Unlock() + f.pendingData += n if f.pendingData+f.pendingUpdate > f.limit+f.delta { limit := f.limit rcvd := f.pendingData + f.pendingUpdate - f.mu.Unlock() return fmt.Errorf("received %d-bytes data exceeding the limit %d bytes", rcvd, limit) } - f.mu.Unlock() return nil } @@ -189,8 +188,9 @@ func (f *inFlow) onData(n uint32) error { // to be sent to the peer. func (f *inFlow) onRead(n uint32) uint32 { f.mu.Lock() + defer f.mu.Unlock() + if f.pendingData == 0 { - f.mu.Unlock() return 0 } f.pendingData -= n @@ -205,9 +205,7 @@ func (f *inFlow) onRead(n uint32) uint32 { if f.pendingUpdate >= f.limit/4 { wu := f.pendingUpdate f.pendingUpdate = 0 - f.mu.Unlock() return wu } - f.mu.Unlock() return 0 } diff --git a/vendor/google.golang.org/grpc/internal/transport/handler_server.go b/vendor/google.golang.org/grpc/internal/transport/handler_server.go index 7ab3422b8..a8356c9ad 100644 --- a/vendor/google.golang.org/grpc/internal/transport/handler_server.go +++ b/vendor/google.golang.org/grpc/internal/transport/handler_server.go @@ -479,8 +479,8 @@ func (ht *serverHandlerTransport) runStream() { func (ht *serverHandlerTransport) incrMsgRecv() {} -func (ht *serverHandlerTransport) Drain(string) { - panic("Drain() is not implemented") +func (ht *serverHandlerTransport) Drain(s string) { + ht.Close(errors.New(s)) } // mapRecvMsgError returns the non-nil err into the appropriate diff --git a/vendor/google.golang.org/grpc/internal/transport/http2_client.go b/vendor/google.golang.org/grpc/internal/transport/http2_client.go index 37b1acc34..822c09ba6 100644 --- a/vendor/google.golang.org/grpc/internal/transport/http2_client.go +++ b/vendor/google.golang.org/grpc/internal/transport/http2_client.go @@ -39,6 +39,7 @@ import ( "google.golang.org/grpc/internal" "google.golang.org/grpc/internal/channelz" icredentials "google.golang.org/grpc/internal/credentials" + "google.golang.org/grpc/internal/envconfig" "google.golang.org/grpc/internal/grpclog" "google.golang.org/grpc/internal/grpcsync" "google.golang.org/grpc/internal/grpcutil" @@ -134,6 +135,8 @@ type http2Client struct { // goAwayDebugMessage contains a detailed human readable string about a // GoAway frame, useful for error messages. goAwayDebugMessage string + // goAwayCode records the http2.ErrCode received with the GoAway frame. + goAwayCode http2.ErrCode // A condition variable used to signal when the keepalive goroutine should // go dormant. The condition for dormancy is based on the number of active // streams and the `PermitWithoutStream` keepalive client parameter. And @@ -147,7 +150,7 @@ type http2Client struct { channelz *channelz.Socket - onClose func(GoAwayReason) + onClose OnCloseFunc bufferPool mem.BufferPool @@ -204,7 +207,7 @@ func isTemporary(err error) bool { // NewHTTP2Client constructs a connected ClientTransport to addr based on HTTP2 // and starts to receive messages on it. Non-nil error returns if construction // fails. -func NewHTTP2Client(connectCtx, ctx context.Context, addr resolver.Address, opts ConnectOptions, onClose func(GoAwayReason)) (_ ClientTransport, err error) { +func NewHTTP2Client(connectCtx, ctx context.Context, addr resolver.Address, opts ConnectOptions, onClose OnCloseFunc) (_ ClientTransport, err error) { scheme := "http" ctx, cancel := context.WithCancel(ctx) defer func() { @@ -316,7 +319,13 @@ func NewHTTP2Client(connectCtx, ctx context.Context, addr resolver.Address, opts } writeBufSize := opts.WriteBufferSize readBufSize := opts.ReadBufferSize + // The default header list size is moving from 16MB to 8KB. The 8KB limit + // is only used if Enable8KBDefaultHeaderListSize is true; otherwise, the + // old 16MB default is used. User-specified options always take precedence. maxHeaderListSize := defaultClientMaxHeaderListSize + if envconfig.Enable8KBDefaultHeaderListSize { + maxHeaderListSize = upcomingDefaultHeaderListSize + } if opts.MaxHeaderListSize != nil { maxHeaderListSize = *opts.MaxHeaderListSize } @@ -797,9 +806,8 @@ func (t *http2Client) NewStream(ctx context.Context, callHdr *CallHdr, handler s close(s.headerChan) } } - hdr := &headerFrame{ - hf: headerFields, - endStream: false, + hdr := &clientHeaders{ + hf: headerFields, initStream: func(uint32) error { t.mu.Lock() // TODO: handle transport closure in loopy instead and remove this @@ -871,11 +879,15 @@ func (t *http2Client) NewStream(ctx context.Context, callHdr *CallHdr, handler s } var sz int64 for _, f := range hdr.hf { - if sz += int64(f.Size()); sz > int64(*t.maxSendHeaderListSize) { + sz += int64(f.Size()) + if sz > int64(*t.maxSendHeaderListSize) { hdrListSizeErr = status.Errorf(codes.Internal, "header list size to send violates the maximum size (%d bytes) set by server", *t.maxSendHeaderListSize) return false } } + if !envconfig.Enable8KBDefaultHeaderListSize && sz > int64(upcomingDefaultHeaderListSize) { + t.logger.Warningf("Header list size to send (%d bytes) is larger than the upcoming default limit (%d bytes). In release v1.82.0, GRPC_GO_EXPERIMENTAL_ENABLE_8KB_DEFAULT_HEADER_LIST_SIZE will be enabled by default, enforcing this limit.", sz, upcomingDefaultHeaderListSize) + } return true } for { @@ -1011,7 +1023,7 @@ func (t *http2Client) Close(err error) { // Call t.onClose ASAP to prevent the client from attempting to create new // streams. if t.state != draining { - t.onClose(GoAwayInvalid) + t.onClose(GoAwayInfo{Reason: GoAwayInvalid, GoAwayCode: http2.ErrCodeNo, Err: err}) } t.state = closing streams := t.activeStreams @@ -1082,7 +1094,7 @@ func (t *http2Client) GracefulClose() { if t.logger.V(logLevel) { t.logger.Infof("GracefulClose called") } - t.onClose(GoAwayInvalid) + t.onClose(GoAwayInfo{Reason: GoAwayInvalid, GoAwayCode: http2.ErrCodeNo}) t.state = draining active := len(t.activeStreams) t.mu.Unlock() @@ -1218,10 +1230,30 @@ func (t *http2Client) handleData(f *parsedDataFrame) { t.closeStream(s, io.EOF, true, http2.ErrCodeFlowControl, status.New(codes.Internal, err.Error()), nil, false) return } + + if s.nonGRPCStatus != nil { + // The frame should be handled as a non-gRPC response body + st := s.handleNonGRPCData(f) + if st != nil { + t.closeStream(s, st.Err(), true, http2.ErrCodeProtocol, st, nil, true) + return + } + if w := s.fc.onRead(size); w > 0 { + t.controlBuf.put(&outgoingWindowUpdate{ + streamID: s.id, + increment: w, + }) + } + return + } + dataLen := f.data.Len() if f.Header().Flags.Has(http2.FlagDataPadded) { if w := s.fc.onRead(size - uint32(dataLen)); w > 0 { - t.controlBuf.put(&outgoingWindowUpdate{s.id, w}) + t.controlBuf.put(&outgoingWindowUpdate{ + streamID: s.id, + increment: w, + }) } } if dataLen > 0 { @@ -1232,7 +1264,10 @@ func (t *http2Client) handleData(f *parsedDataFrame) { // The server has closed the stream without sending trailers. Record that // the read direction is closed, and set the status appropriately. if f.StreamEnded() { - t.closeStream(s, io.EOF, false, http2.ErrCodeNo, status.New(codes.Internal, "server closed the stream without sending trailers"), nil, true) + // If client received END_STREAM from server while stream was still + // active, send RST_STREAM. + rstStream := s.getState() == streamActive + t.closeStream(s, io.EOF, rstStream, http2.ErrCodeNo, status.New(codes.Internal, "server closed the stream without sending trailers"), nil, true) } } @@ -1368,7 +1403,7 @@ func (t *http2Client) handleGoAway(f *http2.GoAwayFrame) error { // draining, to allow the client to stop attempting to create streams // before disallowing new streams on this connection. if t.state != draining { - t.onClose(t.goAwayReason) + t.onClose(GoAwayInfo{Reason: t.goAwayReason, GoAwayCode: t.goAwayCode}) t.state = draining } } @@ -1418,6 +1453,7 @@ func (t *http2Client) setGoAwayReason(f *http2.GoAwayFrame) { } else { t.goAwayDebugMessage = fmt.Sprintf("code: %s, debug data: %q", f.ErrCode, string(f.DebugData())) } + t.goAwayCode = f.ErrCode } func (t *http2Client) GetGoAwayReason() (GoAwayReason, string) { @@ -1458,6 +1494,17 @@ func (t *http2Client) operateHeaders(frame *http2.MetaHeadersFrame) { return } + // If we are collecting non-gRPC response data and receive a trailing + // HEADERS frame with END_STREAM, finalize the buffered data and close + // the stream. + if s.nonGRPCStatus != nil { + if endStream { + st := s.finalizeNonGRPCStatus() + t.closeStream(s, st.Err(), true, http2.ErrCodeProtocol, st, nil, true) + } + return + } + var ( // If a gRPC Response-Headers has already been received, then it means // that the peer is speaking gRPC and we are in gRPC mode. @@ -1558,7 +1605,12 @@ func (t *http2Client) operateHeaders(frame *http2.MetaHeadersFrame) { } se := status.New(grpcErrorCode, strings.Join(errs, "; ")) - t.closeStream(s, se.Err(), true, http2.ErrCodeProtocol, se, nil, endStream) + if endStream { + t.closeStream(s, se.Err(), true, http2.ErrCodeProtocol, se, nil, true) + return + } + + s.startNonGRPCDataCollection(se) return } @@ -1829,7 +1881,7 @@ func (t *http2Client) getOutFlowWindow() int64 { resp := make(chan uint32, 1) timer := time.NewTimer(time.Second) defer timer.Stop() - t.controlBuf.put(&outFlowControlSizeRequest{resp}) + t.controlBuf.put(&outFlowControlSizeRequest{resp: resp}) select { case sz := <-resp: return int64(sz) diff --git a/vendor/google.golang.org/grpc/internal/transport/http2_server.go b/vendor/google.golang.org/grpc/internal/transport/http2_server.go index a1a14e14f..be8ae9f9c 100644 --- a/vendor/google.golang.org/grpc/internal/transport/http2_server.go +++ b/vendor/google.golang.org/grpc/internal/transport/http2_server.go @@ -38,11 +38,13 @@ import ( "google.golang.org/protobuf/proto" "google.golang.org/grpc/internal" + "google.golang.org/grpc/internal/envconfig" "google.golang.org/grpc/internal/grpclog" "google.golang.org/grpc/internal/grpcutil" "google.golang.org/grpc/internal/pretty" istatus "google.golang.org/grpc/internal/status" "google.golang.org/grpc/internal/syscall" + transportinternal "google.golang.org/grpc/internal/transport/internal" "google.golang.org/grpc/mem" "google.golang.org/grpc/codes" @@ -165,7 +167,13 @@ func NewServerTransport(conn net.Conn, config *ServerConfig) (_ ServerTransport, } writeBufSize := config.WriteBufferSize readBufSize := config.ReadBufferSize + // The default header list size is moving from 16MB to 8KB. The 8KB limit + // is only used if Enable8KBDefaultHeaderListSize is true; otherwise, the + // old 16MB default is used. User-specified options always take precedence. maxHeaderListSize := defaultServerMaxHeaderListSize + if envconfig.Enable8KBDefaultHeaderListSize { + maxHeaderListSize = upcomingDefaultHeaderListSize + } if config.MaxHeaderListSize != nil { maxHeaderListSize = *config.MaxHeaderListSize } @@ -802,7 +810,10 @@ func (t *http2Server) handleData(f *parsedDataFrame) { dataLen := f.data.Len() if f.Header().Flags.Has(http2.FlagDataPadded) { if w := s.fc.onRead(size - uint32(dataLen)); w > 0 { - t.controlBuf.put(&outgoingWindowUpdate{s.id, w}) + t.controlBuf.put(&outgoingWindowUpdate{ + streamID: s.id, + increment: w, + }) } } if dataLen > 0 { @@ -940,13 +951,17 @@ func (t *http2Server) checkForHeaderListSize(hf []hpack.HeaderField) bool { } var sz int64 for _, f := range hf { - if sz += int64(f.Size()); sz > int64(*t.maxSendHeaderListSize) { + sz += int64(f.Size()) + if sz > int64(*t.maxSendHeaderListSize) { if t.logger.V(logLevel) { t.logger.Infof("Header list size to send violates the maximum size (%d bytes) set by client", *t.maxSendHeaderListSize) } return false } } + if !envconfig.Enable8KBDefaultHeaderListSize && sz > int64(upcomingDefaultHeaderListSize) { + t.logger.Warningf("Header list size to send (%d bytes) is larger than the upcoming default limit (%d bytes). In release v1.82.0, GRPC_GO_EXPERIMENTAL_ENABLE_8KB_DEFAULT_HEADER_LIST_SIZE will be enabled by default, enforcing this limit.", sz, upcomingDefaultHeaderListSize) + } return true } @@ -1035,7 +1050,7 @@ func (t *http2Server) writeHeaderLocked(s *ServerStream) error { headerFields = append(headerFields, hpack.HeaderField{Name: "grpc-encoding", Value: s.sendCompress}) } headerFields = appendHeaderFieldsFromMD(headerFields, s.header) - hf := &headerFrame{ + hf := &serverHeaders{ streamID: s.id, hf: headerFields, endStream: false, @@ -1103,7 +1118,7 @@ func (t *http2Server) writeStatus(s *ServerStream, st *status.Status) error { // Attach the trailer metadata. headerFields = appendHeaderFieldsFromMD(headerFields, s.trailer) - trailingHeader := &headerFrame{ + trailingHeader := &serverHeaders{ streamID: s.id, hf: headerFields, endStream: true, @@ -1313,7 +1328,7 @@ func (t *http2Server) deleteStream(s *ServerStream, eosReceived bool) { } // finishStream closes the stream and puts the trailing headerFrame into controlbuf. -func (t *http2Server) finishStream(s *ServerStream, rst bool, rstCode http2.ErrCode, hdr *headerFrame, eosReceived bool) { +func (t *http2Server) finishStream(s *ServerStream, rst bool, rstCode http2.ErrCode, hdr *serverHeaders, eosReceived bool) { // In case stream sending and receiving are invoked in separate // goroutines (e.g., bi-directional streaming), cancel needs to be // called to interrupt the potential blocking on other goroutines. @@ -1437,14 +1452,14 @@ func (t *http2Server) socketMetrics() *channelz.EphemeralSocketMetrics { func (t *http2Server) incrMsgSent() { if channelz.IsOn() { t.channelz.SocketMetrics.MessagesSent.Add(1) - t.channelz.SocketMetrics.LastMessageSentTimestamp.Add(1) + t.channelz.SocketMetrics.LastMessageSentTimestamp.Store(transportinternal.TimeNowFunc()) } } func (t *http2Server) incrMsgRecv() { if channelz.IsOn() { t.channelz.SocketMetrics.MessagesReceived.Add(1) - t.channelz.SocketMetrics.LastMessageReceivedTimestamp.Add(1) + t.channelz.SocketMetrics.LastMessageReceivedTimestamp.Store(transportinternal.TimeNowFunc()) } } @@ -1452,7 +1467,7 @@ func (t *http2Server) getOutFlowWindow() int64 { resp := make(chan uint32, 1) timer := time.NewTimer(time.Second) defer timer.Stop() - t.controlBuf.put(&outFlowControlSizeRequest{resp}) + t.controlBuf.put(&outFlowControlSizeRequest{resp: resp}) select { case sz := <-resp: return int64(sz) diff --git a/vendor/google.golang.org/grpc/internal/transport/http_util.go b/vendor/google.golang.org/grpc/internal/transport/http_util.go index 5bbb641ad..c34975ffe 100644 --- a/vendor/google.golang.org/grpc/internal/transport/http_util.go +++ b/vendor/google.golang.org/grpc/internal/transport/http_util.go @@ -36,6 +36,9 @@ import ( "golang.org/x/net/http2" "golang.org/x/net/http2/hpack" "google.golang.org/grpc/codes" + "google.golang.org/grpc/internal/envconfig" + imem "google.golang.org/grpc/internal/mem" + "google.golang.org/grpc/internal/transport/readyreader" "google.golang.org/grpc/mem" ) @@ -296,7 +299,7 @@ func decodeGrpcMessageUnchecked(msg string) string { } type bufWriter struct { - pool *sync.Pool + pool *imem.SimpleBufferPool buf []byte offset int batchSize int @@ -304,7 +307,7 @@ type bufWriter struct { err error } -func newBufWriter(conn io.Writer, batchSize int, pool *sync.Pool) *bufWriter { +func newBufWriter(conn io.Writer, batchSize int, pool *imem.SimpleBufferPool) *bufWriter { w := &bufWriter{ batchSize: batchSize, conn: conn, @@ -326,7 +329,7 @@ func (w *bufWriter) Write(b []byte) (int, error) { return n, toIOError(err) } if w.buf == nil { - b := w.pool.Get().(*[]byte) + b := w.pool.Get(w.batchSize) w.buf = *b } written := 0 @@ -407,22 +410,32 @@ type framer struct { errDetail error } -var writeBufferPoolMap = make(map[int]*sync.Pool) -var writeBufferMutex sync.Mutex +var ioBufferPoolMap = make(map[int]*imem.SimpleBufferPool) +var ioBufferMutex sync.Mutex + +func bufferedReader(r io.Reader, bufSize int) io.Reader { + if bufSize <= 0 { + return r + } + if envconfig.EnableHTTPFramerReadBufferPooling { + if rr := readyreader.NewNonBlocking(r); rr != nil { + readPool := ioBufferPool(bufSize) + return readyreader.NewBuffered(rr, bufSize, readPool) + } + } + return bufio.NewReaderSize(r, bufSize) +} func newFramer(conn io.ReadWriter, writeBufferSize, readBufferSize int, sharedWriteBuffer bool, maxHeaderListSize uint32, memPool mem.BufferPool) *framer { if writeBufferSize < 0 { writeBufferSize = 0 } - var r io.Reader = conn - if readBufferSize > 0 { - r = bufio.NewReaderSize(r, readBufferSize) - } - var pool *sync.Pool + r := bufferedReader(conn, readBufferSize) + var writePool *imem.SimpleBufferPool if sharedWriteBuffer { - pool = getWriteBufferPool(writeBufferSize) + writePool = ioBufferPool(writeBufferSize) } - w := newBufWriter(conn, writeBufferSize, pool) + w := newBufWriter(conn, writeBufferSize, writePool) f := &framer{ writer: w, fr: http2.NewFramer(w, r), @@ -578,20 +591,15 @@ func (df *parsedDataFrame) Header() http2.FrameHeader { return df.FrameHeader } -func getWriteBufferPool(size int) *sync.Pool { - writeBufferMutex.Lock() - defer writeBufferMutex.Unlock() - pool, ok := writeBufferPoolMap[size] +func ioBufferPool(size int) *imem.SimpleBufferPool { + ioBufferMutex.Lock() + defer ioBufferMutex.Unlock() + pool, ok := ioBufferPoolMap[size] if ok { return pool } - pool = &sync.Pool{ - New: func() any { - b := make([]byte, size) - return &b - }, - } - writeBufferPoolMap[size] = pool + pool = imem.NewDirtySimplePool() + ioBufferPoolMap[size] = pool return pool } diff --git a/vendor/google.golang.org/grpc/internal/grpcutil/regex.go b/vendor/google.golang.org/grpc/internal/transport/internal/internal.go similarity index 59% rename from vendor/google.golang.org/grpc/internal/grpcutil/regex.go rename to vendor/google.golang.org/grpc/internal/transport/internal/internal.go index 7a092b2b8..a7c7c7d5a 100644 --- a/vendor/google.golang.org/grpc/internal/grpcutil/regex.go +++ b/vendor/google.golang.org/grpc/internal/transport/internal/internal.go @@ -1,6 +1,6 @@ /* * - * Copyright 2021 gRPC authors. + * Copyright 2026 gRPC authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -16,16 +16,10 @@ * */ -package grpcutil +// Package internal contains functionality internal to the transport package. +package internal -import "regexp" - -// FullMatchWithRegex returns whether the full text matches the regex provided. -func FullMatchWithRegex(re *regexp.Regexp, text string) bool { - if len(text) == 0 { - return re.MatchString(text) - } - re.Longest() - rem := re.FindString(text) - return len(rem) == len(text) -} +// TimeNowFunc is a variable that can be set to override the default behavior of +// getting the current time in nanoseconds. It is used in transport code to set +// channelz timestamps, and is exposed here for testing purposes. +var TimeNowFunc func() int64 diff --git a/vendor/google.golang.org/grpc/internal/transport/readyreader/raw_conn_linux.go b/vendor/google.golang.org/grpc/internal/transport/readyreader/raw_conn_linux.go new file mode 100644 index 000000000..56906c35b --- /dev/null +++ b/vendor/google.golang.org/grpc/internal/transport/readyreader/raw_conn_linux.go @@ -0,0 +1,39 @@ +/* + * + * Copyright 2026 gRPC authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ + +package readyreader + +import "syscall" + +func isRawConnSupported() bool { + return true +} + +// sysRead uses the standard syscall package rather than the modern unix package +// to avoid triggering the race detector. Because both packages perform sync +// operations on a local variable to satisfy the race detector, mixing them +// for read and write syscalls causes data races. We use syscall here to remain +// consistent with net.Conn implementations in standard library. +func sysRead(fd uintptr, p []byte) (int, error) { + return syscall.Read(int(fd), p) +} + +// wouldBlock checks standard Unix non-blocking errors. +func wouldBlock(err error) bool { + return err == syscall.EAGAIN || err == syscall.EWOULDBLOCK +} diff --git a/vendor/google.golang.org/grpc/internal/transport/readyreader/raw_conn_nonlinux.go b/vendor/google.golang.org/grpc/internal/transport/readyreader/raw_conn_nonlinux.go new file mode 100644 index 000000000..4d1f33006 --- /dev/null +++ b/vendor/google.golang.org/grpc/internal/transport/readyreader/raw_conn_nonlinux.go @@ -0,0 +1,35 @@ +//go:build !linux + +/* + * + * Copyright 2026 gRPC authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ + +package readyreader + +func isRawConnSupported() bool { + return false +} + +// sysRead is not implemented. Support can be added in the future if necessary. +func sysRead(uintptr, []byte) (int, error) { + panic("RawConn functionality is not implemented for non-unix platforms.") +} + +// wouldBlock is not implemented. Support can be added in the future if necessary. +func wouldBlock(error) bool { + panic("RawConn functionality is not implemented for non-unix platforms.") +} diff --git a/vendor/google.golang.org/grpc/internal/transport/readyreader/ready_reader.go b/vendor/google.golang.org/grpc/internal/transport/readyreader/ready_reader.go new file mode 100644 index 000000000..250a300c7 --- /dev/null +++ b/vendor/google.golang.org/grpc/internal/transport/readyreader/ready_reader.go @@ -0,0 +1,253 @@ +/* + * + * Copyright 2026 gRPC authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ + +// Package readyreader provides utilities to perform non-memory-pinning reads. +package readyreader + +import ( + "io" + "net" + "syscall" + + "google.golang.org/grpc/mem" +) + +// Reader is an optional interface that can be implemented by [net.Conn] +// implementations to enable gRPC to perform non-memory-pinning reads. +type Reader interface { + // ReadOnReady waits for data to arrive, fetches a buffer, and performs a + // read. When the underlying IO is readable, it allocates a buffer of size + // bufSize from the pool and reads up to bufSize bytes into the buffer. + // + // It returns a pointer to the buffer so it can be returned to the pool + // later, the number of bytes read, and an error. + // + // Callers should always process the n > 0 bytes returned before considering + // the error. Doing so correctly handles I/O errors that happen after + // reading some bytes, as well as both of the allowed EOF behaviors. + ReadOnReady(bufSize int, pool mem.BufferPool) (b *[]byte, n int, err error) +} + +// nonBlockingReader is optimized for non-memory-pinning reads using the RawConn +// interface. +type nonBlockingReader struct { + raw syscall.RawConn + // The following fields are stored as field to avoid heap allocations. + state readState + doRead func(fd uintptr) bool +} + +type readState struct { + // Request params. + bufSize int + pool mem.BufferPool + + // Response params. + readError error + bytesRead int + buf *[]byte +} + +// NewNonBlocking returns a ReadyReader if the passed reader supports +// non-memory-pinning reads, else nil. +func NewNonBlocking(r io.Reader) Reader { + if rr, ok := r.(Reader); ok { + return rr + } + if !isRawConnSupported() { + return nil + } + // We restrict the types before asserting syscall.Conn. The credentials + // package may return a wrapper that implements syscall.Conn by embedding + // both the raw connection and the encrypted connection. If the code + // attempts to read directly from the raw syscall.RawConn, it would read + // encrypted data. + switch r.(type) { + case *net.TCPConn, *net.UDPConn, *net.UnixConn, *net.IPConn: + default: + return nil + } + sysConn, ok := r.(syscall.Conn) + if !ok { + return nil + } + raw, err := sysConn.SyscallConn() + if err != nil { + return nil + } + rr := &nonBlockingReader{raw: raw} + rr.doRead = func(fd uintptr) bool { + s := &rr.state + + s.buf = s.pool.Get(s.bufSize) + s.bytesRead, s.readError = sysRead(fd, *s.buf) + + if s.readError != nil { + s.pool.Put(s.buf) + s.buf = nil + } + return !wouldBlock(s.readError) + } + return rr +} + +func (c *nonBlockingReader) ReadOnReady(bufSize int, pool mem.BufferPool) (*[]byte, int, error) { + c.state = readState{ + pool: pool, + bufSize: bufSize, + } + err := c.raw.Read(c.doRead) + + buf := c.state.buf + n := c.state.bytesRead + readErr := c.state.readError + c.state = readState{} + + if err != nil { + if buf != nil { + pool.Put(buf) + } + return nil, 0, err + } + if readErr != nil { + // buffer is already released in the callback. + return nil, 0, readErr + } + if n == 0 { + // syscall.Read doesn't consider a graceful socket closure to be an + // error condition, but Go's io.Reader expects an EOF error. + pool.Put(buf) + return nil, 0, io.EOF + } + return buf, n, nil +} + +type blockingReader struct { + reader io.Reader +} + +func (c *blockingReader) ReadOnReady(bufSize int, pool mem.BufferPool) (*[]byte, int, error) { + buf := pool.Get(bufSize) + n, err := c.reader.Read(*buf) + if err != nil { + pool.Put(buf) + return nil, 0, err + } + return buf, n, nil +} + +// New detects if [syscall.RawConn] is available for non-memory-pinning reads. +// If [syscall.RawConn] is unavailable, it falls back to using the simpler +// [io.Reader] interface for reads. +func New(r io.Reader) Reader { + if r := NewNonBlocking(r); r != nil { + return r + } + return &blockingReader{reader: r} +} + +// bufReadyReader implements buffering for a ReadyReader object. +// A new bufReadyReader is created by calling [NewBuffered]. +type bufReadyReader struct { + buf *[]byte + pool mem.BufferPool + bufSize int + rd Reader // reader provided by the caller + r, w int // buf read and write positions + err error + constPool constBufferPool // stored as a field to avoid heap allocations. +} + +// NewBuffered returns a new [io.Reader] with a buffer of the specified size +// which is allocated from the provided pool. +func NewBuffered(rd Reader, size int, pool mem.BufferPool) io.Reader { + return &bufReadyReader{ + rd: rd, + pool: pool, + bufSize: size, + } +} + +func (b *bufReadyReader) readErr() error { + err := b.err + b.err = nil + return err +} + +func (b *bufReadyReader) buffered() int { return b.w - b.r } + +// Read reads data into p. It returns the number of bytes read into p. The +// bytes are taken from at most one Read on the underlying [ReadyReader], +// hence n may be less than len(p). If the underlying [ReadyReader] can return +// a non-zero count with io.EOF, then this Read method can do so as well; see +// the [io.Reader] docs. +func (b *bufReadyReader) Read(p []byte) (n int, err error) { + n = len(p) + if n == 0 { + if b.buffered() > 0 { + return 0, nil + } + return 0, b.readErr() + } + if b.r == b.w { + if b.err != nil { + return 0, b.readErr() + } + if len(p) >= b.bufSize { + // Large read, empty buffer. + // Read directly into p to avoid copy. + b.constPool.buffer = p + _, n, b.err = b.rd.ReadOnReady(len(p), &b.constPool) + return n, b.readErr() + } + // One read. + b.r = 0 + b.w = 0 + b.buf, n, b.err = b.rd.ReadOnReady(b.bufSize, b.pool) + if n == 0 { + if b.buf != nil { + b.pool.Put(b.buf) + b.buf = nil + } + return 0, b.readErr() + } + b.w += n + } + + // copy as much as we can + // b.buf must be non-nil since b.r != b.w. + buf := *b.buf + n = copy(p, buf[b.r:b.w]) + b.r += n + if b.r == b.w { + // Consumed entire buffer, release it. + b.pool.Put(b.buf) + b.buf = nil + } + return n, nil +} + +type constBufferPool struct { + buffer []byte +} + +func (p *constBufferPool) Get(int) *[]byte { + return &p.buffer +} + +func (p *constBufferPool) Put(*[]byte) {} diff --git a/vendor/google.golang.org/grpc/internal/transport/transport.go b/vendor/google.golang.org/grpc/internal/transport/transport.go index b86094da9..6dfae3984 100644 --- a/vendor/google.golang.org/grpc/internal/transport/transport.go +++ b/vendor/google.golang.org/grpc/internal/transport/transport.go @@ -31,9 +31,11 @@ import ( "sync/atomic" "time" + "golang.org/x/net/http2" "google.golang.org/grpc/codes" "google.golang.org/grpc/credentials" "google.golang.org/grpc/internal/channelz" + "google.golang.org/grpc/internal/transport/internal" "google.golang.org/grpc/keepalive" "google.golang.org/grpc/mem" "google.golang.org/grpc/metadata" @@ -45,6 +47,10 @@ import ( const logLevel = 2 +func init() { + internal.TimeNowFunc = func() int64 { return time.Now().UnixNano() } +} + // recvMsg represents the received msg from the transport. All transport // protocol specific info has been removed. type recvMsg struct { @@ -742,6 +748,22 @@ const ( GoAwayTooManyPings GoAwayReason = 2 ) +// GoAwayInfo contains metadata about why a connection was closed. +type GoAwayInfo struct { + // Reason is the parsed reason for an HTTP/2 GOAWAY frame. + Reason GoAwayReason + // GoAwayCode is the raw HTTP/2 error code received in a GOAWAY frame. + GoAwayCode http2.ErrCode + // Err is the underlying error that caused the connection to close. It is + // populated if the connection was closed due to a socket error or context + // cancellation without receiving a GOAWAY frame. If the connection was + // closed due to a GOAWAY frame, this field will be nil. + Err error +} + +// OnCloseFunc is a callback invoked when a ClientTransport closes. +type OnCloseFunc func(GoAwayInfo) + // ContextErr converts the error from context package into a status error. func ContextErr(err error) error { switch err { diff --git a/vendor/google.golang.org/grpc/mem/buffer_pool.go b/vendor/google.golang.org/grpc/mem/buffer_pool.go index 2ea763a49..3b02b9091 100644 --- a/vendor/google.golang.org/grpc/mem/buffer_pool.go +++ b/vendor/google.golang.org/grpc/mem/buffer_pool.go @@ -19,10 +19,10 @@ package mem import ( - "sort" - "sync" + "fmt" "google.golang.org/grpc/internal" + "google.golang.org/grpc/internal/mem" ) // BufferPool is a pool of buffers that can be shared and reused, resulting in @@ -38,20 +38,23 @@ type BufferPool interface { Put(*[]byte) } -const goPageSize = 4 << 10 // 4KiB. N.B. this must be a power of 2. - -var defaultBufferPoolSizes = []int{ - 256, - goPageSize, - 16 << 10, // 16KB (max HTTP/2 frame size used by gRPC) - 32 << 10, // 32KB (default buffer size for io.Copy) - 1 << 20, // 1MB -} - -var defaultBufferPool BufferPool +var ( + defaultBufferPoolSizeExponents = []uint8{ + 8, + 12, // Go page size, 4KB + 14, // 16KB (max HTTP/2 frame size used by gRPC) + 15, // 32KB (default buffer size for io.Copy) + 20, // 1MB + } + defaultBufferPool BufferPool +) func init() { - defaultBufferPool = NewTieredBufferPool(defaultBufferPoolSizes...) + var err error + defaultBufferPool, err = NewBinaryTieredBufferPool(defaultBufferPoolSizeExponents...) + if err != nil { + panic(fmt.Sprintf("Failed to create default buffer pool: %v", err)) + } internal.SetDefaultBufferPool = func(pool BufferPool) { defaultBufferPool = pool @@ -72,134 +75,22 @@ func DefaultBufferPool() BufferPool { // NewTieredBufferPool returns a BufferPool implementation that uses multiple // underlying pools of the given pool sizes. func NewTieredBufferPool(poolSizes ...int) BufferPool { - sort.Ints(poolSizes) - pools := make([]*sizedBufferPool, len(poolSizes)) - for i, s := range poolSizes { - pools[i] = newSizedBufferPool(s) - } - return &tieredBufferPool{ - sizedPools: pools, - } -} - -// tieredBufferPool implements the BufferPool interface with multiple tiers of -// buffer pools for different sizes of buffers. -type tieredBufferPool struct { - sizedPools []*sizedBufferPool - fallbackPool simpleBufferPool -} - -func (p *tieredBufferPool) Get(size int) *[]byte { - return p.getPool(size).Get(size) + return mem.NewTieredBufferPool(poolSizes...) } -func (p *tieredBufferPool) Put(buf *[]byte) { - p.getPool(cap(*buf)).Put(buf) +// NewBinaryTieredBufferPool returns a BufferPool backed by multiple sub-pools. +// This structure enables O(1) lookup time for Get and Put operations. +// +// The arguments provided are the exponents for the buffer capacities (powers +// of 2), not the raw byte sizes. For example, to create a pool of 16KB buffers +// (2^14 bytes), pass 14 as the argument. +func NewBinaryTieredBufferPool(powerOfTwoExponents ...uint8) (BufferPool, error) { + return mem.NewBinaryTieredBufferPool(powerOfTwoExponents...) } -func (p *tieredBufferPool) getPool(size int) BufferPool { - poolIdx := sort.Search(len(p.sizedPools), func(i int) bool { - return p.sizedPools[i].defaultSize >= size - }) - - if poolIdx == len(p.sizedPools) { - return &p.fallbackPool - } - - return p.sizedPools[poolIdx] -} - -// sizedBufferPool is a BufferPool implementation that is optimized for specific -// buffer sizes. For example, HTTP/2 frames within gRPC have a default max size -// of 16kb and a sizedBufferPool can be configured to only return buffers with a -// capacity of 16kb. Note that however it does not support returning larger -// buffers and in fact panics if such a buffer is requested. Because of this, -// this BufferPool implementation is not meant to be used on its own and rather -// is intended to be embedded in a tieredBufferPool such that Get is only -// invoked when the required size is smaller than or equal to defaultSize. -type sizedBufferPool struct { - pool sync.Pool - defaultSize int -} - -func (p *sizedBufferPool) Get(size int) *[]byte { - buf, ok := p.pool.Get().(*[]byte) - if !ok { - buf := make([]byte, size, p.defaultSize) - return &buf - } - b := *buf - clear(b[:cap(b)]) - *buf = b[:size] - return buf -} - -func (p *sizedBufferPool) Put(buf *[]byte) { - if cap(*buf) < p.defaultSize { - // Ignore buffers that are too small to fit in the pool. Otherwise, when - // Get is called it will panic as it tries to index outside the bounds - // of the buffer. - return - } - p.pool.Put(buf) -} - -func newSizedBufferPool(size int) *sizedBufferPool { - return &sizedBufferPool{ - defaultSize: size, - } -} - -var _ BufferPool = (*simpleBufferPool)(nil) - -// simpleBufferPool is an implementation of the BufferPool interface that -// attempts to pool buffers with a sync.Pool. When Get is invoked, it tries to -// acquire a buffer from the pool but if that buffer is too small, it returns it -// to the pool and creates a new one. -type simpleBufferPool struct { - pool sync.Pool -} - -func (p *simpleBufferPool) Get(size int) *[]byte { - bs, ok := p.pool.Get().(*[]byte) - if ok && cap(*bs) >= size { - clear((*bs)[:cap(*bs)]) - *bs = (*bs)[:size] - return bs - } - - // A buffer was pulled from the pool, but it is too small. Put it back in - // the pool and create one large enough. - if ok { - p.pool.Put(bs) - } - - // If we're going to allocate, round up to the nearest page. This way if - // requests frequently arrive with small variation we don't allocate - // repeatedly if we get unlucky and they increase over time. By default we - // only allocate here if size > 1MiB. Because goPageSize is a power of 2, we - // can round up efficiently. - allocSize := (size + goPageSize - 1) & ^(goPageSize - 1) - - b := make([]byte, size, allocSize) - return &b -} - -func (p *simpleBufferPool) Put(buf *[]byte) { - p.pool.Put(buf) -} - -var _ BufferPool = NopBufferPool{} - // NopBufferPool is a buffer pool that returns new buffers without pooling. -type NopBufferPool struct{} - -// Get returns a buffer with specified length from the pool. -func (NopBufferPool) Get(length int) *[]byte { - b := make([]byte, length) - return &b +type NopBufferPool struct { + mem.NopBufferPool } -// Put returns a buffer to the pool. -func (NopBufferPool) Put(*[]byte) { -} +var _ BufferPool = NopBufferPool{} diff --git a/vendor/google.golang.org/grpc/mem/buffer_slice.go b/vendor/google.golang.org/grpc/mem/buffer_slice.go index 084fb19c6..086e9f95d 100644 --- a/vendor/google.golang.org/grpc/mem/buffer_slice.go +++ b/vendor/google.golang.org/grpc/mem/buffer_slice.go @@ -165,7 +165,7 @@ func (r *Reader) Close() error { } func (r *Reader) freeFirstBufferIfEmpty() bool { - if len(r.data) == 0 || r.bufferIdx != len(r.data[0].ReadOnlyData()) { + if len(r.data) == 0 || r.bufferIdx != r.data[0].Len() { return false } diff --git a/vendor/google.golang.org/grpc/mem/buffers.go b/vendor/google.golang.org/grpc/mem/buffers.go index db1620e6a..2b410b16e 100644 --- a/vendor/google.golang.org/grpc/mem/buffers.go +++ b/vendor/google.golang.org/grpc/mem/buffers.go @@ -53,6 +53,10 @@ type Buffer interface { Free() // Len returns the Buffer's size. Len() int + // Slice returns a new Buffer that is a view into this buffer's data + // from [start:end). The buffer is not modified. Panics if the buffer + // has been freed or if start/end are out of bounds. + Slice(start, end int) Buffer split(n int) (left, right Buffer) read(buf []byte) (int, Buffer) @@ -180,6 +184,32 @@ func (b *buffer) Len() int { return len(b.ReadOnlyData()) } +func (b *buffer) Slice(start, end int) Buffer { + if b.rootBuf == nil { + panic("Cannot slice freed buffer") + } + + data := b.data[start:end] // access the data to check slice bounds + + if len(data) == 0 { + return emptyBuffer{} + } + if len(data) == len(b.data) { + b.Ref() + return b + } + // We are creating a new reference (view) to a portion of the root buffer's + // data. Therefore, we must increment the reference count of the root buffer + // to ensure the underlying data is not freed while this view is still in + // use. + b.rootBuf.Ref() + s := newBuffer() + s.data = data + s.rootBuf = b.rootBuf + s.refs.Store(1) + return s +} + func (b *buffer) split(n int) (Buffer, Buffer) { if b.rootBuf == nil || b.rootBuf.refs.Add(1) <= 1 { panic("Cannot split freed buffer") @@ -240,6 +270,13 @@ func (e emptyBuffer) Len() int { return 0 } +func (e emptyBuffer) Slice(start, end int) Buffer { + if start != 0 || end != 0 { + panic(fmt.Sprintf("slice bounds out of range [%d:%d] with length 0", start, end)) + } + return e +} + func (e emptyBuffer) split(int) (left, right Buffer) { return e, e } @@ -264,6 +301,9 @@ func (s SliceBuffer) Free() {} // Len is a noop implementation of Len. func (s SliceBuffer) Len() int { return len(s) } +// Slice returns a new SliceBuffer that is a view into the receiver from [start:end). +func (s SliceBuffer) Slice(start, end int) Buffer { return s[start:end] } + func (s SliceBuffer) split(n int) (left, right Buffer) { return s[:n], s[n:] } diff --git a/vendor/google.golang.org/grpc/picker_wrapper.go b/vendor/google.golang.org/grpc/picker_wrapper.go index aa52bfe95..0183ab22f 100644 --- a/vendor/google.golang.org/grpc/picker_wrapper.go +++ b/vendor/google.golang.org/grpc/picker_wrapper.go @@ -192,7 +192,9 @@ func (pw *pickerWrapper) pick(ctx context.Context, failfast bool, info balancer. // DoneInfo with default value works. pickResult.Done(balancer.DoneInfo{}) } - logger.Infof("blockingPicker: the picked transport is not ready, loop back to repick") + if logger.V(2) { + logger.Infof("blockingPicker: the picked transport is not ready, loop back to repick") + } // If ok == false, ac.state is not READY. // A valid picker always returns READY subConn. This means the state of ac // just changed, and picker will be updated shortly. diff --git a/vendor/google.golang.org/grpc/resolver/map.go b/vendor/google.golang.org/grpc/resolver/map.go index c3c15ac96..789a5abab 100644 --- a/vendor/google.golang.org/grpc/resolver/map.go +++ b/vendor/google.golang.org/grpc/resolver/map.go @@ -20,6 +20,7 @@ package resolver import ( "encoding/base64" + "iter" "sort" "strings" ) @@ -135,6 +136,7 @@ func (a *AddressMapV2[T]) Len() int { } // Keys returns a slice of all current map keys. +// Deprecated: Use AddressMapV2.All() instead. func (a *AddressMapV2[T]) Keys() []Address { ret := make([]Address, 0, a.Len()) for _, entryList := range a.m { @@ -146,6 +148,7 @@ func (a *AddressMapV2[T]) Keys() []Address { } // Values returns a slice of all current map values. +// Deprecated: Use AddressMapV2.All() instead. func (a *AddressMapV2[T]) Values() []T { ret := make([]T, 0, a.Len()) for _, entryList := range a.m { @@ -156,6 +159,19 @@ func (a *AddressMapV2[T]) Values() []T { return ret } +// All returns an iterator over all elements. +func (a *AddressMapV2[T]) All() iter.Seq2[Address, T] { + return func(yield func(Address, T) bool) { + for _, entryList := range a.m { + for _, entry := range entryList { + if !yield(entry.addr, entry.value) { + return + } + } + } + } +} + type endpointMapKey string // EndpointMap is a map of endpoints to arbitrary values keyed on only the @@ -223,6 +239,7 @@ func (em *EndpointMap[T]) Len() int { // the unordered set of addresses. Thus, endpoint information returned is not // the full endpoint data (drops duplicated addresses and attributes) but can be // used for EndpointMap accesses. +// Deprecated: Use EndpointMap.All() instead. func (em *EndpointMap[T]) Keys() []Endpoint { ret := make([]Endpoint, 0, len(em.endpoints)) for _, en := range em.endpoints { @@ -232,6 +249,7 @@ func (em *EndpointMap[T]) Keys() []Endpoint { } // Values returns a slice of all current map values. +// Deprecated: Use EndpointMap.All() instead. func (em *EndpointMap[T]) Values() []T { ret := make([]T, 0, len(em.endpoints)) for _, val := range em.endpoints { @@ -240,6 +258,22 @@ func (em *EndpointMap[T]) Values() []T { return ret } +// All returns an iterator over all elements. +// The map keys are endpoints specifying the addresses present in the endpoint +// map, in which uniqueness is determined by the unordered set of addresses. +// Thus, endpoint information returned is not the full endpoint data (drops +// duplicated addresses and attributes) but can be used for EndpointMap +// accesses. +func (em *EndpointMap[T]) All() iter.Seq2[Endpoint, T] { + return func(yield func(Endpoint, T) bool) { + for _, en := range em.endpoints { + if !yield(en.decodedKey, en.value) { + return + } + } + } +} + // Delete removes the specified endpoint from the map. func (em *EndpointMap[T]) Delete(e Endpoint) { en := encodeEndpoint(e) diff --git a/vendor/google.golang.org/grpc/rpc_util.go b/vendor/google.golang.org/grpc/rpc_util.go index 8160f9430..52f4ea513 100644 --- a/vendor/google.golang.org/grpc/rpc_util.go +++ b/vendor/google.golang.org/grpc/rpc_util.go @@ -128,6 +128,16 @@ func NewGZIPDecompressor() Decompressor { } func (d *gzipDecompressor) Do(r io.Reader) ([]byte, error) { + return d.doWithMaxSize(r, math.MaxInt64) +} + +// doWithMaxSize behaves like Do but caps the size of the decompressed +// payload at maxMessageSize+1 bytes. The Decompressor interface does not +// allow extra parameters, so callers inside the package type-assert to +// *gzipDecompressor to invoke this method directly. The +1 byte makes it +// possible for the caller to detect that the limit was exceeded and +// return ResourceExhausted instead of materializing an unbounded payload. +func (d *gzipDecompressor) doWithMaxSize(r io.Reader, maxMessageSize int64) ([]byte, error) { var z *gzip.Reader switch maybeZ := d.pool.Get().(type) { case nil: @@ -148,7 +158,11 @@ func (d *gzipDecompressor) Do(r io.Reader) ([]byte, error) { z.Close() d.pool.Put(z) }() - return io.ReadAll(z) + var src io.Reader = z + if maxMessageSize < math.MaxInt64 { + src = io.LimitReader(z, maxMessageSize+1) + } + return io.ReadAll(src) } func (d *gzipDecompressor) Type() string { @@ -830,15 +844,15 @@ func compress(in mem.BufferSlice, cp Compressor, compressor encoding.Compressor, if compressor != nil { z, err := compressor.Compress(w) if err != nil { - return nil, 0, wrapErr(err) + return nil, compressionNone, wrapErr(err) } for _, b := range in { if _, err := z.Write(b.ReadOnlyData()); err != nil { - return nil, 0, wrapErr(err) + return nil, compressionNone, wrapErr(err) } } if err := z.Close(); err != nil { - return nil, 0, wrapErr(err) + return nil, compressionNone, wrapErr(err) } } else { // This is obviously really inefficient since it fully materializes the data, but @@ -848,7 +862,7 @@ func compress(in mem.BufferSlice, cp Compressor, compressor encoding.Compressor, buf := in.MaterializeToBuffer(pool) defer buf.Free() if err := cp.Do(w, buf.ReadOnlyData()); err != nil { - return nil, 0, wrapErr(err) + return nil, compressionNone, wrapErr(err) } } return out, compressionMade, nil @@ -961,26 +975,50 @@ func recvAndDecompress(p *parser, s recvCompressor, dc Decompressor, maxReceiveM return out, nil } -// decompress processes the given data by decompressing it using either a custom decompressor or a standard compressor. -// If a custom decompressor is provided, it takes precedence. The function validates that the decompressed data -// does not exceed the specified maximum size and returns an error if this limit is exceeded. -// On success, it returns the decompressed data. Otherwise, it returns an error if decompression fails or the data exceeds the size limit. +// decompress processes the given data by decompressing it using either +// a custom decompressor or a standard compressor. If a custom decompressor +// is provided, it takes precedence. The function validates that +// the decompressed data does not exceed the specified maximum size and returns +// an error if this limit is exceeded. On success, it returns the decompressed +// data. Otherwise, it returns an error if decompression fails or the data +// exceeds the size limit. func decompress(compressor encoding.Compressor, d mem.BufferSlice, dc Decompressor, maxReceiveMessageSize int, pool mem.BufferPool) (mem.BufferSlice, error) { if dc != nil { - uncompressed, err := dc.Do(d.Reader()) + r := d.Reader() + // For the built-in gzip decompressor, bound the decompressed output + // at maxReceiveMessageSize+1 so that a small but highly compressed + // payload (a "zip bomb") cannot expand to gigabytes in memory before + // the post-decompression size check below has a chance to fire. The + // Decompressor interface does not accept an extra size parameter, + // so we type-assert to invoke a size-aware helper. Third-party + // Decompressor implementations keep the original Do behavior. + var uncompressed []byte + var err error + if gd, ok := dc.(*gzipDecompressor); ok { + uncompressed, err = gd.doWithMaxSize(r, int64(maxReceiveMessageSize)) + } else { + uncompressed, err = dc.Do(r) + } if err != nil { + r.Close() // ensure buffers are reused return nil, status.Errorf(codes.Internal, "grpc: failed to decompress the received message: %v", err) } if len(uncompressed) > maxReceiveMessageSize { + r.Close() // ensure buffers are reused return nil, status.Errorf(codes.ResourceExhausted, "grpc: message after decompression larger than max (%d vs. %d)", len(uncompressed), maxReceiveMessageSize) } return mem.BufferSlice{mem.SliceBuffer(uncompressed)}, nil } if compressor != nil { - dcReader, err := compressor.Decompress(d.Reader()) + r := d.Reader() + dcReader, err := compressor.Decompress(r) if err != nil { + r.Close() // ensure buffers are reused return nil, status.Errorf(codes.Internal, "grpc: failed to decompress the message: %v", err) } + if closer, ok := dcReader.(io.Closer); ok { + defer closer.Close() + } // Read at most one byte more than the limit from the decompressor. // Unless the limit is MaxInt64, in which case, that's impossible, so @@ -990,11 +1028,13 @@ func decompress(compressor encoding.Compressor, d mem.BufferSlice, dc Decompress } out, err := mem.ReadAll(dcReader, pool) if err != nil { + r.Close() // ensure buffers are reused out.Free() return nil, status.Errorf(codes.Internal, "grpc: failed to read decompressed data: %v", err) } if out.Len() > maxReceiveMessageSize { + r.Close() // ensure buffers are reused out.Free() return nil, status.Errorf(codes.ResourceExhausted, "grpc: received message after decompression larger than max %d", maxReceiveMessageSize) } diff --git a/vendor/google.golang.org/grpc/server.go b/vendor/google.golang.org/grpc/server.go index 8efb29a7b..cf0a20671 100644 --- a/vendor/google.golang.org/grpc/server.go +++ b/vendor/google.golang.org/grpc/server.go @@ -28,6 +28,7 @@ import ( "net/http" "reflect" "runtime" + "runtime/pprof" "strings" "sync" "sync/atomic" @@ -150,8 +151,6 @@ type Server struct { serverWorkerChannel chan func() serverWorkerChannelClose func() - - strictPathCheckingLogEmitted atomic.Bool } type serverOptions struct { @@ -192,6 +191,7 @@ var defaultServerOptions = serverOptions{ maxSendMessageSize: defaultServerMaxSendMessageSize, connectionTimeout: 120 * time.Second, writeBufferSize: defaultWriteBufSize, + sharedWriteBuffer: true, readBufferSize: defaultReadBufSize, bufferPool: mem.DefaultBufferPool(), } @@ -249,10 +249,8 @@ func newJoinServerOption(opts ...ServerOption) ServerOption { // If this option is set to true every connection will release the buffer after // flushing the data on the wire. // -// # Experimental -// -// Notice: This API is EXPERIMENTAL and may be changed or removed in a -// later release. +// Deprecated: shared write buffer is enabled by default. SharedWriteBuffer +// will be removed in a future release. func SharedWriteBuffer(val bool) ServerOption { return newFuncServerOption(func(o *serverOptions) { o.sharedWriteBuffer = val @@ -301,6 +299,14 @@ func InitialConnWindowSize(s int32) ServerOption { // window size to the value provided and disables dynamic flow control. // The lower bound for window size is 64K and any value smaller than that // will be ignored. +// +// Note that this also disables dynamic flow control for the connection, +// falling back to a default static connection-level window of 64KB. To +// use a larger connection-level window, you must also use the +// [StaticConnWindowSize] ServerOption. +// +// Most users should not configure static flow control windows unless +// operating in a memory-constrained environment. func StaticStreamWindowSize(s int32) ServerOption { return newFuncServerOption(func(o *serverOptions) { o.initialWindowSize = s @@ -312,6 +318,14 @@ func StaticStreamWindowSize(s int32) ServerOption { // window size to the value provided and disables dynamic flow control. // The lower bound for window size is 64K and any value smaller than that // will be ignored. +// +// Note that this also disables dynamic flow control for individual streams, +// falling back to a default static connection-level window of 64KB. To +// explicitly configure the stream-level window size, you must also use the +// [StaticStreamWindowSize] ServerOption. +// +// Most users should not configure static flow control windows unless +// operating in a memory-constrained environment. func StaticConnWindowSize(s int32) ServerOption { return newFuncServerOption(func(o *serverOptions) { o.initialConnWindowSize = s @@ -1786,6 +1800,12 @@ func (s *Server) handleMalformedMethodName(stream *transport.ServerStream, ti *t func (s *Server) handleStream(t transport.ServerTransport, stream *transport.ServerStream) { ctx := stream.Context() ctx = contextWithServer(ctx, s) + if envconfig.LabelServerGoroutines&envconfig.GoroutineLabelServerMethod != 0 { + // This method always runs in its own goroutine, so we can set a + // goroutine label without needing to restore a previous context. + ctx = pprof.WithLabels(ctx, pprof.Labels("grpc.method", stream.Method())) + pprof.SetGoroutineLabels(ctx) + } var ti *traceInfo if EnableTracing { tr := newTrace("grpc.Recv."+methodFamily(stream.Method()), stream.Method()) @@ -1802,28 +1822,11 @@ func (s *Server) handleStream(t transport.ServerTransport, stream *transport.Ser } } - sm := stream.Method() - if sm == "" { + sm, found := strings.CutPrefix(stream.Method(), "/") + if !found { s.handleMalformedMethodName(stream, ti) return } - if sm[0] != '/' { - // TODO(easwars): Add a link to the CVE in the below log messages once - // published. - if envconfig.DisableStrictPathChecking { - if old := s.strictPathCheckingLogEmitted.Swap(true); !old { - channelz.Warningf(logger, s.channelz, "grpc: Server.handleStream received malformed method name %q. Allowing it because the environment variable GRPC_GO_EXPERIMENTAL_DISABLE_STRICT_PATH_CHECKING is set to true, but this option will be removed in a future release.", sm) - } - } else { - if old := s.strictPathCheckingLogEmitted.Swap(true); !old { - channelz.Warningf(logger, s.channelz, "grpc: Server.handleStream rejected malformed method name %q. To temporarily allow such requests, set the environment variable GRPC_GO_EXPERIMENTAL_DISABLE_STRICT_PATH_CHECKING to true. Note that this is not recommended as it may allow requests to bypass security policies.", sm) - } - s.handleMalformedMethodName(stream, ti) - return - } - } else { - sm = sm[1:] - } pos := strings.LastIndex(sm, "/") if pos == -1 { s.handleMalformedMethodName(stream, ti) diff --git a/vendor/google.golang.org/grpc/stream.go b/vendor/google.golang.org/grpc/stream.go index eedb5f9b9..4aac644a8 100644 --- a/vendor/google.golang.org/grpc/stream.go +++ b/vendor/google.golang.org/grpc/stream.go @@ -21,6 +21,7 @@ package grpc import ( "context" "errors" + "fmt" "io" "math" rand "math/rand/v2" @@ -749,7 +750,7 @@ func (a *csAttempt) shouldRetry(err error) (bool, error) { return false, err } if cs.numRetries+1 >= rp.MaxAttempts { - return false, err + return false, fmt.Errorf("max retries exhausted: failed after %d attempts: %w", cs.numRetries+1, err) } var dur time.Duration diff --git a/vendor/google.golang.org/grpc/version.go b/vendor/google.golang.org/grpc/version.go index 76c2eed77..53c737fee 100644 --- a/vendor/google.golang.org/grpc/version.go +++ b/vendor/google.golang.org/grpc/version.go @@ -19,4 +19,4 @@ package grpc // Version is the current grpc version. -const Version = "1.79.3" +const Version = "1.82.1" diff --git a/vendor/google.golang.org/protobuf/internal/editionssupport/editions.go b/vendor/google.golang.org/protobuf/internal/editionssupport/editions.go deleted file mode 100644 index 7b9f01afb..000000000 --- a/vendor/google.golang.org/protobuf/internal/editionssupport/editions.go +++ /dev/null @@ -1,18 +0,0 @@ -// Copyright 2024 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// Package editionssupport defines constants for editions that are supported. -package editionssupport - -import "google.golang.org/protobuf/types/descriptorpb" - -const ( - Minimum = descriptorpb.Edition_EDITION_PROTO2 - Maximum = descriptorpb.Edition_EDITION_2024 - - // MaximumKnown is the maximum edition that is known to Go Protobuf, but not - // declared as supported. In other words: end users cannot use it, but - // testprotos inside Go Protobuf can. - MaximumKnown = descriptorpb.Edition_EDITION_2024 -) diff --git a/vendor/google.golang.org/protobuf/reflect/protodesc/desc.go b/vendor/google.golang.org/protobuf/reflect/protodesc/desc.go deleted file mode 100644 index 40f17af4e..000000000 --- a/vendor/google.golang.org/protobuf/reflect/protodesc/desc.go +++ /dev/null @@ -1,313 +0,0 @@ -// Copyright 2018 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// Package protodesc provides functionality for converting -// FileDescriptorProto messages to/from [protoreflect.FileDescriptor] values. -// -// The google.protobuf.FileDescriptorProto is a protobuf message that describes -// the type information for a .proto file in a form that is easily serializable. -// The [protoreflect.FileDescriptor] is a more structured representation of -// the FileDescriptorProto message where references and remote dependencies -// can be directly followed. -package protodesc - -import ( - "strings" - - "google.golang.org/protobuf/internal/editionssupport" - "google.golang.org/protobuf/internal/errors" - "google.golang.org/protobuf/internal/filedesc" - "google.golang.org/protobuf/internal/pragma" - "google.golang.org/protobuf/internal/strs" - "google.golang.org/protobuf/proto" - "google.golang.org/protobuf/reflect/protoreflect" - "google.golang.org/protobuf/reflect/protoregistry" - - "google.golang.org/protobuf/types/descriptorpb" -) - -// Resolver is the resolver used by [NewFile] to resolve dependencies. -// The enums and messages provided must belong to some parent file, -// which is also registered. -// -// It is implemented by [protoregistry.Files]. -type Resolver interface { - FindFileByPath(string) (protoreflect.FileDescriptor, error) - FindDescriptorByName(protoreflect.FullName) (protoreflect.Descriptor, error) -} - -// FileOptions configures the construction of file descriptors. -type FileOptions struct { - pragma.NoUnkeyedLiterals - - // AllowUnresolvable configures New to permissively allow unresolvable - // file, enum, or message dependencies. Unresolved dependencies are replaced - // by placeholder equivalents. - // - // The following dependencies may be left unresolved: - // • Resolving an imported file. - // • Resolving the type for a message field or extension field. - // If the kind of the field is unknown, then a placeholder is used for both - // the Enum and Message accessors on the protoreflect.FieldDescriptor. - // • Resolving an enum value set as the default for an optional enum field. - // If unresolvable, the protoreflect.FieldDescriptor.Default is set to the - // first value in the associated enum (or zero if the also enum dependency - // is also unresolvable). The protoreflect.FieldDescriptor.DefaultEnumValue - // is populated with a placeholder. - // • Resolving the extended message type for an extension field. - // • Resolving the input or output message type for a service method. - // - // If the unresolved dependency uses a relative name, - // then the placeholder will contain an invalid FullName with a "*." prefix, - // indicating that the starting prefix of the full name is unknown. - AllowUnresolvable bool -} - -// NewFile creates a new [protoreflect.FileDescriptor] from the provided -// file descriptor message. See [FileOptions.New] for more information. -func NewFile(fd *descriptorpb.FileDescriptorProto, r Resolver) (protoreflect.FileDescriptor, error) { - return FileOptions{}.New(fd, r) -} - -// NewFiles creates a new [protoregistry.Files] from the provided -// FileDescriptorSet message. See [FileOptions.NewFiles] for more information. -func NewFiles(fd *descriptorpb.FileDescriptorSet) (*protoregistry.Files, error) { - return FileOptions{}.NewFiles(fd) -} - -// New creates a new [protoreflect.FileDescriptor] from the provided -// file descriptor message. The file must represent a valid proto file according -// to protobuf semantics. The returned descriptor is a deep copy of the input. -// -// Any imported files, enum types, or message types referenced in the file are -// resolved using the provided registry. When looking up an import file path, -// the path must be unique. The newly created file descriptor is not registered -// back into the provided file registry. -func (o FileOptions) New(fd *descriptorpb.FileDescriptorProto, r Resolver) (protoreflect.FileDescriptor, error) { - if r == nil { - r = (*protoregistry.Files)(nil) // empty resolver - } - - // Handle the file descriptor content. - f := &filedesc.File{L2: &filedesc.FileL2{}} - switch fd.GetSyntax() { - case "proto2", "": - f.L1.Syntax = protoreflect.Proto2 - f.L1.Edition = filedesc.EditionProto2 - case "proto3": - f.L1.Syntax = protoreflect.Proto3 - f.L1.Edition = filedesc.EditionProto3 - case "editions": - f.L1.Syntax = protoreflect.Editions - f.L1.Edition = fromEditionProto(fd.GetEdition()) - default: - return nil, errors.New("invalid syntax: %q", fd.GetSyntax()) - } - f.L1.Path = fd.GetName() - if f.L1.Path == "" { - return nil, errors.New("file path must be populated") - } - if f.L1.Syntax == protoreflect.Editions && - (fd.GetEdition() < editionssupport.Minimum || fd.GetEdition() > editionssupport.Maximum) && - fd.GetEdition() != descriptorpb.Edition_EDITION_UNSTABLE { - // Allow cmd/protoc-gen-go/testdata to use any edition for easier - // testing of upcoming edition features. - if !strings.HasPrefix(fd.GetName(), "cmd/protoc-gen-go/testdata/") { - return nil, errors.New("use of edition %v not yet supported by the Go Protobuf runtime", fd.GetEdition()) - } - } - f.L1.Package = protoreflect.FullName(fd.GetPackage()) - if !f.L1.Package.IsValid() && f.L1.Package != "" { - return nil, errors.New("invalid package: %q", f.L1.Package) - } - if opts := fd.GetOptions(); opts != nil { - opts = proto.Clone(opts).(*descriptorpb.FileOptions) - f.L2.Options = func() protoreflect.ProtoMessage { return opts } - } - initFileDescFromFeatureSet(f, fd.GetOptions().GetFeatures()) - - f.L2.Imports = make(filedesc.FileImports, len(fd.GetDependency())) - for _, i := range fd.GetPublicDependency() { - if !(0 <= i && int(i) < len(f.L2.Imports)) || f.L2.Imports[i].IsPublic { - return nil, errors.New("invalid or duplicate public import index: %d", i) - } - f.L2.Imports[i].IsPublic = true - } - imps := importSet{f.Path(): true} - for i, path := range fd.GetDependency() { - imp := &f.L2.Imports[i] - f, err := r.FindFileByPath(path) - if err == protoregistry.NotFound && o.AllowUnresolvable { - f = filedesc.PlaceholderFile(path) - } else if err != nil { - return nil, errors.New("could not resolve import %q: %v", path, err) - } - imp.FileDescriptor = f - - if imps[imp.Path()] { - return nil, errors.New("already imported %q", path) - } - imps[imp.Path()] = true - } - for i := range fd.GetDependency() { - imp := &f.L2.Imports[i] - imps.importPublic(imp.Imports()) - } - optionImps := importSet{f.Path(): true} - if len(fd.GetOptionDependency()) > 0 { - optionImports := make(filedesc.FileImports, len(fd.GetOptionDependency())) - for i, path := range fd.GetOptionDependency() { - imp := &optionImports[i] - f, err := r.FindFileByPath(path) - if err == protoregistry.NotFound { - // We always allow option imports to be unresolvable. - f = filedesc.PlaceholderFile(path) - } else if err != nil { - return nil, errors.New("could not resolve import %q: %v", path, err) - } - imp.FileDescriptor = f - - if imps[imp.Path()] || optionImps[imp.Path()] { - return nil, errors.New("already imported %q", path) - } - // This needs to be a separate map so that we don't recognize non-options - // symbols coming from option imports. - optionImps[imp.Path()] = true - } - f.L2.OptionImports = func() protoreflect.FileImports { - return &optionImports - } - } - - // Handle source locations. - f.L2.Locations.File = f - for _, loc := range fd.GetSourceCodeInfo().GetLocation() { - var l protoreflect.SourceLocation - // TODO: Validate that the path points to an actual declaration? - l.Path = protoreflect.SourcePath(loc.GetPath()) - s := loc.GetSpan() - switch len(s) { - case 3: - l.StartLine, l.StartColumn, l.EndLine, l.EndColumn = int(s[0]), int(s[1]), int(s[0]), int(s[2]) - case 4: - l.StartLine, l.StartColumn, l.EndLine, l.EndColumn = int(s[0]), int(s[1]), int(s[2]), int(s[3]) - default: - return nil, errors.New("invalid span: %v", s) - } - // TODO: Validate that the span information is sensible? - // See https://github.com/protocolbuffers/protobuf/issues/6378. - if false && (l.EndLine < l.StartLine || l.StartLine < 0 || l.StartColumn < 0 || l.EndColumn < 0 || - (l.StartLine == l.EndLine && l.EndColumn <= l.StartColumn)) { - return nil, errors.New("invalid span: %v", s) - } - l.LeadingDetachedComments = loc.GetLeadingDetachedComments() - l.LeadingComments = loc.GetLeadingComments() - l.TrailingComments = loc.GetTrailingComments() - f.L2.Locations.List = append(f.L2.Locations.List, l) - } - - // Step 1: Allocate and derive the names for all declarations. - // This copies all fields from the descriptor proto except: - // google.protobuf.FieldDescriptorProto.type_name - // google.protobuf.FieldDescriptorProto.default_value - // google.protobuf.FieldDescriptorProto.oneof_index - // google.protobuf.FieldDescriptorProto.extendee - // google.protobuf.MethodDescriptorProto.input - // google.protobuf.MethodDescriptorProto.output - var err error - sb := new(strs.Builder) - r1 := make(descsByName) - if f.L1.Enums.List, err = r1.initEnumDeclarations(fd.GetEnumType(), f, sb); err != nil { - return nil, err - } - if f.L1.Messages.List, err = r1.initMessagesDeclarations(fd.GetMessageType(), f, sb); err != nil { - return nil, err - } - if f.L1.Extensions.List, err = r1.initExtensionDeclarations(fd.GetExtension(), f, sb); err != nil { - return nil, err - } - if f.L1.Services.List, err = r1.initServiceDeclarations(fd.GetService(), f, sb); err != nil { - return nil, err - } - - // Step 2: Resolve every dependency reference not handled by step 1. - r2 := &resolver{local: r1, remote: r, imports: imps, allowUnresolvable: o.AllowUnresolvable} - if err := r2.resolveMessageDependencies(f.L1.Messages.List, fd.GetMessageType()); err != nil { - return nil, err - } - if err := r2.resolveExtensionDependencies(f.L1.Extensions.List, fd.GetExtension()); err != nil { - return nil, err - } - if err := r2.resolveServiceDependencies(f.L1.Services.List, fd.GetService()); err != nil { - return nil, err - } - - // Step 3: Validate every enum, message, and extension declaration. - if err := validateEnumDeclarations(f.L1.Enums.List, fd.GetEnumType()); err != nil { - return nil, err - } - if err := validateMessageDeclarations(f, f.L1.Messages.List, fd.GetMessageType()); err != nil { - return nil, err - } - if err := validateExtensionDeclarations(f, f.L1.Extensions.List, fd.GetExtension()); err != nil { - return nil, err - } - - return f, nil -} - -type importSet map[string]bool - -func (is importSet) importPublic(imps protoreflect.FileImports) { - for i := 0; i < imps.Len(); i++ { - if imp := imps.Get(i); imp.IsPublic { - is[imp.Path()] = true - is.importPublic(imp.Imports()) - } - } -} - -// NewFiles creates a new [protoregistry.Files] from the provided -// FileDescriptorSet message. The descriptor set must include only -// valid files according to protobuf semantics. The returned descriptors -// are a deep copy of the input. -func (o FileOptions) NewFiles(fds *descriptorpb.FileDescriptorSet) (*protoregistry.Files, error) { - files := make(map[string]*descriptorpb.FileDescriptorProto) - for _, fd := range fds.File { - if _, ok := files[fd.GetName()]; ok { - return nil, errors.New("file appears multiple times: %q", fd.GetName()) - } - files[fd.GetName()] = fd - } - r := &protoregistry.Files{} - for _, fd := range files { - if err := o.addFileDeps(r, fd, files); err != nil { - return nil, err - } - } - return r, nil -} -func (o FileOptions) addFileDeps(r *protoregistry.Files, fd *descriptorpb.FileDescriptorProto, files map[string]*descriptorpb.FileDescriptorProto) error { - // Set the entry to nil while descending into a file's dependencies to detect cycles. - files[fd.GetName()] = nil - for _, dep := range fd.Dependency { - depfd, ok := files[dep] - if depfd == nil { - if ok { - return errors.New("import cycle in file: %q", dep) - } - continue - } - if err := o.addFileDeps(r, depfd, files); err != nil { - return err - } - } - // Delete the entry once dependencies are processed. - delete(files, fd.GetName()) - f, err := o.New(fd, r) - if err != nil { - return err - } - return r.RegisterFile(f) -} diff --git a/vendor/google.golang.org/protobuf/reflect/protodesc/desc_init.go b/vendor/google.golang.org/protobuf/reflect/protodesc/desc_init.go deleted file mode 100644 index 84a3228ed..000000000 --- a/vendor/google.golang.org/protobuf/reflect/protodesc/desc_init.go +++ /dev/null @@ -1,291 +0,0 @@ -// Copyright 2019 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package protodesc - -import ( - "google.golang.org/protobuf/internal/errors" - "google.golang.org/protobuf/internal/filedesc" - "google.golang.org/protobuf/internal/strs" - "google.golang.org/protobuf/proto" - "google.golang.org/protobuf/reflect/protoreflect" - - "google.golang.org/protobuf/types/descriptorpb" -) - -type descsByName map[protoreflect.FullName]protoreflect.Descriptor - -func (r descsByName) initEnumDeclarations(eds []*descriptorpb.EnumDescriptorProto, parent protoreflect.Descriptor, sb *strs.Builder) (es []filedesc.Enum, err error) { - es = make([]filedesc.Enum, len(eds)) // allocate up-front to ensure stable pointers - for i, ed := range eds { - e := &es[i] - e.L2 = new(filedesc.EnumL2) - if e.L0, err = r.makeBase(e, parent, ed.GetName(), i, sb); err != nil { - return nil, err - } - if opts := ed.GetOptions(); opts != nil { - opts = proto.Clone(opts).(*descriptorpb.EnumOptions) - e.L2.Options = func() protoreflect.ProtoMessage { return opts } - } - e.L1.EditionFeatures = mergeEditionFeatures(parent, ed.GetOptions().GetFeatures()) - e.L1.Visibility = int32(ed.GetVisibility()) - for _, s := range ed.GetReservedName() { - e.L2.ReservedNames.List = append(e.L2.ReservedNames.List, protoreflect.Name(s)) - } - for _, rr := range ed.GetReservedRange() { - e.L2.ReservedRanges.List = append(e.L2.ReservedRanges.List, [2]protoreflect.EnumNumber{ - protoreflect.EnumNumber(rr.GetStart()), - protoreflect.EnumNumber(rr.GetEnd()), - }) - } - if e.L2.Values.List, err = r.initEnumValuesFromDescriptorProto(ed.GetValue(), e, sb); err != nil { - return nil, err - } - } - return es, nil -} - -func (r descsByName) initEnumValuesFromDescriptorProto(vds []*descriptorpb.EnumValueDescriptorProto, parent protoreflect.Descriptor, sb *strs.Builder) (vs []filedesc.EnumValue, err error) { - vs = make([]filedesc.EnumValue, len(vds)) // allocate up-front to ensure stable pointers - for i, vd := range vds { - v := &vs[i] - if v.L0, err = r.makeBase(v, parent, vd.GetName(), i, sb); err != nil { - return nil, err - } - if opts := vd.GetOptions(); opts != nil { - opts = proto.Clone(opts).(*descriptorpb.EnumValueOptions) - v.L1.Options = func() protoreflect.ProtoMessage { return opts } - } - v.L1.Number = protoreflect.EnumNumber(vd.GetNumber()) - } - return vs, nil -} - -func (r descsByName) initMessagesDeclarations(mds []*descriptorpb.DescriptorProto, parent protoreflect.Descriptor, sb *strs.Builder) (ms []filedesc.Message, err error) { - ms = make([]filedesc.Message, len(mds)) // allocate up-front to ensure stable pointers - for i, md := range mds { - m := &ms[i] - m.L2 = new(filedesc.MessageL2) - if m.L0, err = r.makeBase(m, parent, md.GetName(), i, sb); err != nil { - return nil, err - } - m.L1.EditionFeatures = mergeEditionFeatures(parent, md.GetOptions().GetFeatures()) - m.L1.Visibility = int32(md.GetVisibility()) - if opts := md.GetOptions(); opts != nil { - opts = proto.Clone(opts).(*descriptorpb.MessageOptions) - m.L2.Options = func() protoreflect.ProtoMessage { return opts } - m.L1.IsMapEntry = opts.GetMapEntry() - m.L1.IsMessageSet = opts.GetMessageSetWireFormat() - } - for _, s := range md.GetReservedName() { - m.L2.ReservedNames.List = append(m.L2.ReservedNames.List, protoreflect.Name(s)) - } - for _, rr := range md.GetReservedRange() { - m.L2.ReservedRanges.List = append(m.L2.ReservedRanges.List, [2]protoreflect.FieldNumber{ - protoreflect.FieldNumber(rr.GetStart()), - protoreflect.FieldNumber(rr.GetEnd()), - }) - } - for _, xr := range md.GetExtensionRange() { - m.L2.ExtensionRanges.List = append(m.L2.ExtensionRanges.List, [2]protoreflect.FieldNumber{ - protoreflect.FieldNumber(xr.GetStart()), - protoreflect.FieldNumber(xr.GetEnd()), - }) - var optsFunc func() protoreflect.ProtoMessage - if opts := xr.GetOptions(); opts != nil { - opts = proto.Clone(opts).(*descriptorpb.ExtensionRangeOptions) - optsFunc = func() protoreflect.ProtoMessage { return opts } - } - m.L2.ExtensionRangeOptions = append(m.L2.ExtensionRangeOptions, optsFunc) - } - if m.L2.Fields.List, err = r.initFieldsFromDescriptorProto(md.GetField(), m, sb); err != nil { - return nil, err - } - if m.L2.Oneofs.List, err = r.initOneofsFromDescriptorProto(md.GetOneofDecl(), m, sb); err != nil { - return nil, err - } - if m.L1.Enums.List, err = r.initEnumDeclarations(md.GetEnumType(), m, sb); err != nil { - return nil, err - } - if m.L1.Messages.List, err = r.initMessagesDeclarations(md.GetNestedType(), m, sb); err != nil { - return nil, err - } - if m.L1.Extensions.List, err = r.initExtensionDeclarations(md.GetExtension(), m, sb); err != nil { - return nil, err - } - } - return ms, nil -} - -// canBePacked returns whether the field can use packed encoding: -// https://protobuf.dev/programming-guides/encoding/#packed -func canBePacked(fd *descriptorpb.FieldDescriptorProto) bool { - if fd.GetLabel() != descriptorpb.FieldDescriptorProto_LABEL_REPEATED { - return false // not a repeated field - } - - switch protoreflect.Kind(fd.GetType()) { - case protoreflect.MessageKind, protoreflect.GroupKind: - return false // not a scalar type field - - case protoreflect.StringKind, protoreflect.BytesKind: - // string and bytes can explicitly not be declared as packed, - // see https://protobuf.dev/programming-guides/encoding/#packed - return false - - default: - return true - } -} - -func (r descsByName) initFieldsFromDescriptorProto(fds []*descriptorpb.FieldDescriptorProto, parent protoreflect.Descriptor, sb *strs.Builder) (fs []filedesc.Field, err error) { - fs = make([]filedesc.Field, len(fds)) // allocate up-front to ensure stable pointers - for i, fd := range fds { - f := &fs[i] - if f.L0, err = r.makeBase(f, parent, fd.GetName(), i, sb); err != nil { - return nil, err - } - f.L1.EditionFeatures = mergeEditionFeatures(parent, fd.GetOptions().GetFeatures()) - f.L1.IsProto3Optional = fd.GetProto3Optional() - if opts := fd.GetOptions(); opts != nil { - opts = proto.Clone(opts).(*descriptorpb.FieldOptions) - f.L1.Options = func() protoreflect.ProtoMessage { return opts } - f.L1.IsLazy = opts.GetLazy() - if opts.Packed != nil { - f.L1.EditionFeatures.IsPacked = opts.GetPacked() - } - } - f.L1.Number = protoreflect.FieldNumber(fd.GetNumber()) - f.L1.Cardinality = protoreflect.Cardinality(fd.GetLabel()) - if fd.Type != nil { - f.L1.Kind = protoreflect.Kind(fd.GetType()) - } - if fd.JsonName != nil { - f.L1.StringName.InitJSON(fd.GetJsonName()) - } - - if f.L1.EditionFeatures.IsLegacyRequired { - f.L1.Cardinality = protoreflect.Required - } - - if f.L1.Kind == protoreflect.MessageKind && f.L1.EditionFeatures.IsDelimitedEncoded { - f.L1.Kind = protoreflect.GroupKind - } - } - return fs, nil -} - -func (r descsByName) initOneofsFromDescriptorProto(ods []*descriptorpb.OneofDescriptorProto, parent protoreflect.Descriptor, sb *strs.Builder) (os []filedesc.Oneof, err error) { - os = make([]filedesc.Oneof, len(ods)) // allocate up-front to ensure stable pointers - for i, od := range ods { - o := &os[i] - if o.L0, err = r.makeBase(o, parent, od.GetName(), i, sb); err != nil { - return nil, err - } - o.L1.EditionFeatures = mergeEditionFeatures(parent, od.GetOptions().GetFeatures()) - if opts := od.GetOptions(); opts != nil { - opts = proto.Clone(opts).(*descriptorpb.OneofOptions) - o.L1.Options = func() protoreflect.ProtoMessage { return opts } - } - } - return os, nil -} - -func (r descsByName) initExtensionDeclarations(xds []*descriptorpb.FieldDescriptorProto, parent protoreflect.Descriptor, sb *strs.Builder) (xs []filedesc.Extension, err error) { - xs = make([]filedesc.Extension, len(xds)) // allocate up-front to ensure stable pointers - for i, xd := range xds { - x := &xs[i] - x.L2 = new(filedesc.ExtensionL2) - if x.L0, err = r.makeBase(x, parent, xd.GetName(), i, sb); err != nil { - return nil, err - } - x.L1.EditionFeatures = mergeEditionFeatures(parent, xd.GetOptions().GetFeatures()) - x.L2.IsProto3Optional = xd.GetProto3Optional() - if opts := xd.GetOptions(); opts != nil { - opts = proto.Clone(opts).(*descriptorpb.FieldOptions) - x.L2.Options = func() protoreflect.ProtoMessage { return opts } - if opts.Packed != nil { - x.L1.EditionFeatures.IsPacked = opts.GetPacked() - } - } - x.L1.Number = protoreflect.FieldNumber(xd.GetNumber()) - x.L1.Cardinality = protoreflect.Cardinality(xd.GetLabel()) - if xd.Type != nil { - x.L1.Kind = protoreflect.Kind(xd.GetType()) - } - if xd.JsonName != nil { - x.L2.StringName.InitJSON(xd.GetJsonName()) - } - if x.L1.Kind == protoreflect.MessageKind && x.L1.EditionFeatures.IsDelimitedEncoded { - x.L1.Kind = protoreflect.GroupKind - } - } - return xs, nil -} - -func (r descsByName) initServiceDeclarations(sds []*descriptorpb.ServiceDescriptorProto, parent protoreflect.Descriptor, sb *strs.Builder) (ss []filedesc.Service, err error) { - ss = make([]filedesc.Service, len(sds)) // allocate up-front to ensure stable pointers - for i, sd := range sds { - s := &ss[i] - s.L2 = new(filedesc.ServiceL2) - if s.L0, err = r.makeBase(s, parent, sd.GetName(), i, sb); err != nil { - return nil, err - } - if opts := sd.GetOptions(); opts != nil { - opts = proto.Clone(opts).(*descriptorpb.ServiceOptions) - s.L2.Options = func() protoreflect.ProtoMessage { return opts } - } - if s.L2.Methods.List, err = r.initMethodsFromDescriptorProto(sd.GetMethod(), s, sb); err != nil { - return nil, err - } - } - return ss, nil -} - -func (r descsByName) initMethodsFromDescriptorProto(mds []*descriptorpb.MethodDescriptorProto, parent protoreflect.Descriptor, sb *strs.Builder) (ms []filedesc.Method, err error) { - ms = make([]filedesc.Method, len(mds)) // allocate up-front to ensure stable pointers - for i, md := range mds { - m := &ms[i] - if m.L0, err = r.makeBase(m, parent, md.GetName(), i, sb); err != nil { - return nil, err - } - if opts := md.GetOptions(); opts != nil { - opts = proto.Clone(opts).(*descriptorpb.MethodOptions) - m.L1.Options = func() protoreflect.ProtoMessage { return opts } - } - m.L1.IsStreamingClient = md.GetClientStreaming() - m.L1.IsStreamingServer = md.GetServerStreaming() - } - return ms, nil -} - -func (r descsByName) makeBase(child, parent protoreflect.Descriptor, name string, idx int, sb *strs.Builder) (filedesc.BaseL0, error) { - if !protoreflect.Name(name).IsValid() { - return filedesc.BaseL0{}, errors.New("descriptor %q has an invalid nested name: %q", parent.FullName(), name) - } - - // Derive the full name of the child. - // Note that enum values are a sibling to the enum parent in the namespace. - var fullName protoreflect.FullName - if _, ok := parent.(protoreflect.EnumDescriptor); ok { - fullName = sb.AppendFullName(parent.FullName().Parent(), protoreflect.Name(name)) - } else { - fullName = sb.AppendFullName(parent.FullName(), protoreflect.Name(name)) - } - if _, ok := r[fullName]; ok { - return filedesc.BaseL0{}, errors.New("descriptor %q already declared", fullName) - } - r[fullName] = child - - // TODO: Verify that the full name does not already exist in the resolver? - // This is not as critical since most usages of NewFile will register - // the created file back into the registry, which will perform this check. - - return filedesc.BaseL0{ - FullName: fullName, - ParentFile: parent.ParentFile().(*filedesc.File), - Parent: parent, - Index: idx, - }, nil -} diff --git a/vendor/google.golang.org/protobuf/reflect/protodesc/desc_resolve.go b/vendor/google.golang.org/protobuf/reflect/protodesc/desc_resolve.go deleted file mode 100644 index ff692436e..000000000 --- a/vendor/google.golang.org/protobuf/reflect/protodesc/desc_resolve.go +++ /dev/null @@ -1,291 +0,0 @@ -// Copyright 2019 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package protodesc - -import ( - "google.golang.org/protobuf/internal/encoding/defval" - "google.golang.org/protobuf/internal/errors" - "google.golang.org/protobuf/internal/filedesc" - "google.golang.org/protobuf/reflect/protoreflect" - "google.golang.org/protobuf/reflect/protoregistry" - - "google.golang.org/protobuf/types/descriptorpb" -) - -// resolver is a wrapper around a local registry of declarations within the file -// and the remote resolver. The remote resolver is restricted to only return -// descriptors that have been imported. -type resolver struct { - local descsByName - remote Resolver - imports importSet - - allowUnresolvable bool -} - -func (r *resolver) resolveMessageDependencies(ms []filedesc.Message, mds []*descriptorpb.DescriptorProto) (err error) { - for i, md := range mds { - m := &ms[i] - for j, fd := range md.GetField() { - f := &m.L2.Fields.List[j] - if f.L1.Cardinality == protoreflect.Required { - m.L2.RequiredNumbers.List = append(m.L2.RequiredNumbers.List, f.L1.Number) - } - if fd.OneofIndex != nil { - k := int(fd.GetOneofIndex()) - if !(0 <= k && k < len(md.GetOneofDecl())) { - return errors.New("message field %q has an invalid oneof index: %d", f.FullName(), k) - } - o := &m.L2.Oneofs.List[k] - f.L1.ContainingOneof = o - o.L1.Fields.List = append(o.L1.Fields.List, f) - } - - if f.L1.Kind, f.L1.Enum, f.L1.Message, err = r.findTarget(f.Kind(), f.Parent().FullName(), partialName(fd.GetTypeName())); err != nil { - return errors.New("message field %q cannot resolve type: %v", f.FullName(), err) - } - if f.L1.Kind == protoreflect.GroupKind && (f.IsMap() || f.IsMapEntry()) { - // A map field might inherit delimited encoding from a file-wide default feature. - // But maps never actually use delimited encoding. (At least for now...) - f.L1.Kind = protoreflect.MessageKind - } - if fd.DefaultValue != nil { - v, ev, err := unmarshalDefault(fd.GetDefaultValue(), f, r.allowUnresolvable) - if err != nil { - return errors.New("message field %q has invalid default: %v", f.FullName(), err) - } - f.L1.Default = filedesc.DefaultValue(v, ev) - } - } - - if err := r.resolveMessageDependencies(m.L1.Messages.List, md.GetNestedType()); err != nil { - return err - } - if err := r.resolveExtensionDependencies(m.L1.Extensions.List, md.GetExtension()); err != nil { - return err - } - } - return nil -} - -func (r *resolver) resolveExtensionDependencies(xs []filedesc.Extension, xds []*descriptorpb.FieldDescriptorProto) (err error) { - for i, xd := range xds { - x := &xs[i] - if x.L1.Extendee, err = r.findMessageDescriptor(x.Parent().FullName(), partialName(xd.GetExtendee())); err != nil { - return errors.New("extension field %q cannot resolve extendee: %v", x.FullName(), err) - } - if x.L1.Kind, x.L2.Enum, x.L2.Message, err = r.findTarget(x.Kind(), x.Parent().FullName(), partialName(xd.GetTypeName())); err != nil { - return errors.New("extension field %q cannot resolve type: %v", x.FullName(), err) - } - if xd.DefaultValue != nil { - v, ev, err := unmarshalDefault(xd.GetDefaultValue(), x, r.allowUnresolvable) - if err != nil { - return errors.New("extension field %q has invalid default: %v", x.FullName(), err) - } - x.L2.Default = filedesc.DefaultValue(v, ev) - } - } - return nil -} - -func (r *resolver) resolveServiceDependencies(ss []filedesc.Service, sds []*descriptorpb.ServiceDescriptorProto) (err error) { - for i, sd := range sds { - s := &ss[i] - for j, md := range sd.GetMethod() { - m := &s.L2.Methods.List[j] - m.L1.Input, err = r.findMessageDescriptor(m.Parent().FullName(), partialName(md.GetInputType())) - if err != nil { - return errors.New("service method %q cannot resolve input: %v", m.FullName(), err) - } - m.L1.Output, err = r.findMessageDescriptor(s.FullName(), partialName(md.GetOutputType())) - if err != nil { - return errors.New("service method %q cannot resolve output: %v", m.FullName(), err) - } - } - } - return nil -} - -// findTarget finds an enum or message descriptor if k is an enum, message, -// group, or unknown. If unknown, and the name could be resolved, the kind -// returned kind is set based on the type of the resolved descriptor. -func (r *resolver) findTarget(k protoreflect.Kind, scope protoreflect.FullName, ref partialName) (protoreflect.Kind, protoreflect.EnumDescriptor, protoreflect.MessageDescriptor, error) { - switch k { - case protoreflect.EnumKind: - ed, err := r.findEnumDescriptor(scope, ref) - if err != nil { - return 0, nil, nil, err - } - return k, ed, nil, nil - case protoreflect.MessageKind, protoreflect.GroupKind: - md, err := r.findMessageDescriptor(scope, ref) - if err != nil { - return 0, nil, nil, err - } - return k, nil, md, nil - case 0: - // Handle unspecified kinds (possible with parsers that operate - // on a per-file basis without knowledge of dependencies). - d, err := r.findDescriptor(scope, ref) - if err == protoregistry.NotFound && r.allowUnresolvable { - return k, filedesc.PlaceholderEnum(ref.FullName()), filedesc.PlaceholderMessage(ref.FullName()), nil - } else if err == protoregistry.NotFound { - return 0, nil, nil, errors.New("%q not found", ref.FullName()) - } else if err != nil { - return 0, nil, nil, err - } - switch d := d.(type) { - case protoreflect.EnumDescriptor: - return protoreflect.EnumKind, d, nil, nil - case protoreflect.MessageDescriptor: - return protoreflect.MessageKind, nil, d, nil - default: - return 0, nil, nil, errors.New("unknown kind") - } - default: - if ref != "" { - return 0, nil, nil, errors.New("target name cannot be specified for %v", k) - } - if !k.IsValid() { - return 0, nil, nil, errors.New("invalid kind: %d", k) - } - return k, nil, nil, nil - } -} - -// findDescriptor finds the descriptor by name, -// which may be a relative name within some scope. -// -// Suppose the scope was "fizz.buzz" and the reference was "Foo.Bar", -// then the following full names are searched: -// - fizz.buzz.Foo.Bar -// - fizz.Foo.Bar -// - Foo.Bar -func (r *resolver) findDescriptor(scope protoreflect.FullName, ref partialName) (protoreflect.Descriptor, error) { - if !ref.IsValid() { - return nil, errors.New("invalid name reference: %q", ref) - } - if ref.IsFull() { - scope, ref = "", ref[1:] - } - var foundButNotImported protoreflect.Descriptor - for { - // Derive the full name to search. - s := protoreflect.FullName(ref) - if scope != "" { - s = scope + "." + s - } - - // Check the current file for the descriptor. - if d, ok := r.local[s]; ok { - return d, nil - } - - // Check the remote registry for the descriptor. - d, err := r.remote.FindDescriptorByName(s) - if err == nil { - // Only allow descriptors covered by one of the imports. - if r.imports[d.ParentFile().Path()] { - return d, nil - } - foundButNotImported = d - } else if err != protoregistry.NotFound { - return nil, errors.Wrap(err, "%q", s) - } - - // Continue on at a higher level of scoping. - if scope == "" { - if d := foundButNotImported; d != nil { - return nil, errors.New("resolved %q, but %q is not imported", d.FullName(), d.ParentFile().Path()) - } - return nil, protoregistry.NotFound - } - scope = scope.Parent() - } -} - -func (r *resolver) findEnumDescriptor(scope protoreflect.FullName, ref partialName) (protoreflect.EnumDescriptor, error) { - d, err := r.findDescriptor(scope, ref) - if err == protoregistry.NotFound && r.allowUnresolvable { - return filedesc.PlaceholderEnum(ref.FullName()), nil - } else if err == protoregistry.NotFound { - return nil, errors.New("%q not found", ref.FullName()) - } else if err != nil { - return nil, err - } - ed, ok := d.(protoreflect.EnumDescriptor) - if !ok { - return nil, errors.New("resolved %q, but it is not an enum", d.FullName()) - } - return ed, nil -} - -func (r *resolver) findMessageDescriptor(scope protoreflect.FullName, ref partialName) (protoreflect.MessageDescriptor, error) { - d, err := r.findDescriptor(scope, ref) - if err == protoregistry.NotFound && r.allowUnresolvable { - return filedesc.PlaceholderMessage(ref.FullName()), nil - } else if err == protoregistry.NotFound { - return nil, errors.New("%q not found", ref.FullName()) - } else if err != nil { - return nil, err - } - md, ok := d.(protoreflect.MessageDescriptor) - if !ok { - return nil, errors.New("resolved %q, but it is not an message", d.FullName()) - } - return md, nil -} - -// partialName is the partial name. A leading dot means that the name is full, -// otherwise the name is relative to some current scope. -// See google.protobuf.FieldDescriptorProto.type_name. -type partialName string - -func (s partialName) IsFull() bool { - return len(s) > 0 && s[0] == '.' -} - -func (s partialName) IsValid() bool { - if s.IsFull() { - return protoreflect.FullName(s[1:]).IsValid() - } - return protoreflect.FullName(s).IsValid() -} - -const unknownPrefix = "*." - -// FullName converts the partial name to a full name on a best-effort basis. -// If relative, it creates an invalid full name, using a "*." prefix -// to indicate that the start of the full name is unknown. -func (s partialName) FullName() protoreflect.FullName { - if s.IsFull() { - return protoreflect.FullName(s[1:]) - } - return protoreflect.FullName(unknownPrefix + s) -} - -func unmarshalDefault(s string, fd protoreflect.FieldDescriptor, allowUnresolvable bool) (protoreflect.Value, protoreflect.EnumValueDescriptor, error) { - var evs protoreflect.EnumValueDescriptors - if fd.Enum() != nil { - evs = fd.Enum().Values() - } - v, ev, err := defval.Unmarshal(s, fd.Kind(), evs, defval.Descriptor) - if err != nil && allowUnresolvable && evs != nil && protoreflect.Name(s).IsValid() { - v = protoreflect.ValueOfEnum(0) - if evs.Len() > 0 { - v = protoreflect.ValueOfEnum(evs.Get(0).Number()) - } - ev = filedesc.PlaceholderEnumValue(fd.Enum().FullName().Parent().Append(protoreflect.Name(s))) - } else if err != nil { - return v, ev, err - } - if !fd.HasPresence() { - return v, ev, errors.New("cannot be specified with implicit field presence") - } - if fd.Kind() == protoreflect.MessageKind || fd.Kind() == protoreflect.GroupKind || fd.Cardinality() == protoreflect.Repeated { - return v, ev, errors.New("cannot be specified on composite types") - } - return v, ev, nil -} diff --git a/vendor/google.golang.org/protobuf/reflect/protodesc/desc_validate.go b/vendor/google.golang.org/protobuf/reflect/protodesc/desc_validate.go deleted file mode 100644 index c343d9227..000000000 --- a/vendor/google.golang.org/protobuf/reflect/protodesc/desc_validate.go +++ /dev/null @@ -1,359 +0,0 @@ -// Copyright 2019 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package protodesc - -import ( - "strings" - "unicode" - - "google.golang.org/protobuf/encoding/protowire" - "google.golang.org/protobuf/internal/errors" - "google.golang.org/protobuf/internal/filedesc" - "google.golang.org/protobuf/internal/flags" - "google.golang.org/protobuf/internal/genid" - "google.golang.org/protobuf/internal/strs" - "google.golang.org/protobuf/reflect/protoreflect" - - "google.golang.org/protobuf/types/descriptorpb" -) - -func validateEnumDeclarations(es []filedesc.Enum, eds []*descriptorpb.EnumDescriptorProto) error { - for i, ed := range eds { - e := &es[i] - if err := e.L2.ReservedNames.CheckValid(); err != nil { - return errors.New("enum %q reserved names has %v", e.FullName(), err) - } - if err := e.L2.ReservedRanges.CheckValid(); err != nil { - return errors.New("enum %q reserved ranges has %v", e.FullName(), err) - } - if len(ed.GetValue()) == 0 { - return errors.New("enum %q must contain at least one value declaration", e.FullName()) - } - allowAlias := ed.GetOptions().GetAllowAlias() - foundAlias := false - for i := 0; i < e.Values().Len(); i++ { - v1 := e.Values().Get(i) - if v2 := e.Values().ByNumber(v1.Number()); v1 != v2 { - foundAlias = true - if !allowAlias { - return errors.New("enum %q has conflicting non-aliased values on number %d: %q with %q", e.FullName(), v1.Number(), v1.Name(), v2.Name()) - } - } - } - if allowAlias && !foundAlias { - return errors.New("enum %q allows aliases, but none were found", e.FullName()) - } - if !e.IsClosed() { - if v := e.Values().Get(0); v.Number() != 0 { - return errors.New("enum %q using open semantics must have zero number for the first value", v.FullName()) - } - // Verify that value names in open enums do not conflict if the - // case-insensitive prefix is removed. - // See protoc v3.8.0: src/google/protobuf/descriptor.cc:4991-5055 - names := map[string]protoreflect.EnumValueDescriptor{} - prefix := strings.Replace(strings.ToLower(string(e.Name())), "_", "", -1) - for i := 0; i < e.Values().Len(); i++ { - v1 := e.Values().Get(i) - s := strs.EnumValueName(strs.TrimEnumPrefix(string(v1.Name()), prefix)) - if v2, ok := names[s]; ok && v1.Number() != v2.Number() { - return errors.New("enum %q using open semantics has conflict: %q with %q", e.FullName(), v1.Name(), v2.Name()) - } - names[s] = v1 - } - } - - for j, vd := range ed.GetValue() { - v := &e.L2.Values.List[j] - if vd.Number == nil { - return errors.New("enum value %q must have a specified number", v.FullName()) - } - if e.L2.ReservedNames.Has(v.Name()) { - return errors.New("enum value %q must not use reserved name", v.FullName()) - } - if e.L2.ReservedRanges.Has(v.Number()) { - return errors.New("enum value %q must not use reserved number %d", v.FullName(), v.Number()) - } - } - } - return nil -} - -func validateMessageDeclarations(file *filedesc.File, ms []filedesc.Message, mds []*descriptorpb.DescriptorProto) error { - // There are a few limited exceptions only for proto3 - isProto3 := file.L1.Edition == fromEditionProto(descriptorpb.Edition_EDITION_PROTO3) - for i, md := range mds { - m := &ms[i] - - // Handle the message descriptor itself. - isMessageSet := md.GetOptions().GetMessageSetWireFormat() - if err := m.L2.ReservedNames.CheckValid(); err != nil { - return errors.New("message %q reserved names has %v", m.FullName(), err) - } - if err := m.L2.ReservedRanges.CheckValid(isMessageSet); err != nil { - return errors.New("message %q reserved ranges has %v", m.FullName(), err) - } - if err := m.L2.ExtensionRanges.CheckValid(isMessageSet); err != nil { - return errors.New("message %q extension ranges has %v", m.FullName(), err) - } - if err := (*filedesc.FieldRanges).CheckOverlap(&m.L2.ReservedRanges, &m.L2.ExtensionRanges); err != nil { - return errors.New("message %q reserved and extension ranges has %v", m.FullName(), err) - } - for i := 0; i < m.Fields().Len(); i++ { - f1 := m.Fields().Get(i) - if f2 := m.Fields().ByNumber(f1.Number()); f1 != f2 { - return errors.New("message %q has conflicting fields: %q with %q", m.FullName(), f1.Name(), f2.Name()) - } - } - if isMessageSet && !flags.ProtoLegacy { - return errors.New("message %q is a MessageSet, which is a legacy proto1 feature that is no longer supported", m.FullName()) - } - if isMessageSet && (isProto3 || m.Fields().Len() > 0 || m.ExtensionRanges().Len() == 0) { - return errors.New("message %q is an invalid proto1 MessageSet", m.FullName()) - } - if isProto3 { - if m.ExtensionRanges().Len() > 0 { - return errors.New("message %q using proto3 semantics cannot have extension ranges", m.FullName()) - } - } - - for j, fd := range md.GetField() { - f := &m.L2.Fields.List[j] - if m.L2.ReservedNames.Has(f.Name()) { - return errors.New("message field %q must not use reserved name", f.FullName()) - } - if !f.Number().IsValid() { - return errors.New("message field %q has an invalid number: %d", f.FullName(), f.Number()) - } - if !f.Cardinality().IsValid() { - return errors.New("message field %q has an invalid cardinality: %d", f.FullName(), f.Cardinality()) - } - if m.L2.ReservedRanges.Has(f.Number()) { - return errors.New("message field %q must not use reserved number %d", f.FullName(), f.Number()) - } - if m.L2.ExtensionRanges.Has(f.Number()) { - return errors.New("message field %q with number %d in extension range", f.FullName(), f.Number()) - } - if fd.Extendee != nil { - return errors.New("message field %q may not have extendee: %q", f.FullName(), fd.GetExtendee()) - } - if f.L1.IsProto3Optional { - if !isProto3 { - return errors.New("message field %q under proto3 optional semantics must be specified in the proto3 syntax", f.FullName()) - } - if f.Cardinality() != protoreflect.Optional { - return errors.New("message field %q under proto3 optional semantics must have optional cardinality", f.FullName()) - } - if f.ContainingOneof() != nil && f.ContainingOneof().Fields().Len() != 1 { - return errors.New("message field %q under proto3 optional semantics must be within a single element oneof", f.FullName()) - } - } - if f.IsPacked() && !isPackable(f) { - return errors.New("message field %q is not packable", f.FullName()) - } - if err := checkValidGroup(file, f); err != nil { - return errors.New("message field %q is an invalid group: %v", f.FullName(), err) - } - if err := checkValidMap(f); err != nil { - return errors.New("message field %q is an invalid map: %v", f.FullName(), err) - } - if isProto3 { - if f.Cardinality() == protoreflect.Required { - return errors.New("message field %q using proto3 semantics cannot be required", f.FullName()) - } - if f.Enum() != nil && !f.Enum().IsPlaceholder() && f.Enum().IsClosed() { - return errors.New("message field %q using proto3 semantics may only depend on open enums", f.FullName()) - } - } - if f.Cardinality() == protoreflect.Optional && !f.HasPresence() && f.Enum() != nil && !f.Enum().IsPlaceholder() && f.Enum().IsClosed() { - return errors.New("message field %q with implicit presence may only use open enums", f.FullName()) - } - } - seenSynthetic := false // synthetic oneofs for proto3 optional must come after real oneofs - for j := range md.GetOneofDecl() { - o := &m.L2.Oneofs.List[j] - if o.Fields().Len() == 0 { - return errors.New("message oneof %q must contain at least one field declaration", o.FullName()) - } - if n := o.Fields().Len(); n-1 != (o.Fields().Get(n-1).Index() - o.Fields().Get(0).Index()) { - return errors.New("message oneof %q must have consecutively declared fields", o.FullName()) - } - - if o.IsSynthetic() { - seenSynthetic = true - continue - } - if !o.IsSynthetic() && seenSynthetic { - return errors.New("message oneof %q must be declared before synthetic oneofs", o.FullName()) - } - - for i := 0; i < o.Fields().Len(); i++ { - f := o.Fields().Get(i) - if f.Cardinality() != protoreflect.Optional { - return errors.New("message field %q belongs in a oneof and must be optional", f.FullName()) - } - } - } - - if err := validateEnumDeclarations(m.L1.Enums.List, md.GetEnumType()); err != nil { - return err - } - if err := validateMessageDeclarations(file, m.L1.Messages.List, md.GetNestedType()); err != nil { - return err - } - if err := validateExtensionDeclarations(file, m.L1.Extensions.List, md.GetExtension()); err != nil { - return err - } - } - return nil -} - -func validateExtensionDeclarations(f *filedesc.File, xs []filedesc.Extension, xds []*descriptorpb.FieldDescriptorProto) error { - for i, xd := range xds { - x := &xs[i] - // NOTE: Avoid using the IsValid method since extensions to MessageSet - // may have a field number higher than normal. This check only verifies - // that the number is not negative or reserved. We check again later - // if we know that the extendee is definitely not a MessageSet. - if n := x.Number(); n < 0 || (protowire.FirstReservedNumber <= n && n <= protowire.LastReservedNumber) { - return errors.New("extension field %q has an invalid number: %d", x.FullName(), x.Number()) - } - if !x.Cardinality().IsValid() || x.Cardinality() == protoreflect.Required { - return errors.New("extension field %q has an invalid cardinality: %d", x.FullName(), x.Cardinality()) - } - if xd.JsonName != nil { - // A bug in older versions of protoc would always populate the - // "json_name" option for extensions when it is meaningless. - // When it did so, it would always use the camel-cased field name. - if xd.GetJsonName() != strs.JSONCamelCase(string(x.Name())) { - return errors.New("extension field %q may not have an explicitly set JSON name: %q", x.FullName(), xd.GetJsonName()) - } - } - if xd.OneofIndex != nil { - return errors.New("extension field %q may not be part of a oneof", x.FullName()) - } - if md := x.ContainingMessage(); !md.IsPlaceholder() { - if !md.ExtensionRanges().Has(x.Number()) { - return errors.New("extension field %q extends %q with non-extension field number: %d", x.FullName(), md.FullName(), x.Number()) - } - isMessageSet := md.Options().(*descriptorpb.MessageOptions).GetMessageSetWireFormat() - if isMessageSet && !isOptionalMessage(x) { - return errors.New("extension field %q extends MessageSet and must be an optional message", x.FullName()) - } - if !isMessageSet && !x.Number().IsValid() { - return errors.New("extension field %q has an invalid number: %d", x.FullName(), x.Number()) - } - } - if x.IsPacked() && !isPackable(x) { - return errors.New("extension field %q is not packable", x.FullName()) - } - if err := checkValidGroup(f, x); err != nil { - return errors.New("extension field %q is an invalid group: %v", x.FullName(), err) - } - if md := x.Message(); md != nil && md.IsMapEntry() { - return errors.New("extension field %q cannot be a map entry", x.FullName()) - } - if f.L1.Edition == fromEditionProto(descriptorpb.Edition_EDITION_PROTO3) { - switch x.ContainingMessage().FullName() { - case (*descriptorpb.FileOptions)(nil).ProtoReflect().Descriptor().FullName(): - case (*descriptorpb.EnumOptions)(nil).ProtoReflect().Descriptor().FullName(): - case (*descriptorpb.EnumValueOptions)(nil).ProtoReflect().Descriptor().FullName(): - case (*descriptorpb.MessageOptions)(nil).ProtoReflect().Descriptor().FullName(): - case (*descriptorpb.FieldOptions)(nil).ProtoReflect().Descriptor().FullName(): - case (*descriptorpb.OneofOptions)(nil).ProtoReflect().Descriptor().FullName(): - case (*descriptorpb.ExtensionRangeOptions)(nil).ProtoReflect().Descriptor().FullName(): - case (*descriptorpb.ServiceOptions)(nil).ProtoReflect().Descriptor().FullName(): - case (*descriptorpb.MethodOptions)(nil).ProtoReflect().Descriptor().FullName(): - default: - return errors.New("extension field %q cannot be declared in proto3 unless extended descriptor options", x.FullName()) - } - } - } - return nil -} - -// isOptionalMessage reports whether this is an optional message. -// If the kind is unknown, it is assumed to be a message. -func isOptionalMessage(fd protoreflect.FieldDescriptor) bool { - return (fd.Kind() == 0 || fd.Kind() == protoreflect.MessageKind) && fd.Cardinality() == protoreflect.Optional -} - -// isPackable checks whether the pack option can be specified. -func isPackable(fd protoreflect.FieldDescriptor) bool { - switch fd.Kind() { - case protoreflect.StringKind, protoreflect.BytesKind, protoreflect.MessageKind, protoreflect.GroupKind: - return false - } - return fd.IsList() -} - -// checkValidGroup reports whether fd is a valid group according to the same -// rules that protoc imposes. -func checkValidGroup(f *filedesc.File, fd protoreflect.FieldDescriptor) error { - md := fd.Message() - switch { - case fd.Kind() != protoreflect.GroupKind: - return nil - case f.L1.Edition == fromEditionProto(descriptorpb.Edition_EDITION_PROTO3): - return errors.New("invalid under proto3 semantics") - case md == nil || md.IsPlaceholder(): - return errors.New("message must be resolvable") - } - if f.L1.Edition < fromEditionProto(descriptorpb.Edition_EDITION_2023) { - switch { - case fd.FullName().Parent() != md.FullName().Parent(): - return errors.New("message and field must be declared in the same scope") - case !unicode.IsUpper(rune(md.Name()[0])): - return errors.New("message name must start with an uppercase") - case fd.Name() != protoreflect.Name(strings.ToLower(string(md.Name()))): - return errors.New("field name must be lowercased form of the message name") - } - } - return nil -} - -// checkValidMap checks whether the field is a valid map according to the same -// rules that protoc imposes. -// See protoc v3.8.0: src/google/protobuf/descriptor.cc:6045-6115 -func checkValidMap(fd protoreflect.FieldDescriptor) error { - md := fd.Message() - switch { - case md == nil || !md.IsMapEntry(): - return nil - case fd.FullName().Parent() != md.FullName().Parent(): - return errors.New("message and field must be declared in the same scope") - case md.Name() != protoreflect.Name(strs.MapEntryName(string(fd.Name()))): - return errors.New("incorrect implicit map entry name") - case fd.Cardinality() != protoreflect.Repeated: - return errors.New("field must be repeated") - case md.Fields().Len() != 2: - return errors.New("message must have exactly two fields") - case md.ExtensionRanges().Len() > 0: - return errors.New("message must not have any extension ranges") - case md.Enums().Len()+md.Messages().Len()+md.Extensions().Len() > 0: - return errors.New("message must not have any nested declarations") - } - kf := md.Fields().Get(0) - vf := md.Fields().Get(1) - switch { - case kf.Name() != genid.MapEntry_Key_field_name || kf.Number() != genid.MapEntry_Key_field_number || kf.Cardinality() != protoreflect.Optional || kf.ContainingOneof() != nil || kf.HasDefault(): - return errors.New("invalid key field") - case vf.Name() != genid.MapEntry_Value_field_name || vf.Number() != genid.MapEntry_Value_field_number || vf.Cardinality() != protoreflect.Optional || vf.ContainingOneof() != nil || vf.HasDefault(): - return errors.New("invalid value field") - } - switch kf.Kind() { - case protoreflect.BoolKind: // bool - case protoreflect.Int32Kind, protoreflect.Sint32Kind, protoreflect.Sfixed32Kind: // int32 - case protoreflect.Int64Kind, protoreflect.Sint64Kind, protoreflect.Sfixed64Kind: // int64 - case protoreflect.Uint32Kind, protoreflect.Fixed32Kind: // uint32 - case protoreflect.Uint64Kind, protoreflect.Fixed64Kind: // uint64 - case protoreflect.StringKind: // string - default: - return errors.New("invalid key kind: %v", kf.Kind()) - } - if e := vf.Enum(); e != nil && e.Values().Len() > 0 && e.Values().Get(0).Number() != 0 { - return errors.New("map enum value must have zero number for the first value") - } - return nil -} diff --git a/vendor/google.golang.org/protobuf/reflect/protodesc/editions.go b/vendor/google.golang.org/protobuf/reflect/protodesc/editions.go deleted file mode 100644 index 147b8c739..000000000 --- a/vendor/google.golang.org/protobuf/reflect/protodesc/editions.go +++ /dev/null @@ -1,183 +0,0 @@ -// Copyright 2019 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package protodesc - -import ( - "fmt" - "os" - "sync" - - "google.golang.org/protobuf/internal/editiondefaults" - "google.golang.org/protobuf/internal/filedesc" - "google.golang.org/protobuf/internal/genid" - "google.golang.org/protobuf/proto" - "google.golang.org/protobuf/reflect/protoreflect" - "google.golang.org/protobuf/types/descriptorpb" - "google.golang.org/protobuf/types/gofeaturespb" -) - -var defaults = &descriptorpb.FeatureSetDefaults{} -var defaultsCacheMu sync.Mutex -var defaultsCache = make(map[filedesc.Edition]*descriptorpb.FeatureSet) - -func init() { - err := proto.Unmarshal(editiondefaults.Defaults, defaults) - if err != nil { - fmt.Fprintf(os.Stderr, "unmarshal editions defaults: %v\n", err) - os.Exit(1) - } -} - -func fromEditionProto(epb descriptorpb.Edition) filedesc.Edition { - return filedesc.Edition(epb) -} - -func toEditionProto(ed filedesc.Edition) descriptorpb.Edition { - switch ed { - case filedesc.EditionUnknown: - return descriptorpb.Edition_EDITION_UNKNOWN - case filedesc.EditionProto2: - return descriptorpb.Edition_EDITION_PROTO2 - case filedesc.EditionProto3: - return descriptorpb.Edition_EDITION_PROTO3 - case filedesc.Edition2023: - return descriptorpb.Edition_EDITION_2023 - case filedesc.Edition2024: - return descriptorpb.Edition_EDITION_2024 - case filedesc.EditionUnstable: - return descriptorpb.Edition_EDITION_UNSTABLE - default: - panic(fmt.Sprintf("unknown value for edition: %v", ed)) - } -} - -func getFeatureSetFor(ed filedesc.Edition) *descriptorpb.FeatureSet { - defaultsCacheMu.Lock() - defer defaultsCacheMu.Unlock() - if def, ok := defaultsCache[ed]; ok { - return def - } - edpb := toEditionProto(ed) - if (defaults.GetMinimumEdition() > edpb || defaults.GetMaximumEdition() < edpb) && edpb != descriptorpb.Edition_EDITION_UNSTABLE { - // This should never happen protodesc.(FileOptions).New would fail when - // initializing the file descriptor. - // This most likely means the embedded defaults were not updated. - fmt.Fprintf(os.Stderr, "internal error: unsupported edition %v (did you forget to update the embedded defaults (i.e. the bootstrap descriptor proto)?)\n", edpb) - os.Exit(1) - } - fsed := defaults.GetDefaults()[0] - // Using a linear search for now. - // Editions are guaranteed to be sorted and thus we could use a binary search. - // Given that there are only a handful of editions (with one more per year) - // there is not much reason to use a binary search. - for _, def := range defaults.GetDefaults() { - if def.GetEdition() <= edpb { - fsed = def - } else { - break - } - } - fs := proto.Clone(fsed.GetFixedFeatures()).(*descriptorpb.FeatureSet) - proto.Merge(fs, fsed.GetOverridableFeatures()) - defaultsCache[ed] = fs - return fs -} - -// mergeEditionFeatures merges the parent and child feature sets. This function -// should be used when initializing Go descriptors from descriptor protos which -// is why the parent is a filedesc.EditionsFeatures (Go representation) while -// the child is a descriptorproto.FeatureSet (protoc representation). -// Any feature set by the child overwrites what is set by the parent. -func mergeEditionFeatures(parentDesc protoreflect.Descriptor, child *descriptorpb.FeatureSet) filedesc.EditionFeatures { - var parentFS filedesc.EditionFeatures - switch p := parentDesc.(type) { - case *filedesc.File: - parentFS = p.L1.EditionFeatures - case *filedesc.Message: - parentFS = p.L1.EditionFeatures - default: - panic(fmt.Sprintf("unknown parent type %T", parentDesc)) - } - if child == nil { - return parentFS - } - if fp := child.FieldPresence; fp != nil { - parentFS.IsFieldPresence = *fp == descriptorpb.FeatureSet_LEGACY_REQUIRED || - *fp == descriptorpb.FeatureSet_EXPLICIT - parentFS.IsLegacyRequired = *fp == descriptorpb.FeatureSet_LEGACY_REQUIRED - } - if et := child.EnumType; et != nil { - parentFS.IsOpenEnum = *et == descriptorpb.FeatureSet_OPEN - } - - if rfe := child.RepeatedFieldEncoding; rfe != nil { - parentFS.IsPacked = *rfe == descriptorpb.FeatureSet_PACKED - } - - if utf8val := child.Utf8Validation; utf8val != nil { - parentFS.IsUTF8Validated = *utf8val == descriptorpb.FeatureSet_VERIFY - } - - if me := child.MessageEncoding; me != nil { - parentFS.IsDelimitedEncoded = *me == descriptorpb.FeatureSet_DELIMITED - } - - if jf := child.JsonFormat; jf != nil { - parentFS.IsJSONCompliant = *jf == descriptorpb.FeatureSet_ALLOW - } - - // We must not use proto.GetExtension(child, gofeaturespb.E_Go) - // because that only works for messages we generated, but not for - // dynamicpb messages. See golang/protobuf#1669. - // - // Further, we harden this code against adversarial inputs: a - // service which accepts descriptors from a possibly malicious - // source shouldn't crash. - goFeatures := child.ProtoReflect().Get(gofeaturespb.E_Go.TypeDescriptor()) - if !goFeatures.IsValid() { - return parentFS - } - gf, ok := goFeatures.Interface().(protoreflect.Message) - if !ok { - return parentFS - } - // gf.Interface() could be *dynamicpb.Message or *gofeaturespb.GoFeatures. - fields := gf.Descriptor().Fields() - - if fd := fields.ByNumber(genid.GoFeatures_LegacyUnmarshalJsonEnum_field_number); fd != nil && - !fd.IsList() && - fd.Kind() == protoreflect.BoolKind && - gf.Has(fd) { - parentFS.GenerateLegacyUnmarshalJSON = gf.Get(fd).Bool() - } - - if fd := fields.ByNumber(genid.GoFeatures_StripEnumPrefix_field_number); fd != nil && - !fd.IsList() && - fd.Kind() == protoreflect.EnumKind && - gf.Has(fd) { - parentFS.StripEnumPrefix = int(gf.Get(fd).Enum()) - } - - if fd := fields.ByNumber(genid.GoFeatures_ApiLevel_field_number); fd != nil && - !fd.IsList() && - fd.Kind() == protoreflect.EnumKind && - gf.Has(fd) { - parentFS.APILevel = int(gf.Get(fd).Enum()) - } - - return parentFS -} - -// initFileDescFromFeatureSet initializes editions related fields in fd based -// on fs. If fs is nil it is assumed to be an empty featureset and all fields -// will be initialized with the appropriate default. fd.L1.Edition must be set -// before calling this function. -func initFileDescFromFeatureSet(fd *filedesc.File, fs *descriptorpb.FeatureSet) { - dfs := getFeatureSetFor(fd.L1.Edition) - // initialize the featureset with the defaults - fd.L1.EditionFeatures = mergeEditionFeatures(fd, dfs) - // overwrite any options explicitly specified - fd.L1.EditionFeatures = mergeEditionFeatures(fd, fs) -} diff --git a/vendor/google.golang.org/protobuf/reflect/protodesc/proto.go b/vendor/google.golang.org/protobuf/reflect/protodesc/proto.go deleted file mode 100644 index 6f91074e3..000000000 --- a/vendor/google.golang.org/protobuf/reflect/protodesc/proto.go +++ /dev/null @@ -1,298 +0,0 @@ -// Copyright 2019 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package protodesc - -import ( - "fmt" - "strings" - - "google.golang.org/protobuf/internal/encoding/defval" - "google.golang.org/protobuf/internal/strs" - "google.golang.org/protobuf/proto" - "google.golang.org/protobuf/reflect/protoreflect" - - "google.golang.org/protobuf/types/descriptorpb" -) - -// ToFileDescriptorProto copies a [protoreflect.FileDescriptor] into a -// google.protobuf.FileDescriptorProto message. -func ToFileDescriptorProto(file protoreflect.FileDescriptor) *descriptorpb.FileDescriptorProto { - p := &descriptorpb.FileDescriptorProto{ - Name: proto.String(file.Path()), - Options: proto.Clone(file.Options()).(*descriptorpb.FileOptions), - } - if file.Package() != "" { - p.Package = proto.String(string(file.Package())) - } - for i, imports := 0, file.Imports(); i < imports.Len(); i++ { - imp := imports.Get(i) - p.Dependency = append(p.Dependency, imp.Path()) - if imp.IsPublic { - p.PublicDependency = append(p.PublicDependency, int32(i)) - } - } - for i, locs := 0, file.SourceLocations(); i < locs.Len(); i++ { - loc := locs.Get(i) - l := &descriptorpb.SourceCodeInfo_Location{} - l.Path = append(l.Path, loc.Path...) - if loc.StartLine == loc.EndLine { - l.Span = []int32{int32(loc.StartLine), int32(loc.StartColumn), int32(loc.EndColumn)} - } else { - l.Span = []int32{int32(loc.StartLine), int32(loc.StartColumn), int32(loc.EndLine), int32(loc.EndColumn)} - } - l.LeadingDetachedComments = append([]string(nil), loc.LeadingDetachedComments...) - if loc.LeadingComments != "" { - l.LeadingComments = proto.String(loc.LeadingComments) - } - if loc.TrailingComments != "" { - l.TrailingComments = proto.String(loc.TrailingComments) - } - if p.SourceCodeInfo == nil { - p.SourceCodeInfo = &descriptorpb.SourceCodeInfo{} - } - p.SourceCodeInfo.Location = append(p.SourceCodeInfo.Location, l) - - } - for i, messages := 0, file.Messages(); i < messages.Len(); i++ { - p.MessageType = append(p.MessageType, ToDescriptorProto(messages.Get(i))) - } - for i, enums := 0, file.Enums(); i < enums.Len(); i++ { - p.EnumType = append(p.EnumType, ToEnumDescriptorProto(enums.Get(i))) - } - for i, services := 0, file.Services(); i < services.Len(); i++ { - p.Service = append(p.Service, ToServiceDescriptorProto(services.Get(i))) - } - for i, exts := 0, file.Extensions(); i < exts.Len(); i++ { - p.Extension = append(p.Extension, ToFieldDescriptorProto(exts.Get(i))) - } - if syntax := file.Syntax(); syntax != protoreflect.Proto2 && syntax.IsValid() { - p.Syntax = proto.String(file.Syntax().String()) - } - desc := file - if fileImportDesc, ok := file.(protoreflect.FileImport); ok { - desc = fileImportDesc.FileDescriptor - } - if file.Syntax() == protoreflect.Editions { - if editionsInterface, ok := desc.(interface{ Edition() int32 }); ok { - p.Edition = descriptorpb.Edition(editionsInterface.Edition()).Enum() - } - } - type hasOptionImports interface { - OptionImports() protoreflect.FileImports - } - if opts, ok := desc.(hasOptionImports); ok { - if optionImports := opts.OptionImports(); optionImports.Len() > 0 { - optionDeps := make([]string, optionImports.Len()) - for i := range optionImports.Len() { - optionDeps[i] = optionImports.Get(i).Path() - } - p.OptionDependency = optionDeps - } - } - return p -} - -// ToDescriptorProto copies a [protoreflect.MessageDescriptor] into a -// google.protobuf.DescriptorProto message. -func ToDescriptorProto(message protoreflect.MessageDescriptor) *descriptorpb.DescriptorProto { - p := &descriptorpb.DescriptorProto{ - Name: proto.String(string(message.Name())), - Options: proto.Clone(message.Options()).(*descriptorpb.MessageOptions), - } - for i, fields := 0, message.Fields(); i < fields.Len(); i++ { - p.Field = append(p.Field, ToFieldDescriptorProto(fields.Get(i))) - } - for i, exts := 0, message.Extensions(); i < exts.Len(); i++ { - p.Extension = append(p.Extension, ToFieldDescriptorProto(exts.Get(i))) - } - for i, messages := 0, message.Messages(); i < messages.Len(); i++ { - p.NestedType = append(p.NestedType, ToDescriptorProto(messages.Get(i))) - } - for i, enums := 0, message.Enums(); i < enums.Len(); i++ { - p.EnumType = append(p.EnumType, ToEnumDescriptorProto(enums.Get(i))) - } - for i, xranges := 0, message.ExtensionRanges(); i < xranges.Len(); i++ { - xrange := xranges.Get(i) - p.ExtensionRange = append(p.ExtensionRange, &descriptorpb.DescriptorProto_ExtensionRange{ - Start: proto.Int32(int32(xrange[0])), - End: proto.Int32(int32(xrange[1])), - Options: proto.Clone(message.ExtensionRangeOptions(i)).(*descriptorpb.ExtensionRangeOptions), - }) - } - for i, oneofs := 0, message.Oneofs(); i < oneofs.Len(); i++ { - p.OneofDecl = append(p.OneofDecl, ToOneofDescriptorProto(oneofs.Get(i))) - } - for i, ranges := 0, message.ReservedRanges(); i < ranges.Len(); i++ { - rrange := ranges.Get(i) - p.ReservedRange = append(p.ReservedRange, &descriptorpb.DescriptorProto_ReservedRange{ - Start: proto.Int32(int32(rrange[0])), - End: proto.Int32(int32(rrange[1])), - }) - } - for i, names := 0, message.ReservedNames(); i < names.Len(); i++ { - p.ReservedName = append(p.ReservedName, string(names.Get(i))) - } - type hasVisibility interface { - Visibility() int32 - } - if vis, ok := message.(hasVisibility); ok { - if visibility := vis.Visibility(); visibility > 0 { - p.Visibility = descriptorpb.SymbolVisibility(visibility).Enum() - } - } - return p -} - -// ToFieldDescriptorProto copies a [protoreflect.FieldDescriptor] into a -// google.protobuf.FieldDescriptorProto message. -func ToFieldDescriptorProto(field protoreflect.FieldDescriptor) *descriptorpb.FieldDescriptorProto { - p := &descriptorpb.FieldDescriptorProto{ - Name: proto.String(string(field.Name())), - Number: proto.Int32(int32(field.Number())), - Label: descriptorpb.FieldDescriptorProto_Label(field.Cardinality()).Enum(), - Options: proto.Clone(field.Options()).(*descriptorpb.FieldOptions), - } - if field.IsExtension() { - p.Extendee = fullNameOf(field.ContainingMessage()) - } - if field.Kind().IsValid() { - p.Type = descriptorpb.FieldDescriptorProto_Type(field.Kind()).Enum() - } - if field.Enum() != nil { - p.TypeName = fullNameOf(field.Enum()) - } - if field.Message() != nil { - p.TypeName = fullNameOf(field.Message()) - } - if field.HasJSONName() { - // A bug in older versions of protoc would always populate the - // "json_name" option for extensions when it is meaningless. - // When it did so, it would always use the camel-cased field name. - if field.IsExtension() { - p.JsonName = proto.String(strs.JSONCamelCase(string(field.Name()))) - } else { - p.JsonName = proto.String(field.JSONName()) - } - } - if field.Syntax() == protoreflect.Proto3 && field.HasOptionalKeyword() { - p.Proto3Optional = proto.Bool(true) - } - if field.Syntax() == protoreflect.Editions { - // Editions have no group keyword, this type is only set so that downstream users continue - // treating this as delimited encoding. - if p.GetType() == descriptorpb.FieldDescriptorProto_TYPE_GROUP { - p.Type = descriptorpb.FieldDescriptorProto_TYPE_MESSAGE.Enum() - } - // Editions have no required keyword, this label is only set so that downstream users continue - // treating it as required. - if p.GetLabel() == descriptorpb.FieldDescriptorProto_LABEL_REQUIRED { - p.Label = descriptorpb.FieldDescriptorProto_LABEL_OPTIONAL.Enum() - } - } - if field.HasDefault() { - def, err := defval.Marshal(field.Default(), field.DefaultEnumValue(), field.Kind(), defval.Descriptor) - if err != nil && field.DefaultEnumValue() != nil { - def = string(field.DefaultEnumValue().Name()) // occurs for unresolved enum values - } else if err != nil { - panic(fmt.Sprintf("%v: %v", field.FullName(), err)) - } - p.DefaultValue = proto.String(def) - } - if oneof := field.ContainingOneof(); oneof != nil { - p.OneofIndex = proto.Int32(int32(oneof.Index())) - } - return p -} - -// ToOneofDescriptorProto copies a [protoreflect.OneofDescriptor] into a -// google.protobuf.OneofDescriptorProto message. -func ToOneofDescriptorProto(oneof protoreflect.OneofDescriptor) *descriptorpb.OneofDescriptorProto { - return &descriptorpb.OneofDescriptorProto{ - Name: proto.String(string(oneof.Name())), - Options: proto.Clone(oneof.Options()).(*descriptorpb.OneofOptions), - } -} - -// ToEnumDescriptorProto copies a [protoreflect.EnumDescriptor] into a -// google.protobuf.EnumDescriptorProto message. -func ToEnumDescriptorProto(enum protoreflect.EnumDescriptor) *descriptorpb.EnumDescriptorProto { - p := &descriptorpb.EnumDescriptorProto{ - Name: proto.String(string(enum.Name())), - Options: proto.Clone(enum.Options()).(*descriptorpb.EnumOptions), - } - for i, values := 0, enum.Values(); i < values.Len(); i++ { - p.Value = append(p.Value, ToEnumValueDescriptorProto(values.Get(i))) - } - for i, ranges := 0, enum.ReservedRanges(); i < ranges.Len(); i++ { - rrange := ranges.Get(i) - p.ReservedRange = append(p.ReservedRange, &descriptorpb.EnumDescriptorProto_EnumReservedRange{ - Start: proto.Int32(int32(rrange[0])), - End: proto.Int32(int32(rrange[1])), - }) - } - for i, names := 0, enum.ReservedNames(); i < names.Len(); i++ { - p.ReservedName = append(p.ReservedName, string(names.Get(i))) - } - type hasVisibility interface { - Visibility() int32 - } - if vis, ok := enum.(hasVisibility); ok { - if visibility := vis.Visibility(); visibility > 0 { - p.Visibility = descriptorpb.SymbolVisibility(visibility).Enum() - } - } - return p -} - -// ToEnumValueDescriptorProto copies a [protoreflect.EnumValueDescriptor] into a -// google.protobuf.EnumValueDescriptorProto message. -func ToEnumValueDescriptorProto(value protoreflect.EnumValueDescriptor) *descriptorpb.EnumValueDescriptorProto { - return &descriptorpb.EnumValueDescriptorProto{ - Name: proto.String(string(value.Name())), - Number: proto.Int32(int32(value.Number())), - Options: proto.Clone(value.Options()).(*descriptorpb.EnumValueOptions), - } -} - -// ToServiceDescriptorProto copies a [protoreflect.ServiceDescriptor] into a -// google.protobuf.ServiceDescriptorProto message. -func ToServiceDescriptorProto(service protoreflect.ServiceDescriptor) *descriptorpb.ServiceDescriptorProto { - p := &descriptorpb.ServiceDescriptorProto{ - Name: proto.String(string(service.Name())), - Options: proto.Clone(service.Options()).(*descriptorpb.ServiceOptions), - } - for i, methods := 0, service.Methods(); i < methods.Len(); i++ { - p.Method = append(p.Method, ToMethodDescriptorProto(methods.Get(i))) - } - return p -} - -// ToMethodDescriptorProto copies a [protoreflect.MethodDescriptor] into a -// google.protobuf.MethodDescriptorProto message. -func ToMethodDescriptorProto(method protoreflect.MethodDescriptor) *descriptorpb.MethodDescriptorProto { - p := &descriptorpb.MethodDescriptorProto{ - Name: proto.String(string(method.Name())), - InputType: fullNameOf(method.Input()), - OutputType: fullNameOf(method.Output()), - Options: proto.Clone(method.Options()).(*descriptorpb.MethodOptions), - } - if method.IsStreamingClient() { - p.ClientStreaming = proto.Bool(true) - } - if method.IsStreamingServer() { - p.ServerStreaming = proto.Bool(true) - } - return p -} - -func fullNameOf(d protoreflect.Descriptor) *string { - if d == nil { - return nil - } - if strings.HasPrefix(string(d.FullName()), unknownPrefix) { - return proto.String(string(d.FullName()[len(unknownPrefix):])) - } - return proto.String("." + string(d.FullName())) -} diff --git a/vendor/google.golang.org/protobuf/types/gofeaturespb/go_features.pb.go b/vendor/google.golang.org/protobuf/types/gofeaturespb/go_features.pb.go deleted file mode 100644 index 37e712b6b..000000000 --- a/vendor/google.golang.org/protobuf/types/gofeaturespb/go_features.pb.go +++ /dev/null @@ -1,311 +0,0 @@ -// Protocol Buffers - Google's data interchange format -// Copyright 2023 Google Inc. All rights reserved. -// -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file or at -// https://developers.google.com/open-source/licenses/bsd - -// Code generated by protoc-gen-go. DO NOT EDIT. -// source: google/protobuf/go_features.proto - -package gofeaturespb - -import ( - protoreflect "google.golang.org/protobuf/reflect/protoreflect" - protoimpl "google.golang.org/protobuf/runtime/protoimpl" - descriptorpb "google.golang.org/protobuf/types/descriptorpb" - reflect "reflect" - sync "sync" - unsafe "unsafe" -) - -type GoFeatures_APILevel int32 - -const ( - // API_LEVEL_UNSPECIFIED results in selecting the OPEN API, - // but needs to be a separate value to distinguish between - // an explicitly set api level or a missing api level. - GoFeatures_API_LEVEL_UNSPECIFIED GoFeatures_APILevel = 0 - GoFeatures_API_OPEN GoFeatures_APILevel = 1 - GoFeatures_API_HYBRID GoFeatures_APILevel = 2 - GoFeatures_API_OPAQUE GoFeatures_APILevel = 3 -) - -// Enum value maps for GoFeatures_APILevel. -var ( - GoFeatures_APILevel_name = map[int32]string{ - 0: "API_LEVEL_UNSPECIFIED", - 1: "API_OPEN", - 2: "API_HYBRID", - 3: "API_OPAQUE", - } - GoFeatures_APILevel_value = map[string]int32{ - "API_LEVEL_UNSPECIFIED": 0, - "API_OPEN": 1, - "API_HYBRID": 2, - "API_OPAQUE": 3, - } -) - -func (x GoFeatures_APILevel) Enum() *GoFeatures_APILevel { - p := new(GoFeatures_APILevel) - *p = x - return p -} - -func (x GoFeatures_APILevel) String() string { - return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) -} - -func (GoFeatures_APILevel) Descriptor() protoreflect.EnumDescriptor { - return file_google_protobuf_go_features_proto_enumTypes[0].Descriptor() -} - -func (GoFeatures_APILevel) Type() protoreflect.EnumType { - return &file_google_protobuf_go_features_proto_enumTypes[0] -} - -func (x GoFeatures_APILevel) Number() protoreflect.EnumNumber { - return protoreflect.EnumNumber(x) -} - -// Deprecated: Do not use. -func (x *GoFeatures_APILevel) UnmarshalJSON(b []byte) error { - num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b) - if err != nil { - return err - } - *x = GoFeatures_APILevel(num) - return nil -} - -// Deprecated: Use GoFeatures_APILevel.Descriptor instead. -func (GoFeatures_APILevel) EnumDescriptor() ([]byte, []int) { - return file_google_protobuf_go_features_proto_rawDescGZIP(), []int{0, 0} -} - -type GoFeatures_StripEnumPrefix int32 - -const ( - GoFeatures_STRIP_ENUM_PREFIX_UNSPECIFIED GoFeatures_StripEnumPrefix = 0 - GoFeatures_STRIP_ENUM_PREFIX_KEEP GoFeatures_StripEnumPrefix = 1 - GoFeatures_STRIP_ENUM_PREFIX_GENERATE_BOTH GoFeatures_StripEnumPrefix = 2 - GoFeatures_STRIP_ENUM_PREFIX_STRIP GoFeatures_StripEnumPrefix = 3 -) - -// Enum value maps for GoFeatures_StripEnumPrefix. -var ( - GoFeatures_StripEnumPrefix_name = map[int32]string{ - 0: "STRIP_ENUM_PREFIX_UNSPECIFIED", - 1: "STRIP_ENUM_PREFIX_KEEP", - 2: "STRIP_ENUM_PREFIX_GENERATE_BOTH", - 3: "STRIP_ENUM_PREFIX_STRIP", - } - GoFeatures_StripEnumPrefix_value = map[string]int32{ - "STRIP_ENUM_PREFIX_UNSPECIFIED": 0, - "STRIP_ENUM_PREFIX_KEEP": 1, - "STRIP_ENUM_PREFIX_GENERATE_BOTH": 2, - "STRIP_ENUM_PREFIX_STRIP": 3, - } -) - -func (x GoFeatures_StripEnumPrefix) Enum() *GoFeatures_StripEnumPrefix { - p := new(GoFeatures_StripEnumPrefix) - *p = x - return p -} - -func (x GoFeatures_StripEnumPrefix) String() string { - return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) -} - -func (GoFeatures_StripEnumPrefix) Descriptor() protoreflect.EnumDescriptor { - return file_google_protobuf_go_features_proto_enumTypes[1].Descriptor() -} - -func (GoFeatures_StripEnumPrefix) Type() protoreflect.EnumType { - return &file_google_protobuf_go_features_proto_enumTypes[1] -} - -func (x GoFeatures_StripEnumPrefix) Number() protoreflect.EnumNumber { - return protoreflect.EnumNumber(x) -} - -// Deprecated: Do not use. -func (x *GoFeatures_StripEnumPrefix) UnmarshalJSON(b []byte) error { - num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b) - if err != nil { - return err - } - *x = GoFeatures_StripEnumPrefix(num) - return nil -} - -// Deprecated: Use GoFeatures_StripEnumPrefix.Descriptor instead. -func (GoFeatures_StripEnumPrefix) EnumDescriptor() ([]byte, []int) { - return file_google_protobuf_go_features_proto_rawDescGZIP(), []int{0, 1} -} - -type GoFeatures struct { - state protoimpl.MessageState `protogen:"open.v1"` - // Whether or not to generate the deprecated UnmarshalJSON method for enums. - // Can only be true for proto using the Open Struct api. - LegacyUnmarshalJsonEnum *bool `protobuf:"varint,1,opt,name=legacy_unmarshal_json_enum,json=legacyUnmarshalJsonEnum" json:"legacy_unmarshal_json_enum,omitempty"` - // One of OPEN, HYBRID or OPAQUE. - ApiLevel *GoFeatures_APILevel `protobuf:"varint,2,opt,name=api_level,json=apiLevel,enum=pb.GoFeatures_APILevel" json:"api_level,omitempty"` - StripEnumPrefix *GoFeatures_StripEnumPrefix `protobuf:"varint,3,opt,name=strip_enum_prefix,json=stripEnumPrefix,enum=pb.GoFeatures_StripEnumPrefix" json:"strip_enum_prefix,omitempty"` - unknownFields protoimpl.UnknownFields - sizeCache protoimpl.SizeCache -} - -func (x *GoFeatures) Reset() { - *x = GoFeatures{} - mi := &file_google_protobuf_go_features_proto_msgTypes[0] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) -} - -func (x *GoFeatures) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*GoFeatures) ProtoMessage() {} - -func (x *GoFeatures) ProtoReflect() protoreflect.Message { - mi := &file_google_protobuf_go_features_proto_msgTypes[0] - if x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use GoFeatures.ProtoReflect.Descriptor instead. -func (*GoFeatures) Descriptor() ([]byte, []int) { - return file_google_protobuf_go_features_proto_rawDescGZIP(), []int{0} -} - -func (x *GoFeatures) GetLegacyUnmarshalJsonEnum() bool { - if x != nil && x.LegacyUnmarshalJsonEnum != nil { - return *x.LegacyUnmarshalJsonEnum - } - return false -} - -func (x *GoFeatures) GetApiLevel() GoFeatures_APILevel { - if x != nil && x.ApiLevel != nil { - return *x.ApiLevel - } - return GoFeatures_API_LEVEL_UNSPECIFIED -} - -func (x *GoFeatures) GetStripEnumPrefix() GoFeatures_StripEnumPrefix { - if x != nil && x.StripEnumPrefix != nil { - return *x.StripEnumPrefix - } - return GoFeatures_STRIP_ENUM_PREFIX_UNSPECIFIED -} - -var file_google_protobuf_go_features_proto_extTypes = []protoimpl.ExtensionInfo{ - { - ExtendedType: (*descriptorpb.FeatureSet)(nil), - ExtensionType: (*GoFeatures)(nil), - Field: 1002, - Name: "pb.go", - Tag: "bytes,1002,opt,name=go", - Filename: "google/protobuf/go_features.proto", - }, -} - -// Extension fields to descriptorpb.FeatureSet. -var ( - // optional pb.GoFeatures go = 1002; - E_Go = &file_google_protobuf_go_features_proto_extTypes[0] -) - -var File_google_protobuf_go_features_proto protoreflect.FileDescriptor - -const file_google_protobuf_go_features_proto_rawDesc = "" + - "\n" + - "!google/protobuf/go_features.proto\x12\x02pb\x1a google/protobuf/descriptor.proto\"\xab\x05\n" + - "\n" + - "GoFeatures\x12\xbe\x01\n" + - "\x1alegacy_unmarshal_json_enum\x18\x01 \x01(\bB\x80\x01\x88\x01\x01\x98\x01\x06\x98\x01\x01\xa2\x01\t\x12\x04true\x18\x84\a\xa2\x01\n" + - "\x12\x05false\x18\xe7\a\xb2\x01[\b\xe8\a\x10\xe8\a\x1aSThe legacy UnmarshalJSON API is deprecated and will be removed in a future edition.R\x17legacyUnmarshalJsonEnum\x12t\n" + - "\tapi_level\x18\x02 \x01(\x0e2\x17.pb.GoFeatures.APILevelB>\x88\x01\x01\x98\x01\x03\x98\x01\x01\xa2\x01\x1a\x12\x15API_LEVEL_UNSPECIFIED\x18\x84\a\xa2\x01\x0f\x12\n" + - "API_OPAQUE\x18\xe9\a\xb2\x01\x03\b\xe8\aR\bapiLevel\x12|\n" + - "\x11strip_enum_prefix\x18\x03 \x01(\x0e2\x1e.pb.GoFeatures.StripEnumPrefixB0\x88\x01\x01\x98\x01\x06\x98\x01\a\x98\x01\x01\xa2\x01\x1b\x12\x16STRIP_ENUM_PREFIX_KEEP\x18\x84\a\xb2\x01\x03\b\xe9\aR\x0fstripEnumPrefix\"S\n" + - "\bAPILevel\x12\x19\n" + - "\x15API_LEVEL_UNSPECIFIED\x10\x00\x12\f\n" + - "\bAPI_OPEN\x10\x01\x12\x0e\n" + - "\n" + - "API_HYBRID\x10\x02\x12\x0e\n" + - "\n" + - "API_OPAQUE\x10\x03\"\x92\x01\n" + - "\x0fStripEnumPrefix\x12!\n" + - "\x1dSTRIP_ENUM_PREFIX_UNSPECIFIED\x10\x00\x12\x1a\n" + - "\x16STRIP_ENUM_PREFIX_KEEP\x10\x01\x12#\n" + - "\x1fSTRIP_ENUM_PREFIX_GENERATE_BOTH\x10\x02\x12\x1b\n" + - "\x17STRIP_ENUM_PREFIX_STRIP\x10\x03:<\n" + - "\x02go\x12\x1b.google.protobuf.FeatureSet\x18\xea\a \x01(\v2\x0e.pb.GoFeaturesR\x02goB/Z-google.golang.org/protobuf/types/gofeaturespb" - -var ( - file_google_protobuf_go_features_proto_rawDescOnce sync.Once - file_google_protobuf_go_features_proto_rawDescData []byte -) - -func file_google_protobuf_go_features_proto_rawDescGZIP() []byte { - file_google_protobuf_go_features_proto_rawDescOnce.Do(func() { - file_google_protobuf_go_features_proto_rawDescData = protoimpl.X.CompressGZIP(unsafe.Slice(unsafe.StringData(file_google_protobuf_go_features_proto_rawDesc), len(file_google_protobuf_go_features_proto_rawDesc))) - }) - return file_google_protobuf_go_features_proto_rawDescData -} - -var file_google_protobuf_go_features_proto_enumTypes = make([]protoimpl.EnumInfo, 2) -var file_google_protobuf_go_features_proto_msgTypes = make([]protoimpl.MessageInfo, 1) -var file_google_protobuf_go_features_proto_goTypes = []any{ - (GoFeatures_APILevel)(0), // 0: pb.GoFeatures.APILevel - (GoFeatures_StripEnumPrefix)(0), // 1: pb.GoFeatures.StripEnumPrefix - (*GoFeatures)(nil), // 2: pb.GoFeatures - (*descriptorpb.FeatureSet)(nil), // 3: google.protobuf.FeatureSet -} -var file_google_protobuf_go_features_proto_depIdxs = []int32{ - 0, // 0: pb.GoFeatures.api_level:type_name -> pb.GoFeatures.APILevel - 1, // 1: pb.GoFeatures.strip_enum_prefix:type_name -> pb.GoFeatures.StripEnumPrefix - 3, // 2: pb.go:extendee -> google.protobuf.FeatureSet - 2, // 3: pb.go:type_name -> pb.GoFeatures - 4, // [4:4] is the sub-list for method output_type - 4, // [4:4] is the sub-list for method input_type - 3, // [3:4] is the sub-list for extension type_name - 2, // [2:3] is the sub-list for extension extendee - 0, // [0:2] is the sub-list for field type_name -} - -func init() { file_google_protobuf_go_features_proto_init() } -func file_google_protobuf_go_features_proto_init() { - if File_google_protobuf_go_features_proto != nil { - return - } - type x struct{} - out := protoimpl.TypeBuilder{ - File: protoimpl.DescBuilder{ - GoPackagePath: reflect.TypeOf(x{}).PkgPath(), - RawDescriptor: unsafe.Slice(unsafe.StringData(file_google_protobuf_go_features_proto_rawDesc), len(file_google_protobuf_go_features_proto_rawDesc)), - NumEnums: 2, - NumMessages: 1, - NumExtensions: 1, - NumServices: 0, - }, - GoTypes: file_google_protobuf_go_features_proto_goTypes, - DependencyIndexes: file_google_protobuf_go_features_proto_depIdxs, - EnumInfos: file_google_protobuf_go_features_proto_enumTypes, - MessageInfos: file_google_protobuf_go_features_proto_msgTypes, - ExtensionInfos: file_google_protobuf_go_features_proto_extTypes, - }.Build() - File_google_protobuf_go_features_proto = out.File - file_google_protobuf_go_features_proto_goTypes = nil - file_google_protobuf_go_features_proto_depIdxs = nil -} diff --git a/vendor/modules.txt b/vendor/modules.txt index 3c663e8ab..3336cd5a8 100644 --- a/vendor/modules.txt +++ b/vendor/modules.txt @@ -1,5 +1,5 @@ -# cloud.google.com/go/auth v0.4.1 -## explicit; go 1.19 +# cloud.google.com/go/auth v0.20.0 +## explicit; go 1.25.0 cloud.google.com/go/auth cloud.google.com/go/auth/credentials cloud.google.com/go/auth/credentials/internal/externalaccount @@ -11,10 +11,13 @@ cloud.google.com/go/auth/httptransport cloud.google.com/go/auth/internal cloud.google.com/go/auth/internal/credsfile cloud.google.com/go/auth/internal/jwt +cloud.google.com/go/auth/internal/retry cloud.google.com/go/auth/internal/transport cloud.google.com/go/auth/internal/transport/cert -# cloud.google.com/go/auth/oauth2adapt v0.2.2 -## explicit; go 1.19 +cloud.google.com/go/auth/internal/transport/headers +cloud.google.com/go/auth/internal/trustboundary +# cloud.google.com/go/auth/oauth2adapt v0.2.8 +## explicit; go 1.23.0 cloud.google.com/go/auth/oauth2adapt # cloud.google.com/go/compute/metadata v0.9.0 ## explicit; go 1.24.0 @@ -254,12 +257,6 @@ github.com/golang-jwt/jwt/v4 # github.com/golang-jwt/jwt/v5 v5.3.1 ## explicit; go 1.21 github.com/golang-jwt/jwt/v5 -# github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da -## explicit -github.com/golang/groupcache/lru -# github.com/golang/protobuf v1.5.4 -## explicit; go 1.17 -github.com/golang/protobuf/proto # github.com/google/gnostic-models v0.7.1 ## explicit; go 1.22 github.com/google/gnostic-models/compiler @@ -274,8 +271,8 @@ github.com/google/go-cmp/cmp/internal/diff github.com/google/go-cmp/cmp/internal/flags github.com/google/go-cmp/cmp/internal/function github.com/google/go-cmp/cmp/internal/value -# github.com/google/s2a-go v0.1.7 -## explicit; go 1.19 +# github.com/google/s2a-go v0.1.9 +## explicit; go 1.20 github.com/google/s2a-go github.com/google/s2a-go/fallback github.com/google/s2a-go/internal/authinfo @@ -300,17 +297,19 @@ github.com/google/s2a-go/stream # github.com/google/uuid v1.6.0 ## explicit github.com/google/uuid -# github.com/googleapis/enterprise-certificate-proxy v0.3.2 -## explicit; go 1.19 +# github.com/googleapis/enterprise-certificate-proxy v0.3.17 +## explicit; go 1.25.0 github.com/googleapis/enterprise-certificate-proxy/client github.com/googleapis/enterprise-certificate-proxy/client/util -# github.com/googleapis/gax-go/v2 v2.12.4 -## explicit; go 1.19 +# github.com/googleapis/gax-go/v2 v2.22.0 +## explicit; go 1.25.0 github.com/googleapis/gax-go/v2 github.com/googleapis/gax-go/v2/apierror github.com/googleapis/gax-go/v2/apierror/internal/proto github.com/googleapis/gax-go/v2/callctx github.com/googleapis/gax-go/v2/internal +github.com/googleapis/gax-go/v2/internallog +github.com/googleapis/gax-go/v2/internallog/internal # github.com/gophercloud/gophercloud/v2 v2.1.1 ## explicit; go 1.22 github.com/gophercloud/gophercloud/v2 @@ -572,35 +571,17 @@ github.com/spf13/pflag # github.com/x448/float16 v0.8.4 ## explicit; go 1.11 github.com/x448/float16 -# go.opencensus.io v0.24.0 -## explicit; go 1.13 -go.opencensus.io -go.opencensus.io/internal -go.opencensus.io/internal/tagencoding -go.opencensus.io/metric/metricdata -go.opencensus.io/metric/metricproducer -go.opencensus.io/plugin/ochttp -go.opencensus.io/plugin/ochttp/propagation/b3 -go.opencensus.io/resource -go.opencensus.io/stats -go.opencensus.io/stats/internal -go.opencensus.io/stats/view -go.opencensus.io/tag -go.opencensus.io/trace -go.opencensus.io/trace/internal -go.opencensus.io/trace/propagation -go.opencensus.io/trace/tracestate # go.opentelemetry.io/auto/sdk v1.2.1 ## explicit; go 1.24.0 go.opentelemetry.io/auto/sdk go.opentelemetry.io/auto/sdk/internal/telemetry -# go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.65.0 -## explicit; go 1.24.0 +# go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.67.0 +## explicit; go 1.25.0 go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp/internal/request go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp/internal/semconv -# go.opentelemetry.io/otel v1.41.0 -## explicit; go 1.24.0 +# go.opentelemetry.io/otel v1.43.0 +## explicit; go 1.25.0 go.opentelemetry.io/otel go.opentelemetry.io/otel/attribute go.opentelemetry.io/otel/attribute/internal @@ -612,15 +593,15 @@ go.opentelemetry.io/otel/internal/errorhandler go.opentelemetry.io/otel/internal/global go.opentelemetry.io/otel/propagation go.opentelemetry.io/otel/semconv/v1.37.0 -go.opentelemetry.io/otel/semconv/v1.39.0 -go.opentelemetry.io/otel/semconv/v1.39.0/httpconv -# go.opentelemetry.io/otel/metric v1.41.0 -## explicit; go 1.24.0 +go.opentelemetry.io/otel/semconv/v1.40.0 +go.opentelemetry.io/otel/semconv/v1.40.0/httpconv +# go.opentelemetry.io/otel/metric v1.43.0 +## explicit; go 1.25.0 go.opentelemetry.io/otel/metric go.opentelemetry.io/otel/metric/embedded go.opentelemetry.io/otel/metric/noop -# go.opentelemetry.io/otel/trace v1.41.0 -## explicit; go 1.24.0 +# go.opentelemetry.io/otel/trace v1.43.0 +## explicit; go 1.25.0 go.opentelemetry.io/otel/trace go.opentelemetry.io/otel/trace/embedded go.opentelemetry.io/otel/trace/internal/telemetry @@ -705,29 +686,27 @@ golang.org/x/text/unicode/norm # golang.org/x/time v0.15.0 ## explicit; go 1.25.0 golang.org/x/time/rate -# google.golang.org/api v0.179.0 -## explicit; go 1.19 +# google.golang.org/api v0.288.0 +## explicit; go 1.25.0 google.golang.org/api/compute/v1 google.golang.org/api/googleapi google.golang.org/api/googleapi/transport google.golang.org/api/internal google.golang.org/api/internal/cert +google.golang.org/api/internal/credentialstype google.golang.org/api/internal/gensupport google.golang.org/api/internal/impersonate google.golang.org/api/internal/third_party/uritemplates google.golang.org/api/option google.golang.org/api/option/internaloption google.golang.org/api/transport/http -google.golang.org/api/transport/http/internal/propagation -# google.golang.org/genproto/googleapis/api v0.0.0-20260128011058-8636f8732409 -## explicit; go 1.24.0 -# google.golang.org/genproto/googleapis/rpc v0.0.0-20260128011058-8636f8732409 -## explicit; go 1.24.0 +# google.golang.org/genproto/googleapis/rpc v0.0.0-20260630182238-925bb5da69e7 +## explicit; go 1.25.0 google.golang.org/genproto/googleapis/rpc/code google.golang.org/genproto/googleapis/rpc/errdetails google.golang.org/genproto/googleapis/rpc/status -# google.golang.org/grpc v1.79.3 -## explicit; go 1.24.0 +# google.golang.org/grpc v1.82.1 +## explicit; go 1.25.0 google.golang.org/grpc google.golang.org/grpc/attributes google.golang.org/grpc/backoff @@ -747,13 +726,13 @@ google.golang.org/grpc/credentials/insecure google.golang.org/grpc/encoding google.golang.org/grpc/encoding/internal google.golang.org/grpc/encoding/proto +google.golang.org/grpc/experimental/balancer/weight google.golang.org/grpc/experimental/stats google.golang.org/grpc/grpclog google.golang.org/grpc/grpclog/internal google.golang.org/grpc/internal google.golang.org/grpc/internal/backoff google.golang.org/grpc/internal/balancer/gracefulswitch -google.golang.org/grpc/internal/balancer/weight google.golang.org/grpc/internal/balancerload google.golang.org/grpc/internal/binarylog google.golang.org/grpc/internal/buffer @@ -764,6 +743,7 @@ google.golang.org/grpc/internal/grpclog google.golang.org/grpc/internal/grpcsync google.golang.org/grpc/internal/grpcutil google.golang.org/grpc/internal/idle +google.golang.org/grpc/internal/mem google.golang.org/grpc/internal/metadata google.golang.org/grpc/internal/pretty google.golang.org/grpc/internal/proxyattributes @@ -778,7 +758,9 @@ google.golang.org/grpc/internal/stats google.golang.org/grpc/internal/status google.golang.org/grpc/internal/syscall google.golang.org/grpc/internal/transport +google.golang.org/grpc/internal/transport/internal google.golang.org/grpc/internal/transport/networktype +google.golang.org/grpc/internal/transport/readyreader google.golang.org/grpc/keepalive google.golang.org/grpc/mem google.golang.org/grpc/metadata @@ -799,7 +781,6 @@ google.golang.org/protobuf/internal/descfmt google.golang.org/protobuf/internal/descopts google.golang.org/protobuf/internal/detrand google.golang.org/protobuf/internal/editiondefaults -google.golang.org/protobuf/internal/editionssupport google.golang.org/protobuf/internal/encoding/defval google.golang.org/protobuf/internal/encoding/json google.golang.org/protobuf/internal/encoding/messageset @@ -819,13 +800,11 @@ google.golang.org/protobuf/internal/strs google.golang.org/protobuf/internal/version google.golang.org/protobuf/proto google.golang.org/protobuf/protoadapt -google.golang.org/protobuf/reflect/protodesc google.golang.org/protobuf/reflect/protoreflect google.golang.org/protobuf/reflect/protoregistry google.golang.org/protobuf/runtime/protoiface google.golang.org/protobuf/runtime/protoimpl google.golang.org/protobuf/types/descriptorpb -google.golang.org/protobuf/types/gofeaturespb google.golang.org/protobuf/types/known/anypb google.golang.org/protobuf/types/known/durationpb google.golang.org/protobuf/types/known/timestamppb